@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 • 662 kB
JavaScript
!function(A,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((A="undefined"!=typeof globalThis?globalThis:A||self).QRCodeJs={})}(this,(function(A){"use strict";function e(A,e){return e.forEach((function(e){e&&"string"!=typeof e&&!Array.isArray(e)&&Object.keys(e).forEach((function(t){if("default"!==t&&!(t in A)){var i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(A,t,i.get?i:{enumerable:!0,get:function(){return e[t]}})}}))})),Object.freeze(A)}const t={width:500,height:500};class i{constructor(){this.buffer=[],this.length=0}getBuffer(){return this.buffer}getLengthInBits(){return this.length}toString(){let A="";for(let e=0;e<this.getLengthInBits();e+=1)A+=this.getBit(e)?"1":"0";return A}getBit(A){return 1==(this.buffer[~~(A/8)]>>>7-A%8&1)}put(A,e){for(let t=0;t<e;t+=1)this.putBit(1==(A>>>e-t-1&1))}putBit(A){this.length==8*this.buffer.length&&this.buffer.push(0),A&&(this.buffer[~~(this.length/8)]|=128>>>this.length%8),this.length+=1}}var o,g,n;!function(A){A[A.L=1]="L",A[A.M=0]="M",A[A.Q=3]="Q",A[A.H=2]="H"}(o||(o={}));class r{constructor(){throw new Error("error")}static glog(A){if(A<1)throw new Error("log("+A+")");return r.LOG_TABLE[A]}static gexp(A){for(;A<0;)A+=255;for(;A>=256;)A-=255;return r.EXP_TABLE[A]}}r.initialize=(()=>{r.EXP_TABLE=[],r.LOG_TABLE=[];for(let A=0;A<256;A+=1)r.EXP_TABLE.push(A<8?1<<A:r.EXP_TABLE[A-4]^r.EXP_TABLE[A-5]^r.EXP_TABLE[A-6]^r.EXP_TABLE[A-8]),r.LOG_TABLE.push(0);for(let A=0;A<255;A+=1)r.LOG_TABLE[r.EXP_TABLE[A]]=A})();class I{constructor(A,e=0){let t=0;for(;t<A.length&&0==A[t];)t+=1;this.num=[];const i=A.length-t;for(let e=0;e<i;e+=1)this.num.push(A[t+e]);for(let A=0;A<e;A+=1)this.num.push(0)}getAt(A){return this.num[A]}getLength(){return this.num.length}toString(){let A="";for(let e=0;e<this.getLength();e+=1)e>0&&(A+=","),A+=this.getAt(e);return A.toString()}toLogString(){let A="";for(let e=0;e<this.getLength();e+=1)e>0&&(A+=","),A+=r.glog(this.getAt(e));return A.toString()}multiply(A){const e=[],t=this.getLength()+A.getLength()-1;for(let A=0;A<t;A+=1)e.push(0);for(let t=0;t<this.getLength();t+=1)for(let i=0;i<A.getLength();i+=1)e[t+i]^=r.gexp(r.glog(this.getAt(t))+r.glog(A.getAt(i)));return new I(e)}mod(A){if(this.getLength()-A.getLength()<0)return this;const e=r.glog(this.getAt(0))-r.glog(A.getAt(0)),t=[];for(let A=0;A<this.getLength();A+=1)t.push(this.getAt(A));for(let i=0;i<A.getLength();i+=1)t[i]^=r.gexp(r.glog(A.getAt(i))+e);return new I(t).mod(A)}}!function(A){A[A.MODE_NUMBER=1]="MODE_NUMBER",A[A.MODE_ALPHA_NUM=2]="MODE_ALPHA_NUM",A[A.MODE_8BIT_BYTE=4]="MODE_8BIT_BYTE",A[A.MODE_KANJI=8]="MODE_KANJI"}(g||(g={}));class s{constructor(A,e){this.mode=A,this.data=e}getMode(){return this.mode}getData(){return this.data}getLengthInBits(A){if(1<=A&&A<10)switch(this.mode){case g.MODE_NUMBER:return 10;case g.MODE_ALPHA_NUM:return 9;case g.MODE_8BIT_BYTE:case g.MODE_KANJI:return 8;default:throw new Error("mode:"+this.mode)}else if(A<27)switch(this.mode){case g.MODE_NUMBER:return 12;case g.MODE_ALPHA_NUM:return 11;case g.MODE_8BIT_BYTE:return 16;case g.MODE_KANJI:return 10;default:throw new Error("mode:"+this.mode)}else{if(!(A<41))throw new Error("typeNumber:"+A);switch(this.mode){case g.MODE_NUMBER:return 14;case g.MODE_ALPHA_NUM:return 13;case g.MODE_8BIT_BYTE:return 16;case g.MODE_KANJI:return 12;default:throw new Error("mode:"+this.mode)}}}}class a extends s{constructor(A,e){super(g.MODE_8BIT_BYTE,A),this.stringToBytes=e}write(A){this.stringToBytes(this.getData()).forEach((e=>A.put(e,8)))}getLength(){return this.stringToBytes(this.getData()).length}}class B extends s{constructor(A){super(g.MODE_ALPHA_NUM,A)}write(A){const e=this.getData();let t=0;for(;t+1<e.length;)A.put(45*B.getCode(e.charAt(t))+B.getCode(e.charAt(t+1)),11),t+=2;t<e.length&&A.put(B.getCode(e.charAt(t)),6)}getLength(){return this.getData().length}static getCode(A){if("0"<=A&&A<="9")return A.charCodeAt(0)-"0".charCodeAt(0);if("A"<=A&&A<="Z")return A.charCodeAt(0)-"A".charCodeAt(0)+10;switch(A){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 :"+A)}}}class C extends s{constructor(A,e){super(g.MODE_KANJI,A),this.stringToBytes=e}write(A){const e=this.stringToBytes(this.getData());let t=0;for(;t+1<e.length;){let i=(255&e[t])<<8|255&e[t+1];if(33088<=i&&i<=40956)i-=33088;else{if(!(57408<=i&&i<=60351))throw new Error("illegal char at "+(t+1)+"/"+i);i-=49472}i=192*(i>>>8&255)+(255&i),A.put(i,13),t+=2}if(t<e.length)throw new Error("illegal char at "+(t+1))}getLength(){return this.stringToBytes(this.getData()).length/2}}class Q extends s{constructor(A){super(g.MODE_NUMBER,A)}write(A){const e=this.getData();let t=0;for(;t+2<e.length;)A.put(Q.strToNum(e.substring(t,t+3)),10),t+=3;t<e.length&&(e.length-t==1?A.put(Q.strToNum(e.substring(t,t+1)),4):e.length-t==2&&A.put(Q.strToNum(e.substring(t,t+2)),7))}getLength(){return this.getData().length}static strToNum(A){let e=0;for(let t=0;t<A.length;t+=1)e=10*e+Q.chatToNum(A.charAt(t));return e}static chatToNum(A){if("0"<=A&&A<="9")return A.charCodeAt(0)-"0".charCodeAt(0);throw new Error("illegal char :"+A)}}!function(A){A[A.PATTERN000=0]="PATTERN000",A[A.PATTERN001=1]="PATTERN001",A[A.PATTERN010=2]="PATTERN010",A[A.PATTERN011=3]="PATTERN011",A[A.PATTERN100=4]="PATTERN100",A[A.PATTERN101=5]="PATTERN101",A[A.PATTERN110=6]="PATTERN110",A[A.PATTERN111=7]="PATTERN111"}(n||(n={}));class E{constructor(){throw new Error("error")}static getPatternPosition(A){return E.PATTERN_POSITION_TABLE[A-1]}static getMaxLength(A,e,t){const i=A-1;let n=0,r=0;switch(t){case o.L:n=0;break;case o.M:n=1;break;case o.Q:n=2;break;case o.H:n=3;break;default:throw new Error("e:"+t)}switch(e){case g.MODE_NUMBER:r=0;break;case g.MODE_ALPHA_NUM:r=1;break;case g.MODE_8BIT_BYTE:r=2;break;case g.MODE_KANJI:r=3;break;default:throw new Error("m:"+e)}return E.MAX_LENGTH[i][n][r]}static getErrorCorrectPolynomial(A){let e=new I([1]);for(let t=0;t<A;t+=1)e=e.multiply(new I([1,r.gexp(t)]));return e}static getMaskFunc(A){switch(A){case n.PATTERN000:return(A,e)=>(A+e)%2==0;case n.PATTERN001:return(A,e)=>A%2==0;case n.PATTERN010:return(A,e)=>e%3==0;case n.PATTERN011:return(A,e)=>(A+e)%3==0;case n.PATTERN100:return(A,e)=>(~~(A/2)+~~(e/3))%2==0;case n.PATTERN101:return(A,e)=>A*e%2+A*e%3==0;case n.PATTERN110:return(A,e)=>(A*e%2+A*e%3)%2==0;case n.PATTERN111:return(A,e)=>(A*e%3+(A+e)%2)%2==0;default:throw new Error("mask:"+A)}}static getLostPoint(A){const e=A.getModuleCount();let t=0;for(let i=0;i<e;i+=1)for(let o=0;o<e;o+=1){let g=0;const n=A.isDark(i,o);for(let t=-1;t<=1;t+=1)if(!(i+t<0||e<=i+t))for(let r=-1;r<=1;r+=1)o+r<0||e<=o+r||0==t&&0==r||n==A.isDark(i+t,o+r)&&(g+=1);g>5&&(t+=3+g-5)}for(let i=0;i<e-1;i+=1)for(let o=0;o<e-1;o+=1){let e=0;A.isDark(i,o)&&(e+=1),A.isDark(i+1,o)&&(e+=1),A.isDark(i,o+1)&&(e+=1),A.isDark(i+1,o+1)&&(e+=1),0!=e&&4!=e||(t+=3)}for(let i=0;i<e;i+=1)for(let o=0;o<e-6;o+=1)A.isDark(i,o)&&!A.isDark(i,o+1)&&A.isDark(i,o+2)&&A.isDark(i,o+3)&&A.isDark(i,o+4)&&!A.isDark(i,o+5)&&A.isDark(i,o+6)&&(t+=40);for(let i=0;i<e;i+=1)for(let o=0;o<e-6;o+=1)A.isDark(o,i)&&!A.isDark(o+1,i)&&A.isDark(o+2,i)&&A.isDark(o+3,i)&&A.isDark(o+4,i)&&!A.isDark(o+5,i)&&A.isDark(o+6,i)&&(t+=40);let i=0;for(let t=0;t<e;t+=1)for(let o=0;o<e;o+=1)A.isDark(o,t)&&(i+=1);return t+=10*(Math.abs(100*i/e/e-50)/5),t}static getBCHTypeInfo(A){let e=A<<10;for(;E.getBCHDigit(e)-E.getBCHDigit(E.G15)>=0;)e^=E.G15<<E.getBCHDigit(e)-E.getBCHDigit(E.G15);return(A<<10|e)^E.G15_MASK}static getBCHTypeNumber(A){let e=A<<12;for(;E.getBCHDigit(e)-E.getBCHDigit(E.G18)>=0;)e^=E.G18<<E.getBCHDigit(e)-E.getBCHDigit(E.G18);return A<<12|e}static getBCHDigit(A){let e=0;for(;0!=A;)e+=1,A>>>=1;return e}}E.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]],E.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]]],E.G15=1335,E.G18=7973,E.G15_MASK=21522;class l{constructor(A,e){this.totalCount=A,this.dataCount=e}getDataCount(){return this.dataCount}getTotalCount(){return this.totalCount}static getRSBlocks(A,e){const t=l.getRsBlockTable(A,e),i=t.length/3,o=[];for(let A=0;A<i;A+=1){const e=t[3*A+0],i=t[3*A+1],g=t[3*A+2];for(let A=0;A<e;A+=1)o.push(new l(i,g))}return o}static getRsBlockTable(A,e){switch(e){case o.L:return l.RS_BLOCK_TABLE[4*(A-1)+0];case o.M:return l.RS_BLOCK_TABLE[4*(A-1)+1];case o.Q:return l.RS_BLOCK_TABLE[4*(A-1)+2];case o.H:return l.RS_BLOCK_TABLE[4*(A-1)+3]}throw new Error("tn:"+A+"/ecl:"+e)}}l.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 h=Array(41).fill(0).map(((A,e)=>e));var d,c;!function(A){A.L="L",A.M="M",A.Q="Q",A.H="H"}(d||(d={})),function(A){A.numeric="numeric",A.alphanumeric="alphanumeric",A.byte="byte",A.kanji="kanji",A.unicode="unicode"}(c||(c={}));class u{constructor(A=0,e=d.L){this.modules=[],this.moduleCount=0,this.typeNumber=A,this.errorCorrectLevel=o[e],this.qrDataList=[]}getTypeNumber(){return this.typeNumber}setTypeNumber(A){this.typeNumber=A}getErrorCorrectLevel(){return this.errorCorrectLevel}setErrorCorrectLevel(A){this.errorCorrectLevel=A}clearData(){this.qrDataList=[]}addData(A,e=c.byte){if(A instanceof s)this.qrDataList.push(A);else{if("string"!=typeof A)throw new Error(typeof A);switch(e){case c.numeric:this.qrDataList.push(new Q(A));break;case c.alphanumeric:this.qrDataList.push(new B(A));break;case c.byte:this.qrDataList.push(new a(A,u.stringToBytesFuncs.default));break;case c.unicode:this.qrDataList.push(new a(A,u.stringToBytesFuncs.UTF8));break;case c.kanji:this.qrDataList.push(new C(A,u.stringToBytesFuncs.SJIS));break;default:throw new Error("mode:"+e)}}}isDark(A,e){return!(!this.modules[A]||null==this.modules[A][e])&&this.modules[A][e]}getModuleCount(){return this.moduleCount}make(){if(this.typeNumber<1){let A=1;for(;A<40;A++){const e=l.getRSBlocks(A,this.errorCorrectLevel),t=new i;this.qrDataList.forEach((e=>{t.put(e.getMode(),4),t.put(e.getLength(),e.getLengthInBits(A)),e.write(t)}));const o=e.reduce(((A,e)=>A+e.getDataCount()),0);if(t.getLengthInBits()<=8*o)break}this.typeNumber=A}this.makeImpl(!1,this.getBestMaskPattern())}getBestMaskPattern(){let A=0,e=0;for(let t=0;t<8;t+=1){this.makeImpl(!0,t);const i=E.getLostPoint(this);(0==t||A>i)&&(A=i,e=t)}return e}makeImpl(A,e){this.moduleCount=4*this.typeNumber+17,this.modules=[];for(let A=0;A<this.moduleCount;A+=1){this.modules.push([]);for(let e=0;e<this.moduleCount;e+=1)this.modules[A].push(null)}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(A,e),this.typeNumber>=7&&this.setupTypeNumber(A);const t=u.createData(this.typeNumber,this.errorCorrectLevel,this.qrDataList);this.mapData(t,e)}mapData(A,e){let t=-1,i=this.moduleCount-1,o=7,g=0;const n=E.getMaskFunc(e);for(let e=this.moduleCount-1;e>0;e-=2)for(6==e&&(e-=1);;){for(let t=0;t<2;t+=1)if(null==this.modules[i][e-t]){let r=!1;g<A.length&&(r=1==(A[g]>>>o&1));n(i,e-t)&&(r=!r),this.modules[i][e-t]=r,o-=1,-1==o&&(g+=1,o=7)}if(i+=t,i<0||this.moduleCount<=i){i-=t,t=-t;break}}}setupPositionAdjustPattern(){const A=E.getPatternPosition(this.typeNumber);A.forEach((e=>{A.forEach((A=>{if(null==this.modules[e][A])for(let t=-2;t<=2;t+=1)for(let i=-2;i<=2;i+=1)this.modules[e+t][A+i]=-2==t||2==t||-2==i||2==i||0==t&&0==i}))}))}setupPositionProbePattern(A,e){for(let t=-1;t<=7;t+=1)for(let i=-1;i<=7;i+=1)A+t<=-1||this.moduleCount<=A+t||e+i<=-1||this.moduleCount<=e+i||(this.modules[A+t][e+i]=0<=t&&t<=6&&(0==i||6==i)||0<=i&&i<=6&&(0==t||6==t)||2<=t&&t<=4&&2<=i&&i<=4)}setupTimingPattern(){for(let A=8;A<this.moduleCount-8;A+=1)null==this.modules[A][6]&&(this.modules[A][6]=A%2==0);for(let A=8;A<this.moduleCount-8;A+=1)null==this.modules[6][A]&&(this.modules[6][A]=A%2==0)}setupTypeNumber(A){const e=E.getBCHTypeNumber(this.typeNumber);for(let t=0;t<18;t+=1)this.modules[~~(t/3)][t%3+this.moduleCount-8-3]=!A&&1==(e>>t&1);for(let t=0;t<18;t+=1)this.modules[t%3+this.moduleCount-8-3][~~(t/3)]=!A&&1==(e>>t&1)}setupTypeInfo(A,e){const t=this.errorCorrectLevel<<3|e,i=E.getBCHTypeInfo(t);for(let e=0;e<15;e+=1){const t=!A&&1==(i>>e&1);e<6?this.modules[e][8]=t:e<8?this.modules[e+1][8]=t:this.modules[this.moduleCount-15+e][8]=t}for(let e=0;e<15;e+=1){const t=!A&&1==(i>>e&1);e<8?this.modules[8][this.moduleCount-e-1]=t:e<9?this.modules[8][15-e-1+1]=t:this.modules[8][15-e-1]=t}this.modules[this.moduleCount-8][8]=!A}static createData(A,e,t){const o=l.getRSBlocks(A,e),g=new i;t.forEach((e=>{g.put(e.getMode(),4),g.put(e.getLength(),e.getLengthInBits(A)),e.write(g)}));const n=o.reduce(((A,e)=>A+e.getDataCount()),0);if(g.getLengthInBits()>8*n)throw new Error("code length overflow. ("+g.getLengthInBits()+">"+8*n+")");for(g.getLengthInBits()+4<=8*n&&g.put(0,4);g.getLengthInBits()%8!=0;)g.putBit(!1);for(;!(g.getLengthInBits()>=8*n||(g.put(u.PAD0,8),g.getLengthInBits()>=8*n));)g.put(u.PAD1,8);return u.createBytes(g,o)}static createBytes(A,e){let t=0,i=0,o=0;const g=new Array(e.length).map((A=>[])),n=new Array(e.length).map((A=>[]));function r(A){const e=[];for(let t=0;t<A;t+=1)e.push(0);return e}for(let s=0;s<e.length;s+=1){const a=e[s].getDataCount(),B=e[s].getTotalCount()-a;i=Math.max(i,a),o=Math.max(o,B),g[s]=r(a);for(let e=0;e<g[s].length;e+=1)g[s][e]=255&A.getBuffer()[e+t];t+=a;const C=E.getErrorCorrectPolynomial(B),Q=new I(g[s],C.getLength()-1).mod(C);n[s]=r(C.getLength()-1);for(let A=0;A<n[s].length;A+=1){const e=A+Q.getLength()-n[s].length;n[s][A]=e>=0?Q.getAt(e):0}}const s=r(e.reduce(((A,e)=>A+e.getTotalCount()),0));let a=0;for(let A=0;A<i;A+=1)for(let t=0;t<e.length;t+=1)A<g[t].length&&(s[a]=g[t][A],a+=1);for(let A=0;A<o;A+=1)for(let t=0;t<e.length;t+=1)A<n[t].length&&(s[a]=n[t][A],a+=1);return s}}u.stringToBytesFuncs={default(A){const e=[];for(let t=0;t<A.length;t+=1){const i=A.charCodeAt(t);e.push(255&i)}return e}},u.PAD0=236,u.PAD1=17;const p=A=>!!A&&"object"==typeof A&&!Array.isArray(A);function m(A,e=!1){const t=A.split("").reverse().join("");return e?t.toLocaleUpperCase():t}function f(A,...e){if(!e.length)return A;const t=e.shift();return void 0!==t&&p(A)&&p(t)?(A={...A},Object.keys(t).forEach((e=>{const i=A[e],o=t[e];Array.isArray(i)&&Array.isArray(o)?A[e]=o:p(i)&&p(o)?A[e]=f({...i},o):A[e]=o})),f(A,...e)):A}m("rq",!0),m("-",!0),m("talp",!0),m("mrof",!0),m("a".repeat(6)+"#",!0);const D="top",w="bottom",y="left",F="right";const S=A=>"number"==typeof A?A:parseInt(A.replace("%",""),10),R=(A,e="0%")=>A?A.endsWith("%")?A:A+"%":e,k="text",U="image",b=(A,e)=>{var t,i;return!(null!==(t=null==A||null===(i=A.decorations)||void 0===i||null===(i=i[e])||void 0===i?void 0:i.disabled)&&void 0!==t&&t)},Y=A=>{if("string"==typeof A)return A;const{fontFace:e="Helvetica",fontSize:t=20,fontColor:i="#ffffff",letterSpacing:o=1,textTransform:g="uppercase",fontWeight:n="bold"}=A||{};return`font-weight: ${n}; text-transform: ${g}; font-size: ${t}px; font-family: ${e}; fill: ${i}; letter-spacing: ${o}px;`};const N=({document:A,position:e,rotate:t,flip:i,thickness:o,height:g,width:n,round:r,offset:I=0,curveAdjustment:s=0,curveRadius:a,outerBorderPadding:B=0,instanceId:C})=>{const Q=Math.min(n,g),E=A.createElementNS("http://www.w3.org/2000/svg","path"),l=(A=>{if(A>=50)return 1;const e=[{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:.78},{R:45,P:.9},{R:50,P:1}],t=e.find((e=>A<=e.R))||e[0],i=e.find((e=>A>e.R))||e[e.length-1],{R:o,P:g}=t,{R:n,P:r}=i;return g+(A-o)/(n-o)*(r-g)})("string"==typeof r?S(r):r),h=void 0!==a?function(A){let e;return e="number"==typeof A?A:"string"==typeof A?(A.includes("%"),parseFloat(A)):0,e=Math.min(Math.max(e,0),50),.5+e/50*.5}(a):l,d=(Q-o-2*B-10*s*2)/2*h,c=((A,e,t,i)=>{const o=t/2,g=i/2;let n="";return A&&(n+=`rotate(${A}, ${o}, ${g}) `),e&&(n+=`translate(${o}, ${g}) scale(1, -1) translate(${-o}, ${-g}) `),n.trim()})(t,i,n,g);E.setAttribute("id",`${e}-text-path-${C}`),E.setAttribute("transform",c);const{startX:u,startY:p,pathWidth:m}=((A,e,t,i,o={})=>{let g=e/2,n=e/2+i,r=A-e;return t&&(r-=2*t,g+=t,n+=t),g+=o.left||0,n+=o.top||0,{startX:g,startY:n,pathWidth:r}})(Q,o,B,I);return E.setAttribute("d",((A,e,t,i)=>`\n M${A},${e+i}\n a${i},${i} 0 0 1 ${i},${-i}\n h${t-2*i}\n a${i},${i} 0 0 1 ${i},${i}\n `)(u,p,m,d)),E},G=({document:A,thickness:e,value:t,svg:i,position:o,height:g,width:n,round:r,style:I,offset:s=0,curveAdjustment:a=0,curveDisabled:B=!1,outerBorderPadding:C=0,curveRadius:Q,instanceId:E,noBorderThickness:l,enabledBorders:h})=>{let d=0,c=!1;if(o===F?d=90:o===w?c=!B:o===y&&(d=270),B){const r=A.createElementNS("http://www.w3.org/2000/svg","text");let a=n/2,B=(g-Math.min(n,g)+e)/2+2*C+s-(g-n>0?0:(n-g)/2);if(o===w?B=g-2*C-e/2-s:o===D&&(B=2*C+e/2+s),o===D||o===w){let A=0;!h[y]&&h[F]?A=-(e-l)/2:h[y]&&!h[F]&&(A=(e-l)/2),a+=A}else if(o===y||o===F){let A=0;!h[D]&&h[w]?A=o===y?(e-l)/2:-(e-l)/2:h[D]&&!h[w]&&(A=o===y?-(e-l)/2:(e-l)/2),a+=A}let Q="";0!==d&&(Q+=`rotate(${d}, ${n/2}, ${g/2}) `),r.setAttribute("x",a.toString()),r.setAttribute("y",B.toString()),r.setAttribute("text-anchor","middle"),r.setAttribute("dominant-baseline","middle"),Q&&r.setAttribute("transform",Q.trim()),r.textContent=t;const E=Y(I);r.setAttribute("style",E),i.appendChild(r)}else{let B=i.getElementsByTagName("defs")[0];B||(B=A.createElementNS("http://www.w3.org/2000/svg","defs"),i.appendChild(B));const u=N({document:A,position:o,rotate:d,flip:c,thickness:e,height:g,width:n,round:r,offset:s,curveAdjustment:a,outerBorderPadding:C,curveRadius:Q,instanceId:E}),{x:p,y:m}=function(A,e,t,i){let o=0,g=0;const n=(e-t)/2;return i.left&&i.right&&i.top&&i.bottom?(o=0,g=0):"top"===A||"bottom"===A?!i.left&&i.right?o=-n:(i.left&&!i.right||i.left&&i.right)&&(o=n):"left"!==A&&"right"!==A||(!i.top&&i.bottom?i.left&&i.right?(o="left"===A?2*+n:0,g=-n):o="left"===A?+n:-n:i.top&&!i.bottom?i.left&&i.right?(o="left"===A?0:2*n,g=-n):o=0:i.top&&i.bottom?g=i.left&&i.right?2*+n:+n:(o=i.left&&i.right?2*+n:+n,g=i.left&&i.right?2*-n:-n)),{x:o,y:g}}(o,e,l,h);if(0!==p||0!==m){const A=`${u.getAttribute("transform")||""} translate(${p}, ${m})`.trim();u.setAttribute("transform",A)}B.appendChild(u),i.appendChild((({document:A,value:e,position:t,style:i,instanceId:o})=>{const g=A.createElementNS("http://www.w3.org/2000/svg","text"),n=A.createElementNS("http://www.w3.org/2000/svg","textPath");n.setAttribute("href",`#${t}-text-path-${o}`),n.setAttribute("text-anchor","middle"),n.setAttribute("startOffset","50%"),n.textContent=e,n.setAttribute("alignment-baseline","middle");const r=Y(i);return g.setAttribute("style",r),g.appendChild(n),g})({document:A,position:o,value:t,style:I,instanceId:E}))}},J=({document:A,thickness:e,value:t,svg:i,position:o,height:g,width:n,offset:r=0,style:I})=>{const s=A.createElementNS("http://www.w3.org/2000/svg","image"),a=Math.min(n,g);let B=(n-a+e)/2,C=(g-a+e)/2+r;o===D?B+=(a-e)/2:o===F?(B+=a-e,C+=(a-e)/2):o===w?(B+=(a-e)/2,C+=a-e):o===y&&(C+=(a-e)/2),s.setAttribute("href",t||""),s.setAttribute("x",`${B}`),s.setAttribute("y",`${C}`),s.setAttribute("style",(null==I?void 0:I.toString())||""),i.appendChild(s)};var V,Z,O,W,M,H,T;function X(A){const e={...A};if(!e.colorStops||!e.colorStops.length)throw new Error("Field 'colorStops' is required in gradient");return e.rotation?e.rotation=Number(e.rotation):e.rotation=0,e.colorStops=e.colorStops.map((A=>({...A,offset:Number(A.offset)}))),e}function x(A){var e,t,i;const o={...A};if(o.imageOptions={...o.imageOptions,imageSize:Math.min(1,Number(null===(e=o.imageOptions)||void 0===e?void 0:e.imageSize))||1,margin:Number(null===(t=o.imageOptions)||void 0===t?void 0:t.margin)||0,padding:Number(null===(i=o.imageOptions)||void 0===i?void 0:i.padding)||0},o.imageOptions.mode==T.overlay&&(o.imageOptions.margin=0),o.dotsOptions={...o.dotsOptions},o.dotsOptions.gradient&&(o.dotsOptions.gradient=X(o.dotsOptions.gradient)),o.dotsOptions.size=Math.round(Math.max(0,o.dotsOptions.size)||10),o.cornersSquareOptions&&(o.cornersSquareOptions={...o.cornersSquareOptions},o.cornersSquareOptions.gradient&&(o.cornersSquareOptions.gradient=X(o.cornersSquareOptions.gradient))),o.cornersDotOptions&&(o.cornersDotOptions={...o.cornersDotOptions},o.cornersDotOptions.gradient&&(o.cornersDotOptions.gradient=X(o.cornersDotOptions.gradient))),o.backgroundOptions&&(o.backgroundOptions={...o.backgroundOptions},o.backgroundOptions.gradient&&(o.backgroundOptions.gradient=X(o.backgroundOptions.gradient))),o.borderOptions&&o.borderOptions.decorations){const A=["top","bottom","left","right"];for(const e of A){let A=o.borderOptions.decorations[e];A||(o.borderOptions.decorations[e]={enableText:!1,value:void 0},A=o.borderOptions.decorations[e]),!1===A.enableText?A.value=void 0:!0===A.enableText?null!==A.value&&void 0!==A.value||(A.value=""):void 0===A.enableText&&(A.value&&"string"==typeof A.value&&!1!==A.enableText&&""!==A.value.trim()?A.enableText=!0:(A.enableText=!1,A.value=void 0))}}return"undefined"==typeof document||o.document||(o.document=document),o}!function(A){A.radial="radial",A.linear="linear"}(V||(V={})),function(A){A.svg="svg",A.png="png",A.jpeg="jpeg",A.webp="webp"}(Z||(Z={})),function(A){A.dot="dot",A.randomDot="random-dot",A.rounded="rounded",A.extraRounded="extra-rounded",A.verticalLine="vertical-line",A.horizontalLine="horizontal-line",A.classy="classy",A.classyRounded="classy-rounded",A.square="square",A.smallSquare="small-square",A.tinySquare="tiny-square",A.star="star",A.plus="plus",A.diamond="diamond"}(O||(O={})),function(A){A.dot="dot",A.square="square",A.heart="heart",A.rounded="rounded",A.classy="classy",A.outpoint="outpoint",A.inpoint="inpoint"}(W||(W={})),function(A){A.dot="dot",A.square="square",A.rounded="rounded",A.classy="classy",A.outpoint="outpoint",A.inpoint="inpoint"}(M||(M={})),function(A){A.square="square",A.circle="circle"}(H||(H={})),function(A){A.center="center",A.overlay="overlay",A.background="background"}(T||(T={}));const L={[d.L]:.07,[d.M]:.15,[d.Q]:.25,[d.H]:.3};class K{constructor(A="",e={}){if(A instanceof K)return A;const t=function(A){let e={r:0,g:0,b:0},t=1,i=null,o=null,g=null,n=!1,r=!1;"string"==typeof A&&(A=function(A){const e=/^\s+/,t=/\s+$/;A=A.replace(e,"").replace(t,"").toLowerCase();let i,o=!1;if(K.names[A])A=K.names[A],o=!0;else if("transparent"==A)return{r:0,g:0,b:0,a:0,format:"name"};if(i=dA.rgb.exec(A))return{r:i[1],g:i[2],b:i[3]};if(i=dA.rgba.exec(A))return{r:i[1],g:i[2],b:i[3],a:i[4]};if(i=dA.hsl.exec(A))return{h:i[1],s:i[2],l:i[3]};if(i=dA.hsla.exec(A))return{h:i[1],s:i[2],l:i[3],a:i[4]};if(i=dA.hsv.exec(A))return{h:i[1],s:i[2],v:i[3]};if(i=dA.hsva.exec(A))return{h:i[1],s:i[2],v:i[3],a:i[4]};if(i=dA.hex8.exec(A))return{r:CA(i[1]),g:CA(i[2]),b:CA(i[3]),a:hA(i[4]),format:o?"name":"hex8"};if(i=dA.hex6.exec(A))return{r:CA(i[1]),g:CA(i[2]),b:CA(i[3]),format:o?"name":"hex"};if(i=dA.hex4.exec(A))return{r:CA(i[1]+""+i[1]),g:CA(i[2]+""+i[2]),b:CA(i[3]+""+i[3]),a:hA(i[4]+""+i[4]),format:o?"name":"hex8"};if(i=dA.hex3.exec(A))return{r:CA(i[1]+""+i[1]),g:CA(i[2]+""+i[2]),b:CA(i[3]+""+i[3]),format:o?"name":"hex"};return!1}(A));"object"==typeof A&&(cA(A.r)&&cA(A.g)&&cA(A.b)?(e=function(A,e,t){return{r:255*aA(A,255),g:255*aA(e,255),b:255*aA(t,255)}}(A.r,A.g,A.b),n=!0,r="%"===String(A.r).slice(-1)?"prgb":"rgb"):cA(A.h)&&cA(A.s)&&cA(A.v)?(i=EA(A.s),o=EA(A.v),e=function(A,e,t){A=6*aA(A,360),e=aA(e,100),t=aA(t,100);const i=Math.floor(A),o=A-i,g=t*(1-e),n=t*(1-o*e),r=t*(1-(1-o)*e),I=i%6,s=[t,n,g,g,r,t][I],a=[r,t,t,n,g,g][I],B=[g,g,r,t,t,qw][I];return{r:255*s,g:255*a,b:255*B}}(A.h,i,o),n=!0,r="hsv"):cA(A.h)&&cA(A.s)&&cA(A.l)&&(i=EA(A.s),g=EA(A.l),e=function(A,e,t){let i,o,g;function n(A,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?A+6*(e-A)*t:t<.5?e:t<2/3?A+(e-A)*(2/3-t)*6:A}if(A=aA(A,360),e=aA(e,100),t=aA(t,100),0===e)i=o=g=t;else{const r=t<.5?t*(1+e):t+e-t*e,I=2*t-r;i=n(I,r,A+1/3),o=n(I,r,A),g=n(I,r,A-1/3)}return{r:255*i,g:255*o,b:255*g}}(A.h,i,g),n=!0,r="hsl"),A.hasOwnProperty("a")&&(t=A.a));return t=sA(t),{ok:n,format:A.format||r,r:Math.min(255,Math.max(e.r,0)),g:Math.min(255,Math.max(e.g,0)),b:Math.min(255,Math.max(e.b,0)),a:t}}(A);this._originalInput=A,this._r=t.r,this._g=t.g,this._b=t.b,this._a=t.a,this._roundA=Math.round(100*this._a)/100,this._format=e.format||t.format,this._gradientType=e.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=t.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 A=this.toRgb();return(299*A.r+587*A.g+114*A.b)/1e3}getLuminance(){const A=this.toRgb(),e=A.r/255,t=A.g/255,i=A.b/255;return.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.0722*(i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))}setAlpha(A){return this._a=sA(A),this._roundA=Math.round(100*this._a)/100,this}toHsv(){const A=j(this._r,this._g,this._b);return{h:360*A.h,s:A.s,v:A.v,a:this._a}}toHsvString(){const A=j(this._r,this._g,this._b),e=Math.round(360*A.h),t=Math.round(100*A.s),i=Math.round(100*A.v);return 1==this._a?`hsv(${e}, ${t}%, ${i}%)`:`hsva(${e}, ${t}%, ${i}%, ${this._roundA})`}toHsl(){const A=q(this._r,this._g,this._b);return{h:360*A.h,s:A.s,l:A.l,a:this._a}}toHslString(){const A=q(this._r,this._g,this._b),e=Math.round(360*A.h),t=Math.round(100*A.s),i=Math.round(100*A.l);return 1==this._a?`hsl(${e}, ${t}%, ${i}%)`:`hsla(${e}, ${t}%, ${i}%, ${this._roundA})`}toHex(A){return P(this._r,this._g,this._b,A)}toHexString(A){return"#"+this.toHex(A)}toHex8(A){return function(A,e,t,i,o){const g=[QA(Math.round(A).toString(16)),QA(Math.round(e).toString(16)),QA(Math.round(t).toString(16)),QA(lA(i))];if(o&&g[0].charAt(0)==g[0].charAt(1)&&g[1].charAt(0)==g[1].charAt(1)&&g[2].charAt(0)==g[2].charAt(1)&&g[3].charAt(0)==g[3].charAt(1))return g[0].charAt(0)+g[1].charAt(0)+g[2].charAt(0)+g[3].charAt(0);return g.join("")}(this._r,this._g,this._b,this._a,A)}toHex8String(A){return"#"+this.toHex8(A)}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*aA(this._r,255))+"%",g:Math.round(100*aA(this._g,255))+"%",b:Math.round(100*aA(this._b,255))+"%",a:this._a}}toPercentageRgbString(){return 1==this._a?`rgb(${Math.round(100*aA(this._r,255))}%, ${Math.round(100*aA(this._g,255))}%, ${Math.round(100*aA(this._b,255))}%)`:`rgba(${Math.round(100*aA(this._r,255))}%, ${Math.round(100*aA(this._g,255))}%, ${Math.round(100*aA(this._b,255))}%, ${this._roundA})`}toName(){return 0===this._a?"transparent":!(this._a<1)&&(K.hexNames[P(this._r,this._g,this._b,!0)]||!1)}toFilter(A){const e="#"+v(this._r,this._g,this._b,this._a);let t=e;const i=this._gradientType?"GradientType = 1, ":"";if(A){const e=new K(A);t="#"+v(e._r,e._g,e._b,e._a)}return`progid:DXImageTransform.Microsoft.gradient(${i}startColorstr=${e},endColorstr=${t})`}toString(A){const e=!!A;A=A||this._format;let t=!1;const i=this._a<1&&this._a>=0;return e||!i||"hex"!==A&&"hex6"!==A&&"hex3"!==A&&"hex4"!==A&&"hex8"!==A&&"name"!==A?("rgb"===A&&(t=this.toRgbString()),"prgb"===A&&(t=this.toPercentageRgbString()),"hex"!==A&&"hex6"!==A||(t=this.toHexString()),"hex3"===A&&(t=this.toHexString(!0)),"hex4"===A&&(t=this.toHex8String(!0)),"hex8"===A&&(t=this.toHex8String()),"name"===A&&(t=this.toName()),"hsl"===A&&(t=this.toHslString()),"hsv"===A&&(t=this.toHsvString()),t||this.toHexString()):"name"===A&&0===this._a?this.toName():this.toRgbString()}clone(){return new K(this.toString())}_applyModification(A,...e){const t=A(this,...e);return this._r=t._r,this._g=t._g,this._b=t._b,this.setAlpha(t._a),this}lighten(...A){return this._applyModification(AA,...A)}brighten(...A){return this._applyModification(eA,...A)}darken(...A){return this._applyModification(tA,...A)}desaturate(...A){return this._applyModification(z,...A)}saturate(...A){return this._applyModification(_,...A)}greyscale(...A){return this._applyModification($,...A)}spin(...A){return this._applyModification(iA,...A)}_applyCombination(A,...e){return A(this,...e)}analogous(...A){return this._applyCombination(rA,...A)}complement(...A){return this._applyCombination(oA,...A)}monochromatic(...A){return this._applyCombination(IA,...A)}splitcomplement(...A){return this._applyCombination(nA,...A)}triad(){return this._applyCombination(gA,3)}tetrad(){return this._applyCombination(gA,4)}static fromRatio(A,e){if("object"==typeof A){const e={};for(const t in A)A.hasOwnProperty(t)&&(e[t]="a"===t?A[t]:EA(A[t]));A=e}return new K(A,e)}static equals(A,e){return!(!A||!e)&&new K(A).toRgbString()===new K(e).toRgbString()}static random(){return K.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})}static mix(A,e,t){t=0===t?0:t||50;const i=new K(A).toRgb(),o=new K(e).toRgb(),g=t/100,n={r:(o.r-i.r)*g+i.r,g:(o.g-i.g)*g+i.g,b:(o.b-i.b)*g+i.b,a:(o.a-i.a)*g+i.a};return new K(n)}static readability(A,e){const t=new K(A),i=new K(e);return(Math.max(t.getLuminance(),i.getLuminance())+.05)/(Math.min(t.getLuminance(),i.getLuminance())+.05)}static isReadable(A,e,t){const i=K.readability(A,e);let o=!1;const g=function(A){let e,t;e=((A=A||{level:"AA",size:"small"}).level||"AA").toUpperCase(),t=(A.size||"small").toLowerCase(),"AA"!==e&&"AAA"!==e&&(e="AA");"small"!==t&&"large"!==t&&(t="small");return{level:e,size:t}}(t);switch(g.level+g.size){case"AAsmall":case"AAAlarge":o=i>=4.5;break;case"AAlarge":o=i>=3;break;case"AAAsmall":o=i>=7}return o}static mostReadable(A,e,t={}){let i,o=null,g=0;const{includeFallbackColors:n,level:r,size:I}=t;for(const t of e)i=K.readability(A,t),i>g&&(g=i,o=new K(t));return K.isReadable(A,o,{level:r,size:I})||!n?o:(t.includeFallbackColors=!1,K.mostReadable(A,["#fff","#000"],t))}}function q(A,e,t){A=aA(A,255),e=aA(e,255),t=aA(t,255);const i=Math.max(A,e,t),o=Math.min(A,e,t);let g,n;const r=(i+o)/2;if(i==o)g=n=0;else{const I=i-o;switch(n=r>.5?I/(2-i-o):I/(i+o),i){case A:g=(e-t)/I+(e<t?6:0);break;case e:g=(t-A)/I+2;break;case t:g=(A-e)/I+4}g/=6}return{h:g,s:n,l:r}}function j(A,e,t){A=aA(A,255),e=aA(e,255),t=aA(t,255);const i=Math.max(A,e,t),o=Math.min(A,e,t);let g;const n=i,r=i-o,I=0===i?0:r/i;if(i==o)g=0;else{switch(i){case A:g=(e-t)/r+(e<t?6:0);break;case e:g=(t-A)/r+2;break;case t:g=(A-e)/r+4}g/=6}return{h:g,s:I,v:n}}function P(A,e,t,i){const o=[QA(Math.round(A).toString(16)),QA(Math.round(e).toString(16)),QA(Math.round(t).toString(16))];return i&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0):o.join("")}function v(A,e,t,i){return[QA(lA(i)),QA(Math.round(A).toString(16)),QA(Math.round(e).toString(16)),QA(Math.round(t).toString(16))].join("")}function z(A,e){e=0===e?0:e||10;const t=new K(A).toHsl();return t.s-=e/100,t.s=BA(t.s),new K(t)}function _(A,e){e=0===e?0:e||10;const t=new K(A).toHsl();return t.s+=e/100,t.s=BA(t.s),new K(t)}function $(A){return new K(A).desaturate(100)}function AA(A,e){e=0===e?0:e||10;const t=new K(A).toHsl();return t.l+=e/100,t.l=BA(t.l),new K(t)}function eA(A,e){e=0===e?0:e||10;const t=new K(A).toRgb();return t.r=Math.max(0,Math.min(255,t.r-Math.round(-e/100*255))),t.g=Math.max(0,Math.min(255,t.g-Math.round(-e/100*255))),t.b=Math.max(0,Math.min(255,t.b-Math.round(-e/100*255))),new K(t)}function tA(A,e){e=0===e?0:e||10;const t=new K(A).toHsl();return t.l-=e/100,t.l=BA(t.l),new K(t)}function iA(A,e){const t=new K(A).toHsl(),i=(t.h+e)%360;return t.h=i<0?360+i:i,new K(t)}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(A){const e={};for(const t in A)A.hasOwnProperty(t)&&(e[A[t]]=t);return e}(K.names);const oA=A=>{const e=new K(A).toHsl();return e.h=(e.h+180)%360,new K(e)},gA=(A,e)=>{if(isNaN(e)||e<=0)throw new Error("Argument to polyad must be a positive number");const t=new K(A).toHsl(),i=[new K(A)],o=360/e;for(let A=1;A<e;A++)i.push(new K({h:(t.h+A*o)%360,s:t.s,l:t.l}));return i};function nA(A){const e=new K(A).toHsl(),t=e.h;return[new K(A),new K({h:(t+72)%360,s:e.s,l:e.l}),new K({h:(t+216)%360,s:e.s,l:e.l})]}function rA(A,e,t){e=e||6,t=t||30;const i=new K(A).toHsl(),o=360/t,g=[new K(A)];for(i.h=(i.h-(o*e>>1)+720)%360;--e;)i.h=(i.h+o)%360,g.push(new K(i));return g}function IA(A,e){e=e||6;const t=new K(A).toHsv(),i=t.h,o=t.s;let g=t.v;const n=[],r=1/e;for(;e--;)n.push(new K({h:i,s:o,v:g})),g=(g+r)%1;return n}function sA(A){return A=parseFloat(A),(isNaN(A)||A<0||A>1)&&(A=1),A}function aA(A,e){(function(A){return"string"==typeof A&&-1!=A.indexOf(".")&&1===parseFloat(A)})(A)&&(A="100%");const t=function(A){return"string"==typeof A&&-1!=A.indexOf("%")}(A);return A=Math.min(e,Math.max(0,parseFloat(A))),t&&(A=parseInt(A*e,10)/100),Math.abs(A-e)<1e-6?1:A%e/parseFloat(e)}function BA(A){return Math.min(1,Math.max(0,A))}function CA(A){return parseInt(A,16)}function QA(A){return 1==A.length?"0"+A:""+A}function EA(A){return A<=1&&(A=100*A+"%"),A}function lA(A){return Math.round(255*parseFloat(A)).toString(16)}function hA(A){return CA(A)/255}const dA=(()=>{const A="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",e=`[\\s|\\(]+(${A})[,|\\s]+(${A})[,|\\s]+(${A})\\s*\\)?`,t=`[\\s|\\(]+(${A})[,|\\s]+(${A})[,|\\s]+(${A})[,|\\s]+(${A})\\s*\\)?`;return{CSS_UNIT:new RegExp(A),rgb:new RegExp("rgb"+e),rgba:new RegExp("rgba"+t),hsl:new RegExp("hsl"+e),hsla:new RegExp("hsla"+t),hsv:new RegExp("hsv"+e),hsva:new RegExp("hsva"+t),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 cA(A){return!!dA.CSS_UNIT.exec(A)}function uA(A,e){A.decorations||(A.decorations={}),["top","right","bottom","left"].forEach((t=>{A.decorations[t]||(A.decorations[t]={}),A.decorations[t].style||(A.decorations[t].style={}),A.decorations[t].style.fontColor=e}))}function pA(A){const e={};if((A.primaryColor||A.dotsGradient)&&(e.dotsOptions={...e.dotsOptions,...A.primaryColor&&{color:A.primaryColor},...A.dotsGradient&&{gradient:A.dotsGradient}}),(A.secondaryColor||A.cornersGradient)&&(e.cornersSquareOptions={...e.cornersSquareOptions,...A.secondaryColor&&{color:A.secondaryColor},...A.cornersGradient&&{gradient:A.cornersGradient}},e.cornersDotOptions={...e.cornersDotOptions,...A.secondaryColor&&{color:A.secondaryColor}}),(A.thirdColor||A.cornersDotGradient)&&(e.cornersDotOptions={...e.cornersDotOptions,...A.thirdColor&&{color:A.thirdColor},...A.cornersDotGradient&&{gradient:A.cornersDotGradient}}),(A.backgroundColor||A.backgroundGradient)&&(e.backgroundOptions={...e.backgroundOptions,...A.backgroundColor&&{color:A.backgroundColor},...A.backgroundGradient&&{gradient:A.backgroundGradient}}),A.dotShape&&(e.dotsOptions={...e.dotsOptions,type:A.dotShape}),A.cornerSquareShape&&(e.cornersSquareOptions={...e.cornersSquareOptions,type:A.cornerSquareShape}),A.cornerDotShape&&(e.cornersDotOptions={...e.cornersDotOptions,type:A.cornerDotShape}),A.logo&&(e.image=A.logo),(void 0!==A.logoSize||A.logoMode||void 0!==A.logoMargin||A.logoBackgroundColor||void 0!==A.logoPadding||void 0!==A.logoRadius)&&(e.imageOptions={...e.imageOptions,...void 0!==A.logoSize&&{imageSize:A.logoSize},...A.logoMode&&{mode:A.logoMode},...void 0!==A.logoMargin&&{margin:A.logoMargin},...A.logoBackgroundColor&&{backgroundColor:A.logoBackgroundColor},...void 0!==A.logoPadding&&{padding:A.logoPadding},...void 0!==A.logoRadius&&{radius:A.logoRadius}}),A.borderColor||void 0!==A.borderThickness||void 0!==A.borderRadius||A.borderInnerColor||void 0!==A.borderInnerThickness||void 0!==A.borderInnerRadius||A.borderOuterColor||void 0!==A.borderOuterThickness||A.borderTextTop||A.borderTextRight||A.borderTextBottom||A.borderTextLeft||A.borderFontFace||void 0!==A.borderFontSize||A.borderFontColor||void 0!==A.borderLetterSpacing||A.borderTextTransform||A.borderFontWeight){e.borderOptions||(e.borderOptions={hasBorder:!0});const t=e.borderOptions;A.borderColor&&(t.color=A.borderColor),void 0!==A.borderThickness&&(t.thickness=A.borderThickness),void 0!==A.borderRadius&&(t.radius=String(A.borderRadius)),void 0===A.borderInnerColor&&void 0===A.borderInnerThickness||(t.borderInner||(t.borderInner={}),void 0!==A.borderInnerColor&&(t.borderInner.color=A.borderInnerColor),void 0!==A.borderInnerThickness&&(t.borderInner.thickness=A.borderInnerThickness)),void 0!==A.borderInnerRadius&&(t.inner||(t.inner={}),t.inner.radius=String(A.borderInnerRadius)),void 0===A.borderOuterColor&&void 0===A.borderOuterThickness||(t.borderOuter||(t.borderOuter={}),void 0!==A.borderOuterColor&&(t.borderOuter.color=A.borderOuterColor),void 0!==A.borderOuterThickness&&(t.borderOuter.thickness=A.borderOuterThickness));const i={};A.borderFontFace&&(i.fontFace=A.borderFontFace),void 0!==A.borderFontSize&&(i.fontSize=A.borderFontSize),A.borderFontColor&&(i.fontColor=A.borderFontColor),void 0!==A.borderLetterSpacing&&(i.letterSpacing=A.borderLetterSpacing),A.borderTextTransform&&(i.textTransform=A.borderTextTransform),A.borderFontWeight&&(i.fontWeight=A.borderFontWeight),t.decorations||(t.decorations={});const o=t.decorations?JSON.parse(JSON.stringify(t.decorations)):{};let g=!1;Object.keys(i).length>0&&(g=!0,["top","right","bottom","left"].forEach((A=>{o[A]||(o[A]={}),o[A].style||(o[A].style={}),o[A].style={...o[A].style,...i}}))),["top","right","bottom","left"].forEach((e=>{var t,n;const r=`borderText${e.charAt(0).toUpperCase()+e.slice(1)}`,I=A[r];var s;void 0!==I?(o[e]||(o[e]={}),o[e]={...o[e],value:I,enableText:!0,style:{...(null===(s=o[e])||void 0===s?void 0:s.style)||{},...i}},g=!0):null!==(t=o[e])&&void 0!==t&&t.value&&Object.keys(i).length>0&&(null===(n=o[e])||void 0===n||!n.style)&&(o[e].style||(o[e].style={}),o[e].style={...o[e].style,...i},g=!0)})),g&&(t.decorations=o)}if(!!(A.primaryColor||A.secondaryColor||A.thirdColor||A.backgroundColor)){e.borderOptions||(e.borderOptions={hasBorder:!0});const t=e.borderOptions;if(A.secondaryColor&&!A.borderColor){const e=new K(A.secondaryColor).isDark();t.color=new K(A.primaryColor).darken(e?-12:12).toString()}if(A.thirdColor&&!A.borderInnerColor&&(t.borderInner||(t.borderInner={}),t.borderInner.color=new K(A.thirdColor).darken(2).toString()),A.primaryColor&&!A.borderOuterColor&&(t.borderOuter=t.borderOuter||{},t.borderOuter.color=new K(A.primaryColor).darken(2).toString()),A.backgroundColor&&!A.borderFontColor&&t.color){const e=new K(A.backgroundColor),i=new K(t.color),o=K.readability(e,i),g=e.isDark();if(o<2){uA(t,(g?e.lighten(15):e.darken(15)).toString())}else{uA(t,(g?e.lighten(20):e.lighten(10)).toString())}}}return e}function mA(A){const e=[];return void 0!==A.logoSize&&("number"!=typeof A.logoSize||A.logoSize<0||A.logoSize>1)&&e.push("logoSize must be a number between 0 and 1."),{isValid:0===e.length,errors:e}}class fA{constructor(){}close(){}}class DA extends fA{constructor(A){super(),this.istream=A,this.buffer=0,this.buflen=0}readByte(){for(;this.buflen<8;){const A=this.istream.readByte();if(-1==A){if(0==this.buflen)return-1;throw new Error("unexpected end of file./"+this.buflen)}if(A=="=".charCodeAt(0))return this.buflen=0,-1;DA.isWhitespace(A)||(this.buffer=this.buffer<<6|DA.decode(A),this.buflen+=6)}const A=this.buffer>>>this.buflen-8&255;return this.buflen-=8,A}static isWhitespace(A){return A=="\v".charCodeAt(0)||A=="\t".charCodeAt(0)||A=="\r".charCodeAt(0)||A=="\n".charCodeAt(0)}static decode(A){if("A".charCodeAt(0)<=A&&A<="Z".charCodeAt(0))return A-"A".charCodeAt(0);if("a".charCodeAt(0)<=A&&A<="z".charCodeAt(0))return A-"a".charCodeAt(0)+26;if("0".charCodeAt(0)<=A&&A<="9".charCodeAt(0))return A-"0".charCodeAt(0)+52;if(A=="+".charCodeAt(0))return 62;if(A=="/".charCodeAt(0))return 63;throw new Error("c:"+A)}}class wA extends fA{constructor(A){super(),this.bytes=A,this.pos=0}readByte(){if(this.pos<this.bytes.length){const A=this.bytes[this.pos];return this.pos+=1,A}return-1}}(function(A,e){const t=(()=>{const t=new DA(new wA(function(A){const e=[];for(let t=0;t<A.length;t+=1)e.push(A.charCodeAt(t));return e}(A))),i=()=>{const A=t.readByte();if(-1==A)throw new Error("eof");return A};let o=0;const g={};for(;;){const A=t.readByte();if(-1==A)break;const e=i(),n=i()<<8|i();g[String.fromCharCode(A<<8|e)]=n,o+=1}if(o!=e)throw new Error(o+"!="+e);return g})(),i="?".charCodeAt(0)})("AAAAAAABAAEAAgACAAMAAwAEAAQABQAFAAYABgAHAAcACAAIAAkACQAKAAoACwALAAwADAANAA0ADgAOAA8ADwAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAB4AHgAfAB8AIAAgACEAIQAiACIAIwAjACQAJAAlACUAJgAmACcAJwAoACgAKQApACoAKgArACsALAAsAC0ALQAuAC4ALwAvADAAMAAxADEAMgAyADMAMwA0ADQANQA1ADYANgA3ADcAOAA4ADkAOQA6ADoAOwA7ADwAPAA9AD0APgA+AD8APwBAAEAAQQBBAEIAQgBDAEMARABEAEUARQBGAEYARwBHAEgASABJAEkASgBKAEsASwBMAEwATQBNAE4ATgBPAE8AUABQAFEAUQBSAFIAUwBTAFQAVABVAFUAVgBWAFcAVwBYAFgAWQBZAFoAWgBbAFsAXABcAF0AXQBeAF4AXwBfAGAAYABhAGEAYgBiAGMAYwBkAGQAZQBlAGYAZgBnAGcAaABoAGkAaQBqAGoAawBrAGwAbABtAG0AbgBuAG8AbwBwAHAAcQBxAHIAcgBzAHMAdAB0AHUAdQB2AHYAdwB3AHgAeAB5AHkAegB6AHsAewB8AHwAfQB9AH4AfgB/AH8AooGRAKOBkgCngZgAqIFOAKyBygCwgYsAsYF9ALSBTAC2gfcA14F+APeBgAORg58DkoOgA5ODoQOUg6IDlYOjA5aDpAOXg6UDmIOmA5mDpwOag6gDm4OpA5yDqgOdg6sDnoOsA5+DrQOgg64DoYOvA6ODsAOkg7EDpYOyA6aDswOng7QDqIO1A6mDtgOxg78DsoPAA7ODwQO0g8IDtYPDA7aDxAO3g8UDuIPGA7mDxwO6g8gDu4PJA7yDygO9g8sDvoPMA7+DzQPAg84DwYPPA8OD0APEg9EDxYPSA8aD0wPHg9QDyIPVA8mD1gQBhEYEEIRABBGEQQQShEIEE4RDBBSERAQVhEUEFoRHBBeESAQYhEkEGYRKBBqESwQbhEwEHIRNBB2ETgQehE8EH4RQBCCEUQQhhFIEIoRTBCOEVAQkhFUEJYRWBCaEVwQnhFgEKIRZBCmEWgQqhFsEK4RcBCyEXQQthF4ELoRfBC+EYAQwhHAEMYRxBDKEcgQzhHMENIR0BDWEdQQ2hHcEN4R4BDiEeQQ5hHoEOoR7BDuEfAQ8hH0EPYR+BD6EgAQ/hIEEQISCBEGEgwRChIQEQ4SFBESEhgRFhIcERoSIBEeEiQRIhIoESYSLBEqEjARLhI0ETISOBE2EjwROhJAET4SRBFGEdiAQgV0gFIFcIBaBYSAYgWUgGYFmIByBZyAdgWggIIH1ICGB9iAlgWQgJoFjIDCB8SAygYwgM4GNIDuBpiEDgY4hK4HwIZCBqSGRgaohkoGoIZOBqyHSgcsh1IHMIgCBzSICgd0iA4HOIgeB3iIIgbgiC4G5IhKBfCIageMiHYHlIh6BhyIggdoiJ4HIIiiBySIpgb8iKoG+IiuB5yIsgegiNIGIIjWB5iI9geQiUoHgImCBgiJhgd8iZoGFImeBhiJqgeEia4HiIoKBvCKDgb0ihoG6IoeBuyKlgdsjEoHcJQCEnyUBhKolAoSgJQOEqyUMhKElD4SsJRCEoiUThK0lFISkJReEryUYhKMlG4SuJRyEpSUdhLolIIS1JSOEsCUkhKclJYS8JSiEtyUrhLIlLISmJS+EtiUwhLslM4SxJTSEqCU3hLglOIS9JTuEsyU8hKklP4S5JUKEviVLhLQloIGhJaGBoCWygaMls4GiJbyBpSW9gaQlxoGfJceBniXLgZslzoGdJc+BnCXvgfwmBYGaJgaBmSZAgYomQoGJJmqB9CZtgfMmb4HyMACBQDABgUEwAoFCMAOBVjAFgVgwBoFZMAeBWjAIgXEwCYFyMAqBczALgXQwDIF1MA2BdjAOgXcwD4F4MBCBeTARgXowEoGnMBOBrDAUgWswFYFsMByBYDBBgp8wQoKgMEOCoTBEgqIwRYKjMEaCpDBHgqUwSIKmMEmCpzBKgqgwS4KpMEyCqjBNgqswToKsME+CrTBQgq4wUYKvMFKCsDBTgrEwVIKyMFWCszBWgrQwV4K1MFiCtjBZgrcwWoK4MFuCuTBcgrowXYK7MF6CvDBfgr0wYIK+MGGCvzBigsAwY4LBMGSCwjBlgsMwZoLEMGeCxTBogsYwaYLHMGqCyDBrgskwbILKMG2CyzBugswwb4LNMHCCzjBxgs8wcoLQMHOC0TB0gtIwdYLTMHaC1DB3gtUweILWMHmC1zB6gtgwe4LZMHyC2jB9gtswfoLcMH+C3TCAgt4wgYLfMIKC4DCDguEwhILiMIWC4zCGguQwh4LlMIiC5jCJgucwioLoMIuC6TCMguowjYLrMI6C7DCPgu0wkILuMJGC7zCSgvAwk4LxMJuBSjCcgUswnYFUMJ6BVTChg0AwooNBMKODQjCkg0MwpYNEMKaDRTCng0YwqINHMKmDSDCqg0kwq4NKMKyDSzCtg0wwroNNMK+DTjCwg08wsYNQMLKDUTCzg1IwtINTMLWDV