function trim(str){str=str.replace(/^\s+/,'');for(var i=str.length-1;i>=0;i--){if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break;}}
return str;}
function validate(url){if(url.indexOf('://')>=0&&url.indexOf('http://')!=0&&url.indexOf('https://')!=0){return'the address must start with http:// or https://';}
var regexp=/^((ftp|http|https):\/\/)?(([\w-]+\.)*[\w-]+\.[a-zA-Z\-0-9]{2,}|\d+\.\d+\.\d+\.\d+)/
if(!regexp.test(url)){return'missing or wrong domain name';}
regexp=/^((ftp|http|https):\/\/)?(www\.)?safe\.mn(\/[^\/]*)?$/
if(regexp.test(url)){return'already a short link';}
return 1;}var hljs=new function(){var LANGUAGES={}
var selected_languages={};function escape(value){return value.replace(/&/gm,'&amp;').replace(/</gm,'&lt;').replace(/>/gm,'&gt;');}
function contains(array,item){if(!array)
return false;for(var i=0;i<array.length;i++)
if(array[i]==item)
return true;return false;}
function langRe(language,value,global){var mode='m'+(language.case_insensitive?'i':'')+(global?'g':'');return new RegExp(value,mode);}
function findCode(pre){for(var i=0;i<pre.childNodes.length;i++){node=pre.childNodes[i];if(node.nodeName=='CODE')
return node;if(!(node.nodeType==3&&node.nodeValue.match(/\s+/)))
return null;}}
function blockText(block){var result='';for(var i=0;i<block.childNodes.length;i++)
if(block.childNodes[i].nodeType==3)
result+=block.childNodes[i].nodeValue;else if(block.childNodes[i].nodeName=='BR')
result+='\n';else
result+=blockText(block.childNodes[i]);return result;}
function blockLanguage(block){var classes=block.className.split(/\s+/)
classes=classes.concat(block.parentNode.className.split(/\s+/));for(var i=0;i<classes.length;i++){var class_=classes[i].replace(/^language-/,'');if(class_=='no-highlight'){throw'No highlight'}
if(LANGUAGES[class_]){return class_;}}}
function nodeStream(node){var result=[];(function(node,offset){for(var i=0;i<node.childNodes.length;i++){if(node.childNodes[i].nodeType==3)
offset+=node.childNodes[i].nodeValue.length;else if(node.childNodes[i].nodeName=='BR')
offset+=1
else{result.push({event:'start',offset:offset,node:node.childNodes[i]});offset=arguments.callee(node.childNodes[i],offset)
result.push({event:'stop',offset:offset,node:node.childNodes[i]});}}
return offset;})(node,0);return result;}
function mergeStreams(stream1,stream2,value){var processed=0;var result='';var nodeStack=[];function selectStream(){if(stream1.length&&stream2.length){if(stream1[0].offset!=stream2[0].offset)
return(stream1[0].offset<stream2[0].offset)?stream1:stream2;else
return(stream1[0].event=='start'&&stream2[0].event=='stop')?stream2:stream1;}else{return stream1.length?stream1:stream2;}}
function open(node){var result='<'+node.nodeName.toLowerCase();for(var i=0;i<node.attributes.length;i++){var attribute=node.attributes[i];result+=' '+attribute.nodeName.toLowerCase();if(attribute.nodeValue!=undefined){result+='="'+escape(attribute.nodeValue)+'"';}}
return result+'>';}
function close(node){return'</'+node.nodeName.toLowerCase()+'>';}
while(stream1.length||stream2.length){var current=selectStream().splice(0,1)[0];result+=escape(value.substr(processed,current.offset-processed));processed=current.offset;if(current.event=='start'){result+=open(current.node);nodeStack.push(current.node);}else if(current.event=='stop'){var i=nodeStack.length;do{i--;var node=nodeStack[i];result+=close(node);}while(node!=current.node);nodeStack.splice(i,1);while(i<nodeStack.length){result+=open(nodeStack[i]);i++;}}}
result+=value.substr(processed);return result;}
function highlight(language_name,value){function compileSubModes(mode,language){mode.sub_modes=[];for(var i=0;i<mode.contains.length;i++){for(var j=0;j<language.modes.length;j++){if(language.modes[j].className==mode.contains[i]){mode.sub_modes[mode.sub_modes.length]=language.modes[j];}}}}
function subMode(lexem,mode){if(!mode.contains){return null;}
if(!mode.sub_modes){compileSubModes(mode,language);}
for(var i=0;i<mode.sub_modes.length;i++){if(mode.sub_modes[i].beginRe.test(lexem)){return mode.sub_modes[i];}}
return null;}
function endOfMode(mode_index,lexem){if(modes[mode_index].end&&modes[mode_index].endRe.test(lexem))
return 1;if(modes[mode_index].endsWithParent){var level=endOfMode(mode_index-1,lexem);return level?level+1:0;}
return 0;}
function isIllegal(lexem,mode){return mode.illegalRe&&mode.illegalRe.test(lexem);}
function compileTerminators(mode,language){var terminators=[];function addTerminator(re){if(!contains(terminators,re)){terminators[terminators.length]=re;}}
if(mode.contains)
for(var i=0;i<language.modes.length;i++){if(contains(mode.contains,language.modes[i].className)){addTerminator(language.modes[i].begin);}}
var index=modes.length-1;do{if(modes[index].end){addTerminator(modes[index].end);}
index--;}while(modes[index+1].endsWithParent);if(mode.illegal){addTerminator(mode.illegal);}
var terminator_re='('+terminators[0];for(var i=0;i<terminators.length;i++)
terminator_re+='|'+terminators[i];terminator_re+=')';return langRe(language,terminator_re);}
function eatModeChunk(value,index){var mode=modes[modes.length-1];if(!mode.terminators){mode.terminators=compileTerminators(mode,language);}
value=value.substr(index);var match=mode.terminators.exec(value);if(!match)
return[value,'',true];if(match.index==0)
return['',match[0],false];else
return[value.substr(0,match.index),match[0],false];}
function keywordMatch(mode,match){var match_str=language.case_insensitive?match[0].toLowerCase():match[0]
for(var className in mode.keywordGroups){if(!mode.keywordGroups.hasOwnProperty(className))
continue;var value=mode.keywordGroups[className].hasOwnProperty(match_str);if(value)
return[className,value];}
return false;}
function processKeywords(buffer,mode){if(!mode.keywords||!mode.lexems)
return escape(buffer);if(!mode.lexemsRe){var lexems_re='('+mode.lexems[0];for(var i=1;i<mode.lexems.length;i++)
lexems_re+='|'+mode.lexems[i];lexems_re+=')';mode.lexemsRe=langRe(language,lexems_re,true);}
var result='';var last_index=0;mode.lexemsRe.lastIndex=0;var match=mode.lexemsRe.exec(buffer);while(match){result+=escape(buffer.substr(last_index,match.index-last_index));var keyword_match=keywordMatch(mode,match);if(keyword_match){keyword_count+=keyword_match[1];result+='<span class="'+keyword_match[0]+'">'+escape(match[0])+'</span>';}else{result+=escape(match[0]);}
last_index=mode.lexemsRe.lastIndex;match=mode.lexemsRe.exec(buffer);}
result+=escape(buffer.substr(last_index,buffer.length-last_index));return result;}
function processBuffer(buffer,mode){if(mode.subLanguage&&selected_languages[mode.subLanguage]){var result=highlight(mode.subLanguage,buffer);keyword_count+=result.keyword_count;relevance+=result.relevance;return result.value;}else{return processKeywords(buffer,mode);}}
function startNewMode(mode,lexem){var markup=mode.noMarkup?'':'<span class="'+mode.displayClassName+'">';if(mode.returnBegin){result+=markup;mode.buffer='';}else if(mode.excludeBegin){result+=escape(lexem)+markup;mode.buffer='';}else{result+=markup;mode.buffer=lexem;}
modes[modes.length]=mode;}
function processModeInfo(buffer,lexem,end){var current_mode=modes[modes.length-1];if(end){result+=processBuffer(current_mode.buffer+buffer,current_mode);return false;}
var new_mode=subMode(lexem,current_mode);if(new_mode){result+=processBuffer(current_mode.buffer+buffer,current_mode);startNewMode(new_mode,lexem);relevance+=new_mode.relevance;return new_mode.returnBegin;}
var end_level=endOfMode(modes.length-1,lexem);if(end_level){var markup=current_mode.noMarkup?'':'</span>';if(current_mode.returnEnd){result+=processBuffer(current_mode.buffer+buffer,current_mode)+markup;}else if(current_mode.excludeEnd){result+=processBuffer(current_mode.buffer+buffer,current_mode)+markup+escape(lexem);}else{result+=processBuffer(current_mode.buffer+buffer+lexem,current_mode)+markup;}
while(end_level>1){markup=modes[modes.length-2].noMarkup?'':'</span>';result+=markup;end_level--;modes.length--;}
modes.length--;modes[modes.length-1].buffer='';if(current_mode.starts){for(var i=0;i<language.modes.length;i++){if(language.modes[i].className==current_mode.starts){startNewMode(language.modes[i],'');break;}}}
return current_mode.returnEnd;}
if(isIllegal(lexem,current_mode))
throw'Illegal';}
var language=LANGUAGES[language_name];var modes=[language.defaultMode];var relevance=0;var keyword_count=0;var result='';try{var index=0;language.defaultMode.buffer='';do{var mode_info=eatModeChunk(value,index);var return_lexem=processModeInfo(mode_info[0],mode_info[1],mode_info[2]);index+=mode_info[0].length;if(!return_lexem){index+=mode_info[1].length;}}while(!mode_info[2]);if(modes.length>1)
throw'Illegal';return{relevance:relevance,keyword_count:keyword_count,value:result}}catch(e){if(e=='Illegal'){return{relevance:0,keyword_count:0,value:escape(value)}}else{throw e;}}}
function compileModes(){for(var i in LANGUAGES){if(!LANGUAGES.hasOwnProperty(i))
continue;var language=LANGUAGES[i];for(var j=0;j<language.modes.length;j++){var mode=language.modes[j];if(mode.begin)
mode.beginRe=langRe(language,'^'+mode.begin);if(mode.end)
mode.endRe=langRe(language,'^'+mode.end);if(mode.illegal)
mode.illegalRe=langRe(language,'^(?:'+mode.illegal+')');language.defaultMode.illegalRe=langRe(language,'^(?:'+language.defaultMode.illegal+')');if(mode.relevance==undefined){mode.relevance=1;}
if(!mode.displayClassName){mode.displayClassName=mode.className;}}}}
function compileKeywords(){function compileModeKeywords(mode){if(!mode.keywordGroups){for(var key in mode.keywords){if(!mode.keywords.hasOwnProperty(key))
continue;if(mode.keywords[key]instanceof Object)
mode.keywordGroups=mode.keywords;else
mode.keywordGroups={'keyword':mode.keywords};break;}}}
for(var i in LANGUAGES){if(!LANGUAGES.hasOwnProperty(i))
continue;var language=LANGUAGES[i];compileModeKeywords(language.defaultMode);for(var j=0;j<language.modes.length;j++){compileModeKeywords(language.modes[j]);}}}
function initialize(){if(initialize.called)
return;initialize.called=true;compileModes();compileKeywords();selected_languages=LANGUAGES;}
function highlightBlock(block,tabReplace){initialize();try{var text=blockText(block);var language=blockLanguage(block);}catch(e){if(e=='No highlight')
return;}
if(language){var result=highlight(language,text).value;}else{var max_relevance=0;for(var key in selected_languages){if(!selected_languages.hasOwnProperty(key))
continue;var lang_result=highlight(key,text);var relevance=lang_result.keyword_count+lang_result.relevance;if(relevance>max_relevance){max_relevance=relevance;var result=lang_result.value;language=key;}}}
if(result){var class_name=block.className;if(!class_name.match(language)){class_name+=' '+language;}
var original=nodeStream(block);if(original.length){var pre=document.createElement('pre');pre.innerHTML=result;result=mergeStreams(original,nodeStream(pre),text);}
if(tabReplace){result=result.replace(/^((<[^>]+>|\t)+)/gm,function(match,p1,offset,s){return p1.replace(/\t/g,tabReplace);})}
var container=document.createElement('div');container.innerHTML='<pre><code class="'+class_name+'">'+result+'</code></pre>';var environment=block.parentNode.parentNode;environment.replaceChild(container.firstChild,block.parentNode);}}
function initHighlighting(){if(initHighlighting.called)
return;initHighlighting.called=true;initialize();if(arguments.length){for(var i=0;i<arguments.length;i++){if(LANGUAGES[arguments[i]]){selected_languages[arguments[i]]=LANGUAGES[arguments[i]];}}}
var pres=document.getElementsByTagName('pre');for(var i=0;i<pres.length;i++){var code=findCode(pres[i]);if(code)
highlightBlock(code,hljs.tabReplace);}}
function initHighlightingOnLoad(){var original_arguments=arguments;var handler=function(){initHighlighting.apply(null,original_arguments)};if(window.addEventListener){window.addEventListener('DOMContentLoaded',handler,false);window.addEventListener('load',handler,false);}else if(window.attachEvent)
window.attachEvent('onload',handler);else
window.onload=handler;}
this.LANGUAGES=LANGUAGES;this.initHighlightingOnLoad=initHighlightingOnLoad;this.highlightBlock=highlightBlock;this.initHighlighting=initHighlighting;this.IDENT_RE='[a-zA-Z][a-zA-Z0-9_]*';this.UNDERSCORE_IDENT_RE='[a-zA-Z_][a-zA-Z0-9_]*';this.NUMBER_RE='\\b\\d+(\\.\\d+)?';this.C_NUMBER_RE='\\b(0x[A-Za-z0-9]+|\\d+(\\.\\d+)?)';this.RE_STARTERS_RE='!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';this.APOS_STRING_MODE={className:'string',begin:'\'',end:'\'',illegal:'\\n',contains:['escape'],relevance:0};this.QUOTE_STRING_MODE={className:'string',begin:'"',end:'"',illegal:'\\n',contains:['escape'],relevance:0};this.BACKSLASH_ESCAPE={className:'escape',begin:'\\\\.',end:'^',noMarkup:true,relevance:0};this.C_LINE_COMMENT_MODE={className:'comment',begin:'//',end:'$',relevance:0};this.C_BLOCK_COMMENT_MODE={className:'comment',begin:'/\\*',end:'\\*/'};this.HASH_COMMENT_MODE={className:'comment',begin:'#',end:'$'};this.C_NUMBER_MODE={className:'number',begin:this.C_NUMBER_RE,end:'^',relevance:0};}();var initHighlightingOnLoad=hljs.initHighlightingOnLoad;hljs.XML_COMMENT={className:'comment',begin:'<!--',end:'-->'};hljs.XML_ATTR={className:'attribute',begin:'\\s[a-zA-Z\\:-]+=',end:'^',contains:['value']};hljs.XML_VALUE_QUOT={className:'value',begin:'"',end:'"'};hljs.XML_VALUE_APOS={className:'value',begin:'\'',end:'\''};hljs.LANGUAGES.xml={defaultMode:{contains:['pi','comment','cdata','tag']},case_insensitive:true,modes:[{className:'pi',begin:'<\\?',end:'\\?>',relevance:10},hljs.XML_COMMENT,{className:'cdata',begin:'<\\!\\[CDATA\\[',end:'\\]\\]>'},{className:'tag',begin:'</?',end:'>',contains:['title','tag_internal'],relevance:1.5},{className:'title',begin:'[A-Za-z:_][A-Za-z0-9\\._:-]+',end:'^',relevance:0},{className:'tag_internal',begin:'^',endsWithParent:true,noMarkup:true,contains:['attribute'],relevance:0,illegal:'[\\+\\.]'},hljs.XML_ATTR,hljs.XML_VALUE_QUOT,hljs.XML_VALUE_APOS]};hljs.HTML_TAGS={'code':1,'kbd':1,'font':1,'noscript':1,'style':1,'img':1,'title':1,'menu':1,'tt':1,'tr':1,'param':1,'li':1,'tfoot':1,'th':1,'input':1,'td':1,'dl':1,'blockquote':1,'fieldset':1,'big':1,'dd':1,'abbr':1,'optgroup':1,'dt':1,'button':1,'isindex':1,'p':1,'small':1,'div':1,'dir':1,'em':1,'frame':1,'meta':1,'sub':1,'bdo':1,'label':1,'acronym':1,'sup':1,'body':1,'xml':1,'basefont':1,'base':1,'br':1,'address':1,'strong':1,'legend':1,'ol':1,'script':1,'caption':1,'s':1,'col':1,'h2':1,'h3':1,'h1':1,'h6':1,'h4':1,'h5':1,'table':1,'select':1,'noframes':1,'span':1,'area':1,'dfn':1,'strike':1,'cite':1,'thead':1,'head':1,'option':1,'form':1,'hr':1,'var':1,'link':1,'b':1,'colgroup':1,'ul':1,'applet':1,'del':1,'iframe':1,'pre':1,'frameset':1,'ins':1,'tbody':1,'html':1,'samp':1,'map':1,'object':1,'a':1,'xmlns':1,'center':1,'textarea':1,'i':1,'q':1,'u':1};hljs.HTML_DOCTYPE={className:'doctype',begin:'<!DOCTYPE',end:'>',relevance:10};hljs.HTML_ATTR={className:'attribute',begin:'\\s[a-zA-Z\\:-]+=',end:'^',contains:['value']};hljs.HTML_SHORT_ATTR={className:'attribute',begin:' [a-zA-Z]+',end:'^'};hljs.HTML_VALUE={className:'value',begin:'[a-zA-Z0-9]+',end:'^'};hljs.LANGUAGES.html={defaultMode:{contains:['tag','comment','doctype','vbscript']},case_insensitive:true,modes:[hljs.XML_COMMENT,hljs.HTML_DOCTYPE,{className:'tag',lexems:[hljs.IDENT_RE],keywords:hljs.HTML_TAGS,begin:'<style',end:'>',contains:['attribute'],illegal:'[\\+\\.]',starts:'css'},{className:'tag',lexems:[hljs.IDENT_RE],keywords:hljs.HTML_TAGS,begin:'<script',end:'>',contains:['attribute'],illegal:'[\\+\\.]',starts:'javascript'},{className:'tag',lexems:[hljs.IDENT_RE],keywords:hljs.HTML_TAGS,begin:'<[A-Za-z/]',end:'>',contains:['attribute'],illegal:'[\\+\\.]'},{className:'css',end:'</style>',returnEnd:true,subLanguage:'css'},{className:'javascript',end:'</script>',returnEnd:true,subLanguage:'javascript'},hljs.HTML_ATTR,hljs.HTML_SHORT_ATTR,hljs.XML_VALUE_QUOT,hljs.XML_VALUE_APOS,hljs.HTML_VALUE,{className:'vbscript',begin:'<%',end:'%>',subLanguage:'vbscript'}]};hljs.LANGUAGES.css={defaultMode:{contains:['id','class','attr_selector','rules','comment'],keywords:hljs.HTML_TAGS,lexems:[hljs.IDENT_RE],illegal:'='},case_insensitive:true,modes:[{className:'id',begin:'\\#[A-Za-z0-9_-]+',end:'^'},{className:'class',begin:'\\.[A-Za-z0-9_-]+',end:'^',relevance:0},{className:'attr_selector',begin:'\\[',end:'\\]',illegal:'$'},{className:'rules',begin:'{',end:'}',contains:['rule','comment'],illegal:'[^\\s]'},{className:'rule',begin:'[A-Z\\_\\.\\-]+\\s*:',end:';',endsWithParent:true,lexems:['[A-Za-z-]+'],keywords:{'play-during':1,'counter-reset':1,'counter-increment':1,'min-height':1,'quotes':1,'border-top':1,'pitch':1,'font':1,'pause':1,'list-style-image':1,'border-width':1,'cue':1,'outline-width':1,'border-left':1,'elevation':1,'richness':1,'speech-rate':1,'border-bottom':1,'border-spacing':1,'background':1,'list-style-type':1,'text-align':1,'page-break-inside':1,'orphans':1,'page-break-before':1,'text-transform':1,'line-height':1,'padding-left':1,'font-size':1,'right':1,'word-spacing':1,'padding-top':1,'outline-style':1,'bottom':1,'content':1,'border-right-style':1,'padding-right':1,'border-left-style':1,'voice-family':1,'background-color':1,'border-bottom-color':1,'outline-color':1,'unicode-bidi':1,'max-width':1,'font-family':1,'caption-side':1,'border-right-width':1,'pause-before':1,'border-top-style':1,'color':1,'border-collapse':1,'border-bottom-width':1,'float':1,'height':1,'max-height':1,'margin-right':1,'border-top-width':1,'speak':1,'speak-header':1,'top':1,'cue-before':1,'min-width':1,'width':1,'font-variant':1,'border-top-color':1,'background-position':1,'empty-cells':1,'direction':1,'border-right':1,'visibility':1,'padding':1,'border-style':1,'background-attachment':1,'overflow':1,'border-bottom-style':1,'cursor':1,'margin':1,'display':1,'border-left-width':1,'letter-spacing':1,'vertical-align':1,'clip':1,'border-color':1,'list-style':1,'padding-bottom':1,'pause-after':1,'speak-numeral':1,'margin-left':1,'widows':1,'border':1,'font-style':1,'border-left-color':1,'pitch-range':1,'background-repeat':1,'table-layout':1,'margin-bottom':1,'speak-punctuation':1,'font-weight':1,'border-right-color':1,'page-break-after':1,'position':1,'white-space':1,'text-indent':1,'background-image':1,'volume':1,'stress':1,'outline':1,'clear':1,'z-index':1,'text-decoration':1,'margin-top':1,'azimuth':1,'cue-after':1,'left':1,'list-style-position':1},contains:['value']},hljs.C_BLOCK_COMMENT_MODE,{className:'value',begin:'^',endsWithParent:true,excludeEnd:true,contains:['function','number','hexcolor','string']},{className:'number',begin:hljs.NUMBER_RE,end:'^'},{className:'hexcolor',begin:'\\#[0-9A-F]+',end:'^'},{className:'function',begin:hljs.IDENT_RE+'\\(',end:'\\)',contains:['params']},{className:'params',begin:'^',endsWithParent:true,excludeEnd:true,contains:['number','string']},hljs.APOS_STRING_MODE,hljs.QUOTE_STRING_MODE]};hljs.LANGUAGES.javascript={defaultMode:{lexems:[hljs.UNDERSCORE_IDENT_RE],contains:['string','comment','number','regexp_container','function'],keywords:{'keyword':{'in':1,'if':1,'for':1,'while':1,'finally':1,'var':1,'new':1,'function':1,'do':1,'return':1,'void':1,'else':1,'break':1,'catch':1,'instanceof':1,'with':1,'throw':1,'case':1,'default':1,'try':1,'this':1,'switch':1,'continue':1,'typeof':1,'delete':1},'literal':{'true':1,'false':1,'null':1}}},modes:[hljs.C_LINE_COMMENT_MODE,hljs.C_BLOCK_COMMENT_MODE,hljs.C_NUMBER_MODE,hljs.APOS_STRING_MODE,hljs.QUOTE_STRING_MODE,hljs.BACKSLASH_ESCAPE,{className:'regexp_container',begin:'('+hljs.RE_STARTERS_RE+'|case|return|throw)\\s*',end:'^',noMarkup:true,lexems:[hljs.IDENT_RE],keywords:{'return':1,'throw':1,'case':1},contains:['comment','regexp'],relevance:0},{className:'regexp',begin:'/.*?[^\\\\/]/[gim]*',end:'^'},{className:'function',begin:'\\bfunction\\b',end:'{',lexems:[hljs.UNDERSCORE_IDENT_RE],keywords:{'function':1},contains:['title','params']},{className:'title',begin:'[A-Za-z$_][0-9A-Za-z$_]*',end:'^'},{className:'params',begin:'\\(',end:'\\)',contains:['string','comment']}]};hljs.LANGUAGES.php={defaultMode:{lexems:[hljs.IDENT_RE],contains:['comment','number','string','variable','preprocessor'],keywords:{'and':1,'include_once':1,'list':1,'abstract':1,'global':1,'private':1,'echo':1,'interface':1,'as':1,'static':1,'endswitch':1,'array':1,'null':1,'if':1,'endwhile':1,'or':1,'const':1,'for':1,'endforeach':1,'self':1,'var':1,'while':1,'isset':1,'public':1,'protected':1,'exit':1,'foreach':1,'throw':1,'elseif':1,'extends':1,'include':1,'__FILE__':1,'empty':1,'require_once':1,'function':1,'do':1,'xor':1,'return':1,'implements':1,'parent':1,'clone':1,'use':1,'__CLASS__':1,'__LINE__':1,'else':1,'break':1,'print':1,'eval':1,'new':1,'catch':1,'__METHOD__':1,'class':1,'case':1,'exception':1,'php_user_filter':1,'default':1,'die':1,'require':1,'__FUNCTION__':1,'enddeclare':1,'final':1,'try':1,'this':1,'switch':1,'continue':1,'endfor':1,'endif':1,'declare':1,'unset':1}},case_insensitive:true,modes:[hljs.C_LINE_COMMENT_MODE,hljs.HASH_COMMENT_MODE,{className:'comment',begin:'/\\*',end:'\\*/',contains:['phpdoc']},{className:'phpdoc',begin:'\\s@[A-Za-z]+',end:'^',relevance:10},hljs.C_NUMBER_MODE,{className:'string',begin:'\'',end:'\'',contains:['escape'],relevance:0},{className:'string',begin:'"',end:'"',contains:['escape'],relevance:0},hljs.BACKSLASH_ESCAPE,{className:'variable',begin:'\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*',end:'^'},{className:'preprocessor',begin:'<\\?php',end:'^',relevance:10},{className:'preprocessor',begin:'\\?>',end:'^'}]};hljs.LANGUAGES.perl=function(){var PERL_DEFAULT_CONTAINS=['comment','string','number','regexp','sub','variable','operator','pod'];var PERL_KEYWORDS={'getpwent':1,'getservent':1,'quotemeta':1,'msgrcv':1,'scalar':1,'kill':1,'dbmclose':1,'undef':1,'lc':1,'ma':1,'syswrite':1,'tr':1,'send':1,'umask':1,'sysopen':1,'shmwrite':1,'vec':1,'qx':1,'utime':1,'local':1,'oct':1,'semctl':1,'localtime':1,'readpipe':1,'do':1,'return':1,'format':1,'read':1,'sprintf':1,'dbmopen':1,'pop':1,'getpgrp':1,'not':1,'getpwnam':1,'rewinddir':1,'qq':1,'fileno':1,'qw':1,'endprotoent':1,'wait':1,'sethostent':1,'bless':1,'s':1,'opendir':1,'continue':1,'each':1,'sleep':1,'endgrent':1,'shutdown':1,'dump':1,'chomp':1,'connect':1,'getsockname':1,'die':1,'socketpair':1,'close':1,'flock':1,'exists':1,'index':1,'shmget':1,'sub':1,'for':1,'endpwent':1,'redo':1,'lstat':1,'msgctl':1,'setpgrp':1,'abs':1,'exit':1,'select':1,'print':1,'ref':1,'gethostbyaddr':1,'unshift':1,'fcntl':1,'syscall':1,'goto':1,'getnetbyaddr':1,'join':1,'gmtime':1,'symlink':1,'semget':1,'splice':1,'x':1,'getpeername':1,'recv':1,'log':1,'setsockopt':1,'cos':1,'last':1,'reverse':1,'gethostbyname':1,'getgrnam':1,'study':1,'formline':1,'endhostent':1,'times':1,'chop':1,'length':1,'gethostent':1,'getnetent':1,'pack':1,'getprotoent':1,'getservbyname':1,'rand':1,'mkdir':1,'pos':1,'chmod':1,'y':1,'substr':1,'endnetent':1,'printf':1,'next':1,'open':1,'msgsnd':1,'readdir':1,'use':1,'unlink':1,'getsockopt':1,'getpriority':1,'rindex':1,'wantarray':1,'hex':1,'system':1,'getservbyport':1,'endservent':1,'int':1,'chr':1,'untie':1,'rmdir':1,'prototype':1,'tell':1,'listen':1,'fork':1,'shmread':1,'ucfirst':1,'setprotoent':1,'else':1,'sysseek':1,'link':1,'getgrgid':1,'shmctl':1,'waitpid':1,'unpack':1,'getnetbyname':1,'reset':1,'chdir':1,'grep':1,'split':1,'require':1,'caller':1,'lcfirst':1,'until':1,'warn':1,'while':1,'values':1,'shift':1,'telldir':1,'getpwuid':1,'my':1,'getprotobynumber':1,'delete':1,'and':1,'sort':1,'uc':1,'defined':1,'srand':1,'accept':1,'package':1,'seekdir':1,'getprotobyname':1,'semop':1,'our':1,'rename':1,'seek':1,'if':1,'q':1,'chroot':1,'sysread':1,'setpwent':1,'no':1,'crypt':1,'getc':1,'chown':1,'sqrt':1,'write':1,'setnetent':1,'setpriority':1,'foreach':1,'tie':1,'sin':1,'msgget':1,'map':1,'stat':1,'getlogin':1,'unless':1,'elsif':1,'truncate':1,'exec':1,'keys':1,'glob':1,'tied':1,'closedir':1,'ioctl':1,'socket':1,'readlink':1,'eval':1,'xor':1,'readline':1,'binmode':1,'setservent':1,'eof':1,'ord':1,'bind':1,'alarm':1,'pipe':1,'atan2':1,'getgrent':1,'exp':1,'time':1,'push':1,'setgrent':1,'gt':1,'lt':1,'or':1,'ne':1,'m':1};return{defaultMode:{lexems:[hljs.IDENT_RE],contains:PERL_DEFAULT_CONTAINS,keywords:PERL_KEYWORDS},modes:[{className:'variable',begin:'\\$\\d',end:'^'},{className:'variable',begin:'[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)',end:'^'},{className:'subst',begin:'[$@]\\{',end:'\}',lexems:[hljs.IDENT_RE],keywords:PERL_KEYWORDS,contains:PERL_DEFAULT_CONTAINS,relevance:10},{className:'number',begin:'(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',end:'^',relevance:0},{className:'string',begin:'q[qwxr]?\\s*\\(',end:'\\)',contains:['escape','subst','variable'],relevance:5},{className:'string',begin:'q[qwxr]?\\s*\\[',end:'\\]',contains:['escape','subst','variable'],relevance:5},{className:'string',begin:'q[qwxr]?\\s*\\{',end:'\\}',contains:['escape','subst','variable'],relevance:5},{className:'string',begin:'q[qwxr]?\\s*\\|',end:'\\|',contains:['escape','subst','variable'],relevance:5},{className:'string',begin:'q[qwxr]?\\s*\\<',end:'\\>',contains:['escape','subst','variable'],relevance:5},{className:'string',begin:'qw\\s+q',end:'q',contains:['escape','subst','variable'],relevance:5},{className:'string',begin:'\'',end:'\'',contains:['escape'],relevance:0},{className:'string',begin:'"',end:'"',contains:['escape','subst','variable'],relevance:0},hljs.BACKSLASH_ESCAPE,{className:'string',begin:'`',end:'`',contains:['escape']},{className:'regexp',begin:'(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*',end:'^',relevance:10},{className:'regexp',begin:'(m|qr)?/',end:'/[a-z]*',contains:['escape'],relevance:0},{className:'string',begin:'{\\w+}',end:'^',relevance:0},{className:'string',begin:'\-?\\w+\\s*\\=\\>',end:'^',relevance:0},{className:'sub',begin:'\\bsub\\b',end:'(\\s*\\(.*?\\))?[;{]',lexems:[hljs.IDENT_RE],keywords:{'sub':1},relevance:5},{className:'operator',begin:'-\\w\\b',end:'^',relevance:0},hljs.HASH_COMMENT_MODE,{className:'comment',begin:'^(__END__|__DATA__)',end:'\\n$',relevance:5},{className:'pod',begin:'\\=\\w',end:'\\=cut'}]};}();hljs.LANGUAGES.python={defaultMode:{lexems:[hljs.UNDERSCORE_IDENT_RE],illegal:'(</|->)',contains:['comment','string','function','class','number','decorator'],keywords:{'keyword':{'and':1,'elif':1,'is':1,'global':1,'as':1,'in':1,'if':1,'from':1,'raise':1,'for':1,'except':1,'finally':1,'print':1,'import':1,'pass':1,'return':1,'exec':1,'else':1,'break':1,'not':1,'with':1,'class':1,'assert':1,'yield':1,'try':1,'while':1,'continue':1,'del':1,'or':1,'def':1,'lambda':1},'built_in':{'None':1,'True':1,'False':1,'Ellipsis':1,'NotImplemented':1}}},modes:[{className:'function',lexems:[hljs.UNDERSCORE_IDENT_RE],begin:'\\bdef ',end:':',illegal:'$',keywords:{'def':1},contains:['title','params'],relevance:10},{className:'class',lexems:[hljs.UNDERSCORE_IDENT_RE],begin:'\\bclass ',end:':',illegal:'[${]',keywords:{'class':1},contains:['title','params',],relevance:10},{className:'title',begin:hljs.UNDERSCORE_IDENT_RE,end:'^'},{className:'params',begin:'\\(',end:'\\)',contains:['string']},hljs.HASH_COMMENT_MODE,hljs.C_NUMBER_MODE,{className:'string',begin:'u?r?\'\'\'',end:'\'\'\'',relevance:10},{className:'string',begin:'u?r?"""',end:'"""',relevance:10},hljs.APOS_STRING_MODE,hljs.QUOTE_STRING_MODE,hljs.BACKSLASH_ESCAPE,{className:'string',begin:'(u|r|ur)\'',end:'\'',contains:['escape'],relevance:10},{className:'string',begin:'(u|r|ur)"',end:'"',contains:['escape'],relevance:10},{className:'decorator',begin:'@',end:'$'}]};