CINXE.COM
<!DOCTYPE html> <html data-nav-highlight-class-name="highlight-global-nav-home"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://twitter.com/","20111213235816","https://web.archive.org/","web","/_static/", "1323820696"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <title>Twitter</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="utf-8"/> <meta name="description" content="Instantly connect to what's most important to you. Follow your friends, experts, favorite celebrities, and breaking news."/> <link rel="dns-prefetch" href="https://web.archive.org/web/20111213235816/https://si0.twimg.com/"/> <link rel="dns-prefetch" href="https://web.archive.org/web/20111213235816/https://api.twitter.com/"/> <script type="text/javascript" charset="utf-8"> document.domain = 'twitter.com'; // this will be copied to twttr.appStartTime once our JS has started up document.startTime = new Date().getTime(); var twttr = {}; twttr.versionName = 'phoenix'; twttr.didPingKeynote = false; twttr.keynoteTTFTPing = function() { if (!twttr.didPingKeynote && window.location.href.indexOf('keynoteTest') > 0) { var image = document.createElement('img'); image.src = '/images/keynote.gif'; twttr.didPingKeynote = true; } } if(!window.console){(function(){var B=["log","debug","info","warn","error","assert","dir","dirxml","group","groupEnd","time","timeEnd","count","trace","profile","profileEnd"];window.console={};for(var A=0;A<B.length;++A){window.console[B[A]]=function(){}}}())}; </script> <script type="text/javascript">(function(){window.setTimeout=window.setTimeout;window.setInterval=window.setInterval;window.WATCH=function(label,block){if(typeof block==="undefined"){block=label;label=undefined}if(typeof label==="string"){WATCH._didExecute[label]=true}WATCH._attempt(this,block)};WATCH._didExecute={};WATCH._reportCount=0;WATCH._reportLimit=25;WATCH._reportInterval=60*1000;WATCH._active=false;WATCH.activate=function(setting){if(typeof setting==="undefined"){setting=true}WATCH._active=setting;extend(WATCH,WATCH._active?WATCH.actives:WATCH.inactives)};WATCH.actives={};WATCH.inactives={};var extend=function(destination,source){for(var key in source){destination[key]=source[key]}};var noop=function(){};WATCH._attempt=function(that,block){if(arguments.length<2){block=that;that=window}if(WATCH._active){try{block.apply(that)}catch(error){WATCH._triggerError(error)}}else{block.apply(that)}};WATCH.inactives.end=noop;WATCH.actives.end=function(label){if(typeof label==="undefined"){throw new Error("WATCH.end() requires a label")}if(WATCH._didExecute[label]){WATCH._didExecute[label]=false}else{if(WATCH._active){WATCH._triggerError(new Error('WATCH.end("'+label+'") called without successful call to WATCH("'+label+'", fn(){...}) - a SyntaxError probably just happened'))}}WATCH._didExecute[label]=false};WATCH.inactives.callback=function(that,callback){return typeof callback==="undefined"?that:callback};WATCH.actives.callback=function(that,callback){if(arguments.length===1){callback=that;that=this}if(typeof callback==="string"){callback=(function(stringVersion){return function(){eval(stringVersion)}}(callback))}var watchedCallback=function(){var that=this,args=arguments,result;WATCH._attempt(function(){result=callback.apply(that,args)});return result};watchedCallback.isWatched=true;return watchedCallback};WATCH._onErrorCallbacks={};WATCH.inactives._addOnError=noop;WATCH.actives._addOnError=function(callback){var unique=WATCH._unique();WATCH._onErrorCallbacks[unique]=callback;return unique};WATCH.inactives._removeOnError=noop;WATCH.actives._removeOnError=function(id){delete WATCH._onErrorCallbacks[id]};WATCH._lastUnique=-1;WATCH._unique=function(){return ++WATCH._lastUnique};WATCH.inactives.jQuery=noop;WATCH.actives.jQuery=function(){WATCH._originalJQueryEventAdd=WATCH._originalJQueryEventAdd||jQuery.event.add;jQuery.event.add=function(){var newArgs=Array.prototype.slice.call(arguments);if(typeof newArgs[2]==="function"){newArgs[2]=WATCH.callback(newArgs[2])}else{if(newArgs&&typeof newArgs[2]==="object"&&newArgs[2].handler){newArgs[2].handler=WATCH.callback(newArgs[2].handler)}}return WATCH._originalJQueryEventAdd.apply(this,newArgs)};WATCH._originalJQueryAjax=WATCH._originalJQueryAjax||jQuery.ajax;jQuery.ajax=function(options){jQuery.each(["complete","error","success"],function(which,key){if(!options[key]){return }options[key]=WATCH.callback(options[key])});return WATCH._originalJQueryAjax.apply(this,arguments)}};WATCH.inactives.undoJQuery=noop;WATCH.actives.undoJQuery=function(){jQuery.event.add=WATCH._originalJQueryEventAdd;jQuery.ajax=WATCH._originalJQueryAjax};WATCH._previousErrors={};var escapeDoubleQuotes=function(string){return string.toString().replace('"','\\"')};var stringifyLite=function(object){var result="{",hasProperty=false;for(var key in object){if(typeof object[key]==="undefined"||object[key]===null){continue}result+=(hasProperty?',"':'"')+escapeDoubleQuotes(key)+'":"'+escapeDoubleQuotes(object[key])+'"';hasProperty=true}return result+"}"};WATCH._scribeError=function(report){if(WATCH._previousErrors[report.error]&&(new Date())-WATCH._previousErrors[report.error]<WATCH._reportInterval){return false}if(WATCH.reportLimit<=WATCH.reportCount){return }WATCH.reportCount++;if(!document.location.hostname.match(/(^(www|api)\.)?twitter\.com$/)){return }WATCH._previousErrors[report.error]=new Date();report.product_name="webclient";report.type="js_error";report.url=window.location.href;report.event_name="test";var isProduction=document.location.hostname.match(/(^(www|api|staging\d+.local)\.)twitter\.com$/)!=null;var scribeHost=isProduction?"scribe.twitter.com":window.location.host;var scribeUrl=(window.location.protocol.match(/s\:$/)?"https":"http")+"://"+scribeHost;scribeUrl+=isProduction?"/":"/scribe";scribeUrl+="?category=client_watch_error&log="+encodeURIComponent(stringifyLite(report))+"&ts="+(new Date()).getTime();(new Image()).src=scribeUrl};WATCH._triggerError=function(error){var reraise=true;var report={error:error};for(var key in WATCH._onErrorCallbacks){try{if(WATCH._onErrorCallbacks[key](report)===false){reraise=false}}catch(callbackError){report.callbackFailure=true}}WATCH._scribeError(report);if(reraise){throw error}};WATCH.inactives.natives=noop;WATCH.actives.natives=function(){window.setInterval=WATCH._watchedSetInterval;window.setTimeout=WATCH._watchedSetTimeout};WATCH.inactives.undoNatives=noop;WATCH.actives.undoNatives=function(){window.setInterval=WATCH._originalSetInterval;window.setTimeout=WATCH._originalSetTimeout};WATCH._originalSetInterval=window.setInterval;WATCH._originalSetTimeout=window.setTimeout;WATCH._watchedSetInterval=function(callback,timeout){var setInterval=WATCH._originalSetInterval;return setInterval(WATCH.callback(callback),timeout)};WATCH._watchedSetTimeout=function(callback,timeout){var setTimeout=WATCH._originalSetTimeout;return setTimeout(WATCH.callback(callback),timeout)};WATCH.activate(false)}());</script> <script type="text/javascript"> </script> <script> function bust () { document.write = ""; window.top.location = window.self.location; setTimeout(function() { document.body.innerHTML = ''; }, 0); window.self.onload = function(evt) { document.body.innerHTML = ''; }; } if (window.top !== window.self) { // are you trying to put self in an iframe? try { if (window.top.location.host) { // this is illegal to access unless you share a non-spoofable document domain // fun times } else { bust(); // chrome executes this } } catch (ex) { bust(); // everyone executes this } } </script> <link href="/web/20111213235816im_/https://twitter.com/phoenix/favicon.ico" rel="shortcut icon" type="image/x-icon"/> <base href="https://web.archive.org/web/20111213235816/https://twitter.com/"/> <link rel="stylesheet" href="https://web.archive.org/web/20111213235816cs_/https://twimg0-a.akamaihd.net/a/1323799153/phoenix/css/phoenix_core_logged_out.bundle.css" type="text/css" media="screen"/> <link rel="canonical" href="https://web.archive.org/web/20111213235816/http://twitter.com/"/> <noscript> <meta http-equiv="refresh" content="0; URL=/web/20111213235816/https://twitter.com/?_twitter_noscript=1"/> </noscript> <script>(function(){var A=document.getElementsByTagName("html")[0];var B=window.location.hash.split("?")[0];var C=B.match(/#/)&&(B.replace(/#[!]?[\/]?/,"")!=="");if(C){A.className+=" remove-prerendered-content"}else{A.className+=" use-prerendered-content";if(A.getAttribute("data-nav-highlight-class-name")){A.className+=" "+A.getAttribute("data-nav-highlight-class-name")}}})();</script> <link rel="stylesheet" href="https://web.archive.org/web/20111213235816cs_/https://twimg0-a.akamaihd.net/a/1323799153/phoenix/css/phoenix_more.bundle.css" type="text/css" media="screen"/> <script>var _gaq=_gaq||[];_gaq.push(["_setAccount","UA-30775-6"],["_trackPageview"],["_setDomainName","twitter.com"]);twttr.didInsertGA=false;twttr.insertGAScriptElement=function(){if(!twttr.didInsertGA){var A=document.getElementsByTagName("script")[0],B=document.createElement("script");B.async=true;B.src=(document.location.protocol=="https:"?"https://web.archive.org/web/20111213235816/https://ssl":"https://web.archive.org/web/20111213235816/http://www")+".google-analytics.com/ga.js";A.parentNode.insertBefore(B,A);twttr.didInsertGA=true}};twttr.trackPageView=function(A){var B=["_trackPageview"];if(A){B.push(A)}_gaq.push(B)};</script> </head> <body class="user-style-twttr logged-out "> <div id="doc"> <div id="top-stuff" class="js-topbar"> <div id="banners" class="js-banners" style="clear:both;"> <div class="banner-outer" id="slow-load-banner"> <div class="banner"> <div class="banner-inside noscript-warning"> <h5>Twitter.com is loading slowly.</h5> <span class="warning">Hmm, this seems to be taking a while. If problems persist, <a href="javascript:window.location.reload(true);">please reload</a> to try again.</span> </div> </div> </div> </div> <div id="top-bar-outer"> <div id="top-bar-bg"></div> <div id="top-bar"> <div class="top-bar-inside"> <div class="static-links"> <div id="logo"> <a href="/web/20111213235816/https://twitter.com/">Twitter</a> </div> <form id="search-form" class="js-search-form" action="/web/20111213235816/https://twitter.com/search" method="GET"> <span class="glass js-search-action"><i></i></span> <input value="" placeholder="Search" name="q" id="search-query" type="text"/> </form> <div id="global-nav"> <ul id="global-actions"> </ul> </div> <div id="sections"></div> </div> <div class="active-links"> <div id="session" class="js-session"> <a id="signin-link" href="/web/20111213235816/https://twitter.com/login"> <em>Have an account?</em> <strong>Sign in</strong><i></i> </a> <a id="signup-link" href="https://web.archive.org/web/20111213235816/https://twitter.com/signup?context=login"> <em>New to Twitter?</em> <strong>Join Today »</strong> </a> <div id="signin-dropdown" class="dropdown dark"> <form action="https://web.archive.org/web/20111213235816/https://twitter.com/sessions?phx=1" class="signin" method="post"> <fieldset class="textbox"> <label class="username js-username"> <span>Username or email</span> <input class="js-username-field" type="text" value="" name="session[username_or_email]" autocomplete="on"/> </label> <label class="password"> <span>Password</span> <input class="js-password-field" type="password" value="" name="session[password]"/> </label> </fieldset> <fieldset class="subchck"> <label class="remember"> <input type="checkbox" value="1" name="remember_me"/> <span>Remember me</span> </label> <button type="submit" class="submit button">Sign in</button> </fieldset> <input type="hidden" name="scribe_log"/> <input type="hidden" name="redirect_after_login" value=""/> <div class="divider"></div> <p> <a class="forgot" href="/web/20111213235816/https://twitter.com/account/resend_password">Forgot password?</a><br/> <a class="mobile" href="/web/20111213235816/https://twitter.com/account/complete">Already using Twitter via SMS?</a> </p> </form> </div> </div> </div> </div> </div> <div id="message-drawer"></div> </div> </div> <div id="page-outer"> <div id="front-container" class="js-front-container"> <div class="leftside"> <h1>Twitter</h1> <h2>Follow your interests</h2> <p>Instant updates from your friends, industry experts, favorite celebrities, and what’s happening around the world.</p> </div> <noscript> <div class="warning"> <strong>Twitter.com makes heavy use of JavaScript.</strong> <em>If you cannot enable it in your browser's preferences, you may have a better experience on our <a href="https://web.archive.org/web/20111213235816/http://m.twitter.com/">mobile site</a>.</em> </div> </noscript> <div class="rightside"> <div class="front-signin js-front-signin"> <form action="https://web.archive.org/web/20111213235816/https://twitter.com/sessions?phx=1" class="signin" method="post"> <fieldset class="textbox"> <div class="holding username"> <input type="text" name="session[username_or_email]" title="Username or email" autocomplete="on"/> <span class="holder">Username</span> </div> <div class="holding password"> <input type="password" name="session[password]" title="Password"/> <span class="holder">Password</span> </div> </fieldset> <fieldset class="subchck"> <label class="remember"> <input type="checkbox" value="1" name="remember_me"/> <span>Remember me</span> </label> <button type="submit" class="submit button">Sign in</button> </fieldset> <input type="hidden" name="scribe_log"/> <input type="hidden" name="redirect_after_login" value=""/> <p> <a class="forgot" href="/web/20111213235816/https://twitter.com/account/resend_password">Forgot it?</a> </p> </form> </div> <div class="front-signup js-front-signup"> <h3>New to Twitter? <em>Join today!</em></h3> <form action="https://web.archive.org/web/20111213235816/https://twitter.com/signup" class="signup signup-btn" method="post"> <div class="holding name"> <input type="text" autocomplete="off" value="" name="user[name]" maxlength="20"/> <span class="holder">Full name</span> </div> <div class="holding email"> <input type="text" autocomplete="off" value="" name="user[email]"/> <span class="holder">Email</span> </div> <div class="holding password"> <input type="password" value="" name="user[user_password]"/> <span class="holder">Password</span> </div> <input type="hidden" value="front" name="context"/> <input type="submit" class="promotional submit button" value="Sign up"/> </form> </div> </div> <div class="bottompart"> <div class="footer inline-list"> <ul> <li><a href="/web/20111213235816/https://twitter.com/about">About</a><span class="dot divider"> ·</span></li> <li><a href="//web.archive.org/web/20111213235816/https://support.twitter.com/">Help</a><span class="dot divider"> ·</span></li> <li><a href="https://web.archive.org/web/20111213235816/http://blog.twitter.com/">Blog</a><span class="dot divider"> ·</span></li> <li><a href="/web/20111213235816/https://twitter.com/download">Mobile</a><span class="dot divider"> ·</span></li> <li><a href="https://web.archive.org/web/20111213235816/http://status.twitter.com/">Status</a><span class="dot divider"> ·</span></li> <li><a href="/web/20111213235816/https://twitter.com/jobs">Jobs</a><span class="dot divider"> ·</span></li> <li><a href="/web/20111213235816/https://twitter.com/tos">Terms</a><span class="dot divider"> ·</span></li> <li><a href="/web/20111213235816/https://twitter.com/privacy">Privacy</a><span class="dot divider"> ·</span></li> <li><a href="//web.archive.org/web/20111213235816/https://business.twitter.com/advertise/start">Advertisers</a><span class="dot divider"> ·</span></li> <li><a href="//web.archive.org/web/20111213235816/https://business.twitter.com/">Businesses</a><span class="dot divider"> ·</span></li> <li><a href="https://web.archive.org/web/20111213235816/http://media.twitter.com/">Media</a><span class="dot divider"> ·</span></li> <li><a href="//web.archive.org/web/20111213235816/https://dev.twitter.com/">Developers</a><span class="dot divider"> ·</span></li> <li><a href="/web/20111213235816/https://twitter.com/about/resources">Resources</a><span class="dot divider"> ·</span></li> <li><span class="copyright">© 2011 Twitter</span></li> </ul> </div> </div> </div> <div id="page-container" class="page-container home-container"> <div id="page-node-home"> </div> </div> </div> <div class="homepage-gradient"></div> <div class="homepage-gold-bar"></div> <div id="message-notifications"></div> </div> <div id="flash-message-storage" style="display:none"></div> <div id="flash-object-container"></div> <div id="off-screen-preload"> <div class="content-fe-sprites"></div> </div> <script type="text/javascript">WATCH('loadrunner', function() { (function(context,document){var useInteractive=context.attachEvent&&!context.opera,scripts=document.getElementsByTagName("script"),uuid=0,scriptTag,scriptTemplate=document.createElement("script"),scriptsInProgress={},modulesInProgress={},loadedModule,currentScript,activeScripts={},oldUsing=context.using,oldProvide=context.provide,oldDefine=context.define,oldLoadrunner=context.loadrunner,pausedScripts={};for(var i=0,s;s=scripts[i];i++){if(s.src.match(/loadrunner\.js(\?|#|$)/)){scriptTag=s;break}}function aug(target){for(var i=1,o;o=arguments[i];i++){for(var key in o){target[key]=o[key]}}return target}function makeArray(o){return Array.prototype.slice.call(o)}var isArray=Array.isArray||function(obj){return obj.constructor==Array};function indexOf(arr,thing){for(var i=0,item;item=arr[i];i++){if(thing==item){return i}}return -1}function path(){var parts=makeArray(arguments),normalized=[];for(var i=0,len=parts.length;i<len;i++){if(parts[i].length>0){normalized.push(parts[i].replace(/\/$/,""))}}return normalized.join("/")}function pushObjPath(obj,path,newobj){var names=path.split("/"),cursor=obj;while(names.length>1){var name=names.shift();cursor=cursor[name]=cursor[name]||{}}cursor[names[0]]=newobj}function Dependency(){}Dependency.prototype.then=function(cb){var dep=this;if(!this.started){this.started=true;this.start()}if(this.completed){cb.apply(context,this.results)}else{this.callbacks=this.callbacks||[];this.callbacks.push(cb)}return this};Dependency.prototype.start=function(){};Dependency.prototype.complete=function(){if(!this.completed){this.results=makeArray(arguments);this.completed=true;if(this.callbacks){for(var i=0,cb;cb=this.callbacks[i];i++){cb.apply(context,this.results)}}}};function Script(path,force){if(path){this.id=this.path=this.resolvePath(path)}this.force=!!force}Script.loaded=[];Script.times={};Script.prototype=new Dependency;Script.prototype.resolvePath=function(path){return whichBundle(path)};Script.prototype.start=function(){var me=this,dep,module;if(module=modulesInProgress[this.id]){module.then(function(){me.complete()});return this}if(dep=scriptsInProgress[this.id]){dep.then(function(){me.loaded()})}else{if(!this.force&&indexOf(Script.loaded,this.id)>-1){this.loaded()}else{this.load()}}return this};Script.prototype.createScriptTag=function(){var me=this,paused;scriptsInProgress[this.id]=me;if(paused=pausedScripts[this.path]){me.then(function(){for(var i=0,d;d=paused[i];i++){d.complete.apply(d,arguments)}})}this.times={start:new Date()};var script=scriptTemplate.cloneNode(false);this.scriptId=script.id="LR"+ ++uuid;script.type="text/javascript";script.async=true;script.onerror=function(){throw new Error(me.path+" not loaded")};script.onreadystatechange=script.onload=function(e){e=context.event||e;if(e.type=="load"||indexOf(["loaded","complete"],this.readyState)>-1){this.onreadystatechange=null;me.loaded()}};script.src=this.path;currentScript=this;scripts[0].parentNode.insertBefore(script,scripts[0]);currentScript=null;activeScripts[script.id]=this};Script.prototype.queueScript=function(){pausedScripts[this.path]=pausedScripts[this.path]||[];pausedScripts[this.path].push(this)};Script.prototype.load=function(force){if(using.autoLoad||force){this.createScriptTag()}else{this.queueScript()}return this};Script.prototype.loaded=function(){this.complete()};Script.prototype.complete=function(){if(indexOf(Script.loaded,this.id)==-1){Script.loaded.push(this.id)}if(this.times){Script.times[this.id]=aug(this.times,{end:new Date()})}delete scriptsInProgress[this.id];Dependency.prototype.complete.apply(this,arguments)};function Module(id,body){this.id=id;this.body=body;if(typeof body=="undefined"){this.path=this.resolvePath(id)}}Module.exports={};Module.prototype=new Script;Module.prototype.resolvePath=function(id){return(whichBundle(id)!=id)?whichBundle(id):path(using.path,id+".js")};Module.prototype.start=function(){var exports,module,me=this,oldCurrent;if(this.body){this.execute()}else{if(exports=Module.exports[this.id]){this.exp(exports)}else{if(module=modulesInProgress[this.id]){module.then(function(exports){me.exp(exports)})}else{modulesInProgress[this.id]=this;this.load()}}}};Module.prototype.loaded=function(){var module,exports,me=this;if(!useInteractive){module=loadedModule;loadedModule=null;module.id=module.id||this.id;module.then(function(exports){me.exp(exports)})}else{if(exports=Module.exports[this.id]){this.exp(exports)}else{if(module=modulesInProgress[this.id]){module.then(function(exports){me.exp(exports)})}}}};Module.prototype.complete=function(){delete modulesInProgress[this.id];Script.prototype.complete.apply(this,arguments)};Module.prototype.execute=function(){var me=this;if(typeof this.body=="object"){this.exp(this.body)}else{if(typeof this.body=="function"){this.body.apply(window,[function(exports){me.exp(exports)}])}}};Module.prototype.exp=function(exports){if(this.times){aug(this.times,{eval:new Date()})}this.complete(this.exports=Module.exports[this.id]=exports||{})};function flattenDeps(deps){var flat=[];for(var i=0,d;d=deps[i];i++){if(d instanceof Sequence){flat=flat.concat(flattenDeps(d.deps))}else{if(d instanceof Module){flat.push(d)}}}return flat}function Collection(deps){this.deps=deps;if(this.deps.length==0){this.complete()}}Collection.prototype=new Dependency;Collection.prototype.start=function(){var me=this;function depComplete(){var results=[];for(var i=0,d;d=me.deps[i];i++){if(!d.completed){return }if(d.results.length>0){results=results.concat(d.results)}}me.complete.apply(me,results)}for(var i=0,d;d=this.deps[i];i++){d.then(depComplete)}return this};Collection.prototype.load=function(){for(var i=0,d;d=this.deps[i];i++){if(d.load){d.load(true)}}return this};Collection.prototype.as=function(cb){var me=this;return this.then(function(){var flatDeps=flattenDeps(me.deps),obj={};for(var i=0,d;d=flatDeps[i];i++){pushObjPath(obj,d.id,arguments[i])}cb.apply(this,[obj].concat(makeArray(arguments)))})};function Sequence(deps){this.deps=deps}Sequence.prototype=new Dependency;Sequence.prototype.start=function(){var me=this,nextDep=0,allResults=[];(function next(){var dep=me.deps[nextDep++];if(dep){dep.then(function(results){if(dep.results.length>0){allResults=allResults.concat(dep.results)}next()})}else{me.complete.apply(me,allResults)}}());return this};Sequence.prototype.load=function(){var me=this,nextDep=0;(function next(){var dep=me.deps[nextDep++];if(dep&&dep.load){dep.load(true).then(function(){next()})}}());return this};function interactiveScript(){for(var i in scripts){if(scripts[i].readyState=="interactive"){return activeScripts[scripts[i].id]}}}function defineModule(name,body){var module;if(!name&&useInteractive){module=currentScript||interactiveScript()}if(module){delete activeScripts[module.scriptId];module.body=body;module.execute()}else{loadedModule=module=new Module(name,body);modulesInProgress[module.id]=module}return module}function provide(){var args=makeArray(arguments),name,body;if(typeof args[0]=="string"){name=args.shift()}body=args.shift();return defineModule(name,body)}function amdResolve(id,mod){var from=mod.id||"";var parts=from.split("/");parts.pop();var dir=parts.join("/");return id.replace(/^\./,dir)}function amdMap(args,mod){var mapped=[];function require(id){return Module.exports[amdResolve(id,mod)]}for(var i=0,len=args.length;i<len;i++){if(args[i]=="require"){mapped.push(require);continue}if(args[i]=="exports"){mod.exports=mod.exports||{};mapped.push(mod.exports);continue}mapped.push(require(args[i]))}return mapped}function amdDefine(){var args=makeArray(arguments),dependencies=[],id,factory;if(typeof args[0]=="string"){id=args.shift()}if(isArray(args[0])){dependencies=args.shift()}factory=args.shift();var mod=defineModule(id,function(exports){var mods=[];function executeAMD(){var args=amdMap(makeArray(dependencies),mod),exported;if(typeof factory=="function"){exported=factory.apply(mod,args)}else{exported=factory}if(typeof exported=="undefined"){exported=mod.exports}exports(exported)}for(var i=0,len=dependencies.length;i<len;i++){var d=dependencies[i];if(indexOf(["require","exports"],d)==-1){mods.push(amdResolve(d,mod))}}if(mods.length>0){using.apply(this,mods.concat(executeAMD))}else{executeAMD()}});return mod}amdDefine.amd={};function using(){var deps=makeArray(arguments),callback;if(typeof deps[deps.length-1]=="function"){callback=deps.pop()}var combi=new Collection(mapDependencies(deps));if(callback){combi.then(callback)}return combi}function mapDependencies(deps){var mapped=[];for(var i=0,dep;dep=deps[i];i++){if(typeof dep=="string"){dep=createDependency(dep)}if(isArray(dep)){dep=new Sequence(mapDependencies(dep))}mapped.push(dep)}return mapped}function createDependency(id){var m,dep;for(var i=0,matcher;matcher=using.matchers[i];i++){var regex=matcher[0],factory=matcher[1];if(m=id.match(regex)){return factory(id)}}throw new Error(id+" was not recognised by loader")}var loadrunner=function(f){return f(using,provide,loadrunner,amdDefine)};function noConflict(){context.using=oldUsing;context.provide=oldProvide;context.define=oldDefine;context.loadrunner=oldLoadrunner;return loadrunner}loadrunner.Script=Script;loadrunner.Module=Module;loadrunner.Collection=Collection;loadrunner.Sequence=Sequence;loadrunner.Dependency=Dependency;loadrunner.noConflict=noConflict;context.loadrunner=loadrunner;context.using=using;context.provide=provide;context.define=amdDefine;using.path="";using.autoLoad=true;using.bundles=[];var whichBundleMemo={};function whichBundle(id){if(typeof whichBundleMemo[id]!="undefined"){return whichBundleMemo[id]}for(var manifestId=0;manifestId<using.bundles.length;manifestId++){for(var bundleId in using.bundles[manifestId]){if(bundleId!=id&&indexOf(using.bundles[manifestId][bundleId],id)>-1){whichBundleMemo[id]=bundleId;return bundleId}}}whichBundleMemo[id]=id;return id}using.matchers=[];using.matchers.add=function(regex,factory){this.unshift([regex,factory])};using.matchers.add(/(^script!|\.js$)/,function(path){var script=new Script(path.replace(/^\$/,using.path.replace(/\/$/,"")+"/").replace(/^script!/,""),false);script.id=path;return script});using.matchers.add(/^[a-zA-Z0-9_\-\/]+$/,function(id){return new Module(id)});if(scriptTag){using.path=scriptTag.getAttribute("data-path")||scriptTag.src.split(/loadrunner\.js/)[0]||"";if(main=scriptTag.getAttribute("data-main")){using.apply(context,main.split(/\s*,\s*/)).then(function(){})}}}(this,document)); loadrunner(function(D,C,B,E){function A(F){this.id=this.path=F}A.inProgress=[];A.done=[];A.prototype=new B.Dependency;A.prototype.start=function(){var F=this,G;if(G=A.done[this.id]){this.complete(G.result)}else{if(G=A.inProgress[this.id]){G.then(function(){F.complete(G.result)})}else{A.inProgress[this.id]=this;this.load()}}};A.prototype.load=function(){var H,F=this;if(window.XMLHttpRequest){H=new window.XMLHttpRequest()}else{try{H=new window.ActiveXObject("Microsoft.XMLHTTP")}catch(G){return new Error("XHR not found.")}}H.onreadystatechange=function(){if(H.readyState==4){F.result=H.responseText;A.done[F.id]=F;delete A.inProgress[F.id];F.complete(F.result)}};H.open("GET",this.path,true);H.send(null)};D.matchers.add(/^json!/,function(F){return new A(F.substring(5))})}); loadrunner(function(D,C,B,E){function A(F){this.id=this.path=F}A.inProgress=[];A.done=[];A.prototype=new B.Dependency;A.prototype.start=function(){var F=this,G;if(G=A.done[this.id]){this.complete(G.result)}else{if(G=A.inProgress[this.id]){G.then(function(){F.complete(G.result)})}else{A.inProgress[this.id]=this;this.load()}}};A.prototype.load=function(){var F=this;D("lib/lazyload",function(G){if($("link[href='"+F.path+"']").length>0){H()}else{G.css(F.path,H)}function H(){A.done[F.id]=F;delete A.inProgress[F.id];F.complete()}})};D.matchers.add(/^css!/,function(G){var F;G=G.replace(/^css!/,"");F=/^(https?:)?\/\//.test(G);return new A(G.replace(/^\//,(!F&&D.cssPath||"").replace(/\/$/,"")+"/"))})}); loadrunner(function(F,E,A,G){function B(H,I){for(var J=0,K;K=H[J];J++){if(I==K){return J}}return -1}function D(I){var H;if(I.charAt(0)==">"){I=I.substring(1)}if(H=C.inProgress[I]){H.complete();delete C.inProgress[I]}C.done.push(I)}var C=function(H){this.id=H};C.inProgress=[];C.done=[];C.prototype=new A.Dependency;C.prototype.start=function(){var I,H=this;if(B(C.done,this.id)!=-1){this.complete()}else{if(I=C.inProgress[this.id]){I.then(function(){H.complete()})}else{C.inProgress[this.id]=this}}};F.matchers.add(/^>/,function(H){return new C(H.substring(1))});window.signal=D}); });</script><script>WATCH.end('loadrunner');</script> <script type="text/javascript">WATCH('javascript_logged_out', function() { function miniScribe(eName,more,cat){ var log=[],cat=cat||'client_event',more=more||{};more.event_name=eName;for(var k in more){log.push('"'+k+'":"'+more[k]+'"');}; (new Image()).src='//web.archive.org/web/20111213235816/https://scribe.twitter.com/scribe?category='+encodeURIComponent(cat)+'&log='+encodeURIComponent('{'+log.join(',')+'}')+'&ts='+(+new Date); } (function(){function C(M,L){var K=M.tagName?M:document.getElementById(M);return L?K.getElementsByTagName(L):K}function J(P,O,N){for(var L=P.length-1;L>=0;L--){var M=P[L].className,K=M&&M.match(O);if(K){N.call(P[L],K[1])}}}function I(K,L){return(K.className=K.className.replace(" "+L,""))}function F(K,L){return(K.className=I(K,L)+" "+L)}var D=document.body,H=document.getElementById("doc"),B;if(!location.href.match(/#!\/./)){I(D,"user-style-twttr loading-body");F(D,"front-page");miniScribe("web:front:::impression",{context:"front"});window._scribedFrontImpression=true}else{if(B=location.href.match(/#!?\/(login|download)(\/|$)/)){F(H,"route-"+B[1])}}var G=C(H,"div"),E="hasome";J(G,/holding/,function(){var M=this,K=C(M,"input")[0],L=C(M,"span")[0];if(K&&L){L.onclick=function(){K.focus()};K.onblur=function(){if(!K.value.length){I(M,E)}};K.onkeydown=function(N){setTimeout(function(){if((N&&N.keyCode===8)||K.value.length){F(M,E)}else{I(M,E)}},0)}}});window.setInterval(function(){J(G,/holding/,function(){var K=C(this,"input")[0];if(K&&K.value.length){F(this,E)}})},1111);var A={signin:"web:front:login_callout:form:login_click",signup:"web:front:signup_callout:form:signup_click",search:"web:front:main:search_field:search",language:"web:front:footer:language_selector:select"};J(G,/js-front-(signin|signup|search|language)/,function(L){var M=C(this,"form"),K=A[L];if(M&&M[0]){M[0].onsubmit=function(){if(!C(H).className.match("route-front")){miniScribe(K)}}}})}()); });</script> <script type="text/javascript">WATCH.end('javascript_logged_out');</script> <script>WATCH('boot', function() { using.cssPath = 'https://web.archive.org/web/20111213235816/https://twimg0-a.akamaihd.net/a/1323799153/'; using.path = 'https://web.archive.org/web/20111213235816/https://twimg0-a.akamaihd.net/a/1323799153/phoenix/js'; using.autoLoad = false; // Load bluejs modules from their own modpath, in /bluejs using.matchers.add(/^bluejs/, function(id) { var mod = new loadrunner.Module(id); mod.path = '/' + id + '.js'; return mod; }); provide("boot/init",function(C){var A={add:function(J,K){if(!K){K=new Date()}twttr.bootTimings.data.push({name:J,timestamp:K})},data:[],done:function(){twttr.bootTimings.add=twttr.bootTimings.done=$.noop;$.each(loadrunner.Script.times,function(J,K){$.each(K,function(L,M){twttr.bootTimings.data.push({name:["bundle",J,L].join(" "),timestamp:M})})});twttr.Profiler.logDataSet("Boot",twttr.appStartTime,twttr.bootTimings.data);twttr.bootTimings=null}};function G(K){for(var J in K){if(K.hasOwnProperty(J)){twttr[J]=K[J]}}}function H(L){twttr.bootTimings&&twttr.bootTimings.add("bootstrap_data process start");G(L.twttr);signal(">payload");if(L.boomr){using(L.boomr).load().then(function(){delete BOOMR.plugins.RT;BOOMR.init({allow_ssl:true,autorun:false,user_ip:L.remoteIP,BW:{base_url:twttr.hosts.local+"/images/boomerang/"}});using(">setupComplete","util").as(function(M){BOOMR.page_ready();BOOMR.subscribe("before_beacon",function(Q){if(!Q.bw){return }var O=parseInt(Q.bw/1024,10);var P=parseInt((Q.bw_err*100)/Q.bw,10);var N=parseInt((Q.lat_err*100)/Q.lat,10);scribble("measurement",{load_time_ms:Q.t_done,bandwidth_kbytes:O,bandwidth_error_percent:P,latency_ms:Q.lat,latency_error_percent:N,product:"webclient"},"boomerang");if(M.util.params()["boomr"]){twttr.showMessage("Bandwidth: "+M.util.addCommas(O)+" KB/s ± "+P+"%<br />Latency: "+Q.lat+" ms ± "+Q.lat_err,true)}})})})}if(L.countryCode){twttr.countryCode=L.countryCode}if(L.countries){twttr.countries=L.countries;if(twttr.countryCode){for(var K=0,J=twttr.countries.length;K<J;K++){if(twttr.countries[K].code==twttr.countryCode){twttr.countries[K].selected=true}}}}if(L.pageLocaleJS){twttr.bootTimings&&twttr.bootTimings.add("i18n fetch start");using(L.pageLocaleJS).load().then(function(){twttr.bootTimings&&twttr.bootTimings.add("i18n fetch finish");signal(">languageData")})}else{signal(">languageData")}using(">defaultViews",twttr.bundleMore,function(){if(L.showWelcomeBanner){(new twttr.views.WelcomeToPhoenixBanner()).render($("#banners"),"append")}if(L.flashNotice){twttr.showMessage(L.flashNotice,true)}});using(">decider",function(){twttr.decider._updateFeatures(L.deciderFeatures,true)});using(">ab_decider",function(){twttr.abdecider._updateExperiments(L.abBuckets,true)});using(">api_ready",function(){twttr.API.setConfig({postAuthenticityToken:L.postAuthenticityToken});$("input.authenticity_token").val(L.postAuthenticityToken);var P=L.requestCacheSeedData;for(var N=0,M=P.length;N<M;++N){var O=P[N];twttr.API._requestCache.inject(O.api_request_name,O.options,O.json,1)}signal(">request_cache_seeded");if(L.homeTimelineFetchSize){twttr.API.homeTimelineFetchSize=L.homeTimelineFetchSize}});twttr.bootTimings&&twttr.bootTimings.add("bootstrap_data process finish")}function D(){if(twttr.loggedIn){twttr.bootTimings&&twttr.bootTimings.add("initCurrentUser start");using("boot/bootstrap_data",">request_cache_seeded",function(J){twttr.API.User.current({error:function(){window.location.reload(true)},success:function(K){twttr.currentUser=K;for(var L in J.userProperties){twttr.currentUser.sync(L,J.userProperties[L]||false)}twttr.bootTimings&&twttr.bootTimings.add("initCurrentUser finish");signal(">allCurrentUserDataLoaded")}})})}else{signal(">allCurrentUserDataLoaded")}}function F(J){var K=new Date();using(J).load().then(function(){var L=new Date();using("boot/bootstrap_data",function(){twttr.Profiler.logPreviousEvent("twttr.bundles fetched",K,L)})})}function E(O){var K=false;function J(){if(!K){setTimeout(function(){twttr.keynoteTTFTPing();K=true;O()},0)}}function N(){setTimeout(J,0)}var L=document.getElementById("stream-items-id");if(!L){O();return }if(L.clientHeight>0){N();return }function M(){L.onresize=null;N()}L.onresize=M}function I(K){for(var J in K){return false}return true}function B(N){if(!N){return }var K=document.getElementById("slow-load-banner");if(!K){return }var J;function M(){clearTimeout(J);$(K).remove();twttr.app.recalculatePadding()}function L(){K.style.display="block";setTimeout(function(){K.style.height="60px"})}J=setTimeout(L,N);twttr.bundleCore&&using(twttr.bundleCore,M)}C({init:function(L){if(L.renderedOnServer){var J=document.getElementsByTagName("html")[0];var P=J.className.match(/highlight-global-nav-([a-z]+)/);if(L.twttr.loggedIn&&P){var K="global-nav-"+P[1];document.getElementById(K).className+=" active"}else{if(J.className.match(/remove-prerendered-content/)){document.getElementById("page-outer").className=document.getElementById("page-outer").className.replace("flush-to-top","");var N=document.getElementById("page-container");N.className=N.className.replace("home-container","");N.innerHTML="";signal(">wokeUp");L.renderedOnServer=false}}J.className=J.className.replace("use-prerendered-content","").replace("remove-prerendered-content","");if(J.getAttribute("data-nav-highlight-class-name")){J.className=J.className.replace(J.getAttribute("data-nav-highlight-class-name"),"");J.removeAttribute("data-nav-highlight-class-name")}}if(L.disablePhoenix){B(L.loadTimeoutInterval);return }G(L.twttr);twttr.appStartTime=document.startTime;twttr.geo=twttr.geo||{};twttr.session=twttr.session||{};twttr.session.impressionId=twttr.appStartTime+Math.random();twttr.isLocalhost=location.hostname.match(/localhost\.twitter\.com/);if(twttr.allScribeEvents){try{twttr.allScribeEvents=JSON.parse(localStorage.twttrAllScribeEvents)||[]}catch(O){twttr.allScribeEvents=[]}}twttr.bootTimings=L.profiling?A:null;for(var M=0;M<L.loadrunnerAssets.length;M++){using.bundles.push(L.loadrunnerAssets[M])}if(L.loadrunnerAssets.length==1&&I(L.loadrunnerAssets[0])){using.autoLoad=true}B(L.loadTimeoutInterval);twttr.proto=window.location.protocol.replace(":","");twttr.isSSL=function(){return twttr.proto==="https"};twttr.createIframe=function(R,Q){var U=document.createElement("div");U.innerHTML='<iframe tabindex="-1" role="presentation" style="position:absolute;top:-9999px;" src="'+R+'"></iframe>';var S=U.firstChild;var T=function(){Q.apply(S,arguments)};S.addEventListener?S.addEventListener("load",T,false):S.attachEvent("onload",T);document.body.insertBefore(S,document.body.firstChild);return S};if(!L.inline_bootstrap_data){provide("boot/bootstrap_data",function(Q){var R=[];R.push("json!/account/bootstrap_data"+window.location.search+(window.location.search?"&":"?")+"r="+Math.random());if(typeof JSON==="undefined"){R.push(twttr.bundleCore)}twttr.bootTimings&&twttr.bootTimings.add("bootstrap_data fetch start");using(R,function(T){twttr.bootTimings&&twttr.bootTimings.add("bootstrap_data fetch finish");var S=JSON.parse(T);Q(S)})})}F(L.assets);using(twttr.bundleCore,function(){twttr.anywhere.remote={};using("bluejs/api",function(Q){twttr.API=Q;twttr.API.setConfig({cacheObjects:true,includeEntities:true});twttr.extendAPI();signal(">api_ready");using(">request_cache_seeded",function(){D()})})});using(L.setupDependencies,function(){twttr.bootTimings&&twttr.bootTimings.add("setup start");jQuery.ready();twttr.setup(L.renderedOnServer);twttr.bootTimings&&twttr.bootTimings.add("setup finish");signal(">setupComplete");var Q=function(){using(twttr.bundleMore).load()};if($.browser.msie&&(parseInt($.browser.version,10)<=8)){E(Q)}else{Q()}});using(twttr.bundleMore,function(){signal(">allCodeLoaded")});using("boot/bootstrap_data",H);twttr.createIframe(L.pReceiverURL,function(){var Q=this;using(twttr.bundleCore,function(){twttr.anywhere.remote.server=Q;twttr.anywhere.api.util.RemoteRequest.flush()})})}})}); using('boot/init', function(boot) { var data = {"inline_bootstrap_data":false,"loadTimeoutInterval":10000,"setupDependencies":["\u003EallCurrentUserDataLoaded","\u003Erequest_cache_seeded","bundle\/phoenix-core","\u003ElanguageData"],"profiling":false,"disablePhoenix":false,"renderedOnServer":true,"sandboxes":{"jsonp":"https:\/\/web.archive.org\/web\/20111213235816\/https:\/\/si0.twimg.com\/a\/1323799153\/jsonp_sandbox.html","detailsPaneContent":"https:\/\/web.archive.org\/web\/20111213235816\/https:\/\/si0.twimg.com\/a\/1323799153\/details_pane_content_sandbox.html"},"twttr":{"bundleMore":"bundle\/phoenix-more","domains":{"remote":"api.twitter.com","local":"twitter.com","upload":"upload.twitter.com"},"placeDataPrefix":"https:\/\/web.archive.org\/web\/20111213235816\/http:\/\/geo.l3.twitter.com\/places\/autocomplete_places-","hosts":{"remote":"https:\/\/web.archive.org\/web\/20111213235816\/https:\/\/api.twitter.com","local":"https:\/\/web.archive.org\/web\/20111213235816\/https:\/\/twitter.com","upload":"https:\/\/web.archive.org\/web\/20111213235816\/https:\/\/upload.twitter.com"},"bundleCore":"bundle\/phoenix-core","remoteIP":"50.129.121.240","loggedIn":false,"expando":false,"requestFullCity":"us,il,dekalb","isT1":false},"loadrunnerAssets":[{"https:\/\/web.archive.org\/web\/20111213235816\/https:\/\/twimg0-a.akamaihd.net\/b\/1\/bundle\/sandbox-en-201112131036.js":["bundle\/sandbox"],"https:\/\/web.archive.org\/web\/20111213235816\/https:\/\/twimg0-a.akamaihd.net\/b\/1\/bundle\/ie6-en-201112131036.js":["bundle\/ie6"],"https:\/\/web.archive.org\/web\/20111213235816\/https:\/\/twimg0-a.akamaihd.net\/b\/1\/bundle\/signup-en-201112131036.js":["bundle\/signup"],"https:\/\/web.archive.org\/web\/20111213235816\/https:\/\/twimg0-a.akamaihd.net\/b\/1\/bundle\/phoenix-more-en-201112131036.js":["bundle\/phoenix-more"],"https:\/\/web.archive.org\/web\/20111213235816\/https:\/\/twimg0-a.akamaihd.net\/b\/1\/bundle\/phoenix-core-en-201112131036.js":["bundle\/phoenix-core"]}],"assets":["bundle\/phoenix-core"],"pReceiverURL":"https:\/\/web.archive.org\/web\/20111213235816\/https:\/\/api.twitter.com\/receiver.html"}; boot.init(data); }); });</script><script>WATCH.end('boot');</script> <!--[if lte IE 6]> <script>using('bundle/ie6').load();</script> <![endif]--> </body> </html> <!-- FILE ARCHIVED ON 23:58:16 Dec 13, 2011 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 10:37:06 Nov 25, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.732 exclusion.robots: 0.031 exclusion.robots.policy: 0.019 esindex: 0.011 cdx.remote: 6.384 LoadShardBlock: 202.178 (6) PetaboxLoader3.datanode: 118.395 (7) PetaboxLoader3.resolve: 178.092 (2) load_resource: 153.559 -->