PageSourceSearch

https://doneer.vogelbescherming.be/themes/default/js/country-numbe…?hash=219ff0fdc744dcfa0e847ae1e26ed2a9

js vogelbescherming.be collected 2026-10-02 02:58:07 UTC 304,069 bytes, 1,448 lines download raw bytes

1(function(){'use strict';class ValidationError extends Error{constructor(msg){super(msg);this.name="ValidationError";}}
2class InvalidFormat extends ValidationError{constructor(msg="The number has an invalid format."){super(msg);this.name="InvalidFormat";}}
3class InvalidChecksum extends ValidationError{constructor(msg="The number checksum or check digit is invalid."){super(msg);this.name="InvalidChecksum";}}
4class InvalidLength extends ValidationError{constructor(msg="The number has an invalid length."){super(msg);this.name="InvalidLength";}}
5class InvalidComponent extends ValidationError{constructor(msg="One of the parts of the number are invalid or unknown."){super(msg);this.name="InvalidComponent";}}
6const alphanumericRE=/^[A-Za-z0-9]+$/;const digitRE=/^[0-9]+$/;const alphaRE=/^[A-Za-z]+$/;function isalphanumeric(value){return alphanumericRE.test(value);}
7function isdigits(value){return digitRE.test(value);}
8function isalpha(value){return alphaRE.test(value);}
9const mapped={"-":"-","­":"-","¯":"-","˗":"-","֊":"-","־":"-","᠊":"-","‐":"-","‑":"-","‒":"-","–":"-","—":"-","―":"-","‾":"-","⁃":"-","⁻":"-","₋":"-","−":"-","⎯":"-","⎺":"-","⎻":"-","⎼":"-","⎽":"-","⏤":"-","-":"-","﹣":"-"," ̄":"-","*":"*","٭":"*","܍":"*","⁕":"*","꘎":"*","∗":"*","⋆":"*","⁎":"*","✱":"*","✲":"*","✳":"*","✺":"*","✻":"*","✼":"*","✽":"*","❃":"*","❉":"*","❊":"*","❋":"*","﹡":"*","*":"*",",":",","¸":",","،":",","٫":",","٬":",","‚":",","′":",","⸴":",","、":",",",":",","︑":",","﹐":",","﹑":",","、":",",".":".","·":".","˙":".","·":".","۔":".","܁":".","܂":".","࠰":".","་":".","༌":".","ᐧ":".","᛫":".","∙":".","•":".","․":".","‧":".","⋅":".","⸱":".","⸳":".","。":".","・":".","﹒":".",".":".","・":".","﮲":".","﮳":".","𐄁":".","𐤟":".","𐩐":".","/":"/","⁄":"/","∕":"/","⧸":"/","/":"/","࠼":"/","⟋":"/",":":":","፡":":","᛬":":","᠄":":","︓":":","︰":":",":":":","﹕":":"," ":" ","	":" ","\v":" ","\f":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" ","\u2028":" ","\u2029":" "," ":" "," ":" "," ":" ","'":"'","`":"'","´":"'","ʾ":"'","ʿ":"'","ʹ":"'","ʻ":"'","ʼ":"'","ˈ":"'","̀":"'","́":"'","̒":"'","̓":"'","՚":"'","‛":"'","‘":"'","’":"'","0":"0","٠":"0","۰":"0","0":"0","𝟎":"0","𝟘":"0","𝟢":"0","𝟬":"0","𝟶":"0","1":"1","١":"1","۱":"1","1":"1","𝟏":"1","𝟙":"1","𝟣":"1","𝟭":"1","𝟷":"1","2":"2","۲":"2","٢":"2","2":"2","𝟐":"2","𝟚":"2","𝟤":"2","𝟮":"2","𝟸":"2","3":"3","۳":"3","٣":"3","3":"3","𝟑":"3","𝟛":"3","𝟥":"3","𝟯":"3","𝟹":"3","4":"4","۴":"4","٤":"4","4":"4","𝟒":"4","𝟜":"4","𝟦":"4","𝟰":"4","𝟺":"4","5":"5","۵":"5","٥":"5","5":"5","𝟓":"5","𝟝":"5","𝟧":"5","𝟱":"5","𝟻":"5","6":"6","۶":"6","٦":"6","6":"6","𝟔":"6","𝟞":"6","𝟨":"6","𝟲":"6","𝟼"
9:"6","7":"7","۷":"7","٧":"7","7":"7","𝟕":"7","𝟟":"7","𝟩":"7","𝟳":"7","𝟽":"7","8":"8","۸":"8","٨":"8","8":"8","𝟖":"8","𝟠":"8","𝟪":"8","𝟴":"8","𝟾":"8","9":"9","۹":"9","٩":"9","9":"9","𝟗":"9","𝟡":"9","𝟫":"9","𝟵":"9","𝟿":"9"};function cleanUnicode(value,deletechars=" ",stripPrefix){if(typeof value!=="string"){return["",new InvalidFormat()];}
10const cleaned=[...value].map((c)=>{var _a;return(_a=mapped[c])!==null&&_a!==void 0?_a:c;}).filter((c)=>!deletechars.includes(c)).join("").toLocaleUpperCase();if(stripPrefix&&stripPrefix.length!==0){let prefix;if(Array.isArray(stripPrefix)){prefix=stripPrefix.find((p)=>cleaned.startsWith(p));}else if(cleaned.startsWith(stripPrefix)){prefix=stripPrefix;}
11if(prefix!==void 0){return[cleaned.substring(prefix.length),null];}}
12return[cleaned,null];}
13function splitAt(value,...points){const parts=[0,...points].map((p,idx)=>{const nvalue=idx>=points.length?value.length:points[idx];const np=nvalue<0?value.length+nvalue:nvalue;const pp=p<0?value.length+p:p;return value.substr(pp,np-pp);});return parts.filter((v)=>v.length!==0);}
14function sumAllDigits(value){let localValue=value;let sum=0;while(localValue){sum+=localValue%10;localValue=Math.floor(localValue/10);}
15return sum;}
16function weightedSum(value,{alphabet:alphabet2="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",reverse=false,weights:weights2=[1],modulus=0,sumByDigit=false}){const wlen=weights2.length;const numbers=value.split("").map((v)=>alphabet2.indexOf(v));const weighted=(reverse?numbers.reverse():numbers).map((v,idx)=>v*weights2[idx%wlen]);return weighted.reduce((acc,v)=>{let vv=v;while(vv<0){vv+=modulus;}
17if(sumByDigit&&vv>9){return(acc+sumAllDigits(vv))%modulus;}
18return(acc+vv)%modulus;},0);}
19function luhnChecksumValidate(value,alphabet2="0123456789"){const parity=value.length%2;const sum=value.split("").map((v)=>alphabet2.indexOf(v)).reduce((acc,val,idx)=>{let v=val;if(idx%2===parity){v=val*2;if(v>9){v-=9;}}
20return acc+v;},0);return sum%10===0;}
21function luhnChecksumValue(value,alphabet2="0123456789"){const alen=alphabet2.length;return value.split("").reverse().map((v)=>alphabet2.indexOf(v)).reduce((acc,v,idx)=>{if(idx%2===0){return(acc+v)%alen;}
22return(acc+Math.floor(v*2/alen)+v*2%alen)%alen;});}
23function luhnChecksumDigit(value,alphabet2="0123456789"){const cs=luhnChecksumValue(`${value}${alphabet2[0]}`);return alphabet2[(alphabet2.length-cs)%alphabet2.length];}
24const verhoeffD=[[0,1,2,3,4,5,6,7,8,9],[1,2,3,4,0,6,7,8,9,5],[2,3,4,0,1,7,8,9,5,6],[3,4,0,1,2,8,9,5,6,7],[4,0,1,2,3,9,5,6,7,8],[5,9,8,7,6,0,4,3,2,1],[6,5,9,8,7,1,0,4,3,2],[7,6,5,9,8,2,1,0,4,3],[8,7,6,5,9,3,2,1,0,4],[9,8,7,6,5,4,3,2,1,0]];const verhoeffP=[[0,1,2,3,4,5,6,7,8,9],[1,5,7,6,2,8,3,0,9,4],[5,8,0,3,7,9,6,1,4,2],[8,9,1,6,0,4,3,5,2,7],[9,4,5,3,1,2,6,8,7,0],[4,2,8,6,5,7,3,9,0,1],[2,7,9,3,8,0,6,4,1,5],[7,0,4,6,9,1,3,2,5,8]];function invArray(array){return array.split("").map((v)=>parseInt(v,10)).reverse();}
25function verhoeffValidate(array){const invertedArray=invArray(array);const sum=invertedArray.reduce((c,v,idx)=>verhoeffD[c][verhoeffP[idx%8][v]],0);return sum===0;}
26function modulo(dividentIn,divisor){let divident=dividentIn;const partLength=10;while(divident.length>partLength){const part=divident.substring(0,partLength);divident=parseInt(part,10)%divisor+divident.substring(partLength);}
27return parseInt(divident,10)%divisor;}
28function mod97base10Validate(value,expect=1){const alphabet2="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";let fail=false;const bigValue=value.split("").map((c)=>{const idx=alphabet2.indexOf(c);if(idx===-1){fail=true;return"";}
29return String(idx);}).join("");if(fail){return false;}
30return modulo(bigValue,97)===expect;}
31function mod11mod10Validate(value){const sum=value.split("").map((v)=>parseInt(v,10)).reduce((acc,n)=>((acc===0?10:acc)*2%11+n)%10,5);return sum===1;}
32function validBirthdate(date){if(date===null){return false;}
33const now=new Date();return date.getTime()<=now.getTime();}
34function buildDate(yy,mm,dd){const yyN=parseInt(yy,10);const mmN=parseInt(mm,10)-1;const ddN=parseInt(dd,10);if(Number.isNaN(yyN)||Number.isNaN(mmN)||Number.isNaN(ddN)){return null;}
35let d;if(yyN<20){d=new Date(2e3+yyN,mmN,ddN);}else if(yyN<100){d=new Date(1900+yyN,mmN,ddN);}else{d=new Date(yyN,mmN,ddN);}
36if(Number.isNaN(d.getFullYear())){return null;}
37if(d.getDate()!==ddN||d.getMonth()!==mmN){return null;}
38return d;}
39function isValidDate(yy,mm,dd,isBefore=false){const d=buildDate(yy,mm,dd);if(d===null){return false;}
40return isBefore?validBirthdate(d):true;}
41function isValidDateCompactYYMMDD(yymmdd,isBefore=false){const[year,mon,day]=splitAt(yymmdd,2,4);return isValidDate(year,mon,day,isBefore);}
42function isValidDateCompactDDMMYY(ddmmyy,isBefore=false){const[day,mon,year]=splitAt(ddmmyy,2,4);return isValidDate(year,mon,day,isBefore);}
43function isValidDateCompactYYYYMMDD(yyyymmdd,isBefore=false){const[year,mon,day]=splitAt(yyyymmdd,4,6);return isValidDate(year,mon,day,isBefore);}
44function clean$2R(input){return cleanUnicode(input," -.");}
45const impl$2Z={name:"Andorra Tax Register Number",localName:"Número de Registre Tributari",abbreviation:"NRT",compact(input){const[value,err]=clean$2R(input);if(err){throw err;}
46return value.toLocaleUpperCase();},format(input){const[value]=clean$2R(input);return splitAt(value,1,7).join("-");},validate(value){const[v,error]=clean$2R(value);if(error){return{isValid:false,error};}
47if(v.length!==8){return{isValid:false,error:new InvalidLength()};}
48const mid=v.substr(1,v.length-2);if(!isalpha(v[0])||!isalpha(v[v.length-1])){return{isValid:false,error:new InvalidFormat()};}
49if(!isdigits(mid)){return{isValid:false,error:new InvalidFormat()};}
50if(!"ACDEFGLOPU".includes(v[0])){return{isValid:false,error:new InvalidComponent()};}
51if(v[0]==="F"&&mid>"699999"){return{isValid:false,error:new InvalidComponent()};}
52if("AL".includes(v[0])&&mid>"699999"&&mid<"800000"){return{isValid:false,error:new InvalidComponent()};}
53return{isValid:true,compact:v,isIndividual:"FE".includes(v[0]),isCompany:!"FE".includes(v[0])};}};const{name:name$2Y,localName:localName$2Y,abbreviation:abbreviation$2Y,validate:validate$2Z,format:format$2Y,compact:compact$2Y}=impl$2Z;const nrt=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2Y,compact:compact$2Y,format:format$2Y,localName:localName$2Y,name:name$2Y,validate:validate$2Z},Symbol.toStringTag,{value:"Module"}));const AD=Object.freeze(Object.defineProperty({__proto__:null,nrt},Symbol.toStringTag,{value:"Module"}));function clean$2Q(input){let[value,err]=cleanUnicode(input," ");
53if(err){return[value,err];}
54if(value.startsWith("AL")){value=value.substring(2);}else if(value.startsWith("(AL)")){value=value.substring(4);}
55return[value,null];}
56const impl$2Y={name:"Albanian VAT Number",localName:"Numri i Identifikimit për Personin e Tatueshëm",abbreviation:"NIPT",compact(input){const[value,err]=clean$2Q(input);if(err){throw err;}
57return value;},format(input){const[value]=clean$2Q(input);return value;},validate(input){const[value,error]=clean$2Q(input);if(error){return{isValid:false,error};}
58if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
59if(!/^[A-M]\d{8}[A-Z]$/.test(value)){return{isValid:false,error:new InvalidFormat()};}
60const[ccode,ydigit,monthDistrict,day,,check]=splitAt(value,1,2,4,6,9);const month=(parseInt(monthDistrict,10)-1)%12+1;const yearVal=ccode.charCodeAt(0)-65;const year=1900+yearVal*10+parseInt(ydigit,10);if(!isValidDate(String(year),String(month),day)){return{isValid:false,error:new InvalidComponent()};}
61if(!/^[A-Z]$/.test(check)){return{isValid:false,error:new InvalidComponent()};}
62return{isValid:true,compact:value,isIndividual:true,isCompany:true};}};const{name:name$2X,localName:localName$2X,abbreviation:abbreviation$2X,validate:validate$2Y,format:format$2X,compact:compact$2X}=impl$2Y;const nipt=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2X,compact:compact$2X,format:format$2X,localName:localName$2X,name:name$2X,validate:validate$2Y},Symbol.toStringTag,{value:"Module"}));const AL=Object.freeze(Object.defineProperty({__proto__:null,nipt},Symbol.toStringTag,{value:"Module"}));function clean$2P(input){return cleanUnicode(input," -");}
63const impl$2X={name:"Single Banking Code",localName:"Clave Bancaria Uniforme",abbreviation:"CBU",compact(input){const[value,err]=clean$2P(input);if(err){throw err;}
64return value;},format(input){const[value]=clean$2P(input);const[a,b]=splitAt(value,8);return`${a}${b}`;},validate(input){const[value,error]=clean$2P(input);if(error){return{isValid:false,error};}
65if(value.length!==22){return{isValid:false,error:new InvalidLength()};}
66if(!isdigits(value)){return{isValid:false,error:new InvalidComponent()};}
67const[front,c1,back,c2]=splitAt(value,7,8,21);const s1=String(10-weightedSum(front,{reverse:true,weights:[3,1,7,9,3,1,7],modulus:10}));const s2=String(10-weightedSum(back,{reverse:true,weights:[3,1,7,9,3,1,7,9,3,1,7,9,3,1],modulus:10}));if(s1!==c1||s2!==c2){return{isValid:false,error:new InvalidChecksum()};}
68return{isValid:true,compact:value,isIndividual:false,isCompany:false};}};const{name:name$2W,localName:localName$2W,abbreviation:abbreviation$2W,validate:validate$2X,format:format$2W,compact:compact$2W}=impl$2X;const cbu=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2W,compact:compact$2W,format:format$2W,localName:localName$2W,name:name$2W,validate:validate$2X},Symbol.toStringTag,{value:"Module"}));const cuitTypes=["20","23","24","27","30","33","34","50","51","55"];function clean$2O(input){return cleanUnicode(input," -");}
69const impl$2W={name:"Argentinian VAT Number",localName:"Código Único de Identificación Tributaria",abbreviation:"CUIT",compact(input){const[value,err]=clean$2O(input);if(err){throw err;}
70return value;},format(input){const[value]=clean$2O(input);return splitAt(value,2,10).join("-");},validate(input){const[value,error]=clean$2O(input);if(error){return{isValid:false,error};}
71if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
72if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
73const[front,body,check]=splitAt(value,2,10);if(!cuitTypes.includes(front)){return{isValid:false,error:new InvalidComponent()};}
74const cs=weightedSum(front+body,{weights:[5,4,3,2,7,6,5,4,3,2],modulus:11});const digit="012345678990"[11-cs];if(digit!==check){return{isValid:false,error:new InvalidChecksum()};}
75return{isValid:true,compact:value,isIndividual:front[0]==="2",isCompany:front[0]==="3"};}};const{name:name$2V,localName:localName$2V,abbreviation:abbreviation$2V,validate:validate$2W,format:format$2V,compact:compact$2V}=impl$2W;const cuit=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2V,compact:compact$2V,format:format$2V,localName:localName$2V,name:name$2V,validate:validate$2W},Symbol.toStringTag,{value:"Module"}));function clean$2N(input){return cleanUnicode(input," .");}
76const impl$2V={name:"Argentinian National Identity Document",localName:"Documento Nacional de Identidad",abbreviation:"DNI",compact(input){const[value,err]=clean$2N(input);if(err){throw err;}
77return value;},format(input){const[value]=clean$2N(input);return splitAt(value,value.length-6,value.length-3).join(".");},validate(input){const[value,error]=clean$2N(input);if(error){return{isValid:false,error};}
78if(value.length!==7&&value.length!==8){return{isValid:false,error:new InvalidLength()};}
79if(!isdigits(value)){return{isValid:false,error:new InvalidComponent()};}
80return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2U,localName:localName$2U,abbreviation:abbreviation$2U,val
80idate:validate$2V,format:format$2U,compact:compact$2U}=impl$2V;const dni$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2U,compact:compact$2U,format:format$2U,localName:localName$2U,name:name$2U,validate:validate$2V},Symbol.toStringTag,{value:"Module"}));const AR=Object.freeze(Object.defineProperty({__proto__:null,cbu,cuit,dni:dni$1},Symbol.toStringTag,{value:"Module"}));function clean$2M(input){const[value,err]=cleanUnicode(input," -./");if(err){return[value,err];}
81if(value.startsWith("FN")){return[value.substring(2),null];}
82return[value,null];}
83const impl$2U={name:"Austrian Company Register Number",localName:"Company Register Number",compact(input){const[value,err]=clean$2M(input);if(err){throw err;}
84return value;},format(input){const[value]=clean$2M(input);return value;},validate(input){const[value,error]=clean$2M(input);if(error){return{isValid:false,error};}
85if(!/^\d+[A-Z]$/.test(value)){return{isValid:false,error:new InvalidFormat()};}
86return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2T,localName:localName$2T,abbreviation:abbreviation$2T,validate:validate$2U,format:format$2T,compact:compact$2T}=impl$2U;const businessid=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2T,compact:compact$2T,format:format$2T,localName:localName$2T,name:name$2T,validate:validate$2U},Symbol.toStringTag,{value:"Module"}));const faOffices={"03":{office:"Wien 3/6/7/11/15 Schwechat Gerasdorf",region:"Wien"},"04":{office:"Wien 4/5/10",region:"Wien"},"06":{office:"Wien 8/16/17",region:"Wien"},"07":{office:"Wien 9/18/19 Klosterneuburg",region:"Wien"},"08":{office:"Wien 12/13/14 Purkersdorf",region:"Wien"},"09":{office:"Wien 1/23",region:"Wien"},"10":{office:"für Gebühren, Verkehrsteuern und Glücksspiel",region:""},"12":{office:"Wien 2/20/21/22",region:"Wien"}
86,"15":{office:"Amstetten Melk Scheibbs",region:"Niederösterreich"},"16":{office:"Baden Mödling",region:"Niederösterreich"},"18":{office:"Gänserndorf Mistelbach",region:"Niederösterreich"},"22":{office:"Hollabrunn Korneuburg Tulln",region:"Niederösterreich"},"23":{office:"Waldviertel",region:"Niederösterreich"},"29":{office:"Lilienfeld St. Pölten",region:"Niederösterreich"},"33":{office:"Neunkirchen Wr. Neustadt",region:"Niederösterreich"},"38":{office:"Bruck Eisenstadt Oberwart",region:"Burgenland, Niederösterreich"},"41":{office:"Braunau Ried Schärding",region:"Oberösterreich"},"46":{office:"Linz",region:"Oberösterreich"},"51":{office:"Kirchdorf Perg Steyr",region:"Oberösterreich"},"52":{office:"Freistadt Rohrbach Urfahr",region:"Oberösterreich"},"53":{office:"Gmunden Vöcklabruck",region:"Oberösterreich"},"54":{office:"Grieskirchen Wels",region:"Oberösterreich"},"57":{office:"Klagenfurt",region:"Kärnten"},"59":{office:"St. Veit Wolfsberg",region:"Kärnten"},"61":{office:"Spittal Villach",region:"Kärnten"},"65":{office:"Bruck Leoben Mürzzuschlag",region:"Steiermark"},"67":{office:"Oststeiermark",region:"Steiermark"},"68":{office:"Graz-Stadt",region:"Steiermark"},"69":{office:"Graz-Umgebung",region:"Steiermark"},"71":{office:"Judenburg Liezen",region:"Steiermark"},"72":{office:"Deutschlandsberg Leibnitz Voitsberg",region:"Steiermark"},"81":{office:"Innsbruck",region:"Tirol"},"82":{office:"Kitzbühel Lienz",region:"Tirol"},"83":{office:"Kufstein Schwaz",region:"Tirol"},"84":{office:"Landeck Reutte",region:"Tirol"},"90":{office:"St. Johann Tamsweg Zell am See",region:"Salzburg"},"91":{office:"Salzburg-Stadt",region:"Salzburg"},"93":{office:"Salzburg-Land",region:"Salzburg"},"97":{office:"Bregenz",region:"Vorarlberg"},"98":{office:"Feldkirch",region:"Vorarlberg"}};function clean$2L(input){return cleanUnicode(input," -./,");}
87const impl$2T={name:"Austrian Tax Identification Number",localName:"Abgabenkontonummer",abbreviation:"TIN",compact(input){const[value,err]=clean$2L(input);if(err){throw err;}
88return value;},format(input){const[value]=clean$2L(input);const[a,b,c]=splitAt(value,2,5);return`${a}-${b}/${c}`;},validate(input){const[value,error]=clean$2L(input);if(error){return{isValid:false,error};}
89if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
90if(!isdigits(value)){return{isValid:false,error:new InvalidComponent()};}
91const[office,front,check]=splitAt(value,2,8);if(faOffices[office]===void 0){return{isValid:false,error:new InvalidComponent()};}
92const sum=`${office}${front}`.split("").map((x)=>parseInt(x,10)).reduce((acc,digit2,idx)=>acc+(idx%2===1?[0,2,4,6,8,1,3,5,7,9][digit2]:digit2),0);const digit=String((10-sum%10)%10);if(check!==digit){return{isValid:false,error:new InvalidChecksum()};}
93return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2S,localName:localName$2S,abbreviation:abbreviation$2S,validate:validate$2T,format:format$2S,compact:compact$2S}=impl$2T;const tin$5=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2S,compact:compact$2S,format:format$2S,localName:localName$2S,name:name$2S,validate:validate$2T},Symbol.toStringTag,{value:"Module"}));function clean$2K(input){const[value,err]=cleanUnicode(input," -./");if(err){return[value,err];}
94if(value.startsWith("AT")){return[value.substr(2),null];}
95return[value,null];}
96const impl$2S={name:"Austrian VAT Number",localName:"Umsatzsteuer-Identifikationsnummer",abbreviation:"UID",compact(input){const[value,err]=clean$2K(input);if(err){throw err;}
97return value;},format(input){const[value]=clean$2K(input);return value;},validate(input){const[value,error]=clean$2K(input);if(error){return{isValid:false,error};}
98if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
99if(!value.startsWith("U")||!isdigits(value.substr(1))){return{isValid:false,error:new InvalidComponent()};}
100const[,front,check]=splitAt(value,1,8);const digit=String((16-luhnChecksumValue(front))%10);if(check!==digit){return{isValid:false,error:new InvalidChecksum()};}
101return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2R,localName:localName$2R,abbreviation:abbreviation$2R,validate:validate$2S,format:format$2R,compact:compact$2R}=impl$2S;const uid$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2R,compact:compact$2R,format:format$2R,localName:localName$2R,name:name$2R,validate:validate$2S},Symbol.toStringTag,{value:"Module"}));function clean$2J(input){return cleanUnicode(input," -");}
102const impl$2R={name:"Austrian Social Security Number",localName:"Versicherungsnummer",abbreviation:"VSNR",compact(input){const[value,err]=clean$2J(input);if(err){throw err;}
103return value;},format(input){const[value]=clean$2J(input);return splitAt(value,4).join(" ");},validate(input){const[value,error]=clean$2J(input);if(error){return{isValid:false,error};}
104if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
105if(!isdigits(value)){return{isValid:false,error:new InvalidComponent()};}
106const[front,check,dob]=splitAt(value,3,4);if(!isValidDateCompactDDMMYY(dob,true)){return{isValid:false,error:new InvalidComponent()};}
107const sum=weightedSum(`${front}${dob}`,{weights:[3,7,9,5,8,4,2,1,6],modulus:11});const digit=String(sum%11);if(check!==digit){return{isValid:false,error:new InvalidChecksum()};}
108return{isValid:true,compact:value,isIndividual:parseInt(front,10)<8e7,isCompany:front.length===8&&parseInt(front,10)>8e7};}}
108;const{name:name$2Q,localName:localName$2Q,abbreviation:abbreviation$2Q,validate:validate$2R,format:format$2Q,compact:compact$2Q}=impl$2R;const vnr=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2Q,compact:compact$2Q,format:format$2Q,localName:localName$2Q,name:name$2Q,validate:validate$2R},Symbol.toStringTag,{value:"Module"}));const AT=Object.freeze(Object.defineProperty({__proto__:null,businessid,tin:tin$5,uid:uid$1,vnr},Symbol.toStringTag,{value:"Module"}));function clean$2I(input){return cleanUnicode(input," ");}
109const impl$2Q={name:"Australian Business Number",localName:"Business Number",abbreviation:"ABN",compact(input){const[value,err]=clean$2I(input);if(err){throw err;}
110return value;},format(input){const[value]=clean$2I(input);return splitAt(value,2,5,8).join(" ");},validate(input){const[value,error]=clean$2I(input);if(error){return{isValid:false,error};}
111if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
112if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
113const[check,rest]=splitAt(value,2);const sum=weightedSum(rest,{weights:[3,5,7,9,11,13,15,17,19],modulus:89});if(check!==String(11+(177-sum)%89)){return{isValid:false,error:new InvalidChecksum()};}
114return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2P,localName:localName$2P,abbreviation:abbreviation$2P,validate:validate$2Q,format:format$2P,compact:compact$2P}=impl$2Q;const abn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2P,compact:compact$2P,format:format$2P,localName:localName$2P,name:name$2P,validate:validate$2Q},Symbol.toStringTag,{value:"Module"}));function clean$2H(input){return cleanUnicode(input," ");}
115const impl$2P={name:"Australian Company Number",localName:"Company Number",abbreviation:"ACN",compact(input){const[value,err]=clean$2H(input);if(err){throw err;}
116return value;},format(input){const[value]=clean$2H(input);return splitAt(value,3,6).join(" ");},validate(input){const[value,error]=clean$2H(input);if(error){return{isValid:false,error};}
117if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
118if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
119const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{weights:[-8,-7,-6,-5,-4,-3,-2,-1],modulus:10});if(String(sum)!==check){return{isValid:false,error:new InvalidChecksum()};}
120return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2O,localName:localName$2O,abbreviation:abbreviation$2O,validate:validate$2P,format:format$2O,compact:compact$2O}=impl$2P;const acn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2O,compact:compact$2O,format:format$2O,localName:localName$2O,name:name$2O,validate:validate$2P},Symbol.toStringTag,{value:"Module"}));function clean$2G(input){return cleanUnicode(input," ");}
121const impl$2O={name:"Australian Tax File Number",localName:"Tax File Number",abbreviation:"TFN",compact(input){const[value,err]=clean$2G(input);if(err){throw err;}
122return value;},format(input){const[value]=clean$2G(input);return splitAt(value,3,6).join(" ");},validate(input){const[value,error]=clean$2G(input);if(error){return{isValid:false,error};}
123if(value.length!==8&&value.length!==9){return{isValid:false,error:new InvalidLength()};}
124if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
125const sum=weightedSum(value,{modulus:11,weights:[1,4,3,7,5,8,6,9,10]});if(sum!==0){return{isValid:false,error:new InvalidChecksum()};}
126return{isValid:true,compact:value,isIndividual:true,isCompany:true};}};const{name:name$2N,localName:localName$2N,abbreviation:abbreviation$2N,validate:validate$2O,format:format$2N,compact:compact$2N}=impl$2O;const tfn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2N,compact:compact$2N,format:format$2N,localName:localName$2N,name:name$2N,validate:validate$2O},Symbol.toStringTag,{value:"Module"}));const AU=Object.freeze(Object.defineProperty({__proto__:null,abn,acn,tfn},Symbol.toStringTag,{value:"Module"}));function clean$2F(input){return cleanUnicode(input," ");}
127const impl$2N={name:"Azerbaijani Personal Identification Number",localName:"Fərdi İdentifikasiya Nömrəsidir",abbreviation:"PIN",compact(input){const[value,err]=clean$2F(input);if(err){throw err;}
128return value;},format(input){const[value]=clean$2F(input);return value;},validate(input){const[value,error]=clean$2F(input);if(error){return{isValid:false,error};}
129if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
130if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
131return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2M,localName:localName$2M,abbreviation:abbreviation$2M,validate:validate$2N,format:format$2M,compact:compact$2M}=impl$2N;const pin$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2M,compact:compact$2M,format:format$2M,localName:localName$2M,name:name$2M,validate:validate$2N},Symbol.toStringTag,{value:"Module"}));function clean$2E(input){return cleanUnicode(input," -");}
132const impl$2M={name:"Azerbaijani Tax Identification Number",localName:"Vergi Identifikasiya Nömrəsi",abbreviation:"VÖEN",compact(input){const[value,err]=clean$2E(input);if(err){throw err;}
133return value;},format(input){const[value]=clean$2E(input);return value;},validate(input){const[value,error]=clean$2E(input);if(error){return{isValid:false,error};}
134if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
135const last=value[9];if(!["1","2"].includes(last)){return{isValid:false,error:new InvalidFormat()};}
136return{isValid:true,compact:value,isIndividual:last==="2",isCompany:last==="1"};}};const{name:name$2L,localName:localName$2L,abbreviation:abbreviation$2L,validate:validate$2M,format:format$2L,compact:compact$2L}=impl$2M;const tin$4=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2L,c
136ompact:compact$2L,format:format$2L,localName:localName$2L,name:name$2L,validate:validate$2M},Symbol.toStringTag,{value:"Module"}));const AZ=Object.freeze(Object.defineProperty({__proto__:null,pin:pin$1,tin:tin$4},Symbol.toStringTag,{value:"Module"}));function clean$2D(input){return cleanUnicode(input," -");}
137const impl$2L={name:"Bosnia Unique Master Citizen Number",localName:"Jedinstveni matični broj građana",abbreviation:"JMBG",compact(input){const[value,err]=clean$2D(input);if(err){throw err;}
138return value;},format(input){const[value]=clean$2D(input);return value;},validate(input){const[value,error]=clean$2D(input);if(error){return{isValid:false,error};}
139if(value.length!==13){return{isValid:false,error:new InvalidLength()};}
140if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
141const[dd,mm,yyy]=splitAt(value,2,4,7);const yyyy=`${parseInt(yyy,10)<800?"2":"1"}${yyy}`;if(!isValidDate(yyyy,mm,dd,true)){return{isValid:false,error:new InvalidComponent()};}
142const[front,check]=splitAt(value,12);const sum=11-weightedSum(front,{modulus:11,weights:[7,6,5,4,3,2,7,6,5,4,3,2]});if(String(sum%11%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
143return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2K,localName:localName$2K,abbreviation:abbreviation$2K,validate:validate$2L,format:format$2K,compact:compact$2K}=impl$2L;const jmbg$4=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2K,compact:compact$2K,format:format$2K,localName:localName$2K,name:name$2K,validate:validate$2L},Symbol.toStringTag,{value:"Module"}));const BA=Object.freeze(Object.defineProperty({__proto__:null,jmbg:jmbg$4},Symbol.toStringTag,{value:"Module"}));function getApproximatelyNow(){const ONE_DAY=1e3*60*60*24;return new Date(Date.now()+ONE_DAY);}
144function isInPast(date){return new Date(String(date))<=getApproximatelyNow();}
145function getFullYears(yy){const yval=typeof yy==="string"?parseInt(yy,10):yy;return[1900+yval,2e3+yval];}
146function getFirstSix(number){return splitAt(number,6)[0];}
147function getBaseNumber(number){return splitAt(number,9)[0];}
148function getChecksum(number){const checksumString=splitAt(number,9)[1];return parseInt(checksumString,10);}
149function toDateArray(number){const[yy,mm,dd]=splitAt(number,2,4,6);return[yy,mm,dd];}
150function getValidPastDates(yymmdd){const[yy,mm,dd]=toDateArray(yymmdd);return getFullYears(yy).filter((yyyy)=>isValidDateCompactYYYYMMDD(`${yyyy}${mm}${dd}`)).map((yyyy)=>`${yyyy}-${mm}-${dd}`).filter(isInPast);}
151function isUnknownDob(dob){if(["000001","002001","004001"].includes(dob)){return true;}
152const[yy,mm,dd]=toDateArray(dob);return isdigits(yy)&&mm==="00"&&isdigits(dd);}
153function toChecksumBasis(year,baseNumber){return parseInt(year<2e3?baseNumber:`${2}${baseNumber}`,10);}
154function isValidDob(dob){return Boolean(getValidPastDates(dob).length);}
155function defaultToDob(origFirstSix){return origFirstSix;}
156function isValidFirstSix(firstSix,toDob2){const dob=toDob2(firstSix);return isUnknownDob(dob)||isValidDob(dob);}
157function validStructure(number,toDob2=defaultToDob){const firstSix=getFirstSix(number);return isValidFirstSix(firstSix,toDob2);}
158function getChecksumBasesUnknownDob(baseNumber){const firstSix=getFirstSix(baseNumber);const[yy]=toDateArray(firstSix);return getFullYears(yy).filter(isInPast).map((year)=>toChecksumBasis(year,baseNumber));}
159function getChecksumBasesForStandardDob(baseNumber,toDob2){const firstSix=getFirstSix(baseNumber);const dob=toDob2(firstSix);const validPastDates=getValidPastDates(dob);const extractYearFromDate=(date)=>parseInt(date.split("-")[0],10);const validPastYears=validPastDates.map(extractYearFromDate);return validPastYears.map((year)=>toChecksumBasis(year,baseNumber));}
160function getChecksumBases(number,toDob2){const firstSix=getFirstSix(number);const dob=toDob2(firstSix);const baseNumber=getBaseNumber(number);if(isUnknownDob(dob))
161return getChecksumBasesUnknownDob(baseNumber);return getChecksumBasesForStandardDob(baseNumber,toDob2);}
162function isValidChecksumPair(checksumBasis,checksum2){return!((checksumBasis+checksum2)%97);}
163function validChecksum(number,toDob2=defaultToDob){const checksumBases=getChecksumBases(number,toDob2);const checksum2=getChecksum(number);return checksumBases.some((csb)=>isValidChecksumPair(csb,checksum2));}
164function clean$2C(input){return cleanUnicode(input," -.");}
165function toDob(firstSix){const[y,m,d]=toDateArray(firstSix).map((s)=>parseInt(s,10));const adjustedDateArrays=[[y,m-20,d],[y,m-40,d]];const dobArray=adjustedDateArrays.find((ada)=>ada[1]>=0&&ada[1]<=12)||[];return dobArray.map((n)=>`${n}`.padStart(2,"0")).join("");}
166const impl$2K={name:"Belgian Number for Foreigners",localName:"Numéro BIS",abbreviation:"BIS",compact(input){const[value,err]=clean$2C(input);if(err){throw err;}
167return value;},format(input){const[value]=clean$2C(input);return value;},validate(input){const number=impl$2K.compact(input);if(!isdigits(number)||parseInt(number,10)<=0){return{isValid:false,error:new InvalidFormat()};}
168if(number.length!==11){return{isValid:false,error:new InvalidLength()};}
169if(!validStructure(number,toDob)){return{isValid:false,error:new InvalidFormat()};}
170if(!validChecksum(number,toDob)){return{isValid:false,error:new InvalidChecksum()};}
171return{isValid:true,compact:number,isIndividual:true,isCompany:false};}};const{name:name$2J,localName:localName$2J,abbreviation:abbreviation$2J,validate:validate$2K,format:format$2J,compact:compact$2J}=impl$2K;const bis=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2J,compact:compact$2J,format:format$2J,localName:localName$2J,name:name$2J,validate:validate$2K},Symbol.toStringTag,{value:"Module"}));function clean$2B(input){return cleanUnicode(input," -.");}
172const impl$2J={name:"Belgian National Number",localName:"Numéro National",abbreviation:"NN, RN",compact(input){const[value,err]=clean$2B(input);if(err){throw err;}
173return value;},format(input){const[value]=clean$2B(input);return value;},validate(input){const value=impl$2J.compact(input);if(!isdigits(value)||parseInt(value,10)<=0){return{isValid:false,error:new InvalidFormat()};}
174if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
175if(!validStructure(value)){return{isValid:false,error:new InvalidFormat()};}
176if(!validChecksum(value)){return{isValid:false,error:new InvalidChecksum()};}
177return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2I,localName:localName$2I,abbreviation:abbreviation$2I,validate:validate$2J,format:format$2I,compact:compact$2I}=impl$2J;const nn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2I,compact:compact$2I,format:format$2I,localName:localName$2I,name:name$2I,validate:validate$2J},Symbol.toStringTag,{value:"Module"}));function clean$2A(input){return cleanUnicode(input," -.");}
178const impl$2I={name:"Belgian Social Security Identification Number",localName:"Identificatienummer van de Sociale Zekerhe
178id",abbreviation:"INSZ, NISS",compact(input){const[value,err]=clean$2A(input);if(err){throw err;}
179return value;},format(input){const[value]=clean$2A(input);return value;},validate(input){const results=[validate$2J(input),validate$2K(input)];const validResult=results.find((r)=>r.isValid);if(validResult)
180return validResult;const checksumErrorResult=results.find((r)=>r.error&&r.error.name==="InvalidChecksum");return checksumErrorResult||results[0];}};const{name:name$2H,localName:localName$2H,abbreviation:abbreviation$2H,validate:validate$2I,format:format$2H,compact:compact$2H}=impl$2I;const insz=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2H,compact:compact$2H,format:format$2H,localName:localName$2H,name:name$2H,validate:validate$2I},Symbol.toStringTag,{value:"Module"}));function clean$2z(input){let[value,err]=cleanUnicode(input," -.");if(err!==null){return[value,err];}
181if(value.startsWith("BE")){value=value.substr(2);}
182if(value.startsWith("(0)")){value=`0${value.substr(3)}`;}
183if(value.length===9){value=`0${value}`;}
184return[value,null];}
185const impl$2H={name:"Belgian VAT Number",localName:"Ondernemingsnummer",abbreviation:"BTW, NWSt",compact(input){const[value,err]=clean$2z(input);if(err){throw err;}
186return value;},format(input){const[value]=clean$2z(input);return value;},validate(input){const[value,error]=clean$2z(input);if(error){return{isValid:false,error};}
187if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
188if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
189const[front,sum]=splitAt(value,-2);if(97-parseInt(front,10)%97!==parseInt(sum,10)){return{isValid:false,error:new InvalidChecksum()};}
190return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2G,localName:localName$2G,abbreviation:abbreviation$2G,validate:validate$2H,format:format$2G,compact:compact$2G}=impl$2H;const vat$9=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2G,compact:compact$2G,format:format$2G,localName:localName$2G,name:name$2G,validate:validate$2H},Symbol.toStringTag,{value:"Module"}));const BE=Object.freeze(Object.defineProperty({__proto__:null,bis,insz,nn,vat:vat$9},Symbol.toStringTag,{value:"Module"}));function clean$2y(input){return cleanUnicode(input," -.");}
191const impl$2G={name:"Bulgarian Personal Identity Codes",localName:"Единен граждански номер",abbreviation:"ЕГН (EGN)",compact(input){const[value,err]=clean$2y(input);if(err){throw err;}
192return value;},format(input){const[value]=clean$2y(input);return value;},validate(input){const[value,error]=clean$2y(input);if(error){return{isValid:false,error};}
193if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
194if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
195const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{modulus:11,weights:[2,4,8,5,10,9,7,3,6]});if(String(sum%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
196return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2F,localName:localName$2F,abbreviation:abbreviation$2F,validate:validate$2G,format:format$2F,compact:compact$2F}=impl$2G;const egn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2F,compact:compact$2F,format:format$2F,localName:localName$2F,name:name$2F,validate:validate$2G},Symbol.toStringTag,{value:"Module"}));function clean$2x(input){return cleanUnicode(input," -.");}
197const impl$2F={name:"Bulgarian Number of a Foreigner",localName:"Личен номер на чужденец",abbreviation:"PNF (ЛНЧ)",compact(input){const[value,err]=clean$2x(input);if(err){throw err;}
198return value;},format(input){const[value]=clean$2x(input);return value;},validate(input){const[value,error]=clean$2x(input);if(error){return{isValid:false,error};}
199if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
200if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
201const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{weights:[21,19,17,13,11,9,7,3,1],modulus:10});if(String(sum)!==check){return{isValid:false,error:new InvalidChecksum()};}
202return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2E,localName:localName$2E,abbreviation:abbreviation$2E,validate:validate$2F,format:format$2E,compact:compact$2E}=impl$2F;const pnf=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2E,compact:compact$2E,format:format$2E,localName:localName$2E,name:name$2E,validate:validate$2F},Symbol.toStringTag,{value:"Module"}));function clean$2w(input){const[value,err]=cleanUnicode(input," -/");if(err!==null){return[value,err];}
203if(value.startsWith("BG")){return[value.substr(2),null];}
204return[value,err];}
205function checkLegal$1(value){const[front,check]=splitAt(value,-1);
205let sum=weightedSum(front,{modulus:11,weights:[1,2,3,4,5,6,7,8]});if(sum===10){sum=weightedSum(front,{modulus:11,weights:[3,4,5,6,7,8,9,10]});}
206return String(sum%10)===check;}
207function checkOther(value){const[front,check]=splitAt(value,-1);const sum=11-weightedSum(front,{modulus:11,weights:[4,3,2,7,6,5,4,3,2]});return String(sum%10)!==check;}
208const impl$2E={name:"Bulgarian VAT Number",localName:"Идентификационен номер по ДДС",abbreviation:"ДДС номер",compact(input){const[value,err]=clean$2w(input);if(err){throw err;}
209return value;},format(input){const[value]=clean$2w(input);return value;},validate(input){const[value,error]=clean$2w(input);if(error){return{isValid:false,error};}
210if(value.length!==9&&value.length!==10){return{isValid:false,error:new InvalidLength()};}
211if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
212if(!["0","1","2","3","9"].includes(value[0])){return{isValid:false,error:new InvalidFormat()};}
213if(value.length===9){if(!checkLegal$1(value)){return{isValid:false,error:new InvalidChecksum()};}}else if(!validate$2G(value).isValid&&!validate$2F(value).isValid&&!checkOther(value)){return{isValid:false,error:new InvalidChecksum()};}
214return{isValid:true,compact:value,isIndividual:value.length===10,isCompany:value.length===9};}};const{name:name$2D,localName:localName$2D,abbreviation:abbreviation$2D,validate:validate$2E,format:format$2D,compact:compact$2D}=impl$2E;const vat$8=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2D,compact:compact$2D,format:format$2D,localName:localName$2D,name:name$2D,validate:validate$2E},Symbol.toStringTag,{value:"Module"}));const BG=Object.freeze(Object.defineProperty({__proto__:null,egn,pnf,vat:vat$8},Symbol.toStringTag,{value:"Module"}));function clean$2v(input){return cleanUnicode(input," -./");}
215function computeDigit$1(input){const mlen=input.length+7;const value=11-input.split("").map((v,idx)=>parseInt(v,10)*((mlen-idx)%8+2)).reduce((acc,v)=>acc+v)%11;return value>9?0:value;}
216const impl$2D={name:"Brazilian Company Identifier",localName:"Cadastro Nacional da Pessoa Jurídica",abbreviation:"CNPJ",compact(input){const[value,err]=clean$2v(input);if(err){throw err;}
217return value;},format(input){const[value]=clean$2v(input);const[a,b,c,d,e]=splitAt(value,2,5,8,12);return`${a}.${b}.${c}/${d}-${e}`;},validate(input){const[value,error]=clean$2v(input);if(error){return{isValid:false,error};}
218if(value.length!==14){return{isValid:false,error:new InvalidLength()};}
219if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
220const[front,c1,c2]=splitAt(value,12,13);const d1=String(computeDigit$1(front));const d2=String(computeDigit$1(value.substr(0,13)));if(d1!==c1||d2!==c2){return{isValid:false,error:new InvalidChecksum()};}
221return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2C,localName:localName$2C,abbreviation:abbreviation$2C,validate:validate$2D,format:format$2C,compact:compact$2C}=impl$2D;const cnpj=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2C,compact:compact$2C,format:format$2C,localName:localName$2C,name:name$2C,validate:validate$2D},Symbol.toStringTag,{value:"Module"}));function clean$2u(input){return cleanUnicode(input," -.");}
222function computeDigit(input){const mlen=input.length+1;const value=input.split("").map((v,idx)=>parseInt(v,10)*(mlen-idx)).reduce((acc,v)=>(acc+v)%11);return value<2?0:11-value;}
223const impl$2C={name:"Brazilian National Identifier",localName:"Cadastro de Pessoas Físicas",abbreviation:"CPF",compact(input){const[value,err]=clean$2u(input);if(err){throw err;}
224return value;},format(input){const[value]=clean$2u(input);const[a,b,c,d]=splitAt(value,3,6,input.length-2);return`${a}.${b}.${c}-${d}`;},validate(input){const[value,error]=clean$2u(input);if(error){return{isValid:false,error};}
225if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
226if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
227const[front,c1,c2]=splitAt(value,9,10);const d1=String(computeDigit(front));const d2=String(computeDigit(value.substr(0,10)));if(d1!==c1||d2!==c2){return{isValid:false,error:new InvalidChecksum()};}
228return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2B,localName:localName$2B,abbreviation:abbreviation$2B,validate:validate$2C,format:format$2B,compact:compact$2B}=impl$2C;const cpf$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2B,compact:compact$2B,format:format$2B,localName:localName$2B,name:name$2B,validate:validate$2C},Symbol.toStringTag,{value:"Module"}));const BR=Object.freeze(Object.defineProperty({__proto__:null,cnpj,cpf:cpf$1},Symbol.toStringTag,{value:"Module"}));const PREFIX=["УНП","УНП","UNP","UNP"];
228const alphabet$5="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";function clean$2t(input){const[value,err]=cleanUnicode(input," -/");if(err!==null){return[value,err];}
229const v2=PREFIX.reduce((acc,p)=>acc||(!value.startsWith(p)?acc:value.substr(p.length)),null);return[v2!==null&&v2!==void 0?v2:value,null];}
230const impl$2B={name:"Belarus VAT Number",localName:"Учетный номер плательщика",abbreviation:"УНП (UNP)",compact(input){const[value,err]=clean$2t(input);if(err){throw err;}
231return value;},format(input){const[value]=clean$2t(input);return value;},validate(input){const[value,error]=clean$2t(input);if(error){return{isValid:false,error};}
232if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
233if(!isdigits(value.substr(2))){return{isValid:false,error:new InvalidFormat()};}
234if(!isdigits(value[0])&&!"1234567ABCEHKM".includes(value[0])){return{isValid:false,error:new InvalidFormat()};}
235if(!isdigits(value[1])&&!"ABCEHKMOPT".includes(value[1])){return{isValid:false,error:new InvalidFormat()};}
236const[front,check]=splitAt(value,-1);let frontClean=front;if(!isdigits(front.substr(0,2))){const vv=String("ABCEHKMOPT".indexOf(front[1]));frontClean=`${front[0]}${vv}${front.substr(2)}`;}
237const sum=weightedSum(frontClean,{modulus:11,weights:[29,23,19,17,13,7,5,3],alphabet:alphabet$5});if(sum===10||String(sum)!==check){return{isValid:false,error:new InvalidChecksum()};}
238return{isValid:true,compact:value,isIndividual:true,isCompany:true};}};const{name:name$2A,localName:localName$2A,abbreviation:abbreviation$2A,validate:validate$2B,format:format$2A,compact:compact$2A}=impl$2B;const unp=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2A,compact:compact$2A,format:format$2A,localName:localName$2A,name:name$2A,validate:validate$2B},Symbol.toStringTag,{value:"Module"}));const BY=Object.freeze(Object.defineProperty({__proto__:null,unp},Symbol.toStringTag,{value:"Module"}));function clean$2s(input){return cleanUnicode(input," -");}
239const impl$2A={name:"Belize Tax Identification Number",localName:"Tax Identification Number",abbreviation:"TIN",compact(input){const[value,err]=clean$2s(input);if(err){throw err;}
240return value;},format(input){const[value]=clean$2s(input);return splitAt(value,6).join("-");},validate(input){const[value,error]=clean$2s(input);if(error){return{isValid:false,error};}
241if(value.length!==6&&value.length!==8){return{isValid:false,error:new InvalidLength()};}
242if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
243const[,code]=splitAt(value,6);if(code&&!["10","13","66"].includes(code)){return{isValid:false,error:new InvalidComponent()};}
244return{isValid:true,compact:value,isIndividual:code==="10",isCompany:code==="13"||code==="66"};}};const{name:name$2z,localName:localName$2z,abbreviation:abbreviation$2z,validate:validate$2A,format:format$2z,compact:compact$2z}=impl$2A;const tin$3=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2z,compact:compact$2z,format:format$2z,localName:localName$2z,name:name$2z,validate:validate$2A},Symbol.toStringTag,{value:"Module"}));const BZ=Object.freeze(Object.defineProperty({__proto__:null,tin:tin$3},Symbol.toStringTag,{value:"Module"}));function clean$2r(input){return cleanUnicode(input," -");}
245const impl$2z={name:"Canadian Business Number",localName:"Business Number",abbreviation:"BN",compact(input){const[value,err]=clean$2r(input);if(err){throw err;}
246return value;},format(input){const[value]=clean$2r(input);if(value.length===15){return splitAt(value,5,9,11).join(" ");}
247return splitAt(value,5).join(" ");},validate(input){const[value,error]=clean$2r(input);if(error){return{isValid:false,error};}
248if(value.length!==9&&value.length!==15){return{isValid:false,error:new InvalidLength()};}
249const[front,rest]=splitAt(value,9);if(!isdigits(front)){return{isValid:false,error:new InvalidFormat()};}
250if(!luhnChecksumValidate(front)){return{isValid:false,error:new InvalidChecksum()};}
251if(rest){const[a,b]=splitAt(rest,2);if(!["RC","RM","RP","RT"].includes(a)){return{isValid:false,error:new InvalidComponent()};}
252if(!isdigits(b)){return{isValid:false,error:new InvalidFormat()};}}
253return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2y,localName:localName$2y,abbreviation:abbreviation$2y,validate:validate$2z,format:format$2y,compact:compact$2y}=impl$2z;const bn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2y,compact:compact$2y,format:format$2y,localName:localName$2y,name:name$2y,validate:validate$2z},Symbol.toStringTag,{value:"Module"}));function clean$2q(input){return cleanUnicode(input," -");}
254const impl$2y={name:"Canadian Social Insurance Number",localName:"Social Insurance Number",abbreviation:"SIN",compact(input){const[value,err]=clean$2q(input);if(err){throw err;}
255return value;},format(input){const[value]=clean$2q(input);return splitAt(value,3,6).join("-");},validate(input){const[value,error]=clean$2q(input);if(error){return{isValid:false,error};}
256if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
257if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
258if(!luhnChecksumValidate(value)){return{isValid:false,error:new InvalidChecksum()};}
259return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2x,localName:localName$2x,abbreviation:abbreviation$2x,validate:validate$2y,format:format$2x,compact:compact$2x}=impl$2y;const sin=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2x,compact:compact$2x,format:format$2x,localName:localName$2x,name:name$2x,validate:validate$2y},Symbol.toStringTag,{value:"Module"}));function clean$2p(input){return cleanUnicode(input," -");}
260const validRe$8=/^\d{9}[A-Z]{2}\d{4}$/i;const impl$2x={name:"Goods and service Tax Number",localName:"Goods and service Tax Number",abbreviation:"GST",compact(input){const[value,err]=clean$2p(input);if(err){throw err;}
261return value;},format(input){const[value]=clean$2p(input);return value;},validate(input){const[value,error]=clean$2p(input);if(error){return{isValid:false,error};}
262if(value.length!==15){return{isValid:false,error:new InvalidLength()};}
263if(!validRe$8.test(value)){return{isValid:false,error:new InvalidFormat()};}
264return validate$2z(value);}};const{name:name$2w,localName:localName$2w,abbreviation:abbreviation$2w,validate:validate$2x,format:format$2w,compact:compact$2w}=impl$2x;const gst=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2w,compact:compact$2w,format:format$2w,localName:localName$2w,name:name$2w,validate:validate$2x},Symbol.toStringTag,{value:"Module"}));function clean$2o(input){return cleanUnicode(input," -");}
265const validRe$7=/^\d{10}[a-z]{2}\d{4}$/i;const impl$2w={name:"Quebec Sales Tax Number",localName:"",abbreviation:"QST",compact(input){const[value,err]=clean$2o(input);if(err){throw err;}
266return value;},format(input){const[value]=clean$2o(input);return value;},validate(input){const[value,error]=clean$2o(input);if(error){return{isValid:false,error};}
267if(value.length!==16){return{isValid:false,error:new InvalidLength()};}
268if(!validRe$7.test(value)){return{isValid:false,error:new InvalidFormat()};}
269const[front,check,,serial]=splitAt(value,9,10,12);if(serial==="0000"){return{isValid:false,error:new InvalidComponent()};}
270const sum=weightedSum(front,{weights:[4,3,2,7,6,5,4,3,2],modulus:11});if(String((11-sum)%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
271return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2v,localName:localName$2v,abbreviation:abbreviation$2v,validate:validate$2w,format:format$2v,compact:compact$2v}=impl$2w;const qst=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2v,compact:compact$2v,format:format$2v,localName:localName$2v,name:name$2v,validate:validate$2w},Symbol.toStringTag,{value:"Module"}));function clean$2n(input){return cleanUnicode(input," -");}
272const validRe$6=/^PST\d{8}$/;const impl$2v={name:"Provincial Sales Tax",localName:"",abbreviation:"PST",compact(input){const[value,err]=clean$2n(input);if(err){throw err;}
273return value;},format(input){const[value]=clean$2n(input);return splitAt(value,3,7).join("-");},validate(input){const[value,error]=clean$2n(input);if(error){return{isValid:false,error};}
274if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
275if(!validRe$6.test(value)){return{isValid:false,error:new InvalidFormat()};}
276return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2u,localName:localName$2u,abbreviation:abbreviation$2u,validate:validate$2v,format:format$2u,compact:compact$2u}=impl$2v;const pst=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2u,compact:compact$2u,format:format$2u,localName:localName$2u,name:name$2u,validate:validate$2v},Symbol.toStringTag,{value:"Module"}));const CA=Object.freeze(Object.defineProperty({__proto__:null,bn,gst,pst,qst,sin},Symbol.toStringTag,{value:"Module"}));function clean$2m(input){return cleanUnicode(input," -");}
277const impl$2u={validate(input){const[value,error]=clean$2m(input);if(error){return{isValid:false,error};}
278if(![8,12,13,14].includes(value.length)){return{isValid:false,error:new InvalidLength()};}
279if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
280const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{modulus:10,weights:[3,1],reverse:true});if(String((10-sum)%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
281return{isValid:true,compact:value,isIndividual:false,isCompany:false};}};const{validate:validate$2u}=impl$2u;function clean$2l(input){return cleanUnicode(input," -.");}
282const impl$2t={name:"Swiss Social Security Number",localName:"Sozialversicherungsnummer",abbreviation:"SSN",compact(input){const[value,err]=clean$2l(input);if(err){throw err;}
283return value;},format(input){const[value]=clean$2l(input);return splitAt(value,3,7,11).join(".");},validate(input){const[value,error]=clean$2l(input);if(error){return{isValid:false,error};}
284if(value.length!==13){return{isValid:false,error:new InvalidLength()};}
285if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
286if(!value.startsWith("756")){return{isValid:false,error:new InvalidComponent()};}
287if(!validate$2u(value).isValid){return{isValid:false,error:new InvalidChecksum()};}
288return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2t,localName:localName$2t,abbreviation:abbreviation$2t,validate:validate$2t,format:format$2t,compact:compact$2t}=impl$2t;const ssn$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2t,compact:compact$2t,format:format$2t,localName:localName$2t,name:name$2t,validate:validate$2t},Symbol.toStringTag,{value:"Module"}));
288function clean$2k(input){return cleanUnicode(input," -.");}
289const impl$2s={name:"Swiss Business Identifier",localName:"Unternehmens-Identifikationsnummer",abbreviation:"UID",compact(input){const[value,err]=clean$2k(input);if(err){throw err;}
290return value;},format(input){const[value]=clean$2k(input);const[a,b,c,d]=splitAt(value,3,6,9);return`${a}-${b}.${c}.${d}`;},validate(input){const[value,error]=clean$2k(input);if(error){return{isValid:false,error};}
291if(value.length!==12){return{isValid:false,error:new InvalidLength()};}
292if(!isdigits(value.substr(3))||!value.startsWith("CHE")){return{isValid:false,error:new InvalidFormat()};}
293const[,front,check]=splitAt(value,3,-1);const sum=weightedSum(front,{modulus:11,weights:[5,4,3,2,7,6,5,4]});if(String((11-sum)%11)!==check){return{isValid:false,error:new InvalidChecksum()};}
294return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2s,localName:localName$2s,abbreviation:abbreviation$2s,validate:validate$2s,format:format$2s,compact:compact$2s}=impl$2s;const uid=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2s,compact:compact$2s,format:format$2s,localName:localName$2s,name:name$2s,validate:validate$2s},Symbol.toStringTag,{value:"Module"}));function clean$2j(input){return cleanUnicode(input," -.");}
295const impl$2r={name:"Swiss VAT Number",localName:"Mehrwertsteuernummer",abbreviation:"MWST/TVA/IVA",compact(input){const[value,err]=clean$2j(input);if(err){throw err;}
296return value;},format(input){const[value]=clean$2j(input);const[a,b,c,d,e]=splitAt(value,3,6,9,12);return`${a}-${b}.${c}.${d}${e}`;},validate(input){const[value,error]=clean$2j(input);if(error){return{isValid:false,error};}
297if(value.length!==15&&value.length!==16){return{isValid:false,error:new InvalidLength()};}
298const[front,sufix]=splitAt(value,12);if(!["MWST","TVA","IVA","TPV"].includes(sufix)){return{isValid:false,error:new InvalidComponent()};}
299const result=validate$2s(front);if(!result.isValid&&result.error){return{isValid:false,error:result.error};}
300return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2r,localName:localName$2r,abbreviation:abbreviation$2r,validate:validate$2r,format:format$2r,compact:compact$2r}=impl$2r;const vat$7=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2r,compact:compact$2r,format:format$2r,localName:localName$2r,name:name$2r,validate:validate$2r},Symbol.toStringTag,{value:"Module"}));const CH=Object.freeze(Object.defineProperty({__proto__:null,ssn:ssn$1,uid,vat:vat$7},Symbol.toStringTag,{value:"Module"}));function clean$2i(input){const[v,err]=cleanUnicode(input," -");if(err){return["",err];}
301if(v.startsWith("CL")){return[v.substr(2),null];}
302return[v,null];}
303const impl$2q={name:"Chilean National Tax Number",localName:"Rol Único Tributario ",abbreviation:"RUT",compact(input){const[value,err]=clean$2i(input);if(err){throw err;}
304return value;},format(input){const[value]=clean$2i(input);const[a,b,c,d]=splitAt(value,2,5,8);return`${a}.${b}.${c}-${d}`;},validate(input){const[value,error]=clean$2i(input);if(error){return{isValid:false,error};}
305if(value.length!==8&&value.length!==9){return{isValid:false,error:new InvalidLength()};}
306const[front,check]=splitAt(value,value.length-1);if(!isdigits(front)){return{isValid:false,error:new InvalidComponent()};}
307const sum=weightedSum(front,{reverse:true,weights:[9,8,7,6,5,4,9,8,7],modulus:11});const digit="0123456789K"[sum];if(check!==digit){return{isValid:false,error:new InvalidChecksum()};}
308return{isValid:true,compact:value,isIndividual:true,isCompany:true};}};const{name:name$2q,localName:localName$2q,abbreviation:abbreviation$2q,validate:validate$2q,format:format$2q,compact:compact$2q}=impl$2q;const rut$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2q,compact:compact$2q,format:format$2q,localName:localName$2q,name:name$2q,validate:validate$2q},Symbol.toStringTag,{value:"Module"}));const impl$2p=Object.assign(Object.assign({},rut$1),{name:"Chilean National Identification Number",localName:"Rol Único Nacional ",abbreviation:"RUN"});const{name:name$2p,localName:localName$2p,abbreviation:abbreviation$2p,validate:validate$2p,format:format$2p,compact:compact$2p}=impl$2p;const run=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2p,compact:compact$2p,format:format$2p,localName:localName$2p,name:name$2p,validate:validate$2p},Symbol.toStringTag,{value:"Module"}));const CL=Object.freeze(Object.defineProperty({__proto__:null,run,rut:rut$1},Symbol.toStringTag,{value:"Module"}));function clean$2h(input){return cleanUnicode(input," ");}
309const impl$2o={name:"Chinese Resident Identity Card Number",localName:"居民身份证",abbreviation:"RIC No",compact(input){const[value,err]=clean$2h(input);if(err){throw err;}
310return value;},format(input){const[value]=clean$2h(input);return value;},validate(input){const[value,error]=clean$2h(input);if(error){return{isValid:false,error};}
311if(value.length!==18){return{isValid:false,error:new InvalidLength()};}
312const[front,check]=splitAt(value,17);if(!isdigits(front)){return{isValid:false,error:new InvalidFormat()};}
313if(!isValidDateCompactYYYYMMDD(front.substring(6,14),true)){return{isValid:false,error:new InvalidComponent()};}
314const checkValue=weightedSum(front,{weights:[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2],modulus:11});
314const digit="10X98765432"[checkValue];if(check!==digit){return{isValid:false,error:new InvalidChecksum()};}
315return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2o,localName:localName$2o,abbreviation:abbreviation$2o,validate:validate$2o,format:format$2o,compact:compact$2o}=impl$2o;const ric=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2o,compact:compact$2o,format:format$2o,localName:localName$2o,name:name$2o,validate:validate$2o},Symbol.toStringTag,{value:"Module"}));function clean$2g(input){return cleanUnicode(input," -");}
316const alphabet$4="0123456789ABCDEFGHJKLMNPQRTUWXY";const impl$2n={name:"Chinese Unified Social Credit Code",localName:"统一社会信用代码",abbreviation:"USCC",compact(input){const[value,err]=clean$2g(input);if(err){throw err;}
317return value;},format(input){const[value]=clean$2g(input);return value;},validate(input){const[value,error]=clean$2g(input);if(error){return{isValid:false,error};}
318if(value.length!==18){return{isValid:false,error:new InvalidLength()};}
319const[front,back,check]=splitAt(value,8,17);if(!isdigits(front)){return{isValid:false,error:new InvalidFormat()};}
320if(back.split("").some((v)=>!alphabet$4.includes(v))){return{isValid:false,error:new InvalidFormat()};}
321const digit=weightedSum(value.substr(0,17),{weights:[1,3,9,27,19,26,16,17,20,29,25,13,8,24,10,30,28],modulus:31,alphabet:alphabet$4});if(alphabet$4[31-digit]!==check){return{isValid:false,error:new InvalidChecksum()};}
322return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2n,localName:localName$2n,abbreviation:abbreviation$2n,validate:validate$2n,format:format$2n,compact:compact$2n}=impl$2n;const uscc=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2n,compact:compact$2n,format:format$2n,localName:localName$2n,name:name$2n,validate:validate$2n},Symbol.toStringTag,{value:"Module"}));const CN=Object.freeze(Object.defineProperty({__proto__:null,ric,uscc},Symbol.toStringTag,{value:"Module"}));function clean$2f(input){return cleanUnicode(input,",.- ");}
323const impl$2m={name:"Colombian Tax Identification Number",localName:"Número de Identificación Tributaria",abbreviation:"NIT",compact(input){const[value,err]=clean$2f(input);if(err){throw err;}
324return value.toLocaleUpperCase();},format(input){const[value]=clean$2f(input);const[p1,p2,p3,p4]=splitAt(value,3,6,9);return`${p1}.${p2}.${p3}-${p4}`;},validate(input){const[value,error]=clean$2f(input);if(error){return{isValid:false,error};}
325if(value.length<8||value.length>16){return{isValid:false,error:new InvalidLength()};}
326if(!isdigits(value)){return{isValid:false,error:new InvalidComponent()};}
327const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{weights:[3,7,13,17,19,23,29,37,41,43,47,53,59,67,71],reverse:true,modulus:11});const digit="01987654321"[sum];if(check!==digit){return{isValid:false,error:new InvalidChecksum()};}
328return{isValid:true,compact:value,isIndividual:true,isCompany:true};}};const{name:name$2m,localName:localName$2m,abbreviation:abbreviation$2m,validate:validate$2m,format:format$2m,compact:compact$2m}=impl$2m;const nit$2=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2m,compact:compact$2m,format:format$2m,localName:localName$2m,name:name$2m,validate:validate$2m},Symbol.toStringTag,{value:"Module"}));const CO=Object.freeze(Object.defineProperty({__proto__:null,nit:nit$2},Symbol.toStringTag,{value:"Module"}));function clean$2e(input){const[value,err]=cleanUnicode(input," ");if(err){return[value,err];}
329const parts=value.split("-");if(parts.length===3){parts[0]=parts[0].padStart(2,"0");parts[1]=parts[1].padStart(4,"0");parts[2]=parts[2].padStart(4,"0");}
330const number=parts.join("");if(number.length!==10&&number.length!==9){return["",new InvalidLength()];}
331return[number.padStart(10,"0"),err];}
332const impl$2l={name:"Costa Rica Physical Person ID Number",localName:"Cédula de Persona Física",abbreviation:"CPF",compact(input){const[value,err]=clean$2e(input);if(err){throw err;}
333return value;},format(input){const[value]=clean$2e(input);return splitAt(value,2,6).join("-");},validate(input){const[value,error]=clean$2e(input);if(error){return{isValid:false,error};}
334if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
335if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
336if(value[0]!=="0"){return{isValid:false,error:new InvalidComponent()};}
337return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2l,localName:localName$2l,abbreviation:abbreviation$2l,validate:validate$2l,format:format$2l,compact:compact$2l}=impl$2l;const cpf=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2l,compact:compact$2l,format:format$2l,localName:localName$2l,name:name$2l,validate:validate$2l},Symbol.toStringTag,{value:"Module"}));const classTypes={"2":["100","200","300","400"],"3":["002","003","004","005","006","007","008","009","010","011","012","013","014","101","102","103","104","105","106","107","108","109","110"],"4":["000"],"5":["001"]};function clean$2d(input){return cleanUnicode(input," -");}
338const impl$2k={name:"Costa Rica Tax Number",localName:"Cédula de Persona Jurídica",abbreviation:"CPJ",compact(input){const[value,err]=clean$2d(input);if(err){throw err;}
339return value;},format(input){const[value]=clean$2d(input);return splitAt(value,1,4).join("-");},validate(input){const[value,error]=clean$2d(input);if(error){return{isValid:false,error};}
340if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
341if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
342const items=classTypes[value[0]];if(!items){return{isValid:false,error:new InvalidComponent()};}
343if(!items.includes(value.substr(1,3))){return{isValid:false,error:new InvalidComponent()};}
344return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2k,localName:localName$2k,abbreviation:abbreviation$2k,validate:validate$2k,format:format$2k,compact:compact$2k}=impl$2k;const cpj=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2k,compact:compact$2k,format:format$2k,localName:localName$2k,name:name$2k,validate:validate$2k},Symbol.toStringTag,{value:"Module"}));function clean$2c(input){return cleanUnicode(input," -");}
345const impl$2j={name:"Costa Rica Foreigners ID Number",localName:"Cédula de Residencia",abbreviation:"CR",compact(input){const[value,err]=clean$2c(input);if(err){throw err;}
346return value;},format(input){const[value]=clean$2c(input);return value;},validate(input){const[value,error]=clean$2c(input);if(error){return{isValid:false,error};}
347if(value.length!==12){return{isValid:false,error:new InvalidLength()};}
348if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
349if(value[0]!=="1"){return{isValid:false,error:new InvalidComponent()};}
350return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2j,localName:localName$2j,abbreviation:abbreviation$2j,validate:validate$2j,format:format$2j,compact:compact$2j}=impl$2j;const cr=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2j,compact:compact$2j,format:format$2j,localName:localName$2j,name:name$2j,val
350idate:validate$2j},Symbol.toStringTag,{value:"Module"}));const CR=Object.freeze(Object.defineProperty({__proto__:null,cpf,cpj,cr},Symbol.toStringTag,{value:"Module"}));function clean$2b(input){return cleanUnicode(input," ");}
351const impl$2i={name:"Cuban Identity Card Number",localName:"Número de Identidad",abbreviation:"NI",compact(input){const[value,err]=clean$2b(input);if(err){throw err;}
352return value;},format(input){const[value]=clean$2b(input);return value;},validate(input){const[value,error]=clean$2b(input);if(error){return{isValid:false,error};}
353if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
354if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
355const[yy,mm,dd,cen]=splitAt(value,2,4,6,7);let year;if("012345".includes(cen)){year=`19${yy}`;}else if("678".includes(cen)){year=`20${yy}`;}else if(cen==="9"){year=`18${yy}`;}else{return{isValid:false,error:new InvalidComponent()};}
356if(!isValidDate(year,mm,dd,true)){return{isValid:false,error:new InvalidComponent()};}
357return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2i,localName:localName$2i,abbreviation:abbreviation$2i,validate:validate$2i,format:format$2i,compact:compact$2i}=impl$2i;const ni=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2i,compact:compact$2i,format:format$2i,localName:localName$2i,name:name$2i,validate:validate$2i},Symbol.toStringTag,{value:"Module"}));const CU=Object.freeze(Object.defineProperty({__proto__:null,ni},Symbol.toStringTag,{value:"Module"}));const alphabet$3="ABCDEFGHIJKLMNOPQRSTUVWXYZ";const weights={"0":1,"1":0,"2":5,"3":7,"4":9,"5":13,"6":15,"7":17,"8":19,"9":21};function clean$2a(input){const[value,err]=cleanUnicode(input," -");if(err!==null){return[value,err];}
358if(value.startsWith("CY")){return[value.substr(2),null];}
359return[value,null];}
360const impl$2h={name:"Cypriot VAT Number",localName:"Αριθμός Εγγραφής Φ.Π.Α.",abbreviation:"ΦΠΑ",compact(input){const[value,err]=clean$2a(input);if(err){throw err;}
361return value;},format(input){const[value]=clean$2a(input);return value;},validate(input){const[value,error]=clean$2a(input);if(error){return{isValid:false,error};}
362if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
363const[front,check]=splitAt(value,-1);if(!isdigits(front)){return{isValid:false,error:new InvalidFormat()};}
364if(!alphabet$3.includes(check)){return{isValid:false,error:new InvalidFormat()};}
365const sum=front.split("").map((v)=>parseInt(v,10)).reduce((acc,v,idx)=>acc+(idx%2===0?weights[v]:v),0);if(alphabet$3[sum%26]!==check){return{isValid:false,error:new InvalidChecksum()};}
366return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2h,localName:localName$2h,abbreviation:abbreviation$2h,validate:validate$2h,format:format$2h,compact:compact$2h}=impl$2h;const vat$6=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2h,compact:compact$2h,format:format$2h,localName:localName$2h,name:name$2h,validate:validate$2h},Symbol.toStringTag,{value:"Module"}));const CY=Object.freeze(Object.defineProperty({__proto__:null,vat:vat$6},Symbol.toStringTag,{value:"Module"}));function clean$29(input){return cleanUnicode(input," /");}
367const impl$2g={name:"Czech Birth Number",localName:"Rodné číslo",abbreviation:"RČ",compact(input){const[value,err]=clean$29(input);if(err){throw err;}
368return value;},format(input){const[value]=clean$29(input);return splitAt(value,6).join("/");},validate(input){const[value,error]=clean$29(input);if(error){return{isValid:false,error};}
369if(value.length!==10&&value.length!==9){return{isValid:false,error:new InvalidLength()};}
370if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
371const[yy,mm,dd]=splitAt(value,2,4,6);const mon=parseInt(mm,10)%50%20;let year=parseInt(yy,10)+1900;if(value.length===9){if(year>1980){year-=100;}
372if(year>1953){return{isValid:false,error:new InvalidComponent()};}}else if(year<1954){year+=100;}
373if(!isValidDate(String(year),String(mon),dd,true)){return{isValid:false,error:new InvalidComponent()};}
374if(value.length===10){const[front,check]=splitAt(value,-1);const sum=parseInt(front,10)%11%(year<1985?10:11);if(String(sum)!==check){return{isValid:false,error:new InvalidChecksum()};}}
375return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2g,localName:localName$2g,abbreviation:abbreviation$2g,validate:validate$2g,format:format$2g,compact:compact$2g}=impl$2g;const rc$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2g,compact:compact$2g,format:format$2g,localName:localName$2g,name:name$2g,validate:validate$2g},Symbol.toStringTag,{value:"Module"}));function clean$28(input){const[value,err]=cleanUnicode(input," -");if(err!==null){return[value,err];}
376if(value.startsWith("CZ")){return[value.substr(2),null];}
377return[value,null];}
378function checkLegal(value){const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{modulus:11,weights:[8,7,6,5,4,3,2,1]});const v=(11-sum)%11;return(v===0?"1":String(v%10))===check;}
379function checkSpecial(value){const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{modulus:11,weights:[8,7,6,5,4,3,2,1]});const digit=String((8-(10-sum)%11)%10);return digit===check;}
380const impl$2f={name:"Czech VAT Number",localName:"Daňové identifikační číslo",abbreviation:"DIČ",compact(input){const[value,err]=clean$28(input);if(err){throw err;}
381return value;},format(input){const[value]=clean$28(input);return value;},validate(input){const[value,error]=clean$28(input);if(error){return{isValid:false,error};}
382if(![8,9,10].includes(value.length)){return{isValid:false,error:new InvalidLength()};}
383if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
384if(value.length===8){if(value.startsWith("9")){return{isValid:false,error:new InvalidComponent()};}
385if(!checkLegal(value)){return{isValid:false,error:new InvalidChecksum()};}
386return{isValid:true,compact:value,isIndividual:false,isCompany:true};}
387if(value.length===9&&value.startsWith("6")){if(!checkSpecial(value)){return{isValid:false,error:new InvalidChecksum()};}
388return{isValid:true,compact:value,isIndividual:false,isCompany:true};}
389return validate$2g(value);}};const{name:name$2f,localName:localName$2f,abbreviation:abbreviation$2f,validate:validate$2f,format:format$2f,compact:compact$2f}=impl$2f;const dic=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2f,compact:compact$2f,format:format$2f,localName:localName$2f,name:name$2f,validate:validate$2f},Symbol.toStringTag,{value:"Module"}));const CZ=Object.freeze(Object.defineProperty({__proto__:null,dic,rc:rc$1},Symbol.toStringTag,{value:"Module"}));function iso7064mod10x11validate(value){const check=value.split("").map((v)=>parseInt(v,10)).reduce((acc,v)=>((acc===0?10:acc)*2%11+v)%10,5);return check===1;}
390function clean$27(input){return cleanUnicode(input," -./,");}
391const impl$2e={name:"German Personal Tax Number",localName:"Steuerliche Identifikationsnummer",abbreviation:"IdNr",compact(input){const[value,err]=clean$27(input);if(err){throw err;}
392return value;},format(input){const[value]=clean$27(input);return splitAt(value,2,5,8).join(" ");},validate(input){const[value,error]=clean$27(input);if(error){return{isValid:false,error};}
393if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
394if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
395if(value[0]==="0"){return{isValid:false,error:new InvalidComponent()};}
396const counter={};value.substr(0,10).split("").map((v)=>parseInt(v,10)).forEach((v)=>{var _a;counter[v]=((_a=counter[v])!==null&&_a!==void 0?_a:0)+1;});const more=Object.values(counter).filter((v)=>v>1);if(more.length!==1&&[2,3].includes(more[0])){return{isValid:false,error:new InvalidComponent()};}
397if(!iso7064mod10x11validate(value)){return{isValid:false,error:new InvalidChecksum()};}
398return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2e,localName:localName$2e,abbreviation:abbreviation$2e,validate:validate$2e,format:format$2e,compact:compact$2e}=impl$2e;const idnr$3=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2e,compact:compact$2e,format:format$2e,localName:localName$2e,name:name$2e,validate:validate$2e},Symbol.toStringTag,{value:"Module"}));const oldRegex=/^([0-9CFGHJKLMNPRTVWXYZ]{9})([0-9])[A-Z]?$/;function clean$26(input){const[value,err]=cleanUnicode(input," -./,");if(err){return[value,err];}
399if(value.length>=25&&/[A-Z]/.test(value[10])){const[p1,p2,p3,p4]=splitAt(value,10,11,25);return[p1+p3+p2+p4,err];}
400return[value,err];}
401function validateIssue(value){const match=value.match(oldRegex);if(!match){return{isValid:false,error:new InvalidFormat()};}
402const[issue,issueCheck]=[match[1],match[2]];const issueSum=weightedSum(issue,{weights:[7,3,1],modulus:10});if(String(issueSum)!==issueCheck){return{isValid:false,error:new InvalidChecksum("issue.checksum")};}
403return{isValid:true,compact:value,isIndividual:true,isCompany:false};}
404function validateNew(value){if(!/^[0-9CFGHJKLMNPRTVWXYZ][0-9CFGHJKLMNPRTVWXYZ]+[A-Z][0-9]$/.test(value)){return{isValid:false,error:new InvalidFormat()};}
405const[issue,issueCheck,birth,birthCheck,expiry,expiryCheck,nationality,checksum2]=splitAt(value,9,10,16,17,23,24,25);if(!isValidDateCompactYYMMDD(birth,true)){return{isValid:false,error:new InvalidComponent("birthdate")};}
406if(!isValidDateCompactYYMMDD(expiry)){return{isValid:false,error:new InvalidComponent("expiry")};}
407if(!/^[A-Z]$/.test(nationality)){return{isValid:false,error:new InvalidComponent("nationality")};}
408const res=validateIssue(issue+issueCheck);if(res.isValid===false){return res;}
409const birthSum=weightedSum(birth,{weights:[7,3,1],modulus:10});const expirySum=weightedSum(expiry,{weights:[7,3,1],modulus:10});if(String(birthSum)!==birthCheck){return{isValid:false,error:new InvalidChecksum("birth.checksum")};}
410if(String(expirySum)!==expiryCheck){return{isValid:false,error:new InvalidChecksum("expiry.checksum")};}
411const sum=weightedSum(value.substring(0,24),{weights:[7,3,1],modulus:10});if(String(sum)!==checksum2){return{isValid:false,error:new InvalidChecksum("checksum")};}
412return{isValid:true,compact:value,isIndividual:true,isCompany:false};}
413const impl$2d={name:"German Personalausweisnummer",localName:"Personalausweisnummer",abbreviation:"PwNr",compact(input){const[value,err]=clean$26(input);if(err){throw err;}
414return value;},format(input){const[value]=clean$26(input);return splitAt(value,10,17,24,25).join(" ");},validate(input){const[value,error]=clean$26(input);if(error){return{isValid:false,error};}
415if(value.length===26){return validateNew(value);}else if(value.length===10||value.length===11){return validateIssue(value);}else{return{isValid:false,error:new InvalidLength()};}}};const{name:name$2d,localName:localName$2d,abbreviation:abbreviation$2d,validate:validate$2d,format:format$2d,compact:compact$2d}=impl$2d;const pwnr=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2d,compact:compact$2d,format:format$2d,localName:localName$2d,name:name$2d,validate:validate$2d,validateIssue,validateNew},Symbol.toStringTag,{value:"Module"}));function clean$25(input){return cleanUnicode(input," -./,");}
416function buildMatch(fmt){const pattern=fmt.replace(/([FBUP])\1*/g,(m)=>{return`(\\d{${m.length}})`;});const matcher=new RegExp(`^${pattern}$`);return(value)=>{var _a,_b,_c,_d;const m=matcher.exec(value);if(!m){return{match:false};}
417return{match:true,f:(_a=m[1])!==null&&_a!==void 0?_a:"",b:(_b=m[2])!==null&&_b!==void 0?_b:"",u:(_c=m[3])!==null&&_c!==void 0?_c:"",p:(_d=m[4])!==null&&_d!==void 0?_d:""};};}
418function buildMatcher(rfmt,cfmt){return{region:buildMatch(rfmt),country:buildMatch(cfmt)};}
419const REGION_FORMATS={"DE-BW":buildMatcher("FFBBBUUUUP","28FF0BBBUUUUP"),"DE-BY":buildMatcher("FFF
419BBBUUUUP","9FFF0BBBUUUUP"),"DE-BE":buildMatcher("FFBBBUUUUP","11FF0BBBUUUUP"),"DE-BB":buildMatcher("0FFBBBUUUUP","30FF0BBBUUUUP"),"DE-HB":buildMatcher("FFBBBUUUUP","24FF0BBBUUUUP"),"DE-HH":buildMatcher("FFBBBUUUUP","22FF0BBBUUUUP"),"DE-HE":buildMatcher("0FFBBBUUUUP","26FF0BBBUUUUP"),"DE-MV":buildMatcher("0FFBBBUUUUP","40FF0BBBUUUUP"),"DE-NI":buildMatcher("FFBBBUUUUP","23FF0BBBUUUUP"),"DE-NW":buildMatcher("FFFBBBBUUUP","5FFF0BBBBUUUP"),"DE-RP":buildMatcher("FFBBBUUUUP","27FF0BBBUUUUP"),"DE-SL":buildMatcher("0FFBBBUUUUP","10FF0BBBUUUUP"),"DE-SN":buildMatcher("2FFBBBUUUUP","32FF0BBBUUUUP"),"DE-ST":buildMatcher("1FFBBBUUUUP","31FF0BBBUUUUP"),"DE-SH":buildMatcher("FFBBBUUUUP","21FF0BBBUUUUP"),"DE-TH":buildMatcher("1FFBBBUUUUP","41FF0BBBUUUUP")};function findMatch(value){let result=null;Object.values(REGION_FORMATS).some(({region,country})=>{const rResult=region(value);if(rResult.match){result=rResult;return true;}
420const cResult=country(value);if(cResult.match){result=cResult;return true;}
421return false;});return result;}
422const impl$2c={name:"German Tax Number",localName:"Steuernummer",abbreviation:" St.-Nr.",compact(input){const[value,err]=clean$25(input);if(err){throw err;}
423return value;},format(input){const[value]=clean$25(input);const match=findMatch(input);if(!match||!match.match){return value;}
424return`${match.f}/${match.b}/${match.u}${match.p}`;},validate(input){const[value,error]=clean$25(input);if(error){return{isValid:false,error};}
425if(![10,11,13].includes(value.length)){return{isValid:false,error:new InvalidLength()};}
426if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
427if(findMatch(value)===null){return{isValid:false,error:new InvalidFormat()};}
428const counter={};value.substring(0,10).split("").forEach((v)=>{var _a;counter[v]=((_a=counter[v])!==null&&_a!==void 0?_a:0)+1;});const more=Object.values(counter);if(!more.some((v)=>v===2||v===3)){return{isValid:false,error:new InvalidComponent()};}
429return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2c,localName:localName$2c,abbreviation:abbreviation$2c,validate:validate$2c,format:format$2c,compact:compact$2c}=impl$2c;const stnr=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2c,compact:compact$2c,format:format$2c,localName:localName$2c,name:name$2c,validate:validate$2c},Symbol.toStringTag,{value:"Module"}));const AREA_NUMBER_OPTIONS=["02","03","04","08","09","10","11","12","13","14","15","16","17","18","19","20","21","23","24","25","26","28","29","38","39","40","80","81","82","89"].concat([...Array(79-42+1).keys()].map((x)=>(x+42).toString()));const BIRTH_MONTH_OPTIONS=["01","02","03","04","05","06","07","08","09","10","11","12"];const checkAlphabet$2="ABCDEFGHIJKLMNOPQRSTUVWXYZ";const checkAlphabetDict$1=checkAlphabet$2.split("").reduce((acc,c,idx)=>Object.assign(Object.assign({},acc),{[c]:String(idx+1).padStart(2,"0")}),{});function clean$24(input){return cleanUnicode(input," -./,");}
430const impl$2b={name:"German Pension Insurance Number",localName:"Sozialversicherungsnummer",abbreviation:"SVNR",compact(input){const[value,err]=clean$24(input);if(err){throw err;}
431return value;},format(input){const[value]=clean$24(input);return splitAt(value,2,8,9).join(" ");},validate(input){const[value,error]=clean$24(input);if(error){return{isValid:false,error};}
432if(value.length!==12){return{isValid:false,error:new InvalidLength()};}
433if(!isalphanumeric(value)){return{isValid:false,error:new InvalidFormat()};}
434if(!AREA_NUMBER_OPTIONS.includes(value.substring(0,2))){return{isValid:false,error:new InvalidComponent()};}
435if(!isdigits(value.substring(2,4))){return{isValid:false,error:new InvalidComponent()};}
436if(!BIRTH_MONTH_OPTIONS.includes(value.substring(4,6))){return{isValid:false,error:new InvalidComponent()};}
437if(!isdigits(value.substring(6,8))){return{isValid:false,error:new InvalidComponent()};}
438if(!isalpha(value[8])){return{isValid:false,error:new InvalidComponent()};}
439if(!isdigits(value.substring(9,11))){return{isValid:false,error:new InvalidComponent()};}
440const[frontWithAlpha,check]=splitAt(value,11);const front=frontWithAlpha.split("").map((c)=>{var _a;return(_a=checkAlphabetDict$1[c])!==null&&_a!==void 0?_a:c;}).join("");const sum=weightedSum(front,{weights:[2,1,2,5,7,1,2,1,2,1,2,1],modulus:10,sumByDigit:true});if(String(sum%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
441return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$2b,localName:localName$2b,abbreviation:abbreviation$2b,validate:validate$2b,format:format$2b,compact:compact$2b}=impl$2b;const svnr=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2b,compact:compact$2b,format:format$2b,localName:localName$2b,name:name$2b,validate:validate$2b},Symbol.toStringTag,{value:"Module"}));function clean$23(input){const[value,err]=cleanUnicode(input," -./,");if(err!==null){return[value,err];}
442if(value.startsWith("DE")){return[value.substr(2),null];}
443return[value,null];}
444const impl$2a={name:"German VAT Number",localName:"Umsatzsteuer Identifikationsnummer",abbreviation:"USt ID Nr.",compact(input){const[value,err]=clean$23(input);if(err){throw err;}
445return value;},format(input){const[value]=clean$23(input);return value;},validate(input){const[value,error]=clean$23(input);if(error){return{isValid:false,error};}
446if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
447if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
448if(!iso7064mod10x11validate(value)){return{isValid:false,error:new InvalidChecksum()};}
449return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2a,localName:localName$2a,abbreviation:abbreviation$2a,validate:validate$2a,format:format$2a,compact:compact$2a}=impl$2a;const vat$5=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2a,compact:compact$2a,format:format$2a,localName:localName$2a,name:name$2a,validate:validate$2a},Symbol.toStringTag,{value:"Module"}));function clean$22(input){return cleanUnicode(input," -./,");}
450const idRegexp=/([CFGHJK][0-9CFGHJKLMNPRTVWXYZ]{8})([0-9]?)[A-Z]?/;const impl$29={name:"German Passport Number",localName:"Ausweisen",abbreviation:"Passport",compact(input){const[value,err]=clean$22(input);if(err){throw err;}
451return value;},format(input){const[value]=clean$22(input);return value;},validate(input){const[value,error]=clean$22(input);if(error){return{isValid:false,error};}
452if(value.length<9||value.length>11){return{isValid:false,error:new InvalidLength()};}
453const match=value.match(idRegexp);if(!match){return{isValid:false,error:new InvalidFormat()};}
454if(match[2]!==""){const[issue,issueCheck]=[match[1],match[2]];const issueSum=weightedSum(issue,{weights:[7,3,1],modulus:10});if(String(issueSum)!==issueCheck){return{isValid:false,error:new InvalidChecksum("issue.checksum")};}}
455return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$29,localName:localName$29,abbreviation:abbreviation$29,validate:validate$29,format:format$29,compact:compact$29}=impl$29;const passport=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$29,compact:compact$29,format:format$29,localName:localName$29,name:name$29,validate:validate$29},Symbol.toStringTag,{value:"Module"}));const DE=Object.freeze(Object.defineProperty({__proto__:null,idnr:idnr$3,passport,pwnr,stnr,svnr,vat:vat$5},Symbol.toStringTag,{value:"Module"}));function getBirthDate$1(value){const[dob]=splitAt(value,6);const[day,month,yearStr]=splitAt(dob,2,4);let year=parseInt(yearStr);if("5678".includes(value[6])&&year>=58){year+=1800;}else if("0123".includes(value[6])||"49".includes(value[6])&&year>=37){year+=1900;}else{year+=2e3;}
456const d=buildDate(String(year),month,day);if(d===null||!isValidDate(String(year),month,day)){throw new InvalidComponent("The number does not contain valid birth date information.");}
457return d;}
458function clean$21(input){const[value,err]=cleanUnicode(input," -");if(err!==null){return[value,err];}
459return[value,null];}
460const impl$28={name:"Danish Citizen Number",localName:"Personnummer",abbreviation:"CPR",compact(input){const[value,err]=clean$21(input);if(err){throw err;}
461return value;},format(input){const[value]=clean$21(input);return splitAt(value,6).join("-");},validate(input){const[value,error]=clean$21(input);if(error){return{isValid:false,error};}
462if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
463if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
464try{const date=getBirthDate$1(value);if(!validBirthdate(date)){return{isValid:false,error:new InvalidComponent("The birth date information is valid, but this person has not been born yet.")};}}catch(err){if(err instanceof ValidationError){return{isValid:false,error:err};}
465return{isValid:false,error:new InvalidComponent(String(err))};}
466return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$28,localName:localName$28,abbreviation:abbreviation$28,validate:validate$28,format:format$28,compact:compact$28}=impl$28;const cpr=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$28,compact:compact$28,format:format$28,getBirthDate:getBirthDate$1,localName:localName$28,name:name$28,validate:validate$28},Symbol.toStringTag,{value:"Module"}));function clean$20(input){const[value,err]=cleanUnicode(input," -");if(err!==null){return[value,err];}
467if(value.startsWith("DK")){return[value.substr(2),null];}
468return[value,null];}
469const impl$27={name:"Danish VAT Number",localName:"Momsregistreringsnummer",abbreviation:"CVR",compact(input){const[value,err]=clean$20(input);if(err){throw err;}
470return value;},format(input){const[value]=clean$20(input);return value;},validate(input){const[value,error]=clean$20(input);if(error){return{isValid:false,error};}
471if(value.length!==8){return{isValid:false,error:new InvalidLength()};}
472if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
473const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{modulus:11,weights:[2,7,6,5,4,3,2,1]});if(String((11-sum)%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
474return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$27,localName:localName$27,abbreviation:abbreviation$27,validate:validate$27,format:format$27,compact:compact$27}=impl$27;const cvr=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$27,compact:compact$27,format:format$27,localName:localName$27,name:name$27,validate:validate$27},Symbol.toStringTag,{value:"Module"}));const DK=Object.freeze(Object.defineProperty({__proto__:null,cpr,cvr},Symbol.toStringTag,{value:"Module"}));function clean$1$(input){return cleanUnicode(input," -");}
475const impl$26={name:"Dominican Republic National Identification Number",localName:"Cedula",compact(input){const[value,err]=clean$1$(input);if(err){throw err;}
476return value;},format(input){const[value]=clean$1$(input);return splitAt(value,3,10).join("-");},validate(input){const[value,error]=clean$1$(input);if(error){return{isValid:false,error};}
477if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
478if(!isdigits(value.substr(1))){return{isValid:false,error:new InvalidFormat()};}
479if(!luhnChecksumValidate(value)){return{isValid:false,error:new InvalidChecksum()};}
480return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$26,localName:localName$26,abbreviation:abbreviation$26,validate:validate$26,format:format$26,compact:compact$26}=impl$26;const cedula$2=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$26,compact:compact$26,format:format$26,localName:localName$26,name:name$26,validate:validate$26},Symbol.toStringTag,{value:"Module"}));const ncfTypes=["01","02","03","04","11","12","13","14","15","16","17"];const ecfTypes=["31","32","33","34","41","43","44","45","46","47"];function clean$1_(input){return cleanUnicode(input," ");}
481const impl$25={name:"Dominican Republic Receipt Number",localName:"Números de Comprobante Fiscal",abbreviation:"NCF",compact(input){const[value,err]=clean$1_(input);if(err){throw err;}
482return value;},format(input){const[value]=clean$1_(input);return value;},validate(input){const[value,error]=clean$1_(input);if(error){return{isValid:false,error};}
483if(value.length===13){if(!value.startsWith("E")){return{isValid:false,error:new InvalidComponent()};}
484if(!isdigits(value.substr(1))){return{isValid:false,error:new InvalidComponent()};}
485if(!ecfTypes.includes(value.substr(1,2))){return{isValid:false,error:new InvalidComponent()};}}else if(value.length===11){if(!value.startsWith("B")){return{isValid:false,error:new InvalidComponent()};}
486if(!isdigits(value.substr(1))){return{isValid:false,error:new InvalidComponent()};}
487if(!ncfTypes.includes(value.substr(1,2))){return{isValid:false,error:new InvalidComponent()};}}else if(value.length===19){if(!value.startsWith("AP")){return{isValid:false,error:new InvalidComponent()};}
488if(!isdigits(value.substr(2))){return{isValid:false,error:new InvalidComponent()};}
489if(!ncfTypes.includes(value.substr(9,2))){return{isValid:false,error:new InvalidComponent()};}}else{return{isValid:false,error:new InvalidLength()};}
490return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$25,localName:localName$25,abbreviation:abbreviation$25,validate:validate$25,format:format$25,compact:compact$25}=impl$25;const ncf=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$25,compact:compact$25,format:format$25,localName:localName$25,name:name$25,validate:validate$25},Symbol.toStringTag,{value:"Module"}));function clean$1Z(input){return cleanUnicode(input," -");}
491const impl$24={name:"Dominican Republic Tax Number",localName:"Registro Nacional del Contribuyente",abbreviation:"RNC",compact(input){const[value,err]=clean$1Z(input);if(err){throw err;}
492return value;},format(input){const[value]=clean$1Z(input);return splitAt(value,1,3,-1).join("-");},validate(input){const[value,error]=clean$1Z(input);if(error){return{isValid:false,error};}
493if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
494if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
495const[front,check]=splitAt(value,8);const sum=weightedSum(front,{weights:[7,9,8,6,5,4,3,2],modulus:11});if(String((10-sum)%9+1)!==check){return{isValid:false,error:new InvalidChecksum()};}
496return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$24,localName:localName$24,abbreviation:abbreviation$24,validate:validate$24,format:format$24,compact:compact$24}=impl$24;const rnc=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$24,compact:compact$24,format:format$24,localName:localName$24,name:name$24,validate:validate$24},Symbol.toStringTag,{value:"Module"}));const DO=Object.freeze(Object.defineProperty({__proto__:null,cedula:cedula$2,ncf,rnc},Symbol.toStringTag,{value:"Module"}));function clean$1Y(input){return cleanUnicode(input," -");}
497const impl$23={name:"Algeria tax number",localName:"Numéro d'Identification Fiscale",abbreviation:"NIF",compact(input){const[value,err]=clean$1Y(input);if(err){throw err;}
498return value;},format(input){const[value]=clean$1Y(input);return value;},validate(input){const[value,error]=clean$1Y(input);if(error){return{isValid:false,error};}
499if(value.length!==15&&value.length!==20){return{isValid:false,error:new InvalidLength()};}
500if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
501return{isValid:true,compact:value,isIndividual:false,isCompany:false};}};const{name:name$23,localName:localName$23,abbreviation:abbreviation$23,validate:validate$23,format:format$23,compact:compact$23}=impl$23;
501const nif$3=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$23,compact:compact$23,format:format$23,localName:localName$23,name:name$23,validate:validate$23},Symbol.toStringTag,{value:"Module"}));const DZ=Object.freeze(Object.defineProperty({__proto__:null,nif:nif$3},Symbol.toStringTag,{value:"Module"}));function clean$1X(input){return cleanUnicode(input," -");}
502function validPrefix(value){const prefix=parseInt(value.substr(0,2),10);if(prefix===0||prefix>24||prefix===30||prefix===50){return false;}
503return true;}
504const impl$22={name:"Ecuadorian Personal Identity Code",localName:"Cédula de Identidad",abbreviation:"CI",compact(input){const[value,err]=clean$1X(input);if(err){throw err;}
505return value;},format(input){const[value]=clean$1X(input);return splitAt(value,9).join("-");},validate(input){const[value,error]=clean$1X(input);if(error){return{isValid:false,error};}
506if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
507if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
508if(!validPrefix(value)){return{isValid:false,error:new InvalidComponent()};}
509if(parseInt(value[2],10)>6){return{isValid:false,error:new InvalidComponent()};}
510const digit=value.split("").map((v)=>parseInt(v,10)).map((v,idx)=>idx%2===0?v*2:v).map((v)=>v>9?v-9:v).reduce((acc,v)=>acc+v)%10;if(digit!==0){return{isValid:false,error:new InvalidChecksum()};}
511return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$22,localName:localName$22,abbreviation:abbreviation$22,validate:validate$22,format:format$22,compact:compact$22}=impl$22;const ci=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$22,compact:compact$22,format:format$22,localName:localName$22,name:name$22,validPrefix,validate:validate$22},Symbol.toStringTag,{value:"Module"}));function clean$1W(input){return cleanUnicode(input," -.");}
512const impl$21={name:"Ecuadorian Company Tax Number",localName:"Registro Único de Contribuyentes",abbreviation:"RUC",compact(input){const[value,err]=clean$1W(input);if(err){throw err;}
513return value;},format(input){const[value]=clean$1W(input);return splitAt(value,10).join("-");},validate(input){const[value,error]=clean$1W(input);if(error){return{isValid:false,error};}
514if(value.length!==13){return{isValid:false,error:new InvalidLength()};}
515if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
516if(!validPrefix(value)){return{isValid:false,error:new InvalidComponent()};}
517if(parseInt(value[2],10)<6){const[front,end]=splitAt(value,10);if(end==="000"){return{isValid:false,error:new InvalidComponent()};}
518return validate$22(front);}
519if(value[2]==="6"){const[front,end]=splitAt(value,9);if(end==="0000"){return{isValid:false,error:new InvalidComponent()};}
520if(weightedSum(front,{weights:[3,2,7,6,5,4,3,2,1],modulus:11})!==0){if(end.endsWith("000")){return{isValid:false,error:new InvalidComponent()};}
521return validate$22(value.substring(0,10));}}else if(value[2]==="9"){const[front,end]=splitAt(value,10);if(end==="000"){return{isValid:false,error:new InvalidComponent()};}
522if(weightedSum(front,{weights:[4,3,2,7,6,5,4,3,2,1],modulus:11})!==0){return{isValid:false,error:new InvalidChecksum()};}}else{return{isValid:false,error:new InvalidComponent()};}
523return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$21,localName:localName$21,abbreviation:abbreviation$21,validate:validate$21,format:format$21,compact:compact$21}=impl$21;const ruc$2=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$21,compact:compact$21,format:format$21,localName:localName$21,name:name$21,validate:validate$21},Symbol.toStringTag,{value:"Module"}));const EC=Object.freeze(Object.defineProperty({__proto__:null,ci,ruc:ruc$2},Symbol.toStringTag,{value:"Module"}));function clean$1V(input){return cleanUnicode(input," ");}
524function ikCheck(value){const[front,check]=splitAt(value,-1);
524let sum=weightedSum(front,{modulus:11,weights:[1,2,3,4,5,6,7,8,9,1,2,3,4,5,6]});if(sum===10){sum=weightedSum(front,{modulus:11,weights:[3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]});}
525return String(sum%10)===check;}
526function ikCheckDate(value){let century2;switch(value[0]){case"1":case"2":century2="18";break;case"3":case"4":century2="19";break;case"5":case"6":century2="20";break;case"7":case"8":century2="21";break;default:return false;}
527return isValidDateCompactYYYYMMDD(`${century2}${value.substr(1,6)}`,true);}
528const impl$20={name:"Estonian Personal ID Number",localName:"Isikukood",abbreviation:"IK",compact(input){const[value,err]=clean$1V(input);if(err){throw err;}
529return value;},format(input){const[value]=clean$1V(input);return value;},validate(input){const[value,error]=clean$1V(input);if(error){return{isValid:false,error};}
530if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
531if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
532if(!ikCheck(value)){return{isValid:false,error:new InvalidChecksum()};}
533return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$20,localName:localName$20,abbreviation:abbreviation$20,validate:validate$20,format:format$20,compact:compact$20}=impl$20;const ik=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$20,compact:compact$20,format:format$20,ikCheck,ikCheckDate,localName:localName$20,name:name$20,validate:validate$20},Symbol.toStringTag,{value:"Module"}));function clean$1U(input){const[value,err]=cleanUnicode(input," ");if(err!==null){return[value,err];}
534if(value.startsWith("EE")){return[value.substr(2),null];}
535return[value,null];}
536const impl$1$={name:"Estronian VAT Number",localName:"Käibemaksukohuslase",abbreviation:"KMKR",compact(input){const[value,err]=clean$1U(input);if(err){throw err;}
537return value;},format(input){const[value]=clean$1U(input);return value;},validate(input){const[value,error]=clean$1U(input);if(error){return{isValid:false,error};}
538if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
539if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
540const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{modulus:10,weights:[3,7,1]});if(String((10-sum)%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
541return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1$,localName:localName$1$,abbreviation:abbreviation$1$,validate:validate$1$,format:format$1$,compact:compact$1$}=impl$1$;const kmkr=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1$,compact:compact$1$,format:format$1$,localName:localName$1$,name:name$1$,validate:validate$1$},Symbol.toStringTag,{value:"Module"}));function clean$1T(input){return cleanUnicode(input," -/");}
542const impl$1_={name:"Estonian Organisation Registration Code",localName:"Registrikood",compact(input){const[value,err]=clean$1T(input);if(err){throw err;}
543return value;},format(input){const[value]=clean$1T(input);return value;},validate(input){const[value,error]=clean$1T(input);if(error){return{isValid:false,error};}
544if(value.length!==8){return{isValid:false,error:new InvalidLength()};}
545if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
546if(!["1","7","8","9"].includes(value[0])){return{isValid:false,error:new InvalidComponent()};}
547if(!ikCheck(value)){return{isValid:false,error:new InvalidChecksum()};}
548return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1_,localName:localName$1_,abbreviation:abbreviation$1_,validate:validate$1_,format:format$1_,compact:compact$1_}=impl$1_;const registrikood=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1_,compact:compact$1_,format:format$1_,localName:localName$1_,name:name$1_,validate:validate$1_},Symbol.toStringTag,{value:"Module"}));const EE=Object.freeze(Object.defineProperty({__proto__:null,ik,kmkr,registrikood},Symbol.toStringTag,{value:"Module"}));const ARABIC_NUMBERS_MAP={"Ù ":"0","Ù¡":"1","Ù¢":"2","Ù£":"3","Ù¤":"4","Ù¥":"5","Ù¦":"6","Ù§":"7","Ù¨":"8","Ù©":"9","Û°":"0","Û±":"1","Û²":"2","Û³":"3","Û´":"4","Ûµ":"5","Û¶":"6","Û·":"7","Û¸":"8","Û¹":"9"};function clean$1S(input){const norm=input.split("").map((c)=>{var _a;return(_a=ARABIC_NUMBERS_MAP[c])!==null&&_a!==void 0?_a:c;}).join("");return cleanUnicode(norm," -/");}
549const impl$1Z={name:"Tax Registration Number",localName:"الرقم الضريبي",abbreviation:"TN",compact(input){const[value,err]=clean$1S(input);if(err){throw err;}
550return value;},format(input){const[value]=clean$1S(input);return splitAt(value,3,6).join("-");},validate(input){const[value,error]=clean$1S(input);if(error){return{isValid:false,error};}
551if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
552if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
553return{isValid:true,compact:value,isIndividual:false,isCompany:false};}};const{name:name$1Z,localName:localName$1Z,abbreviation:abbreviation$1Z,validate:validate$1Z,format:format$1Z,compact:compact$1Z}=impl$1Z;const tn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1Z,compact:compact$1Z,format:format$1Z,localName:localName$1Z,name:name$1Z,validate:validate$1Z},Symbol.toStringTag,{value:"Module"}));const EG=Object.freeze(Object.defineProperty({__proto__:null,tn},Symbol.toStringTag,{value:"Module"}));const entityTypes="ABCDEFGHJNPQRSUVW";const letterCheckDigits="JABCDEFGHI";function clean$1R(input){return cleanUnicode(input," -");}
554const impl$1Y={name:"Spanish Company Tax Number",localName:"Código de Identificación Fiscal",abbreviation:"CIF",compact(input){const[value,err]=clean$1R(input);if(err){throw err;}
555return value;},format(input){const[value]=clean$1R(input);return splitAt(value,1,8).join("-");},validate(input){const[value,error]=clean$1R(input);if(error){return{isValid:false,error};}
556if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
557const[first,body,check]=splitAt(value,1,8);if(!isdigits(body)||!entityTypes.includes(first)||!(isdigits(check)||letterCheckDigits.includes(check))){return{isValid:false,error:new InvalidComponent()};}
558const cs=parseInt(luhnChecksumDigit(body),10);const possibleCheckDigits=letterCheckDigits[cs]+String(cs);if(!possibleCheckDigits.includes(check)){return{isValid:false,error:new InvalidChecksum()};}
559return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1Y,localName:localName$1Y,abbreviation:abbreviation$1Y,validate:validate$1Y,format:format$1Y,compact:compact$1Y}=impl$1Y;const cif$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1Y,compact:compact$1Y,format:format$1Y,localName:localName$1Y,name:name$1Y,validate:validate$1Y},Symbol.toStringTag,{value:"Module"}));const checkDigits$1="TRWAGMYFPDXBNJZSQVHLCKE";function calcCheckDigit$1(value){return checkDigits$1[parseInt(value.substr(0,8),10)%23];}
560function clean$1Q(input){return cleanUnicode(input," -");}
561const impl$1X={name:"Spanish Personal Identify Code",localName:"Documento Nacional de Identidad",abbreviation:"DNI",compact(input){const[value,err]=clean$1Q(input);if(err){throw err;}
562return value;},format(input){const[value]=clean$1Q(input);return splitAt(value,8).join("-");},validate(input){const[value,error]=clean$1Q(input);if(error){return{isValid:false,error};}
563if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
564const[body,check]=splitAt(value,8);if("KLM".includes(body[0])&&isdigits(body.substring(1)));else if(!isdigits(body)){return{isValid:false,error:new InvalidComponent()};}else if(calcCheckDigit$1(body)!==check){return{isValid:false,error:new InvalidChecksum()};}
565return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1X,localName:localName$1X,abbreviation:abbreviation$1X,validate:validate$1X,format:format$1X,compact:compact$1X}=impl$1X;const dni=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1X,calcCheckDigit:calcCheckDigit$1,compact:compact$1X,format:format$1X,localName:localName$1X,name:name$1X,validate:validate$1X},Symbol.toStringTag,{value:"Module"}));const checkDigits="XYZ";function clean$1P(input){return cleanUnicode(input," -");}
566const impl$1W={name:"Spanish Foreign Number",localName:"Número de Identificación de Extranjero",abbreviation:"NIE",compact(input){const[value,err]=clean$1P(input);if(err){throw err;}
567return value;},format(input){const[value]=clean$1P(input);return splitAt(value,1,8).join("-");},validate(input){const[value,error]=clean$1P(input);if(error){return{isValid:false,error};}
568if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
569const[first,body,check]=splitAt(value,1,8);if(!isdigits(body)||!checkDigits.includes(first)||isdigits(check)){return{isValid:false,error:new InvalidComponent()};}
570if(calcCheckDigit$1(`${checkDigits.indexOf(first)}${body}
570`)!==check){return{isValid:false,error:new InvalidChecksum()};}
571return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1W,localName:localName$1W,abbreviation:abbreviation$1W,validate:validate$1W,format:format$1W,compact:compact$1W}=impl$1W;const nie$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1W,compact:compact$1W,format:format$1W,localName:localName$1W,name:name$1W,validate:validate$1W},Symbol.toStringTag,{value:"Module"}));function clean$1O(input){const[value,err]=cleanUnicode(input," -./");if(err){return[value,err];}
572if(value.startsWith("ES")){return[value.substr(2),null];}
573return[value,null];}
574const impl$1V={name:"Spanish VAT Number",localName:"Número de Identificación Fiscal",abbreviation:"NIF",compact(input){const[value,err]=clean$1O(input);if(err){throw err;}
575return value;},format(input){const[value]=clean$1O(input);return splitAt(value,1).join("-");},validate(input){const[value,error]=clean$1O(input);if(error){return{isValid:false,error};}
576if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
577if("KLM".includes(value[0])){if(value[value.length-1]!==calcCheckDigit$1(value.substr(1))){return{isValid:false,error:new InvalidChecksum()};}
578return{isValid:true,compact:value,isIndividual:true,isCompany:false};}
579if(isdigits(value[0])){return validate$1X(value);}
580if("XYZ".includes(value[0])){return validate$1W(value);}
581return validate$1Y(value);}};const{name:name$1V,localName:localName$1V,abbreviation:abbreviation$1V,validate:validate$1V,format:format$1V,compact:compact$1V}=impl$1V;const nif$2=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1V,compact:compact$1V,format:format$1V,localName:localName$1V,name:name$1V,validate:validate$1V},Symbol.toStringTag,{value:"Module"}));const PROVINCES$1={ÁLAVA:"01",ALBACETE:"02",ALICANTE:"03",ALMERÍA:"04",ASTURIAS:"33",ÁVILA:"05",BADAJOZ:"06",BALEARES:"07",BARCELONA:"08",BURGOS:"09",CÁCERES:"10",CÁDIZ:"11",CANTABRIA:"39",CASTELLÓN:"12","CIUDAD REAL":"13",CÓRDOBA:"14",CORUÑA:"15",CUENCA:"16",GERONA:"17",GRANADA:"18",GUADALAJARA:"19",GUIPÚZCOA:"20",HUELVA:"21",HUESCA:"22",JAÉN:"23",LEÓN:"24",LÉRIDA:"25",LUGO:"27",MADRID:"28",MÁLAGA:"29",MURCIA:"30",NAVARRA:"31",ORENSE:"32",PALENCIA:"34","PALMAS (LAS)":"35",PONTEVEDRA:"36","RIOJA (LA)":"26",SALAMANCA:"37","SANTA CRUZ DE TENERIFE":"38",SEGOVIA:"40",SEVILLA:"41",SORIA:"42",TARRAGONA:"43",TERUEL:"44",TOLEDO:"45",VALENCIA:"46",VALLADOLID:"47",VIZCAYA:"48",ZAMORA:"49",ZARAGOZA:"50","OTROS TERRITORIOS":"53",EXTRANJERO:"66"};const VALID_PROVINCES$1=Object.values(PROVINCES$1);function clean$1N(input){return cleanUnicode(input," -/");}
582const impl$1U={name:"Spanish Social Security Number",localName:"Número de Seguridad Social",abbreviation:"NSS",compact(input){const[value,err]=clean$1N(input);if(err){throw err;}
583return value;},format(input){const[value]=clean$1N(input);return splitAt(value,2).join("-");},validate(input){const[value,error]=clean$1N(input);if(error){return{isValid:false,error};}
584if(value.length!==12){return{isValid:false,error:new InvalidLength()};}
585if(!isdigits(value)){return{isValid:false,error:new InvalidComponent()};}
586const[province,body,check]=splitAt(value,2,10);if(!VALID_PROVINCES$1.includes(province)){return{isValid:false,error:new InvalidComponent()};}
587if(parseInt(province+body,10)%97!==parseInt(check,10)){return{isValid:false,error:new InvalidChecksum()};}
588return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1U,localName:localName$1U,abbreviation:abbreviation$1U,validate:validate$1U,format:format$1U,compact:compact$1U}=impl$1U;const nss=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1U,compact:compact$1U,format:format$1U,localName:localName$1U,name:name$1U,validate:validate$1U},Symbol.toStringTag,{value:"Module"}));const ES=Object.freeze(Object.defineProperty({__proto__:null,cif:cif$1,dni,nie:nie$1,nif:nif$2,nss},Symbol.toStringTag,{value:"Module"}));function clean$1M(input){const[value,err]=cleanUnicode(input," ");
588if(err!==null){return[value,err];}
589if(value.startsWith("FI")){return[value.substr(2),null];}
590return[value,null];}
591const impl$1T={name:"Finnish VAT Number",localName:"Arvonlisäveronumero Mervärdesskattenummer",abbreviation:"ALV nro",compact(input){const[value,err]=clean$1M(input);if(err){throw err;}
592return value;},format(input){const[value]=clean$1M(input);return value;},validate(input){const[value,error]=clean$1M(input);if(error){return{isValid:false,error};}
593if(value.length!==8){return{isValid:false,error:new InvalidLength()};}
594if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
595const sum=weightedSum(value,{modulus:11,weights:[7,9,10,5,8,4,2,1]});if(sum!==0){return{isValid:false,error:new InvalidChecksum()};}
596return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1T,localName:localName$1T,abbreviation:abbreviation$1T,validate:validate$1T,format:format$1T,compact:compact$1T}=impl$1T;const alv=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1T,compact:compact$1T,format:format$1T,localName:localName$1T,name:name$1T,validate:validate$1T},Symbol.toStringTag,{value:"Module"}));function clean$1L(input){return cleanUnicode(input," ");}
597const CHECK_ALPHA="0123456789ABCDEFHJKLMNPRSTUVWXY";const CENTURY={"+":"18","-":"19",Y:"19",X:"19",W:"19",V:"19",U:"19",A:"20",B:"20",C:"20",D:"20",E:"20",F:"20"};const VALID_CENTURY=Object.keys(CENTURY);const impl$1S={name:"Finnish Personal Identity Code",localName:"Henkilötunnus",abbreviation:"HETU",compact(input){const[value,err]=clean$1L(input);if(err){throw err;}
598return value;},format(input){const[value]=clean$1L(input);return value;},validate(input){const[value,error]=clean$1L(input);if(error){return{isValid:false,error};}
599if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
600const[front,,back,check2]=splitAt(value,6,7,-1);if(!isdigits(front)||!isdigits(back)||!CHECK_ALPHA.includes(check2)){return{isValid:false,error:new InvalidFormat()};}
601if(!VALID_CENTURY.includes(value[6])){return{isValid:false,error:new InvalidComponent()};}
602const[dd,mm,yy,century2,person,check]=splitAt(value,2,4,6,7,10);if(!isValidDate(`${CENTURY[century2]}${yy}`,mm,dd,true)){return{isValid:false,error:new InvalidComponent()};}
603const checkable=`${dd}${mm}${yy}${person}`;if(CHECK_ALPHA[parseInt(checkable,10)%CHECK_ALPHA.length]!==check){return{isValid:false,error:new InvalidChecksum()};}
604return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1S,localName:localName$1S,abbreviation:abbreviation$1S,validate:validate$1S,format:format$1S,compact:compact$1S}=impl$1S;const hetu=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1S,compact:compact$1S,format:format$1S,localName:localName$1S,name:name$1S,validate:validate$1S},Symbol.toStringTag,{value:"Module"}));function clean$1K(input){return cleanUnicode(input," -");}
605const impl$1R={name:"Finnish Business Identifier",localName:"Yritys- ja yhteisötunnus",abbreviation:"Y-tunnus",compact(input){const[value,err]=clean$1K(input);if(err){throw err;}
606return value;},format(input){const[value]=clean$1K(input);return splitAt(value,-1).join("-");},validate(input){const[value,error]=clean$1K(input);if(error){return{isValid:false,error};}
607return validate$1T(value);}};const{name:name$1R,localName:localName$1R,abbreviation:abbreviation$1R,validate:validate$1R,format:format$1R,compact:compact$1R}=impl$1R;const ytunnus=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1R,compact:compact$1R,format:format$1R,localName:localName$1R,name:name$1R,validate:validate$1R},Symbol.toStringTag,{value:"Module"}));const FI=Object.freeze(Object.defineProperty({__proto__:null,alv,hetu,ytunnus},Symbol.toStringTag,{value:"Module"}));function clean$1J(input){return cleanUnicode(input," -.");}
608const impl$1Q={name:"Vinnutal",localName:"NAME",abbreviation:"VN",compact(input){const[value,err]=clean$1J(input);if(err){throw err;}
609return value;},format(input){const[value]=clean$1J(input);return value;},validate(input){const[value,error]=clean$1J(input);if(error){return{isValid:false,error};}
610if(value.length!==6){return{isValid:false,error:new InvalidLength()};}
611if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
612return{isValid:true,compact:value,isIndividual:false,isCompany:false};}};const{name:name$1Q,localName:localName$1Q,abbreviation:abbreviation$1Q,validate:validate$1Q,format:format$1Q,compact:compact$1Q}=impl$1Q;const vn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1Q,compact:compact$1Q,format:format$1Q,localName:localName$1Q,name:name$1Q,validate:validate$1Q},Symbol.toStringTag,{value:"Module"}));const FO=Object.freeze(Object.defineProperty({__proto__:null,vn},Symbol.toStringTag,{value:"Module"}));function clean$1I(input){return cleanUnicode(input," ");}
613const impl$1P={name:"French Tax Identification Number",localName:"Numéro d'Immatriculation Fiscale",abbreviation:"NIF",compact(input){const[value,err]=clean$1I(input);if(err){throw err;}
614return value;},format(input){const[value]=clean$1I(input);return splitAt(value,2,4,7,10).join(" ");},validate(input){const[value,error]=clean$1I(input);if(error){return{isValid:false,error};}
615if(value.length!==13){return{isValid:false,error:new InvalidLength()};}
616if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
617const[prefix,check]=splitAt(value,10);const pvalue=parseInt(prefix,10);if(!"0123".includes(value[0])){return{isValid:false,error:new InvalidComponent()};}
618if(pvalue===0){return{isValid:false,error:new InvalidComponent()};}
619if(String(pvalue%511).padStart(3,"0")!==check){return{isValid:false,error:new InvalidChecksum()};}
620return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1P,localName:localName$1P,abbreviation:abbreviation$1P,validate:validate$1P,format:format$1P,compact:compact$1P}=impl$1P;const nif$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1P,compact:compact$1P,format:format$1P,localName:localName$1P,name:name$1P,validate:validate$1P},Symbol.toStringTag,{value:"Module"}));function clean$1H(input){return cleanUnicode(input," .");}
621const impl$1O={name:"French Personal Identification Number",localName:"Numéro d’Inscription au RNIPP",abbreviation:"NI
621R",compact(input){const[value,err]=clean$1H(input);if(err){throw err;}
622return value;},format(input){const[value]=clean$1H(input);return splitAt(value,1,3,5,7,10,13).join(" ");},validate(input){const[value,error]=clean$1H(input);if(error){return{isValid:false,error};}
623if(value.length!==15){return{isValid:false,error:new InvalidLength()};}
624const[pre,dept,post,check]=splitAt(value,5,7,13);if(!isdigits(pre)||!isdigits(post)||!isdigits(check)){return{isValid:false,error:new InvalidFormat()};}
625let add="";if(dept==="2A"){add="19";}else if(dept==="2B"){add="18";}else if(isdigits(dept)){add=dept;}else{return{isValid:false,error:new InvalidComponent()};}
626const sum=parseInt(`${pre}${add}${post}`,10)%97;if(String(97-sum).padStart(2,"0")!==check){return{isValid:false,error:new InvalidChecksum()};}
627return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1O,localName:localName$1O,abbreviation:abbreviation$1O,validate:validate$1O,format:format$1O,compact:compact$1O}=impl$1O;const nir=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1O,compact:compact$1O,format:format$1O,localName:localName$1O,name:name$1O,validate:validate$1O},Symbol.toStringTag,{value:"Module"}));function clean$1G(input){return cleanUnicode(input," .");}
628const impl$1N={name:"French Company Identification Number",localName:"Système d'Identification du Répertoire des Entreprises",abbreviation:"SIREN",compact(input){const[value,err]=clean$1G(input);if(err){throw err;}
629return value;},format(input){const[value]=clean$1G(input);return splitAt(value,3,6).join(" ");},validate(input){const[value,error]=clean$1G(input);if(error){return{isValid:false,error};}
630if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
631if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
632if(!luhnChecksumValidate(value)){return{isValid:false,error:new InvalidChecksum()};}
633return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1N,localName:localName$1N,abbreviation:abbreviation$1N,validate:validate$1N,format:format$1N,compact:compact$1N}=impl$1N;const siren=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1N,compact:compact$1N,format:format$1N,localName:localName$1N,name:name$1N,validate:validate$1N},Symbol.toStringTag,{value:"Module"}));function clean$1F(input){return cleanUnicode(input," -/");}
634const impl$1M={name:"French Company Establishment Identification Number",localName:"Système d'Identification du Répertoire des Établissements",abbreviation:"SIRET",compact(input){const[value,err]=clean$1F(input);if(err){throw err;}
635return value;},format(input){const[value]=clean$1F(input);return splitAt(value,3,6,9).join(" ");},validate(input){const[value,error]=clean$1F(input);if(error){return{isValid:false,error};}
636if(value.length!==14){return{isValid:false,error:new InvalidLength()};}
637if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
638if(value.startsWith("356000000")&&value!=="35600000000048"){const sum=weightedSum(value,{weights:[1],modulus:5});if(sum!==0){return{isValid:false,error:new InvalidChecksum()};}}else if(!luhnChecksumValidate(value)){return{isValid:false,error:new InvalidChecksum()};}
639return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1M,localName:localName$1M,abbreviation:abbreviation$1M,validate:validate$1M,format:format$1M,compact:compact$1M}=impl$1M;const siret=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1M,compact:compact$1M,format:format$1M,localName:localName$1M,name:name$1M,validate:validate$1M},Symbol.toStringTag,{value:"Module"}));function clean$1E(input){const[value,err]=cleanUnicode(input," -.");if(err!==null){return[value,err];}
640if(value.startsWith("FR")){return[value.substr(2),null];}
641return[value,null];}
642const alphabet$2="0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";const impl$1L={name:"French VAT Number",localName:"Numéro d'Identification à la Taxe sur la Valeur Ajoutée",abbreviation:"n°TVA",compact(input){const[value,err]=clean$1E(input);if(err){throw err;}
643return value;},format(input){const[value]=clean$1E(input);return splitAt(value,2,5,8).join(" ");},validate(input){const[value,error]=clean$1E(input);if(error){return{isValid:false,error};}
644if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
645const[check,back]=splitAt(value,2);if(!alphabet$2.includes(check[0])||!alphabet$2.includes(check[1])){return{isValid:false,error:new InvalidFormat()};}
646if(!isdigits(back)){return{isValid:false,error:new InvalidFormat()};}
647if(value.substring(2,5)!=="000"){const r=validate$1N(value.substr(2));if(!r.isValid){return r;}}
648if(isdigits(check)){const sum=(12+3*(parseInt(back,10)%97))%97;if(sum!==parseInt(check,10)){return{isValid:false,error:new InvalidChecksum()};}}else{const c0=alphabet$2.indexOf(check[0]);const c1=alphabet$2.indexOf(check[1]);let cvalue;if(c0<10){cvalue=c0*24+c1-10;}else{cvalue=c0*34+c1-100;}
649const sum=(parseInt(back,10)+1+Math.floor(cvalue/11))%11;const digit=cvalue%11;if(sum!==digit){return{isValid:false,error:new InvalidChecksum()};}}
650return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1L,localName:localName$1L,abbreviation:abbreviation$1L,validate:validate$1L,format:format$1L,compact:compact$1L}=impl$1L;const tva$2=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1L,compact:compact$1L,format:format$1L,localName:localName$1L,name:name$1L,validate:validate$1L},Symbol.toStringTag,{value:"Module"}));const FR=Object.freeze(Object.defineProperty({__proto__:null,nif:nif$1,nir,siren,siret,tva:tva$2},Symbol.toStringTag,{value:"Module"}));const PREFIXES=new Set(["AA","AB","AE","AH","AK","AL","AM","AP","AR","AS","AT","AW","AX","AY","AZ","BA","BB","BE","BH","BK","BL","BM","BT","CA","CB","CE","CH","CK","CL","CR","EA","EB","EE","EH","EK","EL","EM","EP","ER","ES","ET","EW","EX","EY","EZ","GY","HA","HB","HE","HH","HK","HL","HM","HP","HR","HS","HT","HW","HX","HY","HZ","JA","JB","JC","JE","JG","JH","JJ","JK","JL","JM","JN","JP","JR","JS","JT","JW","JX","JY","JZ","KA","KB","KE","KH","KK","KL","KM","KP","KR","KS","KT","KW","KX","KY","KZ","LA","LB","LE","LH","LK","LL","LM","LP","LR","LS","LT","LW","LX","LY","LZ","MA","MW","MX","NA","NB","NE","NH","NL","NM","NP","NR","NS","NW","NX","NY","NZ","OA","OB","OE","OH","OK","OL","OM","OP","OR","OS","OX","PA","PB","PC","PE","PG","PH","PJ","PK","PL","PM","PN","PP","PR","PS","PT","PW","PX","PY","RA","RB","RE","RH","RK","RM","RP","RR","RS","RT","RW","RX","RY","RZ","SA","SB","SC","SE","SG","SH","SJ","SK","SL","SM","SN","SP","SR","SS","ST","SW","SX","SY","SZ","TA","TB","TE","TH","TK","TL","TM","TP","TR","TS","TT","TW","TX","TY","TZ","WA","WB","WE","WK","WL","WM","WP","YA","YB","YE","YH","YK","YL","YM","YP","YR","YS","YT","YW","YX","YY","YZ","ZA","ZB","ZE","ZH","ZK","ZL","ZM","ZP","ZR","ZS","ZT","ZW","ZX","ZY"]);function clean$1D(input){return cleanUnicode(input," -.");}
651function validLength(value){return[8,9].includes(value.length);}
652const VALID_FORMAT_REGEX=/^([A-Z]{2})\d{6}[A-D]?$/;function validFormat(value){const matchData=value.toUpperCase().match(VALID_FORMAT_REGEX);return!!matchData&&PREFIXES.has(matchData[1]);}
653const impl$1K={name:"United Kingdom National Insurance Number",localName:"National Insurance Number",abbreviation:"NINO",compact(input){const[value,err]=clean$1D(input);if(err){throw err;}
654return value;},format(input){const[value]=clean$1D(input);return value;},validate(input){const[value,error]=clean$1D(input);if(error){return{isValid:false,error};}
655if(!validLength(value)){return{isValid:false,error:new InvalidLength()};}
656if(!validFormat(value)){return{isValid:false,error:new InvalidFormat()};}
657return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1K,localName:localName$1K,abbreviation:abbreviation$1K,validate:validate$1K,format:format$1K,compact:compact$1K}=impl$1K;const nino=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1K,compact:compact$1K,format:format$1K,localName:localName$1K,name:name$1K,validate:validate$1K},Symbol.toStringTag,{value:"Module"}));function clean$1C(input){return cleanUnicode(input," ");}
658const impl$1J={name:"United Kingdom Unique Taxpayer Reference",localName:"Unique Taxpayer Reference",abbreviation:"UTR",compact(input){const[value,err]=clean$1C(input);if(err){throw err;}
659return value;},format(input){const[value]=clean$1C(input);return value;},validate(input){const[value,error]=clean$1C(input);if(error){return{isValid:false,error};}
660if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
661if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
662const[check,back]=splitAt(value,1);const sum=weightedSum(back,{weights:[6,7,8,9,10,5,4,3,2],modulus:11});const digit="21987654321"[sum];
662if(digit!==check){return{isValid:false,error:new InvalidChecksum()};}
663return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1J,localName:localName$1J,abbreviation:abbreviation$1J,validate:validate$1J,format:format$1J,compact:compact$1J}=impl$1J;const utr=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1J,compact:compact$1J,format:format$1J,localName:localName$1J,name:name$1J,validate:validate$1J},Symbol.toStringTag,{value:"Module"}));function clean$1B(input){const[value,err]=cleanUnicode(input," -/");if(err!==null){return[value,err];}
664if(value.startsWith("GB")){return[value.substr(2),null];}
665return[value,null];}
666const impl$1I={name:"United Kingdom (and Isle of Man) VAT Number",localName:"Value Added Tax Registration Number",abbreviation:"VAT Reg No",compact(input){const[value,err]=clean$1B(input);if(err){throw err;}
667return value;},format(input){const[value]=clean$1B(input);return splitAt(value,3,7).join(" ");},validate(input){const[value,error]=clean$1B(input);if(error){return{isValid:false,error};}
668if(value.length===5){if(!isdigits(value.substr(2))){return{isValid:false,error:new InvalidFormat()};}
669const cvalue=parseInt(value.substr(2),10);if(value.startsWith("GD")&&cvalue>=500){return{isValid:false,error:new InvalidComponent()};}
670if(value.startsWith("HA")&&cvalue<500){return{isValid:false,error:new InvalidComponent()};}}else if(value.length===11&&(value.startsWith("GD8888")||value.startsWith("HA8888"))){if(!isdigits(value.substr(6))){return{isValid:false,error:new InvalidFormat()};}
671const cvalue=parseInt(value.substr(6,3),10);if(value.startsWith("GD")&&cvalue>=500){return{isValid:false,error:new InvalidComponent()};}
672if(value.startsWith("HA")&&cvalue<500){return{isValid:false,error:new InvalidComponent()};}
673if(cvalue%97!==parseInt(value.substr(9,2),10)){return{isValid:false,error:new InvalidChecksum()};}}else if(value.length===9||value.length===12){if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
674const sum=weightedSum(value.substr(0,9),{weights:[8,7,6,5,4,3,2,10,1],modulus:97});if(Number(value.substring(0,3))>=100){if(![0,42,55].includes(sum)){return{isValid:false,error:new InvalidChecksum()};}}else if(sum!==0){return{isValid:false,error:new InvalidChecksum()};}}else{return{isValid:false,error:new InvalidLength()};}
675return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1I,localName:localName$1I,abbreviation:abbreviation$1I,validate:validate$1I,format:format$1I,compact:compact$1I}=impl$1I;const vat$4=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1I,compact:compact$1I,format:format$1I,localName:localName$1I,name:name$1I,validate:validate$1I},Symbol.toStringTag,{value:"Module"}));const GB=Object.freeze(Object.defineProperty({__proto__:null,nino,utr,vat:vat$4},Symbol.toStringTag,{value:"Module"}));function clean$1A(input){return cleanUnicode(input," -");}
676const validRe$5=/^[PCGQV]{1}00[A-Z0-9]{8}$/;const ALPHABET$5="0123456789X";const impl$1H={name:"Taxpayer Identification Number",localName:"",abbreviation:"TIN",compact(input){const[value,err]=clean$1A(input);if(err){throw err;}
677return value;},format(input){const[value]=clean$1A(input);return value;},validate(input){const[value,error]=clean$1A(input);if(error){return{isValid:false,error};}
678if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
679if(!validRe$5.test(value)){return{isValid:false,error:new InvalidFormat()};}
680const[,front,check]=splitAt(value,1,10);const sum=weightedSum(front,{weights:[1,2,3,4,5,6,7,8,9,10],modulus:11});if(ALPHABET$5[sum]!==check){return{isValid:false,error:new InvalidChecksum()};}
681return{isValid:true,compact:value,isIndividual:value[0]==="P",isCompany:value[0]!=="P"};}};const{name:name$1H,localName:localName$1H,abbreviation:abbreviation$1H,validate:validate$1H,format:format$1H,compact:compact$1H}=impl$1H;const tin$2=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1H,compact:compact$1H,format:format$1H,localName:localName$1H,name:name$1H,validate:validate$1H},Symbol.toStringTag,{value:"Module"}));const GH=Object.freeze(Object.defineProperty({__proto__:null,tin:tin$2},Symbol.toStringTag,{value:"Module"}));function clean$1z(input){return cleanUnicode(input," -");}
682const impl$1G={name:"Greek Social Security Number",localName:"Αριθμός Μητρώου Κοινωνικής Ασφάλισης",abbreviation:"AMKA",compact(input){const[value,err]=clean$1z(input);if(err){throw err;}
683return value;},format(input){const[value]=clean$1z(input);return value;},validate(input){const[value,error]=clean$1z(input);if(error){return{isValid:false,error};}
684if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
685if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
686const[dd,mm,yy]=splitAt(value,2,4,6);if(!isValidDate(yy,mm,dd)){return{isValid:false,error:new InvalidComponent()};}
687if(!luhnChecksumValidate(value)){return{isValid:false,error:new InvalidChecksum()};}
688return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1G,localName:localName$1G,abbreviation:abbreviation$1G,validate:validate$1G,format:format$1G,compact:compact$1G}=impl$1G;const amka=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1G,compact:compact$1G,format:format$1G,localName:localName$1G,name:name$1G,validate:validate$1G},Symbol.toStringTag,{value:"Module"}));function clean$1y(input){const[value,err]=cleanUnicode(input," ");
688if(err!==null){return[value,err];}
689let num=value;if(value.startsWith("GR")||value.startsWith("EL")){num=value.substr(2);}
690if(num.length===8){return[`0${num}`,null];}
691return[num,null];}
692const impl$1F={name:"Greek VAT Number",localName:"Αριθμός Φορολογικού Μητρώου",abbreviation:"ΑΦΜ",compact(input){const[value,err]=clean$1y(input);if(err){throw err;}
693return value;},format(input){const[value]=clean$1y(input);return value;},validate(input){const[value,error]=clean$1y(input);if(error){return{isValid:false,error};}
694if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
695if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
696const[front,check]=splitAt(value,-1);const sum=front.split("").map((v)=>parseInt(v,10)).reduce((acc,v)=>acc*2+v,0);if(String(sum*2%11%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
697return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1F,localName:localName$1F,abbreviation:abbreviation$1F,validate:validate$1F,format:format$1F,compact:compact$1F}=impl$1F;const vat$3=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1F,compact:compact$1F,format:format$1F,localName:localName$1F,name:name$1F,validate:validate$1F},Symbol.toStringTag,{value:"Module"}));const GR=Object.freeze(Object.defineProperty({__proto__:null,amka,vat:vat$3},Symbol.toStringTag,{value:"Module"}));function clean$1x(input){return cleanUnicode(input," -");}
698const impl$1E={name:"Numéro d'Identification Fiscale Permanent",localName:"",abbreviation:"NIFP",compact(input){const[value,err]=clean$1x(input);if(err){throw err;}
699return value;},format(input){const[value]=clean$1x(input);return splitAt(value,3,6).join("-");},validate(input){const[value,error]=clean$1x(input);if(error){return{isValid:false,error};}
700if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
701if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
702if(!luhnChecksumValidate(value)){return{isValid:false,error:new InvalidChecksum()};}
703return{isValid:true,compact:value,isIndividual:false,isCompany:false};}};const{name:name$1E,localName:localName$1E,abbreviation:abbreviation$1E,validate:validate$1E,format:format$1E,compact:compact$1E}=impl$1E;const nifp=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1E,compact:compact$1E,format:format$1E,localName:localName$1E,name:name$1E,validate:validate$1E},Symbol.toStringTag,{value:"Module"}));const GN=Object.freeze(Object.defineProperty({__proto__:null,nifp},Symbol.toStringTag,{value:"Module"}));function clean$1w(input){return cleanUnicode(input," -");}
704const citiesPerRegion={"01":17,"02":8,"03":16,"04":16,"05":13,"06":14,"07":19,"08":8,"09":24,"10":21,"11":9,"12":30,"13":32,"14":21,"15":8,"16":17,"17":14,"18":5,"19":11,"20":11,"21":7,"22":17};const impl$1D={name:"Guatemala Identity Number",localName:"Código Único de Identificación",abbreviation:"CUI",compact(input){const[value,err]=clean$1w(input);if(err){throw err;}
705return value;},format(input){const[value]=clean$1w(input);return splitAt(value,4,9).join("-");},validate(input){const[value,error]=clean$1w(input);if(error){return{isValid:false,error};}
706if(value.length!==13){return{isValid:false,error:new InvalidLength()};}
707if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
708const[front,check,region,city]=splitAt(value,8,9,11);const cities2=citiesPerRegion[region];if(!cities2){return{isValid:false,error:new InvalidComponent()};}
709if(parseInt(city,10)>cities2){return{isValid:false,error:new InvalidComponent()};}
710const digit=String(weightedSum(front,{weights:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],modulus:11})%10);if(check!==digit){return{isValid:false,error:new InvalidChecksum()};}
711return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1D,localName:localName$1D,abbreviation:abbreviation$1D,validate:validate$1D,format:format$1D,compact:compact$1D}=impl$1D;const cui$2=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1D,compact:compact$1
711D,format:format$1D,localName:localName$1D,name:name$1D,validate:validate$1D},Symbol.toStringTag,{value:"Module"}));function clean$1v(input){return cleanUnicode(input," -");}
712const checkDigit="0123456789K";const impl$1C={name:"Guatemala Tax Number",localName:"Número de Identificación Tributaria",abbreviation:"NIT",compact(input){const[value,err]=clean$1v(input);if(err){throw err;}
713return value;},format(input){const[value]=clean$1v(input);return splitAt(value,-1).join("-");},validate(input){const[value,error]=clean$1v(input);if(error){return{isValid:false,error};}
714if(value.length<2||value.length>12){return{isValid:false,error:new InvalidLength()};}
715const[front,check]=splitAt(value,-1);if(!isdigits(front)){return{isValid:false,error:new InvalidFormat()};}
716if(!checkDigit.includes(check)){return{isValid:false,error:new InvalidComponent()};}
717const sum=(11-weightedSum(front,{reverse:true,weights:[2,3,4,5,6,7,8,9,10,11,12,13,14],modulus:11}))%11;if(check!==checkDigit[sum]){return{isValid:false,error:new InvalidChecksum()};}
718return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1C,localName:localName$1C,abbreviation:abbreviation$1C,validate:validate$1C,format:format$1C,compact:compact$1C}=impl$1C;const nit$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1C,compact:compact$1C,format:format$1C,localName:localName$1C,name:name$1C,validate:validate$1C},Symbol.toStringTag,{value:"Module"}));const GT=Object.freeze(Object.defineProperty({__proto__:null,cui:cui$2,nit:nit$1},Symbol.toStringTag,{value:"Module"}));function clean$1u(input){return cleanUnicode(input," -()");}
719const alphabet$1="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";const impl$1B={name:"Hong Kong Identity Card Number",localName:"香港身份證",abbreviation:"HKID",compact(input){const[value,err]=clean$1u(input);if(err){throw err;}
720return value;},format(input){const[value]=clean$1u(input);return value;},validate(input){const[value,error]=clean$1u(input);if(error){return{isValid:false,error};}
721if(value.length!==8&&value.length!==9){return{isValid:false,error:new InvalidLength()};}
722if(!/^[A-NP-Z]{1,2}[0-9]{6}[0-9A]$/.test(value)){return{isValid:false,error:new InvalidFormat()};}
723const[front,check]=splitAt(value,-1);const sum=(weightedSum(front,{modulus:11,weights:front.length===7?[8,7,6,5,4,3,2,1]:[9,8,7,6,5,4,3,2,1],alphabet:alphabet$1})+(front.length===7?5:0))%11;if(alphabet$1[(11-sum)%11]!==check){return{isValid:false,error:new InvalidChecksum()};}
724return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1B,localName:localName$1B,abbreviation:abbreviation$1B,validate:validate$1B,format:format$1B,compact:compact$1B}=impl$1B;const hkid=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1B,compact:compact$1B,format:format$1B,localName:localName$1B,name:name$1B,validate:validate$1B},Symbol.toStringTag,{value:"Module"}));const HK=Object.freeze(Object.defineProperty({__proto__:null,hkid},Symbol.toStringTag,{value:"Module"}));function clean$1t(input){return cleanUnicode(input," -","HR");}
725const impl$1A={name:"Croatian Personal Identification Number",localName:"Osobni Identifikacijski Broj",abbreviation:"OIB",compact(input){const[value,err]=clean$1t(input);if(err){throw err;}
726return value;},format(input){const[value]=clean$1t(input);return value;},validate(input){const[value,error]=clean$1t(input);if(error){return{isValid:false,error};}
727if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
728if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
729if(!iso7064mod10x11validate(value)){return{isValid:false,error:new InvalidChecksum()};}
730return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1A,localName:localName$1A,abbreviation:abbreviation$1A,validate:validate$1A,format:format$1A,compact:compact$1A}=impl$1A;const oib=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1A,compact:compact$1A,format:format$1A,localName:localName$1A,name:name$1A,validate:validate$1A},Symbol.toStringTag,{value:"Module"}));const HR=Object.freeze(Object.defineProperty({__proto__:null,oib},Symbol.toStringTag,{value:"Module"}));function clean$1s(input){return cleanUnicode(input," -","HU");}
731const impl$1z={name:"Hugarian VAT Number",localName:"Közösségi Adószám",abbreviation:"ANUM",compact(input){const[value,err]=clean$1s(input);if(err){throw err;}
732return value;},format(input){const[value]=clean$1s(input);return value;},validate(input){const[value,error]=clean$1s(input);if(error){return{isValid:false,error};}
733if(value.length!==8){return{isValid:false,error:new InvalidLength()};}
734if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
735const sum=weightedSum(value,{modulus:10,weights:[9,7,3,1,9,7,3,1]});if(sum!==0){return{isValid:false,error:new InvalidChecksum()};}
736return{isValid:true,compact:value,isIndividual:true,isCompany:true};}};const{name:name$1z,localName:localName$1z,abbreviation:abbreviation$1z,validate:validate$1z,format:format$1z,compact:compact$1z}=impl$1z;const anum=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1z,compact:compact$1z,format:format$1z,localName:localName$1z,name:name$1z,validate:validate$1z},Symbol.toStringTag,{value:"Module"}));const HU=Object.freeze(Object.defineProperty({__proto__:null,anum},Symbol.toStringTag,{value:"Module"}));function clean$1r(input){return cleanUnicode(input," -.");}
737const NPWP_TAX_IDENTITIES=["01","02","21","31","00","20","04","05","06","07","08","09","24","25","26","31","34","35","36","47","48","49","57","58","67","77","78","79","87","88","89","97"];const impl$1y={name:"Indonesian VAT Number",localName:"Nomor Pokok Wajib Pajak",abbreviation:"NPWP",compact(input){const[value,err]=clean$1r(input);if(err){throw err;}
738return value;},format(input){const[value]=clean$1r(input);const[a,b,c,d,e,f]=splitAt(value,2,5,8,9,12);return`${a}.${b}.${c}.${d}-${e}.${f}`;},validate(input){const[value,error]=clean$1r(input);if(error){return{isValid:false,error};}
739if(value.length!==15){return{isValid:false,error:new InvalidLength()};}
740if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
741if(!NPWP_TAX_IDENTITIES.includes(value.substr(0,2))){return{isValid:false,error:new InvalidComponent()};}
742if(!luhnChecksumValidate(value.substr(0,9))){return{isValid:false,error:new InvalidChecksum()};}
743return{isValid:true,compact:value,isIndividual:true,isCompany:true};}};const{name:name$1y,localName:localName$1y,abbreviation:abbreviation$1y,validate:validate$1y,format:format$1y,compact:compact$1y}=impl$1y;const npwp=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1y,compact:compact$1y,format:format$1y,localName:localName$1y,name:name$1y,validate:validate$1y},Symbol.toStringTag,{value:"Module"}));const ID=Object.freeze(Object.defineProperty({__proto__:null,npwp},Symbol.toStringTag,{value:"Module"}));function clean$1q(input){return cleanUnicode(input," ","IE");}
744const ALPHABET$4="WABCDEFGHIJKLMNOPQRSTUV";function calcCheckDigit(valueIn){const value=valueIn.padStart(7,"0");const d1=value.substr(0,7).split("").reduce((acc,vv,idx)=>{const v=Number.parseInt(vv,10);return acc+(8-idx)*v;},0);const d2=value.length===8?9*ALPHABET$4.indexOf(value[7]):0;return ALPHABET$4[(d1+d2)%23];}
745const impl$1x={name:"Irish VAT Number",localName:"Cáin Bhreisluacha",abbreviation:"CBL",compact(input){const[value,err]=clean$1q(input);if(err){throw err;}
746return value;},format(input){const[value]=clean$1q(input);return value;},validate(input){const[value,error]=clean$1q(input);if(error){return{isValid:false,error};}
747if(value.length!==8&&value.length!==9){return{isValid:false,error:new InvalidLength()};}
748if(!isdigits(value[0])||!isdigits(value.substr(2,5))){return{isValid:false,error:new InvalidFormat()};}
749const[front,end]=splitAt(value,7);if(!end.split("").every((v)=>ALPHABET$4.includes(v))){return{isValid:false,error:new InvalidFormat()};}
750if(isdigits(front)){if(value[7]!==calcCheckDigit(`${front}${value.substr(8)}`)){return{isValid:false,error:new InvalidChecksum()};}}else if("ABCDEFGHIJKLMNOPQRSTUVWXYZ+*".includes(value[1])){if(value[7]!==calcCheckDigit(`${value.substr(2,5)}${value[0]}`)){return{isValid:false,error:new InvalidChecksum()};}}else{return{isValid:false,error:new InvalidFormat()};}
751return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1x,localName:localName$1x,abbreviation:abbreviation$1x,validate:validate$1x,format:format$1x,compact:compact$1x}=impl$1x;const vat$2=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1x,calcCheckDigit,compact:compact$1x,format:format$1x,localName:localName$1x,name:name$1x,validate:validate$1x},Symbol.toStringTag,{value:"Module"}));function clean$1p(input){return cleanUnicode(input," -");}
752const ppsRe=/^\d{7}[A-W][AHWTX]?$/;const impl$1w={name:"Irish Personal Number",localName:"Personal Public Service Number",abbreviation:"PPS",compact(input){const[value,err]=clean$1p(input);if(err){throw err;}
753return value;},format(input){const[value]=clean$1p(input);return value;},validate(input){const[value,error]=clean$1p(input);if(error){return{isValid:false,error};}
754if(value.length!==8&&value.length!==9){return{isValid:false,error:new InvalidLength()};}
755if(!ppsRe.test(value)){return{isValid:false,error:new InvalidFormat()};}
756if(value.length===9&&"AH".includes(value[8])){if(value[7]!==calcCheckDigit(`${value.substr(0,7)}${value.substr(8)}`)){return{isValid:false,error:new InvalidChecksum()};}}else if(value[7]!==calcCheckDigit(value.substr(0,7))){return{isValid:false,error:new InvalidChecksum()};}
757return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1w,localName:localName$1w,abbreviation:abbreviation$1w,validate:validate$1w,format:format$1w,compact:compact$1w}=impl$1w;const pps=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1w,compact:compact$1w,format:format$1w,localName:localName$1w,name:name$1w,validate:validate$1w},Symbol.toStringTag,{value:"Module"}));const IE=Object.freeze(Object.defineProperty({__proto__:null,pps,vat:vat$2},Symbol.toStringTag,{value:"Module"}));function clean$1o(input){return cleanUnicode(input," -");}
758const impl$1v={name:"Israeli Company Number",localName:"מספר חברה",abbreviation:"ח.פ.",compact(input){const[value,err]=clean$1o(input);if(err){throw err;}
759return value;},format(input){const[value]=clean$1o(input);return value;},validate(input){const[value,error]=clean$1o(input);if(error){return{isValid:false,error};}
760if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
761if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
762if(value[0]!=="5"){return{isValid:false,error:new InvalidComponent()};}
763if(!luhnChecksumValidate(value)){return{isValid:false,error:new InvalidChecksum()};}
764return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1v,localName:localName$1v,abbreviation:abbreviation$1v,validate:validate$1v,format:format$1v,compact:compact$1v}=impl$1v;const hp=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1v,compact:compact$1v,format:format$1v,localName:localName$1v,name:name$1v,validate:validate$1v},Symbol.toStringTag,{value:"Module"}));function clean$1n(input){return cleanUnicode(input," -");}
765const impl$1u={name:"Israeli Identify Number",localName:"Mispar Zehut, מספר זהות",compact(input){const[value,err]=clean$1n(input);if(err){throw err;}
766return value;},format(input){const[value]=clean$1n(input);return splitAt(value,-1).join("-");},validate(input){const[value,error]=clean$1n(input);if(error){return{isValid:false,error};}
767if(value.length>9){return{isValid:false,error:new InvalidLength()};}
768if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
769if(!luhnChecksumValidate(value.padStart(9,"0"))){return{isValid:false,error:new InvalidChecksum()};}
770return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1u,localName:localName$1u,abbreviation:abbreviation$1u,validate:validate$1u,format:format$1u,compact:compact$1u}=impl$1u;const idnr$2=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1u,compact:compact$1u,format:format$1u,localName:localName$1u,name:name$1u,validate:validate$1u},Symbol.toStringTag,{value:"Module"}));const IL=Object.freeze(Object.defineProperty({__proto__:null,hp,idnr:idnr$2},Symbol.toStringTag,{value:"Module"}));function clean$1m(input){return cleanUnicode(input," -");}
771const impl$1t={name:"Indian Digital Resident Personal Identity Number",localName:"Aadhaar",compact(input){const[value,err]=clean$1m(input);if(err){throw err;}
772return value;},format(input){const[value]=clean$1m(input);return splitAt(value,4,8).join(" ");},validate(input){const[value,error]=clean$1m(input);if(error){return{isValid:false,error};}
773if(value.length!==12){return{isValid:false,error:new InvalidLength()};}
774if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
775if(value[0]==="0"||value[0]==="1"){return{isValid:false,error:new InvalidFormat()};}
776if(value.split("").reverse().join("")===value){return{isValid:false,error:new InvalidFormat()};}
777if(!verhoeffValidate(value)){return{isValid:false,error:new InvalidChecksum()};}
778return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1t,localName:localName$1t,abbreviation:abbreviation$1t,validate:validate$1t,format:format$1t,compact:compact$1t}=impl$1t;const aadhaar=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1t,compact:compact$1t,format:format$1t,localName:localName$1t,name:name$1t,validate:validate$1t},Symbol.toStringTag,{value:"Module"}));function clean$1l(input){return cleanUnicode(input," -");}
779const PAN_HOLDER_TYPES={A:"Association of Persons (AOP)",B:"Body of Individuals (BOI)",C:"Company",F:"Firm/Limited Liability Partnership",G:"Government Agency",H:"Hindu Undivided Family (HUF)",L:"Local Authority",J:"Artificial Juridical Person",P:"Individual",T:"Trust",K:"Krish (Trust Krish)"};const VALID_PAN_HOLDERS=Object.keys(PAN_HOLDER_TYPES);const impl$1s={name:"Indian Income Tax Identifier",localName:"Permanent Account Number",abbreviation:"PAN",compact(input){const[value,err]=clean$1l(input);if(err){throw err;}
780return value;},format(input){const[value]=clean$1l(input);return value;},validate(input){const[value,error]=clean$1l(input);if(error){return{isValid:false,error};}
781if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
782if(!/^[A-Z]{5}[0-9]{4}[A-Z]$/.test(value)){return{isValid:false,error:new InvalidFormat()};}
783if(!VALID_PAN_HOLDERS.includes(value[3])){return{isValid:false,error:new InvalidComponent()};}
784const[,foo]=splitAt(value,5,9);if(foo==="0000"){return{isValid:false,error:new InvalidComponent()};}
785return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1s,localName:localName$1s,abbreviation:abbreviation$1s,validate:validate$1s,format:format$1s,compact:compact$1s}=impl$1s;const pan=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1s,compact:compact$1s,format:format$1s,localName:localName$1s,name:name$1s,validate:validate$1s},Symbol.toStringTag,{value:"Module"}));function clean$1k(input){return cleanUnicode(input," -");}
786const validRe$4=/^[A-Z]{3}[0-9]{7}$/;const impl$1r={name:"Electoral Photo Identity Card",localName:"",abbreviation:"EPIC",compact(input){const[value,err]=clean$1k(input);if(err){throw err;}
787return value;},format(input){const[value]=clean$1k(input);return value;},validate(input){const[value,error]=clean$1k(input);if(error){return{isValid:false,error};}
788if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
789if(!validRe$4.test(value)){return{isValid:false,error:new InvalidFormat()};}
790const[,front]=splitAt(value,3);if(!luhnChecksumValidate(front)){return{isValid:false,error:new InvalidChecksum()};}
791return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1r,localName:localName$1r,abbreviation:abbreviation$1r,validate:validate$1r,format:format$1r,compact:compact$1r}=impl$1r;const epic=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1r,compact:compact$1r,format:format$1r,localName:localName$1r,name:name$1r,validate
791:validate$1r},Symbol.toStringTag,{value:"Module"}));function clean$1j(input){return cleanUnicode(input," -");}
792const validRe$3=/^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][0-9A-Z]{3}$/;const ALPHABET$3="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";const STATE_CODES={"01":"Jammu and Kashmir","02":"Himachal Pradesh","03":"Punjab","04":"Chandigarh","05":"Uttarakhand","06":"Haryana","07":"Delhi","08":"Rajasthan","09":"Uttar Pradesh","10":"Bihar","11":"Sikkim","12":"Arunachal Pradesh","13":"Nagaland","14":"Manipur","15":"Mizoram","16":"Tripura","17":"Meghalaya","18":"Assam","19":"West Bengal","20":"Jharkhand","21":"Orissa","22":"Chattisgarh","23":"Madhya Pradesh","24":"Gujarat","25":"Daman and Diu","26":"Dadar and Nagar Haveli","27":"Maharashtra","28":"Andhra Pradesh","29":"Karnataka","30":"Goa","31":"Lakshadweep","32":"Kerala","33":"Tamil Nadu","34":"Puducherry","35":"Anadaman and Nicobar Islands","36":"Telangana","37":"Andhra Pradesh (New)"};const VALID_STATE_CODES=Object.keys(STATE_CODES);const impl$1q={name:"Indian VAT Number",localName:"Goods and Services Tax Identification Number",abbreviation:"GSTIN",compact(input){const[value,err]=clean$1j(input);if(err){throw err;}
793return value;},format(input){const[value]=clean$1j(input);return value;},validate(input){const[value,error]=clean$1j(input);if(error){return{isValid:false,error};}
794if(value.length!==15){return{isValid:false,error:new InvalidLength()};}
795if(!validRe$3.test(value)){return{isValid:false,error:new InvalidFormat()};}
796const[state,panValue]=splitAt(value,2,12);if(!VALID_STATE_CODES.includes(state)){return{isValid:false,error:new InvalidComponent()};}
797if(value[12]==="0"||value[13]!=="Z"){return{isValid:false,error:new InvalidComponent()};}
798if(!validate$1s(panValue).isValid){return{isValid:false,error:new InvalidComponent()};}
799const[first,check]=splitAt(value,-1);const sum=first.split("").map((char,index)=>{const product=ALPHABET$3.indexOf(char)*(index%2!==0?2:1);return Math.floor(product/ALPHABET$3.length)+product%ALPHABET$3.length;}).reduce((prev,current)=>{return prev+current;});const checksum2=(ALPHABET$3.length-sum%ALPHABET$3.length)%ALPHABET$3.length;if(ALPHABET$3[checksum2]!==check){return{isValid:false,error:new InvalidChecksum()};}
800return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1q,localName:localName$1q,abbreviation:abbreviation$1q,validate:validate$1q,format:format$1q,compact:compact$1q}=impl$1q;const gstin=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1q,compact:compact$1q,format:format$1q,localName:localName$1q,name:name$1q,validate:validate$1q},Symbol.toStringTag,{value:"Module"}));const IN=Object.freeze(Object.defineProperty({__proto__:null,aadhaar,epic,gstin,pan},Symbol.toStringTag,{value:"Module"}));function clean$1i(input){return cleanUnicode(input," -");}
801const impl$1p={name:"Icelandic Identity Code",localName:"Kennitala",compact(input){const[value,err]=clean$1i(input);if(err){throw err;}
802return value;},format(input){const[value]=clean$1i(input);return splitAt(value,6).join("-");},validate(input){const[value,error]=clean$1i(input);if(error){return{isValid:false,error};}
803if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
804if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
805const[dd,mm,yy,,centry]=splitAt(value,2,4,6,9);const dayValue=parseInt(dd,10);const isOrg=dayValue>40;const day=dayValue>40?String(dayValue-40).padStart(2,"0"):dd;const year=centry==="9"?`19${yy}`:`20${yy}`;if(!isValidDate(year,mm,day)){return{isValid:false,error:new InvalidComponent()};}
806const sum=weightedSum(value,{modulus:11,weights:[3,2,7,6,5,4,3,2,1,0]});if(sum!==0){return{isValid:false,error:new InvalidChecksum()};}
807return{isValid:true,compact:value,isIndividual:!isOrg,isCompany:isOrg};}};const{name:name$1p,localName:localName$1p,abbreviation:abbreviation$1p,validate:validate$1p,format:format$1p,compact:compact$1p}=impl$1p;const kennitala=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1p,compact:compact$1p,format:format$1p,localName:localName$1p,name:name$1p,validate:validate$1p},Symbol.toStringTag,{value:"Module"}));function clean$1h(input){return cleanUnicode(input," -","IS");}
808const impl$1o={name:"Icelandic VAT Number",localName:"Virðisaukaskattsnúmer",abbreviation:"VSK",compact(input){const[value,err]=clean$1h(input);if(err){throw err;}
809return value;},format(input){const[value]=clean$1h(input);return value;},validate(input){const[value,error]=clean$1h(input);if(error){return{isValid:false,error};}
810if(value.length!==5&&value.length!==6){return{isValid:false,error:new InvalidLength()};}
811if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
812return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1o,localName:localName$1o,abbreviation:abbreviation$1o,validate:validate$1o,format:format$1o,compact:compact$1o}=impl$1o;const vsk=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1o,compact:compact$1o,format:format$1o,localName:localName$1o,name:name$1o,validate:validate$1o},Symbol.toStringTag,{value:"Module"}));const IS=Object.freeze(Object.defineProperty({__proto__:null,kennitala,vsk},Symbol.toStringTag,{value:"Module"}));function clean$1g(input){return cleanUnicode(input," ");}
813const alphabet="0123456789BCDFGHJKLMNPQRSTUVWXYZ";const impl$1n={name:"Italian Code for Identification of Drugs",localName:"Autorizzazione all’Immissione in Commercio",abbreviation:"AIC",compact(input){const[value,err]=clean$1g(input);if(err){throw err;}
814return value;},format(input){const[value]=clean$1g(input);return value;},validate(input){const[value,error]=clean$1g(input);if(error){return{isValid:false,error};}
815if(value.length!==6&&value.length!==9){return{isValid:false,error:new InvalidLength()};}
816let base10=value;if(value.length===6){const chars=value.split("");
816if(!chars.every((v)=>alphabet.includes(v))){return{isValid:false,error:new InvalidFormat()};}
817base10=String(chars.reverse().reduce((acc,v,idx)=>acc+alphabet.indexOf(v)*Math.pow(32,idx),0)).padStart(9,"0");}
818if(!isdigits(base10)){return{isValid:false,error:new InvalidFormat()};}
819const[front,end]=splitAt(base10,-1);const sum=front.split("").map((v)=>parseInt(v,10)).reduce((acc,v,idx)=>{const vv=v*(idx%2+1);return acc+Math.floor(vv/10)+vv%10;},0);if(String(sum%10)!==end){return{isValid:false,error:new InvalidChecksum()};}
820return{isValid:true,compact:value,isIndividual:false,isCompany:false};}};const{name:name$1n,localName:localName$1n,abbreviation:abbreviation$1n,validate:validate$1n,format:format$1n,compact:compact$1n}=impl$1n;const aic=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1n,compact:compact$1n,format:format$1n,localName:localName$1n,name:name$1n,validate:validate$1n},Symbol.toStringTag,{value:"Module"}));const checkRe$1=/^[A-Z]{6}[0-9LMNPQRSTUV]{2}[ABCDEHLMPRST]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1}$/;const CHECK_CODE_ODD={0:1,1:0,2:5,3:7,4:9,5:13,6:15,7:17,8:19,9:21,A:1,B:0,C:5,D:7,E:9,F:13,G:15,H:17,I:19,J:21,K:2,L:4,M:18,N:20,O:11,P:3,Q:6,R:8,S:12,T:14,U:16,V:10,W:22,X:25,Y:24,Z:23};const CHECK_CODE_EVEN={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:0,B:1,C:2,D:3,E:4,F:5,G:6,H:7,I:8,J:9,K:10,L:11,M:12,N:13,O:14,P:15,Q:16,R:17,S:18,T:19,U:20,V:21,W:22,X:23,Y:24,Z:25};const CHECK_CODE_CHARS="ABCDEFGHIJKLMNOPQRSTUVWXYZ";function clean$1f(input){return cleanUnicode(input," -:");}
821const impl$1m={name:"Italian Tax Code",localName:"Codice Fiscale",abbreviation:"CF",compact(input){const[value,err]=clean$1f(input);if(err){throw err;}
822return value;},format(input){const[value]=clean$1f(input);return value;},validate(input){const[value,error]=clean$1f(input);if(error){return{isValid:false,error};}
823if(value.length!==16){return{isValid:false,error:new InvalidLength()};}
824if(!checkRe$1.test(value)){return{isValid:false,error:new InvalidFormat()};}
825const[front,check]=splitAt(value,-1);const sum=front.split("").reduce((acc,v,idx)=>(acc+(idx%2===1?CHECK_CODE_EVEN[v]:CHECK_CODE_ODD[v]))%26,0);if(CHECK_CODE_CHARS[sum]!==check){return{isValid:false,error:new InvalidChecksum()};}
826return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1m,localName:localName$1m,abbreviation:abbreviation$1m,validate:validate$1m,format:format$1m,compact:compact$1m}=impl$1m;const codicefiscale=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1m,compact:compact$1m,format:format$1m,localName:localName$1m,name:name$1m,validate:validate$1m},Symbol.toStringTag,{value:"Module"}));function clean$1e(input){return cleanUnicode(input," -:","IT");}
827const impl$1l={name:"Italian VAT Number",localName:"Partita Imposta sul Valore Aggiunto",abbreviation:"P.IVA",compact(input){const[value,err]=clean$1e(input);if(err){throw err;}
828return value;},format(input){const[value]=clean$1e(input);return value;},validate(input){const[value,error]=clean$1e(input);if(error){return{isValid:false,error};}
829if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
830if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
831const code=parseInt(value.substr(7,3),10);if(!(code>=1&&code<=100)&&![120,121,888,999].includes(code)){return{isValid:false,error:new InvalidComponent()};}
832if(!luhnChecksumValidate(value)){return{isValid:false,error:new InvalidChecksum()};}
833return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1l,localName:localName$1l,abbreviation:abbreviation$1l,validate:validate$1l,format:format$1l,compact:compact$1l}=impl$1l;const iva=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1l,compact:compact$1l,format:format$1l,localName:localName$1l,name:name$1l,validate:validate$1l},Symbol.toStringTag,{value:"Module"}));const IT=Object.freeze(Object.defineProperty({__proto__:null,aic,codicefiscale,iva},Symbol.toStringTag,{value:"Module"}));function clean$1d(input){return cleanUnicode(input," -");}
834const impl$1k={name:"Japanese Corporate Number",localName:"法人番号 (hōjin bangō)",abbreviation:"CN",compact(input){const[value,err]=clean$1d(input);if(err){throw err;}
835return value;},format(input){const[value]=clean$1d(input);return splitAt(value,1,5,9).join("-");},validate(input){const[value,error]=clean$1d(input);if(error){return{isValid:false,error};}
836if(value.length!==13){return{isValid:false,error:new InvalidLength()};}
837if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
838const[check,rest]=splitAt(value,1);const sum=weightedSum(rest,{modulus:9,reverse:true,weights:[1,2,1,2,1,2,1,2,1,2,1,2]});if(String(9-sum)!==check){return{isValid:false,error:new InvalidChecksum()};}
839return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1k,localName:localName$1k,abbreviation:abbreviation$1k,validate:validate$1k,format:format$1k,compact:compact$1k}=impl$1k;const cn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1k,compact:compact$1k,format:format$1k,localName:localName$1k,name:name$1k,validate:validate$1k},Symbol.toStringTag,{value:"Module"}));const JP=Object.freeze(Object.defineProperty({__proto__:null,cn},Symbol.toStringTag,{value:"Module"}));function clean$1c(input){return cleanUnicode(input," -");}
840const validRe$2=/^[A|P]{1}[0-9]{9}[A-Z]{1}$/i;const impl$1j={name:"Personal Identification Number",localName:"",abbreviation:"PIN",compact(input){const[value,err]=clean$1c(input);if(err){throw err;}
841return value;},format(input){const[value]=clean$1c(input);return value;},validate(input){const[value,error]=clean$1c(input);if(error){return{isValid:false,error};}
842if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
843if(!validRe$2.test(value)){return{isValid:false,error:new InvalidFormat()};}
844return{isValid:true,compact:value,isIndividual:value[0]==="A",isCompany:value[0]==="P"};}};const{name:name$1j,localName:localName$1j,abbreviation:abbreviation$1j,validate:validate$1j,format:format$1j,compact:compact$1j}=impl$1j;const pin=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1j,compact:compact$1j,format:format$1j,localName:localName$1j,name:name$1j,validate:validate$1j},Symbol.toStringTag,{value:"Module"}));const KE=Object.freeze(Object.defineProperty({__proto__:null,pin},Symbol.toStringTag,{value:"Module"}));function clean$1b(input){return cleanUnicode(input," -");}
845const impl$1i={name:"South Korean Business Registration Number",localName:"사업자 등록 번호",abbreviation:"BRN",compact(input){const[value,err]=clean$1b(input);if(err){throw err;}
846return value;},format(input){const[value]=clean$1b(input);return splitAt(value,3,5).join("-");},validate(input){const[value,error]=clean$1b(input);if(error){return{isValid:false,error};}
847if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
848if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
849const[head,mid,end,check]=splitAt(value,3,5,9);if(parseInt(head,10)<101){return{isValid:false,error:new InvalidComponent()};}
850if(mid==="00"){return{isValid:false,error:new InvalidComponent()};}
851if(end==="0000"){return{isValid:false,error:new InvalidComponent()};}
852const sum=weightedSum(value.substr(0,9),{modulus:10,weights:[1,3,7,1,3,7,1,3,5]});const extra=Math.floor(parseInt(end[3],10)*5/10);if(String((10-(sum+extra)%10)%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
853return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1i,localName:localName$1i,abbreviation:abbreviation$1i,validate:validate$1i,format:format$1i,compact:compact$1i}=impl$1i;const brn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1i,compact:compact$1i,format:format$1i,localName:localName$1i,name:name$1i,validate:validate$1i},Symbol.toStringTag,{value:"Module"}));function clean$1a(input){return cleanUnicode(input," -/");}
854const centuryPrefix={0:18,1:19,2:19,3:20,4:20,5:19,6:19,7:20,8:20,9:18};const impl$1h={name:"South Korean Resident Registration Number",localName:"주민등록번호",abbreviation:"RRN",compact(input){const[value,err]=clean$1a(input);if(err){throw err;}
855return value;},format(input){const[value]=clean$1a(input);return splitAt(value,6).join("-");},validate(input){const[value,error]=clean$1a(input);if(error){return{isValid:false,error};}
856if(value.length!==13){return{isValid:false,error:new InvalidLength()};}
857if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
858const[dob,century2,place,,check]=splitAt(value,6,7,9,12);if(!isValidDateCompactYYYYMMDD(`${centuryPrefix[century2]}${dob}`,true)){return{isValid:false,error:new InvalidComponent()};}
859if(parseInt(place,10)>96){return{isValid:false,error:new InvalidComponent()};}
860const sum=weightedSum(value.substr(0,12),{modulus:11,weights:[2,3,4,5,6,7,8,9,2,3,4,5]});if(String((11-sum)%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
861return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1h,localName:localName$1h,abbreviation:abbreviation$1h,validate:validate$1h,format:format$1h,compact:compact$1h}=impl$1h;const rrn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1h,compact:compact$1h,format:format$1h,localName:localName$1h,name:name$1h,validate:validate$1h},Symbol.toStringTag,{value:"Module"}));const KR=Object.freeze(Object.defineProperty({__proto__:null,brn,rrn},Symbol.toStringTag,{value:"Module"}));function clean$19(input){const[value,error]=cleanUnicode(input," .");if(error){return[value,error];}
862return[value.replace(/^0+/,""),null];}
863const impl$1g={name:"Liechtenstein Tax Code",localName:"Personenidentifikationsnummer",abbreviation:"PEID",compact(input){const[value,err]=clean$19(input);if(err){throw err;}
864return value;},format(input){const[value]=clean$19(input);return value;},validate(input){const[value,error]=clean$19(input);if(error){return{isValid:false,error};}
865if(value.length<4||value.length>12){return{isValid:false,error:new InvalidLength()};}
866if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
867return{isValid:true,compact:value,isIndividual:true,isCompany:true};}};const{name:name$1g,localName:localName$1g,abbreviation:abbreviation$1g,validate:validate$1g,format:format$1g,compact:compact$1g}=impl$1g;const peid=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1g,compact:compact$1g,format:format$1g,localName:localName$1g,name:name$1g,validate:validate$1g},Symbol.toStringTag,{value:"Module"}));const LI=Object.freeze(Object.defineProperty({__proto__:null,peid},Symbol.toStringTag,{value:"Module"}));function clean$18(input){return cleanUnicode(input," -/");}
868const impl$1f={name:"Lithuanian Personal Code",localName:"Asmens Kodas",compact(input){const[value,err]=clean$18(input);if(err){throw err;}
869return value;},format(input){const[value]=clean$18(input);return value;},validate(input){const[value,error]=clean$18(input);if(error){return{isValid:false,error};}
870if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
871if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
872if(value[0]!=="9"&&!ikCheckDate(value)){return{isValid:false,error:new InvalidComponent()};}
873if(!ikCheck(value)){return{isValid:false,error:new InvalidChecksum()};}
874return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$1f,localName:localName$1f,abbreviation:abbreviation$1f,validate:validate$1f,format:format$1f,compact:compact$1f}=impl$1f;const asmens=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1f,compact:compact$1f,format:format$1f,localName:localName$1f,name:name$1f,validate:validate$1f},Symbol.toStringTag,{value:"Module"}));function clean$17(input){return cleanUnicode(input," -","LT");}
875const impl$1e={name:"Lithuanian VAT Number",localName:"Pridėtinės Vertės Mokestis Mokėtojo Kodas",abbreviation:"PVM Kodas",compact(input){const[value,err]=clean$17(input);if(err){throw err;}
876return value;},format(input){const[value]=clean$17(input);return value;},validate(input){const[value,error]=clean$17(input);if(error){return{isValid:false,error};}
877if(value.length!==9&&value.length!==12){return{isValid:false,error:new InvalidLength()};}
878if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
879if(value.length===9&&value[7]!=="1"){return{isValid:false,error:new InvalidComponent()};}
880if(value.length===12&&value[10]!=="1"){return{isValid:false,error:new InvalidComponent()};}
881if(!ikCheck(value)){return{isValid:false,error:new InvalidChecksum()};}
882return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1e,localName:localName$1e,abbreviation:abbreviation$1e,validate:validate$1e,format:format$1e,compact:compact$1e}=impl$1e;const pvm=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1e,compact:compact$1e,format:format$1e,localName:localName$1e,name:name$1e,validate:validate$1e},Symbol.toStringTag,{value:"Module"}));const LT=Object.freeze(Object.defineProperty({__proto__:null,asmens,pvm},Symbol.toStringTag,{value:"Module"}));function clean$16(input){return cleanUnicode(input," :-.","LU");}
883const impl$1d={name:"Luxembourgian VAT Number",localName:"Numéro d'Identification à la Taxe sur la Valeur Ajoutée",abbreviation:"n° TVA",compact(input){const[value,err]=clean$16(input);if(err){throw err;}
884return value;},format(input){const[value]=clean$16(input);return splitAt(value,3,6).join(" ");},validate(input){const[value,error]=clean$16(input);if(error){return{isValid:false,error};}
885if(value.length!==8){return{isValid:false,error:new InvalidLength()};}
886if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
887const[front,check]=splitAt(value,-2);if(parseInt(front,10)%89!==parseInt(check,10)){return{isValid:false,error:new InvalidChecksum()};}
888return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1d,localName:localName$1d,abbreviation:abbreviation$1d,validate:validate$1d,format:format$1d,compact:compact$1d}=impl$1d;const tva$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1d,compact:compact$1d,format:format$1d,localName:localName$1d,name:name$1d,validate:validate$1d},Symbol.toStringTag,{value:"Module"}));const LU=Object.freeze(Object.defineProperty({__proto__:null,tva:tva$1},Symbol.toStringTag,{value:"Module"}));function clean$15(input){return cleanUnicode(input," -","LV");}
889const impl$1c={name:"Latvian VAT Number",localName:"Pievienotās Vērtības Nodokļa",abbreviation:"PVN",compact(input){const[value,err]=clean$15(input);if(err){throw err;}
890return value;},format(input){const[value]=clean$15(input);if("0123".includes(value[0])){return splitAt(value,6).join("-");}
891return splitAt(value,4,8).join(" ");},validate(input){const[value,error]=clean$15(input);if(error){return{isValid:false,error};}
892if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
893if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
894const isIndividual="0123".includes(value[0]);
894if(isIndividual){const[dd,mm,yy,century2]=splitAt(value,2,4,6,7);if(!isValidDate(`${18+parseInt(century2,10)}${yy}`,mm,dd,true)){return{isValid:false,error:new InvalidComponent()};}
895const[front,check]=splitAt(value,-1);const sum=1+weightedSum(front,{weights:[10,5,8,4,2,1,6,3,7,9],modulus:11});if(String(sum%11%10)!==check){return{isValid:false,error:new InvalidChecksum()};}}else{const sum=weightedSum(value,{weights:[9,1,4,8,3,10,2,5,7,6,1],modulus:11});if(sum!==3){return{isValid:false,error:new InvalidChecksum()};}}
896return{isValid:true,compact:value,isIndividual,isCompany:!isIndividual};}};const{name:name$1c,localName:localName$1c,abbreviation:abbreviation$1c,validate:validate$1c,format:format$1c,compact:compact$1c}=impl$1c;const pvn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1c,compact:compact$1c,format:format$1c,localName:localName$1c,name:name$1c,validate:validate$1c},Symbol.toStringTag,{value:"Module"}));const LV=Object.freeze(Object.defineProperty({__proto__:null,pvn},Symbol.toStringTag,{value:"Module"}));function clean$14(input){return cleanUnicode(input," -/");}
897const impl$1b={name:"Moroccan Company Establishment Identification Number",localName:"Identifiant Commun de l'Entreprises",abbreviation:"ICE",compact(input){const[value,err]=clean$14(input);if(err){throw err;}
898return value;},format(input){const[value]=clean$14(input);return value;},validate(input){const[value,error]=clean$14(input);if(error){return{isValid:false,error};}
899if(value.length!==15){return{isValid:false,error:new InvalidLength()};}
900if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
901if(!mod97base10Validate(value,0)){return{isValid:false,error:new InvalidChecksum()};}
902return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1b,localName:localName$1b,abbreviation:abbreviation$1b,validate:validate$1b,format:format$1b,compact:compact$1b}=impl$1b;const ice=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1b,compact:compact$1b,format:format$1b,localName:localName$1b,name:name$1b,validate:validate$1b},Symbol.toStringTag,{value:"Module"}));function clean$13(input){return cleanUnicode(input," .");}
903const impl$1a={name:"Moroccan Company Number",localName:"Numero d'Entreprise",compact(input){const[value,err]=clean$13(input);if(err){throw err;}
904return value;},format(input){const[value]=clean$13(input);return value;},validate(input){const[value,error]=clean$13(input);if(error){return{isValid:false,error};}
905if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
906if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
907return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$1a,localName:localName$1a,abbreviation:abbreviation$1a,validate:validate$1a,format:format$1a,compact:compact$1a}=impl$1a;const ice9=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1a,compact:compact$1a,format:format$1a,localName:localName$1a,name:name$1a,validate:validate$1a},Symbol.toStringTag,{value:"Module"}));const MA=Object.freeze(Object.defineProperty({__proto__:null,ice,ice9},Symbol.toStringTag,{value:"Module"}));function clean$12(input){return cleanUnicode(input," ","FR");}
908const impl$19={name:"Monacan VAT Number",localName:"Numéro d'Identification à la Taxe sur la Valeur Ajoutée",abbreviation:"n° TVA",compact(input){const[value,err]=clean$12(input);if(err){throw err;}
909return value;},format(input){const[value]=clean$12(input);return value;},validate(input){const[value,error]=clean$12(input);if(error){return{isValid:false,error};}
910const r=validate$1L(value);if(!r.isValid){return r;}
911if(value.substr(2,3)!=="000"){return{isValid:false,error:new InvalidComponent()};}
912return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$19,localName:localName$19,abbreviation:abbreviation$19,validate:validate$19,format:format$19,compact:compact$19}=impl$19;const tva=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$19,compact:compact$19,format:format$19,localName:localName$19,name:name$19,validate:validate$19},Symbol.toStringTag,{value:"Module"}));const MC=Object.freeze(Object.defineProperty({__proto__:null,tva},Symbol.toStringTag,{value:"Module"}));function clean$11(input){return cleanUnicode(input," -/");}
913const impl$18={name:"Moldavian Company Identification Number",localName:"Unique State Identification Number",abbreviation:"IDNO",compact(input){const[value,err]=clean$11(input);if(err){throw err;}
914return value;},format(input){const[value]=clean$11(input);return value;},validate(input){const[value,error]=clean$11(input);if(error){return{isValid:false,error};}
915if(value.length!==13){return{isValid:false,error:new InvalidLength()};}
916if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
917const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{weights:[7,3,1,7,3,1,7,3,1,7,3,1],modulus:10});if(String(sum)!==check){return{isValid:false,error:new InvalidChecksum()};}
918return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$18,localName:localName$18,abbreviation:abbreviation$18,validate:validate$18,format:format$18,compact:compact$18}=impl$18;const idno=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$18,compact:compact$18,format:format$18,localName:localName$18,name:name$18,validate:validate$18},Symbol.toStringTag,{value:"Module"}));const MD=Object.freeze(Object.defineProperty({__proto__:null,idno},Symbol.toStringTag,{value:"Module"}));const impl$17=Object.assign(Object.assign({},jmbg$4),{name:"Montenegrin Unique Master Citizen Number",localName:" Јединствени матични број грађана",abbreviation:"ЈМБГ"});const{name:name$17,localName:localName$17,abbreviation:abbreviation$17,validate:validate$17,format:format$17,compact:compact$17}=impl$17;const jmbg$3=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$17,compact:compact$17,format:format$17,localName:localName$17,name:name$17,validate:validate$17},Symbol.toStringTag,{value:"Module"}));function clean$10(input){return cleanUnicode(input," -");}
919const impl$16={name:"Montenegro tax number",localName:"Poreski Identifikacioni Broj",abbreviation:"PIB",compact(input){const[value,err]=clean$10(input);if(err){throw err;}
920return value;},format(input){const[value]=clean$10(input);return value;},validate(input){const[value,error]=clean$10(input);if(error){return{isValid:false,error};}
921if(value.length!==8){return{isValid:false,error:new InvalidLength()};}
922if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
923const[front,check]=splitAt(value,7);const sum=weightedSum(front,{weights:[8,7,6,5,4,3,2],modulus:11});if(String((11-sum)%11%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
924return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$16,localName:localName$16,abbreviation:abbreviation$16,validate:validate$16,format:format$16,compact:compact$16}=impl$16;const pib$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$16,compact:compact$16,format:format$16,localName:localName$16,name:name$16,validate:validate$16},Symbol.toStringTag,{value:"Module"}));const ME=Object.freeze(Object.defineProperty({__proto__:null,jmbg:jmbg$3,pib:pib$1},Symbol.toStringTag,{value:"Module"}));const impl$15=Object.assign(Object.assign({},jmbg$4),{name:"Macedonian Unique Master Citizen Number",localName:"Единствен матичен број на граѓаниÐ
924½Ð¾Ñ‚",abbreviation:"ЕМБГ"});const{name:name$15,localName:localName$15,abbreviation:abbreviation$15,validate:validate$15,format:format$15,compact:compact$15}=impl$15;const jmbg$2=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$15,compact:compact$15,format:format$15,localName:localName$15,name:name$15,validate:validate$15},Symbol.toStringTag,{value:"Module"}));function clean$$(input){return cleanUnicode(input," -",["MK","МК"]);}
925const impl$14={name:"NAME",localName:"NAME",abbreviation:"EDB",compact(input){const[value,err]=clean$$(input);if(err){throw err;}
926return value;},format(input){const[value]=clean$$(input);return value;},validate(input){const[value,error]=clean$$(input);if(error){return{isValid:false,error};}
927if(value.length!==13){return{isValid:false,error:new InvalidLength()};}
928if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
929const[front,check]=splitAt(value,12);const sum=(11-weightedSum(front,{weights:[7,6,5,4,3,2],modulus:11}))%11;if(String(sum%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
930return{isValid:true,compact:value,isIndividual:false,isCompany:false};}};const{name:name$14,localName:localName$14,abbreviation:abbreviation$14,validate:validate$14,format:format$14,compact:compact$14}=impl$14;const edb=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$14,compact:compact$14,format:format$14,localName:localName$14,name:name$14,validate:validate$14},Symbol.toStringTag,{value:"Module"}));const MK=Object.freeze(Object.defineProperty({__proto__:null,edb,jmbg:jmbg$2},Symbol.toStringTag,{value:"Module"}));function clean$_(input){return cleanUnicode(input," -","MT");}
931const impl$13={name:"Maltese VAT Number",localName:"Vat Reg. No.",abbreviation:"Vat No.",compact(input){const[value,err]=clean$_(input);if(err){throw err;}
932return value;},format(input){const[value]=clean$_(input);return splitAt(value,4).join("-");},validate(input){const[value,error]=clean$_(input);if(error){return{isValid:false,error};}
933if(value.length!==8){return{isValid:false,error:new InvalidLength()};}
934if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
935const sum=weightedSum(value,{weights:[3,4,6,7,8,9,10,1],modulus:37});if(sum!==0){return{isValid:false,error:new InvalidChecksum()};}
936return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$13,localName:localName$13,abbreviation:abbreviation$13,validate:validate$13,format:format$13,compact:compact$13}=impl$13;const vat$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$13,compact:compact$13,format:format$13,localName:localName$13,name:name$13,validate:validate$13},Symbol.toStringTag,{value:"Module"}));const MT=Object.freeze(Object.defineProperty({__proto__:null,vat:vat$1},Symbol.toStringTag,{value:"Module"}));const ALPHABET$2="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";const nidRe=/^[A-Z][0-9]+[0-9A-Z]$/;function clean$Z(input){return cleanUnicode(input," ");}
937const impl$12={name:"Mauritian National Identifier",localName:"National Identifier",abbreviation:"NID",compact(input){const[value,err]=clean$Z(input);if(err){throw err;}
938return value;},format(input){const[value]=clean$Z(input);return value;},validate(input){const[value,error]=clean$Z(input);if(error){return{isValid:false,error};}
939if(value.length!==14){return{isValid:false,error:new InvalidLength()};}
940if(!nidRe.test(value)){return{isValid:false,error:new InvalidFormat()};}
941const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{weights:[14,13,12,11,10,9,8,7,6,5,4,3,2,1],alphabet:ALPHABET$2,modulus:17});if(ALPHABET$2[17-sum]!==check){return{isValid:false,error:new InvalidChecksum()};}
942return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$12,localName:localName$12,abbreviation:abbreviation$12,validate:validate$12,format:format$12,compact:compact$12}=impl$12;const nid=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$12,compact:compact$12,format:format$12,localName:localName$12,name:name$12,validate:validate$12},Symbol.toStringTag,{value:"Module"}));const MU=Object.freeze(Object.defineProperty({__proto__:null,nid},Symbol.toStringTag,{value:"Module"}));const banksMap={2:{tag:"BANAMEX",name:"Banco Nacional de México, S.A."}
942,6:{tag:"BANCOMEXT",name:"Banco Nacional de Comercio Exterior"},9:{tag:"BANOBRAS",name:"Banco Nacional de Obras y Servicios Públicos"},12:{tag:"BBVA BANCOMER",name:"BBVA Bancomer, S.A."},14:{tag:"SANTANDER",name:"Banco Santander, S.A."},19:{tag:"BANJERCITO",name:"Banco Nacional del Ejército, Fuerza Aérea y Armada"},21:{tag:"HSBC",name:"HSBC México, S.A."},22:{tag:"GE MONEY",name:"GE Money Bank, S.A."},30:{tag:"BAJÍO",name:"Banco del Bajío, S.A."},32:{tag:"IXE",name:"IXE Banco, S.A."},36:{tag:"INBURSA",name:"Banco Inbursa, S.A."},37:{tag:"INTERACCIONES",name:"Banco Interacciones, S.A."},42:{tag:"MIFEL",name:"Banca Mifel, S.A."},44:{tag:"SCOTIABANK",name:"Scotiabank Inverlat, S.A."},58:{tag:"BANREGIO",name:"Banco Regional de Monterrey, S.A."},59:{tag:"INVEX",name:"Banco Invex, S.A."},60:{tag:"BANSI",name:"Bansi, S.A."},62:{tag:"AFIRME",name:"Banca Afirme, S.A."},72:{tag:"BANORTE",name:"Banco Mercantil del Norte, S.A."},102:{tag:"ABNAMRO",name:"ABN AMRO Bank México, S.A."},103:{tag:"AMERICAN EXPRESS",name:"American Express Bank (México), S.A."},106:{tag:"BAMSA",name:"Bank of America México, S.A."},108:{tag:"TOKYO",name:"Bank of Tokyo-Mitsubishi UFJ (México), S.A."},110:{tag:"JP MORGAN",name:"Banco J.P. Morgan, S.A."},112:{tag:"BMONEX",name:"Banco Monex, S.A."},113:{tag:"VE POR MAS",name:"Banco Ve por Mas, S.A."},116:{tag:"ING",name:"ING Bank (México), S.A."},124:{tag:"DEUTSCHE",name:"Deutsche Bank México, S.A."},126:{tag:"CREDIT SUISSE",name:"Banco Credit Suisse (México), S.A."},127:{tag:"AZTECA",name:"Banco Azteca, S.A."},128:{tag:"AUTOFIN",name:"Banco Autofin México, S.A."},129:{tag:"BARCLAYS",name:"Barclays Bank México, S.A."},130:{tag:"COMPARTAMOS",name:"Banco Compartamos, S.A."},131:{tag:"FAMSA",name:"Banco Ahorro Famsa, S.A."},132:{tag:"BMULTIVA",name:"Banco Multiva, S.A."},133:{tag:"PRUDENTIAL",name:"Prudencial Bank, S.A."},134:{tag:"WAL-MART",name:"Banco Wal Mart de México Adelante, S.A."},135:{tag:"NAFIN",name:"Nacional Financiera, S.N.C."},136:{tag:"REGIONAL",name:"Banco Regional, S.A."},137:{tag:"BANCOPPEL",name:"BanCoppel, S.A."},138:{tag:"ABC CAPITAL",name:"ABC Capital, S.A. I.B.M."},139:{tag:"UBS BANK",name:"UBS Banco, S.A."},140:{tag:"FÁCIL",name:"Banco Fácil, S.A."},141:{tag:"VOLKSWAGEN",name:"Volkswagen Bank S.A. Institución de Banca Múltiple"},143:{tag:"CIBANCO",name:"Consultoría Internacional Banco, S.A."},145:{tag:"BBASE",name:"Banco BASE, S.A. de I.B.M."},147:{tag:"BANKAOOL",name:"Bankaool, S.A., Institución de Banca Múltiple"},148:{tag:"PAGATODO",name:"Banco PagaTodo S.A., Institución de Banca Múltiple"},150:{tag:"BIM",name:"Banco Inmobiliario Mexicano, S.A., Institución de Banca Múltiple"},152:{tag:"BANCREA",name:"Banco Bancrea, S.A., Institución de Banca Múltiple"},156:{tag:"SABADELL",name:"Banco Sabadell, S.A. I.B.M."},166:{tag:"BANSEFI",name:"Banco del Ahorro Nacional y Servicios Financieros, S.N.C."},168:{tag:"HIPOTECARIA FEDERAL",name:"Sociedad Hipotecaria Federal, S.N.C."},600:{tag:"MONEXCB",name:"Monex Casa de Bolsa, S.A. de C.V."},601:{tag:"GBM",name:"GBM Grupo Bursátil Mexicano, S.A. de C.V."},602:{tag:"MASARI CC.",name:"Masari Casa de Cambio, S.A. de C.V."},604:{tag:"C.B. INBURSA",name:"Inversora Bursátil, S.A. de C.V."},605:{tag:"VALUÉ",name:"Valué, S.A. de C.V., Casa de Bolsa"},606:{tag:"CB BASE",name:"Base Internacional Casa de Bolsa, S.A. de C.V."},607:{tag:"TIBER",name:"Casa de Cambio Tiber, S.A. de C.V."},608:{tag:"VECTOR",name:"Vector Casa de Bolsa, S.A. de C.V."},610:{tag:"B&B",name:"B y B Casa de Cambio, S.A. de C.V."},611:{tag:"INTERCAM",name:"Intercam Casa de Cambio, S.A. de C.V."},613:{tag:"MULTIVA",name:"Multivalores Casa de Bolsa, S.A. de C.V. Multiva Gpo. Fin."},614:{tag:"ACCIVAL",name:"Acciones y Valores Banamex, S.A. de C.V., Casa de Bolsa"},615:{tag:"MERRILL LYNCH",name:"Merrill Lynch México, S.A. de C.V., Casa de Bolsa"},616:{tag:"FINAMEX",name:"Casa de Bolsa Finamex, S.A. de C.V."},617:{tag:"VALMEX",name:"Valores Mexicanos Casa de Bolsa, S.A. de C.V."},618:{tag:"ÚNICA",name:"Única Casa de Cambio, S.A. de C.V."}
942,619:{tag:"ASEGURADORA MAPFRE",name:"MAPFRE Tepeyac S.A."},620:{tag:"AFORE PROFUTURO",name:"Profuturo G.N.P., S.A. de C.V."},621:{tag:"CB ACTINBER",name:"Actinver Casa de Bolsa, S.A. de C.V."},622:{tag:"ACTINVE SI",name:"Actinver S.A. de C.V."},623:{tag:"SKANDIA",name:"Skandia Vida S.A. de C.V."},624:{tag:"CONSULTORÍA",name:"Consultoría Internacional Casa de Cambio, S.A. de C.V."},626:{tag:"CBDEUTSCHE",name:"Deutsche Securities, S.A. de C.V."},627:{tag:"ZURICH",name:"Zurich Compañía de Seguros, S.A."},628:{tag:"ZURICHVI",name:"Zurich Vida, Compañía de Seguros, S.A."},629:{tag:"HIPOTECARIA SU CASITA",name:"Hipotecaria su Casita, S.A. de C.V."},630:{tag:"C.B. INTERCAM",name:"Intercam Casa de Bolsa, S.A. de C.V."},631:{tag:"C.B. VANGUARDIA",name:"Vanguardia Casa de Bolsa, S.A. de C.V."},632:{tag:"BULLTICK C.B.",name:"Bulltick Casa de Bolsa, S.A. de C.V."},633:{tag:"STERLING",name:"Sterling Casa de Cambio, S.A. de C.V."},634:{tag:"FINCOMUN",name:"Fincomún, Servicios Financieros Comunitarios, S.A. de C.V."},636:{tag:"HDI SEGUROS",name:"HDI Seguros, S.A. de C.V."},637:{tag:"ORDER",name:"OrderExpress Casa de Cambio , S.A. de C.V. AAC"},638:{tag:"AKALA",name:"Akala, S.A. de C.V., Sociedad Financiera Popular"},640:{tag:"JP MORGAN C.B.",name:"J.P. Morgan Casa de Bolsa, S.A. de C.V."},642:{tag:"REFORMA",name:"Operadora de Recursos Reforma, S.A. de C.V."},646:{tag:"STP",name:"Sistema de Transferencias y Pagos STP, S.A. de C.V., SOFOM E.N.R."},647:{tag:"TELECOMM",name:"Telecomunicaciones de México"},648:{tag:"EVERCORE",name:"Evercore Casa de Bolsa, S.A. de C.V."},649:{tag:"SKANDIA",name:"Skandia Operadora S.A. de C.V."},651:{tag:"SEGMTY",name:"Seguros Monterrey New York Life, S.A de C.V."},652:{tag:"ASEA",name:"Solución Asea, S.A. de C.V., Sociedad Financiera Popular"},653:{tag:"KUSPIT",name:"Kuspit Casa de Bolsa, S.A. de C.V."},655:{tag:"SOFIEXPRESS",name:"J.P. SOFIEXPRESS, S.A. de C.V., S.F.P."},656:{tag:"UNAGRA",name:"UNAGRA, S.A. de C.V., S.F.P."},659:{tag:"OPCIONES EMPRESARIALES DEL NOROESTE",name:"Opciones Empresariales Del Noreste, S.A. DE C.V."},670:{tag:"LIBERTAD",name:"Libertad Servicios Financieros, S.A. De C.V."},846:{tag:"STP",name:"Sistema de Transferencias y Pagos STP"},901:{tag:"CLS",name:"CLS Bank International"},902:{tag:"INDEVAL",name:"SD. INDEVAL, S.A. de C.V."},999:{tag:"N/A",name:"N/A"}};const citiesPairs=[[10,"Aguascalientes"],[12,"Calvillo"],[14,"Jesús María"],[20,"Mexicali"],[22,"Ensenada"],[27,"Tecate"],[27,"Tijuana"],[28,"La Mesa"],[28,"Rosarito"],[28,"Tijuana [alternate]"],[40,"La Paz"],[41,"Cabo San Lucas"],[42,"Ciudad Constitución"],[43,"Guerrero Negro"],[45,"San José del Cabo"],[46,"Santa Rosalía"],[50,"Campeche"],[51,"Calkiní"],[52,"Ciudad del Carmen"],[53,"Champotón"],[60,"Gómez Palacio"],[60,"Torreón"],[62,"Ciudad Acuña"],[68,"Monclova"],[71,"Nava"],[72,"Nueva Rosita"],[74,"Parras de la Fuente"],[75,"Piedras Negras"],[76,"Ramos Arizpe"],[77,"Sabinas"],[78,"Saltillo"],[80,"San Pedro de las Colonias"],[90,"Colima"],[95,"Manzanillo"],[97,"Tecomán"],[100,"Terán"],[100,"Tuxtla Gutiérrez"],[103,"Arriaga"],[107,"Cintalapa"],[109,"Comitán"],[109,"Villa Las Rosas"],[111,"Chiapa de Corso"],[113,"F. Comalapa"],[114,"Huixtla"],[123,"Ocosingo"],[124,"Ocozocuautla"],[125,"Palenque"],[126,"Pichucalco"],[127,"Pijijiapan"],[128,"Reforma"],[130,"San Cristóbal de las Casas"],[131,"Simojovel"],[133,"Tapachula"],[135,"Tonala"],[137,"Venustiano Carranza"],[138,"Villa Flores"],[140,"Yajalón"],[150,"Chihuahua"],[150,"Ciudad Delicias"],[152,"Ciudad Anáhuac"],[155,"Ciudad Camargo"],[158,"Ciudad Cuauhtémoc"],[161,"Ciudad Guerrero"],[162,"Parral"],[163,"Ciudad Jiménez"],[164,"Ciudad Juárez"],[165,"Ciudad Madera"],[167,"El Molino de Namiquipa"],[168,"Nuevo Casas Grandes"],[180,"Atizapan"],[180,"Chalco"],[180,"Ciudad de México"],[180,"Coacalco"],[180,"Cuautitlán Izcalli"],[180,"Cuautitlán"],[180,"Ecatepec"],[180,"Huehuetoca"],[180,"Huixquilucan"],[180,"Ixtapaluca"],[180,"Los Reyes La Paz"],[180,"Naucalpan"],[180,"Nezahualcóyotl"],[180,"Tecamac"],[180,"Teotihuacán"],[180,"Texcoco"],[180,"Tlalnepantla"],[190,"Durango"],[198,"N/A"],[201,"Tepehuanes"],[202,"Vicente Guerrero"],[210,"Guanajuato"],[211,"Abasolo"],[212,"Acámbaro"],[213,"Apaseo el Alto"],[214,"Apaseo el Grande"],[215,"Celaya"],[216,"Comonfort"],[217,"Coroneo"],[218,"Cortazar"],[219,"Cuerámaro"],[220,"Dolores Hidalgo"],[222,"Irapuato"],[223,"Jaral del Progreso"],[224,"Jerécuaro"],[225,"León"],[226,"Cd. Manuel Doblado"],[227,"Moroleón"],[229,"Pénjamo"],[232,"Romita"],[233,"Salamanca"],[234,"Salvatierra"],[236,"San Felipe"],[237,"Purísima de Bustos"],[237,"San Francisco del Rincoón"],[238,"San José Iturbi
942de"],[239,"San Luis de la Paz"],[240,"San Miguel Allende"],[244,"Silao"],[247,"Uriangato"],[248,"Valle de Santiago"],[249,"Yuriria"],[260,"Chilpancingo"],[261,"Acapulco"],[263,"Arcelia"],[264,"Atoyac de Álvarez"],[266,"Ciudad Altamirano"],[267,"Coyuca de Benítez"],[270,"Chilapa"],[271,"Huitzuco"],[272,"Iguala"],[272,"La Sabana"],[274,"Cuajinicuilapa"],[274,"Ometepec"],[275,"San Marcos"],[276,"Taxco"],[278,"Teloloapan"],[281,"Tlapa"],[282,"Ixtapa Zihuatanejo"],[282,"Zihuatanejo"],[290,"Pachuca"],[291,"Actopan"],[292,"Apam"],[293,"Atotonilco el Grande"],[294,"Ciudad Sahagún"],[294,"Teocaltiche"],[295,"Cuautepec"],[296,"Huejutla"],[297,"Huichapan"],[298,"Ixmiquilpan"],[303,"Progreso de Obregón"],[305,"Tepeapulco"],[308,"Tizayuca"],[311,"Tula de Allende"],[312,"Tulancingo"],[313,"Zacualtipán"],[314,"Zimapán"],[320,"El Salto"],[320,"Guadalajara"],[320,"San Pedro Tlaquepaque"],[320,"Tlajomulco"],[320,"Tonala [alternate]"],[320,"Zapopan"],[326,"Ameca"],[327,"Arandas"],[330,"Atotonilco el Alto"],[331,"Atequiza"],[333,"Autlán"],[334,"Azteca"],[340,"Casimiro Castillo"],[341,"Cihuatlán"],[342,"Ciudad Guzmán"],[346,"Chapala"],[348,"El Grullo"],[355,"Ixtlahuacán del Río"],[356,"Jalostotitlán"],[357,"Jamay"],[361,"La Barca"],[362,"Lagos de Moreno"],[370,"Ocotlán"],[373,"Pihuamo"],[375,"Las Juntas"],[375,"Nuevo Vallarta"],[375,"Pitillal"],[375,"Puerto Vallarta"],[381,"San Juan de los Lagos"],[382,"N/A"],[384,"San Miguel el Alto"],[385,"San Patricio Melaque"],[386,"Sayula"],[387,"Tala"],[389,"Tamazula de Gordiano"],[391,"Tecalitlán"],[396,"Tepatitlán"],[397,"Tequila"],[403,"Tototlán"],[404,"Túxpam"],[411,"Villa Hidalgo"],[413,"Zacoalco de Torres"],[414,"Zapotiltic"],[416,"Zapotlanejo"],[420,"Toluca"],[421,"Acambay"],[422,"Almoloya de Juárez"],[424,"Amecameca"],[425,"Apaxco"],[426,"Atlacomulco"],[428,"Coatepec de Harinas"],[430,"Chicoloapan"],[431,"Chiconcuac"],[432,"El Oro"],[433,"Ixtapan de la Sal"],[434,"Ixtlahuaca"],[435,"Jilotepec"],[438,"Lerma"],[441,"Metepec"],[443,"Otumba"],[445,"San Mateo Atenco"],[446,"Tejupilco"],[448,"Temascaltepec"],[449,"Temoaya"],[450,"Tenancingo"],[451,"Tenago del Valle"],[453,"Santiago Tiangistenco"],[455,"Tultepec"],[456,"Tultitlán"],[457,"Valle de Bravo"],[460,"Villa Nicolás Romero"],[463,"Zumpango"],[470,"Morelia"],[472,"Aguililla"],[476,"Apatzingán"],[480,"Ciudad Hidalgo"],[483,"Cotija"],[484,"Cuitzeo"],[492,"Huetamo"],[493,"Jacona"],[494,"Jiquilpan"],[496,"La Piedad"],[497,"Lázaro Cárdenas"],[498,"Los Reyes"],[499,"Maravatío"],[501,"Nueva Italia"],[506,"Pátzcuaro"],[508,"Purépero"],[509,"Puruandiro"],[512,"Sahuayo"],[515,"Tacámbaro"],[517,"Tangancícuaro"],[519,"Tepalcatepec"],[523,"Tlazazalca"],[528,"Uruapan"],[533,"Yurécuaro"],[534,"Zacapu"],[535,"Zamora"],[536,"Zinapécuaro"],[537,"Zitácuaro"],[540,"Cuernavaca"],[542,"Cuautla"],[542,"Oaxtepec, Morelos"],[543,"Jiutepec"],[544,"Jojutla"],[545,"Puente de Ixtla"],[546,"Temixco"],[548,"Tetecala"],[549,"Yautepec"],[552,"Zacatepec"],[560,"Tepic"],[561,"Acaponeta"],[562,"Ahuacatlán"],[564,"Compostela"],[566,"Ixtlán del Río"],[571,"San Blas"],[573,"Santiago Ixcuintla"],[575,"Túxpam [alternate]"],[580,"Apodaca"],[580,"Cadereyta"],[580,"Cd. Guadalupe"],[580,"General Escobedo"],[580,"Monterrey"],[580,"San Nicolás de los Garza"],[580,"San Pedro Garza García"],[580,"Santa Catarina"],[583,"Allende"],[592,"General Zuazua"],[595,"Linares"],[597,"Montemorelos"],[599,"Sabinas Hidalgo"],[600,"Salinas Victoria"],[601,"El Cercado"],[601,"Villa de Santiago"],[610,"Oaxaca"],[613,"Tlaxiaco"],[614,"Huajuapan de León"],[616,"Ixtepec"],[617,"Juchitán"],[619,"Loma Bonita"],[620,"Matías Romero"],[621,"Miahuatlán"],[622,"Ocotlán [alternate]"],[624,"Puerto Escondido"],[626,"Salina Cruz"],[627,"Lagunas"],[628,"Tuxtepec"],[630,"Pochutla"],[631,"San Pedro Tapanatepec"],[632,"Santa Lucía del Camino"],[634,"Bahías de Huatulco"],[635,"Santiago Juxtlahuaca"],[636,"Pinotepa Nacional"],[637,"Tehuantepec"],[638,"Tlacolula"],[640,"Zimatlán"],[650,"Cholula"],[650,"La Resurrección"],[650,"Puebla"],[650,"San Baltazar Campeche"],[651,"N/A"],[652,"Acatzingo"],[654,"Atlixco"],[656,"Cuetzalan"],[659,"Huauchinango"],[660,"Huejotzingo"],[662,"Izúcar de Matamoros"],[667,"San Martín Texmelucan"],[668,"San Felipe Hueyotlipan"],[669,"Tecamachalco"],[670,"Tehuacán"],[671,"San Lorenzo"],[672,"Teziutlán"],[674,"Xicotepec de Juárez"],[676,"Zacatlán"],[680,"Pedro Escobedo"],[680,"Querétaro"],[680,"Villa Corregidora"],[681,"Amealco"],[685,"San Juan del Río"],[686,"Tequisquiapan"],[690,"Chetumal"],[691,"Cancún"],[691,"Col. Puerto Juárez"],[692,"Cozumel"],[693,"N/A"],[694,"Playa del Carmen"],[700,"San Luis Potosí"],[703,"Cerritos"],[705,"Ciudad Valles"],[709,"Matehuala"],[711,"Río Verde"],[716,"Tamuín"],[730,"Culiacán"],[735,"Concordia"],[736,"Cosala"],[737,"Choix"],[738,"El Fuerte"],[739,"Escuinapa"],[740,"Guamúchil"],[741,"Guasave"],[743,"Los Mochis"],[743,"Topolobampo"],[744,"Mazatlán"],[745,"Mocorito"],[746,"Navolato"],[760,"Hermosillo"],[761,"Agua Prieta"],[765,"Caborca"],[766,"Cananea"],[767,"Ciudad Obregón"],[767,"Esperanza"],[769,"Empalme"],[770,"Guaymas"],[770,"San Carlos"],[771,"Huatabampo"],[773,"Magdalena"],[776,"Nacozari de García"],[777,"Navojoa"],[778,"Nogales"],[779,"Puerto Peñasco"],[780,"San Luis Río Colorado"],[790,"Tamulte"],[790,"Villa Hermosa"],[792,"Cárdenas"],[793,"Ciudad Pemex"],[794,"Comalcalco"],[796,"Emiliano Zapata"],[797,"Frontera"],[798,"Huimanguillo"],[800,"Jalpa de Méndez"],[802,"Macuspana"],[803,"Nacajuca"],[804,"Paraíso"],[805,"Tacotalpa"],[806,"Teapa"],[807,"Tenosique"],[810,"Ciudad Victoria"],[811,"Altamira"],[813,"Ciudad Madero"],[813,"Tampico"],[814,"Ciudad Mante"],[818,"Matamoros"],[821,"Colombia"],[821,"Nuevo Laredo"],[822,"Reynosa"],[823,"Río Bravo"],[825,"Soto La Marina"],[826,"Valle Hermoso"],[830,"Tlaxcala"],[832,"Apizaco"],[834,"Santa Ana Chiautempan"],[840,"Jalapa"],[841,"Acayucan"],[843,"Agua Dulce"],[845,"Álamo"],[846,"Altotonga"],[848,"Banderilla"],[849,"Boca del Río"],[852,"Ciudad Mendoza"],[853,"Coatepec"],[854,"Coatzacoalcos"],[855,"Córdoba"],[856,"Cosamaloapan"],[860,"Cuitláhuac"],[863,"Fortín de las Flores"],[864,"Gutiérrez Zamora"],[865,"Huatusco"],[867,"Isla"],[868,"Ixtaczoquitlán"],[869,"Jáltipan"],[871,"Juan Rodríguez Clara"],[872,"Villa José Cardel"],[873,"Las Choapas"],[875,"Naranjos"],[876,"Martínez de la Torre"],[877,"Minatitlán"],[878,"Misantla"],[879,"Nanchital"],[882,"Orizaba"],[885,"Papantla"],[886,"Perote"],[888,"Poza Rica"],[889,"Río Blanco"],[890,"San Andrés Tuxtla"],[891,"San Rafael"],[894,"Platón Sánchez"],[894,"Tantoyuca"],[895,"Tempoal"],[898,"Tierra Blanca"],[901,"Tlapacoyan"],[903,"Túxpam de Rodríguez Cano"],[905,"Cd. Industrial Framboyan"],[905,"Veracruz"],[910,"Mérida"],[913,"Motul"],[914,"Oxkutzcab"],[915,"Progreso"],[917,"Ticul"],[918,"Tizimín"],[920,"Valladolid"],[930,"Zacatecas"],[933,"Fresnillo"],[934,"Guadalupe"],[935,"Jalpa"],[936,"Jerez de G. Salinas"],[938,"Juchipila"],[939,"Loreto"],[946,"Nochistlán"],[958,"Valparaíso"],[960,"Calera de V. Rosales"]];const cities=citiesPairs.reduce((acc,[k,v])=>Object.assign(Object.assign({},acc),{[k]:v}),{});function clean$Y(input){return cleanUnicode(input,"- ");}
943const impl$11={name:"Mexican Standardized Bank Code",localName:"Clave Bancaria Estandarizada",abbreviation:"CLABE",compact(input){const[value,err]=clean$Y(input);if(err){throw err;}
944return value.toLocaleUpperCase();},format(input){const[value]=clean$Y(input);return value;},validate(input){const[value,error]=clean$Y(input);if(error){return{isValid:false,error};}
945if(value.length!==18){return{isValid:false,error:new InvalidLength()};}
946if(!isdigits(value)){return{isValid:false,error:new InvalidComponent()};}
947const[bankCode,cityCode,account,checksum2]=splitAt(value,3,6,17);if(banksMap[parseInt(bankCode,10)]===void 0){return{isValid:false,error:new InvalidComponent()};}
948if(cities[parseInt(cityCode,10)]===void 0){return{isValid:false,error:new InvalidComponent()};}
949if(!isdigits(account)){return{isValid:false,error:new InvalidComponent()};}
950const sum=(10-weightedSum(value.substr(0,17),{weights:[3,7,1],modulus:10}))%10;if(checksum2!==String(sum)){return{isValid:false,error:new InvalidChecksum()};}
951return{isValid:true,compact:value,isIndividual:false,isCompany:false};}};const{name:name$11,localName:localName$11,abbreviation:abbreviation$11,validate:validate$11,format:format$11,compact:compact$11}=impl$11;const clabe=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$11,compact:compact$11,format:format$11,localName:localName$11,name:name$11,validate:validate$11},Symbol.toStringTag,{value:"Module"}));function clean$X(input){return cleanUnicode(input," ");}
952const nameBlacklist$1=new Set(["BACA","BAKA","BUEI","BUEY","CACA","CACO","CAGA","CAGO","CAKA","CAKO","COGE","COGI","COJA","COJE","COJI","COJO","COLA","CULO","FALO","FETO","GETA","GUEI","GUEY","JETA","JOTO","KACA","KACO","KAGA","KAGO","KAKA","KAKO","KOGE","KOGI","KOJA","KOJE","KOJI","KOJO","KOLA","KULO","LILO","LOCA","LOCO","LOKA","LOKO","MAME","MAMO","MEAR","MEAS","MEON","MIAR","MION","MOCO","MOKO","MULA","MULO","NACA","NACO","PEDA","PEDO","PENE","PIPI","PITO","POPO","PUTA","PUTO","QULO","RATA","ROBA","ROBE","ROBO","RUIN","SENO","TETA","VACA","VAGA","VAGO","VAKA","VUEI","VUEY","WUEI","WUEY"]);const validStates=new Set(["AS","BC","BS","CC","CH","CL","CM","CS","DF","DG","GR","GT","HG","JC","MC","MN","MS","NE","NL","NT","OC","PL","QR","QT","SL","SP","SR","TC","TL","TS","VZ","YN","ZS"]);const checkAlphabet$1="0123456789ABCDEFGHIJKLMN&OPQRSTUVWXYZ";const checkAlphabetDict=checkAlphabet$1.split("").reduce((acc,c,idx)=>Object.assign(Object.assign({},acc),{[c]:idx}),{});const impl$10={name:"Mexican Personal Identification",localName:"Clave Única de Registro de Población",abbreviation:"CURP",compact(input){const[value,err]=clean$X(input);if(err){throw err;}
953return value.toLocaleUpperCase();},format(input){const[value]=clean$X(input);return value;},validate(input){const[value,error]=clean$X(input);if(error){return{isValid:false,error};}
954if(value.length!==18){return{isValid:false,error:new InvalidLength()};}
955if(!/^[A-Z]{4}[0-9]{6}[A-Z]{6}[0-9A-Z][0-9]$/.test(value)){return{isValid:false,error:new InvalidFormat()};}
956if(!isValidDateCompactYYMMDD(value.substr(4,6),true)){return{isValid:false,error:new InvalidComponent()};}
957if(nameBlacklist$1.has(value.substr(0,4))){return{isValid:false,error:new InvalidComponent()};}
958if(!["H","M","X"].includes(value[10])){return{isValid:false,error:new InvalidComponent()};}
959if(!validStates.has(value.substr(11,2))){return{isValid:false,error:new InvalidComponent()};}
960const check=value.substr(0,17).split("").reduce((acc,c,idx)=>{var _a;return acc+((_a=checkAlphabetDict[c])!==null&&_a!==void 0?_a:0)*(18-idx);},0);const checkStr=String((10-check%10)%10);if(checkStr!==value.substr(17,1)){return{isValid:false,error:new InvalidChecksum()};}
961return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};function getBirthDateImpl(value){const[,year,mm,dd]=splitAt(value,4,6,8);const century2=!Number.isNaN(parseInt(value[16],10))?"19":"20";return buildDate(`${century2}${year}`,mm,dd);}
962function getGender(input){const value=impl$10.compact(input)[10];if(value==="X"){return"X";}else if(value==="H"){return"M";}
963return"F";}
964function getBirthDate(input){const value=impl$10.compact(input);const date=getBirthDateImpl(value);return validBirthdate(date)?date:null;}
965const{name:name$10,localName:localName$10,abbreviation:abbreviation$10,validate:validate$10,format:format$10,compact:compact$10}=impl$10;const curp=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$10,compact:compact$10,format:format$10,getBirthDate,getGender,localName:localName$10,name:name$10,validate:validate$10},Symbol.toStringTag,{value:"Module"}));function clean$W(input){return cleanUnicode(input,"-_ ");}
966const nameBlacklist=new Set(["BUEI","BUEY","CACA","CACO","CAGA","CAGO","CAKA","CAKO","COGE","COJA","COJE","COJI","COJO","CULO","FETO","GUEY","JOTO","KACA","KACO","KAGA","KAGO","KAKA","KOGE","KOJO","KULO","MAME","MAMO","MEAR","MEAS","MEON","MION","MOCO","MULA","PEDA","PEDO","PENE","PUTA","PUTO","QULO","RATA","RUIN"]);const checkAlphabet="0123456789ABCDEFGHIJKLMN&OPQRSTUVWXYZ Ñ";const impl$$={name:"Mexican Tax Number",localName:"Registro Federal de Contribuyentes",abbreviation:"RFC",compact(input){const[value,err]=clean$W(input);if(err){throw err;}
967return value.toLocaleUpperCase();},format(input){const[value]=clean$W(input);if(value.length===12){return splitAt(value,3,9).join(" ");}
968if(value.length===13){return splitAt(value,4,10).join(" ");}
969return splitAt(value,4).join(" ");},validate(input){const[value,error]=clean$W(input);if(error){return{isValid:false,error};}
970if(value.length===10||value.length===13){if(!/^[A-Z&Ñ]{4}[0-9]{6}([0-9A-Z]{3})?$/.test(value)){return{isValid:false,error:new InvalidComponent()};}
971if(nameBlacklist.has(value.substr(0,4))){return{isValid:false,error:new InvalidComponent()};}
972if(!isValidDateCompactYYMMDD(value.substr(4,6),true)){return{isValid:false,error:new InvalidComponent()};}}else if(value.length===12){if(!/^[A-Z&Ñ]{3}[0-9]{6}[0-9A-Z]{3}$/.test(value)){return{isValid:false,error:new InvalidComponent()};}
973if(!isValidDateCompactYYMMDD(value.substr(3,6))){return{isValid:false,error:new InvalidComponent()};}}else{return{isValid:false,error:new InvalidLength()};}
974if(value.length>=12){if(!/[1-9A-V][1-9A-Z][0-9A]$/.test(value)){return{isValid:false,error:new InvalidComponent()};}
975const[front,check]=splitAt(value,-1);const sum=weightedSum(front.padStart(12," "),{modulus:11,alphabet:checkAlphabet,weights:[2,3,4,5,6,7,8,9,10,11,12,13,14],reverse:true});const mod=11-sum%11;let val;if(mod===11){val="0";}else if(mod===10){val="A";}else{val=String(mod);}
976if(check!==val){return{isValid:false,error:new InvalidChecksum()};}}
977return{isValid:true,compact:value,isIndividual:value.length!==12,isCompany:value.length===12};}};const{name:name$$,localName:localName$$,abbreviation:abbreviation$$,validate:validate$$,format:format$$,compact:compact$$}=impl$$;const rfc=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$$,compact:compact$$,format:format$$,localName:localName$$,name:name$$,validate:validate$$},Symbol.toStringTag,{value:"Module"}));const MX=Object.freeze(Object.defineProperty({__proto__:null,clabe,curp,rfc},Symbol.toStringTag,{value:"Module"}));function clean$V(input){return cleanUnicode(input," -*");}
978const UNASSIGNED=["00","17","18","19","20","69","73","80","81","94","95","96","97"];const impl$_={name:"Malaysian National Registration Identity Card Number",localName:"National Registration Identity Card Number",abbreviation:"NRIC No.",compact(input){const[value,err]=clean$V(input);if(err){throw err;}
979return value;},format(input){const[value]=clean$V(input);return splitAt(value,6,8).join("-");},validate(input){const[value,error]=clean$V(input);if(error){return{isValid:false,error};}
980if(value.length!==12){return{isValid:false,error:new InvalidLength()};}
981if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
982const[bdate,place]=splitAt(value,6,8);if(!isValidDateCompactYYMMDD(bdate,true)){return{isValid:false,error:new InvalidComponent()};}
983if(UNASSIGNED.includes(place)){return{isValid:false,error:new InvalidComponent()};}
984return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$_,localName:localName$_,abbreviation:abbreviation$_,validate:validate$_,format:format$_,compact:compact$_}=impl$_;const nric=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$_,compact:compact$_,format:format$_,localName:localName$_,name:name$_,validate:validate$_},Symbol.toStringTag,{value:"Module"}));const MY=Object.freeze(Object.defineProperty({__proto__:null,nric},Symbol.toStringTag,{value:"Module"}));function clean$U(input){return cleanUnicode(input," -.");}
985function checksum(value){const nineCharValue=value.padStart(9,"0");const sum=weightedSum(nineCharValue,{weights:[9,8,7,6,5,4,3,2,-1],modulus:11});return sum===0;}
986const impl$Z={name:"Dutch Citizen Identification Number",localName:"Burgerservicenummer",abbreviation:"BSN",compact(input){const[value,err]=clean$U(input);if(err){throw err;}
987return value;},format(input){const[value]=clean$U(input);return splitAt(value,4,6).join(".");},validate(input){const[value,error]=clean$U(input);if(error){return{isValid:false,error};}
988if(![8,9].includes(value.length)){return{isValid:false,error:new InvalidLength()};}
989if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
990if(!checksum(value)){return{isValid:false,error:new InvalidChecksum()};}
991return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$Z,localName:localName$Z,abbreviation:abbreviation$Z,validate:validate$Z,format:format$Z,compact:compact$Z}=impl$Z;const bsn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$Z,compact:compact$Z,format:format$Z,localName:localName$Z,name:name$Z,validate:validate$Z},Symbol.toStringTag,{value:"Module"}));function clean$T(input){const[value,err]=cleanUnicode(input," -.","NL");if(err){return[value,err];}
992const[a,b]=splitAt(value,-3);return[`${a.padStart(9,"0")}
992${b}`,null];}
993const impl$Y={name:"Dutch VAT Number",localName:"Btw-identificatienummer",abbreviation:"Btw-nr.",compact(input){const[value,err]=clean$T(input);if(err){throw err;}
994return value;},format(input){const[value]=clean$T(input);return value;},validate(input){const[value,error]=clean$T(input);if(error){return{isValid:false,error};}
995if(value.length!==12){return{isValid:false,error:new InvalidLength()};}
996const[a,b,c]=splitAt(value,9,10);if(!isdigits(a)||!isdigits(c)){return{isValid:false,error:new InvalidFormat()};}
997if(b!=="B"){return{isValid:false,error:new InvalidFormat()};}
998const sum=weightedSum(a,{weights:[9,8,7,6,5,4,3,2,-1],modulus:11});if(sum%11!==0&&!mod97base10Validate(`NL${a}${b}${c}`)){return{isValid:false,error:new InvalidChecksum()};}
999return{isValid:true,compact:`${a}${b}${c}`,isIndividual:false,isCompany:true};}};const{name:name$Y,localName:localName$Y,abbreviation:abbreviation$Y,validate:validate$Y,format:format$Y,compact:compact$Y}=impl$Y;const btw=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$Y,compact:compact$Y,format:format$Y,localName:localName$Y,name:name$Y,validate:validate$Y},Symbol.toStringTag,{value:"Module"}));function clean$S(input){return cleanUnicode(input," -.");}
1000const impl$X={name:"Dutch Student Identification Number",localName:"Onderwijsnummer",compact(input){const[value,err]=clean$S(input);if(err){throw err;}
1001return value;},format(input){const[value]=clean$S(input);return splitAt(value,4,6).join(".");},validate(input){const[value,error]=clean$S(input);if(error){return{isValid:false,error};}
1002if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
1003if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1004if(value.substr(0,2)!=="10"){return{isValid:false,error:new InvalidFormat()};}
1005const sum=weightedSum(value,{weights:[9,8,7,6,5,4,3,2,-1],modulus:1e4});if(sum%11!==5){return{isValid:false,error:new InvalidChecksum()};}
1006return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$X,localName:localName$X,abbreviation:abbreviation$X,validate:validate$X,format:format$X,compact:compact$X}=impl$X;const onderwijsnummer=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$X,compact:compact$X,format:format$X,localName:localName$X,name:name$X,validate:validate$X},Symbol.toStringTag,{value:"Module"}));const NL=Object.freeze(Object.defineProperty({__proto__:null,bsn,btw,onderwijsnummer},Symbol.toStringTag,{value:"Module"}));function clean$R(input){return cleanUnicode(input," -:");}
1007function checkBirthdate(value){let[dd,mm,yy,rest]=splitAt(value,2,4,6,9).map((v)=>parseInt(v,10));if(dd>40){dd-=40;}
1008if(mm>40){mm-=40;}
1009if(rest<500){yy+=1900;}else if(rest<750&&yy>54){yy+=1800;}else if(rest<1e3&&yy<40){yy+=2e3;}else if(rest>=900&&rest<1e3&&yy>=40){yy+=1900;}else{return false;}
1010return isValidDate(String(yy),String(mm),String(dd),true);}
1011const impl$W={name:"Norwegian National Identity Number",localName:"Fødselsnummer",compact(input){const[value,err]=clean$R(input);if(err){throw err;}
1012return value;},format(input){const[value]=clean$R(input);return splitAt(value,6).join(" ");},validate(input){const[value,error]=clean$R(input);if(error){return{isValid:false,error};}
1013if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
1014if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1015if(!checkBirthdate(value)){return{isValid:false,error:new InvalidComponent()};}
1016const[front1,check1]=splitAt(value,9,10);const[front2,check2]=splitAt(value,10);const sum1=weightedSum(front1,{weights:[3,7,6,1,8,9,4,5,2],modulus:11});const sum2=weightedSum(front2,{weights:[5,4,3,2,7,6,5,4,3,2],modulus:11});if(String((11-sum1)%11)!==check1||String((11-sum2)%11)!==check2){return{isValid:false,error:new InvalidChecksum()};}
1017return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$W,localName:localName$W,abbreviation:abbreviation$W,validate:validate$W,format:format$W,compact:compact$W}=impl$W;const fodselsnummer=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$W,compact:compact$W,format:format$W,localName:localName$W,name:name$W,validate:validate$W},Symbol.toStringTag,{value:"Module"}));function clean$Q(input){const[value,err]=cleanUnicode(input," -.");if(err){return[value,err];}
1018if(value.startsWith("0000")){return[value.substr(4),null];}
1019return[value,null];}
1020const impl$V={name:"Norwegian Bank Account Number",localName:"Kontonummer",abbreviation:"Konto Nr.",compact(input){const[value,err]=clean$Q(input);if(err){throw err;}
1021return value;},format(input){const[value]=clean$Q(input);return splitAt(value.padStart(11,"0"),4,6).join(".");},validate(input){const[value,error]=clean$Q(input);if(error){return{isValid:false,error};}
1022if(value.length!==11&&value.length!==7){return{isValid:false,error:new InvalidLength()};}
1023if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1024if(value.length===7&&!luhnChecksumValidate(value)){return{isValid:false,error:new InvalidChecksum()};}
1025if(value.length===11){const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{weights:[6,7,8,9,4,5,6,7,8,9],modulus:11});if(String(sum)!==check){return{isValid:false,error:new InvalidChecksum()};}}
1026return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$V,localName:localName$V,abbreviation:abbreviation$V,validate:validate$V,format:format$V,compact:compact$V}=impl$V;const kontonr=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$V,compact:compact$V,format:format$V,localName:localName$V,name:name$V,validate:validate$V},Symbol.toStringTag,{value:"Module"}));function clean$P(input){return cleanUnicode(input," ","NO");}
1027const impl$U={name:"Norwegian VAT Number",localName:"Merverdiavgift",abbreviation:"MVA",compact(input){const[value,err]=clean$P(input);if(err){throw err;}
1028return value;},format(input){const[value]=clean$P(input);return`NO ${splitAt(value,3,6,9).join(" ")}`;},validate(input){const[value,error]=clean$P(input);if(error){return{isValid:false,error};}
1029if(value.length!==12){return{isValid:false,error:new InvalidLength()};}
1030if(!isdigits(value.substr(0,9))){return{isValid:false,error:new InvalidFormat()};}
1031const[front,end]=splitAt(value,9);if(end!=="MVA"){return{isValid:false,error:new InvalidFormat()};}
1032const sum=weightedSum(front,{weights:[3,2,7,6,5,4,3,2,1],modulus:11});if(sum!==0){return{isValid:false,error:new InvalidChecksum()};}
1033return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$U,localName:localName$U,abbreviation:abbreviation$U,validate:validate$U,format:format$U,compact:compact$U}=impl$U;const mva=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$U,compact:compact$U,format:format$U,localName:localName$U,name:name$U,validate:validate$U},Symbol.toStringTag,{value:"Module"}));function clean$O(input){return cleanUnicode(input," -/");}
1034const impl$T={name:"Norwegian Organization Number",localName:"Organisasjonsnummer",abbreviation:"Orgnr",compact(input){const[value,err]=clean$O(input);if(err){throw err;}
1035return value;},format(input){const[value]=clean$O(input);return splitAt(value,3,6).join(" ");},validate(input){const[value,error]=clean$O(input);if(error){return{isValid:false,error};}
1036if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
1037if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1038const sum=weightedSum(value,{weights:[3,2,7,6,5,4,3,2,1],modulus:11});if(sum!==0){return{isValid:false,error:new InvalidChecksum()};}
1039return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$T,localName:localName$T,abbreviation:abbreviation$T,validate:validate$T,format:format$T,compact:compact$T}=impl$T;const orgnr$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$T,compact:compact$T,format:format$T,localName:localName$T,name:name$T,validate:validate$T},Symbol.toStringTag,{value:"Module"}));const NO=Object.freeze(Object.defineProperty({__proto__:null,fodselsnummer,kontonr,mva,orgnr:orgnr$1},Symbol.toStringTag,{value:"Module"}));function clean$N(input){const[value,err]=cleanUnicode(input," -");if(err!==null){return[value,err];}
1040if(value.startsWith("NZ")){return[value.substr(2),null];}
1041return[value,null];}
1042const impl$S={name:"Inland Revenue Department Number",localName:"Te Tari Taake",abbreviation:"IRD",compact(input){const[value,err]=clean$N(input);if(err){throw err;}
1043return value;},format(input){const[value]=clean$N(input);return splitAt(value,2,5).join("-");},validate(input){const[value,error]=clean$N(input);if(error){return{isValid:false,error};}
1044if(value.length!==8&&value.length!==9){return{isValid:false,error:new InvalidLength()};}
1045if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1046const[frontV,check]=splitAt(value,-1);const front=frontV.padStart(8,"0");let sum=(11-weightedSum(front,{weights:[3,2,7,6,5,4,3,2],modulus:11}))%11;if(sum===10){sum=(11-weightedSum(front,{weights:[7,4,3,2,5,2,7,6],modulus:11}))%11;}
1047if(String(sum)!==check){return{isValid:false,error:new InvalidChecksum()};}
1048return{isValid:true,compact:value,isIndividual:true,isCompany:true};}};const{name:name$S,localName:localName$S,abbreviation:abbreviation$S,validate:validate$S,format:format$S,compact:compact$S}=impl$S;const ird=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$S,compact:compact$S,format:format$S,localName:localName$S,name:name$S,val
1048idate:validate$S},Symbol.toStringTag,{value:"Module"}));const bankData={"01":{algorithm:"AB",branches:[[1,999],[1100,1199],[1800,1899]]},"02":{algorithm:"AB",branches:[[1,999],[1200,1299]]},"03":{algorithm:"AB",branches:[[1,999],[1300,1399],[1500,1599],[1700,1799],[1900,1999]]},"06":{algorithm:"AB",branches:[[1,999],[1400,1499]]},"08":{algorithm:"D",branches:[[6500,6599]]},"09":{algorithm:"E",branches:[[0,0]]},"11":{algorithm:"AB",branches:[[5e3,6499],[6600,8999]]},"12":{algorithm:"AB",branches:[[3e3,3299],[3400,3499],[3600,3699]]},"13":{algorithm:"AB",branches:[[4900,4999]]},"14":{algorithm:"AB",branches:[[4700,4799]]},"15":{algorithm:"AB",branches:[[3900,3999]]},"16":{algorithm:"AB",branches:[[4400,4499]]},"17":{algorithm:"AB",branches:[[3300,3399]]},"18":{algorithm:"AB",branches:[[3500,3599]]},"19":{algorithm:"AB",branches:[[4600,4649]]},"20":{algorithm:"AB",branches:[[4100,4199]]},"21":{algorithm:"AB",branches:[[4800,4899]]},"22":{algorithm:"AB",branches:[[4e3,4049]]},"23":{algorithm:"AB",branches:[[3700,3799]]},"24":{algorithm:"AB",branches:[[4300,4349]]},"25":{algorithm:"F",branches:[[2500,2599]]},"26":{algorithm:"G",branches:[[2600,2699]]},"27":{algorithm:"AB",branches:[[3800,3849]]},"28":{algorithm:"G",branches:[[2100,2149]]},"29":{algorithm:"G",branches:[[2150,2299]]},"30":{algorithm:"AB",branches:[[2900,2949]]},"31":{algorithm:"X",branches:[[2800,2849]]},"33":{algorithm:"F",branches:[[6700,6799]]},"35":{algorithm:"AB",branches:[[2400,2499]]},"38":{algorithm:"AB",branches:[[9e3,9499]]}};const algorithms={A:{weights:[0,0,6,3,7,9,0,0,10,5,8,4,2,1,0,0,0,0],modulus:11},B:{weights:[0,0,0,0,0,0,0,0,10,5,8,4,2,1,0,0,0,0],modulus:11},C:{weights:[3,7,0,0,0,0,9,1,10,5,3,4,2,1,0,0,0,0],modulus:11},D:{weights:[0,0,0,0,0,0,0,7,6,5,4,3,2,1,0,0,0,0],modulus:11},E:{weights:[0,0,0,0,0,0,0,0,0,0,5,4,3,2,0,0,0,1],modulus:11},F:{weights:[0,0,0,0,0,0,0,1,7,3,1,7,3,1,0,0,0,0],modulus:10},G:{weights:[0,0,0,0,0,0,0,1,3,7,1,3,7,1,0,3,7,1],modulus:10},X:{weights:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],modulus:1}};function clean$M(input){const[valueA,err]=cleanUnicode(input,"");if(err!==null){return[valueA,err];}
1049const cvalue=valueA.trim();if(!/[ -]/.test(cvalue)){return[cvalue,null];}
1050const parts=cvalue.split(/[ -]/g);if(parts.length!==4){return[cvalue,new InvalidFormat()];}
1051return[[parts[0].padStart(2,"0"),parts[1].padStart(4,"0"),parts[2].padStart(7,"0"),parts[3].padStart(3,"0")].join(""),null];}
1052const impl$R={name:"New Zealand Bank Account Number",localName:"Bank Account Number",compact(input){const[value,err]=clean$M(input);if(err){throw err;}
1053return value;},format(input){const[value]=clean$M(input);return splitAt(value,2,6,-3).join("-");},validate(input){const[value,error]=clean$M(input);if(error){return{isValid:false,error};}
1054if(value.length!==16){return{isValid:false,error:new InvalidLength()};}
1055if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1056const[bank2,branch,account,suffix]=splitAt(value,2,6,-3);const bankInfo=bankData[bank2];if(!bankInfo){return{isValid:false,error:new InvalidComponent()};}
1057const bnum=parseInt(branch,10);if(!bankInfo.branches.some((pair)=>bnum>=pair[0]&&bnum<=pair[1])){return{isValid:false,error:new InvalidComponent()};}
1058let alg=bankInfo.algorithm;if(alg==="AB"){alg=parseInt(account,10)<99e4?"A":"B";}
1059const algInfo=algorithms[alg];if(!algInfo){return{isValid:false,error:new InvalidComponent()};}
1060const sum=weightedSum(`${bank2}${branch}0${account}0${suffix}`,algInfo);if(String(sum)!=="0"){return{isValid:false,error:new InvalidChecksum()};}
1061return{isValid:true,compact:value,isIndividual:false,isCompany:false};}};const{name:name$R,localName:localName$R,abbreviation:abbreviation$R,validate:validate$R,format:format$R,compact:compact$R}=impl$R;const bank=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$R,compact:compact$R,format:format$R,localName:localName$R,name:name$R,validate:validate$R},Symbol.toStringTag,{value:"Module"}));const NZ=Object.freeze(Object.defineProperty({__proto__:null,bank,ird},Symbol.toStringTag,{value:"Module"}));function clean$L(input){return cleanUnicode(input," -");}
1062const impl$Q={name:"Peruvian ID Card for Foreigners",localName:"Carné de Extranjería",abbreviation:"CE",compact(input){const[value,err]=clean$L(in
1062put);if(err){throw err;}
1063return value;},format(input){const[value]=clean$L(input);return value;},validate(input){const[value,error]=clean$L(input);if(error){return{isValid:false,error};}
1064if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
1065if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1066return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$Q,localName:localName$Q,abbreviation:abbreviation$Q,validate:validate$Q,format:format$Q,compact:compact$Q}=impl$Q;const ce=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$Q,compact:compact$Q,format:format$Q,localName:localName$Q,name:name$Q,validate:validate$Q},Symbol.toStringTag,{value:"Module"}));function clean$K(input){return cleanUnicode(input," -");}
1067const impl$P={name:"Peruvian Personal Identification Card",localName:"Cédula Única de Identidad",abbreviation:"CUI",compact(input){const[value,err]=clean$K(input);if(err){throw err;}
1068return value;},format(input){const[value]=clean$K(input);if(value.length===9){return splitAt(value,8).join("-");}
1069return value;},validate(input){const[value,error]=clean$K(input);if(error){return{isValid:false,error};}
1070if(value.length!==8&&value.length!==9){return{isValid:false,error:new InvalidLength()};}
1071if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1072if(value.length===9){const[front,check]=splitAt(value,8);const sum=weightedSum(front,{weights:[3,2,7,6,5,4,3,2],modulus:11});const digits=["65432110987"[sum],"KJIHGFEDCBA"[sum]];if(!digits.includes(check)){return{isValid:false,error:new InvalidChecksum()};}}
1073return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$P,localName:localName$P,abbreviation:abbreviation$P,validate:validate$P,format:format$P,compact:compact$P}=impl$P;const cui$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$P,compact:compact$P,format:format$P,localName:localName$P,name:name$P,validate:validate$P},Symbol.toStringTag,{value:"Module"}));function clean$J(input){return cleanUnicode(input," -");}
1074const impl$O={name:"Peruvian Company Tax Number",localName:"Registro Único de Contribuyentes",abbreviation:"RUC",compact(input){const[value,err]=clean$J(input);if(err){throw err;}
1075return value;},format(input){const[value]=clean$J(input);if(value.length===9){return splitAt(value,8).join("-");}
1076return value;},validate(input){const[value,error]=clean$J(input);if(error){return{isValid:false,error};}
1077if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
1078if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1079if(!["10","15","16","17","20"].includes(value.substr(0,2))){return{isValid:false,error:new InvalidComponent()};}
1080const[front,check]=splitAt(value,10);const sum=weightedSum(front,{weights:[5,4,3,2,7,6,5,4,3,2],modulus:11});if(String((11-sum)%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
1081return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$O,localName:localName$O,abbreviation:abbreviation$O,validate:validate$O,format:format$O,compact:compact$O}=impl$O;const ruc$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$O,compact:compact$O,format:format$O,localName:localName$O,name:name$O,validate:validate$O},Symbol.toStringTag,{value:"Module"}));const PE=Object.freeze(Object.defineProperty({__proto__:null,ce,cui:cui$1,ruc:ruc$1},Symbol.toStringTag,{value:"Module"}));const PROVINCES={"1":"Khyber Pakhtunkhwa","2":"FATA","3":"Punjab","4":"Sindh","5":"Balochistan","6":"Islamabad","7":"Gilgit-Baltistan"};const VALID_PROVINCES=Object.keys(PROVINCES);function clean$I(input){return cleanUnicode(input," -");}
1082const impl$N={name:"Pakistani Computerized National Identification Number",localName:"Computerized National Identification Number",abbreviation:"CNIC",compact(input){const[value,err]=clean$I(input);if(err){throw err;}
1083return value;},format(input){const[value]=clean$I(input);return splitAt(value,5,12).join("-");},validate(input){const[value,error]=clean$I(input);if(error){return{isValid:false,error};}
1084if(value.length!==13){return{isValid:false,error:new InvalidLength()};}
1085if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1086if(value[12]==="0"){return{isValid:false,error:new InvalidComponent()};}
1087if(!VALID_PROVINCES.includes(value[0])){return{isValid:false,error:new InvalidComponent()};}
1088return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$N,localName:localName$N,abbreviation:abbreviation$N,validate:validate$N,format:format$N,compact:compact$N}=impl$N;const cnic=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$N,compact:compact$N,format:format$N,localName:localName$N,name:name$N,validate:validate$N},Symbol.toStringTag,{value:"Module"}));function clean$H(input){return cleanUnicode(input," -");}
1089const impl$M={name:"Pakistani National Tax Number",localName:"National Tax Number",abbreviation:"NTN",compact(input){const[value,err]=clean$H(input);if(err){throw err;}
1090return value;},format(input){const[value]=clean$H(input);return value;},validate(input){const[value,error]=clean$H(input);if(error){return{isValid:false,error};}
1091if(value.length!==7){return{isValid:false,error:new InvalidLength()};}
1092if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1093return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$M,localName:localName$M,abbreviation:abbreviation$M,validate:validate$M,format:format$M,compact:compact$M}=impl$M;const ntn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$M,compact:compact$M,format:format$M,localName:localName$M,name:name$M,validate:validate$M},Symbol.toStringTag,{value:"Module"}));const PK=Object.freeze(Object.defineProperty({__proto__:null,cnic,ntn},Symbol.toStringTag,{value:"Module"}));function clean$G(input){return cleanUnicode(input," -","PL");}
1094const impl$L={name:"Polish VAT Number",localName:"Numer Identyfikacji Podatkowej",abbreviation:"NIP",compact(input){const[value,err]=clean$G(input);if(err){throw err;}
1095return value;},format(input){const[value]=clean$G(input);return value;},validate(input){const[value,error]=clean$G(input);if(error){return{isValid:false,error};}
1096if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
1097if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1098const sum=weightedSum(value,{weights:[6,5,7,2,3,4,5,6,7,-1],modulus:11});if(sum!==0){return{isValid:false,error:new InvalidChecksum()};}
1099return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$L,localName:localName$L,abbreviation:abbreviation$L,validate:validate$L,format:format$L,compact:compact$L}=impl$L;const nip=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$L,compact:compact$L,format:format$L,localName:localName$L,name:name$L,validate:validate$L},Symbol.toStringTag,{value:"Module"}));function clean$F(input){return cleanUnicode(input," -");}
1100const impl$K={name:"Polish National Identification Number",localName:"Powszechny Elektroniczny System Ewidencji Ludności",abbreviation:"PESEL",compact(input){const[value,err]=clean$F(input);if(err){throw err;}
1101return value;},format(input){const[value]=clean$F(input);return value;},validate(input){const[value,error]=clean$F(input);if(error){return{isValid:false,error};}
1102if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
1103if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1104const[yy,mm,dd]=splitAt(value,2,4,6);const month=parseInt(mm,10);let century2;if(month>=80){century2="18";}else if(month>=60){century2="22";}else if(month>=40){century2="21";}else if(month>=20){century2="20";}else{century2="19";}
1105if(!isValidDate(`${century2}${yy}`,String(month%20),dd,true)){return{isValid:false,error:new InvalidComponent()};}
1106const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{weights:[1,3,7,9,1,3,7,9,1,3],modulus:10});if(String((10-sum)%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
1107return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$K,localName:localName$K,abbreviation:abbreviation$K,validate:validate$K,format:format$K,compact:compact$K}=impl$K;const pesel=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$K,compact:compact$K,format:format$K,localName:localName$K,name:name$K,validate:validate$K},Symbol.toStringTag,{value:"Module"}));function clean$E(input){return cleanUnicode(input," -");}
1108const impl$J={name:"Polish Statistical Identificaiton Number",localName:"Rejestr Gospodarki Narodowej",abbreviation:"REGON",compact(input){const[value,err]=clean$E(input);if(err){throw err;}
1109return value;},format(input){const[value]=clean$E(input);return value;},validate(input){const[value,error]=clean$E(input);if(error){return{isValid:false,error};}
1110if(value.length!==9&&value.length!==14){return{isValid:false,error:new InvalidLength()};}
1111if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1112const[front,check,,check2]=splitAt(value,8,9,-1);const sum=weightedSum(front,{weights:[8,9,2,3,4,5,6,7],modulus:11});if(String(sum%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
1113if(value.length===14){const sum2=weightedSum(value.substring(0,13),{weights:[2,4,8,5,0,9,7,3,6,1,2,4,8],modulus:11});if(String(sum2%10)!==check2){return{isValid:false,error:new InvalidChecksum()};}}
1114return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$J,localName:localName$J,abbreviation:abbreviation$J,validate:validate$J,format:format$J,compact:compact$J}=impl$J;const regon=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$J,compact:compact$J,format:format$J,localName:localName$J,name:name$J,validate:validate$J},Symbol.toStringTag,{value:"Module"}));const PL=Object.freeze(Object.defineProperty({__proto__:null,nip,pesel,regon},Symbol.toStringTag,{value:"Module"}));const ALPHABET$1="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";const validRe$1=/^\d{9}[A-Z0-9]{2}\d$/i;function clean$D(input){return cleanUnicode(input," ");}
1115const impl$I={name:"Portuguese Identity number",localName:"Número de Cartão de Cidadão",abbreviation:"CC",compact(input){const[value,err]=clean$D(input);if(err){throw err;}
1116return value;},format(input){const[value]=clean$D(input);return splitAt(value,8,9).join(" ");},validate(input){const[value,error]=clean$D(input);if(error){return{isValid:false,error};}
1117if(value.length!==12){return{isValid:false,error:new InvalidLength()};}
1118if(!validRe$1.test(value)){return{isValid:false,error:new InvalidFormat()};}
1119if(!luhnChecksumValidate(value,ALPHABET$1)){return{isValid:false,error:new InvalidChecksum()};}
1120return{isValid:true,compact:value,isIndividual:"1234".includes(value[0]),isCompany:!"1234".includes(value[0])};}};const{name:name$I,localName:localName$I,abbreviation:abbreviation$I,validate:validate$I,format:format$I,compact:compact$I}=impl$I;const cc=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$I,compact:compact$I,format:format$I,localName:localName$I,name:name$I,validate:validate$I},Symbol.toStringTag,{value:"Module"}));
1120function clean$C(input){return cleanUnicode(input," -.","PT");}
1121const impl$H={name:"Portuguese Tax Identification Number",localName:"Número de Identificação Fiscal",abbreviation:"NIF",compact(input){const[value,err]=clean$C(input);if(err){throw err;}
1122return value;},format(input){const[value]=clean$C(input);return splitAt(value,3,6).join(" ");},validate(input){const[value,error]=clean$C(input);if(error){return{isValid:false,error};}
1123if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
1124if(!isdigits(value)||value[0]==="0"){return{isValid:false,error:new InvalidFormat()};}
1125const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{weights:[9,8,7,6,5,4,3,2,1],modulus:11});if(String((11-sum)%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
1126return{isValid:true,compact:value,isIndividual:"1234".includes(value[0]),isCompany:!"1234".includes(value[0])};}};const{name:name$H,localName:localName$H,abbreviation:abbreviation$H,validate:validate$H,format:format$H,compact:compact$H}=impl$H;const nif=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$H,compact:compact$H,format:format$H,localName:localName$H,name:name$H,validate:validate$H},Symbol.toStringTag,{value:"Module"}));const impl$G=Object.assign(Object.assign({},nif),{name:"Portuguese Legal Person Identification Number",localName:"Número de Identificação de Pessoa Colectiva",abbreviation:"NIPC"});const{name:name$G,localName:localName$G,abbreviation:abbreviation$G,validate:validate$G,format:format$G,compact:compact$G}=impl$G;const nipc=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$G,compact:compact$G,format:format$G,localName:localName$G,name:name$G,validate:validate$G},Symbol.toStringTag,{value:"Module"}));const PT=Object.freeze(Object.defineProperty({__proto__:null,cc,nif,nipc},Symbol.toStringTag,{value:"Module"}));function clean$B(input){return cleanUnicode(input," -");}
1127const impl$F={name:"Paraguay Tax Number",localName:"Registro Único del Contribuyentes",abbreviation:"RUC",compact(input){const[value,err]=clean$B(input);if(err){throw err;}
1128return value;},format(input){const[value]=clean$B(input);return`${value.substr(0,value.length-1)}-${value.substr(value.length-1)}`;},validate(input){const[value,error]=clean$B(input);if(error){return{isValid:false,error};}
1129if(value.length<5||value.length>9){return{isValid:false,error:new InvalidLength()};}
1130if(!isdigits(value)){return{isValid:false,error:new InvalidComponent()};}
1131const[front,check]=splitAt(value,value.length-1);const sum=front.split("").reverse().map((x)=>parseInt(x,10)).reduce((acc,digit2,idx)=>acc+digit2*(idx+2),0);const digit=String((11-sum%11)%10);if(check!==digit){return{isValid:false,error:new InvalidChecksum()};}
1132return{isValid:true,compact:value,isIndividual:parseInt(front,10)<8e7,isCompany:front.length===8&&parseInt(front,10)>8e7};}};const{name:name$F,localName:localName$F,abbreviation:abbreviation$F,validate:validate$F,format:format$F,compact:compact$F}=impl$F;const ruc=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$F,compact:compact$F,format:format$F,localName:localName$F,name:name$F,validate:validate$F},Symbol.toStringTag,{value:"Module"}));function clean$A(input){return cleanUnicode(input," .-");}
1133const impl$E={name:"Paraguay CI Number",localName:"Cedula de la Identidad civil",abbreviation:"CI",compact(input){const[value,err]=clean$A(input);if(err){throw err;}
1134return value;},format(input){const[value]=clean$A(input);return value;},validate(input){const[value,error]=clean$A(input);if(error){return{isValid:false,error};}
1135if(value.length<5||value.length>7){return{isValid:false,error:new InvalidLength()};}
1136if(!isdigits(value)){return{isValid:false,error:new InvalidComponent()};}
1137return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$E,localName:localName$E,abbreviation:abbreviation$E,validate:validate$E,format:format$E,compact:compact$E}=impl$E;const cedula$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$E,compact:compact$E,format:format$E,localName:localName$E,name:name$E,validate:validate$E},Symbol.toStringTag,{value:"Module"}));const PY=Object.freeze(Object.defineProperty({__proto__:null,cedula:cedula$1,ruc},Symbol.toStringTag,{value:"Module"}));function clean$z(input){return cleanUnicode(input," -");}
1138const century={"0":"19","1":"19","2":"19","3":"18","4":"18","5":"20","6":"20","7":"19","8":"19","9":"19"};const COUNTIES={"01":"Alba","02":"Arad","03":"Arges","04":"Bacau","05":"Bihor","06":"Bistrita-Nasaud","07":"Botosani","08":"Brasov","09":"Braila","10":"Buzau","11":"Caras-Severin","12":"Cluj","13":"Constanta","14":"C
1138ovasna","15":"Dambovita","16":"Dolj","17":"Galati","18":"Gorj","19":"Harghita","20":"Hunedoara","21":"Ialomita","22":"Iasi","23":"Ilfov","24":"Maramures","25":"Mehedinti","26":"Mures","27":"Neamt","28":"Olt","29":"Prahova","30":"Satu Mare","31":"Salaj","32":"Sibiu","33":"Suceava","34":"Teleorman","35":"Timis","36":"Tulcea","37":"Vaslui","38":"Valcea","39":"Vrancea","40":"Bucuresti","41":"Bucuresti - Sector 1","42":"Bucuresti - Sector 2","43":"Bucuresti - Sector 3","44":"Bucuresti - Sector 4","45":"Bucuresti - Sector 5","46":"Bucuresti - Sector 6","47":"Bucuresti - Sector 7 (desfiintat)","48":"Bucuresti - Sector 8 (desfiintat)","51":"Calarasi","52":"Giurgiu"};const VALID_COUNTIES=Object.keys(COUNTIES);const impl$D={name:"Romanian Numerical Personal Code",localName:"Cod Numeric Personal",abbreviation:"CNP",compact(input){const[value,err]=clean$z(input);if(err){throw err;}
1139return value;},format(input){const[value]=clean$z(input);return value;},validate(input){const[value,error]=clean$z(input);if(error){return{isValid:false,error};}
1140if(value.length!==13){return{isValid:false,error:new InvalidLength()};}
1141if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1142if(value[0]==="0"){return{isValid:false,error:new InvalidComponent()};}
1143const[first,dvalue,county]=splitAt(value,1,7,9);if(!isValidDateCompactYYYYMMDD(`${century[first]}${dvalue}`,true)){return{isValid:false,error:new InvalidComponent()};}
1144if(!VALID_COUNTIES.includes(county)){return{isValid:false,error:new InvalidComponent()};}
1145const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{weights:[2,7,9,1,4,6,3,5,8,2,7,9],modulus:11});const digit=sum===10?"1":String(sum);if(check!==digit){return{isValid:false,error:new InvalidChecksum()};}
1146return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$D,localName:localName$D,abbreviation:abbreviation$D,validate:validate$D,format:format$D,compact:compact$D}=impl$D;const cnp=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$D,compact:compact$D,format:format$D,localName:localName$D,name:name$D,validate:validate$D},Symbol.toStringTag,{value:"Module"}));function clean$y(input){return cleanUnicode(input," -","RO");}
1147const impl$C={name:"Romanian Company Identifier",localName:"Codul Unic de Înregistrare",abbreviation:"CUI",compact(input){const[value,err]=clean$y(input);if(err){throw err;}
1148return value;},format(input){const[value]=clean$y(input);return splitAt(value,3,6).join(" ");},validate(input){const[value,error]=clean$y(input);if(error){return{isValid:false,error};}
1149if(value.length<2||value.length>10){return{isValid:false,error:new InvalidLength()};}
1150if(!isdigits(value)||value[0]==="0"){return{isValid:false,error:new InvalidFormat()};}
1151const[front,check]=splitAt(value.padStart(9,"0"),-1);const sum=10*weightedSum(front,{weights:[7,5,3,2,1,7,5,3,2],modulus:11});if(String(sum%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
1152return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$C,localName:localName$C,abbreviation:abbreviation$C,validate:validate$C,format:format$C,compact:compact$C}=impl$C;const cui=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$C,compact:compact$C,format:format$C,localName:localName$C,name:name$C,validate:validate$C},Symbol.toStringTag,{value:"Module"}));function clean$x(input){return cleanUnicode(input," -","RO");}
1153const impl$B={name:"Romanian VAT Number",localName:"Codul de Identificare Fiscală",abbreviation:"CIF",compact(input){const[value,err]=clean$x(input);if(err){throw err;}
1154return value;},format(input){const[value]=clean$x(input);return format$C(value);},validate(input){const[value,error]=clean$x(input);if(error){return{isValid:false,error};}
1155if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1156if(value.length===13){return validate$D(value);}
1157if(value.length>=2&&value.length<=10){return validate$C(value);}
1158return{isValid:false,error:new InvalidLength()};}};const{name:name$B,localName:localName$B,abbreviation:abbreviation$B,validate:validate$B,format:format$B,compact:compact$B}=impl$B;const cif=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$B,compact:compact$B,format:format$B,localName:localName$B,name:name$B,validate:validate$B},Symbol.toStringTag,{value:"Module"}));const checkRe=/[A-Z]\d+\/\d{1,5}\/\d+/;function*genit(){for(let i=0;i<=41;i+=1){yield i;}
1159yield 51;yield 52;}
1160const counties=new Set(genit());function clean$w(input){const[value,err]=cleanUnicode(input,"");if(err!==null){return[value,err];}
1161const better=value.replace(/[ /\\-]+/g,"/").replace(/^([A-Z])\//,"$1").replace(/([A-Z])(\d)\//,"$10$2").replace(/\/\d{2}[.]\d{2}[.](\d{4})$/,"/$1");return[better,null];}
1162const impl$A={name:"Romanian Trade Register Identifier",localName:"Ordine din Registrul Comerţului",abbreviation:"NRC",compact(input){const[value,err]=clean$w(input);if(err){throw err;}
1163return value;},format(input){const[value]=clean$w(input);return value;},validate(input){const[value,error]=clean$w(input);if(error){return{isValid:false,error};}
1164if(!checkRe.test(value)){return{isValid:false,error:new InvalidFormat()};}
1165if(!"JFC".includes(value[0])){return{isValid:false,error:new InvalidComponent()};}
1166const[county,serial,year]=value.substr(1).split("/");if(!counties.has(parseInt(county,10))){return{isValid:false,error:new InvalidComponent()};}
1167if(serial.length>5){return{isValid:false,error:new InvalidComponent()};}
1168if(year.length!==4){return{isValid:false,error:new InvalidComponent()};}
1169return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$A,localName:localName$A,abbreviation:abbreviation$A,validate:validate$A,format:format$A,compact:compact$A}=impl$A;const onrc=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$A,compact:compact$A,format:format$A,localName:localName$A,name:name$A,validate:validate$A},Symbol.toStringTag,{value:"Module"}));const RO=Object.freeze(Object.defineProperty({__proto__:null,cif,cnp,cui,onrc},Symbol.toStringTag,{value:"Module"}));function clean$v(input){return cleanUnicode(input," -.","RS");}
1170const impl$z={name:"Serbian Tax Identification Number",localName:"Poreski Identifikacioni Broj",abbreviation:"PIB",compact(input){const[value,err]=clean$v(input);if(err){throw err;}
1171return value;},format(input){const[value]=clean$v(input);return value;},validate(input){const[value,error]=clean$v(input);if(error){return{isValid:false,error};}
1172if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
1173if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1174if(!mod11mod10Validate(value)){return{isValid:false,error:new InvalidChecksum()};}
1175return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$z,localName:localName$z,abbreviation:abbreviation$z,validate:validate$z,format:format$z,compact:compact$z}=impl$z;const pib=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$z,compact:compact$z,format:format$z,localName:localName$z,name:name$z,validate:validate$z},Symbol.toStringTag,{value:"Module"}));const impl$y=Object.assign(Object.assign({},jmbg$4),{name:"Serbian Unique Master Citizen Number",localName:"Јединствени матични број грађана",abbreviation:"ЈМБГ"});const{name:name$y,localName:localName$y,abbreviation:abbreviation$y,validate:validate$y,format:format$y,compact:compact$y}=impl$y;const jmbg$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$y,compact:compact$y,format:format$y,localName:localName$y,name:name$y,val
1175idate:validate$y},Symbol.toStringTag,{value:"Module"}));const RS=Object.freeze(Object.defineProperty({__proto__:null,jmbg:jmbg$1,pib},Symbol.toStringTag,{value:"Module"}));function clean$u(input){return cleanUnicode(input," ");}
1176const impl$x={name:"Russian Tax Identifier",localName:"Идентификационный номер налогоплательщика",abbreviation:"ИНН",compact(input){const[value,err]=clean$u(input);if(err){throw err;}
1177return value.toLocaleUpperCase();},format(input){const[value]=clean$u(input);return value;},validate(input){const[value,error]=clean$u(input);if(error){return{isValid:false,error};}
1178if(value.length!==10&&value.length!==12){return{isValid:false,error:new InvalidLength()};}
1179if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1180let digit;const[front,check]=splitAt(value,value.length===10?-1:-2);if(value.length===10){digit=String(weightedSum(front,{weights:[2,4,10,3,5,9,4,6,8],modulus:11})%10);}else{const d1=String(weightedSum(front,{weights:[7,2,4,10,3,5,9,4,6,8],modulus:11})%10);const d2=String(weightedSum(front+d1,{weights:[3,7,2,4,10,3,5,9,4,6,8],modulus:11})%10);digit=`${d1}${d2}`;}
1181if(digit!==check){return{isValid:false,error:new InvalidChecksum()};}
1182return{isValid:true,compact:value,isIndividual:value.length===12,isCompany:value.length===10};}};const{name:name$x,localName:localName$x,abbreviation:abbreviation$x,validate:validate$x,format:format$x,compact:compact$x}=impl$x;const inn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$x,compact:compact$x,format:format$x,localName:localName$x,name:name$x,validate:validate$x},Symbol.toStringTag,{value:"Module"}));const RU=Object.freeze(Object.defineProperty({__proto__:null,inn},Symbol.toStringTag,{value:"Module"}));function clean$t(input){return cleanUnicode(input," -.");}
1183const impl$w={name:"Swedish Company Number",localName:"Organisationsnummer",abbreviation:"Orgnr",compact(input){const[value,err]=clean$t(input);if(err){throw err;}
1184return value;},format(input){const[value]=clean$t(input);return splitAt(value,-4).join("-");},validate(input){const[value,error]=clean$t(input);if(error){return{isValid:false,error};}
1185if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
1186if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1187if(!luhnChecksumValidate(value)){return{isValid:false,error:new InvalidChecksum()};}
1188return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$w,localName:localName$w,abbreviation:abbreviation$w,validate:validate$w,format:format$w,compact:compact$w}=impl$w;const orgnr=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$w,compact:compact$w,format:format$w,localName:localName$w,name:name$w,validate:validate$w},Symbol.toStringTag,{value:"Module"}));const ONE_HUNDRED_YEARS_IN_MS=100*365*24*60*60*1e3;function clean$s(input){const[value,err]=cleanUnicode(input," :");if(err){return[value,err];}
1189const[a,b,c]=splitAt(value,-5,-4);return[`${a.replace(/[-+]/g,"")}${b}${c}`,null];}
1190function formatImpl(input){const[value]=clean$s(input);let front,back,sep="-";if(value.length===12||value.length===13){const[yyyy,mm,dd]=splitAt(value,0,4,6,8);const d=buildDate(yyyy,mm,dd);if(d===null){return value;}
1191if((new Date()).getTime()-d.getTime()>ONE_HUNDRED_YEARS_IN_MS){sep="+";}
1192front=`${yyyy.substring(2)}${mm}${dd}`;back=value.substring(value.length-4);}else if(value.length===10){front=value.substring(0,6);back=value.substring(6);}else if(value.length===11){front=value.substring(0,6);sep=value[6];back=value.substring(7);}else{return value;}
1193return`${front}${sep}${back}`;}
1194const impl$v={name:"Swedish Personal Identity Number",localName:"Personnummer",compact(input){const[value,err]=clean$s(input);if(err){throw err;}
1195return value;},format:formatImpl,validate(input){const[value,error]=clean$s(input);if(error){return{isValid:false,error};}
1196let a,b,c;if(value.length===11){[a,b,c]=splitAt(value,-5,-4);}else if(value.length===13){[,a,b,c]=splitAt(value,-11,-5,-4);}else{return{isValid:false,error:new InvalidLength()};}
1197if(!"-+".includes(b)){return{isValid:false,error:new InvalidFormat()};}
1198const digits=`${a}${c}`;if(!isdigits(digits)){return{isValid:false,error:new InvalidFormat()};}
1199let yyyymmdd;if(value.length===13){yyyymmdd=value.substring(0,8);}else{const yymmdd=value.substring(0,6);const year=(new Date()).getFullYear();let century2=Math.floor(year/100);if(parseInt(yymmdd.substring(0,2),10)>year%100){century2-=1;}
1200if(b==="+"){century2-=1;}
1201yyyymmdd=`${century2}${yymmdd}`;}
1202if(!isValidDateCompactYYYYMMDD(yyyymmdd,true)){return{isValid:false,error:new InvalidComponent()};}
1203if(!luhnChecksumValidate(digits)){return{isValid:false,error:new InvalidChecksum()};}
1204return{isValid:true,compact:formatImpl(input),isIndividual:true,isCompany:false};}};const{name:name$v,localName:localName$v,abbreviation:abbreviation$v,validate:validate$v,format:format$v,compact:compact$v}=impl$v;const personnummer=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$v,compact:compact$v,format:format$v,localName:localName$v,name:name$v,validate:validate$v},Symbol.toStringTag,{value:"Module"}));function clean$r(input){return cleanUnicode(input," -.","SE");}
1205const impl$u={name:"Swedish VAT Number",localName:"Momsregistreringsnummer",abbreviation:"Momsnr.",compact(input){const[value,err]=clean$r(input);if(err){throw err;}
1206return value;},format(input){const[value]=clean$r(input);return value;},validate(input){const[value,error]=clean$r(input);if(error){return{isValid:false,error};}
1207if(value.length!==12){return{isValid:false,error:new InvalidLength()};}
1208if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1209const[front,end]=splitAt(value,-2);if(end!=="01"){return{isValid:false,error:new InvalidFormat()};}
1210if(!luhnChecksumValidate(front)){return{isValid:false,error:new InvalidChecksum()};}
1211return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$u,localName:localName$u,abbreviation:abbreviation$u,validate:validate$u,format:format$u,compact:compact$u}=impl$u;const vat=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$u,compact:compact$u,format:format$u,localName:localName$u,name:name$u,validate:validate$u},Symbol.toStringTag,{value:"Module"}));const SE=Object.freeze(Object.defineProperty({__proto__:null,orgnr,personnummer,vat},Symbol.toStringTag,{value:"Module"}));function clean$q(input){return cleanUnicode(input," ");}
1212const OTHER_UEN_ENTITY_TYPES=["CC","CD","CH","CL","CM","CP","CS","CX","DP","FB","FC","FM","FN","GA","GB","GS","HS","LL","LP","MB","MC","MD","MH","MM","MQ","NB","NR","PA","PB","PF","RF","RP","SM","SS","TC","TU","VH","XL"];function validateLocal(value){const[front,check]=splitAt(value,-1);if(!isdigits(front)){return{isValid:false,error:new InvalidComponent()};}
1213const sum=weightedSum(front,{modulus:11,weights:[10,8,6,4,9,7,5,3,1]});const digit="ZKCMDNERGWH"[sum];
1213if(check!==digit){return{isValid:false,error:new InvalidChecksum()};}
1214return{isValid:true,compact:value,isIndividual:false,isCompany:true};}
1215function validateBusiness(value){const[front,check]=splitAt(value,-1);if(!isdigits(front)){return{isValid:false,error:new InvalidComponent()};}
1216const sum=weightedSum(front,{modulus:11,weights:[10,4,9,3,8,2,7,1]});const digit="XMKECAWLJDB"[sum];if(check!==digit){return{isValid:false,error:new InvalidChecksum()};}
1217return{isValid:true,compact:value,isIndividual:false,isCompany:true};}
1218function validateOther(value){const[kind,year,etype,rest,check]=splitAt(value,1,3,5,-1);if(!["R","S","T"].includes(kind)){return{isValid:false,error:new InvalidComponent()};}
1219if(!isdigits(year)){return{isValid:false,error:new InvalidComponent()};}
1220if(kind==="T"&&parseInt(year,10)>(new Date()).getFullYear()%100){return{isValid:false,error:new InvalidComponent()};}
1221if(!OTHER_UEN_ENTITY_TYPES.includes(etype)){return{isValid:false,error:new InvalidComponent()};}
1222if(!isdigits(rest)){return{isValid:false,error:new InvalidComponent()};}
1223const alphabet2="ABCDEFGHJKLMNPQRSTUVWX0123456789";const digit=alphabet2[(weightedSum(value.substr(0,9),{weights:[4,3,5,3,10,2,2,5,7],modulus:11,alphabet:alphabet2})+6)%11];if(check!==digit){return{isValid:false,error:new InvalidChecksum()};}
1224return{isValid:true,compact:value,isIndividual:false,isCompany:true};}
1225const impl$t={name:"Singapore Unique Entity Number",localName:"Unique Entity Number",abbreviation:"UEN",compact(input){const[value,err]=clean$q(input);if(err){throw err;}
1226return value;},format(input){const[value]=clean$q(input);return value;},validate(input){const[value,error]=clean$q(input);if(error){return{isValid:false,error};}
1227if(value.length!==9&&value.length!==10){return{isValid:false,error:new InvalidLength()};}
1228if(value.length===9){return validateBusiness(value);}
1229if(isdigits(value[0])){return validateLocal(value);}
1230return validateOther(value);}};const{name:name$t,localName:localName$t,abbreviation:abbreviation$t,validate:validate$t,format:format$t,compact:compact$t}=impl$t;const uen=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$t,compact:compact$t,format:format$t,localName:localName$t,name:name$t,validate:validate$t},Symbol.toStringTag,{value:"Module"}));const SG=Object.freeze(Object.defineProperty({__proto__:null,uen},Symbol.toStringTag,{value:"Module"}));function clean$p(input){return cleanUnicode(input," -","SI");}
1231const impl$s={name:"Slovenian VAT Number",localName:"Identifikacijska številka za DDV",abbreviation:"ID za DDV",compact(input){const[value,err]=clean$p(input);if(err){throw err;}
1232return value;},format(input){const[value]=clean$p(input);return value;},validate(input){const[value,error]=clean$p(input);if(error){return{isValid:false,error};}
1233if(value.length!==8){return{isValid:false,error:new InvalidLength()};}
1234if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1235const[front,check]=splitAt(value,-1);const sum=11-weightedSum(front,{weights:[8,7,6,5,4,3,2,1],modulus:11});if(String(sum%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
1236return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$s,localName:localName$s,abbreviation:abbreviation$s,validate:validate$s,format:format$s,compact:compact$s}=impl$s;const ddv=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$s,compact:compact$s,format:format$s,localName:localName$s,name:name$s,validate:validate$s},Symbol.toStringTag,{value:"Module"}));const impl$r=Object.assign(Object.assign({},jmbg$4),{name:"Slovene Unique Master Citizen Number",localName:"Enotna Matična Številka Občana",abbreviation:"EMŠO"});const{name:name$r,localName:localName$r,abbreviation:abbreviation$r,validate:validate$r,format:format$r,compact:compact$r}=impl$r;const jmbg=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$r,compact:compact$r,format:format$r,localName:localName$r,name:name$r,validate:validate$r},Symbol.toStringTag,{value:"Module"}));const impl$q=Object.assign(Object.assign({},jmbg$4),{name:"Slovene Unique Master Citizen Number",localName:"Enotna Matična Številka Občana",abbreviation:"EMŠO"});const{name:name$q,localName:localName$q,abbreviation:abbreviation$q,validate:validate$q,format:format$q,compact:compact$q}=impl$q;const emso=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$q,compact:compact$q,format:format$q,localName:localName$q,name:name$q,validate:validate$q},Symbol.toStringTag,{value:"Module"}));const SI=Object.freeze(Object.defineProperty({__proto__:null,ddv,emso,jmbg},Symbol.toStringTag,{value:"Module"}));function clean$o(input){return cleanUnicode(input," -","SK");}
1237const impl$p={name:"Slovak VAT Number",localName:"Identifikačné Číslo pre Daň z Pridanej Hodnoty",abbreviation:"IČ DPH",compact(input){const[value,err]=clean$o(input);if(err){throw err;}
1238return value;},format(input){const[value]=clean$o(input);return splitAt(value,3,6,8).join(" ");},validate(input){const[value,error]=clean$o(input);if(error){return{isValid:false,error};}
1239if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
1240if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1241if(!"234789".includes(value[0])){return{isValid:false,error:new InvalidComponent()};}
1242if(parseInt(value,10)%11!==0){return{isValid:false,error:new InvalidChecksum()};}
1243return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$p,localName:localName$p,abbreviation:abbreviation$p,validate:validate$p,format:format$p,compact:compact$p}=impl$p;const dph=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$p,compact:compact$p,format:format$p,localName:localName$p,name:name$p,validate:validate$p},Symbol.toStringTag,{value:"Module"}));const impl$o=Object.assign(Object.assign({},rc$1),{name:"Slovak Birth Number",localName:"Rodné číslo",abbreviation:"RC"});const{name:name$o,localName:localName$o,abbreviation:abbreviation$o,validate:validate$o,format:format$o,compact:compact$o}=impl$o;const rc=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$o,compact:compact$o,format:format$o,localName:localName$o,name:name$o,validate:validate$o},Symbol.toStringTag,{value:"Module"}));const SK=Object.freeze(Object.defineProperty({__proto__:null,dph,rc},Symbol.toStringTag,{value:"Module"}));const lowNumbers=new Set([2,4,6,7,8,9,10,11,13,16,18,19,20,21,25,26,30,32,33,35,36,37,38,39,40,42,45,47,49,51,52,55,56,57,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,79,80,81,84,85,87,88,91,92,94,95,96,97,99]);
1243function clean$n(input){const[value,err]=cleanUnicode(input," .");if(err){return[value,err];}
1244return[value.replace(/^0+/,""),null];}
1245const impl$n={name:"San Marino National Tax Number",localName:"Codice Operatore Eeconomico",abbreviation:"COE",compact(input){const[value,err]=clean$n(input);if(err){throw err;}
1246return value;},format(input){const[value]=clean$n(input);return value;},validate(input){const[value,error]=clean$n(input);if(error){return{isValid:false,error};}
1247if(value.length>5||value.length===0){return{isValid:false,error:new InvalidLength()};}
1248if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1249if(value.length<3&&!lowNumbers.has(parseInt(value,10))){return{isValid:false,error:new InvalidComponent()};}
1250return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$n,localName:localName$n,abbreviation:abbreviation$n,validate:validate$n,format:format$n,compact:compact$n}=impl$n;const coe=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$n,compact:compact$n,format:format$n,localName:localName$n,name:name$n,validate:validate$n},Symbol.toStringTag,{value:"Module"}));const SM=Object.freeze(Object.defineProperty({__proto__:null,coe},Symbol.toStringTag,{value:"Module"}));function clean$m(input){const[value,err]=cleanUnicode(input," -");if(err!==null){return[value,err];}
1251if(value.startsWith("SV")){return[value.substr(2),err];}
1252return[value,err];}
1253const impl$m={name:"El Salvador Tax Number",localName:"Número de Identificación Tributaria",abbreviation:"NIT",compact(input){const[value,err]=clean$m(input);if(err){throw err;}
1254return value;},format(input){const[value]=clean$m(input);return splitAt(value,4,-4,-1).join("-");},validate(input){const[value,error]=clean$m(input);if(error){return{isValid:false,error};}
1255if(value.length!==14){return{isValid:false,error:new InvalidLength()};}
1256if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1257if(!["0","1","9"].includes(value[0])){return{isValid:false,error:new InvalidComponent()};}
1258let sum;const[front,check]=splitAt(value,13);if(value.substr(10,3)==="100"){sum=weightedSum(front,{weights:[14,13,12,11,10,9,8,7,6,5,4,3,2],modulus:11})%10;}else{sum=(11-weightedSum(front,{weights:[2,7,6,5,4,3,2,7,6,5,4,3,2],modulus:11}))%10;}
1259if(check!==String(sum)){return{isValid:false,error:new InvalidChecksum()};}
1260return{isValid:true,compact:value,isIndividual:true,isCompany:true};}};const{name:name$m,localName:localName$m,abbreviation:abbreviation$m,validate:validate$m,format:format$m,compact:compact$m}=impl$m;const nit=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$m,compact:compact$m,format:format$m,localName:localName$m,name:name$m,validate:validate$m},Symbol.toStringTag,{value:"Module"}));const SV=Object.freeze(Object.defineProperty({__proto__:null,nit},Symbol.toStringTag,{value:"Module"}));function clean$l(input){return cleanUnicode(input," -");}
1261const impl$l={name:"Thai National Identity Card Number",localName:"บัตรประจำตัวประชาชนไทย",abbreviation:"IDNR",compact(input){const[value,err]=clean$l(input);if(err){throw err;}
1262return value;},format(input){const[value]=clean$l(input);return splitAt(value,1,5,10,12).join("-");},validate(input){const[value,error]=clean$l(input);if(error){return{isValid:false,error};}
1263if(value.length!==13){return{isValid:false,error:new InvalidLength()};}
1264if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1265if("09".includes(value[0])){return{isValid:false,error:new InvalidComponent()};}
1266const[front,check]=splitAt(value,12);const sum=weightedSum(front,{weights:[13,12,11,10,9,8,7,6,5,4,3,2,1],modulus:11});if(String((11-sum)%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
1267return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$l,localName:localName$l,abbreviation:abbreviation$l,validate:validate$l,format:format$l,compact:compact$l}=impl$l;const idnr$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$l,compact:compact$l,format:format$l,localName:localName$l,name:name$l,validate:validate$l},Symbol.toStringTag,{value:"Module"}));function clean$k(input){return cleanUnicode(input," -");}
1268const impl$k={name:"Thailand Memorandum of Association Number",localName:"",abbreviation:"MOA",compact(input){const[value,err]=clean$k(input);if(err){throw err;}
1269return value;},format(input){const[value]=clean$k(input);return splitAt(value,1,3,4,7,12).join("-");},validate(input){const[value,error]=clean$k(input);if(error){return{isValid:false,error};}
1270if(value.length!==13){return{isValid:false,error:new InvalidLength()};}
1271if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1272if(value[0]!=="0"){return{isValid:false,error:new InvalidComponent()};}
1273const[front,check]=splitAt(value,12);const sum=weightedSum(front,{weights:[13,12,11,10,9,8,7,6,5,4,3,2,1],modulus:11});if(String((11-sum)%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
1274return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$k,localName:localName$k,abbreviation:abbreviation$k,val
1274idate:validate$k,format:format$k,compact:compact$k}=impl$k;const moa=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$k,compact:compact$k,format:format$k,localName:localName$k,name:name$k,validate:validate$k},Symbol.toStringTag,{value:"Module"}));function clean$j(input){return cleanUnicode(input," -");}
1275const impl$j={name:"Thailand Taxpayer Identification Number",localName:"",abbreviation:"TIN",compact(input){const[value,err]=clean$j(input);if(err){throw err;}
1276return value;},format(input){if(validate$l(input).isValid){return format$l(input);}
1277return format$k(input);},validate(input){const v1=validate$l(input);if(v1.isValid){return v1;}
1278return validate$k(input);}};const{name:name$j,localName:localName$j,abbreviation:abbreviation$j,validate:validate$j,format:format$j,compact:compact$j}=impl$j;const tin$1=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$j,compact:compact$j,format:format$j,localName:localName$j,name:name$j,validate:validate$j},Symbol.toStringTag,{value:"Module"}));const TH=Object.freeze(Object.defineProperty({__proto__:null,idnr:idnr$1,moa,tin:tin$1},Symbol.toStringTag,{value:"Module"}));function clean$i(input){return cleanUnicode(input," /.-");}
1279const validRe=/^(\d+)(.*)$/;function compactImpl(input){const[value,err]=clean$i(input);if(err){return["",err];}
1280const match=value.match(validRe);if(match&&match.length===3){return[match[1].padStart(7,"0")+match[2],null];}
1281return[value,null];}
1282const VALID_CONTROL_KEYS=["A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","V","W","X","Y","Z"];const VALID_TVA_CODES=["A","P","B","D","N"];const VALID_CATEGORY_CODES=["M","P","C","N","E"];const impl$i={name:"Tunisia tax number",localName:"Matricule Fiscal",abbreviation:"MF",compact(input){const[value,error]=compactImpl(input);if(error){throw error;}
1283return value;},format(input){const[value,error]=compactImpl(input);if(error){return input;}
1284const[front,key,tva2,category,rest]=splitAt(value,7,8,9,10);if(value.length===8){return`${front}/${key}`;}
1285return`${front}/${key}/${tva2}/${category}/${rest}`;},validate(input){const[value,error]=compactImpl(input);if(error){return{isValid:false,error};}
1286if(value.length!==8&&value.length!==13){return{isValid:false,error:new InvalidLength()};}
1287const[front,key,tva2,category,rest]=splitAt(value,7,8,9,10);if(!isdigits(front)){return{isValid:false,error:new InvalidFormat()};}
1288if(!VALID_CONTROL_KEYS.includes(key)){return{isValid:false,error:new InvalidComponent()};}
1289if(value.length!==8){if(!VALID_TVA_CODES.includes(tva2)){return{isValid:false,error:new InvalidComponent()};}
1290if(!VALID_CATEGORY_CODES.includes(category)){return{isValid:false,error:new InvalidComponent()};}
1291if(!isdigits(rest)){return{isValid:false,error:new InvalidComponent()};}
1292if(rest!=="000"&&category!=="E"){return{isValid:false,error:new InvalidComponent()};}}
1293return{isValid:true,compact:value,isIndividual:false,isCompany:false};}};const{name:name$i,localName:localName$i,abbreviation:abbreviation$i,validate:validate$i,format:format$i,compact:compact$i}=impl$i;const mf=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$i,compact:compact$i,format:format$i,localName:localName$i,name:name$i,validate:validate$i},Symbol.toStringTag,{value:"Module"}));const TN=Object.freeze(Object.defineProperty({__proto__:null,mf},Symbol.toStringTag,{value:"Module"}));function clean$h(input){return cleanUnicode(input,"");}
1294const impl$h={name:"Turkish Identificatio Number",localName:"Türkiye Cumhuriyeti Kimlik Numarası",abbreviation:"T.C. Kimlik No.",compact(input){const[value,err]=clean$h(input);if(err){throw err;}
1295return value;},format(input){const[value]=clean$h(input);return value;},validate(input){const[value,error]=clean$h(input);if(error){return{isValid:false,error};}
1296if(value.length!==11){return{isValid:false,error:new InvalidLength()};}
1297if(!isdigits(value)||value[0]==="0"){return{isValid:false,error:new InvalidFormat()};}
1298const[front,check]=splitAt(value,-2);const sum1=(10-weightedSum(front,{weights:[3,1],modulus:10}))%10;const sum2=(sum1+weightedSum(front,{weights:[1],modulus:10}))%10;if(`${sum1}${sum2}`!==check){return{isValid:false,error:new InvalidChecksum()};}
1299return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$h,localName:localName$h,abbreviation:abbreviation$h,validate:validate$h,format:format$h,compact:compact$h}=impl$h;const tckimlik=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$h,compact:compact$h,format:format$h,localName:localName$h,name:name$h,validate:validate$h},Symbol.toStringTag,{value:"Module"}));function clean$g(input){return cleanUnicode(input,"");}
1300const impl$g={name:"Turkish Tax Identification Number",localName:"Vergi Kimlik Numarası",abbreviation:"VKN",compact(input){const[value,err]=clean$g(input);if(err){throw err;}
1301return value;},format(input){const[value]=clean$g(input);return value;},validate(input){const[value,error]=clean$g(input);if(error){return{isValid:false,error};}
1302if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
1303if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1304const[front,check]=splitAt(value,-1);const sum=front.split("").map((v,i)=>(parseInt(v,10)+9-i)%10).map((v,i)=>{if(v===0){return v;}
1305return v*Math.pow(2,9-i)%9||9;}).reduce((acc,v)=>(acc+v)%10);if(String((10-sum)%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
1306return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$g,localName:localName$g,abbreviation:abbreviation$g,validate:validate$g,format:format$g,compact:compact$g}=impl$g;const vkn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$g,compact:compact$g,format:format$g,localName:localName$g,name:name$g,validate:validate$g},Symbol.toStringTag,{value:"Module"}));const TR=Object.freeze(Object.defineProperty({__proto__:null,tckimlik,vkn},Symbol.toStringTag,{value:"Module"}));function clean$f(input){return cleanUnicode(input," -");}
1307const impl$f={name:"Taiwanese Business Administration Number",localName:"",abbreviation:"UBN",compact(input){const[value,err]=clean$f(input);if(err){throw err;}
1308return value;},format(input){const[value]=clean$f(input);return value;},validate(input){const[value,error]=clean$f(input);if(error){return{isValid:false,error};}
1309if(value.length!==8){return{isValid:false,error:new InvalidLength()};}
1310if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1311const weights2=[1,2,1,2,1,2,4,1];const digits=weights2.map((w,idx)=>String(parseInt(value[idx],10)*w)).join("");const sum=digits.split("").reduce((acc,d)=>(acc+parseInt(d,10))%10,0);if(!(sum===0||sum===9&&value[6]==="7")){return{isValid:false,error:new InvalidChecksum()};}
1312return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$f,localName:localName$f,abbreviation:abbreviation$f,validate:validate$f,format:format$f,compact:compact$f}=impl$f;const ubn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$f,compact:compact$f,format:format$f,localName:localName$f,name:name$f,validate:validate$f},Symbol.toStringTag,{value:"Module"}));function clean$e(input){return cleanUnicode(input," -");}
1313const impl$e={abbreviation:"BAN",name:"Taiwanese Unified Business Number",localName:"統一編號",compact(input){const[value,err]=clean$e(input);if(err){throw err;}
1314return value;},format(input){const[value]=clean$e(input);return value;},validate(input){const[value,error]=clean$e(input);if(error){return{isValid:false,error};}
1315if(value.length!==8){return{isValid:false,error:new InvalidLength()};}
1316if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1317return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$e,localName:localName$e,abbreviation:abbreviation$e,validate:validate$e,format:format$e,compact:compact$e}=impl$e;const ban=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$e,compact:compact$e,default:impl$e,format:format$e,localName:localName$e,name:name$e,validate:validate$e},Symbol.toStringTag,{value:"Module"}));function clean$d(input){return cleanUnicode(input," -");}
1318const ALPHABET="0123456789ABCDEFGHJKLMNPQRSTUVXYWZIO";const impl$d={localName:"中華民國國民身分證",abbreviation:"NATID",name:"National ID Number",compact(input){const[value,err]=clean$d(input);if(err){throw err;}
1319return value;},format(input){const[value]=clean$d(input);return value;},validate(input){const[value,error]=clean$d(input);if(error){return{isValid:false,error};}
1320if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
1321const[issuer,gender,code,check]=splitAt(value,1,2,9);if(!isalpha(issuer)){return{isValid:false,error:new InvalidComponent()};}
1322if(!/[1-28-9]/.test(gender)){return{isValid:false,error:new InvalidComponent()};}
1323if(!isdigits(code)){return{isValid:false,error:new InvalidComponent()};}
1324if(!isdigits(check)){return{isValid:false,error:new InvalidComponent()};}
1325const leading=ALPHABET.indexOf(issuer)-10;const sum=weightedSum(`${gender}${code}${check}`,{weights:[8,7,6,5,4,3,2,1,1],alphabet:ALPHABET,modulus:10})+Math.floor(leading/10+1)+leading*9;if(sum%10!==0){return{isValid:false,error:new InvalidChecksum()};}
1326return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$d,localName:localName$d,abbreviation:abbreviation$d,validate:validate$d,format:format$d,compact:compact$d}=impl$d;const natid=Object.freeze(Object.defineProperty({__proto__:null,ALPHABET,abbreviation:abbreviation$d,compact:compact$d,default:impl$d,format:format$d,localName:localName$d,name:name$d,validate:validate$d},Symbol.toStringTag,{value:"Module"}));function clean$c(input){return cleanUnicode(input," -");}
1327const impl$c={name:"UI Number",localName:"中華民國國民身分證",abbreviation:"UI",compact(input){const[value,err]=clean$c(input);if(err){throw err;}
1328return value;},format(input){const[value]=clean$c(input);return value;},validate(input){const[value,error]=clean$c(input);if(error){return{isValid:false,error};}
1329if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
1330const[issuer,gender,code,check]=splitAt(value,1,2,9);if(!isalpha(issuer)){return{isValid:false,error:new InvalidComponent()};}
1331if(!/[A-D]/.test(gender)){return{isValid:false,error:new InvalidComponent()};}
1332if(!isdigits(code)){return{isValid:false,error:new InvalidComponent()};}
1333if(!isdigits(check)){return{isValid:false,error:new InvalidComponent()};}
1334const leading=ALPHABET.indexOf(issuer)-10;const sum=weightedSum(`${gender}${code}${check}`,{weights:[8,7,6,5,4,3,2,1,1],alphabet:ALPHABET,modulus:10})+Math.floor(leading/10+1)+leading*9;if(sum%10!==0){return{isValid:false,error:new InvalidChecksum()};}
1335return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$c,localName:localName$c,abbreviation:abbreviation$c,validate:validate$c,format:format$c,compact:compact$c}=impl$c;const ui=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$c,compact:compact$c,default:impl$c,format:format$c,localName:localName$c,name:name$c,validate:validate$c},Symbol.toStringTag,{value:"Module"}));function clean$b(input){return cleanUnicode(input," -");}
1336const impl$b={abbreviation:"",localName:"",name:"Tax Code",compact(input){const[value,err]=clean$b(input);if(err){throw err;}
1337return value;},format(input){const[value]=clean$b(input);return value;},validate(input){const[value,error]=clean$b(input);if(error){return{isValid:false,error};}
1338if(value.length!==10&&value.length!==7){return{isValid:false,error:new InvalidLength()};}
1339if(value.length===7){const[lead,yymmdd]=splitAt(value,1);if(lead!=="9"){return{isValid:false,error:new InvalidFormat()};}
1340if(!isdigits(yymmdd)){return{isValid:false,error:new InvalidFormat()};}
1341if(!isValidDateCompactYYMMDD(yymmdd,true)){return{isValid:false,error:new InvalidComponent()};}}else{const[yyyymmdd,name2]=splitAt(value,8);if(!isValidDateCompactYYYYMMDD(yyyymmdd,true)){return{isValid:false,error:new InvalidComponent()};}
1342if(!/^[A-Z]+$/i.test(name2)){return{isValid:false,error:new InvalidComponent()};}}
1343return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$b,localName:localName$b,abbreviation:abbreviation$b,validate:validate$b,format:format$b,compact:compact$b}=impl$b;const tax_code=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$b,compact:compact$b,default:impl$b,format:format$b,localName:localName$b,name:name$b,validate:validate$b},Symbol.toStringTag,{value:"Module"}));const TW=Object.freeze(Object.defineProperty({__proto__:null,ban,natid,tax_code,ubn,ui},Symbol.toStringTag,{value:"Module"}));function clean$a(input){return cleanUnicode(input," ");}
1344const impl$a={name:"Ukrainian Unified State Register of Enterprises and Organizations",localName:"Єдиного державного реєстру підприємств та організацій України",abbreviation:"ЄДРПОУ",compact(input){const[value,err]=clean$a(input);if(err){throw err;}
1345return value;},format(input){const[value]=clean$a(input);return value;},validate(input){const[value,error]=clean$a(input);if(error){return{isValid:false,error};}
1346if(value.length!==8){return{isValid:false,error:new InvalidLength()};}
1347if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1348const[front,check]=splitAt(value,-1);const weights2="345".includes(front[0])?[7,1,2,3,4,5,6]:[1,2,3,4,5,6,7];
1348let sum=weightedSum(front,{weights:weights2,modulus:11});if(sum===10){sum=weightedSum(front,{weights:weights2.map((v)=>v+2),modulus:11});}
1349if(String(sum)!==check){return{isValid:false,error:new InvalidChecksum()};}
1350return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$a,localName:localName$a,abbreviation:abbreviation$a,validate:validate$a,format:format$a,compact:compact$a}=impl$a;const edrpou=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$a,compact:compact$a,format:format$a,localName:localName$a,name:name$a,validate:validate$a},Symbol.toStringTag,{value:"Module"}));function clean$9(input){return cleanUnicode(input," ");}
1351const impl$9={name:"Ukrainian Registration Number of the Taxpayer's Registration Card",localName:"Реєстраційний номер облікової картки платника податків",abbreviation:"РНОКПП",compact(input){const[value,err]=clean$9(input);if(err){throw err;}
1352return value;},format(input){const[value]=clean$9(input);return value;},validate(input){const[value,error]=clean$9(input);if(error){return{isValid:false,error};}
1353if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
1354if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1355const[front,check]=splitAt(value,-1);const sum=weightedSum(front,{weights:[-1,5,7,9,4,6,10,5,7],modulus:11});if(String(sum%10)!==check){return{isValid:false,error:new InvalidChecksum()};}
1356return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$9,localName:localName$9,abbreviation:abbreviation$9,validate:validate$9,format:format$9,compact:compact$9}=impl$9;const rntrc=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$9,compact:compact$9,format:format$9,localName:localName$9,name:name$9,validate:validate$9},Symbol.toStringTag,{value:"Module"}));const UA=Object.freeze(Object.defineProperty({__proto__:null,edrpou,rntrc},Symbol.toStringTag,{value:"Module"}));const prefixes=["01","02","03","04","05","06","11","13","14","16","21","22","23","25","34","51","52","54","55","56","57","58","59","65","10","12","15","24","20","26","27","45","46","47","81","82","83","84","30","32","35","36","37","38","61","31","33","39","41","42","43","46","48","62","63","64","66","68","71","72","73","74","75","76","77","85","86","87","88","91","92","93","98","99","40","44","50","53","60","67","80","90","94","95"];function clean$8(input){return cleanUnicode(input,"- ");}
1357const impl$8={name:"U.S. Employer Identification Number",localName:"Employer Identification Number",abbreviation:"EIN",compact(input){const[value,err]=clean$8(input);if(err){throw err;}
1358return value;},format(input){const[value]=clean$8(input);return splitAt(value,2).join("-");},validate(input){const[value,error]=clean$8(input);if(error){return{isValid:false,error};}
1359if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
1360if(!isdigits(value)){return{isValid:false,error:new InvalidComponent()};}
1361if(!prefixes.includes(value.substr(0,2))){return{isValid:false,error:new InvalidComponent()};}
1362return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$8,localName:localName$8,abbreviation:abbreviation$8,validate:validate$8,format:format$8,compact:compact$8}=impl$8;const ein=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$8,compact:compact$8,format:format$8,localName:localName$8,name:name$8,validate:validate$8},Symbol.toStringTag,{value:"Module"}));const invalidSSN=["111111111","222222222","333333333","444444444","555555555","777777777","888888888","999999999","123123123","999999999","002281852","042103580","062360749","078051120","095073645","128036045","135016629","141186941","165167999","165187999","165207999","165227999","165247999","189092294","212097694","212099999","219099999","306302348","308125070","457555462","468288779","549241889"];function clean$7(input){return cleanUnicode(input,"- ");}
1363const impl$7={name:"U.S. Social Security Number",localName:"Social Security Number",abbreviation:"SSN",compact(input){const[value,err]=clean$7(input);if(err){throw err;}
1364return value;},format(input){const[value]=clean$7(input);return splitAt(value,3,5).join("-");},validate(input){const[value,error]=clean$7(input);if(error){return{isValid:false,error};}
1365if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
1366if(!isdigits(value)){return{isValid:false,error:new InvalidComponent()};}
1367if(invalidSSN.includes(value)){return{isValid:false,error:new InvalidComponent()};}
1368if(/^(000|666|9)\d+/.test(value)){return{isValid:false,error:new InvalidComponent()};}
1369if(/^\d{3}00\d{4}/.test(value)){return{isValid:false,error:new InvalidComponent()};}
1370return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$7,localName:localName$7,abbreviation:abbreviation$7,validate:validate$7,format:format$7,compact:compact$7}=impl$7;const ssn=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$7,compact:compact$7,format:format$7,localName:localName$7,name:name$7,validate:validate$7},Symbol.toStringTag,{value:"Module"}));const US=Object.freeze(Object.defineProperty({__proto__:null,ein,ssn},Symbol.toStringTag,{value:"Module"}));function clean$6(input){return cleanUnicode(input," -");}
1371const impl$6={name:"Uruguayan Foreigners Identification Number",localName:"Número de Identidad de Extranjero",abbreviation:"NIE",compact(input){const[value,err]=clean$6(input);if(err){throw err;}
1372return value;},format(input){const[value]=clean$6(input);const[a,b,c,d]=splitAt(value,2,5,8);return`${a}.${b}.${c}-${d}`;},validate(input){const[value,error]=clean$6(input);if(error){return{isValid:false,error};}
1373if(value.length!==9){return{isValid:false,error:new InvalidLength()};}
1374if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1375const[front,check]=splitAt(value,8);const digit=String((11-weightedSum(front,{weights:[5,4,3,2,9,8,7,6,5,4,3,2],modulus:11}))%10);if(check!==digit){return{isValid:false,error:new InvalidChecksum()};}
1376return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$6,localName:localName$6,abbreviation:abbreviation$6,validate:validate$6,format:format$6,compact:compact$6}=impl$6;const nie=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$6,compact:compact$6,format:format$6,localName:localName$6,name:name$6,validate:validate$6},Symbol.toStringTag,{value:"Module"}));function clean$5(input){return cleanUnicode(input," -/");}
1377const impl$5={name:"Uruguayan Identity Card Number",localName:"Cédula de Identidad",abbreviation:"CI",compact(input){const[value,err]=clean$5(input);if(err){throw err;}
1378return value;},format(input){const[value]=clean$5(input);const[a,b,c,d]=splitAt(value,1,4,7);return`${a}.${b}.${c}-${d}`;},validate(input){const[value,error]=clean$5(input);if(error){return{isValid:false,error};}
1379if(value.length!==8){return{isValid:false,error:new InvalidLength()};}
1380if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1381const[front,check]=splitAt(value,7);const sum=weightedSum(front,{weights:[2,9,8,7,6,3,4],modulus:10});if(check!==String((10-sum)%10)){return{isValid:false,error:new InvalidChecksum()};}
1382return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name:name$5,localName:localName$5,abbreviation:abbreviation$5,validate:validate$5,format:format$5,compact:compact$5}=impl$5;const cedula=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$5,compact:compact$5,format:format$5,localName:localName$5,name:name$5,validate:validate$5},Symbol.toStringTag,{value:"Module"}));function pymod(value,modulus){return(value%modulus+modulus)%modulus;}
1383function clean$4(input){const[value,err]=cleanUnicode(input," -");if(err){return[value,err];}
1384if(value.startsWith("UY")){return[value.substr(2),null];}
1385return[value,err];}
1386const impl$4={name:"Uruguayan Tax Number",localName:"Registro Único Tributario",abbreviation:"RUT",compact(input){const[value,err]=clean$4(input);if(err){throw err;}
1387return value;},format(input){const[value]=clean$4(input);return splitAt(value,2,-4,-1).join("-");},validate(input){const[value,error]=clean$4(input);if(error){return{isValid:false,error};}
1388if(value.length!==12){return{isValid:false,error:new InvalidLength()};}
1389if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1390if(parseInt(value.substr(0,2),10)>21||value.substr(0,2)==="00"){return{isValid:false,error:new InvalidComponent()};}
1391if(value.substr(2,6)==="000000"){return{isValid:false,error:new InvalidComponent()};}
1392if(value.substr(8,3)!=="001"){return{isValid:false,error:new InvalidComponent()};}
1393const[front,check]=splitAt(value,11);const sum=weightedSum(front,{weights:[4,3,2,9,8,7,6,5,4,3,2],modulus:11});const digit=String(pymod(-sum,11));if(check!==digit){return{isValid:false,error:new InvalidChecksum()};}
1394return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$4,localName:localName$4,abbreviation:abbreviation$4,validate:validate$4,format:format$4,compact:compact$4}=impl$4;const rut=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$4,compact:compact$4,format:format$4,localName:localName$4,name:name$4,validate:validate$4},Symbol.toStringTag,{value:"Module"}));const UY=Object.freeze(Object.defineProperty({__proto__:null,cedula,nie,rut},Symbol.toStringTag,{value:"Module"}));const companyTypes={V:4,E:8,J:12,P:16,G:20};function clean$3(input){return cleanUnicode(input," -");}
1395const impl$3={name:"Venezuelan VAT Number",localName:"Registro Único de Información Fiscal",abbreviation:"RIF",compact(input){const[value,err]=clean$3(input);if(err){throw err;}
1396return value;},format(input){const[value]=clean$3(input);return splitAt(value,1,9).join("-");},validate(input){const[value,error]=clean$3(input);if(error){return{isValid:false,error};}
1397if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
1398if(!isdigits(value.substr(1))){return{isValid:false,error:new InvalidFormat()};}
1399const[ctype,body,check]=splitAt(value,1,9);const first=companyTypes[ctype];if(first===void 0){return{isValid:false,error:new InvalidComponent()};}
1400const digit=(first+weightedSum(body,{weights:[3,2,7,6,5,4,3,2],modulus:11}))%11;if("00987654321"[digit]!==check){return{isValid:false,error:new InvalidChecksum()};}
1401return{isValid:true,compact:value,isIndividual:["V","E"].includes(ctype),isCompany:["J","G","P"].includes(ctype)};}};const{name:name$3,localName:localName$3,abbreviation:abbreviation$3,validate:validate$3,format:format$3,compact:compact$3}=impl$3;const rif=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$3,compact:compact$3,format:format$3,localName:localName$3,name:name$3,validate:validate$3},Symbol.toStringTag,{value:"Module"}));const VE=Object.freeze(Object.defineProperty({__proto__:null,rif},Symbol.toStringTag,{value:"Module"}));function clean$2(input){return cleanUnicode(input," -.");}
1402const impl$2={name:"Vietnamese Tax Number",localName:"Mã số thuế",abbreviation:"MST",compact(input){const[value,err]=clean$2(input);if(err){throw err;}
1403return value;},format(input){const[value]=clean$2(input);return splitAt(value,10).join("-");},validate(input){const[value,error]=clean$2(input);if(error){return{isValid:false,error};}
1404if(value.length!==10&&value.length!==13){return{isValid:false,error:new InvalidLength()};}
1405if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1406const[province,sequence,check,suffix]=splitAt(value,2,9,10);if(sequence==="0000000"||suffix==="000"||province==="00"){return{isValid:false,error:new InvalidComponent()};}
1407const sum=weightedSum(value.substr(0,9),{modulus:11,weights:[31,29,23,19,17,13,7,5,3]});if(check!==String(10-sum)){return{isValid:false,error:new InvalidChecksum()};}
1408return{isValid:true,compact:value,isIndividual:false,isCompany:true};}};const{name:name$2,localName:localName$2,abbreviation:abbreviation$2,validate:validate$2,format:format$2,compact:compact$2}=impl$2;const mst=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$2,compact:compact$2,format:format$2,localName:localName$2,name:name$2,validate:validate$2},Symbol.toStringTag,{value:"Module"}));const VN=Object.freeze(Object.defineProperty({__proto__:null,mst},Symbol.toStringTag,{value:"Module"}));function clean$1(input){return cleanUnicode(input," -/");}
1409const impl$1={name:"South African Tax Identification Number",localName:"Tax Identification Number",abbreviation:"TIN",compact(input){const[value,err]=clean$1(input);if(err){throw err;}
1410return value;},format(input){const[value]=clean$1(input);return value;},validate(input){const[value,error]=clean$1(input);if(error){return{isValid:false,error};}
1411if(value.length!==10){return{isValid:false,error:new InvalidLength()};}
1412if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1413if(!"01239".includes(value[0])){return{isValid:false,error:new InvalidFormat()};}
1414if(!luhnChecksumValidate(value)){return{isValid:false,error:new InvalidChecksum()};}
1415return{isValid:true,compact:value,isIndividual:true,isCompany:true};}};const{name:name$1,localName:localName$1,abbreviation:abbreviation$1,validate:validate$1,format:format$1,compact:compact$1}=impl$1;const tin=Object.freeze(Object.defineProperty({__proto__:null,abbreviation:abbreviation$1,compact:compact$1,format:format$1,localName:localName$1,name:name$1,validate:validate$1},Symbol.toStringTag,{value:"Module"}));function clean(input){return cleanUnicode(input," ");}
1416const impl={name:"South African Identity Document Number",localName:"Identity Document Number",abbreviation:"IDNR",compact(input){const[value,err]=clean(input);if(err){throw err;}
1417return value;},format(input){const[value]=clean(input);return value;},validate(input){const[value,error]=clean(input);if(error){return{isValid:false,error};}
1418if(value.length!==13){return{isValid:false,error:new InvalidLength()};}
1419if(!isdigits(value)){return{isValid:false,error:new InvalidFormat()};}
1420const[bdate,gender,,citizen]=splitAt(value,6,7,10,11);if(!"01".includes(citizen)){return{isValid:false,error:new InvalidComponent()};}
1421if(!isdigits(gender)){return{isValid:false,error:new InvalidComponent()};}
1422if(!isValidDateCompactYYMMDD(bdate,true)){return{isValid:false,error:new InvalidComponent()};}
1423if(!luhnChecksumValidate(value)){return{isValid:false,error:new InvalidChecksum()};}
1424return{isValid:true,compact:value,isIndividual:true,isCompany:false};}};const{name,localName,abbreviation,validate,format,compact}=impl;const idnr=Object.freeze(Object.defineProperty({__proto__:null,abbreviation,compact,format,localName,name,validate},Symbol.toStringTag,{value:"Module"}));const ZA=Object.freeze(Object.defineProperty({__proto__:null,idnr,tin},Symbol.toStringTag,{value:"Module"}));const stdnum={AD,AL,AR,AT,AU,AZ,BA,BE,BG,BR,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CY,CZ,DE,DK,DO,DZ,EC,EE,EG,ES,FI,FO,FR,GB,GH,GR,GN,GT,HK,HR,HU,ID,IE,IL,IN,IS,IT,LI,LT,LU,LV,JP,KE,KR,MA,MC,MD,ME,MK,MT,MU,MX,MY,NL,NO,NZ,PE,PK,PL,PT,PY,RO,RS,RU,SE,SG,SI,SK,SM,SV,TH,TN,TR,TW,UA,US,UY,VE,VN,ZA};const personValidators={AD:[nrt],AL:[nipt],AR:[cuit,dni$1],AT:[vnr],AU:[tfn],AZ:[pin$1,tin$4],BA:[jmbg$4],BE:[bis,insz,nn],BG:[egn,pnf,vat$8],BR:[cpf$1],BY:[unp],BZ:[tin$3],CA:[sin],CH:[ssn$1],CL:[run],CN:[ric],CO:[nit$2],CR:[cpf,cr],CU:[ni],CZ:[rc$1],DE:[idnr$3,svnr],DK:[cpr],DO:[cedula$2],EC:[ci],EE:[ik],ES:[dni,nie$1],FI:[hetu],FR:[nif$1,nir],GB:[nino,utr],GR:[amka],GT:[cui$2],HK:[hkid],HR:[oib],HU:[anum],ID:[npwp],IE:[pps],IL:[idnr$2],IN:[aadhaar],IS:[kennitala],IT:[co
1424dicefiscale],KR:[rrn],LI:[peid],LT:[asmens],LV:[pvn],ME:[jmbg$3],MK:[jmbg$2],MU:[nid],MX:[curp,rfc],MY:[nric],NL:[onderwijsnummer,bsn],NO:[fodselsnummer],NZ:[ird],PE:[cui$1,ce],PK:[cnic],PL:[pesel],PT:[nif],PY:[ruc,cedula$1],RO:[cnp],RS:[jmbg$1],RU:[inn],SE:[personnummer],SI:[jmbg],SK:[rc],SV:[nit],TH:[idnr$1],TR:[tckimlik],UA:[edrpou],US:[ssn],UY:[nie,cedula],ZA:[tin,idnr]};function validatePerson(country,value){const vset=personValidators[country.toLocaleUpperCase()];if(!vset||vset.length===0){return{checked:false};}
1425const match=vset.filter((grp)=>grp.validate(value).isValid);return{checked:true,isValid:match.length>0,matchedValidators:match};}
1426var commonjsGlobal=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{};function getDefaultExportFromCjs(x){return x&&x.__esModule&&Object.prototype.hasOwnProperty.call(x,"default")?x["default"]:x;}
1427var swedishSsn={exports:{}};(function(module,exports){(function(global2,factory){{factory(module,exports);}})(commonjsGlobal,function(module2,exports2){Object.defineProperty(exports2,"__esModule",{value:true});function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}
1428function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}
1429function _createClass(Constructor,protoProps,staticProps){if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}
1430var SwedishSSN2=function(){function SwedishSSN3(){_classCallCheck(this,SwedishSSN3);}
1431_createClass(SwedishSSN3,null,[{key:"validate",value:function validate2(ssn2){if(ssn2===void 0||ssn2===null){return false;}
1432var ssnAsArray=parse(ssn2);if(ssnAsArray.length===10){var checkDigit2=ssnAsArray.pop();switch(getChecksum2(ssnAsArray)){case checkDigit2:return true;default:return false;}}else{return false;}}},{key:"generateRandomSSN",value:function generateRandomSSN(){var birthdate=getRandomDate();var secondPart=getRandomNumber(1e3,9998,"random");var randomSsn=yymmdd(birthdate)+secondPart;var ssnAsArray=parse(randomSsn);var checksum2=getChecksum2(ssnAsArray);ssnAsArray.push(checksum2);return ssnFormatter(ssnAsArray);}},{key:"generateSSNWithParameters",value:function generateSSNWithParameters(birthdate,gender){var secondPart=getRandomNumber(1e3,9999,gender);var randomSsn=yymmdd(birthdate)+secondPart;var ssnAsArray=parse(randomSsn);var checksum2=getChecksum2(ssnAsArray);ssnAsArray.push(checksum2);return ssnFormatter(ssnAsArray);}}]);return SwedishSSN3;}();exports2.default=SwedishSSN2;var genderEnum={MALE:"male",FEMALE:"female"};function yymmdd(birthdate){var formatted=birthdate.toLocaleDateString("sv-SE",{year:"2-digit",month:"2-digit",day:"2-digit"}).replace(/\D/g,"");return formatted;}
1433function getRandomNumber(min,max,gender){var number=Math.floor(Math.random()*(max-min+1)+min);switch(gender){case genderEnum.MALE:if(isEven(number)){number=number+1;}
1434break;case genderEnum.FEMALE:if(isOdd(number)){number=number+1;}
1435break;}
1436return number.toString().substring(1);}
1437function isEven(x){return x%2===0;}
1438function isOdd(x){return!isEven(x);}
1439function getRandomDate(start,end){return new Date(new Date(1900,1,1).getTime()+Math.random()*(new Date(2099,1,1).getTime()-new Date(1900,1,1).getTime()));}
1440var flatMap=function flatMap2(arr,f){return[].concat.apply([],arr.map(f));};function getChecksum2(ssn2){var luhn=[2,1,2,1,2,1,2,1,2];var multiplied=ssn2.map(function(e,i){return e*luhn[i];});var digits=flatMap(multiplied,function(n){return n>=10?[sumOfNum(n)]:[n];});var reducer=function reducer2(accumulator,currentValue){return accumulator+currentValue;};var sumOfDigits=digits.reduce(reducer);var checksum2=Math.floor(sumOfDigits*9%10);return checksum2;}
1441function sumOfNum(num){return Math.floor(num%10)+Math.floor(num/10);}
1442function ssnFormatter(ssnAsArray){var formattedSSN=ssnAsArray.slice(0,6).join("").toString()+"-"+ssnAsArray.slice(6,10).join("").toString();return formattedSSN;}
1443function parse(ssn2){var cleaned=ssn2.replace(/\D/g,"").split("");
1443if(cleaned.length===12){return cleaned.slice(2,12).map(Number);}
1444return cleaned.map(Number);}
1445module2.exports=exports2["default"];});})(swedishSsn,swedishSsn.exports);var swedishSsnExports=swedishSsn.exports;const SwedishSSN=getDefaultExportFromCjs(swedishSsnExports);const specificIdentityValidators={SE:(identityNumber)=>{return SwedishSSN.validate(identityNumber);}};function isIdentityNumberValid(countryISOCode,identityNumber){const specificValidator=specificIdentityValidators[countryISOCode];if(specificValidator){return specificValidator(identityNumber);}
1446const{isValid}=validatePerson(countryISOCode,identityNumber);return isValid;}
1447function isNumberValid(countryISOCode,numberName,number){var _a,_b;try{countryISOCode=countryISOCode.toLocaleUpperCase();numberName=numberName.toLocaleLowerCase();const validator=(_b=(_a=stdnum[countryISOCode])==null?void 0:_a[numberName])==null?void 0:_b.validate;if(typeof validator==="function"){return validator(number).isValid;}else{throw new Error(`Validator for ${countryISOCode}.${numberName}not found.`);}}catch(error){console.error(error);return false;}}
1448window.CountryNumbersValidator={isIdentityNumberValid,isNumberValid};})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.