if(window.jstiming){window.jstiming.beaconImageReferences_={};window.jstiming.reportCounter_=1;function getTick(b,a,f){var d=b.t[a];if(!d)return undefined;if(f!=undefined)var c=f;else c=b.t.start;return d-c}window.jstiming.report=function(b,a,f){var d="";if(window.jstiming.pt){d+="&srt="+window.jstiming.pt;delete window.jstiming.pt}try{if(window.external&&window.external.tran)d+="&tran="+window.external.tran}catch(c){}var n=b.t,i=n.start,k=[];for(var t in n)t=="start"||i&&k.push(t+"."+getTick(b,t));
delete n.start;if(a)for(var r in a)d+="&"+r+"="+a[r];var F=[f?f:"http://csi.gstatic.com/csi","?v=3","&s="+(window.jstiming.sn?window.jstiming.sn:"codesite")+"&action=",b.name,d,"&rt=",k.join(",")].join(""),C=new Image,A=window.jstiming.reportCounter_++;window.jstiming.beaconImageReferences_[A]=C;C.onload=C.onerror=function(){delete window.jstiming.beaconImageReferences_[A]};C.src=F;C=null}};(function(){var b={products:{includeInSearchSuggest:true,entries:{desktop:{title:"Google Desktop APIs (Labs)",groupsTitle:"Google Desktop APIs Groups",keywords:{gadgets:1,search:1},url:"/apis/desktop/",searchTabTitle:"Google Desktop APIs"},chart:{title:"Google Chart API",groupsTitle:"Google Chart API Groups",keywords:{charts:1,apis:1},url:"/apis/chart/"},transit:{title:"Google Transit Feed Specification",groupsTitle:"Google Transit Feed Groups",keywords:{geo:1,maps:1,feed:1},url:"/transit/spec/transit_feed_specification.html"},
picasa:{title:"Picasa APIs (Labs)",groupsTitle:"Picasa APIs Groups",keywords:{apis:3,gentries:1},url:"/apis/picasa/"},v8:{title:"V8",keywords:{tools:1,apis:1,browser:1,chrome:1,chromium:1},url:"/apis/v8/"},kml:{title:"KML",groupsTitle:"KML Groups",keywords:{geo:4,maps:1,apis:1},url:"/apis/kml/"},sketchup:{title:"Google SketchUp Ruby API",groupsTitle:"Google SketchUp Ruby API Groups",keywords:{geo:3,apis:1},url:"/apis/sketchup/"},codesearch:{title:"Google Code Search Data API (Labs)",groupsTitle:"Google Code Search Data API Groups",
keywords:{feed:1,apis:1,gentries:1,search:1,entries:1},url:"/apis/codesearch/"},feedburner:{title:"Feedburner APIs (Labs)",groupsTitle:"FeedBurner Groups",keywords:{feed:10},url:"/apis/feedburner/"},picasaweb:{title:"Picasa Web Albums Data API",groupsTitle:"Picasa Web Albums Data API Groups",keywords:{feed:1,gentries:1,"data apis":3,entries:1},url:"/apis/picasaweb/"},ajaxfeeds:{title:"Google AJAX Feed API",groupsTitle:"Google AJAX Feed API Groups",keywords:{ajax:8,apis:5,feed:6},url:"/apis/ajaxfeeds/"},
googleapps:{title:"Google Apps Developer Tools",keywords:{enterprise:1,"google apps":10,business:1,firewall:1,sdc:1,"app engine":1,gadgets:1},url:"/googleapps/"},adwords:{title:"Google AdWords API",groupsTitle:"Google AdWords API Groups",keywords:{ads:2,apis:1},url:"/apis/adwords/"},webmastertools:{title:"Google Webmaster Tools Data API (Labs)",groupsTitle:"Webmaster Tools Data API Groups",keywords:{"data apis":1,tools:1,search:1},url:"/apis/webmastertools/"},accounts:{title:"Google Account Authentication",
groupsTitle:"Google Account Authentication Groups",keywords:{feed:1,apis:1,gentries:1,entries:1},url:"/apis/accounts/"},calendar:{title:"Google Calendar APIs and Tools",groupsTitle:"Google Calendar APIs and Tools Groups",keywords:{tools:1,feed:5,apis:1,gentries:1,"data apis":3,entries:2,gadgets:3},url:"/apis/calendar/"},flashmaps:{title:"Google Maps API For Flash",keywords:{maps:6,geo:6,ajax:7,apis:4,actionscript:1},url:"/apis/maps/documentation/flash/"},friendconnect:{title:"Google Friend Connect APIs (Labs)",
keywords:{social:10,friend:10,apis:5,gadgets:5},url:"/apis/friendconnect/"},blogger:{title:"Blogger Data API (Labs)",groupsTitle:"Blogger Data API Groups",keywords:{feed:1,apis:1,gentries:1,"data apis":4,entries:2},url:"/apis/blogger/"},books:{title:"Google Book Search APIs (Labs)",groupsTitle:"Google Book Search APIs Groups",keywords:{books:1,ajax:9,apis:10,search:1,feeds:1},url:"/apis/books/"},analytics:{title:"Google Analytics",groupsTitle:"Google Analytics Groups",keywords:{"data apis":1,tools:1,
apis:1},url:"/apis/analytics/"},gdata:{title:"Google Data APIs",groupsTitle:"Google Data APIs Groups",keywords:{feed:1,apis:1,gentries:10,"data apis":10,java:1,entries:6},url:"/apis/gdata/"},maps:{title:"Google Maps API",groupsTitle:"Google Maps API Groups",keywords:{maps:6,geo:6,ajax:7,apis:4},url:"/apis/maps/"},documents:{title:"Google Documents List Data API",groupsTitle:"Google Documents List Data API Groups",keywords:{feed:1,apis:1,gentries:1,"data apis":3,entries:2},url:"/apis/documents/"},
chromium:{title:"Chromium",groupsTitle:"Chromium Groups",keywords:{browser:1,v8:1,chromium:1,chrome:1},url:"/chromium/"},checkout:{title:"Google Checkout API",groupsTitle:"Google Checkout API Groups",keywords:{apis:5},url:"/apis/checkout/"},orkut:{title:"Orkut Developer Home",groupsTitle:"Orkut Groups",keywords:{social:8},url:"/apis/orkut/",searchTabTitle:"Orkut"},ajax:{title:"Google AJAX APIs",groupsTitle:"Google AJAX APIs Groups",keywords:{ajax:10,apis:10},url:"/apis/ajax/"},gears:{title:"Gears (Labs)",
groupsTitle:"Gears Groups",keywords:{ajax:5,tools:1,apis:9},url:"/apis/gears/"},customsearch:{title:"Google Custom Search API",groupsTitle:"Google Custom Search API Groups",keywords:{custom:1,cse:1,apis:1,ads:1,search:3},url:"/apis/customsearch/"},opensocial:{title:"OpenSocial",groupsTitle:"OpenSocial Groups",keywords:{social:10,"open source":2,apis:8},url:"/apis/opensocial/"},youtube:{title:"YouTube APIs",groupsTitle:"YouTube Data API Groups",keywords:{entries:2,feed:4,gentries:6},url:"/apis/youtube/"},
appengine:{title:"Google App Engine",groupsTitle:"Google App Engine Groups",keywords:{app:8,tools:1,plugin:1,apis:5,java:8,eclipse:1,"app engine":10},url:"/appengine/"},coupons:{title:"Google Coupon Feeds (Labs)",keywords:{feed:1},url:"/apis/coupons/"},adsense:{title:"Google AdSense API",groupsTitle:"Google AdSense API Groups",keywords:{ads:1,apis:1},url:"/apis/adsense/"},mapplets:{title:"Google Mapplets",keywords:{maps:1,geo:5,apis:1,gadgets:1},url:"/apis/maps/documentation/mapplets/"},gadgets:{title:"Gadgets API",
groupsTitle:"Gadgets API Groups",keywords:{finance:1,gadgets:6,apis:8},url:"/apis/gadgets/"},o3d:{title:"O3D API (Labs)",groupsTitle:"O3D Groups",keywords:{"open source":1,graphics:10,"3d":10,javascript:1},url:"/apis/o3d/"},base:{title:"Google Base Data API (Labs)",groupsTitle:"Google Base Data API Groups",keywords:{feed:1,apis:1,gentries:1,"data apis":2,entries:2},url:"/apis/base/"},health:{title:"Google Health API",groupsTitle:"Google Health Developers Groups",keywords:{feed:1,health:1,"data apis":3,
java:1},url:"/apis/health/"},socialgraph:{title:"Social Graph API (Labs)",groupsTitle:"Social Graph API Groups",keywords:{social:9},url:"/apis/socialgraph/"},"in-stream":{title:"DoubleClick In-Stream (Labs)",keywords:{apis:1,ads:1,vidoe:1,flash:1,DoubleClick:10},url:"/apis/in-stream/"},igoogle:{title:"iGoogle Developer Home (Labs)",groupsTitle:"iGoogle Developers Groups",keywords:{social:1,apis:1,ads:3,gadgets:1},url:"/apis/igoogle/"},eclipse:{title:"Google Plugin for Eclipse",keywords:{gwt:1,"plug-in":10,
java:3,"app engine":1},url:"/eclipse/"},visualization:{title:"Google Visualization API",groupsTitle:"Google Visualization API Groups",keywords:{ajax:1,apis:3,gentries:1,gadgets:3},url:"/apis/visualization/"},contacts:{title:"Google Contacts APIs",groupsTitle:"Google Contacts APIs Groups",keywords:{feed:1,contacts:1,apis:1,gentries:1,"data apis":4,entries:2},url:"/apis/contacts/"},toolbar:{title:"Google Toolbar API (Labs)",keywords:{tools:1,apis:1},url:"http://www.google.com/tools/toolbar/buttons/apis"},
android:{title:"Android",groupsTitle:"Android Groups",keywords:{mobile:10},url:"/android/"},safebrowsing:{title:"Google Safe Browsing APIs (Labs)",groupsTitle:"Google Safe Browsing APIs Groups",keywords:{feed:1,apis:1,gentries:1,entries:1},url:"/apis/safebrowsing/"},sitemaps:{title:"Google Sitemaps",keywords:{tools:1,search:1},url:"https://www.google.com/webmasters/tools/docs/en/about.html"},ajaxlanguage:{title:"Google AJAX Language API",groupsTitle:"Google AJAX Language API Groups",keywords:{ajax:8,
language:10,apis:5},url:"/apis/ajaxlanguage/"},csearch:{title:"Google Code Search (Labs)",keywords:{search:1},url:"http://www.google.com/codesearch"},ajaxsearch:{title:"Google AJAX Search API",groupsTitle:"Google AJAX Search API Groups",keywords:{translate:5,ajax:9,apis:10,search:6},url:"/apis/ajaxsearch/"},apps:{title:"Google Apps APIs",groupsTitle:"Google Apps APIs Groups",keywords:{apis:1},url:"/apis/apps/"},webtoolkit:{title:"Google Web Toolkit",groupsTitle:"Google Web Toolkit Groups",keywords:{tools:6,
ajax:6,gwt:10,java:1,eclipse:1},url:"/webtoolkit/"},themes:{title:"iGoogle Themes API (Labs)",keywords:{apis:1},url:"/apis/themes/"},finance:{title:"Google Finance Data API (Labs)",keywords:{"data apis":1,apis:4,feeds:1},url:"/apis/finance/"},earth:{title:"Google Earth API",groupsTitle:"Google Earth API Groups",keywords:{maps:6,geo:6,apis:4,developer:1,"developer day":1,kml:6},url:"/apis/earth/"},staticmaps:{title:"Google Static Maps API",keywords:{geo:6,maps:2,apis:1},url:"/apis/maps/documentation/staticmaps/"},
talk:{title:"Google Talk for Developers (Labs)",groupsTitle:"Google Talk XMPP Groups",keywords:{apis:1},url:"/apis/talk/"},sdc:{title:"Google Secure Data Connector",groupsTitle:"Google Apps API Discussion Groups",keywords:{enterprise:1,"google apps":2,network:1,"data apis":3,firewall:10,sdc:10,"app engine":1,gadgets:1},url:"/securedataconnector/"},spreadsheets:{title:"Google Spreadsheets Data API (Labs)",groupsTitle:"Google Spreadsheets Data API Groups",keywords:{feed:1,apis:1,gentries:1,"data apis":4,
entries:2},url:"/apis/spreadsheets/"}}},searchSuggest:{includeInSearchSuggest:true,entries:{support:{title:"Knowledge Base",keywords:{faq:1},url:"/support/"},developerday:{title:"Developer Day 2009",keywords:{developer:1},url:"/events/developerday/"},soapsearch:{title:"Google SOAP Search API (Deprecated)",keywords:{soap:1,search:1,apis:1},url:"/apis/soapsearch/"},adsenseforaudio:{title:"Google AdSense for Audio API (Deprecated)",keywords:{ads:1,apis:1},url:"/apis/adsenseforaudio/"},gra:{title:"Google Radio Automation API (Deprecated)",
keywords:{apis:1,java:1,radio:10,automation:3},url:"/apis/gra/"},notebook:{title:"Google Notebook Data API (Deprecated)",keywords:{feed:1,apis:1,gentries:1,"data apis":3,entries:1},url:"/apis/notebook/"},opensourceprojects:{title:"Open Source Projects",keywords:{"open source":1},url:"/hosting/projects.html"},featuredprojects:{title:"Featured Projects",keywords:{developer:1},url:"http://google-code-featured.blogspot.com/"},googleio:{title:"Google I/O",keywords:{io:1,"google io":1,apis:1,gentries:1},
url:"/events/io/"},codeblog:{title:"Google Code Blog",keywords:{developer:1},url:"http://google-code-updates.blogspot.com/"},gme:{title:"Google Mashup Editor (Deprecated)",keywords:{tools:5,ajax:2,gentries:1,entries:1},url:"/gme/"},protocolbuffers:{title:"Protocol Buffers",groupsTitle:"Protocol Buffers Groups",keywords:{"open source":4,data:1,"structured data":10,apis:8,serialization:10},url:"/apis/protocolbuffers/"}}},programs:{includeInSearchSuggest:true,entries:{events:{title:"Developer Events",
keywords:{"developer day":1,gdd:1,developer:1},url:"/events/"},opensource:{title:"OpenSource",keywords:{"open source":10},url:"/opensource/"},mac:{title:"Google Mac Developer Playground",keywords:{iphone:6,"open source":2,osx:6,apple:6},url:"/mac/"},campfire:{title:"Google Campfire One",keywords:{developer:1},url:"/campfire/"},doctype:{title:"Google DocType",groupsTitle:"Google DocType Groups",keywords:{educators:1},url:"/doctype/"},ghop:{title:"Highly Open Participation Contest",keywords:{"open source":2},
url:"/opensource/ghop/2007-8/"},soc:{title:"Google Summer of Code",keywords:{"open source":5},url:"/soc/"},edu:{title:"Google Code University",groupsTitle:"Google Code University Groups",keywords:{educators:1},url:"/edu/"},projectHosting:{title:"Project Hosting",keywords:{"open source":6},url:"/hosting/"}}},searchResultTabs:{includeInSearchSuggest:false,entries:{project_hosting:{title:"Project Hosting"},discussion:{groupsTitle:"Google Code Groups",title:"Google Code Groups"},developer_videos:{title:"Developer Videos"},
google_code:{title:"Google Code Website"}}},dictionariesList:["products","programs","searchSuggest","searchResultTabs"]};window.CODESITE_productDictionary_default=b;window.CODESITE_productDictionary=b})();(function(){window.CODESITE_CSIReportDelay=500;window.CODESITE_reportedToCSI=false;function b(){if(jQuery("body.gc-documentation").length>0)return"product_doc";if(window._homepageGadgetData_)return"codesite_home";if(jQuery("#gc-home").length>0)return"product_home";return"other"}function a(){var d=["codesite","sc"],c=b(),n=CODESITE_getProduct();if(n)if(n=="more")d.push("site_directory");else if(n=="search")d.push("cse");else if(n=="support")d.push(n);else if(n=="events")d.push(n);else if(c=="product_doc"){d.push(c);
d.push(n+"_doc")}else{if(c=="product_home"){d.push(c);d.push(n+"_home")}}else c=="codesite_home"&&d.push(c);d.push("intl_"+CODESITE_langLoc);return d.join(",")}function f(){if(!CODESITE_reportedToCSI){var d=a();CODESITE_CSITimer.load.name=d;CODESITE_CSITimer.toc.name=d;window.setTimeout(function(){for(var c in CODESITE_CSITimer)window.jstiming.report(CODESITE_CSITimer[c])},CODESITE_CSIReportDelay);window.CODESITE_reportedToCSI=true}}jQuery(document).ready(function(){CODESITE_CSITimer.load.tick("dom")});
jQuery(window).load(function(){CODESITE_CSITimer.load.tick("plt");f()})})(jQuery);window.CODESITE_langCode={en:"English",de:"Deutsch",es:"Espa\u00f1ol",ja:"\u65e5\u672c\u8a9e",ko:"\ud55c\uad6d\uc5b4","pt-BR":"Portugu\u00eas (Brasil)",ru:"P\u0443\u0441\u0441\u043a\u0438\u0439",vi:"Ti\u1ebfng Vi\u1ec7t","zh-CN":"\u4e2d\u6587 (\u7b80\u4f53)","zh-TW":"\u4e2d\u6587 (\u7e41\u9ad4)"};window.CODESITE_prodLang=[{url:"/apis/orkut/",langloc:["en","es","ja","ko","pt-BR","ru","vi","zh-CN","zh-TW"]},{url:"/apis/maps/",langloc:["en","es","de","ja","ko","pt-BR","ru","zh-CN","zh-TW"]}];(function(){var b=/\/\/([^\/]*)?(\/intl\/[^\/]*)?(\/.*)?/,a=/\/intl\/(([a-zA-Z]+)(-[a-zA-Z]+)?)(_[a-zA-Z]+)?/,f=a.exec(window.location.href);if(f==null){window.CODESITE_langLoc="en";window.CODESITE_langUrl=""}else{window.CODESITE_langLoc=f[1];window.CODESITE_langUrl=f[0].replace(/_ALL/,"")}jQuery(document).ready(window.CODESITE_langSelectInit=function(d,c){var n=d("#lang-dropdown")[0];if(n){for(var i=null,k=c||window.location,t=b.exec(k.href),r=0;r<window.CODESITE_prodLang.length;r++)if(t[3].indexOf(window.CODESITE_prodLang[r].url)>=
0){i=window.CODESITE_prodLang[r].langloc;break}i||(i=["en","es","ja","ko","pt-BR","ru","zh-CN","zh-TW"]);for(var F=new Menu(n,null,null,function(){CODESITE_click("/gb/sc/langselect/"+CODESITE_langLoc)}),C=0;C<i.length;C++){var A=i[C],D=CODESITE_localeRedirect(A,window.location,false);F.addItem(window.CODESITE_langCode[A],D)}d("body").append(F.menu)}});window.CODESITE_localeRedirect=function(d,c,n){var i=c||window.location,k=b.exec(i.href),t=n==null?true:false,r=i.href;if(k){r=k[3]?"http://"+k[1]+
"/intl/"+d+k[3]:"http://"+k[1]+"/intl/"+d+"/";if(t)i.href=r}return r};window.CODESITE_redirectToI18nContent=function(d,c){var n=c||CODESITE_localeRedirect,i=a.exec(d.href),k=i&&i[1]||"en";n(k,null);return false}})(jQuery);(function(){function b(c){return window.encodeURIComponent?encodeURIComponent(c):escape(c)}function a(c){return window.decodeURIComponent?decodeURIComponent(c):unescape(c)}RegExp.escape=function(){var c=["/",".","*","+","?","|","(",")","[","]","{","}","\\"],n=new RegExp("(\\"+c.join("|\\")+")","g");return function(i){return i.replace(n,"\\$1")}}();window.CODESITE_minWidth=function(){var c=[],n=function(){if(CODESITE_minWidth)for(var i=0,k=c[0]||null;i<c.length;++i,k=c[i])try{if(k.parent_.offsetWidth<=
k.minWidth_){k.style.width=k.minWidth_+"px";k.style.overflow="hidden"}else{k.style.width="";k.style.overflow=""}}catch(t){}};if(jQuery.browser.msie){jQuery(window).resize(n);jQuery(n)}return function(i,k){if(jQuery.browser.msie){var t=jQuery(i)[0];t.minWidth_=k-0;t.parent_=t.parentNode;c.push(t)}}}();window.CODESITE_createImageBar=function(c,n){var i=new google.feeds.Feed(c);i.setResultFormat(google.feeds.Feed.XML_FORMAT);i.setNumEntries(2);i.load(function(k){if(!k.error){var t=jQuery(n),r=jQuery("item",
k.xmlDocument),F=0;if(r.length>=2)F=2;for(var C=['<div class="post techtalk"><div class="screenshot"><a href="@link"><img alt="@origTitle" src="@thumb" height="80" width="90"></a></div><div class="info"><div class="name"><a href="@link" title="@origTitle">@title</a></div><div class="author videodateformat">',CODESITE_msgs.imagebar.POSTED_ON," @date</div></div></div>"].join(""),A=jQuery('<div class="g-section g-tpl-50-50 gc-techtalk"><div class="g-unit g-first">&nbsp;</div><div class="g-unit">&nbsp;</div></div>'),
D=0;D<F;D++){var I=jQuery("title:first",r[D]).text(),J=I,y=jQuery("link:first",r[D]).text(),N=y.substring("http://www.youtube.com/watch?v=".length),E;if((E=r.eq(D).find("atom\\:updated, updated")).length){var Q=E.eq(0).text().replace(/(\d{4})-(\d{2})-(\d{2})T.*/,"$2 $3 $1").split(" ");E=new Date;E.setFullYear(Q[2],Q[0]-1,Q[1])}else if((E=r.eq(D).find("dc\\:date, date")).length)E=new Date(E.eq(0).text());var R=google.feeds.getElementsByTagNameNS(r[D],"http://search.yahoo.com/mrss/","thumbnail")[0],
S=R.getAttribute("url");R.getAttribute("width");R.getAttribute("height");E=E.getMonth()+1+"/"+E.getDate()+"/"+E.getFullYear();var U=jQuery(C.replace(/@link/g,y).replace(/@videoid/g,N).replace(/@thumb/g,S).replace(/@origTitle/g,I).replace(/@title/g,J).replace(/@date/g,E));jQuery(".g-unit:eq("+D+")",A).prepend(U)}t.append(A)}})};window.CODESITE_loadFeedAPI=function(){google.load("feeds","1",{callback:CODESITE_initFeedAPI})};jQuery(function(){jQuery("#searchForm").show();jQuery("#searchForm2").hide()});
window.CODESITE_initFeedAPI=function(){if(CODESITE_codeVideoDiv.length){CODESITE_createImageBar(_homepageGadgetData_.homepageVideoFeedUrl,"#gc-codevideo");CODESITE_minWidth("#codesiteContent",1000)}if(CODESITE_macRecentChangesDiv.length){var c=new BlogPreview(document.getElementById("recentchanges"));c.show("http://googlemacplayground.blogspot.com/atom.xml","changes")}};function f(){var c=/\/intl\/(.*?)\//.exec(document.location);c=c?["&lang=",c[1],"#"].join(""):"#";function n(S){var U="",W;if(typeof S==
"string"){if(S!="")U="&"+b(S)}else for(W in S)U+=["&",W,"=",b(S[W])].join("");return U}if(CODESITE_codeBlogDiv.length){var i=[],k=window._apiGadgetData_||window._homepageGadgetData_,t=k.blogOptions,r=400,F="100%",C="__MSG_blogs__",A="";if(t){F=t.width||F;r=t.height||r;C=t.up_gadgetTitle||C;A=t.xtraFeeds||A}if(k.blogFeedUrl&&k.blogFeedUrl.length){if(!k.blogFeedName||k.blogFeedName.length==0)k.blogFeedName="__MSG_blogs__";i.push(b([k.blogFeedName,":",k.blogFeedUrl].join("")))}k.googleCodeBlogIntlFeedUrl&&
k.googleCodeBlogIntlFeedUrl.length&&i.push(b(["__MSG_blogs.local__:",k.googleCodeBlogIntlFeedUrl].join("")));k.googleCodeBlogFeedUrl&&k.googleCodeBlogFeedUrl.length&&i.push(b(["__MSG_blogs.googleCode__:",k.googleCodeBlogFeedUrl].join("")));k.relatedDeveloperBlogsFeedUrl&&k.relatedDeveloperBlogsFeedUrl.length&&i.push(b(["__MSG_blogs.related__:",k.relatedDeveloperBlogsFeedUrl].join("")));if(A.length)for(var D=a(A).split("|"),I=0;I<D.length;I++)i.push(b(D[I]));if(i.length)jQuery('<iframe frameborder="0">').attr({src:["http://www.gmodules.com/ig/ifr?url=http://code.google.com/gadgets/FeedGadget/gadget.xml",
c,"up_showaddbutton=true&up_random=true&up_defer=true&up_gadgetTitle=",b(C),"&up_feeds=",i.join("|"),n(t||"")].join(""),frameborder:"0",width:F,height:r}).css({border:"none"}).appendTo(CODESITE_codeBlogDiv)}if(CODESITE_featuredDiv.length){var J=[],y=window._apiGadgetData_||window._homepageGadgetData_,N=y.groupOptions,E=400,Q="100%",R="__MSG_groups.community__";A="";if(N){Q=N.width||Q;E=N.height||E;R=N.up_gadgetTitle||R;A=N.xtraFeeds||A}y.featuredProjectsFeedUrl&&y.featuredProjectsFeedUrl.length&&
J.push(b(["featured:__MSG_featured.projects__:",y.featuredProjectsFeedUrl].join("")));if(y.groupFeedUrl&&y.groupFeedUrl.length){if(!y.groupFeedName||y.groupFeedName.length==0)y.groupFeedName="__MSG_groups.community__";J.push(b([y.groupFeedName,":",y.groupFeedUrl].join("")))}y.featureFeedUrl&&y.featureFeedUrl.length&&J.push(b(["featured:__MSG_featured.projects__:",y.featureFeedUrl].join("")));y.articleFeedUrl&&y.articleFeedUrl.length&&J.push(b(["__MSG_articles__:",y.articleFeedUrl].join("")));y.userGroupsFeedUrl&&
y.userGroupsFeedUrl.length&&J.push(b(["__MSG_groups.user__:",y.userGroupsFeedUrl].join("")));if(A.length){D=a(A).split("|");for(I=0;I<D.length;I++)J.push(b(D[I]))}if(J.length)jQuery('<iframe frameborder="0">').attr({src:["http://www.gmodules.com/ig/ifr?url=http://code.google.com/gadgets/FeedGadget/gadget.xml",c,"up_showaddbutton=true&up_defer=true&up_gadgetTitle=",b(R),"&up_feeds=",J.join("|"),n(N||"")].join(""),frameborder:"0",width:Q,height:E}).css({border:"none"}).appendTo(CODESITE_featuredDiv)}}
jQuery(function(){try{prettyPrint()}catch(c){}});jQuery(function(){var c=jQuery("#gc-pagecontent"),n=jQuery("#gc-toc");if(c.length){var i=jQuery('<div id="gc-collapsible-arrow">'),k=jQuery('<div id="gc-collapsible">'),t=function(r){var F=c.offset();i.css({left:F.left+"px",top:(r.pageY||r.clientY)+"px"})};c.css("position","relative").append(k);jQuery(document.body).append(i);jQuery.browser.msie&&jQuery.browser.version<7&&c.css("left","-5px");c.is(".skip-collapsible")||k.mouseover(function(r){k.addClass("hover");
if(n.is(":hidden")){k.css("left","-3px");i.addClass("collapsed")}else i.removeClass("collapsed");i.show();t(r)}).mousemove(function(r){t(r)}).mouseout(function(){k.removeClass("hover");k.css("left","");i.hide()}).click(function(){i.hide();k.removeClass("hover").css("left","");n.toggle();if(n.is(":visible")){c.css("margin-left","");jQuery.browser.msie&&jQuery.browser.version<7&&c.css("left","-5px")}else{c.css("margin-left","0px");jQuery.browser.msie&&jQuery.browser.version<7&&c.css("left","")}});k.height(c.height())}});
jQuery(window.CODESITE_createVideoAndGadgets=function(){CODESITE_codeBlogDiv=jQuery("#gc-blog-gadget");CODESITE_featuredDiv=jQuery("#gc-community-gadget");CODESITE_codeVideoDiv=jQuery("#gc-codevideo");CODESITE_macRecentChangesDiv=jQuery("#recentchanges");if(CODESITE_codeVideoDiv.length||CODESITE_macRecentChangesDiv.length)if(window.google)CODESITE_loadFeedAPI();else{var c=document.createElement("script");c.src="http://www.google.com/jsapi?key=internal-codesite&callback=CODESITE_loadFeedAPI";c.type=
"text/javascript";document.getElementsByTagName("head")[0].appendChild(c)}if(CODESITE_codeBlogDiv.length||CODESITE_featuredDiv.length)f()});window.CODESITE_getIntlUrl=function(c){var n=["/intl/","/p/","/u/","/hosting/","/support/","/soc/","/codejam/","/apis/youtube/dashboard/"];if(c.indexOf("/")==0){for(var i in n)if(c.indexOf(n[i])>=0)return c;return CODESITE_langUrl+c}else return c};window.CODESITE_getProduct=function(c){c=c||window.location.href;var n=/https?:\/\/[^\/]*(\/intl\/[^\/]*)?(\/apis)?(\/([a-z0-9]*))?\//,
i=n.exec(c);if(!i)return"";var k=i[4];return k?k:""};jQuery(window).load(function(){window.setTimeout(function(){jQuery.ajax({type:"GET",url:"http://www.google-analytics.com/ga.js",dataType:"script",success:d,cache:true})},0)});function d(){if(window._gat)try{siteTracker=window._gat._getTracker("UA-18071-1");siteTracker._trackPageview()}catch(c){}}window.CODESITE_click=function(c){window.setTimeout(function(){if(window.siteTracker)try{siteTracker._trackPageview(c)}catch(n){}},0)}})(jQuery);var CSE={QUERY_REGEX_HASH:/([^\#]*)\#(p=([^&]*)&)?q=(.*)$/,QUERY_REGEX_QUES:/([^\?]*)\?(p=([^&]*)&)?q=(.*)$/,CSE_URL:"http://code.google.com/cse/googlecode-context.xml",searchControl:{},recentQuery:"",showingSearchResults:false,iframeUrlInSync:true,init:function(){CSE.searchControl=new GSearchControl;CSE.searchControl.setResultSetSize(GSearch.LARGE_RESULTSET);CSE.searchControl.setLinkTarget(GSearch.LINK_TARGET_TOP);var b=CSE.getProductParam();if(CODESITE_getSearchTabTitle(b)!=null){CSE.addSearcher(b,
false);CODESITE_getSearchTabTitle(b,true)!=null&&CSE.addSearcher(b,true)}CSE.addSearcher("google_code",false);CSE.addSearcher("discussion",true);CSE.addSearcher("project_hosting",false);var a=new GvideoSearch;a.setQueryAddition("ytchannel:GoogleDevelopers");a.setResultSetSize(GSearch.SMALL_RESULTSET);a.setUserDefinedLabel(CODESITE_getSearchTabTitle("developer_videos"));CSE.searchControl.addSearcher(a);var f=document.getElementById("searchControl"),d=new GdrawOptions;d.setDrawMode(GSearchControl.DRAW_MODE_TABBED);
CSE.searchControl.draw(f,d);CSE.checkHash(CSE.QUERY_REGEX_HASH,window.location.href)},addSearcher:function(b,a){var f=new GwebSearch;a?f.setSiteRestriction({crefUrl:CSE.CSE_URL},b+"_groups"):f.setSiteRestriction({crefUrl:CSE.CSE_URL},b);f.setUserDefinedLabel(CODESITE_getSearchTabTitle(b,a));CSE.searchControl.addSearcher(f)},checkHash:function(b,a){var f=b.exec(a);if(f){var d=decodeURI(f[4]);if(d!=""&&d!=CSE.recentQuery){jQuery("#gsearchInput").attr("value",d);CSE.executeQuery(d)}}else{if(CSE.showingSearchResults){jQuery("#searchControl").hide();
jQuery("#codesiteContent").show();CSE.recentQuery="";CSE.showingSearchResults=false;window.history.back(-1)}return false}return true},getProductParam:function(){var b=CSE.QUERY_REGEX_HASH.exec(window.location.href),a="";if(b&&b[4]){a=decodeURI(b[3]);if(CODESITE_getSearchTabTitle(a)==null)a=""}return a},executeQuery:function(b){if(!(b==""))if(CSE.iframeUrlInSync){var a=CSE.getProductParam();CSE.handleAnalytics(b,a);var f=a!=""?"p="+encodeURI(a)+"&q="+encodeURI(b):"q="+encodeURI(b);jQuery.browser.msie&&
CSE.handleIeHistory(f);CSE.recentQuery=b;CODESITE_setURL("#"+f);jQuery("#searchControl").show();jQuery("#codesiteContent").hide();CSE.showingSearchResults=true;var d=CSE.makeNoResultsHtml(b);CSE.searchControl.setNoResultsString(d);CSE.searchControl.execute(b)}},handleIeHistory:function(b){CSE.iframeUrlInSync=false;window.backiFrame.location.search=b;var a=window.setInterval(f,window.CODESITE_backButton.IFRAME_POLLING_INTERVAL);function f(){if(window.backiFrame.location.search.substring(1)==b){CSE.iframeUrlInSync=
true;window.clearInterval(a)}}},makeNoResultsHtml:function(b){for(var a=[CODESITE_msgs.search.NO_RESULTS_FOUND,"<b>",CSE.escapeHtml(b),"</b><br><br>",CODESITE_msgs.search.SUGGESTIONS_TITLE,":<br><br><ul>"].join(""),f=0,d=CODESITE_msgs.search.SUGGESTIONS_ITEMS.length;f<d;f++)a=[a,"<li>",CODESITE_msgs.search.SUGGESTIONS_ITEMS[f],"</li>"].join("");return[a,'</ul><br><a href="',CODESITE_msgs.search.SEARCH_URL,encodeURI(b),'">',CODESITE_msgs.search.TRY_WEBSEARCH,"</a>."].join("")},handleAnalytics:function(b,
a){var f=jQuery("#searchControl").css("display")=="block"?jQuery("div.gsc-tabhActive").text():"",d="/search/?q="+b+"&product="+a+"&tab="+f;if(window.siteTracker)try{siteTracker._trackPageview(d)}catch(c){}},escapeHtml:function(b){return b.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\'/g,"&#039;").replace(/\"/g,"&quot;")},pollHash:function(){if(jQuery.browser.msie)CSE.iframeUrlInSync&&CSE.checkHash(CSE.QUERY_REGEX_QUES,window.backiFrame.location.href)&&CSE.checkHash(CSE.QUERY_REGEX_HASH,
window.location.href);else CSE.checkHash(CSE.QUERY_REGEX_HASH,window.location.href)}};window.CODESITE_CSE=CSE;window.CODESITE_setURL=function(b){location.href=b};window.executeGSearch=function(b){if(!(b==""))if(CODESITE_CSE.iframeUrlInSync){var a=CODESITE_getProduct();if(a=="search")CODESITE_CSE.executeQuery(b);else{if(CODESITE_getSearchTabTitle(a)==null)a="";var f=a!=""?"p="+encodeURI(a)+"&q="+encodeURI(b):"q="+encodeURI(b);CODESITE_setURL(CODESITE_langUrl+"/search/#"+f)}}};
window.CODESITE_getSearchTabTitle=function(b,a){if(!b)return null;var f=CODESITE_productDictionary.dictionariesList;for(var d in f){var c=CODESITE_productDictionary[f[d]].entries[b];if(c)if(a){if(c.groupsTitle)return c.groupsTitle}else return c.searchTabTitle||c.title}f=CODESITE_productDictionary.dictionariesList;for(d in f)if(c=CODESITE_productDictionary_default[f[d]].entries[b])if(a){if(c.groupsTitle)return c.groupsTitle}else return c.searchTabTitle||c.title;return null};(function(){function b(a,f){this.results_=[];this.buttonEl_=jQuery("#"+f);this.inputFieldEl_=jQuery("#"+a);var d=this;jQuery(this.buttonEl_).focus(function(){d.hideResultsWindow_()});this.searchResultsEl_=jQuery('<div id="cs-searchresults">');this.searchResultsEl_.click(function(i){(event||i).cancelBubble=true});this.searchResultsEl_.appendTo(document.body);jQuery('<div id="cs-recommended">').html(CODESITE_msgs.search.SUGGESTIONS).appendTo(this.searchResultsEl_);for(var c=0,n=1;c<this.MAX_RESULTS_;c++,
n++)jQuery('<div id="searchResult'+n+'">').appendTo(this.searchResultsEl_);jQuery(document.body).click(function(i){return d.handleBodyClick_.call(d,i)});jQuery(document).keydown(function(i){return d.handleBodyKeyDown_.call(d,i)}).keypress(function(i){return d.handleBodyKeyPress_.call(d,i)}).keyup(function(i){return d.handleBodyKeyUp_.call(d,i)});jQuery(window).resize(function(i){d.handleBodyResize_.call(d,i)});window.onpageshow=function(i){i.persisted&&d.hideResultsWindow_()};this.inputFieldEl_.keyup(function(i){return d.handleInputKeyUp_.call(d,
i)}).focus(function(i){return d.handleInputFocus_.call(d,i)}).blur(function(i){return d.handleInputBlur_.call(d,i)}).click(function(i){return d.handleInputClick_.call(d,i)}).attr("autocomplete","off");this.initialized_=!!(this.inputFieldEl_.length&&this.searchResultsEl_.length&&this.buttonEl_.length)}b.prototype={results_:null,initialized_:false,searchActive_:true,resultsWindowHidden_:true,inputFieldEl_:0,searchResultsEl_:0,inputFieldHasFocus_:0,activeResult_:0,arrowKeyProcessed_:false,typedQuery_:"",
backgroundHover:"#3366CC",foregroundHover:"#ffffff",backgroundOff:"#ffffff",foregroundOff:"#000000",MAX_RESULTS_:7,FIRST_RESULT_:1,getQueryFromInputField_:function(){return jQuery.trim(this.inputFieldEl_.val().toLowerCase())},querySearch_:function(){if(this.searchActive_)if(this.typedQuery_.length==0)this.hideResultsWindow_();else{this.results_.splice(0,this.results_.length);var a=CODESITE_productDictionary.dictionariesList;for(var f in a){var d=CODESITE_productDictionary[a[f]];if(d.includeInSearchSuggest)for(var c in d.entries){var n=
d.entries[c],i=0,k=new RegExp("(?:\\s|^)"+RegExp.escape(this.typedQuery_)),t=n.title.toLowerCase().match(k);if(t!=null)i=2;for(var r in n.keywords){var F=r.match(k);if(F!=null)i+=n.keywords[r];var C=this.typedQuery_.split(" ");if(C.length>1)for(c=0;c<C.length;c++){var A=new RegExp("(?:\\s|^)"+C[c]),D=r.match(A);if(D!=null)i+=n.keywords[r]}}i>0&&this.results_.push({match:i,title:n.title,url:CODESITE_getIntlUrl(n.url)})}}this.results_.sort(this.sortMatches_);this.results_.length=Math.min(this.results_.length,
6);this.prepareResultsWindow_()}},sortMatches_:function(a,f){var d=f.match,c=a.match;return d<c?-1:d>c?1:0},createSearchResultDiv:function(a){var f=a+1,d=this,c=jQuery("#searchResult"+f);c.attr("class","cs-searchresult").css({display:"block",textAlign:"left",zoom:"1"}).html(['<a tabindex="-1" id="searchResultLink',f,'" href="',this.results_[a].url,'">',this.results_[a].title,"</a>"].join("")).unbind().mouseover(function(){d.deactivateAllResults_();d.activateSearchResult_(f)}).mouseout(function(){d.deactivateSearchResult_(f)}).click(function(){window.location.href=
d.results_[a].url})},prepareResultsWindow_:function(){this.activeResult_=0;if(this.results_.length==0)this.hideResultsWindow_();else{for(var a=0;a<this.results_.length;a++)this.createSearchResultDiv(a);this.deactivateAllResults_();var f=this.results_.length+1,d=jQuery("#searchResult"+f),c=this;d.attr("class","").css({textAlign:"right",display:"block",zoom:"1"}).html('<a style="color: #0000ff; text-decoration: underline;" id="searchResultLink'+f+'"> '+CODESITE_msgs.search.MORE+" &raquo;</a>").unbind().mouseup(function(){c.hideResultsWindow_();
executeGSearch(c.inputFieldEl_.val())}).mouseover(function(){c.deactivateAllResults_();c.activateSearchResult_(f)}).mouseout(function(){c.deactivateSearchResult_(f)});for(a=f+1;a<=this.MAX_RESULTS_;a++)jQuery("#searchResult"+a).hide();this.resultsWindowHidden_&&this.showResultsWindow_()}},updateDimensions_:function(){if(this.searchActive_){var a=this.inputFieldEl_.offset();a.left+=3;this.searchResultsEl_.css({left:a.left+"px",top:a.top+this.inputFieldEl_[0].offsetHeight+2+"px",width:this.inputFieldEl_.css("width")})}},
showResultsWindow_:function(){if(this.searchActive_){this.searchResultsEl_.css("visibility","hidden");this.updateDimensions_();this.searchResultsEl_.css("display","block");this.searchResultsEl_.css("visibility","visible");this.resultsWindowHidden_=false}},hideResultsWindow_:function(){if(!this.resultsWindowHidden_){this.searchResultsEl_.hide();this.resultsWindowHidden_=true;this.activeResult_=0}},activateSearchResult_:function(a){this.inputFieldEl_[0].blur();var f=jQuery("#searchResult"+a),d=jQuery("#searchResultLink"+
a);f.length&&f.css("backgroundColor",this.backgroundHover);d.length&&d.css("color","white")},deactivateSearchResult_:function(a){var f=jQuery("#searchResult"+a),d=jQuery("#searchResultLink"+a);f&&f.css("background",this.backgroundOff);if(d&&a==this.results_.length+1)d.css("color","#0000ff");else d&&d.css("color",this.foregroundOff)},deactivateAllResults_:function(){for(var a=0,f=this.results_.length+1;a<f;a++)this.deactivateSearchResult_(a+1)},activateNextSearchResult_:function(){if(this.results_.length>
0)if(this.activeResult_<=this.results_.length){this.deactivateSearchResult_(this.activeResult_);this.activeResult_++;this.activateSearchResult_(this.activeResult_)}},activatePrevSearchResult_:function(){if(this.results_.length>0)if(this.activeResult_==this.FIRST_RESULT_){this.deactivateSearchResult_(this.activeResult_);this.activeResult_=0;this.inputFieldEl_[0].focus()}else if(this.activeResult_>this.FIRST_RESULT_){this.deactivateSearchResult_(this.activeResult_);this.activeResult_--;this.activateSearchResult_(this.activeResult_)}},
handleInputKeyUp_:function(a){if(this.initialized_)if(this.searchActive_){a=a||window.event;var f=a.which?a.which:a.keyCode;if(f==13){this.hideResultsWindow_();executeGSearch(this.inputFieldEl_.val())}else{var d=this.getQueryFromInputField_();if(d!=this.typedQuery_){this.typedQuery_=d;this.querySearch_()}return true}}},handleBodyKeyDown_:function(a){var f=true,d=false;if(this.initialized_){a=a||window.event;for(var c=a.which?a.which:a.keyCode,n=a.target?a.target:a.srcElement,i=jQuery("#searchResultLink"+
this.activeResult_),k=[this.inputFieldEl_[0],document.documentElement,document.body],t=0;t<k.length;t++)if(n==k[t])d=true;if(!d)return true;switch(c){case 13:if(this.activeResult_>=0){if(this.activeResult_==this.results_.length+1){this.hideResultsWindow_();executeGSearch(this.inputFieldEl_.val())}else if(i.length)location.href=i.attr("href");f=false}break;case 27:if(this.searchActive_)if(this.resultsWindowHidden_){this.inputFieldEl_.val("");f=false}else{this.hideResultsWindow_();f=false}else{this.searchActive_=
true;this.inputFieldEl_[0].focus();f=true}break;case 40:case 63233:if(this.resultsWindowHidden_&&this.inputFieldHasFocus_&&c!=39){this.searchActive_=true;this.querySearch_();f=false}else if(!this.resultsWindowHidden_&&(this.activeResult_>0||c!=39)){this.deactivateAllResults_();this.activateNextSearchResult_();f=false;this.arrowKeyProcessed_=true}break;case 38:case 63235:if(!this.resultsWindowHidden_){this.deactivateAllResults_();this.activatePrevSearchResult_();f=false;this.arrowKeyProcessed_=true}break;
case 37:case 39:if(!this.inputFieldHasFocus_&&!this.resultsWindowHidden_){this.arrowKeyProcessed_=false;this.inputFieldEl_[0].focus()}}}return f},handleBodyKeyPress_:function(a){if(this.initialized_){a=a||window.event;var f=a.which?a.which:a.keyCode;if(this.arrowKeyProcessed_&&f>=37&&f<=40)return false;return true}},handleBodyKeyUp_:function(a){var f=true;a=a||window.event;this.arrowKeyProcessed_=false;return f},handleBodyResize_:function(){this.updateDimensions_();return true},handleInputBlur_:function(){this.inputFieldHasFocus_=
0},handleInputFocus_:function(){this.inputFieldHasFocus_=0.5;this.initialized_&&this.deactivateAllResults_()},handleInputClick_:function(a){a=a||window.event;this.searchActive_=a.cancelBubble=true;if(this.inputFieldHasFocus_==1)this.resultsWindowHidden_&&this.querySearch_();else this.inputFieldHasFocus_=1},handleBodyClick_:function(a){a=a||window.event;var f=a.target?a.target:a.srcElement;f&&f.parentNode&&this.hideResultsWindow_()}};window.CODESITE_asYouTypeSearch=b;jQuery(function(){try{new b("gsearchInput",
"gsearchButton")}catch(a){}})})(jQuery);(function(){var b={POLLING_INTERVAL:450,IFRAME_POLLING_INTERVAL:50,init:function(){var a=window.location.href.match(/\/search/);if(jQuery.browser.msie||jQuery.browser.mozilla||navigator.userAgent.indexOf("Chrome")!=-1||jQuery.browser.safari&&navigator.userAgent.indexOf("Version/")!=-1)b.poll(a)},poll:function(a){a&&window.setInterval(function(){a&&window.CODESITE_CSE.pollHash()},b.POLLING_INTERVAL)}};window.CODESITE_backButton=b})(jQuery);jQuery(document).ready(function(){window.CODESITE_backButton.init()});(function(){var b=null,a=true;window.PR_SHOULD_USE_CONTINUATION=a;window.PR_TAB_WIDTH=8;window.PR_normalizedHtml=window.PR=window.prettyPrintOne=window.prettyPrint=void 0;window._pr_isIE6=function(){var ga=navigator&&navigator.userAgent&&/\bMSIE 6\./.test(navigator.userAgent);window._pr_isIE6=function(){return ga};return ga};var f="a",d="z",c="A",n="Z",i="!",k="!=",t="!==",r="#",F="%",C="%=",A="&",D="&&",I="&&=",J="&=",y="(",N="*",E="*=",Q="+=",R=",",S="-=",U="->",W="/",Xa="/=",Ya=":",Za="::",xa=
";",ha="<",$a="<<",ab="<<=",bb="<=",cb="=",db="==",eb="===",ia=">",fb=">=",gb=">>",hb=">>=",ib=">>>",jb=">>>=",kb="?",ya="@",lb="[",mb="^",nb="^=",ob="^^",pb="^^=",qb="{",za="|",rb="|=",sb="||",tb="||=",ub="~",vb="break",wb="case",xb="continue",yb="delete",zb="do",Ab="else",Bb="finally",Cb="instanceof",Db="return",Eb="throw",Fb="try",Gb="typeof",Hb="(?:(?:(?:^|[^0-9.])\\.{1,3})|(?:(?:^|[^\\+])\\+)|(?:(?:^|[^\\-])-)",Ib="|\\b",Jb="\\$1",Kb="|^)\\s*$",Aa="&amp;",Ba="&lt;",Ca="&gt;",Lb="&quot;",Mb="&#",
Nb="x",Da="'",oa='"',Ea=" ",Ob="XMP",Pb="</",Qb='="',pa="PRE",Rb='<!DOCTYPE foo PUBLIC "foo bar">\n<foo />',T="",Sb="\t",Fa="\n",Ga="nocode",Tb=' $1="$2$3$4"',O="pln",ja="lang-",ka="src",qa="default-markup",ra="default-code",X="com",Ha="dec",da="pun",Ub="lang-js",Vb="lang-css",Y="tag",Z="atv",Wb="<>/=",sa="atn",Xb=" \t\r\n",ea="str",Yb="'\"",Zb="'\"`",$b="\"'",Ia=" \r\n",la="lit",ac="123456789",bc=".",Ja="kwd",Ka="typ",cc="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename typeof using virtual wchar_t where break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try debugger eval export function get null set undefined var with Infinity NaN caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END break continue do else for if return while and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None break continue do else for if return while alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END break continue do else for if return while case done elif esac eval fi function in local set then until ",
ta="</span>",dc='<span class="',ec='">',fc="$1&nbsp;",gc="<br />",La="console",hc="cannot override language handler %s",ic="htm",jc="html",kc="mxml",lc="xhtml",mc="xml",nc="xsl",oc="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename typeof using virtual wchar_t where ",
pc="c",qc="cc",rc="cpp",sc="cxx",tc="cyc",uc="m",vc="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var ",
wc="cs",xc="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient ",yc="java",zc="break continue do else for if return while case done elif esac eval fi function in local set then until ",
Ac="bsh",Bc="csh",Cc="sh",Dc="break continue do else for if return while and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None ",Ec="cv",Fc="py",Gc="caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END ",Hc="perl",Ic="pl",Jc="pm",Kc="break continue do else for if return while alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END ",
Lc="rb",Mc="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try debugger eval export function get null set undefined var with Infinity NaN ",Nc="js",Ma="pre",Na="code",Oa="xmp",Pa="prettyprint",Oc="class",Pc="br";(function(){function ga(g){g=g.split(/ /g);for(var e=
{},j=g.length;--j>=0;){var h=g[j];if(h)e[h]=b}return e}function Qc(g){return g>=f&&g<=d||g>=c&&g<=n}function ma(g,e,j,h){g.unshift(j,h||0);try{e.splice.apply(e,g)}finally{g.splice(0,2)}}var Rc=function(){for(var g=[i,k,t,r,F,C,A,D,I,J,y,N,E,Q,R,S,U,W,Xa,Ya,Za,xa,ha,$a,ab,bb,cb,db,eb,ia,fb,gb,hb,ib,jb,kb,ya,lb,mb,nb,ob,pb,qb,za,rb,sb,tb,ub,vb,wb,xb,yb,zb,Ab,Bb,Cb,Db,Eb,Fb,Gb],e=Hb,j=0;j<g.length;++j){var h=g[j];e+=Qc(h.charAt(0))?Ib+h:za+h.replace(/([^=<>:&])/g,Jb)}e+=Kb;return new RegExp(e)}(),Qa=
/&/g,Ra=/</g,Sa=/>/g,Sc=/\"/g;function Tc(g){return g.replace(Qa,Aa).replace(Ra,Ba).replace(Sa,Ca).replace(Sc,Lb)}function ua(g){return g.replace(Qa,Aa).replace(Ra,Ba).replace(Sa,Ca)}var Uc=/&lt;/g,Vc=/&gt;/g,Wc=/&apos;/g,Xc=/&quot;/g,Yc=/&amp;/g,Zc=/&nbsp;/g;function $c(g){var e=g.indexOf(A);if(e<0)return g;for(--e;(e=g.indexOf(Mb,e+1))>=0;){var j=g.indexOf(xa,e);if(j>=0){var h=g.substring(e+3,j),o=10;if(h&&h.charAt(0)===Nb){h=h.substring(1);o=16}var l=parseInt(h,o);isNaN(l)||(g=g.substring(0,e)+
String.fromCharCode(l)+g.substring(j+1))}}return g.replace(Uc,ha).replace(Vc,ia).replace(Wc,Da).replace(Xc,oa).replace(Yc,A).replace(Zc,Ea)}function Ta(g){return Ob===g.tagName}function na(g,e){switch(g.nodeType){case 1:var j=g.tagName.toLowerCase();e.push(ha,j);for(var h=0;h<g.attributes.length;++h){var o=g.attributes[h];if(o.specified){e.push(Ea);na(o,e)}}e.push(ia);for(var l=g.firstChild;l;l=l.nextSibling)na(l,e);if(g.firstChild||!/^(?:br|link|img)$/.test(j))e.push(Pb,j,ia);break;case 2:e.push(g.name.toLowerCase(),
Qb,Tc(g.value),oa);break;case 3:case 4:e.push(ua(g.nodeValue));break}}var va=b;function ad(g){if(b===va){var e=document.createElement(pa);e.appendChild(document.createTextNode(Rb));va=!/</.test(e.innerHTML)}if(va){var j=g.innerHTML;if(Ta(g))j=ua(j);return j}for(var h=[],o=g.firstChild;o;o=o.nextSibling)na(o,h);return h.join(T)}function bd(g){var e=0;return function(j){for(var h=b,o=0,l=0,s=j.length;l<s;++l){var m=j.charAt(l);switch(m){case Sb:h||(h=[]);h.push(j.substring(o,l));var p=g-e%g;for(e+=
p;p>=0;p-="                ".length)h.push("                ".substring(0,p));o=l+1;break;case Fa:e=0;break;default:++e}}if(!h)return j;h.push(j.substring(o));return h.join(T)}}var cd=/(?:[^<]+|<!--[\s\S]*?--\>|<!\[CDATA\[([\s\S]*?)\]\]>|<\/?[a-zA-Z][^>]*>|<)/g,dd=/^<!--/,ed=/^<\[CDATA\[/,fd=/^<br\b/i,Ua=/^<(\/?)([a-zA-Z]+)/;function gd(g){var e=g.match(cd),j=[],h=0,o=[];if(e)for(var l=0,s=e.length;l<s;++l){var m=e[l];if(m.length>1&&m.charAt(0)===ha){if(!dd.test(m))if(ed.test(m)){j.push(m.substring(9,
m.length-3));h+=m.length-12}else if(fd.test(m)){j.push(Fa);++h}else if(m.indexOf(Ga)>=0&&hd(m)){var p=m.match(Ua)[2],z=1,q;q=l+1;a:for(;q<s;++q){var w=e[q].match(Ua);if(w&&w[2]===p)if(w[1]===W){if(--z===0)break a}else++z}if(q<s){o.push(h,e.slice(l,q+1).join(T));l=q}else o.push(h,m)}else o.push(h,m)}else{var B=$c(m);j.push(B);h+=B.length}}return{source:j.join(T),tags:o}}function hd(g){return!!g.replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,Tb).match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/)}
function wa(g,e,j,h){if(e){var o=j.call({},e);if(g)for(var l=o.length;(l-=2)>=0;)o[l]+=g;h.push.apply(h,o)}}function fa(g,e){var j={};(function(){for(var s=g.concat(e),m=s.length;--m>=0;){var p=s[m],z=p[3];if(z)for(var q=z.length;--q>=0;)j[z.charAt(q)]=p}})();var h=e.length,o=/\S/,l=function(s,m){m=m||0;for(var p=[m,O],z=T,q=0,w=s;w.length;){var B,u=b,v,x=j[w.charAt(0)];if(x){v=w.match(x[1]);u=v[0];B=x[0]}else{for(var G=0;G<h;++G){x=e[G];var K=x[2];if(!(K&&!K.test(z)))if(v=w.match(x[1])){u=v[0];B=
x[0];break}}if(!u){B=O;u=w.substring(0,1)}}var H=ja===B.substring(0,5);if(H&&!(v&&v[1])){H=false;B=ka}if(H){var V=v[1],L=u.indexOf(V),aa=L+V.length,ba=B.substring(5);ca.hasOwnProperty(ba)||(ba=/^\s*</.test(V)?qa:ra);wa(m+q,u.substring(0,L),l,p);wa(m+q+L,u.substring(L,aa),ca[ba],p);wa(m+q+aa,u.substring(aa),l,p)}else p.push(m+q,B);q+=u.length;w=w.substring(u.length);if(B!==X&&o.test(u))z=u}return p};return l}var id=fa([],[[O,/^[^<?]+/,b],[Ha,/^<!\w[^>]*(?:>|$)/,b],[X,/^<!--[\s\S]*?(?:--\>|$)/,b],[ja,
/^<\?([\s\S]+?)(?:\?>|$)/,b],[ja,/^<%([\s\S]+?)(?:%>|$)/,b],[da,/^(?:<[%?]|[%?]>)/,b],[ja,/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i,b],[Ub,/^<script\b[^>]*>([\s\S]+?)<\/script\b[^>]*>/i,b],[Vb,/^<style\b[^>]*>([\s\S]+?)<\/style\b[^>]*>/i,b],[Y,/^<\/?\w[^<>]*>/,b]]),jd=/^(<[^>]*>)([\s\S]*)(<\/[^>]*>)$/;function kd(g){for(var e=id(g),j=0;j<e.length;j+=2)if(e[j+1]===ka){var h,o;h=e[j];o=j+2<e.length?e[j+2]:g.length;var l=g.substring(h,o),s=l.match(jd);if(s)e.splice(j,2,h,Y,h+s[1].length,ka,h+s[1].length+
(s[2]||T).length,Y)}return e}var ld=fa([[Z,/^\'[^\']*(?:\'|$)/,b,Da],[Z,/^\"[^\"]*(?:\"|$)/,b,oa],[da,/^[<>\/=]+/,b,Wb]],[[Y,/^[\w:\-]+/,/^</],[Z,/^[\w\-]+/,/^=/],[sa,/^[\w:\-]+/,b],[O,/^\s+/,b,Xb]]);function md(g,e){for(var j=0;j<e.length;j+=2){var h=e[j+1];if(h===Y){var o,l;o=e[j];l=j+2<e.length?e[j+2]:g.length;var s=g.substring(o,l),m=ld(s,o);ma(m,e,j,2);j+=m.length-2}}return e}function P(g){var e=[],j=[];if(g.tripleQuotedStrings)e.push([ea,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
b,Yb]);else g.multiLineStrings?e.push([ea,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,b,Zb]):e.push([ea,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,b,$b]);j.push([O,/^(?:[^\'\"\`\/\#]+)/,b,Ia]);g.hashComments&&e.push([X,/^#[^\r\n]*/,b,r]);if(g.cStyleComments){j.push([X,/^\/\/[^\r\n]*/,b]);j.push([X,/^\/\*[\s\S]*?(?:\*\/|$)/,b])}g.regexLiterals&&j.push([ea,/^\/(?=[^\/*])(?:[^\/\x5B\x5C]|\x5C[\s\S]|\x5B(?:[^\x5C\x5D]|\x5C[\s\S])*(?:\x5D|$))+(?:\/|$)/,
Rc]);var h=ga(g.keywords),o=fa(e,j),l=fa([],[[O,/^\s+/,b,Ia],[O,/^[a-z_$@][a-z_$@0-9]*/i,b],[la,/^0x[a-f0-9]+[a-z]/i,b],[la,/^(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?[a-z]*/i,b,ac],[da,/^[^\s\w\.$@]+/,b]]);function s(m,p){for(var z=0;z<p.length;z+=2){var q=p[z+1];if(q===O){var w,B,u,v;w=p[z];B=z+2<p.length?p[z+2]:m.length;u=m.substring(w,B);v=l(u,w);for(var x=0,G=v.length;x<G;x+=2){var K=v[x+1];if(K===O){var H=v[x],V=x+2<G?v[x+2]:u.length,L=m.substring(H,V);if(L===bc)v[x+1]=da;else if(L in
h)v[x+1]=Ja;else if(/^@?[A-Z][A-Z$]*[a-z][A-Za-z$]*$/.test(L))v[x+1]=L.charAt(0)===ya?la:Ka}}ma(v,p,z,2);z+=v.length-2}}return p}return function(m){var p=o(m);return p=s(m,p)}}var Va=P({keywords:cc,hashComments:a,cStyleComments:a,multiLineStrings:a,regexLiterals:a});function nd(g,e){for(var j=false,h=0;h<e.length;h+=2){var o=e[h+1],l,s;if(o===sa){l=e[h];s=h+2<e.length?e[h+2]:g.length;j=/^on|^style$/i.test(g.substring(l,s))}else if(o===Z){if(j){l=e[h];s=h+2<e.length?e[h+2]:g.length;var m=g.substring(l,
s),p=m.length,z=p>=2&&/^[\"\']/.test(m)&&m.charAt(0)===m.charAt(p-1),q,w,B;if(z){w=l+1;B=s-1;q=m}else{w=l+1;B=s-1;q=m.substring(1,m.length-1)}for(var u=Va(q),v=0,x=u.length;v<x;v+=2)u[v]+=w;if(z){u.push(B,Z);ma(u,e,h+2,0)}else ma(u,e,h,2)}j=false}}return e}function od(g){var e=kd(g);e=md(g,e);return e=nd(g,e)}function pd(g,e,j){var h=[],o=0,l=b,s=b,m=0,p=0,z=bd(window.PR_TAB_WIDTH),q=/([\r\n ]) /g,w=/(^| ) /gm,B=/\r\n?|\n/g,u=/[ \r\n]$/,v=a;function x(K){if(K>o){if(l&&l!==s){h.push(ta);l=b}if(!l&&
s){l=s;h.push(dc,l,ec)}var H=ua(z(g.substring(o,K))).replace(v?w:q,fc);v=u.test(H);h.push(H.replace(B,gc));o=K}}for(;a;){var G;if(G=m<e.length?p<j.length?e[m]<=j[p]:a:false){x(e[m]);if(l){h.push(ta);l=b}h.push(e[m+1]);m+=2}else if(p<j.length){x(j[p]);s=j[p+1];p+=2}else break}x(g.length);l&&h.push(ta);return h.join(T)}var ca={};function M(g,e){for(var j=e.length;--j>=0;){var h=e[j];if(ca.hasOwnProperty(h))La in window&&console.log(hc,h);else ca[h]=g}}M(Va,[ra]);M(od,[qa,ic,jc,kc,lc,mc,nc]);M(P({keywords:oc,
hashComments:a,cStyleComments:a}),[pc,qc,rc,sc,tc,uc]);M(P({keywords:vc,hashComments:a,cStyleComments:a}),[wc]);M(P({keywords:xc,cStyleComments:a}),[yc]);M(P({keywords:zc,hashComments:a,multiLineStrings:a}),[Ac,Bc,Cc]);M(P({keywords:Dc,hashComments:a,multiLineStrings:a,tripleQuotedStrings:a}),[Ec,Fc]);M(P({keywords:Gc,hashComments:a,multiLineStrings:a,regexLiterals:a}),[Hc,Ic,Jc]);M(P({keywords:Kc,hashComments:a,multiLineStrings:a,regexLiterals:a}),[Lc]);M(P({keywords:Mc,cStyleComments:a,regexLiterals:a}),
[Nc]);function Wa(g,e){try{var j=gd(g),h=j.source,o=j.tags;ca.hasOwnProperty(e)||(e=/^\s*</.test(h)?qa:ra);var l=ca[e].call({},h);return pd(h,o,l)}catch(s){if(La in window){console.log(s);console.a()}return g}}function qd(g){for(var e=window._pr_isIE6(),j=[document.getElementsByTagName(Ma),document.getElementsByTagName(Na),document.getElementsByTagName(Oa)],h=[],o=0;o<j.length;++o)for(var l=0,s=j[o].length;l<s;++l)h.push(j[o][l]);var m=0;function p(){for(var z=window.PR_SHOULD_USE_CONTINUATION?(new Date).getTime()+
250:Infinity;m<h.length&&(new Date).getTime()<z;m++){var q=h[m];if(q.className&&q.className.indexOf(Pa)>=0){var w=q.className.match(/\blang-(\w+)\b/);if(w)w=w[1];for(var B=false,u=q.parentNode;u;u=u.parentNode)if((u.tagName===Ma||u.tagName===Na||u.tagName===Oa)&&u.className&&u.className.indexOf(Pa)>=0){B=a;break}if(!B){var v=ad(q);v=v.replace(/(?:\r\n?|\n)$/,T);var x=Wa(v,w);if(Ta(q)){for(var G=document.createElement(pa),K=0;K<q.attributes.length;++K){var H=q.attributes[K];if(H.specified){var V=H.name.toLowerCase();
if(V===Oc)G.className=H.value;else G.setAttribute(H.name,H.value)}}G.innerHTML=x;q.parentNode.replaceChild(G,q);q=G}else q.innerHTML=x;if(e&&q.tagName===pa)for(var L=q.getElementsByTagName(Pc),aa=L.length;--aa>=0;){var ba=L[aa];ba.parentNode.replaceChild(document.createTextNode("\r"),ba)}}}}if(m<h.length)setTimeout(p,250);else g&&g()}p()}window.PR_normalizedHtml=na;window.prettyPrintOne=Wa;window.prettyPrint=qd;window.PR={createSimpleLexer:fa,registerLangHandler:M,sourceDecorator:P,PR_ATTRIB_NAME:sa,
PR_ATTRIB_VALUE:Z,PR_COMMENT:X,PR_DECLARATION:Ha,PR_KEYWORD:Ja,PR_LITERAL:la,PR_NOCODE:Ga,PR_PLAIN:O,PR_PUNCTUATION:da,PR_SOURCE:ka,PR_STRING:ea,PR_TAG:Y,PR_TYPE:Ka}})()})();(function(){function b(a){this.parentElem=a.parent;this.controlsElem=a.controls;this.contentElem=a.content;if(!(!this.parentElem||!this.controlsElem||!this.contentElem)){b.active[this.index=b.active.length]=this;var f=this;this.toggleElem=jQuery('<img src="images/cleardot.gif">').addClass("collapsible-control").mouseover(function(){var d=jQuery(this);d.addClass("collapsible-hover")}).mouseout(function(){var d=jQuery(this);d.removeClass("collapsible-hover")});this.controlsElem.mousedown(function(){var d=
jQuery(f.toggleElem),c=jQuery(f.contentElem);if(c.is(":visible")){d.addClass("collapsible-plus").removeClass("collapsible-minus");c.hide()}else{d.addClass("collapsible-minus").removeClass("collapsible-plus");c.show()}});if(this.parentElem.is(".closed"))a.opened=false;if(this.parentElem.is(".opened"))a.opened=true;if(a.opened===true)this.toggleElem.addClass("collapsible-minus");else{this.toggleElem.addClass("collapsible-plus");this.contentElem.hide()}this.controlsElem.prepend(this.toggleElem);this.parentElem.addClass("collapsible-done")}}
b.prototype={index:-1,parentElem:null,controlsElem:null,contentElem:null,toggleElem:null};jQuery.extend(b,{active:[],convert:function(){for(var a=jQuery(".collapsible"),f=0;f<a.length;f++)if(!(a[f].className.indexOf("collapsible-done")!=-1)){var d=jQuery(".collapsible-controls",a[f]),c=jQuery(".collapsible-content",a[f]);d.length&&c.length&&new b({parent:jQuery(a[f]),controls:d,content:c})}}});window.CODESITE_collapsible=b;jQuery(function(){CODESITE_collapsible.convert()})})();
