Quantcast
Channel: Sandcastle Help File Builder
Viewing all 2184 articles
Browse latest View live

New Post: Is SHFB portable?

$
0
0
Yes, the latest release is portable. In fact, I just got a request to look into distributing SHFB in a NuGet package. Somebody has published one but the requester would prefer it to come from this actual project and be maintained with each new release. I'm going to look into it.

The latest release will run without SHFBROOT defined as an environment variable. In such cases, the tools will default to using the assembly location to locate the other tools and supporting files. You will need to add a property to the project to define SHFBROOT so that the targets file can find the build tasks though as noted in the linked topic above.

As you mentioned, this would only be useful for website builds although MS Help Viewer builds would work too as there are no external tool dependencies for them. Help 1 may work on development PCs since the Help 1 compiler seems to be there in most cases. That may not be true of build servers though. Help 2 is most likely out of the question since those components are unique to Visual Studio 2005/2008. However, since its an older format, it may not be in use much so may be a non-issue.

The other downside to not installing it using the guided installer is that there would be no Visual Studio integration via the NuGet package and you'd have to locate and run the standalone GUI from the downloaded package folder. If the primary goal is to run it for builds, they probably are not issues either.

Eric

New Post: Is SHFB portable?

New Post: HHC.exe: Тhere is not enough memory available for this task. Quit one or more programs to increase available memory, and then try again.

$
0
0
Hi,

I am attempting to build my documentation containing over 1000 conceptual topics and over 70000 API reference topics. However, lately I am getting the following error in HHC.exe:

hhc.exe Тhere is not enough memory available for this task. Quit one or more programs to increase available memory, and then try again. Here is log where the process ends:
 Warn: ResolveReferenceLinksComponent2: [T:ClassA] Unknown reference link target 'T:ClassB'.
  Info: Processed 96006 topic(s)
  Info: 12977 warning(s)
  Diagnostic: CopyFromIndexComponent: "reflection" in-memory cache entries used: 15 of 15.
  Diagnostic: CopyFromIndexComponent: "comments" in-memory cache entries used: 27 of 30.
    Last step completed in 01:00:53.3012
-------------------------------
Combining conceptual and API intermediate TOC files...

Clearing any prior web output
    Last step completed in 00:00:24.9750
-------------------------------
Extracting HTML info for HTML Help 1 and/or website...
[C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe]
Sandcastle Help File Builder, version 1.9.7.0
Copyright c 2006-2013, Eric Woodruff, All Rights Reserved
E-Mail: Eric@EWoodruff.us

Using LCID '1033', code page '65001', encoding charset 'UTF-8'.

Processing Help 1 files in D:\Tmp\Working\Output\HtmlHelp1
Processed 97499 HTML files
Sorting keywords and generating See Also indices
Saving HTML Help 1 keyword index to D:\Tmp\Working\documentation.hhk
Saving HTML Help 1 table of contents to D:\Tmp\Working\documentation.hhc

Processing website files in D:\Tmp\Working\Output\Website
Processed 97499 HTML files
Sorting keywords and generating See Also indices
Saving website keyword index to D:\Tmp\Working\WebKI.xml
Saving website table of contents to D:\Tmp\Working\WebTOC.xml
    Last step completed in 00:09:08.9014
-------------------------------
Generating HTML Help 1 table of contents file...
    Last step completed in 00:00:00.0010
-------------------------------
Generating HTML Help 1 index file...
    Last step completed in 00:00:00.0005
-------------------------------
Generating HTML Help 1 project file...
    Last step completed in 00:00:00.5189
-------------------------------
Compiling HTML Help 1 file...
[C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe]
D:\Tmp\Working\Build1xHelpFile.proj(41,5): error MSB6006: "HHC.EXE" exited with code 0.
    Last step completed in 00:18:05.1710
-------------------------------

SHFB: Error BE0043: Unexpected error detected in last build step.  See output above for details.

New Post: problem when implementing an interface located in a different assembly

$
0
0
Hi all,

