@qr-platform/qr-code.js 0.9.2 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,60 @@
1
+ /**
2
+ * QRValidatorZbar Validation Library for Node.js
3
+ *
4
+ * This server-side class uses zbar-wasm to decode QR codes and other barcodes,
5
+ * with Jimp (and Resvg for SVG conversion) for image processing.
6
+ */
7
+ interface QRValidatorOptions {
8
+ /** Maximum number of retry attempts */
9
+ maxRetries?: number;
10
+ /** Time to wait between retries in milliseconds */
11
+ retryInterval?: number;
12
+ /** Enable debug logging */
13
+ debug?: boolean;
14
+ }
15
+ interface QRValidationResult {
16
+ /** Whether the validation was successful */
17
+ isValid: boolean;
18
+ /** Decoded data from the QR code (if successful) */
19
+ data?: string;
20
+ /** Format of the detected barcode */
21
+ format?: string;
22
+ /** Number of retry attempts made */
23
+ attempts?: number;
24
+ /** Whether the successful decode came from an inverted image */
25
+ isInverted?: boolean;
26
+ /** Error message if validation failed */
27
+ error?: string;
28
+ /** Error code if validation failed */
29
+ errorCode?: string;
30
+ }
31
+ declare class QRValidatorZbarNode {
32
+ private maxRetries;
33
+ private retryInterval;
34
+ private debug;
35
+ constructor(options?: QRValidatorOptions);
36
+ private log;
37
+ /**
38
+ * Validate and decode a QR code from an SVG string (or file path)
39
+ */
40
+ validate(input: string, isInverted?: boolean): Promise<QRValidationResult>;
41
+ private sleep;
42
+ /**
43
+ * Process image using Sharp and get raw pixel data
44
+ * @param input Input image
45
+ * @param width Optional width for resizing
46
+ * @param height Optional height for resizing
47
+ * @returns Processed image data compatible with zbar-wasm
48
+ */
49
+ private processImageResvg;
50
+ private validateWithRetry;
51
+ /**
52
+ * Save a debug image using Jimp. The raw image data is used to reconstruct an image.
53
+ */
54
+ private saveDebugImage;
55
+ /**
56
+ * Decode the QR code from image data using zbar-wasm.
57
+ */
58
+ private decodeQR;
59
+ }
60
+ export default QRValidatorZbarNode;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Save an RGBA or grayscale buffer as a PNG using image-js.
3
+ * @param buffer - Buffer or Uint8Array of pixel data (RGBA or grayscale)
4
+ * @param width - Image width
5
+ * @param height - Image height
6
+ * @param filename - Output PNG filename
7
+ * @param isGray - If true, buffer is grayscale; otherwise, RGBA
8
+ */
9
+ export declare function saveDebugImageImageJs(buffer: Buffer | Uint8Array, width: number, height: number, filename: string, isGray?: boolean): Promise<void>;
@@ -0,0 +1,15 @@
1
+ import { ScanValidatorResponse } from './scan-validators/abstract-scan-validator';
2
+ /**
3
+ * QR Code validator for Node.js environment
4
+ */
5
+ export declare const qrValidator: {
6
+ /**
7
+ * Validate QR code using zbar with SVG as input
8
+ * @param svgSource SVG string containing QR code
9
+ * @param width Width to use for validation
10
+ * @param height Height to use for validation
11
+ * @param debug Enable detailed debugging
12
+ * @returns Validation result
13
+ */
14
+ validateZbar: (svgSource: string | undefined, debug?: boolean) => Promise<ScanValidatorResponse>;
15
+ };
@@ -26,6 +26,10 @@ export interface ScanValidatorResponse {
26
26
  * Error code if validation failed
27
27
  */
28
28
  errorCode?: string;
29
+ /**
30
+ * Validator used for the validation
31
+ */
32
+ validator?: string;
29
33
  }
