Skip to content

Instantly share code, notes, and snippets.

@hail2u
Created March 3, 2012 04:45
Show Gist options
  • Save hail2u/1964415 to your computer and use it in GitHub Desktop.
Save hail2u/1964415 to your computer and use it in GitHub Desktop.
PhantomJS Scripts: My PhantomJS scripts.

PhantomJS Scripts

My PhantomJS scripts.

  • csslint
  • jshint
  • jslint
// ==ClosureCompiler==
// @code_url https://raw.github.com/stubbornella/csslint/master/release/csslint.js
// ==/ClosureCompiler==
/*jslint indent:2 */
/*global phantom, require, console, CSSLint */
(function (p) {
"use strict";
var fs = require("fs"),
a = p.args,
c = 0,
r,
l,
i,
e;
function outputHelp() {
console.log([
"CSSLint v" + CSSLint.version + " for PhantomJS",
" ",
"Usage:",
" phantomjs csslint-phantomjs.min.js cssfile"
].join("\n"));
}
if (a.length === 0 || a.length > 1) {
outputHelp();
p.exit(c);
}
if (!fs.isReadable(a)) {
c = 1;
outputHelp();
p.exit(c);
}
r = CSSLint.verify(fs.read(a));
l = r.messages.length;
if (l < 1) {
p.exit(c);
}
for (i = 0; i < l; i = i + 1) {
e = r.messages[i];
if (e.type === "error") {
c = 1;
}
if (e.rollup) {
e.line = 1;
e.col = 1;
}
console.log([a, e.line, e.col, e.message].join(":"));
}
p.exit(c);
}(phantom));
var CSSLint=function(){var A,D,B,x,y;function u(c,h){this.messages=[];this.stats=[];this.lines=c;this.ruleset=h}(function(){function c(){this._listeners={}}function h(d){this._input=d.replace(/\n\r?/g,"\n");this._col=this._line=1;this._cursor=0}function g(d,a,c){this.col=c;this.line=a;this.message=d}function a(d,a,c,e){this.col=c;this.line=a;this.text=d;this.type=e}function e(d,a){this._reader=d?new h(d.toString()):null;this._token=null;this._tokenData=a;this._lt=[];this._ltIndex=0;this._ltIndexCache=
[]}c.prototype={constructor:c,addListener:function(d,a){this._listeners[d]||(this._listeners[d]=[]);this._listeners[d].push(a)},fire:function(d){"string"==typeof d&&(d={type:d});"undefined"!=typeof d.target&&(d.target=this);if("undefined"==typeof d.type)throw Error("Event object missing 'type' property.");if(this._listeners[d.type])for(var a=this._listeners[d.type].concat(),c=0,e=a.length;c<e;c++)a[c].call(this,d)},removeListener:function(d,a){if(this._listeners[d])for(var c=this._listeners[d],e=
0,g=c.length;e<g;e++)if(c[e]===a){c.splice(e,1);break}}};h.prototype={constructor:h,getCol:function(){return this._col},getLine:function(){return this._line},eof:function(){return this._cursor==this._input.length},peek:function(d){var a=null;this._cursor<this._input.length&&(a=this._input.charAt(this._cursor+("undefined"==typeof d?1:d)-1));return a},read:function(){var d=null;this._cursor<this._input.length&&("\n"==this._input.charAt(this._cursor)?(this._line++,this._col=1):this._col++,d=this._input.charAt(this._cursor++));
return d},mark:function(){this._bookmark={cursor:this._cursor,line:this._line,col:this._col}},reset:function(){this._bookmark&&(this._cursor=this._bookmark.cursor,this._line=this._bookmark.line,this._col=this._bookmark.col,delete this._bookmark)},readTo:function(d){for(var a="",c;a.length<d.length||a.lastIndexOf(d)!=a.length-d.length;)if(c=this.read())a+=c;else throw Error('Expected "'+d+'" at line '+this._line+", col "+this._col+".");return a},readWhile:function(d){for(var a="",c=this.read();null!==
c&&d(c);)a+=c,c=this.read();return a},readMatch:function(d){var a=this._input.substring(this._cursor),c=null;"string"==typeof d?0===a.indexOf(d)&&(c=this.readCount(d.length)):d instanceof RegExp&&d.test(a)&&(c=this.readCount(RegExp.lastMatch.length));return c},readCount:function(d){for(var a="";d--;)a+=this.read();return a}};g.prototype=Error();a.fromToken=function(d){return new a(d.value,d.startLine,d.startCol)};a.prototype={constructor:a,valueOf:function(){return this.toString()},toString:function(){return this.text}};
e.createTokenData=function(d){var a=[],c={},d=d.concat([]),e=0,g=d.length+1;d.UNKNOWN=-1;for(d.unshift({name:"EOF"});e<g;e++)a.push(d[e].name),d[d[e].name]=e,d[e].text&&(c[d[e].text]=e);d.name=function(d){return a[d]};d.type=function(d){return c[d]};return d};e.prototype={constructor:e,match:function(d,a){d instanceof Array||(d=[d]);for(var c=this.get(a),e=0,g=d.length;e<g;)if(c==d[e++])return!0;this.unget();return!1},mustMatch:function(d,a){var c;d instanceof Array||(d=[d]);if(!this.match.apply(this,
arguments))throw c=this.LT(1),new g("Expected "+this._tokenData[d[0]].name+" at line "+c.startLine+", col "+c.startCol+".",c.startLine,c.startCol);},advance:function(a,c){for(;0!==this.LA(0)&&!this.match(a,c);)this.get();return this.LA(0)},get:function(a){var c=this._tokenData,e=0,g,h;if(this._lt.length&&0<=this._ltIndex&&this._ltIndex<this._lt.length){e++;this._token=this._lt[this._ltIndex++];for(h=c[this._token.type];void 0!==h.channel&&a!==h.channel&&this._ltIndex<this._lt.length;)this._token=
this._lt[this._ltIndex++],h=c[this._token.type],e++;if((void 0===h.channel||a===h.channel)&&this._ltIndex<=this._lt.length)return this._ltIndexCache.push(e),this._token.type}g=this._getToken();-1<g.type&&!c[g.type].hide&&(g.channel=c[g.type].channel,this._token=g,this._lt.push(g),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),5<this._lt.length&&this._lt.shift(),5<this._ltIndexCache.length&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length);return(h=c[g.type])&&(h.hide||void 0!==h.channel&&
a!==h.channel)?this.get(a):g.type},LA:function(a){var c=a,e;if(0<a){if(5<a)throw Error("Too much lookahead.");for(;c;)e=this.get(),c--;for(;c<a;)this.unget(),c++}else if(0>a)if(this._lt[this._ltIndex+a])e=this._lt[this._ltIndex+a].type;else throw Error("Too much lookbehind.");else e=this._token.type;return e},LT:function(a){this.LA(a);return this._lt[this._ltIndex+a-1]},peek:function(){return this.LA(1)},token:function(){return this._token},tokenName:function(a){return 0>a||a>this._tokenData.length?
"UNKNOWN_TOKEN":this._tokenData[a].name},tokenType:function(a){return this._tokenData[a]||-1},unget:function(){if(this._ltIndexCache.length)this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];else throw Error("Too much lookahead.");}};D=g;B=a;x=c;y=e})();(function(){function c(b,d,c){r.call(this,b,d,c,a.COMBINATOR_TYPE);this.type="unknown";/^\s+$/.test(b)?this.type="descendant":">"==b?this.type="child":"+"==b?this.type="adjacent-sibling":"~"==b&&(this.type="sibling")}function h(b,
d){r.call(this,"("+b+(null!==d?":"+d:"")+")",b.startLine,b.startCol,a.MEDIA_FEATURE_TYPE);this.name=b;this.value=d}function g(b,d,c,m,w){r.call(this,(b?b+" ":"")+(d?d+" ":"")+c.join(" and "),m,w,a.MEDIA_QUERY_TYPE);this.modifier=b;this.mediaType=d;this.features=c}function a(b){u.call(this);this.options=b||{};this._tokenStream=null}function e(b,d,c,m){r.call(this,b,c,m,a.PROPERTY_NAME_TYPE);this.hack=d}function d(b,d,c){r.call(this,b.join(" "),d,c,a.PROPERTY_VALUE_TYPE);this.parts=b}function k(b){this._i=
0;this._parts=b.parts;this._marks=[];this.value=b}function j(b,d,c){r.call(this,b,d,c,a.PROPERTY_VALUE_PART_TYPE);this.type="unknown";if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(b))switch(this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2,this.units.toLowerCase()){case "em":case "rem":case "ex":case "px":case "cm":case "mm":case "in":case "pt":case "pc":case "ch":this.type="length";break;case "deg":case "rad":case "grad":this.type="angle";break;case "ms":case "s":this.type="time";break;case "hz":case "khz":this.type=
"frequency";break;case "dpi":case "dpcm":this.type="resolution"}else/^([+\-]?[\d\.]+)%$/i.test(b)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(b)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(b)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(b)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(b)?(this.type="color",b=RegExp.$1,3==b.length?(this.red=parseInt(b.charAt(0)+b.charAt(0),16),this.green=parseInt(b.charAt(1)+
b.charAt(1),16),this.blue=parseInt(b.charAt(2)+b.charAt(2),16)):(this.red=parseInt(b.substring(0,2),16),this.green=parseInt(b.substring(2,4),16),this.blue=parseInt(b.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(b)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(b)?(this.type="color",this.red=255*+RegExp.$1/100,this.green=255*+RegExp.$2/100,this.blue=255*+RegExp.$3/100):/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\s*\)/i.test(b)?
(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3,this.alpha=+RegExp.$4):/^rgba\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(b)?(this.type="color",this.red=255*+RegExp.$1/100,this.green=255*+RegExp.$2/100,this.blue=255*+RegExp.$3/100,this.alpha=+RegExp.$4):/^hsl\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(b)?(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100):/^hsla\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(b)?
(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100,this.alpha=+RegExp.$4):/^url\(["']?([^\)"']+)["']?\)/i.test(b)?(this.type="uri",this.uri=RegExp.$1):/^([^\(]+)\(/i.test(b)?(this.type="function",this.name=RegExp.$1,this.value=b):/^["'][^"']*["']/.test(b)?(this.type="string",this.value=eval(b)):J[b.toLowerCase()]?(this.type="color",b=J[b.toLowerCase()].substring(1),this.red=parseInt(b.substring(0,2),16),this.green=parseInt(b.substring(2,4),16),this.blue=
parseInt(b.substring(4,6),16)):/^[\,\/]$/.test(b)?(this.type="operator",this.value=b):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(b)&&(this.type="identifier",this.value=b)}function l(b,d,c){r.call(this,b.join(" "),d,c,a.SELECTOR_TYPE);this.parts=b;this.specificity=v.calculate(this)}function p(b,d,c,m,w){r.call(this,c,m,w,a.SELECTOR_PART_TYPE);this.elementName=b;this.modifiers=d}function i(b,d,c,m){r.call(this,b,c,m,a.SELECTOR_SUB_PART_TYPE);this.type=d;this.args=[]}function v(b,a,d,m){this.a=
b;this.b=a;this.c=d;this.d=m}function G(b){return null!==b&&/\d/.test(b)}function E(b){return null!==b&&/\s/.test(b)}function K(b){return null!==b&&O.test(b)}function F(b){return null!==b&&/[a-z_\u0080-\uFFFF\\]/i.test(b)}function L(b){return null!==b&&(F(b)||/[0-9\-\\]/.test(b))}function C(b){M.call(this,b,f)}function s(b,a,d){this.col=d;this.line=a;this.message=b}var u=x,M=y,z=D,r=B,J={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",
bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",
darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",
ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",
mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",
papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",
violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};c.prototype=new r;c.prototype.constructor=c;h.prototype=new r;h.prototype.constructor=h;g.prototype=new r;g.prototype.constructor=g;a.DEFAULT_TYPE=0;a.COMBINATOR_TYPE=1;a.MEDIA_FEATURE_TYPE=2;a.MEDIA_QUERY_TYPE=3;a.PROPERTY_NAME_TYPE=4;a.PROPERTY_VALUE_TYPE=5;a.PROPERTY_VALUE_PART_TYPE=6;a.SELECTOR_TYPE=7;a.SELECTOR_PART_TYPE=8;a.SELECTOR_SUB_PART_TYPE=9;a.prototype=function(){var b=new u,
q,t={constructor:a,DEFAULT_TYPE:0,COMBINATOR_TYPE:1,MEDIA_FEATURE_TYPE:2,MEDIA_QUERY_TYPE:3,PROPERTY_NAME_TYPE:4,PROPERTY_VALUE_TYPE:5,PROPERTY_VALUE_PART_TYPE:6,SELECTOR_TYPE:7,SELECTOR_PART_TYPE:8,SELECTOR_SUB_PART_TYPE:9,_stylesheet:function(){var m=this._tokenStream,b,a,d;this.fire("startstylesheet");this._charset();for(this._skipCruft();m.peek()==f.IMPORT_SYM;)this._import(),this._skipCruft();for(;m.peek()==f.NAMESPACE_SYM;)this._namespace(),this._skipCruft();for(d=m.peek();d>f.EOF;){try{switch(d){case f.MEDIA_SYM:this._media();
this._skipCruft();break;case f.PAGE_SYM:this._page();this._skipCruft();break;case f.FONT_FACE_SYM:this._font_face();this._skipCruft();break;case f.KEYFRAMES_SYM:this._keyframes();this._skipCruft();break;case f.UNKNOWN_SYM:m.get();if(this.options.strict)throw new z("Unknown @ rule.",m.LT(0).startLine,m.LT(0).startCol);this.fire({type:"error",error:null,message:"Unknown @ rule: "+m.LT(0).value+".",line:m.LT(0).startLine,col:m.LT(0).startCol});for(b=0;m.advance([f.LBRACE,f.RBRACE])==f.LBRACE;)b++;for(;b;)m.advance([f.RBRACE]),
b--;break;case f.S:this._readWhitespace();break;default:if(!this._ruleset())switch(d){case f.CHARSET_SYM:throw a=m.LT(1),this._charset(!1),new z("@charset not allowed here.",a.startLine,a.startCol);case f.IMPORT_SYM:throw a=m.LT(1),this._import(!1),new z("@import not allowed here.",a.startLine,a.startCol);case f.NAMESPACE_SYM:throw a=m.LT(1),this._namespace(!1),new z("@namespace not allowed here.",a.startLine,a.startCol);default:m.get(),this._unexpectedToken(m.token())}}}catch(c){if(c instanceof z&&
!this.options.strict)this.fire({type:"error",error:c,message:c.message,line:c.line,col:c.col});else throw c;}d=m.peek()}d!=f.EOF&&this._unexpectedToken(m.token());this.fire("endstylesheet")},_charset:function(m){var b=this._tokenStream,a,d,c;b.match(f.CHARSET_SYM)&&(d=b.token().startLine,c=b.token().startCol,this._readWhitespace(),b.mustMatch(f.STRING),a=b.token(),a=a.value,this._readWhitespace(),b.mustMatch(f.SEMICOLON),!1!==m&&this.fire({type:"charset",charset:a,line:d,col:c}))},_import:function(m){var b=
this._tokenStream,a,d,c=[];b.mustMatch(f.IMPORT_SYM);d=b.token();this._readWhitespace();b.mustMatch([f.STRING,f.URI]);a=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1");this._readWhitespace();c=this._media_query_list();b.mustMatch(f.SEMICOLON);this._readWhitespace();!1!==m&&this.fire({type:"import",uri:a,media:c,line:d.startLine,col:d.startCol})},_namespace:function(m){var b=this._tokenStream,a,d,c,e;b.mustMatch(f.NAMESPACE_SYM);a=b.token().startLine;d=b.token().startCol;this._readWhitespace();
b.match(f.IDENT)&&(c=b.token().value,this._readWhitespace());b.mustMatch([f.STRING,f.URI]);e=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1");this._readWhitespace();b.mustMatch(f.SEMICOLON);this._readWhitespace();!1!==m&&this.fire({type:"namespace",prefix:c,uri:e,line:a,col:d})},_media:function(){var m=this._tokenStream,b,a,d;m.mustMatch(f.MEDIA_SYM);b=m.token().startLine;a=m.token().startCol;this._readWhitespace();d=this._media_query_list();m.mustMatch(f.LBRACE);this._readWhitespace();
for(this.fire({type:"startmedia",media:d,line:b,col:a});;)if(m.peek()==f.PAGE_SYM)this._page();else if(!this._ruleset())break;m.mustMatch(f.RBRACE);this._readWhitespace();this.fire({type:"endmedia",media:d,line:b,col:a})},_media_query_list:function(){var m=this._tokenStream,b=[];this._readWhitespace();for((m.peek()==f.IDENT||m.peek()==f.LPAREN)&&b.push(this._media_query());m.match(f.COMMA);)this._readWhitespace(),b.push(this._media_query());return b},_media_query:function(){var m=this._tokenStream,
b=null,a=null,d=null,c=[];m.match(f.IDENT)&&(a=m.token().value.toLowerCase(),"only"!=a&&"not"!=a?(m.unget(),a=null):d=m.token());this._readWhitespace();m.peek()==f.IDENT?(b=this._media_type(),null===d&&(d=m.token())):m.peek()==f.LPAREN&&(null===d&&(d=m.LT(1)),c.push(this._media_expression()));if(null===b&&0===c.length)return null;for(this._readWhitespace();m.match(f.IDENT);)"and"!=m.token().value.toLowerCase()&&this._unexpectedToken(m.token()),this._readWhitespace(),c.push(this._media_expression());
return new g(a,b,c,d.startLine,d.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var b=this._tokenStream,w=null,a,d=null;b.mustMatch(f.LPAREN);w=this._media_feature();this._readWhitespace();b.match(f.COLON)&&(this._readWhitespace(),a=b.LT(1),d=this._expression());b.mustMatch(f.RPAREN);this._readWhitespace();return new h(w,d?new r(d,a.startLine,a.startCol):null)},_media_feature:function(){var b=this._tokenStream;b.mustMatch(f.IDENT);return r.fromToken(b.token())},
_page:function(){var b=this._tokenStream,w,a,d=null,c=null;b.mustMatch(f.PAGE_SYM);w=b.token().startLine;a=b.token().startCol;this._readWhitespace();b.match(f.IDENT)&&(d=b.token().value,"auto"===d.toLowerCase()&&this._unexpectedToken(b.token()));b.peek()==f.COLON&&(c=this._pseudo_page());this._readWhitespace();this.fire({type:"startpage",id:d,pseudo:c,line:w,col:a});this._readDeclarations(!0,!0);this.fire({type:"endpage",id:d,pseudo:c,line:w,col:a})},_margin:function(){var b=this._tokenStream,a,d=
this._margin_sym();return d?(a=b.token().startLine,b=b.token().startCol,this.fire({type:"startpagemargin",margin:d,line:a,col:b}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:a,col:b}),!0):!1},_margin_sym:function(){var b=this._tokenStream;return b.match([f.TOPLEFTCORNER_SYM,f.TOPLEFT_SYM,f.TOPCENTER_SYM,f.TOPRIGHT_SYM,f.TOPRIGHTCORNER_SYM,f.BOTTOMLEFTCORNER_SYM,f.BOTTOMLEFT_SYM,f.BOTTOMCENTER_SYM,f.BOTTOMRIGHT_SYM,f.BOTTOMRIGHTCORNER_SYM,f.LEFTTOP_SYM,f.LEFTMIDDLE_SYM,
f.LEFTBOTTOM_SYM,f.RIGHTTOP_SYM,f.RIGHTMIDDLE_SYM,f.RIGHTBOTTOM_SYM])?r.fromToken(b.token()):null},_pseudo_page:function(){var b=this._tokenStream;b.mustMatch(f.COLON);b.mustMatch(f.IDENT);return b.token().value},_font_face:function(){var b=this._tokenStream,a;b.mustMatch(f.FONT_FACE_SYM);a=b.token().startLine;b=b.token().startCol;this._readWhitespace();this.fire({type:"startfontface",line:a,col:b});this._readDeclarations(!0);this.fire({type:"endfontface",line:a,col:b})},_operator:function(){var b=
this._tokenStream,a=null;b.match([f.SLASH,f.COMMA])&&(a=b.token(),this._readWhitespace());return a?j.fromToken(a):null},_combinator:function(){var b=this._tokenStream,a=null;b.match([f.PLUS,f.GREATER,f.TILDE])&&(b=b.token(),a=new c(b.value,b.startLine,b.startCol),this._readWhitespace());return a},_unary_operator:function(){var b=this._tokenStream;return b.match([f.MINUS,f.PLUS])?b.token().value:null},_property:function(){var b=this._tokenStream,a=null,d=null,c,q,g;b.peek()==f.STAR&&this.options.starHack&&
(b.get(),c=b.token(),d=c.value,q=c.startLine,g=c.startCol);b.match(f.IDENT)&&(c=b.token(),b=c.value,"_"==b.charAt(0)&&this.options.underscoreHack&&(d="_",b=b.substring(1)),a=new e(b,d,q||c.startLine,g||c.startCol),this._readWhitespace());return a},_ruleset:function(){var b=this._tokenStream,a;try{a=this._selectors_group()}catch(d){if(d instanceof z&&!this.options.strict){if(this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=b.advance([f.RBRACE]),b!=f.RBRACE)throw d;}else throw d;
return!0}a&&(this.fire({type:"startrule",selectors:a,line:a[0].line,col:a[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:a,line:a[0].line,col:a[0].col}));return a},_selectors_group:function(){var b=this._tokenStream,a=[],d;d=this._selector();if(null!==d)for(a.push(d);b.match(f.COMMA);)this._readWhitespace(),d=this._selector(),null!==d?a.push(d):this._unexpectedToken(b.LT(1));return a.length?a:null},_selector:function(){var b=this._tokenStream,a=[],d=null,f=null,e=null,d=this._simple_selector_sequence();
if(null===d)return null;a.push(d);do if(f=this._combinator(),null!==f)a.push(f),d=this._simple_selector_sequence(),null===d?this._unexpectedToken(this.LT(1)):a.push(d);else if(this._readWhitespace())e=new c(b.token().value,b.token().startLine,b.token().startCol),f=this._combinator(),d=this._simple_selector_sequence(),null===d?null!==f&&this._unexpectedToken(b.LT(1)):(null!==f?a.push(f):a.push(e),a.push(d));else break;while(1);return new l(a,a[0].line,a[0].col)},_simple_selector_sequence:function(){var b=
this._tokenStream,a=null,d=[],c="",e=[function(){return b.match(f.HASH)?new i(b.token().value,"id",b.token().startLine,b.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],q=0,g=e.length,t=null,h,l;h=b.LT(1).startLine;l=b.LT(1).startCol;(a=this._type_selector())||(a=this._universal());for(null!==a&&(c+=a);b.peek()!==f.S;){for(;q<g&&null===t;)t=e[q++].call(this);if(null===t){if(""===c)return null;break}else q=0,d.push(t),c+=t.toString(),t=null}return""!==c?new p(a,d,c,h,
l):null},_type_selector:function(){var b=this._tokenStream,a=this._namespace_prefix(),d=this._element_name();if(d)return a&&(d.text=a+d.text,d.col-=a.length),d;a&&(b.unget(),1<a.length&&b.unget());return null},_class:function(){var b=this._tokenStream;return b.match(f.DOT)?(b.mustMatch(f.IDENT),b=b.token(),new i("."+b.value,"class",b.startLine,b.startCol-1)):null},_element_name:function(){var b=this._tokenStream;return b.match(f.IDENT)?(b=b.token(),new i(b.value,"elementName",b.startLine,b.startCol)):
null},_namespace_prefix:function(){var b=this._tokenStream,a="";if(b.LA(1)===f.PIPE||b.LA(2)===f.PIPE)b.match([f.IDENT,f.STAR])&&(a+=b.token().value),b.mustMatch(f.PIPE),a+="|";return a.length?a:null},_universal:function(){var b=this._tokenStream,a="",d;(d=this._namespace_prefix())&&(a+=d);b.match(f.STAR)&&(a+="*");return a.length?a:null},_attrib:function(){var b=this._tokenStream,a=null,d,c;return b.match(f.LBRACKET)?(c=b.token(),a=c.value,a+=this._readWhitespace(),(d=this._namespace_prefix())&&
(a+=d),b.mustMatch(f.IDENT),a+=b.token().value,a+=this._readWhitespace(),b.match([f.PREFIXMATCH,f.SUFFIXMATCH,f.SUBSTRINGMATCH,f.EQUALS,f.INCLUDES,f.DASHMATCH])&&(a+=b.token().value,a+=this._readWhitespace(),b.mustMatch([f.IDENT,f.STRING]),a+=b.token().value,a+=this._readWhitespace()),b.mustMatch(f.RBRACKET),new i(a+"]","attribute",c.startLine,c.startCol)):null},_pseudo:function(){var b=this._tokenStream,a=null,d=":",c,e;b.match(f.COLON)&&(b.match(f.COLON)&&(d+=":"),b.match(f.IDENT)?(a=b.token().value,
c=b.token().startLine,e=b.token().startCol-d.length):b.peek()==f.FUNCTION&&(c=b.LT(1).startLine,e=b.LT(1).startCol-d.length,a=this._functional_pseudo()),a&&(a=new i(d+a,"pseudo",c,e)));return a},_functional_pseudo:function(){var b=this._tokenStream,a=null;b.match(f.FUNCTION)&&(a=b.token().value,a+=this._readWhitespace(),a+=this._expression(),b.mustMatch(f.RPAREN),a+=")");return a},_expression:function(){for(var b=this._tokenStream,a="";b.match([f.PLUS,f.MINUS,f.DIMENSION,f.NUMBER,f.STRING,f.IDENT,
f.LENGTH,f.FREQ,f.ANGLE,f.TIME,f.RESOLUTION]);)a+=b.token().value,a+=this._readWhitespace();return a.length?a:null},_negation:function(){var b=this._tokenStream,a,d,c="",e;a=null;b.match(f.NOT)&&(c=b.token().value,a=b.token().startLine,d=b.token().startCol,c+=this._readWhitespace(),e=this._negation_arg(),c=c+e+this._readWhitespace(),b.match(f.RPAREN),c+=b.token().value,a=new i(c,"not",a,d),a.args.push(e));return a},_negation_arg:function(){var b=this._tokenStream,a=[this._type_selector,this._universal,
function(){return b.match(f.HASH)?new i(b.token().value,"id",b.token().startLine,b.token().startCol):null},this._class,this._attrib,this._pseudo],d=null,c=0,e=a.length,q,g;q=b.LT(1).startLine;for(g=b.LT(1).startCol;c<e&&null===d;)d=a[c].call(this),c++;null===d&&this._unexpectedToken(b.LT(1));return"elementName"==d.type?new p(d,[],d.toString(),q,g):new p(null,[d],d.toString(),q,g)},_declaration:function(){var b=this._tokenStream,a=null,d=null,c=null,e=null,q="",a=this._property();if(null!==a){b.mustMatch(f.COLON);
this._readWhitespace();d=this._expr();(!d||0===d.length)&&this._unexpectedToken(b.LT(1));c=this._prio();q=a.toString();if(this.options.starHack&&"*"==a.hack||this.options.underscoreHack&&"_"==a.hack)q=a.text;try{this._validateProperty(q,d)}catch(g){e=g}this.fire({type:"property",property:a,value:d,important:c,line:a.line,col:a.col,invalid:e});return!0}return!1},_prio:function(){var b=this._tokenStream.match(f.IMPORTANT_SYM);this._readWhitespace();return b},_expr:function(){var b=[],a=null,a=null,
a=this._term();if(null!==a){b.push(a);do if((a=this._operator())&&b.push(a),a=this._term(),null===a)break;else b.push(a);while(1)}return 0<b.length?new d(b,b[0].line,b[0].col):null},_term:function(){var b=this._tokenStream,a=null,d=null,c,e,q,a=this._unary_operator();null!==a&&(e=b.token().startLine,q=b.token().startCol);b.peek()==f.IE_FUNCTION&&this.options.ieFilters?(d=this._ie_function(),null===a&&(e=b.token().startLine,q=b.token().startCol)):b.match([f.NUMBER,f.PERCENTAGE,f.LENGTH,f.ANGLE,f.TIME,
f.FREQ,f.STRING,f.IDENT,f.URI,f.UNICODE_RANGE])?(d=b.token().value,null===a&&(e=b.token().startLine,q=b.token().startCol),this._readWhitespace()):(c=this._hexcolor(),null===c?(null===a&&(e=b.LT(1).startLine,q=b.LT(1).startCol),null===d&&(d=b.LA(3)==f.EQUALS&&this.options.ieFilters?this._ie_function():this._function())):(d=c.value,null===a&&(e=c.startLine,q=c.startCol)));return null!==d?new j(null!==a?a+d:d,e,q):null},_function:function(){var b=this._tokenStream,a=null,d=null;if(b.match(f.FUNCTION)){a=
b.token().value;this._readWhitespace();d=this._expr();a+=d;if(this.options.ieFilters&&b.peek()==f.EQUALS){do{this._readWhitespace()&&(a+=b.token().value);b.LA(0)==f.COMMA&&(a+=b.token().value);b.match(f.IDENT);a+=b.token().value;b.match(f.EQUALS);a+=b.token().value;for(d=b.peek();d!=f.COMMA&&d!=f.S&&d!=f.RPAREN;)b.get(),a+=b.token().value,d=b.peek()}while(b.match([f.COMMA,f.S]))}b.match(f.RPAREN);a+=")";this._readWhitespace()}return a},_ie_function:function(){var b=this._tokenStream,a=null,d;if(b.match([f.IE_FUNCTION,
f.FUNCTION])){a=b.token().value;do{this._readWhitespace()&&(a+=b.token().value);b.LA(0)==f.COMMA&&(a+=b.token().value);b.match(f.IDENT);a+=b.token().value;b.match(f.EQUALS);a+=b.token().value;for(d=b.peek();d!=f.COMMA&&d!=f.S&&d!=f.RPAREN;)b.get(),a+=b.token().value,d=b.peek()}while(b.match([f.COMMA,f.S]));b.match(f.RPAREN);a+=")";this._readWhitespace()}return a},_hexcolor:function(){var b=this._tokenStream,a=null;if(b.match(f.HASH)){a=b.token();b=a.value;if(!/#[a-f0-9]{3,6}/i.test(b))throw new z("Expected a hex color but found '"+
b+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol);this._readWhitespace()}return a},_keyframes:function(){var b=this._tokenStream,a,d;b.mustMatch(f.KEYFRAMES_SYM);this._readWhitespace();d=this._keyframe_name();this._readWhitespace();b.mustMatch(f.LBRACE);this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col});this._readWhitespace();for(a=b.peek();a==f.IDENT||a==f.PERCENTAGE;)this._keyframe_rule(),this._readWhitespace(),a=b.peek();this.fire({type:"endkeyframes",name:d,
line:d.line,col:d.col});this._readWhitespace();b.mustMatch(f.RBRACE)},_keyframe_name:function(){var b=this._tokenStream;b.mustMatch([f.IDENT,f.STRING]);return r.fromToken(b.token())},_keyframe_rule:function(){var b=this._key_list();this.fire({type:"startkeyframerule",keys:b,line:b[0].line,col:b[0].col});this._readDeclarations(!0);this.fire({type:"endkeyframerule",keys:b,line:b[0].line,col:b[0].col})},_key_list:function(){var b=this._tokenStream,a=[];a.push(this._key());for(this._readWhitespace();b.match(f.COMMA);)this._readWhitespace(),
a.push(this._key()),this._readWhitespace();return a},_key:function(){var b=this._tokenStream,a;if(b.match(f.PERCENTAGE))return r.fromToken(b.token());if(b.match(f.IDENT)){a=b.token();if(/from|to/i.test(a.value))return r.fromToken(a);b.unget()}this._unexpectedToken(b.LT(1))},_skipCruft:function(){for(;this._tokenStream.match([f.S,f.CDO,f.CDC]););},_readDeclarations:function(b,a){var d=this._tokenStream;this._readWhitespace();b&&d.mustMatch(f.LBRACE);this._readWhitespace();try{for(;;){if(!(d.match(f.SEMICOLON)||
a&&this._margin()))if(this._declaration()){if(!d.match(f.SEMICOLON))break}else break;this._readWhitespace()}d.mustMatch(f.RBRACE);this._readWhitespace()}catch(c){if(c instanceof z&&!this.options.strict)if(this.fire({type:"error",error:c,message:c.message,line:c.line,col:c.col}),d=d.advance([f.SEMICOLON,f.RBRACE]),d==f.SEMICOLON)this._readDeclarations(!1,a);else{if(d!=f.RBRACE)throw c;}else throw c;}},_readWhitespace:function(){for(var b=this._tokenStream,a="";b.match(f.S);)a+=b.token().value;return a},
_unexpectedToken:function(b){throw new z("Unexpected token '"+b.value+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);},_verifyEnd:function(){this._tokenStream.LA(1)!=f.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},_validateProperty:function(b,a){N.validate(b,a)},parse:function(b){this._tokenStream=new C(b,f);this._stylesheet()},parseStyleSheet:function(b){return this.parse(b)},parseMediaQuery:function(b){this._tokenStream=new C(b,f);b=this._media_query();this._verifyEnd();
return b},parsePropertyValue:function(b){this._tokenStream=new C(b,f);this._readWhitespace();b=this._expr();this._readWhitespace();this._verifyEnd();return b},parseRule:function(b){this._tokenStream=new C(b,f);this._readWhitespace();b=this._ruleset();this._readWhitespace();this._verifyEnd();return b},parseSelector:function(b){this._tokenStream=new C(b,f);this._readWhitespace();b=this._selector();this._readWhitespace();this._verifyEnd();return b},parseStyleAttribute:function(b){this._tokenStream=new C(b+
"}",f);this._readDeclarations()}};for(q in t)t.hasOwnProperty(q)&&(b[q]=t[q]);return b}();var P={"alignment-adjust":"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | <percentage> | <length>","alignment-baseline":"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",animation:1,"animation-delay":{multi:"<time>",
comma:!0},"animation-direction":{multi:"normal | alternate",comma:!0},"animation-duration":{multi:"<time>",comma:!0},"animation-iteration-count":{multi:"<number> | infinite",comma:!0},"animation-name":{multi:"none | <ident>",comma:!0},"animation-play-state":{multi:"running | paused",comma:!0},"animation-timing-function":1,"-moz-animation-delay":{multi:"<time>",comma:!0},"-moz-animation-direction":{multi:"normal | alternate",comma:!0},"-moz-animation-duration":{multi:"<time>",comma:!0},"-moz-animation-iteration-count":{multi:"<number> | infinite",
comma:!0},"-moz-animation-name":{multi:"none | <ident>",comma:!0},"-moz-animation-play-state":{multi:"running | paused",comma:!0},"-ms-animation-delay":{multi:"<time>",comma:!0},"-ms-animation-direction":{multi:"normal | alternate",comma:!0},"-ms-animation-duration":{multi:"<time>",comma:!0},"-ms-animation-iteration-count":{multi:"<number> | infinite",comma:!0},"-ms-animation-name":{multi:"none | <ident>",comma:!0},"-ms-animation-play-state":{multi:"running | paused",comma:!0},"-webkit-animation-delay":{multi:"<time>",
comma:!0},"-webkit-animation-direction":{multi:"normal | alternate",comma:!0},"-webkit-animation-duration":{multi:"<time>",comma:!0},"-webkit-animation-iteration-count":{multi:"<number> | infinite",comma:!0},"-webkit-animation-name":{multi:"none | <ident>",comma:!0},"-webkit-animation-play-state":{multi:"running | paused",comma:!0},"-o-animation-delay":{multi:"<time>",comma:!0},"-o-animation-direction":{multi:"normal | alternate",comma:!0},"-o-animation-duration":{multi:"<time>",comma:!0},"-o-animation-iteration-count":{multi:"<number> | infinite",
comma:!0},"-o-animation-name":{multi:"none | <ident>",comma:!0},"-o-animation-play-state":{multi:"running | paused",comma:!0},appearance:"icon | window | desktop | workspace | document | tooltip | dialog | button | push-button | hyperlink | radio-button | checkbox | menu-item | tab | menu | menubar | pull-down-menu | pop-up-menu | list-menu | radio-group | checkbox-group | outline-tree | range | field | combo-box | signature | password | normal | inherit",azimuth:function(b){var a=!1,d=!1;if(!n.isAny(b,
"<angle> | leftwards | rightwards | inherit")&&(n.isAny(b,"behind")&&(d=a=!0),n.isAny(b,"left-side | far-left | left | center-left | center | center-right | right | far-right | right-side")))d=!0,a||n.isAny(b,"behind");if(b.hasNext()){b=b.next();if(d)throw new s("Expected end of value but found '"+b+"'.",b.line,b.col);throw new s("Expected (<'azimuth'>) but found '"+b+"'.",b.line,b.col);}},"backface-visibility":"visible | hidden",background:1,"background-attachment":{multi:"<attachment>",comma:!0},
"background-clip":{multi:"<box>",comma:!0},"background-color":"<color> | inherit","background-image":{multi:"<bg-image>",comma:!0},"background-origin":{multi:"<box>",comma:!0},"background-position":{multi:"<bg-position>",comma:!0},"background-repeat":{multi:"<repeat-style>"},"background-size":{multi:"<bg-size>",comma:!0},"baseline-shift":"baseline | sub | super | <percentage> | <length>",behavior:1,binding:1,bleed:"<length>","bookmark-label":"<content> | <attr> | <string>","bookmark-level":"none | <integer>",
"bookmark-state":"open | closed","bookmark-target":"none | <uri> | <attr>",border:"<border-width> || <border-style> || <color>","border-bottom":"<border-width> || <border-style> || <color>","border-bottom-color":"<color>","border-bottom-left-radius":"<x-one-radius>","border-bottom-right-radius":"<x-one-radius>","border-bottom-style":"<border-style>","border-bottom-width":"<border-width>","border-collapse":"collapse | separate | inherit","border-color":{multi:"<color> | inherit",max:4},"border-image":1,
"border-image-outset":{multi:"<length> | <number>",max:4},"border-image-repeat":{multi:"stretch | repeat | round",max:2},"border-image-slice":function(b){var a=!1,d=!1,c=0;n.isAny(b,"fill")&&(a=d=!0);for(;b.hasNext()&&4>c;){a=n.isAny(b,"<number> | <percentage>");if(!a)break;c++}d?a=!0:n.isAny(b,"fill");if(b.hasNext()){b=b.next();if(a)throw new s("Expected end of value but found '"+b+"'.",b.line,b.col);throw new s("Expected ([<number> | <percentage>]{1,4} && fill?) but found '"+b+"'.",b.line,b.col);
}},"border-image-source":"<image> | none","border-image-width":{multi:"<length> | <percentage> | <number> | auto",max:4},"border-left":"<border-width> || <border-style> || <color>","border-left-color":"<color> | inherit","border-left-style":"<border-style>","border-left-width":"<border-width>","border-radius":function(b){for(var a=!1,d=!1,c=0,f=8;b.hasNext()&&c<f;){a=n.isAny(b,"<length> | <percentage>");if(!a)if("/"==b.peek()&&1<c&&!d)d=!0,f=c+5,b.next();else break;c++}if(b.hasNext()){b=b.next();
if(a)throw new s("Expected end of value but found '"+b+"'.",b.line,b.col);throw new s("Expected (<'border-radius'>) but found '"+b+"'.",b.line,b.col);}},"border-right":"<border-width> || <border-style> || <color>","border-right-color":"<color> | inherit","border-right-style":"<border-style>","border-right-width":"<border-width>","border-spacing":{multi:"<length> | inherit",max:2},"border-style":{multi:"<border-style>",max:4},"border-top":"<border-width> || <border-style> || <color>","border-top-color":"<color> | inherit",
"border-top-left-radius":"<x-one-radius>","border-top-right-radius":"<x-one-radius>","border-top-style":"<border-style>","border-top-width":"<border-width>","border-width":{multi:"<border-width>",max:4},bottom:"<margin-width> | inherit","box-align":"start | end | center | baseline | stretch","box-decoration-break":"slice |clone","box-direction":"normal | reverse | inherit","box-flex":"<number>","box-flex-group":"<integer>","box-lines":"single | multiple","box-ordinal-group":"<integer>","box-orient":"horizontal | vertical | inline-axis | block-axis | inherit",
"box-pack":"start | end | center | justify","box-shadow":function(b){if(n.isAny(b,"none")){if(b.hasNext())throw b=b.next(),new s("Expected end of value but found '"+b+"'.",b.line,b.col);}else N.multiProperty("<shadow>",b,!0,Infinity)},"box-sizing":"content-box | border-box | inherit","break-after":"auto | always | avoid | left | right | page | column | avoid-page | avoid-column","break-before":"auto | always | avoid | left | right | page | column | avoid-page | avoid-column","break-inside":"auto | avoid | avoid-page | avoid-column",
"caption-side":"top | bottom | inherit",clear:"none | right | left | both | inherit",clip:1,color:"<color> | inherit","color-profile":1,"column-count":"<integer> | auto","column-fill":"auto | balance","column-gap":"<length> | normal","column-rule":"<border-width> || <border-style> || <color>","column-rule-color":"<color>","column-rule-style":"<border-style>","column-rule-width":"<border-width>","column-span":"none | all","column-width":"<length> | auto",columns:1,content:1,"counter-increment":1,"counter-reset":1,
crop:"<shape> | auto",cue:"cue-after | cue-before | inherit","cue-after":1,"cue-before":1,cursor:1,direction:"ltr | rtl | inherit",display:"inline | block | list-item | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | box | inline-box | grid | inline-grid | none | inherit","dominant-baseline":1,"drop-initial-after-adjust":"central | middle | after-edge | text-after-edge | ideographic | alphabetic | mathematical | <percentage> | <length>",
"drop-initial-after-align":"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical","drop-initial-before-adjust":"before-edge | text-before-edge | central | middle | hanging | mathematical | <percentage> | <length>","drop-initial-before-align":"caps-height | baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",
"drop-initial-size":"auto | line | <length> | <percentage>","drop-initial-value":"initial | <integer>",elevation:"<angle> | below | level | above | higher | lower | inherit","empty-cells":"show | hide | inherit",filter:1,fit:"fill | hidden | meet | slice","fit-position":1,"float":"left | right | none | inherit","float-offset":1,font:1,"font-family":1,"font-size":"<absolute-size> | <relative-size> | <length> | <percentage> | inherit","font-size-adjust":"<number> | none | inherit","font-stretch":"normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit",
"font-style":"normal | italic | oblique | inherit","font-variant":"normal | small-caps | inherit","font-weight":"normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit","grid-cell-stacking":"columns | rows | layer","grid-column":1,"grid-columns":1,"grid-column-align":"start | end | center | stretch","grid-column-sizing":1,"grid-column-span":"<integer>","grid-flow":"none | rows | columns","grid-layer":"<integer>","grid-row":1,"grid-rows":1,"grid-row-align":"start | end | center | stretch",
"grid-row-span":"<integer>","grid-row-sizing":1,"hanging-punctuation":1,height:"<margin-width> | inherit","hyphenate-after":"<integer> | auto","hyphenate-before":"<integer> | auto","hyphenate-character":"<string> | auto","hyphenate-lines":"no-limit | <integer>","hyphenate-resource":1,hyphens:"none | manual | auto",icon:1,"image-orientation":"angle | auto","image-rendering":1,"image-resolution":1,"inline-box-align":"initial | last | <integer>",left:"<margin-width> | inherit","letter-spacing":"<length> | normal | inherit",
"line-height":"<number> | <length> | <percentage> | normal | inherit","line-break":"auto | loose | normal | strict","line-stacking":1,"line-stacking-ruby":"exclude-ruby | include-ruby","line-stacking-shift":"consider-shifts | disregard-shifts","line-stacking-strategy":"inline-line-height | block-line-height | max-height | grid-height","list-style":1,"list-style-image":"<uri> | none | inherit","list-style-position":"inside | outside | inherit","list-style-type":"disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-latin | upper-latin | armenian | georgian | lower-alpha | upper-alpha | none | inherit",
margin:{multi:"<margin-width> | inherit",max:4},"margin-bottom":"<margin-width> | inherit","margin-left":"<margin-width> | inherit","margin-right":"<margin-width> | inherit","margin-top":"<margin-width> | inherit",mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":"<length> | <percentage> | none | inherit","max-width":"<length> | <percentage> | none | inherit","min-height":"<length> | <percentage> | inherit",
"min-width":"<length> | <percentage> | inherit","move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:"<number> | inherit",orphans:"<integer> | inherit",outline:1,"outline-color":"<color> | invert | inherit","outline-offset":1,"outline-style":"<border-style> | inherit","outline-width":"<border-width> | inherit",overflow:"visible | hidden | scroll | auto | inherit","overflow-style":1,"overflow-x":1,"overflow-y":1,padding:{multi:"<padding-width> | inherit",max:4},"padding-bottom":"<padding-width> | inherit",
"padding-left":"<padding-width> | inherit","padding-right":"<padding-width> | inherit","padding-top":"<padding-width> | inherit",page:1,"page-break-after":"auto | always | avoid | left | right | inherit","page-break-before":"auto | always | avoid | left | right | inherit","page-break-inside":"auto | avoid | inherit","page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:"static | relative | absolute | fixed | inherit",
"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:"<margin-width> | inherit",rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:"normal | none | spell-out | inherit","speak-header":"once | always | inherit","speak-numeral":"digits | continuous | inherit","speak-punctuation":"code | none | inherit","speech-rate":1,src:1,stress:1,"string-set":1,"table-layout":"auto | fixed | inherit",
"tab-size":"<integer> | <length>",target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":"left | right | center | justify | inherit","text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":"<length> | <percentage> | inherit","text-justify":"auto | none | inter-word | inter-ideograph | inter-cluster | distribute | kashida","text-outline":1,"text-overflow":1,"text-rendering":"auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit",
"text-shadow":1,"text-transform":"capitalize | uppercase | lowercase | none | inherit","text-wrap":"normal | none | avoid",top:"<margin-width> | inherit",transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":"normal | embed | bidi-override | inherit","user-modify":"read-only | read-write | write-only | inherit","user-select":"none | text | toggle | element | elements | all | inherit",
"vertical-align":"<percentage> | <length> | baseline | sub | super | top | text-top | middle | bottom | text-bottom | inherit",visibility:"visible | hidden | collapse | inherit","voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":"normal | pre | nowrap | pre-wrap | pre-line | inherit","white-space-collapse":1,widows:"<integer> | inherit",width:"<length> | <percentage> | auto | inherit",
"word-break":"normal | keep-all | break-all","word-spacing":"<length> | normal | inherit","word-wrap":1,"z-index":"<integer> | auto | inherit",zoom:"<number> | <percentage> | normal"};e.prototype=new r;e.prototype.constructor=e;e.prototype.toString=function(){return(this.hack?this.hack:"")+this.text};d.prototype=new r;d.prototype.constructor=d;k.prototype.count=function(){return this._parts.length};k.prototype.isFirst=function(){return 0===this._i};k.prototype.hasNext=function(){return this._i<this._parts.length};
k.prototype.mark=function(){this._marks.push(this._i)};k.prototype.peek=function(b){return this.hasNext()?this._parts[this._i+(b||0)]:null};k.prototype.next=function(){return this.hasNext()?this._parts[this._i++]:null};k.prototype.previous=function(){return 0<this._i?this._parts[--this._i]:null};k.prototype.restore=function(){this._marks.length&&(this._i=this._marks.pop())};j.prototype=new r;j.prototype.constructor=j;j.fromToken=function(b){return new j(b.value,b.startLine,b.startCol)};var H={":first-letter":1,
":first-line":1,":before":1,":after":1,ELEMENT:1,CLASS:2,isElement:function(b){return 0===b.indexOf("::")||H[b.toLowerCase()]==H.ELEMENT}};l.prototype=new r;l.prototype.constructor=l;p.prototype=new r;p.prototype.constructor=p;i.prototype=new r;i.prototype.constructor=i;v.prototype={constructor:v,compare:function(b){var a=["a","b","c","d"],d,c;d=0;for(c=a.length;d<c;d++){if(this[a[d]]<b[a[d]])return-1;if(this[a[d]]>b[a[d]])return 1}return 0},valueOf:function(){return 1E3*this.a+100*this.b+10*this.c+
this.d},toString:function(){return this.a+","+this.b+","+this.c+","+this.d}};v.calculate=function(b){function a(b){var d,c,f,m;d=b.elementName?b.elementName.text:"";var t;d&&"*"!=d.charAt(d.length-1)&&h++;d=0;for(f=b.modifiers.length;d<f;d++)switch(t=b.modifiers[d],t.type){case "class":case "attribute":g++;break;case "id":e++;break;case "pseudo":H.isElement(t.text)?h++:g++;break;case "not":c=0;for(m=t.args.length;c<m;c++)a(t.args[c])}}var d,c,f,e=0,g=0,h=0;d=0;for(c=b.parts.length;d<c;d++)f=b.parts[d],
f instanceof p&&a(f);return new v(0,e,g,h)};var I=/^[0-9a-fA-F]$/,O=/\n|\r\n|\r|\f/;C.prototype=function(b,a){for(var d in a)a.hasOwnProperty(d)&&(b[d]=a[d]);return b}(new M,{_getToken:function(){var b,a=this._reader,d=null,c=a.getLine(),e=a.getCol();for(b=a.read();b;){switch(b){case "/":d="*"==a.peek()?this.commentToken(b,c,e):this.charToken(b,c,e);break;case "|":case "~":case "^":case "$":case "*":d="="==a.peek()?this.comparisonToken(b,c,e):this.charToken(b,c,e);break;case '"':case "'":d=this.stringToken(b,
c,e);break;case "#":d=L(a.peek())?this.hashToken(b,c,e):this.charToken(b,c,e);break;case ".":d=G(a.peek())?this.numberToken(b,c,e):this.charToken(b,c,e);break;case "-":d="-"==a.peek()?this.htmlCommentEndToken(b,c,e):F(a.peek())?this.identOrFunctionToken(b,c,e):this.charToken(b,c,e);break;case "!":d=this.importantToken(b,c,e);break;case "@":d=this.atRuleToken(b,c,e);break;case ":":d=this.notToken(b,c,e);break;case "<":d=this.htmlCommentStartToken(b,c,e);break;case "U":case "u":if("+"==a.peek()){d=
this.unicodeRangeToken(b,c,e);break}default:d=G(b)?this.numberToken(b,c,e):E(b)?this.whitespaceToken(b,c,e):null!==b&&(F(b)||/\-\\/.test(b))?this.identOrFunctionToken(b,c,e):this.charToken(b,c,e)}break}!d&&null===b&&(d=this.createToken(f.EOF,null,c,e));return d},createToken:function(b,a,d,c,e){var f=this._reader,e=e||{};return{value:a,type:b,channel:e.channel,hide:e.hide||!1,startLine:d,startCol:c,endLine:f.getLine(),endCol:f.getCol()}},atRuleToken:function(b,a,d){var c=b,e=this._reader,g=f.CHAR;
e.mark();c=this.readName();c=b+c;g=f.type(c.toLowerCase());if(g==f.CHAR||g==f.UNKNOWN)1<c.length?g=f.UNKNOWN_SYM:(g=f.CHAR,c=b,e.reset());return this.createToken(g,c,a,d)},charToken:function(b,a,d){var c=f.type(b);-1==c&&(c=f.CHAR);return this.createToken(c,b,a,d)},commentToken:function(b,a,d){b=this.readComment(b);return this.createToken(f.COMMENT,b,a,d)},comparisonToken:function(b,a,d){b+=this._reader.read();return this.createToken(f.type(b)||f.CHAR,b,a,d)},hashToken:function(b,a,d){b=this.readName(b);
return this.createToken(f.HASH,b,a,d)},htmlCommentStartToken:function(b,a,d){var c=this._reader,e=b;c.mark();e+=c.readCount(3);if("<\!--"==e)return this.createToken(f.CDO,e,a,d);c.reset();return this.charToken(b,a,d)},htmlCommentEndToken:function(b,a,d){var c=this._reader,e=b;c.mark();e+=c.readCount(2);if("--\>"==e)return this.createToken(f.CDC,e,a,d);c.reset();return this.charToken(b,a,d)},identOrFunctionToken:function(b,a,d){var c=this._reader,b=this.readName(b),e=f.IDENT;"("==c.peek()?(b+=c.read(),
"url("==b.toLowerCase()?(e=f.URI,b=this.readURI(b),"url("==b.toLowerCase()&&(e=f.FUNCTION)):e=f.FUNCTION):":"==c.peek()&&"progid"==b.toLowerCase()&&(b+=c.readTo("("),e=f.IE_FUNCTION);return this.createToken(e,b,a,d)},importantToken:function(b,a,d){var c=this._reader,e=b,g=f.CHAR,h,l;c.mark();for(l=c.read();l;){if("/"==l)if("*"!=c.peek())break;else{if(h=this.readComment(l),""===h)break}else if(E(l))e+=l+this.readWhitespace();else{/i/i.test(l)&&(h=c.readCount(8),/mportant/i.test(h)&&(e+=l+h,g=f.IMPORTANT_SYM));
break}l=c.read()}return g==f.CHAR?(c.reset(),this.charToken(b,a,d)):this.createToken(g,e,a,d)},notToken:function(b,a,d){var c=this._reader,e=b;c.mark();e+=c.readCount(4);if(":not("==e.toLowerCase())return this.createToken(f.NOT,e,a,d);c.reset();return this.charToken(b,a,d)},numberToken:function(b,a,d){var c=this._reader,b=this.readNumber(b),e=f.NUMBER,g=c.peek();null!==g&&(F(g)||/\-\\/.test(g))?(c=this.readName(c.read()),b+=c,e=/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(c)?
f.LENGTH:/^deg|^rad$|^grad$/i.test(c)?f.ANGLE:/^ms$|^s$/i.test(c)?f.TIME:/^hz$|^khz$/i.test(c)?f.FREQ:/^dpi$|^dpcm$/i.test(c)?f.RESOLUTION:f.DIMENSION):"%"==g&&(b+=c.read(),e=f.PERCENTAGE);return this.createToken(e,b,a,d)},stringToken:function(b,a,d){for(var c=b,e=this._reader,g=b,h=f.STRING,l=e.read();l;){c+=l;if(l==b&&"\\"!=g)break;if(K(e.peek())&&"\\"!=l){h=f.INVALID;break}g=l;l=e.read()}null===l&&(h=f.INVALID);return this.createToken(h,c,a,d)},unicodeRangeToken:function(b,a,d){var c=this._reader,
e,g=f.CHAR;"+"==c.peek()&&(c.mark(),b+=c.read(),b+=this.readUnicodeRangePart(!0),2==b.length?c.reset():(g=f.UNICODE_RANGE,-1==b.indexOf("?")&&"-"==c.peek()&&(c.mark(),e=c.read(),e+=this.readUnicodeRangePart(!1),1==e.length?c.reset():b+=e)));return this.createToken(g,b,a,d)},whitespaceToken:function(b,a,d){b+=this.readWhitespace();return this.createToken(f.S,b,a,d)},readUnicodeRangePart:function(b){for(var a=this._reader,d="",c=a.peek();null!==c&&I.test(c)&&6>d.length;)a.read(),d+=c,c=a.peek();if(b)for(;"?"==
c&&6>d.length;)a.read(),d+=c,c=a.peek();return d},readWhitespace:function(){for(var b=this._reader,a="",d=b.peek();E(d);)b.read(),a+=d,d=b.peek();return a},readNumber:function(b){for(var a=this._reader,d=b,b="."==b,c=a.peek();c;){if(G(c))d+=a.read();else if("."==c)if(b)break;else b=!0,d+=a.read();else break;c=a.peek()}return d},readString:function(){for(var b=this._reader,a=b.read(),d=a,c=a,e=b.peek();e;){e=b.read();d+=e;if(e==a&&"\\"!=c)break;if(K(b.peek())&&"\\"!=e){d="";break}c=e;e=b.peek()}null===
e&&(d="");return d},readURI:function(b){var a=this._reader,d=b,c="",e=a.peek();for(a.mark();e&&E(e);)a.read(),e=a.peek();c="'"==e||'"'==e?this.readString():this.readURL();for(e=a.peek();e&&E(e);)a.read(),e=a.peek();""===c||")"!=e?(d=b,a.reset()):d+=c+a.read();return d},readURL:function(){for(var b=this._reader,a="",d=b.peek();/^[!#$%&\\*-~]$/.test(d);)a+=b.read(),d=b.peek();return a},readName:function(b){for(var a=this._reader,b=b||"",d=a.peek();;)if("\\"==d)b+=this.readEscape(a.read()),d=a.peek();
else if(d&&L(d))b+=a.read(),d=a.peek();else break;return b},readEscape:function(b){var a=this._reader,b=b||"",d=0,c=a.peek();if(null!==c&&I.test(c)){do b+=a.read(),c=a.peek();while(c&&null!==c&&I.test(c)&&6>++d)}3==b.length&&/\s/.test(c)||7==b.length||1==b.length?a.read():c="";return b+c},readComment:function(b){var a=this._reader,b=b||"",d=a.read();if("*"==d){for(;d;){b+=d;if(2<b.length&&"*"==d&&"/"==a.peek()){b+=a.read();break}d=a.read()}return b}return""}});var f=[{name:"CDO"},{name:"CDC"},{name:"S",
whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"UNKNOWN_SYM"},
{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes","@-ms-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},
{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},
{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},
{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var b=[],a={};f.UNKNOWN=-1;f.unshift({name:"EOF"});for(var d=0,c=f.length;d<c;d++)if(b.push(f[d].name),f[f[d].name]=d,f[d].text)if(f[d].text instanceof Array)for(var e=0;e<f[d].text.length;e++)a[f[d].text[e]]=d;else a[f[d].text]=d;f.name=function(a){return b[a]};f.type=function(b){return a[b]||-1}})();var N={validate:function(b,a){var d=b.toString().toLowerCase(),c=new k(a),e=P[d];if(e)"number"!=typeof e&&("string"==typeof e?-1<e.indexOf("||")?
this.groupProperty(e,c):this.singleProperty(e,c,1):e.multi?this.multiProperty(e.multi,c,e.comma,e.max||Infinity):"function"==typeof e&&e(c));else if(0!==d.indexOf("-"))throw new s("Unknown property '"+b+"'.",b.line,b.col);},singleProperty:function(b,a,d){for(var c=!1,e=a.value,f=0;a.hasNext()&&f<d;){c=n.isAny(a,b);if(!c)break;f++}if(c){if(a.hasNext())throw b=a.next(),new s("Expected end of value but found '"+b+"'.",b.line,b.col);}else{if(a.hasNext()&&!a.isFirst())throw b=a.peek(),new s("Expected end of value but found '"+
b+"'.",b.line,b.col);throw new s("Expected ("+b+") but found '"+e+"'.",e.line,e.col);}},multiProperty:function(b,a,d,c){for(var e=!1,f=a.value,g=0;a.hasNext()&&!e&&g<c;)if(n.isAny(a,b))if(g++,a.hasNext()){if(d)if(","==a.peek())a.next();else break}else e=!0;else break;if(e){if(a.hasNext())throw a=a.next(),new s("Expected end of value but found '"+a+"'.",a.line,a.col);}else{if(a.hasNext()&&!a.isFirst())throw a=a.peek(),new s("Expected end of value but found '"+a+"'.",a.line,a.col);a=a.previous();if(d&&
","==a)throw new s("Expected end of value but found '"+a+"'.",a.line,a.col);throw new s("Expected ("+b+") but found '"+f+"'.",f.line,f.col);}},groupProperty:function(b,a){for(var d=!1,c=a.value,e=b.split("||").length,f={count:0},g=!1,h;a.hasNext()&&!d;)if(h=n.isAnyOfGroup(a,b))if(f[h])break;else{if(f[h]=1,f.count++,g=!0,f.count==e||!a.hasNext())d=!0}else break;if(d){if(a.hasNext())throw d=a.next(),new s("Expected end of value but found '"+d+"'.",d.line,d.col);}else{if(g&&a.hasNext())throw d=a.peek(),
new s("Expected end of value but found '"+d+"'.",d.line,d.col);throw new s("Expected ("+b+") but found '"+c+"'.",c.line,c.col);}}};s.prototype=Error();var n={isLiteral:function(b,a){var d=b.text.toString().toLowerCase(),c=a.split(" | "),e,f,g=!1;e=0;for(f=c.length;e<f&&!g;e++)d==c[e].toLowerCase()&&(g=!0);return g},isSimple:function(b){return!!this.simple[b]},isComplex:function(b){return!!this.complex[b]},isAny:function(b,a){var d=a.split(" | "),c,e,f=!1;c=0;for(e=d.length;c<e&&!f&&b.hasNext();c++)f=
this.isType(b,d[c]);return f},isAnyOfGroup:function(b,a){var d=a.split(" || "),c,e,f=!1;c=0;for(e=d.length;c<e&&!f;c++)f=this.isType(b,d[c]);return f?d[c-1]:!1},isType:function(b,a){var d=b.peek(),c=!1;"<"!=a.charAt(0)?(c=this.isLiteral(d,a))&&b.next():this.simple[a]?(c=this.simple[a](d))&&b.next():c=this.complex[a](b);return c},simple:{"<absolute-size>":function(b){return n.isLiteral(b,"xx-small | x-small | small | medium | large | x-large | xx-large")},"<attachment>":function(b){return n.isLiteral(b,
"scroll | fixed | local")},"<attr>":function(b){return"function"==b.type&&"attr"==b.name},"<bg-image>":function(b){return this["<image>"](b)||this["<gradient>"](b)||"none"==b},"<gradient>":function(b){return"function"==b.type&&/^(?:\-(?:ms|moz|o|webkit)\-)?(?:repeating\-)?(?:radial\-|linear\-)?gradient/i.test(b)},"<box>":function(b){return n.isLiteral(b,"padding-box | border-box | content-box")},"<content>":function(b){return"function"==b.type&&"content"==b.name},"<relative-size>":function(b){return n.isLiteral(b,
"smaller | larger")},"<ident>":function(b){return"identifier"==b.type},"<length>":function(b){return"length"==b.type||"number"==b.type||"integer"==b.type||"0"==b},"<color>":function(b){return"color"==b.type||"transparent"==b},"<number>":function(b){return"number"==b.type||this["<integer>"](b)},"<integer>":function(b){return"integer"==b.type},"<line>":function(b){return"integer"==b.type},"<angle>":function(b){return"angle"==b.type},"<uri>":function(b){return"uri"==b.type},"<image>":function(b){return this["<uri>"](b)},
"<percentage>":function(b){return"percentage"==b.type||"0"==b},"<border-width>":function(b){return this["<length>"](b)||n.isLiteral(b,"thin | medium | thick")},"<border-style>":function(b){return n.isLiteral(b,"none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset")},"<margin-width>":function(b){return this["<length>"](b)||this["<percentage>"](b)||n.isLiteral(b,"auto")},"<padding-width>":function(b){return this["<length>"](b)||this["<percentage>"](b)},"<shape>":function(b){return"function"==
b.type&&("rect"==b.name||"inset-rect"==b.name)},"<time>":function(b){return"time"==b.type}},complex:{"<bg-position>":function(b){var a=!1;n.isAny(b,"top | bottom")?a=!0:n.isAny(b,"<percentage> | <length>")?b.hasNext()&&(a=n.isAny(b,"<percentage> | <length> | top | center | bottom")):n.isAny(b,"left | center | right")&&b.hasNext()&&(n.isAny(b,"top | center | bottom")?(a=!0,n.isAny(b,"<percentage> | <length>")):n.isAny(b,"<percentage> | <length>")&&(n.isAny(b,"top | center | bottom")&&n.isAny(b,"<percentage> | <length>"),
a=!0));return a},"<bg-size>":function(b){var a=!1;n.isAny(b,"cover | contain")?a=!0:n.isAny(b,"<percentage> | <length> | auto")&&(a=!0,n.isAny(b,"<percentage> | <length> | auto"));return a},"<repeat-style>":function(b){var a=!1,d;b.hasNext()&&(d=b.next(),n.isLiteral(d,"repeat-x | repeat-y")?a=!0:n.isLiteral(d,"repeat | space | round | no-repeat")&&(a=!0,b.hasNext()&&n.isLiteral(b.peek(),"repeat | space | round | no-repeat")&&b.next()));return a},"<shadow>":function(b){var a=!1,d=0,c=!1,e=!1;if(b.hasNext()){n.isAny(b,
"inset")&&(c=!0);for(n.isAny(b,"<color>")&&(e=!0);n.isAny(b,"<length>")&&4>d;)d++;b.hasNext()&&(e||n.isAny(b,"<color>"),c||n.isAny(b,"inset"));a=2<=d&&4>=d}return a},"<x-one-radius>":function(b){var a=!1;n.isAny(b,"<length> | <percentage>")&&(a=!0,n.isAny(b,"<length> | <percentage>"));return a}}};A=a})();var i=function(){var c=[],h=[],g=new x;g.version="0.9.8";g.addRule=function(a){c.push(a);c[a.id]=a};g.clearRules=function(){c=[]};g.getRules=function(){return[].concat(c).sort(function(a,c){return a.id>
c.id?1:0})};g.addFormatter=function(a){h[a.id]=a};g.getFormatter=function(a){return h[a]};g.format=function(a,c,d,g){var d=this.getFormatter(d),h=null;d&&(h=d.startFormat(),h+=d.formatResults(a,c,g||{}),h+=d.endFormat());return h};g.hasFormat=function(a){return h.hasOwnProperty(a)};g.verify=function(a,e){var d=0,g=c.length,h,l=new A({starHack:!0,ieFilters:!0,underscoreHack:!0,strict:!1});h=a.replace(/\n\r?/g,"$split$").split("$split$");if(!e)for(e={};d<g;)e[c[d++].id]=1;g=new u(h,e);e.errors=2;for(d in e)e.hasOwnProperty(d)&&
c[d]&&c[d].init(l,g);try{l.parse(a)}catch(p){g.error("Fatal error, cannot continue: "+p.message,p.line,p.col,{})}d={messages:g.messages,stats:g.stats};d.messages.sort(function(a,d){return a.rollup&&!d.rollup?1:!a.rollup&&d.rollup?-1:a.line-d.line});return d};return g}();u.prototype={constructor:u,error:function(c,h,g,a){this.messages.push({type:"error",line:h,col:g,message:c,evidence:this.lines[h-1],rule:a||{}})},warn:function(c,h,g,a){this.report(c,h,g,a)},report:function(c,h,g,a){this.messages.push({type:2==
this.ruleset[a.id]?"error":"warning",line:h,col:g,message:c,evidence:this.lines[h-1],rule:a})},info:function(c,h,g,a){this.messages.push({type:"info",line:h,col:g,message:c,evidence:this.lines[h-1],rule:a})},rollupError:function(c,h){this.messages.push({type:"error",rollup:!0,message:c,rule:h})},rollupWarn:function(c,h){this.messages.push({type:"warning",rollup:!0,message:c,rule:h})},stat:function(c,h){this.stats[c]=h}};i._Reporter=u;i.Util={mix:function(c,h){for(var g in h)h.hasOwnProperty(g)&&(c[g]=
h[g]);return g},indexOf:function(c,h){if(c.indexOf)return c.indexOf(h);for(var g=0,a=c.length;g<a;g++)if(c[g]===h)return g;return-1},forEach:function(c,h){if(c.forEach)return c.forEach(h);for(var g=0,a=c.length;g<a;g++)h(c[g],g,c)}};i.addRule({id:"adjoining-classes",name:"Disallow adjoining classes",desc:"Don't use adjoining classes.",browsers:"IE6",init:function(c,h){var g=this;c.addListener("startrule",function(a){var a=a.selectors,e,d,k,j,l,p,i;for(l=0;l<a.length;l++){e=a[l];for(p=0;p<e.parts.length;p++)if(d=
e.parts[p],d.type==c.SELECTOR_PART_TYPE)for(i=j=0;i<d.modifiers.length;i++)k=d.modifiers[i],"class"==k.type&&j++,1<j&&h.report("Don't use adjoining classes.",d.line,d.col,g)}})}});i.addRule({id:"box-model",name:"Beware of broken box size",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(c,h){function g(){j={}}function a(){var a;if(j.height)for(a in k)k.hasOwnProperty(a)&&j[a]&&("padding"==a&&2===j[a].value.parts.length&&0===j[a].value.parts[0].value||h.report("Using height with "+
a+" can sometimes make elements larger than you expect.",j[a].line,j[a].col,e));if(j.width)for(a in d)d.hasOwnProperty(a)&&j[a]&&("padding"==a&&2===j[a].value.parts.length&&0===j[a].value.parts[1].value||h.report("Using width with "+a+" can sometimes make elements larger than you expect.",j[a].line,j[a].col,e))}var e=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},k={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},
j;c.addListener("startrule",g);c.addListener("startfontface",g);c.addListener("startpage",g);c.addListener("startpagemargin",g);c.addListener("startkeyframerule",g);c.addListener("property",function(a){var c=a.property.text.toLowerCase();if(k[c]||d[c])!/^0\S*$/.test(a.value)&&!("border"==c&&"none"==a.value)&&(j[c]={line:a.property.line,col:a.property.col,value:a.value});else if("width"==c||"height"==c)j[c]=1});c.addListener("endrule",a);c.addListener("endfontface",a);c.addListener("endpage",a);c.addListener("endpagemargin",
a);c.addListener("endkeyframerule",a)}});i.addRule({id:"box-sizing",name:"Disallow use of box-sizing",desc:"The box-sizing properties isn't supported in IE6 and IE7.",browsers:"IE6, IE7",tags:["Compatibility"],init:function(c,h){var g=this;c.addListener("property",function(a){"box-sizing"==a.property.text.toLowerCase()&&h.report("The box-sizing property isn't supported in IE6 and IE7.",a.line,a.col,g)})}});i.addRule({id:"compatible-vendor-prefixes",name:"Require compatible vendor prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",
browsers:"All",init:function(c,h){var g=this,a,e,d,k,j,l,p,o=Array.prototype.push,v=[];a={animation:"webkit moz ms","animation-delay":"webkit moz ms","animation-direction":"webkit moz ms","animation-duration":"webkit moz ms","animation-fill-mode":"webkit moz ms","animation-iteration-count":"webkit moz ms","animation-name":"webkit moz ms","animation-play-state":"webkit moz ms","animation-timing-function":"webkit moz ms",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz",
"border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz",
"column-count":"webkit moz ms","column-gap":"webkit moz ms","column-rule":"webkit moz ms","column-rule-color":"webkit moz ms","column-rule-style":"webkit moz ms","column-rule-width":"webkit moz ms","column-width":"webkit moz ms",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o",
"transform-origin":"webkit moz ms o",transition:"webkit moz o ms","transition-delay":"webkit moz o ms","transition-duration":"webkit moz o ms","transition-property":"webkit moz o ms","transition-timing-function":"webkit moz o ms","user-modify":"webkit moz","user-select":"webkit moz ms","word-break":"epub ms","writing-mode":"epub ms"};for(d in a)if(a.hasOwnProperty(d)){k=[];j=a[d].split(" ");l=0;for(p=j.length;l<p;l++)k.push("-"+j[l]+"-"+d);a[d]=k;o.apply(v,k)}c.addListener("startrule",function(){e=
[]});c.addListener("property",function(a){a=a.property;-1<i.Util.indexOf(v,a.text)&&e.push(a)});c.addListener("endrule",function(){if(e.length){var d={},c,l,k,j,p,o,v,u;c=0;for(l=e.length;c<l;c++)for(j in k=e[c],a)a.hasOwnProperty(j)&&(p=a[j],-1<i.Util.indexOf(p,k.text)&&(d[j]||(d[j]={full:p.slice(0),actual:[],actualNodes:[]}),-1===i.Util.indexOf(d[j].actual,k.text)&&(d[j].actual.push(k.text),d[j].actualNodes.push(k))));for(j in d)if(d.hasOwnProperty(j)&&(k=d[j],p=k.full,o=k.actual,p.length>o.length)){c=
0;for(l=p.length;c<l;c++)v=p[c],-1===i.Util.indexOf(o,v)&&(u=1===o.length?o[0]:2==o.length?o.join(" and "):o.join(", "),h.report("The property "+v+" is compatible with "+u+" and should be included as well.",k.actualNodes[0].line,k.actualNodes[0].col,g))}}})}});i.addRule({id:"display-property-grouping",name:"Require properties appropriate for display",desc:"Certain properties shouldn't be used with certain display property values.",browsers:"All",init:function(c,h){function g(a,c,e){if(j[a]&&("string"!=
typeof k[a]||j[a].value.toLowerCase()!=k[a]))h.report(e||a+" can't be used with display: "+c+".",j[a].line,j[a].col,d)}function a(){j={}}function e(){var a=j.display?j.display.value:null;if(a)switch(a){case "inline":g("height",a);g("width",a);g("margin",a);g("margin-top",a);g("margin-bottom",a);g("float",a,"display:inline has no effect on floated elements (but may be used to fix the IE6 double-margin bug).");break;case "block":g("vertical-align",a);break;case "inline-block":g("float",a);break;default:0===
a.indexOf("table-")&&(g("margin",a),g("margin-left",a),g("margin-right",a),g("margin-top",a),g("margin-bottom",a),g("float",a))}}var d=this,k={display:1,"float":"none",height:1,width:1,margin:1,"margin-left":1,"margin-right":1,"margin-bottom":1,"margin-top":1,padding:1,"padding-left":1,"padding-right":1,"padding-bottom":1,"padding-top":1,"vertical-align":1},j;c.addListener("startrule",a);c.addListener("startfontface",a);c.addListener("startkeyframerule",a);c.addListener("startpagemargin",a);c.addListener("startpage",
a);c.addListener("property",function(a){var d=a.property.text.toLowerCase();k[d]&&(j[d]={value:a.value.text,line:a.property.line,col:a.property.col})});c.addListener("endrule",e);c.addListener("endfontface",e);c.addListener("endkeyframerule",e);c.addListener("endpagemargin",e);c.addListener("endpage",e)}});i.addRule({id:"duplicate-background-images",name:"Disallow duplicate background images",desc:"Every background-image should be unique. Use a common class for e.g. sprites.",browsers:"All",init:function(c,
h){var g=this,a={};c.addListener("property",function(c){var d=c.value,k,j;if(c.property.text.match(/background/i)){k=0;for(j=d.parts.length;k<j;k++)"uri"==d.parts[k].type&&("undefined"===typeof a[d.parts[k].uri]?a[d.parts[k].uri]=c:h.report("Background image '"+d.parts[k].uri+"' was used multiple times, first declared at line "+a[d.parts[k].uri].line+", col "+a[d.parts[k].uri].col+".",c.line,c.col,g))}})}});i.addRule({id:"duplicate-properties",name:"Disallow duplicate properties",desc:"Duplicate properties must appear one after the other.",
browsers:"All",init:function(c,h){function g(){e={}}var a=this,e,d;c.addListener("startrule",g);c.addListener("startfontface",g);c.addListener("startpage",g);c.addListener("startpagemargin",g);c.addListener("startkeyframerule",g);c.addListener("property",function(c){var g=c.property.text.toLowerCase();e[g]&&(d!=g||e[g]==c.value.text)&&h.report("Duplicate property '"+c.property+"' found.",c.line,c.col,a);e[g]=c.value.text;d=g})}});i.addRule({id:"empty-rules",name:"Disallow empty rules",desc:"Rules without any properties specified should be removed.",
browsers:"All",init:function(c,h){var g=this,a=0;c.addListener("startrule",function(){a=0});c.addListener("property",function(){a++});c.addListener("endrule",function(c){c=c.selectors;0===a&&h.report("Rule is empty.",c[0].line,c[0].col,g)})}});i.addRule({id:"errors",name:"Parsing Errors",desc:"This rule looks for recoverable syntax errors.",browsers:"All",init:function(c,h){var g=this;c.addListener("error",function(a){h.error(a.message,a.line,a.col,g)})}});i.addRule({id:"fallback-colors",name:"Require fallback colors",
desc:"For older browsers that don't support RGBA, HSL, or HSLA, provide a fallback color.",browsers:"IE6,IE7,IE8",init:function(c,h){function g(){e=null}var a=this,e,d={color:1,background:1,"background-color":1};c.addListener("startrule",g);c.addListener("startfontface",g);c.addListener("startpage",g);c.addListener("startpagemargin",g);c.addListener("startkeyframerule",g);c.addListener("property",function(c){var g=c.property.text.toLowerCase(),l=c.value.parts,i=0,o="",v=l.length;if(d[g])for(;i<v;)"color"==
l[i].type&&("alpha"in l[i]||"hue"in l[i]?(/([^\)]+)\(/.test(l[i])&&(o=RegExp.$1.toUpperCase()),(!e||e.property.text.toLowerCase()!=g||"compat"!=e.colorType)&&h.report("Fallback "+g+" (hex or RGB) should precede "+o+" "+g+".",c.line,c.col,a)):c.colorType="compat"),i++;e=c})}});i.addRule({id:"floats",name:"Disallow too many floats",desc:"This rule tests if the float property is used too many times",browsers:"All",init:function(c,h){var g=this,a=0;c.addListener("property",function(c){"float"==c.property.text.toLowerCase()&&
"none"!=c.value.text.toLowerCase()&&a++});c.addListener("endstylesheet",function(){h.stat("floats",a);10<=a&&h.rollupWarn("Too many floats ("+a+"), you're probably using them for layout. Consider using a grid system instead.",g)})}});i.addRule({id:"font-faces",name:"Don't use too many web fonts",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(c,h){var g=this,a=0;c.addListener("startfontface",function(){a++});c.addListener("endstylesheet",function(){5<a&&h.rollupWarn("Too many @font-face declarations ("+
a+").",g)})}});i.addRule({id:"font-sizes",name:"Disallow too many font sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(c,h){var g=this,a=0;c.addListener("property",function(c){"font-size"==c.property&&a++});c.addListener("endstylesheet",function(){h.stat("font-sizes",a);10<=a&&h.rollupWarn("Too many font-size declarations ("+a+"), abstraction needed.",g)})}});i.addRule({id:"gradients",name:"Require all gradient definitions",desc:"When using a vendor-prefixed gradient, make sure to use them all.",
browsers:"All",init:function(c,h){var g=this,a;c.addListener("startrule",function(){a={moz:0,webkit:0,oldWebkit:0,ms:0,o:0}});c.addListener("property",function(c){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/i.test(c.value)?a[RegExp.$1]=1:/\-webkit\-gradient/i.test(c.value)&&(a.oldWebkit=1)});c.addListener("endrule",function(c){var d=[];a.moz||d.push("Firefox 3.6+");a.webkit||d.push("Webkit (Safari 5+, Chrome)");a.oldWebkit||d.push("Old Webkit (Safari 4+, Chrome)");a.ms||d.push("Internet Explorer 10+");
a.o||d.push("Opera 11.1+");d.length&&5>d.length&&h.report("Missing vendor-prefixed CSS gradients for "+d.join(", ")+".",c.selectors[0].line,c.selectors[0].col,g)})}});i.addRule({id:"ids",name:"Disallow IDs in selectors",desc:"Selectors should not contain IDs.",browsers:"All",init:function(c,h){var g=this;c.addListener("startrule",function(a){var a=a.selectors,e,d,k,j,l,i,o;for(l=0;l<a.length;l++){e=a[l];for(i=j=0;i<e.parts.length;i++)if(d=e.parts[i],d.type==c.SELECTOR_PART_TYPE)for(o=0;o<d.modifiers.length;o++)k=
d.modifiers[o],"id"==k.type&&j++;1==j?h.report("Don't use IDs in selectors.",e.line,e.col,g):1<j&&h.report(j+" IDs in the selector, really?",e.line,e.col,g)}})}});i.addRule({id:"import",name:"Disallow @import",desc:"Don't use @import, use <link> instead.",browsers:"All",init:function(c,h){var g=this;c.addListener("import",function(a){h.report("@import prevents parallel downloads, use <link> instead.",a.line,a.col,g)})}});i.addRule({id:"important",name:"Disallow !important",desc:"Be careful when using !important declaration",
browsers:"All",init:function(c,h){var g=this,a=0;c.addListener("property",function(c){!0===c.important&&(a++,h.report("Use of !important",c.line,c.col,g))});c.addListener("endstylesheet",function(){h.stat("important",a);10<=a&&h.rollupWarn("Too many !important declarations ("+a+"), try to use less than 10 to avoid specificity issues.",g)})}});i.addRule({id:"known-properties",name:"Require use of known properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",
browsers:"All",init:function(c,h){var g=this;c.addListener("property",function(a){a.property.text.toLowerCase();a.invalid&&h.report(a.invalid.message,a.line,a.col,g)})}});i.addRule({id:"outline-none",name:"Disallow outline: none",desc:"Use of outline: none or outline: 0 should be limited to :focus rules.",browsers:"All",tags:["Accessibility"],init:function(c,h){function g(a){d=a.selectors?{line:a.line,col:a.col,selectors:a.selectors,propCount:0,outline:!1}:null}function a(){d&&d.outline&&(-1==d.selectors.toString().toLowerCase().indexOf(":focus")?
h.report("Outlines should only be modified using :focus.",d.line,d.col,e):1==d.propCount&&h.report("Outlines shouldn't be hidden unless other visual changes are made.",d.line,d.col,e))}var e=this,d;c.addListener("startrule",g);c.addListener("startfontface",g);c.addListener("startpage",g);c.addListener("startpagemargin",g);c.addListener("startkeyframerule",g);c.addListener("property",function(a){var c=a.property.text.toLowerCase(),a=a.value;if(d&&(d.propCount++,"outline"==c&&("none"==a||"0"==a)))d.outline=
!0});c.addListener("endrule",a);c.addListener("endfontface",a);c.addListener("endpage",a);c.addListener("endpagemargin",a);c.addListener("endkeyframerule",a)}});i.addRule({id:"overqualified-elements",name:"Disallow overqualified elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(c,h){var g=this,a={};c.addListener("startrule",function(e){var e=e.selectors,d,k,j,l,i,o;for(l=0;l<e.length;l++){d=e[l];for(i=0;i<d.parts.length;i++)if(k=d.parts[i],k.type==
c.SELECTOR_PART_TYPE)for(o=0;o<k.modifiers.length;o++)j=k.modifiers[o],k.elementName&&"id"==j.type?h.report("Element ("+k+") is overqualified, just use "+j+" without element name.",k.line,k.col,g):"class"==j.type&&(a[j]||(a[j]=[]),a[j].push({modifier:j,part:k}))}});c.addListener("endstylesheet",function(){for(var c in a)a.hasOwnProperty(c)&&1==a[c].length&&a[c][0].part.elementName&&h.report("Element ("+a[c][0].part+") is overqualified, just use "+a[c][0].modifier+" without element name.",a[c][0].part.line,
a[c][0].part.col,g)})}});i.addRule({id:"qualified-headings",name:"Disallow qualified headings",desc:"Headings should not be qualified (namespaced).",browsers:"All",init:function(c,h){var g=this;c.addListener("startrule",function(a){var a=a.selectors,e,d,k,j;for(k=0;k<a.length;k++){e=a[k];for(j=0;j<e.parts.length;j++)d=e.parts[j],d.type==c.SELECTOR_PART_TYPE&&d.elementName&&(/h[1-6]/.test(d.elementName.toString())&&0<j)&&h.report("Heading ("+d.elementName+") should not be qualified.",d.line,d.col,
g)}})}});i.addRule({id:"regex-selectors",name:"Disallow selectors that look like regexs",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(c,h){var g=this;c.addListener("startrule",function(a){var a=a.selectors,e,d,k,j,l,i;for(j=0;j<a.length;j++){e=a[j];for(l=0;l<e.parts.length;l++)if(d=e.parts[l],d.type==c.SELECTOR_PART_TYPE)for(i=0;i<d.modifiers.length;i++)k=d.modifiers[i],"attribute"==k.type&&/([\~\|\^\$\*]=)/.test(k)&&h.report("Attribute selectors with "+
RegExp.$1+" are slow!",k.line,k.col,g)}})}});i.addRule({id:"rules-count",name:"Rules Count",desc:"Track how many rules there are.",browsers:"All",init:function(c,h){var g=0;c.addListener("startrule",function(){g++});c.addListener("endstylesheet",function(){h.stat("rule-count",g)})}});i.addRule({id:"shorthand",name:"Require shorthand properties",desc:"Use shorthand properties where possible.",browsers:"All",init:function(c,h){function g(){p={}}function a(a){var d,c,g,j;for(d in o)if(o.hasOwnProperty(d)){c=
j=0;for(g=o[d].length;c<g;c++)j+=p[o[d][c]]?1:0;j==o[d].length&&h.report("The properties "+o[d].join(", ")+" can be replaced by "+d+".",a.line,a.col,e)}}var e=this,d,i,j,l={},p,o={margin:["margin-top","margin-bottom","margin-left","margin-right"],padding:["padding-top","padding-bottom","padding-left","padding-right"]};for(d in o)if(o.hasOwnProperty(d)){i=0;for(j=o[d].length;i<j;i++)l[o[d][i]]=d}c.addListener("startrule",g);c.addListener("startfontface",g);c.addListener("property",function(a){a=a.property.toString().toLowerCase();
l[a]&&(p[a]=1)});c.addListener("endrule",a);c.addListener("endfontface",a)}});i.addRule({id:"star-property-hack",name:"Disallow properties with a star prefix",desc:"Checks for the star property hack (targets IE6/7)",browsers:"All",init:function(c,h){var g=this;c.addListener("property",function(a){"*"==a.property.hack&&h.report("Property with star prefix found.",a.property.line,a.property.col,g)})}});i.addRule({id:"text-indent",name:"Disallow negative text-indent",desc:"Checks for text indent less than -99px",
browsers:"All",init:function(c,h){function g(){d=!1;i="inherit"}function a(){d&&"ltr"!=i&&h.report("Negative text-indent doesn't work well with RTL. If you use text-indent for image replacement explicitly set direction for that item to ltr.",d.line,d.col,e)}var e=this,d,i;c.addListener("startrule",g);c.addListener("startfontface",g);c.addListener("property",function(a){var c=a.property.toString().toLowerCase(),e=a.value;"text-indent"==c&&-99>e.parts[0].value?d=a.property:"direction"==c&&"ltr"==e&&
(i="ltr")});c.addListener("endrule",a);c.addListener("endfontface",a)}});i.addRule({id:"underscore-property-hack",name:"Disallow properties with an underscore prefix",desc:"Checks for the underscore property hack (targets IE6)",browsers:"All",init:function(c,h){var g=this;c.addListener("property",function(a){"_"==a.property.hack&&h.report("Property with underscore prefix found.",a.property.line,a.property.col,g)})}});i.addRule({id:"unique-headings",name:"Headings should only be defined once",desc:"Headings should be defined only once.",
browsers:"All",init:function(c,h){var g=this,a={h1:0,h2:0,h3:0,h4:0,h5:0,h6:0};c.addListener("startrule",function(c){var c=c.selectors,d,i,j,l;for(j=0;j<c.length;j++)if(d=c[j],d=d.parts[d.parts.length-1],d.elementName&&/(h[1-6])/i.test(d.elementName.toString())){for(l=0;l<d.modifiers.length;l++)if("pseudo"==d.modifiers[l].type){i=!0;break}i||(a[RegExp.$1]++,1<a[RegExp.$1]&&h.report("Heading ("+d.elementName+") has already been defined.",d.line,d.col,g))}});c.addListener("endstylesheet",function(){var c,
d=[];for(c in a)a.hasOwnProperty(c)&&1<a[c]&&d.push(a[c]+" "+c+"s");d.length&&h.rollupWarn("You have "+d.join(", ")+" defined in this stylesheet.",g)})}});i.addRule({id:"universal-selector",name:"Disallow universal selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(c,h){var g=this;c.addListener("startrule",function(a){var a=a.selectors,c,d;for(d=0;d<a.length;d++)c=a[d],c=c.parts[c.parts.length-1],"*"==c.elementName&&h.report(g.desc,c.line,c.col,g)})}});i.addRule({id:"unqualified-attributes",
name:"Disallow unqualified attribute selectors",desc:"Unqualified attribute selectors are known to be slow.",browsers:"All",init:function(c,h){var g=this;c.addListener("startrule",function(a){var a=a.selectors,e,d,i,j;for(i=0;i<a.length;i++)if(e=a[i],e=e.parts[e.parts.length-1],e.type==c.SELECTOR_PART_TYPE)for(j=0;j<e.modifiers.length;j++)d=e.modifiers[j],"attribute"==d.type&&(!e.elementName||"*"==e.elementName)&&h.report(g.desc,e.line,e.col,g)})}});i.addRule({id:"vendor-prefix",name:"Require standard property with vendor prefix",
desc:"When using a vendor-prefixed property, make sure to include the standard one.",browsers:"All",init:function(c,h){function g(){d={};i=1}function a(){var a,c,g,i,k=[];for(a in d)j[a]&&k.push({actual:a,needed:j[a]});a=0;for(c=k.length;a<c;a++)g=k[a].needed,i=k[a].actual,d[g]?d[g][0].pos<d[i][0].pos&&h.report("Standard property '"+g+"' should come after vendor-prefixed property '"+i+"'.",d[i][0].name.line,d[i][0].name.col,e):h.report("Missing standard property '"+g+"' to go along with '"+i+"'.",
d[i][0].name.line,d[i][0].name.col,e)}var e=this,d,i,j={"-webkit-border-radius":"border-radius","-webkit-border-top-left-radius":"border-top-left-radius","-webkit-border-top-right-radius":"border-top-right-radius","-webkit-border-bottom-left-radius":"border-bottom-left-radius","-webkit-border-bottom-right-radius":"border-bottom-right-radius","-o-border-radius":"border-radius","-o-border-top-left-radius":"border-top-left-radius","-o-border-top-right-radius":"border-top-right-radius","-o-border-bottom-left-radius":"border-bottom-left-radius",
"-o-border-bottom-right-radius":"border-bottom-right-radius","-moz-border-radius":"border-radius","-moz-border-radius-topleft":"border-top-left-radius","-moz-border-radius-topright":"border-top-right-radius","-moz-border-radius-bottomleft":"border-bottom-left-radius","-moz-border-radius-bottomright":"border-bottom-right-radius","-moz-column-count":"column-count","-webkit-column-count":"column-count","-moz-column-gap":"column-gap","-webkit-column-gap":"column-gap","-moz-column-rule":"column-rule",
"-webkit-column-rule":"column-rule","-moz-column-rule-style":"column-rule-style","-webkit-column-rule-style":"column-rule-style","-moz-column-rule-color":"column-rule-color","-webkit-column-rule-color":"column-rule-color","-moz-column-rule-width":"column-rule-width","-webkit-column-rule-width":"column-rule-width","-moz-column-width":"column-width","-webkit-column-width":"column-width","-webkit-column-span":"column-span","-webkit-columns":"columns","-moz-box-shadow":"box-shadow","-webkit-box-shadow":"box-shadow",
"-moz-transform":"transform","-webkit-transform":"transform","-o-transform":"transform","-ms-transform":"transform","-moz-transform-origin":"transform-origin","-webkit-transform-origin":"transform-origin","-o-transform-origin":"transform-origin","-ms-transform-origin":"transform-origin","-moz-box-sizing":"box-sizing","-webkit-box-sizing":"box-sizing","-moz-user-select":"user-select","-khtml-user-select":"user-select","-webkit-user-select":"user-select"};c.addListener("startrule",g);c.addListener("startfontface",
g);c.addListener("startpage",g);c.addListener("startpagemargin",g);c.addListener("startkeyframerule",g);c.addListener("property",function(a){var c=a.property.text.toLowerCase();d[c]||(d[c]=[]);d[c].push({name:a.property,value:a.value,pos:i++})});c.addListener("endrule",a);c.addListener("endfontface",a);c.addListener("endpage",a);c.addListener("endpagemargin",a);c.addListener("endkeyframerule",a)}});i.addRule({id:"zero-units",name:"Disallow units for 0 values",desc:"You don't need to specify units when a value is 0.",
browsers:"All",init:function(c,h){var g=this;c.addListener("property",function(a){for(var a=a.value.parts,c=0,d=a.length;c<d;)(a[c].units||"percentage"==a[c].type)&&(0===a[c].value&&"time"!=a[c].type)&&h.report("Values of 0 shouldn't have units specified.",a[c].line,a[c].col,g),c++})}});(function(){var c=function(c){return!c||c.constructor!==String?"":c.replace(/[\"&><]/g,function(c){switch(c){case '"':return"&quot;";case "&":return"&amp;";case "<":return"&lt;";case ">":return"&gt;"}})};i.addFormatter({id:"checkstyle-xml",
name:"Checkstyle XML format",startFormat:function(){return'<?xml version="1.0" encoding="utf-8"?><checkstyle>'},endFormat:function(){return"</checkstyle>"},readError:function(h,g){return'<file name="'+c(h)+'"><error line="0" column="0" severty="error" message="'+c(g)+'"></error></file>'},formatResults:function(h,g){var a=h.messages,e=[];0<a.length&&(e.push('<file name="'+g+'">'),i.Util.forEach(a,function(a){a.rollup||e.push('<error line="'+a.line+'" column="'+a.col+'" severity="'+a.type+'" message="'+
c(a.message)+'" source="'+(!a.rule||!("name"in a.rule)?"":"net.csslint."+a.rule.name.replace(/\s/g,""))+'"/>')}),e.push("</file>"));return e.join("")}})})();i.addFormatter({id:"compact",name:"Compact, 'porcelain' format",startFormat:function(){return""},endFormat:function(){return""},formatResults:function(c,h,g){var c=c.messages,a="",g=g||{};if(0===c.length)return g.quiet?"":h+": Lint Free!";i.Util.forEach(c,function(c){a=c.rollup?a+(h+": "+(c.type.charAt(0).toUpperCase()+c.type.slice(1))+" - "+
c.message+"\n"):a+(h+": line "+c.line+", col "+c.col+", "+(c.type.charAt(0).toUpperCase()+c.type.slice(1))+" - "+c.message+"\n")});return a}});i.addFormatter({id:"csslint-xml",name:"CSSLint XML format",startFormat:function(){return'<?xml version="1.0" encoding="utf-8"?><csslint>'},endFormat:function(){return"</csslint>"},formatResults:function(c,h){var g=c.messages,a=[],e=function(a){return!a||a.constructor!==String?"":a.replace(/\"/g,"'").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")};
0<g.length&&(a.push('<file name="'+h+'">'),i.Util.forEach(g,function(c){c.rollup?a.push('<issue severity="'+c.type+'" reason="'+e(c.message)+'" evidence="'+e(c.evidence)+'"/>'):a.push('<issue line="'+c.line+'" char="'+c.col+'" severity="'+c.type+'" reason="'+e(c.message)+'" evidence="'+e(c.evidence)+'"/>')}),a.push("</file>"));return a.join("")}});i.addFormatter({id:"lint-xml",name:"Lint XML format",startFormat:function(){return'<?xml version="1.0" encoding="utf-8"?><lint>'},endFormat:function(){return"</lint>"},
formatResults:function(c,h){var g=c.messages,a=[],e=function(a){return!a||a.constructor!==String?"":a.replace(/\"/g,"'").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")};0<g.length&&(a.push('<file name="'+h+'">'),i.Util.forEach(g,function(c){c.rollup?a.push('<issue severity="'+c.type+'" reason="'+e(c.message)+'" evidence="'+e(c.evidence)+'"/>'):a.push('<issue line="'+c.line+'" char="'+c.col+'" severity="'+c.type+'" reason="'+e(c.message)+'" evidence="'+e(c.evidence)+'"/>')}),a.push("</file>"));
return a.join("")}});i.addFormatter({id:"text",name:"Plain Text",startFormat:function(){return""},endFormat:function(){return""},formatResults:function(c,h,g){var c=c.messages,a="",g=g||{};if(0===c.length)return g.quiet?"":"\n\ncsslint: No errors in "+h+".";var a="\n\ncsslint: There are "+c.length+" problems in "+h+".",g=h.lastIndexOf("/"),e=h;-1===g&&(g=h.lastIndexOf("\\"));-1<g&&(e=h.substring(g+1));i.Util.forEach(c,function(c,g){a=a+"\n\n"+e;c.rollup?(a+="\n"+(g+1)+": "+c.type,a+="\n"+c.message):
(a+="\n"+(g+1)+": "+c.type+" at line "+c.line+", col "+c.col,a+="\n"+c.message,a+="\n"+c.evidence)});return a}});return i}();(function(A){function D(){console.log(["CSSLint v"+CSSLint.version+" for PhantomJS"," \nUsage:\n phantomjs csslint-phantomjs.min.js cssfile"].join("\n"))}var B=require("fs"),x=A.args,y=0,u,i,c;if(0===x.length||1<x.length)D(),A.exit(y);B.isReadable(x)||(y=1,D(),A.exit(y));B=CSSLint.verify(B.read(x));u=B.messages.length;1>u&&A.exit(y);for(i=0;i<u;i+=1)c=B.messages[i],"error"===c.type&&(y=1),c.rollup&&(c.line=1,c.col=1),console.log([x,c.line,c.col,c.message].join(":"));A.exit(y)})(phantom);
// ==ClosureCompiler==
// @code_url https://raw.github.com/jshint/jshint/master/jshint.js
// ==/ClosureCompiler==
/*jslint indent:2 */
/*global phantom, require, console, JSHINT */
(function (p) {
"use strict";
var fs = require("fs"),
a = p.args,
c = 0,
r,
l,
i,
e;
function outputHelp() {
console.log([
"JSHint for PhantomJS",
" ",
"Usage:",
" phantomjs jshint-phantomjs.min.js jsfile"
].join("\n"));
}
if (a.length === 0 || a.length > 1) {
outputHelp();
p.exit(c);
}
if (!fs.isReadable(a)) {
c = 1;
outputHelp();
p.exit(c);
}
r = JSHINT(fs.read(a));
l = JSHINT.errors.length;
if (r) {
p.exit(c);
}
for (i = 0; i < l; i = i + 1) {
e = JSHINT.errors[i];
if (e) {
console.log([a, e.line, e.character, e.reason].join(":"));
}
}
p.exit(c);
}(phantom));
var JSHINT=function(){function T(){}function D(a,e){return Object.prototype.hasOwnProperty.call(a,e)}function Z(a,e){void 0===Va[a]&&void 0===Ka[a]&&d("Bad option: '"+a+"'.",e)}function B(a,e){for(var c in e)D(e,c)&&(a[c]=e[c])}function U(){g.couch&&B(w,Wa);g.rhino&&B(w,Xa);g.prototypejs&&B(w,Ya);g.node&&(B(w,Za),g.globalstrict=!0);g.devel&&B(w,$a);g.dojo&&B(w,ab);g.browser&&B(w,bb);g.nonstandard&&B(w,cb);g.jquery&&B(w,db);g.mootools&&B(w,eb);g.wsh&&B(w,fb);g.esnext&&La();g.globalstrict&&!1!==g.strict&&
(g.strict=!0)}function K(a,e,c){throw{name:"JSHintError",line:e,character:c,message:a+" ("+Math.floor(100*(e/M.length))+"% scanned).",raw:a};}function d(a,e,c,d,r,i){var m,e=e||b;"(end)"===e.id&&(e=f);m=e.line||0;e=e.from||0;c={id:"(error)",raw:a,evidence:M[m-1]||"",line:m,character:e,a:c,b:d,c:r,d:i};c.reason=a.supplant(c);JSHINT.errors.push(c);g.passfail&&K("Stopping. ",m,e);na+=1;na>=g.maxerr&&K("Too many errors.",m,e);return c}function o(a,e,c,b,f,i,g){return d(a,{line:e,from:c},b,f,i,g)}function N(a,
e,c,b,f,g,m){d(a,{line:e,from:c},b,f,g,m)}function V(a,e){"hasOwnProperty"===a&&d("'hasOwnProperty' is a really bad name.");D(h,a)&&!h["(global)"]&&(!0===h[a]?g.latedef&&d("'{a}' was used before it was defined.",b,a):!g.shadow&&"exception"!==e&&d("'{a}' is already defined.",b,a));h[a]=e;h["(global)"]?(Ma[a]=h,D(F,a)&&(g.latedef&&d("'{a}' was used before it was defined.",b,a),delete F[a])):v[a]=h}function I(a){for(var a=a||0,e=0,c;e<=a;)(c=oa[e])||(c=oa[e]=W.token()),e+=1;return c}function l(a,e){switch(f.id){case "(number)":"."===
b.id&&d("A dot following a number can be confused with a decimal point.",f);break;case "-":("-"===b.id||"--"===b.id)&&d("Confusing minusses.");break;case "+":("+"===b.id||"++"===b.id)&&d("Confusing plusses.")}if("(string)"===f.type||f.identifier)$=f.value;a&&b.id!==a&&(e?"(end)"===b.id?d("Unmatched '{a}'.",e,e.id):d("Expected '{a}' to match '{b}' from line {c} and instead saw '{d}'.",b,a,e.id,e.line,b.value):("(identifier)"!==b.type||b.value!==a)&&d("Expected '{a}' and instead saw '{b}'.",b,a,b.value));
y=f;for(f=b;;){b=oa.shift()||W.token();if("(end)"===b.id||"(error)"===b.id)break;if("special"===b.type){var c=void 0,s=void 0,r=void 0,i=b.value,m=c=c=void 0;switch(i){case "*/":d("Unbegun comment.",void 0,void 0,void 0,void 0,void 0);break;case "/*members":case "/*member":i="/*members";aa||(aa={});s=aa;break;case "/*jshint":case "/*jslint":s=g;r=Ka;break;case "/*global":s=w;break;default:d("What?",void 0,void 0,void 0,void 0,void 0)}c=W.token();a:for(;;){for(;;){if("special"===c.type&&"*/"===c.value)break a;
if("(endline)"!==c.id&&","!==c.id)break;c=W.token()}"(string)"!==c.type&&("(identifier)"!==c.type&&"/*members"!==i)&&d("Bad option.",c,void 0,void 0,void 0,void 0);m=W.token();":"===m.id?(m=W.token(),s===aa&&d("Expected '{a}' and instead saw '{b}'.",c,"*/",":",void 0,void 0),"/*jshint"===i&&Z(c.value,c),"indent"===c.value&&("/*jshint"===i||"/*jslint"===i)?(c=+m.value,("number"!==typeof c||!isFinite(c)||0>=c||Math.floor(c)!==c)&&d("Expected a small integer and instead saw '{a}'.",m,m.value,void 0,
void 0,void 0),s.white=!0,s.indent=c):"maxerr"===c.value&&("/*jshint"===i||"/*jslint"===i)?(c=+m.value,("number"!==typeof c||!isFinite(c)||0>=c||Math.floor(c)!==c)&&d("Expected a small integer and instead saw '{a}'.",m,m.value,void 0,void 0,void 0),s.maxerr=c):"maxlen"===c.value&&("/*jshint"===i||"/*jslint"===i)?(c=+m.value,("number"!==typeof c||!isFinite(c)||0>=c||Math.floor(c)!==c)&&d("Expected a small integer and instead saw '{a}'.",m,m.value,void 0,void 0,void 0),s.maxlen=c):"validthis"===c.value?
h["(global)"]?d("Option 'validthis' can't be used in a global scope.",void 0,void 0,void 0,void 0,void 0):"true"===m.value||"false"===m.value?s[c.value]="true"===m.value:d("Bad option value.",m,void 0,void 0,void 0,void 0):"true"===m.value||"false"===m.value?"/*jslint"===i?(c=gb[c.value]||c.value,s[c]="true"===m.value,void 0!==hb[c]&&(s[c]=!s[c])):s[c.value]="true"===m.value:d("Bad option value.",m,void 0,void 0,void 0,void 0),c=W.token()):(("/*jshint"===i||"/*jslint"===i)&&d("Missing option value.",
c,void 0,void 0,void 0,void 0),s[c.value]=!1,c=m)}r&&U()}else if("(endline)"!==b.id)break}}function k(a,e){var c,g=!1,r=!1;"(end)"===b.id&&d("Unexpected early end of program.",f,void 0,void 0,void 0,void 0);l();e&&($="anonymous",h["(verb)"]=f.value);if(!0===e&&f.fud)c=f.fud();else{if(f.nud)c=f.nud();else{if("(number)"===b.type&&"."===f.id)return d("A leading decimal point can be confused with a dot: '.{a}'.",f,b.value),l(),f;d("Expected an identifier and instead saw '{a}'.",f,f.id,void 0,void 0,void 0)}for(;a<
b.lbp;){g="Array"===f.value;r="Object"===f.value;if(c&&(c.value||c.first&&c.first.value))if("new"!==c.value||c.first&&c.first.value&&"."===c.first.value)g=!1,c.value!==f.value&&(r=!1);l();g&&("("===f.id&&")"===b.id)&&d("Use the array literal notation [].",f);r&&("("===f.id&&")"===b.id)&&d("Use the object literal notation {}.",f);f.led?c=f.led(c):d("Expected an operator and instead saw '{a}'.",f,f.id,void 0,void 0,void 0)}}return c}function O(a,e){a=a||f;e=e||b;g.white&&(a.character!==e.from&&a.line===
e.line)&&(a.from+=a.character-a.from,d("Unexpected space after '{a}'.",a,a.value))}function xa(a,e){a=a||f;e=e||b;g.white&&(a.character!==e.from||a.line!==e.line)&&d("Unexpected space before '{a}'.",e,e.value)}function A(a,e){a=a||f;e=e||b;g.white&&!a.comment&&a.line===e.line&&O(a,e)}function t(a,e){g.white&&(a=a||f,e=e||b,a.line===e.line&&a.character===e.from&&(a.from+=a.character-a.from,d("Missing space after '{a}'.",a,a.value)))}function Na(a,e){a=a||f;e=e||b;!g.laxbreak&&a.line!==e.line?d("Bad line breaking before '{a}'.",
e,e.id):g.white&&(a=a||f,e=e||b,a.character===e.from&&(a.from+=a.character-a.from,d("Missing space after '{a}'.",a,a.value)))}function P(a){g.white&&"(end)"!==b.id&&(a=q+(a||0),b.from!==a&&d("Expected '{a}' to have an indentation at {b} instead at {c}.",b,b.value,a,b.from))}function ea(a){a=a||f;a.line!==b.line&&d("Line breaking error '{a}'.",a,a.value)}function J(){f.line!==b.line?g.laxcomma||(J.first&&(d("Comma warnings can be turned off with 'laxcomma'"),J.first=!1),d("Bad line breaking before '{a}'.",
f,b.id)):!f.comment&&(f.character!==b.from&&g.white)&&(f.from+=f.character-f.from,d("Unexpected space after '{a}'.",f,f.value));l(",");t(f,b)}function X(a,e){var c=G[a];if(!c||"object"!==typeof c)G[a]=c={id:a,lbp:e,value:a};return c}function z(a){return X(a,0)}function Q(a,e){var c=z(a);c.identifier=c.reserved=!0;c.fud=e;return c}function ba(a,e){var c=Q(a,e);c.block=!0;return c}function ya(a){var e=a.id.charAt(0);if("a"<=e&&"z">=e||"A"<=e&&"Z">=e)a.identifier=a.reserved=!0;return a}function E(a,
e){var c=X(a,150);ya(c);c.nud="function"===typeof e?e:function(){this.right=k(150);this.arity="unary";if("++"===this.id||"--"===this.id)g.plusplus?d("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&("."!==this.right.id&&"["!==this.right.id)&&d("Bad operand.",this);return this};return c}function pa(a,e){var c=z(a);c.type=a;c.nud=e;return c}function x(a,e){var c=pa(a,e);c.identifier=c.reserved=!0;return c}function R(a,e){return x(a,function(){"function"===typeof e&&
e(this);return this})}function C(a,e,c,g){var r=X(a,c);ya(r);r.led=function(r){g||(Na(y,f),t(f,b));"in"===a&&"!"===r.id&&d("Confusing use of '{a}'.",r,"!");if("function"===typeof e)return e(r,this);this.left=r;this.right=k(c);return this};return r}function Y(a,e){var c=X(a,100);c.led=function(a){Na(y,f);t(f,b);var c=k(100);a&&"NaN"===a.id||c&&"NaN"===c.id?d("Use the isNaN function to compare with NaN.",this):e&&e.apply(this,[a,c]);"!"===a.id&&d("Confusing use of '{a}'.",a,"!");"!"===c.id&&d("Confusing use of '{a}'.",
c,"!");this.left=a;this.right=c;return this};return c}function qa(a){return a&&("(number)"===a.type&&0===+a.value||"(string)"===a.type&&""===a.value||"null"===a.type&&!g.eqnull||"true"===a.type||"false"===a.type||"undefined"===a.type)}function fa(a){X(a,20).exps=!0;return C(a,function(a,c){c.left=a;!1===w[a.value]&&!0===v[a.value]["(global)"]?d("Read only.",a):a["function"]&&d("'{a}' is a function.",a,a.value);if(a){g.esnext&&"const"===h[a.value]&&d("Attempting to override '{a}' which is a constant",
a,a.value);if("."===a.id||"["===a.id)return(!a.left||"arguments"===a.left.value)&&d("Bad assignment.",c),c.right=k(19),c;if(a.identifier&&!a.reserved)return"exception"===h[a.value]&&d("Do not assign to the exception parameter.",a),c.right=k(19),c;a===G["function"]&&d("Expected an identifier in an assignment and instead saw a function invocation.",f)}d("Bad assignment.",c,void 0,void 0,void 0,void 0)},20)}function ga(a,e,c){a=X(a,c);ya(a);a.led="function"===typeof e?e:function(a){g.bitwise&&d("Unexpected use of '{a}'.",
this,this.id);this.left=a;this.right=k(c);return this};return a}function ha(a){X(a,20).exps=!0;return C(a,function(a,c){g.bitwise&&d("Unexpected use of '{a}'.",c,c.id);t(y,f);t(f,b);if(a){if("."===a.id||"["===a.id||a.identifier&&!a.reserved)return k(19),c;a===G["function"]&&d("Expected an identifier in an assignment, and instead saw a function invocation.",f);return c}d("Bad assignment.",c,void 0,void 0,void 0,void 0)},20)}function Oa(a){a=X(a,150);a.led=function(a){g.plusplus?d("Unexpected use of '{a}'.",
this,this.id):(!a.identifier||a.reserved)&&("."!==a.id&&"["!==a.id)&&d("Bad operand.",this);this.left=a;return this};return a}function za(a){if(b.identifier)return l(),f.reserved&&!g.es5&&(!a||"undefined"!==f.value)&&d("Expected an identifier and instead saw '{a}' (a reserved word).",f,f.id),f.value}function ia(a){if(a=za(a))return a;"function"===f.id&&"("===b.id?d("Missing name in function declaration."):d("Expected an identifier and instead saw '{a}'.",b,b.value,void 0,void 0,void 0)}function ra(a){var e=
0,c;if(!(";"!==b.id||Aa))for(;;){c=I(e);if(c.reach)break;if("(endline)"!==c.id){if("function"===c.id){if(!g.latedef)break;d("Inner functions should be listed at the top of the outer function.",c);break}d("Unreachable '{a}' after '{b}'.",c,c.value,a);break}e+=1}}function Ba(a){var e=q,c=v,s=b;if(";"===s.id)l(";");else{s.identifier&&(!s.reserved&&":"===I().id)&&(l(),l(":"),v=Object.create(c),V(s.value,"label"),b.labelled||d("Label '{a}' on {b} statement.",b,s.value,b.value),sa.test(s.value+":")&&d("Label '{a}' looks like a javascript url.",
s,s.value),b.label=s.value,s=b);a||P();a=k(0,!0);if(!s.block){!g.expr&&(!a||!a.exps)?d("Expected an assignment or function call and instead saw an expression.",f):g.nonew&&("("===a.id&&"new"===a.left.id)&&d("Do not use 'new' for side effects.");if(","===b.id)return J();";"!==b.id?g.asi||(!g.lastsemic||"}"!==b.id||b.line!==f.line)&&o("Missing semicolon.",f.line,f.character):(O(f,b),l(";"),t(f,b))}q=e;v=c;return a}}function ta(a){for(var e=[],c;!b.reach&&"(end)"!==b.id;)";"===b.id?(c=I(),(!c||"("!==
c.id)&&d("Unnecessary semicolon."),l(";")):e.push(Ba(a===b.line));return e}function Pa(){for(var a,e,c;;)if("(string)"===b.id){e=I(0);if("(endline)"===e.id){a=1;do c=I(a),a+=1;while("(endline)"===c.id);if(";"!==c.id){if("(string)"!==c.id&&"(number)"!==c.id&&"(regexp)"!==c.id&&!0!==c.identifier&&"}"!==c.id)break;d("Missing semicolon.",b)}else e=c}else if("}"===e.id)d("Missing semicolon.",e);else if(";"!==e.id)break;P();l();H[f.value]&&d('Unnecessary directive "{a}".',f,f.value);"use strict"===f.value&&
(g.newcap=!0,g.undef=!0);H[f.value]=!0;";"===e.id&&l(";")}else break}function L(a,e,c){var s,r=ja,i=q,m,o=v,p,n;ja=a;if(!a||!g.funcscope)v=Object.create(v);t(f,b);p=b;if("{"===b.id){l("{");e=f.line;if("}"!==b.id){for(q+=g.indent;!a&&b.from>q;)q+=g.indent;if(c){m={};for(n in H)D(H,n)&&(m[n]=H[n]);Pa();g.strict&&h["(context)"]["(global)"]&&!m["use strict"]&&!H["use strict"]&&d('Missing "use strict" statement.')}s=ta(e);c&&(H=m);q-=g.indent}e!==b.line&&P();l("}",p);q=i}else a?((!e||g.curly)&&d("Expected '{a}' and instead saw '{b}'.",
b,"{",b.value),Aa=!0,q+=g.indent,s=[Ba(b.line===f.line)],q-=g.indent,Aa=!1):d("Expected '{a}' and instead saw '{b}'.",b,"{",b.value,void 0,void 0);h["(verb)"]=null;if(!a||!g.funcscope)v=o;ja=r;a&&(g.noempty&&(!s||0===s.length))&&d("Empty block.");return s}function Ca(a){aa&&"boolean"!==typeof aa[a]&&d("Unexpected /*member '{a}'.",f,a);ca[a]="number"===typeof ca[a]?ca[a]+1:1}function Da(a){var e=a.value,a=a.line,c=F[e];"function"===typeof c&&(c=!1);c?c[c.length-1]!==a&&c.push(a):(c=[a],F[e]=c)}function Ea(){var a=
za(!0);a||("(string)"===b.id?(a=b.value,l()):"(number)"===b.id&&(a=b.value.toString(),l()));return a}function ua(a,e){var c,d=g,r=v;g=Object.create(g);v=Object.create(v);c=h={"(name)":a||'"'+$+'"',"(line)":b.line,"(context)":h,"(breakage)":0,"(loopage)":0,"(scope)":v,"(statement)":e};f.funct=h;ka.push(h);a&&V(a,"function");var i=h,m;a:{var o,p=b,n=[];l("(");A();if(")"===b.id)l(")"),m=void 0;else for(;;)if(o=ia(!0),n.push(o),V(o,"parameter"),","===b.id)J();else{l(")",p);A(y,f);m=n;break a}}i["(params)"]=
m;L(!1,!1,!0);v=r;g=d;h["(last)"]=f.line;h=h["(context)"];return c}function Fa(){function a(){var a={},e=b;l("{");if("}"!==b.id)for(;;){if("(end)"===b.id)d("Missing '}' to match '{' from line {a}.",b,e.line,void 0,void 0,void 0);else if("}"===b.id){d("Unexpected comma.",f);break}else","===b.id?d("Unexpected comma.",b,void 0,void 0,void 0,void 0):"(string)"!==b.id&&d("Expected a string and instead saw {a}.",b,b.value);!0===a[b.value]?d("Duplicate key '{a}'.",b,b.value):"__proto__"===b.value&&!g.proto||
"__iterator__"===b.value&&!g.iterator?d("The '{a}' key may produce unexpected results.",b,b.value):a[b.value]=!0;l();l(":");Fa();if(","!==b.id)break;l(",")}l("}")}function e(){var a=b;l("[");if("]"!==b.id)for(;;){if("(end)"===b.id)d("Missing ']' to match '[' from line {a}.",b,a.line,void 0,void 0,void 0);else if("]"===b.id){d("Unexpected comma.",f);break}else","===b.id&&d("Unexpected comma.",b,void 0,void 0,void 0,void 0);Fa();if(","!==b.id)break;l(",")}l("]")}switch(b.id){case "{":a();break;case "[":e();
break;case "true":case "false":case "null":case "(number)":case "(string)":l();break;case "-":l("-");f.character!==b.from&&d("Unexpected space after '-'.",f);O(f,b);l("(number)");break;default:d("Expected a JSON value.",b,void 0,void 0,void 0,void 0)}}var $,ib={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},Ka={asi:!0,bitwise:!0,boss:!0,browser:!0,camelcase:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,esnext:!0,evil:!0,
expr:!0,forin:!0,funcscope:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,lastsemic:!0,latedef:!0,laxbreak:!0,laxcomma:!0,loopfunc:!0,mootools:!0,multistr:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nonstandard:!0,nomen:!0,onevar:!0,onecase:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,smarttabs:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,validthis:!0,withstmt:!0,white:!0,wsh:!0},Va={maxlen:!1,indent:!1,maxerr:!1,predef:!1,
quotmark:!1},hb={bitwise:!0,forin:!0,newcap:!0,nomen:!0,plusplus:!0,regexp:!0,undef:!0,white:!0,eqeqeq:!0,onevar:!0},gb={eqeq:"eqeqeq",vars:"onevar",windows:"wsh"},bb={ArrayBuffer:!1,ArrayBufferView:!1,Audio:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,DOMParser:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,
HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,
HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,
HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,moveBy:!1,moveTo:!1,name:!1,Node:!1,NodeFilter:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,
scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},Wa={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},$a={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},ab={dojo:!1,
dijit:!1,dojox:!1,define:!1,require:!1},jb={"\u0008":"\\b","\t":"\\t","\n":"\\n","\u000c":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},h,la="closure exception global label outer unused var".split(" "),ka,Ma,F,ja,q,S,db={$:!1,jQuery:!1},M,oa,ca,aa,eb={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,
Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},b,Za={__filename:!1,__dirname:!1,Buffer:!1,console:!1,exports:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1,setTimeout:!1,clearTimeout:!1,setInterval:!1,clearInterval:!1},Aa,g,w,Ga,y,Ya={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,
Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},va,Xa={defineClass:!1,deserialize:!1,gc:!1,help:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},
v,kb={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},cb={escape:!1,unescape:!1},H,G={},wa,f,Ha,La,na,fb={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,
ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},Qa,Ra,Sa,Ta,Ua,Ia,sa,Ja;Qa=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/;Ra=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/;Sa=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/;
Ta=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;Ua=/\*\/|\/\*/;Ia=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/;sa=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i;Ja=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/;"function"!==typeof Array.isArray&&(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.apply(a)});"function"!==typeof Object.create&&(Object.create=function(a){T.prototype=a;return new T});
"function"!==typeof Object.keys&&(Object.keys=function(a){var e=[],c;for(c in a)D(a,c)&&e.push(c);return e});"function"!==typeof String.prototype.entityify&&(String.prototype.entityify=function(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")});"function"!==typeof String.prototype.isAlpha&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z\uffff"||this>="A"&&this<="Z\uffff"});"function"!==typeof String.prototype.isDigit&&(String.prototype.isDigit=function(){return this>=
"0"&&this<="9"});"function"!==typeof String.prototype.supplant&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(e,c){var b=a[c];return typeof b==="string"||typeof b==="number"?b:e})});"function"!==typeof String.prototype.name&&(String.prototype.name=function(){return Ia.test(this)?this:Sa.test(this)?'"'+this.replace(Ta,function(a){var e=jb[a];return e?e:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var W=function(){function a(){var a;
if(d>=M.length)return false;c=1;i=M[d];d=d+1;a=g.smarttabs?i.search(/ \t/):i.search(/ \t|\t [^\*]/);a>=0&&o("Mixed spaces and tabs.",d,a+1);i=i.replace(/\t/g,wa);a=i.search(Qa);a>=0&&o("Unsafe character.",d,a);g.maxlen&&g.maxlen<i.length&&o("Line too long.",d,i.length);(a=g.trailing&&i.match(/^(.*?)\s+$/))&&!/^\s+$/.test(i)&&o("Trailing whitespace.",d,a[1].length+1);return true}function e(a,e){var i,h;h=a==="(color)"||a==="(range)"?{type:a}:a==="(punctuator)"||a==="(identifier)"&&D(G,e)?G[e]||G["(error)"]:
G[a];h=Object.create(h);(a==="(string)"||a==="(range)")&&!g.scripturl&&sa.test(e)&&o("Script URL.",d,b);if(a==="(identifier)"){h.identifier=true;e==="__proto__"&&!g.proto?o("The '{a}' property is deprecated.",d,b,e):e==="__iterator__"&&!g.iterator?o("'{a}' is only available in JavaScript 1.7.",d,b,e):g.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")?(!g.node||f.id==="."||e!=="__dirname"&&e!=="__filename")&&o("Unexpected {a} in '{b}'.",d,b,"dangling '_'",e):g.camelcase&&(e.indexOf("_")>-1&&
!e.match(/^[A-Z0-9_]*$/))&&o("Identifier '{a}' is not in camel case.",d,b,e)}h.value=e;h.line=d;h.character=c;h.from=b;i=h.id;i!=="(endline)"&&(Ga=i&&("(,=:[!&|?{};".indexOf(i.charAt(i.length-1))>=0||i==="return"||i==="case"));return h}var c,b,d,i;return{init:function(c){M=typeof c==="string"?c.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split("\n"):c;M[0]&&M[0].substr(0,2)==="#!"&&(M[0]="");d=0;a();b=1},range:function(a,f){var g,h="";b=c;for(i.charAt(0)!==a&&N("Expected '{a}' and instead saw '{b}'.",
d,c,a,i.charAt(0));;){i=i.slice(1);c=c+1;g=i.charAt(0);switch(g){case "":N("Missing '{a}'.",d,c,g);break;case f:i=i.slice(1);c=c+1;return e("(range)",h);case "\\":o("Unexpected '{a}'.",d,c,g)}h=h+g}},token:function(){function h(a){if(a=a.exec(i)){j=a[0].length;a=a[1];n=a.charAt(0);i=i.substr(j);b=c+j-a.length;c=c+j;return a}}function l(f){function h(a){var b=parseInt(i.substr(m+1,a),16);m=m+a;b>=32&&(b<=126&&b!==34&&b!==92&&b!==39)&&o("Unnecessary escapement.",d,c);c=c+a;j=String.fromCharCode(b)}
var j,m,n="",p=false;S&&f!=='"'&&o("Strings must use doublequote.",d,c);if(g.quotmark)if(g.quotmark==="single"&&f!=="'")o("Strings must use singlequote.",d,c);else if(g.quotmark==="double"&&f!=='"')o("Strings must use doublequote.",d,c);else if(g.quotmark===true){va=va||f;va!==f&&o("Mixed double and single quotes.",d,c)}m=0;a:for(;;){for(;m>=i.length;){m=0;var k=d,u=b;if(!a()){N("Unclosed string.",k,u);break a}p?p=false:o("Unclosed string.",k,u)}j=i.charAt(m);if(j===f){c=c+1;i=i.substr(m+1);return e("(string)",
n,f)}if(j<" "){if(j==="\n"||j==="\r")break;o("Control character in string: {a}.",d,c+m,i.slice(0,m))}else if(j==="\\"){m=m+1;c=c+1;j=i.charAt(m);t=i.charAt(m+1);switch(j){case "\\":case '"':case "/":break;case "'":S&&o("Avoid \\'.",d,c);break;case "b":j="\u0008";break;case "f":j="\u000c";break;case "n":j="\n";break;case "r":j="\r";break;case "t":j="\t";break;case "0":j="\x00";t>=0&&(t<=7&&H["use strict"])&&o("Octal literals are not allowed in strict mode.",d,c);break;case "u":h(4);break;case "v":S&&
o("Avoid \\v.",d,c);j="\v";break;case "x":S&&o("Avoid \\x-.",d,c);h(2);break;case "":p=true;if(g.multistr){S&&o("Avoid EOL escapement.",d,c);j="";c=c-1;break}o("Bad escapement of EOL. Use option multistr if needed.",d,c);break;default:o("Bad escapement.",d,c)}}n=n+j;c=c+1;m=m+1}}for(var p,n,u,j,k,q,t;;){if(!i)return e(a()?"(endline)":"(end)","");if(u=h(Ra)){if(n.isAlpha()||n==="_"||n==="$")return e("(identifier)",u);if(n.isDigit()){isFinite(Number(u))||o("Bad number '{a}'.",d,c,u);i.substr(0,1).isAlpha()&&
o("Missing space after '{a}'.",d,c,u);if(n==="0"){p=u.substr(1,1);p.isDigit()?f.id!=="."&&o("Don't use extra leading zeros '{a}'.",d,c,u):S&&(p==="x"||p==="X")&&o("Avoid 0x-. '{a}'.",d,c,u)}u.substr(u.length-1)==="."&&o("A trailing decimal point can be confused with a dot '{a}'.",d,c,u);return e("(number)",u)}switch(u){case '"':case "'":return l(u);case "//":i="";f.comment=true;break;case "/*":for(;;){p=i.search(Ua);if(p>=0)break;a()||N("Unclosed comment.",d,c)}c=c+(p+2);i.substr(p,1)==="/"&&N("Nested comment.",
d,c);i=i.substr(p+2);f.comment=true;break;case "/*members":case "/*member":case "/*jshint":case "/*jslint":case "/*global":case "*/":return{value:u,type:"special",line:d,character:c,from:b};case "":break;case "/":f.id==="/="&&N("A regular expression literal can be confused with '/='.",d,b);if(Ga){for(j=u=0;;){p=true;n=i.charAt(j);j=j+1;switch(n){case "":N("Unclosed regular expression.",d,b);return K("Stopping.",d,b);case "/":u>0&&o("{a} unterminated regular expression group(s).",d,b+j,u);n=i.substr(0,
j-1);for(k={g:true,i:true,m:true};k[i.charAt(j)]===true;){k[i.charAt(j)]=false;j=j+1}c=c+j;i=i.substr(j);k=i.charAt(0);(k==="/"||k==="*")&&N("Confusing regular expression.",d,b);return e("(regexp)",n);case "\\":n=i.charAt(j);n<" "?o("Unexpected control character in regular expression.",d,b+j):n==="<"&&o("Unexpected escaped character '{a}' in regular expression.",d,b+j,n);j=j+1;break;case "(":u=u+1;p=false;if(i.charAt(j)==="?"){j=j+1;switch(i.charAt(j)){case ":":case "=":case "!":j=j+1;break;default:o("Expected '{a}' and instead saw '{b}'.",
d,b+j,":",i.charAt(j))}}break;case "|":p=false;break;case ")":u===0?o("Unescaped '{a}'.",d,b+j,")"):u=u-1;break;case " ":for(k=1;i.charAt(j)===" ";){j=j+1;k=k+1}k>1&&o("Spaces are hard to count. Use {{a}}.",d,b+j,k);break;case "[":n=i.charAt(j);if(n==="^"){j=j+1;g.regexp?o("Insecure '{a}'.",d,b+j,n):i.charAt(j)==="]"&&N("Unescaped '{a}'.",d,b+j,"^")}n==="]"&&o("Empty class.",d,b+j-1);q=k=false;a:do{n=i.charAt(j);j=j+1;switch(n){case "[":case "^":o("Unescaped '{a}'.",d,b+j,n);q?q=false:k=true;break;
case "-":if(k&&!q){k=false;q=true}else if(q)q=false;else if(i.charAt(j)==="]")q=true;else{g.regexdash!==(j===2||j===3&&i.charAt(1)==="^")&&o("Unescaped '{a}'.",d,b+j-1,"-");k=true}break;case "]":q&&!g.regexdash&&o("Unescaped '{a}'.",d,b+j-1,"-");break a;case "\\":n=i.charAt(j);n<" "?o("Unexpected control character in regular expression.",d,b+j):n==="<"&&o("Unexpected escaped character '{a}' in regular expression.",d,b+j,n);j=j+1;if(/[wsd]/i.test(n)){if(q){o("Unescaped '{a}'.",d,b+j,"-");q=false}k=
false}else q?q=false:k=true;break;case "/":o("Unescaped '{a}'.",d,b+j-1,"/");q?q=false:k=true;break;case "<":q?q=false:k=true;break;default:q?q=false:k=true}}while(n);break;case ".":g.regexp&&o("Insecure '{a}'.",d,b+j,n);break;case "]":case "?":case "{":case "}":case "+":case "*":o("Unescaped '{a}'.",d,b+j,n)}if(p)switch(i.charAt(j)){case "?":case "+":case "*":j=j+1;i.charAt(j)==="?"&&(j=j+1);break;case "{":j=j+1;n=i.charAt(j);(n<"0"||n>"9")&&o("Expected a number and instead saw '{a}'.",d,b+j,n);
j=j+1;for(k=+n;;){n=i.charAt(j);if(n<"0"||n>"9")break;j=j+1;k=+n+k*10}p=k;if(n===","){j=j+1;p=Infinity;n=i.charAt(j);if(n>="0"&&n<="9"){j=j+1;for(p=+n;;){n=i.charAt(j);if(n<"0"||n>"9")break;j=j+1;p=+n+p*10}}}i.charAt(j)!=="}"?o("Expected '{a}' and instead saw '{b}'.",d,b+j,"}",n):j=j+1;i.charAt(j)==="?"&&(j=j+1);k>p&&o("'{a}' should not be greater than '{b}'.",d,b+j,k,p)}}n=i.substr(0,j-1);c=c+j;i=i.substr(j);return e("(regexp)",n)}return e("(punctuator)",u);case "#":return e("(punctuator)",u);default:return e("(punctuator)",
u)}}else{for(n=u="";i&&i<"!";)i=i.substr(1);if(i){N("Unexpected '{a}'.",d,c,i.substr(0,1));i=""}}}}}}();pa("(number)",function(){return this});pa("(string)",function(){return this});G["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var a=this.value,e=v[a],c;if(typeof e==="function")e=void 0;else if(typeof e==="boolean"){c=h;h=ka[0];V(a,"var");e=h;h=c}if(h===e)switch(h[a]){case "unused":h[a]="var";break;case "unction":h[a]="function";this["function"]=true;break;case "function":this["function"]=
true;break;case "label":d("'{a}' is a statement label.",f,a)}else if(h["(global)"]){g.undef&&typeof w[a]!=="boolean"&&(!($==="typeof"||$==="delete")||b&&(b.value==="."||b.value==="["))&&JSHINT.undefs.push([h,"'{a}' is not defined.",f,a]);Da(f)}else switch(h[a]){case "closure":case "function":case "var":case "unused":d("'{a}' used out of scope.",f,a);break;case "label":d("'{a}' is a statement label.",f,a);break;case "outer":case "global":break;default:if(e===true)h[a]=true;else if(e===null){d("'{a}' is not allowed.",
f,a);Da(f)}else if(typeof e!=="object"){g.undef&&(!($==="typeof"||$==="delete")||b&&(b.value==="."||b.value==="["))&&JSHINT.undefs.push([h,"'{a}' is not defined.",f,a]);h[a]=true;Da(f)}else switch(e[a]){case "function":case "unction":this["function"]=true;e[a]="closure";h[a]=e["(global)"]?"global":"outer";break;case "var":case "unused":e[a]="closure";h[a]=e["(global)"]?"global":"outer";break;case "closure":case "parameter":h[a]=e["(global)"]?"global":"outer";break;case "label":d("'{a}' is a statement label.",
f,a)}}return this},led:function(){d("Expected an operator and instead saw '{a}'.",b,b.value,void 0,void 0,void 0)}};pa("(regexp)",function(){return this});z("(endline)");z("(begin)");z("(end)").reach=!0;z("</").reach=!0;z("<!");z("<\!--");z("--\>");z("(error)").reach=!0;z("}").reach=!0;z(")");z("]");z('"').reach=!0;z("'").reach=!0;z(";");z(":").reach=!0;z(",");z("#");z("@");x("else");x("case").reach=!0;x("catch");x("default").reach=!0;x("finally");R("arguments",function(a){H["use strict"]&&h["(global)"]&&
d("Strict violation.",a)});R("eval");R("false");R("Infinity");R("NaN");R("null");R("this",function(a){H["use strict"]&&(!g.validthis&&(h["(statement)"]&&h["(name)"].charAt(0)>"Z"||h["(global)"]))&&d("Possible strict violation.",a)});R("true");R("undefined");fa("=","assign",20);fa("+=","assignadd",20);fa("-=","assignsub",20);fa("*=","assignmult",20);fa("/=","assigndiv",20).nud=function(){d("A regular expression literal can be confused with '/='.",void 0,void 0,void 0,void 0,void 0)};fa("%=","assignmod",
20);ha("&=","assignbitand",20);ha("|=","assignbitor",20);ha("^=","assignbitxor",20);ha("<<=","assignshiftleft",20);ha(">>=","assignshiftright",20);ha(">>>=","assignshiftrightunsigned",20);C("?",function(a,b){b.left=a;b.right=k(10);l(":");b["else"]=k(10);return b},30);C("||","or",40);C("&&","and",50);ga("|","bitor",70);ga("^","bitxor",80);ga("&","bitand",90);Y("==",function(a,b){(!g.eqnull||!(a.value==="null"||b.value==="null"))&&g.eqeqeq?d("Expected '{a}' and instead saw '{b}'.",this,"===","=="):
qa(a)?d("Use '{a}' to compare with '{b}'.",this,"===",a.value):qa(b)&&d("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this});Y("===");Y("!=",function(a,b){(!g.eqnull||!(a.value==="null"||b.value==="null"))&&g.eqeqeq?d("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):qa(a)?d("Use '{a}' to compare with '{b}'.",this,"!==",a.value):qa(b)&&d("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this});Y("!==");Y("<");Y(">");Y("<=");Y(">=");ga("<<","shiftleft",120);ga(">>",
"shiftright",120);ga(">>>","shiftrightunsigned",120);C("in","in",120);C("instanceof","instanceof",120);C("+",function(a,b){var c=k(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value=a.value+c.value;a.character=c.character;!g.scripturl&&sa.test(a.value)&&d("JavaScript URL.",a);return a}b.left=a;b.right=c;return b},130);E("+","num");E("+++",function(){d("Confusing pluses.");this.right=k(150);this.arity="unary";return this});C("+++",function(a){d("Confusing pluses.");this.left=a;this.right=
k(130);return this},130);C("-","sub",130);E("-","neg");E("---",function(){d("Confusing minuses.");this.right=k(150);this.arity="unary";return this});C("---",function(a){d("Confusing minuses.");this.left=a;this.right=k(130);return this},130);C("*","mult",140);C("/","div",140);C("%","mod",140);Oa("++","postinc");E("++","preinc");G["++"].exps=!0;Oa("--","postdec");E("--","predec");G["--"].exps=!0;E("delete",function(){var a=k(0);(!a||a.id!=="."&&a.id!=="[")&&d("Variables should not be deleted.");this.first=
a;return this}).exps=!0;E("~",function(){g.bitwise&&d("Unexpected '{a}'.",this,"~");k(150);return this});E("!",function(){this.right=k(150);this.arity="unary";ib[this.right.id]===true&&d("Confusing use of '{a}'.",this,"!");return this});E("typeof","typeof");E("new",function(){var a=k(155),e;if(a&&a.id!=="function")if(a.identifier){a["new"]=true;switch(a.value){case "Number":case "String":case "Boolean":case "Math":case "JSON":d("Do not use {a} as a constructor.",f,a.value);break;case "Function":g.evil||
d("The Function constructor is eval.");break;case "Date":case "RegExp":break;default:if(a.id!=="function"){e=a.value.substr(0,1);g.newcap&&(e<"A"||e>"Z")&&d("A constructor name should start with an uppercase letter.",f)}}}else a.id!=="."&&(a.id!=="["&&a.id!=="(")&&d("Bad constructor.",f);else g.supernew||d("Weird construction. Delete 'new'.",this);O(f,b);b.id!=="("&&!g.supernew&&d("Missing '()' invoking a constructor.");this.first=a;return this});G["new"].exps=!0;E("void").exps=!0;C(".",function(a,
b){O(y,f);xa();var c=ia();typeof c==="string"&&Ca(c);b.left=a;b.right=c;a&&a.value==="arguments"&&(c==="callee"||c==="caller")?g.noarg?d("Avoid arguments.{a}.",a,c):H["use strict"]&&d("Strict violation.",void 0,void 0,void 0,void 0,void 0):!g.evil&&(a&&a.value==="document"&&(c==="write"||c==="writeln"))&&d("document.write can be a form of eval.",a);!g.evil&&(c==="eval"||c==="execScript")&&d("eval is evil.");return b},160,!0);C("(",function(a,e){y.id!=="}"&&y.id!==")"&&xa(y,f);A();g.immed&&(!a.immed&&
a.id==="function")&&d("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,h=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&(a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date")&&(a.value==="Math"?d("Math is not a function.",a):g.newcap&&d("Missing 'new' prefix when invoking a constructor.",a));if(b.id!==
")")for(;;){h[h.length]=k(10);c=c+1;if(b.id!==",")break;J()}l(")");A(y,f);if(typeof a==="object"){a.value==="parseInt"&&c===1&&d("Missing radix parameter.",a);g.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?d("eval is evil.",a):h[0]&&(h[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval"))&&d("Implied eval is evil. Pass a function instead of a string.",a));!a.identifier&&(a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?")&&d("Bad invocation.",
a)}e.left=a;return e},155,!0).exps=!0;E("(",function(){A();if(b.id==="function")b.immed=true;var a=k(0);l(")",this);A(y,f);g.immed&&a.id==="function"&&(b.id==="("||b.id==="."&&(I().value==="call"||I().value==="apply")?d("Move the invocation into the parens that contain the function.",b):d("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a});C("[",function(a,b){xa(y,f);A();var c=k(0),h;if(c&&c.type==="(string)"){!g.evil&&(c.value==="eval"||c.value===
"execScript")&&d("eval is evil.",b);Ca(c.value);if(!g.sub&&Ia.test(c.value)){h=G[c.value];(!h||!h.reserved)&&d("['{a}'] is better written in dot notation.",c,c.value)}}l("]",b);A(y,f);b.left=a;b.right=c;return b},160,!0);E("[",function(){var a=f.line!==b.line;this.first=[];if(a){q=q+g.indent;b.from===q+g.indent&&(q=q+g.indent)}for(;b.id!=="(end)";){for(;b.id===",";){d("Extra comma.");l(",")}if(b.id==="]")break;a&&f.line!==b.line&&P();this.first.push(k(10));if(b.id===","){J();if(b.id==="]"&&!g.es5){d("Extra comma.",
f);break}}else break}if(a){q=q-g.indent;P()}l("]",this);return this},160);(function(a){a.nud=function(){function a(c,e){p[c]&&D(p,c)?d("Duplicate member '{a}'.",b,m):p[c]={};p[c].basic=true;p[c].basicToken=e}function c(a,c){p[a]&&D(p,a)?(p[a].basic||p[a].setter)&&d("Duplicate member '{a}'.",b,m):p[a]={};p[a].setter=true;p[a].setterToken=c}function h(a){p[a]&&D(p,a)?(p[a].basic||p[a].getter)&&d("Duplicate member '{a}'.",b,m):p[a]={};p[a].getter=true;p[a].getterToken=f}var r,i,m,o,p={};if(r=f.line!==
b.line){q=q+g.indent;b.from===q+g.indent&&(q=q+g.indent)}for(;;){if(b.id==="}")break;r&&P();if(b.value==="get"&&I().id!==":"){l("get");g.es5||d("get/set are ES5 features.",void 0,void 0,void 0,void 0,void 0);(m=Ea())||d("Missing property name.",void 0,void 0,void 0,void 0,void 0);h(m);o=b;O(f,b);i=ua();(i=i["(params)"])&&d("Unexpected parameter '{a}' in get {b} function.",o,i[0],m);O(f,b)}else if(b.value==="set"&&I().id!==":"){l("set");g.es5||d("get/set are ES5 features.",void 0,void 0,void 0,void 0,
void 0);(m=Ea())||d("Missing property name.",void 0,void 0,void 0,void 0,void 0);c(m,b);o=b;O(f,b);i=ua();i=i["(params)"];(!i||i.length!==1)&&d("Expected a single parameter in set {a} function.",o,m)}else{m=Ea();a(m,b);if(typeof m!=="string")break;l(":");t(f,b);k(10)}Ca(m);if(b.id===","){J();b.id===","?d("Extra comma.",f):b.id==="}"&&!g.es5&&d("Extra comma.",f)}else break}if(r){q=q-g.indent;P()}l("}",this);if(g.es5)for(var n in p)D(p,n)&&(p[n].setter&&!p[n].getter)&&d("Setter is defined without getter.",
p[n].setterToken);return this};a.fud=function(){d("Expected to see a statement and instead saw a block.",f,void 0,void 0,void 0,void 0)}})(z("{"));La=function(){Q("const",function(a){var e,c;for(this.first=[];;){t(f,b);e=ia();h[e]==="const"&&d("const '"+e+"' has already been declared");h["(global)"]&&w[e]===false&&d("Redefinition of '{a}'.",f,e);V(e,"const");if(a)break;c=f;this.first.push(f);b.id!=="="&&d("const '{a}' is initialized to 'undefined'.",f,e);if(b.id==="="){t(f,b);l("=");t(f,b);b.id===
"undefined"&&d("It is not necessary to initialize '{a}' to 'undefined'.",f,e);I(0).id==="="&&b.identifier&&d("Constant {a} was not declared correctly.",b,b.value,void 0,void 0,void 0);e=k(0);c.first=e}if(b.id!==",")break;J()}return this}).exps=true};var ma=Q("var",function(a){var e,c;h["(onevar)"]&&g.onevar?d("Too many var statements."):h["(global)"]||(h["(onevar)"]=true);for(this.first=[];;){t(f,b);e=ia();g.esnext&&h[e]==="const"&&d("const '"+e+"' has already been declared");h["(global)"]&&w[e]===
false&&d("Redefinition of '{a}'.",f,e);V(e,"unused");if(a)break;c=f;this.first.push(f);if(b.id==="="){t(f,b);l("=");t(f,b);b.id==="undefined"&&d("It is not necessary to initialize '{a}' to 'undefined'.",f,e);I(0).id==="="&&b.identifier&&d("Variable {a} was not declared correctly.",b,b.value,void 0,void 0,void 0);e=k(0);c.first=e}if(b.id!==",")break;J()}return this});ma.exps=!0;ba("function",function(){ja&&d("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",
f);var a=ia();g.esnext&&h[a]==="const"&&d("const '"+a+"' has already been declared");O(f,b);V(a,"unction");ua(a,true);b.id==="("&&b.line===f.line&&d("Function declarations are not invocable. Wrap the whole function invocation in parens.",void 0,void 0,void 0,void 0,void 0);return this});E("function",function(){var a=za();a?O(f,b):t(f,b);ua(a);!g.loopfunc&&h["(loopage)"]&&d("Don't make functions within a loop.");return this});ba("if",function(){var a=b;l("(");t(this,a);A();k(20);if(b.id==="="){g.boss||
d("Expected a conditional expression and instead saw an assignment.");l("=");k(20)}l(")",a);A(y,f);L(true,true);if(b.id==="else"){t(f,b);l("else");b.id==="if"||b.id==="switch"?Ba(true):L(true,true)}return this});ba("try",function(){var a,e;L(false);if(b.id==="catch"){l("catch");t(f,b);l("(");e=v;v=Object.create(e);a=b.value;b.type!=="(identifier)"?d("Expected an identifier and instead saw '{a}'.",b,a):V(a,"exception");l();l(")");L(false);a=true;v=e}if(b.id==="finally"){l("finally");L(false)}else{a||
d("Expected '{a}' and instead saw '{b}'.",b,"catch",b.value,void 0,void 0);return this}});ba("while",function(){var a=b;h["(breakage)"]=h["(breakage)"]+1;h["(loopage)"]=h["(loopage)"]+1;l("(");t(this,a);A();k(20);if(b.id==="="){g.boss||d("Expected a conditional expression and instead saw an assignment.");l("=");k(20)}l(")",a);A(y,f);L(true,true);h["(breakage)"]=h["(breakage)"]-1;h["(loopage)"]=h["(loopage)"]-1;return this}).labelled=!0;ba("with",function(){var a=b;H["use strict"]?d("'with' is not allowed in strict mode.",
f,void 0,void 0,void 0,void 0):g.withstmt||d("Don't use 'with'.",f);l("(");t(this,a);A();k(0);l(")",a);A(y,f);L(true,true);return this});ba("switch",function(){var a=b,e=false;h["(breakage)"]=h["(breakage)"]+1;l("(");t(this,a);A();this.condition=k(20);l(")",a);A(y,f);t(f,b);a=b;l("{");t(f,b);q=q+g.indent;for(this.cases=[];;)switch(b.id){case "case":switch(h["(verb)"]){case "break":case "case":case "continue":case "return":case "switch":case "throw":break;default:Ja.test(M[b.line-2])||d("Expected a 'break' statement before 'case'.",
f)}P(-g.indent);l("case");this.cases.push(k(20));e=true;l(":");h["(verb)"]="case";break;case "default":switch(h["(verb)"]){case "break":case "continue":case "return":case "throw":break;default:Ja.test(M[b.line-2])||d("Expected a 'break' statement before 'default'.",f)}P(-g.indent);l("default");e=true;l(":");break;case "}":q=q-g.indent;P();l("}",a);if(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")g.onecase||d("This 'switch' should be an 'if'.",this);h["(breakage)"]=
h["(breakage)"]-1;h["(verb)"]=void 0;return;case "(end)":d("Missing '{a}'.",b,"}",void 0,void 0,void 0);return;default:if(e)switch(f.id){case ",":d("Each value should have its own case label.",void 0,void 0,void 0,void 0,void 0);return;case ":":e=false;ta();break;default:d("Missing ':' on a case clause.",f,void 0,void 0,void 0,void 0);return}else if(f.id===":"){l(":");d("Unexpected '{a}'.",f,":",void 0,void 0,void 0);ta()}else{d("Expected '{a}' and instead saw '{b}'.",b,"case",b.value,void 0,void 0);
return}}}).labelled=!0;Q("debugger",function(){g.debug||d("All 'debugger' statements should be removed.");return this}).exps=!0;(function(){var a=Q("do",function(){h["(breakage)"]=h["(breakage)"]+1;h["(loopage)"]=h["(loopage)"]+1;this.first=L(true);l("while");var a=b;t(f,a);l("(");A();k(20);if(b.id==="="){g.boss||d("Expected a conditional expression and instead saw an assignment.");l("=");k(20)}l(")",a);A(y,f);h["(breakage)"]=h["(breakage)"]-1;h["(loopage)"]=h["(loopage)"]-1;return this});a.labelled=
true;a.exps=true})();ba("for",function(){var a;a=b;h["(breakage)"]=h["(breakage)"]+1;h["(loopage)"]=h["(loopage)"]+1;l("(");t(this,a);A();if(I(b.id==="var"?1:0).id==="in"){if(b.id==="var"){l("var");ma.fud.call(ma,true)}else{switch(h[b.value]){case "unused":h[b.value]="var";break;case "var":break;default:d("Bad for in variable '{a}'.",b,b.value)}l()}l("in");k(20);l(")",a);a=L(true,true);g.forin&&(a&&(a.length>1||typeof a[0]!=="object"||a[0].value!=="if"))&&d("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",
this)}else{if(b.id!==";")if(b.id==="var"){l("var");ma.fud.call(ma)}else for(;;){k(0,"for");if(b.id!==",")break;J()}ea(f);l(";");if(b.id!==";"){k(20);if(b.id==="="){g.boss||d("Expected a conditional expression and instead saw an assignment.");l("=");k(20)}}ea(f);l(";");b.id===";"&&d("Expected '{a}' and instead saw '{b}'.",b,")",";",void 0,void 0);if(b.id!==")")for(;;){k(0,"for");if(b.id!==",")break;J()}l(")",a);A(y,f);L(true,true)}h["(breakage)"]=h["(breakage)"]-1;h["(loopage)"]=h["(loopage)"]-1;return this}).labelled=
!0;Q("break",function(){var a=b.value;h["(breakage)"]===0&&d("Unexpected '{a}'.",b,this.value);g.asi||ea(this);if(b.id!==";"&&f.line===b.line){h[a]!=="label"?d("'{a}' is not a statement label.",b,a):v[a]!==h&&d("'{a}' is out of scope.",b,a);this.first=b;l()}ra("break");return this}).exps=!0;Q("continue",function(){var a=b.value;h["(breakage)"]===0&&d("Unexpected '{a}'.",b,this.value);g.asi||ea(this);if(b.id!==";"){if(f.line===b.line){h[a]!=="label"?d("'{a}' is not a statement label.",b,a):v[a]!==
h&&d("'{a}' is out of scope.",b,a);this.first=b;l()}}else h["(loopage)"]||d("Unexpected '{a}'.",b,this.value);ra("continue");return this}).exps=!0;Q("return",function(){if(this.line===b.line){b.id==="(regexp)"&&d("Wrap the /regexp/ literal in parens to disambiguate the slash operator.");if(b.id!==";"&&!b.reach){t(f,b);I().value==="="&&!g.boss&&o("Did you mean to return a conditional instead of an assignment?",f.line,f.character+1);this.first=k(0)}}else g.asi||ea(this);ra("return");return this}).exps=
!0;Q("throw",function(){ea(this);t(f,b);this.first=k(20);ra("throw");return this}).exps=!0;x("class");x("const");x("enum");x("export");x("extends");x("import");x("super");x("let");x("yield");x("implements");x("interface");x("package");x("private");x("protected");x("public");x("static");var da=function(a,e,c){var k,r,i,m={};JSHINT.errors=[];JSHINT.undefs=[];w=Object.create(kb);B(w,c||{});if(e){if(k=e.predef)if(Array.isArray(k))for(r=0;r<k.length;r=r+1)w[k[r]]=true;else if(typeof k==="object"){i=Object.keys(k);
for(r=0;r<i.length;r=r+1)w[i[r]]=!!k[i[r]]}k=Object.keys(e);for(r=0;r<k.length;r++)m[k[r]]=e[k[r]]}g=m;g.indent=g.indent||4;g.maxerr=g.maxerr||50;wa="";for(r=0;r<g.indent;r=r+1)wa=wa+" ";q=1;v=Ma=Object.create(w);h={"(global)":true,"(name)":"(global)","(scope)":v,"(breakage)":0,"(loopage)":0};ka=[h];Ha=[];ca={};aa=null;F={};ja=false;oa=[];S=false;na=0;W.init(a);Ga=true;H={};y=f=b=G["(begin)"];for(var o in e)D(e,o)&&Z(o,f);U();B(w,c||{});J.first=true;va=void 0;try{l();switch(b.id){case "{":case "[":S=
g.laxbreak=true;Fa();break;default:Pa();H["use strict"]&&!g.globalstrict&&d('Use the function form of "use strict".',y);ta()}l(b&&b.value!=="."?"(end)":void 0);a=function(a,b){do{if(typeof b[a]==="string"){b[a]==="unused"?b[a]="var":b[a]==="unction"&&(b[a]="closure");return true}b=b["(context)"]}while(b);return false};e=function(a,b){if(F[a]){for(var c=[],d=0;d<F[a].length;d=d+1)F[a][d]!==b&&c.push(F[a][d]);c.length===0?delete F[a]:F[a]=c}};for(r=0;r<JSHINT.undefs.length;r=r+1){i=JSHINT.undefs[r].slice(0);
a(i[2].value,i[0])?e(i[2].value,i[2].line):d.apply(d,i.slice(1))}}catch(p){if(p){i=b||{};JSHINT.errors.push({raw:p.raw,reason:p.message,line:p.line||i.line,character:p.character||i.from},null)}}return JSHINT.errors.length===0};da.data=function(){var a={functions:[],options:g},b;b=[];var c,d,f,i,h=[];if(da.errors.length)a.errors=da.errors;if(S)a.json=true;for(i in F)D(F,i)&&b.push({name:i,line:F[i]});if(b.length>0)a.implieds=b;if(Ha.length>0)a.urls=Ha;b=Object.keys(v);if(b.length>0)a.globals=b;for(d=
1;d<ka.length;d=d+1){c=ka[d];b={};for(f=0;f<la.length;f=f+1)b[la[f]]=[];for(i in c)if(D(c,i)&&i.charAt(0)!=="("){f=c[i];f==="unction"&&(f="unused");if(Array.isArray(b[f])){b[f].push(i);f==="unused"&&h.push({name:i,line:c["(line)"],"function":c["(name)"]})}}for(f=0;f<la.length;f=f+1)b[la[f]].length===0&&delete b[la[f]];b.name=c["(name)"];b.param=c["(params)"];b.line=c["(line)"];b.last=c["(last)"];a.functions.push(b)}if(h.length>0)a.unused=h;for(i in ca)if(typeof ca[i]==="number"){a.member=ca;break}return a};
da.report=function(a){function b(a,c){var d,e,f;if(c){k.push("<div><i>"+a+"</i> ");c=c.sort();for(e=0;e<c.length;e=e+1)if(c[e]!==f){f=c[e];k.push((d?", ":"")+f);d=true}k.push("</div>")}}var c=da.data(),d=[],f,g,h;f="";var l,k=[];if(c.errors||c.implieds||c.unused){g=true;k.push("<div id=errors><i>Error:</i>");if(c.errors)for(h=0;h<c.errors.length;h=h+1)if(d=c.errors[h]){f=d.evidence||"";k.push("<p>Problem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+
"</p><p class=evidence>"+(f&&(f.length>80?f.slice(0,77)+"...":f).entityify())+"</p>")}if(c.implieds){d=[];for(h=0;h<c.implieds.length;h=h+1)d[h]="<code>"+c.implieds[h].name+"</code>&nbsp;<i>"+c.implieds[h].line+"</i>";k.push("<p><i>Implied global:</i> "+d.join(", ")+"</p>")}if(c.unused){d=[];for(h=0;h<c.unused.length;h=h+1)d[h]="<code><u>"+c.unused[h].name+"</u></code>&nbsp;<i>"+c.unused[h].line+"</i> <code>"+c.unused[h]["function"]+"</code>";k.push("<p><i>Unused variable:</i> "+d.join(", ")+"</p>")}c.json&&
k.push("<p>JSON: bad.</p>");k.push("</div>")}if(!a){k.push("<br><div id=functions>");c.urls&&b("URLs<br>",c.urls,"<br>");c.json&&!g?k.push("<p>JSON: good.</p>"):c.globals?k.push("<div><i>Global</i> "+c.globals.sort().join(", ")+"</div>"):k.push("<div><i>No new global variables introduced.</i></div>");for(h=0;h<c.functions.length;h=h+1){a=c.functions[h];k.push("<br><div class=function><i>"+a.line+"-"+a.last+"</i> "+(a.name||"")+"("+(a.param?a.param.join(", "):"")+")</div>");b("<big><b>Unused</b></big>",
a.unused);b("Closure",a.closure);b("Variable",a["var"]);b("Exception",a.exception);b("Outer",a.outer);b("Global",a.global);b("Label",a.label)}if(c.member){d=Object.keys(c.member);if(d.length){d=d.sort();f="<br><pre id=members>/*members ";g=10;for(h=0;h<d.length;h=h+1){a=d[h];l=a.name();if(g+l.length>72){k.push(f+"<br>");f=" ";g=1}g=g+(l.length+2);c.member[a]===1&&(l="<i>"+l+"</i>");h<d.length-1&&(l=l+", ");f=f+l}k.push(f+"<br>*/</pre>")}k.push("</div>")}}return k.join("")};return da.jshint=da}();
"object"===typeof exports&&exports&&(exports.JSHINT=JSHINT);(function(T){function D(){console.log("JSHint for PhantomJS\n \nUsage:\n phantomjs jshint-phantomjs.min.js jsfile")}var Z=require("fs"),B=T.args,U=0,K,d;if(0===B.length||1<B.length)D(),T.exit(U);Z.isReadable(B)||(U=1,D(),T.exit(U));K=JSHINT(Z.read(B));Z=JSHINT.errors.length;K&&T.exit(U);for(K=0;K<Z;K+=1)(d=JSHINT.errors[K])&&console.log([B,d.line,d.character,d.reason].join(":"));T.exit(U)})(phantom);
// ==ClosureCompiler==
// @code_url https://raw.github.com/douglascrockford/JSLint/master/jslint.js
// ==/ClosureCompiler==
/*jslint indent:2 */
/*global phantom, require, console, JSLINT */
(function (p) {
"use strict";
var fs = require("fs"),
a = p.args,
c = 0,
r,
l,
i,
e;
function outputHelp() {
console.log([
"JSLint " + JSLINT.edition + " for PhantomJS",
" ",
"Usage:",
" phantomjs jslint-phantomjs.min.js jsfile"
].join("\n"));
}
if (a.length === 0 || a.length > 1) {
outputHelp();
p.exit(c);
}
if (!fs.isReadable(a)) {
c = 1;
outputHelp();
p.exit(c);
}
r = JSLINT(fs.read(a));
l = JSLINT.errors.length;
if (r) {
p.exit(c);
}
for (i = 0; i < l; i = i + 1) {
e = JSLINT.errors[i];
if (e) {
console.log([a, e.line, e.character, e.reason].join(":"));
}
}
p.exit(c);
}(phantom));
var JSLINT=function(){function I(a,e){var b,c=a.length,f={};for(b=0;b<c;b+=1)f[a[b]]=e;return f}function Ba(){}function pa(a){return Kb[a]||"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)}function O(a){Object.keys(a).forEach(function(e){M[e]=a[e]})}function ga(){if(!g.safe&&(g.rhino&&(O(Lb),g.rhino=!1),g.devel&&(O(Mb),g.devel=!1),g.browser&&(O(Nb),g.browser=!1),g.windows&&(O(Ob),g.windows=!1),g.node))O(Pb),g.node=!1,Qa=!0}function q(a){a||(a=b);return a.number||a.string}function ha(a,e,b){throw{name:"JSLintError",
line:e,character:b,message:C.scanned_a_b.supplant({a:a,b:Math.floor(100*(e/Ca.length))})};}function c(a,e,d,c,f,n){var h,j,e=e||b;j=e.line||0;h=e.from||0;a={id:"(error)",raw:C[a]||a,evidence:Ca[j-1]||"",line:j,character:h,a:d||("(number)"===e.id?""+e.number:e.string),b:c,c:f,d:n};a.reason=a.raw.supplant(a);JSLINT.errors.push(a);g.passfail&&ha(C.stopping,j,h);Ra+=1;Ra>=g.maxerr&&ha(C.too_many,j,h);return a}function r(a,e,b,f,g,n,h){return c(a,{line:e,from:b},f,g,n,h)}function k(a,e,b,f,g,n){a=c(a,
e,b,f,g,n);ha(C.stopping,a.line,a.character)}function J(a,e,b,c,f,g,h){return k(a,{line:e,from:b},c,f,g,h)}function qa(a){!g.white&&b.from!==a&&c("expected_a_at_b_c",b,"",a,b.from)}function X(a,e,b){return a[e]!==b?(c("expected_a_b",a,b,a[e]),!0):!1}function va(a,e,b){b=b||a.string;j===Y?(g.safe&&c("adsafe_a",a,b),"string"!==typeof Y[b]&&(a.writeable="boolean"===typeof M[b]?M[b]:!0,a.funct=j,Da[b]=a),"becoming"===e&&(e="var")):"string"===typeof j[b]?"undef"===j[b]?(g.undef||c("used_before_a",a,b),
e="var"):c("already_defined",a,b):(a.funct=j,a.writeable=!0,y[b]=a);j[b]=e}function S(a){for(var e,b=0,a=a||0;b<=a;)(e=Ea[b])||(e=Ea[b]=Fa.token()),b+=1;return e}function f(a,e){if(p){if(da&&b.line!==h.line){if((da!==p||!b.edge)&&b.from===p.at-(b.edge?g.indent:0)){for(var d=p;;){d.at-=g.indent;if(d===da)break;d=d.was}d.open=!1}da=null}"?"===b.id&&(":"===p.mode&&h.line!==b.line)&&(p.at-=g.indent);p.open?b.edge?"label"===b.edge?qa(1):"case"===b.edge||"statement"===p.mode?qa(p.at-g.indent):("array"!==
p.mode||b.line!==h.line)&&qa(p.at):b.line!==h.line&&(b.from<p.at+("expression"===p.mode?0:g.indent)&&qa(p.at+g.indent),p.wrap=!0):b.line!==h.line&&(b.edge?qa(p.at):(p.wrap=!0,"statement"===p.mode||"var"===p.mode?qa(p.at+g.indent):b.from<p.at+("expression"===p.mode?0:g.indent)&&qa(p.at+g.indent)))}switch(h.id){case "(number)":"."===b.id&&c("trailing_decimal_a");break;case "-":("-"===b.id||"--"===b.id)&&c("confusing_a");break;case "+":("+"===b.id||"++"===b.id)&&c("confusing_a")}if("(string)"===h.id||
h.identifier)fb=h.string;a&&b.id!==a&&(e?c("expected_a_b_from_c_d",b,a,e.id,e.line,q()):(!b.identifier||b.string!==a)&&c("expected_a_b",b,a,q()));T=h;h=b;b=Ea.shift()||Fa.token()}function U(a){b.identifier&&b.string===a?f():c("expected_a_b",b,a,q())}function A(a){b.edge=p?p.open&&(a||"edge"):""}function G(a){var e;"number"===typeof a?p={at:+a,open:!0,was:p}:p?"statement"===a?p={at:p.at,open:!0,was:p}:(e="var"===a||b.line!==h.line,p={at:(e||"control"===a?p.at+g.indent:p.at)+(p.wrap?g.indent:0),mode:a,
open:e,was:p},"var"===a&&e&&(da=p)):p={at:1,mode:"statement",open:!0}}function D(a,e){a&&(p&&p.open&&(p.at-=g.indent,A()),f(a,e));p&&(p=p.was)}function v(a,e){e=e||b;"(end)"!==e.id&&(!g.white&&(h.line!==e.line||h.thru+1!==e.from))&&c("expected_space_a_b",e,q(h),q(e))}function wa(a,e){a=a||h;e=e||b;"(end)"!==e.id&&(a.line!==e.line||!g.white&&a.thru+1!==e.from)&&c("expected_space_a_b",e,q(a),q(e))}function t(a,e){a=a||h;e=e||b;(!g.white||"styleproperty"===s||"style"===s)&&(a.thru!==e.from&&a.line===
e.line)&&c("unexpected_space_a_b",e,q(a),q(e))}function B(a,e){a=a||h;e=e||b;"(end)"!==e.id&&(a.line!==e.line||!g.white&&a.thru!==e.from)&&c("unexpected_space_a_b",e,q(a),q(e))}function F(a,e){g.white||(a=a||h,e=e||b,a.thru===e.from&&a.line===e.line&&c("missing_space_a_b",e,q(a),q(e)))}function K(){","!==b.id?r("expected_a_b",h.line,h.thru,",",q()):(g.white||B(),f(","),F())}function P(){";"!==b.id?r("expected_a_b",h.line,h.thru,";",q()):(g.white||B(),f(";"),!0!==Qb[b.id]&&F())}function Sa(){return"use strict"===
b.string?(ra&&c("unnecessary_use"),A(),f(),P(),ra=!0,g.undef=!1,!0):!1}function Q(a,e){if(a===e)return!0;if(Array.isArray(a)){if(Array.isArray(e)&&a.length===e.length){var b;for(b=0;b<a.length;b+=1)if(!Q(a[b],e[b]))return!1;return!0}return!1}if(Array.isArray(e))return!1;if("(number)"===a.id&&"(number)"===e.id)return a.number===e.number;if(a.arity===e.arity&&a.string===e.string)switch(a.arity){case "prefix":case "suffix":case void 0:return a.id===e.id&&Q(a.first,e.first);case "infix":return Q(a.first,
e.first)&&Q(a.second,e.second);case "ternary":return Q(a.first,e.first)&&Q(a.second,e.second)&&Q(a.third,e.third);case "function":case "regexp":break;default:return!0}else{if("."===a.id&&"["===e.id&&"infix"===e.arity)return a.second.string===e.second.string&&"(string)"===e.second.id;if("["===a.id&&"infix"===a.arity&&"."===e.id)return a.second.string===e.second.string&&"(string)"===a.second.id}return!1}function l(a,e){var d;"(end)"===b.id&&k("unexpected_a",h,b.id);f();g.safe&&(y[h.string]&&y[h.string]===
Da[h.string]&&"("!==b.id&&"."!==b.id)&&c("adsafe_a",h);e&&(fb="anonymous",j["(verb)"]=h.string);if(!0===e&&h.fud)d=h.fud();else{if(h.nud)d=h.nud();else{if("(number)"===b.id&&"."===h.id)return c("leading_decimal_a",h,q()),f(),h;k("expected_identifier_a",h,h.id)}for(;a<b.lbp;)f(),h.led?d=h.led(d):k("expected_operator_a",h,h.id)}return d}function z(a,e){var b=aa[a];if(!b||"object"!==typeof b)aa[a]=b={id:a,lbp:e||0,string:a};return b}function sa(a){a.postscript=!0;return a}function gb(a){var b=z(a,0);
b.from=1;b.thru=1;b.line=0;b.edge="edge";a.string=a;return sa(b)}function N(a,b){var d=z(a);d.identifier=d.reserved=!0;d.fud=b;return d}function Ta(a,b){N(a,b).labeled=!0}function Ua(a,b){N(a,b).disrupt=!0}function xb(a){var b=a.id.charAt(0);if("a"<=b&&"z">=b||"A"<=b&&"Z">=b)a.identifier=a.reserved=!0;return a}function L(a,b){var d=z(a,150);xb(d);d.nud="function"===typeof b?b:function(){"typeof"===a?v():B();this.first=l(150);this.arity="prefix";if("++"===this.id||"--"===this.id)g.plusplus?(!this.first.identifier||
this.first.reserved)&&("."!==this.first.id&&"["!==this.first.id)&&c("bad_operand",this):c("unexpected_a",this);return this};return d}function ea(a,b,d){a=z(a);a.arity=b;d&&(a.nud=d);return a}function x(a,b){var d=z(a);d.identifier=d.reserved=!0;"function"===typeof b&&(d.nud=b);return d}function xa(a){var b=x(a);b.string=a;b.nud=Ga;return b}function hb(a,b){return x(a,function(){"function"===typeof b&&b(this);return this})}function E(a,b,d,f){a=z(a,b);xb(a);a.led=function(a){this.arity="infix";f||
(F(T,h),F());!g.bitwise&&this.bitwise&&c("unexpected_a",this);if("function"===typeof d)return d(a,this);this.first=a;this.second=l(b);return this};return a}function ba(a,b){a.assign&&c(b||C.conditional_assignment,a);return a}function fa(a,b){switch(a.id){case "[":case "-":"infix"!==a.arity&&c(b||C.weird_condition,a);break;case "false":case "function":case "Infinity":case "NaN":case "null":case "true":case "undefined":case "void":case "(number)":case "(regexp)":case "(string)":case "{":c(b||C.weird_condition,
a);break;case "(":"."===a.first.id&&!0===Rb[a.first.second.string]&&c(b||C.weird_condition,a)}return a}function yb(a){switch(a.arity){case "prefix":switch(a.id){case "{":case "[":c("unexpected_a",a);break;case "!":c("confusing_a",a)}break;case "function":case "regexp":c("unexpected_a",a);break;default:"NaN"===a.id&&c("isNaN",a)}return a}function ia(a,b){return E(a,100,function(a,f){yb(a);b&&!g.eqeq&&c("expected_a_b",f,b,f.id);var h=l(100);(Q(a,h)||("(string)"===a.id||"(number)"===a.id)&&("(string)"===
h.id||"(number)"===h.id))&&c("weird_relation",f);f.first=a;f.second=yb(h);return f})}function Z(a,b){var d=E(a,20,function(a,b){var e;b.first=a;if(a.identifier)y[a.string]?!1===y[a.string].writeable&&c("read_only",a):k("read_only"),j["(params)"]&&j["(params)"].forEach(function(b){b.string===a.string&&(b.assign=!0)});else if(g.safe){e=a;do"boolean"===typeof M[e.string]&&c("adsafe_a",e),e=e.first;while(e)}a===aa["function"]&&c("identifier_function",h);"."===a.id||"["===a.id?(!a.first||"arguments"===
a.first.string)&&c("bad_assignment",b):a.identifier?!a.reserved&&"exception"===j[a.string]&&c("assign_exception",a):c("bad_assignment",b);b.second=l(19);"="===b.id&&Q(b.first,b.second)&&c("weird_assignment",b);return b});d.assign=!0;b&&aa[b].bitwise&&(d.bitwise=!0);return d}function ya(a,b){var d=E(a,b,"number");d.bitwise=!0;return d}function zb(a){a=z(a,150);a.led=function(a){B(T,h);g.plusplus?(!a.identifier||a.reserved)&&("."!==a.id&&"["!==a.id)&&c("bad_operand",this):c("unexpected_a",this);this.first=
a;this.arity="suffix";return this};return a}function ib(){if(b.identifier)return f(),g.safe&&Va[h.string]?c("adsafe_a",h):h.reserved&&!g.es5&&c("expected_identifier_a_reserved",h),h.string}function Ha(){var a=ib();a||k("function"===h.id&&"("===b.id?"name_function":"expected_identifier_a");return a}function jb(){var a,e=y;if(";"===b.id)c("unexpected_a"),P();else{b.identifier&&(!b.reserved&&":"===S().id)&&(A("label"),a=b,f(),f(":"),y=Object.create(e),va(a,"label"),!0!==b.labeled||j===Y?k("unexpected_label_a",
a):kb.test(a.string+":")&&c("url",a),b.label=a);"else"!==h.id&&A();G("statement");if(a=l(0,!0))"statement"===a.arity?"switch"===a.id||a.block&&"do"!==a.id?F():P():("("===a.id?"new"===a.first.id&&c("bad_new"):!a.assign&&("delete"!==a.id&&"++"!==a.id&&"--"!==a.id)&&c("assignment_function_expression",h),P());D();y=e;return a}}function ta(){for(var a=[],e,d;!0!==b.postscript;)if(";"===b.id)c("unexpected_a",b),P();else if("use strict"===b.string&&((!Qa&&"script"!==s||j!==Y||0<a.length)&&c("function_strict"),
Sa()),e&&(c("unreachable_a_b",b,b.string,e.string),e=null),d=jb())a.push(d),d.disrupt&&(e=d,a.disrupt=!0);return a}function $(a){var e,d=b,i=ja,h=y,n=ra;ja=a;y=Object.create(y);F();"{"===b.id?(f("{"),G(),!a&&(!Sa()&&!n&&!g.sloppy&&j["(context)"]===Y)&&c("missing_use_strict"),e=ta(),ra=n,D("}",d)):a?(c("expected_a_b",b,"{",q()),e=[jb()],e.disrupt=e[0].disrupt):k("expected_a_b",b,"{",q());j["(verb)"]=null;y=h;ja=i;a&&0===e.length&&c("empty_block");return e}function Wa(a){g.properties&&"number"!==typeof ua[a]&&
c("unexpected_property_a",h,a);ua[a]="number"===typeof ua[a]?ua[a]+1:1}function lb(){var a=ib(!0);a||("(string)"===b.id?(a=b.string,g.safe&&(Va[a]?c("adsafe_a"):("_"===a.charAt(0)||"_"===a.charAt(a.length-1))&&c("dangling_a")),f()):"(number)"===b.id&&(a=b.number.toString(),f()));return a}function Sb(){var a=b,e=[];f("(");G();t();if(")"===b.id)return t(),D(")",a),e;for(;;)if(A(),Ha(),e.push(h),va(h,g.unparam?"parameter":"unparam"),","===b.id)K();else return t(),D(")",a),e}function Xa(a,e){var d=j,
f=g,h=y;j={"(name)":e||"'"+(fb||"").replace(Ab,pa)+"'","(line)":b.line,"(context)":d,"(breakage)":0,"(loopage)":0,"(scope)":y,"(token)":a};g=Object.create(f);y=Object.create(h);Ya.push(j);(a.name=e)&&va(a,"function",e);a.writeable=!1;a.first=j["(params)"]=Sb();v();a.block=$(!1);j["(arguments)"]&&a.first.forEach(function(a){a.assign&&c("parameter_arguments_a",a,a.string)});j=d;g=f;y=h}function mb(){function a(){var a=b,e={};f("{");if("}"!==b.id)for(;"(end)"!==b.id;){for(;","===b.id;)c("unexpected_a",
b),f(",");"(string)"!==b.id&&c("expected_string_a");!0===e[b.string]?c("duplicate_a"):"__proto__"===b.string?c("dangling_a"):e[b.string]=!0;f();f(":");mb();if(","!==b.id)break;f(",");if("}"===b.id){c("unexpected_a",h);break}}f("}",a)}function e(){var a=b;f("[");if("]"!==b.id)for(;"(end)"!==b.id;){for(;","===b.id;)c("unexpected_a",b),f(",");mb();if(","!==b.id)break;f(",");if("]"===b.id){c("unexpected_a",h);break}}f("]",a)}switch(b.id){case "{":a();break;case "[":e();break;case "true":case "false":case "null":case "(number)":case "(string)":f();
break;case "-":f("-");B();f("(number)");break;default:k("unexpected_a")}}function Ia(){if(b.identifier)return f(),!0}function Za(){"-"===b.id&&(f("-"),B());if("(number)"===b.id)return f("(number)"),!0}function Ja(){if("(string)"===b.id)return f(),!0}function ca(){var a,e,d,g;if(b.identifier){g=b.string;if("rgb"===g||"rgba"===g){f();d=b;f("(");for(a=0;3>a;a+=1)a&&K(),e=b.number,"(number)"!==b.id||0>e?(c("expected_positive_a",b),f()):(f(),"%"===b.id?(f("%"),100<e&&c("expected_percent_a",h,e)):255<e&&
c("expected_small_a",h,e));"rgba"===g&&(K(),e=b.number,("(number)"!==b.id||0>e||1<e)&&c("expected_fraction_a",b),f(),"%"===b.id&&(c("unexpected_a"),f("%")));f(")",d);return!0}if(!0===Tb[b.string])return f(),!0}else if("(color)"===b.id)return f(),!0;return!1}function w(){"-"===b.id&&(f("-"),B());return"(number)"===b.id?(f(),"(string)"!==b.id&&!0===Bb[b.string]?(B(),f()):0!==+h.number&&c("expected_linear_a"),!0):!1}function za(){if(b.identifier)switch(b.string){case "thin":case "medium":case "thick":return f(),
!0}else return w()}function Ka(){if(b.identifier){if("auto"===b.string)return f(),!0}else return w()}function $a(){return w()&&("(number)"!==b.id||w())}function ka(){var a,e;if(b.identifier&&"url"===b.string){b=Fa.range("(",")");e=b.string;a=e.charAt(0);if('"'===a||"'"===a)e.slice(-1)!==a?c("bad_url_a"):(e=e.slice(1,-1),0<=e.indexOf(a)&&c("bad_url_a"));e||c("missing_url");nb.test(e)&&k("bad_url_a");La.push(e);f();return!0}return!1}function ob(a){var e=0,d,c,g,h=0;switch(typeof a){case "function":return a();
case "string":return b.identifier&&b.string===a?(f(),!0):!1}for(;;){if(e>=a.length)return!1;g=a[e];e+=1;if("boolean"===typeof g)break;else"number"===typeof g?(d=g,g=a[e],e+=1):d=1;for(c=!1;0<d;)if(ob(g))c=!0,d-=1;else break;if(c)return!0}h=e;for(d=[];;){g=!1;for(e=h;e<a.length;e+=1)if(!d[e]&&ob(ab[a[e]])){g=c=!0;d[e]=!0;break}if(!g)return c}}function Cb(){for(var a;!("}"===b.id||"(end)"===b.id||R&&b.id===R);){for(a=void 0;"*"===b.id||"#"===b.id||"_"===b.string;)g.css||c("unexpected_a"),f();"-"===
b.id?(g.css||c("unexpected_a"),f("-"),b.identifier||c("expected_nonstandard_style_attribute"),f(),a=pb):(b.identifier?Object.prototype.hasOwnProperty.call(ab,b.string)?a=ab[b.string]:(a=pb,g.css||c("unrecognized_style_attribute_a")):c("expected_style_attribute"),f());f(":");b.identifier&&"inherit"===b.string?f():ob(a)||(c("unexpected_a"),f());"!"===b.id&&(f("!"),B(),b.identifier&&"important"===b.string?f():c("expected_a_b",b,"important",q()));"}"===b.id||b.id===R?c("expected_a_b",b,";",q()):P()}}
function qb(){if(b.identifier)Object.prototype.hasOwnProperty.call(rb,g.cap?b.string.toLowerCase():b.string)||c("expected_tagname_a"),f();else switch(b.id){case ">":case "+":f();qb();break;case ":":f(":");switch(b.string){case "active":case "after":case "before":case "checked":case "disabled":case "empty":case "enabled":case "first-child":case "first-letter":case "first-line":case "first-of-type":case "focus":case "hover":case "last-child":case "last-of-type":case "link":case "only-of-type":case "root":case "target":case "visited":U(b.string);
break;case "lang":U("lang");f("(");b.identifier||c("expected_lang_a");f(")");break;case "nth-child":case "nth-last-child":case "nth-last-of-type":case "nth-of-type":U(b.string);f("(");"(number)"===b.id?(f(),"n"===b.string&&b.identifier&&(B(),f(),"+"===b.id&&(B(),f("+"),B(),f("(number)")))):b.identifier&&("odd"===b.string||"even"===b.string)?f():c("unexpected_a");f(")");break;case "not":U("not");f("(");":"===b.id&&"not"===S(0).string&&c("not");qb();f(")");break;default:c("expected_pseudo_a")}break;
case "#":f("#");b.identifier||c("expected_id_a");f();break;case "*":f("*");break;case ".":f(".");b.identifier||c("expected_class_a");f();break;case "[":f("[");b.identifier||c("expected_attribute_a");f();if("="===b.id||"~="===b.string||"$="===b.string||"|="===b.string||"*="===b.id||"^="===b.id)f(),"(string)"!==b.id&&c("expected_string_a"),f();f("]");break;default:k("expected_selector_a")}}function Db(){for(;"}"!==b.id&&"</"!==b.id&&"(end)"!==b.id;){a:for("{"===b.id&&c("expected_style_pattern");;){qb();
if("</"===b.id||"{"===b.id||"}"===b.id||"(end)"===b.id)break a;","===b.id&&K()}s="styleproperty";";"===b.id?P():(f("{"),Cb(),s="style",f("}"))}}function Eb(){for(;"@"===b.id;)switch(S(),f("@"),b.string){case "import":U("import");ka()||(c("expected_a_b",b,"url",q()),f());P();break;case "media":for(U("media");;){(!b.identifier||!0!==Fb[b.string])&&k("expected_media_a");f();if(","!==b.id)break;K()}f("{");Db();f("}");break;case "font-face":U("font-face");f("{");U("font-family");f(":");!Ia()&&!Ja()&&k("expected_name_a");
P();U("src");for(f(":");;){"local"===b.string?(U("local"),f("("),nb.test(b.string)&&k("bad_url_a"),!Ia()&&!Ja()&&k("expected_name_a"),f(")")):ka()||k("expected_a_b",b,"url",q());if(","!==b.id)break;K()}P();f("}");break;default:k("expected_at_a")}Db()}var V,Ma,Na,la,sb={anon:!0,bitwise:!0,browser:!0,cap:!0,"continue":!0,css:!0,debug:!0,devel:!0,eqeq:!0,es5:!0,evil:!0,forin:!0,fragment:!0,indent:10,maxerr:1E3,maxlen:256,newcap:!0,node:!0,nomen:!0,on:!0,passfail:!0,plusplus:!0,properties:!0,regexp:!0,
rhino:!0,undef:!0,unparam:!0,sloppy:!0,stupid:!0,sub:!0,vars:!0,white:!0,windows:!0},fb,bb,Ub={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},Va=I("arguments callee caller constructor eval prototype stack unwatch valueOf watch".split(" "),!0),tb,Nb=I("clearInterval clearTimeout document event FormData frames history Image localStorage location name navigator Option parent screen sessionStorage setInterval setTimeout Storage window XMLHttpRequest".split(" "),
!1),C={a_label:"'{a}' is a statement label.",a_not_allowed:"'{a}' is not allowed.",a_not_defined:"'{a}' is not defined.",a_scope:"'{a}' used out of scope.",adsafe_a:"ADsafe violation: '{a}'.",adsafe_autocomplete:"ADsafe autocomplete violation.",adsafe_bad_id:"ADSAFE violation: bad id.",adsafe_div:"ADsafe violation: Wrap the widget in a div.",adsafe_fragment:"ADSAFE: Use the fragment option.",adsafe_go:"ADsafe violation: Misformed ADSAFE.go.",adsafe_html:"Currently, ADsafe does not operate on whole HTML documents. It operates on <div> fragments and .js files.",
adsafe_id:"ADsafe violation: id does not match.",adsafe_id_go:"ADsafe violation: Missing ADSAFE.id or ADSAFE.go.",adsafe_lib:"ADsafe lib violation.",adsafe_lib_second:"ADsafe: The second argument to lib must be a function.",adsafe_missing_id:"ADSAFE violation: missing ID_.",adsafe_name_a:"ADsafe name violation: '{a}'.",adsafe_placement:"ADsafe script placement violation.",adsafe_prefix_a:"ADsafe violation: An id must have a '{a}' prefix",adsafe_script:"ADsafe script violation.",adsafe_source:"ADsafe unapproved script source.",
adsafe_subscript_a:"ADsafe subscript '{a}'.",adsafe_tag:"ADsafe violation: Disallowed tag '{a}'.",already_defined:"'{a}' is already defined.",and:"The '&&' subexpression should be wrapped in parens.",assign_exception:"Do not assign to the exception parameter.",assignment_function_expression:"Expected an assignment or function call and instead saw an expression.",attribute_case_a:"Attribute '{a}' not all lower case.",avoid_a:"Avoid '{a}'.",bad_assignment:"Bad assignment.",bad_color_a:"Bad hex color '{a}'.",
bad_constructor:"Bad constructor.",bad_entity:"Bad entity.",bad_html:"Bad HTML string",bad_id_a:"Bad id: '{a}'.",bad_in_a:"Bad for in variable '{a}'.",bad_invocation:"Bad invocation.",bad_name_a:"Bad name: '{a}'.",bad_new:"Do not use 'new' for side effects.",bad_number:"Bad number '{a}'.",bad_operand:"Bad operand.",bad_style:"Bad style.",bad_type:"Bad type.",bad_url_a:"Bad url '{a}'.",bad_wrap:"Do not wrap function literals in parens unless they are to be immediately invoked.",combine_var:"Combine this with the previous 'var' statement.",
conditional_assignment:"Expected a conditional expression and instead saw an assignment.",confusing_a:"Confusing use of '{a}'.",confusing_regexp:"Confusing regular expression.",constructor_name_a:"A constructor name '{a}' should start with an uppercase letter.",control_a:"Unexpected control character '{a}'.",css:"A css file should begin with @charset 'UTF-8';",dangling_a:"Unexpected dangling '_' in '{a}'.",dangerous_comment:"Dangerous comment.",deleted:"Only properties should be deleted.",duplicate_a:"Duplicate '{a}'.",
empty_block:"Empty block.",empty_case:"Empty case.",empty_class:"Empty class.",es5:"This is an ES5 feature.",evil:"eval is evil.",expected_a:"Expected '{a}'.",expected_a_b:"Expected '{a}' and instead saw '{b}'.",expected_a_b_from_c_d:"Expected '{a}' to match '{b}' from line {c} and instead saw '{d}'.",expected_at_a:"Expected an at-rule, and instead saw @{a}.",expected_a_at_b_c:"Expected '{a}' at column {b}, not column {c}.",expected_attribute_a:"Expected an attribute, and instead saw [{a}].",expected_attribute_value_a:"Expected an attribute value and instead saw '{a}'.",
expected_class_a:"Expected a class, and instead saw .{a}.",expected_fraction_a:"Expected a number between 0 and 1 and instead saw '{a}'",expected_id_a:"Expected an id, and instead saw #{a}.",expected_identifier_a:"Expected an identifier and instead saw '{a}'.",expected_identifier_a_reserved:"Expected an identifier and instead saw '{a}' (a reserved word).",expected_linear_a:"Expected a linear unit and instead saw '{a}'.",expected_lang_a:"Expected a lang code, and instead saw :{a}.",expected_media_a:"Expected a CSS media type, and instead saw '{a}'.",
expected_name_a:"Expected a name and instead saw '{a}'.",expected_nonstandard_style_attribute:"Expected a non-standard style attribute and instead saw '{a}'.",expected_number_a:"Expected a number and instead saw '{a}'.",expected_operator_a:"Expected an operator and instead saw '{a}'.",expected_percent_a:"Expected a percentage and instead saw '{a}'",expected_positive_a:"Expected a positive number and instead saw '{a}'",expected_pseudo_a:"Expected a pseudo, and instead saw :{a}.",expected_selector_a:"Expected a CSS selector, and instead saw {a}.",
expected_small_a:"Expected a small positive integer and instead saw '{a}'",expected_space_a_b:"Expected exactly one space between '{a}' and '{b}'.",expected_string_a:"Expected a string and instead saw {a}.",expected_style_attribute:"Excepted a style attribute, and instead saw '{a}'.",expected_style_pattern:"Expected a style pattern, and instead saw '{a}'.",expected_tagname_a:"Expected a tagName, and instead saw {a}.",expected_type_a:"Expected a type, and instead saw {a}.",for_if:"The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",
function_block:"Function statements should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",function_eval:"The Function constructor is eval.",function_loop:"Don't make functions within a loop.",function_statement:"Function statements are not invocable. Wrap the whole function invocation in parens.",function_strict:"Use the function form of 'use strict'.",html_confusion_a:"HTML confusion in regular expression '<{a}'.",html_handlers:"Avoid HTML event handlers.",
identifier_function:"Expected an identifier in an assignment and instead saw a function invocation.",implied_evil:"Implied eval is evil. Pass a function instead of a string.",infix_in:"Unexpected 'in'. Compare with undefined, or use the hasOwnProperty method instead.",insecure_a:"Insecure '{a}'.",isNaN:"Use the isNaN function to compare with NaN.",lang:"lang is deprecated.",leading_decimal_a:"A leading decimal point can be confused with a dot: '.{a}'.",missing_a:"Missing '{a}'.",missing_a_after_b:"Missing '{a}' after '{b}'.",
missing_option:"Missing option value.",missing_property:"Missing property name.",missing_space_a_b:"Missing space between '{a}' and '{b}'.",missing_url:"Missing url.",missing_use_strict:"Missing 'use strict' statement.",mixed:"Mixed spaces and tabs.",move_invocation:"Move the invocation into the parens that contain the function.",move_var:"Move 'var' declarations to the top of the function.",name_function:"Missing name in function statement.",nested_comment:"Nested comment.",not:"Nested not.",not_a_constructor:"Do not use {a} as a constructor.",
not_a_defined:"'{a}' has not been fully defined yet.",not_a_function:"'{a}' is not a function.",not_a_label:"'{a}' is not a label.",not_a_scope:"'{a}' is out of scope.",not_greater:"'{a}' should not be greater than '{b}'.",octal_a:"Don't use octal: '{a}'. Use '\\u....' instead.",parameter_arguments_a:"Do not mutate parameter '{a}' when using 'arguments'.",parameter_a_get_b:"Unexpected parameter '{a}' in get {b} function.",parameter_set_a:"Expected parameter (value) in set {a} function.",radix:"Missing radix parameter.",
read_only:"Read only.",redefinition_a:"Redefinition of '{a}'.",reserved_a:"Reserved name '{a}'.",scanned_a_b:"{a} ({b}% scanned).",slash_equal:"A regular expression literal can be confused with '/='.",statement_block:"Expected to see a statement and instead saw a block.",stopping:"Stopping. ",strange_loop:"Strange loop.",strict:"Strict violation.",subscript:"['{a}'] is better written in dot notation.",sync_a:"Unexpected sync method: '{a}'.",tag_a_in_b:"A '<{a}>' must be within '<{b}>'.",too_long:"Line too long.",
too_many:"Too many errors.",trailing_decimal_a:"A trailing decimal point can be confused with a dot: '.{a}'.",type:"type is unnecessary.",unclosed:"Unclosed string.",unclosed_comment:"Unclosed comment.",unclosed_regexp:"Unclosed regular expression.",unescaped_a:"Unescaped '{a}'.",unexpected_a:"Unexpected '{a}'.",unexpected_char_a_b:"Unexpected character '{a}' in {b}.",unexpected_comment:"Unexpected comment.",unexpected_else:"Unexpected 'else' after 'return'.",unexpected_label_a:"Unexpected label '{a}'.",
unexpected_property_a:"Unexpected /*property*/ '{a}'.",unexpected_space_a_b:"Unexpected space between '{a}' and '{b}'.",unnecessary_initialize:"It is not necessary to initialize '{a}' to 'undefined'.",unnecessary_use:"Unnecessary 'use strict'.",unreachable_a_b:"Unreachable '{a}' after '{b}'.",unrecognized_style_attribute_a:"Unrecognized style attribute '{a}'.",unrecognized_tag_a:"Unrecognized tag '<{a}>'.",unsafe:"Unsafe character.",url:"JavaScript URL.",use_array:"Use the array literal notation [].",
use_braces:"Spaces are hard to count. Use {{a}}.",use_charAt:"Use the charAt method.",use_object:"Use the object literal notation {}.",use_or:"Use the || operator.",use_param:"Use a named parameter.",used_before_a:"'{a}' was used before it was defined.",var_a_not:"Variable {a} was not declared correctly.",weird_assignment:"Weird assignment.",weird_condition:"Weird condition.",weird_new:"Weird construction. Delete 'new'.",weird_program:"Weird program.",weird_relation:"Weird relation.",weird_ternary:"Weird ternary.",
wrap_immediate:"Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.",wrap_regexp:"Wrap the /regexp/ literal in parens to disambiguate the slash operator.",write_is_wrong:"document.write can be a form of eval."},Oa,ab,pb,Tb=I("aliceblue antiquewhite aqua aquamarine azure beige bisque black blanchedalmond blue blueviolet brown burlywood cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan darkblue darkcyan darkgoldenrod darkgray darkgreen darkkhaki darkmagenta darkolivegreen darkorange darkorchid darkred darksalmon darkseagreen darkslateblue darkslategray darkturquoise darkviolet deeppink deepskyblue dimgray dodgerblue firebrick floralwhite forestgreen fuchsia gainsboro ghostwhite gold goldenrod gray green greenyellow honeydew hotpink indianred indigo ivory khaki lavender lavenderblush lawngreen lemonchiffon lightblue lightcoral lightcyan lightgoldenrodyellow lightgreen lightpink lightsalmon lightseagreen lightskyblue lightslategray lightsteelblue lightyellow lime limegreen linen magenta maroon mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumvioletred midnightblue mintcream mistyrose moccasin navajowhite navy oldlace olive olivedrab orange orangered orchid palegoldenrod palegreen paleturquoise palevioletred papayawhip peachpuff peru pink plum powderblue purple red rosybrown royalblue saddlebrown salmon sandybrown seagreen seashell sienna silver skyblue slateblue slategray snow springgreen steelblue tan teal thistle tomato turquoise violet wheat white whitesmoke yellow yellowgreen activeborder activecaption appworkspace background buttonface buttonhighlight buttonshadow buttontext captiontext graytext highlight highlighttext inactiveborder inactivecaption inactivecaptiontext infobackground infotext menu menutext scrollbar threeddarkshadow threedface threedhighlight threedlightshadow threedshadow window windowframe windowtext".split(" "),
!0),Aa,ub,Bb={"%":!0,cm:!0,em:!0,ex:!0,"in":!0,mm:!0,pc:!0,pt:!0,px:!0},Fb,cb,Gb={b:"\u0008",t:"\t",n:"\n",f:"\u000c",r:"\r",'"':'"',"/":"/","\\":"\\","!":"!"},Mb=I("alert confirm console Debug opera prompt WSH".split(" "),!1),ma,Kb={"\u0008":"\\b","\t":"\\t","\n":"\\n","\u000c":"\\f","\r":"\\r","'":"\\'",'"':'\\"',"/":"\\/","\\":"\\\\"},j,Pa="closure exception global label outer undef unused var".split(" "),Ya,Y,Da,rb={a:{},abbr:{},acronym:{},address:{},applet:{},area:{empty:!0,parent:" map "},article:{},
aside:{},audio:{},b:{},base:{empty:!0,parent:" head "},bdo:{},big:{},blockquote:{},body:{parent:" html noframes "},br:{empty:!0},button:{},canvas:{parent:" body p div th td "},caption:{parent:" table "},center:{},cite:{},code:{},col:{empty:!0,parent:" table colgroup "},colgroup:{parent:" table "},command:{parent:" menu "},datalist:{},dd:{parent:" dl "},del:{},details:{},dialog:{},dfn:{},dir:{},div:{},dl:{},dt:{parent:" dl "},em:{},embed:{},fieldset:{},figure:{},font:{},footer:{},form:{},frame:{empty:!0,
parent:" frameset "},frameset:{parent:" html frameset "},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{parent:" html "},header:{},hgroup:{},hr:{empty:!0},"hta:application":{empty:!0,parent:" head "},html:{parent:"*"},i:{},iframe:{},img:{empty:!0},input:{empty:!0},ins:{},kbd:{},keygen:{},label:{},legend:{parent:" details fieldset figure "},li:{parent:" dir menu ol ul "},link:{empty:!0,parent:" head "},map:{},mark:{},menu:{},meta:{empty:!0,parent:" head noframes noscript "},meter:{},nav:{},noframes:{parent:" html body "},
noscript:{parent:" body head noframes "},object:{},ol:{},optgroup:{parent:" select "},option:{parent:" optgroup select "},output:{},p:{},param:{empty:!0,parent:" applet object "},pre:{},progress:{},q:{},rp:{},rt:{},ruby:{},samp:{},script:{empty:!0,parent:" body div frame head iframe p pre span "},section:{},select:{},small:{},span:{},source:{},strong:{},style:{parent:" head ",empty:!0},sub:{},sup:{},table:{},tbody:{parent:" table "},td:{parent:" tr "},textarea:{},tfoot:{parent:" table "},th:{parent:" tr "},
thead:{parent:" table "},time:{},title:{parent:" head "},tr:{parent:" table tbody thead tfoot "},tt:{},u:{},ul:{},"var":{},video:{}},db,ja,p,W,na,Fa,Ca,Ea,Pb=I("Buffer clearInterval clearTimeout console exports global module process querystring require setInterval setTimeout __dirname __filename".split(" "),!1),Qa,Rb=I(["indexOf","lastIndexOf","search"],!0),b,g,M,vb,T,ua,Vb=I(["g","i","m"],!0),Ga=function(){return this},Lb=I("defineClass deserialize gc help load loadClass print quit readFile readUrl runCommand seal serialize spawn sync toint32 version".split(" "),
!1),y,Qb=I([";",'"',"'",")"],!0),wb,H,Hb=I("Array Boolean Date decodeURI decodeURIComponent encodeURI encodeURIComponent Error eval EvalError Function isFinite isNaN JSON Math Number Object parseInt parseFloat RangeError ReferenceError RegExp String SyntaxError TypeError URIError".split(" "),!1),ra,aa={},eb,h,La,da,Ra,Ob=I("ActiveXObject CScript Debug Enumerator System VBArray WScript WSH".split(" "),!1),s,R,Wb=/@cc|<\/?|script|\]\s*\]|<\s*!|&lt/i,Xb=/\r\n?|\n/,Yb=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,
Zb=/[\[\]\/\\"'*<>.&:(){}+=#]/,Ib=/^\s*(['"=>\/&#]|<(?:\/|\!(?:--)?)?|[a-zA-Z][a-zA-Z0-9_\-:]*|[0-9]+|--)/,Jb=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,kb=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$b=/\*\/|\/\*/,Ab=/[\u0000-\u001f'\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,ac=/[>&]|<[\/!]?|--/,bc=/[^a-zA-Z0-9+\-_\/. ]/,cc=/^\s*([(){}\[\]\?.,:;'"~#@`]|={1,3}|\/(\*(jslint|properties|property|members?|globals?)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|[\^%]=?|&[&=]?|\|[|=]?|>{1,3}=?|<(?:[\/=!]|\!(\[|--)?|<=?)?|\!={0,2}|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+(?:[xX][0-9a-fA-F]+|\.[0-9]*)?(?:[eE][+\-]?[0-9]+)?)/,
nb=/&|\+|\u00AD|\.\.|\/\*|%[^;]|base64|url|expression|data|mailto|script/i,dc={outer:Ib,html:Ib,style:/^\s*([{}:#%.=,>+\[\]@()"';]|[*$\^~]=|[a-zA-Z_][a-zA-Z0-9_\-]*|[0-9]+|<\/|\/\*)/,styleproperty:/^\s*([@#!"'};:\-%.=,+\[\]()*_]|[a-zA-Z][a-zA-Z0-9._\-]*|\/\*?|\d+(?:\.\d+)?|<\/)/};"function"!==typeof Array.prototype.filter&&(Array.prototype.filter=function(a){var b,d=this.length,c=[],f;for(b=0;b<d;b+=1)try{f=this[b],a(f)&&c.push(f)}catch(g){}return c});"function"!==typeof Array.prototype.forEach&&
(Array.prototype.forEach=function(a){var b,d=this.length;for(b=0;b<d;b=b+1)try{a(this[b])}catch(c){}});"function"!==typeof Array.isArray&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"});Object.prototype.hasOwnProperty.call(Object,"create")||(Object.create=function(a){Ba.prototype=a;return new Ba});"function"!==typeof Object.keys&&(Object.keys=function(a){var b=[],d;for(d in a)Object.prototype.hasOwnProperty.call(a,d)&&b.push(d);return b});"function"!==typeof String.prototype.entityify&&
(String.prototype.entityify=function(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")});"function"!==typeof String.prototype.isAlpha&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z\uffff"||this>="A"&&this<="Z\uffff"});"function"!==typeof String.prototype.isDigit&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"});"function"!==typeof String.prototype.supplant&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,
d){var c=a[d];return typeof c==="string"||typeof c==="number"?c:b})});Fa=function(){function a(){var a;if(o>=Ca.length)return false;n=1;m=Ca[o];o=o+1;a=m.search(/ \t/);a>=0&&r("mixed",o,a+1);m=m.replace(/\t/g,eb);a=m.search(Yb);a>=0&&r("unsafe",o,a);g.maxlen&&g.maxlen<m.length&&r("too_long",o,m.length);return true}function b(a,e){var d,c;(a==="(string)"||a==="(range)")&&kb.test(e)&&r("url",o,k);c=Object.create(aa[a==="(punctuator)"||a==="(identifier)"&&Object.prototype.hasOwnProperty.call(aa,e)?e:
a]||aa["(error)"]);if(a==="(identifier)"){c.identifier=true;e==="__iterator__"||e==="__proto__"?J("reserved_a",o,k,e):!g.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&r("dangling_a",o,k,e)}if(a==="(number)")c.number=+e;else if(e!==void 0)c.string=""+e;c.line=o;c.from=k;c.thru=n;vb=(d=c.id)&&("(,=:[!&|?{};".indexOf(d.charAt(d.length-1))>=0||d==="return"||d==="case");return c}function d(d){function c(a){var b=parseInt(m.substr(h+1,a),16);h=h+a;b>=32&&(b<=126&&b!==34&&b!==92&&b!==39)&&r("unexpected_a",
o,n,"\\");n=n+a;f=String.fromCharCode(b)}var f,h=0,j="";na&&d!=='"'&&r("expected_a",o,n,'"');if(R===d||s==="scriptstring"&&!R)return b("(punctuator)",d);for(;;){for(;h>=m.length;){h=0;(s!=="html"||!a())&&J("unclosed",o,k)}f=m.charAt(h);if(f===d){n=n+1;m=m.slice(h+1);j=b("(string)",j);j.quote=d;return j}if(f<" "){if(f==="\n"||f==="\r")break;r("control_a",o,n+h,m.slice(0,h))}else if(f===R)r("bad_html",o,n+h);else if(f==="<")g.safe&&s==="html"?r("adsafe_a",o,n+h,f):m.charAt(h+1)==="/"&&(s||g.safe)?r("expected_a_b",
o,n,"<\\/","</"):m.charAt(h+1)==="!"&&(s||g.safe)&&r("unexpected_a",o,n,"<!");else if(f==="\\")if(s==="html")g.safe&&r("adsafe_a",o,n+h,f);else if(s==="styleproperty"){h=h+1;n=n+1;f=m.charAt(h);f!==d&&r("unexpected_a",o,n,"\\")}else{h=h+1;n=n+1;f=m.charAt(h);switch(f){case "":g.es5||r("es5",o,n);a();h=-1;break;case R:r("bad_html",o,n+h);break;case "'":na&&r("unexpected_a",o,n,"\\'");break;case "u":c(4);break;case "v":na&&r("unexpected_a",o,n,"\\v");f="\v";break;case "x":na&&r("unexpected_a",o,n,"\\x");
c(2);break;default:typeof Gb[f]!=="string"?r(f>="0"&&f<="7"?"octal_a":"unexpected_a",o,n,"\\"+f):f=Gb[f]}}j=j+f;n=n+1;h=h+1}}function c(a){Oa||wb||s&&s!=="script"&&s!=="style"&&s!=="styleproperty"?r("unexpected_comment",o,n):s==="script"&&/<\//i.test(m)?r("unexpected_a",o,n,"</"):g.safe&&Wb.test(a)&&r("dangerous_comment",o,n)}function f(){for(var a,d,c=0,h="",i=0;;){a=true;j=m.charAt(i);i=i+1;switch(j){case "":J("unclosed_regexp",o,k);return;case "/":c>0&&r("unescaped_a",o,k+i,"/");j=m.slice(0,i-
1);for(a=Object.create(Vb);;){c=m.charAt(i);if(a[c]!==true)break;a[c]=false;i=i+1;h=h+c}m.charAt(i).isAlpha()&&J("unexpected_a",o,k,m.charAt(i));n=n+i;m=m.slice(i);i=m.charAt(0);(i==="/"||i==="*")&&J("confusing_regexp",o,k);i=b("(regexp)",j);i.flag=h;return i;case "\\":j=m.charAt(i);j<" "?r("control_a",o,k+i,""+j):j==="<"&&r(C.unexpected_a,o,k+i,"\\");i=i+1;break;case "(":c=c+1;a=false;if(m.charAt(i)==="?"){i=i+1;switch(m.charAt(i)){case ":":case "=":case "!":i=i+1;break;default:r(C.expected_a_b,
o,k+i,":",m.charAt(i))}}break;case "|":a=false;break;case ")":c===0?r("unescaped_a",o,k+i,")"):c=c-1;break;case " ":for(l=1;m.charAt(i)===" ";){i=i+1;l=l+1}l>1&&r("use_braces",o,k+i,l);break;case "[":j=m.charAt(i);if(j==="^"){i=i+1;g.regexp?m.charAt(i)==="]"&&J("unescaped_a",o,k+i,"^"):r("insecure_a",o,k+i,j)}d=false;if(j==="]"){r("empty_class",o,k+i-1);d=true}a:do{j=m.charAt(i);i=i+1;switch(j){case "[":case "^":r("unescaped_a",o,k+i,j);d=true;break;case "-":if(d)d=false;else{r("unescaped_a",o,k+
i,"-");d=true}break;case "]":d||r("unescaped_a",o,k+i-1,"-");break a;case "\\":j=m.charAt(i);j<" "?r(C.control_a,o,k+i,""+j):j==="<"&&r(C.unexpected_a,o,k+i,"\\");i=i+1;d=true;break;case "/":r("unescaped_a",o,k+i-1,"/");d=true;break;case "<":if(s==="script"){j=m.charAt(i);(j==="!"||j==="/")&&r(C.html_confusion_a,o,k+i,j)}d=true;break;default:d=true}}while(j);break;case ".":g.regexp||r("insecure_a",o,k+i,j);break;case "]":case "?":case "{":case "}":case "+":case "*":r("unescaped_a",o,k+i,j);break;
case "<":if(s==="script"){j=m.charAt(i);(j==="!"||j==="/")&&r(C.html_confusion_a,o,k+i,j)}}if(a)switch(m.charAt(i)){case "?":case "+":case "*":i=i+1;m.charAt(i)==="?"&&(i=i+1);break;case "{":i=i+1;j=m.charAt(i);(j<"0"||j>"9")&&r(C.expected_number_a,o,k+i,j);i=i+1;for(d=+j;;){j=m.charAt(i);if(j<"0"||j>"9")break;i=i+1;d=+j+d*10}a=d;if(j===","){i=i+1;a=Infinity;j=m.charAt(i);if(j>="0"&&j<="9"){i=i+1;for(a=+j;;){j=m.charAt(i);if(j<"0"||j>"9")break;i=i+1;a=+j+a*10}}}m.charAt(i)!=="}"?r(C.expected_a_b,
o,k+i,"}",j):i=i+1;m.charAt(i)==="?"&&(i=i+1);d>a&&r(C.not_greater,o,k+i,d,a)}}j=m.slice(0,i-1);n=n+i;m=m.slice(i);return b("(regexp)",j)}var n,j,k,p,o,l,m;return{init:function(b){Ca=typeof b==="string"?b.split(Xb):b;o=0;a();k=1},range:function(a,d){var c,f="";k=n;for(m.charAt(0)!==a&&J("expected_a_b",o,n,a,m.charAt(0));;){m=m.slice(1);n=n+1;c=m.charAt(0);switch(c){case "":J("missing_a",o,n,c);break;case d:m=m.slice(1);n=n+1;return b("(range)",f);case R:case "\\":r("unexpected_a",o,n,c)}f=f+c}},token:function(){for(var l,
q,u;;){for(;!m;)if(!a())return b("(end)");for(;s==="outer";){q=m.search(ac);if(q===0)break;else if(q>0){n=n+1;m=m.slice(q);break}else if(!a())return b("(end)","")}l=(dc[s]||cc).exec(m);u=void 0;if(l){p=l[0].length;u=l[1];j=u.charAt(0);m=m.slice(p);k=n+p-u.length;n=n+p}else u=void 0;if(u){l=u.charAt(0);if(l.isAlpha()||l==="_"||l==="$")return b("(identifier)",u);if(l.isDigit()){q=u;l=void 0;s!=="style"&&(s!=="styleproperty"&&m.charAt(0).isAlpha())&&r("expected_space_a_b",o,n,j,m.charAt(0));if(j==="0"){l=
q.charAt(1);l.isDigit()?h.id!=="."&&s!=="styleproperty"&&r("unexpected_a",o,n,q):na&&(l==="x"||l==="X")&&r("unexpected_a",o,n,"0x")}q.slice(q.length-1)==="."&&r("trailing_decimal_a",o,n,q);if(s!=="style"){l=+q;isFinite(l)||r("bad_number",o,n,q);q=l}return b("(number)",q)}switch(u){case '"':case "'":return d(u);case "//":c(m);m="";break;case "/*":for(;;){q=m.search($b);if(q>=0)break;c(m);a()||J("unclosed_comment",o,n)}c(m.slice(0,q));n=n+(q+2);m.charAt(q)==="/"&&J("nested_comment",o,n);m=m.slice(q+
2);break;case "":break;case "/":h.id==="/="&&J(C.slash_equal,o,k);return vb?f():b("(punctuator)",u);case "<\!--":for(p=o;;){q=m.indexOf("--");if(q>=0)break;q=m.indexOf("<!");q>=0&&J("nested_comment",o,n+q);a()||J("unclosed_comment",p,l)}p=m.indexOf("<!");p>=0&&p<q&&J("nested_comment",o,n+p);n=n+q;m.charAt(q+2)!==">"&&J("expected_a",o,n,"--\>");n=n+3;m=m.slice(q+3);break;case "#":if(s==="html"||s==="styleproperty"){for(;;){l=m.charAt(0);if((l<"0"||l>"9")&&(l<"a"||l>"f")&&(l<"A"||l>"F"))break;n=n+1;
m=m.slice(1);u=u+l}u.length!==4&&u.length!==7&&r("bad_color_a",o,k+p,u);return b("(color)",u)}return b("(punctuator)",u);default:if(s==="outer"&&l==="&"){n=n+1;for(m=m.slice(1);;){l=m.charAt(0);n=n+1;m=m.slice(1);if(l===";")break;l>="0"&&l<="9"||(l>="a"&&l<="z"||l==="#")||J("bad_entity",o,k+p,n)}break}return b("(punctuator)",u)}}else if(m)if(m.charAt(0)===" "){g.white||r("unexpected_a",o,n,"(space)");n=n+1;m=""}else J("unexpected_a",o,n,m.charAt(0))}}}}();ma=function(){var a=this.id,e=Oa,d=p;Oa=true;
p=null;b.line===h.line&&b.from===h.thru&&c("missing_space_a_b",b,q(h),q());Ea.length>0&&c("unexpected_a",this);switch(a){case "/*properties":case "/*property":case "/*members":case "/*member":a:for(g.properties=true;;){if(b.id!=="(string)"&&!b.identifier)break a;a=b.string;f();if(b.id===":")for(;;){f();if(b.id!=="(string)"&&!b.identifier)break}ua[a]=0;if(b.id!==",")break a;f(",")}break;case "/*jslint":g.safe&&c("adsafe_a",this);for(var i;b.id==="(string)"||b.identifier;){a=b.string;sb[a]||k("unexpected_a");
f();b.id!==":"&&k("expected_a_b",b,":",q());f(":");if(typeof sb[a]==="number"){i=b.number;(i>sb[a]||i<=0||Math.floor(i)!==i)&&k("expected_small_a");g[a]=i}else b.id==="true"?g[a]=true:b.id==="false"?g[a]=false:k("unexpected_a");f();b.id===","&&f(",")}ga();break;case "/*globals":case "/*global":g.safe&&c("adsafe_a",this);a:for(;;){if(b.id!=="(string)"&&!b.identifier)break a;a=b.string;f();i=false;if(b.id===":"){f(":");switch(b.id){case "true":i=M[a]!==false;f("true");break;case "false":f("false");
break;default:k("unexpected_a")}}M[a]=i;if(b.id!==",")break a;f(",")}break;default:k("unexpected_a",this)}Oa=e;f("*/");p=d};aa["(identifier)"]={id:"(identifier)",lbp:0,identifier:!0,nud:function(){var a=this.string,b=y[a];if(typeof b!=="object"){b=M[a];if(typeof b==="boolean"){Da[a]=b={string:a,writeable:b,funct:Y};Y[a]="var"}else{g.undef||c("used_before_a",h);y[a]=b={string:a,writeable:true,funct:j};j[a]="undef"}}b=b.funct;if(j===b)switch(j[a]){case "becoming":c("unexpected_a",h);j[a]="var";break;
case "unused":j[a]="var";break;case "unparam":j[a]="parameter";break;case "unction":j[a]="function";break;case "label":c("a_label",h,a)}else switch(j[a]){case "closure":case "function":case "var":case "unused":c("a_scope",h,a);break;case "label":c("a_label",h,a);break;case "outer":case "global":break;default:switch(b[a]){case "becoming":case "closure":case "function":case "parameter":case "unction":case "unused":case "var":b[a]="closure";j[a]=b===Y?"global":"outer";break;case "unparam":b[a]="parameter";
j[a]="outer";break;case "undef":j[a]="undef";break;case "label":c("a_label",h,a)}}return this},led:function(){k("expected_operator_a")}};ea("(array)","array");ea("(color)","color");ea("(function)","function");ea("(number)","number",Ga);ea("(object)","object");ea("(string)","string",Ga);ea("(boolean)","boolean",Ga);ea("(range)","range");ea("(regexp)","regexp",Ga);gb("(begin)");gb("(end)");gb("(error)");sa(z("</"));z("<!");z("<\!--");z("--\>");sa(z("}"));z(")");z("]");sa(z('"'));sa(z("'"));z(";");z(":");
z(",");z("#");z("@");z("*/");sa(x("case"));x("catch");sa(x("default"));x("else");x("finally");hb("arguments",function(a){ra&&j===Y?c("strict",a):g.safe&&c("adsafe_a",a);j["(arguments)"]=true});hb("eval",function(a){g.safe&&c("adsafe_a",a)});xa("false","boolean");xa("Infinity","number");xa("NaN","number");xa("null","");hb("this",function(a){g.safe?c("adsafe_a",a):ra&&(j["(token)"]&&j["(token)"].arity==="statement"&&j["(name)"].charAt(0)>"Z")&&c("strict",a)});xa("true","boolean");xa("undefined","");
E("?",30,function(a,e){G("?");e.first=fa(ba(a));e.second=l(0);F();D();var d=b;f(":");G(":");F();e.third=l(10);e.arity="ternary";Q(e.second,e.third)?c("weird_ternary",d):Q(e.first,e.second)&&c("use_or",e);D();return e});E("||",40,function(a,b){function d(a){a.id==="&&"&&!a.paren&&c("and",a);return a}b.first=d(fa(ba(a)));b.second=d(ba(l(40)));Q(b.first,b.second)&&c("weird_condition",b);return b});E("&&",50,function(a,b){b.first=fa(ba(a));b.second=ba(l(50));Q(b.first,b.second)&&c("weird_condition",b);
return b});L("void",function(){this.first=l(0);this.arity="prefix";g.es5?c("expected_a_b",this,"undefined","void"):this.first.number!==0&&c("expected_a_b",this.first,"0",q(this.first));return this});ya("|",70);ya("^",80);ya("&",90);ia("==","===");ia("===");ia("!=","!==");ia("!==");ia("<");ia(">");ia("<=");ia(">=");ya("<<",120);ya(">>",120);ya(">>>",120);E("in",120,function(a,b){c("infix_in",b);b.left=a;b.right=l(130);return b});E("instanceof",120);E("+",130,function(a,b){a.id==="(number)"?a.number===
0&&c("unexpected_a",a,"0"):a.id==="(string)"&&a.string===""&&c("expected_a_b",a,"String","''");var d=l(130);d.id==="(number)"?d.number===0&&c("unexpected_a",d,"0"):d.id==="(string)"&&d.string===""&&c("expected_a_b",d,"String","''");if(a.id===d.id&&(a.id==="(string)"||a.id==="(number)")){if(a.id==="(string)"){a.string=a.string+d.string;kb.test(a.string)&&c("url",a)}else a.number=a.number+d.number;a.thru=d.thru;return a}b.first=a;b.second=d;return b});L("+","num");L("+++",function(){c("confusing_a",
h);this.first=l(150);this.arity="prefix";return this});E("+++",130,function(a){c("confusing_a",h);this.first=a;this.second=l(130);return this});E("-",130,function(a,b){(a.id==="(number)"&&a.number===0||a.id==="(string)")&&c("unexpected_a",a);var d=l(130);(d.id==="(number)"&&d.number===0||d.id==="(string)")&&c("unexpected_a",d);if(a.id===d.id&&a.id==="(number)"){a.number=a.number-d.number;a.thru=d.thru;return a}b.first=a;b.second=d;return b});L("-");L("---",function(){c("confusing_a",h);this.first=
l(150);this.arity="prefix";return this});E("---",130,function(a){c("confusing_a",h);this.first=a;this.second=l(130);return this});E("*",140,function(a,b){(a.id==="(number)"&&(a.number===0||a.number===1)||a.id==="(string)")&&c("unexpected_a",a);var d=l(140);(d.id==="(number)"&&(d.number===0||d.number===1)||d.id==="(string)")&&c("unexpected_a",d);if(a.id===d.id&&a.id==="(number)"){a.number=a.number*d.number;a.thru=d.thru;return a}b.first=a;b.second=d;return b});E("/",140,function(a,b){(a.id==="(number)"&&
a.number===0||a.id==="(string)")&&c("unexpected_a",a);var d=l(140);(d.id==="(number)"&&(d.number===0||d.number===1)||d.id==="(string)")&&c("unexpected_a",d);if(a.id===d.id&&a.id==="(number)"){a.number=a.number/d.number;a.thru=d.thru;return a}b.first=a;b.second=d;return b});E("%",140,function(a,b){(a.id==="(number)"&&(a.number===0||a.number===1)||a.id==="(string)")&&c("unexpected_a",a);var d=l(140);(d.id==="(number)"&&d.number===0||d.id==="(string)")&&c("unexpected_a",d);if(a.id===d.id&&a.id==="(number)"){a.number=
a.number%d.number;a.thru=d.thru;return a}b.first=a;b.second=d;return b});zb("++");L("++");zb("--");L("--");L("delete",function(){v();var a=l(0);(!a||a.id!=="."&&a.id!=="[")&&c("deleted");this.first=a;return this});L("~",function(){B();g.bitwise||c("unexpected_a",this);l(150);return this});L("!",function(){B();this.first=fa(l(150));this.arity="prefix";(Ub[this.first.id]===true||this.first.assign)&&c("confusing_a",this);return this});L("typeof",null);L("new",function(){v();var a=l(160),e;this.first=
a;if(a.id!=="function")if(a.identifier)switch(a.string){case "Object":c("use_object",h);break;case "Array":if(b.id==="("){e=b;e.first=this;f("(");if(b.id!==")"){a=l(0);e.second=[a];for((a.id!=="(number)"||b.id===",")&&c("use_array",e);b.id===",";){f(",");e.second.push(l(0))}}else c("use_array",h);f(")",e);return e}c("use_array",h);break;case "Number":case "String":case "Boolean":case "Math":case "JSON":c("not_a_constructor",a);break;case "Function":g.evil||c("function_eval");break;case "Date":case "RegExp":case "this":break;
default:if(a.id!=="function"){a=a.string.charAt(0);!g.newcap&&(a<"A"||a>"Z")&&c("constructor_name_a",h)}}else a.id!=="."&&(a.id!=="["&&a.id!=="(")&&c("bad_constructor",h);else c("weird_new",this);b.id!=="("&&c("missing_a",b,"()");return this});E("(",160,function(a,e){var d;p&&p.mode==="expression"?t(T,h):B(T,h);!a.immed&&a.id==="function"&&c("wrap_immediate");d=[];a.identifier?a.string.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.string!=="Number"&&(a.string!=="String"&&a.string!=="Boolean"&&
a.string!=="Date")&&(a.string==="Math"||a.string==="JSON"?c("not_a_function",a):a.string==="Object"?c("use_object",h):(a.string==="Array"||!g.newcap)&&c("missing_a",a,"new")):a.id==="."&&(g.safe&&a.first.string==="Math"&&a.second==="random"?c("adsafe_a",a):a.second.string==="split"&&a.first.id==="(string)"&&c("use_array",a.second));G();if(b.id!==")")for(t();;){A();d.push(l(10));if(b.id!==",")break;K()}t();D(")",e);if(typeof a==="object"){a.string==="parseInt"&&d.length===1&&c("radix",a);g.evil||(a.string===
"eval"||a.string==="Function"||a.string==="execScript"?c("evil",a):d[0]&&(d[0].id==="(string)"&&(a.string==="setTimeout"||a.string==="setInterval"))&&c("implied_evil",a));!a.identifier&&(a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?")&&c("bad_invocation",a)}e.first=a;e.second=d;return e},!0);L("(",function(){G("expression");t();A();if(b.id==="function")b.immed=true;var a=l(0);a.paren=true;t();D(")",this);if(a.id==="function")switch(b.id){case "(":c("move_invocation");break;
case ".":case "[":c("unexpected_a");break;default:c("bad_wrap",this)}return a});E(".",170,function(a,e){t(T,h);t();var d=Ha();typeof d==="string"&&Wa(d);e.first=a;e.second=h;if(a&&a.string==="arguments"&&(d==="callee"||d==="caller"))c("avoid_a",a,"arguments."+d);else if(!g.evil&&a&&a.string==="document"&&(d==="write"||d==="writeln"))c("write_is_wrong",a);else if(!g.stupid&&d.indexOf("Sync")>0)c("sync_a",h);else if(g.adsafe){if(!Na&&a.string==="ADSAFE")if(d==="id"||d==="lib")c("adsafe_a",e);else if(d===
"go"){s!=="script"?c("adsafe_a",e):(la||b.id!=="("||S(0).id!=="(string)"||S(0).string!==V||S(1).id!==",")&&k("adsafe_a",e,"go");la=true;Ma=false}Na=false}if(!g.evil&&(d==="eval"||d==="execScript"))c("evil");else if(g.safe)for(;;){Va[d]===true&&c("adsafe_a",h,d);if(typeof M[a.string]!=="boolean"||b.id==="(")break;if(b.id!=="."){c("adsafe_a",e);break}f(".");h.first=e;h.second=d;e=h;d=Ha();typeof d==="string"&&Wa(d)}return e},!0);E("[",170,function(a,b){var d,f;B(T,h);t();G();A();d=l(0);switch(d.id){case "(number)":d.id===
"(number)"&&a.id==="arguments"&&c("use_param",a);break;case "(string)":if(g.safe&&(Va[d.string]||d.string.charAt(0)==="_"||d.string.slice(-1)==="_"))c("adsafe_subscript_a",d);else if(!g.evil&&(d.string==="eval"||d.string==="execScript"))c("evil",d);else if(!g.sub&&Jb.test(d.string)){f=aa[d.string];(!f||!f.reserved)&&c("subscript",d)}Wa(d.string);break;default:g.safe&&(d.id!=="+"||d.arity!=="prefix")&&(d.id!=="-"&&d.id!=="*")&&c("adsafe_subscript_a",d)}D("]",b);t(T,h);b.first=a;b.second=d;return b},
!0);L("[",function(){this.arity="prefix";this.first=[];for(G("array");b.id!=="(end)";){for(;b.id===",";){c("unexpected_a",b);f(",")}if(b.id==="]")break;p.wrap=false;A();this.first.push(l(10));if(b.id===","){K();if(b.id==="]"&&!g.es5){c("unexpected_a",h);break}}else break}D("]",this);return this},170);Z("=");Z("+=","+");Z("-=","-");Z("*=","*");Z("/=","/").nud=function(){k("slash_equal")};Z("%=","%");Z("&=","&");Z("|=","|");Z("^=","^");Z("<<=","<<");Z(">>=",">>");Z(">>>=",">>>");L("{",function(){var a,
e,d,i,oa,n={};this.arity="prefix";this.first=[];for(G();b.id!=="}";){p.wrap=false;A();if(b.string==="get"&&S().id!==":"){g.es5||c("es5");a=b;f("get");wa();i=b;(e=lb())||k("missing_property");a.string="";Xa(a);j["(loopage)"]&&c("function_loop",a);(d=a.first)&&d.length&&c("parameter_a_get_b",d[0],d[0].string,e);K();oa=b;F();A();f("set");oa.string="";wa();d=lb();e!==d&&k("expected_a_b",h,e,d||b.string);Xa(oa);oa.block.length===0&&c("missing_a",h,"throw");d=oa.first;!d||d.length!==1?k("parameter_set_a",
oa,"value"):d[0].string!=="value"&&k("expected_a_b",d[0],"value",d[0].string);i.first=[a,oa]}else{i=b;e=lb();typeof e!=="string"&&k("missing_property");f(":");F();i.first=l(10)}this.first.push(i);n[e]===true&&c("duplicate_a",b,e);n[e]=true;Wa(e);if(b.id!==",")break;for(;;){K();if(b.id!==",")break;c("unexpected_a",b)}b.id==="}"&&!g.es5&&c("unexpected_a",h)}D("}",this);return this});N("{",function(){c("statement_block");this.arity="statement";this.block=ta();this.disrupt=this.block.disrupt;f("}",this);
return this});N("/*global",ma);N("/*globals",ma);N("/*jslint",ma);N("/*member",ma);N("/*members",ma);N("/*property",ma);N("/*properties",ma);N("var",function(){var a,e,d;j["(vars)"]&&!g.vars?c("combine_var"):j!==Y&&(j["(vars)"]=true);this.arity="statement";this.first=[];for(G("var");;){d=b;e=Ha();va(d,"becoming");if(b.id==="="){a=b;a.first=d;F();f("=");F();b.id==="undefined"&&c("unnecessary_initialize",h,e);S(0).id==="="&&b.identifier&&k("var_a_not");a.second=l(0);a.arity="infix";this.first.push(a)}else this.first.push(d);
j[e]==="becoming"&&(j[e]="unused");if(b.id!==",")break;K();p.wrap=false;if(da&&b.line===h.line&&this.first.length===1){da=null;p.open=false;p.at=p.at-g.indent}F();A()}da=null;D();return this});N("function",function(){v();ja&&c("function_block",h);var a=b,e=Ha();va(a,"unction");t();this.arity="statement";Xa(this,e);b.id==="("&&b.line===h.line&&k("function_statement");return this});L("function",function(){g.anon||v();var a=ib();a?t():a="";Xa(this,a);j["(loopage)"]&&c("function_loop");switch(b.id){case ";":case "(":case ")":case ",":case "]":case "}":case ":":break;
case ".":(S().string!=="bind"||S(1).id!=="(")&&c("unexpected_a");break;default:k("unexpected_a")}this.arity="function";return this});N("if",function(){var a=b;v();f("(");G("control");t();A();this.arity="statement";this.first=fa(ba(l(0)));t();D(")",a);v();this.block=$(true);if(b.id==="else"){v();f("else");v();this["else"]=b.id==="if"||b.id==="switch"?jb(true):$(true);if(this["else"].disrupt&&this.block.disrupt)this.disrupt=true}return this});N("try",function(){var a,e,d;g.adsafe&&c("adsafe_a",this);
v();this.arity="statement";this.block=$(false);if(b.id==="catch"){v();f("catch");v();d=b;f("(");G("control");t();A();e=y;y=Object.create(e);this.first=a=b.string;b.identifier?va(b,"exception"):c("expected_identifier_a",b);f();t();D(")",d);v();this.second=$(false);y=e}if(b.id==="finally"){v();f("finally");v();this.third=$(false)}else this.second||k("expected_a_b",b,"catch",q());return this});Ta("while",function(){v();var a=b;j["(breakage)"]=j["(breakage)"]+1;j["(loopage)"]=j["(loopage)"]+1;f("(");
G("control");t();A();this.arity="statement";this.first=ba(l(0));this.first.id!=="true"&&fa(this.first,C.unexpected_a);t();D(")",a);v();this.block=$(true);this.block.disrupt&&c("strange_loop",T);j["(breakage)"]=j["(breakage)"]-1;j["(loopage)"]=j["(loopage)"]-1;return this});x("with");Ta("switch",function(){function a(a){Q(i,a)&&c("duplicate_a",a)}var e=[],d=ja,i,g=b,h=true;j["(breakage)"]=j["(breakage)"]+1;v();f("(");t();G();this.arity="statement";this.first=fa(ba(l(0)));t();D(")",g);v();f("{");G();
ja=true;for(this.second=[];b.id==="case";){g=b;e.forEach(a);g.first=[];g.arity="case";F();A("case");for(f("case");;){v();i=l(0);e.forEach(a);e.push(i);g.first.push(i);i.id==="NaN"&&c("unexpected_a",i);B();f(":");if(b.id!=="case")break;F();A("case");f("case")}F();g.second=ta();if(g.second&&g.second.length>0){i=g.second[g.second.length-1];i.disrupt?i.id==="break"&&(h=false):c("missing_a_after_b",b,"break","case")}else c("empty_case");this.second.push(g)}this.second.length===0&&c("missing_a",b,"case");
if(b.id==="default"){F();g=b;g.arity="case";A("case");f("default");B();f(":");F();g.second=ta();if(g.second&&g.second.length>0){i=g.second[g.second.length-1];if(h&&i.disrupt&&i.id!=="break")this.disrupt=true}this.second.push(g)}j["(breakage)"]=j["(breakage)"]-1;F();D("}",this);ja=d;return this});N("debugger",function(){g.debug||c("unexpected_a",this);this.arity="statement";return this});Ta("do",function(){j["(breakage)"]=j["(breakage)"]+1;j["(loopage)"]=j["(loopage)"]+1;v();this.arity="statement";
this.block=$(true);this.block.disrupt&&c("strange_loop",T);v();f("while");var a=b;v();f("(");G();t();A();this.first=fa(ba(l(0)),C.unexpected_a);t();D(")",a);j["(breakage)"]=j["(breakage)"]-1;j["(loopage)"]=j["(loopage)"]-1;return this});Ta("for",function(){var a,e,d=false;a=b;this.arity="statement";j["(breakage)"]=j["(breakage)"]+1;j["(loopage)"]=j["(loopage)"]+1;f("(");if(b.id===";"){t();f(";");t();f(";");t();f(")");a=$(true)}else{G("control");F(this,a);t();b.id==="var"&&k("move_var");A();if(S(0).id===
"in"){this.forin=true;e=b;switch(j[e.string]){case "unused":j[e.string]="var";break;case "closure":case "var":break;default:c("bad_in_a",e)}f();f("in");this.first=e;this.second=l(20);D(")",a);a=$(true);if(!g.forin){if(a.length===1&&typeof a[0]==="object"&&a[0].string==="if"&&!a[0]["else"]){for(e=a[0].first;e.id==="&&";)e=e.first;switch(e.id){case "===":case "!==":d=e.first.id==="["?e.first.first.string===this.second.string&&e.first.second.string===this.first.string:e.first.id==="typeof"&&e.first.first.id===
"["&&e.first.first.first.string===this.second.string&&e.first.first.second.string===this.first.string;break;case "(":d=e.first.id==="."&&(e.first.first.string===this.second.string&&e.first.second.string==="hasOwnProperty"&&e.second[0].string===this.first.string||e.first.first.string==="ADSAFE"&&e.first.second.string==="has"&&e.second[0].string===this.second.string&&e.second[1].string===this.first.string||e.first.first.id==="."&&e.first.first.first.id==="."&&e.first.first.first.first.string==="Object"&&
e.first.first.first.second.string==="prototype"&&e.first.first.second.string==="hasOwnProperty"&&e.first.second.string==="call"&&e.second[0].string===this.second.string&&e.second[1].string===this.first.string)}}d||c("for_if",this)}}else{A();for(this.first=[];;){this.first.push(l(0,"for"));if(b.id!==",")break;K()}P();A();this.second=ba(l(0));this.second.id!=="true"&&fa(this.second,C.unexpected_a);P(h);b.id===";"&&k("expected_a_b",b,")",";");this.third=[];for(A();;){this.third.push(l(0,"for"));if(b.id!==
",")break;K()}t();D(")",a);v();a=$(true)}}a.disrupt&&c("strange_loop",T);this.block=a;j["(breakage)"]=j["(breakage)"]-1;j["(loopage)"]=j["(loopage)"]-1;return this});Ua("break",function(){var a=b.string;this.arity="statement";j["(breakage)"]===0&&c("unexpected_a",this);if(b.identifier&&h.line===b.line){wa();j[a]!=="label"?c("not_a_label",b):y[a].funct!==j&&c("not_a_scope",b);this.first=b;f()}return this});Ua("continue",function(){g["continue"]||c("unexpected_a",this);var a=b.string;this.arity="statement";
j["(breakage)"]===0&&c("unexpected_a",this);if(b.identifier&&h.line===b.line){wa();j[a]!=="label"?c("not_a_label",b):y[a].funct!==j&&c("not_a_scope",b);this.first=b;f()}return this});Ua("return",function(){j===Y&&s!=="scriptstring"&&c("unexpected_a",this);this.arity="statement";if(b.id!==";"&&b.line===h.line){wa();(b.id==="/"||b.id==="(regexp)")&&c("wrap_regexp");this.first=l(20)}S(0).id==="}"&&S(1).id==="else"&&c("unexpected_else",this);return this});Ua("throw",function(){this.arity="statement";
wa();this.first=l(20);return this});x("class");x("const");x("enum");x("export");x("extends");x("import");x("super");x("implements");x("interface");x("let");x("package");x("private");x("protected");x("public");x("static");x("yield");pb=[ka,function(){for(;;)if(b.identifier)switch(b.string.toLowerCase()){case "url":ka();break;case "expression":c("unexpected_a");f();break;default:f()}else{if(b.id===";"||b.id==="!"||b.id==="(end)"||b.id==="}")return true;f()}}];Aa="none dashed dotted double groove hidden inset outset ridge solid".split(" ");
ub=["auto","always","avoid","left","right"];Fb={all:!0,braille:!0,embossed:!0,handheld:!0,print:!0,projection:!0,screen:!0,speech:!0,tty:!0,tv:!0};cb=["auto","hidden","scroll","visible"];ab={background:[!0,"background-attachment","background-color","background-image","background-position","background-repeat"],"background-attachment":["scroll","fixed"],"background-color":["transparent",ca],"background-image":["none",ka],"background-position":[2,[w,"top","bottom","left","right","center"]],"background-repeat":["repeat",
"repeat-x","repeat-y","no-repeat"],border:[!0,"border-color","border-style","border-width"],"border-bottom":[!0,"border-bottom-color","border-bottom-style","border-bottom-width"],"border-bottom-color":ca,"border-bottom-left-radius":$a,"border-bottom-right-radius":$a,"border-bottom-style":Aa,"border-bottom-width":za,"border-collapse":["collapse","separate"],"border-color":["transparent",4,ca],"border-left":[!0,"border-left-color","border-left-style","border-left-width"],"border-left-color":ca,"border-left-style":Aa,
"border-left-width":za,"border-radius":function(){function a(a){var d=1;a&&f(a);if(!w())return false;for(;b.id==="(number)";){if(!w())return false;d=d+1}d>4&&c("bad_style");return true}return a()&&(b.id!=="/"||a("/"))},"border-right":[!0,"border-right-color","border-right-style","border-right-width"],"border-right-color":ca,"border-right-style":Aa,"border-right-width":za,"border-spacing":[2,w],"border-style":[4,Aa],"border-top":[!0,"border-top-color","border-top-style","border-top-width"],"border-top-color":ca,
"border-top-left-radius":$a,"border-top-right-radius":$a,"border-top-style":Aa,"border-top-width":za,"border-width":[4,za],bottom:[w,"auto"],"box-shadow":["none",function(){for(;;){for(b.string==="inset"&&f();;)if(!w())break;ca();if(b.id!==",")break;f(",")}return true}],"caption-side":["bottom","left","right","top"],clear:["both","left","none","right"],clip:[function(){var a;if(b.identifier&&b.string==="rect"){f();f("(");for(a=0;a<4;a=a+1)if(!w()){c("expected_number_a");break}f(")");return true}return false},
"auto"],color:ca,content:["open-quote","close-quote","no-open-quote","no-close-quote",Ja,ka,function(){if(b.identifier&&b.string==="counter"){f();f("(");f();if(b.id===","){K();b.id!=="(string)"&&c("expected_string_a");f()}f(")");return true}if(b.identifier&&b.string==="counters"){f();f("(");b.identifier||c("expected_name_a");f();if(b.id===","){K();b.id!=="(string)"&&c("expected_string_a");f()}if(b.id===","){K();b.id!=="(string)"&&c("expected_string_a");f()}f(")");return true}return false},function(){if(b.identifier&&
b.string==="attr"){f();f("(");b.identifier||c("expected_name_a");f();f(")");return true}return false}],"counter-increment":[Ia,"none"],"counter-reset":[Ia,"none"],cursor:[ka,"auto","crosshair","default","e-resize","help","move","n-resize","ne-resize","nw-resize","pointer","s-resize","se-resize","sw-resize","w-resize","text","wait"],direction:["ltr","rtl"],display:"block compact inline inline-block inline-table list-item marker none run-in table table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group".split(" "),
"empty-cells":["show","hide"],"float":["left","none","right"],font:["caption","icon","menu","message-box","small-caption","status-bar",!0,"font-size","font-style","font-weight","font-family"],"font-family":function(){for(;b.id!==";";){!Ia()&&!Ja()&&c("expected_name_a");if(b.id!==",")return true;K()}},"font-size":["xx-small","x-small","small","medium","large","x-large","xx-large","larger","smaller",w],"font-size-adjust":["none",Za],"font-stretch":"normal wider narrower ultra-condensed extra-condensed condensed semi-condensed semi-expanded expanded extra-expanded".split(" "),
"font-style":["normal","italic","oblique"],"font-variant":["normal","small-caps"],"font-weight":["normal","bold","bolder","lighter",Za],height:[w,"auto"],left:[w,"auto"],"letter-spacing":["normal",w],"line-height":["normal",function(){if(b.id==="-"){f("-");B()}if(b.id==="(number)"){f();if(b.id!=="(string)"&&Bb[b.string]===true){B();f()}return true}return false}],"list-style":[!0,"list-style-image","list-style-position","list-style-type"],"list-style-image":["none",ka],"list-style-position":["inside",
"outside"],"list-style-type":"circle disc square decimal decimal-leading-zero lower-roman upper-roman lower-greek lower-alpha lower-latin upper-alpha upper-latin hebrew katakana hiragana-iroha katakana-oroha none".split(" "),margin:[4,Ka],"margin-bottom":Ka,"margin-left":Ka,"margin-right":Ka,"margin-top":Ka,"marker-offset":[w,"auto"],"max-height":[w,"none"],"max-width":[w,"none"],"min-height":w,"min-width":w,opacity:Za,outline:[!0,"outline-color","outline-style","outline-width"],"outline-color":["invert",
ca],"outline-style":"dashed dotted double groove inset none outset ridge solid".split(" "),"outline-width":za,overflow:cb,"overflow-x":cb,"overflow-y":cb,padding:[4,w],"padding-bottom":w,"padding-left":w,"padding-right":w,"padding-top":w,"page-break-after":ub,"page-break-before":ub,position:["absolute","fixed","relative","static"],quotes:[8,Ja],right:[w,"auto"],"table-layout":["auto","fixed"],"text-align":["center","justify","left","right"],"text-decoration":["none","underline","overline","line-through",
"blink"],"text-indent":w,"text-shadow":["none",4,[ca,w]],"text-transform":["capitalize","uppercase","lowercase","none"],top:[w,"auto"],"unicode-bidi":["normal","embed","bidi-override"],"vertical-align":["baseline","bottom","sub","super","top","text-top","middle","text-bottom",w],visibility:["visible","hidden","collapse"],"white-space":"normal nowrap pre pre-line pre-wrap inherit".split(" "),width:[w,"auto"],"word-spacing":["normal",w],"word-wrap":["break-word","normal"],"z-index":["auto",Za]};W=function(a,
e){var d,i,l;JSLINT.errors=[];JSLINT.tree="";JSLINT.properties="";tb=T=h=b=Object.create(aa["(begin)"]);M={};O(Hb);ua={};if(e){g=Object.create(e);if(i=g.predef)if(Array.isArray(i))for(d=0;d<i.length;d=d+1)M[i[d]]=true;else typeof i==="object"&&O(i);if(g.adsafe)g.safe=true;if(g.safe){g.browser=g["continue"]=g.css=g.debug=g.devel=g.evil=g.forin=g.newcap=g.nomen=g.on=g.rhino=g.sloppy=g.sub=g.undef=g.windows=false;delete M.Array;delete M.Date;delete M.Function;delete M.Object;delete M.eval;O({ADSAFE:false,
lib:false})}}else g={};g.indent=+g.indent||4;g.maxerr=+g.maxerr||50;V="";Ma=Na=la=false;bb={};if(g.approved)for(d=0;d<g.approved.length;d=d+1)bb[g.approved[d]]=g.approved[d];else bb.test="test";eb="";for(d=0;d<g.indent;d=d+1)eb=eb+" ";Da=y={};Y=j={"(scope)":y,"(breakage)":0,"(loopage)":0};Ya=[j];Oa=false;db={};ja=false;p=null;na=false;Ea=[];Qa=false;vb=true;wb=false;H=null;ra=false;La=[];da=null;Ra=0;s="";Fa.init(a);ga();try{f();if(b.id==="(number)")k("unexpected_a");else if(b.string.charAt(0)===
"<"){a:{var n,r,w,t,o=g.white,v,m,x,z;s="html";R="";for(H=null;;){switch(b.string){case "<":s="html";f("<");r={};m=b;t=m.string;U(t);g.cap&&(t=t.toLowerCase());m.name=t;if(!H){H=[];d=t;d!=="html"&&!g.fragment&&(d==="div"&&g.adsafe?k("adsafe_fragment"):k("expected_a_b",h,"html",d));if(g.adsafe){d==="html"&&k("adsafe_html",h);g.fragment?d!=="div"&&k("adsafe_div",h):k("adsafe_fragment",h)}g.browser=true}x=rb[t];typeof x!=="object"&&k("unrecognized_tag_a",m,t);w=x.empty;for(m.type=t;;){if(b.id==="/"){f("/");
b.id!==">"&&c("expected_a_b",b,">",q());break}if(b.id&&b.id.charAt(0)===">")break;if(!b.identifier){(b.id==="(end)"||b.id==="(error)")&&c("expected_a_b",b,">",q());c("bad_name_a")}g.white=false;F();n=b.string;g.white=o;f();!g.cap&&n!==n.toLowerCase()&&c("attribute_case_a",h);n=n.toLowerCase();R="";Object.prototype.hasOwnProperty.call(r,n)&&c("duplicate_a",h,n);if(n.slice(0,2)==="on"){g.on||c("html_handlers");s="scriptstring";f("=");v=b.id;v!=='"'&&v!=="'"&&k("expected_a_b",b,'"',q());R=v;z=g.white;
g.white=true;f(v);Sa();ta();g.white=z;b.id!==v&&k("expected_a_b",b,v,q());s="html";R="";f(v);x=false}else if(n==="style"){s="scriptstring";f("=");v=b.id;v!=='"'&&v!=="'"&&k("expected_a_b",b,'"',q());s="styleproperty";R=v;f(v);Cb();s="html";R="";f(v);x=false}else if(b.id==="="){f("=");x=b.string;!b.identifier&&(b.id!=='"'&&b.id!=="'"&&b.id!=="(string)"&&b.id!=="(number)"&&b.id!=="(color)")&&c("expected_attribute_value_a",h,n);f()}else x=true;r[n]=x;d=n;i=x;var u=l=void 0;if(d==="id"){l=typeof i===
"string"?i.toUpperCase():"";db[l]===true&&c("duplicate_a",b,i);if(/^[A-Za-z][A-Za-z0-9._:\-]*$/.test(i)){if(g.adsafe)if(V)i.slice(0,V.length)!==V?c("adsafe_prefix_a",b,V):/^[A-Z]+_[A-Z]+$/.test(i)||c("adsafe_bad_id");else{V=i;/^[A-Z]+_$/.test(i)||c("adsafe_bad_id")}}else c("bad_id_a",b,i);u=i.search(Zb);u>=0&&c("unexpected_char_a_b",h,i.charAt(u),d);db[l]=true}else if(d==="class"||d==="type"||d==="name"){u=i.search(bc);u>=0&&c("unexpected_char_a_b",h,i.charAt(u),d);db[l]=true}else if(d==="href"||
d==="background"||d==="content"||d==="data"||d.indexOf("src")>=0||d.indexOf("url")>=0){g.safe&&nb.test(i)&&k("bad_url_a",b,i);La.push(i)}else d==="for"?g.adsafe&&(V?i.slice(0,V.length)!==V?c("adsafe_prefix_a",b,V):/^[A-Z]+_[A-Z]+$/.test(i)||c("adsafe_bad_id"):c("adsafe_bad_id")):d==="name"&&g.adsafe&&i.indexOf("_")>=0&&c("adsafe_name_a",b,i)}d=t;i=r;l=void 0;var D=rb[d],B=u=void 0;wb=false;D||k(C.unrecognized_tag_a,b,d===d.toLowerCase()?d:d+" (capitalization error)");if(H.length>0){d==="html"&&k("unexpected_a",
h,d);if(B=D.parent)B.indexOf(" "+H[H.length-1].name+" ")<0&&k("tag_a_in_b",h,d,B);else if(!g.adsafe&&!g.fragment){l=H.length;do{l<=0&&k("tag_a_in_b",h,d,"body");l=l-1}while(H[l].name!=="body")}}switch(d){case "div":g.adsafe&&(H.length===1&&!V)&&c("adsafe_missing_id");break;case "script":s="script";f(">");i.lang&&c("lang",h);g.adsafe&&H.length!==1&&c("adsafe_placement",h);if(i.src)g.adsafe&&(!Ma||!bb[i.src])&&c("adsafe_source",h);else{G(b.from);A();Sa();Na=true;u=ta();if(g.adsafe){la&&k("adsafe_script",
h);(u.length!==1||X(u[0],"id","(")||X(u[0].first,"id",".")||X(u[0].first.first,"string","ADSAFE")||X(u[0].second[0],"string",V))&&k("adsafe_id_go");switch(u[0].first.second.string){case "id":(Ma||la||u[0].second.length!==1)&&k("adsafe_id",b);Ma=true;break;case "go":la&&k("adsafe_go");(u[0].second.length!==2||X(u[0].second[1],"id","function")||!u[0].second[1].first||X(u[0].second[1].first[0],"string","dom")||u[0].second[1].first.length>2||u[0].second[1].first.length===2&&X(u[0].second[1].first[1],
"string","lib"))&&k("adsafe_go",b);la=true;break;default:k("adsafe_id_go")}}p=null}s="html";f("</");U("script");s="outer";break;case "style":s="style";f(">");Eb();s="html";f("</");U("style");break;case "input":switch(i.type){case "button":case "checkbox":case "radio":case "reset":case "submit":break;case "file":case "hidden":case "image":case "password":case "text":g.adsafe&&i.autocomplete!=="off"&&c("adsafe_autocomplete");break;default:c("bad_type")}break;case "applet":case "body":case "embed":case "frame":case "frameset":case "head":case "iframe":case "noembed":case "noframes":case "object":case "param":g.adsafe&&
c("adsafe_tag",b,d)}w||H.push(m);s="outer";f(">");break;case "</":s="html";f("</");b.identifier||c("bad_name_a");t=b.string;g.cap&&(t=t.toLowerCase());f();H||k("unexpected_a",b,"</"+t+">");(m=H.pop())||k("unexpected_a",b,"</"+t+">");m.name!==t&&k("expected_a_b",b,"</"+m.name+">","</"+t+">");b.id!==">"&&k("expected_a_b",b,">",q());s="outer";f(">");break;case "<!":g.safe&&c("adsafe_a");for(s="html";;){f();if(b.id===">"||b.id==="(end)")break;b.string.indexOf("--")>=0&&k("unexpected_a",b,"--");b.string.indexOf("<")>=
0&&k("unexpected_a",b,"<");b.string.indexOf(">")>=0&&k("unexpected_a",b,">")}s="outer";f(">");break;case "(end)":H.length!==0&&c("missing_a",b,"</"+H.pop().string+">");break a;default:b.id==="(end)"?k("missing_a",b,"</"+H[H.length-1].string+">"):f()}if(H&&H.length===0&&(g.adsafe||!g.fragment||b.id==="(end)"))break}b.id!=="(end)"&&k("unexpected_a")}g.adsafe&&!la&&c("adsafe_go",this)}else switch(b.id){case "{":case "[":na=true;mb();break;case "@":case "*":case "#":case ".":case ":":s="style";f();(h.id!==
"@"||!b.identifier||b.string!=="charset"||h.line!==1||h.from!==1)&&k("css");f();b.id!=="(string)"&&b.string!=="UTF-8"&&k("css");f();P();Eb();break;default:g.adsafe&&g.fragment&&k("expected_a_b",b,"<div>",q());G(1);b.id===";"&&!Qa&&P();Na=true;l=ta();tb.first=l;W.tree=tb;g.adsafe&&(l.length!==1||X(l[0],"id","(")||X(l[0].first,"id",".")||X(l[0].first.first,"string","ADSAFE")||X(l[0].first.second,"string","lib")||l[0].second.length!==2||l[0].second[0].id!=="(string)"||X(l[0].second[1],"id","function"))&&
k("adsafe_lib");l.disrupt&&c("weird_program",T)}p=null;f("(end)");W.property=ua}catch(E){E&&JSLINT.errors.push({reason:E.message,line:E.line||b.line,character:E.character||b.from},null)}return JSLINT.errors.length===0};W.data=function(){var a={functions:[]},b,d,c,f,g,h=[],j=[];if(W.errors.length)a.errors=W.errors;if(na)a.json=true;if(La.length>0)a.urls=La;b=Object.keys(Da).filter(function(a){return a.charAt(0)!=="("&&typeof Hb[a]!=="boolean"});if(b.length>0)a.globals=b;for(d=1;d<Ya.length;d=d+1){g=
Ya[d];b={};for(c=0;c<Pa.length;c=c+1)b[Pa[c]]=[];for(f in g)if(Object.prototype.hasOwnProperty.call(g,f)&&f.charAt(0)!=="("){c=g[f];if(c==="unction"||c==="unparam")c="unused";if(Array.isArray(b[c])){b[c].push(f);c==="unused"?j.push({name:f,line:g["(line)"],"function":g["(name)"]}):c==="undef"&&h.push({name:f,line:g["(line)"],"function":g["(name)"]})}}for(c=0;c<Pa.length;c=c+1)b[Pa[c]].length===0&&delete b[Pa[c]];b.name=g["(name)"];b.params=g["(params)"];b.line=g["(line)"];a.functions.push(b)}if(j.length>
0)a.unused=j;h.length>0&&(a.undefined=h);return a};W.error_report=function(a){var b,d,c=[],f;if(a.errors)for(d=0;d<a.errors.length;d=d+1)if(f=a.errors[d]){b=f.evidence||"";c.push("<cite>");isFinite(f.line)&&c.push("<address>line "+f.line+" character "+(""+f.character)+"</address>");c.push(f.reason.entityify()+"</cite>");b&&c.push("<pre>"+b.entityify()+"</pre>")}if(a.unused||a.undefined){c.push("<dl>");if(a.undefined){c.push("<dt>undefined</dt><dd>");b=[];for(d=0;d<a.undefined.length;d=d+1)b[d]="<code>"+
a.undefined[d].name+"</code>&nbsp;<address>"+a.undefined[d]["function"]+" "+(""+a.undefined[d].line)+"</address>";c.push(b.join(", "));c.push("</dd>")}if(a.unused){c.push("<dt>unused</dt><dd>");b=[];for(d=0;d<a.unused.length;d=d+1)b[d]="<code>"+a.unused[d].name+"</code>&nbsp;<address>"+a.unused[d]["function"]+" "+(""+a.unused[d].line)+"</address>";c.push(b.join(", "));c.push("</dd>")}c.push("</dl>")}a.json&&c.push("<p>JSON: bad.</p>");return c.join("")};W.report=function(a){function b(a,c){var d,
e;if(Array.isArray(c)){g.push("<dt>"+a+"</dt><dd>");c.sort().forEach(function(a){if(a!==e){e=a;g.push((d?", ":"")+e);d=true}});g.push("</dd>")}else c&&g.push("<dt>"+a+"</dt><dd>",c,"</dd>")}var d,c,f,g=[],h;g.push("<dl>");if(a.urls){b("url",a.urls);d=true}if(a.globals){b("global",a.globals);d=true}else s==="style"?g.push("<p>CSS.</p>"):a.json?g.push("<p>JSON: good.</p>"):g.push("<div><i>No new global variables introduced.</i></div>");d?g.push("</dl>"):g[0]="";for(d=0;d<a.functions.length;d=d+1){h=
a.functions[d];f=[];if(h.params)for(c=0;c<h.params.length;c=c+1)f[c]=h.params[c].string;g.push("<dl><address>line "+h.line+"</address>"+h.name.entityify()+"("+f.join(", ")+")");b("undefined",h.undefined);b("unused",h.unused);b("closure",h.closure);b("variable",h["var"]);b("exception",h.exception);b("outer",h.outer);b("global",h.global);b("label",h.label);g.push("</dl>")}return g.join("")};W.properties_report=function(a){if(!a)return"";var b,c,f=Object.keys(a).sort(),g=["/*properties"],h=" ",j=
false;for(b=0;b<f.length;b=b+1){c=f[b];if(a[c]>0){j&&(h=h+", ");c=Jb.test(c)?c:"'"+c.replace(Ab,pa)+"'";if(h.length+c.length>80){g.push(h);h=" "}h=h+c;j=true}}g.push(h,"*/\n");return g.join("\n")};W.jslint=W;W.edition="2012-05-09";return W}();(function(I){function Ba(){console.log(["JSLint "+JSLINT.edition+" for PhantomJS"," \nUsage:\n phantomjs jslint-phantomjs.min.js jsfile"].join("\n"))}var pa=require("fs"),O=I.args,ga=0,q,ha;if(0===O.length||1<O.length)Ba(),I.exit(ga);pa.isReadable(O)||(ga=1,Ba(),I.exit(ga));q=JSLINT(pa.read(O));pa=JSLINT.errors.length;q&&I.exit(ga);for(q=0;q<pa;q+=1)(ha=JSLINT.errors[q])&&console.log([O,ha.line,ha.character,ha.reason].join(":"));I.exit(ga)})(phantom);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment