@qr-platform/qr-code.js
Version:
QRCode.js is a professional JavaScript/TypeScript library for creating customized QR codes, offering a blend of simplicity and sophistication. With versatile styling options—dot shapes, colors, gradients, embedded images, borders, and text—it enables you
1 lines • 220 kB
JavaScript
import e from"@xmldom/xmldom";import{fileTypeFromBuffer as t}from"file-type";import o from"image-size";const r={width:500,height:500};class i{constructor(){this.buffer=[],this.length=0}getBuffer(){return this.buffer}getLengthInBits(){return this.length}toString(){let e="";for(let t=0;t<this.getLengthInBits();t+=1)e+=this.getBit(t)?"1":"0";return e}getBit(e){return 1==(this.buffer[~~(e/8)]>>>7-e%8&1)}put(e,t){for(let o=0;o<t;o+=1)this.putBit(1==(e>>>t-o-1&1))}putBit(e){this.length==8*this.buffer.length&&this.buffer.push(0),e&&(this.buffer[~~(this.length/8)]|=128>>>this.length%8),this.length+=1}}var n,s,a;!function(e){e[e.L=1]="L",e[e.M=0]="M",e[e.Q=3]="Q",e[e.H=2]="H"}(n||(n={}));class d{constructor(){throw new Error("error")}static glog(e){if(e<1)throw new Error("log("+e+")");return d.LOG_TABLE[e]}static gexp(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return d.EXP_TABLE[e]}}d.initialize=(()=>{d.EXP_TABLE=[],d.LOG_TABLE=[];for(let e=0;e<256;e+=1)d.EXP_TABLE.push(e<8?1<<e:d.EXP_TABLE[e-4]^d.EXP_TABLE[e-5]^d.EXP_TABLE[e-6]^d.EXP_TABLE[e-8]),d.LOG_TABLE.push(0);for(let e=0;e<255;e+=1)d.LOG_TABLE[d.EXP_TABLE[e]]=e})();class l{constructor(e,t=0){let o=0;for(;o<e.length&&0==e[o];)o+=1;this.num=[];const r=e.length-o;for(let t=0;t<r;t+=1)this.num.push(e[o+t]);for(let e=0;e<t;e+=1)this.num.push(0)}getAt(e){return this.num[e]}getLength(){return this.num.length}toString(){let e="";for(let t=0;t<this.getLength();t+=1)t>0&&(e+=","),e+=this.getAt(t);return e.toString()}toLogString(){let e="";for(let t=0;t<this.getLength();t+=1)t>0&&(e+=","),e+=d.glog(this.getAt(t));return e.toString()}multiply(e){const t=[],o=this.getLength()+e.getLength()-1;for(let e=0;e<o;e+=1)t.push(0);for(let o=0;o<this.getLength();o+=1)for(let r=0;r<e.getLength();r+=1)t[o+r]^=d.gexp(d.glog(this.getAt(o))+d.glog(e.getAt(r)));return new l(t)}mod(e){if(this.getLength()-e.getLength()<0)return this;const t=d.glog(this.getAt(0))-d.glog(e.getAt(0)),o=[];for(let e=0;e<this.getLength();e+=1)o.push(this.getAt(e));for(let r=0;r<e.getLength();r+=1)o[r]^=d.gexp(d.glog(e.getAt(r))+t);return new l(o).mod(e)}}!function(e){e[e.MODE_NUMBER=1]="MODE_NUMBER",e[e.MODE_ALPHA_NUM=2]="MODE_ALPHA_NUM",e[e.MODE_8BIT_BYTE=4]="MODE_8BIT_BYTE",e[e.MODE_KANJI=8]="MODE_KANJI"}(s||(s={}));class c{constructor(e,t){this.mode=e,this.data=t}getMode(){return this.mode}getData(){return this.data}getLengthInBits(e){if(1<=e&&e<10)switch(this.mode){case s.MODE_NUMBER:return 10;case s.MODE_ALPHA_NUM:return 9;case s.MODE_8BIT_BYTE:case s.MODE_KANJI:return 8;default:throw new Error("mode:"+this.mode)}else if(e<27)switch(this.mode){case s.MODE_NUMBER:return 12;case s.MODE_ALPHA_NUM:return 11;case s.MODE_8BIT_BYTE:return 16;case s.MODE_KANJI:return 10;default:throw new Error("mode:"+this.mode)}else{if(!(e<41))throw new Error("typeNumber:"+e);switch(this.mode){case s.MODE_NUMBER:return 14;case s.MODE_ALPHA_NUM:return 13;case s.MODE_8BIT_BYTE:return 16;case s.MODE_KANJI:return 12;default:throw new Error("mode:"+this.mode)}}}}class u extends c{constructor(e,t){super(s.MODE_8BIT_BYTE,e),this.stringToBytes=t}write(e){this.stringToBytes(this.getData()).forEach((t=>e.put(t,8)))}getLength(){return this.stringToBytes(this.getData()).length}}class h extends c{constructor(e){super(s.MODE_ALPHA_NUM,e)}write(e){const t=this.getData();let o=0;for(;o+1<t.length;)e.put(45*h.getCode(t.charAt(o))+h.getCode(t.charAt(o+1)),11),o+=2;o<t.length&&e.put(h.getCode(t.charAt(o)),6)}getLength(){return this.getData().length}static getCode(e){if("0"<=e&&e<="9")return e.charCodeAt(0)-"0".charCodeAt(0);if("A"<=e&&e<="Z")return e.charCodeAt(0)-"A".charCodeAt(0)+10;switch(e){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw new Error("illegal char :"+e)}}}class p extends c{constructor(e,t){super(s.MODE_KANJI,e),this.stringToBytes=t}write(e){const t=this.stringToBytes(this.getData());let o=0;for(;o+1<t.length;){let r=(255&t[o])<<8|255&t[o+1];if(33088<=r&&r<=40956)r-=33088;else{if(!(57408<=r&&r<=60351))throw new Error("illegal char at "+(o+1)+"/"+r);r-=49472}r=192*(r>>>8&255)+(255&r),e.put(r,13),o+=2}if(o<t.length)throw new Error("illegal char at "+(o+1))}getLength(){return this.stringToBytes(this.getData()).length/2}}class m extends c{constructor(e){super(s.MODE_NUMBER,e)}write(e){const t=this.getData();let o=0;for(;o+2<t.length;)e.put(m.strToNum(t.substring(o,o+3)),10),o+=3;o<t.length&&(t.length-o==1?e.put(m.strToNum(t.substring(o,o+1)),4):t.length-o==2&&e.put(m.strToNum(t.substring(o,o+2)),7))}getLength(){return this.getData().length}static strToNum(e){let t=0;for(let o=0;o<e.length;o+=1)t=10*t+m.chatToNum(e.charAt(o));return t}static chatToNum(e){if("0"<=e&&e<="9")return e.charCodeAt(0)-"0".charCodeAt(0);throw new Error("illegal char :"+e)}}!function(e){e[e.PATTERN000=0]="PATTERN000",e[e.PATTERN001=1]="PATTERN001",e[e.PATTERN010=2]="PATTERN010",e[e.PATTERN011=3]="PATTERN011",e[e.PATTERN100=4]="PATTERN100",e[e.PATTERN101=5]="PATTERN101",e[e.PATTERN110=6]="PATTERN110",e[e.PATTERN111=7]="PATTERN111"}(a||(a={}));class g{constructor(){throw new Error("error")}static getPatternPosition(e){return g.PATTERN_POSITION_TABLE[e-1]}static getMaxLength(e,t,o){const r=e-1;let i=0,a=0;switch(o){case n.L:i=0;break;case n.M:i=1;break;case n.Q:i=2;break;case n.H:i=3;break;default:throw new Error("e:"+o)}switch(t){case s.MODE_NUMBER:a=0;break;case s.MODE_ALPHA_NUM:a=1;break;case s.MODE_8BIT_BYTE:a=2;break;case s.MODE_KANJI:a=3;break;default:throw new Error("m:"+t)}return g.MAX_LENGTH[r][i][a]}static getErrorCorrectPolynomial(e){let t=new l([1]);for(let o=0;o<e;o+=1)t=t.multiply(new l([1,d.gexp(o)]));return t}static getMaskFunc(e){switch(e){case a.PATTERN000:return(e,t)=>(e+t)%2==0;case a.PATTERN001:return(e,t)=>e%2==0;case a.PATTERN010:return(e,t)=>t%3==0;case a.PATTERN011:return(e,t)=>(e+t)%3==0;case a.PATTERN100:return(e,t)=>(~~(e/2)+~~(t/3))%2==0;case a.PATTERN101:return(e,t)=>e*t%2+e*t%3==0;case a.PATTERN110:return(e,t)=>(e*t%2+e*t%3)%2==0;case a.PATTERN111:return(e,t)=>(e*t%3+(e+t)%2)%2==0;default:throw new Error("mask:"+e)}}static getLostPoint(e){const t=e.getModuleCount();let o=0;for(let r=0;r<t;r+=1)for(let i=0;i<t;i+=1){let n=0;const s=e.isDark(r,i);for(let o=-1;o<=1;o+=1)if(!(r+o<0||t<=r+o))for(let a=-1;a<=1;a+=1)i+a<0||t<=i+a||0==o&&0==a||s==e.isDark(r+o,i+a)&&(n+=1);n>5&&(o+=3+n-5)}for(let r=0;r<t-1;r+=1)for(let i=0;i<t-1;i+=1){let t=0;e.isDark(r,i)&&(t+=1),e.isDark(r+1,i)&&(t+=1),e.isDark(r,i+1)&&(t+=1),e.isDark(r+1,i+1)&&(t+=1),0!=t&&4!=t||(o+=3)}for(let r=0;r<t;r+=1)for(let i=0;i<t-6;i+=1)e.isDark(r,i)&&!e.isDark(r,i+1)&&e.isDark(r,i+2)&&e.isDark(r,i+3)&&e.isDark(r,i+4)&&!e.isDark(r,i+5)&&e.isDark(r,i+6)&&(o+=40);for(let r=0;r<t;r+=1)for(let i=0;i<t-6;i+=1)e.isDark(i,r)&&!e.isDark(i+1,r)&&e.isDark(i+2,r)&&e.isDark(i+3,r)&&e.isDark(i+4,r)&&!e.isDark(i+5,r)&&e.isDark(i+6,r)&&(o+=40);let r=0;for(let o=0;o<t;o+=1)for(let i=0;i<t;i+=1)e.isDark(i,o)&&(r+=1);return o+=10*(Math.abs(100*r/t/t-50)/5),o}static getBCHTypeInfo(e){let t=e<<10;for(;g.getBCHDigit(t)-g.getBCHDigit(g.G15)>=0;)t^=g.G15<<g.getBCHDigit(t)-g.getBCHDigit(g.G15);return(e<<10|t)^g.G15_MASK}static getBCHTypeNumber(e){let t=e<<12;for(;g.getBCHDigit(t)-g.getBCHDigit(g.G18)>=0;)t^=g.G18<<g.getBCHDigit(t)-g.getBCHDigit(g.G18);return e<<12|t}static getBCHDigit(e){let t=0;for(;0!=e;)t+=1,e>>>=1;return t}}g.PATTERN_POSITION_TABLE=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],g.MAX_LENGTH=[[[41,25,17,10],[34,20,14,8],[27,16,11,7],[17,10,7,4]],[[77,47,32,20],[63,38,26,16],[48,29,20,12],[34,20,14,8]],[[127,77,53,32],[101,61,42,26],[77,47,32,20],[58,35,24,15]],[[187,114,78,48],[149,90,62,38],[111,67,46,28],[82,50,34,21]],[[255,154,106,65],[202,122,84,52],[144,87,60,37],[106,64,44,27]],[[322,195,134,82],[255,154,106,65],[178,108,74,45],[139,84,58,36]],[[370,224,154,95],[293,178,122,75],[207,125,86,53],[154,93,64,39]],[[461,279,192,118],[365,221,152,93],[259,157,108,66],[202,122,84,52]],[[552,335,230,141],[432,262,180,111],[312,189,130,80],[235,143,98,60]],[[652,395,271,167],[513,311,213,131],[364,221,151,93],[288,174,119,74]]],g.G15=1335,g.G18=7973,g.G15_MASK=21522;class b{constructor(e,t){this.totalCount=e,this.dataCount=t}getDataCount(){return this.dataCount}getTotalCount(){return this.totalCount}static getRSBlocks(e,t){const o=b.getRsBlockTable(e,t),r=o.length/3,i=[];for(let e=0;e<r;e+=1){const t=o[3*e+0],r=o[3*e+1],n=o[3*e+2];for(let e=0;e<t;e+=1)i.push(new b(r,n))}return i}static getRsBlockTable(e,t){switch(t){case n.L:return b.RS_BLOCK_TABLE[4*(e-1)+0];case n.M:return b.RS_BLOCK_TABLE[4*(e-1)+1];case n.Q:return b.RS_BLOCK_TABLE[4*(e-1)+2];case n.H:return b.RS_BLOCK_TABLE[4*(e-1)+3]}throw new Error("tn:"+e+"/ecl:"+t)}}b.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];const f=Array(41).fill(0).map(((e,t)=>t));var y,O;!function(e){e.L="L",e.M="M",e.Q="Q",e.H="H"}(y||(y={})),function(e){e.numeric="numeric",e.alphanumeric="alphanumeric",e.byte="byte",e.kanji="kanji",e.unicode="unicode"}(O||(O={}));class S{constructor(e=0,t=y.L){this.modules=[],this.moduleCount=0,this.typeNumber=e,this.errorCorrectLevel=n[t],this.qrDataList=[]}getTypeNumber(){return this.typeNumber}setTypeNumber(e){this.typeNumber=e}getErrorCorrectLevel(){return this.errorCorrectLevel}setErrorCorrectLevel(e){this.errorCorrectLevel=e}clearData(){this.qrDataList=[]}addData(e,t=O.byte){if(e instanceof c)this.qrDataList.push(e);else{if("string"!=typeof e)throw new Error(typeof e);switch(t){case O.numeric:this.qrDataList.push(new m(e));break;case O.alphanumeric:this.qrDataList.push(new h(e));break;case O.byte:this.qrDataList.push(new u(e,S.stringToBytesFuncs.default));break;case O.unicode:this.qrDataList.push(new u(e,S.stringToBytesFuncs.UTF8));break;case O.kanji:this.qrDataList.push(new p(e,S.stringToBytesFuncs.SJIS));break;default:throw new Error("mode:"+t)}}}isDark(e,t){return!(!this.modules[e]||null==this.modules[e][t])&&this.modules[e][t]}getModuleCount(){return this.moduleCount}make(){if(this.typeNumber<1){let e=1;for(;e<40;e++){const t=b.getRSBlocks(e,this.errorCorrectLevel),o=new i;this.qrDataList.forEach((t=>{o.put(t.getMode(),4),o.put(t.getLength(),t.getLengthInBits(e)),t.write(o)}));const r=t.reduce(((e,t)=>e+t.getDataCount()),0);if(o.getLengthInBits()<=8*r)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())}getBestMaskPattern(){let e=0,t=0;for(let o=0;o<8;o+=1){this.makeImpl(!0,o);const r=g.getLostPoint(this);(0==o||e>r)&&(e=r,t=o)}return t}makeImpl(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=[];for(let e=0;e<this.moduleCount;e+=1){this.modules.push([]);for(let t=0;t<this.moduleCount;t+=1)this.modules[e].push(null)}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),this.typeNumber>=7&&this.setupTypeNumber(e);const o=S.createData(this.typeNumber,this.errorCorrectLevel,this.qrDataList);this.mapData(o,t)}mapData(e,t){let o=-1,r=this.moduleCount-1,i=7,n=0;const s=g.getMaskFunc(t);for(let t=this.moduleCount-1;t>0;t-=2)for(6==t&&(t-=1);;){for(let o=0;o<2;o+=1)if(null==this.modules[r][t-o]){let a=!1;n<e.length&&(a=1==(e[n]>>>i&1));s(r,t-o)&&(a=!a),this.modules[r][t-o]=a,i-=1,-1==i&&(n+=1,i=7)}if(r+=o,r<0||this.moduleCount<=r){r-=o,o=-o;break}}}setupPositionAdjustPattern(){const e=g.getPatternPosition(this.typeNumber);e.forEach((t=>{e.forEach((e=>{if(null==this.modules[t][e])for(let o=-2;o<=2;o+=1)for(let r=-2;r<=2;r+=1)this.modules[t+o][e+r]=-2==o||2==o||-2==r||2==r||0==o&&0==r}))}))}setupPositionProbePattern(e,t){for(let o=-1;o<=7;o+=1)for(let r=-1;r<=7;r+=1)e+o<=-1||this.moduleCount<=e+o||t+r<=-1||this.moduleCount<=t+r||(this.modules[e+o][t+r]=0<=o&&o<=6&&(0==r||6==r)||0<=r&&r<=6&&(0==o||6==o)||2<=o&&o<=4&&2<=r&&r<=4)}setupTimingPattern(){for(let e=8;e<this.moduleCount-8;e+=1)null==this.modules[e][6]&&(this.modules[e][6]=e%2==0);for(let e=8;e<this.moduleCount-8;e+=1)null==this.modules[6][e]&&(this.modules[6][e]=e%2==0)}setupTypeNumber(e){const t=g.getBCHTypeNumber(this.typeNumber);for(let o=0;o<18;o+=1)this.modules[~~(o/3)][o%3+this.moduleCount-8-3]=!e&&1==(t>>o&1);for(let o=0;o<18;o+=1)this.modules[o%3+this.moduleCount-8-3][~~(o/3)]=!e&&1==(t>>o&1)}setupTypeInfo(e,t){const o=this.errorCorrectLevel<<3|t,r=g.getBCHTypeInfo(o);for(let t=0;t<15;t+=1){const o=!e&&1==(r>>t&1);t<6?this.modules[t][8]=o:t<8?this.modules[t+1][8]=o:this.modules[this.moduleCount-15+t][8]=o}for(let t=0;t<15;t+=1){const o=!e&&1==(r>>t&1);t<8?this.modules[8][this.moduleCount-t-1]=o:t<9?this.modules[8][15-t-1+1]=o:this.modules[8][15-t-1]=o}this.modules[this.moduleCount-8][8]=!e}static createData(e,t,o){const r=b.getRSBlocks(e,t),n=new i;o.forEach((t=>{n.put(t.getMode(),4),n.put(t.getLength(),t.getLengthInBits(e)),t.write(n)}));const s=r.reduce(((e,t)=>e+t.getDataCount()),0);if(n.getLengthInBits()>8*s)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+8*s+")");for(n.getLengthInBits()+4<=8*s&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*s||(n.put(S.PAD0,8),n.getLengthInBits()>=8*s));)n.put(S.PAD1,8);return S.createBytes(n,r)}static createBytes(e,t){let o=0,r=0,i=0;const n=new Array(t.length).map((e=>[])),s=new Array(t.length).map((e=>[]));function a(e){const t=[];for(let o=0;o<e;o+=1)t.push(0);return t}for(let d=0;d<t.length;d+=1){const c=t[d].getDataCount(),u=t[d].getTotalCount()-c;r=Math.max(r,c),i=Math.max(i,u),n[d]=a(c);for(let t=0;t<n[d].length;t+=1)n[d][t]=255&e.getBuffer()[t+o];o+=c;const h=g.getErrorCorrectPolynomial(u),p=new l(n[d],h.getLength()-1).mod(h);s[d]=a(h.getLength()-1);for(let e=0;e<s[d].length;e+=1){const t=e+p.getLength()-s[d].length;s[d][e]=t>=0?p.getAt(t):0}}const d=a(t.reduce(((e,t)=>e+t.getTotalCount()),0));let c=0;for(let e=0;e<r;e+=1)for(let o=0;o<t.length;o+=1)e<n[o].length&&(d[c]=n[o][e],c+=1);for(let e=0;e<i;e+=1)for(let o=0;o<t.length;o+=1)e<s[o].length&&(d[c]=s[o][e],c+=1);return d}}S.stringToBytesFuncs={default(e){const t=[];for(let o=0;o<e.length;o+=1){const r=e.charCodeAt(o);t.push(255&r)}return t}},S.PAD0=236,S.PAD1=17;const C=e=>!!e&&"object"==typeof e&&!Array.isArray(e);function k(e,t=!1){const o=e.split("").reverse().join("");return t?o.toLocaleUpperCase():o}function w(e,...t){if(!t.length)return e;const o=t.shift();return void 0!==o&&C(e)&&C(o)?(e={...e},Object.keys(o).forEach((t=>{const r=e[t],i=o[t];Array.isArray(r)&&Array.isArray(i)?e[t]=i:C(r)&&C(i)?e[t]=w({...r},i):e[t]=void 0===i?r:i})),w(e,...t)):e}k("rq",!0),k("-",!0),k("talp",!0),k("mrof",!0),k("a".repeat(6)+"#",!0);const v=/\.?0+$/;function A(e){return e.toFixed(7).replace(v,"")}function T(e,...t){return e.reduce(((e,o,r)=>{let i="";return r&&(i=t[r-1]),"number"==typeof i&&(i=A(i)),`${e}${i}${o}`}),"").trim().replace(/[\s\n\r]+/gim," ")}function q(e){if(!e)return!1;const t=e.toLowerCase().trim();return"none"===t||"transparent"===t}const I="top",Z="bottom",D="left",x="right";const W=e=>"number"==typeof e?e:parseInt(e.replace("%",""),10),V=(e,t="0%")=>e?e.endsWith("%")?e:e+"%":t,j="text",R="image",M=(e,t)=>!e?.decorations?.[t]?.disabled,B=e=>{if("string"==typeof e)return e;const{fontFace:t="Arial",fontSize:o=20,fontColor:r="#ffffff",letterSpacing:i=1,textTransform:n="uppercase",fontWeight:s="bold"}=e||{};return`font-weight: ${s}; text-transform: ${n}; font-size: ${o}px; font-family: ${t}; fill: ${r}; letter-spacing: ${i}px; dominant-baseline: central;`};const Y=({document:e,position:t,rotate:o,flip:r,thickness:i,height:n,width:s,round:a,offset:d=0,curveAdjustment:l=0,curveRadius:c,innerBorderPadding:u=0,outerBorderPadding:h=0,instanceId:p})=>{const m=Math.min(s,n),g=e.createElementNS("http://www.w3.org/2000/svg","path"),b=(e=>{if(e>=50)return 1;const t=[{R:0,P:0},{R:5,P:0},{R:10,P:.12},{R:15,P:.2},{R:20,P:.32},{R:25,P:.44},{R:30,P:.56},{R:35,P:.65},{R:40,P:.72},{R:42,P:.76},{R:44,P:.8},{R:45,P:.83},{R:46,P:.86},{R:48,P:.92},{R:50,P:1}],o=t.find((t=>e<=t.R))||t[0],r=t.find((t=>e>t.R))||t[t.length-1],{R:i,P:n}=o,{R:s,P:a}=r;return n+(e-i)/(s-i)*(a-n)})("string"==typeof a?W(a):a),f=void 0!==c?function(e){let t;return t="number"==typeof e?e:"string"==typeof e?(e.includes("%"),parseFloat(e)):0,t=Math.min(Math.max(t,0),50),.5+t/50*.5}(c):b;let y=(m-i-2*h-10*l*2)/2*f;const O=((e,t,o,r)=>{const i=o/2,n=r/2;let s="";return e&&(s+=`rotate(${e}, ${i}, ${n}) `),t&&(s+=`translate(${i}, ${n}) scale(1, -1) translate(${-i}, ${-n}) `),s.trim()})(o,r,s,n);g.setAttribute("id",`${t}-text-path-${p}`),g.setAttribute("transform",O);let{startX:S,startY:C,pathWidth:k}=((e,t,o,r,i={})=>{let n=t/2,s=t/2+r,a=e-t;return o&&(a-=4*o,n+=2*o,s+=2*o),n+=i.left||0,s+=i.top||0,{startX:n,startY:s,pathWidth:a}})(m,i,h,d);const w=h>0,v=u>0;if(w||v){let e=0;w&&(e-=h/20),v&&(e-=u/2),S-=e,C-=e,k+=2*e,y=k/2*f}return g.setAttribute("d",((e,t,o,r)=>`\n M${e},${t+r}\n a${r},${r} 0 0 1 ${r},${-r}\n h${o-2*r}\n a${r},${r} 0 0 1 ${r},${r}\n `)(S,C,k,y)),g},J=({document:e,thickness:t,value:o,svg:r,position:i,height:n,width:s,round:a,style:d,offset:l=0,curveAdjustment:c=0,curveDisabled:u=!1,innerBorderPadding:h=0,outerBorderPadding:p=0,curveRadius:m,instanceId:g,noBorderThickness:b,enabledBorders:f})=>{let y=0,O=!1;if(i===x?y=90:i===Z?O=!u:i===D&&(y=-90),u){const a=e.createElementNS("http://www.w3.org/2000/svg","text");let c=s/2,u=(n-Math.min(s,n)+t)/2+2*p+l-(n-s>0?0:(s-n)/2);let m=0;if(p>0&&(m-=p/20),h>0&&(m-=h/2),i===Z?u=n-2*p-t/2-l+m:i===I?u=2*p+t/2+l-m:i!==D&&i!==x||(u-=m),i===I||i===Z){let e=0;!f[D]&&f[x]?e=-(t-b)/2:f[D]&&!f[x]&&(e=(t-b)/2),c+=e}else if(i===D||i===x){let e=0;!f[I]&&f[Z]?e=i===D?(t-b)/2:-(t-b)/2:f[I]&&!f[Z]&&(e=i===D?-(t-b)/2:(t-b)/2),c+=e}let g="";0!==y&&(g+=`rotate(${y}, ${s/2}, ${n/2}) `),a.setAttribute("x",c.toString()),a.setAttribute("y",u.toString()),a.setAttribute("text-anchor","middle"),g&&a.setAttribute("transform",g.trim()),a.textContent=o;const O=B(d);a.setAttribute("style",O),r.appendChild(a)}else{let u=r.getElementsByTagName("defs")[0];u||(u=e.createElementNS("http://www.w3.org/2000/svg","defs"),r.appendChild(u));const S=Y({document:e,position:i,rotate:y,flip:O,thickness:t,height:n,width:s,round:a,offset:l,curveAdjustment:c,innerBorderPadding:h,outerBorderPadding:p,curveRadius:m,instanceId:g}),{x:C,y:k}=function(e,t,o,r){let i=0,n=0;const s=(t-o)/2;return r.left&&r.right&&r.top&&r.bottom?(i=0,n=0):"top"===e||"bottom"===e?!r.left&&r.right?i=-s:(r.left&&!r.right||r.left&&r.right)&&(i=s):"left"!==e&&"right"!==e||(!r.top&&r.bottom?r.left&&r.right?(i="left"===e?2*+s:0,n=-s):i="left"===e?+s:-s:r.top&&!r.bottom?r.left&&r.right?(i="left"===e?0:2*s,n=-s):i=0:r.top&&r.bottom?n=r.left&&r.right?2*+s:+s:(i=r.left&&r.right?2*+s:+s,n=r.left&&r.right?2*-s:-s)),{x:i,y:n}}(i,t,b,f);if(0!==C||0!==k){const e=`${S.getAttribute("transform")||""} translate(${C}, ${k})`.trim();S.setAttribute("transform",e)}u.appendChild(S),r.appendChild((({document:e,value:t,position:o,style:r,instanceId:i})=>{const n=e.createElementNS("http://www.w3.org/2000/svg","text"),s=e.createElementNS("http://www.w3.org/2000/svg","textPath");s.setAttribute("href",`#${o}-text-path-${i}`),s.setAttribute("text-anchor","middle"),s.setAttribute("startOffset","50%"),s.textContent=t;const a=B(r);return n.setAttribute("style",a),n.appendChild(s),n})({document:e,position:i,value:o,style:d,instanceId:g}))}},G=({document:e,thickness:t,value:o,svg:r,position:i,height:n,width:s,offset:a=0,style:d})=>{const l=e.createElementNS("http://www.w3.org/2000/svg","image"),c=Math.min(s,n);let u=(s-c+t)/2,h=(n-c+t)/2+a;i===I?u+=(c-t)/2:i===x?(u+=c-t,h+=(c-t)/2):i===Z?(u+=(c-t)/2,h+=c-t):i===D&&(h+=(c-t)/2),l.setAttribute("href",o||""),l.setAttribute("x",`${u}`),l.setAttribute("y",`${h}`),l.setAttribute("style",d?.toString()||""),r.appendChild(l)};var X,E,F,P,L,N,z;function U(e){const t={...e};if(!t.colorStops||!t.colorStops.length)throw new Error("Field 'colorStops' is required in gradient");return t.rotation?t.rotation=Number(t.rotation):t.rotation=0,t.colorStops=t.colorStops.map((e=>({...e,offset:Number(e.offset)}))),t}function _(e){const t={...e};if(t.imageOptions={...t.imageOptions,imageSize:Math.min(1,Number(t.imageOptions?.imageSize))||1,margin:Number(t.imageOptions?.margin)||0,padding:Number(t.imageOptions?.padding)||0},t.imageOptions.mode==z.overlay&&(t.imageOptions.margin=0),t.dotsOptions={...t.dotsOptions},t.dotsOptions.gradient&&(t.dotsOptions.gradient=U(t.dotsOptions.gradient)),t.dotsOptions.size=Math.round(Math.max(0,t.dotsOptions.size)||10),t.cornersSquareOptions&&(t.cornersSquareOptions={...t.cornersSquareOptions},t.cornersSquareOptions.gradient&&(t.cornersSquareOptions.gradient=U(t.cornersSquareOptions.gradient))),t.cornersDotOptions&&(t.cornersDotOptions={...t.cornersDotOptions},t.cornersDotOptions.gradient&&(t.cornersDotOptions.gradient=U(t.cornersDotOptions.gradient))),t.backgroundOptions&&(t.backgroundOptions={...t.backgroundOptions},t.backgroundOptions.gradient&&(t.backgroundOptions.gradient=U(t.backgroundOptions.gradient))),t.borderOptions&&t.borderOptions.decorations){const e=["top","bottom","left","right"];for(const o of e){let e=t.borderOptions.decorations[o];e||(t.borderOptions.decorations[o]={enableText:!1,value:void 0},e=t.borderOptions.decorations[o]),!1===e.enableText?e.value=void 0:!0===e.enableText?null!==e.value&&void 0!==e.value||(e.value=""):void 0===e.enableText&&(e.value&&"string"==typeof e.value&&!1!==e.enableText&&""!==e.value.trim()?e.enableText=!0:(e.enableText=!1,e.value=void 0))}}return"undefined"==typeof document||t.document||(t.document=document),t}!function(e){e.radial="radial",e.linear="linear"}(X||(X={})),function(e){e.svg="svg",e.png="png",e.jpeg="jpeg",e.webp="webp"}(E||(E={})),function(e){e.dot="dot",e.randomDot="random-dot",e.rounded="rounded",e.extraRounded="extra-rounded",e.verticalLine="vertical-line",e.horizontalLine="horizontal-line",e.classy="classy",e.classyRounded="classy-rounded",e.square="square",e.smallSquare="small-square",e.tinySquare="tiny-square",e.star="star",e.plus="plus",e.diamond="diamond"}(F||(F={})),function(e){e.dot="dot",e.square="square",e.heart="heart",e.rounded="rounded",e.classy="classy",e.outpoint="outpoint",e.inpoint="inpoint"}(P||(P={})),function(e){e.dot="dot",e.square="square",e.rounded="rounded",e.classy="classy",e.outpoint="outpoint",e.inpoint="inpoint"}(L||(L={})),function(e){e.square="square",e.circle="circle"}(N||(N={})),function(e){e.center="center",e.overlay="overlay",e.background="background"}(z||(z={}));const H={[y.L]:.07,[y.M]:.15,[y.Q]:.25,[y.H]:.3};class K{constructor(e="",t={}){if(e instanceof K)return e;const o=function(e){let t={r:0,g:0,b:0},o=1,r=null,i=null,n=null,s=!1,a=!1;"string"==typeof e&&(e=function(e){const t=/^\s+/,o=/\s+$/;e=e.replace(t,"").replace(o,"").toLowerCase();let r,i=!1;if(K.names[e])e=K.names[e],i=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};if(r=ke.rgb.exec(e))return{r:r[1],g:r[2],b:r[3]};if(r=ke.rgba.exec(e))return{r:r[1],g:r[2],b:r[3],a:r[4]};if(r=ke.hsl.exec(e))return{h:r[1],s:r[2],l:r[3]};if(r=ke.hsla.exec(e))return{h:r[1],s:r[2],l:r[3],a:r[4]};if(r=ke.hsv.exec(e))return{h:r[1],s:r[2],v:r[3]};if(r=ke.hsva.exec(e))return{h:r[1],s:r[2],v:r[3],a:r[4]};if(r=ke.hex8.exec(e))return{r:fe(r[1]),g:fe(r[2]),b:fe(r[3]),a:Ce(r[4]),format:i?"name":"hex8"};if(r=ke.hex6.exec(e))return{r:fe(r[1]),g:fe(r[2]),b:fe(r[3]),format:i?"name":"hex"};if(r=ke.hex4.exec(e))return{r:fe(r[1]+""+r[1]),g:fe(r[2]+""+r[2]),b:fe(r[3]+""+r[3]),a:Ce(r[4]+""+r[4]),format:i?"name":"hex8"};if(r=ke.hex3.exec(e))return{r:fe(r[1]+""+r[1]),g:fe(r[2]+""+r[2]),b:fe(r[3]+""+r[3]),format:i?"name":"hex"};return!1}(e));"object"==typeof e&&(we(e.r)&&we(e.g)&&we(e.b)?(d=e.r,l=e.g,c=e.b,t={r:255*ge(d,255),g:255*ge(l,255),b:255*ge(c,255)},s=!0,a="%"===String(e.r).slice(-1)?"prgb":"rgb"):we(e.h)&&we(e.s)&&we(e.v)?(r=Oe(e.s),i=Oe(e.v),t=function(e,t,o){e=6*ge(e,360),t=ge(t,100),o=ge(o,100);const r=Math.floor(e),i=e-r,n=o*(1-t),s=o*(1-i*t),a=o*(1-(1-i)*t),d=r%6,l=[o,s,n,n,a,o][d],c=[a,o,o,s,n,n][d],u=[n,n,a,o,o,qw][d];return{r:255*l,g:255*c,b:255*u}}(e.h,r,i),s=!0,a="hsv"):we(e.h)&&we(e.s)&&we(e.l)&&(r=Oe(e.s),n=Oe(e.l),t=function(e,t,o){let r,i,n;function s(e,t,o){return o<0&&(o+=1),o>1&&(o-=1),o<1/6?e+6*(t-e)*o:o<.5?t:o<2/3?e+(t-e)*(2/3-o)*6:e}if(e=ge(e,360),t=ge(t,100),o=ge(o,100),0===t)r=i=n=o;else{const a=o<.5?o*(1+t):o+t-o*t,d=2*o-a;r=s(d,a,e+1/3),i=s(d,a,e),n=s(d,a,e-1/3)}return{r:255*r,g:255*i,b:255*n}}(e.h,r,n),s=!0,a="hsl"),e.hasOwnProperty("a")&&(o=e.a));var d,l,c;return o=me(o),{ok:s,format:e.format||a,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:o}}(e);this._originalInput=e,this._r=o.r,this._g=o.g,this._b=o.b,this._a=o.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||o.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=o.ok}isDark(){return this.getBrightness()<128}isLight(){return!this.isDark()}isValid(){return this._ok}getOriginalInput(){return this._originalInput}getFormat(){return this._format}getAlpha(){return this._a}getBrightness(){const e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3}getLuminance(){const e=this.toRgb(),t=e.r/255,o=e.g/255,r=e.b/255;return.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))}setAlpha(e){return this._a=me(e),this._roundA=Math.round(100*this._a)/100,this}toHsv(){const e=$(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}}toHsvString(){const e=$(this._r,this._g,this._b),t=Math.round(360*e.h),o=Math.round(100*e.s),r=Math.round(100*e.v);return 1==this._a?`hsv(${t}, ${o}%, ${r}%)`:`hsva(${t}, ${o}%, ${r}%, ${this._roundA})`}toHsl(){const e=Q(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}}toHslString(){const e=Q(this._r,this._g,this._b),t=Math.round(360*e.h),o=Math.round(100*e.s),r=Math.round(100*e.l);return 1==this._a?`hsl(${t}, ${o}%, ${r}%)`:`hsla(${t}, ${o}%, ${r}%, ${this._roundA})`}toHex(e){return ee(this._r,this._g,this._b,e)}toHexString(e){return"#"+this.toHex(e)}toHex8(e){return function(e,t,o,r,i){const n=[ye(Math.round(e).toString(16)),ye(Math.round(t).toString(16)),ye(Math.round(o).toString(16)),ye(Se(r))];if(i&&n[0].charAt(0)==n[0].charAt(1)&&n[1].charAt(0)==n[1].charAt(1)&&n[2].charAt(0)==n[2].charAt(1)&&n[3].charAt(0)==n[3].charAt(1))return n[0].charAt(0)+n[1].charAt(0)+n[2].charAt(0)+n[3].charAt(0);return n.join("")}(this._r,this._g,this._b,this._a,e)}toHex8String(e){return"#"+this.toHex8(e)}toRgb(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}}toRgbString(){return 1==this._a?`rgb(${Math.round(this._r)}, ${Math.round(this._g)}, ${Math.round(this._b)})`:`rgba(${Math.round(this._r)}, ${Math.round(this._g)}, ${Math.round(this._b)}, ${this._roundA})`}toPercentageRgb(){return{r:Math.round(100*ge(this._r,255))+"%",g:Math.round(100*ge(this._g,255))+"%",b:Math.round(100*ge(this._b,255))+"%",a:this._a}}toPercentageRgbString(){return 1==this._a?`rgb(${Math.round(100*ge(this._r,255))}%, ${Math.round(100*ge(this._g,255))}%, ${Math.round(100*ge(this._b,255))}%)`:`rgba(${Math.round(100*ge(this._r,255))}%, ${Math.round(100*ge(this._g,255))}%, ${Math.round(100*ge(this._b,255))}%, ${this._roundA})`}toName(){return 0===this._a?"transparent":!(this._a<1)&&(K.hexNames[ee(this._r,this._g,this._b,!0)]||!1)}toFilter(e){const t="#"+te(this._r,this._g,this._b,this._a);let o=t;const r=this._gradientType?"GradientType = 1, ":"";if(e){const t=new K(e);o="#"+te(t._r,t._g,t._b,t._a)}return`progid:DXImageTransform.Microsoft.gradient(${r}startColorstr=${t},endColorstr=${o})`}toString(e){const t=!!e;e=e||this._format;let o=!1;const r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(o=this.toRgbString()),"prgb"===e&&(o=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(o=this.toHexString()),"hex3"===e&&(o=this.toHexString(!0)),"hex4"===e&&(o=this.toHex8String(!0)),"hex8"===e&&(o=this.toHex8String()),"name"===e&&(o=this.toName()),"hsl"===e&&(o=this.toHslString()),"hsv"===e&&(o=this.toHsvString()),o||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()}clone(){return new K(this.toString())}_applyModification(e,...t){const o=e(this,...t);return this._r=o._r,this._g=o._g,this._b=o._b,this.setAlpha(o._a),this}lighten(...e){return this._applyModification(ne,...e)}brighten(...e){return this._applyModification(se,...e)}darken(...e){return this._applyModification(ae,...e)}desaturate(...e){return this._applyModification(oe,...e)}saturate(...e){return this._applyModification(re,...e)}greyscale(...e){return this._applyModification(ie,...e)}spin(...e){return this._applyModification(de,...e)}_applyCombination(e,...t){return e(this,...t)}analogous(...e){return this._applyCombination(he,...e)}complement(...e){return this._applyCombination(le,...e)}monochromatic(...e){return this._applyCombination(pe,...e)}splitcomplement(...e){return this._applyCombination(ue,...e)}triad(){return this._applyCombination(ce,3)}tetrad(){return this._applyCombination(ce,4)}static fromRatio(e,t){if("object"==typeof e){const t={};for(const o in e)e.hasOwnProperty(o)&&(t[o]="a"===o?e[o]:Oe(e[o]));e=t}return new K(e,t)}static equals(e,t){return!(!e||!t)&&new K(e).toRgbString()===new K(t).toRgbString()}static random(){return K.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})}static mix(e,t,o){o=0===o?0:o||50;const r=new K(e).toRgb(),i=new K(t).toRgb(),n=o/100,s={r:(i.r-r.r)*n+r.r,g:(i.g-r.g)*n+r.g,b:(i.b-r.b)*n+r.b,a:(i.a-r.a)*n+r.a};return new K(s)}static readability(e,t){const o=new K(e),r=new K(t);return(Math.max(o.getLuminance(),r.getLuminance())+.05)/(Math.min(o.getLuminance(),r.getLuminance())+.05)}static isReadable(e,t,o){const r=K.readability(e,t);let i=!1;const n=function(e){let t,o;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),o=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==o&&"large"!==o&&(o="small");return{level:t,size:o}}(o);switch(n.level+n.size){case"AAsmall":case"AAAlarge":i=r>=4.5;break;case"AAlarge":i=r>=3;break;case"AAAsmall":i=r>=7}return i}static mostReadable(e,t,o={}){let r,i=null,n=0;const{includeFallbackColors:s,level:a,size:d}=o;for(const o of t)r=K.readability(e,o),r>n&&(n=r,i=new K(o));return K.isReadable(e,i,{level:a,size:d})||!s?i:(o.includeFallbackColors=!1,K.mostReadable(e,["#fff","#000"],o))}}function Q(e,t,o){e=ge(e,255),t=ge(t,255),o=ge(o,255);const r=Math.max(e,t,o),i=Math.min(e,t,o);let n,s;const a=(r+i)/2;if(r==i)n=s=0;else{const d=r-i;switch(s=a>.5?d/(2-r-i):d/(r+i),r){case e:n=(t-o)/d+(t<o?6:0);break;case t:n=(o-e)/d+2;break;case o:n=(e-t)/d+4}n/=6}return{h:n,s,l:a}}function $(e,t,o){e=ge(e,255),t=ge(t,255),o=ge(o,255);const r=Math.max(e,t,o),i=Math.min(e,t,o);let n;const s=r,a=r-i,d=0===r?0:a/r;if(r==i)n=0;else{switch(r){case e:n=(t-o)/a+(t<o?6:0);break;case t:n=(o-e)/a+2;break;case o:n=(e-t)/a+4}n/=6}return{h:n,s:d,v:s}}function ee(e,t,o,r){const i=[ye(Math.round(e).toString(16)),ye(Math.round(t).toString(16)),ye(Math.round(o).toString(16))];return r&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0):i.join("")}function te(e,t,o,r){return[ye(Se(r)),ye(Math.round(e).toString(16)),ye(Math.round(t).toString(16)),ye(Math.round(o).toString(16))].join("")}function oe(e,t){t=0===t?0:t||10;const o=new K(e).toHsl();return o.s-=t/100,o.s=be(o.s),new K(o)}function re(e,t){t=0===t?0:t||10;const o=new K(e).toHsl();return o.s+=t/100,o.s=be(o.s),new K(o)}function ie(e){return new K(e).desaturate(100)}function ne(e,t){t=0===t?0:t||10;const o=new K(e).toHsl();return o.l+=t/100,o.l=be(o.l),new K(o)}function se(e,t){t=0===t?0:t||10;const o=new K(e).toRgb();return o.r=Math.max(0,Math.min(255,o.r-Math.round(-t/100*255))),o.g=Math.max(0,Math.min(255,o.g-Math.round(-t/100*255))),o.b=Math.max(0,Math.min(255,o.b-Math.round(-t/100*255))),new K(o)}function ae(e,t){t=0===t?0:t||10;const o=new K(e).toHsl();return o.l-=t/100,o.l=be(o.l),new K(o)}function de(e,t){const o=new K(e).toHsl(),r=(o.h+t)%360;return o.h=r<0?360+r:r,new K(o)}K.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},K.hexNames=function(e){const t={};for(const o in e)e.hasOwnProperty(o)&&(t[e[o]]=o);return t}(K.names);const le=e=>{const t=new K(e).toHsl();return t.h=(t.h+180)%360,new K(t)},ce=(e,t)=>{if(isNaN(t)||t<=0)throw new Error("Argument to polyad must be a positive number");const o=new K(e).toHsl(),r=[new K(e)],i=360/t;for(let e=1;e<t;e++)r.push(new K({h:(o.h+e*i)%360,s:o.s,l:o.l}));return r};function ue(e){const t=new K(e).toHsl(),o=t.h;return[new K(e),new K({h:(o+72)%360,s:t.s,l:t.l}),new K({h:(o+216)%360,s:t.s,l:t.l})]}function he(e,t,o){t=t||6,o=o||30;const r=new K(e).toHsl(),i=360/o,n=[new K(e)];for(r.h=(r.h-(i*t>>1)+720)%360;--t;)r.h=(r.h+i)%360,n.push(new K(r));return n}function pe(e,t){t=t||6;const o=new K(e).toHsv(),r=o.h,i=o.s;let n=o.v;const s=[],a=1/t;for(;t--;)s.push(new K({h:r,s:i,v:n})),n=(n+a)%1;return s}function me(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function ge(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");const o=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=Math.min(t,Math.max(0,parseFloat(e))),o&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function be(e){return Math.min(1,Math.max(0,e))}function fe(e){return parseInt(e,16)}function ye(e){return 1==e.length?"0"+e:""+e}function Oe(e){return e<=1&&(e=100*e+"%"),e}function Se(e){return Math.round(255*parseFloat(e)).toString(16)}function Ce(e){return fe(e)/255}const ke=(()=>{const e="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",t=`[\\s|\\(]+(${e})[,|\\s]+(${e})[,|\\s]+(${e})\\s*\\)?`,o=`[\\s|\\(]+(${e})[,|\\s]+(${e})[,|\\s]+(${e})[,|\\s]+(${e})\\s*\\)?`;return{CSS_UNIT:new RegExp(e),rgb:new RegExp("rgb"+t),rgba:new RegExp("rgba"+o),hsl:new RegExp("hsl"+t),hsla:new RegExp("hsla"+o),hsv:new RegExp("hsv"+t),hsva:new RegExp("hsva"+o),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}})();function we(e){return!!ke.CSS_UNIT.exec(e)}function ve(e,t){e.decorations||(e.decorations={}),["top","right","bottom","left"].forEach((o=>{e.decorations[o]||(e.decorations[o]={}),e.decorations[o].style||(e.decorations[o].style={}),e.decorations[o].style.fontColor=t}))}function Ae(e){const t={};if((e.primaryColor||e.dotsGradient)&&(t.dotsOptions={...t.dotsOptions,...e.primaryColor&&{color:e.primaryColor},...e.dotsGradient&&{gradient:e.dotsGradient}}),(e.secondaryColor||e.cornersGradient)&&(t.cornersSquareOptions={...t.cornersSquareOptions,...e.secondaryColor&&{color:e.secondaryColor},...e.cornersGradient&&{gradient:e.cornersGradient}},t.cornersDotOptions={...t.cornersDotOptions,...e.secondaryColor&&{color:e.secondaryColor}}),(e.thirdColor||e.cornersDotGradient)&&(t.cornersDotOptions={...t.cornersDotOptions,...e.thirdColor&&{color:e.thirdColor},...e.cornersDotGradient&&{gradient:e.cornersDotGradient}}),(e.backgroundColor||e.backgroundGradient)&&(t.backgroundOptions={...t.backgroundOptions,...e.backgroundColor&&{color:e.backgroundColor},...e.backgroundGradient&&{gradient:e.backgroundGradient}}),e.dotShape&&(t.dotsOptions={...t.dotsOptions,type:e.dotShape}),e.cornerSquareShape&&(t.cornersSquareOptions={...t.cornersSquareOptions,type:e.cornerSquareShape}),e.cornerDotShape&&(t.cornersDotOptions={...t.cornersDotOptions,type:e.cornerDotShape}),e.logo&&(t.image=e.logo),(void 0!==e.logoSize||e.logoMode||void 0!==e.logoMargin||e.logoBackgroundColor||void 0!==e.logoPadding||void 0!==e.logoRadius)&&(t.imageOptions={...t.imageOptions,...void 0!==e.logoSize&&{imageSize:e.logoSize},...e.logoMode&&{mode:e.logoMode},...void 0!==e.logoMargin&&{margin:e.logoMargin},...e.logoBackgroundColor&&{backgroundColor:e.logoBackgroundColor},...void 0!==e.logoPadding&&{padding:e.logoPadding},...void 0!==e.logoRadius&&{radius:e.logoRadius}}),e.borderColor||void 0!==e.borderThickness||void 0!==e.borderRadius||e.borderInnerColor||void 0!==e.borderInnerThickness||void 0!==e.borderInnerRadius||e.borderOuterColor||void 0!==e.borderOuterThickness||e.borderTextTop||e.borderTextRight||e.borderTextBottom||e.borderTextLeft||e.borderFontFace||void 0!==e.borderFontSize||e.borderFontColor||void 0!==e.borderLetterSpacing||e.borderTextTransform||e.borderFontWeight){t.borderOptions||(t.borderOptions={});const o=t.borderOptions;e.borderColor&&(o.color=e.borderColor),void 0!==e.borderThickness&&(o.thickness=e.borderThickness),void 0!==e.borderRadius&&(o.radius=String(e.borderRadius)),void 0===e.borderInnerColor&&void 0===e.borderInnerThickness||(o.borderInner||(o.borderInner={}),void 0!==e.borderInnerColor&&(o.borderInner.color=e.borderInnerColor),void 0!==e.borderInnerThickness&&(o.borderInner.thickness=e.borderInnerThickness)),void 0!==e.borderInnerRadius&&(o.inner||(o.inner={}),o.inner.radius=String(e.borderInnerRadius)),void 0===e.borderOuterColor&&void 0===e.borderOuterThickness||(o.borderOuter||(o.borderOuter={}),void 0!==e.borderOuterColor&&(o.borderOuter.color=e.borderOuterColor),void 0!==e.borderOuterThickness&&(o.borderOuter.thickness=e.borderOuterThickness));const r={};e.borderFontFace&&(r.fontFace=e.borderFontFace),void 0!==e.borderFontSize&&(r.fontSize=e.borderFontSize),e.borderFontColor&&(r.fontColor=e.borderFontColor),void 0!==e.borderLetterSpacing&&(r.letterSpacing=e.borderLetterSpacing),e.borderTextTransform&&(r.textTransform=e.borderTextTransform),e.borderFontWeight&&(r.fontWeight=e.borderFontWeight),o.decorations||(o.decorations={});const i=o.decorations?JSON.parse(JSON.stringify(o.decorations)):{};let n=!1;Object.keys(r).length>0&&(n=!0,["top","right","bottom","left"].forEach((e=>{i[e]||(i[e]={}),i[e].style||(i[e].style={}),i[e].style={...i[e].style,...r}}))),["top","right","bottom","left"].forEach((t=>{const o=`borderText${t.charAt(0).toUpperCase()+t.slice(1)}`,s=e[o];void 0!==s?(i[t]||(i[t]={}),i[t]={...i[t],value:s,enableText:!0,style:{...i[t]?.style||{},...r}},n=!0):i[t]?.value&&Object.keys(r).length>0&&!i[t]?.style&&(i[t].style||(i[t].style={}),i[t].style={...i[t].style,...r},n=!0)})),n&&(o.decorations=i)}if(!!(e.primaryColor||e.secondaryColor||e.thirdColor||e.backgroundColor)){t.borderOptions||(t.borderOptions={});const o=t.borderOptions;if(e.secondaryColor&&!e.borderColor){const t=new K(e.secondaryColor).isDark();o.color=new K(e.primaryColor).darken(t?-12:12).toString()}if(e.thirdColor&&!e.borderInnerColor&&(o.borderInner||(o.borderInner={}),o.borderInner.color=new K(e.thirdColor).darken(2).toString()),e.primaryColor&&!e.borderOuterColor&&(o.borderOuter=o.borderOuter||{},o.borderOuter.color=new K(e.primaryColor).darken(2).toString()),e.backgroundColor&&!e.borderFontColor&&o.color){const t=new K(e.backgroundColor),r=new K(o.color),i=K.readability(t,r),n=t.isDark();if(i<2){ve(o,(n?t.lighten(15):t.darken(15)).toString())}else{ve(o,(n?t.lighten(20):t.lighten(10)).toString())}}}return t}function Te(e){const t=[];return void 0!==e.logoSize&&("number"!=typeof e.logoSize||e.logoSize<0||e.logoSize>1)&&t.push("logoSize must be a number between 0 and 1."),{isValid:0===t.length,errors:t}}class qe{constructor(){}close(){}}class Ie extends qe{constructor(e){super(),this.istream=e,this.buffer=0,this.buflen=0}readByte(){for(;this.buflen<8;){const e=this.istream.readByte();if(-1==e){if(0==this.buflen)return-1;throw new Error("unexpected end of file./"+this.buflen)}if(e=="=".charCodeAt(0))return this.buflen=0,-1;Ie.isWhitespace(e)||(this.buffer=this.buffer<<6|Ie.decode(e),this.buflen+=6)}const e=this.buffer>>>this.buflen-8&255;return this.buflen-=8,e}static isWhitespace(e){return e=="\v".charCodeAt(0)||e=="\t".charCodeAt(0)||e=="\r".charCodeAt(0)||e=="\n".charCodeAt(0)}static decode(e){if("A".charCodeAt(0)<=e&&e<="Z".charCodeAt(0))return e-"A".charCodeAt(0);if("a".charCodeAt(0)<=e&&e<="z".charCodeAt(0))return e-"a".charCodeAt(0)+26;if("0".charCodeAt(0)<=e&&e<="9".charCodeAt(0))return e-"0".charCodeAt(0)+52;if(e=="+".charCodeAt(0))return 62;if(e=="/".charCodeAt(0))return 63;throw new Error("c:"+e)}}class Ze extends qe{constructor(e){super(),this.bytes=e,this.pos=0}readByte(){if(this.pos<this.bytes.length){const e=this.bytes[this.pos];return this.pos+=1,e}return-1}}(function(e,t){const o=(()=>{const o=new Ie(new Ze(function(e){const t=[];for(let o=0;o<e.length;o+=1)t.push(e.charCodeAt(o));return t}(e))),r=()=>{const e=o.readByte();if(-1==e)throw new Error("eof");return e};let i=0;const n={};for(;;){const e=o.readByte();if(-1==e)break;const t=r(),s=r()<<8|r();n[String.fromCharCode(e<<8|t)]=s,i+=1}if(i!=t)throw new Error(i+"!="+t);return n})(),r="?".charCodeAt(0)})("AAAAAAABAAEAAgACAAMAAwAEAAQABQAFAAYABgAHAAcACAAIAAkACQAKAAoACwALAAwADAANAA0ADgAOAA8ADwAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAB4AHgAfAB8AIAAgACEAIQAiACIAIwAjACQAJAAlACUAJgAmACcAJwAoACgAKQApACoAKgArACsALAAsAC0ALQAuAC4ALwAvADAAMAAxADEAMgAyADMAMwA0ADQANQA1ADYANgA3ADcAOAA4ADkAOQA6ADoAOwA7ADwAPAA9AD0APgA+AD8APwBAAEAAQQBBAEIAQgBDAEMARABEAEUARQBGAEYARwBHAEgASABJAEkASgBKAEsASwBMAEwATQBNAE4ATgBPAE8AUABQAFEAUQBSAFIAUwBTAFQAVABVAFUAVgBWAFcAVwBYAFgAWQBZAFoAWgBbAFsAXABcAF0AXQBeAF4AXwBfAGAAYABhAGEAYgBiAGMAYwBkAGQAZQBlAGYAZgBnAGcAaABoAGkAaQBqAGoAawBrAGwAbABtAG0AbgBuAG8AbwBwAHAAcQBxAHIAcgBzAHMAdAB0AHUAdQB2AHYAdwB3AHgAeAB5AHkAegB6AHsAewB8AHwAfQB9AH4AfgB/AH8AooGRAKOBkgCngZgAqIFOAKyBygCwgYsAsYF9ALSBTAC2gfcA14F+APeBgAORg58DkoOgA5ODoQOUg6IDlYOjA5aDpAOXg6UDmIOmA5mDpwOag6gDm4OpA5yDqgOdg6sDnoOsA5+DrQOgg64DoYOvA6ODsAOkg7EDpYOyA6aDswOng7QDqIO1A6mDtgOxg78DsoPAA7ODwQO0g8IDtYPDA7aDxAO3g8UDuIPGA7mDxwO6g8gDu4PJA7yDygO9g8sDvoPMA7+DzQPAg84DwYPPA8OD0APEg9EDxYPSA8aD0wPHg9QDyIPVA8mD1gQBhEYEEIRABBGEQQQShEIEE4RDBBSERAQVhEUEFoRHBBeESAQYhEkEGYRKBBqESwQbhEwEHIRNBB2ETgQehE8EH4RQBCCEUQQhhFIEIoRTBCOEVAQkhFUEJYRWBCaEVwQnhFgEKIRZBCmEWgQqhFsEK4RcBCyEXQQthF4ELoRfBC+EYAQwhHAEMYRxBDKEcgQzhHMENIR0BDWEdQQ2hHcEN4R4BDiEeQQ5hHoEOoR7BDuEfAQ8hH0EPYR+BD6EgAQ/hIEEQISCBEGEgwRChIQEQ4SFBESEhgRFhIcERoSIBEeEiQRIhIoESYSLBEqEjARLhI0ETISOBE2EjwROhJAET4SRBFGEdiAQgV0gFIFcIBaBYSAYgWUgGYFmIByBZyAdgWggIIH1ICGB9iAlgWQgJoFjIDCB8SAygYwgM4GNIDuBpiEDgY4hK4HwIZCBqSGRgaohkoGoIZOBqyHSgcsh1IHMIgCBzSICgd0iA4HOIgeB3iIIgbgiC4G5IhKBfCIageMiHYHlIh6BhyIggdoiJ4HIIiiBySIpgb8iKoG+IiuB5yIsgegiNIGIIjWB5iI9geQiUoHgImCBgiJhgd8iZoGFImeBhiJqgeEia4HiIoKBvCKDgb0ihoG6IoeBuyKlgdsjEoHcJQCEnyUBhKolAoSgJQOEqyUMhKElD4SsJRCEoiUThK0lFISkJReEryUYhKMlG4SuJRyEpSUdhLolIIS1JSOEsCUkhKclJYS8JSiEtyUrhLIlLISmJS+EtiUwhLslM4SxJTSEqCU3hLglOIS9JTuEsyU8hKklP4S5JUKEviVLhLQloIGhJaGBoCWygaMls4GiJbyBpSW9gaQlxoGfJceBniXLgZslzoGdJc+BnCXvgfwmBYGaJgaBmSZAgYomQoGJJmqB9CZtgfMmb4HyMACBQDABgUEwAoFCMAOBVjAFgVgwBoFZMAeBWjAIgXEwCYFyMAqBczALgXQwDIF1MA2BdjAOgXcwD4F4MBCBeTARgXowEoGnMBOBrDAUgWswFYFsMByBYDBBgp8wQoKgMEOCoTBEgqIwRYKjMEaCpDBHgqUwSIKmMEmCpzBKgqgwS4KpMEyCqjBNgqswToKsME+CrTBQgq4wUYKvMFKCsDBTgrEwVIKyMFWCszBWgrQwV4K1MFiCtjBZgrcwWoK4MFuCuTBcgrowXYK7MF6CvDBfgr0wYIK+MGGCvzBigsAwY4LBMGSCwjBlgsMwZoLEMGeCxTBogsYwaYLHMGqCyDBrgskwbILKMG2CyzBugswwb4LNMHCCzjBxgs8wcoLQMHOC0TB0gtIwdYLTMHaC1DB3gtUweILWMHmC1zB6gtgwe4LZMHyC2jB9gtswfoLcMH+C3TCAgt4wgYLfMIKC4DCDguEwhILiMIWC4zCGguQwh4LlMIiC5jCJgucwioLoMIuC6TCMguowjYLrMI6C7DCPgu0wkILuMJGC7zCSgvAwk4LxMJuBSjCcgUswnYFUMJ6BVTChg0AwooNBMKODQjCkg0MwpYNEMKaDRTCng0YwqINHMKmDSDCqg0kwq4NKMKyDSzCtg0wwroNNMK+DTjCwg08wsYNQMLKDUTCzg1IwtINTMLWDVDC2g1Uwt4NWMLiDVzC5g1gwuoNZMLuDWjC8g1swvYNcML6DXTC/g14wwINfMMGDYDDCg2Eww4NiMMSDYzDFg2QwxoNlMMeDZjDIg2cwyYNoMMqDaTDLg2owzINrMM2DbDDOg20wz4NuMNCDbzDRg3Aw0oNxMNODcjDUg3Mw1YN0MNaDdTDXg3Yw2IN3MNmDeDDag3kw24N6MNyDezDdg3ww3oN9MN+DfjDgg4Aw4YOBMOKDg