30
34
  declare class AbstractScanValidator {
31
35
  debug: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qr-platform/qr-code.js",
3
- "version": "0.9.2",
3
+ "version": "0.9.4",
4
4
  "description": "QRCode.js is a professional JavaScript/TypeScript library for creating customized QR codes, offering a blend of simplicity and sophistication. With versatile styling options—dot shapes, colors, gradients, embedded images, borders, and text—it enables you to design unique, visually appealing QR codes that work flawlessly with standard scanners. QRCode.js is part of QR-Platform: All-in-One QR Codes Management Solution.",
5
5
  "type": "module",
6
6
  "main": "./lib/node.js",
@@ -1 +0,0 @@
1
- import{Resvg as e}from"@resvg/resvg-js";import{scanImageData as t}from"@undecaf/zbar-wasm";import{Jimp as r}from"jimp";let a=!1;const s=e=>{a&&console.debug("[QR Validator]",e)},o=new class{constructor(e={}){this.maxRetries=e.maxRetries??5,this.retryInterval=e.retryInterval??100,this.debug=e.debug??!1}log(e){this.debug&&console.log(`[QRValidatorZbarNode] ${e}`)}async validate(e,r=!1){try{if(!t)throw new Error("zbar-wasm library not found. Please ensure @undecaf/zbar-wasm is installed and loaded correctly.");return this.validateWithRetry(e,r)}catch(e){return this.log(`Validation error: ${e instanceof Error?e.message:String(e)}`),{isValid:!1,error:e instanceof Error?e.message:String(e),errorCode:"VALIDATION_ERROR"}}}sleep(e){return new Promise((t=>setTimeout(t,e)))}async processImageResvg(t,r){try{const a=new e(t,{fitTo:{mode:"zoom",value:2}}).render(),s=a.width,o=a.height,i=a.pixels,n=Buffer.from(i);if(r)for(let e=0;e<n.length;e+=4)n[e]=255-n[e],n[e+1]=255-n[e+1],n[e+2]=255-n[e+2];return{imageData:{data:new Uint8ClampedArray(n),width:s,height:o},metadata:{width:s,height:o}}}catch(e){throw this.log(`Image processing error: ${e instanceof Error?e.message:String(e)}`),e}}async validateWithRetry(e,t){let r=0,a=null;const s=e;let o=!1;do{r++;try{const e=this.processImageResvg,{imageData:i}=await e(s,t);if(this.log(`Processed image ${i.width}x${i.height} pixels`),this.debug&&await this.saveDebugImage(i,`debug/qr-attempt-${r}-${o?"inverted":"normal"}`),a=await this.decodeQR(i),this.log(`Barcode scan attempt ${r}: ${a.success?"Success":"Failed"}`),a.success)return a.attempts=r,{isValid:!0,data:a.data,format:a.format,attempts:r,isInverted:t}}catch(e){this.log(`Attempt ${r} failed: ${e instanceof Error?e.message:String(e)}`),a={success:!1,error:e instanceof Error?e.message:String(e),errorCode:"PROCESSING_ERROR"}}!t||o?r<this.maxRetries&&await this.sleep(this.retryInterval):(o=!0,this.log("Switching to inverted image for next attempt"))}while(r<this.maxRetries);return{isValid:!1,attempts:r,error:`No barcode detected after ${r} attempts`,errorCode:"MAX_RETRIES_EXCEEDED"}}async saveDebugImage(e,t){try{const a=new r({data:Buffer.from(e.data),width:e.width,height:e.height}),s=`${t}-${Date.now()}`;await a.write(`${s}.png`),this.log(`Debug image saved to: ${s}`)}catch(e){this.log(`Failed to save debug image: ${e instanceof Error?e.message:String(e)}`)}}async decodeQR(e){try{let r;try{r=await t(e)}catch(e){this.log(`Error decoding QR code: ${e}`)}if(r&&r.length>0){const e=r[0],t=e.decode();return this.log(`Detected: ${e.typeName} - ${t}`),{success:!0,data:t,format:e.typeName||"UNKNOWN",confidence:.9,count:r.length,allSymbols:r.map((e=>({data:e.decode(),type:e.typeName,points:e.points})))}}return{success:!1,error:"No barcode detected",errorCode:"NO_BARCODE_DETECTED"}}catch(e){return this.log("Decoder error:"),console.error(e instanceof Error?e.message:String(e)),{success:!1,error:`Decoder error: ${e instanceof Error?e.message:String(e)}`,errorCode:"DECODER_ERROR"}}}}({maxRetries:1,debug:!1,retryInterval:200}),i={validateZbar:async(e,t=!1)=>{a=t||a,a&&console.time("scan-validator");const r=[{name:"Normal SVG",execute:async()=>{if(!e)throw new Error("No svg source");const t=await o.validate(e,!1);if(!t.isValid||!t.data)throw new Error("No text found in normal QR code");return{isValid:!0,isInverted:!1,decodedText:t.data,message:"Decoded successfully.",attempts:t.attempts}}},{name:"Inverted SVG",execute:async()=>{if(!e)throw new Error("No svg source for inverted attempt");const t=await o.validate(e,!0);if(!t.isValid||!t.data)throw new Error("No text found in inverted QR code");return{isValid:!0,isInverted:!0,decodedText:t.data,message:"Decoded successfully (inverted).",attempts:t.attempts}}}];for(const e of r)try{s(`Trying ${e.name} decode...`);const t=await e.execute();return a&&console.timeEnd("scan-validator"),t}catch(t){s(`${e.name} decode failed:`),s(t)}return a&&console.timeEnd("scan-validator"),{isValid:!1,message:"Failed to decode QR code after all attempts."}}};export{i as qrValidator};
@@ -1 +0,0 @@
1
- import{Resvg as t}from"@resvg/resvg-js";import{CustomError as e}from"ts-custom-error";class r extends e{constructor(t=void 0){super(t),this.message=t}getKind(){return this.constructor.kind}}r.kind="Exception";class n extends r{static getNotFoundInstance(){return new n}}var i;n.kind="NotFoundException",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"}(i||(i={}));var s,o=i;class a extends r{}a.kind="IllegalArgumentException";class h extends r{}h.kind="IndexOutOfBoundsException";class l extends h{constructor(t,e){super(e),this.index=t,this.message=e}}l.kind="ArrayIndexOutOfBoundsException";class c{static arraycopy(t,e,r,n,i){if(t===r&&e<n)for(n+=i-1,e+=i-1;i--;)r[n--]=t[e--];else for(;i--;)r[n++]=t[e++]}static currentTimeMillis(){return Date.now()}}class u{static fill(t,e){for(let r=0,n=t.length;r<n;r++)t[r]=e}static fillWithin(t,e,r,n){u.rangeCheck(t.length,e,r);for(let i=e;i<r;i++)t[i]=n}static rangeCheck(t,e,r){if(e>r)throw new a("fromIndex("+e+") > toIndex("+r+")");if(e<0)throw new l(e);if(r>t)throw new l(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<n;r++)if(t[r]!==e[r])return!1;return!0}static hashCode(t){if(null===t)return 0;let e=1;for(const r of t)e=31*e+r;return e}static fillUint8Array(t,e){for(let r=0;r!==t.length;r++)t[r]=e}static copyOf(t,e){return t.slice(0,e)}static copyOfUint8Array(t,e){if(t.length<=e){const r=new Uint8Array(e);return r.set(t),r}return t.slice(0,e)}static copyOfRange(t,e,r){const n=r-e,i=new Int32Array(n);return c.arraycopy(t,e,i,0,n),i}static binarySearch(t,e,r){void 0===r&&(r=u.numberComparator);let n=0,i=t.length-1;for(;n<=i;){const s=i+n>>1,o=r(e,t[s]);if(o>0)n=s+1;else{if(!(o<0))return s;i=s-1}}return-n-1}static numberComparator(t,e){return t-e}}!function(t){t[t.OTHER=0]="OTHER",t[t.PURE_BARCODE=1]="PURE_BARCODE",t[t.POSSIBLE_FORMATS=2]="POSSIBLE_FORMATS",t[t.TRY_HARDER=3]="TRY_HARDER",t[t.CHARACTER_SET=4]="CHARACTER_SET",t[t.ALLOWED_LENGTHS=5]="ALLOWED_LENGTHS",t[t.ASSUME_CODE_39_CHECK_DIGIT=6]="ASSUME_CODE_39_CHECK_DIGIT",t[t.ENABLE_CODE_39_EXTENDED_MODE=7]="ENABLE_CODE_39_EXTENDED_MODE",t[t.ASSUME_GS1=8]="ASSUME_GS1",t[t.RETURN_CODABAR_START_END=9]="RETURN_CODABAR_START_END",t[t.NEED_RESULT_POINT_CALLBACK=10]="NEED_RESULT_POINT_CALLBACK",t[t.ALLOWED_EAN_EXTENSIONS=11]="ALLOWED_EAN_EXTENSIONS"}(s||(s={}));var w,f,d=s;class g extends r{static getFormatInstance(){return new g}}g.kind="FormatException",function(t){t[t.Cp437=0]="Cp437",t[t.ISO8859_1=1]="ISO8859_1",t[t.ISO8859_2=2]="ISO8859_2",t[t.ISO8859_3=3]="ISO8859_3",t[t.ISO8859_4=4]="ISO8859_4",t[t.ISO8859_5=5]="ISO8859_5",t[t.ISO8859_6=6]="ISO8859_6",t[t.ISO8859_7=7]="ISO8859_7",t[t.ISO8859_8=8]="ISO8859_8",t[t.ISO8859_9=9]="ISO8859_9",t[t.ISO8859_10=10]="ISO8859_10",t[t.ISO8859_11=11]="ISO8859_11",t[t.ISO8859_13=12]="ISO8859_13",t[t.ISO8859_14=13]="ISO8859_14",t[t.ISO8859_15=14]="ISO8859_15",t[t.ISO8859_16=15]="ISO8859_16",t[t.SJIS=16]="SJIS",t[t.Cp1250=17]="Cp1250",t[t.Cp1251=18]="Cp1251",t[t.Cp1252=19]="Cp1252",t[t.Cp1256=20]="Cp1256",t[t.UnicodeBigUnmarked=21]="UnicodeBigUnmarked",t[t.UTF8=22]="UTF8",t[t.ASCII=23]="ASCII",t[t.Big5=24]="Big5",t[t.GB18030=25]="GB18030",t[t.EUC_KR=26]="EUC_KR"}(w||(w={}));class I{constructor(t,e,r,...n){this.valueIdentifier=t,this.name=r,this.values="number"==typeof e?Int32Array.from([e]):e,this.otherEncodingNames=n,I.VALUE_IDENTIFIER_TO_ECI.set(t,this),I.NAME_TO_ECI.set(r,this);const i=this.values;for(let t=0,e=i.length;t!==e;t++){const e=i[t];I.VALUES_TO_ECI.set(e,this)}for(const t of n)I.NAME_TO_ECI.set(t,this)}getValueIdentifier(){return this.valueIdentifier}getName(){return this.name}getValue(){return this.values[0]}static getCharacterSetECIByValue(t){if(t<0||t>=900)throw new g("incorect value");const e=I.VALUES_TO_ECI.get(t);if(void 0===e)throw new g("incorect value");return e}static getCharacterSetECIByName(t){const e=I.NAME_TO_ECI.get(t);if(void 0===e)throw new g("incorect value");return e}equals(t){if(!(t instanceof I))return!1;const e=t;return this.getName()===e.getName()}}I.VALUE_IDENTIFIER_TO_ECI=new Map,I.VALUES_TO_ECI=new Map,I.NAME_TO_ECI=new Map,I.Cp437=new I(w.Cp437,Int32Array.from([0,2]),"Cp437"),I.ISO8859_1=new I(w.ISO8859_1,Int32Array.from([1,3]),"ISO-8859-1","ISO88591","ISO8859_1"),I.ISO8859_2=new I(w.ISO8859_2,4,"ISO-8859-2","ISO88592","ISO8859_2"),I.ISO8859_3=new I(w.ISO8859_3,5,"ISO-8859-3","ISO88593","ISO8859_3"),I.ISO8859_4=new I(w.ISO8859_4,6,"ISO-8859-4","ISO88594","ISO8859_4"),I.ISO8859_5=new I(w.ISO8859_5,7,"ISO-8859-5","ISO88595","ISO8859_5"),I.ISO8859_6=new I(w.ISO8859_6,8,"ISO-8859-6","ISO88596","ISO8859_6"),I.ISO8859_7=new I(w.ISO8859_7,9,"ISO-8859-7","ISO88597","ISO8859_7"),I.ISO8859_8=new I(w.ISO8859_8,10,"ISO-8859-8","ISO88598","ISO8859_8"),I.ISO8859_9=new I(w.ISO8859_9,11,"ISO-8859-9","ISO88599","ISO8859_9"),I.ISO8859_10=new I(w.ISO8859_10,12,"ISO-8859-10","ISO885910","ISO8859_10"),I.ISO8859_11=new I(w.ISO8859_11,13,"ISO-8859-11","ISO885911","ISO8859_11"),I.ISO8859_13=new I(w.ISO8859_13,15,"ISO-8859-13","ISO885913","ISO8859_13"),I.ISO8859_14=new I(w.ISO8859_14,16,"ISO-8859-14","ISO885914","ISO8859_14"),I.ISO8859_15=new I(w.ISO8859_15,17,"ISO-8859-15","ISO885915","ISO8859_15"),I.ISO8859_16=new I(w.ISO8859_16,18,"ISO-8859-16","ISO885916","ISO8859_16"),I.SJIS=new I(w.SJIS,20,"SJIS","Shift_JIS"),I.Cp1250=new I(w.Cp1250,21,"Cp1250","windows-1250"),I.Cp1251=new I(w.Cp1251,22,"Cp1251","windows-1251"),I.Cp1252=new I(w.Cp1252,23,"Cp1252","windows-1252"),I.Cp1256=new I(w.Cp1256,24,"Cp1256","windows-1256"),I.UnicodeBigUnmarked=new I(w.UnicodeBigUnmarked,25,"UnicodeBigUnmarked","UTF-16BE","UnicodeBig"),I.UTF8=new I(w.UTF8,26,"UTF8","UTF-8"),I.ASCII=new I(w.ASCII,Int32Array.from([27,170]),"ASCII","US-ASCII"),I.Big5=new I(w.Big5,28,"Big5"),I.GB18030=new I(w.GB18030,29,"GB18030","GB2312","EUC_CN","GBK"),I.EUC_KR=new I(w.EUC_KR,30,"EUC_KR","EUC-KR");class S extends r{}S.kind="UnsupportedOperationException";class m{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!m.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 I?t:I.getCharacterSetECIByName(t)}static decodeFallback(t,e){const r=this.encodingCharacterSet(e);if(m.isDecodeFallbackSupported(r)){let e="";for(let r=0,n=t.length;r<n;r++){let n=t[r].toString(16);n.length<2&&(n="0"+n),e+="%"+n}return decodeURIComponent(e)}if(r.equals(I.UnicodeBigUnmarked))return String.fromCharCode.apply(null,new Uint16Array(t.buffer));throw new S(`Encoding ${this.encodingName(e)} not supported by fallback.`)}static isDecodeFallbackSupported(t){return t.equals(I.UTF8)||t.equals(I.ISO8859_1)||t.equals(I.ASCII)}static encodeFallback(t){const e=btoa(unescape(encodeURIComponent(t))).split(""),r=[];for(let t=0;t<e.length;t++)r.push(e[t].charCodeAt(0));return new Uint8Array(r)}}class A{static castAsNonUtf8Char(t,e=null){const r=e?e.getName():this.ISO88591;return m.decode(new Uint8Array([t]),r)}static guessEncoding(t,e){if(null!=e&&void 0!==e.get(d.CHARACTER_SET))return e.get(d.CHARACTER_SET).toString();const r=t.length;let n=!0,i=!0,s=!0,o=0,a=0,h=0,l=0,c=0,u=0,w=0,f=0,g=0,I=0,S=0;const m=t.length>3&&239===t[0]&&187===t[1]&&191===t[2];for(let e=0;e<r&&(n||i||s);e++){const r=255&t[e];s&&(o>0?128&r?o--:s=!1:128&r&&(64&r?(o++,32&r?(o++,16&r?(o++,8&r?s=!1:l++):h++):a++):s=!1)),n&&(r>127&&r<160?n=!1:r>159&&(r<192||215===r||247===r)&&S++),i&&(c>0?r<64||127===r||r>252?i=!1:c--:128===r||160===r||r>239?i=!1:r>160&&r<224?(u++,f=0,w++,w>g&&(g=w)):r>127?(c++,w=0,f++,f>I&&(I=f)):(w=0,f=0))}return s&&o>0&&(s=!1),i&&c>0&&(i=!1),s&&(m||a+h+l>0)?A.UTF8:i&&(A.ASSUME_SHIFT_JIS||g>=3||I>=3)?A.SHIFT_JIS:n&&i?2===g&&2===u||10*S>=r?A.SHIFT_JIS:A.ISO88591:n?A.ISO88591:i?A.SHIFT_JIS:s?A.UTF8:A.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,s,o,a){if("%%"===t)return"%";if(void 0===e[++r])return;t=s?parseInt(s.substr(1)):void 0;let h,l=o?parseInt(o.substr(1)):void 0;switch(a){case"s":h=e[r];break;case"c":h=e[r][0];break;case"f":h=parseFloat(e[r]).toFixed(t);break;case"p":h=parseFloat(e[r]).toPrecision(t);break;case"e":h=parseFloat(e[r]).toExponential(t);break;case"x":h=parseInt(e[r]).toString(l||16);break;case"d":h=parseFloat(parseInt(e[r],l||10).toPrecision(t)).toFixed(0)}h="object"==typeof h?JSON.stringify(h):(+h).toString(l);let c=parseInt(i),u=i&&i[0]+""=="0"?"0":" ";for(;h.length<c;)h=void 0!==n?h+u:u+h;return h}))}static getBytes(t,e){return m.encode(t,e)}static getCharCode(t,e=0){return t.charCodeAt(e)}static getCharAt(t){return String.fromCharCode(t)}}A.SHIFT_JIS=I.SJIS.getName(),A.GB2312="GB2312",A.ISO88591=I.ISO8859_1.getName(),A.EUC_JP="EUC_JP",A.UTF8=I.UTF8.getName(),A.PLATFORM_DEFAULT_ENCODING=A.UTF8,A.ASSUME_SHIFT_JIS=!1;class C{constructor(t=""){this.value=t}enableDecoding(t){return this.encoding=t,this}append(t){return"string"==typeof t?this.value+=t.toString():this.encoding?this.value+=A.castAsNonUtf8Char(t,this.encoding):this.value+=String.fromCharCode(t),this}appendChars(t,e,r){for(let n=e;e<e+r;n++)this.append(t[n]);return this}length(){return this.value.length}charAt(t){return this.value.charAt(t)}deleteCharAt(t){this.value=this.value.substr(0,t)+this.value.substring(t+1)}setCharAt(t,e){this.value=this.value.substr(0,t)+e+this.value.substr(t+1)}substring(t,e){return this.value.substring(t,e)}setLengthToZero(){this.value=""}toString(){return this.value}insert(t,e){this.value=this.value.substring(0,t)+e+this.value.substring(t)}}class E{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,t+=t>>>8,63&(t+=t>>>16)}static truncDivision(t,e){return Math.trunc(t/e)}static parseInt(t,e=void 0){return parseInt(t,e)}}E.MIN_VALUE_32_BITS=-2147483648,E.MAX_VALUE=Number.MAX_SAFE_INTEGER;class _{constructor(t,e){void 0===t?(this.size=0,this.bits=new Int32Array(1)):(this.size=t,this.bits=e??_.makeArray(t))}getSize(){return this.size}getSizeInBytes(){return Math.floor((this.size+7)/8)}ensureCapacity(t){if(t>32*this.bits.length){const e=_.makeArray(t);c.arraycopy(this.bits,0,e,0,this.bits.length),this.bits=e}}get(t){return!!(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 s=r.length;for(;0===i;){if(++n===s)return e;i=r[n]}const o=32*n+E.numberOfTrailingZeros(i);return o>e?e:o}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 s=r.length;for(;0===i;){if(++n===s)return e;i=~r[n]}const o=32*n+E.numberOfTrailingZeros(i);return o>e?e:o}setBulk(t,e){this.bits[Math.floor(t/32)]=e}setRange(t,e){if(e<t||t<0||e>this.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 s=r;s<=n;s++){const o=(2<<(s<n?31:31&e))-(1<<(s>r?0:31&t));i[s]|=o}}clear(){const t=this.bits.length,e=this.bits;for(let r=0;r<t;r++)e[r]=0}isRange(t,e,r){if(e<t||t<0||e>this.size)throw new a;if(e===t)return!0;e--;const n=Math.floor(t/32),i=Math.floor(e/32),s=this.bits;for(let o=n;o<=i;o++){const a=(2<<(o<i?31:31&e))-(1<<(o>n?0:31&t))&4294967295;if((s[o]&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<e;r++)this.appendBit(t.get(r))}xor(t){if(this.size!==t.size)throw new a("Sizes don't match");const e=this.bits;for(let r=0,n=e.length;r<n;r++)e[r]^=t.bits[r]}toBytes(t,e,r,n){for(let i=0;i<n;i++){let n=0;for(let e=0;e<8;e++)this.get(t)&&(n|=1<<7-e),t++;e[r+i]=n}}getBitArray(){return this.bits}reverse(){const t=new Int32Array(this.bits.length),e=Math.floor((this.size-1)/32),r=e+1,n=this.bits;for(let i=0;i<r;i++){let r=n[i];r=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<r;i++){const r=t[i];n|=r<<32-e,t[i-1]=n,n=r>>>e}t[r-1]=n}this.bits=t}static makeArray(t){return new Int32Array(Math.floor((t+31)/32))}equals(t){if(!(t instanceof _))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<r;e++)7&e||(t+=" "),t+=this.get(e)?"X":".";return t}clone(){return new _(this.size,this.bits.slice())}toArray(){let t=[];for(let e=0,r=this.size;e<r;e++)t.push(this.get(e));return t}}class p{constructor(t,e,r,n){if(this.width=t,this.height=e,this.rowSize=r,this.bits=n,null==e&&(e=t),this.height=e,t<1||e<1)throw new a("Both dimensions must be greater than 0");null==r&&(r=(t+31)/32|0),this.rowSize=r,null==n&&(this.bits=new Int32Array(this.rowSize*this.height))}static parseFromBooleanArray(t){const e=t.length,r=t[0].length,n=new p(r,e);for(let i=0;i<e;i++){const e=t[i];for(let t=0;t<r;t++)e[t]&&n.set(t,i)}return n}static parseFromString(t,e,r){if(null===t)throw new a("stringRepresentation cannot be null");const n=new Array(t.length);let i=0,s=0,o=-1,h=0,l=0;for(;l<t.length;){const c=t.charAt(l);if("\n"===c||"\r"===c){if(i>s){if(-1===o)o=i-s;else if(i-s!==o)throw new a("row lengths do not match");s=i,h++}l++}else if(t.substring(l,l+e.length)===e)l+=e.length,n[i++]=!0;else{if(t.substring(l,l+r.length)!==r)throw new a("illegal character encountered: "+t.substring(l));l+=r.length,n[i++]=!1}}if(i>s){if(-1===o)o=i-s;else if(i-s!==o)throw new a("row lengths do not match");h++}const c=new p(o,h);for(let t=0;t<i;t++)n[t]&&c.set(t%o,Math.floor(t/o));return c}get(t,e){const r=e*this.rowSize+(t>>5);return!!(this.bits[r]>>>(31&t)&1)}set(t,e){const r=e*this.rowSize+(t>>5);this.bits[r]|=1<<(31&t)}unset(t,e){const r=e*this.rowSize+(t>>5);this.bits[r]&=~(1<<(31&t))}flip(t,e){const r=e*this.rowSize+(t>>5);this.bits[r]^=1<<(31&t)}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 _(1+(this.width>>5)),r=this.rowSize,n=this.bits;for(let i=0,s=this.height;i<s;i++){const s=i*r,o=t.getRow(i,e).getBitArray();for(let t=0;t<r;t++)n[s+t]^=o[t]}}clear(){const t=this.bits,e=t.length;for(let r=0;r<e;r++)t[r]=0}setRegion(t,e,r,n){if(e<0||t<0)throw new a("Left and top must be nonnegative");if(n<1||r<1)throw new a("Height and width must be at least 1");const i=t+r,s=e+n;if(s>this.height||i>this.width)throw new a("The region must fit inside the matrix");const o=this.rowSize,h=this.bits;for(let r=e;r<s;r++){const e=r*o;for(let r=t;r<i;r++)h[e+(r>>5)]|=1<<(31&r)}}getRow(t,e){null==e||e.getSize()<this.width?e=new _(this.width):e.clear();const r=this.rowSize,n=this.bits,i=t*r;for(let t=0;t<r;t++)e.setBulk(32*t,n[i+t]);return e}setRow(t,e){c.arraycopy(e.getBitArray(),0,this.bits,t*this.rowSize,this.rowSize)}rotate180(){const t=this.getWidth(),e=this.getHeight();let r=new _(t),n=new _(t);for(let t=0,i=Math.floor((e+1)/2);t<i;t++)r=this.getRow(t,r),n=this.getRow(e-1-t,n),r.reverse(),n.reverse(),this.setRow(t,n),this.setRow(e-1-t,r)}getEnclosingRectangle(){const t=this.width,e=this.height,r=this.rowSize,n=this.bits;let i=t,s=e,o=-1,a=-1;for(let t=0;t<e;t++)for(let e=0;e<r;e++){const h=n[t*r+e];if(0!==h){if(t<s&&(s=t),t>a&&(a=t),32*e<i){let t=0;for(;h<<31-t>>>0==0;)t++;32*e+t<i&&(i=32*e+t)}if(32*e+31>o){let t=31;for(;h>>>t==0;)t--;32*e+t>o&&(o=32*e+t)}}}return o<i||a<s?null:Int32Array.from([i,s,o-i+1,a-s+1])}getTopLeftOnBit(){const t=this.rowSize,e=this.bits;let r=0;for(;r<e.length&&0===e[r];)r++;if(r===e.length)return null;const n=Math.floor(r/t);let i=r%t<<5;const s=e[r];let o=0;for(;s<<31-o>>>0==0;)o++;return i+=o,Int32Array.from([i,n])}getBottomRightOnBit(){const t=this.rowSize,e=this.bits;let r=e.length-1;for(;r>=0&&0===e[r];)r--;if(r<0)return null;const n=Math.floor(r/t);let i=r%t<<5;const s=e[r];let o=31;for(;s>>>o==0;)o--;return i+=o,Int32Array.from([i,n])}getWidth(){return this.width}getHeight(){return this.height}getRowSize(){return this.rowSize}equals(t){if(!(t instanceof p))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.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){const n=new C,i=this.height,s=this.width;if(void 0===i||void 0===s)throw new Error("Matrix dimensions are undefined");for(let o=0;o<i;o++){for(let r=0;r<s;r++)n.append(this.get(r,o)?t:e);n.append(r)}return n.toString()}clone(){return new p(this.width,this.height,this.rowSize,this.bits.slice())}}class M{constructor(t=null,e,r=(null==e?0:8*e.length),n,i,s=c.currentTimeMillis()){this.text=t,this.rawBytes=e,this.numBits=r,this.resultPoints=n,this.format=i,this.timestamp=s,this.text=t,this.rawBytes=e,this.numBits=r??(null==e?0:8*e.length),this.resultPoints=n,this.format=i,this.resultMetadata=new Map,this.timestamp=s??c.currentTimeMillis()}getText(){return this.text?this.text:null}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);c.arraycopy(e,0,r,0,e.length),c.arraycopy(t,0,r,e.length,t.length),this.resultPoints=r}}getTimestamp(){return this.timestamp}toString(){return null===this.text?this.resultPoints.toString():this.text}}!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"}(f||(f={}));var O,N,T,b=f;class y extends r{static getChecksumInstance(){return new y}}y.kind="ChecksumException";class R extends r{}R.kind="ArithmeticException";class B{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 D{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(;t<r&&0===e[t];)t++;t===r?this.coefficients=Int32Array.from([0]):(this.coefficients=new Int32Array(r-t),c.arraycopy(e,t,this.coefficients,0,this.coefficients.length))}else this.coefficients=e}getCoefficients(){return this.coefficients}getDegree(){return this.coefficients.length-1}isZero(){return 0===this.coefficients[0]}getCoefficient(t){return this.coefficients[this.coefficients.length-1-t]}evaluateAt(t){if(0===t)return this.getCoefficient(0);const e=this.coefficients;let r;if(1===t){r=0;for(let t=0,n=e.length;t!==n;t++){const n=e[t];r=B.addOrSubtract(r,n)}return r}r=e[0];const n=e.length,i=this.field;for(let s=1;s<n;s++)r=B.addOrSubtract(i.multiply(t,r),e[s]);return r}addOrSubtract(t){if(!this.field.equals(t.field))throw new a("GenericGFPolys do not have same GenericGF field");if(this.isZero())return t;if(t.isZero())return this;let e=this.coefficients,r=t.coefficients;if(e.length>r.length){const t=e;e=r,r=t}let n=new Int32Array(r.length);const i=r.length-e.length;c.arraycopy(r,0,n,0,i);for(let t=i;t<r.length;t++)n[t]=B.addOrSubtract(e[t-i],r[t]);return new D(this.field,n)}multiply(t){if(!this.field.equals(t.field))throw new a("GenericGFPolys do not have same GenericGF field");if(this.isZero()||t.isZero())return this.field.getZero();const e=this.coefficients,r=e.length,n=t.coefficients,i=n.length,s=new Int32Array(r+i-1),o=this.field;for(let t=0;t<r;t++){const r=e[t];for(let e=0;e<i;e++)s[t+e]=B.addOrSubtract(s[t+e],o.multiply(r,n[e]))}return new D(o,s)}multiplyScalar(t){if(0===t)return this.field.getZero();if(1===t)return this;const e=this.coefficients.length,r=this.field,n=new Int32Array(e),i=this.coefficients;for(let s=0;s<e;s++)n[s]=r.multiply(i[s],t);return new D(r,n)}multiplyByMonomial(t,e){if(t<0)throw new a;if(0===e)return this.field.getZero();const r=this.coefficients,n=r.length,i=new Int32Array(n+t),s=this.field;for(let t=0;t<n;t++)i[t]=s.multiply(r[t],e);return new D(s,i)}divide(t){if(!this.field.equals(t.field))throw new a("GenericGFPolys do not have same GenericGF field");if(t.isZero())throw new a("Divide by 0");const e=this.field;let r=e.getZero(),n=this;const i=t.getCoefficient(t.getDegree()),s=e.inverse(i);for(;n.getDegree()>=t.getDegree()&&!n.isZero();){const i=n.getDegree()-t.getDegree(),o=e.multiply(n.getCoefficient(n.getDegree()),s),a=t.multiplyByMonomial(i,o),h=e.buildMonomial(i,o);r=r.addOrSubtract(h),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 P extends B{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;r++)n[r]=i,i*=2,i>=e&&(i^=t,i&=e-1);this.expTable=n;const s=new Int32Array(e);for(let t=0;t<e-1;t++)s[n[t]]=t;this.logTable=s,this.zero=new D(this,Int32Array.from([0])),this.one=new D(this,Int32Array.from([1]))}getZero(){return this.zero}getOne(){return this.one}buildMonomial(t,e){if(t<0)throw new a;if(0===e)return this.zero;const r=new Int32Array(t+1);return r[0]=e,new D(this,r)}inverse(t){if(0===t)throw new R;return this.expTable[this.size-this.logTable[t]-1]}multiply(t,e){return 0===t||0===e?0:this.expTable[(this.logTable[t]+this.logTable[e])%(this.size-1)]}getSize(){return this.size}getGeneratorBase(){return this.generatorBase}toString(){return"GF(0x"+E.toHexString(this.primitive)+","+this.size+")"}equals(t){return t===this}}P.AZTEC_DATA_12=new P(4201,4096,1),P.AZTEC_DATA_10=new P(1033,1024,1),P.AZTEC_DATA_6=new P(67,64,1),P.AZTEC_PARAM=new P(19,16,1),P.QR_CODE_FIELD_256=new P(285,256,0),P.DATA_MATRIX_FIELD_256=new P(301,256,1),P.AZTEC_DATA_8=P.DATA_MATRIX_FIELD_256,P.MAXICODE_FIELD_64=P.AZTEC_DATA_6;class k extends r{}k.kind="IllegalStateException";class U extends r{}U.kind="ReedSolomonException";class F{constructor(t){this.field=t}decode(t,e){const r=this.field,n=new D(r,t),i=new Int32Array(e);let s=!0;for(let t=0;t<e;t++){const e=n.evaluateAt(r.exp(t+r.getGeneratorBase()));i[i.length-1-t]=e,0!==e&&(s=!1)}if(s)return;const o=new D(r,i),a=this.runEuclideanAlgorithm(r.buildMonomial(e,1),o,e),h=a[0],l=a[1],c=this.findErrorLocations(h),u=this.findErrorMagnitudes(l,c);for(let e=0;e<c.length;e++){const n=t.length-1-r.log(c[e]);if(n<0)throw new U("Bad error location");t[n]=P.addOrSubtract(t[n],u[e])}}runEuclideanAlgorithm(t,e,r){if(t.getDegree()<e.getDegree()){const r=t;t=e,e=r}const n=this.field;let i=t,s=e,o=n.getZero(),a=n.getOne();for(;s.getDegree()>=(r/2|0);){let t=i,e=o;if(i=s,o=a,i.isZero())throw new U("r_{i-1} was zero");s=t;let r=n.getZero();const h=i.getCoefficient(i.getDegree()),l=n.inverse(h);for(;s.getDegree()>=i.getDegree()&&!s.isZero();){const t=s.getDegree()-i.getDegree(),e=n.multiply(s.getCoefficient(s.getDegree()),l);r=r.addOrSubtract(n.buildMonomial(t,e)),s=s.addOrSubtract(i.multiplyByMonomial(t,e))}if(a=r.multiply(o).addOrSubtract(e),s.getDegree()>=i.getDegree())throw new k("Division algorithm failed to reduce polynomial?")}const h=a.getCoefficient(0);if(0===h)throw new U("sigmaTilde(0) was zero");const l=n.inverse(h);return[a.multiplyScalar(l),s.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 s=1;s<i.getSize()&&n<e;s++)0===t.evaluateAt(s)&&(r[n]=i.inverse(s),n++);if(n!==e)throw new U("Error locator degree does not match number of roots");return r}findErrorMagnitudes(t,e){const r=e.length,n=new Int32Array(r),i=this.field;for(let s=0;s<r;s++){const o=i.inverse(e[s]);let a=1;for(let t=0;t<r;t++)if(s!==t){const r=i.multiply(e[t],o),n=1&r?-2&r:1|r;a=i.multiply(a,n)}n[s]=i.multiply(t.evaluateAt(o),i.inverse(a)),0!==i.getGeneratorBase()&&(n[s]=i.multiply(n[s],o))}return n}}!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"}(O||(O={}));class v{constructor(t,e){this.value=t,this.isMasked=e}unmaskBitMatrix(t,e){for(let r=0;r<e;r++)for(let n=0;n<e;n++)this.isMasked(r,n)&&t.flip(n,r)}}v.values=new Map([[O.DATA_MASK_000,new v(O.DATA_MASK_000,((t,e)=>!(t+e&1)))],[O.DATA_MASK_001,new v(O.DATA_MASK_001,((t,e)=>!(1&t)))],[O.DATA_MASK_010,new v(O.DATA_MASK_010,((t,e)=>e%3==0))],[O.DATA_MASK_011,new v(O.DATA_MASK_011,((t,e)=>(t+e)%3==0))],[O.DATA_MASK_100,new v(O.DATA_MASK_100,((t,e)=>!(Math.floor(t/2)+Math.floor(e/3)&1)))],[O.DATA_MASK_101,new v(O.DATA_MASK_101,((t,e)=>t*e%6==0))],[O.DATA_MASK_110,new v(O.DATA_MASK_110,((t,e)=>t*e%6<3))],[O.DATA_MASK_111,new v(O.DATA_MASK_111,((t,e)=>!(t+e+t*e%3&1)))]]);class x extends r{}x.kind="ArgumentException",function(t){t[t.L=0]="L",t[t.M=1]="M",t[t.Q=2]="Q",t[t.H=3]="H"}(N||(N={}));class L{constructor(t,e,r){this.value=t,this.stringValue=e,this.bits=r,L.FOR_BITS.set(r,this),L.FOR_VALUE.set(t,this)}getValue(){return this.value}getBits(){return this.bits}static fromString(t){switch(t){case"L":return L.L;case"M":return L.M;case"Q":return L.Q;case"H":return L.H;default:throw new x(t+"not available")}}toString(){return this.stringValue}equals(t){if(!(t instanceof L))return!1;const e=t;return this.value===e.value}static forBits(t){if(t<0||t>=L.FOR_BITS.size)throw new a;return L.FOR_BITS.get(t)}}L.FOR_BITS=new Map,L.FOR_VALUE=new Map,L.L=new L(N.L,"L",1),L.M=new L(N.M,"M",0),L.Q=new L(N.Q,"Q",3),L.H=new L(N.H,"H",2);class z{constructor(t){this.errorCorrectionLevel=L.forBits(t>>3&3),this.dataMask=7&t}static numBitsDiffering(t,e){return E.bitCount(t^e)}static decodeFormatInformation(t,e){const r=z.doDecodeFormatInformation(t,e);return null!==r?r:z.doDecodeFormatInformation(t^z.FORMAT_INFO_MASK_QR,e^z.FORMAT_INFO_MASK_QR)}static doDecodeFormatInformation(t,e){let r=Number.MAX_SAFE_INTEGER,n=0;for(const i of z.FORMAT_INFO_DECODE_LOOKUP){const s=i[0];if(s===t||s===e)return new z(i[1]);let o=z.numBitsDiffering(t,s);o<r&&(n=i[1],r=o),t!==e&&(o=z.numBitsDiffering(e,s),o<r&&(n=i[1],r=o))}return r<=3?new z(n):null}getErrorCorrectionLevel(){return this.errorCorrectionLevel}getDataMask(){return this.dataMask}hashCode(){return this.errorCorrectionLevel.getBits()<<3|this.dataMask}equals(t){if(!(t instanceof z))return!1;const e=t;return this.errorCorrectionLevel===e.errorCorrectionLevel&&this.dataMask===e.dataMask}}z.FORMAT_INFO_MASK_QR=21522,z.FORMAT_INFO_DECODE_LOOKUP=[Int32Array.from([21522,0]),Int32Array.from([20773,1]),Int32Array.from([24188,2]),Int32Array.from([23371,3]),Int32Array.from([17913,4]),Int32Array.from([16590,5]),Int32Array.from([20375,6]),Int32Array.from([19104,7]),Int32Array.from([30660,8]),Int32Array.from([29427,9]),Int32Array.from([32170,10]),Int32Array.from([30877,11]),Int32Array.from([26159,12]),Int32Array.from([25368,13]),Int32Array.from([27713,14]),Int32Array.from([26998,15]),Int32Array.from([5769,16]),Int32Array.from([5054,17]),Int32Array.from([7399,18]),Int32Array.from([6608,19]),Int32Array.from([1890,20]),Int32Array.from([597,21]),Int32Array.from([3340,22]),Int32Array.from([2107,23]),Int32Array.from([13663,24]),Int32Array.from([12392,25]),Int32Array.from([16177,26]),Int32Array.from([14854,27]),Int32Array.from([9396,28]),Int32Array.from([8579,29]),Int32Array.from([11994,30]),Int32Array.from([11245,31])];class H{constructor(t,e){this.count=t,this.dataCodewords=e}getCount(){return this.count}getDataCodewords(){return this.dataCodewords}}class K{constructor(t,...e){this.ecCodewordsPerBlock=t,this.ecBlocks=e}getECCodewordsPerBlock(){return this.ecCodewordsPerBlock}getNumBlocks(){let t=0;const e=this.ecBlocks;for(const r of e)t+=r.getCount();return t}getTotalECCodewords(){return this.ecCodewordsPerBlock*this.getNumBlocks()}getECBlocks(){return this.ecBlocks}}class V{constructor(t,e,...r){this.versionNumber=t,this.alignmentPatternCenters=e,this.ecBlocks=r;let n=0;const i=r[0].getECCodewordsPerBlock(),s=r[0].getECBlocks();for(const t of s)n+=t.getCount()*(t.getDataCodewords()+i);this.totalCodewords=n}getVersionNumber(){return this.versionNumber}getAlignmentPatternCenters(){return this.alignmentPatternCenters}getTotalCodewords(){return this.totalCodewords}getDimensionForVersion(){return 17+4*this.versionNumber}getECBlocksForLevel(t){return this.ecBlocks[t.getValue()]}static getProvisionalVersionForDimension(t){if(t%4!=1)throw new g;try{return this.getVersionForNumber((t-17)/4)}catch(t){throw new g}}static getVersionForNumber(t){if(t<1||t>40)throw new a;return V.VERSIONS[t-1]}static decodeVersionInformation(t){let e=Number.MAX_SAFE_INTEGER,r=0;for(let n=0;n<V.VERSION_DECODE_INFO.length;n++){const i=V.VERSION_DECODE_INFO[n];if(i===t)return V.getVersionForNumber(n+7);const s=z.numBitsDiffering(t,i);s<e&&(r=n+7,e=s)}return e<=3?V.getVersionForNumber(r):null}buildFunctionPattern(){const t=this.getDimensionForVersion(),e=new p(t);e.setRegion(0,0,9,9),e.setRegion(t-8,0,8,9),e.setRegion(0,t-8,9,8);const r=this.alignmentPatternCenters.length;for(let t=0;t<r;t++){const n=this.alignmentPatternCenters[t]-2;for(let i=0;i<r;i++)0===t&&(0===i||i===r-1)||t===r-1&&0===i||e.setRegion(this.alignmentPatternCenters[i]-2,n,5,5)}return e.setRegion(6,9,1,t-17),e.setRegion(9,6,t-17,1),this.versionNumber>6&&(e.setRegion(t-11,0,3,6),e.setRegion(0,t-11,6,3)),e}toString(){return""+this.versionNumber}}V.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]),V.VERSIONS=[new V(1,new Int32Array(0),new K(7,new H(1,19)),new K(10,new H(1,16)),new K(13,new H(1,13)),new K(17,new H(1,9))),new V(2,Int32Array.from([6,18]),new K(10,new H(1,34)),new K(16,new H(1,28)),new K(22,new H(1,22)),new K(28,new H(1,16))),new V(3,Int32Array.from([6,22]),new K(15,new H(1,55)),new K(26,new H(1,44)),new K(18,new H(2,17)),new K(22,new H(2,13))),new V(4,Int32Array.from([6,26]),new K(20,new H(1,80)),new K(18,new H(2,32)),new K(26,new H(2,24)),new K(16,new H(4,9))),new V(5,Int32Array.from([6,30]),new K(26,new H(1,108)),new K(24,new H(2,43)),new K(18,new H(2,15),new H(2,16)),new K(22,new H(2,11),new H(2,12))),new V(6,Int32Array.from([6,34]),new K(18,new H(2,68)),new K(16,new H(4,27)),new K(24,new H(4,19)),new K(28,new H(4,15))),new V(7,Int32Array.from([6,22,38]),new K(20,new H(2,78)),new K(18,new H(4,31)),new K(18,new H(2,14),new H(4,15)),new K(26,new H(4,13),new H(1,14))),new V(8,Int32Array.from([6,24,42]),new K(24,new H(2,97)),new K(22,new H(2,38),new H(2,39)),new K(22,new H(4,18),new H(2,19)),new K(26,new H(4,14),new H(2,15))),new V(9,Int32Array.from([6,26,46]),new K(30,new H(2,116)),new K(22,new H(3,36),new H(2,37)),new K(20,new H(4,16),new H(4,17)),new K(24,new H(4,12),new H(4,13))),new V(10,Int32Array.from([6,28,50]),new K(18,new H(2,68),new H(2,69)),new K(26,new H(4,43),new H(1,44)),new K(24,new H(6,19),new H(2,20)),new K(28,new H(6,15),new H(2,16))),new V(11,Int32Array.from([6,30,54]),new K(20,new H(4,81)),new K(30,new H(1,50),new H(4,51)),new K(28,new H(4,22),new H(4,23)),new K(24,new H(3,12),new H(8,13))),new V(12,Int32Array.from([6,32,58]),new K(24,new H(2,92),new H(2,93)),new K(22,new H(6,36),new H(2,37)),new K(26,new H(4,20),new H(6,21)),new K(28,new H(7,14),new H(4,15))),new V(13,Int32Array.from([6,34,62]),new K(26,new H(4,107)),new K(22,new H(8,37),new H(1,38)),new K(24,new H(8,20),new H(4,21)),new K(22,new H(12,11),new H(4,12))),new V(14,Int32Array.from([6,26,46,66]),new K(30,new H(3,115),new H(1,116)),new K(24,new H(4,40),new H(5,41)),new K(20,new H(11,16),new H(5,17)),new K(24,new H(11,12),new H(5,13))),new V(15,Int32Array.from([6,26,48,70]),new K(22,new H(5,87),new H(1,88)),new K(24,new H(5,41),new H(5,42)),new K(30,new H(5,24),new H(7,25)),new K(24,new H(11,12),new H(7,13))),new V(16,Int32Array.from([6,26,50,74]),new K(24,new H(5,98),new H(1,99)),new K(28,new H(7,45),new H(3,46)),new K(24,new H(15,19),new H(2,20)),new K(30,new H(3,15),new H(13,16))),new V(17,Int32Array.from([6,30,54,78]),new K(28,new H(1,107),new H(5,108)),new K(28,new H(10,46),new H(1,47)),new K(28,new H(1,22),new H(15,23)),new K(28,new H(2,14),new H(17,15))),new V(18,Int32Array.from([6,30,56,82]),new K(30,new H(5,120),new H(1,121)),new K(26,new H(9,43),new H(4,44)),new K(28,new H(17,22),new H(1,23)),new K(28,new H(2,14),new H(19,15))),new V(19,Int32Array.from([6,30,58,86]),new K(28,new H(3,113),new H(4,114)),new K(26,new H(3,44),new H(11,45)),new K(26,new H(17,21),new H(4,22)),new K(26,new H(9,13),new H(16,14))),new V(20,Int32Array.from([6,34,62,90]),new K(28,new H(3,107),new H(5,108)),new K(26,new H(3,41),new H(13,42)),new K(30,new H(15,24),new H(5,25)),new K(28,new H(15,15),new H(10,16))),new V(21,Int32Array.from([6,28,50,72,94]),new K(28,new H(4,116),new H(4,117)),new K(26,new H(17,42)),new K(28,new H(17,22),new H(6,23)),new K(30,new H(19,16),new H(6,17))),new V(22,Int32Array.from([6,26,50,74,98]),new K(28,new H(2,111),new H(7,112)),new K(28,new H(17,46)),new K(30,new H(7,24),new H(16,25)),new K(24,new H(34,13))),new V(23,Int32Array.from([6,30,54,78,102]),new K(30,new H(4,121),new H(5,122)),new K(28,new H(4,47),new H(14,48)),new K(30,new H(11,24),new H(14,25)),new K(30,new H(16,15),new H(14,16))),new V(24,Int32Array.from([6,28,54,80,106]),new K(30,new H(6,117),new H(4,118)),new K(28,new H(6,45),new H(14,46)),new K(30,new H(11,24),new H(16,25)),new K(30,new H(30,16),new H(2,17))),new V(25,Int32Array.from([6,32,58,84,110]),new K(26,new H(8,106),new H(4,107)),new K(28,new H(8,47),new H(13,48)),new K(30,new H(7,24),new H(22,25)),new K(30,new H(22,15),new H(13,16))),new V(26,Int32Array.from([6,30,58,86,114]),new K(28,new H(10,114),new H(2,115)),new K(28,new H(19,46),new H(4,47)),new K(28,new H(28,22),new H(6,23)),new K(30,new H(33,16),new H(4,17))),new V(27,Int32Array.from([6,34,62,90,118]),new K(30,new H(8,122),new H(4,123)),new K(28,new H(22,45),new H(3,46)),new K(30,new H(8,23),new H(26,24)),new K(30,new H(12,15),new H(28,16))),new V(28,Int32Array.from([6,26,50,74,98,122]),new K(30,new H(3,117),new H(10,118)),new K(28,new H(3,45),new H(23,46)),new K(30,new H(4,24),new H(31,25)),new K(30,new H(11,15),new H(31,16))),new V(29,Int32Array.from([6,30,54,78,102,126]),new K(30,new H(7,116),new H(7,117)),new K(28,new H(21,45),new H(7,46)),new K(30,new H(1,23),new H(37,24)),new K(30,new H(19,15),new H(26,16))),new V(30,Int32Array.from([6,26,52,78,104,130]),new K(30,new H(5,115),new H(10,116)),new K(28,new H(19,47),new H(10,48)),new K(30,new H(15,24),new H(25,25)),new K(30,new H(23,15),new H(25,16))),new V(31,Int32Array.from([6,30,56,82,108,134]),new K(30,new H(13,115),new H(3,116)),new K(28,new H(2,46),new H(29,47)),new K(30,new H(42,24),new H(1,25)),new K(30,new H(23,15),new H(28,16))),new V(32,Int32Array.from([6,34,60,86,112,138]),new K(30,new H(17,115)),new K(28,new H(10,46),new H(23,47)),new K(30,new H(10,24),new H(35,25)),new K(30,new H(19,15),new H(35,16))),new V(33,Int32Array.from([6,30,58,86,114,142]),new K(30,new H(17,115),new H(1,116)),new K(28,new H(14,46),new H(21,47)),new K(30,new H(29,24),new H(19,25)),new K(30,new H(11,15),new H(46,16))),new V(34,Int32Array.from([6,34,62,90,118,146]),new K(30,new H(13,115),new H(6,116)),new K(28,new H(14,46),new H(23,47)),new K(30,new H(44,24),new H(7,25)),new K(30,new H(59,16),new H(1,17))),new V(35,Int32Array.from([6,30,54,78,102,126,150]),new K(30,new H(12,121),new H(7,122)),new K(28,new H(12,47),new H(26,48)),new K(30,new H(39,24),new H(14,25)),new K(30,new H(22,15),new H(41,16))),new V(36,Int32Array.from([6,24,50,76,102,128,154]),new K(30,new H(6,121),new H(14,122)),new K(28,new H(6,47),new H(34,48)),new K(30,new H(46,24),new H(10,25)),new K(30,new H(2,15),new H(64,16))),new V(37,Int32Array.from([6,28,54,80,106,132,158]),new K(30,new H(17,122),new H(4,123)),new K(28,new H(29,46),new H(14,47)),new K(30,new H(49,24),new H(10,25)),new K(30,new H(24,15),new H(46,16))),new V(38,Int32Array.from([6,32,58,84,110,136,162]),new K(30,new H(4,122),new H(18,123)),new K(28,new H(13,46),new H(32,47)),new K(30,new H(48,24),new H(14,25)),new K(30,new H(42,15),new H(32,16))),new V(39,Int32Array.from([6,26,54,82,110,138,166]),new K(30,new H(20,117),new H(4,118)),new K(28,new H(40,47),new H(7,48)),new K(30,new H(43,24),new H(22,25)),new K(30,new H(10,15),new H(67,16))),new V(40,Int32Array.from([6,30,58,86,114,142,170]),new K(30,new H(19,118),new H(6,119)),new K(28,new H(18,47),new H(31,48)),new K(30,new H(34,24),new H(34,25)),new K(30,new H(20,15),new H(61,16)))];class G{constructor(t){const e=t.getHeight();if(e<21||1!=(3&e))throw new g;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<e;t++)r=this.copyBit(t,8,r);if(this.parsedFormatInfo=z.decodeFormatInformation(t,r),null!==this.parsedFormatInfo)return this.parsedFormatInfo;throw new g}readVersion(){if(null!==this.parsedVersion&&void 0!==this.parsedVersion)return this.parsedVersion;const t=this.bitMatrix.getHeight(),e=Math.floor((t-17)/4);if(e<=6)return V.getVersionForNumber(e);let r=0;const n=t-11;for(let e=5;e>=0;e--)for(let i=t-9;i>=n;i--)r=this.copyBit(i,e,r);let i=V.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=V.decodeVersionInformation(r),null!==i&&i.getDimensionForVersion()===t)return this.parsedVersion=i,i;throw new g}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=v.values.get(t.getDataMask()),n=this.bitMatrix.getHeight();r?.unmaskBitMatrix(this.bitMatrix,n);const i=e.buildFunctionPattern();let s=!0;const o=new Uint8Array(e.getTotalCodewords());let a=0,h=0,l=0;for(let t=n-1;t>0;t-=2){6===t&&t--;for(let e=0;e<n;e++){const r=s?n-1-e:e;for(let e=0;e<2;e++)i.get(t-e,r)||(l++,h<<=1,this.bitMatrix.get(t-e,r)&&(h|=1),8===l&&(o[a++]=h,l=0,h=0))}s=!s}if(a!==e.getTotalCodewords())throw new g;return o}remask(){if(null===this.parsedFormatInfo)return;const t=this.parsedFormatInfo&&v.values.get(this.parsedFormatInfo.getDataMask()),e=this.bitMatrix.getHeight();t?.unmaskBitMatrix(this.bitMatrix,e)}setMirror(t){this.parsedVersion=null,this.parsedFormatInfo=null,this.isMirror=t}mirror(){const t=this.bitMatrix;for(let e=0,r=t.getWidth();e<r;e++)for(let r=e+1,n=t.getHeight();r<n;r++)t.get(e,r)!==t.get(r,e)&&(t.flip(r,e),t.flip(e,r))}}class W{constructor(t,e){this.numDataCodewords=t,this.codewords=e}static getDataBlocks(t,e,r){if(t.length!==e.getTotalCodewords())throw new a;const n=e.getECBlocksForLevel(r);let i=0;const s=n.getECBlocks();for(const t of s)i+=t.getCount();const o=new Array(i);let h=0;for(const t of s)for(let e=0;e<t.getCount();e++){const e=t.getDataCodewords(),r=n.getECCodewordsPerBlock()+e;o[h++]=new W(e,new Uint8Array(r))}const l=o[0].codewords.length;let c=o.length-1;for(;c>=0;){if(o[c].codewords.length===l)break;c--}c++;const u=l-n.getECCodewordsPerBlock();let w=0;for(let e=0;e<u;e++)for(let r=0;r<h;r++)o[r].codewords[e]=t[w++];for(let e=c;e<h;e++)o[e].codewords[u]=t[w++];const f=o[0].codewords.length;for(let e=u;e<f;e++)for(let r=0;r<h;r++){const n=r<c?e:e+1;o[r].codewords[n]=t[w++]}return o}getNumDataCodewords(){return this.numDataCodewords}getCodewords(){return this.codewords}}class Z{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 s=8-r,o=t<s?t:s,a=s-o,h=255>>8-o<<a;e=(i[n]&h)>>a,t-=o,r+=o,8===r&&(r=0,n++)}if(t>0){for(;t>=8;)e=e<<8|255&i[n],n++,t-=8;if(t>0){const s=8-t,o=255>>s<<s;e=e<<t|(i[n]&o)>>s,r+=t}}return this.bitOffset=r,this.byteOffset=n,e}available(){return 8*(this.bytes.length-this.byteOffset)-this.bitOffset}}class X{constructor(t,e,r,n,i=-1,s=-1){this.rawBytes=t,this.text=e,this.byteSegments=r,this.ecLevel=n,this.structuredAppendSequenceNumber=i,this.structuredAppendParity=s,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}}!function(t){t[t.TERMINATOR=0]="TERMINATOR",t[t.NUMERIC=1]="NUMERIC",t[t.ALPHANUMERIC=2]="ALPHANUMERIC",t[t.STRUCTURED_APPEND=3]="STRUCTURED_APPEND",t[t.BYTE=4]="BYTE",t[t.ECI=5]="ECI",t[t.KANJI=6]="KANJI",t[t.FNC1_FIRST_POSITION=7]="FNC1_FIRST_POSITION",t[t.FNC1_SECOND_POSITION=8]="FNC1_SECOND_POSITION",t[t.HANZI=9]="HANZI"}(T||(T={}));class Y{constructor(t,e,r,n){this.value=t,this.stringValue=e,this.characterCountBitsForVersions=r,this.bits=n,Y.FOR_BITS.set(n,this),Y.FOR_VALUE.set(t,this)}static forBits(t){const e=Y.FOR_BITS.get(t);if(void 0===e)throw new a;return e}getCharacterCountBits(t){const e=t.getVersionNumber();let r;return r=e<=9?0:e<=26?1:2,this.characterCountBitsForVersions[r]}getValue(){return this.value}getBits(){return this.bits}equals(t){if(!(t instanceof Y))return!1;const e=t;return this.value===e.value}toString(){return this.stringValue}}Y.FOR_BITS=new Map,Y.FOR_VALUE=new Map,Y.TERMINATOR=new Y(T.TERMINATOR,"TERMINATOR",Int32Array.from([0,0,0]),0),Y.NUMERIC=new Y(T.NUMERIC,"NUMERIC",Int32Array.from([10,12,14]),1),Y.ALPHANUMERIC=new Y(T.ALPHANUMERIC,"ALPHANUMERIC",Int32Array.from([9,11,13]),2),Y.STRUCTURED_APPEND=new Y(T.STRUCTURED_APPEND,"STRUCTURED_APPEND",Int32Array.from([0,0,0]),3),Y.BYTE=new Y(T.BYTE,"BYTE",Int32Array.from([8,16,16]),4),Y.ECI=new Y(T.ECI,"ECI",Int32Array.from([0,0,0]),7),Y.KANJI=new Y(T.KANJI,"KANJI",Int32Array.from([8,10,12]),8),Y.FNC1_FIRST_POSITION=new Y(T.FNC1_FIRST_POSITION,"FNC1_FIRST_POSITION",Int32Array.from([0,0,0]),5),Y.FNC1_SECOND_POSITION=new Y(T.FNC1_SECOND_POSITION,"FNC1_SECOND_POSITION",Int32Array.from([0,0,0]),9),Y.HANZI=new Y(T.HANZI,"HANZI",Int32Array.from([8,10,12]),13);class q{static decode(t,e,r,n){const i=new Z(t);let s=new C;const o=new Array;let a=-1,h=-1;try{let t,r=null,l=!1;do{if(i.available()<4)t=Y.TERMINATOR;else{const e=i.readBits(4);t=Y.forBits(e)}switch(t){case Y.TERMINATOR:break;case Y.FNC1_FIRST_POSITION:case Y.FNC1_SECOND_POSITION:l=!0;break;case Y.STRUCTURED_APPEND:if(i.available()<16)throw new g;a=i.readBits(8),h=i.readBits(8);break;case Y.ECI:const c=q.parseECIValue(i);if(r=I.getCharacterSetECIByValue(c),null===r)throw new g;break;case Y.HANZI:const u=i.readBits(4),w=i.readBits(t.getCharacterCountBits(e));u===q.GB2312_SUBSET&&q.decodeHanziSegment(i,s,w);break;default:const f=i.readBits(t.getCharacterCountBits(e));switch(t){case Y.NUMERIC:q.decodeNumericSegment(i,s,f);break;case Y.ALPHANUMERIC:q.decodeAlphanumericSegment(i,s,f,l);break;case Y.BYTE:q.decodeByteSegment(i,s,f,r,o,n);break;case Y.KANJI:q.decodeKanjiSegment(i,s,f);break;default:throw new g}}}while(t!==Y.TERMINATOR)}catch(t){throw new g}return new X(t,s.toString(),0===o.length?null:o,null===r?null:r.toString(),a,h)}static decodeHanziSegment(t,e,r){if(13*r>t.available())throw new g;const n=new Uint8Array(2*r);let i=0;for(;r>0;){const e=t.readBits(13);let s=e/96<<8&4294967295|e%96;s+=s<959?41377:42657,n[i]=s>>8&255,n[i+1]=255&s,i+=2,r--}try{e.append(m.decode(n,A.GB2312))}catch(t){throw new g(t)}}static decodeKanjiSegment(t,e,r){if(13*r>t.available())throw new g;const n=new Uint8Array(2*r);let i=0;for(;r>0;){const e=t.readBits(13);let s=e/192<<8&4294967295|e%192;s+=s<7936?33088:49472,n[i]=s>>8,n[i+1]=s,i+=2,r--}try{e.append(m.decode(n,A.SHIFT_JIS))}catch(t){throw new g(t)}}static decodeByteSegment(t,e,r,n,i,s){if(8*r>t.available())throw new g;const o=new Uint8Array(r);for(let e=0;e<r;e++)o[e]=t.readBits(8);let a;a=null===n?A.guessEncoding(o,s):n.getName();try{e.append(m.decode(o,a))}catch(t){throw new g(t)}i.push(o)}static toAlphaNumericChar(t){if(t>=q.ALPHANUMERIC_CHARS.length)throw new g;return q.ALPHANUMERIC_CHARS[t]}static decodeAlphanumericSegment(t,e,r,n){const i=e.length();for(;r>1;){if(t.available()<11)throw new g;const n=t.readBits(11);e.append(q.toAlphaNumericChar(Math.floor(n/45))),e.append(q.toAlphaNumericChar(n%45)),r-=2}if(1===r){if(t.available()<6)throw new g;e.append(q.toAlphaNumericChar(t.readBits(6)))}if(n)for(let t=i;t<e.length();t++)"%"===e.charAt(t)&&(t<e.length()-1&&"%"===e.charAt(t+1)?e.deleteCharAt(t+1):e.setCharAt(t,String.fromCharCode(29)))}static decodeNumericSegment(t,e,r){for(;r>=3;){if(t.available()<10)throw new g;const n=t.readBits(10);if(n>=1e3)throw new g;e.append(q.toAlphaNumericChar(Math.floor(n/100))),e.append(q.toAlphaNumericChar(Math.floor(n/10)%10)),e.append(q.toAlphaNumericChar(n%10)),r-=3}if(2===r){if(t.available()<7)throw new g;const r=t.readBits(7);if(r>=100)throw new g;e.append(q.toAlphaNumericChar(Math.floor(r/10))),e.append(q.toAlphaNumericChar(r%10))}else if(1===r){if(t.available()<4)throw new g;const r=t.readBits(4);if(r>=10)throw new g;e.append(q.toAlphaNumericChar(r))}}static parseECIValue(t){const e=t.readBits(8);if(!(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 g}}q.ALPHANUMERIC_CHARS="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:",q.GB2312_SUBSET=1;class Q{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 J{constructor(){this.rsDecoder=new F(P.QR_CODE_FIELD_256)}decodeBooleanArray(t,e){return this.decodeBitMatrix(p.parseFromBooleanArray(t),e)}decodeBitMatrix(t,e){const r=new G(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 Q(!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(),s=W.getDataBlocks(i,r,n);let o=0;for(const t of s)o+=t.getNumDataCodewords();const a=new Uint8Array(o);let h=0;for(const t of s){const e=t.getCodewords(),r=t.getNumDataCodewords();this.correctErrors(e,r);for(let t=0;t<r;t++)a[h++]=e[t]}return q.decode(a,r,n,e)}correctErrors(t,e){const r=new Int32Array(t);try{this.rsDecoder.decode(r,t.length-e)}catch(t){throw new y}for(let n=0;n<e;n++)t[n]=r[n]}}class j{constructor(){}static round(t){return isNaN(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,s=e-n;return Math.sqrt(i*i+s*s)}static sum(t){let e=0;for(let r=0,n=t.length;r!==n;r++){e+=t[r]}return e}}class ${constructor(t,e){this.bits=t,this.points=e}getBits(){return this.bits}getPoints(){return this.points}}class tt{static checkAndNudgePoints(t,e){const r=t.getWidth(),i=t.getHeight();let s=!0;for(let t=0;t<e.length&&s;t+=2){const o=Math.floor(e[t]),a=Math.floor(e[t+1]);if(o<-1||o>r||a<-1||a>i)throw new n;s=!1,-1===o?(e[t]=0,s=!0):o===r&&(e[t]=r-1,s=!0),-1===a?(e[t+1]=0,s=!0):a===i&&(e[t+1]=i-1,s=!0)}s=!0;for(let t=e.length-2;t>=0&&s;t-=2){const o=Math.floor(e[t]),a=Math.floor(e[t+1]);if(o<-1||o>r||a<-1||a>i)throw new n;s=!1,-1===o?(e[t]=0,s=!0):o===r&&(e[t]=r-1,s=!0),-1===a?(e[t+1]=0,s=!0):a===i&&(e[t+1]=i-1,s=!0)}}}class et{constructor(t,e,r,n,i,s,o,a,h){this.a11=t,this.a21=e,this.a31=r,this.a12=n,this.a22=i,this.a32=s,this.a13=o,this.a23=a,this.a33=h}static quadrilateralToQuadrilateral(t,e,r,n,i,s,o,a,h,l,c,u,w,f,d,g){const I=et.quadrilateralToSquare(t,e,r,n,i,s,o,a);return et.squareToQuadrilateral(h,l,c,u,w,f,d,g).times(I)}transformPoints(t){const e=t.length,r=this.a11,n=this.a12,i=this.a13,s=this.a21,o=this.a22,a=this.a23,h=this.a31,l=this.a32,c=this.a33;for(let u=0;u<e;u+=2){const e=t[u],w=t[u+1],f=i*e+a*w+c;t[u]=(r*e+s*w+h)/f,t[u+1]=(n*e+o*w+l)/f}}transformPointsWithValues(t,e){const r=this.a11,n=this.a12,i=this.a13,s=this.a21,o=this.a22,a=this.a23,h=this.a31,l=this.a32,c=this.a33,u=t.length;for(let w=0;w<u;w++){const u=t[w],f=e[w],d=i*u+a*f+c;t[w]=(r*u+s*f+h)/d,e[w]=(n*u+o*f+l)/d}}static squareToQuadrilateral(t,e,r,n,i,s,o,a){const h=t-r+i-o,l=e-n+s-a;if(0===h&&0===l)return new et(r-t,i-r,t,n-e,s-n,e,0,0,1);{const c=r-i,u=o-i,w=n-s,f=a-s,d=c*f-u*w,g=(h*f-u*l)/d,I=(c*l-h*w)/d;return new et(r-t+g*r,o-t+I*o,t,n-e+g*n,a-e+I*a,e,g,I,1)}}static quadrilateralToSquare(t,e,r,n,i,s,o,a){return et.squareToQuadrilateral(t,e,r,n,i,s,o,a).buildAdjoint()}buildAdjoint(){return new et(this.a22*this.a33-this.a23*this.a32,this.a23*this.a31-this.a21*this.a33,this.a21*this.a32-this.a22*this.a31,this.a13*this.a32-this.a12*this.a33,this.a11*this.a33-this.a13*this.a31,this.a12*this.a31-this.a11*this.a32,this.a12*this.a23-this.a13*this.a22,this.a13*this.a21-this.a11*this.a23,this.a11*this.a22-this.a12*this.a21)}times(t){return new et(this.a11*t.a11+this.a21*t.a12+this.a31*t.a13,this.a11*t.a21+this.a21*t.a22+this.a31*t.a23,this.a11*t.a31+this.a21*t.a32+this.a31*t.a33,this.a12*t.a11+this.a22*t.a12+this.a32*t.a13,this.a12*t.a21+this.a22*t.a22+this.a32*t.a23,this.a12*t.a31+this.a22*t.a32+this.a32*t.a33,this.a13*t.a11+this.a23*t.a12+this.a33*t.a13,this.a13*t.a21+this.a23*t.a22+this.a33*t.a23,this.a13*t.a31+this.a23*t.a32+this.a33*t.a33)}}class rt{static setGridSampler(t){rt.gridSampler=t}static getInstance(){return rt.gridSampler}}rt.gridSampler=new class extends tt{sampleGrid(t,e,r,n,i,s,o,a,h,l,c,u,w,f,d,g,I,S,m){const A=et.quadrilateralToQuadrilateral(n,i,s,o,a,h,l,c,u,w,f,d,g,I,S,m);return this.sampleGridWithTransform(t,e,r,A)}sampleGridWithTransform(t,e,r,i){if(e<=0||r<=0)throw new n;const s=new p(e,r),o=new Float32Array(2*e);for(let e=0;e<r;e++){const r=o.length,a=e+.5;for(let t=0;t<r;t+=2)o[t]=t/2+.5,o[t+1]=a;i.transformPoints(o),tt.checkAndNudgePoints(t,o);try{for(let n=0;n<r;n+=2)t.get(Math.floor(o[n]),Math.floor(o[n+1]))&&s.set(n/2,e)}catch(t){throw new n}}return s}};class nt{static floatToIntBits(t){return t}}nt.MAX_VALUE=Number.MAX_SAFE_INTEGER;class it{constructor(t,e){this.x=t,this.y=e}getX(){return this.x}getY(){return this.y}equals(t){if(t instanceof it){const e=t;return this.x===e.x&&this.y===e.y}return!1}hashCode(){return 31*nt.floatToIntBits(this.x)+nt.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,s,o;if(r>=e&&r>=n?(s=t[0],i=t[1],o=t[2]):n>=r&&n>=e?(s=t[1],i=t[0],o=t[2]):(s=t[2],i=t[0],o=t[1]),this.crossProductZ(i,s,o)<0){const t=i;i=o,o=t}t[0]=i,t[1]=s,t[2]=o}static distance(t,e){return j.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 st extends it{constructor(t,e,r){super(t,e),this.estimatedModuleSize=r}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.getX()+e)/2,i=(this.getY()+t)/2,s=(this.estimatedModuleSize+r)/2;return new st(n,i,s)}}class ot{constructor(t,e,r,n,i,s,o){this.image=t,this.startX=e,this.startY=r,this.width=n,this.height=i,this.moduleSize=s,this.resultPointCallback=o,this.possibleCenters=[],this.crossCheckStateCount=new Int32Array(3)}find(){const t=this.startX,e=this.height,r=t+this.width,i=this.startY+e/2,s=new Int32Array(3),o=this.image;for(let n=0;n<e;n++){const e=i+(1&n?-Math.floor((n+1)/2):Math.floor((n+1)/2));s[0]=0,s[1]=0,s[2]=0;let a=t;for(;a<r&&!o.get(a,e);)a++;let h=0;for(;a<r;){if(o.get(a,e))if(1===h)s[1]++;else if(2===h){if(this.foundPatternCross(s)){const t=this.handlePossibleCenter(s,e,a);if(null!==t)return t}s[0]=s[2],s[1]=1,s[2]=0,h=1}else s[++h]++;else 1===h&&h++,s[h]++;a++}if(this.foundPatternCross(s)){const t=this.handlePossibleCenter(s,e,r);if(null!==t)return t}}if(0!==this.possibleCenters.length)return this.possibleCenters[0];throw new n}static centerFromEnd(t,e){return e-t[2]-t[1]/2}foundPatternCross(t){const e=this.moduleSize,r=e/2;for(let n=0;n<3;n++)if(Math.abs(e-t[n])>=r)return!1;return!0}crossCheckVertical(t,e,r,n){const i=this.image,s=i.getHeight(),o=this.crossCheckStateCount;o[0]=0,o[1]=0,o[2]=0;let a=t;for(;a>=0&&i.get(e,a)&&o[1]<=r;)o[1]++,a--;if(a<0||o[1]>r)return NaN;for(;a>=0&&!i.get(e,a)&&o[0]<=r;)o[0]++,a--;if(o[0]>r)return NaN;for(a=t+1;a<s&&i.get(e,a)&&o[1]<=r;)o[1]++,a++;if(a===s||o[1]>r)return NaN;for(;a<s&&!i.get(e,a)&&o[2]<=r;)o[2]++,a++;if(o[2]>r)return NaN;const h=o[0]+o[1]+o[2];return 5*Math.abs(h-n)>=2*n?NaN:this.foundPatternCross(o)?ot.centerFromEnd(o,a):NaN}handlePossibleCenter(t,e,r){const n=t[0]+t[1]+t[2],i=ot.centerFromEnd(t,r),s=this.crossCheckVertical(e,i,2*t[1],n);if(!isNaN(s)){const e=(t[0]+t[1]+t[2])/3;for(const t of this.possibleCenters)if(t.aboutEquals(e,s,i))return t.combineEstimate(s,i,e);const r=new st(i,s,e);this.possibleCenters.push(r),null!==this.resultPointCallback&&void 0!==this.resultPointCallback&&this.resultPointCallback.foundPossibleResultPoint(r)}return null}}class at extends it{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??0,i=n+1,s=(n*this.getX()+e)/i,o=(n*this.getY()+t)/i,a=(n*this.estimatedModuleSize+r)/i;return new at(s,o,a,i)}}class ht{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 lt{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(d.TRY_HARDER),r=null!=t&&void 0!==t.get(d.PURE_BARCODE),n=this.image,i=n.getHeight(),s=n.getWidth();let o=Math.floor(3*i/(4*lt.MAX_MODULES));(o<lt.MIN_SKIP||e)&&(o=lt.MIN_SKIP);let a=!1;const h=new Int32Array(5);for(let t=o-1;t<i&&!a;t+=o){h[0]=0,h[1]=0,h[2]=0,h[3]=0,h[4]=0;let e=0;for(let i=0;i<s;i++)if(n.get(i,t))1&~e||e++,h[e]++;else if(1&e)h[e]++;else if(4===e)if(lt.foundPatternCross(h)){if(!0!==this.handlePossibleCenter(h,t,i,r)){h[0]=h[2],h[1]=h[3],h[2]=h[4],h[3]=1,h[4]=0,e=3;continue}if(o=2,!0===this.hasSkipped)a=this.haveMultiplyConfirmedCenters();else{const e=this.findRowSkip();e>h[2]&&(t+=e-h[2]-o,i=s-1)}e=0,h[0]=0,h[1]=0,h[2]=0,h[3]=0,h[4]=0}else h[0]=h[2],h[1]=h[3],h[2]=h[4],h[3]=1,h[4]=0,e=3;else h[++e]++;if(lt.foundPatternCross(h)){!0===this.handlePossibleCenter(h,t,s,r)&&(o=h[0],this.hasSkipped&&(a=this.haveMultiplyConfirmedCenters()))}}const l=this.selectBestPatterns();return it.orderBestPatterns(l),new ht(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])<n&&Math.abs(r-t[1])<n&&Math.abs(3*r-t[2])<3*n&&Math.abs(r-t[3])<n&&Math.abs(r-t[4])<n}getCrossCheckStateCount(){const t=this.crossCheckStateCount;return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t}crossCheckDiagonal(t,e,r,n){const i=this.getCrossCheckStateCount();let s=0;const o=this.image;for(;t>=s&&e>=s&&o.get(e-s,t-s);)i[2]++,s++;if(t<s||e<s)return!1;for(;t>=s&&e>=s&&!o.get(e-s,t-s)&&i[1]<=r;)i[1]++,s++;if(t<s||e<s||i[1]>r)return!1;for(;t>=s&&e>=s&&o.get(e-s,t-s)&&i[0]<=r;)i[0]++,s++;if(i[0]>r)return!1;const a=o.getHeight(),h=o.getWidth();for(s=1;t+s<a&&e+s<h&&o.get(e+s,t+s);)i[2]++,s++;if(t+s>=a||e+s>=h)return!1;for(;t+s<a&&e+s<h&&!o.get(e+s,t+s)&&i[3]<r;)i[3]++,s++;if(t+s>=a||e+s>=h||i[3]>=r)return!1;for(;t+s<a&&e+s<h&&o.get(e+s,t+s)&&i[4]<r;)i[4]++,s++;if(i[4]>=r)return!1;const l=i[0]+i[1]+i[2]+i[3]+i[4];return Math.abs(l-n)<2*n&&lt.foundPatternCross(i)}crossCheckVertical(t,e,r,n){const i=this.image,s=i.getHeight(),o=this.getCrossCheckStateCount();let a=t;for(;a>=0&&i.get(e,a);)o[2]++,a--;if(a<0)return NaN;for(;a>=0&&!i.get(e,a)&&o[1]<=r;)o[1]++,a--;if(a<0||o[1]>r)return NaN;for(;a>=0&&i.get(e,a)&&o[0]<=r;)o[0]++,a--;if(o[0]>r)return NaN;for(a=t+1;a<s&&i.get(e,a);)o[2]++,a++;if(a===s)return NaN;for(;a<s&&!i.get(e,a)&&o[3]<r;)o[3]++,a++;if(a===s||o[3]>=r)return NaN;for(;a<s&&i.get(e,a)&&o[4]<r;)o[4]++,a++;if(o[4]>=r)return NaN;const h=o[0]+o[1]+o[2]+o[3]+o[4];return 5*Math.abs(h-n)>=2*n?NaN:lt.foundPatternCross(o)?lt.centerFromEnd(o,a):NaN}crossCheckHorizontal(t,e,r,n){const i=this.image,s=i.getWidth(),o=this.getCrossCheckStateCount();let a=t;for(;a>=0&&i.get(a,e);)o[2]++,a--;if(a<0)return NaN;for(;a>=0&&!i.get(a,e)&&o[1]<=r;)o[1]++,a--;if(a<0||o[1]>r)return NaN;for(;a>=0&&i.get(a,e)&&o[0]<=r;)o[0]++,a--;if(o[0]>r)return NaN;for(a=t+1;a<s&&i.get(a,e);)o[2]++,a++;if(a===s)return NaN;for(;a<s&&!i.get(a,e)&&o[3]<r;)o[3]++,a++;if(a===s||o[3]>=r)return NaN;for(;a<s&&i.get(a,e)&&o[4]<r;)o[4]++,a++;if(o[4]>=r)return NaN;const h=o[0]+o[1]+o[2]+o[3]+o[4];return 5*Math.abs(h-n)>=n?NaN:lt.foundPatternCross(o)?lt.centerFromEnd(o,a):NaN}handlePossibleCenter(t,e,r,n){const i=t[0]+t[1]+t[2]+t[3]+t[4];let s=lt.centerFromEnd(t,r),o=this.crossCheckVertical(e,Math.floor(s),t[2],i);if(!isNaN(o)&&(s=this.crossCheckHorizontal(Math.floor(s),Math.floor(o),t[2],i),!isNaN(s)&&(!n||this.crossCheckDiagonal(Math.floor(o),Math.floor(s),t[2],i)))){const t=i/7;let e=!1;const r=this.possibleCenters;for(let n=0,i=r.length;n<i;n++){const i=r[n];if(i.aboutEquals(t,o,s)){r[n]=i.combineEstimate(o,s,t),e=!0;break}}if(!e){const e=new at(s,o,t);r.push(e),null!==this.resultPointCallback&&void 0!==this.resultPointCallback&&this.resultPointCallback.foundPossibleResultPoint(e)}return!0}return!1}findRowSkip(){if(this.possibleCenters.length<=1)return 0;let t=null;for(const e of this.possibleCenters){const r=e?.getCount();if(void 0!==r&&r>=lt.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){const n=r.getCount();void 0!==n&&n>=lt.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 n;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 s=Math.sqrt(i/t-r*r);e.sort(((t,e)=>{const n=Math.abs(e.getEstimatedModuleSize()-r),i=Math.abs(t.getEstimatedModuleSize()-r);return n<i?-1:n>i?1:0}));const o=Math.max(.2*r,s);for(let t=0;t<e.length&&e.length>3;t++){const n=e[t];Math.abs(n.getEstimatedModuleSize()-r)>o&&(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 n<i?1:n>i?-1:0}return(e.getCount()??0)-(t.getCount()??0)})),e.splice(3)}return[e[0],e[1],e[2]]}}lt.CENTER_QUORUM=2,lt.MIN_SKIP=3,lt.MAX_MODULES=57;class ct{constructor(t){this.image=t}getImage(){return this.image}getResultPointCallback(){return this.resultPointCallback}detect(t){this.resultPointCallback=null==t?null:t.get(d.NEED_RESULT_POINT_CALLBACK);const e=new lt(this.image,this.resultPointCallback).find(t);return this.processFinderPatternInfo(e)}processFinderPatternInfo(t){const e=t.getTopLeft(),r=t.getTopRight(),i=t.getBottomLeft(),s=this.calculateModuleSize(e,r,i);if(s<1)throw new n("No pattern found in proccess finder.");const o=ct.computeDimension(e,r,i,s),a=V.getProvisionalVersionForDimension(o),h=a.getDimensionForVersion()-7;let l=null;if(a.getAlignmentPatternCenters().length>0){const t=r.getX()-e.getX()+i.getX(),o=r.getY()-e.getY()+i.getY(),a=1-3/h,c=Math.floor(e.getX()+a*(t-e.getX())),u=Math.floor(e.getY()+a*(o-e.getY()));for(let t=4;t<=16;t<<=1)try{l=this.findAlignmentInRegion(s,c,u,t);break}catch(t){if(!(t instanceof n))throw t}}const c=ct.createTransform(e,r,i,l,o),u=ct.sampleGrid(this.image,c,o);let w;return w=null===l?[i,e,r]:[i,e,r,l],new $(u,w)}static createTransform(t,e,r,n,i){const s=i-3.5;let o,a,h,l;return null!==n?(o=n.getX(),a=n.getY(),h=s-3,l=h):(o=e.getX()-t.getX()+r.getX(),a=e.getY()-t.getY()+r.getY(),h=s,l=s),et.quadrilateralToQuadrilateral(3.5,3.5,s,3.5,h,l,3.5,s,t.getX(),t.getY(),e.getX(),e.getY(),o,a,r.getX(),r.getY())}static sampleGrid(t,e,r){return rt.getInstance().sampleGridWithTransform(t,r,r,e)}static computeDimension(t,e,r,i){const s=j.round(it.distance(t,e)/i),o=j.round(it.distance(t,r)/i);let a=Math.floor((s+o)/2)+7;switch(3&a){case 0:a++;break;case 2:a--;break;case 3:throw new n("Dimensions could be not found.")}return a}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),s=1,o=t-(r-t);o<0?(s=t/(t-o),o=0):o>=this.image.getWidth()&&(s=(this.image.getWidth()-1-t)/(o-t),o=this.image.getWidth()-1);let a=Math.floor(e-(n-e)*s);return s=1,a<0?(s=e/(e-a),a=0):a>=this.image.getHeight()&&(s=(this.image.getHeight()-1-e)/(a-e),a=this.image.getHeight()-1),o=Math.floor(t+(o-t)*s),i+=this.sizeOfBlackWhiteBlackRun(t,e,o,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 s=Math.abs(r-t),o=Math.abs(n-e);let a=-s/2;const h=t<r?1:-1,l=e<n?1:-1;let c=0;const u=r+h;for(let r=t,w=e;r!==u;r+=h){const h=i?w:r,u=i?r:w;if(1===c===this.image.get(h,u)){if(2===c)return j.distance(r,w,t,e);c++}if(a+=o,a>0){if(w===n)break;w+=l,a-=s}}return 2===c?j.distance(r+h,n,t,e):NaN}findAlignmentInRegion(t,e,r,i){const s=Math.floor(i*t),o=Math.max(0,e-s),a=Math.min(this.image.getWidth()-1,e+s);if(a-o<3*t)throw new n("Alignment top exceeds estimated module size.");const h=Math.max(0,r-s),l=Math.min(this.image.getHeight()-1,r+s);if(l-h<3*t)throw new n("Alignment bottom exceeds estimated module size.");return new ot(this.image,o,h,a-o,l-h,t,this.resultPointCallback).find()}}class ut{constructor(){this.decoder=new J}getDecoder(){return this.decoder}decode(t,e){let r,n;const i=e??(new Map).set(d.TRY_HARDER,!0);try{const e=ut.extractPureBits(t.getBlackMatrix());r=this.decoder.decodeBitMatrix(e,i),n=ut.NO_POINTS}catch(e){const s=new ct(t.getBlackMatrix()).detect(i);r=this.decoder.decodeBitMatrix(s.getBits(),i),n=s.getPoints()}r.getOther()instanceof Q&&r.getOther().applyMirroredCorrection(n);const s=new M(r.getText(),r.getRawBytes(),void 0,n,o.QR_CODE,void 0),a=r.getByteSegments();a&&s.putMetadata(b.BYTE_SEGMENTS,a);const h=r.getECLevel();return h&&s.putMetadata(b.ERROR_CORRECTION_LEVEL,h),r.hasStructuredAppend()&&(s.putMetadata(b.STRUCTURED_APPEND_SEQUENCE,r.getStructuredAppendSequenceNumber()),s.putMetadata(b.STRUCTURED_APPEND_PARITY,r.getStructuredAppendParity())),s}decode2(t,e){let r,n;const i=null==e||null==e?(new Map).set(d.TRY_HARDER,!0):void 0;console.log("hintsDef",i);const s=ut.extractPureBits(t.getBlackMatrix());r=this.decoder.decodeBitMatrix(s,i),n=ut.NO_POINTS,r.getOther()instanceof Q&&r.getOther().applyMirroredCorrection(n);const a=new M(r.getText(),r.getRawBytes(),void 0,n,o.QR_CODE,void 0),h=r.getByteSegments();null!==h&&a.putMetadata(b.BYTE_SEGMENTS,h);const l=r.getECLevel();return null!==l&&a.putMetadata(b.ERROR_CORRECTION_LEVEL,l),r.hasStructuredAppend()&&(a.putMetadata(b.STRUCTURED_APPEND_SEQUENCE,r.getStructuredAppendSequenceNumber()),a.putMetadata(b.STRUCTURED_APPEND_PARITY,r.getStructuredAppendParity())),a}reset(){}static extractPureBits(t){const e=t.getTopLeftOnBit(),r=t.getBottomRightOnBit();if(null===e||null===r)throw new n;const i=this.moduleSize(e,t);let s=e[1],o=r[1],a=e[0],h=r[0];if(a>=h||s>=o)throw new n;if(o-s!=h-a&&(h=a+(o-s),h>=t.getWidth()))throw new n;const l=Math.round((h-a+1)/i),c=Math.round((o-s+1)/i);if(l<=0||c<=0)throw new n;if(c!==l)throw new n;const u=Math.floor(i/2);s+=u,a+=u;const w=a+Math.floor((l-1)*i)-h;if(w>0){if(w>u)throw new n;a-=w}const f=s+Math.floor((c-1)*i)-o;if(f>0){if(f>u)throw new n;s-=f}const d=new p(l,c);for(let e=0;e<c;e++){const r=s+Math.floor(e*i);for(let n=0;n<l;n++)t.get(a+Math.floor(n*i),r)&&d.set(n,e)}return d}static moduleSize(t,e){const r=e.getHeight(),i=e.getWidth();let s=t[0],o=t[1],a=!0,h=0;for(;s<i&&o<r;){if(a!==e.get(s,o)){if(5==++h)break;a=!a}s++,o++}if(s===i||o===r)throw new n;return(s-t[0])/7}}ut.NO_POINTS=new Array;class wt{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 wt(this.binarizer.createBinarizer(i))}isRotateSupported(){return this.binarizer.getLuminanceSource().isRotateSupported()}rotateCounterClockwise(){const t=this.binarizer.getLuminanceSource().rotateCounterClockwise();return new wt(this.binarizer.createBinarizer(t))}rotateCounterClockwise45(){const t=this.binarizer.getLuminanceSource().rotateCounterClockwise45();return new wt(this.binarizer.createBinarizer(t))}toString(){try{return this.getBlackMatrix().toString()}catch(t){return""}}}class ft{constructor(t){this.source=t}getLuminanceSource(){return this.source}getWidth(){return this.source.getWidth()}getHeight(){return this.source.getHeight()}}class dt extends ft{constructor(t){super(t),this.luminances=dt.EMPTY,this.buckets=new Int32Array(dt.LUMINANCE_BUCKETS)}getBlackRow(t,e){const r=this.getLuminanceSource(),n=r.getWidth();null==e||e.getSize()<n?e=new _(n):e.clear(),this.initArrays(n);const i=r.getRow(t,this.luminances),s=this.buckets;for(let t=0;t<n;t++)s[(255&i[t])>>dt.LUMINANCE_SHIFT]++;const o=dt.estimateBlackPoint(s);if(n<3)for(let t=0;t<n;t++)(255&i[t])<o&&e.set(t);else{let t=255&i[0],r=255&i[1];for(let s=1;s<n-1;s++){const n=255&i[s+1];(4*r-t-n)/2<o&&e.set(s),t=r,r=n}}return e}getBlackMatrix(){const t=this.getLuminanceSource(),e=t.getWidth(),r=t.getHeight(),n=new p(e,r);this.initArrays(e);const i=this.buckets;for(let n=1;n<5;n++){const s=Math.floor(r*n/5),o=t.getRow(s,this.luminances),a=Math.floor(4*e/5);for(let t=Math.floor(e/5);t<a;t++){i[(255&o[t])>>dt.LUMINANCE_SHIFT]++}}const s=dt.estimateBlackPoint(i),o=t.getMatrix();for(let t=0;t<r;t++){const r=t*e;for(let i=0;i<e;i++){(255&o[r+i])<s&&n.set(i,t)}}return n}createBinarizer(t){return new dt(t)}initArrays(t){this.luminances.length<t&&(this.luminances=new Uint8ClampedArray(t));const e=this.buckets;for(let t=0;t<dt.LUMINANCE_BUCKETS;t++)e[t]=0}static estimateBlackPoint(t){const e=t.length;let r=0,i=0,s=0;for(let n=0;n<e;n++)t[n]>s&&(i=n,s=t[n]),t[n]>r&&(r=t[n]);let o=0,a=0;for(let r=0;r<e;r++){const e=r-i,n=t[r]*e*e;n>a&&(o=r,a=n)}if(i>o){const t=i;i=o,o=t}if(o-i<=e/16)throw new n;let h=o-1,l=-1;for(let e=o-1;e>i;e--){const n=e-i,s=n*n*(o-e)*(r-t[e]);s>l&&(h=e,l=s)}return h<<dt.LUMINANCE_SHIFT}}dt.LUMINANCE_BITS=5,dt.LUMINANCE_SHIFT=8-dt.LUMINANCE_BITS,dt.LUMINANCE_BUCKETS=1<<dt.LUMINANCE_BITS,dt.EMPTY=Uint8ClampedArray.from([0]);class gt extends dt{constructor(t){super(t),this.matrix=null}getBlackMatrix(){if(null!==this.matrix)return this.matrix;const t=this.getLuminanceSource(),e=t.getWidth(),r=t.getHeight();if(e>=gt.MINIMUM_DIMENSION&&r>=gt.MINIMUM_DIMENSION){const n=t.getMatrix();let i=e>>gt.BLOCK_SIZE_POWER;e&gt.BLOCK_SIZE_MASK&&i++;let s=r>>gt.BLOCK_SIZE_POWER;r&gt.BLOCK_SIZE_MASK&&s++;const o=gt.calculateBlackPoints(n,i,s,e,r),a=new p(e,r);gt.calculateThresholdForBlock(n,i,s,e,r,o,a),this.matrix=a}else this.matrix=super.getBlackMatrix();return this.matrix}createBinarizer(t){return new gt(t)}static calculateThresholdForBlock(t,e,r,n,i,s,o){const a=i-gt.BLOCK_SIZE,h=n-gt.BLOCK_SIZE;for(let i=0;i<r;i++){let l=i<<gt.BLOCK_SIZE_POWER;l>a&&(l=a);const c=gt.cap(i,2,r-3);for(let r=0;r<e;r++){let i=r<<gt.BLOCK_SIZE_POWER;i>h&&(i=h);const a=gt.cap(r,2,e-3);let u=0;for(let t=-2;t<=2;t++){const e=s[c+t];u+=e[a-2]+e[a-1]+e[a]+e[a+1]+e[a+2]}const w=u/25;gt.thresholdBlock(t,i,l,w,n,o)}}}static cap(t,e,r){return t<e?e:t>r?r:t}static thresholdBlock(t,e,r,n,i,s){for(let o=0,a=r*i+e;o<gt.BLOCK_SIZE;o++,a+=i)for(let i=0;i<gt.BLOCK_SIZE;i++)(255&t[a+i])<=n&&s.set(e+i,r+o)}static calculateBlackPoints(t,e,r,n,i){const s=i-gt.BLOCK_SIZE,o=n-gt.BLOCK_SIZE,a=new Array(r);for(let i=0;i<r;i++){a[i]=new Int32Array(e);let r=i<<gt.BLOCK_SIZE_POWER;r>s&&(r=s);for(let s=0;s<e;s++){let e=s<<gt.BLOCK_SIZE_POWER;e>o&&(e=o);let h=0,l=255,c=0;for(let i=0,s=r*n+e;i<gt.BLOCK_SIZE;i++,s+=n){for(let e=0;e<gt.BLOCK_SIZE;e++){const r=255&t[s+e];h+=r,r<l&&(l=r),r>c&&(c=r)}if(c-l>gt.MIN_DYNAMIC_RANGE)for(i++,s+=n;i<gt.BLOCK_SIZE;i++,s+=n)for(let e=0;e<gt.BLOCK_SIZE;e++)h+=255&t[s+e]}let u=h>>2*gt.BLOCK_SIZE_POWER;if(c-l<=gt.MIN_DYNAMIC_RANGE&&(u=l/2,i>0&&s>0)){const t=(a[i-1][s]+2*a[i][s-1]+a[i-1][s-1])/4;l<t&&(u=t)}a[i][s]=u}}return a}}gt.BLOCK_SIZE_POWER=3,gt.BLOCK_SIZE=1<<gt.BLOCK_SIZE_POWER,gt.BLOCK_SIZE_MASK=gt.BLOCK_SIZE-1,gt.MINIMUM_DIMENSION=5*gt.BLOCK_SIZE,gt.MIN_DYNAMIC_RANGE=24;class It{constructor(t,e){this.width=t,this.height=e}getWidth(){return this.width}getHeight(){return this.height}isCropSupported(){return!1}crop(t,e,r,n){throw new S("This luminance source does not support cropping.")}isRotateSupported(){return!1}rotateCounterClockwise(){throw new S("This luminance source does not support rotation by 90 degrees.")}rotateCounterClockwise45(){throw new S("This luminance source does not support rotation by 45 degrees.")}toString(){const t=new Uint8ClampedArray(this.width);let e=new C;for(let r=0;r<this.height;r++){const n=this.getRow(r,t);for(let t=0;t<this.width;t++){const r=255&n[t];let i;i=r<64?"#":r<128?"+":r<192?".":" ",e.append(i)}e.append("\n")}return e.toString()}}class St extends It{constructor(t){super(t.getWidth(),t.getHeight()),this.delegate=t}getRow(t,e){const r=this.delegate.getRow(t,e),n=this.getWidth();for(let t=0;t<n;t++)r[t]=255-(255&r[t]);return r}getMatrix(){const t=this.delegate.getMatrix(),e=this.getWidth()*this.getHeight(),r=new Uint8ClampedArray(e);for(let n=0;n<e;n++)r[n]=255-(255&t[n]);return r}isCropSupported(){return this.delegate.isCropSupported()}crop(t,e,r,n){return new St(this.delegate.crop(t,e,r,n))}isRotateSupported(){return this.delegate.isRotateSupported()}invert(){return this.delegate}rotateCounterClockwise(){return new St(this.delegate.rotateCounterClockwise())}rotateCounterClockwise45(){return new St(this.delegate.rotateCounterClockwise45())}}class mt extends It{constructor(t,e=128){super(t.getWidth(),t.getHeight()),this.delegate=t,this.threshold=e}getRow(t,e){const r=this.delegate.getRow(t,e),n=this.getWidth();for(let t=0;t<n;t++)r[t]=r[t]<this.threshold?0:255;return r}getMatrix(){const t=this.delegate.getMatrix(),e=this.getWidth()*this.getHeight(),r=new Uint8ClampedArray(e);for(let n=0;n<e;n++)r[n]=t[n]<this.threshold?0:255;return r}isCropSupported(){return this.delegate.isCropSupported()}crop(t,e,r,n){return new mt(this.delegate.crop(t,e,r,n),this.threshold)}isRotateSupported(){return this.delegate.isRotateSupported()}rotateCounterClockwise(){return new mt(this.delegate.rotateCounterClockwise(),this.threshold)}rotateCounterClockwise45(){return new mt(this.delegate.rotateCounterClockwise45(),this.threshold)}invert(){return new St(this)}highContrast(){return this}}class At extends It{constructor(t,e=!1){super(t.width,t.height),this.canvas=t,this.tempCanvasElement=null,this.buffer=At.makeBufferFromCanvasImageData(t,e)}static makeBufferFromCanvasImageData(t,e=!1){const r=t.getContext("2d").getImageData(0,0,t.width,t.height);return At.toGrayscaleBuffer(r.data,t.width,t.height,e)}static toGrayscaleBuffer(t,e,r,n=!1){const i=new Uint8ClampedArray(e*r);if(At.FRAME_INDEX=!At.FRAME_INDEX,At.FRAME_INDEX||!n)for(let e=0,r=0,n=t.length;e<n;e+=4,r++){let n;if(0===t[e+3])n=255;else{n=306*t[e]+601*t[e+1]+117*t[e+2]+512>>10}i[r]=n}else for(let e=0,r=0,n=t.length;e<n;e+=4,r++){let n;if(0===t[e+3])n=255;else{n=306*t[e]+601*t[e+1]+117*t[e+2]+512>>10}i[r]=255-n}return i}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.length<r&&(e=new Uint8ClampedArray(r)),e.set(this.buffer.slice(n,n+r))),e}getMatrix(){return this.buffer}isCropSupported(){return!0}crop(t,e,r,n){return super.crop(t,e,r,n),this}isRotateSupported(){return!0}rotateCounterClockwise(){return this.rotate(-90),this}rotateCounterClockwise45(){return this.rotate(-45),this}getTempCanvasElement(){if(null===this.tempCanvasElement){const t=this.canvas.ownerDocument.createElement("canvas");t.width=this.canvas.width,t.height=this.canvas.height,this.tempCanvasElement=t}return this.tempCanvasElement}rotate(t){const e=this.getTempCanvasElement(),r=e.getContext("2d"),n=t*At.DEGREE_TO_RADIANS,i=this.canvas.width,s=this.canvas.height,o=Math.ceil(Math.abs(Math.cos(n))*i+Math.abs(Math.sin(n))*s),a=Math.ceil(Math.abs(Math.sin(n))*i+Math.abs(Math.cos(n))*s);return e.width=o,e.height=a,r.translate(o/2,a/2),r.rotate(n),r.drawImage(this.canvas,i/-2,s/-2),this.buffer=At.makeBufferFromCanvasImageData(e),this}invert(){return new St(this)}hightContrast(t=128){return new mt(this,t)}}At.DEGREE_TO_RADIANS=Math.PI/180,At.FRAME_INDEX=!0;class Ct extends It{constructor(t,e,r){super(t,e),this.buffer=r}static async create(t,e,r,n,i=!1){let s,o,a;if(e)try{const{Jimp:e}=await import("jimp"),r=await e.read(t);if(o=r.bitmap.width,a=r.bitmap.height,!o||!a)throw new Error("Invalid image dimensions from Jimp");s=new Uint8ClampedArray(r.bitmap.data)}catch(t){throw console.error("Jimp failed to read image buffer:",t),new Error("Failed to decode image buffer")}else{if(void 0===r||void 0===n)throw new Error("Width and height are required for raw RGBA buffer input");if(t.length!==r*n*4)throw new Error(`Raw RGBA buffer size (${t.length}) does not match dimensions (${r}x${n}x4 = ${r*n*4})`);o=r,a=n,s=new Uint8ClampedArray(t)}const h=Ct.toGrayscaleBuffer(s,o,a,i);return new Ct(o,a,h)}static toGrayscaleBuffer(t,e,r,n=!1){const i=new Uint8ClampedArray(e*r);if(n)for(let e=0,r=0,n=t.length;e<n;e+=4,r++){let n;if(0===t[e+3])n=255;else{n=306*t[e]+601*t[e+1]+117*t[e+2]+512>>10}i[r]=255-n}else for(let e=0,r=0,n=t.length;e<n;e+=4,r++){let n;if(0===t[e+3])n=255;else{n=306*t[e]+601*t[e+1]+117*t[e+2]+512>>10}i[r]=n}return i}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 e?(e.length<r&&(e=new Uint8ClampedArray(r)),e.set(this.buffer.slice(n,n+r))):e=this.buffer.slice(n,n+r),e}getMatrix(){return this.buffer}isCropSupported(){return!0}crop(t,e,r,n){if(t<0||e<0||t+r>this.getWidth()||e+n>this.getHeight())throw new a("Crop rectangle does not fit within image data.");const i=new Uint8ClampedArray(r*n);for(let s=0;s<n;s++){const n=(e+s)*this.getWidth()+t,o=s*r;i.set(this.buffer.slice(n,n+r),o)}return new Ct(r,n,i)}isRotateSupported(){return!1}invert(){return new St(this)}}const Et=!1;async function _t(e,r=!1){try{const{buffer:n,isPng:i,width:s,height:o}=function(e,r=!1){try{const n=new t(e,{fitTo:{mode:"zoom",value:2}}).render(),{width:i,height:s}=n;if(r){const t=Buffer.from(n.pixels);for(let e=0;e<t.length;e+=4)t[e]=255-t[e],t[e+1]=255-t[e+1],t[e+2]=255-t[e+2];return{buffer:t,isPng:!1,width:i,height:s}}return{buffer:n.asPng(),isPng:!0,width:i,height:s}}catch(t){throw new Error("Failed to preprocess image")}}(e,r);return await Ct.create(n,i,s,o)}catch(t){throw new Error("Failed to convert SVG to luminance source")}}async function pt(t){try{return(t=>{const e=new gt(t);return new wt(e)})(t)}catch(t){throw new Error("Failed to create binary bitmap")}}async function Mt(t,e){const r=e.decode(t);if(!r.getText())throw new Error("Decoded result is empty");return r}const Ot={validateZxing:async t=>{if(!t)return{isValid:!1,isInverted:!1,message:"Input SVG string is undefined"};try{const e=new ut,r=await _t(t,!1);Et;const n=await pt(r);let i;try{return i=await Mt(n,e),{isValid:!0,isInverted:!1,decodedText:i.getText(),message:"Decoded successfully"}}catch(r){try{const r=await _t(t,!0);Et;const n=await pt(r);return i=await Mt(n,e),{isValid:!0,isInverted:!0,decodedText:i.getText(),message:"Inverted decode succeeded."}}catch(t){return{isValid:!1,isInverted:!1,message:"Failed to decode QR code (both normal and inverted attempts failed)"}}}}catch(t){return{isValid:!1,isInverted:!1,message:t instanceof Error?t.message:"Unknown error occurred during validation"}}}};export{Ot as qrValidatorZxing};