@trebco/treb 31.4.0 → 31.7.2
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/treb-export-worker.mjs +2 -2
- package/dist/treb-spreadsheet.mjs +12 -11
- package/dist/treb.d.ts +7 -1
- package/package.json +1 -1
- package/treb-base-types/src/color.ts +38 -5
- package/treb-base-types/src/font-stack.ts +1 -1
- package/treb-calculator/src/dag/state_leaf_vertex.ts +16 -39
- package/treb-data-model/src/annotation.ts +5 -0
- package/treb-embed/src/embedded-spreadsheet.ts +108 -55
- package/treb-embed/src/toolbar-message.ts +1 -1
- package/treb-grid/src/types/grid.ts +96 -29
- package/treb-grid/src/types/grid_base.ts +98 -7
- package/treb-grid/src/types/grid_command.ts +32 -2
- package/treb-grid/src/types/grid_events.ts +17 -1
- package/treb-grid/src/types/grid_options.ts +4 -0
- package/treb-grid/src/types/tab_bar.ts +2 -0
- package/treb-grid/src/types/update_flags.ts +6 -0
- package/treb-parser/src/md-parser.ts +23 -7
- package/test/parser.ts +0 -13
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! TREB v31.
|
|
2
|
-
var e='var Ki=Object.create;var Sr=Object.defineProperty;var es=Object.getOwnPropertyDescriptor;var ts=Object.getOwnPropertyNames;var rs=Object.getPrototypeOf,is=Object.prototype.hasOwnProperty;var re=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports);var ss=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of ts(e))!is.call(s,i)&&i!==t&&Sr(s,i,{get:()=>e[i],enumerable:!(r=es(e,i))||r.enumerable});return s};var De=(s,e,t)=>(t=s!=null?Ki(rs(s)):{},ss(e||!s||!s.__esModule?Sr(t,"default",{value:s,enumerable:!0}):t,s));var ut=re(ht=>{"use strict";ht.byteLength=os;ht.toByteArray=ls;ht.fromByteArray=hs;var ge=[],he=[],ns=typeof Uint8Array<"u"?Uint8Array:Array,$t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Le=0,Ar=$t.length;Le<Ar;++Le)ge[Le]=$t[Le],he[$t.charCodeAt(Le)]=Le;var Le,Ar;he[45]=62;he[95]=63;function Tr(s){var e=s.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=s.indexOf("=");t===-1&&(t=e);var r=t===e?0:4-t%4;return[t,r]}function os(s){var e=Tr(s),t=e[0],r=e[1];return(t+r)*3/4-r}function as(s,e,t){return(e+t)*3/4-t}function ls(s){var e,t=Tr(s),r=t[0],i=t[1],n=new ns(as(s,r,i)),o=0,a=i>0?r-4:r,l;for(l=0;l<a;l+=4)e=he[s.charCodeAt(l)]<<18|he[s.charCodeAt(l+1)]<<12|he[s.charCodeAt(l+2)]<<6|he[s.charCodeAt(l+3)],n[o++]=e>>16&255,n[o++]=e>>8&255,n[o++]=e&255;return i===2&&(e=he[s.charCodeAt(l)]<<2|he[s.charCodeAt(l+1)]>>4,n[o++]=e&255),i===1&&(e=he[s.charCodeAt(l)]<<10|he[s.charCodeAt(l+1)]<<4|he[s.charCodeAt(l+2)]>>2,n[o++]=e>>8&255,n[o++]=e&255),n}function cs(s){return ge[s>>18&63]+ge[s>>12&63]+ge[s>>6&63]+ge[s&63]}function ds(s,e,t){for(var r,i=[],n=e;n<t;n+=3)r=(s[n]<<16&16711680)+(s[n+1]<<8&65280)+(s[n+2]&255),i.push(cs(r));return i.join("")}function hs(s){for(var e,t=s.length,r=t%3,i=[],n=16383,o=0,a=t-r;o<a;o+=n)i.push(ds(s,o,o+n>a?a:o+n));return r===1?(e=s[t-1],i.push(ge[e>>2]+ge[e<<4&63]+"==")):r===2&&(e=(s[t-2]<<8)+s[t-1],i.push(ge[e>>10]+ge[e>>4&63]+ge[e<<2&63]+"=")),i.join("")}});var At=re(Te=>{"use strict";var Kr=":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD",rn=Kr+"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040",ei="["+Kr+"]["+rn+"]*",sn=new RegExp("^"+ei+"$"),nn=function(s,e){let t=[],r=e.exec(s);for(;r;){let i=[];i.startIndex=e.lastIndex-r[0].length;let n=r.length;for(let o=0;o<n;o++)i.push(r[o]);t.push(i),r=e.exec(s)}return t},on=function(s){let e=sn.exec(s);return!(e===null||typeof e>"u")};Te.isExist=function(s){return typeof s<"u"};Te.isEmptyObject=function(s){return Object.keys(s).length===0};Te.merge=function(s,e,t){if(e){let r=Object.keys(e),i=r.length;for(let n=0;n<i;n++)t==="strict"?s[r[n]]=[e[r[n]]]:s[r[n]]=e[r[n]]}};Te.getValue=function(s){return Te.isExist(s)?s:""};Te.isName=on;Te.getAllMatches=nn;Te.nameRegexp=ei});var cr=re(ni=>{"use strict";var lr=At(),an={allowBooleanAttributes:!1,unpairedTags:[]};ni.validate=function(s,e){e=Object.assign({},an,e);let t=[],r=!1,i=!1;s[0]==="\\uFEFF"&&(s=s.substr(1));for(let n=0;n<s.length;n++)if(s[n]==="<"&&s[n+1]==="?"){if(n+=2,n=ri(s,n),n.err)return n}else if(s[n]==="<"){let o=n;if(n++,s[n]==="!"){n=ii(s,n);continue}else{let a=!1;s[n]==="/"&&(a=!0,n++);let l="";for(;n<s.length&&s[n]!==">"&&s[n]!==" "&&s[n]!==" "&&s[n]!==`\n`&&s[n]!=="\\r";n++)l+=s[n];if(l=l.trim(),l[l.length-1]==="/"&&(l=l.substring(0,l.length-1),n--),!mn(l)){let h;return l.trim().length===0?h="Invalid space after \'<\'.":h="Tag \'"+l+"\' is an invalid name.",J("InvalidTag",h,ne(s,n))}let c=dn(s,n);if(c===!1)return J("InvalidAttr","Attributes for \'"+l+"\' have open quote.",ne(s,n));let d=c.value;if(n=c.index,d[d.length-1]==="/"){let h=n-d.length;d=d.substring(0,d.length-1);let p=si(d,e);if(p===!0)r=!0;else return J(p.err.code,p.err.msg,ne(s,h+p.err.line))}else if(a)if(c.tagClosed){if(d.trim().length>0)return J("InvalidTag","Closing tag \'"+l+"\' can\'t have attributes or invalid starting.",ne(s,o));if(t.length===0)return J("InvalidTag","Closing tag \'"+l+"\' has not been opened.",ne(s,o));{let h=t.pop();if(l!==h.tagName){let p=ne(s,h.tagStartPos);return J("InvalidTag","Expected closing tag \'"+h.tagName+"\' (opened in line "+p.line+", col "+p.col+") instead of closing tag \'"+l+"\'.",ne(s,o))}t.length==0&&(i=!0)}}else return J("InvalidTag","Closing tag \'"+l+"\' doesn\'t have proper closing.",ne(s,n));else{let h=si(d,e);if(h!==!0)return J(h.err.code,h.err.msg,ne(s,n-d.length+h.err.line));if(i===!0)return J("InvalidXml","Multiple possible root nodes found.",ne(s,n));e.unpairedTags.indexOf(l)!==-1||t.push({tagName:l,tagStartPos:o}),r=!0}for(n++;n<s.length;n++)if(s[n]==="<")if(s[n+1]==="!"){n++,n=ii(s,n);continue}else if(s[n+1]==="?"){if(n=ri(s,++n),n.err)return n}else break;else if(s[n]==="&"){let h=fn(s,n);if(h==-1)return J("InvalidChar","char \'&\' is not expected.",ne(s,n));n=h}else if(i===!0&&!ti(s[n]))return J("InvalidXml","Extra text at the end",ne(s,n));s[n]==="<"&&n--}}else{if(ti(s[n]))continue;return J("InvalidChar","char \'"+s[n]+"\' is not expected.",ne(s,n))}if(r){if(t.length==1)return J("InvalidTag","Unclosed tag \'"+t[0].tagName+"\'.",ne(s,t[0].tagStartPos));if(t.length>0)return J("InvalidXml","Invalid \'"+JSON.stringify(t.map(n=>n.tagName),null,4).replace(/\\r?\\n/g,"")+"\' found.",{line:1,col:1})}else return J("InvalidXml","Start tag expected.",1);return!0};function ti(s){return s===" "||s===" "||s===`\n`||s==="\\r"}function ri(s,e){let t=e;for(;e<s.length;e++)if(s[e]=="?"||s[e]==" "){let r=s.substr(t,e-t);if(e>5&&r==="xml")return J("InvalidXml","XML declaration allowed only at the start of the document.",ne(s,e));if(s[e]=="?"&&s[e+1]==">"){e++;break}else continue}return e}function ii(s,e){if(s.length>e+5&&s[e+1]==="-"&&s[e+2]==="-"){for(e+=3;e<s.length;e++)if(s[e]==="-"&&s[e+1]==="-"&&s[e+2]===">"){e+=2;break}}else if(s.length>e+8&&s[e+1]==="D"&&s[e+2]==="O"&&s[e+3]==="C"&&s[e+4]==="T"&&s[e+5]==="Y"&&s[e+6]==="P"&&s[e+7]==="E"){let t=1;for(e+=8;e<s.length;e++)if(s[e]==="<")t++;else if(s[e]===">"&&(t--,t===0))break}else if(s.length>e+9&&s[e+1]==="["&&s[e+2]==="C"&&s[e+3]==="D"&&s[e+4]==="A"&&s[e+5]==="T"&&s[e+6]==="A"&&s[e+7]==="["){for(e+=8;e<s.length;e++)if(s[e]==="]"&&s[e+1]==="]"&&s[e+2]===">"){e+=2;break}}return e}var ln=\'"\',cn="\'";function dn(s,e){let t="",r="",i=!1;for(;e<s.length;e++){if(s[e]===ln||s[e]===cn)r===""?r=s[e]:r!==s[e]||(r="");else if(s[e]===">"&&r===""){i=!0;break}t+=s[e]}return r!==""?!1:{value:t,index:e,tagClosed:i}}var hn=new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\'"])(([\\\\s\\\\S])*?)\\\\5)?`,"g");function si(s,e){let t=lr.getAllMatches(s,hn),r={};for(let i=0;i<t.length;i++){if(t[i][1].length===0)return J("InvalidAttr","Attribute \'"+t[i][2]+"\' has no space in starting.",st(t[i]));if(t[i][3]!==void 0&&t[i][4]===void 0)return J("InvalidAttr","Attribute \'"+t[i][2]+"\' is without value.",st(t[i]));if(t[i][3]===void 0&&!e.allowBooleanAttributes)return J("InvalidAttr","boolean attribute \'"+t[i][2]+"\' is not allowed.",st(t[i]));let n=t[i][2];if(!pn(n))return J("InvalidAttr","Attribute \'"+n+"\' is an invalid name.",st(t[i]));if(!r.hasOwnProperty(n))r[n]=1;else return J("InvalidAttr","Attribute \'"+n+"\' is repeated.",st(t[i]))}return!0}function un(s,e){let t=/\\d/;for(s[e]==="x"&&(e++,t=/[\\da-fA-F]/);e<s.length;e++){if(s[e]===";")return e;if(!s[e].match(t))break}return-1}function fn(s,e){if(e++,s[e]===";")return-1;if(s[e]==="#")return e++,un(s,e);let t=0;for(;e<s.length;e++,t++)if(!(s[e].match(/\\w/)&&t<20)){if(s[e]===";")break;return-1}return e}function J(s,e,t){return{err:{code:s,msg:e,line:t.line||t,col:t.col}}}function pn(s){return lr.isName(s)}function mn(s){return lr.isName(s)}function ne(s,e){let t=s.substring(0,e).split(/\\r?\\n/);return{line:t.length,col:t[t.length-1].length+1}}function st(s){return s.startIndex+s[1].length}});var ai=re(dr=>{var oi={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(s,e){return e},attributeValueProcessor:function(s,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(s,e,t){return s}},_n=function(s){return Object.assign({},oi,s)};dr.buildOptions=_n;dr.defaultOptions=oi});var ci=re((ph,li)=>{"use strict";var hr=class{constructor(e){this.tagname=e,this.child=[],this[":@"]={}}add(e,t){e==="__proto__"&&(e="#__proto__"),this.child.push({[e]:t})}addChild(e){e.tagname==="__proto__"&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,":@":e[":@"]}):this.child.push({[e.tagname]:e.child})}};li.exports=hr});var hi=re((mh,di)=>{var bn=At();function gn(s,e){let t={};if(s[e+3]==="O"&&s[e+4]==="C"&&s[e+5]==="T"&&s[e+6]==="Y"&&s[e+7]==="P"&&s[e+8]==="E"){e=e+9;let r=1,i=!1,n=!1,o="";for(;e<s.length;e++)if(s[e]==="<"&&!n){if(i&&xn(s,e))e+=7,[entityName,val,e]=yn(s,e+1),val.indexOf("&")===-1&&(t[An(entityName)]={regx:RegExp(`&${entityName};`,"g"),val});else if(i&&vn(s,e))e+=8;else if(i&&Cn(s,e))e+=8;else if(i&&Sn(s,e))e+=9;else if(wn)n=!0;else throw new Error("Invalid DOCTYPE");r++,o=""}else if(s[e]===">"){if(n?s[e-1]==="-"&&s[e-2]==="-"&&(n=!1,r--):r--,r===0)break}else s[e]==="["?i=!0:o+=s[e];if(r!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:t,i:e}}function yn(s,e){let t="";for(;e<s.length&&s[e]!=="\'"&&s[e]!==\'"\';e++)t+=s[e];if(t=t.trim(),t.indexOf(" ")!==-1)throw new Error("External entites are not supported");let r=s[e++],i="";for(;e<s.length&&s[e]!==r;e++)i+=s[e];return[t,i,e]}function wn(s,e){return s[e+1]==="!"&&s[e+2]==="-"&&s[e+3]==="-"}function xn(s,e){return s[e+1]==="!"&&s[e+2]==="E"&&s[e+3]==="N"&&s[e+4]==="T"&&s[e+5]==="I"&&s[e+6]==="T"&&s[e+7]==="Y"}function vn(s,e){return s[e+1]==="!"&&s[e+2]==="E"&&s[e+3]==="L"&&s[e+4]==="E"&&s[e+5]==="M"&&s[e+6]==="E"&&s[e+7]==="N"&&s[e+8]==="T"}function Cn(s,e){return s[e+1]==="!"&&s[e+2]==="A"&&s[e+3]==="T"&&s[e+4]==="T"&&s[e+5]==="L"&&s[e+6]==="I"&&s[e+7]==="S"&&s[e+8]==="T"}function Sn(s,e){return s[e+1]==="!"&&s[e+2]==="N"&&s[e+3]==="O"&&s[e+4]==="T"&&s[e+5]==="A"&&s[e+6]==="T"&&s[e+7]==="I"&&s[e+8]==="O"&&s[e+9]==="N"}function An(s){if(bn.isName(s))return s;throw new Error(`Invalid entity name ${s}`)}di.exports=gn});var fi=re((_h,ui)=>{var Tn=/^[-+]?0x[a-fA-F0-9]+$/,In=/^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt);!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);var Rn={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function kn(s,e={}){if(e=Object.assign({},Rn,e),!s||typeof s!="string")return s;let t=s.trim();if(e.skipLike!==void 0&&e.skipLike.test(t))return s;if(e.hex&&Tn.test(t))return Number.parseInt(t,16);{let r=In.exec(t);if(r){let i=r[1],n=r[2],o=En(r[3]),a=r[4]||r[6];if(!e.leadingZeros&&n.length>0&&i&&t[2]!==".")return s;if(!e.leadingZeros&&n.length>0&&!i&&t[1]!==".")return s;{let l=Number(t),c=""+l;return c.search(/[eE]/)!==-1||a?e.eNotation?l:s:t.indexOf(".")!==-1?c==="0"&&o===""||c===o||i&&c==="-"+o?l:s:n?o===c||i+o===c?l:s:t===c||t===i+c?l:s}}else return s}}function En(s){return s&&s.indexOf(".")!==-1&&(s=s.replace(/0+$/,""),s==="."?s="0":s[0]==="."?s="0"+s:s[s.length-1]==="."&&(s=s.substr(0,s.length-1))),s}ui.exports=kn});var ur=re((bh,pi)=>{function Nn(s){return typeof s=="function"?s:Array.isArray(s)?e=>{for(let t of s)if(typeof t=="string"&&e===t||t instanceof RegExp&&t.test(e))return!0}:()=>!1}pi.exports=Nn});var bi=re((gh,_i)=>{"use strict";var mi=At(),nt=ci(),Mn=hi(),Fn=fi(),Pn=ur(),fr=class{constructor(e){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"\'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:\'"\'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"\\xA2"},pound:{regex:/&(pound|#163);/g,val:"\\xA3"},yen:{regex:/&(yen|#165);/g,val:"\\xA5"},euro:{regex:/&(euro|#8364);/g,val:"\\u20AC"},copyright:{regex:/&(copy|#169);/g,val:"\\xA9"},reg:{regex:/&(reg|#174);/g,val:"\\xAE"},inr:{regex:/&(inr|#8377);/g,val:"\\u20B9"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,r)=>String.fromCharCode(Number.parseInt(r,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,r)=>String.fromCharCode(Number.parseInt(r,16))}},this.addExternalEntities=zn,this.parseXml=$n,this.parseTextData=Dn,this.resolveNameSpace=Ln,this.buildAttributesMap=Un,this.isItStopNode=Wn,this.replaceEntitiesValue=Zn,this.readStopNodeData=Bn,this.saveTextToParentTag=On,this.addChild=Vn,this.ignoreAttributesFn=Pn(this.options.ignoreAttributes)}};function zn(s){let e=Object.keys(s);for(let t=0;t<e.length;t++){let r=e[t];this.lastEntities[r]={regex:new RegExp("&"+r+";","g"),val:s[r]}}}function Dn(s,e,t,r,i,n,o){if(s!==void 0&&(this.options.trimValues&&!r&&(s=s.trim()),s.length>0)){o||(s=this.replaceEntitiesValue(s));let a=this.options.tagValueProcessor(e,s,t,i,n);return a==null?s:typeof a!=typeof s||a!==s?a:this.options.trimValues?mr(s,this.options.parseTagValue,this.options.numberParseOptions):s.trim()===s?mr(s,this.options.parseTagValue,this.options.numberParseOptions):s}}function Ln(s){if(this.options.removeNSPrefix){let e=s.split(":"),t=s.charAt(0)==="/"?"/":"";if(e[0]==="xmlns")return"";e.length===2&&(s=t+e[1])}return s}var Gn=new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*([\'"])([\\\\s\\\\S]*?)\\\\3)?`,"gm");function Un(s,e,t){if(this.options.ignoreAttributes!==!0&&typeof s=="string"){let r=mi.getAllMatches(s,Gn),i=r.length,n={};for(let o=0;o<i;o++){let a=this.resolveNameSpace(r[o][1]);if(this.ignoreAttributesFn(a,e))continue;let l=r[o][4],c=this.options.attributeNamePrefix+a;if(a.length)if(this.options.transformAttributeName&&(c=this.options.transformAttributeName(c)),c==="__proto__"&&(c="#__proto__"),l!==void 0){this.options.trimValues&&(l=l.trim()),l=this.replaceEntitiesValue(l);let d=this.options.attributeValueProcessor(a,l,e);d==null?n[c]=l:typeof d!=typeof l||d!==l?n[c]=d:n[c]=mr(l,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(n[c]=!0)}if(!Object.keys(n).length)return;if(this.options.attributesGroupName){let o={};return o[this.options.attributesGroupName]=n,o}return n}}var $n=function(s){s=s.replace(/\\r\\n?/g,`\n`);let e=new nt("!xml"),t=e,r="",i="";for(let n=0;n<s.length;n++)if(s[n]==="<")if(s[n+1]==="/"){let a=Ze(s,">",n,"Closing Tag is not closed."),l=s.substring(n+2,a).trim();if(this.options.removeNSPrefix){let h=l.indexOf(":");h!==-1&&(l=l.substr(h+1))}this.options.transformTagName&&(l=this.options.transformTagName(l)),t&&(r=this.saveTextToParentTag(r,t,i));let c=i.substring(i.lastIndexOf(".")+1);if(l&&this.options.unpairedTags.indexOf(l)!==-1)throw new Error(`Unpaired tag can not be used as closing tag: </${l}>`);let d=0;c&&this.options.unpairedTags.indexOf(c)!==-1?(d=i.lastIndexOf(".",i.lastIndexOf(".")-1),this.tagsNodeStack.pop()):d=i.lastIndexOf("."),i=i.substring(0,d),t=this.tagsNodeStack.pop(),r="",n=a}else if(s[n+1]==="?"){let a=pr(s,n,!1,"?>");if(!a)throw new Error("Pi Tag is not closed.");if(r=this.saveTextToParentTag(r,t,i),!(this.options.ignoreDeclaration&&a.tagName==="?xml"||this.options.ignorePiTags)){let l=new nt(a.tagName);l.add(this.options.textNodeName,""),a.tagName!==a.tagExp&&a.attrExpPresent&&(l[":@"]=this.buildAttributesMap(a.tagExp,i,a.tagName)),this.addChild(t,l,i)}n=a.closeIndex+1}else if(s.substr(n+1,3)==="!--"){let a=Ze(s,"-->",n+4,"Comment is not closed.");if(this.options.commentPropName){let l=s.substring(n+4,a-2);r=this.saveTextToParentTag(r,t,i),t.add(this.options.commentPropName,[{[this.options.textNodeName]:l}])}n=a}else if(s.substr(n+1,2)==="!D"){let a=Mn(s,n);this.docTypeEntities=a.entities,n=a.i}else if(s.substr(n+1,2)==="!["){let a=Ze(s,"]]>",n,"CDATA is not closed.")-2,l=s.substring(n+9,a);r=this.saveTextToParentTag(r,t,i);let c=this.parseTextData(l,t.tagname,i,!0,!1,!0,!0);c==null&&(c=""),this.options.cdataPropName?t.add(this.options.cdataPropName,[{[this.options.textNodeName]:l}]):t.add(this.options.textNodeName,c),n=a+2}else{let a=pr(s,n,this.options.removeNSPrefix),l=a.tagName,c=a.rawTagName,d=a.tagExp,h=a.attrExpPresent,p=a.closeIndex;this.options.transformTagName&&(l=this.options.transformTagName(l)),t&&r&&t.tagname!=="!xml"&&(r=this.saveTextToParentTag(r,t,i,!1));let u=t;if(u&&this.options.unpairedTags.indexOf(u.tagname)!==-1&&(t=this.tagsNodeStack.pop(),i=i.substring(0,i.lastIndexOf("."))),l!==e.tagname&&(i+=i?"."+l:l),this.isItStopNode(this.options.stopNodes,i,l)){let f="";if(d.length>0&&d.lastIndexOf("/")===d.length-1)l[l.length-1]==="/"?(l=l.substr(0,l.length-1),i=i.substr(0,i.length-1),d=l):d=d.substr(0,d.length-1),n=a.closeIndex;else if(this.options.unpairedTags.indexOf(l)!==-1)n=a.closeIndex;else{let x=this.readStopNodeData(s,c,p+1);if(!x)throw new Error(`Unexpected end of ${c}`);n=x.i,f=x.tagContent}let b=new nt(l);l!==d&&h&&(b[":@"]=this.buildAttributesMap(d,i,l)),f&&(f=this.parseTextData(f,l,i,!0,h,!0,!0)),i=i.substr(0,i.lastIndexOf(".")),b.add(this.options.textNodeName,f),this.addChild(t,b,i)}else{if(d.length>0&&d.lastIndexOf("/")===d.length-1){l[l.length-1]==="/"?(l=l.substr(0,l.length-1),i=i.substr(0,i.length-1),d=l):d=d.substr(0,d.length-1),this.options.transformTagName&&(l=this.options.transformTagName(l));let f=new nt(l);l!==d&&h&&(f[":@"]=this.buildAttributesMap(d,i,l)),this.addChild(t,f,i),i=i.substr(0,i.lastIndexOf("."))}else{let f=new nt(l);this.tagsNodeStack.push(t),l!==d&&h&&(f[":@"]=this.buildAttributesMap(d,i,l)),this.addChild(t,f,i),t=f}r="",n=p}}else r+=s[n];return e.child};function Vn(s,e,t){let r=this.options.updateTag(e.tagname,t,e[":@"]);r===!1||(typeof r=="string"&&(e.tagname=r),s.addChild(e))}var Zn=function(s){if(this.options.processEntities){for(let e in this.docTypeEntities){let t=this.docTypeEntities[e];s=s.replace(t.regx,t.val)}for(let e in this.lastEntities){let t=this.lastEntities[e];s=s.replace(t.regex,t.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){let t=this.htmlEntities[e];s=s.replace(t.regex,t.val)}s=s.replace(this.ampEntity.regex,this.ampEntity.val)}return s};function On(s,e,t,r){return s&&(r===void 0&&(r=Object.keys(e.child).length===0),s=this.parseTextData(s,e.tagname,t,!1,e[":@"]?Object.keys(e[":@"]).length!==0:!1,r),s!==void 0&&s!==""&&e.add(this.options.textNodeName,s),s=""),s}function Wn(s,e,t){let r="*."+t;for(let i in s){let n=s[i];if(r===n||e===n)return!0}return!1}function Hn(s,e,t=">"){let r,i="";for(let n=e;n<s.length;n++){let o=s[n];if(r)o===r&&(r="");else if(o===\'"\'||o==="\'")r=o;else if(o===t[0])if(t[1]){if(s[n+1]===t[1])return{data:i,index:n}}else return{data:i,index:n};else o===" "&&(o=" ");i+=o}}function Ze(s,e,t,r){let i=s.indexOf(e,t);if(i===-1)throw new Error(r);return i+e.length-1}function pr(s,e,t,r=">"){let i=Hn(s,e+1,r);if(!i)return;let n=i.data,o=i.index,a=n.search(/\\s/),l=n,c=!0;a!==-1&&(l=n.substring(0,a),n=n.substring(a+1).trimStart());let d=l;if(t){let h=l.indexOf(":");h!==-1&&(l=l.substr(h+1),c=l!==i.data.substr(h+1))}return{tagName:l,tagExp:n,closeIndex:o,attrExpPresent:c,rawTagName:d}}function Bn(s,e,t){let r=t,i=1;for(;t<s.length;t++)if(s[t]==="<")if(s[t+1]==="/"){let n=Ze(s,">",t,`${e} is not closed`);if(s.substring(t+2,n).trim()===e&&(i--,i===0))return{tagContent:s.substring(r,t),i:n};t=n}else if(s[t+1]==="?")t=Ze(s,"?>",t+1,"StopNode is not closed.");else if(s.substr(t+1,3)==="!--")t=Ze(s,"-->",t+3,"StopNode is not closed.");else if(s.substr(t+1,2)==="![")t=Ze(s,"]]>",t,"StopNode is not closed.")-2;else{let n=pr(s,t,">");n&&((n&&n.tagName)===e&&n.tagExp[n.tagExp.length-1]!=="/"&&i++,t=n.closeIndex)}}function mr(s,e,t){if(e&&typeof s=="string"){let r=s.trim();return r==="true"?!0:r==="false"?!1:Fn(s,t)}else return mi.isExist(s)?s:""}_i.exports=fr});var wi=re(yi=>{"use strict";function jn(s,e){return gi(s,e)}function gi(s,e,t){let r,i={};for(let n=0;n<s.length;n++){let o=s[n],a=Yn(o),l="";if(t===void 0?l=a:l=t+"."+a,a===e.textNodeName)r===void 0?r=o[a]:r+=""+o[a];else{if(a===void 0)continue;if(o[a]){let c=gi(o[a],e,l),d=Xn(c,e);o[":@"]?Jn(c,o[":@"],l,e):Object.keys(c).length===1&&c[e.textNodeName]!==void 0&&!e.alwaysCreateTextNode?c=c[e.textNodeName]:Object.keys(c).length===0&&(e.alwaysCreateTextNode?c[e.textNodeName]="":c=""),i[a]!==void 0&&i.hasOwnProperty(a)?(Array.isArray(i[a])||(i[a]=[i[a]]),i[a].push(c)):e.isArray(a,l,d)?i[a]=[c]:i[a]=c}}}return typeof r=="string"?r.length>0&&(i[e.textNodeName]=r):r!==void 0&&(i[e.textNodeName]=r),i}function Yn(s){let e=Object.keys(s);for(let t=0;t<e.length;t++){let r=e[t];if(r!==":@")return r}}function Jn(s,e,t,r){if(e){let i=Object.keys(e),n=i.length;for(let o=0;o<n;o++){let a=i[o];r.isArray(a,t+"."+a,!0,!0)?s[a]=[e[a]]:s[a]=e[a]}}}function Xn(s,e){let{textNodeName:t}=e,r=Object.keys(s).length;return!!(r===0||r===1&&(s[t]||typeof s[t]=="boolean"||s[t]===0))}yi.prettify=jn});var vi=re((wh,xi)=>{var{buildOptions:Qn}=ai(),qn=bi(),{prettify:Kn}=wi(),eo=cr(),_r=class{constructor(e){this.externalEntities={},this.options=Qn(e)}parse(e,t){if(typeof e!="string")if(e.toString)e=e.toString();else throw new Error("XML data is accepted in String or Bytes[] form.");if(t){t===!0&&(t={});let n=eo.validate(e,t);if(n!==!0)throw Error(`${n.err.msg}:${n.err.line}:${n.err.col}`)}let r=new qn(this.options);r.addExternalEntities(this.externalEntities);let i=r.parseXml(e);return this.options.preserveOrder||i===void 0?i:Kn(i,this.options)}addEntity(e,t){if(t.indexOf("&")!==-1)throw new Error("Entity value can\'t have \'&\'");if(e.indexOf("&")!==-1||e.indexOf(";")!==-1)throw new Error("An entity must be set without \'&\' and \';\'. Eg. use \'#xD\' for \'
\'");if(t==="&")throw new Error("An entity with value \'&\' is not permitted");this.externalEntities[e]=t}};xi.exports=_r});var Ii=re((xh,Ti)=>{var to=`\n`;function ro(s,e){let t="";return e.format&&e.indentBy.length>0&&(t=to),Si(s,e,"",t)}function Si(s,e,t,r){let i="",n=!1;for(let o=0;o<s.length;o++){let a=s[o],l=io(a);if(l===void 0)continue;let c="";if(t.length===0?c=l:c=`${t}.${l}`,l===e.textNodeName){let f=a[l];so(c,e)||(f=e.tagValueProcessor(l,f),f=Ai(f,e)),n&&(i+=r),i+=f,n=!1;continue}else if(l===e.cdataPropName){n&&(i+=r),i+=`<![CDATA[${a[l][0][e.textNodeName]}]]>`,n=!1;continue}else if(l===e.commentPropName){i+=r+`<!--${a[l][0][e.textNodeName]}-->`,n=!0;continue}else if(l[0]==="?"){let f=Ci(a[":@"],e),b=l==="?xml"?"":r,x=a[l][0][e.textNodeName];x=x.length!==0?" "+x:"",i+=b+`<${l}${x}${f}?>`,n=!0;continue}let d=r;d!==""&&(d+=e.indentBy);let h=Ci(a[":@"],e),p=r+`<${l}${h}`,u=Si(a[l],e,c,d);e.unpairedTags.indexOf(l)!==-1?e.suppressUnpairedNode?i+=p+">":i+=p+"/>":(!u||u.length===0)&&e.suppressEmptyNode?i+=p+"/>":u&&u.endsWith(">")?i+=p+`>${u}${r}</${l}>`:(i+=p+">",u&&r!==""&&(u.includes("/>")||u.includes("</"))?i+=r+e.indentBy+u+r:i+=u,i+=`</${l}>`),n=!0}return i}function io(s){let e=Object.keys(s);for(let t=0;t<e.length;t++){let r=e[t];if(s.hasOwnProperty(r)&&r!==":@")return r}}function Ci(s,e){let t="";if(s&&!e.ignoreAttributes)for(let r in s){if(!s.hasOwnProperty(r))continue;let i=e.attributeValueProcessor(r,s[r]);i=Ai(i,e),i===!0&&e.suppressBooleanAttributes?t+=` ${r.substr(e.attributeNamePrefix.length)}`:t+=` ${r.substr(e.attributeNamePrefix.length)}="${i}"`}return t}function so(s,e){s=s.substr(0,s.length-e.textNodeName.length-1);let t=s.substr(s.lastIndexOf(".")+1);for(let r in e.stopNodes)if(e.stopNodes[r]===s||e.stopNodes[r]==="*."+t)return!0;return!1}function Ai(s,e){if(s&&s.length>0&&e.processEntities)for(let t=0;t<e.entities.length;t++){let r=e.entities[t];s=s.replace(r.regex,r.val)}return s}Ti.exports=ro});var ki=re((vh,Ri)=>{"use strict";var no=Ii(),oo=ur(),ao={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(s,e){return e},attributeValueProcessor:function(s,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("\'","g"),val:"'"},{regex:new RegExp(\'"\',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1};function Fe(s){this.options=Object.assign({},ao,s),this.options.ignoreAttributes===!0||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=oo(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=ho),this.processTextOrObjNode=lo,this.options.format?(this.indentate=co,this.tagEndChar=`>\n`,this.newLine=`\n`):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}Fe.prototype.build=function(s){return this.options.preserveOrder?no(s,this.options):(Array.isArray(s)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(s={[this.options.arrayNodeName]:s}),this.j2x(s,0,[]).val)};Fe.prototype.j2x=function(s,e,t){let r="",i="",n=t.join(".");for(let o in s)if(Object.prototype.hasOwnProperty.call(s,o))if(typeof s[o]>"u")this.isAttribute(o)&&(i+="");else if(s[o]===null)this.isAttribute(o)?i+="":o[0]==="?"?i+=this.indentate(e)+"<"+o+"?"+this.tagEndChar:i+=this.indentate(e)+"<"+o+"/"+this.tagEndChar;else if(s[o]instanceof Date)i+=this.buildTextValNode(s[o],o,"",e);else if(typeof s[o]!="object"){let a=this.isAttribute(o);if(a&&!this.ignoreAttributesFn(a,n))r+=this.buildAttrPairStr(a,""+s[o]);else if(!a)if(o===this.options.textNodeName){let l=this.options.tagValueProcessor(o,""+s[o]);i+=this.replaceEntitiesValue(l)}else i+=this.buildTextValNode(s[o],o,"",e)}else if(Array.isArray(s[o])){let a=s[o].length,l="",c="";for(let d=0;d<a;d++){let h=s[o][d];if(!(typeof h>"u"))if(h===null)o[0]==="?"?i+=this.indentate(e)+"<"+o+"?"+this.tagEndChar:i+=this.indentate(e)+"<"+o+"/"+this.tagEndChar;else if(typeof h=="object")if(this.options.oneListGroup){let p=this.j2x(h,e+1,t.concat(o));l+=p.val,this.options.attributesGroupName&&h.hasOwnProperty(this.options.attributesGroupName)&&(c+=p.attrStr)}else l+=this.processTextOrObjNode(h,o,e,t);else if(this.options.oneListGroup){let p=this.options.tagValueProcessor(o,h);p=this.replaceEntitiesValue(p),l+=p}else l+=this.buildTextValNode(h,o,"",e)}this.options.oneListGroup&&(l=this.buildObjectNode(l,o,c,e)),i+=l}else if(this.options.attributesGroupName&&o===this.options.attributesGroupName){let a=Object.keys(s[o]),l=a.length;for(let c=0;c<l;c++)r+=this.buildAttrPairStr(a[c],""+s[o][a[c]])}else i+=this.processTextOrObjNode(s[o],o,e,t);return{attrStr:r,val:i}};Fe.prototype.buildAttrPairStr=function(s,e){return e=this.options.attributeValueProcessor(s,""+e),e=this.replaceEntitiesValue(e),this.options.suppressBooleanAttributes&&e==="true"?" "+s:" "+s+\'="\'+e+\'"\'};function lo(s,e,t,r){let i=this.j2x(s,t+1,r.concat(e));return s[this.options.textNodeName]!==void 0&&Object.keys(s).length===1?this.buildTextValNode(s[this.options.textNodeName],e,i.attrStr,t):this.buildObjectNode(i.val,e,i.attrStr,t)}Fe.prototype.buildObjectNode=function(s,e,t,r){if(s==="")return e[0]==="?"?this.indentate(r)+"<"+e+t+"?"+this.tagEndChar:this.indentate(r)+"<"+e+t+this.closeTag(e)+this.tagEndChar;{let i="</"+e+this.tagEndChar,n="";return e[0]==="?"&&(n="?",i=""),(t||t==="")&&s.indexOf("<")===-1?this.indentate(r)+"<"+e+t+n+">"+s+i:this.options.commentPropName!==!1&&e===this.options.commentPropName&&n.length===0?this.indentate(r)+`<!--${s}-->`+this.newLine:this.indentate(r)+"<"+e+t+n+this.tagEndChar+s+this.indentate(r)+i}};Fe.prototype.closeTag=function(s){let e="";return this.options.unpairedTags.indexOf(s)!==-1?this.options.suppressUnpairedNode||(e="/"):this.options.suppressEmptyNode?e="/":e=`></${s}`,e};Fe.prototype.buildTextValNode=function(s,e,t,r){if(this.options.cdataPropName!==!1&&e===this.options.cdataPropName)return this.indentate(r)+`<![CDATA[${s}]]>`+this.newLine;if(this.options.commentPropName!==!1&&e===this.options.commentPropName)return this.indentate(r)+`<!--${s}-->`+this.newLine;if(e[0]==="?")return this.indentate(r)+"<"+e+t+"?"+this.tagEndChar;{let i=this.options.tagValueProcessor(e,s);return i=this.replaceEntitiesValue(i),i===""?this.indentate(r)+"<"+e+t+this.closeTag(e)+this.tagEndChar:this.indentate(r)+"<"+e+t+">"+i+"</"+e+this.tagEndChar}};Fe.prototype.replaceEntitiesValue=function(s){if(s&&s.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){let t=this.options.entities[e];s=s.replace(t.regex,t.val)}return s};function co(s){return this.options.indentBy.repeat(s)}function ho(s){return s.startsWith(this.options.attributeNamePrefix)&&s!==this.options.textNodeName?s.substr(this.attrPrefixLen):!1}Ri.exports=Fe});var Tt=re((Ch,Ei)=>{"use strict";var uo=cr(),fo=vi(),po=ki();Ei.exports={XMLParser:fo,XMLValidator:uo,XMLBuilder:po}});var Wi=re((nu,wr)=>{var _={};typeof wr=="object"&&(wr.exports=_);_.parse=function(s,e){for(var t=_.bin.readUshort,r=_.bin.readUint,a=0,i={},n=new Uint8Array(s),o=n.length-4;r(n,o)!=101010256;)o--;var a=o;a+=4,a+=4;var l=t(n,a);a+=2;var c=t(n,a);a+=2;var d=r(n,a);a+=4;var h=r(n,a);a+=4,a=h;for(var p=0;p<l;p++){var u=r(n,a);a+=4,a+=4,a+=4,a+=4;var f=r(n,a);a+=4;var d=r(n,a);a+=4;var b=r(n,a);a+=4;var x=t(n,a),v=t(n,a+2),w=t(n,a+4);a+=6,a+=8;var m=r(n,a);a+=4,a+=x+v+w,_._readLocal(n,m,i,d,b,e)}return i};_._readLocal=function(s,e,t,r,i,n){var o=_.bin.readUshort,a=_.bin.readUint,l=a(s,e);e+=4;var c=o(s,e);e+=2;var d=o(s,e);e+=2;var h=o(s,e);e+=2;var p=a(s,e);e+=4;var u=a(s,e);e+=4,e+=8;var f=o(s,e);e+=2;var b=o(s,e);e+=2;var x=_.bin.readUTF8(s,e,f);if(e+=f,e+=b,n){t[x]={size:i,csize:r};return}var v=new Uint8Array(s.buffer,e);if(h==0)t[x]=new Uint8Array(v.buffer.slice(e,e+r));else if(h==8){var w=new Uint8Array(i);_.inflateRaw(v,w),t[x]=w}else throw"unknown compression method: "+h};_.inflateRaw=function(s,e){return _.F.inflate(s,e)};_.inflate=function(s,e){var t=s[0],r=s[1],i=t&15,n=t>>>4;return _.inflateRaw(new Uint8Array(s.buffer,s.byteOffset+2,s.length-6),e)};_.deflate=function(s,e){e==null&&(e={level:6});var t=0,r=new Uint8Array(50+Math.floor(s.length*1.1));r[t]=120,r[t+1]=156,t+=2,t=_.F.deflateRaw(s,r,t,e.level);var i=_.adler(s,0,s.length);return r[t+0]=i>>>24&255,r[t+1]=i>>>16&255,r[t+2]=i>>>8&255,r[t+3]=i>>>0&255,new Uint8Array(r.buffer,0,t+4)};_.deflateRaw=function(s,e){e==null&&(e={level:6});var t=new Uint8Array(50+Math.floor(s.length*1.1)),r=_.F.deflateRaw(s,t,r,e.level);return new Uint8Array(t.buffer,0,r)};_.encode=function(s,e){e==null&&(e=!1);var t=0,r=_.bin.writeUint,i=_.bin.writeUshort,n={};for(var o in s){var a=!_._noNeed(o)&&!e,l=s[o],c=_.crc.crc(l,0,l.length);n[o]={cpr:a,usize:l.length,crc:c,file:a?_.deflateRaw(l):l}}for(var o in n)t+=n[o].file.length+30+46+2*_.bin.sizeUTF8(o);t+=22;var d=new Uint8Array(t),h=0,p=[];for(var o in n){var u=n[o];p.push(h),h=_._writeHeader(d,h,o,u,0)}var f=0,b=h;for(var o in n){var u=n[o];p.push(h),h=_._writeHeader(d,h,o,u,1,p[f++])}var x=h-b;return r(d,h,101010256),h+=4,h+=4,i(d,h,f),h+=2,i(d,h,f),h+=2,r(d,h,x),h+=4,r(d,h,b),h+=4,h+=2,d.buffer};_._noNeed=function(s){var e=s.split(".").pop().toLowerCase();return"png,jpg,jpeg,zip".indexOf(e)!=-1};_._writeHeader=function(s,e,t,r,i,n){var o=_.bin.writeUint,a=_.bin.writeUshort,l=r.file;o(s,e,i==0?67324752:33639248),e+=4,i==1&&(e+=2),a(s,e,20),e+=2,a(s,e,0),e+=2,a(s,e,r.cpr?8:0),e+=2,o(s,e,0),e+=4,o(s,e,r.crc),e+=4,o(s,e,l.length),e+=4,o(s,e,r.usize),e+=4,a(s,e,_.bin.sizeUTF8(t)),e+=2,a(s,e,0),e+=2,i==1&&(e+=2,e+=2,e+=6,o(s,e,n),e+=4);var c=_.bin.writeUTF8(s,e,t);return e+=c,i==0&&(s.set(l,e),e+=l.length),e};_.crc={table:function(){for(var s=new Uint32Array(256),e=0;e<256;e++){for(var t=e,r=0;r<8;r++)t&1?t=3988292384^t>>>1:t=t>>>1;s[e]=t}return s}(),update:function(s,e,t,r){for(var i=0;i<r;i++)s=_.crc.table[(s^e[t+i])&255]^s>>>8;return s},crc:function(s,e,t){return _.crc.update(4294967295,s,e,t)^4294967295}};_.adler=function(s,e,t){for(var r=1,i=0,n=e,o=e+t;n<o;){for(var a=Math.min(n+5552,o);n<a;)r+=s[n++],i+=r;r=r%65521,i=i%65521}return i<<16|r};_.bin={readUshort:function(s,e){return s[e]|s[e+1]<<8},writeUshort:function(s,e,t){s[e]=t&255,s[e+1]=t>>8&255},readUint:function(s,e){return s[e+3]*(256*256*256)+(s[e+2]<<16|s[e+1]<<8|s[e])},writeUint:function(s,e,t){s[e]=t&255,s[e+1]=t>>8&255,s[e+2]=t>>16&255,s[e+3]=t>>24&255},readASCII:function(s,e,t){for(var r="",i=0;i<t;i++)r+=String.fromCharCode(s[e+i]);return r},writeASCII:function(s,e,t){for(var r=0;r<t.length;r++)s[e+r]=t.charCodeAt(r)},pad:function(s){return s.length<2?"0"+s:s},readUTF8:function(s,e,t){for(var r="",i,n=0;n<t;n++)r+="%"+_.bin.pad(s[e+n].toString(16));try{i=decodeURIComponent(r)}catch{return _.bin.readASCII(s,e,t)}return i},writeUTF8:function(s,e,t){for(var r=t.length,i=0,n=0;n<r;n++){var o=t.charCodeAt(n);if(!(o&4294967168))s[e+i]=o,i++;else if(!(o&4294965248))s[e+i]=192|o>>6,s[e+i+1]=128|o>>0&63,i+=2;else if(!(o&4294901760))s[e+i]=224|o>>12,s[e+i+1]=128|o>>6&63,s[e+i+2]=128|o>>0&63,i+=3;else if(!(o&4294967295-(1<<21)+1))s[e+i]=240|o>>18,s[e+i+1]=128|o>>12&63,s[e+i+2]=128|o>>6&63,s[e+i+3]=128|o>>0&63,i+=4;else throw"e"}return i},sizeUTF8:function(s){for(var e=s.length,t=0,r=0;r<e;r++){var i=s.charCodeAt(r);if(!(i&4294967168))t++;else if(!(i&4294965248))t+=2;else if(!(i&4294901760))t+=3;else if(!(i&4294967295-(1<<21)+1))t+=4;else throw"e"}return t}};_.F={};_.F.deflateRaw=function(s,e,t,r){var i=[[0,0,0,0,0],[4,4,8,4,0],[4,5,16,8,0],[4,6,16,16,0],[4,10,16,32,0],[8,16,32,32,0],[8,16,128,128,0],[8,32,128,256,0],[32,128,258,1024,1],[32,258,258,4096,1]],n=i[r],o=_.F.U,a=_.F._goodIndex,l=_.F._hash,c=_.F._putsE,d=0,h=t<<3,p=0,u=s.length;if(r==0){for(;d<u;){var f=Math.min(65535,u-d);c(e,h,d+f==u?1:0),h=_.F._copyExact(s,d,f,e,h+8),d+=f}return h>>>3}var b=o.lits,x=o.strt,v=o.prev,w=0,m=0,S=0,G=0,P=0,D=0;u>2&&(D=_.F._hash(s,0),x[D]=0);var z=0,W=0;for(d=0;d<u;d++){if(P=D,d+1<u-2){D=_.F._hash(s,d+1);var V=d+1&32767;v[V]=x[D],x[D]=V}if(p<=d){(w>14e3||m>26697)&&u-d>100&&(p<d&&(b[w]=d-p,w+=2,p=d),h=_.F._writeBlock(d==u-1||p==u?1:0,b,w,G,s,S,d-S,e,h),w=m=G=0,S=d);var U=0;d<u-2&&(U=_.F._bestMatch(s,d,v,P,Math.min(n[2],u-d),n[3]));var f=U>>>16,K=U&65535;if(U!=0){var f=U>>>16,K=U&65535,Q=a(f,o.of0);o.lhst[257+Q]++;var X=a(K,o.df0);o.dhst[X]++,G+=o.exb[Q]+o.dxb[X],b[w]=f<<23|d-p,b[w+1]=K<<16|Q<<8|X,w+=2,p=d+f}else o.lhst[s[d]]++;m++}}for((S!=d||s.length==0)&&(p<d&&(b[w]=d-p,w+=2,p=d),h=_.F._writeBlock(1,b,w,G,s,S,d-S,e,h),w=0,m=0,w=m=G=0,S=d);h&7;)h++;return h>>>3};_.F._bestMatch=function(s,e,t,r,i,n){var o=e&32767,a=t[o],l=o-a+32768&32767;if(a==o||r!=_.F._hash(s,e-l))return 0;for(var c=0,d=0,h=Math.min(32767,e);l<=h&&--n!=0&&a!=o;){if(c==0||s[e+c]==s[e+c-l]){var p=_.F._howLong(s,e,l);if(p>c){if(c=p,d=l,c>=i)break;l+2<p&&(p=l+2);for(var u=0,f=0;f<p-2;f++){var b=e-l+f+32768&32767,x=t[b],v=b-x+32768&32767;v>u&&(u=v,a=b)}}}o=a,a=t[o],l+=o-a+32768&32767}return c<<16|d};_.F._howLong=function(s,e,t){if(s[e]!=s[e-t]||s[e+1]!=s[e+1-t]||s[e+2]!=s[e+2-t])return 0;var r=e,i=Math.min(s.length,e+258);for(e+=3;e<i&&s[e]==s[e-t];)e++;return e-r};_.F._hash=function(s,e){return(s[e]<<8|s[e+1])+(s[e+2]<<4)&65535};_.saved=0;_.F._writeBlock=function(s,e,t,r,i,n,o,a,l){var c=_.F.U,d=_.F._putsF,h=_.F._putsE,p,u,f,b,x,v,w,m,S;c.lhst[256]++,p=_.F.getTrees(),u=p[0],f=p[1],b=p[2],x=p[3],v=p[4],w=p[5],m=p[6],S=p[7];var G=(l+3&7?8-(l+3&7):0)+32+(o<<3),P=r+_.F.contSize(c.fltree,c.lhst)+_.F.contSize(c.fdtree,c.dhst),D=r+_.F.contSize(c.ltree,c.lhst)+_.F.contSize(c.dtree,c.dhst);D+=14+3*w+_.F.contSize(c.itree,c.ihst)+(c.ihst[16]*2+c.ihst[17]*3+c.ihst[18]*7);for(var z=0;z<286;z++)c.lhst[z]=0;for(var z=0;z<30;z++)c.dhst[z]=0;for(var z=0;z<19;z++)c.ihst[z]=0;var W=G<P&&G<D?0:P<D?1:2;d(a,l,s),d(a,l+1,W),l+=3;var V=l;if(W==0){for(;l&7;)l++;l=_.F._copyExact(i,n,o,a,l)}else{var U,K;if(W==1&&(U=c.fltree,K=c.fdtree),W==2){_.F.makeCodes(c.ltree,u),_.F.revCodes(c.ltree,u),_.F.makeCodes(c.dtree,f),_.F.revCodes(c.dtree,f),_.F.makeCodes(c.itree,b),_.F.revCodes(c.itree,b),U=c.ltree,K=c.dtree,h(a,l,x-257),l+=5,h(a,l,v-1),l+=5,h(a,l,w-4),l+=4;for(var Q=0;Q<w;Q++)h(a,l+Q*3,c.itree[(c.ordr[Q]<<1)+1]);l+=3*w,l=_.F._codeTiny(m,c.itree,a,l),l=_.F._codeTiny(S,c.itree,a,l)}for(var X=n,ee=0;ee<t;ee+=2){for(var j=e[ee],oe=j>>>23,te=X+(j&(1<<23)-1);X<te;)l=_.F._writeLit(i[X++],U,a,l);if(oe!=0){var ue=e[ee+1],ce=ue>>16,g=ue>>8&255,T=ue&255;l=_.F._writeLit(257+g,U,a,l),h(a,l,oe-c.of0[g]),l+=c.exb[g],l=_.F._writeLit(T,K,a,l),d(a,l,ce-c.df0[T]),l+=c.dxb[T],X+=oe}}l=_.F._writeLit(256,U,a,l)}return l};_.F._copyExact=function(s,e,t,r,i){var n=i>>>3;return r[n]=t,r[n+1]=t>>>8,r[n+2]=255-r[n],r[n+3]=255-r[n+1],n+=4,r.set(new Uint8Array(s.buffer,e,t),n),i+(t+4<<3)};_.F.getTrees=function(){for(var s=_.F.U,e=_.F._hufTree(s.lhst,s.ltree,15),t=_.F._hufTree(s.dhst,s.dtree,15),r=[],i=_.F._lenCodes(s.ltree,r),n=[],o=_.F._lenCodes(s.dtree,n),a=0;a<r.length;a+=2)s.ihst[r[a]]++;for(var a=0;a<n.length;a+=2)s.ihst[n[a]]++;for(var l=_.F._hufTree(s.ihst,s.itree,7),c=19;c>4&&s.itree[(s.ordr[c-1]<<1)+1]==0;)c--;return[e,t,l,i,o,c,r,n]};_.F.getSecond=function(s){for(var e=[],t=0;t<s.length;t+=2)e.push(s[t+1]);return e};_.F.nonZero=function(s){for(var e="",t=0;t<s.length;t+=2)s[t+1]!=0&&(e+=(t>>1)+",");return e};_.F.contSize=function(s,e){for(var t=0,r=0;r<e.length;r++)t+=e[r]*s[(r<<1)+1];return t};_.F._codeTiny=function(s,e,t,r){for(var i=0;i<s.length;i+=2){var n=s[i],o=s[i+1];r=_.F._writeLit(n,e,t,r);var a=n==16?2:n==17?3:7;n>15&&(_.F._putsE(t,r,o,a),r+=a)}return r};_.F._lenCodes=function(s,e){for(var t=s.length;t!=2&&s[t-1]==0;)t-=2;for(var r=0;r<t;r+=2){var i=s[r+1],n=r+3<t?s[r+3]:-1,o=r+5<t?s[r+5]:-1,a=r==0?-1:s[r-1];if(i==0&&n==i&&o==i){for(var l=r+5;l+2<t&&s[l+2]==i;)l+=2;var c=Math.min(l+1-r>>>1,138);c<11?e.push(17,c-3):e.push(18,c-11),r+=c*2-2}else if(i==a&&n==i&&o==i){for(var l=r+5;l+2<t&&s[l+2]==i;)l+=2;var c=Math.min(l+1-r>>>1,6);e.push(16,c-3),r+=c*2-2}else e.push(i,0)}return t>>>1};_.F._hufTree=function(s,e,t){var r=[],i=s.length,n=e.length,o=0;for(o=0;o<n;o+=2)e[o]=0,e[o+1]=0;for(o=0;o<i;o++)s[o]!=0&&r.push({lit:o,f:s[o]});var a=r.length,l=r.slice(0);if(a==0)return 0;if(a==1){var c=r[0].lit,l=c==0?1:0;return e[(c<<1)+1]=1,e[(l<<1)+1]=1,1}r.sort(function(x,v){return x.f-v.f});var d=r[0],h=r[1],p=0,u=1,f=2;for(r[0]={lit:-1,f:d.f+h.f,l:d,r:h,d:0};u!=a-1;)p!=u&&(f==a||r[p].f<r[f].f)?d=r[p++]:d=r[f++],p!=u&&(f==a||r[p].f<r[f].f)?h=r[p++]:h=r[f++],r[u++]={lit:-1,f:d.f+h.f,l:d,r:h};var b=_.F.setDepth(r[u-1],0);for(b>t&&(_.F.restrictDepth(l,t,b),b=t),o=0;o<a;o++)e[(l[o].lit<<1)+1]=l[o].d;return b};_.F.setDepth=function(s,e){return s.lit!=-1?(s.d=e,e):Math.max(_.F.setDepth(s.l,e+1),_.F.setDepth(s.r,e+1))};_.F.restrictDepth=function(s,e,t){var r=0,i=1<<t-e,n=0;for(s.sort(function(a,l){return l.d==a.d?a.f-l.f:l.d-a.d}),r=0;r<s.length&&s[r].d>e;r++){var o=s[r].d;s[r].d=e,n+=i-(1<<t-o)}for(n=n>>>t-e;n>0;){var o=s[r].d;o<e?(s[r].d++,n-=1<<e-o-1):r++}for(;r>=0;r--)s[r].d==e&&n<0&&(s[r].d--,n++);n!=0&&console.log("debt left")};_.F._goodIndex=function(s,e){var t=0;return e[t|16]<=s&&(t|=16),e[t|8]<=s&&(t|=8),e[t|4]<=s&&(t|=4),e[t|2]<=s&&(t|=2),e[t|1]<=s&&(t|=1),t};_.F._writeLit=function(s,e,t,r){return _.F._putsF(t,r,e[s<<1]),r+e[(s<<1)+1]};_.F.inflate=function(s,e){var t=Uint8Array;if(s[0]==3&&s[1]==0)return e||new t(0);var r=_.F,i=r._bitsF,n=r._bitsE,o=r._decodeTiny,a=r.makeCodes,l=r.codes2map,c=r._get17,d=r.U,h=e==null;h&&(e=new t(s.length>>>2<<3));for(var p=0,u=0,f=0,b=0,x=0,v=0,w=0,m=0,S=0,G,P;p==0;){if(p=i(s,S,1),u=i(s,S+1,2),S+=3,u==0){S&7&&(S+=8-(S&7));var D=(S>>>3)+4,z=s[D-4]|s[D-3]<<8;h&&(e=_.F._check(e,m+z)),e.set(new t(s.buffer,s.byteOffset+D,z),m),S=D+z<<3,m+=z;continue}if(h&&(e=_.F._check(e,m+(1<<17))),u==1&&(G=d.flmap,P=d.fdmap,v=511,w=31),u==2){f=n(s,S,5)+257,b=n(s,S+5,5)+1,x=n(s,S+10,4)+4,S+=14;for(var W=S,V=0;V<38;V+=2)d.itree[V]=0,d.itree[V+1]=0;for(var U=1,V=0;V<x;V++){var K=n(s,S+V*3,3);d.itree[(d.ordr[V]<<1)+1]=K,K>U&&(U=K)}S+=3*x,a(d.itree,U),l(d.itree,U,d.imap),G=d.lmap,P=d.dmap,S=o(d.imap,(1<<U)-1,f+b,s,S,d.ttree);var Q=r._copyOut(d.ttree,0,f,d.ltree);v=(1<<Q)-1;var X=r._copyOut(d.ttree,f,b,d.dtree);w=(1<<X)-1,a(d.ltree,Q),l(d.ltree,Q,G),a(d.dtree,X),l(d.dtree,X,P)}for(;;){var ee=G[c(s,S)&v];S+=ee&15;var j=ee>>>4;if(!(j>>>8))e[m++]=j;else{if(j==256)break;var oe=m+j-254;if(j>264){var te=d.ldef[j-257];oe=m+(te>>>3)+n(s,S,te&7),S+=te&7}var ue=P[c(s,S)&w];S+=ue&15;var ce=ue>>>4,g=d.ddef[ce],T=(g>>>4)+i(s,S,g&15);for(S+=g&15,h&&(e=_.F._check(e,m+(1<<17)));m<oe;)e[m]=e[m++-T],e[m]=e[m++-T],e[m]=e[m++-T],e[m]=e[m++-T];m=oe}}}return e.length==m?e:e.slice(0,m)};_.F._check=function(s,e){var t=s.length;if(e<=t)return s;var r=new Uint8Array(Math.max(t<<1,e));return r.set(s,0),r};_.F._decodeTiny=function(s,e,t,r,i,n){for(var o=_.F._bitsE,a=_.F._get17,l=0;l<t;){var c=s[a(r,i)&e];i+=c&15;var d=c>>>4;if(d<=15)n[l]=d,l++;else{var h=0,p=0;d==16?(p=3+o(r,i,2),i+=2,h=n[l-1]):d==17?(p=3+o(r,i,3),i+=3):d==18&&(p=11+o(r,i,7),i+=7);for(var u=l+p;l<u;)n[l]=h,l++}}return i};_.F._copyOut=function(s,e,t,r){for(var i=0,n=0,o=r.length>>>1;n<t;){var a=s[n+e];r[n<<1]=0,r[(n<<1)+1]=a,a>i&&(i=a),n++}for(;n<o;)r[n<<1]=0,r[(n<<1)+1]=0,n++;return i};_.F.makeCodes=function(s,e){for(var t=_.F.U,r=s.length,i,n,o,a,l,c=t.bl_count,a=0;a<=e;a++)c[a]=0;for(a=1;a<r;a+=2)c[s[a]]++;var d=t.next_code;for(i=0,c[0]=0,n=1;n<=e;n++)i=i+c[n-1]<<1,d[n]=i;for(o=0;o<r;o+=2)l=s[o+1],l!=0&&(s[o]=d[l],d[l]++)};_.F.codes2map=function(s,e,t){for(var r=s.length,i=_.F.U,n=i.rev15,o=0;o<r;o+=2)if(s[o+1]!=0)for(var a=o>>1,l=s[o+1],c=a<<4|l,d=e-l,h=s[o]<<d,p=h+(1<<d);h!=p;){var u=n[h]>>>15-e;t[u]=c,h++}};_.F.revCodes=function(s,e){for(var t=_.F.U.rev15,r=15-e,i=0;i<s.length;i+=2){var n=s[i]<<e-s[i+1];s[i]=t[n]>>>r}};_.F._putsE=function(s,e,t){t=t<<(e&7);var r=e>>>3;s[r]|=t,s[r+1]|=t>>>8};_.F._putsF=function(s,e,t){t=t<<(e&7);var r=e>>>3;s[r]|=t,s[r+1]|=t>>>8,s[r+2]|=t>>>16};_.F._bitsE=function(s,e,t){return(s[e>>>3]|s[(e>>>3)+1]<<8)>>>(e&7)&(1<<t)-1};_.F._bitsF=function(s,e,t){return(s[e>>>3]|s[(e>>>3)+1]<<8|s[(e>>>3)+2]<<16)>>>(e&7)&(1<<t)-1};_.F._get17=function(s,e){return(s[e>>>3]|s[(e>>>3)+1]<<8|s[(e>>>3)+2]<<16)>>>(e&7)};_.F._get25=function(s,e){return(s[e>>>3]|s[(e>>>3)+1]<<8|s[(e>>>3)+2]<<16|s[(e>>>3)+3]<<24)>>>(e&7)};_.F.U=function(){var s=Uint16Array,e=Uint32Array;return{next_code:new s(16),bl_count:new s(16),ordr:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],of0:[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,999,999,999],exb:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],ldef:new s(32),df0:[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,65535,65535],dxb:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],ddef:new e(32),flmap:new s(512),fltree:[],fdmap:new s(32),fdtree:[],lmap:new s(32768),ltree:[],ttree:[],dmap:new s(32768),dtree:[],imap:new s(512),itree:[],rev15:new s(32768),lhst:new e(286),dhst:new e(30),ihst:new e(19),lits:new e(15e3),strt:new s(65536),prev:new s(32768)}}();(function(){for(var s=_.F.U,e=32768,t=0;t<e;t++){var r=t;r=(r&2863311530)>>>1|(r&1431655765)<<1,r=(r&3435973836)>>>2|(r&858993459)<<2,r=(r&4042322160)>>>4|(r&252645135)<<4,r=(r&4278255360)>>>8|(r&16711935)<<8,s.rev15[t]=(r>>>16|r<<16)>>>17}function i(n,o,a){for(;o--!=0;)n.push(0,a)}for(var t=0;t<32;t++)s.ldef[t]=s.of0[t]<<3|s.exb[t],s.ddef[t]=s.df0[t]<<4|s.dxb[t];i(s.fltree,144,8),i(s.fltree,112,9),i(s.fltree,24,7),i(s.fltree,8,8),_.F.makeCodes(s.fltree,9),_.F.codes2map(s.fltree,9,s.flmap),_.F.revCodes(s.fltree,9),i(s.fdtree,32,5),_.F.makeCodes(s.fdtree,5),_.F.codes2map(s.fdtree,5,s.fdmap),_.F.revCodes(s.fdtree,5),i(s.itree,19,0),i(s.ltree,286,0),i(s.dtree,30,0),i(s.ttree,320,0)})()});var ji=De(ut());var ft=s=>{let e=Math.floor((s-5)/7*100+.5)/100;return Math.floor((e*7+5)/7*256)/256},Vt=s=>Math.floor((256*s+Math.floor(18.285714285714285))/256*7);var Ir="UEsDBAoAAAAAAAAAIQBi7p1okAQAAJAEAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4NCjxUeXBlcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9jb250ZW50LXR5cGVzIj48RGVmYXVsdCBFeHRlbnNpb249InJlbHMiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5yZWxhdGlvbnNoaXBzK3htbCIvPjxEZWZhdWx0IEV4dGVuc2lvbj0ieG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24veG1sIi8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvd29ya2Jvb2sueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQubWFpbit4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jrc2hlZXQreG1sIi8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvdGhlbWUvdGhlbWUxLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZSt4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC9zdHlsZXMueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc3R5bGVzK3htbCIvPjxPdmVycmlkZSBQYXJ0TmFtZT0iL3hsL3NoYXJlZFN0cmluZ3MueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hhcmVkU3RyaW5ncyt4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii9kb2NQcm9wcy9jb3JlLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmNvcmUtcHJvcGVydGllcyt4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii9kb2NQcm9wcy9hcHAueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmV4dGVuZGVkLXByb3BlcnRpZXMreG1sIi8+PC9UeXBlcz5QSwMECgAAAAAAAAAhALVVMCNMAgAATAIAAAsAAABfcmVscy8ucmVsczw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4NCjxSZWxhdGlvbnNoaXBzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMiPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDMiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZW5kZWQtcHJvcGVydGllcyIgVGFyZ2V0PSJkb2NQcm9wcy9hcHAueG1sIi8+PFJlbGF0aW9uc2hpcCBJZD0icklkMiIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzL21ldGFkYXRhL2NvcmUtcHJvcGVydGllcyIgVGFyZ2V0PSJkb2NQcm9wcy9jb3JlLnhtbCIvPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDEiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvb2ZmaWNlRG9jdW1lbnQiIFRhcmdldD0ieGwvd29ya2Jvb2sueG1sIi8+PC9SZWxhdGlvbnNoaXBzPlBLAwQKAAAAAAAAACEAunCeZsoGAADKBgAADwAAAHhsL3dvcmtib29rLnhtbDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4NCjx3b3JrYm9vayB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE1IHhyIHhyNiB4cjEwIHhyMiIgeG1sbnM6eDE1PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvbWFpbiIgeG1sbnM6eHI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxNC9yZXZpc2lvbiIgeG1sbnM6eHI2PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTYvcmV2aXNpb242IiB4bWxuczp4cjEwPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTYvcmV2aXNpb24xMCIgeG1sbnM6eHIyPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTUvcmV2aXNpb24yIj48ZmlsZVZlcnNpb24gYXBwTmFtZT0ieGwiIGxhc3RFZGl0ZWQ9IjciIGxvd2VzdEVkaXRlZD0iNyIgcnVwQnVpbGQ9IjIxMTI2Ii8+PHdvcmtib29rUHIgZGVmYXVsdFRoZW1lVmVyc2lvbj0iMTY2OTI1Ii8+PG1jOkFsdGVybmF0ZUNvbnRlbnQgeG1sbnM6bWM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2Ij48bWM6Q2hvaWNlIFJlcXVpcmVzPSJ4MTUiPjx4MTVhYzphYnNQYXRoIHVybD0iSDpcVFJFQlx0cmViLWV4cG9ydFx0ZW1wbGF0ZVwiIHhtbG5zOngxNWFjPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvYWMiLz48L21jOkNob2ljZT48L21jOkFsdGVybmF0ZUNvbnRlbnQ+PHhyOnJldmlzaW9uUHRyIHJldklETGFzdFNhdmU9IjAiIGRvY3VtZW50SWQ9Ijhfe0Q4NThGOUY3LTBEOTItNEFFNC04QTQyLTQ4MENCMzU5QjYyRH0iIHhyNjpjb2F1dGhWZXJzaW9uTGFzdD0iNDAiIHhyNjpjb2F1dGhWZXJzaW9uTWF4PSI0MCIgeHIxMDp1aWRMYXN0U2F2ZT0iezAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMH0iLz48Ym9va1ZpZXdzPjx3b3JrYm9va1ZpZXcgeFdpbmRvdz0iMCIgeVdpbmRvdz0iMCIgd2luZG93V2lkdGg9IjI0NTcwIiB3aW5kb3dIZWlnaHQ9IjExMTMwIiB4cjI6dWlkPSJ7REU0RTdEMzUtNDkyRC00MEQ3LTk5MjUtNDY0N0Y1ODdFMURFfSIvPjwvYm9va1ZpZXdzPjxzaGVldHM+PHNoZWV0IG5hbWU9IlNoZWV0MSIgc2hlZXRJZD0iMSIgcjppZD0icklkMSIvPjwvc2hlZXRzPjxjYWxjUHIgY2FsY0lkPSIxOTEwMjkiLz48ZXh0THN0PjxleHQgdXJpPSJ7MTQwQTcwOTQtMEUzNS00ODkyLTg0MzItQzREMkU1N0VERUI1fSIgeG1sbnM6eDE1PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvbWFpbiI+PHgxNTp3b3JrYm9va1ByIGNoYXJ0VHJhY2tpbmdSZWZCYXNlPSIxIi8+PC9leHQ+PC9leHRMc3Q+PC93b3JrYm9vaz5QSwMECgAAAAAAAAAhAIE+lJe6AgAAugIAABoAAAB4bC9fcmVscy93b3JrYm9vay54bWwucmVsczw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4NCjxSZWxhdGlvbnNoaXBzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMiPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDMiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvc3R5bGVzIiBUYXJnZXQ9InN0eWxlcy54bWwiLz48UmVsYXRpb25zaGlwIElkPSJySWQyIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3RoZW1lIiBUYXJnZXQ9InRoZW1lL3RoZW1lMS54bWwiLz48UmVsYXRpb25zaGlwIElkPSJySWQxIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3dvcmtzaGVldCIgVGFyZ2V0PSJ3b3Jrc2hlZXRzL3NoZWV0MS54bWwiLz48UmVsYXRpb25zaGlwIElkPSJySWQ0IiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3NoYXJlZFN0cmluZ3MiIFRhcmdldD0ic2hhcmVkU3RyaW5ncy54bWwiLz48L1JlbGF0aW9uc2hpcHM+UEsDBAoAAAAAAAAAIQACrURzpAMAAKQDAAAYAAAAeGwvd29ya3NoZWV0cy9zaGVldDEueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHdvcmtzaGVldCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE0YWMgeHIgeHIyIHhyMyIgeG1sbnM6eDE0YWM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAwOS85L2FjIiB4bWxuczp4cj0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDE0L3JldmlzaW9uIiB4bWxuczp4cjI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxNS9yZXZpc2lvbjIiIHhtbG5zOnhyMz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDE2L3JldmlzaW9uMyIgeHI6dWlkPSJ7MEQ4RTVDQTItNUM5RS00RDRCLTk0QzUtRjM1QzA0MUYzOUJEfSI+PGRpbWVuc2lvbiByZWY9IkExIi8+PHNoZWV0Vmlld3M+PHNoZWV0VmlldyB0YWJTZWxlY3RlZD0iMSIgd29ya2Jvb2tWaWV3SWQ9IjAiLz48L3NoZWV0Vmlld3M+PHNoZWV0Rm9ybWF0UHIgZGVmYXVsdFJvd0hlaWdodD0iMTUiIHgxNGFjOmR5RGVzY2VudD0iMC4yNSIvPjxzaGVldERhdGEvPjxwYWdlTWFyZ2lucyBsZWZ0PSIwLjciIHJpZ2h0PSIwLjciIHRvcD0iMC43NSIgYm90dG9tPSIwLjc1IiBoZWFkZXI9IjAuMyIgZm9vdGVyPSIwLjMiLz48L3dvcmtzaGVldD5QSwMECgAAAAAAAAAhAMEXEL7GIAAAxiAAABMAAAB4bC90aGVtZS90aGVtZTEueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPGE6dGhlbWUgeG1sbnM6YT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL2RyYXdpbmdtbC8yMDA2L21haW4iIG5hbWU9Ik9mZmljZSBUaGVtZSI+PGE6dGhlbWVFbGVtZW50cz48YTpjbHJTY2hlbWUgbmFtZT0iT2ZmaWNlIj48YTpkazE+PGE6c3lzQ2xyIHZhbD0id2luZG93VGV4dCIgbGFzdENscj0iMDAwMDAwIi8+PC9hOmRrMT48YTpsdDE+PGE6c3lzQ2xyIHZhbD0id2luZG93IiBsYXN0Q2xyPSJGRkZGRkYiLz48L2E6bHQxPjxhOmRrMj48YTpzcmdiQ2xyIHZhbD0iNDQ1NDZBIi8+PC9hOmRrMj48YTpsdDI+PGE6c3JnYkNsciB2YWw9IkU3RTZFNiIvPjwvYTpsdDI+PGE6YWNjZW50MT48YTpzcmdiQ2xyIHZhbD0iNDQ3MkM0Ii8+PC9hOmFjY2VudDE+PGE6YWNjZW50Mj48YTpzcmdiQ2xyIHZhbD0iRUQ3RDMxIi8+PC9hOmFjY2VudDI+PGE6YWNjZW50Mz48YTpzcmdiQ2xyIHZhbD0iQTVBNUE1Ii8+PC9hOmFjY2VudDM+PGE6YWNjZW50ND48YTpzcmdiQ2xyIHZhbD0iRkZDMDAwIi8+PC9hOmFjY2VudDQ+PGE6YWNjZW50NT48YTpzcmdiQ2xyIHZhbD0iNUI5QkQ1Ii8+PC9hOmFjY2VudDU+PGE6YWNjZW50Nj48YTpzcmdiQ2xyIHZhbD0iNzBBRDQ3Ii8+PC9hOmFjY2VudDY+PGE6aGxpbms+PGE6c3JnYkNsciB2YWw9IjA1NjNDMSIvPjwvYTpobGluaz48YTpmb2xIbGluaz48YTpzcmdiQ2xyIHZhbD0iOTU0RjcyIi8+PC9hOmZvbEhsaW5rPjwvYTpjbHJTY2hlbWU+PGE6Zm9udFNjaGVtZSBuYW1lPSJPZmZpY2UiPjxhOm1ham9yRm9udD48YTpsYXRpbiB0eXBlZmFjZT0iQ2FsaWJyaSBMaWdodCIgcGFub3NlPSIwMjBGMDMwMjAyMDIwNDAzMDIwNCIvPjxhOmVhIHR5cGVmYWNlPSIiLz48YTpjcyB0eXBlZmFjZT0iIi8+PGE6Zm9udCBzY3JpcHQ9IkpwYW4iIHR5cGVmYWNlPSLmuLjjgrTjgrfjg4Pjgq8gTGlnaHQiLz48YTpmb250IHNjcmlwdD0iSGFuZyIgdHlwZWZhY2U9IuunkeydgCDqs6DrlJUiLz48YTpmb250IHNjcmlwdD0iSGFucyIgdHlwZWZhY2U9Iuetiee6vyBMaWdodCIvPjxhOmZvbnQgc2NyaXB0PSJIYW50IiB0eXBlZmFjZT0i5paw57Sw5piO6auUIi8+PGE6Zm9udCBzY3JpcHQ9IkFyYWIiIHR5cGVmYWNlPSJUaW1lcyBOZXcgUm9tYW4iLz48YTpmb250IHNjcmlwdD0iSGViciIgdHlwZWZhY2U9IlRpbWVzIE5ldyBSb21hbiIvPjxhOmZvbnQgc2NyaXB0PSJUaGFpIiB0eXBlZmFjZT0iVGFob21hIi8+PGE6Zm9udCBzY3JpcHQ9IkV0aGkiIHR5cGVmYWNlPSJOeWFsYSIvPjxhOmZvbnQgc2NyaXB0PSJCZW5nIiB0eXBlZmFjZT0iVnJpbmRhIi8+PGE6Zm9udCBzY3JpcHQ9Ikd1anIiIHR5cGVmYWNlPSJTaHJ1dGkiLz48YTpmb250IHNjcmlwdD0iS2htciIgdHlwZWZhY2U9Ik1vb2xCb3JhbiIvPjxhOmZvbnQgc2NyaXB0PSJLbmRhIiB0eXBlZmFjZT0iVHVuZ2EiLz48YTpmb250IHNjcmlwdD0iR3VydSIgdHlwZWZhY2U9IlJhYXZpIi8+PGE6Zm9udCBzY3JpcHQ9IkNhbnMiIHR5cGVmYWNlPSJFdXBoZW1pYSIvPjxhOmZvbnQgc2NyaXB0PSJDaGVyIiB0eXBlZmFjZT0iUGxhbnRhZ2VuZXQgQ2hlcm9rZWUiLz48YTpmb250IHNjcmlwdD0iWWlpaSIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBZaSBCYWl0aSIvPjxhOmZvbnQgc2NyaXB0PSJUaWJ0IiB0eXBlZmFjZT0iTWljcm9zb2Z0IEhpbWFsYXlhIi8+PGE6Zm9udCBzY3JpcHQ9IlRoYWEiIHR5cGVmYWNlPSJNViBCb2xpIi8+PGE6Zm9udCBzY3JpcHQ9IkRldmEiIHR5cGVmYWNlPSJNYW5nYWwiLz48YTpmb250IHNjcmlwdD0iVGVsdSIgdHlwZWZhY2U9IkdhdXRhbWkiLz48YTpmb250IHNjcmlwdD0iVGFtbCIgdHlwZWZhY2U9IkxhdGhhIi8+PGE6Zm9udCBzY3JpcHQ9IlN5cmMiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPjxhOmZvbnQgc2NyaXB0PSJPcnlhIiB0eXBlZmFjZT0iS2FsaW5nYSIvPjxhOmZvbnQgc2NyaXB0PSJNbHltIiB0eXBlZmFjZT0iS2FydGlrYSIvPjxhOmZvbnQgc2NyaXB0PSJMYW9vIiB0eXBlZmFjZT0iRG9rQ2hhbXBhIi8+PGE6Zm9udCBzY3JpcHQ9IlNpbmgiIHR5cGVmYWNlPSJJc2tvb2xhIFBvdGEiLz48YTpmb250IHNjcmlwdD0iTW9uZyIgdHlwZWZhY2U9Ik1vbmdvbGlhbiBCYWl0aSIvPjxhOmZvbnQgc2NyaXB0PSJWaWV0IiB0eXBlZmFjZT0iVGltZXMgTmV3IFJvbWFuIi8+PGE6Zm9udCBzY3JpcHQ9IlVpZ2giIHR5cGVmYWNlPSJNaWNyb3NvZnQgVWlnaHVyIi8+PGE6Zm9udCBzY3JpcHQ9Ikdlb3IiIHR5cGVmYWNlPSJTeWxmYWVuIi8+PGE6Zm9udCBzY3JpcHQ9IkFybW4iIHR5cGVmYWNlPSJBcmlhbCIvPjxhOmZvbnQgc2NyaXB0PSJCdWdpIiB0eXBlZmFjZT0iTGVlbGF3YWRlZSBVSSIvPjxhOmZvbnQgc2NyaXB0PSJCb3BvIiB0eXBlZmFjZT0iTWljcm9zb2Z0IEpoZW5nSGVpIi8+PGE6Zm9udCBzY3JpcHQ9IkphdmEiIHR5cGVmYWNlPSJKYXZhbmVzZSBUZXh0Ii8+PGE6Zm9udCBzY3JpcHQ9Ikxpc3UiIHR5cGVmYWNlPSJTZWdvZSBVSSIvPjxhOmZvbnQgc2NyaXB0PSJNeW1yIiB0eXBlZmFjZT0iTXlhbm1hciBUZXh0Ii8+PGE6Zm9udCBzY3JpcHQ9Ik5rb28iIHR5cGVmYWNlPSJFYnJpbWEiLz48YTpmb250IHNjcmlwdD0iT2xjayIgdHlwZWZhY2U9Ik5pcm1hbGEgVUkiLz48YTpmb250IHNjcmlwdD0iT3NtYSIgdHlwZWZhY2U9IkVicmltYSIvPjxhOmZvbnQgc2NyaXB0PSJQaGFnIiB0eXBlZmFjZT0iUGhhZ3NwYSIvPjxhOmZvbnQgc2NyaXB0PSJTeXJuIiB0eXBlZmFjZT0iRXN0cmFuZ2VsbyBFZGVzc2EiLz48YTpmb250IHNjcmlwdD0iU3lyaiIgdHlwZWZhY2U9IkVzdHJhbmdlbG8gRWRlc3NhIi8+PGE6Zm9udCBzY3JpcHQ9IlN5cmUiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPjxhOmZvbnQgc2NyaXB0PSJTb3JhIiB0eXBlZmFjZT0iTmlybWFsYSBVSSIvPjxhOmZvbnQgc2NyaXB0PSJUYWxlIiB0eXBlZmFjZT0iTWljcm9zb2Z0IFRhaSBMZSIvPjxhOmZvbnQgc2NyaXB0PSJUYWx1IiB0eXBlZmFjZT0iTWljcm9zb2Z0IE5ldyBUYWkgTHVlIi8+PGE6Zm9udCBzY3JpcHQ9IlRmbmciIHR5cGVmYWNlPSJFYnJpbWEiLz48L2E6bWFqb3JGb250PjxhOm1pbm9yRm9udD48YTpsYXRpbiB0eXBlZmFjZT0iQ2FsaWJyaSIgcGFub3NlPSIwMjBGMDUwMjAyMDIwNDAzMDIwNCIvPjxhOmVhIHR5cGVmYWNlPSIiLz48YTpjcyB0eXBlZmFjZT0iIi8+PGE6Zm9udCBzY3JpcHQ9IkpwYW4iIHR5cGVmYWNlPSLmuLjjgrTjgrfjg4Pjgq8iLz48YTpmb250IHNjcmlwdD0iSGFuZyIgdHlwZWZhY2U9IuunkeydgCDqs6DrlJUiLz48YTpmb250IHNjcmlwdD0iSGFucyIgdHlwZWZhY2U9Iuetiee6vyIvPjxhOmZvbnQgc2NyaXB0PSJIYW50IiB0eXBlZmFjZT0i5paw57Sw5piO6auUIi8+PGE6Zm9udCBzY3JpcHQ9IkFyYWIiIHR5cGVmYWNlPSJBcmlhbCIvPjxhOmZvbnQgc2NyaXB0PSJIZWJyIiB0eXBlZmFjZT0iQXJpYWwiLz48YTpmb250IHNjcmlwdD0iVGhhaSIgdHlwZWZhY2U9IlRhaG9tYSIvPjxhOmZvbnQgc2NyaXB0PSJFdGhpIiB0eXBlZmFjZT0iTnlhbGEiLz48YTpmb250IHNjcmlwdD0iQmVuZyIgdHlwZWZhY2U9IlZyaW5kYSIvPjxhOmZvbnQgc2NyaXB0PSJHdWpyIiB0eXBlZmFjZT0iU2hydXRpIi8+PGE6Zm9udCBzY3JpcHQ9IktobXIiIHR5cGVmYWNlPSJEYXVuUGVuaCIvPjxhOmZvbnQgc2NyaXB0PSJLbmRhIiB0eXBlZmFjZT0iVHVuZ2EiLz48YTpmb250IHNjcmlwdD0iR3VydSIgdHlwZWZhY2U9IlJhYXZpIi8+PGE6Zm9udCBzY3JpcHQ9IkNhbnMiIHR5cGVmYWNlPSJFdXBoZW1pYSIvPjxhOmZvbnQgc2NyaXB0PSJDaGVyIiB0eXBlZmFjZT0iUGxhbnRhZ2VuZXQgQ2hlcm9rZWUiLz48YTpmb250IHNjcmlwdD0iWWlpaSIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBZaSBCYWl0aSIvPjxhOmZvbnQgc2NyaXB0PSJUaWJ0IiB0eXBlZmFjZT0iTWljcm9zb2Z0IEhpbWFsYXlhIi8+PGE6Zm9udCBzY3JpcHQ9IlRoYWEiIHR5cGVmYWNlPSJNViBCb2xpIi8+PGE6Zm9udCBzY3JpcHQ9IkRldmEiIHR5cGVmYWNlPSJNYW5nYWwiLz48YTpmb250IHNjcmlwdD0iVGVsdSIgdHlwZWZhY2U9IkdhdXRhbWkiLz48YTpmb250IHNjcmlwdD0iVGFtbCIgdHlwZWZhY2U9IkxhdGhhIi8+PGE6Zm9udCBzY3JpcHQ9IlN5cmMiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPjxhOmZvbnQgc2NyaXB0PSJPcnlhIiB0eXBlZmFjZT0iS2FsaW5nYSIvPjxhOmZvbnQgc2NyaXB0PSJNbHltIiB0eXBlZmFjZT0iS2FydGlrYSIvPjxhOmZvbnQgc2NyaXB0PSJMYW9vIiB0eXBlZmFjZT0iRG9rQ2hhbXBhIi8+PGE6Zm9udCBzY3JpcHQ9IlNpbmgiIHR5cGVmYWNlPSJJc2tvb2xhIFBvdGEiLz48YTpmb250IHNjcmlwdD0iTW9uZyIgdHlwZWZhY2U9Ik1vbmdvbGlhbiBCYWl0aSIvPjxhOmZvbnQgc2NyaXB0PSJWaWV0IiB0eXBlZmFjZT0iQXJpYWwiLz48YTpmb250IHNjcmlwdD0iVWlnaCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBVaWdodXIiLz48YTpmb250IHNjcmlwdD0iR2VvciIgdHlwZWZhY2U9IlN5bGZhZW4iLz48YTpmb250IHNjcmlwdD0iQXJtbiIgdHlwZWZhY2U9IkFyaWFsIi8+PGE6Zm9udCBzY3JpcHQ9IkJ1Z2kiIHR5cGVmYWNlPSJMZWVsYXdhZGVlIFVJIi8+PGE6Zm9udCBzY3JpcHQ9IkJvcG8iIHR5cGVmYWNlPSJNaWNyb3NvZnQgSmhlbmdIZWkiLz48YTpmb250IHNjcmlwdD0iSmF2YSIgdHlwZWZhY2U9IkphdmFuZXNlIFRleHQiLz48YTpmb250IHNjcmlwdD0iTGlzdSIgdHlwZWZhY2U9IlNlZ29lIFVJIi8+PGE6Zm9udCBzY3JpcHQ9Ik15bXIiIHR5cGVmYWNlPSJNeWFubWFyIFRleHQiLz48YTpmb250IHNjcmlwdD0iTmtvbyIgdHlwZWZhY2U9IkVicmltYSIvPjxhOmZvbnQgc2NyaXB0PSJPbGNrIiB0eXBlZmFjZT0iTmlybWFsYSBVSSIvPjxhOmZvbnQgc2NyaXB0PSJPc21hIiB0eXBlZmFjZT0iRWJyaW1hIi8+PGE6Zm9udCBzY3JpcHQ9IlBoYWciIHR5cGVmYWNlPSJQaGFnc3BhIi8+PGE6Zm9udCBzY3JpcHQ9IlN5cm4iIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPjxhOmZvbnQgc2NyaXB0PSJTeXJqIiB0eXBlZmFjZT0iRXN0cmFuZ2VsbyBFZGVzc2EiLz48YTpmb250IHNjcmlwdD0iU3lyZSIgdHlwZWZhY2U9IkVzdHJhbmdlbG8gRWRlc3NhIi8+PGE6Zm9udCBzY3JpcHQ9IlNvcmEiIHR5cGVmYWNlPSJOaXJtYWxhIFVJIi8+PGE6Zm9udCBzY3JpcHQ9IlRhbGUiIHR5cGVmYWNlPSJNaWNyb3NvZnQgVGFpIExlIi8+PGE6Zm9udCBzY3JpcHQ9IlRhbHUiIHR5cGVmYWNlPSJNaWNyb3NvZnQgTmV3IFRhaSBMdWUiLz48YTpmb250IHNjcmlwdD0iVGZuZyIgdHlwZWZhY2U9IkVicmltYSIvPjwvYTptaW5vckZvbnQ+PC9hOmZvbnRTY2hlbWU+PGE6Zm10U2NoZW1lIG5hbWU9Ik9mZmljZSI+PGE6ZmlsbFN0eWxlTHN0PjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+PGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPSIxIj48YTpnc0xzdD48YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpsdW1Nb2QgdmFsPSIxMTAwMDAiLz48YTpzYXRNb2QgdmFsPSIxMDUwMDAiLz48YTp0aW50IHZhbD0iNjcwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9IjUwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6bHVtTW9kIHZhbD0iMTA1MDAwIi8+PGE6c2F0TW9kIHZhbD0iMTAzMDAwIi8+PGE6dGludCB2YWw9IjczMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPSIxMDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpsdW1Nb2QgdmFsPSIxMDUwMDAiLz48YTpzYXRNb2QgdmFsPSIxMDkwMDAiLz48YTp0aW50IHZhbD0iODEwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48L2E6Z3NMc3Q+PGE6bGluIGFuZz0iNTQwMDAwMCIgc2NhbGVkPSIwIi8+PC9hOmdyYWRGaWxsPjxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT0iMSI+PGE6Z3NMc3Q+PGE6Z3MgcG9zPSIwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6c2F0TW9kIHZhbD0iMTAzMDAwIi8+PGE6bHVtTW9kIHZhbD0iMTAyMDAwIi8+PGE6dGludCB2YWw9Ijk0MDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPSI1MDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnNhdE1vZCB2YWw9IjExMDAwMCIvPjxhOmx1bU1vZCB2YWw9IjEwMDAwMCIvPjxhOnNoYWRlIHZhbD0iMTAwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPSIxMDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpsdW1Nb2QgdmFsPSI5OTAwMCIvPjxhOnNhdE1vZCB2YWw9IjEyMDAwMCIvPjxhOnNoYWRlIHZhbD0iNzgwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48L2E6Z3NMc3Q+PGE6bGluIGFuZz0iNTQwMDAwMCIgc2NhbGVkPSIwIi8+PC9hOmdyYWRGaWxsPjwvYTpmaWxsU3R5bGVMc3Q+PGE6bG5TdHlsZUxzdD48YTpsbiB3PSI2MzUwIiBjYXA9ImZsYXQiIGNtcGQ9InNuZyIgYWxnbj0iY3RyIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD0ic29saWQiLz48YTptaXRlciBsaW09IjgwMDAwMCIvPjwvYTpsbj48YTpsbiB3PSIxMjcwMCIgY2FwPSJmbGF0IiBjbXBkPSJzbmciIGFsZ249ImN0ciI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD48YTpwcnN0RGFzaCB2YWw9InNvbGlkIi8+PGE6bWl0ZXIgbGltPSI4MDAwMDAiLz48L2E6bG4+PGE6bG4gdz0iMTkwNTAiIGNhcD0iZmxhdCIgY21wZD0ic25nIiBhbGduPSJjdHIiPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPSJzb2xpZCIvPjxhOm1pdGVyIGxpbT0iODAwMDAwIi8+PC9hOmxuPjwvYTpsblN0eWxlTHN0PjxhOmVmZmVjdFN0eWxlTHN0PjxhOmVmZmVjdFN0eWxlPjxhOmVmZmVjdExzdC8+PC9hOmVmZmVjdFN0eWxlPjxhOmVmZmVjdFN0eWxlPjxhOmVmZmVjdExzdC8+PC9hOmVmZmVjdFN0eWxlPjxhOmVmZmVjdFN0eWxlPjxhOmVmZmVjdExzdD48YTpvdXRlclNoZHcgYmx1clJhZD0iNTcxNTAiIGRpc3Q9IjE5MDUwIiBkaXI9IjU0MDAwMDAiIGFsZ249ImN0ciIgcm90V2l0aFNoYXBlPSIwIj48YTpzcmdiQ2xyIHZhbD0iMDAwMDAwIj48YTphbHBoYSB2YWw9IjYzMDAwIi8+PC9hOnNyZ2JDbHI+PC9hOm91dGVyU2hkdz48L2E6ZWZmZWN0THN0PjwvYTplZmZlY3RTdHlsZT48L2E6ZWZmZWN0U3R5bGVMc3Q+PGE6YmdGaWxsU3R5bGVMc3Q+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI5NTAwMCIvPjxhOnNhdE1vZCB2YWw9IjE3MDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOnNvbGlkRmlsbD48YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9IjEiPjxhOmdzTHN0PjxhOmdzIHBvcz0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI5MzAwMCIvPjxhOnNhdE1vZCB2YWw9IjE1MDAwMCIvPjxhOnNoYWRlIHZhbD0iOTgwMDAiLz48YTpsdW1Nb2QgdmFsPSIxMDIwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9IjUwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9Ijk4MDAwIi8+PGE6c2F0TW9kIHZhbD0iMTMwMDAwIi8+PGE6c2hhZGUgdmFsPSI5MDAwMCIvPjxhOmx1bU1vZCB2YWw9IjEwMzAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjxhOmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6c2hhZGUgdmFsPSI2MzAwMCIvPjxhOnNhdE1vZCB2YWw9IjEyMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjwvYTpnc0xzdD48YTpsaW4gYW5nPSI1NDAwMDAwIiBzY2FsZWQ9IjAiLz48L2E6Z3JhZEZpbGw+PC9hOmJnRmlsbFN0eWxlTHN0PjwvYTpmbXRTY2hlbWU+PC9hOnRoZW1lRWxlbWVudHM+PGE6b2JqZWN0RGVmYXVsdHMvPjxhOmV4dHJhQ2xyU2NoZW1lTHN0Lz48YTpleHRMc3Q+PGE6ZXh0IHVyaT0iezA1QTRDMjVDLTA4NUUtNDM0MC04NUEzLUE1NTMxRTUxMERCMn0iPjx0aG0xNTp0aGVtZUZhbWlseSB4bWxuczp0aG0xNT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvdGhlbWVtbC8yMDEyL21haW4iIG5hbWU9Ik9mZmljZSBUaGVtZSIgaWQ9Ins2MkY5MzlCNi05M0FGLTREQjgtOUM2Qi1ENkM3REZEQzU4OUZ9IiB2aWQ9Ins0QTNDNDZFOC02MUNDLTQ2MDMtQTU4OS03NDIyQTQ3QThFNEF9Ii8+PC9hOmV4dD48L2E6ZXh0THN0PjwvYTp0aGVtZT5QSwMECgAAAAAAAAAhAHmhgGxSBgAAUgYAAA0AAAB4bC9zdHlsZXMueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHN0eWxlU2hlZXQgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgeG1sbnM6bWM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2IiBtYzpJZ25vcmFibGU9IngxNGFjIHgxNnIyIHhyIiB4bWxuczp4MTRhYz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWMiIHhtbG5zOngxNnIyPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTUvMDIvbWFpbiIgeG1sbnM6eHI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxNC9yZXZpc2lvbiI+PGZvbnRzIGNvdW50PSIxIiB4MTRhYzprbm93bkZvbnRzPSIxIj48Zm9udD48c3ogdmFsPSIxMSIvPjxjb2xvciB0aGVtZT0iMSIvPjxuYW1lIHZhbD0iQ2FsaWJyaSIvPjxmYW1pbHkgdmFsPSIyIi8+PHNjaGVtZSB2YWw9Im1pbm9yIi8+PC9mb250PjwvZm9udHM+PGZpbGxzIGNvdW50PSIyIj48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9Im5vbmUiLz48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJncmF5MTI1Ii8+PC9maWxsPjwvZmlsbHM+PGJvcmRlcnMgY291bnQ9IjEiPjxib3JkZXI+PGxlZnQvPjxyaWdodC8+PHRvcC8+PGJvdHRvbS8+PGRpYWdvbmFsLz48L2JvcmRlcj48L2JvcmRlcnM+PGNlbGxTdHlsZVhmcyBjb3VudD0iMSI+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiLz48L2NlbGxTdHlsZVhmcz48Y2VsbFhmcyBjb3VudD0iMSI+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIHhmSWQ9IjAiLz48L2NlbGxYZnM+PGNlbGxTdHlsZXMgY291bnQ9IjEiPjxjZWxsU3R5bGUgbmFtZT0iTm9ybWFsIiB4ZklkPSIwIiBidWlsdGluSWQ9IjAiLz48L2NlbGxTdHlsZXM+PGR4ZnMgY291bnQ9IjAiLz48dGFibGVTdHlsZXMgY291bnQ9IjAiIGRlZmF1bHRUYWJsZVN0eWxlPSJUYWJsZVN0eWxlTWVkaXVtMiIgZGVmYXVsdFBpdm90U3R5bGU9IlBpdm90U3R5bGVMaWdodDE2Ii8+PGV4dExzdD48ZXh0IHVyaT0ie0VCNzlERUYyLTgwQjgtNDNlNS05NUJELTU0Q0JEREY5MDIwQ30iIHhtbG5zOngxND0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvbWFpbiI+PHgxNDpzbGljZXJTdHlsZXMgZGVmYXVsdFNsaWNlclN0eWxlPSJTbGljZXJTdHlsZUxpZ2h0MSIvPjwvZXh0PjxleHQgdXJpPSJ7OTI2MEE1MTAtRjMwMS00NmE4LTg2MzUtRjUxMkQ2NEJFNUY1fSIgeG1sbnM6eDE1PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvbWFpbiI+PHgxNTp0aW1lbGluZVN0eWxlcyBkZWZhdWx0VGltZWxpbmVTdHlsZT0iVGltZVNsaWNlclN0eWxlTGlnaHQxIi8+PC9leHQ+PC9leHRMc3Q+PC9zdHlsZVNoZWV0PlBLAwQKAAAAAAAAACEA0IywC4EAAACBAAAAFAAAAHhsL3NoYXJlZFN0cmluZ3MueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHNzdCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIi8+UEsDBAoAAAAAAAAAIQDcCx83XQIAAF0CAAARAAAAZG9jUHJvcHMvY29yZS54bWw8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+DQo8Y3A6Y29yZVByb3BlcnRpZXMgeG1sbnM6Y3A9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvbWV0YWRhdGEvY29yZS1wcm9wZXJ0aWVzIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOmRjdGVybXM9Imh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy8iIHhtbG5zOmRjbWl0eXBlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj48ZGM6Y3JlYXRvcj5kdW5jYW48L2RjOmNyZWF0b3I+PGNwOmxhc3RNb2RpZmllZEJ5PmR1bmNhbjwvY3A6bGFzdE1vZGlmaWVkQnk+PGRjdGVybXM6Y3JlYXRlZCB4c2k6dHlwZT0iZGN0ZXJtczpXM0NEVEYiPjIwMTktMDEtMzFUMTY6NDg6MDNaPC9kY3Rlcm1zOmNyZWF0ZWQ+PGRjdGVybXM6bW9kaWZpZWQgeHNpOnR5cGU9ImRjdGVybXM6VzNDRFRGIj4yMDE5LTAxLTMxVDE2OjQ4OjI4WjwvZGN0ZXJtczptb2RpZmllZD48L2NwOmNvcmVQcm9wZXJ0aWVzPlBLAwQKAAAAAAAAACEAYUkJEBEDAAARAwAAEAAAAGRvY1Byb3BzL2FwcC54bWw8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+DQo8UHJvcGVydGllcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvZXh0ZW5kZWQtcHJvcGVydGllcyIgeG1sbnM6dnQ9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2RvY1Byb3BzVlR5cGVzIj48QXBwbGljYXRpb24+TWljcm9zb2Z0IEV4Y2VsPC9BcHBsaWNhdGlvbj48RG9jU2VjdXJpdHk+MDwvRG9jU2VjdXJpdHk+PFNjYWxlQ3JvcD5mYWxzZTwvU2NhbGVDcm9wPjxIZWFkaW5nUGFpcnM+PHZ0OnZlY3RvciBzaXplPSIyIiBiYXNlVHlwZT0idmFyaWFudCI+PHZ0OnZhcmlhbnQ+PHZ0Omxwc3RyPldvcmtzaGVldHM8L3Z0Omxwc3RyPjwvdnQ6dmFyaWFudD48dnQ6dmFyaWFudD48dnQ6aTQ+MTwvdnQ6aTQ+PC92dDp2YXJpYW50PjwvdnQ6dmVjdG9yPjwvSGVhZGluZ1BhaXJzPjxUaXRsZXNPZlBhcnRzPjx2dDp2ZWN0b3Igc2l6ZT0iMSIgYmFzZVR5cGU9Imxwc3RyIj48dnQ6bHBzdHI+U2hlZXQxPC92dDpscHN0cj48L3Z0OnZlY3Rvcj48L1RpdGxlc09mUGFydHM+PENvbXBhbnk+PC9Db21wYW55PjxMaW5rc1VwVG9EYXRlPmZhbHNlPC9MaW5rc1VwVG9EYXRlPjxTaGFyZWREb2M+ZmFsc2U8L1NoYXJlZERvYz48SHlwZXJsaW5rc0NoYW5nZWQ+ZmFsc2U8L0h5cGVybGlua3NDaGFuZ2VkPjxBcHBWZXJzaW9uPjE2LjAzMDA8L0FwcFZlcnNpb24+PC9Qcm9wZXJ0aWVzPlBLAQIUAAoAAAAAAAAAIQBi7p1okAQAAJAEAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1sUEsBAhQACgAAAAAAAAAhALVVMCNMAgAATAIAAAsAAAAAAAAAAAAAAAAAwQQAAF9yZWxzLy5yZWxzUEsBAhQACgAAAAAAAAAhALpwnmbKBgAAygYAAA8AAAAAAAAAAAAAAAAANgcAAHhsL3dvcmtib29rLnhtbFBLAQIUAAoAAAAAAAAAIQCBPpSXugIAALoCAAAaAAAAAAAAAAAAAAAAAC0OAAB4bC9fcmVscy93b3JrYm9vay54bWwucmVsc1BLAQIUAAoAAAAAAAAAIQACrURzpAMAAKQDAAAYAAAAAAAAAAAAAAAAAB8RAAB4bC93b3Jrc2hlZXRzL3NoZWV0MS54bWxQSwECFAAKAAAAAAAAACEAwRcQvsYgAADGIAAAEwAAAAAAAAAAAAAAAAD5FAAAeGwvdGhlbWUvdGhlbWUxLnhtbFBLAQIUAAoAAAAAAAAAIQB5oYBsUgYAAFIGAAANAAAAAAAAAAAAAAAAAPA1AAB4bC9zdHlsZXMueG1sUEsBAhQACgAAAAAAAAAhANCMsAuBAAAAgQAAABQAAAAAAAAAAAAAAAAAbTwAAHhsL3NoYXJlZFN0cmluZ3MueG1sUEsBAhQACgAAAAAAAAAhANwLHzddAgAAXQIAABEAAAAAAAAAAAAAAAAAID0AAGRvY1Byb3BzL2NvcmUueG1sUEsBAhQACgAAAAAAAAAhAGFJCRARAwAAEQMAABAAAAAAAAAAAAAAAAAArD8AAGRvY1Byb3BzL2FwcC54bWxQSwUGAAAAAAoACgCAAgAA60IAAAAA";var Ee=s=>s!==null&&typeof s=="object"&&"row"in s&&"column"in s;var L=class s{start_;end_;constructor(e,t=e,r=!1){this.end_=this.PatchNull(t),this.start_=this.PatchNull(e),r&&this.Normalize()}static FromColumn(e){return new s({row:1/0,column:e})}static FromRow(e){return new s({row:e,column:1/0})}static ColumnToLabel(e){let t=String.fromCharCode(65+e%26);for(;e>25;)e=Math.floor(e/26)-1,t=String.fromCharCode(65+e%26)+t;return t}static CellAddressToLabel(e,t=!1){if(e.row===1/0&&e.column===1/0)throw new Error("this is going to break something");let r=t?`${e.sheet_id||0}!`:"";return e.row===1/0?r+(e.absolute_column?"$":"")+this.ColumnToLabel(e.column):e.column===1/0?r+(e.absolute_row?"$":"")+(e.row+1):r+(e.absolute_column?"$":"")+this.ColumnToLabel(e.column)+(e.absolute_row?"$":"")+(e.row+1)+(e.spill?"#":"")}static Join(e,...t){let r=new s(e.start,e.end);for(let i of t)i&&(r.ConsumeAddress(i.start),r.ConsumeAddress(i.end));return r}static Bleed(e,t=1){return new s({row:Math.max(0,e.start.row-t),column:Math.max(0,e.start.column-t),sheet_id:e.start.sheet_id},{row:e.end.row+t,column:e.end.column+t})}static PatchArea(e,t){let{before_column:r,column_count:i,before_row:n,row_count:o}=t,a=new s(e.start,e.end),l=e.start.sheet_id;if(i&&r<=a.end.column){if(i>0)r<=a.start.column?a.Shift(0,i):r>a.start.column&&r<=a.end.column?a.ConsumeAddress({row:a.end.row,column:a.end.column+i}):console.warn("AA X case 1",r,i,JSON.stringify(a));else if(i<0)if(r-i<=a.start.column)a.Shift(0,i);else{if(r<=a.start.column&&r-i>a.end.column)return!1;if(r<=a.start.column){let c=r-i-1;a=new s({row:a.start.row,column:c+1+i,sheet_id:l},{row:a.end.row,column:a.end.column+i})}else r<=a.end.column?r-i-1>=a.end.column?a=new s({row:a.start.row,column:a.start.column,sheet_id:l},{row:a.end.row,column:r-1}):a=new s({row:a.start.row,column:a.start.column,sheet_id:l},{row:a.end.row,column:a.start.column+a.columns+i-1}):console.warn("AA X case 2",r,i,JSON.stringify(a))}}if(o&&n<=a.end.row){if(o>0)n<=a.start.row?a.Shift(o,0):n>a.start.row&&n<=a.end.row?a.ConsumeAddress({row:a.end.row+o,column:a.end.column}):console.warn("AA X case 3",n,o,JSON.stringify(a));else if(o<0)if(n-o<=a.start.row)a.Shift(o,0);else{if(n<=a.start.row&&n-o>a.end.row)return!1;if(n<=a.start.row){let c=n-o-1;a=new s({column:a.start.column,row:c+1+o,sheet_id:l},{column:a.end.column,row:a.end.row+o})}else n<=a.end.row?n-o-1>=a.end.row?a=new s({column:a.start.column,row:a.start.row,sheet_id:l},{column:a.end.column,row:n-1}):a=new s({column:a.start.column,row:a.start.row,sheet_id:l},{column:a.end.column,row:a.start.row+a.rows+o-1}):console.warn("AA X case 4",n,o,JSON.stringify(a))}}return a}get start(){return{...this.start_}}set start(e){this.start_=e}get end(){return{...this.end_}}set end(e){this.end_=e}get rows(){return this.start_.row===1/0||this.end_.row===1/0?1/0:this.end_.row-this.start_.row+1}get columns(){return this.start_.column===1/0||this.end_.column===1/0?1/0:this.end_.column-this.start_.column+1}get count(){return this.rows*this.columns}get entire_sheet(){return this.entire_row&&this.entire_column}get entire_column(){return this.start_.row===1/0}get entire_row(){return this.start_.column===1/0}PatchNull(e){let t={...e};return t.row===null&&(t.row=1/0),t.column===null&&(t.column=1/0),t}SetSheetID(e){this.start_.sheet_id=e}Normalize(){let e={...this.start_},t={...this.end_};e.row===1/0||t.row===1/0?e.row=t.row=1/0:e.row>t.row&&(e.row=this.end_.row,e.absolute_row=this.end_.absolute_row,t.row=this.start_.row,t.absolute_row=this.start_.absolute_row),e.column===1/0||t.column===1/0?e.column=t.column=1/0:e.column>t.column&&(e.column=this.end_.column,e.absolute_column=this.end_.absolute_column,t.column=this.start_.column,t.absolute_column=this.start_.absolute_column),this.start_=e,this.end_=t}TopLeft(){let e={row:0,column:0};return this.entire_row||(e.column=this.start.column),this.entire_column||(e.row=this.start.row),e}BottomRight(){let e={row:0,column:0};return this.entire_row||(e.column=this.end.column),this.entire_column||(e.row=this.end.row),e}ContainsRow(e){return this.entire_column||e>=this.start_.row&&e<=this.end_.row}ContainsColumn(e){return this.entire_row||e>=this.start_.column&&e<=this.end_.column}Contains(e){return(this.entire_column||e.row>=this.start_.row&&e.row<=this.end_.row)&&(this.entire_row||e.column>=this.start_.column&&e.column<=this.end_.column)}ContainsArea(e){return this.start.column<=e.start.column&&this.end.column>=e.end.column&&this.start.row<=e.start.row&&this.end.row>=e.end.row}Intersects(e){return!(e.start.column>this.end.column||this.start.column>e.end.column||e.start.row>this.end.row||this.start.row>e.end.row)}Equals(e){return e.start_.row===this.start_.row&&e.start_.column===this.start_.column&&e.end_.row===this.end_.row&&e.end_.column===this.end_.column}Equals2(e){return e.start.row===this.start_.row&&e.start.column===this.start_.column&&e.end.row===this.end_.row&&e.end.column===this.end_.column}Clone(){return new s(this.start,this.end)}get left(){let e=new s(this.start_,this.end_);return e.end_.column=e.start_.column,e}get right(){let e=new s(this.start_,this.end_);return e.start_.column=e.end_.column,e}get top(){let e=new s(this.start_,this.end_);return e.end_.row=e.start_.row,e}get bottom(){let e=new s(this.start_,this.end_);return e.start_.row=e.end_.row,e}Shift(e,t){return this.start_.row+=e,this.start_.column+=t,this.end_.row+=e,this.end_.column+=t,this}ConsumeAddress(e){this.entire_row||(e.column<this.start_.column&&(this.start_.column=e.column),e.column>this.end_.column&&(this.end_.column=e.column)),this.entire_column||(e.row<this.start_.row&&(this.start_.row=e.row),e.row>this.end_.row&&(this.end_.row=e.row))}Reshape(e,t){return this.end_.row=this.start_.row+e-1,this.end_.column=this.start_.column+t-1,this}ConsumeArea(e){this.ConsumeAddress(e.start),this.ConsumeAddress(e.end)}Resize(e,t){return this.end_.row=this.start_.row+e-1,this.end_.column=this.start_.column+t-1,this}[Symbol.iterator](){if(this.entire_row||this.entire_column)throw new Error("don\'t iterate infinite area");let e=this.start_.row,t=this.start_.column;return{next:()=>{let r={column:t,row:e,sheet_id:this.start_.sheet_id};return t>this.end_.column?{done:!0,value:void 0}:(++e>this.end_.row&&(e=this.start_.row,t++),{value:r})}}}get spreadsheet_label(){let e;return this.entire_sheet?"":this.entire_column?(e=s.ColumnToLabel(this.start_.column),e+=":"+s.ColumnToLabel(this.end_.column),e):this.entire_row?(e=String(this.start_.row+1),e+=":"+(this.end_.row+1),e):(e=s.CellAddressToLabel(this.start_),this.columns>1||this.rows>1?e+":"+s.CellAddressToLabel(this.end_):e)}toJSON(){return{start:{...this.start_},end:{...this.end_}}}};var Rr=s=>typeof s=="object"&&!!s&&typeof s.real=="number"&&typeof s.imaginary=="number";var Zt=s=>typeof s=="object"&&!!s&&typeof s.value=="number"&&typeof s.unit=="string",Ot=["undefined","formula","string","number","boolean","object","error","complex","array","dimensioned_quantity"];var Ge=s=>{switch(typeof s){case"undefined":return 0;case"number":return 3;case"boolean":return 4;case"object":return s===null?0:Rr(s)?7:Zt(s)?9:5;case"string":return s[0]==="="?1:2;default:return 6}};var ie=class{static StringToColumn(e){let t=0;e=e.toUpperCase();for(let r=0;r<e.length;r++)t*=26,t+=e.charCodeAt(r)-64;return t-1}value;type=0;calculated;calculated_type;formatted;rendered_type;style;area;spill;merge_area;table;renderer_data;render_clean=[];note;hyperlink;editing;render_function;click_function;constructor(e,t){typeof e<"u"&&this.Set(e,t)}ValueIsNumber(){return this.type===3}ValueIsFormula(){return this.type===1}ValueIsBoolean(){return this.type===4}ValueIsComplex(){return this.type===7}FlushStyle(){this.formatted=this.rendered_type=this.style=void 0,this.render_clean=[]}FlushArray(){this.area=void 0}FlushCache(){this.calculated=this.calculated_type=this.formatted=this.rendered_type=this.render_function=this.click_function=void 0,this.render_clean=[]}Reset(){this.type=0,this.value=this.spill=this.note=this.hyperlink=this.formatted=this.rendered_type=this.style=this.calculated=this.calculated_type=this.area=this.renderer_data=this.render_function=this.click_function=void 0,this.render_clean=[]}Set(e,t=Ge(e)){this.value=e,this.type=t,this.spill=this.formatted=this.rendered_type=this.style=this.calculated=this.calculated_type=this.render_function=this.click_function=this.area=void 0,this.render_clean=[]}SetCalculatedValue(e,t=Ge(e)){e===void 0&&(e=0,t=3),this.calculated!==e&&(this.calculated=e,this.calculated_type=t,this.formatted=this.rendered_type=void 0,this.render_clean=[])}GetValue(){return this.calculated_type?this.calculated:typeof this.value=="string"&&this.value[0]==="\'"?this.value.slice(1):this.value}GetValue4(){return this.calculated_type?{type:this.calculated_type,value:this.calculated}:this.type===1?{type:3,value:0}:{type:this.type,value:typeof this.value=="string"&&this.value[0]==="\'"?this.value.slice(1):this.value}}SetNote(e){this.note=e,this.render_clean=[]}SetCalculationError(e="ERR"){this.SetCalculatedValue(e,6)}SetArray(e){this.type=0,this.value=this.formatted=this.rendered_type=this.style=this.hyperlink=this.calculated=this.calculated_type=void 0,this.area=e,this.render_clean=[]}SetArrayHead(e,t){this.type=Ge(t),this.value=t,this.formatted=this.rendered_type=this.style=this.calculated=this.calculated_type=void 0,this.area=e,this.render_clean=[]}};var us=s=>!s.cells,kr=s=>!!s[0]&&us(s[0]),Er=s=>!!s[0]&&s[0].row!==void 0,fs=Ot.map((s,e)=>({[s]:e})).reduce((s,e)=>({...s,...e}),{}),Xe=class{data=[];rows_=0;columns_=0;get rows(){return this.rows_}get columns(){return this.columns_}EnsureRow(e){this.rows_=Math.max(e+1,this.rows_)}EnsureColumn(e){this.columns_=Math.max(e+1,this.columns_)}InsertColumns(e=0,t=1){this.data=this.data.map(r=>{if(r.length>=e){let i=r.slice(0,e),n=e+t,o=r.slice(e);for(let a=0;a<o.length;a++)i[n++]=o[a];return i}return r}),this.columns_+=t}DeleteColumns(e,t=1){this.data.forEach(r=>r.splice(e,t)),this.columns_-=t}DeleteRows(e,t=1){this.data.splice(e,t),this.rows_-=t}InsertRows(e=0,t=1){let r=[e,0,[]];for(let i=1;i<t;i++)r.push([]);Array.prototype.splice.apply(this.data,r),this.rows_+=t}GetCell(e,t){let{row:r,column:i}=e;if(!this.data[r])if(t)this.data[r]=[],this.rows_=Math.max(this.rows_,r+1);else return;return this.data[r][i]||t&&(this.data[r][i]=new ie,this.columns_=Math.max(this.columns_,i+1)),this.data[r][i]}EnsureCell(e){let{row:t,column:r}=e,i=this.data[t];i||(this.data[t]=i=[],this.rows_=Math.max(this.rows_,t+1));let n=i[r];return n||(n=i[r]=new ie,this.columns_=Math.max(this.columns_,r+1)),n}FromArray(e=[],t=!1){this.data=[];let r=0,i=0;if(t){i=e.length;for(let n=0;n<i;n++){let o=e[n];r=Math.max(r,o.length);for(let a=0;a<o.length;a++)this.data[a]||(this.data[a]=[]),this.data[a][n]=new ie(o[a])}}else{r=e.length;for(let n=0;n<r;n++){let o=[],a=e[n];i=Math.max(i,a.length);for(let l=0;l<a.length;l++)o[l]=new ie(a[l]);this.data[n]=o}}this.rows_=r,this.columns_=i}SerializedTypeToValueType(e){if(e)return typeof e=="number"?e:fs[e]||void 0}ValueTypeToSerializedType(e){return e?Ot[e]:void 0}FromJSON(e=[],t){if(this.data=[],!kr(e)){let i=[];if(Er(e))for(let n of e)for(let o of n.cells)i.push({...o,row:n.row});else for(let n of e)for(let o of n.cells)i.push({...o,column:n.column});e=i}let r=[];for(let i of e){this.data[i.row]||(this.data[i.row]=[]);let n=new ie(i.value);if(typeof i.calculated<"u"&&(n.SetCalculatedValue(i.calculated,this.SerializedTypeToValueType(i.calculated_type)),i.spill&&(n.spill=new L(i.spill.start,i.spill.end))),t&&typeof i.style_ref<"u"&&(n.style=t[i.style_ref]),typeof i.note<"u"&&(n.note=i.note),typeof i.hyperlink<"u"&&(n.hyperlink=i.hyperlink),this.data[i.row][i.column]&&this.data[i.row][i.column].area&&(n.area=this.data[i.row][i.column].area),this.data[i.row][i.column]=n,i.area){let o=new L(i.area.start,i.area.end);for(let a=o.start.row;a<=o.end.row;a++)for(let l=o.start.column;l<=o.end.column;l++)this.data[a]||(this.data[a]=[]),this.data[a][l]||(this.data[a][l]=new ie),this.data[a][l].area=o}if(i.table&&r.push({...i.table}),i.merge_area){let o=new L(i.merge_area.start,i.merge_area.end);for(let a=o.start.row;a<=o.end.row;a++)for(let l=o.start.column;l<=o.end.column;l++)this.data[a]||(this.data[a]=[]),this.data[a][l]||(this.data[a][l]=new ie),this.data[a][l].merge_area=o}}for(let i of r)for(let n=i.area.start.row;n<=i.area.end.row;n++)for(let o=i.area.start.column;o<=i.area.end.column;o++)this.data[n]||(this.data[n]=[]),this.data[n][o]||(this.data[n][o]=new ie),this.data[n][o].table=i;this.rows_=this.data.length,this.columns_=this.data.reduce((i,n)=>Math.max(i,n.length),0)}toJSON(e={}){let t=0,r=0,i=this.data.length-1,n;e.subset&&(t=e.subset.start.column,r=e.subset.start.row,i=e.subset.end.row);let o=[],a=-1,l=-1,c={},d={};for(let h=r;h<=i;h++)if(this.data[h]){let p=this.data[h];n=p.length-1,e.subset&&(n=e.subset.end.column);for(let u=t;u<=n;u++){let f=p[u],b=f&&f.merge_area&&f.merge_area.start.row===h&&f.merge_area.start.column===u,x=f&&f.area&&f.area.start.row===h&&f.area.start.column===u,v=f&&f.table&&f.table.area.start.row===h&&f.table.area.start.column===u,w=f?f.type===2&&!f.value:!0;if(f&&(!w||e.preserve_empty_strings)&&(b||f.type||f.calculated_type&&e.expand_arrays||f.calculated_type&&e.calculated_value||f.note||e.decorated_cells&&f.style&&(f.style.fill||f.style.border_bottom||f.style.border_top||f.style.border_left||f.style.border_right))){let m={row:h,column:u,value:f.value};f.note&&(m.note=f.note),f.hyperlink&&(m.hyperlink=f.hyperlink),e.preserve_type&&(m.type=this.ValueTypeToSerializedType(f.type)),e.sheet_id&&(m.sheet_id=e.sheet_id),e.calculated_value&&typeof f.calculated<"u"&&(m.calculated=f.calculated,f.spill&&(m.spill=f.spill.toJSON()),(e.preserve_type||f.calculated_type===6)&&(m.calculated_type=this.ValueTypeToSerializedType(f.calculated_type))),f.table&&v&&e.tables&&(m.table=JSON.parse(JSON.stringify(f.table))),f.area&&x&&(m.area=f.area.toJSON()),f.merge_area&&(m.merge_area=f.merge_area.toJSON()),e.cell_style_refs&&e.cell_style_refs[u]&&e.cell_style_refs[u][h]&&(m.style_ref=e.cell_style_refs[u][h],e.cell_style_refs[u][h]=0),c[h]=h,d[u]=u,a=Math.max(h,a),l=Math.max(u,l),o.push(m)}}}if(e.nested){let h=Object.keys(c),p=Object.keys(d);if(h.length<=p.length&&h.length){let u={},f=[];for(let b of o){let{row:x,...v}=b;u[b.row]||(u[b.row]=[]),u[b.row].push(v)}for(let b of h){let x=Number(b);f.push({row:x,cells:u[x]})}return{data:f,rows:a,columns:l+1}}else if(p.length){let u={},f=[];for(let b of o){let{column:x,...v}=b;u[b.column]||(u[b.column]=[]),u[b.column].push(v)}for(let b of p){let x=Number(b);f.push({column:x,cells:u[x]})}return{data:f,rows:a,columns:l+1}}}return{data:o,rows:a+1,columns:l+1}}GetAll(e=!1){return this.GetRange({row:0,column:0},{row:this.rows_-1,column:this.columns_-1},e)}Normalize(e,t){return e={...e,row:e.row==1/0?0:e.row,column:e.column==1/0?0:e.column},t&&(t={...t,row:t.row==1/0?this.rows_-1:t.row,column:t.column==1/0?this.columns_-1:t.column}),{from:e,to:t}}RawValue(e,t=e){if({from:e,to:t}=this.Normalize(e,t),e.row===t.row&&e.column===t.column)return this.data[e.row]&&this.data[e.row][e.column]?this.data[e.row][e.column].value:void 0;let r=[],i=this.data.slice(e.row,t.row+1),n=e.column,o=t.column+1;for(let a of i){let l=[];for(let c=n,d=0;c<o;c++,d++){let h=a[c];l.push(h?h.value:void 0)}r.push(l)}return r}GetRange(e,t,r=!1){if({from:e,to:t}=this.Normalize(e,t),!t||e===t||e.column===t.column&&e.row===t.row)return this.data[e.row]&&this.data[e.row][e.column]?this.data[e.row][e.column].GetValue():void 0;let i=[];if(r)for(let n=e.column;n<=t.column;n++){let o=[];for(let a=e.row;a<=t.row;a++)this.data[a]&&this.data[a][n]?o.push(this.data[a][n].GetValue()):o.push(void 0);i.push(o)}else for(let n=e.row;n<=t.row;n++){let o=[];for(let a=e.column;a<=t.column;a++)this.data[n]&&this.data[n][a]?o.push(this.data[n][a].GetValue()):o.push(void 0);i.push(o)}return i}GetRange4(e,t=e,r=!1){if({from:e,to:t}=this.Normalize(e,t),e.row===t.row&&e.column===t.column)return this.data[e.row]&&this.data[e.row][e.column]?this.data[e.row][e.column].GetValue4():{value:void 0,type:0};let i=[];if(r)for(let n=e.column;n<=t.column;n++){let o=[];for(let a=e.row;a<=t.row;a++)this.data[a]&&this.data[a][n]?o.push(this.data[a][n].GetValue4()):o.push({type:0});i.push(o)}else for(let n=e.row;n<=t.row;n++){let o=[];for(let a=e.column;a<=t.column;a++)this.data[n]&&this.data[n][a]?o.push(this.data[n][a].GetValue4()):o.push({type:0});i.push(o)}return{type:8,value:i}}SetArea(e,t){if(ArrayBuffer.isView(t))throw new Error("ABIV");if(Array.isArray(t))for(let r=e.start.row,i=0;r<=e.end.row;r++,i++){this.data[r]||(this.data[r]=[]);let n=this.data[r];if(t[i])for(let o=e.start.column,a=0;o<=e.end.column;o++,a++)n[o]||(n[o]=new ie),n[o].Set(t[i][a])}else{let r=Ge(t);for(let i=e.start.row;i<=e.end.row;i++){this.data[i]||(this.data[i]=[]);let n=this.data[i];for(let o=e.start.column;o<=e.end.column;o++)n[o]||(n[o]=new ie),n[o].Set(t,r)}}this.rows_=Math.max(this.rows_,e.end.row+1),this.columns_=Math.max(this.columns_,e.end.column+1)}*IterateRC(e,t=!1){if(!e&&t&&(e=new L({row:0,column:0},{row:this.rows_-1,column:this.columns-1})),e)if(t)for(let r=e.start.row;r<=e.end.row;r++){this.data[r]||(this.data[r]=[]);let i=this.data[r];for(let n=e.start.column;n<=e.end.column;n++)i[n]||(i[n]=new ie),yield{cell:i[n],row:r,column:n}}else for(let r=e.start.row;r<=e.end.row;r++){let i=this.data[r];if(i)for(let n=e.start.column;n<=e.end.column;n++){let o=i[n];o&&(yield{cell:o,row:r,column:n})}}else for(let[r,i]of this.data.entries())if(i)for(let[n,o]of i.entries())o&&(yield{cell:o,row:r,column:n})}*Iterate(e,t=!1){if(!e&&t&&(e=new L({row:0,column:0},{row:this.rows_-1,column:this.columns-1})),e){Ee(e)&&(e=new L(e)),(e.entire_column||e.entire_row)&&(e=new L(e.start,e.end),e.start.column===1/0&&(e.start.column=0,e.end.column=this.columns_-1),e.start.row===1/0&&(e.start.row=0,e.end.row=this.rows_-1));let r=e.start,i=e.end;if(t)for(let n=r.row;n<=i.row;n++){this.data[n]||(this.data[n]=[]);let o=this.data[n];for(let a=r.column;a<=i.column;a++)o[a]||(o[a]=new ie),yield o[a]}else for(let n=r.row;n<=i.row;n++)if(this.data[n]){let o=this.data[n];for(let a=r.column;a<=i.column;a++)o[a]&&(yield o[a])}}else for(let r of this.data)if(r)for(let i of r)i&&(yield i)}FlushCellStyles(){for(let e of this.data)if(e)for(let t of e)t&&t.FlushStyle()}FlushCachedValues(){for(let e of this.data)if(e)for(let t of e)t&&t.FlushCache()}};var O=class{static locale="en-us";static decimal_separator=".";static argument_separator=",";static grouping_separator=",";static date_components={short_days:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long_days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],short_months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],long_months:["January","February","March","April","May","June","July","August","September","October","November","December"]};static UpdateLocale(e){if(e)this.locale=e;else if(typeof self<"u"){let i=self?.document?.location;if(i&&i.search&&/locale=([^?&]+?)(?:\\?|$|&)/.test(i.search)){let n=i.search.match(/locale=(.*?)(?:\\?|$|&)/);n&&(this.locale=n[1]),console.info("override locale",this.locale)}else typeof navigator<"u"&&(navigator.languages&&navigator.languages[0]?this.locale=navigator.languages[0]:this.locale=navigator.language)}this.locale==="C"&&(console.warn("Locale not set, defaulting to en-us"),this.locale="en-us");let t=new Intl.NumberFormat(this.locale,{minimumFractionDigits:1}).format(3.3).replace(/\\d/g,"");this.decimal_separator=t===","?",":".",this.decimal_separator===","?(this.argument_separator=";",this.grouping_separator=" "):(this.argument_separator=",",this.grouping_separator=",");let r=new Date(2e3,0,2,12,0,0,0);this.UpdateDateComponent(0,0,r),r=new Date(2e3,1,7,12,0,0,0),this.UpdateDateComponent(1,1,r),r=new Date(2e3,2,7,12,0,0,0),this.UpdateDateComponent(2,2,r),r=new Date(2e3,3,5,12,0,0,0),this.UpdateDateComponent(3,3,r),r=new Date(2e3,4,4,12,0,0,0),this.UpdateDateComponent(4,4,r),r=new Date(2e3,5,2,12,0,0,0),this.UpdateDateComponent(5,5,r),r=new Date(2e3,6,1,12,0,0,0),this.UpdateDateComponent(6,6,r),r=new Date(2e3,7,1,12,0,0,0),this.UpdateDateComponent(7,-1,r),r=new Date(2e3,8,1,12,0,0,0),this.UpdateDateComponent(8,-1,r),r=new Date(2e3,9,1,12,0,0,0),this.UpdateDateComponent(9,-1,r),r=new Date(2e3,10,1,12,0,0,0),this.UpdateDateComponent(10,-1,r),r=new Date(2e3,11,1,12,0,0,0),this.UpdateDateComponent(11,-1,r)}static UpdateDateComponent(e,t,r){t>=0&&(this.date_components.short_days[t]=r.toLocaleString(this.locale,{weekday:"short"}),this.date_components.long_days[t]=r.toLocaleString(this.locale,{weekday:"long"})),e>=0&&(this.date_components.short_months[e]=r.toLocaleString(this.locale,{month:"short"}),this.date_components.long_months[e]=r.toLocaleString(this.locale,{month:"long"}))}};O.UpdateLocale();var ve=class s{constructor(e=0,t=0,r=0,i=0){this.left=e;this.top=t;this.width=r;this.height=i}get right(){return this.left+this.width}get bottom(){return this.top+this.height}static Create(e){return new s(e.left||0,e.top||0,e.width||0,e.height||0)}static IsRectangle(e){return!!e&&typeof e=="object"&&typeof e.left=="number"&&typeof e.top=="number"&&typeof e.width=="number"&&typeof e.height=="number"}Shift(e=0,t=0){return new s(this.left+e,this.top+t,this.width,this.height)}Scale(e=1,t=e){return new s(this.left*e,this.top*t,this.width*e,this.height*t)}Expand(e=0,t=0){return new s(this.left,this.top,this.width+e,this.height+t)}Combine(e){return new s(Math.min(this.left,e.left),Math.min(this.top,e.top),Math.max(this.right,e.right)-Math.min(this.left,e.left),Math.max(this.bottom,e.bottom)-Math.min(this.top,e.top))}Contains(e,t,r=0){return e>=this.left-r&&e<=this.left+this.width+r&&t>=this.top-r&&t<=this.top+this.height+r}ContextFill(e){e.fillRect(this.left,this.top,this.width,this.height)}ContextStroke(e){e.strokeRect(this.left,this.top,this.width,this.height)}Clamp(e,t){return e=Math.min(Math.max(e,this.left),this.right),t=Math.min(Math.max(t,this.top),this.bottom),{x:e,y:t}}ApplyStyle(e){e.style.top=this.top+"px",e.style.left=this.left+"px",e.style.width=this.width+"px",e.style.height=this.height+"px"}toJSON(){return{top:this.top,left:this.left,width:this.width,height:this.height}}};var ps=JSON.stringify({}),ms={Background:0,Text:1,Background2:2,Text2:3,Accent:4,Accent2:5,Accent3:6,Accent4:7,Accent5:8,Accent6:9},Ue=s=>typeof s.theme=="number"?s.theme:ms[s.theme]||0,ye=s=>!!s&&typeof s.text=="string",we=s=>!!s&&typeof s.theme<"u";var se={DefaultProperties:{horizontal_align:"",vertical_align:"",number_format:"General",nan:"NaN",font_size:{unit:"em",value:1},bold:!1,italic:!1,underline:!1,strike:!1,text:{theme:1},border_top:0,border_left:0,border_right:0,border_bottom:0},CompositeBorders:s=>({top:{width:s.border_top||0,color:s.border_top_fill||{}},left:{width:s.border_left||0,color:s.border_left_fill||{}},right:{width:s.border_right||0,color:s.border_right_fill||{}},bottom:{width:s.border_bottom||0,color:s.border_bottom_fill||{}}}),Merge:(s,e,t=!0)=>{let r=t?{...s,...e}:{...e};return JSON.parse(JSON.stringify(r))},Composite:s=>JSON.parse(JSON.stringify(s.reduce((e,t)=>({...e,...t}),{}))),Empty:s=>JSON.stringify(s)===ps,ParseFontSize:(s="",e="em")=>{let t=s.match(/(-*[\\d.]+)\\s*(\\S*)/);if(t){let r=Number(t[1]);if(!r||isNaN(r)||r<0)return{};let i=t[2].toLowerCase()||e;if(i==="pt"||i==="em"||i==="%"||i==="px")return{font_size:{unit:i,value:r}}}return{}},RelativeFontSize:(s,e)=>{let t=12,r=12;switch(s.font_size?.unit){case"pt":if(!s.font_size.value)return 1;r=s.font_size.value;break;case"px":if(!s.font_size.value)return 1;r=Math.round(s.font_size.value*300/4)/100;break;case"em":return s.font_size.value||1;case"%":return(s.font_size.value||100)/100;default:return 1}switch(e.font_size?.unit){case"pt":if(!e.font_size.value)return 1;t=e.font_size.value;break;case"px":if(!e.font_size.value)return 1;t=Math.round(e.font_size.value*300/4)/100;break;default:return 1}return r/t},FontSize:(s,e=!0)=>{let t=s.font_size?.value;switch(s.font_size?.unit){case"pt":return(t||12)+"pt";case"px":return e?Math.round((t||16)*300/4)/100+"pt":(t||16)+"px";case"em":return(t||1)+"em";case"%":return(t||100)+"%"}return""},CompositeFontSize:(s,e,t=1,r=!1)=>{let i={...s};return e.unit==="pt"||e.unit==="px"?i={...e}:(i.value=e.value*s.value,e.unit==="%"&&(i.value/=100)),i.unit==="px"&&r&&(i.value=Math.round((i.value||16)*300/4)/100),i.value*=t,i},CompositeFont:(s,e,t,r)=>{let i,n,o,a=[];e.bold&&a.push("bold"),e.italic&&a.push("italic");let l=e.font_face||"stack:default";if(l.startsWith("stack:")){let c=r.font_stacks[l.substring(6)||"default"];c||(c=r.font_stacks.default),c&&(n=e.font_size,o=se.CompositeFontSize(c.size,e.font_size||{unit:"pt",value:10},t),a.push(o.value.toFixed(2)+o.unit),a.push(c.font||""),i=c.variants)}else o=se.CompositeFontSize(s,e.font_size||{unit:"pt",value:10},t),a.push(o.value.toFixed(2)+o.unit),a.push(l||"");return{font:a.join(" "),variants:i,base:s,size:e.font_size,scale:t,stack_size:n,font_size:o}}};var _s="http://www.w3.org/2000/svg",le=class s{static instances=[];static GetInstance(e){for(let r of this.instances)if(r.doc===e)return r;let t=new s(e);return this.instances.push(t),t}doc;view;get HTMLElement(){return this.view?.HTMLElement}constructor(e){e&&(this.doc=e,this.view=e?.defaultView)}GetSelection(){return this.view?.getSelection()}Div(e,t,r){return this.Create("div",e,t,r)}ClassNames(e,t){e.classList.add(...(Array.isArray(t)?t:[t]).reduce((r,i)=>[...r,...i.split(/\\s+/g)],[]))}SVG(e,t,r){let i=this.doc.createElementNS(_s,e);return t&&this.ClassNames(i,t),r&&r.appendChild(i),i}Text(e){return this.doc.createTextNode(e)}Fragment(){return this.doc.createDocumentFragment()}Create(e,t,r,i){let n=this.doc.createElement(e);if(t&&this.ClassNames(n,t),i){if(i.attrs)for(let[o,a]of Object.entries(i.attrs))n.setAttribute(o,a);if(i.data)for(let[o,a]of Object.entries(i.data))n.dataset[o]=a;if(i.text&&(n.textContent=i.text),i.html&&(n.innerHTML=i.html),i.events)for(let[o,a]of Object.entries(i.events))n.addEventListener(o,a);if(i.style)for(let[o,a]of Object.entries(i.style))n.style[o]=a}return r&&r.appendChild(n),n}};var bs=1e3,$e=class{constructor(e=!1,t){this.verbose=e;this.log_id=t}queue=[];dispatched=!1;subscribers=[];Publish(e){this.verbose&&console.info(`es publish (${this.log_id})`,e),Array.isArray(e)?this.queue.push(...e):this.queue.push(e),this.dispatched||(this.dispatched=!0,Promise.resolve().then(()=>{let t=this.queue.slice(0);this.dispatched=!1,this.queue=[];for(let r of t)for(let i of this.subscribers)i.subscriber(r)}))}Subscribe(e){let t=bs++;return this.subscribers.push({subscriber:e,token:t}),t}Cancel(e){this.subscribers=this.subscribers.filter(t=>t.token!==e)}CancelAll(){this.subscribers=[]}};var Nr={spreadsheet_semantics:!0,dimensioned_quantities:!1,fractions:!0,decimal_mark:".",argument_separator:",",boolean_true:"TRUE",boolean_false:"FALSE"};var bt=/[\\s-+=<>!()]/;var Wt=34,Ht=39,gs=160,Mr=32,ys=9,ws=10,xs=13,Ce=48,Qe=57,Bt=46,jt=43,qe=45,Fr=40,Yt=41,Ke=44,vs=37,Jt=95,pt=36,Cs=123,Ss=125,et=91,Pr=93,As=63,Ts=33,zr=59,Xt=35,Is=64,Oe=65,tt=97,Rs=69,ks=101,mt=90,_t=122,Es=105,Qt=192,qt=382,Kt={"==":6,"!=":6,"<>":6,"=":6,"<":7,">":7,"<=":7,">=":7,"+":9,"-":9,"&":9,"*":10,"/":10,"^":11,":":13},Ns={"@":50,"-":100,"+":100},Ms=[...Object.keys(Kt),"@"].sort((s,e)=>e.length-s.length),Ve=class{get argument_separator(){return this.flags.argument_separator}get decimal_mark(){return this.flags.decimal_mark}flags={...Nr};r1c1_regex=/[rR]((?:\\[[-+]{0,1}\\d+\\]|\\d*))[cC]((?:\\[[-+]{0,1}\\d+\\]|\\d*))$/;argument_separator_char=Ke;decimal_mark_char=Bt;imaginary_char=Es;imaginary_number="i";id_counter=0;expression="";data=[];index=0;length=0;valid=!0;error_position;error;dependencies={addresses:{},ranges:{}};address_refcount={};full_reference_list=[];parser_state_cache=[];SetLocaleSettings(e,t){if(typeof t>"u"&&(t=e===","?";":","),t===e)throw new Error("invalid locale setting");this.flags.argument_separator=t,this.flags.decimal_mark=e}Save(){this.parser_state_cache.push(JSON.stringify(this.flags))}Restore(){let e=this.parser_state_cache.shift();if(e)try{this.flags=JSON.parse(e)}catch(t){console.error(t)}else console.warn("No parser state to restore")}Walk2(e,t){let r=t(e);if(typeof r=="object")return r;switch(e.type){case"address":case"missing":case"literal":case"complex":case"identifier":case"operator":case"structured-reference":break;case"dimensioned":r&&(e.expression=this.Walk2(e.expression,t),e.unit=this.Walk2(e.unit,t));break;case"range":t(e)&&(e.start=this.Walk2(e.start,t),e.end=this.Walk2(e.end,t));break;case"binary":t(e)&&(e.left=this.Walk2(e.left,t),e.right=this.Walk2(e.right,t));break;case"unary":t(e)&&(e.operand=this.Walk2(e.operand,t));break;case"group":t(e)&&(e.elements=e.elements.map(i=>this.Walk2(i,t)));break;case"call":t(e)&&(e.args=e.args.map(i=>this.Walk2(i,t)));break}return e}Walk(e,t){switch(e.type){case"address":case"missing":case"literal":case"complex":case"identifier":case"operator":case"structured-reference":t(e);return;case"dimensioned":t(e)&&(this.Walk(e.expression,t),this.Walk(e.unit,t));return;case"range":t(e)&&(this.Walk(e.start,t),this.Walk(e.end,t));return;case"binary":t(e)&&(this.Walk(e.left,t),this.Walk(e.right,t));return;case"unary":t(e)&&this.Walk(e.operand,t);return;case"group":if(t(e))for(let r of e.elements)this.Walk(r,t);return;case"call":if(t(e))for(let r of e.args)this.Walk(r,t)}}Transpose(e){let t=e.length,r=[],i=0;for(let n=0;n<t;n++)Array.isArray(e[n])&&(i=Math.max(i,e[n].length));for(let n=0;n<i;n++){r[n]=[];for(let o=0;o<t;o++)r[n][o]=e[o]?e[o][n]:void 0}return r}Render(e,t={}){let r=t.offset||{rows:0,columns:0},i=t.missing??"(missing)",{convert_decimal:n,convert_argument_separator:o,long_structured_references:a,table_name:l}=t,c=this.flags.argument_separator+" ";o===","?c=", ":o===";"&&(c="; ");let d=n===","?",":".",h=this.flags.decimal_mark===","?/,/:/\\./,p=this.flags.decimal_mark===","?/,/g:/\\./g;switch(e.type){case"address":return t.pass_through_addresses?e.label:t.r1c1?this.R1C1Label(e,t.r1c1_base):this.AddressLabel(e,r);case"range":return t.pass_through_addresses?e.label:t.r1c1?this.R1C1Label(e.start,t.r1c1_base)+":"+this.R1C1Label(e.end,t.r1c1_base):this.AddressLabel(e.start,r)+":"+this.AddressLabel(e.end,r);case"missing":return i;case"array":return"{"+this.Transpose(e.values).map(u=>u.map(f=>typeof f=="string"?\'"\'+f+\'"\':f).join(", ")).join("; ")+"}";case"binary":return this.Render(e.left,t)+" "+e.operator+" "+this.Render(e.right,t);case"unary":return e.operator+this.Render(e.operand,t);case"complex":if(e.text)return n?e.text.replace(p,d):e.text;{let u=Math.abs(e.imaginary).toString();if((n===","||this.flags.decimal_mark===",")&&(u=u.replace(/\\./,",")),e.real){let f=e.real.toString();(n===","||this.flags.decimal_mark===",")&&(f=f.replace(/\\./,","));let b=Math.abs(e.imaginary);return`${f}${e.imaginary<0?" - ":" + "}${b===1?"":u}i`}else return e.imaginary===-1?"-i":e.imaginary===1?"i":`${e.imaginary<0?"-":""}${u}i`}break;case"literal":if(typeof e.value=="string")return\'"\'+e.value.replace(/"/g,\'""\')+\'"\';if(typeof e.value=="boolean")return e.value?t.boolean_true||this.flags.boolean_true||"true":t.boolean_false||this.flags.boolean_false||"false";if(n&&typeof e.value=="number")if(e.text){let u=e.text;return n===","&&this.flags.decimal_mark==="."&&(u=u.replace(/,/g,"")),u.replace(h,d)}else return e.value.toString().replace(/\\./,d);else if(e.text)return e.text;return e.value.toString();case"identifier":return e.name;case"operator":return"["+e.operator+"]";case"group":return e.explicit?"("+e.elements.map(u=>this.Render(u,t)).join(c)+")":e.elements.map(u=>this.Render(u,t)).join(c);case"call":return e.name+"("+e.args.map(u=>this.Render(u,t)).join(c)+")";case"dimensioned":return this.Render(e.expression)+" "+this.Render(e.unit);case"structured-reference":{let u=e.column;/[^A-Za-z]/.test(u)&&(u="["+u+"]");let f=e.table;switch(!f&&a&&l&&(f=l),e.scope){case"all":return`${f}[[#all],${u}]`;case"row":return a?`${f}[[#this row],${u}]`:`${f}[@${u}]`;case"column":return`${f}[${u}]`}throw new Error("unhandled scope in structured reference")}}return"??"}Parse(e){switch(e=e.trim(),e[0]==="="&&(e=e.substr(1).trim()),this.expression=e,this.data=[],this.length=e.length,this.index=0,this.valid=!0,this.error_position=void 0,this.error=void 0,this.dependencies.addresses={},this.dependencies.ranges={},this.address_refcount={},this.full_reference_list=[],this.id_counter=0,this.flags.argument_separator){case";":this.argument_separator_char=zr;break;default:this.argument_separator_char=Ke;break}switch(this.flags.decimal_mark){case",":this.decimal_mark_char=Ke;break;default:this.decimal_mark_char=Bt;break}for(let i=0;i<this.length;i++)this.data[i]=e.charCodeAt(i);let t=this.ParseGeneric(),r={};for(let i of Object.keys(this.dependencies.addresses))this.address_refcount[i]&&(r[i]=this.dependencies.addresses[i]);return this.dependencies.addresses=r,{expression:t||void 0,valid:this.valid,error:this.error,error_position:this.error_position,dependencies:this.dependencies,separator:this.flags.argument_separator,decimal_mark:this.flags.decimal_mark,full_reference_list:this.full_reference_list.slice(0)}}ColumnLabel(e){if(e===1/0)return"";let t=String.fromCharCode(65+e%26);for(;e>25;)e=Math.floor(e/26)-1,t=String.fromCharCode(65+e%26)+t;return t}R1C1Label(e,t){let r="";e.sheet&&(r=(bt.test(e.sheet)?"\'"+e.sheet+"\'":e.sheet)+"!");let i=e.absolute_row||!t?(e.row+1).toString():`[${e.row-t.row}]`,n=e.absolute_column||!t?(e.column+1).toString():`[${e.column-t.column}]`;return r+=`R${i}C${n}`,r}AddressLabel(e,t){let r=e.column;!e.absolute_column&&e.column!==1/0&&(r+=t.columns);let i=e.row;if(!e.absolute_row&&e.row!==1/0&&(i+=t.rows),i<0||r<0||i===1/0&&r===1/0)return"#REF";let n="";return e.sheet&&(n=(bt.test(e.sheet)?"\'"+e.sheet+"\'":e.sheet)+"!"),i===1/0?n+(e.absolute_column?"$":"")+this.ColumnLabel(r):r===1/0?n+(e.absolute_row?"$":"")+(i+1):n+(e.absolute_column?"$":"")+this.ColumnLabel(r)+(e.absolute_row?"$":"")+(i+1)+(e.spill?"#":"")}ParseGeneric(e=[0]){let t=[];for(;this.index<this.length;){let r=this.ParseNext(t.length===0);if(typeof r=="number"){if(e.some(i=>r===i))break;if(r===Fr){this.index++;let i=this.ParseGeneric([Yt]);this.index++,i&&t.push({type:"group",id:this.id_counter++,elements:[i],explicit:!0})}else{let i=this.ConsumeOperator();i?t.push(i):(this.error=`unexpected character [1]: ${String.fromCharCode(r)}, 0x${r.toString(16)}`,this.valid=!1,this.index++)}}else t.push(r)}if(t.length){if(t=this.BinaryToRange2(t),this.flags.fractions){let r=[],i=o=>o.type==="literal"&&typeof o.value=="number"&&o.value%1===0,n=0;for(;n<t.length-3;n++)if(i(t[n])&&i(t[n+1])&&t[n+2].type==="operator"&&t[n+2].operator==="/"&&i(t[n+3])){let o=t[n],a=t[n+1],l=t[n+3],c=(o.value<0?-1:1)*(a.value/l.value);n+=3,r.push({id:t[n].id,type:"literal",text:this.expression.substring(o.position,l.position+1),value:o.value+c,position:o.position})}else r.push(t[n]);for(;n<t.length;n++)r.push(t[n]);t=r}if(t=t.map(r=>r.type==="identifier"&&r.name===this.imaginary_number?{type:"complex",real:0,imaginary:1,position:r.position,text:r.name,id:this.id_counter++}:r),this.flags.dimensioned_quantities){let r=[],i;for(let n=0;n<t.length;n++){let o=t[n];if(!i)i=o;else if(o.type==="identifier"&&(i.type==="literal"||i.type==="group"||i.type==="call")){let a=o;for(;t[n+1]?.type==="identifier";)a.name+=" "+t[++n].name;r.push({type:"dimensioned",expression:i,unit:o,id:this.id_counter++}),i=void 0}else r.push(i),i=o}i&&r.push(i),t=r}}return t.length===0?null:t.length===1?t[0]:this.BinaryToComplex(this.ArrangeUnits(t))}UnitToAddress(e){if(e.type==="literal"){if(typeof e.value=="number"&&e.value>0&&!/\\./.test(e.text||""))return{type:"address",position:e.position,label:e.value.toString(),row:e.value-1,id:this.id_counter++,column:1/0}}else{let t,r=e.name,i=r.split("!");if(i.length>1&&(t=i.slice(0,i.length-1).join("!"),r=r.substr(t.length+1),t[0]==="\'"))if(t.length>1&&t[t.length-1]==="\'")t=t.substr(1,t.length-2);else return;let n=r[0]==="$";r=(n?r.substr(1):r).toUpperCase();let o=Number(r);if(isNaN(o)){if(/[A-Z]{1,3}/.test(r)){let a=-1;for(let l=0;l<r.length;l++){let c=r[l].charCodeAt(0);a=26*(1+a)+(c-Oe)}return{type:"address",position:e.position,absolute_column:n,label:e.name,column:a,id:this.id_counter++,row:1/0,sheet:t}}}else if(o>0&&o!==1/0&&!/\\./.test(r))return{type:"address",position:e.position,absolute_row:n,label:e.name,row:o-1,id:this.id_counter++,column:1/0,sheet:t}}}BinaryToRange2(e){let t=[];for(let r=0;r<e.length;r++){let i=e[r],n=e[r+1],o=e[r+2],a,l="",c;if(i&&n&&o&&n.type==="operator"&&n.operator===":"){if(i.type==="address"&&o.type==="address"){let d=i.position+i.label.length,h=o.position;a={type:"range",id:this.id_counter++,position:i.position,start:i,end:o,label:i.label+this.expression.substring(d,h)+o.label},l=a.start.label+":"+a.end.label,this.address_refcount[a.start.label]--,this.address_refcount[a.end.label]--;let p=[i.position,o.position];this.full_reference_list=this.full_reference_list.filter(u=>u.position!==p[0]&&u.position!==p[1])}else if((i.type==="literal"||i.type==="identifier")&&(o.type==="literal"||o.type==="identifier")){let d=this.UnitToAddress(i);if(!d&&i.type==="literal"&&typeof i.value=="number"&&i.value<0){let p={...i,text:(i.text||"").replace(/^-/,""),position:i.position+1,value:-i.value};d=this.UnitToAddress(p),d&&(c={type:"operator",operator:"-",position:i.position,id:this.id_counter++})}let h=this.UnitToAddress(o);d&&h&&(d.column===1/0&&h.column===1/0||d.row===1/0&&h.row===1/0)&&(l=d.label+":"+h.label,a={type:"range",id:this.id_counter++,position:d.position,start:d,end:h,label:l})}}a?(c&&t.push(c),t.push(a),this.dependencies.ranges[l]=a,this.full_reference_list.push(a),r+=2):t.push(i)}return t}BinaryToComplex(e){if(e.type==="binary")if((e.operator==="+"||e.operator==="-")&&e.left.type==="literal"&&typeof e.left.value=="number"&&e.right.type==="complex"&&!e.right.composited){let t="";t=this.expression.substring(e.left.position,e.right.position+(e.right.text?.length||0));let r=e.right.imaginary;return e.operator==="-"&&(r=-r),{type:"complex",position:e.left.position,text:t,id:this.id_counter++,imaginary:r,real:e.left.value,composited:!0}}else e.left=this.BinaryToComplex(e.left),e.right=this.BinaryToComplex(e.right);else if(e.type==="unary"&&(e.operator==="-"||e.operator==="+")&&e.operand.type==="complex"&&e.operand.text===this.imaginary_number)return{...e.operand,position:e.position,text:this.expression.substring(e.position,e.operand.position+(e.operand.text||"").length),imaginary:e.operand.imaginary*(e.operator==="-"?-1:1)};return e}BinaryToRangeX(e){if(e.type==="binary"){if(e.operator===":"){let t,r="";if(e.left.type==="address"&&e.right.type==="address"){let i=e.left.position+e.left.label.length,n=e.right.position;t={type:"range",id:this.id_counter++,position:e.left.position,start:e.left,end:e.right,label:e.left.label+this.expression.substring(i,n)+e.right.label},r=t.start.label+":"+t.end.label,this.address_refcount[t.start.label]--,this.address_refcount[t.end.label]--;let o=[e.left.position,e.right.position];this.full_reference_list=this.full_reference_list.filter(a=>a.position!==o[0]&&a.position!==o[1])}else if((e.left.type==="literal"||e.left.type==="identifier")&&(e.right.type==="literal"||e.right.type==="identifier")){let i=this.UnitToAddress(e.left),n=this.UnitToAddress(e.right);i&&n&&(i.column===1/0&&n.column===1/0||i.row===1/0&&n.row===1/0)&&(r=i.label+":"+n.label,t={type:"range",id:this.id_counter++,position:e.left.position,start:i,end:n,label:r})}if(t)return this.dependencies.ranges[r]=t,this.full_reference_list.push(t),t;this.error="unexpected character: :",this.valid=!1}e.left=this.BinaryToRangeX(e.left),e.right=this.BinaryToRangeX(e.right)}return e}ArrangeUnits(e){if(e.length===0)return{type:"missing",id:this.id_counter++};if(e.length===1)return e[0];let t=[];for(let r=0;r<e.length;r++){let i=e[r];if(i.type==="operator")if(t.length===0||t[t.length-1].type==="operator")if(Ns[i.operator]){let n=this.BinaryToComplex(this.ArrangeUnits(e.slice(r+1)));if(!this.valid)return{type:"group",id:this.id_counter++,elements:e,explicit:!1};n.type==="binary"?(n.left={type:"unary",id:this.id_counter++,operator:i.operator,operand:n.left,position:i.position},i=n):i={type:"unary",id:this.id_counter++,operator:i.operator,operand:n,position:i.position},r=e.length}else return this.error=`unexpected character [2]: ${i.operator}`,this.error_position=i.position,this.valid=!1,{type:"group",id:this.id_counter++,elements:e,explicit:!1};else{t.push(i);continue}if(t.length<2){if(t.length===1&&t[0].type!=="operator")return this.error=`unexpected element [3]: ${i.type}`,this.error_position=i.type==="missing"||i.type==="group"||i.type==="dimensioned"?-1:i.position,this.valid=!1,{type:"group",id:this.id_counter++,elements:e,explicit:!1};t.push(i)}else if(t[t.length-1].type==="operator"){let n=t[t.length-2],o=t[t.length-1],a=o.operator,l={type:"binary",id:this.id_counter++,left:n,operator:a,position:o.position,right:i};n.type==="binary"&&Kt[a]>Kt[n.operator]&&(l.left=n.left,l.operator=n.operator,l.position=n.position,l.right={type:"binary",id:this.id_counter++,left:n.right,right:i,operator:a,position:o.position}),t.splice(-2,2,l)}else return this.error="multiple expressions",this.error_position=i.position,this.valid=!1,{type:"group",id:this.id_counter++,elements:e,explicit:!1}}return t[0]}ParseNext(e=!0){this.ConsumeWhiteSpace();let t=this.data[this.index];if(t===Wt)return{type:"literal",id:this.id_counter++,position:this.index,value:this.ConsumeString()};if(t>=Ce&&t<=Qe||t===this.decimal_mark_char)return this.ConsumeNumber();if(t===Cs)return this.ConsumeArray();if(e&&(t===qe||t===jt)){let r=this.data[this.index+1];if(r>=Ce&&r<=Qe||r===this.decimal_mark_char)return this.ConsumeNumber()}else if(t>=Oe&&t<=mt||t>=tt&&t<=_t||t===Jt||t===Xt||t===Ht||t===pt||t===et||t>=Qt&&t<=qt)return this.ConsumeToken(t);return t}ConsumeArray(){let e={type:"array",id:this.id_counter++,values:[],position:this.index};this.index++;let t=0,r=0;for(;this.index<this.length;){let i=this.ParseNext(),n=this.index;if(typeof i=="number")switch(this.index++,i){case zr:r++,t=0;break;case Ke:t++;break;case Ss:return e;default:this.valid&&(this.error="invalid character in array literal",this.error_position=n,this.valid=!1);break}else switch(i.type){case"literal":e.values[t]||(e.values[t]=[]),e.values[t][r]=i.value;break;default:this.valid&&(this.error="invalid value in array literal",this.error_position=n,this.valid=!1);break}}return e}ConsumeOperator(){for(let e of Ms)if(this.expression.substr(this.index,e.length)===e){let t=this.index;return this.index+=e.length,{type:"operator",id:this.id_counter++,operator:e,position:t}}return null}ConsumeArguments(){this.index++;let e=0,t=[];for(;this.index<this.length;){let r=this.ParseGeneric([this.argument_separator_char,Yt]);r!==null&&t.push(r);let i=this.data[this.index];if(i===this.argument_separator_char){this.index++,e++;for(let n=t.length;n<e;n++)t.push({type:"missing",id:this.id_counter++})}else if(i===Yt)return this.index++,t}return t}ConsumeToken(e){let t=[e],r=this.index,i=e===Ht,n=0,o=!1;for(e===et&&(n=1,o=!0),++this.index;this.index<this.length;this.index++){let h=this.data[this.index];if(h>=Oe&&h<=mt||h>=tt&&h<=_t||h>=Qt&&h<=qt||h===Jt||h===pt||h===Bt||h===Ts||i||h>=Ce&&h<=Qe||h===et||n>0&&h===Pr||h===qe&&this.flags.r1c1&&n===1||n>0&&h===Is&&this.data[this.index-1]===et||n===1&&(h===Ke||h===Mr)||n>1||h===As&&n===0)t.push(h),h===et&&(n++,o=!0),h===Pr&&n--,h===Ht&&(i=!1);else break}this.data[this.index]===Xt&&t.push(this.data[this.index++]);let a=t.map(h=>String.fromCharCode(h)).join("");if(i)return this.error="unbalanced single quote",this.error_position=r,this.valid=!1,{type:"identifier",id:this.id_counter++,name:a,position:r};if(n)return this.error="unbalanced square bracket",this.error_position=r,this.valid=!1,{type:"identifier",id:this.id_counter++,name:a,position:r};if(this.ConsumeWhiteSpace(),this.data[this.index]===Fr){let h=this.ConsumeArguments();return{type:"call",id:this.id_counter++,name:a,args:h,position:r,end:this.index}}if(this.flags.spreadsheet_semantics){let h=this.ConsumeAddress(a,r);if(h)return h;if(o){let p=this.ConsumeStructuredReference(a,r);if(p)return p}}let c=a.toLowerCase();if(c==="true"||this.flags.boolean_true&&c===this.flags.boolean_true.toLowerCase())return{type:"literal",id:this.id_counter++,value:!0,position:r};if(c==="false"||this.flags.boolean_false&&c===this.flags.boolean_false.toLowerCase())return{type:"literal",id:this.id_counter++,value:!1,position:r};let d={type:"identifier",id:this.id_counter++,name:a,position:r};return this.full_reference_list.push(d),d}ConsumeStructuredReference(e,t){let r=e.length,i=e,n="",o=0;for(;o<r;o++){if(e[o]==="["){e=e.substring(o);break}n+=e[o]}if(e[0]!=="["||e[e.length-1]!=="]")return;e=e.substring(1,e.length-1);let a=e.split(",").map(h=>h.trim()),l="column",c="";if(a.length>2)return;a.length===2?(/\\[#this row\\]/i.test(a[0])?l="row":/\\[#all\\]/i.test(a[0])&&(l="all"),c=a[1]):(c=a[0],c[0]==="@"&&(l="row",c=c.substring(1,c.length))),c[0]==="["&&c[c.length-1]==="]"&&(c=c.substring(1,c.length-1));let d={type:"structured-reference",id:this.id_counter++,label:i,position:t,scope:l,column:c,table:n};return this.full_reference_list.push(d),d}ConsumeAddress(e,t){let r=t,i=e.length,n,o=e.split("!");if(o.length>1&&(n=o.slice(0,o.length-1).join("!"),t+=n.length+1),this.flags.r1c1){let h=o[o.length-1].match(this.r1c1_regex);if(h){let p={type:"address",id:this.id_counter++,label:e,row:0,column:0,position:r,sheet:n,r1c1:!0};return h[1][0]==="["?(p.offset_row=!0,p.row=Number(h[1].substring(1,h[1].length-1))):h[1]?p.row=Number(h[1])-1:(p.offset_row=!0,p.row=0),h[2][0]==="["?(p.offset_column=!0,p.column=Number(h[2].substring(1,h[2].length-1))):h[2]?p.column=Number(h[2])-1:(p.offset_column=!0,p.column=0),p}}let a=this.ConsumeAddressColumn(t);if(!a)return null;t=a.position;let l=this.ConsumeAddressRow(t);if(!l)return null;t=l.position;let c=n?n+e.substr(n.length,t-r).toUpperCase():e.substr(0,t-r).toUpperCase();n&&n[0]==="\'"&&(n=n.substr(1,n.length-2));let d={type:"address",id:this.id_counter++,label:c,row:l.row,column:a.column,absolute_row:l.absolute,absolute_column:a.absolute,position:r,sheet:n,spill:l.spill};return i!==t-r?null:(this.dependencies.addresses[d.label]=d,this.address_refcount[d.label]=(this.address_refcount[d.label]||0)+1,this.full_reference_list.push(d),d)}ConsumeAddressRow(e){let t=this.data[e]===pt;t&&e++;let r=e,i=0;for(;;e++){let o=this.data[e];if(o>=Ce&&o<=Qe)i*=10,i+=o-Ce;else break}if(r===e||i===0)return!1;let n=!1;return this.data[e]===Xt&&(e++,n=!0),{absolute:t,row:i-1,position:e,spill:n}}ConsumeAddressColumn(e){let t=-1,r=0,i=this.data[e]===pt;for(i&&e++;;e++,r++){if(r>=4)return!1;let n=this.data[e];if(n>=Oe&&n<=mt)t=26*(1+t)+(n-Oe);else if(n>=tt&&n<=_t)t=26*(1+t)+(n-tt);else break}return t<0?!1:{absolute:i,column:t,position:e}}ConsumeNumber(){let e=this.index,t=0,r=!1,i=!1,n=0,o=0,a=0,l="integer",c=0,d=!1,h=this.index;for(;this.index<this.length;this.index++,c++){let u=this.data[this.index];if(u===this.decimal_mark_char)if(l==="integer")l="fraction";else break;else if(u===vs){n/=100,a/=100,this.index++;break}else if(u===jt||u===qe)if(c===0)u===qe&&(i=!0);else break;else if(u===Rs||u===ks)if(l==="integer"||l==="fraction")l="exponent",this.index<this.length-1&&(this.data[this.index+1]===jt?this.index++:this.data[this.index+1]===qe&&(this.index++,r=!0));else break;else if(u===this.imaginary_char){let f=this.data[this.index+1];if(f>=Oe&&f<=mt||f>=tt&&f<=_t||f>=Qt&&f<=qt||f===Jt)break;if(l==="integer"||l==="fraction"){this.index++,d=!0;break}}else if(u>=Ce&&u<=Qe)switch(l){case"integer":n=n*10+(u-Ce);break;case"fraction":a=a*10+(u-Ce),o++;break;case"exponent":t=t*10+(u-Ce);break}else break}let p=n+a/Math.pow(10,o);return l==="exponent"&&(p=p*Math.pow(10,(r?-1:1)*t)),d?{type:"complex",id:this.id_counter++,position:e,imaginary:i?-p:p,real:0,text:this.expression.substring(h,this.index)||""}:{type:"literal",id:this.id_counter++,position:e,value:i?-p:p,text:this.expression.substring(h,this.index)||""}}ConsumeString(){this.index++;let e=[];for(;this.index<this.length;this.index++){let t=this.data[this.index];if(t===Wt&&(this.index++,this.index>=this.length||this.data[this.index]!==Wt))break;e.push(t)}return e.map(t=>String.fromCharCode(t)).join("")}ConsumeWhiteSpace(){for(;this.index<this.length;){let e=this.data[this.index];if(e===Mr||e===ys||e===ws||e===xs||e===gs)this.index++;else return}}};var yt=class s{static _instance=new s;constructor(){}static get instance(){return this._instance}HTML(e){let t=[];for(let r of e){let i=[];for(let n of r)n.pre&&i.push("<pre>"),n.emphasis&&i.push("<em>"),n.strong&&i.push("<strong>"),n.strike&&i.push("<strike>"),i.push(n.text),n.strike&&i.push("</strike>"),n.strong&&i.push("</strong>"),n.emphasis&&i.push("</em>"),n.pre&&i.push("</pre>");t.push(i.join(""))}return t.join(`<br/>\n`)}Dummy(e=""){return e.split(/\\n/).map(t=>[{text:t}])}Parse(e=""){let t=this.Tokenize(e);for(let r=0;r<t.length;r++){let i=t[r];if(i.type==="delimeter"){let n=t[r-1],o=t[r+1],a=!n||n.type==="whitespace"||n.type==="newline",l=n&&n.type==="text"&&/[^\\w\\d]$/.test(n.text),c=!o||o.type==="whitespace"||o.type==="newline",d=o&&o.type==="text"&&/^[^\\w\\d]/.test(o.text);i.left_flanking=!c&&(!d||a),i.right_flanking=!a&&(!l||c||d)}}return this.ApplyFormatting(t),this.Consolidate(t)}IsWhitespace(e){return e===" "||e===" "}IsNewline(e){return e==="\\r"||e===`\n`}IsDelimeter(e){return e==="*"||e==="_"||e==="~"}Consolidate(e){let t=[],r={},i=[],n={type:"text",text:""};for(let o of e)if(o.type==="newline")n.text.length&&i.push(n),n={...r,text:"",type:"text"},t.push(i),i=[];else switch((!!r.strong!=!!o.strong||!!r.emphasis!=!!o.emphasis||!!r.strike!=!!o.strike)&&(r.strong=!!o.strong,r.emphasis=!!o.emphasis,r.strike=!!o.strike,n.text.length&&i.push(n),n={...r,text:"",type:"text"}),o.type){case"text":case"whitespace":n.text+=o.text;break;case"delimeter":for(let a=0;a<o.length;a++)n.text+=o.char;break}return n.text.length&&i.push(n),i.length&&t.push(i),t}ApplyFormatting(e,t){let r=0,i=e.length;for(r=0;r<i;r++){let n=e[r];if(n.type==="delimeter"){if(t&&n.right_flanking&&t.char===n.char&&n.length>0)return{index:r,token:n};if(n.left_flanking){let o=this.ApplyFormatting(e.slice(r+1),n);if(o.token){let a=Math.min(o.token.length,n.length),l=n.char==="~",c=!l&&!!(a%2),d=!l&&a>=2;for(let h=r+1;h<=r+o.index;h++)e[h].strong=!!e[h].strong||d,e[h].emphasis=!!e[h].emphasis||c,e[h].strike=!!e[h].strike||l;o.token.length-=a,n.length-=a,n.length>0?r--:r+=o.index}}}}return{index:r}}Tokenize(e=""){let t=[],r=e.length,i=0,n=!1,o="";for(i=0;i<r;i++){let a=e[i];if(this.IsWhitespace(a)){o&&t.push({type:"text",text:o});let l=a;for(;;){let c=e[i+1];if(this.IsWhitespace(c))l+=c,i++;else break}t.push({type:"whitespace",text:l}),n=!1,o=""}else if(this.IsNewline(a)){o&&t.push({type:"text",text:o});let l=a;for(;;){let c=e[i+1];if(this.IsNewline(c))l+=c,i++;else break}t.push({type:"newline",text:l}),n=!1,o=""}else if(n)o+=a,n=!1;else if(this.IsDelimeter(a)){o&&t.push({type:"text",text:o});let l=a;for(;;){let c=e[i+1];if(c===a)l+=c,i++;else break}t.push({type:"delimeter",text:l,char:a,length:l.length}),n=!1,o=""}else a==="\\\\"?n=!0:o+=a}return o&&t.push({type:"text",text:o}),t}};var Se=class{date_format=!1;string_format=!1;fraction_format=!1;twelve_hour=!1;fraction_denominator=0;fraction_integer=!0;fraction_align=0;fraction_denominator_digits=0;integer_min_digits=0;decimal_min_digits=0;decimal_max_digits=0;grouping=!1;has_number_format=!1;prefix=[{text:""}];suffix=[{text:""}];scaling=0;percent=!1;exponential=!1;has_asterisk=!1};var Lr=42,Gr=95,er=63,wt=48,Ur=46,tr=44,$r=37,rr=34,rt=35,Vr=59,xt=92,Zr=64,Fs=91,Ps=93,Or=69,Wr=101,zs=72,Ds=104,Ls=77,Gs=109,Us=83,$s=115,Vs=68,Zs=100,Os=89,Ws=121,Hs=65,Bs=97;var vt=class{static date_pattern=!1;static pattern="";static char_index=0;static characters=[];static sections=[];static current_section=new Se;static preserve_formatting_characters=!1;static decimal_mark=Ur;static group_separator=tr;static Parse(e){if(this.pattern=e,this.characters=e.split("").map(t=>t.charCodeAt(0)),this.char_index=0,this.current_section=new Se,this.sections=[this.current_section],this.ParseDatePattern())return this.sections;for(this.char_index=0,this.current_section=new Se,this.sections=[this.current_section];this.char_index<this.characters.length;)this.ConsumeChar();return this.sections}static ConsumeString(){let e="";for(this.preserve_formatting_characters&&(e+=this.pattern[this.char_index]),++this.char_index;this.char_index<this.characters.length;this.char_index++)switch(this.characters[this.char_index]){case xt:this.preserve_formatting_characters&&(e+=this.pattern[this.char_index]),this.char_index+1<this.characters.length&&(e+=this.pattern[++this.char_index]);break;case rr:return this.preserve_formatting_characters&&(e+=this.pattern[this.char_index]),this.char_index++,e;default:e+=this.pattern[this.char_index];break}throw new Error("unterminated string")}static ConsumeFormatting(){let e="";for(++this.char_index;this.char_index<this.characters.length;this.char_index++)switch(this.characters[this.char_index]){case xt:throw new Error("invalid escape character in formatting block");case Ps:return this.char_index++,e;default:e+=this.pattern[this.char_index];break}throw new Error("unterminated format")}static ScanFractionFormat(){let e=/^([#?]+ +){0,1}([#?]+)\\/([#?0-9]+)(?:$|[^#?0-9])/,r=this.pattern.substr(this.char_index).match(e);if(!r)return!1;let i=(r[1]||"").length+r[2].length+r[3].length+1;this.current_section.fraction_format=!0,this.current_section.fraction_integer=!!r[1];let n=Number(r[3]);return isNaN(n)||(this.current_section.fraction_denominator=n),this.current_section.decimal_max_digits=this.current_section.fraction_denominator_digits=r[3].length,this.char_index+=i,this.current_section.has_number_format=!0,!0}static ConsumeNumberFormat(){let e=0;for(this.char_index;this.char_index<this.characters.length;this.char_index++)switch(this.characters[this.char_index]){case this.group_separator:{let r=!1;for(let i=this.char_index+1;!r&&i<this.characters.length;i++){let n=this.characters[i];if(n===this.decimal_mark||n===rt||n===wt)r=!0;else if(n!==tr)break}if(r){if(e===1)throw new Error("invalid grouping in decimal part");this.current_section.grouping=!0}else this.current_section.scaling=(this.current_section.scaling||1)*1e3}break;case this.decimal_mark:if(e===1)throw new Error("too many decimal marks");e=1;break;case rt:e===1?this.current_section.decimal_max_digits++:this.current_section.integer_min_digits&&this.current_section.integer_min_digits++;break;case wt:e===1?(this.current_section.decimal_max_digits++,this.current_section.decimal_min_digits=this.current_section.decimal_max_digits):this.current_section.integer_min_digits++;break;default:return}}static AppendCharAsText(e=!0){this.current_section.has_number_format?this.current_section.suffix[this.current_section.suffix.length-1].text+=this.pattern[this.char_index]:this.current_section.prefix[this.current_section.prefix.length-1].text+=this.pattern[this.char_index],e&&this.char_index++}static AppendString(e){this.current_section.has_number_format?this.current_section.suffix[this.current_section.suffix.length-1].text+=e:this.current_section.prefix[this.current_section.prefix.length-1].text+=e}static AppendTextPart(e){this.current_section.has_number_format?(this.current_section.suffix.push(e),this.current_section.suffix.push({text:""})):(this.current_section.prefix.push(e),this.current_section.prefix.push({text:""}))}static ConsumeChar(){let e=this.characters[this.char_index];if(!((e===er||e===rt)&&!this.current_section.has_number_format&&!this.current_section.string_format&&this.ScanFractionFormat()))switch(e){case Vr:this.char_index++,this.current_section=new Se,this.sections.length===3&&(this.current_section.string_format=!0),this.sections.push(this.current_section);break;case Zr:this.char_index++,this.AppendTextPart({text:"@",flag:5}),this.current_section.string_format=!0;break;case wt:case rt:case Ur:case tr:!this.current_section.has_number_format&&!this.current_section.string_format?(this.ConsumeNumberFormat(),this.current_section.has_number_format=!0):this.AppendCharAsText();break;case Fs:this.AppendTextPart({text:this.ConsumeFormatting(),flag:6});break;case rr:this.AppendString(this.ConsumeString());break;case er:this.preserve_formatting_characters?this.AppendCharAsText():(this.AppendTextPart({text:"0",flag:1}),this.char_index++);break;case Gr:if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:1})}break;case Lr:if(this.current_section.has_asterisk)throw new Error("we don\'t support multiple asterisks");if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:2}),this.current_section.has_asterisk=!0}break;case Wr:case Or:this.current_section.percent||this.current_section.exponential||this.current_section.string_format?this.AppendCharAsText():(this.current_section.exponential=!0,this.char_index++);break;case $r:!this.current_section.exponential&&!this.current_section.string_format&&(this.current_section.percent=!0),this.AppendCharAsText();break;case xt:if(this.preserve_formatting_characters&&this.AppendCharAsText(!1),++this.char_index>=this.characters.length)throw new Error("invalid escape character at end");this.AppendCharAsText();break;default:this.AppendCharAsText()}}static ParseDatePattern(){for(this.date_pattern=!0;this.date_pattern&&this.char_index<this.pattern.length;)this.DatePatternConsumeChar();if(this.date_pattern){this.date_pattern=!1;for(let e of this.sections)for(let t of e.prefix)t.flag&&t.flag&7&&(this.date_pattern=!0)}return this.date_pattern&&(this.sections[0].date_format=!0,this.sections[0].prefix.forEach((e,t)=>{if(e.flag===3&&(e.text==="mm"||e.text==="m")){if(t)for(let r=t-1;r;r--){let i=this.sections[0].prefix[r];if(i.flag===3){/h/i.test(i.text)&&(e.flag=4,e.text=e.text.toLowerCase());break}}if(t<this.sections[0].prefix.length-1)for(let r=t+1;r<this.sections[0].prefix.length;r++){let i=this.sections[0].prefix[r];if(i.flag===3){/s/i.test(i.text)&&(e.flag=4,e.text=e.text.toLowerCase());break}}}})),this.date_pattern}static ConsumeDatePart(){let e=this.pattern[this.char_index++],t=e.toLowerCase(),r={text:e,flag:3};for(;this.pattern[this.char_index]&&this.pattern[this.char_index].toLowerCase()===t;)r.text+=this.pattern[this.char_index++];if(t==="s"&&this.pattern[this.char_index]===".")for(r.text+=this.pattern[this.char_index++];this.pattern[this.char_index]==="0";)r.text+=this.pattern[this.char_index++];return r}static ConsumeAMPM(){let e=this.pattern.substr(this.char_index,5);if(e==="am/pm"||e==="AM/PM")return this.char_index+=5,this.sections[0].twelve_hour=!0,{text:e,flag:3};if(e=this.pattern.substr(this.char_index,3),e==="a/p"||e==="A/P")return this.char_index+=3,this.sections[0].twelve_hour=!0,{text:e,flag:3}}static DatePatternConsumeChar(){switch(this.characters[this.char_index]){case Vr:this.char_index=this.characters.length;break;case wt:case rt:case Wr:case Or:case $r:case Zr:this.date_pattern=!1;break;case zs:case Ds:case Ls:case Gs:case Us:case $s:case Vs:case Zs:case Os:case Ws:this.AppendTextPart(this.ConsumeDatePart());break;case Hs:case Bs:{let t=this.ConsumeAMPM();t?this.AppendTextPart(t):this.AppendCharAsText()}break;case rr:this.AppendString(this.ConsumeString());break;case er:this.preserve_formatting_characters?this.AppendCharAsText():(this.AppendTextPart({text:"0",flag:1}),this.char_index++);break;case Gr:if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:1})}break;case Lr:if(this.current_section.has_asterisk)throw new Error("we don\'t support multiple asterisks");if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:2}),this.current_section.has_asterisk=!0}break;case xt:if(this.preserve_formatting_characters&&this.AppendCharAsText(!1),++this.char_index>=this.characters.length)throw new Error("invalid escape character at end");this.AppendCharAsText();break;default:this.AppendCharAsText()}}};var Hr=s=>(s>=60&&s--,new Date(-22090752e5+864e5*s)),Br=(s,e=!0)=>{if(e){let t=new Date(s);s=new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()).getTime()}return s=(s+22090752e5)/864e5,s>=60&&s++,s},Ne=class s{static grouping_regexp=/\\d{1,3}(?=(\\d{3})+(?!\\d))/g;static fraction_limits=[9,99,999,9999];static imaginary_character="\\u{1D456}";static minus_character="-";magic_decimal=!1;transform_value;_pattern="";sections;decimal_zero_regexp=[];cloned=[];get pattern(){return this._pattern}get date_format(){return this.sections[0]&&this.sections[0].date_format}constructor(e){if(this._pattern=e,this.sections=vt.Parse(e),this.sections.length||(this.sections=[]),this.sections[0]||(this.sections[0]=new Se),this.sections[1]||(this.sections[1]={...this.sections[0]},this.sections[1].prefix=JSON.parse(JSON.stringify(this.sections[1].prefix)),this.sections[1].suffix=JSON.parse(JSON.stringify(this.sections[1].suffix)),this.sections[1].prefix.push({text:"-"}),this.cloned[1]=!0),this.sections[2]||(this.sections[2]={...this.sections[0]},this.cloned[2]=!0),!this.sections[3]){for(let t of this.sections[0].prefix)if(t.flag===5){this.sections[3]={...this.sections[0]},this.sections[3].string_format=!0,this.cloned[3]=!0;break}}this.decimal_zero_regexp=this.sections.map(t=>{if(t.decimal_max_digits>t.decimal_min_digits)return new RegExp(`0{1,${t.decimal_max_digits-t.decimal_min_digits}}(?:$|e)`)})}static FormatPartsAsText(e,t=0){let r=-1,i=e.map((n,o)=>{switch(n.flag){case 2:return r=o,n.text;case 1:return n.text.replace(/./g," ");case 6:return"";default:return n.text}});if(r>=0&&t){let n=i.reduce((a,l,c)=>c===r?a:a+l.length,0),o="";for(let a=0;a<t-n;a++)o+=i[r];i[r]=o}return i.join("")}SetDecimal(e){for(let t of this.sections)t.fraction_format||(t.decimal_min_digits=e,t.decimal_max_digits=e)}IncreaseDecimal(){this.sections.forEach(e=>{e.fraction_format?e.fraction_denominator||(e.fraction_denominator_digits=Math.min(e.fraction_denominator_digits+1,4)):(e.decimal_min_digits++,e.decimal_max_digits=e.decimal_min_digits)})}DecreaseDecimal(){this.sections.forEach(e=>{e.fraction_format?e.fraction_denominator||(e.fraction_denominator_digits=Math.max(e.fraction_denominator_digits-1,1)):(e.decimal_min_digits=Math.max(0,e.decimal_min_digits-1),e.decimal_max_digits=e.decimal_min_digits)})}AddGrouping(){this.sections.forEach(e=>{e.grouping=!0})}RemoveGrouping(){this.sections.forEach(e=>{e.grouping=!1})}ToggleGrouping(){let e=!this.sections[0].grouping;this.sections.forEach(t=>{t.grouping=e})}toString(){return this.sections[0].date_format?this._pattern:this.sections.filter((e,t)=>!this.cloned[t]).map(e=>{let t="",r=0;if(e.fraction_format){e.fraction_integer&&(t+="? ");let i="";for(let n=0;n<e.fraction_denominator_digits;n++)i+="#";t+=i,t+="/",e.fraction_denominator?t+=e.fraction_denominator:t+=i}else if(e.has_number_format){for(r=0;r<e.integer_min_digits;r++)t+="0";if(e.grouping&&(t.length<4&&(t=("####"+t).slice(-4)),t=t.replace(/[\\d#]{1,3}(?=([\\d#]{3})+(?![\\d#]))/g,"$&,")),e.decimal_max_digits||e.decimal_min_digits){for(t+=".",r=0;r<e.decimal_min_digits;r++)t+="0";for(;r<e.decimal_max_digits;r++)t+="#"}if(e.scaling){let i=Math.log10(e.scaling)/3;for(r=0;r<i;r++)t+=","}e.exponential&&(t+="e")}return e.prefix.map(i=>i.flag===1?i.text==="0"?"?":"_"+i.text:i.flag===2?"*"+i.text:i.flag===6?"["+i.text+"]":i.text).join("")+t+e.suffix.map(i=>i.flag===1?i.text==="0"?"?":"_"+i.text:i.flag===2?"*"+i.text:i.text).join("")}).join(";")}FormatDimensionedQuantity(e){if(this.transform_value){let r=this.transform_value(e);if(Zt(r))e=r;else return typeof r=="string"?r:this.FormatParts(r)}let t=this.FormatParts(e.value||0);return e.unit&&t.push({text:" "},{text:e.unit}),t}FormatComplex(e){if(e.imaginary===1/0||e.imaginary===-1/0||e.real===1/0||e.real===-1/0)return[{text:"Infinity"}];let t=[],r=[],i=!1,n=!!e.imaginary;n&&(t=this.FormatParts(e.imaginary),n=t.some(l=>/[1-9]/.test(l.text)),t.length===1&&this.sections[0].integer_min_digits<=1&&t[0].text==="1"?(t[0].text="",i=!0):t.length===1&&this.sections[1].integer_min_digits<=1&&t[0].text==="-1"&&(t[0].text="-",i=!0));let o=!!e.real;o&&(r=this.FormatParts(e.real),o=r.some(l=>/[1-9]/.test(l.text)));let a=[];if(o||!o&&!n){if(a.push(...r),n){a.push({text:e.imaginary<0?` ${s.minus_character} `:" + "});let l=i?[]:this.FormatParts(Math.abs(e.imaginary));a.push(...l,{text:s.imaginary_character})}}else n&&a.push(...t,{text:s.imaginary_character});return a}FormatParts(e){if(typeof e!="number"&&!this.sections[3])return[{text:(e??"").toString()}];let{parts:t,section:r}=this.BaseFormat(e),i=[];if(r.date_format||r.string_format)for(let n of t)typeof n=="string"?i.push({text:n}):i.push(n);else this.magic_decimal&&t[1]===""&&t.splice(1,1),i=[...r.prefix.map(n=>({...n})),{text:r.has_number_format?t.join(O.decimal_separator):""},...r.suffix.map(n=>({...n}))];for(let n=1;n<i.length;n++)i[n].flag===i[n-1].flag&&(i[n].text=i[n-1].text+i[n].text,i[n-1].text="");return i.filter(n=>n.text)}Format(e,t=0){return s.FormatPartsAsText(this.FormatParts(e),t)}ZeroPad(e,t){for(;e.length<t;)e="0"+e;return e}DateFormat(e){let t=Hr(e),r=this.sections[0],i=t.getUTCHours();return r.twelve_hour&&(i>12&&(i-=12),i===0&&(i=12)),{parts:r.prefix.map(o=>{if(o.flag===4)return o.text==="mm"?{text:this.ZeroPad(t.getUTCMinutes().toString(),2)}:{text:this.ZeroPad(t.getUTCMinutes().toString(),1)};if(o.flag===3){switch(o.text.toLowerCase()){case"am/pm":case"a/p":{let l=o.text.split("/");return{text:t.getUTCHours()>12?l[1]:l[0]}}case"mmmmm":return{text:O.date_components.long_months[t.getUTCMonth()][0]};case"mmmm":return o.text==="MMMM"?{text:O.date_components.long_months[t.getUTCMonth()].toUpperCase()}:{text:O.date_components.long_months[t.getUTCMonth()]};case"mmm":return o.text==="MMM"?{text:O.date_components.short_months[t.getUTCMonth()].toUpperCase()}:{text:O.date_components.short_months[t.getUTCMonth()]};case"mm":return{text:this.ZeroPad((t.getUTCMonth()+1).toString(),2)};case"m":return{text:this.ZeroPad((t.getUTCMonth()+1).toString(),1)};case"ddddd":case"dddd":return o.text==="DDDDD"||o.text==="DDDD"?{text:O.date_components.long_days[t.getUTCDay()].toUpperCase()}:{text:O.date_components.long_days[t.getUTCDay()]};case"ddd":return o.text==="DDD"?{text:O.date_components.short_days[t.getUTCDay()].toUpperCase()}:{text:O.date_components.short_days[t.getUTCDay()]};case"dd":return{text:this.ZeroPad(t.getUTCDate().toString(),2)};case"d":return{text:this.ZeroPad(t.getUTCDate().toString(),1)};case"yyyy":case"yyy":return{text:t.getUTCFullYear().toString()};case"yy":case"y":return{text:this.ZeroPad((t.getUTCFullYear()%100).toString(),2)};case"hh":return{text:this.ZeroPad(i.toString(),2)};case"h":return{text:this.ZeroPad(i.toString(),1)};case"ss":return{text:this.ZeroPad(t.getUTCSeconds().toString(),2)};case"s":return{text:this.ZeroPad(t.getUTCSeconds().toString(),1)}}let a=o.text.match(/^(s+)\\.(0+)$/);if(a)return{text:this.ZeroPad(t.getUTCSeconds().toString(),a[1].length)+O.decimal_separator+(t.getUTCMilliseconds()/1e3).toFixed(a[2].length).substr(2)}}return{...o}}),section:r}}StringFormat(e,t){let r=[];for(let i of t.prefix)i.flag===5?r.push({text:e}):r.push({...i});return{parts:r,section:t}}Round2(e,t){let r=Math.pow(10,t);return Math.round(r*e)/r}FormatFraction(e,t){t.percent&&(e*=100);let r={denominator:1,numerator:Math.round(e),error:Math.abs(Math.round(e)-e)};if(t.fraction_denominator)r.denominator=t.fraction_denominator,r.numerator=Math.round(e*r.denominator);else if(r.error){let n=s.fraction_limits[t.fraction_denominator_digits-1]||s.fraction_limits[0];for(let o=2;o<=n;o++){let a=Math.round(e*o),l=Math.abs(a/o-e);if(l<r.error&&(r={numerator:a,denominator:o,error:l},!l))break}}let i=[];if(t.fraction_integer){let n=Math.floor(r.numerator/r.denominator);r.numerator%=r.denominator,(n||!r.numerator)&&(i.push(n.toString()),r.numerator&&i.push(" "))}else r.numerator||i.push("0");return r.numerator&&(i.push(r.numerator.toString()),i.push("/"),i.push(r.denominator.toString())),i.join("")}BaseFormat(e){if(this.sections[0].date_format)return this.DateFormat(Number(e));if(typeof e!="number")return this.StringFormat((e??"").toString(),this.sections[3]);let t=this.sections[0],r=this.decimal_zero_regexp[0];e<0&&(t=this.sections[1]);let i=t.percent?t.decimal_max_digits+2:t.decimal_max_digits,n=Math.pow(10,-i)/2,o=Math.abs(e);if(o<n&&(t=this.sections[2],r=this.decimal_zero_regexp[2]),t.scaling&&(o/=t.scaling,o<n&&(t=this.sections[2],r=this.decimal_zero_regexp[2])),t.string_format)return this.StringFormat(e.toString(),t);let a="";if(t.fraction_format)return{parts:[this.FormatFraction(o,t)],section:t};t.exponential?a=o.toExponential(t.decimal_max_digits):(t.percent&&(o*=100),a=this.Round2(o,t.decimal_max_digits).toFixed(t.decimal_max_digits)),r&&(a=a.replace(r,""));let l=a.split(".");for(;l[0].length<t.integer_min_digits;)l[0]=("0000000000000000"+l[0]).slice(-t.integer_min_digits);return t.integer_min_digits===0&&l[0]==="0"&&(l[0]=""),t.grouping&&(l[0]=l[0].replace(s.grouping_regexp,"$&"+O.grouping_separator)),{parts:l,section:t}}};var Me=class{static cache={};static complex_general;static symbolc_name_map={};static base_formats={Accounting:"_(#,##0.00_);(#,##0.00);-???",Number:"0.00",Integer:"0",Percent:"0.00%",General:"0.######",Fraction:"# ?/?",Dollar:"$* _(#,##0.00_);$* (#,##0.00);$* -???",Exponential:"0.000e","Short Date":"mm/dd/yy","Long Date":"dddd, mmm d yyyy",Timestamp:"mm-dd-yy hh:mm:ss"};static aliases={Scientific:"Exponential",Percentage:"Percent",Currency:"Dollar"};static Get(e,t=!1){if(t&&e==="General")return this.complex_general;let r=this.symbolc_name_map[e.toLowerCase()],i=this.cache[r||e];return i||(i=new Ne(e),this.cache[e]=i),i}static Equals(e,t){if(e===t)return!0;let r=this.Get(e),i=this.Get(t);return r.pattern===i.pattern}static Translate(e){let t=this.symbolc_name_map[e.toLowerCase()];return t?this.cache[t].toString():e}static SymbolicName(e){for(let t of Object.keys(this.base_formats))if(e===this.base_formats[t])return t;return null}static InitCache(){for(let e of Object.keys(this.base_formats))this.cache[e]=new Ne(this.base_formats[e]),this.symbolc_name_map[e.toLowerCase()]=e;this.cache.General.magic_decimal=!0,this.complex_general=new Ne("0.###"),this.complex_general.magic_decimal=!0;for(let e of Object.keys(this.aliases))this.cache[e]=this.cache[this.aliases[e]],this.symbolc_name_map[e.toLowerCase()]=e}};Me.InitCache();var jr=new Date().getUTCFullYear(),sr=class{compare_day;compare_month;TestDate(e){let t=Date.parse(e);if(isNaN(t))return!1;let r=new Date(t),n=e.replace(/[\\d\\-\\\\/,.\\s]+/g," ").toLocaleLowerCase().split(/\\s+/).map(l=>l.trim()).filter(l=>!!l);if(!n.length)return t;if(!this.compare_month){this.compare_month={};for(let l=0;l<12;l++)this.compare_month[O.date_components.long_months[l].toLocaleLowerCase().replace(/\\./,"")]=l,this.compare_month[O.date_components.short_months[l].toLocaleLowerCase().replace(/\\./,"")]=l}if(!this.compare_day){this.compare_day={};for(let l=0;l<7;l++)this.compare_day[O.date_components.long_days[l].toLocaleLowerCase().replace(/\\./,"")]=l,this.compare_day[O.date_components.short_days[l].toLocaleLowerCase().replace(/\\./,"")]=l}let o=!1,a=!1;for(let l of n){let c=!1;for(let[d,h]of Object.entries(this.compare_month))if(l===d){if(o||r.getUTCMonth()!==h)return!1;c=!0,o=!0}if(!c){for(let[d,h]of Object.entries(this.compare_day))if(l===d){if(a||r.getUTCDay()!==h)return!1;c=!0,a=!0}}if(!c)return!1}return a&&!o?!1:t}TryParse(e=""){let t={};if(e[0]==="\'")return{value:e,type:2};if(e==="")return{value:e,type:2};if(e==="NaN")return{value:NaN,type:3,hints:{Nan:!0}};let r=e.trim(),i=r.match(/^[$](.*?)$/);i&&(r=i[1],t.Currency=!0);let n=r.match(/^\\((.*?)\\)$/);n&&(r=n[1],t.Parens=!0);let o=r.match(/^(.*?)%\\s*$/);o&&(r=o[1],t.Percent=!0),O.decimal_separator==="."?/,/.test(r)&&(r=r.replace(/,/g,""),t.Grouping=!0):(r=r.replace(/(\\d)\\s+/g,"$1"),r=r.replace(/\\./g,""),r=r.replace(/,/,"."));let a=Number(r);if(a===null||isNaN(a)){let l=e.toLowerCase();if(l==="false")return{value:!1,type:4};if(l==="true")return{value:!0,type:4};let c=this.TestDate(e);if(c!==!1&&!isNaN(c)){let d=new Date(c),h=d.getUTCFullYear();if(h>=jr-200&&h<=jr+200)return t={Date:!0},(d.getHours()||d.getMinutes()||d.getSeconds())&&(t.Time=!0),{value:Br(c,!0),type:3,hints:t}}return{value:e,type:2}}if(n&&(a=-a),o){let l=a<0?-1:1,c=(l*a).toString().split(".");c[0]=("00"+c[0]).replace(/(\\d\\d)$/,".$1"),a=Number(c.join(""))*l}return/e/.test(e)&&(t.Exponential=!0),{value:a,type:3,hints:t}}},nr=new sr;var it=class s extends $e{constructor(t,r,i){super();this.model=t;this.view=r;this.autocomplete=i;this.parser=t.parser}static FormulaChars=("$^&*(-+={[<>/~%@"+O.argument_separator).split("");active_cell;autocomplete_matcher;container_node;active_editor;nodes=[];target_address;assume_formula=!1;text_formula=!1;get selecting(){if(this.assume_formula)return!0;if(!this.text_formula)return!1;if(this.active_editor&&this.active_editor.node===this.active_editor.node.ownerDocument.activeElement){let t=this.active_editor.node.ownerDocument.defaultView,r=t.getSelection();if(r?.rangeCount){let o=r?.getRangeAt(0);if((o?.endContainer instanceof t.HTMLElement?o.endContainer:o.endContainer?.parentElement)?.dataset.reference!==void 0)return!0;if(o?.startContainer instanceof t.Text){let l=(o.startContainer.textContent?.substring(0,o.startOffset)||"").trim();if(l.length&&s.FormulaChars.includes(l[l.length-1]))return!0}else console.info("mark 21",o)}let n=this.SubstringToCaret2(this.active_editor.node)[1].trim();if(n.length){let o=n[n.length-1];return s.FormulaChars.includes(o)}}return!1}composite_dependencies=[];get dependencies(){return this.composite_dependencies}parser;FocusEditor(){this.active_editor&&this.active_editor.node.focus()}RegisterListener(t,r,i){t.node.addEventListener(r,i),t.listeners||(t.listeners=new Map),t.listeners.set(r,i)}SelectAll(t){let i=t.ownerDocument.defaultView.getSelection(),n=t.ownerDocument.createRange();n.selectNode(t),i?.removeAllRanges(),i?.addRange(n)}SetCaret(t,r){let i=t.node.ownerDocument,n=i?.defaultView,o=n.getSelection(),a=i?.createRange(),l=d=>{let h=d;for(;h&&!(h instanceof n.Text)&&h.firstChild;)h=h.firstChild;return h},c=l(t.node);if(r){let d=l(r.node);o&&a&&(a.setStart(c,t.offset),a.setEnd(d,r.offset),o.removeAllRanges(),o.addRange(a))}else o&&a&&(a.setStart(c,t.offset),a.setEnd(c,t.offset),a.collapse(!0),o.removeAllRanges(),o.addRange(a))}InsertReference(t){if(!this.active_editor)return;let r=this.active_editor.node.ownerDocument.defaultView,i=r.getSelection();if(!i)throw new Error("error getting selection");if(i.rangeCount===0)return"";let n=i.getRangeAt(0),o=this.active_editor.node.textContent||"";if(n.startContainer instanceof r.Text)if(!n.collapsed&&n.startOffset<n.endOffset){let a=this.SubstringToCaret2(this.active_editor.node);this.active_editor.node.textContent=a[0]+t+o.substring(a[1].length),this.SetCaret({node:this.active_editor.node,offset:a[0].length},{node:this.active_editor.node,offset:a[0].length+t.length})}else{let a=n.startContainer.parentElement;if(a instanceof r.HTMLElement&&a.dataset.reference)a.textContent=t,this.SetCaret({node:a,offset:t.length});else{let l=this.SubstringToCaret2(this.active_editor.node)[1],c="",d=l.trim();if(d.length){let h=d[d.length-1];s.FormulaChars.includes(h)||(l.length===d.length?c=" +":c="+")}this.active_editor.node.textContent=l+c+t+o.substring(l.length),this.SetCaret({node:this.active_editor.node,offset:l.length+t.length+c.length})}}else n.startContainer instanceof r.HTMLElement?(n.startContainer.textContent=t,this.SetCaret({node:n.startContainer,offset:t.length})):console.warn("unexpected range start container",n.startContainer);this.UpdateText(this.active_editor),this.UpdateColors(),this.active_editor.node.dispatchEvent(new Event("input",{bubbles:!0,cancelable:!0}))}UpdateColors(t=!1,r=!1){let i=new Map,n=new Map;for(let a of this.nodes)for(let l of a.references||[]){let c=this.model.AddressToLabel(l);i.has(c)||(i.set(c,l),n.set(c,n.size))}for(let a of this.nodes){for(let l of Array.from(a.node.childNodes)){let c=l.ownerDocument?.defaultView;if(c&&l instanceof c.HTMLElement&&l.dataset.reference){let d=n.get(l.dataset.reference);l.dataset.highlightIndex=typeof d=="number"?(d%5+1).toString():"?"}}a.check=a.node.innerHTML.length}let o=Array.from(i.values());!t&&JSON.stringify(this.composite_dependencies)===JSON.stringify(o)||(this.composite_dependencies=o,r||this.Publish({type:"update",dependencies:this.composite_dependencies}))}UpdateDependencies(t,r){let i=[];for(let l of r.full_reference_list||[])switch(l.type){case"address":case"range":{let c=l.type==="range"?l.start:l;c.sheet_id||(c.sheet?c.sheet_id=this.model.sheets.Find(c.sheet)?.id||0:c.sheet_id=this.view.active_sheet.id),i.push(l);break}case"structured-reference":if(this.target_address){let c=this.model.ResolveStructuredReference(l,this.target_address);c&&i.push(c)}else console.info("target address not set");break;case"identifier":{let c=this.model.GetName(l.name,this.view.active_sheet.id);c?.type==="range"&&(c.area.count===1?i.push({type:"address",...c.area.start,label:l.name,position:l.position,id:l.id}):i.push({type:"range",start:{type:"address",position:l.position,id:l.id,label:l.name,...c.area.start},end:{type:"address",position:l.position,label:l.name,id:l.id,...c.area.end},label:l.name,position:l.position,id:l.id}));break}}i.sort((l,c)=>l.position-c.position);let n=[],o=new Set,a=new Map;for(let l of i){let c=this.model.AddressToLabel(l),d=Ee(l)?new L(l):new L(l.start,l.end);o.has(c)||(n.push(d),o.add(c)),a.set(l.label,c)}return this.UpdateReferences(t,n),a}UpdateReferences(t,r=[]){t.node.dataset.references=JSON.stringify(r.map(i=>this.model.AddressToLabel(i))),t.references=r}UpdateText(t,r={}){let i=t.node,n=i.textContent||"",o=le.GetInstance(i.ownerDocument);if(this.text_formula=n[0]==="=",this.active_editor&&!this.assume_formula&&(this.active_editor.node.spellcheck=!this.text_formula,!this.text_formula)||n===t.formatted_text)return;let[a,l]=this.SubstringToCaret2(i),c=a.length,d=l.length;if(c===0&&d===0&&(d=n.length),!n)this.UpdateReferences(t);else{let p=this.parser.Parse(n);if(p.expression){let u=this.UpdateDependencies(t,p),f=n[0]==="="?1:0,b=0,x,v,w=0,m,S=o.Fragment(),G=(P,D="text",z="",W=!1)=>{let V=o.Text(P);if((W||(c>w||c===0&&w===0)&&c<=w+P.length)&&(x={offset:c-w,node:V}),d>w&&d<=w+P.length&&(v={offset:d-w,node:V}),D!=="text"){let U=o.Create("span",D);z&&(U.dataset.reference=z),U.appendChild(V),S.appendChild(U)}else S.appendChild(V);m=V,w+=P.length};this.parser.Walk(p.expression,P=>{if(P.type==="missing"||P.type==="group"||P.type==="dimensioned")return!0;let D=P.position+f,z=n.substring(b,D),W="",V=P.type,U="";switch(P.type){case"identifier":W=n.substring(D,D+P.name.length),U=u.get(P.name)||"";break;case"call":W=n.substring(D,D+P.name.length);break;case"literal":if(typeof P.value=="string")W=n.substring(D,D+P.value.length+2),V="string";else return!1;break;case"address":case"range":case"structured-reference":U=u.get(P.label)||"???",W=r.rewrite_addresses?P.label:n.substring(D,D+P.label.length);break;default:return!0}return G(z),G(W,V,U),b=D+W.length,P.type!=="range"}),b<n.length&&G(n.substring(b)),x||(m?x={node:m,offset:(m.data||"").length}:G("",void 0,"",!0)),i.textContent="",i.appendChild(S),x&&!r.format_only&&i===this.active_editor?.node&&this.SetCaret(x,v)}}t.formatted_text=n;let h=this.autocomplete_matcher;h&&Promise.resolve().then(()=>{let p=h.Exec({text:n,cursor:l.length}),u=this.NodeAtIndex(p.completions?.length?p.position||0:p.function_position||0);this.Autocomplete(p,u)})}NodeAtIndex(t){let r=this.active_editor?.node.childNodes||[];for(let i=0;i<r.length;i++){let n=r[i].textContent?.length||0;if(n>t)return r[i];t-=n}}AcceptAutocomplete(t){if(!this.active_editor)return;let r;if(t.data&&t.data.completions){for(let d of t.data.completions)if(d.name.toLowerCase()===t.value?.toLowerCase()){r=d.type;break}}let i=t.data?.position||0,n=i+(t.data?.token?.length||0),o=r==="token"?t.value:t.value+"(",a=this.active_editor.node.textContent||"",l=a.substring(0,i)+o,c=l.length;l+=a.substring(n),this.active_editor.node.textContent=l,this.SetCaret({node:this.active_editor.node,offset:c}),this.autocomplete?.Hide(),this.UpdateText(this.active_editor),this.UpdateColors()}Autocomplete(t,r){if(!this.container_node||!this.autocomplete)return;let i;r?.nodeType===Node.ELEMENT_NODE?i=r.getBoundingClientRect():i=this.container_node.getBoundingClientRect();let n=new ve(Math.round(i.left),Math.round(i.top),i.width,i.height);this.autocomplete.Show(this.AcceptAutocomplete.bind(this),t,n)}SubstringToCaret2(t,r=!1){let i=["",""];if(!r&&t!==t.ownerDocument.activeElement||t!==this.active_editor?.node)return i;let o=t.ownerDocument.defaultView,a=[!1,!1],l=(d,h)=>{if(d===h.startContainer&&d===h.endContainer&&!(d instanceof o.Text)){a[0]=a[1]=!0,i[0]+=d.textContent,i[1]+=d.textContent;return}if(d===h.startContainer&&(i[0]+=(d.textContent||"").substring(0,h.startOffset),a[0]=!0),d===h.endContainer&&(i[1]+=(d.textContent||"").substring(0,h.endOffset),a[1]=!0),!(a[0]&&a[1])){if(d instanceof o.Text){let p=d.textContent||"";a[0]||(i[0]+=p),a[1]||(i[1]+=p)}else if(d.hasChildNodes()){for(let p of Array.from(d.childNodes))if(l(p,h),a[0]&&a[1])return}}},c=o.getSelection();if(c?.rangeCount??!1){let d=c?.getRangeAt(0);d&&l(t,d)}return i}};var Ys=typeof navigator>"u"?"":navigator.appVersion,Ae=typeof navigator>"u"?"":navigator.userAgent,or=class{is_edge=/Edge/.test(Ys);is_ipad=/iPad|iPhone/.test(Ae);is_android=/android|samsung/i.test(Ae);is_mobile=this.is_ipad||this.is_android;is_firefox=/firefox/i.test(Ae);is_safari=/safari/i.test(Ae)&&!/edg/i.test(Ae);is_mac=/macintosh/i.test(Ae);is_chrome=/Chrome/i.test(Ae);is_windows=/win64|win32|windows\\s+nt/i.test(Ae);is_modern=!this.is_edge&&!(this.is_firefox&&this.is_android)&&/webkit|firefox/i.test(Ae)},Js={is_edge:!1,is_ipad:!1,is_android:!1,is_firefox:!1,is_safari:!1,is_mac:!1,is_chrome:!1,trident:!1,is_windows:!1,is_modern:!0,is_node:!0,is_mobile:!1},St=typeof navigator>"u"?Js:new or;var Yi=De(Tt());var mo={"<":"<",">":">","&":"&",""":\'"\',"'":"\'"},_o=/&\\w+;/g,bo=s=>s.replace(_o,e=>mo[e]||e);var It=bo;var Ni=De(Tt()),go=(s,e)=>It(e);var br=s=>{if(s){if(Array.isArray(s))for(let e of s)br(e);else if(typeof s=="object")for(let[e,t]of Object.entries(s))if(e==="a$"){if(typeof t=="object"){let r={};for(let[i,n]of Object.entries(t))n!==void 0&&(r[i]=n);s[e]=r}}else br(t)}return s},Mi=s=>{let e=new Ni.XMLBuilder(s),t=e.build;return e.build=r=>t.call(e,br(r)),e},Rt={ignoreAttributes:!1,attributesGroupName:"a$",attributeNamePrefix:"",textNodeName:"t$",trimValues:!1,ignoreDeclaration:!0,isArray:s=>/Relationship$/.test(s),tagValueProcessor:go},F=class{static FindChild(e={},t){let r=t.split("/");for(let i of r)if(e=e[i],!e)return;return e}static FindAll(e={},t){let r=t.split("/");if(r[0]==="."&&r.shift(),r[0]==="..")throw new Error("invalid path (no access to parent)");if(r[0]==="")throw new Error("invalid path (no access to root)");if(r[0]==="**")throw new Error("ENOTIMPL");return this.FindAllTail(e,r)}static FindAllTail(e,t){if(Array.isArray(e))return e.reduce((r,i)=>r.concat(this.FindAllTail(i,t)),[]);for(let r=0;r<t.length;r++){let i=t[r];if(i==="*"?e=Object.entries(e).reduce((o,[a,l])=>(a!=="a$"&&a!=="t$"&&o.push(l),o),[]):e=e[i],!e)return[];if(Array.isArray(e)){if(r===t.length-1||e.length===0)return e;let n=t.slice(1);return e.reduce((o,a)=>o.concat(this.FindAllTail(a,n)),[])}}return[e]}};var We=class{strings=[];reverse={};FromXML(e){this.strings=[],this.reverse={};let t=0;for(let r of F.FindAll(e,"sst/si")){if(r.t!==void 0){let i="";typeof r.t=="string"?i=r.t:r.t.t$&&(i=r.t.t$),this.strings[t]=i,this.reverse[i]=t}else if(r.r){let n=F.FindAll(r.r,"t").map(o=>typeof o=="string"?o:o.t$||"").join("");this.strings[t]=n,this.reverse[n]=t}else console.warn(` ** unexpected shared string @ ${t}`),console.info(r);t++}}Get(e){return this.strings[e]}Ensure(e){e[0]==="\'"&&(e=e.substring(1));let t=this.reverse[e];return typeof t=="number"||(t=this.strings.length,this.strings.push(e),this.reverse[e]=t),t}};var Pe=class s{static color_map=["lt1","dk1","lt2","dk2","accent1","accent2","accent3","accent4","accent5","accent6","hlink","folHlink"];colors={};FromXML(e){let t=Object.keys(e)[0],r="",i=t.toString().match(/^(.*?):/);if(i&&(r=i[1]+":"),e[t]&&e[t][`${r}themeElements`]){let n=e[t][`${r}themeElements`][`${r}clrScheme`];for(let o of s.color_map){let a=n[`${r}${o}`],l,c="rgb";a[`${r}srgbClr`]?(c="rgb",l=a[`${r}srgbClr`].a$.val||""):a[`${r}sysClr`]&&(c="system",l=a[`${r}sysClr`].a$.lastClr||""),this.colors[o]={name:o,value:l,type:c}}}}};var Fi=11,gr={top:{},left:{},bottom:{},right:{},diagonal:{}},He=class s{static default_styles={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"mm-dd-yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@"};theme=new Pe;cell_xfs=[];fonts=[];borders=[];fills=[];number_formats=[];base_number_format_id=200;dxf_styles=[];modified=!1;Clamp(e,t,r){return Math.max(t,Math.min(e,r))}TintColor(e,t){let r=parseInt(e.substr(0,2),16),i=parseInt(e.substr(2,2),16),n=parseInt(e.substr(4,2),16);return t<0?(r=Math.round(r*t+r),i=Math.round(i*t+i),n=Math.round(n*t+n)):(r=Math.round((255-r)*t+r),i=Math.round((255-i)*t+i),n=Math.round((255-n)*t+n)),[r,i,n].map(o=>{let a=this.Clamp(o,0,255).toString(16);return a.length<2?"0"+a:a}).join("")}StyleOptionsFromProperties(e){let t=JSON.parse(JSON.stringify(e));for(let c of Object.keys(t))t[c]==="none"&&delete t[c];let r={},i={pattern_type:"none"},n=JSON.parse(JSON.stringify(gr)),o={font:r,border:n};t.number_format&&(o.number_format={format:Me.Translate(t.number_format),symbolic_name:t.number_format},/Scientific/i.test(t.number_format)&&(o.number_format.format="0.00E+00")),t.font_size?.unit&&t.font_size.value&&(t.font_size.unit==="em"?r.size=t.font_size.value*Fi:t.font_size.unit==="%"?r.size=t.font_size.value*Fi/100:t.font_size.unit==="pt"?r.size=t.font_size.value:t.font_size.unit==="px"?r.size=t.font_size.value*.75:console.warn("Unhandled font size unit",t.font_size)),t.bold&&(r.bold=!0),t.italic&&(r.italic=!0),t.underline&&(r.underline=!0),t.text&&(ye(t.text)?r.color_argb=t.text.text:we(t.text)&&(r.color_theme=Ue(t.text),t.text.tint&&(r.color_tint=t.text.tint)));let a=(c,d)=>{c.width&&(d.style="thin",ye(c.color)?d.rgba=c.color.text:we(c.color)?(d.theme=Ue(c.color),c.color.tint&&(d.tint=c.color.tint)):d.color=64)},l=se.CompositeBorders(t);switch(a(l.top,n.top),a(l.left,n.left),a(l.right,n.right),a(l.bottom,n.bottom),t.vertical_align){case"top":o.vertical_alignment="top";break;case"middle":o.vertical_alignment="center";break}switch(t.horizontal_align){case"center":o.horizontal_alignment="center";break;case"left":o.horizontal_alignment="left";break;case"right":o.horizontal_alignment="right";break}return o.indent=t.indent,t.fill&&(i.pattern_type="solid",ye(t.fill)?(i.fg_color={argb:t.fill.text},o.fill=i):we(t.fill)&&(i.fg_color={theme:Ue(t.fill)},t.fill.tint&&(i.fg_color.tint=t.fill.tint),o.fill=i)),t.wrap&&(o.wrap=!0),o}CellXfToStyle(e){let t={},r=s.default_styles[e.number_format];if(!r){for(let c of this.number_formats)if(c.id===e.number_format&&c.format){r=c.format;break}}if(r){let c=/\\[\\$(.)-[0-9A-Za-z]{1,4}\\]/g;r=r.replace(c,"$1");let d=/\\[\\$-[0-9A-Za-z]{1,4}\\]/g;r=r.replace(d,""),t.number_format=r}let i=this.fonts[0],n=this.fonts[e.font||0];n&&(n.bold&&(t.bold=!0),n.italic&&(t.italic=!0),n.underline&&(t.underline=!0),n.strike&&(t.strike=!0),i&&i.size&&n.size&&i.size!==n.size&&(t.font_size={value:100*n.size/i.size,unit:"%"}),n.color_argb?t.text={text:"#"+(n.color_argb.length>6?n.color_argb.substr(n.color_argb.length-6):n.color_argb)}:typeof n.color_theme=="number"&&(t.text={theme:n.color_theme}));let o=this.fills[e.fill||0];if(o&&o.pattern_type!=="none"){if(o.pattern_type==="gray"){let c=Math.round((o.pattern_gray||0)/1e3*255);t.fill={text:`rgb(${c}, ${c}, ${c})`}}o.pattern_type==="solid"&&o.fg_color&&(o.fg_color.argb?t.fill={text:"#"+(o.fg_color.argb.length>6?o.fg_color.argb.substr(o.fg_color.argb.length-6):o.fg_color.argb)}:typeof o.fg_color.theme=="number"&&(t.fill={theme:o.fg_color.theme},o.fg_color.tint&&(t.fill.tint=Math.round(o.fg_color.tint*1e3)/1e3)))}switch(e.horizontal_alignment){case"center":t.horizontal_align="center";break;case"right":t.horizontal_align="right";break;case"left":t.horizontal_align="left";break}switch(e.vertical_alignment){case"center":t.vertical_align="middle";break;case"top":t.vertical_align="top";break;case"bottom":t.vertical_align="bottom";break}t.indent=typeof e.indent=="string"?Number(e.indent):e.indent,e.wrap_text&&(t.wrap=!0);let a=c=>{if(typeof c.theme<"u")return{theme:c.theme,tint:c.tint}},l=this.borders[e.border||0];return l&&(l.bottom.style&&(l.bottom.style==="double"?t.border_bottom=2:t.border_bottom=1,t.border_bottom_fill=a(l.bottom)),l.left.style&&(t.border_left=1,t.border_left_fill=a(l.left)),l.top.style&&(t.border_top=1,t.border_top_fill=a(l.top)),l.right.style&&(t.border_right=1,t.border_right_fill=a(l.right))),t}CellXfToStyles(){return this.cell_xfs.map(e=>this.CellXfToStyle(e))}EnsureNumberFormat(e){if(typeof e.format>"u"||e.symbolic_name&&/^general$/i.test(e.symbolic_name))return 0;for(let r=0;r<100;r++){let i=s.default_styles[r];if(i&&i===e.format)return r}for(let r of this.number_formats)if(r.format===e.format)return r.id||0;this.modified=!0;let t={id:this.base_number_format_id++,format:e.format};return this.number_formats.push(t),t.id}CompareBorderEdge(e,t){return e.color===t.color&&e.rgba===t.rgba&&e.style===t.style&&e.theme===t.theme&&e.tint===t.tint}CompareBorder(e,t){return this.CompareBorderEdge(e.top,t.top)&&this.CompareBorderEdge(e.left,t.left)&&this.CompareBorderEdge(e.bottom,t.bottom)&&this.CompareBorderEdge(e.right,t.right)&&this.CompareBorderEdge(e.diagonal,t.diagonal)}EnsureBorder(e){for(let r=0;r<this.borders.length;r++){let i=this.borders[r];if(this.CompareBorder(i,e))return r}this.modified=!0;let t=JSON.parse(JSON.stringify(e));return this.borders.push(t),this.borders.length-1}MatchColor(e,t){return!e&&!t?!0:!e||!t?!1:e.argb===t.argb&&e.indexed===t.indexed&&e.theme===t.theme&&e.tint===t.tint}EnsureFill(e){for(let r=0;r<this.fills.length;r++){let i=this.fills[r];if(this.MatchColor(e.bg_color,i.bg_color)&&this.MatchColor(e.fg_color,i.fg_color)&&e.pattern_gray===i.pattern_gray&&e.pattern_type===i.pattern_type)return r}this.modified=!0;let t={...e};return this.fills.push(t),this.fills.length-1}EnsureFont(e){let t={...this.fonts[0],...e};for(let r=0;r<this.fonts.length;r++){let i=this.fonts[r];if(i.bold===t.bold&&i.italic===t.italic&&i.underline===t.underline&&i.size===t.size&&i.strike===t.strike&&i.color_argb===t.color_argb&&i.color_theme===t.color_theme&&i.color_tint===t.color_tint&&i.family===t.family)return r}return this.modified=!0,this.fonts.push(t),this.fonts.length-1}EnsureStyle(e){let t=this.EnsureFont(e.font||{}),r=this.EnsureBorder(e.border||gr),i=this.EnsureNumberFormat(e.number_format||{}),n=this.EnsureFill(e.fill||{pattern_type:"none"});for(let a=0;a<this.cell_xfs.length;a++){let l=this.cell_xfs[a];if(l.font===t&&l.fill===n&&l.border===r&&l.number_format===i&&!!l.wrap_text==!!e.wrap&&l.indent===e.indent&&(!e.horizontal_alignment&&!l.horizontal_alignment||e.horizontal_alignment===l.horizontal_alignment)&&(!e.vertical_alignment&&!l.vertical_alignment||e.vertical_alignment===l.vertical_alignment))return a}this.modified=!0;let o={font:t,fill:n,border:r,number_format:i,indent:e.indent};return e.horizontal_alignment&&(o.horizontal_alignment=e.horizontal_alignment),e.vertical_alignment&&(o.vertical_alignment=e.vertical_alignment),e.wrap&&(o.wrap_text=!0),this.cell_xfs.push(o),this.cell_xfs.length-1}FromXML(e,t){let r=F.FindAll.bind(F,e);this.theme=t;let i=r("styleSheet/numFmts/numFmt");this.number_formats=i.map(d=>({id:Number(d.a$?.numFmtId||0),format:It(d.a$?.formatCode||"")})),i=r("styleSheet/borders/border");let n=(d,h)=>{d?.a$&&(h.style=d.a$.style,typeof d.color=="object"&&(typeof d.color.a$?.indexed<"u"&&(h.color=Number(d.color.a$.indexed)),typeof d.color.a$?.theme<"u"&&(h.theme=Number(d.color.a$.theme)),typeof d.color.a$?.tint<"u"&&(h.tint=Number(d.color.a$.tint))))};this.borders=i.map(d=>{let h=JSON.parse(JSON.stringify(gr));return n(d.left,h.left),n(d.right,h.right),n(d.top,h.top),n(d.bottom,h.bottom),h}),i=r("styleSheet/cellXfs/xf"),this.cell_xfs=i.map(d=>{let h={number_format:Number(d.a$.numFmtId),font:Number(d.a$.fontId),fill:Number(d.a$.fillId),border:Number(d.a$.borderId),xfid:Number(d.a$.xfId)};return d.alignment&&(h.horizontal_alignment=d.alignment.a$.horizontal,h.vertical_alignment=d.alignment.a$.vertical,h.wrap_text=!!d.alignment.a$.wrapText,h.indent=d.alignment.a$.indent||void 0),h});let o=d=>{let h={pattern_type:"none"};if(d.patternFill){let p=d.patternFill.a$?.patternType;switch(p){case"none":case void 0:break;case"solid":h.pattern_type="solid",d.patternFill.fgColor&&(h.fg_color={theme:d.patternFill.fgColor.a$?.theme?Number(d.patternFill.fgColor.a$.theme):void 0,indexed:d.patternFill.fgColor.a$?.indexed?Number(d.patternFill.fgColor.a$.indexed):void 0,tint:d.patternFill.fgColor.a$?.tint?Number(d.patternFill.fgColor.a$.tint):void 0,argb:d.patternFill.fgColor.a$?.rgb});break;default:{let u=p?.match(/^gray(\\d+)$/);if(u){h.pattern_type="gray",h.pattern_gray=Number(u[1]);break}}}}return h};i=r("styleSheet/fills/fill"),this.fills=i.map(o);let a=d=>{let h={};return h.italic=typeof d.i<"u",h.bold=typeof d.b<"u",h.underline=typeof d.u<"u",h.strike=typeof d.strike<"u",d.sz&&(h.size=Number(d.sz.a$.val)),d.scheme&&(h.scheme=d.scheme.a$.val),d.name&&(h.name=d.name.a$.val),d.family&&(h.family=Number(d.family.a$.val)),d.color&&(d.color.a$?.theme&&(h.color_theme=Number(d.color.a$.theme)),d.color.a$?.tint&&(h.color_tint=Number(d.color.a$.tint)),d.color.a$?.rgb&&(h.color_argb=d.color.a$.rgb)),h};i=r("styleSheet/fonts/font"),this.fonts=i.map(a);let l=d=>{let h={};return d.a$.rgb?h.text="#"+d.a$.rgb.substring(2):d.a$.theme&&(h.theme=Number(d.a$.theme)||0,d.a$.tint&&(h.tint=Math.round(d.a$.tint*1e3)/1e3)),h},c=r("styleSheet/dxfs/dxf");this.dxf_styles=c.map(d=>{let h={};return d.font&&(h.bold=!!d.font.b,h.italic=!!d.font.i&&d.font.i.a$.val!=="0"),d.font?.color?.a$&&(h.text=l(d.font.color)),d.fill?.patternFill?.bgColor?.a$&&(h.fill=l(d.fill.patternFill.bgColor)),h})}};var me=(s,e,t,r)=>{let n=`rId${Object.keys(s).length+1}`;return s[n]={id:n,type:e,target:t,mode:r},n};var Pi={"c:tx":{"c:strRef":{"c:f":"","c:strCache":{"c:ptCount":{a$:{val:"1"}},"c:pt":{a$:{idx:"0"},"c:v":""}}}},"c:overlay":{a$:{val:"0"}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"0",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"1400",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",spc:"0",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}}},zi={"c:tx":{"c:rich":{"a:bodyPr":{a$:{rot:"0",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"1400",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",spc:"0",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:r":{"a:rPr":{a$:{lang:""}},"a:t":""}}}},"c:overlay":{a$:{val:"0"}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"0",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"1400",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",spc:"0",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}}},ot={"c:chartSpace":{a$:{"xmlns:c":"http://schemas.openxmlformats.org/drawingml/2006/chart","xmlns:a":"http://schemas.openxmlformats.org/drawingml/2006/main","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","xmlns:c16r2":"http://schemas.microsoft.com/office/drawing/2015/06/chart"},"c:date1904":{a$:{val:"0"}},"c:lang":{a$:{val:"en-US"}},"c:roundedCorners":{a$:{val:"0"}},"mc:AlternateContent":{a$:{"xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006"},"mc:Choice":{a$:{Requires:"c14","xmlns:c14":"http://schemas.microsoft.com/office/drawing/2007/8/2/chart"},"c14:style":{a$:{val:"102"}}},"mc:Fallback":{"c:style":{a$:{val:"2"}}}},"c:chart":{},"c:spPr":{"a:solidFill":{"a:schemeClr":{a$:{val:"bg1"}}},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:printSettings":{"c:headerFooter":{},"c:pageMargins":{a$:{b:"0.75",l:"0.7",r:"0.7",t:"0.75",header:"0.3",footer:"0.3"}},"c:pageSetup":{}}}};var Di={"c:idx":{a$:{val:"0"}},"c:order":{a$:{val:"0"}},"c:spPr":{"a:solidFill":{"a:schemeClr":{a$:{val:"accent1"}}},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:invertIfNegative":{a$:{val:"0"}},"c:val":{"c:numRef":{"c:f":""}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000000-F52E-47BC-822F-A046A80610BE}"}}}}},Li={"c:title":{},"c:autoTitleDeleted":{a$:{val:"0"}},"c:plotArea":{"c:layout":{},"c:barChart":{"c:barDir":{a$:{val:"col"}},"c:grouping":{a$:{val:"clustered"}},"c:varyColors":{a$:{val:"0"}},"c:ser":[],"c:dLbls":{"c:showLegendKey":{a$:{val:"0"}},"c:showVal":{a$:{val:"0"}},"c:showCatName":{a$:{val:"0"}},"c:showSerName":{a$:{val:"0"}},"c:showPercent":{a$:{val:"0"}},"c:showBubbleSize":{a$:{val:"0"}}},"c:gapWidth":{a$:{val:"219"}},"c:overlap":{a$:{val:"-27"}},"c:axId":[{a$:{val:"47003664"}},{a$:{val:"1789284464"}}]},"c:catAx":{"c:axId":{a$:{val:"47003664"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"b"}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"1789284464"}},"c:crosses":{a$:{val:"autoZero"}},"c:auto":{a$:{val:"1"}},"c:lblAlgn":{a$:{val:"ctr"}},"c:lblOffset":{a$:{val:"100"}},"c:noMultiLvlLbl":{a$:{val:"0"}}},"c:valAx":{"c:axId":{a$:{val:"1789284464"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"l"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:numFmt":{a$:{formatCode:"General",sourceLinked:"1"}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"47003664"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"between"}}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}}},"c:plotVisOnly":{a$:{val:"1"}},"c:dispBlanksAs":{a$:{val:"gap"}},"c:extLst":{"c:ext":{a$:{uri:"{56B9EC1D-385E-4148-901F-78D8002777C0}","xmlns:c16r3":"http://schemas.microsoft.com/office/drawing/2017/03/chart"},"c16r3:dataDisplayOptions16":{"c16r3:dispNaAsBlank":{a$:{val:"1"}}}}},"c:showDLblsOverMax":{a$:{val:"0"}}};var Gi={"c:title":{},"c:autoTitleDeleted":{a$:{val:"0"}},"c:plotArea":{"c:layout":{},"c:doughnutChart":{"c:varyColors":{a$:{val:"1"}},"c:ser":{"c:idx":{a$:{val:"0"}},"c:order":{a$:{val:"0"}},"c:dPt":{"c:idx":{a$:{val:"3"}},"c:bubble3D":{a$:{val:"0"}},"c:spPr":{"a:solidFill":{"a:schemeClr":{a$:{val:"accent4"}}},"a:ln":{a$:{w:"19050"},"a:solidFill":{"a:schemeClr":{a$:{val:"lt1"}}}},"a:effectLst":{}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000007-E886-49A6-AE6D-C67D8A27530F}"}}}}},"c:cat":{"c:strRef":{"c:f":""}},"c:val":{"c:numRef":{"c:f":""}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000000-3689-4BB4-A84F-05B9F3BBE577}"}}}}},"c:dLbls":{"c:showLegendKey":{a$:{val:"0"}},"c:showVal":{a$:{val:"0"}},"c:showCatName":{a$:{val:"0"}},"c:showSerName":{a$:{val:"0"}},"c:showPercent":{a$:{val:"0"}},"c:showBubbleSize":{a$:{val:"0"}},"c:showLeaderLines":{a$:{val:"1"}}},"c:firstSliceAng":{a$:{val:"0"}},"c:holeSize":{a$:{val:"75"}}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}}},"c:legend":{"c:legendPos":{a$:{val:"b"}},"c:overlay":{a$:{val:"0"}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"0",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{a$:{rtl:"0"},"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}}},"c:plotVisOnly":{a$:{val:"1"}},"c:dispBlanksAs":{a$:{val:"gap"}},"c:extLst":{"c:ext":{a$:{uri:"{56B9EC1D-385E-4148-901F-78D8002777C0}","xmlns:c16r3":"http://schemas.microsoft.com/office/drawing/2017/03/chart"},"c16r3:dataDisplayOptions16":{"c16r3:dispNaAsBlank":{a$:{val:"1"}}}}},"c:showDLblsOverMax":{a$:{val:"0"}}};var Ui={"c:title":{},"c:autoTitleDeleted":{a$:{val:"0"}},"c:plotArea":{"c:layout":{},"c:scatterChart":{"c:scatterStyle":{a$:{val:"lineMarker"}},"c:varyColors":{a$:{val:"0"}},"c:ser":[],"c:dLbls":{"c:showLegendKey":{a$:{val:"0"}},"c:showVal":{a$:{val:"0"}},"c:showCatName":{a$:{val:"0"}},"c:showSerName":{a$:{val:"0"}},"c:showPercent":{a$:{val:"0"}},"c:showBubbleSize":{a$:{val:"0"}}},"c:axId":[{a$:{val:"2028657983"}},{a$:{val:"2023395087"}}]},"c:valAx":[{"c:axId":{a$:{val:"2028657983"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"b"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"25000"}},"a:lumOff":{a$:{val:"75000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"2023395087"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"midCat"}}},{"c:axId":{a$:{val:"2023395087"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"l"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:numFmt":{a$:{formatCode:"0.00",sourceLinked:"1"}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"25000"}},"a:lumOff":{a$:{val:"75000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"2028657983"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"midCat"}}}],"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}}},"c:plotVisOnly":{a$:{val:"1"}},"c:dispBlanksAs":{a$:{val:"gap"}},"c:extLst":{"c:ext":{a$:{uri:"{56B9EC1D-385E-4148-901F-78D8002777C0}","xmlns:c16r3":"http://schemas.microsoft.com/office/drawing/2017/03/chart"},"c16r3:dataDisplayOptions16":{"c16r3:dispNaAsBlank":{a$:{val:"1"}}}}},"c:showDLblsOverMax":{a$:{val:"0"}}},$i={"c:spPr":{"a:ln":{a$:{w:"19050",cap:"rnd"},"a:solidFill":{"a:schemeClr":{a$:{val:"accent1"}}},"a:round":{}},"a:effectLst":{}},"c:marker":{"c:symbol":{a$:{val:"none"}}},"c:xVal":{"c:numRef":{"c:f":""}},"c:yVal":{"c:numRef":{"c:f":""}},"c:smooth":{a$:{val:"0"}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000000-1F6C-44A9-AA4F-6706F20CC72E}"}}}}};var Vi={"c:title":{},"c:autoTitleDeleted":{a$:{val:"0"}},"c:plotArea":{"c:layout":{},"c:bubbleChart":{"c:varyColors":{a$:{val:"0"}},"c:ser":[],"c:dLbls":{"c:showLegendKey":{a$:{val:"0"}},"c:showVal":{a$:{val:"0"}},"c:showCatName":{a$:{val:"0"}},"c:showSerName":{a$:{val:"0"}},"c:showPercent":{a$:{val:"0"}},"c:showBubbleSize":{a$:{val:"0"}}},"c:axId":[{a$:{val:"2028657983"}},{a$:{val:"2023395087"}}]},"c:valAx":[{"c:axId":{a$:{val:"2028657983"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"b"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"25000"}},"a:lumOff":{a$:{val:"75000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"2023395087"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"midCat"}}},{"c:axId":{a$:{val:"2023395087"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"l"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:numFmt":{a$:{formatCode:"0.00",sourceLinked:"1"}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"25000"}},"a:lumOff":{a$:{val:"75000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"2028657983"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"midCat"}}}],"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}}},"c:plotVisOnly":{a$:{val:"1"}},"c:dispBlanksAs":{a$:{val:"gap"}},"c:extLst":{"c:ext":{a$:{uri:"{56B9EC1D-385E-4148-901F-78D8002777C0}","xmlns:c16r3":"http://schemas.microsoft.com/office/drawing/2017/03/chart"},"c16r3:dataDisplayOptions16":{"c16r3:dispNaAsBlank":{a$:{val:"1"}}}}},"c:showDLblsOverMax":{a$:{val:"0"}}},Zi={"c:spPr":{"a:solidFill":{"a:schemeClr":{a$:{val:"accent1"},"a:alpha":{a$:{val:"75000"}}}},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:xVal":{"c:numRef":{"c:f":""}},"c:yVal":{"c:numRef":{"c:f":""}},"c:bubbleSize":{"c:numRef":{"c:f":""}},"c:bubble3D":{a$:{val:"0"}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000000-03D7-43A5-9DAB-5775FFEF9C03}"}}}}};var Be=class s{constructor(e,t=s.next_chart_index++){this.options=e;this.index=t}static next_chart_index=1;relationships={};UpdateChartTitle(e){let t=this.options.title||{type:"literal",value:""};if(t&&t.type==="literal"){let r=JSON.parse(JSON.stringify(zi)),i=r["c:tx"]["c:rich"]["a:p"];i["a:r"]={"a:rPr":{a$:{lang:O.locale}},"a:t":t.value},e["c:title"]=r}else if(t){let r=JSON.parse(JSON.stringify(Pi));r["c:tx"]["c:strRef"]["c:f"]=t.label,e["c:title"]=r}}toJSON(){switch(this.options.type){case"column":case"bar":return this.CreateBarChart();case"scatter":case"scatter2":return this.CreateScatterChart();case"bubble":return this.CreateBubbleChart();case"donut":return this.CreateDonutChart();default:console.info("unhandled chart type",this.options.type)}return this.CreateBarChart()}CreateBubbleChart(){let e=JSON.parse(JSON.stringify(ot)),t=e["c:chartSpace"],r=JSON.parse(JSON.stringify(Vi));t["c:chart"]=r,this.UpdateChartTitle(t["c:chart"]);let i=t["c:chart"]["c:plotArea"]["c:bubbleChart"]["c:ser"],n=!1;for(let o=0;o<this.options.data.length;o++){let a=JSON.parse(JSON.stringify(Zi));if(a["c:idx"]={a$:{val:o.toString()}},a["c:order"]={a$:{val:o.toString()}},this.options.names&&this.options.names[o]){let l=this.options.names[o];switch(l.type){case"literal":a["c:tx"]={"c:v":l.value.toString()},n=!0;break;case"range":case"address":a["c:tx"]={"c:strRef":{"c:f":l.label}},n=!0;break}}o<6&&(a["c:spPr"]["a:solidFill"]["a:schemeClr"].a$.val=`accent${o+1}`),a["c:yVal"]["c:numRef"]["c:f"]=this.options.data[o]?.label,this.options.labels2&&this.options.labels2[o]&&(a["c:xVal"]["c:numRef"]["c:f"]=this.options.labels2[o]?.label),this.options.labels3&&this.options.labels3[o]&&(a["c:bubbleSize"]["c:numRef"]["c:f"]=this.options.labels3[o]?.label),i.push(a)}return n&&(t["c:chart"]["c:legend"]={"c:legendPos":{a$:{val:"b"}},"c:overlay":{a$:{val:"0"}}}),e}CreateScatterChart(){let e=JSON.parse(JSON.stringify(ot)),t=e["c:chartSpace"],r=JSON.parse(JSON.stringify(Ui));this.options.smooth&&(r["c:plotArea"]["c:scatterChart"]["c:scatterStyle"].a$.val="smoothMarker"),t["c:chart"]=r,this.UpdateChartTitle(t["c:chart"]);let i=t["c:chart"]["c:plotArea"]["c:scatterChart"]["c:ser"],n=!1;for(let o=0;o<this.options.data.length;o++){let a=JSON.parse(JSON.stringify($i));if(a["c:idx"]={a$:{val:o.toString()}},a["c:order"]={a$:{val:o.toString()}},this.options.names&&this.options.names[o]){let l=this.options.names[o];switch(l.type){case"literal":a["c:tx"]={"c:v":l.value.toString()},n=!0;break;case"range":case"address":a["c:tx"]={"c:strRef":{"c:f":l.label}},n=!0;break}}o<6&&(a["c:spPr"]["a:ln"]["a:solidFill"]["a:schemeClr"].a$.val=`accent${o+1}`),a["c:yVal"]["c:numRef"]["c:f"]=this.options.data[o]?.label,this.options.labels2&&this.options.labels2[o]&&(a["c:xVal"]["c:numRef"]["c:f"]=this.options.labels2[o]?.label),this.options.smooth&&(a["c:smooth"]={a$:{val:1}}),i.push(a)}return n&&(t["c:chart"]["c:legend"]={"c:legendPos":{a$:{val:"b"}},"c:overlay":{a$:{val:"0"}}}),e}CreateDonutChart(){let e=JSON.parse(JSON.stringify(ot)),t=e["c:chartSpace"],r=JSON.parse(JSON.stringify(Gi));t["c:chart"]=r,this.UpdateChartTitle(t["c:chart"]);let i=r["c:plotArea"]["c:doughnutChart"];return i&&(i["c:ser"]["c:cat"]["c:strRef"]["c:f"]=this.options.labels?.label||"",i["c:ser"]["c:val"]["c:numRef"]["c:f"]=this.options.data[0]?.label||""),e}CreateBarChart(){let e=JSON.parse(JSON.stringify(ot)),t=e["c:chartSpace"],r=JSON.parse(JSON.stringify(Li));t["c:chart"]=r,this.UpdateChartTitle(t["c:chart"]);let i=r["c:plotArea"]["c:barChart"];if(i){let n=i["c:barDir"];n&&(n.a$.val=this.options.type==="bar"?"bar":"col");let o=i["c:ser"];for(let a=0;a<this.options.data.length;a++){let l=JSON.parse(JSON.stringify(Di));l["c:idx"]={a$:{val:a.toString()}},l["c:order"]={a$:{val:a.toString()}},a<6&&(l["c:spPr"]["a:solidFill"]["a:schemeClr"].a$.val=`accent${a+1}`),!a&&this.options.labels&&(l["c:cat"]={"c:strRef":{"c:f":this.options.labels.label}}),l["c:val"]["c:numRef"]["c:f"]=this.options.data[a]?.label,o.push(l)}}return e}};var kt=class s{constructor(e,t=s.next_image_index++){this.options=e;this.index=t;switch(e.mimetype){case"svg+xml":this.extension="svg";break;case"image/png":this.extension="png";break;case"jpg":this.extension="jpeg";break;case"svg":case"png":case"jpeg":case"gif":this.extension=e.mimetype;break;default:console.warn("unhandled mime type",e.mimetype);break}}static next_image_index=1;extension=""};var Oi=9525,at=class s{constructor(e=s.next_drawing_index++){this.index=e}static next_drawing_index=1;sheet_drawing_relationship=0;charts=[];images=[];relationships={};AddImage(e,t){let r=new kt(e);if(r.extension){let i=me(this.relationships,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",`../media/image${r.index}.${r.extension}`);this.images.push({image:r,relationship:i,anchor:t})}}AddChart(e,t){let r=new Be(e),i=me(this.relationships,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",`../charts/chart${r.index}.xml`);this.charts.push({chart:r,anchor:t,relationship:i})}CornerToJSON(e){return{"xdr:col":e.column,"xdr:colOff":(e.column_offset||0)*Oi,"xdr:row":e.row,"xdr:rowOff":(e.row_offset||0)*Oi}}AnchorToJSON(e){return{"xdr:from":{...this.CornerToJSON(e.from)},"xdr:to":{...this.CornerToJSON(e.to)}}}toJSON(){let e=this.images.map(i=>({a$:{editAs:"oneCell"},...this.AnchorToJSON(i.anchor),"xdr:pic":{"xdr:nvPicPr":{"xdr:cNvPr":{a$:{id:i.image.index+1,name:"Image "+i.image.index}},"xdr:cNvPicPr":{"a:picLocks":{a$:{noChangeAspect:1}}}},"xdr:blipFill":{"a:blip":{a$:i.image.extension==="svg"?{"xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships"}:{"xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","r:embed":i.relationship},"a:extLst":{"a:ext":[{a$:{uri:"{28A0092B-C50C-407E-A947-70E740481C1C}"},"a14:useLocalDpi":{a$:{"xmlns:a14":"http://schemas.microsoft.com/office/drawing/2010/main",val:0}}},i.image.extension==="svg"?{a$:{uri:"{96DAC541-7B7A-43D3-8B79-37D633B846F1}"},"asvg:svgBlip":{a$:{"xmlns:asvg":"http://schemas.microsoft.com/office/drawing/2016/SVG/main","r:embed":i.relationship}}}:void 0]}},"a:stretch":{"a:fillRect":{}}},"xdr:spPr":{"a:xfrm":{"a:off":{a$:{x:0,y:0}},"a:ext":{a$:{cx:4057650,cy:6172200}}},"a:prstGeom":{a$:{prst:"rect"},"a:avLst":{}}}},"xdr:clientData":{}})),t=this.charts.map(i=>({...this.AnchorToJSON(i.anchor),"xdr:graphicFrame":{a$:{macro:""},"xdr:nvGraphicFramePr":{"xdr:cNvPr":{a$:{id:i.chart.index+1,name:`Chart ${i.chart.index}`}},"xdr:cNvGraphicFramePr":{}},"xdr:xfrm":{"a:off":{a$:{x:0,y:0}},"a:ext":{a$:{cx:0,cy:0}}},"a:graphic":{"a:graphicData":{a$:{uri:"http://schemas.openxmlformats.org/drawingml/2006/chart"},"c:chart":{a$:{"xmlns:c":"http://schemas.openxmlformats.org/drawingml/2006/chart","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","r:id":i.relationship}}}}},"xdr:clientData":{}}));return{"xdr:wsDr":{a$:{"xmlns:xdr":"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing","xmlns:a":"http://schemas.openxmlformats.org/drawingml/2006/main"},"xdr:twoCellAnchor":[...t,...e]}}}};var Bi=De(Tt());var je=s=>"row"in s&&"col"in s,ze=s=>"from"in s&&"to"in s&&je(s.from)&&je(s.to),Et=(s,e)=>e.sheet===s.sheet&&e.row>=s.from.row&&e.row<=s.to.row&&e.col>=s.from.col&&e.col<=s.to.col,yr=(s,e=0,t=0)=>({from:{row:s.from.row+e,col:s.from.col+t,sheet:s.from.sheet},to:{row:s.to.row+e,col:s.to.col+t,sheet:s.to.sheet}});var Nt=class{constructor(e={}){this.options=e}path;rels_path;rels={};sheet_data={};shared_strings;extent;visible_state;tab_selected=!1;default_width=0;drawings=[];TranslateAddress(e){e=e.toUpperCase();let t=e.match(/([A-Z]+\\d+):([A-Z]+\\d+)/);if(t)return{from:this.TranslateAddress(t[1]),to:this.TranslateAddress(t[2])};let r=0,i=0;if(t=e.match(/^([A-Z]+)(\\d+)$/),t){r=Number(t[2]),i=0;let n=t[1].length;for(let o=0;o<n;o++){let a=t[1].charCodeAt(o)-64;i=i*26+a}}return{row:r,col:i}}Address(e,t=!1){if(ze(e))return this.Address(e.from,t)+":"+this.Address(e.to,t);let r="",i=e.col;for(;i>0;){let o=(i-1)%26+1;r=String.fromCharCode(64+o)+r,i=(i-o)/26}let n=e.sheet?`\'${e.sheet}\'!`:"";return t?`${n}$${r}$${e.row}`:n+r+e.row}NormalizeAddress(e){let t,r;return typeof e=="string"?(t=e.toUpperCase(),r=this.TranslateAddress(t)):(r=e,t=this.Address(r)),{a:t,rc:r}}Parse(){let e=this.sheet_data.worksheet?.dimension?.a$?.ref,t=this.TranslateAddress(e||"");ze(t)?this.extent=JSON.parse(JSON.stringify(t)):this.extent={from:JSON.parse(JSON.stringify(t)),to:JSON.parse(JSON.stringify(t))}}};var xr=De(Wi()),Hi=De(ut()),Ye=class{records;text=new Map;constructor(e){this.records=xr.default.parse(e)}Has(e){return this.text.has(e)||!!this.records?.[e]}ArrayBuffer(){let e={};if(this.records)for(let[r,i]of Object.entries(this.records))e[r]=new Uint8Array(i);let t=new TextEncoder;for(let[r,i]of this.text.entries())e[r]=t.encode(i);return xr.default.encode(e)}SetBinary(e,t,r){if(r==="base64"){let i=Hi.default.toByteArray(t);this.records[e]=i}else throw new Error("unsupported encoding: "+r)}Set(e,t){this.text.set(e,t),this.records[e]&&delete this.records[e]}GetBinary(e){let t=this.records[e];if(t)return new Uint8Array(t);throw new Error("path not in records: "+e)}Get(e){let t=this.text.get(e);if(t)return t;let r=this.records[e];if(r)return t=new TextDecoder().decode(r),this.text.set(e,t),delete this.records[e],t;throw console.info(this),new Error("path not in zip file: "+e)}};var Ie=new Bi.XMLParser(Rt),Ft={greaterThan:">",greaterThanOrEqual:">=",lessThan:"<",lessThanOrEqual:"<=",equal:"=",notEqual:"<>"};var Mt=class{constructor(e){this.zip=e}xml={};shared_strings=new We;style_cache=new He;theme=new Pe;named=[];rels={};sheets=[];active_tab=0;get sheet_count(){return this.sheets.length}ReadRels(e){let t={},r=this.zip.Has(e)?this.zip.Get(e):"",i=Ie.parse(r||"");for(let n of i.Relationships?.Relationship||[]){let o=n.a$.Id;t[o]={id:o,type:n.a$.Type,target:n.a$.Target}}return t}Init(){this.rels=this.ReadRels("xl/_rels/workbook.xml.rels");let e=this.zip.Has("xl/sharedStrings.xml")?this.zip.Get("xl/sharedStrings.xml"):"",t=Ie.parse(e||"");this.shared_strings.FromXML(t),e=this.zip.Get("xl/theme/theme1.xml"),t=Ie.parse(e),this.theme.FromXML(t),e=this.zip.Get("xl/styles.xml"),t=Ie.parse(e),this.style_cache.FromXML(t,this.theme),e=this.zip.Get("xl/workbook.xml"),t=Ie.parse(e),this.named=[];let r=F.FindAll(t,"workbook/definedNames/definedName");for(let o of r){let a=o.a$?.name,l=o.t$||"",c=o.a$?.localSheetId?Number(o.a$.localSheetId):void 0;this.named.push({name:a,expression:typeof l=="string"?l:l?.toString()||"",local_scope:c})}let i=F.FindAll(t,"workbook/bookViews/workbookView");i[0]?.a$?.activeTab&&(this.active_tab=Number(i[0].a$.activeTab)||0);let n=F.FindAll(t,"workbook/sheets/sheet");for(let o of n){let a=o.a$?.name;if(a){let l=o.a$.state,c=o.a$["r:id"],d=new Nt({name:a,rid:c,id:Number(o.a$.sheetId)});l==="hidden"?d.visible_state=1:l==="veryHidden"&&(d.visible_state=2),d.shared_strings=this.shared_strings,d.path=`xl/${this.rels[c].target}`,d.rels_path=d.path.replace("worksheets","worksheets/_rels")+".rels",e=this.zip.Get(d.path),d.sheet_data=Ie.parse(e||""),d.rels=this.ReadRels(d.rels_path),d.Parse(),this.sheets.push(d)}}}ReadTable(e){let t=this.zip.Get(e.replace(/^../,"xl"));if(!t)return;let r=Ie.parse(t),i=r.table?.a$?.name||"";return{name:i,display_name:r.table?.a$?.displayName||i,ref:r.table?.a$.ref||"",totals_row_shown:Number(r.table?.a$.totalsRowShown||"0")||0,totals_row_count:Number(r.table?.a$.totalsRowCount||"0")||0}}ReadDrawing(e){let t=this.zip.Get(e.replace(/^../,"xl"));if(!t)return;let r=Ie.parse(t),i=this.ReadRels(e.replace(/^..\\/drawings/,"xl/drawings/_rels")+".rels"),n=[],o=F.FindAll(r,"xdr:wsDr/xdr:twoCellAnchor"),a=(l={})=>({column:l["xdr:col"]||0,column_offset:l["xdr:colOff"]||0,row:l["xdr:row"]||0,row_offset:l["xdr:rowOff"]||0});for(let l of o){let c={from:a(l["xdr:from"]),to:a(l["xdr:to"])},d=F.FindAll(l,"xdr:graphicFrame/a:graphic/a:graphicData/c:chart")[0];if(d||(d=F.FindAll(l,"mc:AlternateContent/mc:Choice/xdr:graphicFrame/a:graphic/a:graphicData/cx:chart")[0]),d&&d.a$&&d.a$["r:id"]){let h={type:"chart",anchor:c},p=i[d.a$["r:id"]];p&&p.target&&(h.chart=this.ReadChart(p.target)),n.push(h)}else{let h=F.FindAll(l,"xdr:pic/xdr:blipFill/a:blip")[0];if(h&&h.a$["r:embed"]){let p=i[h.a$["r:embed"]];if(p&&p.target&&/(?:jpg|jpeg|png|gif)$/i.test(p.target)){let u=p.target.replace(/^\\.\\./,"xl"),f=u.replace(/^.*\\//,""),b={type:"image",anchor:c,image:this.zip.GetBinary(u),filename:f};n.push(b)}}else{let p,u=F.FindAll(l,"xdr:sp/xdr:spPr")[0];if(u){p={};let b=u["a:solidFill"];if(b&&b["a:schemeClr"]?.a$?.val){let x=b["a:schemeClr"].a$.val.match(/accent(\\d+)/);if(x&&(p.fill={theme:Number(x[1])+3},b["a:schemeClr"]["a:lumOff"]?.a$?.val)){let v=Number(b["a:schemeClr"]["a:lumOff"].a$.val);isNaN(v)||(p.fill.tint=v/1e5)}}}let f=F.FindAll(l,"xdr:sp/xdr:txBody")[0];if(f){let b=[],x=F.FindAll(f,"a:p");for(let v of x){let w=[],m,S=v["a:pPr"];S&&(m={},S.a$?.algn==="r"?m.horizontal_align="right":S.a$?.algn==="ctr"&&(m.horizontal_align="center"));let G=v["a:r"];if(G){Array.isArray(G)||(G=[G]);for(let P of G){let D={text:P["a:t"]||""},z=P["a:rPr"];z&&(D.style={},z.a$?.b==="1"&&(D.style.bold=!0),z.a$?.i==="1"&&(D.style.italic=!0)),w.push(D)}}b.push({content:w,style:m})}n.push({type:"textbox",style:p,paragraphs:b,anchor:c})}}}}return n}ReadChart(e){let t=this.zip.Get(e.replace(/^../,"xl"));if(!t)return;let r=Ie.parse(t),i={type:0},n=F.FindChild(r,"c:chartSpace/c:chart/c:title");if(n){let l=F.FindChild(n,"c:tx/c:strRef/c:f");if(l)typeof l=="string"?i.title=l:l.t$&&(i.title=l.t$);else{let c=F.FindAll(n,"c:tx/c:rich/a:p/a:r/a:t");i.title=\'"\'+c.join("")+\'"\'}}let o=(l,c)=>{let d=[],h=l["c:ser"]||[];Array.isArray(h)||(h=[h]);for(let p of h){let u=d.length,f=p["c:order"];f&&(u=Number(f.a$?.val||0)||0);let b={},x=F.FindChild(p,"c:tx/c:v");if(x){let v=x;v&&(b.title=`"${v}"`)}else x=F.FindChild(p,"c:tx/c:strRef/c:f"),x&&(b.title=x);if(c===4||c===7){let v=F.FindChild(p,"c:xVal/c:numRef/c:f");v&&(b.categories=v);let w=F.FindChild(p,"c:yVal/c:numRef/c:f");if(w&&(b.values=w),c===7){let m=F.FindChild(p,"c:bubbleSize/c:numRef/c:f");m&&(b.bubble_size=m)}}else{let v=F.FindChild(p,"c:val/c:numRef/c:f");v&&(b.values=v);let w=F.FindChild(p,"c:cat/c:strRef/c:f");w||(w=F.FindChild(p,"c:cat/c:numRef/c:f")),w&&(b.categories=w)}d[u]=b}return d},a=F.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:barChart");if(a&&(i.type=2,a["c:barDir"]&&a["c:barDir"].a$?.val==="col"&&(i.type=1),i.series=o(a)),a||(a=F.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:lineChart"),a&&(i.type=3,i.series=o(a))),a||(a=F.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:doughnutChart"),a&&(i.type=5,i.series=o(a))),a||(a=F.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:pieChart"),a&&(i.type=6,i.series=o(a))),a||(a=F.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:scatterChart"),a&&(i.type=4,i.series=o(a,4))),a||(a=F.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:bubbleChart"),a&&(i.type=7,i.series=o(a,7))),!a){let l=F.FindAll(r,"cx:chartSpace/cx:chart/cx:plotArea/cx:plotAreaRegion/cx:series");if(l?.length&&l.every(c=>c.a$?.layoutId==="boxWhisker")){i.type=8,i.series=[];let c=F.FindAll(r,"cx:chartSpace/cx:chartData/cx:data");for(let d of l){let h={},p=Number(d["cx:dataId"]?.a$?.val);for(let b of c)if(Number(b.a$?.id)===p){h.values=b["cx:numDim"]?.["cx:f"]||"";break}let u=F.FindAll(d,"cx:tx/cx:txData");u&&(u[0]?.["cx:f"]?h.title=u[0]["cx:f"]:u[0]?.["cx:v"]&&(h.title=\'"\'+u[0]["cx:v"]+\'"\'));let f=F.FindAll(r,"cx:chartSpace/cx:chart/cx:title/cx:tx/cx:txData");f&&(f[0]?.["cx:f"]?i.title=f[0]["cx:f"]:f[0]?.["cx:v"]&&(i.title=\'"\'+f[0]["cx:v"]+\'"\')),i.series.push(h)}return i}}return a||console.info("Chart type not handled"),i}GetNamedRanges(){return this.named}};var Re=`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n`,vr=s=>{if(ye(s))return{a$:{rgb:"FF"+s.text.substring(1)}};if(we(s))return{a$:{theme:Ue(s),tint:s.tint}}},Pt=class{zip;xmloptions={format:!0,attributesGroupName:"a$",textNodeName:"t$",ignoreAttributes:!1,suppressEmptyNode:!0};xmlbuilder1=Mi(this.xmloptions);xmlparser2=new Yi.XMLParser(Rt);parser=new Ve;decorated_functions={};Init(e={}){for(let r of Object.keys(e))this.decorated_functions[r.toLowerCase()]=e[r];let t=ji.toByteArray(Ir);this.zip=new Ye(t)}WriteRels(e,t,r=!1){if(!this.zip)throw new Error("missing zip");let i=Object.keys(e),n={Relationships:{a$:{xmlns:"http://schemas.openxmlformats.org/package/2006/relationships"},Relationship:i.map(a=>{let l=e[a],c={Id:l.id,Target:l.target,Type:l.type};return l.mode&&(c.TargetMode=l.mode),{a$:c}})}},o=Re+this.xmlbuilder1.build(n);r&&console.info(o),this.zip.Set(t,o)}WriteStyleCache(e){if(!this.zip)throw new Error("missing zip");let t=u=>{let f={};return u.indexed!==void 0&&(f.indexed=u.indexed),u.theme!==void 0&&(f.theme=u.theme),u.tint!==void 0&&(f.tint=u.tint),u.argb!==void 0&&(f.rgb=u.argb),f},r=e.cell_xfs.map(u=>{let f={a$:{numFmtId:u.number_format,fontId:u.font,fillId:u.fill,borderId:u.border}};if(u.horizontal_alignment||u.vertical_alignment||u.wrap_text||u.indent){let b={};u.horizontal_alignment&&(b.horizontal=u.horizontal_alignment),u.vertical_alignment&&(b.vertical=u.vertical_alignment),u.wrap_text&&(b.wrapText=1),u.indent&&u.horizontal_alignment!=="center"&&(b.indent=u.indent),f.alignment={a$:b}}return f}),i=u=>{if(u.color)return{indexed:u.color};if(u.rgba)return{rgb:u.rgba};if(typeof u.theme<"u")return{theme:u.theme,tint:u.tint}},n=e.borders.map(u=>{let f={},b={},x={},v={},w={};if(u.top.style){f.a$={style:u.top.style};let m=i(u.top);m&&(f.color={a$:m})}if(u.left.style){b.a$={style:u.left.style};let m=i(u.left);m&&(b.color={a$:m})}if(u.bottom.style){v.a$={style:u.bottom.style};let m=i(u.bottom);m&&(v.color={a$:m})}if(u.right.style){x.a$={style:u.right.style};let m=i(u.right);m&&(x.color={a$:m})}if(u.diagonal.style){w.a$={style:u.diagonal.style};let m=i(u.diagonal);m&&(w.color={a$:m})}return{left:b,right:x,top:f,bottom:v,diagonal:w}}),o=e.fills.map(u=>({patternFill:{a$:{patternType:u.pattern_gray!==void 0?`gray${u.pattern_gray}`:u.pattern_type},bgColor:u.bg_color?{a$:t(u.bg_color)}:void 0,fgColor:u.fg_color?{a$:t(u.fg_color)}:void 0}})),a=u=>{if(!(typeof u>"u"))return{a$:{val:u}}},l=e.fonts.map(u=>({b:u.bold?"":void 0,i:u.italic?"":void 0,u:u.underline?"":void 0,strike:u.strike?"":void 0,sz:a(u.size),family:a(u.family),name:a(u.name),scheme:a(u.scheme),color:u.color_argb?{a$:{rgb:u.color_argb}}:typeof u.color_theme<"u"?{a$:{theme:u.color_theme,tint:u.color_tint}}:void 0})),c=(u,f)=>{if(f.length)return{a$:{count:f.length},[u]:f}},d=e.dxf_styles.map(u=>{let f={};return(u.text||u.bold||u.italic||u.underline)&&(f.font={b:u.bold?{}:void 0,i:u.italic?{}:void 0,u:u.underline?{}:void 0,strike:u.strike?{}:void 0,color:vr(u.text)}),u.fill&&(f.fill={patternFill:{bgColor:vr(u.fill)}}),f}),h={styleSheet:{a$:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"x14ac x16r2 xr","xmlns:x14ac":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac","xmlns:x16r2":"http://schemas.microsoft.com/office/spreadsheetml/2015/02/main","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision"},numFmts:e.number_formats.length?{a$:{count:e.number_formats.length},numFmt:e.number_formats.map(u=>({a$:{numFmtId:u.id,formatCode:u.format}}))}:void 0,fonts:c("font",l),fills:c("fill",o),borders:c("border",n),cellXfs:c("xf",r),dxfs:c("dxf",d)}},p=Re+this.xmlbuilder1.build(h);this.zip?.Set("xl/styles.xml",p)}WriteSharedStrings(e){if(!this.zip)throw new Error("missing zip");let t={sst:{a$:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main",count:e.strings.length,uniqueCount:e.strings.length},si:[...e.strings.map(i=>({t:i}))]}},r=Re+this.xmlbuilder1.build(t);this.zip.Set("xl/sharedStrings.xml",r)}SheetStyle(e,t){if(!e.sheet_style)return 0;let r=t.StyleOptionsFromProperties(e.sheet_style);return t.EnsureStyle(r)}RowStyle(e,t,r){let i=e.styles||e.cell_style_refs||[],n=[e.sheet_style];if(e.row_style){let a=e.row_style[r];typeof a=="number"&&(a=i[a]),a&&n.push(a)}let o=t.StyleOptionsFromProperties(se.Composite(n));return t.EnsureStyle(o)}ColumnStyle(e,t,r){let i=e.styles||e.cell_style_refs||[],n=[e.sheet_style];if(e.column_style){let a=e.column_style[r];typeof a=="number"&&(a=i[a]),a&&n.push(a)}let o=t.StyleOptionsFromProperties(se.Composite(n));return t.EnsureStyle(o)}StyleFromCell(e,t,r,i,n={}){let o=e.styles||e.cell_style_refs||[],a=[e.sheet_style];if(e.row_style){let c=e.row_style[r];typeof c=="number"&&(c=o[c]),c&&a.push(c)}if(e.column_style){let c=e.column_style[i];typeof c=="number"&&(c=o[c]),c&&a.push(c)}a.push(n);let l=t.StyleOptionsFromProperties(se.Composite(a));return t.EnsureStyle(l)}NormalizeAddress(e,t){let r=e.type==="address"?[e]:[e.start,e.end];for(let i of r)i.absolute_row=!0,i.absolute_column=!0,i.sheet||(i.sheet=t.name);return e.type==="range"&&(e.end.sheet=void 0),e.label=this.parser.Render(e),e}EnsureRange(e){return e.type==="range"?e:{type:"range",start:e,end:e,label:e.label,id:e.id,position:e.position}}AnnotationLayoutToAnchor(e,t){let r=i=>{let n=t.column_width&&t.column_width[i.address.column]?t.column_width[i.address.column]:t.default_column_width||100,o=t.row_height&&t.row_height[i.address.row]?t.row_height[i.address.row]:t.default_row_height||20;return{...i.address,row_offset:Math.round(i.offset.y*o),column_offset:Math.round(i.offset.x*n)}};return{from:r(e.tl),to:r(e.br)}}AnnotationRectToAnchor(e,t){let r={from:{row:-1,column:-1},to:{row:-1,column:-1}},i={top:0,left:0,width:301,height:301,...e},n={...i,right:i.left+i.width,bottom:i.top+i.height};for(let o=0,a=0;a<1e3;a++){let l=t.column_width&&t.column_width[a]?t.column_width[a]:t.default_column_width||100;if(r.from.column<0&&n.left<=o+l&&(r.from.column=a,r.from.column_offset=n.left-o),r.to.column<0&&n.right<=o+l){r.to.column=a,r.to.column_offset=n.right-o;break}o+=l}for(let o=0,a=0;a<1e3;a++){let l=t.row_height&&t.row_height[a]?t.row_height[a]:t.default_row_height||20;if(r.from.row<0&&n.top<=o+l&&(r.from.row=a,r.from.row_offset=n.top-o),r.to.row<0&&n.bottom<=o+l){r.to.row=a,r.to.row_offset=n.bottom-o;break}o+=l}return r}ParseImages(e){let t=[];for(let r of e.annotations||[])if(r.type==="image"&&r.data?.src){let i=r.data.src,n=i.match(/^data:image\\/([^;]*?);base64,/);if(n){let o=i.substr(n[0].length),a=n[1],l={data:o,mimetype:a,encoding:"base64"};switch(a){case"svg+xml":case"webp":case"jpeg":case"jpg":case"image/png":case"png":case"gif":r.layout?t.push({anchor:this.AnnotationLayoutToAnchor(r.layout,e),options:l}):r.rect?t.push({anchor:this.AnnotationRectToAnchor(r.rect,e),options:l}):console.warn("annotation missing layout");break;default:console.info("unhandled image type",a);break}}}return t}ParseCharts(e){let t=[],r=(i,n,o)=>{if(i.type==="range")n.data.push(this.NormalizeAddress(i,e));else if(i.type==="call"){if(/group/i.test(i.name))for(let a of i.args||[])r(a,n,o?o+" (recurse)":void 0);else if(/series/i.test(i.name)){let[a,l,c,d]=i.args;c&&(c.type==="range"||c.type==="address")?(n.data.push(this.EnsureRange(this.NormalizeAddress(c,e))),a&&(n.names||(n.names=[]),a.type==="address"&&this.NormalizeAddress(a,e),a.type==="range"?(this.NormalizeAddress(a.start,e),n.names[n.data.length-1]=a.start):n.names[n.data.length-1]=a),n.labels2||(n.labels2=[]),l&&(l.type==="range"||l.type==="address")&&(n.labels2[n.data.length-1]=this.EnsureRange(this.NormalizeAddress(l,e))),d&&(d.type==="range"||d.type==="address")&&(n.labels3||(n.labels3=[]),n.labels3[n.data.length-1]=this.EnsureRange(this.NormalizeAddress(d,e)))):console.info("invalid series missing Y",{y:c,arg:i,ref:o})}}};for(let i of e.annotations||[]){let n=this.parser.Parse(i.formula||"");if(n.expression&&n.expression.type==="call"){let o="";switch(n.expression.name.toLowerCase()){case"line.chart":o="scatter";break;case"bubble.chart":o="bubble";break;case"scatter.line":o="scatter2";break;case"donut.chart":o="donut";break;case"bar.chart":o="bar";break;case"column.chart":o="column";break}if(o==="column"||o==="donut"||o==="bar"||o==="scatter"||o==="scatter2"||o==="bubble"){let a={type:o,data:[]},l=o==="scatter2"||o==="bubble"?1:2,c=n.expression.args[l];if(c&&c.type==="literal"?a.title=c:c&&c.type==="address"&&(a.title=this.NormalizeAddress(c,e)),n.expression.args[0]){let h=n.expression.args[0];if(o==="scatter2"||o==="bar"||o==="column"||o==="scatter"||o==="bubble")r(h,a,e.name);else if(h.type==="range")a.data.push(this.NormalizeAddress(h,e));else if(h.type==="call"&&/group/i.test(h.name))for(let p of h.args)p.type==="range"?a.data.push(this.NormalizeAddress(p,e)):p.type==="call"&&/series/i.test(p.name)&&p.args[2]&&p.args[2].type==="range"&&a.data.push(this.NormalizeAddress(p.args[2],e));else h.type==="call"&&/series/i.test(h.name)&&h.args[2]&&h.args[2].type==="range"&&a.data.push(this.NormalizeAddress(h.args[2],e))}o!=="scatter2"&&o!=="bubble"&&n.expression.args[1]&&n.expression.args[1].type==="range"&&(a.labels=this.NormalizeAddress(n.expression.args[1],e)),(o==="scatter"&&n.expression.args[4]&&n.expression.args[4].type==="literal"&&n.expression.args[4].value.toString().toLowerCase()==="smooth"||o==="scatter2"&&n.expression.args[2]&&n.expression.args[2].type==="literal"&&/smooth/i.test(n.expression.args[2].value.toString()))&&(a.smooth=!0);let d=i.rect;i.layout?t.push({anchor:this.AnnotationLayoutToAnchor(i.layout,e),options:a}):d?t.push({anchor:this.AnnotationRectToAnchor(d,e),options:a}):console.warn("annotation missing layout")}}}return t}FormulaText(e,t){if(e[0]!=="=")return e;let r=this.parser.Parse(e);if(r.expression){this.parser.Walk(r.expression,n=>{if(n.type==="call"){let o=n.name.toLowerCase();this.decorated_functions[o]&&(n.name=this.decorated_functions[o]+"."+n.name)}return!0});let i=t.table?.name||"";return this.parser.Render(r.expression,{missing:"",long_structured_references:!0,table_name:i})}else return console.warn("parsing function failed"),console.warn(e),e.substring(1)}Export(e){let t=0,r=[];for(let w=0;w<e.sheet_data.length;w++){let m=e.sheet_data[w],S=m.id||0;S&&(r[S]=m.name||""),S===e.active_sheet&&(t=w)}let i=new We,n=new He,o=new Pe,a=this.zip?.Get("xl/theme/theme1.xml");o.FromXML(this.xmlparser2.parse(a||"")),a=this.zip?.Get("xl/styles.xml"),n.FromXML(this.xmlparser2.parse(a||""),o),at.next_drawing_index=1,Be.next_chart_index=1;let l=[],c=[];for(let w=0;w<e.sheet_data.length;w++){let m=e.sheet_data[w],S={},G={xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"x14ac xr xr2 xr3","xmlns:x14ac":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision","xmlns:xr2":"http://schemas.microsoft.com/office/spreadsheetml/2015/revision2","xmlns:xr3":"http://schemas.microsoft.com/office/spreadsheetml/2016/revision3","xr:uid":"{D37933E2-499F-4789-8D13-194E11B743FC}"},P=m.default_row_height?m.default_row_height/20*15:15,D=m.styles||m.cell_style_refs||[],z=new Xe;z.FromJSON(m.data,D);for(let y of m.cell_styles){let N=z.EnsureCell(y);N.style||(N.style=D[y.ref])}let W={start:{row:z.rows+1,column:z.columns+1},end:{row:z.rows+1,column:z.columns+1}},V=[],U=[],K=[],Q=[],X=[],ee=[],j=this.SheetStyle(m,n);for(let y=0;y<z.data.length;y++){let N=this.RowStyle(m,n,y);if(z.data[y]&&z.data[y].length){y<W.start.row&&(W.start.row=y);let $={start:-1,end:-1},M=[];for(let R=0;R<z.data[y].length;R++){ee[R]||(ee[R]=this.ColumnStyle(m,n,R));let I=z.data[y][R];if(I){if(I.table&&I.table.area.start.row===y&&I.table.area.start.column===R){let ae=new L(I.table.area.start,I.table.area.end),lt=c.length+1,Xi=`../tables/table${lt}.xml`,Lt=[];for(let de=0;de<ae.columns;de++){let q=z.data[y][R+de],ke="";q.type!==2?(typeof q.calculated<"u"?ke=q.calculated.toString():typeof q.value<"u"&&(ke=q.value.toString()),q.type=2,q.value=ke):ke=q.value||"",ke||(ke=`Column${de+1}`);let dt=ke,Ut=!1,Qi=1;for(;!Ut;){Ut=!0;e:for(let qi of Lt)if(qi.toLowerCase()===dt.toLowerCase()){Ut=!1,dt=`${ke}${++Qi}`;break e}}q.value=dt,Lt.push(dt)}let ct;if(I.table.totals_row){ct=[];for(let de=0;de<ae.columns;de++){let q=z.data[ae.end.row][ae.start.column+de];q.type&&(q.type===1?ct[de]={type:"formula",value:(q.value||"").toString().substring(1)}:(q.type!==2&&(q.type=2,q.value=q.value?.toString()||""),ct[de]={type:"label",value:q.value}))}}let Gt={rel:me(S,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/table",Xi),index:lt,ref:ae.spreadsheet_label,name:`Table${lt}`,display_name:`Table${lt}`,totals_row_shown:0,totals_row_count:I.table?.totals_row?1:0,columns:Lt,footers:ct};if(I.table.totals_row){let de=new L(ae.start,{row:ae.end.row-1,column:ae.end.column});Gt.filterRef=de.spreadsheet_label}X.push(Gt),c.push(Gt)}if(I.merge_area&&I.merge_area.start.row===y&&I.merge_area.start.column===R&&Q.push(new L(I.merge_area.start,I.merge_area.end)),I.hyperlink){let ae=me(S,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",I.hyperlink,"External");U.push({rel:ae,target:I.hyperlink,address:{row:y,column:R}})}if(I.type===1&&/^=?sparkline\\./i.test(I.value)){K.push({address:{row:y,column:R},formula:I.value,style:I.style});continue}R<W.start.column&&(W.start.column=R),$.start<0&&($.start=R),$.end=R;let H=this.StyleFromCell(m,n,y,R,I.style);if(I.type===0&&(N&&H===N||!N&&ee[R]&&H===ee[R]))continue;let Y,pe,be;switch(I.type){case 1:switch(be=this.FormulaText(I.value,I),I.calculated_type){case 2:Y=I.calculated,pe="str";break;case 3:Y=I.calculated;break;case 4:Y=I.calculated?1:0,pe="b";break}break;case 2:Y=i.Ensure(I.value),pe="s";break;case 3:Y=I.value;break;case 4:Y=I.value?1:0,pe="b";break}I.area&&I.area.start.row===y&&I.area.start.column===R&&typeof be=="string"&&(be={t$:be,a$:{t:"array",ref:I.area.spreadsheet_label}}),M.push({a$:{r:L.CellAddressToLabel({row:y,column:R}),t:pe,s:H},f:be,v:Y})}}if(M.length||N&&N!==j){let R,I,H,Y;m.row_height&&typeof m.row_height[y]=="number"&&m.row_height[y]!==m.default_row_height&&(R=1,I=m.row_height[y]*3/4),N&&N!==j&&(H=N,Y=1),V.push({a$:{r:y+1,spans:`${$.start+1}:${$.end+1}`,customHeight:R,ht:I,s:H,customFormat:Y},c:M})}}}let oe=[];for(let y=0;y<m.columns;y++){let N={index:y};m.column_width&&m.default_column_width&&typeof m.column_width[y]=="number"&&m.column_width[y]!==m.default_column_width&&(N.width=ft(m.column_width[y]));let $=ee[y];$&&$!==j&&(N.style=$),(N.style!==void 0||N.width!==void 0)&&(oe[y]=N)}let te;if(oe.length||j){let y=[],N=ft(m.default_column_width||90);{let $=0;for(let M of oe)M&&(j&&M.index>$+1&&y.push({a$:{min:$+1,max:M.index,style:j,width:N}}),y.push({a$:{min:M.index+1,max:M.index+1,style:M.style===void 0?j:M.style,width:M.width===void 0?N:M.width,customWidth:M.width===void 0?void 0:1}}),$=M.index);j&&$<16384&&y.push({a$:{min:$+1,max:16384,style:j,width:N}}),te={col:y}}}let ue;m.data_validations?.length&&(ue={a$:{count:m.data_validations.length},dataValidation:m.data_validations.map(y=>{let N=y.target.map(M=>new L(M.start,M.end).spreadsheet_label).join(" "),$;if(y.type==="range"){let M={id:0,type:"range",label:"",position:0,start:{...y.area.start,absolute_column:!0,absolute_row:!0,id:0,label:"",position:0,type:"address"},end:{...y.area.end,absolute_column:!0,absolute_row:!0,id:0,label:"",position:0,type:"address"}};typeof y.area.start.sheet_id<"u"&&(M.start.sheet=r[y.area.start.sheet_id]),$=this.parser.Render(M)}else y.type==="list"&&($=`"${y.list.join(",")}"`);return{a$:{type:"list",allowBlank:1,showInputMessage:1,showErrorMessage:1,sqref:N},formula1:$}})});let ce;X.length&&(ce={a$:{count:X.length},tablePart:X.map(y=>({a$:{"r:id":y.rel||""}}))});for(let y of X){let N={};y.totals_row_count&&(N.totalsRowCount=1);let $={a$:{count:(y.columns||[]).length},tableColumn:(y.columns||[]).map((I,H)=>{let Y=(y.footers||[])[H];return{a$:{id:H+1,name:I||`Column${H+1}`,totalsRowLabel:Y?.type==="label"?Y.value:void 0,totalsRowFunction:Y?.type==="formula"?"custom":void 0},totalsRowFormula:Y?.type==="formula"?Y.value:void 0}})},M={table:{a$:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"xr xr3","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision","xmlns:xr3":"http://schemas.microsoft.com/office/spreadsheetml/2016/revision3",id:y.index||0,name:y.name,displayName:y.display_name,...N,ref:y.ref},autoFilter:{a$:{ref:y.filterRef||y.ref}},tableColumns:$,tableStyleInfo:{a$:{name:"TableStyleMedium2",showFirstColumn:0,showLastColumn:0,showRowStripes:1,showColumnStripes:0}}}},R=Re+this.xmlbuilder1.build(M);this.zip?.Set(`xl/tables/table${y.index}.xml`,R)}let g;if(m.conditional_formats?.length){let y=[],N=1,$={},M=Object.entries(Ft).map(R=>($[R[1]]=R[0],R[1]));M.sort((R,I)=>I.length-R.length);for(let R of m.conditional_formats){let I=0;switch(R.type!=="gradient"&&(I=n.dxf_styles.length,n.dxf_styles.push(R.style)),R.type){case"cell-match":{let H="",Y="";for(let pe of M)if(new RegExp("^"+pe+"\\\\s").test(R.expression)){H=$[pe],Y=R.expression.substring(pe.length).trim();break}H&&y.push({a$:{sqref:new L(R.area.start,R.area.end).spreadsheet_label},cfRule:{a$:{type:"cellIs",dxfId:I,operator:H,priority:N++},formula:Y}})}break;case"expression":y.push({a$:{sqref:new L(R.area.start,R.area.end).spreadsheet_label},cfRule:{a$:{type:"expression",dxfId:I,priority:N++},formula:R.expression}});break;case"duplicate-values":y.push({a$:{sqref:new L(R.area.start,R.area.end).spreadsheet_label},cfRule:{a$:{type:R.unique?"uniqueValues":"duplicateValues",dxfId:I,priority:N++}}});break;case"gradient":{let H=[],Y=[];for(let be of R.stops){be.value===0?H.push({a$:{type:"min"}}):be.value===1?H.push({a$:{type:"max"}}):H.push({a$:{type:"percentile",val:be.value*100}});let ae=vr(be.color);ae&&Y.push(ae)}let pe={a$:{sqref:new L(R.area.start,R.area.end).spreadsheet_label},cfRule:{a$:{type:"colorScale",priority:N++},colorScale:{cfvo:H,color:Y}}};y.push(pe)}break}}y.length&&(g=y.length>1?y:y[0])}let T;Q.length&&(T={a$:{count:Q.length},mergeCell:Q.map(y=>({a$:{ref:y.spreadsheet_label}}))});let E;U.length&&(E={hyperlink:U.map(y=>({a$:{"r:id":y.rel,ref:new L(y.address).spreadsheet_label,"xr:uid":"{0C6B7792-7EA0-4932-BF15-D49C453C565D}"}}))});let k;if(K.length){let y={a$:{"xmlns:xm":"http://schemas.microsoft.com/office/excel/2006/main"},"x14:sparklineGroup":K.map(N=>{let $=this.parser.Parse(N.formula),M="";if($.expression&&$.expression.type==="call"&&$.expression.args.length>0){let I=$.expression.args[0];if(I.type==="range"||I.type==="address"){let H=I.type==="range"?I.start:I;H.sheet||(typeof H.sheet_id<"u"?H.sheet=r[H.sheet_id]:H.sheet=m.name),M=this.parser.Render(I)}}let R={rgb:"FF376092"};return N.style?.text&&(ye(N.style.text)?R.rgb=N.style.text.text:we(N.style.text)&&(R.rgb=void 0,R.theme=N.style.text.theme.toString(),R.tint=typeof N.style.text.tint=="number"?N.style.text.tint.toString():void 0)),{a$:{displayEmptyCellsAs:"gap",displayHidden:"1",type:/column/i.test(N.formula)?"column":void 0},"x14:colorSeries":{a$:{...R}},"x14:sparklines":{"x14:sparkline":{"xm:f":M,"xm:sqref":new L(N.address).spreadsheet_label}}}})};k={ext:{a$:{uri:"{05C60535-1F16-4fd2-B633-F4F36F0B64E0}","xmlns:x14":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"},"x14:sparklineGroups":y}}}let A,C=this.ParseCharts(m),B=this.ParseImages(m);if(C.length||B.length){let y=new at;for(let M of C)y.AddChart(M.options,M.anchor);for(let M of B)y.AddImage(M.options,M.anchor);for(let{image:M}of y.images)M.options.data&&this.zip?.SetBinary(`xl/media/image${M.index}.${M.extension}`,M.options.data,M.options.encoding);for(let{chart:M}of y.charts){let R=M.toJSON(),I=Re+this.xmlbuilder1.build(R);this.zip?.Set(`xl/charts/chart${M.index}.xml`,I),this.WriteRels(M.relationships,`xl/charts/_rels/chart${M.index}.xml.rels`)}this.WriteRels(y.relationships,`xl/drawings/_rels/drawing${y.index}.xml.rels`);let N=Re+this.xmlbuilder1.build(y.toJSON());this.zip?.Set(`xl/drawings/drawing${y.index}.xml`,N),l.push(y),A={a$:{"r:id":me(S,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",`../drawings/drawing${y.index}.xml`)}}}let Z={};if(m.tab_color){if(we(m.tab_color))Z.sheetPr={tabColor:{a$:{theme:m.tab_color.theme,tint:m.tab_color.tint}}};else if(ye(m.tab_color)){let y=m.tab_color.text||"";/^#[0-9a-fA-F]*$/.test(y)&&(Z.sheetPr={tabColor:{a$:{rgb:"FF"+y.substring(1)}}})}}let fe={a$:{"x14ac:dyDescent":.25,defaultRowHeight:P===15?void 0:P,customHeight:P===15?void 0:1,defaultColWidth:m.default_column_width?ft(m.default_column_width):void 0}},_e={worksheet:{a$:{...G},...Z,dimension:{a$:{ref:new L(W.start,W.end).spreadsheet_label}},sheetViews:{sheetView:{a$:{workbookViewId:0}}},sheetFormatPr:fe,cols:te,sheetData:{row:V},mergeCells:T,conditionalFormatting:g,dataValidations:ue,hyperlinks:E,pageMargins:{a$:{left:.7,right:.7,top:.75,bottom:.75,header:.3,footer:.3}},drawing:A,tableParts:ce,extLst:k}},Je=Re+this.xmlbuilder1.build(_e);this.zip?.Set(`xl/worksheets/sheet${w+1}.xml`,Je),Object.keys(S).length&&this.WriteRels(S,`xl/worksheets/_rels/sheet${w+1}.xml.rels`)}this.WriteSharedStrings(i),this.WriteStyleCache(n);let d={};me(d,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles","styles.xml"),me(d,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme","theme/theme1.xml"),me(d,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings","sharedStrings.xml");let h=e.sheet_data.map((w,m)=>me(d,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet",`worksheets/sheet${m+1}.xml`));this.WriteRels(d,"xl/_rels/workbook.xml.rels");let p=e.named?.length?{definedName:(e.named||[]).map(w=>{let m;if(w.scope){let S=w.scope.toLowerCase();for(let[G,P]of e.sheet_data.entries())if(P.name?.toLowerCase()===S){m=G.toString();break}}return{a$:{name:w.name,localSheetId:m},t$:w.expression}})}:void 0,u={workbook:{a$:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"x15 xr xr6 xr10 xr2","xmlns:x15":"http://schemas.microsoft.com/office/spreadsheetml/2010/11/main","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision","xmlns:xr6":"http://schemas.microsoft.com/office/spreadsheetml/2016/revision6","xmlns:xr10":"http://schemas.microsoft.com/office/spreadsheetml/2016/revision10","xmlns:xr2":"http://schemas.microsoft.com/office/spreadsheetml/2015/revision2"},workbookPr:{a$:{defaultThemeVersion:"166925"}},bookViews:{workbookView:{a$:{activeTab:t||0}}},sheets:{sheet:e.sheet_data.map((w,m)=>({a$:{name:w.name||`Sheet${m+1}`,sheetId:m+1,"r:id":h[m],state:w.visible===!1?"hidden":void 0}}))},definedNames:p}},f=Re+this.xmlbuilder1.build(u);this.zip?.Set("xl/workbook.xml",f);let b={};for(let w of l)for(let m of w.images)switch(m.image.extension){case"gif":case"png":case"jpeg":b[m.image.extension]="image/"+m.image.extension;break;case"svg":b.svg="image/svg+xml";break}let x={Types:{a$:{xmlns:"http://schemas.openxmlformats.org/package/2006/content-types"},Default:[{a$:{Extension:"rels",ContentType:"application/vnd.openxmlformats-package.relationships+xml"}},{a$:{Extension:"xml",ContentType:"application/xml"}},...Object.keys(b).map(w=>({a$:{Extension:w,ContentType:b[w]}}))],Override:[{a$:{PartName:"/xl/workbook.xml",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"}},...e.sheet_data.map((w,m)=>({a$:{ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",PartName:`/xl/worksheets/sheet${m+1}.xml`}})),...l.reduce((w,m)=>w.concat([...m.charts.map(S=>({a$:{ContentType:"application/vnd.openxmlformats-officedocument.drawingml.chart+xml",PartName:`/xl/charts/chart${S.chart.index}.xml`}})),{a$:{ContentType:"application/vnd.openxmlformats-officedocument.drawing+xml",PartName:`/xl/drawings/drawing${m.index}.xml`}}]),[]),{a$:{PartName:"/xl/theme/theme1.xml",ContentType:"application/vnd.openxmlformats-officedocument.theme+xml"}},{a$:{PartName:"/xl/styles.xml",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"}},{a$:{PartName:"/xl/sharedStrings.xml",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"}},...c.map(w=>({a$:{ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml",PartName:`/xl/tables/table${w.index||0}.xml`}})),{a$:{PartName:"/docProps/core.xml",ContentType:"application/vnd.openxmlformats-package.core-properties+xml"}},{a$:{PartName:"/docProps/app.xml",ContentType:"application/vnd.openxmlformats-officedocument.extended-properties+xml"}}]}},v=Re+this.xmlbuilder1.build(x);this.zip?.Set("[Content_Types].xml",v)}ArrayBuffer(){if(!this.zip)throw new Error("missing zip");return this.zip.ArrayBuffer()}Blob(){if(!this.zip)throw new Error("missing zip");let e=this.zip.ArrayBuffer();return new Blob([e],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}};var Ji=De(ut());var wo=s=>typeof s=="object"&&typeof s.$t<"u",zt=class{parser=new Ve;workbook;zip;Init(e){this.zip=new Ye(e),this.workbook=new Mt(this.zip),this.workbook.Init()}SheetCount(){return this.workbook?.sheet_count||0}ParseCell(e,t,r,i,n,o){let a=t.a$?.r;if(!a){console.warn("cell missing address");return}let l=e.TranslateAddress(a);if(ze(l)){console.warn("cell has range address");return}let c,d="undefined",h,p="undefined";if(t.a$?.t&&t.a$.t==="s"){if(d="string",typeof t.v<"u"){let b=Number(t.v);!isNaN(b)&&e.shared_strings&&(c=e.shared_strings.Get(b)||"",c[0]==="="&&(c="\'"+c))}}else if(typeof t.f<"u"){d="formula";let b=(typeof t.f=="string"?t.f:t.f.t$)||"";if(b){if(c="="+b.replace(/^_xll\\./g,""),/#REF/.test(b))c=b;else{let x=this.parser.Parse(b);x.expression&&(this.parser.Walk(x.expression,v=>(v.type==="call"&&(/^_xll\\./.test(v.name)&&(v.name=v.name.substring(5)),/^_xlfn\\./.test(v.name)&&(console.info("xlfn:",v.name),v.name=v.name.substring(6)),/^_xlws\\./.test(v.name)&&(console.info("xlws:",v.name),v.name=v.name.substring(6))),!0)),c="="+this.parser.Render(x.expression,{missing:""}))}typeof t.f!="string"&&t.f.a$?.t==="shared"&&t.f.a$.si&&(r[t.f.a$.si]={row:l.row-1,column:l.col-1,formula:c,parse_result:this.parser.Parse(c)})}else if(typeof t.f!="string"&&t.f.a$?.t==="shared"&&t.f.a$.si){let x=r[t.f.a$.si];x&&(x.parse_result.expression?c="="+this.parser.Render(x.parse_result.expression,{offset:{rows:l.row-1-x.row,columns:l.col-1-x.column},missing:""}):c=x.formula)}if(typeof t.f!="string"&&t.f.a$?.t==="array"){let x=e.TranslateAddress(t.f.a$.ref||"");ze(x)&&i.push(yr(x,-1,-1))}if(typeof t.v<"u"){let x=typeof t.v=="object"?t.v?.t$:t.v,v=Number(x.toString());isNaN(v)?(p="string",h=x.toString()):(p="number",h=v)}}else if(typeof t.v<"u"){let b=Number(t.v.toString());isNaN(b)?(d="string",c=t.v.toString()):(d="number",c=b)}let u={row:l.row-1,col:l.col-1};for(let b of i)Et(b,u)&&(u.row!==b.from.row||u.col!==b.from.col)&&(p=d,h=c,c=void 0,d="undefined");let f={row:u.row,column:u.col,value:c,type:d};typeof h<"u"&&(f.calculated_type=p,f.calculated=h),t.a$?.s&&(f.style_ref=Number(t.a$.s));for(let b of o)b.address.row===l.row&&b.address.col===l.col&&(f.hyperlink=b.reference);for(let b of n)Et(b,u)&&(f.merge_area={start:{row:b.from.row,column:b.from.col},end:{row:b.to.row,column:b.to.col}});for(let b of i)Et(b,u)&&(f.area={start:{row:b.from.row,column:b.from.col},end:{row:b.to.row,column:b.to.col}});return f}AddressToArea(e){return je(e)?{start:{row:e.row-1,column:e.col-1},end:{row:e.row-1,column:e.col-1}}:{start:{row:e.from.row-1,column:e.from.col-1},end:{row:e.to.row-1,column:e.to.col-1}}}ParseConditionalFormat(e,t){let r=this.AddressToArea(e),i=Ft;switch(t.a$.type){case"duplicateValues":case"uniqueValues":{let n={};if(t.a$.dxfId){let o=Number(t.a$.dxfId);isNaN(o)||(n=this.workbook?.style_cache.dxf_styles[o]||{})}return{type:"duplicate-values",area:r,style:n,unique:t.a$.type==="uniqueValues",priority:t.a$.priority?Number(t.a$.priority):void 0}}case"cellIs":if(t.a$.operator&&(t.formula||typeof t.formula=="number")){let n={};if(t.a$.dxfId){let a=Number(t.a$.dxfId);isNaN(a)||(n=this.workbook?.style_cache.dxf_styles[a]||{})}if(t.a$.operator==="between"&&Array.isArray(t.formula)&&t.formula.length===2&&typeof t.formula[0]=="number"&&typeof t.formula[1]=="number")return{type:"cell-match",expression:"",between:t.formula,area:r,style:n,priority:t.a$.priority?Number(t.a$.priority):void 0};let o=i[t.a$.operator||""];if(!o)console.info("unhandled cellIs operator:",t.a$.operator,{rule:t});else return{type:"cell-match",expression:o+" "+t.formula,area:r,style:n,priority:t.a$.priority?Number(t.a$.priority):void 0}}else console.info("miss?",t);break;case"containsErrors":case"notContainsErrors":case"expression":if(t.formula){typeof t.formula!="string"&&(wo(t.formula)?t.formula=t.formula.t$:(console.info("unexpected conditional expression",{rule:t}),t.formula=""));let n={};if(t.a$.dxfId){let o=Number(t.a$.dxfId);isNaN(o)||(n=this.workbook?.style_cache.dxf_styles[o]||{})}if(t.a$.type==="expression"&&(r.start.row!==r.end.row||r.start.column!==r.end.column)){this.parser.Save(),this.parser.SetLocaleSettings(".");let o=[],a=new L(r.start,r.end),l=this.parser.Parse(t.formula);if(l.expression)for(let c of a){let d=this.parser.Render(l.expression,{missing:"",offset:{rows:c.row-r.start.row,columns:c.column-r.start.column}});o.push({type:"expression",expression:d,style:n,area:{start:c,end:c},priority:t.a$.priority?Number(t.a$.priority):void 0})}return this.parser.Restore(),o}return{type:"expression",expression:t.formula,area:r,style:n,priority:t.a$.priority?Number(t.a$.priority):void 0}}break;case"colorScale":if(t.colorScale&&Array.isArray(t.colorScale.cfvo)&&Array.isArray(t.colorScale.color)){let n=[];for(let[o,a]of t.colorScale.cfvo.entries()){let l=0,c={},d=t.colorScale.color[o];switch(d.a$.rgb?c.text="#"+d.a$.rgb.substring(2):d.a$.theme&&(c.theme=Number(d.a$.theme)||0,d.a$.tint&&(c.tint=Math.round(Number(d.a$.tint)*1e3)/1e3)),a.a$.type){case"min":l=0;break;case"max":l=1;break;case"percentile":l=(Number(a.a$.val)||0)/100;break}n.push({color:c,value:l})}return{type:"gradient",stops:n,color_space:"RGB",area:r,priority:t.a$.priority?Number(t.a$.priority):void 0}}else console.info("unexpected colorScale",{rule:t});break;default:console.info("unhandled cf type:",{rule:t})}}GetSheet(e=0){if(!this.workbook)throw new Error("missing workbook");let t=this.workbook.sheets[e],r=[],i={},n=[],o=[],a=[],l=[],c=[],d=[],h=[],p=F.FindAll.bind(F,t.sheet_data),u=p("worksheet/sheetPr/tabColor"),f;if(u?.[0]){let g=u[0];if(g.a$?.theme&&(f={theme:Number(g.a$.theme)},g.a$?.tint&&(f.tint=Number(g.a$.tint))),g.a$?.rgb){let T=g.a$.rgb;f={text:"#"+(T.length>6?T.substr(T.length-6):T)}}}let b=p("worksheet/conditionalFormatting");for(let g of b)if(g.a$?.sqref){let T=g.a$.sqref.split(/\\s+/);for(let E of T){let k=t.TranslateAddress(E);if(g.cfRule){let A=Array.isArray(g.cfRule)?g.cfRule:[g.cfRule];for(let C of A){let B=this.ParseConditionalFormat(k,C);B&&(Array.isArray(B)?a.push(...B):a.push(B))}}}}let x=p("worksheet/mergeCells/mergeCell");for(let g of x)if(g.a$?.ref){let T=t.TranslateAddress(g.a$.ref);ze(T)&&o.push(yr(T,-1,-1))}let v=p("worksheet/dataValidations/dataValidation");for(let g of v){let T=g.a$?.type,E=g.a$?.sqref,k=g.formula1;if(E&&k&&typeof k=="string"&&T==="list"){let A,C=this.parser.Parse(E),B=[];C.expression&&(C.expression.type==="address"?B.push({start:C.expression,end:C.expression}):C.expression.type==="range"&&B.push(C.expression)),C=this.parser.Parse(k),C.expression&&(C.expression.type==="range"?A={type:"range",area:C.expression,target:B}:C.expression.type==="literal"&&(A={type:"list",target:B,list:C.expression.value.toString().split(/,/).map(Z=>{let fe=Number(Z);return isNaN(fe)?Z.toLowerCase()==="true"?!0:Z.toLowerCase()==="false"?!1:Z:fe})})),B.length&&A&&d.push(A)}}let w=p("worksheet/hyperlinks/hyperlink");for(let g of w){let T=t.TranslateAddress(g.a$?.ref||"");ze(T)&&(T=T.from);let E="",k="";if(g.a$&&g.a$["r:id"]){E="remote link";let A=t.rels[g.a$["r:id"]];A&&(k=A.target||"")}else k=typeof g.__location=="string"?g.__location:"",E=typeof g.__display=="string"?g.__display:"";l.push({address:T,reference:k,text:E})}let m=21,S=100,G=t.sheet_data.worksheet?.sheetFormatPr;if(G){if(G.a$?.defaultColWidth){let g=Number(G.a$.defaultColWidth);isNaN(g)||(S=Vt(g))}if(G.a$?.defaultRowHeight){let g=Number(G.a$.defaultRowHeight);isNaN(g)||(m=Math.round(g*4/3))}}let P=[],D=[],z=p("worksheet/sheetData/row");for(let g of z){let T=g.a$?.r?Number(g.a$.r):1,E=m;if(g.a$?.ht){let A=Number(g.a$.ht);isNaN(A)||(E=Math.round(A*4/3))}if(g.a$?.outlineLevel){let A=Number(g.a$.outlineLevel);isNaN(A)||(D[T-1]=A)}if(g.a$?.s){let A=Number(g.a$?.s);isNaN(A)||(c[T-1]=A)}E!==m&&(P[T-1]=E);let k=g.c?Array.isArray(g.c)?g.c:[g.c]:[];for(let A of k){let C=this.ParseCell(t,A,i,n,o,l);C&&r.push(C)}}let W=[],V=-1,U=[],K=p("worksheet/cols/col");for(let g of K){let T=Number(g.a$?.min),E=Number(g.a$?.max);if(g.a$?.style){let k=Number(g.a$.style);if(!isNaN(T)&&!isNaN(E)&&!isNaN(k))if(t.extent&&E>=t.extent.to.col||E-T>100)V=k;else for(let A=T;A<=E;A++)W[A]=k}if(g.a$?.customWidth){let k=Number(g.a$.width);if(!isNaN(T)&&!isNaN(E)&&!isNaN(k)&&E!==16384){k=Vt(k);for(let A=T;A<=E;A++)U[A-1]=k}}}let Q=p("worksheet/tableParts/tablePart");for(let g of Q){let T=g.a$?g.a$["r:id"]:void 0;if(T){let E="",k=t.rels[T];if(k){E=k.target||"";let A=this.workbook.ReadTable(E);if(A){let C=t.TranslateAddress(A.ref),B=je(C)?{start:{row:C.row-1,column:C.col-1},end:{row:C.row-1,column:C.col-1}}:{start:{row:C.from.row-1,column:C.from.col-1},end:{row:C.to.row-1,column:C.to.col-1}};for(let Z of r)if(Z.row===B.start.row&&Z.column===B.start.column){Z.table={area:B,name:A.name,totals_row:!!A.totals_row_count};break}}}}}let X=p("worksheet/drawing"),ee=[],j=[],oe=[];for(let g of X){let T=g.a$?g.a$["r:id"]:void 0;if(T){let E="",k=t.rels[T];if(k&&(E=k.target||""),E){let A=this.workbook.ReadDrawing(E);if(A&&A.length)for(let C of A)switch(C.type){case"chart":ee.push(C);break;case"image":j.push(C);break;case"textbox":oe.push(C);break}}}}let te=g=>{let T={address:{row:g.row,column:g.column},offset:{x:0,y:0}};if(g.row_offset){let E=P[g.row];E===void 0&&(E=m),T.offset.y=g.row_offset/9525/E}if(g.column_offset){let E=U[g.column];E===void 0&&(E=S),T.offset.x=g.column_offset/9525/E}return T};for(let g of oe){let T={tl:te(g.anchor.from),br:te(g.anchor.to)};h.push({layout:T,type:"textbox",data:{style:g.style,paragraphs:g.paragraphs}})}for(let g of j)if(g&&g.image){let T={tl:te(g.anchor.from),br:te(g.anchor.to)},E="image",k=Ji.default.fromByteArray(g.image),A="";if(g.filename&&(/jpe*g$/i.test(g.filename)?A="jpeg":/png$/i.test(g.filename)?A="png":/gif$/i.test(g.filename)&&(A="gif")),A&&k){let C="data:image/"+A+";base64,"+k;h.push({layout:T,type:E,data:{src:C}})}}for(let g of ee)if(g&&g.chart){let T={tl:te(g.anchor.from),br:te(g.anchor.to)},E,k=[],A="",C=g.chart?.series;switch(g.chart.type){case 7:E="treb-chart",A="Bubble.Chart",C&&C.length&&(k[0]=`Group(${C.map(Z=>`Series(${[Z.title||"",Z.values||"",Z.categories||"",Z.bubble_size||""].join(", ")})`).join(", ")})`),k[1]=g.chart.title;break;case 8:E="treb-chart",A="Box.Plot",C?.length&&(k[0]=`Group(${C.map(Z=>`Series(${Z.title||""},,${Z.values||""})`).join(", ")})`,console.info("S?",{series:C},k[0])),k[1]=g.chart.title;break;case 4:E="treb-chart",A="Scatter.Line",C&&C.length&&(k[0]=`Group(${C.map(Z=>`Series(${Z.title||""},${Z.categories||""},${Z.values||""})`).join(", ")})`),k[1]=g.chart.title;break;case 5:case 6:A=g.chart.type===5?"Donut.Chart":"Pie.Chart",E="treb-chart",C&&C[0]&&(k[0]=C[0].values,k[1]=C[0]?.categories||""),k[2]=g.chart.title;break;case 2:case 1:case 3:switch(k[2]=g.chart.title,E="treb-chart",g.chart.type){case 2:A="Bar.Chart";break;case 1:A="Column.Chart";break;default:A="Line.Chart"}C&&(C.length>1?k[0]=`Group(${C.map(Z=>`Series(${Z.title||""},,${Z.values||""})`).join(", ")})`:C.length===1&&(C[0].title?k[0]=`Series(${C[0].title||""},,${C[0].values||""})`:k[0]=C[0].values),k[1]=C[0]?.categories||"");break}let B=`=${A}(${k.join(", ")})`;E&&B&&h.push({layout:T,type:E,formula:B})}let ue=p("worksheet/extLst/ext");for(let g of ue){let T="";for(let k of Object.keys(g?.a$||{})){let A=k.match(/^xmlns:(.*)$/);if(A){T=A[1];break}}let E=F.FindAll(g,`${T}:sparklineGroups/${T}:sparklineGroup`);for(let k of E){let A="Sparkline.line",C="",B="";k.a$?.type==="column"&&(A="Sparkline.column");let Z=F.FindAll(k,`${T}:sparklines/${T}:sparkline`);for(let fe of Z)for(let _e of Object.keys(fe))/:f$/.test(_e)?B=fe[_e]:/:sqref$/.test(_e)&&(C=fe[_e]);if(B&&C){let fe=`=${A}(${B})`,_e=t.TranslateAddress(C);if(je(_e)){let Je={row:_e.row-1,column:_e.col-1,value:fe,type:"formula"},y=!1;for(let N of r)if(N.row===Je.row&&N.column===Je.column){y=!0,N.type="formula",N.value=fe;break}y||r.push(Je)}}}}let ce={name:t.options.name,cells:r,default_column_width:S,column_widths:U,row_heights:P,tab_color:f,row_styles:c,annotations:h,conditional_formats:a,data_validations:d,styles:this.workbook?.style_cache?.CellXfToStyles()||[]};return D.length&&(ce.outline=D),(t.visible_state===1||t.visible_state===2)&&(ce.hidden=!0),V>=0&&(ce.sheet_style=V),W.length&&(ce.column_styles=W),ce}};var Dt=self,Cr=new Pt,xo=s=>{s.sheet&&(Cr.Init(s.decorated||[]),Cr.Export(s.sheet),Dt.postMessage({status:"complete",blob:Cr.Blob()}))},vo=s=>{let e=new zt;try{e.Init(s.data);let t=e.workbook?.GetNamedRanges(),r=e.SheetCount(),i={sheets:[],named:t,active_tab:e.workbook?.active_tab};for(let n=0;n<r;n++){let o=e.GetSheet(n);o&&i.sheets.push(o)}for(let n of t||[])if(typeof n.local_scope=="number"){let o=i.sheets[n.local_scope];o&&(n.scope=o.name)}Dt.postMessage({status:"complete",results:i})}catch(t){console.warn("error importing xlsx file"),console.info(t),Dt.postMessage({status:"error",data:t})}};Dt.addEventListener("message",s=>{s.data&&s.data.command==="export"?xo(s.data):s.data&&s.data.command==="import"&&vo(s.data)});\n';var a=async()=>new Worker(URL.createObjectURL(new Blob([e],{type:"application/javascript"})));export{a as CreateWorker};
|
|
1
|
+
/*! TREB v31.7.2. Copyright 2018-2024 trebco, llc. All rights reserved. LGPL: https://treb.app/license */
|
|
2
|
+
var e='var Ki=Object.create;var Ar=Object.defineProperty;var es=Object.getOwnPropertyDescriptor;var ts=Object.getOwnPropertyNames;var rs=Object.getPrototypeOf,is=Object.prototype.hasOwnProperty;var re=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports);var ss=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ts(e))!is.call(i,s)&&s!==t&&Ar(i,s,{get:()=>e[s],enumerable:!(r=es(e,s))||r.enumerable});return i};var De=(i,e,t)=>(t=i!=null?Ki(rs(i)):{},ss(e||!i||!i.__esModule?Ar(t,"default",{value:i,enumerable:!0}):t,i));var ut=re(ht=>{"use strict";ht.byteLength=os;ht.toByteArray=ls;ht.fromByteArray=hs;var ge=[],he=[],ns=typeof Uint8Array<"u"?Uint8Array:Array,$t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Le=0,Sr=$t.length;Le<Sr;++Le)ge[Le]=$t[Le],he[$t.charCodeAt(Le)]=Le;var Le,Sr;he[45]=62;he[95]=63;function Tr(i){var e=i.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=i.indexOf("=");t===-1&&(t=e);var r=t===e?0:4-t%4;return[t,r]}function os(i){var e=Tr(i),t=e[0],r=e[1];return(t+r)*3/4-r}function as(i,e,t){return(e+t)*3/4-t}function ls(i){var e,t=Tr(i),r=t[0],s=t[1],n=new ns(as(i,r,s)),o=0,a=s>0?r-4:r,l;for(l=0;l<a;l+=4)e=he[i.charCodeAt(l)]<<18|he[i.charCodeAt(l+1)]<<12|he[i.charCodeAt(l+2)]<<6|he[i.charCodeAt(l+3)],n[o++]=e>>16&255,n[o++]=e>>8&255,n[o++]=e&255;return s===2&&(e=he[i.charCodeAt(l)]<<2|he[i.charCodeAt(l+1)]>>4,n[o++]=e&255),s===1&&(e=he[i.charCodeAt(l)]<<10|he[i.charCodeAt(l+1)]<<4|he[i.charCodeAt(l+2)]>>2,n[o++]=e>>8&255,n[o++]=e&255),n}function cs(i){return ge[i>>18&63]+ge[i>>12&63]+ge[i>>6&63]+ge[i&63]}function ds(i,e,t){for(var r,s=[],n=e;n<t;n+=3)r=(i[n]<<16&16711680)+(i[n+1]<<8&65280)+(i[n+2]&255),s.push(cs(r));return s.join("")}function hs(i){for(var e,t=i.length,r=t%3,s=[],n=16383,o=0,a=t-r;o<a;o+=n)s.push(ds(i,o,o+n>a?a:o+n));return r===1?(e=i[t-1],s.push(ge[e>>2]+ge[e<<4&63]+"==")):r===2&&(e=(i[t-2]<<8)+i[t-1],s.push(ge[e>>10]+ge[e>>4&63]+ge[e<<2&63]+"=")),s.join("")}});var St=re(Te=>{"use strict";var Kr=":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD",rn=Kr+"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040",ei="["+Kr+"]["+rn+"]*",sn=new RegExp("^"+ei+"$"),nn=function(i,e){let t=[],r=e.exec(i);for(;r;){let s=[];s.startIndex=e.lastIndex-r[0].length;let n=r.length;for(let o=0;o<n;o++)s.push(r[o]);t.push(s),r=e.exec(i)}return t},on=function(i){let e=sn.exec(i);return!(e===null||typeof e>"u")};Te.isExist=function(i){return typeof i<"u"};Te.isEmptyObject=function(i){return Object.keys(i).length===0};Te.merge=function(i,e,t){if(e){let r=Object.keys(e),s=r.length;for(let n=0;n<s;n++)t==="strict"?i[r[n]]=[e[r[n]]]:i[r[n]]=e[r[n]]}};Te.getValue=function(i){return Te.isExist(i)?i:""};Te.isName=on;Te.getAllMatches=nn;Te.nameRegexp=ei});var cr=re(ni=>{"use strict";var lr=St(),an={allowBooleanAttributes:!1,unpairedTags:[]};ni.validate=function(i,e){e=Object.assign({},an,e);let t=[],r=!1,s=!1;i[0]==="\\uFEFF"&&(i=i.substr(1));for(let n=0;n<i.length;n++)if(i[n]==="<"&&i[n+1]==="?"){if(n+=2,n=ri(i,n),n.err)return n}else if(i[n]==="<"){let o=n;if(n++,i[n]==="!"){n=ii(i,n);continue}else{let a=!1;i[n]==="/"&&(a=!0,n++);let l="";for(;n<i.length&&i[n]!==">"&&i[n]!==" "&&i[n]!==" "&&i[n]!==`\n`&&i[n]!=="\\r";n++)l+=i[n];if(l=l.trim(),l[l.length-1]==="/"&&(l=l.substring(0,l.length-1),n--),!mn(l)){let h;return l.trim().length===0?h="Invalid space after \'<\'.":h="Tag \'"+l+"\' is an invalid name.",J("InvalidTag",h,ne(i,n))}let c=dn(i,n);if(c===!1)return J("InvalidAttr","Attributes for \'"+l+"\' have open quote.",ne(i,n));let d=c.value;if(n=c.index,d[d.length-1]==="/"){let h=n-d.length;d=d.substring(0,d.length-1);let p=si(d,e);if(p===!0)r=!0;else return J(p.err.code,p.err.msg,ne(i,h+p.err.line))}else if(a)if(c.tagClosed){if(d.trim().length>0)return J("InvalidTag","Closing tag \'"+l+"\' can\'t have attributes or invalid starting.",ne(i,o));if(t.length===0)return J("InvalidTag","Closing tag \'"+l+"\' has not been opened.",ne(i,o));{let h=t.pop();if(l!==h.tagName){let p=ne(i,h.tagStartPos);return J("InvalidTag","Expected closing tag \'"+h.tagName+"\' (opened in line "+p.line+", col "+p.col+") instead of closing tag \'"+l+"\'.",ne(i,o))}t.length==0&&(s=!0)}}else return J("InvalidTag","Closing tag \'"+l+"\' doesn\'t have proper closing.",ne(i,n));else{let h=si(d,e);if(h!==!0)return J(h.err.code,h.err.msg,ne(i,n-d.length+h.err.line));if(s===!0)return J("InvalidXml","Multiple possible root nodes found.",ne(i,n));e.unpairedTags.indexOf(l)!==-1||t.push({tagName:l,tagStartPos:o}),r=!0}for(n++;n<i.length;n++)if(i[n]==="<")if(i[n+1]==="!"){n++,n=ii(i,n);continue}else if(i[n+1]==="?"){if(n=ri(i,++n),n.err)return n}else break;else if(i[n]==="&"){let h=fn(i,n);if(h==-1)return J("InvalidChar","char \'&\' is not expected.",ne(i,n));n=h}else if(s===!0&&!ti(i[n]))return J("InvalidXml","Extra text at the end",ne(i,n));i[n]==="<"&&n--}}else{if(ti(i[n]))continue;return J("InvalidChar","char \'"+i[n]+"\' is not expected.",ne(i,n))}if(r){if(t.length==1)return J("InvalidTag","Unclosed tag \'"+t[0].tagName+"\'.",ne(i,t[0].tagStartPos));if(t.length>0)return J("InvalidXml","Invalid \'"+JSON.stringify(t.map(n=>n.tagName),null,4).replace(/\\r?\\n/g,"")+"\' found.",{line:1,col:1})}else return J("InvalidXml","Start tag expected.",1);return!0};function ti(i){return i===" "||i===" "||i===`\n`||i==="\\r"}function ri(i,e){let t=e;for(;e<i.length;e++)if(i[e]=="?"||i[e]==" "){let r=i.substr(t,e-t);if(e>5&&r==="xml")return J("InvalidXml","XML declaration allowed only at the start of the document.",ne(i,e));if(i[e]=="?"&&i[e+1]==">"){e++;break}else continue}return e}function ii(i,e){if(i.length>e+5&&i[e+1]==="-"&&i[e+2]==="-"){for(e+=3;e<i.length;e++)if(i[e]==="-"&&i[e+1]==="-"&&i[e+2]===">"){e+=2;break}}else if(i.length>e+8&&i[e+1]==="D"&&i[e+2]==="O"&&i[e+3]==="C"&&i[e+4]==="T"&&i[e+5]==="Y"&&i[e+6]==="P"&&i[e+7]==="E"){let t=1;for(e+=8;e<i.length;e++)if(i[e]==="<")t++;else if(i[e]===">"&&(t--,t===0))break}else if(i.length>e+9&&i[e+1]==="["&&i[e+2]==="C"&&i[e+3]==="D"&&i[e+4]==="A"&&i[e+5]==="T"&&i[e+6]==="A"&&i[e+7]==="["){for(e+=8;e<i.length;e++)if(i[e]==="]"&&i[e+1]==="]"&&i[e+2]===">"){e+=2;break}}return e}var ln=\'"\',cn="\'";function dn(i,e){let t="",r="",s=!1;for(;e<i.length;e++){if(i[e]===ln||i[e]===cn)r===""?r=i[e]:r!==i[e]||(r="");else if(i[e]===">"&&r===""){s=!0;break}t+=i[e]}return r!==""?!1:{value:t,index:e,tagClosed:s}}var hn=new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\'"])(([\\\\s\\\\S])*?)\\\\5)?`,"g");function si(i,e){let t=lr.getAllMatches(i,hn),r={};for(let s=0;s<t.length;s++){if(t[s][1].length===0)return J("InvalidAttr","Attribute \'"+t[s][2]+"\' has no space in starting.",st(t[s]));if(t[s][3]!==void 0&&t[s][4]===void 0)return J("InvalidAttr","Attribute \'"+t[s][2]+"\' is without value.",st(t[s]));if(t[s][3]===void 0&&!e.allowBooleanAttributes)return J("InvalidAttr","boolean attribute \'"+t[s][2]+"\' is not allowed.",st(t[s]));let n=t[s][2];if(!pn(n))return J("InvalidAttr","Attribute \'"+n+"\' is an invalid name.",st(t[s]));if(!r.hasOwnProperty(n))r[n]=1;else return J("InvalidAttr","Attribute \'"+n+"\' is repeated.",st(t[s]))}return!0}function un(i,e){let t=/\\d/;for(i[e]==="x"&&(e++,t=/[\\da-fA-F]/);e<i.length;e++){if(i[e]===";")return e;if(!i[e].match(t))break}return-1}function fn(i,e){if(e++,i[e]===";")return-1;if(i[e]==="#")return e++,un(i,e);let t=0;for(;e<i.length;e++,t++)if(!(i[e].match(/\\w/)&&t<20)){if(i[e]===";")break;return-1}return e}function J(i,e,t){return{err:{code:i,msg:e,line:t.line||t,col:t.col}}}function pn(i){return lr.isName(i)}function mn(i){return lr.isName(i)}function ne(i,e){let t=i.substring(0,e).split(/\\r?\\n/);return{line:t.length,col:t[t.length-1].length+1}}function st(i){return i.startIndex+i[1].length}});var ai=re(dr=>{var oi={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(i,e){return e},attributeValueProcessor:function(i,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(i,e,t){return i}},_n=function(i){return Object.assign({},oi,i)};dr.buildOptions=_n;dr.defaultOptions=oi});var ci=re((ph,li)=>{"use strict";var hr=class{constructor(e){this.tagname=e,this.child=[],this[":@"]={}}add(e,t){e==="__proto__"&&(e="#__proto__"),this.child.push({[e]:t})}addChild(e){e.tagname==="__proto__"&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,":@":e[":@"]}):this.child.push({[e.tagname]:e.child})}};li.exports=hr});var hi=re((mh,di)=>{var bn=St();function gn(i,e){let t={};if(i[e+3]==="O"&&i[e+4]==="C"&&i[e+5]==="T"&&i[e+6]==="Y"&&i[e+7]==="P"&&i[e+8]==="E"){e=e+9;let r=1,s=!1,n=!1,o="";for(;e<i.length;e++)if(i[e]==="<"&&!n){if(s&&vn(i,e))e+=7,[entityName,val,e]=yn(i,e+1),val.indexOf("&")===-1&&(t[Sn(entityName)]={regx:RegExp(`&${entityName};`,"g"),val});else if(s&&xn(i,e))e+=8;else if(s&&Cn(i,e))e+=8;else if(s&&An(i,e))e+=9;else if(wn)n=!0;else throw new Error("Invalid DOCTYPE");r++,o=""}else if(i[e]===">"){if(n?i[e-1]==="-"&&i[e-2]==="-"&&(n=!1,r--):r--,r===0)break}else i[e]==="["?s=!0:o+=i[e];if(r!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:t,i:e}}function yn(i,e){let t="";for(;e<i.length&&i[e]!=="\'"&&i[e]!==\'"\';e++)t+=i[e];if(t=t.trim(),t.indexOf(" ")!==-1)throw new Error("External entites are not supported");let r=i[e++],s="";for(;e<i.length&&i[e]!==r;e++)s+=i[e];return[t,s,e]}function wn(i,e){return i[e+1]==="!"&&i[e+2]==="-"&&i[e+3]==="-"}function vn(i,e){return i[e+1]==="!"&&i[e+2]==="E"&&i[e+3]==="N"&&i[e+4]==="T"&&i[e+5]==="I"&&i[e+6]==="T"&&i[e+7]==="Y"}function xn(i,e){return i[e+1]==="!"&&i[e+2]==="E"&&i[e+3]==="L"&&i[e+4]==="E"&&i[e+5]==="M"&&i[e+6]==="E"&&i[e+7]==="N"&&i[e+8]==="T"}function Cn(i,e){return i[e+1]==="!"&&i[e+2]==="A"&&i[e+3]==="T"&&i[e+4]==="T"&&i[e+5]==="L"&&i[e+6]==="I"&&i[e+7]==="S"&&i[e+8]==="T"}function An(i,e){return i[e+1]==="!"&&i[e+2]==="N"&&i[e+3]==="O"&&i[e+4]==="T"&&i[e+5]==="A"&&i[e+6]==="T"&&i[e+7]==="I"&&i[e+8]==="O"&&i[e+9]==="N"}function Sn(i){if(bn.isName(i))return i;throw new Error(`Invalid entity name ${i}`)}di.exports=gn});var fi=re((_h,ui)=>{var Tn=/^[-+]?0x[a-fA-F0-9]+$/,In=/^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt);!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);var Rn={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function kn(i,e={}){if(e=Object.assign({},Rn,e),!i||typeof i!="string")return i;let t=i.trim();if(e.skipLike!==void 0&&e.skipLike.test(t))return i;if(e.hex&&Tn.test(t))return Number.parseInt(t,16);{let r=In.exec(t);if(r){let s=r[1],n=r[2],o=En(r[3]),a=r[4]||r[6];if(!e.leadingZeros&&n.length>0&&s&&t[2]!==".")return i;if(!e.leadingZeros&&n.length>0&&!s&&t[1]!==".")return i;{let l=Number(t),c=""+l;return c.search(/[eE]/)!==-1||a?e.eNotation?l:i:t.indexOf(".")!==-1?c==="0"&&o===""||c===o||s&&c==="-"+o?l:i:n?o===c||s+o===c?l:i:t===c||t===s+c?l:i}}else return i}}function En(i){return i&&i.indexOf(".")!==-1&&(i=i.replace(/0+$/,""),i==="."?i="0":i[0]==="."?i="0"+i:i[i.length-1]==="."&&(i=i.substr(0,i.length-1))),i}ui.exports=kn});var ur=re((bh,pi)=>{function Nn(i){return typeof i=="function"?i:Array.isArray(i)?e=>{for(let t of i)if(typeof t=="string"&&e===t||t instanceof RegExp&&t.test(e))return!0}:()=>!1}pi.exports=Nn});var bi=re((gh,_i)=>{"use strict";var mi=St(),nt=ci(),Mn=hi(),Fn=fi(),Pn=ur(),fr=class{constructor(e){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"\'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:\'"\'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"\\xA2"},pound:{regex:/&(pound|#163);/g,val:"\\xA3"},yen:{regex:/&(yen|#165);/g,val:"\\xA5"},euro:{regex:/&(euro|#8364);/g,val:"\\u20AC"},copyright:{regex:/&(copy|#169);/g,val:"\\xA9"},reg:{regex:/&(reg|#174);/g,val:"\\xAE"},inr:{regex:/&(inr|#8377);/g,val:"\\u20B9"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,r)=>String.fromCharCode(Number.parseInt(r,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,r)=>String.fromCharCode(Number.parseInt(r,16))}},this.addExternalEntities=zn,this.parseXml=$n,this.parseTextData=Dn,this.resolveNameSpace=Ln,this.buildAttributesMap=Un,this.isItStopNode=Wn,this.replaceEntitiesValue=Zn,this.readStopNodeData=Bn,this.saveTextToParentTag=On,this.addChild=Vn,this.ignoreAttributesFn=Pn(this.options.ignoreAttributes)}};function zn(i){let e=Object.keys(i);for(let t=0;t<e.length;t++){let r=e[t];this.lastEntities[r]={regex:new RegExp("&"+r+";","g"),val:i[r]}}}function Dn(i,e,t,r,s,n,o){if(i!==void 0&&(this.options.trimValues&&!r&&(i=i.trim()),i.length>0)){o||(i=this.replaceEntitiesValue(i));let a=this.options.tagValueProcessor(e,i,t,s,n);return a==null?i:typeof a!=typeof i||a!==i?a:this.options.trimValues?mr(i,this.options.parseTagValue,this.options.numberParseOptions):i.trim()===i?mr(i,this.options.parseTagValue,this.options.numberParseOptions):i}}function Ln(i){if(this.options.removeNSPrefix){let e=i.split(":"),t=i.charAt(0)==="/"?"/":"";if(e[0]==="xmlns")return"";e.length===2&&(i=t+e[1])}return i}var Gn=new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*([\'"])([\\\\s\\\\S]*?)\\\\3)?`,"gm");function Un(i,e,t){if(this.options.ignoreAttributes!==!0&&typeof i=="string"){let r=mi.getAllMatches(i,Gn),s=r.length,n={};for(let o=0;o<s;o++){let a=this.resolveNameSpace(r[o][1]);if(this.ignoreAttributesFn(a,e))continue;let l=r[o][4],c=this.options.attributeNamePrefix+a;if(a.length)if(this.options.transformAttributeName&&(c=this.options.transformAttributeName(c)),c==="__proto__"&&(c="#__proto__"),l!==void 0){this.options.trimValues&&(l=l.trim()),l=this.replaceEntitiesValue(l);let d=this.options.attributeValueProcessor(a,l,e);d==null?n[c]=l:typeof d!=typeof l||d!==l?n[c]=d:n[c]=mr(l,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(n[c]=!0)}if(!Object.keys(n).length)return;if(this.options.attributesGroupName){let o={};return o[this.options.attributesGroupName]=n,o}return n}}var $n=function(i){i=i.replace(/\\r\\n?/g,`\n`);let e=new nt("!xml"),t=e,r="",s="";for(let n=0;n<i.length;n++)if(i[n]==="<")if(i[n+1]==="/"){let a=Ze(i,">",n,"Closing Tag is not closed."),l=i.substring(n+2,a).trim();if(this.options.removeNSPrefix){let h=l.indexOf(":");h!==-1&&(l=l.substr(h+1))}this.options.transformTagName&&(l=this.options.transformTagName(l)),t&&(r=this.saveTextToParentTag(r,t,s));let c=s.substring(s.lastIndexOf(".")+1);if(l&&this.options.unpairedTags.indexOf(l)!==-1)throw new Error(`Unpaired tag can not be used as closing tag: </${l}>`);let d=0;c&&this.options.unpairedTags.indexOf(c)!==-1?(d=s.lastIndexOf(".",s.lastIndexOf(".")-1),this.tagsNodeStack.pop()):d=s.lastIndexOf("."),s=s.substring(0,d),t=this.tagsNodeStack.pop(),r="",n=a}else if(i[n+1]==="?"){let a=pr(i,n,!1,"?>");if(!a)throw new Error("Pi Tag is not closed.");if(r=this.saveTextToParentTag(r,t,s),!(this.options.ignoreDeclaration&&a.tagName==="?xml"||this.options.ignorePiTags)){let l=new nt(a.tagName);l.add(this.options.textNodeName,""),a.tagName!==a.tagExp&&a.attrExpPresent&&(l[":@"]=this.buildAttributesMap(a.tagExp,s,a.tagName)),this.addChild(t,l,s)}n=a.closeIndex+1}else if(i.substr(n+1,3)==="!--"){let a=Ze(i,"-->",n+4,"Comment is not closed.");if(this.options.commentPropName){let l=i.substring(n+4,a-2);r=this.saveTextToParentTag(r,t,s),t.add(this.options.commentPropName,[{[this.options.textNodeName]:l}])}n=a}else if(i.substr(n+1,2)==="!D"){let a=Mn(i,n);this.docTypeEntities=a.entities,n=a.i}else if(i.substr(n+1,2)==="!["){let a=Ze(i,"]]>",n,"CDATA is not closed.")-2,l=i.substring(n+9,a);r=this.saveTextToParentTag(r,t,s);let c=this.parseTextData(l,t.tagname,s,!0,!1,!0,!0);c==null&&(c=""),this.options.cdataPropName?t.add(this.options.cdataPropName,[{[this.options.textNodeName]:l}]):t.add(this.options.textNodeName,c),n=a+2}else{let a=pr(i,n,this.options.removeNSPrefix),l=a.tagName,c=a.rawTagName,d=a.tagExp,h=a.attrExpPresent,p=a.closeIndex;this.options.transformTagName&&(l=this.options.transformTagName(l)),t&&r&&t.tagname!=="!xml"&&(r=this.saveTextToParentTag(r,t,s,!1));let u=t;if(u&&this.options.unpairedTags.indexOf(u.tagname)!==-1&&(t=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf("."))),l!==e.tagname&&(s+=s?"."+l:l),this.isItStopNode(this.options.stopNodes,s,l)){let f="";if(d.length>0&&d.lastIndexOf("/")===d.length-1)l[l.length-1]==="/"?(l=l.substr(0,l.length-1),s=s.substr(0,s.length-1),d=l):d=d.substr(0,d.length-1),n=a.closeIndex;else if(this.options.unpairedTags.indexOf(l)!==-1)n=a.closeIndex;else{let v=this.readStopNodeData(i,c,p+1);if(!v)throw new Error(`Unexpected end of ${c}`);n=v.i,f=v.tagContent}let b=new nt(l);l!==d&&h&&(b[":@"]=this.buildAttributesMap(d,s,l)),f&&(f=this.parseTextData(f,l,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(".")),b.add(this.options.textNodeName,f),this.addChild(t,b,s)}else{if(d.length>0&&d.lastIndexOf("/")===d.length-1){l[l.length-1]==="/"?(l=l.substr(0,l.length-1),s=s.substr(0,s.length-1),d=l):d=d.substr(0,d.length-1),this.options.transformTagName&&(l=this.options.transformTagName(l));let f=new nt(l);l!==d&&h&&(f[":@"]=this.buildAttributesMap(d,s,l)),this.addChild(t,f,s),s=s.substr(0,s.lastIndexOf("."))}else{let f=new nt(l);this.tagsNodeStack.push(t),l!==d&&h&&(f[":@"]=this.buildAttributesMap(d,s,l)),this.addChild(t,f,s),t=f}r="",n=p}}else r+=i[n];return e.child};function Vn(i,e,t){let r=this.options.updateTag(e.tagname,t,e[":@"]);r===!1||(typeof r=="string"&&(e.tagname=r),i.addChild(e))}var Zn=function(i){if(this.options.processEntities){for(let e in this.docTypeEntities){let t=this.docTypeEntities[e];i=i.replace(t.regx,t.val)}for(let e in this.lastEntities){let t=this.lastEntities[e];i=i.replace(t.regex,t.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){let t=this.htmlEntities[e];i=i.replace(t.regex,t.val)}i=i.replace(this.ampEntity.regex,this.ampEntity.val)}return i};function On(i,e,t,r){return i&&(r===void 0&&(r=Object.keys(e.child).length===0),i=this.parseTextData(i,e.tagname,t,!1,e[":@"]?Object.keys(e[":@"]).length!==0:!1,r),i!==void 0&&i!==""&&e.add(this.options.textNodeName,i),i=""),i}function Wn(i,e,t){let r="*."+t;for(let s in i){let n=i[s];if(r===n||e===n)return!0}return!1}function Hn(i,e,t=">"){let r,s="";for(let n=e;n<i.length;n++){let o=i[n];if(r)o===r&&(r="");else if(o===\'"\'||o==="\'")r=o;else if(o===t[0])if(t[1]){if(i[n+1]===t[1])return{data:s,index:n}}else return{data:s,index:n};else o===" "&&(o=" ");s+=o}}function Ze(i,e,t,r){let s=i.indexOf(e,t);if(s===-1)throw new Error(r);return s+e.length-1}function pr(i,e,t,r=">"){let s=Hn(i,e+1,r);if(!s)return;let n=s.data,o=s.index,a=n.search(/\\s/),l=n,c=!0;a!==-1&&(l=n.substring(0,a),n=n.substring(a+1).trimStart());let d=l;if(t){let h=l.indexOf(":");h!==-1&&(l=l.substr(h+1),c=l!==s.data.substr(h+1))}return{tagName:l,tagExp:n,closeIndex:o,attrExpPresent:c,rawTagName:d}}function Bn(i,e,t){let r=t,s=1;for(;t<i.length;t++)if(i[t]==="<")if(i[t+1]==="/"){let n=Ze(i,">",t,`${e} is not closed`);if(i.substring(t+2,n).trim()===e&&(s--,s===0))return{tagContent:i.substring(r,t),i:n};t=n}else if(i[t+1]==="?")t=Ze(i,"?>",t+1,"StopNode is not closed.");else if(i.substr(t+1,3)==="!--")t=Ze(i,"-->",t+3,"StopNode is not closed.");else if(i.substr(t+1,2)==="![")t=Ze(i,"]]>",t,"StopNode is not closed.")-2;else{let n=pr(i,t,">");n&&((n&&n.tagName)===e&&n.tagExp[n.tagExp.length-1]!=="/"&&s++,t=n.closeIndex)}}function mr(i,e,t){if(e&&typeof i=="string"){let r=i.trim();return r==="true"?!0:r==="false"?!1:Fn(i,t)}else return mi.isExist(i)?i:""}_i.exports=fr});var wi=re(yi=>{"use strict";function jn(i,e){return gi(i,e)}function gi(i,e,t){let r,s={};for(let n=0;n<i.length;n++){let o=i[n],a=Yn(o),l="";if(t===void 0?l=a:l=t+"."+a,a===e.textNodeName)r===void 0?r=o[a]:r+=""+o[a];else{if(a===void 0)continue;if(o[a]){let c=gi(o[a],e,l),d=Xn(c,e);o[":@"]?Jn(c,o[":@"],l,e):Object.keys(c).length===1&&c[e.textNodeName]!==void 0&&!e.alwaysCreateTextNode?c=c[e.textNodeName]:Object.keys(c).length===0&&(e.alwaysCreateTextNode?c[e.textNodeName]="":c=""),s[a]!==void 0&&s.hasOwnProperty(a)?(Array.isArray(s[a])||(s[a]=[s[a]]),s[a].push(c)):e.isArray(a,l,d)?s[a]=[c]:s[a]=c}}}return typeof r=="string"?r.length>0&&(s[e.textNodeName]=r):r!==void 0&&(s[e.textNodeName]=r),s}function Yn(i){let e=Object.keys(i);for(let t=0;t<e.length;t++){let r=e[t];if(r!==":@")return r}}function Jn(i,e,t,r){if(e){let s=Object.keys(e),n=s.length;for(let o=0;o<n;o++){let a=s[o];r.isArray(a,t+"."+a,!0,!0)?i[a]=[e[a]]:i[a]=e[a]}}}function Xn(i,e){let{textNodeName:t}=e,r=Object.keys(i).length;return!!(r===0||r===1&&(i[t]||typeof i[t]=="boolean"||i[t]===0))}yi.prettify=jn});var xi=re((wh,vi)=>{var{buildOptions:Qn}=ai(),qn=bi(),{prettify:Kn}=wi(),eo=cr(),_r=class{constructor(e){this.externalEntities={},this.options=Qn(e)}parse(e,t){if(typeof e!="string")if(e.toString)e=e.toString();else throw new Error("XML data is accepted in String or Bytes[] form.");if(t){t===!0&&(t={});let n=eo.validate(e,t);if(n!==!0)throw Error(`${n.err.msg}:${n.err.line}:${n.err.col}`)}let r=new qn(this.options);r.addExternalEntities(this.externalEntities);let s=r.parseXml(e);return this.options.preserveOrder||s===void 0?s:Kn(s,this.options)}addEntity(e,t){if(t.indexOf("&")!==-1)throw new Error("Entity value can\'t have \'&\'");if(e.indexOf("&")!==-1||e.indexOf(";")!==-1)throw new Error("An entity must be set without \'&\' and \';\'. Eg. use \'#xD\' for \'
\'");if(t==="&")throw new Error("An entity with value \'&\' is not permitted");this.externalEntities[e]=t}};vi.exports=_r});var Ii=re((vh,Ti)=>{var to=`\n`;function ro(i,e){let t="";return e.format&&e.indentBy.length>0&&(t=to),Ai(i,e,"",t)}function Ai(i,e,t,r){let s="",n=!1;for(let o=0;o<i.length;o++){let a=i[o],l=io(a);if(l===void 0)continue;let c="";if(t.length===0?c=l:c=`${t}.${l}`,l===e.textNodeName){let f=a[l];so(c,e)||(f=e.tagValueProcessor(l,f),f=Si(f,e)),n&&(s+=r),s+=f,n=!1;continue}else if(l===e.cdataPropName){n&&(s+=r),s+=`<![CDATA[${a[l][0][e.textNodeName]}]]>`,n=!1;continue}else if(l===e.commentPropName){s+=r+`<!--${a[l][0][e.textNodeName]}-->`,n=!0;continue}else if(l[0]==="?"){let f=Ci(a[":@"],e),b=l==="?xml"?"":r,v=a[l][0][e.textNodeName];v=v.length!==0?" "+v:"",s+=b+`<${l}${v}${f}?>`,n=!0;continue}let d=r;d!==""&&(d+=e.indentBy);let h=Ci(a[":@"],e),p=r+`<${l}${h}`,u=Ai(a[l],e,c,d);e.unpairedTags.indexOf(l)!==-1?e.suppressUnpairedNode?s+=p+">":s+=p+"/>":(!u||u.length===0)&&e.suppressEmptyNode?s+=p+"/>":u&&u.endsWith(">")?s+=p+`>${u}${r}</${l}>`:(s+=p+">",u&&r!==""&&(u.includes("/>")||u.includes("</"))?s+=r+e.indentBy+u+r:s+=u,s+=`</${l}>`),n=!0}return s}function io(i){let e=Object.keys(i);for(let t=0;t<e.length;t++){let r=e[t];if(i.hasOwnProperty(r)&&r!==":@")return r}}function Ci(i,e){let t="";if(i&&!e.ignoreAttributes)for(let r in i){if(!i.hasOwnProperty(r))continue;let s=e.attributeValueProcessor(r,i[r]);s=Si(s,e),s===!0&&e.suppressBooleanAttributes?t+=` ${r.substr(e.attributeNamePrefix.length)}`:t+=` ${r.substr(e.attributeNamePrefix.length)}="${s}"`}return t}function so(i,e){i=i.substr(0,i.length-e.textNodeName.length-1);let t=i.substr(i.lastIndexOf(".")+1);for(let r in e.stopNodes)if(e.stopNodes[r]===i||e.stopNodes[r]==="*."+t)return!0;return!1}function Si(i,e){if(i&&i.length>0&&e.processEntities)for(let t=0;t<e.entities.length;t++){let r=e.entities[t];i=i.replace(r.regex,r.val)}return i}Ti.exports=ro});var ki=re((xh,Ri)=>{"use strict";var no=Ii(),oo=ur(),ao={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(i,e){return e},attributeValueProcessor:function(i,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("\'","g"),val:"'"},{regex:new RegExp(\'"\',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1};function Fe(i){this.options=Object.assign({},ao,i),this.options.ignoreAttributes===!0||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=oo(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=ho),this.processTextOrObjNode=lo,this.options.format?(this.indentate=co,this.tagEndChar=`>\n`,this.newLine=`\n`):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}Fe.prototype.build=function(i){return this.options.preserveOrder?no(i,this.options):(Array.isArray(i)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(i={[this.options.arrayNodeName]:i}),this.j2x(i,0,[]).val)};Fe.prototype.j2x=function(i,e,t){let r="",s="",n=t.join(".");for(let o in i)if(Object.prototype.hasOwnProperty.call(i,o))if(typeof i[o]>"u")this.isAttribute(o)&&(s+="");else if(i[o]===null)this.isAttribute(o)?s+="":o[0]==="?"?s+=this.indentate(e)+"<"+o+"?"+this.tagEndChar:s+=this.indentate(e)+"<"+o+"/"+this.tagEndChar;else if(i[o]instanceof Date)s+=this.buildTextValNode(i[o],o,"",e);else if(typeof i[o]!="object"){let a=this.isAttribute(o);if(a&&!this.ignoreAttributesFn(a,n))r+=this.buildAttrPairStr(a,""+i[o]);else if(!a)if(o===this.options.textNodeName){let l=this.options.tagValueProcessor(o,""+i[o]);s+=this.replaceEntitiesValue(l)}else s+=this.buildTextValNode(i[o],o,"",e)}else if(Array.isArray(i[o])){let a=i[o].length,l="",c="";for(let d=0;d<a;d++){let h=i[o][d];if(!(typeof h>"u"))if(h===null)o[0]==="?"?s+=this.indentate(e)+"<"+o+"?"+this.tagEndChar:s+=this.indentate(e)+"<"+o+"/"+this.tagEndChar;else if(typeof h=="object")if(this.options.oneListGroup){let p=this.j2x(h,e+1,t.concat(o));l+=p.val,this.options.attributesGroupName&&h.hasOwnProperty(this.options.attributesGroupName)&&(c+=p.attrStr)}else l+=this.processTextOrObjNode(h,o,e,t);else if(this.options.oneListGroup){let p=this.options.tagValueProcessor(o,h);p=this.replaceEntitiesValue(p),l+=p}else l+=this.buildTextValNode(h,o,"",e)}this.options.oneListGroup&&(l=this.buildObjectNode(l,o,c,e)),s+=l}else if(this.options.attributesGroupName&&o===this.options.attributesGroupName){let a=Object.keys(i[o]),l=a.length;for(let c=0;c<l;c++)r+=this.buildAttrPairStr(a[c],""+i[o][a[c]])}else s+=this.processTextOrObjNode(i[o],o,e,t);return{attrStr:r,val:s}};Fe.prototype.buildAttrPairStr=function(i,e){return e=this.options.attributeValueProcessor(i,""+e),e=this.replaceEntitiesValue(e),this.options.suppressBooleanAttributes&&e==="true"?" "+i:" "+i+\'="\'+e+\'"\'};function lo(i,e,t,r){let s=this.j2x(i,t+1,r.concat(e));return i[this.options.textNodeName]!==void 0&&Object.keys(i).length===1?this.buildTextValNode(i[this.options.textNodeName],e,s.attrStr,t):this.buildObjectNode(s.val,e,s.attrStr,t)}Fe.prototype.buildObjectNode=function(i,e,t,r){if(i==="")return e[0]==="?"?this.indentate(r)+"<"+e+t+"?"+this.tagEndChar:this.indentate(r)+"<"+e+t+this.closeTag(e)+this.tagEndChar;{let s="</"+e+this.tagEndChar,n="";return e[0]==="?"&&(n="?",s=""),(t||t==="")&&i.indexOf("<")===-1?this.indentate(r)+"<"+e+t+n+">"+i+s:this.options.commentPropName!==!1&&e===this.options.commentPropName&&n.length===0?this.indentate(r)+`<!--${i}-->`+this.newLine:this.indentate(r)+"<"+e+t+n+this.tagEndChar+i+this.indentate(r)+s}};Fe.prototype.closeTag=function(i){let e="";return this.options.unpairedTags.indexOf(i)!==-1?this.options.suppressUnpairedNode||(e="/"):this.options.suppressEmptyNode?e="/":e=`></${i}`,e};Fe.prototype.buildTextValNode=function(i,e,t,r){if(this.options.cdataPropName!==!1&&e===this.options.cdataPropName)return this.indentate(r)+`<![CDATA[${i}]]>`+this.newLine;if(this.options.commentPropName!==!1&&e===this.options.commentPropName)return this.indentate(r)+`<!--${i}-->`+this.newLine;if(e[0]==="?")return this.indentate(r)+"<"+e+t+"?"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,i);return s=this.replaceEntitiesValue(s),s===""?this.indentate(r)+"<"+e+t+this.closeTag(e)+this.tagEndChar:this.indentate(r)+"<"+e+t+">"+s+"</"+e+this.tagEndChar}};Fe.prototype.replaceEntitiesValue=function(i){if(i&&i.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){let t=this.options.entities[e];i=i.replace(t.regex,t.val)}return i};function co(i){return this.options.indentBy.repeat(i)}function ho(i){return i.startsWith(this.options.attributeNamePrefix)&&i!==this.options.textNodeName?i.substr(this.attrPrefixLen):!1}Ri.exports=Fe});var Tt=re((Ch,Ei)=>{"use strict";var uo=cr(),fo=xi(),po=ki();Ei.exports={XMLParser:fo,XMLValidator:uo,XMLBuilder:po}});var Wi=re((nu,wr)=>{var _={};typeof wr=="object"&&(wr.exports=_);_.parse=function(i,e){for(var t=_.bin.readUshort,r=_.bin.readUint,a=0,s={},n=new Uint8Array(i),o=n.length-4;r(n,o)!=101010256;)o--;var a=o;a+=4,a+=4;var l=t(n,a);a+=2;var c=t(n,a);a+=2;var d=r(n,a);a+=4;var h=r(n,a);a+=4,a=h;for(var p=0;p<l;p++){var u=r(n,a);a+=4,a+=4,a+=4,a+=4;var f=r(n,a);a+=4;var d=r(n,a);a+=4;var b=r(n,a);a+=4;var v=t(n,a),x=t(n,a+2),w=t(n,a+4);a+=6,a+=8;var m=r(n,a);a+=4,a+=v+x+w,_._readLocal(n,m,s,d,b,e)}return s};_._readLocal=function(i,e,t,r,s,n){var o=_.bin.readUshort,a=_.bin.readUint,l=a(i,e);e+=4;var c=o(i,e);e+=2;var d=o(i,e);e+=2;var h=o(i,e);e+=2;var p=a(i,e);e+=4;var u=a(i,e);e+=4,e+=8;var f=o(i,e);e+=2;var b=o(i,e);e+=2;var v=_.bin.readUTF8(i,e,f);if(e+=f,e+=b,n){t[v]={size:s,csize:r};return}var x=new Uint8Array(i.buffer,e);if(h==0)t[v]=new Uint8Array(x.buffer.slice(e,e+r));else if(h==8){var w=new Uint8Array(s);_.inflateRaw(x,w),t[v]=w}else throw"unknown compression method: "+h};_.inflateRaw=function(i,e){return _.F.inflate(i,e)};_.inflate=function(i,e){var t=i[0],r=i[1],s=t&15,n=t>>>4;return _.inflateRaw(new Uint8Array(i.buffer,i.byteOffset+2,i.length-6),e)};_.deflate=function(i,e){e==null&&(e={level:6});var t=0,r=new Uint8Array(50+Math.floor(i.length*1.1));r[t]=120,r[t+1]=156,t+=2,t=_.F.deflateRaw(i,r,t,e.level);var s=_.adler(i,0,i.length);return r[t+0]=s>>>24&255,r[t+1]=s>>>16&255,r[t+2]=s>>>8&255,r[t+3]=s>>>0&255,new Uint8Array(r.buffer,0,t+4)};_.deflateRaw=function(i,e){e==null&&(e={level:6});var t=new Uint8Array(50+Math.floor(i.length*1.1)),r=_.F.deflateRaw(i,t,r,e.level);return new Uint8Array(t.buffer,0,r)};_.encode=function(i,e){e==null&&(e=!1);var t=0,r=_.bin.writeUint,s=_.bin.writeUshort,n={};for(var o in i){var a=!_._noNeed(o)&&!e,l=i[o],c=_.crc.crc(l,0,l.length);n[o]={cpr:a,usize:l.length,crc:c,file:a?_.deflateRaw(l):l}}for(var o in n)t+=n[o].file.length+30+46+2*_.bin.sizeUTF8(o);t+=22;var d=new Uint8Array(t),h=0,p=[];for(var o in n){var u=n[o];p.push(h),h=_._writeHeader(d,h,o,u,0)}var f=0,b=h;for(var o in n){var u=n[o];p.push(h),h=_._writeHeader(d,h,o,u,1,p[f++])}var v=h-b;return r(d,h,101010256),h+=4,h+=4,s(d,h,f),h+=2,s(d,h,f),h+=2,r(d,h,v),h+=4,r(d,h,b),h+=4,h+=2,d.buffer};_._noNeed=function(i){var e=i.split(".").pop().toLowerCase();return"png,jpg,jpeg,zip".indexOf(e)!=-1};_._writeHeader=function(i,e,t,r,s,n){var o=_.bin.writeUint,a=_.bin.writeUshort,l=r.file;o(i,e,s==0?67324752:33639248),e+=4,s==1&&(e+=2),a(i,e,20),e+=2,a(i,e,0),e+=2,a(i,e,r.cpr?8:0),e+=2,o(i,e,0),e+=4,o(i,e,r.crc),e+=4,o(i,e,l.length),e+=4,o(i,e,r.usize),e+=4,a(i,e,_.bin.sizeUTF8(t)),e+=2,a(i,e,0),e+=2,s==1&&(e+=2,e+=2,e+=6,o(i,e,n),e+=4);var c=_.bin.writeUTF8(i,e,t);return e+=c,s==0&&(i.set(l,e),e+=l.length),e};_.crc={table:function(){for(var i=new Uint32Array(256),e=0;e<256;e++){for(var t=e,r=0;r<8;r++)t&1?t=3988292384^t>>>1:t=t>>>1;i[e]=t}return i}(),update:function(i,e,t,r){for(var s=0;s<r;s++)i=_.crc.table[(i^e[t+s])&255]^i>>>8;return i},crc:function(i,e,t){return _.crc.update(4294967295,i,e,t)^4294967295}};_.adler=function(i,e,t){for(var r=1,s=0,n=e,o=e+t;n<o;){for(var a=Math.min(n+5552,o);n<a;)r+=i[n++],s+=r;r=r%65521,s=s%65521}return s<<16|r};_.bin={readUshort:function(i,e){return i[e]|i[e+1]<<8},writeUshort:function(i,e,t){i[e]=t&255,i[e+1]=t>>8&255},readUint:function(i,e){return i[e+3]*(256*256*256)+(i[e+2]<<16|i[e+1]<<8|i[e])},writeUint:function(i,e,t){i[e]=t&255,i[e+1]=t>>8&255,i[e+2]=t>>16&255,i[e+3]=t>>24&255},readASCII:function(i,e,t){for(var r="",s=0;s<t;s++)r+=String.fromCharCode(i[e+s]);return r},writeASCII:function(i,e,t){for(var r=0;r<t.length;r++)i[e+r]=t.charCodeAt(r)},pad:function(i){return i.length<2?"0"+i:i},readUTF8:function(i,e,t){for(var r="",s,n=0;n<t;n++)r+="%"+_.bin.pad(i[e+n].toString(16));try{s=decodeURIComponent(r)}catch{return _.bin.readASCII(i,e,t)}return s},writeUTF8:function(i,e,t){for(var r=t.length,s=0,n=0;n<r;n++){var o=t.charCodeAt(n);if(!(o&4294967168))i[e+s]=o,s++;else if(!(o&4294965248))i[e+s]=192|o>>6,i[e+s+1]=128|o>>0&63,s+=2;else if(!(o&4294901760))i[e+s]=224|o>>12,i[e+s+1]=128|o>>6&63,i[e+s+2]=128|o>>0&63,s+=3;else if(!(o&4294967295-(1<<21)+1))i[e+s]=240|o>>18,i[e+s+1]=128|o>>12&63,i[e+s+2]=128|o>>6&63,i[e+s+3]=128|o>>0&63,s+=4;else throw"e"}return s},sizeUTF8:function(i){for(var e=i.length,t=0,r=0;r<e;r++){var s=i.charCodeAt(r);if(!(s&4294967168))t++;else if(!(s&4294965248))t+=2;else if(!(s&4294901760))t+=3;else if(!(s&4294967295-(1<<21)+1))t+=4;else throw"e"}return t}};_.F={};_.F.deflateRaw=function(i,e,t,r){var s=[[0,0,0,0,0],[4,4,8,4,0],[4,5,16,8,0],[4,6,16,16,0],[4,10,16,32,0],[8,16,32,32,0],[8,16,128,128,0],[8,32,128,256,0],[32,128,258,1024,1],[32,258,258,4096,1]],n=s[r],o=_.F.U,a=_.F._goodIndex,l=_.F._hash,c=_.F._putsE,d=0,h=t<<3,p=0,u=i.length;if(r==0){for(;d<u;){var f=Math.min(65535,u-d);c(e,h,d+f==u?1:0),h=_.F._copyExact(i,d,f,e,h+8),d+=f}return h>>>3}var b=o.lits,v=o.strt,x=o.prev,w=0,m=0,A=0,G=0,P=0,D=0;u>2&&(D=_.F._hash(i,0),v[D]=0);var z=0,W=0;for(d=0;d<u;d++){if(P=D,d+1<u-2){D=_.F._hash(i,d+1);var V=d+1&32767;x[V]=v[D],v[D]=V}if(p<=d){(w>14e3||m>26697)&&u-d>100&&(p<d&&(b[w]=d-p,w+=2,p=d),h=_.F._writeBlock(d==u-1||p==u?1:0,b,w,G,i,A,d-A,e,h),w=m=G=0,A=d);var U=0;d<u-2&&(U=_.F._bestMatch(i,d,x,P,Math.min(n[2],u-d),n[3]));var f=U>>>16,K=U&65535;if(U!=0){var f=U>>>16,K=U&65535,Q=a(f,o.of0);o.lhst[257+Q]++;var X=a(K,o.df0);o.dhst[X]++,G+=o.exb[Q]+o.dxb[X],b[w]=f<<23|d-p,b[w+1]=K<<16|Q<<8|X,w+=2,p=d+f}else o.lhst[i[d]]++;m++}}for((A!=d||i.length==0)&&(p<d&&(b[w]=d-p,w+=2,p=d),h=_.F._writeBlock(1,b,w,G,i,A,d-A,e,h),w=0,m=0,w=m=G=0,A=d);h&7;)h++;return h>>>3};_.F._bestMatch=function(i,e,t,r,s,n){var o=e&32767,a=t[o],l=o-a+32768&32767;if(a==o||r!=_.F._hash(i,e-l))return 0;for(var c=0,d=0,h=Math.min(32767,e);l<=h&&--n!=0&&a!=o;){if(c==0||i[e+c]==i[e+c-l]){var p=_.F._howLong(i,e,l);if(p>c){if(c=p,d=l,c>=s)break;l+2<p&&(p=l+2);for(var u=0,f=0;f<p-2;f++){var b=e-l+f+32768&32767,v=t[b],x=b-v+32768&32767;x>u&&(u=x,a=b)}}}o=a,a=t[o],l+=o-a+32768&32767}return c<<16|d};_.F._howLong=function(i,e,t){if(i[e]!=i[e-t]||i[e+1]!=i[e+1-t]||i[e+2]!=i[e+2-t])return 0;var r=e,s=Math.min(i.length,e+258);for(e+=3;e<s&&i[e]==i[e-t];)e++;return e-r};_.F._hash=function(i,e){return(i[e]<<8|i[e+1])+(i[e+2]<<4)&65535};_.saved=0;_.F._writeBlock=function(i,e,t,r,s,n,o,a,l){var c=_.F.U,d=_.F._putsF,h=_.F._putsE,p,u,f,b,v,x,w,m,A;c.lhst[256]++,p=_.F.getTrees(),u=p[0],f=p[1],b=p[2],v=p[3],x=p[4],w=p[5],m=p[6],A=p[7];var G=(l+3&7?8-(l+3&7):0)+32+(o<<3),P=r+_.F.contSize(c.fltree,c.lhst)+_.F.contSize(c.fdtree,c.dhst),D=r+_.F.contSize(c.ltree,c.lhst)+_.F.contSize(c.dtree,c.dhst);D+=14+3*w+_.F.contSize(c.itree,c.ihst)+(c.ihst[16]*2+c.ihst[17]*3+c.ihst[18]*7);for(var z=0;z<286;z++)c.lhst[z]=0;for(var z=0;z<30;z++)c.dhst[z]=0;for(var z=0;z<19;z++)c.ihst[z]=0;var W=G<P&&G<D?0:P<D?1:2;d(a,l,i),d(a,l+1,W),l+=3;var V=l;if(W==0){for(;l&7;)l++;l=_.F._copyExact(s,n,o,a,l)}else{var U,K;if(W==1&&(U=c.fltree,K=c.fdtree),W==2){_.F.makeCodes(c.ltree,u),_.F.revCodes(c.ltree,u),_.F.makeCodes(c.dtree,f),_.F.revCodes(c.dtree,f),_.F.makeCodes(c.itree,b),_.F.revCodes(c.itree,b),U=c.ltree,K=c.dtree,h(a,l,v-257),l+=5,h(a,l,x-1),l+=5,h(a,l,w-4),l+=4;for(var Q=0;Q<w;Q++)h(a,l+Q*3,c.itree[(c.ordr[Q]<<1)+1]);l+=3*w,l=_.F._codeTiny(m,c.itree,a,l),l=_.F._codeTiny(A,c.itree,a,l)}for(var X=n,ee=0;ee<t;ee+=2){for(var j=e[ee],oe=j>>>23,te=X+(j&(1<<23)-1);X<te;)l=_.F._writeLit(s[X++],U,a,l);if(oe!=0){var ue=e[ee+1],ce=ue>>16,g=ue>>8&255,T=ue&255;l=_.F._writeLit(257+g,U,a,l),h(a,l,oe-c.of0[g]),l+=c.exb[g],l=_.F._writeLit(T,K,a,l),d(a,l,ce-c.df0[T]),l+=c.dxb[T],X+=oe}}l=_.F._writeLit(256,U,a,l)}return l};_.F._copyExact=function(i,e,t,r,s){var n=s>>>3;return r[n]=t,r[n+1]=t>>>8,r[n+2]=255-r[n],r[n+3]=255-r[n+1],n+=4,r.set(new Uint8Array(i.buffer,e,t),n),s+(t+4<<3)};_.F.getTrees=function(){for(var i=_.F.U,e=_.F._hufTree(i.lhst,i.ltree,15),t=_.F._hufTree(i.dhst,i.dtree,15),r=[],s=_.F._lenCodes(i.ltree,r),n=[],o=_.F._lenCodes(i.dtree,n),a=0;a<r.length;a+=2)i.ihst[r[a]]++;for(var a=0;a<n.length;a+=2)i.ihst[n[a]]++;for(var l=_.F._hufTree(i.ihst,i.itree,7),c=19;c>4&&i.itree[(i.ordr[c-1]<<1)+1]==0;)c--;return[e,t,l,s,o,c,r,n]};_.F.getSecond=function(i){for(var e=[],t=0;t<i.length;t+=2)e.push(i[t+1]);return e};_.F.nonZero=function(i){for(var e="",t=0;t<i.length;t+=2)i[t+1]!=0&&(e+=(t>>1)+",");return e};_.F.contSize=function(i,e){for(var t=0,r=0;r<e.length;r++)t+=e[r]*i[(r<<1)+1];return t};_.F._codeTiny=function(i,e,t,r){for(var s=0;s<i.length;s+=2){var n=i[s],o=i[s+1];r=_.F._writeLit(n,e,t,r);var a=n==16?2:n==17?3:7;n>15&&(_.F._putsE(t,r,o,a),r+=a)}return r};_.F._lenCodes=function(i,e){for(var t=i.length;t!=2&&i[t-1]==0;)t-=2;for(var r=0;r<t;r+=2){var s=i[r+1],n=r+3<t?i[r+3]:-1,o=r+5<t?i[r+5]:-1,a=r==0?-1:i[r-1];if(s==0&&n==s&&o==s){for(var l=r+5;l+2<t&&i[l+2]==s;)l+=2;var c=Math.min(l+1-r>>>1,138);c<11?e.push(17,c-3):e.push(18,c-11),r+=c*2-2}else if(s==a&&n==s&&o==s){for(var l=r+5;l+2<t&&i[l+2]==s;)l+=2;var c=Math.min(l+1-r>>>1,6);e.push(16,c-3),r+=c*2-2}else e.push(s,0)}return t>>>1};_.F._hufTree=function(i,e,t){var r=[],s=i.length,n=e.length,o=0;for(o=0;o<n;o+=2)e[o]=0,e[o+1]=0;for(o=0;o<s;o++)i[o]!=0&&r.push({lit:o,f:i[o]});var a=r.length,l=r.slice(0);if(a==0)return 0;if(a==1){var c=r[0].lit,l=c==0?1:0;return e[(c<<1)+1]=1,e[(l<<1)+1]=1,1}r.sort(function(v,x){return v.f-x.f});var d=r[0],h=r[1],p=0,u=1,f=2;for(r[0]={lit:-1,f:d.f+h.f,l:d,r:h,d:0};u!=a-1;)p!=u&&(f==a||r[p].f<r[f].f)?d=r[p++]:d=r[f++],p!=u&&(f==a||r[p].f<r[f].f)?h=r[p++]:h=r[f++],r[u++]={lit:-1,f:d.f+h.f,l:d,r:h};var b=_.F.setDepth(r[u-1],0);for(b>t&&(_.F.restrictDepth(l,t,b),b=t),o=0;o<a;o++)e[(l[o].lit<<1)+1]=l[o].d;return b};_.F.setDepth=function(i,e){return i.lit!=-1?(i.d=e,e):Math.max(_.F.setDepth(i.l,e+1),_.F.setDepth(i.r,e+1))};_.F.restrictDepth=function(i,e,t){var r=0,s=1<<t-e,n=0;for(i.sort(function(a,l){return l.d==a.d?a.f-l.f:l.d-a.d}),r=0;r<i.length&&i[r].d>e;r++){var o=i[r].d;i[r].d=e,n+=s-(1<<t-o)}for(n=n>>>t-e;n>0;){var o=i[r].d;o<e?(i[r].d++,n-=1<<e-o-1):r++}for(;r>=0;r--)i[r].d==e&&n<0&&(i[r].d--,n++);n!=0&&console.log("debt left")};_.F._goodIndex=function(i,e){var t=0;return e[t|16]<=i&&(t|=16),e[t|8]<=i&&(t|=8),e[t|4]<=i&&(t|=4),e[t|2]<=i&&(t|=2),e[t|1]<=i&&(t|=1),t};_.F._writeLit=function(i,e,t,r){return _.F._putsF(t,r,e[i<<1]),r+e[(i<<1)+1]};_.F.inflate=function(i,e){var t=Uint8Array;if(i[0]==3&&i[1]==0)return e||new t(0);var r=_.F,s=r._bitsF,n=r._bitsE,o=r._decodeTiny,a=r.makeCodes,l=r.codes2map,c=r._get17,d=r.U,h=e==null;h&&(e=new t(i.length>>>2<<3));for(var p=0,u=0,f=0,b=0,v=0,x=0,w=0,m=0,A=0,G,P;p==0;){if(p=s(i,A,1),u=s(i,A+1,2),A+=3,u==0){A&7&&(A+=8-(A&7));var D=(A>>>3)+4,z=i[D-4]|i[D-3]<<8;h&&(e=_.F._check(e,m+z)),e.set(new t(i.buffer,i.byteOffset+D,z),m),A=D+z<<3,m+=z;continue}if(h&&(e=_.F._check(e,m+(1<<17))),u==1&&(G=d.flmap,P=d.fdmap,x=511,w=31),u==2){f=n(i,A,5)+257,b=n(i,A+5,5)+1,v=n(i,A+10,4)+4,A+=14;for(var W=A,V=0;V<38;V+=2)d.itree[V]=0,d.itree[V+1]=0;for(var U=1,V=0;V<v;V++){var K=n(i,A+V*3,3);d.itree[(d.ordr[V]<<1)+1]=K,K>U&&(U=K)}A+=3*v,a(d.itree,U),l(d.itree,U,d.imap),G=d.lmap,P=d.dmap,A=o(d.imap,(1<<U)-1,f+b,i,A,d.ttree);var Q=r._copyOut(d.ttree,0,f,d.ltree);x=(1<<Q)-1;var X=r._copyOut(d.ttree,f,b,d.dtree);w=(1<<X)-1,a(d.ltree,Q),l(d.ltree,Q,G),a(d.dtree,X),l(d.dtree,X,P)}for(;;){var ee=G[c(i,A)&x];A+=ee&15;var j=ee>>>4;if(!(j>>>8))e[m++]=j;else{if(j==256)break;var oe=m+j-254;if(j>264){var te=d.ldef[j-257];oe=m+(te>>>3)+n(i,A,te&7),A+=te&7}var ue=P[c(i,A)&w];A+=ue&15;var ce=ue>>>4,g=d.ddef[ce],T=(g>>>4)+s(i,A,g&15);for(A+=g&15,h&&(e=_.F._check(e,m+(1<<17)));m<oe;)e[m]=e[m++-T],e[m]=e[m++-T],e[m]=e[m++-T],e[m]=e[m++-T];m=oe}}}return e.length==m?e:e.slice(0,m)};_.F._check=function(i,e){var t=i.length;if(e<=t)return i;var r=new Uint8Array(Math.max(t<<1,e));return r.set(i,0),r};_.F._decodeTiny=function(i,e,t,r,s,n){for(var o=_.F._bitsE,a=_.F._get17,l=0;l<t;){var c=i[a(r,s)&e];s+=c&15;var d=c>>>4;if(d<=15)n[l]=d,l++;else{var h=0,p=0;d==16?(p=3+o(r,s,2),s+=2,h=n[l-1]):d==17?(p=3+o(r,s,3),s+=3):d==18&&(p=11+o(r,s,7),s+=7);for(var u=l+p;l<u;)n[l]=h,l++}}return s};_.F._copyOut=function(i,e,t,r){for(var s=0,n=0,o=r.length>>>1;n<t;){var a=i[n+e];r[n<<1]=0,r[(n<<1)+1]=a,a>s&&(s=a),n++}for(;n<o;)r[n<<1]=0,r[(n<<1)+1]=0,n++;return s};_.F.makeCodes=function(i,e){for(var t=_.F.U,r=i.length,s,n,o,a,l,c=t.bl_count,a=0;a<=e;a++)c[a]=0;for(a=1;a<r;a+=2)c[i[a]]++;var d=t.next_code;for(s=0,c[0]=0,n=1;n<=e;n++)s=s+c[n-1]<<1,d[n]=s;for(o=0;o<r;o+=2)l=i[o+1],l!=0&&(i[o]=d[l],d[l]++)};_.F.codes2map=function(i,e,t){for(var r=i.length,s=_.F.U,n=s.rev15,o=0;o<r;o+=2)if(i[o+1]!=0)for(var a=o>>1,l=i[o+1],c=a<<4|l,d=e-l,h=i[o]<<d,p=h+(1<<d);h!=p;){var u=n[h]>>>15-e;t[u]=c,h++}};_.F.revCodes=function(i,e){for(var t=_.F.U.rev15,r=15-e,s=0;s<i.length;s+=2){var n=i[s]<<e-i[s+1];i[s]=t[n]>>>r}};_.F._putsE=function(i,e,t){t=t<<(e&7);var r=e>>>3;i[r]|=t,i[r+1]|=t>>>8};_.F._putsF=function(i,e,t){t=t<<(e&7);var r=e>>>3;i[r]|=t,i[r+1]|=t>>>8,i[r+2]|=t>>>16};_.F._bitsE=function(i,e,t){return(i[e>>>3]|i[(e>>>3)+1]<<8)>>>(e&7)&(1<<t)-1};_.F._bitsF=function(i,e,t){return(i[e>>>3]|i[(e>>>3)+1]<<8|i[(e>>>3)+2]<<16)>>>(e&7)&(1<<t)-1};_.F._get17=function(i,e){return(i[e>>>3]|i[(e>>>3)+1]<<8|i[(e>>>3)+2]<<16)>>>(e&7)};_.F._get25=function(i,e){return(i[e>>>3]|i[(e>>>3)+1]<<8|i[(e>>>3)+2]<<16|i[(e>>>3)+3]<<24)>>>(e&7)};_.F.U=function(){var i=Uint16Array,e=Uint32Array;return{next_code:new i(16),bl_count:new i(16),ordr:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],of0:[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,999,999,999],exb:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],ldef:new i(32),df0:[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,65535,65535],dxb:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],ddef:new e(32),flmap:new i(512),fltree:[],fdmap:new i(32),fdtree:[],lmap:new i(32768),ltree:[],ttree:[],dmap:new i(32768),dtree:[],imap:new i(512),itree:[],rev15:new i(32768),lhst:new e(286),dhst:new e(30),ihst:new e(19),lits:new e(15e3),strt:new i(65536),prev:new i(32768)}}();(function(){for(var i=_.F.U,e=32768,t=0;t<e;t++){var r=t;r=(r&2863311530)>>>1|(r&1431655765)<<1,r=(r&3435973836)>>>2|(r&858993459)<<2,r=(r&4042322160)>>>4|(r&252645135)<<4,r=(r&4278255360)>>>8|(r&16711935)<<8,i.rev15[t]=(r>>>16|r<<16)>>>17}function s(n,o,a){for(;o--!=0;)n.push(0,a)}for(var t=0;t<32;t++)i.ldef[t]=i.of0[t]<<3|i.exb[t],i.ddef[t]=i.df0[t]<<4|i.dxb[t];s(i.fltree,144,8),s(i.fltree,112,9),s(i.fltree,24,7),s(i.fltree,8,8),_.F.makeCodes(i.fltree,9),_.F.codes2map(i.fltree,9,i.flmap),_.F.revCodes(i.fltree,9),s(i.fdtree,32,5),_.F.makeCodes(i.fdtree,5),_.F.codes2map(i.fdtree,5,i.fdmap),_.F.revCodes(i.fdtree,5),s(i.itree,19,0),s(i.ltree,286,0),s(i.dtree,30,0),s(i.ttree,320,0)})()});var ji=De(ut());var ft=i=>{let e=Math.floor((i-5)/7*100+.5)/100;return Math.floor((e*7+5)/7*256)/256},Vt=i=>Math.floor((256*i+Math.floor(18.285714285714285))/256*7);var Ir="UEsDBAoAAAAAAAAAIQBi7p1okAQAAJAEAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4NCjxUeXBlcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9jb250ZW50LXR5cGVzIj48RGVmYXVsdCBFeHRlbnNpb249InJlbHMiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5yZWxhdGlvbnNoaXBzK3htbCIvPjxEZWZhdWx0IEV4dGVuc2lvbj0ieG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24veG1sIi8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvd29ya2Jvb2sueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQubWFpbit4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jrc2hlZXQreG1sIi8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvdGhlbWUvdGhlbWUxLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZSt4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC9zdHlsZXMueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc3R5bGVzK3htbCIvPjxPdmVycmlkZSBQYXJ0TmFtZT0iL3hsL3NoYXJlZFN0cmluZ3MueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hhcmVkU3RyaW5ncyt4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii9kb2NQcm9wcy9jb3JlLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmNvcmUtcHJvcGVydGllcyt4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii9kb2NQcm9wcy9hcHAueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmV4dGVuZGVkLXByb3BlcnRpZXMreG1sIi8+PC9UeXBlcz5QSwMECgAAAAAAAAAhALVVMCNMAgAATAIAAAsAAABfcmVscy8ucmVsczw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4NCjxSZWxhdGlvbnNoaXBzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMiPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDMiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZW5kZWQtcHJvcGVydGllcyIgVGFyZ2V0PSJkb2NQcm9wcy9hcHAueG1sIi8+PFJlbGF0aW9uc2hpcCBJZD0icklkMiIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzL21ldGFkYXRhL2NvcmUtcHJvcGVydGllcyIgVGFyZ2V0PSJkb2NQcm9wcy9jb3JlLnhtbCIvPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDEiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvb2ZmaWNlRG9jdW1lbnQiIFRhcmdldD0ieGwvd29ya2Jvb2sueG1sIi8+PC9SZWxhdGlvbnNoaXBzPlBLAwQKAAAAAAAAACEAunCeZsoGAADKBgAADwAAAHhsL3dvcmtib29rLnhtbDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4NCjx3b3JrYm9vayB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE1IHhyIHhyNiB4cjEwIHhyMiIgeG1sbnM6eDE1PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvbWFpbiIgeG1sbnM6eHI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxNC9yZXZpc2lvbiIgeG1sbnM6eHI2PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTYvcmV2aXNpb242IiB4bWxuczp4cjEwPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTYvcmV2aXNpb24xMCIgeG1sbnM6eHIyPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTUvcmV2aXNpb24yIj48ZmlsZVZlcnNpb24gYXBwTmFtZT0ieGwiIGxhc3RFZGl0ZWQ9IjciIGxvd2VzdEVkaXRlZD0iNyIgcnVwQnVpbGQ9IjIxMTI2Ii8+PHdvcmtib29rUHIgZGVmYXVsdFRoZW1lVmVyc2lvbj0iMTY2OTI1Ii8+PG1jOkFsdGVybmF0ZUNvbnRlbnQgeG1sbnM6bWM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2Ij48bWM6Q2hvaWNlIFJlcXVpcmVzPSJ4MTUiPjx4MTVhYzphYnNQYXRoIHVybD0iSDpcVFJFQlx0cmViLWV4cG9ydFx0ZW1wbGF0ZVwiIHhtbG5zOngxNWFjPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvYWMiLz48L21jOkNob2ljZT48L21jOkFsdGVybmF0ZUNvbnRlbnQ+PHhyOnJldmlzaW9uUHRyIHJldklETGFzdFNhdmU9IjAiIGRvY3VtZW50SWQ9Ijhfe0Q4NThGOUY3LTBEOTItNEFFNC04QTQyLTQ4MENCMzU5QjYyRH0iIHhyNjpjb2F1dGhWZXJzaW9uTGFzdD0iNDAiIHhyNjpjb2F1dGhWZXJzaW9uTWF4PSI0MCIgeHIxMDp1aWRMYXN0U2F2ZT0iezAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMH0iLz48Ym9va1ZpZXdzPjx3b3JrYm9va1ZpZXcgeFdpbmRvdz0iMCIgeVdpbmRvdz0iMCIgd2luZG93V2lkdGg9IjI0NTcwIiB3aW5kb3dIZWlnaHQ9IjExMTMwIiB4cjI6dWlkPSJ7REU0RTdEMzUtNDkyRC00MEQ3LTk5MjUtNDY0N0Y1ODdFMURFfSIvPjwvYm9va1ZpZXdzPjxzaGVldHM+PHNoZWV0IG5hbWU9IlNoZWV0MSIgc2hlZXRJZD0iMSIgcjppZD0icklkMSIvPjwvc2hlZXRzPjxjYWxjUHIgY2FsY0lkPSIxOTEwMjkiLz48ZXh0THN0PjxleHQgdXJpPSJ7MTQwQTcwOTQtMEUzNS00ODkyLTg0MzItQzREMkU1N0VERUI1fSIgeG1sbnM6eDE1PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvbWFpbiI+PHgxNTp3b3JrYm9va1ByIGNoYXJ0VHJhY2tpbmdSZWZCYXNlPSIxIi8+PC9leHQ+PC9leHRMc3Q+PC93b3JrYm9vaz5QSwMECgAAAAAAAAAhAIE+lJe6AgAAugIAABoAAAB4bC9fcmVscy93b3JrYm9vay54bWwucmVsczw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4NCjxSZWxhdGlvbnNoaXBzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMiPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDMiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvc3R5bGVzIiBUYXJnZXQ9InN0eWxlcy54bWwiLz48UmVsYXRpb25zaGlwIElkPSJySWQyIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3RoZW1lIiBUYXJnZXQ9InRoZW1lL3RoZW1lMS54bWwiLz48UmVsYXRpb25zaGlwIElkPSJySWQxIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3dvcmtzaGVldCIgVGFyZ2V0PSJ3b3Jrc2hlZXRzL3NoZWV0MS54bWwiLz48UmVsYXRpb25zaGlwIElkPSJySWQ0IiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3NoYXJlZFN0cmluZ3MiIFRhcmdldD0ic2hhcmVkU3RyaW5ncy54bWwiLz48L1JlbGF0aW9uc2hpcHM+UEsDBAoAAAAAAAAAIQACrURzpAMAAKQDAAAYAAAAeGwvd29ya3NoZWV0cy9zaGVldDEueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHdvcmtzaGVldCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE0YWMgeHIgeHIyIHhyMyIgeG1sbnM6eDE0YWM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAwOS85L2FjIiB4bWxuczp4cj0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDE0L3JldmlzaW9uIiB4bWxuczp4cjI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxNS9yZXZpc2lvbjIiIHhtbG5zOnhyMz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDE2L3JldmlzaW9uMyIgeHI6dWlkPSJ7MEQ4RTVDQTItNUM5RS00RDRCLTk0QzUtRjM1QzA0MUYzOUJEfSI+PGRpbWVuc2lvbiByZWY9IkExIi8+PHNoZWV0Vmlld3M+PHNoZWV0VmlldyB0YWJTZWxlY3RlZD0iMSIgd29ya2Jvb2tWaWV3SWQ9IjAiLz48L3NoZWV0Vmlld3M+PHNoZWV0Rm9ybWF0UHIgZGVmYXVsdFJvd0hlaWdodD0iMTUiIHgxNGFjOmR5RGVzY2VudD0iMC4yNSIvPjxzaGVldERhdGEvPjxwYWdlTWFyZ2lucyBsZWZ0PSIwLjciIHJpZ2h0PSIwLjciIHRvcD0iMC43NSIgYm90dG9tPSIwLjc1IiBoZWFkZXI9IjAuMyIgZm9vdGVyPSIwLjMiLz48L3dvcmtzaGVldD5QSwMECgAAAAAAAAAhAMEXEL7GIAAAxiAAABMAAAB4bC90aGVtZS90aGVtZTEueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPGE6dGhlbWUgeG1sbnM6YT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL2RyYXdpbmdtbC8yMDA2L21haW4iIG5hbWU9Ik9mZmljZSBUaGVtZSI+PGE6dGhlbWVFbGVtZW50cz48YTpjbHJTY2hlbWUgbmFtZT0iT2ZmaWNlIj48YTpkazE+PGE6c3lzQ2xyIHZhbD0id2luZG93VGV4dCIgbGFzdENscj0iMDAwMDAwIi8+PC9hOmRrMT48YTpsdDE+PGE6c3lzQ2xyIHZhbD0id2luZG93IiBsYXN0Q2xyPSJGRkZGRkYiLz48L2E6bHQxPjxhOmRrMj48YTpzcmdiQ2xyIHZhbD0iNDQ1NDZBIi8+PC9hOmRrMj48YTpsdDI+PGE6c3JnYkNsciB2YWw9IkU3RTZFNiIvPjwvYTpsdDI+PGE6YWNjZW50MT48YTpzcmdiQ2xyIHZhbD0iNDQ3MkM0Ii8+PC9hOmFjY2VudDE+PGE6YWNjZW50Mj48YTpzcmdiQ2xyIHZhbD0iRUQ3RDMxIi8+PC9hOmFjY2VudDI+PGE6YWNjZW50Mz48YTpzcmdiQ2xyIHZhbD0iQTVBNUE1Ii8+PC9hOmFjY2VudDM+PGE6YWNjZW50ND48YTpzcmdiQ2xyIHZhbD0iRkZDMDAwIi8+PC9hOmFjY2VudDQ+PGE6YWNjZW50NT48YTpzcmdiQ2xyIHZhbD0iNUI5QkQ1Ii8+PC9hOmFjY2VudDU+PGE6YWNjZW50Nj48YTpzcmdiQ2xyIHZhbD0iNzBBRDQ3Ii8+PC9hOmFjY2VudDY+PGE6aGxpbms+PGE6c3JnYkNsciB2YWw9IjA1NjNDMSIvPjwvYTpobGluaz48YTpmb2xIbGluaz48YTpzcmdiQ2xyIHZhbD0iOTU0RjcyIi8+PC9hOmZvbEhsaW5rPjwvYTpjbHJTY2hlbWU+PGE6Zm9udFNjaGVtZSBuYW1lPSJPZmZpY2UiPjxhOm1ham9yRm9udD48YTpsYXRpbiB0eXBlZmFjZT0iQ2FsaWJyaSBMaWdodCIgcGFub3NlPSIwMjBGMDMwMjAyMDIwNDAzMDIwNCIvPjxhOmVhIHR5cGVmYWNlPSIiLz48YTpjcyB0eXBlZmFjZT0iIi8+PGE6Zm9udCBzY3JpcHQ9IkpwYW4iIHR5cGVmYWNlPSLmuLjjgrTjgrfjg4Pjgq8gTGlnaHQiLz48YTpmb250IHNjcmlwdD0iSGFuZyIgdHlwZWZhY2U9IuunkeydgCDqs6DrlJUiLz48YTpmb250IHNjcmlwdD0iSGFucyIgdHlwZWZhY2U9Iuetiee6vyBMaWdodCIvPjxhOmZvbnQgc2NyaXB0PSJIYW50IiB0eXBlZmFjZT0i5paw57Sw5piO6auUIi8+PGE6Zm9udCBzY3JpcHQ9IkFyYWIiIHR5cGVmYWNlPSJUaW1lcyBOZXcgUm9tYW4iLz48YTpmb250IHNjcmlwdD0iSGViciIgdHlwZWZhY2U9IlRpbWVzIE5ldyBSb21hbiIvPjxhOmZvbnQgc2NyaXB0PSJUaGFpIiB0eXBlZmFjZT0iVGFob21hIi8+PGE6Zm9udCBzY3JpcHQ9IkV0aGkiIHR5cGVmYWNlPSJOeWFsYSIvPjxhOmZvbnQgc2NyaXB0PSJCZW5nIiB0eXBlZmFjZT0iVnJpbmRhIi8+PGE6Zm9udCBzY3JpcHQ9Ikd1anIiIHR5cGVmYWNlPSJTaHJ1dGkiLz48YTpmb250IHNjcmlwdD0iS2htciIgdHlwZWZhY2U9Ik1vb2xCb3JhbiIvPjxhOmZvbnQgc2NyaXB0PSJLbmRhIiB0eXBlZmFjZT0iVHVuZ2EiLz48YTpmb250IHNjcmlwdD0iR3VydSIgdHlwZWZhY2U9IlJhYXZpIi8+PGE6Zm9udCBzY3JpcHQ9IkNhbnMiIHR5cGVmYWNlPSJFdXBoZW1pYSIvPjxhOmZvbnQgc2NyaXB0PSJDaGVyIiB0eXBlZmFjZT0iUGxhbnRhZ2VuZXQgQ2hlcm9rZWUiLz48YTpmb250IHNjcmlwdD0iWWlpaSIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBZaSBCYWl0aSIvPjxhOmZvbnQgc2NyaXB0PSJUaWJ0IiB0eXBlZmFjZT0iTWljcm9zb2Z0IEhpbWFsYXlhIi8+PGE6Zm9udCBzY3JpcHQ9IlRoYWEiIHR5cGVmYWNlPSJNViBCb2xpIi8+PGE6Zm9udCBzY3JpcHQ9IkRldmEiIHR5cGVmYWNlPSJNYW5nYWwiLz48YTpmb250IHNjcmlwdD0iVGVsdSIgdHlwZWZhY2U9IkdhdXRhbWkiLz48YTpmb250IHNjcmlwdD0iVGFtbCIgdHlwZWZhY2U9IkxhdGhhIi8+PGE6Zm9udCBzY3JpcHQ9IlN5cmMiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPjxhOmZvbnQgc2NyaXB0PSJPcnlhIiB0eXBlZmFjZT0iS2FsaW5nYSIvPjxhOmZvbnQgc2NyaXB0PSJNbHltIiB0eXBlZmFjZT0iS2FydGlrYSIvPjxhOmZvbnQgc2NyaXB0PSJMYW9vIiB0eXBlZmFjZT0iRG9rQ2hhbXBhIi8+PGE6Zm9udCBzY3JpcHQ9IlNpbmgiIHR5cGVmYWNlPSJJc2tvb2xhIFBvdGEiLz48YTpmb250IHNjcmlwdD0iTW9uZyIgdHlwZWZhY2U9Ik1vbmdvbGlhbiBCYWl0aSIvPjxhOmZvbnQgc2NyaXB0PSJWaWV0IiB0eXBlZmFjZT0iVGltZXMgTmV3IFJvbWFuIi8+PGE6Zm9udCBzY3JpcHQ9IlVpZ2giIHR5cGVmYWNlPSJNaWNyb3NvZnQgVWlnaHVyIi8+PGE6Zm9udCBzY3JpcHQ9Ikdlb3IiIHR5cGVmYWNlPSJTeWxmYWVuIi8+PGE6Zm9udCBzY3JpcHQ9IkFybW4iIHR5cGVmYWNlPSJBcmlhbCIvPjxhOmZvbnQgc2NyaXB0PSJCdWdpIiB0eXBlZmFjZT0iTGVlbGF3YWRlZSBVSSIvPjxhOmZvbnQgc2NyaXB0PSJCb3BvIiB0eXBlZmFjZT0iTWljcm9zb2Z0IEpoZW5nSGVpIi8+PGE6Zm9udCBzY3JpcHQ9IkphdmEiIHR5cGVmYWNlPSJKYXZhbmVzZSBUZXh0Ii8+PGE6Zm9udCBzY3JpcHQ9Ikxpc3UiIHR5cGVmYWNlPSJTZWdvZSBVSSIvPjxhOmZvbnQgc2NyaXB0PSJNeW1yIiB0eXBlZmFjZT0iTXlhbm1hciBUZXh0Ii8+PGE6Zm9udCBzY3JpcHQ9Ik5rb28iIHR5cGVmYWNlPSJFYnJpbWEiLz48YTpmb250IHNjcmlwdD0iT2xjayIgdHlwZWZhY2U9Ik5pcm1hbGEgVUkiLz48YTpmb250IHNjcmlwdD0iT3NtYSIgdHlwZWZhY2U9IkVicmltYSIvPjxhOmZvbnQgc2NyaXB0PSJQaGFnIiB0eXBlZmFjZT0iUGhhZ3NwYSIvPjxhOmZvbnQgc2NyaXB0PSJTeXJuIiB0eXBlZmFjZT0iRXN0cmFuZ2VsbyBFZGVzc2EiLz48YTpmb250IHNjcmlwdD0iU3lyaiIgdHlwZWZhY2U9IkVzdHJhbmdlbG8gRWRlc3NhIi8+PGE6Zm9udCBzY3JpcHQ9IlN5cmUiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPjxhOmZvbnQgc2NyaXB0PSJTb3JhIiB0eXBlZmFjZT0iTmlybWFsYSBVSSIvPjxhOmZvbnQgc2NyaXB0PSJUYWxlIiB0eXBlZmFjZT0iTWljcm9zb2Z0IFRhaSBMZSIvPjxhOmZvbnQgc2NyaXB0PSJUYWx1IiB0eXBlZmFjZT0iTWljcm9zb2Z0IE5ldyBUYWkgTHVlIi8+PGE6Zm9udCBzY3JpcHQ9IlRmbmciIHR5cGVmYWNlPSJFYnJpbWEiLz48L2E6bWFqb3JGb250PjxhOm1pbm9yRm9udD48YTpsYXRpbiB0eXBlZmFjZT0iQ2FsaWJyaSIgcGFub3NlPSIwMjBGMDUwMjAyMDIwNDAzMDIwNCIvPjxhOmVhIHR5cGVmYWNlPSIiLz48YTpjcyB0eXBlZmFjZT0iIi8+PGE6Zm9udCBzY3JpcHQ9IkpwYW4iIHR5cGVmYWNlPSLmuLjjgrTjgrfjg4Pjgq8iLz48YTpmb250IHNjcmlwdD0iSGFuZyIgdHlwZWZhY2U9IuunkeydgCDqs6DrlJUiLz48YTpmb250IHNjcmlwdD0iSGFucyIgdHlwZWZhY2U9Iuetiee6vyIvPjxhOmZvbnQgc2NyaXB0PSJIYW50IiB0eXBlZmFjZT0i5paw57Sw5piO6auUIi8+PGE6Zm9udCBzY3JpcHQ9IkFyYWIiIHR5cGVmYWNlPSJBcmlhbCIvPjxhOmZvbnQgc2NyaXB0PSJIZWJyIiB0eXBlZmFjZT0iQXJpYWwiLz48YTpmb250IHNjcmlwdD0iVGhhaSIgdHlwZWZhY2U9IlRhaG9tYSIvPjxhOmZvbnQgc2NyaXB0PSJFdGhpIiB0eXBlZmFjZT0iTnlhbGEiLz48YTpmb250IHNjcmlwdD0iQmVuZyIgdHlwZWZhY2U9IlZyaW5kYSIvPjxhOmZvbnQgc2NyaXB0PSJHdWpyIiB0eXBlZmFjZT0iU2hydXRpIi8+PGE6Zm9udCBzY3JpcHQ9IktobXIiIHR5cGVmYWNlPSJEYXVuUGVuaCIvPjxhOmZvbnQgc2NyaXB0PSJLbmRhIiB0eXBlZmFjZT0iVHVuZ2EiLz48YTpmb250IHNjcmlwdD0iR3VydSIgdHlwZWZhY2U9IlJhYXZpIi8+PGE6Zm9udCBzY3JpcHQ9IkNhbnMiIHR5cGVmYWNlPSJFdXBoZW1pYSIvPjxhOmZvbnQgc2NyaXB0PSJDaGVyIiB0eXBlZmFjZT0iUGxhbnRhZ2VuZXQgQ2hlcm9rZWUiLz48YTpmb250IHNjcmlwdD0iWWlpaSIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBZaSBCYWl0aSIvPjxhOmZvbnQgc2NyaXB0PSJUaWJ0IiB0eXBlZmFjZT0iTWljcm9zb2Z0IEhpbWFsYXlhIi8+PGE6Zm9udCBzY3JpcHQ9IlRoYWEiIHR5cGVmYWNlPSJNViBCb2xpIi8+PGE6Zm9udCBzY3JpcHQ9IkRldmEiIHR5cGVmYWNlPSJNYW5nYWwiLz48YTpmb250IHNjcmlwdD0iVGVsdSIgdHlwZWZhY2U9IkdhdXRhbWkiLz48YTpmb250IHNjcmlwdD0iVGFtbCIgdHlwZWZhY2U9IkxhdGhhIi8+PGE6Zm9udCBzY3JpcHQ9IlN5cmMiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPjxhOmZvbnQgc2NyaXB0PSJPcnlhIiB0eXBlZmFjZT0iS2FsaW5nYSIvPjxhOmZvbnQgc2NyaXB0PSJNbHltIiB0eXBlZmFjZT0iS2FydGlrYSIvPjxhOmZvbnQgc2NyaXB0PSJMYW9vIiB0eXBlZmFjZT0iRG9rQ2hhbXBhIi8+PGE6Zm9udCBzY3JpcHQ9IlNpbmgiIHR5cGVmYWNlPSJJc2tvb2xhIFBvdGEiLz48YTpmb250IHNjcmlwdD0iTW9uZyIgdHlwZWZhY2U9Ik1vbmdvbGlhbiBCYWl0aSIvPjxhOmZvbnQgc2NyaXB0PSJWaWV0IiB0eXBlZmFjZT0iQXJpYWwiLz48YTpmb250IHNjcmlwdD0iVWlnaCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBVaWdodXIiLz48YTpmb250IHNjcmlwdD0iR2VvciIgdHlwZWZhY2U9IlN5bGZhZW4iLz48YTpmb250IHNjcmlwdD0iQXJtbiIgdHlwZWZhY2U9IkFyaWFsIi8+PGE6Zm9udCBzY3JpcHQ9IkJ1Z2kiIHR5cGVmYWNlPSJMZWVsYXdhZGVlIFVJIi8+PGE6Zm9udCBzY3JpcHQ9IkJvcG8iIHR5cGVmYWNlPSJNaWNyb3NvZnQgSmhlbmdIZWkiLz48YTpmb250IHNjcmlwdD0iSmF2YSIgdHlwZWZhY2U9IkphdmFuZXNlIFRleHQiLz48YTpmb250IHNjcmlwdD0iTGlzdSIgdHlwZWZhY2U9IlNlZ29lIFVJIi8+PGE6Zm9udCBzY3JpcHQ9Ik15bXIiIHR5cGVmYWNlPSJNeWFubWFyIFRleHQiLz48YTpmb250IHNjcmlwdD0iTmtvbyIgdHlwZWZhY2U9IkVicmltYSIvPjxhOmZvbnQgc2NyaXB0PSJPbGNrIiB0eXBlZmFjZT0iTmlybWFsYSBVSSIvPjxhOmZvbnQgc2NyaXB0PSJPc21hIiB0eXBlZmFjZT0iRWJyaW1hIi8+PGE6Zm9udCBzY3JpcHQ9IlBoYWciIHR5cGVmYWNlPSJQaGFnc3BhIi8+PGE6Zm9udCBzY3JpcHQ9IlN5cm4iIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPjxhOmZvbnQgc2NyaXB0PSJTeXJqIiB0eXBlZmFjZT0iRXN0cmFuZ2VsbyBFZGVzc2EiLz48YTpmb250IHNjcmlwdD0iU3lyZSIgdHlwZWZhY2U9IkVzdHJhbmdlbG8gRWRlc3NhIi8+PGE6Zm9udCBzY3JpcHQ9IlNvcmEiIHR5cGVmYWNlPSJOaXJtYWxhIFVJIi8+PGE6Zm9udCBzY3JpcHQ9IlRhbGUiIHR5cGVmYWNlPSJNaWNyb3NvZnQgVGFpIExlIi8+PGE6Zm9udCBzY3JpcHQ9IlRhbHUiIHR5cGVmYWNlPSJNaWNyb3NvZnQgTmV3IFRhaSBMdWUiLz48YTpmb250IHNjcmlwdD0iVGZuZyIgdHlwZWZhY2U9IkVicmltYSIvPjwvYTptaW5vckZvbnQ+PC9hOmZvbnRTY2hlbWU+PGE6Zm10U2NoZW1lIG5hbWU9Ik9mZmljZSI+PGE6ZmlsbFN0eWxlTHN0PjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+PGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPSIxIj48YTpnc0xzdD48YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpsdW1Nb2QgdmFsPSIxMTAwMDAiLz48YTpzYXRNb2QgdmFsPSIxMDUwMDAiLz48YTp0aW50IHZhbD0iNjcwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9IjUwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6bHVtTW9kIHZhbD0iMTA1MDAwIi8+PGE6c2F0TW9kIHZhbD0iMTAzMDAwIi8+PGE6dGludCB2YWw9IjczMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPSIxMDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpsdW1Nb2QgdmFsPSIxMDUwMDAiLz48YTpzYXRNb2QgdmFsPSIxMDkwMDAiLz48YTp0aW50IHZhbD0iODEwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48L2E6Z3NMc3Q+PGE6bGluIGFuZz0iNTQwMDAwMCIgc2NhbGVkPSIwIi8+PC9hOmdyYWRGaWxsPjxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT0iMSI+PGE6Z3NMc3Q+PGE6Z3MgcG9zPSIwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6c2F0TW9kIHZhbD0iMTAzMDAwIi8+PGE6bHVtTW9kIHZhbD0iMTAyMDAwIi8+PGE6dGludCB2YWw9Ijk0MDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPSI1MDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnNhdE1vZCB2YWw9IjExMDAwMCIvPjxhOmx1bU1vZCB2YWw9IjEwMDAwMCIvPjxhOnNoYWRlIHZhbD0iMTAwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPSIxMDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpsdW1Nb2QgdmFsPSI5OTAwMCIvPjxhOnNhdE1vZCB2YWw9IjEyMDAwMCIvPjxhOnNoYWRlIHZhbD0iNzgwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48L2E6Z3NMc3Q+PGE6bGluIGFuZz0iNTQwMDAwMCIgc2NhbGVkPSIwIi8+PC9hOmdyYWRGaWxsPjwvYTpmaWxsU3R5bGVMc3Q+PGE6bG5TdHlsZUxzdD48YTpsbiB3PSI2MzUwIiBjYXA9ImZsYXQiIGNtcGQ9InNuZyIgYWxnbj0iY3RyIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD0ic29saWQiLz48YTptaXRlciBsaW09IjgwMDAwMCIvPjwvYTpsbj48YTpsbiB3PSIxMjcwMCIgY2FwPSJmbGF0IiBjbXBkPSJzbmciIGFsZ249ImN0ciI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD48YTpwcnN0RGFzaCB2YWw9InNvbGlkIi8+PGE6bWl0ZXIgbGltPSI4MDAwMDAiLz48L2E6bG4+PGE6bG4gdz0iMTkwNTAiIGNhcD0iZmxhdCIgY21wZD0ic25nIiBhbGduPSJjdHIiPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPSJzb2xpZCIvPjxhOm1pdGVyIGxpbT0iODAwMDAwIi8+PC9hOmxuPjwvYTpsblN0eWxlTHN0PjxhOmVmZmVjdFN0eWxlTHN0PjxhOmVmZmVjdFN0eWxlPjxhOmVmZmVjdExzdC8+PC9hOmVmZmVjdFN0eWxlPjxhOmVmZmVjdFN0eWxlPjxhOmVmZmVjdExzdC8+PC9hOmVmZmVjdFN0eWxlPjxhOmVmZmVjdFN0eWxlPjxhOmVmZmVjdExzdD48YTpvdXRlclNoZHcgYmx1clJhZD0iNTcxNTAiIGRpc3Q9IjE5MDUwIiBkaXI9IjU0MDAwMDAiIGFsZ249ImN0ciIgcm90V2l0aFNoYXBlPSIwIj48YTpzcmdiQ2xyIHZhbD0iMDAwMDAwIj48YTphbHBoYSB2YWw9IjYzMDAwIi8+PC9hOnNyZ2JDbHI+PC9hOm91dGVyU2hkdz48L2E6ZWZmZWN0THN0PjwvYTplZmZlY3RTdHlsZT48L2E6ZWZmZWN0U3R5bGVMc3Q+PGE6YmdGaWxsU3R5bGVMc3Q+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI5NTAwMCIvPjxhOnNhdE1vZCB2YWw9IjE3MDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOnNvbGlkRmlsbD48YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9IjEiPjxhOmdzTHN0PjxhOmdzIHBvcz0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI5MzAwMCIvPjxhOnNhdE1vZCB2YWw9IjE1MDAwMCIvPjxhOnNoYWRlIHZhbD0iOTgwMDAiLz48YTpsdW1Nb2QgdmFsPSIxMDIwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9IjUwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9Ijk4MDAwIi8+PGE6c2F0TW9kIHZhbD0iMTMwMDAwIi8+PGE6c2hhZGUgdmFsPSI5MDAwMCIvPjxhOmx1bU1vZCB2YWw9IjEwMzAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjxhOmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6c2hhZGUgdmFsPSI2MzAwMCIvPjxhOnNhdE1vZCB2YWw9IjEyMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjwvYTpnc0xzdD48YTpsaW4gYW5nPSI1NDAwMDAwIiBzY2FsZWQ9IjAiLz48L2E6Z3JhZEZpbGw+PC9hOmJnRmlsbFN0eWxlTHN0PjwvYTpmbXRTY2hlbWU+PC9hOnRoZW1lRWxlbWVudHM+PGE6b2JqZWN0RGVmYXVsdHMvPjxhOmV4dHJhQ2xyU2NoZW1lTHN0Lz48YTpleHRMc3Q+PGE6ZXh0IHVyaT0iezA1QTRDMjVDLTA4NUUtNDM0MC04NUEzLUE1NTMxRTUxMERCMn0iPjx0aG0xNTp0aGVtZUZhbWlseSB4bWxuczp0aG0xNT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvdGhlbWVtbC8yMDEyL21haW4iIG5hbWU9Ik9mZmljZSBUaGVtZSIgaWQ9Ins2MkY5MzlCNi05M0FGLTREQjgtOUM2Qi1ENkM3REZEQzU4OUZ9IiB2aWQ9Ins0QTNDNDZFOC02MUNDLTQ2MDMtQTU4OS03NDIyQTQ3QThFNEF9Ii8+PC9hOmV4dD48L2E6ZXh0THN0PjwvYTp0aGVtZT5QSwMECgAAAAAAAAAhAHmhgGxSBgAAUgYAAA0AAAB4bC9zdHlsZXMueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHN0eWxlU2hlZXQgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgeG1sbnM6bWM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2IiBtYzpJZ25vcmFibGU9IngxNGFjIHgxNnIyIHhyIiB4bWxuczp4MTRhYz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWMiIHhtbG5zOngxNnIyPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTUvMDIvbWFpbiIgeG1sbnM6eHI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxNC9yZXZpc2lvbiI+PGZvbnRzIGNvdW50PSIxIiB4MTRhYzprbm93bkZvbnRzPSIxIj48Zm9udD48c3ogdmFsPSIxMSIvPjxjb2xvciB0aGVtZT0iMSIvPjxuYW1lIHZhbD0iQ2FsaWJyaSIvPjxmYW1pbHkgdmFsPSIyIi8+PHNjaGVtZSB2YWw9Im1pbm9yIi8+PC9mb250PjwvZm9udHM+PGZpbGxzIGNvdW50PSIyIj48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9Im5vbmUiLz48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJncmF5MTI1Ii8+PC9maWxsPjwvZmlsbHM+PGJvcmRlcnMgY291bnQ9IjEiPjxib3JkZXI+PGxlZnQvPjxyaWdodC8+PHRvcC8+PGJvdHRvbS8+PGRpYWdvbmFsLz48L2JvcmRlcj48L2JvcmRlcnM+PGNlbGxTdHlsZVhmcyBjb3VudD0iMSI+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiLz48L2NlbGxTdHlsZVhmcz48Y2VsbFhmcyBjb3VudD0iMSI+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIHhmSWQ9IjAiLz48L2NlbGxYZnM+PGNlbGxTdHlsZXMgY291bnQ9IjEiPjxjZWxsU3R5bGUgbmFtZT0iTm9ybWFsIiB4ZklkPSIwIiBidWlsdGluSWQ9IjAiLz48L2NlbGxTdHlsZXM+PGR4ZnMgY291bnQ9IjAiLz48dGFibGVTdHlsZXMgY291bnQ9IjAiIGRlZmF1bHRUYWJsZVN0eWxlPSJUYWJsZVN0eWxlTWVkaXVtMiIgZGVmYXVsdFBpdm90U3R5bGU9IlBpdm90U3R5bGVMaWdodDE2Ii8+PGV4dExzdD48ZXh0IHVyaT0ie0VCNzlERUYyLTgwQjgtNDNlNS05NUJELTU0Q0JEREY5MDIwQ30iIHhtbG5zOngxND0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvbWFpbiI+PHgxNDpzbGljZXJTdHlsZXMgZGVmYXVsdFNsaWNlclN0eWxlPSJTbGljZXJTdHlsZUxpZ2h0MSIvPjwvZXh0PjxleHQgdXJpPSJ7OTI2MEE1MTAtRjMwMS00NmE4LTg2MzUtRjUxMkQ2NEJFNUY1fSIgeG1sbnM6eDE1PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvbWFpbiI+PHgxNTp0aW1lbGluZVN0eWxlcyBkZWZhdWx0VGltZWxpbmVTdHlsZT0iVGltZVNsaWNlclN0eWxlTGlnaHQxIi8+PC9leHQ+PC9leHRMc3Q+PC9zdHlsZVNoZWV0PlBLAwQKAAAAAAAAACEA0IywC4EAAACBAAAAFAAAAHhsL3NoYXJlZFN0cmluZ3MueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHNzdCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIi8+UEsDBAoAAAAAAAAAIQDcCx83XQIAAF0CAAARAAAAZG9jUHJvcHMvY29yZS54bWw8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+DQo8Y3A6Y29yZVByb3BlcnRpZXMgeG1sbnM6Y3A9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvbWV0YWRhdGEvY29yZS1wcm9wZXJ0aWVzIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOmRjdGVybXM9Imh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy8iIHhtbG5zOmRjbWl0eXBlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj48ZGM6Y3JlYXRvcj5kdW5jYW48L2RjOmNyZWF0b3I+PGNwOmxhc3RNb2RpZmllZEJ5PmR1bmNhbjwvY3A6bGFzdE1vZGlmaWVkQnk+PGRjdGVybXM6Y3JlYXRlZCB4c2k6dHlwZT0iZGN0ZXJtczpXM0NEVEYiPjIwMTktMDEtMzFUMTY6NDg6MDNaPC9kY3Rlcm1zOmNyZWF0ZWQ+PGRjdGVybXM6bW9kaWZpZWQgeHNpOnR5cGU9ImRjdGVybXM6VzNDRFRGIj4yMDE5LTAxLTMxVDE2OjQ4OjI4WjwvZGN0ZXJtczptb2RpZmllZD48L2NwOmNvcmVQcm9wZXJ0aWVzPlBLAwQKAAAAAAAAACEAYUkJEBEDAAARAwAAEAAAAGRvY1Byb3BzL2FwcC54bWw8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+DQo8UHJvcGVydGllcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvZXh0ZW5kZWQtcHJvcGVydGllcyIgeG1sbnM6dnQ9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2RvY1Byb3BzVlR5cGVzIj48QXBwbGljYXRpb24+TWljcm9zb2Z0IEV4Y2VsPC9BcHBsaWNhdGlvbj48RG9jU2VjdXJpdHk+MDwvRG9jU2VjdXJpdHk+PFNjYWxlQ3JvcD5mYWxzZTwvU2NhbGVDcm9wPjxIZWFkaW5nUGFpcnM+PHZ0OnZlY3RvciBzaXplPSIyIiBiYXNlVHlwZT0idmFyaWFudCI+PHZ0OnZhcmlhbnQ+PHZ0Omxwc3RyPldvcmtzaGVldHM8L3Z0Omxwc3RyPjwvdnQ6dmFyaWFudD48dnQ6dmFyaWFudD48dnQ6aTQ+MTwvdnQ6aTQ+PC92dDp2YXJpYW50PjwvdnQ6dmVjdG9yPjwvSGVhZGluZ1BhaXJzPjxUaXRsZXNPZlBhcnRzPjx2dDp2ZWN0b3Igc2l6ZT0iMSIgYmFzZVR5cGU9Imxwc3RyIj48dnQ6bHBzdHI+U2hlZXQxPC92dDpscHN0cj48L3Z0OnZlY3Rvcj48L1RpdGxlc09mUGFydHM+PENvbXBhbnk+PC9Db21wYW55PjxMaW5rc1VwVG9EYXRlPmZhbHNlPC9MaW5rc1VwVG9EYXRlPjxTaGFyZWREb2M+ZmFsc2U8L1NoYXJlZERvYz48SHlwZXJsaW5rc0NoYW5nZWQ+ZmFsc2U8L0h5cGVybGlua3NDaGFuZ2VkPjxBcHBWZXJzaW9uPjE2LjAzMDA8L0FwcFZlcnNpb24+PC9Qcm9wZXJ0aWVzPlBLAQIUAAoAAAAAAAAAIQBi7p1okAQAAJAEAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1sUEsBAhQACgAAAAAAAAAhALVVMCNMAgAATAIAAAsAAAAAAAAAAAAAAAAAwQQAAF9yZWxzLy5yZWxzUEsBAhQACgAAAAAAAAAhALpwnmbKBgAAygYAAA8AAAAAAAAAAAAAAAAANgcAAHhsL3dvcmtib29rLnhtbFBLAQIUAAoAAAAAAAAAIQCBPpSXugIAALoCAAAaAAAAAAAAAAAAAAAAAC0OAAB4bC9fcmVscy93b3JrYm9vay54bWwucmVsc1BLAQIUAAoAAAAAAAAAIQACrURzpAMAAKQDAAAYAAAAAAAAAAAAAAAAAB8RAAB4bC93b3Jrc2hlZXRzL3NoZWV0MS54bWxQSwECFAAKAAAAAAAAACEAwRcQvsYgAADGIAAAEwAAAAAAAAAAAAAAAAD5FAAAeGwvdGhlbWUvdGhlbWUxLnhtbFBLAQIUAAoAAAAAAAAAIQB5oYBsUgYAAFIGAAANAAAAAAAAAAAAAAAAAPA1AAB4bC9zdHlsZXMueG1sUEsBAhQACgAAAAAAAAAhANCMsAuBAAAAgQAAABQAAAAAAAAAAAAAAAAAbTwAAHhsL3NoYXJlZFN0cmluZ3MueG1sUEsBAhQACgAAAAAAAAAhANwLHzddAgAAXQIAABEAAAAAAAAAAAAAAAAAID0AAGRvY1Byb3BzL2NvcmUueG1sUEsBAhQACgAAAAAAAAAhAGFJCRARAwAAEQMAABAAAAAAAAAAAAAAAAAArD8AAGRvY1Byb3BzL2FwcC54bWxQSwUGAAAAAAoACgCAAgAA60IAAAAA";var Ee=i=>i!==null&&typeof i=="object"&&"row"in i&&"column"in i;var L=class i{start_;end_;constructor(e,t=e,r=!1){this.end_=this.PatchNull(t),this.start_=this.PatchNull(e),r&&this.Normalize()}static FromColumn(e){return new i({row:1/0,column:e})}static FromRow(e){return new i({row:e,column:1/0})}static ColumnToLabel(e){let t=String.fromCharCode(65+e%26);for(;e>25;)e=Math.floor(e/26)-1,t=String.fromCharCode(65+e%26)+t;return t}static CellAddressToLabel(e,t=!1){if(e.row===1/0&&e.column===1/0)throw new Error("this is going to break something");let r=t?`${e.sheet_id||0}!`:"";return e.row===1/0?r+(e.absolute_column?"$":"")+this.ColumnToLabel(e.column):e.column===1/0?r+(e.absolute_row?"$":"")+(e.row+1):r+(e.absolute_column?"$":"")+this.ColumnToLabel(e.column)+(e.absolute_row?"$":"")+(e.row+1)+(e.spill?"#":"")}static Join(e,...t){let r=new i(e.start,e.end);for(let s of t)s&&(r.ConsumeAddress(s.start),r.ConsumeAddress(s.end));return r}static Bleed(e,t=1){return new i({row:Math.max(0,e.start.row-t),column:Math.max(0,e.start.column-t),sheet_id:e.start.sheet_id},{row:e.end.row+t,column:e.end.column+t})}static PatchArea(e,t){let{before_column:r,column_count:s,before_row:n,row_count:o}=t,a=new i(e.start,e.end),l=e.start.sheet_id;if(s&&r<=a.end.column){if(s>0)r<=a.start.column?a.Shift(0,s):r>a.start.column&&r<=a.end.column?a.ConsumeAddress({row:a.end.row,column:a.end.column+s}):console.warn("AA X case 1",r,s,JSON.stringify(a));else if(s<0)if(r-s<=a.start.column)a.Shift(0,s);else{if(r<=a.start.column&&r-s>a.end.column)return!1;if(r<=a.start.column){let c=r-s-1;a=new i({row:a.start.row,column:c+1+s,sheet_id:l},{row:a.end.row,column:a.end.column+s})}else r<=a.end.column?r-s-1>=a.end.column?a=new i({row:a.start.row,column:a.start.column,sheet_id:l},{row:a.end.row,column:r-1}):a=new i({row:a.start.row,column:a.start.column,sheet_id:l},{row:a.end.row,column:a.start.column+a.columns+s-1}):console.warn("AA X case 2",r,s,JSON.stringify(a))}}if(o&&n<=a.end.row){if(o>0)n<=a.start.row?a.Shift(o,0):n>a.start.row&&n<=a.end.row?a.ConsumeAddress({row:a.end.row+o,column:a.end.column}):console.warn("AA X case 3",n,o,JSON.stringify(a));else if(o<0)if(n-o<=a.start.row)a.Shift(o,0);else{if(n<=a.start.row&&n-o>a.end.row)return!1;if(n<=a.start.row){let c=n-o-1;a=new i({column:a.start.column,row:c+1+o,sheet_id:l},{column:a.end.column,row:a.end.row+o})}else n<=a.end.row?n-o-1>=a.end.row?a=new i({column:a.start.column,row:a.start.row,sheet_id:l},{column:a.end.column,row:n-1}):a=new i({column:a.start.column,row:a.start.row,sheet_id:l},{column:a.end.column,row:a.start.row+a.rows+o-1}):console.warn("AA X case 4",n,o,JSON.stringify(a))}}return a}get start(){return{...this.start_}}set start(e){this.start_=e}get end(){return{...this.end_}}set end(e){this.end_=e}get rows(){return this.start_.row===1/0||this.end_.row===1/0?1/0:this.end_.row-this.start_.row+1}get columns(){return this.start_.column===1/0||this.end_.column===1/0?1/0:this.end_.column-this.start_.column+1}get count(){return this.rows*this.columns}get entire_sheet(){return this.entire_row&&this.entire_column}get entire_column(){return this.start_.row===1/0}get entire_row(){return this.start_.column===1/0}PatchNull(e){let t={...e};return t.row===null&&(t.row=1/0),t.column===null&&(t.column=1/0),t}SetSheetID(e){this.start_.sheet_id=e}Normalize(){let e={...this.start_},t={...this.end_};e.row===1/0||t.row===1/0?e.row=t.row=1/0:e.row>t.row&&(e.row=this.end_.row,e.absolute_row=this.end_.absolute_row,t.row=this.start_.row,t.absolute_row=this.start_.absolute_row),e.column===1/0||t.column===1/0?e.column=t.column=1/0:e.column>t.column&&(e.column=this.end_.column,e.absolute_column=this.end_.absolute_column,t.column=this.start_.column,t.absolute_column=this.start_.absolute_column),this.start_=e,this.end_=t}TopLeft(){let e={row:0,column:0};return this.entire_row||(e.column=this.start.column),this.entire_column||(e.row=this.start.row),e}BottomRight(){let e={row:0,column:0};return this.entire_row||(e.column=this.end.column),this.entire_column||(e.row=this.end.row),e}ContainsRow(e){return this.entire_column||e>=this.start_.row&&e<=this.end_.row}ContainsColumn(e){return this.entire_row||e>=this.start_.column&&e<=this.end_.column}Contains(e){return(this.entire_column||e.row>=this.start_.row&&e.row<=this.end_.row)&&(this.entire_row||e.column>=this.start_.column&&e.column<=this.end_.column)}ContainsArea(e){return this.start.column<=e.start.column&&this.end.column>=e.end.column&&this.start.row<=e.start.row&&this.end.row>=e.end.row}Intersects(e){return!(e.start.column>this.end.column||this.start.column>e.end.column||e.start.row>this.end.row||this.start.row>e.end.row)}Equals(e){return e.start_.row===this.start_.row&&e.start_.column===this.start_.column&&e.end_.row===this.end_.row&&e.end_.column===this.end_.column}Equals2(e){return e.start.row===this.start_.row&&e.start.column===this.start_.column&&e.end.row===this.end_.row&&e.end.column===this.end_.column}Clone(){return new i(this.start,this.end)}get left(){let e=new i(this.start_,this.end_);return e.end_.column=e.start_.column,e}get right(){let e=new i(this.start_,this.end_);return e.start_.column=e.end_.column,e}get top(){let e=new i(this.start_,this.end_);return e.end_.row=e.start_.row,e}get bottom(){let e=new i(this.start_,this.end_);return e.start_.row=e.end_.row,e}Shift(e,t){return this.start_.row+=e,this.start_.column+=t,this.end_.row+=e,this.end_.column+=t,this}ConsumeAddress(e){this.entire_row||(e.column<this.start_.column&&(this.start_.column=e.column),e.column>this.end_.column&&(this.end_.column=e.column)),this.entire_column||(e.row<this.start_.row&&(this.start_.row=e.row),e.row>this.end_.row&&(this.end_.row=e.row))}Reshape(e,t){return this.end_.row=this.start_.row+e-1,this.end_.column=this.start_.column+t-1,this}ConsumeArea(e){this.ConsumeAddress(e.start),this.ConsumeAddress(e.end)}Resize(e,t){return this.end_.row=this.start_.row+e-1,this.end_.column=this.start_.column+t-1,this}[Symbol.iterator](){if(this.entire_row||this.entire_column)throw new Error("don\'t iterate infinite area");let e=this.start_.row,t=this.start_.column;return{next:()=>{let r={column:t,row:e,sheet_id:this.start_.sheet_id};return t>this.end_.column?{done:!0,value:void 0}:(++e>this.end_.row&&(e=this.start_.row,t++),{value:r})}}}get spreadsheet_label(){let e;return this.entire_sheet?"":this.entire_column?(e=i.ColumnToLabel(this.start_.column),e+=":"+i.ColumnToLabel(this.end_.column),e):this.entire_row?(e=String(this.start_.row+1),e+=":"+(this.end_.row+1),e):(e=i.CellAddressToLabel(this.start_),this.columns>1||this.rows>1?e+":"+i.CellAddressToLabel(this.end_):e)}toJSON(){return{start:{...this.start_},end:{...this.end_}}}};var Rr=i=>typeof i=="object"&&!!i&&typeof i.real=="number"&&typeof i.imaginary=="number";var Zt=i=>typeof i=="object"&&!!i&&typeof i.value=="number"&&typeof i.unit=="string",Ot=["undefined","formula","string","number","boolean","object","error","complex","array","dimensioned_quantity"];var Ge=i=>{switch(typeof i){case"undefined":return 0;case"number":return 3;case"boolean":return 4;case"object":return i===null?0:Rr(i)?7:Zt(i)?9:5;case"string":return i[0]==="="?1:2;default:return 6}};var ie=class{static StringToColumn(e){let t=0;e=e.toUpperCase();for(let r=0;r<e.length;r++)t*=26,t+=e.charCodeAt(r)-64;return t-1}value;type=0;calculated;calculated_type;formatted;rendered_type;style;area;spill;merge_area;table;renderer_data;render_clean=[];note;hyperlink;editing;render_function;click_function;constructor(e,t){typeof e<"u"&&this.Set(e,t)}ValueIsNumber(){return this.type===3}ValueIsFormula(){return this.type===1}ValueIsBoolean(){return this.type===4}ValueIsComplex(){return this.type===7}FlushStyle(){this.formatted=this.rendered_type=this.style=void 0,this.render_clean=[]}FlushArray(){this.area=void 0}FlushCache(){this.calculated=this.calculated_type=this.formatted=this.rendered_type=this.render_function=this.click_function=void 0,this.render_clean=[]}Reset(){this.type=0,this.value=this.spill=this.note=this.hyperlink=this.formatted=this.rendered_type=this.style=this.calculated=this.calculated_type=this.area=this.renderer_data=this.render_function=this.click_function=void 0,this.render_clean=[]}Set(e,t=Ge(e)){this.value=e,this.type=t,this.spill=this.formatted=this.rendered_type=this.style=this.calculated=this.calculated_type=this.render_function=this.click_function=this.area=void 0,this.render_clean=[]}SetCalculatedValue(e,t=Ge(e)){e===void 0&&(e=0,t=3),this.calculated!==e&&(this.calculated=e,this.calculated_type=t,this.formatted=this.rendered_type=void 0,this.render_clean=[])}GetValue(){return this.calculated_type?this.calculated:typeof this.value=="string"&&this.value[0]==="\'"?this.value.slice(1):this.value}GetValue4(){return this.calculated_type?{type:this.calculated_type,value:this.calculated}:this.type===1?{type:3,value:0}:{type:this.type,value:typeof this.value=="string"&&this.value[0]==="\'"?this.value.slice(1):this.value}}SetNote(e){this.note=e,this.render_clean=[]}SetCalculationError(e="ERR"){this.SetCalculatedValue(e,6)}SetArray(e){this.type=0,this.value=this.formatted=this.rendered_type=this.style=this.hyperlink=this.calculated=this.calculated_type=void 0,this.area=e,this.render_clean=[]}SetArrayHead(e,t){this.type=Ge(t),this.value=t,this.formatted=this.rendered_type=this.style=this.calculated=this.calculated_type=void 0,this.area=e,this.render_clean=[]}};var us=i=>!i.cells,kr=i=>!!i[0]&&us(i[0]),Er=i=>!!i[0]&&i[0].row!==void 0,fs=Ot.map((i,e)=>({[i]:e})).reduce((i,e)=>({...i,...e}),{}),Xe=class{data=[];rows_=0;columns_=0;get rows(){return this.rows_}get columns(){return this.columns_}EnsureRow(e){this.rows_=Math.max(e+1,this.rows_)}EnsureColumn(e){this.columns_=Math.max(e+1,this.columns_)}InsertColumns(e=0,t=1){this.data=this.data.map(r=>{if(r.length>=e){let s=r.slice(0,e),n=e+t,o=r.slice(e);for(let a=0;a<o.length;a++)s[n++]=o[a];return s}return r}),this.columns_+=t}DeleteColumns(e,t=1){this.data.forEach(r=>r.splice(e,t)),this.columns_-=t}DeleteRows(e,t=1){this.data.splice(e,t),this.rows_-=t}InsertRows(e=0,t=1){let r=[e,0,[]];for(let s=1;s<t;s++)r.push([]);Array.prototype.splice.apply(this.data,r),this.rows_+=t}GetCell(e,t){let{row:r,column:s}=e;if(!this.data[r])if(t)this.data[r]=[],this.rows_=Math.max(this.rows_,r+1);else return;return this.data[r][s]||t&&(this.data[r][s]=new ie,this.columns_=Math.max(this.columns_,s+1)),this.data[r][s]}EnsureCell(e){let{row:t,column:r}=e,s=this.data[t];s||(this.data[t]=s=[],this.rows_=Math.max(this.rows_,t+1));let n=s[r];return n||(n=s[r]=new ie,this.columns_=Math.max(this.columns_,r+1)),n}FromArray(e=[],t=!1){this.data=[];let r=0,s=0;if(t){s=e.length;for(let n=0;n<s;n++){let o=e[n];r=Math.max(r,o.length);for(let a=0;a<o.length;a++)this.data[a]||(this.data[a]=[]),this.data[a][n]=new ie(o[a])}}else{r=e.length;for(let n=0;n<r;n++){let o=[],a=e[n];s=Math.max(s,a.length);for(let l=0;l<a.length;l++)o[l]=new ie(a[l]);this.data[n]=o}}this.rows_=r,this.columns_=s}SerializedTypeToValueType(e){if(e)return typeof e=="number"?e:fs[e]||void 0}ValueTypeToSerializedType(e){return e?Ot[e]:void 0}FromJSON(e=[],t){if(this.data=[],!kr(e)){let s=[];if(Er(e))for(let n of e)for(let o of n.cells)s.push({...o,row:n.row});else for(let n of e)for(let o of n.cells)s.push({...o,column:n.column});e=s}let r=[];for(let s of e){this.data[s.row]||(this.data[s.row]=[]);let n=new ie(s.value);if(typeof s.calculated<"u"&&(n.SetCalculatedValue(s.calculated,this.SerializedTypeToValueType(s.calculated_type)),s.spill&&(n.spill=new L(s.spill.start,s.spill.end))),t&&typeof s.style_ref<"u"&&(n.style=t[s.style_ref]),typeof s.note<"u"&&(n.note=s.note),typeof s.hyperlink<"u"&&(n.hyperlink=s.hyperlink),this.data[s.row][s.column]&&this.data[s.row][s.column].area&&(n.area=this.data[s.row][s.column].area),this.data[s.row][s.column]=n,s.area){let o=new L(s.area.start,s.area.end);for(let a=o.start.row;a<=o.end.row;a++)for(let l=o.start.column;l<=o.end.column;l++)this.data[a]||(this.data[a]=[]),this.data[a][l]||(this.data[a][l]=new ie),this.data[a][l].area=o}if(s.table&&r.push({...s.table}),s.merge_area){let o=new L(s.merge_area.start,s.merge_area.end);for(let a=o.start.row;a<=o.end.row;a++)for(let l=o.start.column;l<=o.end.column;l++)this.data[a]||(this.data[a]=[]),this.data[a][l]||(this.data[a][l]=new ie),this.data[a][l].merge_area=o}}for(let s of r)for(let n=s.area.start.row;n<=s.area.end.row;n++)for(let o=s.area.start.column;o<=s.area.end.column;o++)this.data[n]||(this.data[n]=[]),this.data[n][o]||(this.data[n][o]=new ie),this.data[n][o].table=s;this.rows_=this.data.length,this.columns_=this.data.reduce((s,n)=>Math.max(s,n.length),0)}toJSON(e={}){let t=0,r=0,s=this.data.length-1,n;e.subset&&(t=e.subset.start.column,r=e.subset.start.row,s=e.subset.end.row);let o=[],a=-1,l=-1,c={},d={};for(let h=r;h<=s;h++)if(this.data[h]){let p=this.data[h];n=p.length-1,e.subset&&(n=e.subset.end.column);for(let u=t;u<=n;u++){let f=p[u],b=f&&f.merge_area&&f.merge_area.start.row===h&&f.merge_area.start.column===u,v=f&&f.area&&f.area.start.row===h&&f.area.start.column===u,x=f&&f.table&&f.table.area.start.row===h&&f.table.area.start.column===u,w=f?f.type===2&&!f.value:!0;if(f&&(!w||e.preserve_empty_strings)&&(b||f.type||f.calculated_type&&e.expand_arrays||f.calculated_type&&e.calculated_value||f.note||e.decorated_cells&&f.style&&(f.style.fill||f.style.border_bottom||f.style.border_top||f.style.border_left||f.style.border_right))){let m={row:h,column:u,value:f.value};f.note&&(m.note=f.note),f.hyperlink&&(m.hyperlink=f.hyperlink),e.preserve_type&&(m.type=this.ValueTypeToSerializedType(f.type)),e.sheet_id&&(m.sheet_id=e.sheet_id),e.calculated_value&&typeof f.calculated<"u"&&(m.calculated=f.calculated,f.spill&&(m.spill=f.spill.toJSON()),(e.preserve_type||f.calculated_type===6)&&(m.calculated_type=this.ValueTypeToSerializedType(f.calculated_type))),f.table&&x&&e.tables&&(m.table=JSON.parse(JSON.stringify(f.table))),f.area&&v&&(m.area=f.area.toJSON()),f.merge_area&&(m.merge_area=f.merge_area.toJSON()),e.cell_style_refs&&e.cell_style_refs[u]&&e.cell_style_refs[u][h]&&(m.style_ref=e.cell_style_refs[u][h],e.cell_style_refs[u][h]=0),c[h]=h,d[u]=u,a=Math.max(h,a),l=Math.max(u,l),o.push(m)}}}if(e.nested){let h=Object.keys(c),p=Object.keys(d);if(h.length<=p.length&&h.length){let u={},f=[];for(let b of o){let{row:v,...x}=b;u[b.row]||(u[b.row]=[]),u[b.row].push(x)}for(let b of h){let v=Number(b);f.push({row:v,cells:u[v]})}return{data:f,rows:a,columns:l+1}}else if(p.length){let u={},f=[];for(let b of o){let{column:v,...x}=b;u[b.column]||(u[b.column]=[]),u[b.column].push(x)}for(let b of p){let v=Number(b);f.push({column:v,cells:u[v]})}return{data:f,rows:a,columns:l+1}}}return{data:o,rows:a+1,columns:l+1}}GetAll(e=!1){return this.GetRange({row:0,column:0},{row:this.rows_-1,column:this.columns_-1},e)}Normalize(e,t){return e={...e,row:e.row==1/0?0:e.row,column:e.column==1/0?0:e.column},t&&(t={...t,row:t.row==1/0?this.rows_-1:t.row,column:t.column==1/0?this.columns_-1:t.column}),{from:e,to:t}}RawValue(e,t=e){if({from:e,to:t}=this.Normalize(e,t),e.row===t.row&&e.column===t.column)return this.data[e.row]&&this.data[e.row][e.column]?this.data[e.row][e.column].value:void 0;let r=[],s=this.data.slice(e.row,t.row+1),n=e.column,o=t.column+1;for(let a of s){let l=[];for(let c=n,d=0;c<o;c++,d++){let h=a[c];l.push(h?h.value:void 0)}r.push(l)}return r}GetRange(e,t,r=!1){if({from:e,to:t}=this.Normalize(e,t),!t||e===t||e.column===t.column&&e.row===t.row)return this.data[e.row]&&this.data[e.row][e.column]?this.data[e.row][e.column].GetValue():void 0;let s=[];if(r)for(let n=e.column;n<=t.column;n++){let o=[];for(let a=e.row;a<=t.row;a++)this.data[a]&&this.data[a][n]?o.push(this.data[a][n].GetValue()):o.push(void 0);s.push(o)}else for(let n=e.row;n<=t.row;n++){let o=[];for(let a=e.column;a<=t.column;a++)this.data[n]&&this.data[n][a]?o.push(this.data[n][a].GetValue()):o.push(void 0);s.push(o)}return s}GetRange4(e,t=e,r=!1){if({from:e,to:t}=this.Normalize(e,t),e.row===t.row&&e.column===t.column)return this.data[e.row]&&this.data[e.row][e.column]?this.data[e.row][e.column].GetValue4():{value:void 0,type:0};let s=[];if(r)for(let n=e.column;n<=t.column;n++){let o=[];for(let a=e.row;a<=t.row;a++)this.data[a]&&this.data[a][n]?o.push(this.data[a][n].GetValue4()):o.push({type:0});s.push(o)}else for(let n=e.row;n<=t.row;n++){let o=[];for(let a=e.column;a<=t.column;a++)this.data[n]&&this.data[n][a]?o.push(this.data[n][a].GetValue4()):o.push({type:0});s.push(o)}return{type:8,value:s}}SetArea(e,t){if(ArrayBuffer.isView(t))throw new Error("ABIV");if(Array.isArray(t))for(let r=e.start.row,s=0;r<=e.end.row;r++,s++){this.data[r]||(this.data[r]=[]);let n=this.data[r];if(t[s])for(let o=e.start.column,a=0;o<=e.end.column;o++,a++)n[o]||(n[o]=new ie),n[o].Set(t[s][a])}else{let r=Ge(t);for(let s=e.start.row;s<=e.end.row;s++){this.data[s]||(this.data[s]=[]);let n=this.data[s];for(let o=e.start.column;o<=e.end.column;o++)n[o]||(n[o]=new ie),n[o].Set(t,r)}}this.rows_=Math.max(this.rows_,e.end.row+1),this.columns_=Math.max(this.columns_,e.end.column+1)}*IterateRC(e,t=!1){if(!e&&t&&(e=new L({row:0,column:0},{row:this.rows_-1,column:this.columns-1})),e)if(t)for(let r=e.start.row;r<=e.end.row;r++){this.data[r]||(this.data[r]=[]);let s=this.data[r];for(let n=e.start.column;n<=e.end.column;n++)s[n]||(s[n]=new ie),yield{cell:s[n],row:r,column:n}}else for(let r=e.start.row;r<=e.end.row;r++){let s=this.data[r];if(s)for(let n=e.start.column;n<=e.end.column;n++){let o=s[n];o&&(yield{cell:o,row:r,column:n})}}else for(let[r,s]of this.data.entries())if(s)for(let[n,o]of s.entries())o&&(yield{cell:o,row:r,column:n})}*Iterate(e,t=!1){if(!e&&t&&(e=new L({row:0,column:0},{row:this.rows_-1,column:this.columns-1})),e){Ee(e)&&(e=new L(e)),(e.entire_column||e.entire_row)&&(e=new L(e.start,e.end),e.start.column===1/0&&(e.start.column=0,e.end.column=this.columns_-1),e.start.row===1/0&&(e.start.row=0,e.end.row=this.rows_-1));let r=e.start,s=e.end;if(t)for(let n=r.row;n<=s.row;n++){this.data[n]||(this.data[n]=[]);let o=this.data[n];for(let a=r.column;a<=s.column;a++)o[a]||(o[a]=new ie),yield o[a]}else for(let n=r.row;n<=s.row;n++)if(this.data[n]){let o=this.data[n];for(let a=r.column;a<=s.column;a++)o[a]&&(yield o[a])}}else for(let r of this.data)if(r)for(let s of r)s&&(yield s)}FlushCellStyles(){for(let e of this.data)if(e)for(let t of e)t&&t.FlushStyle()}FlushCachedValues(){for(let e of this.data)if(e)for(let t of e)t&&t.FlushCache()}};var O=class{static locale="en-us";static decimal_separator=".";static argument_separator=",";static grouping_separator=",";static date_components={short_days:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long_days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],short_months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],long_months:["January","February","March","April","May","June","July","August","September","October","November","December"]};static UpdateLocale(e){if(e)this.locale=e;else if(typeof self<"u"){let s=self?.document?.location;if(s&&s.search&&/locale=([^?&]+?)(?:\\?|$|&)/.test(s.search)){let n=s.search.match(/locale=(.*?)(?:\\?|$|&)/);n&&(this.locale=n[1]),console.info("override locale",this.locale)}else typeof navigator<"u"&&(navigator.languages&&navigator.languages[0]?this.locale=navigator.languages[0]:this.locale=navigator.language)}this.locale==="C"&&(console.warn("Locale not set, defaulting to en-us"),this.locale="en-us");let t=new Intl.NumberFormat(this.locale,{minimumFractionDigits:1}).format(3.3).replace(/\\d/g,"");this.decimal_separator=t===","?",":".",this.decimal_separator===","?(this.argument_separator=";",this.grouping_separator=" "):(this.argument_separator=",",this.grouping_separator=",");let r=new Date(2e3,0,2,12,0,0,0);this.UpdateDateComponent(0,0,r),r=new Date(2e3,1,7,12,0,0,0),this.UpdateDateComponent(1,1,r),r=new Date(2e3,2,7,12,0,0,0),this.UpdateDateComponent(2,2,r),r=new Date(2e3,3,5,12,0,0,0),this.UpdateDateComponent(3,3,r),r=new Date(2e3,4,4,12,0,0,0),this.UpdateDateComponent(4,4,r),r=new Date(2e3,5,2,12,0,0,0),this.UpdateDateComponent(5,5,r),r=new Date(2e3,6,1,12,0,0,0),this.UpdateDateComponent(6,6,r),r=new Date(2e3,7,1,12,0,0,0),this.UpdateDateComponent(7,-1,r),r=new Date(2e3,8,1,12,0,0,0),this.UpdateDateComponent(8,-1,r),r=new Date(2e3,9,1,12,0,0,0),this.UpdateDateComponent(9,-1,r),r=new Date(2e3,10,1,12,0,0,0),this.UpdateDateComponent(10,-1,r),r=new Date(2e3,11,1,12,0,0,0),this.UpdateDateComponent(11,-1,r)}static UpdateDateComponent(e,t,r){t>=0&&(this.date_components.short_days[t]=r.toLocaleString(this.locale,{weekday:"short"}),this.date_components.long_days[t]=r.toLocaleString(this.locale,{weekday:"long"})),e>=0&&(this.date_components.short_months[e]=r.toLocaleString(this.locale,{month:"short"}),this.date_components.long_months[e]=r.toLocaleString(this.locale,{month:"long"}))}};O.UpdateLocale();var xe=class i{constructor(e=0,t=0,r=0,s=0){this.left=e;this.top=t;this.width=r;this.height=s}get right(){return this.left+this.width}get bottom(){return this.top+this.height}static Create(e){return new i(e.left||0,e.top||0,e.width||0,e.height||0)}static IsRectangle(e){return!!e&&typeof e=="object"&&typeof e.left=="number"&&typeof e.top=="number"&&typeof e.width=="number"&&typeof e.height=="number"}Shift(e=0,t=0){return new i(this.left+e,this.top+t,this.width,this.height)}Scale(e=1,t=e){return new i(this.left*e,this.top*t,this.width*e,this.height*t)}Expand(e=0,t=0){return new i(this.left,this.top,this.width+e,this.height+t)}Combine(e){return new i(Math.min(this.left,e.left),Math.min(this.top,e.top),Math.max(this.right,e.right)-Math.min(this.left,e.left),Math.max(this.bottom,e.bottom)-Math.min(this.top,e.top))}Contains(e,t,r=0){return e>=this.left-r&&e<=this.left+this.width+r&&t>=this.top-r&&t<=this.top+this.height+r}ContextFill(e){e.fillRect(this.left,this.top,this.width,this.height)}ContextStroke(e){e.strokeRect(this.left,this.top,this.width,this.height)}Clamp(e,t){return e=Math.min(Math.max(e,this.left),this.right),t=Math.min(Math.max(t,this.top),this.bottom),{x:e,y:t}}ApplyStyle(e){e.style.top=this.top+"px",e.style.left=this.left+"px",e.style.width=this.width+"px",e.style.height=this.height+"px"}toJSON(){return{top:this.top,left:this.left,width:this.width,height:this.height}}};var ps=JSON.stringify({}),ms={Background:0,Text:1,Background2:2,Text2:3,Accent:4,Accent2:5,Accent3:6,Accent4:7,Accent5:8,Accent6:9},Ue=i=>typeof i.theme=="number"?i.theme:ms[i.theme]||0,ye=i=>!!i&&typeof i.text=="string",we=i=>!!i&&typeof i.theme<"u";var se={DefaultProperties:{horizontal_align:"",vertical_align:"",number_format:"General",nan:"NaN",font_size:{unit:"em",value:1},bold:!1,italic:!1,underline:!1,strike:!1,text:{theme:1},border_top:0,border_left:0,border_right:0,border_bottom:0},CompositeBorders:i=>({top:{width:i.border_top||0,color:i.border_top_fill||{}},left:{width:i.border_left||0,color:i.border_left_fill||{}},right:{width:i.border_right||0,color:i.border_right_fill||{}},bottom:{width:i.border_bottom||0,color:i.border_bottom_fill||{}}}),Merge:(i,e,t=!0)=>{let r=t?{...i,...e}:{...e};return JSON.parse(JSON.stringify(r))},Composite:i=>JSON.parse(JSON.stringify(i.reduce((e,t)=>({...e,...t}),{}))),Empty:i=>JSON.stringify(i)===ps,ParseFontSize:(i="",e="em")=>{let t=i.match(/(-*[\\d.]+)\\s*(\\S*)/);if(t){let r=Number(t[1]);if(!r||isNaN(r)||r<0)return{};let s=t[2].toLowerCase()||e;if(s==="pt"||s==="em"||s==="%"||s==="px")return{font_size:{unit:s,value:r}}}return{}},RelativeFontSize:(i,e)=>{let t=12,r=12;switch(i.font_size?.unit){case"pt":if(!i.font_size.value)return 1;r=i.font_size.value;break;case"px":if(!i.font_size.value)return 1;r=Math.round(i.font_size.value*300/4)/100;break;case"em":return i.font_size.value||1;case"%":return(i.font_size.value||100)/100;default:return 1}switch(e.font_size?.unit){case"pt":if(!e.font_size.value)return 1;t=e.font_size.value;break;case"px":if(!e.font_size.value)return 1;t=Math.round(e.font_size.value*300/4)/100;break;default:return 1}return r/t},FontSize:(i,e=!0)=>{let t=i.font_size?.value;switch(i.font_size?.unit){case"pt":return(t||12)+"pt";case"px":return e?Math.round((t||16)*300/4)/100+"pt":(t||16)+"px";case"em":return(t||1)+"em";case"%":return(t||100)+"%"}return""},CompositeFontSize:(i,e,t=1,r=!1)=>{let s={...i};return e.unit==="pt"||e.unit==="px"?s={...e}:(s.value=e.value*i.value,e.unit==="%"&&(s.value/=100)),s.unit==="px"&&r&&(s.value=Math.round((s.value||16)*300/4)/100),s.value*=t,s},CompositeFont:(i,e,t,r)=>{let s,n,o,a=[];e.bold&&a.push("bold"),e.italic&&a.push("italic");let l=e.font_face||"stack:default";if(l.startsWith("stack:")){let c=r.font_stacks[l.substring(6)||"default"];c||(c=r.font_stacks.default),c&&(n=e.font_size,o=se.CompositeFontSize(c.size,e.font_size||{unit:"pt",value:10},t),a.push(o.value.toFixed(2)+o.unit),a.push(c.font||""),s=c.variants)}else o=se.CompositeFontSize(i,e.font_size||{unit:"pt",value:10},t),a.push(o.value.toFixed(2)+o.unit),a.push(l||"");return{font:a.join(" "),variants:s,base:i,size:e.font_size,scale:t,stack_size:n,font_size:o}}};var _s="http://www.w3.org/2000/svg",le=class i{static instances=[];static GetInstance(e){for(let r of this.instances)if(r.doc===e)return r;let t=new i(e);return this.instances.push(t),t}doc;view;get HTMLElement(){return this.view?.HTMLElement}constructor(e){e&&(this.doc=e,this.view=e?.defaultView)}GetSelection(){return this.view?.getSelection()}Div(e,t,r){return this.Create("div",e,t,r)}ClassNames(e,t){e.classList.add(...(Array.isArray(t)?t:[t]).reduce((r,s)=>[...r,...s.split(/\\s+/g)],[]))}SVG(e,t,r){let s=this.doc.createElementNS(_s,e);return t&&this.ClassNames(s,t),r&&r.appendChild(s),s}Text(e){return this.doc.createTextNode(e)}Fragment(){return this.doc.createDocumentFragment()}Create(e,t,r,s){let n=this.doc.createElement(e);if(t&&this.ClassNames(n,t),s){if(s.attrs)for(let[o,a]of Object.entries(s.attrs))n.setAttribute(o,a);if(s.data)for(let[o,a]of Object.entries(s.data))n.dataset[o]=a;if(s.text&&(n.textContent=s.text),s.html&&(n.innerHTML=s.html),s.events)for(let[o,a]of Object.entries(s.events))n.addEventListener(o,a);if(s.style)for(let[o,a]of Object.entries(s.style))n.style[o]=a}return r&&r.appendChild(n),n}};var bs=1e3,$e=class{constructor(e=!1,t){this.verbose=e;this.log_id=t}queue=[];dispatched=!1;subscribers=[];Publish(e){this.verbose&&console.info(`es publish (${this.log_id})`,e),Array.isArray(e)?this.queue.push(...e):this.queue.push(e),this.dispatched||(this.dispatched=!0,Promise.resolve().then(()=>{let t=this.queue.slice(0);this.dispatched=!1,this.queue=[];for(let r of t)for(let s of this.subscribers)s.subscriber(r)}))}Subscribe(e){let t=bs++;return this.subscribers.push({subscriber:e,token:t}),t}Cancel(e){this.subscribers=this.subscribers.filter(t=>t.token!==e)}CancelAll(){this.subscribers=[]}};var Nr={spreadsheet_semantics:!0,dimensioned_quantities:!1,fractions:!0,decimal_mark:".",argument_separator:",",boolean_true:"TRUE",boolean_false:"FALSE"};var bt=/[\\s-+=<>!()]/;var Wt=34,Ht=39,gs=160,Mr=32,ys=9,ws=10,vs=13,Ce=48,Qe=57,Bt=46,jt=43,qe=45,Fr=40,Yt=41,Ke=44,xs=37,Jt=95,pt=36,Cs=123,As=125,et=91,Pr=93,Ss=63,Ts=33,zr=59,Xt=35,Is=64,Oe=65,tt=97,Rs=69,ks=101,mt=90,_t=122,Es=105,Qt=192,qt=382,Kt={"==":6,"!=":6,"<>":6,"=":6,"<":7,">":7,"<=":7,">=":7,"+":9,"-":9,"&":9,"*":10,"/":10,"^":11,":":13},Ns={"@":50,"-":100,"+":100},Ms=[...Object.keys(Kt),"@"].sort((i,e)=>e.length-i.length),Ve=class{get argument_separator(){return this.flags.argument_separator}get decimal_mark(){return this.flags.decimal_mark}flags={...Nr};r1c1_regex=/[rR]((?:\\[[-+]{0,1}\\d+\\]|\\d*))[cC]((?:\\[[-+]{0,1}\\d+\\]|\\d*))$/;argument_separator_char=Ke;decimal_mark_char=Bt;imaginary_char=Es;imaginary_number="i";id_counter=0;expression="";data=[];index=0;length=0;valid=!0;error_position;error;dependencies={addresses:{},ranges:{}};address_refcount={};full_reference_list=[];parser_state_cache=[];SetLocaleSettings(e,t){if(typeof t>"u"&&(t=e===","?";":","),t===e)throw new Error("invalid locale setting");this.flags.argument_separator=t,this.flags.decimal_mark=e}Save(){this.parser_state_cache.push(JSON.stringify(this.flags))}Restore(){let e=this.parser_state_cache.shift();if(e)try{this.flags=JSON.parse(e)}catch(t){console.error(t)}else console.warn("No parser state to restore")}Walk2(e,t){let r=t(e);if(typeof r=="object")return r;switch(e.type){case"address":case"missing":case"literal":case"complex":case"identifier":case"operator":case"structured-reference":break;case"dimensioned":r&&(e.expression=this.Walk2(e.expression,t),e.unit=this.Walk2(e.unit,t));break;case"range":t(e)&&(e.start=this.Walk2(e.start,t),e.end=this.Walk2(e.end,t));break;case"binary":t(e)&&(e.left=this.Walk2(e.left,t),e.right=this.Walk2(e.right,t));break;case"unary":t(e)&&(e.operand=this.Walk2(e.operand,t));break;case"group":t(e)&&(e.elements=e.elements.map(s=>this.Walk2(s,t)));break;case"call":t(e)&&(e.args=e.args.map(s=>this.Walk2(s,t)));break}return e}Walk(e,t){switch(e.type){case"address":case"missing":case"literal":case"complex":case"identifier":case"operator":case"structured-reference":t(e);return;case"dimensioned":t(e)&&(this.Walk(e.expression,t),this.Walk(e.unit,t));return;case"range":t(e)&&(this.Walk(e.start,t),this.Walk(e.end,t));return;case"binary":t(e)&&(this.Walk(e.left,t),this.Walk(e.right,t));return;case"unary":t(e)&&this.Walk(e.operand,t);return;case"group":if(t(e))for(let r of e.elements)this.Walk(r,t);return;case"call":if(t(e))for(let r of e.args)this.Walk(r,t)}}Transpose(e){let t=e.length,r=[],s=0;for(let n=0;n<t;n++)Array.isArray(e[n])&&(s=Math.max(s,e[n].length));for(let n=0;n<s;n++){r[n]=[];for(let o=0;o<t;o++)r[n][o]=e[o]?e[o][n]:void 0}return r}Render(e,t={}){let r=t.offset||{rows:0,columns:0},s=t.missing??"(missing)",{convert_decimal:n,convert_argument_separator:o,long_structured_references:a,table_name:l}=t,c=this.flags.argument_separator+" ";o===","?c=", ":o===";"&&(c="; ");let d=n===","?",":".",h=this.flags.decimal_mark===","?/,/:/\\./,p=this.flags.decimal_mark===","?/,/g:/\\./g;switch(e.type){case"address":return t.pass_through_addresses?e.label:t.r1c1?this.R1C1Label(e,t.r1c1_base):this.AddressLabel(e,r);case"range":return t.pass_through_addresses?e.label:t.r1c1?this.R1C1Label(e.start,t.r1c1_base)+":"+this.R1C1Label(e.end,t.r1c1_base):this.AddressLabel(e.start,r)+":"+this.AddressLabel(e.end,r);case"missing":return s;case"array":return"{"+this.Transpose(e.values).map(u=>u.map(f=>typeof f=="string"?\'"\'+f+\'"\':f).join(", ")).join("; ")+"}";case"binary":return this.Render(e.left,t)+" "+e.operator+" "+this.Render(e.right,t);case"unary":return e.operator+this.Render(e.operand,t);case"complex":if(e.text)return n?e.text.replace(p,d):e.text;{let u=Math.abs(e.imaginary).toString();if((n===","||this.flags.decimal_mark===",")&&(u=u.replace(/\\./,",")),e.real){let f=e.real.toString();(n===","||this.flags.decimal_mark===",")&&(f=f.replace(/\\./,","));let b=Math.abs(e.imaginary);return`${f}${e.imaginary<0?" - ":" + "}${b===1?"":u}i`}else return e.imaginary===-1?"-i":e.imaginary===1?"i":`${e.imaginary<0?"-":""}${u}i`}break;case"literal":if(typeof e.value=="string")return\'"\'+e.value.replace(/"/g,\'""\')+\'"\';if(typeof e.value=="boolean")return e.value?t.boolean_true||this.flags.boolean_true||"true":t.boolean_false||this.flags.boolean_false||"false";if(n&&typeof e.value=="number")if(e.text){let u=e.text;return n===","&&this.flags.decimal_mark==="."&&(u=u.replace(/,/g,"")),u.replace(h,d)}else return e.value.toString().replace(/\\./,d);else if(e.text)return e.text;return e.value.toString();case"identifier":return e.name;case"operator":return"["+e.operator+"]";case"group":return e.explicit?"("+e.elements.map(u=>this.Render(u,t)).join(c)+")":e.elements.map(u=>this.Render(u,t)).join(c);case"call":return e.name+"("+e.args.map(u=>this.Render(u,t)).join(c)+")";case"dimensioned":return this.Render(e.expression)+" "+this.Render(e.unit);case"structured-reference":{let u=e.column;/[^A-Za-z]/.test(u)&&(u="["+u+"]");let f=e.table;switch(!f&&a&&l&&(f=l),e.scope){case"all":return`${f}[[#all],${u}]`;case"row":return a?`${f}[[#this row],${u}]`:`${f}[@${u}]`;case"column":return`${f}[${u}]`}throw new Error("unhandled scope in structured reference")}}return"??"}Parse(e){switch(e=e.trim(),e[0]==="="&&(e=e.substr(1).trim()),this.expression=e,this.data=[],this.length=e.length,this.index=0,this.valid=!0,this.error_position=void 0,this.error=void 0,this.dependencies.addresses={},this.dependencies.ranges={},this.address_refcount={},this.full_reference_list=[],this.id_counter=0,this.flags.argument_separator){case";":this.argument_separator_char=zr;break;default:this.argument_separator_char=Ke;break}switch(this.flags.decimal_mark){case",":this.decimal_mark_char=Ke;break;default:this.decimal_mark_char=Bt;break}for(let s=0;s<this.length;s++)this.data[s]=e.charCodeAt(s);let t=this.ParseGeneric(),r={};for(let s of Object.keys(this.dependencies.addresses))this.address_refcount[s]&&(r[s]=this.dependencies.addresses[s]);return this.dependencies.addresses=r,{expression:t||void 0,valid:this.valid,error:this.error,error_position:this.error_position,dependencies:this.dependencies,separator:this.flags.argument_separator,decimal_mark:this.flags.decimal_mark,full_reference_list:this.full_reference_list.slice(0)}}ColumnLabel(e){if(e===1/0)return"";let t=String.fromCharCode(65+e%26);for(;e>25;)e=Math.floor(e/26)-1,t=String.fromCharCode(65+e%26)+t;return t}R1C1Label(e,t){let r="";e.sheet&&(r=(bt.test(e.sheet)?"\'"+e.sheet+"\'":e.sheet)+"!");let s=e.absolute_row||!t?(e.row+1).toString():`[${e.row-t.row}]`,n=e.absolute_column||!t?(e.column+1).toString():`[${e.column-t.column}]`;return r+=`R${s}C${n}`,r}AddressLabel(e,t){let r=e.column;!e.absolute_column&&e.column!==1/0&&(r+=t.columns);let s=e.row;if(!e.absolute_row&&e.row!==1/0&&(s+=t.rows),s<0||r<0||s===1/0&&r===1/0)return"#REF";let n="";return e.sheet&&(n=(bt.test(e.sheet)?"\'"+e.sheet+"\'":e.sheet)+"!"),s===1/0?n+(e.absolute_column?"$":"")+this.ColumnLabel(r):r===1/0?n+(e.absolute_row?"$":"")+(s+1):n+(e.absolute_column?"$":"")+this.ColumnLabel(r)+(e.absolute_row?"$":"")+(s+1)+(e.spill?"#":"")}ParseGeneric(e=[0]){let t=[];for(;this.index<this.length;){let r=this.ParseNext(t.length===0);if(typeof r=="number"){if(e.some(s=>r===s))break;if(r===Fr){this.index++;let s=this.ParseGeneric([Yt]);this.index++,s&&t.push({type:"group",id:this.id_counter++,elements:[s],explicit:!0})}else{let s=this.ConsumeOperator();s?t.push(s):(this.error=`unexpected character [1]: ${String.fromCharCode(r)}, 0x${r.toString(16)}`,this.valid=!1,this.index++)}}else t.push(r)}if(t.length){if(t=this.BinaryToRange2(t),this.flags.fractions){let r=[],s=o=>o.type==="literal"&&typeof o.value=="number"&&o.value%1===0,n=0;for(;n<t.length-3;n++)if(s(t[n])&&s(t[n+1])&&t[n+2].type==="operator"&&t[n+2].operator==="/"&&s(t[n+3])){let o=t[n],a=t[n+1],l=t[n+3],c=(o.value<0?-1:1)*(a.value/l.value);n+=3,r.push({id:t[n].id,type:"literal",text:this.expression.substring(o.position,l.position+1),value:o.value+c,position:o.position})}else r.push(t[n]);for(;n<t.length;n++)r.push(t[n]);t=r}if(t=t.map(r=>r.type==="identifier"&&r.name===this.imaginary_number?{type:"complex",real:0,imaginary:1,position:r.position,text:r.name,id:this.id_counter++}:r),this.flags.dimensioned_quantities){let r=[],s;for(let n=0;n<t.length;n++){let o=t[n];if(!s)s=o;else if(o.type==="identifier"&&(s.type==="literal"||s.type==="group"||s.type==="call")){let a=o;for(;t[n+1]?.type==="identifier";)a.name+=" "+t[++n].name;r.push({type:"dimensioned",expression:s,unit:o,id:this.id_counter++}),s=void 0}else r.push(s),s=o}s&&r.push(s),t=r}}return t.length===0?null:t.length===1?t[0]:this.BinaryToComplex(this.ArrangeUnits(t))}UnitToAddress(e){if(e.type==="literal"){if(typeof e.value=="number"&&e.value>0&&!/\\./.test(e.text||""))return{type:"address",position:e.position,label:e.value.toString(),row:e.value-1,id:this.id_counter++,column:1/0}}else{let t,r=e.name,s=r.split("!");if(s.length>1&&(t=s.slice(0,s.length-1).join("!"),r=r.substr(t.length+1),t[0]==="\'"))if(t.length>1&&t[t.length-1]==="\'")t=t.substr(1,t.length-2);else return;let n=r[0]==="$";r=(n?r.substr(1):r).toUpperCase();let o=Number(r);if(isNaN(o)){if(/[A-Z]{1,3}/.test(r)){let a=-1;for(let l=0;l<r.length;l++){let c=r[l].charCodeAt(0);a=26*(1+a)+(c-Oe)}return{type:"address",position:e.position,absolute_column:n,label:e.name,column:a,id:this.id_counter++,row:1/0,sheet:t}}}else if(o>0&&o!==1/0&&!/\\./.test(r))return{type:"address",position:e.position,absolute_row:n,label:e.name,row:o-1,id:this.id_counter++,column:1/0,sheet:t}}}BinaryToRange2(e){let t=[];for(let r=0;r<e.length;r++){let s=e[r],n=e[r+1],o=e[r+2],a,l="",c;if(s&&n&&o&&n.type==="operator"&&n.operator===":"){if(s.type==="address"&&o.type==="address"){let d=s.position+s.label.length,h=o.position;a={type:"range",id:this.id_counter++,position:s.position,start:s,end:o,label:s.label+this.expression.substring(d,h)+o.label},l=a.start.label+":"+a.end.label,this.address_refcount[a.start.label]--,this.address_refcount[a.end.label]--;let p=[s.position,o.position];this.full_reference_list=this.full_reference_list.filter(u=>u.position!==p[0]&&u.position!==p[1])}else if((s.type==="literal"||s.type==="identifier")&&(o.type==="literal"||o.type==="identifier")){let d=this.UnitToAddress(s);if(!d&&s.type==="literal"&&typeof s.value=="number"&&s.value<0){let p={...s,text:(s.text||"").replace(/^-/,""),position:s.position+1,value:-s.value};d=this.UnitToAddress(p),d&&(c={type:"operator",operator:"-",position:s.position,id:this.id_counter++})}let h=this.UnitToAddress(o);d&&h&&(d.column===1/0&&h.column===1/0||d.row===1/0&&h.row===1/0)&&(l=d.label+":"+h.label,a={type:"range",id:this.id_counter++,position:d.position,start:d,end:h,label:l})}}a?(c&&t.push(c),t.push(a),this.dependencies.ranges[l]=a,this.full_reference_list.push(a),r+=2):t.push(s)}return t}BinaryToComplex(e){if(e.type==="binary")if((e.operator==="+"||e.operator==="-")&&e.left.type==="literal"&&typeof e.left.value=="number"&&e.right.type==="complex"&&!e.right.composited){let t="";t=this.expression.substring(e.left.position,e.right.position+(e.right.text?.length||0));let r=e.right.imaginary;return e.operator==="-"&&(r=-r),{type:"complex",position:e.left.position,text:t,id:this.id_counter++,imaginary:r,real:e.left.value,composited:!0}}else e.left=this.BinaryToComplex(e.left),e.right=this.BinaryToComplex(e.right);else if(e.type==="unary"&&(e.operator==="-"||e.operator==="+")&&e.operand.type==="complex"&&e.operand.text===this.imaginary_number)return{...e.operand,position:e.position,text:this.expression.substring(e.position,e.operand.position+(e.operand.text||"").length),imaginary:e.operand.imaginary*(e.operator==="-"?-1:1)};return e}BinaryToRangeX(e){if(e.type==="binary"){if(e.operator===":"){let t,r="";if(e.left.type==="address"&&e.right.type==="address"){let s=e.left.position+e.left.label.length,n=e.right.position;t={type:"range",id:this.id_counter++,position:e.left.position,start:e.left,end:e.right,label:e.left.label+this.expression.substring(s,n)+e.right.label},r=t.start.label+":"+t.end.label,this.address_refcount[t.start.label]--,this.address_refcount[t.end.label]--;let o=[e.left.position,e.right.position];this.full_reference_list=this.full_reference_list.filter(a=>a.position!==o[0]&&a.position!==o[1])}else if((e.left.type==="literal"||e.left.type==="identifier")&&(e.right.type==="literal"||e.right.type==="identifier")){let s=this.UnitToAddress(e.left),n=this.UnitToAddress(e.right);s&&n&&(s.column===1/0&&n.column===1/0||s.row===1/0&&n.row===1/0)&&(r=s.label+":"+n.label,t={type:"range",id:this.id_counter++,position:e.left.position,start:s,end:n,label:r})}if(t)return this.dependencies.ranges[r]=t,this.full_reference_list.push(t),t;this.error="unexpected character: :",this.valid=!1}e.left=this.BinaryToRangeX(e.left),e.right=this.BinaryToRangeX(e.right)}return e}ArrangeUnits(e){if(e.length===0)return{type:"missing",id:this.id_counter++};if(e.length===1)return e[0];let t=[];for(let r=0;r<e.length;r++){let s=e[r];if(s.type==="operator")if(t.length===0||t[t.length-1].type==="operator")if(Ns[s.operator]){let n=this.BinaryToComplex(this.ArrangeUnits(e.slice(r+1)));if(!this.valid)return{type:"group",id:this.id_counter++,elements:e,explicit:!1};n.type==="binary"?(n.left={type:"unary",id:this.id_counter++,operator:s.operator,operand:n.left,position:s.position},s=n):s={type:"unary",id:this.id_counter++,operator:s.operator,operand:n,position:s.position},r=e.length}else return this.error=`unexpected character [2]: ${s.operator}`,this.error_position=s.position,this.valid=!1,{type:"group",id:this.id_counter++,elements:e,explicit:!1};else{t.push(s);continue}if(t.length<2){if(t.length===1&&t[0].type!=="operator")return this.error=`unexpected element [3]: ${s.type}`,this.error_position=s.type==="missing"||s.type==="group"||s.type==="dimensioned"?-1:s.position,this.valid=!1,{type:"group",id:this.id_counter++,elements:e,explicit:!1};t.push(s)}else if(t[t.length-1].type==="operator"){let n=t[t.length-2],o=t[t.length-1],a=o.operator,l={type:"binary",id:this.id_counter++,left:n,operator:a,position:o.position,right:s};n.type==="binary"&&Kt[a]>Kt[n.operator]&&(l.left=n.left,l.operator=n.operator,l.position=n.position,l.right={type:"binary",id:this.id_counter++,left:n.right,right:s,operator:a,position:o.position}),t.splice(-2,2,l)}else return this.error="multiple expressions",this.error_position=s.position,this.valid=!1,{type:"group",id:this.id_counter++,elements:e,explicit:!1}}return t[0]}ParseNext(e=!0){this.ConsumeWhiteSpace();let t=this.data[this.index];if(t===Wt)return{type:"literal",id:this.id_counter++,position:this.index,value:this.ConsumeString()};if(t>=Ce&&t<=Qe||t===this.decimal_mark_char)return this.ConsumeNumber();if(t===Cs)return this.ConsumeArray();if(e&&(t===qe||t===jt)){let r=this.data[this.index+1];if(r>=Ce&&r<=Qe||r===this.decimal_mark_char)return this.ConsumeNumber()}else if(t>=Oe&&t<=mt||t>=tt&&t<=_t||t===Jt||t===Xt||t===Ht||t===pt||t===et||t>=Qt&&t<=qt)return this.ConsumeToken(t);return t}ConsumeArray(){let e={type:"array",id:this.id_counter++,values:[],position:this.index};this.index++;let t=0,r=0;for(;this.index<this.length;){let s=this.ParseNext(),n=this.index;if(typeof s=="number")switch(this.index++,s){case zr:r++,t=0;break;case Ke:t++;break;case As:return e;default:this.valid&&(this.error="invalid character in array literal",this.error_position=n,this.valid=!1);break}else switch(s.type){case"literal":e.values[t]||(e.values[t]=[]),e.values[t][r]=s.value;break;default:this.valid&&(this.error="invalid value in array literal",this.error_position=n,this.valid=!1);break}}return e}ConsumeOperator(){for(let e of Ms)if(this.expression.substr(this.index,e.length)===e){let t=this.index;return this.index+=e.length,{type:"operator",id:this.id_counter++,operator:e,position:t}}return null}ConsumeArguments(){this.index++;let e=0,t=[];for(;this.index<this.length;){let r=this.ParseGeneric([this.argument_separator_char,Yt]);r!==null&&t.push(r);let s=this.data[this.index];if(s===this.argument_separator_char){this.index++,e++;for(let n=t.length;n<e;n++)t.push({type:"missing",id:this.id_counter++})}else if(s===Yt)return this.index++,t}return t}ConsumeToken(e){let t=[e],r=this.index,s=e===Ht,n=0,o=!1;for(e===et&&(n=1,o=!0),++this.index;this.index<this.length;this.index++){let h=this.data[this.index];if(h>=Oe&&h<=mt||h>=tt&&h<=_t||h>=Qt&&h<=qt||h===Jt||h===pt||h===Bt||h===Ts||s||h>=Ce&&h<=Qe||h===et||n>0&&h===Pr||h===qe&&this.flags.r1c1&&n===1||n>0&&h===Is&&this.data[this.index-1]===et||n===1&&(h===Ke||h===Mr)||n>1||h===Ss&&n===0)t.push(h),h===et&&(n++,o=!0),h===Pr&&n--,h===Ht&&(s=!1);else break}this.data[this.index]===Xt&&t.push(this.data[this.index++]);let a=t.map(h=>String.fromCharCode(h)).join("");if(s)return this.error="unbalanced single quote",this.error_position=r,this.valid=!1,{type:"identifier",id:this.id_counter++,name:a,position:r};if(n)return this.error="unbalanced square bracket",this.error_position=r,this.valid=!1,{type:"identifier",id:this.id_counter++,name:a,position:r};if(this.ConsumeWhiteSpace(),this.data[this.index]===Fr){let h=this.ConsumeArguments();return{type:"call",id:this.id_counter++,name:a,args:h,position:r,end:this.index}}if(this.flags.spreadsheet_semantics){let h=this.ConsumeAddress(a,r);if(h)return h;if(o){let p=this.ConsumeStructuredReference(a,r);if(p)return p}}let c=a.toLowerCase();if(c==="true"||this.flags.boolean_true&&c===this.flags.boolean_true.toLowerCase())return{type:"literal",id:this.id_counter++,value:!0,position:r};if(c==="false"||this.flags.boolean_false&&c===this.flags.boolean_false.toLowerCase())return{type:"literal",id:this.id_counter++,value:!1,position:r};let d={type:"identifier",id:this.id_counter++,name:a,position:r};return this.full_reference_list.push(d),d}ConsumeStructuredReference(e,t){let r=e.length,s=e,n="",o=0;for(;o<r;o++){if(e[o]==="["){e=e.substring(o);break}n+=e[o]}if(e[0]!=="["||e[e.length-1]!=="]")return;e=e.substring(1,e.length-1);let a=e.split(",").map(h=>h.trim()),l="column",c="";if(a.length>2)return;a.length===2?(/\\[#this row\\]/i.test(a[0])?l="row":/\\[#all\\]/i.test(a[0])&&(l="all"),c=a[1]):(c=a[0],c[0]==="@"&&(l="row",c=c.substring(1,c.length))),c[0]==="["&&c[c.length-1]==="]"&&(c=c.substring(1,c.length-1));let d={type:"structured-reference",id:this.id_counter++,label:s,position:t,scope:l,column:c,table:n};return this.full_reference_list.push(d),d}ConsumeAddress(e,t){let r=t,s=e.length,n,o=e.split("!");if(o.length>1&&(n=o.slice(0,o.length-1).join("!"),t+=n.length+1),this.flags.r1c1){let h=o[o.length-1].match(this.r1c1_regex);if(h){let p={type:"address",id:this.id_counter++,label:e,row:0,column:0,position:r,sheet:n,r1c1:!0};return h[1][0]==="["?(p.offset_row=!0,p.row=Number(h[1].substring(1,h[1].length-1))):h[1]?p.row=Number(h[1])-1:(p.offset_row=!0,p.row=0),h[2][0]==="["?(p.offset_column=!0,p.column=Number(h[2].substring(1,h[2].length-1))):h[2]?p.column=Number(h[2])-1:(p.offset_column=!0,p.column=0),p}}let a=this.ConsumeAddressColumn(t);if(!a)return null;t=a.position;let l=this.ConsumeAddressRow(t);if(!l)return null;t=l.position;let c=n?n+e.substr(n.length,t-r).toUpperCase():e.substr(0,t-r).toUpperCase();n&&n[0]==="\'"&&(n=n.substr(1,n.length-2));let d={type:"address",id:this.id_counter++,label:c,row:l.row,column:a.column,absolute_row:l.absolute,absolute_column:a.absolute,position:r,sheet:n,spill:l.spill};return s!==t-r?null:(this.dependencies.addresses[d.label]=d,this.address_refcount[d.label]=(this.address_refcount[d.label]||0)+1,this.full_reference_list.push(d),d)}ConsumeAddressRow(e){let t=this.data[e]===pt;t&&e++;let r=e,s=0;for(;;e++){let o=this.data[e];if(o>=Ce&&o<=Qe)s*=10,s+=o-Ce;else break}if(r===e||s===0)return!1;let n=!1;return this.data[e]===Xt&&(e++,n=!0),{absolute:t,row:s-1,position:e,spill:n}}ConsumeAddressColumn(e){let t=-1,r=0,s=this.data[e]===pt;for(s&&e++;;e++,r++){if(r>=4)return!1;let n=this.data[e];if(n>=Oe&&n<=mt)t=26*(1+t)+(n-Oe);else if(n>=tt&&n<=_t)t=26*(1+t)+(n-tt);else break}return t<0?!1:{absolute:s,column:t,position:e}}ConsumeNumber(){let e=this.index,t=0,r=!1,s=!1,n=0,o=0,a=0,l="integer",c=0,d=!1,h=this.index;for(;this.index<this.length;this.index++,c++){let u=this.data[this.index];if(u===this.decimal_mark_char)if(l==="integer")l="fraction";else break;else if(u===xs){n/=100,a/=100,this.index++;break}else if(u===jt||u===qe)if(c===0)u===qe&&(s=!0);else break;else if(u===Rs||u===ks)if(l==="integer"||l==="fraction")l="exponent",this.index<this.length-1&&(this.data[this.index+1]===jt?this.index++:this.data[this.index+1]===qe&&(this.index++,r=!0));else break;else if(u===this.imaginary_char){let f=this.data[this.index+1];if(f>=Oe&&f<=mt||f>=tt&&f<=_t||f>=Qt&&f<=qt||f===Jt)break;if(l==="integer"||l==="fraction"){this.index++,d=!0;break}}else if(u>=Ce&&u<=Qe)switch(l){case"integer":n=n*10+(u-Ce);break;case"fraction":a=a*10+(u-Ce),o++;break;case"exponent":t=t*10+(u-Ce);break}else break}let p=n+a/Math.pow(10,o);return l==="exponent"&&(p=p*Math.pow(10,(r?-1:1)*t)),d?{type:"complex",id:this.id_counter++,position:e,imaginary:s?-p:p,real:0,text:this.expression.substring(h,this.index)||""}:{type:"literal",id:this.id_counter++,position:e,value:s?-p:p,text:this.expression.substring(h,this.index)||""}}ConsumeString(){this.index++;let e=[];for(;this.index<this.length;this.index++){let t=this.data[this.index];if(t===Wt&&(this.index++,this.index>=this.length||this.data[this.index]!==Wt))break;e.push(t)}return e.map(t=>String.fromCharCode(t)).join("")}ConsumeWhiteSpace(){for(;this.index<this.length;){let e=this.data[this.index];if(e===Mr||e===ys||e===ws||e===vs||e===gs)this.index++;else return}}};var yt=class i{static _instance=new i;constructor(){}static get instance(){return this._instance}HTML(e,t={}){t={br:!0,...t};let r=[];for(let s of e){let n=[];for(let o of s)o.pre&&n.push("<pre>"),o.emphasis&&n.push("<em>"),o.strong&&n.push("<strong>"),o.strike&&n.push("<strike>"),n.push(o.text),o.strike&&n.push("</strike>"),o.strong&&n.push("</strong>"),o.emphasis&&n.push("</em>"),o.pre&&n.push("</pre>");r.push(n.join(""))}return r.join(t.br?`<br/>\n`:`\n`)}Dummy(e=""){return e.split(/\\n/).map(t=>[{text:t}])}Parse(e=""){let t=this.Tokenize(e);for(let r=0;r<t.length;r++){let s=t[r];if(s.type==="delimeter"){let n=t[r-1],o=t[r+1],a=!n||n.type==="whitespace"||n.type==="newline",l=n&&n.type==="text"&&/[^\\w\\d]$/.test(n.text),c=!o||o.type==="whitespace"||o.type==="newline",d=o&&o.type==="text"&&/^[^\\w\\d]/.test(o.text);s.left_flanking=!c&&(!d||a),s.right_flanking=!a&&(!l||c||d)}}return this.ApplyFormatting(t),this.Consolidate(t)}IsWhitespace(e){return e===" "||e===" "}IsNewline(e){return e==="\\r"||e===`\n`}IsDelimeter(e){return e==="*"||e==="_"||e==="~"}Consolidate(e){let t=[],r={},s=[],n={type:"text",text:""};for(let o of e)if(o.type==="newline")n.text.length&&s.push(n),n={...r,text:"",type:"text"},t.push(s),s=[];else switch((!!r.strong!=!!o.strong||!!r.emphasis!=!!o.emphasis||!!r.strike!=!!o.strike)&&(r.strong=!!o.strong,r.emphasis=!!o.emphasis,r.strike=!!o.strike,n.text.length&&s.push(n),n={...r,text:"",type:"text"}),o.type){case"text":case"whitespace":n.text+=o.text;break;case"delimeter":for(let a=0;a<o.length;a++)n.text+=o.char;break}return n.text.length&&s.push(n),s.length&&t.push(s),t}ApplyFormatting(e,t){let r=0,s=e.length;for(r=0;r<s;r++){let n=e[r];if(n.type==="delimeter"){if(t&&n.right_flanking&&t.char===n.char&&n.length>0)return{index:r,token:n};if(n.left_flanking){let o=this.ApplyFormatting(e.slice(r+1),n);if(o.token){let a=Math.min(o.token.length,n.length),l=n.char==="~",c=!l&&!!(a%2),d=!l&&a>=2;for(let h=r+1;h<=r+o.index;h++)e[h].strong=!!e[h].strong||d,e[h].emphasis=!!e[h].emphasis||c,e[h].strike=!!e[h].strike||l;o.token.length-=a,n.length-=a,n.length>0?r--:r+=o.index}}}}return{index:r}}Tokenize(e=""){let t=[],r=e.length,s=0,n=!1,o="";for(s=0;s<r;s++){let a=e[s];if(this.IsWhitespace(a)){o&&t.push({type:"text",text:o});let l=a;for(;;){let c=e[s+1];if(this.IsWhitespace(c))l+=c,s++;else break}t.push({type:"whitespace",text:l}),n=!1,o=""}else if(this.IsNewline(a)){o&&t.push({type:"text",text:o}),t.push({type:"newline",text:a});let l="";for(;;){let c=e[s+1];if(this.IsNewline(c))l+=c,s++;else break}l.length&&t.push({type:"newline",text:l}),n=!1,o=""}else if(n)o+=a,n=!1;else if(this.IsDelimeter(a)){o&&t.push({type:"text",text:o});let l=a;for(;;){let c=e[s+1];if(c===a)l+=c,s++;else break}t.push({type:"delimeter",text:l,char:a,length:l.length}),n=!1,o=""}else a==="\\\\"?n=!0:o+=a}return o&&t.push({type:"text",text:o}),t}};var Ae=class{date_format=!1;string_format=!1;fraction_format=!1;twelve_hour=!1;fraction_denominator=0;fraction_integer=!0;fraction_align=0;fraction_denominator_digits=0;integer_min_digits=0;decimal_min_digits=0;decimal_max_digits=0;grouping=!1;has_number_format=!1;prefix=[{text:""}];suffix=[{text:""}];scaling=0;percent=!1;exponential=!1;has_asterisk=!1};var Lr=42,Gr=95,er=63,wt=48,Ur=46,tr=44,$r=37,rr=34,rt=35,Vr=59,vt=92,Zr=64,Fs=91,Ps=93,Or=69,Wr=101,zs=72,Ds=104,Ls=77,Gs=109,Us=83,$s=115,Vs=68,Zs=100,Os=89,Ws=121,Hs=65,Bs=97;var xt=class{static date_pattern=!1;static pattern="";static char_index=0;static characters=[];static sections=[];static current_section=new Ae;static preserve_formatting_characters=!1;static decimal_mark=Ur;static group_separator=tr;static Parse(e){if(this.pattern=e,this.characters=e.split("").map(t=>t.charCodeAt(0)),this.char_index=0,this.current_section=new Ae,this.sections=[this.current_section],this.ParseDatePattern())return this.sections;for(this.char_index=0,this.current_section=new Ae,this.sections=[this.current_section];this.char_index<this.characters.length;)this.ConsumeChar();return this.sections}static ConsumeString(){let e="";for(this.preserve_formatting_characters&&(e+=this.pattern[this.char_index]),++this.char_index;this.char_index<this.characters.length;this.char_index++)switch(this.characters[this.char_index]){case vt:this.preserve_formatting_characters&&(e+=this.pattern[this.char_index]),this.char_index+1<this.characters.length&&(e+=this.pattern[++this.char_index]);break;case rr:return this.preserve_formatting_characters&&(e+=this.pattern[this.char_index]),this.char_index++,e;default:e+=this.pattern[this.char_index];break}throw new Error("unterminated string")}static ConsumeFormatting(){let e="";for(++this.char_index;this.char_index<this.characters.length;this.char_index++)switch(this.characters[this.char_index]){case vt:throw new Error("invalid escape character in formatting block");case Ps:return this.char_index++,e;default:e+=this.pattern[this.char_index];break}throw new Error("unterminated format")}static ScanFractionFormat(){let e=/^([#?]+ +){0,1}([#?]+)\\/([#?0-9]+)(?:$|[^#?0-9])/,r=this.pattern.substr(this.char_index).match(e);if(!r)return!1;let s=(r[1]||"").length+r[2].length+r[3].length+1;this.current_section.fraction_format=!0,this.current_section.fraction_integer=!!r[1];let n=Number(r[3]);return isNaN(n)||(this.current_section.fraction_denominator=n),this.current_section.decimal_max_digits=this.current_section.fraction_denominator_digits=r[3].length,this.char_index+=s,this.current_section.has_number_format=!0,!0}static ConsumeNumberFormat(){let e=0;for(this.char_index;this.char_index<this.characters.length;this.char_index++)switch(this.characters[this.char_index]){case this.group_separator:{let r=!1;for(let s=this.char_index+1;!r&&s<this.characters.length;s++){let n=this.characters[s];if(n===this.decimal_mark||n===rt||n===wt)r=!0;else if(n!==tr)break}if(r){if(e===1)throw new Error("invalid grouping in decimal part");this.current_section.grouping=!0}else this.current_section.scaling=(this.current_section.scaling||1)*1e3}break;case this.decimal_mark:if(e===1)throw new Error("too many decimal marks");e=1;break;case rt:e===1?this.current_section.decimal_max_digits++:this.current_section.integer_min_digits&&this.current_section.integer_min_digits++;break;case wt:e===1?(this.current_section.decimal_max_digits++,this.current_section.decimal_min_digits=this.current_section.decimal_max_digits):this.current_section.integer_min_digits++;break;default:return}}static AppendCharAsText(e=!0){this.current_section.has_number_format?this.current_section.suffix[this.current_section.suffix.length-1].text+=this.pattern[this.char_index]:this.current_section.prefix[this.current_section.prefix.length-1].text+=this.pattern[this.char_index],e&&this.char_index++}static AppendString(e){this.current_section.has_number_format?this.current_section.suffix[this.current_section.suffix.length-1].text+=e:this.current_section.prefix[this.current_section.prefix.length-1].text+=e}static AppendTextPart(e){this.current_section.has_number_format?(this.current_section.suffix.push(e),this.current_section.suffix.push({text:""})):(this.current_section.prefix.push(e),this.current_section.prefix.push({text:""}))}static ConsumeChar(){let e=this.characters[this.char_index];if(!((e===er||e===rt)&&!this.current_section.has_number_format&&!this.current_section.string_format&&this.ScanFractionFormat()))switch(e){case Vr:this.char_index++,this.current_section=new Ae,this.sections.length===3&&(this.current_section.string_format=!0),this.sections.push(this.current_section);break;case Zr:this.char_index++,this.AppendTextPart({text:"@",flag:5}),this.current_section.string_format=!0;break;case wt:case rt:case Ur:case tr:!this.current_section.has_number_format&&!this.current_section.string_format?(this.ConsumeNumberFormat(),this.current_section.has_number_format=!0):this.AppendCharAsText();break;case Fs:this.AppendTextPart({text:this.ConsumeFormatting(),flag:6});break;case rr:this.AppendString(this.ConsumeString());break;case er:this.preserve_formatting_characters?this.AppendCharAsText():(this.AppendTextPart({text:"0",flag:1}),this.char_index++);break;case Gr:if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:1})}break;case Lr:if(this.current_section.has_asterisk)throw new Error("we don\'t support multiple asterisks");if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:2}),this.current_section.has_asterisk=!0}break;case Wr:case Or:this.current_section.percent||this.current_section.exponential||this.current_section.string_format?this.AppendCharAsText():(this.current_section.exponential=!0,this.char_index++);break;case $r:!this.current_section.exponential&&!this.current_section.string_format&&(this.current_section.percent=!0),this.AppendCharAsText();break;case vt:if(this.preserve_formatting_characters&&this.AppendCharAsText(!1),++this.char_index>=this.characters.length)throw new Error("invalid escape character at end");this.AppendCharAsText();break;default:this.AppendCharAsText()}}static ParseDatePattern(){for(this.date_pattern=!0;this.date_pattern&&this.char_index<this.pattern.length;)this.DatePatternConsumeChar();if(this.date_pattern){this.date_pattern=!1;for(let e of this.sections)for(let t of e.prefix)t.flag&&t.flag&7&&(this.date_pattern=!0)}return this.date_pattern&&(this.sections[0].date_format=!0,this.sections[0].prefix.forEach((e,t)=>{if(e.flag===3&&(e.text==="mm"||e.text==="m")){if(t)for(let r=t-1;r;r--){let s=this.sections[0].prefix[r];if(s.flag===3){/h/i.test(s.text)&&(e.flag=4,e.text=e.text.toLowerCase());break}}if(t<this.sections[0].prefix.length-1)for(let r=t+1;r<this.sections[0].prefix.length;r++){let s=this.sections[0].prefix[r];if(s.flag===3){/s/i.test(s.text)&&(e.flag=4,e.text=e.text.toLowerCase());break}}}})),this.date_pattern}static ConsumeDatePart(){let e=this.pattern[this.char_index++],t=e.toLowerCase(),r={text:e,flag:3};for(;this.pattern[this.char_index]&&this.pattern[this.char_index].toLowerCase()===t;)r.text+=this.pattern[this.char_index++];if(t==="s"&&this.pattern[this.char_index]===".")for(r.text+=this.pattern[this.char_index++];this.pattern[this.char_index]==="0";)r.text+=this.pattern[this.char_index++];return r}static ConsumeAMPM(){let e=this.pattern.substr(this.char_index,5);if(e==="am/pm"||e==="AM/PM")return this.char_index+=5,this.sections[0].twelve_hour=!0,{text:e,flag:3};if(e=this.pattern.substr(this.char_index,3),e==="a/p"||e==="A/P")return this.char_index+=3,this.sections[0].twelve_hour=!0,{text:e,flag:3}}static DatePatternConsumeChar(){switch(this.characters[this.char_index]){case Vr:this.char_index=this.characters.length;break;case wt:case rt:case Wr:case Or:case $r:case Zr:this.date_pattern=!1;break;case zs:case Ds:case Ls:case Gs:case Us:case $s:case Vs:case Zs:case Os:case Ws:this.AppendTextPart(this.ConsumeDatePart());break;case Hs:case Bs:{let t=this.ConsumeAMPM();t?this.AppendTextPart(t):this.AppendCharAsText()}break;case rr:this.AppendString(this.ConsumeString());break;case er:this.preserve_formatting_characters?this.AppendCharAsText():(this.AppendTextPart({text:"0",flag:1}),this.char_index++);break;case Gr:if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:1})}break;case Lr:if(this.current_section.has_asterisk)throw new Error("we don\'t support multiple asterisks");if(this.preserve_formatting_characters)this.AppendCharAsText();else{if(++this.char_index>=this.characters.length)throw new Error("invalid pad character at end");this.AppendTextPart({text:this.pattern[this.char_index++],flag:2}),this.current_section.has_asterisk=!0}break;case vt:if(this.preserve_formatting_characters&&this.AppendCharAsText(!1),++this.char_index>=this.characters.length)throw new Error("invalid escape character at end");this.AppendCharAsText();break;default:this.AppendCharAsText()}}};var Hr=i=>(i>=60&&i--,new Date(-22090752e5+864e5*i)),Br=(i,e=!0)=>{if(e){let t=new Date(i);i=new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()).getTime()}return i=(i+22090752e5)/864e5,i>=60&&i++,i},Ne=class i{static grouping_regexp=/\\d{1,3}(?=(\\d{3})+(?!\\d))/g;static fraction_limits=[9,99,999,9999];static imaginary_character="\\u{1D456}";static minus_character="-";magic_decimal=!1;transform_value;_pattern="";sections;decimal_zero_regexp=[];cloned=[];get pattern(){return this._pattern}get date_format(){return this.sections[0]&&this.sections[0].date_format}constructor(e){if(this._pattern=e,this.sections=xt.Parse(e),this.sections.length||(this.sections=[]),this.sections[0]||(this.sections[0]=new Ae),this.sections[1]||(this.sections[1]={...this.sections[0]},this.sections[1].prefix=JSON.parse(JSON.stringify(this.sections[1].prefix)),this.sections[1].suffix=JSON.parse(JSON.stringify(this.sections[1].suffix)),this.sections[1].prefix.push({text:"-"}),this.cloned[1]=!0),this.sections[2]||(this.sections[2]={...this.sections[0]},this.cloned[2]=!0),!this.sections[3]){for(let t of this.sections[0].prefix)if(t.flag===5){this.sections[3]={...this.sections[0]},this.sections[3].string_format=!0,this.cloned[3]=!0;break}}this.decimal_zero_regexp=this.sections.map(t=>{if(t.decimal_max_digits>t.decimal_min_digits)return new RegExp(`0{1,${t.decimal_max_digits-t.decimal_min_digits}}(?:$|e)`)})}static FormatPartsAsText(e,t=0){let r=-1,s=e.map((n,o)=>{switch(n.flag){case 2:return r=o,n.text;case 1:return n.text.replace(/./g," ");case 6:return"";default:return n.text}});if(r>=0&&t){let n=s.reduce((a,l,c)=>c===r?a:a+l.length,0),o="";for(let a=0;a<t-n;a++)o+=s[r];s[r]=o}return s.join("")}SetDecimal(e){for(let t of this.sections)t.fraction_format||(t.decimal_min_digits=e,t.decimal_max_digits=e)}IncreaseDecimal(){this.sections.forEach(e=>{e.fraction_format?e.fraction_denominator||(e.fraction_denominator_digits=Math.min(e.fraction_denominator_digits+1,4)):(e.decimal_min_digits++,e.decimal_max_digits=e.decimal_min_digits)})}DecreaseDecimal(){this.sections.forEach(e=>{e.fraction_format?e.fraction_denominator||(e.fraction_denominator_digits=Math.max(e.fraction_denominator_digits-1,1)):(e.decimal_min_digits=Math.max(0,e.decimal_min_digits-1),e.decimal_max_digits=e.decimal_min_digits)})}AddGrouping(){this.sections.forEach(e=>{e.grouping=!0})}RemoveGrouping(){this.sections.forEach(e=>{e.grouping=!1})}ToggleGrouping(){let e=!this.sections[0].grouping;this.sections.forEach(t=>{t.grouping=e})}toString(){return this.sections[0].date_format?this._pattern:this.sections.filter((e,t)=>!this.cloned[t]).map(e=>{let t="",r=0;if(e.fraction_format){e.fraction_integer&&(t+="? ");let s="";for(let n=0;n<e.fraction_denominator_digits;n++)s+="#";t+=s,t+="/",e.fraction_denominator?t+=e.fraction_denominator:t+=s}else if(e.has_number_format){for(r=0;r<e.integer_min_digits;r++)t+="0";if(e.grouping&&(t.length<4&&(t=("####"+t).slice(-4)),t=t.replace(/[\\d#]{1,3}(?=([\\d#]{3})+(?![\\d#]))/g,"$&,")),e.decimal_max_digits||e.decimal_min_digits){for(t+=".",r=0;r<e.decimal_min_digits;r++)t+="0";for(;r<e.decimal_max_digits;r++)t+="#"}if(e.scaling){let s=Math.log10(e.scaling)/3;for(r=0;r<s;r++)t+=","}e.exponential&&(t+="e")}return e.prefix.map(s=>s.flag===1?s.text==="0"?"?":"_"+s.text:s.flag===2?"*"+s.text:s.flag===6?"["+s.text+"]":s.text).join("")+t+e.suffix.map(s=>s.flag===1?s.text==="0"?"?":"_"+s.text:s.flag===2?"*"+s.text:s.text).join("")}).join(";")}FormatDimensionedQuantity(e){if(this.transform_value){let r=this.transform_value(e);if(Zt(r))e=r;else return typeof r=="string"?r:this.FormatParts(r)}let t=this.FormatParts(e.value||0);return e.unit&&t.push({text:" "},{text:e.unit}),t}FormatComplex(e){if(e.imaginary===1/0||e.imaginary===-1/0||e.real===1/0||e.real===-1/0)return[{text:"Infinity"}];let t=[],r=[],s=!1,n=!!e.imaginary;n&&(t=this.FormatParts(e.imaginary),n=t.some(l=>/[1-9]/.test(l.text)),t.length===1&&this.sections[0].integer_min_digits<=1&&t[0].text==="1"?(t[0].text="",s=!0):t.length===1&&this.sections[1].integer_min_digits<=1&&t[0].text==="-1"&&(t[0].text="-",s=!0));let o=!!e.real;o&&(r=this.FormatParts(e.real),o=r.some(l=>/[1-9]/.test(l.text)));let a=[];if(o||!o&&!n){if(a.push(...r),n){a.push({text:e.imaginary<0?` ${i.minus_character} `:" + "});let l=s?[]:this.FormatParts(Math.abs(e.imaginary));a.push(...l,{text:i.imaginary_character})}}else n&&a.push(...t,{text:i.imaginary_character});return a}FormatParts(e){if(typeof e!="number"&&!this.sections[3])return[{text:(e??"").toString()}];let{parts:t,section:r}=this.BaseFormat(e),s=[];if(r.date_format||r.string_format)for(let n of t)typeof n=="string"?s.push({text:n}):s.push(n);else this.magic_decimal&&t[1]===""&&t.splice(1,1),s=[...r.prefix.map(n=>({...n})),{text:r.has_number_format?t.join(O.decimal_separator):""},...r.suffix.map(n=>({...n}))];for(let n=1;n<s.length;n++)s[n].flag===s[n-1].flag&&(s[n].text=s[n-1].text+s[n].text,s[n-1].text="");return s.filter(n=>n.text)}Format(e,t=0){return i.FormatPartsAsText(this.FormatParts(e),t)}ZeroPad(e,t){for(;e.length<t;)e="0"+e;return e}DateFormat(e){let t=Hr(e),r=this.sections[0],s=t.getUTCHours();return r.twelve_hour&&(s>12&&(s-=12),s===0&&(s=12)),{parts:r.prefix.map(o=>{if(o.flag===4)return o.text==="mm"?{text:this.ZeroPad(t.getUTCMinutes().toString(),2)}:{text:this.ZeroPad(t.getUTCMinutes().toString(),1)};if(o.flag===3){switch(o.text.toLowerCase()){case"am/pm":case"a/p":{let l=o.text.split("/");return{text:t.getUTCHours()>12?l[1]:l[0]}}case"mmmmm":return{text:O.date_components.long_months[t.getUTCMonth()][0]};case"mmmm":return o.text==="MMMM"?{text:O.date_components.long_months[t.getUTCMonth()].toUpperCase()}:{text:O.date_components.long_months[t.getUTCMonth()]};case"mmm":return o.text==="MMM"?{text:O.date_components.short_months[t.getUTCMonth()].toUpperCase()}:{text:O.date_components.short_months[t.getUTCMonth()]};case"mm":return{text:this.ZeroPad((t.getUTCMonth()+1).toString(),2)};case"m":return{text:this.ZeroPad((t.getUTCMonth()+1).toString(),1)};case"ddddd":case"dddd":return o.text==="DDDDD"||o.text==="DDDD"?{text:O.date_components.long_days[t.getUTCDay()].toUpperCase()}:{text:O.date_components.long_days[t.getUTCDay()]};case"ddd":return o.text==="DDD"?{text:O.date_components.short_days[t.getUTCDay()].toUpperCase()}:{text:O.date_components.short_days[t.getUTCDay()]};case"dd":return{text:this.ZeroPad(t.getUTCDate().toString(),2)};case"d":return{text:this.ZeroPad(t.getUTCDate().toString(),1)};case"yyyy":case"yyy":return{text:t.getUTCFullYear().toString()};case"yy":case"y":return{text:this.ZeroPad((t.getUTCFullYear()%100).toString(),2)};case"hh":return{text:this.ZeroPad(s.toString(),2)};case"h":return{text:this.ZeroPad(s.toString(),1)};case"ss":return{text:this.ZeroPad(t.getUTCSeconds().toString(),2)};case"s":return{text:this.ZeroPad(t.getUTCSeconds().toString(),1)}}let a=o.text.match(/^(s+)\\.(0+)$/);if(a)return{text:this.ZeroPad(t.getUTCSeconds().toString(),a[1].length)+O.decimal_separator+(t.getUTCMilliseconds()/1e3).toFixed(a[2].length).substr(2)}}return{...o}}),section:r}}StringFormat(e,t){let r=[];for(let s of t.prefix)s.flag===5?r.push({text:e}):r.push({...s});return{parts:r,section:t}}Round2(e,t){let r=Math.pow(10,t);return Math.round(r*e)/r}FormatFraction(e,t){t.percent&&(e*=100);let r={denominator:1,numerator:Math.round(e),error:Math.abs(Math.round(e)-e)};if(t.fraction_denominator)r.denominator=t.fraction_denominator,r.numerator=Math.round(e*r.denominator);else if(r.error){let n=i.fraction_limits[t.fraction_denominator_digits-1]||i.fraction_limits[0];for(let o=2;o<=n;o++){let a=Math.round(e*o),l=Math.abs(a/o-e);if(l<r.error&&(r={numerator:a,denominator:o,error:l},!l))break}}let s=[];if(t.fraction_integer){let n=Math.floor(r.numerator/r.denominator);r.numerator%=r.denominator,(n||!r.numerator)&&(s.push(n.toString()),r.numerator&&s.push(" "))}else r.numerator||s.push("0");return r.numerator&&(s.push(r.numerator.toString()),s.push("/"),s.push(r.denominator.toString())),s.join("")}BaseFormat(e){if(this.sections[0].date_format)return this.DateFormat(Number(e));if(typeof e!="number")return this.StringFormat((e??"").toString(),this.sections[3]);let t=this.sections[0],r=this.decimal_zero_regexp[0];e<0&&(t=this.sections[1]);let s=t.percent?t.decimal_max_digits+2:t.decimal_max_digits,n=Math.pow(10,-s)/2,o=Math.abs(e);if(o<n&&(t=this.sections[2],r=this.decimal_zero_regexp[2]),t.scaling&&(o/=t.scaling,o<n&&(t=this.sections[2],r=this.decimal_zero_regexp[2])),t.string_format)return this.StringFormat(e.toString(),t);let a="";if(t.fraction_format)return{parts:[this.FormatFraction(o,t)],section:t};t.exponential?a=o.toExponential(t.decimal_max_digits):(t.percent&&(o*=100),a=this.Round2(o,t.decimal_max_digits).toFixed(t.decimal_max_digits)),r&&(a=a.replace(r,""));let l=a.split(".");for(;l[0].length<t.integer_min_digits;)l[0]=("0000000000000000"+l[0]).slice(-t.integer_min_digits);return t.integer_min_digits===0&&l[0]==="0"&&(l[0]=""),t.grouping&&(l[0]=l[0].replace(i.grouping_regexp,"$&"+O.grouping_separator)),{parts:l,section:t}}};var Me=class{static cache={};static complex_general;static symbolc_name_map={};static base_formats={Accounting:"_(#,##0.00_);(#,##0.00);-???",Number:"0.00",Integer:"0",Percent:"0.00%",General:"0.######",Fraction:"# ?/?",Dollar:"$* _(#,##0.00_);$* (#,##0.00);$* -???",Exponential:"0.000e","Short Date":"mm/dd/yy","Long Date":"dddd, mmm d yyyy",Timestamp:"mm-dd-yy hh:mm:ss"};static aliases={Scientific:"Exponential",Percentage:"Percent",Currency:"Dollar"};static Get(e,t=!1){if(t&&e==="General")return this.complex_general;let r=this.symbolc_name_map[e.toLowerCase()],s=this.cache[r||e];return s||(s=new Ne(e),this.cache[e]=s),s}static Equals(e,t){if(e===t)return!0;let r=this.Get(e),s=this.Get(t);return r.pattern===s.pattern}static Translate(e){let t=this.symbolc_name_map[e.toLowerCase()];return t?this.cache[t].toString():e}static SymbolicName(e){for(let t of Object.keys(this.base_formats))if(e===this.base_formats[t])return t;return null}static InitCache(){for(let e of Object.keys(this.base_formats))this.cache[e]=new Ne(this.base_formats[e]),this.symbolc_name_map[e.toLowerCase()]=e;this.cache.General.magic_decimal=!0,this.complex_general=new Ne("0.###"),this.complex_general.magic_decimal=!0;for(let e of Object.keys(this.aliases))this.cache[e]=this.cache[this.aliases[e]],this.symbolc_name_map[e.toLowerCase()]=e}};Me.InitCache();var jr=new Date().getUTCFullYear(),sr=class{compare_day;compare_month;TestDate(e){let t=Date.parse(e);if(isNaN(t))return!1;let r=new Date(t),n=e.replace(/[\\d\\-\\\\/,.\\s]+/g," ").toLocaleLowerCase().split(/\\s+/).map(l=>l.trim()).filter(l=>!!l);if(!n.length)return t;if(!this.compare_month){this.compare_month={};for(let l=0;l<12;l++)this.compare_month[O.date_components.long_months[l].toLocaleLowerCase().replace(/\\./,"")]=l,this.compare_month[O.date_components.short_months[l].toLocaleLowerCase().replace(/\\./,"")]=l}if(!this.compare_day){this.compare_day={};for(let l=0;l<7;l++)this.compare_day[O.date_components.long_days[l].toLocaleLowerCase().replace(/\\./,"")]=l,this.compare_day[O.date_components.short_days[l].toLocaleLowerCase().replace(/\\./,"")]=l}let o=!1,a=!1;for(let l of n){let c=!1;for(let[d,h]of Object.entries(this.compare_month))if(l===d){if(o||r.getUTCMonth()!==h)return!1;c=!0,o=!0}if(!c){for(let[d,h]of Object.entries(this.compare_day))if(l===d){if(a||r.getUTCDay()!==h)return!1;c=!0,a=!0}}if(!c)return!1}return a&&!o?!1:t}TryParse(e=""){let t={};if(e[0]==="\'")return{value:e,type:2};if(e==="")return{value:e,type:2};if(e==="NaN")return{value:NaN,type:3,hints:{Nan:!0}};let r=e.trim(),s=r.match(/^[$](.*?)$/);s&&(r=s[1],t.Currency=!0);let n=r.match(/^\\((.*?)\\)$/);n&&(r=n[1],t.Parens=!0);let o=r.match(/^(.*?)%\\s*$/);o&&(r=o[1],t.Percent=!0),O.decimal_separator==="."?/,/.test(r)&&(r=r.replace(/,/g,""),t.Grouping=!0):(r=r.replace(/(\\d)\\s+/g,"$1"),r=r.replace(/\\./g,""),r=r.replace(/,/,"."));let a=Number(r);if(a===null||isNaN(a)){let l=e.toLowerCase();if(l==="false")return{value:!1,type:4};if(l==="true")return{value:!0,type:4};let c=this.TestDate(e);if(c!==!1&&!isNaN(c)){let d=new Date(c),h=d.getUTCFullYear();if(h>=jr-200&&h<=jr+200)return t={Date:!0},(d.getHours()||d.getMinutes()||d.getSeconds())&&(t.Time=!0),{value:Br(c,!0),type:3,hints:t}}return{value:e,type:2}}if(n&&(a=-a),o){let l=a<0?-1:1,c=(l*a).toString().split(".");c[0]=("00"+c[0]).replace(/(\\d\\d)$/,".$1"),a=Number(c.join(""))*l}return/e/.test(e)&&(t.Exponential=!0),{value:a,type:3,hints:t}}},nr=new sr;var it=class i extends $e{constructor(t,r,s){super();this.model=t;this.view=r;this.autocomplete=s;this.parser=t.parser}static FormulaChars=("$^&*(-+={[<>/~%@"+O.argument_separator).split("");active_cell;autocomplete_matcher;container_node;active_editor;nodes=[];target_address;assume_formula=!1;text_formula=!1;get selecting(){if(this.assume_formula)return!0;if(!this.text_formula)return!1;if(this.active_editor&&this.active_editor.node===this.active_editor.node.ownerDocument.activeElement){let t=this.active_editor.node.ownerDocument.defaultView,r=t.getSelection();if(r?.rangeCount){let o=r?.getRangeAt(0);if((o?.endContainer instanceof t.HTMLElement?o.endContainer:o.endContainer?.parentElement)?.dataset.reference!==void 0)return!0;if(o?.startContainer instanceof t.Text){let l=(o.startContainer.textContent?.substring(0,o.startOffset)||"").trim();if(l.length&&i.FormulaChars.includes(l[l.length-1]))return!0}else console.info("mark 21",o)}let n=this.SubstringToCaret2(this.active_editor.node)[1].trim();if(n.length){let o=n[n.length-1];return i.FormulaChars.includes(o)}}return!1}composite_dependencies=[];get dependencies(){return this.composite_dependencies}parser;FocusEditor(){this.active_editor&&this.active_editor.node.focus()}RegisterListener(t,r,s){t.node.addEventListener(r,s),t.listeners||(t.listeners=new Map),t.listeners.set(r,s)}SelectAll(t){let s=t.ownerDocument.defaultView.getSelection(),n=t.ownerDocument.createRange();n.selectNode(t),s?.removeAllRanges(),s?.addRange(n)}SetCaret(t,r){let s=t.node.ownerDocument,n=s?.defaultView,o=n.getSelection(),a=s?.createRange(),l=d=>{let h=d;for(;h&&!(h instanceof n.Text)&&h.firstChild;)h=h.firstChild;return h},c=l(t.node);if(r){let d=l(r.node);o&&a&&(a.setStart(c,t.offset),a.setEnd(d,r.offset),o.removeAllRanges(),o.addRange(a))}else o&&a&&(a.setStart(c,t.offset),a.setEnd(c,t.offset),a.collapse(!0),o.removeAllRanges(),o.addRange(a))}InsertReference(t){if(!this.active_editor)return;let r=this.active_editor.node.ownerDocument.defaultView,s=r.getSelection();if(!s)throw new Error("error getting selection");if(s.rangeCount===0)return"";let n=s.getRangeAt(0),o=this.active_editor.node.textContent||"";if(n.startContainer instanceof r.Text)if(!n.collapsed&&n.startOffset<n.endOffset){let a=this.SubstringToCaret2(this.active_editor.node);this.active_editor.node.textContent=a[0]+t+o.substring(a[1].length),this.SetCaret({node:this.active_editor.node,offset:a[0].length},{node:this.active_editor.node,offset:a[0].length+t.length})}else{let a=n.startContainer.parentElement;if(a instanceof r.HTMLElement&&a.dataset.reference)a.textContent=t,this.SetCaret({node:a,offset:t.length});else{let l=this.SubstringToCaret2(this.active_editor.node)[1],c="",d=l.trim();if(d.length){let h=d[d.length-1];i.FormulaChars.includes(h)||(l.length===d.length?c=" +":c="+")}this.active_editor.node.textContent=l+c+t+o.substring(l.length),this.SetCaret({node:this.active_editor.node,offset:l.length+t.length+c.length})}}else n.startContainer instanceof r.HTMLElement?(n.startContainer.textContent=t,this.SetCaret({node:n.startContainer,offset:t.length})):console.warn("unexpected range start container",n.startContainer);this.UpdateText(this.active_editor),this.UpdateColors(),this.active_editor.node.dispatchEvent(new Event("input",{bubbles:!0,cancelable:!0}))}UpdateColors(t=!1,r=!1){let s=new Map,n=new Map;for(let a of this.nodes)for(let l of a.references||[]){let c=this.model.AddressToLabel(l);s.has(c)||(s.set(c,l),n.set(c,n.size))}for(let a of this.nodes){for(let l of Array.from(a.node.childNodes)){let c=l.ownerDocument?.defaultView;if(c&&l instanceof c.HTMLElement&&l.dataset.reference){let d=n.get(l.dataset.reference);l.dataset.highlightIndex=typeof d=="number"?(d%5+1).toString():"?"}}a.check=a.node.innerHTML.length}let o=Array.from(s.values());!t&&JSON.stringify(this.composite_dependencies)===JSON.stringify(o)||(this.composite_dependencies=o,r||this.Publish({type:"update",dependencies:this.composite_dependencies}))}UpdateDependencies(t,r){let s=[];for(let l of r.full_reference_list||[])switch(l.type){case"address":case"range":{let c=l.type==="range"?l.start:l;c.sheet_id||(c.sheet?c.sheet_id=this.model.sheets.Find(c.sheet)?.id||0:c.sheet_id=this.view.active_sheet.id),s.push(l);break}case"structured-reference":if(this.target_address){let c=this.model.ResolveStructuredReference(l,this.target_address);c&&s.push(c)}else console.info("target address not set");break;case"identifier":{let c=this.model.GetName(l.name,this.view.active_sheet.id);c?.type==="range"&&(c.area.count===1?s.push({type:"address",...c.area.start,label:l.name,position:l.position,id:l.id}):s.push({type:"range",start:{type:"address",position:l.position,id:l.id,label:l.name,...c.area.start},end:{type:"address",position:l.position,label:l.name,id:l.id,...c.area.end},label:l.name,position:l.position,id:l.id}));break}}s.sort((l,c)=>l.position-c.position);let n=[],o=new Set,a=new Map;for(let l of s){let c=this.model.AddressToLabel(l),d=Ee(l)?new L(l):new L(l.start,l.end);o.has(c)||(n.push(d),o.add(c)),a.set(l.label,c)}return this.UpdateReferences(t,n),a}UpdateReferences(t,r=[]){t.node.dataset.references=JSON.stringify(r.map(s=>this.model.AddressToLabel(s))),t.references=r}UpdateText(t,r={}){let s=t.node,n=s.textContent||"",o=le.GetInstance(s.ownerDocument);if(this.text_formula=n[0]==="=",this.active_editor&&!this.assume_formula&&(this.active_editor.node.spellcheck=!this.text_formula,!this.text_formula)||n===t.formatted_text)return;let[a,l]=this.SubstringToCaret2(s),c=a.length,d=l.length;if(c===0&&d===0&&(d=n.length),!n)this.UpdateReferences(t);else{let p=this.parser.Parse(n);if(p.expression){let u=this.UpdateDependencies(t,p),f=n[0]==="="?1:0,b=0,v,x,w=0,m,A=o.Fragment(),G=(P,D="text",z="",W=!1)=>{let V=o.Text(P);if((W||(c>w||c===0&&w===0)&&c<=w+P.length)&&(v={offset:c-w,node:V}),d>w&&d<=w+P.length&&(x={offset:d-w,node:V}),D!=="text"){let U=o.Create("span",D);z&&(U.dataset.reference=z),U.appendChild(V),A.appendChild(U)}else A.appendChild(V);m=V,w+=P.length};this.parser.Walk(p.expression,P=>{if(P.type==="missing"||P.type==="group"||P.type==="dimensioned")return!0;let D=P.position+f,z=n.substring(b,D),W="",V=P.type,U="";switch(P.type){case"identifier":W=n.substring(D,D+P.name.length),U=u.get(P.name)||"";break;case"call":W=n.substring(D,D+P.name.length);break;case"literal":if(typeof P.value=="string")W=n.substring(D,D+P.value.length+2),V="string";else return!1;break;case"address":case"range":case"structured-reference":U=u.get(P.label)||"???",W=r.rewrite_addresses?P.label:n.substring(D,D+P.label.length);break;default:return!0}return G(z),G(W,V,U),b=D+W.length,P.type!=="range"}),b<n.length&&G(n.substring(b)),v||(m?v={node:m,offset:(m.data||"").length}:G("",void 0,"",!0)),s.textContent="",s.appendChild(A),v&&!r.format_only&&s===this.active_editor?.node&&this.SetCaret(v,x)}}t.formatted_text=n;let h=this.autocomplete_matcher;h&&Promise.resolve().then(()=>{let p=h.Exec({text:n,cursor:l.length}),u=this.NodeAtIndex(p.completions?.length?p.position||0:p.function_position||0);this.Autocomplete(p,u)})}NodeAtIndex(t){let r=this.active_editor?.node.childNodes||[];for(let s=0;s<r.length;s++){let n=r[s].textContent?.length||0;if(n>t)return r[s];t-=n}}AcceptAutocomplete(t){if(!this.active_editor)return;let r;if(t.data&&t.data.completions){for(let d of t.data.completions)if(d.name.toLowerCase()===t.value?.toLowerCase()){r=d.type;break}}let s=t.data?.position||0,n=s+(t.data?.token?.length||0),o=r==="token"?t.value:t.value+"(",a=this.active_editor.node.textContent||"",l=a.substring(0,s)+o,c=l.length;l+=a.substring(n),this.active_editor.node.textContent=l,this.SetCaret({node:this.active_editor.node,offset:c}),this.autocomplete?.Hide(),this.UpdateText(this.active_editor),this.UpdateColors()}Autocomplete(t,r){if(!this.container_node||!this.autocomplete)return;let s;r?.nodeType===Node.ELEMENT_NODE?s=r.getBoundingClientRect():s=this.container_node.getBoundingClientRect();let n=new xe(Math.round(s.left),Math.round(s.top),s.width,s.height);this.autocomplete.Show(this.AcceptAutocomplete.bind(this),t,n)}SubstringToCaret2(t,r=!1){let s=["",""];if(!r&&t!==t.ownerDocument.activeElement||t!==this.active_editor?.node)return s;let o=t.ownerDocument.defaultView,a=[!1,!1],l=(d,h)=>{if(d===h.startContainer&&d===h.endContainer&&!(d instanceof o.Text)){a[0]=a[1]=!0,s[0]+=d.textContent,s[1]+=d.textContent;return}if(d===h.startContainer&&(s[0]+=(d.textContent||"").substring(0,h.startOffset),a[0]=!0),d===h.endContainer&&(s[1]+=(d.textContent||"").substring(0,h.endOffset),a[1]=!0),!(a[0]&&a[1])){if(d instanceof o.Text){let p=d.textContent||"";a[0]||(s[0]+=p),a[1]||(s[1]+=p)}else if(d.hasChildNodes()){for(let p of Array.from(d.childNodes))if(l(p,h),a[0]&&a[1])return}}},c=o.getSelection();if(c?.rangeCount??!1){let d=c?.getRangeAt(0);d&&l(t,d)}return s}};var Ys=typeof navigator>"u"?"":navigator.appVersion,Se=typeof navigator>"u"?"":navigator.userAgent,or=class{is_edge=/Edge/.test(Ys);is_ipad=/iPad|iPhone/.test(Se);is_android=/android|samsung/i.test(Se);is_mobile=this.is_ipad||this.is_android;is_firefox=/firefox/i.test(Se);is_safari=/safari/i.test(Se)&&!/edg/i.test(Se);is_mac=/macintosh/i.test(Se);is_chrome=/Chrome/i.test(Se);is_windows=/win64|win32|windows\\s+nt/i.test(Se);is_modern=!this.is_edge&&!(this.is_firefox&&this.is_android)&&/webkit|firefox/i.test(Se)},Js={is_edge:!1,is_ipad:!1,is_android:!1,is_firefox:!1,is_safari:!1,is_mac:!1,is_chrome:!1,trident:!1,is_windows:!1,is_modern:!0,is_node:!0,is_mobile:!1},At=typeof navigator>"u"?Js:new or;var Yi=De(Tt());var mo={"<":"<",">":">","&":"&",""":\'"\',"'":"\'"},_o=/&\\w+;/g,bo=i=>i.replace(_o,e=>mo[e]||e);var It=bo;var Ni=De(Tt()),go=(i,e)=>It(e);var br=i=>{if(i){if(Array.isArray(i))for(let e of i)br(e);else if(typeof i=="object")for(let[e,t]of Object.entries(i))if(e==="a$"){if(typeof t=="object"){let r={};for(let[s,n]of Object.entries(t))n!==void 0&&(r[s]=n);i[e]=r}}else br(t)}return i},Mi=i=>{let e=new Ni.XMLBuilder(i),t=e.build;return e.build=r=>t.call(e,br(r)),e},Rt={ignoreAttributes:!1,attributesGroupName:"a$",attributeNamePrefix:"",textNodeName:"t$",trimValues:!1,ignoreDeclaration:!0,isArray:i=>/Relationship$/.test(i),tagValueProcessor:go},F=class{static FindChild(e={},t){let r=t.split("/");for(let s of r)if(e=e[s],!e)return;return e}static FindAll(e={},t){let r=t.split("/");if(r[0]==="."&&r.shift(),r[0]==="..")throw new Error("invalid path (no access to parent)");if(r[0]==="")throw new Error("invalid path (no access to root)");if(r[0]==="**")throw new Error("ENOTIMPL");return this.FindAllTail(e,r)}static FindAllTail(e,t){if(Array.isArray(e))return e.reduce((r,s)=>r.concat(this.FindAllTail(s,t)),[]);for(let r=0;r<t.length;r++){let s=t[r];if(s==="*"?e=Object.entries(e).reduce((o,[a,l])=>(a!=="a$"&&a!=="t$"&&o.push(l),o),[]):e=e[s],!e)return[];if(Array.isArray(e)){if(r===t.length-1||e.length===0)return e;let n=t.slice(1);return e.reduce((o,a)=>o.concat(this.FindAllTail(a,n)),[])}}return[e]}};var We=class{strings=[];reverse={};FromXML(e){this.strings=[],this.reverse={};let t=0;for(let r of F.FindAll(e,"sst/si")){if(r.t!==void 0){let s="";typeof r.t=="string"?s=r.t:r.t.t$&&(s=r.t.t$),this.strings[t]=s,this.reverse[s]=t}else if(r.r){let n=F.FindAll(r.r,"t").map(o=>typeof o=="string"?o:o.t$||"").join("");this.strings[t]=n,this.reverse[n]=t}else console.warn(` ** unexpected shared string @ ${t}`),console.info(r);t++}}Get(e){return this.strings[e]}Ensure(e){e[0]==="\'"&&(e=e.substring(1));let t=this.reverse[e];return typeof t=="number"||(t=this.strings.length,this.strings.push(e),this.reverse[e]=t),t}};var Pe=class i{static color_map=["lt1","dk1","lt2","dk2","accent1","accent2","accent3","accent4","accent5","accent6","hlink","folHlink"];colors={};FromXML(e){let t=Object.keys(e)[0],r="",s=t.toString().match(/^(.*?):/);if(s&&(r=s[1]+":"),e[t]&&e[t][`${r}themeElements`]){let n=e[t][`${r}themeElements`][`${r}clrScheme`];for(let o of i.color_map){let a=n[`${r}${o}`],l,c="rgb";a[`${r}srgbClr`]?(c="rgb",l=a[`${r}srgbClr`].a$.val||""):a[`${r}sysClr`]&&(c="system",l=a[`${r}sysClr`].a$.lastClr||""),this.colors[o]={name:o,value:l,type:c}}}}};var Fi=11,gr={top:{},left:{},bottom:{},right:{},diagonal:{}},He=class i{static default_styles={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"mm-dd-yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@"};theme=new Pe;cell_xfs=[];fonts=[];borders=[];fills=[];number_formats=[];base_number_format_id=200;dxf_styles=[];modified=!1;Clamp(e,t,r){return Math.max(t,Math.min(e,r))}TintColor(e,t){let r=parseInt(e.substr(0,2),16),s=parseInt(e.substr(2,2),16),n=parseInt(e.substr(4,2),16);return t<0?(r=Math.round(r*t+r),s=Math.round(s*t+s),n=Math.round(n*t+n)):(r=Math.round((255-r)*t+r),s=Math.round((255-s)*t+s),n=Math.round((255-n)*t+n)),[r,s,n].map(o=>{let a=this.Clamp(o,0,255).toString(16);return a.length<2?"0"+a:a}).join("")}StyleOptionsFromProperties(e){let t=JSON.parse(JSON.stringify(e));for(let c of Object.keys(t))t[c]==="none"&&delete t[c];let r={},s={pattern_type:"none"},n=JSON.parse(JSON.stringify(gr)),o={font:r,border:n};t.number_format&&(o.number_format={format:Me.Translate(t.number_format),symbolic_name:t.number_format},/Scientific/i.test(t.number_format)&&(o.number_format.format="0.00E+00")),t.font_size?.unit&&t.font_size.value&&(t.font_size.unit==="em"?r.size=t.font_size.value*Fi:t.font_size.unit==="%"?r.size=t.font_size.value*Fi/100:t.font_size.unit==="pt"?r.size=t.font_size.value:t.font_size.unit==="px"?r.size=t.font_size.value*.75:console.warn("Unhandled font size unit",t.font_size)),t.bold&&(r.bold=!0),t.italic&&(r.italic=!0),t.underline&&(r.underline=!0),t.text&&(ye(t.text)?r.color_argb=t.text.text:we(t.text)&&(r.color_theme=Ue(t.text),t.text.tint&&(r.color_tint=t.text.tint)));let a=(c,d)=>{c.width&&(d.style="thin",ye(c.color)?d.rgba=c.color.text:we(c.color)?(d.theme=Ue(c.color),c.color.tint&&(d.tint=c.color.tint)):d.color=64)},l=se.CompositeBorders(t);switch(a(l.top,n.top),a(l.left,n.left),a(l.right,n.right),a(l.bottom,n.bottom),t.vertical_align){case"top":o.vertical_alignment="top";break;case"middle":o.vertical_alignment="center";break}switch(t.horizontal_align){case"center":o.horizontal_alignment="center";break;case"left":o.horizontal_alignment="left";break;case"right":o.horizontal_alignment="right";break}return o.indent=t.indent,t.fill&&(s.pattern_type="solid",ye(t.fill)?(s.fg_color={argb:t.fill.text},o.fill=s):we(t.fill)&&(s.fg_color={theme:Ue(t.fill)},t.fill.tint&&(s.fg_color.tint=t.fill.tint),o.fill=s)),t.wrap&&(o.wrap=!0),o}CellXfToStyle(e){let t={},r=i.default_styles[e.number_format];if(!r){for(let c of this.number_formats)if(c.id===e.number_format&&c.format){r=c.format;break}}if(r){let c=/\\[\\$(.)-[0-9A-Za-z]{1,4}\\]/g;r=r.replace(c,"$1");let d=/\\[\\$-[0-9A-Za-z]{1,4}\\]/g;r=r.replace(d,""),t.number_format=r}let s=this.fonts[0],n=this.fonts[e.font||0];n&&(n.bold&&(t.bold=!0),n.italic&&(t.italic=!0),n.underline&&(t.underline=!0),n.strike&&(t.strike=!0),s&&s.size&&n.size&&s.size!==n.size&&(t.font_size={value:100*n.size/s.size,unit:"%"}),n.color_argb?t.text={text:"#"+(n.color_argb.length>6?n.color_argb.substr(n.color_argb.length-6):n.color_argb)}:typeof n.color_theme=="number"&&(t.text={theme:n.color_theme}));let o=this.fills[e.fill||0];if(o&&o.pattern_type!=="none"){if(o.pattern_type==="gray"){let c=Math.round((o.pattern_gray||0)/1e3*255);t.fill={text:`rgb(${c}, ${c}, ${c})`}}o.pattern_type==="solid"&&o.fg_color&&(o.fg_color.argb?t.fill={text:"#"+(o.fg_color.argb.length>6?o.fg_color.argb.substr(o.fg_color.argb.length-6):o.fg_color.argb)}:typeof o.fg_color.theme=="number"&&(t.fill={theme:o.fg_color.theme},o.fg_color.tint&&(t.fill.tint=Math.round(o.fg_color.tint*1e3)/1e3)))}switch(e.horizontal_alignment){case"center":t.horizontal_align="center";break;case"right":t.horizontal_align="right";break;case"left":t.horizontal_align="left";break}switch(e.vertical_alignment){case"center":t.vertical_align="middle";break;case"top":t.vertical_align="top";break;case"bottom":t.vertical_align="bottom";break}t.indent=typeof e.indent=="string"?Number(e.indent):e.indent,e.wrap_text&&(t.wrap=!0);let a=c=>{if(typeof c.theme<"u")return{theme:c.theme,tint:c.tint}},l=this.borders[e.border||0];return l&&(l.bottom.style&&(l.bottom.style==="double"?t.border_bottom=2:t.border_bottom=1,t.border_bottom_fill=a(l.bottom)),l.left.style&&(t.border_left=1,t.border_left_fill=a(l.left)),l.top.style&&(t.border_top=1,t.border_top_fill=a(l.top)),l.right.style&&(t.border_right=1,t.border_right_fill=a(l.right))),t}CellXfToStyles(){return this.cell_xfs.map(e=>this.CellXfToStyle(e))}EnsureNumberFormat(e){if(typeof e.format>"u"||e.symbolic_name&&/^general$/i.test(e.symbolic_name))return 0;for(let r=0;r<100;r++){let s=i.default_styles[r];if(s&&s===e.format)return r}for(let r of this.number_formats)if(r.format===e.format)return r.id||0;this.modified=!0;let t={id:this.base_number_format_id++,format:e.format};return this.number_formats.push(t),t.id}CompareBorderEdge(e,t){return e.color===t.color&&e.rgba===t.rgba&&e.style===t.style&&e.theme===t.theme&&e.tint===t.tint}CompareBorder(e,t){return this.CompareBorderEdge(e.top,t.top)&&this.CompareBorderEdge(e.left,t.left)&&this.CompareBorderEdge(e.bottom,t.bottom)&&this.CompareBorderEdge(e.right,t.right)&&this.CompareBorderEdge(e.diagonal,t.diagonal)}EnsureBorder(e){for(let r=0;r<this.borders.length;r++){let s=this.borders[r];if(this.CompareBorder(s,e))return r}this.modified=!0;let t=JSON.parse(JSON.stringify(e));return this.borders.push(t),this.borders.length-1}MatchColor(e,t){return!e&&!t?!0:!e||!t?!1:e.argb===t.argb&&e.indexed===t.indexed&&e.theme===t.theme&&e.tint===t.tint}EnsureFill(e){for(let r=0;r<this.fills.length;r++){let s=this.fills[r];if(this.MatchColor(e.bg_color,s.bg_color)&&this.MatchColor(e.fg_color,s.fg_color)&&e.pattern_gray===s.pattern_gray&&e.pattern_type===s.pattern_type)return r}this.modified=!0;let t={...e};return this.fills.push(t),this.fills.length-1}EnsureFont(e){let t={...this.fonts[0],...e};for(let r=0;r<this.fonts.length;r++){let s=this.fonts[r];if(s.bold===t.bold&&s.italic===t.italic&&s.underline===t.underline&&s.size===t.size&&s.strike===t.strike&&s.color_argb===t.color_argb&&s.color_theme===t.color_theme&&s.color_tint===t.color_tint&&s.family===t.family)return r}return this.modified=!0,this.fonts.push(t),this.fonts.length-1}EnsureStyle(e){let t=this.EnsureFont(e.font||{}),r=this.EnsureBorder(e.border||gr),s=this.EnsureNumberFormat(e.number_format||{}),n=this.EnsureFill(e.fill||{pattern_type:"none"});for(let a=0;a<this.cell_xfs.length;a++){let l=this.cell_xfs[a];if(l.font===t&&l.fill===n&&l.border===r&&l.number_format===s&&!!l.wrap_text==!!e.wrap&&l.indent===e.indent&&(!e.horizontal_alignment&&!l.horizontal_alignment||e.horizontal_alignment===l.horizontal_alignment)&&(!e.vertical_alignment&&!l.vertical_alignment||e.vertical_alignment===l.vertical_alignment))return a}this.modified=!0;let o={font:t,fill:n,border:r,number_format:s,indent:e.indent};return e.horizontal_alignment&&(o.horizontal_alignment=e.horizontal_alignment),e.vertical_alignment&&(o.vertical_alignment=e.vertical_alignment),e.wrap&&(o.wrap_text=!0),this.cell_xfs.push(o),this.cell_xfs.length-1}FromXML(e,t){let r=F.FindAll.bind(F,e);this.theme=t;let s=r("styleSheet/numFmts/numFmt");this.number_formats=s.map(d=>({id:Number(d.a$?.numFmtId||0),format:It(d.a$?.formatCode||"")})),s=r("styleSheet/borders/border");let n=(d,h)=>{d?.a$&&(h.style=d.a$.style,typeof d.color=="object"&&(typeof d.color.a$?.indexed<"u"&&(h.color=Number(d.color.a$.indexed)),typeof d.color.a$?.theme<"u"&&(h.theme=Number(d.color.a$.theme)),typeof d.color.a$?.tint<"u"&&(h.tint=Number(d.color.a$.tint))))};this.borders=s.map(d=>{let h=JSON.parse(JSON.stringify(gr));return n(d.left,h.left),n(d.right,h.right),n(d.top,h.top),n(d.bottom,h.bottom),h}),s=r("styleSheet/cellXfs/xf"),this.cell_xfs=s.map(d=>{let h={number_format:Number(d.a$.numFmtId),font:Number(d.a$.fontId),fill:Number(d.a$.fillId),border:Number(d.a$.borderId),xfid:Number(d.a$.xfId)};return d.alignment&&(h.horizontal_alignment=d.alignment.a$.horizontal,h.vertical_alignment=d.alignment.a$.vertical,h.wrap_text=!!d.alignment.a$.wrapText,h.indent=d.alignment.a$.indent||void 0),h});let o=d=>{let h={pattern_type:"none"};if(d.patternFill){let p=d.patternFill.a$?.patternType;switch(p){case"none":case void 0:break;case"solid":h.pattern_type="solid",d.patternFill.fgColor&&(h.fg_color={theme:d.patternFill.fgColor.a$?.theme?Number(d.patternFill.fgColor.a$.theme):void 0,indexed:d.patternFill.fgColor.a$?.indexed?Number(d.patternFill.fgColor.a$.indexed):void 0,tint:d.patternFill.fgColor.a$?.tint?Number(d.patternFill.fgColor.a$.tint):void 0,argb:d.patternFill.fgColor.a$?.rgb});break;default:{let u=p?.match(/^gray(\\d+)$/);if(u){h.pattern_type="gray",h.pattern_gray=Number(u[1]);break}}}}return h};s=r("styleSheet/fills/fill"),this.fills=s.map(o);let a=d=>{let h={};return h.italic=typeof d.i<"u",h.bold=typeof d.b<"u",h.underline=typeof d.u<"u",h.strike=typeof d.strike<"u",d.sz&&(h.size=Number(d.sz.a$.val)),d.scheme&&(h.scheme=d.scheme.a$.val),d.name&&(h.name=d.name.a$.val),d.family&&(h.family=Number(d.family.a$.val)),d.color&&(d.color.a$?.theme&&(h.color_theme=Number(d.color.a$.theme)),d.color.a$?.tint&&(h.color_tint=Number(d.color.a$.tint)),d.color.a$?.rgb&&(h.color_argb=d.color.a$.rgb)),h};s=r("styleSheet/fonts/font"),this.fonts=s.map(a);let l=d=>{let h={};return d.a$.rgb?h.text="#"+d.a$.rgb.substring(2):d.a$.theme&&(h.theme=Number(d.a$.theme)||0,d.a$.tint&&(h.tint=Math.round(d.a$.tint*1e3)/1e3)),h},c=r("styleSheet/dxfs/dxf");this.dxf_styles=c.map(d=>{let h={};return d.font&&(h.bold=!!d.font.b,h.italic=!!d.font.i&&d.font.i.a$.val!=="0"),d.font?.color?.a$&&(h.text=l(d.font.color)),d.fill?.patternFill?.bgColor?.a$&&(h.fill=l(d.fill.patternFill.bgColor)),h})}};var me=(i,e,t,r)=>{let n=`rId${Object.keys(i).length+1}`;return i[n]={id:n,type:e,target:t,mode:r},n};var Pi={"c:tx":{"c:strRef":{"c:f":"","c:strCache":{"c:ptCount":{a$:{val:"1"}},"c:pt":{a$:{idx:"0"},"c:v":""}}}},"c:overlay":{a$:{val:"0"}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"0",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"1400",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",spc:"0",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}}},zi={"c:tx":{"c:rich":{"a:bodyPr":{a$:{rot:"0",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"1400",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",spc:"0",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:r":{"a:rPr":{a$:{lang:""}},"a:t":""}}}},"c:overlay":{a$:{val:"0"}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"0",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"1400",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",spc:"0",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}}},ot={"c:chartSpace":{a$:{"xmlns:c":"http://schemas.openxmlformats.org/drawingml/2006/chart","xmlns:a":"http://schemas.openxmlformats.org/drawingml/2006/main","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","xmlns:c16r2":"http://schemas.microsoft.com/office/drawing/2015/06/chart"},"c:date1904":{a$:{val:"0"}},"c:lang":{a$:{val:"en-US"}},"c:roundedCorners":{a$:{val:"0"}},"mc:AlternateContent":{a$:{"xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006"},"mc:Choice":{a$:{Requires:"c14","xmlns:c14":"http://schemas.microsoft.com/office/drawing/2007/8/2/chart"},"c14:style":{a$:{val:"102"}}},"mc:Fallback":{"c:style":{a$:{val:"2"}}}},"c:chart":{},"c:spPr":{"a:solidFill":{"a:schemeClr":{a$:{val:"bg1"}}},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:printSettings":{"c:headerFooter":{},"c:pageMargins":{a$:{b:"0.75",l:"0.7",r:"0.7",t:"0.75",header:"0.3",footer:"0.3"}},"c:pageSetup":{}}}};var Di={"c:idx":{a$:{val:"0"}},"c:order":{a$:{val:"0"}},"c:spPr":{"a:solidFill":{"a:schemeClr":{a$:{val:"accent1"}}},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:invertIfNegative":{a$:{val:"0"}},"c:val":{"c:numRef":{"c:f":""}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000000-F52E-47BC-822F-A046A80610BE}"}}}}},Li={"c:title":{},"c:autoTitleDeleted":{a$:{val:"0"}},"c:plotArea":{"c:layout":{},"c:barChart":{"c:barDir":{a$:{val:"col"}},"c:grouping":{a$:{val:"clustered"}},"c:varyColors":{a$:{val:"0"}},"c:ser":[],"c:dLbls":{"c:showLegendKey":{a$:{val:"0"}},"c:showVal":{a$:{val:"0"}},"c:showCatName":{a$:{val:"0"}},"c:showSerName":{a$:{val:"0"}},"c:showPercent":{a$:{val:"0"}},"c:showBubbleSize":{a$:{val:"0"}}},"c:gapWidth":{a$:{val:"219"}},"c:overlap":{a$:{val:"-27"}},"c:axId":[{a$:{val:"47003664"}},{a$:{val:"1789284464"}}]},"c:catAx":{"c:axId":{a$:{val:"47003664"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"b"}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"1789284464"}},"c:crosses":{a$:{val:"autoZero"}},"c:auto":{a$:{val:"1"}},"c:lblAlgn":{a$:{val:"ctr"}},"c:lblOffset":{a$:{val:"100"}},"c:noMultiLvlLbl":{a$:{val:"0"}}},"c:valAx":{"c:axId":{a$:{val:"1789284464"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"l"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:numFmt":{a$:{formatCode:"General",sourceLinked:"1"}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"47003664"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"between"}}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}}},"c:plotVisOnly":{a$:{val:"1"}},"c:dispBlanksAs":{a$:{val:"gap"}},"c:extLst":{"c:ext":{a$:{uri:"{56B9EC1D-385E-4148-901F-78D8002777C0}","xmlns:c16r3":"http://schemas.microsoft.com/office/drawing/2017/03/chart"},"c16r3:dataDisplayOptions16":{"c16r3:dispNaAsBlank":{a$:{val:"1"}}}}},"c:showDLblsOverMax":{a$:{val:"0"}}};var Gi={"c:title":{},"c:autoTitleDeleted":{a$:{val:"0"}},"c:plotArea":{"c:layout":{},"c:doughnutChart":{"c:varyColors":{a$:{val:"1"}},"c:ser":{"c:idx":{a$:{val:"0"}},"c:order":{a$:{val:"0"}},"c:dPt":{"c:idx":{a$:{val:"3"}},"c:bubble3D":{a$:{val:"0"}},"c:spPr":{"a:solidFill":{"a:schemeClr":{a$:{val:"accent4"}}},"a:ln":{a$:{w:"19050"},"a:solidFill":{"a:schemeClr":{a$:{val:"lt1"}}}},"a:effectLst":{}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000007-E886-49A6-AE6D-C67D8A27530F}"}}}}},"c:cat":{"c:strRef":{"c:f":""}},"c:val":{"c:numRef":{"c:f":""}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000000-3689-4BB4-A84F-05B9F3BBE577}"}}}}},"c:dLbls":{"c:showLegendKey":{a$:{val:"0"}},"c:showVal":{a$:{val:"0"}},"c:showCatName":{a$:{val:"0"}},"c:showSerName":{a$:{val:"0"}},"c:showPercent":{a$:{val:"0"}},"c:showBubbleSize":{a$:{val:"0"}},"c:showLeaderLines":{a$:{val:"1"}}},"c:firstSliceAng":{a$:{val:"0"}},"c:holeSize":{a$:{val:"75"}}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}}},"c:legend":{"c:legendPos":{a$:{val:"b"}},"c:overlay":{a$:{val:"0"}},"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"0",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{a$:{rtl:"0"},"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}}},"c:plotVisOnly":{a$:{val:"1"}},"c:dispBlanksAs":{a$:{val:"gap"}},"c:extLst":{"c:ext":{a$:{uri:"{56B9EC1D-385E-4148-901F-78D8002777C0}","xmlns:c16r3":"http://schemas.microsoft.com/office/drawing/2017/03/chart"},"c16r3:dataDisplayOptions16":{"c16r3:dispNaAsBlank":{a$:{val:"1"}}}}},"c:showDLblsOverMax":{a$:{val:"0"}}};var Ui={"c:title":{},"c:autoTitleDeleted":{a$:{val:"0"}},"c:plotArea":{"c:layout":{},"c:scatterChart":{"c:scatterStyle":{a$:{val:"lineMarker"}},"c:varyColors":{a$:{val:"0"}},"c:ser":[],"c:dLbls":{"c:showLegendKey":{a$:{val:"0"}},"c:showVal":{a$:{val:"0"}},"c:showCatName":{a$:{val:"0"}},"c:showSerName":{a$:{val:"0"}},"c:showPercent":{a$:{val:"0"}},"c:showBubbleSize":{a$:{val:"0"}}},"c:axId":[{a$:{val:"2028657983"}},{a$:{val:"2023395087"}}]},"c:valAx":[{"c:axId":{a$:{val:"2028657983"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"b"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"25000"}},"a:lumOff":{a$:{val:"75000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"2023395087"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"midCat"}}},{"c:axId":{a$:{val:"2023395087"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"l"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:numFmt":{a$:{formatCode:"0.00",sourceLinked:"1"}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"25000"}},"a:lumOff":{a$:{val:"75000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"2028657983"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"midCat"}}}],"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}}},"c:plotVisOnly":{a$:{val:"1"}},"c:dispBlanksAs":{a$:{val:"gap"}},"c:extLst":{"c:ext":{a$:{uri:"{56B9EC1D-385E-4148-901F-78D8002777C0}","xmlns:c16r3":"http://schemas.microsoft.com/office/drawing/2017/03/chart"},"c16r3:dataDisplayOptions16":{"c16r3:dispNaAsBlank":{a$:{val:"1"}}}}},"c:showDLblsOverMax":{a$:{val:"0"}}},$i={"c:spPr":{"a:ln":{a$:{w:"19050",cap:"rnd"},"a:solidFill":{"a:schemeClr":{a$:{val:"accent1"}}},"a:round":{}},"a:effectLst":{}},"c:marker":{"c:symbol":{a$:{val:"none"}}},"c:xVal":{"c:numRef":{"c:f":""}},"c:yVal":{"c:numRef":{"c:f":""}},"c:smooth":{a$:{val:"0"}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000000-1F6C-44A9-AA4F-6706F20CC72E}"}}}}};var Vi={"c:title":{},"c:autoTitleDeleted":{a$:{val:"0"}},"c:plotArea":{"c:layout":{},"c:bubbleChart":{"c:varyColors":{a$:{val:"0"}},"c:ser":[],"c:dLbls":{"c:showLegendKey":{a$:{val:"0"}},"c:showVal":{a$:{val:"0"}},"c:showCatName":{a$:{val:"0"}},"c:showSerName":{a$:{val:"0"}},"c:showPercent":{a$:{val:"0"}},"c:showBubbleSize":{a$:{val:"0"}}},"c:axId":[{a$:{val:"2028657983"}},{a$:{val:"2023395087"}}]},"c:valAx":[{"c:axId":{a$:{val:"2028657983"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"b"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"25000"}},"a:lumOff":{a$:{val:"75000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"2023395087"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"midCat"}}},{"c:axId":{a$:{val:"2023395087"}},"c:scaling":{"c:orientation":{a$:{val:"minMax"}}},"c:delete":{a$:{val:"0"}},"c:axPos":{a$:{val:"l"}},"c:majorGridlines":{"c:spPr":{"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"15000"}},"a:lumOff":{a$:{val:"85000"}}}},"a:round":{}},"a:effectLst":{}}},"c:numFmt":{a$:{formatCode:"0.00",sourceLinked:"1"}},"c:majorTickMark":{a$:{val:"none"}},"c:minorTickMark":{a$:{val:"none"}},"c:tickLblPos":{a$:{val:"nextTo"}},"c:spPr":{"a:noFill":{},"a:ln":{a$:{w:"9525",cap:"flat",cmpd:"sng",algn:"ctr"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"25000"}},"a:lumOff":{a$:{val:"75000"}}}},"a:round":{}},"a:effectLst":{}},"c:txPr":{"a:bodyPr":{a$:{rot:"-60000000",spcFirstLastPara:"1",vertOverflow:"ellipsis",vert:"horz",wrap:"square",anchor:"ctr",anchorCtr:"1"}},"a:lstStyle":{},"a:p":{"a:pPr":{"a:defRPr":{a$:{sz:"900",b:"0",i:"0",u:"none",strike:"noStrike",kern:"1200",baseline:"0"},"a:solidFill":{"a:schemeClr":{a$:{val:"tx1"},"a:lumMod":{a$:{val:"65000"}},"a:lumOff":{a$:{val:"35000"}}}},"a:latin":{a$:{typeface:"+mn-lt"}},"a:ea":{a$:{typeface:"+mn-ea"}},"a:cs":{a$:{typeface:"+mn-cs"}}}},"a:endParaRPr":{a$:{lang:"en-US"}}}},"c:crossAx":{a$:{val:"2028657983"}},"c:crosses":{a$:{val:"autoZero"}},"c:crossBetween":{a$:{val:"midCat"}}}],"c:spPr":{"a:noFill":{},"a:ln":{"a:noFill":{}},"a:effectLst":{}}},"c:plotVisOnly":{a$:{val:"1"}},"c:dispBlanksAs":{a$:{val:"gap"}},"c:extLst":{"c:ext":{a$:{uri:"{56B9EC1D-385E-4148-901F-78D8002777C0}","xmlns:c16r3":"http://schemas.microsoft.com/office/drawing/2017/03/chart"},"c16r3:dataDisplayOptions16":{"c16r3:dispNaAsBlank":{a$:{val:"1"}}}}},"c:showDLblsOverMax":{a$:{val:"0"}}},Zi={"c:spPr":{"a:solidFill":{"a:schemeClr":{a$:{val:"accent1"},"a:alpha":{a$:{val:"75000"}}}},"a:ln":{"a:noFill":{}},"a:effectLst":{}},"c:xVal":{"c:numRef":{"c:f":""}},"c:yVal":{"c:numRef":{"c:f":""}},"c:bubbleSize":{"c:numRef":{"c:f":""}},"c:bubble3D":{a$:{val:"0"}},"c:extLst":{"c:ext":{a$:{uri:"{C3380CC4-5D6E-409C-BE32-E72D297353CC}","xmlns:c16":"http://schemas.microsoft.com/office/drawing/2014/chart"},"c16:uniqueId":{a$:{val:"{00000000-03D7-43A5-9DAB-5775FFEF9C03}"}}}}};var Be=class i{constructor(e,t=i.next_chart_index++){this.options=e;this.index=t}static next_chart_index=1;relationships={};UpdateChartTitle(e){let t=this.options.title||{type:"literal",value:""};if(t&&t.type==="literal"){let r=JSON.parse(JSON.stringify(zi)),s=r["c:tx"]["c:rich"]["a:p"];s["a:r"]={"a:rPr":{a$:{lang:O.locale}},"a:t":t.value},e["c:title"]=r}else if(t){let r=JSON.parse(JSON.stringify(Pi));r["c:tx"]["c:strRef"]["c:f"]=t.label,e["c:title"]=r}}toJSON(){switch(this.options.type){case"column":case"bar":return this.CreateBarChart();case"scatter":case"scatter2":return this.CreateScatterChart();case"bubble":return this.CreateBubbleChart();case"donut":return this.CreateDonutChart();default:console.info("unhandled chart type",this.options.type)}return this.CreateBarChart()}CreateBubbleChart(){let e=JSON.parse(JSON.stringify(ot)),t=e["c:chartSpace"],r=JSON.parse(JSON.stringify(Vi));t["c:chart"]=r,this.UpdateChartTitle(t["c:chart"]);let s=t["c:chart"]["c:plotArea"]["c:bubbleChart"]["c:ser"],n=!1;for(let o=0;o<this.options.data.length;o++){let a=JSON.parse(JSON.stringify(Zi));if(a["c:idx"]={a$:{val:o.toString()}},a["c:order"]={a$:{val:o.toString()}},this.options.names&&this.options.names[o]){let l=this.options.names[o];switch(l.type){case"literal":a["c:tx"]={"c:v":l.value.toString()},n=!0;break;case"range":case"address":a["c:tx"]={"c:strRef":{"c:f":l.label}},n=!0;break}}o<6&&(a["c:spPr"]["a:solidFill"]["a:schemeClr"].a$.val=`accent${o+1}`),a["c:yVal"]["c:numRef"]["c:f"]=this.options.data[o]?.label,this.options.labels2&&this.options.labels2[o]&&(a["c:xVal"]["c:numRef"]["c:f"]=this.options.labels2[o]?.label),this.options.labels3&&this.options.labels3[o]&&(a["c:bubbleSize"]["c:numRef"]["c:f"]=this.options.labels3[o]?.label),s.push(a)}return n&&(t["c:chart"]["c:legend"]={"c:legendPos":{a$:{val:"b"}},"c:overlay":{a$:{val:"0"}}}),e}CreateScatterChart(){let e=JSON.parse(JSON.stringify(ot)),t=e["c:chartSpace"],r=JSON.parse(JSON.stringify(Ui));this.options.smooth&&(r["c:plotArea"]["c:scatterChart"]["c:scatterStyle"].a$.val="smoothMarker"),t["c:chart"]=r,this.UpdateChartTitle(t["c:chart"]);let s=t["c:chart"]["c:plotArea"]["c:scatterChart"]["c:ser"],n=!1;for(let o=0;o<this.options.data.length;o++){let a=JSON.parse(JSON.stringify($i));if(a["c:idx"]={a$:{val:o.toString()}},a["c:order"]={a$:{val:o.toString()}},this.options.names&&this.options.names[o]){let l=this.options.names[o];switch(l.type){case"literal":a["c:tx"]={"c:v":l.value.toString()},n=!0;break;case"range":case"address":a["c:tx"]={"c:strRef":{"c:f":l.label}},n=!0;break}}o<6&&(a["c:spPr"]["a:ln"]["a:solidFill"]["a:schemeClr"].a$.val=`accent${o+1}`),a["c:yVal"]["c:numRef"]["c:f"]=this.options.data[o]?.label,this.options.labels2&&this.options.labels2[o]&&(a["c:xVal"]["c:numRef"]["c:f"]=this.options.labels2[o]?.label),this.options.smooth&&(a["c:smooth"]={a$:{val:1}}),s.push(a)}return n&&(t["c:chart"]["c:legend"]={"c:legendPos":{a$:{val:"b"}},"c:overlay":{a$:{val:"0"}}}),e}CreateDonutChart(){let e=JSON.parse(JSON.stringify(ot)),t=e["c:chartSpace"],r=JSON.parse(JSON.stringify(Gi));t["c:chart"]=r,this.UpdateChartTitle(t["c:chart"]);let s=r["c:plotArea"]["c:doughnutChart"];return s&&(s["c:ser"]["c:cat"]["c:strRef"]["c:f"]=this.options.labels?.label||"",s["c:ser"]["c:val"]["c:numRef"]["c:f"]=this.options.data[0]?.label||""),e}CreateBarChart(){let e=JSON.parse(JSON.stringify(ot)),t=e["c:chartSpace"],r=JSON.parse(JSON.stringify(Li));t["c:chart"]=r,this.UpdateChartTitle(t["c:chart"]);let s=r["c:plotArea"]["c:barChart"];if(s){let n=s["c:barDir"];n&&(n.a$.val=this.options.type==="bar"?"bar":"col");let o=s["c:ser"];for(let a=0;a<this.options.data.length;a++){let l=JSON.parse(JSON.stringify(Di));l["c:idx"]={a$:{val:a.toString()}},l["c:order"]={a$:{val:a.toString()}},a<6&&(l["c:spPr"]["a:solidFill"]["a:schemeClr"].a$.val=`accent${a+1}`),!a&&this.options.labels&&(l["c:cat"]={"c:strRef":{"c:f":this.options.labels.label}}),l["c:val"]["c:numRef"]["c:f"]=this.options.data[a]?.label,o.push(l)}}return e}};var kt=class i{constructor(e,t=i.next_image_index++){this.options=e;this.index=t;switch(e.mimetype){case"svg+xml":this.extension="svg";break;case"image/png":this.extension="png";break;case"jpg":this.extension="jpeg";break;case"svg":case"png":case"jpeg":case"gif":this.extension=e.mimetype;break;default:console.warn("unhandled mime type",e.mimetype);break}}static next_image_index=1;extension=""};var Oi=9525,at=class i{constructor(e=i.next_drawing_index++){this.index=e}static next_drawing_index=1;sheet_drawing_relationship=0;charts=[];images=[];relationships={};AddImage(e,t){let r=new kt(e);if(r.extension){let s=me(this.relationships,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",`../media/image${r.index}.${r.extension}`);this.images.push({image:r,relationship:s,anchor:t})}}AddChart(e,t){let r=new Be(e),s=me(this.relationships,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",`../charts/chart${r.index}.xml`);this.charts.push({chart:r,anchor:t,relationship:s})}CornerToJSON(e){return{"xdr:col":e.column,"xdr:colOff":(e.column_offset||0)*Oi,"xdr:row":e.row,"xdr:rowOff":(e.row_offset||0)*Oi}}AnchorToJSON(e){return{"xdr:from":{...this.CornerToJSON(e.from)},"xdr:to":{...this.CornerToJSON(e.to)}}}toJSON(){let e=this.images.map(s=>({a$:{editAs:"oneCell"},...this.AnchorToJSON(s.anchor),"xdr:pic":{"xdr:nvPicPr":{"xdr:cNvPr":{a$:{id:s.image.index+1,name:"Image "+s.image.index}},"xdr:cNvPicPr":{"a:picLocks":{a$:{noChangeAspect:1}}}},"xdr:blipFill":{"a:blip":{a$:s.image.extension==="svg"?{"xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships"}:{"xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","r:embed":s.relationship},"a:extLst":{"a:ext":[{a$:{uri:"{28A0092B-C50C-407E-A947-70E740481C1C}"},"a14:useLocalDpi":{a$:{"xmlns:a14":"http://schemas.microsoft.com/office/drawing/2010/main",val:0}}},s.image.extension==="svg"?{a$:{uri:"{96DAC541-7B7A-43D3-8B79-37D633B846F1}"},"asvg:svgBlip":{a$:{"xmlns:asvg":"http://schemas.microsoft.com/office/drawing/2016/SVG/main","r:embed":s.relationship}}}:void 0]}},"a:stretch":{"a:fillRect":{}}},"xdr:spPr":{"a:xfrm":{"a:off":{a$:{x:0,y:0}},"a:ext":{a$:{cx:4057650,cy:6172200}}},"a:prstGeom":{a$:{prst:"rect"},"a:avLst":{}}}},"xdr:clientData":{}})),t=this.charts.map(s=>({...this.AnchorToJSON(s.anchor),"xdr:graphicFrame":{a$:{macro:""},"xdr:nvGraphicFramePr":{"xdr:cNvPr":{a$:{id:s.chart.index+1,name:`Chart ${s.chart.index}`}},"xdr:cNvGraphicFramePr":{}},"xdr:xfrm":{"a:off":{a$:{x:0,y:0}},"a:ext":{a$:{cx:0,cy:0}}},"a:graphic":{"a:graphicData":{a$:{uri:"http://schemas.openxmlformats.org/drawingml/2006/chart"},"c:chart":{a$:{"xmlns:c":"http://schemas.openxmlformats.org/drawingml/2006/chart","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","r:id":s.relationship}}}}},"xdr:clientData":{}}));return{"xdr:wsDr":{a$:{"xmlns:xdr":"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing","xmlns:a":"http://schemas.openxmlformats.org/drawingml/2006/main"},"xdr:twoCellAnchor":[...t,...e]}}}};var Bi=De(Tt());var je=i=>"row"in i&&"col"in i,ze=i=>"from"in i&&"to"in i&&je(i.from)&&je(i.to),Et=(i,e)=>e.sheet===i.sheet&&e.row>=i.from.row&&e.row<=i.to.row&&e.col>=i.from.col&&e.col<=i.to.col,yr=(i,e=0,t=0)=>({from:{row:i.from.row+e,col:i.from.col+t,sheet:i.from.sheet},to:{row:i.to.row+e,col:i.to.col+t,sheet:i.to.sheet}});var Nt=class{constructor(e={}){this.options=e}path;rels_path;rels={};sheet_data={};shared_strings;extent;visible_state;tab_selected=!1;default_width=0;drawings=[];TranslateAddress(e){e=e.toUpperCase();let t=e.match(/([A-Z]+\\d+):([A-Z]+\\d+)/);if(t)return{from:this.TranslateAddress(t[1]),to:this.TranslateAddress(t[2])};let r=0,s=0;if(t=e.match(/^([A-Z]+)(\\d+)$/),t){r=Number(t[2]),s=0;let n=t[1].length;for(let o=0;o<n;o++){let a=t[1].charCodeAt(o)-64;s=s*26+a}}return{row:r,col:s}}Address(e,t=!1){if(ze(e))return this.Address(e.from,t)+":"+this.Address(e.to,t);let r="",s=e.col;for(;s>0;){let o=(s-1)%26+1;r=String.fromCharCode(64+o)+r,s=(s-o)/26}let n=e.sheet?`\'${e.sheet}\'!`:"";return t?`${n}$${r}$${e.row}`:n+r+e.row}NormalizeAddress(e){let t,r;return typeof e=="string"?(t=e.toUpperCase(),r=this.TranslateAddress(t)):(r=e,t=this.Address(r)),{a:t,rc:r}}Parse(){let e=this.sheet_data.worksheet?.dimension?.a$?.ref,t=this.TranslateAddress(e||"");ze(t)?this.extent=JSON.parse(JSON.stringify(t)):this.extent={from:JSON.parse(JSON.stringify(t)),to:JSON.parse(JSON.stringify(t))}}};var vr=De(Wi()),Hi=De(ut()),Ye=class{records;text=new Map;constructor(e){this.records=vr.default.parse(e)}Has(e){return this.text.has(e)||!!this.records?.[e]}ArrayBuffer(){let e={};if(this.records)for(let[r,s]of Object.entries(this.records))e[r]=new Uint8Array(s);let t=new TextEncoder;for(let[r,s]of this.text.entries())e[r]=t.encode(s);return vr.default.encode(e)}SetBinary(e,t,r){if(r==="base64"){let s=Hi.default.toByteArray(t);this.records[e]=s}else throw new Error("unsupported encoding: "+r)}Set(e,t){this.text.set(e,t),this.records[e]&&delete this.records[e]}GetBinary(e){let t=this.records[e];if(t)return new Uint8Array(t);throw new Error("path not in records: "+e)}Get(e){let t=this.text.get(e);if(t)return t;let r=this.records[e];if(r)return t=new TextDecoder().decode(r),this.text.set(e,t),delete this.records[e],t;throw console.info(this),new Error("path not in zip file: "+e)}};var Ie=new Bi.XMLParser(Rt),Ft={greaterThan:">",greaterThanOrEqual:">=",lessThan:"<",lessThanOrEqual:"<=",equal:"=",notEqual:"<>"};var Mt=class{constructor(e){this.zip=e}xml={};shared_strings=new We;style_cache=new He;theme=new Pe;named=[];rels={};sheets=[];active_tab=0;get sheet_count(){return this.sheets.length}ReadRels(e){let t={},r=this.zip.Has(e)?this.zip.Get(e):"",s=Ie.parse(r||"");for(let n of s.Relationships?.Relationship||[]){let o=n.a$.Id;t[o]={id:o,type:n.a$.Type,target:n.a$.Target}}return t}Init(){this.rels=this.ReadRels("xl/_rels/workbook.xml.rels");let e=this.zip.Has("xl/sharedStrings.xml")?this.zip.Get("xl/sharedStrings.xml"):"",t=Ie.parse(e||"");this.shared_strings.FromXML(t),e=this.zip.Get("xl/theme/theme1.xml"),t=Ie.parse(e),this.theme.FromXML(t),e=this.zip.Get("xl/styles.xml"),t=Ie.parse(e),this.style_cache.FromXML(t,this.theme),e=this.zip.Get("xl/workbook.xml"),t=Ie.parse(e),this.named=[];let r=F.FindAll(t,"workbook/definedNames/definedName");for(let o of r){let a=o.a$?.name,l=o.t$||"",c=o.a$?.localSheetId?Number(o.a$.localSheetId):void 0;this.named.push({name:a,expression:typeof l=="string"?l:l?.toString()||"",local_scope:c})}let s=F.FindAll(t,"workbook/bookViews/workbookView");s[0]?.a$?.activeTab&&(this.active_tab=Number(s[0].a$.activeTab)||0);let n=F.FindAll(t,"workbook/sheets/sheet");for(let o of n){let a=o.a$?.name;if(a){let l=o.a$.state,c=o.a$["r:id"],d=new Nt({name:a,rid:c,id:Number(o.a$.sheetId)});l==="hidden"?d.visible_state=1:l==="veryHidden"&&(d.visible_state=2),d.shared_strings=this.shared_strings,d.path=`xl/${this.rels[c].target}`,d.rels_path=d.path.replace("worksheets","worksheets/_rels")+".rels",e=this.zip.Get(d.path),d.sheet_data=Ie.parse(e||""),d.rels=this.ReadRels(d.rels_path),d.Parse(),this.sheets.push(d)}}}ReadTable(e){let t=this.zip.Get(e.replace(/^../,"xl"));if(!t)return;let r=Ie.parse(t),s=r.table?.a$?.name||"";return{name:s,display_name:r.table?.a$?.displayName||s,ref:r.table?.a$.ref||"",totals_row_shown:Number(r.table?.a$.totalsRowShown||"0")||0,totals_row_count:Number(r.table?.a$.totalsRowCount||"0")||0}}ReadDrawing(e){let t=this.zip.Get(e.replace(/^../,"xl"));if(!t)return;let r=Ie.parse(t),s=this.ReadRels(e.replace(/^..\\/drawings/,"xl/drawings/_rels")+".rels"),n=[],o=F.FindAll(r,"xdr:wsDr/xdr:twoCellAnchor"),a=(l={})=>({column:l["xdr:col"]||0,column_offset:l["xdr:colOff"]||0,row:l["xdr:row"]||0,row_offset:l["xdr:rowOff"]||0});for(let l of o){let c={from:a(l["xdr:from"]),to:a(l["xdr:to"])},d=F.FindAll(l,"xdr:graphicFrame/a:graphic/a:graphicData/c:chart")[0];if(d||(d=F.FindAll(l,"mc:AlternateContent/mc:Choice/xdr:graphicFrame/a:graphic/a:graphicData/cx:chart")[0]),d&&d.a$&&d.a$["r:id"]){let h={type:"chart",anchor:c},p=s[d.a$["r:id"]];p&&p.target&&(h.chart=this.ReadChart(p.target)),n.push(h)}else{let h=F.FindAll(l,"xdr:pic/xdr:blipFill/a:blip")[0];if(h&&h.a$["r:embed"]){let p=s[h.a$["r:embed"]];if(p&&p.target&&/(?:jpg|jpeg|png|gif)$/i.test(p.target)){let u=p.target.replace(/^\\.\\./,"xl"),f=u.replace(/^.*\\//,""),b={type:"image",anchor:c,image:this.zip.GetBinary(u),filename:f};n.push(b)}}else{let p,u=F.FindAll(l,"xdr:sp/xdr:spPr")[0];if(u){p={};let b=u["a:solidFill"];if(b&&b["a:schemeClr"]?.a$?.val){let v=b["a:schemeClr"].a$.val.match(/accent(\\d+)/);if(v&&(p.fill={theme:Number(v[1])+3},b["a:schemeClr"]["a:lumOff"]?.a$?.val)){let x=Number(b["a:schemeClr"]["a:lumOff"].a$.val);isNaN(x)||(p.fill.tint=x/1e5)}}}let f=F.FindAll(l,"xdr:sp/xdr:txBody")[0];if(f){let b=[],v=F.FindAll(f,"a:p");for(let x of v){let w=[],m,A=x["a:pPr"];A&&(m={},A.a$?.algn==="r"?m.horizontal_align="right":A.a$?.algn==="ctr"&&(m.horizontal_align="center"));let G=x["a:r"];if(G){Array.isArray(G)||(G=[G]);for(let P of G){let D={text:P["a:t"]||""},z=P["a:rPr"];z&&(D.style={},z.a$?.b==="1"&&(D.style.bold=!0),z.a$?.i==="1"&&(D.style.italic=!0)),w.push(D)}}b.push({content:w,style:m})}n.push({type:"textbox",style:p,paragraphs:b,anchor:c})}}}}return n}ReadChart(e){let t=this.zip.Get(e.replace(/^../,"xl"));if(!t)return;let r=Ie.parse(t),s={type:0},n=F.FindChild(r,"c:chartSpace/c:chart/c:title");if(n){let l=F.FindChild(n,"c:tx/c:strRef/c:f");if(l)typeof l=="string"?s.title=l:l.t$&&(s.title=l.t$);else{let c=F.FindAll(n,"c:tx/c:rich/a:p/a:r/a:t");s.title=\'"\'+c.join("")+\'"\'}}let o=(l,c)=>{let d=[],h=l["c:ser"]||[];Array.isArray(h)||(h=[h]);for(let p of h){let u=d.length,f=p["c:order"];f&&(u=Number(f.a$?.val||0)||0);let b={},v=F.FindChild(p,"c:tx/c:v");if(v){let x=v;x&&(b.title=`"${x}"`)}else v=F.FindChild(p,"c:tx/c:strRef/c:f"),v&&(b.title=v);if(c===4||c===7){let x=F.FindChild(p,"c:xVal/c:numRef/c:f");x&&(b.categories=x);let w=F.FindChild(p,"c:yVal/c:numRef/c:f");if(w&&(b.values=w),c===7){let m=F.FindChild(p,"c:bubbleSize/c:numRef/c:f");m&&(b.bubble_size=m)}}else{let x=F.FindChild(p,"c:val/c:numRef/c:f");x&&(b.values=x);let w=F.FindChild(p,"c:cat/c:strRef/c:f");w||(w=F.FindChild(p,"c:cat/c:numRef/c:f")),w&&(b.categories=w)}d[u]=b}return d},a=F.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:barChart");if(a&&(s.type=2,a["c:barDir"]&&a["c:barDir"].a$?.val==="col"&&(s.type=1),s.series=o(a)),a||(a=F.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:lineChart"),a&&(s.type=3,s.series=o(a))),a||(a=F.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:doughnutChart"),a&&(s.type=5,s.series=o(a))),a||(a=F.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:pieChart"),a&&(s.type=6,s.series=o(a))),a||(a=F.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:scatterChart"),a&&(s.type=4,s.series=o(a,4))),a||(a=F.FindChild(r,"c:chartSpace/c:chart/c:plotArea/c:bubbleChart"),a&&(s.type=7,s.series=o(a,7))),!a){let l=F.FindAll(r,"cx:chartSpace/cx:chart/cx:plotArea/cx:plotAreaRegion/cx:series");if(l?.length&&l.every(c=>c.a$?.layoutId==="boxWhisker")){s.type=8,s.series=[];let c=F.FindAll(r,"cx:chartSpace/cx:chartData/cx:data");for(let d of l){let h={},p=Number(d["cx:dataId"]?.a$?.val);for(let b of c)if(Number(b.a$?.id)===p){h.values=b["cx:numDim"]?.["cx:f"]||"";break}let u=F.FindAll(d,"cx:tx/cx:txData");u&&(u[0]?.["cx:f"]?h.title=u[0]["cx:f"]:u[0]?.["cx:v"]&&(h.title=\'"\'+u[0]["cx:v"]+\'"\'));let f=F.FindAll(r,"cx:chartSpace/cx:chart/cx:title/cx:tx/cx:txData");f&&(f[0]?.["cx:f"]?s.title=f[0]["cx:f"]:f[0]?.["cx:v"]&&(s.title=\'"\'+f[0]["cx:v"]+\'"\')),s.series.push(h)}return s}}return a||console.info("Chart type not handled"),s}GetNamedRanges(){return this.named}};var Re=`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n`,xr=i=>{if(ye(i))return{a$:{rgb:"FF"+i.text.substring(1)}};if(we(i))return{a$:{theme:Ue(i),tint:i.tint}}},Pt=class{zip;xmloptions={format:!0,attributesGroupName:"a$",textNodeName:"t$",ignoreAttributes:!1,suppressEmptyNode:!0};xmlbuilder1=Mi(this.xmloptions);xmlparser2=new Yi.XMLParser(Rt);parser=new Ve;decorated_functions={};Init(e={}){for(let r of Object.keys(e))this.decorated_functions[r.toLowerCase()]=e[r];let t=ji.toByteArray(Ir);this.zip=new Ye(t)}WriteRels(e,t,r=!1){if(!this.zip)throw new Error("missing zip");let s=Object.keys(e),n={Relationships:{a$:{xmlns:"http://schemas.openxmlformats.org/package/2006/relationships"},Relationship:s.map(a=>{let l=e[a],c={Id:l.id,Target:l.target,Type:l.type};return l.mode&&(c.TargetMode=l.mode),{a$:c}})}},o=Re+this.xmlbuilder1.build(n);r&&console.info(o),this.zip.Set(t,o)}WriteStyleCache(e){if(!this.zip)throw new Error("missing zip");let t=u=>{let f={};return u.indexed!==void 0&&(f.indexed=u.indexed),u.theme!==void 0&&(f.theme=u.theme),u.tint!==void 0&&(f.tint=u.tint),u.argb!==void 0&&(f.rgb=u.argb),f},r=e.cell_xfs.map(u=>{let f={a$:{numFmtId:u.number_format,fontId:u.font,fillId:u.fill,borderId:u.border}};if(u.horizontal_alignment||u.vertical_alignment||u.wrap_text||u.indent){let b={};u.horizontal_alignment&&(b.horizontal=u.horizontal_alignment),u.vertical_alignment&&(b.vertical=u.vertical_alignment),u.wrap_text&&(b.wrapText=1),u.indent&&u.horizontal_alignment!=="center"&&(b.indent=u.indent),f.alignment={a$:b}}return f}),s=u=>{if(u.color)return{indexed:u.color};if(u.rgba)return{rgb:u.rgba};if(typeof u.theme<"u")return{theme:u.theme,tint:u.tint}},n=e.borders.map(u=>{let f={},b={},v={},x={},w={};if(u.top.style){f.a$={style:u.top.style};let m=s(u.top);m&&(f.color={a$:m})}if(u.left.style){b.a$={style:u.left.style};let m=s(u.left);m&&(b.color={a$:m})}if(u.bottom.style){x.a$={style:u.bottom.style};let m=s(u.bottom);m&&(x.color={a$:m})}if(u.right.style){v.a$={style:u.right.style};let m=s(u.right);m&&(v.color={a$:m})}if(u.diagonal.style){w.a$={style:u.diagonal.style};let m=s(u.diagonal);m&&(w.color={a$:m})}return{left:b,right:v,top:f,bottom:x,diagonal:w}}),o=e.fills.map(u=>({patternFill:{a$:{patternType:u.pattern_gray!==void 0?`gray${u.pattern_gray}`:u.pattern_type},bgColor:u.bg_color?{a$:t(u.bg_color)}:void 0,fgColor:u.fg_color?{a$:t(u.fg_color)}:void 0}})),a=u=>{if(!(typeof u>"u"))return{a$:{val:u}}},l=e.fonts.map(u=>({b:u.bold?"":void 0,i:u.italic?"":void 0,u:u.underline?"":void 0,strike:u.strike?"":void 0,sz:a(u.size),family:a(u.family),name:a(u.name),scheme:a(u.scheme),color:u.color_argb?{a$:{rgb:u.color_argb}}:typeof u.color_theme<"u"?{a$:{theme:u.color_theme,tint:u.color_tint}}:void 0})),c=(u,f)=>{if(f.length)return{a$:{count:f.length},[u]:f}},d=e.dxf_styles.map(u=>{let f={};return(u.text||u.bold||u.italic||u.underline)&&(f.font={b:u.bold?{}:void 0,i:u.italic?{}:void 0,u:u.underline?{}:void 0,strike:u.strike?{}:void 0,color:xr(u.text)}),u.fill&&(f.fill={patternFill:{bgColor:xr(u.fill)}}),f}),h={styleSheet:{a$:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"x14ac x16r2 xr","xmlns:x14ac":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac","xmlns:x16r2":"http://schemas.microsoft.com/office/spreadsheetml/2015/02/main","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision"},numFmts:e.number_formats.length?{a$:{count:e.number_formats.length},numFmt:e.number_formats.map(u=>({a$:{numFmtId:u.id,formatCode:u.format}}))}:void 0,fonts:c("font",l),fills:c("fill",o),borders:c("border",n),cellXfs:c("xf",r),dxfs:c("dxf",d)}},p=Re+this.xmlbuilder1.build(h);this.zip?.Set("xl/styles.xml",p)}WriteSharedStrings(e){if(!this.zip)throw new Error("missing zip");let t={sst:{a$:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main",count:e.strings.length,uniqueCount:e.strings.length},si:[...e.strings.map(s=>({t:s}))]}},r=Re+this.xmlbuilder1.build(t);this.zip.Set("xl/sharedStrings.xml",r)}SheetStyle(e,t){if(!e.sheet_style)return 0;let r=t.StyleOptionsFromProperties(e.sheet_style);return t.EnsureStyle(r)}RowStyle(e,t,r){let s=e.styles||e.cell_style_refs||[],n=[e.sheet_style];if(e.row_style){let a=e.row_style[r];typeof a=="number"&&(a=s[a]),a&&n.push(a)}let o=t.StyleOptionsFromProperties(se.Composite(n));return t.EnsureStyle(o)}ColumnStyle(e,t,r){let s=e.styles||e.cell_style_refs||[],n=[e.sheet_style];if(e.column_style){let a=e.column_style[r];typeof a=="number"&&(a=s[a]),a&&n.push(a)}let o=t.StyleOptionsFromProperties(se.Composite(n));return t.EnsureStyle(o)}StyleFromCell(e,t,r,s,n={}){let o=e.styles||e.cell_style_refs||[],a=[e.sheet_style];if(e.row_style){let c=e.row_style[r];typeof c=="number"&&(c=o[c]),c&&a.push(c)}if(e.column_style){let c=e.column_style[s];typeof c=="number"&&(c=o[c]),c&&a.push(c)}a.push(n);let l=t.StyleOptionsFromProperties(se.Composite(a));return t.EnsureStyle(l)}NormalizeAddress(e,t){let r=e.type==="address"?[e]:[e.start,e.end];for(let s of r)s.absolute_row=!0,s.absolute_column=!0,s.sheet||(s.sheet=t.name);return e.type==="range"&&(e.end.sheet=void 0),e.label=this.parser.Render(e),e}EnsureRange(e){return e.type==="range"?e:{type:"range",start:e,end:e,label:e.label,id:e.id,position:e.position}}AnnotationLayoutToAnchor(e,t){let r=s=>{let n=t.column_width&&t.column_width[s.address.column]?t.column_width[s.address.column]:t.default_column_width||100,o=t.row_height&&t.row_height[s.address.row]?t.row_height[s.address.row]:t.default_row_height||20;return{...s.address,row_offset:Math.round(s.offset.y*o),column_offset:Math.round(s.offset.x*n)}};return{from:r(e.tl),to:r(e.br)}}AnnotationRectToAnchor(e,t){let r={from:{row:-1,column:-1},to:{row:-1,column:-1}},s={top:0,left:0,width:301,height:301,...e},n={...s,right:s.left+s.width,bottom:s.top+s.height};for(let o=0,a=0;a<1e3;a++){let l=t.column_width&&t.column_width[a]?t.column_width[a]:t.default_column_width||100;if(r.from.column<0&&n.left<=o+l&&(r.from.column=a,r.from.column_offset=n.left-o),r.to.column<0&&n.right<=o+l){r.to.column=a,r.to.column_offset=n.right-o;break}o+=l}for(let o=0,a=0;a<1e3;a++){let l=t.row_height&&t.row_height[a]?t.row_height[a]:t.default_row_height||20;if(r.from.row<0&&n.top<=o+l&&(r.from.row=a,r.from.row_offset=n.top-o),r.to.row<0&&n.bottom<=o+l){r.to.row=a,r.to.row_offset=n.bottom-o;break}o+=l}return r}ParseImages(e){let t=[];for(let r of e.annotations||[])if(r.type==="image"&&r.data?.src){let s=r.data.src,n=s.match(/^data:image\\/([^;]*?);base64,/);if(n){let o=s.substr(n[0].length),a=n[1],l={data:o,mimetype:a,encoding:"base64"};switch(a){case"svg+xml":case"webp":case"jpeg":case"jpg":case"image/png":case"png":case"gif":r.layout?t.push({anchor:this.AnnotationLayoutToAnchor(r.layout,e),options:l}):r.rect?t.push({anchor:this.AnnotationRectToAnchor(r.rect,e),options:l}):console.warn("annotation missing layout");break;default:console.info("unhandled image type",a);break}}}return t}ParseCharts(e){let t=[],r=(s,n,o)=>{if(s.type==="range")n.data.push(this.NormalizeAddress(s,e));else if(s.type==="call"){if(/group/i.test(s.name))for(let a of s.args||[])r(a,n,o?o+" (recurse)":void 0);else if(/series/i.test(s.name)){let[a,l,c,d]=s.args;c&&(c.type==="range"||c.type==="address")?(n.data.push(this.EnsureRange(this.NormalizeAddress(c,e))),a&&(n.names||(n.names=[]),a.type==="address"&&this.NormalizeAddress(a,e),a.type==="range"?(this.NormalizeAddress(a.start,e),n.names[n.data.length-1]=a.start):n.names[n.data.length-1]=a),n.labels2||(n.labels2=[]),l&&(l.type==="range"||l.type==="address")&&(n.labels2[n.data.length-1]=this.EnsureRange(this.NormalizeAddress(l,e))),d&&(d.type==="range"||d.type==="address")&&(n.labels3||(n.labels3=[]),n.labels3[n.data.length-1]=this.EnsureRange(this.NormalizeAddress(d,e)))):console.info("invalid series missing Y",{y:c,arg:s,ref:o})}}};for(let s of e.annotations||[]){let n=this.parser.Parse(s.formula||"");if(n.expression&&n.expression.type==="call"){let o="";switch(n.expression.name.toLowerCase()){case"line.chart":o="scatter";break;case"bubble.chart":o="bubble";break;case"scatter.line":o="scatter2";break;case"donut.chart":o="donut";break;case"bar.chart":o="bar";break;case"column.chart":o="column";break}if(o==="column"||o==="donut"||o==="bar"||o==="scatter"||o==="scatter2"||o==="bubble"){let a={type:o,data:[]},l=o==="scatter2"||o==="bubble"?1:2,c=n.expression.args[l];if(c&&c.type==="literal"?a.title=c:c&&c.type==="address"&&(a.title=this.NormalizeAddress(c,e)),n.expression.args[0]){let h=n.expression.args[0];if(o==="scatter2"||o==="bar"||o==="column"||o==="scatter"||o==="bubble")r(h,a,e.name);else if(h.type==="range")a.data.push(this.NormalizeAddress(h,e));else if(h.type==="call"&&/group/i.test(h.name))for(let p of h.args)p.type==="range"?a.data.push(this.NormalizeAddress(p,e)):p.type==="call"&&/series/i.test(p.name)&&p.args[2]&&p.args[2].type==="range"&&a.data.push(this.NormalizeAddress(p.args[2],e));else h.type==="call"&&/series/i.test(h.name)&&h.args[2]&&h.args[2].type==="range"&&a.data.push(this.NormalizeAddress(h.args[2],e))}o!=="scatter2"&&o!=="bubble"&&n.expression.args[1]&&n.expression.args[1].type==="range"&&(a.labels=this.NormalizeAddress(n.expression.args[1],e)),(o==="scatter"&&n.expression.args[4]&&n.expression.args[4].type==="literal"&&n.expression.args[4].value.toString().toLowerCase()==="smooth"||o==="scatter2"&&n.expression.args[2]&&n.expression.args[2].type==="literal"&&/smooth/i.test(n.expression.args[2].value.toString()))&&(a.smooth=!0);let d=s.rect;s.layout?t.push({anchor:this.AnnotationLayoutToAnchor(s.layout,e),options:a}):d?t.push({anchor:this.AnnotationRectToAnchor(d,e),options:a}):console.warn("annotation missing layout")}}}return t}FormulaText(e,t){if(e[0]!=="=")return e;let r=this.parser.Parse(e);if(r.expression){this.parser.Walk(r.expression,n=>{if(n.type==="call"){let o=n.name.toLowerCase();this.decorated_functions[o]&&(n.name=this.decorated_functions[o]+"."+n.name)}return!0});let s=t.table?.name||"";return this.parser.Render(r.expression,{missing:"",long_structured_references:!0,table_name:s})}else return console.warn("parsing function failed"),console.warn(e),e.substring(1)}Export(e){let t=0,r=[];for(let w=0;w<e.sheet_data.length;w++){let m=e.sheet_data[w],A=m.id||0;A&&(r[A]=m.name||""),A===e.active_sheet&&(t=w)}let s=new We,n=new He,o=new Pe,a=this.zip?.Get("xl/theme/theme1.xml");o.FromXML(this.xmlparser2.parse(a||"")),a=this.zip?.Get("xl/styles.xml"),n.FromXML(this.xmlparser2.parse(a||""),o),at.next_drawing_index=1,Be.next_chart_index=1;let l=[],c=[];for(let w=0;w<e.sheet_data.length;w++){let m=e.sheet_data[w],A={},G={xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"x14ac xr xr2 xr3","xmlns:x14ac":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision","xmlns:xr2":"http://schemas.microsoft.com/office/spreadsheetml/2015/revision2","xmlns:xr3":"http://schemas.microsoft.com/office/spreadsheetml/2016/revision3","xr:uid":"{D37933E2-499F-4789-8D13-194E11B743FC}"},P=m.default_row_height?m.default_row_height/20*15:15,D=m.styles||m.cell_style_refs||[],z=new Xe;z.FromJSON(m.data,D);for(let y of m.cell_styles){let N=z.EnsureCell(y);N.style||(N.style=D[y.ref])}let W={start:{row:z.rows+1,column:z.columns+1},end:{row:z.rows+1,column:z.columns+1}},V=[],U=[],K=[],Q=[],X=[],ee=[],j=this.SheetStyle(m,n);for(let y=0;y<z.data.length;y++){let N=this.RowStyle(m,n,y);if(z.data[y]&&z.data[y].length){y<W.start.row&&(W.start.row=y);let $={start:-1,end:-1},M=[];for(let R=0;R<z.data[y].length;R++){ee[R]||(ee[R]=this.ColumnStyle(m,n,R));let I=z.data[y][R];if(I){if(I.table&&I.table.area.start.row===y&&I.table.area.start.column===R){let ae=new L(I.table.area.start,I.table.area.end),lt=c.length+1,Xi=`../tables/table${lt}.xml`,Lt=[];for(let de=0;de<ae.columns;de++){let q=z.data[y][R+de],ke="";q.type!==2?(typeof q.calculated<"u"?ke=q.calculated.toString():typeof q.value<"u"&&(ke=q.value.toString()),q.type=2,q.value=ke):ke=q.value||"",ke||(ke=`Column${de+1}`);let dt=ke,Ut=!1,Qi=1;for(;!Ut;){Ut=!0;e:for(let qi of Lt)if(qi.toLowerCase()===dt.toLowerCase()){Ut=!1,dt=`${ke}${++Qi}`;break e}}q.value=dt,Lt.push(dt)}let ct;if(I.table.totals_row){ct=[];for(let de=0;de<ae.columns;de++){let q=z.data[ae.end.row][ae.start.column+de];q.type&&(q.type===1?ct[de]={type:"formula",value:(q.value||"").toString().substring(1)}:(q.type!==2&&(q.type=2,q.value=q.value?.toString()||""),ct[de]={type:"label",value:q.value}))}}let Gt={rel:me(A,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/table",Xi),index:lt,ref:ae.spreadsheet_label,name:`Table${lt}`,display_name:`Table${lt}`,totals_row_shown:0,totals_row_count:I.table?.totals_row?1:0,columns:Lt,footers:ct};if(I.table.totals_row){let de=new L(ae.start,{row:ae.end.row-1,column:ae.end.column});Gt.filterRef=de.spreadsheet_label}X.push(Gt),c.push(Gt)}if(I.merge_area&&I.merge_area.start.row===y&&I.merge_area.start.column===R&&Q.push(new L(I.merge_area.start,I.merge_area.end)),I.hyperlink){let ae=me(A,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",I.hyperlink,"External");U.push({rel:ae,target:I.hyperlink,address:{row:y,column:R}})}if(I.type===1&&/^=?sparkline\\./i.test(I.value)){K.push({address:{row:y,column:R},formula:I.value,style:I.style});continue}R<W.start.column&&(W.start.column=R),$.start<0&&($.start=R),$.end=R;let H=this.StyleFromCell(m,n,y,R,I.style);if(I.type===0&&(N&&H===N||!N&&ee[R]&&H===ee[R]))continue;let Y,pe,be;switch(I.type){case 1:switch(be=this.FormulaText(I.value,I),I.calculated_type){case 2:Y=I.calculated,pe="str";break;case 3:Y=I.calculated;break;case 4:Y=I.calculated?1:0,pe="b";break}break;case 2:Y=s.Ensure(I.value),pe="s";break;case 3:Y=I.value;break;case 4:Y=I.value?1:0,pe="b";break}I.area&&I.area.start.row===y&&I.area.start.column===R&&typeof be=="string"&&(be={t$:be,a$:{t:"array",ref:I.area.spreadsheet_label}}),M.push({a$:{r:L.CellAddressToLabel({row:y,column:R}),t:pe,s:H},f:be,v:Y})}}if(M.length||N&&N!==j){let R,I,H,Y;m.row_height&&typeof m.row_height[y]=="number"&&m.row_height[y]!==m.default_row_height&&(R=1,I=m.row_height[y]*3/4),N&&N!==j&&(H=N,Y=1),V.push({a$:{r:y+1,spans:`${$.start+1}:${$.end+1}`,customHeight:R,ht:I,s:H,customFormat:Y},c:M})}}}let oe=[];for(let y=0;y<m.columns;y++){let N={index:y};m.column_width&&m.default_column_width&&typeof m.column_width[y]=="number"&&m.column_width[y]!==m.default_column_width&&(N.width=ft(m.column_width[y]));let $=ee[y];$&&$!==j&&(N.style=$),(N.style!==void 0||N.width!==void 0)&&(oe[y]=N)}let te;if(oe.length||j){let y=[],N=ft(m.default_column_width||90);{let $=0;for(let M of oe)M&&(j&&M.index>$+1&&y.push({a$:{min:$+1,max:M.index,style:j,width:N}}),y.push({a$:{min:M.index+1,max:M.index+1,style:M.style===void 0?j:M.style,width:M.width===void 0?N:M.width,customWidth:M.width===void 0?void 0:1}}),$=M.index);j&&$<16384&&y.push({a$:{min:$+1,max:16384,style:j,width:N}}),te={col:y}}}let ue;m.data_validations?.length&&(ue={a$:{count:m.data_validations.length},dataValidation:m.data_validations.map(y=>{let N=y.target.map(M=>new L(M.start,M.end).spreadsheet_label).join(" "),$;if(y.type==="range"){let M={id:0,type:"range",label:"",position:0,start:{...y.area.start,absolute_column:!0,absolute_row:!0,id:0,label:"",position:0,type:"address"},end:{...y.area.end,absolute_column:!0,absolute_row:!0,id:0,label:"",position:0,type:"address"}};typeof y.area.start.sheet_id<"u"&&(M.start.sheet=r[y.area.start.sheet_id]),$=this.parser.Render(M)}else y.type==="list"&&($=`"${y.list.join(",")}"`);return{a$:{type:"list",allowBlank:1,showInputMessage:1,showErrorMessage:1,sqref:N},formula1:$}})});let ce;X.length&&(ce={a$:{count:X.length},tablePart:X.map(y=>({a$:{"r:id":y.rel||""}}))});for(let y of X){let N={};y.totals_row_count&&(N.totalsRowCount=1);let $={a$:{count:(y.columns||[]).length},tableColumn:(y.columns||[]).map((I,H)=>{let Y=(y.footers||[])[H];return{a$:{id:H+1,name:I||`Column${H+1}`,totalsRowLabel:Y?.type==="label"?Y.value:void 0,totalsRowFunction:Y?.type==="formula"?"custom":void 0},totalsRowFormula:Y?.type==="formula"?Y.value:void 0}})},M={table:{a$:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"xr xr3","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision","xmlns:xr3":"http://schemas.microsoft.com/office/spreadsheetml/2016/revision3",id:y.index||0,name:y.name,displayName:y.display_name,...N,ref:y.ref},autoFilter:{a$:{ref:y.filterRef||y.ref}},tableColumns:$,tableStyleInfo:{a$:{name:"TableStyleMedium2",showFirstColumn:0,showLastColumn:0,showRowStripes:1,showColumnStripes:0}}}},R=Re+this.xmlbuilder1.build(M);this.zip?.Set(`xl/tables/table${y.index}.xml`,R)}let g;if(m.conditional_formats?.length){let y=[],N=1,$={},M=Object.entries(Ft).map(R=>($[R[1]]=R[0],R[1]));M.sort((R,I)=>I.length-R.length);for(let R of m.conditional_formats){let I=0;switch(R.type!=="gradient"&&(I=n.dxf_styles.length,n.dxf_styles.push(R.style)),R.type){case"cell-match":{let H="",Y="";for(let pe of M)if(new RegExp("^"+pe+"\\\\s").test(R.expression)){H=$[pe],Y=R.expression.substring(pe.length).trim();break}H&&y.push({a$:{sqref:new L(R.area.start,R.area.end).spreadsheet_label},cfRule:{a$:{type:"cellIs",dxfId:I,operator:H,priority:N++},formula:Y}})}break;case"expression":y.push({a$:{sqref:new L(R.area.start,R.area.end).spreadsheet_label},cfRule:{a$:{type:"expression",dxfId:I,priority:N++},formula:R.expression}});break;case"duplicate-values":y.push({a$:{sqref:new L(R.area.start,R.area.end).spreadsheet_label},cfRule:{a$:{type:R.unique?"uniqueValues":"duplicateValues",dxfId:I,priority:N++}}});break;case"gradient":{let H=[],Y=[];for(let be of R.stops){be.value===0?H.push({a$:{type:"min"}}):be.value===1?H.push({a$:{type:"max"}}):H.push({a$:{type:"percentile",val:be.value*100}});let ae=xr(be.color);ae&&Y.push(ae)}let pe={a$:{sqref:new L(R.area.start,R.area.end).spreadsheet_label},cfRule:{a$:{type:"colorScale",priority:N++},colorScale:{cfvo:H,color:Y}}};y.push(pe)}break}}y.length&&(g=y.length>1?y:y[0])}let T;Q.length&&(T={a$:{count:Q.length},mergeCell:Q.map(y=>({a$:{ref:y.spreadsheet_label}}))});let E;U.length&&(E={hyperlink:U.map(y=>({a$:{"r:id":y.rel,ref:new L(y.address).spreadsheet_label,"xr:uid":"{0C6B7792-7EA0-4932-BF15-D49C453C565D}"}}))});let k;if(K.length){let y={a$:{"xmlns:xm":"http://schemas.microsoft.com/office/excel/2006/main"},"x14:sparklineGroup":K.map(N=>{let $=this.parser.Parse(N.formula),M="";if($.expression&&$.expression.type==="call"&&$.expression.args.length>0){let I=$.expression.args[0];if(I.type==="range"||I.type==="address"){let H=I.type==="range"?I.start:I;H.sheet||(typeof H.sheet_id<"u"?H.sheet=r[H.sheet_id]:H.sheet=m.name),M=this.parser.Render(I)}}let R={rgb:"FF376092"};return N.style?.text&&(ye(N.style.text)?R.rgb=N.style.text.text:we(N.style.text)&&(R.rgb=void 0,R.theme=N.style.text.theme.toString(),R.tint=typeof N.style.text.tint=="number"?N.style.text.tint.toString():void 0)),{a$:{displayEmptyCellsAs:"gap",displayHidden:"1",type:/column/i.test(N.formula)?"column":void 0},"x14:colorSeries":{a$:{...R}},"x14:sparklines":{"x14:sparkline":{"xm:f":M,"xm:sqref":new L(N.address).spreadsheet_label}}}})};k={ext:{a$:{uri:"{05C60535-1F16-4fd2-B633-F4F36F0B64E0}","xmlns:x14":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"},"x14:sparklineGroups":y}}}let S,C=this.ParseCharts(m),B=this.ParseImages(m);if(C.length||B.length){let y=new at;for(let M of C)y.AddChart(M.options,M.anchor);for(let M of B)y.AddImage(M.options,M.anchor);for(let{image:M}of y.images)M.options.data&&this.zip?.SetBinary(`xl/media/image${M.index}.${M.extension}`,M.options.data,M.options.encoding);for(let{chart:M}of y.charts){let R=M.toJSON(),I=Re+this.xmlbuilder1.build(R);this.zip?.Set(`xl/charts/chart${M.index}.xml`,I),this.WriteRels(M.relationships,`xl/charts/_rels/chart${M.index}.xml.rels`)}this.WriteRels(y.relationships,`xl/drawings/_rels/drawing${y.index}.xml.rels`);let N=Re+this.xmlbuilder1.build(y.toJSON());this.zip?.Set(`xl/drawings/drawing${y.index}.xml`,N),l.push(y),S={a$:{"r:id":me(A,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",`../drawings/drawing${y.index}.xml`)}}}let Z={};if(m.tab_color){if(we(m.tab_color))Z.sheetPr={tabColor:{a$:{theme:m.tab_color.theme,tint:m.tab_color.tint}}};else if(ye(m.tab_color)){let y=m.tab_color.text||"";/^#[0-9a-fA-F]*$/.test(y)&&(Z.sheetPr={tabColor:{a$:{rgb:"FF"+y.substring(1)}}})}}let fe={a$:{"x14ac:dyDescent":.25,defaultRowHeight:P===15?void 0:P,customHeight:P===15?void 0:1,defaultColWidth:m.default_column_width?ft(m.default_column_width):void 0}},_e={worksheet:{a$:{...G},...Z,dimension:{a$:{ref:new L(W.start,W.end).spreadsheet_label}},sheetViews:{sheetView:{a$:{workbookViewId:0}}},sheetFormatPr:fe,cols:te,sheetData:{row:V},mergeCells:T,conditionalFormatting:g,dataValidations:ue,hyperlinks:E,pageMargins:{a$:{left:.7,right:.7,top:.75,bottom:.75,header:.3,footer:.3}},drawing:S,tableParts:ce,extLst:k}},Je=Re+this.xmlbuilder1.build(_e);this.zip?.Set(`xl/worksheets/sheet${w+1}.xml`,Je),Object.keys(A).length&&this.WriteRels(A,`xl/worksheets/_rels/sheet${w+1}.xml.rels`)}this.WriteSharedStrings(s),this.WriteStyleCache(n);let d={};me(d,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles","styles.xml"),me(d,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme","theme/theme1.xml"),me(d,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings","sharedStrings.xml");let h=e.sheet_data.map((w,m)=>me(d,"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet",`worksheets/sheet${m+1}.xml`));this.WriteRels(d,"xl/_rels/workbook.xml.rels");let p=e.named?.length?{definedName:(e.named||[]).map(w=>{let m;if(w.scope){let A=w.scope.toLowerCase();for(let[G,P]of e.sheet_data.entries())if(P.name?.toLowerCase()===A){m=G.toString();break}}return{a$:{name:w.name,localSheetId:m},t$:w.expression}})}:void 0,u={workbook:{a$:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"x15 xr xr6 xr10 xr2","xmlns:x15":"http://schemas.microsoft.com/office/spreadsheetml/2010/11/main","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision","xmlns:xr6":"http://schemas.microsoft.com/office/spreadsheetml/2016/revision6","xmlns:xr10":"http://schemas.microsoft.com/office/spreadsheetml/2016/revision10","xmlns:xr2":"http://schemas.microsoft.com/office/spreadsheetml/2015/revision2"},workbookPr:{a$:{defaultThemeVersion:"166925"}},bookViews:{workbookView:{a$:{activeTab:t||0}}},sheets:{sheet:e.sheet_data.map((w,m)=>({a$:{name:w.name||`Sheet${m+1}`,sheetId:m+1,"r:id":h[m],state:w.visible===!1?"hidden":void 0}}))},definedNames:p}},f=Re+this.xmlbuilder1.build(u);this.zip?.Set("xl/workbook.xml",f);let b={};for(let w of l)for(let m of w.images)switch(m.image.extension){case"gif":case"png":case"jpeg":b[m.image.extension]="image/"+m.image.extension;break;case"svg":b.svg="image/svg+xml";break}let v={Types:{a$:{xmlns:"http://schemas.openxmlformats.org/package/2006/content-types"},Default:[{a$:{Extension:"rels",ContentType:"application/vnd.openxmlformats-package.relationships+xml"}},{a$:{Extension:"xml",ContentType:"application/xml"}},...Object.keys(b).map(w=>({a$:{Extension:w,ContentType:b[w]}}))],Override:[{a$:{PartName:"/xl/workbook.xml",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"}},...e.sheet_data.map((w,m)=>({a$:{ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",PartName:`/xl/worksheets/sheet${m+1}.xml`}})),...l.reduce((w,m)=>w.concat([...m.charts.map(A=>({a$:{ContentType:"application/vnd.openxmlformats-officedocument.drawingml.chart+xml",PartName:`/xl/charts/chart${A.chart.index}.xml`}})),{a$:{ContentType:"application/vnd.openxmlformats-officedocument.drawing+xml",PartName:`/xl/drawings/drawing${m.index}.xml`}}]),[]),{a$:{PartName:"/xl/theme/theme1.xml",ContentType:"application/vnd.openxmlformats-officedocument.theme+xml"}},{a$:{PartName:"/xl/styles.xml",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"}},{a$:{PartName:"/xl/sharedStrings.xml",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"}},...c.map(w=>({a$:{ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml",PartName:`/xl/tables/table${w.index||0}.xml`}})),{a$:{PartName:"/docProps/core.xml",ContentType:"application/vnd.openxmlformats-package.core-properties+xml"}},{a$:{PartName:"/docProps/app.xml",ContentType:"application/vnd.openxmlformats-officedocument.extended-properties+xml"}}]}},x=Re+this.xmlbuilder1.build(v);this.zip?.Set("[Content_Types].xml",x)}ArrayBuffer(){if(!this.zip)throw new Error("missing zip");return this.zip.ArrayBuffer()}Blob(){if(!this.zip)throw new Error("missing zip");let e=this.zip.ArrayBuffer();return new Blob([e],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}};var Ji=De(ut());var wo=i=>typeof i=="object"&&typeof i.$t<"u",zt=class{parser=new Ve;workbook;zip;Init(e){this.zip=new Ye(e),this.workbook=new Mt(this.zip),this.workbook.Init()}SheetCount(){return this.workbook?.sheet_count||0}ParseCell(e,t,r,s,n,o){let a=t.a$?.r;if(!a){console.warn("cell missing address");return}let l=e.TranslateAddress(a);if(ze(l)){console.warn("cell has range address");return}let c,d="undefined",h,p="undefined";if(t.a$?.t&&t.a$.t==="s"){if(d="string",typeof t.v<"u"){let b=Number(t.v);!isNaN(b)&&e.shared_strings&&(c=e.shared_strings.Get(b)||"",c[0]==="="&&(c="\'"+c))}}else if(typeof t.f<"u"){d="formula";let b=(typeof t.f=="string"?t.f:t.f.t$)||"";if(b){if(c="="+b.replace(/^_xll\\./g,""),/#REF/.test(b))c=b;else{let v=this.parser.Parse(b);v.expression&&(this.parser.Walk(v.expression,x=>(x.type==="call"&&(/^_xll\\./.test(x.name)&&(x.name=x.name.substring(5)),/^_xlfn\\./.test(x.name)&&(console.info("xlfn:",x.name),x.name=x.name.substring(6)),/^_xlws\\./.test(x.name)&&(console.info("xlws:",x.name),x.name=x.name.substring(6))),!0)),c="="+this.parser.Render(v.expression,{missing:""}))}typeof t.f!="string"&&t.f.a$?.t==="shared"&&t.f.a$.si&&(r[t.f.a$.si]={row:l.row-1,column:l.col-1,formula:c,parse_result:this.parser.Parse(c)})}else if(typeof t.f!="string"&&t.f.a$?.t==="shared"&&t.f.a$.si){let v=r[t.f.a$.si];v&&(v.parse_result.expression?c="="+this.parser.Render(v.parse_result.expression,{offset:{rows:l.row-1-v.row,columns:l.col-1-v.column},missing:""}):c=v.formula)}if(typeof t.f!="string"&&t.f.a$?.t==="array"){let v=e.TranslateAddress(t.f.a$.ref||"");ze(v)&&s.push(yr(v,-1,-1))}if(typeof t.v<"u"){let v=typeof t.v=="object"?t.v?.t$:t.v,x=Number(v.toString());isNaN(x)?(p="string",h=v.toString()):(p="number",h=x)}}else if(typeof t.v<"u"){let b=Number(t.v.toString());isNaN(b)?(d="string",c=t.v.toString()):(d="number",c=b)}let u={row:l.row-1,col:l.col-1};for(let b of s)Et(b,u)&&(u.row!==b.from.row||u.col!==b.from.col)&&(p=d,h=c,c=void 0,d="undefined");let f={row:u.row,column:u.col,value:c,type:d};typeof h<"u"&&(f.calculated_type=p,f.calculated=h),t.a$?.s&&(f.style_ref=Number(t.a$.s));for(let b of o)b.address.row===l.row&&b.address.col===l.col&&(f.hyperlink=b.reference);for(let b of n)Et(b,u)&&(f.merge_area={start:{row:b.from.row,column:b.from.col},end:{row:b.to.row,column:b.to.col}});for(let b of s)Et(b,u)&&(f.area={start:{row:b.from.row,column:b.from.col},end:{row:b.to.row,column:b.to.col}});return f}AddressToArea(e){return je(e)?{start:{row:e.row-1,column:e.col-1},end:{row:e.row-1,column:e.col-1}}:{start:{row:e.from.row-1,column:e.from.col-1},end:{row:e.to.row-1,column:e.to.col-1}}}ParseConditionalFormat(e,t){let r=this.AddressToArea(e),s=Ft;switch(t.a$.type){case"duplicateValues":case"uniqueValues":{let n={};if(t.a$.dxfId){let o=Number(t.a$.dxfId);isNaN(o)||(n=this.workbook?.style_cache.dxf_styles[o]||{})}return{type:"duplicate-values",area:r,style:n,unique:t.a$.type==="uniqueValues",priority:t.a$.priority?Number(t.a$.priority):void 0}}case"cellIs":if(t.a$.operator&&(t.formula||typeof t.formula=="number")){let n={};if(t.a$.dxfId){let a=Number(t.a$.dxfId);isNaN(a)||(n=this.workbook?.style_cache.dxf_styles[a]||{})}if(t.a$.operator==="between"&&Array.isArray(t.formula)&&t.formula.length===2&&typeof t.formula[0]=="number"&&typeof t.formula[1]=="number")return{type:"cell-match",expression:"",between:t.formula,area:r,style:n,priority:t.a$.priority?Number(t.a$.priority):void 0};let o=s[t.a$.operator||""];if(!o)console.info("unhandled cellIs operator:",t.a$.operator,{rule:t});else return{type:"cell-match",expression:o+" "+t.formula,area:r,style:n,priority:t.a$.priority?Number(t.a$.priority):void 0}}else console.info("miss?",t);break;case"containsErrors":case"notContainsErrors":case"expression":if(t.formula){typeof t.formula!="string"&&(wo(t.formula)?t.formula=t.formula.t$:(console.info("unexpected conditional expression",{rule:t}),t.formula=""));let n={};if(t.a$.dxfId){let o=Number(t.a$.dxfId);isNaN(o)||(n=this.workbook?.style_cache.dxf_styles[o]||{})}if(t.a$.type==="expression"&&(r.start.row!==r.end.row||r.start.column!==r.end.column)){this.parser.Save(),this.parser.SetLocaleSettings(".");let o=[],a=new L(r.start,r.end),l=this.parser.Parse(t.formula);if(l.expression)for(let c of a){let d=this.parser.Render(l.expression,{missing:"",offset:{rows:c.row-r.start.row,columns:c.column-r.start.column}});o.push({type:"expression",expression:d,style:n,area:{start:c,end:c},priority:t.a$.priority?Number(t.a$.priority):void 0})}return this.parser.Restore(),o}return{type:"expression",expression:t.formula,area:r,style:n,priority:t.a$.priority?Number(t.a$.priority):void 0}}break;case"colorScale":if(t.colorScale&&Array.isArray(t.colorScale.cfvo)&&Array.isArray(t.colorScale.color)){let n=[];for(let[o,a]of t.colorScale.cfvo.entries()){let l=0,c={},d=t.colorScale.color[o];switch(d.a$.rgb?c.text="#"+d.a$.rgb.substring(2):d.a$.theme&&(c.theme=Number(d.a$.theme)||0,d.a$.tint&&(c.tint=Math.round(Number(d.a$.tint)*1e3)/1e3)),a.a$.type){case"min":l=0;break;case"max":l=1;break;case"percentile":l=(Number(a.a$.val)||0)/100;break}n.push({color:c,value:l})}return{type:"gradient",stops:n,color_space:"RGB",area:r,priority:t.a$.priority?Number(t.a$.priority):void 0}}else console.info("unexpected colorScale",{rule:t});break;default:console.info("unhandled cf type:",{rule:t})}}GetSheet(e=0){if(!this.workbook)throw new Error("missing workbook");let t=this.workbook.sheets[e],r=[],s={},n=[],o=[],a=[],l=[],c=[],d=[],h=[],p=F.FindAll.bind(F,t.sheet_data),u=p("worksheet/sheetPr/tabColor"),f;if(u?.[0]){let g=u[0];if(g.a$?.theme&&(f={theme:Number(g.a$.theme)},g.a$?.tint&&(f.tint=Number(g.a$.tint))),g.a$?.rgb){let T=g.a$.rgb;f={text:"#"+(T.length>6?T.substr(T.length-6):T)}}}let b=p("worksheet/conditionalFormatting");for(let g of b)if(g.a$?.sqref){let T=g.a$.sqref.split(/\\s+/);for(let E of T){let k=t.TranslateAddress(E);if(g.cfRule){let S=Array.isArray(g.cfRule)?g.cfRule:[g.cfRule];for(let C of S){let B=this.ParseConditionalFormat(k,C);B&&(Array.isArray(B)?a.push(...B):a.push(B))}}}}let v=p("worksheet/mergeCells/mergeCell");for(let g of v)if(g.a$?.ref){let T=t.TranslateAddress(g.a$.ref);ze(T)&&o.push(yr(T,-1,-1))}let x=p("worksheet/dataValidations/dataValidation");for(let g of x){let T=g.a$?.type,E=g.a$?.sqref,k=g.formula1;if(E&&k&&typeof k=="string"&&T==="list"){let S,C=this.parser.Parse(E),B=[];C.expression&&(C.expression.type==="address"?B.push({start:C.expression,end:C.expression}):C.expression.type==="range"&&B.push(C.expression)),C=this.parser.Parse(k),C.expression&&(C.expression.type==="range"?S={type:"range",area:C.expression,target:B}:C.expression.type==="literal"&&(S={type:"list",target:B,list:C.expression.value.toString().split(/,/).map(Z=>{let fe=Number(Z);return isNaN(fe)?Z.toLowerCase()==="true"?!0:Z.toLowerCase()==="false"?!1:Z:fe})})),B.length&&S&&d.push(S)}}let w=p("worksheet/hyperlinks/hyperlink");for(let g of w){let T=t.TranslateAddress(g.a$?.ref||"");ze(T)&&(T=T.from);let E="",k="";if(g.a$&&g.a$["r:id"]){E="remote link";let S=t.rels[g.a$["r:id"]];S&&(k=S.target||"")}else k=typeof g.__location=="string"?g.__location:"",E=typeof g.__display=="string"?g.__display:"";l.push({address:T,reference:k,text:E})}let m=21,A=100,G=t.sheet_data.worksheet?.sheetFormatPr;if(G){if(G.a$?.defaultColWidth){let g=Number(G.a$.defaultColWidth);isNaN(g)||(A=Vt(g))}if(G.a$?.defaultRowHeight){let g=Number(G.a$.defaultRowHeight);isNaN(g)||(m=Math.round(g*4/3))}}let P=[],D=[],z=p("worksheet/sheetData/row");for(let g of z){let T=g.a$?.r?Number(g.a$.r):1,E=m;if(g.a$?.ht){let S=Number(g.a$.ht);isNaN(S)||(E=Math.round(S*4/3))}if(g.a$?.outlineLevel){let S=Number(g.a$.outlineLevel);isNaN(S)||(D[T-1]=S)}if(g.a$?.s){let S=Number(g.a$?.s);isNaN(S)||(c[T-1]=S)}E!==m&&(P[T-1]=E);let k=g.c?Array.isArray(g.c)?g.c:[g.c]:[];for(let S of k){let C=this.ParseCell(t,S,s,n,o,l);C&&r.push(C)}}let W=[],V=-1,U=[],K=p("worksheet/cols/col");for(let g of K){let T=Number(g.a$?.min),E=Number(g.a$?.max);if(g.a$?.style){let k=Number(g.a$.style);if(!isNaN(T)&&!isNaN(E)&&!isNaN(k))if(t.extent&&E>=t.extent.to.col||E-T>100)V=k;else for(let S=T;S<=E;S++)W[S]=k}if(g.a$?.customWidth){let k=Number(g.a$.width);if(!isNaN(T)&&!isNaN(E)&&!isNaN(k)&&E!==16384){k=Vt(k);for(let S=T;S<=E;S++)U[S-1]=k}}}let Q=p("worksheet/tableParts/tablePart");for(let g of Q){let T=g.a$?g.a$["r:id"]:void 0;if(T){let E="",k=t.rels[T];if(k){E=k.target||"";let S=this.workbook.ReadTable(E);if(S){let C=t.TranslateAddress(S.ref),B=je(C)?{start:{row:C.row-1,column:C.col-1},end:{row:C.row-1,column:C.col-1}}:{start:{row:C.from.row-1,column:C.from.col-1},end:{row:C.to.row-1,column:C.to.col-1}};for(let Z of r)if(Z.row===B.start.row&&Z.column===B.start.column){Z.table={area:B,name:S.name,totals_row:!!S.totals_row_count};break}}}}}let X=p("worksheet/drawing"),ee=[],j=[],oe=[];for(let g of X){let T=g.a$?g.a$["r:id"]:void 0;if(T){let E="",k=t.rels[T];if(k&&(E=k.target||""),E){let S=this.workbook.ReadDrawing(E);if(S&&S.length)for(let C of S)switch(C.type){case"chart":ee.push(C);break;case"image":j.push(C);break;case"textbox":oe.push(C);break}}}}let te=g=>{let T={address:{row:g.row,column:g.column},offset:{x:0,y:0}};if(g.row_offset){let E=P[g.row];E===void 0&&(E=m),T.offset.y=g.row_offset/9525/E}if(g.column_offset){let E=U[g.column];E===void 0&&(E=A),T.offset.x=g.column_offset/9525/E}return T};for(let g of oe){let T={tl:te(g.anchor.from),br:te(g.anchor.to)};h.push({layout:T,type:"textbox",data:{style:g.style,paragraphs:g.paragraphs}})}for(let g of j)if(g&&g.image){let T={tl:te(g.anchor.from),br:te(g.anchor.to)},E="image",k=Ji.default.fromByteArray(g.image),S="";if(g.filename&&(/jpe*g$/i.test(g.filename)?S="jpeg":/png$/i.test(g.filename)?S="png":/gif$/i.test(g.filename)&&(S="gif")),S&&k){let C="data:image/"+S+";base64,"+k;h.push({layout:T,type:E,data:{src:C}})}}for(let g of ee)if(g&&g.chart){let T={tl:te(g.anchor.from),br:te(g.anchor.to)},E,k=[],S="",C=g.chart?.series;switch(g.chart.type){case 7:E="treb-chart",S="Bubble.Chart",C&&C.length&&(k[0]=`Group(${C.map(Z=>`Series(${[Z.title||"",Z.values||"",Z.categories||"",Z.bubble_size||""].join(", ")})`).join(", ")})`),k[1]=g.chart.title;break;case 8:E="treb-chart",S="Box.Plot",C?.length&&(k[0]=`Group(${C.map(Z=>`Series(${Z.title||""},,${Z.values||""})`).join(", ")})`,console.info("S?",{series:C},k[0])),k[1]=g.chart.title;break;case 4:E="treb-chart",S="Scatter.Line",C&&C.length&&(k[0]=`Group(${C.map(Z=>`Series(${Z.title||""},${Z.categories||""},${Z.values||""})`).join(", ")})`),k[1]=g.chart.title;break;case 5:case 6:S=g.chart.type===5?"Donut.Chart":"Pie.Chart",E="treb-chart",C&&C[0]&&(k[0]=C[0].values,k[1]=C[0]?.categories||""),k[2]=g.chart.title;break;case 2:case 1:case 3:switch(k[2]=g.chart.title,E="treb-chart",g.chart.type){case 2:S="Bar.Chart";break;case 1:S="Column.Chart";break;default:S="Line.Chart"}C&&(C.length>1?k[0]=`Group(${C.map(Z=>`Series(${Z.title||""},,${Z.values||""})`).join(", ")})`:C.length===1&&(C[0].title?k[0]=`Series(${C[0].title||""},,${C[0].values||""})`:k[0]=C[0].values),k[1]=C[0]?.categories||"");break}let B=`=${S}(${k.join(", ")})`;E&&B&&h.push({layout:T,type:E,formula:B})}let ue=p("worksheet/extLst/ext");for(let g of ue){let T="";for(let k of Object.keys(g?.a$||{})){let S=k.match(/^xmlns:(.*)$/);if(S){T=S[1];break}}let E=F.FindAll(g,`${T}:sparklineGroups/${T}:sparklineGroup`);for(let k of E){let S="Sparkline.line",C="",B="";k.a$?.type==="column"&&(S="Sparkline.column");let Z=F.FindAll(k,`${T}:sparklines/${T}:sparkline`);for(let fe of Z)for(let _e of Object.keys(fe))/:f$/.test(_e)?B=fe[_e]:/:sqref$/.test(_e)&&(C=fe[_e]);if(B&&C){let fe=`=${S}(${B})`,_e=t.TranslateAddress(C);if(je(_e)){let Je={row:_e.row-1,column:_e.col-1,value:fe,type:"formula"},y=!1;for(let N of r)if(N.row===Je.row&&N.column===Je.column){y=!0,N.type="formula",N.value=fe;break}y||r.push(Je)}}}}let ce={name:t.options.name,cells:r,default_column_width:A,column_widths:U,row_heights:P,tab_color:f,row_styles:c,annotations:h,conditional_formats:a,data_validations:d,styles:this.workbook?.style_cache?.CellXfToStyles()||[]};return D.length&&(ce.outline=D),(t.visible_state===1||t.visible_state===2)&&(ce.hidden=!0),V>=0&&(ce.sheet_style=V),W.length&&(ce.column_styles=W),ce}};var Dt=self,Cr=new Pt,vo=i=>{i.sheet&&(Cr.Init(i.decorated||[]),Cr.Export(i.sheet),Dt.postMessage({status:"complete",blob:Cr.Blob()}))},xo=i=>{let e=new zt;try{e.Init(i.data);let t=e.workbook?.GetNamedRanges(),r=e.SheetCount(),s={sheets:[],named:t,active_tab:e.workbook?.active_tab};for(let n=0;n<r;n++){let o=e.GetSheet(n);o&&s.sheets.push(o)}for(let n of t||[])if(typeof n.local_scope=="number"){let o=s.sheets[n.local_scope];o&&(n.scope=o.name)}Dt.postMessage({status:"complete",results:s})}catch(t){console.warn("error importing xlsx file"),console.info(t),Dt.postMessage({status:"error",data:t})}};Dt.addEventListener("message",i=>{i.data&&i.data.command==="export"?vo(i.data):i.data&&i.data.command==="import"&&xo(i.data)});\n';var a=async()=>new Worker(URL.createObjectURL(new Blob([e],{type:"application/javascript"})));export{a as CreateWorker};
|