function xpathLog(_1){}function xsltLog(_2){}function xsltLogXml(_3){}var ajaxsltIsIE6=navigator.appVersion.match(/MSIE 6.0/);function assert(b){if(!b){throw "Assertion failed";}}function stringSplit(s,c){var a=s.indexOf(c);if(a==-1){return [s];}var _8=[];_8.push(s.substr(0,a));while(a!=-1){var a1=s.indexOf(c,a+1);if(a1!=-1){_8.push(s.substr(a+1,a1-a-1));}else{_8.push(s.substr(a+1));}a=a1;}return _8;}function xmlImportNode(_a,_b){if(_b.nodeType==DOM_TEXT_NODE){return domCreateTextNode(_a,_b.nodeValue);}else{if(_b.nodeType==DOM_CDATA_SECTION_NODE){return domCreateCDATASection(_a,_b.nodeValue);}else{if(_b.nodeType==DOM_ELEMENT_NODE){var _c=domCreateElement(_a,_b.nodeName);for(var i=0;i<_b.attributes.length;++i){var an=_b.attributes[i];var _f=an.nodeName;var _10=an.nodeValue;domSetAttribute(_c,_f,_10);}for(var c=_b.firstChild;c;c=c.nextSibling){var cn=arguments.callee(_a,c);domAppendChild(_c,cn);}return _c;}else{return domCreateComment(_a,_b.nodeName);}}}}function Set(){this.keys=[];}Set.prototype.size=function(){return this.keys.length;};Set.prototype.add=function(key,_14){var _15=_14||1;if(!this.contains(key)){this[":"+key]=_15;this.keys.push(key);}};Set.prototype.set=function(key,_17){var _18=_17||1;if(!this.contains(key)){this[":"+key]=_18;this.keys.push(key);}else{this[":"+key]=_18;}};Set.prototype.inc=function(key){if(!this.contains(key)){this[":"+key]=1;this.keys.push(key);}else{this[":"+key]++;}};Set.prototype.get=function(key){if(this.contains(key)){return this[":"+key];}else{var _1b;return _1b;}};Set.prototype.remove=function(key){if(this.contains(key)){delete this[":"+key];removeFromArray(this.keys,key,true);}};Set.prototype.contains=function(_1d){return typeof this[":"+_1d]!="undefined";};Set.prototype.items=function(){var _1e=[];for(var i=0;i<this.keys.length;++i){var k=this.keys[i];var v=this[":"+k];_1e.push(v);}return _1e;};Set.prototype.map=function(f){for(var i=0;i<this.keys.length;++i){var k=this.keys[i];f.call(this,k,this[":"+k]);}};Set.prototype.clear=function(){for(var i=0;i<this.keys.length;++i){delete this[":"+this.keys[i]];}this.keys.length=0;};function mapExec(_26,_27){for(var i=0;i<_26.length;++i){_27.call(this,_26[i],i);}}function mapExpr(_29,_2a){var ret=[];for(var i=0;i<_29.length;++i){ret.push(_2a(_29[i]));}return ret;}function reverseInplace(_2d){for(var i=0;i<_2d.length/2;++i){var h=_2d[i];var ii=_2d.length-i-1;_2d[i]=_2d[ii];_2d[ii]=h;}}function removeFromArray(_31,_32,_33){var _34=0;for(var i=0;i<_31.length;++i){if(_31[i]===_32||(_33&&_31[i]==_32)){_31.splice(i--,1);_34++;}}return _34;}function copyArray(dst,src){if(!src){return;}var _38=dst.length;for(var i=src.length-1;i>=0;--i){dst[i+_38]=src[i];}}function copyArrayIgnoringAttributesWithoutValue(dst,src){if(!src){return;}for(var i=src.length-1;i>=0;--i){if(src[i].nodeValue){dst.push(src[i]);}}}function xmlValue(_3d){if(!_3d){return "";}var ret="";if(_3d.nodeType==DOM_TEXT_NODE||_3d.nodeType==DOM_CDATA_SECTION_NODE){ret+=_3d.nodeValue;}else{if(_3d.nodeType==DOM_ATTRIBUTE_NODE){if(ajaxsltIsIE6){ret+=xmlValueIE6Hack(_3d);}else{ret+=_3d.nodeValue;}}else{if(_3d.nodeType==DOM_ELEMENT_NODE||_3d.nodeType==DOM_DOCUMENT_NODE||_3d.nodeType==DOM_DOCUMENT_FRAGMENT_NODE){for(var i=0;i<_3d.childNodes.length;++i){ret+=arguments.callee(_3d.childNodes[i]);}}}}return ret;}function xmlValueIE6Hack(_40){var _41=_40.nodeName;var _42=_40.nodeValue;if(_41.length!=4){return _42;}if(!/^href$/i.test(_41)){return _42;}if(!/^javascript:/.test(_42)){return _42;}return unescape(_42);}function xmlText(_43,_44){var buf=[];xmlTextR(_43,buf,_44);return buf.join("");}function xmlTextR(_46,buf,_48){if(_46.nodeType==DOM_TEXT_NODE){buf.push(xmlEscapeText(_46.nodeValue));}else{if(_46.nodeType==DOM_CDATA_SECTION_NODE){if(_48){buf.push(_46.nodeValue);}else{buf.push("<![CDATA["+_46.nodeValue+"]]>");}}else{if(_46.nodeType==DOM_COMMENT_NODE){buf.push("<!--"+_46.nodeValue+"-->");}else{if(_46.nodeType==DOM_ELEMENT_NODE){buf.push("<"+xmlFullNodeName(_46));for(var i=0;i<_46.attributes.length;++i){var a=_46.attributes[i];if(a&&a.nodeName&&a.nodeValue){buf.push(" "+xmlFullNodeName(a)+"=\""+xmlEscapeAttr(a.nodeValue)+"\"");}}if(_46.childNodes.length==0){buf.push("/>");}else{buf.push(">");for(var i=0;i<_46.childNodes.length;++i){arguments.callee(_46.childNodes[i],buf,_48);}buf.push("</"+xmlFullNodeName(_46)+">");}}else{if(_46.nodeType==DOM_DOCUMENT_NODE||_46.nodeType==DOM_DOCUMENT_FRAGMENT_NODE){for(var i=0;i<_46.childNodes.length;++i){arguments.callee(_46.childNodes[i],buf,_48);}}}}}}}function xmlFullNodeName(n){if(n.prefix&&n.nodeName.indexOf(n.prefix+":")!=0){return n.prefix+":"+n.nodeName;}else{return n.nodeName;}}function xmlEscapeText(s){return s;return (""+s).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");}function xmlEscapeAttr(s){return s;return xmlEscapeText(s).replace(/\"/g,"&quot;");}function xmlEscapeTags(s){return s;return s.replace(/</g,"&lt;").replace(/>/g,"&gt;");}function xmlOwnerDocument(_4f){if(_4f.nodeType==DOM_DOCUMENT_NODE){return _4f;}else{return _4f.ownerDocument;}}function domGetAttribute(_50,_51){return _50.getAttribute(_51);}function domSetAttribute(_52,_53,_54){return _52.setAttribute(_53,_54);}function domRemoveAttribute(_55,_56){return _55.removeAttribute(_56);}function domAppendChild(_57,_58){return _57.appendChild(_58);}function domRemoveChild(_59,_5a){return _59.removeChild(_5a);}function domReplaceChild(_5b,_5c,_5d){return _5b.replaceChild(_5c,_5d);}function domInsertBefore(_5e,_5f,_60){return _5e.insertBefore(_5f,_60);}function domRemoveNode(_61){return domRemoveChild(_61.parentNode,_61);}function domCreateTextNode(doc,_63){return doc.createTextNode(_63);}function domCreateElement(doc,_65){return doc.createElement(_65);}function domCreateAttribute(doc,_67){return doc.createAttribute(_67);}function domCreateCDATASection(doc,_69){return doc.createCDATASection(_69);}function domCreateComment(doc,_6b){return doc.createComment(_6b);}function domCreateDocumentFragment(doc){return doc.createDocumentFragment();}function domGetElementById(doc,id){return doc.getElementById(id);}function windowSetInterval(win,fun,_71){return win.setInterval(fun,_71);}function windowClearInterval(win,id){return win.clearInterval(id);}var REGEXP_UNICODE=function(){var _74=[" ","\u0120",-1,"!","\u0120",-1,"\u0120","\u0120",0,"\u0121","\u0120",-1,"\u0121","\u0120|\u0121",0,"\u0122","\u0120|\u0121",-1,"\u0120","[\u0120]",0,"\u0121","[\u0120]",-1,"\u0121","[\u0120\u0121]",0,"\u0122","[\u0120\u0121]",-1,"\u0121","[\u0120-\u0121]",0,"\u0122","[\u0120-\u0121]",-1];for(var i=0;i<_74.length;i+=3){if(_74[i].search(new RegExp(_74[i+1]))!=_74[i+2]){return false;}}return true;}();var XML_S="[ \t\r\n]+";var XML_EQ="("+XML_S+")?=("+XML_S+")?";var XML_CHAR_REF="&#[0-9]+;|&#x[0-9a-fA-F]+;";var XML10_VERSION_INFO=XML_S+"version"+XML_EQ+"(\"1\\.0\"|"+"'1\\.0')";var XML10_BASE_CHAR=(REGEXP_UNICODE)?"A-Za-z\xc0-\xd6\xd8-\xf6\xf8-\xff"+"\u0100-\u0131\u0134-\u013e\u0141-\u0148\u014a-\u017e\u0180-\u01c3"+"\u01cd-\u01f0\u01f4-\u01f5\u01fa-\u0217\u0250-\u02a8\u02bb-\u02c1\u0386"+"\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03ce\u03d0-\u03d6\u03da\u03dc"+"\u03de\u03e0\u03e2-\u03f3\u0401-\u040c\u040e-\u044f\u0451-\u045c"+"\u045e-\u0481\u0490-\u04c4\u04c7-\u04c8\u04cb-\u04cc\u04d0-\u04eb"+"\u04ee-\u04f5\u04f8-\u04f9\u0531-\u0556\u0559\u0561-\u0586\u05d0-\u05ea"+"\u05f0-\u05f2\u0621-\u063a\u0641-\u064a\u0671-\u06b7\u06ba-\u06be"+"\u06c0-\u06ce\u06d0-\u06d3\u06d5\u06e5-\u06e6\u0905-\u0939\u093d"+"\u0958-\u0961\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2"+"\u09b6-\u09b9\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u0a05-\u0a0a"+"\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36"+"\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8b\u0a8d"+"\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9"+"\u0abd\u0ae0\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30"+"\u0b32-\u0b33\u0b36-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b85-\u0b8a"+"\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4"+"\u0ba8-\u0baa\u0bae-\u0bb5\u0bb7-\u0bb9\u0c05-\u0c0c\u0c0e-\u0c10"+"\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c60-\u0c61\u0c85-\u0c8c"+"\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cde\u0ce0-\u0ce1"+"\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d28\u0d2a-\u0d39\u0d60-\u0d61"+"\u0e01-\u0e2e\u0e30\u0e32-\u0e33\u0e40-\u0e45\u0e81-\u0e82\u0e84"+"\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5"+"\u0ea7\u0eaa-\u0eab\u0ead-\u0eae\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4"+"\u0f40-\u0f47\u0f49-\u0f69\u10a0-\u10c5\u10d0-\u10f6\u1100\u1102-\u1103"+"\u1105-\u1107\u1109\u110b-\u110c\u110e-\u1112\u113c\u113e\u1140\u114c"+"\u114e\u1150\u1154-\u1155\u1159\u115f-\u1161\u1163\u1165\u1167\u1169"+"\u116d-\u116e\u1172-\u1173\u1175\u119e\u11a8\u11ab\u11ae-\u11af"+"\u11b7-\u11b8\u11ba\u11bc-\u11c2\u11eb\u11f0\u11f9\u1e00-\u1e9b"+"\u1ea0-\u1ef9\u1f00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d"+"\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc"+"\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec"+"\u1ff2-\u1ff4\u1ff6-\u1ffc\u2126\u212a-\u212b\u212e\u2180-\u2182"+"\u3041-\u3094\u30a1-\u30fa\u3105-\u312c\uac00-\ud7a3":"A-Za-z";var XML10_IDEOGRAPHIC=(REGEXP_UNICODE)?"\u4e00-\u9fa5\u3007\u3021-\u3029":"";var XML10_COMBINING_CHAR=(REGEXP_UNICODE)?"\u0300-\u0345\u0360-\u0361\u0483-\u0486\u0591-\u05a1\u05a3-\u05b9"+"\u05bb-\u05bd\u05bf\u05c1-\u05c2\u05c4\u064b-\u0652\u0670\u06d6-\u06dc"+"\u06dd-\u06df\u06e0-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0901-\u0903\u093c"+"\u093e-\u094c\u094d\u0951-\u0954\u0962-\u0963\u0981-\u0983\u09bc\u09be"+"\u09bf\u09c0-\u09c4\u09c7-\u09c8\u09cb-\u09cd\u09d7\u09e2-\u09e3\u0a02"+"\u0a3c\u0a3e\u0a3f\u0a40-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a70-\u0a71"+"\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0b01-\u0b03"+"\u0b3c\u0b3e-\u0b43\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b82-\u0b83"+"\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0c01-\u0c03\u0c3e-\u0c44"+"\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c82-\u0c83\u0cbe-\u0cc4"+"\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0d02-\u0d03\u0d3e-\u0d43"+"\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1"+"\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39"+"\u0f3e\u0f3f\u0f71-\u0f84\u0f86-\u0f8b\u0f90-\u0f95\u0f97\u0f99-\u0fad"+"\u0fb1-\u0fb7\u0fb9\u20d0-\u20dc\u20e1\u302a-\u302f\u3099\u309a":"";var XML10_DIGIT=(REGEXP_UNICODE)?"0-9\u0660-\u0669\u06f0-\u06f9\u0966-\u096f\u09e6-\u09ef"+"\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be7-\u0bef\u0c66-\u0c6f"+"\u0ce6-\u0cef\u0d66-\u0d6f\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29":"0-9";var XML10_EXTENDER=(REGEXP_UNICODE)?"\xb7\u02d0\u02d1\u0387\u0640\u0e46\u0ec6\u3005\u3031-\u3035"+"\u309d-\u309e\u30fc-\u30fe":"";var XML10_LETTER=XML10_BASE_CHAR+XML10_IDEOGRAPHIC;var XML10_NAME_CHAR=XML10_LETTER+XML10_DIGIT+"\\._:"+XML10_COMBINING_CHAR+XML10_EXTENDER+"-";var XML10_NAME="["+XML10_LETTER+"_:]["+XML10_NAME_CHAR+"]*";var XML10_ENTITY_REF="&"+XML10_NAME+";";var XML10_REFERENCE=XML10_ENTITY_REF+"|"+XML_CHAR_REF;var XML10_ATT_VALUE="\"(([^<&\"]|"+XML10_REFERENCE+")*)\"|"+"'(([^<&']|"+XML10_REFERENCE+")*)'";var XML10_ATTRIBUTE="("+XML10_NAME+")"+XML_EQ+"("+XML10_ATT_VALUE+")";var XML11_VERSION_INFO=XML_S+"version"+XML_EQ+"(\"1\\.1\"|"+"'1\\.1')";var XML11_NAME_START_CHAR=(REGEXP_UNICODE)?":A-Z_a-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d"+"\u037f-\u1fff\u200c-\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff"+"\uf900-\ufdcf\ufdf0-\ufffd":":A-Z_a-z";var XML11_NAME_CHAR=XML11_NAME_START_CHAR+((REGEXP_UNICODE)?"\\.0-9\xb7\u0300-\u036f\u203f-\u2040-":"\\.0-9-");var XML11_NAME="["+XML11_NAME_START_CHAR+"]["+XML11_NAME_CHAR+"]*";var XML11_ENTITY_REF="&"+XML11_NAME+";";var XML11_REFERENCE=XML11_ENTITY_REF+"|"+XML_CHAR_REF;var XML11_ATT_VALUE="\"(([^<&\"]|"+XML11_REFERENCE+")*)\"|"+"'(([^<&']|"+XML11_REFERENCE+")*)'";var XML11_ATTRIBUTE="("+XML11_NAME+")"+XML_EQ+"("+XML11_ATT_VALUE+")";var XML_NC_NAME_CHAR=XML10_LETTER+XML10_DIGIT+"\\._"+XML10_COMBINING_CHAR+XML10_EXTENDER+"-";var XML_NC_NAME="["+XML10_LETTER+"_]["+XML_NC_NAME_CHAR+"]*";function xmlResolveEntities(s){var _77=stringSplit(s,"&");var ret=_77[0];for(var i=1;i<_77.length;++i){var rp=_77[i].indexOf(";");if(rp==-1){ret+=_77[i];continue;}var _7b=_77[i].substring(0,rp);var _7c=_77[i].substring(rp+1);var ch;switch(_7b){case "lt":ch="<";break;case "gt":ch=">";break;case "amp":ch="&";break;case "quot":ch="\"";break;case "apos":ch="'";break;case "nbsp":ch=String.fromCharCode(160);break;default:var _7e=domCreateElement(window.document,"span");_7e.innerHTML="&"+_7b+"; ";ch=_7e.childNodes[0].nodeValue.charAt(0);}ret+=ch+_7c;}return ret;}var XML10_TAGNAME_REGEXP=new RegExp("^("+XML10_NAME+")");var XML10_ATTRIBUTE_REGEXP=new RegExp(XML10_ATTRIBUTE,"g");var XML11_TAGNAME_REGEXP=new RegExp("^("+XML11_NAME+")");var XML11_ATTRIBUTE_REGEXP=new RegExp(XML11_ATTRIBUTE,"g");function xmlParse(xml){var _80=/\/$/;var _81;var _82;if(xml.match(/^<\?xml/)){if(xml.search(new RegExp(XML10_VERSION_INFO))==5){_81=XML10_TAGNAME_REGEXP;_82=XML10_ATTRIBUTE_REGEXP;}else{if(xml.search(new RegExp(XML11_VERSION_INFO))==5){_81=XML11_TAGNAME_REGEXP;_82=XML11_ATTRIBUTE_REGEXP;}else{alert("VersionInfo is missing, or unknown version number.");}}}else{_81=XML10_TAGNAME_REGEXP;_82=XML10_ATTRIBUTE_REGEXP;}var _83=new XDocument();var _84=_83;var _85=[];var _86=_84;_85.push(_86);var _87="";var x=stringSplit(xml,"<");for(var i=1;i<x.length;++i){var xx=stringSplit(x[i],">");var tag=xx[0];var _8c=xmlResolveEntities(xx[1]||"");if(_87){var end=x[i].indexOf(_87);if(end!=-1){var _8e=x[i].substring(0,end);_86.nodeValue+="<"+_8e;_85.pop();_86=_85[_85.length-1];_8c=x[i].substring(end+_87.length);_87="";}else{_86.nodeValue+="<"+x[i];_8c=null;}}else{if(tag.indexOf("![CDATA[")==0){var _8f="![CDATA[".length;var end=x[i].indexOf("]]>");if(end!=-1){var _8e=x[i].substring(_8f,end);var _90=domCreateCDATASection(_83,_8e);domAppendChild(_86,_90);}else{var _8e=x[i].substring(_8f);_8c=null;var _90=domCreateCDATASection(_83,_8e);domAppendChild(_86,_90);_86=_90;_85.push(_90);_87="]]>";}}else{if(tag.indexOf("!--")==0){var _8f="!--".length;var end=x[i].indexOf("-->");if(end!=-1){var _8e=x[i].substring(_8f,end);var _90=domCreateComment(_83,_8e);domAppendChild(_86,_90);}else{var _8e=x[i].substring(_8f);_8c=null;var _90=domCreateComment(_83,_8e);domAppendChild(_86,_90);_86=_90;_85.push(_90);_87="-->";}}else{if(tag.charAt(0)=="/"){_85.pop();_86=_85[_85.length-1];}else{if(tag.charAt(0)=="?"){}else{if(tag.charAt(0)=="!"){}else{var _91=tag.match(_80);var _92=_81.exec(tag)[1];var _90=domCreateElement(_83,_92);var att;while(att=_82.exec(tag)){var val=xmlResolveEntities(att[5]||att[7]||"");domSetAttribute(_90,att[1],val);}domAppendChild(_86,_90);if(!_91){_86=_90;_85.push(_90);}}}}}}}if(_8c&&_86!=_84){domAppendChild(_86,domCreateTextNode(_83,_8c));}}return _84;}var DOM_ELEMENT_NODE=1;var DOM_ATTRIBUTE_NODE=2;var DOM_TEXT_NODE=3;var DOM_CDATA_SECTION_NODE=4;var DOM_ENTITY_REFERENCE_NODE=5;var DOM_ENTITY_NODE=6;var DOM_PROCESSING_INSTRUCTION_NODE=7;var DOM_COMMENT_NODE=8;var DOM_DOCUMENT_NODE=9;var DOM_DOCUMENT_TYPE_NODE=10;var DOM_DOCUMENT_FRAGMENT_NODE=11;var DOM_NOTATION_NODE=12;function domTraverseElements(_95,_96,_97){var ret;if(_96){ret=_96.call(null,_95);if(typeof ret=="boolean"&&!ret){return false;}}for(var c=_95.firstChild;c;c=c.nextSibling){if(c.nodeType==DOM_ELEMENT_NODE){ret=arguments.callee.call(this,c,_96,_97);if(typeof ret=="boolean"&&!ret){return false;}}}if(_97){ret=_97.call(null,_95);if(typeof ret=="boolean"&&!ret){return false;}}}function XNode(_9a,_9b,_9c,_9d){this.attributes=[];this.childNodes=[];XNode.init.call(this,_9a,_9b,_9c,_9d);}XNode.init=function(_9e,_9f,_a0,_a1){this.nodeType=_9e-0;this.nodeName=""+_9f;this.nodeValue=""+_a0;this.ownerDocument=_a1;this.firstChild=null;this.lastChild=null;this.nextSibling=null;this.previousSibling=null;this.parentNode=null;};XNode.unused_=[];XNode.recycle=function(_a2){if(!_a2){return;}if(_a2.constructor==XDocument){XNode.recycle(_a2.documentElement);return;}if(_a2.constructor!=this){return;}XNode.unused_.push(_a2);for(var a=0;a<_a2.attributes.length;++a){XNode.recycle(_a2.attributes[a]);}for(var c=0;c<_a2.childNodes.length;++c){XNode.recycle(_a2.childNodes[c]);}_a2.attributes.length=0;_a2.childNodes.length=0;XNode.init.call(_a2,0,"","",null);};XNode.create=function(_a5,_a6,_a7,_a8){if(XNode.unused_.length>0){var _a9=XNode.unused_.pop();XNode.init.call(_a9,_a5,_a6,_a7,_a8);return _a9;}else{return new XNode(_a5,_a6,_a7,_a8);}};XNode.prototype.appendChild=function(_aa){if(this.childNodes.length==0){this.firstChild=_aa;}_aa.previousSibling=this.lastChild;_aa.nextSibling=null;if(this.lastChild){this.lastChild.nextSibling=_aa;}_aa.parentNode=this;this.lastChild=_aa;this.childNodes.push(_aa);};XNode.prototype.replaceChild=function(_ab,_ac){if(_ac==_ab){return;}for(var i=0;i<this.childNodes.length;++i){if(this.childNodes[i]==_ac){this.childNodes[i]=_ab;var p=_ac.parentNode;_ac.parentNode=null;_ab.parentNode=p;p=_ac.previousSibling;_ac.previousSibling=null;_ab.previousSibling=p;if(_ab.previousSibling){_ab.previousSibling.nextSibling=_ab;}p=_ac.nextSibling;_ac.nextSibling=null;_ab.nextSibling=p;if(_ab.nextSibling){_ab.nextSibling.previousSibling=_ab;}if(this.firstChild==_ac){this.firstChild=_ab;}if(this.lastChild==_ac){this.lastChild=_ab;}break;}}};XNode.prototype.insertBefore=function(_af,_b0){if(_b0==_af){return;}if(_b0.parentNode!=this){return;}if(_af.parentNode){_af.parentNode.removeChild(_af);}var _b1=[];for(var i=0;i<this.childNodes.length;++i){var c=this.childNodes[i];if(c==_b0){_b1.push(_af);_af.parentNode=this;_af.previousSibling=_b0.previousSibling;_b0.previousSibling=_af;if(_af.previousSibling){_af.previousSibling.nextSibling=_af;}_af.nextSibling=_b0;if(this.firstChild==_b0){this.firstChild=_af;}}_b1.push(c);}this.childNodes=_b1;};XNode.prototype.removeChild=function(_b4){var _b5=[];for(var i=0;i<this.childNodes.length;++i){var c=this.childNodes[i];if(c!=_b4){_b5.push(c);}else{if(c.previousSibling){c.previousSibling.nextSibling=c.nextSibling;}if(c.nextSibling){c.nextSibling.previousSibling=c.previousSibling;}if(this.firstChild==c){this.firstChild=c.nextSibling;}if(this.lastChild==c){this.lastChild=c.previousSibling;}}}this.childNodes=_b5;};XNode.prototype.hasAttributes=function(){return this.attributes.length>0;};XNode.prototype.setAttribute=function(_b8,_b9){for(var i=0;i<this.attributes.length;++i){if(this.attributes[i].nodeName==_b8){this.attributes[i].nodeValue=""+_b9;return;}}this.attributes.push(XNode.create(DOM_ATTRIBUTE_NODE,_b8,_b9,this));};XNode.prototype.getAttribute=function(_bb){for(var i=0;i<this.attributes.length;++i){if(this.attributes[i].nodeName==_bb){return this.attributes[i].nodeValue;}}return null;};XNode.prototype.removeAttribute=function(_bd){var a=[];for(var i=0;i<this.attributes.length;++i){if(this.attributes[i].nodeName!=_bd){a.push(this.attributes[i]);}}this.attributes=a;};XNode.prototype.getElementsByTagName=function(_c0){var ret=[];var _c2=this;if("*"==_c0){domTraverseElements(this,function(_c3){if(_c2==_c3){return;}ret.push(_c3);},null);}else{domTraverseElements(this,function(_c4){if(_c2==_c4){return;}if(_c4.nodeName==_c0){ret.push(_c4);}},null);}return ret;};XNode.prototype.getElementById=function(id){var ret=null;domTraverseElements(this,function(_c7){if(_c7.getAttribute("id")==id){ret=_c7;return false;}},null);return ret;};function XDocument(){XNode.call(this,DOM_DOCUMENT_NODE,"#document",null,null);this.documentElement=null;}XDocument.prototype=new XNode(DOM_DOCUMENT_NODE,"#document");XDocument.prototype.clear=function(){XNode.recycle(this.documentElement);this.documentElement=null;};XDocument.prototype.appendChild=function(_c8){XNode.prototype.appendChild.call(this,_c8);this.documentElement=this.childNodes[0];};XDocument.prototype.createElement=function(_c9){return XNode.create(DOM_ELEMENT_NODE,_c9,null,this);};XDocument.prototype.createDocumentFragment=function(){return XNode.create(DOM_DOCUMENT_FRAGMENT_NODE,"#document-fragment",null,this);};XDocument.prototype.createTextNode=function(_ca){return XNode.create(DOM_TEXT_NODE,"#text",_ca,this);};XDocument.prototype.createAttribute=function(_cb){return XNode.create(DOM_ATTRIBUTE_NODE,_cb,null,this);};XDocument.prototype.createComment=function(_cc){return XNode.create(DOM_COMMENT_NODE,"#comment",_cc,this);};XDocument.prototype.createCDATASection=function(_cd){return XNode.create(DOM_CDATA_SECTION_NODE,"#cdata-section",_cd,this);};function xpathParse(_ce){xpathLog("parse "+_ce);xpathParseInit();var _cf=xpathCacheLookup(_ce);if(_cf){xpathLog(" ... cached");return _cf;}if(_ce.match(/^(\$|@)?\w+$/i)){var ret=makeSimpleExpr(_ce);xpathParseCache[_ce]=ret;xpathLog(" ... simple");return ret;}if(_ce.match(/^\w+(\/\w+)*$/i)){var ret=makeSimpleExpr2(_ce);xpathParseCache[_ce]=ret;xpathLog(" ... simple 2");return ret;}var _d1=_ce;var _d2=[];var _d3=null;var _d4=null;var _d5=false;var _d6=0;var _d7=0;var _d8=0;while(!_d5){_d6++;_ce=_ce.replace(/^\s*/,"");_d4=_d3;_d3=null;var _d9=null;var _da="";for(var i=0;i<xpathTokenRules.length;++i){var _dc=xpathTokenRules[i].re.exec(_ce);_d7++;if(_dc&&_dc.length>0&&_dc[0].length>_da.length){_d9=xpathTokenRules[i];_da=_dc[0];break;}}if(_d9&&(_d9==TOK_DIV||_d9==TOK_MOD||_d9==TOK_AND||_d9==TOK_OR)&&(!_d4||_d4.tag==TOK_AT||_d4.tag==TOK_DSLASH||_d4.tag==TOK_SLASH||_d4.tag==TOK_AXIS||_d4.tag==TOK_DOLLAR)){_d9=TOK_QNAME;}if(_d9){_ce=_ce.substr(_da.length);xpathLog("token: "+_da+" -- "+_d9.label);_d3={tag:_d9,match:_da,prec:_d9.prec?_d9.prec:0,expr:makeTokenExpr(_da)};}else{xpathLog("DONE");_d5=true;}while(xpathReduce(_d2,_d3)){_d8++;xpathLog("stack: "+stackToString(_d2));}}xpathLog("stack: "+stackToString(_d2));if(_d2.length!=1){throw "XPath parse error "+_d1+":\n"+stackToString(_d2);}var _dc=_d2[0].expr;xpathParseCache[_d1]=_dc;xpathLog("XPath parse: "+_d6+" / "+_d7+" / "+_d8);return _dc;}var xpathParseCache={};function xpathCacheLookup(_dd){return xpathParseCache[_dd];}function xpathReduce(_de,_df){var _e0=null;if(_de.length>0){var top=_de[_de.length-1];var _e2=xpathRules[top.tag.key];if(_e2){for(var i=0;i<_e2.length;++i){var _e4=_e2[i];var _e5=xpathMatchStack(_de,_e4[1]);if(_e5.length){_e0={tag:_e4[0],rule:_e4,match:_e5};_e0.prec=xpathGrammarPrecedence(_e0);break;}}}}var ret;if(_e0&&(!_df||_e0.prec>_df.prec||(_df.tag.left&&_e0.prec>=_df.prec))){for(var i=0;i<_e0.match.matchlength;++i){_de.pop();}xpathLog("reduce "+_e0.tag.label+" "+_e0.prec+" ahead "+(_df?_df.tag.label+" "+_df.prec+(_df.tag.left?" left":""):" none "));var _e7=mapExpr(_e0.match,function(m){return m.expr;});xpathLog("going to apply "+_e0.rule[3].toString());_e0.expr=_e0.rule[3].apply(null,_e7);_de.push(_e0);ret=true;}else{if(_df){xpathLog("shift "+_df.tag.label+" "+_df.prec+(_df.tag.left?" left":"")+" over "+(_e0?_e0.tag.label+" "+_e0.prec:" none"));_de.push(_df);}ret=false;}return ret;}function xpathMatchStack(_e9,_ea){var S=_e9.length;var P=_ea.length;var p,s;var _ef=[];_ef.matchlength=0;var ds=0;for(p=P-1,s=S-1;p>=0&&s>=0;--p,s-=ds){ds=0;var _f1=[];if(_ea[p]==Q_MM){p-=1;_ef.push(_f1);while(s-ds>=0&&_e9[s-ds].tag==_ea[p]){_f1.push(_e9[s-ds]);ds+=1;_ef.matchlength+=1;}}else{if(_ea[p]==Q_01){p-=1;_ef.push(_f1);while(s-ds>=0&&ds<2&&_e9[s-ds].tag==_ea[p]){_f1.push(_e9[s-ds]);ds+=1;_ef.matchlength+=1;}}else{if(_ea[p]==Q_1M){p-=1;_ef.push(_f1);if(_e9[s].tag==_ea[p]){while(s-ds>=0&&_e9[s-ds].tag==_ea[p]){_f1.push(_e9[s-ds]);ds+=1;_ef.matchlength+=1;}}else{return [];}}else{if(_e9[s].tag==_ea[p]){_ef.push(_e9[s]);ds+=1;_ef.matchlength+=1;}else{return [];}}}}reverseInplace(_f1);_f1.expr=mapExpr(_f1,function(m){return m.expr;});}reverseInplace(_ef);if(p==-1){return _ef;}else{return [];}}function xpathTokenPrecedence(tag){return tag.prec||2;}function xpathGrammarPrecedence(_f4){var ret=0;if(_f4.rule){if(_f4.rule.length>=3&&_f4.rule[2]>=0){ret=_f4.rule[2];}else{for(var i=0;i<_f4.rule[1].length;++i){var p=xpathTokenPrecedence(_f4.rule[1][i]);ret=Math.max(ret,p);}}}else{if(_f4.tag){ret=xpathTokenPrecedence(_f4.tag);}else{if(_f4.length){for(var j=0;j<_f4.length;++j){var p=xpathGrammarPrecedence(_f4[j]);ret=Math.max(ret,p);}}}}return ret;}function stackToString(_f9){var ret="";for(var i=0;i<_f9.length;++i){if(ret){ret+="\n";}ret+=_f9[i].tag.label;}return ret;}function ExprContext(_fc,_fd,_fe,_ff,_100,_101){this.node=_fc;this.position=_fd||0;this.nodelist=_fe||[_fc];this.variables={};this.parent=_ff||null;this.caseInsensitive=_100||false;this.ignoreAttributesWithoutValue=_101||false;if(_ff){this.root=_ff.root;}else{if(this.node.nodeType==DOM_DOCUMENT_NODE){this.root=_fc;}else{this.root=_fc.ownerDocument;}}}ExprContext.prototype.clone=function(_102,_103,_104){return new ExprContext(_102||this.node,typeof _103!="undefined"?_103:this.position,_104||this.nodelist,this,this.caseInsensitive,this.ignoreAttributesWithoutValue);};ExprContext.prototype.setVariable=function(name,_106){if(_106 instanceof StringValue||_106 instanceof BooleanValue||_106 instanceof NumberValue||_106 instanceof NodeSetValue){this.variables[name]=_106;return;}if("true"===_106){this.variables[name]=new BooleanValue(true);}else{if("false"===_106){this.variables[name]=new BooleanValue(false);}else{if(TOK_NUMBER.re.test(_106)){this.variables[name]=new NumberValue(_106);}else{this.variables[name]=new StringValue(_106);}}}};ExprContext.prototype.getVariable=function(name){if(typeof this.variables[name]!="undefined"){return this.variables[name];}else{if(this.parent){return this.parent.getVariable(name);}else{return null;}}};ExprContext.prototype.setNode=function(_108){this.node=this.nodelist[_108];this.position=_108;};ExprContext.prototype.contextSize=function(){return this.nodelist.length;};ExprContext.prototype.isCaseInsensitive=function(){return this.caseInsensitive;};ExprContext.prototype.setCaseInsensitive=function(_109){return this.caseInsensitive=_109;};ExprContext.prototype.isIgnoreAttributesWithoutValue=function(){return this.ignoreAttributesWithoutValue;};ExprContext.prototype.setIgnoreAttributesWithoutValue=function(_10a){return this.ignoreAttributesWithoutValue=_10a;};function StringValue(_10b){this.value=_10b;this.type="string";}StringValue.prototype.stringValue=function(){return this.value;};StringValue.prototype.booleanValue=function(){return this.value.length>0;};StringValue.prototype.numberValue=function(){return this.value-0;};StringValue.prototype.nodeSetValue=function(){throw this;};function BooleanValue(_10c){this.value=_10c;this.type="boolean";}BooleanValue.prototype.stringValue=function(){return ""+this.value;};BooleanValue.prototype.booleanValue=function(){return this.value;};BooleanValue.prototype.numberValue=function(){return this.value?1:0;};BooleanValue.prototype.nodeSetValue=function(){throw this;};function NumberValue(_10d){this.value=_10d;this.type="number";}NumberValue.prototype.stringValue=function(){return ""+this.value;};NumberValue.prototype.booleanValue=function(){return !!this.value;};NumberValue.prototype.numberValue=function(){return this.value-0;};NumberValue.prototype.nodeSetValue=function(){throw this;};function NodeSetValue(_10e){this.value=_10e;this.type="node-set";}NodeSetValue.prototype.stringValue=function(){if(this.value.length==0){return "";}else{return xmlValue(this.value[0]);}};NodeSetValue.prototype.booleanValue=function(){return this.value.length>0;};NodeSetValue.prototype.numberValue=function(){return this.stringValue()-0;};NodeSetValue.prototype.nodeSetValue=function(){return this.value;};function TokenExpr(m){this.value=m;}TokenExpr.prototype.evaluate=function(){return new StringValue(this.value);};function LocationExpr(){this.absolute=false;this.steps=[];}LocationExpr.prototype.appendStep=function(s){var _111=this._combineSteps(this.steps[this.steps.length-1],s);if(_111){this.steps[this.steps.length-1]=_111;}else{this.steps.push(s);}};LocationExpr.prototype.prependStep=function(s){var _113=this._combineSteps(s,this.steps[0]);if(_113){this.steps[0]=_113;}else{this.steps.unshift(s);}};LocationExpr.prototype._combineSteps=function(_114,_115){if(!_114){return null;}if(!_115){return null;}var _116=(_114.predicates&&_114.predicates.length>0);if(_114.nodetest instanceof NodeTestAny&&!_116){if(_114.axis==xpathAxis.DESCENDANT_OR_SELF){if(_115.axis==xpathAxis.CHILD){_115.axis=xpathAxis.DESCENDANT;return _115;}else{if(_115.axis==xpathAxis.SELF){_115.axis=xpathAxis.DESCENDANT_OR_SELF;return _115;}}}else{if(_114.axis==xpathAxis.DESCENDANT){if(_115.axis==xpathAxis.SELF){_115.axis=xpathAxis.DESCENDANT;return _115;}}}}return null;};LocationExpr.prototype.evaluate=function(ctx){var _118;if(this.absolute){_118=ctx.root;}else{_118=ctx.node;}var _119=[];xPathStep(_119,this.steps,0,_118,ctx);return new NodeSetValue(_119);};function xPathStep(_11a,_11b,step,_11d,ctx){var s=_11b[step];var ctx2=ctx.clone(_11d);var _121=s.evaluate(ctx2).nodeSetValue();for(var i=0;i<_121.length;++i){if(step==_11b.length-1){_11a.push(_121[i]);}else{xPathStep(_11a,_11b,step+1,_121[i],ctx);}}}function StepExpr(axis,_124,_125){this.axis=axis;this.nodetest=_124;this.predicate=_125||[];}StepExpr.prototype.appendPredicate=function(p){this.predicate.push(p);};StepExpr.prototype.evaluate=function(ctx){var _128=ctx.node;var _129=[];var _12a=false;if(this.nodetest instanceof NodeTestAny){_12a=true;}if(this.axis==xpathAxis.ANCESTOR_OR_SELF){_129.push(_128);for(var n=_128.parentNode;n;n=n.parentNode){_129.push(n);}}else{if(this.axis==xpathAxis.ANCESTOR){for(var n=_128.parentNode;n;n=n.parentNode){_129.push(n);}}else{if(this.axis==xpathAxis.ATTRIBUTE){if(ctx.ignoreAttributesWithoutValue){copyArrayIgnoringAttributesWithoutValue(_129,_128.attributes);}else{copyArray(_129,_128.attributes);}}else{if(this.axis==xpathAxis.CHILD){copyArray(_129,_128.childNodes);}else{if(this.axis==xpathAxis.DESCENDANT_OR_SELF){if(this.nodetest.evaluate(ctx).booleanValue()){_129.push(_128);}var _12c=xpathExtractTagNameFromNodeTest(this.nodetest);xpathCollectDescendants(_129,_128,_12c);if(_12c){_12a=true;}}else{if(this.axis==xpathAxis.DESCENDANT){var _12c=xpathExtractTagNameFromNodeTest(this.nodetest);xpathCollectDescendants(_129,_128,_12c);if(_12c){_12a=true;}}else{if(this.axis==xpathAxis.FOLLOWING){for(var n=_128;n;n=n.parentNode){for(var nn=n.nextSibling;nn;nn=nn.nextSibling){_129.push(nn);xpathCollectDescendants(_129,nn);}}}else{if(this.axis==xpathAxis.FOLLOWING_SIBLING){for(var n=_128.nextSibling;n;n=n.nextSibling){_129.push(n);}}else{if(this.axis==xpathAxis.NAMESPACE){alert("not implemented: axis namespace");}else{if(this.axis==xpathAxis.PARENT){if(_128.parentNode){_129.push(_128.parentNode);}}else{if(this.axis==xpathAxis.PRECEDING){for(var n=_128;n;n=n.parentNode){for(var nn=n.previousSibling;nn;nn=nn.previousSibling){_129.push(nn);xpathCollectDescendantsReverse(_129,nn);}}}else{if(this.axis==xpathAxis.PRECEDING_SIBLING){for(var n=_128.previousSibling;n;n=n.previousSibling){_129.push(n);}}else{if(this.axis==xpathAxis.SELF){_129.push(_128);}else{throw "ERROR -- NO SUCH AXIS: "+this.axis;}}}}}}}}}}}}}if(!_12a){var _12e=_129;_129=[];for(var i=0;i<_12e.length;++i){var n=_12e[i];if(this.nodetest.evaluate(ctx.clone(n,i,_12e)).booleanValue()){_129.push(n);}}}for(var i=0;i<this.predicate.length;++i){var _12e=_129;_129=[];for(var ii=0;ii<_12e.length;++ii){var n=_12e[ii];if(this.predicate[i].evaluate(ctx.clone(n,ii,_12e)).booleanValue()){_129.push(n);}}}return new NodeSetValue(_129);};function NodeTestAny(){this.value=new BooleanValue(true);}NodeTestAny.prototype.evaluate=function(ctx){return this.value;};function NodeTestElementOrAttribute(){}NodeTestElementOrAttribute.prototype.evaluate=function(ctx){return new BooleanValue(ctx.node.nodeType==DOM_ELEMENT_NODE||ctx.node.nodeType==DOM_ATTRIBUTE_NODE);};function NodeTestText(){}NodeTestText.prototype.evaluate=function(ctx){return new BooleanValue(ctx.node.nodeType==DOM_TEXT_NODE);};function NodeTestComment(){}NodeTestComment.prototype.evaluate=function(ctx){return new BooleanValue(ctx.node.nodeType==DOM_COMMENT_NODE);};function NodeTestPI(_135){this.target=_135;}NodeTestPI.prototype.evaluate=function(ctx){return new BooleanValue(ctx.node.nodeType==DOM_PROCESSING_INSTRUCTION_NODE&&(!this.target||ctx.node.nodeName==this.target));};function NodeTestNC(_137){this.regex=new RegExp("^"+_137+":");this.nsprefix=_137;}NodeTestNC.prototype.evaluate=function(ctx){var n=ctx.node;return new BooleanValue(this.regex.match(n.nodeName));};function NodeTestName(name){this.name=name;this.re=new RegExp("^"+name+"$","i");}NodeTestName.prototype.evaluate=function(ctx){var n=ctx.node;if(ctx.caseInsensitive){if(n.nodeName.length!=this.name.length){return new BooleanValue(false);}return new BooleanValue(this.re.test(n.nodeName));}else{return new BooleanValue(n.nodeName==this.name);}};function PredicateExpr(expr){this.expr=expr;}PredicateExpr.prototype.evaluate=function(ctx){var v=this.expr.evaluate(ctx);if(v.type=="number"){return new BooleanValue(ctx.position==v.numberValue()-1);}else{return new BooleanValue(v.booleanValue());}};function FunctionCallExpr(name){this.name=name;this.args=[];}FunctionCallExpr.prototype.appendArg=function(arg){this.args.push(arg);};FunctionCallExpr.prototype.evaluate=function(ctx){var fn=""+this.name.value;var f=this.xpathfunctions[fn];if(f){return f.call(this,ctx);}else{xpathLog("XPath NO SUCH FUNCTION "+fn);return new BooleanValue(false);}};FunctionCallExpr.prototype.xpathfunctions={"last":function(ctx){assert(this.args.length==0);return new NumberValue(ctx.contextSize());},"position":function(ctx){assert(this.args.length==0);return new NumberValue(ctx.position+1);},"count":function(ctx){assert(this.args.length==1);var v=this.args[0].evaluate(ctx);return new NumberValue(v.nodeSetValue().length);},"id":function(ctx){assert(this.args.length==1);var e=this.args[0].evaluate(ctx);var ret=[];var ids;if(e.type=="node-set"){ids=[];var en=e.nodeSetValue();for(var i=0;i<en.length;++i){var v=xmlValue(en[i]).split(/\s+/);for(var ii=0;ii<v.length;++ii){ids.push(v[ii]);}}}else{ids=e.stringValue().split(/\s+/);}var d=ctx.root;for(var i=0;i<ids.length;++i){var n=d.getElementById(ids[i]);if(n){ret.push(n);}}return new NodeSetValue(ret);},"local-name":function(ctx){alert("not implmented yet: XPath function local-name()");},"namespace-uri":function(ctx){alert("not implmented yet: XPath function namespace-uri()");},"name":function(ctx){assert(this.args.length==1||this.args.length==0);var n;if(this.args.length==0){n=[ctx.node];}else{n=this.args[0].evaluate(ctx).nodeSetValue();}if(n.length==0){return new StringValue("");}else{return new StringValue(n[0].nodeName);}},"string":function(ctx){assert(this.args.length==1||this.args.length==0);if(this.args.length==0){return new StringValue(new NodeSetValue([ctx.node]).stringValue());}else{return new StringValue(this.args[0].evaluate(ctx).stringValue());}},"concat":function(ctx){var ret="";for(var i=0;i<this.args.length;++i){ret+=this.args[i].evaluate(ctx).stringValue();}return new StringValue(ret);},"starts-with":function(ctx){assert(this.args.length==2);var s0=this.args[0].evaluate(ctx).stringValue();var s1=this.args[1].evaluate(ctx).stringValue();return new BooleanValue(s0.indexOf(s1)==0);},"contains":function(ctx){assert(this.args.length==2);var s0=this.args[0].evaluate(ctx).stringValue();var s1=this.args[1].evaluate(ctx).stringValue();return new BooleanValue(s0.indexOf(s1)!=-1);},"substring-before":function(ctx){assert(this.args.length==2);var s0=this.args[0].evaluate(ctx).stringValue();var s1=this.args[1].evaluate(ctx).stringValue();var i=s0.indexOf(s1);var ret;if(i==-1){ret="";}else{ret=s0.substr(0,i);}return new StringValue(ret);},"substring-after":function(ctx){assert(this.args.length==2);var s0=this.args[0].evaluate(ctx).stringValue();var s1=this.args[1].evaluate(ctx).stringValue();var i=s0.indexOf(s1);var ret;if(i==-1){ret="";}else{ret=s0.substr(i+s1.length);}return new StringValue(ret);},"substring":function(ctx){assert(this.args.length==2||this.args.length==3);var s0=this.args[0].evaluate(ctx).stringValue();var s1=this.args[1].evaluate(ctx).numberValue();var ret;if(this.args.length==2){var i1=Math.max(0,Math.round(s1)-1);ret=s0.substr(i1);}else{var s2=this.args[2].evaluate(ctx).numberValue();var i0=Math.round(s1)-1;var i1=Math.max(0,i0);var i2=Math.round(s2)-Math.max(0,-i0);ret=s0.substr(i1,i2);}return new StringValue(ret);},"string-length":function(ctx){var s;if(this.args.length>0){s=this.args[0].evaluate(ctx).stringValue();}else{s=new NodeSetValue([ctx.node]).stringValue();}return new NumberValue(s.length);},"normalize-space":function(ctx){var s;if(this.args.length>0){s=this.args[0].evaluate(ctx).stringValue();}else{s=new NodeSetValue([ctx.node]).stringValue();}s=s.replace(/^\s*/,"").replace(/\s*$/,"").replace(/\s+/g," ");return new StringValue(s);},"translate":function(ctx){assert(this.args.length==3);var s0=this.args[0].evaluate(ctx).stringValue();var s1=this.args[1].evaluate(ctx).stringValue();var s2=this.args[2].evaluate(ctx).stringValue();for(var i=0;i<s1.length;++i){s0=s0.replace(new RegExp(s1.charAt(i),"g"),s2.charAt(i));}return new StringValue(s0);},"boolean":function(ctx){assert(this.args.length==1);return new BooleanValue(this.args[0].evaluate(ctx).booleanValue());},"not":function(ctx){assert(this.args.length==1);var ret=!this.args[0].evaluate(ctx).booleanValue();return new BooleanValue(ret);},"true":function(ctx){assert(this.args.length==0);return new BooleanValue(true);},"false":function(ctx){assert(this.args.length==0);return new BooleanValue(false);},"lang":function(ctx){assert(this.args.length==1);var lang=this.args[0].evaluate(ctx).stringValue();var _183;var n=ctx.node;while(n&&n!=n.parentNode){_183=n.getAttribute("xml:lang");if(_183){break;}n=n.parentNode;}if(!_183){return new BooleanValue(false);}else{var re=new RegExp("^"+lang+"$","i");return new BooleanValue(_183.match(re)||_183.replace(/_.*$/,"").match(re));}},"number":function(ctx){assert(this.args.length==1||this.args.length==0);if(this.args.length==1){return new NumberValue(this.args[0].evaluate(ctx).numberValue());}else{return new NumberValue(new NodeSetValue([ctx.node]).numberValue());}},"sum":function(ctx){assert(this.args.length==1);var n=this.args[0].evaluate(ctx).nodeSetValue();var sum=0;for(var i=0;i<n.length;++i){sum+=xmlValue(n[i])-0;}return new NumberValue(sum);},"floor":function(ctx){assert(this.args.length==1);var num=this.args[0].evaluate(ctx).numberValue();return new NumberValue(Math.floor(num));},"ceiling":function(ctx){assert(this.args.length==1);var num=this.args[0].evaluate(ctx).numberValue();return new NumberValue(Math.ceil(num));},"round":function(ctx){assert(this.args.length==1);var num=this.args[0].evaluate(ctx).numberValue();return new NumberValue(Math.round(num));},"ext-join":function(ctx){assert(this.args.length==2);var _192=this.args[0].evaluate(ctx).nodeSetValue();var _193=this.args[1].evaluate(ctx).stringValue();var ret="";for(var i=0;i<_192.length;++i){if(ret){ret+=_193;}ret+=xmlValue(_192[i]);}return new StringValue(ret);},"ext-if":function(ctx){assert(this.args.length==3);if(this.args[0].evaluate(ctx).booleanValue()){return this.args[1].evaluate(ctx);}else{return this.args[2].evaluate(ctx);}},"ext-cardinal":function(ctx){assert(this.args.length>=1);var c=this.args[0].evaluate(ctx).numberValue();var ret=[];for(var i=0;i<c;++i){ret.push(ctx.node);}return new NodeSetValue(ret);}};function UnionExpr(_19b,_19c){this.expr1=_19b;this.expr2=_19c;}UnionExpr.prototype.evaluate=function(ctx){var _19e=this.expr1.evaluate(ctx).nodeSetValue();var _19f=this.expr2.evaluate(ctx).nodeSetValue();var I1=_19e.length;for(var i2=0;i2<_19f.length;++i2){var n=_19f[i2];var _1a3=false;for(var i1=0;i1<I1;++i1){if(_19e[i1]==n){_1a3=true;i1=I1;}}if(!_1a3){_19e.push(n);}}return new NodeSetValue(_19e);};function PathExpr(_1a5,rel){this.filter=_1a5;this.rel=rel;}PathExpr.prototype.evaluate=function(ctx){var _1a8=this.filter.evaluate(ctx).nodeSetValue();var _1a9=[];for(var i=0;i<_1a8.length;++i){var _1ab=this.rel.evaluate(ctx.clone(_1a8[i],i,_1a8)).nodeSetValue();for(var ii=0;ii<_1ab.length;++ii){_1a9.push(_1ab[ii]);}}return new NodeSetValue(_1a9);};function FilterExpr(expr,_1ae){this.expr=expr;this.predicate=_1ae;}FilterExpr.prototype.evaluate=function(ctx){var _1b0=this.expr.evaluate(ctx).nodeSetValue();for(var i=0;i<this.predicate.length;++i){var _1b2=_1b0;_1b0=[];for(var j=0;j<_1b2.length;++j){var n=_1b2[j];if(this.predicate[i].evaluate(ctx.clone(n,j,_1b2)).booleanValue()){_1b0.push(n);}}}return new NodeSetValue(_1b0);};function UnaryMinusExpr(expr){this.expr=expr;}UnaryMinusExpr.prototype.evaluate=function(ctx){return new NumberValue(-this.expr.evaluate(ctx).numberValue());};function BinaryExpr(_1b7,op,_1b9){this.expr1=_1b7;this.expr2=_1b9;this.op=op;}BinaryExpr.prototype.evaluate=function(ctx){var ret;switch(this.op.value){case "or":ret=new BooleanValue(this.expr1.evaluate(ctx).booleanValue()||this.expr2.evaluate(ctx).booleanValue());break;case "and":ret=new BooleanValue(this.expr1.evaluate(ctx).booleanValue()&&this.expr2.evaluate(ctx).booleanValue());break;case "+":ret=new NumberValue(this.expr1.evaluate(ctx).numberValue()+this.expr2.evaluate(ctx).numberValue());break;case "-":ret=new NumberValue(this.expr1.evaluate(ctx).numberValue()-this.expr2.evaluate(ctx).numberValue());break;case "*":ret=new NumberValue(this.expr1.evaluate(ctx).numberValue()*this.expr2.evaluate(ctx).numberValue());break;case "mod":ret=new NumberValue(this.expr1.evaluate(ctx).numberValue()%this.expr2.evaluate(ctx).numberValue());break;case "div":ret=new NumberValue(this.expr1.evaluate(ctx).numberValue()/this.expr2.evaluate(ctx).numberValue());break;case "=":ret=this.compare(ctx,function(x1,x2){return x1==x2;});break;case "!=":ret=this.compare(ctx,function(x1,x2){return x1!=x2;});break;case "<":ret=this.compare(ctx,function(x1,x2){return x1<x2;});break;case "<=":ret=this.compare(ctx,function(x1,x2){return x1<=x2;});break;case ">":ret=this.compare(ctx,function(x1,x2){return x1>x2;});break;case ">=":ret=this.compare(ctx,function(x1,x2){return x1>=x2;});break;default:alert("BinaryExpr.evaluate: "+this.op.value);}return ret;};BinaryExpr.prototype.compare=function(ctx,cmp){var v1=this.expr1.evaluate(ctx);var v2=this.expr2.evaluate(ctx);var ret;if(v1.type=="node-set"&&v2.type=="node-set"){var n1=v1.nodeSetValue();var n2=v2.nodeSetValue();ret=false;for(var i1=0;i1<n1.length;++i1){for(var i2=0;i2<n2.length;++i2){if(cmp(xmlValue(n1[i1]),xmlValue(n2[i2]))){ret=true;i2=n2.length;i1=n1.length;}}}}else{if(v1.type=="node-set"||v2.type=="node-set"){if(v1.type=="number"){var s=v1.numberValue();var n=v2.nodeSetValue();ret=false;for(var i=0;i<n.length;++i){var nn=xmlValue(n[i])-0;if(cmp(s,nn)){ret=true;break;}}}else{if(v2.type=="number"){var n=v1.nodeSetValue();var s=v2.numberValue();ret=false;for(var i=0;i<n.length;++i){var nn=xmlValue(n[i])-0;if(cmp(nn,s)){ret=true;break;}}}else{if(v1.type=="string"){var s=v1.stringValue();var n=v2.nodeSetValue();ret=false;for(var i=0;i<n.length;++i){var nn=xmlValue(n[i]);if(cmp(s,nn)){ret=true;break;}}}else{if(v2.type=="string"){var n=v1.nodeSetValue();var s=v2.stringValue();ret=false;for(var i=0;i<n.length;++i){var nn=xmlValue(n[i]);if(cmp(nn,s)){ret=true;break;}}}else{ret=cmp(v1.booleanValue(),v2.booleanValue());}}}}}else{if(v1.type=="boolean"||v2.type=="boolean"){ret=cmp(v1.booleanValue(),v2.booleanValue());}else{if(v1.type=="number"||v2.type=="number"){ret=cmp(v1.numberValue(),v2.numberValue());}else{ret=cmp(v1.stringValue(),v2.stringValue());}}}}return new BooleanValue(ret);};function LiteralExpr(_1d5){this.value=_1d5;}LiteralExpr.prototype.evaluate=function(ctx){return new StringValue(this.value);};function NumberExpr(_1d7){this.value=_1d7;}NumberExpr.prototype.evaluate=function(ctx){return new NumberValue(this.value);};function VariableExpr(name){this.name=name;}VariableExpr.prototype.evaluate=function(ctx){return ctx.getVariable(this.name);};function makeTokenExpr(m){return new TokenExpr(m);}function passExpr(e){return e;}function makeLocationExpr1(_1dd,rel){rel.absolute=true;return rel;}function makeLocationExpr2(_1df,rel){rel.absolute=true;rel.prependStep(makeAbbrevStep(_1df.value));return rel;}function makeLocationExpr3(_1e1){var ret=new LocationExpr();ret.appendStep(makeAbbrevStep("."));ret.absolute=true;return ret;}function makeLocationExpr4(_1e3){var ret=new LocationExpr();ret.absolute=true;ret.appendStep(makeAbbrevStep(_1e3.value));return ret;}function makeLocationExpr5(step){var ret=new LocationExpr();ret.appendStep(step);return ret;}function makeLocationExpr6(rel,_1e8,step){rel.appendStep(step);return rel;}function makeLocationExpr7(rel,_1eb,step){rel.appendStep(makeAbbrevStep(_1eb.value));rel.appendStep(step);return rel;}function makeStepExpr1(dot){return makeAbbrevStep(dot.value);}function makeStepExpr2(ddot){return makeAbbrevStep(ddot.value);}function makeStepExpr3(_1ef,axis,_1f1){return new StepExpr(_1ef.value,_1f1);}function makeStepExpr4(at,_1f3){return new StepExpr("attribute",_1f3);}function makeStepExpr5(_1f4){return new StepExpr("child",_1f4);}function makeStepExpr6(step,_1f6){step.appendPredicate(_1f6);return step;}function makeAbbrevStep(_1f7){switch(_1f7){case "//":return new StepExpr("descendant-or-self",new NodeTestAny);case ".":return new StepExpr("self",new NodeTestAny);case "..":return new StepExpr("parent",new NodeTestAny);}}function makeNodeTestExpr1(_1f8){return new NodeTestElementOrAttribute;}function makeNodeTestExpr2(_1f9,_1fa,_1fb){return new NodeTestNC(_1f9.value);}function makeNodeTestExpr3(_1fc){return new NodeTestName(_1fc.value);}function makeNodeTestExpr4(_1fd,_1fe){var type=_1fd.value.replace(/\s*\($/,"");switch(type){case "node":return new NodeTestAny;case "text":return new NodeTestText;case "comment":return new NodeTestComment;case "processing-instruction":return new NodeTestPI("");}}function makeNodeTestExpr5(_200,_201,_202){var type=_200.replace(/\s*\($/,"");if(type!="processing-instruction"){throw type;}return new NodeTestPI(_201.value);}function makePredicateExpr(_204,expr,_206){return new PredicateExpr(expr);}function makePrimaryExpr(_207,expr,_209){return expr;}function makeFunctionCallExpr1(name,_20b,_20c){return new FunctionCallExpr(name);}function makeFunctionCallExpr2(name,_20e,arg1,args,_211){var ret=new FunctionCallExpr(name);ret.appendArg(arg1);for(var i=0;i<args.length;++i){ret.appendArg(args[i]);}return ret;}function makeArgumentExpr(_214,expr){return expr;}function makeUnionExpr(_216,pipe,_218){return new UnionExpr(_216,_218);}function makePathExpr1(_219,_21a,rel){return new PathExpr(_219,rel);}function makePathExpr2(_21c,_21d,rel){rel.prependStep(makeAbbrevStep(_21d.value));return new PathExpr(_21c,rel);}function makeFilterExpr(expr,_220){if(_220.length>0){return new FilterExpr(expr,_220);}else{return expr;}}function makeUnaryMinusExpr(_221,expr){return new UnaryMinusExpr(expr);}function makeBinaryExpr(_223,op,_225){return new BinaryExpr(_223,op,_225);}function makeLiteralExpr(_226){var _227=_226.value.substring(1,_226.value.length-1);return new LiteralExpr(_227);}function makeNumberExpr(_228){return new NumberExpr(_228.value);}function makeVariableReference(_229,name){return new VariableExpr(name.value);}function makeSimpleExpr(expr){if(expr.charAt(0)=="$"){return new VariableExpr(expr.substr(1));}else{if(expr.charAt(0)=="@"){var a=new NodeTestName(expr.substr(1));var b=new StepExpr("attribute",a);var c=new LocationExpr();c.appendStep(b);return c;}else{if(expr.match(/^[0-9]+$/)){return new NumberExpr(expr);}else{var a=new NodeTestName(expr);var b=new StepExpr("child",a);var c=new LocationExpr();c.appendStep(b);return c;}}}}function makeSimpleExpr2(expr){var _230=stringSplit(expr,"/");var c=new LocationExpr();for(var i=0;i<_230.length;++i){var a=new NodeTestName(_230[i]);var b=new StepExpr("child",a);c.appendStep(b);}return c;}var xpathAxis={ANCESTOR_OR_SELF:"ancestor-or-self",ANCESTOR:"ancestor",ATTRIBUTE:"attribute",CHILD:"child",DESCENDANT_OR_SELF:"descendant-or-self",DESCENDANT:"descendant",FOLLOWING_SIBLING:"following-sibling",FOLLOWING:"following",NAMESPACE:"namespace",PARENT:"parent",PRECEDING_SIBLING:"preceding-sibling",PRECEDING:"preceding",SELF:"self"};var xpathAxesRe=[xpathAxis.ANCESTOR_OR_SELF,xpathAxis.ANCESTOR,xpathAxis.ATTRIBUTE,xpathAxis.CHILD,xpathAxis.DESCENDANT_OR_SELF,xpathAxis.DESCENDANT,xpathAxis.FOLLOWING_SIBLING,xpathAxis.FOLLOWING,xpathAxis.NAMESPACE,xpathAxis.PARENT,xpathAxis.PRECEDING_SIBLING,xpathAxis.PRECEDING,xpathAxis.SELF].join("|");var TOK_PIPE={label:"|",prec:17,re:new RegExp("^\\|")};var TOK_DSLASH={label:"//",prec:19,re:new RegExp("^//")};var TOK_SLASH={label:"/",prec:30,re:new RegExp("^/")};var TOK_AXIS={label:"::",prec:20,re:new RegExp("^::")};var TOK_COLON={label:":",prec:1000,re:new RegExp("^:")};var TOK_AXISNAME={label:"[axis]",re:new RegExp("^("+xpathAxesRe+")")};var TOK_PARENO={label:"(",prec:34,re:new RegExp("^\\(")};var TOK_PARENC={label:")",re:new RegExp("^\\)")};var TOK_DDOT={label:"..",prec:34,re:new RegExp("^\\.\\.")};var TOK_DOT={label:".",prec:34,re:new RegExp("^\\.")};var TOK_AT={label:"@",prec:34,re:new RegExp("^@")};var TOK_COMMA={label:",",re:new RegExp("^,")};var TOK_OR={label:"or",prec:10,re:new RegExp("^or\\b")};var TOK_AND={label:"and",prec:11,re:new RegExp("^and\\b")};var TOK_EQ={label:"=",prec:12,re:new RegExp("^=")};var TOK_NEQ={label:"!=",prec:12,re:new RegExp("^!=")};var TOK_GE={label:">=",prec:13,re:new RegExp("^>=")};var TOK_GT={label:">",prec:13,re:new RegExp("^>")};var TOK_LE={label:"<=",prec:13,re:new RegExp("^<=")};var TOK_LT={label:"<",prec:13,re:new RegExp("^<")};var TOK_PLUS={label:"+",prec:14,re:new RegExp("^\\+"),left:true};var TOK_MINUS={label:"-",prec:14,re:new RegExp("^\\-"),left:true};var TOK_DIV={label:"div",prec:15,re:new RegExp("^div\\b"),left:true};var TOK_MOD={label:"mod",prec:15,re:new RegExp("^mod\\b"),left:true};var TOK_BRACKO={label:"[",prec:32,re:new RegExp("^\\[")};var TOK_BRACKC={label:"]",re:new RegExp("^\\]")};var TOK_DOLLAR={label:"$",re:new RegExp("^\\$")};var TOK_NCNAME={label:"[ncname]",re:new RegExp("^"+XML_NC_NAME)};var TOK_ASTERISK={label:"*",prec:15,re:new RegExp("^\\*"),left:true};var TOK_LITERALQ={label:"[litq]",prec:20,re:new RegExp("^'[^\\']*'")};var TOK_LITERALQQ={label:"[litqq]",prec:20,re:new RegExp("^\"[^\\\"]*\"")};var TOK_NUMBER={label:"[number]",prec:35,re:new RegExp("^\\d+(\\.\\d*)?")};var TOK_QNAME={label:"[qname]",re:new RegExp("^("+XML_NC_NAME+":)?"+XML_NC_NAME)};var TOK_NODEO={label:"[nodetest-start]",re:new RegExp("^(processing-instruction|comment|text|node)\\(")};var xpathTokenRules=[TOK_DSLASH,TOK_SLASH,TOK_DDOT,TOK_DOT,TOK_AXIS,TOK_COLON,TOK_AXISNAME,TOK_NODEO,TOK_PARENO,TOK_PARENC,TOK_BRACKO,TOK_BRACKC,TOK_AT,TOK_COMMA,TOK_OR,TOK_AND,TOK_NEQ,TOK_EQ,TOK_GE,TOK_GT,TOK_LE,TOK_LT,TOK_PLUS,TOK_MINUS,TOK_ASTERISK,TOK_PIPE,TOK_MOD,TOK_DIV,TOK_LITERALQ,TOK_LITERALQQ,TOK_NUMBER,TOK_QNAME,TOK_NCNAME,TOK_DOLLAR];var XPathLocationPath={label:"LocationPath"};var XPathRelativeLocationPath={label:"RelativeLocationPath"};var XPathAbsoluteLocationPath={label:"AbsoluteLocationPath"};var XPathStep={label:"Step"};var XPathNodeTest={label:"NodeTest"};var XPathPredicate={label:"Predicate"};var XPathLiteral={label:"Literal"};var XPathExpr={label:"Expr"};var XPathPrimaryExpr={label:"PrimaryExpr"};var XPathVariableReference={label:"Variablereference"};var XPathNumber={label:"Number"};var XPathFunctionCall={label:"FunctionCall"};var XPathArgumentRemainder={label:"ArgumentRemainder"};var XPathPathExpr={label:"PathExpr"};var XPathUnionExpr={label:"UnionExpr"};var XPathFilterExpr={label:"FilterExpr"};var XPathDigits={label:"Digits"};var xpathNonTerminals=[XPathLocationPath,XPathRelativeLocationPath,XPathAbsoluteLocationPath,XPathStep,XPathNodeTest,XPathPredicate,XPathLiteral,XPathExpr,XPathPrimaryExpr,XPathVariableReference,XPathNumber,XPathFunctionCall,XPathArgumentRemainder,XPathPathExpr,XPathUnionExpr,XPathFilterExpr,XPathDigits];var Q_01={label:"?"};var Q_MM={label:"*"};var Q_1M={label:"+"};var ASSOC_LEFT=true;var xpathGrammarRules=[[XPathLocationPath,[XPathRelativeLocationPath],18,passExpr],[XPathLocationPath,[XPathAbsoluteLocationPath],18,passExpr],[XPathAbsoluteLocationPath,[TOK_SLASH,XPathRelativeLocationPath],18,makeLocationExpr1],[XPathAbsoluteLocationPath,[TOK_DSLASH,XPathRelativeLocationPath],18,makeLocationExpr2],[XPathAbsoluteLocationPath,[TOK_SLASH],0,makeLocationExpr3],[XPathAbsoluteLocationPath,[TOK_DSLASH],0,makeLocationExpr4],[XPathRelativeLocationPath,[XPathStep],31,makeLocationExpr5],[XPathRelativeLocationPath,[XPathRelativeLocationPath,TOK_SLASH,XPathStep],31,makeLocationExpr6],[XPathRelativeLocationPath,[XPathRelativeLocationPath,TOK_DSLASH,XPathStep],31,makeLocationExpr7],[XPathStep,[TOK_DOT],33,makeStepExpr1],[XPathStep,[TOK_DDOT],33,makeStepExpr2],[XPathStep,[TOK_AXISNAME,TOK_AXIS,XPathNodeTest],33,makeStepExpr3],[XPathStep,[TOK_AT,XPathNodeTest],33,makeStepExpr4],[XPathStep,[XPathNodeTest],33,makeStepExpr5],[XPathStep,[XPathStep,XPathPredicate],33,makeStepExpr6],[XPathNodeTest,[TOK_ASTERISK],33,makeNodeTestExpr1],[XPathNodeTest,[TOK_NCNAME,TOK_COLON,TOK_ASTERISK],33,makeNodeTestExpr2],[XPathNodeTest,[TOK_QNAME],33,makeNodeTestExpr3],[XPathNodeTest,[TOK_NODEO,TOK_PARENC],33,makeNodeTestExpr4],[XPathNodeTest,[TOK_NODEO,XPathLiteral,TOK_PARENC],33,makeNodeTestExpr5],[XPathPredicate,[TOK_BRACKO,XPathExpr,TOK_BRACKC],33,makePredicateExpr],[XPathPrimaryExpr,[XPathVariableReference],33,passExpr],[XPathPrimaryExpr,[TOK_PARENO,XPathExpr,TOK_PARENC],33,makePrimaryExpr],[XPathPrimaryExpr,[XPathLiteral],30,passExpr],[XPathPrimaryExpr,[XPathNumber],30,passExpr],[XPathPrimaryExpr,[XPathFunctionCall],31,passExpr],[XPathFunctionCall,[TOK_QNAME,TOK_PARENO,TOK_PARENC],-1,makeFunctionCallExpr1],[XPathFunctionCall,[TOK_QNAME,TOK_PARENO,XPathExpr,XPathArgumentRemainder,Q_MM,TOK_PARENC],-1,makeFunctionCallExpr2],[XPathArgumentRemainder,[TOK_COMMA,XPathExpr],-1,makeArgumentExpr],[XPathUnionExpr,[XPathPathExpr],20,passExpr],[XPathUnionExpr,[XPathUnionExpr,TOK_PIPE,XPathPathExpr],20,makeUnionExpr],[XPathPathExpr,[XPathLocationPath],20,passExpr],[XPathPathExpr,[XPathFilterExpr],19,passExpr],[XPathPathExpr,[XPathFilterExpr,TOK_SLASH,XPathRelativeLocationPath],19,makePathExpr1],[XPathPathExpr,[XPathFilterExpr,TOK_DSLASH,XPathRelativeLocationPath],19,makePathExpr2],[XPathFilterExpr,[XPathPrimaryExpr,XPathPredicate,Q_MM],31,makeFilterExpr],[XPathExpr,[XPathPrimaryExpr],16,passExpr],[XPathExpr,[XPathUnionExpr],16,passExpr],[XPathExpr,[TOK_MINUS,XPathExpr],-1,makeUnaryMinusExpr],[XPathExpr,[XPathExpr,TOK_OR,XPathExpr],-1,makeBinaryExpr],[XPathExpr,[XPathExpr,TOK_AND,XPathExpr],-1,makeBinaryExpr],[XPathExpr,[XPathExpr,TOK_EQ,XPathExpr],-1,makeBinaryExpr],[XPathExpr,[XPathExpr,TOK_NEQ,XPathExpr],-1,makeBinaryExpr],[XPathExpr,[XPathExpr,TOK_LT,XPathExpr],-1,makeBinaryExpr],[XPathExpr,[XPathExpr,TOK_LE,XPathExpr],-1,makeBinaryExpr],[XPathExpr,[XPathExpr,TOK_GT,XPathExpr],-1,makeBinaryExpr],[XPathExpr,[XPathExpr,TOK_GE,XPathExpr],-1,makeBinaryExpr],[XPathExpr,[XPathExpr,TOK_PLUS,XPathExpr],-1,makeBinaryExpr,ASSOC_LEFT],[XPathExpr,[XPathExpr,TOK_MINUS,XPathExpr],-1,makeBinaryExpr,ASSOC_LEFT],[XPathExpr,[XPathExpr,TOK_ASTERISK,XPathExpr],-1,makeBinaryExpr,ASSOC_LEFT],[XPathExpr,[XPathExpr,TOK_DIV,XPathExpr],-1,makeBinaryExpr,ASSOC_LEFT],[XPathExpr,[XPathExpr,TOK_MOD,XPathExpr],-1,makeBinaryExpr,ASSOC_LEFT],[XPathLiteral,[TOK_LITERALQ],-1,makeLiteralExpr],[XPathLiteral,[TOK_LITERALQQ],-1,makeLiteralExpr],[XPathNumber,[TOK_NUMBER],-1,makeNumberExpr],[XPathVariableReference,[TOK_DOLLAR,TOK_QNAME],200,makeVariableReference]];var xpathRules=[];function xpathParseInit(){if(xpathRules.length){return;}xpathGrammarRules.sort(function(a,b){var la=a[1].length;var lb=b[1].length;if(la<lb){return 1;}else{if(la>lb){return -1;}else{return 0;}}});var k=1;for(var i=0;i<xpathNonTerminals.length;++i){xpathNonTerminals[i].key=k++;}for(i=0;i<xpathTokenRules.length;++i){xpathTokenRules[i].key=k++;}xpathLog("XPath parse INIT: "+k+" rules");function push_(_23b,_23c,_23d){if(!_23b[_23c]){_23b[_23c]=[];}_23b[_23c].push(_23d);}for(i=0;i<xpathGrammarRules.length;++i){var rule=xpathGrammarRules[i];var _23f=rule[1];for(var j=_23f.length-1;j>=0;--j){if(_23f[j]==Q_1M){push_(xpathRules,_23f[j-1].key,rule);break;}else{if(_23f[j]==Q_MM||_23f[j]==Q_01){push_(xpathRules,_23f[j-1].key,rule);--j;}else{push_(xpathRules,_23f[j].key,rule);break;}}}}xpathLog("XPath parse INIT: "+xpathRules.length+" rule bins");var sum=0;mapExec(xpathRules,function(i){if(i){sum+=i.length;}});xpathLog("XPath parse INIT: "+(sum/xpathRules.length)+" average bin size");}function xpathCollectDescendants(_243,node,_245){if(_245&&node.getElementsByTagName){copyArray(_243,node.getElementsByTagName(_245));return;}for(var n=node.firstChild;n;n=n.nextSibling){_243.push(n);xpathCollectDescendants(_243,n);}}function xpathExtractTagNameFromNodeTest(_247){if(_247 instanceof NodeTestName){return _247.name;}else{if(_247 instanceof NodeTestAny||_247 instanceof NodeTestElementOrAttribute){return "*";}}}function xpathCollectDescendantsReverse(_248,node){for(var n=node.lastChild;n;n=n.previousSibling){_248.push(n);xpathCollectDescendantsReverse(_248,n);}}function xpathDomEval(expr,node){var _24d=xpathParse(expr);var ret=_24d.evaluate(new ExprContext(node));return ret;}function xpathSort(_24f,sort){if(sort.length==0){return;}var _251=[];for(var i=0;i<_24f.contextSize();++i){var node=_24f.nodelist[i];var _254={node:node,key:[]};var _255=_24f.clone(node,0,[node]);for(var j=0;j<sort.length;++j){var s=sort[j];var _258=s.expr.evaluate(_255);var _259;if(s.type=="text"){_259=_258.stringValue();}else{if(s.type=="number"){_259=_258.numberValue();}}_254.key.push({value:_259,order:s.order});}_254.key.push({value:i,order:"ascending"});_251.push(_254);}_251.sort(xpathSortByKey);var _25a=[];for(var i=0;i<_251.length;++i){_25a.push(_251[i].node);}_24f.nodelist=_25a;_24f.setNode(0);}function xpathSortByKey(v1,v2){for(var i=0;i<v1.key.length;++i){var o=v1.key[i].order=="descending"?-1:1;if(v1.key[i].value>v2.key[i].value){return +1*o;}else{if(v1.key[i].value<v2.key[i].value){return -1*o;}}}return 0;}function xpathEval(_25f,_260){var expr=xpathParse(_25f);var ret=expr.evaluate(_260);return ret;}function xsltProcess(_263,_264){var _265=domCreateDocumentFragment(new XDocument);xsltProcessContext(new ExprContext(_263),_264,_265);var ret=xmlText(_265);return ret;}function xsltProcessContext(_267,_268,_269){var _26a=xmlOwnerDocument(_269);var _26b=_268.nodeName.split(/:/);if(_26b.length==1||_26b[0]!="xsl"){if(_26b=="script"){jsCode=_268.firstChild.nodeValue;if(jsCode.match(/function\s*\S*\s*\(\S*\)/gi)){var fun=jsCode.match(/function[\w\s\S]*/gi);for(var i=0;i<fun.length;i++){var _26e=fun[i].replace(/{[\w\s\S]*[}|;]$/g,"").replace(/function\s*/,"").replace(/\(\S*\)/,"");var _26f=fun[i].replace(/{[\w\s\S]*[}|;]$/g,"").replace(/function\s*/,"").replace(_26e,"").replace(/^\(/,"").replace(/\)$/,"");if(_26f){var _270=_26f.split(",");}var _271=fun[i].match(/{[\w\s\S]*[}|;]$/g);if(_26f.length){for(var j=0;j<_270.length;j++){_271[0]=_271[0].replace(_270[j],"arguments["+j+"]");}}window[_26e]=function(){eval(_271[0]);};}}}xsltPassThrough(_267,_268,_269,_26a);}else{switch(_26b[1]){case "apply-imports":alert("not implemented: "+_26b[1]);break;case "apply-templates":var _273=xmlGetAttribute(_268,"select");var _274;if(_273){_274=xpathEval(_273,_267).nodeSetValue();}else{_274=_267.node.childNodes;}var _275=_267.clone(_274[0],0,_274);xsltWithParam(_275,_268);xsltSort(_275,_268);var mode=xmlGetAttribute(_268,"mode");var top=_268.ownerDocument.documentElement;var _278=[];for(var i=0;i<top.childNodes.length;++i){var c=top.childNodes[i];if(c.nodeType==DOM_ELEMENT_NODE&&c.nodeName=="xsl:template"&&c.getAttribute("mode")==mode){_278.push(c);}}for(var j=0;j<_275.contextSize();++j){var nj=_275.nodelist[j];for(var i=0;i<_278.length;++i){xsltProcessContext(_275.clone(nj,j),_278[i],_269);}}break;case "attribute":var _27b=xmlGetAttribute(_268,"name");var name=xsltAttributeValue(_27b,_267);var node=domCreateDocumentFragment(_26a);xsltChildNodes(_267,_268,node);var _27e=xmlValue(node);domSetAttribute(_269,name,_27e);break;case "attribute-set":alert("not implemented: "+_26b[1]);break;case "call-template":var name=xmlGetAttribute(_268,"name");var top=_268.ownerDocument.documentElement;var _27f=_267.clone();xsltWithParam(_27f,_268);for(var i=0;i<top.childNodes.length;++i){var c=top.childNodes[i];if(c.nodeType==DOM_ELEMENT_NODE&&c.nodeName=="xsl:template"&&domGetAttribute(c,"name")==name){xsltChildNodes(_27f,c,_269);break;}}break;case "choose":xsltChoose(_267,_268,_269);break;case "comment":var node=domCreateDocumentFragment(_26a);xsltChildNodes(_267,_268,node);var _280=xmlValue(node);var _281=domCreateComment(_26a,_280);_269.appendChild(_281);break;case "copy":var node=xsltCopy(_269,_267.node,_26a);if(node){xsltChildNodes(_267,_268,node);}break;case "copy-of":var _273=xmlGetAttribute(_268,"select");var _27e=xpathEval(_273,_267);if(_27e.type=="node-set"){var _274=_27e.nodeSetValue();for(var i=0;i<_274.length;++i){xsltCopyOf(_269,_274[i],_26a);}}else{var node=domCreateTextNode(_26a,_27e.stringValue());domAppendChild(_269,node);}break;case "decimal-format":alert("not implemented: "+_26b[1]);break;case "element":var _27b=xmlGetAttribute(_268,"name");var name=xsltAttributeValue(_27b,_267);var node=domCreateElement(_26a,name);domAppendChild(_269,node);xsltChildNodes(_267,_268,node);break;case "fallback":alert("not implemented: "+_26b[1]);break;case "for-each":xsltForEach(_267,_268,_269);break;case "if":var test=xmlGetAttribute(_268,"test");if(xpathEval(test,_267).booleanValue()){xsltChildNodes(_267,_268,_269);}break;case "import":alert("not implemented: "+_26b[1]);break;case "include":alert("not implemented: "+_26b[1]);break;case "key":alert("not implemented: "+_26b[1]);break;case "message":alert("not implemented: "+_26b[1]);break;case "namespace-alias":alert("not implemented: "+_26b[1]);break;case "number":alert("not implemented: "+_26b[1]);break;case "otherwise":alert("error if here: "+_26b[1]);break;case "output":break;case "preserve-space":alert("not implemented: "+_26b[1]);break;case "processing-instruction":alert("not implemented: "+_26b[1]);break;case "sort":break;case "strip-space":alert("not implemented: "+_26b[1]);break;case "stylesheet":case "transform":xsltChildNodes(_267,_268,_269);break;case "template":var _283=xmlGetAttribute(_268,"match");if(_283&&xsltMatch(_283,_267)){xsltChildNodes(_267,_268,_269);}break;case "text":var text=xmlValue(_268);var node=domCreateTextNode(_26a,text);_269.appendChild(node);break;case "value-of":var _273=xmlGetAttribute(_268,"select");var _27e=xpathEval(_273,_267).stringValue();var node=domCreateTextNode(_26a,_27e);_269.appendChild(node);break;case "param":xsltVariable(_267,_268,false);break;case "variable":xsltVariable(_267,_268,true);break;case "when":alert("error if here: "+_26b[1]);break;case "with-param":alert("error if here: "+_26b[1]);break;default:alert("error if here: "+_26b[1]);break;}}}function xsltWithParam(_285,_286){for(var i=0;i<_286.childNodes.length;++i){var c=_286.childNodes[i];if(c.nodeType==DOM_ELEMENT_NODE&&c.nodeName=="xsl:with-param"){xsltVariable(_285,c,true);}}}function xsltSort(_289,_28a){var sort=[];for(var i=0;i<_28a.childNodes.length;++i){var c=_28a.childNodes[i];if(c.nodeType==DOM_ELEMENT_NODE&&c.nodeName=="xsl:sort"){var _28e=xmlGetAttribute(c,"select");var expr=xpathParse(_28e);var type=xmlGetAttribute(c,"data-type")||"text";var _291=xmlGetAttribute(c,"order")||"ascending";sort.push({expr:expr,type:type,order:_291});}}xpathSort(_289,sort);}function xsltVariable(_292,_293,_294){var name=xmlGetAttribute(_293,"name");var _296=xmlGetAttribute(_293,"select");var _297;if(_293.childNodes.length>0){var root=domCreateDocumentFragment(_293.ownerDocument);xsltChildNodes(_292,_293,root);_297=new NodeSetValue([root]);}else{if(_296){_297=xpathEval(_296,_292);}else{_297=new StringValue("");}}if(_294||!_292.getVariable(name)){_292.setVariable(name,_297);}}function xsltChoose(_299,_29a,_29b){for(var i=0;i<_29a.childNodes.length;++i){var _29d=_29a.childNodes[i];if(_29d.nodeType!=DOM_ELEMENT_NODE){continue;}else{if(_29d.nodeName=="xsl:when"){var test=xmlGetAttribute(_29d,"test");if(xpathEval(test,_299).booleanValue()){xsltChildNodes(_299,_29d,_29b);break;}}else{if(_29d.nodeName=="xsl:otherwise"){xsltChildNodes(_299,_29d,_29b);break;}}}}}function xsltForEach(_29f,_2a0,_2a1){var _2a2=xmlGetAttribute(_2a0,"select");var _2a3=xpathEval(_2a2,_29f).nodeSetValue();var _2a4=_29f.clone(_2a3[0],0,_2a3);xsltSort(_2a4,_2a0);for(var i=0;i<_2a4.contextSize();++i){var ni=_2a4.nodelist[i];xsltChildNodes(_2a4.clone(ni,i),_2a0,_2a1);}}function xsltChildNodes(_2a7,_2a8,_2a9){var _2aa=_2a7.clone();for(var i=0;i<_2a8.childNodes.length;++i){xsltProcessContext(_2aa,_2a8.childNodes[i],_2a9);}}function xsltPassThrough(_2ac,_2ad,_2ae,_2af){if(_2ad.nodeType==DOM_TEXT_NODE){if(xsltPassText(_2ad)){var node=domCreateTextNode(_2af,_2ad.nodeValue);domAppendChild(_2ae,node);}}else{if(_2ad.nodeType==DOM_ELEMENT_NODE){var node=domCreateElement(_2af,_2ad.nodeName);for(var i=0;i<_2ad.attributes.length;++i){var a=_2ad.attributes[i];if(a){var name=a.nodeName;var _2b4=xsltAttributeValue(a.nodeValue,_2ac);domSetAttribute(node,name,_2b4);}}domAppendChild(_2ae,node);xsltChildNodes(_2ac,_2ad,node);}else{xsltChildNodes(_2ac,_2ad,_2ae);}}}function xsltPassText(_2b5){if(!_2b5.nodeValue.match(/^\s*$/)){return true;}var _2b6=_2b5.parentNode;if(_2b6.nodeName=="xsl:text"){return true;}while(_2b6&&_2b6.nodeType==DOM_ELEMENT_NODE){var _2b7=domGetAttribute(_2b6,"xml:space");if(_2b7){if(_2b7=="default"){return false;}else{if(_2b7=="preserve"){return true;}}}_2b6=_2b6.parentNode;}return false;}function xsltAttributeValue(_2b8,_2b9){var _2ba=stringSplit(_2b8,"{");if(_2ba.length==1){return _2b8;}var ret="";for(var i=0;i<_2ba.length;++i){var rp=stringSplit(_2ba[i],"}");if(rp.length!=2){ret+=_2ba[i];continue;}var val=xpathEval(rp[0],_2b9).stringValue();ret+=val+rp[1];}return ret;}function xmlGetAttribute(node,name){var _2c1=domGetAttribute(node,name);if(_2c1){return xmlResolveEntities(_2c1);}else{return _2c1;}}function xsltCopyOf(dst,src,_2c4){if(src.nodeType==DOM_DOCUMENT_FRAGMENT_NODE||src.nodeType==DOM_DOCUMENT_NODE){for(var i=0;i<src.childNodes.length;++i){arguments.callee(dst,src.childNodes[i],_2c4);}}else{var node=xsltCopy(dst,src,_2c4);if(node){for(var i=0;i<src.attributes.length;++i){arguments.callee(node,src.attributes[i],_2c4);}for(var i=0;i<src.childNodes.length;++i){arguments.callee(node,src.childNodes[i],_2c4);}}}}function xsltCopy(dst,src,_2c9){if(src.nodeType==DOM_ELEMENT_NODE){var node=domCreateElement(_2c9,src.nodeName);domAppendChild(dst,node);return node;}if(src.nodeType==DOM_TEXT_NODE){var node=domCreateTextNode(_2c9,src.nodeValue);domAppendChild(dst,node);}else{if(src.nodeType==DOM_CDATA_SECTION_NODE){var node=domCreateCDATASection(_2c9,src.nodeValue);domAppendChild(dst,node);}else{if(src.nodeType==DOM_COMMENT_NODE){var node=domCreateComment(_2c9,src.nodeValue);domAppendChild(dst,node);}else{if(src.nodeType==DOM_ATTRIBUTE_NODE){domSetAttribute(dst,src.nodeName,src.nodeValue);}}}}return null;}function xsltMatch(_2cb,_2cc){var expr=xpathParse(_2cb);var ret;if(expr.steps&&!expr.absolute&&expr.steps.length==1&&expr.steps[0].axis=="child"&&expr.steps[0].predicate.length==0){ret=expr.steps[0].nodetest.evaluate(_2cc).booleanValue();}else{ret=false;var node=_2cc.node;while(!ret&&node){var _2d0=expr.evaluate(_2cc.clone(node,0,[node])).nodeSetValue();for(var i=0;i<_2d0.length;++i){if(_2d0[i]==_2cc.node){ret=true;break;}}node=node.parentNode;}}return ret;}
