durable-json-lint
Version:
A Json Lint library that can parse and partially correct dirty Json.
1 lines • 45.3 kB
JavaScript
(function(a,b){"use strict",typeof define=="function"&&define.amd?define(["exports"],b):typeof exports!="undefined"?b(exports):b(a.esprima={})})(this,function(a){function q(a,b){if(!a)throw new Error("ASSERT: "+b)}function r(a,b){return h.slice(a,b)}function s(a){return"0123456789".indexOf(a)>=0}function t(a){return"0123456789abcdefABCDEF".indexOf(a)>=0}function u(a){return"01234567".indexOf(a)>=0}function v(a){return a===" "||a==="\t"||a===""||a==="\f"||a===" "||a.charCodeAt(0)>=5760&&" ".indexOf(a)>=0}function w(a){return a==="\n"||a==="\r"||a==="\u2028"||a==="\u2029"}function x(a){return a==="$"||a==="_"||a==="\\"||a>="a"&&a<="z"||a>="A"&&a<="Z"||a.charCodeAt(0)>=128&&g.NonAsciiIdentifierStart.test(a)}function y(a){return a==="$"||a==="_"||a==="\\"||a>="a"&&a<="z"||a>="A"&&a<="Z"||a>="0"&&a<="9"||a.charCodeAt(0)>=128&&g.NonAsciiIdentifierPart.test(a)}function z(a){switch(a){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0}return!1}function A(a){switch(a){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0}return!1}function B(a){return a==="eval"||a==="arguments"}function C(a){var b=!1;switch(a.length){case 2:b=a==="if"||a==="in"||a==="do";break;case 3:b=a==="var"||a==="for"||a==="new"||a==="try";break;case 4:b=a==="this"||a==="else"||a==="case"||a==="void"||a==="with";break;case 5:b=a==="while"||a==="break"||a==="catch"||a==="throw";break;case 6:b=a==="return"||a==="typeof"||a==="delete"||a==="switch";break;case 7:b=a==="default"||a==="finally";break;case 8:b=a==="function"||a==="continue"||a==="debugger";break;case 10:b=a==="instanceof"}if(b)return!0;switch(a){case"const":return!0;case"yield":case"let":return!0}return i&&A(a)?!0:z(a)}function D(){var a,b,c;b=!1,c=!1;while(j<m){a=h[j];if(c)a=h[j++],w(a)&&(c=!1,a==="\r"&&h[j]==="\n"&&++j,++k,l=j);else if(b)w(a)?(a==="\r"&&h[j+1]==="\n"&&++j,++k,++j,l=j,j>=m&&P({},f.UnexpectedToken,"ILLEGAL")):(a=h[j++],j>=m&&P({},f.UnexpectedToken,"ILLEGAL"),a==="*"&&(a=h[j],a==="/"&&(++j,b=!1)));else if(a==="/"){a=h[j+1];if(a==="/")j+=2,c=!0;else if(a==="*")j+=2,b=!0,j>=m&&P({},f.UnexpectedToken,"ILLEGAL");else break}else if(v(a))++j;else if(w(a))++j,a==="\r"&&h[j]==="\n"&&++j,++k,l=j;else break}}function E(a){var b,c,d,e=0;c=a==="u"?4:2;for(b=0;b<c;++b)if(j<m&&t(h[j]))d=h[j++],e=e*16+"0123456789abcdef".indexOf(d.toLowerCase());else return"";return String.fromCharCode(e)}function F(){var a,c,d,e;a=h[j];if(!x(a))return;c=j;if(a==="\\"){++j;if(h[j]!=="u")return;++j,e=j,a=E("u");if(a){if(a==="\\"||!x(a))return;d=a}else j=e,d="u"}else d=h[j++];while(j<m){a=h[j];if(!y(a))break;if(a==="\\"){++j;if(h[j]!=="u")return;++j,e=j,a=E("u");if(a){if(a==="\\"||!y(a))return;d+=a}else j=e,d+="u"}else d+=h[j++]}return d.length===1?{type:b.Identifier,value:d,lineNumber:k,lineStart:l,range:[c,j]}:C(d)?{type:b.Keyword,value:d,lineNumber:k,lineStart:l,range:[c,j]}:d==="null"?{type:b.NullLiteral,value:d,lineNumber:k,lineStart:l,range:[c,j]}:d==="true"||d==="false"?{type:b.BooleanLiteral,value:d,lineNumber:k,lineStart:l,range:[c,j]}:{type:b.Identifier,value:d,lineNumber:k,lineStart:l,range:[c,j]}}function G(){var a=j,c=h[j],d,e,f;if(c===";"||c==="{"||c==="}")return++j,{type:b.Punctuator,value:c,lineNumber:k,lineStart:l,range:[a,j]};if(c===","||c==="("||c===")")return++j,{type:b.Punctuator,value:c,lineNumber:k,lineStart:l,range:[a,j]};d=h[j+1];if(c==="."&&!s(d))return{type:b.Punctuator,value:h[j++],lineNumber:k,lineStart:l,range:[a,j]};e=h[j+2],f=h[j+3];if(c===">"&&d===">"&&e===">"&&f==="=")return j+=4,{type:b.Punctuator,value:">>>=",lineNumber:k,lineStart:l,range:[a,j]};if(c==="="&&d==="="&&e==="=")return j+=3,{type:b.Punctuator,value:"===",lineNumber:k,lineStart:l,range:[a,j]};if(c==="!"&&d==="="&&e==="=")return j+=3,{type:b.Punctuator,value:"!==",lineNumber:k,lineStart:l,range:[a,j]};if(c===">"&&d===">"&&e===">")return j+=3,{type:b.Punctuator,value:">>>",lineNumber:k,lineStart:l,range:[a,j]};if(c==="<"&&d==="<"&&e==="=")return j+=3,{type:b.Punctuator,value:"<<=",lineNumber:k,lineStart:l,range:[a,j]};if(c===">"&&d===">"&&e==="=")return j+=3,{type:b.Punctuator,value:">>=",lineNumber:k,lineStart:l,range:[a,j]};if(d==="="&&"<>=!+-*%&|^/".indexOf(c)>=0)return j+=2,{type:b.Punctuator,value:c+d,lineNumber:k,lineStart:l,range:[a,j]};if(c===d&&"+-<>&|".indexOf(c)>=0&&"+-<>&|".indexOf(d)>=0)return j+=2,{type:b.Punctuator,value:c+d,lineNumber:k,lineStart:l,range:[a,j]};if("[]<>+-*%&|^!~?:=/".indexOf(c)>=0)return{type:b.Punctuator,value:h[j++],lineNumber:k,lineStart:l,range:[a,j]}}function H(){var a,c,d;d=h[j],q(s(d)||d===".","Numeric literal must start with a decimal digit or a decimal point"),c=j,a="";if(d!=="."){a=h[j++],d=h[j];if(a==="0"){if(d==="x"||d==="X"){a+=h[j++];while(j<m){d=h[j];if(!t(d))break;a+=h[j++]}return a.length<=2&&P({},f.UnexpectedToken,"ILLEGAL"),j<m&&(d=h[j],x(d)&&P({},f.UnexpectedToken,"ILLEGAL")),{type:b.NumericLiteral,value:parseInt(a,16),lineNumber:k,lineStart:l,range:[c,j]}}if(u(d)){a+=h[j++];while(j<m){d=h[j];if(!u(d))break;a+=h[j++]}return j<m&&(d=h[j],(x(d)||s(d))&&P({},f.UnexpectedToken,"ILLEGAL")),{type:b.NumericLiteral,value:parseInt(a,8),octal:!0,lineNumber:k,lineStart:l,range:[c,j]}}s(d)&&P({},f.UnexpectedToken,"ILLEGAL")}while(j<m){d=h[j];if(!s(d))break;a+=h[j++]}}if(d==="."){a+=h[j++];while(j<m){d=h[j];if(!s(d))break;a+=h[j++]}}if(d==="e"||d==="E"){a+=h[j++],d=h[j];if(d==="+"||d==="-")a+=h[j++];d=h[j];if(s(d)){a+=h[j++];while(j<m){d=h[j];if(!s(d))break;a+=h[j++]}}else d="character "+d,j>=m&&(d="<end>"),P({},f.UnexpectedToken,"ILLEGAL")}return j<m&&(d=h[j],x(d)&&P({},f.UnexpectedToken,"ILLEGAL")),{type:b.NumericLiteral,value:parseFloat(a),lineNumber:k,lineStart:l,range:[c,j]}}function I(){var a="",c,d,e,g,i,n,o=!1;c=h[j],q(c==="'"||c==='"',"String literal must starts with a quote"),d=j,++j;while(j<m){e=h[j++];if(e===c){c="";break}if(e==="\\"){e=h[j++];if(!w(e))switch(e){case"n":a+="\n";break;case"r":a+="\r";break;case"t":a+="\t";break;case"u":case"x":n=j,i=E(e),i?a+=i:(j=n,a+=e);break;case"b":a+="\b";break;case"f":a+="\f";break;case"v":a+="";break;default:u(e)?(g="01234567".indexOf(e),g!==0&&(o=!0),j<m&&u(h[j])&&(o=!0,g=g*8+"01234567".indexOf(h[j++]),"0123".indexOf(e)>=0&&j<m&&u(h[j])&&(g=g*8+"01234567".indexOf(h[j++]))),a+=String.fromCharCode(g)):a+=e}else++k,e==="\r"&&h[j]==="\n"&&++j}else{if(w(e))break;a+=e}}return c!==""&&P({},f.UnexpectedToken,"ILLEGAL"),{type:b.StringLiteral,value:a,octal:o,lineNumber:k,lineStart:l,range:[d,j]}}function J(){var a,b,c,d,e,g,i=!1,k,l=!1;n=null,D(),c=j,b=h[j],q(b==="/","Regular expression literal must start with a slash"),a=h[j++];while(j<m){b=h[j++],a+=b;if(b==="\\")b=h[j++],w(b)&&P({},f.UnterminatedRegExp),a+=b;else if(i)b==="]"&&(i=!1);else{if(b==="/"){l=!0;break}b==="["?i=!0:w(b)&&P({},f.UnterminatedRegExp)}}l||P({},f.UnterminatedRegExp),d=a.substr(1,a.length-2),e="";while(j<m){b=h[j];if(!y(b))break;++j;if(b==="\\"&&j<m){b=h[j];if(b==="u"){++j,k=j,b=E("u");if(b){e+=b,a+="\\u";for(;k<j;++k)a+=h[k]}else j=k,e+="u",a+="\\u"}else a+="\\"}else e+=b,a+=b}try{g=new RegExp(d,e)}catch(o){P({},f.InvalidRegExp)}return{literal:a,value:g,range:[c,j]}}function K(a){return a.type===b.Identifier||a.type===b.Keyword||a.type===b.BooleanLiteral||a.type===b.NullLiteral}function L(){var a,c;D();if(j>=m)return{type:b.EOF,lineNumber:k,lineStart:l,range:[j,j]};c=G();if(typeof c!="undefined")return c;a=h[j];if(a==="'"||a==='"')return I();if(a==="."||s(a))return H();c=F();if(typeof c!="undefined")return c;P({},f.UnexpectedToken,"ILLEGAL")}function M(){var a;return n?(j=n.range[1],k=n.lineNumber,l=n.lineStart,a=n,n=null,a):(n=null,L())}function N(){var a,b,c;return n!==null?n:(a=j,b=k,c=l,n=L(),j=a,k=b,l=c,n)}function O(){var a,b,c,d;return a=j,b=k,c=l,D(),d=k!==b,j=a,k=b,l=c,d}function P(a,b){var c,d=Array.prototype.slice.call(arguments,2),e=b.replace(/%(\d)/g,function(a,b){return d[b]||""});throw typeof a.lineNumber=="number"?(c=new Error("Line "+a.lineNumber+": "+e),c.index=a.range[0],c.lineNumber=a.lineNumber,c.column=a.range[0]-l+1):(c=new Error("Line "+k+": "+e),c.index=j,c.lineNumber=k,c.column=j-l+1),c}function Q(){try{P.apply(null,arguments)}catch(a){if(p.errors)p.errors.push(a);else throw a}}function R(a){a.type===b.EOF&&P(a,f.UnexpectedEOS),a.type===b.NumericLiteral&&P(a,f.UnexpectedNumber),a.type===b.StringLiteral&&P(a,f.UnexpectedString),a.type===b.Identifier&&P(a,f.UnexpectedIdentifier);if(a.type===b.Keyword){if(z(a.value))P(a,f.UnexpectedReserved);else if(i&&A(a.value)){Q(a,f.StrictReservedWord);return}P(a,f.UnexpectedToken,a.value)}P(a,f.UnexpectedToken,a.value)}function S(a){var c=M();(c.type!==b.Punctuator||c.value!==a)&&R(c)}function T(a){var c=M();(c.type!==b.Keyword||c.value!==a)&&R(c)}function U(a){var c=N();return c.type===b.Punctuator&&c.value===a}function V(a){var c=N();return c.type===b.Keyword&&c.value===a}function W(){var a=N(),c=a.value;return a.type!==b.Punctuator?!1:c==="="||c==="*="||c==="/="||c==="%="||c==="+="||c==="-="||c==="<<="||c===">>="||c===">>>="||c==="&="||c==="^="||c==="|="}function X(){var a,c;if(h[j]===";"){M();return}c=k,D();if(k!==c)return;if(U(";")){M();return}a=N(),a.type!==b.EOF&&!U("}")&&R(a)}function Y(a){return a.type===d.Identifier||a.type===d.MemberExpression}function Z(){var a=[];S("[");while(!U("]"))U(",")?(M(),a.push(null)):(a.push(by()),U("]")||S(","));return S("]"),{type:d.ArrayExpression,elements:a}}function $(a,b){var c,e;return c=i,e=bZ(),b&&i&&B(a[0].name)&&Q(b,f.StrictParamName),i=c,{type:d.FunctionExpression,id:null,params:a,defaults:[],body:e,rest:null,generator:!1,expression:!1}}function _(){var a=M();return a.type===b.StringLiteral||a.type===b.NumericLiteral?(i&&a.octal&&Q(a,f.StrictOctalLiteral),cj(a)):{type:d.Identifier,name:a.value}}function ba(){var a,c,e,g;a=N();if(a.type===b.Identifier)return e=_(),a.value==="get"&&!U(":")?(c=_(),S("("),S(")"),{type:d.Property,key:c,value:$([]),kind:"get"}):a.value==="set"&&!U(":")?(c=_(),S("("),a=N(),a.type!==b.Identifier?(S(")"),Q(a,f.UnexpectedToken,a.value),{type:d.Property,key:c,value:$([]),kind:"set"}):(g=[bC()],S(")"),{type:d.Property,key:c,value:$(g,a),kind:"set"})):(S(":"),{type:d.Property,key:e,value:by(),kind:"init"});if(a.type===b.EOF||a.type===b.Punctuator)R(a);else return c=_(),S(":"),{type:d.Property,key:c,value:by(),kind:"init"}}function bb(){var a=[],b,c,g,h={},j=String;S("{");while(!U("}"))b=ba(),b.key.type===d.Identifier?c=b.key.name:c=j(b.key.value),g=b.kind==="init"?e.Data:b.kind==="get"?e.Get:e.Set,Object.prototype.hasOwnProperty.call(h,c)?(h[c]===e.Data?i&&g===e.Data?Q({},f.StrictDuplicateProperty):g!==e.Data&&Q({},f.AccessorDataProperty):g===e.Data?Q({},f.AccessorDataProperty):h[c]&g&&Q({},f.AccessorGetSet),h[c]|=g):h[c]=g,a.push(b),U("}")||S(",");return S("}"),{type:d.ObjectExpression,properties:a}}function bc(){var a;return S("("),a=bz(),S(")"),a}function bd(){var a=N(),c=a.type;if(c===b.Identifier)return{type:d.Identifier,name:M().value};if(c===b.StringLiteral||c===b.NumericLiteral)return i&&a.octal&&Q(a,f.StrictOctalLiteral),cj(M());if(c===b.Keyword){if(V("this"))return M(),{type:d.ThisExpression};if(V("function"))return b_()}return c===b.BooleanLiteral?(M(),a.value=a.value==="true",cj(a)):c===b.NullLiteral?(M(),a.value=null,cj(a)):U("[")?Z():U("{")?bb():U("(")?bc():U("/")||U("/=")?cj(J()):R(M())}function be(){var a=[];S("(");if(!U(")"))while(j<m){a.push(by());if(U(")"))break;S(",")}return S(")"),a}function bf(){var a=M();return K(a)||R(a),{type:d.Identifier,name:a.value}}function bg(){return S("."),bf()}function bh(){var a;return S("["),a=bz(),S("]"),a}function bi(){var a;return T("new"),a={type:d.NewExpression,callee:bk(),arguments:[]},U("(")&&(a.arguments=be()),a}function bj(){var a;a=V("new")?bi():bd();while(U(".")||U("[")||U("("))U("(")?a={type:d.CallExpression,callee:a,arguments:be()}:U("[")?a={type:d.MemberExpression,computed:!0,object:a,property:bh()}:a={type:d.MemberExpression,computed:!1,object:a,property:bg()};return a}function bk(){var a;a=V("new")?bi():bd();while(U(".")||U("["))U("[")?a={type:d.MemberExpression,computed:!0,object:a,property:bh()}:a={type:d.MemberExpression,computed:!1,object:a,property:bg()};return a}function bl(){var a=bj(),c;return c=N(),c.type!==b.Punctuator?a:((U("++")||U("--"))&&!O()&&(i&&a.type===d.Identifier&&B(a.name)&&Q({},f.StrictLHSPostfix),Y(a)||Q({},f.InvalidLHSInAssignment),a={type:d.UpdateExpression,operator:M().value,argument:a,prefix:!1}),a)}function bm(){var a,c;return a=N(),a.type!==b.Punctuator&&a.type!==b.Keyword?bl():U("++")||U("--")?(a=M(),c=bm(),i&&c.type===d.Identifier&&B(c.name)&&Q({},f.StrictLHSPrefix),Y(c)||Q({},f.InvalidLHSInAssignment),c={type:d.UpdateExpression,operator:a.value,argument:c,prefix:!0},c):U("+")||U("-")||U("~")||U("!")?(c={type:d.UnaryExpression,operator:M().value,argument:bm(),prefix:!0},c):V("delete")||V("void")||V("typeof")?(c={type:d.UnaryExpression,operator:M().value,argument:bm(),prefix:!0},i&&c.operator==="delete"&&c.argument.type===d.Identifier&&Q({},f.StrictDelete),c):bl()}function bn(){var a=bm();while(U("*")||U("/")||U("%"))a={type:d.BinaryExpression,operator:M().value,left:a,right:bm()};return a}function bo(){var a=bn();while(U("+")||U("-"))a={type:d.BinaryExpression,operator:M().value,left:a,right:bn()};return a}function bp(){var a=bo();while(U("<<")||U(">>")||U(">>>"))a={type:d.BinaryExpression,operator:M().value,left:a,right:bo()};return a}function bq(){var a,b;b=o.allowIn,o.allowIn=!0,a=bp();while(U("<")||U(">")||U("<=")||U(">=")||b&&V("in")||V("instanceof"))a={type:d.BinaryExpression,operator:M().value,left:a,right:bp()};return o.allowIn=b,a}function br(){var a=bq();while(U("==")||U("!=")||U("===")||U("!=="))a={type:d.BinaryExpression,operator:M().value,left:a,right:bq()};return a}function bs(){var a=br();while(U("&"))M(),a={type:d.BinaryExpression,operator:"&",left:a,right:br()};return a}function bt(){var a=bs();while(U("^"))M(),a={type:d.BinaryExpression,operator:"^",left:a,right:bs()};return a}function bu(){var a=bt();while(U("|"))M(),a={type:d.BinaryExpression,operator:"|",left:a,right:bt()};return a}function bv(){var a=bu();while(U("&&"))M(),a={type:d.LogicalExpression,operator:"&&",left:a,right:bu()};return a}function bw(){var a=bv();while(U("||"))M(),a={type:d.LogicalExpression,operator:"||",left:a,right:bv()};return a}function bx(){var a,b,c;return a=bw(),U("?")&&(M(),b=o.allowIn,o.allowIn=!0,c=by(),o.allowIn=b,S(":"),a={type:d.ConditionalExpression,test:a,consequent:c,alternate:by()}),a}function by(){var a,b;return a=N(),b=bx(),W()&&(Y(b)||Q({},f.InvalidLHSInAssignment),i&&b.type===d.Identifier&&B(b.name)&&Q(a,f.StrictLHSAssignment),b={type:d.AssignmentExpression,operator:M().value,left:b,right:by()}),b}function bz(){var a=by();if(U(",")){a={type:d.SequenceExpression,expressions:[a]};while(j<m){if(!U(","))break;M(),a.expressions.push(by())}}return a}function bA(){var a=[],b;while(j<m){if(U("}"))break;b=ca();if(typeof b=="undefined")break;a.push(b)}return a}function bB(){var a;return S("{"),a=bA(),S("}"),{type:d.BlockStatement,body:a}}function bC(){var a=M();return a.type!==b.Identifier&&R(a),{type:d.Identifier,name:a.value}}function bD(a){var b=bC(),c=null;return i&&B(b.name)&&Q({},f.StrictVarName),a==="const"?(S("="),c=by()):U("=")&&(M(),c=by()),{type:d.VariableDeclarator,id:b,init:c}}function bE(a){var b=[];do{b.push(bD(a));if(!U(","))break;M()}while(j<m);return b}function bF(){var a;return T("var"),a=bE(),X(),{type:d.VariableDeclaration,declarations:a,kind:"var"}}function bG(a){var b;return T(a),b=bE(a),X(),{type:d.VariableDeclaration,declarations:b,kind:a}}function bH(){return S(";"),{type:d.EmptyStatement}}function bI(){var a=bz();return X(),{type:d.ExpressionStatement,expression:a}}function bJ(){var a,b,c;return T("if"),S("("),a=bz(),S(")"),b=bY(),V("else")?(M(),c=bY()):c=null,{type:d.IfStatement,test:a,consequent:b,alternate:c}}function bK(){var a,b,c;return T("do"),c=o.inIteration,o.inIteration=!0,a=bY(),o.inIteration=c,T("while"),S("("),b=bz(),S(")"),U(";")&&M(),{type:d.DoWhileStatement,body:a,test:b}}function bL(){var a,b,c;return T("while"),S("("),a=bz(),S(")"),c=o.inIteration,o.inIteration=!0,b=bY(),o.inIteration=c,{type:d.WhileStatement,test:a,body:b}}function bM(){var a=M();return{type:d.VariableDeclaration,declarations:bE(),kind:a.value}}function bN(){var a,b,c,e,g,h,i;return a=b=c=null,T("for"),S("("),U(";")?M():(V("var")||V("let")?(o.allowIn=!1,a=bM(),o.allowIn=!0,a.declarations.length===1&&V("in")&&(M(),e=a,g=bz(),a=null)):(o.allowIn=!1,a=bz(),o.allowIn=!0,V("in")&&(Y(a)||Q({},f.InvalidLHSInForIn),M(),e=a,g=bz(),a=null)),typeof e=="undefined"&&S(";")),typeof e=="undefined"&&(U(";")||(b=bz()),S(";"),U(")")||(c=bz())),S(")"),i=o.inIteration,o.inIteration=!0,h=bY(),o.inIteration=i,typeof e=="undefined"?{type:d.ForStatement,init:a,test:b,update:c,body:h}:{type:d.ForInStatement,left:e,right:g,body:h,each:!1}}function bO(){var a,c=null;return T("continue"),h[j]===";"?(M(),o.inIteration||P({},f.IllegalContinue),{type:d.ContinueStatement,label:null}):O()?(o.inIteration||P({},f.IllegalContinue),{type:d.ContinueStatement,label:null}):(a=N(),a.type===b.Identifier&&(c=bC(),Object.prototype.hasOwnProperty.call(o.labelSet,c.name)||P({},f.UnknownLabel,c.name)),X(),c===null&&!o.inIteration&&P({},f.IllegalContinue),{type:d.ContinueStatement,label:c})}function bP(){var a,c=null;return T("break"),h[j]===";"?(M(),!o.inIteration&&!o.inSwitch&&P({},f.IllegalBreak),{type:d.BreakStatement,label:null}):O()?(!o.inIteration&&!o.inSwitch&&P({},f.IllegalBreak),{type:d.BreakStatement,label:null}):(a=N(),a.type===b.Identifier&&(c=bC(),Object.prototype.hasOwnProperty.call(o.labelSet,c.name)||P({},f.UnknownLabel,c.name)),X(),c===null&&!o.inIteration&&!o.inSwitch&&P({},f.IllegalBreak),{type:d.BreakStatement,label:c})}function bQ(){var a,c=null;return T("return"),o.inFunctionBody||Q({},f.IllegalReturn),h[j]===" "&&x(h[j+1])?(c=bz(),X(),{type:d.ReturnStatement,argument:c}):O()?{type:d.ReturnStatement,argument:null}:(U(";")||(a=N(),!U("}")&&a.type!==b.EOF&&(c=bz())),X(),{type:d.ReturnStatement,argument:c})}function bR(){var a,b;return i&&Q({},f.StrictModeWith),T("with"),S("("),a=bz(),S(")"),b=bY(),{type:d.WithStatement,object:a,body:b}}function bS(){var a,b=[],c;V("default")?(M(),a=null):(T("case"),a=bz()),S(":");while(j<m){if(U("}")||V("default")||V("case"))break;c=bY();if(typeof c=="undefined")break;b.push(c)}return{type:d.SwitchCase,test:a,consequent:b}}function bT(){var a,b,c,e,g;T("switch"),S("("),a=bz(),S(")"),S("{"),b=[];if(U("}"))return M(),{type:d.SwitchStatement,discriminant:a,cases:b};e=o.inSwitch,o.inSwitch=!0,g=!1;while(j<m){if(U("}"))break;c=bS(),c.test===null&&(g&&P({},f.MultipleDefaultsInSwitch),g=!0),b.push(c)}return o.inSwitch=e,S("}"),{type:d.SwitchStatement,discriminant:a,cases:b}}function bU(){var a;return T("throw"),O()&&P({},f.NewlineAfterThrow),a=bz(),X(),{type:d.ThrowStatement,argument:a}}function bV(){var a;return T("catch"),S("("),U(")")&&R(N()),a=bC(),i&&B(a.name)&&Q({},f.StrictCatchVariable),S(")"),{type:d.CatchClause,param:a,body:bB()}}function bW(){var a,b=[],c=null;return T("try"),a=bB(),V("catch")&&b.push(bV()),V("finally")&&(M(),c=bB()),b.length===0&&!c&&P({},f.NoCatchOrFinally),{type:d.TryStatement,block:a,guardedHandlers:[],handlers:b,finalizer:c}}function bX(){return T("debugger"),X(),{type:d.DebuggerStatement}}function bY(){var a=N(),c,e;a.type===b.EOF&&R(a);if(a.type===b.Punctuator)switch(a.value){case";":return bH();case"{":return bB();case"(":return bI();default:}if(a.type===b.Keyword)switch(a.value){case"break":return bP();case"continue":return bO();case"debugger":return bX();case"do":return bK();case"for":return bN();case"function":return b$();case"if":return bJ();case"return":return bQ();case"switch":return bT();case"throw":return bU();case"try":return bW();case"var":return bF();case"while":return bL();case"with":return bR();default:}return c=bz(),c.type===d.Identifier&&U(":")?(M(),Object.prototype.hasOwnProperty.call(o.labelSet,c.name)&&P({},f.Redeclaration,"Label",c.name),o.labelSet[c.name]=!0,e=bY(),delete o.labelSet[c.name],{type:d.LabeledStatement,label:c,body:e}):(X(),{type:d.ExpressionStatement,expression:c})}function bZ(){var a,c=[],e,g,h,k,l,n,p;S("{");while(j<m){e=N();if(e.type!==b.StringLiteral)break;a=ca(),c.push(a);if(a.expression.type!==d.Literal)break;g=r(e.range[0]+1,e.range[1]-1),g==="use strict"?(i=!0,h&&Q(h,f.StrictOctalLiteral)):!h&&e.octal&&(h=e)}k=o.labelSet,l=o.inIteration,n=o.inSwitch,p=o.inFunctionBody,o.labelSet={},o.inIteration=!1,o.inSwitch=!1,o.inFunctionBody=!0;while(j<m){if(U("}"))break;a=ca();if(typeof a=="undefined")break;c.push(a)}return S("}"),o.labelSet=k,o.inIteration=l,o.inSwitch=n,o.inFunctionBody=p,{type:d.BlockStatement,body:c}}function b$(){var a,b,c=[],e,g,h,k,l,n,o;T("function"),g=N(),a=bC(),i?B(g.value)&&Q(g,f.StrictFunctionName):B(g.value)?(k=g,l=f.StrictFunctionName):A(g.value)&&(k=g,l=f.StrictReservedWord),S("(");if(!U(")")){o={};while(j<m){g=N(),b=bC(),i?(B(g.value)&&(h=g,l=f.StrictParamName),Object.prototype.hasOwnProperty.call(o,g.value)&&(h=g,l=f.StrictParamDupe)):k||(B(g.value)?(k=g,l=f.StrictParamName):A(g.value)?(k=g,l=f.StrictReservedWord):Object.prototype.hasOwnProperty.call(o,g.value)&&(k=g,l=f.StrictParamDupe)),c.push(b),o[b.name]=!0;if(U(")"))break;S(",")}}return S(")"),n=i,e=bZ(),i&&k&&P(k,l),i&&h&&Q(h,l),i=n,{type:d.FunctionDeclaration,id:a,params:c,defaults:[],body:e,rest:null,generator:!1,expression:!1}}function b_(){var a,b=null,c,e,g,h,k=[],l,n,o;T("function"),U("(")||(a=N(),b=bC(),i?B(a.value)&&Q(a,f.StrictFunctionName):B(a.value)?(e=a,g=f.StrictFunctionName):A(a.value)&&(e=a,g=f.StrictReservedWord)),S("(");if(!U(")")){o={};while(j<m){a=N(),h=bC(),i?(B(a.value)&&(c=a,g=f.StrictParamName),Object.prototype.hasOwnProperty.call(o,a.value)&&(c=a,g=f.StrictParamDupe)):e||(B(a.value)?(e=a,g=f.StrictParamName):A(a.value)?(e=a,g=f.StrictReservedWord):Object.prototype.hasOwnProperty.call(o,a.value)&&(e=a,g=f.StrictParamDupe)),k.push(h),o[h.name]=!0;if(U(")"))break;S(",")}}return S(")"),n=i,l=bZ(),i&&e&&P(e,g),i&&c&&Q(c,g),i=n,{type:d.FunctionExpression,id:b,params:k,defaults:[],body:l,rest:null,generator:!1,expression:!1}}function ca(){var a=N();if(a.type===b.Keyword)switch(a.value){case"const":case"let":return bG(a.value);case"function":return b$();default:return bY()}if(a.type!==b.EOF)return bY()}function cb(){var a,c=[],e,g,h;while(j<m){e=N();if(e.type!==b.StringLiteral)break;a=ca(),c.push(a);if(a.expression.type!==d.Literal)break;g=r(e.range[0]+1,e.range[1]-1),g==="use strict"?(i=!0,h&&Q(h,f.StrictOctalLiteral)):!h&&e.octal&&(h=e)}while(j<m){a=ca();if(typeof a=="undefined")break;c.push(a)}return c}function cc(){var a;return i=!1,a={type:d.Program,body:cb()},a}function cd(a,b,c,d,e){q(typeof c=="number","Comment must have valid position");if(p.comments.length>0&&p.comments[p.comments.length-1].range[1]>c)return;p.comments.push({type:a,value:b,range:[c,d],loc:e})}function ce(){var a,b,c,d,e,g;a="",e=!1,g=!1;while(j<m){b=h[j];if(g)b=h[j++],w(b)?(c.end={line:k,column:j-l-1},g=!1,cd("Line",a,d,j-1,c),b==="\r"&&h[j]==="\n"&&++j,++k,l=j,a=""):j>=m?(g=!1,a+=b,c.end={line:k,column:m-l},cd("Line",a,d,m,c)):a+=b;else if(e)w(b)?(b==="\r"&&h[j+1]==="\n"?(++j,a+="\r\n"):a+=b,++k,++j,l=j,j>=m&&P({},f.UnexpectedToken,"ILLEGAL")):(b=h[j++],j>=m&&P({},f.UnexpectedToken,"ILLEGAL"),a+=b,b==="*"&&(b=h[j],b==="/"&&(a=a.substr(0,a.length-1),e=!1,++j,c.end={line:k,column:j-l},cd("Block",a,d,j,c),a="")));else if(b==="/"){b=h[j+1];if(b==="/")c={start:{line:k,column:j-l}},d=j,j+=2,g=!0,j>=m&&(c.end={line:k,column:j-l},g=!1,cd("Line",a,d,j,c));else if(b==="*")d=j,j+=2,e=!0,c={start:{line:k,column:j-l-2}},j>=m&&P({},f.UnexpectedToken,"ILLEGAL");else break}else if(v(b))++j;else if(w(b))++j,b==="\r"&&h[j]==="\n"&&++j,++k,l=j;else break}}function cf(){var a,b,c,d=[];for(a=0;a<p.comments.length;++a)b=p.comments[a],c={type:b.type,value:b.value},p.range&&(c.range=b.range),p.loc&&(c.loc=b.loc),d.push(c);p.comments=d}function cg(){var a,d,e,f,g;return D(),a=j,d={start:{line:k,column:j-l}},e=p.advance(),d.end={line:k,column:j-l},e.type!==b.EOF&&(f=[e.range[0],e.range[1]],g=r(e.range[0],e.range[1]),p.tokens.push({type:c[e.type],value:g,range:f,loc:d})),e}function ch(){var a,b,c,d;return D(),a=j,b={start:{line:k,column:j-l}},c=p.scanRegExp(),b.end={line:k,column:j-l},p.tokens.length>0&&(d=p.tokens[p.tokens.length-1],d.range[0]===a&&d.type==="Punctuator"&&(d.value==="/"||d.value==="/=")&&p.tokens.pop()),p.tokens.push({type:"RegularExpression",value:c.literal,range:[a,j],loc:b}),c}function ci(){var a,b,c,d=[];for(a=0;a<p.tokens.length;++a)b=p.tokens[a],c={type:b.type,value:b.value},p.range&&(c.range=b.range),p.loc&&(c.loc=b.loc),d.push(c);p.tokens=d}function cj(a){return{type:d.Literal,value:a.value}}function ck(a){return{type:d.Literal,value:a.value,raw:r(a.range[0],a.range[1])}}function cl(){var a={};return a.range=[j,j],a.loc={start:{line:k,column:j-l},end:{line:k,column:j-l}},a.end=function(){this.range[1]=j,this.loc.end.line=k,this.loc.end.column=j-l},a.applyGroup=function(a){p.range&&(a.groupRange=[this.range[0],this.range[1]]),p.loc&&(a.groupLoc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},a.apply=function(a){p.range&&(a.range=[this.range[0],this.range[1]]),p.loc&&(a.loc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},a}function cm(){var a,b;return D(),a=cl(),S("("),b=bz(),S(")"),a.end(),a.applyGroup(b),b}function cn(){var a,b;D(),a=cl(),b=V("new")?bi():bd();while(U(".")||U("["))U("[")?(b={type:d.MemberExpression,computed:!0,object:b,property:bh()},a.end(),a.apply(b)):(b={type:d.MemberExpression,computed:!1,object:b,property:bg()},a.end(),a.apply(b));return b}function co(){var a,b;D(),a=cl(),b=V("new")?bi():bd();while(U(".")||U("[")||U("("))U("(")?(b={type:d.CallExpression,callee:b,arguments:be()},a.end(),a.apply(b)):U("[")?(b={type:d.MemberExpression,computed:!0,object:b,property:bh()},a.end(),a.apply(b)):(b={type:d.MemberExpression,computed:!1,object:b,property:bg()},a.end(),a.apply(b));return b}function cp(a){var b,c,d;b=Object.prototype.toString.apply(a)==="[object Array]"?[]:{};for(c in a)a.hasOwnProperty(c)&&c!=="groupRange"&&c!=="groupLoc"&&(d=a[c],d===null||typeof d!="object"||d instanceof RegExp?b[c]=d:b[c]=cp(d));return b}function cq(a,b){return function(c){function e(a){return a.type===d.LogicalExpression||a.type===d.BinaryExpression}function f(c){var d,g;e(c.left)&&f(c.left),e(c.right)&&f(c.right),a&&(c.left.groupRange||c.right.groupRange?(d=c.left.groupRange?c.left.groupRange[0]:c.left.range[0],g=c.right.groupRange?c.right.groupRange[1]:c.right.range[1],c.range=[d,g]):typeof c.range=="undefined"&&(d=c.left.range[0],g=c.right.range[1],c.range=[d,g])),b&&(c.left.groupLoc||c.right.groupLoc?(d=c.left.groupLoc?c.left.groupLoc.start:c.left.loc.start,g=c.right.groupLoc?c.right.groupLoc.end:c.right.loc.end,c.loc={start:d,end:g}):typeof c.loc=="undefined"&&(c.loc={start:c.left.loc.start,end:c.right.loc.end}))}return function(){var d,g;return D(),d=cl(),g=c.apply(null,arguments),d.end(),a&&typeof g.range=="undefined"&&d.apply(g),b&&typeof g.loc=="undefined"&&d.apply(g),e(g)&&f(g),g}}}function cr(){var a;p.comments&&(p.skipComment=D,D=ce),p.raw&&(p.createLiteral=cj,cj=ck);if(p.range||p.loc)p.parseGroupExpression=bc,p.parseLeftHandSideExpression=bk,p.parseLeftHandSideExpressionAllowCall=bj,bc=cm,bk=cn,bj=co,a=cq(p.range,p.loc),p.parseAdditiveExpression=bo,p.parseAssignmentExpression=by,p.parseBitwiseANDExpression=bs,p.parseBitwiseORExpression=bu,p.parseBitwiseXORExpression=bt,p.parseBlock=bB,p.parseFunctionSourceElements=bZ,p.parseCatchClause=bV,p.parseComputedMember=bh,p.parseConditionalExpression=bx,p.parseConstLetDeclaration=bG,p.parseEqualityExpression=br,p.parseExpression=bz,p.parseForVariableDeclaration=bM,p.parseFunctionDeclaration=b$,p.parseFunctionExpression=b_,p.parseLogicalANDExpression=bv,p.parseLogicalORExpression=bw,p.parseMultiplicativeExpression=bn,p.parseNewExpression=bi,p.parseNonComputedProperty=bf,p.parseObjectProperty=ba,p.parseObjectPropertyKey=_,p.parsePostfixExpression=bl,p.parsePrimaryExpression=bd,p.parseProgram=cc,p.parsePropertyFunction=$,p.parseRelationalExpression=bq,p.parseStatement=bY,p.parseShiftExpression=bp,p.parseSwitchCase=bS,p.parseUnaryExpression=bm,p.parseVariableDeclaration=bD,p.parseVariableIdentifier=bC,bo=a(p.parseAdditiveExpression),by=a(p.parseAssignmentExpression),bs=a(p.parseBitwiseANDExpression),bu=a(p.parseBitwiseORExpression),bt=a(p.parseBitwiseXORExpression),bB=a(p.parseBlock),bZ=a(p.parseFunctionSourceElements),bV=a(p.parseCatchClause),bh=a(p.parseComputedMember),bx=a(p.parseConditionalExpression),bG=a(p.parseConstLetDeclaration),br=a(p.parseEqualityExpression),bz=a(p.parseExpression),bM=a(p.parseForVariableDeclaration),b$=a(p.parseFunctionDeclaration),b_=a(p.parseFunctionExpression),bk=a(bk),bv=a(p.parseLogicalANDExpression),bw=a(p.parseLogicalORExpression),bn=a(p.parseMultiplicativeExpression),bi=a(p.parseNewExpression),bf=a(p.parseNonComputedProperty),ba=a(p.parseObjectProperty),_=a(p.parseObjectPropertyKey),bl=a(p.parsePostfixExpression),bd=a(p.parsePrimaryExpression),cc=a(p.parseProgram),$=a(p.parsePropertyFunction),bq=a(p.parseRelationalExpression),bY=a(p.parseStatement),bp=a(p.parseShiftExpression),bS=a(p.parseSwitchCase),bm=a(p.parseUnaryExpression),bD=a(p.parseVariableDeclaration),bC=a(p.parseVariableIdentifier);typeof p.tokens!="undefined"&&(p.advance=L,p.scanRegExp=J,L=cg,J=ch)}function cs(){typeof p.skipComment=="function"&&(D=p.skipComment),p.raw&&(cj=p.createLiteral);if(p.range||p.loc)bo=p.parseAdditiveExpression,by=p.parseAssignmentExpression,bs=p.parseBitwiseANDExpression,bu=p.parseBitwiseORExpression,bt=p.parseBitwiseXORExpression,bB=p.parseBlock,bZ=p.parseFunctionSourceElements,bV=p.parseCatchClause,bh=p.parseComputedMember,bx=p.parseConditionalExpression,bG=p.parseConstLetDeclaration,br=p.parseEqualityExpression,bz=p.parseExpression,bM=p.parseForVariableDeclaration,b$=p.parseFunctionDeclaration,b_=p.parseFunctionExpression,bc=p.parseGroupExpression,bk=p.parseLeftHandSideExpression,bj=p.parseLeftHandSideExpressionAllowCall,bv=p.parseLogicalANDExpression,bw=p.parseLogicalORExpression,bn=p.parseMultiplicativeExpression,bi=p.parseNewExpression,bf=p.parseNonComputedProperty,ba=p.parseObjectProperty,_=p.parseObjectPropertyKey,bd=p.parsePrimaryExpression,bl=p.parsePostfixExpression,cc=p.parseProgram,$=p.parsePropertyFunction,bq=p.parseRelationalExpression,bY=p.parseStatement,bp=p.parseShiftExpression,bS=p.parseSwitchCase,bm=p.parseUnaryExpression,bD=p.parseVariableDeclaration,bC=p.parseVariableIdentifier;typeof p.scanRegExp=="function"&&(L=p.advance,J=p.scanRegExp)}function ct(a){var b=a.length,c=[],d;for(d=0;d<b;++d)c[d]=a.charAt(d);return c}function cu(a,b){var c,d;d=String,typeof a!="string"&&!(a instanceof String)&&(a=d(a)),h=a,j=0,k=h.length>0?1:0,l=0,m=h.length,n=null,o={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1},p={},typeof b!="undefined"&&(p.range=typeof b.range=="boolean"&&b.range,p.loc=typeof b.loc=="boolean"&&b.loc,p.raw=typeof b.raw=="boolean"&&b.raw,typeof b.tokens=="boolean"&&b.tokens&&(p.tokens=[]),typeof b.comment=="boolean"&&b.comment&&(p.comments=[]),typeof b.tolerant=="boolean"&&b.tolerant&&(p.errors=[])),m>0&&typeof h[0]=="undefined"&&(a instanceof String&&(h=a.valueOf()),typeof h[0]=="undefined"&&(h=ct(a))),cr();try{c=cc(),typeof p.comments!="undefined"&&(cf(),c.comments=p.comments),typeof p.tokens!="undefined"&&(ci(),c.tokens=p.tokens),typeof p.errors!="undefined"&&(c.errors=p.errors);if(p.range||p.loc)c.body=cp(c.body)}catch(e){throw e}finally{cs(),p={}}return c}"use strict";var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;b={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8},c={},c[b.BooleanLiteral]="Boolean",c[b.EOF]="<end>",c[b.Identifier]="Identifier",c[b.Keyword]="Keyword",c[b.NullLiteral]="Null",c[b.NumericLiteral]="Numeric",c[b.Punctuator]="Punctuator",c[b.StringLiteral]="String",d={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},e={Data:1,Get:2,Set:4},f={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},g={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},typeof "esprima"[0]=="undefined"&&(r=function(a,b){return h.slice(a,b).join("")}),a.version="1.0.4",a.parse=cu,a.Syntax=function(){var a,b={};typeof Object.create=="function"&&(b=Object.create(null));for(a in d)d.hasOwnProperty(a)&&(b[a]=d[a]);return typeof Object.freeze=="function"&&Object.freeze(b),b}()}),function(){function f(a,b,c){if(!a.range)return;a.parent=b,a.source=function(){return c.slice(a.range[0],a.range[1]).join("")}}function g(a,d,e){function g(b){e[a.range[0]]=b;for(var c=a.range[0]+1;c<a.range[1];c++)e[c]=""}if(a.update&&typeof a.update=="object"){var f=a.update;c(b(f),function(a){g[a]=f[a]}),a.update=g}else a.update=g}var a=typeof module=="undefined"?window.esprima.parse:require("esprima").parse,b=Object.keys||function(a){var b=[];for(var c in a)b.push(c);return b},c=function(a,b){if(a.forEach)return a.forEach(b);for(var c=0;c<a.length;c++)b.call(a,a[c],c,a)},d=Array.isArray||function(a){return Object.prototype.toString.call(a)==="[object Array]"},e=function(e,h,i,j){typeof h=="function"&&(j=i,i=h,h={}),typeof e=="object"&&(h=e,e=h.source,delete h.source),e=e||h.source,h.range=!0,typeof e!="string"&&(e=String(e)),j||(j=function(){});var k=h.ast||a(e,h);delete h.ast;var l={chunks:e.split(""),toString:function(){return l.chunks.join("")},inspect:function(){return l.toString()}},m=0;return function n(a,e){f(a,e,l.chunks),j(a),g(a,e,l.chunks),c(b(a),function(b){if(b==="parent")return;var e=a[b];d(e)?c(e,function(b){b&&typeof b.type=="string"&&n(b,a)}):e&&typeof e.type=="string"&&(f(e,a,l.chunks),n(e,a))}),i(a)}(k,undefined),l};typeof module=="undefined"?window.falafel=e:module.exports=e}(),function(){var a,b,c;a=typeof module=="undefined"?window.esprima:require("esprima"),b=typeof module=="undefined"?window.falafel:require("free-falafel"),c=function(c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!c||/^\s*$/.test(c))return{json:null,errors:[{lineNumber:1,column:1,description:"An empty string is not valid Json",status:"crash"}]};c=c.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f]/g,function(a){return JSON.stringify(a).slice(1,-1)}),n="(function(){return "+c+"\n})();",j=[];try{d=a.parse(n,{range:!0,tolerant:!0,loc:!0,raw:!0,comment:!0})}catch(r){return r.status="crash",r.index>=n.length-7&&(r.lineNumber>=n.match(/\r\n?|\n/g).length+1&&r.lineNumber--,r.column=1,r.description="Invalid Json. Did you forget a close bracket?"),j.push(r),{errors:j,json:null}}k=/^(?:-?(?=[1-9]|0(?!\d))\d+(\.\d+)?([eE][+-]?\d+)?|true|false|null|"([^"\\]|(?:\\["\\\/bfnrt])|(?:\\u[\][0-9a-f]{4}))*")$/,f=/,(?=\s*[\]}]\s*$)/,h=function(a,b,c){j.push({lineNumber:a.loc.start.line,column:a.loc.start.column,description:c,status:b});if(a.loc.start.line===1)return j[j.length-1].column-=19},q=d.comments;for(o=0,p=q.length;o<p;o++)g=q[o],h(g,"correctable","Comments are not valid in Json");return m=null,e=function(a){var b;m===null&&(a.valid=!0),m===null&&a.type==="ReturnStatement"&&(m=a.argument);if(a.valid!=null)return;if(!a.parent.valid){a.valid=!1;return}switch(a.type){case"Literal":if(k.test(a.raw))return a.valid=!0;a.valid=!1;switch(a.raw[0]){case"'":h(a,"correctable","Json strings must use double quotes");break;case'"':h(a,"correctable","Invalid Json string");break;default:h(a,"correctable","Invalid Json number")}return a.correct=JSON.stringify(a.value);case"UnaryExpression":if(a.operator==="-"&&a.argument.type==="Literal")return a.valid=!0;break;case"ObjectExpression":return a.valid=!0,a.props={};case"ArrayExpression":return a.valid=!0;case"Property":a.valid=!0,b=a.key;if(b.type==="Identifier")return h(b,"correctable",'Keys must be double quoted in Json. Did you mean "'+b.name+'"?'),b.valid=!1,b.correct=JSON.stringify(b.name);if(b.type==="Literal"&&typeof b.value=="number")return h(b,"correctable",'Keys must be double quoted in Json. Did you mean "'+b.raw+'"?'),b.valid=!1,b.correct=JSON.stringify(b.raw);break;case"Identifier":return a.valid=!1,h(a,"guessable",'An identifier is not a valid Json element. Did you mean "'+a.name+'"?'),a.correct=JSON.stringify(a.name);case"CallExpression":return a.valid=!1,h(a,"fail","You can not make function calls in Json. Do you think I am a fool?");case"Line":case"Block":return a.valid=!1,a.correct="";default:return a.valid=!1,h(a,"fail",'A "'+a.type+'" is an invalid Json element.')}},i=function(a){var b;a.type==="Property"&&(b=a.key,a.parent.props[b.correct||b.raw]!=null?(a.valid=!1,a.correct="",h(a,"guessable","Duplicate key in Json object. The key "+(b.correct||b.raw)+" is already present.")):a.parent.props[b.correct||b.raw]=a),(a.type==="ObjectExpression"||a.type==="ArrayExpression")&&a.update(a.source().replace(f,""));if(a.valid)return;a.correct!=null?a.update(a.correct):a.update("null")},l=b(n,{ast:d},i,e).toString(),l=l.substring(19,l.length-6),l=JSON.stringify(JSON.parse(l)),{json:l,errors:j}},typeof module=="undefined"?window.durableJsonLint=c:module.exports=c}.call(this),function(){}.call(this)