diff --git a/lib/toBoolean.js b/lib/toBoolean.js index d55d8f09f..a1b1fe466 100644 --- a/lib/toBoolean.js +++ b/lib/toBoolean.js @@ -13,10 +13,10 @@ function toBoolean(str, strict) { (0, _assertString.default)(str); if (strict) { - return str === '1' || str === 'true'; + return str === '1' || /^true$/i.test(str); } - return str !== '0' && str !== 'false' && str !== ''; + return str !== '0' && !/^false$/i.test(str) && str !== ''; } module.exports = exports.default; diff --git a/src/lib/toBoolean.js b/src/lib/toBoolean.js index b5d5f292b..95e210ca3 100644 --- a/src/lib/toBoolean.js +++ b/src/lib/toBoolean.js @@ -3,7 +3,7 @@ import assertString from './util/assertString'; export default function toBoolean(str, strict) { assertString(str); if (strict) { - return str === '1' || str === 'true'; + return str === '1' || /^true$/i.test(str); } - return str !== '0' && str !== 'false' && str !== ''; + return str !== '0' && !/^false$/i.test(str) && str !== ''; } diff --git a/test/sanitizers.js b/test/sanitizers.js index c523fe029..677742731 100644 --- a/test/sanitizers.js +++ b/test/sanitizers.js @@ -34,8 +34,13 @@ describe('Sanitizers', () => { '': false, 1: true, true: true, + True: true, + TRUE: true, foobar: true, ' ': true, + false: false, + False: false, + FALSE: false, }, }); test({ @@ -46,8 +51,13 @@ describe('Sanitizers', () => { '': false, 1: true, true: true, + True: true, + TRUE: true, foobar: false, ' ': false, + false: false, + False: false, + FALSE: false, }, }); }); diff --git a/validator.js b/validator.js index 645c79876..05a9cc66b 100644 --- a/validator.js +++ b/validator.js @@ -240,10 +240,10 @@ function toBoolean(str, strict) { assertString(str); if (strict) { - return str === '1' || str === 'true'; + return str === '1' || /^true$/i.test(str); } - return str !== '0' && str !== 'false' && str !== ''; + return str !== '0' && !/^false$/i.test(str) && str !== ''; } function equals(str, comparison) { diff --git a/validator.min.js b/validator.min.js index 4ead8d57b..a2ce9073d 100644 --- a/validator.min.js +++ b/validator.min.js @@ -20,4 +20,4 @@ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.validator=e()}(this,function(){"use strict";function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function g(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if(!(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t)))return;var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=t[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!e||r.length!==e);n=!0);}catch(t){o=!0,i=t}finally{try{n||null==s.return||s.return()}finally{if(o)throw i}}return r}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function h(t){var e;if(!("string"==typeof t||t instanceof String))throw e=null===t?"null":"object"===(e=a(t))&&t.constructor&&t.constructor.hasOwnProperty("name")?t.constructor.name:"a ".concat(e),new TypeError("Expected string but received ".concat(e,"."))}function o(t){return h(t),t=Date.parse(t),isNaN(t)?null:new Date(t)}for(var t,r={"en-US":/^[A-Z]+$/i,"bg-BG":/^[А-Я]+$/i,"cs-CZ":/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[A-ZÆØÅ]+$/i,"de-DE":/^[A-ZÄÖÜß]+$/i,"el-GR":/^[Α-ώ]+$/i,"es-ES":/^[A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[A-ZÀÉÈÌÎÓÒÙ]+$/i,"nb-NO":/^[A-ZÆØÅ]+$/i,"nl-NL":/^[A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[A-ZÆØÅ]+$/i,"hu-HU":/^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"pl-PL":/^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,"ru-RU":/^[А-ЯЁ]+$/i,"sl-SI":/^[A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[A-ZÅÄÖ]+$/i,"tr-TR":/^[A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[А-ЩЬЮЯЄIЇҐі]+$/i,"ku-IQ":/^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,he:/^[א-ת]+$/,"fa-IR":/^['آابپتثجچهخدذرزژسشصضطظعغفقکگلمنوهی']+$/i},n={"en-US":/^[0-9A-Z]+$/i,"bg-BG":/^[0-9А-Я]+$/i,"cs-CZ":/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[0-9A-ZÆØÅ]+$/i,"de-DE":/^[0-9A-ZÄÖÜß]+$/i,"el-GR":/^[0-9Α-ω]+$/i,"es-ES":/^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,"hu-HU":/^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"nb-NO":/^[0-9A-ZÆØÅ]+$/i,"nl-NL":/^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[0-9A-ZÆØÅ]+$/i,"pl-PL":/^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,"ru-RU":/^[0-9А-ЯЁ]+$/i,"sl-SI":/^[0-9A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[0-9A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[0-9А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[0-9A-ZÅÄÖ]+$/i,"tr-TR":/^[0-9A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,"ku-IQ":/^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,he:/^[0-9א-ת]+$/,"fa-IR":/^['0-9آابپتثجچهخدذرزژسشصضطظعغفقکگلمنوهی۱۲۳۴۵۶۷۸۹۰']+$/i},i={"en-US":".",ar:"٫"},e=["AU","GB","HK","IN","NZ","ZA","ZM"],s=0;s=e.min)&&(!e.hasOwnProperty("max")||n<=e.max)&&(!e.hasOwnProperty("lt")||ne.gt)}r["pt-BR"]=r["pt-PT"],n["pt-BR"]=n["pt-PT"],i["pt-BR"]=i["pt-PT"],r["pl-Pl"]=r["pl-PL"],n["pl-Pl"]=n["pl-PL"],i["pl-Pl"]=i["pl-PL"];var m=Object.keys(i);function v(t){return p(t)?parseFloat(t):NaN}function Z(t){return"object"===a(t)&&null!==t?t="function"==typeof t.toString?t.toString():"[object Object]":(null==t||isNaN(t)&&!t.length)&&(t=""),String(t)}function S(t,e){var r=0a)return!1;if("::"===t)return!0;"::"===t.substr(0,2)?(n.shift(),n.shift(),o=!0):"::"===t.substr(t.length-2)&&(n.pop(),n.pop(),o=!0);for(var s=0;s$/i,N=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,T=/^[a-z\d]+$/,B=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,x=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,w=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i;var G={protocols:["http","https","ftp"],require_tld:!0,require_protocol:!1,require_host:!0,require_valid_protocol:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_protocol_relative_urls:!1},U=/^\[([^\]]+)\](?::([0-9]+))?$/;function b(t,e){for(var r=0;r=e.min,o=!e.hasOwnProperty("max")||t<=e.max,i=!e.hasOwnProperty("lt")||te.gt;return r.test(t)&&n&&o&&i&&a}var X=/^[\x00-\x7F]+$/;var q=/[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;var tt=/[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;var et=/[^\x00-\x7F]/;var rt=function(t,e){var r=1]/.test(r)){if(!e)return;if(!(r.split('"').length===r.split('\\"').length))return}return 1}}(n))return!1}else if(e.require_display_name)return!1}if(!e.ignore_max_length&&254]/.test(t))return!1;if(0===t.indexOf("mailto:"))return!1;var r,n,o,i,a,s,l,u;if(e=S(e,G),1<(l=(t=(l=(t=(l=t.split("#")).shift()).split("?")).shift()).split("://")).length){if(r=l.shift().toLowerCase(),e.require_valid_protocol&&-1===e.protocols.indexOf(r))return!1}else{if(e.require_protocol)return!1;if("//"===t.substr(0,2)){if(!e.allow_protocol_relative_urls)return!1;l[0]=t.substr(2)}}if(""===(t=l.join("://")))return!1;if(""===(t=(l=t.split("/")).shift())&&!e.require_host)return!0;if(1<(l=t.split("@")).length){if(e.disallow_auth)return!1;if(0<=(n=l.shift()).indexOf(":")&&2/g,">").replace(/\//g,"/").replace(/\\/g,"\").replace(/`/g,"`")},unescape:function(t){return h(t),t.replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(///g,"/").replace(/\/g,"\\").replace(/`/g,"`")},stripLow:function(t,e){return h(t),fe(t,e?"\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F":"\\x00-\\x1F\\x7F")},whitelist:function(t,e){return h(t),t.replace(new RegExp("[^".concat(e,"]+"),"g"),"")},blacklist:fe,isWhitelisted:function(t,e){h(t);for(var r=t.length-1;0<=r;r--)if(-1===e.indexOf(t[r]))return!1;return!0},normalizeEmail:function(t,e){e=S(e,Ae);var r=t.split("@"),n=r.pop(),o=[r.join("@"),n];if(o[1]=o[1].toLowerCase(),"gmail.com"===o[1]||"googlemail.com"===o[1]){if(e.gmail_remove_subaddress&&(o[0]=o[0].split("+")[0]),e.gmail_remove_dots&&(o[0]=o[0].replace(/\.+/g,me)),!o[0].length)return!1;(e.all_lowercase||e.gmail_lowercase)&&(o[0]=o[0].toLowerCase()),o[1]=e.gmail_convert_googlemaildotcom?"gmail.com":o[1]}else if(0<=$e.indexOf(o[1])){if(e.icloud_remove_subaddress&&(o[0]=o[0].split("+")[0]),!o[0].length)return!1;(e.all_lowercase||e.icloud_lowercase)&&(o[0]=o[0].toLowerCase())}else if(0<=pe.indexOf(o[1])){if(e.outlookdotcom_remove_subaddress&&(o[0]=o[0].split("+")[0]),!o[0].length)return!1;(e.all_lowercase||e.outlookdotcom_lowercase)&&(o[0]=o[0].toLowerCase())}else if(0<=ge.indexOf(o[1])){if(e.yahoo_remove_subaddress){var i=o[0].split("-");o[0]=1= e.min) && (!e.hasOwnProperty("max") || n <= e.max) && (!e.hasOwnProperty("lt") || n < e.lt) && (!e.hasOwnProperty("gt") || n > e.gt) } r["pt-BR"] = r["pt-PT"], n["pt-BR"] = n["pt-PT"], i["pt-BR"] = i["pt-PT"], r["pl-Pl"] = r["pl-PL"], n["pl-Pl"] = n["pl-PL"], i["pl-Pl"] = i["pl-PL"]; var m = Object.keys(i); function v(t) { return p(t) ? parseFloat(t) : NaN } function Z(t) { return "object" === a(t) && null !== t ? t = "function" == typeof t.toString ? t.toString() : "[object Object]" : (null == t || isNaN(t) && !t.length) && (t = ""), String(t) } function S(t, e) { var r = 0 < arguments.length && void 0 !== t ? t : {}, n = 1 < arguments.length ? e : void 0; for (var o in n) void 0 === r[o] && (r[o] = n[o]); return r } function _(t, e) { var r, n; h(t), n = "object" === a(e) ? (r = e.min || 0, e.max) : (r = e, arguments[2]); var o = encodeURI(t).split(/%..|./).length - 1; return r <= o && (void 0 === n || o <= n) } var F = { require_tld: !0, allow_underscores: !1, allow_trailing_dot: !1 }; function E(t, e) { h(t), (e = S(e, F)).allow_trailing_dot && "." === t[t.length - 1] && (t = t.substring(0, t.length - 1)); for (var r = t.split("."), n = 0; n < r.length; n++)if (63 < r[n].length) return !1; if (e.require_tld) { var o = r.pop(); if (!r.length || !/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(o)) return !1; if (/[\s\u2002-\u200B\u202F\u205F\u3000\uFEFF\uDB40\uDC20]/.test(o)) return !1 } for (var i, a = 0; a < r.length; a++) { if (i = r[a], e.allow_underscores && (i = i.replace(/_/g, "")), !/^[a-z\u00a1-\uffff0-9-]+$/i.test(i)) return !1; if (/[\uff01-\uff5e]/.test(i)) return !1; if ("-" === i[0] || "-" === i[i.length - 1]) return !1 } return !0 } var R = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/, L = /^[0-9A-F]{1,4}$/i; function C(t) { var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : ""; if (h(t), !(e = String(e))) return C(t, 4) || C(t, 6); if ("4" === e) return !!R.test(t) && t.split(".").sort(function (t, e) { return t - e })[3] <= 255; if ("6" !== e) return !1; var r = [t]; if (t.includes("%")) { if (2 !== (r = t.split("%")).length) return !1; if (!r[0].includes(":")) return !1; if ("" === r[1]) return !1 } var n = r[0].split(":"), o = !1, i = C(n[n.length - 1], 4), a = i ? 7 : 8; if (n.length > a) return !1; if ("::" === t) return !0; "::" === t.substr(0, 2) ? (n.shift(), n.shift(), o = !0) : "::" === t.substr(t.length - 2) && (n.pop(), n.pop(), o = !0); for (var s = 0; s < n.length; ++s)if ("" === n[s] && 0 < s && s < n.length - 1) { if (o) return !1; o = !0 } else if (!(i && s === n.length - 1 || L.test(n[s]))) return !1; return o ? 1 <= n.length : n.length === a } var M = { allow_display_name: !1, require_display_name: !1, allow_utf8_local_part: !0, require_tld: !0 }, I = /^([^\x00-\x1F\x7F-\x9F\cX]+)<(.+)>$/i, N = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i, T = /^[a-z\d]+$/, B = /^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i, x = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i, w = /^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i; var G = { protocols: ["http", "https", "ftp"], require_tld: !0, require_protocol: !1, require_host: !0, require_valid_protocol: !0, allow_underscores: !1, allow_trailing_dot: !1, allow_protocol_relative_urls: !1 }, U = /^\[([^\]]+)\](?::([0-9]+))?$/; function b(t, e) { for (var r = 0; r < e.length; r++) { var n = e[r]; if (t === n || (o = n, "[object RegExp]" === Object.prototype.toString.call(o) && n.test(t))) return 1 } var o } var O = /^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/, P = /^([0-9a-fA-F]){12}$/, y = /^([0-9a-fA-F][0-9a-fA-F]-){5}([0-9a-fA-F][0-9a-fA-F])$/, D = /^([0-9a-fA-F][0-9a-fA-F]\s){5}([0-9a-fA-F][0-9a-fA-F])$/; var K = /^\d{1,2}$/; var H = /^[A-z]{2,4}([_-]([A-z]{4}|[\d]{3}))?([_-]([A-z]{2}|[\d]{3}))?$/; var k = Object.keys(r); var z = Object.keys(n), W = /^[+-]?([0-9]*[.])?[0-9]+$/, V = /^[0-9]+$/; var Y = { AM: /^[A-Z]{2}\d{7}$/, AR: /^[A-Z]{3}\d{6}$/, AT: /^[A-Z]\d{7}$/, AU: /^[A-Z]\d{7}$/, BE: /^[A-Z]{2}\d{6}$/, BG: /^\d{9}$/, CA: /^[A-Z]{2}\d{6}$/, CH: /^[A-Z]\d{7}$/, CN: /^[GE]\d{8}$/, CY: /^[A-Z](\d{6}|\d{8})$/, CZ: /^\d{8}$/, DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/, DK: /^\d{9}$/, EE: /^([A-Z]\d{7}|[A-Z]{2}\d{7})$/, ES: /^[A-Z0-9]{2}([A-Z0-9]?)\d{6}$/, FI: /^[A-Z]{2}\d{7}$/, FR: /^\d{2}[A-Z]{2}\d{5}$/, GB: /^\d{9}$/, GR: /^[A-Z]{2}\d{7}$/, HR: /^\d{9}$/, HU: /^[A-Z]{2}(\d{6}|\d{7})$/, IE: /^[A-Z0-9]{2}\d{7}$/, IS: /^(A)\d{7}$/, IT: /^[A-Z0-9]{2}\d{7}$/, JP: /^[A-Z]{2}\d{7}$/, KR: /^[MS]\d{8}$/, LT: /^[A-Z0-9]{8}$/, LU: /^[A-Z0-9]{8}$/, LV: /^[A-Z0-9]{2}\d{7}$/, MT: /^\d{7}$/, NL: /^[A-Z]{2}[A-Z0-9]{6}\d$/, PO: /^[A-Z]{2}\d{7}$/, PT: /^[A-Z]\d{6}$/, RO: /^\d{8,9}$/, SE: /^\d{8}$/, SL: /^(P)[A-Z]\d{7}$/, SK: /^[0-9A-Z]\d{7}$/, TR: /^[A-Z]\d{8}$/, UA: /^[A-Z]{2}\d{6}$/, US: /^\d{9}$/ }; var j = /^(?:[-+]?(?:0|[1-9][0-9]*))$/, J = /^[-+]?[0-9]+$/; function Q(t, e) { h(t); var r = (e = e || {}).hasOwnProperty("allow_leading_zeroes") && !e.allow_leading_zeroes ? j : J, n = !e.hasOwnProperty("min") || t >= e.min, o = !e.hasOwnProperty("max") || t <= e.max, i = !e.hasOwnProperty("lt") || t < e.lt, a = !e.hasOwnProperty("gt") || t > e.gt; return r.test(t) && n && o && i && a } var X = /^[\x00-\x7F]+$/; var q = /[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/; var tt = /[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/; var et = /[^\x00-\x7F]/; var rt = function (t, e) { var r = 1 < arguments.length && void 0 !== e ? e : "", n = t.join(""); return new RegExp(n, r) }(["^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)", "(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))", "?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$"]); var nt = /[\uD800-\uDBFF][\uDC00-\uDFFF]/; function ot(t, e) { return t.some(function (t) { return e === t }) } var it = { force_decimal: !1, decimal_digits: "1,", locale: "en-US" }, at = ["", "-", "+"]; var st = /^(0x|0h)?[0-9A-F]+$/i; function lt(t) { return h(t), st.test(t) } var ut = /^(0o)?[0-7]+$/i; var dt = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i; var ct = /^rgb\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\)$/, ft = /^rgba\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)$/, At = /^rgb\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\)/, $t = /^rgba\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)/; var pt = /^[A-Z]{2}[0-9A-Z]{3}\d{2}\d{5}$/; var gt = { AD: /^(AD[0-9]{2})\d{8}[A-Z0-9]{12}$/, AE: /^(AE[0-9]{2})\d{3}\d{16}$/, AL: /^(AL[0-9]{2})\d{8}[A-Z0-9]{16}$/, AT: /^(AT[0-9]{2})\d{16}$/, AZ: /^(AZ[0-9]{2})[A-Z0-9]{4}\d{20}$/, BA: /^(BA[0-9]{2})\d{16}$/, BE: /^(BE[0-9]{2})\d{12}$/, BG: /^(BG[0-9]{2})[A-Z]{4}\d{6}[A-Z0-9]{8}$/, BH: /^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/, BR: /^(BR[0-9]{2})\d{23}[A-Z]{1}[A-Z0-9]{1}$/, BY: /^(BY[0-9]{2})[A-Z0-9]{4}\d{20}$/, CH: /^(CH[0-9]{2})\d{5}[A-Z0-9]{12}$/, CR: /^(CR[0-9]{2})\d{18}$/, CY: /^(CY[0-9]{2})\d{8}[A-Z0-9]{16}$/, CZ: /^(CZ[0-9]{2})\d{20}$/, DE: /^(DE[0-9]{2})\d{18}$/, DK: /^(DK[0-9]{2})\d{14}$/, DO: /^(DO[0-9]{2})[A-Z]{4}\d{20}$/, EE: /^(EE[0-9]{2})\d{16}$/, ES: /^(ES[0-9]{2})\d{20}$/, FI: /^(FI[0-9]{2})\d{14}$/, FO: /^(FO[0-9]{2})\d{14}$/, FR: /^(FR[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/, GB: /^(GB[0-9]{2})[A-Z]{4}\d{14}$/, GE: /^(GE[0-9]{2})[A-Z0-9]{2}\d{16}$/, GI: /^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/, GL: /^(GL[0-9]{2})\d{14}$/, GR: /^(GR[0-9]{2})\d{7}[A-Z0-9]{16}$/, GT: /^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/, HR: /^(HR[0-9]{2})\d{17}$/, HU: /^(HU[0-9]{2})\d{24}$/, IE: /^(IE[0-9]{2})[A-Z0-9]{4}\d{14}$/, IL: /^(IL[0-9]{2})\d{19}$/, IQ: /^(IQ[0-9]{2})[A-Z]{4}\d{15}$/, IS: /^(IS[0-9]{2})\d{22}$/, IT: /^(IT[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/, JO: /^(JO[0-9]{2})[A-Z]{4}\d{22}$/, KW: /^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/, KZ: /^(KZ[0-9]{2})\d{3}[A-Z0-9]{13}$/, LB: /^(LB[0-9]{2})\d{4}[A-Z0-9]{20}$/, LC: /^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/, LI: /^(LI[0-9]{2})\d{5}[A-Z0-9]{12}$/, LT: /^(LT[0-9]{2})\d{16}$/, LU: /^(LU[0-9]{2})\d{3}[A-Z0-9]{13}$/, LV: /^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/, MC: /^(MC[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/, MD: /^(MD[0-9]{2})[A-Z0-9]{20}$/, ME: /^(ME[0-9]{2})\d{18}$/, MK: /^(MK[0-9]{2})\d{3}[A-Z0-9]{10}\d{2}$/, MR: /^(MR[0-9]{2})\d{23}$/, MT: /^(MT[0-9]{2})[A-Z]{4}\d{5}[A-Z0-9]{18}$/, MU: /^(MU[0-9]{2})[A-Z]{4}\d{19}[A-Z]{3}$/, NL: /^(NL[0-9]{2})[A-Z]{4}\d{10}$/, NO: /^(NO[0-9]{2})\d{11}$/, PK: /^(PK[0-9]{2})[A-Z0-9]{4}\d{16}$/, PL: /^(PL[0-9]{2})\d{24}$/, PS: /^(PS[0-9]{2})[A-Z0-9]{4}\d{21}$/, PT: /^(PT[0-9]{2})\d{21}$/, QA: /^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/, RO: /^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/, RS: /^(RS[0-9]{2})\d{18}$/, SA: /^(SA[0-9]{2})\d{2}[A-Z0-9]{18}$/, SC: /^(SC[0-9]{2})[A-Z]{4}\d{20}[A-Z]{3}$/, SE: /^(SE[0-9]{2})\d{20}$/, SI: /^(SI[0-9]{2})\d{15}$/, SK: /^(SK[0-9]{2})\d{20}$/, SM: /^(SM[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/, TL: /^(TL[0-9]{2})\d{19}$/, TN: /^(TN[0-9]{2})\d{20}$/, TR: /^(TR[0-9]{2})\d{5}[A-Z0-9]{17}$/, UA: /^(UA[0-9]{2})\d{6}[A-Z0-9]{19}$/, VA: /^(VA[0-9]{2})\d{18}$/, VG: /^(VG[0-9]{2})[A-Z0-9]{4}\d{16}$/, XK: /^(XK[0-9]{2})\d{16}$/ }; var ht = /^[A-z]{4}[A-z]{2}\w{2}(\w{3})?$/; var mt = /^[a-f0-9]{32}$/; var vt = { md5: 32, md4: 32, sha1: 40, sha256: 64, sha384: 96, sha512: 128, ripemd128: 32, ripemd160: 40, tiger128: 32, tiger160: 40, tiger192: 48, crc32: 8, crc32b: 8 }; var Zt = /^([A-Za-z0-9\-_~+\/]+[=]{0,2})\.([A-Za-z0-9\-_~+\/]+[=]{0,2})(?:\.([A-Za-z0-9\-_~+\/]+[=]{0,2}))?$/; var St = { ignore_whitespace: !1 }; var _t = { 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i, 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i }; var Ft = /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14})$/; var Et = { ES: function (t) { h(t); var e = { X: 0, Y: 1, Z: 2 }, r = t.trim().toUpperCase(); if (!/^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/.test(r)) return !1; var n = r.slice(0, -1).replace(/[X,Y,Z]/g, function (t) { return e[t] }); return r.endsWith(["T", "R", "W", "A", "G", "M", "Y", "F", "P", "D", "X", "B", "N", "J", "Z", "S", "Q", "V", "H", "L", "C", "K", "E"][n % 23]) }, "he-IL": function (t) { var e = t.trim(); if (!/^\d{9}$/.test(e)) return !1; for (var r, n = e, o = 0, i = 0; i < n.length; i++)o += 9 < (r = Number(n[i]) * (i % 2 + 1)) ? r - 9 : r; return o % 10 == 0 }, "zh-TW": function (t) { var o = { A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, G: 16, H: 17, I: 34, J: 18, K: 19, L: 20, M: 21, N: 22, O: 35, P: 23, Q: 24, R: 25, S: 26, T: 27, U: 28, V: 29, W: 32, X: 30, Y: 31, Z: 33 }, e = t.trim().toUpperCase(); return !!/^[A-Z][0-9]{9}$/.test(e) && Array.from(e).reduce(function (t, e, r) { if (0 !== r) return 9 === r ? (10 - t % 10 - Number(e)) % 10 == 0 : t + Number(e) * (9 - r); var n = o[e]; return n % 10 * 9 + Math.floor(n / 10) }, 0) } }; var Rt = 8, Lt = /^(\d{8}|\d{13})$/; function Ct(o) { var t = 10 - o.slice(0, -1).split("").map(function (t, e) { return Number(t) * (r = o.length, n = e, r === Rt ? n % 2 == 0 ? 3 : 1 : n % 2 == 0 ? 1 : 3); var r, n }).reduce(function (t, e) { return t + e }, 0) % 10; return t < 10 ? t : 0 } var Mt = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/; var It = /^(?:[0-9]{9}X|[0-9]{10})$/, Nt = /^(?:[0-9]{13})$/, Tt = [1, 3]; var Bt = { "am-AM": /^(\+?374|0)((10|[9|7][0-9])\d{6}$|[2-4]\d{7}$)/, "ar-AE": /^((\+?971)|0)?5[024568]\d{7}$/, "ar-BH": /^(\+?973)?(3|6)\d{7}$/, "ar-DZ": /^(\+?213|0)(5|6|7)\d{8}$/, "ar-EG": /^((\+?20)|0)?1[0125]\d{8}$/, "ar-IQ": /^(\+?964|0)?7[0-9]\d{8}$/, "ar-JO": /^(\+?962|0)?7[789]\d{7}$/, "ar-KW": /^(\+?965)[569]\d{7}$/, "ar-SA": /^(!?(\+?966)|0)?5\d{8}$/, "ar-SY": /^(!?(\+?963)|0)?9\d{8}$/, "ar-TN": /^(\+?216)?[2459]\d{7}$/, "be-BY": /^(\+?375)?(24|25|29|33|44)\d{7}$/, "bg-BG": /^(\+?359|0)?8[789]\d{7}$/, "bn-BD": /^(\+?880|0)1[13456789][0-9]{8}$/, "cs-CZ": /^(\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/, "da-DK": /^(\+?45)?\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}$/, "de-DE": /^(\+49)?0?1(5[0-25-9]\d|6([23]|0\d?)|7([0-57-9]|6\d))\d{7}$/, "de-AT": /^(\+43|0)\d{1,4}\d{3,12}$/, "el-GR": /^(\+?30|0)?(69\d{8})$/, "en-AU": /^(\+?61|0)4\d{8}$/, "en-GB": /^(\+?44|0)7\d{9}$/, "en-GG": /^(\+?44|0)1481\d{6}$/, "en-GH": /^(\+233|0)(20|50|24|54|27|57|26|56|23|28)\d{7}$/, "en-HK": /^(\+?852[-\s]?)?[456789]\d{3}[-\s]?\d{4}$/, "en-MO": /^(\+?853[-\s]?)?[6]\d{3}[-\s]?\d{4}$/, "en-IE": /^(\+?353|0)8[356789]\d{7}$/, "en-IN": /^(\+?91|0)?[6789]\d{9}$/, "en-KE": /^(\+?254|0)(7|1)\d{8}$/, "en-MT": /^(\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/, "en-MU": /^(\+?230|0)?\d{8}$/, "en-NG": /^(\+?234|0)?[789]\d{9}$/, "en-NZ": /^(\+?64|0)[28]\d{7,9}$/, "en-PK": /^((\+92)|(0092))-{0,1}\d{3}-{0,1}\d{7}$|^\d{11}$|^\d{4}-\d{7}$/, "en-RW": /^(\+?250|0)?[7]\d{8}$/, "en-SG": /^(\+65)?[89]\d{7}$/, "en-TZ": /^(\+?255|0)?[67]\d{8}$/, "en-UG": /^(\+?256|0)?[7]\d{8}$/, "en-US": /^((\+1|1)?( |-)?)?(\([2-9][0-9]{2}\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/, "en-ZA": /^(\+?27|0)\d{9}$/, "en-ZM": /^(\+?26)?09[567]\d{7}$/, "es-CL": /^(\+?56|0)[2-9]\d{1}\d{7}$/, "es-EC": /^(\+?593|0)([2-7]|9[2-9])\d{7}$/, "es-ES": /^(\+?34)?(6\d{1}|7[1234])\d{7}$/, "es-MX": /^(\+?52)?(1|01)?\d{10,11}$/, "es-PA": /^(\+?507)\d{7,8}$/, "es-PY": /^(\+?595|0)9[9876]\d{7}$/, "es-UY": /^(\+598|0)9[1-9][\d]{6}$/, "et-EE": /^(\+?372)?\s?(5|8[1-4])\s?([0-9]\s?){6,7}$/, "fa-IR": /^(\+?98[\-\s]?|0)9[0-39]\d[\-\s]?\d{3}[\-\s]?\d{4}$/, "fi-FI": /^(\+?358|0)\s?(4(0|1|2|4|5|6)?|50)\s?(\d\s?){4,8}\d$/, "fj-FJ": /^(\+?679)?\s?\d{3}\s?\d{4}$/, "fo-FO": /^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/, "fr-FR": /^(\+?33|0)[67]\d{8}$/, "fr-GF": /^(\+?594|0|00594)[67]\d{8}$/, "fr-GP": /^(\+?590|0|00590)[67]\d{8}$/, "fr-MQ": /^(\+?596|0|00596)[67]\d{8}$/, "fr-RE": /^(\+?262|0|00262)[67]\d{8}$/, "he-IL": /^(\+972|0)([23489]|5[012345689]|77)[1-9]\d{6}$/, "hu-HU": /^(\+?36)(20|30|70)\d{7}$/, "id-ID": /^(\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\s?|\d]{5,11})$/, "it-IT": /^(\+?39)?\s?3\d{2} ?\d{6,7}$/, "ja-JP": /^(\+81[ \-]?(\(0\))?|0)[6789]0[ \-]?\d{4}[ \-]?\d{4}$/, "kk-KZ": /^(\+?7|8)?7\d{9}$/, "kl-GL": /^(\+?299)?\s?\d{2}\s?\d{2}\s?\d{2}$/, "ko-KR": /^((\+?82)[ \-]?)?0?1([0|1|6|7|8|9]{1})[ \-]?\d{3,4}[ \-]?\d{4}$/, "lt-LT": /^(\+370|8)\d{8}$/, "ms-MY": /^(\+?6?01){1}(([0145]{1}(\-|\s)?\d{7,8})|([236789]{1}(\s|\-)?\d{7}))$/, "nb-NO": /^(\+?47)?[49]\d{7}$/, "ne-NP": /^(\+?977)?9[78]\d{8}$/, "nl-BE": /^(\+?32|0)4?\d{8}$/, "nl-NL": /^(\+?31|0)6?\d{8}$/, "nn-NO": /^(\+?47)?[49]\d{7}$/, "pl-PL": /^(\+?48)? ?[5-8]\d ?\d{3} ?\d{2} ?\d{2}$/, "pt-BR": /(?=^(\+?5{2}\-?|0)[1-9]{2}\-?\d{4}\-?\d{4}$)(^(\+?5{2}\-?|0)[1-9]{2}\-?[6-9]{1}\d{3}\-?\d{4}$)|(^(\+?5{2}\-?|0)[1-9]{2}\-?9[6-9]{1}\d{3}\-?\d{4}$)/, "pt-PT": /^(\+?351)?9[1236]\d{7}$/, "ro-RO": /^(\+?4?0)\s?7\d{2}(\/|\s|\.|\-)?\d{3}(\s|\.|\-)?\d{3}$/, "ru-RU": /^(\+?7|8)?9\d{9}$/, "sl-SI": /^(\+386\s?|0)(\d{1}\s?\d{3}\s?\d{2}\s?\d{2}|\d{2}\s?\d{3}\s?\d{3})$/, "sk-SK": /^(\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/, "sr-RS": /^(\+3816|06)[- \d]{5,9}$/, "sv-SE": /^(\+?46|0)[\s\-]?7[\s\-]?[02369]([\s\-]?\d){7}$/, "th-TH": /^(\+66|66|0)\d{9}$/, "tr-TR": /^(\+?90|0)?5\d{9}$/, "uk-UA": /^(\+?38|8)?0\d{9}$/, "vi-VN": /^(\+?84|0)((3([2-9]))|(5([2689]))|(7([0|6-9]))|(8([1-6|89]))|(9([0-9])))([0-9]{7})$/, "zh-CN": /^((\+|00)86)?1([358][0-9]|4[579]|6[67]|7[01235678]|9[189])[0-9]{8}$/, "zh-TW": /^(\+?886\-?|0)?9\d{8}$/ }; Bt["en-CA"] = Bt["en-US"], Bt["fr-BE"] = Bt["nl-BE"], Bt["zh-HK"] = Bt["en-HK"], Bt["zh-MO"] = Bt["en-MO"]; var xt = Object.keys(Bt), wt = /^(0x)[0-9a-f]{40}$/i; var Gt = { symbol: "$", require_symbol: !1, allow_space_after_symbol: !1, symbol_after_digits: !1, allow_negatives: !0, parens_for_negatives: !1, negative_sign_before_digits: !1, negative_sign_after_digits: !1, allow_negative_sign_placeholder: !1, thousands_separator: ",", decimal_separator: ".", allow_decimal: !0, require_decimal: !1, digits_after_decimal: [2], allow_space_after_digits: !1 }; var Ut = /^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$/; var bt = /^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/; var Ot = /([01][0-9]|2[0-3])/, Pt = /[0-5][0-9]/, yt = new RegExp("[-+]".concat(Ot.source, ":").concat(Pt.source)), Dt = new RegExp("([zZ]|".concat(yt.source, ")")), Kt = new RegExp("".concat(Ot.source, ":").concat(Pt.source, ":").concat(/([0-5][0-9]|60)/.source).concat(/(\.[0-9]+)?/.source)), Ht = new RegExp("".concat(/[0-9]{4}/.source, "-").concat(/(0[1-9]|1[0-2])/.source, "-").concat(/([12]\d|0[1-9]|3[01])/.source)), kt = new RegExp("".concat(Kt.source).concat(Dt.source)), zt = new RegExp("".concat(Ht.source, "[ tT]").concat(kt.source)); var Wt = ["AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "ZA", "ZM", "ZW"]; var Vt = ["AFG", "ALA", "ALB", "DZA", "ASM", "AND", "AGO", "AIA", "ATA", "ATG", "ARG", "ARM", "ABW", "AUS", "AUT", "AZE", "BHS", "BHR", "BGD", "BRB", "BLR", "BEL", "BLZ", "BEN", "BMU", "BTN", "BOL", "BES", "BIH", "BWA", "BVT", "BRA", "IOT", "BRN", "BGR", "BFA", "BDI", "KHM", "CMR", "CAN", "CPV", "CYM", "CAF", "TCD", "CHL", "CHN", "CXR", "CCK", "COL", "COM", "COG", "COD", "COK", "CRI", "CIV", "HRV", "CUB", "CUW", "CYP", "CZE", "DNK", "DJI", "DMA", "DOM", "ECU", "EGY", "SLV", "GNQ", "ERI", "EST", "ETH", "FLK", "FRO", "FJI", "FIN", "FRA", "GUF", "PYF", "ATF", "GAB", "GMB", "GEO", "DEU", "GHA", "GIB", "GRC", "GRL", "GRD", "GLP", "GUM", "GTM", "GGY", "GIN", "GNB", "GUY", "HTI", "HMD", "VAT", "HND", "HKG", "HUN", "ISL", "IND", "IDN", "IRN", "IRQ", "IRL", "IMN", "ISR", "ITA", "JAM", "JPN", "JEY", "JOR", "KAZ", "KEN", "KIR", "PRK", "KOR", "KWT", "KGZ", "LAO", "LVA", "LBN", "LSO", "LBR", "LBY", "LIE", "LTU", "LUX", "MAC", "MKD", "MDG", "MWI", "MYS", "MDV", "MLI", "MLT", "MHL", "MTQ", "MRT", "MUS", "MYT", "MEX", "FSM", "MDA", "MCO", "MNG", "MNE", "MSR", "MAR", "MOZ", "MMR", "NAM", "NRU", "NPL", "NLD", "NCL", "NZL", "NIC", "NER", "NGA", "NIU", "NFK", "MNP", "NOR", "OMN", "PAK", "PLW", "PSE", "PAN", "PNG", "PRY", "PER", "PHL", "PCN", "POL", "PRT", "PRI", "QAT", "REU", "ROU", "RUS", "RWA", "BLM", "SHN", "KNA", "LCA", "MAF", "SPM", "VCT", "WSM", "SMR", "STP", "SAU", "SEN", "SRB", "SYC", "SLE", "SGP", "SXM", "SVK", "SVN", "SLB", "SOM", "ZAF", "SGS", "SSD", "ESP", "LKA", "SDN", "SUR", "SJM", "SWZ", "SWE", "CHE", "SYR", "TWN", "TJK", "TZA", "THA", "TLS", "TGO", "TKL", "TON", "TTO", "TUN", "TUR", "TKM", "TCA", "TUV", "UGA", "UKR", "ARE", "GBR", "USA", "UMI", "URY", "UZB", "VUT", "VEN", "VNM", "VGB", "VIR", "WLF", "ESH", "YEM", "ZMB", "ZWE"]; var Yt = /^[A-Z2-7]+=*$/; var jt = /[^A-Z0-9+\/=]/i; var Jt = /^[a-z]+\/[a-z0-9\-\+]+$/i, Qt = /^[a-z\-]+=[a-z0-9\-]+$/i, Xt = /^[a-z0-9!\$&'\(\)\*\+,;=\-\._~:@\/\?%\s]*$/i; var qt = /^magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}&dn=.+&tr=.+$/i; var te = /^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9\.\-\+]{1,100}$/i, ee = /^text\/[a-zA-Z0-9\.\-\+]{1,100};\s?charset=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?$/i, re = /^multipart\/[a-zA-Z0-9\.\-\+]{1,100}(;\s?(boundary|charset)=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?){0,2}$/i; var ne = /^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/, oe = /^\s?[+-]?(180(\.0+)?|1[0-7]\d(\.\d+)?|\d{1,2}(\.\d+)?)\)?$/, ie = /^\d{4}$/, ae = /^\d{5}$/, se = /^\d{6}$/, le = { AD: /^AD\d{3}$/, AT: ie, AU: ie, BE: ie, BG: ie, BR: /^\d{5}-\d{3}$/, CA: /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i, CH: ie, CZ: /^\d{3}\s?\d{2}$/, DE: ae, DK: ie, DZ: ae, EE: ae, ES: ae, FI: ae, FR: /^\d{2}\s?\d{3}$/, GB: /^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i, GR: /^\d{3}\s?\d{2}$/, HR: /^([1-5]\d{4}$)/, HU: ie, ID: ae, IE: /^(?!.*(?:o))[A-z]\d[\dw]\s\w{4}$/i, IL: ae, IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/, IS: /^\d{3}$/, IT: ae, JP: /^\d{3}\-\d{4}$/, KE: ae, LI: /^(948[5-9]|949[0-7])$/, LT: /^LT\-\d{5}$/, LU: ie, LV: /^LV\-\d{4}$/, MX: ae, MT: /^[A-Za-z]{3}\s{0,1}\d{4}$/, NL: /^\d{4}\s?[a-z]{2}$/i, NO: ie, NZ: ie, PL: /^\d{2}\-\d{3}$/, PR: /^00[679]\d{2}([ -]\d{4})?$/, PT: /^\d{4}\-\d{3}?$/, RO: se, RU: se, SA: ae, SE: /^[1-9]\d{2}\s?\d{2}$/, SI: ie, SK: /^\d{3}\s?\d{2}$/, TN: ie, TW: /^\d{3}(\d{2})?$/, UA: ae, US: /^\d{5}(-\d{4})?$/, ZA: ie, ZM: ae }, ue = Object.keys(le); function de(t, e) { h(t); var r = e ? new RegExp("^[".concat(e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "]+"), "g") : /^\s+/g; return t.replace(r, "") } function ce(t, e) { h(t); var r = e ? new RegExp("[".concat(e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "]+$"), "g") : /\s+$/g; return t.replace(r, "") } function fe(t, e) { return h(t), t.replace(new RegExp("[".concat(e, "]+"), "g"), "") } var Ae = { all_lowercase: !0, gmail_lowercase: !0, gmail_remove_dots: !0, gmail_remove_subaddress: !0, gmail_convert_googlemaildotcom: !0, outlookdotcom_lowercase: !0, outlookdotcom_remove_subaddress: !0, yahoo_lowercase: !0, yahoo_remove_subaddress: !0, yandex_lowercase: !0, icloud_lowercase: !0, icloud_remove_subaddress: !0 }, $e = ["icloud.com", "me.com"], pe = ["hotmail.at", "hotmail.be", "hotmail.ca", "hotmail.cl", "hotmail.co.il", "hotmail.co.nz", "hotmail.co.th", "hotmail.co.uk", "hotmail.com", "hotmail.com.ar", "hotmail.com.au", "hotmail.com.br", "hotmail.com.gr", "hotmail.com.mx", "hotmail.com.pe", "hotmail.com.tr", "hotmail.com.vn", "hotmail.cz", "hotmail.de", "hotmail.dk", "hotmail.es", "hotmail.fr", "hotmail.hu", "hotmail.id", "hotmail.ie", "hotmail.in", "hotmail.it", "hotmail.jp", "hotmail.kr", "hotmail.lv", "hotmail.my", "hotmail.ph", "hotmail.pt", "hotmail.sa", "hotmail.sg", "hotmail.sk", "live.be", "live.co.uk", "live.com", "live.com.ar", "live.com.mx", "live.de", "live.es", "live.eu", "live.fr", "live.it", "live.nl", "msn.com", "outlook.at", "outlook.be", "outlook.cl", "outlook.co.il", "outlook.co.nz", "outlook.co.th", "outlook.com", "outlook.com.ar", "outlook.com.au", "outlook.com.br", "outlook.com.gr", "outlook.com.pe", "outlook.com.tr", "outlook.com.vn", "outlook.cz", "outlook.de", "outlook.dk", "outlook.es", "outlook.fr", "outlook.hu", "outlook.id", "outlook.ie", "outlook.in", "outlook.it", "outlook.jp", "outlook.kr", "outlook.lv", "outlook.my", "outlook.ph", "outlook.pt", "outlook.sa", "outlook.sg", "outlook.sk", "passport.com"], ge = ["rocketmail.com", "yahoo.ca", "yahoo.co.uk", "yahoo.com", "yahoo.de", "yahoo.fr", "yahoo.in", "yahoo.it", "ymail.com"], he = ["yandex.ru", "yandex.ua", "yandex.kz", "yandex.com", "yandex.by", "ya.ru"]; function me(t) { return 1 < t.length ? t : "" } var ve = /^[^-_](?!.*?[-_]{2,})([a-z0-9\\-]{1,}).*[^-_]$/; return { version: "12.2.0", toDate: o, toFloat: v, toInt: function (t, e) { return h(t), parseInt(t, e || 10) }, toBoolean: function (t, e) { return h(t), e ? "1" === t || "true" === t : "0" !== t && "false" !== t && "" !== t }, equals: function (t, e) { return h(t), t === e }, contains: function (t, e) { return h(t), 0 <= t.indexOf(Z(e)) }, matches: function (t, e, r) { return h(t), "[object RegExp]" !== Object.prototype.toString.call(e) && (e = new RegExp(e, r)), e.test(t) }, isEmail: function (t, e) { if (h(t), (e = S(e, M)).require_display_name || e.allow_display_name) { var r = t.match(I); if (r) { var n, o = g(r, 3); if (n = o[1], t = o[2], n.endsWith(" ") && (n = n.substr(0, n.length - 1)), !function (t) { var e = t.match(/^"(.+)"$/i), r = e ? e[1] : t; if (r.trim()) { if (/[\.";<>]/.test(r)) { if (!e) return; if (!(r.split('"').length === r.split('\\"').length)) return } return 1 } }(n)) return !1 } else if (e.require_display_name) return !1 } if (!e.ignore_max_length && 254 < t.length) return !1; var i = t.split("@"), a = i.pop(), s = i.join("@"), l = a.toLowerCase(); if (e.domain_specific_validation && ("gmail.com" === l || "googlemail.com" === l)) { var u = (s = s.toLowerCase()).split("+")[0]; if (!_(u.replace(".", ""), { min: 6, max: 30 })) return !1; for (var d = u.split("."), c = 0; c < d.length; c++)if (!T.test(d[c])) return !1 } if (!_(s, { max: 64 }) || !_(a, { max: 254 })) return !1; if (!E(a, { require_tld: e.require_tld })) { if (!e.allow_ip_domain) return !1; if (!C(a)) { if (!a.startsWith("[") || !a.endsWith("]")) return !1; var f = a.substr(1, a.length - 2); if (0 === f.length || !C(f)) return !1 } } if ('"' === s[0]) return s = s.slice(1, s.length - 1), e.allow_utf8_local_part ? w.test(s) : B.test(s); for (var A = e.allow_utf8_local_part ? x : N, $ = s.split("."), p = 0; p < $.length; p++)if (!A.test($[p])) return !1; return !0 }, isURL: function (t, e) { if (h(t), !t || 2083 <= t.length || /[\s<>]/.test(t)) return !1; if (0 === t.indexOf("mailto:")) return !1; var r, n, o, i, a, s, l, u; if (e = S(e, G), 1 < (l = (t = (l = (t = (l = t.split("#")).shift()).split("?")).shift()).split("://")).length) { if (r = l.shift().toLowerCase(), e.require_valid_protocol && -1 === e.protocols.indexOf(r)) return !1 } else { if (e.require_protocol) return !1; if ("//" === t.substr(0, 2)) { if (!e.allow_protocol_relative_urls) return !1; l[0] = t.substr(2) } } if ("" === (t = l.join("://"))) return !1; if ("" === (t = (l = t.split("/")).shift()) && !e.require_host) return !0; if (1 < (l = t.split("@")).length) { if (e.disallow_auth) return !1; if (0 <= (n = l.shift()).indexOf(":") && 2 < n.split(":").length) return !1 } u = s = null; var d = (i = l.join("@")).match(U); return d ? (o = "", u = d[1], s = d[2] || null) : (o = (l = i.split(":")).shift(), l.length && (s = l.join(":"))), !(null !== s && (a = parseInt(s, 10), !/^[0-9]+$/.test(s) || a <= 0 || 65535 < a)) && (!!(C(o) || E(o, e) || u && C(u, 6)) && (o = o || u, !(e.host_whitelist && !b(o, e.host_whitelist)) && (!e.host_blacklist || !b(o, e.host_blacklist)))) }, isMACAddress: function (t, e) { return h(t), e && e.no_colons ? P.test(t) : O.test(t) || y.test(t) || D.test(t) }, isIP: C, isIPRange: function (t) { h(t); var e = t.split("/"); return 2 === e.length && (!!K.test(e[1]) && (!(1 < e[1].length && e[1].startsWith("0")) && (C(e[0], 4) && e[1] <= 32 && 0 <= e[1]))) }, isFQDN: E, isBoolean: function (t) { return h(t), 0 <= ["true", "false", "1", "0"].indexOf(t) }, isIBAN: function (t) { return h(t), r = t.replace(/[^A-Z0-9]+/gi, "").toUpperCase(), (n = r.slice(0, 2).toUpperCase()) in gt && gt[n].test(r) && 1 === ((e = t.replace(/[^A-Z0-9]+/gi, "").toUpperCase()).slice(4) + e.slice(0, 4)).replace(/[A-Z]/g, function (t) { return t.charCodeAt(0) - 55 }).match(/\d{1,7}/g).reduce(function (t, e) { return Number(t + e) % 97 }, ""); var e, r, n }, isBIC: function (t) { return h(t), ht.test(t) }, isAlpha: function (t) { var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "en-US"; if (h(t), e in r) return r[e].test(t); throw new Error("Invalid locale '".concat(e, "'")) }, isAlphaLocales: k, isAlphanumeric: function (t) { var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "en-US"; if (h(t), e in n) return n[e].test(t); throw new Error("Invalid locale '".concat(e, "'")) }, isAlphanumericLocales: z, isNumeric: function (t, e) { return h(t), e && e.no_symbols ? V.test(t) : W.test(t) }, isPassportNumber: function (t, e) { var r = t.replace(/\s/g, "").toUpperCase(); return e.toUpperCase() in Y && Y[e].test(r) }, isPort: function (t) { return Q(t, { min: 0, max: 65535 }) }, isLowercase: function (t) { return h(t), t === t.toLowerCase() }, isUppercase: function (t) { return h(t), t === t.toUpperCase() }, isAscii: function (t) { return h(t), X.test(t) }, isFullWidth: function (t) { return h(t), q.test(t) }, isHalfWidth: function (t) { return h(t), tt.test(t) }, isVariableWidth: function (t) { return h(t), q.test(t) && tt.test(t) }, isMultibyte: function (t) { return h(t), et.test(t) }, isSemVer: function (t) { return h(t), rt.test(t) }, isSurrogatePair: function (t) { return h(t), nt.test(t) }, isInt: Q, isFloat: p, isFloatLocales: m, isDecimal: function (t, e) { if (h(t), (e = S(e, it)).locale in i) return !ot(at, t.replace(/ /g, "")) && (r = e, new RegExp("^[-+]?([0-9]+)?(\\".concat(i[r.locale], "[0-9]{").concat(r.decimal_digits, "})").concat(r.force_decimal ? "" : "?", "$"))).test(t); var r; throw new Error("Invalid locale '".concat(e.locale, "'")) }, isHexadecimal: lt, isOctal: function (t) { return h(t), ut.test(t) }, isDivisibleBy: function (t, e) { return h(t), v(t) % parseInt(e, 10) == 0 }, isHexColor: function (t) { return h(t), dt.test(t) }, isRgbColor: function (t) { var e = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1]; return h(t), e ? ct.test(t) || ft.test(t) || At.test(t) || $t.test(t) : ct.test(t) || ft.test(t) }, isISRC: function (t) { return h(t), pt.test(t) }, isMD5: function (t) { return h(t), mt.test(t) }, isHash: function (t, e) { return h(t), new RegExp("^[a-fA-F0-9]{".concat(vt[e], "}$")).test(t) }, isJWT: function (t) { return h(t), Zt.test(t) }, isJSON: function (t) { h(t); try { var e = JSON.parse(t); return !!e && "object" === a(e) } catch (t) { } return !1 }, isEmpty: function (t, e) { return h(t), 0 === ((e = S(e, St)).ignore_whitespace ? t.trim().length : t.length) }, isLength: function (t, e) { var r, n; h(t), n = "object" === a(e) ? (r = e.min || 0, e.max) : (r = e || 0, arguments[2]); var o = t.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g) || [], i = t.length - o.length; return r <= i && (void 0 === n || i <= n) }, isLocale: function (t) { return h(t), "en_US_POSIX" === t || "ca_ES_VALENCIA" === t || H.test(t) }, isByteLength: _, isUUID: function (t) { var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "all"; h(t); var r = _t[e]; return r && r.test(t) }, isMongoId: function (t) { return h(t), lt(t) && 24 === t.length }, isAfter: function (t) { var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : String(new Date); h(t); var r = o(e), n = o(t); return !!(n && r && r < n) }, isBefore: function (t) { var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : String(new Date); h(t); var r = o(e), n = o(t); return !!(n && r && n < r) }, isIn: function (t, e) { var r; if (h(t), "[object Array]" !== Object.prototype.toString.call(e)) return "object" === a(e) ? e.hasOwnProperty(t) : !(!e || "function" != typeof e.indexOf) && 0 <= e.indexOf(t); var n = []; for (r in e) !{}.hasOwnProperty.call(e, r) || (n[r] = Z(e[r])); return 0 <= n.indexOf(t) }, isCreditCard: function (t) { h(t); var e = t.replace(/[- ]+/g, ""); if (!Ft.test(e)) return !1; for (var r, n, o, i = 0, a = e.length - 1; 0 <= a; a--)r = e.substring(a, a + 1), n = parseInt(r, 10), i += o && 10 <= (n *= 2) ? n % 10 + 1 : n, o = !o; return !(i % 10 != 0 || !e) }, isIdentityCard: function (t, e) { if (h(t), e in Et) return Et[e](t); if ("any" !== e) throw new Error("Invalid locale '".concat(e, "'")); for (var r in Et) { if (Et.hasOwnProperty(r)) if ((0, Et[r])(t)) return !0 } return !1 }, isEAN: function (t) { h(t); var e = Number(t.slice(-1)); return Lt.test(t) && e === Ct(t) }, isISIN: function (t) { if (h(t), !Mt.test(t)) return !1; for (var e, r, n = t.replace(/[A-Z]/g, function (t) { return parseInt(t, 36) }), o = 0, i = !0, a = n.length - 2; 0 <= a; a--)e = n.substring(a, a + 1), r = parseInt(e, 10), o += i && 10 <= (r *= 2) ? r + 1 : r, i = !i; return parseInt(t.substr(t.length - 1), 10) === (1e4 - o) % 10 }, isISBN: function t(e) { var r = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : ""; if (h(e), !(r = String(r))) return t(e, 10) || t(e, 13); var n, o = e.replace(/[\s-]+/g, ""), i = 0; if ("10" === r) { if (!It.test(o)) return !1; for (n = 0; n < 9; n++)i += (n + 1) * o.charAt(n); if ("X" === o.charAt(9) ? i += 100 : i += 10 * o.charAt(9), i % 11 == 0) return !!o } else if ("13" === r) { if (!Nt.test(o)) return !1; for (n = 0; n < 12; n++)i += Tt[n % 2] * o.charAt(n); if (o.charAt(12) - (10 - i % 10) % 10 == 0) return !!o } return !1 }, isISSN: function (t) { var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}; h(t); var r = "^\\d{4}-?\\d{3}[\\dX]$"; if (r = e.require_hyphen ? r.replace("?", "") : r, !(r = e.case_sensitive ? new RegExp(r) : new RegExp(r, "i")).test(t)) return !1; for (var n = t.replace("-", "").toUpperCase(), o = 0, i = 0; i < n.length; i++) { var a = n[i]; o += ("X" === a ? 10 : +a) * (8 - i) } return o % 11 == 0 }, isMobilePhone: function (e, t, r) { if (h(e), r && r.strictMode && !e.startsWith("+")) return !1; if (Array.isArray(t)) return t.some(function (t) { if (Bt.hasOwnProperty(t) && Bt[t].test(e)) return !0; return !1 }); if (t in Bt) return Bt[t].test(e); if (t && "any" !== t) throw new Error("Invalid locale '".concat(t, "'")); for (var n in Bt) { if (Bt.hasOwnProperty(n)) if (Bt[n].test(e)) return !0 } return !1 }, isMobilePhoneLocales: xt, isPostalCode: function (t, e) { if (h(t), e in le) return le[e].test(t); if ("any" !== e) throw new Error("Invalid locale '".concat(e, "'")); for (var r in le) { if (le.hasOwnProperty(r)) if (le[r].test(t)) return !0 } return !1 }, isPostalCodeLocales: ue, isEthereumAddress: function (t) { return h(t), wt.test(t) }, isCurrency: function (t, e) { return h(t), function (t) { var r = "\\d{".concat(t.digits_after_decimal[0], "}"); t.digits_after_decimal.forEach(function (t, e) { 0 !== e && (r = "".concat(r, "|\\d{").concat(t, "}")) }); var e = "(\\".concat(t.symbol.replace(/\./g, "\\."), ")").concat(t.require_symbol ? "" : "?"), n = "[1-9]\\d{0,2}(\\".concat(t.thousands_separator, "\\d{3})*"), o = "(".concat(["0", "[1-9]\\d*", n].join("|"), ")?"), i = "(\\".concat(t.decimal_separator, "(").concat(r, "))").concat(t.require_decimal ? "" : "?"), a = o + (t.allow_decimal || t.require_decimal ? i : ""); return t.allow_negatives && !t.parens_for_negatives && (t.negative_sign_after_digits ? a += "-?" : t.negative_sign_before_digits && (a = "-?" + a)), t.allow_negative_sign_placeholder ? a = "( (?!\\-))?".concat(a) : t.allow_space_after_symbol ? a = " ?".concat(a) : t.allow_space_after_digits && (a += "( (?!$))?"), t.symbol_after_digits ? a += e : a = e + a, t.allow_negatives && (t.parens_for_negatives ? a = "(\\(".concat(a, "\\)|").concat(a, ")") : t.negative_sign_before_digits || t.negative_sign_after_digits || (a = "-?" + a)), new RegExp("^(?!-? )(?=.*\\d)".concat(a, "$")) }(e = S(e, Gt)).test(t) }, isBtcAddress: function (t) { return h(t), Ut.test(t) }, isISO8601: function (t, e) { h(t); var r = bt.test(t); return e && r && e.strict ? function (t) { var e = t.match(/^(\d{4})-?(\d{3})([ T]{1}\.*|$)/); if (e) { var r = Number(e[1]), n = Number(e[2]); return r % 4 == 0 && r % 100 != 0 || r % 400 == 0 ? n <= 366 : n <= 365 } var o = t.match(/(\d{4})-?(\d{0,2})-?(\d*)/).map(Number), i = o[1], a = o[2], s = o[3], l = a ? "0".concat(a).slice(-2) : a, u = s ? "0".concat(s).slice(-2) : s, d = new Date("".concat(i, "-").concat(l || "01", "-").concat(u || "01")); return !a || !s || d.getUTCFullYear() === i && d.getUTCMonth() + 1 === a && d.getUTCDate() === s }(t) : r }, isRFC3339: function (t) { return h(t), zt.test(t) }, isISO31661Alpha2: function (t) { return h(t), ot(Wt, t.toUpperCase()) }, isISO31661Alpha3: function (t) { return h(t), ot(Vt, t.toUpperCase()) }, isBase32: function (t) { h(t); var e = t.length; return !!(0 < e && e % 8 == 0 && Yt.test(t)) }, isBase64: function (t) { h(t); var e = t.length; if (!e || e % 4 != 0 || jt.test(t)) return !1; var r = t.indexOf("="); return -1 === r || r === e - 1 || r === e - 2 && "=" === t[e - 1] }, isDataURI: function (t) { h(t); var e = t.split(","); if (e.length < 2) return !1; var r = e.shift().trim().split(";"), n = r.shift(); if ("data:" !== n.substr(0, 5)) return !1; var o = n.substr(5); if ("" !== o && !Jt.test(o)) return !1; for (var i = 0; i < r.length; i++)if ((i !== r.length - 1 || "base64" !== r[i].toLowerCase()) && !Qt.test(r[i])) return !1; for (var a = 0; a < e.length; a++)if (!Xt.test(e[a])) return !1; return !0 }, isMagnetURI: function (t) { return h(t), qt.test(t.trim()) }, isMimeType: function (t) { return h(t), te.test(t) || ee.test(t) || re.test(t) }, isLatLong: function (t) { if (h(t), !t.includes(",")) return !1; var e = t.split(","); return !(e[0].startsWith("(") && !e[1].endsWith(")") || e[1].endsWith(")") && !e[0].startsWith("(")) && (ne.test(e[0]) && oe.test(e[1])) }, ltrim: de, rtrim: ce, trim: function (t, e) { return ce(de(t, e), e) }, escape: function (t) { return h(t), t.replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(//g, ">").replace(/\//g, "/").replace(/\\/g, "\").replace(/`/g, "`") }, unescape: function (t) { return h(t), t.replace(/&/g, "&").replace(/"/g, '"').replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">").replace(///g, "/").replace(/\/g, "\\").replace(/`/g, "`") }, stripLow: function (t, e) { return h(t), fe(t, e ? "\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F" : "\\x00-\\x1F\\x7F") }, whitelist: function (t, e) { return h(t), t.replace(new RegExp("[^".concat(e, "]+"), "g"), "") }, blacklist: fe, isWhitelisted: function (t, e) { h(t); for (var r = t.length - 1; 0 <= r; r--)if (-1 === e.indexOf(t[r])) return !1; return !0 }, normalizeEmail: function (t, e) { e = S(e, Ae); var r = t.split("@"), n = r.pop(), o = [r.join("@"), n]; if (o[1] = o[1].toLowerCase(), "gmail.com" === o[1] || "googlemail.com" === o[1]) { if (e.gmail_remove_subaddress && (o[0] = o[0].split("+")[0]), e.gmail_remove_dots && (o[0] = o[0].replace(/\.+/g, me)), !o[0].length) return !1; (e.all_lowercase || e.gmail_lowercase) && (o[0] = o[0].toLowerCase()), o[1] = e.gmail_convert_googlemaildotcom ? "gmail.com" : o[1] } else if (0 <= $e.indexOf(o[1])) { if (e.icloud_remove_subaddress && (o[0] = o[0].split("+")[0]), !o[0].length) return !1; (e.all_lowercase || e.icloud_lowercase) && (o[0] = o[0].toLowerCase()) } else if (0 <= pe.indexOf(o[1])) { if (e.outlookdotcom_remove_subaddress && (o[0] = o[0].split("+")[0]), !o[0].length) return !1; (e.all_lowercase || e.outlookdotcom_lowercase) && (o[0] = o[0].toLowerCase()) } else if (0 <= ge.indexOf(o[1])) { if (e.yahoo_remove_subaddress) { var i = o[0].split("-"); o[0] = 1 < i.length ? i.slice(0, -1).join("-") : i[0] } if (!o[0].length) return !1; (e.all_lowercase || e.yahoo_lowercase) && (o[0] = o[0].toLowerCase()) } else 0 <= he.indexOf(o[1]) ? ((e.all_lowercase || e.yandex_lowercase) && (o[0] = o[0].toLowerCase()), o[1] = "yandex.ru") : e.all_lowercase && (o[0] = o[0].toLowerCase()); return o.join("@") }, toString: toString, isSlug: function (t) { return h(t), ve.test(t) } } });