From 5a596e31c31fd0264b44e58c8b2269c9d0b8d705 Mon Sep 17 00:00:00 2001 From: minhaz Date: Sun, 31 Oct 2021 18:15:26 +0530 Subject: [PATCH] Update html5-qrcode.min.js --- minified/html5-qrcode.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/minified/html5-qrcode.min.js b/minified/html5-qrcode.min.js index c17445d..e476cf1 100644 --- a/minified/html5-qrcode.min.js +++ b/minified/html5-qrcode.min.js @@ -1,5 +1,5 @@ /*! For license information please see html5-qrcode.min.js.LICENSE.txt */ -var __Html5QrcodeLibrary__;(()=>{var t={449:function(t,e,r){!function(t){"use strict";var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};var n,i=function(t){function r(e){var r,n,i,o=this.constructor,s=t.call(this,e)||this;return Object.defineProperty(s,"name",{value:o.name,enumerable:!1}),r=s,n=o.prototype,(i=Object.setPrototypeOf)?i(r,n):r.__proto__=n,function(t,e){void 0===e&&(e=t.constructor);var r=Error.captureStackTrace;r&&r(t,e)}(s),s}return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}(r,t),r}(Error);class o extends i{constructor(t){super(t),this.message=t}getKind(){return this.constructor.kind}}o.kind="Exception";class s extends o{}s.kind="ArgumentException";class a extends o{}a.kind="IllegalArgumentException";class A{constructor(t){if(this.binarizer=t,null===t)throw new a("Binarizer must be non-null.")}getWidth(){return this.binarizer.getWidth()}getHeight(){return this.binarizer.getHeight()}getBlackRow(t,e){return this.binarizer.getBlackRow(t,e)}getBlackMatrix(){return null!==this.matrix&&void 0!==this.matrix||(this.matrix=this.binarizer.getBlackMatrix()),this.matrix}isCropSupported(){return this.binarizer.getLuminanceSource().isCropSupported()}crop(t,e,r,n){const i=this.binarizer.getLuminanceSource().crop(t,e,r,n);return new A(this.binarizer.createBinarizer(i))}isRotateSupported(){return this.binarizer.getLuminanceSource().isRotateSupported()}rotateCounterClockwise(){const t=this.binarizer.getLuminanceSource().rotateCounterClockwise();return new A(this.binarizer.createBinarizer(t))}rotateCounterClockwise45(){const t=this.binarizer.getLuminanceSource().rotateCounterClockwise45();return new A(this.binarizer.createBinarizer(t))}toString(){try{return this.getBlackMatrix().toString()}catch(t){return""}}}class l extends o{static getChecksumInstance(){return new l}}l.kind="ChecksumException";class c{constructor(t){this.source=t}getLuminanceSource(){return this.source}getWidth(){return this.source.getWidth()}getHeight(){return this.source.getHeight()}}class h{static arraycopy(t,e,r,n,i){for(;i--;)r[n++]=t[e++]}static currentTimeMillis(){return Date.now()}}class g extends o{}g.kind="IndexOutOfBoundsException";class d extends g{constructor(t,e){super(e),this.index=t,this.message=e}}d.kind="ArrayIndexOutOfBoundsException";class u{static fill(t,e){for(let r=0,n=t.length;rr)throw new a("fromIndex("+e+") > toIndex("+r+")");if(e<0)throw new d(e);if(r>t)throw new d(r)}static asList(...t){return t}static create(t,e,r){return Array.from({length:t}).map((t=>Array.from({length:e}).fill(r)))}static createInt32Array(t,e,r){return Array.from({length:t}).map((t=>Int32Array.from({length:e}).fill(r)))}static equals(t,e){if(!t)return!1;if(!e)return!1;if(!t.length)return!1;if(!e.length)return!1;if(t.length!==e.length)return!1;for(let r=0,n=t.length;r>1,s=r(e,t[o]);if(s>0)n=o+1;else{if(!(s<0))return o;i=o-1}}return-n-1}static numberComparator(t,e){return t-e}}class C{static numberOfTrailingZeros(t){let e;if(0===t)return 32;let r=31;return e=t<<16,0!==e&&(r-=16,t=e),e=t<<8,0!==e&&(r-=8,t=e),e=t<<4,0!==e&&(r-=4,t=e),e=t<<2,0!==e&&(r-=2,t=e),r-(t<<1>>>31)}static numberOfLeadingZeros(t){if(0===t)return 32;let e=1;return t>>>16==0&&(e+=16,t<<=16),t>>>24==0&&(e+=8,t<<=8),t>>>28==0&&(e+=4,t<<=4),t>>>30==0&&(e+=2,t<<=2),e-=t>>>31,e}static toHexString(t){return t.toString(16)}static toBinaryString(t){return String(parseInt(String(t),2))}static bitCount(t){return t=(t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135,63&(t+=t>>>8)+(t>>>16)}static truncDivision(t,e){return Math.trunc(t/e)}static parseInt(t,e){return parseInt(t,e)}}C.MIN_VALUE_32_BITS=-2147483648,C.MAX_VALUE=Number.MAX_SAFE_INTEGER;class I{constructor(t,e){void 0===t?(this.size=0,this.bits=new Int32Array(1)):(this.size=t,this.bits=null==e?I.makeArray(t):e)}getSize(){return this.size}getSizeInBytes(){return Math.floor((this.size+7)/8)}ensureCapacity(t){if(t>32*this.bits.length){const e=I.makeArray(t);h.arraycopy(this.bits,0,e,0,this.bits.length),this.bits=e}}get(t){return 0!=(this.bits[Math.floor(t/32)]&1<<(31&t))}set(t){this.bits[Math.floor(t/32)]|=1<<(31&t)}flip(t){this.bits[Math.floor(t/32)]^=1<<(31&t)}getNextSet(t){const e=this.size;if(t>=e)return e;const r=this.bits;let n=Math.floor(t/32),i=r[n];i&=~((1<<(31&t))-1);const o=r.length;for(;0===i;){if(++n===o)return e;i=r[n]}const s=32*n+C.numberOfTrailingZeros(i);return s>e?e:s}getNextUnset(t){const e=this.size;if(t>=e)return e;const r=this.bits;let n=Math.floor(t/32),i=~r[n];i&=~((1<<(31&t))-1);const o=r.length;for(;0===i;){if(++n===o)return e;i=~r[n]}const s=32*n+C.numberOfTrailingZeros(i);return s>e?e:s}setBulk(t,e){this.bits[Math.floor(t/32)]=e}setRange(t,e){if(ethis.size)throw new a;if(e===t)return;e--;const r=Math.floor(t/32),n=Math.floor(e/32),i=this.bits;for(let o=r;o<=n;o++){const s=(2<<(or?0:31&t));i[o]|=s}}clear(){const t=this.bits.length,e=this.bits;for(let r=0;rthis.size)throw new a;if(e===t)return!0;e--;const n=Math.floor(t/32),i=Math.floor(e/32),o=this.bits;for(let s=n;s<=i;s++){const a=(2<<(sn?0:31&t))&4294967295;if((o[s]&a)!==(r?a:0))return!1}return!0}appendBit(t){this.ensureCapacity(this.size+1),t&&(this.bits[Math.floor(this.size/32)]|=1<<(31&this.size)),this.size++}appendBits(t,e){if(e<0||e>32)throw new a("Num bits must be between 0 and 32");this.ensureCapacity(this.size+e);for(let r=e;r>0;r--)this.appendBit(1==(t>>r-1&1))}appendBitArray(t){const e=t.size;this.ensureCapacity(this.size+e);for(let r=0;r>1&1431655765|(1431655765&r)<<1,r=r>>2&858993459|(858993459&r)<<2,r=r>>4&252645135|(252645135&r)<<4,r=r>>8&16711935|(16711935&r)<<8,r=r>>16&65535|(65535&r)<<16,t[e-i]=r}if(this.size!==32*r){const e=32*r-this.size;let n=t[0]>>>e;for(let i=1;i>>e}t[r-1]=n}this.bits=t}static makeArray(t){return new Int32Array(Math.floor((t+31)/32))}equals(t){if(!(t instanceof I))return!1;const e=t;return this.size===e.size&&u.equals(this.bits,e.bits)}hashCode(){return 31*this.size+u.hashCode(this.bits)}toString(){let t="";for(let e=0,r=this.size;e=900)throw new E("incorect value");const e=m.VALUES_TO_ECI.get(t);if(void 0===e)throw new E("incorect value");return e}static getCharacterSetECIByName(t){const e=m.NAME_TO_ECI.get(t);if(void 0===e)throw new E("incorect value");return e}equals(t){if(!(t instanceof m))return!1;const e=t;return this.getName()===e.getName()}}m.VALUE_IDENTIFIER_TO_ECI=new Map,m.VALUES_TO_ECI=new Map,m.NAME_TO_ECI=new Map,m.Cp437=new m(f.Cp437,Int32Array.from([0,2]),"Cp437"),m.ISO8859_1=new m(f.ISO8859_1,Int32Array.from([1,3]),"ISO-8859-1","ISO88591","ISO8859_1"),m.ISO8859_2=new m(f.ISO8859_2,4,"ISO-8859-2","ISO88592","ISO8859_2"),m.ISO8859_3=new m(f.ISO8859_3,5,"ISO-8859-3","ISO88593","ISO8859_3"),m.ISO8859_4=new m(f.ISO8859_4,6,"ISO-8859-4","ISO88594","ISO8859_4"),m.ISO8859_5=new m(f.ISO8859_5,7,"ISO-8859-5","ISO88595","ISO8859_5"),m.ISO8859_6=new m(f.ISO8859_6,8,"ISO-8859-6","ISO88596","ISO8859_6"),m.ISO8859_7=new m(f.ISO8859_7,9,"ISO-8859-7","ISO88597","ISO8859_7"),m.ISO8859_8=new m(f.ISO8859_8,10,"ISO-8859-8","ISO88598","ISO8859_8"),m.ISO8859_9=new m(f.ISO8859_9,11,"ISO-8859-9","ISO88599","ISO8859_9"),m.ISO8859_10=new m(f.ISO8859_10,12,"ISO-8859-10","ISO885910","ISO8859_10"),m.ISO8859_11=new m(f.ISO8859_11,13,"ISO-8859-11","ISO885911","ISO8859_11"),m.ISO8859_13=new m(f.ISO8859_13,15,"ISO-8859-13","ISO885913","ISO8859_13"),m.ISO8859_14=new m(f.ISO8859_14,16,"ISO-8859-14","ISO885914","ISO8859_14"),m.ISO8859_15=new m(f.ISO8859_15,17,"ISO-8859-15","ISO885915","ISO8859_15"),m.ISO8859_16=new m(f.ISO8859_16,18,"ISO-8859-16","ISO885916","ISO8859_16"),m.SJIS=new m(f.SJIS,20,"SJIS","Shift_JIS"),m.Cp1250=new m(f.Cp1250,21,"Cp1250","windows-1250"),m.Cp1251=new m(f.Cp1251,22,"Cp1251","windows-1251"),m.Cp1252=new m(f.Cp1252,23,"Cp1252","windows-1252"),m.Cp1256=new m(f.Cp1256,24,"Cp1256","windows-1256"),m.UnicodeBigUnmarked=new m(f.UnicodeBigUnmarked,25,"UnicodeBigUnmarked","UTF-16BE","UnicodeBig"),m.UTF8=new m(f.UTF8,26,"UTF8","UTF-8"),m.ASCII=new m(f.ASCII,Int32Array.from([27,170]),"ASCII","US-ASCII"),m.Big5=new m(f.Big5,28,"Big5"),m.GB18030=new m(f.GB18030,29,"GB18030","GB2312","EUC_CN","GBK"),m.EUC_KR=new m(f.EUC_KR,30,"EUC_KR","EUC-KR");class p extends o{}p.kind="UnsupportedOperationException";class S{static decode(t,e){const r=this.encodingName(e);return this.customDecoder?this.customDecoder(t,r):"undefined"==typeof TextDecoder||this.shouldDecodeOnFallback(r)?this.decodeFallback(t,r):new TextDecoder(r).decode(t)}static shouldDecodeOnFallback(t){return!S.isBrowser()&&"ISO-8859-1"===t}static encode(t,e){const r=this.encodingName(e);return this.customEncoder?this.customEncoder(t,r):"undefined"==typeof TextEncoder?this.encodeFallback(t):(new TextEncoder).encode(t)}static isBrowser(){return"undefined"!=typeof window&&"[object Window]"==={}.toString.call(window)}static encodingName(t){return"string"==typeof t?t:t.getName()}static encodingCharacterSet(t){return t instanceof m?t:m.getCharacterSetECIByName(t)}static decodeFallback(t,e){const r=this.encodingCharacterSet(e);if(S.isDecodeFallbackSupported(r)){let e="";for(let r=0,n=t.length;r3&&239===t[0]&&187===t[1]&&191===t[2];for(let e=0;e0?0==(128&r)?o=!1:s--:0!=(128&r)&&(0==(64&r)?o=!1:(s++,0==(32&r)?a++:(s++,0==(16&r)?A++:(s++,0==(8&r)?l++:o=!1))))),n&&(r>127&&r<160?n=!1:r>159&&(r<192||215===r||247===r)&&I++),i&&(c>0?r<64||127===r||r>252?i=!1:c--:128===r||160===r||r>239?i=!1:r>160&&r<224?(h++,d=0,g++,g>u&&(u=g)):r>127?(c++,g=0,d++,d>C&&(C=d)):(g=0,d=0))}return o&&s>0&&(o=!1),i&&c>0&&(i=!1),o&&(f||a+A+l>0)?R.UTF8:i&&(R.ASSUME_SHIFT_JIS||u>=3||C>=3)?R.SHIFT_JIS:n&&i?2===u&&2===h||10*I>=r?R.SHIFT_JIS:R.ISO88591:n?R.ISO88591:i?R.SHIFT_JIS:o?R.UTF8:R.PLATFORM_DEFAULT_ENCODING}static format(t,...e){let r=-1;return t.replace(/%(-)?(0?[0-9]+)?([.][0-9]+)?([#][0-9]+)?([scfpexd%])/g,(function(t,n,i,o,s,a){if("%%"===t)return"%";if(void 0===e[++r])return;t=o?parseInt(o.substr(1)):void 0;let A,l=s?parseInt(s.substr(1)):void 0;switch(a){case"s":A=e[r];break;case"c":A=e[r][0];break;case"f":A=parseFloat(e[r]).toFixed(t);break;case"p":A=parseFloat(e[r]).toPrecision(t);break;case"e":A=parseFloat(e[r]).toExponential(t);break;case"x":A=parseInt(e[r]).toString(l||16);break;case"d":A=parseFloat(parseInt(e[r],l||10).toPrecision(t)).toFixed(0)}A="object"==typeof A?JSON.stringify(A):(+A).toString(l);let c=parseInt(i),h=i&&i[0]+""=="0"?"0":" ";for(;A.lengtho){if(-1===s)s=i-o;else if(i-o!==s)throw new a("row lengths do not match");o=i,A++}l++}else if(t.substring(l,l+e.length)===e)l+=e.length,n[i]=!0,i++;else{if(t.substring(l,l+r.length)!==r)throw new a("illegal character encountered: "+t.substring(l));l+=r.length,n[i]=!1,i++}if(i>o){if(-1===s)s=i-o;else if(i-o!==s)throw new a("row lengths do not match");A++}const c=new B(s,A);for(let t=0;t>>(31&t)&1)}set(t,e){const r=e*this.rowSize+Math.floor(t/32);this.bits[r]|=1<<(31&t)&4294967295}unset(t,e){const r=e*this.rowSize+Math.floor(t/32);this.bits[r]&=~(1<<(31&t)&4294967295)}flip(t,e){const r=e*this.rowSize+Math.floor(t/32);this.bits[r]^=1<<(31&t)&4294967295}xor(t){if(this.width!==t.getWidth()||this.height!==t.getHeight()||this.rowSize!==t.getRowSize())throw new a("input matrix dimensions do not match");const e=new I(Math.floor(this.width/32)+1),r=this.rowSize,n=this.bits;for(let i=0,o=this.height;ithis.height||i>this.width)throw new a("The region must fit inside the matrix");const s=this.rowSize,A=this.bits;for(let r=e;ra&&(a=t),32*es){let t=31;for(;A>>>t==0;)t--;32*e+t>s&&(s=32*e+t)}}}return s=0&&0===e[r];)r--;if(r<0)return null;const n=Math.floor(r/t);let i=32*Math.floor(r%t);const o=e[r];let s=31;for(;o>>>s==0;)s--;return i+=s,Int32Array.from([i,n])}getWidth(){return this.width}getHeight(){return this.height}getRowSize(){return this.rowSize}equals(t){if(!(t instanceof B))return!1;const e=t;return this.width===e.width&&this.height===e.height&&this.rowSize===e.rowSize&&u.equals(this.bits,e.bits)}hashCode(){let t=this.width;return t=31*t+this.width,t=31*t+this.height,t=31*t+this.rowSize,t=31*t+u.hashCode(this.bits),t}toString(t="X ",e=" ",r="\n"){return this.buildToString(t,e,r)}buildToString(t,e,r){let n=new D;for(let i=0,o=this.height;i>T.LUMINANCE_SHIFT]++;const s=T.estimateBlackPoint(o);if(n<3)for(let t=0;t>T.LUMINANCE_SHIFT]++}const o=T.estimateBlackPoint(i),s=t.getMatrix();for(let t=0;ti&&(n=o,i=t[o]),t[o]>r&&(r=t[o]);let o=0,s=0;for(let r=0;rs&&(o=r,s=i)}if(n>o){const t=n;n=o,o=t}if(o-n<=e/16)throw new M;let a=o-1,A=-1;for(let e=o-1;e>n;e--){const i=e-n,s=i*i*(o-e)*(r-t[e]);s>A&&(a=e,A=s)}return a<=N.MINIMUM_DIMENSION&&r>=N.MINIMUM_DIMENSION){const n=t.getMatrix();let i=e>>N.BLOCK_SIZE_POWER;0!=(e&N.BLOCK_SIZE_MASK)&&i++;let o=r>>N.BLOCK_SIZE_POWER;0!=(r&N.BLOCK_SIZE_MASK)&&o++;const s=N.calculateBlackPoints(n,i,o,e,r),a=new B(e,r);N.calculateThresholdForBlock(n,i,o,e,r,s,a),this.matrix=a}else this.matrix=super.getBlackMatrix();return this.matrix}createBinarizer(t){return new N(t)}static calculateThresholdForBlock(t,e,r,n,i,o,s){const a=i-N.BLOCK_SIZE,A=n-N.BLOCK_SIZE;for(let i=0;ia&&(l=a);const c=N.cap(i,2,r-3);for(let r=0;rA&&(i=A);const a=N.cap(r,2,e-3);let h=0;for(let t=-2;t<=2;t++){const e=o[c+t];h+=e[a-2]+e[a-1]+e[a]+e[a+1]+e[a+2]}const g=h/25;N.thresholdBlock(t,i,l,g,n,s)}}}static cap(t,e,r){return tr?r:t}static thresholdBlock(t,e,r,n,i,o){for(let s=0,a=r*i+e;so&&(r=o);for(let o=0;os&&(e=s);let A=0,l=255,c=0;for(let i=0,o=r*n+e;ic&&(c=r)}if(c-l>N.MIN_DYNAMIC_RANGE)for(i++,o+=n;i>2*N.BLOCK_SIZE_POWER;if(c-l<=N.MIN_DYNAMIC_RANGE&&(h=l/2,i>0&&o>0)){const t=(a[i-1][o]+2*a[i][o-1]+a[i-1][o-1])/4;l>10,n[r]=i}return n}getRow(t,e){if(t<0||t>=this.getHeight())throw new a("Requested row is outside the image: "+t);const r=this.getWidth(),n=t*r;return null===e?e=this.buffer.slice(n,n+r):(e.lengthnew b(t.deviceId,t.label)))}))}findDeviceById(t){return P(this,void 0,void 0,(function*(){const e=yield this.listVideoInputDevices();return e?e.find((e=>e.deviceId===t)):null}))}decodeFromInputVideoDevice(t,e){return P(this,void 0,void 0,(function*(){return yield this.decodeOnceFromVideoDevice(t,e)}))}decodeOnceFromVideoDevice(t,e){return P(this,void 0,void 0,(function*(){let r;this.reset(),r=t?{deviceId:{exact:t}}:{facingMode:"environment"};const n={video:r};return yield this.decodeOnceFromConstraints(n,e)}))}decodeOnceFromConstraints(t,e){return P(this,void 0,void 0,(function*(){const r=yield navigator.mediaDevices.getUserMedia(t);return yield this.decodeOnceFromStream(r,e)}))}decodeOnceFromStream(t,e){return P(this,void 0,void 0,(function*(){this.reset();const r=yield this.attachStreamToVideo(t,e);return yield this.decodeOnce(r)}))}decodeFromInputVideoDeviceContinuously(t,e,r){return P(this,void 0,void 0,(function*(){return yield this.decodeFromVideoDevice(t,e,r)}))}decodeFromVideoDevice(t,e,r){return P(this,void 0,void 0,(function*(){let n;n=t?{deviceId:{exact:t}}:{facingMode:"environment"};const i={video:n};return yield this.decodeFromConstraints(i,e,r)}))}decodeFromConstraints(t,e,r){return P(this,void 0,void 0,(function*(){const n=yield navigator.mediaDevices.getUserMedia(t);return yield this.decodeFromStream(n,e,r)}))}decodeFromStream(t,e,r){return P(this,void 0,void 0,(function*(){this.reset();const n=yield this.attachStreamToVideo(t,e);return yield this.decodeContinuously(n,r)}))}stopAsyncDecode(){this._stopAsyncDecode=!0}stopContinuousDecode(){this._stopContinuousDecode=!0}attachStreamToVideo(t,e){return P(this,void 0,void 0,(function*(){const r=this.prepareVideoElement(e);return this.addVideoSource(r,t),this.videoElement=r,this.stream=t,yield this.playVideoOnLoadAsync(r),r}))}playVideoOnLoadAsync(t){return new Promise(((e,r)=>this.playVideoOnLoad(t,(()=>e()))))}playVideoOnLoad(t,e){this.videoEndedListener=()=>this.stopStreams(),this.videoCanPlayListener=()=>this.tryPlayVideo(t),t.addEventListener("ended",this.videoEndedListener),t.addEventListener("canplay",this.videoCanPlayListener),t.addEventListener("playing",e),this.tryPlayVideo(t)}isVideoPlaying(t){return t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2}tryPlayVideo(t){return P(this,void 0,void 0,(function*(){if(this.isVideoPlaying(t))console.warn("Trying to play video that is already playing.");else try{yield t.play()}catch(t){console.warn("It was not possible to play the video.")}}))}getMediaElement(t,e){const r=document.getElementById(t);if(!r)throw new s(`element with id '${t}' not found`);if(r.nodeName.toLowerCase()!==e.toLowerCase())throw new s(`element with id '${t}' must be an ${e} element`);return r}decodeFromImage(t,e){if(!t&&!e)throw new s("either imageElement with a src set or an url must be provided");return e&&!t?this.decodeFromImageUrl(e):this.decodeFromImageElement(t)}decodeFromVideo(t,e){if(!t&&!e)throw new s("Either an element with a src set or an URL must be provided");return e&&!t?this.decodeFromVideoUrl(e):this.decodeFromVideoElement(t)}decodeFromVideoContinuously(t,e,r){if(void 0===t&&void 0===e)throw new s("Either an element with a src set or an URL must be provided");return e&&!t?this.decodeFromVideoUrlContinuously(e,r):this.decodeFromVideoElementContinuously(t,r)}decodeFromImageElement(t){if(!t)throw new s("An image element must be provided.");this.reset();const e=this.prepareImageElement(t);let r;return this.imageElement=e,r=this.isImageLoaded(e)?this.decodeOnce(e,!1,!0):this._decodeOnLoadImage(e),r}decodeFromVideoElement(t){const e=this._decodeFromVideoElementSetup(t);return this._decodeOnLoadVideo(e)}decodeFromVideoElementContinuously(t,e){const r=this._decodeFromVideoElementSetup(t);return this._decodeOnLoadVideoContinuously(r,e)}_decodeFromVideoElementSetup(t){if(!t)throw new s("A video element must be provided.");this.reset();const e=this.prepareVideoElement(t);return this.videoElement=e,e}decodeFromImageUrl(t){if(!t)throw new s("An URL must be provided.");this.reset();const e=this.prepareImageElement();this.imageElement=e;const r=this._decodeOnLoadImage(e);return e.src=t,r}decodeFromVideoUrl(t){if(!t)throw new s("An URL must be provided.");this.reset();const e=this.prepareVideoElement(),r=this.decodeFromVideoElement(e);return e.src=t,r}decodeFromVideoUrlContinuously(t,e){if(!t)throw new s("An URL must be provided.");this.reset();const r=this.prepareVideoElement(),n=this.decodeFromVideoElementContinuously(r,e);return r.src=t,n}_decodeOnLoadImage(t){return new Promise(((e,r)=>{this.imageLoadedListener=()=>this.decodeOnce(t,!1,!0).then(e,r),t.addEventListener("load",this.imageLoadedListener)}))}_decodeOnLoadVideo(t){return P(this,void 0,void 0,(function*(){return yield this.playVideoOnLoadAsync(t),yield this.decodeOnce(t)}))}_decodeOnLoadVideoContinuously(t,e){return P(this,void 0,void 0,(function*(){yield this.playVideoOnLoadAsync(t),this.decodeContinuously(t,e)}))}isImageLoaded(t){return!!t.complete&&0!==t.naturalWidth}prepareImageElement(t){let e;return void 0===t&&(e=document.createElement("img"),e.width=200,e.height=200),"string"==typeof t&&(e=this.getMediaElement(t,"img")),t instanceof HTMLImageElement&&(e=t),e}prepareVideoElement(t){let e;return t||"undefined"==typeof document||(e=document.createElement("video"),e.width=200,e.height=200),"string"==typeof t&&(e=this.getMediaElement(t,"video")),t instanceof HTMLVideoElement&&(e=t),e.setAttribute("autoplay","true"),e.setAttribute("muted","true"),e.setAttribute("playsinline","true"),e}decodeOnce(t,e=!0,r=!0){this._stopAsyncDecode=!1;const n=(i,o)=>{if(this._stopAsyncDecode)return o(new M("Video stream has ended before any code could be detected.")),void(this._stopAsyncDecode=void 0);try{i(this.decode(t))}catch(t){const s=(t instanceof l||t instanceof E)&&r;if(e&&t instanceof M||s)return setTimeout(n,this._timeBetweenDecodingAttempts,i,o);o(t)}};return new Promise(((t,e)=>n(t,e)))}decodeContinuously(t,e){this._stopContinuousDecode=!1;const r=()=>{if(this._stopContinuousDecode)this._stopContinuousDecode=void 0;else try{const n=this.decode(t);e(n,null),setTimeout(r,this.timeBetweenScansMillis)}catch(t){e(null,t);const n=t instanceof M;(t instanceof l||t instanceof E||n)&&setTimeout(r,this._timeBetweenDecodingAttempts)}};r()}decode(t){const e=this.createBinaryBitmap(t);return this.decodeBitmap(e)}createBinaryBitmap(t){const e=this.getCaptureCanvasContext(t);this.drawImageOnCanvas(e,t);const r=this.getCaptureCanvas(t),n=new O(r),i=new N(n);return new A(i)}getCaptureCanvasContext(t){if(!this.captureCanvasContext){const e=this.getCaptureCanvas(t).getContext("2d");this.captureCanvasContext=e}return this.captureCanvasContext}getCaptureCanvas(t){if(!this.captureCanvas){const e=this.createCaptureCanvas(t);this.captureCanvas=e}return this.captureCanvas}drawImageOnCanvas(t,e){t.drawImage(e,0,0)}decodeBitmap(t){return this.reader.decode(t,this._hints)}createCaptureCanvas(t){if("undefined"==typeof document)return this._destroyCaptureCanvas(),null;const e=document.createElement("canvas");let r,n;return void 0!==t&&(t instanceof HTMLVideoElement?(r=t.videoWidth,n=t.videoHeight):t instanceof HTMLImageElement&&(r=t.naturalWidth||t.width,n=t.naturalHeight||t.height)),e.style.width=r+"px",e.style.height=n+"px",e.width=r,e.height=n,e}stopStreams(){this.stream&&(this.stream.getVideoTracks().forEach((t=>t.stop())),this.stream=void 0),!1===this._stopAsyncDecode&&this.stopAsyncDecode(),!1===this._stopContinuousDecode&&this.stopContinuousDecode()}reset(){this.stopStreams(),this._destroyVideoElement(),this._destroyImageElement(),this._destroyCaptureCanvas()}_destroyVideoElement(){this.videoElement&&(void 0!==this.videoEndedListener&&this.videoElement.removeEventListener("ended",this.videoEndedListener),void 0!==this.videoPlayingEventListener&&this.videoElement.removeEventListener("playing",this.videoPlayingEventListener),void 0!==this.videoCanPlayListener&&this.videoElement.removeEventListener("loadedmetadata",this.videoCanPlayListener),this.cleanVideoSource(this.videoElement),this.videoElement=void 0)}_destroyImageElement(){this.imageElement&&(void 0!==this.imageLoadedListener&&this.imageElement.removeEventListener("load",this.imageLoadedListener),this.imageElement.src=void 0,this.imageElement.removeAttribute("src"),this.imageElement=void 0)}_destroyCaptureCanvas(){this.captureCanvasContext=void 0,this.captureCanvas=void 0}addVideoSource(t,e){try{t.srcObject=e}catch(r){t.src=URL.createObjectURL(e)}}cleanVideoSource(t){try{t.srcObject=null}catch(e){t.src=""}this.videoElement.removeAttribute("src")}}class L{constructor(t,e,r=(null==e?0:8*e.length),n,i,o=h.currentTimeMillis()){this.text=t,this.rawBytes=e,this.numBits=r,this.resultPoints=n,this.format=i,this.timestamp=o,this.text=t,this.rawBytes=e,this.numBits=null==r?null==e?0:8*e.length:r,this.resultPoints=n,this.format=i,this.resultMetadata=null,this.timestamp=null==o?h.currentTimeMillis():o}getText(){return this.text}getRawBytes(){return this.rawBytes}getNumBits(){return this.numBits}getResultPoints(){return this.resultPoints}getBarcodeFormat(){return this.format}getResultMetadata(){return this.resultMetadata}putMetadata(t,e){null===this.resultMetadata&&(this.resultMetadata=new Map),this.resultMetadata.set(t,e)}putAllMetadata(t){null!==t&&(null===this.resultMetadata?this.resultMetadata=t:this.resultMetadata=new Map(t))}addResultPoints(t){const e=this.resultPoints;if(null===e)this.resultPoints=t;else if(null!==t&&t.length>0){const r=new Array(e.length+t.length);h.arraycopy(e,0,r,0,e.length),h.arraycopy(t,0,r,e.length,t.length),this.resultPoints=r}}getTimestamp(){return this.timestamp}toString(){return this.text}}!function(t){t[t.AZTEC=0]="AZTEC",t[t.CODABAR=1]="CODABAR",t[t.CODE_39=2]="CODE_39",t[t.CODE_93=3]="CODE_93",t[t.CODE_128=4]="CODE_128",t[t.DATA_MATRIX=5]="DATA_MATRIX",t[t.EAN_8=6]="EAN_8",t[t.EAN_13=7]="EAN_13",t[t.ITF=8]="ITF",t[t.MAXICODE=9]="MAXICODE",t[t.PDF_417=10]="PDF_417",t[t.QR_CODE=11]="QR_CODE",t[t.RSS_14=12]="RSS_14",t[t.RSS_EXPANDED=13]="RSS_EXPANDED",t[t.UPC_A=14]="UPC_A",t[t.UPC_E=15]="UPC_E",t[t.UPC_EAN_EXTENSION=16]="UPC_EAN_EXTENSION"}(F||(F={}));var G,Q=F;!function(t){t[t.OTHER=0]="OTHER",t[t.ORIENTATION=1]="ORIENTATION",t[t.BYTE_SEGMENTS=2]="BYTE_SEGMENTS",t[t.ERROR_CORRECTION_LEVEL=3]="ERROR_CORRECTION_LEVEL",t[t.ISSUE_NUMBER=4]="ISSUE_NUMBER",t[t.SUGGESTED_PRICE=5]="SUGGESTED_PRICE",t[t.POSSIBLE_COUNTRY=6]="POSSIBLE_COUNTRY",t[t.UPC_EAN_EXTENSION=7]="UPC_EAN_EXTENSION",t[t.PDF417_EXTRA_METADATA=8]="PDF417_EXTRA_METADATA",t[t.STRUCTURED_APPEND_SEQUENCE=9]="STRUCTURED_APPEND_SEQUENCE",t[t.STRUCTURED_APPEND_PARITY=10]="STRUCTURED_APPEND_PARITY"}(G||(G={}));var Z,U,Y,v,x,W,H=G;class V{constructor(t,e,r,n,i=-1,o=-1){this.rawBytes=t,this.text=e,this.byteSegments=r,this.ecLevel=n,this.structuredAppendSequenceNumber=i,this.structuredAppendParity=o,this.numBits=null==t?0:8*t.length}getRawBytes(){return this.rawBytes}getNumBits(){return this.numBits}setNumBits(t){this.numBits=t}getText(){return this.text}getByteSegments(){return this.byteSegments}getECLevel(){return this.ecLevel}getErrorsCorrected(){return this.errorsCorrected}setErrorsCorrected(t){this.errorsCorrected=t}getErasures(){return this.erasures}setErasures(t){this.erasures=t}getOther(){return this.other}setOther(t){this.other=t}hasStructuredAppend(){return this.structuredAppendParity>=0&&this.structuredAppendSequenceNumber>=0}getStructuredAppendParity(){return this.structuredAppendParity}getStructuredAppendSequenceNumber(){return this.structuredAppendSequenceNumber}}class j{exp(t){return this.expTable[t]}log(t){if(0===t)throw new a;return this.logTable[t]}static addOrSubtract(t,e){return t^e}}class X{constructor(t,e){if(0===e.length)throw new a;this.field=t;const r=e.length;if(r>1&&0===e[0]){let t=1;for(;tr.length){const t=e;e=r,r=t}let n=new Int32Array(r.length);const i=r.length-e.length;h.arraycopy(r,0,n,0,i);for(let t=i;t=t.getDegree()&&!n.isZero();){const i=n.getDegree()-t.getDegree(),s=e.multiply(n.getCoefficient(n.getDegree()),o),a=t.multiplyByMonomial(i,s),A=e.buildMonomial(i,s);r=r.addOrSubtract(A),n=n.addOrSubtract(a)}return[r,n]}toString(){let t="";for(let e=this.getDegree();e>=0;e--){let r=this.getCoefficient(e);if(0!==r){if(r<0?(t+=" - ",r=-r):t.length>0&&(t+=" + "),0===e||1!==r){const e=this.field.log(r);0===e?t+="1":1===e?t+="a":(t+="a^",t+=e)}0!==e&&(1===e?t+="x":(t+="x^",t+=e))}}return t}}class z extends o{}z.kind="ArithmeticException";class J extends j{constructor(t,e,r){super(),this.primitive=t,this.size=e,this.generatorBase=r;const n=new Int32Array(e);let i=1;for(let r=0;r=e&&(i^=t,i&=e-1);this.expTable=n;const o=new Int32Array(e);for(let t=0;t=(r/2|0);){let t=i,e=s;if(i=o,s=a,i.isZero())throw new K("r_{i-1} was zero");o=t;let r=n.getZero();const A=i.getCoefficient(i.getDegree()),l=n.inverse(A);for(;o.getDegree()>=i.getDegree()&&!o.isZero();){const t=o.getDegree()-i.getDegree(),e=n.multiply(o.getCoefficient(o.getDegree()),l);r=r.addOrSubtract(n.buildMonomial(t,e)),o=o.addOrSubtract(i.multiplyByMonomial(t,e))}if(a=r.multiply(s).addOrSubtract(e),o.getDegree()>=i.getDegree())throw new q("Division algorithm failed to reduce polynomial?")}const A=a.getCoefficient(0);if(0===A)throw new K("sigmaTilde(0) was zero");const l=n.inverse(A);return[a.multiplyScalar(l),o.multiplyScalar(l)]}findErrorLocations(t){const e=t.getDegree();if(1===e)return Int32Array.from([t.getCoefficient(1)]);const r=new Int32Array(e);let n=0;const i=this.field;for(let o=1;o1,c,c+r-1),c+=r-1;else for(let t=r-1;t>=0;--t)l[c++]=0!=(e&1<=8?tt.readCode(t,e,8):tt.readCode(t,e,r)<<8-r}static convertBoolArrayToByteArray(t){let e=new Uint8Array((t.length+7)/8);for(let r=0;r","?","[","]","{","}","CTRL_UL"],tt.DIGIT_TABLE=["CTRL_PS"," ","0","1","2","3","4","5","6","7","8","9",",",".","CTRL_UL","CTRL_US"];class et{constructor(){}static round(t){return NaN===t?0:t<=Number.MIN_SAFE_INTEGER?Number.MIN_SAFE_INTEGER:t>=Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:t+(t<0?-.5:.5)|0}static distance(t,e,r,n){const i=t-r,o=e-n;return Math.sqrt(i*i+o*o)}static sum(t){let e=0;for(let r=0,n=t.length;r!==n;r++)e+=t[r];return e}}class rt{static floatToIntBits(t){return t}}rt.MAX_VALUE=Number.MAX_SAFE_INTEGER;class nt{constructor(t,e){this.x=t,this.y=e}getX(){return this.x}getY(){return this.y}equals(t){if(t instanceof nt){const e=t;return this.x===e.x&&this.y===e.y}return!1}hashCode(){return 31*rt.floatToIntBits(this.x)+rt.floatToIntBits(this.y)}toString(){return"("+this.x+","+this.y+")"}static orderBestPatterns(t){const e=this.distance(t[0],t[1]),r=this.distance(t[1],t[2]),n=this.distance(t[0],t[2]);let i,o,s;if(r>=e&&r>=n?(o=t[0],i=t[1],s=t[2]):n>=r&&n>=e?(o=t[1],i=t[0],s=t[2]):(o=t[2],i=t[0],s=t[1]),this.crossProductZ(i,o,s)<0){const t=i;i=s,s=t}t[0]=i,t[1]=o,t[2]=s}static distance(t,e){return et.distance(t.x,t.y,e.x,e.y)}static crossProductZ(t,e,r){const n=e.x,i=e.y;return(r.x-n)*(t.y-i)-(r.y-i)*(t.x-n)}}class it{constructor(t,e){this.bits=t,this.points=e}getBits(){return this.bits}getPoints(){return this.points}}class ot extends it{constructor(t,e,r,n,i){super(t,e),this.compact=r,this.nbDatablocks=n,this.nbLayers=i}getNbLayers(){return this.nbLayers}getNbDatablocks(){return this.nbDatablocks}isCompact(){return this.compact}}class st{constructor(t,e,r,n){this.image=t,this.height=t.getHeight(),this.width=t.getWidth(),null==e&&(e=st.INIT_SIZE),null==r&&(r=t.getWidth()/2|0),null==n&&(n=t.getHeight()/2|0);const i=e/2|0;if(this.leftInit=r-i,this.rightInit=r+i,this.upInit=n-i,this.downInit=n+i,this.upInit<0||this.leftInit<0||this.downInit>=this.height||this.rightInit>=this.width)throw new M}detect(){let t=this.leftInit,e=this.rightInit,r=this.upInit,n=this.downInit,i=!1,o=!0,s=!1,a=!1,A=!1,l=!1,c=!1;const h=this.width,g=this.height;for(;o;){o=!1;let d=!0;for(;(d||!a)&&e=h){i=!0;break}let u=!0;for(;(u||!A)&&n=g){i=!0;break}let C=!0;for(;(C||!l)&&t>=0;)C=this.containsBlackPoint(r,n,t,!1),C?(t--,o=!0,l=!0):l||t--;if(t<0){i=!0;break}let I=!0;for(;(I||!c)&&r>=0;)I=this.containsBlackPoint(t,e,r,!0),I?(r--,o=!0,c=!0):c||r--;if(r<0){i=!0;break}o&&(s=!0)}if(!i&&s){const i=e-t;let o=null;for(let e=1;null===o&&er||s<-1||s>n)throw new M;i=!1,-1===o?(e[t]=0,i=!0):o===r&&(e[t]=r-1,i=!0),-1===s?(e[t+1]=0,i=!0):s===n&&(e[t+1]=n-1,i=!0)}i=!0;for(let t=e.length-2;t>=0&&i;t-=2){const o=Math.floor(e[t]),s=Math.floor(e[t+1]);if(o<-1||o>r||s<-1||s>n)throw new M;i=!1,-1===o?(e[t]=0,i=!0):o===r&&(e[t]=r-1,i=!0),-1===s?(e[t+1]=0,i=!0):s===n&&(e[t+1]=n-1,i=!0)}}}class At{constructor(t,e,r,n,i,o,s,a,A){this.a11=t,this.a21=e,this.a31=r,this.a12=n,this.a22=i,this.a32=o,this.a13=s,this.a23=a,this.a33=A}static quadrilateralToQuadrilateral(t,e,r,n,i,o,s,a,A,l,c,h,g,d,u,C){const I=At.quadrilateralToSquare(t,e,r,n,i,o,s,a);return At.squareToQuadrilateral(A,l,c,h,g,d,u,C).times(I)}transformPoints(t){const e=t.length,r=this.a11,n=this.a12,i=this.a13,o=this.a21,s=this.a22,a=this.a23,A=this.a31,l=this.a32,c=this.a33;for(let h=0;h>1&127):(n<<=10,n+=(e>>2&992)+(e>>1&31))}let i=this.getCorrectedParameterData(n,this.compact);this.compact?(this.nbLayers=1+(i>>6),this.nbDataBlocks=1+(63&i)):(this.nbLayers=1+(i>>11),this.nbDataBlocks=1+(2047&i))}getRotation(t,e){let r=0;t.forEach(((t,n,i)=>{r=(t>>e-2<<1)+(1&t)+(r<<3)})),r=((1&r)<<11)+(r>>1);for(let t=0;t<4;t++)if(C.bitCount(r^this.EXPECTED_CORNER_BITS[t])<=2)return t;throw new M}getCorrectedParameterData(t,e){let r,n;e?(r=7,n=2):(r=10,n=4);let i=r-n,o=new Int32Array(r);for(let e=r-1;e>=0;--e)o[e]=15&t,t>>=4;try{new $(J.AZTEC_PARAM).decode(o,i)}catch(t){throw new M}let s=0;for(let t=0;t2){let r=this.distancePoint(A,t)*this.nbCenterLayers/(this.distancePoint(i,e)*(this.nbCenterLayers+2));if(r<.75||r>1.25||!this.isWhiteOrBlackRectangle(t,s,a,A))break}e=t,r=s,n=a,i=A,o=!o}if(5!==this.nbCenterLayers&&7!==this.nbCenterLayers)throw new M;this.compact=5===this.nbCenterLayers;let s=new nt(e.getX()+.5,e.getY()-.5),a=new nt(r.getX()+.5,r.getY()+.5),A=new nt(n.getX()-.5,n.getY()+.5),l=new nt(i.getX()-.5,i.getY()-.5);return this.expandSquare([s,a,A,l],2*this.nbCenterLayers-3,2*this.nbCenterLayers)}getMatrixCenter(){let t,e,r,n;try{let i=new st(this.image).detect();t=i[0],e=i[1],r=i[2],n=i[3]}catch(i){let o=this.image.getWidth()/2,s=this.image.getHeight()/2;t=this.getFirstDifferent(new ht(o+7,s-7),!1,1,-1).toResultPoint(),e=this.getFirstDifferent(new ht(o+7,s+7),!1,1,1).toResultPoint(),r=this.getFirstDifferent(new ht(o-7,s+7),!1,-1,1).toResultPoint(),n=this.getFirstDifferent(new ht(o-7,s-7),!1,-1,-1).toResultPoint()}let i=et.round((t.getX()+n.getX()+e.getX()+r.getX())/4),o=et.round((t.getY()+n.getY()+e.getY()+r.getY())/4);try{let s=new st(this.image,15,i,o).detect();t=s[0],e=s[1],r=s[2],n=s[3]}catch(s){t=this.getFirstDifferent(new ht(i+7,o-7),!1,1,-1).toResultPoint(),e=this.getFirstDifferent(new ht(i+7,o+7),!1,1,1).toResultPoint(),r=this.getFirstDifferent(new ht(i-7,o+7),!1,-1,1).toResultPoint(),n=this.getFirstDifferent(new ht(i-7,o-7),!1,-1,-1).toResultPoint()}return i=et.round((t.getX()+n.getX()+e.getX()+r.getX())/4),o=et.round((t.getY()+n.getY()+e.getY()+r.getY())/4),new ht(i,o)}getMatrixCornerPoints(t){return this.expandSquare(t,2*this.nbCenterLayers,this.getDimension())}sampleGrid(t,e,r,n,i){let o=ct.getInstance(),s=this.getDimension(),a=s/2-this.nbCenterLayers,A=s/2+this.nbCenterLayers;return o.sampleGrid(t,s,s,a,a,A,a,A,A,a,A,e.getX(),e.getY(),r.getX(),r.getY(),n.getX(),n.getY(),i.getX(),i.getY())}sampleLine(t,e,r){let n=0,i=this.distanceResultPoint(t,e),o=i/r,s=t.getX(),a=t.getY(),A=o*(e.getX()-t.getX())/i,l=o*(e.getY()-t.getY())/i;for(let t=0;t.1&&c<.9?0:c<=.1===A?1:-1}getFirstDifferent(t,e,r,n){let i=t.getX()+r,o=t.getY()+n;for(;this.isValid(i,o)&&this.image.get(i,o)===e;)i+=r,o+=n;for(i-=r,o-=n;this.isValid(i,o)&&this.image.get(i,o)===e;)i+=r;for(i-=r;this.isValid(i,o)&&this.image.get(i,o)===e;)o+=n;return o-=n,new ht(i,o)}expandSquare(t,e,r){let n=r/(2*e),i=t[0].getX()-t[2].getX(),o=t[0].getY()-t[2].getY(),s=(t[0].getX()+t[2].getX())/2,a=(t[0].getY()+t[2].getY())/2,A=new nt(s+n*i,a+n*o),l=new nt(s-n*i,a-n*o);return i=t[1].getX()-t[3].getX(),o=t[1].getY()-t[3].getY(),s=(t[1].getX()+t[3].getX())/2,a=(t[1].getY()+t[3].getY())/2,[A,new nt(s+n*i,a+n*o),l,new nt(s-n*i,a-n*o)]}isValid(t,e){return t>=0&&t0&&e{r.foundPossibleResultPoint(t)}))}}reset(){}}class ut{decode(t,e){try{return this.doDecode(t,e)}catch(r){if(e&&!0===e.get(w.TRY_HARDER)&&t.isRotateSupported()){const r=t.rotateCounterClockwise(),n=this.doDecode(r,e),i=n.getResultMetadata();let o=270;null!==i&&!0===i.get(H.ORIENTATION)&&(o+=i.get(H.ORIENTATION)%360),n.putMetadata(H.ORIENTATION,o);const s=n.getResultPoints();if(null!==s){const t=r.getHeight();for(let e=0;e>(o?8:5));let a;a=o?n:15;const A=Math.trunc(n/2);for(let o=0;o=n)break;try{i=t.getBlackRow(l,i)}catch(t){continue}for(let t=0;t<2;t++){if(1===t&&(i.reverse(),e&&!0===e.get(w.NEED_RESULT_POINT_CALLBACK))){const t=new Map;e.forEach(((e,r)=>t.set(r,e))),t.delete(w.NEED_RESULT_POINT_CALLBACK),e=t}try{const n=this.decodeRow(l,i,e);if(1===t){n.putMetadata(H.ORIENTATION,180);const t=n.getResultPoints();null!==t&&(t[0]=new nt(r-t[0].getX()-1,t[0].getY()),t[1]=new nt(r-t[1].getX()-1,t[1].getY()))}return n}catch(t){}}}throw new M}static recordPattern(t,e,r){const n=r.length;for(let t=0;t=i)throw new M;let o=!t.get(e),s=0,a=e;for(;a0&&n>=0;)t.get(--e)!==i&&(n--,i=!i);if(n>=0)throw new M;ut.recordPattern(t,e+1,r)}static patternMatchVariance(t,e,r){const n=t.length;let i=0,o=0;for(let r=0;ro?n-o:o-n;if(A>r)return Number.POSITIVE_INFINITY;a+=A}return a/i}}class Ct extends ut{static findStartPattern(t){const e=t.getSize(),r=t.getNextSet(0);let n=0,i=Int32Array.from([0,0,0,0,0,0]),o=r,s=!1;for(let a=r;a=0&&t.isRange(Math.max(0,o-(a-o)/2),o,!1))return Int32Array.from([o,a,r]);o+=i[0]+i[1],i=i.slice(2,i.length-1),i[n-1]=0,i[n]=0,n--}else n++;i[n]=1,s=!s}throw new M}static decodeCode(t,e,r){ut.recordPattern(t,r,e);let n=Ct.MAX_AVG_VARIANCE,i=-1;for(let t=0;t=0)return i;throw new M}decodeRow(t,e,r){const n=r&&!0===r.get(w.ASSUME_GS1),i=Ct.findStartPattern(e),o=i[2];let s=0;const a=new Uint8Array(20);let A;switch(a[s++]=o,o){case Ct.CODE_START_A:A=Ct.CODE_CODE_A;break;case Ct.CODE_START_B:A=Ct.CODE_CODE_B;break;case Ct.CODE_START_C:A=Ct.CODE_CODE_C;break;default:throw new E}let c=!1,h=!1,g="",d=i[0],u=i[1];const C=Int32Array.from([0,0,0,0,0,0]);let I=0,f=0,m=o,p=0,S=!0,R=!1,D=!1;for(;!c;){const t=h;switch(h=!1,I=f,f=Ct.decodeCode(e,C,u),a[s++]=f,f!==Ct.CODE_STOP&&(S=!0),f!==Ct.CODE_STOP&&(p++,m+=p*f),d=u,u+=C.reduce(((t,e)=>t+e),0),f){case Ct.CODE_START_A:case Ct.CODE_START_B:case Ct.CODE_START_C:throw new E}switch(A){case Ct.CODE_CODE_A:if(f<64)g+=D===R?String.fromCharCode(" ".charCodeAt(0)+f):String.fromCharCode(" ".charCodeAt(0)+f+128),D=!1;else if(f<96)g+=D===R?String.fromCharCode(f-64):String.fromCharCode(f+64),D=!1;else switch(f!==Ct.CODE_STOP&&(S=!1),f){case Ct.CODE_FNC_1:n&&(0===g.length?g+="]C1":g+=String.fromCharCode(29));break;case Ct.CODE_FNC_2:case Ct.CODE_FNC_3:break;case Ct.CODE_FNC_4_A:!R&&D?(R=!0,D=!1):R&&D?(R=!1,D=!1):D=!0;break;case Ct.CODE_SHIFT:h=!0,A=Ct.CODE_CODE_B;break;case Ct.CODE_CODE_B:A=Ct.CODE_CODE_B;break;case Ct.CODE_CODE_C:A=Ct.CODE_CODE_C;break;case Ct.CODE_STOP:c=!0}break;case Ct.CODE_CODE_B:if(f<96)g+=D===R?String.fromCharCode(" ".charCodeAt(0)+f):String.fromCharCode(" ".charCodeAt(0)+f+128),D=!1;else switch(f!==Ct.CODE_STOP&&(S=!1),f){case Ct.CODE_FNC_1:n&&(0===g.length?g+="]C1":g+=String.fromCharCode(29));break;case Ct.CODE_FNC_2:case Ct.CODE_FNC_3:break;case Ct.CODE_FNC_4_B:!R&&D?(R=!0,D=!1):R&&D?(R=!1,D=!1):D=!0;break;case Ct.CODE_SHIFT:h=!0,A=Ct.CODE_CODE_A;break;case Ct.CODE_CODE_A:A=Ct.CODE_CODE_A;break;case Ct.CODE_CODE_C:A=Ct.CODE_CODE_C;break;case Ct.CODE_STOP:c=!0}break;case Ct.CODE_CODE_C:if(f<100)f<10&&(g+="0"),g+=f;else switch(f!==Ct.CODE_STOP&&(S=!1),f){case Ct.CODE_FNC_1:n&&(0===g.length?g+="]C1":g+=String.fromCharCode(29));break;case Ct.CODE_CODE_A:A=Ct.CODE_CODE_A;break;case Ct.CODE_CODE_B:A=Ct.CODE_CODE_B;break;case Ct.CODE_STOP:c=!0}}t&&(A=A===Ct.CODE_CODE_A?Ct.CODE_CODE_B:Ct.CODE_CODE_A)}const B=u-d;if(u=e.getNextUnset(u),!e.isRange(u,Math.min(e.getSize(),u+(u-d)/2),!1))throw new M;if(m-=p*I,m%103!==I)throw new l;const T=g.length;if(0===T)throw new M;T>0&&S&&(g=A===Ct.CODE_CODE_C?g.substring(0,T-2):g.substring(0,T-1));const N=(i[1]+i[0])/2,y=d+B/2,_=a.length,O=new Uint8Array(_);for(let t=0;t<_;t++)O[t]=a[t];const b=[new nt(N,t),new nt(y,t)];return new L(g,O,0,b,Q.CODE_128,(new Date).getTime())}}Ct.CODE_PATTERNS=[Int32Array.from([2,1,2,2,2,2]),Int32Array.from([2,2,2,1,2,2]),Int32Array.from([2,2,2,2,2,1]),Int32Array.from([1,2,1,2,2,3]),Int32Array.from([1,2,1,3,2,2]),Int32Array.from([1,3,1,2,2,2]),Int32Array.from([1,2,2,2,1,3]),Int32Array.from([1,2,2,3,1,2]),Int32Array.from([1,3,2,2,1,2]),Int32Array.from([2,2,1,2,1,3]),Int32Array.from([2,2,1,3,1,2]),Int32Array.from([2,3,1,2,1,2]),Int32Array.from([1,1,2,2,3,2]),Int32Array.from([1,2,2,1,3,2]),Int32Array.from([1,2,2,2,3,1]),Int32Array.from([1,1,3,2,2,2]),Int32Array.from([1,2,3,1,2,2]),Int32Array.from([1,2,3,2,2,1]),Int32Array.from([2,2,3,2,1,1]),Int32Array.from([2,2,1,1,3,2]),Int32Array.from([2,2,1,2,3,1]),Int32Array.from([2,1,3,2,1,2]),Int32Array.from([2,2,3,1,1,2]),Int32Array.from([3,1,2,1,3,1]),Int32Array.from([3,1,1,2,2,2]),Int32Array.from([3,2,1,1,2,2]),Int32Array.from([3,2,1,2,2,1]),Int32Array.from([3,1,2,2,1,2]),Int32Array.from([3,2,2,1,1,2]),Int32Array.from([3,2,2,2,1,1]),Int32Array.from([2,1,2,1,2,3]),Int32Array.from([2,1,2,3,2,1]),Int32Array.from([2,3,2,1,2,1]),Int32Array.from([1,1,1,3,2,3]),Int32Array.from([1,3,1,1,2,3]),Int32Array.from([1,3,1,3,2,1]),Int32Array.from([1,1,2,3,1,3]),Int32Array.from([1,3,2,1,1,3]),Int32Array.from([1,3,2,3,1,1]),Int32Array.from([2,1,1,3,1,3]),Int32Array.from([2,3,1,1,1,3]),Int32Array.from([2,3,1,3,1,1]),Int32Array.from([1,1,2,1,3,3]),Int32Array.from([1,1,2,3,3,1]),Int32Array.from([1,3,2,1,3,1]),Int32Array.from([1,1,3,1,2,3]),Int32Array.from([1,1,3,3,2,1]),Int32Array.from([1,3,3,1,2,1]),Int32Array.from([3,1,3,1,2,1]),Int32Array.from([2,1,1,3,3,1]),Int32Array.from([2,3,1,1,3,1]),Int32Array.from([2,1,3,1,1,3]),Int32Array.from([2,1,3,3,1,1]),Int32Array.from([2,1,3,1,3,1]),Int32Array.from([3,1,1,1,2,3]),Int32Array.from([3,1,1,3,2,1]),Int32Array.from([3,3,1,1,2,1]),Int32Array.from([3,1,2,1,1,3]),Int32Array.from([3,1,2,3,1,1]),Int32Array.from([3,3,2,1,1,1]),Int32Array.from([3,1,4,1,1,1]),Int32Array.from([2,2,1,4,1,1]),Int32Array.from([4,3,1,1,1,1]),Int32Array.from([1,1,1,2,2,4]),Int32Array.from([1,1,1,4,2,2]),Int32Array.from([1,2,1,1,2,4]),Int32Array.from([1,2,1,4,2,1]),Int32Array.from([1,4,1,1,2,2]),Int32Array.from([1,4,1,2,2,1]),Int32Array.from([1,1,2,2,1,4]),Int32Array.from([1,1,2,4,1,2]),Int32Array.from([1,2,2,1,1,4]),Int32Array.from([1,2,2,4,1,1]),Int32Array.from([1,4,2,1,1,2]),Int32Array.from([1,4,2,2,1,1]),Int32Array.from([2,4,1,2,1,1]),Int32Array.from([2,2,1,1,1,4]),Int32Array.from([4,1,3,1,1,1]),Int32Array.from([2,4,1,1,1,2]),Int32Array.from([1,3,4,1,1,1]),Int32Array.from([1,1,1,2,4,2]),Int32Array.from([1,2,1,1,4,2]),Int32Array.from([1,2,1,2,4,1]),Int32Array.from([1,1,4,2,1,2]),Int32Array.from([1,2,4,1,1,2]),Int32Array.from([1,2,4,2,1,1]),Int32Array.from([4,1,1,2,1,2]),Int32Array.from([4,2,1,1,1,2]),Int32Array.from([4,2,1,2,1,1]),Int32Array.from([2,1,2,1,4,1]),Int32Array.from([2,1,4,1,2,1]),Int32Array.from([4,1,2,1,2,1]),Int32Array.from([1,1,1,1,4,3]),Int32Array.from([1,1,1,3,4,1]),Int32Array.from([1,3,1,1,4,1]),Int32Array.from([1,1,4,1,1,3]),Int32Array.from([1,1,4,3,1,1]),Int32Array.from([4,1,1,1,1,3]),Int32Array.from([4,1,1,3,1,1]),Int32Array.from([1,1,3,1,4,1]),Int32Array.from([1,1,4,1,3,1]),Int32Array.from([3,1,1,1,4,1]),Int32Array.from([4,1,1,1,3,1]),Int32Array.from([2,1,1,4,1,2]),Int32Array.from([2,1,1,2,1,4]),Int32Array.from([2,1,1,2,3,2]),Int32Array.from([2,3,3,1,1,1,2])],Ct.MAX_AVG_VARIANCE=.25,Ct.MAX_INDIVIDUAL_VARIANCE=.7,Ct.CODE_SHIFT=98,Ct.CODE_CODE_C=99,Ct.CODE_CODE_B=100,Ct.CODE_CODE_A=101,Ct.CODE_FNC_1=102,Ct.CODE_FNC_2=97,Ct.CODE_FNC_3=96,Ct.CODE_FNC_4_A=101,Ct.CODE_FNC_4_B=100,Ct.CODE_START_A=103,Ct.CODE_START_B=104,Ct.CODE_START_C=105,Ct.CODE_STOP=106;class It extends ut{constructor(t=!1,e=!1){super(),this.usingCheckDigit=t,this.extendedMode=e,this.decodeRowResult="",this.counters=new Int32Array(9)}decodeRow(t,e,r){let n=this.counters;n.fill(0),this.decodeRowResult="";let i,o,s=It.findAsteriskPattern(e,n),a=e.getNextSet(s[1]),A=e.getSize();do{It.recordPattern(e,a,n);let t=It.toNarrowWidePattern(n);if(t<0)throw new M;i=It.patternToChar(t),this.decodeRowResult+=i,o=a;for(let t of n)a+=t;a=e.getNextSet(a)}while("*"!==i);this.decodeRowResult=this.decodeRowResult.substring(0,this.decodeRowResult.length-1);let c,h=0;for(let t of n)h+=t;if(a!==A&&2*(a-o-h)n&&(i=e);n=i,e=0;let o=0,s=0;for(let i=0;in&&(s|=1<0;i++){let r=t[i];if(r>n&&(e--,2*r>=o))return-1}return s}}while(e>3);return-1}static patternToChar(t){for(let e=0;e="A"&&i<="Z"))throw new E;o=String.fromCharCode(i.charCodeAt(0)+32);break;case"$":if(!(i>="A"&&i<="Z"))throw new E;o=String.fromCharCode(i.charCodeAt(0)-64);break;case"%":if(i>="A"&&i<="E")o=String.fromCharCode(i.charCodeAt(0)-38);else if(i>="F"&&i<="J")o=String.fromCharCode(i.charCodeAt(0)-11);else if(i>="K"&&i<="O")o=String.fromCharCode(i.charCodeAt(0)+16);else if(i>="P"&&i<="T")o=String.fromCharCode(i.charCodeAt(0)+43);else if("U"===i)o="\0";else if("V"===i)o="@";else if("W"===i)o="`";else{if("X"!==i&&"Y"!==i&&"Z"!==i)throw new E;o=""}break;case"/":if(i>="A"&&i<="O")o=String.fromCharCode(i.charCodeAt(0)-32);else{if("Z"!==i)throw new E;o=":"}}r+=o,n++}else r+=e}return r}}It.ALPHABET_STRING="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",It.CHARACTER_ENCODINGS=[52,289,97,352,49,304,112,37,292,100,265,73,328,25,280,88,13,268,76,28,259,67,322,19,274,82,7,262,70,22,385,193,448,145,400,208,133,388,196,168,162,138,42],It.ASTERISK_ENCODING=148;class ft extends ut{constructor(){super(...arguments),this.narrowLineWidth=-1}decodeRow(t,e,r){let n=this.decodeStart(e),i=this.decodeEnd(e),o=new D;ft.decodeMiddle(e,n[1],i[0],o);let s=o.toString(),a=null;null!=r&&(a=r.get(w.ALLOWED_LENGTHS)),null==a&&(a=ft.DEFAULT_ALLOWED_LENGTHS);let A=s.length,l=!1,c=0;for(let t of a){if(A===t){l=!0;break}t>c&&(c=t)}if(!l&&A>c&&(l=!0),!l)throw new E;const h=[new nt(n[1],t),new nt(i[0],t)];return new L(s,null,0,h,Q.ITF,(new Date).getTime())}static decodeMiddle(t,e,r,n){let i=new Int32Array(10),o=new Int32Array(5),s=new Int32Array(5);for(i.fill(0),o.fill(0),s.fill(0);e0&&n>=0&&!t.get(n);n--)r--;if(0!==r)throw new M}static skipWhiteSpace(t){const e=t.getSize(),r=t.getNextSet(0);if(r===e)throw new M;return r}decodeEnd(t){t.reverse();try{let e,r=ft.skipWhiteSpace(t);try{e=ft.findGuardPattern(t,r,ft.END_PATTERN_REVERSED[0])}catch(n){n instanceof M&&(e=ft.findGuardPattern(t,r,ft.END_PATTERN_REVERSED[1]))}this.validateQuietZone(t,e[0]);let n=e[0];return e[0]=t.getSize()-e[1],e[1]=t.getSize()-n,e}finally{t.reverse()}}static findGuardPattern(t,e,r){let n=r.length,i=new Int32Array(n),o=t.getSize(),s=!1,a=0,A=e;i.fill(0);for(let l=e;l=0)return r%10;throw new M}}ft.PATTERNS=[Int32Array.from([1,1,2,2,1]),Int32Array.from([2,1,1,1,2]),Int32Array.from([1,2,1,1,2]),Int32Array.from([2,2,1,1,1]),Int32Array.from([1,1,2,1,2]),Int32Array.from([2,1,2,1,1]),Int32Array.from([1,2,2,1,1]),Int32Array.from([1,1,1,2,2]),Int32Array.from([2,1,1,2,1]),Int32Array.from([1,2,1,2,1]),Int32Array.from([1,1,3,3,1]),Int32Array.from([3,1,1,1,3]),Int32Array.from([1,3,1,1,3]),Int32Array.from([3,3,1,1,1]),Int32Array.from([1,1,3,1,3]),Int32Array.from([3,1,3,1,1]),Int32Array.from([1,3,3,1,1]),Int32Array.from([1,1,1,3,3]),Int32Array.from([3,1,1,3,1]),Int32Array.from([1,3,1,3,1])],ft.MAX_AVG_VARIANCE=.38,ft.MAX_INDIVIDUAL_VARIANCE=.5,ft.DEFAULT_ALLOWED_LENGTHS=[6,8,10,12,14],ft.START_PATTERN=Int32Array.from([1,1,1,1]),ft.END_PATTERN_REVERSED=[Int32Array.from([1,1,2]),Int32Array.from([1,1,3])];class wt extends ut{constructor(){super(...arguments),this.decodeRowStringBuffer=""}static findStartGuardPattern(t){let e,r=!1,n=0,i=Int32Array.from([0,0,0]);for(;!r;){i=Int32Array.from([0,0,0]),e=wt.findGuardPattern(t,n,!1,this.START_END_PATTERN,i);let o=e[0];n=e[1];let s=o-(n-o);s>=0&&(r=t.isRange(s,o,!1))}return e}static checkChecksum(t){return wt.checkStandardUPCEANChecksum(t)}static checkStandardUPCEANChecksum(t){let e=t.length;if(0===e)return!1;let r=parseInt(t.charAt(e-1),10);return wt.getStandardUPCEANChecksum(t.substring(0,e-1))===r}static getStandardUPCEANChecksum(t){let e=t.length,r=0;for(let n=e-1;n>=0;n-=2){let e=t.charAt(n).charCodeAt(0)-"0".charCodeAt(0);if(e<0||e>9)throw new E;r+=e}r*=3;for(let n=e-2;n>=0;n-=2){let e=t.charAt(n).charCodeAt(0)-"0".charCodeAt(0);if(e<0||e>9)throw new E;r+=e}return(1e3-r)%10}static decodeEnd(t,e){return wt.findGuardPattern(t,e,!1,wt.START_END_PATTERN,new Int32Array(wt.START_END_PATTERN.length).fill(0))}static findGuardPatternWithoutCounters(t,e,r,n){return this.findGuardPattern(t,e,r,n,new Int32Array(n.length))}static findGuardPattern(t,e,r,n,i){let o=t.getSize(),s=0,a=e=r?t.getNextUnset(e):t.getNextSet(e),A=n.length,l=r;for(let r=e;r=0)return o;throw new M}}wt.MAX_AVG_VARIANCE=.48,wt.MAX_INDIVIDUAL_VARIANCE=.7,wt.START_END_PATTERN=Int32Array.from([1,1,1]),wt.MIDDLE_PATTERN=Int32Array.from([1,1,1,1,1]),wt.END_PATTERN=Int32Array.from([1,1,1,1,1,1]),wt.L_PATTERNS=[Int32Array.from([3,2,1,1]),Int32Array.from([2,2,2,1]),Int32Array.from([2,1,2,2]),Int32Array.from([1,4,1,1]),Int32Array.from([1,1,3,2]),Int32Array.from([1,2,3,1]),Int32Array.from([1,1,1,4]),Int32Array.from([1,3,1,2]),Int32Array.from([1,2,1,3]),Int32Array.from([3,1,1,2])];class Et{constructor(){this.CHECK_DIGIT_ENCODINGS=[24,20,18,17,12,6,3,10,9,5],this.decodeMiddleCounters=Int32Array.from([0,0,0,0]),this.decodeRowStringBuffer=""}decodeRow(t,e,r){let n=this.decodeRowStringBuffer,i=this.decodeMiddle(e,r,n),o=n.toString(),s=Et.parseExtensionString(o),a=[new nt((r[0]+r[1])/2,t),new nt(i,t)],A=new L(o,null,0,a,Q.UPC_EAN_EXTENSION,(new Date).getTime());return null!=s&&A.putAllMetadata(s),A}decodeMiddle(t,e,r){let n=this.decodeMiddleCounters;n[0]=0,n[1]=0,n[2]=0,n[3]=0;let i=t.getSize(),o=e[1],s=0;for(let e=0;e<5&&o=10&&(s|=1<<4-e),4!==e&&(o=t.getNextSet(o),o=t.getNextUnset(o))}if(5!==r.length)throw new M;let a=this.determineCheckDigit(s);if(Et.extensionChecksum(r.toString())!==a)throw new M;return o}static extensionChecksum(t){let e=t.length,r=0;for(let n=e-2;n>=0;n-=2)r+=t.charAt(n).charCodeAt(0)-"0".charCodeAt(0);r*=3;for(let n=e-1;n>=0;n-=2)r+=t.charAt(n).charCodeAt(0)-"0".charCodeAt(0);return r*=3,r%10}determineCheckDigit(t){for(let e=0;e<10;e++)if(t===this.CHECK_DIGIT_ENCODINGS[e])return e;throw new M}static parseExtensionString(t){if(5!==t.length)return null;let e=Et.parseExtension5String(t);return null==e?null:new Map([[H.SUGGESTED_PRICE,e]])}static parseExtension5String(t){let e;switch(t.charAt(0)){case"0":e="£";break;case"5":e="$";break;case"9":switch(t){case"90000":return null;case"99991":return"0.00";case"99990":return"Used"}e="";break;default:e=""}let r=parseInt(t.substring(1)),n=r%100;return e+(r/100).toString()+"."+(n<10?"0"+n:n.toString())}}class mt{constructor(){this.decodeMiddleCounters=Int32Array.from([0,0,0,0]),this.decodeRowStringBuffer=""}decodeRow(t,e,r){let n=this.decodeRowStringBuffer,i=this.decodeMiddle(e,r,n),o=n.toString(),s=mt.parseExtensionString(o),a=[new nt((r[0]+r[1])/2,t),new nt(i,t)],A=new L(o,null,0,a,Q.UPC_EAN_EXTENSION,(new Date).getTime());return null!=s&&A.putAllMetadata(s),A}decodeMiddle(t,e,r){let n=this.decodeMiddleCounters;n[0]=0,n[1]=0,n[2]=0,n[3]=0;let i=t.getSize(),o=e[1],s=0;for(let e=0;e<2&&o=10&&(s|=1<<1-e),1!==e&&(o=t.getNextSet(o),o=t.getNextUnset(o))}if(2!==r.length)throw new M;if(parseInt(r.toString())%4!==s)throw new M;return o}static parseExtensionString(t){return 2!==t.length?null:new Map([[H.ISSUE_NUMBER,parseInt(t)]])}}class pt{static decodeRow(t,e,r){let n=wt.findGuardPattern(e,r,!1,this.EXTENSION_START_PATTERN,new Int32Array(this.EXTENSION_START_PATTERN.length).fill(0));try{return(new Et).decodeRow(t,e,n)}catch(r){return(new mt).decodeRow(t,e,n)}}}pt.EXTENSION_START_PATTERN=Int32Array.from([1,1,2]);class St extends wt{constructor(){super(),this.decodeRowStringBuffer="",St.L_AND_G_PATTERNS=St.L_PATTERNS.map((t=>Int32Array.from(t)));for(let t=10;t<20;t++){let e=St.L_PATTERNS[t-10],r=new Int32Array(e.length);for(let t=0;t=e.getSize()||!e.isRange(c,h,!1))throw new M;let g=a.toString();if(g.length<8)throw new E;if(!St.checkChecksum(g))throw new l;let d=(n[1]+n[0])/2,u=(A[1]+A[0])/2,C=this.getBarcodeFormat(),I=[new nt(d,t),new nt(u,t)],f=new L(g,null,0,I,C,(new Date).getTime()),m=0;try{let r=pt.decodeRow(t,e,A[1]);f.putMetadata(H.UPC_EAN_EXTENSION,r.getText()),f.putAllMetadata(r.getResultMetadata()),f.addResultPoints(r.getResultPoints()),m=r.getText().length}catch(t){}let p=null==r?null:r.get(w.ALLOWED_EAN_EXTENSIONS);if(null!=p){let t=!1;for(let e in p)if(m.toString()===e){t=!0;break}if(!t)throw new M}return C===Q.EAN_13||Q.UPC_A,f}static checkChecksum(t){return St.checkStandardUPCEANChecksum(t)}static checkStandardUPCEANChecksum(t){let e=t.length;if(0===e)return!1;let r=parseInt(t.charAt(e-1),10);return St.getStandardUPCEANChecksum(t.substring(0,e-1))===r}static getStandardUPCEANChecksum(t){let e=t.length,r=0;for(let n=e-1;n>=0;n-=2){let e=t.charAt(n).charCodeAt(0)-"0".charCodeAt(0);if(e<0||e>9)throw new E;r+=e}r*=3;for(let n=e-2;n>=0;n-=2){let e=t.charAt(n).charCodeAt(0)-"0".charCodeAt(0);if(e<0||e>9)throw new E;r+=e}return(1e3-r)%10}static decodeEnd(t,e){return St.findGuardPattern(t,e,!1,St.START_END_PATTERN,new Int32Array(St.START_END_PATTERN.length).fill(0))}}class Rt extends St{constructor(){super(),this.decodeMiddleCounters=Int32Array.from([0,0,0,0])}decodeMiddle(t,e,r){let n=this.decodeMiddleCounters;n[0]=0,n[1]=0,n[2]=0,n[3]=0;let i=t.getSize(),o=e[1],s=0;for(let e=0;e<6&&o=10&&(s|=1<<5-e)}r=Rt.determineFirstDigit(r,s),o=St.findGuardPattern(t,o,!0,St.MIDDLE_PATTERN,new Int32Array(St.MIDDLE_PATTERN.length).fill(0))[1];for(let e=0;e<6&&ot));n[0]=0,n[1]=0,n[2]=0,n[3]=0;const i=t.getSize();let o=e[1],s=0;for(let e=0;e<6&&o=10&&(s|=1<<5-e)}return Mt.determineNumSysAndCheckDigit(new D(r),s),o}decodeEnd(t,e){return Mt.findGuardPatternWithoutCounters(t,e,!0,Mt.MIDDLE_END_PATTERN)}checkChecksum(t){return St.checkChecksum(Mt.convertUPCEtoUPCA(t))}static determineNumSysAndCheckDigit(t,e){for(let r=0;r<=1;r++)for(let n=0;n<10;n++)if(e===this.NUMSYS_AND_CHECK_DIGIT_PATTERNS[r][n])return t.insert(0,"0"+r),void t.append("0"+n);throw M.getNotFoundInstance()}getBarcodeFormat(){return Q.UPC_E}static convertUPCEtoUPCA(t){const e=t.slice(1,7).split("").map((t=>t.charCodeAt(0))),r=new D;r.append(t.charAt(0));let n=e[5];switch(n){case 0:case 1:case 2:r.appendChars(e,0,2),r.append(n),r.append("0000"),r.appendChars(e,2,3);break;case 3:r.appendChars(e,0,3),r.append("00000"),r.appendChars(e,3,2);break;case 4:r.appendChars(e,0,4),r.append("00000"),r.append(e[4]);break;default:r.appendChars(e,0,5),r.append("0000"),r.append(n)}return t.length>=8&&r.append(t.charAt(7)),r.toString()}}Mt.MIDDLE_END_PATTERN=Int32Array.from([1,1,1,1,1,1]),Mt.NUMSYS_AND_CHECK_DIGIT_PATTERNS=[Int32Array.from([56,52,50,49,44,38,35,42,41,37]),Int32Array.from([7,11,13,14,19,25,28,21,22,1])];class Tt extends ut{constructor(t){super();let e=null==t?null:t.get(w.POSSIBLE_FORMATS),r=[];null!=e&&(e.indexOf(Q.EAN_13)>-1?r.push(new Rt):e.indexOf(Q.UPC_A)>-1&&r.push(new Bt),e.indexOf(Q.EAN_8)>-1&&r.push(new Dt),e.indexOf(Q.UPC_E)>-1&&r.push(new Mt)),0===r.length&&(r.push(new Rt),r.push(new Dt),r.push(new Mt)),this.readers=r}decodeRow(t,e,r){for(let n of this.readers)try{const i=n.decodeRow(t,e,r),o=i.getBarcodeFormat()===Q.EAN_13&&"0"===i.getText().charAt(0),s=null==r?null:r.get(w.POSSIBLE_FORMATS),a=null==s||s.includes(Q.UPC_A);if(o&&a){const t=i.getRawBytes(),e=new L(i.getText().substring(1),t,t.length,i.getResultPoints(),Q.UPC_A);return e.putAllMetadata(i.getResultMetadata()),e}return i}catch(t){}throw new M}reset(){for(let t of this.readers)t.reset()}}class Nt extends ut{constructor(){super(),this.decodeFinderCounters=new Int32Array(4),this.dataCharacterCounters=new Int32Array(8),this.oddRoundingErrors=new Array(4),this.evenRoundingErrors=new Array(4),this.oddCounts=new Array(this.dataCharacterCounters.length/2),this.evenCounts=new Array(this.dataCharacterCounters.length/2)}getDecodeFinderCounters(){return this.decodeFinderCounters}getDataCharacterCounters(){return this.dataCharacterCounters}getOddRoundingErrors(){return this.oddRoundingErrors}getEvenRoundingErrors(){return this.evenRoundingErrors}getOddCounts(){return this.oddCounts}getEvenCounts(){return this.evenCounts}parseFinderValue(t,e){for(let r=0;rn&&(n=e[i],r=i);t[r]++}static decrement(t,e){let r=0,n=e[0];for(let i=1;i=Nt.MIN_FINDER_PATTERN_RATIO&&r<=Nt.MAX_FINDER_PATTERN_RATIO){let e=Number.MAX_SAFE_INTEGER,r=Number.MIN_SAFE_INTEGER;for(let n of t)n>r&&(r=n),n=s-a-1&&(t-=Ot.combins(n-A-(s-a),s-a-2)),s-a-1>1){let r=0;for(let t=n-A-(s-a-2);t>e;t--)r+=Ot.combins(n-A-t-1,s-a-3);t-=r*(s-1-a)}else n-A>e&&t--;i+=t}n-=A}return i}static combins(t,e){let r,n;t-e>e?(n=e,r=t-e):(n=t-e,r=e);let i=1,o=1;for(let e=t;e>r;e--)i*=e,o<=n&&(i/=o,o++);for(;o<=n;)i/=o,o++;return i}}class bt{constructor(t,e){e?this.decodedInformation=null:(this.finished=t,this.decodedInformation=e)}getDecodedInformation(){return this.decodedInformation}isFinished(){return this.finished}}class Ft{constructor(t){this.newPosition=t}getNewPosition(){return this.newPosition}}class Pt extends Ft{constructor(t,e){super(t),this.value=e}getValue(){return this.value}isFNC1(){return this.value===Pt.FNC1}}Pt.FNC1="$";class kt extends Ft{constructor(t,e,r){super(t),r?(this.remaining=!0,this.remainingValue=this.remainingValue):(this.remaining=!1,this.remainingValue=0),this.newString=e}getNewString(){return this.newString}isRemaining(){return this.remaining}getRemainingValue(){return this.remainingValue}}class Lt extends Ft{constructor(t,e,r){if(super(t),e<0||e>10||r<0||r>10)throw new E;this.firstDigit=e,this.secondDigit=r}getFirstDigit(){return this.firstDigit}getSecondDigit(){return this.secondDigit}getValue(){return 10*this.firstDigit+this.secondDigit}isFirstDigitFNC1(){return this.firstDigit===Lt.FNC1}isSecondDigitFNC1(){return this.secondDigit===Lt.FNC1}isAnyFNC1(){return this.firstDigit===Lt.FNC1||this.secondDigit===Lt.FNC1}}Lt.FNC1=10;class Gt{constructor(){}static parseFieldsInGeneralPurpose(t){if(!t)return null;if(t.length<2)throw new M;let e=t.substring(0,2);for(let r of Gt.TWO_DIGIT_DATA_LENGTH)if(r[0]===e)return r[1]===Gt.VARIABLE_LENGTH?Gt.processVariableAI(2,r[2],t):Gt.processFixedAI(2,r[1],t);if(t.length<3)throw new M;let r=t.substring(0,3);for(let e of Gt.THREE_DIGIT_DATA_LENGTH)if(e[0]===r)return e[1]===Gt.VARIABLE_LENGTH?Gt.processVariableAI(3,e[2],t):Gt.processFixedAI(3,e[1],t);for(let e of Gt.THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH)if(e[0]===r)return e[1]===Gt.VARIABLE_LENGTH?Gt.processVariableAI(4,e[2],t):Gt.processFixedAI(4,e[1],t);if(t.length<4)throw new M;let n=t.substring(0,4);for(let e of Gt.FOUR_DIGIT_DATA_LENGTH)if(e[0]===n)return e[1]===Gt.VARIABLE_LENGTH?Gt.processVariableAI(4,e[2],t):Gt.processFixedAI(4,e[1],t);throw new M}static processFixedAI(t,e,r){if(r.lengththis.information.getSize())return t+4<=this.information.getSize();for(let e=t;ethis.information.getSize()){let e=this.extractNumericValueFromBitArray(t,4);return new Lt(this.information.getSize(),0===e?Lt.FNC1:e-1,Lt.FNC1)}let e=this.extractNumericValueFromBitArray(t,7);return new Lt(t+7,(e-8)/11,(e-8)%11)}extractNumericValueFromBitArray(t,e){return Qt.extractNumericValueFromBitArray(this.information,t,e)}static extractNumericValueFromBitArray(t,e,r){let n=0;for(let i=0;ithis.information.getSize())return!1;let e=this.extractNumericValueFromBitArray(t,5);if(e>=5&&e<16)return!0;if(t+7>this.information.getSize())return!1;let r=this.extractNumericValueFromBitArray(t,7);if(r>=64&&r<116)return!0;if(t+8>this.information.getSize())return!1;let n=this.extractNumericValueFromBitArray(t,8);return n>=232&&n<253}decodeIsoIec646(t){let e=this.extractNumericValueFromBitArray(t,5);if(15===e)return new Pt(t+5,Pt.FNC1);if(e>=5&&e<15)return new Pt(t+5,"0"+(e-5));let r,n=this.extractNumericValueFromBitArray(t,7);if(n>=64&&n<90)return new Pt(t+7,""+(n+1));if(n>=90&&n<116)return new Pt(t+7,""+(n+7));switch(this.extractNumericValueFromBitArray(t,8)){case 232:r="!";break;case 233:r='"';break;case 234:r="%";break;case 235:r="&";break;case 236:r="'";break;case 237:r="(";break;case 238:r=")";break;case 239:r="*";break;case 240:r="+";break;case 241:r=",";break;case 242:r="-";break;case 243:r=".";break;case 244:r="/";break;case 245:r=":";break;case 246:r=";";break;case 247:r="<";break;case 248:r="=";break;case 249:r=">";break;case 250:r="?";break;case 251:r="_";break;case 252:r=" ";break;default:throw new E}return new Pt(t+8,r)}isStillAlpha(t){if(t+5>this.information.getSize())return!1;let e=this.extractNumericValueFromBitArray(t,5);if(e>=5&&e<16)return!0;if(t+6>this.information.getSize())return!1;let r=this.extractNumericValueFromBitArray(t,6);return r>=16&&r<63}decodeAlphanumeric(t){let e=this.extractNumericValueFromBitArray(t,5);if(15===e)return new Pt(t+5,Pt.FNC1);if(e>=5&&e<15)return new Pt(t+5,"0"+(e-5));let r,n=this.extractNumericValueFromBitArray(t,6);if(n>=32&&n<58)return new Pt(t+6,""+(n+33));switch(n){case 58:r="*";break;case 59:r=",";break;case 60:r="-";break;case 61:r=".";break;case 62:r="/";break;default:throw new q("Decoding invalid alphanumeric value: "+n)}return new Pt(t+6,r)}isAlphaTo646ToAlphaLatch(t){if(t+1>this.information.getSize())return!1;for(let e=0;e<5&&e+tthis.information.getSize())return!1;for(let e=t;ethis.information.getSize())return!1;for(let e=0;e<4&&e+t{e.forEach((e=>{t.getLeftChar().getValue()===e.getLeftChar().getValue()&&t.getRightChar().getValue()===e.getRightChar().getValue()&&t.getFinderPatter().getValue()===e.getFinderPatter().getValue()&&(r=!0)}))})),r}}class qt extends Nt{constructor(t){super(...arguments),this.pairs=new Array(qt.MAX_PAIRS),this.rows=new Array,this.startEnd=[2],this.verbose=!0===t}decodeRow(t,e,r){this.pairs.length=0,this.startFromEven=!1;try{return qt.constructResult(this.decodeRow2pairs(t,e))}catch(t){this.verbose&&console.log(t)}return this.pairs.length=0,this.startFromEven=!0,qt.constructResult(this.decodeRow2pairs(t,e))}reset(){this.pairs.length=0,this.rows.length=0}decodeRow2pairs(t,e){let r,n=!1;for(;!n;)try{this.pairs.push(this.retrieveNextPair(e,this.pairs,t))}catch(t){if(t instanceof M){if(!this.pairs.length)throw new M;n=!0}}if(this.checkChecksum())return this.pairs;if(r=!!this.rows.length,this.storeRow(t,!1),r){let t=this.checkRowsBoolean(!1);if(null!=t)return t;if(t=this.checkRowsBoolean(!0),null!=t)return t}throw new M}checkRowsBoolean(t){if(this.rows.length>25)return this.rows.length=0,null;this.pairs.length=0,t&&(this.rows=this.rows.reverse());let e=null;try{e=this.checkRows(new Array,0)}catch(t){this.verbose&&console.log(t)}return t&&(this.rows=this.rows.reverse()),e}checkRows(t,e){for(let r=e;re.length)continue;let r=!0;for(let n=0;nt){i=e.isEquivalent(this.pairs);break}n=e.isEquivalent(this.pairs),r++}i||n||qt.isPartialRow(this.pairs,this.rows)||(this.rows.push(r,new Kt(this.pairs,t,e)),this.removePartialRows(this.pairs,this.rows))}removePartialRows(t,e){for(let r of e)if(r.getPairs().length!==t.length)for(let e of r.getPairs())for(let r of t)if(Jt.equals(e,r))break}static isPartialRow(t,e){for(let r of e){let e=!0;for(let n of t){let t=!1;for(let e of r.getPairs())if(n.equals(e)){t=!0;break}if(!t){e=!1;break}}if(e)return!0}return!1}getRows(){return this.rows}static constructResult(t){let e=function(t){try{if(t.get(1))return new Yt(t);if(!t.get(2))return new vt(t);switch(Qt.extractNumericValueFromBitArray(t,1,4)){case 4:return new Ht(t);case 5:return new Vt(t)}switch(Qt.extractNumericValueFromBitArray(t,1,5)){case 12:return new jt(t);case 13:return new Xt(t)}switch(Qt.extractNumericValueFromBitArray(t,1,7)){case 56:return new zt(t,"310","11");case 57:return new zt(t,"320","11");case 58:return new zt(t,"310","13");case 59:return new zt(t,"320","13");case 60:return new zt(t,"310","15");case 61:return new zt(t,"320","15");case 62:return new zt(t,"310","17");case 63:return new zt(t,"320","17")}}catch(e){throw console.log(e),new q("unknown decoder: "+t)}}(class{static buildBitArray(t){let e=2*t.length-1;null==t[t.length-1].getRightChar()&&(e-=1);let r=new I(12*e),n=0,i=t[0].getRightChar().getValue();for(let t=11;t>=0;--t)0!=(i&1<=0;--t)0!=(o&1<=0;--e)0!=(t&1<=0?r:this.isEmptyPair(e)?0:e[e.length-1].getFinderPattern().getStartEnd()[1];let s=e.length%2!=0;this.startFromEven&&(s=!s);let a=!1;for(;i=0&&!t.get(e);)e--;e++,n=this.startEnd[0]-e,i=e,o=this.startEnd[1]}else i=this.startEnd[0],o=t.getNextUnset(this.startEnd[1]+1),n=o-this.startEnd[1];let s,a=this.getDecodeFinderCounters();h.arraycopy(a,0,a,1,a.length-1),a[0]=n;try{s=this.parseFinderValue(a,qt.FINDER_PATTERNS)}catch(t){return null}return new _t(s,[i,o],i,o,e)}decodeDataCharacter(t,e,r,n){let i=this.getDataCharacterCounters();for(let t=0;t.3)throw new M;let a=this.getOddCounts(),A=this.getEvenCounts(),l=this.getOddRoundingErrors(),c=this.getEvenRoundingErrors();for(let t=0;t8){if(e>8.7)throw new M;r=8}let n=t/2;0==(1&t)?(a[n]=r,l[n]=e-r):(A[n]=r,c[n]=e-r)}this.adjustOddEvenCounts(17);let h=4*e.getValue()+(r?0:2)+(n?0:1)-1,g=0,d=0;for(let t=a.length-1;t>=0;t--){if(qt.isNotA1left(e,r,n)){let e=qt.WEIGHTS[h][2*t];d+=a[t]*e}g+=a[t]}let u=0;for(let t=A.length-1;t>=0;t--)if(qt.isNotA1left(e,r,n)){let e=qt.WEIGHTS[h][2*t+1];u+=A[t]*e}let C=d+u;if(0!=(1&g)||g>13||g<4)throw new M;let I=(13-g)/2,f=qt.SYMBOL_WIDEST[I],w=9-f,E=Ot.getRSSvalue(a,f,!0),m=Ot.getRSSvalue(A,w,!1),p=qt.EVEN_TOTAL_SUBSET[I],S=qt.GSUM[I];return new yt(E*p+m+S,C)}static isNotA1left(t,e,r){return!(0==t.getValue()&&e&&r)}adjustOddEvenCounts(t){let e=et.sum(new Int32Array(this.getOddCounts())),r=et.sum(new Int32Array(this.getEvenCounts())),n=!1,i=!1;e>13?i=!0:e<4&&(n=!0);let o=!1,s=!1;r>13?s=!0:r<4&&(o=!0);let a=e+r-t,A=1==(1&e),l=0==(1&r);if(1==a)if(A){if(l)throw new M;i=!0}else{if(!l)throw new M;s=!0}else if(-1==a)if(A){if(l)throw new M;n=!0}else{if(!l)throw new M;o=!0}else{if(0!=a)throw new M;if(A){if(!l)throw new M;e1)for(let e of this.possibleRightPairs)if(e.getCount()>1&&te.checkChecksum(t,e))return te.constructResult(t,e);throw new M}static addOrTally(t,e){if(null==e)return;let r=!1;for(let n of t)if(n.getValue()===e.getValue()){n.incrementCount(),r=!0;break}r||t.push(e)}reset(){this.possibleLeftPairs.length=0,this.possibleRightPairs.length=0}static constructResult(t,e){let r=4537077*t.getValue()+e.getValue(),n=new String(r).toString(),i=new D;for(let t=13-n.length;t>0;t--)i.append("0");i.append(n);let o=0;for(let t=0;t<13;t++){let e=i.charAt(t).charCodeAt(0)-"0".charCodeAt(0);o+=0==(1&t)?3*e:e}o=10-o%10,10===o&&(o=0),i.append(o.toString());let s=t.getFinderPattern().getResultPoints(),a=e.getFinderPattern().getResultPoints();return new L(i.toString(),null,0,[s[0],s[1],a[0],a[1]],Q.RSS_14,(new Date).getTime())}static checkChecksum(t,e){let r=(t.getChecksumPortion()+16*e.getChecksumPortion())%79,n=9*t.getFinderPattern().getValue()+e.getFinderPattern().getValue();return n>72&&n--,n>8&&n--,r===n}decodePair(t,e,r,n){try{let i=this.findFinderPattern(t,e),o=this.parseFoundFinderPattern(t,r,e,i),s=null==n?null:n.get(w.NEED_RESULT_POINT_CALLBACK);if(null!=s){let n=(i[0]+i[1])/2;e&&(n=t.getSize()-1-n),s.foundPossibleResultPoint(new nt(n,r))}let a=this.decodeDataCharacter(t,o,!0),A=this.decodeDataCharacter(t,o,!1);return new $t(1597*a.getValue()+A.getValue(),a.getChecksumPortion()+4*A.getChecksumPortion(),o)}catch(t){return null}}decodeDataCharacter(t,e,r){let n=this.getDataCharacterCounters();for(let t=0;t8&&(r=8);let i=Math.floor(t/2);0==(1&t)?(s[i]=r,A[i]=e-r):(a[i]=r,l[i]=e-r)}this.adjustOddEvenCounts(r,i);let c=0,h=0;for(let t=s.length-1;t>=0;t--)h*=9,h+=s[t],c+=s[t];let g=0,d=0;for(let t=a.length-1;t>=0;t--)g*=9,g+=a[t],d+=a[t];let u=h+3*g;if(r){if(0!=(1&c)||c>12||c<4)throw new M;let t=(12-c)/2,e=te.OUTSIDE_ODD_WIDEST[t],r=9-e,n=Ot.getRSSvalue(s,e,!1),i=Ot.getRSSvalue(a,r,!0),o=te.OUTSIDE_EVEN_TOTAL_SUBSET[t],A=te.OUTSIDE_GSUM[t];return new yt(n*o+i+A,u)}{if(0!=(1&d)||d>10||d<4)throw new M;let t=(10-d)/2,e=te.INSIDE_ODD_WIDEST[t],r=9-e,n=Ot.getRSSvalue(s,e,!0),i=Ot.getRSSvalue(a,r,!1),o=te.INSIDE_ODD_TOTAL_SUBSET[t],A=te.INSIDE_GSUM[t];return new yt(i*o+n+A,u)}}findFinderPattern(t,e){let r=this.getDecodeFinderCounters();r[0]=0,r[1]=0,r[2]=0,r[3]=0;let n=t.getSize(),i=!1,o=0;for(;o=0&&i!==t.get(o);)o--;o++;const s=n[0]-o,a=this.getDecodeFinderCounters(),A=new Int32Array(a.length);h.arraycopy(a,0,A,1,a.length-1),A[0]=s;const l=this.parseFinderValue(A,te.FINDER_PATTERNS);let c=o,g=n[1];return r&&(c=t.getSize()-1-c,g=t.getSize()-1-g),new _t(l,[o,n[1]],c,g,e)}adjustOddEvenCounts(t,e){let r=et.sum(new Int32Array(this.getOddCounts())),n=et.sum(new Int32Array(this.getEvenCounts())),i=!1,o=!1,s=!1,a=!1;t?(r>12?o=!0:r<4&&(i=!0),n>12?a=!0:n<4&&(s=!0)):(r>11?o=!0:r<5&&(i=!0),n>10?a=!0:n<4&&(s=!0));let A=r+n-e,l=(1&r)==(t?1:0),c=1==(1&n);if(1===A)if(l){if(c)throw new M;o=!0}else{if(!c)throw new M;a=!0}else if(-1===A)if(l){if(c)throw new M;i=!0}else{if(!c)throw new M;s=!0}else{if(0!==A)throw new M;if(l){if(!c)throw new M;rt.reset()))}}class re{constructor(t,e,r){this.ecCodewords=t,this.ecBlocks=[e],r&&this.ecBlocks.push(r)}getECCodewords(){return this.ecCodewords}getECBlocks(){return this.ecBlocks}}class ne{constructor(t,e){this.count=t,this.dataCodewords=e}getCount(){return this.count}getDataCodewords(){return this.dataCodewords}}class ie{constructor(t,e,r,n,i,o){this.versionNumber=t,this.symbolSizeRows=e,this.symbolSizeColumns=r,this.dataRegionSizeRows=n,this.dataRegionSizeColumns=i,this.ecBlocks=o;let s=0;const a=o.getECCodewords(),A=o.getECBlocks();for(let t of A)s+=t.getCount()*(t.getDataCodewords()+a);this.totalCodewords=s}getVersionNumber(){return this.versionNumber}getSymbolSizeRows(){return this.symbolSizeRows}getSymbolSizeColumns(){return this.symbolSizeColumns}getDataRegionSizeRows(){return this.dataRegionSizeRows}getDataRegionSizeColumns(){return this.dataRegionSizeColumns}getTotalCodewords(){return this.totalCodewords}getECBlocks(){return this.ecBlocks}static getVersionForDimensions(t,e){if(0!=(1&t)||0!=(1&e))throw new E;for(let r of ie.VERSIONS)if(r.symbolSizeRows===t&&r.symbolSizeColumns===e)return r;throw new E}toString(){return""+this.versionNumber}static buildVersions(){return[new ie(1,10,10,8,8,new re(5,new ne(1,3))),new ie(2,12,12,10,10,new re(7,new ne(1,5))),new ie(3,14,14,12,12,new re(10,new ne(1,8))),new ie(4,16,16,14,14,new re(12,new ne(1,12))),new ie(5,18,18,16,16,new re(14,new ne(1,18))),new ie(6,20,20,18,18,new re(18,new ne(1,22))),new ie(7,22,22,20,20,new re(20,new ne(1,30))),new ie(8,24,24,22,22,new re(24,new ne(1,36))),new ie(9,26,26,24,24,new re(28,new ne(1,44))),new ie(10,32,32,14,14,new re(36,new ne(1,62))),new ie(11,36,36,16,16,new re(42,new ne(1,86))),new ie(12,40,40,18,18,new re(48,new ne(1,114))),new ie(13,44,44,20,20,new re(56,new ne(1,144))),new ie(14,48,48,22,22,new re(68,new ne(1,174))),new ie(15,52,52,24,24,new re(42,new ne(2,102))),new ie(16,64,64,14,14,new re(56,new ne(2,140))),new ie(17,72,72,16,16,new re(36,new ne(4,92))),new ie(18,80,80,18,18,new re(48,new ne(4,114))),new ie(19,88,88,20,20,new re(56,new ne(4,144))),new ie(20,96,96,22,22,new re(68,new ne(4,174))),new ie(21,104,104,24,24,new re(56,new ne(6,136))),new ie(22,120,120,18,18,new re(68,new ne(6,175))),new ie(23,132,132,20,20,new re(62,new ne(8,163))),new ie(24,144,144,22,22,new re(62,new ne(8,156),new ne(2,155))),new ie(25,8,18,6,16,new re(7,new ne(1,5))),new ie(26,8,32,6,14,new re(11,new ne(1,10))),new ie(27,12,26,10,24,new re(14,new ne(1,16))),new ie(28,12,36,10,16,new re(18,new ne(1,22))),new ie(29,16,36,14,16,new re(24,new ne(1,32))),new ie(30,16,48,14,22,new re(28,new ne(1,49)))]}}ie.VERSIONS=ie.buildVersions();class oe{constructor(t){const e=t.getHeight();if(e<8||e>144||0!=(1&e))throw new E;this.version=oe.readVersion(t),this.mappingBitMatrix=this.extractDataRegion(t),this.readMappingMatrix=new B(this.mappingBitMatrix.getWidth(),this.mappingBitMatrix.getHeight())}getVersion(){return this.version}static readVersion(t){const e=t.getHeight(),r=t.getWidth();return ie.getVersionForDimensions(e,r)}readCodewords(){const t=new Int8Array(this.version.getTotalCodewords());let e=0,r=4,n=0;const i=this.mappingBitMatrix.getHeight(),o=this.mappingBitMatrix.getWidth();let s=!1,a=!1,A=!1,l=!1;do{if(r!==i||0!==n||s)if(r!==i-2||0!==n||0==(3&o)||a)if(r!==i+4||2!==n||0!=(7&o)||A)if(r!==i-2||0!==n||4!=(7&o)||l){do{r=0&&!this.readMappingMatrix.get(n,r)&&(t[e++]=255&this.readUtah(r,n,i,o)),r-=2,n+=2}while(r>=0&&n=0&&n=0);r+=3,n+=1}else t[e++]=255&this.readCorner4(i,o),r-=2,n+=2,l=!0;else t[e++]=255&this.readCorner3(i,o),r-=2,n+=2,A=!0;else t[e++]=255&this.readCorner2(i,o),r-=2,n+=2,a=!0;else t[e++]=255&this.readCorner1(i,o),r-=2,n+=2,s=!0}while(r7?e-1:e;o[n].codewords[i]=t[c++]}if(c!==t.length)throw new a;return o}getNumDataCodewords(){return this.numDataCodewords}getCodewords(){return this.codewords}}class ae{constructor(t){this.bytes=t,this.byteOffset=0,this.bitOffset=0}getBitOffset(){return this.bitOffset}getByteOffset(){return this.byteOffset}readBits(t){if(t<1||t>32||t>this.available())throw new a(""+t);let e=0,r=this.bitOffset,n=this.byteOffset;const i=this.bytes;if(r>0){const o=8-r,s=t>8-s<>a,t-=s,r+=s,8===r&&(r=0,n++)}if(t>0){for(;t>=8;)e=e<<8|255&i[n],n++,t-=8;if(t>0){const o=8-t,s=255>>o<>o,r+=t}}return this.bitOffset=r,this.byteOffset=n,e}available(){return 8*(this.bytes.length-this.byteOffset)-this.bitOffset}}!function(t){t[t.PAD_ENCODE=0]="PAD_ENCODE",t[t.ASCII_ENCODE=1]="ASCII_ENCODE",t[t.C40_ENCODE=2]="C40_ENCODE",t[t.TEXT_ENCODE=3]="TEXT_ENCODE",t[t.ANSIX12_ENCODE=4]="ANSIX12_ENCODE",t[t.EDIFACT_ENCODE=5]="EDIFACT_ENCODE",t[t.BASE256_ENCODE=6]="BASE256_ENCODE"}(U||(U={}));class Ae{static decode(t){const e=new ae(t),r=new D,n=new D,i=new Array;let o=U.ASCII_ENCODE;do{if(o===U.ASCII_ENCODE)o=this.decodeAsciiSegment(e,r,n);else{switch(o){case U.C40_ENCODE:this.decodeC40Segment(e,r);break;case U.TEXT_ENCODE:this.decodeTextSegment(e,r);break;case U.ANSIX12_ENCODE:this.decodeAnsiX12Segment(e,r);break;case U.EDIFACT_ENCODE:this.decodeEdifactSegment(e,r);break;case U.BASE256_ENCODE:this.decodeBase256Segment(e,r,i);break;default:throw new E}o=U.ASCII_ENCODE}}while(o!==U.PAD_ENCODE&&e.available()>0);return n.length()>0&&r.append(n.toString()),new V(t,r.toString(),0===i.length?null:i,null)}static decodeAsciiSegment(t,e,r){let n=!1;do{let i=t.readBits(8);if(0===i)throw new E;if(i<=128)return n&&(i+=128),e.append(String.fromCharCode(i-1)),U.ASCII_ENCODE;if(129===i)return U.PAD_ENCODE;if(i<=229){const t=i-130;t<10&&e.append("0"),e.append(""+t)}else switch(i){case 230:return U.C40_ENCODE;case 231:return U.BASE256_ENCODE;case 232:e.append(String.fromCharCode(29));break;case 233:case 234:break;case 235:n=!0;break;case 236:e.append("[)>05"),r.insert(0,"");break;case 237:e.append("[)>06"),r.insert(0,"");break;case 238:return U.ANSIX12_ENCODE;case 239:return U.TEXT_ENCODE;case 240:return U.EDIFACT_ENCODE;case 241:break;default:if(254!==i||0!==t.available())throw new E}}while(t.available()>0);return U.ASCII_ENCODE}static decodeC40Segment(t,e){let r=!1;const n=[];let i=0;do{if(8===t.available())return;const o=t.readBits(8);if(254===o)return;this.parseTwoBytes(o,t.readBits(8),n);for(let t=0;t<3;t++){const o=n[t];switch(i){case 0:if(o<3)i=o+1;else{if(!(o0)}static decodeTextSegment(t,e){let r=!1,n=[],i=0;do{if(8===t.available())return;const o=t.readBits(8);if(254===o)return;this.parseTwoBytes(o,t.readBits(8),n);for(let t=0;t<3;t++){const o=n[t];switch(i){case 0:if(o<3)i=o+1;else{if(!(o0)}static decodeAnsiX12Segment(t,e){const r=[];do{if(8===t.available())return;const n=t.readBits(8);if(254===n)return;this.parseTwoBytes(n,t.readBits(8),r);for(let t=0;t<3;t++){const n=r[t];switch(n){case 0:e.append("\r");break;case 1:e.append("*");break;case 2:e.append(">");break;case 3:e.append(" ");break;default:if(n<14)e.append(String.fromCharCode(n+44));else{if(!(n<40))throw new E;e.append(String.fromCharCode(n+51))}}}}while(t.available()>0)}static parseTwoBytes(t,e,r){let n=(t<<8)+e-1,i=Math.floor(n/1600);r[0]=i,n-=1600*i,i=Math.floor(n/40),r[1]=i,r[2]=n-40*i}static decodeEdifactSegment(t,e){do{if(t.available()<=16)return;for(let r=0;r<4;r++){let r=t.readBits(6);if(31===r){const e=8-t.getBitOffset();return void(8!==e&&t.readBits(e))}0==(32&r)&&(r|=64),e.append(String.fromCharCode(r))}}while(t.available()>0)}static decodeBase256Segment(t,e,r){let n=1+t.getByteOffset();const i=this.unrandomize255State(t.readBits(8),n++);let o;if(o=0===i?t.available()/8|0:i<250?i:250*(i-249)+this.unrandomize255State(t.readBits(8),n++),o<0)throw new E;const s=new Uint8Array(o);for(let e=0;e=0?r:r+256}}Ae.C40_BASIC_SET_CHARS=["*","*","*"," ","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],Ae.C40_SHIFT2_SET_CHARS=["!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","?","@","[","\\","]","^","_"],Ae.TEXT_BASIC_SET_CHARS=["*","*","*"," ","0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],Ae.TEXT_SHIFT2_SET_CHARS=Ae.C40_SHIFT2_SET_CHARS,Ae.TEXT_SHIFT3_SET_CHARS=["`","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","{","|","}","~",String.fromCharCode(127)];class le{constructor(){this.rsDecoder=new $(J.DATA_MATRIX_FIELD_256)}decode(t){const e=new oe(t),r=e.getVersion(),n=e.readCodewords(),i=se.getDataBlocks(n,r);let o=0;for(let t of i)o+=t.getNumDataCodewords();const s=new Uint8Array(o),a=i.length;for(let t=0;ts&&(l=s,c[0]=e,c[1]=r,c[2]=n,c[3]=i),l>a&&(l=a,c[0]=r,c[1]=n,c[2]=i,c[3]=e),l>A&&(c[0]=n,c[1]=i,c[2]=e,c[3]=r),c}detectSolid2(t){let e=t[0],r=t[1],n=t[2],i=t[3],o=this.transitionsBetween(e,i),s=ce.shiftPoint(r,n,4*(o+1)),a=ce.shiftPoint(n,r,4*(o+1));return this.transitionsBetween(s,e)this.transitionsBetween(a,c)+this.transitionsBetween(A,c)?l:c:l:this.isValid(c)?c:null}shiftToModuleCenter(t){let e=t[0],r=t[1],n=t[2],i=t[3],o=this.transitionsBetween(e,i)+1,s=this.transitionsBetween(n,i)+1,a=ce.shiftPoint(e,r,4*s),A=ce.shiftPoint(n,r,4*o);o=this.transitionsBetween(a,i)+1,s=this.transitionsBetween(A,i)+1,1==(1&o)&&(o+=1),1==(1&s)&&(s+=1);let l,c,h=(e.getX()+r.getX()+n.getX()+i.getX())/4,g=(e.getY()+r.getY()+n.getY()+i.getY())/4;return e=ce.moveAway(e,h,g),r=ce.moveAway(r,h,g),n=ce.moveAway(n,h,g),i=ce.moveAway(i,h,g),a=ce.shiftPoint(e,r,4*s),a=ce.shiftPoint(a,i,4*o),l=ce.shiftPoint(r,e,4*s),l=ce.shiftPoint(l,n,4*o),A=ce.shiftPoint(n,i,4*s),A=ce.shiftPoint(A,r,4*o),c=ce.shiftPoint(i,n,4*s),c=ce.shiftPoint(c,e,4*o),[a,l,A,c]}isValid(t){return t.getX()>=0&&t.getX()0&&t.getY()Math.abs(i-r);if(s){let t=r;r=n,n=t,t=i,i=o,o=t}let a=Math.abs(i-r),A=Math.abs(o-n),l=-a/2,c=n0){if(e===o)break;e+=c,l-=a}}return g}}class he{constructor(){this.decoder=new le}decode(t,e=null){let r,n;if(null!=e&&e.has(w.PURE_BARCODE)){const e=he.extractPureBits(t.getBlackMatrix());r=this.decoder.decode(e),n=he.NO_POINTS}else{const e=new ce(t.getBlackMatrix()).detect();r=this.decoder.decode(e.getBits()),n=e.getPoints()}const i=r.getRawBytes(),o=new L(r.getText(),i,8*i.length,n,Q.DATA_MATRIX,h.currentTimeMillis()),s=r.getByteSegments();null!=s&&o.putMetadata(H.BYTE_SEGMENTS,s);const a=r.getECLevel();return null!=a&&o.putMetadata(H.ERROR_CORRECTION_LEVEL,a),o}reset(){}static extractPureBits(t){const e=t.getTopLeftOnBit(),r=t.getBottomRightOnBit();if(null==e||null==r)throw new M;const n=this.moduleSize(e,t);let i=e[1];const o=r[1];let s=e[0];const a=(r[0]-s+1)/n,A=(o-i+1)/n;if(a<=0||A<=0)throw new M;const l=n/2;i+=l,s+=l;const c=new B(a,A);for(let e=0;e=ge.FOR_BITS.size)throw new a;return ge.FOR_BITS.get(t)}}ge.FOR_BITS=new Map,ge.FOR_VALUE=new Map,ge.L=new ge(Y.L,"L",1),ge.M=new ge(Y.M,"M",0),ge.Q=new ge(Y.Q,"Q",3),ge.H=new ge(Y.H,"H",2);class de{constructor(t){this.errorCorrectionLevel=ge.forBits(t>>3&3),this.dataMask=7&t}static numBitsDiffering(t,e){return C.bitCount(t^e)}static decodeFormatInformation(t,e){const r=de.doDecodeFormatInformation(t,e);return null!==r?r:de.doDecodeFormatInformation(t^de.FORMAT_INFO_MASK_QR,e^de.FORMAT_INFO_MASK_QR)}static doDecodeFormatInformation(t,e){let r=Number.MAX_SAFE_INTEGER,n=0;for(const i of de.FORMAT_INFO_DECODE_LOOKUP){const o=i[0];if(o===t||o===e)return new de(i[1]);let s=de.numBitsDiffering(t,o);s40)throw new a;return Ie.VERSIONS[t-1]}static decodeVersionInformation(t){let e=Number.MAX_SAFE_INTEGER,r=0;for(let n=0;n6&&(e.setRegion(t-11,0,3,6),e.setRegion(0,t-11,6,3)),e}toString(){return""+this.versionNumber}}Ie.VERSION_DECODE_INFO=Int32Array.from([31892,34236,39577,42195,48118,51042,55367,58893,63784,68472,70749,76311,79154,84390,87683,92361,96236,102084,102881,110507,110734,117786,119615,126325,127568,133589,136944,141498,145311,150283,152622,158308,161089,167017]),Ie.VERSIONS=[new Ie(1,new Int32Array(0),new ue(7,new Ce(1,19)),new ue(10,new Ce(1,16)),new ue(13,new Ce(1,13)),new ue(17,new Ce(1,9))),new Ie(2,Int32Array.from([6,18]),new ue(10,new Ce(1,34)),new ue(16,new Ce(1,28)),new ue(22,new Ce(1,22)),new ue(28,new Ce(1,16))),new Ie(3,Int32Array.from([6,22]),new ue(15,new Ce(1,55)),new ue(26,new Ce(1,44)),new ue(18,new Ce(2,17)),new ue(22,new Ce(2,13))),new Ie(4,Int32Array.from([6,26]),new ue(20,new Ce(1,80)),new ue(18,new Ce(2,32)),new ue(26,new Ce(2,24)),new ue(16,new Ce(4,9))),new Ie(5,Int32Array.from([6,30]),new ue(26,new Ce(1,108)),new ue(24,new Ce(2,43)),new ue(18,new Ce(2,15),new Ce(2,16)),new ue(22,new Ce(2,11),new Ce(2,12))),new Ie(6,Int32Array.from([6,34]),new ue(18,new Ce(2,68)),new ue(16,new Ce(4,27)),new ue(24,new Ce(4,19)),new ue(28,new Ce(4,15))),new Ie(7,Int32Array.from([6,22,38]),new ue(20,new Ce(2,78)),new ue(18,new Ce(4,31)),new ue(18,new Ce(2,14),new Ce(4,15)),new ue(26,new Ce(4,13),new Ce(1,14))),new Ie(8,Int32Array.from([6,24,42]),new ue(24,new Ce(2,97)),new ue(22,new Ce(2,38),new Ce(2,39)),new ue(22,new Ce(4,18),new Ce(2,19)),new ue(26,new Ce(4,14),new Ce(2,15))),new Ie(9,Int32Array.from([6,26,46]),new ue(30,new Ce(2,116)),new ue(22,new Ce(3,36),new Ce(2,37)),new ue(20,new Ce(4,16),new Ce(4,17)),new ue(24,new Ce(4,12),new Ce(4,13))),new Ie(10,Int32Array.from([6,28,50]),new ue(18,new Ce(2,68),new Ce(2,69)),new ue(26,new Ce(4,43),new Ce(1,44)),new ue(24,new Ce(6,19),new Ce(2,20)),new ue(28,new Ce(6,15),new Ce(2,16))),new Ie(11,Int32Array.from([6,30,54]),new ue(20,new Ce(4,81)),new ue(30,new Ce(1,50),new Ce(4,51)),new ue(28,new Ce(4,22),new Ce(4,23)),new ue(24,new Ce(3,12),new Ce(8,13))),new Ie(12,Int32Array.from([6,32,58]),new ue(24,new Ce(2,92),new Ce(2,93)),new ue(22,new Ce(6,36),new Ce(2,37)),new ue(26,new Ce(4,20),new Ce(6,21)),new ue(28,new Ce(7,14),new Ce(4,15))),new Ie(13,Int32Array.from([6,34,62]),new ue(26,new Ce(4,107)),new ue(22,new Ce(8,37),new Ce(1,38)),new ue(24,new Ce(8,20),new Ce(4,21)),new ue(22,new Ce(12,11),new Ce(4,12))),new Ie(14,Int32Array.from([6,26,46,66]),new ue(30,new Ce(3,115),new Ce(1,116)),new ue(24,new Ce(4,40),new Ce(5,41)),new ue(20,new Ce(11,16),new Ce(5,17)),new ue(24,new Ce(11,12),new Ce(5,13))),new Ie(15,Int32Array.from([6,26,48,70]),new ue(22,new Ce(5,87),new Ce(1,88)),new ue(24,new Ce(5,41),new Ce(5,42)),new ue(30,new Ce(5,24),new Ce(7,25)),new ue(24,new Ce(11,12),new Ce(7,13))),new Ie(16,Int32Array.from([6,26,50,74]),new ue(24,new Ce(5,98),new Ce(1,99)),new ue(28,new Ce(7,45),new Ce(3,46)),new ue(24,new Ce(15,19),new Ce(2,20)),new ue(30,new Ce(3,15),new Ce(13,16))),new Ie(17,Int32Array.from([6,30,54,78]),new ue(28,new Ce(1,107),new Ce(5,108)),new ue(28,new Ce(10,46),new Ce(1,47)),new ue(28,new Ce(1,22),new Ce(15,23)),new ue(28,new Ce(2,14),new Ce(17,15))),new Ie(18,Int32Array.from([6,30,56,82]),new ue(30,new Ce(5,120),new Ce(1,121)),new ue(26,new Ce(9,43),new Ce(4,44)),new ue(28,new Ce(17,22),new Ce(1,23)),new ue(28,new Ce(2,14),new Ce(19,15))),new Ie(19,Int32Array.from([6,30,58,86]),new ue(28,new Ce(3,113),new Ce(4,114)),new ue(26,new Ce(3,44),new Ce(11,45)),new ue(26,new Ce(17,21),new Ce(4,22)),new ue(26,new Ce(9,13),new Ce(16,14))),new Ie(20,Int32Array.from([6,34,62,90]),new ue(28,new Ce(3,107),new Ce(5,108)),new ue(26,new Ce(3,41),new Ce(13,42)),new ue(30,new Ce(15,24),new Ce(5,25)),new ue(28,new Ce(15,15),new Ce(10,16))),new Ie(21,Int32Array.from([6,28,50,72,94]),new ue(28,new Ce(4,116),new Ce(4,117)),new ue(26,new Ce(17,42)),new ue(28,new Ce(17,22),new Ce(6,23)),new ue(30,new Ce(19,16),new Ce(6,17))),new Ie(22,Int32Array.from([6,26,50,74,98]),new ue(28,new Ce(2,111),new Ce(7,112)),new ue(28,new Ce(17,46)),new ue(30,new Ce(7,24),new Ce(16,25)),new ue(24,new Ce(34,13))),new Ie(23,Int32Array.from([6,30,54,78,102]),new ue(30,new Ce(4,121),new Ce(5,122)),new ue(28,new Ce(4,47),new Ce(14,48)),new ue(30,new Ce(11,24),new Ce(14,25)),new ue(30,new Ce(16,15),new Ce(14,16))),new Ie(24,Int32Array.from([6,28,54,80,106]),new ue(30,new Ce(6,117),new Ce(4,118)),new ue(28,new Ce(6,45),new Ce(14,46)),new ue(30,new Ce(11,24),new Ce(16,25)),new ue(30,new Ce(30,16),new Ce(2,17))),new Ie(25,Int32Array.from([6,32,58,84,110]),new ue(26,new Ce(8,106),new Ce(4,107)),new ue(28,new Ce(8,47),new Ce(13,48)),new ue(30,new Ce(7,24),new Ce(22,25)),new ue(30,new Ce(22,15),new Ce(13,16))),new Ie(26,Int32Array.from([6,30,58,86,114]),new ue(28,new Ce(10,114),new Ce(2,115)),new ue(28,new Ce(19,46),new Ce(4,47)),new ue(28,new Ce(28,22),new Ce(6,23)),new ue(30,new Ce(33,16),new Ce(4,17))),new Ie(27,Int32Array.from([6,34,62,90,118]),new ue(30,new Ce(8,122),new Ce(4,123)),new ue(28,new Ce(22,45),new Ce(3,46)),new ue(30,new Ce(8,23),new Ce(26,24)),new ue(30,new Ce(12,15),new Ce(28,16))),new Ie(28,Int32Array.from([6,26,50,74,98,122]),new ue(30,new Ce(3,117),new Ce(10,118)),new ue(28,new Ce(3,45),new Ce(23,46)),new ue(30,new Ce(4,24),new Ce(31,25)),new ue(30,new Ce(11,15),new Ce(31,16))),new Ie(29,Int32Array.from([6,30,54,78,102,126]),new ue(30,new Ce(7,116),new Ce(7,117)),new ue(28,new Ce(21,45),new Ce(7,46)),new ue(30,new Ce(1,23),new Ce(37,24)),new ue(30,new Ce(19,15),new Ce(26,16))),new Ie(30,Int32Array.from([6,26,52,78,104,130]),new ue(30,new Ce(5,115),new Ce(10,116)),new ue(28,new Ce(19,47),new Ce(10,48)),new ue(30,new Ce(15,24),new Ce(25,25)),new ue(30,new Ce(23,15),new Ce(25,16))),new Ie(31,Int32Array.from([6,30,56,82,108,134]),new ue(30,new Ce(13,115),new Ce(3,116)),new ue(28,new Ce(2,46),new Ce(29,47)),new ue(30,new Ce(42,24),new Ce(1,25)),new ue(30,new Ce(23,15),new Ce(28,16))),new Ie(32,Int32Array.from([6,34,60,86,112,138]),new ue(30,new Ce(17,115)),new ue(28,new Ce(10,46),new Ce(23,47)),new ue(30,new Ce(10,24),new Ce(35,25)),new ue(30,new Ce(19,15),new Ce(35,16))),new Ie(33,Int32Array.from([6,30,58,86,114,142]),new ue(30,new Ce(17,115),new Ce(1,116)),new ue(28,new Ce(14,46),new Ce(21,47)),new ue(30,new Ce(29,24),new Ce(19,25)),new ue(30,new Ce(11,15),new Ce(46,16))),new Ie(34,Int32Array.from([6,34,62,90,118,146]),new ue(30,new Ce(13,115),new Ce(6,116)),new ue(28,new Ce(14,46),new Ce(23,47)),new ue(30,new Ce(44,24),new Ce(7,25)),new ue(30,new Ce(59,16),new Ce(1,17))),new Ie(35,Int32Array.from([6,30,54,78,102,126,150]),new ue(30,new Ce(12,121),new Ce(7,122)),new ue(28,new Ce(12,47),new Ce(26,48)),new ue(30,new Ce(39,24),new Ce(14,25)),new ue(30,new Ce(22,15),new Ce(41,16))),new Ie(36,Int32Array.from([6,24,50,76,102,128,154]),new ue(30,new Ce(6,121),new Ce(14,122)),new ue(28,new Ce(6,47),new Ce(34,48)),new ue(30,new Ce(46,24),new Ce(10,25)),new ue(30,new Ce(2,15),new Ce(64,16))),new Ie(37,Int32Array.from([6,28,54,80,106,132,158]),new ue(30,new Ce(17,122),new Ce(4,123)),new ue(28,new Ce(29,46),new Ce(14,47)),new ue(30,new Ce(49,24),new Ce(10,25)),new ue(30,new Ce(24,15),new Ce(46,16))),new Ie(38,Int32Array.from([6,32,58,84,110,136,162]),new ue(30,new Ce(4,122),new Ce(18,123)),new ue(28,new Ce(13,46),new Ce(32,47)),new ue(30,new Ce(48,24),new Ce(14,25)),new ue(30,new Ce(42,15),new Ce(32,16))),new Ie(39,Int32Array.from([6,26,54,82,110,138,166]),new ue(30,new Ce(20,117),new Ce(4,118)),new ue(28,new Ce(40,47),new Ce(7,48)),new ue(30,new Ce(43,24),new Ce(22,25)),new ue(30,new Ce(10,15),new Ce(67,16))),new Ie(40,Int32Array.from([6,30,58,86,114,142,170]),new ue(30,new Ce(19,118),new Ce(6,119)),new ue(28,new Ce(18,47),new Ce(31,48)),new ue(30,new Ce(34,24),new Ce(34,25)),new ue(30,new Ce(20,15),new Ce(61,16)))],function(t){t[t.DATA_MASK_000=0]="DATA_MASK_000",t[t.DATA_MASK_001=1]="DATA_MASK_001",t[t.DATA_MASK_010=2]="DATA_MASK_010",t[t.DATA_MASK_011=3]="DATA_MASK_011",t[t.DATA_MASK_100=4]="DATA_MASK_100",t[t.DATA_MASK_101=5]="DATA_MASK_101",t[t.DATA_MASK_110=6]="DATA_MASK_110",t[t.DATA_MASK_111=7]="DATA_MASK_111"}(v||(v={}));class fe{constructor(t,e){this.value=t,this.isMasked=e}unmaskBitMatrix(t,e){for(let r=0;r0==(t+e&1)))],[v.DATA_MASK_001,new fe(v.DATA_MASK_001,((t,e)=>0==(1&t)))],[v.DATA_MASK_010,new fe(v.DATA_MASK_010,((t,e)=>e%3==0))],[v.DATA_MASK_011,new fe(v.DATA_MASK_011,((t,e)=>(t+e)%3==0))],[v.DATA_MASK_100,new fe(v.DATA_MASK_100,((t,e)=>0==(Math.floor(t/2)+Math.floor(e/3)&1)))],[v.DATA_MASK_101,new fe(v.DATA_MASK_101,((t,e)=>t*e%6==0))],[v.DATA_MASK_110,new fe(v.DATA_MASK_110,((t,e)=>t*e%6<3))],[v.DATA_MASK_111,new fe(v.DATA_MASK_111,((t,e)=>0==(t+e+t*e%3&1)))]]);class we{constructor(t){const e=t.getHeight();if(e<21||1!=(3&e))throw new E;this.bitMatrix=t}readFormatInformation(){if(null!==this.parsedFormatInfo&&void 0!==this.parsedFormatInfo)return this.parsedFormatInfo;let t=0;for(let e=0;e<6;e++)t=this.copyBit(e,8,t);t=this.copyBit(7,8,t),t=this.copyBit(8,8,t),t=this.copyBit(8,7,t);for(let e=5;e>=0;e--)t=this.copyBit(8,e,t);const e=this.bitMatrix.getHeight();let r=0;const n=e-7;for(let t=e-1;t>=n;t--)r=this.copyBit(8,t,r);for(let t=e-8;t=0;e--)for(let i=t-9;i>=n;i--)r=this.copyBit(i,e,r);let i=Ie.decodeVersionInformation(r);if(null!==i&&i.getDimensionForVersion()===t)return this.parsedVersion=i,i;r=0;for(let e=5;e>=0;e--)for(let i=t-9;i>=n;i--)r=this.copyBit(e,i,r);if(i=Ie.decodeVersionInformation(r),null!==i&&i.getDimensionForVersion()===t)return this.parsedVersion=i,i;throw new E}copyBit(t,e,r){return(this.isMirror?this.bitMatrix.get(e,t):this.bitMatrix.get(t,e))?r<<1|1:r<<1}readCodewords(){const t=this.readFormatInformation(),e=this.readVersion(),r=fe.values.get(t.getDataMask()),n=this.bitMatrix.getHeight();r.unmaskBitMatrix(this.bitMatrix,n);const i=e.buildFunctionPattern();let o=!0;const s=new Uint8Array(e.getTotalCodewords());let a=0,A=0,l=0;for(let t=n-1;t>0;t-=2){6===t&&t--;for(let e=0;e=0&&s[c].codewords.length!==l;)c--;c++;const h=l-n.getECCodewordsPerBlock();let g=0;for(let e=0;et.available())throw new E;const n=new Uint8Array(2*r);let i=0;for(;r>0;){const e=t.readBits(13);let o=e/96<<8&4294967295|e%96;o+=o<959?41377:42657,n[i]=o>>8&255,n[i+1]=255&o,i+=2,r--}try{e.append(S.decode(n,R.GB2312))}catch(t){throw new E(t)}}static decodeKanjiSegment(t,e,r){if(13*r>t.available())throw new E;const n=new Uint8Array(2*r);let i=0;for(;r>0;){const e=t.readBits(13);let o=e/192<<8&4294967295|e%192;o+=o<7936?33088:49472,n[i]=o>>8,n[i+1]=o,i+=2,r--}try{e.append(S.decode(n,R.SHIFT_JIS))}catch(t){throw new E(t)}}static decodeByteSegment(t,e,r,n,i,o){if(8*r>t.available())throw new E;const s=new Uint8Array(r);for(let e=0;e=pe.ALPHANUMERIC_CHARS.length)throw new E;return pe.ALPHANUMERIC_CHARS[t]}static decodeAlphanumericSegment(t,e,r,n){const i=e.length();for(;r>1;){if(t.available()<11)throw new E;const n=t.readBits(11);e.append(pe.toAlphaNumericChar(Math.floor(n/45))),e.append(pe.toAlphaNumericChar(n%45)),r-=2}if(1===r){if(t.available()<6)throw new E;e.append(pe.toAlphaNumericChar(t.readBits(6)))}if(n)for(let t=i;t=3;){if(t.available()<10)throw new E;const n=t.readBits(10);if(n>=1e3)throw new E;e.append(pe.toAlphaNumericChar(Math.floor(n/100))),e.append(pe.toAlphaNumericChar(Math.floor(n/10)%10)),e.append(pe.toAlphaNumericChar(n%10)),r-=3}if(2===r){if(t.available()<7)throw new E;const r=t.readBits(7);if(r>=100)throw new E;e.append(pe.toAlphaNumericChar(Math.floor(r/10))),e.append(pe.toAlphaNumericChar(r%10))}else if(1===r){if(t.available()<4)throw new E;const r=t.readBits(4);if(r>=10)throw new E;e.append(pe.toAlphaNumericChar(r))}}static parseECIValue(t){const e=t.readBits(8);if(0==(128&e))return 127&e;if(128==(192&e))return(63&e)<<8&4294967295|t.readBits(8);if(192==(224&e))return(31&e)<<16&4294967295|t.readBits(16);throw new E}}pe.ALPHANUMERIC_CHARS="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:",pe.GB2312_SUBSET=1;class Se{constructor(t){this.mirrored=t}isMirrored(){return this.mirrored}applyMirroredCorrection(t){if(!this.mirrored||null===t||t.length<3)return;const e=t[0];t[0]=t[2],t[2]=e}}class Re{constructor(){this.rsDecoder=new $(J.QR_CODE_FIELD_256)}decodeBooleanArray(t,e){return this.decodeBitMatrix(B.parseFromBooleanArray(t),e)}decodeBitMatrix(t,e){const r=new we(t);let n=null;try{return this.decodeBitMatrixParser(r,e)}catch(t){n=t}try{r.remask(),r.setMirror(!0),r.readVersion(),r.readFormatInformation(),r.mirror();const t=this.decodeBitMatrixParser(r,e);return t.setOther(new Se(!0)),t}catch(t){if(null!==n)throw n;throw t}}decodeBitMatrixParser(t,e){const r=t.readVersion(),n=t.readFormatInformation().getErrorCorrectionLevel(),i=t.readCodewords(),o=Ee.getDataBlocks(i,r,n);let s=0;for(const t of o)s+=t.getNumDataCodewords();const a=new Uint8Array(s);let A=0;for(const t of o){const e=t.getCodewords(),r=t.getNumDataCodewords();this.correctErrors(e,r);for(let t=0;t=r)return!1;return!0}crossCheckVertical(t,e,r,n){const i=this.image,o=i.getHeight(),s=this.crossCheckStateCount;s[0]=0,s[1]=0,s[2]=0;let a=t;for(;a>=0&&i.get(e,a)&&s[1]<=r;)s[1]++,a--;if(a<0||s[1]>r)return NaN;for(;a>=0&&!i.get(e,a)&&s[0]<=r;)s[0]++,a--;if(s[0]>r)return NaN;for(a=t+1;ar)return NaN;for(;ar)return NaN;const A=s[0]+s[1]+s[2];return 5*Math.abs(A-n)>=2*n?NaN:this.foundPatternCross(s)?Be.centerFromEnd(s,a):NaN}handlePossibleCenter(t,e,r){const n=t[0]+t[1]+t[2],i=Be.centerFromEnd(t,r),o=this.crossCheckVertical(e,i,2*t[1],n);if(!isNaN(o)){const e=(t[0]+t[1]+t[2])/3;for(const t of this.possibleCenters)if(t.aboutEquals(e,o,i))return t.combineEstimate(o,i,e);const r=new De(i,o,e);this.possibleCenters.push(r),null!==this.resultPointCallback&&void 0!==this.resultPointCallback&&this.resultPointCallback.foundPossibleResultPoint(r)}return null}}class Me extends nt{constructor(t,e,r,n){super(t,e),this.estimatedModuleSize=r,this.count=n,void 0===n&&(this.count=1)}getEstimatedModuleSize(){return this.estimatedModuleSize}getCount(){return this.count}aboutEquals(t,e,r){if(Math.abs(e-this.getY())<=t&&Math.abs(r-this.getX())<=t){const e=Math.abs(t-this.estimatedModuleSize);return e<=1||e<=this.estimatedModuleSize}return!1}combineEstimate(t,e,r){const n=this.count+1,i=(this.count*this.getX()+e)/n,o=(this.count*this.getY()+t)/n,s=(this.count*this.estimatedModuleSize+r)/n;return new Me(i,o,s,n)}}class Te{constructor(t){this.bottomLeft=t[0],this.topLeft=t[1],this.topRight=t[2]}getBottomLeft(){return this.bottomLeft}getTopLeft(){return this.topLeft}getTopRight(){return this.topRight}}class Ne{constructor(t,e){this.image=t,this.resultPointCallback=e,this.possibleCenters=[],this.crossCheckStateCount=new Int32Array(5),this.resultPointCallback=e}getImage(){return this.image}getPossibleCenters(){return this.possibleCenters}find(t){const e=null!=t&&void 0!==t.get(w.TRY_HARDER),r=null!=t&&void 0!==t.get(w.PURE_BARCODE),n=this.image,i=n.getHeight(),o=n.getWidth();let s=Math.floor(3*i/(4*Ne.MAX_MODULES));(sA[2]&&(t+=e-A[2]-s,i=o-1)}e=0,A[0]=0,A[1]=0,A[2]=0,A[3]=0,A[4]=0}else A[0]=A[2],A[1]=A[3],A[2]=A[4],A[3]=1,A[4]=0,e=3;else A[++e]++;else A[e]++;Ne.foundPatternCross(A)&&!0===this.handlePossibleCenter(A,t,o,r)&&(s=A[0],this.hasSkipped&&(a=this.haveMultiplyConfirmedCenters()))}const l=this.selectBestPatterns();return nt.orderBestPatterns(l),new Te(l)}static centerFromEnd(t,e){return e-t[4]-t[3]-t[2]/2}static foundPatternCross(t){let e=0;for(let r=0;r<5;r++){const n=t[r];if(0===n)return!1;e+=n}if(e<7)return!1;const r=e/7,n=r/2;return Math.abs(r-t[0])=o&&e>=o&&s.get(e-o,t-o);)i[2]++,o++;if(t=o&&e>=o&&!s.get(e-o,t-o)&&i[1]<=r;)i[1]++,o++;if(tr)return!1;for(;t>=o&&e>=o&&s.get(e-o,t-o)&&i[0]<=r;)i[0]++,o++;if(i[0]>r)return!1;const a=s.getHeight(),A=s.getWidth();for(o=1;t+o=a||e+o>=A)return!1;for(;t+o=a||e+o>=A||i[3]>=r)return!1;for(;t+o=r)return!1;const l=i[0]+i[1]+i[2]+i[3]+i[4];return Math.abs(l-n)<2*n&&Ne.foundPatternCross(i)}crossCheckVertical(t,e,r,n){const i=this.image,o=i.getHeight(),s=this.getCrossCheckStateCount();let a=t;for(;a>=0&&i.get(e,a);)s[2]++,a--;if(a<0)return NaN;for(;a>=0&&!i.get(e,a)&&s[1]<=r;)s[1]++,a--;if(a<0||s[1]>r)return NaN;for(;a>=0&&i.get(e,a)&&s[0]<=r;)s[0]++,a--;if(s[0]>r)return NaN;for(a=t+1;a=r)return NaN;for(;a=r)return NaN;const A=s[0]+s[1]+s[2]+s[3]+s[4];return 5*Math.abs(A-n)>=2*n?NaN:Ne.foundPatternCross(s)?Ne.centerFromEnd(s,a):NaN}crossCheckHorizontal(t,e,r,n){const i=this.image,o=i.getWidth(),s=this.getCrossCheckStateCount();let a=t;for(;a>=0&&i.get(a,e);)s[2]++,a--;if(a<0)return NaN;for(;a>=0&&!i.get(a,e)&&s[1]<=r;)s[1]++,a--;if(a<0||s[1]>r)return NaN;for(;a>=0&&i.get(a,e)&&s[0]<=r;)s[0]++,a--;if(s[0]>r)return NaN;for(a=t+1;a=r)return NaN;for(;a=r)return NaN;const A=s[0]+s[1]+s[2]+s[3]+s[4];return 5*Math.abs(A-n)>=n?NaN:Ne.foundPatternCross(s)?Ne.centerFromEnd(s,a):NaN}handlePossibleCenter(t,e,r,n){const i=t[0]+t[1]+t[2]+t[3]+t[4];let o=Ne.centerFromEnd(t,r),s=this.crossCheckVertical(e,Math.floor(o),t[2],i);if(!isNaN(s)&&(o=this.crossCheckHorizontal(Math.floor(o),Math.floor(s),t[2],i),!isNaN(o)&&(!n||this.crossCheckDiagonal(Math.floor(s),Math.floor(o),t[2],i)))){const t=i/7;let e=!1;const r=this.possibleCenters;for(let n=0,i=r.length;n=Ne.CENTER_QUORUM){if(null!=t)return this.hasSkipped=!0,Math.floor((Math.abs(t.getX()-e.getX())-Math.abs(t.getY()-e.getY()))/2);t=e}return 0}haveMultiplyConfirmedCenters(){let t=0,e=0;const r=this.possibleCenters.length;for(const r of this.possibleCenters)r.getCount()>=Ne.CENTER_QUORUM&&(t++,e+=r.getEstimatedModuleSize());if(t<3)return!1;const n=e/r;let i=0;for(const t of this.possibleCenters)i+=Math.abs(t.getEstimatedModuleSize()-n);return i<=.05*e}selectBestPatterns(){const t=this.possibleCenters.length;if(t<3)throw new M;const e=this.possibleCenters;let r;if(t>3){let n=0,i=0;for(const t of this.possibleCenters){const e=t.getEstimatedModuleSize();n+=e,i+=e*e}r=n/t;let o=Math.sqrt(i/t-r*r);e.sort(((t,e)=>{const n=Math.abs(e.getEstimatedModuleSize()-r),i=Math.abs(t.getEstimatedModuleSize()-r);return ni?1:0}));const s=Math.max(.2*r,o);for(let t=0;t3;t++){const n=e[t];Math.abs(n.getEstimatedModuleSize()-r)>s&&(e.splice(t,1),t--)}}if(e.length>3){let t=0;for(const r of e)t+=r.getEstimatedModuleSize();r=t/e.length,e.sort(((t,e)=>{if(e.getCount()===t.getCount()){const n=Math.abs(e.getEstimatedModuleSize()-r),i=Math.abs(t.getEstimatedModuleSize()-r);return ni?-1:0}return e.getCount()-t.getCount()})),e.splice(3)}return[e[0],e[1],e[2]]}}Ne.CENTER_QUORUM=2,Ne.MIN_SKIP=3,Ne.MAX_MODULES=57;class ye{constructor(t){this.image=t}getImage(){return this.image}getResultPointCallback(){return this.resultPointCallback}detect(t){this.resultPointCallback=null==t?null:t.get(w.NEED_RESULT_POINT_CALLBACK);const e=new Ne(this.image,this.resultPointCallback).find(t);return this.processFinderPatternInfo(e)}processFinderPatternInfo(t){const e=t.getTopLeft(),r=t.getTopRight(),n=t.getBottomLeft(),i=this.calculateModuleSize(e,r,n);if(i<1)throw new M("No pattern found in proccess finder.");const o=ye.computeDimension(e,r,n,i),s=Ie.getProvisionalVersionForDimension(o),a=s.getDimensionForVersion()-7;let A=null;if(s.getAlignmentPatternCenters().length>0){const t=r.getX()-e.getX()+n.getX(),o=r.getY()-e.getY()+n.getY(),s=1-3/a,l=Math.floor(e.getX()+s*(t-e.getX())),c=Math.floor(e.getY()+s*(o-e.getY()));for(let t=4;t<=16;t<<=1)try{A=this.findAlignmentInRegion(i,l,c,t);break}catch(t){if(!(t instanceof M))throw t}}const l=ye.createTransform(e,r,n,A,o),c=ye.sampleGrid(this.image,l,o);let h;return h=null===A?[n,e,r]:[n,e,r,A],new it(c,h)}static createTransform(t,e,r,n,i){const o=i-3.5;let s,a,A,l;return null!==n?(s=n.getX(),a=n.getY(),A=o-3,l=A):(s=e.getX()-t.getX()+r.getX(),a=e.getY()-t.getY()+r.getY(),A=o,l=o),At.quadrilateralToQuadrilateral(3.5,3.5,o,3.5,A,l,3.5,o,t.getX(),t.getY(),e.getX(),e.getY(),s,a,r.getX(),r.getY())}static sampleGrid(t,e,r){return ct.getInstance().sampleGridWithTransform(t,r,r,e)}static computeDimension(t,e,r,n){const i=et.round(nt.distance(t,e)/n),o=et.round(nt.distance(t,r)/n);let s=Math.floor((i+o)/2)+7;switch(3&s){case 0:s++;break;case 2:s--;break;case 3:throw new M("Dimensions could be not found.")}return s}calculateModuleSize(t,e,r){return(this.calculateModuleSizeOneWay(t,e)+this.calculateModuleSizeOneWay(t,r))/2}calculateModuleSizeOneWay(t,e){const r=this.sizeOfBlackWhiteBlackRunBothWays(Math.floor(t.getX()),Math.floor(t.getY()),Math.floor(e.getX()),Math.floor(e.getY())),n=this.sizeOfBlackWhiteBlackRunBothWays(Math.floor(e.getX()),Math.floor(e.getY()),Math.floor(t.getX()),Math.floor(t.getY()));return isNaN(r)?n/7:isNaN(n)?r/7:(r+n)/14}sizeOfBlackWhiteBlackRunBothWays(t,e,r,n){let i=this.sizeOfBlackWhiteBlackRun(t,e,r,n),o=1,s=t-(r-t);s<0?(o=t/(t-s),s=0):s>=this.image.getWidth()&&(o=(this.image.getWidth()-1-t)/(s-t),s=this.image.getWidth()-1);let a=Math.floor(e-(n-e)*o);return o=1,a<0?(o=e/(e-a),a=0):a>=this.image.getHeight()&&(o=(this.image.getHeight()-1-e)/(a-e),a=this.image.getHeight()-1),s=Math.floor(t+(s-t)*o),i+=this.sizeOfBlackWhiteBlackRun(t,e,s,a),i-1}sizeOfBlackWhiteBlackRun(t,e,r,n){const i=Math.abs(n-e)>Math.abs(r-t);if(i){let i=t;t=e,e=i,i=r,r=n,n=i}const o=Math.abs(r-t),s=Math.abs(n-e);let a=-o/2;const A=t0){if(g===n)break;g+=l,a-=o}}return 2===c?et.distance(r+A,n,t,e):NaN}findAlignmentInRegion(t,e,r,n){const i=Math.floor(n*t),o=Math.max(0,e-i),s=Math.min(this.image.getWidth()-1,e+i);if(s-o<3*t)throw new M("Alignment top exceeds estimated module size.");const a=Math.max(0,r-i),A=Math.min(this.image.getHeight()-1,r+i);if(A-a<3*t)throw new M("Alignment bottom exceeds estimated module size.");return new Be(this.image,o,a,s-o,A-a,t,this.resultPointCallback).find()}}class _e{constructor(){this.decoder=new Re}getDecoder(){return this.decoder}decode(t,e){let r,n;if(null!=e&&void 0!==e.get(w.PURE_BARCODE)){const i=_e.extractPureBits(t.getBlackMatrix());r=this.decoder.decodeBitMatrix(i,e),n=_e.NO_POINTS}else{const i=new ye(t.getBlackMatrix()).detect(e);r=this.decoder.decodeBitMatrix(i.getBits(),e),n=i.getPoints()}r.getOther()instanceof Se&&r.getOther().applyMirroredCorrection(n);const i=new L(r.getText(),r.getRawBytes(),void 0,n,Q.QR_CODE,void 0),o=r.getByteSegments();null!==o&&i.putMetadata(H.BYTE_SEGMENTS,o);const s=r.getECLevel();return null!==s&&i.putMetadata(H.ERROR_CORRECTION_LEVEL,s),r.hasStructuredAppend()&&(i.putMetadata(H.STRUCTURED_APPEND_SEQUENCE,r.getStructuredAppendSequenceNumber()),i.putMetadata(H.STRUCTURED_APPEND_PARITY,r.getStructuredAppendParity())),i}reset(){}static extractPureBits(t){const e=t.getTopLeftOnBit(),r=t.getBottomRightOnBit();if(null===e||null===r)throw new M;const n=this.moduleSize(e,t);let i=e[1],o=r[1],s=e[0],a=r[0];if(s>=a||i>=o)throw new M;if(o-i!=a-s&&(a=s+(o-i),a>=t.getWidth()))throw new M;const A=Math.round((a-s+1)/n),l=Math.round((o-i+1)/n);if(A<=0||l<=0)throw new M;if(l!==A)throw new M;const c=Math.floor(n/2);i+=c,s+=c;const h=s+Math.floor((A-1)*n)-a;if(h>0){if(h>c)throw new M;s-=h}const g=i+Math.floor((l-1)*n)-o;if(g>0){if(g>c)throw new M;i-=g}const d=new B(A,l);for(let e=0;e0;){const s=Fe.findGuardPattern(t,i,--n,r,!1,o,A);if(null==s){n++;break}e=s}s[0]=new nt(e[0],n),s[1]=new nt(e[1],n),a=!0;break}}let l=n+1;if(a){let n=0,i=Int32Array.from([Math.trunc(s[0].getX()),Math.trunc(s[1].getX())]);for(;lFe.SKIPPED_ROW_COUNT_MAX)break;n++}}l-=n+1,s[2]=new nt(i[0],l),s[3]=new nt(i[1],l)}return l-n0&&A++o?n-o:o-n;if(A>r)return 1/0;a+=A}return a/i}}Fe.INDEXES_START_PATTERN=Int32Array.from([0,4,1,5]),Fe.INDEXES_STOP_PATTERN=Int32Array.from([6,2,7,3]),Fe.MAX_AVG_VARIANCE=.42,Fe.MAX_INDIVIDUAL_VARIANCE=.8,Fe.START_PATTERN=Int32Array.from([8,1,1,1,1,1,1,3]),Fe.STOP_PATTERN=Int32Array.from([7,1,1,3,1,1,1,2,1]),Fe.MAX_PIXEL_DRIFT=3,Fe.MAX_PATTERN_DRIFT=5,Fe.SKIPPED_ROW_COUNT_MAX=25,Fe.ROW_STEP=5,Fe.BARCODE_MIN_HEIGHT=10;class Pe{constructor(t,e){if(0===e.length)throw new a;this.field=t;let r=e.length;if(r>1&&0===e[0]){let t=1;for(;tr.length){let t=e;e=r,r=t}let n=new Int32Array(r.length),i=r.length-e.length;h.arraycopy(r,0,n,0,i);for(let t=i;t=0;e--){let r=this.getCoefficient(e);0!==r&&(r<0?(t.append(" - "),r=-r):t.length()>0&&t.append(" + "),0!==e&&1===r||t.append(r),0!==e&&(1===e?t.append("x"):(t.append("x^"),t.append(e))))}return t.toString()}}class ke extends class{add(t,e){return(t+e)%this.modulus}subtract(t,e){return(this.modulus+t-e)%this.modulus}exp(t){return this.expTable[t]}log(t){if(0===t)throw new a;return this.logTable[t]}inverse(t){if(0===t)throw new z;return this.expTable[this.modulus-this.logTable[t]-1]}multiply(t,e){return 0===t||0===e?0:this.expTable[(this.logTable[t]+this.logTable[e])%(this.modulus-1)]}getSize(){return this.modulus}equals(t){return t===this}}{constructor(t,e){super(),this.modulus=t,this.expTable=new Int32Array(t),this.logTable=new Int32Array(t);let r=1;for(let n=0;n0;t--){let r=n.evaluateAt(this.field.exp(t));i[e-t]=r,0!==r&&(o=!0)}if(!o)return 0;let s=this.field.getOne();if(null!=r)for(const e of r){let r=this.field.exp(t.length-1-e),n=new Pe(this.field,new Int32Array([this.field.subtract(0,r),1]));s=s.multiply(n)}let a=new Pe(this.field,i),A=this.runEuclideanAlgorithm(this.field.buildMonomial(e,1),a,e),c=A[0],h=A[1],g=this.findErrorLocations(c),d=this.findErrorMagnitudes(h,c,g);for(let e=0;e=Math.round(r/2);){let t=n,e=o;if(n=i,o=s,n.isZero())throw l.getChecksumInstance();i=t;let r=this.field.getZero(),a=n.getCoefficient(n.getDegree()),A=this.field.inverse(a);for(;i.getDegree()>=n.getDegree()&&!i.isZero();){let t=i.getDegree()-n.getDegree(),e=this.field.multiply(i.getCoefficient(i.getDegree()),A);r=r.add(this.field.buildMonomial(t,e)),i=i.subtract(n.multiplyByMonomial(t,e))}s=r.multiply(o).subtract(e).negative()}let a=s.getCoefficient(0);if(0===a)throw l.getChecksumInstance();let A=this.field.inverse(a);return[s.multiply(A),i.multiply(A)]}findErrorLocations(t){let e=t.getDegree(),r=new Int32Array(e),n=0;for(let i=1;i0){let e=r?this.topLeft:this.topRight,i=Math.trunc(e.getY()-t);i<0&&(i=0);let s=new nt(e.getX(),i);r?n=s:o=s}if(e>0){let t=r?this.bottomLeft:this.bottomRight,n=Math.trunc(t.getY()+e);n>=this.image.getHeight()&&(n=this.image.getHeight()-1);let o=new nt(t.getX(),n);r?i=o:s=o}return new Ge(this.image,n,i,o,s)}getMinX(){return this.minX}getMaxX(){return this.maxX}getMinY(){return this.minY}getMaxY(){return this.maxY}getTopLeft(){return this.topLeft}getTopRight(){return this.topRight}getBottomLeft(){return this.bottomLeft}getBottomRight(){return this.bottomRight}}class Qe{constructor(t,e,r,n){this.columnCount=t,this.errorCorrectionLevel=n,this.rowCountUpperPart=e,this.rowCountLowerPart=r,this.rowCount=e+r}getColumnCount(){return this.columnCount}getErrorCorrectionLevel(){return this.errorCorrectionLevel}getRowCount(){return this.rowCount}getRowCountUpperPart(){return this.rowCountUpperPart}getRowCountLowerPart(){return this.rowCountLowerPart}}class Ze{constructor(){this.buffer=""}static form(t,e){let r=-1;return t.replace(/%(-)?(0?[0-9]+)?([.][0-9]+)?([#][0-9]+)?([scfpexd%])/g,(function(t,n,i,o,s,a){if("%%"===t)return"%";if(void 0===e[++r])return;t=o?parseInt(o.substr(1)):void 0;let A,l=s?parseInt(s.substr(1)):void 0;switch(a){case"s":A=e[r];break;case"c":A=e[r][0];break;case"f":A=parseFloat(e[r]).toFixed(t);break;case"p":A=parseFloat(e[r]).toPrecision(t);break;case"e":A=parseFloat(e[r]).toExponential(t);break;case"x":A=parseInt(e[r]).toString(l||16);break;case"d":A=parseFloat(parseInt(e[r],l||10).toPrecision(t)).toFixed(0)}A="object"==typeof A?JSON.stringify(A):(+A).toString(l);let c=parseInt(i),h=i&&i[0]+""=="0"?"0":" ";for(;A.length=0&&(e=this.codewords[n],null!=e))return e;if(n=this.imageRowToCodewordIndex(t)+r,nr,getValue:()=>n};i.getValue()>t?(t=i.getValue(),e=[],e.push(i.getKey())):i.getValue()===t&&e.push(i.getKey())}return Oe.toIntArray(e)}getConfidence(t){return this.values.get(t)}}class ve extends Ue{constructor(t,e){super(t),this._isLeft=e}setRowNumbers(){for(let t of this.getCodewords())null!=t&&t.setRowNumberAsRowIndicatorColumn()}adjustCompleteIndicatorColumnRowNumbers(t){let e=this.getCodewords();this.setRowNumbers(),this.removeIncorrectCodewords(e,t);let r=this.getBoundingBox(),n=this._isLeft?r.getTopLeft():r.getTopRight(),i=this._isLeft?r.getBottomLeft():r.getBottomRight(),o=this.imageRowToCodewordIndex(Math.trunc(n.getY())),s=this.imageRowToCodewordIndex(Math.trunc(i.getY())),a=-1,A=1,l=0;for(let r=o;r=t.getRowCount()||i>r)e[r]=null;else{let t;t=A>2?(A-2)*i:i;let o=t>=r;for(let n=1;n<=t&&!o;n++)o=null!=e[r-n];o?e[r]=null:(a=n.getRowNumber(),l=1)}}}getRowHeights(){let t=this.getBarcodeMetadata();if(null==t)return null;this.adjustIncompleteIndicatorColumnRowNumbers(t);let e=new Int32Array(t.getRowCount());for(let t of this.getCodewords())if(null!=t){let r=t.getRowNumber();if(r>=e.length)continue;e[r]++}return e}adjustIncompleteIndicatorColumnRowNumbers(t){let e=this.getBoundingBox(),r=this._isLeft?e.getTopLeft():e.getTopRight(),n=this._isLeft?e.getBottomLeft():e.getBottomRight(),i=this.imageRowToCodewordIndex(Math.trunc(r.getY())),o=this.imageRowToCodewordIndex(Math.trunc(n.getY())),s=this.getCodewords(),a=-1;for(let e=i;e=t.getRowCount()?s[e]=null:a=r.getRowNumber())}}getBarcodeMetadata(){let t=this.getCodewords(),e=new Ye,r=new Ye,n=new Ye,i=new Ye;for(let o of t){if(null==o)continue;o.setRowNumberAsRowIndicatorColumn();let t=o.getValue()%30,s=o.getRowNumber();switch(this._isLeft||(s+=2),s%3){case 0:r.setValue(3*t+1);break;case 1:i.setValue(t/3),n.setValue(t%3);break;case 2:e.setValue(t+1)}}if(0===e.getValue().length||0===r.getValue().length||0===n.getValue().length||0===i.getValue().length||e.getValue()[0]<1||r.getValue()[0]+n.getValue()[0]Oe.MAX_ROWS_IN_BARCODE)return null;let o=new Qe(e.getValue()[0],r.getValue()[0],n.getValue()[0],i.getValue()[0]);return this.removeIncorrectCodewords(t,o),o}removeIncorrectCodewords(t,e){for(let r=0;re.getRowCount())t[r]=null;else switch(this._isLeft||(o+=2),o%3){case 0:3*i+1!==e.getRowCountUpperPart()&&(t[r]=null);break;case 1:Math.trunc(i/3)===e.getErrorCorrectionLevel()&&i%3===e.getRowCountLowerPart()||(t[r]=null);break;case 2:i+1!==e.getColumnCount()&&(t[r]=null)}}}isLeft(){return this._isLeft}toString(){return"IsLeft: "+this._isLeft+"\n"+super.toString()}}class xe{constructor(t,e){this.ADJUST_ROW_NUMBER_SKIP=2,this.barcodeMetadata=t,this.barcodeColumnCount=t.getColumnCount(),this.boundingBox=e,this.detectionResultColumns=new Array(this.barcodeColumnCount+2)}getDetectionResultColumns(){this.adjustIndicatorColumnRowNumbers(this.detectionResultColumns[0]),this.adjustIndicatorColumnRowNumbers(this.detectionResultColumns[this.barcodeColumnCount+1]);let t,e=Oe.MAX_CODEWORDS_IN_BARCODE;do{t=e,e=this.adjustRowNumbersAndGetCount()}while(e>0&&e0&&i0&&(s[0]=r[e-1],s[4]=i[e-1],s[5]=o[e-1]),e>1&&(s[8]=r[e-2],s[10]=i[e-2],s[11]=o[e-2]),e>=1;r=1&e,He.RATIOS_TABLE[t]||(He.RATIOS_TABLE[t]=new Array(Oe.BARS_IN_MODULE)),He.RATIOS_TABLE[t][Oe.BARS_IN_MODULE-n-1]=Math.fround(i/Oe.MODULES_IN_CODEWORD)}}this.bSymbolTableReady=!0}static getDecodedValue(t){let e=He.getDecodedCodewordValue(He.sampleBitCounts(t));return-1!==e?e:He.getClosestDecodedValue(t)}static sampleBitCounts(t){let e=et.sum(t),r=new Int32Array(Oe.BARS_IN_MODULE),n=0,i=0;for(let o=0;o1)for(let n=0;n=n)break}enew Array(Oe.BARS_IN_MODULE)));class Ve{constructor(){this.segmentCount=-1,this.fileSize=-1,this.timestamp=-1,this.checksum=-1}getSegmentIndex(){return this.segmentIndex}setSegmentIndex(t){this.segmentIndex=t}getFileId(){return this.fileId}setFileId(t){this.fileId=t}getOptionalData(){return this.optionalData}setOptionalData(t){this.optionalData=t}isLastSegment(){return this.lastSegment}setLastSegment(t){this.lastSegment=t}getSegmentCount(){return this.segmentCount}setSegmentCount(t){this.segmentCount=t}getSender(){return this.sender||null}setSender(t){this.sender=t}getAddressee(){return this.addressee||null}setAddressee(t){this.addressee=t}getFileName(){return this.fileName}setFileName(t){this.fileName=t}getFileSize(){return this.fileSize}setFileSize(t){this.fileSize=t}getChecksum(){return this.checksum}setChecksum(t){this.checksum=t}getTimestamp(){return this.timestamp}setTimestamp(t){this.timestamp=t}}class je{static parseLong(t,e){return parseInt(t,e)}}class Xe extends o{}Xe.kind="NullPointerException";class ze extends o{}class Je extends class{writeBytes(t){this.writeBytesOffset(t,0,t.length)}writeBytesOffset(t,e,r){if(null==t)throw new Xe;if(e<0||e>t.length||r<0||e+r>t.length||e+r<0)throw new g;if(0!==r)for(let n=0;n0&&this.grow(t)}grow(t){let e=this.buf.length<<1;if(e-t<0&&(e=t),e<0){if(t<0)throw new ze;e=C.MAX_VALUE}this.buf=u.copyOfUint8Array(this.buf,e)}write(t){this.ensureCapacity(this.count+1),this.buf[this.count]=t,this.count+=1}writeBytesOffset(t,e,r){if(e<0||e>t.length||r<0||e+r-t.length>0)throw new g;this.ensureCapacity(this.count+r),h.arraycopy(t,e,this.buf,this.count,r),this.count+=r}writeTo(t){t.writeBytesOffset(this.buf,0,this.count)}reset(){this.count=0}toByteArray(){return u.copyOfUint8Array(this.buf,this.count)}size(){return this.count}toString(t){return t?"string"==typeof t?this.toString_string(t):this.toString_number(t):this.toString_void()}toString_void(){return new String(this.buf).toString()}toString_string(t){return new String(this.buf).toString()}toString_number(t){return new String(this.buf).toString()}close(){}}function Ke(){if("undefined"!=typeof window)return window.BigInt||null;if(void 0!==r.g)return r.g.BigInt||null;if("undefined"!=typeof self)return self.BigInt||null;throw new Error("Can't search globals for BigInt!")}let qe;function $e(t){if(void 0===qe&&(qe=Ke()),null===qe)throw new Error("BigInt is not supported!");return qe(t)}!function(t){t[t.ALPHA=0]="ALPHA",t[t.LOWER=1]="LOWER",t[t.MIXED=2]="MIXED",t[t.PUNCT=3]="PUNCT",t[t.ALPHA_SHIFT=4]="ALPHA_SHIFT",t[t.PUNCT_SHIFT=5]="PUNCT_SHIFT"}(W||(W={}));class tr{static decode(t,e){let r=new D(""),n=m.ISO8859_1;r.enableDecoding(n);let i=1,o=t[i++],s=new Ve;for(;it[0])throw E.getFormatInstance();let n=new Int32Array(tr.NUMBER_OF_SEQUENCE_CODEWORDS);for(let r=0;r0){for(let t=0;t<6;++t)o.write(Number($e(a)>>$e(8*(5-t))));a=0,s=0}}n===e[0]&&r0){for(let t=0;t<6;++t)o.write(Number($e(a)>>$e(8*(5-t))));a=0,s=0}}}return i.append(S.decode(o.toByteArray(),r)),n}static numericCompaction(t,e,r){let n=0,i=!1,o=new Int32Array(tr.MAX_NUMERIC_CODEWORDS);for(;e0&&(r.append(tr.decodeBase900toBase10(o,n)),n=0)}return e}static decodeBase900toBase10(t,e){let r=$e(0);for(let n=0;n@[\\]_`~!\r\t,:\n-.$/\"|*()?{}'",tr.MIXED_CHARS="0123456789&\r\t,:#-.$/+%*=^",tr.EXP900=Ke()?function(){let t=[];t[0]=$e(1);let e=$e(900);t[1]=e;for(let r=2;r<16;r++)t[r]=t[r-1]*e;return t}():[],tr.NUMBER_OF_SEQUENCE_CODEWORDS=2;class er{constructor(){}static decode(t,e,r,n,i,o,s){let a,A=new Ge(t,e,r,n,i),l=null,c=null;for(let r=!0;;r=!1){if(null!=e&&(l=er.getRowIndicatorColumn(t,A,e,!0,o,s)),null!=n&&(c=er.getRowIndicatorColumn(t,A,n,!1,o,s)),a=er.merge(l,c),null==a)throw M.getNotFoundInstance();let i=a.getBoundingBox();if(!r||null==i||!(i.getMinY()A.getMaxY()))break;A=i}a.setBoundingBox(A);let h=a.getBarcodeColumnCount()+1;a.setDetectionResultColumn(0,l),a.setDetectionResultColumn(h,c);let g=null!=l;for(let e=1;e<=h;e++){let r,n=g?e:h-e;if(void 0!==a.getDetectionResultColumn(n))continue;r=0===n||n===h?new ve(A,0===n):new Ue(A),a.setDetectionResultColumn(n,r);let i=-1,l=i;for(let e=A.getMinY();e<=A.getMaxY();e++){if(i=er.getStartColumn(a,n,e,g),i<0||i>A.getMaxX()){if(-1===l)continue;i=l}let c=er.detectCodeword(t,A.getMinX(),A.getMaxX(),g,i,e,o,s);null!=c&&(r.setCodeword(e,c),l=i,o=Math.min(o,c.getWidth()),s=Math.max(s,c.getWidth()))}}return er.createDecoderResult(a)}static merge(t,e){if(null==t&&null==e)return null;let r=er.getBarcodeMetadata(t,e);if(null==r)return null;let n=Ge.merge(er.adjustBoundingBox(t),er.adjustBoundingBox(e));return new xe(r,n)}static adjustBoundingBox(t){if(null==t)return null;let e=t.getRowHeights();if(null==e)return null;let r=er.getMax(e),n=0;for(let t of e)if(n+=r-t,t>0)break;let i=t.getCodewords();for(let t=0;n>0&&null==i[t];t++)n--;let o=0;for(let t=e.length-1;t>=0&&(o+=r-e[t],!(e[t]>0));t--);for(let t=i.length-1;o>0&&null==i[t];t--)o--;return t.getBoundingBox().addMissingRows(n,o,t.isLeft())}static getMax(t){let e=-1;for(let r of t)e=Math.max(e,r);return e}static getBarcodeMetadata(t,e){let r,n;return null==t||null==(r=t.getBarcodeMetadata())?null==e?null:e.getBarcodeMetadata():null==e||null==(n=e.getBarcodeMetadata())?r:r.getColumnCount()!==n.getColumnCount()&&r.getErrorCorrectionLevel()!==n.getErrorCorrectionLevel()&&r.getRowCount()!==n.getRowCount()?null:r}static getRowIndicatorColumn(t,e,r,n,i,o){let s=new ve(e,n);for(let a=0;a<2;a++){let A=0===a?1:-1,l=Math.trunc(Math.trunc(r.getX()));for(let a=Math.trunc(Math.trunc(r.getY()));a<=e.getMaxY()&&a>=e.getMinY();a+=A){let e=er.detectCodeword(t,0,t.getWidth(),n,l,a,i,o);null!=e&&(s.setCodeword(a,e),l=n?e.getStartX():e.getEndX())}}return s}static adjustCodewordCount(t,e){let r=e[0][1],n=r.getValue(),i=t.getBarcodeColumnCount()*t.getBarcodeRowCount()-er.getNumberOfECCodeWords(t.getBarcodeECLevel());if(0===n.length){if(i<1||i>Oe.MAX_CODEWORDS_IN_BARCODE)throw M.getNotFoundInstance();r.setValue(i)}else n[0]!==i&&r.setValue(i)}static createDecoderResult(t){let e=er.createBarcodeMatrix(t);er.adjustCodewordCount(t,e);let r=new Array,n=new Int32Array(t.getBarcodeRowCount()*t.getBarcodeColumnCount()),i=[],o=new Array;for(let s=0;s0;){for(let t=0;tnew Array(t.getBarcodeColumnCount()+2)));for(let t=0;t=0){if(n>=e.length)continue;e[n][r].setValue(t.getValue())}}r++}return e}static isValidBarcodeColumn(t,e){return e>=0&&e<=t.getBarcodeColumnCount()+1}static getStartColumn(t,e,r,n){let i=n?1:-1,o=null;if(er.isValidBarcodeColumn(t,e-i)&&(o=t.getDetectionResultColumn(e-i).getCodeword(r)),null!=o)return n?o.getEndX():o.getStartX();if(o=t.getDetectionResultColumn(e).getCodewordNearby(r),null!=o)return n?o.getStartX():o.getEndX();if(er.isValidBarcodeColumn(t,e-i)&&(o=t.getDetectionResultColumn(e-i).getCodewordNearby(r)),null!=o)return n?o.getEndX():o.getStartX();let s=0;for(;er.isValidBarcodeColumn(t,e-i);){e-=i;for(let r of t.getDetectionResultColumn(e).getCodewords())if(null!=r)return(n?r.getEndX():r.getStartX())+i*s*(r.getEndX()-r.getStartX());s++}return n?t.getBoundingBox().getMinX():t.getBoundingBox().getMaxX()}static detectCodeword(t,e,r,n,i,o,s,a){i=er.adjustCodewordStartColumn(t,e,r,n,i,o);let A,l=er.getModuleBitCount(t,e,r,n,i,o);if(null==l)return null;let c=et.sum(l);if(n)A=i+c;else{for(let t=0;t=e)&&A=e:ser.CODEWORD_SKEW_SIZE)return i;s+=a}a=-a,n=!n}return s}static checkCodewordSkew(t,e,r){return e-er.CODEWORD_SKEW_SIZE<=t&&t<=r+er.CODEWORD_SKEW_SIZE}static decodeCodewords(t,e,r){if(0===t.length)throw E.getFormatInstance();let n=1<r/2+er.MAX_ERRORS||r<0||r>er.MAX_EC_CODEWORDS)throw l.getChecksumInstance();return er.errorCorrection.decode(t,r,e)}static verifyCodewordCount(t,e){if(t.length<4)throw E.getFormatInstance();let r=t[0];if(r>t.length)throw E.getFormatInstance();if(0===r){if(!(e>=1;return e}static getCodewordBucketNumber(t){return t instanceof Int32Array?this.getCodewordBucketNumber_Int32Array(t):this.getCodewordBucketNumber_number(t)}static getCodewordBucketNumber_number(t){return er.getCodewordBucketNumber(er.getBitCountForCodeword(t))}static getCodewordBucketNumber_Int32Array(t){return(t[0]-t[2]+t[4]-t[6]+9)%9}static toString(t){let e=new Ze;for(let r=0;rt))}static getMaxWidth(t,e){return null==t||null==e?0:Math.trunc(Math.abs(t.getX()-e.getX()))}static getMinWidth(t,e){return null==t||null==e?C.MAX_VALUE:Math.trunc(Math.abs(t.getX()-e.getX()))}static getMaxCodewordWidth(t){return Math.floor(Math.max(Math.max(rr.getMaxWidth(t[0],t[4]),rr.getMaxWidth(t[6],t[2])*Oe.MODULES_IN_CODEWORD/Oe.MODULES_IN_STOP_PATTERN),Math.max(rr.getMaxWidth(t[1],t[5]),rr.getMaxWidth(t[7],t[3])*Oe.MODULES_IN_CODEWORD/Oe.MODULES_IN_STOP_PATTERN)))}static getMinCodewordWidth(t){return Math.floor(Math.min(Math.min(rr.getMinWidth(t[0],t[4]),rr.getMinWidth(t[6],t[2])*Oe.MODULES_IN_CODEWORD/Oe.MODULES_IN_STOP_PATTERN),Math.min(rr.getMinWidth(t[1],t[5]),rr.getMinWidth(t[7],t[3])*Oe.MODULES_IN_CODEWORD/Oe.MODULES_IN_STOP_PATTERN)))}reset(){}}class nr extends o{}nr.kind="ReaderException";class ir{constructor(t,e){this.verbose=!0===t,e&&this.setHints(e)}decode(t,e){return e&&this.setHints(e),this.decodeInternal(t)}decodeWithState(t){return null!==this.readers&&void 0!==this.readers||this.setHints(null),this.decodeInternal(t)}setHints(t){this.hints=t;const e=null!=t&&void 0!==t.get(w.TRY_HARDER),r=null==t?null:t.get(w.POSSIBLE_FORMATS),n=new Array;if(null!=r){const i=r.some((t=>t===Q.UPC_A||t===Q.UPC_E||t===Q.EAN_13||t===Q.EAN_8||t===Q.CODABAR||t===Q.CODE_39||t===Q.CODE_93||t===Q.CODE_128||t===Q.ITF||t===Q.RSS_14||t===Q.RSS_EXPANDED));i&&!e&&n.push(new ee(t,this.verbose)),r.includes(Q.QR_CODE)&&n.push(new _e),r.includes(Q.DATA_MATRIX)&&n.push(new he),r.includes(Q.AZTEC)&&n.push(new dt),r.includes(Q.PDF_417)&&n.push(new rr),i&&e&&n.push(new ee(t,this.verbose))}0===n.length&&(e||n.push(new ee(t,this.verbose)),n.push(new _e),n.push(new he),n.push(new dt),n.push(new rr),e&&n.push(new ee(t,this.verbose))),this.readers=n}reset(){if(null!==this.readers)for(const t of this.readers)t.reset()}decodeInternal(t){if(null===this.readers)throw new nr("No readers where selected, nothing can be read.");for(const e of this.readers)try{return e.decode(t,this.hints)}catch(t){if(t instanceof nr)continue}throw new M("No MultiFormat Readers were able to detect the code.")}}var or;!function(t){t[t.ERROR_CORRECTION=0]="ERROR_CORRECTION",t[t.CHARACTER_SET=1]="CHARACTER_SET",t[t.DATA_MATRIX_SHAPE=2]="DATA_MATRIX_SHAPE",t[t.MIN_SIZE=3]="MIN_SIZE",t[t.MAX_SIZE=4]="MAX_SIZE",t[t.MARGIN=5]="MARGIN",t[t.PDF417_COMPACT=6]="PDF417_COMPACT",t[t.PDF417_COMPACTION=7]="PDF417_COMPACTION",t[t.PDF417_DIMENSIONS=8]="PDF417_DIMENSIONS",t[t.AZTEC_LAYERS=9]="AZTEC_LAYERS",t[t.QR_VERSION=10]="QR_VERSION"}(or||(or={}));var sr=or;class ar{constructor(t){this.field=t,this.cachedGenerators=[],this.cachedGenerators.push(new X(t,Int32Array.from([1])))}buildGenerator(t){const e=this.cachedGenerators;if(t>=e.length){let r=e[e.length-1];const n=this.field;for(let i=e.length;i<=t;i++){const t=r.multiply(new X(n,Int32Array.from([1,n.exp(i-1+n.getGeneratorBase())])));e.push(t),r=t}}return e[t]}encode(t,e){if(0===e)throw new a("No error correction bytes");const r=t.length-e;if(r<=0)throw new a("No data bytes provided");const n=this.buildGenerator(e),i=new Int32Array(r);h.arraycopy(t,0,i,0,r);let o=new X(this.field,i);o=o.multiplyByMonomial(e,1);const s=o.divide(n)[1].getCoefficients(),A=e-s.length;for(let e=0;e=5&&(r+=Ar.N1+(n-5)),n=1,s=i)}n>=5&&(r+=Ar.N1+(n-5))}return r}}Ar.N1=3,Ar.N2=3,Ar.N3=40,Ar.N4=10;class lr{constructor(t,e){this.width=t,this.height=e;const r=new Array(e);for(let n=0;n!==e;n++)r[n]=new Uint8Array(t);this.bytes=r}getHeight(){return this.height}getWidth(){return this.width}get(t,e){return this.bytes[e][t]}getArray(){return this.bytes}setNumber(t,e,r){this.bytes[e][t]=r}setBoolean(t,e,r){this.bytes[e][t]=r?1:0}clear(t){for(const e of this.bytes)u.fill(e,t)}equals(t){if(!(t instanceof lr))return!1;const e=t;if(this.width!==e.width)return!1;if(this.height!==e.height)return!1;for(let t=0,r=this.height;t>\n"),t.toString()}setMode(t){this.mode=t}setECLevel(t){this.ecLevel=t}setVersion(t){this.version=t}setMaskPattern(t){this.maskPattern=t}setMatrix(t){this.matrix=t}static isValidMaskPattern(t){return t>=0&&t0;){for(6===o&&(o-=1);s>=0&&s=r;)t^=e<=0)for(let t=0;t!==r;t++){const r=n[t];r>=0&&gr.isEmpty(e.get(r,i))&&gr.embedPositionAdjustmentPattern(r-2,i-2,e)}}}}gr.POSITION_DETECTION_PATTERN=Array.from([Int32Array.from([1,1,1,1,1,1,1]),Int32Array.from([1,0,0,0,0,0,1]),Int32Array.from([1,0,1,1,1,0,1]),Int32Array.from([1,0,1,1,1,0,1]),Int32Array.from([1,0,1,1,1,0,1]),Int32Array.from([1,0,0,0,0,0,1]),Int32Array.from([1,1,1,1,1,1,1])]),gr.POSITION_ADJUSTMENT_PATTERN=Array.from([Int32Array.from([1,1,1,1,1]),Int32Array.from([1,0,0,0,1]),Int32Array.from([1,0,1,0,1]),Int32Array.from([1,0,0,0,1]),Int32Array.from([1,1,1,1,1])]),gr.POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE=Array.from([Int32Array.from([-1,-1,-1,-1,-1,-1,-1]),Int32Array.from([6,18,-1,-1,-1,-1,-1]),Int32Array.from([6,22,-1,-1,-1,-1,-1]),Int32Array.from([6,26,-1,-1,-1,-1,-1]),Int32Array.from([6,30,-1,-1,-1,-1,-1]),Int32Array.from([6,34,-1,-1,-1,-1,-1]),Int32Array.from([6,22,38,-1,-1,-1,-1]),Int32Array.from([6,24,42,-1,-1,-1,-1]),Int32Array.from([6,26,46,-1,-1,-1,-1]),Int32Array.from([6,28,50,-1,-1,-1,-1]),Int32Array.from([6,30,54,-1,-1,-1,-1]),Int32Array.from([6,32,58,-1,-1,-1,-1]),Int32Array.from([6,34,62,-1,-1,-1,-1]),Int32Array.from([6,26,46,66,-1,-1,-1]),Int32Array.from([6,26,48,70,-1,-1,-1]),Int32Array.from([6,26,50,74,-1,-1,-1]),Int32Array.from([6,30,54,78,-1,-1,-1]),Int32Array.from([6,30,56,82,-1,-1,-1]),Int32Array.from([6,30,58,86,-1,-1,-1]),Int32Array.from([6,34,62,90,-1,-1,-1]),Int32Array.from([6,28,50,72,94,-1,-1]),Int32Array.from([6,26,50,74,98,-1,-1]),Int32Array.from([6,30,54,78,102,-1,-1]),Int32Array.from([6,28,54,80,106,-1,-1]),Int32Array.from([6,32,58,84,110,-1,-1]),Int32Array.from([6,30,58,86,114,-1,-1]),Int32Array.from([6,34,62,90,118,-1,-1]),Int32Array.from([6,26,50,74,98,122,-1]),Int32Array.from([6,30,54,78,102,126,-1]),Int32Array.from([6,26,52,78,104,130,-1]),Int32Array.from([6,30,56,82,108,134,-1]),Int32Array.from([6,34,60,86,112,138,-1]),Int32Array.from([6,30,58,86,114,142,-1]),Int32Array.from([6,34,62,90,118,146,-1]),Int32Array.from([6,30,54,78,102,126,150]),Int32Array.from([6,24,50,76,102,128,154]),Int32Array.from([6,28,54,80,106,132,158]),Int32Array.from([6,32,58,84,110,136,162]),Int32Array.from([6,26,54,82,110,138,166]),Int32Array.from([6,30,58,86,114,142,170])]),gr.TYPE_INFO_COORDINATES=Array.from([Int32Array.from([8,0]),Int32Array.from([8,1]),Int32Array.from([8,2]),Int32Array.from([8,3]),Int32Array.from([8,4]),Int32Array.from([8,5]),Int32Array.from([8,7]),Int32Array.from([8,8]),Int32Array.from([7,8]),Int32Array.from([5,8]),Int32Array.from([4,8]),Int32Array.from([3,8]),Int32Array.from([2,8]),Int32Array.from([1,8]),Int32Array.from([0,8])]),gr.VERSION_INFO_POLY=7973,gr.TYPE_INFO_POLY=1335,gr.TYPE_INFO_MASK_PATTERN=21522;class dr{constructor(t,e){this.dataBytes=t,this.errorCorrectionBytes=e}getDataBytes(){return this.dataBytes}getErrorCorrectionBytes(){return this.errorCorrectionBytes}}class ur{constructor(){}static calculateMaskPenalty(t){return Ar.applyMaskPenaltyRule1(t)+Ar.applyMaskPenaltyRule2(t)+Ar.applyMaskPenaltyRule3(t)+Ar.applyMaskPenaltyRule4(t)}static encode(t,e,r=null){let n=ur.DEFAULT_BYTE_MODE_ENCODING;const i=null!==r&&void 0!==r.get(sr.CHARACTER_SET);i&&(n=r.get(sr.CHARACTER_SET).toString());const o=this.chooseMode(t,n),s=new I;if(o===me.BYTE&&(i||ur.DEFAULT_BYTE_MODE_ENCODING!==n)){const t=m.getCharacterSetECIByName(n);void 0!==t&&this.appendECI(t,s)}this.appendModeInfo(o,s);const a=new I;let A;if(this.appendBytes(t,o,a,n),null!==r&&void 0!==r.get(sr.QR_VERSION)){const t=Number.parseInt(r.get(sr.QR_VERSION).toString(),10);A=Ie.getVersionForNumber(t);const n=this.calculateBitsNeeded(o,s,a,A);if(!this.willFit(n,A,e))throw new hr("Data too big for requested version")}else A=this.recommendVersion(e,o,s,a);const l=new I;l.appendBitArray(s);const c=o===me.BYTE?a.getSizeInBytes():t.length;this.appendLengthInfo(c,A,o,l),l.appendBitArray(a);const h=A.getECBlocksForLevel(e),g=A.getTotalCodewords()-h.getTotalECCodewords();this.terminateBits(g,l);const d=this.interleaveWithECBytes(l,A.getTotalCodewords(),g,h.getNumBlocks()),u=new cr;u.setECLevel(e),u.setMode(o),u.setVersion(A);const C=A.getDimensionForVersion(),f=new lr(C,C),w=this.chooseMaskPattern(d,e,A,f);return u.setMaskPattern(w),gr.buildMatrix(d,e,A,w,f),u.setMatrix(f),u}static recommendVersion(t,e,r,n){const i=this.calculateBitsNeeded(e,r,n,Ie.getVersionForNumber(1)),o=this.chooseVersion(i,t),s=this.calculateBitsNeeded(e,r,n,o);return this.chooseVersion(s,t)}static calculateBitsNeeded(t,e,r,n){return e.getSize()+t.getCharacterCountBits(n)+r.getSize()}static getAlphanumericCode(t){return t159)&&(r<224||r>235))return!1}return!0}static chooseMaskPattern(t,e,r,n){let i=Number.MAX_SAFE_INTEGER,o=-1;for(let s=0;s=(t+7)/8}static terminateBits(t,e){const r=8*t;if(e.getSize()>r)throw new hr("data bits cannot fit in the QR Code"+e.getSize()+" > "+r);for(let t=0;t<4&&e.getSize()0)for(let t=n;t<8;t++)e.appendBit(!1);const i=t-e.getSizeInBytes();for(let t=0;t=r)throw new hr("Block ID too large");const s=t%r,a=r-s,A=Math.floor(t/r),l=A+1,c=Math.floor(e/r),h=c+1,g=A-c,d=l-h;if(g!==d)throw new hr("EC bytes mismatch");if(r!==a+s)throw new hr("RS blocks mismatch");if(t!==(c+g)*a+(h+d)*s)throw new hr("Total bytes mismatch");n=1<=0&&e<=9}static appendNumericBytes(t,e){const r=t.length;let n=0;for(;n=33088&&n<=40956?i=n-33088:n>=57408&&n<=60351&&(i=n-49472),-1===i)throw new hr("Invalid byte sequence");const o=192*(i>>8)+(255&i);e.appendBits(o,13)}}static appendECI(t,e){e.appendBits(me.ECI.getBits(),4),e.appendBits(t.getValue(),8)}}ur.ALPHANUMERIC_TABLE=Int32Array.from([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,37,38,-1,-1,-1,-1,39,40,-1,41,42,43,0,1,2,3,4,5,6,7,8,9,44,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,-1,-1,-1,-1,-1]),ur.DEFAULT_BYTE_MODE_ENCODING=m.UTF8.getName();class Cr{write(t,e,r,n=null){if(0===t.length)throw new a("Found empty contents");if(e<0||r<0)throw new a("Requested dimensions are too small: "+e+"x"+r);let i=ge.L,o=Cr.QUIET_ZONE_SIZE;null!==n&&(void 0!==n.get(sr.ERROR_CORRECTION)&&(i=ge.fromString(n.get(sr.ERROR_CORRECTION).toString())),void 0!==n.get(sr.MARGIN)&&(o=Number.parseInt(n.get(sr.MARGIN).toString(),10)));const s=ur.encode(t,i,n);return this.renderResult(s,e,r,o)}writeToDom(t,e,r,n,i=null){"string"==typeof t&&(t=document.querySelector(t));const o=this.write(e,r,n,i);t&&t.appendChild(o)}renderResult(t,e,r,n){const i=t.getMatrix();if(null===i)throw new q;const o=i.getWidth(),s=i.getHeight(),a=o+2*n,A=s+2*n,l=Math.max(e,a),c=Math.max(r,A),h=Math.min(Math.floor(l/a),Math.floor(c/A)),g=Math.floor((l-o*h)/2),d=Math.floor((c-s*h)/2),u=this.createSVGElement(l,c);for(let t=0,e=d;te||i+s>r)throw new a("Crop rectangle does not fit within image data.");A&&this.reverseHorizontal(o,s)}getRow(t,e){if(t<0||t>=this.getHeight())throw new a("Requested row is outside the image: "+t);const r=this.getWidth();(null==e||e.length>16&255,o=r>>7&510,s=255&r;i[e]=(n+o+s)/4&255}this.luminances=i}else this.luminances=t;if(void 0===n&&(this.dataWidth=e),void 0===i&&(this.dataHeight=r),void 0===o&&(this.left=0),void 0===s&&(this.top=0),this.left+e>this.dataWidth||this.top+r>this.dataHeight)throw new a("Crop rectangle does not fit within image data.")}getRow(t,e){if(t<0||t>=this.getHeight())throw new a("Requested row is outside the image: "+t);const r=this.getWidth();(null==e||e.length"}}class Dr extends Rr{constructor(t,e,r){super(t,0,0),this.binaryShiftStart=e,this.binaryShiftByteCount=r}appendTo(t,e){for(let r=0;r62?t.appendBits(this.binaryShiftByteCount-31,16):0===r?t.appendBits(Math.min(this.binaryShiftByteCount,31),5):t.appendBits(this.binaryShiftByteCount-31,5)),t.appendBits(e[this.binaryShiftStart+r],8)}addBinaryShift(t,e){return new Dr(this,t,e)}toString(){return"<"+this.binaryShiftStart+"::"+(this.binaryShiftStart+this.binaryShiftByteCount-1)+">"}}function Br(t,e,r){return new Rr(t,e,r)}const Mr=["UPPER","LOWER","DIGIT","MIXED","PUNCT"],Tr=new Rr(null,0,0),Nr=[Int32Array.from([0,327708,327710,327709,656318]),Int32Array.from([590318,0,327710,327709,656318]),Int32Array.from([262158,590300,0,590301,932798]),Int32Array.from([327709,327708,656318,0,327710]),Int32Array.from([327711,656380,656382,656381,0])];const yr=function(t){for(let e of t)u.fill(e,-1);return t[0][4]=0,t[1][4]=0,t[1][0]=28,t[3][4]=0,t[2][4]=0,t[2][0]=15,t}(u.createInt32Array(6,6));class _r{constructor(t,e,r,n){this.token=t,this.mode=e,this.binaryShiftByteCount=r,this.bitCount=n}getMode(){return this.mode}getToken(){return this.token}getBinaryShiftByteCount(){return this.binaryShiftByteCount}getBitCount(){return this.bitCount}latchAndAppend(t,e){let r=this.bitCount,n=this.token;if(t!==this.mode){let e=Nr[this.mode][t];n=Br(n,65535&e,e>>16),r+=e>>16}let i=2===t?4:5;return n=Br(n,e,i),new _r(n,t,0,r+i)}shiftAndAppend(t,e){let r=this.token,n=2===this.mode?4:5;return r=Br(r,yr[this.mode][t],n),r=Br(r,e,5),new _r(r,this.mode,0,this.bitCount+n+5)}addBinaryShiftChar(t){let e=this.token,r=this.mode,n=this.bitCount;if(4===this.mode||2===this.mode){let t=Nr[r][0];e=Br(e,65535&t,t>>16),n+=t>>16,r=0}let i=0===this.binaryShiftByteCount||31===this.binaryShiftByteCount?18:62===this.binaryShiftByteCount?9:8,o=new _r(e,r,this.binaryShiftByteCount+1,n+i);return 2078===o.binaryShiftByteCount&&(o=o.endBinaryShift(t+1)),o}endBinaryShift(t){if(0===this.binaryShiftByteCount)return this;let e=this.token;return e=function(t,e,r){return new Dr(t,e,r)}(e,t-this.binaryShiftByteCount,this.binaryShiftByteCount),new _r(e,this.mode,0,this.bitCount)}isBetterThanOrEqualTo(t){let e=this.bitCount+(Nr[this.mode][t.mode]>>16);return this.binaryShiftByteCountt.binaryShiftByteCount&&t.binaryShiftByteCount>0&&(e+=10),e<=t.bitCount}toBitArray(t){let e=[];for(let r=this.endBinaryShift(t.length).token;null!==r;r=r.getPrevious())e.unshift(r);let r=new I;for(const n of e)n.appendTo(r,t);return r}toString(){return R.format("%s bits=%d bytes=%d",Mr[this.mode],this.bitCount,this.binaryShiftByteCount)}static calculateBinaryShiftCost(t){return t.binaryShiftByteCount>62?21:t.binaryShiftByteCount>31?20:t.binaryShiftByteCount>0?10:0}}_r.INITIAL_STATE=new _r(Tr,0,0,0);const Or=function(t){const e=R.getCharCode(" "),r=R.getCharCode("."),n=R.getCharCode(",");t[0][e]=1;const i=R.getCharCode("Z"),o=R.getCharCode("A");for(let e=o;e<=i;e++)t[0][e]=e-o+2;t[1][e]=1;const s=R.getCharCode("z"),a=R.getCharCode("a");for(let e=a;e<=s;e++)t[1][e]=e-a+2;t[2][e]=1;const A=R.getCharCode("9"),l=R.getCharCode("0");for(let e=l;e<=A;e++)t[2][e]=e-l+2;t[2][n]=12,t[2][r]=13;const c=["\0"," ","","","","","","","","\b","\t","\n","\v","\f","\r","","","","","","@","\\","^","_","`","|","~",""];for(let e=0;e","?","[","]","{","}"];for(let e=0;e0&&(t[4][R.getCharCode(h[e])]=e);return t}(u.createInt32Array(5,256));class br{constructor(t){this.text=t}encode(){const t=R.getCharCode(" "),e=R.getCharCode("\n");let r=Sr.singletonList(_r.INITIAL_STATE);for(let n=0;n0?(r=br.updateStateListForPair(r,n,i),n++):r=this.updateStateListForChar(r,n)}return Sr.min(r,((t,e)=>t.getBitCount()-e.getBitCount())).toBitArray(this.text)}updateStateListForChar(t,e){const r=[];for(let n of t)this.updateStateForChar(n,e,r);return br.simplifyStates(r)}updateStateForChar(t,e,r){let n=255&this.text[e],i=Or[t.getMode()][n]>0,o=null;for(let s=0;s<=4;s++){let a=Or[s][n];if(a>0){if(null==o&&(o=t.endBinaryShift(e)),!i||s===t.getMode()||2===s){const t=o.latchAndAppend(s,a);r.push(t)}if(!i&&yr[t.getMode()][s]>=0){const t=o.shiftAndAppend(s,a);r.push(t)}}}if(t.getBinaryShiftByteCount()>0||0===Or[t.getMode()][n]){let n=t.addBinaryShiftChar(e);r.push(n)}}static updateStateListForPair(t,e,r){const n=[];for(let i of t)this.updateStateForPair(i,e,r,n);return this.simplifyStates(n)}static updateStateForPair(t,e,r,n){let i=t.endBinaryShift(e);if(n.push(i.latchAndAppend(4,r)),4!==t.getMode()&&n.push(i.shiftAndAppend(4,r)),3===r||4===r){let t=i.latchAndAppend(2,16-r).latchAndAppend(2,1);n.push(t)}if(t.getBinaryShiftByteCount()>0){let r=t.addBinaryShiftChar(e).addBinaryShiftChar(e+1);n.push(r)}}static simplifyStates(t){let e=[];for(const r of t){let t=!0;for(const n of e){if(n.isBetterThanOrEqualTo(r)){t=!1;break}r.isBetterThanOrEqualTo(n)&&(e=e.filter((t=>t!==n)))}t&&e.push(r)}return e}}class Fr{constructor(){}static encodeBytes(t){return Fr.encode(t,Fr.DEFAULT_EC_PERCENT,Fr.DEFAULT_AZTEC_LAYERS)}static encode(t,e,r){let n,i,o,s,A,l=new br(t).encode(),c=C.truncDivision(l.getSize()*e,100)+11,h=l.getSize()+c;if(r!==Fr.DEFAULT_AZTEC_LAYERS){if(n=r<0,i=Math.abs(r),i>(n?Fr.MAX_NB_BITS_COMPACT:Fr.MAX_NB_BITS))throw new a(R.format("Illegal value %s for layers",r));o=Fr.totalBitsInLayer(i,n),s=Fr.WORD_SIZE[i];let t=o-o%s;if(A=Fr.stuffBits(l,s),A.getSize()+c>t)throw new a("Data to large for user specified layer");if(n&&A.getSize()>64*s)throw new a("Data to large for user specified layer")}else{s=0,A=null;for(let t=0;;t++){if(t>Fr.MAX_NB_BITS)throw new a("Data too large for an Aztec code");if(n=t<=3,i=n?t+1:t,o=Fr.totalBitsInLayer(i,n),h>o)continue;null!=A&&s===Fr.WORD_SIZE[i]||(s=Fr.WORD_SIZE[i],A=Fr.stuffBits(l,s));let e=o-o%s;if(!(n&&A.getSize()>64*s)&&A.getSize()+c<=e)break}}let g,d=Fr.generateCheckWords(A,o,s),u=A.getSize()/s,I=Fr.generateModeMessage(n,i,u),f=(n?11:14)+4*i,w=new Int32Array(f);if(n){g=f;for(let t=0;t=n||t.get(o+r))&&(s|=1<{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";var t;r.r(n),r.d(n,{Html5Qrcode:()=>b,Html5QrcodeScanner:()=>U,Html5QrcodeScannerState:()=>u,Html5QrcodeSupportedFormats:()=>t}),function(t){t[t.QR_CODE=0]="QR_CODE",t[t.AZTEC=1]="AZTEC",t[t.CODABAR=2]="CODABAR",t[t.CODE_39=3]="CODE_39",t[t.CODE_93=4]="CODE_93",t[t.CODE_128=5]="CODE_128",t[t.DATA_MATRIX=6]="DATA_MATRIX",t[t.MAXICODE=7]="MAXICODE",t[t.ITF=8]="ITF",t[t.EAN_13=9]="EAN_13",t[t.EAN_8=10]="EAN_8",t[t.PDF_417=11]="PDF_417",t[t.RSS_14=12]="RSS_14",t[t.RSS_EXPANDED=13]="RSS_EXPANDED",t[t.UPC_A=14]="UPC_A",t[t.UPC_E=15]="UPC_E",t[t.UPC_EAN_EXTENSION=16]="UPC_EAN_EXTENSION"}(t||(t={}));var e,i,o=new Map([[t.QR_CODE,"QR_CODE"],[t.AZTEC,"AZTEC"],[t.CODABAR,"CODABAR"],[t.CODE_39,"CODE_39"],[t.CODE_93,"CODE_93"],[t.CODE_128,"CODE_128"],[t.DATA_MATRIX,"DATA_MATRIX"],[t.MAXICODE,"MAXICODE"],[t.ITF,"ITF"],[t.EAN_13,"EAN_13"],[t.EAN_8,"EAN_8"],[t.PDF_417,"PDF_417"],[t.RSS_14,"RSS_14"],[t.RSS_EXPANDED,"RSS_EXPANDED"],[t.UPC_A,"UPC_A"],[t.UPC_E,"UPC_E"],[t.UPC_EAN_EXTENSION,"UPC_EAN_EXTENSION"]]);function s(e){return Object.values(t).includes(e)}!function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.URL=1]="URL"}(e||(e={})),function(t){t[t.SCAN_TYPE_CAMERA=0]="SCAN_TYPE_CAMERA",t[t.SCAN_TYPE_FILE=1]="SCAN_TYPE_FILE"}(i||(i={}));var a,A=function(){function t(){}return t.GITHUB_PROJECT_URL="https://github.com/mebjas/html5-qrcode",t.SCAN_DEFAULT_FPS=2,t.DEFAULT_DISABLE_FLIP=!1,t.DEFAULT_REMEMBER_LAST_CAMERA_USED=!0,t}(),l=function(){function t(t,e){this.format=t,this.formatName=e}return t.prototype.toString=function(){return this.formatName},t.create=function(e){if(!o.has(e))throw e+" not in html5QrcodeSupportedFormatsTextMap";return new t(e,o.get(e))},t}(),c=function(){function t(){}return t.createFromText=function(t){return{decodedText:t,result:{text:t}}},t.createFromQrcodeResult=function(t){return{decodedText:t.text,result:t}},t}();!function(t){t[t.UNKWOWN_ERROR=0]="UNKWOWN_ERROR",t[t.IMPLEMENTATION_ERROR=1]="IMPLEMENTATION_ERROR",t[t.NO_CODE_FOUND_ERROR=2]="NO_CODE_FOUND_ERROR"}(a||(a={}));var h=function(){function t(){}return t.createFrom=function(t){return{errorMessage:t,type:a.UNKWOWN_ERROR}},t}(),g=function(){function t(t){this.verbose=t}return t.prototype.log=function(t){this.verbose&&console.log(t)},t.prototype.warn=function(t){this.verbose&&console.warn(t)},t.prototype.logError=function(t,e){(this.verbose||!0===e)&&console.error(t)},t.prototype.logErrors=function(t){if(0===t.length)throw"Logger#logError called without arguments";this.verbose&&console.error(t)},t}();function d(t){return null==t}var u,C=function(){function t(){}return t.codeParseError=function(t){return"QR code parse error, error = "+t},t.errorGettingUserMedia=function(t){return"Error getting userMedia, error = "+t},t.onlyDeviceSupportedError=function(){return"The device doesn't support navigator.mediaDevices , only supported cameraIdOrConfig in this case is deviceId parameter (string)."},t.cameraStreamingNotSupported=function(){return"Camera streaming not supported by the browser."},t.unableToQuerySupportedDevices=function(){return"Unable to query supported devices, unknown error."},t.insecureContextCameraQueryError=function(){return"Camera access is only supported in secure context like https or localhost."},t}(),I=function(){function t(){}return t.scanningStatus=function(){return"Scanning"},t.idleStatus=function(){return"Idle"},t.errorStatus=function(){return"Error"},t.permissionStatus=function(){return"Permission"},t.noCameraFoundErrorStatus=function(){return"No Cameras"},t.lastMatch=function(t){return"Last Match: "+t},t.codeScannerTitle=function(){return"Code Scanner"},t.cameraPermissionTitle=function(){return"Request Camera Permissions"},t.cameraPermissionRequesting=function(){return"Requesting camera permissions..."},t.noCameraFound=function(){return"No camera found"},t.scanButtonStopScanningText=function(){return"Stop Scanning"},t.scanButtonStartScanningText=function(){return"Start Scanning"},t.scanButtonScanningStarting=function(){return"Launching Camera..."},t.textIfCameraScanSelected=function(){return"Scan an Image File"},t.textIfFileScanSelected=function(){return"Scan using camera directly"},t.selectCamera=function(){return"Select Camera"},t}(),f=function(){function t(){}return t.builtUsing=function(){return"Built using "},t.reportIssues=function(){return"Report issues"},t}(),w=function(){function t(){}return t.isMediaStreamConstraintsValid=function(t,e){if("object"!=typeof t){var r=typeof t;return e.logError("videoConstraints should be of type object, the object passed is of type "+r+".",!0),!1}for(var n=new Set(["autoGainControl","channelCount","echoCancellation","latency","noiseSuppression","sampleRate","sampleSize","volume"]),i=0,o=Object.keys(t);i0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]r&&(r=s,e=o)}if(!e)throw"No largest barcode found";return e},e.prototype.createBarcodeDetectorFormats=function(t){for(var e=[],r=0,n=t;r=o&&i()}))}))},e.prototype.scanFile=function(t,e){return this.scanFileV2(t,e).then((function(t){return t.decodedText}))},e.prototype.scanFileV2=function(t,e){var r=this;if(!(t&&t instanceof File))throw"imageFile argument is mandatory and should be instance of File. Use 'event.target.files[0]'.";if(d(e)&&(e=!0),!this.stateManagerProxy.canScanFile())throw"Cannot start file scan - ongoing camera scan";return new Promise((function(n,i){r.possiblyCloseLastScanImageFile(),r.clearElement(),r.lastScanImageFile=URL.createObjectURL(t);var o=new Image;o.onload=function(){var t=o.width,s=o.height,a=document.getElementById(r.elementId),A=a.clientWidth?a.clientWidth:_.DEFAULT_WIDTH,l=Math.max(a.clientHeight?a.clientHeight:s,_.FILE_SCAN_MIN_HEIGHT),h=r.computeCanvasDrawConfig(t,s,A,l);if(e){var g=r.createCanvasElement(A,l,"qr-canvas-visible");g.style.display="inline-block",a.appendChild(g);var d=g.getContext("2d");if(!d)throw"Unable to get 2d context from canvas";d.canvas.width=A,d.canvas.height=l,d.drawImage(o,0,0,t,s,h.x,h.y,h.width,h.height)}var u=r.createCanvasElement(h.width,h.height);a.appendChild(u);var C=u.getContext("2d");if(!C)throw"Unable to get 2d context from canvas";C.canvas.width=h.width,C.canvas.height=h.height,C.drawImage(o,0,0,t,s,0,0,h.width,h.height);try{r.qrcode.decodeAsync(u).then((function(t){n(c.createFromQrcodeResult(t))})).catch(i)}catch(t){i("QR code parse error, error = "+t)}},o.onerror=i,o.onabort=i,o.onstalled=i,o.onsuspend=i,o.src=URL.createObjectURL(t)}))},e.prototype.clear=function(){this.clearElement()},e.getCameras=function(){if(navigator.mediaDevices)return e.getCamerasFromMediaDevices();var t=MediaStreamTrack;if(MediaStreamTrack&&t.getSources)return e.getCamerasFromMediaStreamTrack();var r=C.unableToQuerySupportedDevices();return function(){if("https:"===location.protocol)return!0;var t=location.host.split(":")[0];return"127.0.0.1"===t||"localhost"===t}()||(r=C.insecureContextCameraQueryError()),Promise.reject(r)},e.prototype.getRunningTrackCapabilities=function(){if(null==this.localMediaStream)throw"Scanning is not in running state, call this API only when QR code scanning using camera is in running state.";if(0===this.localMediaStream.getVideoTracks().length)throw"No video tracks found";return this.localMediaStream.getVideoTracks()[0].getCapabilities()},e.prototype.applyVideoConstraints=function(t){var e=this;if(!t)throw"videoConstaints is required argument.";if(!w.isMediaStreamConstraintsValid(t,this.logger))throw"invalid videoConstaints passed, check logs for more details";if(null===this.localMediaStream)throw"Scanning is not in running state, call this API only when QR code scanning using camera is in running state.";if(0===this.localMediaStream.getVideoTracks().length)throw"No video tracks found";return new Promise((function(r,n){"aspectRatio"in t?n("Chaning 'aspectRatio' in run-time is not yet supported."):e.localMediaStream.getVideoTracks()[0].applyConstraints(t).then((function(t){r(t)})).catch((function(t){n(t)}))}))},e.getCamerasFromMediaDevices=function(){return new Promise((function(t,e){navigator.mediaDevices.getUserMedia({audio:!1,video:!0}).then((function(r){navigator.mediaDevices.enumerateDevices().then((function(e){for(var n=[],i=0,o=e;ie)throw"'config.qrbox' dimensions values should not be greater than the width of the HTML element."}(n.width)},e.prototype.validateQrboxConfig=function(t){if("number"!=typeof t&&(void 0===t.width||void 0===t.height))throw"Invalid instance of QrDimensions passed for 'config.qrbox'."},e.prototype.toQrdimensions=function(t){return"number"==typeof t?{width:t,height:t}:t},e.prototype.setupUi=function(t,e,r){var n=r.qrbox;this.validateQrboxConfig(n);var i=this.toQrdimensions(n);i.height>e&&this.logger.warn("[Html5Qrcode] config.qrbox has height that isgreater than the height of the video stream. Shading will be ignored");var o=r.isShadedBoxEnabled()&&i.height<=e,s={x:0,y:0,width:t,height:e},a=o?this.getShadedRegionBounds(t,e,i):s,A=this.createCanvasElement(a.width,a.height),l=A.getContext("2d");l.canvas.width=a.width,l.canvas.height=a.height,this.element.append(A),o&&this.possiblyInsertShadingElement(this.element,t,e,i),this.createScannerPausedUiElement(this.element),this.qrRegion=a,this.context=l,this.canvasElement=A},e.prototype.createScannerPausedUiElement=function(t){var e=document.createElement("div");e.innerText="Scanner paused",e.style.display="none",e.style.position="absolute",e.style.top="0px",e.style.zIndex="1",e.style.background="yellow",e.style.textAlign="center",e.style.width="100%",t.appendChild(e),this.scannerPausedUiElement=e},e.prototype.scanContext=function(t,e){var r=this;return this.stateManagerProxy.isPaused()?Promise.resolve(!1):this.qrcode.decodeAsync(this.canvasElement).then((function(e){return t(e.text,c.createFromQrcodeResult(e)),r.possiblyUpdateShaders(!0),!0})).catch((function(t){r.possiblyUpdateShaders(!1);var n=C.codeParseError(t);return e(n,h.createFrom(n)),!1}))},e.prototype.foreverScan=function(t,e,r){var n=this;if(this.shouldScan&&this.localMediaStream){var i=this.videoElement,o=i.videoWidth/i.clientWidth,s=i.videoHeight/i.clientHeight;if(!this.qrRegion)throw"qrRegion undefined when localMediaStream is ready.";var a=this.qrRegion.width*o,A=this.qrRegion.height*s,l=this.qrRegion.x*o,c=this.qrRegion.y*s;this.context.drawImage(i,l,c,a,A,0,0,this.qrRegion.width,this.qrRegion.height);var h=function(){n.foreverScanTimeout=setTimeout((function(){n.foreverScan(t,e,r)}),n.getTimeoutFps(t.fps))};this.scanContext(e,r).then((function(i){i||!0===t.disableFlip?h():(n.context.translate(n.context.canvas.width,0),n.context.scale(-1,1),n.scanContext(e,r).finally((function(){h()})))})).catch((function(t){n.logger.logError("Error happend while scanning context",t),h()}))}},e.prototype.onMediaStreamReceived=function(t,e,r,n,i,o){var s=this,a=this;return new Promise((function(A,l){var c=function(){var r=s.createVideoElement(n);a.element.append(r),r.onabort=l,r.onerror=l,r.onplaying=function(){var t=r.clientWidth,n=r.clientHeight;a.setupUi(t,n,e),a.foreverScan(e,i,o),A(null)},r.srcObject=t,r.play(),a.videoElement=r};if(a.localMediaStream=t,r||!e.aspectRatio)c();else{var h={aspectRatio:e.aspectRatio};t.getVideoTracks()[0].applyConstraints(h).then((function(t){return c()})).catch((function(t){a.logger.logErrors(["[Html5Qrcode] Constriants could not be satisfied, ignoring constraints",t]),c()}))}}))},e.prototype.createVideoConstraints=function(t){if("string"==typeof t)return{deviceId:{exact:t}};if("object"==typeof t){var e="facingMode",r={user:!0,environment:!0},n="exact",i=function(t){if(t in r)return!0;throw"config has invalid 'facingMode' value = '"+t+"'"},o=Object.keys(t);if(1!==o.length)throw"'cameraIdOrConfig' object should have exactly 1 key, if passed as an object, found "+o.length+" keys";var s=Object.keys(t)[0];if(s!==e&&"deviceId"!==s)throw"Only 'facingMode' and 'deviceId' are supported for 'cameraIdOrConfig'";if(s!==e){var a=t.deviceId;if("string"==typeof a)return{deviceId:a};if("object"==typeof a){if(n in a)return{deviceId:{exact:a.exact}};throw"'deviceId' should be string or object with exact as key."}throw"Invalid type of 'deviceId' = "+typeof a}var A=t.facingMode;if("string"==typeof A){if(i(A))return{facingMode:A}}else{if("object"!=typeof A)throw"Invalid type of 'facingMode' = "+typeof A;if(!(n in A))throw"'facingMode' should be string or object with exact as key.";if(i(A.exact))return{facingMode:{exact:A.exact}}}}throw"Invalid type of 'cameraIdOrConfig' = "+typeof t},e.prototype.computeCanvasDrawConfig=function(t,e,r,n){if(t<=r&&e<=n)return{x:(r-t)/2,y:(n-e)/2,width:t,height:e};var i=t,o=e;return t>r&&(e*=r/t,t=r),e>n&&(t*=n/e,e=n),this.logger.log("Image downsampled from "+i+"X"+o+" to "+t+"X"+e+"."),this.computeCanvasDrawConfig(t,e,r,n)},e.prototype.clearElement=function(){if(this.stateManagerProxy.isScanning())throw"Cannot clear while scan is ongoing, close it first.";var t=document.getElementById(this.elementId);t&&(t.innerHTML="")},e.prototype.createVideoElement=function(t){var e=document.createElement("video");return e.style.width=t+"px",e.muted=!0,e.setAttribute("muted","true"),e.playsInline=!0,e},e.prototype.possiblyUpdateShaders=function(t){this.qrMatch!==t&&(this.hasBorderShaders&&this.borderShaders&&this.borderShaders.length&&this.borderShaders.forEach((function(e){e.style.backgroundColor=t?_.BORDER_SHADER_MATCH_COLOR:_.BORDER_SHADER_DEFAULT_COLOR})),this.qrMatch=t)},e.prototype.possiblyCloseLastScanImageFile=function(){this.lastScanImageFile&&(URL.revokeObjectURL(this.lastScanImageFile),this.lastScanImageFile=null)},e.prototype.createCanvasElement=function(t,e,r){var n=t,i=e,o=document.createElement("canvas");return o.style.width=n+"px",o.style.height=i+"px",o.style.display="none",o.id=d(r)?"qr-canvas":r,o},e.prototype.getShadedRegionBounds=function(t,e,r){if(r.width>t||r.height>e)throw"'config.qrbox' dimensions should not be greater than the dimensions of the root HTML element.";return{x:(t-r.width)/2,y:(e-r.height)/2,width:r.width,height:r.height}},e.prototype.possiblyInsertShadingElement=function(t,e,r,n){if(!(e-n.width<1||r-n.height<1)){var i=document.createElement("div");i.style.position="absolute";var o=(e-n.width)/2,s=(r-n.height)/2;if(i.style.borderLeft=o+"px solid #0000007a",i.style.borderRight=o+"px solid #0000007a",i.style.borderTop=s+"px solid #0000007a",i.style.borderBottom=s+"px solid #0000007a",i.style.boxSizing="border-box",i.style.top="0px",i.style.bottom="0px",i.style.left="0px",i.style.right="0px",i.id=""+_.SHADED_REGION_CLASSNAME,e-n.width<11||r-n.height<11)this.hasBorderShaders=!1;else{var a=40;this.insertShaderBorders(i,a,5,-5,0,!0),this.insertShaderBorders(i,a,5,-5,0,!1),this.insertShaderBorders(i,a,5,n.height+5,0,!0),this.insertShaderBorders(i,a,5,n.height+5,0,!1),this.insertShaderBorders(i,5,45,-5,-5,!0),this.insertShaderBorders(i,5,45,n.height+5-a,-5,!0),this.insertShaderBorders(i,5,45,-5,-5,!1),this.insertShaderBorders(i,5,45,n.height+5-a,-5,!1),this.hasBorderShaders=!0}t.append(i)}},e.prototype.insertShaderBorders=function(t,e,r,n,i,o){var s=document.createElement("div");s.style.position="absolute",s.style.backgroundColor=_.BORDER_SHADER_DEFAULT_COLOR,s.style.width=e+"px",s.style.height=r+"px",s.style.top=n+"px",o?s.style.left=i+"px":s.style.right=i+"px",this.borderShaders||(this.borderShaders=[]),this.borderShaders.push(s),t.appendChild(s)},e.prototype.showPausedState=function(){if(!this.scannerPausedUiElement)throw"[internal error] scanner paused UI element not found";this.scannerPausedUiElement.style.display="block"},e.prototype.hidePausedState=function(){if(!this.scannerPausedUiElement)throw"[internal error] scanner paused UI element not found";this.scannerPausedUiElement.style.display="none"},e.prototype.getTimeoutFps=function(t){return 1e3/t},e}(),F="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAELSURBVDiNldNLSkNBEAXQkwgR4iYkZpLfVoxuxAU4ENyAaDA68QNuw88CNMFB4sBpNiAYyVQHXWpI+gW9UNCv+t6q7ur7WEYHJxjjI2KMY7Qz/B+s4wwzXGAbTbRifRl7fVRy4gc8YnNFkxqecL9Y5DzE1VVHDFQxwOl3ohNHy3U+xEEmvxWa1hr28YqbDLGBKYYL+bco0oQXaUg5tCJy6GIkOjQKSEM8ryj+Xo6PUgGpHJFDCZ9lTFAvIK1CHZMybqX7/Bfd0GpLT1LLkPYict1n5gbclxz2FyNtSMPtzScrkj0H0vsWoR7iO5n/oSLZc4Yr7Pj1wS6uY6+XE8+jhSPJJNOIUeSWTPUFgVI4ubR2UYIAAAAASUVORK5CYII=",P=function(){function t(){}return t.createDefault=function(){return{hasPermission:!1,lastUsedCameraId:null}},t}(),k=function(){function t(){this.data=P.createDefault();var e=localStorage.getItem(t.LOCAL_STORAGE_KEY);e?this.data=JSON.parse(e):this.reset()}return t.prototype.hasCameraPermissions=function(){return this.data.hasPermission},t.prototype.getLastUsedCameraId=function(){return this.data.lastUsedCameraId},t.prototype.setHasPermission=function(t){this.data.hasPermission=t,this.flush()},t.prototype.setLastUsedCameraId=function(t){this.data.lastUsedCameraId=t,this.flush()},t.prototype.resetLastUsedCameraId=function(){this.data.lastUsedCameraId=null,this.flush()},t.prototype.reset=function(){this.data=P.createDefault(),this.flush()},t.prototype.flush=function(){localStorage.setItem(t.LOCAL_STORAGE_KEY,JSON.stringify(this.data))},t.LOCAL_STORAGE_KEY="HTML5_QRCODE_DATA",t}(),L=function(){function t(){this.infoDiv=document.createElement("div")}return t.prototype.renderInto=function(t){this.infoDiv.style.position="absolute",this.infoDiv.style.top="10px",this.infoDiv.style.right="10px",this.infoDiv.style.zIndex="2",this.infoDiv.style.display="none",this.infoDiv.style.padding="5pt",this.infoDiv.style.border="1px solid silver",this.infoDiv.style.fontSize="10pt",this.infoDiv.style.background="rgb(248 248 248)",this.infoDiv.innerText=f.builtUsing();var e=document.createElement("a");e.innerText="html5-qrcode",e.href="https://github.com/mebjas/html5-qrcode",e.target="new",this.infoDiv.appendChild(e);var r=document.createElement("br"),n=document.createElement("br");this.infoDiv.appendChild(r),this.infoDiv.appendChild(n);var i=document.createElement("a");i.innerText=f.reportIssues(),i.href="https://github.com/mebjas/html5-qrcode/issues",i.target="new",this.infoDiv.appendChild(i),t.appendChild(this.infoDiv)},t.prototype.show=function(){this.infoDiv.style.display="block"},t.prototype.hide=function(){this.infoDiv.style.display="none"},t}(),G=function(){function t(t,e){this.isShowingInfoIcon=!0,this.onTapIn=t,this.onTapOut=e,this.infoIcon=document.createElement("img")}return t.prototype.renderInto=function(t){var e=this;this.infoIcon.src=F,this.infoIcon.style.position="absolute",this.infoIcon.style.top="4px",this.infoIcon.style.right="4px",this.infoIcon.style.opacity="0.6",this.infoIcon.style.cursor="pointer",this.infoIcon.style.zIndex="2",this.infoIcon.onmouseover=function(t){return e.onHoverIn()},this.infoIcon.onmouseout=function(t){return e.onHoverOut()},this.infoIcon.onclick=function(t){return e.onClick()},t.appendChild(this.infoIcon)},t.prototype.onHoverIn=function(){this.isShowingInfoIcon&&(this.infoIcon.style.opacity="1")},t.prototype.onHoverOut=function(){this.isShowingInfoIcon&&(this.infoIcon.style.opacity="0.6")},t.prototype.onClick=function(){this.isShowingInfoIcon?(this.isShowingInfoIcon=!1,this.onTapIn(),this.infoIcon.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAQgAAAEIBarqQRAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAE1SURBVDiNfdI7S0NBEAXgLya1otFgpbYSbISAgpXYi6CmiH9KCAiChaVga6OiWPgfRDQ+0itaGVNosXtluWwcuMzePfM4M3sq8lbHBubwg1dc4m1E/J/N4ghDPOIsfk/4xiEao5KX0McFljN4C9d4QTPXuY99jP3DsIoDPGM6BY5i5yI5R7O4q+ImFkJY2DCh3cAH2klyB+9J1xUMMAG7eCh1a+Mr+k48b5diXrFVwwLuS+BJ9MfR7+G0FHOHhTHhnXNWS87VDF4pcnfQK4Ep7XScNLmPTZgURNKKYENYWDpzW1BhscS1WHS8CDgURFJQrWcoF3c13KKbgg1BYQfy8xZWEzTTw1QZbAoKu8FqJnktdu5hcVSHmchiILzzuaDQvjBzV2m8yohCE1jHfPx/xhU+y4G/D75ELlRJsSYAAAAASUVORK5CYII=",this.infoIcon.style.opacity="1"):(this.isShowingInfoIcon=!0,this.onTapOut(),this.infoIcon.src=F,this.infoIcon.style.opacity="0.6")},t}(),Q=function(){function t(){var t=this;this.infoDiv=new L,this.infoIcon=new G((function(){t.infoDiv.show()}),(function(){t.infoDiv.hide()}))}return t.prototype.renderInto=function(t){this.infoDiv.renderInto(t),this.infoIcon.renderInto(t)},t}(),Z=function(){function t(){}return t.hasCameraPermissions=function(){return new Promise((function(t,e){navigator.mediaDevices.enumerateDevices().then((function(e){e.forEach((function(e){"videoinput"===e.kind&&e.label&&t(!0)})),t(!1)}))}))},t}();!function(t){t[t.STATUS_DEFAULT=0]="STATUS_DEFAULT",t[t.STATUS_SUCCESS=1]="STATUS_SUCCESS",t[t.STATUS_WARNING=2]="STATUS_WARNING",t[t.STATUS_REQUESTING_PERMISSION=3]="STATUS_REQUESTING_PERMISSION"}(B||(B={}));var U=function(){function t(t,e,r){if(this.lastMatchFound=null,this.cameraScanImage=null,this.fileScanImage=null,this.elementId=t,this.config=this.createConfig(e),this.verbose=!0===r,!document.getElementById(t))throw"HTML Element with id="+t+" not found";this.currentScanType=i.SCAN_TYPE_CAMERA,this.sectionSwapAllowed=!0,this.logger=new g(this.verbose),this.persistedDataManager=new k,!0!==e.rememberLastUsedCamera&&this.persistedDataManager.reset()}return t.prototype.render=function(t,e){var r=this;this.lastMatchFound=null,this.qrCodeSuccessCallback=function(e,n){if(t)t(e,n);else{if(r.lastMatchFound===e)return;r.lastMatchFound=e,r.setHeaderMessage(I.lastMatch(e),B.STATUS_SUCCESS)}},this.qrCodeErrorCallback=function(t,r){e&&e(t,r)};var n,i,o=document.getElementById(this.elementId);if(!o)throw"HTML Element with id="+this.elementId+" not found";o.innerHTML="",this.createBasicLayout(o),this.html5Qrcode=new b(this.getScanRegionId(),(n=this.config,i=this.verbose,{formatsToSupport:n.formatsToSupport,experimentalFeatures:n.experimentalFeatures,verbose:i}))},t.prototype.pause=function(){if(!this.html5Qrcode)throw"Code scanner not initialized.";this.html5Qrcode.pause()},t.prototype.resume=function(){if(!this.html5Qrcode)throw"Code scanner not initialized.";this.html5Qrcode.resume()},t.prototype.getState=function(){if(!this.html5Qrcode)throw"Code scanner not initialized.";return this.html5Qrcode.getState()},t.prototype.clear=function(){var t=this;return this.html5Qrcode?new Promise((function(e,r){t.html5Qrcode?t.html5Qrcode.isScanning&&t.html5Qrcode.stop().then((function(r){var n;t.html5Qrcode?(t.html5Qrcode.clear(),(n=document.getElementById(t.elementId))&&(n.innerHTML="",t.resetBasicLayout(n)),e()):e()})).catch((function(e){t.verbose&&t.logger.logError("Unable to stop qrcode scanner",e),r(e)})):e()})):Promise.resolve()},t.prototype.getRunningTrackCapabilities=function(){if(!this.html5Qrcode)throw"Code scanner not initialized.";return this.html5Qrcode.getRunningTrackCapabilities()},t.prototype.applyVideoConstraints=function(t){if(!this.html5Qrcode)throw"Code scanner not initialized.";return this.html5Qrcode.applyVideoConstraints(t)},t.prototype.createConfig=function(t){return t?(t.fps||(t.fps=A.SCAN_DEFAULT_FPS),t.rememberLastUsedCamera!==!A.DEFAULT_REMEMBER_LAST_CAMERA_USED&&(t.rememberLastUsedCamera=A.DEFAULT_REMEMBER_LAST_CAMERA_USED),t):{fps:A.SCAN_DEFAULT_FPS,rememberLastUsedCamera:A.DEFAULT_REMEMBER_LAST_CAMERA_USED}},t.prototype.createBasicLayout=function(t){t.style.position="relative",t.style.padding="0px",t.style.border="1px solid silver",this.createHeader(t);var e=document.createElement("div"),r=this.getScanRegionId();e.id=r,e.style.width="100%",e.style.minHeight="100px",e.style.textAlign="center",t.appendChild(e),this.insertCameraScanImageToScanRegion();var n=document.createElement("div"),i=this.getDashboardId();n.id=i,n.style.width="100%",t.appendChild(n),this.setupInitialDashboard(n)},t.prototype.resetBasicLayout=function(t){t.style.border="none"},t.prototype.setupInitialDashboard=function(t){this.createSection(t),this.createSectionControlPanel(),this.createSectionSwap()},t.prototype.createHeader=function(t){var e=document.createElement("div");e.style.textAlign="left",e.style.margin="0px",t.appendChild(e),(new Q).renderInto(e);var r=document.createElement("div");r.id=this.getHeaderMessageContainerId(),r.style.display="none",r.style.textAlign="center",r.style.fontSize="14px",r.style.padding="2px 10px",r.style.margin="4px",r.style.borderTop="1px solid #f6f6f6",e.appendChild(r)},t.prototype.createSection=function(t){var e=document.createElement("div");e.id=this.getDashboardSectionId(),e.style.width="100%",e.style.padding="10px 0px 10px 0px",e.style.textAlign="left",t.appendChild(e)},t.prototype.createCameraListUi=function(t,e,r){var n=this;n.setHeaderMessage(I.cameraPermissionRequesting());var i=function(){r||n.createPermissionButton(t,e)};b.getCameras().then((function(r){n.persistedDataManager.setHasPermission(!0),n.resetHeaderMessage(),r&&r.length>0?(t.removeChild(e),n.renderCameraSelection(r)):(n.setHeaderMessage(I.noCameraFound(),B.STATUS_WARNING),i())})).catch((function(t){n.persistedDataManager.setHasPermission(!1),r?r.disabled=!1:i(),n.setHeaderMessage(t,B.STATUS_WARNING)}))},t.prototype.createPermissionButton=function(t,e){var r=this,n=document.createElement("button");n.innerText=I.cameraPermissionTitle(),n.addEventListener("click",(function(){n.disabled=!0,r.createCameraListUi(t,e,n)})),e.appendChild(n)},t.prototype.createPermissionsUi=function(t,e){var r=this;this.persistedDataManager.hasCameraPermissions()?Z.hasCameraPermissions().then((function(n){n?r.createCameraListUi(t,e):(r.persistedDataManager.setHasPermission(!1),r.createPermissionButton(t,e))})).catch((function(n){r.persistedDataManager.setHasPermission(!1),r.createPermissionButton(t,e)})):this.createPermissionButton(t,e)},t.prototype.createSectionControlPanel=function(){var t=this,e=document.getElementById(this.getDashboardSectionId()),r=document.createElement("div");e.appendChild(r);var n=document.createElement("div");n.id=this.getDashboardSectionCameraScanRegionId(),n.style.display=this.currentScanType===i.SCAN_TYPE_CAMERA?"block":"none",r.appendChild(n);var o=document.createElement("div");o.style.textAlign="center",n.appendChild(o),this.createPermissionsUi(n,o);var s=document.createElement("div");s.id=this.getDashboardSectionFileScanRegionId(),s.style.textAlign="center",s.style.display=this.currentScanType===i.SCAN_TYPE_CAMERA?"none":"block",r.appendChild(s);var a=document.createElement("input");a.id=this.getFileScanInputId(),a.accept="image/*",a.type="file",a.style.width="200px",a.disabled=this.currentScanType===i.SCAN_TYPE_CAMERA;var A=document.createElement("span");A.innerText=" Select Image",s.appendChild(a),s.appendChild(A),a.addEventListener("change",(function(e){if(!t.html5Qrcode)throw"html5Qrcode not defined";if(null!=e&&null!=e.target&&t.currentScanType===i.SCAN_TYPE_FILE&&0!==e.target.files.length){var r=e.target.files[0];t.html5Qrcode.scanFileV2(r,!0).then((function(e){t.resetHeaderMessage(),t.qrCodeSuccessCallback(e.decodedText,e)})).catch((function(e){t.setHeaderMessage(e,B.STATUS_WARNING),t.qrCodeErrorCallback(e,h.createFrom(e))}))}}))},t.prototype.renderCameraSelection=function(t){var e=this,r=document.getElementById(this.getDashboardSectionCameraScanRegionId());r.style.textAlign="center";var n=document.createElement("span");n.style.marginRight="10px";var i=t.length,o=document.createElement("select");if(1==i)o.style.display="none";else{var s=I.selectCamera();n.innerText=s+" ("+t.length+") "}o.id=this.getCameraSelectionId();for(var a=[],A=0,l=t;A",e.appendChild(t.cameraScanImage)},this.cameraScanImage.width=64,this.cameraScanImage.style.opacity="0.3",this.cameraScanImage.src="data:image/gif;base64,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L25zLmFkb2JlLmNvbS94bXAvMS4wL0R5bmFtaWNNZWRpYS8iCiAgICB4bWxuczpzdERpbT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL0RpbWVuc2lvbnMjIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFkNzgwZGNmLWVkZTctZWU0My04N2E0LTdlMTg3YThlYTI3NSIKICAgeG1wTU06RG9jdW1lbnRJRD0iZDMxNDk3ZmItM2Y1Zi0yMzkwLTFlZDEtYjU3NDAwMDAwMDVmIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NTdiYmYyOTgtY2M5Ny02MzRlLWE4MjAtODFiMjAxY2RmZjllIgogICB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTEyLTA1VDA5OjEzOjIyKzA1OjAwIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0xMi0wNVQwOToxMzoyMiswNTowMCIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBBZnRlciBFZmZlY3RzIENDIDIwMTggKFdpbmRvd3MpIgogICB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0xMi0wNVQwOToxMjo1MCswNTowMCIKICAgZGM6Zm9ybWF0PSLQkNC90LjQvNC40YDQvtCy0LDQvdC90YvQuSBHSUYiCiAgIGJvZHltb3Zpbjpwcm9qZWN0X2lkPSJvZWU3ZTRyM2gwaGtjZTdiODgzMyIKICAgeG1wRE06dmlkZW9GcmFtZVJhdGU9IjI1LjAwMDAwMCIKICAgeG1wRE06dmlkZW9GaWVsZE9yZGVyPSJQcm9ncmVzc2l2ZSIKICAgeG1wRE06dmlkZW9QaXhlbEFzcGVjdFJhdGlvPSIxLzEiCiAgIHhtcERNOnN0YXJ0VGltZVNjYWxlPSIyNSIKICAgeG1wRE06c3RhcnRUaW1lU2FtcGxlU2l6ZT0iMSI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSI5YWE0NzI4ZC1iYWU1LTAyMDEtMjM4MC0zZTlhMDAwMDAwOGMiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDVUMDk6MTM6MjIrMDU6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphYTA2OGRlZi1hY2NhLTM5NDgtODM1Yi02MWQ1MmU2NWI3NDIiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMDgtMzBUMDE6Mzg6MTErMDM6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIEFmdGVyIEVmZmVjdHMgQ0MgMjAxOCAoV2luZG93cykiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZThjY2QxNzEtNWFkZC01MzRmLWIyZjgtODc0NzNhOGMxYWJmIgogICAgICBzdEV2dDp3aGVuPSIyMDE5LTA4LTMwVDAxOjM4OjMxKzAzOjAwIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBBZnRlciBFZmZlY3RzIENDIDIwMTggKFdpbmRvd3MpIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvY29udGVudCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2ZmVmYzVhNC00YWY3LTVhNGYtYjJiYS1hMWRkYTM1YWRkMTQiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMDgtMzBUMDI6MDY6MjcrMDM6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIEFmdGVyIEVmZmVjdHMgQ0MgMjAxOCAoV2luZG93cykiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249ImRlcml2ZWQiCiAgICAgIHN0RXZ0OnBhcmFtZXRlcnM9InNhdmVkIHRvIG5ldyBsb2NhdGlvbiIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmYjg3ZmQwYS00Njc2LTQ2NDMtOWZlYS03Mjk2NzllYmVhY2YiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMDgtMzBUMDI6MDY6NTYrMDM6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIEFmdGVyIEVmZmVjdHMgQ0MgMjAxOCAoV2luZG93cykiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MTBmZDdiYzMtNDllMy1hNzRjLWI0Y2UtNzI5NjYxM2NjMmYwIgogICAgICBzdEV2dDp3aGVuPSIyMDE5LTA4LTMwVDAyOjA3OjA3KzAzOjAwIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBBZnRlciBFZmZlY3RzIENDIDIwMTggKFdpbmRvd3MpIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvY29udGVudCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowMWZlOTE3MC1lYTQ1LTcyNDItOGVmNy1mMzQyNTU0ZWEwN2UiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMDgtMzBUMDI6MDc6MDcrMDM6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIEFmdGVyIEVmZmVjdHMgQ0MgMjAxOCAoV2luZG93cykiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZjJjN2ViNzEtMGJhZC03OTRiLWI4ZTAtMWVhZTkzOTM3Njk2IgogICAgICBzdEV2dDp3aGVuPSIyMDE5LTA4LTMwVDAyOjI2OjIzKzAzOjAwIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBBZnRlciBFZmZlY3RzIENDIDIwMTggKFdpbmRvd3MpIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvY29udGVudCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5ZDFlN2UzNi1kZWVjLWJmNDYtOGE0Mi1kODE4YzBlMjc5YjIiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMTM6NDk6MDIrMDU6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjA1Y2RkNWI3LTM0MGMtOGM0ZC1hMWUyLTlkYWJlMjg0OTA0MyIKICAgICAgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wNFQxMzo0OTowMiswNTowMCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozYmY3YjIzNi1kNTI3LTA0NGUtYTlkMS00MjUzY2FlZGM0N2MiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMTM6NDk6MjMrMDU6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjAxYTc1YTU2LTMyZGMtYmU0OS1hZWFkLWFjMmQ5YjNkZjJiMiIKICAgICAgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wNFQxMzo0OToyMyswNTowMCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo4OTJiYmEyYy1iMjljLWNjNDgtOTI1My0wOGE0ODYwZTY5ZDAiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDVUMDk6MDE6MzArMDU6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmYwZTI3MTZlLWU5ZTAtYWE0ZS05ZjcwLTQxNTdjNmNlMGZlYSIKICAgICAgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wNVQwOToxMzoxMSswNTowMCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iL2NvbnRlbnQiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Y2I2NjE4ZDItOTcwMC01NTRjLWI5ZTktNmEzYWUxM2Q5NGYyIgogICAgICBzdEV2dDp3aGVuPSIyMDE5LTEyLTA1VDA5OjEzOjExKzA1OjAwIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjlkZWU2YWY2LWQ1ZWYtMzg0My04MjY5LTQyMGY1ODFlMjdlZiIKICAgICAgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wNVQwOToxMzoyMiswNTowMCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxZDc4MGRjZi1lZGU3LWVlNDMtODdhNC03ZTE4N2E4ZWEyNzUiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDVUMDk6MTM6MjIrMDU6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9tZXRhZGF0YSIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgIDx4bXBNTTpEZXJpdmVkRnJvbQogICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3MzNkMjZhMi1iN2I4LTA3NGItODhkNy1iOGE1OGM5ZmQwYzUiCiAgICBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjczM2QyNmEyLWI3YjgtMDc0Yi04OGQ3LWI4YTU4YzlmZDBjNSIKICAgIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphYTA2OGRlZi1hY2NhLTM5NDgtODM1Yi02MWQ1MmU2NWI3NDIiLz4KICAgPHhtcE1NOkluZ3JlZGllbnRzPgogICAgPHJkZjpCYWc+CiAgICAgPHJkZjpsaQogICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRkOTdmOTNlLWIwZjEtZjU0NC1iZmMxLWFmZThhMzEyNjkzZCIKICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgPC9yZGY6QmFnPgogICA8L3htcE1NOkluZ3JlZGllbnRzPgogICA8eG1wTU06UGFudHJ5PgogICAgPHJkZjpCYWc+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmNvbXAiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRkOTdmOTNlLWIwZjEtZjU0NC1iZmMxLWFmZThhMzEyNjkzZCI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+cG9ydHJhaXQtbW9kZS1zY2FubmluZzwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8eG1wTU06SW5ncmVkaWVudHM+CiAgICAgICA8cmRmOkJhZz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjBlNWU0MmUtM2U1NS0zYTQ1LTlkZDYtZjY1YzFlNzAxMDRhIgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmFjZDllMjg3LWZjMzEtMWQ0Ni1hNzdmLTQ1NjQ1ZmFhNWUwYyIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MGQyODU3NjgwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MTA1ODQwMDAwMDBmMjU0MDE2MDAwMDAwZDI4NTc2ODAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmQwMDE4YzVkLWU2MDEtZWM0NS1hZWQ5LTdhZTNjZTViNmIzZCIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgICAgIDxyZGY6bGkKICAgICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDplODdiN2UyOC02NTQ5LTM5NGEtODNjOS05ZjdkOTUyNDJjNmUiCiAgICAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZThlY2VkNGMtNWVjZi0xNTQ1LWI3ZGYtNmViNmMwNjQxNGZiIgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICA8L3JkZjpCYWc+CiAgICAgIDwveG1wTU06SW5ncmVkaWVudHM+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjBlNWU0MmUtM2U1NS0zYTQ1LTlkZDYtZjY1YzFlNzAxMDRhIj4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5wYXBlcjwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmFjZDllMjg3LWZjMzEtMWQ0Ni1hNzdmLTQ1NjQ1ZmFhNWUwYyI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+bGluZS1zY2FubmluZzwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmQwMDE4YzVkLWU2MDEtZWM0NS1hZWQ5LTdhZTNjZTViNmIzZCI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+bWFzazwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmU4N2I3ZTI4LTY1NDktMzk0YS04M2M5LTlmN2Q5NTI0MmM2ZSI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+ZnJhbWU8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmxheWVyIgogICAgICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDplOGVjZWQ0Yy01ZWNmLTE1NDUtYjdkZi02ZWI2YzA2NDE0ZmIiPgogICAgICA8ZGM6dGl0bGU+CiAgICAgICA8cmRmOkFsdD4KICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkJhY2tncm91bmQ8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICA8L3JkZjpCYWc+CiAgIDwveG1wTU06UGFudHJ5PgogICA8eG1wRE06dmlkZW9GcmFtZVNpemUKICAgIHN0RGltOnc9IjUwIgogICAgc3REaW06aD0iNTAiCiAgICBzdERpbTp1bml0PSJwaXhlbCIvPgogICA8eG1wRE06ZHVyYXRpb24KICAgIHhtcERNOnZhbHVlPSIyOSIKICAgIHhtcERNOnNjYWxlPSIxLzI1Ii8+CiAgIDx4bXBETTpzdGFydFRpbWVjb2RlCiAgICB4bXBETTp0aW1lRm9ybWF0PSIyNVRpbWVjb2RlIgogICAgeG1wRE06dGltZVZhbHVlPSIwMDowMDowMDowMCIvPgogICA8eG1wRE06YWx0VGltZWNvZGUKICAgIHhtcERNOnRpbWVWYWx1ZT0iMDA6MDA6MDA6MDAiCiAgICB4bXBETTp0aW1lRm9ybWF0PSIyNVRpbWVjb2RlIi8+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAOw=="},t.prototype.insertFileScanImageToScanRegion=function(){var t=this,e=document.getElementById(this.getScanRegionId());if(this.fileScanImage)return e.innerHTML="
",void e.appendChild(this.fileScanImage);this.fileScanImage=new Image,this.fileScanImage.onload=function(r){e.innerHTML="
",e.appendChild(t.fileScanImage)},this.fileScanImage.width=64,this.fileScanImage.style.opacity="0.3",this.fileScanImage.src="data:image/gif;base64,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MS8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczpib2R5bW92aW49ImJvZHltb3ZpbiIKICAgIHhtbG5zOnhtcERNPSJodHRwOi8vbnMuYWRvYmUuY29tL3htcC8xLjAvRHluYW1pY01lZGlhLyIKICAgIHhtbG5zOnN0RGltPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvRGltZW5zaW9ucyMiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZjZmYzc4ODQtZWYxMy1iNTRkLTk0ZGMtMDI5OTYxYWE2ZDBkIgogICB4bXBNTTpEb2N1bWVudElEPSI2MzU4ZTE5Yi1mOTQxLTA3MzMtNTEzNy03YTg0MDAwMDAwNTEiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDozZTk2YzgxNS1jNGVlLTQzNDUtYjMzZi0yYjFiN2NlMWE5NzciCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMTItMDRUMTE6Mjk6MDcrMDM6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTEyLTA0VDExOjI5OjA3KzAzOjAwIgogICB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0xMi0wNFQxMToyODozNiswMzowMCIKICAgZGM6Zm9ybWF0PSLQkNC90LjQvNC40YDQvtCy0LDQvdC90YvQuSBHSUYiCiAgIGJvZHltb3Zpbjpwcm9qZWN0X2lkPSI5ZHhpaGxxMXQzbjN1N2hjdXZjOCIKICAgeG1wRE06dmlkZW9GcmFtZVJhdGU9IjI0LjAwMDAwMCIKICAgeG1wRE06dmlkZW9GaWVsZE9yZGVyPSJQcm9ncmVzc2l2ZSIKICAgeG1wRE06dmlkZW9QaXhlbEFzcGVjdFJhdGlvPSIxLzEiCiAgIHhtcERNOnN0YXJ0VGltZVNjYWxlPSIyNCIKICAgeG1wRE06c3RhcnRUaW1lU2FtcGxlU2l6ZT0iMSI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJmZDVkNzVlYi1iN2RlLWZjYjUtYzRlZC04OTJjMDAwMDAwN2UiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMTE6Mjk6MDcrMDM6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ZGVkNDY0NC00OThmLTFkNGUtOTUyNy0xYTFmM2ViMjY3MzUiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMDg6Mjc6MTArMDM6MDAiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Mzk4NDEzNTEtNzFjZi0zNzQ3LTkyMGQtMzE2MDkwYjhkMTIxIgogICAgICBzdEV2dDp3aGVuPSIyMDE5LTEyLTA0VDA4OjQyOjM1KzAzOjAwIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvY29udGVudCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MzQ2MzVmNy02YWQwLTYyNGUtOWUzNi01NjRkZWY3YzZkNTIiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMDk6MDQ6NDcrMDM6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249ImRlcml2ZWQiCiAgICAgIHN0RXZ0OnBhcmFtZXRlcnM9InNhdmVkIHRvIG5ldyBsb2NhdGlvbiIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo0YjMwMTM3MS0yZjM0LWIzNDEtOGMxYy0xZjZmNjhlMmY0YTkiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMDk6MDQ6NDcrMDM6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YTEwOGYwZjQtZDNiMC1lMzQzLWJkMGQtMDMxMWEzMGFkZGNjIgogICAgICBzdEV2dDp3aGVuPSIyMDE5LTEyLTA0VDA5OjE0OjExKzAzOjAwIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvY29udGVudCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo3YmQyOGRiYi1jMzI5LTA3NDEtOTk0YS1mMGJkZDIwZmU3MmEiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMDk6MTk6MzgrMDM6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjJhOTkzY2E2LWU0YzctZjk0Mi05OWMyLTJiZTI2YWJmYjRjMCIKICAgICAgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wNFQxMToyNzo0OSswMzowMCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjYjI2ZjkyNS1jYmY2LWExNDktYTYwNi00YTIxYTIwN2VlY2IiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMTE6Mjg6NTYrMDM6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjk5ZWE2MmRhLTQyMDctNjA0Ni1hYmVkLTBjMmEzOWQ0NDgyZSIKICAgICAgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wNFQxMToyODo1NiswMzowMCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplMTg5MTkxMy1mYTQwLTYxNDktYjdmZS03YzI1YjIzNTg5YzEiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMTE6Mjk6MDcrMDM6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZjZmYzc4ODQtZWYxMy1iNTRkLTk0ZGMtMDI5OTYxYWE2ZDBkIgogICAgICBzdEV2dDp3aGVuPSIyMDE5LTEyLTA0VDExOjI5OjA3KzAzOjAwIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvbWV0YWRhdGEiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogICA8eG1wTU06RGVyaXZlZEZyb20KICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZTc2ZGE2ZWMtMmUzYy0zMTRkLTkyZjEtNThkNzJjNTJhMzMyIgogICAgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDplNzZkYTZlYy0yZTNjLTMxNGQtOTJmMS01OGQ3MmM1MmEzMzIiCiAgICBzdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NGRlZDQ2NDQtNDk4Zi0xZDRlLTk1MjctMWExZjNlYjI2NzM1Ii8+CiAgIDx4bXBNTTpJbmdyZWRpZW50cz4KICAgIDxyZGY6QmFnPgogICAgIDxyZGY6bGkKICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpiZWMzNTdhOS05MGJmLWFjNDAtYjk2OS00NDIwMjNiMzI0YjEiCiAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgIDwvcmRmOkJhZz4KICAgPC94bXBNTTpJbmdyZWRpZW50cz4KICAgPHhtcE1NOlBhbnRyeT4KICAgIDxyZGY6QmFnPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzhhNWE2MmItYzAzYy03YzQxLWIzMGQtMTk0OTFkOTJhZmFlIj4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5CYWNrZ3JvdW5kPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYxOGExZTUtMzY4Yy0wYjQ5LWJkNDctNzI0NmFkOTU3MmZjIj4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5tYXNrMzwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjk0YjA5MTY2LTVmZWQtNzA0OS04YzQ4LWExODQwNjY3MjJlZiI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+cGhvdG8yPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YWQ2ZWFiMmYtMWMxNS1jZjQ0LTg5YzgtNWJlZWVmMjUwOTA4Ij4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5waG90bzE8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmNvbXAiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmJlYzM1N2E5LTkwYmYtYWM0MC1iOTY5LTQ0MjAyM2IzMjRiMSI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+cGhvdG8tZ2FsbGVyeSAyPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDx4bXBNTTpJbmdyZWRpZW50cz4KICAgICAgIDxyZGY6QmFnPgogICAgICAgIDxyZGY6bGkKICAgICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3OGE1YTYyYi1jMDNjLTdjNDEtYjMwZC0xOTQ5MWQ5MmFmYWUiCiAgICAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ODYxOGExZTUtMzY4Yy0wYjQ5LWJkNDctNzI0NmFkOTU3MmZjIgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk0YjA5MTY2LTVmZWQtNzA0OS04YzQ4LWExODQwNjY3MjJlZiIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgICAgIDxyZGY6bGkKICAgICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDphZDZlYWIyZi0xYzE1LWNmNDQtODljOC01YmVlZWYyNTA5MDgiCiAgICAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YzkwOWFiOGMtY2IxZC01ZDQxLWJkNDgtMzU2MDQ4NmZkNmE2IgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmYxY2I0ODQ2LTNmNDItZDk0ZS05MmI4LTVjOTQyNjk4N2JkMyIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgICAgPC9yZGY6QmFnPgogICAgICA8L3htcE1NOkluZ3JlZGllbnRzPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmM5MDlhYjhjLWNiMWQtNWQ0MS1iZDQ4LTM1NjA0ODZmZDZhNiI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+bWFzazE8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmxheWVyIgogICAgICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmMWNiNDg0Ni0zZjQyLWQ5NGUtOTJiOC01Yzk0MjY5ODdiZDMiPgogICAgICA8ZGM6dGl0bGU+CiAgICAgICA8cmRmOkFsdD4KICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPnBob3RvMzwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgIDwvcmRmOkJhZz4KICAgPC94bXBNTTpQYW50cnk+CiAgIDx4bXBETTp2aWRlb0ZyYW1lU2l6ZQogICAgc3REaW06dz0iNTAiCiAgICBzdERpbTpoPSI1MCIKICAgIHN0RGltOnVuaXQ9InBpeGVsIi8+CiAgIDx4bXBETTpkdXJhdGlvbgogICAgeG1wRE06dmFsdWU9IjI4IgogICAgeG1wRE06c2NhbGU9IjEvMjQiLz4KICAgPHhtcERNOnN0YXJ0VGltZWNvZGUKICAgIHhtcERNOnRpbWVGb3JtYXQ9IjI0VGltZWNvZGUiCiAgICB4bXBETTp0aW1lVmFsdWU9IjAwOjAwOjAwOjAwIi8+CiAgIDx4bXBETTphbHRUaW1lY29kZQogICAgeG1wRE06dGltZVZhbHVlPSIwMDowMDowMDowMCIKICAgIHhtcERNOnRpbWVGb3JtYXQ9IjI0VGltZWNvZGUiLz4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAA7"},t.prototype.clearScanRegion=function(){document.getElementById(this.getScanRegionId()).innerHTML=""},t.prototype.getDashboardSectionId=function(){return this.elementId+"__dashboard_section"},t.prototype.getDashboardSectionCameraScanRegionId=function(){return this.elementId+"__dashboard_section_csr"},t.prototype.getDashboardSectionFileScanRegionId=function(){return this.elementId+"__dashboard_section_fsr"},t.prototype.getDashboardSectionSwapLinkId=function(){return this.elementId+"__dashboard_section_swaplink"},t.prototype.getScanRegionId=function(){return this.elementId+"__scan_region"},t.prototype.getDashboardId=function(){return this.elementId+"__dashboard"},t.prototype.getFileScanInputId=function(){return this.elementId+"__filescan_input"},t.prototype.getStatusSpanId=function(){return this.elementId+"__status_span"},t.prototype.getHeaderMessageContainerId=function(){return this.elementId+"__header_message"},t.prototype.getCameraSelectionId=function(){return this.elementId+"__camera_selection"},t.prototype.getCameraScanRegion=function(){return document.getElementById(this.getDashboardSectionCameraScanRegionId())},t.prototype.getFileScanRegion=function(){return document.getElementById(this.getDashboardSectionFileScanRegionId())},t.prototype.getFileScanInput=function(){return document.getElementById(this.getFileScanInputId())},t.prototype.getDashboardSectionSwapLink=function(){return document.getElementById(this.getDashboardSectionSwapLinkId())},t.prototype.getHeaderMessageDiv=function(){return document.getElementById(this.getHeaderMessageContainerId())},t}()})(),__Html5QrcodeLibrary__=n})();/** Append the libary components to globals for backwards compatibility. */ +var __Html5QrcodeLibrary__;(()=>{var t={449:function(t,e,r){!function(t){"use strict";var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};var n,i=function(t){function r(e){var r,n,i,o=this.constructor,s=t.call(this,e)||this;return Object.defineProperty(s,"name",{value:o.name,enumerable:!1}),r=s,n=o.prototype,(i=Object.setPrototypeOf)?i(r,n):r.__proto__=n,function(t,e){void 0===e&&(e=t.constructor);var r=Error.captureStackTrace;r&&r(t,e)}(s),s}return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}(r,t),r}(Error);class o extends i{constructor(t){super(t),this.message=t}getKind(){return this.constructor.kind}}o.kind="Exception";class s extends o{}s.kind="ArgumentException";class a extends o{}a.kind="IllegalArgumentException";class A{constructor(t){if(this.binarizer=t,null===t)throw new a("Binarizer must be non-null.")}getWidth(){return this.binarizer.getWidth()}getHeight(){return this.binarizer.getHeight()}getBlackRow(t,e){return this.binarizer.getBlackRow(t,e)}getBlackMatrix(){return null!==this.matrix&&void 0!==this.matrix||(this.matrix=this.binarizer.getBlackMatrix()),this.matrix}isCropSupported(){return this.binarizer.getLuminanceSource().isCropSupported()}crop(t,e,r,n){const i=this.binarizer.getLuminanceSource().crop(t,e,r,n);return new A(this.binarizer.createBinarizer(i))}isRotateSupported(){return this.binarizer.getLuminanceSource().isRotateSupported()}rotateCounterClockwise(){const t=this.binarizer.getLuminanceSource().rotateCounterClockwise();return new A(this.binarizer.createBinarizer(t))}rotateCounterClockwise45(){const t=this.binarizer.getLuminanceSource().rotateCounterClockwise45();return new A(this.binarizer.createBinarizer(t))}toString(){try{return this.getBlackMatrix().toString()}catch(t){return""}}}class l extends o{static getChecksumInstance(){return new l}}l.kind="ChecksumException";class c{constructor(t){this.source=t}getLuminanceSource(){return this.source}getWidth(){return this.source.getWidth()}getHeight(){return this.source.getHeight()}}class h{static arraycopy(t,e,r,n,i){for(;i--;)r[n++]=t[e++]}static currentTimeMillis(){return Date.now()}}class g extends o{}g.kind="IndexOutOfBoundsException";class d extends g{constructor(t,e){super(e),this.index=t,this.message=e}}d.kind="ArrayIndexOutOfBoundsException";class u{static fill(t,e){for(let r=0,n=t.length;rr)throw new a("fromIndex("+e+") > toIndex("+r+")");if(e<0)throw new d(e);if(r>t)throw new d(r)}static asList(...t){return t}static create(t,e,r){return Array.from({length:t}).map((t=>Array.from({length:e}).fill(r)))}static createInt32Array(t,e,r){return Array.from({length:t}).map((t=>Int32Array.from({length:e}).fill(r)))}static equals(t,e){if(!t)return!1;if(!e)return!1;if(!t.length)return!1;if(!e.length)return!1;if(t.length!==e.length)return!1;for(let r=0,n=t.length;r>1,s=r(e,t[o]);if(s>0)n=o+1;else{if(!(s<0))return o;i=o-1}}return-n-1}static numberComparator(t,e){return t-e}}class C{static numberOfTrailingZeros(t){let e;if(0===t)return 32;let r=31;return e=t<<16,0!==e&&(r-=16,t=e),e=t<<8,0!==e&&(r-=8,t=e),e=t<<4,0!==e&&(r-=4,t=e),e=t<<2,0!==e&&(r-=2,t=e),r-(t<<1>>>31)}static numberOfLeadingZeros(t){if(0===t)return 32;let e=1;return t>>>16==0&&(e+=16,t<<=16),t>>>24==0&&(e+=8,t<<=8),t>>>28==0&&(e+=4,t<<=4),t>>>30==0&&(e+=2,t<<=2),e-=t>>>31,e}static toHexString(t){return t.toString(16)}static toBinaryString(t){return String(parseInt(String(t),2))}static bitCount(t){return t=(t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135,63&(t+=t>>>8)+(t>>>16)}static truncDivision(t,e){return Math.trunc(t/e)}static parseInt(t,e){return parseInt(t,e)}}C.MIN_VALUE_32_BITS=-2147483648,C.MAX_VALUE=Number.MAX_SAFE_INTEGER;class I{constructor(t,e){void 0===t?(this.size=0,this.bits=new Int32Array(1)):(this.size=t,this.bits=null==e?I.makeArray(t):e)}getSize(){return this.size}getSizeInBytes(){return Math.floor((this.size+7)/8)}ensureCapacity(t){if(t>32*this.bits.length){const e=I.makeArray(t);h.arraycopy(this.bits,0,e,0,this.bits.length),this.bits=e}}get(t){return 0!=(this.bits[Math.floor(t/32)]&1<<(31&t))}set(t){this.bits[Math.floor(t/32)]|=1<<(31&t)}flip(t){this.bits[Math.floor(t/32)]^=1<<(31&t)}getNextSet(t){const e=this.size;if(t>=e)return e;const r=this.bits;let n=Math.floor(t/32),i=r[n];i&=~((1<<(31&t))-1);const o=r.length;for(;0===i;){if(++n===o)return e;i=r[n]}const s=32*n+C.numberOfTrailingZeros(i);return s>e?e:s}getNextUnset(t){const e=this.size;if(t>=e)return e;const r=this.bits;let n=Math.floor(t/32),i=~r[n];i&=~((1<<(31&t))-1);const o=r.length;for(;0===i;){if(++n===o)return e;i=~r[n]}const s=32*n+C.numberOfTrailingZeros(i);return s>e?e:s}setBulk(t,e){this.bits[Math.floor(t/32)]=e}setRange(t,e){if(ethis.size)throw new a;if(e===t)return;e--;const r=Math.floor(t/32),n=Math.floor(e/32),i=this.bits;for(let o=r;o<=n;o++){const s=(2<<(or?0:31&t));i[o]|=s}}clear(){const t=this.bits.length,e=this.bits;for(let r=0;rthis.size)throw new a;if(e===t)return!0;e--;const n=Math.floor(t/32),i=Math.floor(e/32),o=this.bits;for(let s=n;s<=i;s++){const a=(2<<(sn?0:31&t))&4294967295;if((o[s]&a)!==(r?a:0))return!1}return!0}appendBit(t){this.ensureCapacity(this.size+1),t&&(this.bits[Math.floor(this.size/32)]|=1<<(31&this.size)),this.size++}appendBits(t,e){if(e<0||e>32)throw new a("Num bits must be between 0 and 32");this.ensureCapacity(this.size+e);for(let r=e;r>0;r--)this.appendBit(1==(t>>r-1&1))}appendBitArray(t){const e=t.size;this.ensureCapacity(this.size+e);for(let r=0;r>1&1431655765|(1431655765&r)<<1,r=r>>2&858993459|(858993459&r)<<2,r=r>>4&252645135|(252645135&r)<<4,r=r>>8&16711935|(16711935&r)<<8,r=r>>16&65535|(65535&r)<<16,t[e-i]=r}if(this.size!==32*r){const e=32*r-this.size;let n=t[0]>>>e;for(let i=1;i>>e}t[r-1]=n}this.bits=t}static makeArray(t){return new Int32Array(Math.floor((t+31)/32))}equals(t){if(!(t instanceof I))return!1;const e=t;return this.size===e.size&&u.equals(this.bits,e.bits)}hashCode(){return 31*this.size+u.hashCode(this.bits)}toString(){let t="";for(let e=0,r=this.size;e=900)throw new E("incorect value");const e=m.VALUES_TO_ECI.get(t);if(void 0===e)throw new E("incorect value");return e}static getCharacterSetECIByName(t){const e=m.NAME_TO_ECI.get(t);if(void 0===e)throw new E("incorect value");return e}equals(t){if(!(t instanceof m))return!1;const e=t;return this.getName()===e.getName()}}m.VALUE_IDENTIFIER_TO_ECI=new Map,m.VALUES_TO_ECI=new Map,m.NAME_TO_ECI=new Map,m.Cp437=new m(f.Cp437,Int32Array.from([0,2]),"Cp437"),m.ISO8859_1=new m(f.ISO8859_1,Int32Array.from([1,3]),"ISO-8859-1","ISO88591","ISO8859_1"),m.ISO8859_2=new m(f.ISO8859_2,4,"ISO-8859-2","ISO88592","ISO8859_2"),m.ISO8859_3=new m(f.ISO8859_3,5,"ISO-8859-3","ISO88593","ISO8859_3"),m.ISO8859_4=new m(f.ISO8859_4,6,"ISO-8859-4","ISO88594","ISO8859_4"),m.ISO8859_5=new m(f.ISO8859_5,7,"ISO-8859-5","ISO88595","ISO8859_5"),m.ISO8859_6=new m(f.ISO8859_6,8,"ISO-8859-6","ISO88596","ISO8859_6"),m.ISO8859_7=new m(f.ISO8859_7,9,"ISO-8859-7","ISO88597","ISO8859_7"),m.ISO8859_8=new m(f.ISO8859_8,10,"ISO-8859-8","ISO88598","ISO8859_8"),m.ISO8859_9=new m(f.ISO8859_9,11,"ISO-8859-9","ISO88599","ISO8859_9"),m.ISO8859_10=new m(f.ISO8859_10,12,"ISO-8859-10","ISO885910","ISO8859_10"),m.ISO8859_11=new m(f.ISO8859_11,13,"ISO-8859-11","ISO885911","ISO8859_11"),m.ISO8859_13=new m(f.ISO8859_13,15,"ISO-8859-13","ISO885913","ISO8859_13"),m.ISO8859_14=new m(f.ISO8859_14,16,"ISO-8859-14","ISO885914","ISO8859_14"),m.ISO8859_15=new m(f.ISO8859_15,17,"ISO-8859-15","ISO885915","ISO8859_15"),m.ISO8859_16=new m(f.ISO8859_16,18,"ISO-8859-16","ISO885916","ISO8859_16"),m.SJIS=new m(f.SJIS,20,"SJIS","Shift_JIS"),m.Cp1250=new m(f.Cp1250,21,"Cp1250","windows-1250"),m.Cp1251=new m(f.Cp1251,22,"Cp1251","windows-1251"),m.Cp1252=new m(f.Cp1252,23,"Cp1252","windows-1252"),m.Cp1256=new m(f.Cp1256,24,"Cp1256","windows-1256"),m.UnicodeBigUnmarked=new m(f.UnicodeBigUnmarked,25,"UnicodeBigUnmarked","UTF-16BE","UnicodeBig"),m.UTF8=new m(f.UTF8,26,"UTF8","UTF-8"),m.ASCII=new m(f.ASCII,Int32Array.from([27,170]),"ASCII","US-ASCII"),m.Big5=new m(f.Big5,28,"Big5"),m.GB18030=new m(f.GB18030,29,"GB18030","GB2312","EUC_CN","GBK"),m.EUC_KR=new m(f.EUC_KR,30,"EUC_KR","EUC-KR");class p extends o{}p.kind="UnsupportedOperationException";class S{static decode(t,e){const r=this.encodingName(e);return this.customDecoder?this.customDecoder(t,r):"undefined"==typeof TextDecoder||this.shouldDecodeOnFallback(r)?this.decodeFallback(t,r):new TextDecoder(r).decode(t)}static shouldDecodeOnFallback(t){return!S.isBrowser()&&"ISO-8859-1"===t}static encode(t,e){const r=this.encodingName(e);return this.customEncoder?this.customEncoder(t,r):"undefined"==typeof TextEncoder?this.encodeFallback(t):(new TextEncoder).encode(t)}static isBrowser(){return"undefined"!=typeof window&&"[object Window]"==={}.toString.call(window)}static encodingName(t){return"string"==typeof t?t:t.getName()}static encodingCharacterSet(t){return t instanceof m?t:m.getCharacterSetECIByName(t)}static decodeFallback(t,e){const r=this.encodingCharacterSet(e);if(S.isDecodeFallbackSupported(r)){let e="";for(let r=0,n=t.length;r3&&239===t[0]&&187===t[1]&&191===t[2];for(let e=0;e0?0==(128&r)?o=!1:s--:0!=(128&r)&&(0==(64&r)?o=!1:(s++,0==(32&r)?a++:(s++,0==(16&r)?A++:(s++,0==(8&r)?l++:o=!1))))),n&&(r>127&&r<160?n=!1:r>159&&(r<192||215===r||247===r)&&I++),i&&(c>0?r<64||127===r||r>252?i=!1:c--:128===r||160===r||r>239?i=!1:r>160&&r<224?(h++,d=0,g++,g>u&&(u=g)):r>127?(c++,g=0,d++,d>C&&(C=d)):(g=0,d=0))}return o&&s>0&&(o=!1),i&&c>0&&(i=!1),o&&(f||a+A+l>0)?R.UTF8:i&&(R.ASSUME_SHIFT_JIS||u>=3||C>=3)?R.SHIFT_JIS:n&&i?2===u&&2===h||10*I>=r?R.SHIFT_JIS:R.ISO88591:n?R.ISO88591:i?R.SHIFT_JIS:o?R.UTF8:R.PLATFORM_DEFAULT_ENCODING}static format(t,...e){let r=-1;return t.replace(/%(-)?(0?[0-9]+)?([.][0-9]+)?([#][0-9]+)?([scfpexd%])/g,(function(t,n,i,o,s,a){if("%%"===t)return"%";if(void 0===e[++r])return;t=o?parseInt(o.substr(1)):void 0;let A,l=s?parseInt(s.substr(1)):void 0;switch(a){case"s":A=e[r];break;case"c":A=e[r][0];break;case"f":A=parseFloat(e[r]).toFixed(t);break;case"p":A=parseFloat(e[r]).toPrecision(t);break;case"e":A=parseFloat(e[r]).toExponential(t);break;case"x":A=parseInt(e[r]).toString(l||16);break;case"d":A=parseFloat(parseInt(e[r],l||10).toPrecision(t)).toFixed(0)}A="object"==typeof A?JSON.stringify(A):(+A).toString(l);let c=parseInt(i),h=i&&i[0]+""=="0"?"0":" ";for(;A.lengtho){if(-1===s)s=i-o;else if(i-o!==s)throw new a("row lengths do not match");o=i,A++}l++}else if(t.substring(l,l+e.length)===e)l+=e.length,n[i]=!0,i++;else{if(t.substring(l,l+r.length)!==r)throw new a("illegal character encountered: "+t.substring(l));l+=r.length,n[i]=!1,i++}if(i>o){if(-1===s)s=i-o;else if(i-o!==s)throw new a("row lengths do not match");A++}const c=new B(s,A);for(let t=0;t>>(31&t)&1)}set(t,e){const r=e*this.rowSize+Math.floor(t/32);this.bits[r]|=1<<(31&t)&4294967295}unset(t,e){const r=e*this.rowSize+Math.floor(t/32);this.bits[r]&=~(1<<(31&t)&4294967295)}flip(t,e){const r=e*this.rowSize+Math.floor(t/32);this.bits[r]^=1<<(31&t)&4294967295}xor(t){if(this.width!==t.getWidth()||this.height!==t.getHeight()||this.rowSize!==t.getRowSize())throw new a("input matrix dimensions do not match");const e=new I(Math.floor(this.width/32)+1),r=this.rowSize,n=this.bits;for(let i=0,o=this.height;ithis.height||i>this.width)throw new a("The region must fit inside the matrix");const s=this.rowSize,A=this.bits;for(let r=e;ra&&(a=t),32*es){let t=31;for(;A>>>t==0;)t--;32*e+t>s&&(s=32*e+t)}}}return s=0&&0===e[r];)r--;if(r<0)return null;const n=Math.floor(r/t);let i=32*Math.floor(r%t);const o=e[r];let s=31;for(;o>>>s==0;)s--;return i+=s,Int32Array.from([i,n])}getWidth(){return this.width}getHeight(){return this.height}getRowSize(){return this.rowSize}equals(t){if(!(t instanceof B))return!1;const e=t;return this.width===e.width&&this.height===e.height&&this.rowSize===e.rowSize&&u.equals(this.bits,e.bits)}hashCode(){let t=this.width;return t=31*t+this.width,t=31*t+this.height,t=31*t+this.rowSize,t=31*t+u.hashCode(this.bits),t}toString(t="X ",e=" ",r="\n"){return this.buildToString(t,e,r)}buildToString(t,e,r){let n=new D;for(let i=0,o=this.height;i>T.LUMINANCE_SHIFT]++;const s=T.estimateBlackPoint(o);if(n<3)for(let t=0;t>T.LUMINANCE_SHIFT]++}const o=T.estimateBlackPoint(i),s=t.getMatrix();for(let t=0;ti&&(n=o,i=t[o]),t[o]>r&&(r=t[o]);let o=0,s=0;for(let r=0;rs&&(o=r,s=i)}if(n>o){const t=n;n=o,o=t}if(o-n<=e/16)throw new M;let a=o-1,A=-1;for(let e=o-1;e>n;e--){const i=e-n,s=i*i*(o-e)*(r-t[e]);s>A&&(a=e,A=s)}return a<=N.MINIMUM_DIMENSION&&r>=N.MINIMUM_DIMENSION){const n=t.getMatrix();let i=e>>N.BLOCK_SIZE_POWER;0!=(e&N.BLOCK_SIZE_MASK)&&i++;let o=r>>N.BLOCK_SIZE_POWER;0!=(r&N.BLOCK_SIZE_MASK)&&o++;const s=N.calculateBlackPoints(n,i,o,e,r),a=new B(e,r);N.calculateThresholdForBlock(n,i,o,e,r,s,a),this.matrix=a}else this.matrix=super.getBlackMatrix();return this.matrix}createBinarizer(t){return new N(t)}static calculateThresholdForBlock(t,e,r,n,i,o,s){const a=i-N.BLOCK_SIZE,A=n-N.BLOCK_SIZE;for(let i=0;ia&&(l=a);const c=N.cap(i,2,r-3);for(let r=0;rA&&(i=A);const a=N.cap(r,2,e-3);let h=0;for(let t=-2;t<=2;t++){const e=o[c+t];h+=e[a-2]+e[a-1]+e[a]+e[a+1]+e[a+2]}const g=h/25;N.thresholdBlock(t,i,l,g,n,s)}}}static cap(t,e,r){return tr?r:t}static thresholdBlock(t,e,r,n,i,o){for(let s=0,a=r*i+e;so&&(r=o);for(let o=0;os&&(e=s);let A=0,l=255,c=0;for(let i=0,o=r*n+e;ic&&(c=r)}if(c-l>N.MIN_DYNAMIC_RANGE)for(i++,o+=n;i>2*N.BLOCK_SIZE_POWER;if(c-l<=N.MIN_DYNAMIC_RANGE&&(h=l/2,i>0&&o>0)){const t=(a[i-1][o]+2*a[i][o-1]+a[i-1][o-1])/4;l>10,n[r]=i}return n}getRow(t,e){if(t<0||t>=this.getHeight())throw new a("Requested row is outside the image: "+t);const r=this.getWidth(),n=t*r;return null===e?e=this.buffer.slice(n,n+r):(e.lengthnew b(t.deviceId,t.label)))}))}findDeviceById(t){return P(this,void 0,void 0,(function*(){const e=yield this.listVideoInputDevices();return e?e.find((e=>e.deviceId===t)):null}))}decodeFromInputVideoDevice(t,e){return P(this,void 0,void 0,(function*(){return yield this.decodeOnceFromVideoDevice(t,e)}))}decodeOnceFromVideoDevice(t,e){return P(this,void 0,void 0,(function*(){let r;this.reset(),r=t?{deviceId:{exact:t}}:{facingMode:"environment"};const n={video:r};return yield this.decodeOnceFromConstraints(n,e)}))}decodeOnceFromConstraints(t,e){return P(this,void 0,void 0,(function*(){const r=yield navigator.mediaDevices.getUserMedia(t);return yield this.decodeOnceFromStream(r,e)}))}decodeOnceFromStream(t,e){return P(this,void 0,void 0,(function*(){this.reset();const r=yield this.attachStreamToVideo(t,e);return yield this.decodeOnce(r)}))}decodeFromInputVideoDeviceContinuously(t,e,r){return P(this,void 0,void 0,(function*(){return yield this.decodeFromVideoDevice(t,e,r)}))}decodeFromVideoDevice(t,e,r){return P(this,void 0,void 0,(function*(){let n;n=t?{deviceId:{exact:t}}:{facingMode:"environment"};const i={video:n};return yield this.decodeFromConstraints(i,e,r)}))}decodeFromConstraints(t,e,r){return P(this,void 0,void 0,(function*(){const n=yield navigator.mediaDevices.getUserMedia(t);return yield this.decodeFromStream(n,e,r)}))}decodeFromStream(t,e,r){return P(this,void 0,void 0,(function*(){this.reset();const n=yield this.attachStreamToVideo(t,e);return yield this.decodeContinuously(n,r)}))}stopAsyncDecode(){this._stopAsyncDecode=!0}stopContinuousDecode(){this._stopContinuousDecode=!0}attachStreamToVideo(t,e){return P(this,void 0,void 0,(function*(){const r=this.prepareVideoElement(e);return this.addVideoSource(r,t),this.videoElement=r,this.stream=t,yield this.playVideoOnLoadAsync(r),r}))}playVideoOnLoadAsync(t){return new Promise(((e,r)=>this.playVideoOnLoad(t,(()=>e()))))}playVideoOnLoad(t,e){this.videoEndedListener=()=>this.stopStreams(),this.videoCanPlayListener=()=>this.tryPlayVideo(t),t.addEventListener("ended",this.videoEndedListener),t.addEventListener("canplay",this.videoCanPlayListener),t.addEventListener("playing",e),this.tryPlayVideo(t)}isVideoPlaying(t){return t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2}tryPlayVideo(t){return P(this,void 0,void 0,(function*(){if(this.isVideoPlaying(t))console.warn("Trying to play video that is already playing.");else try{yield t.play()}catch(t){console.warn("It was not possible to play the video.")}}))}getMediaElement(t,e){const r=document.getElementById(t);if(!r)throw new s(`element with id '${t}' not found`);if(r.nodeName.toLowerCase()!==e.toLowerCase())throw new s(`element with id '${t}' must be an ${e} element`);return r}decodeFromImage(t,e){if(!t&&!e)throw new s("either imageElement with a src set or an url must be provided");return e&&!t?this.decodeFromImageUrl(e):this.decodeFromImageElement(t)}decodeFromVideo(t,e){if(!t&&!e)throw new s("Either an element with a src set or an URL must be provided");return e&&!t?this.decodeFromVideoUrl(e):this.decodeFromVideoElement(t)}decodeFromVideoContinuously(t,e,r){if(void 0===t&&void 0===e)throw new s("Either an element with a src set or an URL must be provided");return e&&!t?this.decodeFromVideoUrlContinuously(e,r):this.decodeFromVideoElementContinuously(t,r)}decodeFromImageElement(t){if(!t)throw new s("An image element must be provided.");this.reset();const e=this.prepareImageElement(t);let r;return this.imageElement=e,r=this.isImageLoaded(e)?this.decodeOnce(e,!1,!0):this._decodeOnLoadImage(e),r}decodeFromVideoElement(t){const e=this._decodeFromVideoElementSetup(t);return this._decodeOnLoadVideo(e)}decodeFromVideoElementContinuously(t,e){const r=this._decodeFromVideoElementSetup(t);return this._decodeOnLoadVideoContinuously(r,e)}_decodeFromVideoElementSetup(t){if(!t)throw new s("A video element must be provided.");this.reset();const e=this.prepareVideoElement(t);return this.videoElement=e,e}decodeFromImageUrl(t){if(!t)throw new s("An URL must be provided.");this.reset();const e=this.prepareImageElement();this.imageElement=e;const r=this._decodeOnLoadImage(e);return e.src=t,r}decodeFromVideoUrl(t){if(!t)throw new s("An URL must be provided.");this.reset();const e=this.prepareVideoElement(),r=this.decodeFromVideoElement(e);return e.src=t,r}decodeFromVideoUrlContinuously(t,e){if(!t)throw new s("An URL must be provided.");this.reset();const r=this.prepareVideoElement(),n=this.decodeFromVideoElementContinuously(r,e);return r.src=t,n}_decodeOnLoadImage(t){return new Promise(((e,r)=>{this.imageLoadedListener=()=>this.decodeOnce(t,!1,!0).then(e,r),t.addEventListener("load",this.imageLoadedListener)}))}_decodeOnLoadVideo(t){return P(this,void 0,void 0,(function*(){return yield this.playVideoOnLoadAsync(t),yield this.decodeOnce(t)}))}_decodeOnLoadVideoContinuously(t,e){return P(this,void 0,void 0,(function*(){yield this.playVideoOnLoadAsync(t),this.decodeContinuously(t,e)}))}isImageLoaded(t){return!!t.complete&&0!==t.naturalWidth}prepareImageElement(t){let e;return void 0===t&&(e=document.createElement("img"),e.width=200,e.height=200),"string"==typeof t&&(e=this.getMediaElement(t,"img")),t instanceof HTMLImageElement&&(e=t),e}prepareVideoElement(t){let e;return t||"undefined"==typeof document||(e=document.createElement("video"),e.width=200,e.height=200),"string"==typeof t&&(e=this.getMediaElement(t,"video")),t instanceof HTMLVideoElement&&(e=t),e.setAttribute("autoplay","true"),e.setAttribute("muted","true"),e.setAttribute("playsinline","true"),e}decodeOnce(t,e=!0,r=!0){this._stopAsyncDecode=!1;const n=(i,o)=>{if(this._stopAsyncDecode)return o(new M("Video stream has ended before any code could be detected.")),void(this._stopAsyncDecode=void 0);try{i(this.decode(t))}catch(t){const s=(t instanceof l||t instanceof E)&&r;if(e&&t instanceof M||s)return setTimeout(n,this._timeBetweenDecodingAttempts,i,o);o(t)}};return new Promise(((t,e)=>n(t,e)))}decodeContinuously(t,e){this._stopContinuousDecode=!1;const r=()=>{if(this._stopContinuousDecode)this._stopContinuousDecode=void 0;else try{const n=this.decode(t);e(n,null),setTimeout(r,this.timeBetweenScansMillis)}catch(t){e(null,t);const n=t instanceof M;(t instanceof l||t instanceof E||n)&&setTimeout(r,this._timeBetweenDecodingAttempts)}};r()}decode(t){const e=this.createBinaryBitmap(t);return this.decodeBitmap(e)}createBinaryBitmap(t){const e=this.getCaptureCanvasContext(t);this.drawImageOnCanvas(e,t);const r=this.getCaptureCanvas(t),n=new O(r),i=new N(n);return new A(i)}getCaptureCanvasContext(t){if(!this.captureCanvasContext){const e=this.getCaptureCanvas(t).getContext("2d");this.captureCanvasContext=e}return this.captureCanvasContext}getCaptureCanvas(t){if(!this.captureCanvas){const e=this.createCaptureCanvas(t);this.captureCanvas=e}return this.captureCanvas}drawImageOnCanvas(t,e){t.drawImage(e,0,0)}decodeBitmap(t){return this.reader.decode(t,this._hints)}createCaptureCanvas(t){if("undefined"==typeof document)return this._destroyCaptureCanvas(),null;const e=document.createElement("canvas");let r,n;return void 0!==t&&(t instanceof HTMLVideoElement?(r=t.videoWidth,n=t.videoHeight):t instanceof HTMLImageElement&&(r=t.naturalWidth||t.width,n=t.naturalHeight||t.height)),e.style.width=r+"px",e.style.height=n+"px",e.width=r,e.height=n,e}stopStreams(){this.stream&&(this.stream.getVideoTracks().forEach((t=>t.stop())),this.stream=void 0),!1===this._stopAsyncDecode&&this.stopAsyncDecode(),!1===this._stopContinuousDecode&&this.stopContinuousDecode()}reset(){this.stopStreams(),this._destroyVideoElement(),this._destroyImageElement(),this._destroyCaptureCanvas()}_destroyVideoElement(){this.videoElement&&(void 0!==this.videoEndedListener&&this.videoElement.removeEventListener("ended",this.videoEndedListener),void 0!==this.videoPlayingEventListener&&this.videoElement.removeEventListener("playing",this.videoPlayingEventListener),void 0!==this.videoCanPlayListener&&this.videoElement.removeEventListener("loadedmetadata",this.videoCanPlayListener),this.cleanVideoSource(this.videoElement),this.videoElement=void 0)}_destroyImageElement(){this.imageElement&&(void 0!==this.imageLoadedListener&&this.imageElement.removeEventListener("load",this.imageLoadedListener),this.imageElement.src=void 0,this.imageElement.removeAttribute("src"),this.imageElement=void 0)}_destroyCaptureCanvas(){this.captureCanvasContext=void 0,this.captureCanvas=void 0}addVideoSource(t,e){try{t.srcObject=e}catch(r){t.src=URL.createObjectURL(e)}}cleanVideoSource(t){try{t.srcObject=null}catch(e){t.src=""}this.videoElement.removeAttribute("src")}}class L{constructor(t,e,r=(null==e?0:8*e.length),n,i,o=h.currentTimeMillis()){this.text=t,this.rawBytes=e,this.numBits=r,this.resultPoints=n,this.format=i,this.timestamp=o,this.text=t,this.rawBytes=e,this.numBits=null==r?null==e?0:8*e.length:r,this.resultPoints=n,this.format=i,this.resultMetadata=null,this.timestamp=null==o?h.currentTimeMillis():o}getText(){return this.text}getRawBytes(){return this.rawBytes}getNumBits(){return this.numBits}getResultPoints(){return this.resultPoints}getBarcodeFormat(){return this.format}getResultMetadata(){return this.resultMetadata}putMetadata(t,e){null===this.resultMetadata&&(this.resultMetadata=new Map),this.resultMetadata.set(t,e)}putAllMetadata(t){null!==t&&(null===this.resultMetadata?this.resultMetadata=t:this.resultMetadata=new Map(t))}addResultPoints(t){const e=this.resultPoints;if(null===e)this.resultPoints=t;else if(null!==t&&t.length>0){const r=new Array(e.length+t.length);h.arraycopy(e,0,r,0,e.length),h.arraycopy(t,0,r,e.length,t.length),this.resultPoints=r}}getTimestamp(){return this.timestamp}toString(){return this.text}}!function(t){t[t.AZTEC=0]="AZTEC",t[t.CODABAR=1]="CODABAR",t[t.CODE_39=2]="CODE_39",t[t.CODE_93=3]="CODE_93",t[t.CODE_128=4]="CODE_128",t[t.DATA_MATRIX=5]="DATA_MATRIX",t[t.EAN_8=6]="EAN_8",t[t.EAN_13=7]="EAN_13",t[t.ITF=8]="ITF",t[t.MAXICODE=9]="MAXICODE",t[t.PDF_417=10]="PDF_417",t[t.QR_CODE=11]="QR_CODE",t[t.RSS_14=12]="RSS_14",t[t.RSS_EXPANDED=13]="RSS_EXPANDED",t[t.UPC_A=14]="UPC_A",t[t.UPC_E=15]="UPC_E",t[t.UPC_EAN_EXTENSION=16]="UPC_EAN_EXTENSION"}(F||(F={}));var G,Q=F;!function(t){t[t.OTHER=0]="OTHER",t[t.ORIENTATION=1]="ORIENTATION",t[t.BYTE_SEGMENTS=2]="BYTE_SEGMENTS",t[t.ERROR_CORRECTION_LEVEL=3]="ERROR_CORRECTION_LEVEL",t[t.ISSUE_NUMBER=4]="ISSUE_NUMBER",t[t.SUGGESTED_PRICE=5]="SUGGESTED_PRICE",t[t.POSSIBLE_COUNTRY=6]="POSSIBLE_COUNTRY",t[t.UPC_EAN_EXTENSION=7]="UPC_EAN_EXTENSION",t[t.PDF417_EXTRA_METADATA=8]="PDF417_EXTRA_METADATA",t[t.STRUCTURED_APPEND_SEQUENCE=9]="STRUCTURED_APPEND_SEQUENCE",t[t.STRUCTURED_APPEND_PARITY=10]="STRUCTURED_APPEND_PARITY"}(G||(G={}));var Z,U,Y,v,x,W,H=G;class V{constructor(t,e,r,n,i=-1,o=-1){this.rawBytes=t,this.text=e,this.byteSegments=r,this.ecLevel=n,this.structuredAppendSequenceNumber=i,this.structuredAppendParity=o,this.numBits=null==t?0:8*t.length}getRawBytes(){return this.rawBytes}getNumBits(){return this.numBits}setNumBits(t){this.numBits=t}getText(){return this.text}getByteSegments(){return this.byteSegments}getECLevel(){return this.ecLevel}getErrorsCorrected(){return this.errorsCorrected}setErrorsCorrected(t){this.errorsCorrected=t}getErasures(){return this.erasures}setErasures(t){this.erasures=t}getOther(){return this.other}setOther(t){this.other=t}hasStructuredAppend(){return this.structuredAppendParity>=0&&this.structuredAppendSequenceNumber>=0}getStructuredAppendParity(){return this.structuredAppendParity}getStructuredAppendSequenceNumber(){return this.structuredAppendSequenceNumber}}class j{exp(t){return this.expTable[t]}log(t){if(0===t)throw new a;return this.logTable[t]}static addOrSubtract(t,e){return t^e}}class X{constructor(t,e){if(0===e.length)throw new a;this.field=t;const r=e.length;if(r>1&&0===e[0]){let t=1;for(;tr.length){const t=e;e=r,r=t}let n=new Int32Array(r.length);const i=r.length-e.length;h.arraycopy(r,0,n,0,i);for(let t=i;t=t.getDegree()&&!n.isZero();){const i=n.getDegree()-t.getDegree(),s=e.multiply(n.getCoefficient(n.getDegree()),o),a=t.multiplyByMonomial(i,s),A=e.buildMonomial(i,s);r=r.addOrSubtract(A),n=n.addOrSubtract(a)}return[r,n]}toString(){let t="";for(let e=this.getDegree();e>=0;e--){let r=this.getCoefficient(e);if(0!==r){if(r<0?(t+=" - ",r=-r):t.length>0&&(t+=" + "),0===e||1!==r){const e=this.field.log(r);0===e?t+="1":1===e?t+="a":(t+="a^",t+=e)}0!==e&&(1===e?t+="x":(t+="x^",t+=e))}}return t}}class z extends o{}z.kind="ArithmeticException";class J extends j{constructor(t,e,r){super(),this.primitive=t,this.size=e,this.generatorBase=r;const n=new Int32Array(e);let i=1;for(let r=0;r=e&&(i^=t,i&=e-1);this.expTable=n;const o=new Int32Array(e);for(let t=0;t=(r/2|0);){let t=i,e=s;if(i=o,s=a,i.isZero())throw new K("r_{i-1} was zero");o=t;let r=n.getZero();const A=i.getCoefficient(i.getDegree()),l=n.inverse(A);for(;o.getDegree()>=i.getDegree()&&!o.isZero();){const t=o.getDegree()-i.getDegree(),e=n.multiply(o.getCoefficient(o.getDegree()),l);r=r.addOrSubtract(n.buildMonomial(t,e)),o=o.addOrSubtract(i.multiplyByMonomial(t,e))}if(a=r.multiply(s).addOrSubtract(e),o.getDegree()>=i.getDegree())throw new q("Division algorithm failed to reduce polynomial?")}const A=a.getCoefficient(0);if(0===A)throw new K("sigmaTilde(0) was zero");const l=n.inverse(A);return[a.multiplyScalar(l),o.multiplyScalar(l)]}findErrorLocations(t){const e=t.getDegree();if(1===e)return Int32Array.from([t.getCoefficient(1)]);const r=new Int32Array(e);let n=0;const i=this.field;for(let o=1;o1,c,c+r-1),c+=r-1;else for(let t=r-1;t>=0;--t)l[c++]=0!=(e&1<=8?tt.readCode(t,e,8):tt.readCode(t,e,r)<<8-r}static convertBoolArrayToByteArray(t){let e=new Uint8Array((t.length+7)/8);for(let r=0;r","?","[","]","{","}","CTRL_UL"],tt.DIGIT_TABLE=["CTRL_PS"," ","0","1","2","3","4","5","6","7","8","9",",",".","CTRL_UL","CTRL_US"];class et{constructor(){}static round(t){return NaN===t?0:t<=Number.MIN_SAFE_INTEGER?Number.MIN_SAFE_INTEGER:t>=Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:t+(t<0?-.5:.5)|0}static distance(t,e,r,n){const i=t-r,o=e-n;return Math.sqrt(i*i+o*o)}static sum(t){let e=0;for(let r=0,n=t.length;r!==n;r++)e+=t[r];return e}}class rt{static floatToIntBits(t){return t}}rt.MAX_VALUE=Number.MAX_SAFE_INTEGER;class nt{constructor(t,e){this.x=t,this.y=e}getX(){return this.x}getY(){return this.y}equals(t){if(t instanceof nt){const e=t;return this.x===e.x&&this.y===e.y}return!1}hashCode(){return 31*rt.floatToIntBits(this.x)+rt.floatToIntBits(this.y)}toString(){return"("+this.x+","+this.y+")"}static orderBestPatterns(t){const e=this.distance(t[0],t[1]),r=this.distance(t[1],t[2]),n=this.distance(t[0],t[2]);let i,o,s;if(r>=e&&r>=n?(o=t[0],i=t[1],s=t[2]):n>=r&&n>=e?(o=t[1],i=t[0],s=t[2]):(o=t[2],i=t[0],s=t[1]),this.crossProductZ(i,o,s)<0){const t=i;i=s,s=t}t[0]=i,t[1]=o,t[2]=s}static distance(t,e){return et.distance(t.x,t.y,e.x,e.y)}static crossProductZ(t,e,r){const n=e.x,i=e.y;return(r.x-n)*(t.y-i)-(r.y-i)*(t.x-n)}}class it{constructor(t,e){this.bits=t,this.points=e}getBits(){return this.bits}getPoints(){return this.points}}class ot extends it{constructor(t,e,r,n,i){super(t,e),this.compact=r,this.nbDatablocks=n,this.nbLayers=i}getNbLayers(){return this.nbLayers}getNbDatablocks(){return this.nbDatablocks}isCompact(){return this.compact}}class st{constructor(t,e,r,n){this.image=t,this.height=t.getHeight(),this.width=t.getWidth(),null==e&&(e=st.INIT_SIZE),null==r&&(r=t.getWidth()/2|0),null==n&&(n=t.getHeight()/2|0);const i=e/2|0;if(this.leftInit=r-i,this.rightInit=r+i,this.upInit=n-i,this.downInit=n+i,this.upInit<0||this.leftInit<0||this.downInit>=this.height||this.rightInit>=this.width)throw new M}detect(){let t=this.leftInit,e=this.rightInit,r=this.upInit,n=this.downInit,i=!1,o=!0,s=!1,a=!1,A=!1,l=!1,c=!1;const h=this.width,g=this.height;for(;o;){o=!1;let d=!0;for(;(d||!a)&&e=h){i=!0;break}let u=!0;for(;(u||!A)&&n=g){i=!0;break}let C=!0;for(;(C||!l)&&t>=0;)C=this.containsBlackPoint(r,n,t,!1),C?(t--,o=!0,l=!0):l||t--;if(t<0){i=!0;break}let I=!0;for(;(I||!c)&&r>=0;)I=this.containsBlackPoint(t,e,r,!0),I?(r--,o=!0,c=!0):c||r--;if(r<0){i=!0;break}o&&(s=!0)}if(!i&&s){const i=e-t;let o=null;for(let e=1;null===o&&er||s<-1||s>n)throw new M;i=!1,-1===o?(e[t]=0,i=!0):o===r&&(e[t]=r-1,i=!0),-1===s?(e[t+1]=0,i=!0):s===n&&(e[t+1]=n-1,i=!0)}i=!0;for(let t=e.length-2;t>=0&&i;t-=2){const o=Math.floor(e[t]),s=Math.floor(e[t+1]);if(o<-1||o>r||s<-1||s>n)throw new M;i=!1,-1===o?(e[t]=0,i=!0):o===r&&(e[t]=r-1,i=!0),-1===s?(e[t+1]=0,i=!0):s===n&&(e[t+1]=n-1,i=!0)}}}class At{constructor(t,e,r,n,i,o,s,a,A){this.a11=t,this.a21=e,this.a31=r,this.a12=n,this.a22=i,this.a32=o,this.a13=s,this.a23=a,this.a33=A}static quadrilateralToQuadrilateral(t,e,r,n,i,o,s,a,A,l,c,h,g,d,u,C){const I=At.quadrilateralToSquare(t,e,r,n,i,o,s,a);return At.squareToQuadrilateral(A,l,c,h,g,d,u,C).times(I)}transformPoints(t){const e=t.length,r=this.a11,n=this.a12,i=this.a13,o=this.a21,s=this.a22,a=this.a23,A=this.a31,l=this.a32,c=this.a33;for(let h=0;h>1&127):(n<<=10,n+=(e>>2&992)+(e>>1&31))}let i=this.getCorrectedParameterData(n,this.compact);this.compact?(this.nbLayers=1+(i>>6),this.nbDataBlocks=1+(63&i)):(this.nbLayers=1+(i>>11),this.nbDataBlocks=1+(2047&i))}getRotation(t,e){let r=0;t.forEach(((t,n,i)=>{r=(t>>e-2<<1)+(1&t)+(r<<3)})),r=((1&r)<<11)+(r>>1);for(let t=0;t<4;t++)if(C.bitCount(r^this.EXPECTED_CORNER_BITS[t])<=2)return t;throw new M}getCorrectedParameterData(t,e){let r,n;e?(r=7,n=2):(r=10,n=4);let i=r-n,o=new Int32Array(r);for(let e=r-1;e>=0;--e)o[e]=15&t,t>>=4;try{new $(J.AZTEC_PARAM).decode(o,i)}catch(t){throw new M}let s=0;for(let t=0;t2){let r=this.distancePoint(A,t)*this.nbCenterLayers/(this.distancePoint(i,e)*(this.nbCenterLayers+2));if(r<.75||r>1.25||!this.isWhiteOrBlackRectangle(t,s,a,A))break}e=t,r=s,n=a,i=A,o=!o}if(5!==this.nbCenterLayers&&7!==this.nbCenterLayers)throw new M;this.compact=5===this.nbCenterLayers;let s=new nt(e.getX()+.5,e.getY()-.5),a=new nt(r.getX()+.5,r.getY()+.5),A=new nt(n.getX()-.5,n.getY()+.5),l=new nt(i.getX()-.5,i.getY()-.5);return this.expandSquare([s,a,A,l],2*this.nbCenterLayers-3,2*this.nbCenterLayers)}getMatrixCenter(){let t,e,r,n;try{let i=new st(this.image).detect();t=i[0],e=i[1],r=i[2],n=i[3]}catch(i){let o=this.image.getWidth()/2,s=this.image.getHeight()/2;t=this.getFirstDifferent(new ht(o+7,s-7),!1,1,-1).toResultPoint(),e=this.getFirstDifferent(new ht(o+7,s+7),!1,1,1).toResultPoint(),r=this.getFirstDifferent(new ht(o-7,s+7),!1,-1,1).toResultPoint(),n=this.getFirstDifferent(new ht(o-7,s-7),!1,-1,-1).toResultPoint()}let i=et.round((t.getX()+n.getX()+e.getX()+r.getX())/4),o=et.round((t.getY()+n.getY()+e.getY()+r.getY())/4);try{let s=new st(this.image,15,i,o).detect();t=s[0],e=s[1],r=s[2],n=s[3]}catch(s){t=this.getFirstDifferent(new ht(i+7,o-7),!1,1,-1).toResultPoint(),e=this.getFirstDifferent(new ht(i+7,o+7),!1,1,1).toResultPoint(),r=this.getFirstDifferent(new ht(i-7,o+7),!1,-1,1).toResultPoint(),n=this.getFirstDifferent(new ht(i-7,o-7),!1,-1,-1).toResultPoint()}return i=et.round((t.getX()+n.getX()+e.getX()+r.getX())/4),o=et.round((t.getY()+n.getY()+e.getY()+r.getY())/4),new ht(i,o)}getMatrixCornerPoints(t){return this.expandSquare(t,2*this.nbCenterLayers,this.getDimension())}sampleGrid(t,e,r,n,i){let o=ct.getInstance(),s=this.getDimension(),a=s/2-this.nbCenterLayers,A=s/2+this.nbCenterLayers;return o.sampleGrid(t,s,s,a,a,A,a,A,A,a,A,e.getX(),e.getY(),r.getX(),r.getY(),n.getX(),n.getY(),i.getX(),i.getY())}sampleLine(t,e,r){let n=0,i=this.distanceResultPoint(t,e),o=i/r,s=t.getX(),a=t.getY(),A=o*(e.getX()-t.getX())/i,l=o*(e.getY()-t.getY())/i;for(let t=0;t.1&&c<.9?0:c<=.1===A?1:-1}getFirstDifferent(t,e,r,n){let i=t.getX()+r,o=t.getY()+n;for(;this.isValid(i,o)&&this.image.get(i,o)===e;)i+=r,o+=n;for(i-=r,o-=n;this.isValid(i,o)&&this.image.get(i,o)===e;)i+=r;for(i-=r;this.isValid(i,o)&&this.image.get(i,o)===e;)o+=n;return o-=n,new ht(i,o)}expandSquare(t,e,r){let n=r/(2*e),i=t[0].getX()-t[2].getX(),o=t[0].getY()-t[2].getY(),s=(t[0].getX()+t[2].getX())/2,a=(t[0].getY()+t[2].getY())/2,A=new nt(s+n*i,a+n*o),l=new nt(s-n*i,a-n*o);return i=t[1].getX()-t[3].getX(),o=t[1].getY()-t[3].getY(),s=(t[1].getX()+t[3].getX())/2,a=(t[1].getY()+t[3].getY())/2,[A,new nt(s+n*i,a+n*o),l,new nt(s-n*i,a-n*o)]}isValid(t,e){return t>=0&&t0&&e{r.foundPossibleResultPoint(t)}))}}reset(){}}class ut{decode(t,e){try{return this.doDecode(t,e)}catch(r){if(e&&!0===e.get(w.TRY_HARDER)&&t.isRotateSupported()){const r=t.rotateCounterClockwise(),n=this.doDecode(r,e),i=n.getResultMetadata();let o=270;null!==i&&!0===i.get(H.ORIENTATION)&&(o+=i.get(H.ORIENTATION)%360),n.putMetadata(H.ORIENTATION,o);const s=n.getResultPoints();if(null!==s){const t=r.getHeight();for(let e=0;e>(o?8:5));let a;a=o?n:15;const A=Math.trunc(n/2);for(let o=0;o=n)break;try{i=t.getBlackRow(l,i)}catch(t){continue}for(let t=0;t<2;t++){if(1===t&&(i.reverse(),e&&!0===e.get(w.NEED_RESULT_POINT_CALLBACK))){const t=new Map;e.forEach(((e,r)=>t.set(r,e))),t.delete(w.NEED_RESULT_POINT_CALLBACK),e=t}try{const n=this.decodeRow(l,i,e);if(1===t){n.putMetadata(H.ORIENTATION,180);const t=n.getResultPoints();null!==t&&(t[0]=new nt(r-t[0].getX()-1,t[0].getY()),t[1]=new nt(r-t[1].getX()-1,t[1].getY()))}return n}catch(t){}}}throw new M}static recordPattern(t,e,r){const n=r.length;for(let t=0;t=i)throw new M;let o=!t.get(e),s=0,a=e;for(;a0&&n>=0;)t.get(--e)!==i&&(n--,i=!i);if(n>=0)throw new M;ut.recordPattern(t,e+1,r)}static patternMatchVariance(t,e,r){const n=t.length;let i=0,o=0;for(let r=0;ro?n-o:o-n;if(A>r)return Number.POSITIVE_INFINITY;a+=A}return a/i}}class Ct extends ut{static findStartPattern(t){const e=t.getSize(),r=t.getNextSet(0);let n=0,i=Int32Array.from([0,0,0,0,0,0]),o=r,s=!1;for(let a=r;a=0&&t.isRange(Math.max(0,o-(a-o)/2),o,!1))return Int32Array.from([o,a,r]);o+=i[0]+i[1],i=i.slice(2,i.length-1),i[n-1]=0,i[n]=0,n--}else n++;i[n]=1,s=!s}throw new M}static decodeCode(t,e,r){ut.recordPattern(t,r,e);let n=Ct.MAX_AVG_VARIANCE,i=-1;for(let t=0;t=0)return i;throw new M}decodeRow(t,e,r){const n=r&&!0===r.get(w.ASSUME_GS1),i=Ct.findStartPattern(e),o=i[2];let s=0;const a=new Uint8Array(20);let A;switch(a[s++]=o,o){case Ct.CODE_START_A:A=Ct.CODE_CODE_A;break;case Ct.CODE_START_B:A=Ct.CODE_CODE_B;break;case Ct.CODE_START_C:A=Ct.CODE_CODE_C;break;default:throw new E}let c=!1,h=!1,g="",d=i[0],u=i[1];const C=Int32Array.from([0,0,0,0,0,0]);let I=0,f=0,m=o,p=0,S=!0,R=!1,D=!1;for(;!c;){const t=h;switch(h=!1,I=f,f=Ct.decodeCode(e,C,u),a[s++]=f,f!==Ct.CODE_STOP&&(S=!0),f!==Ct.CODE_STOP&&(p++,m+=p*f),d=u,u+=C.reduce(((t,e)=>t+e),0),f){case Ct.CODE_START_A:case Ct.CODE_START_B:case Ct.CODE_START_C:throw new E}switch(A){case Ct.CODE_CODE_A:if(f<64)g+=D===R?String.fromCharCode(" ".charCodeAt(0)+f):String.fromCharCode(" ".charCodeAt(0)+f+128),D=!1;else if(f<96)g+=D===R?String.fromCharCode(f-64):String.fromCharCode(f+64),D=!1;else switch(f!==Ct.CODE_STOP&&(S=!1),f){case Ct.CODE_FNC_1:n&&(0===g.length?g+="]C1":g+=String.fromCharCode(29));break;case Ct.CODE_FNC_2:case Ct.CODE_FNC_3:break;case Ct.CODE_FNC_4_A:!R&&D?(R=!0,D=!1):R&&D?(R=!1,D=!1):D=!0;break;case Ct.CODE_SHIFT:h=!0,A=Ct.CODE_CODE_B;break;case Ct.CODE_CODE_B:A=Ct.CODE_CODE_B;break;case Ct.CODE_CODE_C:A=Ct.CODE_CODE_C;break;case Ct.CODE_STOP:c=!0}break;case Ct.CODE_CODE_B:if(f<96)g+=D===R?String.fromCharCode(" ".charCodeAt(0)+f):String.fromCharCode(" ".charCodeAt(0)+f+128),D=!1;else switch(f!==Ct.CODE_STOP&&(S=!1),f){case Ct.CODE_FNC_1:n&&(0===g.length?g+="]C1":g+=String.fromCharCode(29));break;case Ct.CODE_FNC_2:case Ct.CODE_FNC_3:break;case Ct.CODE_FNC_4_B:!R&&D?(R=!0,D=!1):R&&D?(R=!1,D=!1):D=!0;break;case Ct.CODE_SHIFT:h=!0,A=Ct.CODE_CODE_A;break;case Ct.CODE_CODE_A:A=Ct.CODE_CODE_A;break;case Ct.CODE_CODE_C:A=Ct.CODE_CODE_C;break;case Ct.CODE_STOP:c=!0}break;case Ct.CODE_CODE_C:if(f<100)f<10&&(g+="0"),g+=f;else switch(f!==Ct.CODE_STOP&&(S=!1),f){case Ct.CODE_FNC_1:n&&(0===g.length?g+="]C1":g+=String.fromCharCode(29));break;case Ct.CODE_CODE_A:A=Ct.CODE_CODE_A;break;case Ct.CODE_CODE_B:A=Ct.CODE_CODE_B;break;case Ct.CODE_STOP:c=!0}}t&&(A=A===Ct.CODE_CODE_A?Ct.CODE_CODE_B:Ct.CODE_CODE_A)}const B=u-d;if(u=e.getNextUnset(u),!e.isRange(u,Math.min(e.getSize(),u+(u-d)/2),!1))throw new M;if(m-=p*I,m%103!==I)throw new l;const T=g.length;if(0===T)throw new M;T>0&&S&&(g=A===Ct.CODE_CODE_C?g.substring(0,T-2):g.substring(0,T-1));const N=(i[1]+i[0])/2,y=d+B/2,_=a.length,O=new Uint8Array(_);for(let t=0;t<_;t++)O[t]=a[t];const b=[new nt(N,t),new nt(y,t)];return new L(g,O,0,b,Q.CODE_128,(new Date).getTime())}}Ct.CODE_PATTERNS=[Int32Array.from([2,1,2,2,2,2]),Int32Array.from([2,2,2,1,2,2]),Int32Array.from([2,2,2,2,2,1]),Int32Array.from([1,2,1,2,2,3]),Int32Array.from([1,2,1,3,2,2]),Int32Array.from([1,3,1,2,2,2]),Int32Array.from([1,2,2,2,1,3]),Int32Array.from([1,2,2,3,1,2]),Int32Array.from([1,3,2,2,1,2]),Int32Array.from([2,2,1,2,1,3]),Int32Array.from([2,2,1,3,1,2]),Int32Array.from([2,3,1,2,1,2]),Int32Array.from([1,1,2,2,3,2]),Int32Array.from([1,2,2,1,3,2]),Int32Array.from([1,2,2,2,3,1]),Int32Array.from([1,1,3,2,2,2]),Int32Array.from([1,2,3,1,2,2]),Int32Array.from([1,2,3,2,2,1]),Int32Array.from([2,2,3,2,1,1]),Int32Array.from([2,2,1,1,3,2]),Int32Array.from([2,2,1,2,3,1]),Int32Array.from([2,1,3,2,1,2]),Int32Array.from([2,2,3,1,1,2]),Int32Array.from([3,1,2,1,3,1]),Int32Array.from([3,1,1,2,2,2]),Int32Array.from([3,2,1,1,2,2]),Int32Array.from([3,2,1,2,2,1]),Int32Array.from([3,1,2,2,1,2]),Int32Array.from([3,2,2,1,1,2]),Int32Array.from([3,2,2,2,1,1]),Int32Array.from([2,1,2,1,2,3]),Int32Array.from([2,1,2,3,2,1]),Int32Array.from([2,3,2,1,2,1]),Int32Array.from([1,1,1,3,2,3]),Int32Array.from([1,3,1,1,2,3]),Int32Array.from([1,3,1,3,2,1]),Int32Array.from([1,1,2,3,1,3]),Int32Array.from([1,3,2,1,1,3]),Int32Array.from([1,3,2,3,1,1]),Int32Array.from([2,1,1,3,1,3]),Int32Array.from([2,3,1,1,1,3]),Int32Array.from([2,3,1,3,1,1]),Int32Array.from([1,1,2,1,3,3]),Int32Array.from([1,1,2,3,3,1]),Int32Array.from([1,3,2,1,3,1]),Int32Array.from([1,1,3,1,2,3]),Int32Array.from([1,1,3,3,2,1]),Int32Array.from([1,3,3,1,2,1]),Int32Array.from([3,1,3,1,2,1]),Int32Array.from([2,1,1,3,3,1]),Int32Array.from([2,3,1,1,3,1]),Int32Array.from([2,1,3,1,1,3]),Int32Array.from([2,1,3,3,1,1]),Int32Array.from([2,1,3,1,3,1]),Int32Array.from([3,1,1,1,2,3]),Int32Array.from([3,1,1,3,2,1]),Int32Array.from([3,3,1,1,2,1]),Int32Array.from([3,1,2,1,1,3]),Int32Array.from([3,1,2,3,1,1]),Int32Array.from([3,3,2,1,1,1]),Int32Array.from([3,1,4,1,1,1]),Int32Array.from([2,2,1,4,1,1]),Int32Array.from([4,3,1,1,1,1]),Int32Array.from([1,1,1,2,2,4]),Int32Array.from([1,1,1,4,2,2]),Int32Array.from([1,2,1,1,2,4]),Int32Array.from([1,2,1,4,2,1]),Int32Array.from([1,4,1,1,2,2]),Int32Array.from([1,4,1,2,2,1]),Int32Array.from([1,1,2,2,1,4]),Int32Array.from([1,1,2,4,1,2]),Int32Array.from([1,2,2,1,1,4]),Int32Array.from([1,2,2,4,1,1]),Int32Array.from([1,4,2,1,1,2]),Int32Array.from([1,4,2,2,1,1]),Int32Array.from([2,4,1,2,1,1]),Int32Array.from([2,2,1,1,1,4]),Int32Array.from([4,1,3,1,1,1]),Int32Array.from([2,4,1,1,1,2]),Int32Array.from([1,3,4,1,1,1]),Int32Array.from([1,1,1,2,4,2]),Int32Array.from([1,2,1,1,4,2]),Int32Array.from([1,2,1,2,4,1]),Int32Array.from([1,1,4,2,1,2]),Int32Array.from([1,2,4,1,1,2]),Int32Array.from([1,2,4,2,1,1]),Int32Array.from([4,1,1,2,1,2]),Int32Array.from([4,2,1,1,1,2]),Int32Array.from([4,2,1,2,1,1]),Int32Array.from([2,1,2,1,4,1]),Int32Array.from([2,1,4,1,2,1]),Int32Array.from([4,1,2,1,2,1]),Int32Array.from([1,1,1,1,4,3]),Int32Array.from([1,1,1,3,4,1]),Int32Array.from([1,3,1,1,4,1]),Int32Array.from([1,1,4,1,1,3]),Int32Array.from([1,1,4,3,1,1]),Int32Array.from([4,1,1,1,1,3]),Int32Array.from([4,1,1,3,1,1]),Int32Array.from([1,1,3,1,4,1]),Int32Array.from([1,1,4,1,3,1]),Int32Array.from([3,1,1,1,4,1]),Int32Array.from([4,1,1,1,3,1]),Int32Array.from([2,1,1,4,1,2]),Int32Array.from([2,1,1,2,1,4]),Int32Array.from([2,1,1,2,3,2]),Int32Array.from([2,3,3,1,1,1,2])],Ct.MAX_AVG_VARIANCE=.25,Ct.MAX_INDIVIDUAL_VARIANCE=.7,Ct.CODE_SHIFT=98,Ct.CODE_CODE_C=99,Ct.CODE_CODE_B=100,Ct.CODE_CODE_A=101,Ct.CODE_FNC_1=102,Ct.CODE_FNC_2=97,Ct.CODE_FNC_3=96,Ct.CODE_FNC_4_A=101,Ct.CODE_FNC_4_B=100,Ct.CODE_START_A=103,Ct.CODE_START_B=104,Ct.CODE_START_C=105,Ct.CODE_STOP=106;class It extends ut{constructor(t=!1,e=!1){super(),this.usingCheckDigit=t,this.extendedMode=e,this.decodeRowResult="",this.counters=new Int32Array(9)}decodeRow(t,e,r){let n=this.counters;n.fill(0),this.decodeRowResult="";let i,o,s=It.findAsteriskPattern(e,n),a=e.getNextSet(s[1]),A=e.getSize();do{It.recordPattern(e,a,n);let t=It.toNarrowWidePattern(n);if(t<0)throw new M;i=It.patternToChar(t),this.decodeRowResult+=i,o=a;for(let t of n)a+=t;a=e.getNextSet(a)}while("*"!==i);this.decodeRowResult=this.decodeRowResult.substring(0,this.decodeRowResult.length-1);let c,h=0;for(let t of n)h+=t;if(a!==A&&2*(a-o-h)n&&(i=e);n=i,e=0;let o=0,s=0;for(let i=0;in&&(s|=1<0;i++){let r=t[i];if(r>n&&(e--,2*r>=o))return-1}return s}}while(e>3);return-1}static patternToChar(t){for(let e=0;e="A"&&i<="Z"))throw new E;o=String.fromCharCode(i.charCodeAt(0)+32);break;case"$":if(!(i>="A"&&i<="Z"))throw new E;o=String.fromCharCode(i.charCodeAt(0)-64);break;case"%":if(i>="A"&&i<="E")o=String.fromCharCode(i.charCodeAt(0)-38);else if(i>="F"&&i<="J")o=String.fromCharCode(i.charCodeAt(0)-11);else if(i>="K"&&i<="O")o=String.fromCharCode(i.charCodeAt(0)+16);else if(i>="P"&&i<="T")o=String.fromCharCode(i.charCodeAt(0)+43);else if("U"===i)o="\0";else if("V"===i)o="@";else if("W"===i)o="`";else{if("X"!==i&&"Y"!==i&&"Z"!==i)throw new E;o=""}break;case"/":if(i>="A"&&i<="O")o=String.fromCharCode(i.charCodeAt(0)-32);else{if("Z"!==i)throw new E;o=":"}}r+=o,n++}else r+=e}return r}}It.ALPHABET_STRING="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",It.CHARACTER_ENCODINGS=[52,289,97,352,49,304,112,37,292,100,265,73,328,25,280,88,13,268,76,28,259,67,322,19,274,82,7,262,70,22,385,193,448,145,400,208,133,388,196,168,162,138,42],It.ASTERISK_ENCODING=148;class ft extends ut{constructor(){super(...arguments),this.narrowLineWidth=-1}decodeRow(t,e,r){let n=this.decodeStart(e),i=this.decodeEnd(e),o=new D;ft.decodeMiddle(e,n[1],i[0],o);let s=o.toString(),a=null;null!=r&&(a=r.get(w.ALLOWED_LENGTHS)),null==a&&(a=ft.DEFAULT_ALLOWED_LENGTHS);let A=s.length,l=!1,c=0;for(let t of a){if(A===t){l=!0;break}t>c&&(c=t)}if(!l&&A>c&&(l=!0),!l)throw new E;const h=[new nt(n[1],t),new nt(i[0],t)];return new L(s,null,0,h,Q.ITF,(new Date).getTime())}static decodeMiddle(t,e,r,n){let i=new Int32Array(10),o=new Int32Array(5),s=new Int32Array(5);for(i.fill(0),o.fill(0),s.fill(0);e0&&n>=0&&!t.get(n);n--)r--;if(0!==r)throw new M}static skipWhiteSpace(t){const e=t.getSize(),r=t.getNextSet(0);if(r===e)throw new M;return r}decodeEnd(t){t.reverse();try{let e,r=ft.skipWhiteSpace(t);try{e=ft.findGuardPattern(t,r,ft.END_PATTERN_REVERSED[0])}catch(n){n instanceof M&&(e=ft.findGuardPattern(t,r,ft.END_PATTERN_REVERSED[1]))}this.validateQuietZone(t,e[0]);let n=e[0];return e[0]=t.getSize()-e[1],e[1]=t.getSize()-n,e}finally{t.reverse()}}static findGuardPattern(t,e,r){let n=r.length,i=new Int32Array(n),o=t.getSize(),s=!1,a=0,A=e;i.fill(0);for(let l=e;l=0)return r%10;throw new M}}ft.PATTERNS=[Int32Array.from([1,1,2,2,1]),Int32Array.from([2,1,1,1,2]),Int32Array.from([1,2,1,1,2]),Int32Array.from([2,2,1,1,1]),Int32Array.from([1,1,2,1,2]),Int32Array.from([2,1,2,1,1]),Int32Array.from([1,2,2,1,1]),Int32Array.from([1,1,1,2,2]),Int32Array.from([2,1,1,2,1]),Int32Array.from([1,2,1,2,1]),Int32Array.from([1,1,3,3,1]),Int32Array.from([3,1,1,1,3]),Int32Array.from([1,3,1,1,3]),Int32Array.from([3,3,1,1,1]),Int32Array.from([1,1,3,1,3]),Int32Array.from([3,1,3,1,1]),Int32Array.from([1,3,3,1,1]),Int32Array.from([1,1,1,3,3]),Int32Array.from([3,1,1,3,1]),Int32Array.from([1,3,1,3,1])],ft.MAX_AVG_VARIANCE=.38,ft.MAX_INDIVIDUAL_VARIANCE=.5,ft.DEFAULT_ALLOWED_LENGTHS=[6,8,10,12,14],ft.START_PATTERN=Int32Array.from([1,1,1,1]),ft.END_PATTERN_REVERSED=[Int32Array.from([1,1,2]),Int32Array.from([1,1,3])];class wt extends ut{constructor(){super(...arguments),this.decodeRowStringBuffer=""}static findStartGuardPattern(t){let e,r=!1,n=0,i=Int32Array.from([0,0,0]);for(;!r;){i=Int32Array.from([0,0,0]),e=wt.findGuardPattern(t,n,!1,this.START_END_PATTERN,i);let o=e[0];n=e[1];let s=o-(n-o);s>=0&&(r=t.isRange(s,o,!1))}return e}static checkChecksum(t){return wt.checkStandardUPCEANChecksum(t)}static checkStandardUPCEANChecksum(t){let e=t.length;if(0===e)return!1;let r=parseInt(t.charAt(e-1),10);return wt.getStandardUPCEANChecksum(t.substring(0,e-1))===r}static getStandardUPCEANChecksum(t){let e=t.length,r=0;for(let n=e-1;n>=0;n-=2){let e=t.charAt(n).charCodeAt(0)-"0".charCodeAt(0);if(e<0||e>9)throw new E;r+=e}r*=3;for(let n=e-2;n>=0;n-=2){let e=t.charAt(n).charCodeAt(0)-"0".charCodeAt(0);if(e<0||e>9)throw new E;r+=e}return(1e3-r)%10}static decodeEnd(t,e){return wt.findGuardPattern(t,e,!1,wt.START_END_PATTERN,new Int32Array(wt.START_END_PATTERN.length).fill(0))}static findGuardPatternWithoutCounters(t,e,r,n){return this.findGuardPattern(t,e,r,n,new Int32Array(n.length))}static findGuardPattern(t,e,r,n,i){let o=t.getSize(),s=0,a=e=r?t.getNextUnset(e):t.getNextSet(e),A=n.length,l=r;for(let r=e;r=0)return o;throw new M}}wt.MAX_AVG_VARIANCE=.48,wt.MAX_INDIVIDUAL_VARIANCE=.7,wt.START_END_PATTERN=Int32Array.from([1,1,1]),wt.MIDDLE_PATTERN=Int32Array.from([1,1,1,1,1]),wt.END_PATTERN=Int32Array.from([1,1,1,1,1,1]),wt.L_PATTERNS=[Int32Array.from([3,2,1,1]),Int32Array.from([2,2,2,1]),Int32Array.from([2,1,2,2]),Int32Array.from([1,4,1,1]),Int32Array.from([1,1,3,2]),Int32Array.from([1,2,3,1]),Int32Array.from([1,1,1,4]),Int32Array.from([1,3,1,2]),Int32Array.from([1,2,1,3]),Int32Array.from([3,1,1,2])];class Et{constructor(){this.CHECK_DIGIT_ENCODINGS=[24,20,18,17,12,6,3,10,9,5],this.decodeMiddleCounters=Int32Array.from([0,0,0,0]),this.decodeRowStringBuffer=""}decodeRow(t,e,r){let n=this.decodeRowStringBuffer,i=this.decodeMiddle(e,r,n),o=n.toString(),s=Et.parseExtensionString(o),a=[new nt((r[0]+r[1])/2,t),new nt(i,t)],A=new L(o,null,0,a,Q.UPC_EAN_EXTENSION,(new Date).getTime());return null!=s&&A.putAllMetadata(s),A}decodeMiddle(t,e,r){let n=this.decodeMiddleCounters;n[0]=0,n[1]=0,n[2]=0,n[3]=0;let i=t.getSize(),o=e[1],s=0;for(let e=0;e<5&&o=10&&(s|=1<<4-e),4!==e&&(o=t.getNextSet(o),o=t.getNextUnset(o))}if(5!==r.length)throw new M;let a=this.determineCheckDigit(s);if(Et.extensionChecksum(r.toString())!==a)throw new M;return o}static extensionChecksum(t){let e=t.length,r=0;for(let n=e-2;n>=0;n-=2)r+=t.charAt(n).charCodeAt(0)-"0".charCodeAt(0);r*=3;for(let n=e-1;n>=0;n-=2)r+=t.charAt(n).charCodeAt(0)-"0".charCodeAt(0);return r*=3,r%10}determineCheckDigit(t){for(let e=0;e<10;e++)if(t===this.CHECK_DIGIT_ENCODINGS[e])return e;throw new M}static parseExtensionString(t){if(5!==t.length)return null;let e=Et.parseExtension5String(t);return null==e?null:new Map([[H.SUGGESTED_PRICE,e]])}static parseExtension5String(t){let e;switch(t.charAt(0)){case"0":e="£";break;case"5":e="$";break;case"9":switch(t){case"90000":return null;case"99991":return"0.00";case"99990":return"Used"}e="";break;default:e=""}let r=parseInt(t.substring(1)),n=r%100;return e+(r/100).toString()+"."+(n<10?"0"+n:n.toString())}}class mt{constructor(){this.decodeMiddleCounters=Int32Array.from([0,0,0,0]),this.decodeRowStringBuffer=""}decodeRow(t,e,r){let n=this.decodeRowStringBuffer,i=this.decodeMiddle(e,r,n),o=n.toString(),s=mt.parseExtensionString(o),a=[new nt((r[0]+r[1])/2,t),new nt(i,t)],A=new L(o,null,0,a,Q.UPC_EAN_EXTENSION,(new Date).getTime());return null!=s&&A.putAllMetadata(s),A}decodeMiddle(t,e,r){let n=this.decodeMiddleCounters;n[0]=0,n[1]=0,n[2]=0,n[3]=0;let i=t.getSize(),o=e[1],s=0;for(let e=0;e<2&&o=10&&(s|=1<<1-e),1!==e&&(o=t.getNextSet(o),o=t.getNextUnset(o))}if(2!==r.length)throw new M;if(parseInt(r.toString())%4!==s)throw new M;return o}static parseExtensionString(t){return 2!==t.length?null:new Map([[H.ISSUE_NUMBER,parseInt(t)]])}}class pt{static decodeRow(t,e,r){let n=wt.findGuardPattern(e,r,!1,this.EXTENSION_START_PATTERN,new Int32Array(this.EXTENSION_START_PATTERN.length).fill(0));try{return(new Et).decodeRow(t,e,n)}catch(r){return(new mt).decodeRow(t,e,n)}}}pt.EXTENSION_START_PATTERN=Int32Array.from([1,1,2]);class St extends wt{constructor(){super(),this.decodeRowStringBuffer="",St.L_AND_G_PATTERNS=St.L_PATTERNS.map((t=>Int32Array.from(t)));for(let t=10;t<20;t++){let e=St.L_PATTERNS[t-10],r=new Int32Array(e.length);for(let t=0;t=e.getSize()||!e.isRange(c,h,!1))throw new M;let g=a.toString();if(g.length<8)throw new E;if(!St.checkChecksum(g))throw new l;let d=(n[1]+n[0])/2,u=(A[1]+A[0])/2,C=this.getBarcodeFormat(),I=[new nt(d,t),new nt(u,t)],f=new L(g,null,0,I,C,(new Date).getTime()),m=0;try{let r=pt.decodeRow(t,e,A[1]);f.putMetadata(H.UPC_EAN_EXTENSION,r.getText()),f.putAllMetadata(r.getResultMetadata()),f.addResultPoints(r.getResultPoints()),m=r.getText().length}catch(t){}let p=null==r?null:r.get(w.ALLOWED_EAN_EXTENSIONS);if(null!=p){let t=!1;for(let e in p)if(m.toString()===e){t=!0;break}if(!t)throw new M}return C===Q.EAN_13||Q.UPC_A,f}static checkChecksum(t){return St.checkStandardUPCEANChecksum(t)}static checkStandardUPCEANChecksum(t){let e=t.length;if(0===e)return!1;let r=parseInt(t.charAt(e-1),10);return St.getStandardUPCEANChecksum(t.substring(0,e-1))===r}static getStandardUPCEANChecksum(t){let e=t.length,r=0;for(let n=e-1;n>=0;n-=2){let e=t.charAt(n).charCodeAt(0)-"0".charCodeAt(0);if(e<0||e>9)throw new E;r+=e}r*=3;for(let n=e-2;n>=0;n-=2){let e=t.charAt(n).charCodeAt(0)-"0".charCodeAt(0);if(e<0||e>9)throw new E;r+=e}return(1e3-r)%10}static decodeEnd(t,e){return St.findGuardPattern(t,e,!1,St.START_END_PATTERN,new Int32Array(St.START_END_PATTERN.length).fill(0))}}class Rt extends St{constructor(){super(),this.decodeMiddleCounters=Int32Array.from([0,0,0,0])}decodeMiddle(t,e,r){let n=this.decodeMiddleCounters;n[0]=0,n[1]=0,n[2]=0,n[3]=0;let i=t.getSize(),o=e[1],s=0;for(let e=0;e<6&&o=10&&(s|=1<<5-e)}r=Rt.determineFirstDigit(r,s),o=St.findGuardPattern(t,o,!0,St.MIDDLE_PATTERN,new Int32Array(St.MIDDLE_PATTERN.length).fill(0))[1];for(let e=0;e<6&&ot));n[0]=0,n[1]=0,n[2]=0,n[3]=0;const i=t.getSize();let o=e[1],s=0;for(let e=0;e<6&&o=10&&(s|=1<<5-e)}return Mt.determineNumSysAndCheckDigit(new D(r),s),o}decodeEnd(t,e){return Mt.findGuardPatternWithoutCounters(t,e,!0,Mt.MIDDLE_END_PATTERN)}checkChecksum(t){return St.checkChecksum(Mt.convertUPCEtoUPCA(t))}static determineNumSysAndCheckDigit(t,e){for(let r=0;r<=1;r++)for(let n=0;n<10;n++)if(e===this.NUMSYS_AND_CHECK_DIGIT_PATTERNS[r][n])return t.insert(0,"0"+r),void t.append("0"+n);throw M.getNotFoundInstance()}getBarcodeFormat(){return Q.UPC_E}static convertUPCEtoUPCA(t){const e=t.slice(1,7).split("").map((t=>t.charCodeAt(0))),r=new D;r.append(t.charAt(0));let n=e[5];switch(n){case 0:case 1:case 2:r.appendChars(e,0,2),r.append(n),r.append("0000"),r.appendChars(e,2,3);break;case 3:r.appendChars(e,0,3),r.append("00000"),r.appendChars(e,3,2);break;case 4:r.appendChars(e,0,4),r.append("00000"),r.append(e[4]);break;default:r.appendChars(e,0,5),r.append("0000"),r.append(n)}return t.length>=8&&r.append(t.charAt(7)),r.toString()}}Mt.MIDDLE_END_PATTERN=Int32Array.from([1,1,1,1,1,1]),Mt.NUMSYS_AND_CHECK_DIGIT_PATTERNS=[Int32Array.from([56,52,50,49,44,38,35,42,41,37]),Int32Array.from([7,11,13,14,19,25,28,21,22,1])];class Tt extends ut{constructor(t){super();let e=null==t?null:t.get(w.POSSIBLE_FORMATS),r=[];null!=e&&(e.indexOf(Q.EAN_13)>-1?r.push(new Rt):e.indexOf(Q.UPC_A)>-1&&r.push(new Bt),e.indexOf(Q.EAN_8)>-1&&r.push(new Dt),e.indexOf(Q.UPC_E)>-1&&r.push(new Mt)),0===r.length&&(r.push(new Rt),r.push(new Dt),r.push(new Mt)),this.readers=r}decodeRow(t,e,r){for(let n of this.readers)try{const i=n.decodeRow(t,e,r),o=i.getBarcodeFormat()===Q.EAN_13&&"0"===i.getText().charAt(0),s=null==r?null:r.get(w.POSSIBLE_FORMATS),a=null==s||s.includes(Q.UPC_A);if(o&&a){const t=i.getRawBytes(),e=new L(i.getText().substring(1),t,t.length,i.getResultPoints(),Q.UPC_A);return e.putAllMetadata(i.getResultMetadata()),e}return i}catch(t){}throw new M}reset(){for(let t of this.readers)t.reset()}}class Nt extends ut{constructor(){super(),this.decodeFinderCounters=new Int32Array(4),this.dataCharacterCounters=new Int32Array(8),this.oddRoundingErrors=new Array(4),this.evenRoundingErrors=new Array(4),this.oddCounts=new Array(this.dataCharacterCounters.length/2),this.evenCounts=new Array(this.dataCharacterCounters.length/2)}getDecodeFinderCounters(){return this.decodeFinderCounters}getDataCharacterCounters(){return this.dataCharacterCounters}getOddRoundingErrors(){return this.oddRoundingErrors}getEvenRoundingErrors(){return this.evenRoundingErrors}getOddCounts(){return this.oddCounts}getEvenCounts(){return this.evenCounts}parseFinderValue(t,e){for(let r=0;rn&&(n=e[i],r=i);t[r]++}static decrement(t,e){let r=0,n=e[0];for(let i=1;i=Nt.MIN_FINDER_PATTERN_RATIO&&r<=Nt.MAX_FINDER_PATTERN_RATIO){let e=Number.MAX_SAFE_INTEGER,r=Number.MIN_SAFE_INTEGER;for(let n of t)n>r&&(r=n),n=s-a-1&&(t-=Ot.combins(n-A-(s-a),s-a-2)),s-a-1>1){let r=0;for(let t=n-A-(s-a-2);t>e;t--)r+=Ot.combins(n-A-t-1,s-a-3);t-=r*(s-1-a)}else n-A>e&&t--;i+=t}n-=A}return i}static combins(t,e){let r,n;t-e>e?(n=e,r=t-e):(n=t-e,r=e);let i=1,o=1;for(let e=t;e>r;e--)i*=e,o<=n&&(i/=o,o++);for(;o<=n;)i/=o,o++;return i}}class bt{constructor(t,e){e?this.decodedInformation=null:(this.finished=t,this.decodedInformation=e)}getDecodedInformation(){return this.decodedInformation}isFinished(){return this.finished}}class Ft{constructor(t){this.newPosition=t}getNewPosition(){return this.newPosition}}class Pt extends Ft{constructor(t,e){super(t),this.value=e}getValue(){return this.value}isFNC1(){return this.value===Pt.FNC1}}Pt.FNC1="$";class kt extends Ft{constructor(t,e,r){super(t),r?(this.remaining=!0,this.remainingValue=this.remainingValue):(this.remaining=!1,this.remainingValue=0),this.newString=e}getNewString(){return this.newString}isRemaining(){return this.remaining}getRemainingValue(){return this.remainingValue}}class Lt extends Ft{constructor(t,e,r){if(super(t),e<0||e>10||r<0||r>10)throw new E;this.firstDigit=e,this.secondDigit=r}getFirstDigit(){return this.firstDigit}getSecondDigit(){return this.secondDigit}getValue(){return 10*this.firstDigit+this.secondDigit}isFirstDigitFNC1(){return this.firstDigit===Lt.FNC1}isSecondDigitFNC1(){return this.secondDigit===Lt.FNC1}isAnyFNC1(){return this.firstDigit===Lt.FNC1||this.secondDigit===Lt.FNC1}}Lt.FNC1=10;class Gt{constructor(){}static parseFieldsInGeneralPurpose(t){if(!t)return null;if(t.length<2)throw new M;let e=t.substring(0,2);for(let r of Gt.TWO_DIGIT_DATA_LENGTH)if(r[0]===e)return r[1]===Gt.VARIABLE_LENGTH?Gt.processVariableAI(2,r[2],t):Gt.processFixedAI(2,r[1],t);if(t.length<3)throw new M;let r=t.substring(0,3);for(let e of Gt.THREE_DIGIT_DATA_LENGTH)if(e[0]===r)return e[1]===Gt.VARIABLE_LENGTH?Gt.processVariableAI(3,e[2],t):Gt.processFixedAI(3,e[1],t);for(let e of Gt.THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH)if(e[0]===r)return e[1]===Gt.VARIABLE_LENGTH?Gt.processVariableAI(4,e[2],t):Gt.processFixedAI(4,e[1],t);if(t.length<4)throw new M;let n=t.substring(0,4);for(let e of Gt.FOUR_DIGIT_DATA_LENGTH)if(e[0]===n)return e[1]===Gt.VARIABLE_LENGTH?Gt.processVariableAI(4,e[2],t):Gt.processFixedAI(4,e[1],t);throw new M}static processFixedAI(t,e,r){if(r.lengththis.information.getSize())return t+4<=this.information.getSize();for(let e=t;ethis.information.getSize()){let e=this.extractNumericValueFromBitArray(t,4);return new Lt(this.information.getSize(),0===e?Lt.FNC1:e-1,Lt.FNC1)}let e=this.extractNumericValueFromBitArray(t,7);return new Lt(t+7,(e-8)/11,(e-8)%11)}extractNumericValueFromBitArray(t,e){return Qt.extractNumericValueFromBitArray(this.information,t,e)}static extractNumericValueFromBitArray(t,e,r){let n=0;for(let i=0;ithis.information.getSize())return!1;let e=this.extractNumericValueFromBitArray(t,5);if(e>=5&&e<16)return!0;if(t+7>this.information.getSize())return!1;let r=this.extractNumericValueFromBitArray(t,7);if(r>=64&&r<116)return!0;if(t+8>this.information.getSize())return!1;let n=this.extractNumericValueFromBitArray(t,8);return n>=232&&n<253}decodeIsoIec646(t){let e=this.extractNumericValueFromBitArray(t,5);if(15===e)return new Pt(t+5,Pt.FNC1);if(e>=5&&e<15)return new Pt(t+5,"0"+(e-5));let r,n=this.extractNumericValueFromBitArray(t,7);if(n>=64&&n<90)return new Pt(t+7,""+(n+1));if(n>=90&&n<116)return new Pt(t+7,""+(n+7));switch(this.extractNumericValueFromBitArray(t,8)){case 232:r="!";break;case 233:r='"';break;case 234:r="%";break;case 235:r="&";break;case 236:r="'";break;case 237:r="(";break;case 238:r=")";break;case 239:r="*";break;case 240:r="+";break;case 241:r=",";break;case 242:r="-";break;case 243:r=".";break;case 244:r="/";break;case 245:r=":";break;case 246:r=";";break;case 247:r="<";break;case 248:r="=";break;case 249:r=">";break;case 250:r="?";break;case 251:r="_";break;case 252:r=" ";break;default:throw new E}return new Pt(t+8,r)}isStillAlpha(t){if(t+5>this.information.getSize())return!1;let e=this.extractNumericValueFromBitArray(t,5);if(e>=5&&e<16)return!0;if(t+6>this.information.getSize())return!1;let r=this.extractNumericValueFromBitArray(t,6);return r>=16&&r<63}decodeAlphanumeric(t){let e=this.extractNumericValueFromBitArray(t,5);if(15===e)return new Pt(t+5,Pt.FNC1);if(e>=5&&e<15)return new Pt(t+5,"0"+(e-5));let r,n=this.extractNumericValueFromBitArray(t,6);if(n>=32&&n<58)return new Pt(t+6,""+(n+33));switch(n){case 58:r="*";break;case 59:r=",";break;case 60:r="-";break;case 61:r=".";break;case 62:r="/";break;default:throw new q("Decoding invalid alphanumeric value: "+n)}return new Pt(t+6,r)}isAlphaTo646ToAlphaLatch(t){if(t+1>this.information.getSize())return!1;for(let e=0;e<5&&e+tthis.information.getSize())return!1;for(let e=t;ethis.information.getSize())return!1;for(let e=0;e<4&&e+t{e.forEach((e=>{t.getLeftChar().getValue()===e.getLeftChar().getValue()&&t.getRightChar().getValue()===e.getRightChar().getValue()&&t.getFinderPatter().getValue()===e.getFinderPatter().getValue()&&(r=!0)}))})),r}}class qt extends Nt{constructor(t){super(...arguments),this.pairs=new Array(qt.MAX_PAIRS),this.rows=new Array,this.startEnd=[2],this.verbose=!0===t}decodeRow(t,e,r){this.pairs.length=0,this.startFromEven=!1;try{return qt.constructResult(this.decodeRow2pairs(t,e))}catch(t){this.verbose&&console.log(t)}return this.pairs.length=0,this.startFromEven=!0,qt.constructResult(this.decodeRow2pairs(t,e))}reset(){this.pairs.length=0,this.rows.length=0}decodeRow2pairs(t,e){let r,n=!1;for(;!n;)try{this.pairs.push(this.retrieveNextPair(e,this.pairs,t))}catch(t){if(t instanceof M){if(!this.pairs.length)throw new M;n=!0}}if(this.checkChecksum())return this.pairs;if(r=!!this.rows.length,this.storeRow(t,!1),r){let t=this.checkRowsBoolean(!1);if(null!=t)return t;if(t=this.checkRowsBoolean(!0),null!=t)return t}throw new M}checkRowsBoolean(t){if(this.rows.length>25)return this.rows.length=0,null;this.pairs.length=0,t&&(this.rows=this.rows.reverse());let e=null;try{e=this.checkRows(new Array,0)}catch(t){this.verbose&&console.log(t)}return t&&(this.rows=this.rows.reverse()),e}checkRows(t,e){for(let r=e;re.length)continue;let r=!0;for(let n=0;nt){i=e.isEquivalent(this.pairs);break}n=e.isEquivalent(this.pairs),r++}i||n||qt.isPartialRow(this.pairs,this.rows)||(this.rows.push(r,new Kt(this.pairs,t,e)),this.removePartialRows(this.pairs,this.rows))}removePartialRows(t,e){for(let r of e)if(r.getPairs().length!==t.length)for(let e of r.getPairs())for(let r of t)if(Jt.equals(e,r))break}static isPartialRow(t,e){for(let r of e){let e=!0;for(let n of t){let t=!1;for(let e of r.getPairs())if(n.equals(e)){t=!0;break}if(!t){e=!1;break}}if(e)return!0}return!1}getRows(){return this.rows}static constructResult(t){let e=function(t){try{if(t.get(1))return new Yt(t);if(!t.get(2))return new vt(t);switch(Qt.extractNumericValueFromBitArray(t,1,4)){case 4:return new Ht(t);case 5:return new Vt(t)}switch(Qt.extractNumericValueFromBitArray(t,1,5)){case 12:return new jt(t);case 13:return new Xt(t)}switch(Qt.extractNumericValueFromBitArray(t,1,7)){case 56:return new zt(t,"310","11");case 57:return new zt(t,"320","11");case 58:return new zt(t,"310","13");case 59:return new zt(t,"320","13");case 60:return new zt(t,"310","15");case 61:return new zt(t,"320","15");case 62:return new zt(t,"310","17");case 63:return new zt(t,"320","17")}}catch(e){throw console.log(e),new q("unknown decoder: "+t)}}(class{static buildBitArray(t){let e=2*t.length-1;null==t[t.length-1].getRightChar()&&(e-=1);let r=new I(12*e),n=0,i=t[0].getRightChar().getValue();for(let t=11;t>=0;--t)0!=(i&1<=0;--t)0!=(o&1<=0;--e)0!=(t&1<=0?r:this.isEmptyPair(e)?0:e[e.length-1].getFinderPattern().getStartEnd()[1];let s=e.length%2!=0;this.startFromEven&&(s=!s);let a=!1;for(;i=0&&!t.get(e);)e--;e++,n=this.startEnd[0]-e,i=e,o=this.startEnd[1]}else i=this.startEnd[0],o=t.getNextUnset(this.startEnd[1]+1),n=o-this.startEnd[1];let s,a=this.getDecodeFinderCounters();h.arraycopy(a,0,a,1,a.length-1),a[0]=n;try{s=this.parseFinderValue(a,qt.FINDER_PATTERNS)}catch(t){return null}return new _t(s,[i,o],i,o,e)}decodeDataCharacter(t,e,r,n){let i=this.getDataCharacterCounters();for(let t=0;t.3)throw new M;let a=this.getOddCounts(),A=this.getEvenCounts(),l=this.getOddRoundingErrors(),c=this.getEvenRoundingErrors();for(let t=0;t8){if(e>8.7)throw new M;r=8}let n=t/2;0==(1&t)?(a[n]=r,l[n]=e-r):(A[n]=r,c[n]=e-r)}this.adjustOddEvenCounts(17);let h=4*e.getValue()+(r?0:2)+(n?0:1)-1,g=0,d=0;for(let t=a.length-1;t>=0;t--){if(qt.isNotA1left(e,r,n)){let e=qt.WEIGHTS[h][2*t];d+=a[t]*e}g+=a[t]}let u=0;for(let t=A.length-1;t>=0;t--)if(qt.isNotA1left(e,r,n)){let e=qt.WEIGHTS[h][2*t+1];u+=A[t]*e}let C=d+u;if(0!=(1&g)||g>13||g<4)throw new M;let I=(13-g)/2,f=qt.SYMBOL_WIDEST[I],w=9-f,E=Ot.getRSSvalue(a,f,!0),m=Ot.getRSSvalue(A,w,!1),p=qt.EVEN_TOTAL_SUBSET[I],S=qt.GSUM[I];return new yt(E*p+m+S,C)}static isNotA1left(t,e,r){return!(0==t.getValue()&&e&&r)}adjustOddEvenCounts(t){let e=et.sum(new Int32Array(this.getOddCounts())),r=et.sum(new Int32Array(this.getEvenCounts())),n=!1,i=!1;e>13?i=!0:e<4&&(n=!0);let o=!1,s=!1;r>13?s=!0:r<4&&(o=!0);let a=e+r-t,A=1==(1&e),l=0==(1&r);if(1==a)if(A){if(l)throw new M;i=!0}else{if(!l)throw new M;s=!0}else if(-1==a)if(A){if(l)throw new M;n=!0}else{if(!l)throw new M;o=!0}else{if(0!=a)throw new M;if(A){if(!l)throw new M;e1)for(let e of this.possibleRightPairs)if(e.getCount()>1&&te.checkChecksum(t,e))return te.constructResult(t,e);throw new M}static addOrTally(t,e){if(null==e)return;let r=!1;for(let n of t)if(n.getValue()===e.getValue()){n.incrementCount(),r=!0;break}r||t.push(e)}reset(){this.possibleLeftPairs.length=0,this.possibleRightPairs.length=0}static constructResult(t,e){let r=4537077*t.getValue()+e.getValue(),n=new String(r).toString(),i=new D;for(let t=13-n.length;t>0;t--)i.append("0");i.append(n);let o=0;for(let t=0;t<13;t++){let e=i.charAt(t).charCodeAt(0)-"0".charCodeAt(0);o+=0==(1&t)?3*e:e}o=10-o%10,10===o&&(o=0),i.append(o.toString());let s=t.getFinderPattern().getResultPoints(),a=e.getFinderPattern().getResultPoints();return new L(i.toString(),null,0,[s[0],s[1],a[0],a[1]],Q.RSS_14,(new Date).getTime())}static checkChecksum(t,e){let r=(t.getChecksumPortion()+16*e.getChecksumPortion())%79,n=9*t.getFinderPattern().getValue()+e.getFinderPattern().getValue();return n>72&&n--,n>8&&n--,r===n}decodePair(t,e,r,n){try{let i=this.findFinderPattern(t,e),o=this.parseFoundFinderPattern(t,r,e,i),s=null==n?null:n.get(w.NEED_RESULT_POINT_CALLBACK);if(null!=s){let n=(i[0]+i[1])/2;e&&(n=t.getSize()-1-n),s.foundPossibleResultPoint(new nt(n,r))}let a=this.decodeDataCharacter(t,o,!0),A=this.decodeDataCharacter(t,o,!1);return new $t(1597*a.getValue()+A.getValue(),a.getChecksumPortion()+4*A.getChecksumPortion(),o)}catch(t){return null}}decodeDataCharacter(t,e,r){let n=this.getDataCharacterCounters();for(let t=0;t8&&(r=8);let i=Math.floor(t/2);0==(1&t)?(s[i]=r,A[i]=e-r):(a[i]=r,l[i]=e-r)}this.adjustOddEvenCounts(r,i);let c=0,h=0;for(let t=s.length-1;t>=0;t--)h*=9,h+=s[t],c+=s[t];let g=0,d=0;for(let t=a.length-1;t>=0;t--)g*=9,g+=a[t],d+=a[t];let u=h+3*g;if(r){if(0!=(1&c)||c>12||c<4)throw new M;let t=(12-c)/2,e=te.OUTSIDE_ODD_WIDEST[t],r=9-e,n=Ot.getRSSvalue(s,e,!1),i=Ot.getRSSvalue(a,r,!0),o=te.OUTSIDE_EVEN_TOTAL_SUBSET[t],A=te.OUTSIDE_GSUM[t];return new yt(n*o+i+A,u)}{if(0!=(1&d)||d>10||d<4)throw new M;let t=(10-d)/2,e=te.INSIDE_ODD_WIDEST[t],r=9-e,n=Ot.getRSSvalue(s,e,!0),i=Ot.getRSSvalue(a,r,!1),o=te.INSIDE_ODD_TOTAL_SUBSET[t],A=te.INSIDE_GSUM[t];return new yt(i*o+n+A,u)}}findFinderPattern(t,e){let r=this.getDecodeFinderCounters();r[0]=0,r[1]=0,r[2]=0,r[3]=0;let n=t.getSize(),i=!1,o=0;for(;o=0&&i!==t.get(o);)o--;o++;const s=n[0]-o,a=this.getDecodeFinderCounters(),A=new Int32Array(a.length);h.arraycopy(a,0,A,1,a.length-1),A[0]=s;const l=this.parseFinderValue(A,te.FINDER_PATTERNS);let c=o,g=n[1];return r&&(c=t.getSize()-1-c,g=t.getSize()-1-g),new _t(l,[o,n[1]],c,g,e)}adjustOddEvenCounts(t,e){let r=et.sum(new Int32Array(this.getOddCounts())),n=et.sum(new Int32Array(this.getEvenCounts())),i=!1,o=!1,s=!1,a=!1;t?(r>12?o=!0:r<4&&(i=!0),n>12?a=!0:n<4&&(s=!0)):(r>11?o=!0:r<5&&(i=!0),n>10?a=!0:n<4&&(s=!0));let A=r+n-e,l=(1&r)==(t?1:0),c=1==(1&n);if(1===A)if(l){if(c)throw new M;o=!0}else{if(!c)throw new M;a=!0}else if(-1===A)if(l){if(c)throw new M;i=!0}else{if(!c)throw new M;s=!0}else{if(0!==A)throw new M;if(l){if(!c)throw new M;rt.reset()))}}class re{constructor(t,e,r){this.ecCodewords=t,this.ecBlocks=[e],r&&this.ecBlocks.push(r)}getECCodewords(){return this.ecCodewords}getECBlocks(){return this.ecBlocks}}class ne{constructor(t,e){this.count=t,this.dataCodewords=e}getCount(){return this.count}getDataCodewords(){return this.dataCodewords}}class ie{constructor(t,e,r,n,i,o){this.versionNumber=t,this.symbolSizeRows=e,this.symbolSizeColumns=r,this.dataRegionSizeRows=n,this.dataRegionSizeColumns=i,this.ecBlocks=o;let s=0;const a=o.getECCodewords(),A=o.getECBlocks();for(let t of A)s+=t.getCount()*(t.getDataCodewords()+a);this.totalCodewords=s}getVersionNumber(){return this.versionNumber}getSymbolSizeRows(){return this.symbolSizeRows}getSymbolSizeColumns(){return this.symbolSizeColumns}getDataRegionSizeRows(){return this.dataRegionSizeRows}getDataRegionSizeColumns(){return this.dataRegionSizeColumns}getTotalCodewords(){return this.totalCodewords}getECBlocks(){return this.ecBlocks}static getVersionForDimensions(t,e){if(0!=(1&t)||0!=(1&e))throw new E;for(let r of ie.VERSIONS)if(r.symbolSizeRows===t&&r.symbolSizeColumns===e)return r;throw new E}toString(){return""+this.versionNumber}static buildVersions(){return[new ie(1,10,10,8,8,new re(5,new ne(1,3))),new ie(2,12,12,10,10,new re(7,new ne(1,5))),new ie(3,14,14,12,12,new re(10,new ne(1,8))),new ie(4,16,16,14,14,new re(12,new ne(1,12))),new ie(5,18,18,16,16,new re(14,new ne(1,18))),new ie(6,20,20,18,18,new re(18,new ne(1,22))),new ie(7,22,22,20,20,new re(20,new ne(1,30))),new ie(8,24,24,22,22,new re(24,new ne(1,36))),new ie(9,26,26,24,24,new re(28,new ne(1,44))),new ie(10,32,32,14,14,new re(36,new ne(1,62))),new ie(11,36,36,16,16,new re(42,new ne(1,86))),new ie(12,40,40,18,18,new re(48,new ne(1,114))),new ie(13,44,44,20,20,new re(56,new ne(1,144))),new ie(14,48,48,22,22,new re(68,new ne(1,174))),new ie(15,52,52,24,24,new re(42,new ne(2,102))),new ie(16,64,64,14,14,new re(56,new ne(2,140))),new ie(17,72,72,16,16,new re(36,new ne(4,92))),new ie(18,80,80,18,18,new re(48,new ne(4,114))),new ie(19,88,88,20,20,new re(56,new ne(4,144))),new ie(20,96,96,22,22,new re(68,new ne(4,174))),new ie(21,104,104,24,24,new re(56,new ne(6,136))),new ie(22,120,120,18,18,new re(68,new ne(6,175))),new ie(23,132,132,20,20,new re(62,new ne(8,163))),new ie(24,144,144,22,22,new re(62,new ne(8,156),new ne(2,155))),new ie(25,8,18,6,16,new re(7,new ne(1,5))),new ie(26,8,32,6,14,new re(11,new ne(1,10))),new ie(27,12,26,10,24,new re(14,new ne(1,16))),new ie(28,12,36,10,16,new re(18,new ne(1,22))),new ie(29,16,36,14,16,new re(24,new ne(1,32))),new ie(30,16,48,14,22,new re(28,new ne(1,49)))]}}ie.VERSIONS=ie.buildVersions();class oe{constructor(t){const e=t.getHeight();if(e<8||e>144||0!=(1&e))throw new E;this.version=oe.readVersion(t),this.mappingBitMatrix=this.extractDataRegion(t),this.readMappingMatrix=new B(this.mappingBitMatrix.getWidth(),this.mappingBitMatrix.getHeight())}getVersion(){return this.version}static readVersion(t){const e=t.getHeight(),r=t.getWidth();return ie.getVersionForDimensions(e,r)}readCodewords(){const t=new Int8Array(this.version.getTotalCodewords());let e=0,r=4,n=0;const i=this.mappingBitMatrix.getHeight(),o=this.mappingBitMatrix.getWidth();let s=!1,a=!1,A=!1,l=!1;do{if(r!==i||0!==n||s)if(r!==i-2||0!==n||0==(3&o)||a)if(r!==i+4||2!==n||0!=(7&o)||A)if(r!==i-2||0!==n||4!=(7&o)||l){do{r=0&&!this.readMappingMatrix.get(n,r)&&(t[e++]=255&this.readUtah(r,n,i,o)),r-=2,n+=2}while(r>=0&&n=0&&n=0);r+=3,n+=1}else t[e++]=255&this.readCorner4(i,o),r-=2,n+=2,l=!0;else t[e++]=255&this.readCorner3(i,o),r-=2,n+=2,A=!0;else t[e++]=255&this.readCorner2(i,o),r-=2,n+=2,a=!0;else t[e++]=255&this.readCorner1(i,o),r-=2,n+=2,s=!0}while(r7?e-1:e;o[n].codewords[i]=t[c++]}if(c!==t.length)throw new a;return o}getNumDataCodewords(){return this.numDataCodewords}getCodewords(){return this.codewords}}class ae{constructor(t){this.bytes=t,this.byteOffset=0,this.bitOffset=0}getBitOffset(){return this.bitOffset}getByteOffset(){return this.byteOffset}readBits(t){if(t<1||t>32||t>this.available())throw new a(""+t);let e=0,r=this.bitOffset,n=this.byteOffset;const i=this.bytes;if(r>0){const o=8-r,s=t>8-s<>a,t-=s,r+=s,8===r&&(r=0,n++)}if(t>0){for(;t>=8;)e=e<<8|255&i[n],n++,t-=8;if(t>0){const o=8-t,s=255>>o<>o,r+=t}}return this.bitOffset=r,this.byteOffset=n,e}available(){return 8*(this.bytes.length-this.byteOffset)-this.bitOffset}}!function(t){t[t.PAD_ENCODE=0]="PAD_ENCODE",t[t.ASCII_ENCODE=1]="ASCII_ENCODE",t[t.C40_ENCODE=2]="C40_ENCODE",t[t.TEXT_ENCODE=3]="TEXT_ENCODE",t[t.ANSIX12_ENCODE=4]="ANSIX12_ENCODE",t[t.EDIFACT_ENCODE=5]="EDIFACT_ENCODE",t[t.BASE256_ENCODE=6]="BASE256_ENCODE"}(U||(U={}));class Ae{static decode(t){const e=new ae(t),r=new D,n=new D,i=new Array;let o=U.ASCII_ENCODE;do{if(o===U.ASCII_ENCODE)o=this.decodeAsciiSegment(e,r,n);else{switch(o){case U.C40_ENCODE:this.decodeC40Segment(e,r);break;case U.TEXT_ENCODE:this.decodeTextSegment(e,r);break;case U.ANSIX12_ENCODE:this.decodeAnsiX12Segment(e,r);break;case U.EDIFACT_ENCODE:this.decodeEdifactSegment(e,r);break;case U.BASE256_ENCODE:this.decodeBase256Segment(e,r,i);break;default:throw new E}o=U.ASCII_ENCODE}}while(o!==U.PAD_ENCODE&&e.available()>0);return n.length()>0&&r.append(n.toString()),new V(t,r.toString(),0===i.length?null:i,null)}static decodeAsciiSegment(t,e,r){let n=!1;do{let i=t.readBits(8);if(0===i)throw new E;if(i<=128)return n&&(i+=128),e.append(String.fromCharCode(i-1)),U.ASCII_ENCODE;if(129===i)return U.PAD_ENCODE;if(i<=229){const t=i-130;t<10&&e.append("0"),e.append(""+t)}else switch(i){case 230:return U.C40_ENCODE;case 231:return U.BASE256_ENCODE;case 232:e.append(String.fromCharCode(29));break;case 233:case 234:break;case 235:n=!0;break;case 236:e.append("[)>05"),r.insert(0,"");break;case 237:e.append("[)>06"),r.insert(0,"");break;case 238:return U.ANSIX12_ENCODE;case 239:return U.TEXT_ENCODE;case 240:return U.EDIFACT_ENCODE;case 241:break;default:if(254!==i||0!==t.available())throw new E}}while(t.available()>0);return U.ASCII_ENCODE}static decodeC40Segment(t,e){let r=!1;const n=[];let i=0;do{if(8===t.available())return;const o=t.readBits(8);if(254===o)return;this.parseTwoBytes(o,t.readBits(8),n);for(let t=0;t<3;t++){const o=n[t];switch(i){case 0:if(o<3)i=o+1;else{if(!(o0)}static decodeTextSegment(t,e){let r=!1,n=[],i=0;do{if(8===t.available())return;const o=t.readBits(8);if(254===o)return;this.parseTwoBytes(o,t.readBits(8),n);for(let t=0;t<3;t++){const o=n[t];switch(i){case 0:if(o<3)i=o+1;else{if(!(o0)}static decodeAnsiX12Segment(t,e){const r=[];do{if(8===t.available())return;const n=t.readBits(8);if(254===n)return;this.parseTwoBytes(n,t.readBits(8),r);for(let t=0;t<3;t++){const n=r[t];switch(n){case 0:e.append("\r");break;case 1:e.append("*");break;case 2:e.append(">");break;case 3:e.append(" ");break;default:if(n<14)e.append(String.fromCharCode(n+44));else{if(!(n<40))throw new E;e.append(String.fromCharCode(n+51))}}}}while(t.available()>0)}static parseTwoBytes(t,e,r){let n=(t<<8)+e-1,i=Math.floor(n/1600);r[0]=i,n-=1600*i,i=Math.floor(n/40),r[1]=i,r[2]=n-40*i}static decodeEdifactSegment(t,e){do{if(t.available()<=16)return;for(let r=0;r<4;r++){let r=t.readBits(6);if(31===r){const e=8-t.getBitOffset();return void(8!==e&&t.readBits(e))}0==(32&r)&&(r|=64),e.append(String.fromCharCode(r))}}while(t.available()>0)}static decodeBase256Segment(t,e,r){let n=1+t.getByteOffset();const i=this.unrandomize255State(t.readBits(8),n++);let o;if(o=0===i?t.available()/8|0:i<250?i:250*(i-249)+this.unrandomize255State(t.readBits(8),n++),o<0)throw new E;const s=new Uint8Array(o);for(let e=0;e=0?r:r+256}}Ae.C40_BASIC_SET_CHARS=["*","*","*"," ","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],Ae.C40_SHIFT2_SET_CHARS=["!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","?","@","[","\\","]","^","_"],Ae.TEXT_BASIC_SET_CHARS=["*","*","*"," ","0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],Ae.TEXT_SHIFT2_SET_CHARS=Ae.C40_SHIFT2_SET_CHARS,Ae.TEXT_SHIFT3_SET_CHARS=["`","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","{","|","}","~",String.fromCharCode(127)];class le{constructor(){this.rsDecoder=new $(J.DATA_MATRIX_FIELD_256)}decode(t){const e=new oe(t),r=e.getVersion(),n=e.readCodewords(),i=se.getDataBlocks(n,r);let o=0;for(let t of i)o+=t.getNumDataCodewords();const s=new Uint8Array(o),a=i.length;for(let t=0;ts&&(l=s,c[0]=e,c[1]=r,c[2]=n,c[3]=i),l>a&&(l=a,c[0]=r,c[1]=n,c[2]=i,c[3]=e),l>A&&(c[0]=n,c[1]=i,c[2]=e,c[3]=r),c}detectSolid2(t){let e=t[0],r=t[1],n=t[2],i=t[3],o=this.transitionsBetween(e,i),s=ce.shiftPoint(r,n,4*(o+1)),a=ce.shiftPoint(n,r,4*(o+1));return this.transitionsBetween(s,e)this.transitionsBetween(a,c)+this.transitionsBetween(A,c)?l:c:l:this.isValid(c)?c:null}shiftToModuleCenter(t){let e=t[0],r=t[1],n=t[2],i=t[3],o=this.transitionsBetween(e,i)+1,s=this.transitionsBetween(n,i)+1,a=ce.shiftPoint(e,r,4*s),A=ce.shiftPoint(n,r,4*o);o=this.transitionsBetween(a,i)+1,s=this.transitionsBetween(A,i)+1,1==(1&o)&&(o+=1),1==(1&s)&&(s+=1);let l,c,h=(e.getX()+r.getX()+n.getX()+i.getX())/4,g=(e.getY()+r.getY()+n.getY()+i.getY())/4;return e=ce.moveAway(e,h,g),r=ce.moveAway(r,h,g),n=ce.moveAway(n,h,g),i=ce.moveAway(i,h,g),a=ce.shiftPoint(e,r,4*s),a=ce.shiftPoint(a,i,4*o),l=ce.shiftPoint(r,e,4*s),l=ce.shiftPoint(l,n,4*o),A=ce.shiftPoint(n,i,4*s),A=ce.shiftPoint(A,r,4*o),c=ce.shiftPoint(i,n,4*s),c=ce.shiftPoint(c,e,4*o),[a,l,A,c]}isValid(t){return t.getX()>=0&&t.getX()0&&t.getY()Math.abs(i-r);if(s){let t=r;r=n,n=t,t=i,i=o,o=t}let a=Math.abs(i-r),A=Math.abs(o-n),l=-a/2,c=n0){if(e===o)break;e+=c,l-=a}}return g}}class he{constructor(){this.decoder=new le}decode(t,e=null){let r,n;if(null!=e&&e.has(w.PURE_BARCODE)){const e=he.extractPureBits(t.getBlackMatrix());r=this.decoder.decode(e),n=he.NO_POINTS}else{const e=new ce(t.getBlackMatrix()).detect();r=this.decoder.decode(e.getBits()),n=e.getPoints()}const i=r.getRawBytes(),o=new L(r.getText(),i,8*i.length,n,Q.DATA_MATRIX,h.currentTimeMillis()),s=r.getByteSegments();null!=s&&o.putMetadata(H.BYTE_SEGMENTS,s);const a=r.getECLevel();return null!=a&&o.putMetadata(H.ERROR_CORRECTION_LEVEL,a),o}reset(){}static extractPureBits(t){const e=t.getTopLeftOnBit(),r=t.getBottomRightOnBit();if(null==e||null==r)throw new M;const n=this.moduleSize(e,t);let i=e[1];const o=r[1];let s=e[0];const a=(r[0]-s+1)/n,A=(o-i+1)/n;if(a<=0||A<=0)throw new M;const l=n/2;i+=l,s+=l;const c=new B(a,A);for(let e=0;e=ge.FOR_BITS.size)throw new a;return ge.FOR_BITS.get(t)}}ge.FOR_BITS=new Map,ge.FOR_VALUE=new Map,ge.L=new ge(Y.L,"L",1),ge.M=new ge(Y.M,"M",0),ge.Q=new ge(Y.Q,"Q",3),ge.H=new ge(Y.H,"H",2);class de{constructor(t){this.errorCorrectionLevel=ge.forBits(t>>3&3),this.dataMask=7&t}static numBitsDiffering(t,e){return C.bitCount(t^e)}static decodeFormatInformation(t,e){const r=de.doDecodeFormatInformation(t,e);return null!==r?r:de.doDecodeFormatInformation(t^de.FORMAT_INFO_MASK_QR,e^de.FORMAT_INFO_MASK_QR)}static doDecodeFormatInformation(t,e){let r=Number.MAX_SAFE_INTEGER,n=0;for(const i of de.FORMAT_INFO_DECODE_LOOKUP){const o=i[0];if(o===t||o===e)return new de(i[1]);let s=de.numBitsDiffering(t,o);s40)throw new a;return Ie.VERSIONS[t-1]}static decodeVersionInformation(t){let e=Number.MAX_SAFE_INTEGER,r=0;for(let n=0;n6&&(e.setRegion(t-11,0,3,6),e.setRegion(0,t-11,6,3)),e}toString(){return""+this.versionNumber}}Ie.VERSION_DECODE_INFO=Int32Array.from([31892,34236,39577,42195,48118,51042,55367,58893,63784,68472,70749,76311,79154,84390,87683,92361,96236,102084,102881,110507,110734,117786,119615,126325,127568,133589,136944,141498,145311,150283,152622,158308,161089,167017]),Ie.VERSIONS=[new Ie(1,new Int32Array(0),new ue(7,new Ce(1,19)),new ue(10,new Ce(1,16)),new ue(13,new Ce(1,13)),new ue(17,new Ce(1,9))),new Ie(2,Int32Array.from([6,18]),new ue(10,new Ce(1,34)),new ue(16,new Ce(1,28)),new ue(22,new Ce(1,22)),new ue(28,new Ce(1,16))),new Ie(3,Int32Array.from([6,22]),new ue(15,new Ce(1,55)),new ue(26,new Ce(1,44)),new ue(18,new Ce(2,17)),new ue(22,new Ce(2,13))),new Ie(4,Int32Array.from([6,26]),new ue(20,new Ce(1,80)),new ue(18,new Ce(2,32)),new ue(26,new Ce(2,24)),new ue(16,new Ce(4,9))),new Ie(5,Int32Array.from([6,30]),new ue(26,new Ce(1,108)),new ue(24,new Ce(2,43)),new ue(18,new Ce(2,15),new Ce(2,16)),new ue(22,new Ce(2,11),new Ce(2,12))),new Ie(6,Int32Array.from([6,34]),new ue(18,new Ce(2,68)),new ue(16,new Ce(4,27)),new ue(24,new Ce(4,19)),new ue(28,new Ce(4,15))),new Ie(7,Int32Array.from([6,22,38]),new ue(20,new Ce(2,78)),new ue(18,new Ce(4,31)),new ue(18,new Ce(2,14),new Ce(4,15)),new ue(26,new Ce(4,13),new Ce(1,14))),new Ie(8,Int32Array.from([6,24,42]),new ue(24,new Ce(2,97)),new ue(22,new Ce(2,38),new Ce(2,39)),new ue(22,new Ce(4,18),new Ce(2,19)),new ue(26,new Ce(4,14),new Ce(2,15))),new Ie(9,Int32Array.from([6,26,46]),new ue(30,new Ce(2,116)),new ue(22,new Ce(3,36),new Ce(2,37)),new ue(20,new Ce(4,16),new Ce(4,17)),new ue(24,new Ce(4,12),new Ce(4,13))),new Ie(10,Int32Array.from([6,28,50]),new ue(18,new Ce(2,68),new Ce(2,69)),new ue(26,new Ce(4,43),new Ce(1,44)),new ue(24,new Ce(6,19),new Ce(2,20)),new ue(28,new Ce(6,15),new Ce(2,16))),new Ie(11,Int32Array.from([6,30,54]),new ue(20,new Ce(4,81)),new ue(30,new Ce(1,50),new Ce(4,51)),new ue(28,new Ce(4,22),new Ce(4,23)),new ue(24,new Ce(3,12),new Ce(8,13))),new Ie(12,Int32Array.from([6,32,58]),new ue(24,new Ce(2,92),new Ce(2,93)),new ue(22,new Ce(6,36),new Ce(2,37)),new ue(26,new Ce(4,20),new Ce(6,21)),new ue(28,new Ce(7,14),new Ce(4,15))),new Ie(13,Int32Array.from([6,34,62]),new ue(26,new Ce(4,107)),new ue(22,new Ce(8,37),new Ce(1,38)),new ue(24,new Ce(8,20),new Ce(4,21)),new ue(22,new Ce(12,11),new Ce(4,12))),new Ie(14,Int32Array.from([6,26,46,66]),new ue(30,new Ce(3,115),new Ce(1,116)),new ue(24,new Ce(4,40),new Ce(5,41)),new ue(20,new Ce(11,16),new Ce(5,17)),new ue(24,new Ce(11,12),new Ce(5,13))),new Ie(15,Int32Array.from([6,26,48,70]),new ue(22,new Ce(5,87),new Ce(1,88)),new ue(24,new Ce(5,41),new Ce(5,42)),new ue(30,new Ce(5,24),new Ce(7,25)),new ue(24,new Ce(11,12),new Ce(7,13))),new Ie(16,Int32Array.from([6,26,50,74]),new ue(24,new Ce(5,98),new Ce(1,99)),new ue(28,new Ce(7,45),new Ce(3,46)),new ue(24,new Ce(15,19),new Ce(2,20)),new ue(30,new Ce(3,15),new Ce(13,16))),new Ie(17,Int32Array.from([6,30,54,78]),new ue(28,new Ce(1,107),new Ce(5,108)),new ue(28,new Ce(10,46),new Ce(1,47)),new ue(28,new Ce(1,22),new Ce(15,23)),new ue(28,new Ce(2,14),new Ce(17,15))),new Ie(18,Int32Array.from([6,30,56,82]),new ue(30,new Ce(5,120),new Ce(1,121)),new ue(26,new Ce(9,43),new Ce(4,44)),new ue(28,new Ce(17,22),new Ce(1,23)),new ue(28,new Ce(2,14),new Ce(19,15))),new Ie(19,Int32Array.from([6,30,58,86]),new ue(28,new Ce(3,113),new Ce(4,114)),new ue(26,new Ce(3,44),new Ce(11,45)),new ue(26,new Ce(17,21),new Ce(4,22)),new ue(26,new Ce(9,13),new Ce(16,14))),new Ie(20,Int32Array.from([6,34,62,90]),new ue(28,new Ce(3,107),new Ce(5,108)),new ue(26,new Ce(3,41),new Ce(13,42)),new ue(30,new Ce(15,24),new Ce(5,25)),new ue(28,new Ce(15,15),new Ce(10,16))),new Ie(21,Int32Array.from([6,28,50,72,94]),new ue(28,new Ce(4,116),new Ce(4,117)),new ue(26,new Ce(17,42)),new ue(28,new Ce(17,22),new Ce(6,23)),new ue(30,new Ce(19,16),new Ce(6,17))),new Ie(22,Int32Array.from([6,26,50,74,98]),new ue(28,new Ce(2,111),new Ce(7,112)),new ue(28,new Ce(17,46)),new ue(30,new Ce(7,24),new Ce(16,25)),new ue(24,new Ce(34,13))),new Ie(23,Int32Array.from([6,30,54,78,102]),new ue(30,new Ce(4,121),new Ce(5,122)),new ue(28,new Ce(4,47),new Ce(14,48)),new ue(30,new Ce(11,24),new Ce(14,25)),new ue(30,new Ce(16,15),new Ce(14,16))),new Ie(24,Int32Array.from([6,28,54,80,106]),new ue(30,new Ce(6,117),new Ce(4,118)),new ue(28,new Ce(6,45),new Ce(14,46)),new ue(30,new Ce(11,24),new Ce(16,25)),new ue(30,new Ce(30,16),new Ce(2,17))),new Ie(25,Int32Array.from([6,32,58,84,110]),new ue(26,new Ce(8,106),new Ce(4,107)),new ue(28,new Ce(8,47),new Ce(13,48)),new ue(30,new Ce(7,24),new Ce(22,25)),new ue(30,new Ce(22,15),new Ce(13,16))),new Ie(26,Int32Array.from([6,30,58,86,114]),new ue(28,new Ce(10,114),new Ce(2,115)),new ue(28,new Ce(19,46),new Ce(4,47)),new ue(28,new Ce(28,22),new Ce(6,23)),new ue(30,new Ce(33,16),new Ce(4,17))),new Ie(27,Int32Array.from([6,34,62,90,118]),new ue(30,new Ce(8,122),new Ce(4,123)),new ue(28,new Ce(22,45),new Ce(3,46)),new ue(30,new Ce(8,23),new Ce(26,24)),new ue(30,new Ce(12,15),new Ce(28,16))),new Ie(28,Int32Array.from([6,26,50,74,98,122]),new ue(30,new Ce(3,117),new Ce(10,118)),new ue(28,new Ce(3,45),new Ce(23,46)),new ue(30,new Ce(4,24),new Ce(31,25)),new ue(30,new Ce(11,15),new Ce(31,16))),new Ie(29,Int32Array.from([6,30,54,78,102,126]),new ue(30,new Ce(7,116),new Ce(7,117)),new ue(28,new Ce(21,45),new Ce(7,46)),new ue(30,new Ce(1,23),new Ce(37,24)),new ue(30,new Ce(19,15),new Ce(26,16))),new Ie(30,Int32Array.from([6,26,52,78,104,130]),new ue(30,new Ce(5,115),new Ce(10,116)),new ue(28,new Ce(19,47),new Ce(10,48)),new ue(30,new Ce(15,24),new Ce(25,25)),new ue(30,new Ce(23,15),new Ce(25,16))),new Ie(31,Int32Array.from([6,30,56,82,108,134]),new ue(30,new Ce(13,115),new Ce(3,116)),new ue(28,new Ce(2,46),new Ce(29,47)),new ue(30,new Ce(42,24),new Ce(1,25)),new ue(30,new Ce(23,15),new Ce(28,16))),new Ie(32,Int32Array.from([6,34,60,86,112,138]),new ue(30,new Ce(17,115)),new ue(28,new Ce(10,46),new Ce(23,47)),new ue(30,new Ce(10,24),new Ce(35,25)),new ue(30,new Ce(19,15),new Ce(35,16))),new Ie(33,Int32Array.from([6,30,58,86,114,142]),new ue(30,new Ce(17,115),new Ce(1,116)),new ue(28,new Ce(14,46),new Ce(21,47)),new ue(30,new Ce(29,24),new Ce(19,25)),new ue(30,new Ce(11,15),new Ce(46,16))),new Ie(34,Int32Array.from([6,34,62,90,118,146]),new ue(30,new Ce(13,115),new Ce(6,116)),new ue(28,new Ce(14,46),new Ce(23,47)),new ue(30,new Ce(44,24),new Ce(7,25)),new ue(30,new Ce(59,16),new Ce(1,17))),new Ie(35,Int32Array.from([6,30,54,78,102,126,150]),new ue(30,new Ce(12,121),new Ce(7,122)),new ue(28,new Ce(12,47),new Ce(26,48)),new ue(30,new Ce(39,24),new Ce(14,25)),new ue(30,new Ce(22,15),new Ce(41,16))),new Ie(36,Int32Array.from([6,24,50,76,102,128,154]),new ue(30,new Ce(6,121),new Ce(14,122)),new ue(28,new Ce(6,47),new Ce(34,48)),new ue(30,new Ce(46,24),new Ce(10,25)),new ue(30,new Ce(2,15),new Ce(64,16))),new Ie(37,Int32Array.from([6,28,54,80,106,132,158]),new ue(30,new Ce(17,122),new Ce(4,123)),new ue(28,new Ce(29,46),new Ce(14,47)),new ue(30,new Ce(49,24),new Ce(10,25)),new ue(30,new Ce(24,15),new Ce(46,16))),new Ie(38,Int32Array.from([6,32,58,84,110,136,162]),new ue(30,new Ce(4,122),new Ce(18,123)),new ue(28,new Ce(13,46),new Ce(32,47)),new ue(30,new Ce(48,24),new Ce(14,25)),new ue(30,new Ce(42,15),new Ce(32,16))),new Ie(39,Int32Array.from([6,26,54,82,110,138,166]),new ue(30,new Ce(20,117),new Ce(4,118)),new ue(28,new Ce(40,47),new Ce(7,48)),new ue(30,new Ce(43,24),new Ce(22,25)),new ue(30,new Ce(10,15),new Ce(67,16))),new Ie(40,Int32Array.from([6,30,58,86,114,142,170]),new ue(30,new Ce(19,118),new Ce(6,119)),new ue(28,new Ce(18,47),new Ce(31,48)),new ue(30,new Ce(34,24),new Ce(34,25)),new ue(30,new Ce(20,15),new Ce(61,16)))],function(t){t[t.DATA_MASK_000=0]="DATA_MASK_000",t[t.DATA_MASK_001=1]="DATA_MASK_001",t[t.DATA_MASK_010=2]="DATA_MASK_010",t[t.DATA_MASK_011=3]="DATA_MASK_011",t[t.DATA_MASK_100=4]="DATA_MASK_100",t[t.DATA_MASK_101=5]="DATA_MASK_101",t[t.DATA_MASK_110=6]="DATA_MASK_110",t[t.DATA_MASK_111=7]="DATA_MASK_111"}(v||(v={}));class fe{constructor(t,e){this.value=t,this.isMasked=e}unmaskBitMatrix(t,e){for(let r=0;r0==(t+e&1)))],[v.DATA_MASK_001,new fe(v.DATA_MASK_001,((t,e)=>0==(1&t)))],[v.DATA_MASK_010,new fe(v.DATA_MASK_010,((t,e)=>e%3==0))],[v.DATA_MASK_011,new fe(v.DATA_MASK_011,((t,e)=>(t+e)%3==0))],[v.DATA_MASK_100,new fe(v.DATA_MASK_100,((t,e)=>0==(Math.floor(t/2)+Math.floor(e/3)&1)))],[v.DATA_MASK_101,new fe(v.DATA_MASK_101,((t,e)=>t*e%6==0))],[v.DATA_MASK_110,new fe(v.DATA_MASK_110,((t,e)=>t*e%6<3))],[v.DATA_MASK_111,new fe(v.DATA_MASK_111,((t,e)=>0==(t+e+t*e%3&1)))]]);class we{constructor(t){const e=t.getHeight();if(e<21||1!=(3&e))throw new E;this.bitMatrix=t}readFormatInformation(){if(null!==this.parsedFormatInfo&&void 0!==this.parsedFormatInfo)return this.parsedFormatInfo;let t=0;for(let e=0;e<6;e++)t=this.copyBit(e,8,t);t=this.copyBit(7,8,t),t=this.copyBit(8,8,t),t=this.copyBit(8,7,t);for(let e=5;e>=0;e--)t=this.copyBit(8,e,t);const e=this.bitMatrix.getHeight();let r=0;const n=e-7;for(let t=e-1;t>=n;t--)r=this.copyBit(8,t,r);for(let t=e-8;t=0;e--)for(let i=t-9;i>=n;i--)r=this.copyBit(i,e,r);let i=Ie.decodeVersionInformation(r);if(null!==i&&i.getDimensionForVersion()===t)return this.parsedVersion=i,i;r=0;for(let e=5;e>=0;e--)for(let i=t-9;i>=n;i--)r=this.copyBit(e,i,r);if(i=Ie.decodeVersionInformation(r),null!==i&&i.getDimensionForVersion()===t)return this.parsedVersion=i,i;throw new E}copyBit(t,e,r){return(this.isMirror?this.bitMatrix.get(e,t):this.bitMatrix.get(t,e))?r<<1|1:r<<1}readCodewords(){const t=this.readFormatInformation(),e=this.readVersion(),r=fe.values.get(t.getDataMask()),n=this.bitMatrix.getHeight();r.unmaskBitMatrix(this.bitMatrix,n);const i=e.buildFunctionPattern();let o=!0;const s=new Uint8Array(e.getTotalCodewords());let a=0,A=0,l=0;for(let t=n-1;t>0;t-=2){6===t&&t--;for(let e=0;e=0&&s[c].codewords.length!==l;)c--;c++;const h=l-n.getECCodewordsPerBlock();let g=0;for(let e=0;et.available())throw new E;const n=new Uint8Array(2*r);let i=0;for(;r>0;){const e=t.readBits(13);let o=e/96<<8&4294967295|e%96;o+=o<959?41377:42657,n[i]=o>>8&255,n[i+1]=255&o,i+=2,r--}try{e.append(S.decode(n,R.GB2312))}catch(t){throw new E(t)}}static decodeKanjiSegment(t,e,r){if(13*r>t.available())throw new E;const n=new Uint8Array(2*r);let i=0;for(;r>0;){const e=t.readBits(13);let o=e/192<<8&4294967295|e%192;o+=o<7936?33088:49472,n[i]=o>>8,n[i+1]=o,i+=2,r--}try{e.append(S.decode(n,R.SHIFT_JIS))}catch(t){throw new E(t)}}static decodeByteSegment(t,e,r,n,i,o){if(8*r>t.available())throw new E;const s=new Uint8Array(r);for(let e=0;e=pe.ALPHANUMERIC_CHARS.length)throw new E;return pe.ALPHANUMERIC_CHARS[t]}static decodeAlphanumericSegment(t,e,r,n){const i=e.length();for(;r>1;){if(t.available()<11)throw new E;const n=t.readBits(11);e.append(pe.toAlphaNumericChar(Math.floor(n/45))),e.append(pe.toAlphaNumericChar(n%45)),r-=2}if(1===r){if(t.available()<6)throw new E;e.append(pe.toAlphaNumericChar(t.readBits(6)))}if(n)for(let t=i;t=3;){if(t.available()<10)throw new E;const n=t.readBits(10);if(n>=1e3)throw new E;e.append(pe.toAlphaNumericChar(Math.floor(n/100))),e.append(pe.toAlphaNumericChar(Math.floor(n/10)%10)),e.append(pe.toAlphaNumericChar(n%10)),r-=3}if(2===r){if(t.available()<7)throw new E;const r=t.readBits(7);if(r>=100)throw new E;e.append(pe.toAlphaNumericChar(Math.floor(r/10))),e.append(pe.toAlphaNumericChar(r%10))}else if(1===r){if(t.available()<4)throw new E;const r=t.readBits(4);if(r>=10)throw new E;e.append(pe.toAlphaNumericChar(r))}}static parseECIValue(t){const e=t.readBits(8);if(0==(128&e))return 127&e;if(128==(192&e))return(63&e)<<8&4294967295|t.readBits(8);if(192==(224&e))return(31&e)<<16&4294967295|t.readBits(16);throw new E}}pe.ALPHANUMERIC_CHARS="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:",pe.GB2312_SUBSET=1;class Se{constructor(t){this.mirrored=t}isMirrored(){return this.mirrored}applyMirroredCorrection(t){if(!this.mirrored||null===t||t.length<3)return;const e=t[0];t[0]=t[2],t[2]=e}}class Re{constructor(){this.rsDecoder=new $(J.QR_CODE_FIELD_256)}decodeBooleanArray(t,e){return this.decodeBitMatrix(B.parseFromBooleanArray(t),e)}decodeBitMatrix(t,e){const r=new we(t);let n=null;try{return this.decodeBitMatrixParser(r,e)}catch(t){n=t}try{r.remask(),r.setMirror(!0),r.readVersion(),r.readFormatInformation(),r.mirror();const t=this.decodeBitMatrixParser(r,e);return t.setOther(new Se(!0)),t}catch(t){if(null!==n)throw n;throw t}}decodeBitMatrixParser(t,e){const r=t.readVersion(),n=t.readFormatInformation().getErrorCorrectionLevel(),i=t.readCodewords(),o=Ee.getDataBlocks(i,r,n);let s=0;for(const t of o)s+=t.getNumDataCodewords();const a=new Uint8Array(s);let A=0;for(const t of o){const e=t.getCodewords(),r=t.getNumDataCodewords();this.correctErrors(e,r);for(let t=0;t=r)return!1;return!0}crossCheckVertical(t,e,r,n){const i=this.image,o=i.getHeight(),s=this.crossCheckStateCount;s[0]=0,s[1]=0,s[2]=0;let a=t;for(;a>=0&&i.get(e,a)&&s[1]<=r;)s[1]++,a--;if(a<0||s[1]>r)return NaN;for(;a>=0&&!i.get(e,a)&&s[0]<=r;)s[0]++,a--;if(s[0]>r)return NaN;for(a=t+1;ar)return NaN;for(;ar)return NaN;const A=s[0]+s[1]+s[2];return 5*Math.abs(A-n)>=2*n?NaN:this.foundPatternCross(s)?Be.centerFromEnd(s,a):NaN}handlePossibleCenter(t,e,r){const n=t[0]+t[1]+t[2],i=Be.centerFromEnd(t,r),o=this.crossCheckVertical(e,i,2*t[1],n);if(!isNaN(o)){const e=(t[0]+t[1]+t[2])/3;for(const t of this.possibleCenters)if(t.aboutEquals(e,o,i))return t.combineEstimate(o,i,e);const r=new De(i,o,e);this.possibleCenters.push(r),null!==this.resultPointCallback&&void 0!==this.resultPointCallback&&this.resultPointCallback.foundPossibleResultPoint(r)}return null}}class Me extends nt{constructor(t,e,r,n){super(t,e),this.estimatedModuleSize=r,this.count=n,void 0===n&&(this.count=1)}getEstimatedModuleSize(){return this.estimatedModuleSize}getCount(){return this.count}aboutEquals(t,e,r){if(Math.abs(e-this.getY())<=t&&Math.abs(r-this.getX())<=t){const e=Math.abs(t-this.estimatedModuleSize);return e<=1||e<=this.estimatedModuleSize}return!1}combineEstimate(t,e,r){const n=this.count+1,i=(this.count*this.getX()+e)/n,o=(this.count*this.getY()+t)/n,s=(this.count*this.estimatedModuleSize+r)/n;return new Me(i,o,s,n)}}class Te{constructor(t){this.bottomLeft=t[0],this.topLeft=t[1],this.topRight=t[2]}getBottomLeft(){return this.bottomLeft}getTopLeft(){return this.topLeft}getTopRight(){return this.topRight}}class Ne{constructor(t,e){this.image=t,this.resultPointCallback=e,this.possibleCenters=[],this.crossCheckStateCount=new Int32Array(5),this.resultPointCallback=e}getImage(){return this.image}getPossibleCenters(){return this.possibleCenters}find(t){const e=null!=t&&void 0!==t.get(w.TRY_HARDER),r=null!=t&&void 0!==t.get(w.PURE_BARCODE),n=this.image,i=n.getHeight(),o=n.getWidth();let s=Math.floor(3*i/(4*Ne.MAX_MODULES));(sA[2]&&(t+=e-A[2]-s,i=o-1)}e=0,A[0]=0,A[1]=0,A[2]=0,A[3]=0,A[4]=0}else A[0]=A[2],A[1]=A[3],A[2]=A[4],A[3]=1,A[4]=0,e=3;else A[++e]++;else A[e]++;Ne.foundPatternCross(A)&&!0===this.handlePossibleCenter(A,t,o,r)&&(s=A[0],this.hasSkipped&&(a=this.haveMultiplyConfirmedCenters()))}const l=this.selectBestPatterns();return nt.orderBestPatterns(l),new Te(l)}static centerFromEnd(t,e){return e-t[4]-t[3]-t[2]/2}static foundPatternCross(t){let e=0;for(let r=0;r<5;r++){const n=t[r];if(0===n)return!1;e+=n}if(e<7)return!1;const r=e/7,n=r/2;return Math.abs(r-t[0])=o&&e>=o&&s.get(e-o,t-o);)i[2]++,o++;if(t=o&&e>=o&&!s.get(e-o,t-o)&&i[1]<=r;)i[1]++,o++;if(tr)return!1;for(;t>=o&&e>=o&&s.get(e-o,t-o)&&i[0]<=r;)i[0]++,o++;if(i[0]>r)return!1;const a=s.getHeight(),A=s.getWidth();for(o=1;t+o=a||e+o>=A)return!1;for(;t+o=a||e+o>=A||i[3]>=r)return!1;for(;t+o=r)return!1;const l=i[0]+i[1]+i[2]+i[3]+i[4];return Math.abs(l-n)<2*n&&Ne.foundPatternCross(i)}crossCheckVertical(t,e,r,n){const i=this.image,o=i.getHeight(),s=this.getCrossCheckStateCount();let a=t;for(;a>=0&&i.get(e,a);)s[2]++,a--;if(a<0)return NaN;for(;a>=0&&!i.get(e,a)&&s[1]<=r;)s[1]++,a--;if(a<0||s[1]>r)return NaN;for(;a>=0&&i.get(e,a)&&s[0]<=r;)s[0]++,a--;if(s[0]>r)return NaN;for(a=t+1;a=r)return NaN;for(;a=r)return NaN;const A=s[0]+s[1]+s[2]+s[3]+s[4];return 5*Math.abs(A-n)>=2*n?NaN:Ne.foundPatternCross(s)?Ne.centerFromEnd(s,a):NaN}crossCheckHorizontal(t,e,r,n){const i=this.image,o=i.getWidth(),s=this.getCrossCheckStateCount();let a=t;for(;a>=0&&i.get(a,e);)s[2]++,a--;if(a<0)return NaN;for(;a>=0&&!i.get(a,e)&&s[1]<=r;)s[1]++,a--;if(a<0||s[1]>r)return NaN;for(;a>=0&&i.get(a,e)&&s[0]<=r;)s[0]++,a--;if(s[0]>r)return NaN;for(a=t+1;a=r)return NaN;for(;a=r)return NaN;const A=s[0]+s[1]+s[2]+s[3]+s[4];return 5*Math.abs(A-n)>=n?NaN:Ne.foundPatternCross(s)?Ne.centerFromEnd(s,a):NaN}handlePossibleCenter(t,e,r,n){const i=t[0]+t[1]+t[2]+t[3]+t[4];let o=Ne.centerFromEnd(t,r),s=this.crossCheckVertical(e,Math.floor(o),t[2],i);if(!isNaN(s)&&(o=this.crossCheckHorizontal(Math.floor(o),Math.floor(s),t[2],i),!isNaN(o)&&(!n||this.crossCheckDiagonal(Math.floor(s),Math.floor(o),t[2],i)))){const t=i/7;let e=!1;const r=this.possibleCenters;for(let n=0,i=r.length;n=Ne.CENTER_QUORUM){if(null!=t)return this.hasSkipped=!0,Math.floor((Math.abs(t.getX()-e.getX())-Math.abs(t.getY()-e.getY()))/2);t=e}return 0}haveMultiplyConfirmedCenters(){let t=0,e=0;const r=this.possibleCenters.length;for(const r of this.possibleCenters)r.getCount()>=Ne.CENTER_QUORUM&&(t++,e+=r.getEstimatedModuleSize());if(t<3)return!1;const n=e/r;let i=0;for(const t of this.possibleCenters)i+=Math.abs(t.getEstimatedModuleSize()-n);return i<=.05*e}selectBestPatterns(){const t=this.possibleCenters.length;if(t<3)throw new M;const e=this.possibleCenters;let r;if(t>3){let n=0,i=0;for(const t of this.possibleCenters){const e=t.getEstimatedModuleSize();n+=e,i+=e*e}r=n/t;let o=Math.sqrt(i/t-r*r);e.sort(((t,e)=>{const n=Math.abs(e.getEstimatedModuleSize()-r),i=Math.abs(t.getEstimatedModuleSize()-r);return ni?1:0}));const s=Math.max(.2*r,o);for(let t=0;t3;t++){const n=e[t];Math.abs(n.getEstimatedModuleSize()-r)>s&&(e.splice(t,1),t--)}}if(e.length>3){let t=0;for(const r of e)t+=r.getEstimatedModuleSize();r=t/e.length,e.sort(((t,e)=>{if(e.getCount()===t.getCount()){const n=Math.abs(e.getEstimatedModuleSize()-r),i=Math.abs(t.getEstimatedModuleSize()-r);return ni?-1:0}return e.getCount()-t.getCount()})),e.splice(3)}return[e[0],e[1],e[2]]}}Ne.CENTER_QUORUM=2,Ne.MIN_SKIP=3,Ne.MAX_MODULES=57;class ye{constructor(t){this.image=t}getImage(){return this.image}getResultPointCallback(){return this.resultPointCallback}detect(t){this.resultPointCallback=null==t?null:t.get(w.NEED_RESULT_POINT_CALLBACK);const e=new Ne(this.image,this.resultPointCallback).find(t);return this.processFinderPatternInfo(e)}processFinderPatternInfo(t){const e=t.getTopLeft(),r=t.getTopRight(),n=t.getBottomLeft(),i=this.calculateModuleSize(e,r,n);if(i<1)throw new M("No pattern found in proccess finder.");const o=ye.computeDimension(e,r,n,i),s=Ie.getProvisionalVersionForDimension(o),a=s.getDimensionForVersion()-7;let A=null;if(s.getAlignmentPatternCenters().length>0){const t=r.getX()-e.getX()+n.getX(),o=r.getY()-e.getY()+n.getY(),s=1-3/a,l=Math.floor(e.getX()+s*(t-e.getX())),c=Math.floor(e.getY()+s*(o-e.getY()));for(let t=4;t<=16;t<<=1)try{A=this.findAlignmentInRegion(i,l,c,t);break}catch(t){if(!(t instanceof M))throw t}}const l=ye.createTransform(e,r,n,A,o),c=ye.sampleGrid(this.image,l,o);let h;return h=null===A?[n,e,r]:[n,e,r,A],new it(c,h)}static createTransform(t,e,r,n,i){const o=i-3.5;let s,a,A,l;return null!==n?(s=n.getX(),a=n.getY(),A=o-3,l=A):(s=e.getX()-t.getX()+r.getX(),a=e.getY()-t.getY()+r.getY(),A=o,l=o),At.quadrilateralToQuadrilateral(3.5,3.5,o,3.5,A,l,3.5,o,t.getX(),t.getY(),e.getX(),e.getY(),s,a,r.getX(),r.getY())}static sampleGrid(t,e,r){return ct.getInstance().sampleGridWithTransform(t,r,r,e)}static computeDimension(t,e,r,n){const i=et.round(nt.distance(t,e)/n),o=et.round(nt.distance(t,r)/n);let s=Math.floor((i+o)/2)+7;switch(3&s){case 0:s++;break;case 2:s--;break;case 3:throw new M("Dimensions could be not found.")}return s}calculateModuleSize(t,e,r){return(this.calculateModuleSizeOneWay(t,e)+this.calculateModuleSizeOneWay(t,r))/2}calculateModuleSizeOneWay(t,e){const r=this.sizeOfBlackWhiteBlackRunBothWays(Math.floor(t.getX()),Math.floor(t.getY()),Math.floor(e.getX()),Math.floor(e.getY())),n=this.sizeOfBlackWhiteBlackRunBothWays(Math.floor(e.getX()),Math.floor(e.getY()),Math.floor(t.getX()),Math.floor(t.getY()));return isNaN(r)?n/7:isNaN(n)?r/7:(r+n)/14}sizeOfBlackWhiteBlackRunBothWays(t,e,r,n){let i=this.sizeOfBlackWhiteBlackRun(t,e,r,n),o=1,s=t-(r-t);s<0?(o=t/(t-s),s=0):s>=this.image.getWidth()&&(o=(this.image.getWidth()-1-t)/(s-t),s=this.image.getWidth()-1);let a=Math.floor(e-(n-e)*o);return o=1,a<0?(o=e/(e-a),a=0):a>=this.image.getHeight()&&(o=(this.image.getHeight()-1-e)/(a-e),a=this.image.getHeight()-1),s=Math.floor(t+(s-t)*o),i+=this.sizeOfBlackWhiteBlackRun(t,e,s,a),i-1}sizeOfBlackWhiteBlackRun(t,e,r,n){const i=Math.abs(n-e)>Math.abs(r-t);if(i){let i=t;t=e,e=i,i=r,r=n,n=i}const o=Math.abs(r-t),s=Math.abs(n-e);let a=-o/2;const A=t0){if(g===n)break;g+=l,a-=o}}return 2===c?et.distance(r+A,n,t,e):NaN}findAlignmentInRegion(t,e,r,n){const i=Math.floor(n*t),o=Math.max(0,e-i),s=Math.min(this.image.getWidth()-1,e+i);if(s-o<3*t)throw new M("Alignment top exceeds estimated module size.");const a=Math.max(0,r-i),A=Math.min(this.image.getHeight()-1,r+i);if(A-a<3*t)throw new M("Alignment bottom exceeds estimated module size.");return new Be(this.image,o,a,s-o,A-a,t,this.resultPointCallback).find()}}class _e{constructor(){this.decoder=new Re}getDecoder(){return this.decoder}decode(t,e){let r,n;if(null!=e&&void 0!==e.get(w.PURE_BARCODE)){const i=_e.extractPureBits(t.getBlackMatrix());r=this.decoder.decodeBitMatrix(i,e),n=_e.NO_POINTS}else{const i=new ye(t.getBlackMatrix()).detect(e);r=this.decoder.decodeBitMatrix(i.getBits(),e),n=i.getPoints()}r.getOther()instanceof Se&&r.getOther().applyMirroredCorrection(n);const i=new L(r.getText(),r.getRawBytes(),void 0,n,Q.QR_CODE,void 0),o=r.getByteSegments();null!==o&&i.putMetadata(H.BYTE_SEGMENTS,o);const s=r.getECLevel();return null!==s&&i.putMetadata(H.ERROR_CORRECTION_LEVEL,s),r.hasStructuredAppend()&&(i.putMetadata(H.STRUCTURED_APPEND_SEQUENCE,r.getStructuredAppendSequenceNumber()),i.putMetadata(H.STRUCTURED_APPEND_PARITY,r.getStructuredAppendParity())),i}reset(){}static extractPureBits(t){const e=t.getTopLeftOnBit(),r=t.getBottomRightOnBit();if(null===e||null===r)throw new M;const n=this.moduleSize(e,t);let i=e[1],o=r[1],s=e[0],a=r[0];if(s>=a||i>=o)throw new M;if(o-i!=a-s&&(a=s+(o-i),a>=t.getWidth()))throw new M;const A=Math.round((a-s+1)/n),l=Math.round((o-i+1)/n);if(A<=0||l<=0)throw new M;if(l!==A)throw new M;const c=Math.floor(n/2);i+=c,s+=c;const h=s+Math.floor((A-1)*n)-a;if(h>0){if(h>c)throw new M;s-=h}const g=i+Math.floor((l-1)*n)-o;if(g>0){if(g>c)throw new M;i-=g}const d=new B(A,l);for(let e=0;e0;){const s=Fe.findGuardPattern(t,i,--n,r,!1,o,A);if(null==s){n++;break}e=s}s[0]=new nt(e[0],n),s[1]=new nt(e[1],n),a=!0;break}}let l=n+1;if(a){let n=0,i=Int32Array.from([Math.trunc(s[0].getX()),Math.trunc(s[1].getX())]);for(;lFe.SKIPPED_ROW_COUNT_MAX)break;n++}}l-=n+1,s[2]=new nt(i[0],l),s[3]=new nt(i[1],l)}return l-n0&&A++o?n-o:o-n;if(A>r)return 1/0;a+=A}return a/i}}Fe.INDEXES_START_PATTERN=Int32Array.from([0,4,1,5]),Fe.INDEXES_STOP_PATTERN=Int32Array.from([6,2,7,3]),Fe.MAX_AVG_VARIANCE=.42,Fe.MAX_INDIVIDUAL_VARIANCE=.8,Fe.START_PATTERN=Int32Array.from([8,1,1,1,1,1,1,3]),Fe.STOP_PATTERN=Int32Array.from([7,1,1,3,1,1,1,2,1]),Fe.MAX_PIXEL_DRIFT=3,Fe.MAX_PATTERN_DRIFT=5,Fe.SKIPPED_ROW_COUNT_MAX=25,Fe.ROW_STEP=5,Fe.BARCODE_MIN_HEIGHT=10;class Pe{constructor(t,e){if(0===e.length)throw new a;this.field=t;let r=e.length;if(r>1&&0===e[0]){let t=1;for(;tr.length){let t=e;e=r,r=t}let n=new Int32Array(r.length),i=r.length-e.length;h.arraycopy(r,0,n,0,i);for(let t=i;t=0;e--){let r=this.getCoefficient(e);0!==r&&(r<0?(t.append(" - "),r=-r):t.length()>0&&t.append(" + "),0!==e&&1===r||t.append(r),0!==e&&(1===e?t.append("x"):(t.append("x^"),t.append(e))))}return t.toString()}}class ke extends class{add(t,e){return(t+e)%this.modulus}subtract(t,e){return(this.modulus+t-e)%this.modulus}exp(t){return this.expTable[t]}log(t){if(0===t)throw new a;return this.logTable[t]}inverse(t){if(0===t)throw new z;return this.expTable[this.modulus-this.logTable[t]-1]}multiply(t,e){return 0===t||0===e?0:this.expTable[(this.logTable[t]+this.logTable[e])%(this.modulus-1)]}getSize(){return this.modulus}equals(t){return t===this}}{constructor(t,e){super(),this.modulus=t,this.expTable=new Int32Array(t),this.logTable=new Int32Array(t);let r=1;for(let n=0;n0;t--){let r=n.evaluateAt(this.field.exp(t));i[e-t]=r,0!==r&&(o=!0)}if(!o)return 0;let s=this.field.getOne();if(null!=r)for(const e of r){let r=this.field.exp(t.length-1-e),n=new Pe(this.field,new Int32Array([this.field.subtract(0,r),1]));s=s.multiply(n)}let a=new Pe(this.field,i),A=this.runEuclideanAlgorithm(this.field.buildMonomial(e,1),a,e),c=A[0],h=A[1],g=this.findErrorLocations(c),d=this.findErrorMagnitudes(h,c,g);for(let e=0;e=Math.round(r/2);){let t=n,e=o;if(n=i,o=s,n.isZero())throw l.getChecksumInstance();i=t;let r=this.field.getZero(),a=n.getCoefficient(n.getDegree()),A=this.field.inverse(a);for(;i.getDegree()>=n.getDegree()&&!i.isZero();){let t=i.getDegree()-n.getDegree(),e=this.field.multiply(i.getCoefficient(i.getDegree()),A);r=r.add(this.field.buildMonomial(t,e)),i=i.subtract(n.multiplyByMonomial(t,e))}s=r.multiply(o).subtract(e).negative()}let a=s.getCoefficient(0);if(0===a)throw l.getChecksumInstance();let A=this.field.inverse(a);return[s.multiply(A),i.multiply(A)]}findErrorLocations(t){let e=t.getDegree(),r=new Int32Array(e),n=0;for(let i=1;i0){let e=r?this.topLeft:this.topRight,i=Math.trunc(e.getY()-t);i<0&&(i=0);let s=new nt(e.getX(),i);r?n=s:o=s}if(e>0){let t=r?this.bottomLeft:this.bottomRight,n=Math.trunc(t.getY()+e);n>=this.image.getHeight()&&(n=this.image.getHeight()-1);let o=new nt(t.getX(),n);r?i=o:s=o}return new Ge(this.image,n,i,o,s)}getMinX(){return this.minX}getMaxX(){return this.maxX}getMinY(){return this.minY}getMaxY(){return this.maxY}getTopLeft(){return this.topLeft}getTopRight(){return this.topRight}getBottomLeft(){return this.bottomLeft}getBottomRight(){return this.bottomRight}}class Qe{constructor(t,e,r,n){this.columnCount=t,this.errorCorrectionLevel=n,this.rowCountUpperPart=e,this.rowCountLowerPart=r,this.rowCount=e+r}getColumnCount(){return this.columnCount}getErrorCorrectionLevel(){return this.errorCorrectionLevel}getRowCount(){return this.rowCount}getRowCountUpperPart(){return this.rowCountUpperPart}getRowCountLowerPart(){return this.rowCountLowerPart}}class Ze{constructor(){this.buffer=""}static form(t,e){let r=-1;return t.replace(/%(-)?(0?[0-9]+)?([.][0-9]+)?([#][0-9]+)?([scfpexd%])/g,(function(t,n,i,o,s,a){if("%%"===t)return"%";if(void 0===e[++r])return;t=o?parseInt(o.substr(1)):void 0;let A,l=s?parseInt(s.substr(1)):void 0;switch(a){case"s":A=e[r];break;case"c":A=e[r][0];break;case"f":A=parseFloat(e[r]).toFixed(t);break;case"p":A=parseFloat(e[r]).toPrecision(t);break;case"e":A=parseFloat(e[r]).toExponential(t);break;case"x":A=parseInt(e[r]).toString(l||16);break;case"d":A=parseFloat(parseInt(e[r],l||10).toPrecision(t)).toFixed(0)}A="object"==typeof A?JSON.stringify(A):(+A).toString(l);let c=parseInt(i),h=i&&i[0]+""=="0"?"0":" ";for(;A.length=0&&(e=this.codewords[n],null!=e))return e;if(n=this.imageRowToCodewordIndex(t)+r,nr,getValue:()=>n};i.getValue()>t?(t=i.getValue(),e=[],e.push(i.getKey())):i.getValue()===t&&e.push(i.getKey())}return Oe.toIntArray(e)}getConfidence(t){return this.values.get(t)}}class ve extends Ue{constructor(t,e){super(t),this._isLeft=e}setRowNumbers(){for(let t of this.getCodewords())null!=t&&t.setRowNumberAsRowIndicatorColumn()}adjustCompleteIndicatorColumnRowNumbers(t){let e=this.getCodewords();this.setRowNumbers(),this.removeIncorrectCodewords(e,t);let r=this.getBoundingBox(),n=this._isLeft?r.getTopLeft():r.getTopRight(),i=this._isLeft?r.getBottomLeft():r.getBottomRight(),o=this.imageRowToCodewordIndex(Math.trunc(n.getY())),s=this.imageRowToCodewordIndex(Math.trunc(i.getY())),a=-1,A=1,l=0;for(let r=o;r=t.getRowCount()||i>r)e[r]=null;else{let t;t=A>2?(A-2)*i:i;let o=t>=r;for(let n=1;n<=t&&!o;n++)o=null!=e[r-n];o?e[r]=null:(a=n.getRowNumber(),l=1)}}}getRowHeights(){let t=this.getBarcodeMetadata();if(null==t)return null;this.adjustIncompleteIndicatorColumnRowNumbers(t);let e=new Int32Array(t.getRowCount());for(let t of this.getCodewords())if(null!=t){let r=t.getRowNumber();if(r>=e.length)continue;e[r]++}return e}adjustIncompleteIndicatorColumnRowNumbers(t){let e=this.getBoundingBox(),r=this._isLeft?e.getTopLeft():e.getTopRight(),n=this._isLeft?e.getBottomLeft():e.getBottomRight(),i=this.imageRowToCodewordIndex(Math.trunc(r.getY())),o=this.imageRowToCodewordIndex(Math.trunc(n.getY())),s=this.getCodewords(),a=-1;for(let e=i;e=t.getRowCount()?s[e]=null:a=r.getRowNumber())}}getBarcodeMetadata(){let t=this.getCodewords(),e=new Ye,r=new Ye,n=new Ye,i=new Ye;for(let o of t){if(null==o)continue;o.setRowNumberAsRowIndicatorColumn();let t=o.getValue()%30,s=o.getRowNumber();switch(this._isLeft||(s+=2),s%3){case 0:r.setValue(3*t+1);break;case 1:i.setValue(t/3),n.setValue(t%3);break;case 2:e.setValue(t+1)}}if(0===e.getValue().length||0===r.getValue().length||0===n.getValue().length||0===i.getValue().length||e.getValue()[0]<1||r.getValue()[0]+n.getValue()[0]Oe.MAX_ROWS_IN_BARCODE)return null;let o=new Qe(e.getValue()[0],r.getValue()[0],n.getValue()[0],i.getValue()[0]);return this.removeIncorrectCodewords(t,o),o}removeIncorrectCodewords(t,e){for(let r=0;re.getRowCount())t[r]=null;else switch(this._isLeft||(o+=2),o%3){case 0:3*i+1!==e.getRowCountUpperPart()&&(t[r]=null);break;case 1:Math.trunc(i/3)===e.getErrorCorrectionLevel()&&i%3===e.getRowCountLowerPart()||(t[r]=null);break;case 2:i+1!==e.getColumnCount()&&(t[r]=null)}}}isLeft(){return this._isLeft}toString(){return"IsLeft: "+this._isLeft+"\n"+super.toString()}}class xe{constructor(t,e){this.ADJUST_ROW_NUMBER_SKIP=2,this.barcodeMetadata=t,this.barcodeColumnCount=t.getColumnCount(),this.boundingBox=e,this.detectionResultColumns=new Array(this.barcodeColumnCount+2)}getDetectionResultColumns(){this.adjustIndicatorColumnRowNumbers(this.detectionResultColumns[0]),this.adjustIndicatorColumnRowNumbers(this.detectionResultColumns[this.barcodeColumnCount+1]);let t,e=Oe.MAX_CODEWORDS_IN_BARCODE;do{t=e,e=this.adjustRowNumbersAndGetCount()}while(e>0&&e0&&i0&&(s[0]=r[e-1],s[4]=i[e-1],s[5]=o[e-1]),e>1&&(s[8]=r[e-2],s[10]=i[e-2],s[11]=o[e-2]),e>=1;r=1&e,He.RATIOS_TABLE[t]||(He.RATIOS_TABLE[t]=new Array(Oe.BARS_IN_MODULE)),He.RATIOS_TABLE[t][Oe.BARS_IN_MODULE-n-1]=Math.fround(i/Oe.MODULES_IN_CODEWORD)}}this.bSymbolTableReady=!0}static getDecodedValue(t){let e=He.getDecodedCodewordValue(He.sampleBitCounts(t));return-1!==e?e:He.getClosestDecodedValue(t)}static sampleBitCounts(t){let e=et.sum(t),r=new Int32Array(Oe.BARS_IN_MODULE),n=0,i=0;for(let o=0;o1)for(let n=0;n=n)break}enew Array(Oe.BARS_IN_MODULE)));class Ve{constructor(){this.segmentCount=-1,this.fileSize=-1,this.timestamp=-1,this.checksum=-1}getSegmentIndex(){return this.segmentIndex}setSegmentIndex(t){this.segmentIndex=t}getFileId(){return this.fileId}setFileId(t){this.fileId=t}getOptionalData(){return this.optionalData}setOptionalData(t){this.optionalData=t}isLastSegment(){return this.lastSegment}setLastSegment(t){this.lastSegment=t}getSegmentCount(){return this.segmentCount}setSegmentCount(t){this.segmentCount=t}getSender(){return this.sender||null}setSender(t){this.sender=t}getAddressee(){return this.addressee||null}setAddressee(t){this.addressee=t}getFileName(){return this.fileName}setFileName(t){this.fileName=t}getFileSize(){return this.fileSize}setFileSize(t){this.fileSize=t}getChecksum(){return this.checksum}setChecksum(t){this.checksum=t}getTimestamp(){return this.timestamp}setTimestamp(t){this.timestamp=t}}class je{static parseLong(t,e){return parseInt(t,e)}}class Xe extends o{}Xe.kind="NullPointerException";class ze extends o{}class Je extends class{writeBytes(t){this.writeBytesOffset(t,0,t.length)}writeBytesOffset(t,e,r){if(null==t)throw new Xe;if(e<0||e>t.length||r<0||e+r>t.length||e+r<0)throw new g;if(0!==r)for(let n=0;n0&&this.grow(t)}grow(t){let e=this.buf.length<<1;if(e-t<0&&(e=t),e<0){if(t<0)throw new ze;e=C.MAX_VALUE}this.buf=u.copyOfUint8Array(this.buf,e)}write(t){this.ensureCapacity(this.count+1),this.buf[this.count]=t,this.count+=1}writeBytesOffset(t,e,r){if(e<0||e>t.length||r<0||e+r-t.length>0)throw new g;this.ensureCapacity(this.count+r),h.arraycopy(t,e,this.buf,this.count,r),this.count+=r}writeTo(t){t.writeBytesOffset(this.buf,0,this.count)}reset(){this.count=0}toByteArray(){return u.copyOfUint8Array(this.buf,this.count)}size(){return this.count}toString(t){return t?"string"==typeof t?this.toString_string(t):this.toString_number(t):this.toString_void()}toString_void(){return new String(this.buf).toString()}toString_string(t){return new String(this.buf).toString()}toString_number(t){return new String(this.buf).toString()}close(){}}function Ke(){if("undefined"!=typeof window)return window.BigInt||null;if(void 0!==r.g)return r.g.BigInt||null;if("undefined"!=typeof self)return self.BigInt||null;throw new Error("Can't search globals for BigInt!")}let qe;function $e(t){if(void 0===qe&&(qe=Ke()),null===qe)throw new Error("BigInt is not supported!");return qe(t)}!function(t){t[t.ALPHA=0]="ALPHA",t[t.LOWER=1]="LOWER",t[t.MIXED=2]="MIXED",t[t.PUNCT=3]="PUNCT",t[t.ALPHA_SHIFT=4]="ALPHA_SHIFT",t[t.PUNCT_SHIFT=5]="PUNCT_SHIFT"}(W||(W={}));class tr{static decode(t,e){let r=new D(""),n=m.ISO8859_1;r.enableDecoding(n);let i=1,o=t[i++],s=new Ve;for(;it[0])throw E.getFormatInstance();let n=new Int32Array(tr.NUMBER_OF_SEQUENCE_CODEWORDS);for(let r=0;r0){for(let t=0;t<6;++t)o.write(Number($e(a)>>$e(8*(5-t))));a=0,s=0}}n===e[0]&&r0){for(let t=0;t<6;++t)o.write(Number($e(a)>>$e(8*(5-t))));a=0,s=0}}}return i.append(S.decode(o.toByteArray(),r)),n}static numericCompaction(t,e,r){let n=0,i=!1,o=new Int32Array(tr.MAX_NUMERIC_CODEWORDS);for(;e0&&(r.append(tr.decodeBase900toBase10(o,n)),n=0)}return e}static decodeBase900toBase10(t,e){let r=$e(0);for(let n=0;n@[\\]_`~!\r\t,:\n-.$/\"|*()?{}'",tr.MIXED_CHARS="0123456789&\r\t,:#-.$/+%*=^",tr.EXP900=Ke()?function(){let t=[];t[0]=$e(1);let e=$e(900);t[1]=e;for(let r=2;r<16;r++)t[r]=t[r-1]*e;return t}():[],tr.NUMBER_OF_SEQUENCE_CODEWORDS=2;class er{constructor(){}static decode(t,e,r,n,i,o,s){let a,A=new Ge(t,e,r,n,i),l=null,c=null;for(let r=!0;;r=!1){if(null!=e&&(l=er.getRowIndicatorColumn(t,A,e,!0,o,s)),null!=n&&(c=er.getRowIndicatorColumn(t,A,n,!1,o,s)),a=er.merge(l,c),null==a)throw M.getNotFoundInstance();let i=a.getBoundingBox();if(!r||null==i||!(i.getMinY()A.getMaxY()))break;A=i}a.setBoundingBox(A);let h=a.getBarcodeColumnCount()+1;a.setDetectionResultColumn(0,l),a.setDetectionResultColumn(h,c);let g=null!=l;for(let e=1;e<=h;e++){let r,n=g?e:h-e;if(void 0!==a.getDetectionResultColumn(n))continue;r=0===n||n===h?new ve(A,0===n):new Ue(A),a.setDetectionResultColumn(n,r);let i=-1,l=i;for(let e=A.getMinY();e<=A.getMaxY();e++){if(i=er.getStartColumn(a,n,e,g),i<0||i>A.getMaxX()){if(-1===l)continue;i=l}let c=er.detectCodeword(t,A.getMinX(),A.getMaxX(),g,i,e,o,s);null!=c&&(r.setCodeword(e,c),l=i,o=Math.min(o,c.getWidth()),s=Math.max(s,c.getWidth()))}}return er.createDecoderResult(a)}static merge(t,e){if(null==t&&null==e)return null;let r=er.getBarcodeMetadata(t,e);if(null==r)return null;let n=Ge.merge(er.adjustBoundingBox(t),er.adjustBoundingBox(e));return new xe(r,n)}static adjustBoundingBox(t){if(null==t)return null;let e=t.getRowHeights();if(null==e)return null;let r=er.getMax(e),n=0;for(let t of e)if(n+=r-t,t>0)break;let i=t.getCodewords();for(let t=0;n>0&&null==i[t];t++)n--;let o=0;for(let t=e.length-1;t>=0&&(o+=r-e[t],!(e[t]>0));t--);for(let t=i.length-1;o>0&&null==i[t];t--)o--;return t.getBoundingBox().addMissingRows(n,o,t.isLeft())}static getMax(t){let e=-1;for(let r of t)e=Math.max(e,r);return e}static getBarcodeMetadata(t,e){let r,n;return null==t||null==(r=t.getBarcodeMetadata())?null==e?null:e.getBarcodeMetadata():null==e||null==(n=e.getBarcodeMetadata())?r:r.getColumnCount()!==n.getColumnCount()&&r.getErrorCorrectionLevel()!==n.getErrorCorrectionLevel()&&r.getRowCount()!==n.getRowCount()?null:r}static getRowIndicatorColumn(t,e,r,n,i,o){let s=new ve(e,n);for(let a=0;a<2;a++){let A=0===a?1:-1,l=Math.trunc(Math.trunc(r.getX()));for(let a=Math.trunc(Math.trunc(r.getY()));a<=e.getMaxY()&&a>=e.getMinY();a+=A){let e=er.detectCodeword(t,0,t.getWidth(),n,l,a,i,o);null!=e&&(s.setCodeword(a,e),l=n?e.getStartX():e.getEndX())}}return s}static adjustCodewordCount(t,e){let r=e[0][1],n=r.getValue(),i=t.getBarcodeColumnCount()*t.getBarcodeRowCount()-er.getNumberOfECCodeWords(t.getBarcodeECLevel());if(0===n.length){if(i<1||i>Oe.MAX_CODEWORDS_IN_BARCODE)throw M.getNotFoundInstance();r.setValue(i)}else n[0]!==i&&r.setValue(i)}static createDecoderResult(t){let e=er.createBarcodeMatrix(t);er.adjustCodewordCount(t,e);let r=new Array,n=new Int32Array(t.getBarcodeRowCount()*t.getBarcodeColumnCount()),i=[],o=new Array;for(let s=0;s0;){for(let t=0;tnew Array(t.getBarcodeColumnCount()+2)));for(let t=0;t=0){if(n>=e.length)continue;e[n][r].setValue(t.getValue())}}r++}return e}static isValidBarcodeColumn(t,e){return e>=0&&e<=t.getBarcodeColumnCount()+1}static getStartColumn(t,e,r,n){let i=n?1:-1,o=null;if(er.isValidBarcodeColumn(t,e-i)&&(o=t.getDetectionResultColumn(e-i).getCodeword(r)),null!=o)return n?o.getEndX():o.getStartX();if(o=t.getDetectionResultColumn(e).getCodewordNearby(r),null!=o)return n?o.getStartX():o.getEndX();if(er.isValidBarcodeColumn(t,e-i)&&(o=t.getDetectionResultColumn(e-i).getCodewordNearby(r)),null!=o)return n?o.getEndX():o.getStartX();let s=0;for(;er.isValidBarcodeColumn(t,e-i);){e-=i;for(let r of t.getDetectionResultColumn(e).getCodewords())if(null!=r)return(n?r.getEndX():r.getStartX())+i*s*(r.getEndX()-r.getStartX());s++}return n?t.getBoundingBox().getMinX():t.getBoundingBox().getMaxX()}static detectCodeword(t,e,r,n,i,o,s,a){i=er.adjustCodewordStartColumn(t,e,r,n,i,o);let A,l=er.getModuleBitCount(t,e,r,n,i,o);if(null==l)return null;let c=et.sum(l);if(n)A=i+c;else{for(let t=0;t=e)&&A=e:ser.CODEWORD_SKEW_SIZE)return i;s+=a}a=-a,n=!n}return s}static checkCodewordSkew(t,e,r){return e-er.CODEWORD_SKEW_SIZE<=t&&t<=r+er.CODEWORD_SKEW_SIZE}static decodeCodewords(t,e,r){if(0===t.length)throw E.getFormatInstance();let n=1<r/2+er.MAX_ERRORS||r<0||r>er.MAX_EC_CODEWORDS)throw l.getChecksumInstance();return er.errorCorrection.decode(t,r,e)}static verifyCodewordCount(t,e){if(t.length<4)throw E.getFormatInstance();let r=t[0];if(r>t.length)throw E.getFormatInstance();if(0===r){if(!(e>=1;return e}static getCodewordBucketNumber(t){return t instanceof Int32Array?this.getCodewordBucketNumber_Int32Array(t):this.getCodewordBucketNumber_number(t)}static getCodewordBucketNumber_number(t){return er.getCodewordBucketNumber(er.getBitCountForCodeword(t))}static getCodewordBucketNumber_Int32Array(t){return(t[0]-t[2]+t[4]-t[6]+9)%9}static toString(t){let e=new Ze;for(let r=0;rt))}static getMaxWidth(t,e){return null==t||null==e?0:Math.trunc(Math.abs(t.getX()-e.getX()))}static getMinWidth(t,e){return null==t||null==e?C.MAX_VALUE:Math.trunc(Math.abs(t.getX()-e.getX()))}static getMaxCodewordWidth(t){return Math.floor(Math.max(Math.max(rr.getMaxWidth(t[0],t[4]),rr.getMaxWidth(t[6],t[2])*Oe.MODULES_IN_CODEWORD/Oe.MODULES_IN_STOP_PATTERN),Math.max(rr.getMaxWidth(t[1],t[5]),rr.getMaxWidth(t[7],t[3])*Oe.MODULES_IN_CODEWORD/Oe.MODULES_IN_STOP_PATTERN)))}static getMinCodewordWidth(t){return Math.floor(Math.min(Math.min(rr.getMinWidth(t[0],t[4]),rr.getMinWidth(t[6],t[2])*Oe.MODULES_IN_CODEWORD/Oe.MODULES_IN_STOP_PATTERN),Math.min(rr.getMinWidth(t[1],t[5]),rr.getMinWidth(t[7],t[3])*Oe.MODULES_IN_CODEWORD/Oe.MODULES_IN_STOP_PATTERN)))}reset(){}}class nr extends o{}nr.kind="ReaderException";class ir{constructor(t,e){this.verbose=!0===t,e&&this.setHints(e)}decode(t,e){return e&&this.setHints(e),this.decodeInternal(t)}decodeWithState(t){return null!==this.readers&&void 0!==this.readers||this.setHints(null),this.decodeInternal(t)}setHints(t){this.hints=t;const e=null!=t&&void 0!==t.get(w.TRY_HARDER),r=null==t?null:t.get(w.POSSIBLE_FORMATS),n=new Array;if(null!=r){const i=r.some((t=>t===Q.UPC_A||t===Q.UPC_E||t===Q.EAN_13||t===Q.EAN_8||t===Q.CODABAR||t===Q.CODE_39||t===Q.CODE_93||t===Q.CODE_128||t===Q.ITF||t===Q.RSS_14||t===Q.RSS_EXPANDED));i&&!e&&n.push(new ee(t,this.verbose)),r.includes(Q.QR_CODE)&&n.push(new _e),r.includes(Q.DATA_MATRIX)&&n.push(new he),r.includes(Q.AZTEC)&&n.push(new dt),r.includes(Q.PDF_417)&&n.push(new rr),i&&e&&n.push(new ee(t,this.verbose))}0===n.length&&(e||n.push(new ee(t,this.verbose)),n.push(new _e),n.push(new he),n.push(new dt),n.push(new rr),e&&n.push(new ee(t,this.verbose))),this.readers=n}reset(){if(null!==this.readers)for(const t of this.readers)t.reset()}decodeInternal(t){if(null===this.readers)throw new nr("No readers where selected, nothing can be read.");for(const e of this.readers)try{return e.decode(t,this.hints)}catch(t){if(t instanceof nr)continue}throw new M("No MultiFormat Readers were able to detect the code.")}}var or;!function(t){t[t.ERROR_CORRECTION=0]="ERROR_CORRECTION",t[t.CHARACTER_SET=1]="CHARACTER_SET",t[t.DATA_MATRIX_SHAPE=2]="DATA_MATRIX_SHAPE",t[t.MIN_SIZE=3]="MIN_SIZE",t[t.MAX_SIZE=4]="MAX_SIZE",t[t.MARGIN=5]="MARGIN",t[t.PDF417_COMPACT=6]="PDF417_COMPACT",t[t.PDF417_COMPACTION=7]="PDF417_COMPACTION",t[t.PDF417_DIMENSIONS=8]="PDF417_DIMENSIONS",t[t.AZTEC_LAYERS=9]="AZTEC_LAYERS",t[t.QR_VERSION=10]="QR_VERSION"}(or||(or={}));var sr=or;class ar{constructor(t){this.field=t,this.cachedGenerators=[],this.cachedGenerators.push(new X(t,Int32Array.from([1])))}buildGenerator(t){const e=this.cachedGenerators;if(t>=e.length){let r=e[e.length-1];const n=this.field;for(let i=e.length;i<=t;i++){const t=r.multiply(new X(n,Int32Array.from([1,n.exp(i-1+n.getGeneratorBase())])));e.push(t),r=t}}return e[t]}encode(t,e){if(0===e)throw new a("No error correction bytes");const r=t.length-e;if(r<=0)throw new a("No data bytes provided");const n=this.buildGenerator(e),i=new Int32Array(r);h.arraycopy(t,0,i,0,r);let o=new X(this.field,i);o=o.multiplyByMonomial(e,1);const s=o.divide(n)[1].getCoefficients(),A=e-s.length;for(let e=0;e=5&&(r+=Ar.N1+(n-5)),n=1,s=i)}n>=5&&(r+=Ar.N1+(n-5))}return r}}Ar.N1=3,Ar.N2=3,Ar.N3=40,Ar.N4=10;class lr{constructor(t,e){this.width=t,this.height=e;const r=new Array(e);for(let n=0;n!==e;n++)r[n]=new Uint8Array(t);this.bytes=r}getHeight(){return this.height}getWidth(){return this.width}get(t,e){return this.bytes[e][t]}getArray(){return this.bytes}setNumber(t,e,r){this.bytes[e][t]=r}setBoolean(t,e,r){this.bytes[e][t]=r?1:0}clear(t){for(const e of this.bytes)u.fill(e,t)}equals(t){if(!(t instanceof lr))return!1;const e=t;if(this.width!==e.width)return!1;if(this.height!==e.height)return!1;for(let t=0,r=this.height;t>\n"),t.toString()}setMode(t){this.mode=t}setECLevel(t){this.ecLevel=t}setVersion(t){this.version=t}setMaskPattern(t){this.maskPattern=t}setMatrix(t){this.matrix=t}static isValidMaskPattern(t){return t>=0&&t0;){for(6===o&&(o-=1);s>=0&&s=r;)t^=e<=0)for(let t=0;t!==r;t++){const r=n[t];r>=0&&gr.isEmpty(e.get(r,i))&&gr.embedPositionAdjustmentPattern(r-2,i-2,e)}}}}gr.POSITION_DETECTION_PATTERN=Array.from([Int32Array.from([1,1,1,1,1,1,1]),Int32Array.from([1,0,0,0,0,0,1]),Int32Array.from([1,0,1,1,1,0,1]),Int32Array.from([1,0,1,1,1,0,1]),Int32Array.from([1,0,1,1,1,0,1]),Int32Array.from([1,0,0,0,0,0,1]),Int32Array.from([1,1,1,1,1,1,1])]),gr.POSITION_ADJUSTMENT_PATTERN=Array.from([Int32Array.from([1,1,1,1,1]),Int32Array.from([1,0,0,0,1]),Int32Array.from([1,0,1,0,1]),Int32Array.from([1,0,0,0,1]),Int32Array.from([1,1,1,1,1])]),gr.POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE=Array.from([Int32Array.from([-1,-1,-1,-1,-1,-1,-1]),Int32Array.from([6,18,-1,-1,-1,-1,-1]),Int32Array.from([6,22,-1,-1,-1,-1,-1]),Int32Array.from([6,26,-1,-1,-1,-1,-1]),Int32Array.from([6,30,-1,-1,-1,-1,-1]),Int32Array.from([6,34,-1,-1,-1,-1,-1]),Int32Array.from([6,22,38,-1,-1,-1,-1]),Int32Array.from([6,24,42,-1,-1,-1,-1]),Int32Array.from([6,26,46,-1,-1,-1,-1]),Int32Array.from([6,28,50,-1,-1,-1,-1]),Int32Array.from([6,30,54,-1,-1,-1,-1]),Int32Array.from([6,32,58,-1,-1,-1,-1]),Int32Array.from([6,34,62,-1,-1,-1,-1]),Int32Array.from([6,26,46,66,-1,-1,-1]),Int32Array.from([6,26,48,70,-1,-1,-1]),Int32Array.from([6,26,50,74,-1,-1,-1]),Int32Array.from([6,30,54,78,-1,-1,-1]),Int32Array.from([6,30,56,82,-1,-1,-1]),Int32Array.from([6,30,58,86,-1,-1,-1]),Int32Array.from([6,34,62,90,-1,-1,-1]),Int32Array.from([6,28,50,72,94,-1,-1]),Int32Array.from([6,26,50,74,98,-1,-1]),Int32Array.from([6,30,54,78,102,-1,-1]),Int32Array.from([6,28,54,80,106,-1,-1]),Int32Array.from([6,32,58,84,110,-1,-1]),Int32Array.from([6,30,58,86,114,-1,-1]),Int32Array.from([6,34,62,90,118,-1,-1]),Int32Array.from([6,26,50,74,98,122,-1]),Int32Array.from([6,30,54,78,102,126,-1]),Int32Array.from([6,26,52,78,104,130,-1]),Int32Array.from([6,30,56,82,108,134,-1]),Int32Array.from([6,34,60,86,112,138,-1]),Int32Array.from([6,30,58,86,114,142,-1]),Int32Array.from([6,34,62,90,118,146,-1]),Int32Array.from([6,30,54,78,102,126,150]),Int32Array.from([6,24,50,76,102,128,154]),Int32Array.from([6,28,54,80,106,132,158]),Int32Array.from([6,32,58,84,110,136,162]),Int32Array.from([6,26,54,82,110,138,166]),Int32Array.from([6,30,58,86,114,142,170])]),gr.TYPE_INFO_COORDINATES=Array.from([Int32Array.from([8,0]),Int32Array.from([8,1]),Int32Array.from([8,2]),Int32Array.from([8,3]),Int32Array.from([8,4]),Int32Array.from([8,5]),Int32Array.from([8,7]),Int32Array.from([8,8]),Int32Array.from([7,8]),Int32Array.from([5,8]),Int32Array.from([4,8]),Int32Array.from([3,8]),Int32Array.from([2,8]),Int32Array.from([1,8]),Int32Array.from([0,8])]),gr.VERSION_INFO_POLY=7973,gr.TYPE_INFO_POLY=1335,gr.TYPE_INFO_MASK_PATTERN=21522;class dr{constructor(t,e){this.dataBytes=t,this.errorCorrectionBytes=e}getDataBytes(){return this.dataBytes}getErrorCorrectionBytes(){return this.errorCorrectionBytes}}class ur{constructor(){}static calculateMaskPenalty(t){return Ar.applyMaskPenaltyRule1(t)+Ar.applyMaskPenaltyRule2(t)+Ar.applyMaskPenaltyRule3(t)+Ar.applyMaskPenaltyRule4(t)}static encode(t,e,r=null){let n=ur.DEFAULT_BYTE_MODE_ENCODING;const i=null!==r&&void 0!==r.get(sr.CHARACTER_SET);i&&(n=r.get(sr.CHARACTER_SET).toString());const o=this.chooseMode(t,n),s=new I;if(o===me.BYTE&&(i||ur.DEFAULT_BYTE_MODE_ENCODING!==n)){const t=m.getCharacterSetECIByName(n);void 0!==t&&this.appendECI(t,s)}this.appendModeInfo(o,s);const a=new I;let A;if(this.appendBytes(t,o,a,n),null!==r&&void 0!==r.get(sr.QR_VERSION)){const t=Number.parseInt(r.get(sr.QR_VERSION).toString(),10);A=Ie.getVersionForNumber(t);const n=this.calculateBitsNeeded(o,s,a,A);if(!this.willFit(n,A,e))throw new hr("Data too big for requested version")}else A=this.recommendVersion(e,o,s,a);const l=new I;l.appendBitArray(s);const c=o===me.BYTE?a.getSizeInBytes():t.length;this.appendLengthInfo(c,A,o,l),l.appendBitArray(a);const h=A.getECBlocksForLevel(e),g=A.getTotalCodewords()-h.getTotalECCodewords();this.terminateBits(g,l);const d=this.interleaveWithECBytes(l,A.getTotalCodewords(),g,h.getNumBlocks()),u=new cr;u.setECLevel(e),u.setMode(o),u.setVersion(A);const C=A.getDimensionForVersion(),f=new lr(C,C),w=this.chooseMaskPattern(d,e,A,f);return u.setMaskPattern(w),gr.buildMatrix(d,e,A,w,f),u.setMatrix(f),u}static recommendVersion(t,e,r,n){const i=this.calculateBitsNeeded(e,r,n,Ie.getVersionForNumber(1)),o=this.chooseVersion(i,t),s=this.calculateBitsNeeded(e,r,n,o);return this.chooseVersion(s,t)}static calculateBitsNeeded(t,e,r,n){return e.getSize()+t.getCharacterCountBits(n)+r.getSize()}static getAlphanumericCode(t){return t159)&&(r<224||r>235))return!1}return!0}static chooseMaskPattern(t,e,r,n){let i=Number.MAX_SAFE_INTEGER,o=-1;for(let s=0;s=(t+7)/8}static terminateBits(t,e){const r=8*t;if(e.getSize()>r)throw new hr("data bits cannot fit in the QR Code"+e.getSize()+" > "+r);for(let t=0;t<4&&e.getSize()0)for(let t=n;t<8;t++)e.appendBit(!1);const i=t-e.getSizeInBytes();for(let t=0;t=r)throw new hr("Block ID too large");const s=t%r,a=r-s,A=Math.floor(t/r),l=A+1,c=Math.floor(e/r),h=c+1,g=A-c,d=l-h;if(g!==d)throw new hr("EC bytes mismatch");if(r!==a+s)throw new hr("RS blocks mismatch");if(t!==(c+g)*a+(h+d)*s)throw new hr("Total bytes mismatch");n=1<=0&&e<=9}static appendNumericBytes(t,e){const r=t.length;let n=0;for(;n=33088&&n<=40956?i=n-33088:n>=57408&&n<=60351&&(i=n-49472),-1===i)throw new hr("Invalid byte sequence");const o=192*(i>>8)+(255&i);e.appendBits(o,13)}}static appendECI(t,e){e.appendBits(me.ECI.getBits(),4),e.appendBits(t.getValue(),8)}}ur.ALPHANUMERIC_TABLE=Int32Array.from([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,37,38,-1,-1,-1,-1,39,40,-1,41,42,43,0,1,2,3,4,5,6,7,8,9,44,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,-1,-1,-1,-1,-1]),ur.DEFAULT_BYTE_MODE_ENCODING=m.UTF8.getName();class Cr{write(t,e,r,n=null){if(0===t.length)throw new a("Found empty contents");if(e<0||r<0)throw new a("Requested dimensions are too small: "+e+"x"+r);let i=ge.L,o=Cr.QUIET_ZONE_SIZE;null!==n&&(void 0!==n.get(sr.ERROR_CORRECTION)&&(i=ge.fromString(n.get(sr.ERROR_CORRECTION).toString())),void 0!==n.get(sr.MARGIN)&&(o=Number.parseInt(n.get(sr.MARGIN).toString(),10)));const s=ur.encode(t,i,n);return this.renderResult(s,e,r,o)}writeToDom(t,e,r,n,i=null){"string"==typeof t&&(t=document.querySelector(t));const o=this.write(e,r,n,i);t&&t.appendChild(o)}renderResult(t,e,r,n){const i=t.getMatrix();if(null===i)throw new q;const o=i.getWidth(),s=i.getHeight(),a=o+2*n,A=s+2*n,l=Math.max(e,a),c=Math.max(r,A),h=Math.min(Math.floor(l/a),Math.floor(c/A)),g=Math.floor((l-o*h)/2),d=Math.floor((c-s*h)/2),u=this.createSVGElement(l,c);for(let t=0,e=d;te||i+s>r)throw new a("Crop rectangle does not fit within image data.");A&&this.reverseHorizontal(o,s)}getRow(t,e){if(t<0||t>=this.getHeight())throw new a("Requested row is outside the image: "+t);const r=this.getWidth();(null==e||e.length>16&255,o=r>>7&510,s=255&r;i[e]=(n+o+s)/4&255}this.luminances=i}else this.luminances=t;if(void 0===n&&(this.dataWidth=e),void 0===i&&(this.dataHeight=r),void 0===o&&(this.left=0),void 0===s&&(this.top=0),this.left+e>this.dataWidth||this.top+r>this.dataHeight)throw new a("Crop rectangle does not fit within image data.")}getRow(t,e){if(t<0||t>=this.getHeight())throw new a("Requested row is outside the image: "+t);const r=this.getWidth();(null==e||e.length"}}class Dr extends Rr{constructor(t,e,r){super(t,0,0),this.binaryShiftStart=e,this.binaryShiftByteCount=r}appendTo(t,e){for(let r=0;r62?t.appendBits(this.binaryShiftByteCount-31,16):0===r?t.appendBits(Math.min(this.binaryShiftByteCount,31),5):t.appendBits(this.binaryShiftByteCount-31,5)),t.appendBits(e[this.binaryShiftStart+r],8)}addBinaryShift(t,e){return new Dr(this,t,e)}toString(){return"<"+this.binaryShiftStart+"::"+(this.binaryShiftStart+this.binaryShiftByteCount-1)+">"}}function Br(t,e,r){return new Rr(t,e,r)}const Mr=["UPPER","LOWER","DIGIT","MIXED","PUNCT"],Tr=new Rr(null,0,0),Nr=[Int32Array.from([0,327708,327710,327709,656318]),Int32Array.from([590318,0,327710,327709,656318]),Int32Array.from([262158,590300,0,590301,932798]),Int32Array.from([327709,327708,656318,0,327710]),Int32Array.from([327711,656380,656382,656381,0])];const yr=function(t){for(let e of t)u.fill(e,-1);return t[0][4]=0,t[1][4]=0,t[1][0]=28,t[3][4]=0,t[2][4]=0,t[2][0]=15,t}(u.createInt32Array(6,6));class _r{constructor(t,e,r,n){this.token=t,this.mode=e,this.binaryShiftByteCount=r,this.bitCount=n}getMode(){return this.mode}getToken(){return this.token}getBinaryShiftByteCount(){return this.binaryShiftByteCount}getBitCount(){return this.bitCount}latchAndAppend(t,e){let r=this.bitCount,n=this.token;if(t!==this.mode){let e=Nr[this.mode][t];n=Br(n,65535&e,e>>16),r+=e>>16}let i=2===t?4:5;return n=Br(n,e,i),new _r(n,t,0,r+i)}shiftAndAppend(t,e){let r=this.token,n=2===this.mode?4:5;return r=Br(r,yr[this.mode][t],n),r=Br(r,e,5),new _r(r,this.mode,0,this.bitCount+n+5)}addBinaryShiftChar(t){let e=this.token,r=this.mode,n=this.bitCount;if(4===this.mode||2===this.mode){let t=Nr[r][0];e=Br(e,65535&t,t>>16),n+=t>>16,r=0}let i=0===this.binaryShiftByteCount||31===this.binaryShiftByteCount?18:62===this.binaryShiftByteCount?9:8,o=new _r(e,r,this.binaryShiftByteCount+1,n+i);return 2078===o.binaryShiftByteCount&&(o=o.endBinaryShift(t+1)),o}endBinaryShift(t){if(0===this.binaryShiftByteCount)return this;let e=this.token;return e=function(t,e,r){return new Dr(t,e,r)}(e,t-this.binaryShiftByteCount,this.binaryShiftByteCount),new _r(e,this.mode,0,this.bitCount)}isBetterThanOrEqualTo(t){let e=this.bitCount+(Nr[this.mode][t.mode]>>16);return this.binaryShiftByteCountt.binaryShiftByteCount&&t.binaryShiftByteCount>0&&(e+=10),e<=t.bitCount}toBitArray(t){let e=[];for(let r=this.endBinaryShift(t.length).token;null!==r;r=r.getPrevious())e.unshift(r);let r=new I;for(const n of e)n.appendTo(r,t);return r}toString(){return R.format("%s bits=%d bytes=%d",Mr[this.mode],this.bitCount,this.binaryShiftByteCount)}static calculateBinaryShiftCost(t){return t.binaryShiftByteCount>62?21:t.binaryShiftByteCount>31?20:t.binaryShiftByteCount>0?10:0}}_r.INITIAL_STATE=new _r(Tr,0,0,0);const Or=function(t){const e=R.getCharCode(" "),r=R.getCharCode("."),n=R.getCharCode(",");t[0][e]=1;const i=R.getCharCode("Z"),o=R.getCharCode("A");for(let e=o;e<=i;e++)t[0][e]=e-o+2;t[1][e]=1;const s=R.getCharCode("z"),a=R.getCharCode("a");for(let e=a;e<=s;e++)t[1][e]=e-a+2;t[2][e]=1;const A=R.getCharCode("9"),l=R.getCharCode("0");for(let e=l;e<=A;e++)t[2][e]=e-l+2;t[2][n]=12,t[2][r]=13;const c=["\0"," ","","","","","","","","\b","\t","\n","\v","\f","\r","","","","","","@","\\","^","_","`","|","~",""];for(let e=0;e","?","[","]","{","}"];for(let e=0;e0&&(t[4][R.getCharCode(h[e])]=e);return t}(u.createInt32Array(5,256));class br{constructor(t){this.text=t}encode(){const t=R.getCharCode(" "),e=R.getCharCode("\n");let r=Sr.singletonList(_r.INITIAL_STATE);for(let n=0;n0?(r=br.updateStateListForPair(r,n,i),n++):r=this.updateStateListForChar(r,n)}return Sr.min(r,((t,e)=>t.getBitCount()-e.getBitCount())).toBitArray(this.text)}updateStateListForChar(t,e){const r=[];for(let n of t)this.updateStateForChar(n,e,r);return br.simplifyStates(r)}updateStateForChar(t,e,r){let n=255&this.text[e],i=Or[t.getMode()][n]>0,o=null;for(let s=0;s<=4;s++){let a=Or[s][n];if(a>0){if(null==o&&(o=t.endBinaryShift(e)),!i||s===t.getMode()||2===s){const t=o.latchAndAppend(s,a);r.push(t)}if(!i&&yr[t.getMode()][s]>=0){const t=o.shiftAndAppend(s,a);r.push(t)}}}if(t.getBinaryShiftByteCount()>0||0===Or[t.getMode()][n]){let n=t.addBinaryShiftChar(e);r.push(n)}}static updateStateListForPair(t,e,r){const n=[];for(let i of t)this.updateStateForPair(i,e,r,n);return this.simplifyStates(n)}static updateStateForPair(t,e,r,n){let i=t.endBinaryShift(e);if(n.push(i.latchAndAppend(4,r)),4!==t.getMode()&&n.push(i.shiftAndAppend(4,r)),3===r||4===r){let t=i.latchAndAppend(2,16-r).latchAndAppend(2,1);n.push(t)}if(t.getBinaryShiftByteCount()>0){let r=t.addBinaryShiftChar(e).addBinaryShiftChar(e+1);n.push(r)}}static simplifyStates(t){let e=[];for(const r of t){let t=!0;for(const n of e){if(n.isBetterThanOrEqualTo(r)){t=!1;break}r.isBetterThanOrEqualTo(n)&&(e=e.filter((t=>t!==n)))}t&&e.push(r)}return e}}class Fr{constructor(){}static encodeBytes(t){return Fr.encode(t,Fr.DEFAULT_EC_PERCENT,Fr.DEFAULT_AZTEC_LAYERS)}static encode(t,e,r){let n,i,o,s,A,l=new br(t).encode(),c=C.truncDivision(l.getSize()*e,100)+11,h=l.getSize()+c;if(r!==Fr.DEFAULT_AZTEC_LAYERS){if(n=r<0,i=Math.abs(r),i>(n?Fr.MAX_NB_BITS_COMPACT:Fr.MAX_NB_BITS))throw new a(R.format("Illegal value %s for layers",r));o=Fr.totalBitsInLayer(i,n),s=Fr.WORD_SIZE[i];let t=o-o%s;if(A=Fr.stuffBits(l,s),A.getSize()+c>t)throw new a("Data to large for user specified layer");if(n&&A.getSize()>64*s)throw new a("Data to large for user specified layer")}else{s=0,A=null;for(let t=0;;t++){if(t>Fr.MAX_NB_BITS)throw new a("Data too large for an Aztec code");if(n=t<=3,i=n?t+1:t,o=Fr.totalBitsInLayer(i,n),h>o)continue;null!=A&&s===Fr.WORD_SIZE[i]||(s=Fr.WORD_SIZE[i],A=Fr.stuffBits(l,s));let e=o-o%s;if(!(n&&A.getSize()>64*s)&&A.getSize()+c<=e)break}}let g,d=Fr.generateCheckWords(A,o,s),u=A.getSize()/s,I=Fr.generateModeMessage(n,i,u),f=(n?11:14)+4*i,w=new Int32Array(f);if(n){g=f;for(let t=0;t=n||t.get(o+r))&&(s|=1<{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";var t;r.r(n),r.d(n,{Html5Qrcode:()=>b,Html5QrcodeScanner:()=>U,Html5QrcodeScannerState:()=>u,Html5QrcodeSupportedFormats:()=>t}),function(t){t[t.QR_CODE=0]="QR_CODE",t[t.AZTEC=1]="AZTEC",t[t.CODABAR=2]="CODABAR",t[t.CODE_39=3]="CODE_39",t[t.CODE_93=4]="CODE_93",t[t.CODE_128=5]="CODE_128",t[t.DATA_MATRIX=6]="DATA_MATRIX",t[t.MAXICODE=7]="MAXICODE",t[t.ITF=8]="ITF",t[t.EAN_13=9]="EAN_13",t[t.EAN_8=10]="EAN_8",t[t.PDF_417=11]="PDF_417",t[t.RSS_14=12]="RSS_14",t[t.RSS_EXPANDED=13]="RSS_EXPANDED",t[t.UPC_A=14]="UPC_A",t[t.UPC_E=15]="UPC_E",t[t.UPC_EAN_EXTENSION=16]="UPC_EAN_EXTENSION"}(t||(t={}));var e,i,o=new Map([[t.QR_CODE,"QR_CODE"],[t.AZTEC,"AZTEC"],[t.CODABAR,"CODABAR"],[t.CODE_39,"CODE_39"],[t.CODE_93,"CODE_93"],[t.CODE_128,"CODE_128"],[t.DATA_MATRIX,"DATA_MATRIX"],[t.MAXICODE,"MAXICODE"],[t.ITF,"ITF"],[t.EAN_13,"EAN_13"],[t.EAN_8,"EAN_8"],[t.PDF_417,"PDF_417"],[t.RSS_14,"RSS_14"],[t.RSS_EXPANDED,"RSS_EXPANDED"],[t.UPC_A,"UPC_A"],[t.UPC_E,"UPC_E"],[t.UPC_EAN_EXTENSION,"UPC_EAN_EXTENSION"]]);function s(e){return Object.values(t).includes(e)}!function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.URL=1]="URL"}(e||(e={})),function(t){t[t.SCAN_TYPE_CAMERA=0]="SCAN_TYPE_CAMERA",t[t.SCAN_TYPE_FILE=1]="SCAN_TYPE_FILE"}(i||(i={}));var a,A=function(){function t(){}return t.GITHUB_PROJECT_URL="https://github.com/mebjas/html5-qrcode",t.SCAN_DEFAULT_FPS=2,t.DEFAULT_DISABLE_FLIP=!1,t.DEFAULT_REMEMBER_LAST_CAMERA_USED=!0,t}(),l=function(){function t(t,e){this.format=t,this.formatName=e}return t.prototype.toString=function(){return this.formatName},t.create=function(e){if(!o.has(e))throw e+" not in html5QrcodeSupportedFormatsTextMap";return new t(e,o.get(e))},t}(),c=function(){function t(){}return t.createFromText=function(t){return{decodedText:t,result:{text:t}}},t.createFromQrcodeResult=function(t){return{decodedText:t.text,result:t}},t}();!function(t){t[t.UNKWOWN_ERROR=0]="UNKWOWN_ERROR",t[t.IMPLEMENTATION_ERROR=1]="IMPLEMENTATION_ERROR",t[t.NO_CODE_FOUND_ERROR=2]="NO_CODE_FOUND_ERROR"}(a||(a={}));var h=function(){function t(){}return t.createFrom=function(t){return{errorMessage:t,type:a.UNKWOWN_ERROR}},t}(),g=function(){function t(t){this.verbose=t}return t.prototype.log=function(t){this.verbose&&console.log(t)},t.prototype.warn=function(t){this.verbose&&console.warn(t)},t.prototype.logError=function(t,e){(this.verbose||!0===e)&&console.error(t)},t.prototype.logErrors=function(t){if(0===t.length)throw"Logger#logError called without arguments";this.verbose&&console.error(t)},t}();function d(t){return null==t}var u,C=function(){function t(){}return t.codeParseError=function(t){return"QR code parse error, error = "+t},t.errorGettingUserMedia=function(t){return"Error getting userMedia, error = "+t},t.onlyDeviceSupportedError=function(){return"The device doesn't support navigator.mediaDevices , only supported cameraIdOrConfig in this case is deviceId parameter (string)."},t.cameraStreamingNotSupported=function(){return"Camera streaming not supported by the browser."},t.unableToQuerySupportedDevices=function(){return"Unable to query supported devices, unknown error."},t.insecureContextCameraQueryError=function(){return"Camera access is only supported in secure context like https or localhost."},t}(),I=function(){function t(){}return t.scanningStatus=function(){return"Scanning"},t.idleStatus=function(){return"Idle"},t.errorStatus=function(){return"Error"},t.permissionStatus=function(){return"Permission"},t.noCameraFoundErrorStatus=function(){return"No Cameras"},t.lastMatch=function(t){return"Last Match: "+t},t.codeScannerTitle=function(){return"Code Scanner"},t.cameraPermissionTitle=function(){return"Request Camera Permissions"},t.cameraPermissionRequesting=function(){return"Requesting camera permissions..."},t.noCameraFound=function(){return"No camera found"},t.scanButtonStopScanningText=function(){return"Stop Scanning"},t.scanButtonStartScanningText=function(){return"Start Scanning"},t.scanButtonScanningStarting=function(){return"Launching Camera..."},t.textIfCameraScanSelected=function(){return"Scan an Image File"},t.textIfFileScanSelected=function(){return"Scan using camera directly"},t.selectCamera=function(){return"Select Camera"},t}(),f=function(){function t(){}return t.builtUsing=function(){return"Built using "},t.reportIssues=function(){return"Report issues"},t}(),w=function(){function t(){}return t.isMediaStreamConstraintsValid=function(t,e){if("object"!=typeof t){var r=typeof t;return e.logError("videoConstraints should be of type object, the object passed is of type "+r+".",!0),!1}for(var n=new Set(["autoGainControl","channelCount","echoCancellation","latency","noiseSuppression","sampleRate","sampleSize","volume"]),i=0,o=Object.keys(t);i0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]r&&(r=s,e=o)}if(!e)throw"No largest barcode found";return e},e.prototype.createBarcodeDetectorFormats=function(t){for(var e=[],r=0,n=t;r=o&&i()}))}))},e.prototype.scanFile=function(t,e){return this.scanFileV2(t,e).then((function(t){return t.decodedText}))},e.prototype.scanFileV2=function(t,e){var r=this;if(!(t&&t instanceof File))throw"imageFile argument is mandatory and should be instance of File. Use 'event.target.files[0]'.";if(d(e)&&(e=!0),!this.stateManagerProxy.canScanFile())throw"Cannot start file scan - ongoing camera scan";return new Promise((function(n,i){r.possiblyCloseLastScanImageFile(),r.clearElement(),r.lastScanImageFile=URL.createObjectURL(t);var o=new Image;o.onload=function(){var t=o.width,s=o.height,a=document.getElementById(r.elementId),A=a.clientWidth?a.clientWidth:_.DEFAULT_WIDTH,l=Math.max(a.clientHeight?a.clientHeight:s,_.FILE_SCAN_MIN_HEIGHT),h=r.computeCanvasDrawConfig(t,s,A,l);if(e){var g=r.createCanvasElement(A,l,"qr-canvas-visible");g.style.display="inline-block",a.appendChild(g);var d=g.getContext("2d");if(!d)throw"Unable to get 2d context from canvas";d.canvas.width=A,d.canvas.height=l,d.drawImage(o,0,0,t,s,h.x,h.y,h.width,h.height)}var u=r.createCanvasElement(h.width,h.height);a.appendChild(u);var C=u.getContext("2d");if(!C)throw"Unable to get 2d context from canvas";C.canvas.width=h.width,C.canvas.height=h.height,C.drawImage(o,0,0,t,s,0,0,h.width,h.height);try{r.qrcode.decodeAsync(u).then((function(t){n(c.createFromQrcodeResult(t))})).catch(i)}catch(t){i("QR code parse error, error = "+t)}},o.onerror=i,o.onabort=i,o.onstalled=i,o.onsuspend=i,o.src=URL.createObjectURL(t)}))},e.prototype.clear=function(){this.clearElement()},e.getCameras=function(){if(navigator.mediaDevices)return e.getCamerasFromMediaDevices();var t=MediaStreamTrack;if(MediaStreamTrack&&t.getSources)return e.getCamerasFromMediaStreamTrack();var r=C.unableToQuerySupportedDevices();return function(){if("https:"===location.protocol)return!0;var t=location.host.split(":")[0];return"127.0.0.1"===t||"localhost"===t}()||(r=C.insecureContextCameraQueryError()),Promise.reject(r)},e.prototype.getRunningTrackCapabilities=function(){if(null==this.localMediaStream)throw"Scanning is not in running state, call this API only when QR code scanning using camera is in running state.";if(0===this.localMediaStream.getVideoTracks().length)throw"No video tracks found";return this.localMediaStream.getVideoTracks()[0].getCapabilities()},e.prototype.applyVideoConstraints=function(t){var e=this;if(!t)throw"videoConstaints is required argument.";if(!w.isMediaStreamConstraintsValid(t,this.logger))throw"invalid videoConstaints passed, check logs for more details";if(null===this.localMediaStream)throw"Scanning is not in running state, call this API only when QR code scanning using camera is in running state.";if(0===this.localMediaStream.getVideoTracks().length)throw"No video tracks found";return new Promise((function(r,n){"aspectRatio"in t?n("Chaning 'aspectRatio' in run-time is not yet supported."):e.localMediaStream.getVideoTracks()[0].applyConstraints(t).then((function(t){r(t)})).catch((function(t){n(t)}))}))},e.getCamerasFromMediaDevices=function(){return new Promise((function(t,e){navigator.mediaDevices.getUserMedia({audio:!1,video:!0}).then((function(r){navigator.mediaDevices.enumerateDevices().then((function(e){for(var n=[],i=0,o=e;ie)throw"'config.qrbox' dimensions values should not be greater than the width of the HTML element."}(n.width)},e.prototype.validateQrboxConfig=function(t){if("number"!=typeof t&&(void 0===t.width||void 0===t.height))throw"Invalid instance of QrDimensions passed for 'config.qrbox'."},e.prototype.toQrdimensions=function(t){return"number"==typeof t?{width:t,height:t}:t},e.prototype.setupUi=function(t,e,r){var n=r.qrbox;this.validateQrboxConfig(n);var i=this.toQrdimensions(n);i.height>e&&this.logger.warn("[Html5Qrcode] config.qrbox has height that isgreater than the height of the video stream. Shading will be ignored");var o=r.isShadedBoxEnabled()&&i.height<=e,s={x:0,y:0,width:t,height:e},a=o?this.getShadedRegionBounds(t,e,i):s,A=this.createCanvasElement(a.width,a.height),l=A.getContext("2d");l.canvas.width=a.width,l.canvas.height=a.height,this.element.append(A),o&&this.possiblyInsertShadingElement(this.element,t,e,i),this.createScannerPausedUiElement(this.element),this.qrRegion=a,this.context=l,this.canvasElement=A},e.prototype.createScannerPausedUiElement=function(t){var e=document.createElement("div");e.innerText="Scanner paused",e.style.display="none",e.style.position="absolute",e.style.top="0px",e.style.zIndex="1",e.style.background="yellow",e.style.textAlign="center",e.style.width="100%",t.appendChild(e),this.scannerPausedUiElement=e},e.prototype.scanContext=function(t,e){var r=this;return this.stateManagerProxy.isPaused()?Promise.resolve(!1):this.qrcode.decodeAsync(this.canvasElement).then((function(e){return t(e.text,c.createFromQrcodeResult(e)),r.possiblyUpdateShaders(!0),!0})).catch((function(t){r.possiblyUpdateShaders(!1);var n=C.codeParseError(t);return e(n,h.createFrom(n)),!1}))},e.prototype.foreverScan=function(t,e,r){var n=this;if(this.shouldScan&&this.localMediaStream){var i=this.videoElement,o=i.videoWidth/i.clientWidth,s=i.videoHeight/i.clientHeight;if(!this.qrRegion)throw"qrRegion undefined when localMediaStream is ready.";var a=this.qrRegion.width*o,A=this.qrRegion.height*s,l=this.qrRegion.x*o,c=this.qrRegion.y*s;this.context.drawImage(i,l,c,a,A,0,0,this.qrRegion.width,this.qrRegion.height);var h=function(){n.foreverScanTimeout=setTimeout((function(){n.foreverScan(t,e,r)}),n.getTimeoutFps(t.fps))};this.scanContext(e,r).then((function(i){i||!0===t.disableFlip?h():(n.context.translate(n.context.canvas.width,0),n.context.scale(-1,1),n.scanContext(e,r).finally((function(){h()})))})).catch((function(t){n.logger.logError("Error happend while scanning context",t),h()}))}},e.prototype.onMediaStreamReceived=function(t,e,r,n,i,o){var s=this,a=this;return new Promise((function(A,l){var c=function(){var r=s.createVideoElement(n);a.element.append(r),r.onabort=l,r.onerror=l,r.onplaying=function(){var t=r.clientWidth,n=r.clientHeight;a.setupUi(t,n,e),a.foreverScan(e,i,o),A(null)},r.srcObject=t,r.play(),a.videoElement=r};if(a.localMediaStream=t,r||!e.aspectRatio)c();else{var h={aspectRatio:e.aspectRatio};t.getVideoTracks()[0].applyConstraints(h).then((function(t){return c()})).catch((function(t){a.logger.logErrors(["[Html5Qrcode] Constriants could not be satisfied, ignoring constraints",t]),c()}))}}))},e.prototype.createVideoConstraints=function(t){if("string"==typeof t)return{deviceId:{exact:t}};if("object"==typeof t){var e="facingMode",r={user:!0,environment:!0},n="exact",i=function(t){if(t in r)return!0;throw"config has invalid 'facingMode' value = '"+t+"'"},o=Object.keys(t);if(1!==o.length)throw"'cameraIdOrConfig' object should have exactly 1 key, if passed as an object, found "+o.length+" keys";var s=Object.keys(t)[0];if(s!==e&&"deviceId"!==s)throw"Only 'facingMode' and 'deviceId' are supported for 'cameraIdOrConfig'";if(s!==e){var a=t.deviceId;if("string"==typeof a)return{deviceId:a};if("object"==typeof a){if(n in a)return{deviceId:{exact:a.exact}};throw"'deviceId' should be string or object with exact as key."}throw"Invalid type of 'deviceId' = "+typeof a}var A=t.facingMode;if("string"==typeof A){if(i(A))return{facingMode:A}}else{if("object"!=typeof A)throw"Invalid type of 'facingMode' = "+typeof A;if(!(n in A))throw"'facingMode' should be string or object with exact as key.";if(i(A.exact))return{facingMode:{exact:A.exact}}}}throw"Invalid type of 'cameraIdOrConfig' = "+typeof t},e.prototype.computeCanvasDrawConfig=function(t,e,r,n){if(t<=r&&e<=n)return{x:(r-t)/2,y:(n-e)/2,width:t,height:e};var i=t,o=e;return t>r&&(e*=r/t,t=r),e>n&&(t*=n/e,e=n),this.logger.log("Image downsampled from "+i+"X"+o+" to "+t+"X"+e+"."),this.computeCanvasDrawConfig(t,e,r,n)},e.prototype.clearElement=function(){if(this.stateManagerProxy.isScanning())throw"Cannot clear while scan is ongoing, close it first.";var t=document.getElementById(this.elementId);t&&(t.innerHTML="")},e.prototype.createVideoElement=function(t){var e=document.createElement("video");return e.style.width=t+"px",e.muted=!0,e.setAttribute("muted","true"),e.playsInline=!0,e},e.prototype.possiblyUpdateShaders=function(t){this.qrMatch!==t&&(this.hasBorderShaders&&this.borderShaders&&this.borderShaders.length&&this.borderShaders.forEach((function(e){e.style.backgroundColor=t?_.BORDER_SHADER_MATCH_COLOR:_.BORDER_SHADER_DEFAULT_COLOR})),this.qrMatch=t)},e.prototype.possiblyCloseLastScanImageFile=function(){this.lastScanImageFile&&(URL.revokeObjectURL(this.lastScanImageFile),this.lastScanImageFile=null)},e.prototype.createCanvasElement=function(t,e,r){var n=t,i=e,o=document.createElement("canvas");return o.style.width=n+"px",o.style.height=i+"px",o.style.display="none",o.id=d(r)?"qr-canvas":r,o},e.prototype.getShadedRegionBounds=function(t,e,r){if(r.width>t||r.height>e)throw"'config.qrbox' dimensions should not be greater than the dimensions of the root HTML element.";return{x:(t-r.width)/2,y:(e-r.height)/2,width:r.width,height:r.height}},e.prototype.possiblyInsertShadingElement=function(t,e,r,n){if(!(e-n.width<1||r-n.height<1)){var i=document.createElement("div");i.style.position="absolute";var o=(e-n.width)/2,s=(r-n.height)/2;if(i.style.borderLeft=o+"px solid #0000007a",i.style.borderRight=o+"px solid #0000007a",i.style.borderTop=s+"px solid #0000007a",i.style.borderBottom=s+"px solid #0000007a",i.style.boxSizing="border-box",i.style.top="0px",i.style.bottom="0px",i.style.left="0px",i.style.right="0px",i.id=""+_.SHADED_REGION_CLASSNAME,e-n.width<11||r-n.height<11)this.hasBorderShaders=!1;else{var a=40;this.insertShaderBorders(i,a,5,-5,0,!0),this.insertShaderBorders(i,a,5,-5,0,!1),this.insertShaderBorders(i,a,5,n.height+5,0,!0),this.insertShaderBorders(i,a,5,n.height+5,0,!1),this.insertShaderBorders(i,5,45,-5,-5,!0),this.insertShaderBorders(i,5,45,n.height+5-a,-5,!0),this.insertShaderBorders(i,5,45,-5,-5,!1),this.insertShaderBorders(i,5,45,n.height+5-a,-5,!1),this.hasBorderShaders=!0}t.append(i)}},e.prototype.insertShaderBorders=function(t,e,r,n,i,o){var s=document.createElement("div");s.style.position="absolute",s.style.backgroundColor=_.BORDER_SHADER_DEFAULT_COLOR,s.style.width=e+"px",s.style.height=r+"px",s.style.top=n+"px",o?s.style.left=i+"px":s.style.right=i+"px",this.borderShaders||(this.borderShaders=[]),this.borderShaders.push(s),t.appendChild(s)},e.prototype.showPausedState=function(){if(!this.scannerPausedUiElement)throw"[internal error] scanner paused UI element not found";this.scannerPausedUiElement.style.display="block"},e.prototype.hidePausedState=function(){if(!this.scannerPausedUiElement)throw"[internal error] scanner paused UI element not found";this.scannerPausedUiElement.style.display="none"},e.prototype.getTimeoutFps=function(t){return 1e3/t},e}(),F="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAELSURBVDiNldNLSkNBEAXQkwgR4iYkZpLfVoxuxAU4ENyAaDA68QNuw88CNMFB4sBpNiAYyVQHXWpI+gW9UNCv+t6q7ur7WEYHJxjjI2KMY7Qz/B+s4wwzXGAbTbRifRl7fVRy4gc8YnNFkxqecL9Y5DzE1VVHDFQxwOl3ohNHy3U+xEEmvxWa1hr28YqbDLGBKYYL+bco0oQXaUg5tCJy6GIkOjQKSEM8ryj+Xo6PUgGpHJFDCZ9lTFAvIK1CHZMybqX7/Bfd0GpLT1LLkPYict1n5gbclxz2FyNtSMPtzScrkj0H0vsWoR7iO5n/oSLZc4Yr7Pj1wS6uY6+XE8+jhSPJJNOIUeSWTPUFgVI4ubR2UYIAAAAASUVORK5CYII=",P=function(){function t(){}return t.createDefault=function(){return{hasPermission:!1,lastUsedCameraId:null}},t}(),k=function(){function t(){this.data=P.createDefault();var e=localStorage.getItem(t.LOCAL_STORAGE_KEY);e?this.data=JSON.parse(e):this.reset()}return t.prototype.hasCameraPermissions=function(){return this.data.hasPermission},t.prototype.getLastUsedCameraId=function(){return this.data.lastUsedCameraId},t.prototype.setHasPermission=function(t){this.data.hasPermission=t,this.flush()},t.prototype.setLastUsedCameraId=function(t){this.data.lastUsedCameraId=t,this.flush()},t.prototype.resetLastUsedCameraId=function(){this.data.lastUsedCameraId=null,this.flush()},t.prototype.reset=function(){this.data=P.createDefault(),this.flush()},t.prototype.flush=function(){localStorage.setItem(t.LOCAL_STORAGE_KEY,JSON.stringify(this.data))},t.LOCAL_STORAGE_KEY="HTML5_QRCODE_DATA",t}(),L=function(){function t(){this.infoDiv=document.createElement("div")}return t.prototype.renderInto=function(t){this.infoDiv.style.position="absolute",this.infoDiv.style.top="10px",this.infoDiv.style.right="10px",this.infoDiv.style.zIndex="2",this.infoDiv.style.display="none",this.infoDiv.style.padding="5pt",this.infoDiv.style.border="1px solid silver",this.infoDiv.style.fontSize="10pt",this.infoDiv.style.background="rgb(248 248 248)",this.infoDiv.innerText=f.builtUsing();var e=document.createElement("a");e.innerText="html5-qrcode",e.href="https://github.com/mebjas/html5-qrcode",e.target="new",this.infoDiv.appendChild(e);var r=document.createElement("br"),n=document.createElement("br");this.infoDiv.appendChild(r),this.infoDiv.appendChild(n);var i=document.createElement("a");i.innerText=f.reportIssues(),i.href="https://github.com/mebjas/html5-qrcode/issues",i.target="new",this.infoDiv.appendChild(i),t.appendChild(this.infoDiv)},t.prototype.show=function(){this.infoDiv.style.display="block"},t.prototype.hide=function(){this.infoDiv.style.display="none"},t}(),G=function(){function t(t,e){this.isShowingInfoIcon=!0,this.onTapIn=t,this.onTapOut=e,this.infoIcon=document.createElement("img")}return t.prototype.renderInto=function(t){var e=this;this.infoIcon.src=F,this.infoIcon.style.position="absolute",this.infoIcon.style.top="4px",this.infoIcon.style.right="4px",this.infoIcon.style.opacity="0.6",this.infoIcon.style.cursor="pointer",this.infoIcon.style.zIndex="2",this.infoIcon.onmouseover=function(t){return e.onHoverIn()},this.infoIcon.onmouseout=function(t){return e.onHoverOut()},this.infoIcon.onclick=function(t){return e.onClick()},t.appendChild(this.infoIcon)},t.prototype.onHoverIn=function(){this.isShowingInfoIcon&&(this.infoIcon.style.opacity="1")},t.prototype.onHoverOut=function(){this.isShowingInfoIcon&&(this.infoIcon.style.opacity="0.6")},t.prototype.onClick=function(){this.isShowingInfoIcon?(this.isShowingInfoIcon=!1,this.onTapIn(),this.infoIcon.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAQgAAAEIBarqQRAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAE1SURBVDiNfdI7S0NBEAXgLya1otFgpbYSbISAgpXYi6CmiH9KCAiChaVga6OiWPgfRDQ+0itaGVNosXtluWwcuMzePfM4M3sq8lbHBubwg1dc4m1E/J/N4ghDPOIsfk/4xiEao5KX0McFljN4C9d4QTPXuY99jP3DsIoDPGM6BY5i5yI5R7O4q+ImFkJY2DCh3cAH2klyB+9J1xUMMAG7eCh1a+Mr+k48b5diXrFVwwLuS+BJ9MfR7+G0FHOHhTHhnXNWS87VDF4pcnfQK4Ep7XScNLmPTZgURNKKYENYWDpzW1BhscS1WHS8CDgURFJQrWcoF3c13KKbgg1BYQfy8xZWEzTTw1QZbAoKu8FqJnktdu5hcVSHmchiILzzuaDQvjBzV2m8yohCE1jHfPx/xhU+y4G/D75ELlRJsSYAAAAASUVORK5CYII=",this.infoIcon.style.opacity="1"):(this.isShowingInfoIcon=!0,this.onTapOut(),this.infoIcon.src=F,this.infoIcon.style.opacity="0.6")},t}(),Q=function(){function t(){var t=this;this.infoDiv=new L,this.infoIcon=new G((function(){t.infoDiv.show()}),(function(){t.infoDiv.hide()}))}return t.prototype.renderInto=function(t){this.infoDiv.renderInto(t),this.infoIcon.renderInto(t)},t}(),Z=function(){function t(){}return t.hasCameraPermissions=function(){return new Promise((function(t,e){navigator.mediaDevices.enumerateDevices().then((function(e){e.forEach((function(e){"videoinput"===e.kind&&e.label&&t(!0)})),t(!1)}))}))},t}();!function(t){t[t.STATUS_DEFAULT=0]="STATUS_DEFAULT",t[t.STATUS_SUCCESS=1]="STATUS_SUCCESS",t[t.STATUS_WARNING=2]="STATUS_WARNING",t[t.STATUS_REQUESTING_PERMISSION=3]="STATUS_REQUESTING_PERMISSION"}(B||(B={}));var U=function(){function t(t,e,r){if(this.lastMatchFound=null,this.cameraScanImage=null,this.fileScanImage=null,this.elementId=t,this.config=this.createConfig(e),this.verbose=!0===r,!document.getElementById(t))throw"HTML Element with id="+t+" not found";this.currentScanType=i.SCAN_TYPE_CAMERA,this.sectionSwapAllowed=!0,this.logger=new g(this.verbose),this.persistedDataManager=new k,!0!==e.rememberLastUsedCamera&&this.persistedDataManager.reset()}return t.prototype.render=function(t,e){var r=this;this.lastMatchFound=null,this.qrCodeSuccessCallback=function(e,n){if(t)t(e,n);else{if(r.lastMatchFound===e)return;r.lastMatchFound=e,r.setHeaderMessage(I.lastMatch(e),B.STATUS_SUCCESS)}},this.qrCodeErrorCallback=function(t,r){e&&e(t,r)};var n,i,o=document.getElementById(this.elementId);if(!o)throw"HTML Element with id="+this.elementId+" not found";o.innerHTML="",this.createBasicLayout(o),this.html5Qrcode=new b(this.getScanRegionId(),(n=this.config,i=this.verbose,{formatsToSupport:n.formatsToSupport,experimentalFeatures:n.experimentalFeatures,verbose:i}))},t.prototype.pause=function(){if(!this.html5Qrcode)throw"Code scanner not initialized.";this.html5Qrcode.pause()},t.prototype.resume=function(){if(!this.html5Qrcode)throw"Code scanner not initialized.";this.html5Qrcode.resume()},t.prototype.getState=function(){if(!this.html5Qrcode)throw"Code scanner not initialized.";return this.html5Qrcode.getState()},t.prototype.clear=function(){var t=this;return this.html5Qrcode?new Promise((function(e,r){t.html5Qrcode?t.html5Qrcode.isScanning&&t.html5Qrcode.stop().then((function(r){var n;t.html5Qrcode?(t.html5Qrcode.clear(),(n=document.getElementById(t.elementId))&&(n.innerHTML="",t.resetBasicLayout(n)),e()):e()})).catch((function(e){t.verbose&&t.logger.logError("Unable to stop qrcode scanner",e),r(e)})):e()})):Promise.resolve()},t.prototype.getRunningTrackCapabilities=function(){if(!this.html5Qrcode)throw"Code scanner not initialized.";return this.html5Qrcode.getRunningTrackCapabilities()},t.prototype.applyVideoConstraints=function(t){if(!this.html5Qrcode)throw"Code scanner not initialized.";return this.html5Qrcode.applyVideoConstraints(t)},t.prototype.createConfig=function(t){return t?(t.fps||(t.fps=A.SCAN_DEFAULT_FPS),t.rememberLastUsedCamera!==!A.DEFAULT_REMEMBER_LAST_CAMERA_USED&&(t.rememberLastUsedCamera=A.DEFAULT_REMEMBER_LAST_CAMERA_USED),t):{fps:A.SCAN_DEFAULT_FPS,rememberLastUsedCamera:A.DEFAULT_REMEMBER_LAST_CAMERA_USED}},t.prototype.createBasicLayout=function(t){t.style.position="relative",t.style.padding="0px",t.style.border="1px solid silver",this.createHeader(t);var e=document.createElement("div"),r=this.getScanRegionId();e.id=r,e.style.width="100%",e.style.minHeight="100px",e.style.textAlign="center",t.appendChild(e),this.insertCameraScanImageToScanRegion();var n=document.createElement("div"),i=this.getDashboardId();n.id=i,n.style.width="100%",t.appendChild(n),this.setupInitialDashboard(n)},t.prototype.resetBasicLayout=function(t){t.style.border="none"},t.prototype.setupInitialDashboard=function(t){this.createSection(t),this.createSectionControlPanel(),this.createSectionSwap()},t.prototype.createHeader=function(t){var e=document.createElement("div");e.style.textAlign="left",e.style.margin="0px",t.appendChild(e),(new Q).renderInto(e);var r=document.createElement("div");r.id=this.getHeaderMessageContainerId(),r.style.display="none",r.style.textAlign="center",r.style.fontSize="14px",r.style.padding="2px 10px",r.style.margin="4px",r.style.borderTop="1px solid #f6f6f6",e.appendChild(r)},t.prototype.createSection=function(t){var e=document.createElement("div");e.id=this.getDashboardSectionId(),e.style.width="100%",e.style.padding="10px 0px 10px 0px",e.style.textAlign="left",t.appendChild(e)},t.prototype.createCameraListUi=function(t,e,r){var n=this;n.setHeaderMessage(I.cameraPermissionRequesting());var i=function(){r||n.createPermissionButton(t,e)};b.getCameras().then((function(r){n.persistedDataManager.setHasPermission(!0),n.resetHeaderMessage(),r&&r.length>0?(t.removeChild(e),n.renderCameraSelection(r)):(n.setHeaderMessage(I.noCameraFound(),B.STATUS_WARNING),i())})).catch((function(t){n.persistedDataManager.setHasPermission(!1),r?r.disabled=!1:i(),n.setHeaderMessage(t,B.STATUS_WARNING)}))},t.prototype.createPermissionButton=function(t,e){var r=this,n=document.createElement("button");n.innerText=I.cameraPermissionTitle(),n.addEventListener("click",(function(){n.disabled=!0,r.createCameraListUi(t,e,n)})),e.appendChild(n)},t.prototype.createPermissionsUi=function(t,e){var r=this;this.persistedDataManager.hasCameraPermissions()?Z.hasCameraPermissions().then((function(n){n?r.createCameraListUi(t,e):(r.persistedDataManager.setHasPermission(!1),r.createPermissionButton(t,e))})).catch((function(n){r.persistedDataManager.setHasPermission(!1),r.createPermissionButton(t,e)})):this.createPermissionButton(t,e)},t.prototype.createSectionControlPanel=function(){var t=this,e=document.getElementById(this.getDashboardSectionId()),r=document.createElement("div");e.appendChild(r);var n=document.createElement("div");n.id=this.getDashboardSectionCameraScanRegionId(),n.style.display=this.currentScanType===i.SCAN_TYPE_CAMERA?"block":"none",r.appendChild(n);var o=document.createElement("div");o.style.textAlign="center",n.appendChild(o),this.createPermissionsUi(n,o);var s=document.createElement("div");s.id=this.getDashboardSectionFileScanRegionId(),s.style.textAlign="center",s.style.display=this.currentScanType===i.SCAN_TYPE_CAMERA?"none":"block",r.appendChild(s);var a=document.createElement("input");a.id=this.getFileScanInputId(),a.accept="image/*",a.type="file",a.style.width="200px",a.disabled=this.currentScanType===i.SCAN_TYPE_CAMERA;var A=document.createElement("span");A.innerText=" Select Image",s.appendChild(a),s.appendChild(A),a.addEventListener("change",(function(e){if(!t.html5Qrcode)throw"html5Qrcode not defined";if(null!=e&&null!=e.target&&t.currentScanType===i.SCAN_TYPE_FILE&&0!==e.target.files.length){var r=e.target.files[0];t.html5Qrcode.scanFileV2(r,!0).then((function(e){t.resetHeaderMessage(),t.qrCodeSuccessCallback(e.decodedText,e)})).catch((function(e){t.setHeaderMessage(e,B.STATUS_WARNING),t.qrCodeErrorCallback(e,h.createFrom(e))}))}}))},t.prototype.renderCameraSelection=function(t){var e=this,r=document.getElementById(this.getDashboardSectionCameraScanRegionId());r.style.textAlign="center";var n=document.createElement("span");n.style.marginRight="10px";var i=t.length,o=document.createElement("select");if(1===i)o.style.display="none";else{var s=I.selectCamera();n.innerText=s+" ("+t.length+") "}o.id=this.getCameraSelectionId();for(var a=[],A=0,l=t;A",e.appendChild(t.cameraScanImage)},this.cameraScanImage.width=64,this.cameraScanImage.style.opacity="0.3",this.cameraScanImage.src="data:image/gif;base64,R0lGODlhMgAyAPcAAPv7+wMDA/Pz8ysrK7Ozs0NDQ6Ojo1NTU9PT0yMjI+Pj45OTk8PDwxMTE2NjYzMzMwsLCxsbG9vb20tLS2tra8vLy1tbW6urqzo6Ont7e4ODg4uLi3NzcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQEBAD/ACwAAAAAMgAyAAAI/QABCBxIsKDBgwgTKlzIsKHDhxAjSpzoMIDFiwMoIhxw8SLCjhYzajT4AGSAjydHOhRgEaXKlS0Pxny5kGVKgzNpJrSJ8IHIgiaDCvVI8mfFoUg76sz5kCdNpjBvqoTa0OlLqgytTpXaFKtErwq1jgS7k+xDswfFakRrUC1FtgXdToRLUO5XrlGX4q1KV2FfgXYj/gUQGOLgwmf3Zh0sU3FNxjgdh4UMVHJZy4knIj6qmTLBw54HgsZ8VABh0wJQqz5NmHBogRZTy55Nm7aE1wCS6iZNcIBR0buRHvTtUudCrLgZIuc90vRy42llL+/4WyVHkCipQy+JHbr37+AFw4unGBAAIfkEBAQA/wAsAAAAAAEAAQAACAQAAQQEACH5BAQEAP8ALBcABAAFAAIAAAgNADcECBBBgMAACQQEBAAh+QQEBAD/ACwRAAQADwACAAAIEAAdBBhIsCDBAhQMKhxYICAAIfkEBAQA/wAsCgAEAB4AAgAACBQAAwgcSLCgwYMVBhxcyHAghIQBAQAh+QQEBAD/ACwlAAQAAwACAAAIBgADCBwYEAAh+QQEBAD/ACwGAAQAJgADAAAIKAADCBQYoaDBgwgTKhzIsKHDhxAjBqiAAAFFixUvaszIEaPHjRYZBAQAIfkEBAQA/wAsBgAEACYABwAACE0AAwgMMACAwYMIEypcOGCgQ4EYIkqcSLGiRQgPM2rcyFHjBQIEPoYEKbIkyZMjU5oMaWChy5cwDwqISbMmgJkKF2zYybOnz58bFiwMCAAh+QQEBAD/ACwGAAUAJgAIAAAIQwADCAwwAIDBgwgTKlz4YGCAhRAjSjwoYILFixgzatzI0aLDjyBDihRpoKTJkyhTqlxpYMHElzBjypxpsCTNgzYVBgQAIfkEBAQA/wAsBAAHACoACQAACFcAAwQAQLCgwYMIEyoEIECgwIUQIyZs6FCiRYkUG0DAwLEjBocgQ4oU6bEjhAYNRqpcyVIkBAkECFyIOVMmzZs2c9bciZOnhItAgwodanHBBqICNixYGBAAIfkEBAQA/wAsBAAKACoACQAACFkAHwwAQLAggAAIEypcyDChwYICHxpsSLGixIsPEWLcSFCARowSLogcKRIhyZMoSRowmVIChIowY8KEwAFDgZs2cd4skJPnzp5Afwq9SYGj0aNIkypdyrRpQAAh+QQEBAD/ACwEAA0AKgAKAAAIagABCBw4MEAAgggTEhRgUKHDggcfPmQYUWLChhYVUswoAICAjhRBivQ48qNHjwZLnqxgoKXLlgZfypz5ckNMmhUgGNzJs6fPn0B9aphw4ABRo0WPKk3KFKnTpU81ZJxKtarVqwlNYiX5MCAAIfkEBAQA/wAsBAAQACoADAAACGgAAQgcODBAAIIIExIUYFChw4IHHz5kGFFiwoYWFVLMeLEix4EbP0IUuRCjxgooU6I0qLKlS5UMWL4UEMGgzZs4c+rcibPBgQgJEgAVSnSo0aBHiRZVenQCyadQo0qdSlWg0Kg0IzwMCAAh+QQEBAD/ACwEABUAKgAJAAAITgABCBw4MEAAgggTEhRgUKHDggcfPmQYUWLChhYVUnw4wKDHjyBDihwJckBHkihTkhwAQIDLlzBjypxJE2bGmzhz6typ8MAEni0nHHgYEAAh+QQEBAD/ACwEABgAKgAKAAAIYgABCBw4MEAAgggTEhRgUKHDggcfPmQYUWLChhYVUsx4sSLHgRsdUsBAsiRJgyZTqkyJciWFBgZjypxJs6bNmRAkECBwYWdPnj6DAh36s6hQoxI+Kl3KtCnHBRucCtiw4GFAACH5BAQEAP8ALAQAHAAqAAoAAAhiAAEIHDgwQACCCBMSFGBQocOCBx8+ZBhRYsKGFhVSzHixIseBGx1qmECyJEmDJlOqTIlypQYIBmPKnEmzpk2aCAzo3Mmzp8+fQHlW+Ei0qNGjHHUKEABgaVOmTqNCFaDzYUAAIfkEBAQA/wAsBAAgACoACAAACFoAAQgcODBAAIIIExIUYFChw4IHHz5kGFFiwoYWFVLMeLEix4EbHWKAQLIkSYMmU6pMiXIlhgQGY8qcSbOmzZkRAEhQoGBnT54+gwId+rOoUKMABgz4yPSh0oAAIfkEBAQA/wAsBAAkACoABgAACFUAAQgcODBAAAEABCBUmHChw4QJDRKcSLHgQYUYM2rMKEFixY8CDYocSbLkSJANIGBYyRKDyZcwW7KE0ACmzZs4DV4gsJMnAZ9Aewr9OTSozwsXDAYEACH5BAQEAP8ALAQAJwAqAAUAAAhLAAcMAECwIIAACBMqXMgwocGCAhEKACBgYkWKFjNi3Hixo8aLChmIHEmypMmTKEU2XMmypcsAAgU+GPBgZk2aNnPi3HmzZ8wBCAMCACH5BAQEAP8ALAYAKAAmAAYAAAg8AAEIHEiwoMGDCBMqXMiwocOEFiJKnEixosWKBywcOBCgo8ePIEOKHBkywoINC06mRKmyJcuXK1NG+BgQACH5BAQEAP8ALAYAKgAmAAQAAAghAAEIHEiwoMGDCAUgXMgwoYCHASJKnEixosWLGDNqzBgQACH5BAQEAP8ALAAAAAABAAEAAAgEAAEEBAAh+QQEBAD/ACwKACwAHgACAAAIGwAHAABwIYDBgwgTKjQwEMAAgQQVSpx4oeGDgAAh+QQEBAD/ACwNACwAFwACAAAIFwABCBwo0ECAgwgDUCDIkKHBhAc5NAwIACH5BAQEAP8ALBUALAAJAAIAAAgJAAEIHEiw4MCAACH5BAQEAP8ALAAAAAABAAEAAAgEAAEEBAAh+QQEBAD/ACwAAAAAAQABAAAIBAABBAQAIfkEBAQA/wAsAAAAAAEAAQAACAQAAQQEACH5BAQEAP8ALAAAAAABAAEAAAgEAAEEBAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgeG1sbnM6Ym9keW1vdmluPSJib2R5bW92aW4iCiAgICB4bWxuczp4bXBETT0iaHR0cDovL25zLmFkb2JlLmNvbS94bXAvMS4wL0R5bmFtaWNNZWRpYS8iCiAgICB4bWxuczpzdERpbT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL0RpbWVuc2lvbnMjIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFkNzgwZGNmLWVkZTctZWU0My04N2E0LTdlMTg3YThlYTI3NSIKICAgeG1wTU06RG9jdW1lbnRJRD0iZDMxNDk3ZmItM2Y1Zi0yMzkwLTFlZDEtYjU3NDAwMDAwMDVmIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NTdiYmYyOTgtY2M5Ny02MzRlLWE4MjAtODFiMjAxY2RmZjllIgogICB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTEyLTA1VDA5OjEzOjIyKzA1OjAwIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0xMi0wNVQwOToxMzoyMiswNTowMCIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBBZnRlciBFZmZlY3RzIENDIDIwMTggKFdpbmRvd3MpIgogICB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0xMi0wNVQwOToxMjo1MCswNTowMCIKICAgZGM6Zm9ybWF0PSLQkNC90LjQvNC40YDQvtCy0LDQvdC90YvQuSBHSUYiCiAgIGJvZHltb3Zpbjpwcm9qZWN0X2lkPSJvZWU3ZTRyM2gwaGtjZTdiODgzMyIKICAgeG1wRE06dmlkZW9GcmFtZVJhdGU9IjI1LjAwMDAwMCIKICAgeG1wRE06dmlkZW9GaWVsZE9yZGVyPSJQcm9ncmVzc2l2ZSIKICAgeG1wRE06dmlkZW9QaXhlbEFzcGVjdFJhdGlvPSIxLzEiCiAgIHhtcERNOnN0YXJ0VGltZVNjYWxlPSIyNSIKICAgeG1wRE06c3RhcnRUaW1lU2FtcGxlU2l6ZT0iMSI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSI5YWE0NzI4ZC1iYWU1LTAyMDEtMjM4MC0zZTlhMDAwMDAwOGMiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDVUMDk6MTM6MjIrMDU6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphYTA2OGRlZi1hY2NhLTM5NDgtODM1Yi02MWQ1MmU2NWI3NDIiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMDgtMzBUMDE6Mzg6MTErMDM6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIEFmdGVyIEVmZmVjdHMgQ0MgMjAxOCAoV2luZG93cykiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZThjY2QxNzEtNWFkZC01MzRmLWIyZjgtODc0NzNhOGMxYWJmIgogICAgICBzdEV2dDp3aGVuPSIyMDE5LTA4LTMwVDAxOjM4OjMxKzAzOjAwIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBBZnRlciBFZmZlY3RzIENDIDIwMTggKFdpbmRvd3MpIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvY29udGVudCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2ZmVmYzVhNC00YWY3LTVhNGYtYjJiYS1hMWRkYTM1YWRkMTQiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMDgtMzBUMDI6MDY6MjcrMDM6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIEFmdGVyIEVmZmVjdHMgQ0MgMjAxOCAoV2luZG93cykiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249ImRlcml2ZWQiCiAgICAgIHN0RXZ0OnBhcmFtZXRlcnM9InNhdmVkIHRvIG5ldyBsb2NhdGlvbiIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmYjg3ZmQwYS00Njc2LTQ2NDMtOWZlYS03Mjk2NzllYmVhY2YiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMDgtMzBUMDI6MDY6NTYrMDM6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIEFmdGVyIEVmZmVjdHMgQ0MgMjAxOCAoV2luZG93cykiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MTBmZDdiYzMtNDllMy1hNzRjLWI0Y2UtNzI5NjYxM2NjMmYwIgogICAgICBzdEV2dDp3aGVuPSIyMDE5LTA4LTMwVDAyOjA3OjA3KzAzOjAwIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBBZnRlciBFZmZlY3RzIENDIDIwMTggKFdpbmRvd3MpIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvY29udGVudCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowMWZlOTE3MC1lYTQ1LTcyNDItOGVmNy1mMzQyNTU0ZWEwN2UiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMDgtMzBUMDI6MDc6MDcrMDM6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIEFmdGVyIEVmZmVjdHMgQ0MgMjAxOCAoV2luZG93cykiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZjJjN2ViNzEtMGJhZC03OTRiLWI4ZTAtMWVhZTkzOTM3Njk2IgogICAgICBzdEV2dDp3aGVuPSIyMDE5LTA4LTMwVDAyOjI2OjIzKzAzOjAwIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBBZnRlciBFZmZlY3RzIENDIDIwMTggKFdpbmRvd3MpIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvY29udGVudCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5ZDFlN2UzNi1kZWVjLWJmNDYtOGE0Mi1kODE4YzBlMjc5YjIiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMTM6NDk6MDIrMDU6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjA1Y2RkNWI3LTM0MGMtOGM0ZC1hMWUyLTlkYWJlMjg0OTA0MyIKICAgICAgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wNFQxMzo0OTowMiswNTowMCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozYmY3YjIzNi1kNTI3LTA0NGUtYTlkMS00MjUzY2FlZGM0N2MiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMTM6NDk6MjMrMDU6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjAxYTc1YTU2LTMyZGMtYmU0OS1hZWFkLWFjMmQ5YjNkZjJiMiIKICAgICAgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wNFQxMzo0OToyMyswNTowMCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo4OTJiYmEyYy1iMjljLWNjNDgtOTI1My0wOGE0ODYwZTY5ZDAiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDVUMDk6MDE6MzArMDU6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmYwZTI3MTZlLWU5ZTAtYWE0ZS05ZjcwLTQxNTdjNmNlMGZlYSIKICAgICAgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wNVQwOToxMzoxMSswNTowMCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iL2NvbnRlbnQiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Y2I2NjE4ZDItOTcwMC01NTRjLWI5ZTktNmEzYWUxM2Q5NGYyIgogICAgICBzdEV2dDp3aGVuPSIyMDE5LTEyLTA1VDA5OjEzOjExKzA1OjAwIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjlkZWU2YWY2LWQ1ZWYtMzg0My04MjY5LTQyMGY1ODFlMjdlZiIKICAgICAgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wNVQwOToxMzoyMiswNTowMCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxZDc4MGRjZi1lZGU3LWVlNDMtODdhNC03ZTE4N2E4ZWEyNzUiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDVUMDk6MTM6MjIrMDU6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9tZXRhZGF0YSIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgIDx4bXBNTTpEZXJpdmVkRnJvbQogICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3MzNkMjZhMi1iN2I4LTA3NGItODhkNy1iOGE1OGM5ZmQwYzUiCiAgICBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjczM2QyNmEyLWI3YjgtMDc0Yi04OGQ3LWI4YTU4YzlmZDBjNSIKICAgIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphYTA2OGRlZi1hY2NhLTM5NDgtODM1Yi02MWQ1MmU2NWI3NDIiLz4KICAgPHhtcE1NOkluZ3JlZGllbnRzPgogICAgPHJkZjpCYWc+CiAgICAgPHJkZjpsaQogICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRkOTdmOTNlLWIwZjEtZjU0NC1iZmMxLWFmZThhMzEyNjkzZCIKICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgPC9yZGY6QmFnPgogICA8L3htcE1NOkluZ3JlZGllbnRzPgogICA8eG1wTU06UGFudHJ5PgogICAgPHJkZjpCYWc+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmNvbXAiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRkOTdmOTNlLWIwZjEtZjU0NC1iZmMxLWFmZThhMzEyNjkzZCI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+cG9ydHJhaXQtbW9kZS1zY2FubmluZzwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8eG1wTU06SW5ncmVkaWVudHM+CiAgICAgICA8cmRmOkJhZz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjBlNWU0MmUtM2U1NS0zYTQ1LTlkZDYtZjY1YzFlNzAxMDRhIgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmFjZDllMjg3LWZjMzEtMWQ0Ni1hNzdmLTQ1NjQ1ZmFhNWUwYyIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MGQyODU3NjgwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MTA1ODQwMDAwMDBmMjU0MDE2MDAwMDAwZDI4NTc2ODAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmQwMDE4YzVkLWU2MDEtZWM0NS1hZWQ5LTdhZTNjZTViNmIzZCIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgICAgIDxyZGY6bGkKICAgICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDplODdiN2UyOC02NTQ5LTM5NGEtODNjOS05ZjdkOTUyNDJjNmUiCiAgICAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZThlY2VkNGMtNWVjZi0xNTQ1LWI3ZGYtNmViNmMwNjQxNGZiIgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICA8L3JkZjpCYWc+CiAgICAgIDwveG1wTU06SW5ncmVkaWVudHM+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjBlNWU0MmUtM2U1NS0zYTQ1LTlkZDYtZjY1YzFlNzAxMDRhIj4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5wYXBlcjwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmFjZDllMjg3LWZjMzEtMWQ0Ni1hNzdmLTQ1NjQ1ZmFhNWUwYyI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+bGluZS1zY2FubmluZzwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmQwMDE4YzVkLWU2MDEtZWM0NS1hZWQ5LTdhZTNjZTViNmIzZCI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+bWFzazwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmU4N2I3ZTI4LTY1NDktMzk0YS04M2M5LTlmN2Q5NTI0MmM2ZSI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+ZnJhbWU8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmxheWVyIgogICAgICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDplOGVjZWQ0Yy01ZWNmLTE1NDUtYjdkZi02ZWI2YzA2NDE0ZmIiPgogICAgICA8ZGM6dGl0bGU+CiAgICAgICA8cmRmOkFsdD4KICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkJhY2tncm91bmQ8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICA8L3JkZjpCYWc+CiAgIDwveG1wTU06UGFudHJ5PgogICA8eG1wRE06dmlkZW9GcmFtZVNpemUKICAgIHN0RGltOnc9IjUwIgogICAgc3REaW06aD0iNTAiCiAgICBzdERpbTp1bml0PSJwaXhlbCIvPgogICA8eG1wRE06ZHVyYXRpb24KICAgIHhtcERNOnZhbHVlPSIyOSIKICAgIHhtcERNOnNjYWxlPSIxLzI1Ii8+CiAgIDx4bXBETTpzdGFydFRpbWVjb2RlCiAgICB4bXBETTp0aW1lRm9ybWF0PSIyNVRpbWVjb2RlIgogICAgeG1wRE06dGltZVZhbHVlPSIwMDowMDowMDowMCIvPgogICA8eG1wRE06YWx0VGltZWNvZGUKICAgIHhtcERNOnRpbWVWYWx1ZT0iMDA6MDA6MDA6MDAiCiAgICB4bXBETTp0aW1lRm9ybWF0PSIyNVRpbWVjb2RlIi8+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAOw=="},t.prototype.insertFileScanImageToScanRegion=function(){var t=this,e=document.getElementById(this.getScanRegionId());if(this.fileScanImage)return e.innerHTML="
",void e.appendChild(this.fileScanImage);this.fileScanImage=new Image,this.fileScanImage.onload=function(r){e.innerHTML="
",e.appendChild(t.fileScanImage)},this.fileScanImage.width=64,this.fileScanImage.style.opacity="0.3",this.fileScanImage.src="data:image/gif;base64,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MS8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczpib2R5bW92aW49ImJvZHltb3ZpbiIKICAgIHhtbG5zOnhtcERNPSJodHRwOi8vbnMuYWRvYmUuY29tL3htcC8xLjAvRHluYW1pY01lZGlhLyIKICAgIHhtbG5zOnN0RGltPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvRGltZW5zaW9ucyMiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZjZmYzc4ODQtZWYxMy1iNTRkLTk0ZGMtMDI5OTYxYWE2ZDBkIgogICB4bXBNTTpEb2N1bWVudElEPSI2MzU4ZTE5Yi1mOTQxLTA3MzMtNTEzNy03YTg0MDAwMDAwNTEiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDozZTk2YzgxNS1jNGVlLTQzNDUtYjMzZi0yYjFiN2NlMWE5NzciCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMTItMDRUMTE6Mjk6MDcrMDM6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTEyLTA0VDExOjI5OjA3KzAzOjAwIgogICB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0xMi0wNFQxMToyODozNiswMzowMCIKICAgZGM6Zm9ybWF0PSLQkNC90LjQvNC40YDQvtCy0LDQvdC90YvQuSBHSUYiCiAgIGJvZHltb3Zpbjpwcm9qZWN0X2lkPSI5ZHhpaGxxMXQzbjN1N2hjdXZjOCIKICAgeG1wRE06dmlkZW9GcmFtZVJhdGU9IjI0LjAwMDAwMCIKICAgeG1wRE06dmlkZW9GaWVsZE9yZGVyPSJQcm9ncmVzc2l2ZSIKICAgeG1wRE06dmlkZW9QaXhlbEFzcGVjdFJhdGlvPSIxLzEiCiAgIHhtcERNOnN0YXJ0VGltZVNjYWxlPSIyNCIKICAgeG1wRE06c3RhcnRUaW1lU2FtcGxlU2l6ZT0iMSI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJmZDVkNzVlYi1iN2RlLWZjYjUtYzRlZC04OTJjMDAwMDAwN2UiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMTE6Mjk6MDcrMDM6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ZGVkNDY0NC00OThmLTFkNGUtOTUyNy0xYTFmM2ViMjY3MzUiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMDg6Mjc6MTArMDM6MDAiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Mzk4NDEzNTEtNzFjZi0zNzQ3LTkyMGQtMzE2MDkwYjhkMTIxIgogICAgICBzdEV2dDp3aGVuPSIyMDE5LTEyLTA0VDA4OjQyOjM1KzAzOjAwIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvY29udGVudCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MzQ2MzVmNy02YWQwLTYyNGUtOWUzNi01NjRkZWY3YzZkNTIiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMDk6MDQ6NDcrMDM6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249ImRlcml2ZWQiCiAgICAgIHN0RXZ0OnBhcmFtZXRlcnM9InNhdmVkIHRvIG5ldyBsb2NhdGlvbiIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo0YjMwMTM3MS0yZjM0LWIzNDEtOGMxYy0xZjZmNjhlMmY0YTkiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMDk6MDQ6NDcrMDM6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YTEwOGYwZjQtZDNiMC1lMzQzLWJkMGQtMDMxMWEzMGFkZGNjIgogICAgICBzdEV2dDp3aGVuPSIyMDE5LTEyLTA0VDA5OjE0OjExKzAzOjAwIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvY29udGVudCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo3YmQyOGRiYi1jMzI5LTA3NDEtOTk0YS1mMGJkZDIwZmU3MmEiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMDk6MTk6MzgrMDM6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjJhOTkzY2E2LWU0YzctZjk0Mi05OWMyLTJiZTI2YWJmYjRjMCIKICAgICAgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wNFQxMToyNzo0OSswMzowMCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjYjI2ZjkyNS1jYmY2LWExNDktYTYwNi00YTIxYTIwN2VlY2IiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMTE6Mjg6NTYrMDM6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9jb250ZW50Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjk5ZWE2MmRhLTQyMDctNjA0Ni1hYmVkLTBjMmEzOWQ0NDgyZSIKICAgICAgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wNFQxMToyODo1NiswMzowMCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplMTg5MTkxMy1mYTQwLTYxNDktYjdmZS03YzI1YjIzNTg5YzEiCiAgICAgIHN0RXZ0OndoZW49IjIwMTktMTItMDRUMTE6Mjk6MDcrMDM6MDAiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZjZmYzc4ODQtZWYxMy1iNTRkLTk0ZGMtMDI5OTYxYWE2ZDBkIgogICAgICBzdEV2dDp3aGVuPSIyMDE5LTEyLTA0VDExOjI5OjA3KzAzOjAwIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvbWV0YWRhdGEiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogICA8eG1wTU06RGVyaXZlZEZyb20KICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZTc2ZGE2ZWMtMmUzYy0zMTRkLTkyZjEtNThkNzJjNTJhMzMyIgogICAgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDplNzZkYTZlYy0yZTNjLTMxNGQtOTJmMS01OGQ3MmM1MmEzMzIiCiAgICBzdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NGRlZDQ2NDQtNDk4Zi0xZDRlLTk1MjctMWExZjNlYjI2NzM1Ii8+CiAgIDx4bXBNTTpJbmdyZWRpZW50cz4KICAgIDxyZGY6QmFnPgogICAgIDxyZGY6bGkKICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpiZWMzNTdhOS05MGJmLWFjNDAtYjk2OS00NDIwMjNiMzI0YjEiCiAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgIDwvcmRmOkJhZz4KICAgPC94bXBNTTpJbmdyZWRpZW50cz4KICAgPHhtcE1NOlBhbnRyeT4KICAgIDxyZGY6QmFnPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzhhNWE2MmItYzAzYy03YzQxLWIzMGQtMTk0OTFkOTJhZmFlIj4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5CYWNrZ3JvdW5kPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYxOGExZTUtMzY4Yy0wYjQ5LWJkNDctNzI0NmFkOTU3MmZjIj4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5tYXNrMzwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjk0YjA5MTY2LTVmZWQtNzA0OS04YzQ4LWExODQwNjY3MjJlZiI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+cGhvdG8yPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgIDwvcmRmOmxpPgogICAgIDxyZGY6bGk+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24KICAgICAgIGRjOmZvcm1hdD0iYXBwbGljYXRpb24vdm5kLmFkb2JlLmFmdGVyZWZmZWN0cy5sYXllciIKICAgICAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YWQ2ZWFiMmYtMWMxNS1jZjQ0LTg5YzgtNWJlZWVmMjUwOTA4Ij4KICAgICAgPGRjOnRpdGxlPgogICAgICAgPHJkZjpBbHQ+CiAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5waG90bzE8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmNvbXAiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmJlYzM1N2E5LTkwYmYtYWM0MC1iOTY5LTQ0MjAyM2IzMjRiMSI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+cGhvdG8tZ2FsbGVyeSAyPC9yZGY6bGk+CiAgICAgICA8L3JkZjpBbHQ+CiAgICAgIDwvZGM6dGl0bGU+CiAgICAgIDx4bXBNTTpJbmdyZWRpZW50cz4KICAgICAgIDxyZGY6QmFnPgogICAgICAgIDxyZGY6bGkKICAgICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3OGE1YTYyYi1jMDNjLTdjNDEtYjMwZC0xOTQ5MWQ5MmFmYWUiCiAgICAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ODYxOGExZTUtMzY4Yy0wYjQ5LWJkNDctNzI0NmFkOTU3MmZjIgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk0YjA5MTY2LTVmZWQtNzA0OS04YzQ4LWExODQwNjY3MjJlZiIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgICAgIDxyZGY6bGkKICAgICAgICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDphZDZlYWIyZi0xYzE1LWNmNDQtODljOC01YmVlZWYyNTA5MDgiCiAgICAgICAgIHN0UmVmOmZyb21QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6dG9QYXJ0PSJ0aW1lOjBkMjk2MzUyMDAwMDAwZjI1NDAxNjAwMDAwMCIKICAgICAgICAgc3RSZWY6bWFza01hcmtlcnM9Ik5vbmUiLz4KICAgICAgICA8cmRmOmxpCiAgICAgICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YzkwOWFiOGMtY2IxZC01ZDQxLWJkNDgtMzU2MDQ4NmZkNmE2IgogICAgICAgICBzdFJlZjpmcm9tUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOnRvUGFydD0idGltZTowZDI5NjM1MjAwMDAwMGYyNTQwMTYwMDAwMDAiCiAgICAgICAgIHN0UmVmOm1hc2tNYXJrZXJzPSJOb25lIi8+CiAgICAgICAgPHJkZjpsaQogICAgICAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmYxY2I0ODQ2LTNmNDItZDk0ZS05MmI4LTVjOTQyNjk4N2JkMyIKICAgICAgICAgc3RSZWY6ZnJvbVBhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjp0b1BhcnQ9InRpbWU6MGQyOTYzNTIwMDAwMDBmMjU0MDE2MDAwMDAwIgogICAgICAgICBzdFJlZjptYXNrTWFya2Vycz0iTm9uZSIvPgogICAgICAgPC9yZGY6QmFnPgogICAgICA8L3htcE1NOkluZ3JlZGllbnRzPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgICA8cmRmOmxpPgogICAgICA8cmRmOkRlc2NyaXB0aW9uCiAgICAgICBkYzpmb3JtYXQ9ImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5hZnRlcmVmZmVjdHMubGF5ZXIiCiAgICAgICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmM5MDlhYjhjLWNiMWQtNWQ0MS1iZDQ4LTM1NjA0ODZmZDZhNiI+CiAgICAgIDxkYzp0aXRsZT4KICAgICAgIDxyZGY6QWx0PgogICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+bWFzazE8L3JkZjpsaT4KICAgICAgIDwvcmRmOkFsdD4KICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4KICAgICAgPHJkZjpEZXNjcmlwdGlvbgogICAgICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWZ0ZXJlZmZlY3RzLmxheWVyIgogICAgICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmMWNiNDg0Ni0zZjQyLWQ5NGUtOTJiOC01Yzk0MjY5ODdiZDMiPgogICAgICA8ZGM6dGl0bGU+CiAgICAgICA8cmRmOkFsdD4KICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPnBob3RvMzwvcmRmOmxpPgogICAgICAgPC9yZGY6QWx0PgogICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICA8L3JkZjpsaT4KICAgIDwvcmRmOkJhZz4KICAgPC94bXBNTTpQYW50cnk+CiAgIDx4bXBETTp2aWRlb0ZyYW1lU2l6ZQogICAgc3REaW06dz0iNTAiCiAgICBzdERpbTpoPSI1MCIKICAgIHN0RGltOnVuaXQ9InBpeGVsIi8+CiAgIDx4bXBETTpkdXJhdGlvbgogICAgeG1wRE06dmFsdWU9IjI4IgogICAgeG1wRE06c2NhbGU9IjEvMjQiLz4KICAgPHhtcERNOnN0YXJ0VGltZWNvZGUKICAgIHhtcERNOnRpbWVGb3JtYXQ9IjI0VGltZWNvZGUiCiAgICB4bXBETTp0aW1lVmFsdWU9IjAwOjAwOjAwOjAwIi8+CiAgIDx4bXBETTphbHRUaW1lY29kZQogICAgeG1wRE06dGltZVZhbHVlPSIwMDowMDowMDowMCIKICAgIHhtcERNOnRpbWVGb3JtYXQ9IjI0VGltZWNvZGUiLz4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAA7"},t.prototype.clearScanRegion=function(){document.getElementById(this.getScanRegionId()).innerHTML=""},t.prototype.getDashboardSectionId=function(){return this.elementId+"__dashboard_section"},t.prototype.getDashboardSectionCameraScanRegionId=function(){return this.elementId+"__dashboard_section_csr"},t.prototype.getDashboardSectionFileScanRegionId=function(){return this.elementId+"__dashboard_section_fsr"},t.prototype.getDashboardSectionSwapLinkId=function(){return this.elementId+"__dashboard_section_swaplink"},t.prototype.getScanRegionId=function(){return this.elementId+"__scan_region"},t.prototype.getDashboardId=function(){return this.elementId+"__dashboard"},t.prototype.getFileScanInputId=function(){return this.elementId+"__filescan_input"},t.prototype.getStatusSpanId=function(){return this.elementId+"__status_span"},t.prototype.getHeaderMessageContainerId=function(){return this.elementId+"__header_message"},t.prototype.getCameraSelectionId=function(){return this.elementId+"__camera_selection"},t.prototype.getCameraScanRegion=function(){return document.getElementById(this.getDashboardSectionCameraScanRegionId())},t.prototype.getFileScanRegion=function(){return document.getElementById(this.getDashboardSectionFileScanRegionId())},t.prototype.getFileScanInput=function(){return document.getElementById(this.getFileScanInputId())},t.prototype.getDashboardSectionSwapLink=function(){return document.getElementById(this.getDashboardSectionSwapLinkId())},t.prototype.getHeaderMessageDiv=function(){return document.getElementById(this.getHeaderMessageContainerId())},t}()})(),__Html5QrcodeLibrary__=n})();/** Append the libary components to globals for backwards compatibility. */ if (window && !Html5QrcodeScanner) { var Html5QrcodeScanner = window.__Html5QrcodeLibrary__.Html5QrcodeScanner; var Html5Qrcode = window.__Html5QrcodeLibrary__.Html5Qrcode;