/*! PopUp Pro - v4.7.11
* http://premium.wpmudev.org/project/the-pop-over-plugin/
* Copyright (c) 2015; * Licensed GPLv2+ */
"no use strict";(function(e){if(void 0===e.window||!e.document){e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console,e.window=e,e.ace=e,e.onerror=function(e,t,i,n,r){postMessage({type:"error",data:{message:e,file:t,line:i,col:n,stack:r.stack}})},e.normalizeModule=function(t,i){if(-1!==i.indexOf("!")){var n=i.split("!");return e.normalizeModule(t,n[0])+"!"+e.normalizeModule(t,n[1])}if("."==i.charAt(0)){var r=t.split("/").slice(0,-1).join("/");for(i=(r?r+"/":"")+i;-1!==i.indexOf(".")&&o!=i;){var o=i;i=i.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return i},e.require=function(t,i){if(i||(i=t,t=null),!i.charAt)throw Error("worker.js require() accepts only (parentId, id) as arguments");i=e.normalizeModule(t,i);var n=e.require.modules[i];if(n)return n.initialized||(n.initialized=!0,n.exports=n.factory().exports),n.exports;var r=i.split("/");if(!e.require.tlns)return console.log("unable to load "+i);r[0]=e.require.tlns[r[0]]||r[0];var o=r.join("/")+".js";return e.require.id=i,importScripts(o),e.require(t,i)},e.require.modules={},e.require.tlns={},e.define=function(t,i,n){if(2==arguments.length?(n=i,"string"!=typeof t&&(i=t,t=e.require.id)):1==arguments.length&&(n=t,i=[],t=e.require.id),"function"!=typeof n)return e.require.modules[t]={exports:n,initialized:!0},void 0;i.length||(i=["require","exports","module"]);var r=function(i){return e.require(t,i)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=n.apply(this,i.map(function(t){switch(t){case"require":return r;case"exports":return e.exports;case"module":return e;default:return r(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},e.initBaseUrls=function t(e){require.tlns=e},e.initSender=function i(){var t=e.require("ace/lib/event_emitter").EventEmitter,i=e.require("ace/lib/oop"),n=function(){};return function(){i.implement(this,t),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(n.prototype),new n};var n=e.main=null,r=e.sender=null;e.onmessage=function(o){var s=o.data;if(s.command){if(!n[s.command])throw Error("Unknown command:"+s.command);n[s.command].apply(n,s.args)}else if(s.init){t(s.tlns),require("ace/lib/es5-shim"),r=e.sender=i();var a=require(s.module)[s.classname];n=e.main=new a(r)}else s.event&&r&&r._signal(s.event,s.data)}}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(e,t){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var i in t)e[i]=t[i];return e},t.implement=function(e,i){t.mixin(e,i)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};var i=/^\s\s*/,n=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(i,"")},t.stringTrimRight=function(e){return e.replace(n,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;n>i;i++)t[i]=e[i]&&"object"==typeof e[i]?this.copyObject(e[i]):e[i];return t},t.deepCopy=function(e){if("object"!=typeof e||!e)return e;var i=e.constructor;if(i===RegExp)return e;var n=i();for(var r in e)n[r]="object"==typeof e[r]?t.deepCopy(e[r]):e[r];return n},t.arrayToMap=function(e){for(var t={},i=0;e.length>i;i++)t[e[i]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var i in e)t[i]=e[i];return t},t.arrayRemove=function(e,t){for(var i=0;e.length>=i;i++)t===e[i]&&e.splice(i,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<")},t.getMatchOffsets=function(e,t){var i=[];return e.replace(t,function(e){i.push({offset:arguments[arguments.length-2],length:e.length})}),i},t.deferredCall=function(e){var t=null,i=function(){t=null,e()},n=function(e){return n.cancel(),t=setTimeout(i,e||0),n};return n.schedule=n,n.call=function(){return this.cancel(),e(),n},n.cancel=function(){return clearTimeout(t),t=null,n},n.isPending=function(){return t},n},t.delayedCall=function(e,t){var i=null,n=function(){i=null,e()},r=function(e){null==i&&(i=setTimeout(n,e||t))};return r.delay=function(e){i&&clearTimeout(i),i=setTimeout(n,e||t)},r.schedule=r,r.call=function(){this.cancel(),e()},r.cancel=function(){i&&clearTimeout(i),i=null},r.isPending=function(){return i},r}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t){"use strict";var i={},n=function(){this.propagationStopped=!0},r=function(){this.defaultPrevented=!0};i._emit=i._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],o=this._defaultHandlers[e];if(i.length||o){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=n),t.preventDefault||(t.preventDefault=r),i=i.slice();for(var s=0;i.length>s&&(i[s](t,this),!t.propagationStopped);s++);return o&&!t.defaultPrevented?o(t,this):void 0}},i._signal=function(e,t){var i=(this._eventRegistry||{})[e];if(i){i=i.slice();for(var n=0;i.length>n;n++)i[n](t,this)}},i.once=function(e,t){var i=this;t&&this.addEventListener(e,function n(){i.removeEventListener(e,n),t.apply(null,arguments)})},i.setDefaultHandler=function(e,t){var i=this._defaultHandlers;if(i||(i=this._defaultHandlers={_disabled_:{}}),i[e]){var n=i[e],r=i._disabled_[e];r||(i._disabled_[e]=r=[]),r.push(n);var o=r.indexOf(t);-1!=o&&r.splice(o,1)}i[e]=t},i.removeDefaultHandler=function(e,t){var i=this._defaultHandlers;if(i){var n=i._disabled_[e];if(i[e]==t)i[e],n&&this.setDefaultHandler(e,n.pop());else if(n){var r=n.indexOf(t);-1!=r&&n.splice(r,1)}}},i.on=i.addEventListener=function(e,t,i){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];return n||(n=this._eventRegistry[e]=[]),-1==n.indexOf(t)&&n[i?"unshift":"push"](t),t},i.off=i.removeListener=i.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var i=this._eventRegistry[e];if(i){var n=i.indexOf(t);-1!==n&&i.splice(n,1)}},i.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=i}),ace.define("ace/range",["require","exports","module"],function(e,t){"use strict";var i=function(e,t){return e.row-t.row||e.column-t.column},n=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return t=this.compare(i.row,i.column),1==t?(t=this.compare(n.row,n.column),1==t?2:0==t?1:0):-1==t?-2:(t=this.compare(n.row,n.column),-1==t?-1:1==t?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return 0==this.compare(e,t)?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return 0==this.compare(e,t)?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?this.start.row>e?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?this.end.column>=t?0:1:0:this.start.column>t?-1:t>this.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(e>this.end.row)var i={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(e>this.start.row)var r={row:e,column:0};return n.fromPoints(r||this.start,i||this.end)},this.extend=function(e,t){var i=this.compare(e,t);if(0==i)return this;if(-1==i)var r={row:e,column:t};else var o={row:e,column:t};return n.fromPoints(r||this.start,o||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return n.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new n(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new n(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),i=e.documentToScreenPosition(this.end);return new n(t.row,t.column,i.row,i.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(n.prototype),n.fromPoints=function(e,t){return new n(e.row,e.column,t.row,t.column)},n.comparePoints=i,n.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=n}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t){"use strict";var i=e("./lib/oop"),n=e("./lib/event_emitter").EventEmitter,r=t.Anchor=function(e,t,i){this.$onChange=this.onChange.bind(this),this.attach(e),i===void 0?this.setPosition(t.row,t.column):this.setPosition(t,i)};(function(){i.implement(this,n),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){var t=e.data,i=t.range;if(!(i.start.row==i.end.row&&i.start.row!=this.row||i.start.row>this.row||i.start.row==this.row&&i.start.column>this.column)){var n=this.row,r=this.column,o=i.start,s=i.end;"insertText"===t.action?o.row===n&&r>=o.column?o.column===r&&this.$insertRight||(o.row===s.row?r+=s.column-o.column:(r-=o.column,n+=s.row-o.row)):o.row!==s.row&&n>o.row&&(n+=s.row-o.row):"insertLines"===t.action?o.row===n&&0===r&&this.$insertRight||n>=o.row&&(n+=s.row-o.row):"removeText"===t.action?o.row===n&&r>o.column?r=s.column>=r?o.column:Math.max(0,r-(s.column-o.column)):o.row!==s.row&&n>o.row?(s.row===n&&(r=Math.max(0,r-s.column)+o.column),n-=s.row-o.row):s.row===n&&(n-=s.row-o.row,r=Math.max(0,r-s.column)+o.column):"removeLines"==t.action&&n>=o.row&&(n>=s.row?n-=s.row-o.row:(n=o.row,r=0)),this.setPosition(n,r,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):0>e?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),0>t&&(i.column=0),i}}).call(r.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t){"use strict";var i=e("./lib/oop"),n=e("./lib/event_emitter").EventEmitter,r=e("./range").Range,o=e("./anchor").Anchor,s=function(e){this.$lines=[],0===e.length?this.$lines=[""]:Array.isArray(e)?this._insertLines(0,e):this.insert({row:0,column:0},e)};(function(){i.implement(this,n),this.setValue=function(e){var t=this.getLength();this.remove(new r(0,0,t,this.getLine(t-1).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new o(this,e,t)},this.$split=0==="aaa".split(/a/).length?function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){if(e.start.row==e.end.row)return this.getLine(e.start.row).substring(e.start.column,e.end.column);var t=this.getLines(e.start.row,e.end.row);t[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;return e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column)),t.join(this.getNewLineCharacter())},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):0>e.row&&(e.row=0),e},this.insert=function(e,t){if(!t||0===t.length)return e;e=this.$clipPosition(e),1>=this.getLength()&&this.$detectNewLine(t);var i=this.$split(t),n=i.splice(0,1)[0],r=0==i.length?null:i.splice(i.length-1,1)[0];return e=this.insertInLine(e,n),null!==r&&(e=this.insertNewLine(e),e=this._insertLines(e.row,i),e=this.insertInLine(e,r||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(0==t.length)return{row:e,column:0};for(;t.length>61440;){var i=this._insertLines(e,t.slice(0,61440));t=t.slice(61440),e=i.row}var n=[e,0];n.push.apply(n,t),this.$lines.splice.apply(this.$lines,n);var o=new r(e,0,e+t.length,0),s={action:"insertLines",range:o,lines:t};return this._signal("change",{data:s}),o.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var i={row:e.row+1,column:0},n={action:"insertText",range:r.fromPoints(e,i),text:this.getNewLineCharacter()};return this._signal("change",{data:n}),i},this.insertInLine=function(e,t){if(0==t.length)return e;var i=this.$lines[e.row]||"";this.$lines[e.row]=i.substring(0,e.column)+t+i.substring(e.column);var n={row:e.row,column:e.column+t.length},o={action:"insertText",range:r.fromPoints(e,n),text:t};return this._signal("change",{data:o}),n},this.remove=function(e){if(e instanceof r||(e=r.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end),e.isEmpty())return e.start;var t=e.start.row,i=e.end.row;if(e.isMultiLine()){var n=0==e.start.column?t:t+1,o=i-1;e.end.column>0&&this.removeInLine(i,0,e.end.column),o>=n&&this._removeLines(n,o),n!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,i){if(t!=i){var n=new r(e,t,e,i),o=this.getLine(e),s=o.substring(t,i),a=o.substring(0,t)+o.substring(i,o.length);this.$lines.splice(e,1,a);var l={action:"removeText",range:n,text:s};return this._signal("change",{data:l}),n.start}},this.removeLines=function(e,t){return 0>e||t>=this.getLength()?this.remove(new r(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var i=new r(e,0,t+1,0),n=this.$lines.splice(e,t-e+1),o={action:"removeLines",range:i,nl:this.getNewLineCharacter(),lines:n};return this._signal("change",{data:o}),n},this.removeNewLine=function(e){var t=this.getLine(e),i=this.getLine(e+1),n=new r(e,t.length,e+1,0),o=t+i;this.$lines.splice(e,2,o);var s={action:"removeText",range:n,text:this.getNewLineCharacter()};this._signal("change",{data:s})},this.replace=function(e,t){if(e instanceof r||(e=r.fromPoints(e.start,e.end)),0==t.length&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;if(this.remove(e),t)var i=this.insert(e.start,t);else i=e.start;return i},this.applyDeltas=function(e){for(var t=0;e.length>t;t++){var i=e[t],n=r.fromPoints(i.range.start,i.range.end);"insertLines"==i.action?this.insertLines(n.start.row,i.lines):"insertText"==i.action?this.insert(n.start,i.text):"removeLines"==i.action?this._removeLines(n.start.row,n.end.row-1):"removeText"==i.action&&this.remove(n)}},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--){var i=e[t],n=r.fromPoints(i.range.start,i.range.end);"insertLines"==i.action?this._removeLines(n.start.row,n.end.row-1):"insertText"==i.action?this.remove(n):"removeLines"==i.action?this._insertLines(n.start.row,i.lines):"removeText"==i.action&&this.insert(n.start,i.text)}},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=t||0,o=i.length;o>r;r++)if(e-=i[r].length+n,0>e)return{row:r,column:e+i[r].length+n};return{row:o-1,column:i[o-1].length}},this.positionToIndex=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=0,o=Math.min(e.row,i.length),s=t||0;o>s;++s)r+=i[s].length+n;return r+e.column}}).call(s.prototype),t.Document=s}),ace.define("ace/worker/mirror",["require","exports","module","ace/document","ace/lib/lang"],function(e,t){"use strict";var i=e("../document").Document,n=e("../lib/lang"),r=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(""),r=this.deferredUpdate=n.delayedCall(this.onUpdate.bind(this)),o=this;e.on("change",function(e){return t.applyDeltas(e.data),o.$timeout?r.schedule(o.$timeout):(o.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(r.prototype)}),ace.define("ace/mode/css/csslint",["require","exports","module"],function(require,exports,module){function objectToString(e){return Object.prototype.toString.call(e)}function clone(e,t,i,n){function r(e,i){if(null===e)return null;if(0==i)return e;var l;if("object"!=typeof e)return e;if(util.isArray(e))l=[];else if(util.isRegExp(e))l=RegExp(e.source,util.getRegExpFlags(e)),e.lastIndex&&(l.lastIndex=e.lastIndex);else if(util.isDate(e))l=new Date(e.getTime());else{if(a&&Buffer.isBuffer(e))return l=new Buffer(e.length),e.copy(l),l;l=n===void 0?Object.create(Object.getPrototypeOf(e)):Object.create(n)}if(t){var c=o.indexOf(e);if(-1!=c)return s[c];o.push(e),s.push(l)}for(var h in e)l[h]=r(e[h],i-1);return l}var o=[],s=[],a="undefined"!=typeof Buffer;return t===void 0&&(t=!0),i===void 0&&(i=1/0),r(e,i)}function Reporter(e,t){this.messages=[],this.stats=[],this.lines=e,this.ruleset=t}var parserlib={};(function(){function e(){this._listeners={}}function t(e){this._input=e.replace(/\n\r?/g,"\n"),this._line=1,this._col=1,this._cursor=0}function i(e,t,i){this.col=i,this.line=t,this.message=e}function n(e,t,i,n){this.col=i,this.line=t,this.text=e,this.type=n}function r(e,i){this._reader=e?new t(""+e):null,this._token=null,this._tokenData=i,this._lt=[],this._ltIndex=0,this._ltIndexCache=[]}e.prototype={constructor:e,addListener:function(e,t){this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)},fire:function(e){if("string"==typeof e&&(e={type:e}),e.target!==void 0&&(e.target=this),e.type===void 0)throw Error("Event object missing 'type' property.");if(this._listeners[e.type])for(var t=this._listeners[e.type].concat(),i=0,n=t.length;n>i;i++)t[i].call(this,e)},removeListener:function(e,t){if(this._listeners[e])for(var i=this._listeners[e],n=0,r=i.length;r>n;n++)if(i[n]===t){i.splice(n,1);break}}},t.prototype={constructor:t,getCol:function(){return this._col},getLine:function(){return this._line},eof:function(){return this._cursor==this._input.length},peek:function(e){var t=null;return e=e===void 0?1:e,this._cursor<this._input.length&&(t=this._input.charAt(this._cursor+e-1)),t},read:function(){var e=null;return this._cursor<this._input.length&&("\n"==this._input.charAt(this._cursor)?(this._line++,this._col=1):this._col++,e=this._input.charAt(this._cursor++)),e},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(e){for(var t,i="";i.length<e.length||i.lastIndexOf(e)!=i.length-e.length;){if(t=this.read(),!t)throw Error('Expected "'+e+'" at line '+this._line+", col "+this._col+".");i+=t}return i},readWhile:function(e){for(var t="",i=this.read();null!==i&&e(i);)t+=i,i=this.read();return t},readMatch:function(e){var t=this._input.substring(this._cursor),i=null;return"string"==typeof e?0===t.indexOf(e)&&(i=this.readCount(e.length)):e instanceof RegExp&&e.test(t)&&(i=this.readCount(RegExp.lastMatch.length)),i},readCount:function(e){for(var t="";e--;)t+=this.read();return t}},i.prototype=Error(),n.fromToken=function(e){return new n(e.value,e.startLine,e.startCol)},n.prototype={constructor:n,valueOf:function(){return this.text},toString:function(){return this.text}},r.createTokenData=function(e){var t=[],i={},n=e.concat([]),r=0,o=n.length+1;for(n.UNKNOWN=-1,n.unshift({name:"EOF"});o>r;r++)t.push(n[r].name),n[n[r].name]=r,n[r].text&&(i[n[r].text]=r);return n.name=function(e){return t[e]},n.type=function(e){return i[e]},n},r.prototype={constructor:r,match:function(e,t){e instanceof Array||(e=[e]);for(var i=this.get(t),n=0,r=e.length;r>n;)if(i==e[n++])return!0;return this.unget(),!1},mustMatch:function(e){var t;if(e instanceof Array||(e=[e]),!this.match.apply(this,arguments))throw t=this.LT(1),new i("Expected "+this._tokenData[e[0]].name+" at line "+t.startLine+", col "+t.startCol+".",t.startLine,t.startCol)},advance:function(e,t){for(;0!==this.LA(0)&&!this.match(e,t);)this.get();return this.LA(0)},get:function(e){var t,i,n=this._tokenData,r=(this._reader,0);if(n.length,this._lt.length&&this._ltIndex>=0&&this._ltIndex<this._lt.length){for(r++,this._token=this._lt[this._ltIndex++],i=n[this._token.type];void 0!==i.channel&&e!==i.channel&&this._ltIndex<this._lt.length;)this._token=this._lt[this._ltIndex++],i=n[this._token.type],r++;if((void 0===i.channel||e===i.channel)&&this._ltIndex<=this._lt.length)return this._ltIndexCache.push(r),this._token.type}return t=this._getToken(),t.type>-1&&!n[t.type].hide&&(t.channel=n[t.type].channel,this._token=t,this._lt.push(t),this._ltIndexCache.push(this._lt.length-this._ltIndex+r),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=n[t.type],i&&(i.hide||void 0!==i.channel&&e!==i.channel)?this.get(e):t.type},LA:function(e){var t,i=e;if(e>0){if(e>5)throw Error("Too much lookahead.");for(;i;)t=this.get(),i--;for(;e>i;)this.unget(),i++}else if(0>e){if(!this._lt[this._ltIndex+e])throw Error("Too much lookbehind.");t=this._lt[this._ltIndex+e].type}else t=this._token.type;return t},LT:function(e){return this.LA(e),this._lt[this._ltIndex+e-1]},peek:function(){return this.LA(1)},token:function(){return this._token},tokenName:function(e){return 0>e||e>this._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[e].name},tokenType:function(e){return this._tokenData[e]||-1},unget:function(){if(!this._ltIndexCache.length)throw Error("Too much lookahead.");this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1]}},parserlib.util={StringReader:t,SyntaxError:i,SyntaxUnit:n,EventTarget:e,TokenStreamBase:r}})(),function(){function Combinator(e,t,i){SyntaxUnit.call(this,e,t,i,Parser.COMBINATOR_TYPE),this.type="unknown",/^\s+$/.test(e)?this.type="descendant":">"==e?this.type="child":"+"==e?this.type="adjacent-sibling":"~"==e&&(this.type="sibling")}function MediaFeature(e,t){SyntaxUnit.call(this,"("+e+(null!==t?":"+t:"")+")",e.startLine,e.startCol,Parser.MEDIA_FEATURE_TYPE),this.name=e,this.value=t}function MediaQuery(e,t,i,n,r){SyntaxUnit.call(this,(e?e+" ":"")+(t?t:"")+(t&&i.length>0?" and ":"")+i.join(" and "),n,r,Parser.MEDIA_QUERY_TYPE),this.modifier=e,this.mediaType=t,this.features=i}function Parser(e){EventTarget.call(this),this.options=e||{},this._tokenStream=null}function PropertyName(e,t,i,n){SyntaxUnit.call(this,e,i,n,Parser.PROPERTY_NAME_TYPE),this.hack=t}function PropertyValue(e,t,i){SyntaxUnit.call(this,e.join(" "),t,i,Parser.PROPERTY_VALUE_TYPE),this.parts=e}function PropertyValueIterator(e){this._i=0,this._parts=e.parts,this._marks=[],this.value=e}function PropertyValuePart(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_VALUE_PART_TYPE),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text))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":case"vh":case"vw":case"vmax":case"vmin":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(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,3==temp.length?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(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(text)?(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(text)?(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(text)?(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(text)?(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(text)?(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100,this.alpha=+RegExp.$4):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^([^\(]+)\(/i.test(text)?(this.type="function",this.name=RegExp.$1,this.value=text):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-_\u0080-\uFFFF][a-z0-9\-_\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function Selector(e,t,i){SyntaxUnit.call(this,e.join(" "),t,i,Parser.SELECTOR_TYPE),this.parts=e,this.specificity=Specificity.calculate(this)}function SelectorPart(e,t,i,n,r){SyntaxUnit.call(this,i,n,r,Parser.SELECTOR_PART_TYPE),this.elementName=e,this.modifiers=t}function SelectorSubPart(e,t,i,n){SyntaxUnit.call(this,e,i,n,Parser.SELECTOR_SUB_PART_TYPE),this.type=t,this.args=[]}function Specificity(e,t,i,n){this.a=e,this.b=t,this.c=i,this.d=n}function isHexDigit(e){return null!==e&&h.test(e)}function isDigit(e){return null!==e&&/\d/.test(e)}function isWhitespace(e){return null!==e&&/\s/.test(e)}function isNewLine(e){return null!==e&&nl.test(e)}function isNameStart(e){return null!==e&&/[a-z_\u0080-\uFFFF\\]/i.test(e)}function isNameChar(e){return null!==e&&(isNameStart(e)||/[0-9\-\\]/.test(e))}function isIdentStart(e){return null!==e&&(isNameStart(e)||/\-\\/.test(e))}function mix(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e}function TokenStream(e){TokenStreamBase.call(this,e,Tokens)}function ValidationError(e,t,i){this.col=i,this.line=t,this.message=e}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={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",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#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",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#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",slategrey:"#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",activeBorder:"Active window border.",activecaption:"Active window caption.",appworkspace:"Background color of multiple document interface.",background:"Desktop background.",buttonface:"The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.",buttonhighlight:"The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",buttonshadow:"The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",buttontext:"Text on push buttons.",captiontext:"Text in caption, size box, and scrollbar arrow box.",graytext:"Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.",greytext:"Greyed (disabled) text. This color is set to #000 if the current display driver does not support a solid grey color.",highlight:"Item(s) selected in a control.",highlighttext:"Text of item(s) selected in a control.",inactiveborder:"Inactive window border.",inactivecaption:"Inactive window caption.",inactivecaptiontext:"Color of text in an inactive caption.",infobackground:"Background color for tooltip controls.",infotext:"Text color for tooltip controls.",menu:"Menu background.",menutext:"Text in menus.",scrollbar:"Scroll bar gray area.",threeddarkshadow:"The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedface:"The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedhighlight:"The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedlightshadow:"The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedshadow:"The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",window:"Window background.",windowframe:"Window frame.",windowtext:"Text in windows."};
Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator,MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.DEFAULT_TYPE=0,Parser.COMBINATOR_TYPE=1,Parser.MEDIA_FEATURE_TYPE=2,Parser.MEDIA_QUERY_TYPE=3,Parser.PROPERTY_NAME_TYPE=4,Parser.PROPERTY_VALUE_TYPE=5,Parser.PROPERTY_VALUE_PART_TYPE=6,Parser.SELECTOR_TYPE=7,Parser.SELECTOR_PART_TYPE=8,Parser.SELECTOR_SUB_PART_TYPE=9,Parser.prototype=function(){var e,t=new EventTarget,i={constructor:Parser,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 e,t,i,n=this._tokenStream;for(this.fire("startstylesheet"),this._charset(),this._skipCruft();n.peek()==Tokens.IMPORT_SYM;)this._import(),this._skipCruft();for(;n.peek()==Tokens.NAMESPACE_SYM;)this._namespace(),this._skipCruft();for(i=n.peek();i>Tokens.EOF;){try{switch(i){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.VIEWPORT_SYM:this._viewport(),this._skipCruft();break;case Tokens.UNKNOWN_SYM:if(n.get(),this.options.strict)throw new SyntaxError("Unknown @ rule.",n.LT(0).startLine,n.LT(0).startCol);for(this.fire({type:"error",error:null,message:"Unknown @ rule: "+n.LT(0).value+".",line:n.LT(0).startLine,col:n.LT(0).startCol}),e=0;n.advance([Tokens.LBRACE,Tokens.RBRACE])==Tokens.LBRACE;)e++;for(;e;)n.advance([Tokens.RBRACE]),e--;break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(i){case Tokens.CHARSET_SYM:throw t=n.LT(1),this._charset(!1),new SyntaxError("@charset not allowed here.",t.startLine,t.startCol);case Tokens.IMPORT_SYM:throw t=n.LT(1),this._import(!1),new SyntaxError("@import not allowed here.",t.startLine,t.startCol);case Tokens.NAMESPACE_SYM:throw t=n.LT(1),this._namespace(!1),new SyntaxError("@namespace not allowed here.",t.startLine,t.startCol);default:n.get(),this._unexpectedToken(n.token())}}}catch(r){if(!(r instanceof SyntaxError)||this.options.strict)throw r;this.fire({type:"error",error:r,message:r.message,line:r.line,col:r.col})}i=n.peek()}i!=Tokens.EOF&&this._unexpectedToken(n.token()),this.fire("endstylesheet")},_charset:function(e){var t,i,n,r,o=this._tokenStream;o.match(Tokens.CHARSET_SYM)&&(n=o.token().startLine,r=o.token().startCol,this._readWhitespace(),o.mustMatch(Tokens.STRING),i=o.token(),t=i.value,this._readWhitespace(),o.mustMatch(Tokens.SEMICOLON),e!==!1&&this.fire({type:"charset",charset:t,line:n,col:r}))},_import:function(e){var t,i,n=this._tokenStream,r=[];n.mustMatch(Tokens.IMPORT_SYM),i=n.token(),this._readWhitespace(),n.mustMatch([Tokens.STRING,Tokens.URI]),t=n.token().value.replace(/^(?:url\()?["']?([^"']+?)["']?\)?$/,"$1"),this._readWhitespace(),r=this._media_query_list(),n.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),e!==!1&&this.fire({type:"import",uri:t,media:r,line:i.startLine,col:i.startCol})},_namespace:function(e){var t,i,n,r,o=this._tokenStream;o.mustMatch(Tokens.NAMESPACE_SYM),t=o.token().startLine,i=o.token().startCol,this._readWhitespace(),o.match(Tokens.IDENT)&&(n=o.token().value,this._readWhitespace()),o.mustMatch([Tokens.STRING,Tokens.URI]),r=o.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),o.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),e!==!1&&this.fire({type:"namespace",prefix:n,uri:r,line:t,col:i})},_media:function(){var e,t,i,n=this._tokenStream;for(n.mustMatch(Tokens.MEDIA_SYM),e=n.token().startLine,t=n.token().startCol,this._readWhitespace(),i=this._media_query_list(),n.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:i,line:e,col:t});;)if(n.peek()==Tokens.PAGE_SYM)this._page();else if(n.peek()==Tokens.FONT_FACE_SYM)this._font_face();else if(n.peek()==Tokens.VIEWPORT_SYM)this._viewport();else if(!this._ruleset())break;n.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:i,line:e,col:t})},_media_query_list:function(){var e=this._tokenStream,t=[];for(this._readWhitespace(),(e.peek()==Tokens.IDENT||e.peek()==Tokens.LPAREN)&&t.push(this._media_query());e.match(Tokens.COMMA);)this._readWhitespace(),t.push(this._media_query());return t},_media_query:function(){var e=this._tokenStream,t=null,i=null,n=null,r=[];if(e.match(Tokens.IDENT)&&(i=e.token().value.toLowerCase(),"only"!=i&&"not"!=i?(e.unget(),i=null):n=e.token()),this._readWhitespace(),e.peek()==Tokens.IDENT?(t=this._media_type(),null===n&&(n=e.token())):e.peek()==Tokens.LPAREN&&(null===n&&(n=e.LT(1)),r.push(this._media_expression())),null===t&&0===r.length)return null;for(this._readWhitespace();e.match(Tokens.IDENT);)"and"!=e.token().value.toLowerCase()&&this._unexpectedToken(e.token()),this._readWhitespace(),r.push(this._media_expression());return new MediaQuery(i,t,r,n.startLine,n.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var e,t=this._tokenStream,i=null,n=null;return t.mustMatch(Tokens.LPAREN),i=this._media_feature(),this._readWhitespace(),t.match(Tokens.COLON)&&(this._readWhitespace(),e=t.LT(1),n=this._expression()),t.mustMatch(Tokens.RPAREN),this._readWhitespace(),new MediaFeature(i,n?new SyntaxUnit(n,e.startLine,e.startCol):null)},_media_feature:function(){var e=this._tokenStream;return e.mustMatch(Tokens.IDENT),SyntaxUnit.fromToken(e.token())},_page:function(){var e,t,i=this._tokenStream,n=null,r=null;i.mustMatch(Tokens.PAGE_SYM),e=i.token().startLine,t=i.token().startCol,this._readWhitespace(),i.match(Tokens.IDENT)&&(n=i.token().value,"auto"===n.toLowerCase()&&this._unexpectedToken(i.token())),i.peek()==Tokens.COLON&&(r=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:n,pseudo:r,line:e,col:t}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:n,pseudo:r,line:e,col:t})},_margin:function(){var e,t,i=this._tokenStream,n=this._margin_sym();return n?(e=i.token().startLine,t=i.token().startCol,this.fire({type:"startpagemargin",margin:n,line:e,col:t}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:n,line:e,col:t}),!0):!1},_margin_sym:function(){var e=this._tokenStream;return e.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(e.token()):null},_pseudo_page:function(){var e=this._tokenStream;return e.mustMatch(Tokens.COLON),e.mustMatch(Tokens.IDENT),e.token().value},_font_face:function(){var e,t,i=this._tokenStream;i.mustMatch(Tokens.FONT_FACE_SYM),e=i.token().startLine,t=i.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:e,col:t}),this._readDeclarations(!0),this.fire({type:"endfontface",line:e,col:t})},_viewport:function(){var e,t,i=this._tokenStream;i.mustMatch(Tokens.VIEWPORT_SYM),e=i.token().startLine,t=i.token().startCol,this._readWhitespace(),this.fire({type:"startviewport",line:e,col:t}),this._readDeclarations(!0),this.fire({type:"endviewport",line:e,col:t})},_operator:function(e){var t=this._tokenStream,i=null;return(t.match([Tokens.SLASH,Tokens.COMMA])||e&&t.match([Tokens.PLUS,Tokens.STAR,Tokens.MINUS]))&&(i=t.token(),this._readWhitespace()),i?PropertyValuePart.fromToken(i):null},_combinator:function(){var e,t=this._tokenStream,i=null;return t.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(e=t.token(),i=new Combinator(e.value,e.startLine,e.startCol),this._readWhitespace()),i},_unary_operator:function(){var e=this._tokenStream;return e.match([Tokens.MINUS,Tokens.PLUS])?e.token().value:null},_property:function(){var e,t,i,n,r=this._tokenStream,o=null,s=null;return r.peek()==Tokens.STAR&&this.options.starHack&&(r.get(),t=r.token(),s=t.value,i=t.startLine,n=t.startCol),r.match(Tokens.IDENT)&&(t=r.token(),e=t.value,"_"==e.charAt(0)&&this.options.underscoreHack&&(s="_",e=e.substring(1)),o=new PropertyName(e,s,i||t.startLine,n||t.startCol),this._readWhitespace()),o},_ruleset:function(){var e,t,i=this._tokenStream;try{t=this._selectors_group()}catch(n){if(!(n instanceof SyntaxError)||this.options.strict)throw n;if(this.fire({type:"error",error:n,message:n.message,line:n.line,col:n.col}),e=i.advance([Tokens.RBRACE]),e!=Tokens.RBRACE)throw n;return!0}return t&&(this.fire({type:"startrule",selectors:t,line:t[0].line,col:t[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:t,line:t[0].line,col:t[0].col})),t},_selectors_group:function(){var e,t=this._tokenStream,i=[];if(e=this._selector(),null!==e)for(i.push(e);t.match(Tokens.COMMA);)this._readWhitespace(),e=this._selector(),null!==e?i.push(e):this._unexpectedToken(t.LT(1));return i.length?i:null},_selector:function(){var e=this._tokenStream,t=[],i=null,n=null,r=null;if(i=this._simple_selector_sequence(),null===i)return null;for(t.push(i);;)if(n=this._combinator(),null!==n)t.push(n),i=this._simple_selector_sequence(),null===i?this._unexpectedToken(e.LT(1)):t.push(i);else{if(!this._readWhitespace())break;r=new Combinator(e.token().value,e.token().startLine,e.token().startCol),n=this._combinator(),i=this._simple_selector_sequence(),null===i?null!==n&&this._unexpectedToken(e.LT(1)):(null!==n?t.push(n):t.push(r),t.push(i))}return new Selector(t,t[0].line,t[0].col)},_simple_selector_sequence:function(){var e,t,i=this._tokenStream,n=null,r=[],o="",s=[function(){return i.match(Tokens.HASH)?new SelectorSubPart(i.token().value,"id",i.token().startLine,i.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],a=0,l=s.length,c=null;for(e=i.LT(1).startLine,t=i.LT(1).startCol,n=this._type_selector(),n||(n=this._universal()),null!==n&&(o+=n);;){if(i.peek()===Tokens.S)break;for(;l>a&&null===c;)c=s[a++].call(this);if(null===c){if(""===o)return null;break}a=0,r.push(c),o+=""+c,c=null}return""!==o?new SelectorPart(n,r,o,e,t):null},_type_selector:function(){var e=this._tokenStream,t=this._namespace_prefix(),i=this._element_name();return i?(t&&(i.text=t+i.text,i.col-=t.length),i):(t&&(e.unget(),t.length>1&&e.unget()),null)},_class:function(){var e,t=this._tokenStream;return t.match(Tokens.DOT)?(t.mustMatch(Tokens.IDENT),e=t.token(),new SelectorSubPart("."+e.value,"class",e.startLine,e.startCol-1)):null},_element_name:function(){var e,t=this._tokenStream;return t.match(Tokens.IDENT)?(e=t.token(),new SelectorSubPart(e.value,"elementName",e.startLine,e.startCol)):null},_namespace_prefix:function(){var e=this._tokenStream,t="";return(e.LA(1)===Tokens.PIPE||e.LA(2)===Tokens.PIPE)&&(e.match([Tokens.IDENT,Tokens.STAR])&&(t+=e.token().value),e.mustMatch(Tokens.PIPE),t+="|"),t.length?t:null},_universal:function(){var e,t=this._tokenStream,i="";return e=this._namespace_prefix(),e&&(i+=e),t.match(Tokens.STAR)&&(i+="*"),i.length?i:null},_attrib:function(){var e,t,i=this._tokenStream,n=null;return i.match(Tokens.LBRACKET)?(t=i.token(),n=t.value,n+=this._readWhitespace(),e=this._namespace_prefix(),e&&(n+=e),i.mustMatch(Tokens.IDENT),n+=i.token().value,n+=this._readWhitespace(),i.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(n+=i.token().value,n+=this._readWhitespace(),i.mustMatch([Tokens.IDENT,Tokens.STRING]),n+=i.token().value,n+=this._readWhitespace()),i.mustMatch(Tokens.RBRACKET),new SelectorSubPart(n+"]","attribute",t.startLine,t.startCol)):null},_pseudo:function(){var e,t,i=this._tokenStream,n=null,r=":";return i.match(Tokens.COLON)&&(i.match(Tokens.COLON)&&(r+=":"),i.match(Tokens.IDENT)?(n=i.token().value,e=i.token().startLine,t=i.token().startCol-r.length):i.peek()==Tokens.FUNCTION&&(e=i.LT(1).startLine,t=i.LT(1).startCol-r.length,n=this._functional_pseudo()),n&&(n=new SelectorSubPart(r+n,"pseudo",e,t))),n},_functional_pseudo:function(){var e=this._tokenStream,t=null;return e.match(Tokens.FUNCTION)&&(t=e.token().value,t+=this._readWhitespace(),t+=this._expression(),e.mustMatch(Tokens.RPAREN),t+=")"),t},_expression:function(){for(var e=this._tokenStream,t="";e.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION,Tokens.SLASH]);)t+=e.token().value,t+=this._readWhitespace();return t.length?t:null},_negation:function(){var e,t,i,n=this._tokenStream,r="",o=null;return n.match(Tokens.NOT)&&(r=n.token().value,e=n.token().startLine,t=n.token().startCol,r+=this._readWhitespace(),i=this._negation_arg(),r+=i,r+=this._readWhitespace(),n.match(Tokens.RPAREN),r+=n.token().value,o=new SelectorSubPart(r,"not",e,t),o.args.push(i)),o},_negation_arg:function(){var e,t,i,n=this._tokenStream,r=[this._type_selector,this._universal,function(){return n.match(Tokens.HASH)?new SelectorSubPart(n.token().value,"id",n.token().startLine,n.token().startCol):null},this._class,this._attrib,this._pseudo],o=null,s=0,a=r.length;for(e=n.LT(1).startLine,t=n.LT(1).startCol;a>s&&null===o;)o=r[s].call(this),s++;return null===o&&this._unexpectedToken(n.LT(1)),i="elementName"==o.type?new SelectorPart(o,[],""+o,e,t):new SelectorPart(null,[o],""+o,e,t)},_declaration:function(){var e=this._tokenStream,t=null,i=null,n=null,r=null,o="";if(t=this._property(),null!==t){e.mustMatch(Tokens.COLON),this._readWhitespace(),i=this._expr(),i&&0!==i.length||this._unexpectedToken(e.LT(1)),n=this._prio(),o=""+t,(this.options.starHack&&"*"==t.hack||this.options.underscoreHack&&"_"==t.hack)&&(o=t.text);try{this._validateProperty(o,i)}catch(s){r=s}return this.fire({type:"property",property:t,value:i,important:n,line:t.line,col:t.col,invalid:r}),!0}return!1},_prio:function(){var e=this._tokenStream,t=e.match(Tokens.IMPORTANT_SYM);return this._readWhitespace(),t},_expr:function(e){var t=(this._tokenStream,[]),i=null,n=null;if(i=this._term(e),null!==i)for(t.push(i);;){if(n=this._operator(e),n&&t.push(n),i=this._term(e),null===i)break;t.push(i)}return t.length>0?new PropertyValue(t,t[0].line,t[0].col):null},_term:function(e){var t,i,n,r=this._tokenStream,o=null,s=null,a=null;return o=this._unary_operator(),null!==o&&(i=r.token().startLine,n=r.token().startCol),r.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(s=this._ie_function(),null===o&&(i=r.token().startLine,n=r.token().startCol)):e&&r.match([Tokens.LPAREN,Tokens.LBRACE,Tokens.LBRACKET])?(t=r.token(),a=t.endChar,s=t.value+this._expr(e).text,null===o&&(i=r.token().startLine,n=r.token().startCol),r.mustMatch(Tokens.type(a)),s+=a,this._readWhitespace()):r.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(s=r.token().value,null===o&&(i=r.token().startLine,n=r.token().startCol),this._readWhitespace()):(t=this._hexcolor(),null===t?(null===o&&(i=r.LT(1).startLine,n=r.LT(1).startCol),null===s&&(s=r.LA(3)==Tokens.EQUALS&&this.options.ieFilters?this._ie_function():this._function())):(s=t.value,null===o&&(i=t.startLine,n=t.startCol))),null!==s?new PropertyValuePart(null!==o?o+s:s,i,n):null},_function:function(){var e,t=this._tokenStream,i=null,n=null;if(t.match(Tokens.FUNCTION)){if(i=t.token().value,this._readWhitespace(),n=this._expr(!0),i+=n,this.options.ieFilters&&t.peek()==Tokens.EQUALS)do for(this._readWhitespace()&&(i+=t.token().value),t.LA(0)==Tokens.COMMA&&(i+=t.token().value),t.match(Tokens.IDENT),i+=t.token().value,t.match(Tokens.EQUALS),i+=t.token().value,e=t.peek();e!=Tokens.COMMA&&e!=Tokens.S&&e!=Tokens.RPAREN;)t.get(),i+=t.token().value,e=t.peek();while(t.match([Tokens.COMMA,Tokens.S]));t.match(Tokens.RPAREN),i+=")",this._readWhitespace()}return i},_ie_function:function(){var e,t=this._tokenStream,i=null;if(t.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){i=t.token().value;do for(this._readWhitespace()&&(i+=t.token().value),t.LA(0)==Tokens.COMMA&&(i+=t.token().value),t.match(Tokens.IDENT),i+=t.token().value,t.match(Tokens.EQUALS),i+=t.token().value,e=t.peek();e!=Tokens.COMMA&&e!=Tokens.S&&e!=Tokens.RPAREN;)t.get(),i+=t.token().value,e=t.peek();while(t.match([Tokens.COMMA,Tokens.S]));t.match(Tokens.RPAREN),i+=")",this._readWhitespace()}return i},_hexcolor:function(){var e,t=this._tokenStream,i=null;if(t.match(Tokens.HASH)){if(i=t.token(),e=i.value,!/#[a-f0-9]{3,6}/i.test(e))throw new SyntaxError("Expected a hex color but found '"+e+"' at line "+i.startLine+", col "+i.startCol+".",i.startLine,i.startCol);this._readWhitespace()}return i},_keyframes:function(){var e,t,i,n=this._tokenStream,r="";for(n.mustMatch(Tokens.KEYFRAMES_SYM),e=n.token(),/^@\-([^\-]+)\-/.test(e.value)&&(r=RegExp.$1),this._readWhitespace(),i=this._keyframe_name(),this._readWhitespace(),n.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:i,prefix:r,line:e.startLine,col:e.startCol}),this._readWhitespace(),t=n.peek();t==Tokens.IDENT||t==Tokens.PERCENTAGE;)this._keyframe_rule(),this._readWhitespace(),t=n.peek();this.fire({type:"endkeyframes",name:i,prefix:r,line:e.startLine,col:e.startCol}),this._readWhitespace(),n.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var e=this._tokenStream;return e.mustMatch([Tokens.IDENT,Tokens.STRING]),SyntaxUnit.fromToken(e.token())},_keyframe_rule:function(){var e=(this._tokenStream,this._key_list());this.fire({type:"startkeyframerule",keys:e,line:e[0].line,col:e[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:e,line:e[0].line,col:e[0].col})},_key_list:function(){var e=this._tokenStream,t=[];for(t.push(this._key()),this._readWhitespace();e.match(Tokens.COMMA);)this._readWhitespace(),t.push(this._key()),this._readWhitespace();return t},_key:function(){var e,t=this._tokenStream;if(t.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(t.token());if(t.match(Tokens.IDENT)){if(e=t.token(),/from|to/i.test(e.value))return SyntaxUnit.fromToken(e);t.unget()}this._unexpectedToken(t.LT(1))},_skipCruft:function(){for(;this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]););},_readDeclarations:function(e,t){var i,n=this._tokenStream;this._readWhitespace(),e&&n.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(n.match(Tokens.SEMICOLON)||t&&this._margin());else{if(!this._declaration())break;if(!n.match(Tokens.SEMICOLON))break}this._readWhitespace()}n.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(r){if(!(r instanceof SyntaxError)||this.options.strict)throw r;if(this.fire({type:"error",error:r,message:r.message,line:r.line,col:r.col}),i=n.advance([Tokens.SEMICOLON,Tokens.RBRACE]),i==Tokens.SEMICOLON)this._readDeclarations(!1,t);else if(i!=Tokens.RBRACE)throw r}},_readWhitespace:function(){for(var e=this._tokenStream,t="";e.match(Tokens.S);)t+=e.token().value;return t},_unexpectedToken:function(e){throw new SyntaxError("Unexpected token '"+e.value+"' at line "+e.startLine+", col "+e.startCol+".",e.startLine,e.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},_validateProperty:function(e,t){Validation.validate(e,t)},parse:function(e){this._tokenStream=new TokenStream(e,Tokens),this._stylesheet()},parseStyleSheet:function(e){return this.parse(e)},parseMediaQuery:function(e){this._tokenStream=new TokenStream(e,Tokens);var t=this._media_query();return this._verifyEnd(),t},parsePropertyValue:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._expr();return this._readWhitespace(),this._verifyEnd(),t},parseRule:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._ruleset();return this._readWhitespace(),this._verifyEnd(),t},parseSelector:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._selector();return this._readWhitespace(),this._verifyEnd(),t},parseStyleAttribute:function(e){e+="}",this._tokenStream=new TokenStream(e,Tokens),this._readDeclarations()}};for(e in i)i.hasOwnProperty(e)&&(t[e]=i[e]);return t}();var Properties={"align-items":"flex-start | flex-end | center | baseline | stretch","align-content":"flex-start | flex-end | center | space-between | space-around | stretch","align-self":"auto | flex-start | flex-end | center | baseline | stretch","-webkit-align-items":"flex-start | flex-end | center | baseline | stretch","-webkit-align-content":"flex-start | flex-end | center | space-between | space-around | stretch","-webkit-align-self":"auto | flex-start | flex-end | center | baseline | stretch","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-fill-mode":{multi:"none | forwards | backwards | both",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-fill-mode":{multi:"none | forwards | backwards | both",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 | none | inherit",azimuth:function(e){var t,i="<angle> | leftwards | rightwards | inherit",n="left-side | far-left | left | center-left | center | center-right | right | far-right | right-side",r=!1,o=!1;if(ValidationTypes.isAny(e,i)||(ValidationTypes.isAny(e,"behind")&&(r=!0,o=!0),ValidationTypes.isAny(e,n)&&(o=!0,r||ValidationTypes.isAny(e,"behind"))),e.hasNext())throw t=e.next(),o?new ValidationError("Expected end of value but found '"+t+"'.",t.line,t.col):new ValidationError("Expected (<'azimuth'>) but found '"+t+"'.",t.line,t.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> | inherit","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(e){var t,i=!1,n="<number> | <percentage>",r=!1,o=0,s=4;for(ValidationTypes.isAny(e,"fill")&&(r=!0,i=!0);e.hasNext()&&s>o&&(i=ValidationTypes.isAny(e,n));)o++;if(r?i=!0:ValidationTypes.isAny(e,"fill"),e.hasNext())throw t=e.next(),i?new ValidationError("Expected end of value but found '"+t+"'.",t.line,t.col):new ValidationError("Expected ([<number> | <percentage>]{1,4} && fill?) but found '"+t+"'.",t.line,t.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(e){for(var t,i=!1,n="<length> | <percentage> | inherit",r=!1,o=0,s=8;e.hasNext()&&s>o;){if(i=ValidationTypes.isAny(e,n),!i){if(!("/"==e.peek()&&o>0)||r)break;r=!0,s=o+5,e.next()}o++}if(e.hasNext())throw t=e.next(),i?new ValidationError("Expected end of value but found '"+t+"'.",t.line,t.col):new ValidationError("Expected (<'border-radius'>) but found '"+t+"'.",t.line,t.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","-moz-box-align":"start | end | center | baseline | stretch","-moz-box-decoration-break":"slice |clone","-moz-box-direction":"normal | reverse | inherit","-moz-box-flex":"<number>","-moz-box-flex-group":"<integer>","-moz-box-lines":"single | multiple","-moz-box-ordinal-group":"<integer>","-moz-box-orient":"horizontal | vertical | inline-axis | block-axis | inherit","-moz-box-pack":"start | end | center | justify","-webkit-box-align":"start | end | center | baseline | stretch","-webkit-box-decoration-break":"slice |clone","-webkit-box-direction":"normal | reverse | inherit","-webkit-box-flex":"<number>","-webkit-box-flex-group":"<integer>","-webkit-box-lines":"single | multiple","-webkit-box-ordinal-group":"<integer>","-webkit-box-orient":"horizontal | vertical | inline-axis | block-axis | inherit","-webkit-box-pack":"start | end | center | justify","box-shadow":function(e){var t;if(ValidationTypes.isAny(e,"none")){if(e.hasNext())throw t=e.next(),new ValidationError("Expected end of value but found '"+t+"'.",t.line,t.col)}else Validation.multiProperty("<shadow>",e,!0,1/0)},"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 | grid | inline-grid | none | inherit | -moz-box | -moz-inline-block | -moz-inline-box | -moz-inline-grid | -moz-inline-stack | -moz-inline-table | -moz-grid | -moz-grid-group | -moz-grid-line | -moz-groupbox | -moz-deck | -moz-popup | -moz-stack | -moz-marker | -webkit-box | -webkit-inline-box | -ms-flexbox | -ms-inline-flexbox | flex | -webkit-flex | inline-flex | -webkit-inline-flex","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,flex:"<flex>","flex-basis":"<width>","flex-direction":"row | row-reverse | column | column-reverse","flex-flow":"<flex-direction> || <flex-wrap>","flex-grow":"<number>","flex-shrink":"<number>","flex-wrap":"nowrap | wrap | wrap-reverse","-webkit-flex":"<flex>","-webkit-flex-basis":"<width>","-webkit-flex-direction":"row | row-reverse | column | column-reverse","-webkit-flex-flow":"<flex-direction> || <flex-wrap>","-webkit-flex-grow":"<number>","-webkit-flex-shrink":"<number>","-webkit-flex-wrap":"nowrap | wrap | wrap-reverse","-ms-flex":"<flex>","-ms-flex-align":"start | end | center | stretch | baseline","-ms-flex-direction":"row | row-reverse | column | column-reverse | inherit","-ms-flex-order":"<number>","-ms-flex-pack":"start | end | center | justify","-ms-flex-wrap":"nowrap | wrap | wrap-reverse","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> | <content-sizing> | 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>","justify-content":"flex-start | flex-end | center | space-between | space-around","-webkit-justify-content":"flex-start | flex-end | center | space-between | space-around",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> | <content-sizing> | none | inherit","max-width":"<length> | <percentage> | <content-sizing> | none | inherit","min-height":"<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit","min-width":"<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit","move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:"<number> | inherit",order:"<integer>","-webkit-order":"<integer>",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-wrap":"normal | break-word","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,"pointer-events":"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit",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","-ms-touch-action":"auto | none | pan-x | pan-y","touch-action":"auto | none | pan-x | pan-y",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 | isolate | bidi-override | isolate-override | plaintext | inherit","user-modify":"read-only | read-write | write-only | inherit","user-select":"none | text | toggle | element | elements | all | inherit","vertical-align":"auto | use-script | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length>",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 | -pre-wrap | -o-pre-wrap | -moz-pre-wrap | -hp-pre-wrap","white-space-collapse":1,widows:"<integer> | inherit",width:"<length> | <percentage> | <content-sizing> | auto | inherit","word-break":"normal | keep-all | break-all","word-spacing":"<length> | normal | inherit","word-wrap":"normal | break-word","writing-mode":"horizontal-tb | vertical-rl | vertical-lr | lr-tb | rl-tb | tb-rl | bt-rl | tb-lr | bt-lr | lr-bt | rl-bt | lr | rl | tb | inherit","z-index":"<integer> | auto | inherit",zoom:"<number> | <percentage> | normal"};
PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyName.prototype.toString=function(){return(this.hack?this.hack:"")+this.text},PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValueIterator.prototype.count=function(){return this._parts.length},PropertyValueIterator.prototype.isFirst=function(){return 0===this._i},PropertyValueIterator.prototype.hasNext=function(){return this._i<this._parts.length},PropertyValueIterator.prototype.mark=function(){this._marks.push(this._i)},PropertyValueIterator.prototype.peek=function(e){return this.hasNext()?this._parts[this._i+(e||0)]:null},PropertyValueIterator.prototype.next=function(){return this.hasNext()?this._parts[this._i++]:null},PropertyValueIterator.prototype.previous=function(){return this._i>0?this._parts[--this._i]:null},PropertyValueIterator.prototype.restore=function(){this._marks.length&&(this._i=this._marks.pop())},PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValuePart,PropertyValuePart.fromToken=function(e){return new PropertyValuePart(e.value,e.startLine,e.startCol)};var Pseudos={":first-letter":1,":first-line":1,":before":1,":after":1};Pseudos.ELEMENT=1,Pseudos.CLASS=2,Pseudos.isElement=function(e){return 0===e.indexOf("::")||Pseudos[e.toLowerCase()]==Pseudos.ELEMENT},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart,Specificity.prototype={constructor:Specificity,compare:function(e){var t,i,n=["a","b","c","d"];for(t=0,i=n.length;i>t;t++){if(this[n[t]]<e[n[t]])return-1;if(this[n[t]]>e[n[t]])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}},Specificity.calculate=function(e){function t(e){var i,n,r,l,c,h=e.elementName?e.elementName.text:"";for(h&&"*"!=h.charAt(h.length-1)&&a++,i=0,r=e.modifiers.length;r>i;i++)switch(c=e.modifiers[i],c.type){case"class":case"attribute":s++;break;case"id":o++;break;case"pseudo":Pseudos.isElement(c.text)?a++:s++;break;case"not":for(n=0,l=c.args.length;l>n;n++)t(c.args[n])}}var i,n,r,o=0,s=0,a=0;for(i=0,n=e.parts.length;n>i;i++)r=e.parts[i],r instanceof SelectorPart&&t(r);return new Specificity(0,o,s,a)};var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(){var e,t=this._reader,i=null,n=t.getLine(),r=t.getCol();for(e=t.read();e;){switch(e){case"/":i="*"==t.peek()?this.commentToken(e,n,r):this.charToken(e,n,r);break;case"|":case"~":case"^":case"$":case"*":i="="==t.peek()?this.comparisonToken(e,n,r):this.charToken(e,n,r);break;case'"':case"'":i=this.stringToken(e,n,r);break;case"#":i=isNameChar(t.peek())?this.hashToken(e,n,r):this.charToken(e,n,r);break;case".":i=isDigit(t.peek())?this.numberToken(e,n,r):this.charToken(e,n,r);break;case"-":i="-"==t.peek()?this.htmlCommentEndToken(e,n,r):isNameStart(t.peek())?this.identOrFunctionToken(e,n,r):this.charToken(e,n,r);break;case"!":i=this.importantToken(e,n,r);break;case"@":i=this.atRuleToken(e,n,r);break;case":":i=this.notToken(e,n,r);break;case"<":i=this.htmlCommentStartToken(e,n,r);break;case"U":case"u":if("+"==t.peek()){i=this.unicodeRangeToken(e,n,r);break}default:i=isDigit(e)?this.numberToken(e,n,r):isWhitespace(e)?this.whitespaceToken(e,n,r):isIdentStart(e)?this.identOrFunctionToken(e,n,r):this.charToken(e,n,r)}break}return i||null!==e||(i=this.createToken(Tokens.EOF,null,n,r)),i},createToken:function(e,t,i,n,r){var o=this._reader;return r=r||{},{value:t,type:e,channel:r.channel,endChar:r.endChar,hide:r.hide||!1,startLine:i,startCol:n,endLine:o.getLine(),endCol:o.getCol()}},atRuleToken:function(e,t,i){var n,r=e,o=this._reader,s=Tokens.CHAR;return o.mark(),n=this.readName(),r=e+n,s=Tokens.type(r.toLowerCase()),(s==Tokens.CHAR||s==Tokens.UNKNOWN)&&(r.length>1?s=Tokens.UNKNOWN_SYM:(s=Tokens.CHAR,r=e,o.reset())),this.createToken(s,r,t,i)},charToken:function(e,t,i){var n=Tokens.type(e),r={};return-1==n?n=Tokens.CHAR:r.endChar=Tokens[n].endChar,this.createToken(n,e,t,i,r)},commentToken:function(e,t,i){var n=(this._reader,this.readComment(e));return this.createToken(Tokens.COMMENT,n,t,i)},comparisonToken:function(e,t,i){var n=this._reader,r=e+n.read(),o=Tokens.type(r)||Tokens.CHAR;return this.createToken(o,r,t,i)},hashToken:function(e,t,i){var n=(this._reader,this.readName(e));return this.createToken(Tokens.HASH,n,t,i)},htmlCommentStartToken:function(e,t,i){var n=this._reader,r=e;return n.mark(),r+=n.readCount(3),"<!--"==r?this.createToken(Tokens.CDO,r,t,i):(n.reset(),this.charToken(e,t,i))},htmlCommentEndToken:function(e,t,i){var n=this._reader,r=e;return n.mark(),r+=n.readCount(2),"-->"==r?this.createToken(Tokens.CDC,r,t,i):(n.reset(),this.charToken(e,t,i))},identOrFunctionToken:function(e,t,i){var n=this._reader,r=this.readName(e),o=Tokens.IDENT;return"("==n.peek()?(r+=n.read(),"url("==r.toLowerCase()?(o=Tokens.URI,r=this.readURI(r),"url("==r.toLowerCase()&&(o=Tokens.FUNCTION)):o=Tokens.FUNCTION):":"==n.peek()&&"progid"==r.toLowerCase()&&(r+=n.readTo("("),o=Tokens.IE_FUNCTION),this.createToken(o,r,t,i)},importantToken:function(e,t,i){var n,r,o=this._reader,s=e,a=Tokens.CHAR;for(o.mark(),r=o.read();r;){if("/"==r){if("*"!=o.peek())break;if(n=this.readComment(r),""===n)break}else{if(!isWhitespace(r)){if(/i/i.test(r)){n=o.readCount(8),/mportant/i.test(n)&&(s+=r+n,a=Tokens.IMPORTANT_SYM);break}break}s+=r+this.readWhitespace()}r=o.read()}return a==Tokens.CHAR?(o.reset(),this.charToken(e,t,i)):this.createToken(a,s,t,i)},notToken:function(e,t,i){var n=this._reader,r=e;return n.mark(),r+=n.readCount(4),":not("==r.toLowerCase()?this.createToken(Tokens.NOT,r,t,i):(n.reset(),this.charToken(e,t,i))},numberToken:function(e,t,i){var n,r=this._reader,o=this.readNumber(e),s=Tokens.NUMBER,a=r.peek();return isIdentStart(a)?(n=this.readName(r.read()),o+=n,s=/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vmax$|^vmin$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(n)?Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(n)?Tokens.ANGLE:/^ms$|^s$/i.test(n)?Tokens.TIME:/^hz$|^khz$/i.test(n)?Tokens.FREQ:/^dpi$|^dpcm$/i.test(n)?Tokens.RESOLUTION:Tokens.DIMENSION):"%"==a&&(o+=r.read(),s=Tokens.PERCENTAGE),this.createToken(s,o,t,i)},stringToken:function(e,t,i){for(var n=e,r=e,o=this._reader,s=e,a=Tokens.STRING,l=o.read();l&&(r+=l,l!=n||"\\"==s);){if(isNewLine(o.peek())&&"\\"!=l){a=Tokens.INVALID;break}s=l,l=o.read()}return null===l&&(a=Tokens.INVALID),this.createToken(a,r,t,i)},unicodeRangeToken:function(e,t,i){var n,r=this._reader,o=e,s=Tokens.CHAR;return"+"==r.peek()&&(r.mark(),o+=r.read(),o+=this.readUnicodeRangePart(!0),2==o.length?r.reset():(s=Tokens.UNICODE_RANGE,-1==o.indexOf("?")&&"-"==r.peek()&&(r.mark(),n=r.read(),n+=this.readUnicodeRangePart(!1),1==n.length?r.reset():o+=n))),this.createToken(s,o,t,i)},whitespaceToken:function(e,t,i){var n=(this._reader,e+this.readWhitespace());return this.createToken(Tokens.S,n,t,i)},readUnicodeRangePart:function(e){for(var t=this._reader,i="",n=t.peek();isHexDigit(n)&&6>i.length;)t.read(),i+=n,n=t.peek();if(e)for(;"?"==n&&6>i.length;)t.read(),i+=n,n=t.peek();return i},readWhitespace:function(){for(var e=this._reader,t="",i=e.peek();isWhitespace(i);)e.read(),t+=i,i=e.peek();return t},readNumber:function(e){for(var t=this._reader,i=e,n="."==e,r=t.peek();r;){if(isDigit(r))i+=t.read();else{if("."!=r)break;if(n)break;n=!0,i+=t.read()}r=t.peek()}return i},readString:function(){for(var e=this._reader,t=e.read(),i=t,n=t,r=e.peek();r&&(r=e.read(),i+=r,r!=t||"\\"==n);){if(isNewLine(e.peek())&&"\\"!=r){i="";break}n=r,r=e.peek()}return null===r&&(i=""),i},readURI:function(e){var t=this._reader,i=e,n="",r=t.peek();for(t.mark();r&&isWhitespace(r);)t.read(),r=t.peek();for(n="'"==r||'"'==r?this.readString():this.readURL(),r=t.peek();r&&isWhitespace(r);)t.read(),r=t.peek();return""===n||")"!=r?(i=e,t.reset()):i+=n+t.read(),i},readURL:function(){for(var e=this._reader,t="",i=e.peek();/^[!#$%&\\*-~]$/.test(i);)t+=e.read(),i=e.peek();return t},readName:function(e){for(var t=this._reader,i=e||"",n=t.peek();;)if("\\"==n)i+=this.readEscape(t.read()),n=t.peek();else{if(!n||!isNameChar(n))break;i+=t.read(),n=t.peek()}return i},readEscape:function(e){var t=this._reader,i=e||"",n=0,r=t.peek();if(isHexDigit(r))do i+=t.read(),r=t.peek();while(r&&isHexDigit(r)&&6>++n);return 3==i.length&&/\s/.test(r)||7==i.length||1==i.length?t.read():r="",i+r},readComment:function(e){var t=this._reader,i=e||"",n=t.read();if("*"==n){for(;n;){if(i+=n,i.length>2&&"*"==n&&"/"==t.peek()){i+=t.read();break}n=t.read()}return i}return""}});var Tokens=[{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:"VIEWPORT_SYM",text:["@viewport","@-ms-viewport"]},{name:"UNKNOWN_SYM"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes","@-o-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",endChar:"}",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",endChar:"]",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",endChar:")",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var e=[],t={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var i=0,n=Tokens.length;n>i;i++)if(e.push(Tokens[i].name),Tokens[Tokens[i].name]=i,Tokens[i].text)if(Tokens[i].text instanceof Array)for(var r=0;Tokens[i].text.length>r;r++)t[Tokens[i].text[r]]=i;else t[Tokens[i].text]=i;Tokens.name=function(t){return e[t]},Tokens.type=function(e){return t[e]||-1}})();var Validation={validate:function(e,t){var i=(""+e).toLowerCase(),n=(t.parts,new PropertyValueIterator(t)),r=Properties[i];if(r)"number"!=typeof r&&("string"==typeof r?r.indexOf("||")>-1?this.groupProperty(r,n):this.singleProperty(r,n,1):r.multi?this.multiProperty(r.multi,n,r.comma,r.max||1/0):"function"==typeof r&&r(n));else if(0!==i.indexOf("-"))throw new ValidationError("Unknown property '"+e+"'.",e.line,e.col)},singleProperty:function(e,t,i){for(var n,r=!1,o=t.value,s=0;t.hasNext()&&i>s&&(r=ValidationTypes.isAny(t,e));)s++;if(!r)throw t.hasNext()&&!t.isFirst()?(n=t.peek(),new ValidationError("Expected end of value but found '"+n+"'.",n.line,n.col)):new ValidationError("Expected ("+e+") but found '"+o+"'.",o.line,o.col);if(t.hasNext())throw n=t.next(),new ValidationError("Expected end of value but found '"+n+"'.",n.line,n.col)},multiProperty:function(e,t,i,n){for(var r,o=!1,s=t.value,a=0;t.hasNext()&&!o&&n>a&&ValidationTypes.isAny(t,e);)if(a++,t.hasNext()){if(i){if(","!=t.peek())break;r=t.next()}}else o=!0;if(!o)throw t.hasNext()&&!t.isFirst()?(r=t.peek(),new ValidationError("Expected end of value but found '"+r+"'.",r.line,r.col)):(r=t.previous(),i&&","==r?new ValidationError("Expected end of value but found '"+r+"'.",r.line,r.col):new ValidationError("Expected ("+e+") but found '"+s+"'.",s.line,s.col));if(t.hasNext())throw r=t.next(),new ValidationError("Expected end of value but found '"+r+"'.",r.line,r.col)},groupProperty:function(e,t){for(var i,n,r=!1,o=t.value,s=e.split("||").length,a={count:0},l=!1;t.hasNext()&&!r&&(i=ValidationTypes.isAnyOfGroup(t,e))&&!a[i];)a[i]=1,a.count++,l=!0,a.count!=s&&t.hasNext()||(r=!0);if(!r)throw l&&t.hasNext()?(n=t.peek(),new ValidationError("Expected end of value but found '"+n+"'.",n.line,n.col)):new ValidationError("Expected ("+e+") but found '"+o+"'.",o.line,o.col);if(t.hasNext())throw n=t.next(),new ValidationError("Expected end of value but found '"+n+"'.",n.line,n.col)}};ValidationError.prototype=Error();var ValidationTypes={isLiteral:function(e,t){var i,n,r=(""+e.text).toLowerCase(),o=t.split(" | "),s=!1;for(i=0,n=o.length;n>i&&!s;i++)r==o[i].toLowerCase()&&(s=!0);return s},isSimple:function(e){return!!this.simple[e]},isComplex:function(e){return!!this.complex[e]},isAny:function(e,t){var i,n,r=t.split(" | "),o=!1;for(i=0,n=r.length;n>i&&!o&&e.hasNext();i++)o=this.isType(e,r[i]);return o},isAnyOfGroup:function(e,t){var i,n,r=t.split(" || "),o=!1;for(i=0,n=r.length;n>i&&!o;i++)o=this.isType(e,r[i]);return o?r[i-1]:!1},isType:function(e,t){var i=e.peek(),n=!1;return"<"!=t.charAt(0)?(n=this.isLiteral(i,t),n&&e.next()):this.simple[t]?(n=this.simple[t](i),n&&e.next()):n=this.complex[t](e),n},simple:{"<absolute-size>":function(e){return ValidationTypes.isLiteral(e,"xx-small | x-small | small | medium | large | x-large | xx-large")},"<attachment>":function(e){return ValidationTypes.isLiteral(e,"scroll | fixed | local")},"<attr>":function(e){return"function"==e.type&&"attr"==e.name},"<bg-image>":function(e){return this["<image>"](e)||this["<gradient>"](e)||"none"==e},"<gradient>":function(e){return"function"==e.type&&/^(?:\-(?:ms|moz|o|webkit)\-)?(?:repeating\-)?(?:radial\-|linear\-)?gradient/i.test(e)},"<box>":function(e){return ValidationTypes.isLiteral(e,"padding-box | border-box | content-box")},"<content>":function(e){return"function"==e.type&&"content"==e.name},"<relative-size>":function(e){return ValidationTypes.isLiteral(e,"smaller | larger")},"<ident>":function(e){return"identifier"==e.type},"<length>":function(e){return"function"==e.type&&/^(?:\-(?:ms|moz|o|webkit)\-)?calc/i.test(e)?!0:"length"==e.type||"number"==e.type||"integer"==e.type||"0"==e},"<color>":function(e){return"color"==e.type||"transparent"==e},"<number>":function(e){return"number"==e.type||this["<integer>"](e)},"<integer>":function(e){return"integer"==e.type},"<line>":function(e){return"integer"==e.type},"<angle>":function(e){return"angle"==e.type},"<uri>":function(e){return"uri"==e.type},"<image>":function(e){return this["<uri>"](e)},"<percentage>":function(e){return"percentage"==e.type||"0"==e},"<border-width>":function(e){return this["<length>"](e)||ValidationTypes.isLiteral(e,"thin | medium | thick")},"<border-style>":function(e){return ValidationTypes.isLiteral(e,"none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset")},"<content-sizing>":function(e){return ValidationTypes.isLiteral(e,"fill-available | -moz-available | -webkit-fill-available | max-content | -moz-max-content | -webkit-max-content | min-content | -moz-min-content | -webkit-min-content | fit-content | -moz-fit-content | -webkit-fit-content")},"<margin-width>":function(e){return this["<length>"](e)||this["<percentage>"](e)||ValidationTypes.isLiteral(e,"auto")},"<padding-width>":function(e){return this["<length>"](e)||this["<percentage>"](e)},"<shape>":function(e){return"function"==e.type&&("rect"==e.name||"inset-rect"==e.name)},"<time>":function(e){return"time"==e.type},"<flex-grow>":function(e){return this["<number>"](e)},"<flex-shrink>":function(e){return this["<number>"](e)},"<width>":function(e){return this["<margin-width>"](e)},"<flex-basis>":function(e){return this["<width>"](e)},"<flex-direction>":function(e){return ValidationTypes.isLiteral(e,"row | row-reverse | column | column-reverse")},"<flex-wrap>":function(e){return ValidationTypes.isLiteral(e,"nowrap | wrap | wrap-reverse")}},complex:{"<bg-position>":function(e){for(var t=!1,i="<percentage> | <length>",n="left | right",r="top | bottom",o=0;e.peek(o)&&","!=e.peek(o);)o++;return 3>o?ValidationTypes.isAny(e,n+" | center | "+i)?(t=!0,ValidationTypes.isAny(e,r+" | center | "+i)):ValidationTypes.isAny(e,r)&&(t=!0,ValidationTypes.isAny(e,n+" | center")):ValidationTypes.isAny(e,n)?ValidationTypes.isAny(e,r)?(t=!0,ValidationTypes.isAny(e,i)):ValidationTypes.isAny(e,i)&&(ValidationTypes.isAny(e,r)?(t=!0,ValidationTypes.isAny(e,i)):ValidationTypes.isAny(e,"center")&&(t=!0)):ValidationTypes.isAny(e,r)?ValidationTypes.isAny(e,n)?(t=!0,ValidationTypes.isAny(e,i)):ValidationTypes.isAny(e,i)&&(ValidationTypes.isAny(e,n)?(t=!0,ValidationTypes.isAny(e,i)):ValidationTypes.isAny(e,"center")&&(t=!0)):ValidationTypes.isAny(e,"center")&&ValidationTypes.isAny(e,n+" | "+r)&&(t=!0,ValidationTypes.isAny(e,i)),t},"<bg-size>":function(e){var t=!1,i="<percentage> | <length> | auto";return ValidationTypes.isAny(e,"cover | contain")?t=!0:ValidationTypes.isAny(e,i)&&(t=!0,ValidationTypes.isAny(e,i)),t},"<repeat-style>":function(e){var t,i=!1,n="repeat | space | round | no-repeat";return e.hasNext()&&(t=e.next(),ValidationTypes.isLiteral(t,"repeat-x | repeat-y")?i=!0:ValidationTypes.isLiteral(t,n)&&(i=!0,e.hasNext()&&ValidationTypes.isLiteral(e.peek(),n)&&e.next())),i},"<shadow>":function(e){var t=!1,i=0,n=!1,r=!1;if(e.hasNext()){for(ValidationTypes.isAny(e,"inset")&&(n=!0),ValidationTypes.isAny(e,"<color>")&&(r=!0);ValidationTypes.isAny(e,"<length>")&&4>i;)i++;e.hasNext()&&(r||ValidationTypes.isAny(e,"<color>"),n||ValidationTypes.isAny(e,"inset")),t=i>=2&&4>=i}return t},"<x-one-radius>":function(e){var t=!1,i="<length> | <percentage> | inherit";return ValidationTypes.isAny(e,i)&&(t=!0,ValidationTypes.isAny(e,i)),t},"<flex>":function(e){var t,i=!1;if(ValidationTypes.isAny(e,"none | inherit")?i=!0:ValidationTypes.isType(e,"<flex-grow>")?e.peek()?ValidationTypes.isType(e,"<flex-shrink>")?i=e.peek()?ValidationTypes.isType(e,"<flex-basis>"):!0:ValidationTypes.isType(e,"<flex-basis>")&&(i=null===e.peek()):i=!0:ValidationTypes.isType(e,"<flex-basis>")&&(i=!0),!i)throw t=e.peek(),new ValidationError("Expected (none | [ <flex-grow> <flex-shrink>? || <flex-basis> ]) but found '"+e.value.text+"'.",t.line,t.col);return i}}};parserlib.css={Colors:Colors,Combinator:Combinator,Parser:Parser,PropertyName:PropertyName,PropertyValue:PropertyValue,PropertyValuePart:PropertyValuePart,MediaFeature:MediaFeature,MediaQuery:MediaQuery,Selector:Selector,SelectorPart:SelectorPart,SelectorSubPart:SelectorSubPart,Specificity:Specificity,TokenStream:TokenStream,Tokens:Tokens,ValidationError:ValidationError}}(),function(){for(var e in parserlib)exports[e]=parserlib[e]}();var util={isArray:function(e){return Array.isArray(e)||"object"==typeof e&&"[object Array]"===objectToString(e)},isDate:function(e){return"object"==typeof e&&"[object Date]"===objectToString(e)},isRegExp:function(e){return"object"==typeof e&&"[object RegExp]"===objectToString(e)},getRegExpFlags:function(e){var t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),t}};"object"==typeof module&&(module.exports=clone),clone.clonePrototype=function(e){if(null===e)return null;var t=function(){};return t.prototype=e,new t};var CSSLint=function(){function e(e,t){var i,r=e&&e.match(n),o=r&&r[1];return o&&(i={"true":2,"":1,"false":0,2:2,1:1,0:0},o.toLowerCase().split(",").forEach(function(e){var n=e.split(":"),r=n[0]||"",o=n[1]||"";t[r.trim()]=i[o.trim()]})),t}var t=[],i=[],n=/\/\*csslint([^\*]*)\*\//,r=new parserlib.util.EventTarget;return r.version="@VERSION@",r.addRule=function(e){t.push(e),t[e.id]=e},r.clearRules=function(){t=[]},r.getRules=function(){return[].concat(t).sort(function(e,t){return e.id>t.id?1:0})},r.getRuleset=function(){for(var e={},i=0,n=t.length;n>i;)e[t[i++].id]=1;return e},r.addFormatter=function(e){i[e.id]=e},r.getFormatter=function(e){return i[e]},r.format=function(e,t,i,n){var r=this.getFormatter(i),o=null;return r&&(o=r.startFormat(),o+=r.formatResults(e,t,n||{}),o+=r.endFormat()),o},r.hasFormat=function(e){return i.hasOwnProperty(e)},r.verify=function(i,r){var o,s,a,l=0,c=new parserlib.css.Parser({starHack:!0,ieFilters:!0,underscoreHack:!0,strict:!1});s=i.replace(/\n\r?/g,"$split$").split("$split$"),r||(r=this.getRuleset()),n.test(i)&&(r=clone(r),r=e(i,r)),o=new Reporter(s,r),r.errors=2;for(l in r)r.hasOwnProperty(l)&&r[l]&&t[l]&&t[l].init(c,o);try{c.parse(i)}catch(h){o.error("Fatal error, cannot continue: "+h.message,h.line,h.col,{})}return a={messages:o.messages,stats:o.stats,ruleset:o.ruleset},a.messages.sort(function(e,t){return e.rollup&&!t.rollup?1:!e.rollup&&t.rollup?-1:e.line-t.line}),a},r}();Reporter.prototype={constructor:Reporter,error:function(e,t,i,n){this.messages.push({type:"error",line:t,col:i,message:e,evidence:this.lines[t-1],rule:n||{}})},warn:function(e,t,i,n){this.report(e,t,i,n)},report:function(e,t,i,n){this.messages.push({type:2===this.ruleset[n.id]?"error":"warning",line:t,col:i,message:e,evidence:this.lines[t-1],rule:n})},info:function(e,t,i,n){this.messages.push({type:"info",line:t,col:i,message:e,evidence:this.lines[t-1],rule:n})},rollupError:function(e,t){this.messages.push({type:"error",rollup:!0,message:e,rule:t})},rollupWarn:function(e,t){this.messages.push({type:"warning",rollup:!0,message:e,rule:t})},stat:function(e,t){this.stats[e]=t}},CSSLint._Reporter=Reporter,CSSLint.Util={mix:function(e,t){var i;for(i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return i},indexOf:function(e,t){if(e.indexOf)return e.indexOf(t);for(var i=0,n=e.length;n>i;i++)if(e[i]===t)return i;return-1},forEach:function(e,t){if(e.forEach)return e.forEach(t);for(var i=0,n=e.length;n>i;i++)t(e[i],i,e)}},CSSLint.addRule({id:"adjoining-classes",name:"Disallow adjoining classes",desc:"Don't use adjoining classes.",browsers:"IE6",init:function(e,t){var i=this;e.addListener("startrule",function(n){var r,o,s,a,l,c,h,u=n.selectors;for(l=0;u.length>l;l++)for(r=u[l],c=0;r.parts.length>c;c++)if(o=r.parts[c],o.type===e.SELECTOR_PART_TYPE)for(a=0,h=0;o.modifiers.length>h;h++)s=o.modifiers[h],"class"===s.type&&a++,a>1&&t.report("Don't use adjoining classes.",o.line,o.col,i)})}}),CSSLint.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(e,t){function i(){r={},l=!1}function n(){var e,i;if(!l){if(r.height)for(e in a)a.hasOwnProperty(e)&&r[e]&&(i=r[e].value,("padding"!==e||2!==i.parts.length||0!==i.parts[0].value)&&t.report("Using height with "+e+" can sometimes make elements larger than you expect.",r[e].line,r[e].col,o));if(r.width)for(e in s)s.hasOwnProperty(e)&&r[e]&&(i=r[e].value,("padding"!==e||2!==i.parts.length||0!==i.parts[1].value)&&t.report("Using width with "+e+" can sometimes make elements larger than you expect.",r[e].line,r[e].col,o))}}var r,o=this,s={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},a={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},l=!1;e.addListener("startrule",i),e.addListener("startfontface",i),e.addListener("startpage",i),e.addListener("startpagemargin",i),e.addListener("startkeyframerule",i),e.addListener("property",function(e){var t=e.property.text.toLowerCase();a[t]||s[t]?/^0\S*$/.test(e.value)||"border"===t&&"none"==""+e.value||(r[t]={line:e.property.line,col:e.property.col,value:e.value}):/^(width|height)/i.test(t)&&/^(length|percentage)/.test(e.value.parts[0].type)?r[t]=1:"box-sizing"===t&&(l=!0)}),e.addListener("endrule",n),e.addListener("endfontface",n),e.addListener("endpage",n),e.addListener("endpagemargin",n),e.addListener("endkeyframerule",n)}}),CSSLint.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(e,t){var i=this;e.addListener("property",function(e){var n=e.property.text.toLowerCase();"box-sizing"===n&&t.report("The box-sizing property isn't supported in IE6 and IE7.",e.line,e.col,i)})}}),CSSLint.addRule({id:"bulletproof-font-face",name:"Use the bulletproof @font-face syntax",desc:"Use the bulletproof @font-face syntax to avoid 404's in old IE (http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax).",browsers:"All",init:function(e,t){var i,n,r=this,o=!1,s=!0,a=!1;e.addListener("startfontface",function(){o=!0}),e.addListener("property",function(e){if(o){var t=(""+e.property).toLowerCase(),r=""+e.value;if(i=e.line,n=e.col,"src"===t){var l=/^\s?url\(['"].+\.eot\?.*['"]\)\s*format\(['"]embedded-opentype['"]\).*$/i;!r.match(l)&&s?(a=!0,s=!1):r.match(l)&&!s&&(a=!1)}}}),e.addListener("endfontface",function(){o=!1,a&&t.report("@font-face declaration doesn't follow the fontspring bulletproof syntax.",i,n,r)})}}),CSSLint.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(e,t){var i,n,r,o,s,a,l,c=this,h=!1,u=Array.prototype.push,d=[];i={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",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","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","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz ms","word-break":"epub ms","writing-mode":"epub ms"};for(r in i)if(i.hasOwnProperty(r)){for(o=[],s=i[r].split(" "),a=0,l=s.length;l>a;a++)o.push("-"+s[a]+"-"+r);i[r]=o,u.apply(d,o)}e.addListener("startrule",function(){n=[]}),e.addListener("startkeyframes",function(e){h=e.prefix||!0}),e.addListener("endkeyframes",function(){h=!1}),e.addListener("property",function(e){var t=e.property;CSSLint.Util.indexOf(d,t.text)>-1&&(h&&"string"==typeof h&&0===t.text.indexOf("-"+h+"-")||n.push(t))}),e.addListener("endrule",function(){if(n.length){var e,r,o,s,a,l,h,u,d,g,f={};for(e=0,r=n.length;r>e;e++){o=n[e];for(s in i)i.hasOwnProperty(s)&&(a=i[s],CSSLint.Util.indexOf(a,o.text)>-1&&(f[s]||(f[s]={full:a.slice(0),actual:[],actualNodes:[]}),-1===CSSLint.Util.indexOf(f[s].actual,o.text)&&(f[s].actual.push(o.text),f[s].actualNodes.push(o))))}for(s in f)if(f.hasOwnProperty(s)&&(l=f[s],h=l.full,u=l.actual,h.length>u.length))for(e=0,r=h.length;r>e;e++)d=h[e],-1===CSSLint.Util.indexOf(u,d)&&(g=1===u.length?u[0]:2===u.length?u.join(" and "):u.join(", "),t.report("The property "+d+" is compatible with "+g+" and should be included as well.",l.actualNodes[0].line,l.actualNodes[0].col,c))}})}}),CSSLint.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(e,t){function i(e,i,n){o[e]&&("string"!=typeof a[e]||o[e].value.toLowerCase()!==a[e])&&t.report(n||e+" can't be used with display: "+i+".",o[e].line,o[e].col,s)}function n(){o={}}function r(){var e=o.display?o.display.value:null;if(e)switch(e){case"inline":i("height",e),i("width",e),i("margin",e),i("margin-top",e),i("margin-bottom",e),i("float",e,"display:inline has no effect on floated elements (but may be used to fix the IE6 double-margin bug).");break;case"block":i("vertical-align",e);break;case"inline-block":i("float",e);break;default:0===e.indexOf("table-")&&(i("margin",e),i("margin-left",e),i("margin-right",e),i("margin-top",e),i("margin-bottom",e),i("float",e))}}var o,s=this,a={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};e.addListener("startrule",n),e.addListener("startfontface",n),e.addListener("startkeyframerule",n),e.addListener("startpagemargin",n),e.addListener("startpage",n),e.addListener("property",function(e){var t=e.property.text.toLowerCase();a[t]&&(o[t]={value:e.value.text,line:e.property.line,col:e.property.col})}),e.addListener("endrule",r),e.addListener("endfontface",r),e.addListener("endkeyframerule",r),e.addListener("endpagemargin",r),e.addListener("endpage",r)}}),CSSLint.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(e,t){var i=this,n={};e.addListener("property",function(e){var r,o,s=e.property.text,a=e.value;if(s.match(/background/i))for(r=0,o=a.parts.length;o>r;r++)"uri"===a.parts[r].type&&(n[a.parts[r].uri]===void 0?n[a.parts[r].uri]=e:t.report("Background image '"+a.parts[r].uri+"' was used multiple times, first declared at line "+n[a.parts[r].uri].line+", col "+n[a.parts[r].uri].col+".",e.line,e.col,i))})}}),CSSLint.addRule({id:"duplicate-properties",name:"Disallow duplicate properties",desc:"Duplicate properties must appear one after the other.",browsers:"All",init:function(e,t){function i(){n={}}var n,r,o=this;e.addListener("startrule",i),e.addListener("startfontface",i),e.addListener("startpage",i),e.addListener("startpagemargin",i),e.addListener("startkeyframerule",i),e.addListener("property",function(e){var i=e.property,s=i.text.toLowerCase();!n[s]||r===s&&n[s]!==e.value.text||t.report("Duplicate property '"+e.property+"' found.",e.line,e.col,o),n[s]=e.value.text,r=s})}}),CSSLint.addRule({id:"empty-rules",name:"Disallow empty rules",desc:"Rules without any properties specified should be removed.",browsers:"All",init:function(e,t){var i=this,n=0;e.addListener("startrule",function(){n=0}),e.addListener("property",function(){n++}),e.addListener("endrule",function(e){var r=e.selectors;0===n&&t.report("Rule is empty.",r[0].line,r[0].col,i)})}}),CSSLint.addRule({id:"errors",name:"Parsing Errors",desc:"This rule looks for recoverable syntax errors.",browsers:"All",init:function(e,t){var i=this;
e.addListener("error",function(e){t.error(e.message,e.line,e.col,i)})}}),CSSLint.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(e,t){function i(){r={},n=null}var n,r,o=this,s={color:1,background:1,"border-color":1,"border-top-color":1,"border-right-color":1,"border-bottom-color":1,"border-left-color":1,border:1,"border-top":1,"border-right":1,"border-bottom":1,"border-left":1,"background-color":1};e.addListener("startrule",i),e.addListener("startfontface",i),e.addListener("startpage",i),e.addListener("startpagemargin",i),e.addListener("startkeyframerule",i),e.addListener("property",function(e){var i=e.property,r=i.text.toLowerCase(),a=e.value.parts,l=0,c="",h=a.length;if(s[r])for(;h>l;)"color"===a[l].type&&("alpha"in a[l]||"hue"in a[l]?(/([^\)]+)\(/.test(a[l])&&(c=RegExp.$1.toUpperCase()),n&&n.property.text.toLowerCase()===r&&"compat"===n.colorType||t.report("Fallback "+r+" (hex or RGB) should precede "+c+" "+r+".",e.line,e.col,o)):e.colorType="compat"),l++;n=e})}}),CSSLint.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(e,t){var i=this,n=0;e.addListener("property",function(e){"float"===e.property.text.toLowerCase()&&"none"!==e.value.text.toLowerCase()&&n++}),e.addListener("endstylesheet",function(){t.stat("floats",n),n>=10&&t.rollupWarn("Too many floats ("+n+"), you're probably using them for layout. Consider using a grid system instead.",i)})}}),CSSLint.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(e,t){var i=this,n=0;e.addListener("startfontface",function(){n++}),e.addListener("endstylesheet",function(){n>5&&t.rollupWarn("Too many @font-face declarations ("+n+").",i)})}}),CSSLint.addRule({id:"font-sizes",name:"Disallow too many font sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(e,t){var i=this,n=0;e.addListener("property",function(e){"font-size"==""+e.property&&n++}),e.addListener("endstylesheet",function(){t.stat("font-sizes",n),n>=10&&t.rollupWarn("Too many font-size declarations ("+n+"), abstraction needed.",i)})}}),CSSLint.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(e,t){var i,n=this;e.addListener("startrule",function(){i={moz:0,webkit:0,oldWebkit:0,o:0}}),e.addListener("property",function(e){/\-(moz|o|webkit)(?:\-(?:linear|radial))\-gradient/i.test(e.value)?i[RegExp.$1]=1:/\-webkit\-gradient/i.test(e.value)&&(i.oldWebkit=1)}),e.addListener("endrule",function(e){var r=[];i.moz||r.push("Firefox 3.6+"),i.webkit||r.push("Webkit (Safari 5+, Chrome)"),i.oldWebkit||r.push("Old Webkit (Safari 4+, Chrome)"),i.o||r.push("Opera 11.1+"),r.length&&4>r.length&&t.report("Missing vendor-prefixed CSS gradients for "+r.join(", ")+".",e.selectors[0].line,e.selectors[0].col,n)})}}),CSSLint.addRule({id:"ids",name:"Disallow IDs in selectors",desc:"Selectors should not contain IDs.",browsers:"All",init:function(e,t){var i=this;e.addListener("startrule",function(n){var r,o,s,a,l,c,h,u=n.selectors;for(l=0;u.length>l;l++){for(r=u[l],a=0,c=0;r.parts.length>c;c++)if(o=r.parts[c],o.type===e.SELECTOR_PART_TYPE)for(h=0;o.modifiers.length>h;h++)s=o.modifiers[h],"id"===s.type&&a++;1===a?t.report("Don't use IDs in selectors.",r.line,r.col,i):a>1&&t.report(a+" IDs in the selector, really?",r.line,r.col,i)}})}}),CSSLint.addRule({id:"import",name:"Disallow @import",desc:"Don't use @import, use <link> instead.",browsers:"All",init:function(e,t){var i=this;e.addListener("import",function(e){t.report("@import prevents parallel downloads, use <link> instead.",e.line,e.col,i)})}}),CSSLint.addRule({id:"important",name:"Disallow !important",desc:"Be careful when using !important declaration",browsers:"All",init:function(e,t){var i=this,n=0;e.addListener("property",function(e){e.important===!0&&(n++,t.report("Use of !important",e.line,e.col,i))}),e.addListener("endstylesheet",function(){t.stat("important",n),n>=10&&t.rollupWarn("Too many !important declarations ("+n+"), try to use less than 10 to avoid specificity issues.",i)})}}),CSSLint.addRule({id:"known-properties",name:"Require use of known properties",desc:"Properties should be known (listed in CSS3 specification) or be a vendor-prefixed property.",browsers:"All",init:function(e,t){var i=this;e.addListener("property",function(e){e.invalid&&t.report(e.invalid.message,e.line,e.col,i)})}}),CSSLint.addRule({id:"order-alphabetical",name:"Alphabetical order",desc:"Assure properties are in alphabetical order",browsers:"All",init:function(e,t){var i,n=this,r=function(){i=[]};e.addListener("startrule",r),e.addListener("startfontface",r),e.addListener("startpage",r),e.addListener("startpagemargin",r),e.addListener("startkeyframerule",r),e.addListener("property",function(e){var t=e.property.text,n=t.toLowerCase().replace(/^-.*?-/,"");i.push(n)}),e.addListener("endrule",function(e){var r=i.join(","),o=i.sort().join(",");r!==o&&t.report("Rule doesn't have all its properties in alphabetical ordered.",e.line,e.col,n)})}}),CSSLint.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(e,t){function i(e){r=e.selectors?{line:e.line,col:e.col,selectors:e.selectors,propCount:0,outline:!1}:null}function n(){r&&r.outline&&(-1===(""+r.selectors).toLowerCase().indexOf(":focus")?t.report("Outlines should only be modified using :focus.",r.line,r.col,o):1===r.propCount&&t.report("Outlines shouldn't be hidden unless other visual changes are made.",r.line,r.col,o))}var r,o=this;e.addListener("startrule",i),e.addListener("startfontface",i),e.addListener("startpage",i),e.addListener("startpagemargin",i),e.addListener("startkeyframerule",i),e.addListener("property",function(e){var t=e.property.text.toLowerCase(),i=e.value;r&&(r.propCount++,"outline"!==t||"none"!=""+i&&"0"!=""+i||(r.outline=!0))}),e.addListener("endrule",n),e.addListener("endfontface",n),e.addListener("endpage",n),e.addListener("endpagemargin",n),e.addListener("endkeyframerule",n)}}),CSSLint.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(e,t){var i=this,n={};e.addListener("startrule",function(r){var o,s,a,l,c,h,u=r.selectors;for(l=0;u.length>l;l++)for(o=u[l],c=0;o.parts.length>c;c++)if(s=o.parts[c],s.type===e.SELECTOR_PART_TYPE)for(h=0;s.modifiers.length>h;h++)a=s.modifiers[h],s.elementName&&"id"===a.type?t.report("Element ("+s+") is overqualified, just use "+a+" without element name.",s.line,s.col,i):"class"===a.type&&(n[a]||(n[a]=[]),n[a].push({modifier:a,part:s}))}),e.addListener("endstylesheet",function(){var e;for(e in n)n.hasOwnProperty(e)&&1===n[e].length&&n[e][0].part.elementName&&t.report("Element ("+n[e][0].part+") is overqualified, just use "+n[e][0].modifier+" without element name.",n[e][0].part.line,n[e][0].part.col,i)})}}),CSSLint.addRule({id:"qualified-headings",name:"Disallow qualified headings",desc:"Headings should not be qualified (namespaced).",browsers:"All",init:function(e,t){var i=this;e.addListener("startrule",function(n){var r,o,s,a,l=n.selectors;for(s=0;l.length>s;s++)for(r=l[s],a=0;r.parts.length>a;a++)o=r.parts[a],o.type===e.SELECTOR_PART_TYPE&&o.elementName&&/h[1-6]/.test(""+o.elementName)&&a>0&&t.report("Heading ("+o.elementName+") should not be qualified.",o.line,o.col,i)})}}),CSSLint.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(e,t){var i=this;e.addListener("startrule",function(n){var r,o,s,a,l,c,h=n.selectors;for(a=0;h.length>a;a++)for(r=h[a],l=0;r.parts.length>l;l++)if(o=r.parts[l],o.type===e.SELECTOR_PART_TYPE)for(c=0;o.modifiers.length>c;c++)s=o.modifiers[c],"attribute"===s.type&&/([\~\|\^\$\*]=)/.test(s)&&t.report("Attribute selectors with "+RegExp.$1+" are slow!",s.line,s.col,i)})}}),CSSLint.addRule({id:"rules-count",name:"Rules Count",desc:"Track how many rules there are.",browsers:"All",init:function(e,t){var i=0;e.addListener("startrule",function(){i++}),e.addListener("endstylesheet",function(){t.stat("rule-count",i)})}}),CSSLint.addRule({id:"selector-max-approaching",name:"Warn when approaching the 4095 selector limit for IE",desc:"Will warn when selector count is >= 3800 selectors.",browsers:"IE",init:function(e,t){var i=this,n=0;e.addListener("startrule",function(e){n+=e.selectors.length}),e.addListener("endstylesheet",function(){n>=3800&&t.report("You have "+n+" selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.",0,0,i)})}}),CSSLint.addRule({id:"selector-max",name:"Error when past the 4095 selector limit for IE",desc:"Will error when selector count is > 4095.",browsers:"IE",init:function(e,t){var i=this,n=0;e.addListener("startrule",function(e){n+=e.selectors.length}),e.addListener("endstylesheet",function(){n>4095&&t.report("You have "+n+" selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.",0,0,i)})}}),CSSLint.addRule({id:"selector-newline",name:"Disallow new-line characters in selectors",desc:"New-line characters in selectors are usually a forgotten comma and not a descendant combinator.",browsers:"All",init:function(e,t){function i(e){var i,r,o,s,a,l,c,h,u,d,g,f=e.selectors;for(i=0,r=f.length;r>i;i++)for(o=f[i],s=0,l=o.parts.length;l>s;s++)for(a=s+1;l>a;a++)c=o.parts[s],h=o.parts[a],u=c.type,d=c.line,g=h.line,"descendant"===u&&g>d&&t.report("newline character found in selector (forgot a comma?)",d,f[i].parts[0].col,n)}var n=this;e.addListener("startrule",i)}}),CSSLint.addRule({id:"shorthand",name:"Require shorthand properties",desc:"Use shorthand properties where possible.",browsers:"All",init:function(e,t){function i(){a={}}function n(e){var i,n,r,o;for(i in h)if(h.hasOwnProperty(i)){for(o=0,n=0,r=h[i].length;r>n;n++)o+=a[h[i][n]]?1:0;o===h[i].length&&t.report("The properties "+h[i].join(", ")+" can be replaced by "+i+".",e.line,e.col,l)}}var r,o,s,a,l=this,c={},h={margin:["margin-top","margin-bottom","margin-left","margin-right"],padding:["padding-top","padding-bottom","padding-left","padding-right"]};for(r in h)if(h.hasOwnProperty(r))for(o=0,s=h[r].length;s>o;o++)c[h[r][o]]=r;e.addListener("startrule",i),e.addListener("startfontface",i),e.addListener("property",function(e){var t=(""+e.property).toLowerCase();c[t]&&(a[t]=1)}),e.addListener("endrule",n),e.addListener("endfontface",n)}}),CSSLint.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(e,t){var i=this;e.addListener("property",function(e){var n=e.property;"*"===n.hack&&t.report("Property with star prefix found.",e.property.line,e.property.col,i)})}}),CSSLint.addRule({id:"text-indent",name:"Disallow negative text-indent",desc:"Checks for text indent less than -99px",browsers:"All",init:function(e,t){function i(){r=!1,o="inherit"}function n(){r&&"ltr"!==o&&t.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.",r.line,r.col,s)}var r,o,s=this;e.addListener("startrule",i),e.addListener("startfontface",i),e.addListener("property",function(e){var t=(""+e.property).toLowerCase(),i=e.value;"text-indent"===t&&-99>i.parts[0].value?r=e.property:"direction"===t&&"ltr"==""+i&&(o="ltr")}),e.addListener("endrule",n),e.addListener("endfontface",n)}}),CSSLint.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(e,t){var i=this;e.addListener("property",function(e){var n=e.property;"_"===n.hack&&t.report("Property with underscore prefix found.",e.property.line,e.property.col,i)})}}),CSSLint.addRule({id:"unique-headings",name:"Headings should only be defined once",desc:"Headings should be defined only once.",browsers:"All",init:function(e,t){var i=this,n={h1:0,h2:0,h3:0,h4:0,h5:0,h6:0};e.addListener("startrule",function(e){var r,o,s,a,l,c=e.selectors;for(a=0;c.length>a;a++)if(r=c[a],o=r.parts[r.parts.length-1],o.elementName&&/(h[1-6])/i.test(""+o.elementName)){for(l=0;o.modifiers.length>l;l++)if("pseudo"===o.modifiers[l].type){s=!0;break}s||(n[RegExp.$1]++,n[RegExp.$1]>1&&t.report("Heading ("+o.elementName+") has already been defined.",o.line,o.col,i))}}),e.addListener("endstylesheet",function(){var e,r=[];for(e in n)n.hasOwnProperty(e)&&n[e]>1&&r.push(n[e]+" "+e+"s");r.length&&t.rollupWarn("You have "+r.join(", ")+" defined in this stylesheet.",i)})}}),CSSLint.addRule({id:"universal-selector",name:"Disallow universal selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(e,t){var i=this;e.addListener("startrule",function(e){var n,r,o,s=e.selectors;for(o=0;s.length>o;o++)n=s[o],r=n.parts[n.parts.length-1],"*"===r.elementName&&t.report(i.desc,r.line,r.col,i)})}}),CSSLint.addRule({id:"unqualified-attributes",name:"Disallow unqualified attribute selectors",desc:"Unqualified attribute selectors are known to be slow.",browsers:"All",init:function(e,t){var i=this;e.addListener("startrule",function(n){var r,o,s,a,l,c=n.selectors;for(a=0;c.length>a;a++)if(r=c[a],o=r.parts[r.parts.length-1],o.type===e.SELECTOR_PART_TYPE)for(l=0;o.modifiers.length>l;l++)s=o.modifiers[l],"attribute"!==s.type||o.elementName&&"*"!==o.elementName||t.report(i.desc,o.line,o.col,i)})}}),CSSLint.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(e,t){function i(){r={},o=1}function n(){var e,i,n,o,l,c=[];for(e in r)a[e]&&c.push({actual:e,needed:a[e]});for(i=0,n=c.length;n>i;i++)o=c[i].needed,l=c[i].actual,r[o]?r[o][0].pos<r[l][0].pos&&t.report("Standard property '"+o+"' should come after vendor-prefixed property '"+l+"'.",r[l][0].name.line,r[l][0].name.col,s):t.report("Missing standard property '"+o+"' to go along with '"+l+"'.",r[l][0].name.line,r[l][0].name.col,s)}var r,o,s=this,a={"-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"};e.addListener("startrule",i),e.addListener("startfontface",i),e.addListener("startpage",i),e.addListener("startpagemargin",i),e.addListener("startkeyframerule",i),e.addListener("property",function(e){var t=e.property.text.toLowerCase();r[t]||(r[t]=[]),r[t].push({name:e.property,value:e.value,pos:o++})}),e.addListener("endrule",n),e.addListener("endfontface",n),e.addListener("endpage",n),e.addListener("endpagemargin",n),e.addListener("endkeyframerule",n)}}),CSSLint.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(e,t){var i=this;e.addListener("property",function(e){for(var n=e.value.parts,r=0,o=n.length;o>r;)!n[r].units&&"percentage"!==n[r].type||0!==n[r].value||"time"===n[r].type||t.report("Values of 0 shouldn't have units specified.",n[r].line,n[r].col,i),r++})}}),function(){var e=function(e){return e&&e.constructor===String?e.replace(/[\"&><]/g,function(e){switch(e){case'"':return""";case"&":return"&";case"<":return"<";case">":return">"}}):""};CSSLint.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(t,i){return'<file name="'+e(t)+'"><error line="0" column="0" severty="error" message="'+e(i)+'"></error></file>'},formatResults:function(t,i){var n=t.messages,r=[],o=function(e){return e&&"name"in e?"net.csslint."+e.name.replace(/\s/g,""):""};return n.length>0&&(r.push('<file name="'+i+'">'),CSSLint.Util.forEach(n,function(t){t.rollup||r.push('<error line="'+t.line+'" column="'+t.col+'" severity="'+t.type+'"'+' message="'+e(t.message)+'" source="'+o(t.rule)+'"/>')}),r.push("</file>")),r.join("")}})}(),CSSLint.addFormatter({id:"compact",name:"Compact, 'porcelain' format",startFormat:function(){return""},endFormat:function(){return""},formatResults:function(e,t,i){var n=e.messages,r="";i=i||{};var o=function(e){return e.charAt(0).toUpperCase()+e.slice(1)};return 0===n.length?i.quiet?"":t+": Lint Free!":(CSSLint.Util.forEach(n,function(e){r+=e.rollup?t+": "+o(e.type)+" - "+e.message+"\n":t+": "+"line "+e.line+", col "+e.col+", "+o(e.type)+" - "+e.message+" ("+e.rule.id+")\n"}),r)}}),CSSLint.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(e,t){var i=e.messages,n=[],r=function(e){return e&&e.constructor===String?e.replace(/\"/g,"'").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"):""};return i.length>0&&(n.push('<file name="'+t+'">'),CSSLint.Util.forEach(i,function(e){e.rollup?n.push('<issue severity="'+e.type+'" reason="'+r(e.message)+'" evidence="'+r(e.evidence)+'"/>'):n.push('<issue line="'+e.line+'" char="'+e.col+'" severity="'+e.type+'"'+' reason="'+r(e.message)+'" evidence="'+r(e.evidence)+'"/>')}),n.push("</file>")),n.join("")}}),CSSLint.addFormatter({id:"junit-xml",name:"JUNIT XML format",startFormat:function(){return'<?xml version="1.0" encoding="utf-8"?><testsuites>'},endFormat:function(){return"</testsuites>"},formatResults:function(e,t){var i=e.messages,n=[],r={error:0,failure:0},o=function(e){return e&&"name"in e?"net.csslint."+e.name.replace(/\s/g,""):""},s=function(e){return e&&e.constructor===String?e.replace(/\"/g,"'").replace(/</g,"<").replace(/>/g,">"):""};return i.length>0&&(i.forEach(function(e){var t="warning"===e.type?"error":e.type;e.rollup||(n.push('<testcase time="0" name="'+o(e.rule)+'">'),n.push("<"+t+' message="'+s(e.message)+'"><![CDATA['+e.line+":"+e.col+":"+s(e.evidence)+"]]></"+t+">"),n.push("</testcase>"),r[t]+=1)}),n.unshift('<testsuite time="0" tests="'+i.length+'" skipped="0" errors="'+r.error+'" failures="'+r.failure+'" package="net.csslint" name="'+t+'">'),n.push("</testsuite>")),n.join("")}}),CSSLint.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(e,t){var i=e.messages,n=[],r=function(e){return e&&e.constructor===String?e.replace(/\"/g,"'").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"):""};return i.length>0&&(n.push('<file name="'+t+'">'),CSSLint.Util.forEach(i,function(e){e.rollup?n.push('<issue severity="'+e.type+'" reason="'+r(e.message)+'" evidence="'+r(e.evidence)+'"/>'):n.push('<issue line="'+e.line+'" char="'+e.col+'" severity="'+e.type+'"'+' reason="'+r(e.message)+'" evidence="'+r(e.evidence)+'"/>')}),n.push("</file>")),n.join("")}}),CSSLint.addFormatter({id:"text",name:"Plain Text",startFormat:function(){return""},endFormat:function(){return""},formatResults:function(e,t,i){var n=e.messages,r="";if(i=i||{},0===n.length)return i.quiet?"":"\n\ncsslint: No errors in "+t+".";r="\n\ncsslint: There ",r+=1===n.length?"is 1 problem":"are "+n.length+" problems",r+=" in "+t+".";var o=t.lastIndexOf("/"),s=t;return-1===o&&(o=t.lastIndexOf("\\")),o>-1&&(s=t.substring(o+1)),CSSLint.Util.forEach(n,function(e,t){r=r+"\n\n"+s,e.rollup?(r+="\n"+(t+1)+": "+e.type,r+="\n"+e.message):(r+="\n"+(t+1)+": "+e.type+" at line "+e.line+", col "+e.col,r+="\n"+e.message,r+="\n"+e.evidence)}),r}}),module.exports.CSSLint=CSSLint}),ace.define("ace/mode/css_worker",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/worker/mirror","ace/mode/css/csslint"],function(e,t){"use strict";var i=e("../lib/oop"),n=e("../lib/lang"),r=e("../worker/mirror").Mirror,o=e("./css/csslint").CSSLint,s=t.Worker=function(e){r.call(this,e),this.setTimeout(400),this.ruleset=null,this.setDisabledRules("ids|order-alphabetical"),this.setInfoRules("adjoining-classes|qualified-headings|zero-units|gradients|import|outline-none|vendor-prefix")};i.inherits(s,r),function(){this.setInfoRules=function(e){"string"==typeof e&&(e=e.split("|")),this.infoRules=n.arrayToMap(e),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.setDisabledRules=function(e){if(e){"string"==typeof e&&(e=e.split("|"));var t={};o.getRules().forEach(function(e){t[e.id]=!0}),e.forEach(function(e){delete t[e]}),this.ruleset=t}else this.ruleset=null;this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.onUpdate=function(){var e=this.doc.getValue();if(!e)return this.sender.emit("csslint",[]);var t=this.infoRules,i=o.verify(e,this.ruleset);this.sender.emit("csslint",i.messages.map(function(e){return{row:e.line-1,column:e.col-1,text:e.message,type:t[e.rule.id]?"info":e.type,rule:e.rule.name}}))}}.call(s.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function e(){}function t(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function i(e){return e=+e,e!==e?e=0:0!==e&&e!==1/0&&e!==-(1/0)&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}Function.prototype.bind||(Function.prototype.bind=function(t){var i=this;if("function"!=typeof i)throw new TypeError("Function.prototype.bind called on incompatible "+i);var n=u.call(arguments,1),r=function(){if(this instanceof r){var e=i.apply(this,n.concat(u.call(arguments)));return Object(e)===e?e:this}return i.apply(t,n.concat(u.call(arguments)))};return i.prototype&&(e.prototype=i.prototype,r.prototype=new e,e.prototype=null),r});var n,r,o,s,a,l=Function.prototype.call,c=Array.prototype,h=Object.prototype,u=c.slice,d=l.bind(h.toString),g=l.bind(h.hasOwnProperty);if((a=g(h,"__defineGetter__"))&&(n=l.bind(h.__defineGetter__),r=l.bind(h.__defineSetter__),o=l.bind(h.__lookupGetter__),s=l.bind(h.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=Array(e+2);return t[0]=t[1]=0,t}var t,i=[];return i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),t+1==i.length,t+1==i.length?!0:void 0}()){var f=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?f.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(u.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var i=this.length;e>0?e>i&&(e=i):void 0==e?e=0:0>e&&(e=Math.max(i+e,0)),i>e+t||(t=i-e);var n=this.slice(e,e+t),r=u.call(arguments,2),o=r.length;if(e===i)o&&this.push.apply(this,r);else{var s=Math.min(t,i-e),a=e+s,l=a+o-s,c=i-a,h=i-s;if(a>l)for(var d=0;c>d;++d)this[l+d]=this[a+d];else if(l>a)for(d=c;d--;)this[l+d]=this[a+d];if(o&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+o,d=0;o>d;++d)this[e+d]=r[d]}return n};Array.isArray||(Array.isArray=function(e){return"[object Array]"==d(e)});var p=Object("a"),m="a"!=p[0]||!(0 in p);if(Array.prototype.forEach||(Array.prototype.forEach=function(e){var t=B(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=arguments[1],r=-1,o=i.length>>>0;if("[object Function]"!=d(e))throw new TypeError;for(;o>++r;)r in i&&e.call(n,i[r],r,t)}),Array.prototype.map||(Array.prototype.map=function(e){var t=B(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=i.length>>>0,r=Array(n),o=arguments[1];if("[object Function]"!=d(e))throw new TypeError(e+" is not a function");for(var s=0;n>s;s++)s in i&&(r[s]=e.call(o,i[s],s,t));return r}),Array.prototype.filter||(Array.prototype.filter=function(e){var t,i=B(this),n=m&&"[object String]"==d(this)?this.split(""):i,r=n.length>>>0,o=[],s=arguments[1];if("[object Function]"!=d(e))throw new TypeError(e+" is not a function");for(var a=0;r>a;a++)a in n&&(t=n[a],e.call(s,t,a,i)&&o.push(t));return o}),Array.prototype.every||(Array.prototype.every=function(e){var t=B(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=i.length>>>0,r=arguments[1];if("[object Function]"!=d(e))throw new TypeError(e+" is not a function");for(var o=0;n>o;o++)if(o in i&&!e.call(r,i[o],o,t))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(e){var t=B(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=i.length>>>0,r=arguments[1];if("[object Function]"!=d(e))throw new TypeError(e+" is not a function");for(var o=0;n>o;o++)if(o in i&&e.call(r,i[o],o,t))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(e){var t=B(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=i.length>>>0;if("[object Function]"!=d(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;n>o;o++)o in i&&(r=e.call(void 0,r,i[o],o,t));return r}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(e){var t=B(this),i=m&&"[object String]"==d(this)?this.split(""):t,n=i.length>>>0;if("[object Function]"!=d(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o--];break}if(0>--o)throw new TypeError("reduceRight of empty array with no initial value")}do o in this&&(r=e.call(void 0,r,i[o],o,t));while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=m&&"[object String]"==d(this)?this.split(""):B(this),n=t.length>>>0;if(!n)return-1;var r=0;for(arguments.length>1&&(r=i(arguments[1])),r=r>=0?r:Math.max(0,n+r);n>r;r++)if(r in t&&t[r]===e)return r;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(e){var t=m&&"[object String]"==d(this)?this.split(""):B(this),n=t.length>>>0;if(!n)return-1;var r=n-1;for(arguments.length>1&&(r=Math.min(r,i(arguments[1]))),r=r>=0?r:n-Math.abs(r);r>=0;r--)if(r in t&&e===t[r])return r;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:h)}),!Object.getOwnPropertyDescriptor){var v="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError(v+e);if(g(e,t)){var i,n,r;if(i={enumerable:!0,configurable:!0},a){var l=e.__proto__;e.__proto__=h;var n=o(e,t),r=s(e,t);if(e.__proto__=l,n||r)return n&&(i.get=n),r&&(i.set=r),i}return i.value=e[t],i}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var w;w=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=w();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,i=new n,i.__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i}}if(Object.defineProperty){var A=t({}),C="undefined"==typeof document||t(document.createElement("div"));if(!A||!C)var b=Object.defineProperty}if(!Object.defineProperty||b){var y="Property description must be an object: ",E="Object.defineProperty called on non-object: ",F="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError(E+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError(y+i);if(b)try{return b.call(Object,e,t,i)}catch(l){}if(g(i,"value"))if(a&&(o(e,t)||s(e,t))){var c=e.__proto__;e.__proto__=h,delete e[t],e[t]=i.value,e.__proto__=c}else e[t]=i.value;else{if(!a)throw new TypeError(F);g(i,"get")&&n(e,t,i.get),g(i,"set")&&r(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)g(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze(function(){})}catch(k){Object.freeze=function(e){return function(t){return"function"==typeof t?t:e(t)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";g(e,t);)t+="?";e[t]=!0;var i=g(e,t);return delete e[t],i}),!Object.keys){var x=!0,S=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],_=S.length;for(var $ in{toString:null})x=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var i in e)g(e,i)&&t.push(i);if(x)for(var n=0,r=_;r>n;n++){var o=S[n];g(e,o)&&t.push(o)}return t}}Date.now||(Date.now=function(){return(new Date).getTime()});var L=" \n\f\r \u2028\u2029";if(!String.prototype.trim||L.trim()){L="["+L+"]";var T=RegExp("^"+L+L+"*"),D=RegExp(L+L+"*$");String.prototype.trim=function(){return(this+"").replace(T,"").replace(D,"")}}var B=function(e){if(null==e)throw new TypeError("can't convert "+e+" to object");return Object(e)}});