From 527fdf9b4d60d2a50399a8fd65b2ccc3a67306d4 Mon Sep 17 00:00:00 2001
From: Nikolaj Brask-Nielsen
Date: Wed, 5 Jun 2024 15:53:16 +0200
Subject: [PATCH 1/9] feat: README
---
README.md | 25 ++-----------------------
1 file changed, 2 insertions(+), 23 deletions(-)
diff --git a/README.md b/README.md
index 7a684eed..82412381 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ The Nikcio.UHeadless package is compatible with the following Umbraco versions:
|----------------------|-----------------------|
| Umbraco 10 | v3.x.x |
| Umbraco 12 | v4.x.x |
-| Umbraco 13 | v4.2.x+ |
+| Umbraco 13 | v4.2.x+ & v5.x.x |
For more information, please refer to the [Versioning](#versioning) section.
@@ -86,27 +86,6 @@ With these configurations in place, your content will be available at `/graphql`
For detailed documentation and usage instructions, please refer to the [Nikcio.UHeadless Documentation](https://nikcio.github.io/Nikcio.UHeadless).
-## Extending Packages
-
-Nikcio.UHeadless offers various packages for extending its functionality. The following table lists the available packages and their current status:
-
-| Package Name | Status |
-| --------------------------------- | ------------ |
-| Nikcio.UHeadless.Content | Included* |
-| Nikcio.UHeadless.Media | Included* |
-| Nikcio.UHeadless.ContentTypes | Included* |
-| Nikcio.UHeadless.Members | Available |
-| Nikcio.UHeadless.DataTypes | Not started |
-| Nikcio.UHeadless.Dictionary | Not started |
-| Nikcio.UHeadless.MediaTypes | Not started |
-| Nikcio.UHeadless.MemberTypes | Not started |
-
-\***Included** indicates that the package is included in the Nikcio.UHeadless NuGet package.
-
-\*\***Preview** indicates that the package is available in a preview version.
-
-Please note that if a Nikcio.UHeadless.\* package is not listed above, it either means that the package is not ready for use or it is a core/base package used in the packages mentioned above.
-
## Versioning
Nikcio.UHeadless follows the principles of Semantic Versioning to ensure consistency. The version numbers have the following meaning:
@@ -127,7 +106,7 @@ vX.Y.Z
| Umbraco 10 | v2.x.x & v3.x.x | Only reported issues for v3.x.x |
| Umbraco 11 | v3.x.x & v4.x.x | No development |
| Umbraco 12 | v4.x.x | Only reported issues for v4.x.x |
-| Umbraco 13 | v4.2.x+ | Active branch |
+| Umbraco 13 | v4.2.x+ & v5.x.x | Active branch (v5.x.x) |
## Contributing
From 53a744693384f698621561cdcb3017be31687981 Mon Sep 17 00:00:00 2001
From: Nikolaj Brask-Nielsen
Date: Wed, 5 Jun 2024 16:28:18 +0200
Subject: [PATCH 2/9] feat: Added starter example
---
Nikcio.UHeadless.sln | 9 +-
.../Properties/launchSettings.json | 3 +-
examples/code-examples/appsettings.json | 1 -
.../umbraco/Data/code-examples.sqlite | Bin 2744320 -> 2744320 bytes
examples/starter-example/.gitignore | 479 +++
examples/starter-example/Program.cs | 67 +
.../Properties/launchSettings.json | 15 +
examples/starter-example/appsettings.json | 67 +
examples/starter-example/packages.lock.json | 3103 +++++++++++++++++
.../starter-example/starter-example.csproj | 31 +
.../umbraco/Data/starter-examples.sqlite | Bin 0 -> 4096 bytes
examples/starter-example/wwwroot/favicon.ico | Bin 0 -> 15406 bytes
.../Properties/launchSettings.json | 11 +-
.../appsettings.json | 1 -
.../umbraco/Data/Default-Tests.sqlite | Bin 2949120 -> 2965504 bytes
15 files changed, 3774 insertions(+), 13 deletions(-)
create mode 100644 examples/starter-example/.gitignore
create mode 100644 examples/starter-example/Program.cs
create mode 100644 examples/starter-example/Properties/launchSettings.json
create mode 100644 examples/starter-example/appsettings.json
create mode 100644 examples/starter-example/packages.lock.json
create mode 100644 examples/starter-example/starter-example.csproj
create mode 100644 examples/starter-example/umbraco/Data/starter-examples.sqlite
create mode 100644 examples/starter-example/wwwroot/favicon.ico
diff --git a/Nikcio.UHeadless.sln b/Nikcio.UHeadless.sln
index a5e52625..3317a3ae 100644
--- a/Nikcio.UHeadless.sln
+++ b/Nikcio.UHeadless.sln
@@ -21,7 +21,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nikcio.UHeadless.Integratio
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Examples", "Examples", "{35E640D8-E023-4EAE-8F6A-DA111530CFB7}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "code-examples", "examples\code-examples\code-examples.csproj", "{3A9D1882-B230-49DD-B0F3-0CE1134CE6D7}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "code-examples", "examples\code-examples\code-examples.csproj", "{3A9D1882-B230-49DD-B0F3-0CE1134CE6D7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "starter-example", "examples\starter-example\starter-example.csproj", "{3E7F0679-EBDD-4158-8AA5-CFDC7CDC4FF2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -53,6 +55,10 @@ Global
{3A9D1882-B230-49DD-B0F3-0CE1134CE6D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3A9D1882-B230-49DD-B0F3-0CE1134CE6D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3A9D1882-B230-49DD-B0F3-0CE1134CE6D7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3E7F0679-EBDD-4158-8AA5-CFDC7CDC4FF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3E7F0679-EBDD-4158-8AA5-CFDC7CDC4FF2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3E7F0679-EBDD-4158-8AA5-CFDC7CDC4FF2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3E7F0679-EBDD-4158-8AA5-CFDC7CDC4FF2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -62,6 +68,7 @@ Global
{AB38DFEA-A643-44A0-BFC1-B38B163C62C6} = {9E422C4D-CDA0-486D-8201-1C48E5DF758C}
{87F86EB5-6EE0-4E7A-9D1D-4732E050F772} = {9E422C4D-CDA0-486D-8201-1C48E5DF758C}
{3A9D1882-B230-49DD-B0F3-0CE1134CE6D7} = {35E640D8-E023-4EAE-8F6A-DA111530CFB7}
+ {3E7F0679-EBDD-4158-8AA5-CFDC7CDC4FF2} = {35E640D8-E023-4EAE-8F6A-DA111530CFB7}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {35FA3052-75A6-4E60-8C6B-1882EE08D1CD}
diff --git a/examples/code-examples/Properties/launchSettings.json b/examples/code-examples/Properties/launchSettings.json
index b58ecf87..0595898b 100644
--- a/examples/code-examples/Properties/launchSettings.json
+++ b/examples/code-examples/Properties/launchSettings.json
@@ -5,10 +5,11 @@
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
+ "launchUrl": "umbraco",
"applicationUrl": "https://localhost:44371;http://localhost:11129",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
- }
+ }
}
}
}
diff --git a/examples/code-examples/appsettings.json b/examples/code-examples/appsettings.json
index 91948f8c..da9e743c 100644
--- a/examples/code-examples/appsettings.json
+++ b/examples/code-examples/appsettings.json
@@ -26,7 +26,6 @@
"Global": {
"Id": "d173c8c2-e412-4a6a-960f-5feeed9a4189",
"SanitizeTinyMce": true,
- "MainDomLock": "SqlMainDomLock",
"UseHttps": true,
"InstallMissingDatabase": true
},
diff --git a/examples/code-examples/umbraco/Data/code-examples.sqlite b/examples/code-examples/umbraco/Data/code-examples.sqlite
index 7bb9084d8e323fbe8a69295e439abb6bd187d75c..6310e0ad32b0181be8e503cff194ba66360ad97a 100644
GIT binary patch
delta 467
zcmXBPy-OTH7zS|ncFx_M*_pjF7w^OK`}~+Ck@G~O!WwN-D0rM82v;lQ(&Qfq2o~2U
zm_T;GXkjG?f`PyYCn%;$7459Fu`r~GjfF_`Iep<*yzuZoyvxTs#xm@G4Ge!J460#Z
zKm<%65QRptbQstlzli(S;!^C2pPu8r;`cgnYX9Nl;d%b=kp`pvp~^07%`TkVQkoYV
zET&cwulnpC8DN6oy9Mj4e8(Jfn&ew6#hD3JhG}Ai#qd#GwgZKmuMuGbAAeX~;ke
zWTAeq4cegtI-v`?AqPFs3w_Y9X&~?BOrIr{wJuA96=C^R*P}?V6cRE>u@v9pOYUFyhx^HW
i=X&g%ZLV
delta 488
zcmXBQ&r1|x9LMpU*;!}yndf=NA8WaqKhv6lMjmHp*BxOh5Jd`HHVA}HyX`LIsed3)
zI_yO#h4z7d96AL-U=Tc^V1Xy`VBI>|)##vJ3<9gq(idK*FW>j!yYl&swgQ{aV$FTr
zikq!i109lJKngm*RIS*0xWUhT{+++&yH47<#?Dpdi}izX_V@q%d1oZj!%h3pQubl`
ztemAw3DerwoppA~Z}E?;W$n`=x@7OE_nq2AO5MnlwWQG`R!SZe$(lOIlM}r+jAo|9
zWKaykq6k?j@nm)I?yMYLBnxv
+ {
+ options.AddAuth(new()
+ {
+ ApiKey = builder.Configuration.GetValue("UHeadless:ApiKey") ?? throw new InvalidOperationException("No value for UHeadless:ApiKey was found"),
+ Secret = builder.Configuration.GetValue("UHeadless:Secret") ?? throw new InvalidOperationException("No value for UHeadless:Secret was found"),
+ });
+
+ options.AddDefaults();
+
+ options.AddQuery();
+ })
+ .Build();
+
+WebApplication app = builder.Build();
+
+await app.BootUmbracoAsync().ConfigureAwait(false);
+
+app.UseAuthentication();
+app.UseAuthorization();
+
+GraphQLEndpointConventionBuilder graphQLEndpointBuilder = app.MapUHeadless();
+
+// Only enable the GraphQL IDE in development
+if (!builder.Environment.IsDevelopment())
+{
+ graphQLEndpointBuilder.WithOptions(new GraphQLServerOptions()
+ {
+ Tool =
+ {
+ Enable = false,
+ }
+ });
+}
+
+app.UseUmbraco()
+ .WithMiddleware(u =>
+ {
+ u.UseBackOffice();
+ })
+ .WithEndpoints(u =>
+ {
+ u.UseInstallerEndpoints();
+ u.UseBackOfficeEndpoints();
+ });
+
+await app.RunAsync().ConfigureAwait(false);
diff --git a/examples/starter-example/Properties/launchSettings.json b/examples/starter-example/Properties/launchSettings.json
new file mode 100644
index 00000000..f88824ba
--- /dev/null
+++ b/examples/starter-example/Properties/launchSettings.json
@@ -0,0 +1,15 @@
+{
+ "$schema": "https://json.schemastore.org/launchsettings.json",
+ "profiles": {
+ "Umbraco.Web.UI": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "launchUrl": "umbraco",
+ "applicationUrl": "https://localhost:44368;http://localhost:23585",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/examples/starter-example/appsettings.json b/examples/starter-example/appsettings.json
new file mode 100644
index 00000000..977f3c20
--- /dev/null
+++ b/examples/starter-example/appsettings.json
@@ -0,0 +1,67 @@
+{
+ "$schema": "appsettings-schema.json",
+ "UHeadless": {
+ "ApiKey": "qLV$6eo5*2OBX9yGGz*BiQVnGlr778nDmy!GX60A@JwL1Ql&AFQRkru!#zW9XVTqF2zzc1O7Q4XIcwuMZDUDNrsfdy3gw5Ey7P@",
+ "Secret": "Q8PaVKvX4V%v&bD4DF%9VEc3Q%t7wIvS5#G8aZl8wlc!M2V@vo@AK6zH%cmDMTDBmx@SyxvsolYcqi^MND0l7DIKI@8XN*@^GFR"
+ },
+ "Serilog": {
+ "MinimumLevel": {
+ "Default": "Information"
+ },
+ "WriteTo": [
+ {
+ "Name": "Async",
+ "Args": {
+ "configure": [
+ {
+ "Name": "Console"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "ConnectionStrings": {
+ "umbracoDbDSN": "Data Source=|DataDirectory|/starter-examples.sqlite;Cache=Shared;Foreign Keys=True;Pooling=True",
+ "umbracoDbDSN_ProviderName": "Microsoft.Data.Sqlite"
+ },
+ "Umbraco": {
+ "CMS": {
+ "Global": {
+ "Id": "b68dba0e-21a3-486f-8d03-9cd56f6cbd4c",
+ "SanitizeTinyMce": true,
+ "UseHttps": true,
+ "InstallMissingDatabase": true
+ },
+ "Unattended": {
+ "InstallUnattended": true,
+ "UnattendedUserName": "test",
+ "UnattendedUserEmail": "test@uheadless.com",
+ "UnattendedUserPassword": "D@2#1*4E&Fs3tN#3mK6LFZAky^MlrC",
+ "UpgradeUnattended": true
+ },
+ "Content": {
+ "AllowEditInvariantFromNonDefault": true,
+ "ContentVersionCleanupPolicy": {
+ "EnableCleanup": true
+ }
+ },
+ "RuntimeMinification": {
+ "UseInMemoryCache": true,
+ "CacheBuster": "Timestamp"
+ },
+ "ModelsBuilder": {
+ "ModelsMode": "Nothing"
+ },
+ "Hosting": {
+ "Debug": true
+ }
+ }
+ },
+ "UrlTracker": {
+ "Pipeline": {
+ "Enable": true,
+ "EnableClientErrorTracking": true
+ }
+ }
+}
diff --git a/examples/starter-example/packages.lock.json b/examples/starter-example/packages.lock.json
new file mode 100644
index 00000000..d7317604
--- /dev/null
+++ b/examples/starter-example/packages.lock.json
@@ -0,0 +1,3103 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net8.0": {
+ "Microsoft.ICU.ICU4C.Runtime": {
+ "type": "Direct",
+ "requested": "[72.1.0.3, )",
+ "resolved": "72.1.0.3",
+ "contentHash": "Z42uzvs0TN9Y02xgHtRgPcumLRnvK3MHVHZ0Pr3OrnvyZYhBwqDgdYBOvoELcTsayUgwqrPLb+C5Fqqk66zlUg==",
+ "dependencies": {
+ "Microsoft.ICU.ICU4C.Runtime.linux-arm64": "72.1.0.3",
+ "Microsoft.ICU.ICU4C.Runtime.linux-x64": "72.1.0.3",
+ "Microsoft.ICU.ICU4C.Runtime.win-arm64": "72.1.0.3",
+ "Microsoft.ICU.ICU4C.Runtime.win-x64": "72.1.0.3",
+ "Microsoft.ICU.ICU4C.Runtime.win-x86": "72.1.0.3"
+ }
+ },
+ "Microsoft.VisualStudio.Threading.Analyzers": {
+ "type": "Direct",
+ "requested": "[17.10.48, )",
+ "resolved": "17.10.48",
+ "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ=="
+ },
+ "Umbraco.Cms": {
+ "type": "Direct",
+ "requested": "[13.3.2, )",
+ "resolved": "13.3.2",
+ "contentHash": "sioCUKRzdrVcKouhL9hiPDnDakGNomNEfyl/e9j+Cp7gcjy7JEHrBpM4BlYohXg/zFQTaCt8f9hbvgUxSEYODA==",
+ "dependencies": {
+ "Umbraco.Cms.Imaging.ImageSharp": "[13.3.2, 14.0.0)",
+ "Umbraco.Cms.Persistence.EFCore.SqlServer": "[13.3.2, 14.0.0)",
+ "Umbraco.Cms.Persistence.EFCore.Sqlite": "[13.3.2, 14.0.0)",
+ "Umbraco.Cms.Persistence.SqlServer": "[13.3.2, 14.0.0)",
+ "Umbraco.Cms.Persistence.Sqlite": "[13.3.2, 14.0.0)",
+ "Umbraco.Cms.Targets": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Asp.Versioning.Abstractions": {
+ "type": "Transitive",
+ "resolved": "7.0.0",
+ "contentHash": "yujGpbGBCViHvYiBJD0S5XFgOI+f5bGvi8tnfMJV6EC0b8SAqBn1YC+yCnJjQo3D2XP9TmSuKIJ7ofVy58GcuQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "7.0.0"
+ }
+ },
+ "Asp.Versioning.Http": {
+ "type": "Transitive",
+ "resolved": "7.1.0",
+ "contentHash": "Q1gPDssnFLeS3Avw/JABPzis4pjrG372RpFnB/9zp61hSuSf+Y+1O9twicNHDsmeWMkb/oNQo3vHgLr16jTdNw==",
+ "dependencies": {
+ "Asp.Versioning.Abstractions": "7.0.0"
+ }
+ },
+ "Asp.Versioning.Mvc": {
+ "type": "Transitive",
+ "resolved": "7.1.1",
+ "contentHash": "hnTDqNwUlawVTDtHu8EhWvEGe6U5K83NJ3Aqf2Tz2mWq5qndzvcGKPGyfv2LTHfSK5h/Qv/ru+ssr/u5GSzjFQ==",
+ "dependencies": {
+ "Asp.Versioning.Http": "7.1.0"
+ }
+ },
+ "Asp.Versioning.Mvc.ApiExplorer": {
+ "type": "Transitive",
+ "resolved": "7.1.0",
+ "contentHash": "SEqEAeOXH4bP5g5IzdRarmNCrUxbk4pu10zxu57hgnHop7mXikwoDshE1cI4ZcxN7soKLGw2qOgLjJTIim5fiw==",
+ "dependencies": {
+ "Asp.Versioning.Mvc": "7.1.0"
+ }
+ },
+ "Azure.Core": {
+ "type": "Transitive",
+ "resolved": "1.36.0",
+ "contentHash": "vwqFZdHS4dzPlI7FFRkPx9ctA+aGGeRev3gnzG8lntWvKMmBhAmulABi1O9CEvS3/jzYt7yA+0pqVdxkpAd7dQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.1",
+ "System.Diagnostics.DiagnosticSource": "6.0.1",
+ "System.Memory.Data": "1.0.2",
+ "System.Numerics.Vectors": "4.5.0",
+ "System.Text.Encodings.Web": "4.7.2",
+ "System.Text.Json": "4.7.2",
+ "System.Threading.Tasks.Extensions": "4.5.4"
+ }
+ },
+ "Azure.Identity": {
+ "type": "Transitive",
+ "resolved": "1.10.4",
+ "contentHash": "hSvisZy9sld0Gik1X94od3+rRXCx+AKgi+iLH6fFdlnRZRePn7RtrqUGSsORiH2h8H2sc4NLTrnuUte1WL+QuQ==",
+ "dependencies": {
+ "Azure.Core": "1.36.0",
+ "Microsoft.Identity.Client": "4.56.0",
+ "Microsoft.Identity.Client.Extensions.Msal": "4.56.0",
+ "System.Memory": "4.5.4",
+ "System.Security.Cryptography.ProtectedData": "4.7.0",
+ "System.Text.Json": "4.7.2",
+ "System.Threading.Tasks.Extensions": "4.5.4"
+ }
+ },
+ "BananaCakePop.Middleware": {
+ "type": "Transitive",
+ "resolved": "16.0.1",
+ "contentHash": "i/LDG7Lw2ln1WM7GaMyNDWHExtN15/O/xgcX8lhBK6FZFPBnlq6FJW4GuS3vs0UpLB1TvX2tcOenMlXjcMZq0g==",
+ "dependencies": {
+ "Yarp.ReverseProxy": "2.1.0"
+ }
+ },
+ "BouncyCastle.Cryptography": {
+ "type": "Transitive",
+ "resolved": "2.2.1",
+ "contentHash": "A6Zr52zVqJKt18ZBsTnX0qhG0kwIQftVAjLmszmkiR/trSp8H+xj1gUOzk7XHwaKgyREMSV1v9XaKrBUeIOdvQ=="
+ },
+ "Dazinator.Extensions.FileProviders": {
+ "type": "Transitive",
+ "resolved": "2.0.0",
+ "contentHash": "Jb10uIvdGdaaOmEGUXeO1ssjp6YuvOuR87B5gLxGORFbroV1j7PDaVfEIgni7vV8KRcyAY5KvuMxgx6ADIEXNw==",
+ "dependencies": {
+ "DotNet.Glob": "3.1.0",
+ "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.2",
+ "Microsoft.AspNetCore.Http.Abstractions": "1.0.2",
+ "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
+ "NETStandard.Library": "1.6.1"
+ }
+ },
+ "DotNet.Glob": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "i6x0hDsFWg6Ke2isaNAcHQ9ChxBvTJu2cSmBY+Jtjiv2W4q6y9QlA3JKYuZqJ573TAZmpAn65Qf3sRpjvZ1gmw=="
+ },
+ "Examine": {
+ "type": "Transitive",
+ "resolved": "3.2.0",
+ "contentHash": "WL6VfLVO6It7kvwWANUux9LerwNr+xjxHHenNbxlOZE0dMcBKs0C3EYHEk6DHmDk0EtAPRcXT23NKlcJ7ZskWw==",
+ "dependencies": {
+ "Examine.Core": "3.2.0",
+ "Examine.Lucene": "3.2.0",
+ "Microsoft.AspNetCore.DataProtection": "5.0.5",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0"
+ }
+ },
+ "Examine.Core": {
+ "type": "Transitive",
+ "resolved": "3.2.0",
+ "contentHash": "2f8pnvZf8COTyBcO3c3z8XR/sc6HqtE45922dwTEe7dCM1H5eoItUHpQ38SM3zX9sXKA2hHUJowggxyoYrPS0g==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "5.0.0",
+ "Microsoft.Extensions.Options": "5.0.0"
+ }
+ },
+ "Examine.Lucene": {
+ "type": "Transitive",
+ "resolved": "3.2.0",
+ "contentHash": "Rm9WVnGlOBOyvkmjWB9+BhTJPNjHwA34Pk/Q6LMYDQujn6kFpBLK//5gEVqPGvU33du0oPTK1BN5rjuqJJq/JQ==",
+ "dependencies": {
+ "Examine.Core": "3.2.0",
+ "Lucene.Net.QueryParser": "4.8.0-beta00016",
+ "Lucene.Net.Replicator": "4.8.0-beta00016",
+ "System.Threading": "4.3.0",
+ "System.Threading.AccessControl": "4.7.0"
+ }
+ },
+ "GreenDonut": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "tFwKox2+x2YVX6E7L9UP1NDS9bgDHIgDAtxlJAwLj9aNp1aOH1eN3CeDbLO6WcLesAD+EiZDdxxK4ygsc77gKA==",
+ "dependencies": {
+ "Microsoft.Extensions.ObjectPool": "8.0.0",
+ "System.Diagnostics.DiagnosticSource": "8.0.0",
+ "System.Threading.Tasks.Extensions": "4.5.0"
+ }
+ },
+ "HotChocolate": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "HO46UcZrch0h8Tof1SWaDXASr3v6CPGis8S+O7t1XYOl6hV7JA3yXpC8FXwjGr4HUuGK2/Qy0UH1ONpE7oZczg==",
+ "dependencies": {
+ "HotChocolate.Authorization": "13.9.5",
+ "HotChocolate.Execution": "13.9.5",
+ "HotChocolate.Fetching": "13.9.5",
+ "HotChocolate.Types": "13.9.5",
+ "HotChocolate.Types.CursorPagination": "13.9.5",
+ "HotChocolate.Types.Mutations": "13.9.5",
+ "HotChocolate.Types.OffsetPagination": "13.9.5",
+ "HotChocolate.Validation": "13.9.5"
+ }
+ },
+ "HotChocolate.Abstractions": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "gK/Yly17RmeyePQTs2hmKHfQOKpA9G1qBQVgpl8HipgqZ9MDg7tv2fUeo+UCwJU0i+50xfWccm2Ln/IsQ1ndMQ==",
+ "dependencies": {
+ "HotChocolate.Language": "13.9.5",
+ "System.Collections.Immutable": "8.0.0"
+ }
+ },
+ "HotChocolate.AspNetCore": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "0F/tIfqKCLVNuGOfYIAYz3KrkOElnd4VPa0s+xCjA+2JmnCcem/fpdnmGulm43X2JjIIXgUrcKMQyoGFvl5IqQ==",
+ "dependencies": {
+ "BananaCakePop.Middleware": "16.0.1",
+ "HotChocolate": "13.9.5",
+ "HotChocolate.Subscriptions.InMemory": "13.9.5",
+ "HotChocolate.Transport.Sockets": "13.9.5",
+ "HotChocolate.Types.Scalars.Upload": "13.9.5",
+ "HotChocolate.Utilities.DependencyInjection": "13.9.5"
+ }
+ },
+ "HotChocolate.AspNetCore.Authorization": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "r7PxnWBIXUqUSLPuKLKvUCf0yS2vT9tnk5uFkg6qtSHA88POOTankPLEVG87Neop0VYpYVG+EqbmMZDuc6AYcw==",
+ "dependencies": {
+ "HotChocolate": "13.9.5"
+ }
+ },
+ "HotChocolate.Authorization": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "sJobtxZjEmOupYmEq7DLx0B1B0JC95019zEatchp5ETtmtUTs+XbnX1TFy39EEMKwDkPP7Drm6otan6ohnTn6A==",
+ "dependencies": {
+ "HotChocolate.Execution": "13.9.5"
+ }
+ },
+ "HotChocolate.Execution": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "O9QZnb2iKFqnhV4eKfPF8VrbD70l2iBg89+66hhlSxe/kse//cgcytSioZ3ztBQG7kqq0C3G8cmPVqhANQJGJg==",
+ "dependencies": {
+ "HotChocolate.Abstractions": "13.9.5",
+ "HotChocolate.Execution.Abstractions": "13.9.5",
+ "HotChocolate.Fetching": "13.9.5",
+ "HotChocolate.Types": "13.9.5",
+ "HotChocolate.Utilities.DependencyInjection": "13.9.5",
+ "HotChocolate.Validation": "13.9.5",
+ "Microsoft.Extensions.DependencyInjection": "8.0.0",
+ "System.Threading.Channels": "8.0.0"
+ }
+ },
+ "HotChocolate.Execution.Abstractions": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "KV9VLUwSQtfpDLn7Np1zhvfhHiTZRh0LodGEYpGfIxtQ3+ULytEQSOUbyleceWSc3GeI0lRTXVoSJSuuMFzKUQ==",
+ "dependencies": {
+ "HotChocolate.Abstractions": "13.9.5",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
+ }
+ },
+ "HotChocolate.Fetching": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "kU6gpDO8L6waWAgdKtrH/oIJA8ajRMeZr2DHqPttZPowPAx96mCXABm6NdDEZ7sp6tNE9G9GApEFxwzMts11Bw==",
+ "dependencies": {
+ "GreenDonut": "13.9.5",
+ "HotChocolate.Types": "13.9.5"
+ }
+ },
+ "HotChocolate.Language": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "ba5HALzRe1nDXXNOnSM2VK0yZ+6bp41nGmOx/Orgf7niRfShPNvS+1+rTio1FH2mdmMFRzfmZl1pj44eSkqiyg==",
+ "dependencies": {
+ "HotChocolate.Language.SyntaxTree": "13.9.5",
+ "HotChocolate.Language.Utf8": "13.9.5",
+ "HotChocolate.Language.Visitors": "13.9.5",
+ "HotChocolate.Language.Web": "13.9.5"
+ }
+ },
+ "HotChocolate.Language.SyntaxTree": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "XgVqC0d5cmUz6mlPkLmmiZHjIFcLtmUwzC9TG4qIfaKx/8ARpAqL06vCIQ9Rnt52qLmpTCpueT5wkah/fXekTQ==",
+ "dependencies": {
+ "Microsoft.Extensions.ObjectPool": "8.0.0"
+ }
+ },
+ "HotChocolate.Language.Utf8": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "j/5kSSqR3vEVwMuJvOxzT03wxkrBHyOw5aEnI1sojf5kKBV2ld0//YPw4JS6GIlsYE8FTMX6YLidXUPv+AF6eA==",
+ "dependencies": {
+ "HotChocolate.Language.SyntaxTree": "13.9.5"
+ }
+ },
+ "HotChocolate.Language.Visitors": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "33IldmlQgRS6JDymfQ2TPnQ0FTxCo/CGFATpo42CO+dYELWt42oM4Jj9rajy80ZTscrf8zFo8pr8BnpHUIWKRw==",
+ "dependencies": {
+ "HotChocolate.Language.SyntaxTree": "13.9.5"
+ }
+ },
+ "HotChocolate.Language.Web": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "buF+sUWK01A5j4Iv/HrUJYbGre1/jfi3zt0Al8Tvn4EqgsDtKJjFAGf/0ZhgqRl8En+iPZ9Ek/VfN48JarJLlQ==",
+ "dependencies": {
+ "HotChocolate.Language.Utf8": "13.9.5"
+ }
+ },
+ "HotChocolate.Subscriptions": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "6+0/uhd50k6XntGSuGMKIkigTPC+bnidyI/KPT+4y/u3Pp05OtvLMHQ68xsMKsf6oB2eBXI9MvaTNkntiw4LLQ==",
+ "dependencies": {
+ "HotChocolate.Abstractions": "13.9.5",
+ "HotChocolate.Execution.Abstractions": "13.9.5"
+ }
+ },
+ "HotChocolate.Subscriptions.InMemory": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "nGNAJzBbz+eLLI9Q+WodMSRQUUun+t81S59mAqSMaz9IwYPoxhwe7IEcHpgl6sJFj48q9bai4ImdIrK77OLiLQ==",
+ "dependencies": {
+ "HotChocolate.Execution.Abstractions": "13.9.5",
+ "HotChocolate.Subscriptions": "13.9.5",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
+ }
+ },
+ "HotChocolate.Transport.Sockets": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "yvKD5Z8vu6DBSsbbZmEljYVteFCEcIhy0FWd9qJ/clMrexkQLJE8FXwBvm1ldmdT77/7ZI41XLGZg/xg2SllmA==",
+ "dependencies": {
+ "System.IO.Pipelines": "8.0.0"
+ }
+ },
+ "HotChocolate.Types": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "gtC39bauWqSFObrSxJurQG8ubhn1nOHxsfPKVlBH65BzcGwRPSmLj7MGZ2T+8hUt9y4dN8REseJB+TVKHctHUQ==",
+ "dependencies": {
+ "HotChocolate.Abstractions": "13.9.5",
+ "HotChocolate.Types.Shared": "13.9.5",
+ "HotChocolate.Utilities": "13.9.5",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Microsoft.Extensions.ObjectPool": "8.0.0",
+ "System.ComponentModel.Annotations": "5.0.0",
+ "System.Text.Json": "8.0.0"
+ }
+ },
+ "HotChocolate.Types.CursorPagination": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "Ll8rR+8B1Y9HVG8F+kAXoPVmOmyEhGGouihlz9M1K63VIKWStB5HpzNglgeFYy5G41udBKYMFIlakrDrXBeDDA==",
+ "dependencies": {
+ "HotChocolate.Execution": "13.9.5",
+ "HotChocolate.Types": "13.9.5"
+ }
+ },
+ "HotChocolate.Types.Mutations": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "9R7CK9akollOaYndRPSsCsaINW6qCbDhZ0cKFeXtMI2vCJS+Lz3BStbIdm0W3XNFJGu4jqrPii3AZxQDAkHxJQ==",
+ "dependencies": {
+ "HotChocolate.Execution": "13.9.5",
+ "HotChocolate.Types": "13.9.5"
+ }
+ },
+ "HotChocolate.Types.OffsetPagination": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "A+qYXOT3qip9n44gfxT/RBmZSnOzP+PVpDk4mJXY8ud4xEvYDblsQL7lPlSV2y32LCeKMe9h5Y3eeSZ8J0w5pA==",
+ "dependencies": {
+ "HotChocolate.Execution": "13.9.5",
+ "HotChocolate.Types": "13.9.5"
+ }
+ },
+ "HotChocolate.Types.Scalars.Upload": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "svch625U4/6aJ4odOPu0t2lZwL1ctk64CNiQC5lbXxogtLOXT6NwdWoOmoyGjVthUpqLOpPoYR5uewAf6Lgvqg==",
+ "dependencies": {
+ "HotChocolate.Types": "13.9.5"
+ }
+ },
+ "HotChocolate.Types.Shared": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "JHYGQuDilEYdDg1s5I8wA4t2qgY6IPyN+8m25lpBPeI/Yoq4n7SQuszE63lssDJj+U8qfkOtjwTnSi4kLN6s+w==",
+ "dependencies": {
+ "HotChocolate.Language.SyntaxTree": "13.9.5"
+ }
+ },
+ "HotChocolate.Utilities": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "u6gNCVLaaA6oeYP1ifygPaoZGs7iHBGKbQF2eQuzKnZd5DmLqe/9ZB2SzIhabcOZ541l61jAaedQMolOMQfLAw=="
+ },
+ "HotChocolate.Utilities.DependencyInjection": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "EbZLEGxEs164nnRk4Pw82xMumr845p0f7csnbeqVsXquSbcdaopBMz+SKQjBFmIHqhyR9guQgOPEkNAhR4lhzw==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "8.0.0"
+ }
+ },
+ "HotChocolate.Validation": {
+ "type": "Transitive",
+ "resolved": "13.9.5",
+ "contentHash": "JUUSJhw75zM8sRt643gP+rM7g9QdJk6QnM3sScrAQ7ye0nByHMSUto/Z/KSquwBDkC5sGB8trLUcPZOG+Qv+HA==",
+ "dependencies": {
+ "HotChocolate.Types": "13.9.5",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0"
+ }
+ },
+ "HtmlAgilityPack": {
+ "type": "Transitive",
+ "resolved": "1.11.57",
+ "contentHash": "zDxnHcAvi+qhZG602eKaPJKmzm0T8npKVML0RMwjrRBabpmTRtu2OVpfNkMUfYMgQ+5EllOkSeGxu0uFVV2zFw=="
+ },
+ "J2N": {
+ "type": "Transitive",
+ "resolved": "2.0.0",
+ "contentHash": "M5bwDajAARZiyqupU+rHQJnsVLxNBOHJ8vKYHd8LcLIb1FgLfzzcJvc31Qo5Xz/GEHFjDF9ScjKL/ks/zRTXuA=="
+ },
+ "K4os.Compression.LZ4": {
+ "type": "Transitive",
+ "resolved": "1.3.6",
+ "contentHash": "RxGhoJBjZCgGeZgDqOP4Krs1cR9PHInbz6d2N19Dic0Y6ZACzVKbR3uSpqfEZf4RiUbHk9aiog2eS22nQPTc2A=="
+ },
+ "Lucene.Net": {
+ "type": "Transitive",
+ "resolved": "4.8.0-beta00016",
+ "contentHash": "DCtUbE/NIrisNI7hRwU+UKS3Cr6S2vH1XB9wvEHHI3anu5OUpX1Fkr/PDC7oFCaol/QCvzVLbLZVizAT1aTLpA==",
+ "dependencies": {
+ "J2N": "2.0.0",
+ "Microsoft.Extensions.Configuration.Abstractions": "2.0.0"
+ }
+ },
+ "Lucene.Net.Analysis.Common": {
+ "type": "Transitive",
+ "resolved": "4.8.0-beta00016",
+ "contentHash": "7pjEAIliWdih6E3I0hCE8hKcKKRx1LLzeQBslF1fhvzE1Sal4NyHd8RFJHV1Z+yHlBw4gCyyVIDZADiIoyqwxg==",
+ "dependencies": {
+ "Lucene.Net": "4.8.0-beta00016"
+ }
+ },
+ "Lucene.Net.Facet": {
+ "type": "Transitive",
+ "resolved": "4.8.0-beta00016",
+ "contentHash": "O1MrRfhb9BMfRQHooyEFrkgNwYbTEbK/AkKhz26sy+xO+zAldJ8YKS/IsydHsE+frklIAWT0jyv0c3Dh9qBXSA==",
+ "dependencies": {
+ "Lucene.Net.Join": "4.8.0-beta00016",
+ "Lucene.Net.Queries": "4.8.0-beta00016"
+ }
+ },
+ "Lucene.Net.Grouping": {
+ "type": "Transitive",
+ "resolved": "4.8.0-beta00016",
+ "contentHash": "y7QSEYfSnz7gEJS30xHsf8P0oMIreGGO08qC+UzKre29IAoUXdLLE2+vUfByGkcPuoGMIpZVBP51P6O647grBg==",
+ "dependencies": {
+ "Lucene.Net": "4.8.0-beta00016",
+ "Lucene.Net.Queries": "4.8.0-beta00016"
+ }
+ },
+ "Lucene.Net.Join": {
+ "type": "Transitive",
+ "resolved": "4.8.0-beta00016",
+ "contentHash": "trUiWhV3QPgW4TNPrEP29AsTXE29ACR5+Vz22xjbPtFTwyXMozl95NELVG5aUVMTqdwyMhJ9Lj82QeoHDnN0jw==",
+ "dependencies": {
+ "Lucene.Net.Grouping": "4.8.0-beta00016"
+ }
+ },
+ "Lucene.Net.Queries": {
+ "type": "Transitive",
+ "resolved": "4.8.0-beta00016",
+ "contentHash": "XBzdMDlan68V2ZlhAlP8Fd+Xx2Le8ec7cEN1kFF45Sipa3Q8L/tilJfwS9VHvMTvGkwPM/yj62eGbfGBgIMR8Q==",
+ "dependencies": {
+ "Lucene.Net": "4.8.0-beta00016"
+ }
+ },
+ "Lucene.Net.QueryParser": {
+ "type": "Transitive",
+ "resolved": "4.8.0-beta00016",
+ "contentHash": "5dVvjXmzPaK8GD/eblJopTJMQmO6c6fvVPfBIOw46+jyZR+yESkUnWF1LtLoLXZQNrl4Dx8LKdes5G1QAM7eGA==",
+ "dependencies": {
+ "Lucene.Net.Analysis.Common": "4.8.0-beta00016",
+ "Lucene.Net.Queries": "4.8.0-beta00016",
+ "Lucene.Net.Sandbox": "4.8.0-beta00016"
+ }
+ },
+ "Lucene.Net.Replicator": {
+ "type": "Transitive",
+ "resolved": "4.8.0-beta00016",
+ "contentHash": "BP007m7TtHfOFNGoipn1Y3kgHir0yvDfyCW9g7P6PQIo7nNkyyHuEK9slVEkPhLq+21Q2EnnHl7jMGeh0aK2eA==",
+ "dependencies": {
+ "J2N": "2.0.0",
+ "Lucene.Net": "4.8.0-beta00016",
+ "Lucene.Net.Facet": "4.8.0-beta00016",
+ "Newtonsoft.Json": "10.0.1"
+ }
+ },
+ "Lucene.Net.Sandbox": {
+ "type": "Transitive",
+ "resolved": "4.8.0-beta00016",
+ "contentHash": "wMsRZtbNx0wvX3mtNjpOwQmKx3Ij4UGHWIYHbvnzMWlPUTgtOpYSj02REL4hOxI71WBZylpGB5EWfQ2eEld63g==",
+ "dependencies": {
+ "Lucene.Net": "4.8.0-beta00016"
+ }
+ },
+ "MailKit": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "jVmB3Nr0JpqhyMiXOGWMin+QvRKpucGpSFBCav9dG6jEJPdBV+yp1RHVpKzxZPfT+0adaBuZlMFdbIciZo1EWA==",
+ "dependencies": {
+ "MimeKit": "4.3.0"
+ }
+ },
+ "Markdown": {
+ "type": "Transitive",
+ "resolved": "2.2.1",
+ "contentHash": "A6veXuFP1n50RbmFNtTgfHxnHmwMsgFLSCgS1xWbg5L8n5N6HFEksTlXocZ0LsmGW4leBzeLJd+BY7+g83zFJA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.RegularExpressions": "4.1.0"
+ }
+ },
+ "MessagePack": {
+ "type": "Transitive",
+ "resolved": "2.5.140",
+ "contentHash": "nkIsgy8BkIfv40bSz9XZb4q//scI1PF3AYeB5X66nSlIhBIqbdpLz8Qk3gHvnjV3RZglQLO/ityK3eNfLii2NA==",
+ "dependencies": {
+ "MessagePack.Annotations": "2.5.140",
+ "Microsoft.NET.StringTools": "17.6.3",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ }
+ },
+ "MessagePack.Annotations": {
+ "type": "Transitive",
+ "resolved": "2.5.140",
+ "contentHash": "JE3vwluOrsJ4t3hnfXzIxJUh6lhx6M/KR8Sark/HOUw1DJ5UKu5JsAnnuaQngg6poFkRx1lzHSLTkxHNJO7+uQ=="
+ },
+ "Microsoft.AspNetCore.Authentication.JwtBearer": {
+ "type": "Transitive",
+ "resolved": "8.0.6",
+ "contentHash": "devoUZd8YqikCheBVYpIyvp9psM2Y2ZhOvq1zL2YSjIoq3FUQH8LpLkGak+8oAi/5DGqX8KWyLpZJSUXtOAVCw==",
+ "dependencies": {
+ "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2"
+ }
+ },
+ "Microsoft.AspNetCore.Cryptography.Internal": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "ryzsiEKr1qJ8f/CARxK8/zTX41aGUpoYOrZuKpsWiK6LwnuynxSFrzBDF04bT7xHF/i0EOeqkIRvfIohI/EsTg=="
+ },
+ "Microsoft.AspNetCore.Cryptography.KeyDerivation": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "soX8sz1IUCEpsx3UEZUhdZ0RIi890qr6l1LEbFWMcbzSs0MhYM/WK+W889dkEBycVMh/fUzodMBbFVSp9tM0AQ==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Cryptography.Internal": "8.0.1"
+ }
+ },
+ "Microsoft.AspNetCore.DataProtection": {
+ "type": "Transitive",
+ "resolved": "5.0.5",
+ "contentHash": "fYCIRLS3Q7eokBwzlcaKQnCBLDFXqjnyJO9lqOX0/V9zvy/JiOfvwKSkm6v5QJuNpXZywb/DnAq5Pdb3woc3MQ==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Cryptography.Internal": "5.0.5",
+ "Microsoft.AspNetCore.DataProtection.Abstractions": "5.0.5",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
+ "Microsoft.Extensions.Hosting.Abstractions": "5.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "5.0.0",
+ "Microsoft.Extensions.Options": "5.0.0",
+ "Microsoft.Win32.Registry": "5.0.0",
+ "System.Security.Cryptography.Xml": "5.0.0"
+ }
+ },
+ "Microsoft.AspNetCore.DataProtection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "5.0.5",
+ "contentHash": "k1DgnNSBG0lf9P+QDnU+FFeLI4b4hhw4iT+iw29XkcRaCGpcPwq7mLJUtz2Yqq/FRyEwlcteTJmdWEoJb0Fxag=="
+ },
+ "Microsoft.AspNetCore.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "1.0.2",
+ "contentHash": "CSVd9h1TdWDT2lt62C4FcgaF285J4O3MaOqTVvc7xP+3bFiwXcdp6qEd+u1CQrdJ+xJuslR+tvDW7vWQ/OH5Qw==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": "1.0.2",
+ "Microsoft.AspNetCore.Http.Abstractions": "1.0.2",
+ "Microsoft.Extensions.Configuration.Abstractions": "1.0.2",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.2",
+ "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
+ "Microsoft.Extensions.Logging.Abstractions": "1.0.2"
+ }
+ },
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": {
+ "type": "Transitive",
+ "resolved": "1.0.2",
+ "contentHash": "6ZtFh0huTlrUl72u9Vic0icCVIQiEx7ULFDx3P7BpOI97wjb0GAXf8B4m9uSpSGf0vqLEKFlkPbvXF0MXXEzhw==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "1.0.2",
+ "Microsoft.Extensions.Configuration.Abstractions": "1.0.2"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Abstractions": {
+ "type": "Transitive",
+ "resolved": "1.0.2",
+ "contentHash": "peJqc7BgYwhTzOIfFHX3/esV6iOXf17Afekh6mCYuUD3aWyaBwQuWYaKLR+RnjBEWaSzpCDgfCMMp5Y3LUXsiA==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "1.0.2",
+ "System.Globalization.Extensions": "4.0.1",
+ "System.Linq.Expressions": "4.1.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Text.Encodings.Web": "4.0.0"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Features": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "6sVnhFwtsjEVL09FsYpAttQ3Og6Jxg1dQFLF9XQUThi1myq64imjhj1swd92TXMLCp5wmt8szDixZXXdx64qhg==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "5.0.0",
+ "System.IO.Pipelines": "5.0.0"
+ }
+ },
+ "Microsoft.AspNetCore.JsonPatch": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "Zq13zrOOnDs6PZRlu3sXVEZ1QGbJj7Fw48UtC/ZYIWZ18T8Jkjo7OodzYXSaJgDAXAtDoakvo83N8Mjx7EI9Gg==",
+ "dependencies": {
+ "Microsoft.CSharp": "4.7.0",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Microsoft.AspNetCore.Mvc.NewtonsoftJson": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "YWNvdHGCHGWKILgEzUDe6soozYnknlSB3IY092zxjdgLoaCPRte2lnbRRS7Nt0lEFbsFjN/Eo2fCI5yusPK0iQ==",
+ "dependencies": {
+ "Microsoft.AspNetCore.JsonPatch": "8.0.1",
+ "Newtonsoft.Json": "13.0.3",
+ "Newtonsoft.Json.Bson": "1.0.2"
+ }
+ },
+ "Microsoft.AspNetCore.Mvc.Razor.Extensions": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "M0h+ChPgydX2xY17agiphnAVa/Qh05RAP8eeuqGGhQKT10claRBlLNO6d2/oSV8zy0RLHzwLnNZm5xuC/gckGA==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Razor.Language": "6.0.0",
+ "Microsoft.CodeAnalysis.Razor": "6.0.0"
+ }
+ },
+ "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "4Gy4Vz4koUBroyu1J57XIQ8zT6oOzggjn/mWc3YTpB/rnaR27Y+msTM8+/ecZ/V26KARrFq2HFylmKFQQtiD+A==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Mvc.Razor.Extensions": "6.0.0",
+ "Microsoft.CodeAnalysis.Razor": "6.0.0",
+ "Microsoft.Extensions.DependencyModel": "8.0.0"
+ }
+ },
+ "Microsoft.AspNetCore.Razor.Language": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "yCtBr1GSGzJrrp1NJUb4ltwFYMKHw/tJLnIDvg9g/FnkGIEzmE19tbCQqXARIJv5kdtBgsoVIdGLL+zmjxvM/A=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.1",
+ "contentHash": "yuvf07qFWFqtK3P/MRkEKLhn5r2UbSpVueRziSqj0yJQIKFwG1pq9mOayK3zE5qZCTs0CbrwL9M6R8VwqyGy2w=="
+ },
+ "Microsoft.CodeAnalysis.Analyzers": {
+ "type": "Transitive",
+ "resolved": "3.3.4",
+ "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g=="
+ },
+ "Microsoft.CodeAnalysis.Common": {
+ "type": "Transitive",
+ "resolved": "4.8.0",
+ "contentHash": "/jR+e/9aT+BApoQJABlVCKnnggGQbvGh7BKq2/wI1LamxC+LbzhcLj4Vj7gXCofl1n4E521YfF9w0WcASGg/KA==",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+ "System.Collections.Immutable": "7.0.0",
+ "System.Reflection.Metadata": "7.0.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.8.0",
+ "contentHash": "+3+qfdb/aaGD8PZRCrsdobbzGs1m9u119SkkJt8e/mk3xLJz/udLtS2T6nY27OTXxBBw10HzAbC8Z9w08VyP/g==",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "[4.8.0]"
+ }
+ },
+ "Microsoft.CodeAnalysis.Razor": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "uqdzuQXxD7XrJCbIbbwpI/LOv0PBJ9VIR0gdvANTHOfK5pjTaCir+XcwvYvBZ5BIzd0KGzyiamzlEWw1cK1q0w==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Razor.Language": "6.0.0",
+ "Microsoft.CodeAnalysis.CSharp": "4.0.0",
+ "Microsoft.CodeAnalysis.Common": "4.0.0"
+ }
+ },
+ "Microsoft.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
+ },
+ "Microsoft.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "5.1.1",
+ "contentHash": "MW5E9HFvCaV069o8b6YpuRDPBux8s96qDnOJ+4N9QNUCs7c5W3KxwQ+ftpAjbMUlImL+c9WR+l+f5hzjkqhu2g==",
+ "dependencies": {
+ "Azure.Identity": "1.7.0",
+ "Microsoft.Data.SqlClient.SNI.runtime": "5.1.0",
+ "Microsoft.Identity.Client": "4.47.2",
+ "Microsoft.IdentityModel.JsonWebTokens": "6.24.0",
+ "Microsoft.IdentityModel.Protocols.OpenIdConnect": "6.24.0",
+ "Microsoft.SqlServer.Server": "1.0.0",
+ "System.Configuration.ConfigurationManager": "6.0.1",
+ "System.Diagnostics.DiagnosticSource": "6.0.0",
+ "System.Runtime.Caching": "6.0.0",
+ "System.Security.Cryptography.Cng": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0",
+ "System.Text.Encoding.CodePages": "6.0.0",
+ "System.Text.Encodings.Web": "6.0.0"
+ }
+ },
+ "Microsoft.Data.SqlClient.SNI.runtime": {
+ "type": "Transitive",
+ "resolved": "5.1.0",
+ "contentHash": "jVsElisM5sfBzaaV9kdq2NXZLwIbytetnsOIlJ0cQGgQP4zFNBmkfHBnpwtmKrtBJBEV9+9PVQPVrcCVhDgcIg=="
+ },
+ "Microsoft.Data.Sqlite": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "+7uDWNYZmLrVq9eABAKwy1phGbpoFVohKCUoh/nGg9WiBwi856EkAJYFiQhTJWoXxzpInkLFj/6KACoSB7ODYg==",
+ "dependencies": {
+ "Microsoft.Data.Sqlite.Core": "8.0.1",
+ "SQLitePCLRaw.bundle_e_sqlite3": "2.1.6"
+ }
+ },
+ "Microsoft.Data.Sqlite.Core": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "s8C8xbwMb79EqzTaIhwiBrYtbv6ATnUW19pJed4fKVgN5K4VPQ7JUGqBLztknvD6EJIMKrfRnINGTjnZghrDGw==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.1.6"
+ }
+ },
+ "Microsoft.EntityFrameworkCore": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "hPagYIuWPpZF6AwOR7mlKv+GLEk8wrbsIVr8qYHqSWN2zDghOYTu2Qxi6CtrJP3V9UgzZ6sjQVM/jnrodpz10Q==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Abstractions": "8.0.1",
+ "Microsoft.EntityFrameworkCore.Analyzers": "8.0.1",
+ "Microsoft.Extensions.Caching.Memory": "8.0.0",
+ "Microsoft.Extensions.Logging": "8.0.0"
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Abstractions": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "KBj2meUDWmMDRYpxyebyYQMf7+aGyTWvKD9UTuFKPP/NQGVsJUqbCCM+p/LCxSppcm2dQt+z73e/yBFlq/2jmA=="
+ },
+ "Microsoft.EntityFrameworkCore.Analyzers": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "8HgodfPiUEMu5rlkcGa9CJdEpF5VeaeWhHAdKuKstgr6GBFc91xCJo/haOVzM8jKPS167PrlC8ChYdtzFVpp4A=="
+ },
+ "Microsoft.EntityFrameworkCore.Relational": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "uL1tO14kbsi0EqtfvElGJ68irUlu2DbkTMKz4+8WvVc1TV2GwVgfwQWv7uwDqsB5+JK9alfP3tZjHkWiSpk3oA==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "8.0.1",
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Sqlite": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "9OF1gaBzZy/eYwogfNCXkkA0t6jy/Wcno6o9dzT27P1yZ3bdKSR45OqOLsa2+lN+QLJaiv8pJSIWymugfdLQyA==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Sqlite.Core": "8.0.1",
+ "SQLitePCLRaw.bundle_e_sqlite3": "2.1.6"
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Sqlite.Core": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "kmNSZbVxbRFn1tRySkzRJFa2lNE1olgGyCB1FzcReua6jMkyRxr6v9rTv/idNVkSGHSnHitlu4DvZ//y1YFzjA==",
+ "dependencies": {
+ "Microsoft.Data.Sqlite.Core": "8.0.1",
+ "Microsoft.EntityFrameworkCore.Relational": "8.0.1",
+ "Microsoft.Extensions.DependencyModel": "8.0.0"
+ }
+ },
+ "Microsoft.EntityFrameworkCore.SqlServer": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "H//G5S3KEpf2BmIsGjy3Qkigfgx/Pvv8SwP1FV7tykCUBg1VTC9k87F8IdrOUQb/w1nBIvUcmE05xbnqSWcpQw==",
+ "dependencies": {
+ "Microsoft.Data.SqlClient": "5.1.1",
+ "Microsoft.EntityFrameworkCore.Relational": "8.0.1"
+ }
+ },
+ "Microsoft.Extensions.ApiDescription.Server": {
+ "type": "Transitive",
+ "resolved": "6.0.5",
+ "contentHash": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw=="
+ },
+ "Microsoft.Extensions.Caching.Abstractions": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Caching.Memory": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "7pqivmrZDzo1ADPkRwjy+8jtRKWRCPag9qPI+p7sgu7Q4QreWhcvbiWXsbhP+yY8XSiDvZpu2/LWdBv7PnmOpQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Abstractions": "8.0.0",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0",
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "mBMoXLsr5s1y2zOHWmKsE9veDcx8h1x/c3rz4baEdQKTeDcmQAPNbB54Pi/lhFO3K431eEq6PFbMgLaa6PHFfA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Configuration.FileExtensions": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "McP+Lz/EKwvtCv48z0YImw+L1gi1gy5rHhNaNIY2CrjloV+XY8gydT8DjMR6zWeL13AFK+DioVpppwAuO1Gi1w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "8.0.0",
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
+ "Microsoft.Extensions.FileProviders.Physical": "8.0.0",
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Json": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "C2wqUoh9OmRL1akaCcKSTmRU8z0kckfImG7zLNI8uyi47Lp+zd5LWAD17waPQEqCz3ioWOCrFUo+JJuoeZLOBw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "8.0.0",
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Configuration.FileExtensions": "8.0.0",
+ "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
+ "System.Text.Json": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "V8S3bsm50ig6JSyrbcJJ8bW2b9QLGouz+G1miK3UTaOWmMtFwNNNzUf4AleyDWUmTrWMLNnFSLEQtxmxgNQnNQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "fGLiCRLMYd00JYpClraLjJTNKLmMJPnqxMaiRzEBIIvevlzxz33mXy39Lkd48hu1G+N21S7QpaO5ZzKsI6FRuA=="
+ },
+ "Microsoft.Extensions.DependencyModel": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "NSmDw3K0ozNDgShSIpsZcbFIzBX4w28nDag+TfaQujkXGazBm+lid5onlWoCBy4VsLxqnnKjEBbGSJVWJMf43g==",
+ "dependencies": {
+ "System.Text.Encodings.Web": "8.0.0",
+ "System.Text.Json": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "3PZp/YSkIXrF7QK7PfC1bkyRYwqOHpWFad8Qx+4wkuumAeXo1NHaxpS9LboNA9OvNSAu+QOVlXbMyoY+pHSqcw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "8.0.0",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "JHYCQG7HmugNYUhOl368g+NMxYE/N/AiclCYRNlgCY9eVyiBkOHMwK4x60RYMxv9EL3+rmj1mqHvdCiPpC+D4Q==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0",
+ "System.Diagnostics.DiagnosticSource": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Composite": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "0IoXXfkgKpYJB1t2lC0jPXAxuaywRNc9y2Mq96ZZNKBthL38vusa2UK73+Bm6Kq/9a5xNHJS6NhsSN+i5TEtkA==",
+ "dependencies": {
+ "Microsoft.Extensions.FileProviders.Abstractions": "5.0.0",
+ "Microsoft.Extensions.Primitives": "5.0.0"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Embedded": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "kZzZXb13F0XtH5YDb4JmwyKtMfmhwIRplFLYct7uRbZYzQbfVGtWgjN2Nv2k/NpODRyaYPXFl03JuD70KWcHjQ==",
+ "dependencies": {
+ "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Physical": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==",
+ "dependencies": {
+ "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
+ "Microsoft.Extensions.FileSystemGlobbing": "8.0.0",
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.FileSystemGlobbing": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ=="
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "AG7HWwVRdCHlaA++1oKDxLsXIBxmDpMPb3VoyOoAghEWnkUvEAdYQUwnV4jJbAaa/nMYNiEh5ByoLauZBEiovg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0",
+ "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Http": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "cWz4caHwvx0emoYe7NkHPxII/KkTI8R/LC9qdqJqnKv2poTJ4e2qqPGQqvRoQ5kaSA4FU5IV3qFAuLuOhoqULQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Diagnostics": "8.0.0",
+ "Microsoft.Extensions.Logging": "8.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Http.Polly": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "UbZJib/wukyGVTvX7ZLS988su5XLrDoHDBSXp00Jxre0ONB1XW7e1zTk7vQbJq1PzmD5x7CBqdZQlH2OWte+Uw==",
+ "dependencies": {
+ "Microsoft.Extensions.Http": "8.0.0",
+ "Polly": "7.2.4",
+ "Polly.Extensions.Http": "3.0.0"
+ }
+ },
+ "Microsoft.Extensions.Identity.Core": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "/8GGtoIIoaeqk3PLV++ClqmVvHvzimhiSiWEdM9kdaNVkfR0JSDjx2AQHZcuekqiSPyNprFcSAg81uGWtdqP3w==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Cryptography.KeyDerivation": "8.0.1",
+ "Microsoft.Extensions.Logging": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.1"
+ }
+ },
+ "Microsoft.Extensions.Identity.Stores": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "yFfKr8NSb178uc8hA2k1Pqr8QB+dUCTbhesO4ooskPKor0ulCWvv7v9kmdCEqloIlxlO+8fuGnzSSvfRx80aeA==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Identity.Core": "8.0.1",
+ "Microsoft.Extensions.Logging": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "tvRkov9tAJ3xP51LCv3FJ2zINmv1P8Hi8lhhtcKGqM+ImiTCC84uOPEI4z8Cdq2C3o9e+Aa0Gw0rmrsJD77W+w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "8.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "RIFgaqoaINxkM2KTOw72dmilDmTrYA0ns2KW4lDz4gZ2+o6IQ894CzmdL3StM2oh7QQq44nCWiqKqc4qUI9Jmg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1"
+ }
+ },
+ "Microsoft.Extensions.ObjectPool": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "4pm+XgxSukskwjzDDfSjG4KNUIOdFF2VaqZZDtTzoyQMOVSnlV6ZM8a9aVu5dg9LVZTB//utzSc8fOi0b0Mb2Q=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "wmpp+BSU3oGifaev6Z9rrlwHoITLFfpVOSbgBrOXjkbJSCXnZVCsoRGE5c3fJFI4VlNgnNkNlI9y+5jC4fmOEA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Configuration.Binder": "8.0.0",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0",
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Options.DataAnnotations": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "z6p6q/N/hiU19A9tK7pjhXHpiYArO4oIICipxUviBEIOiDIoKRO7k6qItvw7alKcLtfHZOWmspuSKpvIvH0N8w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g=="
+ },
+ "Microsoft.ICU.ICU4C.Runtime.linux-arm64": {
+ "type": "Transitive",
+ "resolved": "72.1.0.3",
+ "contentHash": "u/2cPX6JBgSgTOeDjkb2A672LsL3zQo60ViYUTqHOrxuFOIx0ag6bFu2WgN4zRZ71K6L0fubnrlS1HpN+k5kyA=="
+ },
+ "Microsoft.ICU.ICU4C.Runtime.linux-x64": {
+ "type": "Transitive",
+ "resolved": "72.1.0.3",
+ "contentHash": "q1iHc4EGCBYbpb+gfMZGn6L/WuBei/la52pRbxlVy4ed7FdB9UmvUXhoRzv6OsYa6E4VlTlj6EKgYvrwPkVGKQ=="
+ },
+ "Microsoft.ICU.ICU4C.Runtime.win-arm64": {
+ "type": "Transitive",
+ "resolved": "72.1.0.3",
+ "contentHash": "/h8OPK1fqrI9t8hKNmpnSy7MYssGB1CtoXANsduFqf0Sc+OOtfoCIvRp2Mt9Fk80CmtU/53TldGvt1oCH7KpEA=="
+ },
+ "Microsoft.ICU.ICU4C.Runtime.win-x64": {
+ "type": "Transitive",
+ "resolved": "72.1.0.3",
+ "contentHash": "7j6NsmvKuVxgoFsoy0Ty7I09V/tvrQBZN+ddfHtz/OWNRaEIy7PsAguGoyD4AcQZh/KkfT9RQlHoQJ4xVQPr6g=="
+ },
+ "Microsoft.ICU.ICU4C.Runtime.win-x86": {
+ "type": "Transitive",
+ "resolved": "72.1.0.3",
+ "contentHash": "xTHoHJKtgHDsYkQ/RU3o4U36ktjQqnR+ML00HDDK2SWr+9nMekxnXvtLZ2I4cqF8s51frxqTRgx1jDVtIzCf3w=="
+ },
+ "Microsoft.Identity.Client": {
+ "type": "Transitive",
+ "resolved": "4.56.0",
+ "contentHash": "rr4zbidvHy9r4NvOAs5hdd964Ao2A0pAeFBJKR95u1CJAVzbd1p6tPTXUZ+5ld0cfThiVSGvz6UHwY6JjraTpA==",
+ "dependencies": {
+ "Microsoft.IdentityModel.Abstractions": "6.22.0"
+ }
+ },
+ "Microsoft.Identity.Client.Extensions.Msal": {
+ "type": "Transitive",
+ "resolved": "4.56.0",
+ "contentHash": "H12YAzEGK55vZ+QpxUzozhW8ZZtgPDuWvgA0JbdIR9UhMUplj29JhIgE2imuH8W2Nw9D8JKygR1uxRFtpSNcrg==",
+ "dependencies": {
+ "Microsoft.Identity.Client": "4.56.0",
+ "System.IO.FileSystem.AccessControl": "5.0.0",
+ "System.Security.Cryptography.ProtectedData": "4.5.0"
+ }
+ },
+ "Microsoft.IdentityModel.Abstractions": {
+ "type": "Transitive",
+ "resolved": "7.1.2",
+ "contentHash": "33eTIA2uO/L9utJjZWbKsMSVsQf7F8vtd6q5mQX7ZJzNvCpci5fleD6AeANGlbbb7WX7XKxq9+Dkb5e3GNDrmQ=="
+ },
+ "Microsoft.IdentityModel.JsonWebTokens": {
+ "type": "Transitive",
+ "resolved": "7.1.2",
+ "contentHash": "cloLGeZolXbCJhJBc5OC05uhrdhdPL6MWHuVUnkkUvPDeK7HkwThBaLZ1XjBQVk9YhxXE2OvHXnKi0PLleXxDg==",
+ "dependencies": {
+ "Microsoft.IdentityModel.Tokens": "7.1.2"
+ }
+ },
+ "Microsoft.IdentityModel.Logging": {
+ "type": "Transitive",
+ "resolved": "7.1.2",
+ "contentHash": "YCxBt2EeJP8fcXk9desChkWI+0vFqFLvBwrz5hBMsoh0KJE6BC66DnzkdzkJNqMltLromc52dkdT206jJ38cTw==",
+ "dependencies": {
+ "Microsoft.IdentityModel.Abstractions": "7.1.2"
+ }
+ },
+ "Microsoft.IdentityModel.Protocols": {
+ "type": "Transitive",
+ "resolved": "7.1.2",
+ "contentHash": "SydLwMRFx6EHPWJ+N6+MVaoArN1Htt92b935O3RUWPY1yUF63zEjvd3lBu79eWdZUwedP8TN2I5V9T3nackvIQ==",
+ "dependencies": {
+ "Microsoft.IdentityModel.Logging": "7.1.2",
+ "Microsoft.IdentityModel.Tokens": "7.1.2"
+ }
+ },
+ "Microsoft.IdentityModel.Protocols.OpenIdConnect": {
+ "type": "Transitive",
+ "resolved": "7.1.2",
+ "contentHash": "6lHQoLXhnMQ42mGrfDkzbIOR3rzKM1W1tgTeMPLgLCqwwGw0d96xFi/UiX/fYsu7d6cD5MJiL3+4HuI8VU+sVQ==",
+ "dependencies": {
+ "Microsoft.IdentityModel.Protocols": "7.1.2",
+ "System.IdentityModel.Tokens.Jwt": "7.1.2"
+ }
+ },
+ "Microsoft.IdentityModel.Tokens": {
+ "type": "Transitive",
+ "resolved": "7.1.2",
+ "contentHash": "oICJMqr3aNEDZOwnH5SK49bR6Z4aX0zEAnOLuhloumOSuqnNq+GWBdQyrgILnlcT5xj09xKCP/7Y7gJYB+ls/g==",
+ "dependencies": {
+ "Microsoft.IdentityModel.Logging": "7.1.2"
+ }
+ },
+ "Microsoft.IO.RecyclableMemoryStream": {
+ "type": "Transitive",
+ "resolved": "2.3.2",
+ "contentHash": "Oh1qXXFdJFcHozvb4H6XYLf2W0meZFuG0A+TfapFPj9z5fd4vxiARGEhAaLj/6XWQaMYIv4SH/9Q6H78Hw0E2Q=="
+ },
+ "Microsoft.NET.StringTools": {
+ "type": "Transitive",
+ "resolved": "17.6.3",
+ "contentHash": "N0ZIanl1QCgvUumEL1laasU0a7sOE5ZwLZVTn0pAePnfhq8P7SvTjF8Axq+CnavuQkmdQpGNXQ1efZtu5kDFbA=="
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.3",
+ "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ=="
+ },
+ "Microsoft.OpenApi": {
+ "type": "Transitive",
+ "resolved": "1.2.3",
+ "contentHash": "Nug3rO+7Kl5/SBAadzSMAVgqDlfGjJZ0GenQrLywJ84XGKO0uRqkunz5Wyl0SDwcR71bAATXvSdbdzPrYRYKGw=="
+ },
+ "Microsoft.SqlServer.Server": {
+ "type": "Transitive",
+ "resolved": "1.0.0",
+ "contentHash": "N4KeF3cpcm1PUHym1RmakkzfkEv3GRMyofVv40uXsQhCQeglr2OHNcUk2WOG51AKpGO8ynGpo9M/kFXSzghwug=="
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "MimeKit": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "39KDXuERDy5VmHIn7NnCWvIVp/Ar4qnxZWg9m06DfRqDbW1B6zFv9o3Tdoa4CCu71tE/0SRqRCN5Z+bbffw6uw==",
+ "dependencies": {
+ "BouncyCastle.Cryptography": "2.2.1",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0",
+ "System.Security.Cryptography.Pkcs": "7.0.3",
+ "System.Text.Encoding.CodePages": "7.0.0"
+ }
+ },
+ "MiniProfiler.AspNetCore": {
+ "type": "Transitive",
+ "resolved": "4.3.8",
+ "contentHash": "dohMvXpjKDPv/edl7gwKhq80JBqRLLRSwVJB9bo0UYqsgEox7BZyYS/4vBty+UsZ59pYYYhMUpUKHVWLLj/PBw==",
+ "dependencies": {
+ "MiniProfiler.Shared": "4.3.8"
+ }
+ },
+ "MiniProfiler.AspNetCore.Mvc": {
+ "type": "Transitive",
+ "resolved": "4.3.8",
+ "contentHash": "aJ6Kkw2zMy36cKDWTjQYo/pJ6bhPBRA8z4NO8REe+xDhv8+fk58P526Bi52gnvsDp4jIVk5AQ8nQDgPUS/K+7A==",
+ "dependencies": {
+ "MiniProfiler.AspNetCore": "4.3.8"
+ }
+ },
+ "MiniProfiler.Shared": {
+ "type": "Transitive",
+ "resolved": "4.3.8",
+ "contentHash": "SfXNX90fmDm373YAla0z06plTCj6YbByQJOm6G8/9kE6Hf4UALJxySyiMB9O4KYeTc6Ha1EFQDs6jLhio+bBFA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0",
+ "Newtonsoft.Json": "13.0.1",
+ "System.ComponentModel.Primitives": "4.3.0",
+ "System.Data.Common": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.4.1",
+ "System.Diagnostics.StackTrace": "4.3.0",
+ "System.Dynamic.Runtime": "4.3.0",
+ "System.Reflection.Emit.Lightweight": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Serialization.Primitives": "4.3.0",
+ "System.Threading.Tasks.Parallel": "4.3.0"
+ }
+ },
+ "NCrontab": {
+ "type": "Transitive",
+ "resolved": "3.3.3",
+ "contentHash": "2yzZXZLI0YpxrNgWnW/4xoo7ErLgWJIwTljRVEJ3hyjc7Kw9eGdjbFZGP1AhBuTUEZQ443PgZifG1yox6Qo1/A=="
+ },
+ "NETStandard.Library": {
+ "type": "Transitive",
+ "resolved": "1.6.1",
+ "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.AppContext": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Console": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.Compression.ZipFile": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.Net.Http": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Timer": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0",
+ "System.Xml.XDocument": "4.3.0"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "Newtonsoft.Json.Bson": {
+ "type": "Transitive",
+ "resolved": "1.0.2",
+ "contentHash": "QYFyxhaABwmq3p/21VrZNYvCg3DaEoN/wUuw5nmfAf0X3HLjgupwhkEWdgfb9nvGAUIv3osmZoD3kKl4jxEmYQ==",
+ "dependencies": {
+ "Newtonsoft.Json": "12.0.1"
+ }
+ },
+ "NPoco": {
+ "type": "Transitive",
+ "resolved": "5.7.1",
+ "contentHash": "6qjyBqqc0TSK/xHjXA6tSZhABSDQqXGrTOIdUIVazPsmN0OyTaBTEtwV2wTV0NyfkzcRPhLyO6bIW89ZFNvlWg==",
+ "dependencies": {
+ "System.Linq.Async": "5.0.0",
+ "System.Reflection.Emit.Lightweight": "4.7.0"
+ }
+ },
+ "NPoco.SqlServer": {
+ "type": "Transitive",
+ "resolved": "5.7.1",
+ "contentHash": "39esICE6E8oMQF3E2PgimW7EpjNyuRJgPZDzzYFPjtBoSw8TUfAVRNkSiQ9LND812Yf7vCX9DCIOi/roOtrxHA==",
+ "dependencies": {
+ "Microsoft.Data.SqlClient": "3.0.0",
+ "NPoco": "5.7.1",
+ "Polly": "7.2.3"
+ }
+ },
+ "NUglify": {
+ "type": "Transitive",
+ "resolved": "1.20.2",
+ "contentHash": "vz/SjCdpxr0Jp09VzMeezid7rwbXimik2QO1dzxzDcN3bXGJloDGDVh0zoD6DA23y6yrRzxv1ZKJ3kKzV3rqyA=="
+ },
+ "OpenIddict": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "j7jd8qJbHiZjVrVmHmp/ZfrVuxjcuwMTNhI5r404/KR4z8QtI78cUOaEwCGJUNHQU9/YJ836/bKXs9S9GFY6gw==",
+ "dependencies": {
+ "OpenIddict.Abstractions": "4.10.1",
+ "OpenIddict.Client": "4.10.1",
+ "OpenIddict.Client.SystemIntegration": "4.10.1",
+ "OpenIddict.Client.SystemNetHttp": "4.10.1",
+ "OpenIddict.Client.WebIntegration": "4.10.1",
+ "OpenIddict.Core": "4.10.1",
+ "OpenIddict.Server": "4.10.1",
+ "OpenIddict.Validation": "4.10.1",
+ "OpenIddict.Validation.ServerIntegration": "4.10.1",
+ "OpenIddict.Validation.SystemNetHttp": "4.10.1"
+ }
+ },
+ "OpenIddict.Abstractions": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "r2oCgsk8hG82TmT5g7yTzGLrmZGTwn6/zISMXqqpM9rjQUH0/FZ7NgwJy0f1j+HZSyBNj3jjYQIjx6a7qYBYqA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Primitives": "8.0.0",
+ "Microsoft.IdentityModel.Tokens": "7.0.0"
+ }
+ },
+ "OpenIddict.AspNetCore": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "Fcfi+8qFeALV3eZ9P5sZa5xmIsqdfyHOmhq0r1qbVw0nC7cOj/+grKKiRpFRqgYEuMeFoq3V45K1BgzkoKUw1A==",
+ "dependencies": {
+ "OpenIddict": "4.10.1",
+ "OpenIddict.Client.AspNetCore": "4.10.1",
+ "OpenIddict.Client.DataProtection": "4.10.1",
+ "OpenIddict.Server.AspNetCore": "4.10.1",
+ "OpenIddict.Server.DataProtection": "4.10.1",
+ "OpenIddict.Validation.AspNetCore": "4.10.1",
+ "OpenIddict.Validation.DataProtection": "4.10.1"
+ }
+ },
+ "OpenIddict.Client": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "bPIySBhDi9A8GmH+eOkjfeNvJRe9MXWXVZoKeX0dGRdb5v9D54wSDWNgq0koqkG29rZFElUDbxcV1KNMRQ2nEQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging": "8.0.0",
+ "Microsoft.IdentityModel.JsonWebTokens": "7.0.0",
+ "Microsoft.IdentityModel.Protocols": "7.0.0",
+ "OpenIddict.Abstractions": "4.10.1"
+ }
+ },
+ "OpenIddict.Client.AspNetCore": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "+JcTh5d15a3ZYX5+39KUHrKJ6uLkKpDiSApA+g204z3Mm1SZNCcR/VIwWm/oNRkIHuLeX7qkQXz/rutru+JKVQ==",
+ "dependencies": {
+ "OpenIddict.Client": "4.10.1"
+ }
+ },
+ "OpenIddict.Client.DataProtection": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "pjx1cTcOoCIqkuX2ciy81EY90quR8INtDneGjqOefvMYEUSZVIpEcSaf+qVlS78T815SxkIR3aBDzKfrxkcLMQ==",
+ "dependencies": {
+ "OpenIddict.Client": "4.10.1"
+ }
+ },
+ "OpenIddict.Client.SystemIntegration": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "QDDJ2omYvHNYIC2b4jRGAQ55JSFm7I+uvrYFq7KHUDXXxcRzC8sXRxswWZcAXrfmSlrW4GtpcPB7C2bIiymyng==",
+ "dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "8.0.0",
+ "OpenIddict.Client": "4.10.1"
+ }
+ },
+ "OpenIddict.Client.SystemNetHttp": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "KWxeqXucLiUuUxPkouQUstbsrNf9nN/s5cbr76cQKm15qmKQtr9sOSS8PodCd/Mz5pFQ/n3/z0glx6BMsC348A==",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Polly": "8.0.0",
+ "OpenIddict.Client": "4.10.1"
+ }
+ },
+ "OpenIddict.Client.WebIntegration": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "/orH7xk6N/AmOHdaK+x3Dsc+DZ/pPgnxrYYSOYkLfOnpZzq9K+B8Z+RM/RZO9BGVFKz12KOoA9g0geDHuH/Dlw==",
+ "dependencies": {
+ "OpenIddict.Client": "4.10.1",
+ "OpenIddict.Client.SystemNetHttp": "4.10.1"
+ }
+ },
+ "OpenIddict.Core": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "/us1vkDDpwX3aWrW1tEuKaJeMSQvfhT4mFgrZiaXIjG3xG3e+ye5oOaTtitNwwXZpe0BSkRsWhNXQzASoc1S3w==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Memory": "8.0.0",
+ "Microsoft.Extensions.Logging": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0",
+ "OpenIddict.Abstractions": "4.10.1"
+ }
+ },
+ "OpenIddict.EntityFrameworkCore": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "NaxMQtic8SCjboTqAYNJtF/5bnzjyYpssxw7cG0JnIth3gcsSP+IWQ71MgOkzKEyw/0l/QNgUmbvws0O9COl3Q==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Relational": "8.0.0",
+ "OpenIddict.Core": "4.10.1",
+ "OpenIddict.EntityFrameworkCore.Models": "4.10.1"
+ }
+ },
+ "OpenIddict.EntityFrameworkCore.Models": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "yTui1pRlrx9BEPO48EgpcGibZDQ/8O93kKge41rpVZ0IdpQyg6CTohQhcj2AZf5K8rJ5MRckp659ImZvHc3vqQ=="
+ },
+ "OpenIddict.Server": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "uNkmRF2u5deEkmdS6gV+qz6VJ4lPskAEndbzhq2slka9VtRjysZxVS2Dt6MoNCDVFjl8bEz1wCaZHyGsPmO2tg==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging": "8.0.0",
+ "Microsoft.IdentityModel.JsonWebTokens": "7.0.0",
+ "OpenIddict.Abstractions": "4.10.1"
+ }
+ },
+ "OpenIddict.Server.AspNetCore": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "PmJPcexIaX4hPwIypbOIQvZhqF27TX5gF8+8ZwgxSXWh4P0gi1mQhq2Q7i0PIoYP4N+S/YwR8Y8W9XZ6B6891A==",
+ "dependencies": {
+ "OpenIddict.Server": "4.10.1"
+ }
+ },
+ "OpenIddict.Server.DataProtection": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "HwUdJMujMoflYSfVbkAYvlFzAWHgPr7V0hnFHLsbErFtyFBidh0klVzisTot+CW0DZD6PfM6n493NEqwb78hzQ==",
+ "dependencies": {
+ "OpenIddict.Server": "4.10.1"
+ }
+ },
+ "OpenIddict.Validation": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "T5IaWSjjdy1Wwwi4fxrnHZJoaLq9uF+/wPd8YsI4Pw5JXGuxXLOpSTdFq6VH2hnhhC0ZjWwWmZh3pUaaM+j5eg==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging": "8.0.0",
+ "Microsoft.IdentityModel.JsonWebTokens": "7.0.0",
+ "Microsoft.IdentityModel.Protocols": "7.0.0",
+ "OpenIddict.Abstractions": "4.10.1"
+ }
+ },
+ "OpenIddict.Validation.AspNetCore": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "uiWPz7kr2lOvShG/UN3iwBoPBalA42U8zQPTY5lPZ4sqo9vwZjvfMTECNMxZnEczX2aqvGA50IhcRGwhAlrQ+g==",
+ "dependencies": {
+ "OpenIddict.Validation": "4.10.1"
+ }
+ },
+ "OpenIddict.Validation.DataProtection": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "AKXA1RXxz2ipJKhATJR7Ds1gOn2P9V4PbGhYzleNL2kfs5f+/bxTP3ASrjE92MmxLF8T/ltrQWWFRwAVAzD5cg==",
+ "dependencies": {
+ "OpenIddict.Validation": "4.10.1"
+ }
+ },
+ "OpenIddict.Validation.ServerIntegration": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "op+y9gx9ZrBi1gnfuCLp5V/Cv9J/MemZq1qjJ/3Umu9jDW3L6XeO0dT2w0EU6+v8ZlMleJDbVIfhVvKvak0Q9g==",
+ "dependencies": {
+ "OpenIddict.Server": "4.10.1",
+ "OpenIddict.Validation": "4.10.1"
+ }
+ },
+ "OpenIddict.Validation.SystemNetHttp": {
+ "type": "Transitive",
+ "resolved": "4.10.1",
+ "contentHash": "xuLJK1Bdvx/3ER7fKShi8SHz2yKqdmWFyk4/2kDZ3xfN+FRtthSsvBRKOPOkPnb/Tbtfy/GD7UXKz0DBgXOLag==",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Polly": "8.0.0",
+ "OpenIddict.Validation": "4.10.1"
+ }
+ },
+ "Polly": {
+ "type": "Transitive",
+ "resolved": "7.2.4",
+ "contentHash": "bw00Ck5sh6ekduDE3mnCo1ohzuad946uslCDEENu3091+6UKnBuKLo4e+yaNcCzXxOZCXWY2gV4a35+K1d4LDA=="
+ },
+ "Polly.Extensions.Http": {
+ "type": "Transitive",
+ "resolved": "3.0.0",
+ "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==",
+ "dependencies": {
+ "Polly": "7.1.0"
+ }
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.2",
+ "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g=="
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.2",
+ "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw=="
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.2",
+ "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg=="
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
+ "dependencies": {
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.2",
+ "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==",
+ "dependencies": {
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
+ }
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.2",
+ "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ=="
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.2",
+ "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.2",
+ "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w=="
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.2",
+ "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg=="
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.2",
+ "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw=="
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.2",
+ "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w=="
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.2",
+ "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg=="
+ },
+ "Serilog": {
+ "type": "Transitive",
+ "resolved": "3.1.1",
+ "contentHash": "P6G4/4Kt9bT635bhuwdXlJ2SCqqn2nhh4gqFqQueCOr9bK/e7W9ll/IoX1Ter948cV2Z/5+5v8pAfJYUISY03A=="
+ },
+ "Serilog.AspNetCore": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "B/X+wAfS7yWLVOTD83B+Ip9yl4MkhioaXj90JSoWi1Ayi8XHepEnsBdrkojg08eodCnmOKmShFUN2GgEc6c0CQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "8.0.0",
+ "Microsoft.Extensions.Logging": "8.0.0",
+ "Serilog": "3.1.1",
+ "Serilog.Extensions.Hosting": "8.0.0",
+ "Serilog.Extensions.Logging": "8.0.0",
+ "Serilog.Formatting.Compact": "2.0.0",
+ "Serilog.Settings.Configuration": "8.0.0",
+ "Serilog.Sinks.Console": "5.0.0",
+ "Serilog.Sinks.Debug": "2.0.0",
+ "Serilog.Sinks.File": "5.0.0"
+ }
+ },
+ "Serilog.Enrichers.Process": {
+ "type": "Transitive",
+ "resolved": "2.0.2",
+ "contentHash": "T9EjKKLsL6qC/3eOLUAKEPBLEqPDmt5BLXaQdPMaxJzuex+MeXA8DuAiPboUaftp3kbnCN4ZgZpDvs+Fa7OHuw==",
+ "dependencies": {
+ "Serilog": "2.3.0"
+ }
+ },
+ "Serilog.Enrichers.Thread": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "85lWsGRJpRxvKT6j/H67no55SUBsBIvp556TKuBTGhjtoPeq+L7j/sDWbgAtvT0p7u7/phJyX6j35PQ4Vtqw0g==",
+ "dependencies": {
+ "Serilog": "2.3.0"
+ }
+ },
+ "Serilog.Expressions": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "dsC8GtalMDXMzywA60fHeBvqAjQ1EM75zSrdA7j7TxJfmrfss6BOxzgoT5thqjY+icLNbovUsC5KTYRlXzCpXg==",
+ "dependencies": {
+ "Serilog": "3.1.0"
+ }
+ },
+ "Serilog.Extensions.Hosting": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "db0OcbWeSCvYQkHWu6n0v40N4kKaTAXNjlM3BKvcbwvNzYphQFcBR+36eQ/7hMMwOkJvAyLC2a9/jNdUL5NjtQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Hosting.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
+ "Serilog": "3.1.1",
+ "Serilog.Extensions.Logging": "8.0.0"
+ }
+ },
+ "Serilog.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "YEAMWu1UnWgf1c1KP85l1SgXGfiVo0Rz6x08pCiPOIBt2Qe18tcZLvdBUuV5o1QHvrs8FAry9wTIhgBRtjIlEg==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging": "8.0.0",
+ "Serilog": "3.1.1"
+ }
+ },
+ "Serilog.Formatting.Compact": {
+ "type": "Transitive",
+ "resolved": "2.0.0",
+ "contentHash": "ob6z3ikzFM3D1xalhFuBIK1IOWf+XrQq+H4KeH4VqBcPpNcmUgZlRQ2h3Q7wvthpdZBBoY86qZOI2LCXNaLlNA==",
+ "dependencies": {
+ "Serilog": "3.1.0"
+ }
+ },
+ "Serilog.Formatting.Compact.Reader": {
+ "type": "Transitive",
+ "resolved": "3.0.0",
+ "contentHash": "A4tBQ36969szfQMwnxaikNKxQs7lcGLPPcv45ghr3RrJK9hko71t8TNSdMSAWU25ZK6JSmH/RU14GwSo4v5E4Q==",
+ "dependencies": {
+ "Newtonsoft.Json": "13.0.3",
+ "Serilog": "3.1.0"
+ }
+ },
+ "Serilog.Settings.Configuration": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "nR0iL5HwKj5v6ULo3/zpP8NMcq9E2pxYA6XKTSWCbugVs4YqPyvaqaKOY+OMpPivKp7zMEpax2UKHnDodbRB0Q==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "8.0.0",
+ "Microsoft.Extensions.DependencyModel": "8.0.0",
+ "Serilog": "3.1.1"
+ }
+ },
+ "Serilog.Sinks.Async": {
+ "type": "Transitive",
+ "resolved": "1.5.0",
+ "contentHash": "csHYIqAwI4Gy9oAhXYRwxGrQEAtBg3Ep7WaCzsnA1cZuBZjVAU0n7hWaJhItjO7hbLHh/9gRVxALCUB4Dv+gZw==",
+ "dependencies": {
+ "Serilog": "2.9.0"
+ }
+ },
+ "Serilog.Sinks.Console": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "IZ6bn79k+3SRXOBpwSOClUHikSkp2toGPCZ0teUkscv4dpDg9E2R2xVsNkLmwddE4OpNVO3N0xiYsAH556vN8Q==",
+ "dependencies": {
+ "Serilog": "3.1.0"
+ }
+ },
+ "Serilog.Sinks.Debug": {
+ "type": "Transitive",
+ "resolved": "2.0.0",
+ "contentHash": "Y6g3OBJ4JzTyyw16fDqtFcQ41qQAydnEvEqmXjhwhgjsnG/FaJ8GUqF5ldsC/bVkK8KYmqrPhDO+tm4dF6xx4A==",
+ "dependencies": {
+ "Serilog": "2.10.0"
+ }
+ },
+ "Serilog.Sinks.File": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "uwV5hdhWPwUH1szhO8PJpFiahqXmzPzJT/sOijH/kFgUx+cyoDTMM8MHD0adw9+Iem6itoibbUXHYslzXsLEAg==",
+ "dependencies": {
+ "Serilog": "2.10.0"
+ }
+ },
+ "Serilog.Sinks.Map": {
+ "type": "Transitive",
+ "resolved": "1.0.2",
+ "contentHash": "JbPBAeD5hxUQw8TZg3FlOnqVsSu1269nvqFm5DQ7hc+AmsB+hItl+zMSDphMbPJXjL8KdpMRSWNkGi7zTKRmCA==",
+ "dependencies": {
+ "Serilog": "2.8.0"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "Transitive",
+ "resolved": "3.1.3",
+ "contentHash": "wybtaqZQ1ZRZ4ZeU+9h+PaSeV14nyiGKIy7qRbDfSHzHq4ybqyOcjoifeaYbiKLO1u+PVxLBuy7MF/DMmwwbfg=="
+ },
+ "SixLabors.ImageSharp.Web": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "LoN28idQwfphN6zygY3X1gK9Mwuy6y7Bs5N03sCwfZqUHJRmayc2HRTZLPO+sctvGvC1U4q+xgOwgFMwH2vGVw==",
+ "dependencies": {
+ "Microsoft.IO.RecyclableMemoryStream": "2.3.2",
+ "SixLabors.ImageSharp": "3.1.0"
+ }
+ },
+ "Smidge": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "AnRsxwg4Av7jxa0MkQMbLqdIrWbVZRVQ0KfnO4Mh19Old7lay179QvBnaOPFxAEWnIl4jHiZW8izesJp6TknVw==",
+ "dependencies": {
+ "Smidge.Core": "4.3.0"
+ }
+ },
+ "Smidge.Core": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "B6m6uGpJrOKaJ68eE9clAzZUcURszTNHfoYa4razb3KUJtRXB5fmZvts8+0ffT0/tO09Vu2O/KFfiSZMp6X8Jw==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "5.0.0",
+ "Microsoft.Extensions.Configuration": "5.0.0",
+ "Microsoft.Extensions.Configuration.Json": "5.0.0",
+ "Microsoft.Extensions.FileProviders.Composite": "5.0.0",
+ "Microsoft.Extensions.Hosting.Abstractions": "5.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "5.0.0",
+ "Microsoft.Extensions.Options": "5.0.0"
+ }
+ },
+ "Smidge.InMemory": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fKyR6ICS0YoQLX0D4dIIYTwQEM1IZb8ChYhqLGpVyJ7GiOAawsXt4ZcVnH0XT+ggan2+JzQlLiXGcCdXnb16Xg==",
+ "dependencies": {
+ "Dazinator.Extensions.FileProviders": "2.0.0",
+ "Smidge.Core": "4.3.0",
+ "System.Text.Encodings.Web": "5.0.1"
+ }
+ },
+ "Smidge.Nuglify": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kx5Ulh+o5zLI0Al0POs0nYPldUArErmrAxxccrrxl77MWWrDM3KS5IRWuKDtC42/sZKSzapmJIOwJ8r/1foMCg==",
+ "dependencies": {
+ "Nuglify": "1.20.2",
+ "Smidge": "4.3.0"
+ }
+ },
+ "SQLitePCLRaw.bundle_e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.1.6",
+ "contentHash": "BmAf6XWt4TqtowmiWe4/5rRot6GerAeklmOPfviOvwLoF5WwgxcJHAxZtySuyW9r9w+HLILnm8VfJFLCUJYW8A==",
+ "dependencies": {
+ "SQLitePCLRaw.lib.e_sqlite3": "2.1.6",
+ "SQLitePCLRaw.provider.e_sqlite3": "2.1.6"
+ }
+ },
+ "SQLitePCLRaw.core": {
+ "type": "Transitive",
+ "resolved": "2.1.6",
+ "contentHash": "wO6v9GeMx9CUngAet8hbO7xdm+M42p1XeJq47ogyRoYSvNSp0NGLI+MgC0bhrMk9C17MTVFlLiN6ylyExLCc5w==",
+ "dependencies": {
+ "System.Memory": "4.5.3"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.1.6",
+ "contentHash": "2ObJJLkIUIxRpOUlZNGuD4rICpBnrBR5anjyfUFQep4hMOIeqW+XGQYzrNmHSVz5xSWZ3klSbh7sFR6UyDj68Q=="
+ },
+ "SQLitePCLRaw.provider.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.1.6",
+ "contentHash": "PQ2Oq3yepLY4P7ll145P3xtx2bX8xF4PzaKPRpw9jZlKvfe4LE/saAV82inND9usn1XRpmxXk7Lal3MTI+6CNg==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.1.6"
+ }
+ },
+ "Swashbuckle.AspNetCore": {
+ "type": "Transitive",
+ "resolved": "6.5.0",
+ "contentHash": "FK05XokgjgwlCI6wCT+D4/abtQkL1X1/B9Oas6uIwHFmYrIO9WUD5aLC9IzMs9GnHfUXOtXZ2S43gN1mhs5+aA==",
+ "dependencies": {
+ "Microsoft.Extensions.ApiDescription.Server": "6.0.5",
+ "Swashbuckle.AspNetCore.Swagger": "6.5.0",
+ "Swashbuckle.AspNetCore.SwaggerGen": "6.5.0",
+ "Swashbuckle.AspNetCore.SwaggerUI": "6.5.0"
+ }
+ },
+ "Swashbuckle.AspNetCore.Swagger": {
+ "type": "Transitive",
+ "resolved": "6.5.0",
+ "contentHash": "XWmCmqyFmoItXKFsQSwQbEAsjDKcxlNf1l+/Ki42hcb6LjKL8m5Db69OTvz5vLonMSRntYO1XLqz0OP+n3vKnA==",
+ "dependencies": {
+ "Microsoft.OpenApi": "1.2.3"
+ }
+ },
+ "Swashbuckle.AspNetCore.SwaggerGen": {
+ "type": "Transitive",
+ "resolved": "6.5.0",
+ "contentHash": "Y/qW8Qdg9OEs7V013tt+94OdPxbRdbhcEbw4NiwGvf4YBcfhL/y7qp/Mjv/cENsQ2L3NqJ2AOu94weBy/h4KvA==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.Swagger": "6.5.0"
+ }
+ },
+ "Swashbuckle.AspNetCore.SwaggerUI": {
+ "type": "Transitive",
+ "resolved": "6.5.0",
+ "contentHash": "OvbvxX+wL8skxTBttcBsVxdh73Fag4xwqEU2edh4JMn7Ws/xJHnY/JB1e9RoCb6XpDxUF3hD9A0Z1lEUx40Pfw=="
+ },
+ "System.AppContext": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Concurrent": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Collections.Immutable": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg=="
+ },
+ "System.ComponentModel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.ComponentModel.Annotations": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg=="
+ },
+ "System.ComponentModel.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==",
+ "dependencies": {
+ "System.ComponentModel": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Configuration.ConfigurationManager": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==",
+ "dependencies": {
+ "System.Diagnostics.EventLog": "8.0.0",
+ "System.Security.Cryptography.ProtectedData": "8.0.0"
+ }
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Data.Common": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lm6E3T5u7BOuEH0u18JpbJHxBfOJPuCyl4Kg1RH10ktYLp5uEEE1xKrHW56/We4SnZpGAuCc9N0MJpSDhTHZGQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "c9xLpVz6PL9lp/djOWtk5KPDZq3cSYpmXoJQY524EOtuFl5z9ZtsotpsyrDW40U1DRnQSYvcPKEUV0X//u6gkQ=="
+ },
+ "System.Diagnostics.EventLog": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A=="
+ },
+ "System.Diagnostics.StackTrace": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiHg0vgtd35/DM9jvtaC1eKRpWZxr0gcQd643ABG7GnvSlf5pOkY2uyd42mMOJoOmKvnpNj0F4tuoS1pacTwYw==",
+ "dependencies": {
+ "System.IO.FileSystem": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Metadata": "1.4.1",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Dynamic.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Formats.Asn1": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "AJukBuLoe3QeAF+mfaRKQb2dgyrvt340iMBHYv+VdBzCUM06IxGlvl0o/uPOS7lHnXPN6u8fFRHSHudx5aTi8w=="
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IdentityModel.Tokens.Jwt": {
+ "type": "Transitive",
+ "resolved": "7.1.2",
+ "contentHash": "Thhbe1peAmtSBFaV/ohtykXiZSOkx59Da44hvtWfIMFofDA3M3LaVyjstACf2rKGn4dEDR2cUpRAZ0Xs/zB+7Q==",
+ "dependencies": {
+ "Microsoft.IdentityModel.JsonWebTokens": "7.1.2",
+ "Microsoft.IdentityModel.Tokens": "7.1.2"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.Compression.ZipFile": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "SxHB3nuNrpptVk+vZ/F+7OHEpoHUIKKMl02bUmYHQr1r+glbZQxs7pRtsf4ENO29TVm2TH3AEeep2fJcy92oYw==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO.Hashing": {
+ "type": "Transitive",
+ "resolved": "7.0.0",
+ "contentHash": "sDnWM0N3AMCa86LrKTWeF3BZLD2sgWyYUc7HL6z4+xyDZNQRwzmxbo4qP2rX2MqC+Sy1/gOSRDah5ltxY5jPxw=="
+ },
+ "System.IO.Pipelines": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA=="
+ },
+ "System.Linq": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Linq.Async": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "cPtIuuH8TIjVHSi2ewwReWGW1PfChPE0LxPIDlfwVcLuTM9GANFTXiMB7k3aC4sk3f0cQU25LNKzx+jZMxijqw=="
+ },
+ "System.Linq.Expressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Emit.Lightweight": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.4",
+ "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw=="
+ },
+ "System.Memory.Data": {
+ "type": "Transitive",
+ "resolved": "1.0.2",
+ "contentHash": "JGkzeqgBsiZwKJZ1IxPNsDFZDhUvuEdX8L8BDC8N3KOj+6zMcNU28CNN59TpZE/VJYy9cP+5M+sbxtWJx3/xtw==",
+ "dependencies": {
+ "System.Text.Encodings.Web": "4.7.2",
+ "System.Text.Json": "4.6.0"
+ }
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.4",
+ "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Numerics.Vectors": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ=="
+ },
+ "System.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "a4OLB4IITxAXJeV74MDx49Oq2+PsF6Sml54XAFv+2RyWwtDBcabzoxiiJRhdhx+gaohLh4hEGCLQyBozXoQPqA=="
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "7.0.0",
+ "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==",
+ "dependencies": {
+ "System.Collections.Immutable": "7.0.0"
+ }
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.TypeExtensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.1",
+ "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.3"
+ }
+ },
+ "System.Runtime.Caching": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "4TmlmvGp4kzZomm7J2HJn6IIx0UUrQyhBDyb5O1XiunZlQImXW+B8b7W/sTPcXhSf9rp5NR5aDtQllwbB5elOQ==",
+ "dependencies": {
+ "System.Configuration.ConfigurationManager": "8.0.0"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg=="
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Runtime.Numerics": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Runtime.Serialization.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==",
+ "dependencies": {
+ "System.Formats.Asn1": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Pkcs": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "ULmp3xoOwNYjOYp4JZ2NK/6NdTgiN1GQXzVVN1njQ7LOZ0d0B9vyMnhyqbIi9Qw4JXj1JgCsitkTShboHRx7Eg==",
+ "dependencies": {
+ "System.Formats.Asn1": "8.0.0"
+ }
+ },
+ "System.Security.Cryptography.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.ProtectedData": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg=="
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Xml": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "HQSFbakswZ1OXFz2Bt3AJlC6ENDqWeVpgqhf213xqQUMDifzydOHIKVb1RV4prayobvR3ETIScMaQdDF2hwGZA==",
+ "dependencies": {
+ "System.Security.Cryptography.Pkcs": "8.0.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.CodePages": {
+ "type": "Transitive",
+ "resolved": "7.0.0",
+ "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ=="
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.Encodings.Web": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
+ },
+ "System.Text.Json": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "OdrZO2WjkiEG6ajEFRABTRCi/wuXQPxeV6g8xvUJqdxMvvuCCEk86zPla8UiIQJz3durtUEbNyY/3lIhS0yZvQ==",
+ "dependencies": {
+ "System.Text.Encodings.Web": "8.0.0"
+ }
+ },
+ "System.Text.RegularExpressions": {
+ "type": "Transitive",
+ "resolved": "4.3.1",
+ "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==",
+ "dependencies": {
+ "System.Runtime": "4.3.1"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.AccessControl": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "/fmzEf1UYrdCzfOIHVJ2cx3v9DHLLLMkUrodpzJGW17N+K+SSmBD8OA/BGmtfN1Ae0Ex3rBjQVufnIi5zKefuQ==",
+ "dependencies": {
+ "System.Security.AccessControl": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0"
+ }
+ },
+ "System.Threading.Channels": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA=="
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.5.4",
+ "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg=="
+ },
+ "System.Threading.Tasks.Parallel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbjBNZHf/vQCfcdhzx7knsiygoCKgxL8mZOeocXZn5gWhCdzHIq6bYNKWX0LAJCWYP7bds4yBK8p06YkP0oa0g==",
+ "dependencies": {
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Xml.ReaderWriter": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Tasks.Extensions": "4.3.0"
+ }
+ },
+ "System.Xml.XDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "Umbraco.Cms.Api.Common": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "UfXEnioHBmFM/iTKRpws/ykkMLaqzHdduJKJN+i2xXL2spWYLiLUmAWmjmcejDjlIv99SEOjfaq8hK9ATUUx8w==",
+ "dependencies": {
+ "OpenIddict.Abstractions": "4.10.1",
+ "OpenIddict.AspNetCore": "4.10.1",
+ "Swashbuckle.AspNetCore": "6.5.0",
+ "Umbraco.Cms.Core": "[13.3.2, 14.0.0)",
+ "Umbraco.Cms.Web.Common": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.Cms.Api.Delivery": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "rfEAE5dM6JvMH5sssd67eq+URllY/rGk9pwW/nox+6vMjfsfZGCQet6ybBmOEHUz7gRir1kzJorrO01PHjRdqw==",
+ "dependencies": {
+ "Umbraco.Cms.Api.Common": "[13.3.2, 14.0.0)",
+ "Umbraco.Cms.Web.Common": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.Cms.Core": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "xlP7ES0bvR0DlRviW4LPW2+lUoBHZzsa3i7I+4wm7VSjE8pZ3c0Mih7d4YAUFduUN3riTNliNMiGtNnrx3bN0g==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.FileProviders.Embedded": "8.0.1",
+ "Microsoft.Extensions.FileProviders.Physical": "8.0.0",
+ "Microsoft.Extensions.Hosting.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Identity.Core": "8.0.1",
+ "Microsoft.Extensions.Logging": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.1",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0",
+ "Microsoft.Extensions.Options.DataAnnotations": "8.0.0",
+ "System.Runtime.Caching": "8.0.0"
+ }
+ },
+ "Umbraco.Cms.Examine.Lucene": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "nnsjuN6FITnO3HWr3DrugoHNDr3NHrvSXh+idoNmCcEpG3I+1Vn2Qll6DPd4VUq1XJvov8YRiVm9Mf/bfXZZDg==",
+ "dependencies": {
+ "Examine": "3.2.0",
+ "System.Security.Cryptography.Xml": "8.0.0",
+ "Umbraco.Cms.Infrastructure": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.Cms.Imaging.ImageSharp": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "Vvdg2GfxZad68Cmk47msJIlS00MmFANtbWMhxCIYFF/gQ5BfxTcvrY5owxHkeGAH+qHAGQlBV0eo7Pfb0zadqw==",
+ "dependencies": {
+ "SixLabors.ImageSharp": "3.1.3",
+ "SixLabors.ImageSharp.Web": "3.1.0",
+ "Umbraco.Cms.Web.Common": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.Cms.Infrastructure": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "bedfXSzLkq8nZGBKrnT3gLN0U8LSE3tKccLR4cKyDfmOXdPQdZf8ppIXB8mZ/LkrOs6IrSuTpBLSVrPYxhVSNg==",
+ "dependencies": {
+ "Examine.Core": "3.2.0",
+ "HtmlAgilityPack": "1.11.57",
+ "MailKit": "4.3.0",
+ "Markdown": "2.2.1",
+ "Microsoft.CodeAnalysis.CSharp": "4.8.0",
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Configuration.Json": "8.0.0",
+ "Microsoft.Extensions.DependencyInjection": "8.0.0",
+ "Microsoft.Extensions.Http": "8.0.0",
+ "Microsoft.Extensions.Identity.Stores": "8.0.1",
+ "MiniProfiler.Shared": "4.3.8",
+ "NPoco": "5.7.1",
+ "Newtonsoft.Json": "13.0.3",
+ "OpenIddict.Abstractions": "4.10.1",
+ "Serilog": "3.1.1",
+ "Serilog.Enrichers.Process": "2.0.2",
+ "Serilog.Enrichers.Thread": "3.1.0",
+ "Serilog.Expressions": "4.0.0",
+ "Serilog.Extensions.Hosting": "8.0.0",
+ "Serilog.Formatting.Compact": "2.0.0",
+ "Serilog.Formatting.Compact.Reader": "3.0.0",
+ "Serilog.Settings.Configuration": "8.0.0",
+ "Serilog.Sinks.Async": "1.5.0",
+ "Serilog.Sinks.File": "5.0.0",
+ "Serilog.Sinks.Map": "1.0.2",
+ "Umbraco.Cms.Core": "[13.3.2, 14.0.0)",
+ "ncrontab": "3.3.3"
+ }
+ },
+ "Umbraco.Cms.Persistence.EFCore": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "hQpvVCCe5nDO+1BqUIF14PRbPnNg967P+MT8Ct+G8Kc7WobdmbbPi4ZImi91WpzQRAd4Xm46P4YGkf0lgBUthQ==",
+ "dependencies": {
+ "Azure.Identity": "1.10.4",
+ "Microsoft.EntityFrameworkCore.SqlServer": "8.0.1",
+ "Microsoft.EntityFrameworkCore.Sqlite": "8.0.1",
+ "OpenIddict.EntityFrameworkCore": "4.10.1",
+ "Umbraco.Cms.Core": "[13.3.2, 14.0.0)",
+ "Umbraco.Cms.Infrastructure": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.Cms.Persistence.EFCore.Sqlite": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "oVxcDF9Kna2ha+i9JY7Nisg6YDpun5kAr/6TB/YddN/cPZWC5SuM0IS0IgzoHLo0sky3isgLWQVewANlf1eX6g==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Sqlite": "8.0.1",
+ "Umbraco.Cms.Persistence.EFCore": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.Cms.Persistence.EFCore.SqlServer": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "kf7n2mYanotzuk2dusI0hZN6O9AdArQzqX7j0N596UadADXKJ+dhNVrw7tybE25BIOOV4P6S3z5PZkaxzCaUkg==",
+ "dependencies": {
+ "Azure.Identity": "1.10.4",
+ "Microsoft.EntityFrameworkCore.SqlServer": "8.0.1",
+ "Umbraco.Cms.Persistence.EFCore": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.Cms.Persistence.Sqlite": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "LASMPgPJUxWTWsglZ+Iq+0jqIqjuY2BT+jxqd411qNApaeJiHPVkHg/SVDzUx3JlQkT+wW80Q0Jinjopyr0SeQ==",
+ "dependencies": {
+ "Microsoft.Data.Sqlite": "8.0.1",
+ "Umbraco.Cms.Infrastructure": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.Cms.Persistence.SqlServer": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "/DX1S2eHbJJcnU3y+j1k7Gf2aVLDQNvmdZhD8zIzD6wJUtf3ByuVFVaZcsPh38+K+sP5QYpbeEH6zt2hkgqQUg==",
+ "dependencies": {
+ "Azure.Identity": "1.10.4",
+ "NPoco.SqlServer": "5.7.1",
+ "Umbraco.Cms.Infrastructure": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.Cms.PublishedCache.NuCache": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "lAD0kY1B+9ybaKlEgLWmepwxxfxRsilqdKgSbwQMRCapNKpDqpJeInGZ4e1clc6F21A0gXnAJNafB3IpEOSFIg==",
+ "dependencies": {
+ "K4os.Compression.LZ4": "1.3.6",
+ "MessagePack": "2.5.140",
+ "Newtonsoft.Json": "13.0.3",
+ "Umbraco.CSharpTest.Net.Collections": "15.0.0",
+ "Umbraco.Cms.Infrastructure": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.Cms.StaticAssets": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "Z5bv5eS8EcYAvSuFRDkEierW+EeMVcWDVRJnC14UxYBolV4UUtlWZ4DCN1w75KGY+Mg++dIQktZRujESH/57VQ==",
+ "dependencies": {
+ "Umbraco.Cms.Web.BackOffice": "[13.3.2, 14.0.0)",
+ "Umbraco.Cms.Web.Website": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.Cms.Targets": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "i+iBKz3L0K+t1e/+5raBbJOZ+gBYv53W3Cb2yI0tkJvMmvBOsU+wN86CMiaheLslQBPNqGQZ2jpDmDkdS5Fq/Q==",
+ "dependencies": {
+ "Umbraco.Cms.Api.Delivery": "[13.3.2, 14.0.0)",
+ "Umbraco.Cms.StaticAssets": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.Cms.Web.BackOffice": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "LOcR2E2iaISVVjAtP33EFSOcWTBrzm+Yfkd52VuURuIsorMA9YlL55Ek+lpWJYzzACHLAzy4oje6aUFlT8qxVA==",
+ "dependencies": {
+ "Newtonsoft.Json": "13.0.3",
+ "Serilog.AspNetCore": "8.0.1",
+ "Umbraco.Cms.Web.Common": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.Cms.Web.Common": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "YYO/ItzOYS1CDKmhObFcBI94PE0gxyUCVdx5j554UzLYpGEvmcIvgaN2HyLaqYBg4NFPYQxI/jCb0WCVnHYs7g==",
+ "dependencies": {
+ "Asp.Versioning.Mvc": "7.1.1",
+ "Asp.Versioning.Mvc.ApiExplorer": "7.1.0",
+ "Dazinator.Extensions.FileProviders": "2.0.0",
+ "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "8.0.1",
+ "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation": "8.0.1",
+ "MiniProfiler.AspNetCore.Mvc": "4.3.8",
+ "Serilog.AspNetCore": "8.0.1",
+ "Smidge.InMemory": "4.3.0",
+ "Smidge.Nuglify": "4.3.0",
+ "System.Net.Http": "4.3.4",
+ "System.Text.RegularExpressions": "4.3.1",
+ "Umbraco.Cms.Examine.Lucene": "[13.3.2, 14.0.0)",
+ "Umbraco.Cms.PublishedCache.NuCache": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.Cms.Web.Website": {
+ "type": "Transitive",
+ "resolved": "13.3.2",
+ "contentHash": "VPwj82pZz+sEHCYag/LO9eqZvSCV+ESK1l3nrf97ITpBl8svvKQvfVFpZh37Gs4rT8OTmLgg2+jB6h43tngziA==",
+ "dependencies": {
+ "Umbraco.Cms.Web.Common": "[13.3.2, 14.0.0)"
+ }
+ },
+ "Umbraco.CSharpTest.Net.Collections": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "YSDIkxq44VMy2N3jBTwJBJ/ZjGyuyb0GRyfQAUIma07dCHIbjXgKXjZaAxVa6ik3XTqgcyATvwYJL0EBtAClwA=="
+ },
+ "Yarp.ReverseProxy": {
+ "type": "Transitive",
+ "resolved": "2.1.0",
+ "contentHash": "VgRuCBxmh5ND4VuFhvIN3AAeoxFhYkS2hNINk6AVCrOVTlpk7OwdrTXi8NHACfqfhDL+/oYCZrF9RxN+yiYnEg==",
+ "dependencies": {
+ "System.IO.Hashing": "7.0.0"
+ }
+ },
+ "nikcio.uheadless": {
+ "type": "Project",
+ "dependencies": {
+ "HotChocolate.AspNetCore": "[13.9.5, )",
+ "HotChocolate.AspNetCore.Authorization": "[13.9.5, )",
+ "Microsoft.AspNetCore.Authentication.JwtBearer": "[8.0.6, )",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[8.0.1, )",
+ "Microsoft.Extensions.Logging.Abstractions": "[8.0.1, )",
+ "Umbraco.Cms.Web.Common": "[13.0.0, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/examples/starter-example/starter-example.csproj b/examples/starter-example/starter-example.csproj
new file mode 100644
index 00000000..46e8b04e
--- /dev/null
+++ b/examples/starter-example/starter-example.csproj
@@ -0,0 +1,31 @@
+
+
+ net8.0
+ enable
+ enable
+ starter_example
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ false
+ false
+
+
+
diff --git a/examples/starter-example/umbraco/Data/starter-examples.sqlite b/examples/starter-example/umbraco/Data/starter-examples.sqlite
new file mode 100644
index 0000000000000000000000000000000000000000..9a472209435d88229f65ab7a0ca30d67df87a462
GIT binary patch
literal 4096
zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WY9}{#S79dK(-m98b?E5
nGz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nC=3ArNJIx=
literal 0
HcmV?d00001
diff --git a/examples/starter-example/wwwroot/favicon.ico b/examples/starter-example/wwwroot/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..c0749ddf7f1b68606b0672aa8d709779d6b0817a
GIT binary patch
literal 15406
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
literal 0
HcmV?d00001
diff --git a/src/Nikcio.UHeadless.IntegrationTests.TestProject/Properties/launchSettings.json b/src/Nikcio.UHeadless.IntegrationTests.TestProject/Properties/launchSettings.json
index b6754479..1bf22b82 100644
--- a/src/Nikcio.UHeadless.IntegrationTests.TestProject/Properties/launchSettings.json
+++ b/src/Nikcio.UHeadless.IntegrationTests.TestProject/Properties/launchSettings.json
@@ -1,22 +1,15 @@
{
"$schema": "https://json.schemastore.org/launchsettings.json",
- "iisSettings": {
- "windowsAuthentication": false,
- "anonymousAuthentication": true,
- "iisExpress": {
- "applicationUrl": "http://localhost:51493",
- "sslPort": 44321
- }
- },
"profiles": {
"Umbraco.Web.UI": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
+ "launchUrl": "umbraco",
"applicationUrl": "https://localhost:44321;http://localhost:51493",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
- }
+ }
}
}
}
diff --git a/src/Nikcio.UHeadless.IntegrationTests.TestProject/appsettings.json b/src/Nikcio.UHeadless.IntegrationTests.TestProject/appsettings.json
index 483a7516..2b4284a3 100644
--- a/src/Nikcio.UHeadless.IntegrationTests.TestProject/appsettings.json
+++ b/src/Nikcio.UHeadless.IntegrationTests.TestProject/appsettings.json
@@ -26,7 +26,6 @@
"Global": {
"Id": "73924f79-1a6c-4830-84c3-623e78abb019",
"SanitizeTinyMce": true,
- "MainDomLock": "SqlMainDomLock",
"UseHttps": true,
"InstallMissingDatabase": true
},
diff --git a/src/Nikcio.UHeadless.IntegrationTests.TestProject/umbraco/Data/Default-Tests.sqlite b/src/Nikcio.UHeadless.IntegrationTests.TestProject/umbraco/Data/Default-Tests.sqlite
index 0db3046cdcc9718207baa58add5bde325d3a7d0b..7c8467b93aade7ea0b2ca6e8ac2623334f1ad344 100644
GIT binary patch
delta 16843
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
delta 8453
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
Date: Fri, 7 Jun 2024 23:21:46 +0200
Subject: [PATCH 3/9] fix: Don't run type module on install & make sure not to
add empty interfaces on objectTypes
---
examples/starter-example/appsettings.json | 12 ++---
.../TypeModules/UmbracoStartedHandler.cs | 27 ++++++++++
.../TypeModules/UmbracoTypeModule.cs | 54 +++++++++++++++----
src/Nikcio.UHeadless/UHeadlessExtensions.cs | 2 +
4 files changed, 77 insertions(+), 18 deletions(-)
create mode 100644 src/Nikcio.UHeadless/TypeModules/UmbracoStartedHandler.cs
diff --git a/examples/starter-example/appsettings.json b/examples/starter-example/appsettings.json
index 977f3c20..5d6e193e 100644
--- a/examples/starter-example/appsettings.json
+++ b/examples/starter-example/appsettings.json
@@ -22,7 +22,7 @@
]
},
"ConnectionStrings": {
- "umbracoDbDSN": "Data Source=|DataDirectory|/starter-examples.sqlite;Cache=Shared;Foreign Keys=True;Pooling=True",
+ "umbracoDbDSN": "Data Source=|DataDirectory|/Umbraco.sqlite.db;Cache=Shared;Foreign Keys=True;Pooling=True",
"umbracoDbDSN_ProviderName": "Microsoft.Data.Sqlite"
},
"Umbraco": {
@@ -33,13 +33,7 @@
"UseHttps": true,
"InstallMissingDatabase": true
},
- "Unattended": {
- "InstallUnattended": true,
- "UnattendedUserName": "test",
- "UnattendedUserEmail": "test@uheadless.com",
- "UnattendedUserPassword": "D@2#1*4E&Fs3tN#3mK6LFZAky^MlrC",
- "UpgradeUnattended": true
- },
+ "Unattended": {},
"Content": {
"AllowEditInvariantFromNonDefault": true,
"ContentVersionCleanupPolicy": {
@@ -64,4 +58,4 @@
"EnableClientErrorTracking": true
}
}
-}
+}
\ No newline at end of file
diff --git a/src/Nikcio.UHeadless/TypeModules/UmbracoStartedHandler.cs b/src/Nikcio.UHeadless/TypeModules/UmbracoStartedHandler.cs
new file mode 100644
index 00000000..a8b229f9
--- /dev/null
+++ b/src/Nikcio.UHeadless/TypeModules/UmbracoStartedHandler.cs
@@ -0,0 +1,27 @@
+using Umbraco.Cms.Core.Events;
+using Umbraco.Cms.Core.Notifications;
+
+namespace Nikcio.UHeadless.TypeModules;
+
+///
+/// Triggers GraphQL schema rebuild when Umbraco started
+///
+internal class UmbracoStartedHandler : INotificationAsyncHandler
+{
+ private readonly UmbracoTypeModule _contentTypeModule;
+
+ public UmbracoStartedHandler(UmbracoTypeModule contentTypeModule)
+ {
+ _contentTypeModule = contentTypeModule;
+ }
+
+ public Task HandleAsync(UmbracoApplicationStartedNotification notification, CancellationToken cancellationToken)
+ {
+ if (!_contentTypeModule.IsInitialized)
+ {
+ _contentTypeModule.OnTypesChanged(EventArgs.Empty);
+ }
+
+ return Task.CompletedTask;
+ }
+}
diff --git a/src/Nikcio.UHeadless/TypeModules/UmbracoTypeModule.cs b/src/Nikcio.UHeadless/TypeModules/UmbracoTypeModule.cs
index 3936f7c9..35619519 100644
--- a/src/Nikcio.UHeadless/TypeModules/UmbracoTypeModule.cs
+++ b/src/Nikcio.UHeadless/TypeModules/UmbracoTypeModule.cs
@@ -6,6 +6,7 @@
using Nikcio.UHeadless.Common.Properties;
using Nikcio.UHeadless.Properties;
using Nikcio.UHeadless.Reflection;
+using Umbraco.Cms.Core;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Models.Blocks;
using Umbraco.Cms.Core.Models.PublishedContent;
@@ -29,20 +30,29 @@ internal class UmbracoTypeModule : ITypeModule
private readonly IMemberTypeService _memberTypeService;
+ private readonly IRuntimeState _runtimeState;
+
///
public event EventHandler? TypesChanged;
+ ///
+ /// Indicates if the module is initialized with types from Umbraco
+ ///
+ internal bool IsInitialized { get; private set; }
+
///
public UmbracoTypeModule(
IPropertyMap propertyMap,
IContentTypeService contentTypeService,
IMediaTypeService mediaTypeService,
- IMemberTypeService memberTypeService)
+ IMemberTypeService memberTypeService,
+ IRuntimeState runtimeState)
{
_propertyMap = propertyMap;
_contentTypeService = contentTypeService;
_mediaTypeService = mediaTypeService;
_memberTypeService = memberTypeService;
+ _runtimeState = runtimeState;
}
///
@@ -51,6 +61,13 @@ public UmbracoTypeModule(
///
private List GetContentTypes()
{
+ if (_runtimeState.Level != RuntimeLevel.Run)
+ {
+ return [];
+ }
+
+ IsInitialized = true;
+
return _contentTypeService.GetAll()
.Cast()
.Concat(_mediaTypeService.GetAll())
@@ -131,20 +148,29 @@ private void GenerateTypes(out List types, out List contentTypes = GetContentTypes();
+ List allContentTypes = GetContentTypes();
+ List interfacedContentTypes = [];
+
+ var interfaceTypeNames = new HashSet(StringComparer.Ordinal);
- foreach (IContentTypeComposition? contentType in contentTypes)
+ foreach (IContentTypeComposition? contentType in allContentTypes)
{
- InterfaceTypeDefinition interfaceTypeDefinition = CreateInterfaceTypeDefinition(contentType);
+ InterfaceTypeDefinition? interfaceTypeDefinition = CreateInterfaceTypeDefinition(contentType);
- if (interfaceTypeDefinition.Fields.Count == 0)
+ if (interfaceTypeDefinition == null)
{
continue;
}
types.Add(InterfaceType.CreateUnsafe(interfaceTypeDefinition));
- ObjectTypeDefinition objectTypeDefinition = CreateObjectTypeDefinition(contentType);
+ interfaceTypeNames.Add(interfaceTypeDefinition.Name);
+ interfacedContentTypes.Add(contentType);
+ }
+
+ foreach (IContentTypeComposition contentType in interfacedContentTypes)
+ {
+ ObjectTypeDefinition objectTypeDefinition = CreateObjectTypeDefinition(contentType, interfaceTypeNames);
if (objectTypeDefinition.Fields.Count == 0)
{
@@ -213,7 +239,7 @@ private static void AddEmptyPropertyType(List objectTypes)
objectTypes.Add(ObjectType.CreateUnsafe(emptyNamedProperty));
}
- private InterfaceTypeDefinition CreateInterfaceTypeDefinition(IContentTypeComposition contentType)
+ private InterfaceTypeDefinition? CreateInterfaceTypeDefinition(IContentTypeComposition contentType)
{
var interfaceTypeDefinition = new InterfaceTypeDefinition(GetInterfaceTypeName(contentType.Alias), contentType.Description);
@@ -231,10 +257,15 @@ private InterfaceTypeDefinition CreateInterfaceTypeDefinition(IContentTypeCompos
interfaceTypeDefinition.Fields.Add(new InterfaceFieldDefinition(property.Alias, property.Description, TypeReference.Parse(propertyType.Name)));
}
+ if (interfaceTypeDefinition.Fields.Count == 0)
+ {
+ return null;
+ }
+
return interfaceTypeDefinition;
}
- private ObjectTypeDefinition CreateObjectTypeDefinition(IContentTypeComposition contentType)
+ private ObjectTypeDefinition CreateObjectTypeDefinition(IContentTypeComposition contentType, HashSet interfaceTypeNames)
{
var typeDefinition = new ObjectTypeDefinition(GetObjectTypeName(contentType.Alias), contentType.Description);
@@ -254,7 +285,12 @@ private ObjectTypeDefinition CreateObjectTypeDefinition(IContentTypeComposition
foreach (string composite in contentType.CompositionAliases())
{
- typeDefinition.Interfaces.Add(TypeReference.Parse(GetInterfaceTypeName(composite)));
+ string interfaceTypeName = GetInterfaceTypeName(composite);
+ if (interfaceTypeNames.Contains(interfaceTypeName))
+ {
+ typeDefinition.Interfaces.Add(TypeReference.Parse(interfaceTypeName));
+ }
+
}
typeDefinition.Interfaces.Add(TypeReference.Parse(GetInterfaceTypeName(typeDefinition.Name)));
diff --git a/src/Nikcio.UHeadless/UHeadlessExtensions.cs b/src/Nikcio.UHeadless/UHeadlessExtensions.cs
index fcde117f..245cb07b 100644
--- a/src/Nikcio.UHeadless/UHeadlessExtensions.cs
+++ b/src/Nikcio.UHeadless/UHeadlessExtensions.cs
@@ -65,6 +65,8 @@ public static IUmbracoBuilder AddUHeadless(this IUmbracoBuilder builder, Action<
builder.Services.AddScoped();
builder.Services.AddSingleton();
+ builder.AddNotificationAsyncHandler();
+
builder.Services.AddSingleton(options.PropertyMap);
builder.Services.AddSingleton();
From e2a70b0331121507cb5faf0e122098202b4c11c0 Mon Sep 17 00:00:00 2001
From: Nikolaj Brask-Nielsen
Date: Fri, 7 Jun 2024 23:34:56 +0200
Subject: [PATCH 4/9] fix: Solve exception on auth
---
src/Nikcio.UHeadless/Defaults/Authorization/Bootstrap.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Nikcio.UHeadless/Defaults/Authorization/Bootstrap.cs b/src/Nikcio.UHeadless/Defaults/Authorization/Bootstrap.cs
index 68575ee7..c5c80b18 100644
--- a/src/Nikcio.UHeadless/Defaults/Authorization/Bootstrap.cs
+++ b/src/Nikcio.UHeadless/Defaults/Authorization/Bootstrap.cs
@@ -1,4 +1,5 @@
using System.Text;
+using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Primitives;
@@ -32,8 +33,7 @@ public static UHeadlessOptions AddAuthInternal(this UHeadlessOptions options)
}
else
{
- // We only want to authenticate via the header
- context.Token = "Invalid";
+ context.NoResult();
}
return Task.CompletedTask;
From e5a277054c66bc3788778a9699305e621fb99615 Mon Sep 17 00:00:00 2001
From: Nikolaj Brask-Nielsen
Date: Fri, 7 Jun 2024 23:37:40 +0200
Subject: [PATCH 5/9] feat: Added docTypes to starter example
---
examples/starter-example/Program.cs | 3 +-
examples/starter-example/packages.lock.json | 227 +++++++++++++-
.../starter-example/starter-example.csproj | 2 +
.../uSync/v9/Content/about.config | 119 ++++++++
.../uSync/v9/Content/authors.config | 52 ++++
.../uSync/v9/Content/blog.config | 85 ++++++
.../uSync/v9/Content/categories.config | 26 ++
.../uSync/v9/Content/community.config | 130 +++++++++
.../v9/Content/community_fa0pue2k.config | 16 +
.../uSync/v9/Content/conferences.config | 165 +++++++++++
.../v9/Content/conferences_dpraan01.config | 16 +
.../uSync/v9/Content/contact.config | 65 +++++
.../uSync/v9/Content/error.config | 83 ++++++
.../uSync/v9/Content/features.config | 276 ++++++++++++++++++
.../uSync/v9/Content/home.config | 269 +++++++++++++++++
...n-the-umbraco-community-on-mastodon.config | 98 +++++++
.../uSync/v9/Content/meetups.config | 130 +++++++++
.../uSync/v9/Content/meetups_fthd5e2w.config | 16 +
.../uSync/v9/Content/paul-seal.config | 85 ++++++
.../v9/Content/podcasts-and-videos.config | 237 +++++++++++++++
.../uSync/v9/Content/podcasts.config | 16 +
.../uSync/v9/Content/popular-blogs.config | 130 +++++++++
.../uSync/v9/Content/resources.config | 16 +
.../uSync/v9/Content/search.config | 44 +++
.../uSync/v9/Content/umbraco.config | 16 +
.../uSync/v9/Content/videos.config | 16 +
.../uSync/v9/Content/xmlsitemap.config | 26 ++
.../uSync/v9/Content/youtube-tutorials.config | 203 +++++++++++++
.../uSync/v9/ContentTypes/article.config | 35 +++
.../v9/ContentTypes/articlecontrols.config | 82 ++++++
.../uSync/v9/ContentTypes/articlelist.config | 36 +++
.../uSync/v9/ContentTypes/author.config | 33 +++
.../uSync/v9/ContentTypes/authorlist.config | 35 +++
.../uSync/v9/ContentTypes/category.config | 25 ++
.../uSync/v9/ContentTypes/categorylist.config | 29 ++
.../v9/ContentTypes/codesnippetrow.config | 66 +++++
.../codesnippetrowsettings.config | 28 ++
.../uSync/v9/ContentTypes/contact.config | 33 +++
.../ContentTypes/contactformcontrols.config | 89 ++++++
.../uSync/v9/ContentTypes/content.config | 33 +++
.../v9/ContentTypes/contentcontrols.config | 50 ++++
.../uSync/v9/ContentTypes/error.config | 33 +++
.../v9/ContentTypes/footercontrols.config | 50 ++++
.../v9/ContentTypes/headercontrols.config | 66 +++++
.../uSync/v9/ContentTypes/hideproperty.config | 50 ++++
.../uSync/v9/ContentTypes/home.config | 42 +++
.../uSync/v9/ContentTypes/iconlinkrow.config | 66 +++++
.../ContentTypes/iconlinkrowsettings.config | 27 ++
.../v9/ContentTypes/imagecarouselrow.config | 50 ++++
.../imagecarouselrowsettings.config | 28 ++
.../uSync/v9/ContentTypes/imagerow.config | 66 +++++
.../v9/ContentTypes/imagerowsettings.config | 28 ++
.../v9/ContentTypes/latestarticlesrow.config | 82 ++++++
.../latestarticlesrowsettings.config | 28 ++
.../v9/ContentTypes/listpagesettings.config | 33 +++
.../v9/ContentTypes/mainimagecontrols.config | 50 ++++
.../uSync/v9/ContentTypes/richtextrow.config | 50 ++++
.../ContentTypes/richtextrowsettings.config | 28 ++
.../uSync/v9/ContentTypes/search.config | 32 ++
.../uSync/v9/ContentTypes/seocontrols.config | 82 ++++++
.../v9/ContentTypes/spacingproperties.config | 162 ++++++++++
.../uSync/v9/ContentTypes/videorow.config | 66 +++++
.../v9/ContentTypes/videorowsettings.config | 28 ++
.../v9/ContentTypes/visibilitycontrols.config | 82 ++++++
.../uSync/v9/ContentTypes/xmlsitemap.config | 29 ++
.../uSync/v9/DataTypes/ApprovedColor.config | 12 +
.../v9/DataTypes/BlockListIconList.config | 32 ++
.../v9/DataTypes/BlockListMainContent.config | 92 ++++++
.../uSync/v9/DataTypes/CheckboxList.config | 11 +
.../uSync/v9/DataTypes/ContentPicker.config | 13 +
.../uSync/v9/DataTypes/DatePicker.config | 12 +
.../v9/DataTypes/DatePickerWithTime.config | 12 +
.../uSync/v9/DataTypes/Dropdown.config | 12 +
.../v9/DataTypes/DropdownMultiple.config | 12 +
.../uSync/v9/DataTypes/DropdownSpacing.config | 41 +++
.../uSync/v9/DataTypes/ImageCropper.config | 11 +
.../v9/DataTypes/ImageMediaPicker.config | 20 ++
.../uSync/v9/DataTypes/LabelBigint.config | 11 +
.../uSync/v9/DataTypes/LabelDatetime.config | 11 +
.../uSync/v9/DataTypes/LabelDecimal.config | 11 +
.../uSync/v9/DataTypes/LabelInteger.config | 11 +
.../uSync/v9/DataTypes/LabelString.config | 11 +
.../uSync/v9/DataTypes/LabelTime.config | 11 +
.../uSync/v9/DataTypes/ListViewContent.config | 54 ++++
.../uSync/v9/DataTypes/ListViewMedia.config | 54 ++++
.../uSync/v9/DataTypes/ListViewMembers.config | 60 ++++
.../uSync/v9/DataTypes/MNTPAuthors.config | 32 ++
.../uSync/v9/DataTypes/MNTPCategories.config | 32 ++
.../uSync/v9/DataTypes/MediaPicker.config | 20 ++
.../v9/DataTypes/MediaPickerLegacy.config | 15 +
.../v9/DataTypes/MediaPickerSVGImage.config | 20 ++
.../uSync/v9/DataTypes/MemberPicker.config | 9 +
.../uSync/v9/DataTypes/MultiURLPicker.config | 15 +
.../MultiUrlPickerSingleUrlPicker.config | 15 +
.../DataTypes/MultipleImageMediaPicker.config | 20 ++
.../v9/DataTypes/MultipleMediaPicker.config | 20 ++
.../MultipleMediaPickerLegacy.config | 15 +
.../uSync/v9/DataTypes/Numeric.config | 9 +
.../uSync/v9/DataTypes/Radiobox.config | 11 +
.../uSync/v9/DataTypes/RichtextEditor.config | 40 +++
.../uSync/v9/DataTypes/SingleUrlPicker.config | 15 +
.../uSync/v9/DataTypes/SliderSpacing.config | 16 +
.../uSync/v9/DataTypes/Tags.config | 13 +
.../uSync/v9/DataTypes/Textarea.config | 12 +
.../uSync/v9/DataTypes/Textstring.config | 11 +
.../uSync/v9/DataTypes/Truefalse.config | 14 +
.../uSync/v9/DataTypes/UploadArticle.config | 24 ++
.../uSync/v9/DataTypes/UploadAudio.config | 28 ++
.../uSync/v9/DataTypes/UploadFile.config | 11 +
.../v9/DataTypes/UploadVectorGraphics.config | 16 +
.../uSync/v9/DataTypes/UploadVideo.config | 24 ++
.../uSync/v9/Dictionary/article.by.config | 7 +
.../uSync/v9/Dictionary/article.on.config | 7 +
.../uSync/v9/Dictionary/article.posted.config | 7 +
.../v9/Dictionary/articlelist.viewall.config | 7 +
.../v9/Dictionary/author.readmore.config | 7 +
.../v9/Dictionary/contactform.email.config | 7 +
.../v9/Dictionary/contactform.message.config | 7 +
.../v9/Dictionary/contactform.name.config | 7 +
.../v9/Dictionary/contactform.send.config | 7 +
.../footer.copyrightstatement.config | 7 +
.../Dictionary/footer.copyrighttitle.config | 7 +
.../v9/Dictionary/navigation.menutitle.config | 7 +
.../v9/Dictionary/navigation.sitename.config | 7 +
.../uSync/v9/Dictionary/paging.next.config | 7 +
.../uSync/v9/Dictionary/paging.of.config | 7 +
.../uSync/v9/Dictionary/paging.page.config | 7 +
.../v9/Dictionary/paging.previous.config | 7 +
.../v9/Dictionary/search.placeholder.config | 7 +
.../uSync/v9/Dictionary/search.results.config | 7 +
.../v9/Dictionary/search.searchbutton.config | 7 +
.../uSync/v9/Languages/en-us.config | 7 +
.../Media/24-days-people-at-codegarden.config | 27 ++
.../uSync/v9/Media/authors.config | 22 ++
.../uSync/v9/Media/authors_xvnd3kvj.config | 13 +
.../v9/Media/bluetooth-white-keyboard.config | 22 ++
.../v9/Media/candid-contributions.config | 23 ++
.../uSync/v9/Media/cc-paypal.config | 17 ++
.../uSync/v9/Media/chairs-lamps.config | 22 ++
.../uSync/v9/Media/codegarden-keynote.config | 27 ++
.../uSync/v9/Media/community-front-row.config | 22 ++
.../v9/Media/desktop-notebook-glasses.config | 27 ++
.../uSync/v9/Media/diary.config | 22 ++
.../uSync/v9/Media/discord.config | 17 ++
.../Media/first-timers-at-codegarden.config | 27 ++
.../uSync/v9/Media/friendly-chair.config | 27 ++
.../v9/Media/front-row-audience-smiles.config | 27 ++
.../uSync/v9/Media/github-alt.config | 17 ++
.../uSync/v9/Media/github.config | 17 ++
.../uSync/v9/Media/mastodon.config | 22 ++
.../uSync/v9/Media/mastodon_jcaplvty.config | 17 ++
.../meetup-organizers-at-codegarden.config | 22 ++
.../uSync/v9/Media/package-manifest.config | 23 ++
.../uSync/v9/Media/paypal.config | 17 ++
.../uSync/v9/Media/phone-pen-binder.config | 22 ++
.../v9/Media/podcast-headphones-coffee.config | 27 ++
.../uSync/v9/Media/profile-pic-2023.config | 26 ++
.../uSync/v9/Media/sample-images.config | 13 +
.../uSync/v9/Media/say-cheese.config | 27 ++
.../uSync/v9/Media/share-nodes.config | 17 ++
.../v9/Media/skrift-at-codegarden.config | 22 ++
.../uSync/v9/Media/social-icons.config | 13 +
.../uSync/v9/Media/square-github.config | 17 ++
.../uSync/v9/Media/square-twitter.config | 17 ++
.../v9/Media/triangle-table-chairs.config | 22 ++
.../uSync/v9/Media/tutorials.config | 22 ++
.../uSync/v9/Media/twitter.config | 17 ++
.../uSync/v9/Media/umbraco.config | 17 ++
.../v9/Media/umbracoffee-codegarden.config | 22 ++
.../uSync/v9/MediaTypes/file.config | 71 +++++
.../uSync/v9/MediaTypes/folder.config | 25 ++
.../uSync/v9/MediaTypes/image.config | 116 ++++++++
.../v9/MediaTypes/umbracomediaarticle.config | 71 +++++
.../v9/MediaTypes/umbracomediaaudio.config | 71 +++++
.../umbracomediavectorgraphics.config | 71 +++++
.../v9/MediaTypes/umbracomediavideo.config | 71 +++++
.../uSync/v9/MemberTypes/member.config | 152 ++++++++++
.../starter-example/uSync/v9/usync.config | 2 +
...adless.IntegrationTests.TestProject.csproj | 4 -
.../Nikcio.UHeadless.IntegrationTests.csproj | 9 -
180 files changed, 6942 insertions(+), 16 deletions(-)
create mode 100644 examples/starter-example/uSync/v9/Content/about.config
create mode 100644 examples/starter-example/uSync/v9/Content/authors.config
create mode 100644 examples/starter-example/uSync/v9/Content/blog.config
create mode 100644 examples/starter-example/uSync/v9/Content/categories.config
create mode 100644 examples/starter-example/uSync/v9/Content/community.config
create mode 100644 examples/starter-example/uSync/v9/Content/community_fa0pue2k.config
create mode 100644 examples/starter-example/uSync/v9/Content/conferences.config
create mode 100644 examples/starter-example/uSync/v9/Content/conferences_dpraan01.config
create mode 100644 examples/starter-example/uSync/v9/Content/contact.config
create mode 100644 examples/starter-example/uSync/v9/Content/error.config
create mode 100644 examples/starter-example/uSync/v9/Content/features.config
create mode 100644 examples/starter-example/uSync/v9/Content/home.config
create mode 100644 examples/starter-example/uSync/v9/Content/join-the-umbraco-community-on-mastodon.config
create mode 100644 examples/starter-example/uSync/v9/Content/meetups.config
create mode 100644 examples/starter-example/uSync/v9/Content/meetups_fthd5e2w.config
create mode 100644 examples/starter-example/uSync/v9/Content/paul-seal.config
create mode 100644 examples/starter-example/uSync/v9/Content/podcasts-and-videos.config
create mode 100644 examples/starter-example/uSync/v9/Content/podcasts.config
create mode 100644 examples/starter-example/uSync/v9/Content/popular-blogs.config
create mode 100644 examples/starter-example/uSync/v9/Content/resources.config
create mode 100644 examples/starter-example/uSync/v9/Content/search.config
create mode 100644 examples/starter-example/uSync/v9/Content/umbraco.config
create mode 100644 examples/starter-example/uSync/v9/Content/videos.config
create mode 100644 examples/starter-example/uSync/v9/Content/xmlsitemap.config
create mode 100644 examples/starter-example/uSync/v9/Content/youtube-tutorials.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/article.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/articlecontrols.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/articlelist.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/author.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/authorlist.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/category.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/categorylist.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/codesnippetrow.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/codesnippetrowsettings.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/contact.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/contactformcontrols.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/content.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/contentcontrols.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/error.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/footercontrols.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/headercontrols.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/hideproperty.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/home.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/iconlinkrow.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/iconlinkrowsettings.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/imagecarouselrow.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/imagecarouselrowsettings.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/imagerow.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/imagerowsettings.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/latestarticlesrow.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/latestarticlesrowsettings.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/listpagesettings.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/mainimagecontrols.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/richtextrow.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/richtextrowsettings.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/search.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/seocontrols.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/spacingproperties.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/videorow.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/videorowsettings.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/visibilitycontrols.config
create mode 100644 examples/starter-example/uSync/v9/ContentTypes/xmlsitemap.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/ApprovedColor.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/BlockListIconList.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/BlockListMainContent.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/CheckboxList.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/ContentPicker.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/DatePicker.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/DatePickerWithTime.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/Dropdown.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/DropdownMultiple.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/DropdownSpacing.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/ImageCropper.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/ImageMediaPicker.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/LabelBigint.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/LabelDatetime.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/LabelDecimal.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/LabelInteger.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/LabelString.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/LabelTime.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/ListViewContent.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/ListViewMedia.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/ListViewMembers.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/MNTPAuthors.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/MNTPCategories.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/MediaPicker.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/MediaPickerLegacy.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/MediaPickerSVGImage.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/MemberPicker.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/MultiURLPicker.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/MultiUrlPickerSingleUrlPicker.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/MultipleImageMediaPicker.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/MultipleMediaPicker.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/MultipleMediaPickerLegacy.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/Numeric.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/Radiobox.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/RichtextEditor.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/SingleUrlPicker.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/SliderSpacing.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/Tags.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/Textarea.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/Textstring.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/Truefalse.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/UploadArticle.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/UploadAudio.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/UploadFile.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/UploadVectorGraphics.config
create mode 100644 examples/starter-example/uSync/v9/DataTypes/UploadVideo.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/article.by.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/article.on.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/article.posted.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/articlelist.viewall.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/author.readmore.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/contactform.email.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/contactform.message.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/contactform.name.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/contactform.send.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/footer.copyrightstatement.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/footer.copyrighttitle.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/navigation.menutitle.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/navigation.sitename.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/paging.next.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/paging.of.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/paging.page.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/paging.previous.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/search.placeholder.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/search.results.config
create mode 100644 examples/starter-example/uSync/v9/Dictionary/search.searchbutton.config
create mode 100644 examples/starter-example/uSync/v9/Languages/en-us.config
create mode 100644 examples/starter-example/uSync/v9/Media/24-days-people-at-codegarden.config
create mode 100644 examples/starter-example/uSync/v9/Media/authors.config
create mode 100644 examples/starter-example/uSync/v9/Media/authors_xvnd3kvj.config
create mode 100644 examples/starter-example/uSync/v9/Media/bluetooth-white-keyboard.config
create mode 100644 examples/starter-example/uSync/v9/Media/candid-contributions.config
create mode 100644 examples/starter-example/uSync/v9/Media/cc-paypal.config
create mode 100644 examples/starter-example/uSync/v9/Media/chairs-lamps.config
create mode 100644 examples/starter-example/uSync/v9/Media/codegarden-keynote.config
create mode 100644 examples/starter-example/uSync/v9/Media/community-front-row.config
create mode 100644 examples/starter-example/uSync/v9/Media/desktop-notebook-glasses.config
create mode 100644 examples/starter-example/uSync/v9/Media/diary.config
create mode 100644 examples/starter-example/uSync/v9/Media/discord.config
create mode 100644 examples/starter-example/uSync/v9/Media/first-timers-at-codegarden.config
create mode 100644 examples/starter-example/uSync/v9/Media/friendly-chair.config
create mode 100644 examples/starter-example/uSync/v9/Media/front-row-audience-smiles.config
create mode 100644 examples/starter-example/uSync/v9/Media/github-alt.config
create mode 100644 examples/starter-example/uSync/v9/Media/github.config
create mode 100644 examples/starter-example/uSync/v9/Media/mastodon.config
create mode 100644 examples/starter-example/uSync/v9/Media/mastodon_jcaplvty.config
create mode 100644 examples/starter-example/uSync/v9/Media/meetup-organizers-at-codegarden.config
create mode 100644 examples/starter-example/uSync/v9/Media/package-manifest.config
create mode 100644 examples/starter-example/uSync/v9/Media/paypal.config
create mode 100644 examples/starter-example/uSync/v9/Media/phone-pen-binder.config
create mode 100644 examples/starter-example/uSync/v9/Media/podcast-headphones-coffee.config
create mode 100644 examples/starter-example/uSync/v9/Media/profile-pic-2023.config
create mode 100644 examples/starter-example/uSync/v9/Media/sample-images.config
create mode 100644 examples/starter-example/uSync/v9/Media/say-cheese.config
create mode 100644 examples/starter-example/uSync/v9/Media/share-nodes.config
create mode 100644 examples/starter-example/uSync/v9/Media/skrift-at-codegarden.config
create mode 100644 examples/starter-example/uSync/v9/Media/social-icons.config
create mode 100644 examples/starter-example/uSync/v9/Media/square-github.config
create mode 100644 examples/starter-example/uSync/v9/Media/square-twitter.config
create mode 100644 examples/starter-example/uSync/v9/Media/triangle-table-chairs.config
create mode 100644 examples/starter-example/uSync/v9/Media/tutorials.config
create mode 100644 examples/starter-example/uSync/v9/Media/twitter.config
create mode 100644 examples/starter-example/uSync/v9/Media/umbraco.config
create mode 100644 examples/starter-example/uSync/v9/Media/umbracoffee-codegarden.config
create mode 100644 examples/starter-example/uSync/v9/MediaTypes/file.config
create mode 100644 examples/starter-example/uSync/v9/MediaTypes/folder.config
create mode 100644 examples/starter-example/uSync/v9/MediaTypes/image.config
create mode 100644 examples/starter-example/uSync/v9/MediaTypes/umbracomediaarticle.config
create mode 100644 examples/starter-example/uSync/v9/MediaTypes/umbracomediaaudio.config
create mode 100644 examples/starter-example/uSync/v9/MediaTypes/umbracomediavectorgraphics.config
create mode 100644 examples/starter-example/uSync/v9/MediaTypes/umbracomediavideo.config
create mode 100644 examples/starter-example/uSync/v9/MemberTypes/member.config
create mode 100644 examples/starter-example/uSync/v9/usync.config
diff --git a/examples/starter-example/Program.cs b/examples/starter-example/Program.cs
index 6709c30b..509c677c 100644
--- a/examples/starter-example/Program.cs
+++ b/examples/starter-example/Program.cs
@@ -10,7 +10,8 @@
* - Enabled authentication using configuration values for the API key and secret.
* - Disabled the GraphQL IDE in production.
* - Added a single query for fetching content by route.
- * - Removed Umbraco's services and endpoints for rendering a website as this will only be used as a headless setup.
+ * - Removed Umbraco's services and endpoints for rendering a website as this will only be used as a headless setup.
+ * - .AddWebsite() is needed for the install screen to load if you're not using UnattendedInstall.
*/
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
diff --git a/examples/starter-example/packages.lock.json b/examples/starter-example/packages.lock.json
index d7317604..233a809b 100644
--- a/examples/starter-example/packages.lock.json
+++ b/examples/starter-example/packages.lock.json
@@ -35,6 +35,32 @@
"Umbraco.Cms.Targets": "[13.3.2, 14.0.0)"
}
},
+ "UrlTracker": {
+ "type": "Direct",
+ "requested": "[13.2.0-alpha0004, )",
+ "resolved": "13.2.0-alpha0004",
+ "contentHash": "jlkrkCsxGVQ2TGKh4+99WkOZdxwEzc6m+QLa8+r5OI7Jva1QG2RevEuMj7ojzwNuGcVwQbmmJADqLe8PKGHcRA==",
+ "dependencies": {
+ "Umbraco.Cms.Core": "13.0.0",
+ "UrlTracker.Backoffice.Notifications": "13.2.0-alpha0004",
+ "UrlTracker.Backoffice.UI": "13.2.0-alpha0004",
+ "UrlTracker.Core": "13.2.0-alpha0004",
+ "UrlTracker.Core.Caching.Memory": "13.2.0-alpha0004",
+ "UrlTracker.Middleware": "13.2.0-alpha0004",
+ "UrlTracker.Web": "13.2.0-alpha0004"
+ }
+ },
+ "uSync": {
+ "type": "Direct",
+ "requested": "[13.2.3, )",
+ "resolved": "13.2.3",
+ "contentHash": "Tzj/a5WKOeohtJrKNu6b79Nc8q7VYbSiHTJn5yRbiOalJtj7n4hLVOm1TqTqb4xNBhVbS7u1Yar/RJPDIVKoMA==",
+ "dependencies": {
+ "uSync.BackOffice": "13.2.3",
+ "uSync.BackOffice.Assets": "13.2.3",
+ "uSync.History": "13.2.3"
+ }
+ },
"Asp.Versioning.Abstractions": {
"type": "Transitive",
"resolved": "7.0.0",
@@ -108,6 +134,11 @@
"resolved": "2.2.1",
"contentHash": "A6Zr52zVqJKt18ZBsTnX0qhG0kwIQftVAjLmszmkiR/trSp8H+xj1gUOzk7XHwaKgyREMSV1v9XaKrBUeIOdvQ=="
},
+ "CsvHelper": {
+ "type": "Transitive",
+ "resolved": "30.0.1",
+ "contentHash": "rcZtgbWR+As4G3Vpgx0AMNmShGuQLFjkHAPIIflzrfkJCx8/AOd4m96ZRmiU1Wi39qS5UVjV0P8qdgqOo5Cwyg=="
+ },
"Dazinator.Extensions.FileProviders": {
"type": "Transitive",
"resolved": "2.0.0",
@@ -539,6 +570,51 @@
"Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2"
}
},
+ "Microsoft.AspNetCore.Authorization": {
+ "type": "Transitive",
+ "resolved": "8.0.5",
+ "contentHash": "vVx5fiR2ysWoZq1PcVkBdzw9g+E2gIPS26IvJslxnLapwXs4SXp+y5BbP4RSApOlQLTUeGL3TaG4y1Vt8V4eDA==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Metadata": "8.0.5",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Options": "8.0.2"
+ }
+ },
+ "Microsoft.AspNetCore.Components": {
+ "type": "Transitive",
+ "resolved": "8.0.5",
+ "contentHash": "0F6zs+qfVWGcvBSfEp+Oug54wjOuAZ3oDk3AnI3A4oQ5hvhgTbH3HqXe9xuqdZmYA94ap5JCwanVJfh+TZN0/A==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Authorization": "8.0.5",
+ "Microsoft.AspNetCore.Components.Analyzers": "8.0.5"
+ }
+ },
+ "Microsoft.AspNetCore.Components.Analyzers": {
+ "type": "Transitive",
+ "resolved": "8.0.5",
+ "contentHash": "TlOBZK94K9VuveWBGTfKUkh86QrAnh2aeJzGFYA4hvFvYB4sAWKhgu4iHEy9LQozHh5EgPckY65w3TbXeTP7Uw=="
+ },
+ "Microsoft.AspNetCore.Components.Forms": {
+ "type": "Transitive",
+ "resolved": "8.0.5",
+ "contentHash": "yRtm0OxhqoVxYko6ew4FVHDSG3krBqnLX59mBy/OBzKCxt9ias++SIaHvpTLsDHR9MeYzq7EzkNnyLjZJQbdsA==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Components": "8.0.5"
+ }
+ },
+ "Microsoft.AspNetCore.Components.Web": {
+ "type": "Transitive",
+ "resolved": "8.0.5",
+ "contentHash": "KaB8kgNfv/iYW1vdirVHFsfjsuGaAmODCRWf2lzO1Eyvc20Glx17wVpFOjH1FSAa23t6A2VM8y8ktk3n/vqNmQ==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Components": "8.0.5",
+ "Microsoft.AspNetCore.Components.Forms": "8.0.5",
+ "Microsoft.Extensions.DependencyInjection": "8.0.0",
+ "Microsoft.Extensions.Primitives": "8.0.0",
+ "Microsoft.JSInterop": "8.0.5",
+ "System.IO.Pipelines": "8.0.0"
+ }
+ },
"Microsoft.AspNetCore.Cryptography.Internal": {
"type": "Transitive",
"resolved": "8.0.1",
@@ -625,6 +701,11 @@
"Newtonsoft.Json": "13.0.3"
}
},
+ "Microsoft.AspNetCore.Metadata": {
+ "type": "Transitive",
+ "resolved": "8.0.5",
+ "contentHash": "+gChhwbmBER5Olyf7Uk4oMWYPKNcWmzm+WIf3HHDhKCmrMXQ18PMF3Z7RtPC7nYghTD6GCiP04dNWB+yORlWqw=="
+ },
"Microsoft.AspNetCore.Mvc.NewtonsoftJson": {
"type": "Transitive",
"resolved": "8.0.1",
@@ -1039,8 +1120,8 @@
},
"Microsoft.Extensions.Options": {
"type": "Transitive",
- "resolved": "8.0.1",
- "contentHash": "wmpp+BSU3oGifaev6Z9rrlwHoITLFfpVOSbgBrOXjkbJSCXnZVCsoRGE5c3fJFI4VlNgnNkNlI9y+5jC4fmOEA==",
+ "resolved": "8.0.2",
+ "contentHash": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
@@ -1167,6 +1248,11 @@
"resolved": "2.3.2",
"contentHash": "Oh1qXXFdJFcHozvb4H6XYLf2W0meZFuG0A+TfapFPj9z5fd4vxiARGEhAaLj/6XWQaMYIv4SH/9Q6H78Hw0E2Q=="
},
+ "Microsoft.JSInterop": {
+ "type": "Transitive",
+ "resolved": "8.0.5",
+ "contentHash": "FzBXOrFd7KAVm+Ot1Gxgu1LdFjxWmn0VGEXXH+LII5nd59oHADrN2yMJGS6gJlDtz4ZcAJ+DWGJLBAFhsLOfRQ=="
+ },
"Microsoft.NET.StringTools": {
"type": "Transitive",
"resolved": "17.6.3",
@@ -1661,6 +1747,15 @@
"resolved": "4.3.2",
"contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg=="
},
+ "Scrutor": {
+ "type": "Transitive",
+ "resolved": "4.2.2",
+ "contentHash": "t5VIYA7WJXoJJo7s4DoHakMGwTu+MeEnZumMOhTCH7kz9xWha24G7dJNxWrHPlu0ZdZAS4jDZCxxAnyaBh7uYw==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0",
+ "Microsoft.Extensions.DependencyModel": "6.0.0"
+ }
+ },
"Serilog": {
"type": "Transitive",
"resolved": "3.1.1",
@@ -2862,6 +2957,11 @@
"System.Xml.ReaderWriter": "4.3.0"
}
},
+ "UAParser": {
+ "type": "Transitive",
+ "resolved": "3.1.47",
+ "contentHash": "I68Jl/Vs5RQZdz9BbmYtnXgujg0jVd61LhKbyNZOCm9lBxZFGxLbiQo6yFj21VYi7DzPvEvrVOmeC6v41AoLfw=="
+ },
"Umbraco.Cms.Api.Common": {
"type": "Transitive",
"resolved": "13.3.2",
@@ -3079,6 +3179,129 @@
"resolved": "15.0.0",
"contentHash": "YSDIkxq44VMy2N3jBTwJBJ/ZjGyuyb0GRyfQAUIma07dCHIbjXgKXjZaAxVa6ik3XTqgcyATvwYJL0EBtAClwA=="
},
+ "UrlTracker.Backoffice.Notifications": {
+ "type": "Transitive",
+ "resolved": "13.2.0-alpha0004",
+ "contentHash": "tkpcRiKlYdxDgU5Oeg8a6RlO0/HgBfgwEj7PeKsjpiOJle0YeKb89/BoDA3MXURNn7dA6TLoiMG8p0pYAIK2oQ==",
+ "dependencies": {
+ "Umbraco.Cms.Infrastructure": "13.0.0",
+ "UrlTracker.Core": "13.2.0-alpha0004"
+ }
+ },
+ "UrlTracker.Backoffice.UI": {
+ "type": "Transitive",
+ "resolved": "13.2.0-alpha0004",
+ "contentHash": "FCku7D96ELhXv1aCsL3Y3J2aFwwAAuJCg82K0vXi8uNs5ep4cqPdOQ+coVdXo5/ec9MAnf5oetrD949qE8xJRA==",
+ "dependencies": {
+ "CsvHelper": "30.0.1",
+ "Microsoft.AspNetCore.Components.Web": "8.0.5",
+ "Umbraco.Cms.Core": "13.0.0",
+ "Umbraco.Cms.Web.BackOffice": "13.0.0",
+ "UrlTracker.Core": "13.2.0-alpha0004",
+ "UrlTracker.Modules": "13.2.0-alpha0004"
+ }
+ },
+ "UrlTracker.Core": {
+ "type": "Transitive",
+ "resolved": "13.2.0-alpha0004",
+ "contentHash": "mY1kN04rWAWMYdRaQ8M4vAJZJ4BJLkf7DSeWpXDPs80twIug7h9pxvwUQvFc5C7RehcKZeGr8iM4edDoeAw5Yw==",
+ "dependencies": {
+ "Umbraco.Cms.Infrastructure": "13.0.0",
+ "UrlTracker.Modules": "13.2.0-alpha0004"
+ }
+ },
+ "UrlTracker.Core.Caching.Memory": {
+ "type": "Transitive",
+ "resolved": "13.2.0-alpha0004",
+ "contentHash": "CPd8JnbsaHTMJEaUHkA2c+gxmqaxtqXRDKsJ1vqD40aqUwVP3tdVFoXz+p+bAr0xjaDiE18J5vtrojNav8lwjQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Memory": "8.0.0",
+ "Scrutor": "4.2.2",
+ "Umbraco.Cms.Core": "13.0.0",
+ "UrlTracker.Core": "13.2.0-alpha0004"
+ }
+ },
+ "UrlTracker.Middleware": {
+ "type": "Transitive",
+ "resolved": "13.2.0-alpha0004",
+ "contentHash": "WZ4cl+K5BUzfY4jMmSsRle82OM3h+aqzNX64Dx3lYQgpuS2ajF1mAbK4ZTblWvAV9zPCvLeGVmoAZ/qo3uUryw==",
+ "dependencies": {
+ "Umbraco.Cms.Core": "13.0.0",
+ "Umbraco.Cms.Web.Common": "13.0.0",
+ "UrlTracker.Core": "13.2.0-alpha0004",
+ "UrlTracker.Modules": "13.2.0-alpha0004",
+ "UrlTracker.Web": "13.2.0-alpha0004"
+ }
+ },
+ "UrlTracker.Modules": {
+ "type": "Transitive",
+ "resolved": "13.2.0-alpha0004",
+ "contentHash": "jDu84EWt13nQcqVq/Cm2cKOX04766cvbuqeRp34f0hvVOcitTbHDvhEt6NS6joc0B0Q+NoYPYbDd3CYzIVr/VA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Options": "8.0.2"
+ }
+ },
+ "UrlTracker.Web": {
+ "type": "Transitive",
+ "resolved": "13.2.0-alpha0004",
+ "contentHash": "3WnU6VSzljSE+RimE8zSmYGKEqkKoFvkMDAEHMTDpbtptpV4o9VCQ9Q80Np16c/z6dOmgeC/f7CfOONxb3H9wQ==",
+ "dependencies": {
+ "UAParser": "3.1.47",
+ "Umbraco.Cms.Web.BackOffice": "13.0.0",
+ "Umbraco.Cms.Web.Website": "13.0.0",
+ "UrlTracker.Core": "13.2.0-alpha0004"
+ }
+ },
+ "uSync.BackOffice": {
+ "type": "Transitive",
+ "resolved": "13.2.3",
+ "contentHash": "nLBXalpz1ARGCMeotQggpuozdeFiWFMYT4kZSjy9fwAwuBxkor0GyOqYZU2Xy/nZa+PkvrSQOSpPf160E+p4AA==",
+ "dependencies": {
+ "uSync.Community.Contrib": "13.2.3",
+ "uSync.Core": "13.2.3"
+ }
+ },
+ "uSync.BackOffice.Assets": {
+ "type": "Transitive",
+ "resolved": "13.2.3",
+ "contentHash": "BWuAWd/567HiIkXL+vx7ABujdhSdmhfhy7ymEOQ2MOt6k1h4cQwZVFZXpcBRo4is3oNbCsaCQjKPk9OnnzGVfg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Components.Web": "8.0.0",
+ "uSync.BackOffice": "13.2.3",
+ "uSync.BackOffice.Targets": "13.2.3"
+ }
+ },
+ "uSync.BackOffice.Targets": {
+ "type": "Transitive",
+ "resolved": "13.2.3",
+ "contentHash": "e4dYXnj3aRfo/G6dmivCuthWEcleau+jnNdz9y2hJL1bFf+9F3/H+Njsf/qkcRZnBC16MnUITzPFy4w654n4vg=="
+ },
+ "uSync.Community.Contrib": {
+ "type": "Transitive",
+ "resolved": "13.2.3",
+ "contentHash": "nZGLUINP2qOeFygRi6Tf7TRW9cjsEcjWrbmo7nA9VsKs6Br7RngemFggbQmauBYZak0TnYTGVZhqgnCHn1Ioxw==",
+ "dependencies": {
+ "uSync.Core": "13.2.3"
+ }
+ },
+ "uSync.Core": {
+ "type": "Transitive",
+ "resolved": "13.2.3",
+ "contentHash": "zOUXxHvWp4OU4jggBbdNJzfk2WwClQ16GrwRFnwdz18gALmkwiKVJibNaE5rQeEf3PYzapQf/8vapEGVKCIuwA==",
+ "dependencies": {
+ "Umbraco.Cms.Web.BackOffice": "13.0.0",
+ "Umbraco.Cms.Web.Website": "13.0.0"
+ }
+ },
+ "uSync.History": {
+ "type": "Transitive",
+ "resolved": "13.2.3",
+ "contentHash": "LRTb1IDeS0Hd4+73z0mBDi+suLVDIIOc+p6LftYAI7knBpLPwFj38bTjsb2QRhUhPk/F93ii47PfNdGIVlqUyw==",
+ "dependencies": {
+ "uSync.BackOffice": "13.2.3"
+ }
+ },
"Yarp.ReverseProxy": {
"type": "Transitive",
"resolved": "2.1.0",
diff --git a/examples/starter-example/starter-example.csproj b/examples/starter-example/starter-example.csproj
index 46e8b04e..f32c86ca 100644
--- a/examples/starter-example/starter-example.csproj
+++ b/examples/starter-example/starter-example.csproj
@@ -8,6 +8,8 @@
+
+
diff --git a/examples/starter-example/uSync/v9/Content/about.config b/examples/starter-example/uSync/v9/Content/about.config
new file mode 100644
index 00000000..dd73568b
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/about.config
@@ -0,0 +1,119 @@
+
+
+
+ Home
+ /Home/About
+ false
+ content
+ 2021-10-09T23:24:16
+
+ 1
+
+
+ content
+
+
+
+ The Clean Starter Kit for Umbraco uses the Start Bootstrap Theme Clean Blog which is built using Bootstrap 5. It has been implemented in Umbraco as a Starter Kit by Paul Seal who has the blog codeshare.co.uk and works for the Umbraco Gold Partner ClerksWell.
\nThe idea of this starter kit is to provide you with a clean and simple website. It is ideally aimed at people who are new to Umbraco so they can install the starter kit, get used to Umbraco and then build upon the kit with their own requirements.
"
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/51df637ca0854224a60d3163fb59091a",
+ "image": [
+ {
+ "key": "6041d253-db55-43e0-ad07-5e35f1bca9ea",
+ "mediaKey": "8ac2c7bc-0acb-488e-a4e6-24d9ea5bdff7",
+ "crops": [],
+ "focalPoint": {
+ "left": 0.5,
+ "top": 0.5
+ }
+ }
+ ],
+ "caption": "Umbraco, the friendly CMS"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/222d1acd8d1d4bd5af79d9c1fe0ded44",
+ "content": "With this starter kit you should be able to quickly and easily set up a new website and share your content with others. The aim is for you to start using Umbraco and fall in love with it like I did, as a user or as a developer, you will find out how enjoyable it is to use.
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/38c5ec597c9948d59582509d8c4094a6",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/5934cccecf674ab98bb4da3f413ee79c",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/7b469d55024b4655b45d02f4b3d39f74",
+ "hide": "0"
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/authors.config b/examples/starter-example/uSync/v9/Content/authors.config
new file mode 100644
index 00000000..2b65809b
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/authors.config
@@ -0,0 +1,52 @@
+
+
+
+ Home
+ /Home/Authors
+ false
+ authorList
+ 2023-08-15T22:58:50
+
+ 7
+
+
+ AuthorList
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/blog.config b/examples/starter-example/uSync/v9/Content/blog.config
new file mode 100644
index 00000000..cdebd621
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/blog.config
@@ -0,0 +1,85 @@
+
+
+
+ Home
+ /Home/Blog
+ false
+ articleList
+ 2021-10-09T23:24:16
+
+ 2
+
+
+ articleList
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/categories.config b/examples/starter-example/uSync/v9/Content/categories.config
new file mode 100644
index 00000000..29db22e7
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/categories.config
@@ -0,0 +1,26 @@
+
+
+
+ Home
+ /Home/Categories
+ false
+ categoryList
+ 2023-08-29T23:55:25
+
+ 8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/community.config b/examples/starter-example/uSync/v9/Content/community.config
new file mode 100644
index 00000000..c4ac765c
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/community.config
@@ -0,0 +1,130 @@
+
+
+
+ Blog
+ /Home/Blog/Community
+ false
+ article
+ 2021-10-09T23:24:16
+
+ 0
+
+
+ article
+
+
+
+
+
+
+
+
+
+
+
+
+ There is a large community around umbraco, it is one of the main attractions when choosing it as your Content Management System of choice.
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/39f6ec40323a4c50a7c1041385206a2c",
+ "image": [
+ {
+ "key": "d64c94dd-d663-47fe-b1d4-58532d3b6fc6",
+ "mediaKey": "dd3840b3-8621-451b-9ee9-01f6ad175ec7"
+ }
+ ],
+ "caption": "Umbraco community enjoying another great talk"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/b34201b6030c4f12a8bd85ff290caf1b",
+ "content": {
+ "markup": "Not everyone is aware of all of the places where you can connect to the Umbraco community, so this post will list out different places you can communicate with the Umbraco community.
\n\nOur is the official Umbraco forum. If you have a problem, you should search there first to see if it has been solved already. Then if it hasn't you should ask your question on there. You will get friendly responses from a community of people who want to help you succeed, not see you fail.
\nThere is also a community section on Our Umbraco where you can find out way more about the Umbraco Community.
\n\nThere is a growing community of people on the Discord Server now. This is also a great place for you to ask for help with Umbraco too.
\nIf you like to use discord, you can chat with other Umbraco members in real time. This is good for getting quick answers to questions or good for asking for people's opinions on things. There are many different channels to be a part of, so it is worth checking it out.
\n\nIf you prefer to use Facebook, then this group might be of interest to you. It is called Umbraco Web Developers, but anyone can join, you don't have to be a developer, but it helps to be working with Umbraco.
\n\nTwitter is a great place to see the latest developments in the Umbraco community. You will see people reporting issues with Umbraco, asking questions about how to do things and arranging meetups. To tune into the chat on twitter you can search for Umbraco or filter by the #Umbraco hashtag.
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/701214a0d3134f2194a4f8d14f34a747",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/1189d70d4eb74dbdaae6932132f44fbe",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/9d341e7fa5d944d4aa1fa7658883436a",
+ "hide": "0"
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/community_fa0pue2k.config b/examples/starter-example/uSync/v9/Content/community_fa0pue2k.config
new file mode 100644
index 00000000..4752a2e5
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/community_fa0pue2k.config
@@ -0,0 +1,16 @@
+
+
+
+ Categories
+ /Home/Categories/Community
+ false
+ category
+ 2023-08-29T23:55:51
+
+ 0
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/conferences.config b/examples/starter-example/uSync/v9/Content/conferences.config
new file mode 100644
index 00000000..d6891414
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/conferences.config
@@ -0,0 +1,165 @@
+
+
+
+ Blog
+ /Home/Blog/Conferences
+ false
+ article
+ 2021-10-09T23:24:16
+
+ 3
+
+
+ article
+
+
+
+
+
+
+
+
+
+
+
+
+ There are many Umbraco conferences held around the world.\nThe main one is codegarden which is held in Odense, Denmark, about a 10 minute walk away from the Umbraco HQ.
\nIn 2019 approximately 750 people attended, making it the biggest codegarden ever.
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/82fe82ac3eb6455596b706231b15148a",
+ "image": [
+ {
+ "key": "af873978-e8d2-4244-ba1c-e1d282d822f4",
+ "mediaKey": "0521b485-98b6-409d-ad35-8745f3e4287c"
+ }
+ ],
+ "caption": "750 people attended Codegarden 2019"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/0214ee5ca1344e7eade7092f0016c8f7",
+ "content": {
+ "markup": "Here is a list of Umbraco related conferences from around the world:
\n\nBristol, England - March
\nThe Umbraco Spark innovation conference is a must for all Umbraco developers that want to find out what's going on with Umbraco. Focusing on innovation and forward thinking, we cover topics such as Umbraco Headless, .Net Core, Machine Learning / AI, personalisation, mobile apps, content as a service, and digital assistants.
\n\nOdense, Denmark - June
\nCodegarden is the biggest Umbraco conference in the world. It's 3 days packed with inspiring talks about tech, business, UX and, of course, Umbraco. 3 days where you will deepen your Umbraco knowledge, get inspired, get to meet the global open source Umbraco community and simply have a fabulous time.
\nIf you’re working with Umbraco or if Umbraco is part of your business - this is the place to be!
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ },
+ {
+ "contentTypeKey": "f43c8349-0801-44b8-9113-9f7c62cd44fe",
+ "udi": "umb://element/eb6d7236c2254a8cbe78fbeead9e4731",
+ "videoUrl": "https://www.youtube.com/watch?v=CQJIl2xoDhc",
+ "caption": "Codegarden 2022 | Official Aftermovie"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/8570194b0e1c476d90028a05d647d309",
+ "content": {
+ "markup": "\nUtrecht, Netherlands - October
\nDUUGFest is run by the Dutch Umbraco User Group
\n\nPeak District, England - September
\nCODECABIN is the premier, invite-only weekend away for Umbraco developers, providing time to code, learn and network in a completely relaxed and open environment away from the hustle and bustle of every day life.
\n\nLondon, England - November
\nThe world's biggest community organised Umbraco event. Get ready for a jam packed event featuring incredible talks on development, front end, design & UX, wellbeing, and business, deep-dive workshops hosted by community experts, and of course our legendary hackathon.
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/de0ef55d823645dca8c4c53bd24c1a35",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/81b5707465014c60b4dd442cebc37909",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/8c526fec932b4ff3b11e8b6fd1531197",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "eef34ceb-ddf6-4894-b1ac-f96c8c05d3d2",
+ "udi": "umb://element/d45c3cb35f8345659c78e6e634c65716",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/a83ef7fa6b3e44ce8d0aa35a6c216411",
+ "hide": "0"
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/conferences_dpraan01.config b/examples/starter-example/uSync/v9/Content/conferences_dpraan01.config
new file mode 100644
index 00000000..55492aa1
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/conferences_dpraan01.config
@@ -0,0 +1,16 @@
+
+
+
+ Categories
+ /Home/Categories/Conferences
+ false
+ category
+ 2023-08-30T00:38:29
+
+ 1
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/contact.config b/examples/starter-example/uSync/v9/Content/contact.config
new file mode 100644
index 00000000..cbe9be11
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/contact.config
@@ -0,0 +1,65 @@
+
+
+
+ Home
+ /Home/Contact
+ false
+ contact
+ 2021-10-09T23:24:16
+
+ 3
+
+
+ contact
+
+
+
+ Error
+Sorry there was a problem with submitting the form. Please try again.
]]>
+
+
+
+
+
+
+
+
+ Want to get in touch? Fill out the form below to send me a message and I will get back to you as soon as possible!]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Thank you
+Thanks for your email. We will be in touch soon.
]]>
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/error.config b/examples/starter-example/uSync/v9/Content/error.config
new file mode 100644
index 00000000..c0642de9
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/error.config
@@ -0,0 +1,83 @@
+
+
+
+ Home
+ /Home/Error
+ false
+ error
+ 2021-10-09T23:24:16
+
+ 4
+
+
+ error
+
+
+
+ Sorry, we couldn't find the page you were looking for.\nWhy not go back to the home page and start again?
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/0657abc2a856452b89a30fb4fffc65c6",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": "",
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/features.config b/examples/starter-example/uSync/v9/Content/features.config
new file mode 100644
index 00000000..3abc6fb8
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/features.config
@@ -0,0 +1,276 @@
+
+
+
+ Home
+ /Home/Features
+ false
+ content
+ 2023-08-06T06:01:20
+
+ 0
+
+
+ content
+
+
+
+ Rich Text Row\nThere is a simple rich text row for writing your usual formatted content in a WYSIWIG style with the usual settings including but not limited to:Â
\nBold
\nItalic
\nLeft align
\nRight align
\n\n\n- Ordered List
\n
"
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/aabf1c82a7074b23a905c6c41d7e8db0",
+ "image": [
+ {
+ "key": "b971579f-5dd9-46f4-ad32-1d4ea6f04127",
+ "mediaKey": "bbf2800f-1cc5-4ea9-8d2e-b33ff1d5efbe"
+ }
+ ],
+ "caption": "Image Row Example"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/f44e6a28c00e4d6bab107902d5785289",
+ "content": "Image Row
\nYou can use the image row to render a full width image.
"
+ },
+ {
+ "contentTypeKey": "f43c8349-0801-44b8-9113-9f7c62cd44fe",
+ "udi": "umb://element/580568eda49a42128607366cc83bafc0",
+ "videoUrl": "https://www.youtube.com/watch?v=Dn2tI1--LOs",
+ "caption": "What's next in C# - Mads Torgersen @ Umbraco Codegarden 2022"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/0a384113fbcf4205b15cda6a6bfd6b8c",
+ "content": "Video Row
\nThis lets you embed a YouTube video by just entering the normal URL of the video, and it just renders the preview image of it at first. Then when you click on it, it loads it in as the iframe, which is better for the end user as it doesn't download all of the YouTube assets until it is needed.
"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/d5c55fef1cf44fa2a67502f193dcbf0c",
+ "content": "Code Snippet Row
\nThere is a code snippet row to enable you to easily share code snippets in your website.
"
+ },
+ {
+ "contentTypeKey": "f37c2c28-c8ab-48cd-ac07-b13e38bd900f",
+ "udi": "umb://element/2bb90c718d9a4e569458ab5bde2d0f58",
+ "code": "@inherits UmbracoViewPage\r\n@using Umbraco.Cms.Core.Models.Blocks\r\n\r\n@{\r\n var row = Model.Content as CodeSnippetRow;\r\n var settings = Model.Settings as CodeSnippetRowSettings;\r\n if (settings?.Hide ?? false) { return; }\r\n\r\n SmidgeHelper.RequiresJs(\"~/clean-assets/js/highlight.default.min.css\");\r\n SmidgeHelper.RequiresJs(\"~/clean-assets/js/highlight.min.js\");\r\n}\r\n\r\n",
+ "title": "Code from the codeSnippetRow.cshtml file"
+ },
+ {
+ "contentTypeKey": "1c43fe2d-4a9a-4336-923f-9d0214950d48",
+ "udi": "umb://element/2d0b8422de3847d192438026ef503919",
+ "images": [
+ {
+ "key": "b8bcec6b-33bc-4a93-9819-d67f25190457",
+ "mediaKey": "3c6c415c-35a0-4629-891e-683506250c31"
+ },
+ {
+ "key": "d0435454-53ef-4013-b48e-2cefdfb467ff",
+ "mediaKey": "5598b628-b390-4532-8bb5-dab06089e9d7"
+ },
+ {
+ "key": "ef2c3ab6-60ae-4d8d-a489-29e27d285691",
+ "mediaKey": "bbf2800f-1cc5-4ea9-8d2e-b33ff1d5efbe"
+ },
+ {
+ "key": "971c3fbc-859b-4af4-97fa-035405aa377b",
+ "mediaKey": "48239f24-1450-49da-9964-934f512dde48"
+ },
+ {
+ "key": "b2fd4dd3-4cd5-4b1f-9b31-052bfff2deb0",
+ "mediaKey": "167ee715-53ff-4a8b-ab50-7d630c8448fa"
+ },
+ {
+ "key": "c3518f71-9713-4a60-ae04-a806e1c2e38d",
+ "mediaKey": "b5279cc9-c438-4b14-a57a-72f97f5527f7"
+ }
+ ]
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/5dbf69fbf38a4e3f91637b153185a731",
+ "content": "Image Carousel Row
\nYou can add a simple image carousel to a page by using the Image Carousel Row. In this row you have a multi image picker and you just choose the images you want to display.
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/25575a797c7f4376a8ffdf3258a5d90f",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/70eaaac704594630b07daba532e5b570",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/e56e12baf10c436aa2b2e18619f520f8",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": [
+ "5"
+ ],
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ },
+ {
+ "contentTypeKey": "eef34ceb-ddf6-4894-b1ac-f96c8c05d3d2",
+ "udi": "umb://element/32870124dd0941b99a214cb70d726c8c",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/ce23467908804d8b832a98320287616e",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": [
+ "5"
+ ],
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/a4432aa0ee134cbebfd3110e99749a2a",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": [
+ "5"
+ ],
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ },
+ {
+ "contentTypeKey": "93638715-f76c-4a11-86b1-6a9d66504901",
+ "udi": "umb://element/25a7844466764628ab13c10cd4efcfa1",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": "",
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ },
+ {
+ "contentTypeKey": "378fde96-51b6-4506-93e3-ec3038e636bb",
+ "udi": "umb://element/4ce89d32479649a4b2d63814c0247d8f",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingRight": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "marginTop": "",
+ "marginRight": "",
+ "marginBottom": "",
+ "marginLeft": ""
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/08acf63461c54248b39d62ffc41662d7",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": [
+ "5"
+ ],
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/home.config b/examples/starter-example/uSync/v9/Content/home.config
new file mode 100644
index 00000000..1318c97e
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/home.config
@@ -0,0 +1,269 @@
+
+
+
+
+ /Home
+ false
+ home
+ 2021-10-09T23:24:15
+
+ 0
+
+
+ home
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/join-the-umbraco-community-on-mastodon.config b/examples/starter-example/uSync/v9/Content/join-the-umbraco-community-on-mastodon.config
new file mode 100644
index 00000000..3f0fc05b
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/join-the-umbraco-community-on-mastodon.config
@@ -0,0 +1,98 @@
+
+
+
+ Blog
+ /Home/Blog/JoinTheUmbracoCommunityOnMastodon
+ false
+ article
+ 2023-12-14T14:48:32
+
+ 6
+
+
+ article
+
+
+
+
+
+
+
+
+
+
+
+
+ Recently it has been talked about that the Umbraco Community seems to have been spread out across different social media platforms since the takeover of Twitter. So the sense of community has been watered down.\nIn an effort to boost that community spirit and to gather in one place in a platform \"similar\" to twitter, there has been a push to join the Umbraco Mastodon server.
\nIt's great to see lots of Umbraco related posts in your feed without ads or \"recommended\" posts.
\nJoe Glombek from Bump Digital wrote an excellent blog post all about what Mastodon is and how to join the Umbraco Mastodon server.
\nSo have a read of that post to find out more.
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/4f7ff1a902f74dfa8d452e5ce1b4b628",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": "",
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/meetups.config b/examples/starter-example/uSync/v9/Content/meetups.config
new file mode 100644
index 00000000..07c92da9
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/meetups.config
@@ -0,0 +1,130 @@
+
+
+
+ Blog
+ /Home/Blog/Meetups
+ false
+ article
+ 2021-10-09T23:24:16
+
+ 2
+
+
+ article
+
+
+
+
+
+
+
+
+
+
+
+
+ Until I had gone to my first meetup, I didn't realise how comforting and safe it would feel to be around like minded people. When I started going to meetups, I realised that there were other people out there who liked the same things I do, and I could have decent conversations with them face to face. With that in mind I would encourage to you attend a meetup if you can.",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/642a364fbaa748628a8b1532aecd9441",
+ "image": [
+ {
+ "key": "a36f917f-8cd3-4bc1-a105-b7f8c7052a8d",
+ "mediaKey": "167ee715-53ff-4a8b-ab50-7d630c8448fa"
+ }
+ ],
+ "caption": "We love to hear great talks at meetups"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/62706cbebb1247f381a79ebedc4e3ee3",
+ "content": {
+ "markup": "Here are some popular Umbraco meetups, some of them are virtual meetups.
\n\nEDINBUUG is a chance to chat about all things Umbraco - whether you are someone who uses Umbraco for their website, you're a developer who builds Umbraco websites or maybe you are a project manager who works with clients who have Umbraco websites - come along. Everyone is welcome.
\n\nThe purpose is to get together, discuss and learn a little about Umbraco having some fun while doing so. Whether there are two of us or 22, the event will go forward, so come along and take part!
\n\nThe London Umbraco Meetup Group is a monthly meetup for Umbraco devotees and newbies to come along, learn and share their knowledge and to also gently spread the umbraco love to all.
\nWe aim to meet each month, where you can have a chat and a beer with other fellow Umbracians.
\nWe also try and mix it up by having talks by both Umbraco and non-Umbraco
\n\nTo get Umbraco in the picture in the Netherlands: that's what we aim for with the Dutch Umbraco User Group (DUUG)! It's a platform for and by professionals working with the most applied .net CMS in Europe. DUUG will inspire, inform, convince and reinforce.
\n\nUmbraco Leeds is a monthly meetup group for anyone involved or interested in Umbraco. Whether you're a developer, content editor, project owner or just curious to hear about what it's all about - come along to one of our meetups and you'll be sure of a warm and friendly welcome.
\n\nThis is the group for passionate Umbraco developers and users in the Sydney area to meetup every couple of months. Sometimes it may be at the Glenmore on The Rocks or it could be a presentation based on Umbraco hosted by a local agency.
\n\nThe Belgian Umbraco Meet Up is an open space to come learn and meet umbraco people and agencies in the Belgian area, we however welcome umbracians from all parts of the globe and you are welcome to attend.
\n\nWe are a networking group for everyone who loves Umbraco!
\nMeetups are organized in Odense, Aarhus, Copenhagen and where there are enthusiasts who want to arrange something. There will be presentations, hands-on sessions, display of the delicious things you've made in Umbraco or something else.
\n\nThe Glasgow Umbraco Users' Group (GLUUG) is a networking group for anyone interested in Umbraco. We have regular social meetups where people can come and chat to friendly and like-minded Umbraco folk. We also have more formal presentation-based meetups where experts in the community share their knowledge and usually kick-start some lively debates!
\nSo come along and chat to some friendly folk over a beer and some pizza at our next meetup :)
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/34cea66b0f324c1abf1189a6e954447f",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/41d73d2c5cad47cb98f57ecac90089d3",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/ea9a5807ded545d8981d74d5976fa6fb",
+ "hide": "0"
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/meetups_fthd5e2w.config b/examples/starter-example/uSync/v9/Content/meetups_fthd5e2w.config
new file mode 100644
index 00000000..942a9b1f
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/meetups_fthd5e2w.config
@@ -0,0 +1,16 @@
+
+
+
+ Categories
+ /Home/Categories/Meetups
+ false
+ category
+ 2023-08-29T23:56:00
+
+ 2
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/paul-seal.config b/examples/starter-example/uSync/v9/Content/paul-seal.config
new file mode 100644
index 00000000..3f4adeb1
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/paul-seal.config
@@ -0,0 +1,85 @@
+
+
+
+ Authors
+ /Home/Authors/PaulSeal
+ false
+ author
+ 2023-08-15T23:21:15
+
+ 0
+
+
+ Author
+
+
+
+ Paul Seal is an Umbraco Tech Lead and multiple times Umbraco MVP who works for the Umbraco Gold Partners ClerksWell.\nWhen he's not creating packages such as the Clean Starter Kit, which you are looking at right now, Paul likes to contribute to Open Source by submitting pull requests to different projects such as the Umbraco Source code, uSync Migrations and Contentment.
\nPaul likes to write articles with code snippets to help people out when they are struggling to achieve something, usually for Umbraco.
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/7cdd3e4316c84a9f8e5157bc9c8d8a05",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": [
+ "5"
+ ],
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/podcasts-and-videos.config b/examples/starter-example/uSync/v9/Content/podcasts-and-videos.config
new file mode 100644
index 00000000..9a0ea1cb
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/podcasts-and-videos.config
@@ -0,0 +1,237 @@
+
+
+
+ Blog
+ /Home/Blog/PodcastsAndVideos
+ false
+ article
+ 2023-07-30T07:31:23
+
+ 4
+
+
+ article
+
+
+
+
+
+
+
+
+
+
+
+
+ A great way to stay in touch with what is happening in the Umbraco community is by listening to podcasts and watching umbraCoffee.",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ },
+ {
+ "contentTypeKey": "f43c8349-0801-44b8-9113-9f7c62cd44fe",
+ "udi": "umb://element/c12b4913352d4371b984c69d777b9527",
+ "videoUrl": "https://www.youtube.com/watch?v=8X_Hzm29tV8",
+ "caption": "An episode of umbraCoffee from July 2023"
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/29e835ad92cc4b32b24694f9bb0cb5b6",
+ "image": [
+ {
+ "key": "369ed25b-f0d5-4915-96cb-858df2521c38",
+ "mediaKey": "7d96bc75-fea8-4f66-aaf5-50f45748cab4"
+ }
+ ],
+ "caption": "Candid Contributions Podcast"
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/856dee0481a942b18eede133fa816d44",
+ "image": [
+ {
+ "key": "23930894-c1b4-4ae2-9801-95505acd1054",
+ "mediaKey": "c334997e-f9a7-498b-83af-f4888a97d5bc"
+ }
+ ],
+ "caption": "Package Manifest Podcast"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/8353fb5a92ad486a9d40fb3aa0e22b2d",
+ "content": {
+ "markup": "\numbraCoffee is a weekly YouTube show where each Friday at 11:30am UK / 12:30pm CET, the hosts - Marcin and Callum - together with their guests drive you through the weekly news and all things Umbraco related. So grab a cuppa, join them LIVE and enjoy!
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/60ef3378da7c4ba09a70436dfeabdbb5",
+ "content": {
+ "markup": "\nCandid Contributions is the home of the aptly named podcast where four experienced developers: Carole Logan, Emma Burstow, Laura Weatherhead and Lotte Pitcher talk all things open source - from code contributions to conference attendance; they aim to cover all aspects of life as an active member of an open-source community.
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/4639f709abb6460eb892d7676d93a194",
+ "content": {
+ "markup": "\nPackage Manifest is a podcast all about Umbraco packages and the people who create them. It is hosted by Matt Brailsford, Kevin Jump and Lee Kelleher.
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/afd72029194841fc883a6b40832c6a6a",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "eef34ceb-ddf6-4894-b1ac-f96c8c05d3d2",
+ "udi": "umb://element/35bbb6a604b34e448c67a4047e356f38",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/5e063ac7363e466cad465236f484902f",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": [
+ "5"
+ ],
+ "paddingRight": [
+ "5"
+ ],
+ "marginTop": "",
+ "marginBottom": "",
+ "marginLeft": [
+ "5"
+ ],
+ "marginRight": [
+ "5"
+ ]
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/f4fbbedbf310405f9e7e94f90ae55f0a",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": [
+ "5"
+ ],
+ "paddingRight": [
+ "5"
+ ],
+ "marginTop": "",
+ "marginBottom": "",
+ "marginLeft": [
+ "5"
+ ],
+ "marginRight": [
+ "5"
+ ]
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/847d7bd4904e4034b8c0797ff13cad71",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/e2c6c27f99c846d5ac18a57dd5b47676",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/acb1482423be413abe97f758e910cc5f",
+ "hide": "0"
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/podcasts.config b/examples/starter-example/uSync/v9/Content/podcasts.config
new file mode 100644
index 00000000..7468366e
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/podcasts.config
@@ -0,0 +1,16 @@
+
+
+
+ Categories
+ /Home/Categories/Podcasts
+ false
+ category
+ 2023-08-30T00:05:28
+
+ 3
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/popular-blogs.config b/examples/starter-example/uSync/v9/Content/popular-blogs.config
new file mode 100644
index 00000000..0328b767
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/popular-blogs.config
@@ -0,0 +1,130 @@
+
+
+
+ Blog
+ /Home/Blog/PopularBlogs
+ false
+ article
+ 2021-10-09T23:24:16
+
+ 1
+
+
+ article
+
+
+
+
+
+
+
+
+
+
+
+
+ There are many blogs and magazines from Umbraco community members writing about Umbraco\nHere are some popular ones:
\n\nSkrift isn't just \"another blog on the internet\". They are an online magazine with an ISSN (International Standard Serial Number), which means that as one of their authors, you are officially printed in a publication. Which means you will have great recognition in your field and it may help you land your next contract, client, raise or job.
\nSo have a read of the articles and consider writing for them too.
\n\nThe 24 Days In Umbraco Christmas Calendar. It started in December 2012, where they asked a bunch of Umbraco people if they had a favourite feature, a story or something else that they'd be willing to write a short article about. The 24 days team now post a new one on the site everyday through December.
\nYou can also write for 24 days, so have a read through the articles and contact the organisers if you would like to write for them.
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/67a12f8ca471436aa8c5cbf3207722bd",
+ "image": [
+ {
+ "key": "8e560bf8-be43-4b80-b7ca-5a6ed81dc502",
+ "mediaKey": "b5279cc9-c438-4b14-a57a-72f97f5527f7"
+ }
+ ],
+ "caption": "Skrift authors at Codegarden"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/1734736f35b341478fcde05c8712150d",
+ "content": {
+ "markup": "\nCodeshare is a blog by me, Paul Seal, where i like to share tips about Umbraco and other web related topics. There are tools on there too such as a strong password generator.
\n\nJon D Jones is a great source of knowledge about Umbraco and other CMSs. He writes very detailed tutorials to go with his videos.
\n\nOwain's Umbraco Community thoughts, coding tutorials, what he is learning, general blogs about his experience with Umbraco and any other things that come to mind.
\n\nCorné Hoskam is a very talented Umbraco Developer and speaker. He likes to share his knowledge and experience in his personal blog.
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/e49cb89faa3447b2af94288d08550333",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/8dd61d38a06947128c1f076d4dc72ece",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/213f04a886f9496bbbaf1bb354c8fa04",
+ "hide": "0"
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/resources.config b/examples/starter-example/uSync/v9/Content/resources.config
new file mode 100644
index 00000000..51df152e
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/resources.config
@@ -0,0 +1,16 @@
+
+
+
+ Categories
+ /Home/Categories/Resources
+ false
+ category
+ 2023-08-30T00:39:17
+
+ 4
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/search.config b/examples/starter-example/uSync/v9/Content/search.config
new file mode 100644
index 00000000..6d642956
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/search.config
@@ -0,0 +1,44 @@
+
+
+
+ Home
+ /Home/Search
+ false
+ search
+ 2021-10-09T23:24:16
+
+ 6
+
+
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/umbraco.config b/examples/starter-example/uSync/v9/Content/umbraco.config
new file mode 100644
index 00000000..71ff3a17
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/umbraco.config
@@ -0,0 +1,16 @@
+
+
+
+ Categories
+ /Home/Categories/Umbraco
+ false
+ category
+ 2023-08-29T23:55:44
+
+ 5
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/videos.config b/examples/starter-example/uSync/v9/Content/videos.config
new file mode 100644
index 00000000..45b7d9ea
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/videos.config
@@ -0,0 +1,16 @@
+
+
+
+ Categories
+ /Home/Categories/Videos
+ false
+ category
+ 2023-08-29T23:56:18
+
+ 6
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/xmlsitemap.config b/examples/starter-example/uSync/v9/Content/xmlsitemap.config
new file mode 100644
index 00000000..c6f5973c
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/xmlsitemap.config
@@ -0,0 +1,26 @@
+
+
+
+ Home
+ /Home/XMLSitemap
+ false
+ xMLSitemap
+ 2021-10-09T23:24:16
+
+ 5
+
+
+ xMLSitemap
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Content/youtube-tutorials.config b/examples/starter-example/uSync/v9/Content/youtube-tutorials.config
new file mode 100644
index 00000000..03990216
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Content/youtube-tutorials.config
@@ -0,0 +1,203 @@
+
+
+
+ Blog
+ /Home/Blog/YouTubeTutorials
+ false
+ article
+ 2023-08-04T06:53:45
+
+ 5
+
+
+ article
+
+
+
+
+
+
+
+
+
+
+
+
+ There are lots of free videos on YouTube for you to be able to learn more about Umbraco.",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/8b4af4c316364111bc8c3f71e1dee4ae",
+ "content": {
+ "markup": "\nUmbraco Learning Base is the official channel for the Happy Documentation and TV team at Umbraco HQ. On this channel, you can find videos and tutorials on how to get started working with the world's friendliest CMS Umbraco.
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ },
+ {
+ "contentTypeKey": "f43c8349-0801-44b8-9113-9f7c62cd44fe",
+ "udi": "umb://element/8f3328aad96045a3ad14880e3f3d0305",
+ "videoUrl": "https://www.youtube.com/watch?v=Yu29dE-0OoI",
+ "caption": "Getting Started with Umbraco"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/5da04a93caec4ed8b0870bdc31860bed",
+ "content": {
+ "markup": "\nThere are several playlists of videos in this channel for you to learn how to build a website with Umbraco. Paul takes you step by step through the process and shows you the errors and mistakes along the way so you can see how to fix them yourself.
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ },
+ {
+ "contentTypeKey": "f43c8349-0801-44b8-9113-9f7c62cd44fe",
+ "udi": "umb://element/5e64e45431ac4662afc2b078b397b2d8",
+ "videoUrl": "https://www.youtube.com/watch?v=qEZtjxDEK8g",
+ "caption": "How to build a website with Umbraco 10 - Part 1 - Installation"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/7a2d81a99df6456f9c992a72459292a8",
+ "content": {
+ "markup": "\nJon creates a new YouTube tutorial video every week, with a detailed blog post to follow along with too. He usually creates videos about Umbraco and other Content Management Systems.
",
+ "blocks": {
+ "contentData": [],
+ "settingsData": []
+ }
+ }
+ },
+ {
+ "contentTypeKey": "f43c8349-0801-44b8-9113-9f7c62cd44fe",
+ "udi": "umb://element/192a6c7f4b934571803b16db796e5c33",
+ "videoUrl": "https://www.youtube.com/watch?v=arki6eMudG8",
+ "caption": "Build a NextJs headless website with Umbraco and Content Delivery API"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/f3aa62d81bd742788579047706724049",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": "",
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/aace85dd9b5843ddb79f2f0897db1277",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "eef34ceb-ddf6-4894-b1ac-f96c8c05d3d2",
+ "udi": "umb://element/a56d7b5404f3493f882c66c28712b3a4",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/15377292a7d24bc4bc560dd3a59ca2b1",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "eef34ceb-ddf6-4894-b1ac-f96c8c05d3d2",
+ "udi": "umb://element/b0f2759d661b424c8b9e46795c500478",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/9a5129d4204644aaa37d37361ffc9540",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "eef34ceb-ddf6-4894-b1ac-f96c8c05d3d2",
+ "udi": "umb://element/b9367f44c258449fb2fecd7eddea4f19",
+ "hide": "0"
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/article.config b/examples/starter-example/uSync/v9/ContentTypes/article.config
new file mode 100644
index 00000000..e1fbc926
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/article.config
@@ -0,0 +1,35 @@
+
+
+
+ Article
+ icon-article color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ articleControls
+ contentControls
+ headerControls
+ listPageSettings
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ article
+
+ article
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/articlecontrols.config b/examples/starter-example/uSync/v9/ContentTypes/articlecontrols.config
new file mode 100644
index 00000000..dc33c38e
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/articlecontrols.config
@@ -0,0 +1,82 @@
+
+
+
+ Article Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ 5ec7043f-1670-4917-bc0e-8c2f08b3a6e4
+ Article Date
+ articleDate
+ e4d66c0f-b935-4200-81f0-025f7256b89a
+ Umbraco.DateTime
+ true
+
+
+ 20
+ Content
+ Nothing
+
+
+ false
+
+
+ 4e300c2a-054e-44f8-8c13-7914b4ffc165
+ Author
+ author
+ bd37253b-2f05-40e0-8d38-6041c9456230
+ Umbraco.MultiNodeTreePicker
+ true
+
+
+ 25
+ Content
+ Nothing
+
+
+ false
+
+
+ 63d11e41-4fbc-474a-ae4b-0c5b0217653c
+ Categories
+ categories
+ 9a426393-b2c8-4403-a85f-00b7a51ebe69
+ Umbraco.MultiNodeTreePicker
+ false
+
+
+ 30
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ 2c962016-43e4-47ee-a890-87bd908f2a72
+ Content
+ content
+ Tab
+ 10
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/articlelist.config b/examples/starter-example/uSync/v9/ContentTypes/articlelist.config
new file mode 100644
index 00000000..b84d96c3
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/articlelist.config
@@ -0,0 +1,36 @@
+
+
+
+ Article List
+ icon-thumbnail-list color-blue
+ folder.png
+
+ False
+ True
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ contentControls
+ headerControls
+ listPageSettings
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ articleList
+
+ articleList
+
+
+
+ article
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/author.config b/examples/starter-example/uSync/v9/ContentTypes/author.config
new file mode 100644
index 00000000..77c222c9
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/author.config
@@ -0,0 +1,33 @@
+
+
+
+ Author
+ icon-umb-users color-light-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ contentControls
+ headerControls
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ Author
+
+ Author
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/authorlist.config b/examples/starter-example/uSync/v9/ContentTypes/authorlist.config
new file mode 100644
index 00000000..4f555691
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/authorlist.config
@@ -0,0 +1,35 @@
+
+
+
+ Author List
+ icon-users color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ contentControls
+ headerControls
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ AuthorList
+
+ AuthorList
+
+
+
+ author
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/category.config b/examples/starter-example/uSync/v9/ContentTypes/category.config
new file mode 100644
index 00000000..b58f5927
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/category.config
@@ -0,0 +1,25 @@
+
+
+
+ Category
+ icon-tag color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/categorylist.config b/examples/starter-example/uSync/v9/ContentTypes/categorylist.config
new file mode 100644
index 00000000..0903b7f4
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/categorylist.config
@@ -0,0 +1,29 @@
+
+
+
+ Category List
+ icon-tags color-blue
+ folder.png
+
+ False
+ True
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ visibilityControls
+
+
+
+
+
+ category
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/codesnippetrow.config b/examples/starter-example/uSync/v9/ContentTypes/codesnippetrow.config
new file mode 100644
index 00000000..b7aa5e8c
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/codesnippetrow.config
@@ -0,0 +1,66 @@
+
+
+
+ Code Snippet Row
+ icon-code color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Content+Models
+
+
+
+
+
+
+
+ d7546066-4194-4576-b75d-11b8dab1e860
+ Code
+ code
+ c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3
+ Umbraco.TextArea
+ false
+
+
+ 1
+ Content
+ Nothing
+
+
+ false
+
+
+ 2c592a4f-6066-4c7c-b560-9a2c602dbcbf
+ Title
+ title
+ 0cc0eba1-9960-42c9-bf9b-60e150b429ae
+ Umbraco.TextBox
+ false
+
+
+ 0
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ 98438e4b-df34-4d4a-b97e-2e3144a10ebb
+ Content
+ content
+ Tab
+ 0
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/codesnippetrowsettings.config b/examples/starter-example/uSync/v9/ContentTypes/codesnippetrowsettings.config
new file mode 100644
index 00000000..041b0c11
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/codesnippetrowsettings.config
@@ -0,0 +1,28 @@
+
+
+
+ Code Snippet Row Settings
+ icon-settings color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Setting+Models
+
+ hideProperty
+ spacingProperties
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/contact.config b/examples/starter-example/uSync/v9/ContentTypes/contact.config
new file mode 100644
index 00000000..2997b53e
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/contact.config
@@ -0,0 +1,33 @@
+
+
+
+ Contact
+ icon-message color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ contactFormControls
+ headerControls
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ contact
+
+ contact
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/contactformcontrols.config b/examples/starter-example/uSync/v9/ContentTypes/contactformcontrols.config
new file mode 100644
index 00000000..c20e6792
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/contactformcontrols.config
@@ -0,0 +1,89 @@
+
+
+
+ Contact Form Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ 067fc52b-d92c-451b-8a48-cc1e5565a046
+ Error Message
+ errorMessage
+ ca90c950-0aff-4e72-b976-a30b1ac57dad
+ Umbraco.TinyMCE
+ true
+
+
+ 10
+ Result Messages
+ Nothing
+
+
+ false
+
+
+ 4a254e56-06f5-459b-9214-264621a97abe
+ Instruction Message
+ instructionMessage
+ ca90c950-0aff-4e72-b976-a30b1ac57dad
+ Umbraco.TinyMCE
+ false
+
+
+ 20
+ Content
+ Nothing
+
+
+ false
+
+
+ 3e771f3c-d2bf-4dc4-8c31-e757eb0103d9
+ Success Message
+ successMessage
+ ca90c950-0aff-4e72-b976-a30b1ac57dad
+ Umbraco.TinyMCE
+ true
+
+
+ 5
+ Result Messages
+ Nothing
+
+
+ false
+
+
+
+
+ 30532545-b8f7-449b-a600-17592a613461
+ Result Messages
+ resultMessages
+ Tab
+ 20
+
+
+ b4a09c0d-7517-461f-a7f1-2e0233577288
+ Content
+ content
+ Tab
+ 10
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/content.config b/examples/starter-example/uSync/v9/ContentTypes/content.config
new file mode 100644
index 00000000..67354abd
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/content.config
@@ -0,0 +1,33 @@
+
+
+
+ Content
+ icon-document color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ contentControls
+ headerControls
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ content
+
+ content
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/contentcontrols.config b/examples/starter-example/uSync/v9/ContentTypes/contentcontrols.config
new file mode 100644
index 00000000..c5eb04ee
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/contentcontrols.config
@@ -0,0 +1,50 @@
+
+
+
+ Content Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ cd0a3534-e0f4-457c-8297-c88fc01db607
+ Content Rows
+ contentRows
+ b5922818-d8d8-43df-88ed-4582a24c0fa6
+ Umbraco.BlockList
+ false
+
+
+ 16
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ f7e5767b-2760-4a51-bce1-ef9bb4f3f649
+ Content
+ content
+ Tab
+ 10
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/error.config b/examples/starter-example/uSync/v9/ContentTypes/error.config
new file mode 100644
index 00000000..a1738fc6
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/error.config
@@ -0,0 +1,33 @@
+
+
+
+ Error
+ icon-application-error color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ contentControls
+ headerControls
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ error
+
+ error
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/footercontrols.config b/examples/starter-example/uSync/v9/ContentTypes/footercontrols.config
new file mode 100644
index 00000000..04696d01
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/footercontrols.config
@@ -0,0 +1,50 @@
+
+
+
+ Footer Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ 38e63c07-6381-45c0-ac6b-29da86775e85
+ Social Icon Links
+ socialIconLinks
+ f8d7b987-745c-471f-8f34-a47f00838f06
+ Umbraco.BlockList
+ false
+
+
+ 5
+ Footer
+ Nothing
+
+
+ false
+
+
+
+
+ 19d6db90-3303-45cf-850c-c7d030452843
+ Footer
+ footer
+ Tab
+ 20
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/headercontrols.config b/examples/starter-example/uSync/v9/ContentTypes/headercontrols.config
new file mode 100644
index 00000000..7e134d82
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/headercontrols.config
@@ -0,0 +1,66 @@
+
+
+
+ Header Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ 27e86550-e272-46b5-978e-2cc2f7e31118
+ Subtitle
+ subtitle
+ 0cc0eba1-9960-42c9-bf9b-60e150b429ae
+ Umbraco.TextBox
+ false
+
+
+ 10
+ Content
+ Nothing
+
+
+ false
+
+
+ 4d694810-d4a8-42aa-b11c-4e265f09be59
+ Title
+ title
+ 0cc0eba1-9960-42c9-bf9b-60e150b429ae
+ Umbraco.TextBox
+ false
+
+
+ 5
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ 05bde0a5-384e-4a60-9350-5f51e063fd69
+ Content
+ content
+ Tab
+ 10
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/hideproperty.config b/examples/starter-example/uSync/v9/ContentTypes/hideproperty.config
new file mode 100644
index 00000000..b836e964
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/hideproperty.config
@@ -0,0 +1,50 @@
+
+
+
+ Hide Property
+ icon-defrag color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Compositions/Content+Blocks/Setting+Models
+
+
+
+
+
+
+
+ 4823f638-6872-4010-b4a2-85134a7011bf
+ Hide
+ hide
+ 92897bc6-a5f3-4ffe-ae27-f2e7e33dda49
+ Umbraco.TrueFalse
+ false
+
+
+ 10
+ Settings
+ Nothing
+
+
+ false
+
+
+
+
+ 9d91cc45-9418-4a55-8c49-5dcac48bfd95
+ Settings
+ settings
+ Tab
+ 100
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/home.config b/examples/starter-example/uSync/v9/ContentTypes/home.config
new file mode 100644
index 00000000..5ccc4639
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/home.config
@@ -0,0 +1,42 @@
+
+
+
+ Home
+ icon-home color-blue
+ folder.png
+
+ True
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ contentControls
+ footerControls
+ headerControls
+ mainImageControls
+ sEOControls
+
+ home
+
+ home
+
+
+
+ content
+ contact
+ articleList
+ search
+ error
+ xMLSitemap
+ authorList
+ categoryList
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/iconlinkrow.config b/examples/starter-example/uSync/v9/ContentTypes/iconlinkrow.config
new file mode 100644
index 00000000..2fc47331
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/iconlinkrow.config
@@ -0,0 +1,66 @@
+
+
+
+ Icon Link Row
+ icon-link color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Content+Models
+
+
+
+
+
+
+
+ 97f0c9df-4f4c-4782-b4a4-2ca5917aaf68
+ Icon
+ icon
+ 7b21df8f-973a-4e2d-8ee1-a77924d9e211
+ Umbraco.MediaPicker3
+ true
+
+
+ 10
+ Content
+ Nothing
+ You must choose an icon
+
+ false
+
+
+ aad73ce1-4ede-49e2-8eef-7ab705f6bdb3
+ Link
+ link
+ 2d350d21-51dd-4c36-8eee-18170985ce91
+ Umbraco.MultiUrlPicker
+ true
+
+
+ 20
+ Content
+ Nothing
+ You must add a link
+
+ false
+
+
+
+
+ ad2888ca-4474-4efa-aea3-56e4c8c580bb
+ Content
+ content
+ Tab
+ 0
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/iconlinkrowsettings.config b/examples/starter-example/uSync/v9/ContentTypes/iconlinkrowsettings.config
new file mode 100644
index 00000000..e4f8d9ec
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/iconlinkrowsettings.config
@@ -0,0 +1,27 @@
+
+
+
+ Icon Link Row Settings
+ icon-settings color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Setting+Models
+
+ hideProperty
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/imagecarouselrow.config b/examples/starter-example/uSync/v9/ContentTypes/imagecarouselrow.config
new file mode 100644
index 00000000..b70ebc75
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/imagecarouselrow.config
@@ -0,0 +1,50 @@
+
+
+
+ Image Carousel Row
+ icon-pictures-alt color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Content+Models
+
+
+
+
+
+
+
+ 3d9ba030-db57-4cb0-9530-c08753a70e4b
+ Images
+ images
+ 0e63d883-b62b-4799-88c3-157f82e83ecc
+ Umbraco.MediaPicker3
+ false
+
+
+ 1
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ e3aeb359-a8bf-48d8-b650-bae5e40840ea
+ Content
+ content
+ Tab
+ 0
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/imagecarouselrowsettings.config b/examples/starter-example/uSync/v9/ContentTypes/imagecarouselrowsettings.config
new file mode 100644
index 00000000..03a12dfc
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/imagecarouselrowsettings.config
@@ -0,0 +1,28 @@
+
+
+
+ Image Carousel Row Settings
+ icon-settings color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Setting+Models
+
+ hideProperty
+ spacingProperties
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/imagerow.config b/examples/starter-example/uSync/v9/ContentTypes/imagerow.config
new file mode 100644
index 00000000..451aa954
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/imagerow.config
@@ -0,0 +1,66 @@
+
+
+
+ Image Row
+ icon-picture color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Content+Models
+
+
+
+
+
+
+
+ ff44ccd9-2516-4b1e-be06-c7238743c59e
+ Caption
+ caption
+ 0cc0eba1-9960-42c9-bf9b-60e150b429ae
+ Umbraco.TextBox
+ false
+
+
+ 20
+ Content
+ Nothing
+
+
+ false
+
+
+ a7f48594-814e-452a-92e4-57d1b8a6c4a8
+ Image
+ image
+ ad9f0cf2-bda2-45d5-9ea1-a63cfc873fd3
+ Umbraco.MediaPicker3
+ false
+
+
+ 10
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ e2af1253-9ef7-4516-93e9-ff7cae743585
+ Content
+ content
+ Tab
+ 0
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/imagerowsettings.config b/examples/starter-example/uSync/v9/ContentTypes/imagerowsettings.config
new file mode 100644
index 00000000..5ee468e1
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/imagerowsettings.config
@@ -0,0 +1,28 @@
+
+
+
+ Image Row Settings
+ icon-settings color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Setting+Models
+
+ hideProperty
+ spacingProperties
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/latestarticlesrow.config b/examples/starter-example/uSync/v9/ContentTypes/latestarticlesrow.config
new file mode 100644
index 00000000..e43ee596
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/latestarticlesrow.config
@@ -0,0 +1,82 @@
+
+
+
+ Latest Articles Row
+ icon-bulleted-list color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Content+Models
+
+
+
+
+
+
+
+ 7ca21705-0c07-4822-8cf2-5126d98b9125
+ Article List
+ articleList
+ fd1e0da5-5606-4862-b679-5d0cf3a52a59
+ Umbraco.ContentPicker
+ true
+
+
+ 5
+ Content
+ Nothing
+ You need to choose an article list page
+
+ false
+
+
+ a1e08734-bb71-4a2e-a8e4-47d9cdc283c7
+ Page Size
+ pageSize
+ 2e6d3631-066e-44b8-aec4-96f09099b2b5
+ Umbraco.Integer
+ true
+
+
+ 10
+ Content
+ Nothing
+ You need to enter the page size
+
+ false
+
+
+ 6962d14c-37cc-43b4-98eb-996282650985
+ Show Pagination
+ showPagination
+ 92897bc6-a5f3-4ffe-ae27-f2e7e33dda49
+ Umbraco.TrueFalse
+ false
+
+
+ 15
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ 2873a2c5-19c2-476e-bd46-e4f29d632ecc
+ Content
+ content
+ Tab
+ 0
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/latestarticlesrowsettings.config b/examples/starter-example/uSync/v9/ContentTypes/latestarticlesrowsettings.config
new file mode 100644
index 00000000..c81a0cf1
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/latestarticlesrowsettings.config
@@ -0,0 +1,28 @@
+
+
+
+ Latest Articles Row Settings
+ icon-settings color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Setting+Models
+
+ hideProperty
+ spacingProperties
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/listpagesettings.config b/examples/starter-example/uSync/v9/ContentTypes/listpagesettings.config
new file mode 100644
index 00000000..2e3380cc
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/listpagesettings.config
@@ -0,0 +1,33 @@
+
+
+
+ List Page Settings
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+
+ 415d52cb-1d79-432e-add3-8160242b48bf
+ Visibility
+ visibility
+ Tab
+ 30
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/mainimagecontrols.config b/examples/starter-example/uSync/v9/ContentTypes/mainimagecontrols.config
new file mode 100644
index 00000000..acdd1565
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/mainimagecontrols.config
@@ -0,0 +1,50 @@
+
+
+
+ Main Image Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ cace72cf-401b-4eac-bd94-c5c3f99004bf
+ Main Image
+ mainImage
+ ad9f0cf2-bda2-45d5-9ea1-a63cfc873fd3
+ Umbraco.MediaPicker3
+ false
+
+
+ 15
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ 3a1981e3-734d-4de0-a12f-37da9b368309
+ Content
+ content
+ Tab
+ 10
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/richtextrow.config b/examples/starter-example/uSync/v9/ContentTypes/richtextrow.config
new file mode 100644
index 00000000..2f6a0a6d
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/richtextrow.config
@@ -0,0 +1,50 @@
+
+
+
+ Rich Text Row
+ icon-notepad-alt color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Content+Models
+
+
+
+
+
+
+
+ be78bf17-4040-4fe2-b8cd-5d894b6d41fc
+ Content
+ content
+ ca90c950-0aff-4e72-b976-a30b1ac57dad
+ Umbraco.TinyMCE
+ false
+
+
+ 10
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ fc9ee4b9-108e-4510-8330-f56837b9ad12
+ Content
+ content
+ Tab
+ 0
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/richtextrowsettings.config b/examples/starter-example/uSync/v9/ContentTypes/richtextrowsettings.config
new file mode 100644
index 00000000..41782b75
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/richtextrowsettings.config
@@ -0,0 +1,28 @@
+
+
+
+ Rich Text Row Settings
+ icon-settings color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Setting+Models
+
+ hideProperty
+ spacingProperties
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/search.config b/examples/starter-example/uSync/v9/ContentTypes/search.config
new file mode 100644
index 00000000..b3394ec8
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/search.config
@@ -0,0 +1,32 @@
+
+
+
+ Search
+ icon-search color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ headerControls
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ search
+
+ search
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/seocontrols.config b/examples/starter-example/uSync/v9/ContentTypes/seocontrols.config
new file mode 100644
index 00000000..164a0608
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/seocontrols.config
@@ -0,0 +1,82 @@
+
+
+
+ SEO Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ 85878342-59e5-4827-8447-edc34a11e87e
+ Meta Description
+ metaDescription
+ c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3
+ Umbraco.TextArea
+ false
+
+
+ 10
+ SEO
+ Nothing
+
+
+ false
+
+
+ 465b40d7-a107-454d-b0de-c74d7fea3bd1
+ Meta Keywords
+ metaKeywords
+ b6b73142-b9c1-4bf8-a16d-e1c23320b549
+ Umbraco.Tags
+ false
+
+
+ 15
+ SEO
+ Nothing
+
+
+ false
+
+
+ c901ac53-4a1d-4a05-8d06-c3188e5f0668
+ Meta Name
+ metaName
+ 0cc0eba1-9960-42c9-bf9b-60e150b429ae
+ Umbraco.TextBox
+ false
+
+
+ 5
+ SEO
+ Nothing
+
+
+ false
+
+
+
+
+ 18ae646a-c4d9-49ac-b5ea-6ffcbb45d94f
+ SEO
+ seO
+ Tab
+ 25
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/spacingproperties.config b/examples/starter-example/uSync/v9/ContentTypes/spacingproperties.config
new file mode 100644
index 00000000..9e143222
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/spacingproperties.config
@@ -0,0 +1,162 @@
+
+
+
+ Spacing Properties
+ icon-defrag color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Compositions/Content+Blocks/Setting+Models
+
+
+
+
+
+
+
+ 0bc039b9-e31a-4bcc-b37e-5fb769bf697e
+ Margin Bottom
+ marginBottom
+ a7590e7a-cad6-42e1-8ae9-106c717206fd
+ Umbraco.DropDown.Flexible
+ false
+
+
+ 30
+ Padding
+ Nothing
+
+
+ false
+
+
+ dea3ad02-585a-4b7c-a3ca-d2b6dc6a3df5
+ Margin Left
+ marginLeft
+ a7590e7a-cad6-42e1-8ae9-106c717206fd
+ Umbraco.DropDown.Flexible
+ false
+
+
+ 35
+ Padding
+ Nothing
+
+
+ false
+
+
+ 98cc6dc6-caf8-4e87-af30-f8bfa3feb34d
+ Margin Right
+ marginRight
+ a7590e7a-cad6-42e1-8ae9-106c717206fd
+ Umbraco.DropDown.Flexible
+ false
+
+
+ 40
+ Padding
+ Nothing
+
+
+ false
+
+
+ 1f5604f9-d578-4982-b7c8-17a0ece4e859
+ Margin Top
+ marginTop
+ a7590e7a-cad6-42e1-8ae9-106c717206fd
+ Umbraco.DropDown.Flexible
+ false
+
+
+ 25
+ Padding
+ Nothing
+
+
+ false
+
+
+ 74f3c3e7-9dff-4720-b7e7-70e3e83f97a8
+ Padding Bottom
+ paddingBottom
+ a7590e7a-cad6-42e1-8ae9-106c717206fd
+ Umbraco.DropDown.Flexible
+ false
+
+
+ 10
+ Padding
+ Nothing
+
+
+ false
+
+
+ 7dfc3037-0b43-4f42-aad5-355d0ee7342f
+ Padding Left
+ paddingLeft
+ a7590e7a-cad6-42e1-8ae9-106c717206fd
+ Umbraco.DropDown.Flexible
+ false
+
+
+ 15
+ Padding
+ Nothing
+
+
+ false
+
+
+ 36211947-57e7-4488-9fe6-1e93ef0679fb
+ Padding Right
+ paddingRight
+ a7590e7a-cad6-42e1-8ae9-106c717206fd
+ Umbraco.DropDown.Flexible
+ false
+
+
+ 20
+ Padding
+ Nothing
+
+
+ false
+
+
+ df09eca0-41f1-4a9c-b5bf-8e81ea99ed45
+ Padding Top
+ paddingTop
+ a7590e7a-cad6-42e1-8ae9-106c717206fd
+ Umbraco.DropDown.Flexible
+ false
+
+
+ 5
+ Padding
+ Nothing
+
+
+ false
+
+
+
+
+ c809c885-c474-4a40-a273-57800fb7a374
+ Padding
+ padding
+ Tab
+ 120
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/videorow.config b/examples/starter-example/uSync/v9/ContentTypes/videorow.config
new file mode 100644
index 00000000..9fd0b56c
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/videorow.config
@@ -0,0 +1,66 @@
+
+
+
+ Video Row
+ icon-video color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Content+Models
+
+
+
+
+
+
+
+ ebaacaf6-d137-4575-9c8a-c7454922477b
+ Caption
+ caption
+ 0cc0eba1-9960-42c9-bf9b-60e150b429ae
+ Umbraco.TextBox
+ false
+
+
+ 20
+ Content
+ Nothing
+
+
+ false
+
+
+ db26c4d6-d620-42db-811f-3ec6fd2a9cd0
+ Video Url
+ videoUrl
+ 0cc0eba1-9960-42c9-bf9b-60e150b429ae
+ Umbraco.TextBox
+ false
+
+
+ 10
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ 6afb8a94-ba48-4c15-9d76-08ffe48e0950
+ Content
+ content
+ Tab
+ 0
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/videorowsettings.config b/examples/starter-example/uSync/v9/ContentTypes/videorowsettings.config
new file mode 100644
index 00000000..c4ada8e7
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/videorowsettings.config
@@ -0,0 +1,28 @@
+
+
+
+ Video Row Settings
+ icon-settings color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Setting+Models
+
+ hideProperty
+ spacingProperties
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/visibilitycontrols.config b/examples/starter-example/uSync/v9/ContentTypes/visibilitycontrols.config
new file mode 100644
index 00000000..08f827a5
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/visibilitycontrols.config
@@ -0,0 +1,82 @@
+
+
+
+ Visibility Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ 35ae0d0c-361d-4a53-835c-72b7e59a166e
+ Hide From Top Navigation
+ hideFromTopNavigation
+ 92897bc6-a5f3-4ffe-ae27-f2e7e33dda49
+ Umbraco.TrueFalse
+ false
+
+
+ 5
+ Visibility
+ Nothing
+
+
+ false
+
+
+ 09404570-096b-428b-90cb-6ac55bc47fd2
+ Hide From XML Sitemap
+ hideFromXMLSitemap
+ 92897bc6-a5f3-4ffe-ae27-f2e7e33dda49
+ Umbraco.TrueFalse
+ false
+
+
+ 15
+ Visibility
+ Nothing
+
+
+ false
+
+
+ 08b7cc39-05d0-4b97-896d-68c74c912dea
+ Hide From Search
+ umbracoNaviHide
+ 92897bc6-a5f3-4ffe-ae27-f2e7e33dda49
+ Umbraco.TrueFalse
+ false
+
+
+ 10
+ Visibility
+ Nothing
+
+
+ false
+
+
+
+
+ 047f36ae-a8ca-43c0-a386-372bfa7144bd
+ Visibility
+ visibility
+ Tab
+ 30
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/ContentTypes/xmlsitemap.config b/examples/starter-example/uSync/v9/ContentTypes/xmlsitemap.config
new file mode 100644
index 00000000..6ed6c32e
--- /dev/null
+++ b/examples/starter-example/uSync/v9/ContentTypes/xmlsitemap.config
@@ -0,0 +1,29 @@
+
+
+
+ XML Sitemap
+ icon-sitemap color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ visibilityControls
+
+ xMLSitemap
+
+ xMLSitemap
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/ApprovedColor.config b/examples/starter-example/uSync/v9/DataTypes/ApprovedColor.config
new file mode 100644
index 00000000..821eec11
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/ApprovedColor.config
@@ -0,0 +1,12 @@
+
+
+
+ Approved Color
+ Umbraco.ColorPicker
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/BlockListIconList.config b/examples/starter-example/uSync/v9/DataTypes/BlockListIconList.config
new file mode 100644
index 00000000..6c0b591a
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/BlockListIconList.config
@@ -0,0 +1,32 @@
+
+
+
+ [BlockList] Icon List
+ Umbraco.BlockList
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/BlockListMainContent.config b/examples/starter-example/uSync/v9/DataTypes/BlockListMainContent.config
new file mode 100644
index 00000000..cf715d53
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/BlockListMainContent.config
@@ -0,0 +1,92 @@
+
+
+
+ [BlockList] Main Content
+ Umbraco.BlockList
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/CheckboxList.config b/examples/starter-example/uSync/v9/DataTypes/CheckboxList.config
new file mode 100644
index 00000000..354bf208
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/CheckboxList.config
@@ -0,0 +1,11 @@
+
+
+
+ Checkbox list
+ Umbraco.CheckBoxList
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/ContentPicker.config b/examples/starter-example/uSync/v9/DataTypes/ContentPicker.config
new file mode 100644
index 00000000..50c6f646
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/ContentPicker.config
@@ -0,0 +1,13 @@
+
+
+
+ Content Picker
+ Umbraco.ContentPicker
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/DatePicker.config b/examples/starter-example/uSync/v9/DataTypes/DatePicker.config
new file mode 100644
index 00000000..3f9c5c20
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/DatePicker.config
@@ -0,0 +1,12 @@
+
+
+
+ Date Picker
+ Umbraco.DateTime
+ Date
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/DatePickerWithTime.config b/examples/starter-example/uSync/v9/DataTypes/DatePickerWithTime.config
new file mode 100644
index 00000000..2c289d17
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/DatePickerWithTime.config
@@ -0,0 +1,12 @@
+
+
+
+ Date Picker with time
+ Umbraco.DateTime
+ Date
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/Dropdown.config b/examples/starter-example/uSync/v9/DataTypes/Dropdown.config
new file mode 100644
index 00000000..673eb7a1
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/Dropdown.config
@@ -0,0 +1,12 @@
+
+
+
+ Dropdown
+ Umbraco.DropDown.Flexible
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/DropdownMultiple.config b/examples/starter-example/uSync/v9/DataTypes/DropdownMultiple.config
new file mode 100644
index 00000000..e8a79984
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/DropdownMultiple.config
@@ -0,0 +1,12 @@
+
+
+
+ Dropdown multiple
+ Umbraco.DropDown.Flexible
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/DropdownSpacing.config b/examples/starter-example/uSync/v9/DataTypes/DropdownSpacing.config
new file mode 100644
index 00000000..21a83e0e
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/DropdownSpacing.config
@@ -0,0 +1,41 @@
+
+
+
+ [Dropdown] Spacing
+ Umbraco.DropDown.Flexible
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/ImageCropper.config b/examples/starter-example/uSync/v9/DataTypes/ImageCropper.config
new file mode 100644
index 00000000..ccd91622
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/ImageCropper.config
@@ -0,0 +1,11 @@
+
+
+
+ Image Cropper
+ Umbraco.ImageCropper
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/ImageMediaPicker.config b/examples/starter-example/uSync/v9/DataTypes/ImageMediaPicker.config
new file mode 100644
index 00000000..e0b3db71
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/ImageMediaPicker.config
@@ -0,0 +1,20 @@
+
+
+
+ Image Media Picker
+ Umbraco.MediaPicker3
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/LabelBigint.config b/examples/starter-example/uSync/v9/DataTypes/LabelBigint.config
new file mode 100644
index 00000000..909f50dc
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/LabelBigint.config
@@ -0,0 +1,11 @@
+
+
+
+ Label (bigint)
+ Umbraco.Label
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/LabelDatetime.config b/examples/starter-example/uSync/v9/DataTypes/LabelDatetime.config
new file mode 100644
index 00000000..7163ac97
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/LabelDatetime.config
@@ -0,0 +1,11 @@
+
+
+
+ Label (datetime)
+ Umbraco.Label
+ Date
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/LabelDecimal.config b/examples/starter-example/uSync/v9/DataTypes/LabelDecimal.config
new file mode 100644
index 00000000..045b4f55
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/LabelDecimal.config
@@ -0,0 +1,11 @@
+
+
+
+ Label (decimal)
+ Umbraco.Label
+ Decimal
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/LabelInteger.config b/examples/starter-example/uSync/v9/DataTypes/LabelInteger.config
new file mode 100644
index 00000000..19ea1dca
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/LabelInteger.config
@@ -0,0 +1,11 @@
+
+
+
+ Label (integer)
+ Umbraco.Label
+ Integer
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/LabelString.config b/examples/starter-example/uSync/v9/DataTypes/LabelString.config
new file mode 100644
index 00000000..af5067c9
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/LabelString.config
@@ -0,0 +1,11 @@
+
+
+
+ Label (string)
+ Umbraco.Label
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/LabelTime.config b/examples/starter-example/uSync/v9/DataTypes/LabelTime.config
new file mode 100644
index 00000000..df2170a3
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/LabelTime.config
@@ -0,0 +1,11 @@
+
+
+
+ Label (time)
+ Umbraco.Label
+ Date
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/ListViewContent.config b/examples/starter-example/uSync/v9/DataTypes/ListViewContent.config
new file mode 100644
index 00000000..821f787f
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/ListViewContent.config
@@ -0,0 +1,54 @@
+
+
+
+ List View - Content
+ Umbraco.ListView
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/ListViewMedia.config b/examples/starter-example/uSync/v9/DataTypes/ListViewMedia.config
new file mode 100644
index 00000000..4fcba133
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/ListViewMedia.config
@@ -0,0 +1,54 @@
+
+
+
+ List View - Media
+ Umbraco.ListView
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/ListViewMembers.config b/examples/starter-example/uSync/v9/DataTypes/ListViewMembers.config
new file mode 100644
index 00000000..f23eb033
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/ListViewMembers.config
@@ -0,0 +1,60 @@
+
+
+
+ List View - Members
+ Umbraco.ListView
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/MNTPAuthors.config b/examples/starter-example/uSync/v9/DataTypes/MNTPAuthors.config
new file mode 100644
index 00000000..44ec0d49
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/MNTPAuthors.config
@@ -0,0 +1,32 @@
+
+
+
+ [MNTP] Authors
+ Umbraco.MultiNodeTreePicker
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/MNTPCategories.config b/examples/starter-example/uSync/v9/DataTypes/MNTPCategories.config
new file mode 100644
index 00000000..e6195ccc
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/MNTPCategories.config
@@ -0,0 +1,32 @@
+
+
+
+ [MNTP] Categories
+ Umbraco.MultiNodeTreePicker
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/MediaPicker.config b/examples/starter-example/uSync/v9/DataTypes/MediaPicker.config
new file mode 100644
index 00000000..721575ac
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/MediaPicker.config
@@ -0,0 +1,20 @@
+
+
+
+ Media Picker
+ Umbraco.MediaPicker3
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/MediaPickerLegacy.config b/examples/starter-example/uSync/v9/DataTypes/MediaPickerLegacy.config
new file mode 100644
index 00000000..d97a3035
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/MediaPickerLegacy.config
@@ -0,0 +1,15 @@
+
+
+
+ Media Picker (legacy)
+ Umbraco.MediaPicker
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/MediaPickerSVGImage.config b/examples/starter-example/uSync/v9/DataTypes/MediaPickerSVGImage.config
new file mode 100644
index 00000000..eb6adc0f
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/MediaPickerSVGImage.config
@@ -0,0 +1,20 @@
+
+
+
+ [MediaPicker] SVG Image
+ Umbraco.MediaPicker3
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/MemberPicker.config b/examples/starter-example/uSync/v9/DataTypes/MemberPicker.config
new file mode 100644
index 00000000..260c1854
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/MemberPicker.config
@@ -0,0 +1,9 @@
+
+
+
+ Member Picker
+ Umbraco.MemberPicker
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/MultiURLPicker.config b/examples/starter-example/uSync/v9/DataTypes/MultiURLPicker.config
new file mode 100644
index 00000000..e00831f7
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/MultiURLPicker.config
@@ -0,0 +1,15 @@
+
+
+
+ Multi URL Picker
+ Umbraco.MultiUrlPicker
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/MultiUrlPickerSingleUrlPicker.config b/examples/starter-example/uSync/v9/DataTypes/MultiUrlPickerSingleUrlPicker.config
new file mode 100644
index 00000000..839e4d96
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/MultiUrlPickerSingleUrlPicker.config
@@ -0,0 +1,15 @@
+
+
+
+ [MultiUrlPicker] Single Url Picker
+ Umbraco.MultiUrlPicker
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/MultipleImageMediaPicker.config b/examples/starter-example/uSync/v9/DataTypes/MultipleImageMediaPicker.config
new file mode 100644
index 00000000..407c8afd
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/MultipleImageMediaPicker.config
@@ -0,0 +1,20 @@
+
+
+
+ Multiple Image Media Picker
+ Umbraco.MediaPicker3
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/MultipleMediaPicker.config b/examples/starter-example/uSync/v9/DataTypes/MultipleMediaPicker.config
new file mode 100644
index 00000000..2a066f05
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/MultipleMediaPicker.config
@@ -0,0 +1,20 @@
+
+
+
+ Multiple Media Picker
+ Umbraco.MediaPicker3
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/MultipleMediaPickerLegacy.config b/examples/starter-example/uSync/v9/DataTypes/MultipleMediaPickerLegacy.config
new file mode 100644
index 00000000..5b3573e8
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/MultipleMediaPickerLegacy.config
@@ -0,0 +1,15 @@
+
+
+
+ Multiple Media Picker (legacy)
+ Umbraco.MediaPicker
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/Numeric.config b/examples/starter-example/uSync/v9/DataTypes/Numeric.config
new file mode 100644
index 00000000..cd6d29bf
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/Numeric.config
@@ -0,0 +1,9 @@
+
+
+
+ Numeric
+ Umbraco.Integer
+ Integer
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/Radiobox.config b/examples/starter-example/uSync/v9/DataTypes/Radiobox.config
new file mode 100644
index 00000000..a166cb7c
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/Radiobox.config
@@ -0,0 +1,11 @@
+
+
+
+ Radiobox
+ Umbraco.RadioButtonList
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/RichtextEditor.config b/examples/starter-example/uSync/v9/DataTypes/RichtextEditor.config
new file mode 100644
index 00000000..e4f8dd07
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/RichtextEditor.config
@@ -0,0 +1,40 @@
+
+
+
+ Richtext editor
+ Umbraco.TinyMCE
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/SingleUrlPicker.config b/examples/starter-example/uSync/v9/DataTypes/SingleUrlPicker.config
new file mode 100644
index 00000000..4dfc82d1
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/SingleUrlPicker.config
@@ -0,0 +1,15 @@
+
+
+
+ Single Url Picker
+ Umbraco.MultiUrlPicker
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/SliderSpacing.config b/examples/starter-example/uSync/v9/DataTypes/SliderSpacing.config
new file mode 100644
index 00000000..2d9f0c69
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/SliderSpacing.config
@@ -0,0 +1,16 @@
+
+
+
+ [Slider] Spacing
+ Umbraco.Slider
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/Tags.config b/examples/starter-example/uSync/v9/DataTypes/Tags.config
new file mode 100644
index 00000000..ee5eb68a
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/Tags.config
@@ -0,0 +1,13 @@
+
+
+
+ Tags
+ Umbraco.Tags
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/Textarea.config b/examples/starter-example/uSync/v9/DataTypes/Textarea.config
new file mode 100644
index 00000000..a495b9e3
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/Textarea.config
@@ -0,0 +1,12 @@
+
+
+
+ Textarea
+ Umbraco.TextArea
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/Textstring.config b/examples/starter-example/uSync/v9/DataTypes/Textstring.config
new file mode 100644
index 00000000..dc90bf0a
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/Textstring.config
@@ -0,0 +1,11 @@
+
+
+
+ Textstring
+ Umbraco.TextBox
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/Truefalse.config b/examples/starter-example/uSync/v9/DataTypes/Truefalse.config
new file mode 100644
index 00000000..a08bf8f5
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/Truefalse.config
@@ -0,0 +1,14 @@
+
+
+
+ True/false
+ Umbraco.TrueFalse
+ Integer
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/UploadArticle.config b/examples/starter-example/uSync/v9/DataTypes/UploadArticle.config
new file mode 100644
index 00000000..1d76dc88
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/UploadArticle.config
@@ -0,0 +1,24 @@
+
+
+
+ Upload Article
+ Umbraco.UploadField
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/UploadAudio.config b/examples/starter-example/uSync/v9/DataTypes/UploadAudio.config
new file mode 100644
index 00000000..66b66cad
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/UploadAudio.config
@@ -0,0 +1,28 @@
+
+
+
+ Upload Audio
+ Umbraco.UploadField
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/UploadFile.config b/examples/starter-example/uSync/v9/DataTypes/UploadFile.config
new file mode 100644
index 00000000..bdd8d013
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/UploadFile.config
@@ -0,0 +1,11 @@
+
+
+
+ Upload File
+ Umbraco.UploadField
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/UploadVectorGraphics.config b/examples/starter-example/uSync/v9/DataTypes/UploadVectorGraphics.config
new file mode 100644
index 00000000..6088f331
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/UploadVectorGraphics.config
@@ -0,0 +1,16 @@
+
+
+
+ Upload Vector Graphics
+ Umbraco.UploadField
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/DataTypes/UploadVideo.config b/examples/starter-example/uSync/v9/DataTypes/UploadVideo.config
new file mode 100644
index 00000000..fb8f0180
--- /dev/null
+++ b/examples/starter-example/uSync/v9/DataTypes/UploadVideo.config
@@ -0,0 +1,24 @@
+
+
+
+ Upload Video
+ Umbraco.UploadField
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/article.by.config b/examples/starter-example/uSync/v9/Dictionary/article.by.config
new file mode 100644
index 00000000..6a2c773a
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/article.by.config
@@ -0,0 +1,7 @@
+
+
+
+
+ by
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/article.on.config b/examples/starter-example/uSync/v9/Dictionary/article.on.config
new file mode 100644
index 00000000..1776ccb6
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/article.on.config
@@ -0,0 +1,7 @@
+
+
+
+
+ on
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/article.posted.config b/examples/starter-example/uSync/v9/Dictionary/article.posted.config
new file mode 100644
index 00000000..6065e983
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/article.posted.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Posted
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/articlelist.viewall.config b/examples/starter-example/uSync/v9/Dictionary/articlelist.viewall.config
new file mode 100644
index 00000000..2ff76243
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/articlelist.viewall.config
@@ -0,0 +1,7 @@
+
+
+
+
+ View all posts
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/author.readmore.config b/examples/starter-example/uSync/v9/Dictionary/author.readmore.config
new file mode 100644
index 00000000..10f631e8
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/author.readmore.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Read More
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/contactform.email.config b/examples/starter-example/uSync/v9/Dictionary/contactform.email.config
new file mode 100644
index 00000000..d7da474f
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/contactform.email.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Email Address
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/contactform.message.config b/examples/starter-example/uSync/v9/Dictionary/contactform.message.config
new file mode 100644
index 00000000..5c4bb2af
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/contactform.message.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Message
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/contactform.name.config b/examples/starter-example/uSync/v9/Dictionary/contactform.name.config
new file mode 100644
index 00000000..1d8be26d
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/contactform.name.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Name
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/contactform.send.config b/examples/starter-example/uSync/v9/Dictionary/contactform.send.config
new file mode 100644
index 00000000..06a2050e
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/contactform.send.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Send
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/footer.copyrightstatement.config b/examples/starter-example/uSync/v9/Dictionary/footer.copyrightstatement.config
new file mode 100644
index 00000000..0704ac5f
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/footer.copyrightstatement.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Clean Starter Kit
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/footer.copyrighttitle.config b/examples/starter-example/uSync/v9/Dictionary/footer.copyrighttitle.config
new file mode 100644
index 00000000..f616535e
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/footer.copyrighttitle.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Copyright
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/navigation.menutitle.config b/examples/starter-example/uSync/v9/Dictionary/navigation.menutitle.config
new file mode 100644
index 00000000..64b13407
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/navigation.menutitle.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Menu
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/navigation.sitename.config b/examples/starter-example/uSync/v9/Dictionary/navigation.sitename.config
new file mode 100644
index 00000000..99e944e4
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/navigation.sitename.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Clean Starter Kit
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/paging.next.config b/examples/starter-example/uSync/v9/Dictionary/paging.next.config
new file mode 100644
index 00000000..f3ba7634
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/paging.next.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Next
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/paging.of.config b/examples/starter-example/uSync/v9/Dictionary/paging.of.config
new file mode 100644
index 00000000..80d9504c
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/paging.of.config
@@ -0,0 +1,7 @@
+
+
+
+
+ of
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/paging.page.config b/examples/starter-example/uSync/v9/Dictionary/paging.page.config
new file mode 100644
index 00000000..82e0a1f0
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/paging.page.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Page
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/paging.previous.config b/examples/starter-example/uSync/v9/Dictionary/paging.previous.config
new file mode 100644
index 00000000..fc5ec21c
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/paging.previous.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Prev
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/search.placeholder.config b/examples/starter-example/uSync/v9/Dictionary/search.placeholder.config
new file mode 100644
index 00000000..cca4809f
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/search.placeholder.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Search...
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/search.results.config b/examples/starter-example/uSync/v9/Dictionary/search.results.config
new file mode 100644
index 00000000..d305fcbc
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/search.results.config
@@ -0,0 +1,7 @@
+
+
+
+
+ <p>We found <strong>{0}</strong> results when searching for <strong>{1}</strong></p>
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Dictionary/search.searchbutton.config b/examples/starter-example/uSync/v9/Dictionary/search.searchbutton.config
new file mode 100644
index 00000000..9425eab4
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Dictionary/search.searchbutton.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Search
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Languages/en-us.config b/examples/starter-example/uSync/v9/Languages/en-us.config
new file mode 100644
index 00000000..6f1a74db
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Languages/en-us.config
@@ -0,0 +1,7 @@
+
+
+ English (United States)
+ en-US
+ false
+ true
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/24-days-people-at-codegarden.config b/examples/starter-example/uSync/v9/Media/24-days-people-at-codegarden.config
new file mode 100644
index 00000000..63209ee1
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/24-days-people-at-codegarden.config
@@ -0,0 +1,27 @@
+
+
+
+ Sample Images
+ /SampleImages/daysPeopleAtCodegarden
+ false
+ Image
+ 2021-10-09T23:24:25
+
+ 13
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/authors.config b/examples/starter-example/uSync/v9/Media/authors.config
new file mode 100644
index 00000000..952aefb4
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/authors.config
@@ -0,0 +1,22 @@
+
+
+
+ Sample Images
+ /SampleImages/Authors
+ false
+ Image
+ 2023-08-15T22:58:38
+
+ 19
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/authors_xvnd3kvj.config b/examples/starter-example/uSync/v9/Media/authors_xvnd3kvj.config
new file mode 100644
index 00000000..ebb2fdd5
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/authors_xvnd3kvj.config
@@ -0,0 +1,13 @@
+
+
+
+
+ /Authors
+ false
+ Folder
+ 2023-08-15T23:20:29
+
+ 2
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/bluetooth-white-keyboard.config b/examples/starter-example/uSync/v9/Media/bluetooth-white-keyboard.config
new file mode 100644
index 00000000..c011b87a
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/bluetooth-white-keyboard.config
@@ -0,0 +1,22 @@
+
+
+
+ Sample Images
+ /SampleImages/BluetoothWhiteKeyboard
+ false
+ Image
+ 2021-10-09T23:24:20
+
+ 1
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/candid-contributions.config b/examples/starter-example/uSync/v9/Media/candid-contributions.config
new file mode 100644
index 00000000..36ee1c9f
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/candid-contributions.config
@@ -0,0 +1,23 @@
+
+
+
+ Sample Images
+ /SampleImages/CandidContributions
+ false
+ Image
+ 2023-08-04T06:31:07
+
+ 16
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/cc-paypal.config b/examples/starter-example/uSync/v9/Media/cc-paypal.config
new file mode 100644
index 00000000..33355749
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/cc-paypal.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/CcPaypal
+ false
+ umbracoMediaVectorGraphics
+ 2023-07-29T11:01:40
+
+ 6
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/chairs-lamps.config b/examples/starter-example/uSync/v9/Media/chairs-lamps.config
new file mode 100644
index 00000000..fd27baaa
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/chairs-lamps.config
@@ -0,0 +1,22 @@
+
+
+
+ Sample Images
+ /SampleImages/ChairsLamps
+ false
+ Image
+ 2021-10-09T23:24:19
+
+ 0
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/codegarden-keynote.config b/examples/starter-example/uSync/v9/Media/codegarden-keynote.config
new file mode 100644
index 00000000..a6aa9553
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/codegarden-keynote.config
@@ -0,0 +1,27 @@
+
+
+
+ Sample Images
+ /SampleImages/CodegardenKeynote
+ false
+ Image
+ 2021-10-09T23:24:23
+
+ 8
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/community-front-row.config b/examples/starter-example/uSync/v9/Media/community-front-row.config
new file mode 100644
index 00000000..ae975e16
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/community-front-row.config
@@ -0,0 +1,22 @@
+
+
+
+ Sample Images
+ /SampleImages/CommunityFrontRow
+ false
+ Image
+ 2021-10-09T23:24:21
+
+ 4
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/desktop-notebook-glasses.config b/examples/starter-example/uSync/v9/Media/desktop-notebook-glasses.config
new file mode 100644
index 00000000..9aa4e3df
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/desktop-notebook-glasses.config
@@ -0,0 +1,27 @@
+
+
+
+ Sample Images
+ /SampleImages/DesktopNotebookGlasses
+ false
+ Image
+ 2021-10-09T23:24:25
+
+ 14
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/diary.config b/examples/starter-example/uSync/v9/Media/diary.config
new file mode 100644
index 00000000..97f51c61
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/diary.config
@@ -0,0 +1,22 @@
+
+
+
+ Sample Images
+ /SampleImages/Diary
+ false
+ Image
+ 2023-08-15T22:58:39
+
+ 20
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/discord.config b/examples/starter-example/uSync/v9/Media/discord.config
new file mode 100644
index 00000000..6263d9de
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/discord.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/Discord
+ false
+ umbracoMediaVectorGraphics
+ 2023-07-29T11:01:31
+
+ 0
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/first-timers-at-codegarden.config b/examples/starter-example/uSync/v9/Media/first-timers-at-codegarden.config
new file mode 100644
index 00000000..a82ea6dc
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/first-timers-at-codegarden.config
@@ -0,0 +1,27 @@
+
+
+
+ Sample Images
+ /SampleImages/FirstTimersAtCodegarden
+ false
+ Image
+ 2021-10-09T23:24:24
+
+ 12
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/friendly-chair.config b/examples/starter-example/uSync/v9/Media/friendly-chair.config
new file mode 100644
index 00000000..0ace1746
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/friendly-chair.config
@@ -0,0 +1,27 @@
+
+
+
+ Sample Images
+ /SampleImages/FriendlyChair
+ false
+ Image
+ 2021-10-09T23:24:23
+
+ 9
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/front-row-audience-smiles.config b/examples/starter-example/uSync/v9/Media/front-row-audience-smiles.config
new file mode 100644
index 00000000..0ce467ce
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/front-row-audience-smiles.config
@@ -0,0 +1,27 @@
+
+
+
+ Sample Images
+ /SampleImages/FrontRowAudienceSmiles
+ false
+ Image
+ 2021-10-09T23:24:24
+
+ 11
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/github-alt.config b/examples/starter-example/uSync/v9/Media/github-alt.config
new file mode 100644
index 00000000..469509df
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/github-alt.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/GithubAlt
+ false
+ umbracoMediaVectorGraphics
+ 2023-07-29T11:00:56
+
+ 1
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/github.config b/examples/starter-example/uSync/v9/Media/github.config
new file mode 100644
index 00000000..67f2afc8
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/github.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/Github
+ false
+ umbracoMediaVectorGraphics
+ 2023-07-29T11:00:55
+
+ 2
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/mastodon.config b/examples/starter-example/uSync/v9/Media/mastodon.config
new file mode 100644
index 00000000..a2fd184f
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/mastodon.config
@@ -0,0 +1,22 @@
+
+
+
+ Sample Images
+ /SampleImages/Mastodon
+ false
+ Image
+ 2023-12-14T14:48:08
+
+ 21
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/mastodon_jcaplvty.config b/examples/starter-example/uSync/v9/Media/mastodon_jcaplvty.config
new file mode 100644
index 00000000..1cbba4aa
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/mastodon_jcaplvty.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/Mastodon
+ false
+ umbracoMediaVectorGraphics
+ 2023-12-14T15:08:35
+
+ 10
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/meetup-organizers-at-codegarden.config b/examples/starter-example/uSync/v9/Media/meetup-organizers-at-codegarden.config
new file mode 100644
index 00000000..936a2f58
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/meetup-organizers-at-codegarden.config
@@ -0,0 +1,22 @@
+
+
+
+ Sample Images
+ /SampleImages/MeetupOrganizersAtCodegarden
+ false
+ Image
+ 2021-10-09T23:24:22
+
+ 6
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/package-manifest.config b/examples/starter-example/uSync/v9/Media/package-manifest.config
new file mode 100644
index 00000000..1bee1b38
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/package-manifest.config
@@ -0,0 +1,23 @@
+
+
+
+ Sample Images
+ /SampleImages/PackageManifest
+ false
+ Image
+ 2023-08-04T06:32:59
+
+ 17
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/paypal.config b/examples/starter-example/uSync/v9/Media/paypal.config
new file mode 100644
index 00000000..54abeffa
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/paypal.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/Paypal
+ false
+ umbracoMediaVectorGraphics
+ 2023-07-29T11:00:18
+
+ 7
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/phone-pen-binder.config b/examples/starter-example/uSync/v9/Media/phone-pen-binder.config
new file mode 100644
index 00000000..e3f5af35
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/phone-pen-binder.config
@@ -0,0 +1,22 @@
+
+
+
+ Sample Images
+ /SampleImages/PhonePenBinder
+ false
+ Image
+ 2021-10-09T23:24:20
+
+ 2
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/podcast-headphones-coffee.config b/examples/starter-example/uSync/v9/Media/podcast-headphones-coffee.config
new file mode 100644
index 00000000..6276a445
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/podcast-headphones-coffee.config
@@ -0,0 +1,27 @@
+
+
+
+ Sample Images
+ /SampleImages/PodcastHeadphonesCoffee
+ false
+ Image
+ 2023-08-04T06:18:30
+
+ 15
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/profile-pic-2023.config b/examples/starter-example/uSync/v9/Media/profile-pic-2023.config
new file mode 100644
index 00000000..cf206f9a
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/profile-pic-2023.config
@@ -0,0 +1,26 @@
+
+
+
+ Authors
+ /Authors/ProfilePic2023
+ false
+ Image
+ 2023-08-15T23:20:39
+
+ 0
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/sample-images.config b/examples/starter-example/uSync/v9/Media/sample-images.config
new file mode 100644
index 00000000..910cbfa1
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/sample-images.config
@@ -0,0 +1,13 @@
+
+
+
+
+ /SampleImages
+ false
+ Folder
+ 2021-10-09T23:24:19
+
+ 0
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/say-cheese.config b/examples/starter-example/uSync/v9/Media/say-cheese.config
new file mode 100644
index 00000000..dda6cc8c
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/say-cheese.config
@@ -0,0 +1,27 @@
+
+
+
+ Sample Images
+ /SampleImages/SayCheese
+ false
+ Image
+ 2021-10-09T23:24:24
+
+ 10
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/share-nodes.config b/examples/starter-example/uSync/v9/Media/share-nodes.config
new file mode 100644
index 00000000..78f8c0c3
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/share-nodes.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/ShareNodes
+ false
+ umbracoMediaVectorGraphics
+ 2023-07-29T11:11:04
+
+ 8
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/skrift-at-codegarden.config b/examples/starter-example/uSync/v9/Media/skrift-at-codegarden.config
new file mode 100644
index 00000000..eed09abd
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/skrift-at-codegarden.config
@@ -0,0 +1,22 @@
+
+
+
+ Sample Images
+ /SampleImages/SkriftAtCodegarden
+ false
+ Image
+ 2021-10-09T23:24:21
+
+ 5
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/social-icons.config b/examples/starter-example/uSync/v9/Media/social-icons.config
new file mode 100644
index 00000000..993fdfe1
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/social-icons.config
@@ -0,0 +1,13 @@
+
+
+
+
+ /SocialIcons
+ false
+ Folder
+ 2023-07-29T11:02:30
+
+ 1
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/square-github.config b/examples/starter-example/uSync/v9/Media/square-github.config
new file mode 100644
index 00000000..d3987a05
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/square-github.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/SquareGithub
+ false
+ umbracoMediaVectorGraphics
+ 2023-07-29T10:59:51
+
+ 3
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/square-twitter.config b/examples/starter-example/uSync/v9/Media/square-twitter.config
new file mode 100644
index 00000000..370354a6
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/square-twitter.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/SquareTwitter
+ false
+ umbracoMediaVectorGraphics
+ 2023-07-29T10:59:30
+
+ 4
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/triangle-table-chairs.config b/examples/starter-example/uSync/v9/Media/triangle-table-chairs.config
new file mode 100644
index 00000000..e498e975
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/triangle-table-chairs.config
@@ -0,0 +1,22 @@
+
+
+
+ Sample Images
+ /SampleImages/TriangleTableChairs
+ false
+ Image
+ 2021-10-09T23:24:21
+
+ 3
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/tutorials.config b/examples/starter-example/uSync/v9/Media/tutorials.config
new file mode 100644
index 00000000..aa0b698e
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/tutorials.config
@@ -0,0 +1,22 @@
+
+
+
+ Sample Images
+ /SampleImages/Tutorials
+ false
+ Image
+ 2023-08-04T06:50:20
+
+ 18
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/twitter.config b/examples/starter-example/uSync/v9/Media/twitter.config
new file mode 100644
index 00000000..b7d6713c
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/twitter.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/Twitter
+ false
+ umbracoMediaVectorGraphics
+ 2023-07-29T10:59:17
+
+ 5
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/umbraco.config b/examples/starter-example/uSync/v9/Media/umbraco.config
new file mode 100644
index 00000000..d6f96a3c
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/umbraco.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/Umbraco
+ false
+ umbracoMediaVectorGraphics
+ 2023-07-29T10:59:19
+
+ 9
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/Media/umbracoffee-codegarden.config b/examples/starter-example/uSync/v9/Media/umbracoffee-codegarden.config
new file mode 100644
index 00000000..b02e563e
--- /dev/null
+++ b/examples/starter-example/uSync/v9/Media/umbracoffee-codegarden.config
@@ -0,0 +1,22 @@
+
+
+
+ Sample Images
+ /SampleImages/UmbracoffeeCodegarden
+ false
+ Image
+ 2021-10-09T23:24:22
+
+ 7
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/MediaTypes/file.config b/examples/starter-example/uSync/v9/MediaTypes/file.config
new file mode 100644
index 00000000..425dce36
--- /dev/null
+++ b/examples/starter-example/uSync/v9/MediaTypes/file.config
@@ -0,0 +1,71 @@
+
+
+
+ File
+ icon-document
+ icon-document
+
+ True
+ False
+ Nothing
+ false
+
+
+
+
+ 0000001a-0000-0000-0000-000000000000
+ Size
+ umbracoBytes
+ 930861bf-e262-4ead-a704-f99453565708
+ Umbraco.Label
+ false
+
+
+ 2
+ File
+
+
+ false
+
+
+ 00000019-0000-0000-0000-000000000000
+ Type
+ umbracoExtension
+ f0bc4bfb-b499-40d6-ba86-058885a5178c
+ Umbraco.Label
+ false
+
+
+ 1
+ File
+
+
+ false
+
+
+ 00000018-0000-0000-0000-000000000000
+ File
+ umbracoFile
+ 84c6b441-31df-4ffe-b67e-67d5bc3ae65a
+ Umbraco.UploadField
+ true
+
+
+ 0
+ File
+
+
+ false
+
+
+
+
+
+ 50899f9c-023a-4466-b623-aba9049885fe
+ File
+ file
+ Group
+ 1
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/MediaTypes/folder.config b/examples/starter-example/uSync/v9/MediaTypes/folder.config
new file mode 100644
index 00000000..85653210
--- /dev/null
+++ b/examples/starter-example/uSync/v9/MediaTypes/folder.config
@@ -0,0 +1,25 @@
+
+
+
+ Folder
+ icon-folder
+ icon-folder
+
+ True
+ False
+ Nothing
+ false
+
+
+
+
+ Folder
+ Image
+ File
+ umbracoMediaVideo
+ umbracoMediaAudio
+ umbracoMediaArticle
+ umbracoMediaVectorGraphics
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/MediaTypes/image.config b/examples/starter-example/uSync/v9/MediaTypes/image.config
new file mode 100644
index 00000000..d59e9125
--- /dev/null
+++ b/examples/starter-example/uSync/v9/MediaTypes/image.config
@@ -0,0 +1,116 @@
+
+
+
+ Image
+ icon-picture
+ icon-picture
+
+ True
+ False
+ Nothing
+ false
+
+
+
+
+ ff8e58ce-16f1-411a-94e3-03e0e0f23dcc
+ Alt Text
+ altText
+ c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3
+ Umbraco.TextArea
+ false
+
+
+ 5
+ Image
+
+
+ false
+
+
+ 00000009-0000-0000-0000-000000000000
+ Size
+ umbracoBytes
+ 930861bf-e262-4ead-a704-f99453565708
+ Umbraco.Label
+ false
+
+
+ 3
+ Image
+
+
+ false
+
+
+ 0000000a-0000-0000-0000-000000000000
+ Type
+ umbracoExtension
+ f0bc4bfb-b499-40d6-ba86-058885a5178c
+ Umbraco.Label
+ false
+
+
+ 4
+ Image
+
+
+ false
+
+
+ 00000006-0000-0000-0000-000000000000
+ Image
+ umbracoFile
+ 1df9f033-e6d4-451f-b8d2-e0cbc50a836f
+ Umbraco.ImageCropper
+ true
+
+
+ 0
+ Image
+
+
+ false
+
+
+ 00000008-0000-0000-0000-000000000000
+ Height
+ umbracoHeight
+ 8e7f995c-bd81-4627-9932-c40e568ec788
+ Umbraco.Label
+ false
+
+
+ 2
+ Image
+
+
+ false
+
+
+ 00000007-0000-0000-0000-000000000000
+ Width
+ umbracoWidth
+ 8e7f995c-bd81-4627-9932-c40e568ec788
+ Umbraco.Label
+ false
+
+
+ 1
+ Image
+
+
+ false
+
+
+
+
+
+ 79ed4d07-254a-42cf-8fa9-ebe1c116a596
+ Image
+ image
+ Group
+ 1
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/MediaTypes/umbracomediaarticle.config b/examples/starter-example/uSync/v9/MediaTypes/umbracomediaarticle.config
new file mode 100644
index 00000000..11f2f7af
--- /dev/null
+++ b/examples/starter-example/uSync/v9/MediaTypes/umbracomediaarticle.config
@@ -0,0 +1,71 @@
+
+
+
+ Article
+ icon-article
+ icon-article
+
+ True
+ False
+ Nothing
+ false
+
+
+
+
+ 00000030-0000-0000-0000-000000000000
+ Size
+ umbracoBytes
+ 930861bf-e262-4ead-a704-f99453565708
+ Umbraco.Label
+ false
+
+
+ 2
+ Article
+
+
+ false
+
+
+ 0000002f-0000-0000-0000-000000000000
+ Type
+ umbracoExtension
+ f0bc4bfb-b499-40d6-ba86-058885a5178c
+ Umbraco.Label
+ false
+
+
+ 1
+ Article
+
+
+ false
+
+
+ 0000002e-0000-0000-0000-000000000000
+ Article
+ umbracoFile
+ bc1e266c-dac4-4164-bf08-8a1ec6a7143d
+ Umbraco.UploadField
+ true
+
+
+ 0
+ Article
+
+
+ false
+
+
+
+
+
+ 9af3bd65-f687-4453-9518-5f180d1898ec
+ Article
+ article
+ Group
+ 1
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/MediaTypes/umbracomediaaudio.config b/examples/starter-example/uSync/v9/MediaTypes/umbracomediaaudio.config
new file mode 100644
index 00000000..3b241c31
--- /dev/null
+++ b/examples/starter-example/uSync/v9/MediaTypes/umbracomediaaudio.config
@@ -0,0 +1,71 @@
+
+
+
+ Audio
+ icon-sound-waves
+ icon-sound-waves
+
+ True
+ False
+ Nothing
+ false
+
+
+
+
+ 0000002d-0000-0000-0000-000000000000
+ Size
+ umbracoBytes
+ 930861bf-e262-4ead-a704-f99453565708
+ Umbraco.Label
+ false
+
+
+ 2
+ Audio
+
+
+ false
+
+
+ 0000002c-0000-0000-0000-000000000000
+ Type
+ umbracoExtension
+ f0bc4bfb-b499-40d6-ba86-058885a5178c
+ Umbraco.Label
+ false
+
+
+ 1
+ Audio
+
+
+ false
+
+
+ 0000002b-0000-0000-0000-000000000000
+ Audio
+ umbracoFile
+ 8f430dd6-4e96-447e-9dc0-cb552c8cd1f3
+ Umbraco.UploadField
+ true
+
+
+ 0
+ Audio
+
+
+ false
+
+
+
+
+
+ 335fb495-0a87-4e82-b902-30eb367b767c
+ Audio
+ audio
+ Group
+ 1
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/MediaTypes/umbracomediavectorgraphics.config b/examples/starter-example/uSync/v9/MediaTypes/umbracomediavectorgraphics.config
new file mode 100644
index 00000000..3ebd344b
--- /dev/null
+++ b/examples/starter-example/uSync/v9/MediaTypes/umbracomediavectorgraphics.config
@@ -0,0 +1,71 @@
+
+
+
+ Vector Graphics (SVG)
+ icon-picture
+ icon-picture
+
+ True
+ False
+ Nothing
+ false
+
+
+
+
+ 00000033-0000-0000-0000-000000000000
+ Size
+ umbracoBytes
+ 930861bf-e262-4ead-a704-f99453565708
+ Umbraco.Label
+ false
+
+
+ 2
+ Vector Graphics
+
+
+ false
+
+
+ 00000032-0000-0000-0000-000000000000
+ Type
+ umbracoExtension
+ f0bc4bfb-b499-40d6-ba86-058885a5178c
+ Umbraco.Label
+ false
+
+
+ 1
+ Vector Graphics
+
+
+ false
+
+
+ 00000031-0000-0000-0000-000000000000
+ Vector Graphics
+ umbracoFile
+ 215cb418-2153-4429-9aef-8c0f0041191b
+ Umbraco.UploadField
+ true
+
+
+ 0
+ Vector Graphics
+
+
+ false
+
+
+
+
+
+ f199b4d7-9e84-439f-8531-f87d9af37711
+ Vector Graphics
+ vectorGraphics
+ Group
+ 1
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/MediaTypes/umbracomediavideo.config b/examples/starter-example/uSync/v9/MediaTypes/umbracomediavideo.config
new file mode 100644
index 00000000..0dd0ffca
--- /dev/null
+++ b/examples/starter-example/uSync/v9/MediaTypes/umbracomediavideo.config
@@ -0,0 +1,71 @@
+
+
+
+ Video
+ icon-video
+ icon-video
+
+ True
+ False
+ Nothing
+ false
+
+
+
+
+ 0000002a-0000-0000-0000-000000000000
+ Size
+ umbracoBytes
+ 930861bf-e262-4ead-a704-f99453565708
+ Umbraco.Label
+ false
+
+
+ 2
+ Video
+
+
+ false
+
+
+ 00000029-0000-0000-0000-000000000000
+ Type
+ umbracoExtension
+ f0bc4bfb-b499-40d6-ba86-058885a5178c
+ Umbraco.Label
+ false
+
+
+ 1
+ Video
+
+
+ false
+
+
+ 00000028-0000-0000-0000-000000000000
+ Video
+ umbracoFile
+ 70575fe7-9812-4396-bbe1-c81a76db71b5
+ Umbraco.UploadField
+ true
+
+
+ 0
+ Video
+
+
+ false
+
+
+
+
+
+ 2f0a61b6-cf92-4ff4-b437-751ab35eb254
+ Video
+ video
+ Group
+ 1
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/MemberTypes/member.config b/examples/starter-example/uSync/v9/MemberTypes/member.config
new file mode 100644
index 00000000..d3cb3329
--- /dev/null
+++ b/examples/starter-example/uSync/v9/MemberTypes/member.config
@@ -0,0 +1,152 @@
+
+
+
+ Member
+ icon-user
+ icon-user
+
+ False
+ False
+ Nothing
+ false
+
+
+
+
+ e79dccfb-0000-0000-0000-000000000000
+ Is Approved
+ umbracoMemberApproved
+ 92897bc6-a5f3-4ffe-ae27-f2e7e33dda49
+ Umbraco.TrueFalse
+ false
+
+
+ 2
+ Membership
+ false
+ false
+ false
+
+
+ false
+
+
+ 2a280588-0000-0000-0000-000000000000
+ Comments
+ umbracoMemberComments
+ c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3
+ Umbraco.TextArea
+ false
+
+
+ 0
+ Membership
+ false
+ false
+ false
+
+
+ false
+
+
+ 0f2ea539-0000-0000-0000-000000000000
+ Failed Password Attempts
+ umbracoMemberFailedPasswordAttempts
+ 8e7f995c-bd81-4627-9932-c40e568ec788
+ Umbraco.Label
+ false
+
+
+ 1
+ Membership
+ false
+ false
+ false
+
+
+ false
+
+
+ 3a7bc3c6-0000-0000-0000-000000000000
+ Last Lockout Date
+ umbracoMemberLastLockoutDate
+ 0e9794eb-f9b5-4f20-a788-93acd233a7e4
+ Umbraco.Label
+ false
+
+
+ 4
+ Membership
+ false
+ false
+ false
+
+
+ false
+
+
+ b5e309ba-0000-0000-0000-000000000000
+ Last Login Date
+ umbracoMemberLastLogin
+ 0e9794eb-f9b5-4f20-a788-93acd233a7e4
+ Umbraco.Label
+ false
+
+
+ 5
+ Membership
+ false
+ false
+ false
+
+
+ false
+
+
+ ded56d3f-0000-0000-0000-000000000000
+ Last Password Change Date
+ umbracoMemberLastPasswordChangeDate
+ 0e9794eb-f9b5-4f20-a788-93acd233a7e4
+ Umbraco.Label
+ false
+
+
+ 6
+ Membership
+ false
+ false
+ false
+
+
+ false
+
+
+ c36093d2-0000-0000-0000-000000000000
+ Is Locked Out
+ umbracoMemberLockedOut
+ 92897bc6-a5f3-4ffe-ae27-f2e7e33dda49
+ Umbraco.TrueFalse
+ false
+
+
+ 3
+ Membership
+ false
+ false
+ false
+
+
+ false
+
+
+
+
+
+ 0756729d-d665-46e3-b84a-37aceaa614f8
+ Membership
+ membership
+ Group
+ 1
+
+
+
\ No newline at end of file
diff --git a/examples/starter-example/uSync/v9/usync.config b/examples/starter-example/uSync/v9/usync.config
new file mode 100644
index 00000000..14fc189d
--- /dev/null
+++ b/examples/starter-example/uSync/v9/usync.config
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/src/Nikcio.UHeadless.IntegrationTests.TestProject/Nikcio.UHeadless.IntegrationTests.TestProject.csproj b/src/Nikcio.UHeadless.IntegrationTests.TestProject/Nikcio.UHeadless.IntegrationTests.TestProject.csproj
index aded6e9e..8c592cc2 100644
--- a/src/Nikcio.UHeadless.IntegrationTests.TestProject/Nikcio.UHeadless.IntegrationTests.TestProject.csproj
+++ b/src/Nikcio.UHeadless.IntegrationTests.TestProject/Nikcio.UHeadless.IntegrationTests.TestProject.csproj
@@ -47,8 +47,4 @@
-
-
-
-
diff --git a/src/Nikcio.UHeadless.IntegrationTests/Nikcio.UHeadless.IntegrationTests.csproj b/src/Nikcio.UHeadless.IntegrationTests/Nikcio.UHeadless.IntegrationTests.csproj
index ad737666..7db514c8 100644
--- a/src/Nikcio.UHeadless.IntegrationTests/Nikcio.UHeadless.IntegrationTests.csproj
+++ b/src/Nikcio.UHeadless.IntegrationTests/Nikcio.UHeadless.IntegrationTests.csproj
@@ -9,15 +9,6 @@
true
-
-
-
-
-
-
-
-
-
From c8a2c9e4510707ae054ff6468372b3d99a22b494 Mon Sep 17 00:00:00 2001
From: Nikolaj Brask-Nielsen
Date: Fri, 7 Jun 2024 23:59:11 +0200
Subject: [PATCH 6/9] docs: Update README
---
README.md | 98 +++++++++++++++++++++++++++++++++++--------------------
1 file changed, 62 insertions(+), 36 deletions(-)
diff --git a/README.md b/README.md
index 82412381..1c298cc6 100644
--- a/README.md
+++ b/README.md
@@ -36,48 +36,74 @@ You can also find the package on [NuGet](https://www.nuget.org/packages/Nikcio.U
To integrate the package into your project, follow these steps:
-1. Open your `Startup.cs` file.
-2. Add the following using statement:
-
- ```csharp
- using Nikcio.UHeadless.Extensions;
- ```
-
-3. In the `ConfigureServices` method, add the following code:
-
- ```csharp
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddUmbraco(_env, _config)
- /* Code omitted for clarity */
- .AddUHeadless()
- /* Code omitted for clarity */
- }
- ```
-
-4. In the `Configure` method, add the following code:
+1. Open your `program.cs` file.
+2. Add the following using statements:
+
+ ```csharp
+ using Nikcio.UHeadless;
+ using Nikcio.UHeadless.Defaults.ContentItems;
+ ```
+
+3. In the `CreateUmbracoBuilder` method, add the following code:
+
+ ```csharp
+ builder.CreateUmbracoBuilder()
+ // Default Umbraco configuration
+ .AddUHeadless(options =>
+ {
+ options.DisableAuthorization = true; // Change this later when adding authentication - See documentation
+
+ options.AddDefaults();
+
+ options.AddQuery();
+ options.AddQuery();
+ })
+ .Build();
+ ```
+
+4. Then after `app.BootUmbracoAsync()` method, add the following code:
+
+ ```csharp
+ await app.BootUmbracoAsync();
+
+ app.UseAuthentication();
+ app.UseAuthorization();
+
+ GraphQLEndpointConventionBuilder graphQLEndpointBuilder = app.MapUHeadless();
+
+ // Only enable the GraphQL IDE in development
+ if (!builder.Environment.IsDevelopment())
+ {
+ graphQLEndpointBuilder.WithOptions(new GraphQLServerOptions()
+ {
+ Tool =
+ {
+ Enable = false,
+ }
+ });
+ }
- ```csharp
- public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
- {
- /* Code omitted for clarity */
+ app.UseUmbraco()
+ // Default Umbraco configuration
+ ```
- app.UseUHeadlessGraphQLEndpoint();
+With these configurations in place, your content will be available at `/graphql`.
- app.UseUmbraco()
- /* etc... */
- }
- ```
+To get started, try querying your content using their GUIDs or routes. For example with the query below:
-With these configurations in place, your content will be available at `/graphql`. To get started, try adding some content to the root and run the following query:
+__Tip: GUIDs can be found in the info tab when viewing content in the backoffice__
```graphql
-{
- contentAtRoot {
- nodes {
- id,
- name
- }
+query {
+ contentByGuid(id: "dcf18a51-6919-4cf8-89d1-36b94ce4d963") {
+ id
+ key
+ name
+ statusCode
+ templateId
+ updateDate
+ url(urlMode: ABSOLUTE)
+ urlSegment
}
}
```
From aaeac84406389d143b25c43cf8ddd539375ba305 Mon Sep 17 00:00:00 2001
From: Nikolaj Brask-Nielsen
Date: Fri, 7 Jun 2024 23:59:27 +0200
Subject: [PATCH 7/9] feat: Update UrlTracker
---
examples/starter-example/starter-example.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/starter-example/starter-example.csproj b/examples/starter-example/starter-example.csproj
index f32c86ca..8c95b28b 100644
--- a/examples/starter-example/starter-example.csproj
+++ b/examples/starter-example/starter-example.csproj
@@ -8,7 +8,7 @@
-
+
From 3f151004f4a26f8ec329eb45dd7a278b14ca80ce Mon Sep 17 00:00:00 2001
From: Nikolaj Brask-Nielsen
Date: Sun, 9 Jun 2024 14:54:23 +0200
Subject: [PATCH 8/9] docs: Added v5 docs
---
README.md | 6 +-
docs/astro.config.mjs | 164 ++++++---
.../assets/v5/create-token-example-image.png | Bin 0 -> 34688 bytes
.../src/assets/v5/use-token-example-image.png | Bin 0 -> 31708 bytes
docs/src/content/docs/overview.md | 1 +
docs/src/content/docs/v5/extending/content.md | 291 ++++++++++++++++
docs/src/content/docs/v5/extending/media.md | 102 ++++++
docs/src/content/docs/v5/extending/member.md | 103 ++++++
.../v5/extending/properties/block-list.md | 109 ++++++
.../v5/extending/properties/custom-editor.md | 58 ++++
.../v5/extending/properties/media-picker.md | 105 ++++++
.../docs/v5/extending/properties/overview.md | 49 +++
.../docs/v5/extending/properties/rich-text.md | 74 +++++
.../docs/v5/extending/skybrud-redirects.md | 112 +++++++
.../content/docs/v5/extending/url-tracker.md | 288 ++++++++++++++++
.../docs/v5/fundamentals/getting-started.md | 146 ++++++++
.../docs/v5/fundamentals/querying/content.md | 38 +++
.../docs/v5/fundamentals/querying/media.md | 36 ++
.../docs/v5/fundamentals/querying/members.md | 41 +++
.../v5/fundamentals/querying/properties.md | 74 +++++
.../content/docs/v5/fundamentals/security.md | 313 ++++++++++++++++++
docs/src/content/docs/v5/reference/content.md | 11 +
.../docs/v5/reference/endpoint-options.md | 38 +++
docs/src/content/docs/v5/reference/media.md | 11 +
docs/src/content/docs/v5/reference/member.md | 11 +
docs/src/content/docs/v5/reference/options.md | 27 ++
.../content/docs/v5/reference/properties.md | 22 ++
docs/src/content/docs/v5/start.md | 67 ++++
.../CustomBlockListExample/BlockList.cs | 66 ++++
.../CustomEditorExample/CustomEditor.cs | 18 +
.../CustomMediaItemExampleQuery.cs | 32 ++
.../CustomMediaItemExample/MediaItem.cs | 41 +++
.../CustomMediaPickerExample/MediaPicker.cs | 63 ++++
.../CustomMemberItemExampleQuery.cs | 32 ++
.../CustomMemberItemExample/MemberItem.cs | 41 +++
.../CustomRichTextExample/RichText.cs | 32 ++
.../PublicAccessExample/ContentItem.cs | 9 +-
examples/code-examples/Program.cs | 12 +
38 files changed, 2580 insertions(+), 63 deletions(-)
create mode 100644 docs/src/assets/v5/create-token-example-image.png
create mode 100644 docs/src/assets/v5/use-token-example-image.png
create mode 100644 docs/src/content/docs/v5/extending/content.md
create mode 100644 docs/src/content/docs/v5/extending/media.md
create mode 100644 docs/src/content/docs/v5/extending/member.md
create mode 100644 docs/src/content/docs/v5/extending/properties/block-list.md
create mode 100644 docs/src/content/docs/v5/extending/properties/custom-editor.md
create mode 100644 docs/src/content/docs/v5/extending/properties/media-picker.md
create mode 100644 docs/src/content/docs/v5/extending/properties/overview.md
create mode 100644 docs/src/content/docs/v5/extending/properties/rich-text.md
create mode 100644 docs/src/content/docs/v5/extending/skybrud-redirects.md
create mode 100644 docs/src/content/docs/v5/extending/url-tracker.md
create mode 100644 docs/src/content/docs/v5/fundamentals/getting-started.md
create mode 100644 docs/src/content/docs/v5/fundamentals/querying/content.md
create mode 100644 docs/src/content/docs/v5/fundamentals/querying/media.md
create mode 100644 docs/src/content/docs/v5/fundamentals/querying/members.md
create mode 100644 docs/src/content/docs/v5/fundamentals/querying/properties.md
create mode 100644 docs/src/content/docs/v5/fundamentals/security.md
create mode 100644 docs/src/content/docs/v5/reference/content.md
create mode 100644 docs/src/content/docs/v5/reference/endpoint-options.md
create mode 100644 docs/src/content/docs/v5/reference/media.md
create mode 100644 docs/src/content/docs/v5/reference/member.md
create mode 100644 docs/src/content/docs/v5/reference/options.md
create mode 100644 docs/src/content/docs/v5/reference/properties.md
create mode 100644 docs/src/content/docs/v5/start.md
create mode 100644 examples/code-examples/Headless/CustomBlockListExample/BlockList.cs
create mode 100644 examples/code-examples/Headless/CustomEditorExample/CustomEditor.cs
create mode 100644 examples/code-examples/Headless/CustomMediaItemExample/CustomMediaItemExampleQuery.cs
create mode 100644 examples/code-examples/Headless/CustomMediaItemExample/MediaItem.cs
create mode 100644 examples/code-examples/Headless/CustomMediaPickerExample/MediaPicker.cs
create mode 100644 examples/code-examples/Headless/CustomMemberItemExample/CustomMemberItemExampleQuery.cs
create mode 100644 examples/code-examples/Headless/CustomMemberItemExample/MemberItem.cs
create mode 100644 examples/code-examples/Headless/CustomRichTextExample/RichText.cs
diff --git a/README.md b/README.md
index 1c298cc6..03c61d52 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@ You can also find the package on [NuGet](https://www.nuget.org/packages/Nikcio.U
To integrate the package into your project, follow these steps:
-1. Open your `program.cs` file.
+1. Open your `Program.cs` file.
2. Add the following using statements:
```csharp
@@ -44,7 +44,7 @@ To integrate the package into your project, follow these steps:
using Nikcio.UHeadless.Defaults.ContentItems;
```
-3. In the `CreateUmbracoBuilder` method, add the following code:
+3. On the `UmbracoBuilder`, add the following code:
```csharp
builder.CreateUmbracoBuilder()
@@ -61,7 +61,7 @@ To integrate the package into your project, follow these steps:
.Build();
```
-4. Then after `app.BootUmbracoAsync()` method, add the following code:
+4. Then after the `app.BootUmbracoAsync()` method, add the following code:
```csharp
await app.BootUmbracoAsync();
diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs
index 6833f832..d8c87ddd 100644
--- a/docs/astro.config.mjs
+++ b/docs/astro.config.mjs
@@ -19,23 +19,22 @@ export default defineConfig({
label: 'Welcome',
items: [
{ label: 'Overview', link: '/overview/' },
- { label: 'Version 4', link: '/v4/start/' },
+ { label: 'Version 5', link: '/v5/start/' },
],
},
{
label: 'Fundamentals',
items: [
- { label: 'Getting started', link: 'v4/fundamentals/getting-started/' },
- { label: 'Security', link: 'v4/fundamentals/security/' },
- { label: 'Extend UHeadless', link: 'v4/fundamentals/extend-uheadless/' },
+ { label: 'Getting started', link: 'v5/fundamentals/getting-started/' },
+ { label: 'Security', link: 'v5/fundamentals/security/' },
{
label: 'Querying',
collapsed: true,
items: [
- { label: 'Content', link: 'v4/fundamentals/querying/content/' },
- { label: 'Media', link: 'v4/fundamentals/querying/media/' },
- { label: 'Members', link: 'v4/fundamentals/querying/members/' },
- { label: 'Properties', link: 'v4/fundamentals/querying/properties/' }
+ { label: 'Content', link: 'v5/fundamentals/querying/content/' },
+ { label: 'Media', link: 'v5/fundamentals/querying/media/' },
+ { label: 'Members', link: 'v5/fundamentals/querying/members/' },
+ { label: 'Properties', link: 'v5/fundamentals/querying/properties/' }
]
},
]
@@ -43,18 +42,18 @@ export default defineConfig({
{
label: 'Extending',
items: [
- { label: 'Content', link: 'v4/extending/content/' },
- { label: 'Media', link: 'v4/extending/media/' },
- { label: 'Member', link: 'v4/extending/member/' },
+ { label: 'Content', link: 'v5/extending/content/' },
+ { label: 'Media', link: 'v5/extending/media/' },
+ { label: 'Member', link: 'v5/extending/member/' },
{
label: 'Properties',
collapsed: true,
items: [
- { label: 'Overview', link: 'v4/extending/properties/overview/' },
- { label: 'Rich text', link: 'v4/extending/properties/rich-text/' },
- { label: 'Media picker', link: 'v4/extending/properties/media-picker/' },
- { label: 'Block list', link: 'v4/extending/properties/block-list/' },
- { label: 'Custom editor', link: 'v4/extending/properties/custom-editor/' },
+ { label: 'Overview', link: 'v5/extending/properties/overview/' },
+ { label: 'Rich text', link: 'v5/extending/properties/rich-text/' },
+ { label: 'Media picker', link: 'v5/extending/properties/media-picker/' },
+ { label: 'Block list', link: 'v5/extending/properties/block-list/' },
+ { label: 'Custom editor', link: 'v5/extending/properties/custom-editor/' },
]
},
]
@@ -62,51 +61,106 @@ export default defineConfig({
{
label: 'Reference',
items: [
- { label: 'Options', link: 'v4/reference/options/' },
- { label: 'Endpoint options', link: 'v4/reference/endpoint-options/' },
- { label: 'Paging options', link: 'v4/reference/paging-options/' },
- {
- label: 'Content',
- collapsed: true,
- items: [
- { label: 'Content Reference', link: 'v4/reference/content/overview/' },
- { label: 'Content Bases', link: 'v4/reference/content/bases/' },
- { label: 'Content Basics', link: 'v4/reference/content/basics/' }
- ]
- },
- {
- label: 'Media',
- collapsed: true,
- items: [
- { label: 'Media Reference', link: 'v4/reference/media/overview/' },
- { label: 'Media Bases', link: 'v4/reference/media/bases/' },
- { label: 'Media Basics', link: 'v4/reference/media/basics/' }
- ]
- },
- {
- label: 'Members',
- collapsed: true,
- items: [
- { label: 'Members Reference', link: 'v4/reference/members/overview/' },
- { label: 'Members Bases', link: 'v4/reference/members/bases/' },
- { label: 'Members Basics', link: 'v4/reference/members/basics/' }
- ]
- },
- {
- label: 'Properties',
- collapsed: true,
- items: [
- { label: 'Properties Reference', link: 'v4/reference/properties/overview/' },
- { label: 'Properties Bases', link: 'v4/reference/properties/bases/' },
- { label: 'Properties Basics', link: 'v4/reference/properties/basics/' }
- ]
- },
+ { label: 'Options', link: 'v5/reference/options/' },
+ { label: 'Endpoint options', link: 'v5/reference/endpoint-options/' },
+ { label: 'Content', link: 'v5/reference/content/' },
+ { label: 'Media', link: 'v5/reference/media/' },
+ { label: 'Member', link: 'v5/reference/member/' },
+ { label: 'Member', link: 'v5/reference/properties/' },
]
},
{
label: 'Older versions',
collapsed: true,
items: [
+ {
+ label: 'Version 4',
+ collapsed: true,
+ items: [
+ { label: 'Overview', link: '/v4/start/' },
+ {
+ label: 'Fundamentals',
+ items: [
+ { label: 'Getting started', link: 'v4/fundamentals/getting-started/' },
+ { label: 'Security', link: 'v4/fundamentals/security/' },
+ { label: 'Extend UHeadless', link: 'v4/fundamentals/extend-uheadless/' },
+ {
+ label: 'Querying',
+ collapsed: true,
+ items: [
+ { label: 'Content', link: 'v4/fundamentals/querying/content/' },
+ { label: 'Media', link: 'v4/fundamentals/querying/media/' },
+ { label: 'Members', link: 'v4/fundamentals/querying/members/' },
+ { label: 'Properties', link: 'v4/fundamentals/querying/properties/' }
+ ]
+ },
+ ]
+ },
+ {
+ label: 'Extending',
+ items: [
+ { label: 'Content', link: 'v4/extending/content/' },
+ { label: 'Media', link: 'v4/extending/media/' },
+ { label: 'Member', link: 'v4/extending/member/' },
+ {
+ label: 'Properties',
+ collapsed: true,
+ items: [
+ { label: 'Overview', link: 'v4/extending/properties/overview/' },
+ { label: 'Rich text', link: 'v4/extending/properties/rich-text/' },
+ { label: 'Media picker', link: 'v4/extending/properties/media-picker/' },
+ { label: 'Block list', link: 'v4/extending/properties/block-list/' },
+ { label: 'Custom editor', link: 'v4/extending/properties/custom-editor/' },
+ ]
+ },
+ ]
+ },
+ {
+ label: 'Reference',
+ items: [
+ { label: 'Options', link: 'v4/reference/options/' },
+ { label: 'Endpoint options', link: 'v4/reference/endpoint-options/' },
+ { label: 'Paging options', link: 'v4/reference/paging-options/' },
+ {
+ label: 'Content',
+ collapsed: true,
+ items: [
+ { label: 'Content Reference', link: 'v4/reference/content/overview/' },
+ { label: 'Content Bases', link: 'v4/reference/content/bases/' },
+ { label: 'Content Basics', link: 'v4/reference/content/basics/' }
+ ]
+ },
+ {
+ label: 'Media',
+ collapsed: true,
+ items: [
+ { label: 'Media Reference', link: 'v4/reference/media/overview/' },
+ { label: 'Media Bases', link: 'v4/reference/media/bases/' },
+ { label: 'Media Basics', link: 'v4/reference/media/basics/' }
+ ]
+ },
+ {
+ label: 'Members',
+ collapsed: true,
+ items: [
+ { label: 'Members Reference', link: 'v4/reference/members/overview/' },
+ { label: 'Members Bases', link: 'v4/reference/members/bases/' },
+ { label: 'Members Basics', link: 'v4/reference/members/basics/' }
+ ]
+ },
+ {
+ label: 'Properties',
+ collapsed: true,
+ items: [
+ { label: 'Properties Reference', link: 'v4/reference/properties/overview/' },
+ { label: 'Properties Bases', link: 'v4/reference/properties/bases/' },
+ { label: 'Properties Basics', link: 'v4/reference/properties/basics/' }
+ ]
+ },
+ ]
+ }
+ ]
+ },
{
label: 'Version 3',
collapsed: true,
diff --git a/docs/src/assets/v5/create-token-example-image.png b/docs/src/assets/v5/create-token-example-image.png
new file mode 100644
index 0000000000000000000000000000000000000000..328eb8ddc349565399359de17c2665c03152a116
GIT binary patch
literal 34688
zcmZ^L1yo$kvNcX{cb5crcL*Nb0>L!|3mzPTySoQ>5ALqPVQ_bMmw$$Q_rCkqyZ@|Y
z<&2y@E!9=KcI{5EqP!#$JU%=a7#NbYl$bIY7$iCv74rLfj*w!^6zzOSgzzGRPnnNXY{Rzedj!ufY0Y;Y9PIfja4WakW5BFnm
ztT5OVi+*LN_(`i&!pxzxdV6xCz&>SqE}u+-!|Wwn=nvDIo0FTm5iirP>WN$i5hP-7
zFQst{uizlii@Z8&g622xtp6^=yaGs-*-qkexBTYe6YSI$^9s
zcJ>(Aq|0}ntFfbKrA^C(W%dg3nbRCjfTBsb%NeyqaM=ewDavDnJxqaZeS9}^(<=iD
z?K26-ZNTbUm-O}B*%0hmOo9YxZZV4(VbM>mp^?=fW%7S09Qz?sP9lS$xWjt6e{c{=
zhH0qp_L>hNZdI~66wclpoy|~ozn)}$+RsZoPvuiLY?m6sWoL{6NSYYucM%uJp@Qb@
znjKGUpkuu{F$=@n51v}L<=p_H)d>az)7diko}d<_r3F-}ZR^YL&Ah{Ford|91*;e&!s
zd9?GFI1^C|Qcrg1mnq4jiSFX`Z%P!=u*(daKjrkm>nos7+7P)vL(!Q&Q7~KYUCr!*
zBM@}}3|-Cf^-((q`m?v5*LFHultRiSx{?C$aG3hyahN(QyabW(+F0G674XF7Y!1fC
z`+8$ll+N#m8+Kn4jC?J?1z$QAgY!II~s-))|R3_tCnJ(GF-gS&04rmO0-<(b$wMqS3Eozgj(yzo>Ea(>rIx>QWQ_DS19{jtbSYhDO
zvgyx5Ydi70D0m~obfwSKo>2ZFRc-oJEJ-c&aH6q@Tm;dSZ2v6_f
z`5yjrYv^j}9JG@*al|t?^K(!1fUp23y&KqAOEWgf%dstgWwk5=D=UWWXqX6dd`0in
zZF{I1!RL+S#Mup0WtNwo;01p0Yk#`)0=-wJ3|*DTXRZ2QqYNs`g^QKY(9Oj&{BKS|
zfKdp+**4gGfzpD;A+Z&G@23ZM@h!w|sJ?yyZYB$1C2R~I;9W~Q%$yV0oHj+ixIPO{
z)RY<#EP5@$*z90%y%T;bMr{)h`Vp&!NdRtX<
zA6%O5ax7LdeJ{~pgDS=WWCGGpXs0fcHuvpG_|6KxaL`OIkgvAWifBTY>IIV(LYZGUL*u
zodfHw4KX||g5&H6NVq&=XeNOOb*@U?iomTEx3VV5v9=$lAL7lco{CR+=>jo
z0jgVRzp#JF%1cl8QF1L2pZ9v%RsGA`j}O(h;0h7bdUY0sU)GssJmqLoGIW+Oi(_DhEWrJZv9Wld=nf
z2CU7tzVHgBnI8|c9!d~tRMbJ$Qyx>*uu1nFiFSyJ6Io|9Z@(ohpOBfGMqK
zgY$>#VQ-Z7#X#OU=6fG4o9&k5B(LNPB8=e&$|lEgBJa}kVD)3qZu${?@3;2i#@MW0Dx}8|33d(dqk2sYQ4-=u
zQfEvqhKl)v6eC>Ge6Ic=f{_-1pj%spL2-4YsUvb%fEFtKrT&`&dYZ-
zBQ0deTCZbftl4(^7-wTz`*>8k&6QBI9Rh{_g7F6Sw87zllros#X&<|#X(Aw0fiQQu
zR(eFpUC`5QlRqp@F3Ejn?#u=4LY@%I4v_!Z$^RnwSC-BD7rTB|Rc&{^?`Xrwx%KXf
z8P7e#=WD$x(FSN3i>tjGZatAwAOn{4|CT~S^j%IY@nqpDhend|=bj0gVARPw4LiPs
zKL~Jt!_&hrMrd@&s=e>8pWdt<6XtJtArH|UBr?+B+91Pr4ZbZ8&T5gO$+jsEqk#ED?N4_1=iMRj_xnEw+=
zt7z!E4w(OQvAmB^ZbI_rMae_p`Lr-Vwm)iW_7e^GfxF6(keN(L)&^b%gONJa0qsfQ1bHUYVs&r>qh?b64SM>swqEwY3WC<;G`M4ZE>H
zk`cQ4^04cC-Y8iKjQnb@ZpiU*>p1PMU>0qwKNr8Z!KmwalA)s$YBIhJ_|%AW0;w;O
zpvWh9bZZN-C+GE+N-Y-6G^9J(USYzn>v1oZ$u{*JH8OUhe$hKcMjbn1dhD768Bk}Y
z-EgG{^GCwipI*H6iWZ>p#9FTExqheJSS|fVvH(~sd(iwio-fEl2R*5m7zRC%W=_)Z
z-s`h|-_>C8y|NSEcJAicxV3fv&k={E$F*VZQ#c6N62#<#Jy26~I(45kDLxZQF&
z*8Si<8XzIrqhPtc!a%dGFFF4Z6Up}1+l8P8u+
znPwD}{EP6Kkp5-8`2TYeoRcgMd+29mfXAg4ejBg_*O=rmCZ2RLfF(tkp7SwsM|G)BMOb?FTWdwdcElI7Ei`yy>kgDqliUB3C~C>9_9Inz^ixzJ7c@bMyE{
zUm^@hJ4&S;A-o6R<9d&`
z8JSwr=TWQ1eYIr0#vqiN|GxDOF?d%SCiO^&jQwOO>;jMxP*JYAJvesCxCGskJi{+o
zfPqyZ;2Us!IQcYn&a|IYtwf{jr|_rUU#uHYj>L{lUw!I}#l$?!yhq;Yo??jjmU=5*
z{x+1w`(>_rz~$+?!1P)I!^1dbtgE=Wa$M+q>B5chxzo`m(p(~sExC3n0!i?cdyA=6
z80x+2k*j!VYTwS-8@#WI^cEvAA>txRuICRqa(ndwZ+C|1oA%a}2jD4B{)*)w4n+P&
zqqxZ`w*!4Iz{ukKyJ!!ytpq&R6SPqd#73aeU46lAKd^;KP&jO4
zP8j=0BYN!bWP3VMxQAaee<?j2(l`DEAY!;$PPINhK*H(6zU&(km{~E6dV9>H_3ZjFf2+rOoW1yHq?;
z!<)G}Ie(-y)x;8RHOR)gEK8eCcd8uv)n}RV^?(A|L^PJYw^#tRV&tF92$4n#RYew6
z%-@n>8T3BE1H9n3Q1cbPZZ@~awKk$%E-5PIGq7&zibj1Z)|bw(2>ZuG7fkAlJkeaW
z__ZH@{5l!FMdSL0JIUAzEm)5*bIPD1;wM;s?^bu~I%s?F5%F&RwTp9`(h=c{3m+gX
zbBVzxSoIwIx$prXV{^Rf-NVMH>TAEKsrq~=9uLq7<7AVK==PF_0d^DZT8HJ95H5ts
zwFWNdb(enc+SStIq}@i%tUmKS$P*<^tk_e|N%}n^B9dt<#)@)jOB~l{jjfurpmuv9W~CG>qB}*6T#$UA2)FU}gYML^?x_hbSX=SK(;SL6l9ubZ(;DjyqBE5wlpSG1=^Gu9NrB<<;GRUn
zewt;0yyb}yO?j90kbQ9Muko0wUUlxZDq-YO_67~68-l
z@8bx)3z1Oy6KbtseFAGEUd>h^({w71>aLM#ba-~7uS)JFCi6hA$U`I
zR7uxMD|!>cOKkO5k*5KGwKebMv!>R{P%w(w0nW>sKfY(S3m+Zdd#OE;Ya0?k`$|RP
zKtBOub~$v`6E6p!YVmLkV`$`BS8}H|KRi-m8q;^yjf9>%Yz#^vn+e+cThV{cuw
z+ijd;QEQcm;XutSNH5UMG^ynJgR|gQkh48pa#j7yW8lXG`Qod;HcAU%SoC$YDY2{0zx^n<5n-5=Or|uynTT!rzFcy>i01`Gv0Ae
z{HovQLKk#;HO*@xX1yqRHQSZHm4#~qvT6lct-lOux1{i^x8C&K1s~YABtH1&pJvkR
zczxJ6zFywC^`hIR9|{snzcd
z&&*H58f2fWyWr;biaO@EU%TwDp|cf9nA#8&cQ4mciX+cNHU-m6@O%i4?w#|?!C+hE
zoqwOY#yb*@)*yEutI^p?_deo&m+hInGh;RvGV?A#^eWT|vKaF~KV~i_VR+2&pN`$&m
zdQNNpXchUiji(^VNRWpGbDnd--K429!~^$Zp{au|?NK*6x{4TcmZ+SXe*!vz@%sJ8
z!*@rQvm5F&dWJd8gkGhKL9phZOMJ4Q)K4tLd{;yHMIneWpl4s%k0ffP=&(A)idTI6
zXS1Ah3}6$uPP!7yeVto=5PeO8CGAFSV12GF!5vOptXx*{Z|AMo54=mY`dz|bq2U=^
z0q$s10@0woL&nnZ>}}{kIea<*=8Hs?S~GLF>Tse8GBj4ExKijwPEUT_(#5dTr94`O
z$=lZvwV>4*_fRHnag9wzk(g1$(3M{o#$=03ZK(z2B65KTmd}#eIoEX17FJul$fm8$
zh{O1G!K>5ZwHt2jiw){eFxR++Wh8-&$Q+)D=A0jdR?F1%)*N?##N(*e*F$kEhE9|A
zgP?$`@(2ui-5r!MGNIq3sCe<93VpN_!_een)uMVhe5Q;Hl67bSM2W!rV#TJy4V`PJ
zU!4)`t!gu>P^n}53G6Z)R70ryljpXOYAVUcc!~OQ574-#VNW5Bz@bXzCsB!5cYRj4
z%$eQ>#Uv3sqNgPmJUtHL9=2@Tm!`$G@m
zJp@R6YM1#6Q=@8sQg$?9>dk&^7g_hrny&ogHx8s(@T8LdU?UC^1vfRB#}V@W%IhPp
z5K?>`kA~5E^f#Hel;F&SL#`QKk?<}cY?Oc{mgm>iLDEw^Kh2k)m@v1#U(S<)64whM
zHO!_V!sx>6X})+t>Qx(04P)k6KyfGk^1AK-csL&D4}WASxgu%EJ3wgY!6to7dgAx2
zE|wz$1$+cU#wcdoFkE(HN^N4Co0A3j3P8?w4>BI1>H|SE6@0FA;JLduxi!%z5BV9{
zLXD^RT1>lloC-tJ^Q!$jrWRcKzSL_&Uu9QqImSQa}kNp)~pv+W1H8{EFV!V
z72WuEGRp;(X`x622mk=R2Rx-QYBZNSJ)$e*&FOO1OJDK`bMl7a0dHBUf%AMLQg>MJ
zUAz%~UyAaX(WA!FNm6z>_psN+;23r~_y?BU!%~Kmcd8%Y%d1yAEr&^$@P)p#>aMiz
zX+A<-FVMClAZ4RAb?{)R2-<7=hTSs`3iE}as1
zwO&Q4_u~+?zox(zH=D?DK=Xc-toGba&)Z5*Ibs&6m?Hb5FW#g9h+e|_1Vh6_nThN|
zMSb6#W`q|q(PxaN%~427Js`+U6tNCD^Dq0Cg+~7xiuJifM?k^wYR-t6)2j);+Ae@t
z0y2K(I+$8@^~*EX*FL0*3kscU
zX@usQr`ovQa^YS~3v^DG-gf*AG=h|XKnuW{j5^wh6JbFB&=GY))~*(}%otTM~j
zCso-LR)kHeQQ@7Ro#X!eVx>aoZ~6B@1mDbJ$TU$1X!Jp@AAxq3-@t8byz}dK?mI0`
zkHDc2WyBHuu&p>mtB99gz+M1gp1MzrbVk9K=55A_fcbiZ4x{B_HTL^n*fk(N%F6bz
zY19b{WwWrq5<+@E!^~64thxCc6ZG?J3Z}1*QUiyl=Wx=+UsN3B7A1e&!X{jaabLi6
z?4Eb+Zg=;9I#RgXV@zsL!^iA7X*)p7jwufNBd4uSb9i3}Cew-VB2gDCT`5wh!o4_!
z=kG}4k`O8J4-TtLHt{iWjz#59m~%~yEqIVG5^KiVv@SD
zFzABqIE?BPpOCS#>zdGm2aCoJAJs(`R9636vIXq=4g_3!`8~xj0oEW`*XbqXM*GV^
z+R?iun9t>qZ=)kdSMe76Xh_>9pA>L4La1SNj+>MY>*fwY3rtEG#JzIa4%UhsyB60b
zl|iEnif92kJM-dU+d}8|ca+u4<|D?GR0ZoDFX@HU0)>Aj+HtMECJ}O4y{!PE<+B
zQqKlVr7X4U;a4kO5D8{I!h!MdxmGQY`XJr52BZ*)|II-rqI-omsMqY>CNy+&Ufwvc
zYpDO=Az2J7#;5^W)5nd7
zt&+zG4hX*^2lE}Qkk{ZBHR9{oF3~ZAp7@AV3?`vD6EpjEjs8K!+sn8@Xe0#;J#Ixp
z9s0hae<*fa2L+|Kt%qB16{s@8j9b5KLno^cCN*4r3~N5t#@#H_Gp+c|2jh2)
zfrA$Mt$$69FiK30&d!;G967>n@a&ImiFxmpNf4+VC_fB+lJd0+unU{=VbCRmdm>jC
zBQCSJ+wJntLG6WgN*)grdV1??lCgkps>SC_ot<{C2s|8Qu8$ReCck)^^18J?x%J{g
ze$K$rfL#r_cG|_HkX=BdST63qEa)i$46j?;j||ko>JnON-fRWiIy=gzX};_tFeGtt
zUtE(+Pn?2S(pI`1h+yteXgD~U!a{0qz~O}QzKymy0TPOPL-mE|-IJ%bDG7>FoT>|S
z2J2JS4~Ct%*6@PES)*Vp%2AfxB7U0Hq<~xe+jW9lku(du0IGx8&Qi9uxdz#Ium6hd
z<%SdK@q(E@EcC2W&e<#1P7e^;J+N3eA~<;-e+GfjEaOyH0f)OkT;JJ4y7snnkSfhh
z=Jn(_HtxJ#`Bm0B1;~Yl^SiAhIXJehsc+Y7iHNn&vk+bvHhZPNz-Y5EM$zmx+84u_
zWp_N4IzPicwhmMll?FN9ywuCGl2Z}ib!&2czZ>!I;uWesLTy(uzE9sjx(*G%voUIe
zdo=fGcu}cB{^1s7Hq}jcVG?D#iinY)dw8C9_hg3~pWD4WCC31fjL~x&`zOX2gQ*qB
zE|~hD4eoRxrhB|f{k3)-796QuO4Gu2H8qoBm#Muf6;xAmm%LQ+%j6Q&_L6&Sy@rs=
zJ{=#*bUbX2UzE517qer&m;2-DgqOf!DOx)gUVEb4veELx(q;sU$+^VZ3HsP;9I#%;i8sL%CR_bUoKmz;Xc7?ZF-x@mAqWr*E3z{;}
z$R@54BfAMDC&|!0Rl2VTF))rHrV#Vic<4uFBEBE>jfeGc{xqUO4qpW+W}u!DmES)O
zl|FE}QRPU?Pr0+GLF_`t6?0pU5BbNfjsC`{*OP=%XT9qbzzI8=zU`Es0~pp{OXG*6
z#eZ(tl&K$TeXT$TpT>RtB1Am3R4R2q-_AzVs>?a`sTK_O@Oe&W>V|Kp?@*Prx1+a=
zB;RDuc1kR^$T__GYvl!axYc!TfA5JX
zJ5(cfjFe4Bf@|XD*J=hQ5Cc=%u=rV@o)T&k(&9*c&BM~6FIsiyHm+U~AgW8X^s=)J
zjB;U5gLpvG6fkkCC8=c;Ql{_N`IOnz9Ya{B`k;o?N9xkM3`W1W-s^SiGBe}gCFR}p
zd1Uh%y1Z1T`iw{u>{QnDl!P)><$2W=h0%4@KYfFvn&jiRf|HvI8G@&V6AY)&k4=Qe
zDI*Bxr`H@CH8YJ_DRzU76AQ%0KT2KTG<|@f2Kc4q4wtKA@tAn-Y9=taJ=6iC^HVna
z?vG~GGg8<{$vADX#_r7@CHx1(YMwawPsH?<$h~4l_$Qx|7+>;@d|0qP>+H%64vDRu
z=i5_#)q+`{y&J@}_@v|%*fc8$&U?=EKd|0yD1w$mknVy^NG)=e#JbCj$JG%wdzFZw
zfn0Bvx{eL)bYzfaZA2TAn0GW6e!3gOvAE`}Nm(f5;F+67rXmGuS>TT!oZ*);Xvhe&
zecrV92{p`2l_$JzUM{ye^`p!seBytIj5{Lx@l~gaX>nA^+H2gugpxw~>Vpe#53nZ#
z<`2_#*N$}r9Zf&XgKK)WH5cHW-<5J--*YBBR%R_lCPNwrTIS&Ywbq>2YlaIaz+I&r
z6avVb4URtCx3?)G*@5t@D>eb83W1hDymRq)fv+hr8>ck(>sKx|rhgJ`_BQlq@oF1+
zZ(3@=6sAl2BTIA6#l0_U|!~l`
z_)xmqqOYaVq}fTByOk7-Jj7UsPHaIyiPQl!Fk2{GbaCgMZmJEY=t+o2YzKs1%<#QI
z?E`7hw_1aOxTdeoXzE_>TPYmU+ZImikIlLw9tNw8dCWjehMm-uqU7P{+gTz~!Pop}q0xIIrB&3+UIX
z$ah99Az_gFa%pNb5$AbaG#Rh`A_)*!YPKAo8ZJbqA0p1mT#!}57f}je=hP3?L2)43
z*{T_Kw{5fQ*@FLD*c!O?a#{VVkg`kx{`opegf{rS6w|BJ!O)E)5DL;6UZ8*R&|%=j
zat{qZ{9Ke(_^l#AR3HnSnDA;QX9)n-UT%#YVGO>6b&+Jkv!ayc{>=xOOM!hO*HVC%
zz&jjE@S6SWeMQ0b&7&mkO0MtqyUz)P``aYa6W`zZPyGQBu6-4@ei1scSqVvyX>5EV
z>FZEOKv-zy0I#+T_}5fe1DyvHwG4-UDBKiAEFia=9#O=+Prj(Vas8nsfgdH3Dx)w@
zIDD8rnQG8v**G&dp_Sp%kU!m-HRk$jJdQDth~Ah)U^%I?HwddYFPb>NgAlb)nYwn~
zwPfRbVIFti6Eb|-P=X1Q4msk>*K%}ziQ~o$`Zt(MsfGF?Ms}AswK?tP-Zt*z;)|q-
zYy)7&XcH7VTRCL)hSs$LQRf_)L>BWF-?8Enq$5)TB
zD{CU+IV6!~mmA3tktqcf)lr@xTo)$gpOK)?@Yo8CaiCyPiNDib`LKMgy=IVIRgY-@e)7{Cn1=DA=);2*^JStK{}
zb()Z+of_)(b16mUYUHpafj$3v@~eX7Q8f6DZsZ&USCL>%Xx?K0JOOX^F5J}`lVFm}WH?-iP#D-~DgcMtb&qc4|u
zX8hQzhy>_#UpqaSSS@Kwq$L+gfc3Qra$pu)P=mZ}(mPjWC2(^*4^i?bV8pvolTkc-
z5)f3O-HU4>D-yC&Y7X}SZ%Q>~B(@EE^ZyXXE#;qPv?|AWF|FB;IxhNj?j{{kBLU^z
zh?ii-xG5II2R8}7zPd%@Z#g?ft4CsNI^30xhpN}RoIgo0g@}23o%|a35m-gz8m2H|
zuq{&YPLTgCVcdZ(!-1aHbKmci(c(X7g$e00_tgBA`w~f{%YTvXo{pkWcKb^VlNC1T
z>4enR+x`NPmb*!`tJZYea4a8z)a@pZ;_whO)!%whZB
z?Sa*Y_h>&`KCGghicI;r%E+1`Q$oU87E!<5t&2bj5f3@Y0>|;5!LHp`U;=7TG
z!V}p1^bIrAvC^G#d{{hNbn=4#ONmpR;YH*wa|rS`^!XAh
zeS6x2{mSpAOvsQQ%1eq@px%?7jWuIXMA)4!pRCFbBXU=Zxfu-glyx?8G;cAbZ_}Vv+
znU)2^vyv`9G?`O48W_6bw4V0bV6(6ouAzcH@3ce#A76b#&Lr|rCa^9mi^M)pV-}^}
z>R6oqTur3=v_TBNG&gMnVDAEk3WShE0;N^V|nT4Kt
zuc=fOSSp=IF}5)B1iM0rnA>VQTe?TvsAr}oOC+E`g@Yi*@)Pz#y&n*lv^CjO1t<04$Jz1uAyOmxLqVsdZdIAc$8_cJ@xXGp=7mO|oH(sxD
zG+@@yPfI9QaeDlcgmZU7Fzhj>c+x)tUM*Uqgk-0kKiKlCiiUTIvyn%yZc$I~K=ezF
z9yFG{9U`|1{cYB!?7?#&)j(fahFh>vX$xu;-z
z&-Rv`f;bbapv@>Zvz;xK_Q{+`mwobQqc38^j}|2cFUfe6OsxB;%;NsjNR*cL7QU&|
z9@F6bj^&jL--X8)JL363GI>fo2VOMFea$7?qM9+l{Ao@3bj8E;fc{m#QJCR!3bP1(
zC}{FoC{2-@wFpixx2$w^!jYu@;Qkx|_cf@Sv#I>XG$fOp04oH}f`ooqGhzj&Wv>_-J&+1ehr;vz
z#lXF4GRx91!1)Pt!11o~{AY3N+-X_&{p@-JnV=pNiA3pTT(SJDHP?xc3>3*~s9D8W
z#dkKhVCPn#CO{~SuM(h@lfZDltVRfM==+H*
z&znY2hk0u5iH6^V3CyRxpUUsHR0@i(|1K9awVvLp>$pqu#f{}Xh2nTxOjdufsNmBD
zU41cJWoXyw$Eu~{cu(0+Tx-*oz6TYRR~B5z(;Q6dKknj(@ZnTjEW
zM4N#SzJ+qIohsM_5Il2H5KfHA2f07#iiSGyix4p;X#A*(q#s|9oW{ovthRCby$}kK<=mn@n>dXjYDGrp31JjcYQ;hJtZeFgJmf%_~U~6I`Uy`M%
z>C30{Q>p|r9?~~qanBA2F-|fKx<RzW-vjzdEN`VOngFbyaz;`+D0@hD&(XpqF&%9%e#JwIa
z!C$p9RZ{=PB8R;HkCKET6rU!jMyI6LB}^{yK4P>pPO`is*NySxg`f6YB^#LgFh>O`
zaqxvy9?v@gDdZ@}K1^JCTTNt8&nBXAfTS%28Jtm{LMJd8=vgfaa-uZjc@7*q76+;T
z*%JUAr`MgQrc4GP0{egm$d=6=o#V!E;X69k&Q&)%1DR_yh$I{?cs)?EtJtDfCX20QqR$EN+Gq8KQ^#r;V>N?&i
zc8%KE{AGuU9O%`NejIFY+pEVtSz}yXDyxNW@=G+LFDz;gH+TFt&G<9vsSZsYlJ%Na
zXRa+a%{t~yz%tL%L0!ep*2}ykFa!XTbp>GKf)zONSb0GTQXgF<5)SC1Qv^|GX0T{G
z_N-fw7@f`2$MLqU^xrgiuJR+bu(S*`V)I$PxJmJ$WTFx|#npuVus_TjpJN9Nd?&un
z=7ZV=)iMw$ja4!rADs-3o%9L~URSJ&^RtCQWPW!W*B5Jb3~6=#ttG?(e@G3iL?C~l
zZxt30%HFz^bFY3AK3`MAptBTzl|*{8!E;21!@ggdUsXQ^9W>0)KDi!2XAYb+X2
zEur~om;XAP`q`Y0cJ}162i+FKUjuKF0p9gli{FwHmX%3KvY~1i8PvmFuTL*tm(@>0SdgzxX^gqS|$u3z_4iq&=)pW2qP^CaX~F4R^YW{m5}
z87IpBO4S|H$$0GNmKU5y&MaPChxcq%fc$JNr=xQV(sxz&dW_yo>|daAwO$Q^p!xuV
zrXz2z9Eo>;sM_4?SjD@7<%p+5>RPIKLgLQkiT2+v#WRL!>qbsMHW5=eK(eSc51BKoOsBdj8
z2mH^OKQR>iG_FqsKw1E}QLGRt3w3zUtrK_<`g@TSH$ihKCIb3!9|pnmFv^gt0~zc+?{Y9W
z>vn6Y<|`lwKF=eXHC1Jo*F0$I_|$9=iSK&ZNCbM|^lgvozLqs}hk0#QelY~r_IqGv
zYWo$z;o)T_V3iW0AoVC#F{%n`k(H@$DwvAmi-l+0uh8y88q>AfEteobs{Rb#ncW2;
zNIkbb$ew&l*U!$M>=5Jn9P%4FN&k~tMWQEuW@LJDV&VGb?@MN3>nXeOE7xSI-Bc@L
zKehePO3uxXvaESUF1!!!%J~{AY|>OlH3_euhrT4?aYcEsfZUUz7|@G*W|9!s6MQXE
z<1mf!_D3X78+E;Fc|OF0Q~%Px&VR_fq+5%gsM->_-X}&Mo(Yq4CtdQ)$gfmSY$Q9#
z-5ckdobL@x^*fCmE!1?!{b$$b4$6DfutGSiFI$q)YQ#>Y8+U$+9lkxsuACWdASj~5`x(ZSztMLvcIJEGWt3Wv{so55Lhx^2
zErER{K_;AoOV^F8+AJ`*YM=oICu&TyXX*dHWKCb~(tSlE=obHG9siMA>04&dt$5Ze
z0e~zX=PI}aNH&yp_m@LDml#k5;Gsts)t9trW)c9^n}xnwa)B}a&vtqg_)of9c<5&u
z$C^(C23*DBnnmwEkl(u_>kyiYDb|eY1caa1Eooju>pFc`clo>az1sagJ-Mp5NFNC4
zS76nBF{B60q!h+x?H&WYVfZGmKC5A%T6+FFC3hHvBzf6eD%>IZR=Ga^fJDm>2VfHQ
z5k~6x;e=J{3K?@{YtE~z#gCypB>^fvnnOHNu`
zVd=Ba7$4cg*eT75*1w3M+H&K&uW*8YQk2X*-Ryf#QhPvIQoe@PHiT24%m~WtSNQsN
zawr=YO~uD@L162R@Zd8;)M|G1`V0`!brI=Y-
zv$k*t=RDJh^=dU2nz~6vrem$-vL43%Aq%MKBCBdC581kuzIa~wJ{K%QC)hy?Ad_V?
z=_u#=dm?5!u@|_hV34X6dOAuwfuOI5%zlkD9;m?$Wz~cHuNh(?-NVJ|`#L2l4DW8e
zwA6EL5APG&R
zFB(Iae<{Ka80AFLJp^5L3vpr;`hmnOuJxy0o`fu1D_QJLN#El2whakpb~1)47+a+(EEK>Ues;T4ym
zH+75py$;YRboY|)%^el>5OL@gv+q;goI4BdtI7rs3%88=k!VU5^RYiS8*quy{}lR=
z5rQ%DWq^II$1ZRKK|Q+I@!i4R1$s&$S6}0T7eu
zKU5>2{UwI^pXb?Fq*mIlfj-lj|6Gh=dm#2rBf|BD=z!r6h|hsOy|ZVqpF$5*G#KAc
z$()saYXzv?fkx*|C-#Mj{5eA$sl&&)p}$U?`xQ}4(=~w;7SsaTwI6UVjbPIqML@-2
zlL$LHLjNQ40dDAV0>lOF=Rh^n4&{D!%TWy<>q#7=Y8stka9Q%bra?hCXmV?H0qLdFsx6gcGH!
z_)1(O)s_rMj7+~BpT%4R>eR;%uZ!_whqsldJlj#ik>ry$Mwk!6Y0HFo-hYp}19xm_
zv4cK%CI+c0a&BUEO^5<7OS^5{WW1%aMBJ+no1yc(dxuX6+$!H$NC2Oo{6;pxlt&{(JWi1+15YB_E;<
z>pB+2!ziO5^;&|9YinMo4KO}ww-|@(Gcm=em)P
z0i%P4>UsI!^a1opI3Seug}v!8tTlM*!NcV@hTn58=YK8|`u
z{R!9P;(;)xt?yX*z46|Oukgk_q~YpUW`Sh3V0PSFj>Y(4|EFZmm0NjwC^At!CF
zN%eyFF(uZq&KN#HW6_l8n}M!bFXLqbK(r0pL)Acn;BNgp{!>JYoi&SP0-
z<3PG5n=%g{c=+NcM)o@a4Sk}J;6C=HcxIg^xqc|4;wFq~U2BdyXIfit6DXj1d6RZg
zBMmz-hoSXyd)SM{m5tu;%fBSGZ-BmvY3GyEMU(T#kE{~m$zi#14o9msM57N)!XG$X
zR=)hCGN0X)oK?Cry_o0bWW<0z5w6K8BbWOBRfg5Vd#ugdlsuR-WVydMws_6}O_#GU
zXM6ElfYbzVlWZ69Vlu+|66j$w6H{CHR#h2-x?f;vSdvWlxQ#r>Pt
z%`K{NftDobp{;a;5))h9T;-2pxkPqxHR2(_Ggu&7c!l6^VujYLPr82l
zxPDtD%Jk-ftPN2#K$A@#@*jsM|2cL0pPw9z2iwly(I4|4jkG|OOfhx1+h-&|UOODs
ztBflDJvx&8lA{2F{y~K>0GT8ZE;hpV&&jwlqysShw+}Gf*xCfurSKiwwR0d*D2W3h
z6!1o=wIcM?y!>l3lo@c&_MZwb-TqO+7ryQR12-ZpI))01`4Ni^B_%YvmbA>+$4{Cc
zZcZ1yJ>2TafG2PAlx}5alMMiP=Lz;yz~w!Y-y}Y|p8eJ+Ts9USO8Wvl?)H{5JxgW+
z(@731Ny8Y|y`?sRMaW>XD;QtbYDW`snxRi9*;Q2{lm}`lBZo}?R59D_WV>UfsSJSr
zQ6stz3`4ev;lji|7bK3Wb3y%_$JDhDhQKlym%qcZf7Jl;rFb&ahne#Hc!RDrLx;5U
zBm38JY}2MunZ3nqYuj5q&Kxd`sluQsCwl(?+&9l|PC=xG1TDH136mq=n8_JOePB$9
z9I{E%(qg=uQa*t|Ln=a9ch!tea0#uTpVCtt@L-3M{|#>@EI`%64+W?=qaQ|H(jV(*
zbA;vwA=EC8wf|ZyoVN4v9w4AG?IMGJQFxzT>JtM5HbsC>tisV|c6a>8{D|X=zX^XW
zoOWS29+9ndsC&
zaO%ECEvWx+cHIa7-ZE2((Tx~9Fuf>VxF!iCaFINjE)e0IOMfuDOjQ!hke8`KVHCL{
zU~2|$ga;65tTZ6#H6d@D1FJg*#6J;zYiUsLZMOr92Pc_I+IvP~0O#%=-Z!HiK#&eS
zDfSb6bT{1Jxx#>?yebkyq+hIs$tT5HJMg#mn+1ao)j|!n%@mnIDk^<}Z(jxeFE2v6
z?TB~~9Egj{YLy2_Qj_(Fg~qD^Gr&{ES2IRRz0C)w!oEait|i4q?`CO1hbXQC2T=Dr
zg>ymm^wG#qER1?M3n(8WhJW+=of52jqj))dS3Ttz*YB>mCQ!wHTTmik)H`d?Idky<
z9>?nV#%}f}Wdm4IJRGAZ4|@0is(Z_*I+iUAFnDlxcS7)l1HmC^f(CcLxO=eRF2RGl
z20yr4u;A|Q?hezC`|jMg=FQBn`7!)Div@kUtEzYH+Mn#awk?aASIlOZ2E{_w37VH6
z1fC5w%c+fB;ptj2vbH$GAZrG`(@E)O%}
z`cd`Bd*o^IpG~yC*P!I+HU9x+R4d5>p6Nvk3LVk^mAn?+DrfI8{t=OP)$`$s_cSnf
z0SW_xu;Cz2(P(%Y)*kha+eR&iZkm~7iOv2^skR2r-p0qx=cKdrpQIB3cKz$;ktE#_
zd>xFB^@D|nqgV=?X01tsDG3(%zUphV`aj>m0K%;07ukV$j~eVu+bocvauJUrDPhy$
zjbqr?c7hO0^lq642b@cq1s2eEDfaRMOD5#6A5Iy>IFu6$*dx-imhjZkUVmgB>WhqPydAJo+NfnT|%GOovk(cJ5Frb`*#}*
zjc@$zo3Ph}bxtYK#d~H0c~c3@9hFxX{F~^dHvg>su??w&4lxWdleSf}Nm`y$=^I{;w6418x@51yAqeI*hY0P!9iprzabH?J+{56^Kmr+c!KX%Cjy|!a+Gp`5zAb5Q>Jdt?<
z(1i-j6L^O9AyVgg>Jdg1*z8=pTx?D670d1X@3Mh@4~<=c#e1IPmA*dIm9smW6nD3f
zKWWI<@^M_B#^Vs3%ohcjTftP&M?LF1cY4onZTevOh#nS|37%1-5~2H&O?9^w`gQ^*_$d3oRL)@;Q#iom!KDHmi?r`}QLcB7KX;Gk4o*L(cEL9W@8~|X><5qs3~$OmugUS2
zi#h=zD;Bar1OE|Y1!Au-8ca#O*N*6i3@!X`UW7+&kbAPBf22ohv~W!q*R?0Ffa9&a
zJMsD-YNFzbRqMipHsw&{H|-CQDFyv*$c5Tn|0k}xdngIOs`)Q#1ReM~3Q9^s{j)rM
z*~8b^?~#Z>D3qcyIBi19lUcx$rcJ9yJmJ{FnKwuaoQmFBF}EXGb)ZokJGMR`aND78
ze+XY2KTh-KbxyxjkDW@~H+ax{ph>nE=)$MK`=08AvmBIoasAx^>+y#hC_JoR*ehuu
z@p*FS1OUr1>A5Is2jl+{5T1tuAi2Jf+LEkRF+2JGFWx5q>%7PtNL>6}@!K|T6UdCG
z`Y+U}l~MUmF%SkSNb5^w*6X=ccQ`@}TA
zZt(akF(Hg!p=sU#%U0Lzu^c$#58LX6{5KA@wZ`-ERF3EW3JjqLcxsjZw~FIVyp;Q2
zT+S(B$L#e`CNEFSnl1x_ahljj$qKI+YdBqF|SCr_SnQNj8={eAVQx_de=;vZA-_3B1)m$=%Isn
z`ASjwB5=bSA@9-6(+)`yZ%JZVAWE%ePIZGo74r<+QfUX-dht
ziG-2%^4i_QVNTi3wqJez4;tj)&J+n8$OGT~(0xw;5Whm7-;GF)PqBi+i^t_G+sK9T
z)%S0=Vuw;9Z_0noEqmup!l$s}@bf^9fA{qC{F=Vs!HeM*g2Db65Y`bm5-n1u
z<3FS4H({zg6phDwiN~Hs1jyxnZM!EyN}>>kf-3(G=U2~E%@xYnEbxDjqw$rH&tU!a
z3A>fEo3fiA&$A5s=P@1MGI)`OJ(sjAoh*VKg0k#bba!BOZ_ugJtn~hrwpsnWgqaIw
zhT!Y5P@+tJZXw=OUv0Psp-a<8+E1RGN_`y$4FnHyr_m%0(VvHZX-fL%%F
zi7gI)Pq5n*%FZ?Hfo7y_T@i2X8Cfeg>&9_AUfQ6epZAf||D}K3Q$9@+WH`r#w#9_31Re41w{ir}_!t_D`0yDDKVZfZpJ5TzLEW
z%~;eK{?%Elh3eCme@lOUexOYacz)e9ZyE&rDV>e;pVtYrn}aA9S7bdipcrrv_b-9!
zD;KjBG)}TB`YElHh}!Kd$s`ZRDETktR!2;VpGU_21Kz4H=Egk-u5II~EfVo~eiyF4
zQmyG>k$x+&qkQl=jZESoy1P0MR^1`T3ll{mWQC;^3zM&LUuZmWHK$i$)|xqE$M`Y}
zMrZk8Ug#1%bntg6FdXH8H&XgJ!XL%7MnKvGIfgcVWdd?>5dVo4U(8Dq70&e!SE0+m
zXs`LdVO}JP=iAEH)&=aNMw5^VC88U0Q>9+Ej_v#|f*?y8pMYPd1hD8YZyfXgO85TB
z`~H9PVMkiqx>%d=*+T*-CImj?Xa9Neu|XCuzkOEE{eSa3T*29SIm`Bg6r7&m
zzaevCkx!rcPkN2CS4z08cHbvN-pKHMW!Cas<5&B%j@0|3<8boV%f`A*S7tK?nm$m{
zxXn5{0n}&trB0?F2D}A3<%gPlBSef8hyZpFW=D
zbv6Vf=)pBcs#_3McTEu6lKGlVAG4pHDi*lK6cptuY@jcHdra>gX6I-||Q3Xr0pV
zxE`gIear!~t-;PaS>k|NY~dbHo8oAY8kV&*qCH<*Ej)Ot>`Y>CzlY6x+@@L{dkR3k
zs(v8%=DO#}TMP}@%vrwMieHVjP*X##yRMPZ^Vo&u@i-W}*7)2JHCJw~Mc?dtspJNF
z(7m^>km`S3ZUoi*nK+{NWY#`V^GGW~d%q5cS>qjvBO`K&srkc@-Sq^&qY1p=)@ob4
z^v7RL%*&@so<%uTXLa?6ta?T@j1j=Hri)|bx{^$OZw7mKvp}jKB_gZr^SWRm
zSL#jPBQ!?}Kg1hDv*SLyq2+RZhK>fpU0uoXzqTPn(V^#SjUm|zA=6f7T0Fyqy73t5
zA89#RM~6-(ME7lySQxaSA*5*5roSsWUz&Fp2713Hw|P$!N*dmaSpnFf_B)mG`MHv~
zX&}8V*OokbQV0)Ok+E9N5vw|pK@Cp!xt1Nc;!JfBYf^y!{Y0d-fD)=V*Ph6zkQHlDq6~!GSorr59;Q%vvWZRL*P1FI#T3^>M>j>k8A??Vbb|~DH
z;&HrVyawWY)Tvy4i8U?)$Q<1Vldalzs^5lnpZ?cl@vL)GpI}O&6`~_MT-EHo*~u^c
zr62(+>>2&4m-J&-F{7=smX)%e8n{zfjBw0fWQ1MUt6_=}-7l*)&WbUvy3phQl#yiLf
zKWIiVy7jHu%C_!2$+H{jKm9z?8G|^%x9bib!ut_Rh_GUV)K*RjIW{9-@qLx4^OiXo
z&-0PlX6Oif^|+u}yLzp`9$}t&K0K;!({!)#xwMnzz*WPuu+Q?!0fL6eZbP$HW|P<2
zs;H6dt*uN8{^u&gd8aL8PMdFvIT4R-#RL7#YonX5w)2fT&O@xa?VgS#7+fWgo}3Vw
zhzN}>U%X}gbZ(y-NLzTBWpebdO={QL0-$z=o?y>Lp?V<>7><0+PP`L5R%>dC4EbuI
z@mv-eoeyQ&HkQH>tEiuOGF=3!Ys0rCQc`W5%vPqD!q8h0O4GnOK?}>+tgl?m?2_^h
zGhe8f$Y2;P#gguUrtx#Y@AEj)dp3@HZ8y+o1@$9E4_
z8&p`GSMgX`iN-{8S}V;cm4XX`2eg-mPy>&w=XkHDAP_~<+-&XI7QTN=e46)}Yd?3|
zzILFHooPn8dc2i!HbWHFDZ{f<2N5%Xxv0+jhppX
z2f;qtk*?HlEH4Qk=UD7sidQC#+=|d#4ilW&Qcisjtdk-6bcWlkJ<`dcx+be<<|-K#
z$&=&>P6NQ=ZgN`LCtroy3!~R8m#^|C8{u={F%>Jl|RY)uI`lmXc1VT}v9Ao@KCOmTP2_9bG4ahSk*XvNkDO*d5XNN)
z3^ZfIeG=LKx}Q^fWwf%FAFjx65@u
zuXHLp8$JWitJjg6+kKPQPN&7uP9CGQhS5D3H%*4S`
zSb?9h7A}T1SnigXB)STvO>ok!R(W~o>H)sgO+Iw}&6&*_vsJ64+~Wa>CDG_D$NMXn
zZ4$4+Nz~=t&sNBG-MMIoqnlT_A2s(PWN#S{0X}}4;G(<9{l@hUYIi$$xs7^!xyb
zo|6xbZn09L-)zW9#f9Y|DAxd4WQbfRCsnm!bWFBh6Q1iNx*JaeGfn{Ck=l@(i1T
zNk`=;kkzNQ-#Y^Xi8?g`TCOE;mQZWfoQe3^=HGT~?>mGO5%KFI5ryw?x*l3{5}@j;
z7tJ+!)Kub$6Gp(;{R$j&pm%U
z7qwfA8#UO04Lx21L?WSwyp>!F-O~IQeWZb0O?)x)45HJd1gC>=*{^gm*=QCM*1;6c
zS0ChY^$!y^XMG*xait#w-L7l$PLh;4GQXq+?~kZ)J-^3Dh`5sWVrb-5@*J|EGHI@`
zrNxE*`nPTxc4IQuYt-EoW2&J?Ey$iznKH^h#awm`=1&_Mtjn`B7&3C$lu=4*@3a`2
zjFHL=VYE~hZx$j<`CMT=o!v3}-i3FGC_h0@X;?GZihLMRZ6wVMT=>mO6tWJ867`7k
zsB6;Mt-PD-R57dFzcE+4vfSP`ST7Zit;~?>h6x*$78L|IY*MS#+p|hbzUl5$ehjn%
z|4dJGieIUk*y!QB_%weu+*G?3K>007Naq@3{!t*EzmM1Mi}iAd)A8nrOIAMUvgKO2
z@mv$1O}Y+esOg-=qs0JgezoS;*3oK*re&yxJ-=4%9%t_lG6)S1W1eZa}addg>q|-@Wi;3!UhR@3MK4E*X0pxHjP;W_b9LDi)HsWmF%Kf
zx}Nvt$cJ9#ux>{6e9Q>k&hH@jAAsGTJpA7f-v9e=NX4D7R4zxOXYnqwyKuEj!+=>w
zzu>PQ!`0~jk8ra6pD(-n4=?o}g6jXn2R*9Dgor)Tuh6Iuhkqp}=2J^hmUNB=9CnFN
zf=wv67!WNn@1}-u+A^fx=C*n`-QDPeeJ5$wGILfPp5AFE(Ex>+N2+R5D#;m6_YuGy
zEn0Y-w|V9Z3KE`Iv=F4j+Rv395oAZVDv6hRlIb(zKR_-wjqk#S6H#vZMtGbU#jO%<
zLtOAMX1Uq0>wE=Ypv&^-d@1$wBl@xYEn4Uh)xF&(FSC4nmF6tE>U&Z!ecknSJe$NP
zI+rR#Z$M0iSugZt>j`6u`37PznFFp;h7ZMuz-g_)U6J#`lccT6E}%Wx4#&go#O-$~
zE0#k8-0JT%?J&f_1RqSAZ2hJ9Jvs8lH-@vZwYRjNty9I*c+DuHK27Sckt;9jqY)RI
zCW|NWU}HuhT^mm*U0Y)e@;G4~KO{LD^#kehhUvX=n`#2LD~j|FK7>K3qOwvCGMeO=
z2nb}?UgiiBb`RR*{kYZG}JHHTj4s+_E^CVF*c~}ed0xpM%-1smXyNY
z+De{ai4pzo7sZr9_`s4mF6PGc`N)#ZQ%cQpwRUMMggTQnH+5o@9ukfQD`^KxQ%Hkl
z1B}zd#Vd^5p^i*9#%Hp!-WNbkP;k!Pcq;-BthnIbsXN43s|DyRvbS{dUM>1n1_X{q
z@)`IiK3w14>5ZGK_z-6{uFq7WJS}L4emt`H1(BcwhUf?<499AMie{=qMCG-|W$LYg
z1ifVgi=Yt?ptw~LZsamZCO}FO{D9HlA#szZv)k1jND3>mY9YO1J!p&G2
zVlgdc9s2sc-wFVh6yA>Dux
zO{Aw9$C}{Mo5LyB|NNd#V+M?d0V14WvBLirb)r#%1UoU2J?NEd7yZ5f6VAh?);!xn7?iFV
z6=-<@drmHz6GEAx30oQIG+nYEqPg|0=c5pVJ`$7KS7ws>JB;K6*}V7<^eJ{LVt
z%>EE;h0%j%{*GL`y#Eq=JV(&Le_4jV#Ja)B=eRA5g}qqyQXUBWr-{gaF}wc!QB}eY
zC7^WB(V0Y}qR9~|HM;*ejt&@p0*pB<>_h*ea>36Bcvq~zz$`j&ZXGRRVS4#8EQgYC
z!>~_a=NFawEDb%b2osO&*q6=i155|~vtJV_B%!qt|}Jcxb7Kk%o!8uPD3Xo4mSm
zKO~AA^tuPd6>i;9&qLn3`EKC;ziNYl3*!J6Ha8_Njlz(#U-zKAN*lB$1!!x#+!VZ?
zSJerxsSI2#w5X|rQ|GNHc8*%z0c)fDqrmg~g*l2tO4fxL0?hfpjI-KD5xVw@7GoJ`Y{mJ!?iwNZQF7e?>*Raxfzd*s}N
zUgOev5_97XE?(7Io6_B<{)bP4c3C)eIlaeboe;
z_1!pMx9gUfL>ITH>$nefb2fn9*f%qEIo0Ajr|u-AEU2B0uohHlfUoZMs%1TFy?i
zIU%#YN*ByOJFU2M!t~yk~1$u
zsU_CaB~6Pvi@_|5tD0ep^e#T8s_7wa4~vF5=g!$V4<;xQcl0}TQaE*!yGO5~IXy!8
zIcXlH!X-L;Zey)@iwJx#!=axVKALs<9p}`
zl-|eFEEav1N`Abd;L9iQ?}`sWmct2w3%wK&f>npFCzt2T+_Vhy?gb;>wdEE=Tl~J;U
zjN4b#T?n$31*taT(VTH@l-1XNGM@h^d}G5#wZZ6zig*uN%w*3iq$G-+F`@|LQA%2{`DMyZPf
z+^&eOo*$=8%Z;&kJsuw&7VQPQm(U8h-$-90_L4i~3ZJ9Jg>XBPVf;O#9X3nRMfFI^
zdN~L!5Y&=4?bvC>flPQZeo8E!;-ETqtL0pIZ?QNPzIIv@B`9+2(AHij-oirI06xdr
zQW$904VqR?2>h|q9Dkpp#=ybyQ!+7v*2>a>VVh}}SA<;IJgd0iL2+MS>aJ3Szrl8^
z<}RsciPtKkns4LCL(es>F6+#AyF9lp67MyI_nouO^{X-U;`qp^U<>y1D{eOFw){@D
zeO&zy5(08?Ti2j&I~SmFh>WRePyO%kfMV;2={U%ZZ@Kz{J$&PjHplKj*4fia(*gz1yv}HX1;{BQMN?M|&3oTO@=Z02QB
zu{qYylHsIsA{nMtIdx@|Mss^kkno_DL{1^&Eb?d*2ckX|!V|N%V-e+TghVZ+hI#q8
zm{RP%O+u}oXsT>i&}D)!7Q>XZxvi$TMhjMg=_%Qs3$ps0>|n~!v^*d+=-r{$5z|P$}mC#s;@?%toNN+2!T)d
z)zoDVS$daI#3c_wW7&);p~sn=%Lp02+t}a)VR;b~I#h&s<&Xf{ZT3&rGSm*k)fz6|
zx0rb$EeDUHrz#0_KI5+(7?`oTk0K9rR>~wTT6%@OoABQH%x&^32fgAT92<8sdE&et
zsIQ(=JY#DZ;#kF7I_Lh$^zjF1mXT|YWbT6}kwiuHO6t-B#FUo1O^A+A_|ipxlJ$_g
zCnp;_#wku|KnLxSi|eYjMWLOo)(ydq^-^UJr!~_Y@Pcq?Pp)QL3!9AO5hRvqz&d@g
zc-^#$#`QEnES#}xYGRE)FjB#jUZrJO3%=}0X^}jPu|RM+MTm7yiyWFFqBe7xRd9t3
z9wN^=m{g81#9FldVe2xh_(^K{)AskUz5+twdCnw^mo-`s;X(AJj%(|rxggePT=V)U@`NNbhy(
zXEm6s!bofa;UI_a^q$PBJr?wMu+ZL^_(&l~GYYO?=|;XtX2hU^1FU+emL|~1?p^hp
zPOiVVIv9t#0B9OqC~zh1gi^?Ib8Ozi;%CzHwYIl9&^=&jD*Xw?uv}
zYaVCg602USIu#`fM&;zrP3dRiWPT#oLEi(^6VeP^mEeI`v4>q1vU@!}6{9s$K2G^J
zF8}^)9EJh*zyl&U^%k+bZdPgo(x|;<+j38bFDRyh9+UL~#gZWvF$A4lmPaaY{8H_N
zOiMa;_U~=7t59f!d;-0t4xHWwDohIq@zGKcw9URwyUy$XJobf~b}P2@d#S_q+`$!b
zxs?_gT**)2{ZWefl5(ASKSqvpoCCrQQ7Tl>?zcAxl&%$3raBh1iaX@WMC-60J}3M7
zDB5zbs)GZ}DYl{yKvf%so7kq^!zJUeV-tc*8fvbPXRwZaEXr^qUVG=cN0c%GmE0dB
z{QEjNPbSo{5}{pMqYvnz`eP>gY=4mI`f)z7lkz~ph2$3Dj&q3AKlmHVS)04-#VA{L
zR`W_vzV^jY+mPTeQ?ZLqjx;?vo{R2@yvwX7DBP&ZFNst3_bL58cX6MK*#=B-;)h-u
zE{jsj5X{2+=2;LU;+>)4O7)0%M!La^TLocPOHfrv~2?5${
z*4QjV`CbjHaTdoPZXn8H8LDNh`Dd$5rNc_~fD^KQq)G{ohriaiEX+a~?dkBE-nV%Y
zg-XmDzKSEwZJP-`q<1IHYEI0-T{TPh)XAIr`yqswU0ksilN(pDQc;it2J0Uf=B*xc
zX9vC6&1~HRCM*1~9@Vgnf$bRGC;g#0nBh3cPTjH$K8;6AWH?3|XIdBy|GKI3tN8?y
z2sVRZDiSEsbV``KKz0sg!x7C^ggXXl-doCG{0bYUsI~4*Sy+C%NlZKJRq_uzRny3T%!THezJ4n!A=kY>Vx^-EG?63m|qJy_j}b-a#~
z_nh{3@Ch`Z?si>+^h*#zV=op
zuhbN=Mi;F1Ha7Kl-n$d9ESmjt!VT+z$O?vM=>+k%eCSb|Q1baiO?BC9WKuS@%wUC#
z)AOv}Sk4c>t0`WrrHKV@`pI#NAx`
zwyQ*$s@PmnxNUalMb;E1|#d3dVuaeq-%d`9?<*g#m?kk{$ae
zWOw=SCdo?GEC}qt*n*pwi0+4D+3~c=2ved5n(~H0^rUz-_65tPQHx>jGyoneaq2rm
zqez(y__nE?{iDfeXdZM8a|^AwOYY)=QN9RgcW&hk?y-t*BoO68MINdZ0(8u_fet~c
z6lk1cZb!q*bz^77bB`*!HR0mNRjW?mnx7}%zeJeK$*Ec*%4z$K_0h)nhH$c3qZ@{{
z+Ei`a+|}QlsNjDQP{QR|Z_YOjgW5~qx$CzLQF47-Q;?@XN_?Qg=$)zQmvJY^-7QFN
z->}=L8qGuN8>bFAkgN9kfD*laQ9+dkt*53gkZLkwAE=WxZIoAhXpN9G+KNbx`kopb
z3RWPZKbVBoT!DhWf!^&{3vf~n0xj0HHhPg|Zk8>{Q+l|~z*=-=sa2^Sx8f7XfkaM<
zQ9A>~79lcCD3LAmZE0f(ljCS8)eEwUFf4p6?`>tdE0xAFq|NoV6u5P2-=w2XVf0iJ#)t}FDg9MlV_{FWZ^bm$
zRmXTt%%!p^s-g$>VHwT_{g;mGLCC&pQ_z
zb0v_YUve7C9?$F{h#?|m1ybaosbj*?fuOd!)Z}giGROUtNp#iuOi=e&NbrnRMr%g~
zZB9DGU9^G4K7~OTZYuWPa`m0&RQ)iino?~85==RIk6ZjkTddg~ertf-V|zG%iVE
zhdyd9`CU*|{ES5eTl91y_O!Z11~0{9YOq(xTD~pMuT`Q^L{NKT6Ug7cocU@=g+($%
z2DV@7E}T=&Ta_TZ8yKjAd>~aTK9aS4`e|xeQT>G|-p5G?VL!U<0>47WxJAl3>3hl;
zR8^oCq}3e3?Pjj#>26SB@j;IBbz%L^_^iK%f#EFmE4fS@)1nCKoH;=`?yck42RvQ`JPl48zpA=?BZN*2d2~%}){9
z8iwb+*I2oxqodxFw4^29DeHx(IIzceo#bG?5=6m?e=V
z?((84%X8N)qcS?pV|r#34lE)m)1j>sW5Na#t1i}&36PLc)C%EHmA2+B;?=Hs#bqDD
z-?wum)5PJcSh8N4uw(4{CXljuuApG~?io;SHn6KFe>03-^YhAXZ7O{?A&T3`U*lF9
zcV&u_>zAR4?Iw_f6vf@K)7?X-s$>_0dBEZlOC3oYkL^JIF_N}c?(}X6NrTjp7_KyU
zU+{+{?h)n*SKcCK+oc&M4B^bW_;=+7g?A8goIj{Nw%8f3I;{FuCn{pfe~{0W{4|W7
zt8bj8rJ1mWEJbb^3O*b~Mm>Du$Ox4v8EU2$j-@gwzv_E4zChSj
zE_z7Wc7@7tG>JnyFVObp_;#69B()RDiQROTe*%zee!0l?hmpyi%J%gQ#!7QEopruR
zm>d5EPx7WAyq(>k}~|Lfc!vvXv4o?^dgh>0bP{KF_OeCr(Fk||
z>|{eLu33O$N$53O+3~@@`YNf0if^mfxUzY}Nb#yy`Qb<6)d&3TfkxTOHyCp^J&zPq
zMrVBFrM_FBG*^Rx+IgDJQ-jJ}!{X);BoZ8Lyjo}KxhS}B)cBx-k62|;m9Gia9|qg(
zlyq7UNbaEeG5l)9pvF#x#&){LtLuBP>WN|bobK48R<4w*9{lG9=RTxqmvWKz>kpb^
znHTJ?^UN+jQbuT^>Ur*2sFe6@tn}0Fo|U4{MKk;i9>N)KWS$Q+DJ>cMk_6*nbik=W
z+edn!nWlJWrgQGq0ObkHc?U(f2zj?{9kDTtXPss^=A7Z#5rq$~+~cSDk=2^0J>Kg^
z-%b6`wB3RSPI7bYDss~iWPwOA9NuY)KZn9HiN;ot1*-Uj7{f!nmcI6v38<`f1!5!Ro8tVDCEQ>_@%13GRj9Dr-M=?_`=(e
zZN8r+e+;ET?)@BL*?=LD-da?I+%ifUxxO_;7r@iS5cHKp`i$wMS5y9g0`x5p2d6TR
z_hTB)h3nf>oo@(ub5UMNxg@ETY(4t4d>GLM1V?XYo6N?TvM^D(FN0+%Pr2!L9JuiA
zzhaa12((?y62vTBD--c-T|HY|GU5s22?w6$>!-b@NS?*m-lmm_YI&_N2Uz-=#v=h9
zW7kFuvX{8`13`3?V0B7#Dl?jrq5;8rj*<>O%r-UnnaxE7K8HtA(=E
zkgq%w)DZ9ydPHT}WLdV)S%T9)UV28R6fo+sgn(h2NcYxEPr9#tt_{DGeULXo&U?m#
z0`p6Ez@nMV%M)KRJG!4?qs(bLg>mt77``-AE@CsLz)b2Z!n!AW|2v>bo!k=o&P_v2
zm+-SGCTzojHHohHcuVht=plc~3LnrxaokDx>*JvXE4uhIAVf)ye{$)p#ZDdkZC+;m
zk>Xz$ItsZ2&=|eU2w$v!0ZI`;*8%xcJ-f0l)E`NFHNp<~v#7ED4Jf_)4?TdmasQu^{TwdLBd$Ic%SHkpA31?!ljdBTrK6DasbcBK{YsbsH}Jf_*{4&uAqn
zO9W-oUL}d&a{n9C3cM3Ha2e=1Q~ACd;)Bn1f?O3U9u)sR7&mrDbK1~8b9gx4(B5)1
zMwQcACjyW{jPwi+c3l@n*Y>LlyTZ%F5ksISp&1W?q#>bXD8>TUzU|7`W6l`xCLbZBxq@HMp#v_ecjcPy!NXwJ%g9+*+xNe
zY_+L=v9lK{-at8fGWD9*%)wt<4)rfQ)_EO&A-5JZWz7cKX{D(#J^q#49s{m(Ls@sHO{;m
z@IGwd@b2Ku*4)oPk@n1)IMOP_3}tdD~(2+OU2V+^*_sXXDx77);6BH
z-j??35+hiAAU~thkyNYeQ&%fa#(_tW}RH9E(F%nNqgY`lP<}{U274`wn&^HC&!d!whFL5wLFQvD#v^ulTHXZJ0
zV}V0uF8Mo|vC9y0aew3>bU4WQQXr^>zi${oNE-0JWda$RG6HBqnt*#PLE-K{id8e;qK3P9o5q3
zW}})}N^UJe^!@fG*9{K^D%6ogne0~qa+D_v2s1SlwMZX&!e@jZ0?iicI4syD250FWs|c`_}i4PbVa&O)tA3ogHNv@?p}up?L)imf|AfJlUTJhcpW~nXXJKUKR($VyS3bURE2QK=7ZLl{PSQ*{`m*5&JbPX^svnQo
z0v*Zz*Jcuw*}edfEGQRAhKh29(IfAI=C%J#mT(_QZE;nX1hDwk-#9=^uxFdB37e$A
zS=yqH8?i_(XtwMi;{xJ8+eZV+*8M_~9?jpXmS&%L;y<(o(|`8R|9tq=`UE!}a%hO^
Tsvz_V_>mBi7A_Ie@%}#mc>Zrs
literal 0
HcmV?d00001
diff --git a/docs/src/assets/v5/use-token-example-image.png b/docs/src/assets/v5/use-token-example-image.png
new file mode 100644
index 0000000000000000000000000000000000000000..ebd5751bde9b5aa5a8733b1ba8cccccc55704070
GIT binary patch
literal 31708
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