<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Scott Forsyth&amp;#39;s Blog</title><subtitle type="html">Postings on IIS, ASP.NET, SQL Server, Webfarms and general system admin.</subtitle><id>http://weblogs.asp.net/owscott/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/owscott/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2009-01-07T21:46:00Z</updated><entry><title>The SID Myth</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/11/03/the-sid-myth.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/11/03/the-sid-myth.aspx</id><published>2009-11-04T04:40:17Z</published><updated>2009-11-04T04:40:17Z</updated><content type="html">&lt;p&gt;Amazing! &lt;/p&gt;  &lt;p&gt;Admins, myself included, have worried about the machine SID for years and years.&amp;#160; Way back it was ghosting, now it’s with virtualization.&amp;#160; We made sure to create a new SID after creating servers from server images.&lt;/p&gt;  &lt;p&gt;It turns out that this has been a non-issue all of this time, a non-issue that everyone, Microsoft, &lt;a href="http://blogs.technet.com/markrussinovich" target="_blank"&gt;Mark Russinovich&lt;/a&gt; and administrators all over bought into for over a dozen years.&lt;/p&gt;  &lt;p&gt;A few weeks back I heard rumor that Mark Russinovich was going to expire NewSID.&amp;#160; I figured it was because there were just too many SID references to keep track of that he wasn’t going to maintain that tool forever.&amp;#160; It turns out that it’s for a completely different reason.&lt;/p&gt;  &lt;p&gt;The &lt;strong&gt;machine&lt;/strong&gt; SID does &lt;strong&gt;not &lt;/strong&gt;have to be unique for security reasons, and Microsoft applications don’t depend on it in their usage.&amp;#160; Mark’s blog post here covers all of the details:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.technet.com/markrussinovich/archive/2009/11/03/3291024.aspx" href="http://blogs.technet.com/markrussinovich/archive/2009/11/03/3291024.aspx"&gt;http://blogs.technet.com/markrussinovich/archive/2009/11/03/3291024.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;However, it’s important to note the difference between machine SIDs and domain SIDs.&amp;#160; Additionally the machine name must be different, and the domain controllers themselves can’t have the same SID as any member servers.&lt;/p&gt;  &lt;p&gt;I am watching this thread with interest because situations do arise where people run into issues with WSUS and other tools where generating a new SID resolves their issues.&amp;#160; However Mark’s comments suggest that it’s related to the domain SID or the domain controller having the same SID as the members.&amp;#160; &lt;/p&gt;  &lt;p&gt;If, after some burn-in time, this is confirmed to be the case, it will save a lot of work that administrators spend considerable time worrying about . . . apparently needlessly.&lt;/p&gt;  &lt;p&gt;Read the post, it covers it in great details.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7246485" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author><category term="Windows Server" scheme="http://weblogs.asp.net/owscott/archive/tags/Windows+Server/default.aspx" /></entry><entry><title>Web Deployment Tool released to web (RTW)</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/10/08/web-deployment-tool-released-to-web-rtw.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/10/08/web-deployment-tool-released-to-web-rtw.aspx</id><published>2009-10-09T04:12:39Z</published><updated>2009-10-09T04:12:39Z</updated><content type="html">&lt;p&gt;The final release of the &lt;a href="http://www.iis.net/extensions/WebDeploymentTool" target="_blank"&gt;Web Deployment Tool&lt;/a&gt; (aka Web Deploy or MsDeploy) has been released to the web.&amp;#160; This is likely more significant than many people realize.&amp;#160; &lt;/p&gt;  &lt;p&gt;At first glance, Web Deploy seems like a tool for system administrators to copy sites and settings between servers (IIS6 to IIS6, IIS6 to IIS7 and IIS7 to IIS7).&amp;#160; It does do that, including SSL, COM, GAC, ACLs, registry, content and more.&lt;/p&gt;  &lt;p&gt;However, Web Deploy is likely to become a major deployment method for developers too.&amp;#160; Visual Studio 2010 will have native support for Web Deploy, offering the ability to deploy a entire website with the single-click feature of VS2010.&amp;#160; What’s also impressive is that it’s so lightening fast.&amp;#160; Only the file changes are copied to the server rather than an entire push like you would normally see with FTP.&amp;#160; Furthermore, everything is over SSL, making it a highly secure technology.&lt;/p&gt;  &lt;p&gt;It doesn’t stop there.&amp;#160; Web Deploy extends IIS and addresses some of the common limitations of remote delegated management in IIS.&amp;#160; With the Web Deployment Tool properly configured by a web host or system administrator, it’s possible to mark folders as applications with IIS Manager and even recycle, stop or start app pools.&lt;/p&gt;  &lt;p&gt;At &lt;a href="http://www.orcsweb.com" target="_blank"&gt;ORCS Web&lt;/a&gt;, we’ve installed this on all of our IIS7 Shared Server solutions so that our customers can enjoy Web Deploy.&amp;#160; Until Visual Studio 2010 comes out, IIS 7 Manager is the best tool to leverage Web Deploy features.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Taking Web Deploy for a Spin&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;To try it out you’ll need a web host or server that supports the Web Deployment Tool.&amp;#160; Using the information provided by your server administrator (or web host), connect remotely to IIS 7 using IIS Manager. &lt;/p&gt;  &lt;p&gt;Once connected, you will likely get prompted to install some add-ons.&amp;#160; Confirm that you want them and approve the install.&amp;#160; Don’t let the install fool you.&amp;#160; You *must* still install Web Deploy separately since the IIS Manager install doesn’t include everything necessary.&amp;#160; Go to the &lt;a href="http://www.iis.net/extensions/WebDeploymentTool" target="_blank"&gt;Web Deployment Tool page&lt;/a&gt; and download the Web Deployment Tool and install on your local computer.&amp;#160; Only the UI components are necessary on the client side.&amp;#160; When completed make sure to restart IIS Manager.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Recycling and managing Application Pools&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Once you’ve connected and have the Web Deployment Tool installed, you can start to manage your website through IIS Manager in ways not previously possible.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_46310AE5.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_08547369.png" width="528" height="205" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Clicking on “Recycle…” will give another screen allowing you to choose between 4 options:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_4E65307C.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_1B28F713.png" width="370" height="317" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Hopefully your host or system administrator makes sure that you aren’t sharing the app pool with any other sites, otherwise you will indirectly impact them.&amp;#160; Note that these features are only available if your host or administrator supports them.&amp;#160; At &lt;a href="http://www.orcsweb.com" target="_blank"&gt;ORCS Web&lt;/a&gt;, we support all features shown in the blog post.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Marking/Setting and Removing Applications&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Notice that you can also delete an Application and Content, or if you right-click on a normal folder, you can convert it to an application, as shown in the following image:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_6BF70B7B.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_041A75D7.png" width="538" height="191" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Deploying Website&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The actual copy features of the Web Deployment Tool aren’t quite as easy, but they aren’t too bad when you understand the concepts.&amp;#160; The power of the Web Deployment Tool will make much more sense with Visual Studio 2010, but I’ll detail here how to deploy your website using IIS Manager and the Web Deployment Tool.&lt;/p&gt;  &lt;p&gt;First, you need to “export” whatever site you want to deploy, then you “import” it where you want to deploy it to.&lt;/p&gt;  &lt;p&gt;To export your site, right-click on the root of the site or any application and select Deploy –&amp;gt; Export Application.&amp;#160; You cannot export a normal folder without first converting to an application. The export step is likely your local site that you want to deploy to the web.&lt;/p&gt;  &lt;p&gt;Follow the wizard and make any changes that you need.&amp;#160; There are a number of changes and customizations that you can do, although it’s likely that not all of them will be supported by your web host or server administrator.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_5F1CB55D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_6E03E477.png" width="524" height="397" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Press Next –&amp;gt; Next.&amp;#160; When you’re prompted for the filename, save to somewhere on your computer and give it a .zip extension.&amp;#160; For example c:\MySite.zip.&lt;/p&gt;  &lt;p&gt;Now you have a bundled package of your site which the Web Deployment Tool will use on the Import step.&lt;/p&gt;  &lt;p&gt;After you’ve created the package, select the destination, which is likely the site or vdir on the remote web server.&amp;#160; By now, you know the drill.&amp;#160; Right-click –&amp;gt; Deploy –&amp;gt; Import Application.&amp;#160; Select the file that you just saved to your local computer.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_24918FBC.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_42236ABB.png" width="524" height="397" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Press Next and you’ll be presented with a similar screen to what you received during the export.&amp;#160; You can edit this for your particular deployment.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_152E07E0.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_03FA2A3D.png" width="524" height="398" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Press Next and you’ll be given a choice of the subfolder that you will create during this deployment.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_5AA2E23E.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_0CBA0CBC.png" width="524" height="398" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After pressing Next, your site will be deployed to the server.&amp;#160; If you have a large site, only changed will be copied to the server on subsequent deployments.&lt;/p&gt;  &lt;p&gt;I expect that the Web Deployment Tool will be used a lot more in months to come.&amp;#160; The tool itself works behind the scenes but it will be leveraged from tools like IIS Manager, Visual Studio and likely many more in the coming days.&amp;#160; Keep an eye on this tool since we may see more of it.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7225918" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author><category term="IIS" scheme="http://weblogs.asp.net/owscott/archive/tags/IIS/default.aspx" /><category term="IIS7" scheme="http://weblogs.asp.net/owscott/archive/tags/IIS7/default.aspx" /></entry><entry><title>Hyper-V – getting host information from the guest VM</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/10/08/hyper-v-getting-host-information-from-the-guest-vm.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/10/08/hyper-v-getting-host-information-from-the-guest-vm.aspx</id><published>2009-10-08T21:01:06Z</published><updated>2009-10-08T21:01:06Z</updated><content type="html">&lt;p&gt;Sometimes it’s necessary to find out host machine information from a particular guest virtual machine.&lt;/p&gt;  &lt;p&gt;With Hyper-V Integration Services installed, the following registry key contains information about the Host server:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 5px; background-color: #f1f1f1; padding-left: 5px; padding-right: 5px; color: #000000; border-top: gray 1px solid; border-right: gray 1px solid; padding-top: 5px"&gt;HKLM\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Some keys of interest are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;HostName &lt;/li&gt;    &lt;li&gt;PhysicalHostName &lt;/li&gt;    &lt;li&gt;PhysicalHostNameFullyQualified&lt;/li&gt;    &lt;li&gt;VirtualMachineName&lt;/li&gt;    &lt;li&gt;Plus a number of settings about the Host Server’s version &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This is maintained in real-time.&amp;#160; For example, if you rename the virtual machine name in Hyper-V, VirtualMachineName is immediately updated in the guest server, assuming that it’s running.&amp;#160; And, even if it’s not running at the time that you rename the server in the host, it will be reflected when powering on the VM or restoring from a saved state.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7225757" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author><category term="Hyper-V" scheme="http://weblogs.asp.net/owscott/archive/tags/Hyper-V/default.aspx" /></entry><entry><title>Keyboard Shortcuts in Windows 7</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/09/29/keyboard-shortcuts-in-windows-7.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/09/29/keyboard-shortcuts-in-windows-7.aspx</id><published>2009-09-29T20:34:14Z</published><updated>2009-09-29T20:34:14Z</updated><content type="html">&lt;p&gt;Keyboard shortcuts can be huge time savers, so I’ve been pleased to see the many additional shortcuts and mouse movements supported with Windows 7.&amp;#160; &lt;/p&gt;  &lt;p&gt;This is a quick blog post on a couple favorites of mine.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_6B546B18.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_30208F4D.png" width="534" height="43" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;When you have a program already opened on the taskbar and you want to open a new instance of that program rather than displaying the already opened instance, Shift-Click.&amp;#160; This will start a new instance.&amp;#160; I use it all the time for applications like Chrome and Notepad.&lt;/li&gt;    &lt;li&gt;Use the Windows key plus a number to open a program.&amp;#160; For example, I have Chrome as my 2nd icon so Win-2 will always open Chrome.&lt;/li&gt;    &lt;li&gt;If you want to open a new instance using your keyboard use Shift-Win-2.&lt;/li&gt;    &lt;li&gt;Be sure to pin your favorite icons to the Task Bar, and your secondary icons to the top of the Start menu.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Here are some links to more good shortcuts:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windows7news.com/2009/03/22/master-list-of-windows-7-keyboard-shortcuts/"&gt;http://windows7news.com/2009/03/22/master-list-of-windows-7-keyboard-shortcuts/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lifehacker.com/5132073/the-best-new-windows-7-keyboard-shortcuts"&gt;http://lifehacker.com/5132073/the-best-new-windows-7-keyboard-shortcuts&lt;/a&gt; (includes video)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7220132" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author><category term="Windows 7" scheme="http://weblogs.asp.net/owscott/archive/tags/Windows+7/default.aspx" /></entry><entry><title>Windows Server 2008 R2 DNS Issues</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/09/15/windows-server-2008-r2-dns-issues.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/09/15/windows-server-2008-r2-dns-issues.aspx</id><published>2009-09-15T21:46:00Z</published><updated>2009-09-15T21:46:00Z</updated><content type="html">&lt;P&gt;I&amp;nbsp;recently upgraded my home Windows Server 2008 Domain Controller to R2.&amp;nbsp; The upgrade process itself wasn’t too much work but was a bit more than ‘next, next, finish’ because the AD schema needed to be updated and the installer required that WSUS be uninstalled first.&amp;nbsp; But, those weren’t a big deal.&lt;/P&gt;
&lt;P&gt;However, after the install, I got the strangest behavior.&amp;nbsp; Visiting some websites like &lt;A href="http://www.microsoft.com/" mce_href="http://www.microsoft.com"&gt;www.microsoft.com&lt;/A&gt;, &lt;A href="http://www.bing.com/" mce_href="http://www.bing.com"&gt;www.bing.com&lt;/A&gt;, &lt;A href="http://www.windowsupdate.com/" mce_href="http://www.windowsupdate.com"&gt;www.windowsupdate.com&lt;/A&gt; and a number of other Microsoft websites didn’t work.&amp;nbsp; However, other websites worked perfectly.&amp;nbsp; In fact, &lt;A href="http://www.google.com/" mce_href="http://www.google.com"&gt;www.google.com&lt;/A&gt; still worked.&amp;nbsp; It’s almost as if Microsoft decided they didn’t want to grow their search engine market share anymore and would start blocking their visitors. :)&lt;/P&gt;
&lt;P&gt;What made it even more confusing was that if I viewed the errors in my browser, it timed out and gave a DNS error. However, if I pinged the DNS name, it worked.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;(feel free to skip to the bottom for the fix if you don’t want to read the details)&lt;/P&gt;
&lt;P&gt;I did some searching and didn’t find an answer (although now that I know what search terms to look for, I see that others have run into this now).&amp;nbsp; I tried all the basic troubleshooting methods to no avail.&lt;/P&gt;
&lt;P&gt;I skimmed some R2 release notes I found and I saw that there were EDns (EDNS0) changes with R2 but it was pretty vague.&amp;nbsp; EDns is a relatively new DNS protocol extension that is still coming of age.&amp;nbsp; Later I realized that I was on to something here.&lt;/P&gt;
&lt;P&gt;I realized that I would need to fire up Network Monitor to get the story.&amp;nbsp; After running Network Monitor, an issue was immediately apparent as seen from the following screen shot snippet:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/owscott/image_0484E416.png" mce_href="http://weblogs.asp.net/blogs/owscott/image_0484E416.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://weblogs.asp.net/blogs/owscott/image_thumb_43E297A6.png" width=511 height=151 mce_src="http://weblogs.asp.net/blogs/owscott/image_thumb_43E297A6.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;First, I wondered why my search for bing.com returned search.ms.com.edgesuite.net.&amp;nbsp; The answer to that wasn’t hard to find.&amp;nbsp; Those are the DNS names of the Akamai CDN which Microsoft uses for a lot of their sites.&amp;nbsp; The real issue there is the “Response – Format error”.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I looked at the request and the results for a while and it seemed straight forward, so I did a network trace on a working server and found that R2 added some extra information.&amp;nbsp; Notice the bottom line of the following image with the “AdditionalRecord:&amp;nbsp; of type OPT on class Unknown DNSClass”.&amp;nbsp; The network trace on the working server &lt;STRONG&gt;didn’t&lt;/STRONG&gt; have that.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/owscott/image_0E69D581.png" mce_href="http://weblogs.asp.net/blogs/owscott/image_0E69D581.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://weblogs.asp.net/blogs/owscott/image_thumb_098721C5.png" width=519 height=365 mce_src="http://weblogs.asp.net/blogs/owscott/image_thumb_098721C5.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;So, I knew at this point that R2 was adding something that the Akamai DNS servers didn’t like.&amp;nbsp; I did a search for OPT and discovered that OPT is used in EDns.&amp;nbsp; I found a registry setting called EnableEDNSProbes which disables EDNS when set to 0.&amp;nbsp; After setting that and restarting the DNS Server service, everything worked perfectly.&amp;nbsp; I set it back again and it stopped working, so I knew I had narrowed it down.&lt;/P&gt;
&lt;P&gt;While searching for information on EDns, I discovered that some DNS servers will attempt to make a EDNS probe, and if it fails then it will try again with a plain query.&amp;nbsp; That allows it to always work regardless of the support of the other DNS servers.&amp;nbsp; However, after testing I found that Microsoft DNS doesn’t do that.&amp;nbsp; EDNS can either be ‘on’ or ‘off’.&amp;nbsp; Bummer, I thought that was a good idea.&lt;/P&gt;
&lt;P&gt;Testing further I discovered that it’s not enabled by default on Windows Server 2008 RTM.&amp;nbsp; I tried on another R2 server that wasn’t in production yet and confirmed that the issue appeared there too.&amp;nbsp; So, the issue wasn’t that something changed with EDns, it’s simply that it was enabled in R2 for the first time.&lt;/P&gt;
&lt;P&gt;The reason that it failed in the web browser but worked with a ping is because the browser followed a redirect and failed on the redirected address and not the original address.&amp;nbsp; The ping didn’t follow the redirect so the failure never occurred.&lt;/P&gt;
&lt;P&gt;It appears that the same issue occured when Windows Server 2003 was released: &lt;A href="http://support.microsoft.com/kb/832223"&gt;http://support.microsoft.com/kb/832223&lt;/A&gt;.&amp;nbsp; I don't remember that occuring and being a big deal so I suspect that Microsoft must have made changes to the default with later service packs or hot fixes.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Conclusion&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;It appears that the Internet isn’t fully up to date and ready to use EDns quite yet.&amp;nbsp; The solution for this is to disable EDns and wait another year or two until Akamai and other DNS servers catch up, or Microsoft releases a hot fix to support the failback option I mentioned above.&lt;/P&gt;
&lt;P&gt;Note that this isn’t a problem for most Windows Server 2008 R2 member servers.&amp;nbsp; It’s only a problem for DNS *servers* that do recursive lookups.&amp;nbsp; i.e. likely only your domain controller will be affected if that is where your DNS Server role exists.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Fix&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;To disable EDns, you can do it from the command prompt, or by editing the registry.&lt;/P&gt;
&lt;P&gt;From the command prompt, no restart of DNS is required.&amp;nbsp; If from the registry, make sure to restart the DNS Server service.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Command prompt:&amp;nbsp; &lt;/EM&gt;&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: gray 1px solid; BORDER-LEFT: gray 1px solid; PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #f1f1f1; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; COLOR: #000000; BORDER-TOP: gray 1px solid; BORDER-RIGHT: gray 1px solid; PADDING-TOP: 5px"&gt;dnscmd /config /EnableEDNSProbes 0&lt;/DIV&gt;
&lt;P&gt;No restart is needed.&amp;nbsp; It takes effect immediately.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;or Registry: &lt;/EM&gt;&amp;lt;/&amp;gt;&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: gray 1px solid; BORDER-LEFT: gray 1px solid; PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #f1f1f1; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; COLOR: #000000; BORDER-TOP: gray 1px solid; BORDER-RIGHT: gray 1px solid; PADDING-TOP: 5px"&gt;Create a DWORD called EnableEDNSProbes and set to 0 in HKLM\SYSTEM\CurrentControlSet\services\DNS\Parameters &lt;BR&gt;&lt;/DIV&gt;
&lt;P&gt;Restart the DNS Server service for it to take effect.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7207150" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author><category term="Windows 64-bit" scheme="http://weblogs.asp.net/owscott/archive/tags/Windows+64-bit/default.aspx" /><category term="Windows Server" scheme="http://weblogs.asp.net/owscott/archive/tags/Windows+Server/default.aspx" /></entry><entry><title>Understanding Reverse Proxy Servers – and the Mailman</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/08/08/understanding-reverse-proxy-servers-and-the-mailman.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/08/08/understanding-reverse-proxy-servers-and-the-mailman.aspx</id><published>2009-08-08T19:46:00Z</published><updated>2009-08-08T19:46:00Z</updated><content type="html">&lt;P&gt;Ok, the goal isn’t to learn about the mailman, but he’s going to come in handy later.&lt;/P&gt;
&lt;P&gt;Proxy servers have been around since the early days of computing and they play a large role on the web today: sometimes obvious, sometimes not.&amp;nbsp; They can be used for good or they can be used for harm, like man-in-the-middle attacks.&amp;nbsp; Today I want to provide a visual representation of a reverse proxy server used for load balancing.&amp;nbsp; I also want to address some concepts and potential issues and solutions that often come up with proxy based load balancing.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Definition&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Proxy&lt;/EM&gt;: &lt;A href="http://dictionary.reference.com/browse/proxy" target=_blank mce_href="http://dictionary.reference.com/browse/proxy"&gt;Dictionary.com&lt;/A&gt;: “the agency, function, or power of a person authorized to act as the deputy or substitute for another.”&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Proxy server&lt;/EM&gt;: &lt;A href="http://en.wikipedia.org/wiki/Proxy_server" target=_blank mce_href="http://en.wikipedia.org/wiki/Proxy_server"&gt;Wikipedia&lt;/A&gt;: In computer networks, a proxy server is a server (a computer system or an application program) that acts as a go-between for requests from clients seeking resources from other servers.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Reverse Proxy&lt;/EM&gt;: &lt;A href="http://en.wikipedia.org/wiki/Reverse_proxy" target=_blank mce_href="http://en.wikipedia.org/wiki/Reverse_proxy"&gt;Wikipedia&lt;/A&gt;: A reverse proxy or surrogate is a proxy server that is installed in a server network. Typically, reverse proxies are used in front of Web servers.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The proxy server drawn out&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This can be easily represented with the following diagrams.&amp;nbsp; This is oversimplifying the meaning slightly, but it communicates the essence of forward and reverse proxies.&lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=2&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;
&lt;P align=center&gt;&lt;STRONG&gt;Proxy Server&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top&gt;
&lt;P align=center&gt;&lt;STRONG&gt;Reverse Proxy Server&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;&lt;A href="http://weblogs.asp.net/blogs/owscott/Proxy_5515FA94.jpg" mce_href="http://weblogs.asp.net/blogs/owscott/Proxy_5515FA94.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=Proxy border=0 alt=Proxy src="http://weblogs.asp.net/blogs/owscott/Proxy_thumb_424176EA.jpg" width=264 height=216 mce_src="http://weblogs.asp.net/blogs/owscott/Proxy_thumb_424176EA.jpg"&gt;&lt;/A&gt; &lt;/TD&gt;
&lt;TD vAlign=top&gt;&lt;A href="http://weblogs.asp.net/blogs/owscott/ReverseProxy_62C8B69C.jpg" mce_href="http://weblogs.asp.net/blogs/owscott/ReverseProxy_62C8B69C.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=ReverseProxy border=0 alt=ReverseProxy src="http://weblogs.asp.net/blogs/owscott/ReverseProxy_thumb_63A11C86.jpg" width=264 height=216 mce_src="http://weblogs.asp.net/blogs/owscott/ReverseProxy_thumb_63A11C86.jpg"&gt;&lt;/A&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;The difference between a forward and reverse proxy server is essentially where it lives and who it targets.&amp;nbsp; If it’s on the perimeter of the client’s network (like a corporate network or ISP) then it’s a proxy server.&amp;nbsp; If it sits in front of servers or devices on the web (like in a data center) then it’s a reverse proxy server.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Proxy servers can be used for any numbers of applications, some of them include:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Forward Proxy Server Examples&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Caching web pages to increase the &lt;EM&gt;perceived&lt;/EM&gt; speed of the internet.&amp;nbsp; AOL has been known over the years for their poor implementation of proxy servers for their users.&amp;nbsp; Many corporate networks use proxies successfully. &lt;/LI&gt;
&lt;LI&gt;Filtering to ensure that inappropriate or unapproved content isn’t allowed to the end user.&amp;nbsp; These are common in corporate environments, schools and colleges. A NetNanny-type of product functions as a proxy server/service. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Reverse Proxy Server Examples&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Caching content for performance for a web server at the data center.&amp;nbsp; Speeds up a website for all users of that website. &lt;/LI&gt;
&lt;LI&gt;Load balancing a few servers to distribute load.&amp;nbsp; Allows scalability or redundancy. &lt;/LI&gt;
&lt;LI&gt;Webpage treatments for client-side performance gains. &lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As you can see, there are many reasons for proxy servers, and they are in operation all over the web.&amp;nbsp; It’s possible that a proxy server is being used for you to see this website right now.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Direct Server Return&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I want to briefly mention another type of method used by some load balancers, called Direct Server Return (DSR). It’s helpful to contrast this with a Proxy Server.&lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=2 width=400&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=400&gt;
&lt;P align=center&gt;&lt;STRONG&gt;Load Balancer using Direct Server Return&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=400&gt;&lt;A href="http://weblogs.asp.net/blogs/owscott/ProxyDSR_1D242C7E.jpg" mce_href="http://weblogs.asp.net/blogs/owscott/ProxyDSR_1D242C7E.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=ProxyDSR border=0 alt=ProxyDSR src="http://weblogs.asp.net/blogs/owscott/ProxyDSR_thumb_6C04F1DD.jpg" width=281 height=211 mce_src="http://weblogs.asp.net/blogs/owscott/ProxyDSR_thumb_6C04F1DD.jpg"&gt;&lt;/A&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;Notice that the load balancer isn’t as aggressive as the ones in the previous diagrams.&amp;nbsp; It passes on the request from the client to the web server and then it minds its own business and stays out of the rest of the communication.&amp;nbsp; In fact, with this solution, the web server barely even realizes that the load balancer played a role.&amp;nbsp; In this role, a load balancer is not taking the role of a reverse proxy server.&amp;nbsp; It does not stand in the middle for the whole process.&lt;/P&gt;
&lt;P&gt;Additionally, even though routers and switches are middle-men between the client and server, they are not considered proxy devices either.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Reverse Proxy Servers and Load Balancers&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Now on to the main points that I want to cover.&amp;nbsp; Recently I’ve started to work with Microsoft’s new &lt;A href="http://www.iis.net/extensions/ApplicationRequestRouting" target=_blank mce_href="http://www.iis.net/extensions/ApplicationRequestRouting"&gt;Application Request Routing&lt;/A&gt; (ARR) load balancer which I’ve been extra impressed with.&amp;nbsp; I plan to post more over time on how to really leverage this as a full blown flexible, stable and scalable load balancing solution.&amp;nbsp; Over the last few years I’ve been using DSR based load balancers for the most part.&amp;nbsp; As a result of working with ARR, I’ve run into a few concepts and addressed a few issues that I want to cover here.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The Mailman as a Proxy&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The biggest issue that comes up with proxying requests is that it’s nearly impossible for the proxy (or reverse proxy) server to stay hidden.&amp;nbsp; Consider the mailman who delivers mail to your house each day.&amp;nbsp; He’s not the original sender, but he’s the person that, at first glance, appears to be the sender.&amp;nbsp; How many jokes are made of the mailman building a romantic relationship with the wife?&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/owscott/Mailman_13AB6E08.jpg" mce_href="http://weblogs.asp.net/blogs/owscott/Mailman_13AB6E08.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=Mailman border=0 alt=Mailman src="http://weblogs.asp.net/blogs/owscott/Mailman_thumb_75412D1E.jpg" width=448 height=303 mce_src="http://weblogs.asp.net/blogs/owscott/Mailman_thumb_75412D1E.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The mailman is a type of proxy.&amp;nbsp; The trick is to make sure that you can tell who the original sender is, and that you don’t get confused and give the mailman credit for a letter that’s not from him.&amp;nbsp; You certainly don’t want your love letters to your spouse or significant other being credited to the wrong person.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;In the case of the mailman, there is some evidence of the postal system proxying the mail, in the form of markings in the top right corner.&amp;nbsp; However the larger markings are the ‘return’ and ‘to’ addresses.&amp;nbsp; It’s important for the receiver to understand which markings to pay attention to and which to ignore.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The Proxy Server Leaves a Mark&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;When a server acts as a proxy, it will change some of the request headers.&amp;nbsp; In particular, the headers to watch for are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;REMOTE_ADDR &lt;/LI&gt;
&lt;LI&gt;REMOTE_HOST &lt;/LI&gt;
&lt;LI&gt;Some proxy servers can also off-load SSL, which means that it will proxy from SSL to HTTP.&amp;nbsp; In that case SERVER_PORT and some certification headers come into play. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;In the case of IIS and the web server, it will try to set REMOTE_ADDR and REMOTE_HOST to the IP of the proxy server.&amp;nbsp; Any code that depends on these headers will get confused.&amp;nbsp; For example, if you check for blog spam by client IP, you may check REMOTE_ADDR from code.&amp;nbsp; With the proxy server in-between, it will appear that all traffic comes from a single IP.&amp;nbsp; Additionally the web server will log the traffic as coming from the proxy server.&lt;/P&gt;
&lt;P&gt;To avoid this impacting affect caused by the proxy server, it’s necessary to rewrite all relevant header and log information back again so that it appears to come from the original sender.&amp;nbsp; This can be done various different ways, but I’ll cover a common method, and how ARR handles this.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;ARR’s Header Rewriting&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;With ARR, this can be handled one of four ways:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Ignore the issue.&amp;nbsp; Some people don’t have any site features that depend on knowing the client IP, and they are fine with not knowing the client IP in their site statistics.&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;Update your code to use the custom headers that ARR sets, namely X-Original-URL, X-Forwarded-For, X-ARR-SSL, X-ARR-LOG-ID.&amp;nbsp; This won’t address the IIS logs, but it can address everything else. &lt;/LI&gt;
&lt;LI&gt;ARR Helper.&amp;nbsp; Anil Ruia, one of the primary ARR developers, has written a helper module that works in IIS7 to rewrite the relevant headers back.&amp;nbsp; The &lt;A href="http://blogs.iis.net/anilr/archive/2009/03/03/client-ip-not-logged-on-content-server-when-using-arr.aspx" target=_blank mce_href="http://blogs.iis.net/anilr/archive/2009/03/03/client-ip-not-logged-on-content-server-when-using-arr.aspx"&gt;ARR Helper&lt;/A&gt; module is not officially supported by Microsoft, but works like a charm.&amp;nbsp; ARR itself will place the original client’s site in a configurable request header, which is X-Forwarded-For by default.&amp;nbsp; It will also place certificate information for SSL offloading in X-ARR-SSL.&amp;nbsp; On the actual web server, the ARR Helper runs silently in the background and will rewrite those headers back to REMOTE_ADDR, REMOTE_HOST, SSL and REMOTE_PORT.&amp;nbsp; It will also ensure that the logs recover the original client IP.&amp;nbsp; It’s installed at the server level and doesn’t have any impact on non-load balanced sites and performance overhead is negligible (for load balanced or non-load balanced).&amp;nbsp; We’re running this in production at &lt;A href="http://www.orcsweb.com/" target=_blank mce_href="http://www.orcsweb.com"&gt;ORCS Web&lt;/A&gt; and are very pleased with the results.&amp;nbsp; No code changes are necessary for the site owner. &lt;/LI&gt;
&lt;LI&gt;With ARR and URL Rewrite 2.0, currently in Beta, it can also do the same thing.&amp;nbsp; ARR itself takes care of the writing on the ARR server, and URL Rewrite 2.0 can rewrite the X-Headers back to the appropriate locations.&amp;nbsp; URL Rewrite 2.0 needs to be installed and configured on each of the web servers.&amp;nbsp; Currently I’m running this in testing only since version 2.0 does not have a go-live license, but the end goal is to use URL Rewrite for the web server rewriting.&amp;nbsp; While Anil’s solution works perfectly, this will be the Microsoft supported solution moving forward. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;In future blog posts, I hope to dig deeper into ARR technically, but I wanted to lay the groundwork first on the concept of proxying, and what you need to consider by having a middle man between the client and web server.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7164528" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author><category term="IIS" scheme="http://weblogs.asp.net/owscott/archive/tags/IIS/default.aspx" /><category term="IIS7" scheme="http://weblogs.asp.net/owscott/archive/tags/IIS7/default.aspx" /></entry><entry><title>Creating WinPE with Integration Services for Hyper-V</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/06/28/creating-winpe-with-integration-services-for-hyper-v.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/06/28/creating-winpe-with-integration-services-for-hyper-v.aspx</id><published>2009-06-28T21:50:34Z</published><updated>2009-06-28T21:50:34Z</updated><content type="html">&lt;p&gt;At &lt;a href="http://www.orcsweb.com" target="_blank"&gt;ORCS Web&lt;/a&gt;, we’re using System Center Configuration Manager (SCCM) with Microsoft Deployment Toolkit (MDT) and have it set to deploy new images to physical or virtual hardware.&amp;#160; &lt;/p&gt;  &lt;p&gt;Most everything works great, but the one thing I’ve wanted to get working is to add the Hyper-V Integration services to the Boot Image (WinPE in this case) so that 1) the regular Network Adapter (not the Legacy adapter) works and 2) there is mouse support right from the beginning.&amp;#160; Once the boot image is created, the Hyper-V virtual machine can have the .ISO image mounted as bootable media.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Note that PXE boot with Hyper-V still requires the legacy network adapter (as far as I’ve been able to determine anyway).&amp;#160; The better way to go is to use bootable media that can be mounted to the VM as a virtual CD/DVD drive. I’ll set out to cover how to do that here.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;The following three links got me going in the right direction.&amp;#160; However, it appears that the vmguest.iso file changed from when they wrote their blog posts until now, so I used different files then they did:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.technet.com/mniehaus/archive/2008/09/13/using-the-hyper-v-integration-components-with-mdt-2008-update-1-lite-touch.aspx" target="_blank"&gt;http://blogs.technet.com/mniehaus/archive/2008/09/13/using-the-hyper-v-integration-components-with-mdt-2008-update-1-lite-touch.aspx&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.technet.com/deploymentguys/archive/2008/06/12/adding-hyper-v-integration-components-to-winpe-using-mdt-2008.aspx" target="_blank"&gt;http://blogs.technet.com/deploymentguys/archive/2008/06/12/adding-hyper-v-integration-components-to-winpe-using-mdt-2008.aspx&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/mikester/archive/2008/05/30/using-the-hyper-v-integration-components-in-winpe.aspx" target="_blank"&gt;http://blogs.msdn.com/mikester/archive/2008/05/30/using-the-hyper-v-integration-components-in-winpe.aspx&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Here are the key steps:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Go to an existing Hyper-V VM and insert the Integration Services Setup Disk. This is easiest with a server which you have already installed the Integration Services on so that you will have your mouse for the remaining steps.      &lt;br /&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_2A0F828F.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_2BFCD198.png" width="425" height="316" /&gt;&lt;/a&gt;&amp;#160; &lt;/li&gt;    &lt;li&gt;Don’t run the installation now.&amp;#160; Instead, use Windows Explorer and navigate to the new drive and the &lt;em&gt;Support &lt;/em&gt;folder.&amp;#160; There are 2 subfolders: amd64 and x86.&amp;#160; To create your 32-bit image, use the x86 folder.&amp;#160; To create your 64-bit image, use the amd64 folder (even if it’s Intel 64-bit).&amp;#160; I created two folders on my SCCM server.&amp;#160; One for x86 and one for x64. &lt;/li&gt;    &lt;li&gt;Simply double click on the .cab file to view the contents.&amp;#160; The file will be named Windows6.0-HyperVIntegrationServices-x64.cab or Windows6.0-HyperVIntegrationServices-x86.cab. &lt;/li&gt;    &lt;li&gt;Copy the contents of that cab file to your SCCM server.&amp;#160; I do it over a UNC network path, but you can use whatever means of copying that you prefer.&amp;#160; You don’t need all of the files in the cab, but it’s a small cab and easiest just to copy everything over.      &lt;br /&gt;      &lt;br /&gt;&lt;em&gt;&lt;strong&gt;Note: Now that you have the drivers, add them to your boot image.&amp;#160; You can use whatever method that you use for your boot image, but I’ll include instructions for SCCM here.          &lt;br /&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;Fire up Configuration Manager Console (ConfigMgr Console). &lt;/li&gt;    &lt;li&gt;Expand Site Database (your instance) / Computer Management / Operation System Deployment. &lt;/li&gt;    &lt;li&gt;Right-click on &lt;em&gt;Drivers&lt;/em&gt; and click &lt;em&gt;Import&lt;/em&gt;. The &lt;em&gt;Import New Driver Wizard&lt;/em&gt; appears. &lt;/li&gt;    &lt;li&gt;In the &lt;em&gt;Locate Driver &lt;/em&gt;step, point to the folder where you copied the cab contents to.&amp;#160; Run this twice, once for 32-bit and once for 64-bit. &lt;/li&gt;    &lt;li&gt;In the next step I imported all drivers even though I only use 4 on a later step.&amp;#160; I figured that I may use them for something else in the future.&amp;#160; So, leave everything checked. &lt;/li&gt;    &lt;li&gt;Assign a category that mentions the bitness of the drivers so that you can tell the difference later. &lt;/li&gt;    &lt;li&gt;In the &lt;em&gt;Add Driver to Packages&lt;/em&gt; step, create a new package or assign to an existing package. &lt;/li&gt;    &lt;li&gt;Don’t do anything on the &lt;em&gt;Add Driver to Boot Images&lt;/em&gt; step since we don’t want all of the drivers assigned to the boot images.&amp;#160; Click Next. &lt;/li&gt;    &lt;li&gt;Click Next to finish the Driver import.      &lt;br /&gt;      &lt;br /&gt;&lt;em&gt;Now that the drivers are imported into SCCM, you need to add them to your boot image&lt;/em&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;In the Drivers section of SCCM, find and select the following drivers for either x86 or x64:      &lt;ol&gt;       &lt;li&gt;Microsoft Virtual Machine Bus Network Adapter (for network support) &lt;/li&gt;        &lt;li&gt;Microsoft Virtual Machine Bus Input Device Miniport (for mouse support) &lt;/li&gt;        &lt;li&gt;Virtual Machine Bus (I’m not sure if this is needed, but I added it anyway) &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Right-click and click &lt;em&gt;Add or Remove Drivers to Boot Images&lt;/em&gt;. &lt;/li&gt;    &lt;li&gt;Check the boot image that you want to add to and click &lt;em&gt;Update distribution points when finished.&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;Finally, recreate your boot media.&amp;#160; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Now you will be able to install an OS on a Hyper-V VM using the regular network adapter and mouse support.&lt;/p&gt;  &lt;p&gt;As a side, I hoped that I could use x64 boot media and install both x64 and x86 operating systems.&amp;#160; That would save me from choosing between the images as long as the hardware supports x64.&amp;#160; Unfortunately it didn’t appear to work.&amp;#160; I ran into driver issues later in the install process.&amp;#160; I’m not saying that someone else can’t get it figured.&amp;#160; It may be possible to embed the x86 drivers into the x64 boot image, but I didn’t take it that far. What I did prove is that configuring the x86 and x64 images identically wouldn’t allow the x64 boot image to deploy an x86 OS.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7136078" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author></entry><entry><title>Visual Studio 2010 1-Click Publishing</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/06/06/visual-studio-2010-1-click-publishing.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/06/06/visual-studio-2010-1-click-publishing.aspx</id><published>2009-06-06T19:42:03Z</published><updated>2009-06-06T19:42:03Z</updated><content type="html">&lt;p&gt;When it comes to deploying websites, many developers and companies have unique and creative ways to handle deployment.&amp;#160; While some have fully workable solutions, I believe that there is a lot of room for growth to bring powerful and straight forward publishing tools to the masses and to support mature publishing methods for simple and complex sites alike.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" target="_blank"&gt;Visual Studio 2010&lt;/a&gt; introduces 1-Click Publishing which, along with Web Deploy, makes some nice strides in this area.&lt;/p&gt;  &lt;p&gt;VS 2010 supports 4 methods of publishing content.&amp;#160; They are: MSDeploy Publish, FTP, File System, FPSE.&amp;#160; Let’s talk briefly about each:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;a href="http://www.iis.net/extensions/WebDeploymentTool" target="_blank"&gt;MSDeploy&lt;/a&gt; Publish: &lt;/em&gt;&lt;/strong&gt;this is the subject of this blog post and will be covered in more depth below.&amp;#160; At it’s core, MSDeploy, aka Web Deployment Tool, is a command line tool used for deploying websites and settings.&amp;#160; It can deploy or migrate website content, website settings, ACLs, COM, GAC and registry settings.&amp;#160; As you can assume, the administrator on the target machine can specify which settings are allowed to be pushed.&amp;#160; This is the foundation of many impressive deployment tools that we should expect to see coming out of Microsoft in the coming months and years.&amp;#160; Visual Studio takes away the command line complexity of MSDeploy and provides the ability to deploy with a single click.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;FTP:&lt;/em&gt;&lt;/strong&gt; File Transfer Protocol has been around since the early days of the internet but has always had one major shortcoming—security.&amp;#160; There are ways to make it security using SFTP (SSH FTP), FTPS (FTP over TLS/SSL) and some other methods, but the FTP protocol at its core is a plain text protocol, including the authentication (username/password).&amp;#160; Recently we’ve seen a lot of progress for FTPS within Microsoft so that servers and tools support it, so be sure to use a secure method of FTP whenever possible.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;File System: &lt;/em&gt;&lt;/strong&gt;If you are on the same network or using a VPN connection to the destination web server then you can use the File System method of publishing.&amp;#160; This uses straight xcopy to push the content directly to the destination location.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;FPSE:&lt;/em&gt;&lt;/strong&gt; FrontPage Server Extensions.&amp;#160; FPSE has 2 aspects.&amp;#160; One is the extensions part which were introduced with the Internet was fairly young, to support things like hit counters, email components and other bots.&amp;#160; Some developers that develop with FrontPage use these.&amp;#160; The other aspect of FPSE is publishing.&amp;#160; FPSE offers a secure method of publishing content to a web server.&amp;#160; However, FPSE has been plagued with security and difficult configuration issues over the years and, to my relief, I believe it’s on the way out.&amp;#160; However, VS 2010 still offers support for pushing with FPSE, so if your destination servers supports FPSE, you do have this publishing technology available to you.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The remainder of this blog post is a simple walkthrough on publishing using MSDeploy, which can be done over HTTPS, providing much better security than plain text FTP.&amp;#160; The host or production servers need to support MSDeploy.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Playground&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.orcsweb.com" target="_blank"&gt;ORCS Web&lt;/a&gt; has worked with Microsoft to provide a &lt;a href="http://www.orcsweb.com/hosting/vs2010beta.aspx" target="_blank"&gt;testing account&lt;/a&gt; so that you can try out MSDeploy completely free of charge.&amp;#160; This promotion is available for a few months starting in June 2009.&amp;#160; Vishal Joshi has &lt;a href="http://vishaljoshi.blogspot.com/2009/06/aspnet-4-beta1-msdeploy-rc1-hosting-for.html" target="_blank"&gt;formally announced&lt;/a&gt; this plan also. If you want to try out the publish feature covered here, but don’t want to setup and configure a production server, sign up for one of these accounts.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Publish Web Tool (using MSDeploy Publish)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You can access the Publish Web Tool either by the top menu: Build –&amp;gt; Publish {project name} or from the Publish menu:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_3AD5E3B0.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_348F0D22.png" width="318" height="51" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Open the Publish Web tool to get started.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_62E892CF.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_0BD3A7D9.png" width="345" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The tool should look like this, but the fields will change with the different Publish Methods.&amp;#160; We’ll just cover MSDeploy Publish here.&lt;/p&gt;  &lt;p&gt;If you don’t have the information from your host or server admin team, make sure to obtain that now.&amp;#160; I’ll cover the fields and what they mean here:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;Profile Name: &lt;/em&gt;&lt;/strong&gt;(at the top)&lt;strong&gt;&lt;em&gt; &lt;/em&gt;&lt;/strong&gt;This is the friendly name that you provide to reference your deployment profile.&amp;#160; Visual Studio 2010 supports up to 50 profiles.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;Publish Method: &lt;/em&gt;&lt;/strong&gt;These are the 4 methods mentioned above: MSDeploy Publish, FTP, File System and FPSE.&amp;#160; &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;Service URL: &lt;/em&gt;&lt;/strong&gt;This is the MSDeploy URL that your administrator or host provides.&amp;#160; It will be something like https://ServerNameOrIP:8172/MsDeploy.axd&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;Site/Application: &lt;/em&gt;&lt;/strong&gt;This is the IIS site name, but it’s more than that.&amp;#160; Within this field you can specify a sub folder(s) where your project will be deployed.&amp;#160; Your host or administrator will likely provide the root path that you have access to, for example SiteName or SiteName/vdir.&amp;#160; But you can optionally be more specific in the path, like so: SiteName/ProjectName.&amp;#160; The root Site/Application name must be exactly the name of&amp;#160; the destination IIS Site (plus optionally the application).&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;Mark as IIS application on destination: &lt;/em&gt;&lt;/strong&gt; If you set a sub folder for the “Site/Application” field and check this checkbox, it will mark the folder as an application root when publishing.&amp;#160; Your host/administrator must support this on the destination server.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;Do not delete extra files on destination:&lt;/em&gt;&lt;/strong&gt;&amp;#160; If this is &lt;strong&gt;unchecked&lt;/strong&gt; it will first delete everything from the destination folder before publishing the new content.&amp;#160; You will likely only want this unchecked for the initial deployment and then have it checked every time after that, until you want to start fresh.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;Allow Untrusted Certificate:&lt;/em&gt;&lt;/strong&gt;&amp;#160; The certificate that your host/administrator uses may be a self-signed certificate or it may be for a different name than the URL.&amp;#160; Only check this if your host or administrator instructs. &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;User Name &lt;/em&gt;&lt;/strong&gt;and &lt;strong&gt;&lt;em&gt;Password:&amp;#160; &lt;/em&gt;&lt;/strong&gt;This is the username and password used to connect to IIS, likely provided by your host/administrator.&amp;#160; &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;Save password:&amp;#160; &lt;/em&gt;&lt;/strong&gt;This goes without saying.&amp;#160; It’s up to you whether you have Visual Studio save your password or not.&amp;#160; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Once you’ve filled out the fields, you can &lt;strong&gt;&lt;em&gt;Publish &lt;/em&gt;&lt;/strong&gt;immediately or Save so that you can publish later.&lt;/p&gt;  &lt;p&gt;If all is setup correctly, you can publish by clicking the &lt;strong&gt;&lt;em&gt;Publish&lt;/em&gt;&lt;/strong&gt; button, or from the 1-Click Publish button.&amp;#160; The 1-Click Publish feature is literally that: after setup, when you make a change that you want to publish to the web, just click that one icon and it will take care of the deployment.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_6DD599E4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_59504A66.png" width="316" height="37" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In my opinion, the most impressive feature of MSDeploy is that it only publishes the changes between the source and destination location.&amp;#160; If you have a 2GB site but only changed 2 files, when you click Publish, it will deploy only the changes, very rapidly.&amp;#160; Additionally, from a network and server utilization perspective, MSDeploy is much faster and efficient than IIS FTP.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Shortcoming – error reporting &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The biggest shortcoming that I find is regarding the error reporting when something goes wrong.&amp;#160; VS 2010 doesn’t expose to you very much information about the errors.&amp;#160; Most error information is available to the host administrator on the destination server.&amp;#160; If you receive an error that isn’t clear, double check each of the fields.&amp;#160; The most common failure is related simply to incorrect information.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;There’s more, but not here and now.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Visual Studio’s Publish feature has a lot more.&amp;#160; The two other most significant features are the Database Publishing and MSDeploy’s Transform feature so that your web.config settings can be changed as they are published.&lt;/p&gt;  &lt;p&gt;I’m not going to cover them here and no though, but I’ll provide some useful links below which cover all of these features in more detail.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Links.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The best walkthroughs and information on MSDeploy and Visual Studio’s 1-Click Publish feature likely comes from &lt;a href="http://vishaljoshi.blogspot.com/" target="_blank"&gt;Vishal Joshi&lt;/a&gt;.&amp;#160; He’s a program Manager with Microsoft for these technologies and is an authoritative source of information.&amp;#160; Start with this blog post: &lt;a href="http://vishaljoshi.blogspot.com/2009/05/web-1-click-publish-with-vs-2010.html" target="_blank"&gt;Web 1-Click Publish with VS 2010&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.bradygaster.com" target="_blank"&gt;Brady Gaster&lt;/a&gt;, lead developer at ORCS Web, has also put together an &lt;a href="http://www.bradygaster.com/post/ORCS-Web-Visual-Studio-2010-Beta-Hosting-Walk-through.aspx" target="_blank"&gt;excellent walkthrough&lt;/a&gt; on the same topic.&lt;/p&gt;  &lt;p&gt;And of course the &lt;a href="www.orcsweb.com/hosting/vs2010beta.aspx" target="_blank"&gt;ORCS Web VS 2010 Beta testing account offer&lt;/a&gt; is a useful link.&lt;/p&gt;  &lt;p&gt;Keep an eye open for more publishing tools and progress in the future.&amp;#160; I believe we’re just at the beginning of great things to come.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7110328" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author><category term="IIS" scheme="http://weblogs.asp.net/owscott/archive/tags/IIS/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/owscott/archive/tags/ASP.NET/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/owscott/archive/tags/Visual+Studio/default.aspx" /></entry><entry><title>Visual Studio 2010 1-Click Publish Hosting at ORCS Web</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/06/01/visual-studio-2010-1-click-publish-hosting-at-orcs-web.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/06/01/visual-studio-2010-1-click-publish-hosting-at-orcs-web.aspx</id><published>2009-06-01T20:13:00Z</published><updated>2009-06-01T20:13:00Z</updated><content type="html">&lt;P&gt;With &lt;A href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" target=_blank mce_href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"&gt;Microsoft Visual Studio 2010 Beta 1&lt;/A&gt; released and available as a free download, we at &lt;A href="http://www.orcsweb.com/" target=_blank mce_href="http://www.orcsweb.com"&gt;ORCS Web&lt;/A&gt; have joined with Microsoft to provide a free testing account so that you can see for yourself how the Publish feature works for remote publishing.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;As of today, you can setup a new account free of charge &lt;A href="http://www.orcsweb.com/hosting/vs2010beta.aspx" target=_blank mce_href="http://www.orcsweb.com/hosting/vs2010beta.aspx"&gt;here&lt;/A&gt;.&amp;nbsp; Note that this account is setup with ASP.NET 4.0 by default, which does not have a go-live license, so this account is for testing purposes only and cannot be used to host a production website.&lt;/P&gt;
&lt;P&gt;Visual Studio 2010 now supports Web Deployment (MSDeploy) which is an impressive new technology from Microsoft, allowing rapid deployment of websites.&amp;nbsp; It’s fully secure since it runs over SSL, and yet it’s lightening fast.&amp;nbsp; It only copies the changed files and only the necessarily files, making deployment a breeze.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;VS 2010 totes a single-click publish option now.&amp;nbsp; Once you set it up, which is easy, you can deploy changes with one click.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/owscott/image_07F7E0C0.png" mce_href="http://weblogs.asp.net/blogs/owscott/image_07F7E0C0.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://weblogs.asp.net/blogs/owscott/image_thumb_3C2C0A06.png" width=244 height=31 mce_src="http://weblogs.asp.net/blogs/owscott/image_thumb_3C2C0A06.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;I’ll follow up with a walkthrough with more information later this week, but I wanted to mention our hosting offer today.&amp;nbsp; We didn’t launch on the same day as &lt;A href="http://www.bing.com/" target=_blank mce_href="http://www.bing.com/"&gt;Bing&lt;/A&gt; on purpose, but we can pretend that it’s all part of planned launch to keep up with the hype.&amp;nbsp; :)&lt;/P&gt;
&lt;P&gt;Here’s the link to setup an account: &lt;A href="http://www.orcsweb.com/hosting/vs2010beta.aspx" mce_href="http://www.orcsweb.com/hosting/vs2010beta.aspx"&gt;http://www.orcsweb.com/hosting/vs2010beta.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7105308" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author><category term="IIS" scheme="http://weblogs.asp.net/owscott/archive/tags/IIS/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/owscott/archive/tags/Visual+Studio/default.aspx" /></entry><entry><title>Shared Desktop on Vista and Windows Server 2008</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/04/20/shared-desktop-on-vista-and-windows-server-2008.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/04/20/shared-desktop-on-vista-and-windows-server-2008.aspx</id><published>2009-04-20T21:13:40Z</published><updated>2009-04-20T21:13:40Z</updated><content type="html">&lt;p&gt;Sometimes I want to place a shortcut or file on the desktop of a server and want all users of the server to see it.&amp;#160; By default, if you save a file or folders to the desktop, it is placed on only your desktop.&lt;/p&gt;  &lt;p&gt;Prior to Vista/2008, you could manage this by copying or moving a file/folder directly to &lt;/p&gt;  &lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 5px; background-color: #f1f1f1; padding-left: 5px; padding-right: 5px; color: #000000; border-top: gray 1px solid; border-right: gray 1px solid; padding-top: 5px"&gt;C:\Documents and Settings\All Users\Desktop&lt;/div&gt;  &lt;p&gt;On Vista and Windows Server 2008, there are some changes to the structure.&amp;#160; You may see the Documents and Settings folder, but if you double click on it, you will likely get an Access Denied error.&amp;#160; Have no fear, you can still access the user data.&amp;#160; Rather than using C:\Documents and Settings, the User data is in C:\Users now.&amp;#160; C:\Documents and Settings is now just a redirect for legacy code.&amp;#160; Actually, it’s not always on the C drive, but it usually is.&amp;#160; You can see where your profile is by typing the following in the command prompt:&lt;/p&gt;  &lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 5px; background-color: #f1f1f1; padding-left: 5px; padding-right: 5px; color: #000000; border-top: gray 1px solid; border-right: gray 1px solid; padding-top: 5px"&gt;echo %userprofile%&lt;/div&gt;  &lt;p&gt;The other gotcha comes with trying to access the shared desktop.&amp;#160; Previously it was in the “%userprofile%\All Users\Desktop” folder.&amp;#160; If you try to access that folder, you will likely get an Access Denied error there too.&amp;#160; The issue isn’t with access here either.&amp;#160; It’s that the folder has been renamed.&lt;/p&gt;  &lt;p&gt;Here’s the kicker.&amp;#160; The new path to the shared desktop is now:&lt;/p&gt;  &lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 5px; background-color: #f1f1f1; padding-left: 5px; padding-right: 5px; color: #000000; border-top: gray 1px solid; border-right: gray 1px solid; padding-top: 5px"&gt;C:\Users\Public\Desktop&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; (Since shortcuts are used, it may show as C:\Users\Public\Public Desktop)&lt;/div&gt;  &lt;p&gt;Note: It is a hidden folder, so if you haven’t already, make sure to set windows explorer to show hidden folders.&lt;/p&gt;  &lt;p&gt;Additionally, you can redirect this folder or any of the user profile folders to another path or drive.&amp;#160; This is easy to do.&amp;#160; Simply right-click on the folder and select the Location tab.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_63FC87EB.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_382C33FC.png" width="184" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;That’s all there is to keep in mind.&amp;#160; Remember the new folder name and you should be set.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7050981" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author><category term="Windows Vista" scheme="http://weblogs.asp.net/owscott/archive/tags/Windows+Vista/default.aspx" /><category term="Windows Server" scheme="http://weblogs.asp.net/owscott/archive/tags/Windows+Server/default.aspx" /></entry><entry><title>Conquering Outlook 2007 Performance Issues</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/04/14/conquering-outlook-2007-performance-issues.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/04/14/conquering-outlook-2007-performance-issues.aspx</id><published>2009-04-14T14:45:29Z</published><updated>2009-04-14T14:45:29Z</updated><content type="html">&lt;p&gt;Outlook is one of those programs that's easy to have a love-hate relationship with. It offers so much, but the earlier versions have been plagued with stability and performance issues.&lt;/p&gt;  &lt;p&gt;With the recent updates to Outlook 2007, stability has gotten substantially better. In fact, I don't remember Outlook crashing on me in months, which says a lot to the improvements that have been made.&amp;#160; Performance on a tuned Outlook is very comfortable now too, so with the right love and care, Outlook 2007 can function very well for you.&lt;/p&gt;  &lt;p&gt;At the time of this writing, two performance upgrades to Outlook were recently released and are well worth installing. They are &lt;a href="http://support.microsoft.com/?kbid=968009"&gt;http://support.microsoft.com/?kbid=968009&lt;/a&gt; (cumulative update) and &lt;a href="http://support.microsoft.com/?kbid=961752"&gt;http://support.microsoft.com/?kbid=961752&lt;/a&gt; (hotfix). There are a bunch of exciting performance enhancements there.&lt;/p&gt;  &lt;p&gt;However, even with the latest of everything, Outlook got REALLY slow for me last week and needed some housekeeping.&amp;#160; It was taking me 4 – 5 seconds to view each email, which for handling any amount of email in a day, is pretty much unusable.&lt;/p&gt;  &lt;p&gt;I’m sure there are many additional ways to improve performance in Outlook, but I thought I would explain the couple that helped me this weekend.&lt;/p&gt;  &lt;p&gt;First and foremost, any time I hear people complain about a slow Outlook, I always tell them to clean up their email and don’t store it all in their primary mailbox.&amp;#160; Once they clean it up, it almost always returns to a good speed again.&amp;#160; A bloated primary mailbox causes slow load times, slow running times and slow (or failed) shutdown.&amp;#160; Additionally the search indexer works extra hard, causing the the entire computer to slow.&lt;/p&gt;  &lt;p&gt;I checked the size of my Outlook.ost file and it was over 9GB!&amp;#160; Oops.&amp;#160; Note that I use Exchange Server with caching enabled.&amp;#160; You may have a PST as your primary mailbox.&lt;/p&gt;  &lt;p&gt;I used a 3-step approach to get my Outlook back in-line again.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Clean up the obvious folders&lt;/li&gt;    &lt;li&gt;Find the non-obvious folders&lt;/li&gt;    &lt;li&gt;Compact the mailboxes&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;strong&gt;1. Clean up the obvious folders&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;There are many different ways to work with emails.&amp;#160; I know that a lot of people like to delete their emails when they have finished reading them.&amp;#160; I don’t work that way.&amp;#160; I find that I go back to emails fairly often, so I keep pretty much all email except for spam or obvious junk.&amp;#160; This causes my email count to climb at a fast rate, and years of email really adds up.&amp;#160; I do, however, delete old email lists and newsletter emails since they are archived online or elsewhere.&lt;/p&gt;  &lt;p&gt;If you’re one of the people that delete your read email, this first step may simply be to get to &lt;a href="http://video.google.com/videoplay?docid=973149761529535925" target="_blank"&gt;Inbox zero&lt;/a&gt; and delete your emails in the process.&lt;/p&gt;  &lt;p&gt;For me, I create a “Saved” mailbox (PST file) and I drag and drop email older than a couple months there.&amp;#160; I like to keep a couple months worth since I’m more likely to reference recent email, and it takes more effort to search for an email thread in my Saved mailbox than in my active mailbox.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. Find the non-obvious folders&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This step is what really helped me this time.&amp;#160; I thought I had all of my normally large folders taken care of, but it was still taking me 4 – 5 seconds to view each email.&amp;#160; I knew something was up, so I used Outlook’s handy &lt;em&gt;Mailbox Cleanup &lt;/em&gt;tool to find out what I was missing.&amp;#160; You can access this from &lt;em&gt;Tools&lt;/em&gt; –&amp;gt; &lt;em&gt;Mailbox Cleanup…&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_7BD2A709.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_61923DE5.png" width="149" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Mailbox Cleanup has a number of tools that come in handy for cleaning up your mailbox and speeding up Outlook.&amp;#160; In this case, it was the &lt;em&gt;View Mailbox Size &lt;/em&gt;tool that I used.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_6457F2D8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_17478340.png" width="237" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I was in for 2 surprises after running this.&amp;#160; The first: I came to find out that I have a lot of emails in my Deleted Items folder.&amp;#160; I had just emptied that folder so I wasn’t expecting to find anything.&amp;#160; It turns out that I deleted everything in the root of the Deleted Items folder, but I missed the little + showing that there were subfolders that I overlooked. &lt;/p&gt;  &lt;p&gt;Normally I delete using “Shift Delete” which bypasses the Deleted Items folder, but occasionally I don’t, and it looks like some folders I had deleted a long time ago were still sticking around.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_6DF03B41.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_24EA197B.png" width="244" height="207" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I didn’t save a screenshot, but it was the Folder Size tools in the screenshot above that gave me what I needed.&lt;/p&gt;  &lt;p&gt;The second surprise was the Sync folder.&amp;#160; I had over 61,000 items in the Sync Issues/Conflicts folder!&amp;#160; That was the greatest cause of performance issues.&amp;#160; I did this over the weekend and I knew that I should be spending time with my family anyway, so I did a Select All on that folder (waited a long time) and then did a Shift Delete and left the laptop to do its stuff.&amp;#160; A few hours later my laptop was available for use again.&lt;/p&gt;  &lt;p&gt;Performance still wasn’t resolved, so I had more work ahead.&lt;/p&gt;  &lt;p&gt;I had to ask myself why the Conflicts folder had grown like this.&amp;#160; I don’t have it fully figured yet, but I found that part of it had to do with &lt;a href="http://www.eset.com/" target="_blank"&gt;NOD32&lt;/a&gt;, my anti-virus program.&amp;#160; It was touching the files on the way through and adding a signature to the files to say that they are scanned.&amp;#160; That change caused Outlook to flag the message as a sync issue.&amp;#160; I tweaked that setting and the new Conflicts are minimal now.&amp;#160; I’ll continue to watch this and find out the cause for the rest.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. Compact the mailboxes&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Even though the mailboxes were down to a reasonable size, the performance issue remained.&amp;#160; Outlook still needed to compact the mailboxes to reclaim that space.&lt;/p&gt;  &lt;p&gt;The compact option is hidden away somewhat.&amp;#160; You can get to it from Tools –&amp;gt; Accounts –&amp;gt; Data Files&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_5C502AA9.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_3EAE29DD.png" width="244" height="199" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here if you want to look at the file itself, select the mailbox name and click on &lt;em&gt;Open Folder…&lt;/em&gt;. The &lt;em&gt;Compact Now&lt;/em&gt; button is in the mailbox settings.&amp;#160; &lt;/p&gt;  &lt;p&gt;For PST files, the button is on the first screen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_6B56E3B6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_09C124A0.png" width="244" height="238" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Click on &lt;em&gt;Compact Now&lt;/em&gt; and let it do it’s stuff.&amp;#160; Note that if it’s taking a while and you want to use your computer again, you can safely cancel it at any time and it will continue next time where it left off.&amp;#160; &lt;/p&gt;  &lt;p&gt;An exchange mailbox hides the &lt;em&gt;Compact Now&lt;/em&gt; button even further.&amp;#160; It’s in the &lt;em&gt;Advanced &lt;/em&gt;tab –&amp;gt; &lt;em&gt;Offline Folder File Settings …&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_48467246.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_4D48AFF5.png" width="198" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/owscott/image_7D8F84AB.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/owscott/image_thumb_3C14D252.png" width="244" height="120" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It took another few hours for the compact to complete for me.&amp;#160; I may have been faster just deleting the mailbox and creating it again, but I let it do its thing and it went from the bloated 9GB down to around 1GB.&amp;#160; If I really wanted, I could get it smaller, but with it performing very fast again, there was no need.&amp;#160; &lt;/p&gt;  &lt;p&gt;That did it.&amp;#160; My mouse clicks are measured in milliseconds now rather than seconds!&lt;/p&gt;  &lt;p&gt;Outlook really has improved over the years and when looked after properly, it can serve you well.&amp;#160; &lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7046124" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author><category term="Email" scheme="http://weblogs.asp.net/owscott/archive/tags/Email/default.aspx" /></entry><entry><title>IIS 7 Compression.  Good?  Bad?  How much?</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/02/22/iis-7-compression-good-bad-how-much.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/02/22/iis-7-compression-good-bad-how-much.aspx</id><published>2009-02-22T20:45:00Z</published><updated>2009-02-22T20:45:00Z</updated><content type="html">&lt;P&gt;If you haven't properly utilized compression in IIS, you're missing out on a lot!&amp;nbsp; Compression is a trade-off of CPU for Bandwidth.&amp;nbsp; With the expense of bandwidth and relative abundance of CPU, it's an easy trade-off.&amp;nbsp; Yet, are you sure that your server is tuned optimally? &amp;nbsp;I wasn't, which is why I finally sat down to find out for sure.&amp;nbsp; I'll share the findings here.&lt;/P&gt;
&lt;P&gt;A few years ago I wrote about &lt;A class="" href="http://weblogs.asp.net/owscott/archive/2004/01/12/IIS-Compression-in-IIS6.0.aspx" target=_blank mce_href="http://weblogs.asp.net/owscott/archive/2004/01/12/IIS-Compression-in-IIS6.0.aspx"&gt;compression on IIS 6&lt;/A&gt;.&amp;nbsp; With IIS 6, the Microsoft defaults were a long ways off of the optimum settings, and a number of changes were necessary before IIS Compression worked well.&amp;nbsp; My goal here is to dig deep into IIS 7 compression and find out the impact that the various compression levels have, and to see how much adjusting is needed to finely tune a Windows web server.&lt;/P&gt;
&lt;P&gt;Note: If you don't care about all the details, jump right down to the conclusion.&amp;nbsp; I've made sure to put the key review information there.&lt;/P&gt;
&lt;H3&gt;What's my purpose here?&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;To find out the bandwidth savings for the different compression levels, contrast them against the performance impact on the system and come up with a recommended configuration.&lt;/P&gt;
&lt;H3&gt;Understanding IIS 7 and its Differences from IIS 6&lt;/H3&gt;
&lt;P&gt;IIS 6 allowed compression per extension type (i.e. aspx, html, txt, etc) and allowed it to be turned on and off per site, folder or file.&amp;nbsp; Making changes wasn't easy to do, but it was possible with a bit of scripting or editing of the metabase file directly.&lt;/P&gt;
&lt;P&gt;IIS 7 changes this somewhat.&amp;nbsp; Instead of compression per extension, it's per mime type.&amp;nbsp; &amp;nbsp;Additionally, it's easier to enable or disable compression per&amp;nbsp;server/site/folder/file in IIS 7.&amp;nbsp; It's configurable from IIS Manager, Appcmd.exe, web.config and all programming APIs.&lt;/P&gt;
&lt;P&gt;Additionally, IIS 7 gives the ability to have compression automatically stopped when the CPU on the server is above a set threshold.&amp;nbsp; This means that when CPU is freely available, compression will be applied, but when CPU isn't available, it is temporarily disabled so that it won't overburden the server.&amp;nbsp; Thanks IIS team!&amp;nbsp; These settings are easily configurable, which I'll cover more in a future blog post.&lt;/P&gt;
&lt;P&gt;Both IIS6 and IIS7 allow 11 levels of compression (actually 'Off' and 10 levels of 'On').&amp;nbsp; The goal for this post is to compare the various levels and see the impact of each.&lt;/P&gt;
&lt;H3&gt;Objectives and Rules&lt;/H3&gt;
&lt;P&gt;The first thing I had to do was determine what tests I wanted to run, and how I could achieve them.&amp;nbsp; I also wanted to ensure that I could clearly see the differences between the various levels.&amp;nbsp; Here are some key objectives that I set for myself:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;B&gt;Various file sizes:&lt;/B&gt; All tests had to be applied to various sizes of files.&amp;nbsp; I initially tested using the default IIS7 homepage (689bytes), a 4kb file, a 28kb file and a 516kb file.&amp;nbsp; I figured that would give a good range of common file sizes. &lt;BR&gt;&lt;BR&gt;As it turned out, part way through I discovered that performance is severely affected on files of about 200kb and greater, so I did another series of tests on 100kb, 200kb, 400kb and 800kb files.&lt;BR&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;Test compression only&lt;/B&gt;:&amp;nbsp; It was important to me that compression was the only factor and that other variables didn't cloud the picture.&amp;nbsp; For that reason, all of my test pages generate almost no CPU on their own.&amp;nbsp; Almost all of the CPU increases in my tests are from compression only.&lt;BR&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Compression ratio&lt;/STRONG&gt;:&amp;nbsp; I used &lt;A class="" href="http://www.port80software.com/" target=_blank mce_href="http://www.port80software.com/"&gt;Port 80 Software's&lt;/A&gt; free online web tool to get the compression amount. &lt;BR&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;Stress Testing&lt;/B&gt;: &amp;nbsp;I used Microsoft's free &lt;A class="" href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;i=1466&amp;amp;g=6" target=_blank mce_href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;i=1466&amp;amp;g=6"&gt;WCAT&lt;/A&gt; tool.&amp;nbsp; For the heavy load testing I used two WCAT client servers so that I can test the IIS server to the limit.&amp;nbsp; One client couldn't quite bring the IIS server to 100% CPU.&lt;BR&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;Baseline Transactions per Second&lt;/B&gt;: After testing for a while, I realized that the most useful data was with a fixed trans/sec goal.&amp;nbsp; Otherwise, if I tested with a virtually instant page and thousands of transactions per second, the compression resource usage is unrealistic and the data confusing.&amp;nbsp; Very few real-life IIS servers handle thousands of very-fast pages per second.&amp;nbsp; So, to make the numbers more useful, I added a 125ms delay to each page so that my server could serve up 120trans/sec with 0% CPU when compression is turned off.&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;Compression at all CPU Levels: &lt;/B&gt;I had to turn off the CPU roll-off so that all pages are compressed, even at 100% CPU.&amp;nbsp; IIS 7's default setting of CPU roll-off is great, but it gets in the way of this testing.&lt;BR&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;Solid Computer:&lt;/B&gt; Since compression is CPU bound, it's important that the server isn't a dinosaur.&amp;nbsp; The test server is a Dell M600 with a Quad Core Intel Xeon processor (E5405 @ 2.00Ghz). The server only has 1GB of RAM but the physical memory was never used up for these tests, so it had all the memory that it needed.&amp;nbsp; The disks are SAS, 10K RPM in a RAID 1 configuration.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;I'll include the raw data at the bottom of the post for anyone that is interested.&lt;/P&gt;
&lt;P&gt;Let's take a look at the results.&lt;/P&gt;
&lt;H3&gt;Compression Levels&lt;/H3&gt;
&lt;P mce_keep="true"&gt;&lt;IMG title="IIS 7 Compression Ratio" style="WIDTH: 538px; HEIGHT: 322px" height=322 alt="IIS 7 Compression Ratio" src="http://weblogs.asp.net/blogs/owscott/IIS7CompressionRatio.jpg" width=538 mce_src="http://weblogs.asp.net/blogs/owscott/IIS7CompressionRatio.jpg"&gt;&lt;/P&gt;
&lt;P&gt;As shown in the graph here, the largest increase was between compression level 3 and 4.&amp;nbsp; After that, the compression improvements were very gradual.&amp;nbsp; However, if you check out the raw data below though, every level offered at least some incremental benefit.&lt;/P&gt;
&lt;H3&gt;Time to First Byte&lt;/H3&gt;
&lt;P&gt;Here's a fun test I've always wanted to do, but never got around to it.&amp;nbsp; I was curious how quickly a compressed vs. a non-compressed page would load under minimal server load.&amp;nbsp; In other words, if there is plenty of CPU to spare, does a compressed page load at near line-speed? &lt;B&gt;&amp;nbsp;&lt;/B&gt;While both Time to First Byte (TTFB)--when the page starts to load--and Time to Last Byte (TTLB)--when the page finishes loading--are valuable, I felt that the TTFB gave the picture that I needed.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG title="IIS 7 Compression - TTFB" style="WIDTH: 538px; HEIGHT: 322px" height=322 alt="IIS 7 Compression - TTFB" src="http://weblogs.asp.net/blogs/owscott/IIS7Compression-TTFB.jpg" width=538 mce_src="http://weblogs.asp.net/blogs/owscott/IIS7Compression-TTFB.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;As you can see, all but the 516kb came in at about 0 milliseconds, even compressed.&amp;nbsp; Note that the 28kb and 4kb lines are hidden behind the 689 bytes line.&amp;nbsp; Even the 516kb file came in at under 80ms.&amp;nbsp; What's 80ms??&amp;nbsp; That's very low unless you have a really busy site.&amp;nbsp; As far as I'm concerned from this data, even a 516kb file loads at line speed as long as the server isn't bogged down.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Let's think about the 80ms a bit more.&amp;nbsp; Dynamic pages, database calls and other factors play a much&amp;nbsp;bigger role.&amp;nbsp; Plus, the &amp;lt;80ms saves over 300kb on the page transfer, which is a savings of 2.34 seconds on a 1Mbps line!&amp;nbsp; (Calculation based on: 300kbytes savings.&amp;nbsp; A 1Mbps line will transfer 1024Kbps/8 = 128KB per second.&amp;nbsp; 300/128KB/s = 2.34 seconds)&lt;/P&gt;
&lt;P&gt;All of the smaller pages load almost instantly, so the impression that the end user gets from a non-pegged server is going to be better with compression on.&amp;nbsp; Note that my testing doesn't take Internet latency and limits into account.&amp;nbsp; So, as long as the server can compress it at near line speed, it's going to benefit the site visitor all the more.&lt;/P&gt;
&lt;H3&gt;CPU Perspective&lt;/H3&gt;
&lt;P&gt;The following two charts are from a second round of testing that I did, so the file sizes are different than in the previous test.&amp;nbsp; In my first round of testing I found that the file size makes a huge difference.&amp;nbsp; With anything under 100kb, the compression overhead is almost non-existent.&amp;nbsp; However, once you have file sizes of a couple hundred kb or greater, the CPU overhead is significant.&lt;/P&gt;
&lt;P&gt;I ran the tests on 100kb, 200kb, 400kb and 800kb files.&amp;nbsp; To put the size in perspective, I spent a good 10 minutes getting content from various sites to come up with 800kb of text.&amp;nbsp; I used pages like &lt;A class="" href="http://weblogs.asp.net/scottgu/archive/2009/01/27/asp-net-mvc-1-0-release-candidate-now-available.aspx" target=_blank mce_href="http://weblogs.asp.net/scottgu/archive/2009/01/27/asp-net-mvc-1-0-release-candidate-now-available.aspx"&gt;this&amp;nbsp;from Scott Guthrie's blog&lt;/A&gt;, and it still took multiple pages to collect 800kb of text.&amp;nbsp; That particular page only has 145kb of text on it, but it's 440kb in size because of the HTML mark-up.&amp;nbsp; So, a 400kb file isn't overly common (not many people have as many blog comments as Scott Gu), but it's certainly possible.&lt;/P&gt;
&lt;P&gt;To obtain a good CPU chart, I had to use some trickery.&amp;nbsp; I wanted to create a test where I could hit the server as hard as a heavily utilized server is hit, but somehow keep non-compression related CPU to 0.&amp;nbsp; I achieved this by using System.Threading.Thread.Sleep(125) in the pages.&amp;nbsp; This sets a 125ms delay that doesn't use any CPU.&amp;nbsp; Then I set the WCAT thread count to 30 per server (2 WCAT client computers).&amp;nbsp; This became my baseline since, with these settings, the IIS server handled 120 Transactions/second.&amp;nbsp; From looking at some busy production servers here at &lt;A class="" href="http://www.orcsweb.com/" target=_blank mce_href="http://www.orcsweb.com"&gt;ORCS Web&lt;/A&gt;, I concluded that that was a reasonable level for a busy server.&amp;nbsp; The CPU load without compression was nearly zero, so I was pleased with this test case.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG title="IIS 7 Compression - CPU Usage" style="WIDTH: 538px; HEIGHT: 322px" height=322 alt="IIS 7 Compression - CPU Usage" src="http://weblogs.asp.net/blogs/owscott/IIS7CompressionCPUPerFileSize.jpg" width=538 mce_src="http://weblogs.asp.net/blogs/owscott/IIS7CompressionCPUPerFileSize.jpg"&gt;&lt;/P&gt;
&lt;P&gt;I found this the most interesting.&amp;nbsp; Notice that each file size hit a sweet spot at a different compression level.&amp;nbsp; For example, if you figure that your files are mostly 200kb and smaller, you may want to use Compression Level 4, which uses almost no CPU for a 200kb file.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;This is on a Quad Core server, targeting 120 transactions/second.&amp;nbsp; As you can see, if you plan to have that level of traffic on your server, and your file sizes are into the hundreds of kilobytes, you may want to watch the compression utilization on the server.&amp;nbsp; It may be using more resources that you realize.&amp;nbsp; I don't think most people have much to worry about though as the average page size is less than 100kb, and the load on the average server is often much less than 120 transactions/second.&lt;/P&gt;
&lt;P&gt;I'll mention more in the conclusion, but it's worth briefly mentioning now that you should consider having different compression levels for static and dynamic content.&amp;nbsp; Static content is compressed and cached, so it's only compressed once until the next time the file is changed.&amp;nbsp; For that reason, you probably don't care too much about the CPU overhead and can go with a setting of 9.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;On the other hand, dynamic pages are compressed every time (for the most part, although further details on cached dynamic pages can be found &lt;A class="" href="http://blogs.iis.net/ksingla/archive/2006/06/13/changes-to-compression-in-iis7.aspx" mce_href="http://blogs.iis.net/ksingla/archive/2006/06/13/changes-to-compression-in-iis7.aspx"&gt;here&lt;/A&gt;).&amp;nbsp; So, the setting for the dynamic compression level is much more important to understand.&lt;/P&gt;
&lt;P&gt;This also lets us realize that it would be foolish to turn on compression just for the fun of it.&amp;nbsp; Formats that don't compress much (or are already compressed) like JPG's, EXE's, ZIP's and the like, are often large and the CPU overhead to try to compress them further could be substantial.&amp;nbsp; These aren't compressed by default in IIS 7.&lt;/P&gt;
&lt;H3&gt;Transactions per Second&lt;/H3&gt;
&lt;P mce_keep="true"&gt;&lt;IMG title="IIS 7 Compression - Transactions per second" style="WIDTH: 538px; HEIGHT: 322px" height=322 alt="IIS 7 Compression - Transactions per second" src="http://weblogs.asp.net/blogs/owscott/IIS7CompressionTransactionsPerSecond.jpg" width=538 mce_src="http://weblogs.asp.net/blogs/owscott/IIS7CompressionTransactionsPerSecond.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Just as a reminder, my goal was to start with 120 transactions/sec.&amp;nbsp; The server could handle much more, but this was controlled so that 120 was considered the base.&amp;nbsp; That was achieved with &amp;lt;1% CPU when non-compressed.&lt;/P&gt;
&lt;P&gt;Notice that 100kb and 200kb files can still be served up at nearly the same rate.&amp;nbsp; Once you get to 800kb file sizes though, the server spends massive computing power to compress each page.&amp;nbsp; Part of that isn't just compression related.&amp;nbsp; Notice that even with compression turned off, IIS could only serve up 80 Transactions/sec using the same WCAT settings.&amp;nbsp; However, the transacctions/sec drops off considerably with each compression level.&lt;/P&gt;
&lt;H3&gt;Conclusion&lt;/H3&gt;
&lt;P&gt;So, what is my recommendation?&amp;nbsp; Your mileage will vary, depending on the types of files that you serve up and how active your involvement in the server is.&lt;/P&gt;
&lt;P&gt;One great feature that IIS 7 offers is the CPU roll-off.&amp;nbsp; When CPU gets beyond a certain level, IIS will stop compressing pages, and when it drops below a different level, it will start up again.&amp;nbsp; This is controlled by the staticCompressionEnableCpuUsage and dynamicCompressionDisableCpuUsage attributes.&amp;nbsp; That in itself offers a large safety net, protecting you from any surprises.&lt;/P&gt;
&lt;P&gt;Based on the data collected, the sweet spot seems to be compression level 4.&amp;nbsp; It's between 3 and 4 that the compression benefit jumps, but it's between 4 and 5 that the resource usage jumps, making 4 a nice balance between ‘almost full compression levels' and ‘not quite as bad on resource usage'.&lt;/P&gt;
&lt;P&gt;Since &lt;B&gt;&lt;I&gt;static&lt;/I&gt;&lt;/B&gt; files are only compressed once until they are changed again, it's safe to leave them at the default level of 7, or even move it all the way to 9 if you want to compress every last bit out of it.&amp;nbsp; Unless you have thousands of files that aren't individually called very often, I recommend the higher the better.&lt;/P&gt;
&lt;P&gt;For &lt;B&gt;&lt;I&gt;dynamic&lt;/I&gt;&lt;/B&gt;, there is a lot to consider.&amp;nbsp; If you have a server that isn't CPU heavy, and you actively administer the server, then crank up the level as far as it will go.&amp;nbsp; If you are worried that you'll forget about compression in the future when the server gets busier, and you want a safe setting that you can set and forget, then leave at the default of 0, or move to 4.&lt;/P&gt;
&lt;P&gt;Make sure that you don't compress non-compressible large files like JPG, GIF, EXE, ZIP.&amp;nbsp; Their native format already compresses them, and the extra attempts to compress them will use up valuable system resources, for little or no benefit.&lt;/P&gt;
&lt;P&gt;Microsoft's default of 0 for dynamic and 7 for static is safe.&amp;nbsp; Not only is it safe, it is aggressive enough to give you ‘most' of the benefit of compression with minimal system resource overhead.&amp;nbsp; Don't forget that the default *does not* enable dynamic compression.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;I&gt;My recommendation is&lt;/I&gt;&lt;/B&gt;, first and foremost, to make sure that you haven't forgotten to enable dynamic compression.&amp;nbsp; In almost all cases it's well worth it, unless bandwidth is free for you and you run your servers very hot (on CPU).&amp;nbsp; Since bandwidth is so much more expensive than CPU, moving forward I'll be suggesting 4 for dynamic and 9 for static to get the best balance of compression and system utilization.&amp;nbsp; At this setting, I can set and forget for the most part, although when I run into a situation when a server runs hot, I'll be sure to experiment with compression turned off to see what impact compression has in that situation.&lt;/P&gt;
&lt;P&gt;Disclaimer: I've run these tests this last week and haven't fully burned in or tested these settings in production over time, so it's possible that my recommendation will change over time.&amp;nbsp; Use the data above and use my recommendations at your own risk.&amp;nbsp; That said, I feel comfortable with my recommendation for myself, if that means anything.&amp;nbsp; Additionally, at &lt;A class="" href="http://www.orcsweb.com/" target=_blank mce_href="http://www.orcsweb.com"&gt;ORCS Web&lt;/A&gt;, we've run both static and dynamic at level 9 for years and have never attributed compression as the culprit to heavy CPU on production servers.&amp;nbsp; My test load of 120 transactions/sec is probably more than most production servers handle, so even 9 for both static and dynamic could be a safe setting in many situations.&lt;/P&gt;
&lt;H3&gt;The How&lt;/H3&gt;
&lt;P&gt;Here are some AppCmd.exe commands that you can use to make the changes, or to add to your build scripts.&amp;nbsp; Just paste them into the command prompt and you're good to go.&amp;nbsp; Watch for line breaks.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Enable Dynamic Compression, and ensure Static compression at the server level:&lt;/EM&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: gray 1px solid; COLOR: #000000; PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px solid; BACKGROUND-COLOR: #f1f1f1"&gt;C:\Windows\System32\Inetsrv\Appcmd.exe set config -section:urlCompression -doStaticCompression:true -doDynamicCompression:true &lt;/DIV&gt;
&lt;P&gt;&lt;EM&gt;Alternately, apply for just a single site (make sure to update the site name):&lt;/EM&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: gray 1px solid; COLOR: #000000; PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px solid; BACKGROUND-COLOR: #f1f1f1"&gt;C:\Windows\System32\Inetsrv\Appcmd.exe set config "Site Name" -section:urlCompression -doStaticCompression:true -doDynamicCompression:true&lt;/DIV&gt;
&lt;P&gt;&lt;EM&gt;To set the compression level, run the following (this can only be applied at the server level):&lt;/EM&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: gray 1px solid; COLOR: #000000; PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px solid; BACKGROUND-COLOR: #f1f1f1"&gt;C:\Windows\System32\Inetsrv\Appcmd.exe set config -section:httpCompression -[name='gzip'].staticCompressionLevel:9 -[name='gzip'].dynamicCompressionLevel:4 &lt;/DIV&gt;
&lt;P&gt;IIS 7 only sets GZip by default. If you use Deflate, run the previous command for Deflate too.&lt;/P&gt;
&lt;P&gt;Note that when changing the compression level, an IISReset is required for it to take effect.&lt;/P&gt;
&lt;H3&gt;Data&lt;/H3&gt;
&lt;P&gt;In case the raw data interests you, I've provided it here.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Compression ratio&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE class="" style="WIDTH: 352pt; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width=467 border=0&gt;
&lt;COLGROUP&gt;
&lt;COL style="WIDTH: 32pt; mso-width-source: userset; mso-width-alt: 1572" width=43&gt;
&lt;COL style="WIDTH: 40pt; mso-width-source: userset; mso-width-alt: 1938" width=53&gt;
&lt;COL style="WIDTH: 40pt; mso-width-source: userset; mso-width-alt: 1938" width=53&gt;
&lt;COL style="WIDTH: 40pt; mso-width-source: userset; mso-width-alt: 1938" width=53&gt;
&lt;COL style="WIDTH: 40pt; mso-width-source: userset; mso-width-alt: 1938" width=53&gt;
&lt;COL style="WIDTH: 40pt; mso-width-source: userset; mso-width-alt: 1938" width=53&gt;
&lt;COL style="WIDTH: 40pt; mso-width-source: userset; mso-width-alt: 1938" width=53&gt;
&lt;COL style="WIDTH: 40pt; mso-width-source: userset; mso-width-alt: 1938" width=53&gt;
&lt;COL style="WIDTH: 40pt; mso-width-source: userset; mso-width-alt: 1938" width=53&gt;
&lt;TBODY&gt;
&lt;TR style="HEIGHT: 16.5pt" height=22&gt;
&lt;TD class=xl74 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; WIDTH: 32pt; BORDER-BOTTOM: #f0f0f0; HEIGHT: 16.5pt; BACKGROUND-COLOR: transparent" width=43 height=22 class="xl74"&gt;&lt;FONT face=Calibri size=3&gt;Level&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: black 1.5pt solid; BORDER-TOP: windowtext 1.5pt solid; BORDER-LEFT: windowtext 1.5pt solid; WIDTH: 80pt; BORDER-BOTTOM: windowtext 1.5pt solid; BACKGROUND-COLOR: transparent" width=106 colSpan=2 class="xl72"&gt;&lt;FONT face=Calibri size=3&gt;400kb Text&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: black 1.5pt solid; BORDER-TOP: windowtext 1.5pt solid; BORDER-LEFT: windowtext; WIDTH: 80pt; BORDER-BOTTOM: windowtext 1.5pt solid; BACKGROUND-COLOR: transparent" width=106 colSpan=2 class="xl72"&gt;&lt;FONT face=Calibri size=3&gt;28kb Text&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: black 1.5pt solid; BORDER-TOP: windowtext 1.5pt solid; BORDER-LEFT: windowtext; WIDTH: 80pt; BORDER-BOTTOM: windowtext 1.5pt solid; BACKGROUND-COLOR: transparent" width=106 colSpan=2 class="xl72"&gt;&lt;FONT face=Calibri size=3&gt;1kb Text&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: black 1.5pt solid; BORDER-TOP: windowtext 1.5pt solid; BORDER-LEFT: windowtext; WIDTH: 80pt; BORDER-BOTTOM: windowtext 1.5pt solid; BACKGROUND-COLOR: transparent" width=106 colSpan=2 class="xl72"&gt;&lt;FONT face=Calibri size=3&gt;516kb text&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-height-source: userset" height=20&gt;
&lt;TD class=xl74 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl74"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl70 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: #f0f0f0; BORDER-LEFT: windowtext 1.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" class="xl70"&gt;&lt;FONT face=Calibri size=3&gt;Size&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl71 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: #f0f0f0; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" class="xl71"&gt;&lt;FONT face=Calibri size=3&gt;%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl70 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: #f0f0f0; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" class="xl70"&gt;&lt;FONT face=Calibri size=3&gt;Size&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl71 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: #f0f0f0; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" class="xl71"&gt;&lt;FONT face=Calibri size=3&gt;%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl70 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: #f0f0f0; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" class="xl70"&gt;&lt;FONT face=Calibri size=3&gt;Size&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl71 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: #f0f0f0; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" class="xl71"&gt;&lt;FONT face=Calibri size=3&gt;%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl70 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: #f0f0f0; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" class="xl70"&gt;&lt;FONT face=Calibri size=3&gt;Size&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl71 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: #f0f0f0; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" class="xl71"&gt;&lt;FONT face=Calibri size=3&gt;%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl74 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl74"&gt;&lt;FONT face=Calibri size=3&gt;Off&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;3904&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;0%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;28274&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;0%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;689&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;0%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;528834&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;0%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl74 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl74"&gt;&lt;FONT face=Calibri size=3&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;1713&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;57%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;13878&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;51%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;594&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;14%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;238630&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;55%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl74 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl74"&gt;&lt;FONT face=Calibri size=3&gt;1&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;1636&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;59%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;12825&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;55%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;588&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;15%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;221751&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;59%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl74 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl74"&gt;&lt;FONT face=Calibri size=3&gt;2&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;1597&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;60%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;12342&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;57%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;587&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;15%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;213669&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;60%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl74 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl74"&gt;&lt;FONT face=Calibri size=3&gt;3&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;1592&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;60%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;11988&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;58%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;587&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;15%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;206795&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;61%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl74 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl74"&gt;&lt;FONT face=Calibri size=3&gt;4&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;1434&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;64%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;11400&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;60%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;457&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;34%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;190362&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;65%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl74 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl74"&gt;&lt;FONT face=Calibri size=3&gt;5&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;1428&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;64%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;11228&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;61%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;457&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;34%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;184649&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;66%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl74 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl74"&gt;&lt;FONT face=Calibri size=3&gt;6&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;1428&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;64%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;11158&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;61%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;457&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;34%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;181087&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;66%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl74 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl74"&gt;&lt;FONT face=Calibri size=3&gt;7&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;1428&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;64%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;11151&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;61%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;457&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;34%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;180620&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;66%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl74 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl74"&gt;&lt;FONT face=Calibri size=3&gt;8&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;1428&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;64%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;11150&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;61%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;457&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;34%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Calibri size=3&gt;180485&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Calibri size=3&gt;66%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt" height=21&gt;
&lt;TD class=xl74 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15.75pt; BACKGROUND-COLOR: transparent" height=21 class="xl74"&gt;&lt;FONT face=Calibri size=3&gt;9&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.5pt solid; BORDER-BOTTOM: windowtext 1.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Calibri size=3&gt;1428&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl69"&gt;&lt;FONT face=Calibri size=3&gt;64%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Calibri size=3&gt;11150&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl69"&gt;&lt;FONT face=Calibri size=3&gt;61%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Calibri size=3&gt;457&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl69"&gt;&lt;FONT face=Calibri size=3&gt;34%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Calibri size=3&gt;180481&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 1.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl69"&gt;&lt;FONT face=Calibri size=3&gt;66%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;CPU Usage per Compression Level&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE class="" style="WIDTH: 410pt; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width=547 border=0&gt;
&lt;COLGROUP&gt;
&lt;COL style="WIDTH: 26pt; mso-width-source: userset; mso-width-alt: 1280" width=35&gt;
&lt;COL style="WIDTH: 48pt" width=64&gt;
&lt;COL style="WIDTH: 48pt" width=64&gt;
&lt;COL style="WIDTH: 48pt" width=64&gt;
&lt;COL style="WIDTH: 48pt" width=64&gt;
&lt;COL style="WIDTH: 48pt" width=64&gt;
&lt;COL style="WIDTH: 48pt" width=64&gt;
&lt;COL style="WIDTH: 48pt" width=64&gt;
&lt;COL style="WIDTH: 48pt" width=64&gt;
&lt;TBODY&gt;
&lt;TR style="HEIGHT: 16.5pt" height=22&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; WIDTH: 26pt; BORDER-BOTTOM: #f0f0f0; HEIGHT: 16.5pt; BACKGROUND-COLOR: transparent" width=35 height=22 class="xl67"&gt;Level&lt;/TD&gt;
&lt;TD class=xl71 style="BORDER-RIGHT: black 1.2pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext 1.2pt solid; WIDTH: 96pt; BORDER-BOTTOM: #f0f0f0; BACKGROUND-COLOR: transparent" width=128 colSpan=2 class="xl71"&gt;&lt;FONT face=Verdana size=2&gt;100kb&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl71 style="BORDER-RIGHT: black 1.2pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext; WIDTH: 96pt; BORDER-BOTTOM: #f0f0f0; BACKGROUND-COLOR: transparent" width=128 colSpan=2 class="xl71"&gt;&lt;FONT face=Verdana size=2&gt;200kb&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl71 style="BORDER-RIGHT: black 1.2pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext; WIDTH: 96pt; BORDER-BOTTOM: #f0f0f0; BACKGROUND-COLOR: transparent" width=128 colSpan=2 class="xl71"&gt;&lt;FONT face=Verdana size=2&gt;400kb&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl71 style="BORDER-RIGHT: black 1.2pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext; WIDTH: 96pt; BORDER-BOTTOM: #f0f0f0; BACKGROUND-COLOR: transparent" width=128 colSpan=2 class="xl71"&gt;&lt;FONT face=Verdana size=2&gt;800kb&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 16.5pt" height=22&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 16.5pt; BACKGROUND-COLOR: transparent" height=22 class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" class="xl75"&gt;&lt;FONT face=Verdana size=2&gt;CPU&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl76 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" class="xl76"&gt;&lt;FONT face=Verdana size=2&gt;T/sec&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" class="xl75"&gt;&lt;FONT face=Verdana size=2&gt;CPU&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl76 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" class="xl76"&gt;&lt;FONT face=Verdana size=2&gt;T/sec&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" class="xl75"&gt;&lt;FONT face=Verdana size=2&gt;CPU&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl76 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" class="xl76"&gt;&lt;FONT face=Verdana size=2&gt;T/sec&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" class="xl75"&gt;&lt;FONT face=Verdana size=2&gt;CPU&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl76 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" class="xl76"&gt;&lt;FONT face=Verdana size=2&gt;T/sec&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt" height=21&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15.75pt; BACKGROUND-COLOR: transparent" height=21 class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;Off&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;1%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;120&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;1%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;119&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;3%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;103&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;6%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;81&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;1%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;125&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;1%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;115&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;11%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;117&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;65%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;83&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;1&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;1%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;112&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;1%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;113&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;42%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;103&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;59%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;73&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;2&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;1%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;126&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;1%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;123&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;48%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;103&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;65%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;76&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;3&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;1%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;122&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;2%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;125&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;44%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;107&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;79%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;75&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;4&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;1%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;120&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;2%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;122&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;43%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;95&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;79%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;62&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;5&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;1%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;120&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;44%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;111&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;68%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;79&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;90%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;47&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;6&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;6%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;117&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;47%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;111&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;83%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;75&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;95%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;33&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;7&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;27%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;105&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;57%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;117&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;83%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;70&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;98%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;31&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;8&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;45%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;105&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;60%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;120&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;84%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;66&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;98%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;29&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt" height=21&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15.75pt; BACKGROUND-COLOR: transparent" height=21 class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;9&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" align=right class="xl69"&gt;&lt;FONT face=Verdana size=2&gt;45%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl70 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" align=right class="xl70"&gt;&lt;FONT face=Verdana size=2&gt;90&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" align=right class="xl69"&gt;&lt;FONT face=Verdana size=2&gt;60%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl70 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" align=right class="xl70"&gt;&lt;FONT face=Verdana size=2&gt;90&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" align=right class="xl69"&gt;&lt;FONT face=Verdana size=2&gt;84%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl70 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" align=right class="xl70"&gt;&lt;FONT face=Verdana size=2&gt;66&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" align=right class="xl69"&gt;&lt;FONT face=Verdana size=2&gt;98%&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl70 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" align=right class="xl70"&gt;&lt;FONT face=Verdana size=2&gt;29&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Time to First Byte (TTFB) - minimal load.&amp;nbsp; In milliseconds.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE class="" style="WIDTH: 221pt; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width=294 border=0&gt;
&lt;COLGROUP&gt;
&lt;COL style="WIDTH: 29pt; mso-width-source: userset; mso-width-alt: 1389" width=38&gt;
&lt;COL style="WIDTH: 48pt" span=4 width=64&gt;
&lt;TBODY&gt;
&lt;TR style="HEIGHT: 16.5pt" height=22&gt;
&lt;TD class="" style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; WIDTH: 29pt; BORDER-BOTTOM: #f0f0f0; HEIGHT: 16.5pt; BACKGROUND-COLOR: transparent" width=38 height=22&gt;Level&lt;/TD&gt;
&lt;TD class=xl76 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext 1.2pt solid; WIDTH: 48pt; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" width=64 class="xl76"&gt;&lt;FONT face=Verdana size=2&gt;4kb&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl77 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext; WIDTH: 48pt; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" width=64 class="xl77"&gt;&lt;FONT face=Verdana size=2&gt;28kb&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl77 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext; WIDTH: 48pt; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" width=64 class="xl77"&gt;&lt;FONT face=Verdana size=2&gt;689bytes&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl74 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext 1.2pt solid; BORDER-LEFT: windowtext; WIDTH: 48pt; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" width=64 class="xl74"&gt;&lt;FONT face=Verdana size=2&gt;516kb&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt" height=21&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15.75pt; BACKGROUND-COLOR: transparent" height=21 class="xl72"&gt;&lt;FONT face=Verdana size=2&gt;Off&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl71 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: #f0f0f0; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl71"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: #f0f0f0; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl75"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: #f0f0f0; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl75"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl73 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: #f0f0f0; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl73"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl72"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl65"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;15&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl72"&gt;&lt;FONT face=Verdana size=2&gt;1&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl65"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;24&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl72"&gt;&lt;FONT face=Verdana size=2&gt;2&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl65"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;26&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl72"&gt;&lt;FONT face=Verdana size=2&gt;3&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl65"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;33&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl72"&gt;&lt;FONT face=Verdana size=2&gt;4&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl65"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;40&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl72"&gt;&lt;FONT face=Verdana size=2&gt;5&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl65"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;57&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl72"&gt;&lt;FONT face=Verdana size=2&gt;6&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl65"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;78&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl72"&gt;&lt;FONT face=Verdana size=2&gt;7&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl65"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;79&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt" height=20&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" height=20 class="xl72"&gt;&lt;FONT face=Verdana size=2&gt;8&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl65"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl66"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right class="xl67"&gt;&lt;FONT face=Verdana size=2&gt;78&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt" height=21&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: #f0f0f0; BORDER-TOP: #f0f0f0; BORDER-LEFT: #f0f0f0; BORDER-BOTTOM: #f0f0f0; HEIGHT: 15.75pt; BACKGROUND-COLOR: transparent" height=21 class="xl72"&gt;&lt;FONT face=Verdana size=2&gt;9&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1.2pt solid; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" align=right class="xl69"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl70 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" align=right class="xl70"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl70 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" align=right class="xl70"&gt;&lt;FONT face=Verdana size=2&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 1.2pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1.2pt solid; BACKGROUND-COLOR: transparent" align=right class="xl68"&gt;&lt;FONT face=Verdana size=2&gt;78&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6923689" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author><category term="IIS" scheme="http://weblogs.asp.net/owscott/archive/tags/IIS/default.aspx" /><category term="IIS7" scheme="http://weblogs.asp.net/owscott/archive/tags/IIS7/default.aspx" /></entry><entry><title>New IIS 7 Configuration Reference</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/01/22/new-iis-7-configuration-reference.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/01/22/new-iis-7-configuration-reference.aspx</id><published>2009-01-22T13:50:00Z</published><updated>2009-01-22T13:50:00Z</updated><content type="html">&lt;P mce_keep="true"&gt;Whether programmer or administrator, we're always looking for details on certain ASP.NET or IIS configuration settings, and sometimes we come up wanting because of lack of good documentation.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The IIS team released an impressive IIS 7 reference a couple nights ago.&amp;nbsp; You can find it here: &lt;A href="http://www.iis.net/configreference"&gt;http://www.iis.net/configreference&lt;/A&gt;.&amp;nbsp; This is a reference definitely worth bookmarking.&amp;nbsp; You can take every IIS configuration item, click on it on the side and be provided with detailed information written directly from the IIS team.&amp;nbsp; &lt;A class="" href="http://blogs.iis.net/robert_mcmurray/archive/2009/01/21/new-iis-7-0-configuration-reference.aspx" mce_href="http://blogs.iis.net/robert_mcmurray/archive/2009/01/21/new-iis-7-0-configuration-reference.aspx"&gt;Robert McMurray&lt;/A&gt;&amp;nbsp;has worked hard to survey the product team directly to obtain a wealth of detailed information about every configuration setting, and Pete Harris and others have been hard at work helping make this happen.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Along with most sections is a full description, info on where the setting lives, a full list of Attributes with description of each one, often setup information and configuration samples and code/command samples for appcmd, Microsoft.Web.Administration and AHAdmin code samples for .NET (C#, VB.NET), JavaScript&amp;nbsp;or VBScript.&lt;/P&gt;
&lt;P mce_keep="true"&gt;I used it yesterday already to refresh my memory about responseMode for httpErrors: &lt;A href="http://www.iis.net/ConfigReference/system.webServer/httpErrors"&gt;http://www.iis.net/ConfigReference/system.webServer/httpErrors&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A class="" href="http://blogs.iis.net/bills/" mce_href="http://blogs.iis.net/bills/"&gt;Bill Staples&lt;/A&gt; announced it on his blog yesterday &lt;A class="" href="http://blogs.iis.net/bills/archive/2009/01/20/now-online-comprehensive-iis7-technical-reference.aspx" mce_href="http://blogs.iis.net/bills/archive/2009/01/20/now-online-comprehensive-iis7-technical-reference.aspx"&gt;too&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;This reference is well worth bookmarking.&amp;nbsp; It will come in handy.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6855877" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author><category term="IIS" scheme="http://weblogs.asp.net/owscott/archive/tags/IIS/default.aspx" /></entry><entry><title>Web Farms - How to tell which node is being served</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/01/18/web-farms-and-telling-which-node-is-handling-a-request-in-asp-net.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/01/18/web-farms-and-telling-which-node-is-handling-a-request-in-asp-net.aspx</id><published>2009-01-18T14:48:00Z</published><updated>2009-01-18T14:48:00Z</updated><content type="html">&lt;P mce_keep="true"&gt;I work with web farms on a daily basis, and one of the requirements that I run into, for testing, troubleshooting and logging, is to tell which node is handling a specific request.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;To use a current example, at &lt;A class="" href="http://www.orcsweb.com/" mce_href="http://www.orcsweb.com"&gt;ORCS Web&lt;/A&gt;, we're testing Microsoft's new &lt;A class="" href="http://learn.iis.net/page.aspx/489/using-the-application-request-routing-module/" mce_href="http://learn.iis.net/page.aspx/489/using-the-application-request-routing-module/"&gt;Application Request Routing Module (ARR)&lt;/A&gt; for performance, stability and features to see if it offers value along-side our other load balancing solutions.&amp;nbsp; (Note: ARR is&amp;nbsp;still in RC1 at the time of this writing)&amp;nbsp; During testing, I want to be able to tell how ARR is distributing the load under different settings.&amp;nbsp; Does a custom round robin setting really&amp;nbsp;work as promised?&amp;nbsp; Does the least current requests work?&amp;nbsp; How can I tell and test?&amp;nbsp; Etc, etc.&lt;/P&gt;
&lt;P mce_keep="true"&gt;One simple but important piece of information that I want to see over and over is which server node is being served.&amp;nbsp; Without knowing the server name of the web node, it's just a guessing game, and the testing is pretty useless.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Fortunately the solution is trivial in ASP.NET.&amp;nbsp; There are multiple ways to do it, but two namespaces that expose the machine name are System.Environment and System.Web.HttpContext.Current.Server.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;To create a testing page that exposes the server name in VB.NET, create a file called CurrentNode.aspx with the following in it:&lt;/P&gt;
&lt;P mce_keep="true"&gt;
&lt;DIV style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: gray 1px solid; COLOR: #000000; PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px solid; BACKGROUND-COLOR: #f1f1f1"&gt;&amp;lt;% &lt;BR&gt;Response.Write (System.Environment.MachineName)&lt;BR&gt;%&amp;gt; &lt;/DIV&gt;
&lt;P mce_keep="true"&gt;Or, if you're using C#, the only difference is the ; (semi-colon) requirement on the end:&lt;/P&gt;
&lt;P mce_keep="true"&gt;
&lt;DIV style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: gray 1px solid; COLOR: #000000; PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px solid; BACKGROUND-COLOR: #f1f1f1"&gt;&amp;lt;% &lt;BR&gt;Response.Write (System.Environment.MachineName);&lt;BR&gt;%&amp;gt; &lt;/DIV&gt;
&lt;P mce_keep="true"&gt;That is literally all that I put in the file, or else I tack this on the&amp;nbsp;bottom of an existing page.&amp;nbsp; You'll notice that it's not&amp;nbsp;valid HTML and nothing fancy, but no common browsers will complain, this is something that I can memorize and quickly type, and it's fully functional.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The computer name is obtained by Windows on system boot-up by reading the registry value.&lt;/P&gt;
&lt;P mce_keep="true"&gt;I'm not aware of any differences in functionality, but you can use the following instead:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: gray 1px solid; COLOR: #000000; PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px solid; BACKGROUND-COLOR: #f1f1f1"&gt;&amp;lt;% &lt;BR&gt;Response.Write (HttpContext.Current.Server.MachineName)&lt;BR&gt;%&amp;gt; &lt;/DIV&gt;
&lt;P mce_keep="true"&gt;Hit that page from the load balancer's IP (often called a VIP [virtual IP]) and you'll know which node is handling the request.&lt;/P&gt;
&lt;P mce_keep="true"&gt;This comes in useful for troubleshooting failures too.&amp;nbsp; You may have users saying that they are receiving errors on your site, but you're unable to reproduce it consistently.&amp;nbsp; Expose the server name in your error logging so that you know if it's something specific to particular nodes, or if it's global across all nodes.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6843803" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author><category term="IIS" scheme="http://weblogs.asp.net/owscott/archive/tags/IIS/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/owscott/archive/tags/ASP.NET/default.aspx" /><category term="IIS7" scheme="http://weblogs.asp.net/owscott/archive/tags/IIS7/default.aspx" /></entry><entry><title>Two computer guys and a treehouse</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/owscott/archive/2009/01/07/two-computer-guys-and-a-treehouse.aspx" /><id>http://weblogs.asp.net/owscott/archive/2009/01/07/two-computer-guys-and-a-treehouse.aspx</id><published>2009-01-08T05:46:00Z</published><updated>2009-01-08T05:46:00Z</updated><content type="html">&lt;P&gt;I don’t tend to blog too much about myself personally, but I thought I would break my mold and start off the new year with an exciting non-technical project I worked on over Christmas. This will hopefully kick off a year of more consistent blogging since I’ve been pretty quiet the last year. &lt;/P&gt;
&lt;P&gt;Being from Canada (I’ve lived in the States for 5 years) my family is a long way away and is only able to visit every couple years. This year we planned a 2 week vacation. My parents came down from Northern Canada (in the Sub-Arctic) and my Sister and family came down from Eastern Canada. &lt;/P&gt;
&lt;P&gt;My father’s thought of a great vacation is one where he works on a large unique project. I need to find something to build or do before he comes to visit. Note that he’s also in the computer industry, but \isn’t scared to take on any type of project. When we visited my sister’s family a few years ago, he rented a back-hoe, and we tore up her lawn and replaced the drainage along their house. When I visited my parents 2 years ago, he bought a cow, and we killed and butchered it. So, as you can guess, he was anxious for something along those lines. He suggested a treehouse, which we all thought would be very exciting, and we started looking at pictures online and dreaming up different ideas of what we would like. Of course, being the non-experts that we are, we dreamed really big, thinking it would be easily doable. &lt;/P&gt;
&lt;P&gt;Well, to make a long story short, we had a great vacation, working until about 2:00AM most days by the time we drew out our plans for the next day, created the bill of materials and all of that. We stopped sometimes to do something non-tree-house-related with the rest of the family, and of course the rest of the family joined in also. For the most part we worked around the clock. I’ll let the following pictures tell the rest of the story.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/1.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/1.jpg"&gt; 
&lt;P&gt;How does a computer geek with a Prius transport lumber? Use the Prius of course! That’s me standing there. (We got a truck for some of the materials, but the Prius worked for many of our small trips.)&lt;/P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/2.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/2.jpg"&gt; 
&lt;P&gt;Here’s my son Joel after we got the main beams in place. The design allows the trees to move in the wind without stressing the treehouse. The main platform sits on the cross beam that Joel is leaning against with some metal plates to allow movement as needed. It is amazing the force of the tree movement when it moves.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/3.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/3.jpg"&gt;&lt;/P&gt;
&lt;P&gt;My daughter Alisha figured that even 2 beams was enough to sit in the ‘treehouse’ and read a book. She’s a real outdoors person.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/4.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/4.jpg"&gt; 
&lt;P&gt;Here we are with the 6x6 posts were in place and we started to lay the 2x6’s for the floor. The weather was fairly nice. It was warm some days and cold other days and often rainy, but it was never too cold or wet to keep us from working. Got to love North Carolina.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 480px; HEIGHT: 640px" height=640 src="http://www.forsythfamily.com/photos/blog/5.jpg" width=480 mce_src="http://www.forsythfamily.com/photos/blog/5.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Here’s my father in the garage, with the back wall built and leaning up against the garage to mostly hide it from the rain.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/6.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/6.jpg"&gt; 
&lt;P&gt;Here’s the same view from the other side. 
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/7.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/7.jpg"&gt; 
&lt;P&gt;Alisa did most of the platform screws. 
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/8.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/8.jpg"&gt; 
&lt;P&gt;After getting going, we realized that leg bolts screwed into the tree wouldn’t be enough, so I had to get better drilling equipment to drill a hole right through the Oak trees and use threaded rods instead. Getting through the trees was not easy! 
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/9.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/9.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Getting ready to put up the walls, which we build in advance in the garage.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/10.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/10.jpg"&gt; 
&lt;P&gt;Further progress. 
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/11.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/11.jpg"&gt; 
&lt;P&gt;Front view 
&lt;P&gt;&lt;IMG style="WIDTH: 480px; HEIGHT: 640px" height=640 src="http://www.forsythfamily.com/photos/blog/12.jpg" width=480 mce_src="http://www.forsythfamily.com/photos/blog/12.jpg"&gt; 
&lt;P&gt;My sister trying out the view. 
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/13.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/13.jpg"&gt; 
&lt;P&gt;Here I am, working on the edge. This is the floor of the loft that I’m on. 
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/14.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/14.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Here’s my wife, Melissa, and kids in the partially finished loft. It’s 4 feet high, so not meant for the big people except sleeping. 
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/15.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/15.jpg"&gt; 
&lt;P&gt;Working on the roof was a lot of fun. 
&lt;P&gt;&lt;IMG style="WIDTH: 480px; HEIGHT: 640px" height=640 src="http://www.forsythfamily.com/photos/blog/16.jpg" width=480 mce_src="http://www.forsythfamily.com/photos/blog/16.jpg"&gt; 
&lt;P&gt;And for Christmas, we also got a zipline. Alisha is trying it out. We all love this. 
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/17.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/17.jpg"&gt; 
&lt;P&gt;My wife was the architect and builder for the rope bridge. She’s working on it now. 
&lt;P&gt;&lt;IMG style="WIDTH: 480px; HEIGHT: 640px" height=640 src="http://www.forsythfamily.com/photos/blog/18.jpg" width=480 mce_src="http://www.forsythfamily.com/photos/blog/18.jpg"&gt; 
&lt;P&gt;We got the mailbox for Christmas too! 
&lt;P&gt;&lt;IMG style="WIDTH: 480px; HEIGHT: 640px" height=640 src="http://www.forsythfamily.com/photos/blog/19.jpg" width=480 mce_src="http://www.forsythfamily.com/photos/blog/19.jpg"&gt; 
&lt;P&gt;Here’s the rope bridge. It worked out really well. 
&lt;P&gt;&lt;IMG style="WIDTH: 480px; HEIGHT: 640px" height=640 src="http://www.forsythfamily.com/photos/blog/20.jpg" width=480 mce_src="http://www.forsythfamily.com/photos/blog/20.jpg"&gt; 
&lt;P&gt;The patio 
&lt;P&gt;&lt;IMG style="WIDTH: 480px; HEIGHT: 640px" height=640 src="http://www.forsythfamily.com/photos/blog/21.jpg" width=480 mce_src="http://www.forsythfamily.com/photos/blog/21.jpg"&gt; 
&lt;P&gt;The inside isn’t finished yet, but here’s a view of the entry to the loft. The kids built the ladder by themselves!&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://www.forsythfamily.com/photos/blog/22.jpg" mce_src="http://www.forsythfamily.com/photos/blog/22.jpg"&gt; 
&lt;P&gt;Here’s the treehouse with the four of us hidden in it. Can you find us? 
&lt;P&gt;&lt;IMG style="WIDTH: 498px; HEIGHT: 374px" height=374 src="http://www.forsythfamily.com/photos/blog/23.jpg" width=498 mce_src="http://www.forsythfamily.com/photos/blog/23.jpg"&gt; 
&lt;P&gt;I’m sure we could have gotten a better picture, but here’s me on the zipline. 
&lt;P&gt;&lt;IMG style="WIDTH: 640px; HEIGHT: 480px" height=480 src="http://www.forsythfamily.com/photos/blog/24.jpg" width=640 mce_src="http://www.forsythfamily.com/photos/blog/24.jpg"&gt; 
&lt;P&gt;And, for New Year’s Eve, we had it ready enough to put up some lights for a party at our house.To wrap up, here’s a video my wife put together of the building: &lt;A href="http://www.forsythfamily.com/treehouse-movie.wmv"&gt;www.forsythfamily.com/treehouse-movie.wmv&lt;/A&gt; 
&lt;P&gt;This was a rewarding project for the family. I learned a ton and enjoyed the process. There are some loose ends to finish since we’re running electricity and insulating it so that it’s usable throughout all but the hottest months of the summer. It was definitely a much larger project that we originally expected, but having a usable treehouse in the backyard is worth it all! &lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6825876" width="1" height="1"&gt;</content><author><name>OWScott</name><uri>http://weblogs.asp.net/members/OWScott.aspx</uri></author></entry></feed>