aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
Diffstat (limited to 'js')
-rw-r--r--js/global.js75
-rwxr-xr-xjs/jquery/chili/css.js85
-rwxr-xr-xjs/jquery/chili/html.js80
-rwxr-xr-xjs/jquery/chili/jquery.chili-2.2.js704
-rwxr-xr-xjs/jquery/chili/js.js75
-rwxr-xr-xjs/jquery/chili/php-f.js142
-rwxr-xr-xjs/jquery/chili/php.js138
-rwxr-xr-xjs/jquery/chili/recipes.js364
-rw-r--r--js/jquery/jquery.tipsy.js104
-rw-r--r--js/less-1.0.41.min.js69
10 files changed, 1836 insertions, 0 deletions
diff --git a/js/global.js b/js/global.js
new file mode 100644
index 000000000..a934a3360
--- /dev/null
+++ b/js/global.js
@@ -0,0 +1,75 @@
+$(document).ready(function(){
+ // Get Heights
+ windowHeight = $(window).height();
+ documentHeight = $(document).height();
+ sidebarHeight = windowHeight - 40;
+ containerHeight = windowHeight - 40;
+
+ // Get Widths
+ windowWidth = $(window).width();
+ containerWidth = windowWidth - 200;
+
+ if (windowHeight < containerHeight) {
+
+ // Set Dimensions for default state (before resize)
+ $('div#sidebar').css({
+ height: sidebarHeight
+ });
+ $('div#container').css({
+ width: containerWidth,
+ height: containerHeight
+ });
+
+ } else {
+
+ // During resize, set widths
+ $(window).resize(function() {
+ console.log('Window Height: ' + $(window).height() + ', Sidebar Height:' + ($(window).height() - 40));
+
+ // Get Heights
+ windowHeight = $(window).height();
+ sidebarHeight = windowHeight - 40;
+ containerHeight = windowHeight - 40;
+
+ // Get Widths
+ windowWidth = $(window).width();
+ containerWidth = windowWidth - 200;
+
+ // Set Dimensions for default state (before resize)
+ $('div#sidebar').css({
+ height: sidebarHeight
+ });
+ $('div#container').css({
+ width: containerWidth,
+ height: containerHeight
+ });
+ });
+ // console.log('omgz window is less than container so... fuck.');
+ $('div#sidebar').css({
+ height: documentHeight - 40
+ });
+
+ }
+
+
+
+/*
+ // Toggle Calendars
+ $('div#sidebar ul li a').click(function() {
+ if ($(this).is('#toggleMonthView')) {
+ console.log('toggle month');
+ $(this).addClass('active');
+ $('#toggleListView').removeClass('active');
+ $('table#monthView').show();
+ $('table#listView').hide();
+ } else {
+ console.log('toggle list');
+ $(this).addClass('active');
+ $('#toggleMonthView').removeClass('active');
+ $('table#listView').show();
+ $('table#monthView').hide();
+ }
+ return false;
+ });
+*/
+});
diff --git a/js/jquery/chili/css.js b/js/jquery/chili/css.js
new file mode 100755
index 000000000..e86e88224
--- /dev/null
+++ b/js/jquery/chili/css.js
@@ -0,0 +1,85 @@
+/*
+===============================================================================
+Chili is the jQuery code highlighter plugin
+...............................................................................
+LICENSE: http://www.opensource.org/licenses/mit-license.php
+WEBSITE: http://noteslog.com/chili/
+
+ Copyright 2008 / Andrea Ercolino
+===============================================================================
+*/
+
+{
+ _name: 'css'
+ , _case: true
+ , _main: {
+ comment: {
+ _match: /\/\*[^*]*\*+(?:[^\/][^*]*\*+)*\//
+ , _style: "color: olive;"
+ }
+ , directive: {
+ _match: /@\w+/
+ , _style: "color: fuchsia;"
+ }
+ , url: {
+ _match: /\b(url\s*\()([^)]+)(\))/
+ , _replace: "<span class='url'>$1</span>$2<span class='url'>$3</span>"
+ , _style: "color: fuchsia;"
+ }
+ , block: {
+ _match: /\{([\w\W]*?)\}/
+ , _replace: function( all, pairs ) {
+ return '{' + this.x( pairs, '/definition' ) + '}';
+ }
+ }
+ , 'class': {
+ _match: /\.\w+/
+ , _style: "color: #CC0066;"
+ }
+ , id: {
+ _match: /#\w+/
+ , _style: "color: IndianRed;"
+ }
+ , pseudo: {
+ _match: /:\w+/
+ , _style: "color: #CC9900;"
+ }
+ , element: {
+ _match: /\w+/
+ , _style: "color: Purple;"
+ }
+ }
+ , definition: {
+ comment: {
+ _match: /\/\*[^*]*\*+(?:[^\/][^*]*\*+)*\//
+ }
+ , property: {
+ _match: /\b(?:zoom|z-index|writing-mode|word-wrap|word-spacing|word-break|width|widows|white-space|volume|voice-family|visibility|vertical-align|unicode-bidi|top|text-underline-position|text-transform|text-shadow|text-overflow|text-kashida-space|text-justify|text-indent|text-decoration|text-autospace|text-align-last|text-align|table-layout|stress|speech-rate|speak-punctuation|speak-numeral|speak-header|speak|size|scrollbar-track-color|scrollbar-shadow-color|scrollbar-highlight-color|scrollbar-face-color|scrollbar-dark-shadow-color|scrollbar-base-color|scrollbar-arrow-color|scrollbar-3d-light-color|ruby-position|ruby-overhang|ruby-align|right|richness|quotes|position|play-during|pitch-range|pitch|pause-before|pause-after|pause|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-Y|overflow-X|overflow|outline-width|outline-style|outline-color|outline|orphans|min-width|min-height|max-width|max-height|marks|marker-offset|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|line-break|letter-spacing|left|layout-grid-type|layout-grid-mode|layout-grid-line|layout-grid-char-spacing|layout-grid-char|layout-grid|layout-flow|layer-background-image|layer-background-color|include-source|ime-mode|height|font-weight|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-family|font|float|filter|empty-cells|elevation|display|direction|cursor|cue-before|cue-after|cue|counter-reset|counter-increment|content|color|clip|clear|caption-side|bottom|border-width|border-top-width|border-top-style|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-left-width|border-left-style|border-left-color|border-left|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-color|border-bottom|border|behavior|background-repeat|background-position-y|background-position-x|background-position|background-image|background-color|background-attachment|background|azimuth|accelerator)\s*:/
+ , _style: "color: #330066;"
+ }
+ , special: {
+ _match: /\b(?:-use-link-source|-set-link-source|-replace|-moz-user-select|-moz-user-modify|-moz-user-input|-moz-user-focus|-moz-outline-width|-moz-outline-style|-moz-outline-color|-moz-outline|-moz-opacity|-moz-border-top-colors|-moz-border-right-colors|-moz-border-radius-topright|-moz-border-radius-topleft|-moz-border-radius-bottomright|-moz-border-radius-bottomleft|-moz-border-radius|-moz-border-left-colors|-moz-border-bottom-colors|-moz-binding)\s*:/
+ , _style: "color: #330066; text-decoration: underline;"
+ }
+ , url: {
+ _match: /\b(url\s*\()([^)]+)(\))/
+ , _replace: "<span class='url'>$1</span>$2<span class='url'>$3</span>"
+ }
+ , value: {
+ _match: /\b(?:xx-small|xx-large|x-soft|x-small|x-slow|x-low|x-loud|x-large|x-high|x-fast|wider|wait|w-resize|visible|url|uppercase|upper-roman|upper-latin|upper-alpha|underline|ultra-expanded|ultra-condensed|tv|tty|transparent|top|thin|thick|text-top|text-bottom|table-row-group|table-row|table-header-group|table-footer-group|table-column-group|table-column|table-cell|table-caption|sw-resize|super|sub|status-bar|static|square|spell-out|speech|solid|soft|smaller|small-caption|small-caps|small|slower|slow|silent|show|separate|semi-expanded|semi-condensed|se-resize|scroll|screen|s-resize|run-in|rtl|rightwards|right-side|right|ridge|rgb|repeat-y|repeat-x|repeat|relative|projection|print|pre|portrait|pointer|overline|outside|outset|open-quote|once|oblique|nw-resize|nowrap|normal|none|no-repeat|no-open-quote|no-close-quote|ne-resize|narrower|n-resize|move|mix|middle|message-box|medium|marker|ltr|lowercase|lower-roman|lower-latin|lower-greek|lower-alpha|lower|low|loud|local|list-item|line-through|lighter|level|leftwards|left-side|left|larger|large|landscape|justify|italic|invert|inside|inset|inline-table|inline|icon|higher|high|hide|hidden|help|hebrew|handheld|groove|format|fixed|faster|fast|far-right|far-left|fantasy|extra-expanded|extra-condensed|expanded|embossed|embed|e-resize|double|dotted|disc|digits|default|decimal-leading-zero|decimal|dashed|cursive|crosshair|cross|crop|counters|counter|continuous|condensed|compact|collapse|code|close-quote|circle|center-right|center-left|center|caption|capitalize|braille|bottom|both|bolder|bold|block|blink|bidi-override|below|behind|baseline|avoid|auto|aural|attr|armenian|always|all|absolute|above)\b/
+ , _style: "color: #3366FF;"
+ }
+ , string: {
+ _match: /(?:\'[^\'\\\n]*(?:\\.[^\'\\\n]*)*\')|(?:\"[^\"\\\n]*(?:\\.[^\"\\\n]*)*\")/
+ , _style: "color: teal;"
+ }
+ , number: {
+ _match: /(?:\b[+-]?(?:\d*\.?\d+|\d+\.?\d*))(?:%|(?:(?:px|pt|em|)\b))/
+ , _style: "color: red;"
+ }
+ , color : {
+ _match: /(?:\#[a-fA-F0-9]{3,6})|\b(?:yellow|white|teal|silver|red|purple|olive|navy|maroon|lime|green|gray|fuchsia|blue|black|aqua|YellowGreen|Yellow|WhiteSmoke|White|Wheat|Violet|Turquoise|Tomato|Thistle|Teal|Tan|SteelBlue|SpringGreen|Snow|SlateGrey|SlateGray|SlateBlue|SkyBlue|Silver|Sienna|SeaShell|SeaGreen|SandyBrown|Salmon|SaddleBrown|RoyalBlue|RosyBrown|Red|Purple|PowderBlue|Plum|Pink|Peru|PeachPuff|PapayaWhip|PaleVioletRed|PaleTurquoise|PaleGreen|PaleGoldenRod|Orchid|OrangeRed|Orange|OliveDrab|Olive|OldLace|Navy|NavajoWhite|Moccasin|MistyRose|MintCream|MidnightBlue|MediumVioletRed|MediumTurquoise|MediumSpringGreen|MediumSlateBlue|MediumSeaGreen|MediumPurple|MediumOrchid|MediumBlue|MediumAquaMarine|Maroon|Magenta|Linen|LimeGreen|Lime|LightYellow|LightSteelBlue|LightSlateGrey|LightSlateGray|LightSkyBlue|LightSeaGreen|LightSalmon|LightPink|LightGrey|LightGreen|LightGray|LightGoldenRodYellow|LightCyan|LightCoral|LightBlue|LemonChiffon|LawnGreen|LavenderBlush|Lavender|Khaki|Ivory|Indigo|IndianRed|HotPink|HoneyDew|Grey|GreenYellow|Green|Gray|GoldenRod|Gold|GhostWhite|Gainsboro|Fuchsia|ForestGreen|FloralWhite|FireBrick|DodgerBlue|DimGrey|DimGray|DeepSkyBlue|DeepPink|Darkorange|DarkViolet|DarkTurquoise|DarkSlateGrey|DarkSlateGray|DarkSlateBlue|DarkSeaGreen|DarkSalmon|DarkRed|DarkOrchid|DarkOliveGreen|DarkMagenta|DarkKhaki|DarkGrey|DarkGreen|DarkGray|DarkGoldenRod|DarkCyan|DarkBlue|Cyan|Crimson|Cornsilk|CornflowerBlue|Coral|Chocolate|Chartreuse|CadetBlue|BurlyWood|Brown|BlueViolet|Blue|BlanchedAlmond|Black|Bisque|Beige|Azure|Aquamarine|Aqua|AntiqueWhite|AliceBlue)\b/
+ , _style: "color: green;"
+ }
+ }
+}
diff --git a/js/jquery/chili/html.js b/js/jquery/chili/html.js
new file mode 100755
index 000000000..69f43a86d
--- /dev/null
+++ b/js/jquery/chili/html.js
@@ -0,0 +1,80 @@
+/*
+===============================================================================
+Chili is the jQuery code highlighter plugin
+...............................................................................
+LICENSE: http://www.opensource.org/licenses/mit-license.php
+WEBSITE: http://noteslog.com/chili/
+
+ Copyright 2008 / Andrea Ercolino
+===============================================================================
+*/
+
+{
+ _name: 'html'
+ , _case: false
+ , _main: {
+ doctype: {
+ _match: /<!DOCTYPE\b[\w\W]*?>/
+ , _style: "color: #CC6600;"
+ }
+ , ie_style: {
+ _match: /(<!--\[[^\]]*\]>)([\w\W]*?)(<!\[[^\]]*\]-->)/
+ , _replace: function( all, open, content, close ) {
+ return "<span class='ie_style'>" + this.x( open ) + "</span>"
+ + this.x( content, '//style' )
+ + "<span class='ie_style'>" + this.x( close ) + "</span>";
+ }
+ , _style: "color: DarkSlateGray; font-weight: bold;"
+ }
+ , comment: {
+ _match: /<!--[\w\W]*?-->/
+ , _style: "color: #4040c2;"
+ }
+ , script: {
+ _match: /(<script\s+[^>]*>)([\w\W]*?)(<\/script\s*>)/
+ , _replace: function( all, open, content, close ) {
+ return this.x( open, '//tag_start' )
+ + this.x( content, 'js' )
+ + this.x( close, '//tag_end' );
+ }
+ }
+ , style: {
+ _match: /(<style\s+[^>]*>)([\w\W]*?)(<\/style\s*>)/
+ , _replace: function( all, open, content, close ) {
+ return this.x( open, '//tag_start' )
+ + this.x( content, 'css' )
+ + this.x( close, '//tag_end' );
+ }
+ }
+ // matches a starting tag of an element (with attrs)
+ // like "<div ... >" or "<img ... />"
+ , tag_start: {
+ _match: /(<\w+)((?:[?%]>|[\w\W])*?)(\/>|>)/
+ , _replace: function( all, open, content, close ) {
+ return "<span class='tag_start'>" + this.x( open ) + "</span>"
+ + this.x( content, '/tag_attrs' )
+ + "<span class='tag_start'>" + this.x( close ) + "</span>";
+ }
+ , _style: "color: navy; font-weight: bold;"
+ }
+ // matches an ending tag
+ // like "</div>"
+ , tag_end: {
+ _match: /<\/\w+\s*>|\/>/
+ , _style: "color: navy;"
+ }
+ , entity: {
+ _match: /&\w+?;/
+ , _style: "color: blue;"
+ }
+ }
+ , tag_attrs: {
+ // matches a name/value pair
+ attr: {
+ // before in $1, name in $2, between in $3, value in $4
+ _match: /(\W*?)([\w-]+)(\s*=\s*)((?:\'[^\']*(?:\\.[^\']*)*\')|(?:\"[^\"]*(?:\\.[^\"]*)*\"))/
+ , _replace: "$1<span class='attr_name'>$2</span>$3<span class='attr_value'>$4</span>"
+ , _style: { attr_name: "color: green;", attr_value: "color: maroon;" }
+ }
+ }
+}
diff --git a/js/jquery/chili/jquery.chili-2.2.js b/js/jquery/chili/jquery.chili-2.2.js
new file mode 100755
index 000000000..bb0e4abae
--- /dev/null
+++ b/js/jquery/chili/jquery.chili-2.2.js
@@ -0,0 +1,704 @@
+/*
+===============================================================================
+Chili is the jQuery code highlighter plugin
+...............................................................................
+LICENSE: http://www.opensource.org/licenses/mit-license.php
+WEBSITE: http://noteslog.com/chili/
+
+ Copyright 2008 / Andrea Ercolino
+===============================================================================
+*/
+
+
+( function($) {
+
+ChiliBook = { //implied global
+
+ version: "2.2" // 2008-07-06
+
+// options --------------------------------------------------------------------
+
+ , automatic: true
+ , automaticSelector: "pre"
+
+ , lineNumbers: !true
+
+ , codeLanguage: function( el ) {
+ var recipeName = $( el ).attr( "class" );
+ return recipeName ? recipeName : '';
+ }
+
+ , recipeLoading: true
+ , recipeFolder: "" // used like: recipeFolder + recipeName + '.js'
+
+ // IE and FF convert &#160; to "&nbsp;", Safari and Opera do not
+ , replaceSpace: "&#160;"
+ , replaceTab: "&#160;&#160;&#160;&#160;"
+ , replaceNewLine: "&#160;<br/>"
+
+ , selectionStyle: [ "position:absolute; z-index:3000; overflow:scroll;"
+ , "width:16em;"
+ , "height:9em;"
+ , "border:1px solid gray;"
+ , "padding:15px;"
+ , "background-color:yellow;"
+ ].join( ' ' )
+
+// ------------------------------------------------------------- end of options
+
+ , defaultReplacement: '<span class="$0">$$</span>' // TODO: make this an option again
+ , recipes: {} //repository
+ , queue: {} //registry
+
+ , unique: function() {
+ return (new Date()).valueOf();
+ }
+};
+
+
+
+$.fn.chili = function( options ) {
+ var book = $.extend( {}, ChiliBook, options || {} );
+
+ function cook( ingredients, recipe, blockName ) {
+
+ function prepareBlock( recipe, blockName ) {
+ var steps = [];
+ for( var stepName in recipe[ blockName ] ) {
+ steps.push( prepareStep( recipe, blockName, stepName ) );
+ }
+ return steps;
+ } // prepareBlock
+
+ function prepareStep( recipe, blockName, stepName ) {
+ var step = recipe[ blockName ][ stepName ];
+ var exp = ( typeof step._match == "string" ) ? step._match : step._match.source;
+ return {
+ recipe: recipe
+ , blockName: blockName
+ , stepName: stepName
+ , exp: "(" + exp + ")"
+ , length: 1 // add 1 to account for the newly added parentheses
+ + (exp // count number of submatches in here
+ .replace( /\\./g, "%" ) // disable any escaped character
+ .replace( /\[.*?\]/g, "%" ) // disable any character class
+ .match( /\((?!\?)/g ) // match any open parenthesis, not followed by a ?
+ || [] // make sure it is an empty array if there are no matches
+ ).length // get the number of matches
+ , replacement: step._replace ? step._replace : book.defaultReplacement
+ };
+ } // prepareStep
+
+ function knowHow( steps ) {
+ var prevLength = 1;
+ var exps = [];
+ for (var i = 0; i < steps.length; i++) {
+ var exp = steps[ i ].exp;
+ // adjust backreferences
+ exp = exp.replace( /\\\\|\\(\d+)/g, function( m, aNum ) {
+ return !aNum ? m : "\\" + ( prevLength + 1 + parseInt( aNum, 10 ) );
+ } );
+ exps.push( exp );
+ prevLength += steps[ i ].length;
+ }
+ var prolog = '((?:\\s|\\S)*?)';
+ var epilog = '((?:\\s|\\S)+)';
+ var source = '(?:' + exps.join( "|" ) + ')';
+ source = prolog + source + '|' + epilog;
+ return new RegExp( source, recipe._case ? "g" : "gi" );
+ } // knowHow
+
+ function escapeHTML( str ) {
+ return str.replace( /&/g, "&amp;" ).replace( /</g, "&lt;" );
+ } // escapeHTML
+
+ function replaceSpaces( str ) {
+ return str.replace( / +/g, function( spaces ) {
+ return spaces.replace( / /g, replaceSpace );
+ } );
+ } // replaceSpaces
+
+ function filter( str ) {
+ str = escapeHTML( str );
+ if( replaceSpace ) {
+ str = replaceSpaces( str );
+ }
+ return str;
+ } // filter
+
+ function applyRecipe( subject, recipe ) {
+ return cook( subject, recipe );
+ } // applyRecipe
+
+ function applyBlock( subject, recipe, blockName ) {
+ return cook( subject, recipe, blockName );
+ } // applyBlock
+
+ function applyStep( subject, recipe, blockName, stepName ) {
+ var replaceSpace = book.replaceSpace;
+
+ var step = prepareStep( recipe, blockName, stepName );
+ var steps = [step];
+
+ var perfect = subject.replace( knowHow( steps ), function() {
+ return chef.apply( { steps: steps }, arguments );
+ } );
+ return perfect;
+ } // applyStep
+
+ function applyModule( subject, module, context ) {
+ if( ! module ) {
+ return filter( subject );
+ }
+
+ var sub = module.split( '/' );
+ var recipeName = '';
+ var blockName = '';
+ var stepName = '';
+ switch( sub.length ) {
+ case 1:
+ recipeName = sub[0];
+ break;
+ case 2:
+ recipeName = sub[0]; blockName = sub[1];
+ break;
+ case 3:
+ recipeName = sub[0]; blockName = sub[1]; stepName = sub[2];
+ break;
+ default:
+ return filter( subject );
+ }
+
+ function getRecipe( recipeName ) {
+ var path = getPath( recipeName );
+ var recipe = book.recipes[ path ];
+ if( ! recipe ) {
+ throw {msg:"recipe not available"};
+ }
+ return recipe;
+ }
+
+ try {
+ var recipe;
+ if ( '' == stepName ) {
+ if ( '' == blockName ) {
+ if ( '' == recipeName ) {
+ //nothing to do
+ }
+ else { // ( '' != recipeName )
+ recipe = getRecipe( recipeName );
+ return applyRecipe( subject, recipe );
+ }
+ }
+ else { // ( '' != blockName )
+ if( '' == recipeName ) {
+ recipe = context.recipe;
+ }
+ else {
+ recipe = getRecipe( recipeName );
+ }
+ if( ! (blockName in recipe) ) {
+ return filter( subject );
+ }
+ return applyBlock( subject, recipe, blockName );
+ }
+ }
+ else { // ( '' != stepName )
+ if( '' == recipeName ) {
+ recipe = context.recipe;
+ }
+ else {
+ recipe = getRecipe( recipeName );
+ }
+ if( '' == blockName ) {
+ blockName = context.blockName;
+ }
+ if( ! (blockName in recipe) ) {
+ return filter( subject );
+ }
+ if( ! (stepName in recipe[blockName]) ) {
+ return filter( subject );
+ }
+ return applyStep( subject, recipe, blockName, stepName );
+ }
+ }
+ catch( e ) {
+ if (e.msg && e.msg == "recipe not available") {
+ var cue = 'chili_' + book.unique();
+ if( book.recipeLoading ) {
+ var path = getPath( recipeName );
+ if( ! book.queue[ path ] ) {
+ /* this is a new recipe to download */
+ try {
+ book.queue[ path ] = [ {cue: cue, subject: subject, module: module, context: context} ];
+ $.getJSON( path, function( recipeLoaded ) {
+ book.recipes[ path ] = recipeLoaded;
+ var q = book.queue[ path ];
+ for( var i = 0, iTop = q.length; i < iTop; i++ ) {
+ var replacement = applyModule( q[ i ].subject, q[ i ].module, q[ i ].context );
+ if( book.replaceTab ) {
+ replacement = replacement.replace( /\t/g, book.replaceTab );
+ }
+ if( book.replaceNewLine ) {
+ replacement = replacement.replace( /\n/g, book.replaceNewLine );
+ }
+ $( '#' + q[ i ].cue ).replaceWith( replacement );
+ }
+ } );
+ }
+ catch( recipeNotAvailable ) {
+ alert( "the recipe for '" + recipeName + "' was not found in '" + path + "'" );
+ }
+ }
+ else {
+ /* not a new recipe, so just enqueue this element */
+ book.queue[ path ].push( {cue: cue, subject: subject, module: module, context: context} );
+ }
+ return '<span id="' + cue + '">' + filter( subject ) + '</span>';
+ }
+ return filter( subject );
+ }
+ else {
+ return filter( subject );
+ }
+ }
+ } // applyModule
+
+ function addPrefix( prefix, replacement ) {
+ var aux = replacement.replace( /(<span\s+class\s*=\s*(["']))((?:(?!__)\w)+\2\s*>)/ig, "$1" + prefix + "__$3" );
+ return aux;
+ } // addPrefix
+
+ function chef() {
+ if (! arguments[ 0 ]) {
+ return '';
+ }
+ var steps = this.steps;
+ var i = 0; // iterate steps
+ var j = 2; // iterate chef's arguments
+ var prolog = arguments[ 1 ];
+ var epilog = arguments[ arguments.length - 3 ];
+ if (! epilog) {
+ var step;
+ while( step = steps[ i++ ] ) {
+ var aux = arguments; // this unmasks chef's arguments inside the next function
+ if( aux[ j ] ) {
+ var replacement = '';
+ if( $.isFunction( step.replacement ) ) {
+ var matches = []; //Array.slice.call( aux, j, step.length );
+ for (var k = 0, kTop = step.length; k < kTop; k++) {
+ matches.push( aux[ j + k ] );
+ }
+ matches.push( aux[ aux.length - 2 ] );
+ matches.push( aux[ aux.length - 1 ] );
+ replacement = step.replacement
+ .apply( {
+ x: function() {
+ var subject = arguments[0];
+ var module = arguments[1];
+ var context = {
+ recipe: step.recipe
+ , blockName: step.blockName
+ };
+ return applyModule( subject, module, context );
+ }
+ }, matches );
+ }
+ else { //we expect step.replacement to be a string
+ replacement = step.replacement
+ .replace( /(\\\$)|(?:\$\$)|(?:\$(\d+))/g, function( m, escaped, K ) {
+ if( escaped ) { /* \$ */
+ return "$";
+ }
+ else if( !K ) { /* $$ */
+ return filter( aux[ j ] );
+ }
+ else if( K == "0" ) { /* $0 */
+ return step.stepName;
+ }
+ else { /* $K */
+ return filter( aux[ j + parseInt( K, 10 ) ] );
+ }
+ } );
+ }
+ replacement = addPrefix( step.recipe._name, replacement );
+ return filter( prolog ) + replacement;
+ }
+ else {
+ j+= step.length;
+ }
+ }
+ }
+ else {
+ return filter( epilog );
+ }
+ } // chef
+
+ if( ! blockName ) {
+ blockName = '_main';
+ checkSpices( recipe );
+ }
+ if( ! (blockName in recipe) ) {
+ return filter( ingredients );
+ }
+ var replaceSpace = book.replaceSpace;
+ var steps = prepareBlock( recipe, blockName );
+ var kh = knowHow( steps );
+ var perfect = ingredients.replace( kh, function() {
+ return chef.apply( { steps: steps }, arguments );
+ } );
+ return perfect;
+
+ } // cook
+
+ function loadStylesheetInline( sourceCode ) {
+ if( document.createElement ) {
+ var e = document.createElement( "style" );
+ e.type = "text/css";
+ if( e.styleSheet ) { // IE
+ e.styleSheet.cssText = sourceCode;
+ }
+ else {
+ var t = document.createTextNode( sourceCode );
+ e.appendChild( t );
+ }
+ document.getElementsByTagName( "head" )[0].appendChild( e );
+ }
+ } // loadStylesheetInline
+
+ function checkSpices( recipe ) {
+ var name = recipe._name;
+ if( ! book.queue[ name ] ) {
+
+ var content = ['/* Chili -- ' + name + ' */'];
+ for (var blockName in recipe) {
+ if( blockName.search( /^_(?!main\b)/ ) < 0 ) {
+ for (var stepName in recipe[ blockName ]) {
+ var step = recipe[ blockName ][ stepName ];
+ if( '_style' in step ) {
+ if( step[ '_style' ].constructor == String ) {
+ content.push( '.' + name + '__' + stepName + ' { ' + step[ '_style' ] + ' }' );
+ }
+ else {
+ for (var className in step[ '_style' ]) {
+ content.push( '.' + name + '__' + className + ' { ' + step[ '_style' ][ className ] + ' }' );
+ }
+ }
+ }
+ }
+ }
+ }
+ content = content.join('\n');
+
+ loadStylesheetInline( content );
+
+ book.queue[ name ] = true;
+ }
+ } // checkSpices
+
+ function askDish( el ) {
+ var recipeName = book.codeLanguage( el );
+ if( '' != recipeName ) {
+ var path = getPath( recipeName );
+ if( book.recipeLoading ) {
+ /* dynamic setups come here */
+ if( ! book.queue[ path ] ) {
+ /* this is a new recipe to download */
+ try {
+ book.queue[ path ] = [ el ];
+ $.getJSON( path, function( recipeLoaded ) {
+ book.recipes[ path ] = recipeLoaded;
+ var q = book.queue[ path ];
+ for( var i = 0, iTop = q.length; i < iTop; i++ ) {
+ makeDish( q[ i ], path );
+ }
+ } );
+ }
+ catch( recipeNotAvailable ) {
+ alert( "the recipe for '" + recipeName + "' was not found in '" + path + "'" );
+ }
+ }
+ else {
+ /* not a new recipe, so just enqueue this element */
+ book.queue[ path ].push( el );
+ }
+ /* a recipe could have been already downloaded */
+ makeDish( el, path );
+ }
+ else {
+ /* static setups come here */
+ makeDish( el, path );
+ }
+ }
+ } // askDish
+
+ function makeDish( el, recipePath ) {
+ var recipe = book.recipes[ recipePath ];
+ if( ! recipe ) {
+ return;
+ }
+ var $el = $( el );
+ var ingredients = $el.text();
+ if( ! ingredients ) {
+ return;
+ }
+
+ //fix for msie: \r (13) is used instead of \n (10)
+ //fix for opera: \r\n is used instead of \n
+ ingredients = ingredients.replace(/\r\n?/g, "\n");
+
+ //reverse fix for safari: msie, mozilla and opera render the initial \n
+ if( $el.parent().is('pre') ) {
+ if( ! $.browser.safari ) {
+ ingredients = ingredients.replace(/^\n/g, "");
+ }
+ }
+
+ var dish = cook( ingredients, recipe ); // all happens here
+
+ if( book.replaceTab ) {
+ dish = dish.replace( /\t/g, book.replaceTab );
+ }
+ if( book.replaceNewLine ) {
+ dish = dish.replace( /\n/g, book.replaceNewLine );
+ }
+
+ el.innerHTML = dish; //much faster than $el.html( dish );
+ //tried also the function replaceHtml from http://blog.stevenlevithan.com/archives/faster-than-innerhtml
+ //but it was not faster nor without sideffects (it was not possible to count spans into el)
+
+ //opera and safari select PRE text correctly
+ if( $.browser.msie || $.browser.mozilla ) {
+ enableSelectionHelper( el );
+ }
+
+ var $that = $el.parent();
+ var classes = $that.attr( 'class' );
+ var ln = /ln-(\d+)-([\w][\w\-]*)|ln-(\d+)|ln-/.exec( classes );
+ if( ln ) {
+ addLineNumbers( el );
+ var start = 0;
+ if( ln[1] ) {
+ start = parseInt( ln[1], 10 );
+ var $pieces = $( '.ln-' + ln[1] + '-' + ln[2] );
+ var pos = $pieces.index( $that[0] );
+ $pieces.slice( 0, pos ).each( function() {
+ start += $( this ).find( 'li' ).length;
+ } );
+ }
+ else if( ln[3] ) {
+ start = parseInt( ln[3], 10 );
+ }
+ else {
+ start = 1;
+ }
+ $el.find( 'ol' )[0].start = start;
+ $('body').width( $('body').width() - 1 ).width( $('body').width() + 1 );
+ }
+ else if( book.lineNumbers ) {
+ addLineNumbers( el );
+ }
+
+ } // makeDish
+
+ function enableSelectionHelper( el ) {
+ var element = null;
+ $( el )
+ .parents()
+ .filter( "pre" )
+ .bind( "mousedown", function() {
+ element = this;
+ if( $.browser.msie ) {
+ document.selection.empty();
+ }
+ else {
+ window.getSelection().removeAllRanges();
+ }
+ } )
+ .bind( "mouseup", function( event ) {
+ if( element && (element == this) ) {
+ element = null;
+ var selected = '';
+ if( $.browser.msie ) {
+ selected = document.selection.createRange().htmlText;
+ if( '' == selected ) {
+ return;
+ }
+ selected = preserveNewLines( selected );
+ var container_tag = '<textarea style="STYLE">';
+ }
+ else {
+ selected = window.getSelection().toString(); //opera doesn't select new lines
+ if( '' == selected ) {
+ return;
+ }
+ selected = selected
+ .replace( /\r/g, '' )
+ .replace( /^# ?/g, '' )
+ .replace( /\n# ?/g, '\n' )
+ ;
+ var container_tag = '<pre style="STYLE">';
+ }
+ var $container = $( container_tag.replace( /\bSTYLE\b/, ChiliBook.selectionStyle ) )
+ .appendTo( 'body' )
+ .text( selected )
+ .attr( 'id', 'chili_selection' )
+ .click( function() { $(this).remove(); } )
+ ;
+ var top = event.pageY - Math.round( $container.height() / 2 ) + "px";
+ var left = event.pageX - Math.round( $container.width() / 2 ) + "px";
+ $container.css( { top: top, left: left } );
+ if( $.browser.msie ) {
+// window.clipboardData.setData( 'Text', selected ); //I couldn't find anything similar for Mozilla
+ $container[0].focus();
+ $container[0].select();
+ }
+ else {
+ var s = window.getSelection();
+ s.removeAllRanges();
+ var r = document.createRange();
+ r.selectNodeContents( $container[0] );
+ s.addRange( r );
+ }
+ }
+ } )
+ ;
+ } // enableSelectionHelper
+
+ function getPath( recipeName ) {
+ return book.recipeFolder + recipeName + ".js";
+ } // getPath
+
+ function getSelectedText() {
+ var text = '';
+ if( $.browser.msie ) {
+ text = document.selection.createRange().htmlText;
+ }
+ else {
+ text = window.getSelection().toString();
+ }
+ return text;
+ } // getSelectedText
+
+ function preserveNewLines( html ) {
+ do {
+ var newline_flag = ChiliBook.unique();
+ }
+ while( html.indexOf( newline_flag ) > -1 );
+ var text = '';
+ if (/<br/i.test(html) || /<li/i.test(html)) {
+ if (/<br/i.test(html)) {
+ html = html.replace( /\<br[^>]*?\>/ig, newline_flag );
+ }
+ else if (/<li/i.test(html)) {
+ html = html.replace( /<ol[^>]*?>|<\/ol>|<li[^>]*?>/ig, '' ).replace( /<\/li>/ig, newline_flag );
+ }
+ var el = $( '<pre>' ).appendTo( 'body' ).hide()[0];
+ el.innerHTML = html;
+ text = $( el ).text().replace( new RegExp( newline_flag, "g" ), '\r\n' );
+ $( el ).remove();
+ }
+ return text;
+ } // preserveNewLines
+
+ function addLineNumbers( el ) {
+
+ function makeListItem1( not_last_line, not_last, last, open ) {
+ var close = open ? '</span>' : '';
+ var aux = '';
+ if( not_last_line ) {
+ aux = '<li>' + open + not_last + close + '</li>';
+ }
+ else if( last ) {
+ aux = '<li>' + open + last + close + '</li>';
+ }
+ return aux;
+ } // makeListItem1
+
+ function makeListItem2( not_last_line, not_last, last, prev_li ) {
+ var aux = '';
+ if( prev_li ) {
+ aux = prev_li;
+ }
+ else {
+ aux = makeListItem1( not_last_line, not_last, last, '' )
+ }
+ return aux;
+ } // makeListItem2
+
+ var html = $( el ).html();
+ var br = /<br>/.test(html) ? '<br>' : '<BR>';
+ var empty_line = '<li>' + book.replaceSpace + '</li>';
+ var list_items = html
+ //extract newlines at the beginning of a span
+ .replace( /(<span [^>]+>)((?:(?:&nbsp;|\xA0)<br>)+)(.*?)(<\/span>)/ig, '$2$1$3$4' ) // I don't know why <span .*?> does not work here
+ //transform newlines inside of a span
+ .replace( /(.*?)(<span .*?>)(.*?)(?:<\/span>(?:&nbsp;|\xA0)<br>|<\/span>)/ig, // but here it does
+ function( all, before, open, content ) {
+ if (/<br>/i.test(content)) {
+ var pieces = before.split( br );
+ var lastPiece = pieces.pop();
+ before = pieces.join( br );
+ var aux = (before ? before + br : '') //+ replace1( lastPiece + content, open );
+ + (lastPiece + content).replace( /((.*?)(?:&nbsp;|\xA0)<br>)|(.*)/ig,
+ function( tmp, not_last_line, not_last, last ) {
+ var aux2 = makeListItem1( not_last_line, not_last, last, open );
+ return aux2;
+ }
+ );
+ return aux;
+ }
+ else {
+ return all;
+ }
+ }
+ )
+ //transform newlines outside of a span
+ .replace( /(<li>.*?<\/li>)|((.*?)(?:&nbsp;|\xA0)<br>)|(.+)/ig,
+ function( tmp, prev_li, not_last_line, not_last, last ) {
+ var aux2 = makeListItem2( not_last_line, not_last, last, prev_li );
+ return aux2;
+ }
+ )
+ //fix empty lines for Opera
+ .replace( /<li><\/li>/ig, empty_line )
+ ;
+
+ el.innerHTML = '<ol>' + list_items + '</ol>';
+ } // addLineNumbers
+
+ function revealChars( tmp ) {
+ return $
+ .map( tmp.split(''),
+ function(n, i) {
+ return ' ' + n + ' ' + n.charCodeAt( 0 ) + ' ';
+ } )
+ .join(' ');
+ } // revealChars
+
+//-----------------------------------------------------------------------------
+// the coloring starts here
+ this
+ .each( function() {
+ var $this = $( this );
+ $this.trigger( 'chili.before_coloring' );
+ askDish( this );
+ $this.trigger( 'chili.after_coloring' );
+ } );
+
+ return this;
+//-----------------------------------------------------------------------------
+};
+
+
+
+//main
+$( function() {
+
+ if( ChiliBook.automatic ) {
+ $( ChiliBook.automaticSelector ).chili();
+ }
+
+} );
+
+} ) ( jQuery );
diff --git a/js/jquery/chili/js.js b/js/jquery/chili/js.js
new file mode 100755
index 000000000..31baf6565
--- /dev/null
+++ b/js/jquery/chili/js.js
@@ -0,0 +1,75 @@
+/*
+===============================================================================
+Chili is the jQuery code highlighter plugin
+...............................................................................
+LICENSE: http://www.opensource.org/licenses/mit-license.php
+WEBSITE: http://noteslog.com/chili/
+
+ Copyright 2008 / Andrea Ercolino
+===============================================================================
+*/
+
+{
+ _name: 'js'
+ , _case: true
+ , _main: {
+ ml_comment: {
+ _match: /\/\*[^*]*\*+(?:[^\/][^*]*\*+)*\//
+ , _style: 'color: gray;'
+ }
+ , sl_comment: {
+ _match: /\/\/.*/
+ , _style: 'color: green;'
+ }
+ , string: {
+ _match: /(?:\'[^\'\\\n]*(?:\\.[^\'\\\n]*)*\')|(?:\"[^\"\\\n]*(?:\\.[^\"\\\n]*)*\")/
+ , _style: 'color: teal;'
+ }
+ , num: {
+ _match: /\b[+-]?(?:\d*\.?\d+|\d+\.?\d*)(?:[eE][+-]?\d+)?\b/
+ , _style: 'color: red;'
+ }
+ , reg_not: { //this prevents "a / b / c" to be interpreted as a reg_exp
+ _match: /(?:\w+\s*)\/[^\/\\\n]*(?:\\.[^\/\\\n]*)*\/[gim]*(?:\s*\w+)/
+ , _replace: function( all ) {
+ return this.x( all, '//num' );
+ }
+ }
+ , reg_exp: {
+ _match: /\/[^\/\\\n]*(?:\\.[^\/\\\n]*)*\/[gim]*/
+ , _style: 'color: maroon;'
+ }
+ , brace: {
+ _match: /[\{\}]/
+ , _style: 'color: red; font-weight: bold;'
+ }
+ , statement: {
+ _match: /\b(with|while|var|try|throw|switch|return|if|for|finally|else|do|default|continue|const|catch|case|break)\b/
+ , _style: 'color: navy; font-weight: bold;'
+ }
+ , error: {
+ _match: /\b(URIError|TypeError|SyntaxError|ReferenceError|RangeError|EvalError|Error)\b/
+ , _style: 'color: Coral;'
+ }
+ , object: {
+ _match: /\b(String|RegExp|Object|Number|Math|Function|Date|Boolean|Array)\b/
+ , _style: 'color: DeepPink;'
+ }
+ , property: {
+ _match: /\b(undefined|arguments|NaN|Infinity)\b/
+ , _style: 'color: Purple; font-weight: bold;'
+ }
+ , 'function': {
+ _match: /\b(parseInt|parseFloat|isNaN|isFinite|eval|encodeURIComponent|encodeURI|decodeURIComponent|decodeURI)\b/
+ , _style: 'color: olive;'
+ }
+ , operator: {
+ _match: /\b(void|typeof|this|new|instanceof|in|function|delete)\b/
+ , _style: 'color: RoyalBlue; font-weight: bold;'
+ }
+ , liveconnect: {
+ _match: /\b(sun|netscape|java|Packages|JavaPackage|JavaObject|JavaClass|JavaArray|JSObject|JSException)\b/
+ , _style: 'text-decoration: overline;'
+ }
+ }
+}
diff --git a/js/jquery/chili/php-f.js b/js/jquery/chili/php-f.js
new file mode 100755
index 000000000..2b06011e2
--- /dev/null
+++ b/js/jquery/chili/php-f.js
@@ -0,0 +1,142 @@
+/*
+===============================================================================
+Chili is the jQuery code highlighter plugin
+...............................................................................
+LICENSE: http://www.opensource.org/licenses/mit-license.php
+WEBSITE: http://noteslog.com/chili/
+
+ Copyright 2008 / Andrea Ercolino
+===============================================================================
+*/
+
+/* ----------------------------------------------------------------------------
+ * this recipe uses a little trick for highlighting php code
+ * 1: replace each php snippet with a placeholder
+ * 2: highlight html without php and php snippets apart
+ * 3: replace each placeholder with its highlighted php snippet
+ *
+ * the trick is not perfect only if the html without php is broken
+ * however, in such a case many highlighters get fooled but Chili does not
+ *
+ * ---
+ * this recipe has been adapted for working with Safari
+ * in fact, Safari cannot match more than 101236 characters with a lazy star
+ * --------------------------------------------------------------------------*/
+{
+ _name: "php"
+ , _case: true
+ , _main: {
+ all: {
+ _match: /[\w\W]*/
+ , _replace: function( all ) {
+ var placeholder = String.fromCharCode(0);
+ var blocks = [];
+ var that = this;
+ var no_php_1 = all.replace( /<\?[^?]*\?+(?:[^>][^?]*\?+)*>/g, function( block ) {
+ blocks.push( that.x( block, '/block/php_1' ) );
+ return placeholder;
+ } );
+ var no_php_2 = no_php_1.replace( /^[^?]*\?+(?:[^>][^?]*\?+)*>|<\?[\w\W]*$/g, function( block ) {
+ blocks.push( that.x( block, '/block/php_2' ) );
+ return placeholder;
+ } );
+ if( blocks.length ) {
+ var html = this.x( no_php_2, 'html' );
+ var count = 0;
+ return html.replace( new RegExp( placeholder, "g" ), function() {
+ return blocks[ count++ ];
+ } );
+ }
+ else {
+ return this.x( all, '/php' );
+ }
+ }
+ }
+ }
+ , block: {
+ php_1: { // --- <? +++ ?> ---
+ _match: /(<\?(?:php\b)?)([^?]*\?+(?:[^>][^?]*\?+)*>)/
+ , _replace: function( all, open, content ) {
+ return "<span class='start'>" + this.x( open ) + "</span>"
+ + this.x( content.replace( /\?>$/, '' ), '/php' )
+ + "<span class='end'>" + this.x( '?>' ) + "</span>";
+ }
+ , _style: {
+ start: "color: red; font-weight: bold"
+ , end: "color: red;"
+ }
+ }
+ , php_2: { // +++ ?> --- <? +++
+ _match: /([^?]*\?+(?:[^>][^?]*\?+)*>)|(<\?(?:php\b)?)([\w\W]*)/
+ , _replace: function( all, content, open2, content2 ) {
+ if( open2 ) {
+ return "<span class='start'>" + this.x( open2 ) + "</span>"
+ + this.x( content2, '/php' );
+ }
+ else {
+ return this.x( content.replace( /\?>$/, '' ), '/php' )
+ + "<span class='end'>" + this.x( '?>' ) + "</span>";
+ }
+ }
+ , _style: {
+ start: "color: red; font-weight: bold"
+ , end: "color: red;"
+ }
+ }
+ }
+ , php: {
+ mlcom: {
+ _match: /\/\*[^*]*\*+([^\/][^*]*\*+)*\//
+ , _style: "color: gray;"
+ }
+ , com: {
+ _match: /(?:\/\/.*)|(?:[^\\]\#.*)/
+ , _style: "color: green;"
+ }
+ , string1: {
+ _match: /\'[^\'\\]*(?:\\.[^\'\\]*)*\'/
+ , _style: "color: purple;"
+ }
+ , string2: {
+ _match: /\"[^\"\\]*(?:\\.[^\"\\]*)*\"/
+ , _style: "color: fuchsia;"
+ }
+ , value: {
+ _match: /\b(?:[Nn][Uu][Ll][Ll]|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])\b/
+ , _style: "color: gray; font-weight: bold;"
+ }
+ , number: {
+ _match: /\b[+-]?(\d*\.?\d+|\d+\.?\d*)([eE][+-]?\d+)?\b/
+ , _style: "color: red;"
+ }
+ , const1: {
+ _match: /\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\b/
+ , _style: "color: red;"
+ }
+ , const2: {
+ _match: /\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR))\b/
+ , _style: "color: red;"
+ }
+ , global: {
+ _match: /(?:\$GLOBALS|\$_COOKIE|\$_ENV|\$_FILES|\$_GET|\$_POST|\$_REQUEST|\$_SERVER|\$_SESSION|\$php_errormsg)\b/
+ , _style: "color: red;"
+ }
+ , keyword: {
+ _match: /\b(?:__CLASS__|__FILE__|__FUNCTION__|__LINE__|__METHOD__|abstract|and|array|as|break|case|catch|cfunction|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exception|exit|extends|extends|final|for|foreach|function|global|if|implements|include|include_once|interface|isset|list|new|old_function|or|php_user_filter|print|private|protected|public|require|require_once|return|static|switch|this|throw|try|unset|use|var|while|xor)\b/
+ , _style: "color: navy; font-weight: bold;"
+ }
+ , variable: {
+ _match: /\$(\w+)/
+ , _replace: '<span class="keyword">$</span><span class="variable">$1</span>'
+ , _style: "color: #4040c2;"
+ }
+ , heredoc: {
+ _match: /(\<\<\<\s*)(\w+)((?:(?!\2).*\n)+)(\2)\b/
+ , _replace: '<span class="keyword">$1</span><span class="string1">$2</span><span class="string2">$3</span><span class="string1">$4</span>'
+ }
+ , 'function': {
+ _match: "\\b(?:a(?:bs|cos(?:h|)|dd(?:cslashes|slashes)|ggregat(?:e(?:_(?:info|methods(?:_by_(?:list|regexp)|)|properties(?:_by_(?:list|regexp)|))|)|ion_info)|p(?:ache_(?:child_terminate|get(?:_(?:modules|version)|env)|lookup_uri|note|re(?:quest_headers|s(?:et_timeout|ponse_headers))|setenv)|d_(?:breakpoint|c(?:allstack|lunk|ontinue|roak)|dump_(?:function_table|persistent_resources|regular_resources)|echo|get_active_symbols|set_(?:pprof_trace|s(?:ession(?:_trace|)|ocket_session_trace))))|r(?:ray_(?:c(?:h(?:ange_key_case|unk)|o(?:mbine|unt_values))|diff(?:_(?:assoc|key|u(?:assoc|key))|)|f(?:il(?:l|ter)|lip)|intersect(?:_(?:assoc|key|u(?:assoc|key))|)|key(?:_exists|s)|m(?:ap|erge(?:_recursive|)|ultisort)|p(?:ad|op|ush)|r(?:and|e(?:duce|verse))|s(?:earch|hift|lice|plice|um)|u(?:diff(?:_(?:assoc|uassoc)|)|intersect(?:_(?:assoc|uassoc)|)|n(?:ique|shift))|values|walk(?:_recursive|))|sort)|s(?:cii2ebcdic|in(?:h|)|ort|pell_(?:check(?:_raw|)|new|suggest)|sert(?:_options|))|tan(?:2|h|))|b(?:ase(?:64_(?:decode|encode)|_convert|name)|c(?:add|comp|div|m(?:od|ul)|ompile(?:_write_file|r_(?:load(?:_exe|)|parse_class|read|write_(?:c(?:lass|onstant)|exe_footer|f(?:ooter|unction(?:s_from_file|))|header)))|pow(?:mod|)|s(?:cale|qrt|ub))|in(?:2hex|d(?:_textdomain_codeset|ec|textdomain))|z(?:c(?:lose|ompress)|decompress|err(?:no|or|str)|flush|open|read|write))|c(?:al(?:_(?:days_in_month|from_jd|info|to_jd)|l_user_(?:func(?:_array|)|method(?:_array|)))|cvs_(?:a(?:dd|uth)|co(?:mmand|unt)|d(?:elete|one)|init|lookup|new|re(?:port|turn|verse)|s(?:ale|tatus)|textvalue|void)|eil|h(?:dir|eckd(?:ate|nsrr)|grp|mod|o(?:p|wn)|r(?:oot|)|unk_split)|l(?:ass(?:_(?:exists|implements|parents)|kit_(?:import|method_(?:add|copy|re(?:define|move|name))))|earstatcache|ose(?:dir|log))|o(?:m(?:_(?:addref|create_guid|event_sink|get(?:_active_object|)|i(?:nvoke|senum)|load(?:_typelib|)|message_pump|pr(?:int_typeinfo|op(?:get|put|set))|release|set)|pact|)|n(?:nection_(?:aborted|status|timeout)|stant|vert_(?:cyr_string|uu(?:decode|encode)))|py|s(?:h|)|unt(?:_chars|))|pdf_(?:a(?:dd_(?:annotation|outline)|rc)|begin_text|c(?:ircle|l(?:ip|ose(?:path(?:_(?:fill_stroke|stroke)|)|))|ontinue_text|urveto)|end_text|fi(?:ll(?:_stroke|)|nalize(?:_page|))|global_set_document_limits|import_jpeg|lineto|moveto|newpath|o(?:pen|utput_buffer)|p(?:age_init|lace_inline_image)|r(?:e(?:ct|store)|lineto|moveto|otate(?:_text|))|s(?:ave(?:_to_file|)|cale|et(?:_(?:action_url|c(?:har_spacing|reator|urrent_page)|font(?:_(?:directories|map_file)|)|horiz_scaling|keywords|leading|page_animation|subject|t(?:ext_(?:matrix|pos|r(?:endering|ise))|itle)|viewer_preferences|word_spacing)|dash|flat|gray(?:_(?:fill|stroke)|)|line(?:cap|join|width)|miterlimit|rgbcolor(?:_(?:fill|stroke)|))|how(?:_xy|)|tr(?:ingwidth|oke))|t(?:ext|ranslate))|r(?:ack_(?:c(?:heck|losedict)|getlastmessage|opendict)|c32|eate_function|ypt)|type_(?:al(?:num|pha)|cntrl|digit|graph|lower|p(?:rint|unct)|space|upper|xdigit)|ur(?:l_(?:c(?:lose|opy_handle)|e(?:rr(?:no|or)|xec)|getinfo|init|multi_(?:add_handle|close|exec|getcontent|in(?:fo_read|it)|remove_handle|select)|setopt|version)|rent)|y(?:bercash_(?:base64_(?:decode|encode)|decr|encr)|rus_(?:authenticate|bind|c(?:lose|onnect)|query|unbind)))|d(?:ate(?:_sun(?:rise|set)|)|b(?:a(?:_(?:close|delete|exists|f(?:etch|irstkey)|handlers|insert|key_split|list|nextkey|op(?:en|timize)|popen|replace|sync)|se_(?:add_record|c(?:lose|reate)|delete_record|get_(?:header_info|record(?:_with_names|))|num(?:fields|records)|open|pack|replace_record))|list|m(?:close|delete|exists|f(?:etch|irstkey)|insert|nextkey|open|replace)|plus_(?:a(?:dd|ql)|c(?:hdir|lose|urr)|err(?:code|no)|f(?:i(?:nd|rst)|lush|ree(?:alllocks|lock|rlocks))|get(?:lock|unique)|info|l(?:ast|ockrel)|next|open|prev|r(?:c(?:hperm|r(?:eate|t(?:exact|like)))|es(?:olve|torepos)|keys|open|query|rename|secindex|unlink|zap)|s(?:avepos|etindex(?:bynumber|)|ql)|t(?:cl|remove)|u(?:n(?:do(?:prepare|)|lockrel|select)|pdate)|x(?:lockrel|unlockrel))|x_(?:c(?:lose|o(?:mpare|nnect))|e(?:rror|scape_string)|fetch_row|query|sort))|c(?:gettext|ngettext)|e(?:aggregate|bug(?:_(?:backtrace|print_backtrace|zval_dump)|ger_o(?:ff|n))|c(?:bin|hex|oct)|fine(?:_syslog_variables|d|)|g2rad|lete)|gettext|i(?:o_(?:close|fcntl|open|read|s(?:eek|tat)|t(?:csetattr|runcate)|write)|r(?:name|)|sk(?:_(?:free_space|total_space)|freespace))|l|n(?:gettext|s_(?:check_record|get_(?:mx|record)))|o(?:m(?:_import_simplexml|xml_(?:new_doc|open_(?:file|mem)|version|x(?:mltree|slt_stylesheet(?:_(?:doc|file)|))))|tnet(?:_load|)|ubleval))|e(?:a(?:ch|ster_da(?:te|ys))|bcdic2ascii|nd|r(?:eg(?:_replace|i(?:_replace|)|)|ror_(?:log|reporting))|scapeshell(?:arg|cmd)|x(?:ec|if_(?:imagetype|read_data|t(?:agname|humbnail))|p(?:lode|m1|)|t(?:ension_loaded|ract))|zmlm_hash)|f(?:am_(?:c(?:ancel_monitor|lose)|monitor_(?:collection|directory|file)|next_event|open|pending|resume_monitor|suspend_monitor)|bsql_(?:a(?:ffected_rows|utocommit)|blob_size|c(?:hange_user|lo(?:b_size|se)|o(?:mmit|nnect)|reate_(?:blob|clob|db))|d(?:ata(?:_seek|base(?:_password|))|b_(?:query|status)|rop_db)|err(?:no|or)|f(?:etch_(?:a(?:rray|ssoc)|field|lengths|object|row)|ield_(?:flags|len|name|seek|t(?:able|ype))|ree_result)|get_autostart_info|hostname|insert_id|list_(?:dbs|fields|tables)|n(?:ext_result|um_(?:fields|rows))|p(?:assword|connect)|query|r(?:e(?:ad_(?:blob|clob)|sult)|ollback)|s(?:e(?:lect_db|t_(?:lob_mode|password|transaction))|t(?:art_db|op_db))|tablename|username|warnings)|close|df_(?:add_(?:doc_javascript|template)|c(?:lose|reate)|e(?:num_values|rr(?:no|or))|get_(?:a(?:p|ttachment)|encoding|f(?:ile|lags)|opt|status|v(?:alue|ersion))|header|next_field_name|open(?:_string|)|remove_item|s(?:ave(?:_string|)|et_(?:ap|encoding|f(?:ile|lags)|javascript_action|o(?:n_import_javascript|pt)|s(?:tatus|ubmit_form_action)|target_frame|v(?:alue|ersion))))|eof|flush|get(?:c(?:sv|)|s(?:s|))|ile(?:_(?:exists|get_contents|put_contents)|atime|ctime|group|inode|mtime|owner|p(?:erms|ro(?:_(?:field(?:count|name|type|width)|r(?:etrieve|owcount))|))|size|type|)|l(?:o(?:atval|ck|or)|ush)|mod|nmatch|open|p(?:assthru|rintf|ut(?:csv|s))|r(?:e(?:ad|nchtojd)|ibidi_log2vis)|s(?:canf|eek|ockopen|tat)|t(?:ell|ok|p_(?:alloc|c(?:dup|h(?:dir|mod)|lose|onnect)|delete|exec|f(?:get|put)|get(?:_option|)|login|m(?:dtm|kdir)|n(?:b_(?:continue|f(?:get|put)|get|put)|list)|p(?:asv|ut|wd)|quit|r(?:aw(?:list|)|ename|mdir)|s(?:et_option|i(?:te|ze)|sl_connect|ystype))|runcate)|unc(?:_(?:get_arg(?:s|)|num_args)|tion_exists)|write)|g(?:d_info|et(?:_(?:browser|c(?:fg_var|lass(?:_(?:methods|vars)|)|urrent_user)|de(?:clared_(?:classes|interfaces)|fined_(?:constants|functions|vars))|extension_funcs|h(?:eaders|tml_translation_table)|include(?:_path|d_files)|loaded_extensions|m(?:agic_quotes_(?:gpc|runtime)|eta_tags)|object_vars|parent_class|re(?:quired_files|source_type))|allheaders|cwd|date|env|hostby(?:addr|name(?:l|))|imagesize|lastmod|m(?:xrr|y(?:gid|inode|pid|uid))|opt|protobyn(?:ame|umber)|r(?:andmax|usage)|servby(?:name|port)|t(?:ext|imeofday|ype))|lob|m(?:date|mktime|p_(?:a(?:bs|dd|nd)|c(?:lrbit|mp|om)|div(?:_(?:q(?:r|)|r)|exact|)|fact|gcd(?:ext|)|hamdist|in(?:it|tval|vert)|jacobi|legendre|m(?:od|ul)|neg|or|p(?:erfect_square|o(?:pcount|w(?:m|))|rob_prime)|random|s(?:can(?:0|1)|etbit|ign|qrt(?:rem|)|trval|ub)|xor)|strftime)|regoriantojd|z(?:c(?:lose|ompress)|deflate|e(?:ncode|of)|file|get(?:c|s(?:s|))|inflate|open|p(?:assthru|uts)|re(?:ad|wind)|seek|tell|uncompress|write))|h(?:e(?:ader(?:s_(?:list|sent)|)|brev(?:c|)|xdec)|ighlight_(?:file|string)|t(?:ml(?:_entity_decode|entities|specialchars)|tp_build_query)|w(?:_(?:a(?:pi_(?:attribute|content|object)|rray2objrec)|c(?:h(?:angeobject|ildren(?:obj|))|lose|onnect(?:ion_info|)|p)|d(?:eleteobject|oc(?:byanchor(?:obj|)|ument_(?:attributes|bodytag|content|s(?:etcontent|ize)))|ummy)|e(?:dittext|rror(?:msg|))|free_document|get(?:an(?:chors(?:obj|)|dlock)|child(?:coll(?:obj|)|doccoll(?:obj|))|object(?:byquery(?:coll(?:obj|)|obj|)|)|parents(?:obj|)|re(?:llink|mote(?:children|))|srcbydestobj|text|username)|i(?:dentify|n(?:collections|fo|s(?:coll|doc|ert(?:anchors|document|object))))|m(?:apid|odifyobject|v)|new_document|o(?:bjrec2array|utput_document)|p(?:connect|ipedocument)|root|s(?:etlinkroot|tat)|unlock|who)|api_hgcsp)|ypot)|i(?:base_(?:a(?:dd_user|ffected_rows)|b(?:ackup|lob_(?:add|c(?:ancel|lose|reate)|echo|get|i(?:mport|nfo)|open))|c(?:lose|o(?:mmit(?:_ret|)|nnect))|d(?:b_info|elete_user|rop_db)|e(?:rr(?:code|msg)|xecute)|f(?:etch_(?:assoc|object|row)|ield_info|ree_(?:event_handler|query|result))|gen_id|m(?:aintain_db|odify_user)|n(?:ame_result|um_(?:fields|params))|p(?:aram_info|connect|repare)|query|r(?:estore|ollback(?:_ret|))|se(?:rv(?:er_info|ice_(?:attach|detach))|t_event_handler)|t(?:imefmt|rans)|wait_event)|conv(?:_(?:get_encoding|mime_(?:decode(?:_headers|)|encode)|s(?:et_encoding|tr(?:len|pos|rpos)|ubstr))|)|d(?:3_(?:get_(?:frame_(?:long_name|short_name)|genre_(?:id|list|name)|tag|version)|remove_tag|set_tag)|ate)|fx(?:_(?:affected_rows|b(?:lobinfile_mode|yteasvarchar)|c(?:lose|o(?:nnect|py_blob)|reate_(?:blob|char))|do|error(?:msg|)|f(?:etch_row|ield(?:properties|types)|ree_(?:blob|char|result))|get(?:_(?:blob|char)|sqlca)|htmltbl_result|nu(?:llformat|m_(?:fields|rows))|p(?:connect|repare)|query|textasvarchar|update_(?:blob|char))|us_(?:c(?:lose_slob|reate_slob)|free_slob|open_slob|read_slob|seek_slob|tell_slob|write_slob))|gnore_user_abort|m(?:a(?:ge(?:2wbmp|_type_to_(?:extension|mime_type)|a(?:lphablending|ntialias|rc)|c(?:har(?:up|)|o(?:lor(?:a(?:llocate(?:alpha|)|t)|closest(?:alpha|hwb|)|deallocate|exact(?:alpha|)|match|resolve(?:alpha|)|s(?:et|forindex|total)|transparent)|py(?:merge(?:gray|)|res(?:ampled|ized)|))|reate(?:from(?:g(?:d(?:2(?:part|)|)|if)|jpeg|png|string|wbmp|x(?:bm|pm))|truecolor|))|d(?:ashedline|estroy)|ellipse|f(?:il(?:l(?:ed(?:arc|ellipse|polygon|rectangle)|toborder|)|ter)|ont(?:height|width)|t(?:bbox|text))|g(?:ammacorrect|d(?:2|)|if)|i(?:nterlace|struecolor)|jpeg|l(?:ayereffect|ine|oadfont)|p(?:alettecopy|ng|olygon|s(?:bbox|copyfont|e(?:ncodefont|xtendfont)|freefont|loadfont|slantfont|text))|r(?:ectangle|otate)|s(?:avealpha|et(?:brush|pixel|style|t(?:hickness|ile))|tring(?:up|)|x|y)|t(?:ruecolortopalette|tf(?:bbox|text)|ypes)|wbmp|xbm)|p_(?:8bit|a(?:lerts|ppend)|b(?:ase64|inary|ody(?:struct|))|c(?:heck|l(?:earflag_full|ose)|reatemailbox)|delete(?:mailbox|)|e(?:rrors|xpunge)|fetch(?:_overview|body|header|structure)|get(?:_quota(?:root|)|acl|mailboxes|subscribed)|header(?:info|s|)|l(?:ast_error|ist(?:mailbox|s(?:can|ubscribed)|)|sub)|m(?:ail(?:_(?:co(?:mpose|py)|move)|boxmsginfo|)|ime_header_decode|sgno)|num_(?:msg|recent)|open|ping|qprint|r(?:e(?:namemailbox|open)|fc822_(?:parse_(?:adrlist|headers)|write_address))|s(?:canmailbox|e(?:arch|t(?:_quota|acl|flag_full))|ort|tatus|ubscribe)|t(?:hread|imeout)|u(?:id|n(?:delete|subscribe)|tf(?:7_(?:decode|encode)|8))))|p(?:lode|ort_request_variables))|n(?:_array|et_(?:ntop|pton)|gres_(?:autocommit|c(?:lose|o(?:mmit|nnect))|f(?:etch_(?:array|object|row)|ield_(?:length|n(?:ame|ullable)|precision|scale|type))|num_(?:fields|rows)|pconnect|query|rollback)|i_(?:alter|get(?:_all|)|restore|set)|t(?:erface_exists|val))|p(?:2long|tc(?:embed|parse))|rcg_(?:channel_mode|disconnect|eval_ecmascript_params|fetch_error_msg|get_username|html_encode|i(?:gnore_(?:add|del)|nvite|s_conn_alive)|join|kick|l(?:ist|ookup_format_messages|users)|msg|n(?:ames|ick(?:name_(?:escape|unescape)|)|otice)|oper|p(?:art|connect)|register_format_messages|set_(?:current|file|on_die)|topic|who(?:is|))|s_(?:a(?:rray|)|bool|callable|d(?:ir|ouble)|executable|f(?:i(?:le|nite)|loat)|in(?:finite|t(?:eger|))|l(?:ink|ong)|n(?:an|u(?:ll|meric))|object|re(?:a(?:dable|l)|source)|s(?:calar|oap_fault|tring|ubclass_of)|uploaded_file|writ(?:able|eable))|terator(?:-to-array|_count))|j(?:ava_last_exception_(?:clear|get)|d(?:dayofweek|monthname|to(?:french|gregorian|j(?:ewish|ulian)|unix))|ewishtojd|oin|peg2wbmp|uliantojd)|k(?:ey|rsort|sort)|l(?:cg_value|dap_(?:8859_to_t61|add|bind|c(?:lose|o(?:mpare|nnect|unt_entries))|d(?:elete|n2ufn)|e(?:rr(?:2str|no|or)|xplode_dn)|f(?:irst_(?:attribute|entry|reference)|ree_result)|get_(?:attributes|dn|entries|option|values(?:_len|))|list|mod(?:_(?:add|del|replace)|ify)|next_(?:attribute|entry|reference)|parse_re(?:ference|sult)|re(?:ad|name)|s(?:asl_bind|e(?:arch|t_(?:option|rebind_proc))|ort|tart_tls)|t61_to_8859|unbind)|evenshtein|ink(?:info|)|o(?:cal(?:econv|time)|g(?:1(?:0|p)|)|ng2ip)|stat|trim|zf_(?:compress|decompress|optimized_for))|m(?:a(?:i(?:l(?:parse_(?:determine_best_xfer_encoding|msg_(?:create|extract_part(?:_file|)|free|get_(?:part(?:_data|)|structure)|parse(?:_file|))|rfc822_parse_addresses|stream_encode|uudecode_all)|)|n)|x)|b_(?:convert_(?:case|encoding|kana|variables)|de(?:code_(?:mimeheader|numericentity)|tect_(?:encoding|order))|e(?:ncode_(?:mimeheader|numericentity)|reg(?:_(?:match|replace|search(?:_(?:get(?:pos|regs)|init|pos|regs|setpos)|))|i(?:_replace|)|))|get_info|http_(?:input|output)|internal_encoding|l(?:anguage|ist_encodings)|output_handler|p(?:arse_str|referred_mime_name)|regex_(?:encoding|set_options)|s(?:end_mail|plit|tr(?:cut|imwidth|len|pos|rpos|to(?:lower|upper)|width)|ubst(?:itute_character|r(?:_count|))))|c(?:al_(?:append_event|c(?:lose|reate_calendar)|d(?:a(?:te_(?:compare|valid)|y(?:_of_(?:week|year)|s_in_month))|elete_(?:calendar|event))|e(?:vent_(?:add_attribute|init|set_(?:alarm|c(?:ategory|lass)|description|end|recur_(?:daily|monthly_(?:mday|wday)|none|weekly|yearly)|start|title))|xpunge)|fetch_(?:current_stream_event|event)|is_leap_year|list_(?:alarms|events)|next_recurrence|open|popen|re(?:name_calendar|open)|s(?:nooze|tore_event)|time_valid|week_of_year)|rypt_(?:c(?:bc|fb|reate_iv)|decrypt|e(?:cb|nc(?:_(?:get_(?:algorithms_name|block_size|iv_size|key_size|modes_name|supported_key_sizes)|is_block_(?:algorithm(?:_mode|)|mode)|self_test)|rypt))|ge(?:neric(?:_(?:deinit|end|init)|)|t_(?:block_size|cipher_name|iv_size|key_size))|list_(?:algorithms|modes)|module_(?:close|get_(?:algo_(?:block_size|key_size)|supported_key_sizes)|is_block_(?:algorithm(?:_mode|)|mode)|open|self_test)|ofb)|ve_(?:adduser(?:arg|)|bt|c(?:h(?:eckstatus|kpwd|ngpwd)|o(?:mpleteauthorizations|nnect(?:ionerror|)))|d(?:e(?:l(?:ete(?:response|trans|usersetup)|user)|stroy(?:conn|engine))|isableuser)|e(?:dituser|nableuser)|force|g(?:et(?:c(?:ell(?:bynum|)|ommadelimited)|header|user(?:arg|param))|ft|l|ut)|i(?:nit(?:conn|engine|usersetup)|scommadelimited)|list(?:stats|users)|m(?:axconntimeout|onitor)|num(?:columns|rows)|override|p(?:arsecommadelimited|ing|reauth(?:completion|))|qc|re(?:sponseparam|turn(?:code|status|))|s(?:ale|et(?:blocking|dropfile|ip|ssl(?:_files|)|t(?:imeout|le)))|t(?:ext_(?:avs|c(?:ode|v))|rans(?:action(?:a(?:uth|vs)|batch|cv|i(?:d|tem)|ssent|text)|inqueue|new|param|send))|u(?:b|wait)|v(?:erify(?:connection|sslcert)|oid)))|d(?:5(?:_file|)|ecrypt_generic)|e(?:m(?:cache_debug|ory_get_usage)|t(?:aphone|hod_exists))|hash(?:_(?:count|get_(?:block_size|hash_name)|keygen_s2k)|)|i(?:crotime|me_content_type|n(?:g_(?:set(?:cubicthreshold|scale)|useswfversion)|))|k(?:dir|time)|o(?:ney_format|ve_uploaded_file)|s(?:ession_(?:c(?:o(?:nnect|unt)|reate)|d(?:estroy|isconnect)|find|get(?:_(?:array|data)|)|inc|l(?:ist(?:var|)|ock)|plugin|randstr|set(?:_(?:array|data)|)|timeout|un(?:iq|lock))|g_(?:get_queue|re(?:ceive|move_queue)|s(?:e(?:nd|t_queue)|tat_queue))|ql(?:_(?:affected_rows|c(?:lose|onnect|reate(?:_db|db))|d(?:ata_seek|b(?:_query|name)|rop_db)|error|f(?:etch_(?:array|field|object|row)|ield(?:_(?:flags|len|name|seek|t(?:able|ype))|flags|len|name|t(?:able|ype))|ree_result)|list_(?:dbs|fields|tables)|num(?:_(?:fields|rows)|fields|rows)|pconnect|query|re(?:gcase|sult)|select_db|tablename)|)|sql_(?:bind|c(?:lose|onnect)|data_seek|execute|f(?:etch_(?:a(?:rray|ssoc)|batch|field|object|row)|ield_(?:length|name|seek|type)|ree_(?:result|statement))|g(?:et_last_message|uid_string)|init|min_(?:error_severity|message_severity)|n(?:ext_result|um_(?:fields|rows))|pconnect|query|r(?:esult|ows_affected)|select_db))|t_(?:getrandmax|rand|srand)|uscat_(?:close|g(?:et|ive)|setup(?:_net|))|ysql(?:_(?:affected_rows|c(?:hange_user|l(?:ient_encoding|ose)|onnect|reate_db)|d(?:ata_seek|b_(?:name|query)|rop_db)|e(?:rr(?:no|or)|scape_string)|f(?:etch_(?:a(?:rray|ssoc)|field|lengths|object|row)|ield_(?:flags|len|name|seek|t(?:able|ype))|ree_result)|get_(?:client_info|host_info|proto_info|server_info)|in(?:fo|sert_id)|list_(?:dbs|fields|processes|tables)|num_(?:fields|rows)|p(?:connect|ing)|query|re(?:al_escape_string|sult)|s(?:elect_db|tat)|t(?:ablename|hread_id)|unbuffered_query)|i(?:_(?:a(?:ffected_rows|utocommit)|bind_(?:param|result)|c(?:ha(?:nge_user|racter_set_name)|l(?:ient_encoding|ose)|o(?:mmit|nnect(?:_err(?:no|or)|)))|d(?:ata_seek|ebug|isable_r(?:eads_from_master|pl_parse)|ump_debug_info)|e(?:mbedded_connect|nable_r(?:eads_from_master|pl_parse)|rr(?:no|or)|scape_string|xecute)|f(?:etch(?:_(?:a(?:rray|ssoc)|field(?:_direct|s|)|lengths|object|row)|)|ield_(?:count|seek|tell)|ree_result)|get_(?:client_(?:info|version)|host_info|metadata|proto_info|server_(?:info|version))|in(?:fo|it|sert_id)|kill|m(?:aster_query|ore_results|ulti_query)|n(?:ext_result|um_(?:fields|rows))|options|p(?:aram_count|ing|repare)|query|r(?:e(?:al_(?:connect|escape_string|query)|port)|ollback|pl_(?:p(?:arse_enabled|robe)|query_type))|s(?:e(?:lect_db|nd_(?:long_data|query)|rver_(?:end|init)|t_opt)|qlstate|sl_set|t(?:at|mt_(?:affected_rows|bind_(?:param|result)|close|data_seek|e(?:rr(?:no|or)|xecute)|f(?:etch|ree_result)|init|num_rows|p(?:aram_count|repare)|res(?:et|ult_metadata)|s(?:end_long_data|qlstate|tore_result))|ore_result))|thread_(?:id|safe)|use_result|warning_count)|)))|n(?:at(?:casesort|sort)|curses_(?:a(?:dd(?:ch(?:nstr|str|)|nstr|str)|ssume_default_colors|ttr(?:o(?:ff|n)|set))|b(?:audrate|eep|kgd(?:set|)|o(?:rder|ttom_panel))|c(?:an_change_color|break|l(?:ear|rto(?:bot|eol))|olor_(?:content|set)|urs_set)|d(?:e(?:f(?:_(?:prog_mode|shell_mode)|ine_key)|l(?:_panel|ay_output|ch|eteln|win))|oupdate)|e(?:cho(?:char|)|nd|rase(?:char|))|f(?:ilter|l(?:ash|ushinp))|get(?:ch|m(?:axyx|ouse)|yx)|h(?:a(?:lfdelay|s_(?:colors|i(?:c|l)|key))|ide_panel|line)|i(?:n(?:ch|it(?:_(?:color|pair)|)|s(?:ch|delln|ertln|str|tr))|sendwin)|k(?:ey(?:ok|pad)|illchar)|longname|m(?:eta|o(?:use(?:_trafo|interval|mask)|ve(?:_panel|))|v(?:add(?:ch(?:nstr|str|)|nstr|str)|cur|delch|getch|hline|inch|vline|waddstr))|n(?:apms|ew(?:_panel|pad|win)|l|o(?:cbreak|echo|nl|qiflush|raw))|p(?:a(?:ir_content|nel_(?:above|below|window))|noutrefresh|refresh|utp)|qiflush|r(?:aw|e(?:fresh|place_panel|set(?:_(?:prog_mode|shell_mode)|ty)))|s(?:avetty|cr(?:_(?:dump|init|restore|set)|l)|how_panel|lk_(?:attr(?:o(?:ff|n)|set|)|c(?:lear|olor)|init|noutrefresh|re(?:fresh|store)|set|touch)|ta(?:nd(?:end|out)|rt_color))|t(?:erm(?:attrs|name)|imeout|op_panel|ypeahead)|u(?:nget(?:ch|mouse)|pdate_panels|se_(?:default_colors|e(?:nv|xtended_names)))|v(?:idattr|line)|w(?:a(?:dd(?:ch|str)|ttr(?:o(?:ff|n)|set))|border|c(?:lear|olor_set)|erase|getch|hline|mo(?:use_trafo|ve)|noutrefresh|refresh|stand(?:end|out)|vline))|ext|gettext|l(?:2br|_langinfo)|otes_(?:body|c(?:opy_db|reate_(?:db|note))|drop_db|find_note|header_info|list_msgs|mark_(?:read|unread)|nav_create|search|unread|version)|sapi_(?:re(?:quest_headers|sponse_headers)|virtual)|umber_format)|o(?:b_(?:clean|end_(?:clean|flush)|flush|g(?:et_(?:c(?:lean|ontents)|flush|le(?:ngth|vel)|status)|zhandler)|i(?:conv_handler|mplicit_flush)|list_handlers|start|tidyhandler)|c(?:i(?:_(?:bind_by_name|c(?:ancel|lose|o(?:mmit|nnect))|define_by_name|e(?:rror|xecute)|f(?:etch(?:_(?:a(?:ll|rray|ssoc)|object|row)|)|ield_(?:is_null|name|precision|s(?:cale|ize)|type(?:_raw|))|ree_statement)|internal_debug|lob_(?:copy|is_equal)|n(?:ew_(?:c(?:o(?:llection|nnect)|ursor)|descriptor)|um_(?:fields|rows))|p(?:a(?:rse|ssword_change)|connect)|r(?:esult|ollback)|s(?:e(?:rver_version|t_prefetch)|tatement_type))|bindbyname|c(?:ancel|loselob|o(?:l(?:l(?:a(?:ppend|ssign(?:elem|))|getelem|max|size|trim)|umn(?:isnull|name|precision|s(?:cale|ize)|type(?:raw|)))|mmit))|definebyname|e(?:rror|xecute)|f(?:etch(?:into|statement|)|ree(?:c(?:ollection|ursor)|desc|statement))|internaldebug|lo(?:adlob|go(?:ff|n))|n(?:ew(?:c(?:ollection|ursor)|descriptor)|logon|umcols)|p(?:arse|logon)|r(?:esult|o(?:llback|wcount))|s(?:avelob(?:file|)|e(?:rverversion|tprefetch)|tatementtype)|write(?:lobtofile|temporarylob))|tdec)|dbc_(?:autocommit|binmode|c(?:lose(?:_all|)|o(?:lumn(?:privileges|s)|mmit|nnect)|ursor)|d(?:ata_source|o)|e(?:rror(?:msg|)|xec(?:ute|))|f(?:etch_(?:array|into|object|row)|ield_(?:len|n(?:ame|um)|precision|scale|type)|oreignkeys|ree_result)|gettypeinfo|longreadlen|n(?:ext_result|um_(?:fields|rows))|p(?:connect|r(?:epare|imarykeys|ocedure(?:columns|s)))|r(?:esult(?:_all|)|ollback)|s(?:etoption|pecialcolumns|tatistics)|table(?:privileges|s))|pen(?:al_(?:buffer_(?:create|d(?:ata|estroy)|get|loadwav)|context_(?:c(?:reate|urrent)|destroy|process|suspend)|device_(?:close|open)|listener_(?:get|set)|s(?:ource_(?:create|destroy|get|p(?:ause|lay)|rewind|s(?:et|top))|tream))|dir|log|ssl_(?:csr_(?:export(?:_to_file|)|new|sign)|error_string|free_key|get_p(?:rivatekey|ublickey)|open|p(?:k(?:cs7_(?:decrypt|encrypt|sign|verify)|ey_(?:export(?:_to_file|)|get_p(?:rivate|ublic)|new))|rivate_(?:decrypt|encrypt)|ublic_(?:decrypt|encrypt))|s(?:eal|ign)|verify|x509_(?:check(?:_private_key|purpose)|export(?:_to_file|)|free|parse|read)))|r(?:a_(?:bind|c(?:lose|o(?:lumn(?:name|size|type)|mmit(?:o(?:ff|n)|)))|do|e(?:rror(?:code|)|xec)|fetch(?:_into|)|getcolumn|logo(?:ff|n)|num(?:cols|rows)|open|p(?:arse|logon)|rollback)|d)|utput_(?:add_rewrite_var|reset_rewrite_vars)|v(?:er(?:load|ride_function)|rimos_(?:c(?:lose|o(?:mmit|nnect)|ursor)|exec(?:ute|)|f(?:etch_(?:into|row)|ield_(?:len|n(?:ame|um)|type)|ree_result)|longreadlen|num_(?:fields|rows)|prepare|r(?:esult(?:_all|)|ollback))))|p(?:a(?:ck|rse(?:_(?:ini_file|str|url)|kit_(?:compile_(?:file|string)|func_arginfo))|ssthru|thinfo)|c(?:lose|ntl_(?:alarm|exec|fork|getpriority|s(?:etpriority|ignal)|w(?:ait(?:pid|)|exitstatus|if(?:exited|s(?:ignaled|topped))|stopsig|termsig)))|df_(?:a(?:dd_(?:annotation|bookmark|l(?:aunchlink|ocallink)|note|outline|pdflink|thumbnail|weblink)|rc(?:n|)|ttach_file)|begin_(?:pa(?:ge|ttern)|template)|c(?:ircle|l(?:ip|ose(?:_(?:image|pdi(?:_page|))|path(?:_(?:fill_stroke|stroke)|)|))|on(?:cat|tinue_text)|urveto)|delete|end(?:_(?:pa(?:ge|ttern)|template)|path)|fi(?:ll(?:_stroke|)|ndfont)|get_(?:buffer|font(?:name|size|)|image_(?:height|width)|m(?:ajorversion|inorversion)|p(?:arameter|di_(?:parameter|value))|value)|initgraphics|lineto|m(?:akespotcolor|oveto)|new|open(?:_(?:ccitt|file|gif|image(?:_file|)|jpeg|memory_image|p(?:di(?:_page|)|ng)|tiff)|)|place_(?:image|pdi_page)|r(?:e(?:ct|store)|otate)|s(?:ave|cale|et(?:_(?:border_(?:color|dash|style)|char_spacing|duration|font|horiz_scaling|info(?:_(?:author|creator|keywords|subject|title)|)|leading|parameter|text_(?:matrix|pos|r(?:endering|ise))|value|word_spacing)|color|dash|f(?:lat|ont)|gray(?:_(?:fill|stroke)|)|line(?:cap|join|width)|m(?:atrix|iterlimit)|polydash|rgbcolor(?:_(?:fill|stroke)|))|how(?:_(?:boxed|xy)|)|kew|tr(?:ingwidth|oke))|translate)|f(?:pro_(?:cleanup|init|process(?:_raw|)|version)|sockopen)|g_(?:affected_rows|c(?:ancel_query|l(?:ient_encoding|ose)|o(?:n(?:nect(?:ion_(?:busy|reset|status)|)|vert)|py_(?:from|to)))|d(?:bname|elete)|e(?:nd_copy|scape_(?:bytea|string))|f(?:etch_(?:a(?:ll|rray|ssoc)|object|r(?:esult|ow))|ield_(?:is_null|n(?:ame|um)|prtlen|size|type)|ree_result)|get_(?:notify|pid|result)|host|insert|l(?:ast_(?:error|notice|oid)|o_(?:c(?:lose|reate)|export|import|open|read(?:_all|)|seek|tell|unlink|write))|meta_data|num_(?:fields|rows)|options|p(?:arameter_status|connect|ing|ort|ut_line)|query|result_(?:error|s(?:eek|tatus))|se(?:lect|nd_query|t_client_encoding)|t(?:race|ty)|u(?:n(?:escape_bytea|trace)|pdate)|version)|hp(?:_(?:check_syntax|ini_scanned_files|logo_guid|register_url_stream_wrapper|s(?:api_name|tr(?:eam_(?:c(?:a(?:n_cast|st)|lose(?:dir|)|opy_to_(?:mem|stream))|eof|f(?:ilter_(?:register_factory|unregister_factory)|lush|open_(?:from_file|t(?:emporary_file|mpfile)))|get(?:c|s)|is(?:_persistent|)|make_seekable|open(?:_wrapper(?:_(?:as_file|ex)|)|dir)|passthru|re(?:ad(?:dir|)|winddir)|s(?:eek|ock_open_(?:from_socket|host|unix)|tat(?:_path|))|tell|write)|ip_whitespace))|un(?:ame|register_url_stream_wrapper))|credits|info|version)|i|ng2wbmp|o(?:pen|s(?:ix_(?:ctermid|get(?:_last_error|cwd|e(?:gid|uid)|g(?:id|r(?:gid|nam|oups))|login|p(?:g(?:id|rp)|id|pid|w(?:nam|uid))|rlimit|sid|uid)|isatty|kill|mkfifo|s(?:et(?:e(?:gid|uid)|gid|pgid|sid|uid)|trerror)|t(?:imes|tyname)|uname)|)|w)|r(?:e(?:g_(?:grep|match(?:_all|)|quote|replace(?:_callback|)|split)|v)|int(?:_r|er_(?:abort|c(?:lose|reate_(?:brush|dc|font|pen))|d(?:elete_(?:brush|dc|font|pen)|raw_(?:bmp|chord|elipse|line|pie|r(?:ectangle|oundrect)|text))|end_(?:doc|page)|get_option|l(?:ist|ogical_fontheight)|open|s(?:e(?:lect_(?:brush|font|pen)|t_option)|tart_(?:doc|page))|write)|f)|oc_(?:close|get_status|nice|open|terminate))|spell_(?:add_to_(?:personal|session)|c(?:heck|lear_session|onfig_(?:create|d(?:ata_dir|ict_dir)|ignore|mode|personal|r(?:epl|untogether)|save_repl))|new(?:_(?:config|personal)|)|s(?:ave_wordlist|tore_replacement|uggest))|utenv)|q(?:dom_(?:error|tree)|uote(?:d_printable_decode|meta))|r(?:a(?:d2deg|n(?:d|ge)|r_(?:close|entry_get|list|open)|wurl(?:decode|encode))|e(?:a(?:d(?:_exif_data|dir|file|gzfile|lin(?:e(?:_(?:add_history|c(?:allback_(?:handler_(?:install|remove)|read_char)|lear_history|ompletion_function)|info|list_history|on_new_line|re(?:ad_history|display)|write_history)|)|k))|lpath)|code(?:_(?:file|string)|)|gister_(?:shutdown_function|tick_function)|name(?:_function|)|s(?:et|tore_(?:e(?:rror_handler|xception_handler)|include_path))|wind(?:dir|))|mdir|ound|sort|trim)|s(?:candir|e(?:m_(?:acquire|get|re(?:lease|move))|rialize|s(?:am_(?:affected_rows|co(?:mmit|nnect)|di(?:agnostic|sconnect)|e(?:rrormsg|xecimm)|f(?:etch_(?:array|r(?:esult|ow))|ield_(?:array|name)|ree_result)|num_fields|query|rollback|se(?:ek_row|ttransaction))|sion_(?:c(?:ache_(?:expire|limiter)|ommit)|de(?:code|stroy)|encode|get_cookie_params|i(?:d|s_registered)|module_name|name|reg(?:enerate_id|ister)|s(?:ave_path|et_(?:cookie_params|save_handler)|tart)|un(?:register|set)|write_close))|t(?:_(?:e(?:rror_handler|xception_handler)|file_buffer|include_path|magic_quotes_runtime|time_limit)|cookie|locale|rawcookie|type))|h(?:a1(?:_file|)|ell_exec|m(?:_(?:attach|detach|get_var|put_var|remove(?:_var|))|op_(?:close|delete|open|read|size|write))|ow_source|uffle)|i(?:m(?:ilar_text|plexml_(?:import_dom|load_(?:file|string)))|n(?:h|)|zeof)|leep|nmp(?:_(?:get_(?:quick_print|valueretrieval)|read_mib|set_(?:enum_print|oid_numeric_print|quick_print|valueretrieval))|get(?:next|)|realwalk|set|walk(?:oid|))|o(?:cket_(?:accept|bind|c(?:l(?:ear_error|ose)|onnect|reate(?:_(?:listen|pair)|))|get(?:_(?:option|status)|peername|sockname)|l(?:ast_error|isten)|re(?:ad|cv(?:from|))|s(?:e(?:lect|nd(?:to|)|t_(?:block(?:ing|)|nonblock|option|timeout))|hutdown|trerror)|write)|rt|undex)|p(?:l(?:_classes|it(?:i|))|rintf)|q(?:l(?:_regcase|ite_(?:array_query|busy_timeout|c(?:hanges|lose|olumn|reate_(?:aggregate|function)|urrent)|e(?:rror_string|scape_string|xec)|f(?:actory|etch_(?:a(?:ll|rray)|column_types|object|s(?:ingle|tring))|ield_name)|has_(?:more|prev)|l(?:ast_(?:error|insert_rowid)|ib(?:encoding|version))|n(?:ext|um_(?:fields|rows))|open|p(?:open|rev)|query|rewind|s(?:eek|ingle_query)|u(?:df_(?:decode_binary|encode_binary)|nbuffered_query)))|rt)|rand|s(?:canf|h2_(?:auth_(?:none|p(?:assword|ubkey_file))|connect|exec|f(?:etch_stream|ingerprint)|methods_negotiated|s(?:cp_(?:recv|send)|ftp(?:_(?:lstat|mkdir|r(?:e(?:a(?:dlink|lpath)|name)|mdir)|s(?:tat|ymlink)|unlink)|)|hell)|tunnel))|t(?:at|r(?:_(?:ireplace|pad|r(?:ep(?:eat|lace)|ot13)|s(?:huffle|plit)|word_count)|c(?:asecmp|hr|mp|oll|spn)|eam_(?:co(?:ntext_(?:create|get_(?:default|options)|set_(?:option|params))|py_to_stream)|filter_(?:append|prepend|re(?:gister|move))|get_(?:contents|filters|line|meta_data|transports|wrappers)|register_wrapper|s(?:e(?:lect|t_(?:blocking|timeout|write_buffer))|ocket_(?:accept|client|enable_crypto|get_name|pair|recvfrom|se(?:ndto|rver)))|wrapper_(?:re(?:gister|store)|unregister))|ftime|i(?:p(?:_tags|cslashes|os|slashes)|str)|len|n(?:atc(?:asecmp|mp)|c(?:asecmp|mp))|p(?:brk|os|time)|r(?:chr|ev|ipos|pos)|s(?:pn|tr)|t(?:o(?:k|lower|time|upper)|r)|val))|ubstr(?:_(?:co(?:mpare|unt)|replace)|)|wf(?:_(?:a(?:ction(?:g(?:eturl|oto(?:frame|label))|nextframe|p(?:lay|revframe)|s(?:ettarget|top)|togglequality|waitforframe)|dd(?:buttonrecord|color))|closefile|define(?:bitmap|font|line|poly|rect|text)|end(?:button|doaction|s(?:hape|ymbol))|font(?:s(?:ize|lant)|tracking)|get(?:bitmapinfo|f(?:ontinfo|rame))|l(?:abelframe|ookat)|m(?:odifyobject|ulcolor)|nextid|o(?:ncondition|penfile|rtho(?:2|))|p(?:erspective|laceobject|o(?:larview|pmatrix|sround)|ushmatrix)|r(?:emoveobject|otate)|s(?:cale|etf(?:ont|rame)|h(?:ape(?:arc|curveto(?:3|)|fill(?:bitmap(?:clip|tile)|off|solid)|line(?:solid|to)|moveto)|owframe)|tart(?:button|doaction|s(?:hape|ymbol)))|t(?:extwidth|ranslate)|viewport)|action|b(?:itmap|utton(?:_keypress|))|displayitem|f(?:ill|ont)|gradient|mo(?:rph|vie)|s(?:hape|prite)|text(?:field|))|y(?:base_(?:affected_rows|c(?:lose|onnect)|d(?:ata_seek|eadlock_retry_count)|f(?:etch_(?:a(?:rray|ssoc)|field|object|row)|ield_seek|ree_result)|get_last_message|min_(?:client_severity|error_severity|message_severity|server_severity)|num_(?:fields|rows)|pconnect|query|result|se(?:lect_db|t_message_handler)|unbuffered_query)|mlink|s(?:log|tem)))|t(?:an(?:h|)|cpwrap_check|e(?:mpnam|xtdomain)|i(?:dy_(?:access_count|c(?:lean_repair|onfig_count)|diagnose|error_count|get(?:_(?:body|config|error_buffer|h(?:ead|tml(?:_ver|))|output|r(?:elease|oot)|status)|opt)|is_x(?:html|ml)|load_config|parse_(?:file|string)|re(?:pair_(?:file|string)|set_config)|s(?:ave_config|et(?:_encoding|opt))|warning_count)|me(?:_nanosleep|))|mpfile|o(?:ken_(?:get_all|name)|uch)|ri(?:gger_error|m))|u(?:asort|c(?:first|words)|dm_(?:a(?:dd_search_limit|lloc_agent(?:_array|)|pi_version)|c(?:at_(?:list|path)|heck_(?:charset|stored)|l(?:ear_search_limits|ose_stored)|rc32)|err(?:no|or)|f(?:ind|ree_(?:agent|ispell_data|res))|get_(?:doc_count|res_(?:field|param))|hash32|load_ispell_data|open_stored|set_agent_param)|ksort|mask|n(?:i(?:qid|xtojd)|link|pack|register_tick_function|serialize)|rl(?:decode|encode)|s(?:er_error|leep|ort)|tf8_(?:decode|encode))|v(?:ar(?:_(?:dump|export)|iant(?:_(?:a(?:bs|dd|nd)|c(?:a(?:st|t)|mp)|d(?:ate_(?:from_timestamp|to_timestamp)|iv)|eqv|fix|get_type|i(?:div|mp|nt)|m(?:od|ul)|n(?:eg|ot)|or|pow|round|s(?:et(?:_type|)|ub)|xor)|))|ersion_compare|fprintf|irtual|p(?:opmail_(?:a(?:dd_(?:alias_domain(?:_ex|)|domain(?:_ex|)|user)|lias_(?:add|del(?:_domain|)|get(?:_all|))|uth_user)|del_(?:domain(?:_ex|)|user)|error|passwd|set_user_quota)|rintf)|sprintf)|w(?:32api_(?:deftype|in(?:it_dtype|voke_function)|register_function|set_call_method)|ddx_(?:add_vars|deserialize|packet_(?:end|start)|serialize_va(?:lue|rs))|ordwrap)|x(?:attr_(?:get|list|remove|s(?:et|upported))|diff_(?:file_(?:diff(?:_binary|)|merge3|patch(?:_binary|))|string_(?:diff(?:_binary|)|merge3|patch(?:_binary|)))|ml(?:_(?:error_string|get_(?:current_(?:byte_index|column_number|line_number)|error_code)|parse(?:_into_struct|r_(?:create(?:_ns|)|free|get_option|set_option)|)|set_(?:character_data_handler|default_handler|e(?:lement_handler|nd_namespace_decl_handler|xternal_entity_ref_handler)|notation_decl_handler|object|processing_instruction_handler|start_namespace_decl_handler|unparsed_entity_decl_handler))|rpc_(?:decode(?:_request|)|encode(?:_request|)|get_type|is_fault|parse_method_descriptions|se(?:rver_(?:add_introspection_data|c(?:all_method|reate)|destroy|register_(?:introspection_callback|method))|t_type)))|p(?:ath_(?:eval(?:_expression|)|new_context)|tr_(?:eval|new_context))|sl(?:_xsltprocessor_(?:get_parameter|has_exslt_support|import_stylesheet|re(?:gister_php_functions|move_parameter)|set_parameter|transform_to_(?:doc|uri|xml))|t_(?:backend_(?:info|name|version)|create|err(?:no|or)|free|getopt|process|set(?:_(?:base|e(?:ncoding|rror_handler)|log|object|s(?:ax_handler(?:s|)|cheme_handler(?:s|)))|opt))))|y(?:az_(?:addinfo|c(?:cl_(?:conf|parse)|lose|onnect)|database|e(?:lement|rr(?:no|or)|s_result)|get_option|hits|itemorder|present|r(?:ange|ecord)|s(?:c(?:an(?:_result|)|hema)|e(?:arch|t_option)|ort|yntax)|wait)|p_(?:all|cat|err(?:_string|no)|first|get_default_domain|ma(?:ster|tch)|next|order))|z(?:end_(?:logo_guid|version)|ip_(?:close|entry_(?:c(?:lose|ompress(?:edsize|ionmethod))|filesize|name|open|read)|open|read)|lib_get_coding_type))\\b"
+ , _style: "color: #e17100;"
+ }
+ }
+}
diff --git a/js/jquery/chili/php.js b/js/jquery/chili/php.js
new file mode 100755
index 000000000..643563eed
--- /dev/null
+++ b/js/jquery/chili/php.js
@@ -0,0 +1,138 @@
+/*
+===============================================================================
+Chili is the jQuery code highlighter plugin
+...............................................................................
+LICENSE: http://www.opensource.org/licenses/mit-license.php
+WEBSITE: http://noteslog.com/chili/
+
+ Copyright 2008 / Andrea Ercolino
+===============================================================================
+*/
+
+/* ----------------------------------------------------------------------------
+ * this recipe uses a little trick for highlighting php code
+ * 1: replace each php snippet with a placeholder
+ * 2: highlight html without php and php snippets apart
+ * 3: replace each placeholder with its highlighted php snippet
+ *
+ * the trick is not perfect only if the html without php is broken
+ * however, in such a case many highlighters get fooled but Chili does not
+ *
+ * ---
+ * this recipe has been adapted for working with Safari
+ * in fact, Safari cannot match more than 101236 characters with a lazy star
+ * --------------------------------------------------------------------------*/
+{
+ _name: "php"
+ , _case: true
+ , _main: {
+ all: {
+ _match: /[\w\W]*/
+ , _replace: function( all ) {
+ var placeholder = String.fromCharCode(0);
+ var blocks = [];
+ var that = this;
+ var no_php_1 = all.replace( /<\?[^?]*\?+(?:[^>][^?]*\?+)*>/g, function( block ) {
+ blocks.push( that.x( block, '/block/php_1' ) );
+ return placeholder;
+ } );
+ var no_php_2 = no_php_1.replace( /^[^?]*\?+(?:[^>][^?]*\?+)*>|<\?[\w\W]*$/g, function( block ) {
+ blocks.push( that.x( block, '/block/php_2' ) );
+ return placeholder;
+ } );
+ if( blocks.length ) {
+ var html = this.x( no_php_2, 'html' );
+ var count = 0;
+ return html.replace( new RegExp( placeholder, "g" ), function() {
+ return blocks[ count++ ];
+ } );
+ }
+ else {
+ return this.x( all, '/php' );
+ }
+ }
+ }
+ }
+ , block: {
+ php_1: { // --- <? +++ ?> ---
+ _match: /(<\?(?:php\b)?)([^?]*\?+(?:[^>][^?]*\?+)*>)/
+ , _replace: function( all, open, content ) {
+ return "<span class='start'>" + this.x( open ) + "</span>"
+ + this.x( content.replace( /\?>$/, '' ), '/php' )
+ + "<span class='end'>" + this.x( '?>' ) + "</span>";
+ }
+ , _style: {
+ start: "color: red; font-weight: bold"
+ , end: "color: red;"
+ }
+ }
+ , php_2: { // +++ ?> --- <? +++
+ _match: /([^?]*\?+(?:[^>][^?]*\?+)*>)|(<\?(?:php\b)?)([\w\W]*)/
+ , _replace: function( all, content, open2, content2 ) {
+ if( open2 ) {
+ return "<span class='start'>" + this.x( open2 ) + "</span>"
+ + this.x( content2, '/php' );
+ }
+ else {
+ return this.x( content.replace( /\?>$/, '' ), '/php' )
+ + "<span class='end'>" + this.x( '?>' ) + "</span>";
+ }
+ }
+ , _style: {
+ start: "color: red; font-weight: bold"
+ , end: "color: red;"
+ }
+ }
+ }
+ , php: {
+ mlcom: {
+ _match: /\/\*[^*]*\*+([^\/][^*]*\*+)*\//
+ , _style: "color: gray;"
+ }
+ , com: {
+ _match: /(?:\/\/.*)|(?:[^\\]\#.*)/
+ , _style: "color: green;"
+ }
+ , string1: {
+ _match: /\'[^\'\\]*(?:\\.[^\'\\]*)*\'/
+ , _style: "color: purple;"
+ }
+ , string2: {
+ _match: /\"[^\"\\]*(?:\\.[^\"\\]*)*\"/
+ , _style: "color: fuchsia;"
+ }
+ , value: {
+ _match: /\b(?:[Nn][Uu][Ll][Ll]|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])\b/
+ , _style: "color: gray; font-weight: bold;"
+ }
+ , number: {
+ _match: /\b[+-]?(\d*\.?\d+|\d+\.?\d*)([eE][+-]?\d+)?\b/
+ , _style: "color: red;"
+ }
+ , const1: {
+ _match: /\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\b/
+ , _style: "color: red;"
+ }
+ , const2: {
+ _match: /\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR))\b/
+ , _style: "color: red;"
+ }
+ , global: {
+ _match: /(?:\$GLOBALS|\$_COOKIE|\$_ENV|\$_FILES|\$_GET|\$_POST|\$_REQUEST|\$_SERVER|\$_SESSION|\$php_errormsg)\b/
+ , _style: "color: red;"
+ }
+ , keyword: {
+ _match: /\b(?:__CLASS__|__FILE__|__FUNCTION__|__LINE__|__METHOD__|abstract|and|array|as|break|case|catch|cfunction|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exception|exit|extends|extends|final|for|foreach|function|global|if|implements|include|include_once|interface|isset|list|new|old_function|or|php_user_filter|print|private|protected|public|require|require_once|return|static|switch|this|throw|try|unset|use|var|while|xor)\b/
+ , _style: "color: navy; font-weight: bold;"
+ }
+ , variable: {
+ _match: /\$(\w+)/
+ , _replace: '<span class="keyword">$</span><span class="variable">$1</span>'
+ , _style: "color: #4040c2;"
+ }
+ , heredoc: {
+ _match: /(\<\<\<\s*)(\w+)((?:(?!\2).*\n)+)(\2)\b/
+ , _replace: '<span class="keyword">$1</span><span class="string1">$2</span><span class="string2">$3</span><span class="string1">$4</span>'
+ }
+ }
+} \ No newline at end of file
diff --git a/js/jquery/chili/recipes.js b/js/jquery/chili/recipes.js
new file mode 100755
index 000000000..e6917afa2
--- /dev/null
+++ b/js/jquery/chili/recipes.js
@@ -0,0 +1,364 @@
+/*
+===============================================================================
+Chili is the jQuery code highlighter plugin
+...............................................................................
+LICENSE: http://www.opensource.org/licenses/mit-license.php
+WEBSITE: http://noteslog.com/chili/
+
+ Copyright 2008 / Andrea Ercolino
+===============================================================================
+*/
+
+ChiliBook.recipeLoading = false;
+
+
+
+ChiliBook.recipes[ "php.js" ] =
+/* ----------------------------------------------------------------------------
+ * this recipe uses a little trick for highlighting php code
+ * 1: replace each php snippet with a placeholder
+ * 2: highlight html without php and php snippets apart
+ * 3: replace each placeholder with its highlighted php snippet
+ *
+ * the trick is not perfect only if the html without php is broken
+ * however, in such a case many highlighters get fooled but Chili does not
+ *
+ * ---
+ * this recipe has been adapted for working with Safari
+ * in fact, Safari cannot match more than 101236 characters with a lazy star
+ * --------------------------------------------------------------------------*/
+{
+ _name: "php"
+ , _case: true
+ , _main: {
+ all: {
+ _match: /[\w\W]*/
+ , _replace: function( all ) {
+ var placeholder = String.fromCharCode(0);
+ var blocks = [];
+ var that = this;
+ var no_php_1 = all.replace( /<\?[^?]*\?+(?:[^>][^?]*\?+)*>/g, function( block ) {
+ blocks.push( that.x( block, '/block/php_1' ) );
+ return placeholder;
+ } );
+ var no_php_2 = no_php_1.replace( /^[^?]*\?+(?:[^>][^?]*\?+)*>|<\?[\w\W]*$/g, function( block ) {
+ blocks.push( that.x( block, '/block/php_2' ) );
+ return placeholder;
+ } );
+ if( blocks.length ) {
+ var html = this.x( no_php_2, 'html' );
+ var count = 0;
+ return html.replace( new RegExp( placeholder, "g" ), function() {
+ return blocks[ count++ ];
+ } );
+ }
+ else {
+ return this.x( all, '/php' );
+ }
+ }
+ }
+ }
+ , block: {
+ php_1: { // --- <? +++ ?> ---
+ _match: /(<\?(?:php\b)?)([^?]*\?+(?:[^>][^?]*\?+)*>)/
+ , _replace: function( all, open, content ) {
+ return "<span class='start'>" + this.x( open ) + "</span>"
+ + this.x( content.replace( /\?>$/, '' ), '/php' )
+ + "<span class='end'>" + this.x( '?>' ) + "</span>";
+ }
+ , _style: {
+ start: "color: red; font-weight: bold"
+ , end: "color: red;"
+ }
+ }
+ , php_2: { // +++ ?> --- <? +++
+ _match: /([^?]*\?+(?:[^>][^?]*\?+)*>)|(<\?(?:php\b)?)([\w\W]*)/
+ , _replace: function( all, content, open2, content2 ) {
+ if( open2 ) {
+ return "<span class='start'>" + this.x( open2 ) + "</span>"
+ + this.x( content2, '/php' );
+ }
+ else {
+ return this.x( content.replace( /\?>$/, '' ), '/php' )
+ + "<span class='end'>" + this.x( '?>' ) + "</span>";
+ }
+ }
+ , _style: {
+ start: "color: red; font-weight: bold"
+ , end: "color: red;"
+ }
+ }
+ }
+ , php: {
+ mlcom: {
+ _match: /\/\*[^*]*\*+([^\/][^*]*\*+)*\//
+ , _style: "color: gray;"
+ }
+ , com: {
+ _match: /(?:\/\/.*)|(?:[^\\]\#.*)/
+ , _style: "color: green;"
+ }
+ , string1: {
+ _match: /\'[^\'\\]*(?:\\.[^\'\\]*)*\'/
+ , _style: "color: purple;"
+ }
+ , string2: {
+ _match: /\"[^\"\\]*(?:\\.[^\"\\]*)*\"/
+ , _style: "color: fuchsia;"
+ }
+ , value: {
+ _match: /\b(?:[Nn][Uu][Ll][Ll]|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])\b/
+ , _style: "color: gray;"
+ }
+ , number: {
+ _match: /\b[+-]?(\d*\.?\d+|\d+\.?\d*)([eE][+-]?\d+)?\b/
+ , _style: "color: red;"
+ }
+ , const1: {
+ _match: /\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\b/
+ , _style: "color: red;"
+ }
+ , const2: {
+ _match: /\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR))\b/
+ , _style: "color: red;"
+ }
+ , global: {
+ _match: /(?:\$GLOBALS|\$_COOKIE|\$_ENV|\$_FILES|\$_GET|\$_POST|\$_REQUEST|\$_SERVER|\$_SESSION|\$php_errormsg)\b/
+ , _style: "color: red;"
+ }
+ , keyword: {
+ _match: /\b(?:__CLASS__|__FILE__|__FUNCTION__|__LINE__|__METHOD__|abstract|and|array|as|break|case|catch|cfunction|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exception|exit|extends|extends|final|for|foreach|function|global|if|implements|include|include_once|interface|isset|list|new|old_function|or|php_user_filter|print|private|protected|public|require|require_once|return|static|switch|this|throw|try|unset|use|var|while|xor)\b/
+ , _style: "color: navy;"
+ }
+ , variable: {
+ _match: /\$(\w+)/
+ , _replace: '<span class="keyword">$</span><span class="variable">$1</span>'
+ , _style: "color: #4040c2;"
+ }
+ , heredoc: {
+ _match: /(\<\<\<\s*)(\w+)((?:(?!\2).*\n)+)(\2)\b/
+ , _replace: '<span class="keyword">$1</span><span class="string1">$2</span><span class="string2">$3</span><span class="string1">$4</span>'
+ }
+ }
+}
+
+
+
+ChiliBook.recipes[ "html.js" ] =
+{
+ _name: 'html'
+ , _case: false
+ , _main: {
+ doctype: {
+ _match: /<!DOCTYPE\b[\w\W]*?>/
+ , _style: "color: #CC6600;"
+ }
+ , ie_style: {
+ _match: /(<!--\[[^\]]*\]>)([\w\W]*?)(<!\[[^\]]*\]-->)/
+ , _replace: function( all, open, content, close ) {
+ return "<span class='ie_style'>" + this.x( open ) + "</span>"
+ + this.x( content, '//style' )
+ + "<span class='ie_style'>" + this.x( close ) + "</span>";
+ }
+ , _style: "color: DarkSlateGray;"
+ }
+ , comment: {
+ _match: /<!--[\w\W]*?-->/
+ , _style: "color: #4040c2;"
+ }
+ , script: {
+ _match: /(<script\s+[^>]*>)([\w\W]*?)(<\/script\s*>)/
+ , _replace: function( all, open, content, close ) {
+ return this.x( open, '//tag_start' )
+ + this.x( content, 'js' )
+ + this.x( close, '//tag_end' );
+ }
+ }
+ , style: {
+ _match: /(<style\s+[^>]*>)([\w\W]*?)(<\/style\s*>)/
+ , _replace: function( all, open, content, close ) {
+ return this.x( open, '//tag_start' )
+ + this.x( content, 'css' )
+ + this.x( close, '//tag_end' );
+ }
+ }
+ // matches a starting tag of an element (with attrs)
+ // like "<div ... >" or "<img ... />"
+ , tag_start: {
+ _match: /(<\w+)((?:[?%]>|[\w\W])*?)(\/>|>)/
+ , _replace: function( all, open, content, close ) {
+ return "<span class='tag_start'>" + this.x( open ) + "</span>"
+ + this.x( content, '/tag_attrs' )
+ + "<span class='tag_start'>" + this.x( close ) + "</span>";
+ }
+ , _style: "color: navy;"
+ }
+ // matches an ending tag
+ // like "</div>"
+ , tag_end: {
+ _match: /<\/\w+\s*>|\/>/
+ , _style: "color: navy;"
+ }
+ , entity: {
+ _match: /&\w+?;/
+ , _style: "color: blue;"
+ }
+ }
+ , tag_attrs: {
+ // matches a name/value pair
+ attr: {
+ // before in $1, name in $2, between in $3, value in $4
+ _match: /(\W*?)([\w-]+)(\s*=\s*)((?:\'[^\']*(?:\\.[^\']*)*\')|(?:\"[^\"]*(?:\\.[^\"]*)*\"))/
+ , _replace: "$1<span class='attr_name'>$2</span>$3<span class='attr_value'>$4</span>"
+ , _style: { attr_name: "color: green;", attr_value: "color: maroon;" }
+ }
+ }
+};
+
+
+
+ChiliBook.recipes[ "js.js" ] =
+{
+ _name: 'js'
+ , _case: true
+ , _main: {
+ ml_comment: {
+ _match: /\/\*[^*]*\*+(?:[^\/][^*]*\*+)*\//
+ , _style: 'color: gray;'
+ }
+ , sl_comment: {
+ _match: /\/\/.*/
+ , _style: 'color: green;'
+ }
+ , string: {
+ _match: /(?:\'[^\'\\\n]*(?:\\.[^\'\\\n]*)*\')|(?:\"[^\"\\\n]*(?:\\.[^\"\\\n]*)*\")/
+ , _style: 'color: teal;'
+ }
+ , num: {
+ _match: /\b[+-]?(?:\d*\.?\d+|\d+\.?\d*)(?:[eE][+-]?\d+)?\b/
+ , _style: 'color: red;'
+ }
+ , reg_not: { //this prevents "a / b / c" to be interpreted as a reg_exp
+ _match: /(?:\w+\s*)\/[^\/\\\n]*(?:\\.[^\/\\\n]*)*\/[gim]*(?:\s*\w+)/
+ , _replace: function( all ) {
+ return this.x( all, '//num' );
+ }
+ }
+ , reg_exp: {
+ _match: /\/[^\/\\\n]*(?:\\.[^\/\\\n]*)*\/[gim]*/
+ , _style: 'color: maroon;'
+ }
+ , brace: {
+ _match: /[\{\}]/
+ , _style: 'color: red;'
+ }
+ , statement: {
+ _match: /\b(with|while|var|try|throw|switch|return|if|for|finally|else|do|default|continue|const|catch|case|break)\b/
+ , _style: 'color: navy;'
+ }
+ , error: {
+ _match: /\b(URIError|TypeError|SyntaxError|ReferenceError|RangeError|EvalError|Error)\b/
+ , _style: 'color: Coral;'
+ }
+ , object: {
+ _match: /\b(String|RegExp|Object|Number|Math|Function|Date|Boolean|Array)\b/
+ , _style: 'color: DeepPink;'
+ }
+ , property: {
+ _match: /\b(undefined|arguments|NaN|Infinity)\b/
+ , _style: 'color: Purple;'
+ }
+ , 'function': {
+ _match: /\b(parseInt|parseFloat|isNaN|isFinite|eval|encodeURIComponent|encodeURI|decodeURIComponent|decodeURI)\b/
+ , _style: 'color: olive;'
+ }
+ , operator: {
+ _match: /\b(void|typeof|this|new|instanceof|in|function|delete)\b/
+ , _style: 'color: RoyalBlue;'
+ }
+ , liveconnect: {
+ _match: /\b(sun|netscape|java|Packages|JavaPackage|JavaObject|JavaClass|JavaArray|JSObject|JSException)\b/
+ , _style: 'text-decoration: overline;'
+ }
+ }
+};
+
+
+
+ChiliBook.recipes[ "css.js" ] =
+{
+ _name: 'css'
+ , _case: true
+ , _main: {
+ comment: {
+ _match: /\/\*[^*]*\*+(?:[^\/][^*]*\*+)*\//
+ , _style: "color: olive;"
+ }
+ , directive: {
+ _match: /@\w+/
+ , _style: "color: fuchsia;"
+ }
+ , url: {
+ _match: /\b(url\s*\()([^)]+)(\))/
+ , _replace: "<span class='url'>$1</span>$2<span class='url'>$3</span>"
+ , _style: "color: fuchsia;"
+ }
+ , block: {
+ _match: /\{([\w\W]*?)\}/
+ , _replace: function( all, pairs ) {
+ return '{' + this.x( pairs, '/definition' ) + '}';
+ }
+ }
+ , 'class': {
+ _match: /\.\w+/
+ , _style: "color: #CC0066;"
+ }
+ , id: {
+ _match: /#\w+/
+ , _style: "color: IndianRed;"
+ }
+ , pseudo: {
+ _match: /:\w+/
+ , _style: "color: #CC9900;"
+ }
+ , element: {
+ _match: /\w+/
+ , _style: "color: Purple;"
+ }
+ }
+ , definition: {
+ comment: {
+ _match: /\/\*[^*]*\*+(?:[^\/][^*]*\*+)*\//
+ }
+ , property: {
+ _match: /\b(?:zoom|z-index|writing-mode|word-wrap|word-spacing|word-break|width|widows|white-space|volume|voice-family|visibility|vertical-align|unicode-bidi|top|text-underline-position|text-transform|text-shadow|text-overflow|text-kashida-space|text-justify|text-indent|text-decoration|text-autospace|text-align-last|text-align|table-layout|stress|speech-rate|speak-punctuation|speak-numeral|speak-header|speak|size|scrollbar-track-color|scrollbar-shadow-color|scrollbar-highlight-color|scrollbar-face-color|scrollbar-dark-shadow-color|scrollbar-base-color|scrollbar-arrow-color|scrollbar-3d-light-color|ruby-position|ruby-overhang|ruby-align|right|richness|quotes|position|play-during|pitch-range|pitch|pause-before|pause-after|pause|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-Y|overflow-X|overflow|outline-width|outline-style|outline-color|outline|orphans|min-width|min-height|max-width|max-height|marks|marker-offset|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|line-break|letter-spacing|left|layout-grid-type|layout-grid-mode|layout-grid-line|layout-grid-char-spacing|layout-grid-char|layout-grid|layout-flow|layer-background-image|layer-background-color|include-source|ime-mode|height|font-weight|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-family|font|float|filter|empty-cells|elevation|display|direction|cursor|cue-before|cue-after|cue|counter-reset|counter-increment|content|color|clip|clear|caption-side|bottom|border-width|border-top-width|border-top-style|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-left-width|border-left-style|border-left-color|border-left|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-color|border-bottom|border|behavior|background-repeat|background-position-y|background-position-x|background-position|background-image|background-color|background-attachment|background|azimuth|accelerator)\s*:/
+ , _style: "color: #330066;"
+ }
+ , special: {
+ _match: /\b(?:-use-link-source|-set-link-source|-replace|-moz-user-select|-moz-user-modify|-moz-user-input|-moz-user-focus|-moz-outline-width|-moz-outline-style|-moz-outline-color|-moz-outline|-moz-opacity|-moz-border-top-colors|-moz-border-right-colors|-moz-border-radius-topright|-moz-border-radius-topleft|-moz-border-radius-bottomright|-moz-border-radius-bottomleft|-moz-border-radius|-moz-border-left-colors|-moz-border-bottom-colors|-moz-binding)\s*:/
+ , _style: "color: #330066; text-decoration: underline;"
+ }
+ , url: {
+ _match: /\b(url\s*\()([^)]+)(\))/
+ , _replace: "<span class='url'>$1</span>$2<span class='url'>$3</span>"
+ }
+ , value: {
+ _match: /\b(?:xx-small|xx-large|x-soft|x-small|x-slow|x-low|x-loud|x-large|x-high|x-fast|wider|wait|w-resize|visible|url|uppercase|upper-roman|upper-latin|upper-alpha|underline|ultra-expanded|ultra-condensed|tv|tty|transparent|top|thin|thick|text-top|text-bottom|table-row-group|table-row|table-header-group|table-footer-group|table-column-group|table-column|table-cell|table-caption|sw-resize|super|sub|status-bar|static|square|spell-out|speech|solid|soft|smaller|small-caption|small-caps|small|slower|slow|silent|show|separate|semi-expanded|semi-condensed|se-resize|scroll|screen|s-resize|run-in|rtl|rightwards|right-side|right|ridge|rgb|repeat-y|repeat-x|repeat|relative|projection|print|pre|portrait|pointer|overline|outside|outset|open-quote|once|oblique|nw-resize|nowrap|normal|none|no-repeat|no-open-quote|no-close-quote|ne-resize|narrower|n-resize|move|mix|middle|message-box|medium|marker|ltr|lowercase|lower-roman|lower-latin|lower-greek|lower-alpha|lower|low|loud|local|list-item|line-through|lighter|level|leftwards|left-side|left|larger|large|landscape|justify|italic|invert|inside|inset|inline-table|inline|icon|higher|high|hide|hidden|help|hebrew|handheld|groove|format|fixed|faster|fast|far-right|far-left|fantasy|extra-expanded|extra-condensed|expanded|embossed|embed|e-resize|double|dotted|disc|digits|default|decimal-leading-zero|decimal|dashed|cursive|crosshair|cross|crop|counters|counter|continuous|condensed|compact|collapse|code|close-quote|circle|center-right|center-left|center|caption|capitalize|braille|bottom|both|bolder|bold|block|blink|bidi-override|below|behind|baseline|avoid|auto|aural|attr|armenian|always|all|absolute|above)\b/
+ , _style: "color: #3366FF;"
+ }
+ , string: {
+ _match: /(?:\'[^\'\\\n]*(?:\\.[^\'\\\n]*)*\')|(?:\"[^\"\\\n]*(?:\\.[^\"\\\n]*)*\")/
+ , _style: "color: teal;"
+ }
+ , number: {
+ _match: /(?:\b[+-]?(?:\d*\.?\d+|\d+\.?\d*))(?:%|(?:(?:px|pt|em|)\b))/
+ , _style: "color: red;"
+ }
+ , color : {
+ _match: /(?:\#[a-fA-F0-9]{3,6})|\b(?:yellow|white|teal|silver|red|purple|olive|navy|maroon|lime|green|gray|fuchsia|blue|black|aqua|YellowGreen|Yellow|WhiteSmoke|White|Wheat|Violet|Turquoise|Tomato|Thistle|Teal|Tan|SteelBlue|SpringGreen|Snow|SlateGrey|SlateGray|SlateBlue|SkyBlue|Silver|Sienna|SeaShell|SeaGreen|SandyBrown|Salmon|SaddleBrown|RoyalBlue|RosyBrown|Red|Purple|PowderBlue|Plum|Pink|Peru|PeachPuff|PapayaWhip|PaleVioletRed|PaleTurquoise|PaleGreen|PaleGoldenRod|Orchid|OrangeRed|Orange|OliveDrab|Olive|OldLace|Navy|NavajoWhite|Moccasin|MistyRose|MintCream|MidnightBlue|MediumVioletRed|MediumTurquoise|MediumSpringGreen|MediumSlateBlue|MediumSeaGreen|MediumPurple|MediumOrchid|MediumBlue|MediumAquaMarine|Maroon|Magenta|Linen|LimeGreen|Lime|LightYellow|LightSteelBlue|LightSlateGrey|LightSlateGray|LightSkyBlue|LightSeaGreen|LightSalmon|LightPink|LightGrey|LightGreen|LightGray|LightGoldenRodYellow|LightCyan|LightCoral|LightBlue|LemonChiffon|LawnGreen|LavenderBlush|Lavender|Khaki|Ivory|Indigo|IndianRed|HotPink|HoneyDew|Grey|GreenYellow|Green|Gray|GoldenRod|Gold|GhostWhite|Gainsboro|Fuchsia|ForestGreen|FloralWhite|FireBrick|DodgerBlue|DimGrey|DimGray|DeepSkyBlue|DeepPink|Darkorange|DarkViolet|DarkTurquoise|DarkSlateGrey|DarkSlateGray|DarkSlateBlue|DarkSeaGreen|DarkSalmon|DarkRed|DarkOrchid|DarkOliveGreen|DarkMagenta|DarkKhaki|DarkGrey|DarkGreen|DarkGray|DarkGoldenRod|DarkCyan|DarkBlue|Cyan|Crimson|Cornsilk|CornflowerBlue|Coral|Chocolate|Chartreuse|CadetBlue|BurlyWood|Brown|BlueViolet|Blue|BlanchedAlmond|Black|Bisque|Beige|Azure|Aquamarine|Aqua|AntiqueWhite|AliceBlue)\b/
+ , _style: "color: green;"
+ }
+ }
+};
+
+
diff --git a/js/jquery/jquery.tipsy.js b/js/jquery/jquery.tipsy.js
new file mode 100644
index 000000000..b0a644a01
--- /dev/null
+++ b/js/jquery/jquery.tipsy.js
@@ -0,0 +1,104 @@
+(function($) {
+ $.fn.tipsy = function(options) {
+
+ options = $.extend({}, $.fn.tipsy.defaults, options);
+
+ return this.each(function() {
+
+ var opts = $.fn.tipsy.elementOptions(this, options);
+
+ $(this).hover(function() {
+
+ $.data(this, 'cancel.tipsy', true);
+
+ var tip = $.data(this, 'active.tipsy');
+ if (!tip) {
+ tip = $('<div class="tipsy"><div class="tipsy-inner"/></div>');
+ tip.css({position: 'absolute', zIndex: 100000});
+ $.data(this, 'active.tipsy', tip);
+ }
+
+ if ($(this).attr('title') || typeof($(this).attr('original-title')) != 'string') {
+ $(this).attr('original-title', $(this).attr('title') || '').removeAttr('title');
+ }
+
+ var title;
+ if (typeof opts.title == 'string') {
+ title = $(this).attr(opts.title == 'title' ? 'original-title' : opts.title);
+ } else if (typeof opts.title == 'function') {
+ title = opts.title.call(this);
+ }
+
+ tip.find('.tipsy-inner')[opts.html ? 'html' : 'text'](title || opts.fallback);
+
+ var pos = $.extend({}, $(this).offset(), {width: this.offsetWidth, height: this.offsetHeight});
+ tip.get(0).className = 'tipsy'; // reset classname in case of dynamic gravity
+ tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).appendTo(document.body);
+ var actualWidth = tip[0].offsetWidth, actualHeight = tip[0].offsetHeight;
+ var gravity = (typeof opts.gravity == 'function') ? opts.gravity.call(this) : opts.gravity;
+
+ switch (gravity.charAt(0)) {
+ case 'n':
+ tip.css({top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-north');
+ break;
+ case 's':
+ tip.css({top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-south');
+ break;
+ case 'e':
+ tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}).addClass('tipsy-east');
+ break;
+ case 'w':
+ tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}).addClass('tipsy-west');
+ break;
+ }
+
+ if (opts.fade) {
+ tip.css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 0.8});
+ } else {
+ tip.css({visibility: 'visible'});
+ }
+
+ }, function() {
+ $.data(this, 'cancel.tipsy', false);
+ var self = this;
+ setTimeout(function() {
+ if ($.data(this, 'cancel.tipsy')) return;
+ var tip = $.data(self, 'active.tipsy');
+ if (opts.fade) {
+ tip.stop().fadeOut(function() { $(this).remove(); });
+ } else {
+ tip.remove();
+ }
+ }, 100);
+
+ });
+
+ });
+
+ };
+
+ // Overwrite this method to provide options on a per-element basis.
+ // For example, you could store the gravity in a 'tipsy-gravity' attribute:
+ // return $.extend({}, options, {gravity: $(ele).attr('tipsy-gravity') || 'n' });
+ // (remember - do not modify 'options' in place!)
+ $.fn.tipsy.elementOptions = function(ele, options) {
+ return $.metadata ? $.extend({}, options, $(ele).metadata()) : options;
+ };
+
+ $.fn.tipsy.defaults = {
+ fade: false,
+ fallback: '',
+ gravity: 'n',
+ html: false,
+ title: 'title'
+ };
+
+ $.fn.tipsy.autoNS = function() {
+ return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n';
+ };
+
+ $.fn.tipsy.autoWE = function() {
+ return $(this).offset().left > ($(document).scrollLeft() + $(window).width() / 2) ? 'e' : 'w';
+ };
+
+})(jQuery);
diff --git a/js/less-1.0.41.min.js b/js/less-1.0.41.min.js
new file mode 100644
index 000000000..005eb9940
--- /dev/null
+++ b/js/less-1.0.41.min.js
@@ -0,0 +1,69 @@
+//
+// LESS - Leaner CSS v1.0.41
+// http://lesscss.org
+//
+// Copyright (c) 2010, Alexis Sellier
+// Licensed under the Apache 2.0 License.
+//
+(function(z){function s(d){return z.less[d.split("/")[1]]}function U(){for(var d=document.getElementsByTagName("style"),b=0;b<d.length;b++)if(d[b].type.match(V))(new o.Parser).parse(d[b].innerHTML||"",function(a,g){d[b].type="text/css";d[b].innerHTML=g.toCSS()})}function W(d,b){for(var a=0;a<o.sheets.length;a++)X(o.sheets[a],d,b,o.sheets.length-(a+1))}function X(d,b,a,g){var e=z.location.href.replace(/[#?].*$/,""),h=d.href.replace(/\?.*$/,""),i=B&&B.getItem(h),k=B&&B.getItem(h+":timestamp"),n={css:i,
+timestamp:k};/^(https?|file):/.test(h)||(h=e.slice(0,e.lastIndexOf("/")+1)+h);Z(d.href,d.type,function(r,p){if(!a&&n&&p&&(new Date(p)).valueOf()===(new Date(n.timestamp)).valueOf()){N(n.css,d);b(null,d,{local:true,remaining:g})}else try{(new o.Parser({optimization:o.optimization,paths:[h.replace(/[\w\.-]+$/,"")],mime:d.type})).parse(r,function(K,O){if(K)return Q(K,h);try{b(O,d,{local:false,lastModified:p,remaining:g});var F=document.getElementById("less-error-message:"+R(h));F&&F.parentNode.removeChild(F)}catch(f){Q(f,
+h)}})}catch(t){Q(t,h)}},function(r,p){throw Error("Couldn't load "+p+" ("+r+")");})}function R(d){return d.replace(/^[a-z]+:\/\/?[^\/]+/,"").replace(/^\//,"").replace(/\?.*$/,"").replace(/\.[^\.\/]+$/,"").replace(/[^\.\w-]+/g,"-").replace(/\./g,":")}function N(d,b,a){var g,e=b.href?b.href.replace(/\?.*$/,""):"",h="less:"+(b.title||R(e));if((g=document.getElementById(h))===null){g=document.createElement("style");g.type="text/css";g.media=b.media||"screen";g.id=h;document.getElementsByTagName("head")[0].appendChild(g)}if(g.styleSheet)try{g.styleSheet.cssText=
+d}catch(i){throw Error("Couldn't reassign styleSheet.cssText.");}else(function(k){if(g.childNodes.length>0)g.firstChild.nodeValue!==k.nodeValue&&g.replaceChild(k,g.firstChild);else g.appendChild(k)})(document.createTextNode(d));if(a&&B){H("saving "+e+" to cache.");B.setItem(e,d);B.setItem(e+":timestamp",a)}}function Z(d,b,a,g){function e(k,n,r){if(k.status>=200&&k.status<300)n(k.responseText,k.getResponseHeader("Last-Modified"));else typeof r==="function"&&r(k.status,d)}var h=$(),i=P?false:o.async;
+typeof h.overrideMimeType==="function"&&h.overrideMimeType("text/css");h.open("GET",d,i);h.setRequestHeader("Accept",b||"text/x-less, text/css; q=0.9, */*; q=0.5");h.send(null);if(P)h.status===0?a(h.responseText):g(h.status,d);else if(i)h.onreadystatechange=function(){h.readyState==4&&e(h,a,g)};else e(h,a,g)}function $(){if(z.XMLHttpRequest)return new XMLHttpRequest;else try{return new ActiveXObject("MSXML2.XMLHTTP.3.0")}catch(d){H("browser doesn't support AJAX.");return null}}function H(d){o.env==
+"development"&&typeof console!=="undefined"&&console.log("less: "+d)}function Q(d,b){var a="less-error-message:"+R(b),g=document.createElement("div"),e,h;g.id=a;g.className="less-error-message";h="<h3>"+(d.message||"There is an error in your .less file")+'</h3><p><a href="'+b+'">'+b+"</a> ";if(d.extract)h+="on line "+d.line+", column "+(d.column+1)+":</p>"+'<ul>\n<li><label>[-1]</label><pre class="ctx">{0}</pre></li>\n<li><label>[0]</label><pre>{current}</pre></li>\n<li><label>[1]</label><pre class="ctx">{2}</pre></li>\n</ul>'.replace(/\[(-?\d)\]/g,
+function(i,k){return parseInt(d.line)+parseInt(k)||""}).replace(/\{(\d)\}/g,function(i,k){return d.extract[parseInt(k)]||""}).replace(/\{current\}/,d.extract[1].slice(0,d.column)+'<span class="error">'+d.extract[1].slice(d.column)+"</span>");g.innerHTML=h;N(".less-error-message ul, .less-error-message li {\nlist-style-type: none;\nmargin-right: 15px;\npadding: 4px 0;\nmargin: 0;\n}\n.less-error-message label {\nfont-size: 12px;\nmargin-right: 15px;\npadding: 4px 0;\ncolor: #cc7777;\n}\n.less-error-message pre {\ncolor: #ee4444;\npadding: 4px 0;\nmargin: 0;\ndisplay: inline-block;\n}\n.less-error-message pre.ctx {\ncolor: #dd4444;\n}\n.less-error-message h3 {\nfont-size: 20px;\nfont-weight: bold;\npadding: 15px 0 5px 0;\nmargin: 0;\n}\n.less-error-message a {\ncolor: #10a\n}\n.less-error-message .error {\ncolor: red;\nfont-weight: bold;\npadding-bottom: 2px;\nborder-bottom: 1px dashed red;\n}",
+{title:"error-message"});g.style.cssText="font-family: Arial, sans-serif;border: 1px solid #e00;background-color: #eee;border-radius: 5px;-webkit-border-radius: 5px;-moz-border-radius: 5px;color: #e00;padding: 15px;margin-bottom: 15px";if(o.env=="development")e=setInterval(function(){if(document.body){document.getElementById(a)?document.body.replaceChild(g,document.getElementById(a)):document.body.insertBefore(g,document.body.firstChild);clearInterval(e)}},10)}if(!Array.isArray)Array.isArray=function(d){return Object.prototype.toString.call(d)===
+"[object Array]"||d instanceof Array};if(!Array.prototype.forEach)Array.prototype.forEach=function(d,b){for(var a=this.length>>>0,g=0;g<a;g++)g in this&&d.call(b,this[g],g,this)};if(!Array.prototype.map)Array.prototype.map=function(d,b){for(var a=this.length>>>0,g=Array(a),e=0;e<a;e++)if(e in this)g[e]=d.call(b,this[e],e,this);return g};if(!Array.prototype.filter)Array.prototype.filter=function(d,b){for(var a=[],g=0;g<this.length;g++)d.call(b,this[g])&&a.push(this[g]);return a};if(!Array.prototype.reduce)Array.prototype.reduce=
+function(d){var b=this.length>>>0,a=0;if(b===0&&arguments.length===1)throw new TypeError;if(arguments.length>=2)var g=arguments[1];else{do{if(a in this){g=this[a++];break}if(++a>=b)throw new TypeError;}while(1)}for(;a<b;a++)if(a in this)g=d.call(null,g,this[a],a,this);return g};if(!Array.prototype.indexOf)Array.prototype.indexOf=function(d,b){var a=this.length,g=b||0;if(!a)return-1;if(g>=a)return-1;if(g<0)g+=a;for(;g<a;g++)if(Object.prototype.hasOwnProperty.call(this,g))if(d===this[g])return g;return-1};
+if(!Object.keys)Object.keys=function(d){var b=[],a;for(a in d)Object.prototype.hasOwnProperty.call(d,a)&&b.push(a);return b};if(!String.prototype.trim)String.prototype.trim=function(){return String(this).replace(/^\s\s*/,"").replace(/\s\s*$/,"")};var o,m;if(typeof z==="undefined"){o=exports;m=s("less/tree")}else{if(typeof z.less==="undefined")z.less={};o=z.less;m=z.less.tree={}}o.Parser=function(d){function b(){if(h>t){p[i]=p[i].slice(h-t);t=h}}function a(f){var j,l,q;if(f instanceof Function)return f.call(K.parsers);
+else if(typeof f==="string"){f=e.charAt(h)===f?f:null;j=1;b()}else{b();if(f=f.exec(p[i]))j=f[0].length;else return null}if(f){mem=h+=j;for(q=h+p[i].length-j;h<q;){l=e.charCodeAt(h);if(!(l===32||l===10||l===9))break;h++}p[i]=p[i].slice(j+(h-mem));t=h;p[i].length===0&&i<p.length-1&&i++;return typeof f==="string"?f:f.length===1?f[0]:f}}function g(f){return typeof f==="string"?e.charAt(h)===f:f.test(p[i])?true:false}var e,h,i,k,n,r,p,t,K,O=function(){},F=this.imports={paths:d&&d.paths||[],queue:[],files:{},
+mime:d&&d.mime,push:function(f,j){var l=this;this.queue.push(f);o.Parser.importer(f,this.paths,function(q){l.queue.splice(l.queue.indexOf(f),1);l.files[f]=q;j(q);l.queue.length===0&&O()},d)}};this.env=d=d||{};this.optimization="optimization"in this.env?this.env.optimization:1;this.env.filename=this.env.filename||null;return K={imports:F,parse:function(f,j){var l,q,I,S=null;h=i=t=r=0;p=[];e=f.replace(/\r\n/g,"\n");p=function(L){for(var D=0,E=/[^"'`\{\}\/]+/g,G=/\/\*(?:[^*]|\*+[^\/*])*\*+\/|\/\/.*/g,
+A=0,w,x=L[0],y,u=0,v;u<e.length;u++){E.lastIndex=u;if(w=E.exec(e))if(w.index===u){u+=w[0].length;x.push(w[0])}v=e.charAt(u);G.lastIndex=u;if(!y&&v==="/"){w=e.charAt(u+1);if(w==="/"||w==="*")if(w=G.exec(e))if(w.index===u){u+=w[0].length;x.push(w[0]);v=e.charAt(u)}}if(v==="{"&&!y){A++;x.push(v)}else if(v==="}"&&!y){A--;x.push(v);L[++D]=x=[]}else{if(v==='"'||v==="'"||v==="`")y=y?y===v?false:y:v;x.push(v)}}if(A>0)throw{type:"Syntax",message:"Missing closing `}`",filename:d.filename};return L.map(function(C){return C.join("")})}([[]]);
+l=new m.Ruleset([],a(this.parsers.primary));l.root=true;l.toCSS=function(L){var D,E;return function(G,A){function w(v){return v?(e.slice(0,v).match(/\n/g)||"").length:null}var x=[];G=G||{};if(typeof A==="object"&&!Array.isArray(A)){A=Object.keys(A).map(function(v){var C=A[v];if(!(C instanceof m.Value)){C instanceof m.Expression||(C=new m.Expression([C]));C=new m.Value([C])}return new m.Rule("@"+v,C,false,0)});x=[new m.Ruleset(null,A)]}try{var y=L.call(this,{frames:x}).toCSS([],{compress:G.compress||
+false})}catch(u){E=e.split("\n");D=w(u.index);x=u.index;for(y=-1;x>=0&&e.charAt(x)!=="\n";x--)y++;throw{type:u.type,message:u.message,filename:d.filename,index:u.index,line:typeof D==="number"?D+1:null,callLine:u.call&&w(u.call)+1,callExtract:E[w(u.call)],stack:u.stack,column:y,extract:[E[D-1],E[D],E[D+1]]};}return G.compress?y.replace(/(\s)+/g,"$1"):y}}(l.eval);if(h<e.length-1){h=r;I=e.split("\n");q=(e.slice(0,h).match(/\n/g)||"").length+1;for(var T=h,Y=-1;T>=0&&e.charAt(T)!=="\n";T--)Y++;S={name:"ParseError",
+message:"Syntax Error on line "+q,filename:d.filename,line:q,column:Y,extract:[I[q-2],I[q-1],I[q]]}}if(this.imports.queue.length>0)O=function(){j(S,l)};else j(S,l)},parsers:{primary:function(){for(var f,j=[];(f=a(this.mixin.definition)||a(this.rule)||a(this.ruleset)||a(this.mixin.call)||a(this.comment)||a(this.directive))||a(/^[\s\n]+/);)f&&j.push(f);return j},comment:function(){var f;if(e.charAt(h)==="/")if(e.charAt(h+1)==="/")return new m.Comment(a(/^\/\/.*/),true);else if(f=a(/^\/\*(?:[^*]|\*+[^\/*])*\*+\/\n?/))return new m.Comment(f)},
+entities:{quoted:function(){var f;if(!(e.charAt(h)!=='"'&&e.charAt(h)!=="'"))if(f=a(/^"((?:[^"\\\r\n]|\\.)*)"|'((?:[^'\\\r\n]|\\.)*)'/))return new m.Quoted(f[0],f[1]||f[2])},keyword:function(){var f;if(f=a(/^[A-Za-z-]+/))return new m.Keyword(f)},call:function(){var f,j;if(f=/^([\w-]+|%)\(/.exec(p[i])){f=f[1].toLowerCase();if(f==="url")return null;else h+=f.length+1;if(f==="alpha")return a(this.alpha);j=a(this.entities.arguments);if(a(")"))if(f)return new m.Call(f,j)}},arguments:function(){for(var f=
+[],j;j=a(this.expression);){f.push(j);if(!a(","))break}return f},literal:function(){return a(this.entities.dimension)||a(this.entities.color)||a(this.entities.quoted)},url:function(){var f;if(!(e.charAt(h)!=="u"||!a(/^url\(/))){f=a(this.entities.quoted)||a(this.entities.variable)||a(this.entities.dataURI)||a(/^[-\w%@$\/.&=:;#+?]+/)||"";if(!a(")"))throw Error("missing closing ) for url()");return new m.URL(f.value||f.data||f instanceof m.Variable?f:new m.Anonymous(f),F.paths)}},dataURI:function(){var f;
+if(a(/^data:/)){f={};f.mime=a(/^[^\/]+\/[^,;)]+/)||"";f.charset=a(/^;\s*charset=[^,;)]+/)||"";f.base64=a(/^;\s*base64/)||"";f.data=a(/^,\s*[^)]+/);if(f.data)return f}},variable:function(){var f,j=h;if(e.charAt(h)==="@"&&(f=a(/^@[\w-]+/)))return new m.Variable(f,j)},color:function(){var f;if(e.charAt(h)==="#"&&(f=a(/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})/)))return new m.Color(f[1])},dimension:function(){var f;f=e.charCodeAt(h);if(!(f>57||f<45||f===47))if(f=a(/^(-?\d*\.?\d+)(px|%|em|pc|ex|in|deg|s|ms|pt|cm|mm|rad|grad|turn)?/))return new m.Dimension(f[1],
+f[2])},javascript:function(){var f;if(e.charAt(h)==="`")if(f=a(/^`([^`]*)`/))return new m.JavaScript(f[1],h)}},variable:function(){var f;if(e.charAt(h)==="@"&&(f=a(/^(@[\w-]+)\s*:/)))return f[1]},shorthand:function(){var f,j;if(g(/^[@\w.%-]+\/[@\w.-]+/))if((f=a(this.entity))&&a("/")&&(j=a(this.entity)))return new m.Shorthand(f,j)},mixin:{call:function(){var f=[],j,l,q,I=h;j=e.charAt(h);if(!(j!=="."&&j!=="#")){for(;j=a(/^[#.](?:[\w-]|\\(?:[a-fA-F0-9]{1,6} ?|[^a-fA-F0-9]))+/);){f.push(new m.Element(l,
+j));l=a(">")}a("(")&&(q=a(this.entities.arguments))&&a(")");if(f.length>0&&(a(";")||g("}")))return new m.mixin.Call(f,q,I)}},definition:function(){var f,j=[],l,q;if(!(e.charAt(h)!=="."&&e.charAt(h)!=="#"||g(/^[^{]*(;|})/)))if(f=a(/^([#.](?:[\w-]|\\(?:[a-fA-F0-9]{1,6} ?|[^a-fA-F0-9]))+)\s*\(/)){for(f=f[1];l=a(this.entities.variable)||a(this.entities.literal)||a(this.entities.keyword);){if(l instanceof m.Variable)if(a(":"))if(q=a(this.expression))j.push({name:l.name,value:q});else throw Error("Expected value");
+else j.push({name:l.name});else j.push({value:l});if(!a(","))break}if(!a(")"))throw Error("Expected )");if(l=a(this.block))return new m.mixin.Definition(f,j,l)}}},entity:function(){return a(this.entities.literal)||a(this.entities.variable)||a(this.entities.url)||a(this.entities.call)||a(this.entities.keyword)||a(this.entities.javascript)},end:function(){return a(";")||g("}")},alpha:function(){var f;if(a(/^opacity=/i))if(f=a(/^\d+/)||a(this.entities.variable)){if(!a(")"))throw Error("missing closing ) for alpha()");
+return new m.Alpha(f)}},element:function(){var f;c=a(this.combinator);if(f=a(/^(?:[.#]?|:*)(?:[\w-]|\\(?:[a-fA-F0-9]{1,6} ?|[^a-fA-F0-9]))+/)||a("*")||a(this.attribute)||a(/^\([^)@]+\)/))return new m.Element(c,f)},combinator:function(){var f=e.charAt(h);if(f===">"||f==="&"||f==="+"||f==="~"){for(h++;e.charAt(h)===" ";)h++;return new m.Combinator(f)}else if(f===":"&&e.charAt(h+1)===":"){for(h+=2;e.charAt(h)===" ";)h++;return new m.Combinator("::")}else return e.charAt(h-1)===" "?new m.Combinator(" "):
+new m.Combinator(null)},selector:function(){for(var f,j=[],l;f=a(this.element);){l=e.charAt(h);j.push(f);if(l==="{"||l==="}"||l===";"||l===",")break}if(j.length>0)return new m.Selector(j)},tag:function(){return a(/^[a-zA-Z][a-zA-Z-]*[0-9]?/)||a("*")},attribute:function(){var f="",j,l,q;if(a("[")){if(j=a(/^[a-zA-Z-]+/)||a(this.entities.quoted))f=(q=a(/^[|~*$^]?=/))&&(l=a(this.entities.quoted)||a(/^[\w-]+/))?[j,q,l.toCSS?l.toCSS():l].join(""):j;if(a("]"))if(f)return"["+f+"]"}},block:function(){var f;
+if(a("{")&&(f=a(this.primary))&&a("}"))return f},ruleset:function(){var f=[],j,l;k=p[i];t=n=h;if(j=/^([.#: \w-]+)[\s\n]*\{/.exec(p[i])){h+=j[0].length-1;f=[new m.Selector([new m.Element(null,j[1])])]}else{for(;j=a(this.selector);){f.push(j);if(!a(","))break}j&&a(this.comment)}if(f.length>0&&(l=a(this.block)))return new m.Ruleset(f,l);else{r=h;p[i]=k;t=h=n}},rule:function(){var f,j;f=e.charAt(h);var l;k=p[i];t=n=h;if(!(f==="."||f==="#"||f==="&"))if(f=a(this.variable)||a(this.property)){if(f.charAt(0)!=
+"@"&&(match=/^([^@+\/'"*`(;{}-]*);/.exec(p[i]))){h+=match[0].length-1;j=new m.Anonymous(match[1])}else j=f==="font"?a(this.font):a(this.value);l=a(this.important);if(j&&a(this.end))return new m.Rule(f,j,l,n);else{r=h;p[i]=k;t=h=n}}},"import":function(){var f;if(a(/^@import\s+/)&&(f=a(this.entities.quoted)||a(this.entities.url))&&a(";"))return new m.Import(f,F)},directive:function(){var f,j,l;if(e.charAt(h)==="@")if(j=a(this["import"]))return j;else if(f=a(/^@media|@page/)){l=(a(/^[^{]+/)||"").trim();
+if(j=a(this.block))return new m.Directive(f+" "+l,j)}else if(f=a(/^@[-a-z]+/))if(f==="@font-face"){if(j=a(this.block))return new m.Directive(f,j)}else if((j=a(this.entity))&&a(";"))return new m.Directive(f,j)},font:function(){for(var f=[],j=[],l;l=a(this.shorthand)||a(this.entity);)j.push(l);f.push(new m.Expression(j));if(a(","))for(;l=a(this.expression);){f.push(l);if(!a(","))break}return new m.Value(f)},value:function(){for(var f,j=[];f=a(this.expression);){j.push(f);if(!a(","))break}if(j.length>
+0)return new m.Value(j)},important:function(){if(e.charAt(h)==="!")return a(/^! *important/)},sub:function(){var f;if(a("(")&&(f=a(this.expression))&&a(")"))return f},multiplication:function(){var f,j,l,q;if(f=a(this.operand)){for(;(l=a("/")||a("*"))&&(j=a(this.operand));)q=new m.Operation(l,[q||f,j]);return q||f}},addition:function(){var f,j,l,q;if(f=a(this.multiplication)){for(;(l=a(/^[-+]\s+/)||e.charAt(h-1)!=" "&&(a("+")||a("-")))&&(j=a(this.multiplication));)q=new m.Operation(l,[q||f,j]);return q||
+f}},operand:function(){return a(this.sub)||a(this.entities.dimension)||a(this.entities.color)||a(this.entities.variable)||a(this.entities.call)},expression:function(){for(var f,j=[];f=a(this.addition)||a(this.entity);)j.push(f);if(j.length>0)return new m.Expression(j)},property:function(){var f;if(f=a(/^(\*?-?[-a-z_0-9]+)\s*:/))return f[1]}}}};if(typeof z!=="undefined")o.Parser.importer=function(d,b,a,g){if(d.charAt(0)!=="/"&&b.length>0)d=b[0]+d;X({href:d,title:d,type:g.mime},a,true)};(function(d){function b(e){return d.functions.hsla(e.h,
+e.s,e.l,e.a)}function a(e){if(e instanceof d.Dimension)return parseFloat(e.unit=="%"?e.value/100:e.value);else if(typeof e==="number")return e;else throw{error:"RuntimeError",message:"color functions take numbers as parameters"};}function g(e){return Math.min(1,Math.max(0,e))}d.functions={rgb:function(e,h,i){return this.rgba(e,h,i,1)},rgba:function(e,h,i,k){e=[e,h,i].map(function(n){return a(n)});k=a(k);return new d.Color(e,k)},hsl:function(e,h,i){return this.hsla(e,h,i,1)},hsla:function(e,h,i,k){function n(t){t=
+t<0?t+1:t>1?t-1:t;return t*6<1?p+(r-p)*t*6:t*2<1?r:t*3<2?p+(r-p)*(2/3-t)*6:p}e=a(e)%360/360;h=a(h);i=a(i);k=a(k);var r=i<=0.5?i*(h+1):i+h-i*h,p=i*2-r;return this.rgba(n(e+1/3)*255,n(e)*255,n(e-1/3)*255,k)},hue:function(e){return new d.Dimension(Math.round(e.toHSL().h))},saturation:function(e){return new d.Dimension(Math.round(e.toHSL().s*100),"%")},lightness:function(e){return new d.Dimension(Math.round(e.toHSL().l*100),"%")},alpha:function(e){return new d.Dimension(e.toHSL().a)},saturate:function(e,
+h){var i=e.toHSL();i.s+=h.value/100;i.s=g(i.s);return b(i)},desaturate:function(e,h){var i=e.toHSL();i.s-=h.value/100;i.s=g(i.s);return b(i)},lighten:function(e,h){var i=e.toHSL();i.l+=h.value/100;i.l=g(i.l);return b(i)},darken:function(e,h){var i=e.toHSL();i.l-=h.value/100;i.l=g(i.l);return b(i)},fadein:function(e,h){var i=e.toHSL();i.a+=h.value/100;i.a=g(i.a);return b(i)},fadeout:function(e,h){var i=e.toHSL();i.a-=h.value/100;i.a=g(i.a);return b(i)},spin:function(e,h){var i=e.toHSL(),k=(i.h+h.value)%
+360;i.h=k<0?360+k:k;return b(i)},mix:function(e,h,i){i=i.value/100;var k=i*2-1,n=e.toHSL().a-h.toHSL().a;k=((k*n==-1?k:(k+n)/(1+k*n))+1)/2;n=1-k;return new d.Color([e.rgb[0]*k+h.rgb[0]*n,e.rgb[1]*k+h.rgb[1]*n,e.rgb[2]*k+h.rgb[2]*n],e.alpha*i+h.alpha*(1-i))},greyscale:function(e){return this.desaturate(e,new d.Dimension(100))},e:function(e){return new d.Anonymous(e instanceof d.JavaScript?e.evaluated:e)},"%":function(e){for(var h=Array.prototype.slice.call(arguments,1),i=e.value,k=0;k<h.length;k++)i=
+i.replace(/%s/,h[k].value).replace(/%[da]/,h[k].toCSS());i=i.replace(/%%/g,"%");return new d.Quoted('"'+i+'"',i)}}})(s("less/tree"));(function(d){d.Alpha=function(b){this.value=b};d.Alpha.prototype={toCSS:function(){return"alpha(opacity="+(this.value.toCSS?this.value.toCSS():this.value)+")"},eval:function(){return this}}})(s("less/tree"));(function(d){d.Anonymous=function(b){this.value=b.value||b};d.Anonymous.prototype={toCSS:function(){return this.value},eval:function(){return this}}})(s("less/tree"));
+(function(d){d.Call=function(b,a){this.name=b;this.args=a};d.Call.prototype={eval:function(b){var a=this.args.map(function(g){return g.eval(b)});return this.name in d.functions?d.functions[this.name].apply(d.functions,a):new d.Anonymous(this.name+"("+a.map(function(g){return g.toCSS()}).join(", ")+")")},toCSS:function(b){return this.eval(b).toCSS()}}})(s("less/tree"));(function(d){d.Color=function(b,a){this.rgb=Array.isArray(b)?b:b.length==6?b.match(/.{2}/g).map(function(g){return parseInt(g,16)}):
+b.split("").map(function(g){return parseInt(g+g,16)});this.alpha=typeof a==="number"?a:1};d.Color.prototype={eval:function(){return this},toCSS:function(){return this.alpha<1?"rgba("+this.rgb.map(function(b){return Math.round(b)}).concat(this.alpha).join(", ")+")":"#"+this.rgb.map(function(b){b=Math.round(b);b=(b>255?255:b<0?0:b).toString(16);return b.length===1?"0"+b:b}).join("")},operate:function(b,a){var g=[];a instanceof d.Color||(a=a.toColor());for(var e=0;e<3;e++)g[e]=d.operate(b,this.rgb[e],
+a.rgb[e]);return new d.Color(g)},toHSL:function(){var b=this.rgb[0]/255,a=this.rgb[1]/255,g=this.rgb[2]/255,e=this.alpha,h=Math.max(b,a,g),i=Math.min(b,a,g),k,n=(h+i)/2,r=h-i;if(h===i)k=i=0;else{i=n>0.5?r/(2-h-i):r/(h+i);switch(h){case b:k=(a-g)/r+(a<g?6:0);break;case a:k=(g-b)/r+2;break;case g:k=(b-a)/r+4}k/=6}return{h:k*360,s:i,l:n,a:e}}}})(s("less/tree"));(function(d){d.Comment=function(b,a){this.value=b;this.silent=!!a};d.Comment.prototype={toCSS:function(b){return b.compress?"":this.value},eval:function(){return this}}})(s("less/tree"));
+(function(d){d.Dimension=function(b,a){this.value=parseFloat(b);this.unit=a||null};d.Dimension.prototype={eval:function(){return this},toColor:function(){return new d.Color([this.value,this.value,this.value])},toCSS:function(){return this.value+this.unit},operate:function(b,a){return new d.Dimension(d.operate(b,this.value,a.value),this.unit||a.unit)}}})(s("less/tree"));(function(d){d.Directive=function(b,a){this.name=b;if(Array.isArray(a))this.ruleset=new d.Ruleset([],a);else this.value=a};d.Directive.prototype=
+{toCSS:function(b,a){if(this.ruleset){this.ruleset.root=true;return this.name+(a.compress?"{":" {\n ")+this.ruleset.toCSS(b,a).trim().replace(/\n/g,"\n ")+(a.compress?"}":"\n}\n")}else return this.name+" "+this.value.toCSS()+";\n"},eval:function(b){b.frames.unshift(this);this.ruleset=this.ruleset&&this.ruleset.eval(b);b.frames.shift();return this},variable:function(b){return d.Ruleset.prototype.variable.call(this.ruleset,b)},find:function(){return d.Ruleset.prototype.find.apply(this.ruleset,arguments)},
+rulesets:function(){return d.Ruleset.prototype.rulesets.apply(this.ruleset)}}})(s("less/tree"));(function(d){d.Element=function(b,a){this.combinator=b instanceof d.Combinator?b:new d.Combinator(b);this.value=a.trim()};d.Element.prototype.toCSS=function(b){return this.combinator.toCSS(b||{})+this.value};d.Combinator=function(b){this.value=b===" "?" ":b?b.trim():""};d.Combinator.prototype.toCSS=function(b){return{"":""," ":" ","&":"",":":" :","::":"::","+":b.compress?"+":" + ","~":b.compress?"~":" ~ ",
+">":b.compress?">":" > "}[this.value]}})(s("less/tree"));(function(d){d.Expression=function(b){this.value=b};d.Expression.prototype={eval:function(b){return this.value.length>1?new d.Expression(this.value.map(function(a){return a.eval(b)})):this.value[0].eval(b)},toCSS:function(b){return this.value.map(function(a){return a.toCSS(b)}).join(" ")}}})(s("less/tree"));(function(d){d.Import=function(b,a){var g=this;this._path=b;this.path=b instanceof d.Quoted?/\.(le?|c)ss$/.test(b.value)?b.value:b.value+
+".less":b.value.value||b.value;(this.css=/css$/.test(this.path))||a.push(this.path,function(e){if(!e)throw Error("Error parsing "+g.path);g.root=e})};d.Import.prototype={toCSS:function(){return this.css?"@import "+this._path.toCSS()+";\n":""},eval:function(b){var a;if(this.css)return this;else{a=new d.Ruleset(null,this.root.rules.slice(0));for(var g=0;g<a.rules.length;g++)a.rules[g]instanceof d.Import&&Array.prototype.splice.apply(a.rules,[g,1].concat(a.rules[g].eval(b)));return a.rules}}}})(s("less/tree"));
+(function(d){d.JavaScript=function(b,a){this.expression=b;this.index=a};d.JavaScript.prototype={toCSS:function(){return JSON.stringify(this.evaluated)},eval:function(b){var a=new Function("return ("+this.expression+")"),g={},e;for(e in b.frames[0].variables())g[e.slice(1)]={value:b.frames[0].variables()[e].value,toJS:function(){return this.value.eval(b).toCSS()}};try{this.evaluated=a.call(g)}catch(h){throw{message:"JavaScript evaluation error: '"+h.name+": "+h.message+"'",index:this.index};}return this}}})(s("less/tree"));
+(function(d){d.Keyword=function(b){this.value=b};d.Keyword.prototype={eval:function(){return this},toCSS:function(){return this.value}}})(s("less/tree"));(function(d){d.mixin={};d.mixin.Call=function(b,a,g){this.selector=new d.Selector(b);this.arguments=a;this.index=g};d.mixin.Call.prototype={eval:function(b){for(var a,g=[],e=false,h=0;h<b.frames.length;h++)if((a=b.frames[h].find(this.selector)).length>0){for(h=0;h<a.length;h++)if(a[h].match(this.arguments,b))try{Array.prototype.push.apply(g,a[h].eval(b,
+this.arguments).rules);e=true}catch(i){throw{message:i.message,index:i.index,stack:i.stack,call:this.index};}if(e)return g;else throw{message:"No matching definition was found for `"+this.selector.toCSS().trim()+"("+this.arguments.map(function(k){return k.toCSS()}).join(", ")+")`",index:this.index};}throw{message:this.selector.toCSS().trim()+" is undefined",index:this.index};}};d.mixin.Definition=function(b,a,g){this.name=b;this.selectors=[new d.Selector([new d.Element(null,b)])];this.params=a;this.arity=
+a.length;this.rules=g;this._lookups={};this.required=a.reduce(function(e,h){return!h.name||h.name&&!h.value?e+1:e},0);this.parent=d.Ruleset.prototype;this.frames=[]};d.mixin.Definition.prototype={toCSS:function(){return""},variable:function(b){return this.parent.variable.call(this,b)},variables:function(){return this.parent.variables.call(this)},find:function(){return this.parent.find.apply(this,arguments)},rulesets:function(){return this.parent.rulesets.apply(this)},eval:function(b,a){for(var g=
+new d.Ruleset(null,[]),e=0,h;e<this.params.length;e++)if(this.params[e].name)if(h=a&&a[e]||this.params[e].value)g.rules.unshift(new d.Rule(this.params[e].name,h.eval(b)));else throw{message:"wrong number of arguments for "+this.name+" ("+a.length+" for "+this.arity+")"};return(new d.Ruleset(null,this.rules.slice(0))).eval({frames:[this,g].concat(this.frames,b.frames)})},match:function(b,a){var g=b&&b.length||0;if(g<this.required)return false;if(this.required>0&&g>this.params.length)return false;g=
+Math.min(g,this.arity);for(var e=0;e<g;e++)if(!this.params[e].name)if(b[e].eval(a).toCSS()!=this.params[e].value.eval(a).toCSS())return false;return true}}})(s("less/tree"));(function(d){d.Operation=function(b,a){this.op=b.trim();this.operands=a};d.Operation.prototype.eval=function(b){var a=this.operands[0].eval(b);b=this.operands[1].eval(b);var g;if(a instanceof d.Dimension&&b instanceof d.Color)if(this.op==="*"||this.op==="+"){g=b;b=a;a=g}else throw{name:"OperationError",message:"Can't substract or divide a color from a number"};
+return a.operate(this.op,b)};d.operate=function(b,a,g){switch(b){case "+":return a+g;case "-":return a-g;case "*":return a*g;case "/":return a/g}}})(s("less/tree"));(function(d){d.Quoted=function(b,a){this.value=a||"";this.quote=b.charAt(0)};d.Quoted.prototype={toCSS:function(){return this.quote+this.value+this.quote},eval:function(){return this}}})(s("less/tree"));(function(d){d.Rule=function(b,a,g,e){this.name=b;this.value=a instanceof d.Value?a:new d.Value([a]);this.important=g?" "+g.trim():"";
+this.index=e;this.variable=b.charAt(0)==="@"?true:false};d.Rule.prototype.toCSS=function(b){return this.variable?"":this.name+(b.compress?":":": ")+this.value.toCSS(b)+this.important+";"};d.Rule.prototype.eval=function(b){return new d.Rule(this.name,this.value.eval(b),this.important,this.index)};d.Shorthand=function(b,a){this.a=b;this.b=a};d.Shorthand.prototype={toCSS:function(b){return this.a.toCSS(b)+"/"+this.b.toCSS(b)},eval:function(){return this}}})(s("less/tree"));(function(d){d.Ruleset=function(b,
+a){this.selectors=b;this.rules=a;this._lookups={}};d.Ruleset.prototype={eval:function(b){var a=new d.Ruleset(this.selectors,this.rules.slice(0));a.root=this.root;b.frames.unshift(a);if(a.root)for(var g=0;g<a.rules.length;g++)a.rules[g]instanceof d.Import&&Array.prototype.splice.apply(a.rules,[g,1].concat(a.rules[g].eval(b)));for(g=0;g<a.rules.length;g++)if(a.rules[g]instanceof d.mixin.Definition)a.rules[g].frames=b.frames.slice(0);for(g=0;g<a.rules.length;g++)a.rules[g]instanceof d.mixin.Call&&Array.prototype.splice.apply(a.rules,
+[g,1].concat(a.rules[g].eval(b)));g=0;for(var e;g<a.rules.length;g++){e=a.rules[g];e instanceof d.mixin.Definition||(a.rules[g]=e.eval?e.eval(b):e)}b.frames.shift();return a},match:function(b){return!b||b.length===0},variables:function(){return this._variables?this._variables:this._variables=this.rules.reduce(function(b,a){if(a instanceof d.Rule&&a.variable===true)b[a.name]=a;return b},{})},variable:function(b){return this.variables()[b]},rulesets:function(){return this._rulesets?this._rulesets:this._rulesets=
+this.rules.filter(function(b){return b instanceof d.Ruleset||b instanceof d.mixin.Definition})},find:function(b,a){a=a||this;var g=[],e=b.toCSS();if(e in this._lookups)return this._lookups[e];this.rulesets().forEach(function(h){if(h!==a)for(var i=0;i<h.selectors.length;i++)if(b.match(h.selectors[i])){b.elements.length>1?Array.prototype.push.apply(g,h.find(new d.Selector(b.elements.slice(1)),a)):g.push(h);break}});return this._lookups[e]=g},toCSS:function(b,a){var g=[],e=[],h=[],i=[],k;if(!this.root)if(b.length===
+0)i=this.selectors.map(function(r){return[r]});else for(k=0;k<this.selectors.length;k++)for(var n=0;n<b.length;n++)i.push(b[n].concat([this.selectors[k]]));for(n=0;n<this.rules.length;n++){k=this.rules[n];if(k.rules||k instanceof d.Directive)h.push(k.toCSS(i,a));else if(k instanceof d.Comment)k.silent||(this.root?h.push(k.toCSS(a)):e.push(k.toCSS(a)));else if(k.toCSS&&!k.variable)e.push(k.toCSS(a));else k.value&&!k.variable&&e.push(k.value.toString())}h=h.join("");if(this.root)g.push(e.join(a.compress?
+"":"\n"));else if(e.length>0){i=i.map(function(r){return r.map(function(p){return p.toCSS(a)}).join("").trim()}).join(a.compress?",":i.length>3?",\n":", ");g.push(i,(a.compress?"{":" {\n ")+e.join(a.compress?"":"\n ")+(a.compress?"}":"\n}\n"))}g.push(h);return g.join("")+(a.compress?"\n":"")}}})(s("less/tree"));(function(d){d.Selector=function(b){this.elements=b;if(this.elements[0].combinator.value==="")this.elements[0].combinator.value=" "};d.Selector.prototype.match=function(b){return this.elements[0].value===
+b.elements[0].value?true:false};d.Selector.prototype.toCSS=function(b){if(this._css)return this._css;return this._css=this.elements.map(function(a){return typeof a==="string"?" "+a.trim():a.toCSS(b)}).join("")}})(s("less/tree"));(function(d){d.URL=function(b,a){if(b.data)this.attrs=b;else{if(!/^(?:https?:\/|file:\/)?\//.test(b.value)&&a.length>0&&typeof z!=="undefined")b.value=a[0]+(b.value.charAt(0)==="/"?b.value.slice(1):b.value);this.value=b;this.paths=a}};d.URL.prototype={toCSS:function(){return"url("+
+(this.attrs?"data:"+this.attrs.mime+this.attrs.charset+this.attrs.base64+this.attrs.data:this.value.toCSS())+")"},eval:function(b){return this.attrs?this:new d.URL(this.value.eval(b),this.paths)}}})(s("less/tree"));(function(d){d.Value=function(b){this.value=b;this.is="value"};d.Value.prototype={eval:function(b){return this.value.length===1?this.value[0].eval(b):new d.Value(this.value.map(function(a){return a.eval(b)}))},toCSS:function(b){return this.value.map(function(a){return a.toCSS(b)}).join(b.compress?
+",":", ")}}})(s("less/tree"));(function(d){d.Variable=function(b,a){this.name=b;this.index=a};d.Variable.prototype={eval:function(b){var a,g,e=this.name;if(a=d.find(b.frames,function(h){if(g=h.variable(e))return g.value.eval(b)}))return a;else throw{message:"variable "+this.name+" is undefined",index:this.index};}}})(s("less/tree"));s("less/tree").find=function(d,b){for(var a=0,g;a<d.length;a++)if(g=b.call(d,d[a]))return g;return null};var P=location.protocol==="file:"||location.protocol==="chrome:"||
+location.protocol==="resource:";o.env=o.env||(location.hostname=="127.0.0.1"||location.hostname=="0.0.0.0"||location.hostname=="localhost"||location.port.length>0||P?"development":"production");o.async=false;o.poll=o.poll||(P?1E3:1500);o.watch=function(){return this.watchMode=true};o.unwatch=function(){return this.watchMode=false};if(o.env==="development"){o.optimization=0;/!watch/.test(location.hash)&&o.watch();o.watchTimer=setInterval(function(){o.watchMode&&W(function(d,b,a){d&&N(d.toCSS(),b,a.lastModified)})},
+o.poll)}else o.optimization=3;var B;try{B=typeof z.localStorage==="undefined"?null:z.localStorage}catch(aa){B=null}var M=document.getElementsByTagName("link"),V=/^text\/(x-)?less$/;o.sheets=[];for(var J=0;J<M.length;J++)if(M[J].rel==="stylesheet/less"||M[J].rel.match(/stylesheet/)&&M[J].type.match(V))o.sheets.push(M[J]);o.refresh=function(d){var b=endTime=new Date;W(function(a,g,e){if(e.local)H("loading "+g.href+" from cache.");else{H("parsed "+g.href+" successfully.");N(a.toCSS(),g,e.lastModified)}H("css for "+
+g.href+" generated in "+(new Date-endTime)+"ms");e.remaining===0&&H("css generated in "+(new Date-b)+"ms");endTime=new Date},d);U()};o.refreshStyles=U;o.refresh(o.env==="development")})(window);