-
Notifications
You must be signed in to change notification settings - Fork 122
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
2d4b3ae
commit f29f91a
Showing
1,124 changed files
with
141,892 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
bin | ||
obj | ||
*.suo | ||
*.user | ||
*.nupkg | ||
.vs/ | ||
/packages/ | ||
/artifacts/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
|
||
Microsoft Visual Studio Solution File, Format Version 12.00 | ||
# Visual Studio 15 | ||
VisualStudioVersion = 15.0.26403.7 | ||
MinimumVisualStudioVersion = 10.0.40219.1 | ||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{202CAAE3-4937-4BE3-96E8-C16BF9C216F6}" | ||
ProjectSection(SolutionItems) = preProject | ||
build-packages.cmd = build-packages.cmd | ||
build-vsextension.cmd = build-vsextension.cmd | ||
NuGet.config = NuGet.config | ||
EndProjectSection | ||
EndProject | ||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2FB55188-2625-4A89-8642-83C18FA2A362}" | ||
EndProject | ||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AngleSharp.Core", "src\AngleSharp\AngleSharp.Core.csproj", "{BDA631DD-1D91-4A8E-A0E8-714AF1CB69BC}" | ||
EndProject | ||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blazor.Compiler", "src\Blazor.Compiler\Blazor.Compiler.csproj", "{D5C89E78-4492-4EB8-9F1F-A015F8568BD3}" | ||
EndProject | ||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blazor.Host", "src\Blazor.Host\Blazor.Host.csproj", "{B8F27AEA-E7B2-4645-B9DA-C603DA55D7D8}" | ||
EndProject | ||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blazor.Runtime", "src\Blazor.Runtime\Blazor.Runtime.csproj", "{7BACABC2-CDF1-4ACA-8C6F-2A94A8E61DC0}" | ||
EndProject | ||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DNA", "DNA", "{0FCBC715-108E-49BA-A5C6-CF21D22874B1}" | ||
EndProject | ||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "corlib", "src\DNA\corlib\corlib.csproj", "{C8506C7D-2026-46A6-80CB-7AC11A19F053}" | ||
EndProject | ||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "template", "template", "{EAD66C22-40EE-43C6-B0C3-B1A6B13DD5A3}" | ||
EndProject | ||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyApplication", "template\MyApplication\MyApplication.csproj", "{C2B140E5-384F-4304-8870-0E3D4682A846}" | ||
EndProject | ||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Blazor.VSExtension", "src\Blazor.VSExtension\Blazor.VSExtension.csproj", "{315CDAF0-09E2-46B6-BF9A-600E9E987F05}" | ||
EndProject | ||
Global | ||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
Debug|Any CPU = Debug|Any CPU | ||
LocalTest|Any CPU = LocalTest|Any CPU | ||
Release|Any CPU = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
{BDA631DD-1D91-4A8E-A0E8-714AF1CB69BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{BDA631DD-1D91-4A8E-A0E8-714AF1CB69BC}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{BDA631DD-1D91-4A8E-A0E8-714AF1CB69BC}.LocalTest|Any CPU.ActiveCfg = Debug|Any CPU | ||
{BDA631DD-1D91-4A8E-A0E8-714AF1CB69BC}.LocalTest|Any CPU.Build.0 = Debug|Any CPU | ||
{BDA631DD-1D91-4A8E-A0E8-714AF1CB69BC}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{BDA631DD-1D91-4A8E-A0E8-714AF1CB69BC}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{D5C89E78-4492-4EB8-9F1F-A015F8568BD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{D5C89E78-4492-4EB8-9F1F-A015F8568BD3}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{D5C89E78-4492-4EB8-9F1F-A015F8568BD3}.LocalTest|Any CPU.ActiveCfg = Debug|Any CPU | ||
{D5C89E78-4492-4EB8-9F1F-A015F8568BD3}.LocalTest|Any CPU.Build.0 = Debug|Any CPU | ||
{D5C89E78-4492-4EB8-9F1F-A015F8568BD3}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{D5C89E78-4492-4EB8-9F1F-A015F8568BD3}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{B8F27AEA-E7B2-4645-B9DA-C603DA55D7D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{B8F27AEA-E7B2-4645-B9DA-C603DA55D7D8}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{B8F27AEA-E7B2-4645-B9DA-C603DA55D7D8}.LocalTest|Any CPU.ActiveCfg = Debug|Any CPU | ||
{B8F27AEA-E7B2-4645-B9DA-C603DA55D7D8}.LocalTest|Any CPU.Build.0 = Debug|Any CPU | ||
{B8F27AEA-E7B2-4645-B9DA-C603DA55D7D8}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{B8F27AEA-E7B2-4645-B9DA-C603DA55D7D8}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{7BACABC2-CDF1-4ACA-8C6F-2A94A8E61DC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{7BACABC2-CDF1-4ACA-8C6F-2A94A8E61DC0}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{7BACABC2-CDF1-4ACA-8C6F-2A94A8E61DC0}.LocalTest|Any CPU.ActiveCfg = Debug|Any CPU | ||
{7BACABC2-CDF1-4ACA-8C6F-2A94A8E61DC0}.LocalTest|Any CPU.Build.0 = Debug|Any CPU | ||
{7BACABC2-CDF1-4ACA-8C6F-2A94A8E61DC0}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{7BACABC2-CDF1-4ACA-8C6F-2A94A8E61DC0}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{C8506C7D-2026-46A6-80CB-7AC11A19F053}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{C8506C7D-2026-46A6-80CB-7AC11A19F053}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{C8506C7D-2026-46A6-80CB-7AC11A19F053}.LocalTest|Any CPU.ActiveCfg = LocalTest|Any CPU | ||
{C8506C7D-2026-46A6-80CB-7AC11A19F053}.LocalTest|Any CPU.Build.0 = LocalTest|Any CPU | ||
{C8506C7D-2026-46A6-80CB-7AC11A19F053}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{C8506C7D-2026-46A6-80CB-7AC11A19F053}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{C2B140E5-384F-4304-8870-0E3D4682A846}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{C2B140E5-384F-4304-8870-0E3D4682A846}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{C2B140E5-384F-4304-8870-0E3D4682A846}.LocalTest|Any CPU.ActiveCfg = Debug|Any CPU | ||
{C2B140E5-384F-4304-8870-0E3D4682A846}.LocalTest|Any CPU.Build.0 = Debug|Any CPU | ||
{C2B140E5-384F-4304-8870-0E3D4682A846}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{C2B140E5-384F-4304-8870-0E3D4682A846}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{315CDAF0-09E2-46B6-BF9A-600E9E987F05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{315CDAF0-09E2-46B6-BF9A-600E9E987F05}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{315CDAF0-09E2-46B6-BF9A-600E9E987F05}.LocalTest|Any CPU.ActiveCfg = Release|Any CPU | ||
{315CDAF0-09E2-46B6-BF9A-600E9E987F05}.LocalTest|Any CPU.Build.0 = Release|Any CPU | ||
{315CDAF0-09E2-46B6-BF9A-600E9E987F05}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{315CDAF0-09E2-46B6-BF9A-600E9E987F05}.Release|Any CPU.Build.0 = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(SolutionProperties) = preSolution | ||
HideSolutionNode = FALSE | ||
EndGlobalSection | ||
GlobalSection(NestedProjects) = preSolution | ||
{BDA631DD-1D91-4A8E-A0E8-714AF1CB69BC} = {2FB55188-2625-4A89-8642-83C18FA2A362} | ||
{D5C89E78-4492-4EB8-9F1F-A015F8568BD3} = {2FB55188-2625-4A89-8642-83C18FA2A362} | ||
{B8F27AEA-E7B2-4645-B9DA-C603DA55D7D8} = {2FB55188-2625-4A89-8642-83C18FA2A362} | ||
{7BACABC2-CDF1-4ACA-8C6F-2A94A8E61DC0} = {2FB55188-2625-4A89-8642-83C18FA2A362} | ||
{0FCBC715-108E-49BA-A5C6-CF21D22874B1} = {2FB55188-2625-4A89-8642-83C18FA2A362} | ||
{C8506C7D-2026-46A6-80CB-7AC11A19F053} = {0FCBC715-108E-49BA-A5C6-CF21D22874B1} | ||
{C2B140E5-384F-4304-8870-0E3D4682A846} = {EAD66C22-40EE-43C6-B0C3-B1A6B13DD5A3} | ||
{315CDAF0-09E2-46B6-BF9A-600E9E987F05} = {2FB55188-2625-4A89-8642-83C18FA2A362} | ||
EndGlobalSection | ||
EndGlobal |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<configuration> | ||
<packageSources> | ||
<add key="SolutionArtifacts" value="./artifacts" /> | ||
<add key="AspNetCore" value="https://dotnet.myget.org/F/aspnetcore-ci-dev/api/v3/index.json" /> | ||
<add key="AspNetCoreTools" value="https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json" /> | ||
<add key="NuGet" value="https://api.nuget.org/v3/index.json" /> | ||
</packageSources> | ||
</configuration> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
@echo off | ||
|
||
@rem -- Building corlib using .NETFramework/mono tools (not .NET Core) because it needs to use NoStdLib option, and | ||
@rem -- I haven't figured out how to configure the equivalent to that with .NET Core build tools. | ||
SET msbuildExePath="C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" | ||
%msbuildExePath% src\DNA\corlib\corlib.csproj | ||
|
||
@rem -- Other projects have to be built in a specific order, because they mostly consume each other via package | ||
@rem -- references rather than project references. This is necessary because regular project references aren't | ||
@rem -- included transitively for things shipped as packages (i.e., it's not clear what the .NET Core MSBuild | ||
@rem -- equivalent to IncludeReferencedProjects is), and also because the template app can only obtain the | ||
@rem -- dotnet custom tool and MSBuild targets by consuming the framework projects as actual packages. | ||
@rem -- | ||
@rem -- Unfortunately this also means that whenever you edit and rebuild a framework project, you have to manually | ||
@rem -- "dotnet restore" in any other projects that consume it. | ||
for %%s in ( | ||
"src\AngleSharp" | ||
"src\Blazor.Runtime" | ||
"src\Blazor.Compiler" | ||
"src\Blazor.Host" | ||
"template\MyApplication" | ||
) do ( | ||
dotnet restore %%s | ||
if ERRORLEVEL 1 goto :fail | ||
|
||
dotnet build %%s | ||
if ERRORLEVEL 1 goto :fail | ||
) | ||
|
||
:done | ||
@echo --- | ||
@echo Build succeeded | ||
@exit /b 0 | ||
|
||
:fail | ||
@echo --- | ||
@echo Build failed | ||
@exit /b %ERRORLEVEL% |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
@echo off | ||
|
||
rem It's important to clean the template dir first, otherwise we'll include things like bin and obj in the template | ||
git clean -xdf .\template | ||
|
||
rem Restore NuGet packages for SideWaffle so it can build the template | ||
build\nuget.exe restore src\Blazor.VSExtension\ -SolutionDirectory . | ||
|
||
rem Replace launchSettings.json (which VS keeps editing) with sw-launchSettings.json (which remains clean) | ||
rem Note that file whose name starts "sw-" are automatically omitted from the project template | ||
copy /y .\template\MyApplication\Properties\sw-launchSettings.json .\template\MyApplication\Properties\launchSettings.json | ||
|
||
rem Actually build the VSIX | ||
SET msbuildExePath="C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" | ||
%msbuildExePath% src\Blazor.VSExtension\Blazor.VSExtension.csproj | ||
|
||
rem Move launchSettings.json back to clean state | ||
git checkout .\template\MyApplication\Properties\launchSettings.json |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
<PropertyGroup> | ||
<OutputType>Library</OutputType> | ||
<AppDesignerFolder>Properties</AppDesignerFolder> | ||
<RootNamespace>AngleSharp</RootNamespace> | ||
<AssemblyName>AngleSharp</AssemblyName> | ||
<TargetFramework>netstandard1.3</TargetFramework> | ||
|
||
<AssemblyName>Blazor.AngleSharp</AssemblyName> | ||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | ||
<PackageOutputPath>$(MSBuildThisFileDirectory)..\..\artifacts\</PackageOutputPath> | ||
<VersionPrefix>0.1.0</VersionPrefix> | ||
<VersionSuffix>build$([System.DateTime]::Now.ToString('yyyyMMdd-HHmmss'))</VersionSuffix> | ||
</PropertyGroup> | ||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. | ||
Other similar extension points exist, see Microsoft.Common.targets. | ||
<Target Name="BeforeBuild"> | ||
</Target> | ||
<Target Name="AfterBuild"> | ||
</Target> | ||
--> | ||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
namespace AngleSharp.Attributes | ||
{ | ||
using System; | ||
|
||
/// <summary> | ||
/// The various DOM object accessor types. | ||
/// </summary> | ||
[Flags] | ||
public enum Accessors : byte | ||
{ | ||
/// <summary> | ||
/// Specifies that the property does not have any special meaning. | ||
/// </summary> | ||
None = 0x0, | ||
/// <summary> | ||
/// Specifies that the property or method should be handled as a getter. | ||
/// </summary> | ||
Getter = 0x1, | ||
/// <summary> | ||
/// Specifies that the property or method should be handled as a setter. | ||
/// </summary> | ||
Setter = 0x2, | ||
/// <summary> | ||
/// Specifies that the property or method should be handled by delete. | ||
/// </summary> | ||
Deleter = 0x4 | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
namespace AngleSharp.Attributes | ||
{ | ||
using System; | ||
|
||
/// <summary> | ||
/// This attribute decorates official DOM objects as specified by the W3C. | ||
/// You could use it to check if the given property or method should be | ||
/// placed on special locations, e.g. as a getter, setter or handled by a | ||
/// delete call. | ||
/// </summary> | ||
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Method)] | ||
public sealed class DomAccessorAttribute : Attribute | ||
{ | ||
/// <summary> | ||
/// Creates a new DomAccessorAttribute. | ||
/// </summary> | ||
/// <param name="type"> | ||
/// The type of accessors to apply. | ||
/// </param> | ||
public DomAccessorAttribute(Accessors type) | ||
{ | ||
Type = type; | ||
} | ||
|
||
/// <summary> | ||
/// Gets the accessor types for the given property or method. | ||
/// </summary> | ||
public Accessors Type | ||
{ | ||
get; | ||
private set; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
namespace AngleSharp.Attributes | ||
{ | ||
using System; | ||
|
||
/// <summary> | ||
/// This attribute is used to mark a constructor as being | ||
/// accessible from scripts. | ||
/// </summary> | ||
[AttributeUsage(AttributeTargets.Constructor, Inherited = false)] | ||
public sealed class DomConstructorAttribute : Attribute | ||
{ | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
namespace AngleSharp.Attributes | ||
{ | ||
using System; | ||
|
||
/// <summary> | ||
/// This attribute is used to place a description on some object. | ||
/// The description can then be read out at runtime. | ||
/// </summary> | ||
[AttributeUsage( | ||
AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface | | ||
AttributeTargets.Property | AttributeTargets.Event | AttributeTargets.Method | | ||
AttributeTargets.Field | AttributeTargets.Delegate, | ||
AllowMultiple = true, Inherited = false)] | ||
public sealed class DomDescriptionAttribute : Attribute | ||
{ | ||
/// <summary> | ||
/// Creates a new DomDescriptionAttribute. | ||
/// </summary> | ||
/// <param name="description"> | ||
/// The description of the decorated type or member. | ||
/// </param> | ||
public DomDescriptionAttribute(String description) | ||
{ | ||
Description = description; | ||
} | ||
|
||
/// <summary> | ||
/// Gets the official name of the given class, | ||
/// method or property. | ||
/// </summary> | ||
public String Description | ||
{ | ||
get; | ||
private set; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
namespace AngleSharp.Attributes | ||
{ | ||
using System; | ||
|
||
/// <summary> | ||
/// This attribute is used to determine the hosting interface. | ||
/// </summary> | ||
[AttributeUsage( | ||
AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Struct, | ||
AllowMultiple = true, Inherited = false)] | ||
public sealed class DomExposedAttribute : Attribute | ||
{ | ||
/// <summary> | ||
/// Creates a new DomExposedAttribute. | ||
/// </summary> | ||
/// <param name="target"> | ||
/// The official name of the target interface. | ||
/// </param> | ||
public DomExposedAttribute(String target) | ||
{ | ||
Target = target; | ||
} | ||
|
||
/// <summary> | ||
/// Gets the official name of the target interface. | ||
/// </summary> | ||
public String Target | ||
{ | ||
get; | ||
private set; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
namespace AngleSharp.Attributes | ||
{ | ||
using System; | ||
|
||
/// <summary> | ||
/// This attribute decorates official DOM objects that should no longer be | ||
/// used and are therefore considered deprecated. | ||
/// </summary> | ||
[AttributeUsage( | ||
AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface | | ||
AttributeTargets.Property | AttributeTargets.Event | AttributeTargets.Method | | ||
AttributeTargets.Field | AttributeTargets.Delegate)] | ||
public sealed class DomHistoricalAttribute : Attribute | ||
{ | ||
} | ||
} |
Oops, something went wrong.