<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Visual C++ Team Blog</title><subtitle type="html" /><id>http://blogs.msdn.com/vcblog/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/vcblog/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2009-08-05T14:51:00Z</updated><entry><title>Improvements to Find all references in Visual Studio 2010</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/11/17/improvements-to-find-all-references-in-visual-studio-2010.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/11/17/improvements-to-find-all-references-in-visual-studio-2010.aspx</id><published>2009-11-17T18:49:00Z</published><updated>2009-11-17T18:49:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Hello, my name is Raman Sharma, and I am a Program Manager on the VC++ team.&amp;nbsp; Through this blog post, I wish to highlight some changes we have made to an important feature in the C++ IDE, called “Find all References”.&amp;nbsp; As most of you would know, this feature is used to search for references to any element of your code (classes, class members, functions etc.), inside the entire solution.&amp;nbsp; In Visual Studio 2010, we have made some changes to this feature to provide more flexibility.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Let’s look at these changes through an example.&amp;nbsp; Let’s say you have the following piece of code:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9923736/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9923736/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Figure 1: Sample Code&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;The Old World&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;In Visual Studio 2008, if you invoke “Find all References” on the member function &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;printArea&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; of class &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;Circle&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; as in:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9923737/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9923737/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Figure 2: Invoke Find all References&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;You will see the results showing line numbers 7, 20 &amp;amp; 26 as below:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9923739/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9923739/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Figure 3: Results in VS 2008&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;It is to be noted that the results window &lt;B&gt;does not&lt;/B&gt; list all the places the word “printArea” appears.&amp;nbsp; It only lists specifically the places where printArea means the “member function &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;printArea&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; of class &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;Circle&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;” (on which Find all References was invoked).&amp;nbsp; The point is that this is in some sense a compiler-verified-search (I just coined that term but the concept is correct&lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;J&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;) wherein you will get exactly the C++ symbol you searched for.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;The New World&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In Visual Studio 2010 we have effectively created two modes of search: one that focuses on speed and the other that focuses on accuracy.&amp;nbsp; Needless to say, you can specify the default mode through options and we will remember that setting.&amp;nbsp; More on that later in this post.&lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=3&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Speed Mode&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;If you perform the same operation as described above in VS 2010, by default you will get the following results:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9923740/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9923740/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Figure 4: Default results in VS 2010&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Please note that this time around, the results window &lt;B&gt;does&lt;/B&gt; list all the places the word “printArea” appears (including the comments!).&amp;nbsp; Why? Because we wanted to provide the user with an option to search without invoking the compiler.&amp;nbsp; Needless to say, this option will speed up the search significantly, especially for large projects with a lot of hits.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;It’s worth mentioning that this search is &lt;B&gt;unlike&lt;/B&gt; just searching for some text in the entire solution.&amp;nbsp; This is because for this search, the C++ IDE uses an index to narrow the list of files to search.&amp;nbsp; So it doesn’t look through all the files in the solution.&amp;nbsp; The outcome is significantly better performance than just “Find in Files” (or grep), especially for large solutions.&lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=3&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Accuracy Mode&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;However, we understand that there can be instances where you want to reduce the ambiguity by filtering the results further.&amp;nbsp; This means you want better accuracy.&amp;nbsp; If you search for a member function of a class, you only want references to that member function of that class.&amp;nbsp; This is even if there are other classes with same named members or other overloads for this function within the same class.&amp;nbsp; To do this, right-click on the results in the results window and invoke “Resolve Results”:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9923741/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9923741/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Figure 5: Invoke Resolve Results&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;“Resolving results” uses the compiler to actually verify/confirm the entries and removes references that don’t precisely match.&amp;nbsp; You will be presented with the following results which contain only exact references to &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;Circle::printArea&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9923742/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9923742/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Figure 6: Resolved results in VS 2010&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;If you are feeling more adventurous, there is another part of the accuracy mode which is like asking the following question to the compiler: &lt;I&gt;“Filter out as many extraneous results as you can, and for those you are not sure about, show them anyway”&lt;/I&gt;.&amp;nbsp; The reason you would want to ask that question is if you want comments, code in different macro states etc. to be included in the search results.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The way to ask this question is to simply right-click on the resolved results in the window and to uncheck “Hide Unconfirmed”:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9923743/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9923743/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Figure 7: Uncheck "Hide Unconfirmed"&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Doing this will make sure that search results will exclude only those results which the compiler has verified are &lt;B&gt;definitely not&lt;/B&gt; references of &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;Circle::printArea.&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Anything that the compiler verifies is correct and anything it is not sure about will be listed.&amp;nbsp; The results will be as shown below:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9923744/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9923744/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Figure 8: Resolved and Unconfirmed results in VS 2010&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Notice this time the results include the comments.&amp;nbsp; It’s worth mentioning that this is the only mode that was supported by VS 2008&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The default mode for search is the speed mode.&amp;nbsp; This means, when you invoke Find-all-References, you will see all the places your search item appears.&amp;nbsp; However as with everything else in Visual Studio, there is a way to change this default behavior.&amp;nbsp; If you go to “Tools -&amp;gt; Options -&amp;gt; Text Editor-&amp;gt; C/C++ -&amp;gt;Advanced”, under References you will find two new options “Disable Resolving” and “Hide Unconfirmed”:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9923745/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9923745/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Figure 9: Options to set default search mode&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;By default the “Disable Resolving” flag is set to True (means Speed mode).&amp;nbsp; Setting it to False would cause all results to be verified with the compiler (means Accuracy mode).&amp;nbsp; Similarly the default value of “Hide Unconfirmed” flag is True.&amp;nbsp; Setting it to False will ensure that search results will contain unconfirmed results in addition to the resolved results.&amp;nbsp; The second flag makes sense only when the first flag is set to False.&amp;nbsp; Also to be noted is that resolving/unresolving from the results window will not affect the values of these flags.&amp;nbsp; These are global settings meant to specify default behavior.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Overall, we believe that these changes have introduced more flexibility enabling users to optimize their experience based on their own needs.&amp;nbsp; We are excited about this change and hope you will like it.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Thank you.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9923761" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author></entry><entry><title>Visual C++ Precompiled Header Errors on Windows 7</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/11/12/visual-c-precompiled-header-errors-on-windows-7.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/11/12/visual-c-precompiled-header-errors-on-windows-7.aspx</id><published>2009-11-12T22:08:00Z</published><updated>2009-11-12T22:08:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Several customers have encountered the following error while using the Visual C++ compiler on Windows 7:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;fatal error C1859: 'stdafx.pch' unexpected precompiled header error, simply rerunning the compiler might fix this problem&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;This error manifests under the following conditions:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The Visual C++ compiler is invoked on Windows 7.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Precompiled header (PCH) files are enabled.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;/analyze is enabled (this is not a necessary condition, but it increases the probability of encountering this behavior).&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Despite the error message’s suggestion, “simply rerunning the compiler” probably won’t help the situation. Indeed, the underlying cause of this error is far from “simple” as it stems from an interaction between our venerable precompiled header architecture and the new security enhancements in Windows 7. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 14pt; mso-bidi-font-size: 11.0pt"&gt;Visual C++ Precompiled Headers and ASLR&lt;/SPAN&gt;&lt;/B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Precompiled header files store the “state” of a compilation up to a certain point, and that state information can be reused in subsequent compiler invocations to significantly increase build throughput. For the past 15 years, our compiler has persisted precompiled headers to disk and reloaded them directly into virtual memory with 99.999% reliability and considerable performance gains. The tradeoff, however, was a degree of fragility in our architecture.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Since the PCH file itself contains internal pointers, &lt;B style="mso-bidi-font-weight: normal"&gt;it must be loaded at the exact same address&lt;I style="mso-bidi-font-style: normal"&gt; &lt;/I&gt;in virtual memory where it was created&lt;/B&gt;. The pointers will be inaccurate if the PCH is loaded at a different address in subsequent compilations. To complicate matters, the PCH also contains polymorphic objects, and each polymorphic object contains its own virtual function table pointer (VFTP).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;These VFTPs point to virtual function tables stored in modules. &lt;B style="mso-bidi-font-weight: normal"&gt;Therefore, if a polymorphic object in the PCH depends on a virtual function table in a particular module, that module must be loaded at the exact same virtual address as when the PCH was created.&lt;/B&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If the module is loaded at a different address in subsequent compilations, the VFTP’s in the PCH will be inaccurate.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;That’s a long-winded way of saying “both the PCH file and the modules it depends upon must not move between compilations!” The Visual C++ compiler will verify that both of these conditions are met before building, otherwise it will fail immediately with the above error. The latter condition bit us on Windows 7, which introduced more aggressive algorithms for &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/michael_howard/archive/2006/05/26/address-space-layout-randomization-in-windows-vista.aspx" mce_href="http://blogs.msdn.com/michael_howard/archive/2006/05/26/address-space-layout-randomization-in-windows-vista.aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;Address Space Layout Randomization (ASLR)&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;. ASLR mitigates certain malware exploits by randomly relocating modules within a process. To circumvent ASLR randomization in Vista, the compiler modules were previously built with &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/bb384887.aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb384887.aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;/dynamicbase:no&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; back in Visual Studio 2008. This was insufficient in Win7 as randomization became more aggressive.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Our first attempt to fix the problem involved setting the preferred base address of each compiler module to a location that we considered “safe” (i.e. would decrease the odds of modules colliding sufficiently). Unfortunately, cascading rebases continuously thwarted our efforts as one module would move into the preferred address space of another, and the domino effect would continue until a module that the PCH used was rebased. Failures like this were difficult to diagnose and often involved subtle factors, such as process creation order (i.e. devenv.exe loads a module that cl.exe uses, etc) and the Native DLL Loader.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We were essentially locked in a losing battle with the &lt;/FONT&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;&lt;A class="" href="http://en.wikipedia.org/wiki/Butterfly_effect" mce_href="http://en.wikipedia.org/wiki/Butterfly_effect"&gt;Butterfly effect&lt;/A&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 14pt; mso-bidi-font-size: 11.0pt"&gt;&lt;FONT face=Calibri&gt;Our Solution&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The majority of alternative solutions required either a substantial amount of work or an unacceptable performance hit. We finally decided to implement our own dispatch mechanism within the PCH data structures that eliminated the virtual function tables altogether. By “devirtualizing” the PCH data structures, we successfully eliminated the second criterion: compiler modules can now move about the process without breaking the precompiled header file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;This fix will be available in the final release of Visual Studio 2010, and a hotfix for Visual Studio 2008 will be released shortly. If you are encountering this problem in the interim, please try the following workarounds:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Disable /analyze (if enabled).&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Invoke a clean build.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Reboot your machine.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Disable PCH files.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Thanks,&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Mark Roberts&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Visual C++ Compiler Team&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921598" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author></entry><entry><title>Steps to Open Actionable Bugs</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/11/10/steps-to-open-actionable-bugs.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/11/10/steps-to-open-actionable-bugs.aspx</id><published>2009-11-11T00:37:00Z</published><updated>2009-11-11T00:37:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Hi, I am Vaishnavi Sannidhanam, test lead from the Visual C++ Compiler Backend team. I joined Visual C++ team 4 years &amp;nbsp;ago and helped ship VS2005 and VS2008. In this blog, I would like to introduce you to the most effective way of reporting actionable bugs to us.&lt;/FONT&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="COLOR: windowtext; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT face=Cambria&gt;Where to open the bug&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;When you find a bug, the best way for you to report it, is to reach us through Microsoft Connect. To report a bug through Microsoft Connect, open the Connect page (&lt;/FONT&gt;&lt;A href="https://connect.microsoft.com/" mce_href="https://connect.microsoft.com/"&gt;&lt;SPAN style="COLOR: windowtext"&gt;&lt;FONT face=Calibri size=3&gt;https://connect.microsoft.com/&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;) and click on “&lt;B&gt;&lt;I&gt;Your Dashboard”&lt;/I&gt;&lt;/B&gt;. Select the project the bug pertains to and proceed with opening the bug.&lt;/FONT&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="COLOR: windowtext; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT face=Cambria&gt;Usage Scenario&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Giving a description of why you are doing what you are doing, to help us understand and evaluate the importance of this bug fix for you. &lt;/FONT&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="COLOR: windowtext; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT face=Cambria&gt;Providing us with a repro&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;A repro is nothing but a series of steps that reproduce the behavior you are seeing. It is always useful to give us a repro and the smaller a repro the better it is for us. Sometimes you might not be able to attach a repro case through Microsoft Connect because of the size of the repro. If that is the case, please do make a note in the bug that you have a repro that you were not able to attach and we will make other arrangements to get that from you. It would also be great if you provide us with the expected and the actual behaviors. For UI/accessibility/localization related issues, it is very useful if you were to give us a screen shot of the broken behavior. It would also be very valuable if you let us know what version of the product you found the bug in.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Below are specific issues where special pieces of information pertaining to the bug would greatly help us&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Project conversion issues&lt;/B&gt;: It would be tremendously helpful for us when the opened bug contains the following information&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.55in; TEXT-INDENT: -0.3in; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;1.1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Original project file &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.55in; TEXT-INDENT: -0.3in; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;1.2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Conversion log (upgradelog*.xml which can be found in the solution or project directory depending on what is getting converted)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.55in; TEXT-INDENT: -0.3in; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;1.3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Description of the problem you ran into&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Visual Studio Crashes&lt;/B&gt;: These are usually reported to us as Watson reports hence nothing further needs to be done. However, if for some reason you are not getting a Watson prompt, you can open a bug with the repro steps detailing the version of VS, the type of the project (you are more than welcome to share out the project with us as this improves our chances of reproducing the crash), the series of actions you performed that caused VS to crash, etc. If the crash is on Win7, then the usual JIT window to attach debugger after crash will not be shown, by default the settings hide it.&amp;nbsp; If you want to debug through the issue, here are steps to turn the debugger on:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.55in; TEXT-INDENT: -0.3in; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;2.1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Go to Control Panel &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; System and Security &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Action Center &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; &amp;nbsp;Change Action Center settings &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Problem Reporting Settings&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.55in; TEXT-INDENT: -0.3in; mso-list: l0 level2 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;2.2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Select “Each time a problem occurs, ask me before checking for solutions”&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.25in"&gt;&lt;FONT face=Calibri size=3&gt;Alternatively if your group policy blocks this setting you can click on Select programs to exclude from reporting and add - %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe and %ProgramFiles%\Microsoft Visual Studio 10.0\VC\vcpackages\vcpkgsvr.exe&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Intellisense failures and browsing related issues:&lt;/B&gt; You can use the new dev10 feature that enables logging. To enable this feature you can go to Tools &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Options &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Text Editor &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; C++ &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Advanced &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Logging Level and set this to true and level to be 5. By default this is disabled. Once enabled, you can reproduce the problem and attach the resulting log. You can see this log through the output window by selecting “&lt;B&gt;&lt;I&gt;Visual C++ Log&lt;/I&gt;&lt;/B&gt;”.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;4.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Memory Consumption Issues:&lt;/B&gt; It would be easier for us to track down memory issues if you let us know the amount of memory being used along with a detailed description of what type of actions is causing this to happen. Sharing out your project or a project that exhibits this problem as a repro case would greatly increase our ability to repro this bug on our end. You can also use the sysinternals tool vmmap (&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx" mce_href="http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx"&gt;&lt;SPAN style="COLOR: windowtext"&gt;&lt;FONT face=Calibri size=3&gt;http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;) to look at various memory metrics such as virtual memory, working set, native heap, managed heap etc. You can create vmmap files by running vmmap.exe, attaching to devenv.exe when it is in the high-memory state, and selecting Save from the menu.&amp;nbsp; This saves some data about how the memory is being used in the system which allows us to more easily spot where to start looking for the problem. You can attach this file as part of the bug as well.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;5.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Project Build issues: &amp;nbsp;&lt;/B&gt;Detailed build log will be very helpful when you hit project&amp;nbsp; build issues. You can enable detailed logging by going to Tools &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Options &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Projects and Solutions &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Build and Run, set “MSBuild Project build output verbosity” to “Diagnostic” in IDE build or pass /v:diag switch to MSBuild for command line build. It will be helpful if you can also provide the build log from previous versions of Visual Studio.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;6.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Compile Time Issues:&lt;/B&gt; You can produce a &lt;B&gt;&lt;I&gt;pre-processed file or a link repro&lt;/I&gt;&lt;/B&gt; depending on what kind of problem you are running into. The steps on how to generate these files are documented at &amp;nbsp;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;A href="http://support.microsoft.com/kb/974229" mce_href="http://support.microsoft.com/kb/974229"&gt;&lt;FONT color=#0000ff&gt;http://support.microsoft.com/kb/974229&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;. Also it is always useful to gather all the switches you are using when doing a compile. By default the switches passed to the compiler will not be shown in the output window and you can turn this on by going to &amp;nbsp;Tools &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Options &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Projects and Solutions &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Build and Run, set “MSBuild Project build output verbosity” to “Diagnostic”. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pre-processed files:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;The very best kind of repro is the small section of source that compiles all on its own without any dependencies and produces an executable that reproduces the problem. If you have this kind of a dependence free repro, please report it along with what wrong behavior you observe and what you think the right behavior is. However, it is very hard and time consuming to produce a dependence free repro. That’s why the next best kind of repro is the single, pre-processed file.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;For managed code, it is more useful for us if you give us the preprocessed file (following the instructions above) along with&lt;B&gt; &lt;/B&gt;all the assemblies referenced during compilation. You can find out what assemblies are referenced by adding /showIncludes to the command line or by clicking no project properties &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Configuration Properties &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; C/C++ &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Advanced &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Show Includes &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; Yes&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Reporting bugs in the pre-processor:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;For bugs in the pre-processor (i.e. compiling something /P or /EP doesn’t yield what you think it should), a more elaborate repro helps us out. The elaborate repro is nothing but the main one source file where you noticed the problem along with all the others that the main one #includes.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;The easiest way to obtain all the source files is to build your repro case with /showIncludes. This will list all the files that are brought in during compilation. If you copy all those files to a directory, you should be able to reproduce the problem in isolation from the rest of your sourcebase. For instance, you should be able to set INCLUDE=. and still be able to produce an object file. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Link Repros:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;Link repros are used when bugs are occurring during link time for both LTCG and non-LTCG cases. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 12pt 0in 3pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;To generate repros for problems with Profile Guided Optimization (PGO): Problems with the Instrumented Build, &amp;nbsp;i.e. passing /PGI, simply follow the link repro instructions detailed at&lt;SPAN style="COLOR: #1f497d"&gt; &lt;A href="http://support.microsoft.com/kb/974229" mce_href="http://support.microsoft.com/kb/974229"&gt;&lt;FONT color=#0000ff&gt;http://support.microsoft.com/kb/974229&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;. All needed files will be copied over to the link repro directory.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 12pt 0in 3pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;To generate repros for problems with Profile Guided Optimization (PGO): Problems with the Optimized Build, i.e. passing /PGO, simply follow the link repro instructions detailed at &lt;SPAN style="COLOR: #1f497d"&gt;&lt;A href="http://support.microsoft.com/kb/974229" mce_href="http://support.microsoft.com/kb/974229"&gt;&lt;FONT color=#0000ff&gt;http://support.microsoft.com/kb/974229&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;. In addition, include the .PGC files from your scenario that is causing the problem you want to report. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;B&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;7.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Application Runtime Issues:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Floating point precision issues&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;After using the above described techniques to reduce your repro size, letting us know what your expected result is and what we are producing is very valuable for us. Also helping us understand what kind of an impact this precision error has on your product would be useful for us when we decide on when to fix the bug. You might also want to look into the various floating point options that the compiler provides that help you choose between precision and performance (&lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/e7s85ffb(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/e7s85ffb(VS.100).aspx"&gt;&lt;SPAN style="COLOR: windowtext"&gt;&lt;FONT face=Calibri size=3&gt;http://msdn.microsoft.com/en-us/library/e7s85ffb(VS.100).aspx&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; ).&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application crashes&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;When your application crashes and you think it is a compiler issue because &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;you don’t find any fault in your code&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;you see that this crash happens with the new version after upgrade and does not happen with the old version&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;you see that the crash happens only in release mode and not in debug mode&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;In these cases you could provide us with the source code that exhibits this behavior. We would really appreciate it if it were a reduced repro case as this tremendously helps us &lt;/FONT&gt;&lt;FONT face=Calibri size=3&gt;in narrowing down the problem. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Thank you for reading through this blog. I hope this blog enables you to open actionable bugs which in turn will help us ship a higher quality product. Thank you for dogfooding our product.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9920535" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author></entry><entry><title>Visual C++ Code Generation in Visual Studio 2010</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/11/02/visual-c-code-generation-in-visual-studio-2010.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/11/02/visual-c-code-generation-in-visual-studio-2010.aspx</id><published>2009-11-02T18:56:00Z</published><updated>2009-11-02T18:56:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Hello, I’m Ten Tzen, a Compiler Architect on the Visual C++ Compiler Code Generation team. Today, I’m going to introduce some noteworthy improvements in Visual Studio 2010. &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Faster LTCG Compilation&lt;/B&gt;:&amp;nbsp; LTCG (Link Time Code Generation) &lt;SPAN style="COLOR: black"&gt;allows the compiler to perform better optimizations with information on all modules in the program (for more details s&lt;/SPAN&gt;ee &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/0zza0de8(VS.100).aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;).&amp;nbsp; To merge information from all modules, LTCG compilation generally takes longer than non-LTCG compilation, particularly for large applications.&amp;nbsp; In VS2010, we improved the information merging process and sped up LTCG compilation significantly. An LTCG build of Microsoft SQL Server (an application with .text size greater than 50MB) is sped up by ~30%. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Faster Pogo Instrumentation run&lt;/B&gt;:&amp;nbsp; Profile Guided Optimization (PGO) is an approach to optimization where the compiler uses profile information to make better optimization decisions for the program. &amp;nbsp;See &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/vcblog/archive/2008/11/12/pogo.aspx"&gt;&lt;FONT face=Calibri size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; or &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/aa289170(VS.71).aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; for an introduction of PGO.&amp;nbsp; One major drawback of PGO is that the instrumented run is usually several times slower than a regular optimized run.&amp;nbsp; In VS2010, we s&lt;SPAN style="COLOR: black"&gt;upport a no-lock version of the instrumented binaries.&amp;nbsp; With that the scenario (PGI) runs are about 1.7X faster.&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;&lt;SPAN style="COLOR: black"&gt;Code size reduction for X64 target: &lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="COLOR: black"&gt;Code size is a crucial factor to performance especially for applications that are performance-sensitive to the behavior of instruction cache or working set.&amp;nbsp; In VS2010, several effective optimizations are introduced or improved for X64 architecture. Some of the improvements are listed below:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;More aggressively use RBP as the frame pointer to access local variables. RBP-relative address mode is one byte shorter than RSP-relative. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT face=Calibri size=3&gt;Enable tail merge optimizations with the presence of C++ EH or Windows SEH (see &lt;/FONT&gt;&lt;/SPAN&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/1deeycx5(VS.100).aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT face=Calibri size=3&gt; and &lt;/FONT&gt;&lt;/SPAN&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/ms680657(VS.85).aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; for EH or SEH).&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Combine successive constant stores to one store.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Recognize more cases where we can emit 32-bit instruction for 64-bit immediate constants. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Recognize more cases where we can use a 32-bit move instead of a 64-bit move. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Optimize the code sequence of C++ EH destructor funclets.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Altogether, we have observed code size reduction in the range of 3% to 10% with various Microsoft products such as the Windows kernel components, SQL, Excel, etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;&lt;SPAN style="COLOR: black"&gt;Improvements for “Speed”:&amp;nbsp; &lt;/SPAN&gt;&lt;/B&gt;As usual, there are also many code quality tuning and improvements done across different code generation areas for “speed’.&amp;nbsp; In this release, we have focused more on the X64 target.&amp;nbsp; The following are s&lt;SPAN style="COLOR: black"&gt;ome of the important changes that have contributed to these improvements:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l2 level1 lfo2"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Identify and use CMOV instruction when beneficial in more situations&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l2 level1 lfo2"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;More effectively combine induction variable to reduce register pressure&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l2 level1 lfo2"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Improve detection of region constants for strength reduction in a loop&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l2 level1 lfo2"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Improve scalar replacement optimization in a loop&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l2 level1 lfo2"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Improvement of avoiding store forwarding stall &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l2 level1 lfo2"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Use XMM registers for memcpy intrinsic&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l2 level1 lfo2"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Improve Inliner heuristics to identify and make more beneficial inlining decisions &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Overall, we see an 8% i&lt;SPAN style="COLOR: black"&gt;mprovement as measured by integer benchmarks and a few % points on the floating point suites for X64. &lt;/SPAN&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;&lt;SPAN style="COLOR: black"&gt;Better SIMD code generation for X86 and X64 targets&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="COLOR: black"&gt;:&amp;nbsp; The quality of SSE/SSE2 SIMD code is crucial to game, audio, video and graphic developers.&amp;nbsp; Unlike inline asm which inhibits compiler optimization of surrounding code, intrinsics were designed to allow more effective optimization and still give developers access to low-level control of the machine.&amp;nbsp; In VS2010, we have added several simple but effective optimizations that focus on SIMD intrinsic quality and performance.&amp;nbsp; Some of the improvements are listed below:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level1 lfo3"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Break false dependency:&amp;nbsp; The scalar convert instructions (CVTSI2SD, CVTSI2SS, CVTSS2SD, or CVTSD2SS) do not modify the upper bits of the destination register. This causes a false dependency which could significantly affect performance. To break the false dependence of memory to register conversions, VS2010 compiler inserts MOVD/MOVSS/MOVSD to zero-out the upper bits and use the corresponding packed conversion.&amp;nbsp; For instance, &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt 0.5in; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;FONT size=3&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT face=Calibri&gt;cvtsi2ss xmm0, mem-operand&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT face=Calibri&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movd xmm0, mem-operand&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cvtdq2ps xmm0, xmm0&lt;BR&gt;&lt;BR&gt;For register to register conversions, XORPS is inserted to break the false dependency.&lt;BR&gt;&lt;BR&gt;cvtsd2ss xmm1, xmm0&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xorps xmm1, xmm1&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cvtsd2ss xmm1, xmm0 &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Even though this optimization may increase code size we have observed a significant positive performance improvement on several real world code and benchmark programs.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level1 lfo3"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT face=Calibri&gt;Perform vectorization for constant vector initializations: In VS2008, a simple initialization statement, such as&lt;/FONT&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt; &lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'Berlin Sans FB','sans-serif'"&gt;__m128 x = { 1, 2, 3, 4 },&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT face=Calibri&gt;would require ~10 instructions. With&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'Arial','sans-serif'"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT face=Calibri&gt;VS2010, it’s optimized down to a couple of instructions.&amp;nbsp; This can apply to dimensional initialization as well.&amp;nbsp; The instructions generated for initialization statements like &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'Berlin Sans FB','sans-serif'"&gt;__m128 x[] = {{1,2,3,4}, {5,6}} or __m128 t2[][2]= {{{1,2},{3,4,5}}, {{6},{7,8,9}}}; &lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;are greatly reduced with VS2010.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level1 lfo3"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT face=Calibri&gt;Optimize __mm_set_**(), __mm_setr_**() and __mm_set1_**() intrinsic family.&amp;nbsp; In VS2008, a series of unpack instructions are used to do the combining of scalar values. When all arguments are constants, this can be achieved with a single vector instruction.&amp;nbsp; For example, the single statement, &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'Berlin Sans FB','sans-serif'"&gt;return _mm_set_epi16(0, 1, 2, 3, -4, -5, 6, 7)&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT face=Calibri&gt;, would require ~20 instructions to implement in previous releases while it’s only one instruction is required in&amp;nbsp; VS2010.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Better register allocation for XMM registers thus removing many redundant loads, stores and moves.&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 12pt 0.5in; VERTICAL-ALIGN: middle; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level1 lfo3"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Enable Compare &amp;amp; JCC CSE (Common Sub-expression Elimination) for SSE compares.&amp;nbsp; For example, the code sequence below at left will be optimized to the code sequence at right:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 12pt 1in; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;FONT size=3&gt;&lt;SPAN style="COLOR: #404040"&gt;&lt;FONT face=Calibri&gt;ECX, CC1 = PCMPISTRI &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ECX, CC1 = PCMPISTRI&lt;BR&gt;JCC(EQ) CC1 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JCC(EQ) CC1&lt;BR&gt;ECX, CC2 = PCMPISTRI &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #404040; FONT-FAMILY: Wingdings"&gt;à&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: #404040"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JCC(ULT) CC2 &lt;BR&gt;JCC(ULT) CC2 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JCC(P) CC3 &lt;BR&gt;ECX, CC3 = PCMPISTRI&lt;BR&gt;JCC(P) CC3&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Support for AVX in Intel and AMD processors:&amp;nbsp;&amp;nbsp; &lt;/B&gt;Intel AVX (Intel Advanced Vector Extensions) is a 256 bit instruction set extension to SSE and is designed for applications that are floating point intensive (See &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://software.intel.com/en-us/avx/"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; and &lt;/FONT&gt;&lt;A href="http://forums.amd.com/devblog/blogpost.cfm?threadid=112934&amp;amp;catid=208"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; for detailed information from Intel and AMD respectively).&amp;nbsp; In VS2010 release, all AVX features and instructions are fully supported via intrinsic and /arch:AVX.&amp;nbsp; Many optimizations have been added to improve the code quality of AVX code generation which will be described with more details in an upcoming blog post.&amp;nbsp;In addition to AVX support in the compiler, the Microsoft Macro Assembler (MASM) in VS2010 also supports the Intel AVX instruction set for x86 and x64.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;A class="" name=_GoBack&gt;&lt;/A&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;More precise Floating Point computation with /fp:fast: &lt;/B&gt;To achieve maximum speed, the compiler is allowed to optimize floating point computation aggressively under &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/e7s85ffb(VS.100).aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;/fp:fast option&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;.&amp;nbsp; The consequence is that the floating point computation errors can accumulate and a result could be so inaccurate that it could severely affect the outcome of programs.&amp;nbsp; For example, we observed that more than half of the programs in the floating points benchmark suite fail with /fp:fast in VS2008 on the X64 targets.&amp;nbsp; In order to make /fp:fast more useful, we “down-tuned” a couple of optimizations in VS2010. This change could slightly affect the performance of some programs that were previously built with /fp:fast but will improve their accuracy.&amp;nbsp; And if your programs were failing with /fp:fast in earlier releases, you may see better results with VS2010.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Conclusion&lt;/B&gt;: The Visual C++ team cares about the performance of applications built with our compiler and we continue to work with customers and CPU vendors to improve code generation. If you see issues or opportunities for improvements, please let us know though &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://connect.microsoft.com/"&gt;&lt;FONT face=Calibri size=3&gt;Connect&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; or through our blog.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; VERTICAL-ALIGN: middle; LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9916304" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author></entry><entry><title>Channel 9 Video: Stephan T. Lavavej - Everything you ever wanted to know about nullptr</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/10/27/channel-9-video-stephan-t-lavavej-everything-you-ever-wanted-to-know-about-nullptr.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/10/27/channel-9-video-stephan-t-lavavej-everything-you-ever-wanted-to-know-about-nullptr.aspx</id><published>2009-10-27T16:11:00Z</published><updated>2009-10-27T16:11:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Stephan T. Lavavej is back in front of the Channel 9 cameras once again for a discussion on our recently implemented C++0x feature “nullptr”. In a &lt;/FONT&gt;&lt;A href="http://channel9.msdn.com/shows/Going+Deep/VC-10-Stephan-T-Lavavej-and-Damien-Watkins-Inside-STL/"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;previous channel 9 appearance&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;, Stephan spoke about the C++0x language and library features we were implementing for VS2010 &amp;nbsp;and the various interdependencies between various features (for example, how rvalue references – a language feature – enable move semantics and perfect forwarding in our Standard Template Library implementation – a library feature.) In this video Stephan describes how rvalue references exposed a few loopholes in the C++ type system around the NULL macro (or more specifically around the value of the NULL macro, the integer constant 0, and how this value is treated “differently” by the compiler to other integer constants.) The issue had already been identified by the C++ Language Committee and a solution had been added to the C++0x language specification (the aforementioned “nullptr”). And to add even more good news, customers can see and use this feature (and all our other C++0x Features) in the Visual Studio 2010 Beta 2 which was &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/somasegar/archive/2009/10/19/announcing-visual-studio-2010-and-net-fx-4-beta-2.aspx"&gt;&lt;FONT face=Calibri size=3&gt;released this week&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;. &amp;nbsp;We hope you enjoy &lt;/FONT&gt;&lt;A href="http://channel9.msdn.com/shows/Going+Deep/Stephan-T-Lavavej-Everything-you-ever-wanted-to-know-about-nullptr/"&gt;&lt;FONT face=Calibri size=3&gt;Stephan’s latest theatrical release.&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Thanks&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Damien&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9913560" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author><category term="Dev" scheme="http://blogs.msdn.com/vcblog/archive/tags/Dev/default.aspx" /><category term="Channel 9" scheme="http://blogs.msdn.com/vcblog/archive/tags/Channel+9/default.aspx" /></entry><entry><title>Visual Studio 2010 Beta 2  Is Now Available For Download</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/10/22/visual-studio-2010-beta-2-is-now-available-for-download.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/10/22/visual-studio-2010-beta-2-is-now-available-for-download.aspx</id><published>2009-10-22T16:32:00Z</published><updated>2009-10-22T16:32:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;We are very pleased to announce we have released Visual Studio 2010 Beta 2.&amp;nbsp; You can read the official &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/somasegar/archive/2009/10/19/announcing-visual-studio-2010-and-net-fx-4-beta-2.aspx"&gt;&lt;FONT face=Calibri size=3&gt;Beta 2 announcement&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; on Soma’s blog. The Visual C++ team has added a few new features and, of course, many bug fixes. The additional features include some substantial new functionality in the MFC library&lt;SPAN style="COLOR: #1f497d"&gt; &lt;/SPAN&gt;and the return of the MFC Class Wizard.&lt;SPAN style="COLOR: red"&gt; &lt;/SPAN&gt;We &amp;nbsp;are currently filming some Channel 9 videos and writing a few VC Blog posts. Our first two Channel 9 videos on Beta 2 are already online.&amp;nbsp; The video on the C++0x Language feature “nullptr” &amp;nbsp;&lt;/FONT&gt;&lt;A href="http://channel9.msdn.com/shows/Going+Deep/Stephan-T-Lavavej-Everything-you-ever-wanted-to-know-about-nullptr/"&gt;&lt;FONT face=Calibri size=3&gt;is here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; and the video on the MFC features &lt;/FONT&gt;&lt;A href="http://channel9.msdn.com/posts/Charles/Pat-Brenner-Visual-Studio-2010-MFC-and-Windows-7/"&gt;&lt;FONT face=Calibri size=3&gt;is here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;. You can download Beta2 from &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx"&gt;&lt;FONT face=Calibri size=3&gt;this location&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;. &amp;nbsp;Please be sure to continue to watch this blog for updates. &amp;nbsp;&amp;nbsp;As always we welcome your comments/suggestions/criticisms on our blog.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT size=+0&gt;&lt;FONT face=Calibri&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;Thank you,&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;Damien Watkins and Kelly Evans&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;Visual C++ Team &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911482" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author></entry><entry><title>Visual C++ Code Model in Visual Studio 2010</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/10/14/visual-c-code-model-in-visual-studio-2010.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/10/14/visual-c-code-model-in-visual-studio-2010.aspx</id><published>2009-10-14T21:03:00Z</published><updated>2009-10-14T21:03:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Hello, I’m Vytautas Leonavičius, a developer on the &lt;I&gt;Visual C++ IDE&lt;/I&gt; team. Today, I’d like to discuss how the new principles we’re applying to code browsing in &lt;I&gt;Visual Studio 2010&lt;/I&gt; (see &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/vcblog/archive/2009/08/12/tag-parsing-c.aspx" mce_href="http://blogs.msdn.com/vcblog/archive/2009/08/12/tag-parsing-c.aspx"&gt;&lt;FONT face=Calibri size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; and &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/vcblog/archive/2009/05/27/rebuilding-intellisense.aspx" mce_href="http://blogs.msdn.com/vcblog/archive/2009/05/27/rebuilding-intellisense.aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;) will affect &lt;I&gt;VCCodeModel&lt;/I&gt;.&amp;nbsp; General information about &lt;I&gt;VCCodeModel&lt;/I&gt; can be found &lt;/FONT&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/t41260xs(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/t41260xs(VS.80).aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 10pt 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 13pt; COLOR: #4f81bd; LINE-HEIGHT: 115%; FONT-FAMILY: 'Cambria','serif'"&gt;Improvements&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Because of our new incremental update architecture, &lt;I&gt;VCCodeModel&lt;/I&gt; implicitly gets certain benefits:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;•&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Availability:&lt;/B&gt; Once initial population is done,&lt;I&gt; VCCodeModel&lt;/I&gt; is pretty much always available. That is a positive result of design decisions to parse files independently. No change of a single file (even the omnipresent windows.h, if you like) will cause “rebuild of the world”. That means, if issued, calls to &lt;B&gt;&lt;I&gt;VCCodeModel.Synchronize&lt;/I&gt;&lt;/B&gt; will return almost instantly.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-bidi-font-weight: bold"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;•&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Reliability:&lt;/B&gt; We no longer use the old &lt;I&gt;NCB&lt;/I&gt; &lt;I&gt;database&lt;/I&gt;. Instead, we now use the same redistributable SQL CE components that we provide to our end-users.&amp;nbsp; Suggestions to “delete your .ncb file” (due to DB corruption) in order to restore functionality of &lt;I&gt;Browsing/Intellisense&lt;/I&gt; are a thing of the past.&amp;nbsp; &lt;B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-bidi-font-weight: bold"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;•&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Independence from a macro state:&lt;/B&gt; Prior to &lt;I&gt;Visual Studio 2010&lt;/I&gt;, a file snapshot was taken in a certain undefined macro state. Depending on macro state active in a translation unit at the moment file contents were analyzed, certain constructs would or would not make it into the &lt;I&gt;NCB database&lt;/I&gt;.&amp;nbsp; That caused a lot of confusion.&amp;nbsp; In &lt;I&gt;Visual Studio 2010&lt;/I&gt; macro state is ignored and all source file declarations and definitions make it into database, and therefore into &lt;I&gt;VCCodeModel&lt;/I&gt;.&lt;B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: green; FONT-FAMILY: Consolas"&gt;// Both A and B will make it into database and VCCodeModel, no matter if X is&lt;BR&gt;// defined or not.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;#ifdef&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt; X&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;class&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt; A {};&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;#else&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;class&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt; B {};&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;#endif&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;BR&gt;&lt;FONT face=Calibri size=3&gt;See &lt;B&gt;Dealing with preprocessor conditional directives &lt;/B&gt;and&lt;B&gt; Hint files &lt;/B&gt;sections of Thierry’s &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/vcblog/archive/2009/08/12/tag-parsing-c.aspx" mce_href="http://blogs.msdn.com/vcblog/archive/2009/08/12/tag-parsing-c.aspx"&gt;&lt;FONT face=Calibri size=3&gt;post&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo2"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;•&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Improved eventing model:&lt;I&gt; &lt;/I&gt;&lt;/B&gt;&lt;I&gt;VCCodeModel&lt;/I&gt; edit &lt;I&gt;Events&lt;/I&gt; are more precise and correct, thanks to improvements to our &lt;I&gt;code difference&lt;/I&gt; algorithms.&amp;nbsp; The new &lt;I&gt;difference&lt;/I&gt; algorithms have better understanding of user edits.&amp;nbsp; This is especially true in the presence of templates. This improves the reliability of the&lt;I&gt; Visual C++ Wizards &lt;/I&gt;and clients who listen to &lt;I&gt;VCCodeModel Events&lt;/I&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo2"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;•&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Performance&lt;I&gt;: &lt;/I&gt;&lt;/B&gt;&lt;I&gt;VCCodeModel&lt;/I&gt; is faster in scenarios where an object reference is taken and passed through external third party code (your code!) which may perform looped inquiries. This is thanks to some targeted caching we added to&lt;I&gt; VCCodeModel&lt;/I&gt;.&amp;nbsp; All clients should benefit from this since many of &lt;I&gt;VCCodeModel&lt;/I&gt; services are implemented using its externally exposed APIs for correctness.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 10pt 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 13pt; COLOR: #4f81bd; LINE-HEIGHT: 115%; FONT-FAMILY: 'Cambria','serif'"&gt;Limitations&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The aforementioned benefits are primarily brought about by the design decision to treat every single file independently and through some targeted performance work.&amp;nbsp; However, a downside that this design decision exposes is a lack of absolute precision in full symbol resolution in &lt;I&gt;Visual Studio 2010 Browsing&lt;/I&gt;. It applies the following limitations on &lt;I&gt;VCCodeModel&lt;/I&gt;: &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l5 level1 lfo3"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;•&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;No symbol resolution&lt;/B&gt;: Type Strings for functions (return type), typedefs, base classes, macro definitions (except those specified in hint files) and parameters are coming directly from source code. They are no longer resolved by compiler as it used to be.&amp;nbsp; This problem may surface if a caller wants to figure out precisely what type a function is returning:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Example 1:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt; &lt;SPAN style="COLOR: blue"&gt;namespace&lt;/SPAN&gt; X;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;using namespace &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;Z;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;Type foo() { &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; Type(); }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt 0.5in"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The Type String for &lt;B&gt;&lt;I&gt;VCCodeFunction &lt;/I&gt;&lt;/B&gt;object referring to function &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;foo&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; is &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;Type&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;. We don’t really know if it is &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;X::Type&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;, global &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;Type&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; or &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;Z::Type&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;. Note that &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;using namespace&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; in this&amp;nbsp;sample, should not necessarily be in same file, it can be in a header (far away). Without building the full translation unit, there’s no efficient way to resolve the symbol &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;Type&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; deterministically and to maintain the performance improvements that our customers desire and that we have achieved with this new design. &lt;B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Example 2:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;File.h&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;class&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt; Base {};&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;File2.h &lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: Consolas"&gt;namespace&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; LINE-HEIGHT: 115%; FONT-FAMILY: Consolas"&gt; A {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; Base {};&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; LINE-HEIGHT: 115%; FONT-FAMILY: Consolas"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;namespace&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt; B { &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; Base {};&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;File.cpp&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;#include&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt; “a_header_including_many_headers_and_introducing_using_directives.h”&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;class&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt; Derived : Base &lt;SPAN style="COLOR: green"&gt;// Which Base is that? Base, A::Base or B::Base?&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;{};&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;BR&gt;&lt;FONT face=Calibri size=3&gt;Lack of precise fully-qualified symbol resolution affects&lt;B&gt; &lt;I&gt;TypeString&lt;/I&gt;&lt;/B&gt; properties of &lt;B&gt;&lt;I&gt;VCCodeParameter&lt;/I&gt;&lt;/B&gt;,&lt;B&gt; &lt;I&gt;VCCodeTypedef&lt;/I&gt;&lt;/B&gt; and &lt;B&gt;&lt;I&gt;FullName&lt;/I&gt;&lt;/B&gt; property of &lt;B&gt;&lt;I&gt;VCCodeBase&lt;/I&gt;&lt;/B&gt;.It also indirectly affects several APIs of the &lt;B&gt;&lt;I&gt;CodeTypeRef&lt;/I&gt;&lt;/B&gt; object that is used as a link between object in source code and type.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;I&gt;VCCodeModel &lt;/I&gt;provides heuristic APIs that attempt to resolve a name to a type, even if name is not fully qualified. For incompletely qualified names (like &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;”Type”&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;, if &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;Type&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; belongs to namespace &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;X&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;) &lt;B&gt;&lt;I&gt;&amp;nbsp;VCCodeModel.CodeTypeFromFullName&lt;/I&gt;&lt;/B&gt; and &lt;B&gt;&lt;I&gt;VCCodeModel.CodeElementFromFullName&lt;/I&gt;&lt;/B&gt; prefer names defined at global scope and only resolve to a name defined in a namespace if a global one is not found. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;We’ve added a helper API called &lt;B&gt;&lt;I&gt;VCCodeModel.CodeElementFromFullName2&lt;/I&gt;&lt;/B&gt;&amp;nbsp; in &lt;I&gt;Visual Studio 2010&lt;/I&gt; to help clients detect this ambiguity. See below.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l7 level1 lfo4"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;•&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;No code elements from imported assemblies in C++/CLI:&lt;/B&gt; Code elements from imported assemblies are not added to the &lt;I&gt;Browsing database&lt;/I&gt;. As a consequence, the types coming from these assemblies would not be resolved.&amp;nbsp; For example, if you have a function with a parameter type specified as &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;Exception&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; in source code,&lt;I&gt; VCCodeModel&lt;/I&gt; won’t be able to resolve it to &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;System::Exception&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;, since currently such class is not present in database.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l2 level1 lfo5"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;•&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;We’ve removed Managed C++ support from VCCodeModel in Dev10: &lt;/B&gt;Support for &lt;I&gt;C++/CLI &lt;/I&gt;is still there.&lt;B&gt; &lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 10pt 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 13pt; COLOR: #4f81bd; LINE-HEIGHT: 115%; FONT-FAMILY: 'Cambria','serif'"&gt;New APIs in Visual Studio 2010&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;We have introduced the following APIs to &lt;I&gt;VCCodeModel&lt;/I&gt; in &lt;I&gt;Visual Studio 2010&lt;/I&gt;. All APIs are additions to the &lt;B&gt;&lt;I&gt;VCCodeModel &lt;/I&gt;&lt;/B&gt;interface: &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo6"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;•&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;&lt;I&gt;CodeElementFromFullName2&lt;/I&gt;&lt;/B&gt;: Is identical to &lt;B&gt;&lt;I&gt;CodeElementFromFullName&lt;/I&gt;&lt;/B&gt;, except that it will disregard namespaces during lookup. Because there is no symbol resolution in &lt;I&gt;Visual Studio 2010 &lt;/I&gt;version of &lt;I&gt;VCCodeModel&lt;/I&gt; it is sometimes beneficial to know whether a particular symbol is ambiguous. The primary source of ambiguity in &lt;I&gt;VCCodeModel&lt;/I&gt; is &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;using namespace&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; directives. &lt;B&gt;&lt;I&gt;CodeElementFromFullName2&lt;/I&gt; &lt;/B&gt;API looks up the name disregarding namespace. For the following source code:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;class&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt; X {};&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;namespace&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt; NS1 {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; X {};&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;namespace&lt;/SPAN&gt; NS2 {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; X {};&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Calls to &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;VCCodeModel.CodeElementFromFullName2(“X”)&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; will yield&lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt; {X; NS1::X; NS1::NS2::X}&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt 0.5in"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo7"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;•&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;&lt;I&gt;CodeTypeFromFullName2&lt;/I&gt;&lt;/B&gt;: Is identical to &lt;B&gt;&lt;I&gt;CodeTypeFromFullName&lt;/I&gt;&lt;/B&gt; except that it will attempt typedef resolution. That is, for the following code:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;class&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt; X {};&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;typedef&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt; X TD;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt 0.5in"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;call to &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;VCCodeModel.CodeTypeFromFullName2(“TD”)&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; will yield class &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;X&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;•&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;&lt;I&gt;IsSynchronized&lt;/I&gt;:&lt;/B&gt; returns true or false depending on whether &lt;I&gt;VCCodeModel &lt;/I&gt;is in sync with solution’s source code. Useful for avoiding blocking the calling thread for an undefined period of time while &lt;I&gt;Browsing&lt;/I&gt; &lt;I&gt;database&lt;/I&gt; is being populated.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;•&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;&lt;I&gt;SynchronizeFiles&lt;/I&gt;&lt;/B&gt;: If &lt;I&gt;VCCodeModel &lt;/I&gt;is not in sync with source code, it is not safe to query for a &lt;B&gt;&lt;I&gt;VCFileCodeModel&lt;/I&gt;&lt;/B&gt; for a project file (caller will get null reference if project files are not yet registered in &lt;I&gt;Browsing&lt;/I&gt; &lt;I&gt;database&lt;/I&gt;). Call to&lt;B&gt;&lt;I&gt; SynchronizeFiles&lt;/I&gt;&lt;/B&gt; makes sure that &lt;B&gt;&lt;I&gt;FileCodeModel&lt;/I&gt;&lt;/B&gt; property on a project file is guaranteed to be not null.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;•&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;&lt;I&gt;SynchronizeCancellable&lt;/I&gt;&lt;/B&gt;: if caller invokes this API while &lt;I&gt;Browsing database&lt;/I&gt; is being populated, and there’s significant delay till population completes (for example: initial population of solution &lt;I&gt;Browsing database&lt;/I&gt;), the user will see a dialog box with a progress bar.&amp;nbsp; The dialog box also allows users to cancel wait and API will exit unblocking thread. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;We’re looking forward to hearing your feedback.&amp;nbsp; Any suggestions, comments and feedback about what can we do to make &lt;I&gt;VCCodeModel&lt;/I&gt; better are welcome.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Vytas/Visual C++&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9907322" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author></entry><entry><title>The ATL/MFC Trace Tool and the Tracing Mechanism</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/10/08/the-atl-mfc-trace-tool-and-the-tracing-mechanism.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/10/08/the-atl-mfc-trace-tool-and-the-tracing-mechanism.aspx</id><published>2009-10-08T21:20:00Z</published><updated>2009-10-08T21:20:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;Hi, I am Pat Brenner, a Software Design Engineer in the Visual C++ Libraries group.&amp;nbsp; Some time back I wrote about Spy++.&amp;nbsp; Today, I am going to write about another Visual Studio debugging tool, the ATL/MFC Trace Tool, and the tracing mechanism that it interacts with in ATL and MFC.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0.25in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;The tracing mechanism&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;The tracing mechanism is used to control the type of information, and the amount of that information, that is dumped to the output window during execution of a program.&amp;nbsp; There are a number of categories of information, and different levels of that information, that can be &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;displayed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0.25in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;The tracing macros&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;An application can output tracing messages to the output window by:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;using the ATLTRACE macros (for ATL), defined in atltrace.h.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;using the TRACE macros (for MFC) defined in afx.h.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;There are uses of the ATLTRACE and TRACE macros sprinkled throughout the ATL and MFC source code.&amp;nbsp; For example, in CStringT.h in the atlmfc\include folder, in the CStringT::CheckImplicitLoad method, you can find this line of code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;ATLTRACE( atlTraceString, 2, _T( "Warning: implicit LoadString(%u) failed\n" ), nID );&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;This will dump the message to the output window if level-2 messages in the string category are turned on.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0.25in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;The ATL/MFC Trace Tool&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;Below is a screen shot of the ATL/MFC Trace Tool.&amp;nbsp; An MFC application named Editor.exe is running.&amp;nbsp; The “atlTraceString” category is selected for the MFC100UD.DLL module in the Editor.exe process.&amp;nbsp; Since a category is selected in the tree, all three of the groups (Process, Module and Category) are enabled.&amp;nbsp; If the Editor.exe process was selected in the tree, only the Process group would be enabled, and if the MFC100UD.DLL module was selected in the tree, only the Process and Module groups would be enabled.&amp;nbsp; With this tool, you can configure exactly what categories you would like to see trace messages for, and what amount of messages in those categories.&amp;nbsp; Here I have indicated that I would like to see a fairly minimal number of trace messages for the entire process, and that the module should inherit the settings from the process, but I have overridden those values and indicated that I want to see a moderate number of trace messages in the string category.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9904505/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9904505/original.aspx"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;ATL tracing categories&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;The categories of trace information that can be dumped by ATL:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceGeneral: general and miscellaneous trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceCOM: COM object and method trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceQI: QueryInterface trace messages (category not used in ATL or MFC)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceRegistrar: registration trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceRefcount: reference count trace messages (category not used in ATL or MFC)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceWindowing: Windows message trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceControls: ActiveX control related trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceHosting: in-place client/site related trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceDBClient: database client related trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceDBProvider: database provider related trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceSnapin: snap-in related trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceNotImpl: “interface not implemented” trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceAllocation: memory allocation trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceException: “exception thrown” trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceTime: COleDateTime related trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceCache: caching related trace messages (category not used in ATL or MFC)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceStencil: stencil related trace messages (category not used in ATL or MFC)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceString: CStringT related trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceMap: CAtlMap related trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceUtil: thread and thread-pool related trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceSecurity: CSecurityDesc/CAccessToken related trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceSync: synchronization object related trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceISAPI: ISAPI related trace messages (category not used in ATL or MFC)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceUser: user-defined trace messages (obsolete category not used in ATL or MFC)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceUser2: user-defined trace messages (obsolete category not used in ATL or MFC)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceUser3: user-defined trace messages (obsolete category not used in ATL or MFC)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;atlTraceUser4: user-defined trace messages (obsolete category not used in ATL or MFC)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;Note: the categories that are not used internally by ATL or MFC will probably be removed in a future version of ATL, in order to clean up the interface in the ATL/MFC Trace Tool.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0.25in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;MFC tracing categories&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;The categories of trace information that can be dumped by MFC:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;traceAppMsg: main message pump trace messages, including DDE&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;traceWinMsg: Windows message trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;traceCmdRouting: Windows command routing trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;traceOle: special OLE callback trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;traceDatabase: special database trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;traceInternet: special internet client trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;traceDumpContext: trace messages from CDumpContext&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;traceMemory: generic non-kernel memory trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;traceHtml: HTML trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;traceSocket: socket trace messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0.25in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;Tracing levels&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;The information dumped by the trace mechanism is assigned a level from 0 (zero) to 4, where 0 is the most important level and 4 the least important.&amp;nbsp; These levels correspond to the five ticks on the sliders in the ATL/MFC Trace Tool.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0.25in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;Tying it together&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;So, based on the settings I set in the ATL/MFC Trace Tool above, the source line above in CStringT.h will dump out the message to the output window, because although I have indicated that I want only level-0 and level-1 messages from the process, I want level-2 messages in the string category.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0.25in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;How it works&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;When a module is loaded that is using debug ATL (ATLSD.LIB), part of the initialization process is the initialization of the global CAtlAllocator object g_Allocator (see externs.cpp in the atlmfc\src\ATL\ATLS folder).&amp;nbsp; This method creates a named shared memory area, and part of the name is the process ID (e.g., for process EB0A, the shared memory area is named “AtlDebugAllocator_FileMappingNameStatic_100_EB0A”).&amp;nbsp; This shared memory area is used to contain all the settings for the process, modules and categories that can be modified by the ATL/MFC Trace Tool.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;When the ATL/MFC Trace Tool is started up, it first enumerates all the process in the system, and for each, checks to see if a named shared memory exists for that process (using the naming scheme mentioned above.&amp;nbsp; If so, then the tool loads up all the settings for that process and from then on is able to modify the settings for the process in the shared memory area, thus affecting the runtime trace behavior of that process.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0.25in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;An interesting recent discovery&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;We have implemented support in ATL and MFC for preview, thumbnail and filter (search) handlers.&amp;nbsp; These are loaded by the Windows Explorer and other Windows components (including the Windows Search service).&amp;nbsp; Recently we had an issue where the Windows Search component could not load our debug DLL, so we never got search filter results in indexed locations.&amp;nbsp; As it turns out, this was because the search filter host (which loaded the ATL filter handler DLL in order to do the indexing) was running without any file system permissions.&amp;nbsp; The ATL tracing mechanism, however, tries to set up the shared memory area (for communication with the ATL/MFC Trace Tool) using the CreateFileMapping API.&amp;nbsp; The lack of file system permissions caused this to fail, and the DLL initialization was aborted, and thus our filter handler was not called.&amp;nbsp; Apparently this is an issue that has lurked in ATL since the tracing mechanism was invented.&amp;nbsp; So, in order to fix this issue, I had to allow DLL initialization to continue if the tracing initialization failed, and then simply bail out of any further calls into the tracing mechanism if the initialization had failed.&amp;nbsp; This then allowed the DLL to load and the filter handler was called correctly, and the bug was fixed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;I hope this has been interesting.&amp;nbsp; Let me know if you have any questions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;Pat Brenner&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;Visual C++ Libraries Development&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9905094" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author></entry><entry><title>Ribbon Designer</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/10/01/ribbon-designer.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/10/01/ribbon-designer.aspx</id><published>2009-10-02T03:23:00Z</published><updated>2009-10-02T03:23:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"&gt;&lt;FONT face=Calibri size=3&gt;Hello, my name is Samatha Mannem and I am a QA with the IDE team.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"&gt;&lt;FONT face=Calibri size=3&gt;The world has become sophisticated and the time has come to make every application geeky as well as fancy. That is where ‘Ribbon’ has evolved. The recent UI designs that people are attracted to are Microsoft Office and Windows 7 ribbons.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;FONT face=Calibri size=3&gt;While Visual Studio 2008 SP1 included the ability to create an application that has a ribbon UI, it was difficult for you to configure it as desired. Detailed Information on Ribbon Designer VS2008 is available at &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/bb386089.aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;http://msdn.microsoft.com/en-us/library/bb386089.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;.&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt; The Visual Studio product team received a lot of feedback on this issue. With Visual Studio 2010, designing a ribbon-based UI is made much easier with the “Ribbon Designer”.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"&gt;&lt;FONT face=Calibri size=3&gt;During project creation, the Application Wizard allows you to select the ribbon style for your application. In addition to Office, Visual Studio and Windows Native which were available for Visual Studio 2008, Windows 7 ribbon style is also available in Visual Studio 2010.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9904454/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9904454/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"&gt;&lt;FONT face=Calibri size=3&gt;Changing the style of the application can easily be done on the fly. At any time during application development, the style of the ribbon’s UI can be changed easily via the ‘style’ dropdown shown below. Changing the style of the ribbon only affects the ribbon’s appearance – it does not in any way disturb the functionality of your application.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9904445/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9904445/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"&gt;&lt;FONT face=Calibri size=3&gt;With Dev10 creating a ribbon of your style or adding/deleting few tools from the existing Office/Windows ribbon is just a drag and drop action. Writing and debugging complicated UI code is now a thing of the past. Adding behavior to the ribbon’s tools is easily done by adding an event handler to each (explained later). &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"&gt;&lt;FONT face=Calibri size=3&gt;The following images show the variety of controls that can be used on the Ribbon.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"&gt;&lt;FONT face=Calibri size=3&gt;Each control shown below can be designed using Ribbon Designer’s tool box shown here. This tool box can be viewed either by hovering the mouse over the ‘Toolbox’ in the Designer window or by using the menu View-&amp;gt;Toolbox.&amp;nbsp; You can add the ribbon like any other resource (dialog, icon) with the Add Resource-&amp;gt;Ribbon menu in the Resource view.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"&gt;&lt;?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /&gt;&lt;v:shape id=TextBox_x0020_4 style="MARGIN-TOP: 56.25pt; Z-INDEX: 251656192; LEFT: 0px; VISIBILITY: visible; MARGIN-LEFT: 404.25pt; WIDTH: 151.5pt; POSITION: absolute; HEIGHT: 385.5pt; TEXT-ALIGN: left" type="#_x0000_t202" o:spid="_x0000_s1026" strokeweight=".5pt" o:gfxdata="UEsDBBQABgAIAAAAIQC2gziS/gAAAOEBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRQU7DMBBF&amp;#13;&amp;#10;90jcwfIWJU67QAgl6YK0S0CoHGBkTxKLZGx5TGhvj5O2G0SRWNoz/78nu9wcxkFMGNg6quQqL6RA&amp;#13;&amp;#10;0s5Y6ir5vt9lD1JwBDIwOMJKHpHlpr69KfdHjyxSmriSfYz+USnWPY7AufNIadK6MEJMx9ApD/oD&amp;#13;&amp;#10;OlTrorhX2lFEilmcO2RdNtjC5xDF9pCuTyYBB5bi6bQ4syoJ3g9WQ0ymaiLzg5KdCXlKLjvcW893&amp;#13;&amp;#10;SUOqXwnz5DrgnHtJTxOsQfEKIT7DmDSUCaxw7Rqn8787ZsmRM9e2VmPeBN4uqYvTtW7jvijg9N/y&amp;#13;&amp;#10;JsXecLq0q+WD6m8AAAD//wMAUEsDBBQABgAIAAAAIQA4/SH/1gAAAJQBAAALAAAAX3JlbHMvLnJl&amp;#13;&amp;#10;bHOkkMFqwzAMhu+DvYPRfXGawxijTi+j0GvpHsDYimMaW0Yy2fr2M4PBMnrbUb/Q94l/f/hMi1qR&amp;#13;&amp;#10;JVI2sOt6UJgd+ZiDgffL8ekFlFSbvV0oo4EbChzGx4f9GRdb25HMsYhqlCwG5lrLq9biZkxWOiqY&amp;#13;&amp;#10;22YiTra2kYMu1l1tQD30/bPm3wwYN0x18gb45AdQl1tp5j/sFB2T0FQ7R0nTNEV3j6o9feQzro1i&amp;#13;&amp;#10;OWA14Fm+Q8a1a8+Bvu/d/dMb2JY5uiPbhG/ktn4cqGU/er3pcvwCAAD//wMAUEsDBBQABgAIAAAA&amp;#13;&amp;#10;IQAIclbtmAIAAM4FAAAOAAAAZHJzL2Uyb0RvYy54bWysVEtv2zAMvg/YfxB0X51kaZcadYqsRYcB&amp;#13;&amp;#10;QVssHXpWZKkxKouqxMTOfv0o2Un6unTYRRbNjxT58XF23taGbZQPFdiCD48GnCkroazsQ8F/3119&amp;#13;&amp;#10;mXAWUNhSGLCq4FsV+Pn086ezxuVqBCswpfKMnNiQN67gK0SXZ1mQK1WLcAROWVJq8LVAEv1DVnrR&amp;#13;&amp;#10;kPfaZKPB4CRrwJfOg1Qh0N/LTsmnyb/WSuKN1kEhMwWn2DCdPp3LeGbTM5E/eOFWlezDEP8QRS0q&amp;#13;&amp;#10;S4/uXV0KFGztqzeu6kp6CKDxSEKdgdaVVCmHmM0kO8lGk1cpLVbCqZQQMRTcnqvwn33L683C3XqG&amp;#13;&amp;#10;7XdoqZQpneDmIB8DsZQ1LuQ9JrIb8kDomHKrfR2/lAwjQ2J5u2dWtchk9HY6Gg+OSSVJN56cHk9I&amp;#13;&amp;#10;iF4P5s4H/KGgZvFScE+lSyGIzTxgB91B4msBTFVeVcYkIbaLujCebQQV2uCwd/4CZSxrCn7ylZ5+&amp;#13;&amp;#10;4yG63tsvjZCPbz1QsMZGS5Uaqw/rQEW64daoiDH2l9KsKhMj78QopFR2H2dCR5SmjD5i2OMPUX3E&amp;#13;&amp;#10;uMuDLNLLYHFvXFcWfMfSS2rLxx21usP3nRG6vCMFwuBdu2ypkZbtAsGnbugk9dR3RsQtodxSv3no&amp;#13;&amp;#10;hjI4eVVRFeYi4K3wNIXULrRZ8IYObYBKB/2NsxX4P+/9j3iaC9Jy1tBUFzw8rYVXnJmflibmdDge&amp;#13;&amp;#10;xzWQhPHxtxEJ/rlm+Vxj1/UFUD8NaYc5ma4Rj2Z31R7qe1pAs/gqqYSV9HbBcXe9wG7X0AKTajZL&amp;#13;&amp;#10;IBp8J3BuF07uxix23117L7zrux9pcK5hN/oifzUEHTZWzcJsjaCrNCEHVvuq0L5IM9YvuLiVnssJ&amp;#13;&amp;#10;dVjD078AAAD//wMAUEsDBBQABgAIAAAAIQDYpMKU3gAAAAwBAAAPAAAAZHJzL2Rvd25yZXYueG1s&amp;#13;&amp;#10;TE9dS8NAEHwX/A/HCr7ZS/rlGXMpIghiQbSKz9fcmoTm9kLumsR/3+1T3adZZnZmNt9MrhUD9qHx&amp;#13;&amp;#10;pCGdJSCQSm8bqjR8f73cKRAhGrKm9YQa/jDApri+yk1m/UifOOxiJdiEQmY01DF2mZShrNGZMPMd&amp;#13;&amp;#10;EnO/vncm8tpX0vZmZHPXynmSrKUzDXFCbTp8rrE87I6Oa6jF8PGjluM2XTb368P27eH13Wh9ezM9&amp;#13;&amp;#10;PYKIOMWLGM71+QYK7rT3R7JBtBpUolYsZSKdMzgreBjtmVOLFcgil/+fKE4AAAD//wMAUEsBAi0A&amp;#13;&amp;#10;FAAGAAgAAAAhALaDOJL+AAAA4QEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54&amp;#13;&amp;#10;bWxQSwECLQAUAAYACAAAACEAOP0h/9YAAACUAQAACwAAAAAAAAAAAAAAAAAvAQAAX3JlbHMvLnJl&amp;#13;&amp;#10;bHNQSwECLQAUAAYACAAAACEACHJW7ZgCAADOBQAADgAAAAAAAAAAAAAAAAAuAgAAZHJzL2Uyb0Rv&amp;#13;&amp;#10;Yy54bWxQSwECLQAUAAYACAAAACEA2KTClN4AAAAMAQAADwAAAAAAAAAAAAAAAADyBAAAZHJzL2Rv&amp;#13;&amp;#10;d25yZXYueG1sUEsFBgAAAAAEAAQA8wAAAP0FAAAAAA==&amp;#13;&amp;#10;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;v:path arrowok="t"&gt;&lt;/v:path&gt;&lt;v:textbox style="mso-rotate-with-shape: t"&gt;&lt;/v:textbox&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/v:shape&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9902164/506x480.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9902164/506x480.aspx"&gt;&lt;/P&gt;
&lt;P style="VERTICAL-ALIGN: top; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="VERTICAL-ALIGN: top; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="VERTICAL-ALIGN: top; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'"&gt;A ribbon resource created can be added to existing MFC application. To do so, modify the application to load the ribbon resource.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND: #dddddd; MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: top; WORD-BREAK: break-all; LINE-HEIGHT: 140%; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'"&gt;CMFCRibbonBar m_wndRibbonBar&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp; //declare it&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND: #dddddd; MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: top; WORD-BREAK: break-all; LINE-HEIGHT: 140%; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'"&gt;if (!m_wndRibbonBar.Create (this))&amp;nbsp; //create and initialize the ribbon control&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND: #dddddd; MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: top; WORD-BREAK: break-all; LINE-HEIGHT: 140%; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND: #dddddd; MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: top; WORD-BREAK: break-all; LINE-HEIGHT: 140%; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND: #dddddd; MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: top; WORD-BREAK: break-all; LINE-HEIGHT: 140%; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND: #dddddd; MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: top; WORD-BREAK: break-all; LINE-HEIGHT: 140%; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'"&gt;if (!m_wndRibbonBar.LoadFromResource(IDR_RIBBON))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND: #dddddd; MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: top; WORD-BREAK: break-all; LINE-HEIGHT: 140%; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND: #dddddd; MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: top; WORD-BREAK: break-all; LINE-HEIGHT: 140%; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND: #dddddd; MARGIN: 0in 0in 0pt 0.5in; VERTICAL-ALIGN: top; WORD-BREAK: break-all; LINE-HEIGHT: 140%; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;v:shape id=Text_x0020_Box_x0020_3 style="MARGIN-TOP: 43.9pt; Z-INDEX: 251657216; LEFT: 0px; VISIBILITY: visible; MARGIN-LEFT: 231.75pt; WIDTH: 330.75pt; POSITION: absolute; HEIGHT: 112.5pt; TEXT-ALIGN: left" type="#_x0000_t202" o:spid="_x0000_s1027" o:gfxdata="UEsDBBQABgAIAAAAIQC2gziS/gAAAOEBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRQU7DMBBF&amp;#13;&amp;#10;90jcwfIWJU67QAgl6YK0S0CoHGBkTxKLZGx5TGhvj5O2G0SRWNoz/78nu9wcxkFMGNg6quQqL6RA&amp;#13;&amp;#10;0s5Y6ir5vt9lD1JwBDIwOMJKHpHlpr69KfdHjyxSmriSfYz+USnWPY7AufNIadK6MEJMx9ApD/oD&amp;#13;&amp;#10;OlTrorhX2lFEilmcO2RdNtjC5xDF9pCuTyYBB5bi6bQ4syoJ3g9WQ0ymaiLzg5KdCXlKLjvcW893&amp;#13;&amp;#10;SUOqXwnz5DrgnHtJTxOsQfEKIT7DmDSUCaxw7Rqn8787ZsmRM9e2VmPeBN4uqYvTtW7jvijg9N/y&amp;#13;&amp;#10;JsXecLq0q+WD6m8AAAD//wMAUEsDBBQABgAIAAAAIQA4/SH/1gAAAJQBAAALAAAAX3JlbHMvLnJl&amp;#13;&amp;#10;bHOkkMFqwzAMhu+DvYPRfXGawxijTi+j0GvpHsDYimMaW0Yy2fr2M4PBMnrbUb/Q94l/f/hMi1qR&amp;#13;&amp;#10;JVI2sOt6UJgd+ZiDgffL8ekFlFSbvV0oo4EbChzGx4f9GRdb25HMsYhqlCwG5lrLq9biZkxWOiqY&amp;#13;&amp;#10;22YiTra2kYMu1l1tQD30/bPm3wwYN0x18gb45AdQl1tp5j/sFB2T0FQ7R0nTNEV3j6o9feQzro1i&amp;#13;&amp;#10;OWA14Fm+Q8a1a8+Bvu/d/dMb2JY5uiPbhG/ktn4cqGU/er3pcvwCAAD//wMAUEsDBBQABgAIAAAA&amp;#13;&amp;#10;IQDkRb8aaAIAAI0FAAAOAAAAZHJzL2Uyb0RvYy54bWzUVNtu2zAMfR+wfxD03jgJkjY14hRdug4F&amp;#13;&amp;#10;ugvQ7gNkWbaFSqIqKbGzrx8lO223FnsY9jIbEEhLPuIhD7m+6LUie+G8BFPQ2WRKiTAcKmmagn6/&amp;#13;&amp;#10;vz5ZUeIDMxVTYERBD8LTi837d+vO5mIOLahKOIIgxuedLWgbgs2zzPNWaOYnYIXBzRqcZgFd12SV&amp;#13;&amp;#10;Yx2ia5XNp9PTrANXWQdceI9fr4ZNukn4dS14+FrXXgSiCoqxhbS6tJZxzTZrljeO2VbyMQz2F1Fo&amp;#13;&amp;#10;Jg1e+gR1xQIjOydfQWnJHXiow4SDzqCuJReJQ2Szyk6z+eo3SnctsyIRwgx5+5Qr/4+x+Zf9nf3m&amp;#13;&amp;#10;SOg/QI+lTHS8vQX+4ImBbctMIy6dg64VrMLbZzF5WWd9Pv4ak+5zH0HK7jNUWG62C5CA+trpmB9k&amp;#13;&amp;#10;TBAdS3F4Sr/oA+H4cYEpWM6XlHDcmy3mq7NlKlDG8uPv1vnwSYAm0Siow/omeLa/9SGGw/LjkXib&amp;#13;&amp;#10;ByWra6lUclxTbpUje4ZauE4PHbOp+atkvqE8zdzDzp5g4SwLspRKhkMSISWa5zeNAcdKhayPsGy2&amp;#13;&amp;#10;eIX7pgBGTUewsyy+SU8Dn184KEO6gp7HLP2Z3zQ9x0D+G35aBhwHSuqCrgYGqUGj4j6aKtmBSTXY&amp;#13;&amp;#10;WGxlRglG1Q36Yyrc92WPOi77uwAuagkbP3ricdRc1GkJ1QGV6mCYCTjD0GjB/aCkw3lQUP+4Y05Q&amp;#13;&amp;#10;om4Mqv18tljEAZKcxfJsjo57uVO+3GGGI1RBAyWDuQ3D0NlZJ5sWbxr6y8Aldkgtk3afoxpJYbsn&amp;#13;&amp;#10;SY/zKQ6Vl3469TxFNz8BAAD//wMAUEsDBBQABgAIAAAAIQAxJVz/4QAAAAsBAAAPAAAAZHJzL2Rv&amp;#13;&amp;#10;d25yZXYueG1sTI/LTsMwEEX3SPyDNUhsEHUebRpCnAohgWAHBcHWjd0kwh4H203D3zNdwXI0R/fe&amp;#13;&amp;#10;U29ma9ikfRgcCkgXCTCNrVMDdgLe3x6uS2AhSlTSONQCfnSATXN+VstKuSO+6mkbO0YhGCopoI9x&amp;#13;&amp;#10;rDgPba+tDAs3aqTf3nkrI52+48rLI4Vbw7MkKbiVA1JDL0d93+v2a3uwAsrl0/QZnvOXj7bYm5t4&amp;#13;&amp;#10;tZ4ev70Qlxfz3S2wqOf4B8NpPk2Hhjbt3AFVYEbAsshXhFLYmhROQJqtyG4nIE+zEnhT8/8OzS8A&amp;#13;&amp;#10;AAD//wMAUEsBAi0AFAAGAAgAAAAhALaDOJL+AAAA4QEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250&amp;#13;&amp;#10;ZW50X1R5cGVzXS54bWxQSwECLQAUAAYACAAAACEAOP0h/9YAAACUAQAACwAAAAAAAAAAAAAAAAAv&amp;#13;&amp;#10;AQAAX3JlbHMvLnJlbHNQSwECLQAUAAYACAAAACEA5EW/GmgCAACNBQAADgAAAAAAAAAAAAAAAAAu&amp;#13;&amp;#10;AgAAZHJzL2Uyb0RvYy54bWxQSwECLQAUAAYACAAAACEAMSVc/+EAAAALAQAADwAAAAAAAAAAAAAA&amp;#13;&amp;#10;AADCBAAAZHJzL2Rvd25yZXYueG1sUEsFBgAAAAAEAAQA8wAAANAFAAAAAA==&amp;#13;&amp;#10;"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/v:shape&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;v:shape id=Text_x0020_Box_x0020_2 style="MARGIN-TOP: 34.7pt; Z-INDEX: 251658240; LEFT: 0px; VISIBILITY: visible; MARGIN-LEFT: 301.5pt; WIDTH: 249.75pt; POSITION: absolute; HEIGHT: 121.5pt; TEXT-ALIGN: left" type="#_x0000_t202" o:spid="_x0000_s1028" o:gfxdata="UEsDBBQABgAIAAAAIQC2gziS/gAAAOEBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRQU7DMBBF&amp;#13;&amp;#10;90jcwfIWJU67QAgl6YK0S0CoHGBkTxKLZGx5TGhvj5O2G0SRWNoz/78nu9wcxkFMGNg6quQqL6RA&amp;#13;&amp;#10;0s5Y6ir5vt9lD1JwBDIwOMJKHpHlpr69KfdHjyxSmriSfYz+USnWPY7AufNIadK6MEJMx9ApD/oD&amp;#13;&amp;#10;OlTrorhX2lFEilmcO2RdNtjC5xDF9pCuTyYBB5bi6bQ4syoJ3g9WQ0ymaiLzg5KdCXlKLjvcW893&amp;#13;&amp;#10;SUOqXwnz5DrgnHtJTxOsQfEKIT7DmDSUCaxw7Rqn8787ZsmRM9e2VmPeBN4uqYvTtW7jvijg9N/y&amp;#13;&amp;#10;JsXecLq0q+WD6m8AAAD//wMAUEsDBBQABgAIAAAAIQA4/SH/1gAAAJQBAAALAAAAX3JlbHMvLnJl&amp;#13;&amp;#10;bHOkkMFqwzAMhu+DvYPRfXGawxijTi+j0GvpHsDYimMaW0Yy2fr2M4PBMnrbUb/Q94l/f/hMi1qR&amp;#13;&amp;#10;JVI2sOt6UJgd+ZiDgffL8ekFlFSbvV0oo4EbChzGx4f9GRdb25HMsYhqlCwG5lrLq9biZkxWOiqY&amp;#13;&amp;#10;22YiTra2kYMu1l1tQD30/bPm3wwYN0x18gb45AdQl1tp5j/sFB2T0FQ7R0nTNEV3j6o9feQzro1i&amp;#13;&amp;#10;OWA14Fm+Q8a1a8+Bvu/d/dMb2JY5uiPbhG/ktn4cqGU/er3pcvwCAAD//wMAUEsDBBQABgAIAAAA&amp;#13;&amp;#10;IQCCjQCcagIAAI0FAAAOAAAAZHJzL2Uyb0RvYy54bWzUVNtO3DAQfa/Uf7D8Dtksu7BEZBGFUiHR&amp;#13;&amp;#10;iwT9gInjJBa+YXs32X59x04WaEF9qPrSRLJmYud4zsyZOTsflCRb7rwwuqT54YwSrpmphW5L+v3+&amp;#13;&amp;#10;+mBFiQ+ga5BG85LuuKfn6/fvznpb8LnpjKy5IwiifdHbknYh2CLLPOu4An9oLNe42RinIKDr2qx2&amp;#13;&amp;#10;0CO6ktl8NjvOeuNq6wzj3uPXq3GTrhN+03AWvjaN54HIkmJsIa0urVVcs/UZFK0D2wk2hQF/EYUC&amp;#13;&amp;#10;ofHSJ6grCEA2TryCUoI5400TDplRmWkawXjiENmssuNsvvqN0l0HlidCmCFvn3Ll/zE2+7K9s98c&amp;#13;&amp;#10;CcMHM2ApEx1vbw178ESbyw50yy+cM33Hocbb85i8rLe+mH6NSfeFjyBV/9nUWG7YBJOAhsapmB9k&amp;#13;&amp;#10;TBAdS7F7Sj8fAmH48Sg/yVfzJSUM9/Ll4mi2TAXKoNj/bp0Pn7hRJBoldVjfBA/bWx9iOFDsj8Tb&amp;#13;&amp;#10;vJGivhZSJse11aV0ZAuohev00Cmbir1K5hvKU+AeNvYAC2chiEpIEXZJhJQoVty02jioJLLew0K+&amp;#13;&amp;#10;eIX7pgAmTUewkyy+SU8jn184SE36kp4uMUt/5jdLzz6Q/4afEgHHgRSqpKuRQWrQqLiPuk52ACFH&amp;#13;&amp;#10;G4st9STBqLpRfyDD/VANqONquAvGoZbm2PjR44+T5qJOK1PvUKnOjDMBZxganXE/KOlxHpTUP27A&amp;#13;&amp;#10;cUrkjUa1n+aLRRwgyVksT+bouJc71csd0AyhShooGc3LMA6djXWi7fCmsb+0ucAOaUTS7nNUEyls&amp;#13;&amp;#10;9yTpaT7FofLST6eep+j6JwAAAP//AwBQSwMEFAAGAAgAAAAhAK297CfhAAAACwEAAA8AAABkcnMv&amp;#13;&amp;#10;ZG93bnJldi54bWxMj81OwzAQhO9IvIO1SFwQtfNDaEOcCiGB6A0Kgqsbb5OIeB1sNw1vj3uC26xm&amp;#13;&amp;#10;NPtNtZ7NwCZ0vrckIVkIYEiN1T21Et7fHq+XwHxQpNVgCSX8oId1fX5WqVLbI73itA0tiyXkSyWh&amp;#13;&amp;#10;C2EsOfdNh0b5hR2Rore3zqgQT9dy7dQxlpuBp0IU3Kie4odOjfjQYfO1PRgJy/x5+vSb7OWjKfbD&amp;#13;&amp;#10;KlzdTk/fTsrLi/n+DljAOfyF4YQf0aGOTDt7IO3ZIKEQWdwSoljlwE6BRKQ3wHYSsiTNgdcV/7+h&amp;#13;&amp;#10;/gUAAP//AwBQSwECLQAUAAYACAAAACEAtoM4kv4AAADhAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0Nv&amp;#13;&amp;#10;bnRlbnRfVHlwZXNdLnhtbFBLAQItABQABgAIAAAAIQA4/SH/1gAAAJQBAAALAAAAAAAAAAAAAAAA&amp;#13;&amp;#10;AC8BAABfcmVscy8ucmVsc1BLAQItABQABgAIAAAAIQCCjQCcagIAAI0FAAAOAAAAAAAAAAAAAAAA&amp;#13;&amp;#10;AC4CAABkcnMvZTJvRG9jLnhtbFBLAQItABQABgAIAAAAIQCtvewn4QAAAAsBAAAPAAAAAAAAAAAA&amp;#13;&amp;#10;AAAAAMQEAABkcnMvZG93bnJldi54bWxQSwUGAAAAAAQABADzAAAA0gUAAAAA&amp;#13;&amp;#10;"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/v:shape&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT size=3&gt;Adding various properties to the control can make it function the way user wants it to serve the purpose.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;The image and Menu Items of the Button can be set using the properties window and can be viewed by Right clicking on Ribbon -&amp;gt;properties. Setting the properties in this window is same as writing the following code in CMainFrame.cpp.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9904449/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9904449/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;FONT size=3&gt;You can double-click any control on the designer to open an Items Editor and add more items in its sub menu.&amp;nbsp; You can create event handlers for all other control events by using either the &lt;B&gt;Properties&lt;/B&gt; window or right click on a control and choose ‘Add Event Handler’.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 8pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;FONT size=3&gt;A Resource file in the solution, ribbonname.mfcribbon-ms, contains the property values of each control on the Ribbon.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;FONT size=3&gt;For example following properties are equivalent to the property window shown. The values modified in the properties window reflect the values in this resource file. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9904455/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9904455/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; TEXT-ALIGN: justify"&gt;&lt;FONT size=3&gt;With this Ribbon designer, our goal is to make your UI creation easy and flexible to change. Overall we believe that with this designer you will have your Application Ribbon easy to play with. We are excited about this feature and would like to hear back from you.&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9902169" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author></entry><entry><title>User Feedback</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/09/23/user-feedback.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/09/23/user-feedback.aspx</id><published>2009-09-23T22:10:00Z</published><updated>2009-09-23T22:10:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;Hello! My name is Joshua Baxter, and I am a programming writer on the Microsoft team that produces Help content for Visual C++. I am writing this article to explain how Microsoft collects and handles user feedback.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;User feedback is an important part of our documentation improvement program. We maintain over 33,000 topics about C++, and we receive an average of 350 comments from Help users every month. Not only does your feedback help us to improve the quality of existing documentation, it also helps us improve the quality of future documentation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;Most of the feedback we receive comes from ratings and comments that users submit through the &lt;/FONT&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=164640"&gt;&lt;FONT face="Times New Roman" color=#0000ff size=3&gt;MSDN Web site&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;. At the top right corner of every topic is a link that you can use to send us feedback.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9898602/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9898602/original.aspx"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;We encourage you to leave feedback that describes specific sections in the topic that are wrong, misleading, or confusing so that we can better understand how to fix the topic. Perhaps it goes without saying, but we cannot address generic comments (“bad topic”, “needs work”, “unclear”).&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;Occasionally, we receive user feedback from other sources. For example, Microsoft MVP Joseph Newcomer maintains &lt;/FONT&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=164650"&gt;&lt;FONT face="Times New Roman" color=#0000ff size=3&gt;MSDN Documentation Errors and Omissions&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;, which at present contains more than 400 issues. Although we also address this kind of feedback regularly, we encourage you to submit your feedback on the MSDN Web site so that it gets to us faster.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;When we receive feedback that a topic is inaccurate, we verify whether the concern is valid for both Visual Studio 2008 and Visual Studio 2010. Verification might involve testing the reported inaccuracy by using a code sample or by contacting a member of the development team. If a concern is verified, we revise the documentation as appropriate. Sometimes the topic is actually technically accurate, but it requires clarification or additional information.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;Note: We do not maintain versions of the documentation that are earlier than Visual Studio 2008. If we receive feedback about earlier versions, we determine whether it also applies to Visual Studio 2008 or Visual Studio 2010, and then revise the documentation for those versions as required.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;Although we address feedback and revise topics regularly, changes do not necessarily appear immediately on the MSDN Web site. All revised topics are reviewed to ensure technical accuracy, and this may take awhile. Also, topics may have to wait in the MSDN publishing queue until the next scheduled update, which occurs every few weeks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;Again, we appreciate the feedback that we receive from our users. If you have feedback about a topic on &lt;/FONT&gt;&lt;A href="http://www.msdn.com/"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;&lt;SPAN style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;the &lt;/SPAN&gt;&lt;FONT color=#0000ff&gt;MSDN Web site&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;, please click the feedback link at the top right corner of the topic and send us your comments.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9898604" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author></entry><entry><title>Linker throughput</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/09/10/linker-throughput.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/09/10/linker-throughput.aspx</id><published>2009-09-10T19:12:00Z</published><updated>2009-09-10T19:12:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Hello, my name is Chandler Shen, a developer from the Visual C++ Shanghai team.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;We have made some changes in the upcoming Visual C++ 2010 release to improve the performance of linker. I would like to first give a brief overview of the linker and how we analyze the bottlenecks of current implementation. Later, I will describe the changes we made and the impact on linker performance.&lt;/FONT&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#365f91&gt;&lt;FONT face=Cambria&gt;Our Focus&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;We were targeting the linker throughput of large scale projects full build scenario because this scenario matters most in linker throughput scalability. Incremental linking and smaller projects will not benefit from the work I describe in this blog.&lt;/FONT&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#365f91&gt;&lt;FONT face=Cambria&gt;Brief Overview of Linker&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Traditionally, what’s done by linker can be split into two phases: &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Pass1: collecting definitions of symbols (from both object files and libraries)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Pass2: fixing up references to symbols with final address (actually Relative Virtual Address) and writing out the final image.&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Link Time Code Generation (LTCG)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;If &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/0zza0de8(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/0zza0de8(VS.100).aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;/GL (Whole Program Optimization)&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; is specified when compiling, the compiler will generate a special format of object file containing intermediate language. When linker encounters such object files, Pass1 becomes a 2-phase procedure. From these object files, the linker first calls into compiler to collect definitions of all public symbols to build a complete public symbol table. Then the linker supplies this symbol table to the compiler which generates the final machine instructions (or code generation). &lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Debug Information&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;During Pass2, in addition to writing the final image, linker will also write debug information into a PDB (Program Database) file if user specifies &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/xe4t6fc1(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/xe4t6fc1(VS.100).aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;/DEBUG (Generate Debug Info)&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;. Some of this debug information, such as address of symbols, is not decided until linking.&lt;/FONT&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#365f91&gt;&lt;FONT face=Cambria&gt;Bottlenecks&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In this section, I will show how we analyze some test cases to figure out bottlenecks of performance.&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Test Cases&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;To get an objective conclusion, four real world projects (whose names are omitted) differ in scale, including proj1, proj2, proj3 and proj4, were chosen as test cases.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;A class="" title=_Ref236545545 name=_Ref236545545&gt;&lt;/A&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Table &lt;/FONT&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;1 Measurements of test cases&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE class=MsoNormalTable style="MARGIN: auto auto auto 4.65pt; WIDTH: 279.5pt; BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 width=373 border=0 class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #b8cce4; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 77pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=103 colSpan=2&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #b8cce4; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 50.65pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #b8cce4; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 53.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom width=71&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #b8cce4; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 53.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=72&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #b8cce4; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 44.75pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=60&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #b8cce4; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 36.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" noWrap width=48 rowSpan=3&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Files&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #b8cce4; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 40.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=55&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Total&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 50.65pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;55&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 53.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=71&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;27&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 53.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=72&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;168&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 44.75pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=60&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1066&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 2"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #b8cce4; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 40.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=55&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;.obj&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 50.65pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;4&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 53.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" vAlign=bottom noWrap width=71&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;6&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 53.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" vAlign=bottom noWrap width=72&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;7&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 44.75pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" vAlign=bottom noWrap width=60&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;882&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 3"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #b8cce4; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 40.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=55&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;.lib&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 50.65pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;51&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 53.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=71&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;21&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 53.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=72&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;161&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 44.75pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=60&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;184&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 4; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #b8cce4; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 77pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=103 colSpan=2&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Symbols&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 50.65pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;6026&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 53.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" vAlign=bottom width=71&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;22436&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 53.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" vAlign=bottom noWrap width=72&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;69570&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 44.75pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" vAlign=bottom noWrap width=60&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;110262&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;FONT face=Calibri size=3&gt;In Table 1, the number of “symbols” is the number of entries of the symbol table which is internally used by linker to store the information of all external symbols. It is noticeable that “proj4” is much bigger than others. &lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Test Environment&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Following is the configuration of the test machine&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l4 level1 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Hardware&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l4 level2 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;CPU&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Intel Xeon CPU 3.20GHz, 4 cores&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l4 level2 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2G&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l4 level1 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Software&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Windows Vista 32-bit&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Results&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;To minimize the effect of environment, all cases were run for five times. And the unit of time is in seconds.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In Table 2 and Table 3, it showed that for each test case, there is always one (usually the first, marked in &lt;SPAN style="COLOR: red"&gt;red&lt;/SPAN&gt;) run which takes much longer than others.&amp;nbsp; While one run (marked in &lt;SPAN style="COLOR: #00b050"&gt;Green&lt;/SPAN&gt;) may take a much shorter run. This is because following two reasons&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level1 lfo3"&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;l&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;OS will cache a file’s content in memory for next read (called prefetch on Windows XP, and &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/windows/windows-vista/features/superfetch.aspx" mce_href="http://www.microsoft.com/windows/windows-vista/features/superfetch.aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;SuperFetch&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; on Windows Vista)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; LINE-HEIGHT: normal; mso-list: l0 level1 lfo3"&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;l&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Most of modern hard disks will cache a file’s content for next read&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Comparing Table 2 with Table 3, we can notice that if /debug is off, the time of Pass2 is much shorter. So it indicates that the majority of Pass2 is writing PDB files&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;A class="" title=_Ref236553801 name=_Ref236553801&gt;&lt;/A&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Table &lt;/FONT&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;2 Test result of Non-LTCG with /Debug On&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE class=MsoNormalTable style="MARGIN: auto auto auto 4.25pt; WIDTH: 224.4pt; BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 width=299 border=0 class="MsoNormalTable"&gt;
&lt;THEAD&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 77.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" width=103 colSpan=2&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Total&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 61.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" noWrap width=81 rowSpan=5&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;4.437&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2.328&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;6.765&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 2"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.266&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.218&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.484&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 3"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.265&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.188&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.453&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 4"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.265&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.219&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.484&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 5"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.235&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.375&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.610&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 6"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 61.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" noWrap width=81 rowSpan=5&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;9.484&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;15.766&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;25.250&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 7"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.531&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;8.188&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;9.719&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 8"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.579&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;8.078&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;9.657&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 9"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.625&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;7.890&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;9.515&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 10"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.610&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;8.297&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;9.907&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 11"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 61.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" noWrap width=81 rowSpan=5&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;27.266&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;43.687&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;70.953&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 12"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;4.250&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;17.672&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;21.922&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 13"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;4.141&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;17.265&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;21.406&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 14"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;4.203&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;18.500&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;22.703&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 15"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;4.688&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;19.078&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;23.766&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 16"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 61.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" noWrap width=81 rowSpan=5&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;47.453&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;70.172&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;117.625&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 17"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;17.250&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;59.813&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;77.063&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 18"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;17.547&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;55.672&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;73.219&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 19"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;16.516&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;47.172&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;63.688&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 20; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #00b050"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;14.937&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=64&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #00b050"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;44.079&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 55.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid" vAlign=bottom noWrap width=75&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;59.016&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;A class="" title=_Ref236553805 name=_Ref236553805&gt;&lt;/A&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Table &lt;/FONT&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;3 Test result of Non-LTCG with /Debug Off&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE class=MsoNormalTable style="MARGIN: auto auto auto 4.25pt; WIDTH: 222.8pt; BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 width=297 border=0 class="MsoNormalTable"&gt;
&lt;THEAD&gt;
&lt;TR style="HEIGHT: 18.4pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 77.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 18.4pt; BACKGROUND-COLOR: transparent" width=103 colSpan=2&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 18.4pt" width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 18.4pt" noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 18.4pt" noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Total&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 61.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=81 rowSpan=5&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.187&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.078&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.265&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 2"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.218&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.031&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.249&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 3"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.187&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.047&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.234&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 4"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.203&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.031&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.234&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 5"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.187&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.031&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.218&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 6"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 61.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=81 rowSpan=5&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;6.209&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.297&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;6.506&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 7"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.310&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.187&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.497&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 8"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.295&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.187&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.482&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 9"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.342&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.203&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.545&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 10"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.310&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.203&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.513&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 11"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 61.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=81 rowSpan=5&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;15.382&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.764&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;16.146&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 12"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;3.541&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.546&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;4.087&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 13"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;3.650&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.562&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;4.212&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 14"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;3.557&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.546&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;4.150&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 15"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;3.588&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.562&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;4.150&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 16"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 61.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=81 rowSpan=5&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;12.059&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.856&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;13.915&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 17"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;10.811&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.778&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;12.589&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 18"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;10.874&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.809&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;12.683&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 19"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;12.855&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.794&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;14.649&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 20; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;10.796&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.778&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;12.574&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;It is highly recommended that users use&lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/xbf3tbeh(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/xbf3tbeh(VS.100).aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;/LTCG (Link-time Code Generation)&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; to optimize applications. The test results with /LTCG are shown in Table 4.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;A class="" title=_Ref236627643 name=_Ref236627643&gt;&lt;/A&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Table &lt;/FONT&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;4 Test Result of LTCG with /Debug On&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE class=MsoNormalTable style="MARGIN: auto auto auto 4.25pt; WIDTH: 222.8pt; BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 width=297 border=0 class="MsoNormalTable"&gt;
&lt;THEAD&gt;
&lt;TR style="HEIGHT: 18.4pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 77.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 18.4pt; BACKGROUND-COLOR: transparent" width=103 colSpan=2&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 18.4pt" width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 18.4pt" noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 18.4pt" noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Total&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 61.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=81 rowSpan=5&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;178.797&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1.734&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;180.531&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 2"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;155.593&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.954&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;156.547&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 3"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;153.750&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;1.031&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;154.781&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 4"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;152.562&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.891&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;153.453&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 5"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;153.156&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.797&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;153.953&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 6"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 61.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=81 rowSpan=5&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;120.375&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;5.546&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;125.921&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 7"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;102.343&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;5.172&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;107.515&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 8"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;102.203&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;5.235&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;107.438&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 9"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;102.016&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;5.343&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;107.359&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 10"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;102.250&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;5.078&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;107.328&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 11"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 61.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=81 rowSpan=5&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;222.859&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;20.719&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;243.578&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 12"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;185.281&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;22.437&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;207.718&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 13"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;184.984&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;21.422&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;206.406&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 14"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;185.203&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;22.656&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;207.859&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 15"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;186.078&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;22.844&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;208.922&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 16"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 61.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=81 rowSpan=5&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;522.329&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;122.984&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;645.313&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 17"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;490.188&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;54.406&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;544.594&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 18"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;441.125&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;51.860&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;492.985&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 19"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;430.609&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;51.813&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;482.422&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 20; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 16.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=22&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;437.344&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 43.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=57&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;49.750&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;487.094&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Observations&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Based on above results and other investigation, we have the following observations&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;If /LTCG is used, most of linking time will spend on code-generation (a compiler task) in Pass1.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;OS caching of input files will decrease the time spent in both passes quick a lot&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;The majority of time spent in Pass2 is writing the PDB file&lt;/FONT&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#365f91&gt;&lt;FONT face=Cambria&gt;Linker changes and impact in VS2010 &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Multi-threading during Pass2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;After some investigations, we decided to introduce a dedicated thread to writing PDB files because&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo5"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Most users normally specify /debug when linking, irrespective of whether the application is built under “debug” or “release” configuration.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo5"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;The data written into final binary does not depend on the result of writing PDB file, and vice versa: i.e., the binary writing task is independent of the PDB writing task&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo5"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;When the project is big, linker has much other work to do during Pass2 in additional to writing PDB file, such as reading data from object files and libraries.&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Results&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Following is the table that compares the linker performance results between VS2010 and VS2008 SP1. To remove the effect of cache, we rebooted our test machine (with SuperFetch disabled) before each run. For ease comparison, the time cost by old linker (from Table 2 and Table 4) are also listed (no caching).&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;A class="" title=_Ref236640003 name=_Ref236640003&gt;&lt;/A&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Table &lt;/FONT&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;5 Test Result of new linker, Non-LTCG with /Debug On&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE class=MsoNormalTable style="MARGIN: auto auto auto 4.25pt; WIDTH: 463.7pt; BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 width=618 border=0 class="MsoNormalTable"&gt;
&lt;THEAD&gt;
&lt;TR style="HEIGHT: 9.4pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 46.15pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.4pt; BACKGROUND-COLOR: transparent" width=62 rowSpan=2&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 149.45pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.4pt" width=199 colSpan=3&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;New linker (VS2010)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 153pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.4pt" vAlign=top width=204 colSpan=3&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Old linker (VS2008 SP1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 57.55pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.4pt" vAlign=top width=77 rowSpan=2&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass2 Improved&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 57.55pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.4pt" vAlign=top width=77 rowSpan=2&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Total Improved&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 9.35pt; mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.35pt" vAlign=top width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.35pt" vAlign=top width=63&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.35pt" vAlign=top width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Total&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.35pt" vAlign=top width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.35pt" vAlign=top width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.35pt" vAlign=top width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Total&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 2"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 46.15pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=62&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;3.547&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=63&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #00b050"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1.859&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;5.406&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;4.437&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2.328&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;6.765&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 57.55pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=77&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;20.15%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 57.55pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=top width=77&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;20.08%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 3"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 46.15pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=62&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;9.797&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=63&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #00b050"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;10.266&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;20.063&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;9.484&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;15.766&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;25.250&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 57.55pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=77&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;34.89%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 57.55pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=top width=77&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;20.54%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 4"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 46.15pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=62&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;17.078&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=63&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #00b050"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;22.609&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;39.687&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;27.266&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;43.687&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;70.953&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 57.55pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=77&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;48.25%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 57.55pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=top width=77&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;44.07%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 5; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 46.15pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=62&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;47.500&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=63&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #00b050"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;54.281&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;101.781&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;47.453&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;70.172&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;117.625&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 57.55pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=77&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;22.65%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 57.55pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=top width=77&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;13.47%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoCaption style="MARGIN: 0in 0in 10pt"&gt;&lt;A class="" title=_Ref236640004 name=_Ref236640004&gt;&lt;/A&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;Table &lt;/FONT&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;6 Test Result of new linker, LTCG with /Debug On&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE class=MsoNormalTable style="MARGIN: auto auto auto 4.25pt; WIDTH: 464.65pt; BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 width=620 border=0 class="MsoNormalTable"&gt;
&lt;THEAD&gt;
&lt;TR style="HEIGHT: 9.4pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 46.15pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.4pt; BACKGROUND-COLOR: transparent" width=62 rowSpan=2&gt;&lt;STRONG&gt;&lt;FONT face=Calibri color=#4f81bd&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 149.45pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.4pt" width=199 colSpan=3&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;New linker(VS2010)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 152.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.4pt" vAlign=top width=203 colSpan=3&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Old linker(VS2008 SP1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 58.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.4pt" vAlign=top width=78 rowSpan=2&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass2 Improved&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 58.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.4pt" vAlign=top width=78 rowSpan=2&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Total Improved&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 9.35pt; mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.35pt" vAlign=top width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.35pt" vAlign=top width=63&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.35pt" vAlign=top width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Total&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 48.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.35pt" vAlign=top width=65&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 49pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.35pt" vAlign=top width=65&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Pass2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #95b3d7; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 54.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 9.35pt" vAlign=top width=72&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%; TEXT-ALIGN: center" align=center&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Total&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 2"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 46.15pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=62&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;153.516&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=63&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #00b050"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;0.953&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;154.469&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 48.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=65&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;178.797&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 49pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=65&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;1.734&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dddc; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 54.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=72&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;180.531&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dbdb; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 58.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=78&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;45.04%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #f2dbdb; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 58.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=top width=78&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;14.44%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 3"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 46.15pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=62&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;119.703&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=63&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #00b050"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;5.391&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;125.094&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 48.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=65&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;120.375&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 49pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=65&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;5.546&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5e0ec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 54.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=72&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;125.921&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5dfec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 58.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=78&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;2.79%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #e5dfec; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 58.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=top width=78&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.66%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 4"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 46.15pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=62&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;225.688&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=63&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #00b050"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;16.594&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;242.282&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 48.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=65&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;222.859&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 49pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=65&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;20.719&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 54.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=72&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;243.578&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 58.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=78&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;19.91%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #eaf1dd; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 58.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=top width=78&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;0.53%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15.75pt; mso-yfti-irow: 5; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 46.15pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" noWrap width=62&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Proj4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51.25pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;525.375&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 47.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=63&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: #00b050"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;80.375&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 51pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom noWrap width=68&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;605.750&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 48.95pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=65&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;522.329&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 49pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=65&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;B&gt;&lt;SPAN style="COLOR: red"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;122.984&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 54.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=72&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;645.313&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 58.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=bottom width=78&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;34.65%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #fde9d9; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 58.5pt; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 15.75pt" vAlign=top width=78&gt;
&lt;P class=Textintable style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri size=3&gt;6.13%&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;From Table 5 and Table 6, it can be seen that multi-threading the linker has improved the performance of Pass2, and it is especially effective for bigger projects.&lt;/FONT&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#365f91&gt;&lt;FONT face=Cambria&gt;Future&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;We will continue to look into linker throughput even after 2010 release to find areas to improve. If you have any suggestions and feedbacks, feel free to let us know.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9893729" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author></entry><entry><title>Compiler Warning C4789</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/09/01/compiler-warning-c4789.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/09/01/compiler-warning-c4789.aspx</id><published>2009-09-01T19:29:00Z</published><updated>2009-09-01T19:29:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;When Visual Studio 2010 ships, it will have improvements to warning C4789; allowing it to catch more cases of buffer overrun. This blog post will cover what C4789 warns about, and how to resolve the warning.&lt;/FONT&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#365f91&gt;&lt;FONT face=Cambria&gt;What does C4789 mean?&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;When compiling your source file, you may receive the warning: “warning C4789: destination of memory copy is too small.”&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;This message means that the compiler has detected a possible buffer overrun in your code.&lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=3&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Example 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Let’s say we have the source file a.cpp that contains the following:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;1:&lt;SPAN style="COLOR: blue"&gt; #include&lt;/SPAN&gt; &lt;SPAN style="COLOR: #a31515"&gt;&amp;lt;memory.h&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;2:&lt;SPAN style="COLOR: #a31515"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;3: &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; p[1];&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;4:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;5: &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; bar() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;6:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memset(&amp;amp;p[1], 1, &lt;SPAN style="COLOR: blue"&gt;sizeof&lt;/SPAN&gt;(&lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;7: }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;From the ”Visual Studio 2008 Command Prompt”, if you compile this with the command:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CommandLine style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-STYLE: normal; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=3&gt;cl /c /O2 a.cpp&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;You will receive the warning:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;a.cpp(6) : warning C4789: destination of memory copy is too small&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;For the example above, the compiler has detected a buffer overrun for the variable ‘p’. 'p' has been allocated as an array with one element. Arrays are zero-indexed, so the memset on line 6 is taking the address of the &lt;I&gt;second&lt;/I&gt; element of an array; this means that we are actually writing to memory outside the array, corrupting memory!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In this case, the user most likely meant to memset the first element, and thus to fix this issue, the memset would be changed to &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;memset(&amp;amp;p&lt;B&gt;[0]&lt;/B&gt;, 1, &lt;SPAN style="COLOR: blue"&gt;sizeof&lt;/SPAN&gt;(&lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#365f91&gt;&lt;FONT face=Cambria&gt;Typical User Scenarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In practice, a lot of buffer overruns will not be as obvious as Example 1, so I’ll provide some more examples to help you in your investigations.&lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=3&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Example 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Let’s say we have the source file a.cpp that contains the following:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;1:&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;short&lt;/SPAN&gt; G1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;2:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;3:&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; foo(&lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; * x)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;4:&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;5:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *x = 5;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;6:&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;7: &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;8:&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; bar() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;9:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foo((&lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; *)&amp;amp;G1);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;10: }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;From the ”Visual Studio &lt;B&gt;2010&lt;/B&gt; Command Prompt”, if you compile this with the command:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CommandLine style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-STYLE: normal; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=3&gt;cl /c /O2 a.cpp&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;You will receive the warning:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;a.cpp(9) : warning C4789: destination of memory copy is too small&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In this example, we’ve created a variable 'G1' of size short (which is only two bytes), but we’ve taken the address of it and casted it to 'int *' to pass to 'foo’. 'foo' then writes 4 bytes to the memory location pointed at by 'x’. As 'G1' is only 2 bytes in length, the store “*x = 5” will write past 'G1', resulting in a buffer overrun. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;There are a couple of important things to note about this example. This buffer overrun will only be caught with the improvements made in Visual Studio 2010. Also, this warning is caught by inlining 'foo' into 'bar'. This means that this buffer overrun is only caught when optimizations are enabled.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;To fix the buffer overrun in Example 2, we declare 'G1' as int. If that isn’t an option, we can create a new variable to pass to ‘foo,’ and assign that variable to ‘G1’ (which truncates the int to a short):&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; y;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp; foo(&amp;amp;y);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp; G1 = y;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=3&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Example 3&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Let’s say we have the source file a.cpp that contains the following:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;1:&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; G1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;2:&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; G2;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;3:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;4:&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; foo(&lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; ** x)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;5:&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;6:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *x = &amp;amp;G2;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;7:&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;8:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;9:&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; bar() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;10:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foo((&lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; *)&amp;amp;G1);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;11: }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;From the ”Visual Studio 2010 &lt;B&gt;X64&lt;/B&gt; Cross Tools Command Prompt”, if you compile this with the command:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CommandLine style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-STYLE: normal; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=3&gt;cl /c /O2 a.cpp&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;You will receive the warning:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;a.cpp(10) : warning C4789: destination of memory copy is too small&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;This example is exactly like Example 2 with a key difference. We’ve casted “int” to “int *”. On x86, this is a harmless cast (int and int * are the same size, 4 bytes). However, on x64, “int” is 4 bytes, and “int *” is 8 bytes, so this code is no longer correct when this code is run on x64.&lt;/FONT&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#365f91&gt;&lt;FONT face=Cambria&gt;C4789 False Positives&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;You may hit cases of C4789 where the warning is incorrect. This can happen because the compiler detects a buffer overrun along a code path that will never fire. &lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=3&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Example 4&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;1:&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;__int64&lt;/SPAN&gt; G1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;2:&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; lengthOfG1 = 8;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;3:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;4:&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; foo(&lt;SPAN style="COLOR: blue"&gt;char&lt;/SPAN&gt; * x, &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; len) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;5:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (len &amp;gt; 8) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;6:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x[8] = 1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;7:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;8:&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;9:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;10: &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; bar() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;11:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foo((&lt;SPAN style="COLOR: blue"&gt;char&lt;/SPAN&gt; *)&amp;amp;G1, lengthOfG1);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;12: }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;From the ”Visual Studio 2010 Command Prompt”, if you compile this with the command:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CommandLine style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-STYLE: normal; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=3&gt;cl /c /O2 a.cpp&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;You will receive the warning:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;a.cpp(11) : warning C4789: destination of memory copy is too small&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In this example, the compiler thinks that ‘G1’ can be buffer overrun because of “x[8] = 1” would assign outside of the size of ‘G1.’ However, as long as ‘lengthOfG1’ is the correct length of ‘G1,’ “x[8] = 1” will never fire for ‘G1,’ and thus a buffer overrun will never occur.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;For some of these false positives, the only option will be to disable the warning. In this particular example, however, changing "int lengthOfG1 = 8” to&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;const int&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt; lengthOfG1 = 8; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;would solve the problem.&lt;/FONT&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#365f91&gt;&lt;FONT face=Cambria&gt;Workarounds&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;If you have proven that the warning is a false positive, there are a couple of different ways to disable the warning.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Disable the warning for one function (recommended)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Disable the warning for all functions&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Disable the warning for one function&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The compiler allows you to disable a warning for a particular function. This is done by putting&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;#pragma&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt; &lt;SPAN style="COLOR: blue"&gt;warning&lt;/SPAN&gt; ( &lt;SPAN style="COLOR: blue"&gt;disable&lt;/SPAN&gt; : 4789 )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;before the function, and putting&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;#pragma&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt; &lt;SPAN style="COLOR: blue"&gt;warning&lt;/SPAN&gt; ( &lt;SPAN style="COLOR: blue"&gt;default&lt;/SPAN&gt; : 4789 )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;after the function. This will disable the warning (in this case warning 4789) for that function (and any functions which inline it).&lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=3&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Example 5&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;1:&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;__int64&lt;/SPAN&gt; G1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;2:&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; lengthOfG1 = 8;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;3:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;4:&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;#pragma&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;warning&lt;/SPAN&gt; ( &lt;SPAN style="COLOR: blue"&gt;disable&lt;/SPAN&gt; : 4789 )&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;5:&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; foo(&lt;SPAN style="COLOR: blue"&gt;char&lt;/SPAN&gt; * x, &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; len) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;6:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (len &amp;gt; 8) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;7:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x[8] = 1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;8:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;9:&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;10: &lt;SPAN style="COLOR: blue"&gt;#pragma&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;warning&lt;/SPAN&gt; ( &lt;SPAN style="COLOR: blue"&gt;default&lt;/SPAN&gt; : 4789 )&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;11:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;12: &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; bar() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;13:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foo((&lt;SPAN style="COLOR: blue"&gt;char&lt;/SPAN&gt; *)&amp;amp;G1, lengthOfG1);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;14: }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;15:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;16: &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; bar1() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;17:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foo((&lt;SPAN style="COLOR: blue"&gt;char&lt;/SPAN&gt; *)&amp;amp;G1, 9);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;18: }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;With the #pragma around ‘foo,’ you will receive no warnings; while without it you will receive the warnings:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; LINE-HEIGHT: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;a.cpp(13) : warning C4789: destination of memory copy is too small&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;a.cpp(17) : warning C4789: destination of memory copy is too small&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;You can also choose to disable the warning for one of the functions where the warning occurs. In the example above, we could put the #pragma around ‘bar’ instead of ‘foo’, and then we’d eliminate the warning for line 13, but still receive the warning on line 17.&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Disable the warning for all functions&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;If you need to ignore warning 4789 completely, you can specify /wd4789 on the command line.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=CommandLine style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-STYLE: normal; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=3&gt;cl /c /O2 &lt;B&gt;/wd4789&lt;/B&gt; a.cpp&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;This option isn’t recommended as it will hide potentional buffer overruns in your code.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9889954" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author></entry><entry><title>Windows SDK V7.0/V7.0A Incompatibility Workaround</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/08/27/windows-sdk-v7-0-v7-0a-incompatibility-workaround.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/08/27/windows-sdk-v7-0-v7-0a-incompatibility-workaround.aspx</id><published>2009-08-28T00:15:00Z</published><updated>2009-08-28T00:15:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;Hi,&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;My name is Nada AboElseoud and I am a QA in VC++ Libraries team. I joined MS in February 2009. I would like to talk here about an incompatibility issue with WinSDK v7.0*.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;If you are a developer who has recently migrated to WinSDK v7.0 (standalone SDK) or v7.0A (inbox with VS 2010), you may encounter these kinds of errors “The procedure entry point K32*** could not be located in the dynamic link library KERNEL32.dll&lt;SPAN style="COLOR: #1f497d"&gt;” &lt;/SPAN&gt;while running your application.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This implies that you are running your application on an OS other than Windows7 or Windows Server 2008 R2. This blog will explain this blocking issue and provide the workaround.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;Let me explain first why this issue happens.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For performance reasons, some APIs have been moved from Psapi.dll to Kernel32.dll in Windows7 and Windows Server 2008 R2. WinSDK v7.0* is reflecting these modifications to be compatible with the new system dlls. This is &lt;B style="mso-bidi-font-weight: normal"&gt;by design&lt;/B&gt;, but wait! If you are trying to link your application to Psapi.lib and then targeting any pre Windows7 or pre Windows Server 2008 R2, you will get this runtime error. Breaking this down, all APIs from Psapi.dll are copied to Kernel32.dll in Windows7 and Windows Server 2008 R2 (Psapi.dll remain unchanged though). Linking to Psapi.lib marks these APIs as Kernel32 APIs to load them from Kernel32.dll instead. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Following is the list of these APIs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'"&gt;//Snapshot from Psapi.lib – WinSDK V7.0*&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#if (PSAPI_VERSION &amp;gt; 1) &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define EnumProcesses&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32EnumProcesses&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define EnumProcessModules&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32EnumProcessModules&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define EnumProcessModulesEx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32EnumProcessModulesEx&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetModuleBaseNameA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetModuleBaseNameA&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetModuleBaseNameW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetModuleBaseNameW&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetModuleFileNameExA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetModuleFileNameExA&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetModuleFileNameExW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetModuleFileNameExW&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetModuleInformation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetModuleInformation&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define EmptyWorkingSet &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;K32EmptyWorkingSet&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define QueryWorkingSet&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32QueryWorkingSet&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define QueryWorkingSetEx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32QueryWorkingSetEx&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define InitializeProcessForWsWatch K32InitializeProcessForWsWatch&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetWsChanges&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetWsChanges&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetWsChangesEx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetWsChangesEx&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetMappedFileNameW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetMappedFileNameW&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetMappedFileNameA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetMappedFileNameA&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define EnumDeviceDrivers&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32EnumDeviceDrivers&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetDeviceDriverBaseNameA&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetDeviceDriverBaseNameA&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetDeviceDriverBaseNameW&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetDeviceDriverBaseNameW&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetDeviceDriverFileNameA&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetDeviceDriverFileNameA&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetDeviceDriverFileNameW&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetDeviceDriverFileNameW&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetProcessMemoryInfo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetProcessMemoryInfo&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetPerformanceInfo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetPerformanceInfo&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define EnumPageFilesW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32EnumPageFilesW&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define EnumPageFilesA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K32EnumPageFilesA&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetProcessImageFileNameA&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetProcessImageFileNameA&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#define GetProcessImageFileNameW&amp;nbsp;&amp;nbsp;&amp;nbsp; K32GetProcessImageFileNameW&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #548dd4; FONT-FAMILY: 'Times New Roman','serif'; mso-themecolor: text2; mso-themetint: 153"&gt;#endif&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'"&gt;Now, it should be obvious why by calling some API (say &lt;I style="mso-bidi-font-style: normal"&gt;EnumProcessModules&lt;/I&gt;) you get this runtime error “The procedure entry point &lt;I style="mso-bidi-font-style: normal"&gt;K32EnumProcessModules&lt;/I&gt; could not be located in the dynamic link library KERNEL32.dll” pointing to a different API name.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'"&gt;However, did you notice the IF condition involved?&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'"&gt;#if (PSAPI_VERSION &amp;gt; 1) &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'"&gt;This means that these APIs are defined/tagged only if the PSAPI_VERSION &amp;gt; 1. By default this value is set to 2 and _WIN32_WINNT is set to _WIN32_WINNT_MAXVER (which is 0x601 for Win7).&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'"&gt;Workaround&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'"&gt;After reading about this issue, you may be able now to figure out the solution. Simply,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'"&gt;if you target any OS prior to Windows7 and Windows 2008 R2, what you need to do is to define _WIN32_WINNT to a previous version (before 0x601) or to define Psapi_version to 1.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'"&gt;For example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;cl /MD /EHsc &amp;nbsp;&lt;B style="mso-bidi-font-weight: normal"&gt;/D _WIN32_WINNT=0x501&lt;/B&gt; mytest.cpp /link Psapi.lib&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;Or&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;cl /MD /EHsc &amp;nbsp;&lt;B style="mso-bidi-font-weight: normal"&gt;/D PSAPI_VERSION=1&lt;/B&gt; mytest.cpp /link Psapi.lib&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;Does this mean that this generated exe will work fine on Windows7 and Windows Server 2008 R2 as well? Definitely. As stated above, Psapi.dll is not modified and the workaround is just loading the APIs from Psapi.dll.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;Otherwise, if you are just targeting Windows7 (or Windows 2008 R2), to take advantage of this performance boost, you can simply use the default predefined macros or explicitly define them as below.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;cl /MD /EHsc &amp;nbsp;&lt;B style="mso-bidi-font-weight: normal"&gt;/D _WIN32_WINNT=0x601&lt;/B&gt; mytest.cpp /link Psapi.lib&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;Or&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;cl /MD /EHsc &amp;nbsp;&lt;B style="mso-bidi-font-weight: normal"&gt;/D PSAPI_VERSION=2&lt;/B&gt; mytest.cpp /link Psapi.lib&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: black; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: JA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;Hope this is helpful &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: Wingdings; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Lucida Handwriting'; mso-bidi-font-family: 'Times New Roman'"&gt;Nada &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;AboElseoud&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9887426" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author></entry><entry><title>Tag Parsing C++</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/08/12/tag-parsing-c.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/08/12/tag-parsing-c.aspx</id><published>2009-08-12T20:59:00Z</published><updated>2009-08-12T20:59:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Hello, my name is Thierry Miceli and I am a developer on the Visual C++ Compiler Front End team. Although our team is mostly known for writing and maintaining the part of the C++ compiler that analyzes your source code and builds an internal representation from it, a great deal of our effort in the last few years has been directed into servicing the IDE and improving the intellisense experience (refreshers &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/vcblog/archive/2009/01/27/dev10-is-just-the-beginning.aspx"&gt;&lt;FONT face=Calibri size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;, &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/vcblog/archive/2009/05/27/rebuilding-intellisense.aspx"&gt;&lt;FONT face=Calibri size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;, and &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/vcblog/archive/2009/06/01/c-gets-squiggles.aspx"&gt;&lt;FONT face=Calibri size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;).&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Today&lt;SPAN style="COLOR: #1f497d"&gt;, I&lt;/SPAN&gt; am going to write about a new parser that has been specifically created to provide a fast and scalable way to extract information from C++ source code. This parser is one of our new additions to Visual Studio 2010 and we call it the “tag parser”.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The tag parser is used in Visual Studio 2010 to populate the SQL database that supersedes the NCB file. All of the browsing features of VC++ rely in some way on results provided by the tag parser. These include Class View, Call Hierarchy, Go To Definition/Declaration, Get All References, Quick Search, the Navigation Bar and VCCodeModel.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;A Fuzzy Parser&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;It is a fuzzy parser, which means that instead of trying to strictly recognize and validate the full C++ syntax (we have an excellent compiler front-end to do that) it lazily matches an input stream of tokens with some patterns. This parser doesn’t populate a symbol table during parsing, it has no notion of types apart from built-in ones, it doesn’t build a full macro context and its unit of translation is a single file (i.e. it doesn’t follow through #include directives). But nevertheless, the parser is able to deal with all of C++, C++/CLI and IDL.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;High level of tolerance to incomplete code and errors&lt;/B&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The tag parser doesn’t try to make sense of every symbol or identifier in the source code. It will be satisfied with being able to recognize the different parts of a declaration and their positions in the source file. If a name in the type specification of a declaration couldn’t get resolved by our C++ compiler this would not prevent the tag parser from recognizing the declaration and it will show up in Class View as in the example below.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9866845/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9866845/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The tag parser is somewhat analogous to a human reader of the source code that would just be looking at one unique declaration without knowing much about the rest of the project. He may not know what most identifiers actually represent but he can tell with a high level of confidence what the declaration is and locate its subparts.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In addition to the tolerance to ‘semantically’ incorrect code which is a property of fuzzy parsers, the tag parser has heuristic based error recovery for the most common causes of erroneous code during editing. For example, it will try to detect incomplete declarations or unclosed body of functions definitions as shown in the snapshot below. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9866846/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9866846/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Dealing with preprocessor conditional directives&lt;/B&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The tag parser’s main role is to extract information from the source code that is then consumed by the IDE browsing features. Because browsing features closely relate to the editing experience it is more useful that the tag parser generates a structured representation of the full source code as it appears in the editor rather than a representation of the code that would get compiled under a specific project configuration. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The tag parser deals with preprocessor conditional directives (#if, #ifdef, #ifndef, #else, #elif, #endif) in a special way. It incorporates the full code in each of the branches of preprocessor conditional directives but still only parses complete declarations. For example in the image below, both the inactive and active branches are parsed and Class View shows both function declarations.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9866847/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9866847/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The tag parser is also able to deal with more complex cases where a declaration is interrupted by one or more preprocessor conditional directives. For example in the image below both of the declarations that can be induced by the 2 branches are parsed and reported.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vcblog/images/9866850/original.aspx" mce_src="http://blogs.msdn.com/photos/vcblog/images/9866850/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B&gt;&lt;FONT face=Calibri size=3&gt;Faster and scalable&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Tag parsing scales because it is incremental – it doesn’t need to re-parse hundreds (or thousands) of compilation units after a header file is changed, as is often the case in an actual build. &amp;nbsp;It is also faster than a full compiler (despite its heuristics) because it is not burdened by macro expansion and full semantic resolution. &amp;nbsp;Thus it is well suited to capture real-time information for even the largest projects.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;No built-in semantic resolution&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Since the tag parser operates strictly on a per-file basis, certain semantic resolutions are left to its clients. For example, since function declarations and definitions typically appear in separate files,&lt;SPAN style="COLOR: #00b050"&gt; &lt;/SPAN&gt;the tag parser reports a function declaration and its definition separately without any binding information. Therefore Class View has to match a function declaration and its definition so that they appear as a single entry in the Class View tree. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The tag parser is light-weight and this comes with some responsibilities on the side of the consumers of the parser results. The good thing here is that clients only have to incur the cost of building the semantic knowledge that they need and they can dig into the data with SQL now.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Hint Files&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;We tried to make the tag parser as standalone as possible. It doesn’t need to know about any kind of project configuration (include paths, compiler switches, etc…). In many cases the tag parser could be invoked with a source file name as its only argument and it would do an excellent job at extracting detailed information about the code in this file. The only caveat is preprocessor macros that interfere with the C++ syntax so badly that fuzzy parsing and error recovery heuristics cannot make sense out of the code. One example of such macro is STDMETHOD, when expanded it will generate a member function signature from something like:&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; FONT-FAMILY: Consolas"&gt;STDMETHOD(OnDocWindowActivate)(BOOL fActivate)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;You’ll have a hard time guessing what the above line means if you don’t know what STDMETHOD is. Since the tag parser doesn’t follow through #include directives and doesn’t perform SQL lookups into the symbol database*, it cannot discover by itself macro definitions. Nevertheless, its macro state can be preconfigured with what we call a ‘hint file’. A hint file simply contains the definitions of macros that are needed for the tag parser to correctly recognize your source code in the presence of macros that fundamentally interfere with the C++ syntax.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;If you have Beta1 installed, you will find a “cpp.hint” file in your Visual Studio 2010 install directory under vc\vcpackages, this is the hint file for the VC and SDK library headers. Very often the tag parser will do just fine with only this preset hint file. Nevertheless, if your code or some&amp;nbsp;third party library code you are using contains macros that tamper with the C++ syntax, you may need to setup your own hint file. The IDE will look for files named “cpp.hint” in the directory where your source files are located and in all the parent directories up to the root directory or until a file named “cpp.stop” is found. All the hint files that are found will be preprocessed to build the macro context before your files actually get to be parsed. I won’t go into more details about hint files for now but feel free to ask questions and, by the way, they will be thoroughly documented on MSDN.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Don’t worry too much if this machinery seems complex, most of the time you won’t have to define your own hint files or you’ll just need to drop a “cpp.hint” file with a few macro definitions in your project or solution directory.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In the future we are planning to work on tools that will help you decide where hint files are needed and possibly generate them for you. And we will also work on making the tag parser act smarter in the presence of macros so that fewer hints need to be added to a hint file.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;*&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;In theory the tag parser could query the database for macros definitions when additional information is needed to recognize or disambiguate a declaration, but a reliable implementation of symbol lookups (even if it was only for macros) would push the tag parser in the opposite direction of being light-weight, standalone, incremental and independent from project configurations.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9866887" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author></entry><entry><title>Active Template Library (ATL) Security Updates</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/vcblog/archive/2009/08/05/active-template-library-atl-security-updates.aspx" /><id>http://blogs.msdn.com/vcblog/archive/2009/08/05/active-template-library-atl-security-updates.aspx</id><published>2009-08-06T00:51:00Z</published><updated>2009-08-06T00:51:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Hello,&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;On Tuesday 28 July &amp;nbsp;we released guidance and updates to assist developers using our Active Template Library (ATL) to prevent creating controls or components with potential security vulnerabilities.&amp;nbsp; Vulnerabilities in libraries are a rare, but industry wide issue, that requires broad collaboration and action by the community at large to effectively resolve.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Developers who have built controls using the ATL should take immediate action to review their control to identify if it is vulnerable and take appropriate action to rebuild their control using the updated ATL library and distribute a non-vulnerable version of their control to their customers.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;If you develop any controls with ATL then please take a look at the &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/visualc/ee309358.aspx" mce_href="http://msdn.microsoft.com/en-us/visualc/ee309358.aspx"&gt;&lt;FONT face=Calibri size=3&gt;guidance on MSDN&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; detailing the steps required to identify and address affected controls. Also, we cover the issue in a &lt;/FONT&gt;&lt;A href="http://channel9.msdn.com/posts/Charles/Out-of-Band-Inside-the-ATL-Security-Update/" mce_href="http://channel9.msdn.com/posts/Charles/Out-of-Band-Inside-the-ATL-Security-Update/"&gt;&lt;FONT face=Calibri size=3&gt;Channel9 video&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Thanks&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Damien&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Visual C++&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9858444" width="1" height="1"&gt;</content><author><name>vcblog</name><uri>http://blogs.msdn.com/members/vcblog.aspx</uri></author><category term="Bug Info" scheme="http://blogs.msdn.com/vcblog/archive/tags/Bug+Info/default.aspx" /><category term="Channel 9" scheme="http://blogs.msdn.com/vcblog/archive/tags/Channel+9/default.aspx" /></entry></feed>