I have a problem to apply <inheritdoc/> to members of a class (named HeatTransitionCoefficientCalculatorHxSingleRow) implementing members of an interface (named IHeatTransitionCoefficientCalculator) residing in a different assembly. Both projects (one containing the implementing class, the other containing the interface to implement) are added to the SHFB project.
When building the SHFB project problems finding appropriate comments are indicated:
SHFB: Warning GID0004: No comments found for member "M:ECS....Simulation.HeatTransitionCoefficientCalculatorHxSingleRow.CalculateKaFromHeatFlow (...)".

The XML file for the assembly containing the implementing class (ECS.....Simulation.xml) shows that the comments are subject to inheritance:
<member name="M:ECS.....Simulation.HeatTransitionCoefficientCalculatorHxSingleRow.CalculateKaFromHeatFlow(..)">
            <inheritdoc/>
        </member>   
The XML file for the assembly containing the interface to implement (ECS.....Interfaces.xml) contains the comments to be inherited:
-<member name="M:ECS.....Interfaces.SimulationMethods.IHeatTransitionCoefficientCalculator.CalculateKaFromHeatFlow(...)">
<summary> Calculates the heat transition coefficient 'k' from a given heat flow. </summary>
...
<returns>The heat transition coefficient 'k' [W/m²/K].</returns>
</member>
A closer look at the reflection.xml file reveals that the entry for method CalculateKaFromHeatFlow lacks the <implements> tag refering to the interface to implement (IHeatTransitionCoefficientCalculator):
<api id="M:ECS.....Simulation.HeatTransitionCoefficientCalculatorHxSingleRow.CalculateKaFromHeatFlow(...)">
      <topicdata group="api" />
      <apidata name="CalculateKaFromHeatFlow" group="member" subgroup="method" />
      <memberdata visibility="public" />
      <proceduredata virtual="true" final="true" />
      <parameters>
        ...
      </parameters>
      <returns>
        <type api="T:Units.HeatTransitionCoefficient" ref="false" />
      </returns>
      <containers>
        <library assembly="ECS.....Simulation" module="ECS.....Simulation" kind="DynamicallyLinkedLibrary">
          <assemblydata version="10.1" />
          <noAptca />
        </library>
        <namespace api="N:ECS.....Simulation" />
        <type api="T:ECS.....Simulation.HeatTransitionCoefficientCalculatorHxSingleRow" ref="true" />
      </containers>
      <file name="bebff12b-4563-8631-95f9-25f0833a9784" />
    </api>
When I explicitely refer in the implementing class to the interface (e.g. <inheritdoc cref="IHeatTransitionCoefficientCalculator.CalculateKaFromHeatFlow") everthing is working as expected. It seems that somehow MREFBUILDER skips the dependency to the interface IHeatTransitionCoefficientCalculator.

Suggestions are appreciated.

Regards,
Mario

New Post: HHC.exe: Тhere is not enough memory available for this task. Quit one or more programs to increase available memory, and then try again.

$
0
0
Remember that the Help 1 compiler is a 32-bit process. You are most likely reaching the limits of its capabilities content-wise. The only real workarounds would be to split the help file up or switch to a different help file format if possible.

Eric

New Post: problem when implementing an interface located in a different assembly

$
0
0
Inherited documentation won't be found if you haven't included the XML comments file for the reference assembly in the project. You can add it directly or use the Additional Reference Links plug-in to supply both it and reference link info to suppress the "missing reference link" warnings that occur in the BuildAssembler step.

Eric

New Post: problem when implementing an interface located in a different assembly

$
0
0
Hello Eric,

thank you very much for the quick reply.

I think both XML comments files are included since both projects (the one containing the interface and the other containing the implementing class) have been added to the SHFB project.

This is excerpt of last build's log:
<?xml version="1.0" encoding="utf-8"?>
<shfbBuild product="Sandcastle Help File Builder" version="2014.5.31.0" projectFile="C:\entwickl\...-ts\Development\Main\ECS.NET\ECS.NET.Documentation\ECS.NET.Documentation.shfbproj" started="10.11.2014 15:07:51">
<buildStep step="Initializing">
Finding tools...
The Sandcastle tools are located in &#39;C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\&#39;
Locating components in the following folder(s):
   C:\entwickl\...-ts\Development\Main\ECS.NET\ECS.NET.Documentation
