@qr-platform/qr-code.js 0.9.10 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -0
  3. package/docs/advanced-examples.md +177 -56
  4. package/docs/api-reference-guide.md +26 -6
  5. package/docs/border-methods-update-plan.md +28 -0
  6. package/docs/border-text-implementation-plan.md +155 -0
  7. package/docs/documentation.md +276 -11
  8. package/docs/examples.md +160 -37
  9. package/docs/license-management.md +4 -4
  10. package/docs/typescript-types-definitions.md +2 -2
  11. package/docs/usage-guide.md +71 -41
  12. package/lib/config/runtime-config.d.ts +3 -0
  13. package/lib/core/qr-code-js.d.ts +82 -7
  14. package/lib/core/qr-options-validation.d.ts +1 -1
  15. package/lib/core/qr-svg.d.ts +3 -1
  16. package/lib/core/templates/qr-styles-dark.d.ts +2 -0
  17. package/lib/core/templates/qr-styles.d.ts +9 -0
  18. package/lib/core/templates/qr-template-borders.d.ts +4 -0
  19. package/lib/core/templates/qr-template-text.d.ts +4 -0
  20. package/lib/core/templates/qr-templates.d.ts +12 -0
  21. package/lib/demo.d.ts +1 -0
  22. package/lib/index.d.ts +135 -21
  23. package/lib/index.js +1 -1
  24. package/lib/license/LicenseManager.d.ts +1 -1
  25. package/lib/node/config/runtime-config.d.ts +3 -0
  26. package/lib/node/core/qr-code-js.d.ts +82 -7
  27. package/lib/node/core/qr-options-validation.d.ts +1 -1
  28. package/lib/node/core/qr-svg.d.ts +3 -1
  29. package/lib/node/core/templates/qr-styles-dark.d.ts +2 -0
  30. package/lib/node/core/templates/qr-styles.d.ts +9 -0
  31. package/lib/node/core/templates/qr-template-borders.d.ts +4 -0
  32. package/lib/node/core/templates/qr-template-text.d.ts +4 -0
  33. package/lib/node/core/templates/qr-templates.d.ts +12 -0
  34. package/lib/node/demo.d.ts +1 -0
  35. package/lib/node/index.d.ts +135 -21
  36. package/lib/node/license/LicenseManager.d.ts +1 -1
  37. package/lib/node/node.d.ts +128 -17
  38. package/lib/node/options-demo.d.ts +2 -239
  39. package/lib/node/templates/scan-validators/tests/cases/colors.d.ts +0 -6
  40. package/lib/node/types/helper.d.ts +3 -0
  41. package/lib/node/types/style-options.d.ts +8 -2
  42. package/lib/node/types/text-options.d.ts +11 -0
  43. package/lib/node/utils/_network-helpers_multi_env.d.ts +16 -0
  44. package/lib/node/utils/gradient.d.ts +2 -1
  45. package/lib/node/utils/network-helpers.d.ts +17 -0
  46. package/lib/node/utils/options.d.ts +26 -21
  47. package/lib/node.d.ts +128 -17
  48. package/lib/node.js +1 -1
  49. package/lib/options-demo.d.ts +2 -239
  50. package/lib/templates/scan-validators/tests/cases/colors.d.ts +0 -6
  51. package/lib/types/helper.d.ts +3 -0
  52. package/lib/types/style-options.d.ts +8 -2
  53. package/lib/types/text-options.d.ts +11 -0
  54. package/lib/utils/_network-helpers_multi_env.d.ts +16 -0
  55. package/lib/utils/gradient.d.ts +2 -1
  56. package/lib/utils/network-helpers.d.ts +17 -0
  57. package/lib/utils/options.d.ts +26 -21
  58. package/package.json +1 -1
  59. package/lib/core/qr-styles.d.ts +0 -4
  60. package/lib/core/qr-templates.d.ts +0 -10
  61. package/lib/node/core/qr-styles.d.ts +0 -4
  62. package/lib/node/core/qr-templates.d.ts +0 -10
package/lib/node.js CHANGED
@@ -1 +1 @@
1
- import{fileTypeFromBuffer as t}from"file-type";import e from"image-size";import{importSPKI as i,jwtVerify as o,errors as n}from"jose";const r={width:300,height:300,margin:0};class s{constructor(){this.buffer=[],this.length=0}getBuffer(){return this.buffer}getLengthInBits(){return this.length}toString(){let t="";for(let e=0;e<this.getLengthInBits();e+=1)t+=this.getBit(e)?"1":"0";return t}getBit(t){return 1==(this.buffer[~~(t/8)]>>>7-t%8&1)}put(t,e){for(let i=0;i<e;i+=1)this.putBit(1==(t>>>e-i-1&1))}putBit(t){this.length==8*this.buffer.length&&this.buffer.push(0),t&&(this.buffer[~~(this.length/8)]|=128>>>this.length%8),this.length+=1}}var a,l,d;!function(t){t[t.L=1]="L",t[t.M=0]="M",t[t.Q=3]="Q",t[t.H=2]="H"}(a||(a={}));class h{constructor(){throw new Error("error")}static glog(t){if(t<1)throw new Error("log("+t+")");return h.LOG_TABLE[t]}static gexp(t){for(;t<0;)t+=255;for(;t>=256;)t-=255;return h.EXP_TABLE[t]}}h.initialize=(()=>{h.EXP_TABLE=[],h.LOG_TABLE=[];for(let t=0;t<256;t+=1)h.EXP_TABLE.push(t<8?1<<t:h.EXP_TABLE[t-4]^h.EXP_TABLE[t-5]^h.EXP_TABLE[t-6]^h.EXP_TABLE[t-8]),h.LOG_TABLE.push(0);for(let t=0;t<255;t+=1)h.LOG_TABLE[h.EXP_TABLE[t]]=t})();class c{constructor(t,e=0){let i=0;for(;i<t.length&&0==t[i];)i+=1;this.num=[];const o=t.length-i;for(let e=0;e<o;e+=1)this.num.push(t[i+e]);for(let t=0;t<e;t+=1)this.num.push(0)}getAt(t){return this.num[t]}getLength(){return this.num.length}toString(){let t="";for(let e=0;e<this.getLength();e+=1)e>0&&(t+=","),t+=this.getAt(e);return t.toString()}toLogString(){let t="";for(let e=0;e<this.getLength();e+=1)e>0&&(t+=","),t+=h.glog(this.getAt(e));return t.toString()}multiply(t){const e=[],i=this.getLength()+t.getLength()-1;for(let t=0;t<i;t+=1)e.push(0);for(let i=0;i<this.getLength();i+=1)for(let o=0;o<t.getLength();o+=1)e[i+o]^=h.gexp(h.glog(this.getAt(i))+h.glog(t.getAt(o)));return new c(e)}mod(t){if(this.getLength()-t.getLength()<0)return this;const e=h.glog(this.getAt(0))-h.glog(t.getAt(0)),i=[];for(let t=0;t<this.getLength();t+=1)i.push(this.getAt(t));for(let o=0;o<t.getLength();o+=1)i[o]^=h.gexp(h.glog(t.getAt(o))+e);return new c(i).mod(t)}}!function(t){t[t.MODE_NUMBER=1]="MODE_NUMBER",t[t.MODE_ALPHA_NUM=2]="MODE_ALPHA_NUM",t[t.MODE_8BIT_BYTE=4]="MODE_8BIT_BYTE",t[t.MODE_KANJI=8]="MODE_KANJI"}(l||(l={}));class u{constructor(t,e){this.mode=t,this.data=e}getMode(){return this.mode}getData(){return this.data}getLengthInBits(t){if(1<=t&&t<10)switch(this.mode){case l.MODE_NUMBER:return 10;case l.MODE_ALPHA_NUM:return 9;case l.MODE_8BIT_BYTE:case l.MODE_KANJI:return 8;default:throw new Error("mode:"+this.mode)}else if(t<27)switch(this.mode){case l.MODE_NUMBER:return 12;case l.MODE_ALPHA_NUM:return 11;case l.MODE_8BIT_BYTE:return 16;case l.MODE_KANJI:return 10;default:throw new Error("mode:"+this.mode)}else{if(!(t<41))throw new Error("typeNumber:"+t);switch(this.mode){case l.MODE_NUMBER:return 14;case l.MODE_ALPHA_NUM:return 13;case l.MODE_8BIT_BYTE:return 16;case l.MODE_KANJI:return 12;default:throw new Error("mode:"+this.mode)}}}}class m extends u{constructor(t,e){super(l.MODE_8BIT_BYTE,t),this.stringToBytes=e}write(t){this.stringToBytes(this.getData()).forEach((e=>t.put(e,8)))}getLength(){return this.stringToBytes(this.getData()).length}}class p extends u{constructor(t){super(l.MODE_ALPHA_NUM,t)}write(t){const e=this.getData();let i=0;for(;i+1<e.length;)t.put(45*p.getCode(e.charAt(i))+p.getCode(e.charAt(i+1)),11),i+=2;i<e.length&&t.put(p.getCode(e.charAt(i)),6)}getLength(){return this.getData().length}static getCode(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);if("A"<=t&&t<="Z")return t.charCodeAt(0)-"A".charCodeAt(0)+10;switch(t){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 :"+t)}}}class g extends u{constructor(t,e){super(l.MODE_KANJI,t),this.stringToBytes=e}write(t){const e=this.stringToBytes(this.getData());let i=0;for(;i+1<e.length;){let o=(255&e[i])<<8|255&e[i+1];if(33088<=o&&o<=40956)o-=33088;else{if(!(57408<=o&&o<=60351))throw new Error("illegal char at "+(i+1)+"/"+o);o-=49472}o=192*(o>>>8&255)+(255&o),t.put(o,13),i+=2}if(i<e.length)throw new Error("illegal char at "+(i+1))}getLength(){return this.stringToBytes(this.getData()).length/2}}class f extends u{constructor(t){super(l.MODE_NUMBER,t)}write(t){const e=this.getData();let i=0;for(;i+2<e.length;)t.put(f.strToNum(e.substring(i,i+3)),10),i+=3;i<e.length&&(e.length-i==1?t.put(f.strToNum(e.substring(i,i+1)),4):e.length-i==2&&t.put(f.strToNum(e.substring(i,i+2)),7))}getLength(){return this.getData().length}static strToNum(t){let e=0;for(let i=0;i<t.length;i+=1)e=10*e+f.chatToNum(t.charAt(i));return e}static chatToNum(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);throw new Error("illegal char :"+t)}}!function(t){t[t.PATTERN000=0]="PATTERN000",t[t.PATTERN001=1]="PATTERN001",t[t.PATTERN010=2]="PATTERN010",t[t.PATTERN011=3]="PATTERN011",t[t.PATTERN100=4]="PATTERN100",t[t.PATTERN101=5]="PATTERN101",t[t.PATTERN110=6]="PATTERN110",t[t.PATTERN111=7]="PATTERN111"}(d||(d={}));class b{constructor(){throw new Error("error")}static getPatternPosition(t){return b.PATTERN_POSITION_TABLE[t-1]}static getMaxLength(t,e,i){const o=t-1;let n=0,r=0;switch(i){case a.L:n=0;break;case a.M:n=1;break;case a.Q:n=2;break;case a.H:n=3;break;default:throw new Error("e:"+i)}switch(e){case l.MODE_NUMBER:r=0;break;case l.MODE_ALPHA_NUM:r=1;break;case l.MODE_8BIT_BYTE:r=2;break;case l.MODE_KANJI:r=3;break;default:throw new Error("m:"+e)}return b.MAX_LENGTH[o][n][r]}static getErrorCorrectPolynomial(t){let e=new c([1]);for(let i=0;i<t;i+=1)e=e.multiply(new c([1,h.gexp(i)]));return e}static getMaskFunc(t){switch(t){case d.PATTERN000:return(t,e)=>(t+e)%2==0;case d.PATTERN001:return(t,e)=>t%2==0;case d.PATTERN010:return(t,e)=>e%3==0;case d.PATTERN011:return(t,e)=>(t+e)%3==0;case d.PATTERN100:return(t,e)=>(~~(t/2)+~~(e/3))%2==0;case d.PATTERN101:return(t,e)=>t*e%2+t*e%3==0;case d.PATTERN110:return(t,e)=>(t*e%2+t*e%3)%2==0;case d.PATTERN111:return(t,e)=>(t*e%3+(t+e)%2)%2==0;default:throw new Error("mask:"+t)}}static getLostPoint(t){const e=t.getModuleCount();let i=0;for(let o=0;o<e;o+=1)for(let n=0;n<e;n+=1){let r=0;const s=t.isDark(o,n);for(let i=-1;i<=1;i+=1)if(!(o+i<0||e<=o+i))for(let a=-1;a<=1;a+=1)n+a<0||e<=n+a||0==i&&0==a||s==t.isDark(o+i,n+a)&&(r+=1);r>5&&(i+=3+r-5)}for(let o=0;o<e-1;o+=1)for(let n=0;n<e-1;n+=1){let e=0;t.isDark(o,n)&&(e+=1),t.isDark(o+1,n)&&(e+=1),t.isDark(o,n+1)&&(e+=1),t.isDark(o+1,n+1)&&(e+=1),0!=e&&4!=e||(i+=3)}for(let o=0;o<e;o+=1)for(let n=0;n<e-6;n+=1)t.isDark(o,n)&&!t.isDark(o,n+1)&&t.isDark(o,n+2)&&t.isDark(o,n+3)&&t.isDark(o,n+4)&&!t.isDark(o,n+5)&&t.isDark(o,n+6)&&(i+=40);for(let o=0;o<e;o+=1)for(let n=0;n<e-6;n+=1)t.isDark(n,o)&&!t.isDark(n+1,o)&&t.isDark(n+2,o)&&t.isDark(n+3,o)&&t.isDark(n+4,o)&&!t.isDark(n+5,o)&&t.isDark(n+6,o)&&(i+=40);let o=0;for(let i=0;i<e;i+=1)for(let n=0;n<e;n+=1)t.isDark(n,i)&&(o+=1);return i+=10*(Math.abs(100*o/e/e-50)/5),i}static getBCHTypeInfo(t){let e=t<<10;for(;b.getBCHDigit(e)-b.getBCHDigit(b.G15)>=0;)e^=b.G15<<b.getBCHDigit(e)-b.getBCHDigit(b.G15);return(t<<10|e)^b.G15_MASK}static getBCHTypeNumber(t){let e=t<<12;for(;b.getBCHDigit(e)-b.getBCHDigit(b.G18)>=0;)e^=b.G18<<b.getBCHDigit(e)-b.getBCHDigit(b.G18);return t<<12|e}static getBCHDigit(t){let e=0;for(;0!=t;)e+=1,t>>>=1;return e}}b.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]],b.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]]],b.G15=1335,b.G18=7973,b.G15_MASK=21522;class k{constructor(t,e){this.totalCount=t,this.dataCount=e}getDataCount(){return this.dataCount}getTotalCount(){return this.totalCount}static getRSBlocks(t,e){const i=k.getRsBlockTable(t,e),o=i.length/3,n=[];for(let t=0;t<o;t+=1){const e=i[3*t+0],o=i[3*t+1],r=i[3*t+2];for(let t=0;t<e;t+=1)n.push(new k(o,r))}return n}static getRsBlockTable(t,e){switch(e){case a.L:return k.RS_BLOCK_TABLE[4*(t-1)+0];case a.M:return k.RS_BLOCK_TABLE[4*(t-1)+1];case a.Q:return k.RS_BLOCK_TABLE[4*(t-1)+2];case a.H:return k.RS_BLOCK_TABLE[4*(t-1)+3]}throw new Error("tn:"+t+"/ecl:"+e)}}k.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 O=Array(41).fill(0).map(((t,e)=>e));var w,y;!function(t){t.L="L",t.M="M",t.Q="Q",t.H="H"}(w||(w={})),function(t){t.numeric="numeric",t.alphanumeric="alphanumeric",t.byte="byte",t.kanji="kanji",t.unicode="unicode"}(y||(y={}));class Z{constructor(t=0,e=w.L){this.modules=[],this.moduleCount=0,this.typeNumber=t,this.errorCorrectLevel=a[e],this.qrDataList=[]}getTypeNumber(){return this.typeNumber}setTypeNumber(t){this.typeNumber=t}getErrorCorrectLevel(){return this.errorCorrectLevel}setErrorCorrectLevel(t){this.errorCorrectLevel=t}clearData(){this.qrDataList=[]}addData(t,e=y.byte){if(t instanceof u)this.qrDataList.push(t);else{if("string"!=typeof t)throw new Error(typeof t);switch(e){case y.numeric:this.qrDataList.push(new f(t));break;case y.alphanumeric:this.qrDataList.push(new p(t));break;case y.byte:this.qrDataList.push(new m(t,Z.stringToBytesFuncs.default));break;case y.unicode:this.qrDataList.push(new m(t,Z.stringToBytesFuncs.UTF8));break;case y.kanji:this.qrDataList.push(new g(t,Z.stringToBytesFuncs.SJIS));break;default:throw new Error("mode:"+e)}}}isDark(t,e){return!(!this.modules[t]||null==this.modules[t][e])&&this.modules[t][e]}getModuleCount(){return this.moduleCount}make(){if(this.typeNumber<1){let t=1;for(;t<40;t++){const e=k.getRSBlocks(t,this.errorCorrectLevel),i=new s;this.qrDataList.forEach((e=>{i.put(e.getMode(),4),i.put(e.getLength(),e.getLengthInBits(t)),e.write(i)}));const o=e.reduce(((t,e)=>t+e.getDataCount()),0);if(i.getLengthInBits()<=8*o)break}this.typeNumber=t}this.makeImpl(!1,this.getBestMaskPattern())}getBestMaskPattern(){let t=0,e=0;for(let i=0;i<8;i+=1){this.makeImpl(!0,i);const o=b.getLostPoint(this);(0==i||t>o)&&(t=o,e=i)}return e}makeImpl(t,e){this.moduleCount=4*this.typeNumber+17,this.modules=[];for(let t=0;t<this.moduleCount;t+=1){this.modules.push([]);for(let e=0;e<this.moduleCount;e+=1)this.modules[t].push(null)}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(t,e),this.typeNumber>=7&&this.setupTypeNumber(t);const i=Z.createData(this.typeNumber,this.errorCorrectLevel,this.qrDataList);this.mapData(i,e)}mapData(t,e){let i=-1,o=this.moduleCount-1,n=7,r=0;const s=b.getMaskFunc(e);for(let e=this.moduleCount-1;e>0;e-=2)for(6==e&&(e-=1);;){for(let i=0;i<2;i+=1)if(null==this.modules[o][e-i]){let a=!1;r<t.length&&(a=1==(t[r]>>>n&1));s(o,e-i)&&(a=!a),this.modules[o][e-i]=a,n-=1,-1==n&&(r+=1,n=7)}if(o+=i,o<0||this.moduleCount<=o){o-=i,i=-i;break}}}setupPositionAdjustPattern(){const t=b.getPatternPosition(this.typeNumber);t.forEach((e=>{t.forEach((t=>{if(null==this.modules[e][t])for(let i=-2;i<=2;i+=1)for(let o=-2;o<=2;o+=1)this.modules[e+i][t+o]=-2==i||2==i||-2==o||2==o||0==i&&0==o}))}))}setupPositionProbePattern(t,e){for(let i=-1;i<=7;i+=1)for(let o=-1;o<=7;o+=1)t+i<=-1||this.moduleCount<=t+i||e+o<=-1||this.moduleCount<=e+o||(this.modules[t+i][e+o]=0<=i&&i<=6&&(0==o||6==o)||0<=o&&o<=6&&(0==i||6==i)||2<=i&&i<=4&&2<=o&&o<=4)}setupTimingPattern(){for(let t=8;t<this.moduleCount-8;t+=1)null==this.modules[t][6]&&(this.modules[t][6]=t%2==0);for(let t=8;t<this.moduleCount-8;t+=1)null==this.modules[6][t]&&(this.modules[6][t]=t%2==0)}setupTypeNumber(t){const e=b.getBCHTypeNumber(this.typeNumber);for(let i=0;i<18;i+=1)this.modules[~~(i/3)][i%3+this.moduleCount-8-3]=!t&&1==(e>>i&1);for(let i=0;i<18;i+=1)this.modules[i%3+this.moduleCount-8-3][~~(i/3)]=!t&&1==(e>>i&1)}setupTypeInfo(t,e){const i=this.errorCorrectLevel<<3|e,o=b.getBCHTypeInfo(i);for(let e=0;e<15;e+=1){const i=!t&&1==(o>>e&1);e<6?this.modules[e][8]=i:e<8?this.modules[e+1][8]=i:this.modules[this.moduleCount-15+e][8]=i}for(let e=0;e<15;e+=1){const i=!t&&1==(o>>e&1);e<8?this.modules[8][this.moduleCount-e-1]=i:e<9?this.modules[8][15-e-1+1]=i:this.modules[8][15-e-1]=i}this.modules[this.moduleCount-8][8]=!t}static createData(t,e,i){const o=k.getRSBlocks(t,e),n=new s;i.forEach((e=>{n.put(e.getMode(),4),n.put(e.getLength(),e.getLengthInBits(t)),e.write(n)}));const r=o.reduce(((t,e)=>t+e.getDataCount()),0);if(n.getLengthInBits()>8*r)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+8*r+")");for(n.getLengthInBits()+4<=8*r&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*r||(n.put(Z.PAD0,8),n.getLengthInBits()>=8*r));)n.put(Z.PAD1,8);return Z.createBytes(n,o)}static createBytes(t,e){let i=0,o=0,n=0;const r=new Array(e.length).map((t=>[])),s=new Array(e.length).map((t=>[]));function a(t){const e=[];for(let i=0;i<t;i+=1)e.push(0);return e}for(let l=0;l<e.length;l+=1){const d=e[l].getDataCount(),h=e[l].getTotalCount()-d;o=Math.max(o,d),n=Math.max(n,h),r[l]=a(d);for(let e=0;e<r[l].length;e+=1)r[l][e]=255&t.getBuffer()[e+i];i+=d;const u=b.getErrorCorrectPolynomial(h),m=new c(r[l],u.getLength()-1).mod(u);s[l]=a(u.getLength()-1);for(let t=0;t<s[l].length;t+=1){const e=t+m.getLength()-s[l].length;s[l][t]=e>=0?m.getAt(e):0}}const l=a(e.reduce(((t,e)=>t+e.getTotalCount()),0));let d=0;for(let t=0;t<o;t+=1)for(let i=0;i<e.length;i+=1)t<r[i].length&&(l[d]=r[i][t],d+=1);for(let t=0;t<n;t+=1)for(let i=0;i<e.length;i+=1)t<s[i].length&&(l[d]=s[i][t],d+=1);return l}}Z.stringToBytesFuncs={default(t){const e=[];for(let i=0;i<t.length;i+=1){const o=t.charCodeAt(i);e.push(255&o)}return e}},Z.PAD0=236,Z.PAD1=17;const S=t=>!!t&&"object"==typeof t&&!Array.isArray(t);function A(t,e=!1){const i=t.split("").reverse().join("");return e?i.toLocaleUpperCase():i}function C(t,...e){if(!e.length)return t;const i=e.shift();return void 0!==i&&S(t)&&S(i)?(t={...t},Object.keys(i).forEach((e=>{const o=t[e],n=i[e];Array.isArray(o)&&Array.isArray(n)?t[e]=n:S(o)&&S(n)?t[e]=C({...o},n):t[e]=n})),C(t,...e)):t}const j=A("rq",!0)+A("-",!0)+A("talp",!0)+A("mrof",!0),I=A("a".repeat(6)+"#",!0),W="top",Y="bottom",v="left",V="right";const J=t=>"number"==typeof t?t:parseInt(t.replace("%",""),10),T=(t,e="0%")=>t?t.endsWith("%")?t:t+"%":e,q="text",X="image",G={disabled:!1,enableText:!0,type:"text",value:j},M=(t,e)=>!t?.decorations?.[e]?.disabled,R=(t,e,i)=>!i||!t?.decorations?.[e]?.disabled,B=t=>{if("string"==typeof t)return t;if(!t)return"";const{fontFace:e="Helvetica",fontSize:i=20,fontColor:o="#000000",letterSpacing:n=0,fontWeight:r="normal"}=t;return`font-weight: ${r}; font-size: ${i}px; font-family: ${e}; fill: ${o}; letter-spacing: ${n}px;`};G.style={fontFace:"Helvetica",fontSize:20,fontColor:I,letterSpacing:2};const x={...G};const D=({document:t,position:e,rotate:i,flip:o,thickness:n,height:r,width:s,round:a,offset:l=0,curveAdjustment:d=0,curveRadius:h,outerBorderPadding:c=0,instanceId:u})=>{const m=Math.min(s,r),p=t.createElementNS("http://www.w3.org/2000/svg","path"),g=(t=>{if(t>=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}],i=e.find((e=>t<=e.R))||e[0],o=e.find((e=>t>e.R))||e[e.length-1],{R:n,P:r}=i,{R:s,P:a}=o;return r+(t-n)/(s-n)*(a-r)})("string"==typeof a?J(a):a),f=void 0!==h?function(t){let e;return e="number"==typeof t?t:"string"==typeof t?(t.includes("%"),parseFloat(t)):0,e=Math.min(Math.max(e,0),50),.5+e/50*.5}(h):g,b=(m-n-2*c-10*d*2)/2*f,k=((t,e,i,o)=>{const n=i/2,r=o/2;let s="";return t&&(s+=`rotate(${t}, ${n}, ${r})`),e&&(s+=`translate(${n}, ${r}) scale(1, -1) translate(${-n}, ${-r})`),s.trim()})(i,o,s,r);p.setAttribute("id",`${e}-text-path-${u}`),p.setAttribute("transform",k);const{startX:O,startY:w,pathWidth:y}=((t,e,i,o,n={})=>{let r=e/2,s=e/2+o,a=t-e;return i&&(a-=2*i,r+=i,s+=i),r+=n.left||0,s+=n.top||0,{startX:r,startY:s,pathWidth:a}})(m,n,c,l);return p.setAttribute("d",((t,e,i,o)=>`M${t},${e+o} a${o},${o} 0 0 1 ${o},${-o} h${i-2*o} a${o},${o} 0 0 1 ${o},${o}`)(O,w,y,b)),p},L=({document:t,thickness:e,value:i,svg:o,position:n,height:r,width:s,round:a,style:l,offset:d=0,curveAdjustment:h=0,curveDisabled:c=!1,outerBorderPadding:u=0,curveRadius:m,instanceId:p,noBorderThickness:g,enabledBorders:f})=>{let b=0,k=!1;if(n===V?b=90:n===Y?k=!c:n===v&&(b=270),c){const a=t.createElementNS("http://www.w3.org/2000/svg","text");let h=s/2,c=(r-Math.min(s,r)+e)/2+2*u+d-(r-s>0?0:(s-r)/2);if(n===Y?c=r-2*u-e/2-d:n===W&&(c=2*u+e/2+d),n===W||n===Y){let t=0;!f[v]&&f[V]?t=-(e-g)/2:f[v]&&!f[V]&&(t=(e-g)/2),h+=t}else if(n===v||n===V){let t=0;!f[W]&&f[Y]?t=n===v?(e-g)/2:-(e-g)/2:f[W]&&!f[Y]&&(t=n===v?-(e-g)/2:(e-g)/2),h+=t}let m="";0!==b&&(m+=`rotate(${b}, ${s/2}, ${r/2})`),a.setAttribute("x",h.toString()),a.setAttribute("y",c.toString()),a.setAttribute("text-anchor","middle"),a.setAttribute("dominant-baseline","middle"),m&&a.setAttribute("transform",m.trim()),a.textContent=i;const p=B(l);a.setAttribute("style",p),o.appendChild(a)}else{let c=o.getElementsByTagName("defs")[0];c||(c=t.createElementNS("http://www.w3.org/2000/svg","defs"),o.appendChild(c));const O=D({document:t,position:n,rotate:b,flip:k,thickness:e,height:r,width:s,round:a,offset:d,curveAdjustment:h,enabledBorders:f,outerBorderPadding:u,curveRadius:m,noBorderThickness:g,instanceId:p}),{x:w,y}=function(t,e,i,o){let n=0,r=0;const s=(e-i)/2;return o.left&&o.right&&o.top&&o.bottom?(n=0,r=0):"top"===t||"bottom"===t?!o.left&&o.right?n=-s:(o.left&&!o.right||o.left&&o.right)&&(n=s):"left"!==t&&"right"!==t||(!o.top&&o.bottom?o.left&&o.right?(n="left"===t?2*+s:0,r=-s):n="left"===t?+s:-s:o.top&&!o.bottom?o.left&&o.right?(n="left"===t?0:2*s,r=-s):n=0:o.top&&o.bottom?r=o.left&&o.right?2*+s:+s:(n=o.left&&o.right?2*+s:+s,r=o.left&&o.right?2*-s:-s)),{x:n,y:r}}(n,e,g,f);if(0!==w||0!==y){const t=`${O.getAttribute("transform")||""} translate(${w}, ${y})`.trim();O.setAttribute("transform",t)}c.appendChild(O),o.appendChild((({document:t,value:e,position:i,style:o,instanceId:n})=>{const r=t.createElementNS("http://www.w3.org/2000/svg","text"),s=t.createElementNS("http://www.w3.org/2000/svg","textPath");s.setAttribute("href",`#${i}-text-path-${n}`),s.setAttribute("text-anchor","middle"),s.setAttribute("startOffset","50%"),s.textContent=e,s.setAttribute("alignment-baseline","middle");const a=B(o);return r.setAttribute("style",a),r.appendChild(s),r})({document:t,position:n,rotate:b,value:i,style:l,instanceId:p}))}},P=({document:t,thickness:e,value:i,svg:o,position:n,height:r,width:s,offset:a=0,style:l})=>{const d=t.createElementNS("http://www.w3.org/2000/svg","image"),h=Math.min(s,r);let c=(s-h+e)/2,u=(r-h+e)/2+a;n===W?c+=(h-e)/2:n===V?(c+=h-e,u+=(h-e)/2):n===Y?(c+=(h-e)/2,u+=h-e):n===v&&(u+=(h-e)/2),d.setAttribute("href",i||""),d.setAttribute("x",`${c}`),d.setAttribute("y",`${u}`),d.setAttribute("style",l?.toString()||""),o.appendChild(d)},F=t=>(e,i,o,n,r,s,a,l,d)=>{const{instanceId:h}=i,c=o,u=o,m=Math.min(c,u),p=T(t.radius),g=p&&J(p)>0?J(p)/100*m:0,f=T(t?.inner?.radius,g),b=Math.min(Math.max(t.inner?.scale??1,0),1.5),k=t.inner?.horizontalOffset??0,O=t.inner?.verticalOffset??0,w=t.thickness,y=t.color??"#000000",Z=t.borderOuter?t.borderOuter.thickness/2:0,S=t.borderInner?t.borderInner.thickness/2:0,A=i.document,C=r.left+r.right,j=r.top+r.bottom,I=n(w,g),Y={top:M(t,"top"),right:M(t,"right"),bottom:R(t,"bottom",d()),left:M(t,"left")},G=A.createElementNS("http://www.w3.org/2000/svg","rect"),B={x:s.left/2,y:s.top/2,width:m+C-s.left,height:m+j-s.top,fill:y,rx:p??g};Object.entries(B).forEach((([t,e])=>{G.setAttribute(t,e.toString())}));const D=A.createElementNS("http://www.w3.org/2000/svg","rect"),F=g>=200?"50%":g,U=c+C-(r.left+r.right+a.left+a.right+s.left+s.right),N=u+j-(r.top+r.bottom+a.top+a.bottom+s.top+s.bottom),E=U*b,z=N*b,K=(U-E)/2-k,H=(N-z)/2-O,Q={x:r.left+a.left+s.left+K,y:r.top+a.top+s.top+H,width:E,height:z,fill:I?.getAttribute("fill")||"#ffffff",rx:f??F};Object.entries(Q).forEach((([t,e])=>D.setAttribute(t,e.toString()))),I&&(({strokePath:t,backgroundMaskGroup:e,svgElement:i,color:o})=>{t.setAttribute("fill",e?.getAttribute("fill")||o),e.setAttribute("fill","none"),e.setAttribute("stroke-width","0"),i.insertBefore(e,i.firstChild)})({strokePath:D,backgroundMaskGroup:I,svgElement:e,color:y});let $=e.getElementsByTagName("defs")[0];$||($=A.createElementNS("http://www.w3.org/2000/svg","defs"),e.insertBefore($,e.firstChild));const _=A.createElementNS("http://www.w3.org/2000/svg","mask");_.setAttribute("id",`qr-mask-${h}`),_.setAttribute("maskUnits","userSpaceOnUse");const tt=A.createElementNS("http://www.w3.org/2000/svg","rect");if(tt.setAttribute("fill","white"),Object.entries(Q).forEach((([t,e])=>{"fill"!==t&&tt.setAttribute(t,e.toString())})),$.appendChild(_),_.appendChild(tt),e.insertBefore(D,e.firstChild?.nextSibling),e.insertBefore(G,e.firstChild),t.borderOuter&&t.borderOuter.thickness>0){const i=A.createElementNS("http://www.w3.org/2000/svg","rect"),o={x:s.left/2,y:s.top/2,width:c+C-s.left,height:u+j-s.top,fill:"none",rx:p??g,stroke:t.borderOuter.color,"stroke-width":t.borderOuter.thickness};Object.entries(o).forEach((([t,e])=>i.setAttribute(t,e.toString()))),e.insertBefore(i,e.firstChild?.nextSibling)}if(I){if(Array.from(e.getElementsByTagName("rect"))[0]){const t=e.firstChild;t?e.insertBefore(I,t):e.appendChild(I)}}if(t.borderInner&&t.borderInner.thickness>0){const i=A.createElementNS("http://www.w3.org/2000/svg","rect"),o={x:r.left+a.left+s.left+K,y:r.top+a.top+s.top+H,width:E,height:z,fill:"none",stroke:t.borderInner.color,"stroke-width":a.left,rx:f??F};Object.entries(o).forEach((([t,e])=>i.setAttribute(t,e.toString()))),e.appendChild(i)}let et={...x};if(!d()){const e=((t,e=[W,v,V])=>{for(const i of e){const e=t.decorations?.[i];if(e&&e.enableText&&!e.disabled&&e.type===q&&e.style)return e.style}})(t);e&&(et={...et,style:e})}const it=d()?t:{...t,decorations:{...t.decorations,bottom:{...t.decorations?.bottom||{},...et,disabled:!1,enableText:!0}}};for(const t in it.decorations){const i=it.decorations[t];if(!i?.enableText||!Y[t])continue;const o=i.type===X?P:i.type===q?L:void 0;o&&o({document:A,svg:e,position:t,thickness:it.thickness,value:i.value,style:i.style,offset:i.offset,curveAdjustment:i.curveAdjustment,curveDisabled:i.curveDisabled,height:u+j,width:c+C,enabledBorders:Y,outerBorderPadding:Z,innerBorderPadding:S,round:p,curveRadius:i.curveRadius,instanceId:h,noBorderThickness:l})}};var U,N,E,z,K,H;function Q(t){const e={...t};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((t=>({...t,offset:Number(t.offset)}))),e}function $(t){const e={...t};return e.imageOptions={...e.imageOptions,imageSize:Math.min(1,Number(e.imageOptions?.imageSize))||1,margin:Number(e.imageOptions?.margin)||0},e.imageOptions.mode==H.overlay&&(e.imageOptions.margin=0),e.imageOptions?.fill?.gradient&&(e.imageOptions.fill.gradient=Q(e.imageOptions.fill.gradient)),e.dotsOptions={...e.dotsOptions},e.dotsOptions.gradient&&(e.dotsOptions.gradient=Q(e.dotsOptions.gradient)),e.dotsOptions.size=Math.round(Math.max(0,e.dotsOptions.size)||10),e.cornersSquareOptions&&(e.cornersSquareOptions={...e.cornersSquareOptions},e.cornersSquareOptions.gradient&&(e.cornersSquareOptions.gradient=Q(e.cornersSquareOptions.gradient))),e.cornersDotOptions&&(e.cornersDotOptions={...e.cornersDotOptions},e.cornersDotOptions.gradient&&(e.cornersDotOptions.gradient=Q(e.cornersDotOptions.gradient))),e.backgroundOptions&&(e.backgroundOptions={...e.backgroundOptions},e.backgroundOptions.gradient&&(e.backgroundOptions.gradient=Q(e.backgroundOptions.gradient))),"undefined"==typeof document||e.document||(e.document=document),e}!function(t){t.radial="radial",t.linear="linear"}(U||(U={})),function(t){t.dot="dot",t.randomDot="random-dot",t.rounded="rounded",t.extraRounded="extra-rounded",t.verticalLine="vertical-line",t.horizontalLine="horizontal-line",t.classy="classy",t.classyRounded="classy-rounded",t.square="square",t.smallSquare="small-square",t.tinySquare="tiny-square",t.star="star",t.plus="plus",t.diamond="diamond"}(N||(N={})),function(t){t.dot="dot",t.square="square",t.heart="heart",t.rounded="rounded",t.classy="classy",t.outpoint="outpoint",t.inpoint="inpoint"}(E||(E={})),function(t){t.dot="dot",t.square="square",t.rounded="rounded",t.classy="classy",t.outpoint="outpoint",t.inpoint="inpoint"}(z||(z={})),function(t){t.square="square",t.circle="circle"}(K||(K={})),function(t){t.center="center",t.overlay="overlay",t.background="background"}(H||(H={}));const _={[w.L]:.07,[w.M]:.15,[w.Q]:.25,[w.H]:.3};function tt(t){const e={};return(t.primaryColor||t.dotsGradient)&&(e.dotsOptions={...e.dotsOptions,...t.primaryColor&&{color:t.primaryColor},...t.dotsGradient&&{gradient:t.dotsGradient}}),(t.secondaryColor||t.cornersGradient)&&(e.cornersSquareOptions={...e.cornersSquareOptions,...t.secondaryColor&&{color:t.secondaryColor},...t.cornersGradient&&{gradient:t.cornersGradient}},e.cornersDotOptions={...e.cornersDotOptions,...t.secondaryColor&&{color:t.secondaryColor}}),(t.thirdColor||t.cornersDotGradient)&&(e.cornersDotOptions={...e.cornersDotOptions,...t.thirdColor&&{color:t.thirdColor},...t.cornersDotGradient&&{gradient:t.cornersDotGradient}}),(t.backgroundColor||t.backgroundGradient)&&(e.backgroundOptions={...e.backgroundOptions,...t.backgroundColor&&{color:t.backgroundColor},...t.backgroundGradient&&{gradient:t.backgroundGradient}}),t.dotShape&&(e.dotsOptions={...e.dotsOptions,type:t.dotShape}),t.cornerSquareShape&&(e.cornersSquareOptions={...e.cornersSquareOptions,type:t.cornerSquareShape}),t.cornerDotShape&&(e.cornersDotOptions={...e.cornersDotOptions,type:t.cornerDotShape}),t.logo&&(e.image=t.logo),(void 0!==t.logoSize||t.logoMode||void 0!==t.logoMargin||t.logoFillColor||t.logoFillGradient)&&(e.imageOptions={...e.imageOptions,...void 0!==t.logoSize&&{imageSize:t.logoSize},...t.logoMode&&{mode:t.logoMode},...void 0!==t.logoMargin&&{margin:t.logoMargin},fill:{...e.imageOptions?.fill,...t.logoFillColor&&{color:t.logoFillColor},...t.logoFillGradient&&{gradient:t.logoFillGradient}}}),(t.borderColor||void 0!==t.borderThickness||void 0!==t.borderRadius||t.borderTextTop||t.borderTextRight||t.borderTextBottom||t.borderTextLeft||t.borderFontFace||void 0!==t.borderFontSize||t.borderFontColor||void 0!==t.borderLetterSpacing||t.borderFontWeight)&&(e.borderOptions={...e.borderOptions,hasBorder:!0,...t.borderColor&&{color:t.borderColor},...void 0!==t.borderThickness&&{thickness:t.borderThickness},...void 0!==t.borderRadius&&{radius:String(t.borderRadius)},...t.borderFontFace&&{fontFace:t.borderFontFace},...void 0!==t.borderFontSize&&{fontSize:t.borderFontSize},...t.borderFontColor&&{fontColor:t.borderFontColor},...void 0!==t.borderLetterSpacing&&{letterSpacing:t.borderLetterSpacing},...t.borderFontWeight&&{fontWeight:t.borderFontWeight},decorations:{...e.borderOptions?.decorations,...t.borderTextTop&&{top:{...e.borderOptions?.decorations?.top||{},text:t.borderTextTop}},...t.borderTextRight&&{right:{...e.borderOptions?.decorations?.right||{},text:t.borderTextRight}},...t.borderTextBottom&&{bottom:{...e.borderOptions?.decorations?.bottom||{},text:t.borderTextBottom}},...t.borderTextLeft&&{left:{...e.borderOptions?.decorations?.left||{},text:t.borderTextLeft}}}}),e}function et(t){const e=[];return void 0!==t.logoSize&&("number"!=typeof t.logoSize||t.logoSize<0||t.logoSize>1)&&e.push("logoSize must be a number between 0 and 1."),{isValid:0===e.length,errors:e}}class it{constructor(){}close(){}}class ot extends it{constructor(t){super(),this.istream=t,this.buffer=0,this.buflen=0}readByte(){for(;this.buflen<8;){const t=this.istream.readByte();if(-1==t){if(0==this.buflen)return-1;throw new Error("unexpected end of file./"+this.buflen)}if(t=="=".charCodeAt(0))return this.buflen=0,-1;ot.isWhitespace(t)||(this.buffer=this.buffer<<6|ot.decode(t),this.buflen+=6)}const t=this.buffer>>>this.buflen-8&255;return this.buflen-=8,t}static isWhitespace(t){return t=="\v".charCodeAt(0)||t=="\t".charCodeAt(0)||t=="\r".charCodeAt(0)||t=="\n".charCodeAt(0)}static decode(t){if("A".charCodeAt(0)<=t&&t<="Z".charCodeAt(0))return t-"A".charCodeAt(0);if("a".charCodeAt(0)<=t&&t<="z".charCodeAt(0))return t-"a".charCodeAt(0)+26;if("0".charCodeAt(0)<=t&&t<="9".charCodeAt(0))return t-"0".charCodeAt(0)+52;if(t=="+".charCodeAt(0))return 62;if(t=="/".charCodeAt(0))return 63;throw new Error("c:"+t)}}class nt extends it{constructor(t){super(),this.bytes=t,this.pos=0}readByte(){if(this.pos<this.bytes.length){const t=this.bytes[this.pos];return this.pos+=1,t}return-1}}(function(t,e){const i=(()=>{const i=new ot(new nt(function(t){const e=[];for(let i=0;i<t.length;i+=1)e.push(t.charCodeAt(i));return e}(t))),o=()=>{const t=i.readByte();if(-1==t)throw new Error("eof");return t};let n=0;const r={};for(;;){const t=i.readByte();if(-1==t)break;const e=o(),s=o()<<8|o();r[String.fromCharCode(t<<8|e)]=s,n+=1}if(n!=e)throw new Error(n+"!="+e);return r})(),o="?".charCodeAt(0)})("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MIWC4zCGguQwh4LlMIiC5jCJgucwioLoMIuC6TCMguowjYLrMI6C7DCPgu0wkILuMJGC7zCSgvAwk4LxMJuBSjCcgUswnYFUMJ6BVTChg0AwooNBMKODQjCkg0MwpYNEMKaDRTCng0YwqINHMKmDSDCqg0kwq4NKMKyDSzCtg0wwroNNMK+DTjCwg08wsYNQMLKDUTCzg1IwtINTMLWDVDC2g1Uwt4NWMLiDVzC5g1gwuoNZMLuDWjC8g1swvYNcML6DXTC/g14wwINfMMGDYDDCg2Eww4NiMMSDYzDFg2QwxoNlMMeDZjDIg2cwyYNoMMqDaTDLg2owzINrMM2DbDDOg20wz4NuMNCDbzDRg3Aw0oNxMNODcjDUg3Mw1YN0MNaDdTDXg3Yw2IN3MNmDeDDag3kw24N6MNyDezDdg3ww3oN9MN+DfjDgg4Aw4YOBMOKDgjDjg4Mw5IOEMOWDhTDmg4Yw54OHMOiDiDDpg4kw6oOKMOuDizDsg4ww7YONMO6DjjDvg48w8IOQMPGDkTDyg5Iw84OTMPSDlDD1g5Uw9oOWMPuBRTD8gVsw/YFSMP6BU04AiOpOAZKaTgOOtU4HlpxOCI/kTgmOT04Kj+NOC4m6Tg2Vc04Ol15OEJigThGJTk4Uio5OFZihThaQok4XmcBOGIt1ThmVuE4ej+VOIZe8TiaVwE4qmKJOLZKGTjGYo04yi/hONpikTjiK2045kk9OO47lTjyYpU4/mKZOQpinTkOUVE5Fi3ZOS5RWTk2T4U5OjMFOT5ZSTlXlaE5WmKhOV4/mTliYqU5ZibNOXYvjTl6M7k5fludOYpukTnGXkE5zk/tOfoqjToCLVE6CmKpOhZirToaXuU6Il1xOiZGIToqYrU6LjpZOjJPxTo6YsE6RiV1OkozdTpSM3E6ViOROmJhqTpmYaU6bjbFOnIifTp6YsU6fmLJOoJizTqGWU06imLROpIzwTqWI5U6mlpJOqIucTquLnU6si55OrZLgTq6Xuk6wmLVOs5i2TraYt066kGxOwI9ZTsGQbU7CmLxOxJi6TsaYu07Hi3dOyo2hTsuJ7k7NmLlOzpi4Ts+Vp07UjmVO1Y5kTtaRvE7XmL1O2JV0TtmQ5U7dgVdO3pi+Tt+YwE7jkeNO5JffTuWIyE7tmL9O7om8TvCLwk7ykodO9oyPTveYwU77lENPAYrpTwmYwk8KiMlPDYzeTw6K6k8PlZpPEJSwTxGLeE8aie9PHJjlTx2TYE8vlIxPMJjETzSUuk82l+BPOJBMTzqOZk88jpdPPYm+T0OSz09GkkFPR5jIT02Iyk9OkuFPT49aT1CNsk9Rl0NPU5HMT1WJvU9XmMdPWZddT1qYw09bmMVPXI3sT12Yxk9em0NPaZjOT2+Y0U9wmM9Pc4nAT3WVuU92mMlPe5jNT3yM8U9/jmdPg4qkT4aY0k+ImMpPi5fhT42OmE+PmMtPkZjQT5aY00+YmMxPm4ufT52Iy0+gi6BPoYm/T6ubRE+tlplPrpWOT6+M8k+1kE5Ptpe1T7+V1k/CjFdPw5GjT8SJ4k/Kj3JPzpjXT9CY3E/RmNpP1JjVT9eRrU/YmNhP2pjbT9uY2U/dldtP35jWT+GQTU/jlpNP5JjdT+WY3k/uj0NP75jrT/OUb0/1lVVP9pjmT/iV7k/6ibRP/pjqUAWY5FAGmO1QCZFxUAuMwlANlHtQD+DFUBGY7FASk3xQFJjhUBaM9FAZjPNQGpjfUB+O2FAhmOdQI5XtUCSSbFAlmONQJoyRUCiY4FApmOhQKpjiUCuXz1AsmOlQLZhgUDaL5FA5jJBQQ5juUEeY71BImPNQSYjMUE+VzlBQmPJQVZjxUFaY9VBamPRQXJLiUGWMklBsmPZQco7DUHSRpFB1kuNQdov0UHiY91B9i1VQgJj4UIWY+lCNllRQkYyGUJiOUFCZlPVQmpj5UKyNw1Ctl2JQspj8ULOZQlC0mPtQtY3CULePnVC+jFhQwplDUMWLzVDJmUBQyplBUM2TrVDPkZxQ0YuhUNWWbFDWmURQ2pe7UN6ZRVDjmUhQ5ZlGUOeRbVDtmUdQ7plJUPWZS1D5mUpQ+5XGUQCLVlEBmU1RAplOUQSJrVEJmUxREo7yURSZUVEVmVBRFplPURiY1FEamVJRH4+eUSGZU1Eql0RRMpbXUTeZVVE6mVRRO5lXUTyZVlE/mVhRQJlZUUGI8lFDjLNRRIxaUUWPW1FGkptRR4uiUUiQ5lFJjPVRS42OUUyZW1FNlsZRTpNlUVCOmVFSmVpRVJlcUVqTfVFcipVRYpldUWWT/FFokVNRaZlfUWqZYFFrlKpRbIz2UW2YWlFumWFRcYukUXWVulF2kbRRd4vvUXiTVFF8jJNRgJliUYKZY1GFk+BRhol+UYmZZlGKjftRjJllUY2NxFGPmWdRkOPsUZGZaFGSlmBRk5lpUZWZalGWmWtRl4/nUZmOylGgiqVRopluUaSZbFGllrtRppltUaiVeVGpmW9RqplwUauZcVGsk35RsJl1UbGZc1GymXRRs5lyUbSN4VG1mXZRtpboUbeX4lG9mXdRxJCmUcWZeFHGj3lRyZl5UcuSnFHMl71RzZOAUdaZw1HbmXpR3OqjUd2Lw1HgmXtR4ZZ9UeaPiFHnkfpR6Zl9UeqT4lHtmX5R8JmAUfGKTVH1mYFR9oulUfiTylH5iZpR+o9vUf2Un1H+mYJSAJOBUgOQblIEmYNSBpWqUgeQ2FIIiqBSCoqnUguZhFIOmYZSEYxZUhSZhVIXl/FSHY+JUiSUu1IllcpSJ5mHUimXmFIqmYhSLpmJUjCTnlIzmYpSNpCnUjeN/FI4jJRSOZmLUjqOaFI7jY9SQ5LkUkSZjVJHkaVSSo3tUkuZjlJMmY9STZFPUk+ZjFJUmZFSVpZVUluNhFJemZBSY4yVUmSN3FJllI1SaZmUUmqZklJvlZtScI/oUnGZm1JyioRSc5mVUnSZk1J1kW5SfZmXUn+ZllKDimNSh4yAUoiZnFKJl6tSjZmYUpGZnVKSmZpSlJmZUpuXzVKfjPdSoInBUqOX8lKpj5VSqpN3UquNhVKsmaBSrZmhUrGX41K0mEpStZmjUrmM+FK8maJSvopOUsGZpFLDlnVSxZK6UseXRVLJlddSzZmlUtLo01LVk65S15mmUtiKqFLZlrFS3Y+fUt6Zp1LfleVS4JmrUuKQqFLjmahS5IvOUuaZqVLniqlS8oxNUvOZrFL1ma1S+JmuUvmZr1L6jtlS/oz5Uv+W3FMBluZTApP1UwWV71MGmbBTCJmxUw2Zs1MPmbVTEJm0UxWZtlMWibtTF5ZrUxmN+lMambdTHZF4UyCPoFMhi6dTI5m4UyqU2VMvmblTMZm6UzOZu1M4mbxTOZVDUzqL5lM7iONTP5O9U0CZvVNBj1xTQ5DnU0WZv1NGmb5TR4+hU0iM31NJmcFTSpS8U02ZwlNRlNpTUpGyU1OR7FNUi6ZTV5PsU1iSUFNalI5TXJZtU16ZxFNgkOhTZoxUU2mZxVNumcZTb4lLU3CI81NxiutTc5GmU3SLcFN1l5FTd5nJU3iJtVN7mchTf4uoU4KZylOElu9TlpnLU5iX0FOajPpTn4y0U6CZzFOlmc5TppnNU6iQflOpiVhTrYl9U66Zz1OwmdBTs4y1U7aZ0VO7i45Two5RU8OZ0lPIlpRTyY2zU8qLeVPLl0ZTzJFvU82UvVPOjvtT1I9mU9aO5lPXjvNT2Y+WU9uUvlPfmdVT4YliU+KRcFPjjPtT5IzDU+WL5VPomdlT6ZJAU+qR/FPri6lT7I+iU+2Z2lPumdhT74nCU/CR5FPxjrZT8o5qU/OJRVP2ipBT942GU/iOaVP6mdtUAZncVAOLaFQEimVUCI2HVAmLZ1QKkt1UC4lEVAyTr1QNlrxUDo1AVA+XmVQQk2ZUEYz8VBuMTlQdmeVUH4vhVCCWaVQmlNtUKZnkVCuK3FQsmd9ULZngVC6Z4lQ2meNUOIt6VDmQgVQ7latUPJnhVD2Z3VQ+jOFUQJneVEKYQ1RGlfBUSJLmVEmM4FRKjZBUTpnmVFGT21RfmepUaI78VGqO9FRwme1UcZnrVHOWoVR1mehUdpnxVHeZ7FR7me9UfIzEVH2WvVSAmfBUhJnyVIaZ9FSLje5UjJhhVI6Z6VSPmedUkJnzVJKZ7lSimfZUpJpCVKWZ+FSomfxUq5pAVKyZ+VSvml1Uso3nVLOKUFS4mfdUvJpEVL2I9FS+mkNUwIijVMGVaVTCmkFUxJn6VMeZ9VTImftUyY3GVNiaRVThiPVU4ppOVOWaRlTmmkdU6I+jVOmWiVTtmkxU7ppLVPKTTlT6mk1U/ZpKVQSJU1UGjbRVB5BPVQ+aSFUQk4JVFJpJVRaIoFUumlNVL5dCVTGPpVUzmllVOJpYVTmaT1U+kcFVQJpQVUSR7VVFmlVVRo+kVUyaUlVPluJVU4xbVVaaVlVXmldVXJpUVV2aWlVjmlFVe5pgVXyaZVV+mmFVgJpcVYOaZlWEkVBVh5poVYmNQVWKml5Vi5KdVZiaYlWZmltVmoqrVZyK7FWdioVVnppjVZ+aX1WnjJZVqJppVamaZ1WqkXJVq4tpVayLqlWummRVsIvyVbaJY1XEmm1VxZprVceapVXUmnBV2ppqVdyablXfmmxV445rVeSab1X3mnJV+Zp3Vf2adVX+mnRWBpJRVgmJw1YUmnFWFppzVhePplYYiVJWG5p2VimJ3FYvmoJWMY/6VjKafVY0mntWNpp8VjiaflZCiVxWTJFYVk6aeFZQmnlWW4qaVmSagVZoiu1WapqEVmuagFZsmoNWdJWsVniT01Z6lLZWgJqGVoaahVaHimRWipqHVo+ailaUmolWoJqIVqKUWFalmotWrpqMVrSajla2mo1WvJqQVsCak1bBmpFWwpqPVsOaklbImpRWzpqVVtGallbTmpdW15qYVtiZZFbajvpW245sVt6J8VbgiPZW45JjVu6amVbwjaJW8ojNVvOQfVb5mppW+ozFVv2NkVb/mpxXAJqbVwOV3lcEmp1XCJqfVwmanlcLmqBXDZqhVw+Ml1cSiYBXE5qiVxaapFcYmqNXHJqmVx+TeVcmmqdXJ4izVyiN3VctjFxXMJJuVzeaqFc4mqlXO5qrV0CarFdCjeJXR4vPV0qWVldOmqpXT5qtV1CNv1dRjUJXYZqxV2SNo1dmklJXaZquV2qS2Fd/mrJXgpCCV4iasFeJmrNXi4xeV5OatFegmrVXoo1DV6OKX1ekmrdXqpq4V7CauVezmrZXwJqvV8OaulfGmrtXy5aEV86P6VfSmr1X05q+V9SavFfWmsBX3JRXV9+I5lfglXVX45rBV/SP+1f3jrdX+ZR8V/qK7lf8jelYAJZ4WAKTsFgFjJhYBpHNWAqav1gLmsJYFZHCWBmaw1gdmsRYIZrGWCSS51gqiqxYL+qfWDCJgVgxlfFYNI/qWDWTZ1g6jeRYPZrMWECVu1hBl9tYSonyWEuayFhRkVlYUprLWFSTg1hXk2hYWJOEWFmUt1hakstYXo3HWGKax1hpiZZYa5NVWHCayVhymsVYdZBvWHmazVh+j21Yg4urWIWazliTleZYl5GdWJySxFifmtBYqJZuWKua0ViumtZYs5WtWLia1Vi5ms9YuprSWLua1Fi+jaRYwZXHWMWa11jHkmRYyonzWMyP61jRmtlY05rYWNWNiFjXmtpY2JrcWNma21jcmt5Y3prTWN+a4Fjkmt9Y5ZrdWOuObVjskHBY7pFzWO+a4VjwkLpY8YjrWPKUhFj3ktlY+ZrjWPqa4lj7muRY/JrlWP2a5lkCmudZCZXPWQqa6FkPicRZEJrpWRWXW1kWik9ZGJnHWRmPZ1kakb1ZG5rqWRyW6VkilrJZJZrsWSeR5Vkpk1ZZKpG+WSuVdlksmu1ZLZruWS6Jm1kxjrhZMprvWTeIzlk4mvBZPprxWUSJgllHiu9ZSJPeWUmV8llOmvVZT5F0WVCa9FlRjF9ZVJZ6WVWa81lXk4VZWJr3WVqa9llgmvlZYpr4WWWJnFlnmvpZaI+nWWma/FlqkkRZbJr7WW6VsVlzj5dZdJN6WXibQFl9jURZgZtBWYKUQFmDlNxZhJbPWYqURFmNm0pZk4tXWZaXZFmZlq1Zm5uqWZ2bQlmjm0VZpZHDWaiWV1msk2lZsptGWbmWhVm7jchZvo+oWcabR1nJjm9Zy45uWdCIt1nRjMZZ05CpWdSIz1nZm0tZ2ptMWdybSVnliVdZ5oqtWeibSFnqlsNZ65VQWfaIpln7iPdZ/45wWgGI0FoDiKFaCZtRWhGbT1oYlrpaGptSWhybUFofm05aIJBQWiWbTVopldhaL4ziWjWbVlo2m1daPI+pWkCbU1pBmEtaRpRrWkmbVVpajaVaYptYWmaVd1pqm1labJtUWn+WuVqSlH1amptaWpuVUVq8m1tavZtfWr6bXFrBicVawpteWsmOuVrLm11azIyZWtCba1rWm2Ra15thWuGShFrjm2Ba5ptiWumbY1r6m2Va+5tmWwmK8FsLm2hbDJtnWxabaVsij+xbKptsWyyS2lswiWRbMptqWzabbVs+m25bQJtxW0Obb1tFm3BbUI5xW1GbcltUjUVbVZtzW1eOmltYkbZbWpt0W1ubdVtcjnlbXY1GW1+W0Ftji0dbZIzHW2WbdltmindbaZt3W2uRt1twm3hbcZuhW3ObeVt1m3pbeJt7W3qbfVuAm35bg5uAW4WR7luHiUZbiI7nW4mIwFuLkXZbjIquW42Os1uPjUdblZOGW5ePQFuYiq9bmZKIW5qS6FubiLZbnItYW52V81ufjsBbootxW6OQ6VukjrpbpZdHW6abgVuui3tbsI3JW7OKUVu0iYNbtY+qW7aJxlu4m4JbuZdlW7+PaFvCjuJbw5uDW8SK8VvFk9BbxpanW8ebhFvJm4VbzJV4W9Cbh1vSiqZb04v1W9SbhlvbirBb3ZBRW96bi1vfjkBb4YnHW+Kbilvkm4hb5ZuMW+abiVvnlEpb6J7LW+mQUlvrm41b7pe+W/Cbjlvzm5Bb9ZKeW/abj1v4kKFb+o6bW/6Rzlv/jvVcAZWVXAKQ6lwEjstcBZuRXAaPq1wHm5JcCJuTXAmI0VwKkbhcC5BxXA2blFwOk7FcD4+sXBGPrVwTm5VcFpDrXBqPrlwgm5ZcIpuXXCSW3lwom5hcLYvEXDGPQVw4m5lcOZuaXDqO2lw7kEtcPJPyXD2Qc1w+lPZcP5RBXECLx1xBm5tcRYuPXEabnFxIi/xcSpPNXEuJrlxNjnJcTpudXE+boFxQm59cUYv7XFObnlxVk1dcXpGuXGCTalxhjsZcZJF3XGWXmlxsm6JcbpujXG+T1FxxjlJcdpulXHmbplyMm6dckIryXJGbqFyUm6lcoYmqXKiRWlypiuJcq5urXKyWplyxkdBcs4p4XLabrVy3m69cuIrdXLubrFy8m65cvpuxXMWbsFzHm7Jc2ZuzXOCTu1zhi6xc6InjXOmbtFzqm7lc7Zu3XO+V9VzwlfRc9pOHXPqbtlz7j3Nc/Zu1XQeQkl0Lm7pdDo3oXRGbwF0Um8FdFZu7XRaKUl0Xm7xdGJvFXRmbxF0am8NdG5u/XR+bvl0im8JdKZX2XUubyV1Mm8ZdTpvIXVCXkl1Sm8ddXJu9XWmQk11sm8pdb421XXOby112m8xdgpvPXYSbzl2Hm81di5OIXYybuF2Qm9VdnZvRXaKb0F2sm9JdrpvTXbeb1l26l+RdvJvXXb2b1F3Jm9hdzIreXc2b2V3Sm9td05vaXdab3F3bm91d3ZDsXd6PQl3hj4Rd45GDXeWNSF3mjbZd541JXeiLkF3rm95d7o23XfGMyF3ym99d85akXfSUYl31m+Bd941KXfuKql39kkZd/ovQXgKOc14DlXpeBpS/Xgub4V4MivNeEZvkXhaSn14Zm+NeGpviXhub5V4dkuleJZCDXiuOdF4tkMheL5HRXjCLQV4zkqBeNpvmXjeb5144j+1ePZZYXkCb6l5Dm+leRJvoXkWVnV5Hm/FeTJZ5Xk6b615Um+1eVZaLXleb7F5fm+5eYZSmXmKb715jlbxeZJvwXnKKsV5zlb1edJROXnWb8l52m/NeeI1LXnmKsl56m/Ree4y2XnyXY159l0hefor0Xn+b9l6BkqFeg41MXoSPr16HlN1eio+wXo+PmF6VkupelpX3XpeTWF6ajU1enJV7XqCb916mk3hep43AXquMyV6tkutetYjBXraPjl63jU5euJdmXsGb+F7Cm/lew5RwXsib+l7Jl/VeyphMXs+b/F7Qm/te04pmXtacQF7anENe25xEXt2cQl7flV9e4I+xXuGcRl7inEVe45xBXuicR17pnEhe7JxJXvCcTF7xnEpe85xLXvScTV72iYRe95LsXvicTl76jJpe+4n0XvyUVV7+nE9e/5P5XwGV2V8DnFBfBJhNXwmcUV8Klb5fC5xUXwyYn18NmK9fD46uXxCT818RnFVfE4t8XxSSol8ViPhfFpxWXxeVpF8YjU9fG5JvXx+S7V8llu1fJoy3XyeMyl8pnFdfLZxYXy+cXl8xjuNfNZKjXzeLrV84nFlfPJVKXz6SZV9BnFpfSJxbX0qLrl9MnFxfTpxdX1GcX19Tk5ZfVpxgX1ecYV9ZnGJfXJxTX12cUl9hnGNfYoxgX2aVRl9pjcpfapVWX2uSpF9slWpfbZxkX3CPsl9xiWVfc5xlX3ecZl95lvBffJTeX3+caV+AiZ1fgZCqX4KcaF+DnGdfhIxhX4WR0l+HnG1fiJxrX4qcal+Ll6VfjIzjX5CPmV+RnGxfkpNrX5OPXV+Xk75fmJxwX5mcb1+enG5foJxxX6GM5F+onHJfqZWcX6qPel+tnHNfrpT3X7OTv1+0kqVfuZNPX7ycdF+9i0pfw5BTX8WVS1/MivVfzZRFX9acdV/XjnVf2JZZX9mWWl/ciZ5f3Zx6X+CSiV/knHdf64n1X/Ccq1/xnHlf9ZRPX/iceF/7nHZf/Y2aX/+cfGAOnINgD5yJYBCcgWASk3tgFZyGYBaVfGAZnIBgG5yFYByX5WAdjnZgIJHTYCGcfWAli31gJpyIYCeQq2AoiYVgKZyCYCqJ9mArnIdgL4uvYDGchGA6nIpgQZyMYEKclmBDnJRgRpyRYEqckGBLl/ZgTZySYFCLsGBSjVBgVY+aYFmcmWBanItgX5yPYGCcfmBiifhgY5yTYGSclWBlknBgaI2mYGmJtmBqnI1ga5yYYGycl2Bti7Fgb5GnYHCKhmB1jGJgd5yOYIGcmmCDnJ1ghJyfYImOu2CLnKVgjJLuYI2cm2CSnKNglIn3YJacoWCXnKJgmpyeYJucoGCfjOVgoJdJYKOKs2CmiXhgp5ykYKmUWWCqiKtgspTfYLOce2C0nKpgtZyuYLaW42C4nKdgvJOJYL2crGDFj+5gxpytYMeT1WDRmGZg05ypYNicr2DajZtg3JDJYN+I0mDgnKhg4ZymYOOReWDnnJxg6I5TYPCRxGDxnLtg85F6YPSctmD2nLNg95y0YPmO5GD6nLdg+5y6YQCctWEBj0RhA5y4YQacsmEIlvphCZb5YQ2cvGEOnL1hD4jTYRWcsWEai/BhG4ikYR+KtGEhnLlhJ5zBYSicwGEsnMVhNJzGYTycxGE9nMdhPpy/YT+cw2FCnMhhRJzJYUecvmFIjpxhSpzCYUuR1GFMjVFhTZywYU6QVGFTnNZhVZXnYViczGFZnM1hWpzOYV2c1WFfnNRhYpadYWOKtWFlnNJhZ4xkYWiKU2FrnM9hbpe2YW+c0WFwiNRhcZzTYXOcymF0nNBhdZzXYXaMY2F3nMthfpd8YYKXSmGHnNphipzeYY6RnmGQl/dhkZzfYZSc3GGWnNlhmZzYYZqc3WGkla5hp5OyYamMZWGrnOBhrJzbYa6c4WGyjJthtomvYbqc6WG+irZhw5znYcac6GHHjadhyJzmYcmc5GHKnONhy5zqYcyc4mHNnOxh0In5YeOc7mHmnO1h8pKmYfSc8WH2nO9h95zlYfiMnGH6nPBh/Jz0Yf2c82H+nPVh/5zyYgCc9mIInPdiCZz4YgqV6GIMnPpiDZz5Yg6PXmIQkKxiEYnkYhKJ+mIUnPtiFoi9YhqQymIbnPxiHebBYh6dQGIfjIFiIZ1BYiaQ7WIqnUJiLp1DYi+LWWIwnURiMp1FYjOdRmI0kdViOIzLYjuW32I/lltiQI+KYkGdR2JHkO5iSOe7YkmU4GJLjuhiTY3LYk6dSGJTkcViVZWlYliR72JbnUtiXp1JYmCdTGJjnUpiaJ1NYm6Vr2JxiLVidpV9YnmU4WJ8nU5ifp1RYn+Ps2KAi1pigp1PYoOdVmKEj7RiiZ1QYoqUY2KRl31ikp1SYpOdU2KUnVdilZOKYpadVGKXjVJimJDcYpudZWKclLJinpHwYquU4mKsnatisZX4YrWS72K5lpViu51aYryJn2K9kopiwp1jYsWSU2LGnV1ix51kYsidX2LJnWZiyp1iYsydYWLNlI9iz51bYtCJ+2LRnVli0ouRYtOR8WLUnVVi151YYtiNU2LZkNli24+1YtydYGLdlHFi4IuSYuGKZ2Lsiodi7ZBAYu6daGLvnW1i8Z1pYvOMnWL1nW5i9o5BYveNiWL+j0Vi/51cYwGOnWMCnWtjB453YwidbGMJiMJjDJ1nYxGSp2MZi5NjH4uyYyedamMoiKVjK43BYy+QVWM6kvBjPZTSYz6dcGM/kX1jSZGoY0yOSmNNnXFjT51zY1Cdb2NVld9jV5K7Y1yRe2NnlfljaI7MY2mdgGNrnX5jbpCYY3KMnmN2nXhjd4+3Y3qT5mN7lFBjgJ12Y4ORfGOIjvZjiZ17Y4yPtmOOnXVjj516Y5KUcmOWnXRjmIxAY5uKfGOfnXxjoJepY6GNzGOiklRjo515Y6WQ2mOnjVRjqJCEY6mJhmOqkVtjq513Y6yLZGOyjGZjtJLNY7WdfWO7kX5jvp2BY8Cdg2PDkbVjxJ2JY8adhGPJnYZjz5VgY9CS8WPSnYdj1pdLY9qXZ2Pbirdj4YisY+OdhWPpnYJj7or2Y/SJh2P2nYhj+pdoZAadjGQNkblkD52TZBOdjWQWnYpkF52RZBydcmQmnY5kKJ2SZCyUwGQtk4tkNJ2LZDadj2Q6jGdkPo3vZEKQ22ROnZdkWJNFZGedlGRploBkb52VZHadlmR4lsxkepCgZIOMgmSInZ1kko5UZJOdmmSVnZlkmpRRZJ6Ts2Skk1BkpZ2bZKmdnGSrlY9krZRkZK6OQmSwkO9kspZvZLmKaGS7naNkvJ2eZMGXaWTCnaVkxZ2hZMedomTNkYBk0p2gZNSdXmTYnaRk2p2fZOCdqWThnapk4pNGZOOdrGTmjkNk552nZOyLW2Tvna1k8Z2mZPKdsWT0nbBk9p2vZPqdsmT9nbRk/o/vZQCds2UFnbdlGJ21ZRydtmUdnZBlI525ZSSduGUqnZhlK526ZSydrmUvjnhlNJ27ZTWdvGU2nb5lN529ZTidv2U5ifxlO41VZT6V+mU/kK1lRYzMZUidwWVNncRlT5VxZVGLfmVVncNlVp3CZVeUc2VYncVlWYuzZV2dx2VencZlYoq4ZWOOVWVmk9ZlbIxoZXCQlGVynchldJCuZXWTR2V3lX5leJ3JZYKdymWDnctlh5W2ZYibfGWJkMRljJVrZY6N1mWQlONlkZTBZZeTbGWZl79lm53NZZyOzmWfnc5loYi0ZaSL0mWlkMtlp5WAZaudz2WsjmFlrZJmZa+OemWwkFZlt53QZbmV+2W8iZdlvY57ZcGd02XDndFlxJ3UZcWXt2XGndJly5D5Zcyd1WXPkbBl0p3WZdeK+GXZndhl253XZeCd2WXhndpl4or5ZeWT+mXmklVl54uMZeiOfGXpkYFl7I97Ze2IrmXxndtl+omgZfud32YCjVZmA53eZgaNqWYHj7hmCp3dZgyPuWYOlr5mD42oZhOI1WYUkMxmHJ3kZh+Qr2YgiWZmJY90ZieWhmYojfBmLY+6Zi+QpWY0neNmNZ3hZjad4mY8kotmP55FZkGd6GZCjp5mQ41XZkSd5mZJnedmS5BXZk+d5WZSjk5mXZ3qZl6d6WZfne5mYp3vZmSd62ZmikFmZ53sZmid7WZplNNmbpWBZm+MaWZwnfBmdJCwZnaPu2Z6knFmgYvFZoOd8WaEnfVmh4nJZoid8maJnfRmjp3zZpGPi2aWkmdml4jDZpid9madnfdmopKoZqaX72arjmJmrpXpZrSWXGa4nkFmuZ35Zryd/Ga+nftmwZ34ZsSeQGbHk9xmyZ36ZtaeQmbZj4xm2p5DZtyXambdlJhm4J5EZuaeRmbpnkdm8J5IZvKLyGbziWdm9I1YZvWeSWb3nkpm+I+RZvmRgmb8mdZm/ZFdZv6RXGb/kdZnAI3FZwOY8GcIjI5nCZdMZwuV/GcNlZ5nD55LZxSN8WcVkr1nFp5MZxeYTmcbll1nHZKpZx6eTWcfivpnJp5OZyeeT2colthnKpaiZyuWlmcslntnLY5EZy6eUWcxjulnNJZwZzaeU2c3nlZnOJ5VZzqK92c9i4BnP55SZ0GeVGdGnldnSZCZZ06Xm2dPiMdnUI3eZ1GRumdTjttnVo/xZ1meWmdck21nXp5YZ1+RqWdgnllnYY/wZ2KW22djnltnZJ5cZ2WXiGdqnmFnbY1ZZ2+UdGdwnl5ncZOMZ3Kd3GdzneBndYtuZ3eUZmd8nmBnfo+8Z3+UwmeFnmZnh5T4Z4meXWeLnmNnjJ5iZ5CQzWeVlo1nl5fRZ5qWh2ecicpnnY59Z6CYZ2ehnmVnopCVZ6aeZGepnl9nr4zNZ7Oea2e0nmlntonLZ7eeZ2e4nm1nuZ5zZ8GRxmfElb9nxp51Z8qVQWfOnnRnz5SQZ9CWXmfRirln05D1Z9SPX2fYktFn2pdNZ92ecGfenm9n4p5xZ+SebmfnnnZn6Z5sZ+yeamfunnJn755oZ/GSjGfzlvZn9I7EZ/WN8mf7jbhn/paPZ/+KYGgCksxoA5PIaASJaGgTkPBoFpCyaBeMSWgennhoIY1aaCKKnGgpnnpoKoqUaCuegWgynn1oNJDxaDiKamg5japoPIppaD2NzWhAnntoQYyFaEKMamhDk41oRp55aEiIxGhNnnxoTp5+aFCLy2hRjEtoU4q6aFSLamhZnoJoXI33aF2WkWhfjlZoY56DaGeVT2h0no9odomxaHeehGh+npVof56FaIGXwGiDnoxohZR+aI2elGiPnodok4iyaJSeiWiXjVtom56LaJ2eimifnoZooJ6RaKKPvWimmutop4zmaKiXnGitnohor5LyaLCKQmixjatos56AaLWekGi2ioFouZ6OaLqekmi8k45oxIr8aMaesGjJlsdoyp6XaMuK+2jNnp5o0pZfaNSen2jVnqFo156laNiemWjakklo35OPaOCeqWjhnpxo456maOeeoGjukFho756qaPKQsWj5nqho+oq7aQCYb2kBnpZpBJ6kaQWI1mkInphpC5a4aQyenWkNkEFpDpLFaQ+ek2kSnqNpGZCaaRqerWkbipFpHIyfaSGer2kinpppI56uaSWep2kmnptpKJ6raSqerGkwnr1pNJPMaTaeomk5nrlpPZ67aT+S1mlKl2tpU5WWaVSetmlVkchpWZ68aVqRXmlcnrNpXZ7AaV6ev2lgk+1pYZ6+aWKT6GlqnsJpa561aW2Lxmlunrhpb498aXOUgGl0nrppdYvJaXeesml4nrRpeZ6xaXyYT2l9inlpfp63aYGewWmCilRpio3laY6JfGmRntJplJhQaZWe1WmbkFlpnJ7UaaCe02mnntBprp7EabGe4WmynsNptJ7Wabuezmm+nslpv57GacGex2nDns9px+qgacqezGnLjVxpzJLGac2RhGnOnspp0J7FadOeyGnYl2xp2ZaKad2ezWnentdp557faeie2GnrnuVp7Z7jafKe3mn5nt1p+5LOaf2RhWn/nttqAp7ZagWe4GoKnuZqC5Tzagye7GoSnudqE57qahSe5GoXkpRqGZVXahue2moenuJqH4++aiGWzWoinvZqI57paimMoGoqiaFqK4p+ai6e0Wo1j79qNp7uajie9Wo5jvdqOoqSaj2STWpEnutqR57wakie9GpLi7RqWItralme8mpfi0BqYZPJamKe8WpmnvNqcp7tanie72p/ioBqgJJoaoSe+mqNnvhqjoznapCe92qXn0BqnJ53aqCe+Wqinvtqo578aqqfS2qsn0dqrp6NarOfRmq4n0Vqu59CasGe6GrCn0Rqw59DatGfSWrTmEVq2p9MatuL+Wren0hq359KauiUpWrqn01q+p9RavufTmsEl5NrBZ9Pawqe3GsSn1JrFp9Tax2JVGsfn1VrIIyHayGOn2sji9NrJ4miazKXfms3n1drOJ9WazmfWWs6i1xrPYvUaz6KvGtDn1xrR59ba0mfXWtMicxrTpJWa1CfXmtTir1rVJ9ga1mfX2tbn2FrX59ia2GfY2tijn5rY5Cza2SNn2tmlZBraZXga2qYY2tvjpVrc43Oa3SX8Gt4n2RreZ9la3uOgGt/n2ZrgJ9na4OfaWuEn2hrhpZ3a4mPfWuKjupri45ja42famuVn2xrlpBCa5ifa2uen21rpJ9ua6qfb2urn3Brr59xa7Gfc2uyn3Jrs590a7SJo2u1kmlrt591a7qORWu7imtrvJ92a7+TYWvAmsprxYtCa8afd2vLn3hrzZXqa86WiGvSk8Vr0595a9SU5GvYlPlr25bRa9+femvrn3xr7J97a++ffmvzn31sCJ+BbA+OgWwRlq9sE5+CbBSfg2wXi0NsG5+EbCOfhmwkn4VsNJCFbDeVWGw4iWlsPpTDbECS82xBj2BsQouBbE6UxGxQjqxsVZ+IbFeKvmxaiZhsXZPwbF6fh2xfjV1sYJJybGKfiWxon5Fsap+KbHCRv2xyi4Jsc5+SbHqMiGx9i0Rsfp+QbIGfjmyCn4tsg5eAbIiSvmyMk9dsjZ+MbJCflGySn5Nsk4xCbJaJq2yZjblsmp+NbJufj2yhlnZsopHybKuWl2yun5xssZ+dbLOJzWy4laZsuZb7bLqfn2y7jqFsvI/AbL2fmGy+n55sv4mIbMGLtWzEn5VsxZ+abMmQ8mzKlJFszJTlbNOfl2zVlkBs15+ZbNmfomzbn6Bs3Z+bbOGWQWzilGds44uDbOWTRGzoko1s6p+jbO+foWzwkdds8Z+WbPOJam0Ll21tDJ+ubRKfrW0XkPRtGZ+qbRuXjG0ek7RtH5+kbSWSw20piWttKo1ebSufp20yj0ZtM5+sbTWfq202n6ZtOJ+pbTuKiG09n6htPpRobUGXrG1Ej/JtRZDzbVmftG1an7JtXJVsbWOfr21kn7FtZolZbWmNX21qmFFtbIpcbW6Vgm10l4Ftd4pDbXiQWm15n7NthZ+4bYiPwW2Ml09tjp+1bZOfsG2Vn7ZtmZfcbZuTk22ck8Btr4pVbbKJdG21n7xtuJ+/bbyXwW3Al4RtxZ/GbcafwG3Hn71ty5fS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hWmToIVqlZOFbeVKhXflUIV+5VGFgOVEhYSUloWH5U6FiOVGhYrlSIWQ5VKFkeVHhZTlS4WXiZKFmZPjhZvlTIWc5U+FpOVFhaaRRYWo5UmFqY5GhaqQZIWrjE+FrJbyha6W94Wvj5KFueVWhbrlVIXBmG2FyeVThc2XlYXP5VWF0OVXhdXlWIXc5VuF3eVZheSToYXl5VqF6ZTLherlTYX3j5OF+eVchfrlYYX7kZSF/uVghgLlQYYG5WKGB5FohgrlXYYL5V+GE+VehhafUIYXn0GGGuVkhiLlY4Ytl5aGL+G6hjDlZYY/5WaGTeVnhk6M1YZQi3OGVOVphlWZfIZai5WGXJe4hl6L8YZf5WqGZ+VrhmuSjoZx5WyGeZP4hnuIuIaKieGGi+VxhozlcoaT5W2GlY5chqPlboaklGGGqeVvhqrlcIar5XqGr+V0hrDld4a25XOGxOV1hsbldobHjtaGyeV4hsuSYIbNjHWGzophhtTle4bZil6G2+WBht7lfIbf5YCG5JS4hunlfYbs5X6G7ZVnhu6U2Ibv5YKG+JH7hvnljIb75YiG/onphwDlhocClkmHA+WHhwblhIcI5YWHCeWKhwrljYcN5YuHEeWJhxLlg4cYkneHGuWUhxyWqIcl5ZKHKeWThzTljoc35ZCHO+WRhz/lj4dJkOSHS5hYh0zlmIdO5ZmHU+Wfh1WQSYdX5ZuHWeWeh1/llodg5ZWHY+Wgh2aJ2odo5ZyHauWhh27lnYd05ZqHdpKxh3jll4d/lIiHguWlh42XWoef5aSHouWjh6vlrIev5aaHs+Wuh7qXhoe75bGHveWoh8DlqYfE5a2HxuWwh8flr4fL5aeH0OWqh9Llu4fg5bSH7+Wyh/Lls4f25biH9+W5h/mKSYf7i2GH/uW3iAXloogN5baIDuW6iA/ltYgR5byIFeW+iBblvYgh5cCIIuW/iCPleYgn5cSIMeXBiDblwog55cOIO+XFiECMjIhC5ceIROXGiEaPT4hMjXOITZ+liFLlyIhTj3CIV4pYiFnlyYhbiXGIXY/ViF7lyohhjXSIYuXLiGOI34holVyIa+XMiHCQiohy5dOIdeXQiHeSj4h95dGIfuXOiH+L3IiB5c2IguXUiIiMVYiLkdyIjeXaiJLl1oiWkbOIl+XViJnl2Iie5c+IouXZiKTl24irlO2IruXX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ljKWaJY7kWqWP4iilkCRyZZC6JiWRJWNlkvom5ZM6JmWTY1+lk/ompZQjMCWW5XDllzonZZd6J+WXuiell/ooJZiiUCWY5B3lmSPnJZliteWZuihlmqUhpZs6KOWcIlBlnLoopZzksKWdZfLlnaTqZZ36JyWeJeklnqMr5Z9l3qWhYv3loaXspaIjEeWipHglovkQJaN6KSWjopLlo+Qj5aUinWWleimlpfop5aY6KWWmYyElpuN25acj+GWoIlClqOX15an6KmWqOeslqroqJaw6KyWseiqlrLoq5a06K2WtuiulreX6pa46K+WueiwlruQx5a8lLmWwJCdlsGK5ZbEl1mWxYnrlsaPV5bHjNmWyeizlsvospbMjpOWzei0ls7osZbRjkeW1ei4ltblq5bZmdSW25CXltzotpbil6OW45PvluiJSpbqkOGW6460lvCVtZbyiV+W9pfrlveXi5b56LmW+5NklwCO+ZcE6LqXBui7lweQa5cI6LyXCpfslw3ot5cO6L6XD+jAlxHov5cT6L2XFujBlxnowpcckZqXHonglyTow5cnlraXKujElzDoxZcymEmXOJ5Qlznoxpc96MeXPujIl0LozJdE6MmXRujKl0joy5dJ6M2XUpDCl1aW9ZdZkMOXXOjOl16U8Zdg6M+XYepyl2KWypdk6NCXZujRl2jo0pdpinaXa+jUl22QeJdx6NWXdIxDl3no1pd66NqXfOjYl4Ho2ZeEipOXhejXl4bo25eL6NyXjYjGl4/o3ZeQ6N6XmI/il5zo35egi2aXo+jil6bo4Zeo6OCXq+aRl62V2pez6OOXtOjkl8Po5ZfG6OaXyOjnl8vo6JfTitiX3Ojpl+3o6pfulEKX8ujsl/OJuZf16O+X9ujul/uJQ5f/i7+YAZXFmAKSuJgDjaCYBY2AmAaPh5gIkHuYDOjxmA/o8JgQl2GYEYrmmBKU0JgTk9qYF5CcmBiXzJgajHqYIej0mCTo85gslmqYLZOqmDSJb5g36PWYOOjymDuVcJg8l4qYPej2mEbo95hL6PmYTJHomE2KephOinuYT+j4mFSK55hVjLCYWIromFuTXphel96YZ4zamGvo+phv6PuYcOj8mHHpQJhz6UKYdOlBmKiVl5iq6UOYr+lEmLHpRZi26UaYw+lImMTpR5jG6UmY25TymNzjypjfkEiY4otRmOnpSpjr6UuY7ZmqmO6fWpjvlNGY8oj5mPSIuZj8jpSY/ZZPmP6P/JkD6UyZBZbdmQnpTZkKl3uZDIlhmRCOYJkS6U6ZE4nsmRTpT5kY6VCZHelSmR7pU5kg6VWZIelRmSTpVJkoitmZLOlWmS7pV5k96ViZPulZmULpWplF6VyZSelbmUvpXplM6WGZUOldmVHpX5lS6WCZVelimVeLwJmWjvGZl+ljmZjpZJmZjYGZpellmaiKXZmslG6Zrelmma7pZ5mzknmZtJPpmbzpaJnBlJ2ZxJHKmcWJd5nGi+yZyIvtmdCSk5nR6W2Z0ovumdWJ7ZnY6WyZ2+lqmd3pa5nf6WmZ4ul3me3pbpnu6W+Z8elwmfLpcZn46XOZ++lymf+PeJoB6XSaBel2mg6LUpoP6XWaEpGbmhOMsZoZ6XiaKJHLmivpeZowk6uaN+l6mj7pgJpA6X2aQul8mkPpfppF6XuaTemCmlXpgZpX6YSaWovBmlvpg5pf6YWaYumGmmTpiJpl6YeaaemJmmrpi5pr6YqaqI2cmq3pjJqw6Y2auIpbmrzpjprA6Y+axJCRms/pkJrR6ZGa0+mSmtTpk5rYjYKa3umUmt/plZri6Zaa4+mXmubpmJrqlK+a6+mamu2VRZru6Zua7+mZmvHpnZr06Zya9+memvvpn5sG6aCbGOmhmxrpopsf6aObIumkmyPppZsl6aabJ+mnmyjpqJsp6ambKumqmy7pq5sv6aybMZ9UmzLprZs74vabPItTm0GKQJtCjbCbQ+mvm0TprptFlqObTemxm07psptP6bCbUemzm1SWgptY6bSbWoubm2+YRJt06bWbg+m3m46IvJuR6bibkpWpm5PptpuW6bmbl+m6m5/pu5ug6bybqOm9m6qWjpurjkybrY34m66RTpu06b6buenBm8Dpv5vG6cKbyYzvm8rpwJvP6cOb0enEm9LpxZvU6cmb1o5Jm9uR4pvh6cqb4unHm+Ppxpvk6cib6Ix+m/Dpzpvx6c2b8unMm/WIsZwE6dicBunUnAjp1ZwJ6dGcCunXnAzp05wNioKcEJhrnBLp1pwT6dKcFOnQnBXpz5wb6dqcIendnCTp3Jwl6ducLZVonC7p2ZwviPGcMOnenDLp4Jw5io+cOunLnDuJVpw+6eKcRunhnEfp35xIkkycUpaQnFeX2Jxa6eOcYOnknGfp5Zx26eaceOnnnOWSuZzn6eic6ZS1nOvp7Zzs6emc8OnqnPOWUJz0lsKc9pPOnQPp7p0G6e+dB5O8nQjp7J0J6eudDomonRLp950V6fadG4mVnR/p9J0j6fOdJunxnSiKm50q6fCdK46wnSyJp507jYOdPun6nT/p+Z1B6fidROn1nUbp+51I6fydUOpEnVHqQ51Z6kWdXIlMnV3qQJ1e6kGdYI2UnWGWt51k6kKdbJZRnW/qSp1y6kadeupLnYfqSJ2J6kedj4x7nZrqTJ2k6k2dqepOnavqSZ2v6fKdsupPnbSS35246lOduupUnbvqUp3B6lGdwupXncTqUJ3G6lWdz+pWndPqWZ3Z6lid5upbne3qXJ3v6l2d8phonfjqWp35kemd+o3rnf3qXp4a6l+eG+pgnh7qYZ516mKeeIyynnnqY5596mSef46tnoHqZZ6I6maei+pnnozqaJ6R6muekuppnpOYW56V6mqel5ftnp3qbJ6fl9mepeptnqaUnp6p6m6equpwnq3qcZ646m+euY2NnrqWy567loOevJv1nr6fgJ6/lpuexImpnszqc57Ni2+ezup0ns/qdZ7Q6nae0o2VntTqd57Y4NKe2ZbZntuR4Z7c6nie3ep6nt7qeZ7g6nue5ep8nujqfZ7v6n6e9OqAnvbqgZ736oKe+eqDnvvqhJ786oWe/eqGnwfqh58I6oifDpNDnxOM258V6oqfIJFsnyHqi58s6oyfO5VAnz7qjZ9K6o6fS+JWn07m2J9P6OufUuqPn1TqkJ9f6pKfYOqTn2HqlJ9il+6fY+qRn2bqlZ9n6pafauqYn2zql59y6pqfduqbn3fqmZ+Nl7Sfleqcn5zqnZ+d4nOfoOqe/wGBSf8DgZT/BIGQ/wWBk/8GgZX/CIFp/wmBav8KgZb/C4F7/wyBQ/8OgUT/D4Fe/xCCT/8RglD/EoJR/xOCUv8UglP/FYJU/xaCVf8Xglb/GIJX/xmCWP8agUb/G4FH/xyBg/8dgYH/HoGE/x+BSP8ggZf/IYJg/yKCYf8jgmL/JIJj/yWCZP8mgmX/J4Jm/yiCZ/8pgmj/KoJp/yuCav8sgmv/LYJs/y6Cbf8vgm7/MIJv/zGCcP8ygnH/M4Jy/zSCc/81gnT/NoJ1/zeCdv84gnf/OYJ4/zqCef87gW3/PIFf/z2Bbv8+gU//P4FR/0CBTf9BgoH/QoKC/0OCg/9EgoT/RYKF/0aChv9Hgof/SIKI/0mCif9Kgor/S4KL/0yCjP9Ngo3/ToKO/0+Cj/9QgpD/UYKR/1KCkv9TgpP/VIKU/1WClf9Wgpb/V4KX/1iCmP9Zgpn/WoKa/1uBb/9cgWL/XYFw/2EAof9iAKL/YwCj/2QApP9lAKX/ZgCm/2cAp/9oAKj/aQCp/2oAqv9rAKv/bACs/20Arf9uAK7/bwCv/3AAsP9xALH/cgCy/3MAs/90ALT/dQC1/3YAtv93ALf/eAC4/3kAuf96ALr/ewC7/3wAvP99AL3/fgC+/38Av/+AAMD/gQDB/4IAwv+DAMP/hADE/4UAxf+GAMb/hwDH/4gAyP+JAMn/igDK/4sAy/+MAMz/jQDN/44Azv+PAM//kADQ/5EA0f+SANL/kwDT/5QA1P+VANX/lgDW/5cA1/+YANj/mQDZ/5oA2v+bANv/nADc/50A3f+eAN7/nwDf/+OBUP/lgY8=",7070);const rt={shape:K.square,qrOptions:{typeNumber:O[0],errorCorrectionLevel:w.Q},cornersSquareOptions:{type:z.square},cornersDotOptions:{type:E.square},dotsOptions:{type:N.square}},st={shape:K.square,qrOptions:{typeNumber:O[0],mode:void 0,errorCorrectionLevel:w.Q},imageOptions:{mode:H.center,imageSize:.4,crossOrigin:void 0,margin:0,fill:{color:"rgba(255,255,255,1)"}},cornersSquareOptions:{type:z.dot,color:"#000000"},cornersDotOptions:{type:E.dot,color:"#000000"},dotsOptions:{type:N.verticalLine,color:"#000000",size:10},backgroundOptions:{color:"#FFFFFF"}},at={...st,dotsOptions:{...st.dotsOptions,type:N.rounded},cornersSquareOptions:{type:z.dot,color:"#000000"},cornersDotOptions:{type:E.dot,color:"#000000"}},lt={...st,dotsOptions:{...st.dotsOptions,type:N.dot},cornersSquareOptions:{type:z.dot,color:"#000000"},cornersDotOptions:{type:E.dot,color:"#000000"}},dt={...st,dotsOptions:{...st.dotsOptions,type:N.classy},cornersSquareOptions:{type:z.classy,color:"#000000"},cornersDotOptions:{type:E.classy,color:"#000000"}},ht={plain:rt,basic:st,rounded:at,dots:lt,classy:dt},ct=t=>"number"==typeof t&&!isNaN(t)&&isFinite(t),ut=(t,e)=>{const i=[];return Object.values(U).includes(t.type)||i.push({path:`${e}.type`,message:`Invalid gradient type. Must be one of: ${Object.values(U).join(", ")}`,value:t.type}),void 0===t.rotation||ct(t.rotation)||i.push({path:`${e}.rotation`,message:"Rotation must be a valid number",value:t.rotation}),!t.colorStops||!Array.isArray(t.colorStops)||t.colorStops.length<2?i.push({path:`${e}.colorStops`,message:"Gradient must have at least 2 color stops",value:t.colorStops}):t.colorStops.forEach(((t,o)=>{(!ct(t.offset)||t.offset<0||t.offset>1)&&i.push({path:`${e}.colorStops[${o}].offset`,message:"Color stop offset must be between 0 and 1",value:t.offset}),(t=>{if(new Set(["black","white","red","green","blue","yellow","purple","gray","grey","cyan","magenta","lime","pink","teal","brown","orange"]).has(t.toLowerCase()))return!0;if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(t))return!0;if(/^#([A-Fa-f0-9]{4}){1,2}$/.test(t))return!0;if(/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/.test(t)||/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([01]?\.?\d*)\)$/.test(t))return(t.match(/\d+/g)?.map(Number)||[]).every((t=>t>=0&&t<=255));return!1})(t.color)||i.push({path:`${e}.colorStops[${o}].color`,message:"Invalid color format",value:t.color})})),i};function mt(t){const e=[];let i={...st};return t.data&&"string"==typeof t.data||e.push({path:"data",message:"QR data is required and must be a string",value:t.data}),t.shape&&!Object.values(K).includes(t.shape)&&(e.push({path:"shape",message:`Invalid shape type. Must be one of: ${Object.values(K).join(", ")}`,value:t.shape}),t.shape=st.shape),t.qrOptions&&(t.qrOptions.typeNumber&&!Object.values(O).includes(t.qrOptions.typeNumber)&&(e.push({path:"qrOptions.typeNumber",message:"Invalid type number",value:t.qrOptions.typeNumber}),t.qrOptions.typeNumber=st.qrOptions?.typeNumber),t.qrOptions.errorCorrectionLevel&&!Object.values(w).includes(t.qrOptions.errorCorrectionLevel)&&(e.push({path:"qrOptions.errorCorrectionLevel",message:"Invalid error correction level",value:t.qrOptions.errorCorrectionLevel}),t.qrOptions.errorCorrectionLevel=st.qrOptions?.errorCorrectionLevel),t.qrOptions.mode&&!Object.values(y).includes(t.qrOptions.mode)&&(e.push({path:"qrOptions.mode",message:"Invalid mode",value:t.qrOptions.mode}),t.qrOptions.mode=st.qrOptions?.mode)),t.imageOptions&&(t.imageOptions.imageSize&&(!ct(t.imageOptions.imageSize)||t.imageOptions.imageSize<=0||t.imageOptions.imageSize>1)&&(e.push({path:"imageOptions.imageSize",message:"Image size must be between 0 and 1",value:t.imageOptions.imageSize}),t.imageOptions.imageSize=st.imageOptions?.imageSize),t.imageOptions.margin&&(!ct(t.imageOptions.margin)||t.imageOptions.margin<0)&&(e.push({path:"imageOptions.margin",message:"Margin must be a non-negative number",value:t.imageOptions.margin}),t.imageOptions.margin=st.imageOptions?.margin),t.imageOptions.mode&&!Object.values(H).includes(t.imageOptions.mode)&&(e.push({path:"imageOptions.mode",message:`Invalid image mode. Must be one of: ${Object.values(H).join(", ")}`,value:t.imageOptions.mode}),t.imageOptions.mode=st.imageOptions?.mode)),t.dotsOptions&&(t.dotsOptions.type&&!Object.values(N).includes(t.dotsOptions.type)&&(e.push({path:"dotsOptions.type",message:`Invalid dot type. Must be one of: ${Object.values(N).join(", ")}`,value:t.dotsOptions.type}),t.dotsOptions.type=st.dotsOptions?.type),t.dotsOptions.size&&(!ct(t.dotsOptions.size)||t.dotsOptions.size<=0)&&(e.push({path:"dotsOptions.size",message:"Dot size must be a positive number",value:t.dotsOptions.size}),t.dotsOptions.size=st.dotsOptions?.size),t.dotsOptions.gradient&&e.push(...ut(t.dotsOptions.gradient,"dotsOptions.gradient"))),t.cornersSquareOptions&&(t.cornersSquareOptions.type&&!Object.values(z).includes(t.cornersSquareOptions.type)&&(e.push({path:"cornersSquareOptions.type",message:`Invalid corner square type. Must be one of: ${Object.values(z).join(", ")}`,value:t.cornersSquareOptions.type}),t.cornersSquareOptions.type=st.cornersSquareOptions?.type),t.cornersSquareOptions.gradient&&e.push(...ut(t.cornersSquareOptions.gradient,"cornersSquareOptions.gradient"))),t.cornersDotOptions&&(t.cornersDotOptions.type&&!Object.values(E).includes(t.cornersDotOptions.type)&&(e.push({path:"cornersDotOptions.type",message:`Invalid corner dot type. Must be one of: ${Object.values(E).join(", ")}`,value:t.cornersDotOptions.type}),t.cornersDotOptions.type=st.cornersDotOptions?.type),t.cornersDotOptions.gradient&&e.push(...ut(t.cornersDotOptions.gradient,"cornersDotOptions.gradient"))),i={...i,...t},{warnings:e,validatedOptions:i}}const pt={classic:{primaryColor:"#000000",secondaryColor:"#000000",thirdColor:"#757575",backgroundColor:"#ffffff",dotShape:N.square,cornerSquareShape:z.square,cornerDotShape:E.square},modern:{primaryColor:"#4CAF50",secondaryColor:"#007fff",thirdColor:"#d81b60",backgroundColor:"#ffffff",dotShape:N.dot,cornerSquareShape:z.rounded,cornerDotShape:E.dot},rounded:{primaryColor:"#007bff",secondaryColor:"#4CAF50",thirdColor:"#d32f2f",backgroundColor:"#ffffff",dotShape:N.rounded,cornerSquareShape:z.rounded,cornerDotShape:E.dot},vibrant:{primaryColor:"#ff5722",secondaryColor:"#3f51b5",thirdColor:"#2e7d32",backgroundColor:"#ffffff",dotShape:N.rounded,cornerSquareShape:z.rounded,cornerDotShape:E.dot},pastel:{primaryColor:"#f8bbd0",secondaryColor:"#b2ebf2",thirdColor:"#00695c",backgroundColor:"#f5f5f5",dotShape:N.dot,cornerSquareShape:z.square,cornerDotShape:E.square},neon:{primaryColor:"#00e676",secondaryColor:"#ff1744",thirdColor:"#0288d1",backgroundColor:"#212121",dotShape:N.rounded,cornerSquareShape:z.rounded,cornerDotShape:E.dot},earthy:{primaryColor:"#795548",secondaryColor:"#4db6ac",thirdColor:"#8e24aa",backgroundColor:"#efebe9",dotShape:N.square,cornerSquareShape:z.square,cornerDotShape:E.square},sunset:{primaryColor:"#bf360c",secondaryColor:"#ab47bc",thirdColor:"#00796b",backgroundColor:"#fff3e0",dotShape:N.dot,cornerSquareShape:z.rounded,cornerDotShape:E.dot},oceanic:{primaryColor:"#0288d1",secondaryColor:"#26a69a",thirdColor:"#6a1b9a",backgroundColor:"#e0f7fa",dotShape:N.rounded,cornerSquareShape:z.square,cornerDotShape:E.dot},bold:{primaryColor:"#d50000",secondaryColor:"#6200ea",thirdColor:"#388e3c",backgroundColor:"#fafafa",dotShape:N.square,cornerSquareShape:z.rounded,cornerDotShape:E.square},limeGlow:{primaryColor:"#afb42b",secondaryColor:"#536dfe",thirdColor:"#c62828",backgroundColor:"#fffde7",dotShape:N.dot,cornerSquareShape:z.rounded,cornerDotShape:E.dot},twilight:{primaryColor:"#4527a0",secondaryColor:"#d84315",thirdColor:"#00796b",backgroundColor:"#eceff1",dotShape:N.rounded,cornerSquareShape:z.rounded,cornerDotShape:E.dot},meadow:{primaryColor:"#388e3c",secondaryColor:"#689f38",thirdColor:"#ad1457",backgroundColor:"#f1f8e9",dotShape:N.dot,cornerSquareShape:z.square,cornerDotShape:E.square},coral:{primaryColor:"#c2185b",secondaryColor:"#00838f",thirdColor:"#f57f17",backgroundColor:"#ffebee",dotShape:N.rounded,cornerSquareShape:z.rounded,cornerDotShape:E.dot},midnight:{primaryColor:"#5c6bc0",secondaryColor:"#fbc02d",thirdColor:"#00695c",backgroundColor:"#263238",dotShape:N.square,cornerSquareShape:z.square,cornerDotShape:E.square},citrus:{primaryColor:"#f57c00",secondaryColor:"#558b2f",thirdColor:"#6d4c41",backgroundColor:"#fff8e1",dotShape:N.dot,cornerSquareShape:z.rounded,cornerDotShape:E.dot},dusk:{primaryColor:"#6a1b9a",secondaryColor:"#e65100",thirdColor:"#2e7d32",backgroundColor:"#d7ccc8",dotShape:N.rounded,cornerSquareShape:z.square,cornerDotShape:E.dot},frost:{primaryColor:"#0277bd",secondaryColor:"#37474f",thirdColor:"#c2185b",backgroundColor:"#e1f5fe",dotShape:N.dot,cornerSquareShape:z.rounded,cornerDotShape:E.square},autumn:{primaryColor:"#d84315",secondaryColor:"#827717",thirdColor:"#4a148c",backgroundColor:"#efebe9",dotShape:N.square,cornerSquareShape:z.rounded,cornerDotShape:E.dot}},gt=/\.?0+$/;function ft(t){return t.toFixed(7).replace(gt,"")}function bt(t,...e){return t.reduce(((t,i,o)=>{let n="";return o&&(n=e[o-1]),"number"==typeof n&&(n=ft(n)),`${t}${n}${i}`}),"").trim().replace(/[\s\n\r]+/gim," ")}class kt{get element(){return this._element}constructor(t,e){this.type=t,this.document=e}draw(t){let e;switch(this.type){case E.square:e=this.drawSquare;break;case E.heart:e=this.drawHeart;break;case E.rounded:e=this.drawRounded;break;case E.classy:e=this.drawClassy;break;case E.inpoint:e=this.drawInpoint;break;case E.outpoint:e=this.drawOutpoint;break;case E.dot:default:e=this.drawDot}e.call(this,t)}rotateFigure({x:t,y:e,size:i,rotation:o=0,draw:n}){const r=t+i/2,s=e+i/2;n(),this._element?.setAttribute("transform",`rotate(${ft(180*o/Math.PI)},${r},${s})`)}basicDot(t){const{size:e,x:i,y:o}=t;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",ft(i+e/2)),this._element.setAttribute("cy",ft(o+e/2)),this._element.setAttribute("r",ft(e/2.1))}})}basicSquare(t){const{size:e,x:i,y:o}=t,n=e/11;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",ft(i+n)),this._element.setAttribute("y",ft(o+n)),this._element.setAttribute("width",ft(e-2*n)),this._element.setAttribute("height",ft(e-2*n))}})}basicHeart(t){const{size:e,x:i,y:o}=t;this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path");let n=!1,r=0;this._element.setAttribute("d",["M",1,.3262506,"c",0,.0383376,-.0064626,.0758377,-.0193751,.1125001,"s",-.0356247,.076875,-.0681248,.1206252,"c",-.0325,.0437499,-.0762503,.0931247,-.1312501,.1481249,"C",.7262502,.7625008,.6566626,.8279132,.5724999,.9037505,"L",.5,.9687506,"L",.4275001,.9037505,"C",.3433374,.8279132,.2737499,.7625005,.21875,.7075007,"C",.1637501,.6525008,.1199999,.6031258,.0874999,.5593758,"S",.0322876,.4754133,.0193751,.4387506,"S",0,.3645881,0,.3262506,"c",0,-.0783374,.0262499,-.1437498,.07875,-.1962499,"s",.1179124,-.07875,.1962499,-.07875,"c",.0433376,0,.0845875,.0091625,.12375,.0274999,"S",.4716623,.1229131,.5,.1562506,"c",.0283374,-.0333375,.0620874,-.0591625,.1012502,-.0775,"c",.0391627,-.0183375,.0804126,-.0274999,.12375,-.0274999,"c",.0783374,0,.1437497,.0262499,.1962501,.07875,"S",1,.2479131,1,.3262506,"z"].map((t=>"string"==typeof t?(r=0,n=t.toUpperCase()==t,t):(r++,t*=e,n&&(t+=r%2==1?i:o),ft(t)))).join(" "))}basicRounded(t){const{size:e,x:i,y:o}=t;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",ft(i)),this._element.setAttribute("y",ft(o)),this._element.setAttribute("width",ft(e)),this._element.setAttribute("height",ft(e)),this._element.setAttribute("rx",ft(e/4)),this._element.setAttribute("ry",ft(e/4))}})}basicClassy(t){const{size:e,x:i,y:o}=t,n=e/7;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",bt`M ${i} ${o+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${4.5*n} v ${-4.5*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} H ${i} z`)}})}basicInpoint(t){const{size:e,x:i,y:o}=t,n=e;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",bt`M ${i} ${o+n/2} v ${n/4} a ${n/4}, ${n/4} 0 0 0 ${n/4}, ${n/4} h ${n/4*3} v ${-n/4*3} a ${n/4}, ${n/4} 0 0 0 ${-n/4}, ${-n/4} h ${-n/2} a ${n/4}, ${n/4} 0 0 0 ${-n/4}, ${n/4} z`)}})}drawDot({x:t,y:e,size:i,rotation:o}){this.basicDot({x:t,y:e,size:i,rotation:o})}drawSquare({x:t,y:e,size:i,rotation:o}){this.basicSquare({x:t,y:e,size:i,rotation:o})}drawHeart({x:t,y:e,size:i,rotation:o}){this.basicHeart({x:t,y:e,size:i,rotation:o})}drawRounded({x:t,y:e,size:i,rotation:o}){this.basicRounded({x:t,y:e,size:i,rotation:o})}drawClassy({x:t,y:e,size:i,rotation:o}){this.basicClassy({x:t,y:e,size:i,rotation:o})}drawInpoint({x:t,y:e,size:i,rotation:o}){this.basicInpoint({x:t,y:e,size:i,rotation:o})}drawOutpoint({x:t,y:e,size:i,rotation:o}){this.basicInpoint({x:t,y:e,size:i,rotation:(o||0)+Math.PI})}}class Ot{get element(){return this._element}get fill(){return this._fill}constructor(t,e){this.type=t,this.document=e}draw(t){let e;switch(this.type){case z.square:e=this.drawSquare;break;case z.rounded:e=this.drawExtraRounded;break;case z.classy:e=this.drawClassy;break;case z.outpoint:e=this.drawOutpoint;break;case z.inpoint:e=this.drawInpoint;break;case z.dot:default:e=this.drawDot}e.call(this,t)}rotateFigure({x:t,y:e,size:i,rotation:o=0,draw:n}){const r=t+i/2,s=e+i/2;n(),this._element?.setAttribute("transform",`rotate(${ft(180*o/Math.PI)},${r},${s})`),this._fill?.setAttribute("transform",`rotate(${ft(180*o/Math.PI)},${r},${s})`)}basicDot(t){const{size:e,x:i,y:o}=t,n=e/8,r=.5*e,s=r-n;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",bt`M ${i+e/2} ${o+(e/2-r)} a ${r} ${r} 0 1 0 0.1 0 z m 0 ${n} a ${s} ${s} 0 1 1 -0.1 0 Z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",bt`M ${i+e/2} ${o+(e/2-(r+n))} a ${r+n} ${r+n} 0 1 0 0.1 0 z`)}})}basicSquare(t){const{size:e,x:i,y:o}=t,n=e/7;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",bt`M ${i} ${o} v ${e} h ${e} v ${-e} z M ${i+n} ${o+n} h ${e-2*n} v ${e-2*n} h ${2*n-e} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",bt`M ${i-n} ${o-n} h ${e+2*n} v ${e+2*n} h ${-e-2*n} z`)}})}basicExtraRounded(t){const{size:e,x:i,y:o}=t,n=e/7;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",bt`M ${i} ${o+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*-n} v ${-2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*n} z M ${i+2.5*n} ${o+n} h ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n} v ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*n} h ${-2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n} v ${-2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*-n} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",bt`M ${i-n} ${o+2.5*n} v ${2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*n} ${3.5*n} h ${2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*n} ${3.5*-n} v ${-2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*-n} ${3.5*-n} h ${-2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*-n} ${3.5*n} z`)}})}basicClassy(t){const{size:e,x:i,y:o}=t,n=e/7;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",bt`M ${i} ${o+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${4.5*n} v ${-4.5*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} H ${i} z M ${i+2.5*n} ${o+n} h ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n} v ${3.5*n} h ${-3.5*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n} v ${-3.5*n} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",bt`M ${i+.5*n} ${o-n} h ${4*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*n} ${3.5*n} v ${5.5*n} h ${-5.5*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*-n} ${3.5*-n} v ${-5.5*n} z`)}})}basicInpoint(t){const{size:e,x:i,y:o}=t,n=e/7;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",bt`M ${i} ${o+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${4.5*n} v ${-4.5*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*n} z M ${i+2.5*n} ${o+n} h ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n} v ${3.5*n} h ${-3.5*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n} v ${-2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*-n} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",bt`M ${i+.5*n} ${o-n} h ${4*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*n} ${3.5*n} v ${5.5*n} h ${-5.5*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*-n} ${3.5*-n} v ${-2*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*n} ${3.5*-n} z`)}})}drawDot({x:t,y:e,size:i,rotation:o}){this.basicDot({x:t,y:e,size:i,rotation:o})}drawSquare({x:t,y:e,size:i,rotation:o}){this.basicSquare({x:t,y:e,size:i,rotation:o})}drawExtraRounded({x:t,y:e,size:i,rotation:o}){this.basicExtraRounded({x:t,y:e,size:i,rotation:o})}drawClassy({x:t,y:e,size:i,rotation:o}){this.basicClassy({x:t,y:e,size:i,rotation:o})}drawInpoint({x:t,y:e,size:i,rotation:o}){this.basicInpoint({x:t,y:e,size:i,rotation:o})}drawOutpoint({x:t,y:e,size:i,rotation:o}){this.basicInpoint({x:t,y:e,size:i,rotation:(o||0)+Math.PI})}}class wt{get element(){return this._element}constructor(t,e){this.type=t,this.document=e}draw(t){let e;switch(this.type){case N.dot:e=this.drawDot;break;case N.randomDot:e=this.drawRandomDot;break;case N.classy:e=this.drawClassy;break;case N.classyRounded:e=this.drawClassyRounded;break;case N.rounded:e=this.drawRounded;break;case N.verticalLine:e=this.drawVerticalLine;break;case N.horizontalLine:e=this.drawHorizontalLine;break;case N.extraRounded:e=this.drawExtraRounded;break;case N.diamond:e=this.drawDiamond;break;case N.smallSquare:e=this.drawSmallSquare;break;case N.tinySquare:e=this.drawTinySquare;break;case N.star:e=this.drawStar;break;case N.plus:e=this.drawPlus;break;case N.square:default:e=this.drawSquare}e.call(this,t)}rotateFigure({x:t,y:e,size:i,rotation:o=0,draw:n}){const r=t+i/2,s=e+i/2;n(),this._element?.setAttribute("transform",`rotate(${ft(180*o/Math.PI)},${r},${s})`)}basicDot(t){const{size:e,x:i,y:o}=t;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",ft(i+e/2)),this._element.setAttribute("cy",ft(o+e/2)),this._element.setAttribute("r",ft(e/2))}})}basicSquare(t){const{size:e,x:i,y:o}=t;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",ft(i)),this._element.setAttribute("y",ft(o)),this._element.setAttribute("width",ft(e)),this._element.setAttribute("height",ft(e))}})}basicSideRounded(t){const{size:e,x:i,y:o}=t;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",bt`M ${i} ${o} v ${e} h ${e/2} a ${e/2} ${e/2}, 0, 0, 0, 0 ${-e} z`)}})}basicCornerRounded(t){const{size:e,x:i,y:o}=t;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",bt`M ${i} ${o} v ${e} h ${e} v ${-e/2} a ${e/2} ${e/2}, 0, 0, 0, ${-e/2} ${-e/2} z`)}})}basicCornerExtraRounded(t){const{size:e,x:i,y:o}=t;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",bt`M ${i} ${o} v ${e} h ${e} a ${e} ${e}, 0, 0, 0, ${-e} ${-e} z`)}})}basicCornersRounded(t){const{size:e,x:i,y:o}=t;this.rotateFigure({...t,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",bt`M ${i} ${o} v ${e/2} a ${e/2} ${e/2}, 0, 0, 0, ${e/2} ${e/2} h ${e/2} v ${-e/2} a ${e/2} ${e/2}, 0, 0, 0, ${-e/2} ${-e/2} z`)}})}drawDot({x:t,y:e,size:i}){this.basicDot({x:t,y:e,size:i,rotation:0})}drawRandomDot({x:t,y:e,size:i}){const o=.25*Math.random()+.75;this.basicDot({x:t,y:e,size:i*o,rotation:0})}drawSquare({x:t,y:e,size:i}){this.basicSquare({x:t,y:e,size:i,rotation:0})}drawSmallSquare({x:t,y:e,size:i}){const o=i;i=.7*o,t+=.15*o,e+=.15*o,this.basicSquare({x:t,y:e,size:i,rotation:0})}drawTinySquare({x:t,y:e,size:i}){const o=i;i=.6*o,t+=.35*o,e+=.35*o,this.basicSquare({x:t,y:e,size:i,rotation:0})}drawDiamond({x:t,y:e,size:i}){this.basicSquare({x:t,y:e,size:i,rotation:Math.PI/4})}drawRounded({x:t,y:e,size:i,getNeighbor:o}){const n=o?+o(-1,0):0,r=o?+o(1,0):0,s=o?+o(0,-1):0,a=o?+o(0,1):0,l=n+r+s+a;if(0!==l)if(l>2||n&&r||s&&a)this.basicSquare({x:t,y:e,size:i,rotation:0});else{if(2===l){let o=0;return n&&s?o=Math.PI/2:s&&r?o=Math.PI:r&&a&&(o=-Math.PI/2),void this.basicCornerRounded({x:t,y:e,size:i,rotation:o})}if(1===l){let o=0;return s?o=Math.PI/2:r?o=Math.PI:a&&(o=-Math.PI/2),void this.basicSideRounded({x:t,y:e,size:i,rotation:o})}}else this.basicDot({x:t,y:e,size:i,rotation:0})}drawVerticalLine({x:t,y:e,size:i,getNeighbor:o}){const n=o?+o(-1,0):0,r=o?+o(1,0):0,s=o?+o(0,-1):0,a=o?+o(0,1):0;if(0===n+r+s+a||n&&!s&&!a||r&&!s&&!a)this.basicDot({x:t,y:e,size:i,rotation:0});else if(s&&a)this.basicSquare({x:t,y:e,size:i,rotation:0});else if(!s||a)if(!a||s);else{const o=-Math.PI/2;this.basicSideRounded({x:t,y:e,size:i,rotation:o})}else{const o=Math.PI/2;this.basicSideRounded({x:t,y:e,size:i,rotation:o})}}drawHorizontalLine({x:t,y:e,size:i,getNeighbor:o}){const n=o?+o(-1,0):0,r=o?+o(1,0):0,s=o?+o(0,-1):0,a=o?+o(0,1):0;if(0===n+r+s+a||s&&!n&&!r||a&&!n&&!r)this.basicDot({x:t,y:e,size:i,rotation:0});else if(n&&r)this.basicSquare({x:t,y:e,size:i,rotation:0});else if(!n||r)if(!r||n);else{const o=Math.PI;this.basicSideRounded({x:t,y:e,size:i,rotation:o})}else{const o=0;this.basicSideRounded({x:t,y:e,size:i,rotation:o})}}drawExtraRounded({x:t,y:e,size:i,getNeighbor:o}){const n=o?+o(-1,0):0,r=o?+o(1,0):0,s=o?+o(0,-1):0,a=o?+o(0,1):0,l=n+r+s+a;if(0!==l)if(l>2||n&&r||s&&a)this.basicSquare({x:t,y:e,size:i,rotation:0});else{if(2===l){let o=0;return n&&s?o=Math.PI/2:s&&r?o=Math.PI:r&&a&&(o=-Math.PI/2),void this.basicCornerExtraRounded({x:t,y:e,size:i,rotation:o})}if(1===l){let o=0;return s?o=Math.PI/2:r?o=Math.PI:a&&(o=-Math.PI/2),void this.basicSideRounded({x:t,y:e,size:i,rotation:o})}}else this.basicDot({x:t,y:e,size:i,rotation:0})}drawClassy({x:t,y:e,size:i,getNeighbor:o}){const n=o?+o(-1,0):0,r=o?+o(1,0):0,s=o?+o(0,-1):0,a=o?+o(0,1):0;0!==n+r+s+a?n||s?r||a?this.basicSquare({x:t,y:e,size:i,rotation:0}):this.basicCornerRounded({x:t,y:e,size:i,rotation:Math.PI/2}):this.basicCornerRounded({x:t,y:e,size:i,rotation:-Math.PI/2}):this.basicCornersRounded({x:t,y:e,size:i,rotation:Math.PI/2})}drawClassyRounded({x:t,y:e,size:i,getNeighbor:o}){const n=o?+o(-1,0):0,r=o?+o(1,0):0,s=o?+o(0,-1):0,a=o?+o(0,1):0;0!==n+r+s+a?n||s?r||a?this.basicSquare({x:t,y:e,size:i,rotation:0}):this.basicCornerExtraRounded({x:t,y:e,size:i,rotation:Math.PI/2}):this.basicCornerExtraRounded({x:t,y:e,size:i,rotation:-Math.PI/2}):this.basicCornersRounded({x:t,y:e,size:i,rotation:Math.PI/2})}drawStar({x:t,y:e,size:i}){this.rotateFigure({x:t,y:e,size:i,rotation:0,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path");const o=t+i/2,n=e+i/2,r=1.3*i/2,s=.5*r;let a="";for(let t=0;t<10;t++){const e=t*Math.PI/5-Math.PI/2,i=t%2==0?r:s;a+=(0===t?"M":"L")+`${o+i*Math.cos(e)},${n+i*Math.sin(e)}`}a+="Z",this._element?.setAttribute("d",a)}})}drawPlus({x:t,y:e,size:i}){this.rotateFigure({x:t,y:e,size:i,rotation:0,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path");const o=.35*i,n=.85*i,r=(i-n)/2,s=o/2,a=[`M ${t+i/2-s} ${e+r}`,`h ${o}`,`v ${n}`,"h "+-o,"z",`M ${t+r} ${e+i/2-s}`,`h ${n}`,`v ${o}`,"h "+-n,"z"].join(" ");this._element?.setAttribute("d",a)}})}}const yt={toDataURL:t=>"string"==typeof t&&t.startsWith("data:")?Promise.resolve(t):new Promise(((e,i)=>{if("string"==typeof t){const o=new XMLHttpRequest,n=()=>{o.abort()};o.onload=()=>{if(o.status<200||o.status>=300)return n(),void i(new Error(`Failed to load image: ${o.statusText}`));const t=new FileReader;t.onloadend=()=>{n(),e(t.result)},t.onerror=()=>{n(),i(new Error("Failed to read image blob"))},t.readAsDataURL(o.response)},o.onerror=o.ontimeout=o.onabort=()=>{n(),i(new Error("Image load aborted or failed"))};try{o.open("GET",t,!0),o.responseType="blob",o.timeout=1e4,o.send()}catch(t){n(),i(t)}}else{const o=new FileReader;o.onloadend=()=>{e(o.result)},o.onerror=()=>{i(new Error("Failed to read local image"))},o.readAsDataURL(t)}})).catch((t=>(console.error("Image loading error:",t),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjY2NjIi8+PHRleHQgeD0iNTAlIiB5PSI1MCUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDAiIGZvbnQtc2l6ZT0iMTYiPkxvZ28gbG9hZCBlcnJvcjwvdGV4dD48L3N2Zz4="))),getSize:(t,e)=>new Promise(((i,o)=>{const n=new Image,r=setTimeout((()=>{o(new Error("Image loading timed out"))}),15e3);"string"==typeof e&&(n.crossOrigin=e);const s=()=>{clearTimeout(r),n.onload=n.onerror=n.onabort=null,n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="};n.onload=()=>{s(),i({width:n.width,height:n.height})},n.onerror=n.onabort=()=>{s(),o(new Error("Failed to load image"))};try{"string"==typeof t?n.src=t:yt.toDataURL(t).then((t=>{t?n.src=t:o(new Error("Invalid image source"))})).catch(o)}catch(t){s(),o(t)}})).catch((t=>(console.error("Image size detection error:",t),{width:200,height:200})))};function Zt(t){let e,i=[],o=1;if("#"===(t=t.toLowerCase())[0]){const e=t.slice(1),n=e.length;n<=4?(i=[parseInt(e[0]+e[0],16),parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16)],4===n&&(o=parseInt(e[3]+e[3],16)/255)):(i=[parseInt(e[0]+e[1],16),parseInt(e[2]+e[3],16),parseInt(e[4]+e[5],16)],8===n&&(o=parseInt(e[6]+e[7],16)/255)),i[0]||(i[0]=0),i[1]||(i[1]=0),i[2]||(i[2]=0)}else{if(!(e=/^((?:rgba?))\s*\(([^)]*)\)/.exec(t)))return{value:t,alpha:o};{const t=3;i=e[2].trim().split(/\s*[,/]\s*|\s+/),i=i.map(((t,e)=>{if("%"===t[t.length-1]){const i=parseFloat(t)/100;return 3===e?i:255*i}return"none"===t?0:parseFloat(t)})),o=i.length>t?i.pop():1}}return{value:"#"+i.map((t=>Math.max(0,Math.min(255,t)).toString(16).padStart(2,"0"))).join(""),alpha:Math.max(0,Math.min(1,o))}}const St=[[1,1,1,1,1,1,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,1,1,1,1,1,1]],At=[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]];class Ct{constructor(t){this.roundValue=t=>"number"==typeof t?t:parseInt(t.replace("%",""),10)/100;const e=t.margin||0,i="circle"===t.shape?.1:.3,{bordersMain:o,bordersOuter:n,bordersInner:r}=t,s=Math.min(t.width,t.height),a=T(t.borderOptions?.radius),l=T(t.borderOptions?.inner?.radius,a),d=a&&J(a)>0?J(a)/100*s:0,h=(a&&J(l)>0?J(l)/100*s:0)??d,c=h>0&&t.borderOptions?.hasBorder?h*i:0;this._hls=t.hls,this.finalWidth=t.width+o.left+o.right+n.left+n.right+r.left+r.right,this.finalHeight=t.height+o.top+o.bottom+n.top+n.bottom+r.top+r.bottom;const u=o.left+o.right+n.left+n.right+r.left+r.right,m=o.top+o.bottom+n.top+n.bottom+r.top+r.bottom,p=t.borderOptions?.hasBorder?this.finalWidth-u-2*n.left-2*r.left-r.right-2*e-c:this.finalWidth-2*e,g=t.borderOptions?.hasBorder?this.finalHeight-m-2*n.top-2*r.top-r.top-2*e-c:this.finalHeight-2*e,f=p/t.width,b=g/t.height,k=Math.min(f,b),O=Math.min(Math.max(t.scale??1,0),1.5),w=Math.min(Math.max(t.borderOptions?.inner?.scale??1,0),1.5),y=t.borderOptions?.inner?.horizontalOffset||0,Z=t.borderOptions?.inner?.verticalOffset||0;t.scale=k*O*w||1,this.options=t,this.document=t.document,this.imageTools=t.imageTools||yt,this._element=this.document.createElementNS("http://www.w3.org/2000/svg","svg");const S=ft(t.width),A=ft(t.height);t.isResponsive||(this._element.setAttribute("width",S),this._element.setAttribute("height",A)),this._element.setAttribute("viewBox",`0 0 ${S} ${A}`),this.defs=this.document.createElementNS("http://www.w3.org/2000/svg","defs"),this._element.appendChild(this.defs),this._innerQrGroup=this.document.createElementNS("http://www.w3.org/2000/svg","g");let C=(p-t.width*t.scale)/2+e-y+c/2,j=(g-t.height*t.scale)/2+e-Z+c/2;if(t.borderOptions?.hasBorder){const e={top:M(t.borderOptions,"top"),right:M(t.borderOptions,"right"),bottom:R(t.borderOptions,"bottom",this._hls),left:M(t.borderOptions,"left")},i=t.borderOptions.thickness||0,o=t.borderOptions.borderOuter?.thickness||0,n=t.borderOptions.borderInner?.thickness||0,r=t.borderOptions.noBorderThickness||i/4;j+=((e.top?i:r)-(e.bottom?i:r))/2+o+n+n/2,C+=((e.left?i:r)-(e.right?i:r))/2+o+n+n/2}t.verticalOffset&&(j-=t.verticalOffset),t.horizontalOffset&&(C-=t.horizontalOffset),this._instanceId=Ct.instanceCount++,1===t.scale&&0===C&&0===j||this._innerQrGroup.setAttribute("transform",`translate(${C}, ${j}) scale(${t.scale})`),this._maskedQrGroup=this.document.createElementNS("http://www.w3.org/2000/svg","g"),this._maskedQrGroup.setAttribute("mask",`url(#qr-mask-${this._instanceId})`),this._maskedQrGroup.appendChild(this._innerQrGroup),this._element.appendChild(this._maskedQrGroup)}get element(){return this._element}get qrGroup(){return this._innerQrGroup||this._element}get width(){return this.finalWidth}get height(){return this.finalHeight}get svgSize(){return{width:this.options.width,height:this.options.height}}getElement(){return this._element}async drawQR(t){const e=t.getModuleCount(),i=parseInt(((e-17)/4).toFixed(0),10),o=this.options.dotsOptions.size;let n={hideXDots:0,hideYDots:0,width:0,height:0};if(this.qr=t,this.options.borderOptions?.hasBorder||this.drawBackground(),this.options.image){const t=await this.imageTools.getSize(this.options.image,this.options.imageOptions.crossOrigin),{imageOptions:r}=this.options;if(this.options.imageOptions.mode==H.background){const e=0,i=(this.finalWidth-2*e*o)*r.imageSize,s=(this.finalHeight-2*e*o)*r.imageSize;let{width:a,height:l}=t;l=l/a*i,a=i,l>s&&(a=a/l*s,l=s),n={hideXDots:0,hideYDots:0,width:a,height:l}}else{const r=this.options.imageOptions.imageSize*this.options.errorCorrectionPercent,s=b.getPatternPosition(i),a=Math.floor(r*(e*e-192-2*(e-16)-s.length**2*25));n=function({originalHeight:t,originalWidth:e,maxHiddenDots:i,maxHiddenAxisDots:o,dotSize:n,margin:r}){const s={x:0,y:0},a={x:0,y:0};if(t<=0||e<=0||i<=0||n<=0||4*r**2>i)return{height:0,width:0,hideYDots:0,hideXDots:0};o&&o%2==0&&(o=Math.max(1,o-1));const l=Math.max(e,t),d=Math.min(e,t);let h=0,c=(o||i)-2*r;do{const t=h+(c-h)/2;let e=Math.max(1,Math.ceil(t+2*r));e%2==0&&e++;let o=Math.max(1,Math.ceil(t*d/l+2*r));o%2==0&&o++,e*o>i?c=t:h=t}while(Math.abs(h-c)>.001);const u=h;let m=Math.max(1,Math.ceil(u+2*r));m%2==0&&m++;let p=Math.max(1,Math.ceil(u*d/l+2*r));p%2==0&&p++,e>t?(s.x=m,s.y=p):(s.x=p,s.y=m);const g=(s.x-2*r)*n,f=(s.y-2*r)*n;return a.x=g,a.y=g*t/e,a.y>f&&(a.y=f,a.x=f*e/t),{height:Math.round(a.y+2*r*n),width:Math.round(a.x+2*r*n),hideYDots:s.y,hideXDots:s.x}}({originalWidth:t.width,originalHeight:t.height,maxHiddenDots:a,maxHiddenAxisDots:e-14,dotSize:o,margin:this.options.imageOptions.margin})}}this.options.imageOptions.mode!=H.overlay&&this.options.image&&n.width>0&&n.height>0&&await this.drawImage({width:n.width,height:n.height,count:e,dotSize:o}),this.drawDots(((t,i)=>!(this.options.imageOptions.mode==H.center&&t>=(e-n.hideXDots)/2&&t<(e+n.hideXDots)/2&&i>=(e-n.hideYDots)/2&&i<(e+n.hideYDots)/2)&&!(t<8&&i<8||t>=e-8&&i<8||i>=e-8&&t<8))),this.options.imageOptions.mode==H.overlay&&this.options.image&&n.width>0&&n.height>0&&await this.drawImage({width:n.width,height:n.height,count:e,dotSize:o}),this.drawCorners()}drawBackground(){const t=this.options;if(this._element&&t.backgroundOptions){const e=t.backgroundOptions.gradient,i=t.backgroundOptions.color;this.createColor({options:e,color:i,additionalRotation:0,x:0,y:0,height:t.height,width:t.width,name:`background-color-${this._instanceId}`});const o=Math.min(t.width,t.height),n=this.document.createElementNS("http://www.w3.org/2000/svg","rect");[this.backgroundMask,this.backgroundMaskGroup]=this.createMask(`mask-background-color-${this._instanceId}`),this.defs.appendChild(this.backgroundMask);const r=t.backgroundOptions?.round||0,s=this.roundValue(r);n.setAttribute("x",ft((t.width-o)/2)),n.setAttribute("y",ft((t.height-o)/2)),n.setAttribute("width",ft(o)),n.setAttribute("height",ft(o)),n.setAttribute("rx",ft(o/2*s)),this.backgroundMaskGroup.appendChild(n)}}drawBackgroundForBorder(t,e){const i=this.options;if(i.backgroundOptions){const o=i.backgroundOptions.gradient,n=i.backgroundOptions.color||"#ffffff",r=Math.min(i.width,i.height)-2*t,s=(i.width-r)/2,a=(i.height-r)/2,l=e-t,d=this.createColor({options:o,borderOptions:i.borderOptions,color:n,additionalRotation:0,x:s,y:a,height:r,width:r,name:`background-color-${this._instanceId}`,returnSVGGroup:!0}),h=this.document.createElementNS("http://www.w3.org/2000/svg","rect");return[this.backgroundMask,this.backgroundMaskGroup]=this.createMask(`mask-background-color-${this._instanceId}`),this.defs.appendChild(this.backgroundMask),h.setAttribute("x",ft(s)),h.setAttribute("y",ft(a)),h.setAttribute("width",ft(r)),h.setAttribute("height",ft(r)),h.setAttribute("rx",ft(l)),this.backgroundMaskGroup.appendChild(h),d}}drawDots(t){if(!this.qr)throw new Error("QR code is not defined");const e=this.options,i=this.qr.getModuleCount();if(i>e.width||i>e.height)throw new Error("The canvas is too small");const o=e.dotsOptions.size;let n=Math.min(e.width,e.height);e.imageOptions.mode==H.background&&(n-=2*o*(e.imageOptions.margin||0));const r=Math.floor((e.width-i*o)/2);let s=Math.floor((e.height-i*o)/2);if(e.offset){const t=(e.height-i*o)/2;s+=Math.min(Math.abs(e.offset),t)*Math.sign(e.offset)}let a=new wt(e.dotsOptions.type,this.document);const l=new wt(N.tinySquare,this.document),d=new wt(N.square,this.document);[this.dotsMask,this.dotsMaskGroup]=this.createMask(`mask-dot-color-${this._instanceId}`),this.defs.appendChild(this.dotsMask),e.imageOptions.mode==H.background&&([this.lightDotsMask,this.lightDotsMaskGroup]=this.createMask(`mask-light-dot-color-${this._instanceId}`),this.defs.appendChild(this.lightDotsMask));let h=0,c=i;e.shape===K.circle?(h=Math.floor((n/o-i-2)/2),c=i+2*h):e.imageOptions.mode==H.background&&(h=1,c=i+2*h);const u=r-h*o,m=s-h*o,p=u,g=m,f=i+2*h,k=new Array(c),O=Math.floor(c/2);for(let o=0;o<c;o++){k[o]=new Array(c);for(let n=0;n<c;n++)if(o>h-1&&o<c-h&&n>h-1&&n<c-h){const e=o-h,i=n-h;t&&!t(e,i)?k[o][n]=void 0:k[o][n]=!!this.qr.isDark(i,e)}else e.shape===K.circle&&Math.sqrt((o-O)*(o-O)+(n-O)*(n-O))>O?k[o][n]=void 0:k[o][n]=o!=h-1&&o!=c-h&&n!=h-1&&n!=c-h?this.qr.isDark(n-2*h<0?n:n>=i?n-2*h:n-h,o-2*h<0?o:o>=i?o-2*h:o-h):(n==h-1&&(o<h+8||o>c-h-9)||n==c-h&&o<h+8||o==h-1&&(n<h+8||n>c-h-9)||o==c-h&&n<h+8)&&void 0}const w=(i-17)/4,y=b.getPatternPosition(w);for(let t=0;t<c;t++){const e=y.find((e=>t-h>e-3&&t-h<e+3));for(let i=0;i<c;i++){const n=y.find((t=>i-h>t-3&&i-h<t+3));null!=k[t][i]&&(this.lightDotsMask&&(a=e&&n&&(e!=y[0]&&n!=y[0]||n!=y[0]&&n!=y[y.length-1]||e!=y[0]&&e!=y[y.length-1])?d:l),k[t][i]?(a.draw({x:u+t*o,y:m+i*o,size:o,getNeighbor:(e,o)=>!0===k[t+e]?.[i+o]}),a.element&&this.dotsMaskGroup&&this.dotsMaskGroup.appendChild(a.element)):this.lightDotsMask&&(a.draw({x:u+t*o,y:m+i*o,size:o,getNeighbor:(e,o)=>!1===k[t+e]?.[i+o]}),a.element&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(a.element)))}}this.lightDotsMask&&this.createColor({options:e.imageOptions.fill?.gradient,color:e.imageOptions.fill?.color,additionalRotation:0,x:p,y:g,height:f*o,width:f*o,name:`light-dot-color-${this._instanceId}`}),this.createColor({options:e.dotsOptions?.gradient,color:e.dotsOptions.color,additionalRotation:0,x:p,y:g,height:f*o,width:f*o,name:`dot-color-${this._instanceId}`})}drawCorners(){if(!this.qr)throw new Error("QR code is not defined");const t=this.qrGroup,e=this.options;if(!t)throw new Error("Element code is not defined");const i=this.qr.getModuleCount(),o=e.dotsOptions.size,n=7*o,r=3*o,s=Math.floor((e.width-i*o)/2);let a=Math.floor((e.height-i*o)/2);if(e.offset){const t=(e.height-i*o)/2,n=Math.min(Math.abs(e.offset),t)*Math.sign(e.offset);a+=n}[[0,0,0],[1,0,Math.PI/2],[0,1,-Math.PI/2]].forEach((([t,l,d])=>{const h=s+t*o*(i-7),c=a+l*o*(i-7);let u=this.dotsMask,m=this.dotsMaskGroup,p=this.dotsMask,g=this.dotsMaskGroup;if((e.cornersSquareOptions?.gradient||e.cornersSquareOptions?.color)&&([u,m]=this.createMask(`mask-corners-square-color-${t}-${l}-${this._instanceId}`),this.defs.appendChild(u),p=u,g=m,this.createColor({options:e.cornersSquareOptions?.gradient,color:e.cornersSquareOptions?.color,additionalRotation:d,x:h,y:c,height:n,width:n,name:`corners-square-color-${t}-${l}-${this._instanceId}`})),e.cornersSquareOptions?.type){const t=new Ot(e.cornersSquareOptions.type,this.document);t.draw({x:h,y:c,size:n,rotation:d}),t.element&&m&&m.appendChild(t.element),t.fill&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(t.fill)}else{const t=new wt(e.dotsOptions.type,this.document);for(let e=0;e<St.length;e++)for(let i=0;i<St[e].length;i++)St[e]?.[i]?(t.draw({x:h+e*o,y:c+i*o,size:o,getNeighbor:(t,o)=>!!St[e+t]?.[i+o]}),t.element&&m&&m.appendChild(t.element)):this.lightDotsMask&&!At[e]?.[i]&&(t.draw({x:h+e*o,y:c+i*o,size:o,getNeighbor:(t,o)=>!St[e+t]?.[i+o]&&!At[e+t]?.[i+o]}),t.element&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(t.element));if(this.lightDotsMask)for(let e=-1;e<8;e++)for(let i=-1;i<8;i++)-1!=e&&7!=e&&-1!=i&&7!=i||(t.draw({x:h+e*o,y:c+i*o,size:o,getNeighbor:(t,o)=>{const n=e+t,r=i+o;return n>=-1&&n<=7&&r>=-1&&r<=7&&(-1==n||7==n||-1==r||7==r)}}),t.element&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(t.element))}if((e.cornersDotOptions?.gradient||e.cornersDotOptions?.color)&&([p,g]=this.createMask(`mask-corners-dot-color-${t}-${l}-${this._instanceId}`),this.defs.appendChild(p),this.createColor({options:e.cornersDotOptions?.gradient,color:e.cornersDotOptions?.color,additionalRotation:d,x:h+2*o,y:c+2*o,height:r,width:r,name:`corners-dot-color-${t}-${l}-${this._instanceId}`})),e.cornersDotOptions?.type){const t=new kt(e.cornersDotOptions.type,this.document);t.draw({x:h+2*o,y:c+2*o,size:r,rotation:d}),t.element&&g&&g.appendChild(t.element)}else{const t=new wt(e.dotsOptions.type,this.document);for(let e=0;e<At.length;e++)for(let i=0;i<At[e].length;i++)At[e]?.[i]&&(t.draw({x:h+e*o,y:c+i*o,size:o,getNeighbor:(t,o)=>!!At[e+t]?.[i+o]}),t.element&&g&&g.appendChild(t.element))}}))}async drawImage({width:t,height:e,count:i,dotSize:o}){const n=this.options,r=Math.floor((n.width-i*o)/2);let s=Math.floor((n.height-i*o)/2);if(n.offset){const t=(n.height-i*o)/2;s+=Math.min(Math.abs(n.offset),t)*Math.sign(n.offset)}let a=n.imageOptions.margin*o;n.imageOptions.mode==H.background&&(a=0);const l=r+a+(i*o-t)/2,d=s+a+(i*o-e)/2,h=t-2*a,c=e-2*a,u=await this.imageTools.toDataURL(n.image||"");let m=this.document.createElementNS("http://www.w3.org/2000/svg","image");if(m.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",u||""),u?.startsWith("data:image/svg+xml;")){let t=u.substring(19);const e=t.indexOf(","),i=t.substring(0,e);if(t=t.substring(e+1),"base64"===i)t="function"==typeof atob?atob(t):Buffer.from(t,"base64").toString("utf8");else t="";if(t){const e=(new DOMParser).parseFromString(t,"text/xml"),i=Array.from(e.getElementsByTagName("svg"));i.length&&(m=i[0],m.setAttribute("overflow","visible"))}}m&&u&&(m.setAttribute("x",ft(l)),m.setAttribute("y",ft(d)),m.setAttribute("width",`${ft(h)}px`),m.setAttribute("height",`${ft(c)}px`),this.qrGroup.appendChild(m))}createColor({options:t,borderOptions:e,color:i,additionalRotation:o,x:n,y:r,height:s,width:a,name:l,returnSVGGroup:d=!1}){const h=a>s?a:s,c=this.document.createElementNS("http://www.w3.org/2000/svg","rect");if(c.setAttribute("x",ft(n)),c.setAttribute("y",ft(r)),c.setAttribute("height",ft(s)),c.setAttribute("width",ft(a)),c.setAttribute("style",`mask:url(#mask-${l}-${this._instanceId})`),t){let i;if(t.type===U.radial){i=this.document.createElementNS("http://www.w3.org/2000/svg","radialGradient"),i.setAttribute("id",l+"-"+this._instanceId),i.setAttribute("gradientUnits","userSpaceOnUse");let t=n+a/2,o=r+s/2;if(e){const i=e.thickness/2,l=2;M(e,"top")&&!R(e,"bottom",this._hls)?o=r+i*l+s/2:!M(e,"top")&&R(e,"bottom",this._hls)&&(o=r-i*l+s/2),M(e,"right")&&!M(e,"left")?t=n-i*l+a/2:!M(e,"right")&&M(e,"left")&&(t=n+i*l+a/2)}i.setAttribute("fx",ft(t)),i.setAttribute("fy",ft(o)),i.setAttribute("cx",ft(n+a/2)),i.setAttribute("cy",ft(r+s/2)),i.setAttribute("r",ft(h/2))}else{const e=((t.rotation||0)+o)%(2*Math.PI),d=(e+2*Math.PI)%(2*Math.PI);let h=n+a/2,c=r+s/2,u=n+a/2,m=r+s/2;d>=0&&d<=.25*Math.PI||d>1.75*Math.PI&&d<=2*Math.PI?(h-=a/2,c-=s/2*Math.tan(e),u+=a/2,m+=s/2*Math.tan(e)):d>.25*Math.PI&&d<=.75*Math.PI?(c-=s/2,h-=a/2/Math.tan(e),m+=s/2,u+=a/2/Math.tan(e)):d>.75*Math.PI&&d<=1.25*Math.PI?(h+=a/2,c+=s/2*Math.tan(e),u-=a/2,m-=s/2*Math.tan(e)):d>1.25*Math.PI&&d<=1.75*Math.PI&&(c+=s/2,h+=a/2/Math.tan(e),m-=s/2,u-=a/2/Math.tan(e)),i=this.document.createElementNS("http://www.w3.org/2000/svg","linearGradient"),i.setAttribute("id",l+"-"+this._instanceId),i.setAttribute("gradientUnits","userSpaceOnUse"),i.setAttribute("x1",ft(h)),i.setAttribute("y1",ft(c)),i.setAttribute("x2",ft(u)),i.setAttribute("y2",ft(m))}t.colorStops.forEach((t=>{const e=this.document.createElementNS("http://www.w3.org/2000/svg","stop");e.setAttribute("offset",`${ft(100*t.offset)}%`);const o=Zt(t.color);e.setAttribute("stop-color",o.value),o.alpha<1&&e.setAttribute("stop-opacity",o.alpha.toFixed(7)),i.appendChild(e)})),c.setAttribute("fill",`url(#${l}-${this._instanceId})`),this.defs.appendChild(i)}else if(i){const t=Zt(i);c.setAttribute("fill",t.value),t.alpha<1&&c.setAttribute("opacity",t.alpha.toFixed(7))}if(d)return c;l.startsWith("background-color")?this._element.insertBefore(c,this._maskedQrGroup):this.qrGroup.appendChild(c)}createMask(t){const e=`${t}-${this._instanceId}`,i=this.options,o=this.document.createElementNS("http://www.w3.org/2000/svg","mask");o.setAttribute("id",e),o.setAttribute("maskUnits","userSpaceOnUse"),o.setAttribute("x","0"),o.setAttribute("y","0"),o.setAttribute("width",ft(i.width)),o.setAttribute("height",ft(i.height));const n=this.document.createElementNS("http://www.w3.org/2000/svg","g");return n.setAttribute("fill","#fff"),o.appendChild(n),[o,n]}}var jt;Ct.instanceCount=0,function(t){t.svg="svg",t.png="png",t.jpeg="jpeg",t.webp="webp"}(jt||(jt={})),Object.assign(Z.stringToBytesFuncs,{UTF8:t=>function(t){const e=[];for(let i=0;i<t.length;i++){let o=t.charCodeAt(i);o<128?e.push(o):o<2048?e.push(192|o>>6,128|63&o):o<55296||o>=57344?e.push(224|o>>12,128|o>>6&63,128|63&o):(i++,o=65536+((1023&o)<<10|1023&t.charCodeAt(i)),e.push(240|o>>18,128|o>>12&63,128|o>>6&63,128|63&o))}return e}(t)});let It=class t{get size(){return this.qrSVG?{width:this.qrSVG.width,height:this.qrSVG.height}:void 0}constructor(e,i=!1){const o=e;let n=st;if(t._selectedTemplate)if("string"==typeof t._selectedTemplate){const e=t._selectedTemplate;ht[e]?n=ht[e]:console.warn(`QR Code template "${e}" not found. Using default.`)}else n=t._selectedTemplate;let r={};if(t._selectedStyle){const{isValid:e,errors:i}=et(t._selectedStyle);e?r=tt(t._selectedStyle):console.warn("Invalid static style options ignored during instantiation:",i)}const s=C(n,r,o),{warnings:a,validatedOptions:l}=mt(s);this.options=$(l),a.length>0&&this._logValidationWarnings("QR Code Options Validation Warnings:",a),this.update()}static setTemplate(e){return"string"==typeof e?ht[e]?t._selectedTemplate=e:(console.warn(`QR Code template "${e}" not found. Resetting to default template.`),t._selectedTemplate=st):t._selectedTemplate=e,t}static setStyle(e){let i=null;if("string"==typeof e){const o=e;if(!pt[o])return console.warn(`QR Code style "${o}" not found in setStyle. Ignoring.`),t;i=pt[o]}else i=e;if(i){const{isValid:e,errors:o}=et(i);e||console.warn("Invalid style options provided to setStyle:",o),t._selectedStyle=i}else t._selectedStyle=null;return t}async update(t){this.container&&(this.container.innerHTML="");const{warnings:e}=mt(t||this.options);if(e.length>0&&this._logValidationWarnings("QR Code JS Options Update Validation Warnings:",e),this.options=t?$(C(this.options,t)):this.options,!this.options.data)return;this.options.stringToBytesFuncs&&(Object.assign(Z.stringToBytesFuncs,this.options.stringToBytesFuncs),delete this.options.stringToBytesFuncs),this.qr=new Z(this.options.qrOptions.typeNumber,this.options.qrOptions.errorCorrectionLevel);const i=this.options.qrOptions.mode||function(t){switch(!0){case/^[0-9]*$/.test(t):return y.numeric;case/^[0-9A-Z $%*+\-./:]*$/.test(t):return y.alphanumeric;case/[^\u0000-\u00ff]/.test(t):return y.unicode;default:return y.byte}}(this.options.data);this.qr.addData(this.options.data,i),this.qr.make(),await this._setupSvgAsync(),this.append(this.container)}append(t){if(t)return this.qrSVG?.element&&t.appendChild(this.qrSVG.element),this.container=t,this}async applyExtension(t){if(!t)throw new Error("Extension function should be defined.");this.extension=t,await this.update()}async deleteExtension(){this.extension=void 0,await this.update()}async serialize(t=!1){if(!this.qr)throw new Error("QR code is empty");if(this.qrSVG?.element||await this._setupSvgAsync(),this.svgDrawingPromise&&await this.svgDrawingPromise,!this.qrSVG?.element)return;let e=this.qrSVG.element;if(t){const t=this.qrSVG.element.cloneNode(!0);t.style.filter="invert(1)",e=t}let i=(new XMLSerializer).serializeToString(e);return i='<?xml version="1.0" standalone="no"?>\r\n'+i,i}async _setupSvgAsync(){if(!this.qr)return;let t=this.qr.getModuleCount();this.options.imageOptions.mode===H.background&&this.options.shape!==K.circle&&(t+=2);let e=Math.ceil((this.options.shape===K.circle?Math.sqrt(1.8):1.1)*t);e%2==0&&(e-=1);let i=0;this.options.imageOptions.mode===H.background&&(i+=this.options.imageOptions.margin||0);const o=Math.ceil(this.options.dotsOptions.size*(e+2*i)),n=this.options.borderOptions;let r=0,s=0;const a={top:0,right:0,bottom:0,left:0},l={top:0,right:0,bottom:0,left:0},d={top:0,right:0,bottom:0,left:0},h=n?.noBorderThickness||n?.thickness?n.thickness/4:0;if(n?.hasBorder){const t=n.borderOuter?.thickness?2*n.borderOuter?.thickness:0,e=n.borderInner?.thickness?2*n.borderInner?.thickness:0;t>0&&(l.top=t/2,l.bottom=t/2,l.left=t/2,l.right=t/2),e>0&&(d.top=e/2,d.bottom=e/2,d.left=e/2,d.right=e/2),M(n,"left")?(a.left=n.thickness,r+=n.thickness):(a.left=h,r+=h),M(n,"right")?(a.right=n.thickness,r+=n.thickness):(a.right=h,r+=h),M(n,"top")?(a.top=n.thickness,s+=n.thickness):(a.top=h,s+=h),R(n,"bottom",this._hls())?(a.bottom=n.thickness,s+=n.thickness):(a.bottom=h,s+=h)}const c=o+r,u=o+s;this.qrSVG=new Ct({...this.options,width:c,height:u,bordersMain:a,bordersOuter:l,bordersInner:d,errorCorrectionPercent:_[this.options.qrOptions.errorCorrectionLevel],hls:this._hls()}),this.svgDrawingPromise=this.qrSVG.drawQR(this.qr).then((()=>{this.qrSVG?.element&&(this.options.instanceId=this.qrSVG._instanceId,this.options.borderOptions?.hasBorder&&F(this.options.borderOptions)(this.qrSVG.element,this.options,o,this.qrSVG.drawBackgroundForBorder.bind(this.qrSVG),a,l,d,h,this._hls),this.extension?.(this.qrSVG.element,this.options))})).catch((t=>{console.error(t)}))}async _drawToCanvasForValidation(t){const{width:e=300,height:i=300}=this.qrSVG?.svgSize??t??r,o=e,n=i,s=document.createElement("canvas");s.width=o,s.height=n;const a=await this.serialize();if(!a)throw new Error("Failed to serialize SVG.");const l="data:image/svg+xml;base64,"+btoa(a);return new Promise(((t,e)=>{const i=new Image;i.width=o,i.height=n,i.crossOrigin="Anonymous",i.onload=()=>{const r=s.getContext("2d");if(!r)return e(new Error("Could not get canvas 2D context"));r.drawImage(i,0,0,o,n),t(s)},i.onerror=i.onabort=e,i.src=l}))}async drawToCanvas(t){const{width:e=300,height:i=300}=this.qrSVG?.svgSize??t??r,o=1*e,n=1*i,s=document.createElement("canvas");s.width=o,s.height=n;const a=(async()=>{try{const t=await this.serialize();if(!t)return void console.warn("SVG serialization returned empty.");const r="data:image/svg+xml;base64,"+btoa(t),a=new Image;a.width=o,a.height=n,await new Promise(((t,l)=>{a.onload=()=>{const r=Math.ceil(2*Math.max(e,i)/Math.max(a.width,a.height));let d;try{d=new OffscreenCanvas(a.width*r*2,a.height*r*2)}catch(t){d=document.createElement("canvas"),d.width=a.width*r*2,d.height=a.height*r*2}const h=d.getContext("2d");if(!h)return l(new Error("Could not get OffscreenCanvas 2D context"));h.drawImage(a,0,0,d.width,d.height);const c=s.getContext("2d");if(!c)return l(new Error("Could not get canvas 2D context"));c.drawImage(d,0,0,d.width,d.height,0,0,o,n),t()},a.onerror=t=>l(new Error(`Image load error: ${t}`)),a.onabort=()=>l(new Error("Image load aborted")),a.src=r}))}catch(t){throw console.error("Error drawing to canvas:",t),t}})();return{canvas:s,canvasDrawingPromise:a}}downloadURI(t,e){const i=document.createElement("a");i.download=e,i.href=t,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async download(t,e){if("undefined"==typeof Blob)throw new Error("Cannot download in Node.js environment");let i=jt.png,o="qr";if(t&&(t.name&&(o=t.name),t.extension&&(i=t.extension)),"svg"===i.toLowerCase()){const t=await this.serialize();if(!t)return;const e="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(t);this.downloadURI(e,`${o}.svg`)}else{const t=await this.drawToCanvas(e);if(!t)return;const{canvas:n,canvasDrawingPromise:r}=t;await r;const s=n.toDataURL(`image/${i}`);this.downloadURI(s,`${o}.${i}`)}}async createOptimizedQRCanvas(t){const{width:e=300,height:i=300}=this.qrSVG?.svgSize??t??r,o=document.createElement("canvas");o.width=e,o.height=i;const n=await this.serialize();if(!n)throw new Error("Failed to serialize SVG.");const s="data:image/svg+xml;base64,"+btoa(Array.from((new TextEncoder).encode(n)).map((t=>String.fromCharCode(t))).join(""));return new Promise(((t,n)=>{const r=new Image;r.width=e,r.height=i,r.crossOrigin="Anonymous",r.onload=()=>{const s=o.getContext("2d");if(!s)return n(new Error("Could not get canvas 2D context"));s.imageSmoothingEnabled=!1,s.drawImage(r,0,0,e,i),this.applyQRThreshold(o),t(o)},r.onerror=t=>n(new Error(`Image load error: ${t}`)),r.onabort=()=>n(new Error("Image load aborted")),r.src=s}))}applyQRThreshold(t){const e=t.getContext("2d");if(!e)return;const i=e.getImageData(0,0,t.width,t.height),o=i.data;for(let t=0;t<o.length;t+=4){const e=(o[t]+o[t+1]+o[t+2])/3<128?0:255;o[t]=o[t+1]=o[t+2]=e}e.putImageData(i,0,0)}_hls(){return!1}_logValidationWarnings(t,e){console.warn(t),e.forEach((t=>{console.warn(`option: ${t.path} - '${t.value}' : ${t.message}`)}))}};It.version="0.9.10",It._selectedTemplate=null,It._selectedStyle=null;class Wt{constructor(){this._hls=!1,this._decodedToken=null,this._licenseKey=null,this._storedToken=null,this._storedKey=null,this._isInitialized=!1,this._initPromise=null,this._licenseFetcher=async t=>{const e=Wt._defaultLicenseApiUrl;if(!e)throw new Error("LicenseManagerNode: API URL not set. Call LicenseManagerNode.setDefaultLicenseApiUrl() with an absolute URL.");try{const i=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({licenseKey:t})});if(!i.ok){let t={};try{t=await i.json()}catch(t){}throw new Error(`Failed to fetch token: ${i.status} ${t?.error||i.statusText}`)}const o=await i.text();if(!o)throw new Error("Fetched token is empty.");return o}catch(t){throw console.error(`LicenseManagerNode: Default fetcher failed: ${t.message}`),new Error(`License fetcher failed: ${t.message}`)}}}static get instance(){return Wt._instance||(Wt._instance=new Wt),Wt._instance}static setDefaultLicenseApiUrl(t){"string"==typeof t&&t?(t.startsWith("http://")||t.startsWith("https://")||console.warn("LicenseManagerNode: URL provided to setDefaultLicenseApiUrl does not appear to be absolute. Relative URLs may not work reliably server-side."),Wt._defaultLicenseApiUrl=t):console.warn("LicenseManagerNode: Invalid URL provided to setDefaultLicenseApiUrl.")}get hls(){return this._hls}get isInitialized(){return this._isInitialized}getLicenseDetails(){return this._hls?this._decodedToken:null}get licenseKey(){return this._licenseKey}configureLicenseFetcher(t){if("function"!=typeof t)throw new Error("License fetcher must be a function that accepts a license key string and returns a Promise<string>.");this._licenseFetcher=t,this.resetInitialization(),this.resetLicenseState()}async initialize(){return this._isInitialized&&this._initPromise||this._initPromise||(this._initPromise=this._performInitialization()),this._initPromise}async _performInitialization(){if(this._hls)return this._isInitialized=!0,!0;this.resetLicenseState();const t=this._getStoredLicenseData(),e=t.token||null,i=t.key||null;if(this._licenseKey=i,!e)return this._isInitialized=!0,!1;const o=await this._validateAndStoreToken(e,i);if(o.isValid)return this._hls=!0,this._decodedToken=o.license,this._isInitialized=!0,!0;if(console.warn("LicenseManagerNode: Stored license token failed validation during initialization."),!i)return console.warn("LicenseManagerNode: Cannot refresh token: No license key found in storage."),this._isInitialized=!0,!1;console.warn("LicenseManagerNode: Attempting to refresh token using stored license key...");try{const t=await this.activateWithKey(i);return this._isInitialized=!0,t.isValid}catch(t){return console.error(`LicenseManagerNode: Auto-refresh attempt failed: ${t.message}`),this._licenseKey=i,this._isInitialized=!0,!1}}resetInitialization(){this._isInitialized=!1,this._initPromise=null}resetLicenseState(){this._hls=!1,this._decodedToken=null,this._licenseKey=null,this._storedToken=null,this._storedKey=null}async activateWithToken(t){let e;return this.resetInitialization(),null===t?(e=await this._validateAndStoreToken(null,this._licenseKey),this._hls=!1,this._decodedToken=null):"string"==typeof t&&t?(e=await this._validateAndStoreToken(t,null),this._hls=e.isValid,this._decodedToken=e.license,e.isValid?this._licenseKey=this._getStoredLicenseData().key||null:this._licenseKey=null):(console.warn("Invalid token string provided to activateWithToken()."),e=await this._validateAndStoreToken(null,null),this._hls=!1,this._decodedToken=null,this._licenseKey=null),this._isInitialized=!0,this._initPromise=Promise.resolve(this._hls),e}async activateWithKey(t){this.resetInitialization();let e={isValid:!1,token:null,license:null};if(t&&"string"==typeof t){this._licenseKey=t;let i=null,o=null;const n=this._getStoredLicenseData();if(i=n.token||null,o=n.key||null,i&&o===t?(e=await this._validateAndStoreToken(i,t),e.isValid||console.warn("LicenseManagerNode: Cached token validation failed. Attempting to fetch a new token...")):(e={isValid:!1,token:null,license:null},i&&o!==t&&console.warn("LicenseManagerNode: Cached token belongs to a different license key. Fetching new token...")),!e.isValid)try{const i=await this._licenseFetcher(t);e=await this._validateAndStoreToken(i,t),e.isValid||console.warn(`LicenseManagerNode: Fetched token for key ${t} failed validation.`)}catch(i){console.warn(`LicenseManagerNode: Failed to fetch license token for key ${t}: ${i.message}`),await this._validateAndStoreToken(null,t),e={isValid:!1,token:null,license:null}}this._hls=e.isValid,this._decodedToken=e.license}else console.warn("Invalid license key provided to activateWithKey()."),await this._validateAndStoreToken(null,null),this._hls=!1,this._decodedToken=null,this._licenseKey=null;return this._isInitialized=!0,this._initPromise=Promise.resolve(this._hls),e}_getStoredLicenseData(){return{token:this._storedToken??void 0,key:this._storedKey??void 0}}_setStoredLicenseData(t){this._storedToken=t.token??null,this._storedKey=t.key??null}async _validateAndStoreToken(t,e){const r=e??this._storedKey??void 0;if(!t)return this._setStoredLicenseData({key:r}),{isValid:!1,token:null,license:null};try{const e=await async function(t){try{const e=await i("-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ZCmxp1vq4LJLviS9d2u Y5V9IykLzCrNcj8fCenqEyir5b4+FGE3hvLqp9zT+IYRF2cV2K0aGe9G0COFZsX2 E5ye1DguyvPQgRMPO8y7bxXJ3da1IP7Gs+/3gy4iuzRV4Uhy73jUVpqE/zZ2JAv/ sY36Rxmq4h7YE/F6YQk3DeZvnHjS7spUlp/+d3W67G8v2jiYWy3pO08Sn0rF2cjg XrJA5jcNr7ksER7AQcwayaLT4rAV4+EOcDYXL2egnqoTEmRzQYD2ReHBsO6jB0Ud bmsNepxbBdq/fBr+5HNj2tUJItarfH3BUVRFu/L1xP8wOEQa8wmPRwrJdPsI3bdk 7QIDAQAB -----END PUBLIC KEY-----","RS256"),{payload:r}=await o(t,e,{algorithms:["RS256"]});if(!r||"string"!=typeof r.sub)throw new n.JOSEError("Decoded token payload structure is invalid.");return r}catch(t){throw t}}(t);return this._setStoredLicenseData({token:t,key:r}),{isValid:!0,token:t,license:e}}catch(e){return console.warn(`LicenseManagerNode: License token validation failed: ${e.message}`),this._storedToken===t&&this._setStoredLicenseData({key:r}),{isValid:!1,token:null,license:null}}}}var Yt;Wt._instance=null,Wt._defaultLicenseApiUrl="/api/get-token",function(t){t.svg="svg",t.png="png",t.jpeg="jpeg",t.webp="webp"}(Yt||(Yt={}));let vt=null;const Vt=void 0,Jt="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjY2NjIi8+PHRleHQgeD0iNTAlIiB5PSI1MCUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDAiIGZvbnQtc2l6ZT0iMTYiPkxvZ28gbG9hZCBlcnJvcjwvdGV4dD48L3N2Zz4=";class Tt extends It{static async initializeIfNeeded(){return Wt.instance.initialize()}static get hls(){return Wt.instance.isInitialized?Wt.instance.hls:(Wt.instance.initialize().catch((t=>{console.error("QRCode.js (Server): Background license initialization failed:",t)})),!1)}_hls(){return Wt.instance.isInitialized?Wt.instance.hls:(Wt.instance.initialize().catch((t=>{console.error("QRCode.js (Server): Background license initialization failed:",t)})),!1)}static getLicenseDetails(){return Wt.instance.isInitialized?Wt.instance.getLicenseDetails():(Wt.instance.initialize().catch((t=>{console.error("QRCode.js (Server): Background license initialization failed:",t)})),null)}static configureLicenseFetcher(t){Wt.instance.configureLicenseFetcher(t)}static async token(t){return Wt.instance.activateWithToken(t)}static async license(t){return Wt.instance.activateWithKey(t)}static setLicenseUrl(t){return Wt.setDefaultLicenseApiUrl(t),this}static async initXmldom(){if(!Tt._xmldomSync){const t=await async function(){return vt||(vt=import("@xmldom/xmldom")),vt}();Tt._xmldomSync=t}}constructor(i,o=!1){if(!Tt._xmldomSync)throw new Error("You must call QRCodeJs.initXmldom() before constructing QRCodeJs");const{DOMImplementation:n,DOMParser:r,XMLSerializer:s}=Tt._xmldomSync,a=(new n).createDocument(null,"");global.XMLSerializer=s,global.DOMParser=r;const l=new Map,d=async e=>{try{if("string"==typeof e){let i=l.get(e);return i||(i=new Promise((async(i,o)=>{const n=new AbortController,r=setTimeout((()=>{n.abort(),o(new Error("Image load timed out"))}),15e3);try{const o=await fetch(e,{signal:n.signal,headers:{"User-Agent":"QR-Plarform/1 (https://www.qr-platform.com; contact@qr-platform.com)"}});if(!o.ok)throw new Error(`HTTP ${o.status} - ${o.statusText}`);const s=Buffer.from(await o.arrayBuffer()),a=await t(s);clearTimeout(r),i({contentType:o.headers.get("Content-Type")||a?.mime,data:s})}catch(t){clearTimeout(r),o(t)}})),l.set(e,i),i)}{const i=Buffer.isBuffer(e)?e:Buffer.from(await e.arrayBuffer()),o=await t(i);return{contentType:o?.mime,data:i}}}catch(t){return console.error("Image loading failed:",t),{contentType:"image/svg+xml",data:Buffer.from(Jt.split(",")[1],"base64")}}};super({...i,document:i.document||a,imageTools:i.imageTools||{toDataURL:async t=>{try{if("string"==typeof t&&t.startsWith("data:"))return t;const{contentType:e,data:i}=await d(t);return`data:${e?.replace("application/xml","image/svg+xml")||"image/png"};base64,${i.toString("base64")}`}catch(t){return console.error("Data URL conversion failed:",t),Jt}},getSize:async t=>{try{const{data:o}=Buffer.isBuffer(i.image)?{data:i.image}:await d(t),n=e(o);return{width:n.width||200,height:n.height||200}}catch(t){return console.error("Image size detection failed:",t),{width:200,height:200}}}}}),o||(Wt.instance.isInitialized||Wt.instance.hls?Wt.instance.isInitialized&&!Wt.instance.hls&&console.warn("QRCode.js (Server): No valid license found. Some features may be limited."):console.warn("QRCode.js (Server): License state not yet initialized. Call QRCodeJs.initializeIfNeeded() or activate a license."))}static async validateImageData(t){if(!this.hls)return console.warn("QRCode.js (Server): Scanning validation requires a valid license."),Promise.reject({isValid:!1,message:"Valid license required for scanning validation."});try{const e="undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent,{qrValidatorZbar:i}=e?await import("./chunks/scan-validator-worker-nQmPU9X1.js"):await import("./chunks/scan-validator-node-_qhS-Z_9.js"),o=await i.validateZbarImageData(t);if(o.isValid)return{...o,validator:"ZBAR"};{console.debug("Zbar validation failed, trying Zxing...");const{qrValidatorZxing:e}=await import("./chunks/scan-validator-zxing-node-Dc9Z0asL.js");return{...await e.validateImageData(t),validator:"ZXING"}}}catch(t){return console.debug(`Zbar and Zxing validation threw an error: ${t instanceof Error?t.message:String(t)}`),Promise.reject({isValid:!1,message:t instanceof Error?t.message:"Zbar and Zxing validation failed with an error"})}}async validateScanning(){if(!this._hls())return console.warn("QRCode.js (Server): Scanning validation requires a valid license."),Promise.reject({isValid:!1,message:"Valid license required for scanning validation."});try{const t=await this.serialize(),e="undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent,{qrValidatorZbar:i}=e?await import("./chunks/scan-validator-worker-nQmPU9X1.js"):await import("./chunks/scan-validator-node-_qhS-Z_9.js"),o=await i.validateZbar(t,!1);if(o.isValid)return{...o,validator:"ZBAR"};{console.debug("Zbar validation failed, trying Zxing...");const{qrValidatorZxing:e}=await import("./chunks/scan-validator-zxing-node-Dc9Z0asL.js");return{...await e.validateZxing(t),validator:"ZXING"}}}catch(t){return console.debug(`Zbar and Zxing validation threw an error: ${t instanceof Error?t.message:String(t)}`),Promise.reject({isValid:!1,message:t instanceof Error?t.message:"Zbar and Zxing validation failed with an error"})}}static async validateSvg(t){if(!this.hls)return console.warn("QRCode.js (Server): Scanning validation requires a valid license."),Promise.reject({isValid:!1,message:"Valid license required for scanning validation."});if(!t)return Promise.reject({isValid:!1,message:"SVG source is required for scanning validation."});try{const e=t,i="undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent,{qrValidatorZbar:o}=i?await import("./chunks/scan-validator-worker-nQmPU9X1.js"):await import("./chunks/scan-validator-node-_qhS-Z_9.js"),n=await o.validateZbar(e,!1);if(n.isValid)return{...n,validator:"ZBAR"};{console.debug("Zbar validation failed, trying Zxing...");const{qrValidatorZxing:t}=await import("./chunks/scan-validator-zxing-node-Dc9Z0asL.js");return{...await t.validateZxing(e),validator:"ZXING"}}}catch(t){return console.debug(`Zbar and Zxing validation threw an error: ${t instanceof Error?t.message:String(t)}`),Promise.reject({isValid:!1,message:t instanceof Error?t.message:"Zbar and Zxing validation failed with an error"})}}static useTemplate(t){return new qt(t)}static useStyle(t){return(new qt).useStyle(t)}}Tt._xmldomSync=null,Tt._initPromise=null,Tt._initPromise=Tt.initXmldom();class qt{constructor(t){let e=st;if("string"==typeof t){const i=t;ht[i]?e=ht[i]:console.warn(`QR Code template "${i}" not found. Using default basic template.`)}else t&&(e=t);this.config=C({},e)}useTemplate(t){let e={};if("string"==typeof t){const i=t;ht[i]?e=ht[i]:console.warn(`QR Code template "${i}" not found in useTemplate chain. Ignoring.`)}else e=t;return this.config=C(e,this.config),this}useStyle(t){let e=null;if("string"==typeof t){const i=t;if(!pt[i])return console.warn(`QR Code style "${i}" not found. Ignoring.`),this;e=pt[i]}else e=t;if(e){const{isValid:t,errors:i}=et(e);t||console.warn("Invalid style options provided to QRCodeBuilder:",i);const o=tt(e);this.config=C(this.config,o)}return this}options(t){return this.config=C(this.config,t),new Tt(this.config)}build(){return new Tt(this.config)}}class Xt extends Tt{_hls(){return!0}static get hls(){return!0}constructor(t){super(t,!0)}}export{E as CornerDotType,z as CornerSquareType,N as DotType,w as ErrorCorrectionLevel,_ as ErrorCorrectionPercents,Yt as FileExtension,U as GradientType,H as ImageMode,y as Mode,Tt as QRCodeJs,K as ShapeType,O as TypeNumber,Xt as _,Vt as browserUtils};
1
+ import e from"@xmldom/xmldom";import{fileTypeFromBuffer as t}from"file-type";import o from"image-size";import{importSPKI as r,jwtVerify as n,errors as i}from"jose";const s={width:300,height:300,margin:0};class a{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 d,l,c;!function(e){e[e.L=1]="L",e[e.M=0]="M",e[e.Q=3]="Q",e[e.H=2]="H"}(d||(d={}));class u{constructor(){throw new Error("error")}static glog(e){if(e<1)throw new Error("log("+e+")");return u.LOG_TABLE[e]}static gexp(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return u.EXP_TABLE[e]}}u.initialize=(()=>{u.EXP_TABLE=[],u.LOG_TABLE=[];for(let e=0;e<256;e+=1)u.EXP_TABLE.push(e<8?1<<e:u.EXP_TABLE[e-4]^u.EXP_TABLE[e-5]^u.EXP_TABLE[e-6]^u.EXP_TABLE[e-8]),u.LOG_TABLE.push(0);for(let e=0;e<255;e+=1)u.LOG_TABLE[u.EXP_TABLE[e]]=e})();class p{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+=u.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]^=u.gexp(u.glog(this.getAt(o))+u.glog(e.getAt(r)));return new p(t)}mod(e){if(this.getLength()-e.getLength()<0)return this;const t=u.glog(this.getAt(0))-u.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]^=u.gexp(u.glog(e.getAt(r))+t);return new p(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"}(l||(l={}));class h{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 l.MODE_NUMBER:return 10;case l.MODE_ALPHA_NUM:return 9;case l.MODE_8BIT_BYTE:case l.MODE_KANJI:return 8;default:throw new Error("mode:"+this.mode)}else if(e<27)switch(this.mode){case l.MODE_NUMBER:return 12;case l.MODE_ALPHA_NUM:return 11;case l.MODE_8BIT_BYTE:return 16;case l.MODE_KANJI:return 10;default:throw new Error("mode:"+this.mode)}else{if(!(e<41))throw new Error("typeNumber:"+e);switch(this.mode){case l.MODE_NUMBER:return 14;case l.MODE_ALPHA_NUM:return 13;case l.MODE_8BIT_BYTE:return 16;case l.MODE_KANJI:return 12;default:throw new Error("mode:"+this.mode)}}}}class m extends h{constructor(e,t){super(l.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 g extends h{constructor(e){super(l.MODE_ALPHA_NUM,e)}write(e){const t=this.getData();let o=0;for(;o+1<t.length;)e.put(45*g.getCode(t.charAt(o))+g.getCode(t.charAt(o+1)),11),o+=2;o<t.length&&e.put(g.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 f extends h{constructor(e,t){super(l.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 b extends h{constructor(e){super(l.MODE_NUMBER,e)}write(e){const t=this.getData();let o=0;for(;o+2<t.length;)e.put(b.strToNum(t.substring(o,o+3)),10),o+=3;o<t.length&&(t.length-o==1?e.put(b.strToNum(t.substring(o,o+1)),4):t.length-o==2&&e.put(b.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+b.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"}(c||(c={}));class y{constructor(){throw new Error("error")}static getPatternPosition(e){return y.PATTERN_POSITION_TABLE[e-1]}static getMaxLength(e,t,o){const r=e-1;let n=0,i=0;switch(o){case d.L:n=0;break;case d.M:n=1;break;case d.Q:n=2;break;case d.H:n=3;break;default:throw new Error("e:"+o)}switch(t){case l.MODE_NUMBER:i=0;break;case l.MODE_ALPHA_NUM:i=1;break;case l.MODE_8BIT_BYTE:i=2;break;case l.MODE_KANJI:i=3;break;default:throw new Error("m:"+t)}return y.MAX_LENGTH[r][n][i]}static getErrorCorrectPolynomial(e){let t=new p([1]);for(let o=0;o<e;o+=1)t=t.multiply(new p([1,u.gexp(o)]));return t}static getMaskFunc(e){switch(e){case c.PATTERN000:return(e,t)=>(e+t)%2==0;case c.PATTERN001:return(e,t)=>e%2==0;case c.PATTERN010:return(e,t)=>t%3==0;case c.PATTERN011:return(e,t)=>(e+t)%3==0;case c.PATTERN100:return(e,t)=>(~~(e/2)+~~(t/3))%2==0;case c.PATTERN101:return(e,t)=>e*t%2+e*t%3==0;case c.PATTERN110:return(e,t)=>(e*t%2+e*t%3)%2==0;case c.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 n=0;n<t;n+=1){let i=0;const s=e.isDark(r,n);for(let o=-1;o<=1;o+=1)if(!(r+o<0||t<=r+o))for(let a=-1;a<=1;a+=1)n+a<0||t<=n+a||0==o&&0==a||s==e.isDark(r+o,n+a)&&(i+=1);i>5&&(o+=3+i-5)}for(let r=0;r<t-1;r+=1)for(let n=0;n<t-1;n+=1){let t=0;e.isDark(r,n)&&(t+=1),e.isDark(r+1,n)&&(t+=1),e.isDark(r,n+1)&&(t+=1),e.isDark(r+1,n+1)&&(t+=1),0!=t&&4!=t||(o+=3)}for(let r=0;r<t;r+=1)for(let n=0;n<t-6;n+=1)e.isDark(r,n)&&!e.isDark(r,n+1)&&e.isDark(r,n+2)&&e.isDark(r,n+3)&&e.isDark(r,n+4)&&!e.isDark(r,n+5)&&e.isDark(r,n+6)&&(o+=40);for(let r=0;r<t;r+=1)for(let n=0;n<t-6;n+=1)e.isDark(n,r)&&!e.isDark(n+1,r)&&e.isDark(n+2,r)&&e.isDark(n+3,r)&&e.isDark(n+4,r)&&!e.isDark(n+5,r)&&e.isDark(n+6,r)&&(o+=40);let r=0;for(let o=0;o<t;o+=1)for(let n=0;n<t;n+=1)e.isDark(n,o)&&(r+=1);return o+=10*(Math.abs(100*r/t/t-50)/5),o}static getBCHTypeInfo(e){let t=e<<10;for(;y.getBCHDigit(t)-y.getBCHDigit(y.G15)>=0;)t^=y.G15<<y.getBCHDigit(t)-y.getBCHDigit(y.G15);return(e<<10|t)^y.G15_MASK}static getBCHTypeNumber(e){let t=e<<12;for(;y.getBCHDigit(t)-y.getBCHDigit(y.G18)>=0;)t^=y.G18<<y.getBCHDigit(t)-y.getBCHDigit(y.G18);return e<<12|t}static getBCHDigit(e){let t=0;for(;0!=e;)t+=1,e>>>=1;return t}}y.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]],y.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]]],y.G15=1335,y.G18=7973,y.G15_MASK=21522;class O{constructor(e,t){this.totalCount=e,this.dataCount=t}getDataCount(){return this.dataCount}getTotalCount(){return this.totalCount}static getRSBlocks(e,t){const o=O.getRsBlockTable(e,t),r=o.length/3,n=[];for(let e=0;e<r;e+=1){const t=o[3*e+0],r=o[3*e+1],i=o[3*e+2];for(let e=0;e<t;e+=1)n.push(new O(r,i))}return n}static getRsBlockTable(e,t){switch(t){case d.L:return O.RS_BLOCK_TABLE[4*(e-1)+0];case d.M:return O.RS_BLOCK_TABLE[4*(e-1)+1];case d.Q:return O.RS_BLOCK_TABLE[4*(e-1)+2];case d.H:return O.RS_BLOCK_TABLE[4*(e-1)+3]}throw new Error("tn:"+e+"/ecl:"+t)}}O.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 S=Array(41).fill(0).map(((e,t)=>t));var C,k;!function(e){e.L="L",e.M="M",e.Q="Q",e.H="H"}(C||(C={})),function(e){e.numeric="numeric",e.alphanumeric="alphanumeric",e.byte="byte",e.kanji="kanji",e.unicode="unicode"}(k||(k={}));class w{constructor(e=0,t=C.L){this.modules=[],this.moduleCount=0,this.typeNumber=e,this.errorCorrectLevel=d[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=k.byte){if(e instanceof h)this.qrDataList.push(e);else{if("string"!=typeof e)throw new Error(typeof e);switch(t){case k.numeric:this.qrDataList.push(new b(e));break;case k.alphanumeric:this.qrDataList.push(new g(e));break;case k.byte:this.qrDataList.push(new m(e,w.stringToBytesFuncs.default));break;case k.unicode:this.qrDataList.push(new m(e,w.stringToBytesFuncs.UTF8));break;case k.kanji:this.qrDataList.push(new f(e,w.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=O.getRSBlocks(e,this.errorCorrectLevel),o=new a;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=y.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=w.createData(this.typeNumber,this.errorCorrectLevel,this.qrDataList);this.mapData(o,t)}mapData(e,t){let o=-1,r=this.moduleCount-1,n=7,i=0;const s=y.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;i<e.length&&(a=1==(e[i]>>>n&1));s(r,t-o)&&(a=!a),this.modules[r][t-o]=a,n-=1,-1==n&&(i+=1,n=7)}if(r+=o,r<0||this.moduleCount<=r){r-=o,o=-o;break}}}setupPositionAdjustPattern(){const e=y.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=y.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=y.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=O.getRSBlocks(e,t),n=new a;o.forEach((t=>{n.put(t.getMode(),4),n.put(t.getLength(),t.getLengthInBits(e)),t.write(n)}));const i=r.reduce(((e,t)=>e+t.getDataCount()),0);if(n.getLengthInBits()>8*i)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+8*i+")");for(n.getLengthInBits()+4<=8*i&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*i||(n.put(w.PAD0,8),n.getLengthInBits()>=8*i));)n.put(w.PAD1,8);return w.createBytes(n,r)}static createBytes(e,t){let o=0,r=0,n=0;const i=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 l=t[d].getDataCount(),c=t[d].getTotalCount()-l;r=Math.max(r,l),n=Math.max(n,c),i[d]=a(l);for(let t=0;t<i[d].length;t+=1)i[d][t]=255&e.getBuffer()[t+o];o+=l;const u=y.getErrorCorrectPolynomial(c),h=new p(i[d],u.getLength()-1).mod(u);s[d]=a(u.getLength()-1);for(let e=0;e<s[d].length;e+=1){const t=e+h.getLength()-s[d].length;s[d][e]=t>=0?h.getAt(t):0}}const d=a(t.reduce(((e,t)=>e+t.getTotalCount()),0));let l=0;for(let e=0;e<r;e+=1)for(let o=0;o<t.length;o+=1)e<i[o].length&&(d[l]=i[o][e],l+=1);for(let e=0;e<n;e+=1)for(let o=0;o<t.length;o+=1)e<s[o].length&&(d[l]=s[o][e],l+=1);return d}}w.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}},w.PAD0=236,w.PAD1=17;const q=e=>!!e&&"object"==typeof e&&!Array.isArray(e);function T(e,t=!1){const o=e.split("").reverse().join("");return t?o.toLocaleUpperCase():o}function v(e,...t){if(!t.length)return e;const o=t.shift();return void 0!==o&&q(e)&&q(o)?(e={...e},Object.keys(o).forEach((t=>{const r=e[t],n=o[t];Array.isArray(r)&&Array.isArray(n)?e[t]=n:q(r)&&q(n)?e[t]=v({...r},n):e[t]=n})),v(e,...t)):e}const A=T("rq",!0)+T("-",!0)+T("talp",!0)+T("mrof",!0),D=T("a".repeat(6)+"#",!0),Z="top",I="bottom",W="left",V="right";const j=e=>"number"==typeof e?e:parseInt(e.replace("%",""),10),x=(e,t="0%")=>e?e.endsWith("%")?e:e+"%":t,R="text",B="image",Y={disabled:!1,enableText:!0,type:"text",value:A},J=(e,t)=>!e?.decorations?.[t]?.disabled,M=(e,t,o)=>!o||!e?.decorations?.[t]?.disabled,G=e=>{if("string"==typeof e)return e;if(!e)return"";const{fontFace:t="Helvetica",fontSize:o=20,fontColor:r="#ffffff",letterSpacing:n=1,fontWeight:i="bold"}=e;return`font-weight: ${i}; font-size: ${o}px; font-family: ${t}; fill: ${r}; letter-spacing: ${n}px;`};Y.style={fontFace:"Helvetica",fontSize:20,fontColor:D,letterSpacing:2};const X={...Y};const E=({document:e,position:t,rotate:o,flip:r,thickness:n,height:i,width:s,round:a,offset:d=0,curveAdjustment:l=0,curveRadius:c,outerBorderPadding:u=0,instanceId:p})=>{const h=Math.min(s,i),m=e.createElementNS("http://www.w3.org/2000/svg","path"),g=(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:.78},{R:45,P:.9},{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:n,P:i}=o,{R:s,P:a}=r;return i+(e-n)/(s-n)*(a-i)})("string"==typeof a?j(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):g,b=(h-n-2*u-10*l*2)/2*f,y=((e,t,o,r)=>{const n=o/2,i=r/2;let s="";return e&&(s+=`rotate(${e}, ${n}, ${i}) `),t&&(s+=`translate(${n}, ${i}) scale(1, -1) translate(${-n}, ${-i}) `),s.trim()})(o,r,s,i);m.setAttribute("id",`${t}-text-path-${p}`),m.setAttribute("transform",y);const{startX:O,startY:S,pathWidth:C}=((e,t,o,r,n={})=>{let i=t/2,s=t/2+r,a=e-t;return o&&(a-=2*o,i+=o,s+=o),i+=n.left||0,s+=n.top||0,{startX:i,startY:s,pathWidth:a}})(h,n,u,d);return m.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 `)(O,S,C,b)),m},L=({document:e,thickness:t,value:o,svg:r,position:n,height:i,width:s,round:a,style:d,offset:l=0,curveAdjustment:c=0,curveDisabled:u=!1,outerBorderPadding:p=0,curveRadius:h,instanceId:m,noBorderThickness:g,enabledBorders:f})=>{let b=0,y=!1;if(n===V?b=90:n===I?y=!u:n===W&&(b=270),u){const a=e.createElementNS("http://www.w3.org/2000/svg","text");let c=s/2,u=(i-Math.min(s,i)+t)/2+2*p+l-(i-s>0?0:(s-i)/2);if(n===I?u=i-2*p-t/2-l:n===Z&&(u=2*p+t/2+l),n===Z||n===I){let e=0;!f[W]&&f[V]?e=-(t-g)/2:f[W]&&!f[V]&&(e=(t-g)/2),c+=e}else if(n===W||n===V){let e=0;!f[Z]&&f[I]?e=n===W?(t-g)/2:-(t-g)/2:f[Z]&&!f[I]&&(e=n===W?-(t-g)/2:(t-g)/2),c+=e}let h="";0!==b&&(h+=`rotate(${b}, ${s/2}, ${i/2}) `),a.setAttribute("x",c.toString()),a.setAttribute("y",u.toString()),a.setAttribute("text-anchor","middle"),a.setAttribute("dominant-baseline","middle"),h&&a.setAttribute("transform",h.trim()),a.textContent=o;const m=G(d);a.setAttribute("style",m),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 O=E({document:e,position:n,rotate:b,flip:y,thickness:t,height:i,width:s,round:a,offset:l,curveAdjustment:c,enabledBorders:f,outerBorderPadding:p,curveRadius:h,noBorderThickness:g,instanceId:m}),{x:S,y:C}=function(e,t,o,r){let n=0,i=0;const s=(t-o)/2;return r.left&&r.right&&r.top&&r.bottom?(n=0,i=0):"top"===e||"bottom"===e?!r.left&&r.right?n=-s:(r.left&&!r.right||r.left&&r.right)&&(n=s):"left"!==e&&"right"!==e||(!r.top&&r.bottom?r.left&&r.right?(n="left"===e?2*+s:0,i=-s):n="left"===e?+s:-s:r.top&&!r.bottom?r.left&&r.right?(n="left"===e?0:2*s,i=-s):n=0:r.top&&r.bottom?i=r.left&&r.right?2*+s:+s:(n=r.left&&r.right?2*+s:+s,i=r.left&&r.right?2*-s:-s)),{x:n,y:i}}(n,t,g,f);if(0!==S||0!==C){const e=`${O.getAttribute("transform")||""} translate(${S}, ${C})`.trim();O.setAttribute("transform",e)}u.appendChild(O),r.appendChild((({document:e,value:t,position:o,style:r,instanceId:n})=>{const i=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-${n}`),s.setAttribute("text-anchor","middle"),s.setAttribute("startOffset","50%"),s.textContent=t,s.setAttribute("alignment-baseline","middle");const a=G(r);return i.setAttribute("style",a),i.appendChild(s),i})({document:e,position:n,rotate:b,value:o,style:d,instanceId:m}))}},z=({document:e,thickness:t,value:o,svg:r,position:n,height:i,width:s,offset:a=0,style:d})=>{const l=e.createElementNS("http://www.w3.org/2000/svg","image"),c=Math.min(s,i);let u=(s-c+t)/2,p=(i-c+t)/2+a;n===Z?u+=(c-t)/2:n===V?(u+=c-t,p+=(c-t)/2):n===I?(u+=(c-t)/2,p+=c-t):n===W&&(p+=(c-t)/2),l.setAttribute("href",o||""),l.setAttribute("x",`${u}`),l.setAttribute("y",`${p}`),l.setAttribute("style",d?.toString()||""),r.appendChild(l)},N=e=>(t,o,r,n,i,s,a,d,l)=>{const{instanceId:c}=o,u=r,p=r,h=Math.min(u,p),m=x(e.radius),g=m&&j(m)>0?j(m)/100*h:0,f=x(e?.inner?.radius,g),b=Math.min(Math.max(e.inner?.scale??1,0),1.5),y=e.inner?.horizontalOffset??0,O=e.inner?.verticalOffset??0,S=e.thickness,C=e.color??"#000000",k=e.borderOuter?e.borderOuter.thickness/2:0,w=e.borderInner?e.borderInner.thickness/2:0,q=o.document,T=i.left+i.right,v=i.top+i.bottom,A=n(S,g),D={top:J(e,"top"),right:J(e,"right"),bottom:M(e,"bottom",l()),left:J(e,"left")},Y=q.createElementNS("http://www.w3.org/2000/svg","rect"),G={x:s.left/2,y:s.top/2,width:h+T-s.left,height:h+v-s.top,fill:C,rx:m??g};Object.entries(G).forEach((([e,t])=>{Y.setAttribute(e,t.toString())}));const E=q.createElementNS("http://www.w3.org/2000/svg","rect"),N=g>=200?"50%":g,P=u+T-(i.left+i.right+a.left+a.right+s.left+s.right),F=p+v-(i.top+i.bottom+a.top+a.bottom+s.top+s.bottom),U=P*b,K=F*b,H=(P-U)/2-y,Q=(F-K)/2-O,_={x:i.left+a.left+s.left+H,y:i.top+a.top+s.top+Q,width:U,height:K,fill:A?.getAttribute("fill")||"#ffffff",rx:f??N};Object.entries(_).forEach((([e,t])=>E.setAttribute(e,t.toString()))),A&&(({strokePath:e,backgroundMaskGroup:t,svgElement:o,color:r="#000000"})=>{e.setAttribute("fill",t?.getAttribute("fill")||r),t.setAttribute("fill","none"),t.setAttribute("stroke-width","0"),o.insertBefore(t,o.firstChild)})({strokePath:E,backgroundMaskGroup:A,svgElement:t,color:C});let $=t.getElementsByTagName("defs")[0];$||($=q.createElementNS("http://www.w3.org/2000/svg","defs"),t.insertBefore($,t.firstChild));const ee=q.createElementNS("http://www.w3.org/2000/svg","mask");ee.setAttribute("id",`qr-mask-${c}`),ee.setAttribute("maskUnits","userSpaceOnUse");const te=q.createElementNS("http://www.w3.org/2000/svg","rect");if(te.setAttribute("fill","white"),Object.entries(_).forEach((([e,t])=>{"fill"!==e&&te.setAttribute(e,t.toString())})),$.appendChild(ee),ee.appendChild(te),t.insertBefore(E,t.firstChild?.nextSibling),t.insertBefore(Y,t.firstChild),e.borderOuter&&e.borderOuter.thickness>0){const o=q.createElementNS("http://www.w3.org/2000/svg","rect"),r={x:s.left/2,y:s.top/2,width:u+T-s.left,height:p+v-s.top,fill:"none",rx:m??g,stroke:e.borderOuter.color||"#c0c0c0","stroke-width":e.borderOuter.thickness};Object.entries(r).forEach((([e,t])=>o.setAttribute(e,t.toString()))),t.insertBefore(o,t.firstChild?.nextSibling)}if(A){if(Array.from(t.getElementsByTagName("rect"))[0]){const e=t.firstChild;e?t.insertBefore(A,e):t.appendChild(A)}}if(e.borderInner&&e.borderInner.thickness>0){const o=q.createElementNS("http://www.w3.org/2000/svg","rect"),r={x:i.left+a.left+s.left+H,y:i.top+a.top+s.top+Q,width:U,height:K,fill:"none",stroke:e.borderInner.color||"#c0c0c0","stroke-width":a.left,rx:f??N};Object.entries(r).forEach((([e,t])=>o.setAttribute(e,t.toString()))),t.appendChild(o)}let oe={...X};if(!l()){const t=((e,t=[Z,W,V])=>{for(const o of t){const t=e.decorations?.[o];if(t&&t.enableText&&!t.disabled&&t.type===R&&t.style)return t.style}})(e);t&&(oe={...oe,style:t})}const re=l()?e:{...e,decorations:{...e.decorations,bottom:{...e.decorations?.bottom||{},...oe,disabled:!1,enableText:!0}}},ne=[Z,W,V,I];for(const e of ne){const o=re.decorations?.[e];if(!o||!o.enableText||!D[e])continue;const r=o.type||R,n=r===B?z:r===R?L:void 0;n&&n({document:q,svg:t,position:e,thickness:re.thickness,value:o.value??"",style:o.style,offset:o.offset,curveAdjustment:o.curveAdjustment,curveDisabled:o.curveDisabled,height:p+v,width:u+T,enabledBorders:D,outerBorderPadding:k,innerBorderPadding:w,round:m,curveRadius:o.curveRadius,instanceId:c,noBorderThickness:d})}};var P,F,U,K,H,Q;function _(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==Q.overlay&&(t.imageOptions.margin=0),t.dotsOptions={...t.dotsOptions},t.dotsOptions.gradient&&(t.dotsOptions.gradient=_(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=_(t.cornersSquareOptions.gradient))),t.cornersDotOptions&&(t.cornersDotOptions={...t.cornersDotOptions},t.cornersDotOptions.gradient&&(t.cornersDotOptions.gradient=_(t.cornersDotOptions.gradient))),t.backgroundOptions&&(t.backgroundOptions={...t.backgroundOptions},t.backgroundOptions.gradient&&(t.backgroundOptions.gradient=_(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&&""!==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"}(P||(P={})),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"}(U||(U={})),function(e){e.dot="dot",e.square="square",e.rounded="rounded",e.classy="classy",e.outpoint="outpoint",e.inpoint="inpoint"}(K||(K={})),function(e){e.square="square",e.circle="circle"}(H||(H={})),function(e){e.center="center",e.overlay="overlay",e.background="background"}(Q||(Q={}));const ee={[C.L]:.07,[C.M]:.15,[C.Q]:.25,[C.H]:.3};function te(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.borderFontWeight){t.borderOptions?(t.borderOptions.hasBorder=!0,void 0===t.borderOptions.thickness&&(t.borderOptions.thickness=0)):t.borderOptions={hasBorder:!0,thickness:0};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.borderInnerThickness?o.borderInner={color:void 0!==e.borderInnerColor?e.borderInnerColor:o.borderInner?.color,thickness:e.borderInnerThickness}:void 0!==e.borderInnerColor&&o.borderInner&&(o.borderInner.color=e.borderInnerColor),void 0!==e.borderInnerRadius&&(o.inner={...o.inner||{},radius:String(e.borderInnerRadius)}),void 0!==e.borderOuterThickness?o.borderOuter={color:void 0!==e.borderOuterColor?e.borderOuterColor:o.borderOuter?.color,thickness:e.borderOuterThickness}:void 0!==e.borderOuterColor&&o.borderOuter&&(o.borderOuter.color=e.borderOuterColor);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.borderFontWeight&&(r.fontWeight=e.borderFontWeight),o.decorations||(o.decorations={});const n=o.decorations?JSON.parse(JSON.stringify(o.decorations)):{};let i=!1;["top","right","bottom","left"].forEach((t=>{const o=`borderText${t.charAt(0).toUpperCase()+t.slice(1)}`,s=e[o];void 0!==s?(n[t]||(n[t]={}),n[t]={...n[t],value:s,enableText:!0,style:{...n[t]?.style||{},...r}},i=!0):n[t]?.value&&Object.keys(r).length>0&&(n[t]||(n[t]={}),n[t].style={...n[t].style||{},...r},i=!0)})),i&&(o.decorations=n)}return t}function oe(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 re{constructor(){}close(){}}class ne extends re{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;ne.isWhitespace(e)||(this.buffer=this.buffer<<6|ne.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 ie extends re{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 ne(new ie(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 n=0;const i={};for(;;){const e=o.readByte();if(-1==e)break;const t=r(),s=r()<<8|r();i[String.fromCharCode(e<<8|t)]=s,n+=1}if(n!=t)throw new Error(n+"!="+t);return i})(),r="?".charCodeAt(0)})("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MIWC4zCGguQwh4LlMIiC5jCJgucwioLoMIuC6TCMguowjYLrMI6C7DCPgu0wkILuMJGC7zCSgvAwk4LxMJuBSjCcgUswnYFUMJ6BVTChg0AwooNBMKODQjCkg0MwpYNEMKaDRTCng0YwqINHMKmDSDCqg0kwq4NKMKyDSzCtg0wwroNNMK+DTjCwg08wsYNQMLKDUTCzg1IwtINTMLWDVDC2g1Uwt4NWMLiDVzC5g1gwuoNZMLuDWjC8g1swvYNcML6DXTC/g14wwINfMMGDYDDCg2Eww4NiMMSDYzDFg2QwxoNlMMeDZjDIg2cwyYNoMMqDaTDLg2owzINrMM2DbDDOg20wz4NuMNCDbzDRg3Aw0oNxMNODcjDUg3Mw1YN0MNaDdTDXg3Yw2IN3MNmDeDDag3kw24N6MNyDezDdg3ww3oN9MN+DfjDgg4Aw4YOBMOKDgjDjg4Mw5IOEMOWDhTDmg4Yw54OHMOiDiDDpg4kw6oOKMOuDizDsg4ww7YONMO6DjjDvg48w8IOQMPGDkTDyg5Iw84OTMPSDlDD1g5Uw9oOWMPuBRTD8gVsw/YFSMP6BU04AiOpOAZKaTgOOtU4HlpxOCI/kTgmOT04Kj+NOC4m6Tg2Vc04Ol15OEJigThGJTk4Uio5OFZihThaQok4XmcBOGIt1ThmVuE4ej+VOIZe8TiaVwE4qmKJOLZKGTjGYo04yi/hONpikTjiK2045kk9OO47lTjyYpU4/mKZOQpinTkOUVE5Fi3ZOS5RWTk2T4U5OjMFOT5ZSTlXlaE5WmKhOV4/mTliYqU5ZibNOXYvjTl6M7k5fludOYpukTnGXkE5zk/tOfoqjToCLVE6CmKpOhZirToaXuU6Il1xOiZGIToqYrU6LjpZOjJPxTo6YsE6RiV1OkozdTpSM3E6ViOROmJhqTpmYaU6bjbFOnIifTp6YsU6fmLJOoJizTqGWU06imLROpIzwTqWI5U6mlpJOqIucTquLnU6si55OrZLgTq6Xuk6wmLVOs5i2TraYt066kGxOwI9ZTsGQbU7CmLxOxJi6TsaYu07Hi3dOyo2hTsuJ7k7NmLlOzpi4Ts+Vp07UjmVO1Y5kTtaRvE7XmL1O2JV0TtmQ5U7dgVdO3pi+Tt+YwE7jkeNO5JffTuWIyE7tmL9O7om8TvCLwk7ykodO9oyPTveYwU77lENPAYrpTwmYwk8KiMlPDYzeTw6K6k8PlZpPEJSwTxGLeE8aie9PHJjlTx2TYE8vlIxPMJjETzSUuk82l+BPOJBMTzqOZk88jpdPPYm+T0OSz09GkkFPR5jIT02Iyk9OkuFPT49aT1CNsk9Rl0NPU5HMT1WJvU9XmMdPWZddT1qYw09bmMVPXI3sT12Yxk9em0NPaZjOT2+Y0U9wmM9Pc4nAT3WVuU92mMlPe5jNT3yM8U9/jmdPg4qkT4aY0k+ImMpPi5fhT42OmE+PmMtPkZjQT5aY00+YmMxPm4ufT52Iy0+gi6BPoYm/T6ubRE+tlplPrpWOT6+M8k+1kE5Ptpe1T7+V1k/CjFdPw5GjT8SJ4k/Kj3JPzpjXT9CY3E/RmNpP1JjVT9eRrU/YmNhP2pjbT9uY2U/dldtP35jWT+GQTU/jlpNP5JjdT+WY3k/uj0NP75jrT/OUb0/1lVVP9pjmT/iV7k/6ibRP/pjqUAWY5FAGmO1QCZFxUAuMwlANlHtQD+DFUBGY7FASk3xQFJjhUBaM9FAZjPNQGpjfUB+O2FAhmOdQI5XtUCSSbFAlmONQJoyRUCiY4FApmOhQKpjiUCuXz1AsmOlQLZhgUDaL5FA5jJBQQ5juUEeY71BImPNQSYjMUE+VzlBQmPJQVZjxUFaY9VBamPRQXJLiUGWMklBsmPZQco7DUHSRpFB1kuNQdov0UHiY91B9i1VQgJj4UIWY+lCNllRQkYyGUJiOUFCZlPVQmpj5UKyNw1Ctl2JQspj8ULOZQlC0mPtQtY3CULePnVC+jFhQwplDUMWLzVDJmUBQyplBUM2TrVDPkZxQ0YuhUNWWbFDWmURQ2pe7UN6ZRVDjmUhQ5ZlGUOeRbVDtmUdQ7plJUPWZS1D5mUpQ+5XGUQCLVlEBmU1RAplOUQSJrVEJmUxREo7yURSZUVEVmVBRFplPURiY1FEamVJRH4+eUSGZU1Eql0RRMpbXUTeZVVE6mVRRO5lXUTyZVlE/mVhRQJlZUUGI8lFDjLNRRIxaUUWPW1FGkptRR4uiUUiQ5lFJjPVRS42OUUyZW1FNlsZRTpNlUVCOmVFSmVpRVJlcUVqTfVFcipVRYpldUWWT/FFokVNRaZlfUWqZYFFrlKpRbIz2UW2YWlFumWFRcYukUXWVulF2kbRRd4vvUXiTVFF8jJNRgJliUYKZY1GFk+BRhol+UYmZZlGKjftRjJllUY2NxFGPmWdRkOPsUZGZaFGSlmBRk5lpUZWZalGWmWtRl4/nUZmOylGgiqVRopluUaSZbFGllrtRppltUaiVeVGpmW9RqplwUauZcVGsk35RsJl1UbGZc1GymXRRs5lyUbSN4VG1mXZRtpboUbeX4lG9mXdRxJCmUcWZeFHGj3lRyZl5UcuSnFHMl71RzZOAUdaZw1HbmXpR3OqjUd2Lw1HgmXtR4ZZ9UeaPiFHnkfpR6Zl9UeqT4lHtmX5R8JmAUfGKTVH1mYFR9oulUfiTylH5iZpR+o9vUf2Un1H+mYJSAJOBUgOQblIEmYNSBpWqUgeQ2FIIiqBSCoqnUguZhFIOmYZSEYxZUhSZhVIXl/FSHY+JUiSUu1IllcpSJ5mHUimXmFIqmYhSLpmJUjCTnlIzmYpSNpCnUjeN/FI4jJRSOZmLUjqOaFI7jY9SQ5LkUkSZjVJHkaVSSo3tUkuZjlJMmY9STZFPUk+ZjFJUmZFSVpZVUluNhFJemZBSY4yVUmSN3FJllI1SaZmUUmqZklJvlZtScI/oUnGZm1JyioRSc5mVUnSZk1J1kW5SfZmXUn+ZllKDimNSh4yAUoiZnFKJl6tSjZmYUpGZnVKSmZpSlJmZUpuXzVKfjPdSoInBUqOX8lKpj5VSqpN3UquNhVKsmaBSrZmhUrGX41K0mEpStZmjUrmM+FK8maJSvopOUsGZpFLDlnVSxZK6UseXRVLJlddSzZmlUtLo01LVk65S15mmUtiKqFLZlrFS3Y+fUt6Zp1LfleVS4JmrUuKQqFLjmahS5IvOUuaZqVLniqlS8oxNUvOZrFL1ma1S+JmuUvmZr1L6jtlS/oz5Uv+W3FMBluZTApP1UwWV71MGmbBTCJmxUw2Zs1MPmbVTEJm0UxWZtlMWibtTF5ZrUxmN+lMambdTHZF4UyCPoFMhi6dTI5m4UyqU2VMvmblTMZm6UzOZu1M4mbxTOZVDUzqL5lM7iONTP5O9U0CZvVNBj1xTQ5DnU0WZv1NGmb5TR4+hU0iM31NJmcFTSpS8U02ZwlNRlNpTUpGyU1OR7FNUi6ZTV5PsU1iSUFNalI5TXJZtU16ZxFNgkOhTZoxUU2mZxVNumcZTb4lLU3CI81NxiutTc5GmU3SLcFN1l5FTd5nJU3iJtVN7mchTf4uoU4KZylOElu9TlpnLU5iX0FOajPpTn4y0U6CZzFOlmc5TppnNU6iQflOpiVhTrYl9U66Zz1OwmdBTs4y1U7aZ0VO7i45Two5RU8OZ0lPIlpRTyY2zU8qLeVPLl0ZTzJFvU82UvVPOjvtT1I9mU9aO5lPXjvNT2Y+WU9uUvlPfmdVT4YliU+KRcFPjjPtT5IzDU+WL5VPomdlT6ZJAU+qR/FPri6lT7I+iU+2Z2lPumdhT74nCU/CR5FPxjrZT8o5qU/OJRVP2ipBT942GU/iOaVP6mdtUAZncVAOLaFQEimVUCI2HVAmLZ1QKkt1UC4lEVAyTr1QNlrxUDo1AVA+XmVQQk2ZUEYz8VBuMTlQdmeVUH4vhVCCWaVQmlNtUKZnkVCuK3FQsmd9ULZngVC6Z4lQ2meNUOIt6VDmQgVQ7latUPJnhVD2Z3VQ+jOFUQJneVEKYQ1RGlfBUSJLmVEmM4FRKjZBUTpnmVFGT21RfmepUaI78VGqO9FRwme1UcZnrVHOWoVR1mehUdpnxVHeZ7FR7me9UfIzEVH2WvVSAmfBUhJnyVIaZ9FSLje5UjJhhVI6Z6VSPmedUkJnzVJKZ7lSimfZUpJpCVKWZ+FSomfxUq5pAVKyZ+VSvml1Uso3nVLOKUFS4mfdUvJpEVL2I9FS+mkNUwIijVMGVaVTCmkFUxJn6VMeZ9VTImftUyY3GVNiaRVThiPVU4ppOVOWaRlTmmkdU6I+jVOmWiVTtmkxU7ppLVPKTTlT6mk1U/ZpKVQSJU1UGjbRVB5BPVQ+aSFUQk4JVFJpJVRaIoFUumlNVL5dCVTGPpVUzmllVOJpYVTmaT1U+kcFVQJpQVUSR7VVFmlVVRo+kVUyaUlVPluJVU4xbVVaaVlVXmldVXJpUVV2aWlVjmlFVe5pgVXyaZVV+mmFVgJpcVYOaZlWEkVBVh5poVYmNQVWKml5Vi5KdVZiaYlWZmltVmoqrVZyK7FWdioVVnppjVZ+aX1WnjJZVqJppVamaZ1WqkXJVq4tpVayLqlWummRVsIvyVbaJY1XEmm1VxZprVceapVXUmnBV2ppqVdyablXfmmxV445rVeSab1X3mnJV+Zp3Vf2adVX+mnRWBpJRVgmJw1YUmnFWFppzVhePplYYiVJWG5p2VimJ3FYvmoJWMY/6VjKafVY0mntWNpp8VjiaflZCiVxWTJFYVk6aeFZQmnlWW4qaVmSagVZoiu1WapqEVmuagFZsmoNWdJWsVniT01Z6lLZWgJqGVoaahVaHimRWipqHVo+ailaUmolWoJqIVqKUWFalmotWrpqMVrSajla2mo1WvJqQVsCak1bBmpFWwpqPVsOaklbImpRWzpqVVtGallbTmpdW15qYVtiZZFbajvpW245sVt6J8VbgiPZW45JjVu6amVbwjaJW8ojNVvOQfVb5mppW+ozFVv2NkVb/mpxXAJqbVwOV3lcEmp1XCJqfVwmanlcLmqBXDZqhVw+Ml1cSiYBXE5qiVxaapFcYmqNXHJqmVx+TeVcmmqdXJ4izVyiN3VctjFxXMJJuVzeaqFc4mqlXO5qrV0CarFdCjeJXR4vPV0qWVldOmqpXT5qtV1CNv1dRjUJXYZqxV2SNo1dmklJXaZquV2qS2Fd/mrJXgpCCV4iasFeJmrNXi4xeV5OatFegmrVXoo1DV6OKX1ekmrdXqpq4V7CauVezmrZXwJqvV8OaulfGmrtXy5aEV86P6VfSmr1X05q+V9SavFfWmsBX3JRXV9+I5lfglXVX45rBV/SP+1f3jrdX+ZR8V/qK7lf8jelYAJZ4WAKTsFgFjJhYBpHNWAqav1gLmsJYFZHCWBmaw1gdmsRYIZrGWCSS51gqiqxYL+qfWDCJgVgxlfFYNI/qWDWTZ1g6jeRYPZrMWECVu1hBl9tYSonyWEuayFhRkVlYUprLWFSTg1hXk2hYWJOEWFmUt1hakstYXo3HWGKax1hpiZZYa5NVWHCayVhymsVYdZBvWHmazVh+j21Yg4urWIWazliTleZYl5GdWJySxFifmtBYqJZuWKua0ViumtZYs5WtWLia1Vi5ms9YuprSWLua1Fi+jaRYwZXHWMWa11jHkmRYyonzWMyP61jRmtlY05rYWNWNiFjXmtpY2JrcWNma21jcmt5Y3prTWN+a4Fjkmt9Y5ZrdWOuObVjskHBY7pFzWO+a4VjwkLpY8YjrWPKUhFj3ktlY+ZrjWPqa4lj7muRY/JrlWP2a5lkCmudZCZXPWQqa6FkPicRZEJrpWRWXW1kWik9ZGJnHWRmPZ1kakb1ZG5rqWRyW6VkilrJZJZrsWSeR5Vkpk1ZZKpG+WSuVdlksmu1ZLZruWS6Jm1kxjrhZMprvWTeIzlk4mvBZPprxWUSJgllHiu9ZSJPeWUmV8llOmvVZT5F0WVCa9FlRjF9ZVJZ6WVWa81lXk4VZWJr3WVqa9llgmvlZYpr4WWWJnFlnmvpZaI+nWWma/FlqkkRZbJr7WW6VsVlzj5dZdJN6WXibQFl9jURZgZtBWYKUQFmDlNxZhJbPWYqURFmNm0pZk4tXWZaXZFmZlq1Zm5uqWZ2bQlmjm0VZpZHDWaiWV1msk2lZsptGWbmWhVm7jchZvo+oWcabR1nJjm9Zy45uWdCIt1nRjMZZ05CpWdSIz1nZm0tZ2ptMWdybSVnliVdZ5oqtWeibSFnqlsNZ65VQWfaIpln7iPdZ/45wWgGI0FoDiKFaCZtRWhGbT1oYlrpaGptSWhybUFofm05aIJBQWiWbTVopldhaL4ziWjWbVlo2m1daPI+pWkCbU1pBmEtaRpRrWkmbVVpajaVaYptYWmaVd1pqm1labJtUWn+WuVqSlH1amptaWpuVUVq8m1tavZtfWr6bXFrBicVawpteWsmOuVrLm11azIyZWtCba1rWm2Ra15thWuGShFrjm2Ba5ptiWumbY1r6m2Va+5tmWwmK8FsLm2hbDJtnWxabaVsij+xbKptsWyyS2lswiWRbMptqWzabbVs+m25bQJtxW0Obb1tFm3BbUI5xW1GbcltUjUVbVZtzW1eOmltYkbZbWpt0W1ubdVtcjnlbXY1GW1+W0Ftji0dbZIzHW2WbdltmindbaZt3W2uRt1twm3hbcZuhW3ObeVt1m3pbeJt7W3qbfVuAm35bg5uAW4WR7luHiUZbiI7nW4mIwFuLkXZbjIquW42Os1uPjUdblZOGW5ePQFuYiq9bmZKIW5qS6FubiLZbnItYW52V81ufjsBbootxW6OQ6VukjrpbpZdHW6abgVuui3tbsI3JW7OKUVu0iYNbtY+qW7aJxlu4m4JbuZdlW7+PaFvCjuJbw5uDW8SK8VvFk9BbxpanW8ebhFvJm4VbzJV4W9Cbh1vSiqZb04v1W9SbhlvbirBb3ZBRW96bi1vfjkBb4YnHW+Kbilvkm4hb5ZuMW+abiVvnlEpb6J7LW+mQUlvrm41b7pe+W/Cbjlvzm5Bb9ZKeW/abj1v4kKFb+o6bW/6Rzlv/jvVcAZWVXAKQ6lwEjstcBZuRXAaPq1wHm5JcCJuTXAmI0VwKkbhcC5BxXA2blFwOk7FcD4+sXBGPrVwTm5VcFpDrXBqPrlwgm5ZcIpuXXCSW3lwom5hcLYvEXDGPQVw4m5lcOZuaXDqO2lw7kEtcPJPyXD2Qc1w+lPZcP5RBXECLx1xBm5tcRYuPXEabnFxIi/xcSpPNXEuJrlxNjnJcTpudXE+boFxQm59cUYv7XFObnlxVk1dcXpGuXGCTalxhjsZcZJF3XGWXmlxsm6JcbpujXG+T1FxxjlJcdpulXHmbplyMm6dckIryXJGbqFyUm6lcoYmqXKiRWlypiuJcq5urXKyWplyxkdBcs4p4XLabrVy3m69cuIrdXLubrFy8m65cvpuxXMWbsFzHm7Jc2ZuzXOCTu1zhi6xc6InjXOmbtFzqm7lc7Zu3XO+V9VzwlfRc9pOHXPqbtlz7j3Nc/Zu1XQeQkl0Lm7pdDo3oXRGbwF0Um8FdFZu7XRaKUl0Xm7xdGJvFXRmbxF0am8NdG5u/XR+bvl0im8JdKZX2XUubyV1Mm8ZdTpvIXVCXkl1Sm8ddXJu9XWmQk11sm8pdb421XXOby112m8xdgpvPXYSbzl2Hm81di5OIXYybuF2Qm9VdnZvRXaKb0F2sm9JdrpvTXbeb1l26l+RdvJvXXb2b1F3Jm9hdzIreXc2b2V3Sm9td05vaXdab3F3bm91d3ZDsXd6PQl3hj4Rd45GDXeWNSF3mjbZd541JXeiLkF3rm95d7o23XfGMyF3ym99d85akXfSUYl31m+Bd941KXfuKql39kkZd/ovQXgKOc14DlXpeBpS/Xgub4V4MivNeEZvkXhaSn14Zm+NeGpviXhub5V4dkuleJZCDXiuOdF4tkMheL5HRXjCLQV4zkqBeNpvmXjeb5144j+1ePZZYXkCb6l5Dm+leRJvoXkWVnV5Hm/FeTJZ5Xk6b615Um+1eVZaLXleb7F5fm+5eYZSmXmKb715jlbxeZJvwXnKKsV5zlb1edJROXnWb8l52m/NeeI1LXnmKsl56m/Ree4y2XnyXY159l0hefor0Xn+b9l6BkqFeg41MXoSPr16HlN1eio+wXo+PmF6VkupelpX3XpeTWF6ajU1enJV7XqCb916mk3hep43AXquMyV6tkutetYjBXraPjl63jU5euJdmXsGb+F7Cm/lew5RwXsib+l7Jl/VeyphMXs+b/F7Qm/te04pmXtacQF7anENe25xEXt2cQl7flV9e4I+xXuGcRl7inEVe45xBXuicR17pnEhe7JxJXvCcTF7xnEpe85xLXvScTV72iYRe95LsXvicTl76jJpe+4n0XvyUVV7+nE9e/5P5XwGV2V8DnFBfBJhNXwmcUV8Klb5fC5xUXwyYn18NmK9fD46uXxCT818RnFVfE4t8XxSSol8ViPhfFpxWXxeVpF8YjU9fG5JvXx+S7V8llu1fJoy3XyeMyl8pnFdfLZxYXy+cXl8xjuNfNZKjXzeLrV84nFlfPJVKXz6SZV9BnFpfSJxbX0qLrl9MnFxfTpxdX1GcX19Tk5ZfVpxgX1ecYV9ZnGJfXJxTX12cUl9hnGNfYoxgX2aVRl9pjcpfapVWX2uSpF9slWpfbZxkX3CPsl9xiWVfc5xlX3ecZl95lvBffJTeX3+caV+AiZ1fgZCqX4KcaF+DnGdfhIxhX4WR0l+HnG1fiJxrX4qcal+Ll6VfjIzjX5CPmV+RnGxfkpNrX5OPXV+Xk75fmJxwX5mcb1+enG5foJxxX6GM5F+onHJfqZWcX6qPel+tnHNfrpT3X7OTv1+0kqVfuZNPX7ycdF+9i0pfw5BTX8WVS1/MivVfzZRFX9acdV/XjnVf2JZZX9mWWl/ciZ5f3Zx6X+CSiV/knHdf64n1X/Ccq1/xnHlf9ZRPX/iceF/7nHZf/Y2aX/+cfGAOnINgD5yJYBCcgWASk3tgFZyGYBaVfGAZnIBgG5yFYByX5WAdjnZgIJHTYCGcfWAli31gJpyIYCeQq2AoiYVgKZyCYCqJ9mArnIdgL4uvYDGchGA6nIpgQZyMYEKclmBDnJRgRpyRYEqckGBLl/ZgTZySYFCLsGBSjVBgVY+aYFmcmWBanItgX5yPYGCcfmBiifhgY5yTYGSclWBlknBgaI2mYGmJtmBqnI1ga5yYYGycl2Bti7Fgb5GnYHCKhmB1jGJgd5yOYIGcmmCDnJ1ghJyfYImOu2CLnKVgjJLuYI2cm2CSnKNglIn3YJacoWCXnKJgmpyeYJucoGCfjOVgoJdJYKOKs2CmiXhgp5ykYKmUWWCqiKtgspTfYLOce2C0nKpgtZyuYLaW42C4nKdgvJOJYL2crGDFj+5gxpytYMeT1WDRmGZg05ypYNicr2DajZtg3JDJYN+I0mDgnKhg4ZymYOOReWDnnJxg6I5TYPCRxGDxnLtg85F6YPSctmD2nLNg95y0YPmO5GD6nLdg+5y6YQCctWEBj0RhA5y4YQacsmEIlvphCZb5YQ2cvGEOnL1hD4jTYRWcsWEai/BhG4ikYR+KtGEhnLlhJ5zBYSicwGEsnMVhNJzGYTycxGE9nMdhPpy/YT+cw2FCnMhhRJzJYUecvmFIjpxhSpzCYUuR1GFMjVFhTZywYU6QVGFTnNZhVZXnYViczGFZnM1hWpzOYV2c1WFfnNRhYpadYWOKtWFlnNJhZ4xkYWiKU2FrnM9hbpe2YW+c0WFwiNRhcZzTYXOcymF0nNBhdZzXYXaMY2F3nMthfpd8YYKXSmGHnNphipzeYY6RnmGQl/dhkZzfYZSc3GGWnNlhmZzYYZqc3WGkla5hp5OyYamMZWGrnOBhrJzbYa6c4WGyjJthtomvYbqc6WG+irZhw5znYcac6GHHjadhyJzmYcmc5GHKnONhy5zqYcyc4mHNnOxh0In5YeOc7mHmnO1h8pKmYfSc8WH2nO9h95zlYfiMnGH6nPBh/Jz0Yf2c82H+nPVh/5zyYgCc9mIInPdiCZz4YgqV6GIMnPpiDZz5Yg6PXmIQkKxiEYnkYhKJ+mIUnPtiFoi9YhqQymIbnPxiHebBYh6dQGIfjIFiIZ1BYiaQ7WIqnUJiLp1DYi+LWWIwnURiMp1FYjOdRmI0kdViOIzLYjuW32I/lltiQI+KYkGdR2JHkO5iSOe7YkmU4GJLjuhiTY3LYk6dSGJTkcViVZWlYliR72JbnUtiXp1JYmCdTGJjnUpiaJ1NYm6Vr2JxiLVidpV9YnmU4WJ8nU5ifp1RYn+Ps2KAi1pigp1PYoOdVmKEj7RiiZ1QYoqUY2KRl31ikp1SYpOdU2KUnVdilZOKYpadVGKXjVJimJDcYpudZWKclLJinpHwYquU4mKsnatisZX4YrWS72K5lpViu51aYryJn2K9kopiwp1jYsWSU2LGnV1ix51kYsidX2LJnWZiyp1iYsydYWLNlI9iz51bYtCJ+2LRnVli0ouRYtOR8WLUnVVi151YYtiNU2LZkNli24+1YtydYGLdlHFi4IuSYuGKZ2Lsiodi7ZBAYu6daGLvnW1i8Z1pYvOMnWL1nW5i9o5BYveNiWL+j0Vi/51cYwGOnWMCnWtjB453YwidbGMJiMJjDJ1nYxGSp2MZi5NjH4uyYyedamMoiKVjK43BYy+QVWM6kvBjPZTSYz6dcGM/kX1jSZGoY0yOSmNNnXFjT51zY1Cdb2NVld9jV5K7Y1yRe2NnlfljaI7MY2mdgGNrnX5jbpCYY3KMnmN2nXhjd4+3Y3qT5mN7lFBjgJ12Y4ORfGOIjvZjiZ17Y4yPtmOOnXVjj516Y5KUcmOWnXRjmIxAY5uKfGOfnXxjoJepY6GNzGOiklRjo515Y6WQ2mOnjVRjqJCEY6mJhmOqkVtjq513Y6yLZGOyjGZjtJLNY7WdfWO7kX5jvp2BY8Cdg2PDkbVjxJ2JY8adhGPJnYZjz5VgY9CS8WPSnYdj1pdLY9qXZ2Pbirdj4YisY+OdhWPpnYJj7or2Y/SJh2P2nYhj+pdoZAadjGQNkblkD52TZBOdjWQWnYpkF52RZBydcmQmnY5kKJ2SZCyUwGQtk4tkNJ2LZDadj2Q6jGdkPo3vZEKQ22ROnZdkWJNFZGedlGRploBkb52VZHadlmR4lsxkepCgZIOMgmSInZ1kko5UZJOdmmSVnZlkmpRRZJ6Ts2Skk1BkpZ2bZKmdnGSrlY9krZRkZK6OQmSwkO9kspZvZLmKaGS7naNkvJ2eZMGXaWTCnaVkxZ2hZMedomTNkYBk0p2gZNSdXmTYnaRk2p2fZOCdqWThnapk4pNGZOOdrGTmjkNk552nZOyLW2Tvna1k8Z2mZPKdsWT0nbBk9p2vZPqdsmT9nbRk/o/vZQCds2UFnbdlGJ21ZRydtmUdnZBlI525ZSSduGUqnZhlK526ZSydrmUvjnhlNJ27ZTWdvGU2nb5lN529ZTidv2U5ifxlO41VZT6V+mU/kK1lRYzMZUidwWVNncRlT5VxZVGLfmVVncNlVp3CZVeUc2VYncVlWYuzZV2dx2VencZlYoq4ZWOOVWVmk9ZlbIxoZXCQlGVynchldJCuZXWTR2V3lX5leJ3JZYKdymWDnctlh5W2ZYibfGWJkMRljJVrZY6N1mWQlONlkZTBZZeTbGWZl79lm53NZZyOzmWfnc5loYi0ZaSL0mWlkMtlp5WAZaudz2WsjmFlrZJmZa+OemWwkFZlt53QZbmV+2W8iZdlvY57ZcGd02XDndFlxJ3UZcWXt2XGndJly5D5Zcyd1WXPkbBl0p3WZdeK+GXZndhl253XZeCd2WXhndpl4or5ZeWT+mXmklVl54uMZeiOfGXpkYFl7I97Ze2IrmXxndtl+omgZfud32YCjVZmA53eZgaNqWYHj7hmCp3dZgyPuWYOlr5mD42oZhOI1WYUkMxmHJ3kZh+Qr2YgiWZmJY90ZieWhmYojfBmLY+6Zi+QpWY0neNmNZ3hZjad4mY8kotmP55FZkGd6GZCjp5mQ41XZkSd5mZJnedmS5BXZk+d5WZSjk5mXZ3qZl6d6WZfne5mYp3vZmSd62ZmikFmZ53sZmid7WZplNNmbpWBZm+MaWZwnfBmdJCwZnaPu2Z6knFmgYvFZoOd8WaEnfVmh4nJZoid8maJnfRmjp3zZpGPi2aWkmdml4jDZpid9madnfdmopKoZqaX72arjmJmrpXpZrSWXGa4nkFmuZ35Zryd/Ga+nftmwZ34ZsSeQGbHk9xmyZ36ZtaeQmbZj4xm2p5DZtyXambdlJhm4J5EZuaeRmbpnkdm8J5IZvKLyGbziWdm9I1YZvWeSWb3nkpm+I+RZvmRgmb8mdZm/ZFdZv6RXGb/kdZnAI3FZwOY8GcIjI5nCZdMZwuV/GcNlZ5nD55LZxSN8WcVkr1nFp5MZxeYTmcbll1nHZKpZx6eTWcfivpnJp5OZyeeT2colthnKpaiZyuWlmcslntnLY5EZy6eUWcxjulnNJZwZzaeU2c3nlZnOJ5VZzqK92c9i4BnP55SZ0GeVGdGnldnSZCZZ06Xm2dPiMdnUI3eZ1GRumdTjttnVo/xZ1meWmdck21nXp5YZ1+RqWdgnllnYY/wZ2KW22djnltnZJ5cZ2WXiGdqnmFnbY1ZZ2+UdGdwnl5ncZOMZ3Kd3GdzneBndYtuZ3eUZmd8nmBnfo+8Z3+UwmeFnmZnh5T4Z4meXWeLnmNnjJ5iZ5CQzWeVlo1nl5fRZ5qWh2ecicpnnY59Z6CYZ2ehnmVnopCVZ6aeZGepnl9nr4zNZ7Oea2e0nmlntonLZ7eeZ2e4nm1nuZ5zZ8GRxmfElb9nxp51Z8qVQWfOnnRnz5SQZ9CWXmfRirln05D1Z9SPX2fYktFn2pdNZ92ecGfenm9n4p5xZ+SebmfnnnZn6Z5sZ+yeamfunnJn755oZ/GSjGfzlvZn9I7EZ/WN8mf7jbhn/paPZ/+KYGgCksxoA5PIaASJaGgTkPBoFpCyaBeMSWgennhoIY1aaCKKnGgpnnpoKoqUaCuegWgynn1oNJDxaDiKamg5japoPIppaD2NzWhAnntoQYyFaEKMamhDk41oRp55aEiIxGhNnnxoTp5+aFCLy2hRjEtoU4q6aFSLamhZnoJoXI33aF2WkWhfjlZoY56DaGeVT2h0no9odomxaHeehGh+npVof56FaIGXwGiDnoxohZR+aI2elGiPnodok4iyaJSeiWiXjVtom56LaJ2eimifnoZooJ6RaKKPvWimmutop4zmaKiXnGitnohor5LyaLCKQmixjatos56AaLWekGi2ioFouZ6OaLqekmi8k45oxIr8aMaesGjJlsdoyp6XaMuK+2jNnp5o0pZfaNSen2jVnqFo156laNiemWjakklo35OPaOCeqWjhnpxo456maOeeoGjukFho756qaPKQsWj5nqho+oq7aQCYb2kBnpZpBJ6kaQWI1mkInphpC5a4aQyenWkNkEFpDpLFaQ+ek2kSnqNpGZCaaRqerWkbipFpHIyfaSGer2kinpppI56uaSWep2kmnptpKJ6raSqerGkwnr1pNJPMaTaeomk5nrlpPZ67aT+S1mlKl2tpU5WWaVSetmlVkchpWZ68aVqRXmlcnrNpXZ7AaV6ev2lgk+1pYZ6+aWKT6GlqnsJpa561aW2Lxmlunrhpb498aXOUgGl0nrppdYvJaXeesml4nrRpeZ6xaXyYT2l9inlpfp63aYGewWmCilRpio3laY6JfGmRntJplJhQaZWe1WmbkFlpnJ7UaaCe02mnntBprp7EabGe4WmynsNptJ7Wabuezmm+nslpv57GacGex2nDns9px+qgacqezGnLjVxpzJLGac2RhGnOnspp0J7FadOeyGnYl2xp2ZaKad2ezWnentdp557faeie2GnrnuVp7Z7jafKe3mn5nt1p+5LOaf2RhWn/nttqAp7ZagWe4GoKnuZqC5Tzagye7GoSnudqE57qahSe5GoXkpRqGZVXahue2moenuJqH4++aiGWzWoinvZqI57paimMoGoqiaFqK4p+ai6e0Wo1j79qNp7uajie9Wo5jvdqOoqSaj2STWpEnutqR57wakie9GpLi7RqWItralme8mpfi0BqYZPJamKe8WpmnvNqcp7tanie72p/ioBqgJJoaoSe+mqNnvhqjoznapCe92qXn0BqnJ53aqCe+Wqinvtqo578aqqfS2qsn0dqrp6NarOfRmq4n0Vqu59CasGe6GrCn0Rqw59DatGfSWrTmEVq2p9MatuL+Wren0hq359KauiUpWrqn01q+p9RavufTmsEl5NrBZ9Pawqe3GsSn1JrFp9Tax2JVGsfn1VrIIyHayGOn2sji9NrJ4miazKXfms3n1drOJ9WazmfWWs6i1xrPYvUaz6KvGtDn1xrR59ba0mfXWtMicxrTpJWa1CfXmtTir1rVJ9ga1mfX2tbn2FrX59ia2GfY2tijn5rY5Cza2SNn2tmlZBraZXga2qYY2tvjpVrc43Oa3SX8Gt4n2RreZ9la3uOgGt/n2ZrgJ9na4OfaWuEn2hrhpZ3a4mPfWuKjupri45ja42famuVn2xrlpBCa5ifa2uen21rpJ9ua6qfb2urn3Brr59xa7Gfc2uyn3Jrs590a7SJo2u1kmlrt591a7qORWu7imtrvJ92a7+TYWvAmsprxYtCa8afd2vLn3hrzZXqa86WiGvSk8Vr0595a9SU5GvYlPlr25bRa9+femvrn3xr7J97a++ffmvzn31sCJ+BbA+OgWwRlq9sE5+CbBSfg2wXi0NsG5+EbCOfhmwkn4VsNJCFbDeVWGw4iWlsPpTDbECS82xBj2BsQouBbE6UxGxQjqxsVZ+IbFeKvmxaiZhsXZPwbF6fh2xfjV1sYJJybGKfiWxon5Fsap+KbHCRv2xyi4Jsc5+SbHqMiGx9i0Rsfp+QbIGfjmyCn4tsg5eAbIiSvmyMk9dsjZ+MbJCflGySn5Nsk4xCbJaJq2yZjblsmp+NbJufj2yhlnZsopHybKuWl2yun5xssZ+dbLOJzWy4laZsuZb7bLqfn2y7jqFsvI/AbL2fmGy+n55sv4mIbMGLtWzEn5VsxZ+abMmQ8mzKlJFszJTlbNOfl2zVlkBs15+ZbNmfomzbn6Bs3Z+bbOGWQWzilGds44uDbOWTRGzoko1s6p+jbO+foWzwkdds8Z+WbPOJam0Ll21tDJ+ubRKfrW0XkPRtGZ+qbRuXjG0ek7RtH5+kbSWSw20piWttKo1ebSufp20yj0ZtM5+sbTWfq202n6ZtOJ+pbTuKiG09n6htPpRobUGXrG1Ej/JtRZDzbVmftG1an7JtXJVsbWOfr21kn7FtZolZbWmNX21qmFFtbIpcbW6Vgm10l4Ftd4pDbXiQWm15n7NthZ+4bYiPwW2Ml09tjp+1bZOfsG2Vn7ZtmZfcbZuTk22ck8Btr4pVbbKJdG21n7xtuJ+/bbyXwW3Al4RtxZ/GbcafwG3Hn71ty5fS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hWmToIVqlZOFbeVKhXflUIV+5VGFgOVEhYSUloWH5U6FiOVGhYrlSIWQ5VKFkeVHhZTlS4WXiZKFmZPjhZvlTIWc5U+FpOVFhaaRRYWo5UmFqY5GhaqQZIWrjE+FrJbyha6W94Wvj5KFueVWhbrlVIXBmG2FyeVThc2XlYXP5VWF0OVXhdXlWIXc5VuF3eVZheSToYXl5VqF6ZTLherlTYX3j5OF+eVchfrlYYX7kZSF/uVghgLlQYYG5WKGB5FohgrlXYYL5V+GE+VehhafUIYXn0GGGuVkhiLlY4Ytl5aGL+G6hjDlZYY/5WaGTeVnhk6M1YZQi3OGVOVphlWZfIZai5WGXJe4hl6L8YZf5WqGZ+VrhmuSjoZx5WyGeZP4hnuIuIaKieGGi+VxhozlcoaT5W2GlY5chqPlboaklGGGqeVvhqrlcIar5XqGr+V0hrDld4a25XOGxOV1hsbldobHjtaGyeV4hsuSYIbNjHWGzophhtTle4bZil6G2+WBht7lfIbf5YCG5JS4hunlfYbs5X6G7ZVnhu6U2Ibv5YKG+JH7hvnljIb75YiG/onphwDlhocClkmHA+WHhwblhIcI5YWHCeWKhwrljYcN5YuHEeWJhxLlg4cYkneHGuWUhxyWqIcl5ZKHKeWThzTljoc35ZCHO+WRhz/lj4dJkOSHS5hYh0zlmIdO5ZmHU+Wfh1WQSYdX5ZuHWeWeh1/llodg5ZWHY+Wgh2aJ2odo5ZyHauWhh27lnYd05ZqHdpKxh3jll4d/lIiHguWlh42XWoef5aSHouWjh6vlrIev5aaHs+Wuh7qXhoe75bGHveWoh8DlqYfE5a2HxuWwh8flr4fL5aeH0OWqh9Llu4fg5bSH7+Wyh/Lls4f25biH9+W5h/mKSYf7i2GH/uW3iAXloogN5baIDuW6iA/ltYgR5byIFeW+iBblvYgh5cCIIuW/iCPleYgn5cSIMeXBiDblwog55cOIO+XFiECMjIhC5ceIROXGiEaPT4hMjXOITZ+liFLlyIhTj3CIV4pYiFnlyYhbiXGIXY/ViF7lyohhjXSIYuXLiGOI34holVyIa+XMiHCQiohy5dOIdeXQiHeSj4h95dGIfuXOiH+L3IiB5c2IguXUiIiMVYiLkdyIjeXaiJLl1oiWkbOIl+XViJnl2Iie5c+IouXZiKTl24irlO2IruXX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ljKWaJY7kWqWP4iilkCRyZZC6JiWRJWNlkvom5ZM6JmWTY1+lk/ompZQjMCWW5XDllzonZZd6J+WXuiell/ooJZiiUCWY5B3lmSPnJZliteWZuihlmqUhpZs6KOWcIlBlnLoopZzksKWdZfLlnaTqZZ36JyWeJeklnqMr5Z9l3qWhYv3loaXspaIjEeWipHglovkQJaN6KSWjopLlo+Qj5aUinWWleimlpfop5aY6KWWmYyElpuN25acj+GWoIlClqOX15an6KmWqOeslqroqJaw6KyWseiqlrLoq5a06K2WtuiulreX6pa46K+WueiwlruQx5a8lLmWwJCdlsGK5ZbEl1mWxYnrlsaPV5bHjNmWyeizlsvospbMjpOWzei0ls7osZbRjkeW1ei4ltblq5bZmdSW25CXltzotpbil6OW45PvluiJSpbqkOGW6460lvCVtZbyiV+W9pfrlveXi5b56LmW+5NklwCO+ZcE6LqXBui7lweQa5cI6LyXCpfslw3ot5cO6L6XD+jAlxHov5cT6L2XFujBlxnowpcckZqXHonglyTow5cnlraXKujElzDoxZcymEmXOJ5Qlznoxpc96MeXPujIl0LozJdE6MmXRujKl0joy5dJ6M2XUpDCl1aW9ZdZkMOXXOjOl16U8Zdg6M+XYepyl2KWypdk6NCXZujRl2jo0pdpinaXa+jUl22QeJdx6NWXdIxDl3no1pd66NqXfOjYl4Ho2ZeEipOXhejXl4bo25eL6NyXjYjGl4/o3ZeQ6N6XmI/il5zo35egi2aXo+jil6bo4Zeo6OCXq+aRl62V2pez6OOXtOjkl8Po5ZfG6OaXyOjnl8vo6JfTitiX3Ojpl+3o6pfulEKX8ujsl/OJuZf16O+X9ujul/uJQ5f/i7+YAZXFmAKSuJgDjaCYBY2AmAaPh5gIkHuYDOjxmA/o8JgQl2GYEYrmmBKU0JgTk9qYF5CcmBiXzJgajHqYIej0mCTo85gslmqYLZOqmDSJb5g36PWYOOjymDuVcJg8l4qYPej2mEbo95hL6PmYTJHomE2KephOinuYT+j4mFSK55hVjLCYWIromFuTXphel96YZ4zamGvo+phv6PuYcOj8mHHpQJhz6UKYdOlBmKiVl5iq6UOYr+lEmLHpRZi26UaYw+lImMTpR5jG6UmY25TymNzjypjfkEiY4otRmOnpSpjr6UuY7ZmqmO6fWpjvlNGY8oj5mPSIuZj8jpSY/ZZPmP6P/JkD6UyZBZbdmQnpTZkKl3uZDIlhmRCOYJkS6U6ZE4nsmRTpT5kY6VCZHelSmR7pU5kg6VWZIelRmSTpVJkoitmZLOlWmS7pV5k96ViZPulZmULpWplF6VyZSelbmUvpXplM6WGZUOldmVHpX5lS6WCZVelimVeLwJmWjvGZl+ljmZjpZJmZjYGZpellmaiKXZmslG6Zrelmma7pZ5mzknmZtJPpmbzpaJnBlJ2ZxJHKmcWJd5nGi+yZyIvtmdCSk5nR6W2Z0ovumdWJ7ZnY6WyZ2+lqmd3pa5nf6WmZ4ul3me3pbpnu6W+Z8elwmfLpcZn46XOZ++lymf+PeJoB6XSaBel2mg6LUpoP6XWaEpGbmhOMsZoZ6XiaKJHLmivpeZowk6uaN+l6mj7pgJpA6X2aQul8mkPpfppF6XuaTemCmlXpgZpX6YSaWovBmlvpg5pf6YWaYumGmmTpiJpl6YeaaemJmmrpi5pr6YqaqI2cmq3pjJqw6Y2auIpbmrzpjprA6Y+axJCRms/pkJrR6ZGa0+mSmtTpk5rYjYKa3umUmt/plZri6Zaa4+mXmubpmJrqlK+a6+mamu2VRZru6Zua7+mZmvHpnZr06Zya9+memvvpn5sG6aCbGOmhmxrpopsf6aObIumkmyPppZsl6aabJ+mnmyjpqJsp6ambKumqmy7pq5sv6aybMZ9UmzLprZs74vabPItTm0GKQJtCjbCbQ+mvm0TprptFlqObTemxm07psptP6bCbUemzm1SWgptY6bSbWoubm2+YRJt06bWbg+m3m46IvJuR6bibkpWpm5PptpuW6bmbl+m6m5/pu5ug6bybqOm9m6qWjpurjkybrY34m66RTpu06b6buenBm8Dpv5vG6cKbyYzvm8rpwJvP6cOb0enEm9LpxZvU6cmb1o5Jm9uR4pvh6cqb4unHm+Ppxpvk6cib6Ix+m/Dpzpvx6c2b8unMm/WIsZwE6dicBunUnAjp1ZwJ6dGcCunXnAzp05wNioKcEJhrnBLp1pwT6dKcFOnQnBXpz5wb6dqcIendnCTp3Jwl6ducLZVonC7p2ZwviPGcMOnenDLp4Jw5io+cOunLnDuJVpw+6eKcRunhnEfp35xIkkycUpaQnFeX2Jxa6eOcYOnknGfp5Zx26eaceOnnnOWSuZzn6eic6ZS1nOvp7Zzs6emc8OnqnPOWUJz0lsKc9pPOnQPp7p0G6e+dB5O8nQjp7J0J6eudDomonRLp950V6fadG4mVnR/p9J0j6fOdJunxnSiKm50q6fCdK46wnSyJp507jYOdPun6nT/p+Z1B6fidROn1nUbp+51I6fydUOpEnVHqQ51Z6kWdXIlMnV3qQJ1e6kGdYI2UnWGWt51k6kKdbJZRnW/qSp1y6kadeupLnYfqSJ2J6kedj4x7nZrqTJ2k6k2dqepOnavqSZ2v6fKdsupPnbSS35246lOduupUnbvqUp3B6lGdwupXncTqUJ3G6lWdz+pWndPqWZ3Z6lid5upbne3qXJ3v6l2d8phonfjqWp35kemd+o3rnf3qXp4a6l+eG+pgnh7qYZ516mKeeIyynnnqY5596mSef46tnoHqZZ6I6maei+pnnozqaJ6R6muekuppnpOYW56V6mqel5ftnp3qbJ6fl9mepeptnqaUnp6p6m6equpwnq3qcZ646m+euY2NnrqWy567loOevJv1nr6fgJ6/lpuexImpnszqc57Ni2+ezup0ns/qdZ7Q6nae0o2VntTqd57Y4NKe2ZbZntuR4Z7c6nie3ep6nt7qeZ7g6nue5ep8nujqfZ7v6n6e9OqAnvbqgZ736oKe+eqDnvvqhJ786oWe/eqGnwfqh58I6oifDpNDnxOM258V6oqfIJFsnyHqi58s6oyfO5VAnz7qjZ9K6o6fS+JWn07m2J9P6OufUuqPn1TqkJ9f6pKfYOqTn2HqlJ9il+6fY+qRn2bqlZ9n6pafauqYn2zql59y6pqfduqbn3fqmZ+Nl7Sfleqcn5zqnZ+d4nOfoOqe/wGBSf8DgZT/BIGQ/wWBk/8GgZX/CIFp/wmBav8KgZb/C4F7/wyBQ/8OgUT/D4Fe/xCCT/8RglD/EoJR/xOCUv8UglP/FYJU/xaCVf8Xglb/GIJX/xmCWP8agUb/G4FH/xyBg/8dgYH/HoGE/x+BSP8ggZf/IYJg/yKCYf8jgmL/JIJj/yWCZP8mgmX/J4Jm/yiCZ/8pgmj/KoJp/yuCav8sgmv/LYJs/y6Cbf8vgm7/MIJv/zGCcP8ygnH/M4Jy/zSCc/81gnT/NoJ1/zeCdv84gnf/OYJ4/zqCef87gW3/PIFf/z2Bbv8+gU//P4FR/0CBTf9BgoH/QoKC/0OCg/9EgoT/RYKF/0aChv9Hgof/SIKI/0mCif9Kgor/S4KL/0yCjP9Ngo3/ToKO/0+Cj/9QgpD/UYKR/1KCkv9TgpP/VIKU/1WClf9Wgpb/V4KX/1iCmP9Zgpn/WoKa/1uBb/9cgWL/XYFw/2EAof9iAKL/YwCj/2QApP9lAKX/ZgCm/2cAp/9oAKj/aQCp/2oAqv9rAKv/bACs/20Arf9uAK7/bwCv/3AAsP9xALH/cgCy/3MAs/90ALT/dQC1/3YAtv93ALf/eAC4/3kAuf96ALr/ewC7/3wAvP99AL3/fgC+/38Av/+AAMD/gQDB/4IAwv+DAMP/hADE/4UAxf+GAMb/hwDH/4gAyP+JAMn/igDK/4sAy/+MAMz/jQDN/44Azv+PAM//kADQ/5EA0f+SANL/kwDT/5QA1P+VANX/lgDW/5cA1/+YANj/mQDZ/5oA2v+bANv/nADc/50A3f+eAN7/nwDf/+OBUP/lgY8=",7070);const se={shape:H.square,qrOptions:{typeNumber:S[0],mode:void 0,errorCorrectionLevel:C.Q},imageOptions:{mode:Q.center,imageSize:.4,crossOrigin:void 0,margin:0},cornersSquareOptions:{type:K.rounded,color:"#000000"},cornersDotOptions:{type:U.dot,color:"#000000"},dotsOptions:{type:F.verticalLine,color:"#000000",size:10},backgroundOptions:{color:"#FFFFFF"},borderOptions:{decorations:{}}},ae={...se,shape:H.square,cornersSquareOptions:{type:K.square},cornersDotOptions:{type:U.square},dotsOptions:{type:F.square}},de={...se,shape:H.square,cornersSquareOptions:{type:K.rounded},cornersDotOptions:{type:U.rounded},dotsOptions:{type:F.verticalLine,size:10}},le={...se,dotsOptions:{...se.dotsOptions,type:F.rounded},cornersSquareOptions:{type:K.dot},cornersDotOptions:{type:U.dot}},ce={...se,dotsOptions:{...se.dotsOptions,type:F.dot},cornersSquareOptions:{type:K.dot},cornersDotOptions:{type:U.dot}},ue={...se,dotsOptions:{...se.dotsOptions,type:F.classy},cornersSquareOptions:{type:K.classy},cornersDotOptions:{type:U.classy}},pe={...se,dotsOptions:{...se.dotsOptions,type:F.extraRounded},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.square}},he={...se,dotsOptions:{...se.dotsOptions,type:F.verticalLine},cornersSquareOptions:{...se.cornersSquareOptions,type:K.classy},cornersDotOptions:{...se.cornersDotOptions,type:U.classy}},me={...se,dotsOptions:{...se.dotsOptions,type:F.horizontalLine},cornersSquareOptions:{...se.cornersSquareOptions,type:K.rounded},cornersDotOptions:{...se.cornersDotOptions,type:U.rounded}},ge={...se,dotsOptions:{...se.dotsOptions,type:F.classyRounded},cornersSquareOptions:{...se.cornersSquareOptions,type:K.outpoint},cornersDotOptions:{...se.cornersDotOptions,type:U.outpoint}},fe={...se,dotsOptions:{...se.dotsOptions,type:F.smallSquare},cornersSquareOptions:{...se.cornersSquareOptions,type:K.inpoint},cornersDotOptions:{...se.cornersDotOptions,type:U.inpoint}},be={...se,dotsOptions:{...se.dotsOptions,type:F.tinySquare},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.heart}},ye={...se,dotsOptions:{...se.dotsOptions,type:F.star},cornersSquareOptions:{...se.cornersSquareOptions,type:K.classy},cornersDotOptions:{...se.cornersDotOptions,type:U.classy}},Oe={...se,dotsOptions:{...se.dotsOptions,type:F.plus},cornersSquareOptions:{...se.cornersSquareOptions,type:K.rounded},cornersDotOptions:{...se.cornersDotOptions,type:U.rounded}},Se={...se,dotsOptions:{...se.dotsOptions,type:F.diamond},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.square}},Ce={...se,dotsOptions:{...se.dotsOptions,type:F.randomDot},cornersSquareOptions:{...se.cornersSquareOptions,type:K.dot},cornersDotOptions:{...se.cornersDotOptions,type:U.dot}},ke={...se,dotsOptions:{...se.dotsOptions,type:F.dot},cornersSquareOptions:{...se.cornersSquareOptions,type:K.outpoint},cornersDotOptions:{...se.cornersDotOptions,type:U.outpoint}},we={...se,dotsOptions:{...se.dotsOptions,type:F.dot},cornersSquareOptions:{...se.cornersSquareOptions,type:K.inpoint},cornersDotOptions:{...se.cornersDotOptions,type:U.inpoint}},qe={...se,dotsOptions:{...se.dotsOptions,type:F.rounded},cornersSquareOptions:{...se.cornersSquareOptions,type:K.outpoint},cornersDotOptions:{...se.cornersDotOptions,type:U.outpoint}},Te={...se,dotsOptions:{...se.dotsOptions,type:F.rounded},cornersSquareOptions:{...se.cornersSquareOptions,type:K.inpoint},cornersDotOptions:{...se.cornersDotOptions,type:U.inpoint}},ve={...se,dotsOptions:{...se.dotsOptions,type:F.classy},cornersSquareOptions:{...se.cornersSquareOptions,type:K.outpoint},cornersDotOptions:{...se.cornersDotOptions,type:U.outpoint}},Ae={...se,dotsOptions:{...se.dotsOptions,type:F.classy},cornersSquareOptions:{...se.cornersSquareOptions,type:K.inpoint},cornersDotOptions:{...se.cornersDotOptions,type:U.inpoint}},De={...se,dotsOptions:{...se.dotsOptions,type:F.square},cornersSquareOptions:{...se.cornersSquareOptions,type:K.outpoint},cornersDotOptions:{...se.cornersDotOptions,type:U.outpoint}},Ze={...se,dotsOptions:{...se.dotsOptions,type:F.square},cornersSquareOptions:{...se.cornersSquareOptions,type:K.inpoint},cornersDotOptions:{...se.cornersDotOptions,type:U.inpoint}},Ie={...se,shape:H.circle,dotsOptions:{...se.dotsOptions,type:F.rounded},cornersSquareOptions:{...se.cornersSquareOptions,type:K.rounded},cornersDotOptions:{...se.cornersDotOptions,type:U.rounded}},We={...se,dotsOptions:{...se.dotsOptions,type:F.dot},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.square}},Ve={...se,dotsOptions:{...se.dotsOptions,type:F.dot},cornersSquareOptions:{...se.cornersSquareOptions,type:K.rounded},cornersDotOptions:{...se.cornersDotOptions,type:U.rounded}},je={...se,dotsOptions:{...se.dotsOptions,type:F.dot},cornersSquareOptions:{...se.cornersSquareOptions,type:K.classy},cornersDotOptions:{...se.cornersDotOptions,type:U.classy}},xe={...se,dotsOptions:{...se.dotsOptions,type:F.rounded},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.square}},Re={...se,dotsOptions:{...se.dotsOptions,type:F.rounded},cornersSquareOptions:{...se.cornersSquareOptions,type:K.classy},cornersDotOptions:{...se.cornersDotOptions,type:U.classy}},Be={...se,dotsOptions:{...se.dotsOptions,type:F.classy},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.square}},Ye={...se,dotsOptions:{...se.dotsOptions,type:F.classy},cornersSquareOptions:{...se.cornersSquareOptions,type:K.rounded},cornersDotOptions:{...se.cornersDotOptions,type:U.rounded}},Je={...se,dotsOptions:{...se.dotsOptions,type:F.square},cornersSquareOptions:{...se.cornersSquareOptions,type:K.dot},cornersDotOptions:{...se.cornersDotOptions,type:U.dot}},Me={...se,dotsOptions:{...se.dotsOptions,type:F.square},cornersSquareOptions:{...se.cornersSquareOptions,type:K.rounded},cornersDotOptions:{...se.cornersDotOptions,type:U.rounded}},Ge={...se,dotsOptions:{...se.dotsOptions,type:F.square},cornersSquareOptions:{...se.cornersSquareOptions,type:K.classy},cornersDotOptions:{...se.cornersDotOptions,type:U.classy}},Xe={...se,dotsOptions:{...se.dotsOptions,type:F.extraRounded},cornersSquareOptions:{...se.cornersSquareOptions,type:K.dot},cornersDotOptions:{...se.cornersDotOptions,type:U.dot}},Ee={...se,dotsOptions:{...se.dotsOptions,type:F.extraRounded},cornersSquareOptions:{...se.cornersSquareOptions,type:K.classy},cornersDotOptions:{...se.cornersDotOptions,type:U.classy}},Le={...se,dotsOptions:{...se.dotsOptions,type:F.classyRounded},cornersSquareOptions:{...se.cornersSquareOptions,type:K.dot},cornersDotOptions:{...se.cornersDotOptions,type:U.dot}},ze={...se,dotsOptions:{...se.dotsOptions,type:F.classyRounded},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.square}},Ne={...se,dotsOptions:{...se.dotsOptions,type:F.verticalLine},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.square}},Pe={...se,dotsOptions:{...se.dotsOptions,type:F.horizontalLine},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.square}},Fe={...se,dotsOptions:{...se.dotsOptions,type:F.horizontalLine},cornersSquareOptions:{...se.cornersSquareOptions,type:K.classy},cornersDotOptions:{...se.cornersDotOptions,type:U.classy}},Ue={...se,dotsOptions:{...se.dotsOptions,type:F.smallSquare},cornersSquareOptions:{...se.cornersSquareOptions,type:K.dot},cornersDotOptions:{...se.cornersDotOptions,type:U.dot}},Ke={...se,dotsOptions:{...se.dotsOptions,type:F.smallSquare},cornersSquareOptions:{...se.cornersSquareOptions,type:K.rounded},cornersDotOptions:{...se.cornersDotOptions,type:U.rounded}},He={...se,dotsOptions:{...se.dotsOptions,type:F.tinySquare},cornersSquareOptions:{...se.cornersSquareOptions,type:K.dot},cornersDotOptions:{...se.cornersDotOptions,type:U.dot}},Qe={...se,dotsOptions:{...se.dotsOptions,type:F.tinySquare},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.square}},_e={...se,dotsOptions:{...se.dotsOptions,type:F.star},cornersSquareOptions:{...se.cornersSquareOptions,type:K.dot},cornersDotOptions:{...se.cornersDotOptions,type:U.dot}},$e={...se,dotsOptions:{...se.dotsOptions,type:F.star},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.square}},et={...se,dotsOptions:{...se.dotsOptions,type:F.plus},cornersSquareOptions:{...se.cornersSquareOptions,type:K.dot},cornersDotOptions:{...se.cornersDotOptions,type:U.dot}},tt={...se,dotsOptions:{...se.dotsOptions,type:F.plus},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.square}},ot={...se,dotsOptions:{...se.dotsOptions,type:F.diamond},cornersSquareOptions:{...se.cornersSquareOptions,type:K.dot},cornersDotOptions:{...se.cornersDotOptions,type:U.dot}},rt={...se,dotsOptions:{...se.dotsOptions,type:F.diamond},cornersSquareOptions:{...se.cornersSquareOptions,type:K.classy},cornersDotOptions:{...se.cornersDotOptions,type:U.classy}},nt={...se,dotsOptions:{...se.dotsOptions,type:F.randomDot},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.square}},it={...se,dotsOptions:{...se.dotsOptions,type:F.randomDot},cornersSquareOptions:{...se.cornersSquareOptions,type:K.classy},cornersDotOptions:{...se.cornersDotOptions,type:U.classy}},st={...se,dotsOptions:{...se.dotsOptions,type:F.dot},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.dot}},at={...se,dotsOptions:{...se.dotsOptions,type:F.dot},cornersSquareOptions:{...se.cornersSquareOptions,type:K.dot},cornersDotOptions:{...se.cornersDotOptions,type:U.square}},dt={...se,dotsOptions:{...se.dotsOptions,type:F.rounded},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.dot}},lt={...se,dotsOptions:{...se.dotsOptions,type:F.rounded},cornersSquareOptions:{...se.cornersSquareOptions,type:K.outpoint},cornersDotOptions:{...se.cornersDotOptions,type:U.rounded}},ct={...se,dotsOptions:{...se.dotsOptions,type:F.classy},cornersSquareOptions:{...se.cornersSquareOptions,type:K.square},cornersDotOptions:{...se.cornersDotOptions,type:U.dot}},ut={...se,dotsOptions:{...se.dotsOptions,type:F.classy},cornersSquareOptions:{...se.cornersSquareOptions,type:K.dot},cornersDotOptions:{...se.cornersDotOptions,type:U.square}},pt={...se,dotsOptions:{...se.dotsOptions,type:F.square},cornersSquareOptions:{...se.cornersSquareOptions,type:K.rounded},cornersDotOptions:{...se.cornersDotOptions,type:U.dot}},ht={...se,dotsOptions:{...se.dotsOptions,type:F.square},cornersSquareOptions:{...se.cornersSquareOptions,type:K.dot},cornersDotOptions:{...se.cornersDotOptions,type:U.rounded}},mt={...se,dotsOptions:{...se.dotsOptions,type:F.dot},cornersSquareOptions:{...se.cornersSquareOptions,type:K.classy},cornersDotOptions:{...se.cornersDotOptions,type:U.dot}},gt={...se,dotsOptions:{...se.dotsOptions,type:F.dot},cornersSquareOptions:{...se.cornersSquareOptions,type:K.dot},cornersDotOptions:{...se.cornersDotOptions,type:U.classy}},ft={...ae,shape:H.circle},bt={...se,shape:H.circle},yt={...le,shape:H.circle},Ot={...ce,shape:H.circle},St={...ue,shape:H.circle},Ct={...pe,shape:H.circle},kt={...he,shape:H.circle},wt={...me,shape:H.circle},qt={...ge,shape:H.circle},Tt={...fe,shape:H.circle},vt={...be,shape:H.circle},At={...ye,shape:H.circle},Dt={...Oe,shape:H.circle},Zt={...Se,shape:H.circle},It={...Ce,shape:H.circle},Wt={...ke,shape:H.circle},Vt={...we,shape:H.circle},jt={...qe,shape:H.circle},xt={...Te,shape:H.circle},Rt={...ve,shape:H.circle},Bt={...Ae,shape:H.circle},Yt={...De,shape:H.circle},Jt={...Ze,shape:H.circle},Mt={...We,shape:H.circle},Gt={...Ve,shape:H.circle},Xt={...je,shape:H.circle},Et={...xe,shape:H.circle},Lt={...Re,shape:H.circle},zt={...Be,shape:H.circle},Nt={...Ye,shape:H.circle},Pt={...Je,shape:H.circle},Ft={...Me,shape:H.circle},Ut={...Ge,shape:H.circle},Kt={...Xe,shape:H.circle},Ht={...Ee,shape:H.circle},Qt={...Le,shape:H.circle},_t={...ze,shape:H.circle},$t={...Ne,shape:H.circle},eo={...Pe,shape:H.circle},to={...Fe,shape:H.circle},oo={...Ue,shape:H.circle},ro={...Ke,shape:H.circle},no={...He,shape:H.circle},io={...Qe,shape:H.circle},so={..._e,shape:H.circle},ao={...$e,shape:H.circle},lo={...et,shape:H.circle},co={...tt,shape:H.circle},uo={...ot,shape:H.circle},po={...rt,shape:H.circle},ho={...nt,shape:H.circle},mo={...it,shape:H.circle},go={...st,shape:H.circle},fo={...at,shape:H.circle},bo={...dt,shape:H.circle},yo={...lt,shape:H.circle},Oo={...ct,shape:H.circle},So={...ut,shape:H.circle},Co={...pt,shape:H.circle},ko={...ht,shape:H.circle},wo={...mt,shape:H.circle},qo={...gt,shape:H.circle},To=[{id:"base",name:"Default",options:se},{id:"plain",name:"Square Plain",options:ae},{id:"plain-circle",name:"Square Plain (Circle)",options:ft},{id:"base-line-rounded",name:"Lines Rounded",options:de},{id:"rounded",name:"Rounded",options:le},{id:"dots",name:"Dots",options:ce},{id:"classy",name:"Classy",options:ue},{id:"extra-rounded-dots-square-corners",name:"Extra Rounded Dots Square Corners",options:pe},{id:"vertical-line-dots-classy-corners",name:"Vertical Lines Classy Corners",options:he},{id:"horizontal-line-dots-rounded-corners",name:"Horizontal Lines Rounded Corners",options:me},{id:"classy-rounded-dots-outpoint-corners",name:"Classy Rounded Dots Outpoint Corners",options:ge},{id:"small-square-dots-inpoint-corners",name:"Small Square Dots Inpoint Corners",options:fe},{id:"tiny-square-dots-square-corners-heart-corners",name:"Tiny Square Dots Heart Corners",options:be},{id:"star-dots-classy-corners",name:"Star Dots Classy Corners",options:ye},{id:"plus-dots-rounded-corners",name:"Plus Dots Rounded Corners",options:Oe},{id:"diamond-dots-square-corners",name:"Diamond Dots Square Corners",options:Se},{id:"random-dot-dots-dot-corners",name:"Random Dots",options:Ce},{id:"dot-dots-outpoint-corners",name:"Dots Outpoint Corners",options:ke},{id:"dot-dots-inpoint-corners",name:"Dots Inpoint Corners",options:we},{id:"rounded-dots-outpoint-corners",name:"Rounded Dots Outpoint Corners",options:qe},{id:"rounded-dots-inpoint-corners",name:"Rounded Dots Inpoint Corners",options:Te},{id:"classy-dots-outpoint-corners",name:"Classy Dots Outpoint Corners",options:ve},{id:"classy-dots-inpoint-corners",name:"Classy Dots Inpoint Corners",options:Ae},{id:"square-dots-outpoint-corners",name:"Square Dots Outpoint Corners",options:De},{id:"square-dots-inpoint-corners",name:"Square Dots Inpoint Corners",options:Ze},{id:"dot-dots-square-corners",name:"Dots Square Corners",options:We},{id:"dot-dots-rounded-corners",name:"Dots Rounded Corners",options:Ve},{id:"dot-dots-classy-corners",name:"Dots Classy Corners",options:je},{id:"rounded-dots-square-corners",name:"Rounded Dots Square Corners",options:xe},{id:"rounded-dots-classy-corners",name:"Rounded Dots Classy Corners",options:Re},{id:"classy-dots-square-corners",name:"Classy Dots Square Corners",options:Be},{id:"classy-dots-rounded-corners",name:"Classy Dots Rounded Corners",options:Ye},{id:"square-dots-dot-corners",name:"Square Dots Dot Corners",options:Je},{id:"square-dots-rounded-corners",name:"Square Dots Rounded Corners",options:Me},{id:"square-dots-classy-corners",name:"Square Dots Classy Corners",options:Ge},{id:"extra-rounded-dots-dot-corners",name:"Extra Rounded Dots Dot Corners",options:Xe},{id:"extra-rounded-dots-classy-corners",name:"Extra Rounded Dots Classy Corners",options:Ee},{id:"classy-rounded-dots-dot-corners",name:"Classy Rounded Dots Dot Corners",options:Le},{id:"classy-rounded-dots-square-corners",name:"Classy Rounded Dots Square Corners",options:ze},{id:"vertical-line-dots-square-corners",name:"Vertical Lines Square Corners",options:Ne},{id:"horizontal-line-dots-square-corners",name:"Horizontal Lines Square Corners",options:Pe},{id:"horizontal-line-dots-classy-corners",name:"Horizontal Lines Classy Corners",options:Fe},{id:"small-square-dots-dot-corners",name:"Small Square Dots Dot Corners",options:Ue},{id:"small-square-dots-rounded-corners",name:"Small Square Dots Rounded Corners",options:Ke},{id:"tiny-square-dots-dot-corners",name:"Tiny Square Dots Dot Corners",options:He},{id:"tiny-square-dots-square-corners",name:"Tiny Square Dots Square Corners",options:Qe},{id:"star-dots-dot-corners",name:"Star Dots Dot Corners",options:_e},{id:"star-dots-square-corners",name:"Star Dots Square Corners",options:$e},{id:"plus-dots-dot-corners",name:"Plus Dots Dot Corners",options:et},{id:"plus-dots-square-corners",name:"Plus Dots Square Corners",options:tt},{id:"diamond-dots-dot-corners",name:"Diamond Dots Dot Corners",options:ot},{id:"diamond-dots-classy-corners",name:"Diamond Dots Classy Corners",options:rt},{id:"random-dot-dots-square-corners",name:"Random Dots Square Corners",options:nt},{id:"random-dot-dots-classy-corners",name:"Random Dots Classy Corners",options:it},{id:"dot-dots-square-corners-dot-corners",name:"Dots Square/Dot Corners",options:st},{id:"dot-dots-dot-corners-square-corners",name:"Dots Dot/Square Corners",options:at},{id:"rounded-dots-square-corners-dot-corners",name:"Rounded Dots Square/Dot Corners",options:dt},{id:"rounded-dots-dot-corners-square-corners",name:"Rounded Dots Dot/Square Corners",options:lt},{id:"classy-dots-square-corners-dot-corners",name:"Classy Dots Square/Dot Corners",options:ct},{id:"classy-dots-dot-corners-square-corners",name:"Classy Dots Dot/Square Corners",options:ut},{id:"square-dots-rounded-corners-dot-corners",name:"Square Dots Rounded/Dot Corners",options:pt},{id:"square-dots-dot-corners-rounded-corners",name:"Square Dots Dot/Rounded Corners",options:ht},{id:"dot-dots-classy-corners-dot-corners",name:"Dots Classy/Dot Corners",options:mt},{id:"dot-dots-dot-corners-classy-corners",name:"Dots Dot/Classy Corners",options:gt},{id:"circle-shape-dot-dots-square-corners",name:"Circle Dots Square Corners",options:Mt},{id:"circle-shape-rounded-dots-rounded-corners",name:"Circle Rounded",options:Ie},{id:"circle-shape-square-dots-square-corners",name:"Circle Square Plain",options:ft},{id:"circle-shape-vertical-line-dots-rounded-corners",name:"Circle Lines Rounded",options:bt},{id:"circle-shape-rounded-dots-dot-corners",name:"Circle Rounded Dots",options:yt},{id:"circle-shape-dot-dots-dot-corners",name:"Circle Dots",options:Ot},{id:"circle-shape-classy-dots-classy-corners",name:"Circle Classy",options:St},{id:"circle-shape-extra-rounded-dots-square-corners",name:"Circle Extra Rounded Dots Square Corners",options:Ct},{id:"circle-shape-vertical-line-dots-classy-corners",name:"Circle Vertical Lines Classy Corners",options:kt},{id:"circle-shape-horizontal-line-dots-rounded-corners",name:"Circle Horizontal Lines Rounded Corners",options:wt},{id:"circle-shape-classy-rounded-dots-outpoint-corners",name:"Circle Classy Rounded Dots Outpoint Corners",options:qt},{id:"circle-shape-small-square-dots-inpoint-corners",name:"Circle Small Square Dots Inpoint Corners",options:Tt},{id:"circle-shape-tiny-square-dots-square-corners-heart-corners",name:"Circle Tiny Square Dots Heart Corners",options:vt},{id:"circle-shape-star-dots-classy-corners",name:"Circle Star Dots Classy Corners",options:At},{id:"circle-shape-plus-dots-rounded-corners",name:"Circle Plus Dots Rounded Corners",options:Dt},{id:"circle-shape-diamond-dots-square-corners",name:"Circle Diamond Dots Square Corners",options:Zt},{id:"circle-shape-random-dot-dots-dot-corners",name:"Circle Random Dots",options:It},{id:"circle-shape-dot-dots-outpoint-corners",name:"Circle Dots Outpoint Corners",options:Wt},{id:"circle-shape-dot-dots-inpoint-corners",name:"Circle Dots Inpoint Corners",options:Vt},{id:"circle-shape-rounded-dots-outpoint-corners",name:"Circle Rounded Dots Outpoint Corners",options:jt},{id:"circle-shape-rounded-dots-inpoint-corners",name:"Circle Rounded Dots Inpoint Corners",options:xt},{id:"circle-shape-classy-dots-outpoint-corners",name:"Circle Classy Dots Outpoint Corners",options:Rt},{id:"circle-shape-classy-dots-inpoint-corners",name:"Circle Classy Dots Inpoint Corners",options:Bt},{id:"circle-shape-square-dots-outpoint-corners",name:"Circle Square Dots Outpoint Corners",options:Yt},{id:"circle-shape-square-dots-inpoint-corners",name:"Circle Square Dots Inpoint Corners",options:Jt},{id:"circle-shape-dot-dots-rounded-corners",name:"Circle Dots Rounded Corners",options:Gt},{id:"circle-shape-dot-dots-classy-corners",name:"Circle Dots Classy Corners",options:Xt},{id:"circle-shape-rounded-dots-square-corners",name:"Circle Rounded Dots Square Corners",options:Et},{id:"circle-shape-rounded-dots-classy-corners",name:"Circle Rounded Dots Classy Corners",options:Lt},{id:"circle-shape-classy-dots-square-corners",name:"Circle Classy Dots Square Corners",options:zt},{id:"circle-shape-classy-dots-rounded-corners",name:"Circle Classy Dots Rounded Corners",options:Nt},{id:"circle-shape-square-dots-dot-corners",name:"Circle Square Dots Dot Corners",options:Pt},{id:"circle-shape-square-dots-rounded-corners",name:"Circle Square Dots Rounded Corners",options:Ft},{id:"circle-shape-square-dots-classy-corners",name:"Circle Square Dots Classy Corners",options:Ut},{id:"circle-shape-extra-rounded-dots-dot-corners",name:"Circle Extra Rounded Dots Dot Corners",options:Kt},{id:"circle-shape-extra-rounded-dots-classy-corners",name:"Circle Extra Rounded Dots Classy Corners",options:Ht},{id:"circle-shape-classy-rounded-dots-dot-corners",name:"Circle Classy Rounded Dots Dot Corners",options:Qt},{id:"circle-shape-classy-rounded-dots-square-corners",name:"Circle Classy Rounded Dots Square Corners",options:_t},{id:"circle-shape-vertical-line-dots-square-corners",name:"Circle Vertical Lines Square Corners",options:$t},{id:"circle-shape-horizontal-line-dots-square-corners",name:"Circle Horizontal Lines Square Corners",options:eo},{id:"circle-shape-horizontal-line-dots-classy-corners",name:"Circle Horizontal Lines Classy Corners",options:to},{id:"circle-shape-small-square-dots-dot-corners",name:"Circle Small Square Dots Dot Corners",options:oo},{id:"circle-shape-small-square-dots-rounded-corners",name:"Circle Small Square Dots Rounded Corners",options:ro},{id:"circle-shape-tiny-square-dots-dot-corners",name:"Circle Tiny Square Dots Dot Corners",options:no},{id:"circle-shape-tiny-square-dots-square-corners",name:"Circle Tiny Square Dots Square Corners",options:io},{id:"circle-shape-star-dots-dot-corners",name:"Circle Star Dots Dot Corners",options:so},{id:"circle-shape-star-dots-square-corners",name:"Circle Star Dots Square Corners",options:ao},{id:"circle-shape-plus-dots-dot-corners",name:"Circle Plus Dots Dot Corners",options:lo},{id:"circle-shape-plus-dots-square-corners",name:"Circle Plus Dots Square Corners",options:co},{id:"circle-shape-diamond-dots-dot-corners",name:"Circle Diamond Dots Dot Corners",options:uo},{id:"circle-shape-diamond-dots-classy-corners",name:"Circle Diamond Dots Classy Corners",options:po},{id:"circle-shape-random-dot-dots-square-corners",name:"Circle Random Dots Square Corners",options:ho},{id:"circle-shape-random-dot-dots-classy-corners",name:"Circle Random Dots Classy Corners",options:mo},{id:"circle-shape-dot-dots-square-corners-dot-corners",name:"Circle Dots Square/Dot Corners",options:go},{id:"circle-shape-dot-dots-dot-corners-square-corners",name:"Circle Dots Dot/Square Corners",options:fo},{id:"circle-shape-rounded-dots-square-corners-dot-corners",name:"Circle Rounded Dots Square/Dot Corners",options:bo},{id:"circle-shape-rounded-dots-dot-corners-square-corners",name:"Circle Rounded Dots Dot/Square Corners",options:yo},{id:"circle-shape-classy-dots-square-corners-dot-corners",name:"Circle Classy Dots Square/Dot Corners",options:Oo},{id:"circle-shape-classy-dots-dot-corners-square-corners",name:"Circle Classy Dots Dot/Square Corners",options:So},{id:"circle-shape-square-dots-rounded-corners-dot-corners",name:"Circle Square Dots Rounded/Dot Corners",options:Co},{id:"circle-shape-square-dots-dot-corners-rounded-corners",name:"Circle Square Dots Dot/Rounded Corners",options:ko},{id:"circle-shape-dot-dots-classy-corners-dot-corners",name:"Circle Dots Classy/Dot Corners",options:wo},{id:"circle-shape-dot-dots-dot-corners-classy-corners",name:"Circle Dots Dot/Classy Corners",options:qo}];function vo(e){return To.find((t=>t.name.toLowerCase()===e.toLowerCase()))}function Ao(e){return To.find((t=>t.id===e))}Ao("base");const Do=e=>"number"==typeof e&&!isNaN(e)&&isFinite(e),Zo=(e,t)=>{const o=[];return Object.values(P).includes(e.type)||o.push({path:`${t}.type`,message:`Invalid gradient type. Must be one of: ${Object.values(P).join(", ")}`,value:e.type}),void 0===e.rotation||Do(e.rotation)||o.push({path:`${t}.rotation`,message:"Rotation must be a valid number",value:e.rotation}),!e.colorStops||!Array.isArray(e.colorStops)||e.colorStops.length<2?o.push({path:`${t}.colorStops`,message:"Gradient must have at least 2 color stops",value:e.colorStops}):e.colorStops.forEach(((e,r)=>{(!Do(e.offset)||e.offset<0||e.offset>1)&&o.push({path:`${t}.colorStops[${r}].offset`,message:"Color stop offset must be between 0 and 1",value:e.offset}),(e=>{if(new Set(["black","white","red","green","blue","yellow","purple","gray","grey","cyan","magenta","lime","pink","teal","brown","orange"]).has(e.toLowerCase()))return!0;if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(e))return!0;if(/^#([A-Fa-f0-9]{4}){1,2}$/.test(e))return!0;if(/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/.test(e)||/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([01]?\.?\d*)\)$/.test(e))return(e.match(/\d+/g)?.map(Number)||[]).every((e=>e>=0&&e<=255));return!1})(e.color)||o.push({path:`${t}.colorStops[${r}].color`,message:"Invalid color format",value:e.color})})),o};function Io(e){const t=[];let o={...se};return e.data&&"string"==typeof e.data||t.push({path:"data",message:"QR data is required and must be a string",value:e.data}),e.shape&&!Object.values(H).includes(e.shape)&&(t.push({path:"shape",message:`Invalid shape type. Must be one of: ${Object.values(H).join(", ")}`,value:e.shape}),e.shape=se.shape),e.qrOptions&&(e.qrOptions.typeNumber&&!Object.values(S).includes(e.qrOptions.typeNumber)&&(t.push({path:"qrOptions.typeNumber",message:"Invalid type number",value:e.qrOptions.typeNumber}),e.qrOptions.typeNumber=se.qrOptions?.typeNumber),e.qrOptions.errorCorrectionLevel&&!Object.values(C).includes(e.qrOptions.errorCorrectionLevel)&&(t.push({path:"qrOptions.errorCorrectionLevel",message:"Invalid error correction level",value:e.qrOptions.errorCorrectionLevel}),e.qrOptions.errorCorrectionLevel=se.qrOptions?.errorCorrectionLevel),e.qrOptions.mode&&!Object.values(k).includes(e.qrOptions.mode)&&(t.push({path:"qrOptions.mode",message:"Invalid mode",value:e.qrOptions.mode}),e.qrOptions.mode=se.qrOptions?.mode)),e.imageOptions&&(e.imageOptions.imageSize&&(!Do(e.imageOptions.imageSize)||e.imageOptions.imageSize<=0||e.imageOptions.imageSize>1)&&(t.push({path:"imageOptions.imageSize",message:"Image size must be between 0 and 1",value:e.imageOptions.imageSize}),e.imageOptions.imageSize=se.imageOptions?.imageSize),e.imageOptions.margin&&(!Do(e.imageOptions.margin)||e.imageOptions.margin<0)&&(t.push({path:"imageOptions.margin",message:"Margin must be a non-negative number",value:e.imageOptions.margin}),e.imageOptions.margin=se.imageOptions?.margin),e.imageOptions.mode&&!Object.values(Q).includes(e.imageOptions.mode)&&(t.push({path:"imageOptions.mode",message:`Invalid image mode. Must be one of: ${Object.values(Q).join(", ")}`,value:e.imageOptions.mode}),e.imageOptions.mode=se.imageOptions?.mode)),e.dotsOptions&&(e.dotsOptions.type&&!Object.values(F).includes(e.dotsOptions.type)&&(t.push({path:"dotsOptions.type",message:`Invalid dot type. Must be one of: ${Object.values(F).join(", ")}`,value:e.dotsOptions.type}),e.dotsOptions.type=se.dotsOptions?.type),e.dotsOptions.size&&(!Do(e.dotsOptions.size)||e.dotsOptions.size<=0)&&(t.push({path:"dotsOptions.size",message:"Dot size must be a positive number",value:e.dotsOptions.size}),e.dotsOptions.size=se.dotsOptions?.size),e.dotsOptions.gradient&&t.push(...Zo(e.dotsOptions.gradient,"dotsOptions.gradient"))),e.cornersSquareOptions&&(e.cornersSquareOptions.type&&!Object.values(K).includes(e.cornersSquareOptions.type)&&(t.push({path:"cornersSquareOptions.type",message:`Invalid corner square type. Must be one of: ${Object.values(K).join(", ")}`,value:e.cornersSquareOptions.type}),e.cornersSquareOptions.type=se.cornersSquareOptions?.type),e.cornersSquareOptions.gradient&&t.push(...Zo(e.cornersSquareOptions.gradient,"cornersSquareOptions.gradient"))),e.cornersDotOptions&&(e.cornersDotOptions.type&&!Object.values(U).includes(e.cornersDotOptions.type)&&(t.push({path:"cornersDotOptions.type",message:`Invalid corner dot type. Must be one of: ${Object.values(U).join(", ")}`,value:e.cornersDotOptions.type}),e.cornersDotOptions.type=se.cornersDotOptions?.type),e.cornersDotOptions.gradient&&t.push(...Zo(e.cornersDotOptions.gradient,"cornersDotOptions.gradient"))),o={...o,...e},{warnings:t,validatedOptions:o}}const Wo=/\.?0+$/;function Vo(e){return e.toFixed(7).replace(Wo,"")}function jo(e,...t){return e.reduce(((e,o,r)=>{let n="";return r&&(n=t[r-1]),"number"==typeof n&&(n=Vo(n)),`${e}${n}${o}`}),"").trim().replace(/[\s\n\r]+/gim," ")}class xo{get element(){return this._element}constructor(e,t){this.type=e,this.document=t}draw(e){let t;switch(this.type){case U.square:t=this.drawSquare;break;case U.heart:t=this.drawHeart;break;case U.rounded:t=this.drawRounded;break;case U.classy:t=this.drawClassy;break;case U.inpoint:t=this.drawInpoint;break;case U.outpoint:t=this.drawOutpoint;break;case U.dot:default:t=this.drawDot}t.call(this,e)}rotateFigure({x:e,y:t,size:o,rotation:r=0,draw:n}){const i=e+o/2,s=t+o/2;n(),this._element?.setAttribute("transform",`rotate(${Vo(180*r/Math.PI)},${i},${s})`)}basicDot(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",Vo(o+t/2)),this._element.setAttribute("cy",Vo(r+t/2)),this._element.setAttribute("r",Vo(t/2.1))}})}basicSquare(e){const{size:t,x:o,y:r}=e,n=t/11;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",Vo(o+n)),this._element.setAttribute("y",Vo(r+n)),this._element.setAttribute("width",Vo(t-2*n)),this._element.setAttribute("height",Vo(t-2*n))}})}basicHeart(e){const{size:t,x:o,y:r}=e;this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path");let n=!1,i=0;this._element.setAttribute("d",["M",1,.3262506,"c",0,.0383376,-.0064626,.0758377,-.0193751,.1125001,"s",-.0356247,.076875,-.0681248,.1206252,"c",-.0325,.0437499,-.0762503,.0931247,-.1312501,.1481249,"C",.7262502,.7625008,.6566626,.8279132,.5724999,.9037505,"L",.5,.9687506,"L",.4275001,.9037505,"C",.3433374,.8279132,.2737499,.7625005,.21875,.7075007,"C",.1637501,.6525008,.1199999,.6031258,.0874999,.5593758,"S",.0322876,.4754133,.0193751,.4387506,"S",0,.3645881,0,.3262506,"c",0,-.0783374,.0262499,-.1437498,.07875,-.1962499,"s",.1179124,-.07875,.1962499,-.07875,"c",.0433376,0,.0845875,.0091625,.12375,.0274999,"S",.4716623,.1229131,.5,.1562506,"c",.0283374,-.0333375,.0620874,-.0591625,.1012502,-.0775,"c",.0391627,-.0183375,.0804126,-.0274999,.12375,-.0274999,"c",.0783374,0,.1437497,.0262499,.1962501,.07875,"S",1,.2479131,1,.3262506,"z"].map((e=>"string"==typeof e?(i=0,n=e.toUpperCase()==e,e):(i++,e*=t,n&&(e+=i%2==1?o:r),Vo(e)))).join(" "))}basicRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",Vo(o)),this._element.setAttribute("y",Vo(r)),this._element.setAttribute("width",Vo(t)),this._element.setAttribute("height",Vo(t)),this._element.setAttribute("rx",Vo(t/4)),this._element.setAttribute("ry",Vo(t/4))}})}basicClassy(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",jo`M ${o} ${r+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${4.5*n} v ${-4.5*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} H ${o} z`)}})}basicInpoint(e){const{size:t,x:o,y:r}=e,n=t;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",jo`M ${o} ${r+n/2} v ${n/4} a ${n/4}, ${n/4} 0 0 0 ${n/4}, ${n/4} h ${n/4*3} v ${-n/4*3} a ${n/4}, ${n/4} 0 0 0 ${-n/4}, ${-n/4} h ${-n/2} a ${n/4}, ${n/4} 0 0 0 ${-n/4}, ${n/4} z`)}})}drawDot({x:e,y:t,size:o,rotation:r}){this.basicDot({x:e,y:t,size:o,rotation:r})}drawSquare({x:e,y:t,size:o,rotation:r}){this.basicSquare({x:e,y:t,size:o,rotation:r})}drawHeart({x:e,y:t,size:o,rotation:r}){this.basicHeart({x:e,y:t,size:o,rotation:r})}drawRounded({x:e,y:t,size:o,rotation:r}){this.basicRounded({x:e,y:t,size:o,rotation:r})}drawClassy({x:e,y:t,size:o,rotation:r}){this.basicClassy({x:e,y:t,size:o,rotation:r})}drawInpoint({x:e,y:t,size:o,rotation:r}){this.basicInpoint({x:e,y:t,size:o,rotation:r})}drawOutpoint({x:e,y:t,size:o,rotation:r}){this.basicInpoint({x:e,y:t,size:o,rotation:(r||0)+Math.PI})}}class Ro{get element(){return this._element}get fill(){return this._fill}constructor(e,t){this.type=e,this.document=t}draw(e){let t;switch(this.type){case K.square:t=this.drawSquare;break;case K.rounded:t=this.drawExtraRounded;break;case K.classy:t=this.drawClassy;break;case K.outpoint:t=this.drawOutpoint;break;case K.inpoint:t=this.drawInpoint;break;case K.dot:default:t=this.drawDot}t.call(this,e)}rotateFigure({x:e,y:t,size:o,rotation:r=0,draw:n}){const i=e+o/2,s=t+o/2;n(),this._element?.setAttribute("transform",`rotate(${Vo(180*r/Math.PI)},${i},${s})`),this._fill?.setAttribute("transform",`rotate(${Vo(180*r/Math.PI)},${i},${s})`)}basicDot(e){const{size:t,x:o,y:r}=e,n=t/8,i=.5*t,s=i-n;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",jo`M ${o+t/2} ${r+(t/2-i)} a ${i} ${i} 0 1 0 0.1 0 z m 0 ${n} a ${s} ${s} 0 1 1 -0.1 0 Z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",jo`M ${o+t/2} ${r+(t/2-(i+n))} a ${i+n} ${i+n} 0 1 0 0.1 0 z`)}})}basicSquare(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",jo`M ${o} ${r} v ${t} h ${t} v ${-t} z M ${o+n} ${r+n} h ${t-2*n} v ${t-2*n} h ${2*n-t} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",jo`M ${o-n} ${r-n} h ${t+2*n} v ${t+2*n} h ${-t-2*n} z`)}})}basicExtraRounded(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",jo`M ${o} ${r+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*-n} v ${-2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*n} z M ${o+2.5*n} ${r+n} h ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n} v ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*n} h ${-2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n} v ${-2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*-n} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",jo`M ${o-n} ${r+2.5*n} v ${2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*n} ${3.5*n} h ${2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*n} ${3.5*-n} v ${-2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*-n} ${3.5*-n} h ${-2*n} a ${3.5*n} ${3.5*n}, 0, 0, 0, ${3.5*-n} ${3.5*n} z`)}})}basicClassy(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",jo`M ${o} ${r+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${4.5*n} v ${-4.5*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} H ${o} z M ${o+2.5*n} ${r+n} h ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n} v ${3.5*n} h ${-3.5*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n} v ${-3.5*n} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",jo`M ${o+.5*n} ${r-n} h ${4*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*n} ${3.5*n} v ${5.5*n} h ${-5.5*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*-n} ${3.5*-n} v ${-5.5*n} z`)}})}basicInpoint(e){const{size:t,x:o,y:r}=e,n=t/7;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",jo`M ${o} ${r+2.5*n} v ${2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n} h ${4.5*n} v ${-4.5*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n} h ${-2*n} a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*n} z M ${o+2.5*n} ${r+n} h ${2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n} v ${3.5*n} h ${-3.5*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n} v ${-2*n} a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*-n} z`),this._fill=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._fill.setAttribute("clip-rule","evenodd"),this._fill.setAttribute("d",jo`M ${o+.5*n} ${r-n} h ${4*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*n} ${3.5*n} v ${5.5*n} h ${-5.5*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*-n} ${3.5*-n} v ${-2*n} a ${3.5*n} ${3.5*n}, 0, 0, 1, ${3.5*n} ${3.5*-n} z`)}})}drawDot({x:e,y:t,size:o,rotation:r}){this.basicDot({x:e,y:t,size:o,rotation:r})}drawSquare({x:e,y:t,size:o,rotation:r}){this.basicSquare({x:e,y:t,size:o,rotation:r})}drawExtraRounded({x:e,y:t,size:o,rotation:r}){this.basicExtraRounded({x:e,y:t,size:o,rotation:r})}drawClassy({x:e,y:t,size:o,rotation:r}){this.basicClassy({x:e,y:t,size:o,rotation:r})}drawInpoint({x:e,y:t,size:o,rotation:r}){this.basicInpoint({x:e,y:t,size:o,rotation:r})}drawOutpoint({x:e,y:t,size:o,rotation:r}){this.basicInpoint({x:e,y:t,size:o,rotation:(r||0)+Math.PI})}}class Bo{get element(){return this._element}constructor(e,t){this.type=e,this.document=t}draw(e){let t;switch(this.type){case F.dot:t=this.drawDot;break;case F.randomDot:t=this.drawRandomDot;break;case F.classy:t=this.drawClassy;break;case F.classyRounded:t=this.drawClassyRounded;break;case F.rounded:t=this.drawRounded;break;case F.verticalLine:t=this.drawVerticalLine;break;case F.horizontalLine:t=this.drawHorizontalLine;break;case F.extraRounded:t=this.drawExtraRounded;break;case F.diamond:t=this.drawDiamond;break;case F.smallSquare:t=this.drawSmallSquare;break;case F.tinySquare:t=this.drawTinySquare;break;case F.star:t=this.drawStar;break;case F.plus:t=this.drawPlus;break;case F.square:default:t=this.drawSquare}t.call(this,e)}rotateFigure({x:e,y:t,size:o,rotation:r=0,draw:n}){const i=e+o/2,s=t+o/2;n(),this._element?.setAttribute("transform",`rotate(${Vo(180*r/Math.PI)},${i},${s})`)}basicDot(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",Vo(o+t/2)),this._element.setAttribute("cy",Vo(r+t/2)),this._element.setAttribute("r",Vo(t/2))}})}basicSquare(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",Vo(o)),this._element.setAttribute("y",Vo(r)),this._element.setAttribute("width",Vo(t)),this._element.setAttribute("height",Vo(t))}})}basicSideRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",jo`M ${o} ${r} v ${t} h ${t/2} a ${t/2} ${t/2}, 0, 0, 0, 0 ${-t} z`)}})}basicCornerRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",jo`M ${o} ${r} v ${t} h ${t} v ${-t/2} a ${t/2} ${t/2}, 0, 0, 0, ${-t/2} ${-t/2} z`)}})}basicCornerExtraRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",jo`M ${o} ${r} v ${t} h ${t} a ${t} ${t}, 0, 0, 0, ${-t} ${-t} z`)}})}basicCornersRounded(e){const{size:t,x:o,y:r}=e;this.rotateFigure({...e,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",jo`M ${o} ${r} v ${t/2} a ${t/2} ${t/2}, 0, 0, 0, ${t/2} ${t/2} h ${t/2} v ${-t/2} a ${t/2} ${t/2}, 0, 0, 0, ${-t/2} ${-t/2} z`)}})}drawDot({x:e,y:t,size:o}){this.basicDot({x:e,y:t,size:o,rotation:0})}drawRandomDot({x:e,y:t,size:o}){const r=.25*Math.random()+.75;this.basicDot({x:e,y:t,size:o*r,rotation:0})}drawSquare({x:e,y:t,size:o}){this.basicSquare({x:e,y:t,size:o,rotation:0})}drawSmallSquare({x:e,y:t,size:o}){const r=o;o=.7*r,e+=.15*r,t+=.15*r,this.basicSquare({x:e,y:t,size:o,rotation:0})}drawTinySquare({x:e,y:t,size:o}){const r=o;o=.6*r,e+=.35*r,t+=.35*r,this.basicSquare({x:e,y:t,size:o,rotation:0})}drawDiamond({x:e,y:t,size:o}){this.basicSquare({x:e,y:t,size:o,rotation:Math.PI/4})}drawRounded({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,i=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0,d=n+i+s+a;if(0!==d)if(d>2||n&&i||s&&a)this.basicSquare({x:e,y:t,size:o,rotation:0});else{if(2===d){let r=0;return n&&s?r=Math.PI/2:s&&i?r=Math.PI:i&&a&&(r=-Math.PI/2),void this.basicCornerRounded({x:e,y:t,size:o,rotation:r})}if(1===d){let r=0;return s?r=Math.PI/2:i?r=Math.PI:a&&(r=-Math.PI/2),void this.basicSideRounded({x:e,y:t,size:o,rotation:r})}}else this.basicDot({x:e,y:t,size:o,rotation:0})}drawVerticalLine({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,i=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0;if(0===n+i+s+a||n&&!s&&!a||i&&!s&&!a)this.basicDot({x:e,y:t,size:o,rotation:0});else if(s&&a)this.basicSquare({x:e,y:t,size:o,rotation:0});else if(!s||a)if(!a||s);else{const r=-Math.PI/2;this.basicSideRounded({x:e,y:t,size:o,rotation:r})}else{const r=Math.PI/2;this.basicSideRounded({x:e,y:t,size:o,rotation:r})}}drawHorizontalLine({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,i=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0;if(0===n+i+s+a||s&&!n&&!i||a&&!n&&!i)this.basicDot({x:e,y:t,size:o,rotation:0});else if(n&&i)this.basicSquare({x:e,y:t,size:o,rotation:0});else if(!n||i)if(!i||n);else{const r=Math.PI;this.basicSideRounded({x:e,y:t,size:o,rotation:r})}else{const r=0;this.basicSideRounded({x:e,y:t,size:o,rotation:r})}}drawExtraRounded({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,i=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0,d=n+i+s+a;if(0!==d)if(d>2||n&&i||s&&a)this.basicSquare({x:e,y:t,size:o,rotation:0});else{if(2===d){let r=0;return n&&s?r=Math.PI/2:s&&i?r=Math.PI:i&&a&&(r=-Math.PI/2),void this.basicCornerExtraRounded({x:e,y:t,size:o,rotation:r})}if(1===d){let r=0;return s?r=Math.PI/2:i?r=Math.PI:a&&(r=-Math.PI/2),void this.basicSideRounded({x:e,y:t,size:o,rotation:r})}}else this.basicDot({x:e,y:t,size:o,rotation:0})}drawClassy({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,i=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0;0!==n+i+s+a?n||s?i||a?this.basicSquare({x:e,y:t,size:o,rotation:0}):this.basicCornerRounded({x:e,y:t,size:o,rotation:Math.PI/2}):this.basicCornerRounded({x:e,y:t,size:o,rotation:-Math.PI/2}):this.basicCornersRounded({x:e,y:t,size:o,rotation:Math.PI/2})}drawClassyRounded({x:e,y:t,size:o,getNeighbor:r}){const n=r?+r(-1,0):0,i=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0;0!==n+i+s+a?n||s?i||a?this.basicSquare({x:e,y:t,size:o,rotation:0}):this.basicCornerExtraRounded({x:e,y:t,size:o,rotation:Math.PI/2}):this.basicCornerExtraRounded({x:e,y:t,size:o,rotation:-Math.PI/2}):this.basicCornersRounded({x:e,y:t,size:o,rotation:Math.PI/2})}drawStar({x:e,y:t,size:o}){this.rotateFigure({x:e,y:t,size:o,rotation:0,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path");const r=e+o/2,n=t+o/2,i=1.3*o/2,s=.5*i;let a="";for(let e=0;e<10;e++){const t=e*Math.PI/5-Math.PI/2,o=e%2==0?i:s;a+=(0===e?"M":"L")+`${r+o*Math.cos(t)},${n+o*Math.sin(t)}`}a+="Z",this._element?.setAttribute("d",a)}})}drawPlus({x:e,y:t,size:o}){this.rotateFigure({x:e,y:t,size:o,rotation:0,draw:()=>{this._element=this.document.createElementNS("http://www.w3.org/2000/svg","path");const r=.35*o,n=.85*o,i=(o-n)/2,s=r/2,a=[`M ${e+o/2-s} ${t+i}`,`h ${r}`,`v ${n}`,"h "+-r,"z",`M ${e+i} ${t+o/2-s}`,`h ${n}`,`v ${r}`,"h "+-n,"z"].join(" ");this._element?.setAttribute("d",a)}})}}const Yo={toDataURL:e=>"string"==typeof e&&e.startsWith("data:")?Promise.resolve(e):new Promise(((t,o)=>{if("string"==typeof e){const r=new XMLHttpRequest,n=()=>{r.abort()};r.onload=()=>{if(r.status<200||r.status>=300)return n(),void o(new Error(`Failed to load image: ${r.statusText}`));const e=new FileReader;e.onloadend=()=>{n(),t(e.result)},e.onerror=()=>{n(),o(new Error("Failed to read image blob"))},e.readAsDataURL(r.response)},r.onerror=r.ontimeout=r.onabort=()=>{n(),o(new Error("Image load aborted or failed"))};try{r.open("GET",e,!0),r.responseType="blob",r.timeout=1e4,r.send()}catch(e){n(),o(e)}}else{const r=new FileReader;r.onloadend=()=>{t(r.result)},r.onerror=()=>{o(new Error("Failed to read local image"))},r.readAsDataURL(e)}})).catch((e=>(console.error("Image loading error:",e),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjY2NjIi8+PHRleHQgeD0iNTAlIiB5PSI1MCUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDAiIGZvbnQtc2l6ZT0iMTYiPkxvZ28gbG9hZCBlcnJvcjwvdGV4dD48L3N2Zz4="))),getSize:(e,t)=>new Promise(((o,r)=>{const n=new Image,i=setTimeout((()=>{r(new Error("Image loading timed out"))}),15e3);"string"==typeof t&&(n.crossOrigin=t);const s=()=>{clearTimeout(i),n.onload=n.onerror=n.onabort=null,n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="};n.onload=()=>{s(),o({width:n.width,height:n.height})},n.onerror=n.onabort=()=>{s(),r(new Error("Failed to load image"))};try{"string"==typeof e?n.src=e:Yo.toDataURL(e).then((e=>{e?n.src=e:r(new Error("Invalid image source"))})).catch(r)}catch(e){s(),r(e)}})).catch((e=>(console.warn("[QRCodeJs] Image size detection error:",e),{width:200,height:200})))};function Jo(e){let t,o=[],r=1;if("#"===(e=e.toLowerCase())[0]){const t=e.slice(1),n=t.length;n<=4?(o=[parseInt(t[0]+t[0],16),parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16)],4===n&&(r=parseInt(t[3]+t[3],16)/255)):(o=[parseInt(t[0]+t[1],16),parseInt(t[2]+t[3],16),parseInt(t[4]+t[5],16)],8===n&&(r=parseInt(t[6]+t[7],16)/255)),o[0]||(o[0]=0),o[1]||(o[1]=0),o[2]||(o[2]=0)}else{if(!(t=/^((?:rgba?))\s*\(([^)]*)\)/.exec(e)))return{value:e,alpha:r};{const e=3;o=t[2].trim().split(/\s*[,/]\s*|\s+/),o=o.map(((e,t)=>{if("%"===e[e.length-1]){const o=parseFloat(e)/100;return 3===t?o:255*o}return"none"===e?0:parseFloat(e)})),r=o.length>e?o.pop():1}}return{value:"#"+o.map((e=>Math.max(0,Math.min(255,e)).toString(16).padStart(2,"0"))).join(""),alpha:Math.max(0,Math.min(1,r))}}const Mo="undefined"!=typeof window&&void 0!==window.document,Go="undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node,Xo="undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent;let Eo;async function Lo(e,t){if(e.startsWith("data:"))return Promise.resolve(e);try{const o={method:"GET",mode:"cors"};"anonymous"!==t&&"use-credentials"!==t||(o.credentials="use-credentials"===t?"include":"omit");const r=await fetch(e,o);if(!r.ok)return console.warn(`[QRCodeJs] Failed to fetch image directly: ${r.status} ${r.statusText}`),null;if(Mo){const e=await r.blob();return e.type.startsWith("image/")?new Promise(((t,o)=>{const r=new FileReader;r.onloadend=()=>t(r.result),r.onerror=e=>{console.warn("[QRCodeJs] FileReader error:",e),o(new Error("Failed to read image blob"))},r.readAsDataURL(e)})):(console.warn(`[QRCodeJs] Fetched resource is not an image: ${e.type}`),null)}if(Go||Xo){const e=r.headers.get("content-type");if(!e||!e.startsWith("image/"))return console.warn(`[QRCodeJs] Fetched resource is not an image or content-type missing: ${e}`),null;const t=await r.arrayBuffer();let o="";if(Go){if(!Eo)return console.error("[QRCodeJs] Buffer module not loaded in Node.js environment."),null;o=Eo.from(t).toString("base64")}else if(o=function(e){let t="";const o=new Uint8Array(e),r=o.byteLength;for(let e=0;e<r;e++)t+=String.fromCharCode(o[e]);return"undefined"!=typeof btoa?btoa(t):""}(t),!o)return console.warn("[QRCodeJs] Failed to convert ArrayBuffer to Base64 in Worker."),null;return`data:${e};base64,${o}`}return console.warn("[QRCodeJs] Unknown environment, cannot convert image to Data URL."),null}catch(e){return console.warn("[QRCodeJs] Error fetching image directly:",e),null}}async function zo(e){const t=`https://api.qr-platform.com/v1/utils/get-dataurl?url=${encodeURIComponent(e)}`;try{const e=await fetch(t,{method:"GET",headers:{"x-client-name":"QRCode.js"},mode:"cors"});if(!e.ok)return console.warn(`[QRCodeJs] Failed to fetch image via proxy: ${e.status} ${e.statusText}`),null;const o=await e.json();return o&&"string"==typeof o.dataUrl&&o.dataUrl.startsWith("data:image/")?o.dataUrl:(console.warn("[QRCodeJs] Proxy response did not contain a valid dataUrl:",o),null)}catch(e){return console.warn("[QRCodeJs] Error fetching image via proxy:",e),null}}Go&&import("buffer").then((e=>{Eo=e.Buffer})).catch((e=>{console.error("[QRCodeJs] Failed to dynamically import 'buffer' in Node.js:",e)}));const No=[[1,1,1,1,1,1,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,1,1,1,1,1,1]],Po=[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]];class Fo{constructor(e){this.roundValue=e=>"number"==typeof e?e:parseInt(e.replace("%",""),10)/100;const t=e.margin||0,o="circle"===e.shape?.1:.3,{bordersMain:r,bordersOuter:n,bordersInner:i}=e,s=Math.min(e.width,e.height),a=x(e.borderOptions?.radius),d=x(e.borderOptions?.inner?.radius,a),l=a&&j(a)>0?j(a)/100*s:0,c=(a&&j(d)>0?j(d)/100*s:0)??l,u=c>0&&e.borderOptions?.hasBorder?c*o:0;this._hls=e.hls,this.finalWidth=e.width+r.left+r.right+n.left+n.right+i.left+i.right,this.finalHeight=e.height+r.top+r.bottom+n.top+n.bottom+i.top+i.bottom;const p=r.left+r.right+n.left+n.right+i.left+i.right,h=r.top+r.bottom+n.top+n.bottom+i.top+i.bottom,m=e.borderOptions?.hasBorder?this.finalWidth-p-2*n.left-2*i.left-i.right-2*t-u:this.finalWidth-2*t,g=e.borderOptions?.hasBorder?this.finalHeight-h-2*n.top-2*i.top-i.top-2*t-u:this.finalHeight-2*t,f=m/e.width,b=g/e.height,y=Math.min(f,b),O=Math.min(Math.max(e.scale??1,0),1.5),S=Math.min(Math.max(e.borderOptions?.inner?.scale??1,0),1.5),C=e.borderOptions?.inner?.horizontalOffset||0,k=e.borderOptions?.inner?.verticalOffset||0;e.scale=y*O*S||1,this.options=e,this.document=e.document,this.imageTools=e.imageTools||Yo,this._element=this.document.createElementNS("http://www.w3.org/2000/svg","svg");const w=Vo(e.width),q=Vo(e.height);e.isResponsive||(this._element.setAttribute("width",w),this._element.setAttribute("height",q)),this._element.setAttribute("viewBox",`0 0 ${w} ${q}`),this.defs=this.document.createElementNS("http://www.w3.org/2000/svg","defs"),this._element.appendChild(this.defs),this._innerQrGroup=this.document.createElementNS("http://www.w3.org/2000/svg","g");let T=(m-e.width*e.scale)/2+t-C+u/2,v=(g-e.height*e.scale)/2+t-k+u/2;if(e.borderOptions?.hasBorder){const t={top:J(e.borderOptions,"top"),right:J(e.borderOptions,"right"),bottom:M(e.borderOptions,"bottom",this._hls),left:J(e.borderOptions,"left")},o=e.borderOptions.thickness||0,r=e.borderOptions.borderOuter?.thickness||0,n=e.borderOptions.borderInner?.thickness||0,i=e.borderOptions.noBorderThickness||o/4;v+=((t.top?o:i)-(t.bottom?o:i))/2+r+n+n/2,T+=((t.left?o:i)-(t.right?o:i))/2+r+n+n/2}e.verticalOffset&&(v-=e.verticalOffset),e.horizontalOffset&&(T-=e.horizontalOffset),this._instanceId=Fo.instanceCount++,1===e.scale&&0===T&&0===v||this._innerQrGroup.setAttribute("transform",`translate(${T}, ${v}) scale(${e.scale})`),this._maskedQrGroup=this.document.createElementNS("http://www.w3.org/2000/svg","g"),this._maskedQrGroup.setAttribute("mask",`url(#qr-mask-${this._instanceId})`),this._maskedQrGroup.appendChild(this._innerQrGroup),this._element.appendChild(this._maskedQrGroup)}get element(){return this._element}get qrGroup(){return this._innerQrGroup||this._element}get width(){return this.finalWidth}get height(){return this.finalHeight}get svgSize(){return{width:this.options.width,height:this.options.height}}getElement(){return this._element}async drawQR(e){const t=e.getModuleCount(),o=parseInt(((t-17)/4).toFixed(0),10),r=this.options.dotsOptions.size;let n={hideXDots:0,hideYDots:0,width:0,height:0};if(this.qr=e,this.options.borderOptions?.hasBorder||this.drawBackground(),this.options.image){const e=await this.imageTools.getSize(this.options.image,this.options.imageOptions.crossOrigin),{imageOptions:i}=this.options;if(this.options.imageOptions.mode==Q.background){const t=0,o=(this.finalWidth-2*t*r)*i.imageSize,s=(this.finalHeight-2*t*r)*i.imageSize;let{width:a,height:d}=e;d=d/a*o,a=o,d>s&&(a=a/d*s,d=s),n={hideXDots:0,hideYDots:0,width:a,height:d}}else{const i=this.options.imageOptions.imageSize*this.options.errorCorrectionPercent,s=y.getPatternPosition(o),a=Math.floor(i*(t*t-192-2*(t-16)-s.length**2*25));n=function({originalHeight:e,originalWidth:t,maxHiddenDots:o,maxHiddenAxisDots:r,dotSize:n,margin:i}){const s={x:0,y:0},a={x:0,y:0};if(e<=0||t<=0||o<=0||n<=0||4*i**2>o)return{height:0,width:0,hideYDots:0,hideXDots:0};r&&r%2==0&&(r=Math.max(1,r-1));const d=Math.max(t,e),l=Math.min(t,e);let c=0,u=(r||o)-2*i;do{const e=c+(u-c)/2;let t=Math.max(1,Math.ceil(e+2*i));t%2==0&&t++;let r=Math.max(1,Math.ceil(e*l/d+2*i));r%2==0&&r++,t*r>o?u=e:c=e}while(Math.abs(c-u)>.001);const p=c;let h=Math.max(1,Math.ceil(p+2*i));h%2==0&&h++;let m=Math.max(1,Math.ceil(p*l/d+2*i));m%2==0&&m++,t>e?(s.x=h,s.y=m):(s.x=m,s.y=h);const g=(s.x-2*i)*n,f=(s.y-2*i)*n;return a.x=g,a.y=g*e/t,a.y>f&&(a.y=f,a.x=f*t/e),{height:Math.round(a.y+2*i*n),width:Math.round(a.x+2*i*n),hideYDots:s.y,hideXDots:s.x}}({originalWidth:e.width,originalHeight:e.height,maxHiddenDots:a,maxHiddenAxisDots:t-14,dotSize:r,margin:this.options.imageOptions.margin})}}this.options.imageOptions.mode!=Q.overlay&&this.options.image&&n.width>0&&n.height>0&&await this.drawImage({width:n.width,height:n.height,count:t,dotSize:r,radius:this.options.imageOptions?.radius}),this.drawDots(((e,o)=>!(this.options.imageOptions.mode==Q.center&&e>=(t-n.hideXDots)/2&&e<(t+n.hideXDots)/2&&o>=(t-n.hideYDots)/2&&o<(t+n.hideYDots)/2)&&!(e<8&&o<8||e>=t-8&&o<8||o>=t-8&&e<8))),this.options.imageOptions.mode==Q.overlay&&this.options.image&&n.width>0&&n.height>0&&await this.drawImage({width:n.width,height:n.height,count:t,dotSize:r}),this.drawCorners()}drawBackground(){const e=this.options;if(this._element&&e.backgroundOptions){const t=e.backgroundOptions.gradient,o=e.backgroundOptions.color;this.createColor({options:t,color:o,additionalRotation:0,x:0,y:0,height:e.height,width:e.width,name:`background-color-${this._instanceId}`});const r=Math.min(e.width,e.height),n=this.document.createElementNS("http://www.w3.org/2000/svg","rect");[this.backgroundMask,this.backgroundMaskGroup]=this.createMask(`mask-background-color-${this._instanceId}`),this.defs.appendChild(this.backgroundMask);const i=e.backgroundOptions?.round||0,s=this.roundValue(i);n.setAttribute("x",Vo((e.width-r)/2)),n.setAttribute("y",Vo((e.height-r)/2)),n.setAttribute("width",Vo(r)),n.setAttribute("height",Vo(r)),n.setAttribute("rx",Vo(r/2*s)),this.backgroundMaskGroup.appendChild(n)}}drawBackgroundForBorder(e,t){const o=this.options;if(o.backgroundOptions){const r=o.backgroundOptions.gradient,n=o.backgroundOptions.color||"#ffffff",i=Math.min(o.width,o.height)-2*e,s=(o.width-i)/2,a=(o.height-i)/2,d=t-e,l=this.createColor({options:r,borderOptions:o.borderOptions,color:n,additionalRotation:0,x:s,y:a,height:i,width:i,name:`background-color-${this._instanceId}`,returnSVGGroup:!0}),c=this.document.createElementNS("http://www.w3.org/2000/svg","rect");return[this.backgroundMask,this.backgroundMaskGroup]=this.createMask(`mask-background-color-${this._instanceId}`),this.defs.appendChild(this.backgroundMask),c.setAttribute("x",Vo(s)),c.setAttribute("y",Vo(a)),c.setAttribute("width",Vo(i)),c.setAttribute("height",Vo(i)),c.setAttribute("rx",Vo(d)),this.backgroundMaskGroup.appendChild(c),l}}drawDots(e){if(!this.qr)throw new Error("QR code is not defined");const t=this.options,o=this.qr.getModuleCount();if(o>t.width||o>t.height)throw new Error("The canvas is too small");const r=t.dotsOptions.size;let n=Math.min(t.width,t.height);t.imageOptions.mode==Q.background&&(n-=2*r*(t.imageOptions.margin||0));const i=Math.floor((t.width-o*r)/2);let s=Math.floor((t.height-o*r)/2);if(t.offset){const e=(t.height-o*r)/2;s+=Math.min(Math.abs(t.offset),e)*Math.sign(t.offset)}let a=new Bo(t.dotsOptions.type,this.document);const d=new Bo(F.tinySquare,this.document),l=new Bo(F.square,this.document);[this.dotsMask,this.dotsMaskGroup]=this.createMask(`mask-dot-color-${this._instanceId}`),this.defs.appendChild(this.dotsMask),t.imageOptions.mode==Q.background&&([this.lightDotsMask,this.lightDotsMaskGroup]=this.createMask(`mask-light-dot-color-${this._instanceId}`),this.defs.appendChild(this.lightDotsMask));let c=0,u=o;t.shape===H.circle?(c=Math.floor((n/r-o-2)/2),u=o+2*c):t.imageOptions.mode==Q.background&&(c=1,u=o+2*c);const p=i-c*r,h=s-c*r,m=p,g=h,f=o+2*c,b=new Array(u),O=Math.floor(u/2);for(let r=0;r<u;r++){b[r]=new Array(u);for(let n=0;n<u;n++)if(r>c-1&&r<u-c&&n>c-1&&n<u-c){const t=r-c,o=n-c;e&&!e(t,o)?b[r][n]=void 0:b[r][n]=!!this.qr.isDark(o,t)}else t.shape===H.circle&&Math.sqrt((r-O)*(r-O)+(n-O)*(n-O))>O?b[r][n]=void 0:b[r][n]=r!=c-1&&r!=u-c&&n!=c-1&&n!=u-c?this.qr.isDark(n-2*c<0?n:n>=o?n-2*c:n-c,r-2*c<0?r:r>=o?r-2*c:r-c):(n==c-1&&(r<c+8||r>u-c-9)||n==u-c&&r<c+8||r==c-1&&(n<c+8||n>u-c-9)||r==u-c&&n<c+8)&&void 0}const S=(o-17)/4,C=y.getPatternPosition(S);for(let e=0;e<u;e++){const t=C.find((t=>e-c>t-3&&e-c<t+3));for(let o=0;o<u;o++){const n=C.find((e=>o-c>e-3&&o-c<e+3));null!=b[e][o]&&(this.lightDotsMask&&(a=t&&n&&(t!=C[0]&&n!=C[0]||n!=C[0]&&n!=C[C.length-1]||t!=C[0]&&t!=C[C.length-1])?l:d),b[e][o]?(a.draw({x:p+e*r,y:h+o*r,size:r,getNeighbor:(t,r)=>!0===b[e+t]?.[o+r]}),a.element&&this.dotsMaskGroup&&this.dotsMaskGroup.appendChild(a.element)):this.lightDotsMask&&(a.draw({x:p+e*r,y:h+o*r,size:r,getNeighbor:(t,r)=>!1===b[e+t]?.[o+r]}),a.element&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(a.element)))}}this.lightDotsMask&&this.createColor({color:t.imageOptions.backgroundColor,additionalRotation:0,x:m,y:g,height:f*r,width:f*r,name:`light-dot-color-${this._instanceId}`}),this.createColor({options:t.dotsOptions?.gradient,color:t.dotsOptions.color,additionalRotation:0,x:m,y:g,height:f*r,width:f*r,name:`dot-color-${this._instanceId}`})}drawCorners(){if(!this.qr)throw new Error("QR code is not defined");const e=this.qrGroup,t=this.options;if(!e)throw new Error("Element code is not defined");const o=this.qr.getModuleCount(),r=t.dotsOptions.size,n=7*r,i=3*r,s=Math.floor((t.width-o*r)/2);let a=Math.floor((t.height-o*r)/2);if(t.offset){const e=(t.height-o*r)/2,n=Math.min(Math.abs(t.offset),e)*Math.sign(t.offset);a+=n}[[0,0,0],[1,0,Math.PI/2],[0,1,-Math.PI/2]].forEach((([e,d,l])=>{const c=s+e*r*(o-7),u=a+d*r*(o-7);let p=this.dotsMask,h=this.dotsMaskGroup,m=this.dotsMask,g=this.dotsMaskGroup;if((t.cornersSquareOptions?.gradient||t.cornersSquareOptions?.color)&&([p,h]=this.createMask(`mask-corners-square-color-${e}-${d}-${this._instanceId}`),this.defs.appendChild(p),m=p,g=h,this.createColor({options:t.cornersSquareOptions?.gradient,color:t.cornersSquareOptions?.color,additionalRotation:l,x:c,y:u,height:n,width:n,name:`corners-square-color-${e}-${d}-${this._instanceId}`})),t.cornersSquareOptions?.type){const e=new Ro(t.cornersSquareOptions.type,this.document);e.draw({x:c,y:u,size:n,rotation:l}),e.element&&h&&h.appendChild(e.element),e.fill&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(e.fill)}else{const e=new Bo(t.dotsOptions.type,this.document);for(let t=0;t<No.length;t++)for(let o=0;o<No[t].length;o++)No[t]?.[o]?(e.draw({x:c+t*r,y:u+o*r,size:r,getNeighbor:(e,r)=>!!No[t+e]?.[o+r]}),e.element&&h&&h.appendChild(e.element)):this.lightDotsMask&&!Po[t]?.[o]&&(e.draw({x:c+t*r,y:u+o*r,size:r,getNeighbor:(e,r)=>!No[t+e]?.[o+r]&&!Po[t+e]?.[o+r]}),e.element&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(e.element));if(this.lightDotsMask)for(let t=-1;t<8;t++)for(let o=-1;o<8;o++)-1!=t&&7!=t&&-1!=o&&7!=o||(e.draw({x:c+t*r,y:u+o*r,size:r,getNeighbor:(e,r)=>{const n=t+e,i=o+r;return n>=-1&&n<=7&&i>=-1&&i<=7&&(-1==n||7==n||-1==i||7==i)}}),e.element&&this.lightDotsMaskGroup&&this.lightDotsMaskGroup.appendChild(e.element))}if((t.cornersDotOptions?.gradient||t.cornersDotOptions?.color)&&([m,g]=this.createMask(`mask-corners-dot-color-${e}-${d}-${this._instanceId}`),this.defs.appendChild(m),this.createColor({options:t.cornersDotOptions?.gradient,color:t.cornersDotOptions?.color,additionalRotation:l,x:c+2*r,y:u+2*r,height:i,width:i,name:`corners-dot-color-${e}-${d}-${this._instanceId}`})),t.cornersDotOptions?.type){const e=new xo(t.cornersDotOptions.type,this.document);e.draw({x:c+2*r,y:u+2*r,size:i,rotation:l}),e.element&&g&&g.appendChild(e.element)}else{const e=new Bo(t.dotsOptions.type,this.document);for(let t=0;t<Po.length;t++)for(let o=0;o<Po[t].length;o++)Po[t]?.[o]&&(e.draw({x:c+t*r,y:u+o*r,size:r,getNeighbor:(e,r)=>!!Po[t+e]?.[o+r]}),e.element&&g&&g.appendChild(e.element))}}))}async drawImage({width:e,height:t,count:o,dotSize:r,radius:n}){const i=this.options,s=Math.floor((i.width-o*r)/2);let a=Math.floor((i.height-o*r)/2);if(i.offset){const e=(i.height-o*r)/2;a+=Math.min(Math.abs(i.offset),e)*Math.sign(i.offset)}let d=i.imageOptions.margin*r;i.imageOptions.mode==Q.background&&(d=0);const l=s+d+(o*r-e)/2,c=a+d+(o*r-t)/2,u=e-2*d,p=t-2*d;let h=null;try{"string"==typeof i.image?h=await Lo(i.image,i.imageOptions.crossOrigin):i.image&&(h=await this.imageTools.toDataURL(i.image)),"string"!=typeof i.image||h||(console.warn("Direct image fetch failed, attempting proxy..."),h=await zo(i.image))}catch(e){if(console.warn("[QRCodeJs] Error fetching image directly:",e),"string"==typeof i.image)try{console.warn("[QRCodeJs] Direct image fetch failed via error, attempting proxy..."),h=await zo(i.image)}catch(e){console.warn("[QRCodeJs] Failed to load image via proxy:",e)}}h||(console.warn("[QRCodeJs] Failed to load image directly and via proxy. Using fallback SVG."),h=Fo.FALLBACK_IMAGE_DATA_URL);let m=null;if(n){m=`clip-path-image-${this._instanceId}`;const e=this.document.createElementNS("http://www.w3.org/2000/svg","clipPath");e.setAttribute("id",m);const t=this.document.createElementNS("http://www.w3.org/2000/svg","rect");t.setAttribute("x",Vo(l)),t.setAttribute("y",Vo(c)),t.setAttribute("width",Vo(u)),t.setAttribute("height",Vo(p));const o="number"==typeof n?`${n}px`:n;t.setAttribute("rx",o),t.setAttribute("ry",o),e.appendChild(t),this.defs.appendChild(e)}if(i.imageOptions.backgroundColor){const e=this.document.createElementNS("http://www.w3.org/2000/svg","rect");e.setAttribute("x",Vo(l)),e.setAttribute("y",Vo(c)),e.setAttribute("width",Vo(u)),e.setAttribute("height",Vo(p)),m&&e.setAttribute("clip-path",`url(#${m})`);const t=Jo(i.imageOptions.backgroundColor);e.setAttribute("fill",t.value),t.alpha<1&&e.setAttribute("opacity",t.alpha.toFixed(7)),this.qrGroup.appendChild(e)}const g=this.document.createElementNS("http://www.w3.org/2000/svg","image");if(g.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",h),g.setAttribute("x",Vo(l)),g.setAttribute("y",Vo(c)),g.setAttribute("id",`qr-image-${this._instanceId}`),g.setAttribute("width",`${Vo(u)}px`),g.setAttribute("height",`${Vo(p)}px`),g.setAttribute("preserveAspectRatio","xMidYMid meet"),i.imageOptions?.padding){const e=i.imageOptions.padding;g.setAttribute("x",Vo(l+e)),g.setAttribute("y",Vo(c+e)),g.setAttribute("width",`${Vo(u-2*e)}px`),g.setAttribute("height",`${Vo(p-2*e)}px`)}m&&g.setAttribute("clip-path",`url(#${m})`),this.qrGroup.appendChild(g)}createColor({options:e,borderOptions:t,color:o,additionalRotation:r,x:n,y:i,height:s,width:a,name:d,returnSVGGroup:l=!1}){const c=a>s?a:s,u=this.document.createElementNS("http://www.w3.org/2000/svg","rect");if(u.setAttribute("x",Vo(n)),u.setAttribute("y",Vo(i)),u.setAttribute("height",Vo(s)),u.setAttribute("width",Vo(a)),u.setAttribute("style",`mask:url(#mask-${d}-${this._instanceId})`),e){let o;if(e.type===P.radial){o=this.document.createElementNS("http://www.w3.org/2000/svg","radialGradient"),o.setAttribute("id",d+"-"+this._instanceId),o.setAttribute("gradientUnits","userSpaceOnUse");let e=n+a/2,r=i+s/2;if(t){const o=t.thickness/2,d=2;J(t,"top")&&!M(t,"bottom",this._hls)?r=i+o*d+s/2:!J(t,"top")&&M(t,"bottom",this._hls)&&(r=i-o*d+s/2),J(t,"right")&&!J(t,"left")?e=n-o*d+a/2:!J(t,"right")&&J(t,"left")&&(e=n+o*d+a/2)}o.setAttribute("fx",Vo(e)),o.setAttribute("fy",Vo(r)),o.setAttribute("cx",Vo(n+a/2)),o.setAttribute("cy",Vo(i+s/2)),o.setAttribute("r",Vo(c/2))}else{const t=((e.rotation||0)+r)%(2*Math.PI),l=(t+2*Math.PI)%(2*Math.PI);let c=n+a/2,u=i+s/2,p=n+a/2,h=i+s/2;l>=0&&l<=.25*Math.PI||l>1.75*Math.PI&&l<=2*Math.PI?(c-=a/2,u-=s/2*Math.tan(t),p+=a/2,h+=s/2*Math.tan(t)):l>.25*Math.PI&&l<=.75*Math.PI?(u-=s/2,c-=a/2/Math.tan(t),h+=s/2,p+=a/2/Math.tan(t)):l>.75*Math.PI&&l<=1.25*Math.PI?(c+=a/2,u+=s/2*Math.tan(t),p-=a/2,h-=s/2*Math.tan(t)):l>1.25*Math.PI&&l<=1.75*Math.PI&&(u+=s/2,c+=a/2/Math.tan(t),h-=s/2,p-=a/2/Math.tan(t)),o=this.document.createElementNS("http://www.w3.org/2000/svg","linearGradient"),o.setAttribute("id",d+"-"+this._instanceId),o.setAttribute("gradientUnits","userSpaceOnUse"),o.setAttribute("x1",Vo(c)),o.setAttribute("y1",Vo(u)),o.setAttribute("x2",Vo(p)),o.setAttribute("y2",Vo(h))}e.colorStops.forEach((e=>{const t=this.document.createElementNS("http://www.w3.org/2000/svg","stop");t.setAttribute("offset",`${Vo(100*e.offset)}%`);const r=Jo(e.color);t.setAttribute("stop-color",r.value),r.alpha<1&&t.setAttribute("stop-opacity",r.alpha.toFixed(7)),o.appendChild(t)})),u.setAttribute("fill",`url(#${d}-${this._instanceId})`),this.defs.appendChild(o)}else if(o){const e=Jo(o);u.setAttribute("fill",e.value),e.alpha<1&&u.setAttribute("opacity",e.alpha.toFixed(7))}if(l)return u;d.startsWith("background-color")?this._element.insertBefore(u,this._maskedQrGroup):this.qrGroup.appendChild(u)}createMask(e){const t=`${e}-${this._instanceId}`,o=this.options,r=this.document.createElementNS("http://www.w3.org/2000/svg","mask");r.setAttribute("id",t),r.setAttribute("maskUnits","userSpaceOnUse"),r.setAttribute("x","0"),r.setAttribute("y","0"),r.setAttribute("width",Vo(o.width)),r.setAttribute("height",Vo(o.height));const n=this.document.createElementNS("http://www.w3.org/2000/svg","g");return n.setAttribute("fill","#fff"),r.appendChild(n),[r,n]}}Fo.instanceCount=0,Fo.FALLBACK_IMAGE_DATA_URL="data:image/png;base64,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";const Uo={id:"classicDark",name:"Classic Dark",style:{primaryColor:"#ffffff",secondaryColor:"#ffffff",thirdColor:"#bdc3c7",backgroundColor:"#000000",dotShape:F.square,cornerSquareShape:K.square,cornerDotShape:U.square}},Ko={id:"modernDark",name:"Modern Dark",style:{primaryColor:"#2ecc71",secondaryColor:"#3498db",thirdColor:"#f1c40f",backgroundColor:"#2c3e50",dotShape:F.dot,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},Ho={id:"roundedDark",name:"Rounded Dark",style:{primaryColor:"#3498db",secondaryColor:"#2ecc71",thirdColor:"#e74c3c",backgroundColor:"#2c3e50",dotShape:F.rounded,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},Qo={id:"vibrantDark",name:"Vibrant Dark",style:{primaryColor:"#f39c12",secondaryColor:"#9b59b6",thirdColor:"#1abc9c",backgroundColor:"#212121",dotShape:F.rounded,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},_o={id:"neonDark",name:"Neon Dark",style:{primaryColor:"#f1c40f",secondaryColor:"#e74c3c",thirdColor:"#3498db",backgroundColor:"#000000",dotShape:F.rounded,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},$o={id:"sunsetDark",name:"Sunset Dark",style:{primaryColor:"#e67e22",secondaryColor:"#8e44ad",thirdColor:"#16a085",backgroundColor:"#000000",dotShape:F.dot,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},er={id:"oceanicDark",name:"Oceanic Dark",style:{primaryColor:"#3498db",secondaryColor:"#1abc9c",thirdColor:"#ecf0f1",backgroundColor:"#2c3e50",dotShape:F.rounded,cornerSquareShape:K.square,cornerDotShape:U.dot}},tr={id:"boldDark",name:"Bold Dark",style:{primaryColor:"#e74c3c",secondaryColor:"#9b59b6",thirdColor:"#2ecc71",backgroundColor:"#000000",dotShape:F.square,cornerSquareShape:K.rounded,cornerDotShape:U.square}},or={id:"twilightDark",name:"Twilight Dark",style:{primaryColor:"#8e44ad",secondaryColor:"#f39c12",thirdColor:"#16a085",backgroundColor:"#000000",dotShape:F.rounded,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},rr={id:"coralDark",name:"Coral Dark",style:{primaryColor:"#1abc9c",secondaryColor:"#e74c3c",thirdColor:"#f1c40f",backgroundColor:"#000000",dotShape:F.rounded,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},nr={id:"midnightSunsetDark",name:"Midnight Sunset Dark",style:{primaryColor:"#9b59b6",secondaryColor:"#f1c40f",thirdColor:"#1abc9c",backgroundColor:"#000000",dotShape:F.square,cornerSquareShape:K.square,cornerDotShape:U.square}},ir={id:"citrusDark",name:"Citrus Dark",style:{primaryColor:"#f39c12",secondaryColor:"#2ecc71",thirdColor:"#ecf0f1",backgroundColor:"#34495e",dotShape:F.dot,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},sr={id:"frostDark",name:"Frost Dark",style:{primaryColor:"#3498db",secondaryColor:"#ecf0f1",thirdColor:"#e74c3c",backgroundColor:"#00000",dotShape:F.dot,cornerSquareShape:K.rounded,cornerDotShape:U.square}},ar={id:"neonDark",name:"Neon dark",style:{primaryColor:"#00e676",secondaryColor:"#E67E22",thirdColor:"#0288d1",backgroundColor:"#212121",dotShape:F.rounded,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},dr=[Uo,Ko,Ho,Qo,_o,$o,er,tr,or,rr,nr,ir,sr,{id:"turquoiseSunDark",name:"Turquoise Sun Dark",style:{primaryColor:"#1abc9c",secondaryColor:"#3498db",thirdColor:"#f1c40f",backgroundColor:"#2c3e50",dotShape:F.rounded,cornerSquareShape:K.square,cornerDotShape:U.dot}},ar,{id:"emeraldBloomDark",name:"Emerald Bloom Dark",style:{primaryColor:"#2ecc71",secondaryColor:"#9b59b6",thirdColor:"#e74c3c",backgroundColor:"#000000",dotShape:F.dot,cornerSquareShape:K.rounded,cornerDotShape:U.square}},{id:"customBorderBlueDark",name:"Custom Border Blue Dark",style:{primaryColor:"#3498db",secondaryColor:"#2980b9",thirdColor:"#1abc9c",backgroundColor:"#2c3e50",dotShape:F.rounded,cornerSquareShape:K.square,cornerDotShape:U.dot,borderColor:"#34495e",borderFontColor:"#ecf0f1"}},{id:"customBorderGreenDark",name:"Custom Border Green Dark",style:{primaryColor:"#2ecc71",secondaryColor:"#27ae60",thirdColor:"#16a085",backgroundColor:"#1B5E20",dotShape:F.square,cornerSquareShape:K.rounded,cornerDotShape:U.square,borderColor:"#2E7D32",borderFontColor:"#ffffff"}}],lr={id:"classic",name:"Classic",style:{primaryColor:"#000000",secondaryColor:"#000000",thirdColor:"#757575",backgroundColor:"#ffffff",dotShape:F.square,cornerSquareShape:K.square,cornerDotShape:U.square}},cr={id:"modern",name:"Modern",style:{primaryColor:"#4CAF50",secondaryColor:"#007fff",thirdColor:"#d81b60",backgroundColor:"#ffffff",dotShape:F.dot,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},ur={id:"rounded",name:"Rounded",style:{primaryColor:"#007bff",secondaryColor:"#4CAF50",thirdColor:"#d32f2f",backgroundColor:"#ffffff",dotShape:F.rounded,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},pr={id:"vibrant",name:"Vibrant",style:{primaryColor:"#ff5722",secondaryColor:"#3f51b5",thirdColor:"#2e7d32",backgroundColor:"#ffffff",dotShape:F.rounded,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},hr={id:"pastel",name:"Pastel",style:{primaryColor:"#f48fb1",secondaryColor:"#26C6DA",thirdColor:"#00695c",backgroundColor:"#f5f5f5",dotShape:F.dot,cornerSquareShape:K.square,cornerDotShape:U.square}},mr={id:"earthy",name:"Earthy",style:{primaryColor:"#795548",secondaryColor:"#4db6ac",thirdColor:"#8e24aa",backgroundColor:"#efebe9",dotShape:F.square,cornerSquareShape:K.square,cornerDotShape:U.square}},gr={id:"sunset",name:"Sunset",style:{primaryColor:"#bf360c",secondaryColor:"#ab47bc",thirdColor:"#00796b",backgroundColor:"#fff3e0",dotShape:F.dot,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},fr={id:"oceanic",name:"Oceanic",style:{primaryColor:"#0288d1",secondaryColor:"#26a69a",thirdColor:"#6a1b9a",backgroundColor:"#e0f7fa",dotShape:F.rounded,cornerSquareShape:K.square,cornerDotShape:U.dot}},br={id:"bold",name:"Bold",style:{primaryColor:"#d50000",secondaryColor:"#6200ea",thirdColor:"#388e3c",backgroundColor:"#fafafa",dotShape:F.square,cornerSquareShape:K.rounded,cornerDotShape:U.square}},yr={id:"limeGlow",name:"Lime Glow",style:{primaryColor:"#afb42b",secondaryColor:"#536dfe",thirdColor:"#c62828",backgroundColor:"#fffde7",dotShape:F.dot,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},Or={id:"twilight",name:"Twilight",style:{primaryColor:"#4527a0",secondaryColor:"#d84315",thirdColor:"#00796b",backgroundColor:"#eceff1",dotShape:F.rounded,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},Sr={id:"meadow",name:"Meadow",style:{primaryColor:"#388e3c",secondaryColor:"#689f38",thirdColor:"#ad1457",backgroundColor:"#f1f8e9",dotShape:F.dot,cornerSquareShape:K.square,cornerDotShape:U.square}},Cr={id:"coral",name:"Coral",style:{primaryColor:"#c2185b",secondaryColor:"#00838f",thirdColor:"#f57f17",backgroundColor:"#ffebee",dotShape:F.rounded,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},kr={id:"midnightsunset",name:"Midnight Sunset",style:{primaryColor:"#5c6bc0",secondaryColor:"#fbc02d",thirdColor:"#00695c",dotShape:F.square,cornerSquareShape:K.square,cornerDotShape:U.square}},wr={id:"citrus",name:"Citrus",style:{primaryColor:"#f57c00",secondaryColor:"#558b2f",thirdColor:"#6d4c41",backgroundColor:"#fff8e1",dotShape:F.dot,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},qr={id:"dusk",name:"Dusk",style:{primaryColor:"#6a1b9a",secondaryColor:"#e65100",thirdColor:"#2e7d32",backgroundColor:"#d7ccc8",dotShape:F.rounded,cornerSquareShape:K.square,cornerDotShape:U.dot}},Tr={id:"frost",name:"Frost",style:{primaryColor:"#0277bd",secondaryColor:"#37474f",thirdColor:"#c2185b",backgroundColor:"#e1f5fe",dotShape:F.dot,cornerSquareShape:K.rounded,cornerDotShape:U.square}},vr={id:"autumn",name:"Autumn",style:{primaryColor:"#d84315",secondaryColor:"#827717",thirdColor:"#4a148c",backgroundColor:"#efebe9",dotShape:F.square,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},Ar={id:"turquoiseSun",name:"Turquoise Sun",style:{primaryColor:"#1abc9c",secondaryColor:"#3498db",thirdColor:"#f1c40f",backgroundColor:"#ffffff",dotShape:F.rounded,cornerSquareShape:K.square,cornerDotShape:U.dot}},Dr={id:"emeraldBloom",name:"Emerald Bloom",style:{primaryColor:"#2ecc71",secondaryColor:"#9b59b6",thirdColor:"#c0392b",backgroundColor:"#ecf0f1",dotShape:F.dot,cornerSquareShape:K.rounded,cornerDotShape:U.square}},Zr={id:"seaLilac",name:"Sea Lilac",style:{primaryColor:"#16a085",secondaryColor:"#8e44ad",thirdColor:"#95a5a6",backgroundColor:"#ecf0f1",dotShape:F.square,cornerSquareShape:K.rounded,cornerDotShape:U.square}},Ir={id:"belizePumpkin",name:"Belize Pumpkin",style:{primaryColor:"#2980b9",secondaryColor:"#d35400",thirdColor:"#7f8c8d",backgroundColor:"#ecf0f1",dotShape:F.dot,cornerSquareShape:K.square,cornerDotShape:U.dot}},Wr={id:"midnightGlow",name:"Midnight Glow",style:{primaryColor:"#2c3e50",secondaryColor:"#f39c12",thirdColor:"#1abc9c",backgroundColor:"#ecf0f1",dotShape:F.rounded,cornerSquareShape:K.rounded,cornerDotShape:U.dot}},Vr=[lr,cr,ur,pr,hr,mr,gr,fr,br,yr,Or,Sr,Cr,{id:"customBorderBlue",name:"Custom Border Blue",style:{primaryColor:"#3498db",secondaryColor:"#2980b9",thirdColor:"#1abc9c",backgroundColor:"#ecf0f1",dotShape:F.rounded,cornerSquareShape:K.square,cornerDotShape:U.dot,borderColor:"#2c3e50",borderRadius:"20%",borderFontColor:"#ecf0f1"}},{id:"customBorderGreen",name:"Custom Border Green",style:{primaryColor:"#2ecc71",secondaryColor:"#27ae60",thirdColor:"#16a085",backgroundColor:"#f0fdf4",dotShape:F.square,cornerSquareShape:K.rounded,cornerDotShape:U.square,borderColor:"#1D8348",borderFontColor:"#ffffff"}},kr,wr,qr,Tr,vr,Ar,Dr,Zr,Ir,Wr,{id:"asphaltEmerald",name:"Asphalt Emerald",style:{primaryColor:"#34495e",secondaryColor:"#2ecc71",thirdColor:"#f39c12",backgroundColor:"#ffffff"}},{id:"wisteriaDusk",name:"Wisteria Dusk",style:{primaryColor:"#8e44ad",secondaryColor:"#2c3e50",thirdColor:"#27ae60",backgroundColor:"#ecf0f1"}},{id:"sunRiver",name:"Sun River",style:{primaryColor:"#f1c40f",secondaryColor:"#3498db",thirdColor:"#95a5a6",backgroundColor:"#ffffff"}},{id:"forest",name:"Forest",style:{primaryColor:"#1abc9c",secondaryColor:"#2ecc71",thirdColor:"#27ae60",backgroundColor:"#ecf0f1"}},{id:"cosmic",name:"Cosmic",style:{primaryColor:"#f1c40f",secondaryColor:"#1abc9c",thirdColor:"#e74c3c",backgroundColor:"#2c3e50"}},{id:"radiant",name:"Radiant",style:{primaryColor:"#e74c3c",secondaryColor:"#f1c40f",thirdColor:"#2ecc71",backgroundColor:"#ecf0f1"}},{id:"marine",name:"Marine",style:{primaryColor:"#3498db",secondaryColor:"#2980b9",thirdColor:"#16a085",backgroundColor:"#ecf0f1"}},{id:"inverse",name:"Inverse",style:{primaryColor:"#ecf0f1",secondaryColor:"#bdc3c7",thirdColor:"#95a5a6",backgroundColor:"#2c3e50"}},{id:"wetCarrot",name:"Wet Carrot",style:{primaryColor:"#34495e",secondaryColor:"#e67e22",thirdColor:"#e74c3c",backgroundColor:"#bdc3c7"}},{id:"pomegranateSky",name:"Pomegranate Sky",style:{primaryColor:"#e74c3c",secondaryColor:"#3498db",thirdColor:"#9b59b6",backgroundColor:"#bdc3c7"}},...dr];function jr(e){return Vr.find((t=>t.name.toLowerCase()===e.toLowerCase()))}function xr(e){return Vr.find((t=>t.id===e))}const Rr={hasBorder:!0,thickness:30,radius:"0",borderOuter:{thickness:0},borderInner:{thickness:0}},Br={id:"square-border-thin",name:"Square Border (Thin)",options:{borderOptions:{...Rr,thickness:40,radius:"10%",decorations:{top:{enableText:!0,offset:2,curveAdjustment:0,curveDisabled:!0,style:{fontSize:21,fontWeight:"bold"},value:"SCAN ME"},left:{disabled:!0},right:{disabled:!0},bottom:{disabled:!0}}}}},Yr={id:"square-border-medium",name:"Square Border (Medium)",options:{borderOptions:{...Rr,thickness:20,radius:"15%"}}},Jr={id:"square-border-thick",name:"Square Border (Thick)",options:{borderOptions:{...Rr,thickness:20,radius:"2%"}}},Mr={id:"rounded-border-thin-slight",name:"Rounded Border (Thin, Slight)",options:{borderOptions:{...Rr,thickness:10,radius:"10%"}}},Gr={id:"rounded-border-medium-medium",name:"Rounded Border (Medium)",options:{borderOptions:{...Rr,thickness:10,radius:"35%"}}},Xr={id:"rounded-border-thick-high",name:"Rounded Border (Thick, High)",options:{borderOptions:{...Rr,thickness:30,radius:"50"}}},Er={id:"rounded-border-thick-text",name:"Rounded Border (Thick, Text)",options:{borderOptions:{...Rr,thickness:50,borderOuter:{thickness:10},radius:"50%",decorations:{top:{enableText:!0,curveAdjustment:0,offset:4,style:{fontSize:22,fontWeight:"bold"},value:"SCAN ME TO FOLLOW"},bottom:{enableText:!0,offset:2,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},Lr={id:"rounded-border-outside-top-bottom-text",name:"Rounded Border Outside (Top & Bottom Text)",options:{borderOptions:{...Rr,thickness:50,radius:"30",borderOuter:{thickness:10},borderInner:{thickness:6},decorations:{left:{disabled:!0},right:{disabled:!0},top:{enableText:!0,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"SCAN ME TO FOLLOW"},bottom:{enableText:!0,offset:-2,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},zr={id:"rounded-border-outside-left-right-text",name:"Rounded Border Outside (Left & Right Text)",options:{margin:5,borderOptions:{...Rr,thickness:50,radius:"20%",inner:{radius:"20"},borderOuter:{thickness:10},decorations:{top:{disabled:!0},bottom:{disabled:!0},left:{enableText:!0,offset:5,style:{fontSize:20,fontWeight:"bold"},value:"SCAN TO FOLLOW"},right:{enableText:!0,offset:6,curveAdjustment:0,style:{fontSize:20,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},Nr={id:"rounded-border-top-bottom-text",name:"Rounded Border (Top & Bottom Text)",options:{borderOptions:{...Rr,thickness:50,radius:"30",decorations:{left:{disabled:!0},right:{disabled:!0},top:{enableText:!0,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"SCAN ME TO FOLLOW"},bottom:{enableText:!0,offset:-2,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},Pr={id:"rounded-border-left-right-text",name:"Rounded Border (Left & Right Text)",options:{margin:5,borderOptions:{...Rr,thickness:50,radius:"20%",inner:{radius:"20"},decorations:{top:{disabled:!0},bottom:{disabled:!0},left:{enableText:!0,offset:5,style:{fontSize:22,fontWeight:"bold"},value:"SCAN TO FOLLOW"},right:{enableText:!0,offset:5,curveAdjustment:0,style:{fontSize:22,fontWeight:"bold"},value:"YOUR NAME HERE"}}}}},Fr={id:"double-square-border-thin",name:"Double Square Border Inside (Thin)",options:{borderOptions:{...Rr,thickness:14,radius:"2%",borderInner:{thickness:4}}}},Ur={id:"double-square-border-medium",name:"Double Square Border Outside (Medium)",options:{borderOptions:{...Rr,thickness:20,radius:"2%",borderOuter:{thickness:4}}}},Kr={id:"double-rounded-border-medium",name:"Double Rounded Border (Medium)",options:{borderOptions:{...Rr,thickness:60,radius:"25",borderOuter:{thickness:10},borderInner:{thickness:10},decorations:{bottom:{disabled:!0},left:{disabled:!0},right:{disabled:!0},top:{enableText:!0,curveAdjustment:0,offset:4,curveDisabled:!0,value:"SCAN ME",style:{fontSize:30}}}}}},Hr={id:"double-rounded-border-thick",name:"Double Rounded Border Outside (Thick)",options:{borderOptions:{...Rr,thickness:40,radius:"20",borderOuter:{thickness:6},decorations:{top:{disabled:!0},left:{disabled:!0},bottom:{enableText:!0,curveAdjustment:0,offset:4,value:"SCAN ME",style:{fontSize:20}},right:{enableText:!0,curveAdjustment:0,offset:4,value:"YOUR NAME",style:{fontSize:20}}}}}},Qr={id:"inner-square-border-medium",name:"Inner Square Border Inside (Medium)",options:{borderOptions:{...Rr,thickness:10,radius:"2%",borderInner:{thickness:12}}}},_r={id:"outer-rounded-border-medium",name:"Outer Rounded Border (Medium)",options:{borderOptions:{...Rr,inner:{radius:"20%"},thickness:15,radius:"25%",borderOuter:{thickness:20}}}},$r={id:"rounded-inner-offset-top-text",name:"Rounded Inner Offset Top Text",options:{borderOptions:{...Rr,thickness:25,radius:"30%",borderInner:{thickness:6},decorations:{top:{enableText:!0,offset:3,curveAdjustment:0,curveDisabled:!1,style:{fontSize:20},value:"SCAN ME"}}}}},en={id:"square-thick-outer-thin-inner",name:"Square Thick Outer/Thin Inner",options:{borderOptions:{...Rr,thickness:10,radius:"50%",inner:{radius:"12%"},borderOuter:{thickness:10},borderInner:{thickness:15},decorations:{bottom:{enableText:!0,offset:-3,curveAdjustment:0,curveDisabled:!0,style:{fontSize:18,fontWeight:"normal"}}}}}},tn={id:"square-thick-outer-round",name:"Square Thick Outer Round",options:{borderOptions:{...Rr,thickness:25,radius:"50%",inner:{radius:"15%"},borderOuter:{thickness:10},borderInner:{thickness:20},decorations:{bottom:{enableText:!0,offset:-3,curveAdjustment:0,curveDisabled:!0,style:{fontSize:18,fontWeight:"normal"}}}}}},on={id:"square-thick-outer-thin-inner-bottom-text",name:"Square Thick Outer/Thin Inner Bottom Text",options:{borderOptions:{...Rr,thickness:10,radius:"4%",inner:{radius:"12%"},borderOuter:{thickness:5},borderInner:{thickness:20},decorations:{bottom:{disabled:!0},left:{disabled:!0},right:{disabled:!0},top:{disabled:!0}}}}},rn=[Br,Yr,Jr,Mr,Gr,Xr,Er,Nr,Pr,Lr,zr,Fr,Ur,Kr,Hr,Qr,_r,$r,en,tn,{id:"pill-curved-text-top-bottom",name:"Pill Curved Text Top/Bottom",options:{borderOptions:{...Rr,thickness:35,borderInner:{thickness:10},radius:"50%",decorations:{top:{enableText:!0,offset:2,curveAdjustment:0,curveDisabled:!1,style:{fontSize:20},value:"TOP CURVED TEXT"},bottom:{enableText:!0,offset:-2,curveAdjustment:0,curveDisabled:!1,style:{fontSize:20},value:"BOTTOM CURVED TEXT"}}}}},{id:"double-varied-thickness-top-text",name:"Double Varied Thickness Top Text",options:{borderOptions:{...Rr,thickness:25,radius:"10%",borderOuter:{thickness:8},borderInner:{thickness:4},decorations:{top:{enableText:!0,offset:3,curveAdjustment:0,curveDisabled:!0,style:{fontSize:19},value:"IMPORTANT INFO"},bottom:{enableText:!0,curveAdjustment:0,curveDisabled:!0,style:{fontSize:19},value:"SCAN ME"}}}}},{id:"outer-border-white-rounded-text",name:"Outer Border White Rounded Text",options:{borderOptions:{...Rr,thickness:25,color:"#ffffff",radius:"25%",borderOuter:{thickness:10},decorations:{top:{disabled:!0},left:{disabled:!0},right:{disabled:!0},bottom:{enableText:!0,offset:10,curveAdjustment:0,curveDisabled:!1,style:{fontSize:18,fontWeight:"bold",letterSpacing:1,fontColor:"#000000"},value:"SCAN TO FOLLOW"}}}}},{id:"inner-border-white-rounded-text",name:"Inner Border White Rounded Text",options:{borderOptions:{...Rr,thickness:25,color:"#ffffff",radius:"25%",borderInner:{thickness:10},decorations:{top:{disabled:!0},left:{disabled:!0},right:{disabled:!0},bottom:{enableText:!0,offset:-4,style:{fontSize:18,fontWeight:"bold",letterSpacing:1,fontColor:"#000000"},value:"SCAN TO FOLLOW"}}}}},{id:"inner-offset-square-text",name:"Inner Offset Square Text",options:{borderOptions:{...Rr,thickness:30,radius:"16%",borderInner:{thickness:10},decorations:{top:{disabled:!0},left:{disabled:!0},right:{disabled:!0},bottom:{enableText:!0,offset:2,curveAdjustment:0,curveDisabled:!0,style:{fontSize:22},value:"SCAN ME"}}}}},{id:"thin-rounded-all-sides-text",name:"Thin Rounded All Sides Text",options:{borderOptions:{...Rr,borderInner:{thickness:10},thickness:14,radius:"20%",decorations:{top:{enableText:!0,value:"TOP",style:{fontSize:12},offset:3},bottom:{enableText:!0,value:"BOTTOM",style:{fontSize:12},offset:1},left:{enableText:!0,value:"LEFT",style:{fontSize:12},offset:4},right:{enableText:!0,value:"RIGHT",style:{fontSize:12},offset:4}}}}},{id:"thick-square-double-text",name:"Thick Square Double Text",options:{borderOptions:{...Rr,thickness:25,radius:"2%",borderOuter:{thickness:5},borderInner:{thickness:5},decorations:{left:{disabled:!0},right:{disabled:!0},top:{enableText:!0,value:"HEADER",offset:4,style:{fontSize:18}},bottom:{enableText:!0,value:"FOOTER",offset:4,style:{fontSize:18}}}}}},{id:"high-radius-thin-double-curved-text",name:"High Radius Thin Double Curved Text",options:{margin:-10,borderOptions:{...Rr,thickness:26,radius:"35%",borderOuter:{thickness:4},borderInner:{thickness:13},decorations:{top:{enableText:!0,value:"TOP TEXT",offset:6,curveDisabled:!1,style:{fontSize:16}},right:{disabled:!0},left:{disabled:!0},bottom:{enableText:!0,value:"BOTTOM TEXT",curveDisabled:!1,offset:4,style:{fontSize:16}}}}}},on,{id:"minimalist-thin-square",name:"Minimalist Thin Square",options:{borderOptions:{...Rr,thickness:5,radius:"4%"}}},{id:"minimalist-thin-rounded",name:"Minimalist Thin Rounded",options:{borderOptions:{...Rr,thickness:5,radius:"25%"}}},{id:"chunky-square-border-text",name:"Chunky Square Border Text",options:{borderOptions:{...Rr,thickness:60,radius:"5%",borderOuter:{thickness:6},borderInner:{thickness:6},decorations:{top:{enableText:!0,value:"SCAN ME",style:{fontSize:18,fontWeight:"bold"},offset:4},left:{enableText:!0,value:"LEFT TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4},right:{enableText:!0,value:"RIGHT TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4},bottom:{enableText:!0,value:"BOTTOM TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4}}}}},{id:"chunky-rounded-border",name:"Chunky Rounded Border",options:{borderOptions:{...Rr,thickness:60,radius:"50%",inner:{radius:"15%"},borderOuter:{thickness:6},borderInner:{thickness:6},decorations:{top:{enableText:!0,value:"SCAN ME",style:{fontSize:18,fontWeight:"bold"},offset:4},left:{enableText:!0,value:"LEFT TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4},right:{enableText:!0,value:"RIGHT TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4},bottom:{enableText:!0,value:"BOTTOM TEXT",style:{fontSize:18,fontWeight:"bold"},offset:4}}}}},{id:"double-thick-main-thin-subs-rounded",name:"Double Thick Main Thin Subs Rounded",options:{borderOptions:{...Rr,thickness:25,radius:"20%",borderOuter:{thickness:6},borderInner:{thickness:6},decorations:{top:{enableText:!0,value:"SCAN ME",style:{fontSize:16,fontWeight:"bold"},offset:5},left:{enableText:!0,value:"LEFT TEXT",style:{fontSize:16,fontWeight:"bold"},offset:6},right:{enableText:!0,value:"RIGHT TEXT",style:{fontSize:16,fontWeight:"bold"},offset:6},bottom:{enableText:!0,value:"BOTTOM TEXT",style:{fontSize:16,fontWeight:"bold"},offset:4}}}}},{id:"double-thick-main-thick-subs-square",name:"Double Thick Main Thick Subs Square",options:{borderOptions:{...Rr,thickness:25,radius:"4%",borderOuter:{thickness:6},borderInner:{thickness:10},decorations:{top:{enableText:!0,style:{fontSize:16,fontWeight:"bold"},offset:5,value:"SCAN ME"},left:{enableText:!0,style:{fontSize:16,fontWeight:"bold"},offset:7,value:"LEFT TEXT"},right:{enableText:!0,style:{fontSize:16,fontWeight:"bold"},offset:7,value:"RIGHT TEXT"},bottom:{enableText:!0,style:{fontSize:16,fontWeight:"bold"},offset:5,value:"BOTTOM TEXT"}}}}},{id:"inner-thick-rounded",name:"Inner Thick Rounded",options:{borderOptions:{...Rr,thickness:0,radius:"35%",borderOuter:{thickness:0},borderInner:{thickness:35},inner:{radius:"15%"},decorations:{top:{enableText:!0,value:"SCAN ME",style:{fontSize:18,fontWeight:"bold",fontColor:"#000"},offset:36},left:{enableText:!0,value:"LEFT TEXT",style:{fontSize:18,fontWeight:"bold",fontColor:"#000"},offset:38},right:{enableText:!0,value:"RIGHT TEXT",style:{fontSize:18,fontWeight:"bold",fontColor:"#000"},offset:36},bottom:{enableText:!0,value:"BOTTOM TEXT",style:{fontSize:18,fontWeight:"bold",fontColor:"#000"},offset:33}}}}},{id:"outer-thick-square",name:"Outer Thick Square",options:{borderOptions:{...Rr,thickness:10,radius:"2%",borderOuter:{thickness:20},borderInner:{thickness:0}}}},{id:"pill-double-thin-text",name:"Pill Double Thin Text",options:{margin:5,borderOptions:{...Rr,thickness:30,radius:"50%",borderOuter:{thickness:6},borderInner:{thickness:6},decorations:{top:{disabled:!1,enableText:!0,value:"SCAN ME",offset:5,style:{fontSize:18,fontWeight:"bold"}},left:{disabled:!0},right:{disabled:!0},bottom:{disabled:!1,enableText:!0,value:"BOTTOM TEXT",offset:3,style:{fontSize:18,fontWeight:"bold"}}}}}},{id:"double-thin-circle-inner-rounded",name:"Double Thin Circle Inner Rounded",options:{margin:5,borderOptions:{...Rr,thickness:20,radius:"10%",inner:{radius:"25%"},borderOuter:{thickness:4},borderInner:{thickness:4},decorations:{top:{disabled:!1},left:{disabled:!0},right:{disabled:!0},bottom:{disabled:!1}}}}},{id:"square-top-bottom-text",name:"Square Top/Bottom Text",options:{borderOptions:{...Rr,thickness:30,radius:"10%",decorations:{top:{enableText:!0,value:"SCAN CODE",offset:1,style:{fontSize:16}},bottom:{enableText:!0,value:"VISIT OUR SITE",style:{fontSize:16}}}}}},{id:"rounded-left-right-text",name:"Rounded Left/Right Text",options:{margin:5,borderOptions:{...Rr,thickness:30,radius:"20%",decorations:{top:{disabled:!0},bottom:{disabled:!0},left:{enableText:!0,offset:2,value:"LEFT TEXT",style:{fontSize:19}},right:{enableText:!0,offset:2,value:"RIGHT TEXT",style:{fontSize:19}}}}}},{id:"square-left-text-only",name:"Square Left Text Only",options:{margin:5,borderOptions:{...Rr,borderInner:{thickness:10},thickness:45,radius:"5%",decorations:{left:{enableText:!0,value:"SCAN ME",offset:2,style:{fontSize:20,fontWeight:"bold",letterSpacing:1}},top:{disabled:!0},bottom:{disabled:!0},right:{disabled:!0}}}}},{id:"square-right-text-only",name:"Square Right Text Only",options:{margin:5,borderOptions:{...Rr,borderInner:{thickness:10},thickness:45,radius:"5%",decorations:{right:{enableText:!0,value:"WEBSITE.COM",offset:2,style:{fontSize:20,fontWeight:"bold",letterSpacing:1}},top:{disabled:!0},bottom:{disabled:!0},left:{disabled:!0}}}}},{id:"rounded-left-right-different-text",name:"Rounded Left+Right Different Text",options:{margin:20,borderOptions:{...Rr,borderInner:{thickness:10},thickness:40,radius:"35%",decorations:{left:{enableText:!0,value:"SCAN",style:{fontSize:19,fontWeight:"bold"}},right:{enableText:!0,value:"NOW",style:{fontSize:19,fontWeight:"bold"}},top:{disabled:!0},bottom:{disabled:!0}}}}},{id:"square-left-right-identical-text",name:"Square Left+Right Identical Text",options:{margin:5,borderOptions:{...Rr,borderInner:{thickness:10},thickness:40,radius:"2%",decorations:{left:{enableText:!0,value:"QR CODE",style:{fontSize:18,fontWeight:"bold"}},right:{enableText:!0,value:"QR CODE",style:{fontSize:18,fontWeight:"bold"}},top:{disabled:!0},bottom:{disabled:!0}}}}},{id:"pill-left-right-bottom-text",name:"Pill Left Right Bottom Text",options:{margin:20,borderOptions:{...Rr,borderInner:{thickness:10},thickness:45,inner:{radius:"45%",verticalOffset:-5},radius:"50%",decorations:{top:{disabled:!0},left:{enableText:!0,value:"FOLLOW US",offset:5,style:{fontSize:18,fontWeight:"bold"}},right:{enableText:!0,value:"CONTACT US",offset:5,style:{fontSize:18,fontWeight:"bold"}},bottom:{enableText:!0,value:"WEBSITE.COM",style:{fontSize:18,fontWeight:"bold"}}}}}},{id:"pill-left-right-top-text",name:"Pill Left Right Top Text",options:{margin:20,borderOptions:{...Rr,borderInner:{thickness:10},thickness:45,inner:{radius:"45%",verticalOffset:-5},radius:"50%",decorations:{top:{enableText:!0,value:"WEBSITE.COM",offset:5,curveDisabled:!1,style:{fontSize:20,fontWeight:"bold"}},left:{enableText:!0,value:"FOLLOW US",offset:5,style:{fontSize:18,fontWeight:"bold"}},right:{enableText:!0,value:"SHARE LINK",offset:5,style:{fontSize:18,fontWeight:"bold"}},bottom:{disabled:!0}}}}}];function nn(e){return rn.find((t=>t.name.toLowerCase()===e.toLowerCase()))}function sn(e){return rn.find((t=>t.id===e))}const an=[{id:"scan-me-top",name:"Scan Me (Top)",options:{topValue:"SCAN ME"}},{id:"scan-me-bottom",name:"Scan Me (Bottom)",options:{bottomValue:"SCAN ME"}},{id:"visit-website-top",name:"Visit Website (Top)",options:{topValue:"Visit Our Website"}},{id:"visit-website-bottom",name:"Visit Website (Bottom)",options:{bottomValue:"Visit Our Website"}},{id:"follow-us-left",name:"Follow Us (Left)",options:{leftValue:"Follow Us!"}},{id:"follow-us-right",name:"Follow Us (Right)",options:{rightValue:"Follow Us!"}},{id:"contact-info-bottom",name:"Contact Info (Bottom)",options:{bottomValue:"Contact Information"}},{id:"scan-to-pay-top",name:"Scan To Pay (Top)",options:{topValue:"Scan to Pay"}},{id:"product-details-bottom",name:"Product Details (Bottom)",options:{bottomValue:"View Product Details"}},{id:"event-info-top-bottom",name:"Event Info (Top/Bottom)",options:{topValue:"EVENT DETAILS",bottomValue:"Scan for Info"}},{id:"lost-found-all-sides",name:"Lost & Found (All Sides)",options:{topValue:"LOST?",bottomValue:"SCAN TO RETURN",leftValue:"If Found",rightValue:"Please Scan"}},{id:"scan-for-wifi-top",name:"Scan for WiFi (Top)",options:{topValue:"Scan for WiFi Access"}},{id:"get-directions-bottom",name:"Get Directions (Bottom)",options:{bottomValue:"Get Directions Here"}},{id:"special-offer-top",name:"Special Offer (Top)",options:{topValue:"SPECIAL OFFER INSIDE!"}},{id:"scan-to-download-bottom",name:"Scan to Download (Bottom)",options:{bottomValue:"Scan to Download App"}},{id:"register-now-top",name:"Register Now (Top)",options:{topValue:"REGISTER NOW"}},{id:"scan-to-learn-more",name:"Scan to Learn More (Bottom)",options:{bottomValue:"Scan to Learn More"}},{id:"scan-me-animated-top",name:"Scan Me Animated (Top - Placeholder)",options:{topValue:"SCAN ME! ->"}},{id:"your-text-here-all",name:"Your Text Here (All Sides)",options:{topValue:"Top Text Here",bottomValue:"Bottom Text Here",leftValue:"Left Text",rightValue:"Right Text"}},{id:"website-url-bottom",name:"Website URL (Bottom)",options:{bottomValue:"www.example.com"}},{id:"call-to-action-top-bottom",name:"Call To Action (Top/Bottom)",options:{topValue:"SCAN NOW!",bottomValue:"LIMITED TIME"}},{id:"empty-text-options",name:"Empty Text Options (Clear All)",options:{topValue:null,bottomValue:null,leftValue:null,rightValue:null}}];function dn(e){return an.find((t=>t.name.toLowerCase()===e.toLowerCase()))}function ln(e){return an.find((t=>t.id===e))}var cn;!function(e){e.svg="svg",e.png="png",e.jpeg="jpeg",e.webp="webp"}(cn||(cn={})),Object.assign(w.stringToBytesFuncs,{UTF8:e=>function(e){const t=[];for(let o=0;o<e.length;o++){let r=e.charCodeAt(o);r<128?t.push(r):r<2048?t.push(192|r>>6,128|63&r):r<55296||r>=57344?t.push(224|r>>12,128|r>>6&63,128|63&r):(o++,r=65536+((1023&r)<<10|1023&e.charCodeAt(o)),t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r))}return t}(e)});let un=class e{get size(){return this.qrSVG?{width:this.qrSVG.width,height:this.qrSVG.height}:void 0}constructor(t,o=!1){this._svgId=`qr-svg-${Math.random().toString(36).substring(2,9)}`;const r=t;let n=se;e._selectedTemplate&&(n="id"in e._selectedTemplate&&"options"in e._selectedTemplate?e._selectedTemplate.options:e._selectedTemplate);let i={};e._selectedBorder&&(i="id"in e._selectedBorder&&"options"in e._selectedBorder?e._selectedBorder.options:e._selectedBorder);let s={};if(e._selectedStyle){const{isValid:t,errors:o}=oe(e._selectedStyle);t?s=te(e._selectedStyle):console.warn("Invalid static style options ignored during instantiation:",o)}let a={};e._selectedImage&&!e._selectedImageOverride&&(a={image:e._selectedImage});const d={};if(e._selectedText&&!e._selectedTextOverride){let t=null;if(t="id"in e._selectedText&&"options"in e._selectedText?e._selectedText.options:e._selectedText,t){d.borderOptions||(d.borderOptions={}),d.borderOptions.decorations||(d.borderOptions.decorations={});const e=d.borderOptions.decorations;void 0!==t.topValue&&(e.top={value:null===t.topValue?void 0:t.topValue,enableText:null!==t.topValue}),void 0!==t.leftValue&&(e.left={value:null===t.leftValue?void 0:t.leftValue,enableText:null!==t.leftValue}),void 0!==t.rightValue&&(e.right={value:null===t.rightValue?void 0:t.rightValue,enableText:null!==t.rightValue}),void 0!==t.bottomValue&&(e.bottom={value:null===t.bottomValue?void 0:t.bottomValue,enableText:null!==t.bottomValue})}}const l=v(n,i,d,s,a,r),{warnings:c,validatedOptions:u}=Io(l);this.options=$(u);const p={};if(e._selectedImageOverride&&e._selectedImage&&(p.image=e._selectedImage),e._selectedTextOverride&&e._selectedText){p.borderOptions||(p.borderOptions={}),p.borderOptions.decorations||(p.borderOptions.decorations={});let t=null;if(t="id"in e._selectedText&&"options"in e._selectedText?e._selectedText.options:e._selectedText,t){const e=p.borderOptions.decorations;void 0!==t.topValue&&(e.top={value:null===t.topValue?void 0:t.topValue,enableText:null!==t.topValue}),void 0!==t.leftValue&&(e.left={value:null===t.leftValue?void 0:t.leftValue,enableText:null!==t.leftValue}),void 0!==t.rightValue&&(e.right={value:null===t.rightValue?void 0:t.rightValue,enableText:null!==t.rightValue}),void 0!==t.bottomValue&&(e.bottom={value:null===t.bottomValue?void 0:t.bottomValue,enableText:null!==t.bottomValue})}}return Object.keys(p).length>0&&(this.options=$(v(this.options,p))),c.length>0&&this._logValidationWarnings("QR Code Options Validation Warnings:",c),this.update(),this}static setTemplate(t){if(null===t)return e._selectedTemplate=null,e;if("string"==typeof t){const o=t,r=vo(o);r?e._selectedTemplate=r:(console.warn(`QR Code template name "${o}" not found. Using base template.`),e._selectedTemplate=se)}else e._selectedTemplate=t;return e}static setTemplateId(t){if(null===t)return e._selectedTemplate=null,e;const o=Ao(t);return o?e._selectedTemplate=o:(console.warn(`QR Code template ID "${t}" not found in setTemplateId. Using default.`),e._selectedTemplate=se),e}static getTemplates(){return{findTextTemplateById:ln,findTextByName:dn,findTemplateByName:vo,findTemplateById:Ao,findBorderById:sn,findBorderByName:nn,findStyleById:xr,findStyleByName:jr,baseTemplates:To,borderTemplates:rn,styleTemplates:Vr,textTemplates:an}}static setStyle(t){if(null===t)return e._selectedStyle=null,e;let o=null;if("string"==typeof t){const r=t,n=jr(r);n?(o=n.style,e._selectedStyle=o):(console.warn(`QR Code style name "${r}" not found in setStyle. Ignoring.`),e._selectedStyle=null)}else{const{isValid:r,errors:n}=oe(t);r?(o=t,e._selectedStyle=o):(console.warn("Invalid style options object provided to setStyle:",n),e._selectedStyle=null)}return e}static setBorder(t){if(null===t)return e._selectedBorder=null,e;if("string"==typeof t){const o=t,r=nn(o);r?e._selectedBorder=r:(console.warn(`QR Code border template name "${o}" not found. Ignoring.`),e._selectedBorder=null)}else e._selectedBorder={borderOptions:t};return e}static setBorderId(t){if(null===t)return e._selectedBorder=null,e;const o=sn(t);return o?e._selectedBorder=o:(console.warn(`QR Code border template ID "${t}" not found in setBorderId. Ignoring.`),e._selectedBorder=null),e}static setStyleId(t){if(null===t)return e._selectedStyle=null,e;const o=xr(t);return o?e._selectedStyle=o.style:(console.warn(`QR Code style ID "${t}" not found in setStyleId. Ignoring.`),e._selectedStyle=null),e}static setImage(t,o){return e._selectedImage=t,e._selectedImageOverride=!!o?.override,e}static setText(t,o){if(null===t)e._selectedText=null;else if("string"==typeof t){const o=dn(t);o?e._selectedText=o:(console.warn(`QR Code text template name "${t}" not found. Ignoring.`),e._selectedText=null)}else e._selectedText=t;return e._selectedTextOverride=!!o?.override,e}static setTextId(t,o){if(null===t)e._selectedText=null;else{const o=ln(t);console.log("foundTextTemplate",o),o?e._selectedText=o:(console.warn(`QR Code text template ID "${t}" not found in setTextId. Ignoring.`),e._selectedText=null)}return e._selectedTextOverride=!!o?.override,e}getOptions(){return this.options}async update(e){const t=e?v(this.options,e):this.options,{warnings:o,validatedOptions:r}=Io(t);if(o.length>0&&this._logValidationWarnings("QR Code JS Options Update Validation Warnings:",o),this.options=$(r),!this.options.data)return void console.warn("QR Code update called without data.");this.options.stringToBytesFuncs&&(Object.assign(w.stringToBytesFuncs,this.options.stringToBytesFuncs),delete this.options.stringToBytesFuncs),this.qr=new w(this.options.qrOptions.typeNumber,this.options.qrOptions.errorCorrectionLevel);const n=this.options.qrOptions?.mode||function(e){switch(!0){case/^[0-9]*$/.test(e):return k.numeric;case/^[0-9A-Z $%*+\-./:]*$/.test(e):return k.alphanumeric;case/[^\u0000-\u00ff]/.test(e):return k.unicode;default:return k.byte}}(this.options.data);this.qr.addData(this.options.data,n),this.qr.make(),await this._setupSvgAsync(),this.svgDrawingPromise&&await this.svgDrawingPromise;const i=this.qrSVG?.element;if(this.container&&i){const e=this.container.querySelector(`#${this._svgId}`);e?e!==i&&this.container.replaceChild(i,e):this.container.appendChild(i)}}append(e){return e?(this.container=e,this.qrSVG?.element&&!e.querySelector(`#${this._svgId}`)&&e.appendChild(this.qrSVG.element),this):(console.warn("QR Code append could not find container."),this)}async applyExtension(e){if(!e)throw new Error("Extension function should be defined.");this.extension=e,await this.update()}async deleteExtension(){this.extension=void 0,await this.update()}async serialize(e=!1){if(!this.qr)throw new Error("QR code is empty");if(this.qrSVG?.element||await this._setupSvgAsync(),this.svgDrawingPromise&&await this.svgDrawingPromise,!this.qrSVG?.element)return;let t=this.qrSVG.element;if(e){const e=this.qrSVG.element.cloneNode(!0);e.style.filter="invert(1)",t=e}let o=(new XMLSerializer).serializeToString(t);return o='<?xml version="1.0" standalone="no"?>\r\n'+o,o}async _setupSvgAsync(){if(!this.qr)return;let e=this.qr.getModuleCount();this.options.imageOptions.mode===Q.background&&this.options.shape!==H.circle&&(e+=2);let t=Math.ceil((this.options.shape===H.circle?Math.sqrt(1.8):1.1)*e);t%2==0&&(t-=1);let o=0;this.options.imageOptions.mode===Q.background&&(o+=this.options.imageOptions.margin||0);const r=Math.ceil(this.options.dotsOptions.size*(t+2*o)),n=this.options.borderOptions;let i=0,s=0;const a={top:0,right:0,bottom:0,left:0},d={top:0,right:0,bottom:0,left:0},l={top:0,right:0,bottom:0,left:0},c=n?.noBorderThickness||n?.thickness?n.thickness/4:0;if(n?.hasBorder){const e=n.borderOuter?.thickness?2*n.borderOuter?.thickness:0,t=n.borderInner?.thickness?2*n.borderInner?.thickness:0;e>0&&(d.top=e/2,d.bottom=e/2,d.left=e/2,d.right=e/2),t>0&&(l.top=t/2,l.bottom=t/2,l.left=t/2,l.right=t/2),J(n,"left")?(a.left=n.thickness,i+=n.thickness):(a.left=c,i+=c),J(n,"right")?(a.right=n.thickness,i+=n.thickness):(a.right=c,i+=c),J(n,"top")?(a.top=n.thickness,s+=n.thickness):(a.top=c,s+=c),M(n,"bottom",this._hls())?(a.bottom=n.thickness,s+=n.thickness):(a.bottom=c,s+=c)}const u=r+i,p=r+s;this.qrSVG=new Fo({...this.options,width:u,height:p,bordersMain:a,bordersOuter:d,bordersInner:l,errorCorrectionPercent:ee[this.options.qrOptions.errorCorrectionLevel],hls:this._hls()}),this.qrSVG?.element?(this.qrSVG.element.id=this._svgId,this.svgDrawingPromise=this.qrSVG.drawQR(this.qr).then((()=>{this.qrSVG?.element&&(this.options.instanceId=this.qrSVG._instanceId,this.options.borderOptions?.hasBorder&&N(this.options.borderOptions)(this.qrSVG.element,this.options,r,this.qrSVG.drawBackgroundForBorder.bind(this.qrSVG),a,d,l,c,this._hls),this.extension?.(this.qrSVG.element,this.options))})).catch((e=>{throw console.error("Error during SVG drawing or post-processing:",e),e}))):console.error("QRSVG element not created immediately after instantiation.")}async _drawToCanvasForValidation(e){const{width:t=300,height:o=300}=this.qrSVG?.svgSize??e??s,r=t,n=o,i=document.createElement("canvas");i.width=r,i.height=n;const a=await this.serialize();if(!a)throw new Error("Failed to serialize SVG.");const d="data:image/svg+xml;base64,"+btoa(a);return new Promise(((e,t)=>{const o=new Image;o.width=r,o.height=n,o.crossOrigin="Anonymous",o.onload=()=>{const s=i.getContext("2d");if(!s)return t(new Error("Could not get canvas 2D context"));s.drawImage(o,0,0,r,n),e(i)},o.onerror=o.onabort=t,o.src=d}))}async drawToCanvas(e){const{width:t=300,height:o=300}=this.qrSVG?.svgSize??e??s,r=1*t,n=1*o,i=document.createElement("canvas");i.width=r,i.height=n;const a=(async()=>{try{const e=await this.serialize();if(!e)return void console.warn("SVG serialization returned empty.");const s="data:image/svg+xml;base64,"+btoa(e),a=new Image;a.width=r,a.height=n,await new Promise(((e,d)=>{a.onload=()=>{const s=Math.ceil(2*Math.max(t,o)/Math.max(a.width,a.height));let l;try{l=new OffscreenCanvas(a.width*s*2,a.height*s*2)}catch(e){l=document.createElement("canvas"),l.width=a.width*s*2,l.height=a.height*s*2}const c=l.getContext("2d");if(!c)return d(new Error("Could not get OffscreenCanvas 2D context"));c.drawImage(a,0,0,l.width,l.height);const u=i.getContext("2d");if(!u)return d(new Error("Could not get canvas 2D context"));u.drawImage(l,0,0,l.width,l.height,0,0,r,n),e()},a.onerror=e=>d(new Error(`Image load error: ${e}`)),a.onabort=()=>d(new Error("Image load aborted")),a.src=s}))}catch(e){throw console.error("Error drawing to canvas:",e),e}})();return{canvas:i,canvasDrawingPromise:a}}downloadURI(e,t){const o=document.createElement("a");o.download=t,o.href=e,document.body.appendChild(o),o.click(),document.body.removeChild(o)}async download(e,t){if("undefined"==typeof Blob)throw new Error("Cannot download in Node.js environment");let o=cn.png,r="qr";if(e&&(e.name&&(r=e.name),e.extension&&(o=e.extension)),"svg"===o.toLowerCase()){const e=await this.serialize();if(!e)return;const t="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(e);this.downloadURI(t,`${r}.svg`)}else{const e=await this.drawToCanvas(t);if(!e)return;const{canvas:n,canvasDrawingPromise:i}=e;await i;const s=n.toDataURL(`image/${o}`);this.downloadURI(s,`${r}.${o}`)}}async createOptimizedQRCanvas(e){const{width:t=300,height:o=300}=this.qrSVG?.svgSize??e??s,r=document.createElement("canvas");r.width=t,r.height=o;const n=await this.serialize();if(!n)throw new Error("Failed to serialize SVG.");const i="data:image/svg+xml;base64,"+btoa(Array.from((new TextEncoder).encode(n)).map((e=>String.fromCharCode(e))).join(""));return new Promise(((e,n)=>{const s=new Image;s.width=t,s.height=o,s.crossOrigin="Anonymous",s.onload=()=>{const i=r.getContext("2d");if(!i)return n(new Error("Could not get canvas 2D context"));i.imageSmoothingEnabled=!1,i.drawImage(s,0,0,t,o),this.applyQRThreshold(r),e(r)},s.onerror=e=>n(new Error(`Image load error: ${e}`)),s.onabort=()=>n(new Error("Image load aborted")),s.src=i}))}applyQRThreshold(e){const t=e.getContext("2d");if(!t)return;const o=t.getImageData(0,0,e.width,e.height),r=o.data;for(let e=0;e<r.length;e+=4){const t=(r[e]+r[e+1]+r[e+2])/3<128?0:255;r[e]=r[e+1]=r[e+2]=t}t.putImageData(o,0,0)}_hls(){return!1}_logValidationWarnings(e,t){console.warn(e),t.forEach((e=>{console.warn(`option: ${e.path} - '${e.value}' : ${e.message}`)}))}};un.version="0.10.1",un._selectedTemplate=null,un._selectedBorder=null,un._selectedStyle=null,un._selectedImage=null,un._selectedImageOverride=!1,un._selectedText=null,un._selectedTextOverride=!1;class pn{constructor(){this._hls=!1,this._decodedToken=null,this._licenseKey=null,this._storedToken=null,this._storedKey=null,this._isInitialized=!1,this._initPromise=null,this._licenseFetcher=async e=>{const t=pn._defaultLicenseApiUrl;if(!t)throw new Error("LicenseManagerNode: API URL not set. Call LicenseManagerNode.setDefaultLicenseApiUrl() with an absolute URL.");try{const o=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({licenseKey:e})});if(!o.ok){let e={};try{e=await o.json()}catch(e){}throw new Error(`Failed to fetch token: ${o.status} ${e?.error||o.statusText}`)}const{qrjs_token:r}=await o.json();if(!r)throw new Error("Fetched token is empty.");return r}catch(e){throw console.error(`LicenseManagerNode: Default fetcher failed: ${e.message}`),new Error(`License fetcher failed: ${e.message}`)}}}static get instance(){return pn._instance||(pn._instance=new pn),pn._instance}static setDefaultLicenseApiUrl(e){"string"==typeof e&&e?(e.startsWith("http://")||e.startsWith("https://")||console.warn("LicenseManagerNode: URL provided to setDefaultLicenseApiUrl does not appear to be absolute. Relative URLs may not work reliably server-side."),pn._defaultLicenseApiUrl=e):console.warn("LicenseManagerNode: Invalid URL provided to setDefaultLicenseApiUrl.")}get hls(){return this._hls}get isInitialized(){return this._isInitialized}getLicenseDetails(){return this._hls?this._decodedToken:null}get licenseKey(){return this._licenseKey}configureLicenseFetcher(e){if("function"!=typeof e)throw new Error("License fetcher must be a function that accepts a license key string and returns a Promise<string>.");this._licenseFetcher=e,this.resetInitialization(),this.resetLicenseState()}async initialize(){return this._isInitialized&&this._initPromise||this._initPromise||(this._initPromise=this._performInitialization()),this._initPromise}async _performInitialization(){if(this._hls)return this._isInitialized=!0,!0;this.resetLicenseState();const e=this._getStoredLicenseData(),t=e.token||null,o=e.key||null;if(this._licenseKey=o,!t)return this._isInitialized=!0,!1;const r=await this._validateAndStoreToken(t,o);if(r.isValid)return this._hls=!0,this._decodedToken=r.license,this._isInitialized=!0,!0;if(console.warn("LicenseManagerNode: Stored license token failed validation during initialization."),!o)return console.warn("LicenseManagerNode: Cannot refresh token: No license key found in storage."),this._isInitialized=!0,!1;console.warn("LicenseManagerNode: Attempting to refresh token using stored license key...");try{const e=await this.activateWithKey(o);return this._isInitialized=!0,e.isValid}catch(e){return console.error(`LicenseManagerNode: Auto-refresh attempt failed: ${e.message}`),this._licenseKey=o,this._isInitialized=!0,!1}}resetInitialization(){this._isInitialized=!1,this._initPromise=null}resetLicenseState(){this._hls=!1,this._decodedToken=null,this._licenseKey=null,this._storedToken=null,this._storedKey=null}async activateWithToken(e){let t;return this.resetInitialization(),null===e?(t=await this._validateAndStoreToken(null,this._licenseKey),this._hls=!1,this._decodedToken=null):"string"==typeof e&&e?(t=await this._validateAndStoreToken(e,null),this._hls=t.isValid,this._decodedToken=t.license,t.isValid?this._licenseKey=this._getStoredLicenseData().key||null:this._licenseKey=null):(console.warn("Invalid token string provided to activateWithToken()."),t=await this._validateAndStoreToken(null,null),this._hls=!1,this._decodedToken=null,this._licenseKey=null),this._isInitialized=!0,this._initPromise=Promise.resolve(this._hls),t}async activateWithKey(e){this.resetInitialization();let t={isValid:!1,token:null,license:null};if(e&&"string"==typeof e){this._licenseKey=e;let o=null,r=null;const n=this._getStoredLicenseData();if(o=n.token||null,r=n.key||null,o&&r===e?(t=await this._validateAndStoreToken(o,e),t.isValid||console.warn("LicenseManagerNode: Cached token validation failed. Attempting to fetch a new token...")):(t={isValid:!1,token:null,license:null},o&&r!==e&&console.warn("LicenseManagerNode: Cached token belongs to a different license key. Fetching new token...")),!t.isValid)try{const o=await this._licenseFetcher(e);t=await this._validateAndStoreToken(o,e),t.isValid||console.warn(`LicenseManagerNode: Fetched token for key ${e} failed validation.`)}catch(o){console.warn(`LicenseManagerNode: Failed to fetch license token for key ${e}: ${o.message}`),await this._validateAndStoreToken(null,e),t={isValid:!1,token:null,license:null}}this._hls=t.isValid,this._decodedToken=t.license}else console.warn("Invalid license key provided to activateWithKey()."),await this._validateAndStoreToken(null,null),this._hls=!1,this._decodedToken=null,this._licenseKey=null;return this._isInitialized=!0,this._initPromise=Promise.resolve(this._hls),t}_getStoredLicenseData(){return{token:this._storedToken??void 0,key:this._storedKey??void 0}}_setStoredLicenseData(e){this._storedToken=e.token??null,this._storedKey=e.key??null}async _validateAndStoreToken(e,t){const o=t??this._storedKey??void 0;if(!e)return this._setStoredLicenseData({key:o}),{isValid:!1,token:null,license:null};try{const t=await async function(e){try{const t=await r("-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ZCmxp1vq4LJLviS9d2u\nY5V9IykLzCrNcj8fCenqEyir5b4+FGE3hvLqp9zT+IYRF2cV2K0aGe9G0COFZsX2\nE5ye1DguyvPQgRMPO8y7bxXJ3da1IP7Gs+/3gy4iuzRV4Uhy73jUVpqE/zZ2JAv/\nsY36Rxmq4h7YE/F6YQk3DeZvnHjS7spUlp/+d3W67G8v2jiYWy3pO08Sn0rF2cjg\nXrJA5jcNr7ksER7AQcwayaLT4rAV4+EOcDYXL2egnqoTEmRzQYD2ReHBsO6jB0Ud\nbmsNepxbBdq/fBr+5HNj2tUJItarfH3BUVRFu/L1xP8wOEQa8wmPRwrJdPsI3bdk\n7QIDAQAB\n-----END PUBLIC KEY-----","RS256"),{payload:o}=await n(e,t,{algorithms:["RS256"]});if(!o||"string"!=typeof o.sub)throw new i.JOSEError("Decoded token payload structure is invalid.");return o}catch(e){throw e}}(e);return this._setStoredLicenseData({token:e,key:o}),{isValid:!0,token:e,license:t}}catch(t){return console.warn(`LicenseManagerNode: License token validation failed: ${t.message}`),this._storedToken===e&&this._setStoredLicenseData({key:o}),{isValid:!1,token:null,license:null}}}}var hn;pn._instance=null,pn._defaultLicenseApiUrl="/api/get-token",function(e){e.svg="svg",e.png="png",e.jpeg="jpeg",e.webp="webp"}(hn||(hn={}));const mn=void 0,gn="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjY2NjIi8+PHRleHQgeD0iNTAlIiB5PSI1MCUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDAiIGZvbnQtc2l6ZT0iMTYiPkxvZ28gbG9hZCBlcnJvcjwvdGV4dD48L3N2Zz4=";class fn extends un{static async initializeIfNeeded(){return pn.instance.initialize()}static get hls(){return pn.instance.isInitialized?pn.instance.hls:(pn.instance.initialize().catch((e=>{console.error("QRCode.js (Server): Background license initialization failed:",e)})),!1)}_hls(){return pn.instance.isInitialized?pn.instance.hls:(pn.instance.initialize().catch((e=>{console.error("QRCode.js (Server): Background license initialization failed:",e)})),!1)}static getLicenseDetails(){return pn.instance.isInitialized?pn.instance.getLicenseDetails():(pn.instance.initialize().catch((e=>{console.error("QRCode.js (Server): Background license initialization failed:",e)})),null)}static configureLicenseFetcher(e){pn.instance.configureLicenseFetcher(e)}static async token(e){return pn.instance.activateWithToken(e)}static async license(e){return pn.instance.activateWithKey(e)}static setLicenseUrl(e){return pn.setDefaultLicenseApiUrl(e),this}static async initXmldom(){if(!fn._xmldomSync){const t=e;fn._xmldomSync=t}}constructor(e,r=!1){if(!fn._xmldomSync)throw new Error("You must call QRCodeJs.initXmldom() before constructing QRCodeJs");const{DOMImplementation:n,DOMParser:i,XMLSerializer:s}=fn._xmldomSync,a=(new n).createDocument(null,"");global.XMLSerializer=s,global.DOMParser=i;const d=new Map,l=async e=>{try{if("string"==typeof e){let o=d.get(e);return o||(o=new Promise((async(o,r)=>{const n=new AbortController,i=setTimeout((()=>{n.abort(),r(new Error("Image load timed out"))}),15e3);try{const r=await fetch(e,{signal:n.signal,headers:{"User-Agent":"QR-Plarform/1 (https://www.qr-platform.com; contact@qr-platform.com)"}});if(!r.ok)throw new Error(`HTTP ${r.status} - ${r.statusText}`);const s=Buffer.from(await r.arrayBuffer()),a=await t(s);clearTimeout(i),o({contentType:r.headers.get("Content-Type")||a?.mime,data:s})}catch(e){clearTimeout(i),r(e)}})),d.set(e,o),o)}{const o=Buffer.isBuffer(e)?e:Buffer.from(await e.arrayBuffer()),r=await t(o);return{contentType:r?.mime,data:o}}}catch(e){return console.warn("[QRCodeJs] Image loading failed:",e),{contentType:"image/svg+xml",data:Buffer.from(gn.split(",")[1],"base64")}}};super({...e,document:e.document||a,imageTools:e.imageTools||{toDataURL:async e=>{try{if("string"==typeof e&&e.startsWith("data:"))return e;const{contentType:t,data:o}=await l(e);return`data:${t?.replace("application/xml","image/svg+xml")||"image/png"};base64,${o.toString("base64")}`}catch(e){return console.warn("[QRCodeJs] Data URL conversion failed:",e),gn}},getSize:async t=>{try{const{data:r}=Buffer.isBuffer(e.image)?{data:e.image}:await l(t),n=o(r);return{width:n.width||200,height:n.height||200}}catch(e){return console.warn("[QRCodeJs] Image size detection failed:",e),{width:200,height:200}}}}}),r||(pn.instance.isInitialized||pn.instance.hls?pn.instance.isInitialized&&!pn.instance.hls&&console.warn("QRCode.js (Server): No valid license found. Some features may be limited."):console.warn("QRCode.js (Server): License state not yet initialized. Call QRCodeJs.initializeIfNeeded() or activate a license."))}static async validateImageData(e){if(!this.hls)return console.warn("QRCode.js (Server): Scanning validation requires a valid license."),Promise.reject({isValid:!1,message:"Valid license required for scanning validation."});try{const t="undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent,{qrValidatorZbar:o}=t?await import("./chunks/scan-validator-worker-nQmPU9X1.js"):await import("./chunks/scan-validator-node-_qhS-Z_9.js"),r=await o.validateZbarImageData(e);if(r.isValid)return{...r,validator:"ZBAR"};{console.debug("Zbar validation failed, trying Zxing...");const{qrValidatorZxing:t}=await import("./chunks/scan-validator-zxing-node-Dc9Z0asL.js");return{...await t.validateImageData(e),validator:"ZXING"}}}catch(e){return console.debug(`Zbar and Zxing validation threw an error: ${e instanceof Error?e.message:String(e)}`),Promise.reject({isValid:!1,message:e instanceof Error?e.message:"Zbar and Zxing validation failed with an error"})}}async validateScanning(){if(!this._hls())return console.warn("QRCode.js (Server): Scanning validation requires a valid license."),Promise.reject({isValid:!1,message:"Valid license required for scanning validation."});try{const e=await this.serialize(),t="undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent,{qrValidatorZbar:o}=t?await import("./chunks/scan-validator-worker-nQmPU9X1.js"):await import("./chunks/scan-validator-node-_qhS-Z_9.js"),r=await o.validateZbar(e,!1);if(r.isValid)return{...r,validator:"ZBAR"};{console.debug("Zbar validation failed, trying Zxing...");const{qrValidatorZxing:t}=await import("./chunks/scan-validator-zxing-node-Dc9Z0asL.js");return{...await t.validateZxing(e),validator:"ZXING"}}}catch(e){return console.debug(`Zbar and Zxing validation threw an error: ${e instanceof Error?e.message:String(e)}`),Promise.reject({isValid:!1,message:e instanceof Error?e.message:"Zbar and Zxing validation failed with an error"})}}static async validateSvg(e){if(!this.hls)return console.warn("QRCode.js (Server): Scanning validation requires a valid license."),Promise.reject({isValid:!1,message:"Valid license required for scanning validation."});if(!e)return Promise.reject({isValid:!1,message:"SVG source is required for scanning validation."});try{const t=e,o="undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent,{qrValidatorZbar:r}=o?await import("./chunks/scan-validator-worker-nQmPU9X1.js"):await import("./chunks/scan-validator-node-_qhS-Z_9.js"),n=await r.validateZbar(t,!1);if(n.isValid)return{...n,validator:"ZBAR"};{console.debug("Zbar validation failed, trying Zxing...");const{qrValidatorZxing:e}=await import("./chunks/scan-validator-zxing-node-Dc9Z0asL.js");return{...await e.validateZxing(t),validator:"ZXING"}}}catch(e){return console.debug(`Zbar and Zxing validation threw an error: ${e instanceof Error?e.message:String(e)}`),Promise.reject({isValid:!1,message:e instanceof Error?e.message:"Zbar and Zxing validation failed with an error"})}}static useTemplate(e){return new bn(this,e)}static useTemplateId(e){return new bn(this).useTemplateId(e)}static useStyle(e){return new bn(this).useStyle(e)}static useStyleId(e){return new bn(this).useStyleId(e)}static useBorder(e){return new bn(this).useBorder(e)}static useBorderId(e){return new bn(this).useBorderId(e)}static useImage(e,t){return new bn(this).useImage(e,t)}static useText(e,t){return new bn(this).useText(e,t)}static useTextId(e,t){return new bn(this).useTextId(e,t)}}fn._xmldomSync=null,fn._initPromise=null,fn._initPromise=fn.initXmldom();class bn{constructor(e,t){this._templateSource=null,this._borderSource=null,this._styleSource=null,this._imageSource=null,this._imageOverride=!1,this._textSource=null,this._textOverride=!1,this._isTemplateById=!1,this._isBorderById=!1,this._isStyleById=!1,this._isTextById=!1,this._initialOptions=null,this._qrCodeConstructor=e,"string"==typeof t?(this._templateSource=t,this._isTemplateById=!1):t&&(this._initialOptions=t)}useTemplate(e){return this._templateSource=e,this._isTemplateById=!1,this._initialOptions=null,this}useTemplateId(e){return this._templateSource=e,this._isTemplateById=!0,this._initialOptions=null,this}useStyle(e){return this._styleSource=e,this._isStyleById=!1,this}useStyleId(e){return this._styleSource=e,this._isStyleById=!0,this}useBorder(e){return this._borderSource=e,this._isBorderById=!1,this}useBorderId(e){return this._borderSource=e,this._isBorderById=!0,this}useImage(e,t){return this._imageSource=e,this._imageOverride=!!t?.override,this}useText(e,t){return this._textSource=e,this._isTextById=!1,this._textOverride=!!t?.override,this._initialOptions=null,this}useTextId(e,t){return this._textSource=e,this._isTextById=!0,this._textOverride=!!t?.override,this._initialOptions=null,this}_resolveAndMergeConfig(e={}){let t={};t=this._initialOptions?v({},this._initialOptions):v({},se);let o=null;if(this._templateSource&&"string"==typeof this._templateSource){const e=(this._isTemplateById?Ao:vo)(this._templateSource);if(e)o=e.options;else{const e=this._isTemplateById?"ID":"name";console.warn(`QR Code template ${e} "${this._templateSource}" not found. Using base template.`)}}else this._templateSource&&"string"!=typeof this._templateSource&&(o=this._templateSource);o&&(t=v(t,o));let r=null;if(this._borderSource)if("string"==typeof this._borderSource){const e=(this._isBorderById?sn:nn)(this._borderSource);if(e)r=e.options;else{const e=this._isBorderById?"ID":"name";console.warn(`QR Code border ${e} "${this._borderSource}" not found. Ignoring.`)}}else r={borderOptions:this._borderSource};r&&(t=v(t,r));let n=null;if(this._textSource&&!this._textOverride){let e=null;if("string"==typeof this._textSource){const t=(this._isTextById?ln:dn)(this._textSource);if(t)e=t.options;else{const e=this._isTextById?"ID":"name";console.warn(`QR Code text template ${e} "${this._textSource}" not found. Ignoring.`)}}else e=this._textSource;if(e){n={borderOptions:{decorations:{}}};const t=n.borderOptions.decorations;void 0!==e.topValue&&(t.top={value:null===e.topValue?void 0:e.topValue,enableText:null!==e.topValue}),void 0!==e.leftValue&&(t.left={value:null===e.leftValue?void 0:e.leftValue,enableText:null!==e.leftValue}),void 0!==e.rightValue&&(t.right={value:null===e.rightValue?void 0:e.rightValue,enableText:null!==e.rightValue}),void 0!==e.bottomValue&&(t.bottom={value:null===e.bottomValue?void 0:e.bottomValue,enableText:null!==e.bottomValue})}}n&&(t=v(t,n));let i=null;if(this._styleSource)if("string"==typeof this._styleSource){const e=(this._isStyleById?xr:jr)(this._styleSource);if(e)i=e.style;else{const e=this._isStyleById?"ID":"name";console.warn(`QR Code style ${e} "${this._styleSource}" not found. Ignoring.`)}}else{const{isValid:e,errors:t}=oe(this._styleSource);e?i=this._styleSource:console.warn("Invalid style options object provided:",t)}if(i){t=v(t,te(i))}if(this._imageSource&&!this._imageOverride&&(t=v(t,{image:this._imageSource})),t=v(t,e),this._imageOverride&&this._imageSource&&(t=v(t,{image:this._imageSource})),this._textOverride&&this._textSource){const e={borderOptions:{decorations:{}}};let o=null;if("string"==typeof this._textSource){const e=(this._isTextById?ln:dn)(this._textSource);e&&(o=e.options)}else o=this._textSource;if(o){const r=e.borderOptions.decorations;void 0!==o.topValue&&(r.top={value:null===o.topValue?void 0:o.topValue,enableText:null!==o.topValue}),void 0!==o.leftValue&&(r.left={value:null===o.leftValue?void 0:o.leftValue,enableText:null!==o.leftValue}),void 0!==o.rightValue&&(r.right={value:null===o.rightValue?void 0:o.rightValue,enableText:null!==o.rightValue}),void 0!==o.bottomValue&&(r.bottom={value:null===o.bottomValue?void 0:o.bottomValue,enableText:null!==o.bottomValue}),t=v(t,e)}}return t}options(e){const t=this._resolveAndMergeConfig(e);return new this._qrCodeConstructor(t)}build(){const e=this._resolveAndMergeConfig();return new this._qrCodeConstructor(e)}}class yn extends fn{_hls(){return!0}static get hls(){return!0}constructor(e){super(e,!0)}}export{U as CornerDotType,K as CornerSquareType,F as DotType,C as ErrorCorrectionLevel,ee as ErrorCorrectionPercents,hn as FileExtension,P as GradientType,Q as ImageMode,k as Mode,bn as QRCodeBuilder,fn as QRCodeJs,H as ShapeType,S as TypeNumber,yn as _,mn as browserUtils};