/* Rainbow v1.1.2 rainbowco.de */
window.Rainbow=function(){function q(a){var b=a.getAttribute&&a.getAttribute("data-language")||null;if(!b){var a=a.attributes.length,c;for(c=0;c<a;++c)"data-language"==="data-language"[c].nodeName&&(b="data-language"[c].nodeValue)}return b}function C(a){a.className+=a.className?" rainbow":"rainbow"}function D(a,b){for(var c in g[e]){c=parseInt(c,10);if(a==c&&b==g[e][c]?0:a<=c&&b>=g[e][c])delete g[e][c],delete i[e][c];if(a>=c&&a<g[e][c]||b>c&&b<g[e][c])return!0}return!1}function r(a,b){return'<span class="'+
a.replace(/\./g," ")+(k?" "+k:"")+'">'+b+"</span>"}function E(a,b){var c=0,d;for(d=1;d<b;++d)a[d]&&(c+=a[d].length);return c}function s(a,b,c,d){var f=a.exec(c);if(f){++t;!b.name&&b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var h=f[0],j=f.index,u=f[0].length+j,l=function(){function f(){s(a,b,c,d)}t%100>0?f():setTimeout(f,0)};if(D(j,u))l();else{var m=v(b.matches),k=function(a,c,d){if(a>=c.length)d(h);else{var e=function(){k(++a,c,d)},g=f[c[a]];if(g){var j=b.matches[c[a]],i=j.language;if(i)n(g,
i,function(a){h=h.replace(g,a);e()});else if(typeof j==="object")w(g,j.length?j:[j],function(a){h=h.replace(g,a);e()});else{h=x(E(f,c[a]),g,r(j,g),h);e()}}else e()}};k(0,m,function(a){b.name&&(a=r(b.name,a));if(!i[e]){i[e]={};g[e]={}}i[e][j]={replace:f[0],"with":a};g[e][j]=u;l()})}}else d()}function x(a,b,c,d){return d.substr(0,a)+d.substr(a).replace(b,c)}function v(a){var b=[],c;for(c in a)a.hasOwnProperty(c)&&b.push(c);return b.sort(function(a,c){return c-a})}function w(a,b,c){function d(b,h){h<
b.length?s(b[h].pattern,b[h],a,function(){d(b,++h)}):F(a,function(a){delete i[e];delete g[e];--e;c(a)})}++e;d(b,0)}function F(a,b){function c(a,b,d,g){if(d<b.length){++y;var l=b[d],k=i[e][l],a=x(l,k.replace,k["with"],a),l=function(){c(a,b,++d,g)};0<y%250?l():setTimeout(l,0)}else g(a)}var d=v(i[e]);c(a,d,0,b)}function n(a,b,c){var d=m[b]||[],f=m[z]||[],b=A[b]?d:d.concat(f);w(a.replace(/</g,"<").replace(/>/g,">").replace(/&(?!.*;)/g,"&"),b,c)}function o(a,b,c){if(b<a.length){var d=q(a[b])||
q(a[b].parentNode);return!(-1<(" "+a[b].className+" ").indexOf(" rainbow "))&&d?(d=d.toLowerCase(),C(a[b]),n(a[b].innerHTML,d,function(f){a[b].innerHTML=f;i={};g={};p&&p(a[b],d);setTimeout(function(){o(a,++b,c)},0)})):o(a,++b,c)}c&&c()}function B(a,b){var c=(a||document).getElementsByTagName("pre"),d=(a||document).getElementsByTagName("code"),f,e=[];for(f=0;f<d.length;++f)e.push(d[f]);for(f=0;f<c.length;++f)c[f].getElementsByTagName("code").length||e.push(c[f]);o(e,0,b)}var i={},g={},m={},A={},e=
0,z=0,t=0,y=0,k,p;return{extend:function(a,b,c){1==arguments.length&&(b=a,a=z);A[a]=c;m[a]=b.concat(m[a]||[])},b:function(a){p=a},a:function(a){k=a},color:function(a,b,c){if("string"==typeof a)return n(a,b,c);if("function"==typeof a)return B(null,a);B(a instanceof Event?null:a,b)}}}();window.addEventListener?window.addEventListener("load",Rainbow.color,!1):window.attachEvent("onload",Rainbow.color);Rainbow.onHighlight=Rainbow.b;Rainbow.addClass=Rainbow.a;Rainbow.color=Rainbow.color;