Using presentation style &#39;VS2013&#39; located in &#39;C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013&#39;
Loading and initializing plug-ins...
Lightweight Website Style Version 2014.5.31.0
Copyright &#169; 2006-2014, Eric Woodruff, All Rights Reserved
Portions Copyright &#169; 2014, Sam Harwell, All Rights Reserved
</buildStep>
<buildStep step="ValidatingDocumentationSources">
Validating and copying documentation source information
Source: C:\entwickl\...-ts\Development\Main\ECS.NET\ECS.....Interfaces\ECS.....Interfaces.csproj
    Found project &#39;C:\entwickl\...-ts\Development\Main\ECS.NET\ECS.....Interfaces\ECS.....Interfaces.csproj&#39;
Source: C:\entwickl\...-ts\Development\Main\ECS.NET\ECS.....Simulation\ECS.....Simulation.csproj
    Found project &#39;C:\entwickl\...-ts\Development\Main\ECS.NET\ECS.....Simulation\ECS.....Simulation.csproj&#39;
    ...

Parsing project files
    Found assembly &#39;C:\entwickl\...-ts\Development\Main\ECS.NET\ECS.....Interfaces\..\..\...\Win32\Debug\ECS.....Interfaces.dll&#39;
    Found assembly &#39;C:\entwickl\...-ts\Development\Main\ECS.NET\ECS.....Simulation\..\..\...\Win32\Debug\ECS.....Simulation.dll&#39;
    ...

References to include (excluding framework assemblies):
    ...

Copying XML comments files
    C:\entwickl\...-ts\Development\Main\ECS.NET\ECS.....Interfaces\..\..\...\Win32\Debug\ECS.....Interfaces.XML -&gt; C:\entwickl\...-ts\Development\Main\HelpFileLocal\Working\ECS.....Interfaces.XML
    C:\entwickl\...-ts\Development\Main\ECS.NET\ECS.....Simulation\..\..\...\Win32\Debug\ECS.....Simulation.XML -&gt; C:\entwickl\...-ts\Development\Main\HelpFileLocal\Working\ECS.....Simulation.XML
    ...
    
</buildStep>
<buildStep step="GenerateSharedContent">
Generating shared content files (en-US, English (United States))...
<plugIn name="Lightweight Website Style" behavior="After" priority="1000">
</plugIn>    Last step completed in 00:00:00.0120
</buildStep>
<buildStep step="GenerateApiFilter">
Generating API filter for MRefBuilder...
    Last step completed in 00:00:00.0270
</buildStep>
<buildStep step="GenerateReflectionInfo">
Generating reflection information...
[C:\Program Files (x86)\MSBuild\12.0\bin\MSBuild.exe]
Der Buildvorgang wurde am 10.11.2014 15:07:54 gestartet.
Projekt &quot;C:\entwickl\...-ts\Development\Main\HelpFileLocal\Working\GenerateRefInfo.proj&quot; auf Knoten &quot;1&quot; (Standardziele).
PrepareForBuild:
  Das Verzeichnis &quot;obj\Debug\&quot; wird erstellt.
GenerateRefInfo:
  MRefBuilder (v2014.5.31.0)
  Copyright &#184; 2006-2014, Microsoft Corporation, All Rights Reserved.
  Portions Copyright &#184; 2006-2014, Eric Woodruff, All Rights Reserved.
  Loaded 17 assemblies for reflection and 18 dependency assemblies.
  Wrote information on 38 namespaces, 436 types, and 2878 members
  Die Datei wird von &quot;reflection.org&quot; in &quot;reflection.all&quot; kopiert.
  XslTransform (v2014.5.31.0)
  Copyright &#184; 2006-2014, Microsoft Corporation, All Rights Reserved.
  Portions Copyright &#184; 2006-2014, Eric Woodruff, All Rights Reserved.
  Applying XSL transformation &#39;C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\ProductionTransforms\MergeDuplicates.xsl&#39;.
Die Erstellung von Projekt &quot;C:\entwickl\...-ts\Development\Main\HelpFileLocal\Working\GenerateRefInfo.proj&quot; ist abgeschlossen (Standardziele).

