DonatShell
Server IP : 180.180.241.3  /  Your IP : 216.73.216.252
Web Server : Microsoft-IIS/7.5
System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586
User : IUSR ( 0)
PHP Version : 5.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Windows/security/msscw/TransformFiles/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /Windows/security/msscw/TransformFiles/SCWAnalysis.xsl
ÿþ<?xml version="1.0"?>

<xsl:stylesheet

  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

  xmlns:msxsl="urn:schemas-microsoft-com:xslt"

  xmlns:msftscw="http://www.microsoft.com/windows/security/"

  version="1.0">



  <xsl:import href="scwxmlloc.xsl"/>

  <xsl:include href="View\Vars.xsl"/>

  <xsl:output method="html"/>



  <xsl:variable name="XMLFirewallItems"

                select="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Networking.Firewall']/Items"/>

  <xsl:variable name="XMLFirewallRulesInPolicyAndNotOnSystem"

                select="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Networking.Firewall']/Items/Item[@Key='FirewallRule' and @Value='BaselineOnly']"/>

  <xsl:variable name="XMLFirewallRulesOnSystemAndNotInPolicy"

                select="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Networking.Firewall']/Items/Item[@Key='FirewallRule' and @Value='SystemOnly']"/>

  <xsl:variable name="XMLFirewallRulesInPolicyAndOnSystem"

                select="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Networking.Firewall']/Items/Item[@Key='FirewallRule' and @Value='Mismatch']"/>

  <xsl:variable name="XMLFirewallProfiles"

                select="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Networking.Firewall']/Items/Item[@Key='ProfileSettings' and @Value='Mismatch']"/>



  <xsl:template match="/">

    <HTML>

      <LINK REL="stylesheet"

            HREF="../TransformFiles/view/kb.css"

            type="text/css"/>

      <HEAD>



        <!-- Initialize the localization -->

        <xsl:comment>

          <xsl:value-of select="msftscw:InitLocVariable($UserUILanguage, 'KBLocFile', 'SCWLocStrings.xml', '.\MUI\', '.\')" />

          <xsl:value-of select="msftscw:InitLocVariable($UserUILanguage, 'SCWAnaLocStrings.xml', 'SCWAnaLocStrings.xml', '.\MUI\', '.\')" />

        </xsl:comment>



        <xsl:comment>

          <xsl:value-of select="msftscw:InitializeLookup()" />

        </xsl:comment>



        <TITLE>

          <xsl:value-of select="msftscw:getString('SecurityResults/Header/Title', 'SCWAnaLocStrings.xml')"/>

        </TITLE>

        <xsl:text disable-output-escaping="yes"><![CDATA[

            <script language="JScript">

            

            function getImagePath(FileName) 

            {

                var strPath = "../TransformFiles/View/" + FileName;

                return strPath;

            }

    

            function changeImg(bHoverOver)

            {

                var ImgElement		=   null;						

                var tdElement		=   null;

                

                if ( event.srcElement.tagName == "IMG" )

                {

                    tdElement	 = event.srcElement.parentElement;

                    ImgElement	 = event.srcElement;

                    tBodyElement = tdElement.parentElement.parentElement;

                    tBodyToHide  = tBodyElement.nextSibling;					

                }							

                else 

                {

                    tdElement	 = event.srcElement;

                    ImgElement	 = event.srcElement.firstChild;

                    tBodyElement = event.srcElement.parentElement.parentElement;

                    tBodyToHide  = tBodyElement.nextSibling;

                }							

                

                if("none" == tBodyToHide.currentStyle.display)

                {

                    if ( bHoverOver ) 

                    {

                        ImgElement.src				=	getImagePath("RightArrowHighLight.gif");

                    }

                    else {

                        ImgElement.src				=	getImagePath("RightArrow.gif");

                    }

                }

                else

                {

                    if ( bHoverOver ) {

                        ImgElement.src				=	getImagePath("DownArrowHighLight.gif");

                    }

                    else {

                        ImgElement.src				=	getImagePath("DownArrow.gif");

                    }

                }   

            }

            

            function changeImgForDiv(bHoverOver)

            {

                div			= event.srcElement.parentElement;

                obj			= div.nextSibling;

                ImgElement	= div.firstChild;                

                

                if("none" == obj.currentStyle.display)

                {

                    if ( bHoverOver ) 

                        ImgElement.src				=	getImagePath("RightArrowHighLight.gif");

                    else

                        ImgElement.src				=	getImagePath("RightArrow.gif");

                }

                else

                {

                    if ( bHoverOver )

                        ImgElement.src				=	getImagePath("DownArrowHighLight.gif");

                    else

                        ImgElement.src				=	getImagePath("DownArrow.gif");

                }   

            }

            

            

            function toggleDisplayForTable()

            {

            

                var tBodyElement	=	null;

                var tBodyToHide		=   null;

                var ImgElement		=   null;						

                var tdElement		=   null;

                

                if ( event.srcElement.tagName == "IMG" )

                {

                    tdElement	 = event.srcElement.parentElement;

                    tBodyElement = tdElement.parentElement.parentElement;

                    ImgElement	 = event.srcElement;

                    tBodyToHide  = tBodyElement.nextSibling;

                }							

                else 

                {

                    tdElement	 = event.srcElement;

                    tBodyElement = event.srcElement.parentElement.parentElement;

                    ImgElement	 = event.srcElement.firstChild;

                    tBodyToHide  = tBodyElement.nextSibling;

                }							

                

                if("none" == tBodyToHide.currentStyle.display)

                {

                    tBodyToHide.style.display	=	"block";

                    ImgElement.src				=	getImagePath("DownArrow.gif");

                }

                else

                {

                    tBodyToHide.style.display	=	"none";

                    ImgElement.src				=	getImagePath("RightArrow.gif");    

                }   

            }

            

            function toggleDisplay()

            {

                var div;



                div = event.srcElement.parentElement;



                var obj = div.nextSibling;

                

                bShow = ("none"==obj.currentStyle.display);



                if(bShow)

                {

                    obj.style.display = "block";

                    ImgElement = div.firstChild;

                    ImgElement.src = "../TransformFiles/view/downarrow.gif";

                }

                else

                {

                    obj.style.display = "none";

                    ImgElement = div.firstChild;

                    ImgElement.src="../TransformFiles/view/rightarrow.gif";    

                    

                }   

            }

            function onKeyUp()

            {

                switch(event.keyCode)

                {

                    case 13:

                    case 32:

                        toggleDisplay();

                    break;

                }

            }

            </script>

            ]]></xsl:text>

      </HEAD>

      <body class="kbbody">

        <!-- ************************************ -->

        <!-- ************** TITLE *************** -->

        <!-- ************************************ -->

        <table class="SEVarResultsHeaderTable">

          <tr>

            <td>

              <table class="SEVarResultsHeaderTableLeftCell">

                <tr>

                  <td class="SEVarResultsHeader">

                    <xsl:value-of select="msftscw:getString('SecurityResults/Header/Title', 'SCWAnaLocStrings.xml')"/>

                  </td>

                </tr>

                <tr>

                  <td class="SEVarResultsDescription">

                    <xsl:value-of select="msftscw:getString('SecurityResults/Header/Description', 'SCWAnaLocStrings.xml')"/>

                  </td>

                </tr>

              </table>

            </td>

          </tr>

          <tr>

            <td>

              <div class="SEVarResultsHeaderTableLeftCell">

                <table class="SEVarResultsMachineTable">

                  <xsl:for-each select="SC/Results/ScanInformation">

                    <tr>

                      <td class="SEVarResultsTableLabel">

                        <xsl:value-of select="msftscw:getString('SecurityResults/Header/Target', 'SCWAnaLocStrings.xml')"/>

                      </td>

                      <td class="SEVarResultsTableData">

                        <xsl:value-of select="@MachineName"/>

                      </td>

                    </tr>

                    <tr>

                      <td class="SEVarResultsTableLabel">

                        <xsl:value-of select="msftscw:getString('SecurityResults/Header/InspectionTime', 'SCWAnaLocStrings.xml')"/>

                      </td>

                      <td class="SEVarResultsTableData">

                        <xsl:value-of select="@InspectionTime"/>

                      </td>

                    </tr>

                  </xsl:for-each>

                </table>

              </div>

            </td>

          </tr>

        </table>





        <!-- ************************************ -->

        <!-- ********** SERVICES SECTION ******** -->

        <!-- ************************************ -->



        <xsl:choose>

          <xsl:when test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Services' and @Status='Failed']">

            <div class="kbsections">

              <xsl:value-of disable-output-escaping="yes"

                            select="msftscw:GetHeaderRow('SecurityResults/Sections/Services/Title', 0 )"/>

              <div style="display:none" >

                <xsl:value-of disable-output-escaping="yes"

                              select="msftscw:getExtensionErrorText()"/>

              </div>

            </div>

          </xsl:when>

          <xsl:when test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Services']/Items/Item">



            <div class="kbsections">



              <!-- Header Row  -->

              <xsl:value-of disable-output-escaping="yes"

                            select="msftscw:GetHeaderRow('SecurityResults/Sections/Services/Title', 0 )"/>





              <div style="display:none">

                <xsl:value-of disable-output-escaping="yes"

                              select="msftscw:BuildServiceSection(//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Services']/Items, 0)"/>

                <xsl:value-of disable-output-escaping="yes"

                              select="msftscw:BuildServiceSection(//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Services']/Items, 1)"/>

              </div>

            </div>



          </xsl:when>

        </xsl:choose>



        <!-- ************************************ -->

        <!-- ********** Audit            ******** -->

        <!-- ************************************ -->

        <xsl:choose>

          <xsl:when test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Audit' and @Status='Failed']">

            <div class="kbsections">

              <xsl:value-of disable-output-escaping="yes"

                            select="msftscw:GetHeaderRow('SecurityResults/Sections/Audit/Title', 0)"/>

              <div style="display:none" >

                <xsl:value-of disable-output-escaping="yes"

                              select="msftscw:getExtensionErrorText()"/>

              </div>

            </div>

          </xsl:when>

          <xsl:when test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Audit']/Items/Item">



            <div class="kbsections">



              <!-- Header Row  -->

              <xsl:value-of disable-output-escaping="yes"

                            select="msftscw:GetHeaderRow('SecurityResults/Sections/Audit/Title',0)"/>



              <div style="display:none"

                   class="policyResultsSubTableDiv">

                <table class="expanddescription policyResultsTable" >

                  <thead>

                    <td class="OBJECTLISTSUBHEADER">

                      <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Audit/Table/ItemName', 'SCWAnaLocStrings.xml')"/>

                    </td>

                    <td class="OBJECTLISTSUBHEADER">

                      <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Audit/Table/BaseMode', 'SCWAnaLocStrings.xml')"/>

                    </td>

                    <td class="OBJECTLISTSUBHEADER">

                      <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Audit/Table/SystemMode', 'SCWAnaLocStrings.xml')"/>

                    </td>

                  </thead>



                  <xsl:value-of disable-output-escaping="yes"

                                select="msftscw:BuildAuditSection(//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Audit']/Items)"/>



                </table>

              </div>

            </div>



          </xsl:when>

        </xsl:choose>



        <!-- ************************************ -->

        <!-- ********** Registry Value   ******** -->

        <!-- ************************************ -->

        <xsl:choose>

          <xsl:when test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Registry.Values' and @Status='Failed']">

            <div class="kbsections">

              <xsl:value-of disable-output-escaping="yes"

                            select="msftscw:GetHeaderRow('SecurityResults/Sections/Registry/Title',0)"/>

              <div style="display:none" >

                <xsl:value-of disable-output-escaping="yes"

                              select="msftscw:getExtensionErrorText()"/>

              </div>

            </div>

          </xsl:when>

          <xsl:when test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Registry.Values']/Items/Item">



            <div class="kbsections">



              <!-- Header Row  -->

              <xsl:value-of disable-output-escaping="yes"

                            select="msftscw:GetHeaderRow('SecurityResults/Sections/Registry/Title',0)"/>



              <div style="display:none"

                   class="policyResultsSubTableDiv">

                <table class="expanddescription policyResultsTable" >

                  <thead>

                    <td class="OBJECTLISTSUBHEADER">

                      <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Registry/Table/ItemName', 'SCWAnaLocStrings.xml')"/>

                    </td>

                    <td class="OBJECTLISTSUBHEADER">

                      <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Registry/Table/BaseMode', 'SCWAnaLocStrings.xml')"/>

                    </td>

                    <td class="OBJECTLISTSUBHEADER">

                      <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Registry/Table/SystemMode', 'SCWAnaLocStrings.xml')"/>

                    </td>

                  </thead>



                  <xsl:value-of disable-output-escaping="yes"

                                select="msftscw:BuildRegistrySection(//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Registry.Values']/Items)"/>



                </table>

              </div>

            </div>



          </xsl:when>

        </xsl:choose>



        <!-- *********** Firewall Error Condition******** -->

        <xsl:choose>

          <xsl:when test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Networking.Firewall' and @Status='Failed']">

            <div class="kbsections">

              <xsl:value-of disable-output-escaping="yes"

                            select="msftscw:GetHeaderRow('SecurityResults/Sections/Firewall/FirewallTitle',0)"/>

              <div style="display:none" >

                <xsl:value-of disable-output-escaping="yes"

                              select="msftscw:getExtensionErrorText()"/>

              </div>

            </div>

          </xsl:when>

          <xsl:when test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.Networking.Firewall']/Items/Item">



            <!-- *********** Firewall Section ******** -->

            <div class="kbsections">

              <xsl:call-template name="DisplayFirewall"/>

            </div>



          </xsl:when>

        </xsl:choose>



        <!-- ********** SCE Template Section ******** -->

        <xsl:choose>

          <xsl:when test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.SCETemplates' and @Status='Failed']">

            <div class="kbsections">

              <xsl:value-of disable-output-escaping="yes"

                            select="msftscw:GetHeaderRow('SecurityResults/Sections/SCETemplate/Title',0)"/>

              <div style="display:none" >

                <xsl:value-of disable-output-escaping="yes"

                              select="msftscw:getExtensionErrorText()"/>

              </div>

            </div>

          </xsl:when>

          <xsl:when test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.SCETemplates']/Items/Item">



            <div class="kbsections">



              <!-- Header Row  -->

              <xsl:value-of disable-output-escaping="yes"

                            select="msftscw:GetHeaderRow('SecurityResults/Sections/SCETemplate/Title',0)"/>



              <div style="display:none">



                <!-- ********** File System Section ******** -->

                <xsl:if test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.SCETemplates']/Items/Item[@Key='FileObject']">

                  <div class="kbsubsectionheaders">

                    <img class="policyNorgieImage"

                         tabindex="0"

                         onkeyup="onKeyUp()"

                         onclick="toggleDisplay();"

                         onmouseover='changeImgForDiv(1);'

                         onmouseout='changeImgForDiv(0);'

                         src="../TransformFiles/view/rightarrow.gif"></img>

                    <span class="policySectionHeadingSpan"

                          onclick="toggleDisplay();"

                          onmouseover='changeImgForDiv(1);'

                          onmouseout='changeImgForDiv(0);'>

                      <xsl:value-of select="msftscw:getString('SecurityResults/Sections/SCETemplate/FileSystem/Title', 'SCWAnaLocStrings.xml')"/>

                    </span>

                  </div>

                  <div style="display:none"

                       class="policyResultsSubTableDiv">

                    <div class="policyResultsSubTableDiv">

                      <xsl:value-of disable-output-escaping="yes"

                                    select="msftscw:BuildFileSystemSection(//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.SCETemplates']/Items, 'FileObject')"/>

                    </div>

                  </div>



                </xsl:if>



                <!-- ********** Registry Key Section ******** -->

                <xsl:if test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.SCETemplates']/Items/Item[@Key='RegistryObject']">



                  <div class="kbsubsectionheaders">

                    <img class="policyNorgieImage"

                         tabindex="0"

                         onkeyup="onKeyUp()"

                         onclick="toggleDisplay();"

                         onmouseover='changeImgForDiv(1);'

                         onmouseout='changeImgForDiv(0);'

                         src="../TransformFiles/view/rightarrow.gif"></img>

                    <span class="policySectionHeadingSpan"

                          onclick="toggleDisplay();"

                          onmouseover='changeImgForDiv(1);'

                          onmouseout='changeImgForDiv(0);'>

                      <xsl:value-of select="msftscw:getString('SecurityResults/Sections/SCETemplate/RegistryKey/Title', 'SCWAnaLocStrings.xml')"/>

                    </span>

                  </div>

                  <div style="display:none"

                       class="policyResultsSubTableDiv">

                    <div class="policyResultsSubTableDiv">

                      <xsl:value-of disable-output-escaping="yes"

                                    select="msftscw:BuildFileSystemSection(//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.SCETemplates']/Items, 'RegistryKey')"/>

                    </div>

                  </div>



                </xsl:if>



                <!-- ********** Service Section ******** -->

                <xsl:if test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.SCETemplates']/Items/Item[@Key='ServiceObject']">

                  <div class="kbsubsectionheaders">

                    <img class="policyNorgieImage"

                         tabindex="0"

                         onkeyup="onKeyUp()"

                         onclick="toggleDisplay();"

                         onmouseover='changeImgForDiv(1);'

                         onmouseout='changeImgForDiv(0);'

                         src="../TransformFiles/view/rightarrow.gif"></img>

                    <span class="policySectionHeadingSpan"

                          onclick="toggleDisplay();"

                          onmouseover='changeImgForDiv(1);'

                          onmouseout='changeImgForDiv(0);'>

                      <xsl:value-of select="msftscw:getString('SecurityResults/Sections/SCETemplate/Service/Title', 'SCWAnaLocStrings.xml')"/>

                    </span>

                  </div>

                  <div style="display:none"

                       class="policyResultsSubTableDiv">

                    <div class="policyResultsSubTableDiv">

                      <xsl:value-of disable-output-escaping="yes"

                                    select="msftscw:BuildFileSystemSection(//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.SCETemplates']/Items, 'ServiceObject')"/>

                    </div>

                  </div>



                </xsl:if>



                <!-- ********** System Access Section ******** -->

                <xsl:if test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.SCETemplates']/Items/Item[@Key='Setting Name']">



                  <div class="kbsubsectionheaders">

                    <img class="policyNorgieImage"

                         tabindex="0"

                         onkeyup="onKeyUp()"

                         onclick="toggleDisplay();"

                         onmouseover='changeImgForDiv(1);'

                         onmouseout='changeImgForDiv(0);'

                         src="../TransformFiles/view/rightarrow.gif"></img>

                    <span class="policySectionHeadingSpan"

                          onclick="toggleDisplay();"

                          onmouseover='changeImgForDiv(1);'

                          onmouseout='changeImgForDiv(0);'>

                      <xsl:value-of select="msftscw:getString('SecurityResults/Sections/SCETemplate/SystemAccess/Title', 'SCWAnaLocStrings.xml')"/>

                    </span>

                  </div>



                  <div style="display:none"

                       class="policyResultsSubTableDiv">

                    <div class="policyResultsSubTableDiv">

                      <table class="expanddescription policyResultsTable" >

                        <thead>

                          <td class="OBJECTLISTSUBHEADER">

                            <xsl:value-of select="msftscw:getString('SecurityResults/Sections/ItemName', 'SCWAnaLocStrings.xml')"/>

                          </td>

                          <td class="OBJECTLISTSUBHEADER">

                            <xsl:value-of select="msftscw:getString('SecurityResults/Sections/BaseValue', 'SCWAnaLocStrings.xml')"/>

                          </td>

                          <td class="OBJECTLISTSUBHEADER">

                            <xsl:value-of select="msftscw:getString('SecurityResults/Sections/SystemValue', 'SCWAnaLocStrings.xml')"/>

                          </td>

                        </thead>

                        <xsl:for-each select="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.SCETemplates']/Items/Item[@Key='Setting Name']">

                          <tr>

                            <td class="OBJECT">

                              <xsl:value-of select="@Value"/>

                            </td>

                            <td class="OBJECT">

                              <xsl:value-of select="./Property[@Key='BaselineValue']/Field"/>

                            </td>

                            <td class="OBJECT">

                              <xsl:value-of select="./Property[@Key='SystemValue']/Field"/>

                            </td>

                          </tr>

                        </xsl:for-each>

                      </table>

                    </div>

                  </div>

                </xsl:if>





                <!-- ********** User Rights Section ******** -->

                <xsl:if test="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.SCETemplates']/Items/Item[@Key='Privilege Name']">

                  <div class="kbsubsectionheaders">

                    <img class="policyNorgieImage"

                         tabindex="0"

                         onkeyup="onKeyUp()"

                         onclick="toggleDisplay();"

                         onmouseover='changeImgForDiv(1);'

                         onmouseout='changeImgForDiv(0);'

                         src="../TransformFiles/view/rightarrow.gif"></img>

                    <span class="policySectionHeadingSpan"

                          onclick="toggleDisplay();"

                          onmouseover='changeImgForDiv(1);'

                          onmouseout='changeImgForDiv(0);' >

                      <xsl:value-of select="msftscw:getString('SecurityResults/Sections/SCETemplate/UserRights/Title', 'SCWAnaLocStrings.xml')"/>

                    </span>

                  </div>



                  <div style="display:none"

                       class="policyResultsSubTableDiv">

                    <div class="policyResultsSubTableDiv">

                      <table class="expanddescription policyResultsTable" >

                        <thead>

                          <td class="OBJECTLISTSUBHEADER">

                            <xsl:value-of select="msftscw:getString('SecurityResults/Sections/ItemName', 'SCWAnaLocStrings.xml')"/>

                          </td>

                          <td class="OBJECTLISTSUBHEADER">

                            <xsl:value-of select="msftscw:getString('SecurityResults/Sections/BaseValue', 'SCWAnaLocStrings.xml')"/>

                          </td>

                          <td class="OBJECTLISTSUBHEADER">

                            <xsl:value-of select="msftscw:getString('SecurityResults/Sections/SystemValue', 'SCWAnaLocStrings.xml')"/>

                          </td>

                        </thead>

                        <xsl:for-each select="//SC/Results/Rules/CheckResults[@Name='Microsoft.OS.SCETemplates']/Items/Item[@Key='Privilege Name']">

                          <tr valign="top">

                            <td class="OBJECT">

                              <xsl:value-of select="@Value"/>

                            </td>

                            <td class="OBJECT">

                              <xsl:for-each select="./Property[@Key='BaselineValue']/Field">

                                <xsl:if test="position()>1">;</xsl:if>

                                <xsl:value-of select="./text()"/>

                              </xsl:for-each>

                            </td>

                            <td class="OBJECT">

                              <xsl:for-each select="./Property[@Key='SystemValue']/Field">

                                <xsl:if test="position()>1">;</xsl:if>

                                <xsl:value-of select="./text()"/>

                              </xsl:for-each>

                            </td>

                          </tr>

                        </xsl:for-each>

                      </table>

                    </div>

                  </div>

                </xsl:if>



              </div>

            </div>

          </xsl:when>

        </xsl:choose>



        <!-- ********** Other Sections ******** -->

        <xsl:for-each select="//SC/Results/Rules/CheckResults">

          <xsl:choose>

            <xsl:when test ="'Microsoft.OS.Services'=@Name"/>

            <xsl:when test ="'Microsoft.OS.HotFix'=@Name"/>

            <xsl:when test ="'Microsoft.OS.SCETemplates'=@Name"/>

            <xsl:when test ="'Microsoft.OS.Networking.Firewall'=@Name"/>

            <xsl:when test ="'Microsoft.OS.Audit'=@Name"/>

            <xsl:when test ="'Microsoft.OS.Registry.Values'=@Name"/>



            <xsl:otherwise>



              <xsl:choose>

                <xsl:when test="@Status ='Failed'">

                  <div class="kbsections">

                    <div class='kbsectionheaders'>

                      <img class="policyNorgieImage"

                           tabindex="0"

                           onkeyup="onKeyUp()"

                           onclick="toggleDisplay();"

                           onmouseover='changeImgForDiv(1);'

                           onmouseout='changeImgForDiv(0);'

                           src="../TransformFiles/view/rightarrow.gif"></img>

                      <span class="policySectionHeadingSpan"

                            onclick="toggleDisplay();"

                            onmouseover='changeImgForDiv(1);'

                            onmouseout='changeImgForDiv(0);'>

                        <xsl:value-of select="@Name"/>

                      </span>



                    </div>

                    <div style="display:none" >

                      <xsl:value-of disable-output-escaping="yes"

                                    select="msftscw:getExtensionErrorText()"/>

                    </div>



                  </div>

                </xsl:when>

                <xsl:when test="Items/Item">

                  <div class="kbsections">

                    <!-- ***** section title **** -->

                    <div class="kbsectionheaders">

                      <img class="policyNorgieImage"

                           tabindex="0"

                           onkeyup="onKeyUp()"

                           onclick="toggleDisplay();"

                           onmouseover='changeImgForDiv(1);'

                           onmouseout='changeImgForDiv(0);'

                           src="../TransformFiles/view/rightarrow.gif"></img>

                      <span class="policySectionHeadingSpan"

                            onclick="toggleDisplay();"

                            onmouseover='changeImgForDiv(1);'

                            onmouseout='changeImgForDiv(0);'>

                        <xsl:value-of select="@Name"/>

                      </span>

                    </div>

                    <!-- ***** section data **** -->

                    <div style="display:none"

                         class="policyResultsTableDiv">

                      <table class="expanddescription policyResultsTable" >

                        <thead>

                          <td class="OBJECTLISTSUBHEADER">

                            <xsl:value-of select="msftscw:getString('SecurityResults/Sections/ItemName', 'SCWAnaLocStrings.xml')"/>

                          </td>

                          <td class="OBJECTLISTSUBHEADER">

                            <xsl:value-of select="msftscw:getString('SecurityResults/Sections/BaseValue', 'SCWAnaLocStrings.xml')"/>

                          </td>

                          <td class="OBJECTLISTSUBHEADER">

                            <xsl:value-of select="msftscw:getString('SecurityResults/Sections/SystemValue', 'SCWAnaLocStrings.xml')"/>

                          </td>

                        </thead>

                        <xsl:for-each select="./Items/Item">

                          <xsl:sort select="@Value"/>

                          <tr>

                            <td class="OBJECT">

                              <xsl:value-of select="@Value"/>

                            </td>

                            <td class="OBJECT">

                              <xsl:value-of select="./Property[@Key='BaselineValue']/Field"/>

                            </td>

                            <td class="OBJECT">

                              <xsl:value-of select="./Property[@Key='SystemValue']/Field"/>

                            </td>

                          </tr>

                        </xsl:for-each>

                      </table>

                    </div>

                    <!-- ***** end of section data **** -->

                  </div>

                </xsl:when>

              </xsl:choose>



            </xsl:otherwise>

          </xsl:choose>

        </xsl:for-each>



      </body>

    </HTML>

  </xsl:template>



  <xsl:template name="DisplayFirewall">

    <div>

      <span id="shortFirewall">

        <table class="kbsections"

               width="100%"

               marginheight="0"

               marginwidth="0"

               cellpadding="0"

               cellspacing="0">

          <tr class="kbsectionheaders">

            <td width="10"></td>

            <td width="17"

                style="cursor:hand;"

                onclick="shortFirewall.style.display='none'; longFirewall.style.display='inline';">

              <img src="../TransformFiles/View/RightArrow.gif"

                   tabindex="0"

                   onkeyup="onKeyUp(1)"

                   onmouseOver="this.src='../TransformFiles/View/RightArrowHighLight.gif';"

                   onmouseout="this.src='../TransformFiles/View/RightArrow.gif';"/>

            </td>

            <td>

              <table class="kbsectionheaders"

                     cellpadding="0"

                     cellspacing="0">

                <tr>

                  <td style="cursor:hand;"

                      onclick="shortFirewall.style.display='none'; longFirewall.style.display='inline';">

                    &#160;<xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallTitle', 'SCWAnaLocStrings.xml')"/>

                  </td>

                </tr>

              </table>

            </td>

          </tr>

        </table>

      </span>



      <span id="longFirewall"

            style="display='none'">

        <table class="kbsections"

               width="100%"

               marginheight="0"

               marginwidth="0"

               cellpadding="0"

               cellspacing="0">

          <tr class="kbsectionheaders">

            <td width="10"/>

            <td width="10"

                style="cursor:hand;"

                onclick="shortFirewall.style.display='inline'; longFirewall.style.display='none';">

              <img src="../TransformFiles/View/DownArrow.gif"

                   tabindex="0"

                   onkeyup="onKeyUp(0)"

                   onmouseover="this.src='../TransformFiles/View/DownArrowHighLight.gif';"

                   onmouseout="this.src='../TransformFiles/View/DownArrow.gif';"/>

            </td>

            <td>

              <table class="kbsectionheaders"

                     cellpadding="0"

                     cellspacing="0">

                <tr>

                  <td width="5"/>

                  <td style="cursor:hand;"

                      onclick="shortFirewall.style.display='inline'; longFirewall.style.display='none';">

                    &#160;<xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallTitle', 'SCWAnaLocStrings.xml')"/>

                  </td>

                </tr>

              </table>

            </td>

          </tr>

          <tr>

            <td></td>

            <td></td>

            <td>

              <xsl:call-template name="DisplayFirewallSettings"/>

              <xsl:call-template name="DisplayFirewallRules"/>

            </td>

          </tr>

        </table>

      </span>

    </div>

  </xsl:template>



  <xsl:template name="DisplayFirewallSettings">

    <div>

      <span id="shortFirewallSettings">

        <table class="kbsections"

               width="100%"

               marginheight="0"

               marginwidth="0"

               cellpadding="0"

               cellspacing="0">

          <tr class="kbsectionheaders">

            <td width="10"></td>

            <td width="17"

                style="cursor:hand;"

                onclick="shortFirewallSettings.style.display='none'; longFirewallSettings.style.display='inline';">

              <img src="../TransformFiles/View/RightArrow.gif"

                   tabindex="0"

                   onkeyup="onKeyUp(1)"

                   onmouseOver="this.src='../TransformFiles/View/RightArrowHighLight.gif';"

                   onmouseout="this.src='../TransformFiles/View/RightArrow.gif';"/>

            </td>

            <td>

              <table class="kbsectionheaders"

                     cellpadding="0"

                     cellspacing="0">

                <tr>

                  <td style="cursor:hand;"

                      onclick="shortFirewallSettings.style.display='none'; longFirewallSettings.style.display='inline';">

                    &#160;<xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallSettingsTitle', 'SCWAnaLocStrings.xml')"/>

                  </td>

                </tr>

              </table>

            </td>

          </tr>

        </table>

      </span>



      <span id="longFirewallSettings"

            style="display='none'">

        <table class="kbsections"

               width="100%"

               marginheight="0"

               marginwidth="0"

               cellpadding="0"

               cellspacing="0">

          <tr class="kbsectionheaders">

            <td width="10"/>

            <td width="10"

                style="cursor:hand;"

                onclick="shortFirewallSettings.style.display='inline'; longFirewallSettings.style.display='none';">

              <img src="../TransformFiles/View/DownArrow.gif"

                   tabindex="0"

                   onkeyup="onKeyUp(0)"

                   onmouseover="this.src='../TransformFiles/View/DownArrowHighLight.gif';"

                   onmouseout="this.src='../TransformFiles/View/DownArrow.gif';"/>

            </td>

            <td>

              <table class="kbsectionheaders"

                     cellpadding="0"

                     cellspacing="0">

                <tr>

                  <td width="5"/>

                  <td style="cursor:hand;"

                      onclick="shortFirewallSettings.style.display='inline'; longFirewallSettings.style.display='none';">

                    &#160;<xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallSettingsTitle', 'SCWAnaLocStrings.xml')"/>

                  </td>

                </tr>

              </table>

            </td>

          </tr>

          <tr>

            <td></td>

            <td></td>

            <td>

              <!-- Display firewall profiles -->

              <div>

                <span id="shortFirewallProfiles">

                  <table class="kbsections"

                         width="100%"

                         marginheight="0"

                         marginwidth="0"

                         cellpadding="0"

                         cellspacing="0">

                    <tr class="kbsectionheaders">

                      <td width="10"></td>

                      <td width="17"

                          style="cursor:hand;"

                          onclick="shortFirewallProfiles.style.display='none'; longFirewallProfiles.style.display='inline';">

                        <img src="../TransformFiles/View/RightArrow.gif"

                             tabindex="0"

                             onkeyup="onKeyUp(1)"

                             onmouseOver="this.src='../TransformFiles/View/RightArrowHighLight.gif';"

                             onmouseout="this.src='../TransformFiles/View/RightArrow.gif';"/>

                      </td>

                      <td>

                        <table class="kbsectionheaders"

                               cellpadding="0"

                               cellspacing="0">

                          <tr>

                            <td style="cursor:hand;"

                                onclick="shortFirewallProfiles.style.display='none'; longFirewallProfiles.style.display='inline';">

                              <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallProfilesTitle', 'SCWAnaLocStrings.xml')"/>

                            </td>

                          </tr>

                        </table>

                      </td>

                    </tr>

                  </table>

                </span>



                <span id="longFirewallProfiles"

                      style="display:'none'">

                  <table class="kbsections"

                         width="100%"

                         marginheight="0"

                         marginwidth="0"

                         cellpadding="0"

                         cellspacing="0">

                    <tr class="kbsectionheaders">

                      <td width="10"/>

                      <td width="10"

                          style="cursor:hand;"

                          onclick="shortFirewallProfiles.style.display='inline'; longFirewallProfiles.style.display='none';">

                        <img src="../TransformFiles/View/DownArrow.gif"

                             tabindex="0"

                             onkeyup="onKeyUp(0)"

                             onmouseover="this.src='../TransformFiles/View/DownArrowHighLight.gif';"

                             onmouseout="this.src='../TransformFiles/View/DownArrow.gif';"/>

                      </td>

                      <td>

                        <table class="kbsectionheaders"

                               cellpadding="0"

                               cellspacing="0">

                          <tr>

                            <td width="5"/>

                            <td style="cursor:hand;"

                                onclick="shortFirewallProfiles.style.display='inline'; longFirewallProfiles.style.display='none';">

                              <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallProfilesTitle', 'SCWAnaLocStrings.xml')"/>

                            </td>

                          </tr>

                        </table>

                      </td>

                    </tr>

                    <tr>

                      <td></td>

                      <td></td>

                      <td>

                        <!-- Display firewall profiles comparison table -->

                        <xsl:call-template name="DisplayFirewallProfilesComparisonTable"/>

                      </td>

                    </tr>

                  </table>

                </span>

              </div>

            </td>

          </tr>

        </table>

      </span>

    </div>

  </xsl:template>



  <xsl:template name="DisplayFirewallProfilesComparisonTable">

    <html>

      <body>

        <div class="policyResultsTableDiv">

          <table class="expanddescription policyResultsTable" >

            <thead>

              <td class="settingsheadersexpanded policySectionsExpanded">

                <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallProfilesTable/PolicyColumn', 'SCWAnaLocStrings.xml')"/>

              </td>

              <td class="settingsheadersexpanded policySectionsExpanded">

                <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallProfilesTable/SystemColumn', 'SCWAnaLocStrings.xml')"/>

              </td>

            </thead>

            <xsl:for-each select="$XMLFirewallProfiles">



              <!--Policy Profile Settings-->

              <xsl:variable name="policyProfileSettings"

                            select="Property[@Key='BaselineValue']/ProfileSettings"/>

              <xsl:variable name="systemProfileSettings"

                            select="Property[@Key='SystemValue']/ProfileSettings"/>



              <tr class="policyResultDataRow">

                <td class="policyCellPadding policyResultDataRow">

                  <xsl:call-template name="DisplayFirewallProfile">

                    <xsl:with-param name="XMLFirewallProfileSettings"

                                    select="$policyProfileSettings"/>

                    <xsl:with-param name="DisplayType">True</xsl:with-param>

                  </xsl:call-template>

                </td>

                <td class="policyCellPadding policyResultDataRow">

                  <xsl:call-template name="DisplayFirewallProfile">

                    <xsl:with-param name="XMLFirewallProfileSettings"

                                    select="$systemProfileSettings"/>

                    <xsl:with-param name="DisplayType">True</xsl:with-param>

                  </xsl:call-template>

                </td>

              </tr>

            </xsl:for-each>

          </table>

        </div>

      </body>

    </html>

  </xsl:template>



  <xsl:template name="DisplayFirewallProfile">

    <xsl:param name="XMLFirewallProfileSettings"/>

    <xsl:param name="DisplayType"/>



    <xsl:variable name="ElementId"

                  select="translate($XMLFirewallProfileSettings/@Type, '&#x7B;&#x7D;&#x20;&#x9;&#xA;&#xD;-', '')"/>



    <!--Profile Attributes-->

    <xsl:variable name="Type"

                  select="$XMLFirewallProfileSettings/@Type"/>

    <xsl:variable name="FirewallState"

                  select="$XMLFirewallProfileSettings/@FirewallState"/>

    <xsl:variable name="DefaultInboundConnectionsAreAllowed"

                  select="$XMLFirewallProfileSettings/@DefaultInboundConnectionsAreAllowed"/>

    <xsl:variable name="DefaultOutboundConnectionsAreAllowed"

                  select="$XMLFirewallProfileSettings/@DefaultOutboundConnectionsAreAllowed"/>



    <html>

      <body>

        <div>

          <table class="expanddescription"

                 width="100%"

                 cellpadding="0"

                 cellspacing="0">

            <tr>

              <td width="5"/>

              <td>

                <div class="descriptionsections">

                  <xsl:if test="$DisplayType = 'True'">

                    <xsl:if test="string-length($Type) != 0">

                      <b>

                        <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallProfileType', 'KBLocFile')"/>

                      </b>&#160;

                      <xsl:value-of select="$Type"/>

                    </xsl:if>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($FirewallState) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallState', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$FirewallState"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($DefaultInboundConnectionsAreAllowed) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallDefaultInboundConnectionsAreAllowed', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$DefaultInboundConnectionsAreAllowed"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($DefaultOutboundConnectionsAreAllowed) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallDefaultOutboundConnectionsAreAllowed', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$DefaultOutboundConnectionsAreAllowed"/>

                  </xsl:if>

                </div>

              </td>

            </tr>

          </table>

        </div>

      </body>

    </html>

  </xsl:template>

  

  <xsl:template name="DisplayFirewallRules">

    <div>

      <span id="shortFirewallRules">

        <table class="kbsections"

               width="100%"

               marginheight="0"

               marginwidth="0"

               cellpadding="0"

               cellspacing="0">

          <tr class="kbsectionheaders">

            <td width="10"></td>

            <td width="17"

                style="cursor:hand;"

                onclick="shortFirewallRules.style.display='none'; longFirewallRules.style.display='inline';">

              <img src="../TransformFiles/View/RightArrow.gif"

                   tabindex="0"

                   onkeyup="onKeyUp(1)"

                   onmouseOver="this.src='../TransformFiles/View/RightArrowHighLight.gif';"

                   onmouseout="this.src='../TransformFiles/View/RightArrow.gif';"/>

            </td>

            <td>

              <table class="kbsectionheaders"

                     cellpadding="0"

                     cellspacing="0">

                <tr>

                  <td style="cursor:hand;"

                      onclick="shortFirewallRules.style.display='none'; longFirewallRules.style.display='inline';">

                    &#160;<xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallRulesTitle', 'SCWAnaLocStrings.xml')"/>

                  </td>

                </tr>

              </table>

            </td>

          </tr>

        </table>

      </span>



      <span id="longFirewallRules"

            style="display='none'">

        <table class="kbsections"

               width="100%"

               marginheight="0"

               marginwidth="0"

               cellpadding="0"

               cellspacing="0">

          <tr class="kbsectionheaders">

            <td width="10"/>

            <td width="10"

                style="cursor:hand;"

                onclick="shortFirewallRules.style.display='inline'; longFirewallRules.style.display='none';">

              <img src="../TransformFiles/View/DownArrow.gif"

                   tabindex="0"

                   onkeyup="onKeyUp(0)"

                   onmouseover="this.src='../TransformFiles/View/DownArrowHighLight.gif';"

                   onmouseout="this.src='../TransformFiles/View/DownArrow.gif';"/>

            </td>

            <td>

              <table class="kbsectionheaders"

                     cellpadding="0"

                     cellspacing="0">

                <tr>

                  <td width="5"/>

                  <td style="cursor:hand;"

                      onclick="shortFirewallRules.style.display='inline'; longFirewallRules.style.display='none';">

                    &#160;<xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallRulesTitle', 'SCWAnaLocStrings.xml')"/>

                  </td>

                </tr>

              </table>

            </td>

          </tr>

          <tr>

            <td></td>

            <td></td>

            <td>

              <div>

                <!-- Display firewall rules in the policy and not on the system -->

                <span id="shortFirewallRulesInPolicyAndNotOnSystem">

                  <table class="kbsections"

                         width="100%"

                         marginheight="0"

                         marginwidth="0"

                         cellpadding="0"

                         cellspacing="0">

                    <tr class="kbsectionheaders">

                      <td width="10"></td>

                      <td width="17"

                          style="cursor:hand;"

                          onclick="shortFirewallRulesInPolicyAndNotOnSystem.style.display='none'; longFirewallRulesInPolicyAndNotOnSystem.style.display='inline';">

                        <img src="../TransformFiles/View/RightArrow.gif"

                             tabindex="0"

                             onkeyup="onKeyUp(1)"

                             onmouseOver="this.src='../TransformFiles/View/RightArrowHighLight.gif';"

                             onmouseout="this.src='../TransformFiles/View/RightArrow.gif';"/>

                      </td>

                      <td>

                        <table class="kbsectionheaders"

                               cellpadding="0"

                               cellspacing="0">

                          <tr>

                            <td style="cursor:hand;"

                                onclick="shortFirewallRulesInPolicyAndNotOnSystem.style.display='none'; longFirewallRulesInPolicyAndNotOnSystem.style.display='inline';">

                              <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallRulesInPolicyAndNotOnSystemTitle', 'SCWAnaLocStrings.xml')"/>

                            </td>

                          </tr>

                        </table>

                      </td>

                    </tr>

                  </table>

                </span>



                <span id="longFirewallRulesInPolicyAndNotOnSystem"

                      style="display:'none'">

                  <table class="kbsections"

                         width="100%"

                         marginheight="0"

                         marginwidth="0"

                         cellpadding="0"

                         cellspacing="0">

                    <tr class="kbsectionheaders">

                      <td width="10"/>

                      <td width="10"

                          style="cursor:hand;"

                          onclick="shortFirewallRulesInPolicyAndNotOnSystem.style.display='inline'; longFirewallRulesInPolicyAndNotOnSystem.style.display='none';">

                        <img src="../TransformFiles/View/DownArrow.gif"

                             tabindex="0"

                             onkeyup="onKeyUp(0)"

                             onmouseover="this.src='../TransformFiles/View/DownArrowHighLight.gif';"

                             onmouseout="this.src='../TransformFiles/View/DownArrow.gif';"/>

                      </td>

                      <td>

                        <table class="kbsectionheaders"

                               cellpadding="0"

                               cellspacing="0">

                          <tr>

                            <td width="5"/>

                            <td style="cursor:hand;"

                                onclick="shortFirewallRulesInPolicyAndNotOnSystem.style.display='inline'; longFirewallRulesInPolicyAndNotOnSystem.style.display='none';">

                              <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallRulesInPolicyAndNotOnSystemTitle', 'SCWAnaLocStrings.xml')"/>

                            </td>

                          </tr>

                        </table>

                      </td>

                    </tr>

                    <tr>

                      <td></td>

                      <td></td>

                      <td>

                        <xsl:apply-templates select="$XMLFirewallRulesInPolicyAndNotOnSystem">

                          <xsl:sort select="@Name"/>

                        </xsl:apply-templates>

                      </td>

                    </tr>

                  </table>

                </span>

              </div>



              <!-- Display firewall rules on the system and not in the policy -->

              <div>

                <span id="shortFirewallRulesOnSystemAndNotInPolicy">

                  <table class="kbsections"

                         width="100%"

                         marginheight="0"

                         marginwidth="0"

                         cellpadding="0"

                         cellspacing="0">

                    <tr class="kbsectionheaders">

                      <td width="10"></td>

                      <td width="17"

                          style="cursor:hand;"

                          onclick="shortFirewallRulesOnSystemAndNotInPolicy.style.display='none'; longFirewallRulesOnSystemAndNotInPolicy.style.display='inline';">

                        <img src="../TransformFiles/View/RightArrow.gif"

                             tabindex="0"

                             onkeyup="onKeyUp(1)"

                             onmouseOver="this.src='../TransformFiles/View/RightArrowHighLight.gif';"

                             onmouseout="this.src='../TransformFiles/View/RightArrow.gif';"/>

                      </td>

                      <td>

                        <table class="kbsectionheaders"

                               cellpadding="0"

                               cellspacing="0">

                          <tr>

                            <td style="cursor:hand;"

                                onclick="shortFirewallRulesOnSystemAndNotInPolicy.style.display='none'; longFirewallRulesOnSystemAndNotInPolicy.style.display='inline';">

                              <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallRulesOnSystemAndNotInPolicyTitle', 'SCWAnaLocStrings.xml')"/>

                            </td>

                          </tr>

                        </table>

                      </td>

                    </tr>

                  </table>

                </span>



                <span id="longFirewallRulesOnSystemAndNotInPolicy"

                      style="display:'none'">

                  <table class="kbsections"

                         width="100%"

                         marginheight="0"

                         marginwidth="0"

                         cellpadding="0"

                         cellspacing="0">

                    <tr class="kbsectionheaders">

                      <td width="10"/>

                      <td width="10"

                          style="cursor:hand;"

                          onclick="shortFirewallRulesOnSystemAndNotInPolicy.style.display='inline'; longFirewallRulesOnSystemAndNotInPolicy.style.display='none';">

                        <img src="../TransformFiles/View/DownArrow.gif"

                             tabindex="0"

                             onkeyup="onKeyUp(0)"

                             onmouseover="this.src='../TransformFiles/View/DownArrowHighLight.gif';"

                             onmouseout="this.src='../TransformFiles/View/DownArrow.gif';"/>

                      </td>

                      <td>

                        <table class="kbsectionheaders"

                               cellpadding="0"

                               cellspacing="0">

                          <tr>

                            <td width="5"/>

                            <td style="cursor:hand;"

                                onclick="shortFirewallRulesOnSystemAndNotInPolicy.style.display='inline'; longFirewallRulesOnSystemAndNotInPolicy.style.display='none';">

                              <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallRulesOnSystemAndNotInPolicyTitle', 'SCWAnaLocStrings.xml')"/>

                            </td>

                          </tr>

                        </table>

                      </td>

                    </tr>

                    <tr>

                      <td></td>

                      <td></td>

                      <td>

                        <xsl:apply-templates select="$XMLFirewallRulesOnSystemAndNotInPolicy">

                          <xsl:sort select="@Name"/>

                        </xsl:apply-templates>

                      </td>

                    </tr>

                  </table>

                </span>

              </div>



              <!-- Display firewall rules in the policy and on the system -->

              <div>

                <span id="shortFirewallRulesInPolicyAndOnSystem">

                  <table class="kbsections"

                         width="100%"

                         marginheight="0"

                         marginwidth="0"

                         cellpadding="0"

                         cellspacing="0">

                    <tr class="kbsectionheaders">

                      <td width="10"></td>

                      <td width="17"

                          style="cursor:hand;"

                          onclick="shortFirewallRulesInPolicyAndOnSystem.style.display='none'; longFirewallRulesInPolicyAndOnSystem.style.display='inline';">

                        <img src="../TransformFiles/View/RightArrow.gif"

                             tabindex="0"

                             onkeyup="onKeyUp(1)"

                             onmouseOver="this.src='../TransformFiles/View/RightArrowHighLight.gif';"

                             onmouseout="this.src='../TransformFiles/View/RightArrow.gif';"/>

                      </td>

                      <td>

                        <table class="kbsectionheaders"

                               cellpadding="0"

                               cellspacing="0">

                          <tr>

                            <td style="cursor:hand;"

                                onclick="shortFirewallRulesInPolicyAndOnSystem.style.display='none'; longFirewallRulesInPolicyAndOnSystem.style.display='inline';">

                              <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallRulesInPolicyAndOnSystemTitle', 'SCWAnaLocStrings.xml')"/>

                            </td>

                          </tr>

                        </table>

                      </td>

                    </tr>

                  </table>

                </span>



                <span id="longFirewallRulesInPolicyAndOnSystem"

                      style="display:'none'">

                  <table class="kbsections"

                         width="100%"

                         marginheight="0"

                         marginwidth="0"

                         cellpadding="0"

                         cellspacing="0">

                    <tr class="kbsectionheaders">

                      <td width="10"/>

                      <td width="10"

                          style="cursor:hand;"

                          onclick="shortFirewallRulesInPolicyAndOnSystem.style.display='inline'; longFirewallRulesInPolicyAndOnSystem.style.display='none';">

                        <img src="../TransformFiles/View/DownArrow.gif"

                             tabindex="0"

                             onkeyup="onKeyUp(0)"

                             onmouseover="this.src='../TransformFiles/View/DownArrowHighLight.gif';"

                             onmouseout="this.src='../TransformFiles/View/DownArrow.gif';"/>

                      </td>

                      <td>

                        <table class="kbsectionheaders"

                               cellpadding="0"

                               cellspacing="0">

                          <tr>

                            <td width="5"/>

                            <td style="cursor:hand;"

                                onclick="shortFirewallRulesInPolicyAndOnSystem.style.display='inline'; longFirewallRulesInPolicyAndOnSystem.style.display='none';">

                              <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallRulesInPolicyAndOnSystemTitle', 'SCWAnaLocStrings.xml')"/>

                            </td>

                          </tr>

                        </table>

                      </td>

                    </tr>

                    <tr>

                      <td></td>

                      <td></td>

                      <td>

                        <!-- Display firewall rules comparison table -->

                        <xsl:call-template name="DisplayFirewallRulesComparisonTable"/>

                      </td>

                    </tr>

                  </table>

                </span>

              </div>

            </td>

          </tr>

        </table>

      </span>

    </div>

  </xsl:template>



  <xsl:template name="DisplayFirewallRulesComparisonTable">

    <html>

      <body>

        <div class="policyResultsTableDiv">

          <table class="expanddescription policyResultsTable" >

            <thead>

              <td class="settingsheadersexpanded policySectionsExpanded">

                <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallRulesTable/PolicyColumn', 'SCWAnaLocStrings.xml')"/>

              </td>

              <td class="settingsheadersexpanded policySectionsExpanded">

                <xsl:value-of select="msftscw:getString('SecurityResults/Sections/Firewall/FirewallRulesTable/SystemColumn', 'SCWAnaLocStrings.xml')"/>

              </td>

            </thead>

            <xsl:for-each select="$XMLFirewallRulesInPolicyAndOnSystem">



              <!--Policy Rule Attributes-->

              <xsl:variable name="policyFirewallRule"

                            select="Property[@Key='BaselineValue']/FirewallRule"/>

              <xsl:variable name="systemFirewallRule"

                            select="Property[@Key='SystemValue']/FirewallRule"/>



              <tr class="policyResultDataRow">

                <td class="policyCellPadding policyResultDataRow">

                  <xsl:call-template name="DisplayFirewallRule">

                    <xsl:with-param name="XMLFirewallRule"

                                    select="$policyFirewallRule"/>

                    <xsl:with-param name="DisplayName">True</xsl:with-param>

                  </xsl:call-template>

                </td>

                <td class="policyCellPadding policyResultDataRow">

                  <xsl:call-template name="DisplayFirewallRule">

                    <xsl:with-param name="XMLFirewallRule"

                                    select="$systemFirewallRule"/>

                    <xsl:with-param name="DisplayName">True</xsl:with-param>

                  </xsl:call-template>

                </td>

              </tr>

            </xsl:for-each>

          </table>

        </div>

      </body>

    </html>

  </xsl:template>



  <xsl:template match="FirewallRule">

    <xsl:variable name="ElementId"

                  select="translate(@Id, '&#x7B;&#x7D;&#x20;&#x9;&#xA;&#xD;-', '')"/>

    <xsl:variable name="Name"

                  select="@Name"/>

    <xsl:variable name="Description"

                  select="@Description"/>



    <div>

      <span id="shortFirewallRule{$ElementId}">

        <table class="settingsheaderscollapsed"

               width="100%" >

          <tr>

            <td width="5"

                style="cursor:hand;"

                onclick="shortFirewallRule{$ElementId}.style.display='none'; longFirewallRule{$ElementId}.style.display='inline';" >

              <xsl:attribute name="title">

                <xsl:if test="string-length($Name) != 0">

                  <xsl:value-of select="$Name"/>

                </xsl:if>

                <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_Tooltip', 'KBLocFile')"/>

              </xsl:attribute>

              <img src="../TransformFiles/View/RightArrow.gif"

                   tabindex="0"

                   onkeyup="onKeyUp(1)"

                   onmouseOver="this.src='../TransformFiles/View/RightArrowHighLight.gif';"

                   onmouseout="this.src='../TransformFiles/View/RightArrow.gif';"/>

            </td>

            <td style="cursor:hand;"

                onclick="shortFirewallRule{$ElementId}.style.display='none'; longFirewallRule{$ElementId}.style.display='inline';">

              <xsl:attribute name="title">

                <xsl:if test="string-length($Description) != 0">

                  <xsl:value-of select="concat($Description, ', ')"/>

                </xsl:if>

                <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_Tooltip', 'KBLocFile')"/>

              </xsl:attribute>

              <xsl:value-of select="$Name"/>

            </td>

          </tr>

        </table>

      </span>



      <span id="longFirewallRule{$ElementId}"

            style="display: none;">

        <table width="100%">

          <tr>

            <td valign="top"

                width="15"

                style="cursor:hand;"

                onclick="shortFirewallRule{$ElementId}.style.display='inline'; longFirewallRule{$ElementId}.style.display='none';">

              <img src="../TransformFiles/View/DownArrow.gif"

                   style="cursor:hand;"

                   tabindex="0"

                   onkeyup="onKeyUp(0)"

                   onclick="shortFirewallRule{$ElementId}.style.display='inline'; longFirewallRule{$ElementId}.style.display='none';"

                   onmouseover="this.src='../TransformFiles/View/DownArrowHighLight.gif';"

                   onmouseout="this.src='../TransformFiles/View/DownArrow.gif';"/>

            </td>

            <td>

              <table class="sectionsexpanded"

                     width="95%"

                     cellpadding="0"

                     cellspacing="0">

                <tr>

                  <td class="settingsheadersexpanded"

                      style="cursor:hand;"

                      onclick="shortFirewallRule{$ElementId}.style.display='inline'; longFirewallRule{$ElementId}.style.display='none';">

                    <xsl:value-of select="$Name"/>

                  </td>

                </tr>

                <tr>

                  <td>

                    <xsl:call-template name="DisplayFirewallRule">

                      <xsl:with-param name="XMLFirewallRule"

                                      select="."/>

                      <xsl:with-param name="DisplayName">False</xsl:with-param>

                    </xsl:call-template>

                  </td>

                </tr>

              </table>

            </td>

          </tr>

        </table>

      </span>

    </div>

  </xsl:template>



  <xsl:template name="DisplayFirewallRule">

    <xsl:param name="XMLFirewallRule"/>

    <xsl:param name="DisplayName"/>



    <xsl:variable name="ElementId"

                  select="translate($XMLFirewallRule/@Id, '&#x7B;&#x7D;&#x20;&#x9;&#xA;&#xD;-', '')"/>



    <!--Rule Attributes-->

    <xsl:variable name="Id"

                  select="$XMLFirewallRule/@Id"/>

    <xsl:variable name="Name"

                  select="$XMLFirewallRule/@Name"/>

    <xsl:variable name="Description"

                  select="$XMLFirewallRule/@Description"/>

    <xsl:variable name="Group"

                  select="$XMLFirewallRule/@Group"/>

    <xsl:variable name="ProtocolKeyword"

                  select="$XMLFirewallRule/@ProtocolKeyword"/>

    <xsl:variable name="ProtocolNumber"

                  select="$XMLFirewallRule/@ProtocolNumber"/>

    <xsl:variable name="Direction"

                  select="$XMLFirewallRule/@Direction"/>

    <xsl:variable name="Program"

                  select="$XMLFirewallRule/@Program"/>

    <xsl:variable name="Service"

                  select="$XMLFirewallRule/@Service"/>

    <xsl:variable name="EnabledFlag"

                  select="$XMLFirewallRule/@Enabled"/>

    <xsl:variable name="Action"

                  select="$XMLFirewallRule/@Action"/>



    <!--Profiles-->

    <xsl:variable name="XMLProfiles"

                  select="$XMLFirewallRule/Profiles/Profile"/>

    <xsl:variable name="Profiles"

                  select="msftscw:getProfiles($XMLProfiles)"/>

    

    <!--Local Ports-->

    <xsl:variable name="XMLLocalPorts"

                  select="$XMLFirewallRule/LocalPorts"/>

    <xsl:variable name="XMLLocalSpecificPorts"

                  select="$XMLLocalPorts/Port"/>

    <xsl:variable name="XMLLocalCustomPorts"

                  select="$XMLLocalPorts/CustomPort"/>

    <xsl:variable name="XMLLocalRegistryPorts"

                  select="$XMLLocalPorts/RegistryPort"/>

    <xsl:variable name="LocalSpecialPorts"

                  select="msftscw:getSpecialPorts($XMLLocalPorts)"/>

    <xsl:variable name="LocalSpecificPorts"

                  select="msftscw:getSpecificPorts($XMLLocalSpecificPorts)"/>

    <xsl:variable name="LocalCustomPorts"

                  select="msftscw:getCustomPorts($XMLLocalCustomPorts)"/>

    <xsl:variable name="LocalRegistryPorts"

                  select="msftscw:getCustomPorts($XMLLocalRegistryPorts)"/>

    <xsl:variable name="LocalPorts"

                  select="msftscw:MergeLists($LocalSpecialPorts, $LocalSpecificPorts, $LocalCustomPorts, $LocalRegistryPorts)"/>



    <!--Remote Ports-->

    <xsl:variable name="XMLRemotePorts"

                  select="$XMLFirewallRule/RemotePorts"/>

    <xsl:variable name="XMLRemoteSpecificPorts"

                  select="$XMLRemotePorts/Port"/>

    <xsl:variable name="XMLRemoteCustomPorts"

                  select="$XMLRemotePorts/CustomPort"/>

    <xsl:variable name="XMLRemoteRegistryPorts"

                  select="$XMLRemotePorts/RegistryPort"/>

    <xsl:variable name="RemoteSpecificPorts"

                  select="msftscw:getSpecificPorts($XMLRemoteSpecificPorts)"/>

    <xsl:variable name="RemoteCustomPorts"

                  select="msftscw:getCustomPorts($XMLRemoteCustomPorts)"/>

    <xsl:variable name="RemoteRegistryPorts"

                  select="msftscw:getCustomPorts($XMLRemoteRegistryPorts)"/>

    <xsl:variable name="RemotePorts"

                  select="msftscw:MergeLists($RemoteSpecificPorts, $RemoteCustomPorts, $RemoteRegistryPorts)"/>



    <!--Local Addresses-->

    <xsl:variable name="XMLLocalAddresses"

                  select="$XMLFirewallRule/LocalAddresses"/>

    <xsl:variable name="XMLLocalV4Addresses"

                  select="$XMLLocalAddresses/V4Address"/>

    <xsl:variable name="XMLLocalV6Addresses"

                  select="$XMLLocalAddresses/V6Address"/>

    <xsl:variable name="XMLLocalV4Ranges"

                  select="$XMLLocalAddresses/V4AddressRange"/>

    <xsl:variable name="XMLLocalV6Ranges"

                  select="$XMLLocalAddresses/V6AddressRange"/>

    <xsl:variable name="XMLLocalV4Subnets"

                  select="$XMLLocalAddresses/V4Subnet"/>

    <xsl:variable name="XMLLocalV6Subnets"

                  select="$XMLLocalAddresses/V6Subnet"/>

    <xsl:variable name="LocalV4Addresses"

                  select="msftscw:getAddresses($XMLLocalV4Addresses)"/>

    <xsl:variable name="LocalV6Addresses"

                  select="msftscw:getAddresses($XMLLocalV6Addresses)"/>

    <xsl:variable name="LocalV4Ranges"

                  select="msftscw:getRanges($XMLLocalV4Ranges)"/>

    <xsl:variable name="LocalV6Ranges"

                  select="msftscw:getRanges($XMLLocalV6Ranges)"/>

    <xsl:variable name="LocalV4Subnets"

                  select="msftscw:getSubnets($XMLLocalV4Subnets)"/>

    <xsl:variable name="LocalV6Subnets"

                  select="msftscw:getSubnets($XMLLocalV6Subnets)"/>

    <xsl:variable name="LocalAddresses"

                  select="msftscw:MergeLists($LocalV4Addresses, $LocalV6Addresses, $LocalV4Ranges, $LocalV6Ranges, $LocalV4Subnets, $LocalV6Subnets)"/>



    <!--Remote Addresses-->

    <xsl:variable name="XMLRemoteAddresses"

                  select="$XMLFirewallRule/RemoteAddresses"/>

    <xsl:variable name="XMLRemoteV4Addresses"

                  select="$XMLRemoteAddresses/V4Address"/>

    <xsl:variable name="XMLRemoteV6Addresses"

                  select="$XMLRemoteAddresses/V6Address"/>

    <xsl:variable name="XMLRemoteV4Ranges"

                  select="$XMLRemoteAddresses/V4AddressRange"/>

    <xsl:variable name="XMLRemoteV6Ranges"

                  select="$XMLRemoteAddresses/V6AddressRange"/>

    <xsl:variable name="XMLRemoteV4Subnets"

                  select="$XMLRemoteAddresses/V4Subnet"/>

    <xsl:variable name="XMLRemoteV6Subnets"

                  select="$XMLRemoteAddresses/V6Subnet"/>

    <xsl:variable name="DefaultGateway"

                  select="msftscw:getSpecialAddresses($XMLRemoteAddresses, 'DefaultGateway')"/>

    <xsl:variable name="WINSServers"

                  select="msftscw:getSpecialAddresses($XMLRemoteAddresses, 'WINSServers')"/>

    <xsl:variable name="DHCPServers"

                  select="msftscw:getSpecialAddresses($XMLRemoteAddresses, 'DHCPServers')"/>

    <xsl:variable name="DNSServers"

                  select="msftscw:getSpecialAddresses($XMLRemoteAddresses, 'DNSServers')"/>

    <xsl:variable name="LocalSubnet"

                  select="msftscw:getSpecialAddresses($XMLRemoteAddresses, 'LocalSubnet')"/>

    <xsl:variable name="RemoteSpecialAddresses"

                  select="msftscw:MergeLists($DefaultGateway, $WINSServers, $DHCPServers, $DNSServers, $LocalSubnet)"/>

    <xsl:variable name="RemoteV4Addresses"

                  select="msftscw:getAddresses($XMLRemoteV4Addresses)"/>

    <xsl:variable name="RemoteV6Addresses"

                  select="msftscw:getAddresses($XMLRemoteV6Addresses)"/>

    <xsl:variable name="RemoteV4Ranges"

                  select="msftscw:getRanges($XMLRemoteV4Ranges)"/>

    <xsl:variable name="RemoteV6Ranges"

                  select="msftscw:getRanges($XMLRemoteV6Ranges)"/>

    <xsl:variable name="RemoteV4Subnets"

                  select="msftscw:getSubnets($XMLRemoteV4Subnets)"/>

    <xsl:variable name="RemoteV6Subnets"

                  select="msftscw:getSubnets($XMLRemoteV6Subnets)"/>

    <xsl:variable name="RemoteAddresses"

                  select="msftscw:MergeLists($RemoteSpecialAddresses, $RemoteV4Addresses, $RemoteV6Addresses, $RemoteV4Ranges, $RemoteV6Ranges, $RemoteV4Subnets, $RemoteV6Subnets)"/>



    <!--Interfaces-->

    <xsl:variable name="XMLInterfaces"

                  select="$XMLFirewallRule/Interfaces/Interface"/>

    <xsl:variable name="Interfaces"

                  select="msftscw:getInterfaces($XMLInterfaces)"/>



    <!--ICMPs-->

    <xsl:variable name="XMLICMPs"

                  select="$XMLFirewallRule/ICMPs/ICMP"/>

    <xsl:variable name="ICMPs"

                  select="msftscw:getICMPs($XMLICMPs)"/>



    <html>

      <body>

        <div>

          <table class="expanddescription"

                 width="100%"

                 cellpadding="0"

                 cellspacing="0">

            <tr>

              <td width="5"/>

              <td>

                <div class="descriptionsections">

                  <xsl:if test="$DisplayName = 'True'">

                    <xsl:if test="string-length($Name) != 0">

                      <b>

                        <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleName', 'KBLocFile')"/>

                      </b>&#160;

                      <xsl:value-of select="$Name"/>

                    </xsl:if>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($Description) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleDescription', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$Description"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($Group) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleGroup', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$Group"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($ProtocolKeyword) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleProtocolKeyword', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$ProtocolKeyword"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($ProtocolNumber) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleProtocolNumber', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$ProtocolNumber"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($Direction) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleDirection', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$Direction"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($Program) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleProgram', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$Program"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($Service) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleService', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$Service"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($EnabledFlag) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleEnabledFlag', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$EnabledFlag"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($Action) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleAction', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$Action"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($Profiles) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleProfiles', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$Profiles"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($LocalPorts) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleLocalPorts', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$LocalPorts"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($RemotePorts) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleRemotePorts', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$RemotePorts"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($LocalAddresses) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleLocalAddresses', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$LocalAddresses"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($RemoteAddresses) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleRemoteAddresses', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$RemoteAddresses"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($Interfaces) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleInterfaces', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$Interfaces"/>

                  </xsl:if>

                </div>

                <div class="descriptionsections">

                  <xsl:if test="string-length($ICMPs) != 0">

                    <b>

                      <xsl:value-of select="msftscw:getString('SCWPolicy/SCWKBLocSection/KBLOC_FirewallRuleICMPs', 'KBLocFile')"/>

                    </b>&#160;

                    <xsl:value-of select="$ICMPs"/>

                  </xsl:if>

                </div>

              </td>

            </tr>

          </table>

        </div>

      </body>

    </html>

  </xsl:template>



  <msxsl:script language="JScript"

                implements-prefix="msftscw">

    <![CDATA[



var m_SDDL = null;

function CreateSDDLProcess()

{

    var succeed = false;

    if( null == m_SDDL )

    {

        m_SDDL  = new ActiveXObject("SDDLproc.viewprocess");

    }

    if( m_SDDL )

    {

    succeed = true;

    }

    return  succeed;

}



function getNoInfo() {

    strReturn  = "<div>" ;

    strReturn += getString("SecurityResults/Strings/NoInfo", "SCWAnaLocStrings.xml");

    strReturn += "</div>";	

    return strReturn;

}



function getExtensionErrorText() {

    strReturn  = "<div width='100%'>" ;

    strReturn += "<Table width='100%'><tr><td class='AnalysisErrorText'>";

    strReturn += getString("SecurityResults/Strings/ExtensionError", "SCWAnaLocStrings.xml");

    strReturn += "</td></tr></Table>";

    strReturn += "</div>";		

        return strReturn;

}



function getCell(strText, strClass, strHeader)

{

    var strTD = "<TD ";

    if(strClass) {

        strTD += "class=";

        strTD += strClass;

    }        

    

    if(strHeader) {

        strTD += " " ;

        strTD += strHeader;

    }	

    

    strTD += ">";

    

    if ( ( strText == null ) || ( strText.length == 0 ) ) {

        strText = "&nbsp;";

    }

    

        

    return strTD + strText + "</TD>";

}



function getRow()

{

    var strReturn = "<TR>";

    //-------------------------------------------------------------------------

    // For each argument passed in, append it to the return buffer

    //-------------------------------------------------------------------------

    for(nArgs = 0; nArgs < arguments.length; nArgs++)

    {

        strReturn += arguments[nArgs];

    }

    //-------------------------------------------------------------------------

    // Return the result with a pad cell (for right whitespace) and a </TR>

    //-------------------------------------------------------------------------

    return strReturn + "</TR>";

}



function GetTitleStartTag() 

{

    var strTag	 =     "<div class='.SDDLObjectTitles'>";

    strTag = strTag +  "<img class='policyNorgieImage' tabindex='0' onkeyup='onKeyUp()' onclick='toggleDisplay()' onmouseover='changeImgForDiv(1);' onmouseout='changeImgForDiv(0);' src='../TransformFiles/view/rightarrow.gif'></img>";

    strTag = strTag +  "<span class='SDDLObjectTitleSpan' onclick='toggleDisplay()' onmouseover='changeImgForDiv(1);' onmouseout='changeImgForDiv(0);'>";

    strTag = strTag +  "<div class='SDDLViewTableDiv'>";

    

    return strTag;

}



function GetTitleEndTag() 

{

    strReturn = "</div></span></div>";



    return strReturn;

}



function BuildFileSystemSection(SDDLnode, sectionType)

{

    var strReturn = "";



    if ( ( SDDLnode == null ) || ( SDDLnode.length <= 0 ) )

    {

    strReturn = "<div>root null</div>";

    return strReturn;

    }



    if( !CreateSDDLProcess() )

    {

    strReturn = "<div>create SDDLproc.viewprocess fails</div>";

    return strReturn;

    }



    var tempNode = SDDLnode.nextNode();

    var strXPath = "./Item[@Key='Object']";



    switch(sectionType)

    {

    case "FileObject":

        strXPath = "./Item[@Key='FileObject' and ./Property/@Key='BaselineValue' and ./Property/@Key='SystemValue']";

        break;

    case "RegistryKey":

        strXPath = "./Item[@Key='RegistryObject' and ./Property/@Key='BaselineValue' and ./Property/@Key='SystemValue']";

        

        break;

    case "ServiceObject":

        strXPath = "./Item[@Key='ServiceObject']";

        break;

    default:

        strReturn = "<div>Section Type Error</div>";

        return strReturn;	

    }

    var nodelist = tempNode.selectNodes(strXPath);

    

    if ( ( null == nodelist ) || ( nodelist.length <= 0 ) ) 

    {

        strReturn = getNoInfo();

        return strReturn;

    }



    //for each file system object

    var strFilesystem = "";

    var strTable = "<div style='display:none' class='SDDLViewTableDiv'>";

    var strSDDLNodeText = "";

    for(index=0; index<nodelist.length; index++)

    {

        strSDDLNodeText = BuildSDDLNodeView(nodelist.item(index), sectionType);

        

        if ( strSDDLNodeText.length > 0 ) {

    

            //build the title and triagle button of each object

            

            strFilesystem = nodelist.item(index).getAttribute("Value");

            

            strReturn += getSDDLObjectTitle(strFilesystem, 1);



            //build the table of each object

            strReturn += strTable;

            

            strSettingTitle = getString("SecurityResults/Sections/SCETemplate/SubTitle", "SCWAnaLocStrings.xml");

            strReturn += getSDDLObjectTitle(strSettingTitle, 0);

            

            //build the table of each object

            strReturn += strTable;

            

            strReturn += strSDDLNodeText;

            

            strReturn += "</div>";						

            

            // Find any child items for this node

            

            childXPath = "./Item[./Property[@Key='ParentBaseLineValue' and Field='";

            childXPath += strFilesystem;

            childXPath += "']]";

            

            childNodeList = tempNode.selectNodes(childXPath);

            

            if ( ( childNodeList != null ) && ( childNodeList.length > 0 ) ) {

            

                strChildrenTitle = getString("SecurityResults/Sections/SCETemplate/Children", "SCWAnaLocStrings.xml");

                    

                strReturn += getSDDLObjectTitle(strChildrenTitle,0);

                

                strReturn += strTable;

                

                for ( iChildIndex = 0 ; iChildIndex < childNodeList.length ; iChildIndex++) {

                

                    childNode = childNodeList.item(iChildIndex);

                    strSDDLChildNodeText = BuildSDDLNodeView(childNode, sectionType);

                    if ( strSDDLChildNodeText.length > 0 ) {

                        

                        strChildSubSystem = childNode.getAttribute("Value");

                        strReturn += getSDDLObjectTitle(strChildSubSystem,1);

                        

                        strReturn += strTable;

                        

                        strReturn += strSDDLChildNodeText;

                        

                        strReturn += "</div>";

                    }					

                }

                

                strReturn += "</div>";

            } 



            strReturn += "</div>";

        }			

    }



    return strReturn;

}



function getSDDLObjectTitle(strTitle, bParent) 

{

    strSDDLObjectTitle = "";

    

    if ( bParent == 1 ) {

        strSDDLObjectTitle =  "<div class='.SDDLObjectTitles'>";

    }

    else {

        strSDDLObjectTitle =  "<div class='SDDLObjectSubTitles'>";	

    }	    

    strSDDLObjectTitle += "<img class='policyNorgieImage' tabindex='0' onkeyup='onKeyUp()' onclick='toggleDisplay()' onmouseover='changeImgForDiv(1);' onmouseout='changeImgForDiv(0);' src='../TransformFiles/view/rightarrow.gif'></img>";

    strSDDLObjectTitle += "<span class='SDDLObjectTitleSpan' onclick='toggleDisplay()' onmouseover='changeImgForDiv(1);' onmouseout='changeImgForDiv(0);' >";

    strSDDLObjectTitle += strTitle;

    strSDDLObjectTitle += "</span></div>";    

    

    return strSDDLObjectTitle ;

}



function BuildSDDLTable(strSDDL, strTitle, ObjectType, startupMode)

{

    var strReturn = "";

    if( strSDDL && (strSDDL.length > 0) )

    {

        var objtype = 0;

    switch(ObjectType)

    {

        case "FileObject":

        objtype = 1;

        break;

        case "RegistryKey":

            objtype = 2;

        break

        case "ServiceObject":

        objtype = 3;

        break;

        default:

        break;

    }

    if( 0 == objtype ) //invalid SDDL type

    {

        strReturn = "<div>invalid SDDL type</div>";

        return strReturn;

        }	



        if( m_SDDL.init(objtype, strSDDL)!=0 )

    {

           strReturn = "<div>" + strTitle;



           if( 3 == objtype )

       {

              strReturn = strReturn + BuildServiceView(startupMode);

       }

       else

       {

              strReturn = strReturn + BuildACLView();

       }



           strReturn = strReturn + "</div>";

    }

    }

    else

    {

        strReturn = "";

    }



    return strReturn;

}



function BuildSDDLNodeView(parentNode, sectionType)

{

    var strReturn = "";



    if( null == parentNode )

    {

      strReturn = "";

      return strReturn;

    }



    var strSDDL = "";

    var strTitle = "";

    var strStartupMode = "";

    var startModeNode ;

    var SDDLnode ;

    

    switch(sectionType)

    {

    case "ServiceObject":

        SDDLnode = parentNode.selectSingleNode("./PropertyGroup[@Key='BaselineValue']/Property[@Key='SecurityDescriptor']/Field");

        startModeNode = parentNode.selectSingleNode("./PropertyGroup[@Key='BaselineValue']/Property[@Key='StartupType']/Field");

        break;

    default:

        SDDLnode = parentNode.selectSingleNode("./Property[@Key='BaselineValue']/Field");

        break;

    }

    

    if( null == SDDLnode )

    {

        strReturn = "";

    }

    else

    {

    if( startModeNode )

    {

        strStartupMode = startModeNode.text;

    }

        strSDDL = SDDLnode.text;

    strTitle = getString("SecurityResults/Sections/SCETemplate/FileSystem/PolicySetting", "SCWAnaLocStrings.xml");

    strReturn = BuildSDDLTable(strSDDL, strTitle, sectionType, strStartupMode);

    }

   

    //select system setting SDDL node

    strStartupMode = "";	

    startModeNode = null;

    switch(sectionType)

    {

        case "ServiceObject":

            SDDLnode = parentNode.selectSingleNode("./PropertyGroup[@Key='SystemValue']/Property[@Key='SecurityDescriptor']/Field");

            startModeNode = parentNode.selectSingleNode("./PropertyGroup[@Key='SystemValue']/Property[@Key='StartupType']/Field");

            break;

        default:

            SDDLnode = parentNode.selectSingleNode("./Property[@Key='SystemValue']/Field");

            break;

    }

    if( SDDLnode  != null )

    {

        if( startModeNode )

        {

            strStartupMode = startModeNode.text;

        }

        strSDDL = SDDLnode.text;

        strTitle = getString("SecurityResults/Sections/SCETemplate/FileSystem/CurrentSetting", "SCWAnaLocStrings.xml");

        strReturn = strReturn + BuildSDDLTable(strSDDL, strTitle, sectionType, strStartupMode);

    }



    return strReturn;       

}



function BuildServiceView(startupMode)

{

    var strReturn = "<div class='SDDLViewTableDiv2'>";

    var permission = 1;

    var auditing = 2;



    //Get Service Startup Mode

    strReturn = strReturn + "<div class='SDDLTitleExpanded'>";

    strReturn = strReturn + getString("SecurityResults/Sections/SCETemplate/Service/StartupMode", "SCWAnaLocStrings.xml");

    strReturn = strReturn + "</div>";

    var strTemp = startupMode;

    if( strTemp.length > 0 )

    {

    strReturn = strReturn + "<table class='SDDLViewTableDiv3'><tr><td class='SDDLCellPadding'>";

    switch(strTemp)

    {

    case "Automatic":

        strReturn = strReturn + getString("SecurityResults/Sections/Services/Table/Automatic", "SCWAnaLocStrings.xml");

        break;

    case "Manual":

        strReturn = strReturn + getString("SecurityResults/Sections/Services/Table/Manual", "SCWAnaLocStrings.xml");

        break;

    case "Disabled":

        strReturn = strReturn + getString("SecurityResults/Sections/Services/Table/Disabled", "SCWAnaLocStrings.xml");

        break;

    default:

        break;

    }

    strReturn = strReturn + "</td></tr></table>";

    }



    if( m_SDDL.IsPermissionsPresent() )

    {

        strACETable = BuildACEsTable(permission);

        if ( strACETable.length > 0 ) {

            

            //Get permission ACE table

            strReturn = strReturn + "<div class='SDDLTitleExpanded'>";

            strReturn = strReturn + getString("SecurityResults/Sections/SCETemplate/FileSystem/Permissions", "SCWAnaLocStrings.xml");

            strReturn = strReturn + "</div>";

            strReturn = strReturn + strACETable;

        }	    	

    }



    if( m_SDDL.IsAuditingsPresent() )

    {

        //Get Auditing ACE table    

        strACETable = BuildACEsTable(auditing);

        if ( strACETable.length > 0 ) {

            strReturn = strReturn + "<div class='SDDLTitleExpanded'>";

            strReturn = strReturn + getString("SecurityResults/Sections/SCETemplate/FileSystem/Auditings", "SCWAnaLocStrings.xml");

            strReturn = strReturn + "</div>";

            strReturn = strReturn + strACETable;

        }

    }



    strReturn = strReturn + "</div>";



    return strReturn;

}



function BuildACLView()

{

    var strReturn = "<div class='SDDLViewTableDiv2'>";

    var permission = 1;

    var auditing = 2;



    //Get ACL owner

    var strTemp = m_SDDL.GetOwner();



    if (strTemp.length > 0)

    {

        strReturn = strReturn + "<div class='SDDLTitleExpanded'>";

        strReturn = strReturn + getString("SecurityResults/Sections/SCETemplate/FileSystem/Owner", "SCWAnaLocStrings.xml");

        strReturn = strReturn + "</div>";

        strReturn = strReturn + "<table class='SDDLViewTableDiv3'><tr><td class='SDDLCellPadding'>";

        strReturn = strReturn + strTemp;

        strReturn = strReturn + "</td></tr></table>";

    }



    //Get ACL group

    strTemp = m_SDDL.GetGroup();





    if (strTemp.length > 0 )

    {

        strReturn = strReturn + "<div class='SDDLTitleExpanded'>";

        strReturn = strReturn + getString("SecurityResults/Sections/SCETemplate/FileSystem/Group", "SCWAnaLocStrings.xml");

        strReturn = strReturn + "</div>";

        strReturn = strReturn + "<table class='SDDLViewTableDiv3'><tr><td class='SDDLCellPadding'>";

        strReturn = strReturn + strTemp;

        strReturn = strReturn + "</td></tr></table>";

    }



    if( m_SDDL.IsPermissionsPresent() )

    {

        //Get permission ACE table

        strACETable = BuildACEsTable(permission);;

        if ( strACETable.length > 0 ) {

        

            strReturn = strReturn + "<div class='SDDLTitleExpanded'>";

            strReturn = strReturn + getString("SecurityResults/Sections/SCETemplate/FileSystem/Permissions", "SCWAnaLocStrings.xml");

            strReturn = strReturn + "</div>";

            strReturn = strReturn + strACETable;

        }    		



        //Get permission inherit info

        strReturn = strReturn + "<table class='SDDLViewTableDiv3'><tr><td class='SDDLCellPadding3'>";

        var bTemp = false;

        strReturn = strReturn + getString("SecurityResults/Sections/SCETemplate/FileSystem/PermissionInherit", "SCWAnaLocStrings.xml") + "</td>";

        strReturn = strReturn + "<td class='SDDLCellPadding3'>"

        

        bTemp = m_SDDL.IsDACLInherited();

        if( bTemp )

        {

            strReturn = strReturn + getString("SecurityResults/Sections/SCETemplate/FileSystem/Enabled", "SCWAnaLocStrings.xml");

        }

    else

        {

            strReturn = strReturn + getString("SecurityResults/Sections/SCETemplate/FileSystem/Disabled", "SCWAnaLocStrings.xml");

        }

        strReturn = strReturn + "</td></tr></table>";

    }



    if( m_SDDL.IsAuditingsPresent() )

    {

        //Get Auditing ACE table

        strACETable = BuildACEsTable(auditing);

        if ( strACETable.length > 0 ) {

            

            strReturn = strReturn + "<div class='SDDLTitleExpanded'>";

            strReturn = strReturn + getString("SecurityResults/Sections/SCETemplate/FileSystem/Auditings", "SCWAnaLocStrings.xml");

            strReturn = strReturn + "</div>";

            strReturn = strReturn + strACETable;

        }			



        //Get auditing inherit info



        strReturn = strReturn + "<div class='SDDLTitleExpanded'>";

        strReturn = strReturn + getString("SecurityResults/Sections/SCETemplate/FileSystem/InheritanceFlags", "SCWAnaLocStrings.xml");

        strReturn = strReturn + "</div>";

        

        strReturn = strReturn + "<table class='SDDLViewTableDiv3'><tr><td class='SDDLCellPadding3'>";

        var bTemp = false;

        strReturn = strReturn + getString("SecurityResults/Sections/SCETemplate/FileSystem/AuditingInherit", "SCWAnaLocStrings.xml") + "</td>";

        

        strReturn = strReturn + "<td class='SDDLCellPadding3'>"

        

        bTemp = m_SDDL.IsSACLInherited();

        if( bTemp )

        {

            strReturn = strReturn + getString("SecurityResults/Sections/SCETemplate/FileSystem/Enabled", "SCWAnaLocStrings.xml");

        }

        else

        {

            strReturn = strReturn + getString("SecurityResults/Sections/SCETemplate/FileSystem/Disabled", "SCWAnaLocStrings.xml");

        }

        strReturn = strReturn + "</td></tr></table>";

    }



    strReturn = strReturn + "</div>";



    return strReturn;

}



function BuildACEsTable(ACLtype)

{

    var strReturn = "<table class='SDDLViewTableDiv3'><thead>";

    strReturn = strReturn + "<td class='OBJECTLISTSUBHEADER'>";

    strReturn = strReturn + getString('SecurityResults/Sections/SCETemplate/FileSystem/Type', 'SCWAnaLocStrings.xml') + "</td>";

    strReturn = strReturn + "<td class='OBJECTLISTSUBHEADER'>";

    strReturn = strReturn + getString('SecurityResults/Sections/SCETemplate/FileSystem/Name', 'SCWAnaLocStrings.xml') + "</td>";

    strReturn = strReturn + "<td class='OBJECTLISTSUBHEADER'>";

    strReturn = strReturn + getString('SecurityResults/Sections/SCETemplate/FileSystem/Access', 'SCWAnaLocStrings.xml') + "</td>";

    if( 3 != m_SDDL.GetObjectType() )

    {

       strReturn = strReturn + "<td class='OBJECTLISTSUBHEADER'>";

       strReturn = strReturn + getString('SecurityResults/Sections/SCETemplate/FileSystem/ApplyTo', 'SCWAnaLocStrings.xml') + "</td>";

    }

    strReturn = strReturn + "</thead>";



    var ACEcount = 0;

    if( m_SDDL )

    {

        ACEcount = m_SDDL.GetACEsCount(ACLtype);

    }



    if( ACEcount <= 0 )

    {		

        strReturn = "";

        return strReturn;

    }



    var index = 0;

    var type = 0;

    m_SDDL.MoveToFirstACE(ACLtype);

    var strTemp = "";

    for(index=0; index<ACEcount; index++)

    {

        strTemp = "<tr>";



        //get ACE type

        type = m_SDDL.GetCurACEType(ACLtype);

        strTemp = strTemp + "<td class='SDDLCellPadding2'>";

        switch(type)

        {

            case 1:

            strTemp = strTemp + getString("SecurityResults/Sections/SCETemplate/FileSystem/SuccessType","SCWAnaLocStrings.xml");

            break;

            case 2:

            strTemp = strTemp + getString("SecurityResults/Sections/SCETemplate/FileSystem/FailureType","SCWAnaLocStrings.xml");

            break;

            case 3:

            strTemp = strTemp + getString("SecurityResults/Sections/SCETemplate/FileSystem/BothType","SCWAnaLocStrings.xml");

            break;

            case 4:

            strTemp = strTemp + getString("SecurityResults/Sections/SCETemplate/FileSystem/AllowType","SCWAnaLocStrings.xml");

            break;

            case 5:

            strTemp = strTemp + getString("SecurityResults/Sections/SCETemplate/FileSystem/DenyType","SCWAnaLocStrings.xml");

            break;

            default:

            break;

        }

        strTemp = strTemp + "</td>";



        //Get ACE Name

        strTemp = strTemp + "<td class='SDDLCellPadding2'>";

        strTemp = strTemp + m_SDDL.GetCurACEName(ACLtype);

        strTemp = strTemp + "</td>";



        //Get ACE permission

        strTemp = strTemp + "<td class='SDDLCellPadding2'>";

        // permission = 1 auditing = 2;

        // permission ACE uses standard permission, but if the standard is empty then uses special.

        // auditing ACE uses special permission

        if( 1 == ACLtype )

        {

            var per = m_SDDL.GetCurACEStandardPermission(ACLtype);

            if( per.length <= 0 )

            {

            per = m_SDDL.GetCurACESpecialPermission(ACLtype);

            }

            strTemp = strTemp + per;

        }

        else

        {

            strTemp = strTemp + m_SDDL.GetCurACESpecialPermission(ACLtype);

        }

        strTemp = strTemp + "</td>";



        //Get ACE applyto

        if( 3 != m_SDDL.GetObjectType() )

            {

            strTemp = strTemp + "<td class='SDDLCellPadding2'>";

            strTemp = strTemp + m_SDDL.GetCurACEApplyTo(ACLtype);

            strTemp = strTemp + "</td>";

        }



        strTemp = strTemp + "</tr>";



        strReturn = strReturn + strTemp;



        m_SDDL.MoveToNextACE(ACLtype);

    }

    

    strReturn = strReturn + "</table>";

    

    return strReturn;

}



function getACETypeString(nod, strFile)

{

    var nIndex = 0;

    if(m_strArray)

    {

        for(nIndex = 0; nIndex < m_strArray.length; nIndex++)

        {

            if(strFile == m_strArray[nIndex])

            {

                break;

            }

        }

    }

    else

    {

        m_strArray = new Array(strFile);

        m_arrObjs  = new Array(1);

    }

    if(null == m_arrObjs[nIndex])

    {

        m_strArray[nIndex] = strFile;

        m_arrObjs[nIndex] = new localization();

        m_arrObjs[nIndex].loadXML(strFile);

    }

    if(!m_arrObjs[nIndex].isLoaded())

        return "";



    var strID = getNodeTextFromNode(nod);

    var strPath;

    switch(strID)

    {

    case "1":

        strPath = "SecurityResults/Sections/SCETemplate/FileSystem/SuccessType";

        break;

    case "2":

        strPath = "SecurityResults/Sections/SCETemplate/FileSystem/FailureType";

        break;

    case "3":

            strPath = "SecurityResults/Sections/SCETemplate/FileSystem/BothType";

        break;

    case "4":

        strPath = "SecurityResults/Sections/SCETemplate/FileSystem/AllowType";

        break;

    case "5":

        strPath = "SecurityResults/Sections/SCETemplate/FileSystem/DenyType";

        break;

    default:

        strPath = "";

    }

    return m_arrObjs[nIndex].getLocString(strPath);

}



function getACLInheritType(strID, strFile)

{

    var nIndex = 0;

    if(m_strArray)

    {

        for(nIndex = 0; nIndex < m_strArray.length; nIndex++)

        {

            if(strFile == m_strArray[nIndex])

            {

                break;

            }

        }

    }

    else

    {

        m_strArray = new Array(strFile);

        m_arrObjs  = new Array(1);

    }

    if(null == m_arrObjs[nIndex])

    {

        m_strArray[nIndex] = strFile;

        m_arrObjs[nIndex] = new localization();

        m_arrObjs[nIndex].loadXML(strFile);

    }

    if(!m_arrObjs[nIndex].isLoaded())

        return "";



    var strPath;

    switch(strID)

    {

    case "True":

    case "TRUE":

        strPath = "SecurityResults/Sections/SCETemplate/FileSystem/Enabled";

        break;

    case "False":

    case "FALSE":

        strPath = "SecurityResults/Sections/SCETemplate/FileSystem/Disabled";

        break;

    default:

        strPath = "";

    }

    return m_arrObjs[nIndex].getLocString(strPath);

}



function BuildServiceSection(tempNode, bNotInstalled) 

{

    strReturn = "";

    

    ServiceItemsNode = tempNode.nextNode();



    if ( bNotInstalled == 1) {

        xPath = "./Item[./PropertyGroup[@Key='BaselineValue' and Property/Field='Disabled'] and not ( ./PropertyGroup/@Key='SystemValue')]";

    }

    else {

        xPath = "./Item[not (./PropertyGroup[@Key='BaselineValue' and Property/Field='Disabled'] and not ( ./PropertyGroup/@Key='SystemValue')) ]";	

    }



    ServiceItemNodes = ServiceItemsNode.selectNodes(xPath);

    

    if ( ( ServiceItemNodes != null) && ( ServiceItemNodes.length > 0 ) ) 

    {

        strReturn += "<div class='kbsubsectionheaders'>";

    

        if ( bNotInstalled == 1) 

        {		

            strReturn += "<img class='policyNorgieImage' tabindex='0' onkeyup='onKeyUp()' onclick='toggleDisplay();' onmouseover='changeImgForDiv(1);' onmouseout='changeImgForDiv(0);' src='../TransformFiles/view/rightarrow.gif'></img>";

        } 

        else 

        {

            strReturn += "<img class='policyNorgieImage' tabindex='0' onkeyup='onKeyUp()' onclick='toggleDisplay();' onmouseover='changeImgForDiv(1);' onmouseout='changeImgForDiv(0);' src='../TransformFiles/view/rightarrow.gif'></img>";		

        }			

        strReturn += "<span class='policySectionHeadingSpan' onclick='toggleDisplay();' onmouseover='changeImgForDiv(1);' onmouseout='changeImgForDiv(0);'>";

        

        if ( bNotInstalled == 1) 

        {

            strReturn += getString('SecurityResults/Sections/Services/TitleNotInstalled', 'SCWAnaLocStrings.xml');

        }

        else 

        {

            strReturn += getString('SecurityResults/Sections/Services/TitleMismatch', 'SCWAnaLocStrings.xml');

        }

        strReturn += "</span></div>";

        

        if ( bNotInstalled == 1 ) {

            strReturn += "<div style='display:none' class='policyResultsSubTableDiv'>";

        }

        else {

            strReturn += "<div class='policyResultsSubTableDiv' style=display:'none'>";		

        }			

                    

        strReturn += "<div class='policyResultsSubTableDiv'>";

        

        // Build the Actual Table

        strReturn += BuildServiceTable(ServiceItemNodes);

        

        strReturn += "</div></div>";

    }

    

    return strReturn;		

}



function BuildServiceTable(nodelist) 

{

    function ServiceClass ( strServiceName, strBaseStartup, strSystemStartup) 

    {

        this.m_strServiceName		= strServiceName;

        this.m_strBaseStartup		= strBaseStartup;

        this.m_strSystemStartup		= strSystemStartup;

    }



    function SortServiceClass(first, second) {



        return first.m_strServiceName.localeCompare(second.m_strServiceName );

    }



    

    var ServiceArray		 =	new Array();

    

    strReturn = "";

   

    if ( ( nodelist != null ) && (nodelist.length > 0 ))

    {

        strServiceHTML = getTableHeaderForPropertyGroup();



        /* Create the Header*/

        strServiceHTML += getRow(

                        getCell(getString("SecurityResults/Sections/Services/Table/ServiceName", "SCWAnaLocStrings.xml"),

                                "'OBJECTLISTSUBHEADER'", "width='50%'" ),

                        getCell(getString("SecurityResults/Sections/Services/Table/BaseMode", "SCWAnaLocStrings.xml"),								

                                "'OBJECTLISTSUBHEADER'" , "width='25%'" ),

                        getCell(getString("SecurityResults/Sections/Services/Table/SystemMode", "SCWAnaLocStrings.xml"),								

                                "'OBJECTLISTSUBHEADER'" , "width='25%'" ));

        

        for( iServiceIndex = 0; iServiceIndex < nodelist.length; iServiceIndex++)

        {

            ServiceNode  = nodelist.item(iServiceIndex);

            

            BaselineStartupNode = ServiceNode.selectSingleNode("PropertyGroup[@Key='BaselineValue']/Property[@Key='StartupType']/Field");

            SystemStartupNode   = ServiceNode.selectSingleNode("PropertyGroup[@Key='SystemValue']/Property[@Key='StartupType']/Field");

            

            strServiceName   = getServiceName(ServiceNode);

            strBaseLineValue = getServiceStartupMode(BaselineStartupNode);

            strSystemValue   = getServiceStartupMode(SystemStartupNode);

            

            ServiceArray[iServiceIndex] = new ServiceClass(strServiceName, strBaseLineValue, strSystemValue );

        }			

        

        ServiceArray.sort(SortServiceClass);

        

        for( iServiceIndex = 0; iServiceIndex < ServiceArray.length; iServiceIndex++) {

        

            strServiceHTML      += getRow(getCell(ServiceArray[iServiceIndex].m_strServiceName,		"'OBJECT'"),	

                                          getCell(ServiceArray[iServiceIndex].m_strBaseStartup,		"'OBJECT'"),		

                                          getCell(ServiceArray[iServiceIndex].m_strSystemStartup,	"'OBJECT'"));

        }

        

        strServiceHTML += getTableFooterForPropertyGroup();

        

        strReturn = strServiceHTML;

    }		



    return strReturn;

}



function getRegKeyString(strKey, strSub)

{

    var strReturn = "";

    if( null == strKey || strKey.length == 0 )

    {

        return strReturn;

    }



    var bFirst = false;

    var strTemp = "";

    var strWidth = 60;

    if( null == strSub || strSub.length == 0 )

    {

        bFirst = true;

        strTemp = strKey;

        if( strTemp.length <=strWidth )

        {

            return strTemp;

        }

    }

    else if( strSub.length >= strKey.length )

    {

        return strReturn;

    }

    else

    {

        strTemp = strKey.substr(strSub.length);

        strReturn = "<BR/>";

    }

    

    var index = strWidth;

    var startpos = 0;

    while( strTemp.length - startpos > strWidth )

    {

        while( index > 0 )

        {

            if( strTemp.charAt(startpos + index)=='\\' )

            {

                strReturn += strTemp.substr(startpos, index+1);

                if( !bFirst )

                {

                    strReturn += "<BR/>";

                }

                startpos = startpos + index + 1;

                index = strWidth;

                break;

            }

            index = index - 1;

        }

        if( 0 == index )

        {

            index = strWidth;

            strReturn += strTemp.substr(startpos, index+1);

            if( !bFirst )

            {

                strReturn += "<BR/>";

            }

            startpos = startpos + index + 1;

        }

        if( bFirst )

        {

            break;

        }

    }

    if( !bFirst && startpos < strTemp.length )

    {

        strReturn += strTemp.substr(startpos);

    }

    

    return strReturn;

}



function BuildRegistrySection(RegistryItemsNode)

{

    var strReturn = "";

    

    var tempNode = RegistryItemsNode.nextNode();    

    

    var nodelist = tempNode.selectNodes("./Item");

    

    if( nodelist != null || nodelist.length > 0 )

    {

        for(index=0; index<nodelist.length; index++)

        {

            RegistryNode  = nodelist.item(index);

            

            strTemp1 = getNodeAttribute(RegistryNode, null, "Value");

            strTemp2 = getRegKeyString(strTemp1, null);

            strValue = strTemp2;

            strValue += getRegKeyString(strTemp1, strTemp2);

            

            BaseLineFieldNode			= RegistryNode.selectSingleNode("./Property[@Key='BaselineValue']/Field");

            SystemFieldNode				= RegistryNode.selectSingleNode("./Property[@Key='SystemValue']/Field");

            

            if ( ( BaseLineFieldNode != null ) && 

                 ( SystemFieldNode   != null ) ) {

                

                strBaseLineValue = getNodeTextFromNode(BaseLineFieldNode);

                strSystemValue   = getNodeTextFromNode(SystemFieldNode);

                

                strReturn += getRow(getCell(strValue, "'OBJECT'"),

                                    getCell(strBaseLineValue,"'OBJECT'"),

                                    getCell(strSystemValue,  "'OBJECT'"));

            }									

        }			    

    }    

    

    return strReturn;

}



function BuildAuditSection(AuditItemsNode)

{

    var strReturn = "";

    

    if ( AuditItemsNode != null ) {

    

        var tempNode = AuditItemsNode.nextNode();    

        

        var nodelist = tempNode.selectNodes("./Item");

        

        if( nodelist != null || nodelist.length > 0 )

        {

            for(index=0; index<nodelist.length; index++)

            {

                AuditNode  = nodelist.item(index);

                

                strValue = getNodeAttribute(AuditNode, null, "Value");

                

                BaseLineFieldNode			= AuditNode.selectSingleNode("./Property[@Key='BaselineValue']/Field");

                SystemFieldNode				= AuditNode.selectSingleNode("./Property[@Key='SystemValue']/Field");

                

                if ( ( BaseLineFieldNode != null ) && 

                    ( SystemFieldNode   != null ) ) {

                    strBaseLineValue = getNodeTextFromNode(BaseLineFieldNode);

                    strSystemValue = getNodeTextFromNode(SystemFieldNode);

            



                    strReturn += getRow(getCell(getAuditType(strValue), "'OBJECT'"),

                                        getCell(getAuditValue(strBaseLineValue),"'OBJECT'"),

                                        getCell(getAuditValue(strSystemValue), "'OBJECT'"));

                }									

            }			    

        }    

    }		

    

    return strReturn;

}		



function getAuditValue(strAuditValue)

{

    strReturn = "";

    strxPath = "SecurityResults/Sections/Audit/Strings/";

        

    switch (strAuditValue) {

        case "0":

            strxPath += "Audit_NotAudited";								

            break;

        case "1":

            strxPath += "SuccessType";		

            break;		

        case "2":

            strxPath += "FailureType";				

            break;		

        case "3":

            strxPath += "Audit_Sucess_Failure";				

            break;		

    }

    

    strReturn = getString(strxPath, "SCWAnaLocStrings.xml");

    

    if ( (strReturn == null) || ( strReturn.length == 0 ) ){

        strReturn = strAuditValue;

    }

    

    return strReturn;



}



function getAuditType(strAuditType) 

{

    strReturn = "";

    strTemp = strAuditType.toUpperCase();

    

    strxPath = "SecurityResults/Sections/Audit/Strings/";

    

    switch ( strTemp ) {

        case "AUDITSYSTEMEVENTS":

        case "SYSTEM":

            strxPath += "Audit_SYSTEM";

            break;

        case "AUDITLOGONEVENTS":

        case "LOGON":

            strxPath += "Audit_LOGON";

            break;					

        case "AUDITOBJECTACCESS":

        case "OBJECTACCESS":

            strxPath += "Audit_OBJECTACCESS";

            break;			

        case "AUDITPRIVILEGEUSE":

        case "PRIVILEGEUSE":

            strxPath += "Audit_PRIVILEGEUSE";

            break;			

        case "AUDITPOLICYCHANGE":

        case "POLICYCHANGE":

            strxPath += "Audit_POLICYCHANGE";

            break;			

        case "AUDITACCOUNTMANAGE":

        case "ACCOUNTMANAGEMENT":

            strxPath += "Audit_ACCOUNTMANAGEMENT";

            break;		

        case "AUDITPROCESSTRACKING":

        case "DETAILEDTRACKING":

            strxPath += "Audit_DETAILEDTRACKING";

            break;		

        case "AUDITDSACCESS":

        case "DIRECTORYSERVICEACCESS":

            strxPath += "Audit_DIRECTORYSERVICEACCESS";

            break;

        case "AUDITACCOUNTLOGON":

        case "ACCOUNTLOGON":

            strxPath += "Audit_ACCOUNTLOGON";

            break;			

        default:

            strxPath = "";			

            break;

    }



    if ( strxPath.length > 0 ) 

        strReturn = getString(strxPath, "SCWAnaLocStrings.xml");

    

    if ( (strReturn == null) || ( strReturn.length == 0 ) ){

        strReturn = strAuditType;

    }

    

    return strReturn;

}



function getTableHeaderForPropertyGroup() 

{

    strReturn  = "<TABLE class='OBJECTLIST' cellSpacing='0' cellPadding='0' border='0'>";

    strReturn += "<TBODY>";

    

    return strReturn;

}



function getTableFooterForPropertyGroup() 

{

    strReturn  = "</TBODY></TABLE>";

    return strReturn;

}



var m_pDomDocument;

var m_bLookupFileFound;

var m_ServiceInfoArray = new Array();



function InitializeLookup()

{

    m_pDomDocument = new ActiveXObject("MSXML2.DOMDocument");

    m_bLookupFileFound = false;

    

    if(m_pDomDocument)

    {

        m_pDomDocument.async = false;

        m_bLookupFileFound = m_pDomDocument.load("../kbs/main.xml");

    }

    

    if ( m_bLookupFileFound ) 

    {

        InitializeServiceInfoArray();

    }

    

    return "";

}



function GetHeaderRow(strHeaderXPath, bSubHeader) 

{

    strReturn = "";



    if ( bSubHeader == 1 ) 

    {

        strReturn  =  "<div class='kbsubsectionheaders'>";

    }

    else

    {

        strReturn  =  "<div class='kbsectionheaders'>";	

    }	    

    strReturn +=  "<img class='policyNorgieImage' tabindex='0' onkeyup='onKeyUp()' onclick='toggleDisplay();' onmouseover='changeImgForDiv(1);' onmouseout='changeImgForDiv(0);' src='../TransformFiles/view/rightarrow.gif'></img>";

    strReturn +=  "		<span class='policySectionHeadingSpan' onclick='toggleDisplay();' onmouseover='changeImgForDiv(1);' onmouseout='changeImgForDiv(0);'>";

    strReturn +=			getString(strHeaderXPath, 'SCWAnaLocStrings.xml');

    strReturn +=  "		</span>";

    strReturn +=  "</div>";

    

    return strReturn;

}



function InitializeServiceInfoArray() 

{

    strXPath	= "SCWKnowledgeBase/ServiceLocalization/Service";

    ServiceList = m_pDomDocument.selectNodes(strXPath);

        

    if ( ServiceList != null ) {



        for ( iServiceList = 0;  iServiceList < ServiceList.length ; iServiceList++ ) {

            ServiceNode = ServiceList.item(iServiceList);

            if ( ServiceNode != null ) {

                strServiceName = getNodeAttribute(ServiceNode, null, "Name");

                strServiceDispName = getNodeTextFromString("DisplayName", ServiceNode);

                if ( ( strServiceDispName == null ) || ( strServiceDispName.length <=0 ) ) {

                    strServiceDispName = "Unknown";

                }

                m_ServiceInfoArray[iServiceList] = new ServiceInfo(strServiceName, strServiceDispName);

            }				

        }

        

        m_ServiceInfoArray.sort(SortService);

    }			

}



function getServiceName(ServiceNode) 

{

    strReturn = "";

    

    if ( ServiceNode != null ) {



        strService = getNodeAttribute(ServiceNode, null, "Value");

        

        xPath = "";

        

        if ( ( strService != null ) && ( strService.length > 0 ) )  {

        

            xPath = "SCWKnowledgeBase/ServiceLocalization/Service[@Name='";

            xPath += strService;

            xPath += "']";

        }

        

        if ( ( m_bLookupFileFound )  && ( xPath.length > 0 )  ) {		

            strReturn = FindServiceDisplayName(strService);

        }			



        if ( ( strReturn == null ) || ( strReturn.length <= 0 ) ) {

            strReturn = strService;

        

        }

    }

    return strReturn;

}

  

function getServiceStartupMode(StartupModeNode) 

{

    xPath = "SecurityResults/Sections/Services/Table/";    

    strReturn = "";



    if ( StartupModeNode != null ) {

            xPath += StartupModeNode.text;

    }

    else {

        xPath += "NotInstalled";

    }	 		

        

    strReturn += getString(xPath, "SCWAnaLocStrings.xml");



    if ( (strReturn == null) || ( strReturn.length <= 0 ) ) {

        strReturn = StartupModeNode.text;

    }



    return strReturn;

}

  

function ServiceInfo(name,DispName) 

{

    this.ServiceName		= name.toUpperCase();

    this.ServiceDispName	= DispName;

}



function SortService(first, second) 

{

    if ( first.ServiceName == second.ServiceName ) {

        return 0 ; 

    } else if ( first.ServiceName < second.ServiceName ) {

        return -1;

    } else {

        return 1;

    }		

}



function FindServiceDisplayName(Name) 

{

    strReturn = ""



    for ( iFindSrv = 0 ; iFindSrv < m_ServiceInfoArray.length ; iFindSrv ++ ) {

        iComp = m_ServiceInfoArray[iFindSrv].ServiceName.localeCompare(Name.toUpperCase());

        if ( iComp == 0 ) {

            strReturn =  m_ServiceInfoArray[iFindSrv].ServiceDispName;

            break;

        }

        if ( iComp == 1 ) {

            strReturn =  "";

            break;

        }			

    }



    return strReturn	

}    



/////////////////////////

//                     //

// Firewall Section... //

//                     //

/////////////////////////



function getNodeAttr(node, attrName)

{

    var strReturn = "";

    

    if (node == null)

    {

        return strReturn;

    }

    

    var attributes = node.attributes;

    var attribute = attributes.getNamedItem(attrName); 



    if (attribute != null)

    {

        strReturn = attribute.text;

    }

    

    return strReturn;

}



function Merge2Lists(list1, list2)

{

    var strReturn = "";

    

    if (list1 != null && list1 != "")

    {

        strReturn += list1;

    }

    

    if (list2 != null && list2 != "")

    {

        if (strReturn != "")

        {

            strReturn += ", ";

        }

        strReturn += list2;

    }

    

    return strReturn;

}



function MergeLists(list1, list2, list3, list4, list5, list6, list7, list8, list9, list10)

{

    var strReturn = "";

    

    strReturn = Merge2Lists(list1, list2);

    strReturn = Merge2Lists(strReturn, list3);

    strReturn = Merge2Lists(strReturn, list4);

    strReturn = Merge2Lists(strReturn, list5);

    strReturn = Merge2Lists(strReturn, list6);

    strReturn = Merge2Lists(strReturn, list7);

    strReturn = Merge2Lists(strReturn, list8);

    strReturn = Merge2Lists(strReturn, list9);

    strReturn = Merge2Lists(strReturn, list10);

    

    return strReturn;

}



function getFirewallRules(requiredRules, allRules)

{

    var strReturn = "";

    

    if (requiredRules == null)

    {

        return strReturn;

    }

    

    for (var iRequiredRule = 0; 

         iRequiredRule < requiredRules.length; 

         ++iRequiredRule)

    {

        var requiredRule = requiredRules.item(iRequiredRule);

        var requiredRuleId = getNodeAttr(requiredRule, "Id");



        for (var iRule = 0; 

             iRule < allRules.length; 

             ++iRule)

        {

            var rule = allRules.item(iRule);

            var ruleId = getNodeAttr(rule, "Id");

            

            if (ruleId == requiredRuleId)

            {

                if (strReturn != "")

                {

                    strReturn += ", ";

                }

            

                strReturn += getNodeAttr(rule, "Name");

            }

        }

    }

    

    return strReturn;

}



function getProfiles(nodeList)

{

    var strReturn = "";

    

    if (nodeList == null)

    {

        strReturn = "Domain, Public, Private";

        return strReturn;

    }

    

    for (var i = 0; i < nodeList.length; ++i)

    {

        var node = nodeList.item(i);

        

        if (strReturn != "")

        {

            strReturn += ", ";

        }

        

        strReturn += getNodeAttr(node, "Type");

    }

        

    return strReturn;

}



function getSpecialPorts(nodeList)

{

    var strReturn = "";

    

    if (nodeList == null)

    {

        return strReturn;

    }

    

    var node = nodeList.item(0);

        

    if (node == null)

    {

        return strReturn;

    }



    strReturn = getNodeAttr(node, "SpecialPorts");



    return strReturn;

}



function getSpecificPorts(nodeList)

{

    var strReturn = "";

    

    if (nodeList == null)

    {

        return strReturn;

    }

    

    for (var i = 0; i < nodeList.length; ++i)

    {

        var node = nodeList.item(i);

        

        if (strReturn != "")

        {

            strReturn += ", ";

        }

        

        strReturn += getNodeAttr(node, "Value");

    }

    

    return strReturn;

}



function getCustomPorts(nodeList)

{

    var strReturn = "";

    

    if (nodeList == null)

    {

        return strReturn;

    }

    

    for (var i = 0; i < nodeList.length; ++i)

    {

        var node = nodeList.item(i);

        

        if (strReturn != "")

        {

            strReturn += ", ";

        }

        

        strReturn += getNodeAttr(node, "ResultValue");

    }

    

    return strReturn;

}



function getSpecialAddresses(nodeList, keyword)

{

    var strReturn = "";

    

    if (nodeList == null)

    {

        return strReturn;

    }

    

    var node = nodeList.item(0);

        

    if (node == null)

    {

        return strReturn;

    }



    if (getNodeAttr(node, keyword) == "True")

    {

        strReturn = keyword;

    }



    return strReturn;

}



function getAddresses(nodeList)

{

    var strReturn = "";

    

    if (nodeList == null)

    {

        return strReturn;

    }

    

    for (var i = 0; i < nodeList.length; ++i)

    {

        var node = nodeList.item(i);

        

        if (strReturn != "")

        {

            strReturn += ", ";

        }

        

        strReturn += getNodeAttr(node, "Value");

    }

    

    return strReturn;

}



function getRanges(nodeList)

{

    var strReturn = "";

    

    if (nodeList == null)

    {

        return strReturn;

    }

    

    for (var i = 0; i < nodeList.length; ++i)

    {

        var node = nodeList.item(i);

        

        if (strReturn != "")

        {

            strReturn += ", ";

        }

        

        strReturn += getNodeAttr(node, "Begin");

        strReturn += " - ";

        strReturn += getNodeAttr(node, "End");

    }

    

    return strReturn;

}



function getSubnets(nodeList)

{

    var strReturn = "";

    

    if (nodeList == null)

    {

        return strReturn;

    }

    

    for (var i = 0; i < nodeList.length; ++i)

    {

        var node = nodeList.item(i);

        

        if (strReturn != "")

        {

            strReturn += ", ";

        }

        

        strReturn += getNodeAttr(node, "Address");

        strReturn += "/";

        strReturn += getNodeAttr(node, "PrefixLength");

    }

        

    return strReturn;

}



function getInterfaces(nodeList)

{

    var strReturn = "";

    

    if (nodeList == null)

    {

        return strReturn;

    }

    

    for (var i = 0; i < nodeList.length; ++i)

    {

        var node = nodeList.item(i);

        

        if (strReturn != "")

        {

            strReturn += ", ";

        }

        

        strReturn += getNodeAttr(node, "Id");

    }

        

    return strReturn;

}



function getICMPs(nodeList)

{

    var strReturn = "";

    

    if (nodeList == null)

    {

        return strReturn;

    }

    

    for (var i = 0; i < nodeList.length; ++i)

    {

        var node = nodeList.item(i);

        

        if (strReturn != "")

        {

            strReturn += ", ";

        }

        

        strReturn += getNodeAttr(node, "Type");

        strReturn += "/";

        strReturn += getNodeAttr(node, "Code");

    }

        

    return strReturn;

}



]]>

  </msxsl:script>



</xsl:stylesheet>


Anon7 - 2022
AnonSec Team