/*! * copyright (c) 2018 chris o'hara * * permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "software"), to deal in the software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the software, and to * permit persons to whom the software is furnished to do so, subject to * the following conditions: * * the above copyright notice and this permission notice shall be * included in all copies or substantial portions of the software. * * the software is provided "as is", without warranty of any kind, * express or implied, including but not limited to the warranties of * merchantability, fitness for a particular purpose and * noninfringement. in no event shall the authors or copyright holders be * liable for any claim, damages or other liability, whether in an action * 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(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.validator=t()}(this,function(){"use strict";var a="function"==typeof symbol&&"symbol"==typeof symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof symbol&&e.constructor===symbol&&e!==symbol.prototype?"symbol":typeof e};function g(e){if(!("string"==typeof e||e instanceof string)){var t=void 0;throw t=null===e?"null":"object"===(t=void 0===e?"undefined":a(e))&&e.constructor&&e.constructor.hasownproperty("name")?e.constructor.name:"a "+t,new typeerror("expected string but received "+t+".")}}function o(e){return g(e),e=date.parse(e),isnan(e)?null:new date(e)}function r(e){return g(e),parsefloat(e)}function n(e){return"object"===(void 0===e?"undefined":a(e))&&null!==e?e="function"==typeof e.tostring?e.tostring():"[object object]":(null==e||isnan(e)&&!e.length)&&(e=""),string(e)}function a(){var e=0n)return!1;if("::"===e)return!0;"::"===e.substr(0,2)?(r.shift(),r.shift(),i=!0):"::"===e.substr(e.length-2)&&(r.pop(),r.pop(),i=!0);for(var a=0;a$/i,f=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,s=/^[a-z\d]+$/,r=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,e=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00a0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]+$/i,x=/^([\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 c={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},f=/^\[([^\]]+)\](?::([0-9]+))?$/;function p(e,t){for(var r=0;r=t.min,o=!t.hasownproperty("max")||e<=t.max,n=!t.hasownproperty("lt")||et.gt;return r.test(e)&&i&&o&&n&&a}var z=/^[\x00-\x7f]+$/;var w=/[^\u0020-\u007e\uff61-\uff9f\uffa0-\uffdc\uffe8-\uffee0-9a-za-z]/;var v=/[\u0020-\u007e\uff61-\uff9f\uffa0-\uffdc\uffe8-\uffee0-9a-za-z]/;var y=/[^\x00-\x7f]/;var j=/[\ud800-\udbff][\udc00-\udfff]/;var j=object.keys(l),q=function(e,t){return e.some(function(e){return t===e})};var q={force_decimal:!1,decimal_digits:"1,",locale:"en-us"},x=["","-","+"];var ee=/^[0-9a-f]+$/i;function te(e){return g(e),ee.test(e)}var re=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;var ie=/^[a-z]{2}[0-9a-z]{3}\d{2}\d{5}$/;var oe=/^[a-f0-9]{32}$/;var ne={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 ae=/^[a-za-z0-9\-_]+\.[a-za-z0-9\-_]+\.[a-za-z0-9\-_]+$/;var le={ignore_whitespace:!1};var se={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 ue=/^(?: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 de={es:function(e){g(e);var t={x:0,y:1,z:2},r=e.trim().touppercase();if(!/^[0-9x-z][0-9]{7}[trwagmyfpdxbnjzsqvhlcke]$/.test(r))return!1;var i=r.slice(0,-1).replace(/[x,y,z]/g,function(e){return t[e]});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"][i%23])}};var ce=/^[a-z]{2}[0-9a-z]{9}[0-9]$/;var fe=/^(?:[0-9]{9}x|[0-9]{10})$/,pe=/^(?:[0-9]{13})$/,ge=[1,3];var ae={"ar-ae":/^((\+?971)|0)?5[024568]\d{7}$/,"ar-dz":/^(\+?213|0)(5|6|7)\d{8}$/,"ar-eg":/^((\+?20)|0)?1[012]\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":/\+?(88)?0?1[156789][0-9]{8}\b/,"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[ \.\-]?)?([\(]{1}[0-9]{1,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/,"el-gr":/^(\+?30|0)?(69\d{8})$/,"en-au":/^(\+?61|0)4\d{8}$/,"en-gb":/^(\+?44|0)7\d{9}$/,"en-hk":/^(\+?852\-?)?[456789]\d{3}\-?\d{4}$/,"en-in":/^(\+?91|0)?[6789]\d{9}$/,"en-ke":/^(\+?254|0)?[7]\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?( |-)?)?(\([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-es":/^(\+?34)?(6\d{1}|7[1234])\d{7}$/,"es-mx":/^(\+?52)?(1|01)?\d{10,11}$/,"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$/,"fo-fo":/^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"fr-fr":/^(\+?33|0)[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)(0?8?\d\d\s?\d?)([\s?|\d]{7,12})$/,"it-it":/^(\+?39)?\s?3\d{2} ?\d{6,7}$/,"ja-jp":/^(\+?81|0)[789]0[ \-]?[1-9]\d{2}[ \-]?\d{5}$/,"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}(([145]{1}(\-|\s)?\d{7,8})|([236789]{1}(\s|\-)?\d{7}))$/,"nb-no":/^(\+?47)?[49]\d{7}$/,"nl-be":/^(\+?32|0)4?\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)?((1(2([0-9])|6([2-9])|88|99))|(9((?!5)[0-9])))([0-9]{7})$/,"zh-cn":/^((\+|00)86)?1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/,"zh-tw":/^(\+?886\-?|0)?9\d{8}$/};ae["en-ca"]=ae["en-us"],ae["fr-be"]=ae["nl-be"],ae["zh-hk"]=ae["en-hk"];var he=object.keys(ae);var ve={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 me=/^([\+-]?\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-2])(-?[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 $e=/([01][0-9]|2[0-3])/,_e=/[0-5][0-9]/,fe=new regexp("[-+]"+$e.source+":"+_e.source),se=new regexp("([zz]|"+fe.source+")"),re=new regexp($e.source+":"+_e.source+":"+/([0-5][0-9]|60)/.source+/(\.[0-9]+)?/.source),ee=new regexp(/[0-9]{4}/.source+"-"+/(0[1-9]|1[0-2])/.source+"-"+/([12]\d|0[1-9]|3[01])/.source),xe=new regexp(""+re.source+se.source),ce=new regexp(ee.source+"[ tt]"+xe.source);var me=["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 we=["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 le=/[^a-z0-9+\/=]/i;var ne=/^[a-z]+\/[a-z0-9\-\+]+$/i,ie=/^[a-z\-]+=[a-z0-9\-]+$/i,ze=/^[a-z0-9!\$&'\(\)\*\+,;=\-\._~:@\/\?%\s]*$/i;var te=/^magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}&dn=.+&tr=.+$/i;var be=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-za-z0-9\.\-\+]{1,100}$/i,ye=/^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,oe=/^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 be=/^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/,de=/^\s?[+-]?(180(\.0+)?|1[0-7]\d(\.\d+)?|\d{1,2}(\.\d+)?)\)?$/,ge=/^\d{4}$/,pe=/^\d{5}$/,ue=/^\d{6}$/,ke={ad:/^ad\d{3}$/,at:ge,au:ge,be:ge,bg:ge,ca:/^[abceghjklmnprstvxy]\d[abceghj-nprstv-z][\s\-]?\d[abceghj-nprstv-z]\d$/i,ch:ge,cz:/^\d{3}\s?\d{2}$/,de:pe,dk:ge,dz:pe,ee:pe,es:pe,fi:pe,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:ge,il:pe,in:ue,is:/^\d{3}$/,it:pe,jp:/^\d{3}\-\d{4}$/,ke:pe,li:/^(948[5-9]|949[0-7])$/,lt:/^lt\-\d{5}$/,lu:ge,lv:/^lv\-\d{4}$/,mx:pe,nl:/^\d{4}\s?[a-z]{2}$/i,no:ge,pl:/^\d{2}\-\d{3}$/,pt:/^\d{4}\-\d{3}?$/,ro:ue,ru:ue,sa:pe,se:/^\d{3}\s?\d{2}$/,si:ge,sk:/^\d{3}\s?\d{2}$/,tn:ge,tw:/^\d{3}(\d{2})?$/,us:/^\d{5}(-\d{4})?$/,za:ge,zm:pe},ke=object.keys(ke);function he(e,t){g(e);var r=t?new regexp("^["+t+"]+","g"):/^\s+/g;return e.replace(r,"")}function ze(e,t){g(e);for(var r=t?new regexp("["+t+"]"):/\s/,i=e.length-1;0<=i&&r.test(e[i]);i--);return i]/.test(e))return!1;if(0===e.indexof("mailto:"))return!1;t=a(t,c);var r=void 0,i=void 0,o=void 0,n=void 0,a=void 0,l=void 0,s=void 0,u=void 0;if(1<(s=(e=(s=(e=(s=e.split("#")).shift()).split("?")).shift()).split("://")).length){if(r=s.shift().tolowercase(),t.require_valid_protocol&&-1===t.protocols.indexof(r))return!1}else{if(t.require_protocol)return!1;if("//"===e.substr(0,2)){if(!t.allow_protocol_relative_urls)return!1;s[0]=e.substr(2)}}if(""===(e=s.join("://")))return!1;if(""===(e=(s=e.split("/")).shift())&&!t.require_host)return!0;if(1<(s=e.split("@")).length&&0<=(i=s.shift()).indexof(":")&&2=t.min)&&(!t.hasownproperty("max")||i<=t.max)&&(!t.hasownproperty("lt")||it.gt)},isfloatlocales:j,isdecimal:function(e,t){if(g(e),(t=a(t,q)).locale in l)return!q(x,e.replace(/ /g,""))&&(r=t,new regexp("^[-+]?([0-9]+)?(\\"+l[r.locale]+"[0-9]{"+r.decimal_digits+"})"+(r.force_decimal?"":"?")+"$")).test(e);var r;throw new error("invalid locale '"+t.locale+"'")},ishexadecimal:te,isdivisibleby:function(e,t){return g(e),r(e)%parseint(t,10)==0},ishexcolor:function(e){return g(e),re.test(e)},isisrc:function(e){return g(e),ie.test(e)},ismd5:function(e){return g(e),oe.test(e)},ishash:function(e,t){return g(e),new regexp("^[a-f0-9]{"+ne[t]+"}$").test(e)},isjwt:function(e){return g(e),ae.test(e)},isjson:function(e){g(e);try{var t=json.parse(e);return!!t&&"object"===(void 0===t?"undefined":a(t))}catch(e){}return!1},isempty:function(e,t){return g(e),0===((t=a(t,le)).ignore_whitespace?e.trim().length:e.length)},islength:function(e,t){g(e);var r=void 0,i=void 0;i="object"===(void 0===t?"undefined":a(t))?(r=t.min||0,t.max):(r=t,arguments[2]);var o=e.match(/[\ud800-\udbff][\udc00-\udfff]/g)||[],n=e.length-o.length;return r<=n&&(void 0===i||n<=i)},isbytelength:h,isuuid:function(e){var t=1/g,">").replace(/\//g,"/").replace(/\\/g,"\").replace(/`/g,"`")},unescape:function(e){return g(e),e.replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(///g,"/").replace(/\/g,"\\").replace(/`/g,"`")},striplow:function(e,t){return g(e),we(e,t?"\\x00-\\x09\\x0b\\x0c\\x0e-\\x1f\\x7f":"\\x00-\\x1f\\x7f")},whitelist:function(e,t){return g(e),e.replace(new regexp("[^"+t+"]+","g"),"")},blacklist:we,iswhitelisted:function(e,t){g(e);for(var r=e.length-1;0<=r;r--)if(-1===t.indexof(e[r]))return!1;return!0},normalizeemail:function(e,t){t=a(t,ve);var r=e.split("@"),i=r.pop(),o=[r.join("@"),i];if(o[1]=o[1].tolowercase(),"gmail.com"===o[1]||"googlemail.com"===o[1]){if(t.gmail_remove_subaddress&&(o[0]=o[0].split("+")[0]),t.gmail_remove_dots&&(o[0]=o[0].replace(/\.+/g,qe)),!o[0].length)return!1;(t.all_lowercase||t.gmail_lowercase)&&(o[0]=o[0].tolowercase()),o[1]=t.gmail_convert_googlemaildotcom?"gmail.com":o[1]}else if(0<=ye.indexof(o[1])){if(t.icloud_remove_subaddress&&(o[0]=o[0].split("+")[0]),!o[0].length)return!1;(t.all_lowercase||t.icloud_lowercase)&&(o[0]=o[0].tolowercase())}else if(0<=je.indexof(o[1])){if(t.outlookdotcom_remove_subaddress&&(o[0]=o[0].split("+")[0]),!o[0].length)return!1;(t.all_lowercase||t.outlookdotcom_lowercase)&&(o[0]=o[0].tolowercase())}else if(0<=je.indexof(o[1])){if(t.yahoo_remove_subaddress){var n=o[0].split("-");o[0]=1