Der Buildvorgang wurde erfolgreich ausgefhrt.

Verstrichene Zeit 00:00:04.01
    Last step completed in 00:00:04.8160
</buildStep>
<buildStep step="TransformReflectionInfo">
Transforming reflection output...
[C:\Program Files (x86)\MSBuild\12.0\bin\MSBuild.exe]
Der Buildvorgang wurde am 10.11.2014 15:07:58 gestartet.
Projekt &quot;C:\entwickl\...-ts\Development\Main\HelpFileLocal\Working\TransformManifest.proj&quot; auf Knoten &quot;1&quot; (Standardziele).
TransformManifest:
  XslTransform (v2014.5.31.0)
  Copyright &#184; 2006-2014, Microsoft Corporation, All Rights Reserved.
  Portions Copyright &#184; 2006-2014, Eric Woodruff, All Rights Reserved.
  Applying XSL transformation &#39;C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\\ProductionTransforms\ApplyVSDocModel.xsl&#39;.
  Die Datei wird von &quot;reflection.xml&quot; in &quot;reflection.nofilenames&quot; kopiert.
  XslTransform (v2014.5.31.0)
  Copyright &#184; 2006-2014, Microsoft Corporation, All Rights Reserved.
  Portions Copyright &#184; 2006-2014, Eric Woodruff, All Rights Reserved.
  Applying XSL transformation &#39;C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\ProductionTransforms\AddFilenames.xsl&#39;.
  XslTransform (v2014.5.31.0)
  Copyright &#184; 2006-2014, Microsoft Corporation, All Rights Reserved.
  Portions Copyright &#184; 2006-2014, Eric Woodruff, All Rights Reserved.
  Applying XSL transformation &#39;C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\ProductionTransforms\ReflectionToManifest.xsl&#39;.
Die Erstellung von Projekt &quot;C:\entwickl\...-ts\Development\Main\HelpFileLocal\Working\TransformManifest.proj&quot; ist abgeschlossen (Standardziele).

Der Buildvorgang wurde erfolgreich ausgefhrt.

Verstrichene Zeit 00:00:06.96
    Last step completed in 00:00:08.9200
</buildStep>
<buildStep step="GenerateNamespaceSummaries">
Generating namespace summary information...
    Last step completed in 00:00:00.0900
</buildStep>
<buildStep step="GenerateInheritedDocumentation">
Generating inherited documentation...
[C:\Program Files (x86)\MSBuild\12.0\bin\MSBuild.exe]
Sandcastle Help File Builder, version 2014.5.31.0
Copyright &#184; 2006-2014, Eric Woodruff, All Rights Reserved
E-Mail: Eric@EWoodruff.us

Reflection information will be retrieved from &#39;reflection.xml&#39;
Inherited documentation will be written to &#39;_InheritedDocs_.xml&#39;
Indexing C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\*.xml
Indexing C:\entwickl\...-ts\Development\Main\HelpFileLocal\Working\ECS.....Interfaces.XML
Indexing C:\entwickl\...-ts\Development\Main\HelpFileLocal\Working\ECS.....Simulation.XML
...
Indexed 158858 members in 136 file(s).  17 file(s) to scan for &lt;inheritdoc /&gt; tags.
Merging inherited documentation...

SHFB: Warning GID0004: No comments found for member &#39;M:ECS.....Simulation.HeatTransitionCoefficientCalculatorHxSingleRow.CalculateKaFromHeatFlow(Units.Area,Units.HeatCapacityFlow,Units.HeatCapacityFlow,Units.TemperatureDifference,Units.Power)&#39;
SHFB: Warning GID0004: No comments found for member &#39;M:ECS.....Simulation.HeatTransitionCoefficientCalculatorHxSingleRow.CalculateKaFromNusseltNumber(System.Double,Units.Length,Units.ThermalConductivity)&#39;
SHFB: Warning GID0004: No comments found for member &#39;M:ECS.....Simulation.HeatTransitionCoefficientCalculatorHxSingleRow.CalculateNusseltNumberFromKa(Units.HeatTransitionCoefficient,Units.Length,Units.ThermalConductivity)&#39;
SHFB: Warning GID0004: No comments found for member &#39;M:ECS.....Simulation.HeatTransitionCoefficientCalculatorHxSingleRow.CalculatePhi(Units.HeatCapacityFlow,Units.HeatCapacityFlow,Units.HeatTransitionCoefficient,Units.Area)&#39;
...
Am I getting something wrong?

Kind regards,
Mario

New Post: problem when implementing an interface located in a different assembly

$
0
0
If you can send me an example that demonstrates the problem, I'll look into it. My e-mail address is in the footer of the pages in the help file.

Eric

New Post: Build on teamCity

$
0
0
Hi Kav_it,
I just installed SHFB in my teamcity build server. I have only one agent and I am new to teamcity. How can add environment varaible of SHFB to teamcity where should i add that path ? You have shared the screenshot (http://screencast.com/t/i1yNQkothU), can you help me how to add that path to teamcity build agent. Thanks in advance.

Created Unassigned: PCL 4.6 - Universal (WP8.1+W8.1) Ignores output directory [35672]

$
0
0
When creating a build in TFS, .NET projects build fine with no extra configuration.

For Universal class libraries targeting Windows Phone 8.1 and Windows 8.1, the output directory TFS uses is ignored when Sandcastle is searching for the project's dll. Sandcastle seems to be looking in the output directory defined in the project's build properties.

Created Unassigned: PCL 4.6 - Universal (WP8.1+W8.1) Runtime references are needed [35673]

$
0
0
When building a Universal class library targeting Windows Phone 8.1 and Windows 8.1, Sandcastle needs a reference to Windows.winmd as well as System.Runtime.WindowsRuntime.dll.

When adding the System.Runtime.WindowsRuntime.dll reference, you are given a warning that it isn't targeting the correct platform. If you just accept this error message, everything works.

In order for a TFS build to recognize these references, they must exist in the same location on the build machine. Hence, it is a better practice to include runtime the libraries with your source control (admittedly embarrassing).

New Post: Build on teamCity

$
0
0
Hi.
In fact, this path is not needed in the settings TeamCity.
When installing SHFB the prescribed path in system variables (http://screencast.com/t/q8zWvsb6JSOM)

Works for me.
  1. Created project SharpLib.Documentation.shfbproj which is configured generate a chm (http://screencast.com/t/y81UwBektb)
  2. Created a project in Visual Studio Solution that contains one SHFB project. This sln created to run from TeamCity (http://screencast.com/t/GISQ54O2Ueo)
  3. Configure TeamCity shown in the figure (http://screencast.com/t/LnbYlg2CfYH3)
  4. Results: http://screencast.com/t/q74GvXRDB2Rt

New Post: Build on teamCity

Commented Unassigned: PCL 4.6 - Universal (WP8.1+W8.1) Runtime references are needed [35673]

$
0
0
When building a Universal class library targeting Windows Phone 8.1 and Windows 8.1, Sandcastle needs a reference to Windows.winmd as well as System.Runtime.WindowsRuntime.dll.

When adding the System.Runtime.WindowsRuntime.dll reference, you are given a warning that it isn't targeting the correct platform. If you just accept this error message, everything works.

In order for a TFS build to recognize these references, they must exist in the same location on the build machine. Hence, it is a better practice to include runtime the libraries with your source control (admittedly embarrassing).
Comments: ** Comment from web user: EWoodruff **

I haven't done and universal app development. Please attach an example that demonstrates the problem.

Created Unassigned: Namespace Summaries editor doesn't handle s correctly when inside Visual Studio [35675]

$
0
0
I have a help project where I've added at the end:

<Import Project="..\build-support\sign-help.targets" />

The referenced file sets up targets that build a cab file from the Help Viewer output, and then use signtool to add an authenticode signature to that cab file.

This works just fine when building the project, or when editing the project in the standalone GUI.

However, when I click the Namespace Summaries button when in the project properties from within Visual Studio 2013, an error is shown: "Unable to build project to obtain API information. Error: The imported project 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\build-support\sign-help.targets' was not found.".
After that, the summaries dialog appears, but doesn't progress beyond "Loading namespaces...".

It looks like MSBuild is being used in a wrong location/context.
What's especially odd is that adjusting the <Import> to explicitly use Project="$(MSBuildThisFileDirectory)..\build-support\sign-help.targets" (which should be semantically identical) has no effect.

Closed Unassigned: Namespace Summaries editor doesn't handle s correctly when inside Visual Studio [35675]

$
0
0
I have a help project where I've added at the end:

<Import Project="..\build-support\sign-help.targets" />

The referenced file sets up targets that build a cab file from the Help Viewer output, and then use signtool to add an authenticode signature to that cab file.

This works just fine when building the project, or when editing the project in the standalone GUI.

However, when I click the Namespace Summaries button when in the project properties from within Visual Studio 2013, an error is shown: "Unable to build project to obtain API information. Error: The imported project 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\build-support\sign-help.targets' was not found.".
After that, the summaries dialog appears, but doesn't progress beyond "Loading namespaces...".

It looks like MSBuild is being used in a wrong location/context.
What's especially odd is that adjusting the <Import> to explicitly use Project="$(MSBuildThisFileDirectory)..\build-support\sign-help.targets" (which should be semantically identical) has no effect.
Comments: Partial builds use a clone of the project which unfortunately doesn't get copies of all the global variables or special ones like MSBuildThisFileDirectory. The workaround is to make the Import conditional so that it isn't evaluated if the folder variable is empty:

```

```

Commented Unassigned: Namespace Summaries editor doesn't handle s correctly when inside Visual Studio [35675]

$
0
0
I have a help project where I've added at the end:

<Import Project="..\build-support\sign-help.targets" />

The referenced file sets up targets that build a cab file from the Help Viewer output, and then use signtool to add an authenticode signature to that cab file.

This works just fine when building the project, or when editing the project in the standalone GUI.

However, when I click the Namespace Summaries button when in the project properties from within Visual Studio 2013, an error is shown: "Unable to build project to obtain API information. Error: The imported project 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\build-support\sign-help.targets' was not found.".
After that, the summaries dialog appears, but doesn't progress beyond "Loading namespaces...".

It looks like MSBuild is being used in a wrong location/context.
What's especially odd is that adjusting the <Import> to explicitly use Project="$(MSBuildThisFileDirectory)..\build-support\sign-help.targets" (which should be semantically identical) has no effect.
Comments: ** Comment from web user: EWoodruff **

Trying again:

```
<Import Condition=" '$(MSBuildThisFileDirectory)' != '' " Project="$(MSBuildThisFileDirectory)\..\build-support\sign-help.targets" />
```

Commented Unassigned: PCL 4.6 - Universal (WP8.1+W8.1) Ignores output directory [35672]

$
0
0
When creating a build in TFS, .NET projects build fine with no extra configuration.

For Universal class libraries targeting Windows Phone 8.1 and Windows 8.1, the output directory TFS uses is ignored when Sandcastle is searching for the project's dll. Sandcastle seems to be looking in the output directory defined in the project's build properties.
Comments: ** Comment from web user: EWoodruff **

As long as OutDir is defined and passed to the SHFB project it should work. This isn't something I can test or debug since I don't have TFS with which to try and duplicate the problem. The best I can do is point you at the topic with info that others have put together and submitted: http://www.ewoodruff.us/shfbdocs/html/ec822059-b179-4add-984d-485580050ffb.htm

New Post: Multiple projects website TOC

$
0
0
Only the first (in alphabetical order) project/xml is shown in the Websites TOC when adding several projects/xml to "Documentation Sources". However when I build a "HTML Help 1" file, all projects/xml in the current SHFB project are shown in the TOC.

The generated WebTOC.xml seems to include all the projects/xml in a correct way and all the html files for the projects/xml are generated in the html folder but only the first projct/xml is shown in the index.html TOC.

New Post: Multiple projects website TOC

$
0
0
Expand the root node of the TOC. It's collapsed by default in the current release unless you include at least one conceptual topic. It's fixed in the next release due out soon.

Eric
Viewing all 2184 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>