diff --git a/.gitignore b/.gitignore
index 27ead18a940b4233db1131f85560fdc5e75e4427..a90d5f9c04bebccc85b585bd225256243b9d5e25 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,4 +8,5 @@ TestResult.xml
**/bin/Debug/**
**/bin/Release/**
**/obj/Debug/**
-**/obj/Release/**
\ No newline at end of file
+**/obj/Release/**
+/certificates/SelfSigned
diff --git a/AssemblyInfoCommon.cs b/AssemblyInfoCommon.cs
index a1a05ad0c4e8d0164cec0002bf568fb3bd436a97..ae87dfcb933ec9436a773f2d00774df2c17c6f96 100644
--- a/AssemblyInfoCommon.cs
+++ b/AssemblyInfoCommon.cs
@@ -12,9 +12,9 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("Release")]
#endif
-[assembly: AssemblyCompany("Digitaliseringsstyrelsen")]
-[assembly: AssemblyProduct("RASP .Net")]
-[assembly: AssemblyCopyright("Copyright DIGST 2007-2017")]
+[assembly: AssemblyCompany("Erhvervsstyrelsen")]
+[assembly: AssemblyProduct("RASP .NET")]
+[assembly: AssemblyCopyright("Copyright Erhvervsstyrelsen 2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/AssemblyInfoFileVersion.cs b/AssemblyInfoFileVersion.cs
index ecd6296134f7008aee202bee080d650245794e00..b028aaebbbcb5b719730a419b7b35ca3ff84ce5a 100644
--- a/AssemblyInfoFileVersion.cs
+++ b/AssemblyInfoFileVersion.cs
@@ -10,5 +10,5 @@ using System.Reflection;
//
//------------------------------------------------------------------------------
-[assembly: AssemblyFileVersionAttribute("2.1.1.65534")]
+[assembly: AssemblyFileVersionAttribute("3.0.0.65534")]
diff --git a/AssemblyInfoTitle.cs b/AssemblyInfoTitle.cs
index 41bec2d5ab57336883d3098e3d2df105d29348f2..768bb3d4ca476ddef94a2f1d9b9d899c45534d09 100644
--- a/AssemblyInfoTitle.cs
+++ b/AssemblyInfoTitle.cs
@@ -10,5 +10,5 @@ using System.Reflection;
//
//------------------------------------------------------------------------------
-[assembly: AssemblyTitleAttribute("RASP.Net 2.1.1")]
+[assembly: AssemblyTitleAttribute("RASP.Net 3.0.0")]
diff --git a/AssemblyInfoVersion.cs b/AssemblyInfoVersion.cs
index 6885440c1167769c91d45ad0ba384d7045f65616..e6ef6a8ce8c93656fdc206c44bdec4668fa3201f 100644
--- a/AssemblyInfoVersion.cs
+++ b/AssemblyInfoVersion.cs
@@ -10,6 +10,6 @@ using System.Reflection;
//
//------------------------------------------------------------------------------
-[assembly: AssemblyVersionAttribute("2.1.1")]
-[assembly: AssemblyInformationalVersionAttribute("2.1.1 Dev")]
+[assembly: AssemblyVersionAttribute("3.0.0")]
+[assembly: AssemblyInformationalVersionAttribute("3.0.0.65534 Dev")]
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000000000000000000000000000000000000..80d840dde3e372c35cba814bdf591c11cbc4e494
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,5 @@
+@Library(value='nemhandel', changelog=false) _
+// code in https://rep.erst.dk/git/nemhandelinternal/nemhandelsinfrastruktur/-/tree/master/vars
+
+oioraspNet()
+
diff --git a/MSBuild.build.bat b/MSBuild.build.bat
new file mode 100644
index 0000000000000000000000000000000000000000..94acfa84edf3ae0312d7c423cb40b951edc23ec0
--- /dev/null
+++ b/MSBuild.build.bat
@@ -0,0 +1,9 @@
+REM set __msBuildDir=%WINDIR%\Microsoft.NET\Framework\v2.0.50727
+REM set __msBuildDir=%WINDIR%\Microsoft.NET\Framework\v3.5
+set __msBuildDir=%WINDIR%\Microsoft.NET\Framework\v4.0.30319
+
+call "%__msBuildDir%\msbuild.exe" /target:BuildAndTest "MSBuild.build.xml" /p:Configuration=Debug;FavoriteFood=Popeyes /l:FileLogger,Microsoft.Build.Engine;logfile=MSBuild.build_Debug.log
+call "%__msBuildDir%\msbuild.exe" /target:BuildAndTest "MSBuild.build.xml" /p:Configuration=Release;FavoriteFood=Popeyes /l:FileLogger,Microsoft.Build.Engine;logfile=MSBuild.build_Release.log
+
+
+set __msBuildDir=
\ No newline at end of file
diff --git a/MSBuild.build.xml b/MSBuild.build.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a864eb0fd6b31b36843e709f494bf550f70aafb4
--- /dev/null
+++ b/MSBuild.build.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MSBuild.build_Debug.log b/MSBuild.build_Debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..9d48093ff1ad1798e904f84bec1df218c2aafcf4
--- /dev/null
+++ b/MSBuild.build_Debug.log
@@ -0,0 +1,19 @@
+Build started 04-02-2021 11:49:16.
+__________________________________________________
+Project "C:\Users\kristian.sorensen-bo\source\repos\dotnet\MSBuild.build.xml" (BuildAndTest target(s)):
+
+Target BuildAndTest:
+ Target Test:
+ C:\Users\kristian.sorensen-bo\source\repos\dotnet\MSBuild.build.xml(16,3): error MSB4036: The "NUnit3" task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.) The task class is "public" and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with in the project file, or in the *.tasks files located in the "C:\windows\Microsoft.NET\Framework\v2.0.50727" directory.
+ Done building target "Test" in project "MSBuild.build.xml" -- FAILED.
+Done building target "BuildAndTest" in project "MSBuild.build.xml" -- FAILED.
+
+Done building project "MSBuild.build.xml" -- FAILED.
+
+Build FAILED.
+
+C:\Users\kristian.sorensen-bo\source\repos\dotnet\MSBuild.build.xml(16,3): error MSB4036: The "NUnit3" task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.) The task class is "public" and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with in the project file, or in the *.tasks files located in the "C:\windows\Microsoft.NET\Framework\v2.0.50727" directory.
+ 0 Warning(s)
+ 1 Error(s)
+
+Time Elapsed 00:00:00.09
diff --git a/MSBuild.build_Release.log b/MSBuild.build_Release.log
new file mode 100644
index 0000000000000000000000000000000000000000..72fda28628d6bb16fbab6af4e15583f09c70f570
--- /dev/null
+++ b/MSBuild.build_Release.log
@@ -0,0 +1,19 @@
+Build started 04-02-2021 11:49:16.
+__________________________________________________
+Project "C:\Users\kristian.sorensen-bo\source\repos\dotnet\MSBuild.build.xml" (BuildAndTest target(s)):
+
+Target BuildAndTest:
+ Target Test:
+ C:\Users\kristian.sorensen-bo\source\repos\dotnet\MSBuild.build.xml(16,3): error MSB4036: The "NUnit3" task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.) The task class is "public" and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with in the project file, or in the *.tasks files located in the "C:\windows\Microsoft.NET\Framework\v2.0.50727" directory.
+ Done building target "Test" in project "MSBuild.build.xml" -- FAILED.
+Done building target "BuildAndTest" in project "MSBuild.build.xml" -- FAILED.
+
+Done building project "MSBuild.build.xml" -- FAILED.
+
+Build FAILED.
+
+C:\Users\kristian.sorensen-bo\source\repos\dotnet\MSBuild.build.xml(16,3): error MSB4036: The "NUnit3" task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.) The task class is "public" and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with in the project file, or in the *.tasks files located in the "C:\windows\Microsoft.NET\Framework\v2.0.50727" directory.
+ 0 Warning(s)
+ 1 Error(s)
+
+Time Elapsed 00:00:00.12
diff --git a/NAnt.build.Distribute.Signed.bat b/NAnt.build.Distribute.Signed.bat
index b7d5e7f0e1e2d6e232ba2fbc09e621681ec5e0ab..a031aa3a7c4387183263b7d43d1672885dee5173 100644
--- a/NAnt.build.Distribute.Signed.bat
+++ b/NAnt.build.Distribute.Signed.bat
@@ -24,7 +24,7 @@ set PATH=%PATH%;%msbuildPath01%;%msbuildPath02%;%nantPath01%
REM NAnt log fil can not be savet to folder target/temp.
REM NAnt start by deleting the directory (including it own log) which is not good
REM And on a clean checkout, the directory does not even exist.
-nant -D:build.number=65534 -D:buildType=Dev -f:build.xml Distribute -logfile:NAnt.build.log
+nant -D:build.number=65534 -D:buildType=Dev -f:build.xml DistributeSigned -logfile:NAnt.build.log
:EXIT
diff --git a/README.adoc b/README.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..dc77218d94d0be78b12f5401b61171f16d01f4b2
--- /dev/null
+++ b/README.adoc
@@ -0,0 +1,24 @@
+include::doc/_common-settings.adoc[]
+
+== OIOSI RASP Library for .NET
+
+[WARNING]
+A security issue has been pointed out due to old versions of the Log4net component.
+This issue requires a HotFix presented in *2.1.1 (Log4net Hotfix)*. The next stable version: *3.0.0* will have this issue addressed.
+
+[options="header"]
+|===
+| Version | Branch | Release status | Description
+| *3.0.0.RC1 (Current)* | *master* | *release candidate* | RASP version 3.0.0.RC1
+4+| xref:doc/OIORASP_Library_DotNet-ReleaseNotes.adoc#what_is_changed[View section "What is changed" for earlier releases]
+|===
+
+Nemhandel OIORASP .NET v{versionNumber}
+
+include::doc/OIORASP_Library_DotNet-ReleaseNotes.adoc[]
+
+include::doc/OIORASP_Library_DotNet-InstallationGuide.adoc[]
+
+// include::doc/OIORASP_Library_DotNet-ReleaseNotes-CacheOverview.adoc[]
+
+include::doc/OIORASP_Library_DotNet-Tutorials.adoc[]
diff --git a/_ReadMe_GitHelp.txt b/_ReadMe_GitHelp.txt
index adb22b22660df4838e6d24099fc1c452a5fe34e1..2f15135bbf3a57dad38ef5366d12fc0f817f2fc7 100644
--- a/_ReadMe_GitHelp.txt
+++ b/_ReadMe_GitHelp.txt
@@ -5,4 +5,4 @@ Init the submodule and clone the code to it
git submodule update --init --recursive
Update the submode
-git submodule foreach git pull
\ No newline at end of file
+git submodule foreach git pull
diff --git a/build.xml b/build.xml
index de619ab199c1bed5fe7512ecc8c92074141ccbae..942f53429ddbfa18582366cc98c011ed1d7b5f2a 100644
--- a/build.xml
+++ b/build.xml
@@ -1,426 +1,485 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Temp.NoSign.dir
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/certificates/SelfSigned/_ReadMe.txt b/certificates/SelfSigned/_ReadMe.txt
index d76f627067b9d5657861405f4a10cb4e9ed33360..a21120058f8cfc87ba076bca372b62ecaaa864ec 100644
--- a/certificates/SelfSigned/_ReadMe.txt
+++ b/certificates/SelfSigned/_ReadMe.txt
@@ -9,5 +9,3 @@ Then create the selfSigned Software Publisher Certificate (SPC):
For the build scrip to work, the Thumbprint of the certificate must exist in the System Enviroment Variable
Key : DigstSPCThumbprint
Value: 42e8fb16960b7533d84dc4a5450a0eafe96235ce
-
-
diff --git a/common b/common
index 68cedda61fcbc2e27b952e3d5ebacc8be5bbe3eb..7f4d7cab5118a7094e64b865740a881b3942c992 160000
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit 68cedda61fcbc2e27b952e3d5ebacc8be5bbe3eb
+Subproject commit 7f4d7cab5118a7094e64b865740a881b3942c992
diff --git a/dk.gov.oiosi.library.sln.DotSettings.user b/dk.gov.oiosi.library.sln.DotSettings.user
new file mode 100644
index 0000000000000000000000000000000000000000..0410316ac0057b60eef1e1ca70ca9c54a0399cff
--- /dev/null
+++ b/dk.gov.oiosi.library.sln.DotSettings.user
@@ -0,0 +1,37 @@
+
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ True
+ True
+ False
+ END_OF_LINE
+ END_OF_LINE
+ END_OF_LINE
+ END_OF_LINE
+ END_OF_LINE
+ END_OF_LINE
+ TOGETHER_SAME_LINE
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ 160
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
\ No newline at end of file
diff --git a/doc/OIORASP_Library_DotNet-InstallationGuide.adoc b/doc/OIORASP_Library_DotNet-InstallationGuide.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..533c77e849eb69039febadac971a31105f8f1cb3
--- /dev/null
+++ b/doc/OIORASP_Library_DotNet-InstallationGuide.adoc
@@ -0,0 +1,98 @@
+include::_common-settings.adoc[]
+
+= Installation guide
+
+== Introduction
+The OIORASP Library for .NET is a Microsoft .NET-based toolkit for implementation of RASP (Reliable Asynchronous Secure Profile) compliant business applications.
+
+*The current stable version is: 2.1.1*
+
+This document describes the steps needed before the RASP Library can be built and used.
+
+The library can be downloaded from https://digitaliser.dk/group/405467/resources (Compiled Library) or at directly https://rep.erst.dk/git/openebusiness/library/dotnet (Open source Git repository)
+
+== System requirements
+
+In all cases the following is needed
+
+* Microsoft Windows 7 or newer, including the latest service packs
+* Microsoft Internet Information Services 6.0 or later
+* Microsoft Visual Studio 2019
+* Microsoft .NET Framework 4.6.2
+* Port 80, 8080 and 8008 (HTTP) outgoing open
+* Port 389 (LDAP) outgoing port
+
+To host your own RASP HTTP service you will also need
+
+* Port 80, 8080 and 8008 (HTTP) ingoing open
+
+== Install Package
+The OIORASP Library is distributed as a zip file, which should simply be unzipped into
+any folder.
+
+Note that projects within the release pack cannot be moved from their internal paths relative
+to each other. If so, library references must be updated.
+
+The zip-package contains:
+
+|===
+| lib | External libraries used by the OIORASP Library
+| samples | Sample projects
+| src | RASP .NET Library source code
+| test | Unit and integration tests
+| dk.gov.oiosi.library.sln | Visual Studio 2019 solution file
+|===
+
+
+=== Certificate
+New feature in RASP 3.0.0 is that each .dll is signed by a Software Publisher Certificate (SPC).
+The Danish Business Authority has purchased a productive certificate that is used in the release cycle.
+If you want to compile a signed code yourself (using the NAnt script), you must obtain a code-signing certificate and follow the steps in xref:howto_codesign["How to release Signed RASP .NET"]
+
+=== NUnit (for running the NUnit sample test)
+To run the NUnit test dll located in the test folder, NUnit needs to be installed locally on the
+machine. When installed the framework can be used to run NUnit tests and develop tests in
+Visual Studio. Follow the two simple steps to install NUnit:
+
+1. Download the newest install version of NUnit for .Net from www.nunit.org.
+2. Install the downloaded file.
+Now NUnit tests can be executed from NUnit which is located under
+“start/all programs/NUnit.Net-version/NUnit.Net-versionâ€.
+
+=== Test endpoints
+Test endpoints can be found at the following location:
+
+https://www.digitaliser.dk/resource/6141046
+
+[#howto_codesign]
+=== How to release Signed RASP .NET
+Work has gone into make a signed release of RASP .NET. Accordingly the NAnt build file (build.xml) has been adjusted to handle the signing and strong naming process.
+
+These steps explain how to setup a workstation or build-server to release a signed version of RASP .NET 3.0.0.
+
+. Add (if not already exist) to the System Environmental Variables:
+
+|===
+| Name | ERST_CODESIGNING_PASSWORD
+| Value | PK of the desired code signing certificate
+|===
+
+. Add (if not already exist) to windows Enviroment, the key and Hash to the certificate (yes, the key start with '-'):
+|===
+| Name | ERST_CODESIGNING_CERTICATE_PATH
+| Value | Path to the certificate
+|===
+
+. Update the file './../NAnt.build.Distribute.Signed.bat', and set the desired build number.
+
+. Run the file './../NAnt.build.Distribute.Signed.bat'.
+
+== Verifying installation
+To verify that the setup of the library has been done correctly it is recommended that one
+compiles the RaspClientTests solution and, tries running one of the test projects such as
+dk.gov.oiosi.test.request, or that the dk.gov.oiosi.test.nunit.library project is compiled and
+run in NUnit.
+
+== Uninstalling
+Uninstalling the RASP Library is done by simply deleting the folders into which the library
+was unzipped.
diff --git a/doc/OIORASP_Library_DotNet-ReleaseNotes-CacheOverview.adoc b/doc/OIORASP_Library_DotNet-ReleaseNotes-CacheOverview.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..92dd8f6c197e86c5e371920d2a955585f50d29d6
--- /dev/null
+++ b/doc/OIORASP_Library_DotNet-ReleaseNotes-CacheOverview.adoc
@@ -0,0 +1,17 @@
+include::_common-settings.adoc[]
+
+== Cache Overview
+[format="csv", options="header", separator=";"]
+|===
+Cache name;OIORASP 1.2.3.HotFix1;OIORASP 1.3.0;OIORASP 2.0;Proposition to change
+LdapCertificateLookup/CertificateCache;TimedCache - 14 days;TimedCache, 24 hours validity, each 1 hour check for expiration;TimedCache, 24 hours validity, each 1 hour check for expiration;Limit maximum number of entries by some big value to avoid OutOfMemory, use LFU cache together with timed cache
+OcspLookup;TimedCache - 1 hour;TimedCache, 1 hour validity, each 10 mins check for expiration ;TimedCache, 1 hour validity, each 10 mins check for expiration ;-- // ---
+UddiLookupClient.getServiceCache;TimedCache - 24 hours;TimedCache, 1 hours validity, each 10 minutes check for expiration;TimedCache, 1 hours validity, each 10 minutes check for expiration;Critical! If we do not decrease it, NO changes in public UDDI can be visible to clients during 24 hours.
+UddiLookupClient.getTModelCache;TimedCache - 24 hours;TimedCache, 24 hours validity, each 1 hour check for expiration;TimedCache, 24 hours validity, each 1 hour check for expiration;Barelly used at all, at least none in TrueLink subsystem uses it.
+SchematronStore;QuantityCache - 2 path entries;LFU cache (max size 20), no expiration;LFU cache (max size 20), no expiration;
+CrlCache;Unlimited hashtable for each CRL url, checks for expiration each time it is accessed, updates in the same thread where it was found that it is expired;LFU cache (max size 10), if failed to update - reattempt in 5 minutes by special scheduled job, which is started after each successful cache update depending on revocation next update date from CRL server;LFU cache (max size 10), if failed to update - reattempt in 5 minutes by special scheduled job, which is started after each successful cache update depending on revocation next update date from CRL server;
+SchemaStoreCache;absent, Schema object is built each time when required;LFU cache (max size 20), no expiration;LFU cache (max size 20), no expiration;
+MessageIdUnfinishedSignaturesCache;10 minutes;TimedCache, 1 hour validity, each 10 mins check for expiration ;TimedCache, 1 hour validity, each 10 mins check for expiration ;
+SequenceIdUnfinishedSignaturesCache;10 minutes;TimedCache, 1 hour validity, each 10 mins check for expiration ;TimedCache, 1 hour validity, each 10 mins check for expiration ;
+|===
+LFU: Least Frequently Used
diff --git a/doc/OIORASP_Library_DotNet-ReleaseNotes.adoc b/doc/OIORASP_Library_DotNet-ReleaseNotes.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..034bd2a2df3817ca65c6b716e53c2e6cec2ad6a8
--- /dev/null
+++ b/doc/OIORASP_Library_DotNet-ReleaseNotes.adoc
@@ -0,0 +1,100 @@
+include::_common-settings.adoc[]
+
+= OIORASP .NET - Release Notes
+{author}
+Version {versionNumber}
+
+
+== Introduction
+The OIORASP Library for .Net is a C#/DotNet based toolkit for implementation of OIORASP business applications.
+
+This distribution is version {versionNumber}
+
+The distribution is part of the OIORASP work for exchanging business documents in a secure and
+reliable way using the internet. See https://nemhandel.dk/netvaerk-og-standarder for more information.
+
+The framework can be downloaded from https://www.digitaliser.dk/group/405467/resources or https://nemhandel.dk/opdateringer-releases
+
+== Release content
+This release comprises the following deliverables:
+
+* dk.gov.oiosi.library.sln Visual Studio 2019 solution
+
+.Documentation:
+
+* OIORASP Library for .NET Release Notes.pdf (this document)
+* OIORASP Library for .NET Installation Guide.pdf
+* OIORASP Library for .NET Tutorials.pdf
+
+.Samples
+
+* dk.gov.oiosi.samples.TestCertificate Test certificates using OIORASP
+* dk.gov.oiosi.samples.httpEndpointExample Deployable test endpoint
+* dk.gov.oiosi.samples.ClientExample A client example that can send a document
+* dk.gov.oiosi.samples.consolesClientExample A console client, use to send a user specific document
+
+.For testing (as sub-components of the RaspClientTests solution file):
+
+* dk.gov.oiosi.test.request Sending test project
+* dk.gov.oiosi.test.extendedRequest Uddi, ldap and ocsp test project
+* dk.gov.oiosi.test.nunit.library Nunit test project
+* dk.gov.oiosi.test.nunit.interop Nunit interoperability test project
+* dk.gov.oiosi.integration Nunit integration tests
+
+
+== What is changed?
+[NOTE]
+In the following part of the document, some issue numbers are mentioned these numbers are
+internal numbers used by the Erhvervsstyrelsen (Danish Business Authority), so please ignore these as external
+developer.
+
+include::release-notes-3.0.0.adoc[leveloffset=+1]
+
+include::release-notes-2.1.x.adoc[leveloffset=+1]
+
+
+
+== Compatibility
+This OIORASP {versionNumber} release has been tested OK with OIORASP 2.1.x for both Java and .NET when running with Foces2 certificates on both sender and receiver side.
+
+
+== Known issues
+Calling Abort() on the request may occasionally crash if one tries to update configuration or shut
+down the application during sending.
+This is due to a bug in the WCF WS-RM implementation that Microsoft has recognized. [as
+reported: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2189376&SiteID=1]
+
+Processing large sized documents will consume large size of RAM and CPU. The OIORASP library itself, should no longer be the obstacle for sending and handling large files, but the hardware must
+be well-equipped, as well as internet connection speed between sender and receiver
+
+== Licenses
+Some source code is licensed under the Mozilla Public License Version 1.1. The used license
+is stated below.
+Please check each source file for a license declaration as some source code is licensed on other terms.
+
+[source]
+/*
+ * The contents of this file are subject to the Mozilla Public
+ * License Version 1.1 (the "License"); you may not use this
+ * file except in compliance with the License. You may obtain
+ * a copy of the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an
+ * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
+ * or implied. See the License for the specific language governing
+ * rights and limitations under the License.
+ *
+ *
+ * The Original Code is OIORASP .NET toolkit.
+ *
+ * The Initial Developer of the Original Code is Accenture and Avanade.
+ * Portions created by Accenture and Avanade are Copyright (C) 2009
+ * Danish National IT and Telecom Agency (http://www.digst.dk).
+ * All Rights Reserved.
+ */
+
+The NUnit distributed is not a product of {name-erst-en}. Following license is from the
+originator.
+
+ Portions Copyright © 2002-2007 Charlie Poole or Copyright © 2002-2004 James W. Newkirk,
+ Michael C. Two, Alexei A. Vorontsov or Copyright © 2000-2002 Philip A. Craig
diff --git a/doc/OIORASP_Library_DotNet-Tutorials.adoc b/doc/OIORASP_Library_DotNet-Tutorials.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..ac5f562d15717d302c37f4fd3f1eff3e41919c7a
--- /dev/null
+++ b/doc/OIORASP_Library_DotNet-Tutorials.adoc
@@ -0,0 +1,936 @@
+include::_common-settings.adoc[]
+
+= Tutorials
+
+== OIORASP .NET Library 3.0.0
+
+=== Introduction
+The purpose of this document is to guide developers in creating an application using the
+RASP library. The main components will be explained here, and example code showing how
+to set them up will be given.
+This document represents a high-level view of the main communication components. More
+documentation is found
+
+* As comments in the code
+* As stand-alone test applications
+* As NUnit tests
+* By seeing code used as part of other components
+
+Please visit https://nemhandel.dk/vejledning-en-teknisk-introduktion-til-nemhandel for more information on the
+OIORASP project.
+
+=== Overview of Lessons
+The basics of the RASP Library will be explained through different lessons, each describing
+one specific aspect of the API.
+The lessons are
+
+* Configuring RASP and Windows Communication Foundation
+* Sending documents
+* Extended Requests (including UDDI, LDAP and OCSP/CRL lookups)
+* Receiving documents
+* The interceptors
+* Hosting a HTTP service in IIS
+
+=== Prerequisites
+
+==== Resources
+All common resources can be found in the resource project src/ dk.gov.oiosi.resource, and is
+added (by link) to other project that need the resources.
+
+==== Sample documents
+There are several sample documents used in the tests of the rasp library. They are located in
+the src\dk.gov.oiosi.raspProfile\Resources\Documents directory.
+
+=== Sending Configuration - App.Config
+Each test project has an App.Config application configuration file, and so should every
+project that uses the RASP Library.
+Most of the Windows Communication Foundation settings are done in App.Config, and this
+section will briefly cover each important section in the configuration.
+It is recommended that the main sections described here are copied from one of the test
+projects, since the RASP Library is dependent on default settings (first and foremost the
+OiosiHttpEndpoint, OiosiHttpEndpointBehavior, OiosiHttpEndpointBinding and
+NHR_lookup).
+
+[#client_endpoint]
+==== Client endpoint
+
+
+
+.App.Config sample 1
+[source, xml]
+
+ ...
+
+
+
+
+
+ ...
+
+
+This sample shows a client endpoint, “OiosiHttpEndpoint”, using the attributes
+
+* name – Must be OiosiHttpEndpoint, as the name is hardcoded in RASP.
+* address – Is retrieved from NemhandelsRegisteret, so can be left empty
+* binding – Must be ‘customBinding’, as it described that we used a custom binding.
+* bindingConfiguration – The name of the binding to use, described in the
+customConfiguration see <>.
+* contact – The contact describing the interface.
+* behaviorConfiguration – The name of the behavior to use, described in <>.
+
+[#client_behavior]
+==== Client behavior
+The behavior configuration for sending.
+.AppConfig sample 2
+[source, xml]
+
+ ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ...
+
+
+The behavior name (‘OiosiHttpEndpointBehavior’) must match the defined name in <>
+
+[#client_binding]
+==== Client binding
+The binding configuration for sending.
+
+.App.Config sample 3
+[source, xml]
+
+ ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ...
+
+
+First there is a basicHttpBinding, that must be named NHR_lookup, that is used to perform
+lookup in NemhandelsRegisteret.
+
+Second, must of theses configuration should not be changed.
+Last, there must be a customBinding where the name (‘OiosiHttpEndpointBinding’) must
+match the defined name in <>.
+
+=== Receiving Configuration - App.Config
+Each test project has an App.Config application configuration file, and so should every
+project that uses the RASP Library.
+
+Most of the Windows Communication Foundation settings are done in App.Config, and this
+section will briefly cover each important section in the configuration.
+
+It is recommended that the main sections described here are copied from one of the test
+projects, since the RASP Library is dependent on default settings (first and foremost the
+OiosiHttpServer, OiosiHttpServerBehavior, OiosiHttpServerBinding).
+
+Note – This section describe how to setup a receiving endpoint on an IIS (IIS hosted). There
+exist other ways of setting up receiving service (self-hosted), that will not be described here.
+
+[#server_services]
+==== Server services
+
+.AppConfig sample 4
+[source, xml]
+
+ ...
+
+
+
+
+
+
+...
+
+
+This sample shows a server endpoint using the attributes
+Service
+
+* behaviorConfiguration – The name of the behavior to use, described in <>.
+* name – Is the namespace and class that implement the communication interface.
+Services
+* name – Name of the endpoint – not importen.
+* binding – Must be ‘customBinding’, as it described that we used a custom binding.
+* bindingConfiguration – The name of the binding to use, described in the
+customConfiguration <>
+* contact – Represents service contract implemented by the endpoint, describing what
+operations are supported and what SOAP actions they expect (and return). RASP
+endpoints should implement dk.gov.oiosi.communication.client.IClientProxyContract
+interface.
+
+[#server_behavior]
+==== Server behavior
+The behavior configuration for sending.
+.App.Config sample 5
+[source, xml]
+
+ ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ...
+
+
+App.Config sample 6 shows an endpoint behavior. The behavior name
+(OiosiHttpServerBehavior) must the name defined in <>. The behavior add the
+signCustomHeaders and references a client certificate (and where to find it). As mentioned
+before, this behaviour is referenced from a client endpoint.
+The sender certificate and the server root certificate is checked using WCF extension, as this
+give the possibility to create better error description back to the sender when something is
+wrong.
+
+[NOTE]
+====
+OIORASP can use both Test and Live certificates, however most organisation
+can’t use test certificates in testing. This is because of Nets port restrain in there
+firewall protection the LDAR and OCSP/CRL servers.
+====
+
+For a hint on how to find the serial number and store location/name of your certificate check
+the section named “Importing certificates” in the document link:OIORASP_Library_DotNet-InstallationGuide.adoc["OIORASP .NET Installation Guide"]
+
+The certificate configuration must match the location where the certificate is installed. In
+this setup, the find value is the certificate serial number.
+
+[#server_binding]
+==== Server binding
+The server binding configuration.
+.App.Config sample 6
+
+[source, xml]
+
+ ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ...
+
+
+The name of the server binding (OiosiHttpServerBinding) must match the name of the
+binding defined in <>.
+
+==== Configuring timeouts
+There are several timout settings in the app.config. Some of the overall timeouts are
+described here.
+
+* SendTimeout is the overall timeout for a communication, i.e. including all RM
+messages back and forth between sender and receiver.
+* Open- and CloseTimeout concerns the timeout of the creation of a connection from
+the sender to the receiver, and nothing else.
+* ReceiveTimeout is the timeout for a process waiting for a message within a session,
+before deciding to time out the session.
+
+=== Lesson: dk.gov.oiosi.communication
+The communication namespace holds the 3 main classes for communicating with web
+services using the RASP stack. These are
+
+* Request: Allows the simplest form of request using the RASP stack using http
+transport. Transport options (i.e. using RM, security, schema- and schematron
+validation) can be configured in App.Config as described in the earlier section.
+
+==== Request
+dk.gov.oiosi.communication.Request is the main class for making RASP service calls.
+
+For a concrete example of how to use the Request class, see the test project
+dk.gov.oiosi.test.request.
+
+The sample below shows how to easily use Request to send an XML document to an http
+endpoint through the use of the method GetResponse. The code should be fairly straight
+forward.
+
+.Code sample 1
+
+[source, csharp]
+// Sends an xml document and receives a response
+XmlDocument xdoc = new XmlDocument();
+Request raspReq = new Request(new Uri("http://myEndpoint"));
+Response response;
+try{
+raspReq.GetResponse(new OiosiMessage(xdoc), out response);
+}
+catch(RequestShutdownException e){
+// No need to do anything in particular if one
+//isn’t concerned with a nice shutdown
+// If the response variable is set, it’s good to use
+// and your message has been acknowledged
+}
+
+Calls can be made to http service, and Request automatically detects which type of service is
+being called by looking at the scheme of the URI given. Http endpoint addresses MUST be
+formatted http://address and is normally provided by NemhandelsRegisteret, and is
+currently the only one supported.
+
+Code sample 1 give an URI as lone argument to the Rasp constructor, defining what
+endpoint messages will be sent to. However, Request offers two more constructors, presented
+in Code sample 2.
+
+.Code sample 2
+[source, csharp]
+// Takes the name of an endpoint in App.Config
+public Request(string endpointConfigurationName);
+// Takes an endpoint, credentials and a sending policy
+public Request(Uri endpointAddress,
+ Credentials credentials,
+ SendPolicy sendPolicy);
+
+ The first constructor in Code sample 2 takes the name of an endpoint in the application
+configuration file. See the file App.Config in the test dk.gov.oiosi.test.request for further
+reference to how the configured endpoint (OiosiHttpEndpoint) describes the service which we
+will call.
+
+An endpoint configuration is needed no matter what constructor is used. Unless the first
+constructor in Code sample 2 is used, the endpoint configuration name must be
+“OiosiHttpEndpoint”, and therefore should always be present in the App.Config file when
+using the RASP Library. See the App.Config section for more information.
+
+The second constructor in Code sample 2 takes an endpoint URI, just like the ones used in
+Code sample 1+2, but also takes programmatically set certificates (for sending and/or
+receiving). These will override any certificates given in App.Config.
+
+==== Extended request
+This section demonstrates the following in addition to making plain Request:
+
+* Gets identifiers from xml documents (e.g. GLN (EAN) or CVR numbers) from documents
+using configurable xpath expressions
+* Performs a UDDI lookup using these parameters
+* Retrieves an endpoint certificate from LDAP based on information returned from
+UDDI
+* Checks certificate revocation status against OCSP.
+
+[NOTE]
+====
+Please note that the project has moved into the samples namespace and changed name
+to “dk.gov.oiosi.samples.consoleClientExample”.
+====
+
+For a concrete example of how to use the Request class, see the test project
+dk.gov.oiosi.test.requestTests.
+
+Code sample 3 shows how ExtendedRequest encapsulates all UDDI, OCSP, LDAP and
+document searching to send an XML document to an http endpoint through the use of the
+method GetResponse.
+
+.Code sample 3
+[source, csharp]
+// 1. Get client certificate:
+X509Certificate2 cert = CertificateLoader.GetCertificateFromStoreWithSSN(
+"CVR:26769388-UID:1172691221366",
+StoreLocation.CurrentUser,
+StoreName.My
+);
+OcesX509Certificate clientCert = new OcesX509Certificate(cert);
+// 2. Define send policy:
+SendPolicy sendPolicy = new SendPolicy("*");
+// 3. Create request:
+ExtendedRequest requestEx = new ExtendedRequest(clientCert, sendPolicy);
+// 4. Create test message:
+// 4.1 Load a test message from file:
+XmlDocument xmlMsg = GetTestMessage();
+OiosiMessage msg = new OiosiMessage(xmlMsg);
+// 5. Get response:
+Response response;
+try {
+response = requestEx.GetResponse(msg);
+} catch (Exception ex) {
+txtResult.Text += "RequestExtended failed: " + ex.ToString();
+return;
+}
+
+You can run the ExtendedRequest test sample by running the
+dk.gov.oiosi.test.extendedRequest project application, see below.
+
+image:rasp_extendedrequest.png[]
+
+The LDAP, OCSP and UDDI lookup components have both online and offline implementation
+of their interfaces, see the RASP client tutorials on how to switch between these.
+
+You can choose which implementation to run by setting the corresponding factory
+configuration in the configuration file, see below.
+
+You choose the implementation type by setting class + namespace + assembly name. The
+factory then instantiates this type dynamically. You may supply your own implementation of
+the OCSP, LDAP and UDDI interfaces.
+
+.Code sample 4
+[source, xml]
+
+
+dk.gov.oiosi.security.revocation.ocsp.OcspLookup
+
+ dk.gov.oiosi.library
+
+
+
+dk.gov.oiosi.security.Ldap.LdapCertificateLookup
+
+
+dk.gov.oiosi.library
+
+
+
+
+dk.gov.oiosi.uddi.UddiLookupClient
+
+
+dk.gov.oiosi.library
+
+
+
+Code sample 5 uses OCSP for to check for revocation, while sample 6 use CRL lookup.
+
+.Code sample 5
+[source, xml]
+
+
+ dk.gov.oiosi.security.revocation.crl.CrlLookup
+
+ dk.gov.oiosi.library
+
+
+
+dk.gov.oiosi.security.Ldap.LdapCertificateLookup
+
+
+dk.gov.oiosi.library
+
+
+
+
+dk.gov.oiosi.uddi.UddiLookupClient
+
+
+dk.gov.oiosi.library
+
+
+
+The OCSP-server is by default read from the certificate. This can be overridden by having a
+configuration in the OCSPconfig section:
+
+.Code sample 6
+[source, xml]
+
+ 10000
+ http://localhost/
+
+
+The configuration file also demonstrates how to configure RaspDocumentType configuration.
+This configuration is associates the following information with the root element of an xml
+document:
+
+* Validation schemas and schematron xslts
+* Xpath expressions for finding e.g. an GLN (EAN) number or other endpoint key types
+* Associate a service and SOAP action with the document type
+
+Most of this configuration points forward to the RASP client which uses this library for
+automatically sending business messages.
+
+You can see the RequestExtended class for an example on how to string the OCSP, LDAP,
+UDDI, certificate checking and Request components together, either by using configuration
+or programmatically.
+
+
+===== The UDDI lookup
+The UDDI lookup of the extended request requires the UDDI connection to be configured in
+the app.config file, where it has its own HTTP binding.
+
+The parameters of the UDDI lookup may additionally use a process definition filter. By
+setting the BusinessProcessDefinitionTModel and RoleIdentifier fields of the
+LookupParameters object, the result from the query is filtered using these criteria. If null,
+they are ignored.
+
+For more information on how to use the IUddiLookup interface have a look at <>.
+
+[#uddi_lookup]
+=== Lesson: dk.gov.oiosi.uddi.IUddiLookupClient
+
+This section will have a short description on how to use the UddiLookupClient interface and
+the LookupParameters class for different scenarios.
+
+There are several different kinds of lookup in that the interface IUddiLookupClient supports.
+The interface only has one method and that is for lookup that take some parameters and
+returns a list of responses. See
+
+[source, csharp]
+///
+/// Translate interface for the ARS (Address Resolving Service) client.
+///
+public interface IUddiLookupClient {
+///
+ /// Translate parametres
+ ///
+ ///
+ ///
+ List Lookup(LookupParameters parameters);
+}
+
+The parameters that are used for the lookup can be different after what is searched for in the
+UDDI. It seems like there are three major lookups that is needed by suppliers and these are;
+first one is to find all that a specific identifier supports, second one is to find the endpoint to
+a specific identifier and specific document type, finally the third one is to find the endpoint to
+a specific identifier, specific document type and specific profile.
+
+First there is how to make a lookup that get all services for a specific identifier, then you
+have to use the following constructor:
+
+[source, csharp]
+public LookupParameters(
+ Identifier identifier,
+ List acceptedTransportProtocols)
+
+Where the identifier is given as the first parameter and the second parameter is what
+transport protocols the client can support.
+
+Second lookup type takes three parameters; the first parameter is the identifier, the second
+parameter is the service identifier in the UDDI and the third parameter is the accepted
+transport protocols. The second parameter is a bit tricky to find but it is defined and found
+on the UDDI. Se below for the method parameters:
+
+[source, csharp]
+public LookupParameters(
+ Identifier identifier,
+ UddiId serviceId,
+ List acceptedTransportProtocols)
+
+Here the UDDIID on the portType tModel is used as the value in the parameter. The portType
+can for an example correlate to a document type (invoice) in a process (billing).
+
+Third lookup type takes four parameters where the third parameter is different than the
+other two lookup constructors. This parameter is a list of UddiId’s on the profiles that the
+service must support. The method looks like the following:
+
+[source, csharp]
+public LookupParameters(
+ Identifier identifier,
+ UddiId serviceId,
+ List profileIds,
+ List acceptedTransportProtocols)
+
+The lookup will accept a service as a result if just one of the profiles in the list is supported
+by it.
+
+There are more constructors but they are not needed to send documents over the RASP
+protocol, so they are not described here in this document.
+
+=== Lesson: dk.gov.oiosi.extension.wcf
+The RASP library comes with several extensions to the Windows Communications
+Foundation framework 4.5, that can all be found under the dk.gov.oiosi.extension.wcf and
+dk.gov.oiosi.raspProfile.extension.wcf namespaces.
+
+These extensions come in the form of binding elements that are inserted into the
+communication stack, where they intercept and handle the in- or outgoing message
+according to their functionality.
+
+The extensions available in version 3.0.0 are
+
+.Interceptors
+* The schema interceptor
+* The schematron interceptor
+* The signature validation proof generator
+* The XSLT transformer
+* The ubiquitous message property interceptor
+
+.Headers
+* The party identifier headers
+
+
+These stack elements are added in the App.Config file, but only after adding reference to
+each of the elements configuration extension as seen in App.Config sample 7.
+
+Server and client side interceptors have been implemented in different manners because of
+the different ways the two handles SOAP messages wherefore one has to make sure the
+correct interceptor binding element has been selected.
+
+.App.Config sample 7
+
+[source, xml]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+==== Schema and schematron interceptors
+The xml validators have the following settings
+
+* *ValidateRequest* - If true it will validate the xml on request. Default is true.
+* *ValidateResponse* - If true it will validate the xml on response. Default is true. The
+current configuration does not return any valid xml so this is disabled.
+* *FaultOnRequestValidationException* - If true it will send soap fault to the client if
+the validation fails. If false the message will continue up the stack and any validation
+failure is added as a custom property to the message. Default is true.
+
+
+==== Signature validation proof interceptor
+The server side signature validation proof interceptor has the following options
+
+* *FaultOnRequestValidationException* - should a SOAP fault be sent on exceptions? Default is true.
+
+The client side signature validation proof interceptor has no options.
+
+Note that the ServerSignatureProof and ClientSignatureProof interceptors must be located
+between the RM layer and the security layer as seen in *Error! Reference source not found*.
+
+==== XSLT Transformation interceptor
+The XSLT transformation transforms the incoming XML, and has the following options
+
+* FaultOnTransformationException – should a SOAP fault be sent on exceptions?
+* PropagateOriginalMessage – The original XML will be added as a message
+property
+
+Note that the XSLT interceptor must be placed above the ReliableMessaging layer.
+
+==== Ubiquitous properties interceptor
+The ubiquitous properties interceptor adds ubiquitous message properties to all messages
+that pass it (as opposed to normal WCF Message properties), that will only be added to the
+payload message.
+
+Ubiquitous properties are added to the OiosiMessage before sending, and need to be given a
+unique string as an identifier, which later stack layers need to be familiar with if they would
+like to read the property.
+
+[source, csharp]
+OiosiMessage msg = new OiosiMessage();
+msg.UbiquitousProperties.Add("MyProperty", new object());
+
+Note that the ubiquitous properties interceptor needs to be located under the
+ReliableMessaging layer.
+
+==== SenderPartyIdentifier and ReceiverPartyIdentifier headers
+In dk.gov.oiosi.raspProfile.communication.extension.wcf an additional interceptor can be
+found, which is used to add the obligatory RASP SOAP headers and
+ .
+
+The value of the headers is configured by adding an PartyIdentifierSettings object as an
+ubiquitous property to the message to be sent, as seen in the code below. The name of the
+ubiquitous property must be the value found in the constant MessagePropertyKey on the
+PartyIdentifierHeaderSettings class.
+
+[source, csharp]
+OiosiMessage msg = new OiosiMessage();
+string key = PartyIdentifierHeaderSettings.MessagePropertyKey;
+PartyIdentifierHeaderSettings partyIdentifierSetting = new PartyIdentifierHeaderSettings(senderID, receiverID);
+msg.UbiquitousProperties[key] = partyIdentifierSetting;
+
+=== Lesson: Enabling tracing
+Windows communication enables both Message level logging and internal system traces,
+both which can be used with the RASP library. Furthermore the RASP library can add it’s
+own internal system logs to the same (or a different) log file as WCF. Beware that when using
+traces for the library on the Verbose tracing level the trace files will very quickly become very
+large, so tracing at this level should only be enabled for advanced debugging.
+
+At the very top of all the App.Config files that are distributed with the RASP library source,
+there should be a section called . This section has been disabled by
+making it an xml comment, and to enable it again just remove the from before
+and after it.
+
+When tracing has been enabled, two files (App_Traces.svclog and App_Messages.svclog) can
+be viewed using the application SvcTraceViewer.exe that comes with the Windows SDK.
+App_Traces will contain internal logs and App_Messages will contain all the SOAP messages
+sent and/or received.
+
+==== Changing the trace settings
+To change the tracing options it is recommended that the App.Config file is edited in the
+Windows SDK application SvcConfigEditor.exe.
+
+image:images\rasp_clientappconfig.png[]
+
+In the configuration editor, under Diagnostics there will be two important sections; Listeners
+and Sources.
+
+Under listeners you can add new trace listeners that will write to other files than the above
+mentioned two. Under Sources you can add more sources (for example your own WCF
+extensions) or change to what Listener the existing Sources will be written (if for example you
+would like to separate RASP logs from WCF logs). It is also here where you can change on
+what detail level to log. “Warning” is recommended to not clog the log files.
+
+=== Lesson: Configuration - RaspConfiguration.xml
+This section briefly describes how to access the dynamic configuration file, which
+supplements App.Config, RaspConfiguration.xml and change loaded library versions from
+live to test versions.
+
+The RaspConfiguration.xml file is loaded using the class ConfigurationDocument. Default the
+location and name of the configuration file is loaded from the programs main App.Config file,
+or it should be set like this:
+
+[source, csharp]
+ConfigurationDocument.ConfigFilePath = "RaspConfiguration.Live.xml";
+
+[NOTE]
+You must set the configuration before starting to use the RASP functionality.
+
+You can choose to use offline test stub versions of the LDAP, OCSP and UDDI libraries. This
+is suitable for testing in offline environments or to fix some parameters of the test.
+
+You can set this in the factory configuration sections of the config.
+
+To do use test stubs do the following:
+
+* *LDAPLookupFactory* – change the implementation namespace class from
+“dk.gov.oiosi.security.Ldap.LdapCertificateLookup” to
+“dk.gov.oiosi.security.Ldap.LdapCertificateLookupTest”.
+* *LdapLookupFactoryConfig* – change the implementation namespace class from
+“dk.gov.oiosi.security.Ldap.LdapCertificateLookup” to
+“dk.gov.oiosi.security.Ldap.LdapCertificateLookupTest”.
+* *RevocationLookupFactoryConfig* – change the implementation namespace class
+from “dk.gov.oiosi.security.revocation.ocsp.OcspLookup” to
+“dk.gov.oiosi.security.revocation.ocsp.OcspLookupTest”.
+
+When you use the test stubs, you can configure the behaviour of each of them. You can do
+this in the following sections:
+
+* LdapCertificateLookupTestConfig: Here you can configure a certificate that the LDAP
+client should always return.
+* OcspLookupTestConfig: Here you can set the response that the OCSP client always
+will return in response to a question of certificate validity (true/false).
+* UddiLookupClientTestConfig: Here you can statically configure an UDDI response,
+regardless of lookup parameters. Parameters include the endpoint address and
+certificate subject.
+
+=== Lesson: Setting up an IIS hosted RASP service
+To host an HTTP endpoint it is recommended that this endpoint should be hosted by
+Microsoft Internet Information Services (IIS).
+
+A test project in the sample code demonstrates how this could be done. In this project you
+will find some code and a Web.Config file (which will act as a substitute for the App.Config
+file while hosting our service in IIS).
+
+To get started, either publish the project directly into C:\Inetpub\wwwroot\ (assuming that
+you have your Windows installation on the C drive), or publish another location and
+manually install the application into the IIS.
+
+Then you should open the IIS manager (found under Start->Control Panel->Administrative
+Tools, alternatively as a subsection of Start -> Control Panel -> Administrative Tools -> Computer
+Management).
+
+image:rasp_iis.png[]
+
+Under local computer\Web sites there should be a default web site with the folder
+C:\Inetpub\wwwroot\ as it’s home directory. If there is no web sites please refer to Microsoft
+help for setting a web site up.
+
+As a sub folder of this web site you should see the folder you just published called
+RaspTestEndpoint. Right click on this folder and select Properties.
+
+image:rasp_interoptest2properties.png[]
+
+In the properties window, under the Directory tab push the Create button.
+
+image:rasp_interoptest2properties2.png[]
+
+In the properties window, under the ASP.NET tab, select .NET Framework 4.6.2
+
+image:rasp_interoptest2properties3.png[]
+
+Under the Directory Security tab, Authentication and access control, make sure anonymous
+access is enabled.
+
+Now you should be able to see that your service is running by opening
+
+http://localhost/RaspTestEndpoint/OiosiOmniEndpoint.svc
+
+in a browser (such as Internet Explorer) .
+
+
+==== Tips for solving common issues when hosting in IIS
+If you have problems contacting the ISS service from outside, you may try and look into the
+firewall settings.
+If your endpoint is not working, you may try the following:
+
+* Go to the IIS application pool property window
+* Select the “Identity” tab.
+* Change the account to “local system”
+If you do not want to elevate permission on the whole of application pool, you can try the
+following.
+* Creating a new application pool, where all web sites are running on the same .NET version (4.6.2)
+* If that doesn’t work, perhaps the application pool doesn’t have rights to use the
+certificate. Try:
+
+** Delete the certificate OiosiTestVOCES.pfx from the MMC window.
+** Run the command line tool WinHttpCertCfg
+(http://www.microsoft.com/downloads/details.aspx*familyid=c42e27
+ac-3409-40e9-8667-c748e422833f&displaylang=en)
+** Re-install the certificate like:
+>WinHttpCertCfg.exe –i NemhandelTest2.pfx –c LOCAL_MACHINE\MY –a
+“NetworkService” –p Test1234
+(imports the pfx file to the personal store on local machine, for the
+NetworkService account, using the password Test1234)
+** Grant acces to the certificate for asp.net by running
+>WinHttpCertCfg.exe –c LOCAL_MACHINE\MY –s “Nemhandel Test 2” –g
+–a “aspnet”
+(where “Nemhandel Test 2” is part of the subject string of the certificate you
+just imported)
+** In web.config, change the location of the certificate from “Root” to “My” store.+image:rasp_dotnetproperties.png[]
+** In the IIS manager, right click on the application pool you’re running on (if it
+is the default, you might want to create a new one) and make sure that under
+the Identity tab the “Network service” security account is selected.
diff --git a/doc/_common-settings.adoc b/doc/_common-settings.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..61b7bdc72f57cedf00177abd24760b9cc0ef2774
--- /dev/null
+++ b/doc/_common-settings.adoc
@@ -0,0 +1,22 @@
+// Layout stuff:
+:title-page:
+:doctype: article
+:toc:
+:toc: left
+:toclevels: 3
+:sectnums:
+:sectnumlevels: 5
+:xrefstyle: full
+:icons: font
+:imagesdir: ../doc/images
+// Avoid the "Chapter" keyword in output:
+:chapter-label:
+
+
+// Variables:
+:name-erst-en: Danish Business Authority
+:author: {name-erst-en}
+
+
+// Følgende linje opdateres automatisk af build-script, og variablen {versionNumber} kan benyttes over alt:
+include::_common-version.adoc[]
diff --git a/doc/_common-version.adoc b/doc/_common-version.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..6d7e348d85579e9f45bb89352356e392b49d0558
--- /dev/null
+++ b/doc/_common-version.adoc
@@ -0,0 +1,2 @@
+:versionNumber: 3.0.0.RC1.65534
+:versionNumberTagged: 3.0.0.65534
\ No newline at end of file
diff --git a/doc/images/rasp_clientappconfig.png b/doc/images/rasp_clientappconfig.png
new file mode 100644
index 0000000000000000000000000000000000000000..30f3f5619443bb43ddda23d320c91a74513a99e7
Binary files /dev/null and b/doc/images/rasp_clientappconfig.png differ
diff --git a/doc/images/rasp_dotnetproperties.png b/doc/images/rasp_dotnetproperties.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f2ac72d762a9eeeaec319bf2cf7b80941e71f00
Binary files /dev/null and b/doc/images/rasp_dotnetproperties.png differ
diff --git a/doc/images/rasp_extendedrequest.png b/doc/images/rasp_extendedrequest.png
new file mode 100644
index 0000000000000000000000000000000000000000..f6fd55d1e3673f516cdc4e0495a4fc4d9fa9cf29
Binary files /dev/null and b/doc/images/rasp_extendedrequest.png differ
diff --git a/doc/images/rasp_iis.png b/doc/images/rasp_iis.png
new file mode 100644
index 0000000000000000000000000000000000000000..60871219b9a46350f07dff311326af6b7bd09ee7
Binary files /dev/null and b/doc/images/rasp_iis.png differ
diff --git a/doc/images/rasp_interoptest2properties.png b/doc/images/rasp_interoptest2properties.png
new file mode 100644
index 0000000000000000000000000000000000000000..14a3550591ac95f428ce668fd487660ff07a3dd1
Binary files /dev/null and b/doc/images/rasp_interoptest2properties.png differ
diff --git a/doc/images/rasp_interoptest2properties2.png b/doc/images/rasp_interoptest2properties2.png
new file mode 100644
index 0000000000000000000000000000000000000000..f762c87d89c43633324414ca6c1b5718aeb7e8c9
Binary files /dev/null and b/doc/images/rasp_interoptest2properties2.png differ
diff --git a/doc/images/rasp_interoptest2properties3.png b/doc/images/rasp_interoptest2properties3.png
new file mode 100644
index 0000000000000000000000000000000000000000..5d177a4ce43d5d309185a12c029f0e9bcd08a0be
Binary files /dev/null and b/doc/images/rasp_interoptest2properties3.png differ
diff --git a/doc/Howto Release Signed .Net RASP.txt b/doc/old/Howto Release Signed .Net RASP.txt
similarity index 98%
rename from doc/Howto Release Signed .Net RASP.txt
rename to doc/old/Howto Release Signed .Net RASP.txt
index 2282ac6090e50732127e98df415dc1493e7decc0..4320c4d6dd1b852715655a616af4e4d0b2424ea1 100644
--- a/doc/Howto Release Signed .Net RASP.txt
+++ b/doc/old/Howto Release Signed .Net RASP.txt
@@ -1,19 +1,19 @@
-Work has gone into make a signed release og RASP .Net.
-However, we have the problem that the virtual build server can't reach the code Signing certificate on physical USB eToken.
-Therefore, the only option so far, is release a signed version from a workstation.
-These steps explain howto setup the workstation to release a signed version of RASP.Net.
-
-1) Add (if not already exist) to windows Enviroment, the password to the certificate (yes, the key start with '-'):
- Name -DigstSignToolPassword
- Password not added to SVN.
-
-
-2) Add (if not already exist) to windows Enviroment, the key and Hash to the certificate (yes, the key start with '-'):
- Name -DigstSPCThumbprint
- VAlue 98642f19b787ec0386db8b52ce9e8ed4e49c
-
-3) Install (if not already done) SAFENET DRIVERS: https://www.trustzone.com/standard-code-signing (step 1).
-
-4) Find the svn revision number, and update the file './../NAnt.build.Distribute.Signed.bat', and set the correct build number (line 27).
-
+Work has gone into make a signed release og RASP .Net.
+However, we have the problem that the virtual build server can't reach the code Signing certificate on physical USB eToken.
+Therefore, the only option so far, is release a signed version from a workstation.
+These steps explain howto setup the workstation to release a signed version of RASP.Net.
+
+1) Add (if not already exist) to windows Enviroment, the password to the certificate (yes, the key start with '-'):
+ Name -DigstSignToolPassword
+ Password not added to SVN.
+
+
+2) Add (if not already exist) to windows Enviroment, the key and Hash to the certificate (yes, the key start with '-'):
+ Name -DigstSPCThumbprint
+ VAlue 98642f19b787ec0386db8b52ce9e8ed4e49c
+
+3) Install (if not already done) SAFENET DRIVERS: https://www.trustzone.com/standard-code-signing (step 1).
+
+4) Find the svn revision number, and update the file './../NAnt.build.Distribute.Signed.bat', and set the correct build number (line 27).
+
5) Run the file './../NAnt.build.Distribute.Signed.bat'.
\ No newline at end of file
diff --git a/doc/old/OIOSI RASP Library for .Net Cache Overview.csv b/doc/old/OIOSI RASP Library for .Net Cache Overview.csv
new file mode 100644
index 0000000000000000000000000000000000000000..0dfec2f4f7cdd9afc5bea5e13a199c04f947fa0a
--- /dev/null
+++ b/doc/old/OIOSI RASP Library for .Net Cache Overview.csv
@@ -0,0 +1,15 @@
+;Cache configuration comparison;;;
+;;;;
+Cache name;OIORASP 1.2.3.HotFix1;OIORASP 1.3.0;OIORASP 2.0;Proposition to change
+LdapCertificateLookup/CertificateCache;TimedCache - 14 days;TimedCache, 24 hours validity, each 1 hour check for expiration;TimedCache, 24 hours validity, each 1 hour check for expiration;Limit maximum number of entries by some big value to avoid OutOfMemory, use LFU cache together with timed cache
+OcspLookup;TimedCache - 1 hour;TimedCache, 1 hour validity, each 10 mins check for expiration ;TimedCache, 1 hour validity, each 10 mins check for expiration ;-- // ---
+UddiLookupClient.getServiceCache;TimedCache - 24 hours;TimedCache, 1 hours validity, each 10 minutes check for expiration;TimedCache, 1 hours validity, each 10 minutes check for expiration;Critical! If we do not decrease it, NO changes in public UDDI can be visible to clients during 24 hours.
+UddiLookupClient.getTModelCache;TimedCache - 24 hours;TimedCache, 24 hours validity, each 1 hour check for expiration;TimedCache, 24 hours validity, each 1 hour check for expiration;Barelly used at all, at least none in TrueLink subsystem uses it.
+SchematronStore;QuantityCache - 2 path entries;LFU cache (max size 20), no expiration;LFU cache (max size 20), no expiration;
+CrlCache;Unlimited hashtable for each CRL url, checks for expiration each time it is accessed, updates in the same thread where it was found that it is expired;LFU cache (max size 10), if failed to update - reattempt in 5 minutes by special scheduled job, which is started after each successful cache update depending on revocation next update date from CRL server;LFU cache (max size 10), if failed to update - reattempt in 5 minutes by special scheduled job, which is started after each successful cache update depending on revocation next update date from CRL server;
+SchemaStoreCache;absent, Schema object is built each time when required;LFU cache (max size 20), no expiration;LFU cache (max size 20), no expiration;
+MessageIdUnfinishedSignaturesCache;10 minutes;TimedCache, 1 hour validity, each 10 mins check for expiration ;TimedCache, 1 hour validity, each 10 mins check for expiration ;
+SequenceIdUnfinishedSignaturesCache;10 minutes;TimedCache, 1 hour validity, each 10 mins check for expiration ;TimedCache, 1 hour validity, each 10 mins check for expiration ;
+;;;;
+;;;;
+LFU: Least Frequently Used;;;;
diff --git a/doc/OIOSI RASP Library for .Net Cache Overview.xlsx b/doc/old/OIOSI RASP Library for .Net Cache Overview.xlsx
similarity index 100%
rename from doc/OIOSI RASP Library for .Net Cache Overview.xlsx
rename to doc/old/OIOSI RASP Library for .Net Cache Overview.xlsx
diff --git a/doc/OIOSI RASP Library for .Net Installation Guide.docx b/doc/old/OIOSI RASP Library for .Net Installation Guide.docx
similarity index 100%
rename from doc/OIOSI RASP Library for .Net Installation Guide.docx
rename to doc/old/OIOSI RASP Library for .Net Installation Guide.docx
diff --git a/doc/OIOSI RASP Library for .Net Installation Guide.pdf b/doc/old/OIOSI RASP Library for .Net Installation Guide.pdf
similarity index 100%
rename from doc/OIOSI RASP Library for .Net Installation Guide.pdf
rename to doc/old/OIOSI RASP Library for .Net Installation Guide.pdf
diff --git a/doc/OIOSI RASP Library for .Net Release Notes.docx b/doc/old/OIOSI RASP Library for .Net Release Notes.docx
similarity index 100%
rename from doc/OIOSI RASP Library for .Net Release Notes.docx
rename to doc/old/OIOSI RASP Library for .Net Release Notes.docx
diff --git a/doc/OIOSI RASP Library for .Net Release Notes.pdf b/doc/old/OIOSI RASP Library for .Net Release Notes.pdf
similarity index 100%
rename from doc/OIOSI RASP Library for .Net Release Notes.pdf
rename to doc/old/OIOSI RASP Library for .Net Release Notes.pdf
diff --git a/doc/OIOSI RASP Library for .Net Tutorials.docx b/doc/old/OIOSI RASP Library for .Net Tutorials.docx
similarity index 100%
rename from doc/OIOSI RASP Library for .Net Tutorials.docx
rename to doc/old/OIOSI RASP Library for .Net Tutorials.docx
diff --git a/doc/OIOSI RASP Library for .Net Tutorials.pdf b/doc/old/OIOSI RASP Library for .Net Tutorials.pdf
similarity index 100%
rename from doc/OIOSI RASP Library for .Net Tutorials.pdf
rename to doc/old/OIOSI RASP Library for .Net Tutorials.pdf
diff --git a/doc/release-notes-1.3.0_HowToUpgrade.txt b/doc/old/release-notes-1.3.0_HowToUpgrade.txt
similarity index 97%
rename from doc/release-notes-1.3.0_HowToUpgrade.txt
rename to doc/old/release-notes-1.3.0_HowToUpgrade.txt
index aab31351911cc6a60c6adcf8d0933637e93b647d..05f923f4f7bedfdcd415b79a6e9a7dbf05367fd6 100644
--- a/doc/release-notes-1.3.0_HowToUpgrade.txt
+++ b/doc/old/release-notes-1.3.0_HowToUpgrade.txt
@@ -1,26 +1,25 @@
-How to upgrade project from Net 1.2.3 to version 1.3.0
-
-This file should be seen as a guide for migrating own code to OIORASP library 1.3.0
-The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup!
-
-Steps
------
-
-1. Download new release from http://digitaliser.dk/group/405467/resources/type/150019
-
-2. Replace your old .dll files with the new .dll and .config files - Note there exist more files in this release then in the old release
-
-3. Remove OcspClient2.dll and bccrypto-csharp-b02.dll from lib - Not used anymore.
-
-4. Update your RaspConfiguration.xml file - remember to adjust path to resources (schema + schematron files), as the path has benn changed.
-
-5. When a document is received though RASP OiosiMessage, a new method MessageAsString is provided to extract the document. Use this new method to take advantage of the improved processing speed, that has been implemented.
-
-6. Some classes/method is no longer static, and must in initialized.
-
-7. Log4Net har been implemented to be used by RASP .Net. Update the configuration fil log4net4Rasp.xml, to fit you needs.
-
-That should be it..!
-
-It you meet problems, that should be included in this guide, please post your comments to the following email address:
- support@nemhandel.dk
+How to upgrade project from Net 1.2.3 to version 1.3.0
+
+This file should be seen as a guide for migrating own code to OIORASP library 1.3.0
+The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup!
+
+Steps
+
+1. Download new release from http://digitaliser.dk/group/405467/resources/type/150019
+
+2. Replace your old .dll files with the new .dll and .config files - Note there exist more files in this release then in the old release
+
+3. Remove OcspClient2.dll and bccrypto-csharp-b02.dll from lib - Not used anymore.
+
+4. Update your RaspConfiguration.xml file - remember to adjust path to resources (schema + schematron files), as the path has benn changed.
+
+5. When a document is received though RASP OiosiMessage, a new method MessageAsString is provided to extract the document. Use this new method to take advantage of the improved processing speed, that has been implemented.
+
+6. Some classes/method is no longer static, and must in initialized.
+
+7. Log4Net har been implemented to be used by RASP .Net. Update the configuration fil log4net4Rasp.xml, to fit you needs.
+
+That should be it..!
+
+It you meet problems, that should be included in this guide, please post your comments to the following email address:
+ support@nemhandel.dk
diff --git a/doc/release-notes-2.0.0_HowToUpgrade.txt b/doc/old/release-notes-2.0.0_HowToUpgrade.txt
similarity index 97%
rename from doc/release-notes-2.0.0_HowToUpgrade.txt
rename to doc/old/release-notes-2.0.0_HowToUpgrade.txt
index 60a5da6b841af4138edfdd07d614b425eac53ae0..21c222b94d5de4292253cb36408918340a544a67 100644
--- a/doc/release-notes-2.0.0_HowToUpgrade.txt
+++ b/doc/old/release-notes-2.0.0_HowToUpgrade.txt
@@ -1,21 +1,20 @@
-How to upgrade project from Net 1.3.0 to version 2.0.0
-
-This file should be seen as a guide for migrating own code to OIORASP library 2.0.0
-The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup!
-
-Steps
------
-
-1. Download new release from http://digitaliser.dk/group/405467/resources/type/150019
-
-2. Replace your old .dll files with the new .dll and .config files
-
-3. Update your RaspConfiguration.xml file - remember to:
- - adjust path to resources (schema + schematron files)
- - change ConfigurationSection "LdapSettings": Host has changed to crtdir.certifikat.dk
- - add Oces2 root certificate in ConfigurationSection "RootCertificateCollectionConfig"
-
-That should be it..!
-
-It you meet problems, that should be included in this guide, please post your comments to the following email address:
- support@nemhandel.dk
+How to upgrade project from Net 1.3.0 to version 2.0.0
+
+This file should be seen as a guide for migrating own code to OIORASP library 2.0.0
+The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup!
+
+Steps
+
+1. Download new release from http://digitaliser.dk/group/405467/resources/type/150019
+
+2. Replace your old .dll files with the new .dll and .config files
+
+3. Update your RaspConfiguration.xml file - remember to:
+ - adjust path to resources (schema + schematron files)
+ - change ConfigurationSection "LdapSettings": Host has changed to crtdir.certifikat.dk
+ - add Oces2 root certificate in ConfigurationSection "RootCertificateCollectionConfig"
+
+That should be it..!
+
+It you meet problems, that should be included in this guide, please post your comments to the following email address:
+ support@nemhandel.dk
diff --git a/doc/release-notes-2.1.0_HowToUpgrade.txt b/doc/old/release-notes-2.1.0_HowToUpgrade.txt
similarity index 96%
rename from doc/release-notes-2.1.0_HowToUpgrade.txt
rename to doc/old/release-notes-2.1.0_HowToUpgrade.txt
index 0c0376dc12dea79167e70455b62c6542eb2468c8..da63cd1d55e5f6ab3b0ca08d4bfc30e5449e01e9 100644
--- a/doc/release-notes-2.1.0_HowToUpgrade.txt
+++ b/doc/old/release-notes-2.1.0_HowToUpgrade.txt
@@ -1,47 +1,46 @@
-How to upgrade project from .NET 2.0.X to version 2.1.0
-
-This file should be seen as a guide for migrating own code to OIORASP library 2.1.0
-The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup!
-
-Steps
------
-
-1. Download new release from https://digitaliser.dk/group/405467/resources
-
-2. Replace your old .dll files with the new .dll and .config files.
- Please note, there are several new files (IKVM and Saxon).
- Remove the 'dk.gov.oiosi.xml.dll' file (it is not used).
-
-3. RaspConfiguration.xml must be updated!
- See RaspConfiguration-update-2.1.0.pdf
-
-4. Code updates:
- EndpointKeyTypeCode class has been removed. Now endpoint types is treated likes strings, so replace the class with 'string'.
- enum EndpointAddressTypeCode has been cleaned for unusable values (https, email, ftp and other)
- EndpointAddressSMTP.cs has been deleted.
-
- A lot of cleanup in the (default) endpoint service WCF configuration files.
- See the test instances for how the configuration files could look, for more information.
-
- Important updates are:
-4.1 The WCF binding for lookup in NemHandelRegisteret (NHR), must be present and is now named NHR_lookup (was just call basic before).
- The client endpoint can be removed (was only used to point to the binding below).
-
-
-
-
-
-
-4.2
- The Schematron Store Cache in RaspConfiguration.xml file must be updated from
- dk.gov.oiosi.common.cache.QuantityCache`2[System.String,System.Xml.Xsl.XslCompiledTransform]
- to
- dk.gov.oiosi.common.cache.QuantityCache`2[System.String,dk.gov.oiosi.xml.schematron.CompiledXslt]
-
-
-
-That should be it..!
-
-
-It you meet problems, that should be included in this guide, please post your comments to the following email address:
- support@nemhandel.dk
+How to upgrade project from .NET 2.0.X to version 2.1.0
+
+This file should be seen as a guide for migrating own code to OIORASP library 2.1.0
+The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup!
+
+Steps
+
+1. Download new release from https://digitaliser.dk/group/405467/resources
+
+2. Replace your old .dll files with the new .dll and .config files.
+ Please note, there are several new files (IKVM and Saxon).
+ Remove the 'dk.gov.oiosi.xml.dll' file (it is not used).
+
+3. RaspConfiguration.xml must be updated!
+ See RaspConfiguration-update-2.1.0.pdf
+
+4. Code updates:
+ EndpointKeyTypeCode class has been removed. Now endpoint types is treated likes strings, so replace the class with 'string'.
+ enum EndpointAddressTypeCode has been cleaned for unusable values (https, email, ftp and other)
+ EndpointAddressSMTP.cs has been deleted.
+
+ A lot of cleanup in the (default) endpoint service WCF configuration files.
+ See the test instances for how the configuration files could look, for more information.
+
+ Important updates are:
+4.1 The WCF binding for lookup in NemHandelRegisteret (NHR), must be present and is now named NHR_lookup (was just call basic before).
+ The client endpoint can be removed (was only used to point to the binding below).
+
+
+
+
+
+
+4.2
+ The Schematron Store Cache in RaspConfiguration.xml file must be updated from
+ dk.gov.oiosi.common.cache.QuantityCache`2[System.String,System.Xml.Xsl.XslCompiledTransform]
+ to
+ dk.gov.oiosi.common.cache.QuantityCache`2[System.String,dk.gov.oiosi.xml.schematron.CompiledXslt]
+
+
+
+That should be it..!
+
+
+It you meet problems, that should be included in this guide, please post your comments to the following email address:
+ support@nemhandel.dk
diff --git a/doc/release-notes-2.2.0_HowToUpgrade.txt b/doc/old/release-notes-2.2.0_HowToUpgrade.txt
similarity index 96%
rename from doc/release-notes-2.2.0_HowToUpgrade.txt
rename to doc/old/release-notes-2.2.0_HowToUpgrade.txt
index 873752911d50cb2e0bcbf78ca9598e822726e239..804d136e8f4f2517ff26c10aaf9102f8f212551c 100644
--- a/doc/release-notes-2.2.0_HowToUpgrade.txt
+++ b/doc/old/release-notes-2.2.0_HowToUpgrade.txt
@@ -1,20 +1,19 @@
-How to upgrade project from .NET 2.1.0 to version 2.2.0
-
-This file should be seen as a guide for migrating own code to OIORASP library 2.2.0
-
-The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup!
-
-Steps
------
-
-1. Download new release from https://digitaliser.dk/group/405467/resources
-
-2. Replace your old .dll files with the new .dll and .config files.
-
-
-
-That should be it..!
-
-
-It you meet problems, that should be included in this guide, please post your comments to the following email address:
- support@nemhandel.dk
+How to upgrade project from .NET 2.1.0 to version 2.2.0
+
+This file should be seen as a guide for migrating own code to OIORASP library 2.2.0
+
+The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup!
+
+Steps
+
+1. Download new release from https://digitaliser.dk/group/405467/resources
+
+2. Replace your old .dll files with the new .dll and .config files.
+
+
+
+That should be it..!
+
+
+It you meet problems, that should be included in this guide, please post your comments to the following email address:
+ support@nemhandel.dk
diff --git a/doc/release-notes-CacheConfiguration.txt b/doc/old/release-notes-CacheConfiguration.txt
similarity index 98%
rename from doc/release-notes-CacheConfiguration.txt
rename to doc/old/release-notes-CacheConfiguration.txt
index 68463f268eba3d6906e020d927285481ea155abf..7ae8737a6514c02a404ee185f6bbcd48afafe28e 100644
--- a/doc/release-notes-CacheConfiguration.txt
+++ b/doc/old/release-notes-CacheConfiguration.txt
@@ -1,68 +1,68 @@
-Possibility to configure caches (new functionality from RASP version 1.3.0)
-
-By default, after updating OIORASP library, cache configuration is changed. See "OIOSI RASP Library for Java Cache Overview 1.3.0.xlsx" for details.
-The new cache configuration settings can be seen in the default RaspConfiguration file located in /dk.gov.oiosi/src/dk.gov.oiosi.resource/RaspConfiguration.xml.
-
-How to change cache configuration:
-
-1. The cache is configurated in the ConfigurationSection element (type =CacheConfig) as demostrated below:
-
-
-
- dk.gov.oiosi.common.cache.TimedCache
- dk.gov.oiosi.RaspLibrary
-
-
- validityTimeInHours
- 1
-
-
- frequencyInMinutes
- 10
-
-
-
- ...
-
-
-
-2. Possible nested tags inside this section are:
- - CertificateCache - The certificated downloaded from LDAP
- - OcspLookupCache - A ocsp validation result (if the certificate has been revoked).
- - UddiServiceCache - The registration downloaded from UDDI (NemHandelsRegisteret).
- - UddiTModelCache - The special TModel key, that is used i UDDI.
- - SchemaCache - The build xml schema
- - SchematronCache - The build schematron
- - CrlLookupCache - Cache crl lists (list over the certificates, that has been revoked).
- - MessageIdUnfinishedSignaturesCache - Used in RASP communication
- - SequenceIdUnfinishedSignaturesCache - Used in RASP communication
-
-
-These tags should have sub-tags:
-
-ImplementationNamespaceClass - class name of the cache to use
-ImplementationAssembly - not used in OIORASP java, optional
-CacheConfigurationCollection - list of configuration parameters, which depend on cache implementation class.
-
-
-Detailed description:
-
-In OIORASP 1.3.0 there are 4 configurable cache implementations:
-
-1) dk.gov.oiosi.common.cache.TimedCache - contains unlimited number of cached values, which are removed from cache with some expiration time.
-Parameters:
-validityTimeInHours or validityTimeInMinutes - integer with number of hours or minutes during which cache entry is considered as not expired
-frequencyInHours or frequencyInMinutes - integer with number of hours or minutes to check expiration state of cached values.
-Default values:
-1 hour validity period and 10 minutes expiration check.
-By default this cache is used for certificates, OCSP revocation and UDDI requests caching.
-
-2) dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache - limited number of cached values, no expiration, least frequently used values are removed from cache if it is overloaded.
-Parameters:
-maxSize - integer with maximum number of cached entries.
-
-3) dk.gov.oiosi.common.cache.LeastRecentlyUsedQuantityCache - similar to LeastFrequentlyUsedQuantityCache, limited number of cached values, no expiration, but least recently used values are removed from cache if it is overloaded.
-Parameters:
-maxSize - integer with maximum number of cached entries.
-
+Possibility to configure caches (new functionality from RASP version 1.3.0)
+
+By default, after updating OIORASP library, cache configuration is changed. See "OIOSI RASP Library for Java Cache Overview 1.3.0.xlsx" for details.
+The new cache configuration settings can be seen in the default RaspConfiguration file located in /dk.gov.oiosi/src/dk.gov.oiosi.resource/RaspConfiguration.xml.
+
+How to change cache configuration:
+
+1. The cache is configurated in the ConfigurationSection element (type =CacheConfig) as demostrated below:
+
+
+
+ dk.gov.oiosi.common.cache.TimedCache
+ dk.gov.oiosi.RaspLibrary
+
+
+ validityTimeInHours
+ 1
+
+
+ frequencyInMinutes
+ 10
+
+
+
+ ...
+
+
+
+2. Possible nested tags inside this section are:
+ - CertificateCache - The certificated downloaded from LDAP
+ - OcspLookupCache - A ocsp validation result (if the certificate has been revoked).
+ - UddiServiceCache - The registration downloaded from UDDI (NemHandelsRegisteret).
+ - UddiTModelCache - The special TModel key, that is used i UDDI.
+ - SchemaCache - The build xml schema
+ - SchematronCache - The build schematron
+ - CrlLookupCache - Cache crl lists (list over the certificates, that has been revoked).
+ - MessageIdUnfinishedSignaturesCache - Used in RASP communication
+ - SequenceIdUnfinishedSignaturesCache - Used in RASP communication
+
+
+These tags should have sub-tags:
+
+ImplementationNamespaceClass - class name of the cache to use
+ImplementationAssembly - not used in OIORASP java, optional
+CacheConfigurationCollection - list of configuration parameters, which depend on cache implementation class.
+
+
+Detailed description:
+
+In OIORASP 1.3.0 there are 4 configurable cache implementations:
+
+1) dk.gov.oiosi.common.cache.TimedCache - contains unlimited number of cached values, which are removed from cache with some expiration time.
+Parameters:
+validityTimeInHours or validityTimeInMinutes - integer with number of hours or minutes during which cache entry is considered as not expired
+frequencyInHours or frequencyInMinutes - integer with number of hours or minutes to check expiration state of cached values.
+Default values:
+1 hour validity period and 10 minutes expiration check.
+By default this cache is used for certificates, OCSP revocation and UDDI requests caching.
+
+2) dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache - limited number of cached values, no expiration, least frequently used values are removed from cache if it is overloaded.
+Parameters:
+maxSize - integer with maximum number of cached entries.
+
+3) dk.gov.oiosi.common.cache.LeastRecentlyUsedQuantityCache - similar to LeastFrequentlyUsedQuantityCache, limited number of cached values, no expiration, but least recently used values are removed from cache if it is overloaded.
+Parameters:
+maxSize - integer with maximum number of cached entries.
+
4) dk.gov.oiosi.common.cache.ZeroCache - cache nothing, no parameters. Primarily used in debugging and development
\ No newline at end of file
diff --git a/doc/release-notes-1.x.x.adoc b/doc/release-notes-1.x.x.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..b948bbdfef3d6ba1530bd073c994ae2da794a3d0
--- /dev/null
+++ b/doc/release-notes-1.x.x.adoc
@@ -0,0 +1,73 @@
+include::_common-settings.adoc[]
+
+[#rasp_1_3_0]
+==== RASP version 1.3.0
+Main purposes of this release have been:
+
+* Support for oces2 certificates. This release has prepared and tested code to handle these
+new certificates. It will not be possible to start testing this in the general public before
+DanID later in 2012 opens the last infrastructure components. DanID will sometime in
+2013 stop issuing oces1 certificates and at that time, the RASP 1.3.0 (or newer) will be
+mandatory in NemHandel. It will be announced when the date is set and notification will be
+given at least 6 months in advance.
+* Optimize performance. Caches have been made configurable, memory consumption have
+been minimized, style-sheets are now pre-compiled, code is optimized – all to optimize the
+throughput of communication.
+
+This release is fully compatible with RASP 1.2.1 and 1.2.3 when using oces1 certificates.
+The 1.3.0 release is not a patch release, due to several breaking changes.
+
+In the provided Rasp Configuration file a number of default values for e.g. cache sizes have been
+proposed. These are only default values, and can be changes by users as needed.
+It is recommended to use the provided Rasp Configuration file as starting point. Please see the
+details below for configuration.
+
+.Default values
+[format="csv", options="header", separator=";"]
+|===
+Cache name;OIORASP 1.2.3.HotFix1;OIORASP 1.3.0
+LdapCertificateLookup/CertificateCache;TimedCache - 14 days;TimedCache, 24 hours validity,each 1 hour check for expiration;
+OcspLookup;TimedCache - 1 hour;TimedCache, 1 hour validity,each 10 mins check for expiration;
+UddiLookupClient.getServiceCache; TimedCache - 24 hours; TimedCache, 10 hours validity, each 10 minutes check for expiration;
+UddiLookupClient.getTModelCache;TimedCache - 24 hours;TimedCache, 24 hours validity, each 1 hour check for expiration;
+SchematronStore;QuantityCache - 2 path entries;LFU cache (max size 20), no expiration;
+CrlCache; Unlimited hashtable for each CRL url, checks for expiration each time it is accessed, updates in the same thread where it was found that it is expired;LFU cache (max size 10), if failed to update - reattempt in 5 minutes by special scheduled job, which is started after each successful cache update depending on revocation next update date from CRL server;
+SchemaStoreCache;N/A - Schema object is built each time when required;Deleted from RaspConfiguration Test and Live
+
+|===
+===== New features
+* Oces2 certificates are now supported. OIORASP 1.3.0 is prepared for DanID to start issuing
+oces2 certificates.
+* Schematron validation speed has been improved.
+* New internal Rasp logger that can be used to get status information from inside the RASP.
+Can be replaced by another logging implementation, by updating the configuration file.
+* Configurable cache and improved implementation.
+* Schema and schematron validation is moved before the sending process begins.
+* Update OIOSIMessage, so the receiving document can be received as a test string, instead
+of an XmlDocument (much faster processing, if the document is stored in e.g. database).
+* Lots of logging has been added around the code base.
+
+===== Fixes
+* Xpath for KreditNota made absolute [367]
+* Profile validation error in test-code [579]
+* Code reference to .NET 3.0 stuff fixed [598]
+* Enable code to allow SE as sender type [613]
+* Field ServiceType always empty in UddiLookupResponse [637]
+* Error in EndpointAddress corrected [644]
+
+===== Changes
+* http://discoverybackup.uddi.ehandel.gov.dk/registry/uddi/inquiry put in as default
+backup [621]
+* BouncyCastle and other libraries are updated to latest version.
+* December 2012 schematron files (version 1.3) put in as default files [668]
+* Schema is now placed correct, and loading of included schema, is also handled correct.
+* Improved samples, that show how sending and receiving should be done.
+* Use revocation CRL instead of OCSP.
+* Rasp Request interface has changed.
+* Implemented functionalities that can test certificates validity.
+* Restructuring of source code for easy reading / debugging.
+* Default location for schema and schematron files have changed, to get clearer file structure
+(related to how e.g. Schematron updates are released [633]
+
+===== Removals
+* Configuration of old VANS GW adapter removed from configuration files.
diff --git a/doc/release-notes-2.0.x.adoc b/doc/release-notes-2.0.x.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..a4db72214a8d9d117e557a290b5a107df1fa71c2
--- /dev/null
+++ b/doc/release-notes-2.0.x.adoc
@@ -0,0 +1,70 @@
+
+[#rasp_2_0_0]
+==== RASP version 2.0.2
+Main purposes of this patch release have been fixing smaller issues not related to functionality.
+
+===== New features
+_None_
+
+===== Fixes
+* Spelling and divided text strings fixed.
+* Minor exception error fixed in OcspConfig.
+* Some invalid example files updated.
+
+===== Changes
+* Unit tests depending on old UDDI Test setup, has been updated to depend on new NHR
+Test setup.
+* Schematron version 1.5 to project (2013.09.15) added to project
+(http://digitaliser.dk/resource/2514884)
+* Presentation style-sheets version 1.5 (2013.03.15) added to project
+(http://digitaliser.dk/resource/2455502)
+* dk.gov.oiosi.raspProfile.dll added to binary package.
+
+===== Removals
+_None_
+
+==== RASP version 2.0.1
+Main purposes of this patch release have been fixing a serious cache issue.
+
+The problem also persists in RASP version 1.3.0, but by intention, a patch is not released for RASP
+1.3.0 because all NemHandel parties must upgrade to RASP 2.x.x latest June 2013.
+
+===== New features
+_None_
+
+===== Fixes
+* Implementation of TimedCache had an error multiplying the cache time by 60. So a
+CertificateCache with validityTimeInHours=24 cached the certificates for 60 days [1210].
+
+===== Changes
+_None_
+
+===== Removals
+_None_
+
+==== RASP version 2.0.0
+Main purposes of this release have been:
+
+* Full support for Foces2 certificates. Foces1 is still supported in this version, BUT after
+June 2013 DanID will no longer issue Foces1 certificates. Renewal of Foces1 certificates
+will also not be possible after this date.
+
+The version number is changed to 2.0.0 to clearly indicate, that this version of RASP will not be
+able to communicate with any RASP 1.x software where one of the parties communicating has
+updated to Foces2.
+
+===== New features
+_None_
+===== Fixes
+* Error messages for invalid certificate (before activation or after expire) has been updated to
+show certificate subject [1098].
+
+===== Changes
+* LDAP URL changed in RaspConfiguration.xml (/Host) to crtdir.certifikat.dk [1053].
+* RASP library identifies itself by platform and version number when making Uddi Inquiry
+requests [1142].
+* Log4net library updated from version 1.2.10 to 1.2.11 [1168].
+
+===== Removals
+_None_
diff --git a/doc/release-notes-2.1.1_HOTFIX.txt b/doc/release-notes-2.1.1_HOTFIX.adoc
similarity index 82%
rename from doc/release-notes-2.1.1_HOTFIX.txt
rename to doc/release-notes-2.1.1_HOTFIX.adoc
index 97545b01a6c57575725c827350c54ab4cbbeb612..a3e9cd5b5fac5013f6e2bd0e37780d61b7e23aff 100644
--- a/doc/release-notes-2.1.1_HOTFIX.txt
+++ b/doc/release-notes-2.1.1_HOTFIX.adoc
@@ -1,14 +1,16 @@
-Fixing OIORASP .NET library version 2.1.0
+include::_common-settings.adoc[]
+
+== Fixing OIORASP .NET library version 2.1.0
In the current release of the OIORASP .NET library an XXE injection vulnerability has been reported in log4net versions lower than 2.0.8.
https://issues.apache.org/jira/browse/LOG4NET-575
-This issue is fixed and the referenced version of log4net has been updated to 2.0.12.
+This issue is fixed and the referenced version of log4net has been updated to 2.0.12.
In order to "patch" an existing RASP 2.1.0 (binary distribution), please reference the following steps:
1. Download the oiorasp_net_2_1_0_hotfix.zip [Located in the Hotfix folder]
2. Replace dk.gov.oiosi.logging.dll and log4net.dll with the patched versions of the assemblies from the .zip file.
3. You are good to go.
-Disclaimer: This is a hotfix, and it is advised to change the entire binary library from 2.1.0 to 2.1.1.
-However, this patch is released shortly prior to an upcoming RASP 3.0.0 release, and by hotfixing 2.1.0 you can prevent updating the RASP library twice.
\ No newline at end of file
+Disclaimer: This is a hotfix, and it is advised to change the entire binary library from 2.1.0 to 2.1.1.
+However, this patch is released shortly prior to an upcoming RASP 3.0.0 release, and by hotfixing 2.1.0 you can prevent updating the RASP library twice.
diff --git a/doc/release-notes-2.1.2_HowToCodeSign b/doc/release-notes-2.1.2_HowToCodeSign
new file mode 100644
index 0000000000000000000000000000000000000000..0b2c125c58a47611aa5959a657beeb48eeb2b51e
--- /dev/null
+++ b/doc/release-notes-2.1.2_HowToCodeSign
@@ -0,0 +1,18 @@
+How to Strong Name and Code Sign OIORASP 2.1.2
+
+If you are using the OIORASP .NET open source library, and want to use our premade NAnt build scripts to easily sign the code - using an .pfx certificate.
+
+Steps (Code Signing)
+-----
+
+1. Download new release from http://digitaliser.dk/group/405467/resources/type/150019
+
+2. Replace your old .dll files with the new .dll and .config files
+
+3. Update your RaspConfiguration.xml file - remember to:
+ - adjust path to resources (schema + schematron files)
+ - change ConfigurationSection "LdapSettings": Host has changed to crtdir.certifikat.dk
+ - add Oces2 root certificate in ConfigurationSection "RootCertificateCollectionConfig"
+
+Steps (Strong Name)
+-----
\ No newline at end of file
diff --git a/doc/release-notes-2.1.2_HowToUpgrade.txt b/doc/release-notes-2.1.2_HowToUpgrade.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f13863ea5b4f7c7e10a4197ffb42f793b74137bb
--- /dev/null
+++ b/doc/release-notes-2.1.2_HowToUpgrade.txt
@@ -0,0 +1,42 @@
+How to upgrade project from Net 2.1.1 to version 2.1.2
+
+This file should be seen as a guide for migrating own code to OIORASP library 2.1.2
+The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup!
+
+Steps (Using binary library)
+-----
+
+1. Download new release from http://digitaliser.dk/group/405467/resources/type/150019
+
+2. Replace your old .dll files with the new .dll and .config files
+
+3. Update your RaspConfiguration.xml file - remember to:
+ - adjust path to resources (schema + schematron files)
+ - change ConfigurationSection "LdapSettings": Host has changed to crtdir.certifikat.dk
+ - add Oces2 root certificate in ConfigurationSection "RootCertificateCollectionConfig"
+
+Steps (Using open source OIORASP .NET library) (Option 1 - manually)
+-----
+
+1. Download the log4net.dll and log4net.xml matching version 2.0.12
+
+2. Replace log4net.dll and log4net.xml in the lib folder
+
+3. Update the reference for Log4net in dk.gov.oiosi.Logging
+(Can be done by removing the reference, and re-adding it pointing to the new log4net.dll.)
+
+Steps (Using open source OIORASP .NET library) (Option 2 - handle with Nuget)
+-----
+
+1. Add Nuget package log4net version 2.0.12 to dk.gov.oiosi.Logging
+
+2. Replace log4net.dll and log4net.xml in the lib folder
+
+3. Update the reference for Log4net in dk.gov.oiosi.Logging //Can be done by removing the reference, and re-adding it pointing to the new log4net.dll.
+
+[NOTE]
+For developers using their own implementation of the OIORASP .NET library - its is strongly recommended to check the current version of the Log4net component, and upgrade to 2.0.8 or higher.
+
+That should be it..!
+
+It you meet problems, that should be included in this guide, please post your comments to the following email address: support@nemhandel.dk
diff --git a/doc/release-notes-2.1.2_Log4net_update.txt b/doc/release-notes-2.1.2_Log4net_update.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2b2e4660825828cf3da75faf805c4a474caf0da9
--- /dev/null
+++ b/doc/release-notes-2.1.2_Log4net_update.txt
@@ -0,0 +1,23 @@
+OIORASP .NET library version 2.1.2
+
+RASP Version 2.1.2
+The main purpose of this patch release is to fix an existing security issue within the Log4net component.
+
+An XXE injection vulnerability has been reported in log4net versions lower than 2.0.8.
+https://issues.apache.org/jira/browse/LOG4NET-575
+
+New Features:
+- All assemblies is now code signed using official ERST code signing certificate.
+- All assemblies is now StrongName signed.
+
+Removals:
+- Removed log4net.dll and Log4net.xml from [root]/lib. (The dependecy is now handled as a Nuget Package)
+
+Changes:
+- Updated reference to log4net on dk.gov.oiosi.Logging from version 1.2.10 to 2.0.12.
+
+Fixes:
+- Fixed failing Unit test in UddiLookupClientTest.cs:
+
+The expected certificate has been changed.
+
diff --git a/doc/release-notes-2.1.x.adoc b/doc/release-notes-2.1.x.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..ae657e207d25adbba5e31033c5377159512737e0
--- /dev/null
+++ b/doc/release-notes-2.1.x.adoc
@@ -0,0 +1,52 @@
+include::_common-settings.adoc[]
+
+[#rasp_2_1_1]
+== RASP version 2.1.1
+Main purposes of this release have been:
+
+* Make patch for NemHandel Referenceklient to avoid program stop on 2 Trust2408 root
+certs in Windows cert. store.
+
+=== New features
+_None_
+
+=== Fixes
+_None_
+
+=== Changes
+* Update CertificateLoader.GetCertificateFromStore to avoid
+CertificateLoaderMultipleCertificatesFoundException() based on more than one found cert
+(issue 1961).
+
+=== Removals
+_None_
+
+== RASP version 2.1.0
+Main purposes of this release have been:
+* Update code to enable PEPPOL BIS documents in Danish Nemhandel.
+
+=== New features
+* Support multiple schematron validations per document type.
+* Send document, having a Sender part with other KeyType than the valid Danish receiver
+KeyTypes.
+* xPath parsing of values in RaspConfiguration has been updated, so it’s possible to set a
+fixed value instead of an xpath – eg. string(‘EAN’).
+* RaspConfiguration: It now possible to set an empty string as value for to
+disable Schema validation for a single document type.
+* Support schematron styling using XSLT version 2.0 (Peppol schematrons), by using IKWM
+and Saxon.
+
+=== Fixes
+* Minor memory improvement (release resource after use).
+
+=== Changes
+* Minor restricting of internal functionality
+* BouncyCastle.Crypto.dll has been updated from version 1.7 to version 1.8.
+* dk.gov.oiosi.xml.dll has been removed, as it was not used.
+* Add several new required libraries (IKWM and saxon) for the XSLT version 2.0 styling.
+
+=== Removals
+* Functionality and classes that convert and KeyType to a specific Identifier implementation,
+using the enum EndpointKeyTypeCode.
+* Removed lesnikowskiMailProvider and some code around mail sending and receiving.
+* Removed invalid and not used enum EndpointAddressTypeCode values.
diff --git a/doc/release-notes-3.0.0.adoc b/doc/release-notes-3.0.0.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..81db608f69bd1cb619d3bd20f0d6507d8b13068d
--- /dev/null
+++ b/doc/release-notes-3.0.0.adoc
@@ -0,0 +1,135 @@
+include::_common-settings.adoc[]
+
+[#rasp_3_0_0]
+== OIORASP version 3.0.0
+
+=== New features
+* Configure the timeout for NHR UDDI requests.
+
+=== Fixes
+_none_
+
+=== Changes
+.Related to support for MitID (NH-675)
+* The OIORASP .NET library is now compiled using .NET 4.6.2 (Previous 3.5).
+* RaspConfiguration has been updated.
+* Structure for LdapSettings in RaspConfiguration.xml is updated to be able to add new LDAP host for MitID certificates (NH-676).
+* Element `SearchClientTimeoutMsec` in LdapSettings in RaspConfiguration.xml is renamed to `SocketTimeoutMsec`.
+* BouncyCastle library has been updated to version 1.89 (from 1.81).
+
+.Other
+* Saxon-HE library has been updated to version 10.3 (from 9) (NH-851).
+* Improved error codes/messages (NH-802)
+* RaspConfiguration has been split into two different documents:
+** RaspConfiguration (default) which contains OIOUBL and NKS document types.
+** RaspConfiguration_Extended which contains OIOUBL, NKS and Peppol document types.
+
+
+=== Removals
+* From ConfigurationSection `LdapSettings`, then elements `MaxResults` and `SearchServerTimeoutMsec` has been removed. This element is legacy and has not been used in several releases. If multiple results are found in LDAP response, then code cannot decide which to use, so exactly one result is the only solution.
+* From ConfigurationSection `UddiConfig`, then element `FallbackTimeoutMinutes` has been removed. This element is legacy and has not been used in several releases [NH-793].
+* From ConfigurationSection `OcesX509CertificateConfig`, then elements PersonalCertificateSubjectKey and EmployeeCertificateSubjectKey has been removed.
+* Mappings in RaspConfiguration is now obsolete. See OIORASP_Library_RaspConfiguration.adoc for details.
+
+=== How to upgrade
+How to upgrade project from OIORASP .NET 2.1.X to version 3.0.0.
+
+NOTE: The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup!
+
+Steps:
+
+. Download new release from https://www.digitaliser.dk/group/405467/resources or https://nemhandel.dk/opdateringer-releases
+. File changes:
+* Replace your old .dll files with the new .dll and .config files (From the zip-folder: dk.gov.oiosi-bin-{versionNumberTagged}.zip).
+. Updated dependencies:
+* Saxon-HE from 9 to 10.3
+* BouncyCastle from 1.81 to 1.89
+* Log4Net from 1.2.12 to 2.0.12 (See 2.1.1 Log4Net Hotfix)
+. RaspConfiguration.xml must be updated!
+* See <> section.
+
+That should be it...!
+
+It you meet problems, that should be included in this guide, please post your comments to the following email address:
+support@nemhandel.dk
+
+=== Configuration
+
+include::release-notes-raspconfiguration-3.0.0.adoc[]
+
+==== Mappings removal
+
+In OIORASP version 2.1.X a few mappings was needed for backwards compatibility.
+
+[source, xml]
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+These mappings can from 3.0.0 be removed entirely.
+
+[source, xml]
+
+
+
+
+
+
+==== Timeout for NHR UDDI requests
+The timeout value for NHR UDDI requests ca be configured in the RaspConfiguration.xml file, by adding the new element `UddiLookupTimeoutSeconds` inside each `Registry` segment in the ConfigurationSection `UddiConfig`:
+
+[source,xml]
+----
+include::../src/dk.gov.oiosi.resource/RaspConfiguration.Live.xml[tag=config_UddiLookupTimeoutSeconds]
+----
+<1> The new element.
+
+If element is not present, a default value of 120 seconds is used.
+
+
+==== LdapSettings
+New host and port elements are required for the MitID LDAP server, and it is required to be able to distinguish between NemID and MitID LDAP hosts.
+
+The current ConfigurationSection `LdapSettings` needs to be restructured to the following syntax:
+
+[source,xml]
+----
+include::../src/dk.gov.oiosi.resource/RaspConfiguration.Live.xml[tag=config_LdapSettings]
+----
+<1> The host and port elements must be wrapped in a `CertificateInfrastructure` element holding the id value `NemID` or `MitID`.
+<2> The timeout values are configured globally for both LDAP hosts/Certificate Infrastructures.
+
+Both `CertificateInfrastructure` elements are mandatory.
+
+==== Root certificates
+The keystore containing root certificates (see ConfigurationSection `RootCertificateCollectionConfig` ) must be updated: Add the new MitID root certificate as a new `RootCertificateLocation`.
+
+[source, xml]
+
+ LocalMachine
+ Root
+ CERTIFICATE-SERIALNUMBER
+ CERTIFICATE-NAME/DESCRIPTION
+
+
+
+Remember to change `StoreLocation` and `StoreName` - depending on where you store your cerficates in the Windows certificate store.
+
+
+The new MitID root certificates can be downloaded here:
+
+// TODO: See http://loggen.es.lan/browse/NH-899
+- PROD: http://ca1.gov.dk/oces/root/cacert/root.cer (not active until Q4 2021)
+- TEST: http://ca1.cti-gov.dk/oces/root/cacert/root.cer
diff --git a/doc/release-notes-raspconfiguration-2.1.x.adoc b/doc/release-notes-raspconfiguration-2.1.x.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..4a96f54e0e095fc86d97e8c249518b97edfaa1ef
--- /dev/null
+++ b/doc/release-notes-raspconfiguration-2.1.x.adoc
@@ -0,0 +1,1060 @@
+include::_common-settings.adoc[]
+
+==== RaspConfiguration.xml (OIORASP 2.1.0)
+
+===== Changes from 2.0.X to 2.1.0
+
+OIORASP 2.1.0 now allow Peppol BIS documents to be exchanged via the Nemhandel infrastructure.
+Further more KeyType mappings has been deprecated, as the NHR Uddi Inquiry now directly supports the KeyType inside each DocumentTypeConfig.
+
+For backwards compatibility when sending to RASP Java 2.0.X endpoints, 6 old mappings are essential to
+keep in relation to OIOUBL.
+
+.DocumentTypeConfig (2.1.0 mapping example)
+[source, xml]
+
+ 56c73b32-e1ba-4dc4-9fde-f08f4424fe2c
+ Faktura v0.7
+ http://rep.oio.dk/ubl/xml/schemas/0p71/pie/
+ Invoice
+ uddi:bc99bb01-80f9-4f52-89dc-edf7732c56f9
+ Resources/Schemas/OIOXML_v0.7/piestrict.xsd
+ Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl
+
+
+ http://rep.oio.dk/ubl/xml/schemas/0p71/common/
+ com
+
+
+ http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/
+ main
+
+
+ http://rep.oio.dk/ubl/xml/schemas/0p71/pie/
+ root
+
+
+
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Request
+ *
+
+ /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='fakturering']/com:Name
+
+
+ /root:Invoice/com:SellerParty/com:PartyName/com:Name
+
+
+ /root:Invoice/com:BuyersReferenceID
+
+
+ EndpointKeyType
+ /root:Invoice/com:BuyersReferenceID/@schemeID
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+ /root:Invoice/com:SellerParty/com:ID
+
+
+ EndpointKeyType
+ /root:Invoice/com:SellerParty/com:ID/@schemeID
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+
+
+
+ Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl
+ /schematron/error
+ /schematron/error
+
+
+
+
+
+
+
+.DocumentType identification
+Prior, a DocumentType was identified inside the using:
+
+[source, xml]
+urn:oasis:names:specification:ubl:schema:xsd:Invoice-2
+ Invoice
+
+
+ /root:Invoice/cbc:CustomizationID
+ OIOUBL-2.0(1|2)
+
+
+
+By utilizing the existing , it is possible to discriminate the OIOUBL Invoice
+from the Peppol BIS Invoice.
+
+.Schematron validation
+Prior, RASP only supported one Schematron/XSLT file per DocumentType using:
+
+[source, xml]
+
+ path/to/file/Schematron.xsl
+ /Schematron/Error
+ /Schematron/Error/Description
+
+
+In Peppol documents, multiple schematron files are provided per DocumentType.
+This section must therefore now be wrapped in a container class called :
+[source, xml]
+
+
+ path/to/file/Schematron.xsl
+ /Schematron/Error
+ /Schematron/Error/Description
+
+
+
+ This allows for multiple elements. These elements are validated in the
+ listed order.
+
+==== New Peppol DocumentTypeConfig
+
+.Peppol Catalogue
+[source, xml]
+
+ 24750a44-9a18-46f4-85ef-50f00c90068b
+ Katalog (Peppol)
+ urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2
+ Catalogue
+
+
+ /root:Catalogue/cbc:CustomizationID
+ urn:www.cenbii.eu:transaction:biitrns019:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver4.0
+
+
+ uddi:6c917ef1-5143-4123-879a-471215dbd373
+ Resources/Schemas/UBL_v2.1/maindoc/UBL-Catalogue-2.1.xsd
+
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2
+ cac
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2
+ cbc
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2
+ ccts
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2
+ sdt
+
+
+ urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2
+ udt
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2
+ root
+
+
+
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePeppol1aInterface/SubmitCataloguRequest
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePeppol1aInterface/SubmitCatalogueResponse
+
+ /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name
+
+
+ /root:Catalogue/cac:ProviderParty/cac:PartyName/cbc:Name
+
+
+ /root:Catalogue/cac:ReceiverParty/cbc:EndpointID
+
+
+ EndpointKeyType
+ /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+ /root:Catalogue/cac:ProviderParty/cbc:EndpointID
+
+
+ EndpointKeyType
+ /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+
+
+
+ Resources/Schematrons/Peppol/BIS2.0-catalogue1a/XSLT/BIIRULES-UBL-T19.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+ Resources/Schematrons/Peppol/BIS2.0-catalogue1a/XSLT/OPENPeppolCORE-UBL-T19.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+ Resources/Schematrons/Peppol/BIS2.0-catalogue1a/XSLT/OPENPeppol-UBL-T19.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+
+
+
+
+ /root:Catalogue/cbc:ProfileID
+
+
+ /root:Catalogue/cbc:ID
+
+
+
+.Peppol Application response
+[source, xml]
+
+ 551e8437-f543-46cf-bd56-492a25e723fc
+ Applikationsmeddelse (Peppol)
+ urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2
+ ApplicationResponse
+
+
+ /root:ApplicationResponse/cbc:CustomizationID
+ urn:www.cenbii.eu:transaction:biitrns058:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver2.0
+
+
+ uddi:e79dd402-8f60-4811-9f59-1acb0c036d05
+ Resources/Schemas/UBL_v2.1/maindoc/UBL-ApplicationResponse-2.1.xsd
+ Resources/UI/OIOUBL/Stylesheets/ApplicationResponseHTML.xsl
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2
+ cac
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2
+ cbc
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2
+ ccts
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2
+ sdt
+
+
+ urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2
+ udt
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2
+ root
+
+
+
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponsePeppol1aInterface/SubmitApplicationResponseRequest
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponsePeppol1aInterface/SubmitApplicationResponseResponse
+
+ /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name
+
+
+ /root:ApplicationResponse/cac:SenderParty/cac:PartyName/cbc:Name
+
+
+ /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID
+
+
+ EndpointKeyType
+ /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+ /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID
+
+
+ EndpointKeyType
+ /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+
+
+
+ Resources/Schematrons/Peppol/BIS2.0-catalogue1a/XSLT/BIIRULES-UBL-T58.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+ Resources/Schematrons/Peppol/BIS2.0-catalogue1a/XSLT/OPENPeppolCORE-UBL-T58.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+ Resources/Schematrons/Peppol/BIS2.0-catalogue1a/XSLT/OPENPeppol-UBL-T58.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+
+
+
+
+ /root:ApplicationResponse/cbc:ProfileID
+
+
+ /root:ApplicationResponse/cbc:ID
+
+
+
+.Peppol Credit note
+[source, xml]
+
+ 21671b33-58a2-4ab5-96bd-42f6c4f22af6
+ Kreditnota (Peppol)
+ urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2
+ CreditNote
+
+
+ /root:CreditNote/cbc:CustomizationID
+ urn:www.cenbii.eu:transaction:biitrns014:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0
+
+
+ uddi:4db3f358-6184-4979-bbc9-5d65aee27132
+ Resources/Schemas/UBL_v2.1/maindoc/UBL-CreditNote-2.1.xsd
+ Resources/UI/OIOUBL/Stylesheets/CreditNoteHTML.xsl
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2
+ cac
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2
+ cbc
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2
+ ccts
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2
+ sdt
+
+
+ urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2
+ udt
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2
+ root
+
+
+
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNotePeppol5aInterface/SubmitCreditNoteRequest
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNotePeppol5aInterface/SubmitCreditNoteResponse
+
+ /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name
+
+
+ /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name
+
+
+ /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID
+
+
+ EndpointKeyType
+ /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+ /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID
+
+
+ EndpointKeyType
+ /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+
+
+
+ Resources/Schematrons/Peppol/BIS2.0-billing5a/XSLT/BIIRULES-UBL-T14.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+ Resources/Schematrons/Peppol/BIS2.0-billing5a/XSLT/OPENPeppolCORE-UBL-T14.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+ Resources/Schematrons/Peppol/BIS2.0-billing5a/XSLT/OPENPeppol-UBL-T14.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+
+
+
+
+ /root:CreditNote/cbc:ProfileID
+
+
+ /root:CreditNote/cbc:ID
+
+
+
+.Peppol Despatch advice
+[source, xml]
+
+ 9e8b18e5-416e-4c41-9b9f-adadc3de6598
+ Forsendelsesadvis
+ urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2
+ DespatchAdvice
+
+
+ /root:DespatchAdvice/cbc:CustomizationID
+ urn:www.cenbii.eu:transaction:biitrns016:ver1.0:extended:urn:www.peppol.eu:bis:peppol30a:ver1.0
+
+
+ uddi:96dbec86-aa58-4f1e-ae03-ebb13079ce61
+ Resources/Schemas/UBL_v2.1/maindoc/UBL-DespatchAdvice-2.1.xsd
+
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2
+ cac
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2
+ cbc
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2
+ ccts
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2
+ sdt
+
+
+ urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2
+ udt
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2
+ root
+
+
+
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2014/09/15/DespatchAdvice10Interface/SubmitDespatchAdviceRequest
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2014/09/15/DespatchAdvice10Interface/SubmitDespatchAdviceResponse
+
+ /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cac:PartyName/cbc:Name
+
+
+ /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cac:PartyName/cbc:Name
+
+
+ /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cbc:EndpointID
+
+
+ EndpointKeyType
+ /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cbc:EndpointID/@schemeID
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+ /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cbc:EndpointID
+
+
+ EndpointKeyType
+ /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cbc:EndpointID/@schemeID
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+
+
+
+ Resources/Schematrons/Peppol/BIS2.0-despatchadvice30a/XSLT/BIIRULES-UBL-T16.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+ Resources/Schematrons/Peppol/BIS2.0-despatchadvice30a/XSLT/OPENPeppolCORE-UBL-T16.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+ Resources/Schematrons/Peppol/BIS2.0-despatchadvice30a/XSLT/OPENPeppol-UBL-T16.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+
+
+
+
+ /root:DespatchAdvice/cbc:ProfileID
+
+
+ /root:DespatchAdvice/cbc:ID
+
+
+
+.Peppol Invoice
+[source, xml]
+
+ c1061668-0549-452c-b0cb-7d6428fdc5f7
+ Faktura (Peppol)
+ urn:oasis:names:specification:ubl:schema:xsd:Invoice-2
+ Invoice
+
+
+ /root:Invoice/cbc:CustomizationID
+ urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol4a:ver2.0
+
+
+ uddi:e956ca42-0be2-487a-8573-580b523c248d
+ Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd
+ Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2
+ cac
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2
+ cbc
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2
+ ccts
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2
+ sdt
+
+
+ urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2
+ udt
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:Invoice-2
+ root
+
+
+
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse
+
+ /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name
+
+
+ /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name
+
+
+ /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID
+
+
+ EndpointKeyType
+ /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+ /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID
+
+
+ EndpointKeyType
+ /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+
+
+
+ Resources/Schematrons/Peppol/BIS2.0-invoice4a/XSLT/BIIRULES-UBL-T10.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+ Resources/Schematrons/Peppol/BIS2.0-invoice4a/XSLT/OPENPeppolCORE-UBL-T10.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+ Resources/Schematrons/Peppol/BIS2.0-invoice4a/XSLT/OPENPeppol-UBL-T10.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+
+
+
+
+ /root:Invoice/cbc:ProfileID
+
+
+ /root:Invoice/cbc:ID
+
+
+
+
+.Peppol ORDER
+[source, xml]
+
+ db2f9050-2adb-49c2-8f05-af9e440d12ca
+ Ordre (Peppol)
+ urn:oasis:names:specification:ubl:schema:xsd:Order-2
+ Order
+
+
+ /root:Order/cbc:CustomizationID
+ urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol3a:ver2.0
+
+
+ uddi:873c25f6-23d2-4019-830e-89cc89386930
+ Resources/Schemas/UBL_v2.1/maindoc/UBL-Order-2.1.xsd
+ Resources/UI/OIOUBL/Stylesheets/OrderHTML.xsl
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2
+ cac
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2
+ cbc
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2
+ ccts
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2
+ sdt
+
+
+ urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2
+ udt
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:Order-2
+ root
+
+
+
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderPeppol3aInterface/SubmitOrderRequest
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderPeppol3aInterface/SubmitOrderResponse
+
+ /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name
+
+
+ /root:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name
+
+
+ /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID
+
+
+ EndpointKeyType
+ /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+ /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID
+
+
+ EndpointKeyType
+ /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+
+
+
+ Resources/Schematrons/Peppol/BIS2.0-order3a/XSLT/BIIRULES-UBL-T01.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+ Resources/Schematrons/Peppol/BIS2.0-order3a/XSLT/OPENPeppolCORE-UBL-T01.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+ Resources/Schematrons/Peppol/BIS2.0-order3a/XSLT/OPENPeppol-UBL-T01.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+
+
+
+
+ /root:Order/cbc:ProfileID
+
+
+ /root:Order/cbc:ID
+
+
+
+.Peppol BIS Billing
+
+[source, xml]
+
+ bab5613e-6360-4e84-84a3-61838a77590c
+ Faktura (Peppol BIS Billing)
+ urn:oasis:names:specification:ubl:schema:xsd:Invoice-2
+ Invoice
+
+
+ /root:Invoice/cbc:CustomizationID
+
+ urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0
+
+
+
+ uddi:678befa8-ae31-437a-8e52-1139162698df
+ Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd
+ Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2
+ cac
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2
+ cbc
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2
+ ccts
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2
+ sdt
+
+
+
+ urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2
+
+ udt
+
+
+ urn:oasis:names:specification:ubl:schema:xsd:Invoice-2
+ root
+
+
+
+
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest
+
+
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse
+
+
+ /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name
+
+
+ /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name
+
+
+ /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID
+
+
+ EndpointKeyType
+
+ /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID
+
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+ /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID
+
+
+ EndpointKeyType
+
+ /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID
+
+
+
+
+ GLN
+ ean
+
+
+ DK:CVR
+ cvr
+
+
+ DK:CPR
+ cpr
+
+
+
+
+
+
+
+
+
+ Resources/Schematrons/Peppol/BIS3.0-Billing/CEN-EN16931-UBL.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+ Resources/Schematrons/Peppol/BIS3.0-Billing/Peppol-EN16931-UBL.xsl
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']
+ /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text
+
+
+
+
+
+
+ /root:Invoice/cbc:ProfileID
+
+
+ /root:Invoice/cbc:ID
+
+
diff --git a/doc/release-notes-raspconfiguration-3.0.0.adoc b/doc/release-notes-raspconfiguration-3.0.0.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..bd9cb2525fb091cd2c0ea1e3c0ff5f0cf657669b
--- /dev/null
+++ b/doc/release-notes-raspconfiguration-3.0.0.adoc
@@ -0,0 +1,163 @@
+include::_common-settings.adoc[]
+
+==== RaspConfiguration.xml (OIORASP 3.0.0)
+
+===== Changes from 2.1.0 to 3.0.0
+As OIORASP version 3.0.0 is not backwards compatible with earlier versions of OIORASP, the legacy mappings for 2.0.1 backwards compatibility has now been removed.
+
+The RaspConfiguration has been split into two versions. A default containing the OIOUBL document types, and an extended version with both OIOUBL and Peppol document types.
+
+[cols="1,1", option="header"]
+|===
+|File name
+|Document types
+
+|RaspConfiguration
+|
+Faktura v0.7 +
+Kreditnota v0.7 +
+Applikationsmeddelelse +
+Katalog +
+Katalogforespørgsel +
+Opdatering af katalogelement +
+Opdatering af katalogpriser +
+Sletning af katalog +
+Kreditnota +
+Faktura +
+Ordre +
+Ordreannullering +
+Ordrebekræftelse +
+Ordreændring +
+Simpel ordrebekræftelse +
+Rykker +
+Kontoudtog +
+Forsyningsspecifikation +
+Forsendelsesadvis +
+NKS Betalings Ordre +
+NKS Kvittering 0 +
+NKS Kvittering 1 +
+NKS Retursvar 2 +
+NKS Retursvar 5 +
+NKS Retursvar 7 +
+NKS Retursvar 8 +
+NKS Retursvar 9 +
+NKS PU Request +
+NKS PU Response +
+
+|RaspConfiguration_Extended
+|
+Faktura v0.7 +
+Kreditnota v0.7 +
+Applikationsmeddelelse +
+Katalog +
+Katalogforespørgsel +
+Opdatering af katalogelement +
+Opdatering af katalogpriser +
+Sletning af katalog +
+Kreditnota +
+Faktura +
+Ordre +
+Ordreannullering +
+Ordrebekræftelse +
+Ordreændring +
+Simpel ordrebekræftelse +
+Rykker +
+Kontoudtog +
+Forsyningsspecifikation +
+Forsendelsesadvis +
+NKS Betalings Ordre +
+NKS Kvittering 0 +
+NKS Kvittering 1 +
+NKS Retursvar 2 +
+NKS Retursvar 5 +
+NKS Retursvar 7 +
+NKS Retursvar 8 +
+NKS Retursvar 9 +
+NKS PU Request +
+NKS PU Response +
+*Katalog (Peppol)* +
+*Applikationsmeddelelse (Peppol)* +
+*Kreditnota (Peppol)* +
+*Faktura (Peppol)* +
+*Ordre (Peppol)* +
+*Faktura (Peppol BIS Billing)* +
+|===
+
+.DocumentTypeConfig (Removed mappings example)
+
+[source, xml]
+
+ 5a15a880-eef8-40c0-80f2-bb65226f50c2
+ Faktura v0.7
+ http://rep.oio.dk/ubl/xml/schemas/0p71/pie/
+ Invoice
+
+ uddi:bc99bb01-80f9-4f52-89dc-edf7732c56f9
+ Resources/Schemas/OIOXML_v0.7/pieStrict.xsd
+ Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl
+
+
+ http://rep.oio.dk/ubl/xml/schemas/0p71/common/
+ com
+
+
+ http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/
+ main
+
+
+ http://rep.oio.dk/ubl/xml/schemas/0p71/pie/
+ root
+
+
+
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Request
+ http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Response
+
+ /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='fakturering']/com:Name
+
+
+ /root:Invoice/com:SellerParty/com:PartyName/com:Name
+
+
+ /root:Invoice/com:BuyersReferenceID
+
+
+ EndpointKeyType
+ /root:Invoice/com:BuyersReferenceID/@schemeID
+
+
+
+
+
+
+
+ /root:Invoice/com:SellerParty/com:ID
+
+
+ EndpointKeyType
+ /root:Invoice/com:SellerParty/com:ID/@schemeID
+
+
+
+
+
+
+
+
+
+
+ Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl
+ /schematron/error
+ /schematron/error
+
+
+
+
+
+
+ string('OIOXML elektronisk handel')
+
+
+ /root:Invoice/com:ID
+
+
diff --git a/lib/asciidoctorj-2.5.1/bin/asciidoctorj b/lib/asciidoctorj-2.5.1/bin/asciidoctorj
new file mode 100644
index 0000000000000000000000000000000000000000..da1ada648fdb9dc070af4a652d852b7ab8e08954
--- /dev/null
+++ b/lib/asciidoctorj-2.5.1/bin/asciidoctorj
@@ -0,0 +1,167 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+## asciidoctorj start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/.." >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="asciidoctorj"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and ASCIIDOCTORJ_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-client" "-Xmn128m" "-Xms256m" "-Xmx256m" "-Djava.awt.headless=true" "-Xverify:none" "-XX:+TieredCompilation" "-XX:TieredStopAtLevel=1" "-XX:+DisableExplicitGC" "-Djruby.compile.mode=OFF"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/lib/asciidoctorj-2.5.1-bin.jar:$APP_HOME/lib/asciidoctorj-2.5.1.jar:$APP_HOME/lib/asciidoctorj-api-2.5.1.jar:$APP_HOME/lib/asciidoctorj-epub3-1.5.1.jar:$APP_HOME/lib/asciidoctorj-diagram-2.1.2.jar:$APP_HOME/lib/asciidoctorj-pdf-1.5.4.jar:$APP_HOME/lib/asciidoctorj-revealjs-4.1.0.jar:$APP_HOME/lib/jruby-complete-9.2.17.0.jar:$APP_HOME/lib/jcommander-1.72.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $ASCIIDOCTORJ_OPTS -classpath "\"$CLASSPATH\"" org.asciidoctor.jruby.cli.AsciidoctorInvoker "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
\ No newline at end of file
diff --git a/lib/asciidoctorj-2.5.1/bin/asciidoctorj.bat b/lib/asciidoctorj-2.5.1/bin/asciidoctorj.bat
new file mode 100644
index 0000000000000000000000000000000000000000..afe19f276645072b202ed0b4352358dc07989d33
--- /dev/null
+++ b/lib/asciidoctorj-2.5.1/bin/asciidoctorj.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem asciidoctorj startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%..
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and ASCIIDOCTORJ_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-client" "-Xmn128m" "-Xms256m" "-Xmx256m" "-Djava.awt.headless=true" "-Xverify:none" "-XX:+TieredCompilation" "-XX:TieredStopAtLevel=1" "-XX:+DisableExplicitGC" "-Djruby.compile.mode=OFF"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\lib\asciidoctorj-2.5.1-bin.jar;%APP_HOME%\lib\asciidoctorj-2.5.1.jar;%APP_HOME%\lib\asciidoctorj-api-2.5.1.jar;%APP_HOME%\lib\asciidoctorj-epub3-1.5.1.jar;%APP_HOME%\lib\asciidoctorj-diagram-2.1.2.jar;%APP_HOME%\lib\asciidoctorj-pdf-1.5.4.jar;%APP_HOME%\lib\asciidoctorj-revealjs-4.1.0.jar;%APP_HOME%\lib\jruby-complete-9.2.17.0.jar;%APP_HOME%\lib\jcommander-1.72.jar
+
+
+@rem Execute asciidoctorj
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %ASCIIDOCTORJ_OPTS% -classpath "%CLASSPATH%" org.asciidoctor.jruby.cli.AsciidoctorInvoker %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable ASCIIDOCTORJ_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%ASCIIDOCTORJ_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/lib/asciidoctorj-2.5.1/lib/asciidoctorj-2.5.1.jar b/lib/asciidoctorj-2.5.1/lib/asciidoctorj-2.5.1.jar
new file mode 100644
index 0000000000000000000000000000000000000000..618f220cdb67ea6b86ac7f149097f056c9c0ee52
Binary files /dev/null and b/lib/asciidoctorj-2.5.1/lib/asciidoctorj-2.5.1.jar differ
diff --git a/lib/asciidoctorj-2.5.1/lib/asciidoctorj-api-2.5.1.jar b/lib/asciidoctorj-2.5.1/lib/asciidoctorj-api-2.5.1.jar
new file mode 100644
index 0000000000000000000000000000000000000000..7f6c53df1a8c4eb1949d7918391687ecffa89994
Binary files /dev/null and b/lib/asciidoctorj-2.5.1/lib/asciidoctorj-api-2.5.1.jar differ
diff --git a/lib/asciidoctorj-2.5.1/lib/asciidoctorj-diagram-2.1.2.jar b/lib/asciidoctorj-2.5.1/lib/asciidoctorj-diagram-2.1.2.jar
new file mode 100644
index 0000000000000000000000000000000000000000..2af925dcad3b03bc6daeacc61dadb4279ec17d79
Binary files /dev/null and b/lib/asciidoctorj-2.5.1/lib/asciidoctorj-diagram-2.1.2.jar differ
diff --git a/lib/asciidoctorj-2.5.1/lib/asciidoctorj-epub3-1.5.1.jar b/lib/asciidoctorj-2.5.1/lib/asciidoctorj-epub3-1.5.1.jar
new file mode 100644
index 0000000000000000000000000000000000000000..053f1529b6ce30fdaac4c225e22f4669769e45a6
Binary files /dev/null and b/lib/asciidoctorj-2.5.1/lib/asciidoctorj-epub3-1.5.1.jar differ
diff --git a/lib/asciidoctorj-2.5.1/lib/asciidoctorj-pdf-1.5.4.jar b/lib/asciidoctorj-2.5.1/lib/asciidoctorj-pdf-1.5.4.jar
new file mode 100644
index 0000000000000000000000000000000000000000..e8f09b2830b76b58787a753a91e10b49c1fa9d7d
Binary files /dev/null and b/lib/asciidoctorj-2.5.1/lib/asciidoctorj-pdf-1.5.4.jar differ
diff --git a/lib/asciidoctorj-2.5.1/lib/asciidoctorj-revealjs-4.1.0.jar b/lib/asciidoctorj-2.5.1/lib/asciidoctorj-revealjs-4.1.0.jar
new file mode 100644
index 0000000000000000000000000000000000000000..80664bff5958226d3b50f8d8db74b7e95fd7055f
Binary files /dev/null and b/lib/asciidoctorj-2.5.1/lib/asciidoctorj-revealjs-4.1.0.jar differ
diff --git a/lib/asciidoctorj-2.5.1/lib/jcommander-1.72.jar b/lib/asciidoctorj-2.5.1/lib/jcommander-1.72.jar
new file mode 100644
index 0000000000000000000000000000000000000000..acb8e609b15cc2bf6142171c1bb4ddd2868483c6
Binary files /dev/null and b/lib/asciidoctorj-2.5.1/lib/jcommander-1.72.jar differ
diff --git a/lib/asciidoctorj-2.5.1/lib/jruby-complete-9.2.17.0.jar b/lib/asciidoctorj-2.5.1/lib/jruby-complete-9.2.17.0.jar
new file mode 100644
index 0000000000000000000000000000000000000000..868502ff1b0de3803e5543b01769adca07cb3eb3
Binary files /dev/null and b/lib/asciidoctorj-2.5.1/lib/jruby-complete-9.2.17.0.jar differ
diff --git a/released/.gitkeep b/released/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/released/OIORASP_Library_DotNet-InstallationGuide.pdf b/released/OIORASP_Library_DotNet-InstallationGuide.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..0aa81cbee01e2291dabda07a6049a8526488ad1f
--- /dev/null
+++ b/released/OIORASP_Library_DotNet-InstallationGuide.pdf
@@ -0,0 +1,3579 @@
+%PDF-1.4
+%
+1 0 obj
+<< /Title (Installation guide)
+/Author (Danish Business Authority)
+/Creator (Asciidoctor PDF 1.5.4, based on Prawn 2.2.2)
+/Producer (Danish Business Authority)
+/ModDate (D:20210528095555+02'00')
+/CreationDate (D:20210528100318+02'00')
+>>
+endobj
+2 0 obj
+<< /Type /Catalog
+/Pages 3 0 R
+/Names 17 0 R
+/Outlines 57 0 R
+/PageLabels 69 0 R
+/PageMode /UseOutlines
+/OpenAction [7 0 R /FitH 841.89]
+/ViewerPreferences << /DisplayDocTitle true
+>>
+>>
+endobj
+3 0 obj
+<< /Type /Pages
+/Count 5
+/Kids [7 0 R 13 0 R 15 0 R 26 0 R 36 0 R]
+>>
+endobj
+4 0 obj
+<< /Length 2
+>>
+stream
+q
+
+endstream
+endobj
+5 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 595.28 841.89]
+/CropBox [0 0 595.28 841.89]
+/BleedBox [0 0 595.28 841.89]
+/TrimBox [0 0 595.28 841.89]
+/ArtBox [0 0 595.28 841.89]
+/Contents 4 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+>>
+>>
+endobj
+6 0 obj
+<< /Length 7438
+>>
+stream
+q
+q
+0.0 0.0091 m
+595.28 0.0091 l
+595.28 841.8809 l
+0.0 841.8809 l
+h
+W n
+/DeviceRGB cs
+0.0 0.0 0.0 scn
+0.99997 0.00000 0.00000 0.99997 0.00000 0.02828 cm
+1.00000 0.00000 0.00000 1.00000 0.00000 -0.00000 cm
+q
+Q
+q
+0.9569 0.9608 0.9686 scn
+0.0 333.8809 595.3 144.1 re
+f
+Q
+q
+0.9529 0.9608 0.9647 scn
+0.0 320.5809 595.3 157.4 re
+f
+Q
+q
+q
+Q
+q
+Q
+q
+q
+q
+q
+0.0 320.5809 595.3 157.4 re
+Q
+Q
+W n
+0.902 0.9137 0.9216 scn
+2 j
+295.7 377.2809 m
+295.7 385.7809 306.2 389.6809 311.8 383.3809 c
+312.0 383.1809 l
+370.4 313.8809 l
+370.4 377.2809 l
+370.4 382.2809 374.4 386.3809 379.4 386.4809 c
+379.6 386.4809 l
+384.6 386.4809 388.7 382.4809 388.8 377.4809 c
+388.8 377.2809 l
+388.8 288.6809 l
+388.8 280.1809 378.3 276.2809 372.7 282.5809 c
+372.5 282.7809 l
+314.1 352.0809 l
+314.1 288.6809 l
+314.1 283.6809 310.1 279.5809 305.1 279.4809 c
+304.9 279.4809 l
+299.9 279.4809 295.8 283.4809 295.7 288.4809 c
+295.7 288.6809 l
+295.7 377.2809 l
+h
+f
+Q
+Q
+q
+q
+q
+q
+0.0 320.5809 595.3 157.4 re
+Q
+Q
+W n
+0.902 0.9137 0.9216 scn
+2 j
+424.0 385.4809 m
+483.4 385.4809 l
+488.5 385.4809 492.6 381.3809 492.6 376.2809 c
+492.6 371.1809 488.5 367.0809 483.4 367.0809 c
+424.0 367.0809 l
+418.9 367.0809 414.8 371.1809 414.8 376.2809 c
+414.8 381.3809 418.9 385.4809 424.0 385.4809 c
+f
+Q
+Q
+q
+q
+q
+q
+0.0 320.5809 595.3 157.4 re
+Q
+Q
+W n
+0.902 0.9137 0.9216 scn
+2 j
+424.0 341.8809 m
+483.4 341.8809 l
+488.5 341.8809 492.6 337.7809 492.6 332.6809 c
+492.6 327.5809 488.5 323.4809 483.4 323.4809 c
+424.0 323.4809 l
+418.9 323.4809 414.8 327.5809 414.8 332.6809 c
+414.8 337.7809 418.9 341.8809 424.0 341.8809 c
+f
+Q
+Q
+q
+q
+q
+q
+0.0 320.5809 595.3 157.4 re
+Q
+Q
+W n
+0.902 0.9137 0.9216 scn
+2 j
+607.0 382.6809 m
+612.2 389.7809 623.4 386.1809 623.7 377.4809 c
+623.7 377.1809 l
+623.7 288.5809 l
+623.7 283.4809 619.6 279.3809 614.5 279.3809 c
+609.5 279.3809 605.4 283.3809 605.3 288.3809 c
+605.3 288.5809 l
+605.3 349.0809 l
+578.5 312.4809 l
+574.9 307.4809 567.4 307.4809 563.7 312.3809 c
+563.6 312.5809 l
+537.3 348.8809 l
+537.3 288.6809 l
+537.3 283.6809 533.3 279.5809 528.3 279.4809 c
+528.1 279.4809 l
+523.1 279.4809 519.0 283.4809 518.9 288.4809 c
+518.9 288.6809 l
+518.9 377.2809 l
+518.9 386.0809 530.1 389.7809 535.4 382.8809 c
+535.6 382.6809 l
+571.1 333.5809 l
+607.0 382.6809 l
+h
+f
+Q
+Q
+Q
+q
+q
+Q
+q
+Q
+q
+q
+q
+q
+52.6 493.9809 138.9 15.0 re
+Q
+Q
+W n
+0.0 0.5176 0.4745 scn
+2 j
+78.6 508.6809 m
+79.3 508.6809 79.9 508.0809 79.9 507.3809 c
+79.9 506.6809 79.3 506.0809 78.6 506.0809 c
+70.4 506.0809 l
+69.7 506.0809 69.1 506.6809 69.1 507.3809 c
+69.1 508.0809 69.7 508.6809 70.4 508.6809 c
+78.6 508.6809 l
+h
+78.6 502.6809 m
+79.3 502.6809 79.9 502.0809 79.9 501.3809 c
+79.9 500.6809 79.3 500.0809 78.6 500.0809 c
+70.4 500.0809 l
+69.7 500.0809 69.1 500.6809 69.1 501.3809 c
+69.1 502.0809 69.7 502.6809 70.4 502.6809 c
+78.6 502.6809 l
+h
+78.6 496.5809 m
+79.3 496.5809 79.9 495.9809 79.9 495.2809 c
+79.9 494.5809 79.3 493.9809 78.6 493.9809 c
+70.4 493.9809 l
+69.7 493.9809 69.1 494.5809 69.1 495.2809 c
+69.1 495.9809 69.7 496.5809 70.4 496.5809 c
+78.6 496.5809 l
+h
+98.1 507.5809 m
+98.1 495.1809 l
+98.1 494.4809 97.5 493.8809 96.8 493.8809 c
+96.1 493.8809 95.5 494.4809 95.5 495.0809 c
+95.5 495.0809 l
+95.5 503.4809 l
+91.8 498.3809 l
+91.3 497.6809 90.3 497.6809 89.7 498.3809 c
+89.7 498.3809 l
+86.1 503.3809 l
+86.1 494.9809 l
+86.1 494.2809 85.5 493.6809 84.9 493.6809 c
+84.9 493.6809 l
+84.2 493.6809 83.6 494.2809 83.6 494.8809 c
+83.6 494.8809 l
+83.6 507.1809 l
+83.6 508.3809 85.2 508.8809 85.9 507.9809 c
+85.9 507.9809 l
+90.8 501.1809 l
+95.8 507.9809 l
+96.5 509.2809 98.1 508.7809 98.1 507.5809 c
+54.8 508.3809 m
+54.8 508.3809 l
+62.9 498.6809 l
+62.9 507.4809 l
+62.9 508.1809 63.5 508.7809 64.1 508.7809 c
+64.1 508.7809 l
+64.8 508.7809 65.4 508.1809 65.4 507.5809 c
+65.4 507.5809 l
+65.4 495.2809 l
+65.4 494.0809 63.9 493.5809 63.2 494.3809 c
+63.2 494.3809 l
+55.1 503.9809 l
+55.1 495.1809 l
+55.1 494.4809 54.5 493.8809 53.9 493.8809 c
+53.9 493.8809 l
+53.2 493.8809 52.6 494.4809 52.6 495.0809 c
+52.6 507.4809 l
+52.6 508.7809 54.1 509.2809 54.8 508.3809 c
+f
+Q
+Q
+q
+q
+q
+q
+52.6 493.9809 138.9 15.0 re
+Q
+Q
+W n
+0.0863 0.2431 0.3176 scn
+2 j
+190.0 494.0809 m
+190.4 494.0809 190.8 494.3809 190.8 494.8809 c
+190.8 495.2809 190.5 495.6809 190.0 495.6809 c
+182.4 495.6809 l
+182.4 508.0809 l
+182.4 508.5809 182.0 508.8809 181.6 508.8809 c
+181.2 508.8809 180.8 508.4809 180.8 508.0809 c
+180.8 494.8809 l
+180.8 494.3809 181.2 494.0809 181.6 494.0809 c
+190.0 494.0809 l
+h
+176.7 494.0809 m
+177.1 494.0809 177.5 494.3809 177.5 494.8809 c
+177.5 495.2809 177.2 495.6809 176.7 495.6809 c
+168.3 495.6809 l
+168.3 500.8809 l
+175.7 500.8809 l
+176.1 500.8809 176.5 501.1809 176.5 501.6809 c
+176.5 502.0809 176.2 502.4809 175.7 502.4809 c
+168.3 502.4809 l
+168.3 507.4809 l
+176.6 507.4809 l
+177.0 507.4809 177.4 507.7809 177.4 508.2809 c
+177.4 508.6809 177.1 509.0809 176.6 509.0809 c
+167.5 509.0809 l
+167.1 509.0809 166.7 508.6809 166.7 508.2809 c
+166.7 495.2809 l
+166.7 494.7809 167.1 494.4809 167.5 494.4809 c
+176.7 494.4809 l
+h
+155.7 507.2809 m
+152.3 507.2809 l
+152.3 495.6809 l
+155.7 495.6809 l
+159.4 495.6809 161.8 498.1809 161.8 501.4809 c
+161.8 501.4809 l
+161.8 504.6809 159.4 507.2809 155.7 507.2809 c
+155.7 508.7809 m
+160.3 508.7809 163.5 505.5809 163.5 501.4809 c
+163.5 501.4809 l
+163.5 497.3809 160.3 494.0809 155.7 494.0809 c
+151.4 494.0809 l
+151.0 494.0809 150.6 494.4809 150.6 494.8809 c
+150.6 507.8809 l
+150.6 508.3809 151.0 508.6809 151.4 508.6809 c
+155.7 508.6809 l
+h
+135.2 493.9809 m
+135.7 493.9809 136.0 494.3809 136.0 494.7809 c
+136.0 506.1809 l
+145.1 494.4809 l
+145.4 494.1809 145.6 493.9809 146.0 493.9809 c
+146.1 493.9809 l
+146.5 493.9809 146.9 494.2809 146.9 494.7809 c
+146.9 508.0809 l
+146.9 508.4809 146.5 508.8809 146.1 508.8809 c
+145.6 508.8809 145.3 508.4809 145.3 508.0809 c
+145.3 496.9809 l
+136.4 508.3809 l
+136.2 508.6809 135.9 508.8809 135.6 508.8809 c
+135.4 508.8809 l
+135.0 508.8809 134.6 508.4809 134.6 508.0809 c
+134.6 494.8809 l
+134.4 494.2809 134.8 493.9809 135.2 493.9809 c
+124.4 506.9809 m
+121.0 499.4809 l
+127.8 499.4809 l
+124.4 506.9809 l
+h
+124.5 508.9809 m
+125.0 508.9809 125.3 508.6809 125.5 508.2809 c
+131.5 495.2809 l
+131.6 495.1809 131.6 494.9809 131.6 494.8809 c
+131.6 494.4809 131.2 494.0809 130.8 494.0809 c
+130.4 494.0809 130.1 494.3809 130.0 494.6809 c
+128.5 498.0809 l
+120.4 498.0809 l
+118.9 494.6809 l
+118.8 494.2809 118.5 494.0809 118.1 494.0809 c
+117.7 494.0809 117.3 494.3809 117.3 494.8809 c
+117.3 494.9809 117.3 495.1809 117.4 495.2809 c
+123.4 508.3809 l
+123.5 508.6809 123.8 508.9809 124.5 508.9809 c
+124.5 508.9809 l
+h
+113.5 493.9809 m
+113.9 493.9809 114.3 494.3809 114.3 494.7809 c
+114.3 507.9809 l
+114.3 508.4809 113.9 508.7809 113.5 508.7809 c
+113.0 508.7809 112.7 508.3809 112.7 507.9809 c
+112.7 502.1809 l
+104.2 502.1809 l
+104.2 507.9809 l
+104.2 508.4809 103.8 508.7809 103.4 508.7809 c
+103.0 508.7809 102.6 508.3809 102.6 507.9809 c
+102.6 494.7809 l
+102.6 494.2809 103.0 493.9809 103.4 493.9809 c
+103.9 493.9809 104.2 494.3809 104.2 494.7809 c
+104.2 500.6809 l
+112.7 500.6809 l
+112.7 494.7809 l
+112.6 494.2809 113.0 493.9809 113.5 493.9809 c
+f
+Q
+Q
+Q
+Q
+/DeviceRGB cs
+0.0 0.0 0.0 scn
+/DeviceRGB CS
+0.0 0.0 0.0 SCN
+
+q
+149.64 0.0 0.0 51.0136 48.24 754.8764 cm
+/I1 Do
+Q
+0.0 0.0 0.0 scn
+0.0 0.0 0.0 SCN
+
+BT
+48.24 425.694 Td
+/F3.0 18 Tf
+<496e7374616c6c6174696f6e206775696465> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.0941 0.0941 0.0941 scn
+0.0941 0.0941 0.0941 SCN
+
+BT
+48.24 395.9324 Td
+/F2.0 13 Tf
+<44616e69736820427573696e65737320417574686f72697479> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+Q
+
+endstream
+endobj
+7 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 595.28 841.89]
+/CropBox [0 0 595.28 841.89]
+/BleedBox [0 0 595.28 841.89]
+/TrimBox [0 0 595.28 841.89]
+/ArtBox [0 0 595.28 841.89]
+/Contents 6 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F3.0 10 0 R
+/F2.0 11 0 R
+>>
+/XObject << /I1 8 0 R
+>>
+>>
+>>
+endobj
+8 0 obj
+<< /Type /XObject
+/Subtype /Image
+/Height 90
+/Width 264
+/BitsPerComponent 8
+/ColorSpace /DeviceRGB
+/SMask 9 0 R
+/Length 489
+/Filter [/FlateDecode]
+/DecodeParms [<< /Predictor 15
+/Colors 3
+/BitsPerComponent 8
+/Columns 264
+>>]
+>>
+stream
+xKN@q&R)Ȳ38043N\ {>]G yuV^G H+c{״4TX13lL={BV@0 0|os\} F?K^FS̮>!'tR`TVi]%/+ٕVͱUXQ魤eo~("}FM-JöCFCcߖ`u\+$l_
+~|{3 /bΊ~X>L-,O?M*ZpVuӵiD+5##pZ)cFΌ~6nbQx@'VӖJA`@w_G+`@@0 @0 @0 <+@ ` PƌV
+2Z)R i (cW
+2fRxk+ P'Mk%
+endstream
+endobj
+9 0 obj
+<< /Type /XObject
+/Subtype /Image
+/Height 90
+/Width 264
+/BitsPerComponent 8
+/ColorSpace /DeviceGray
+/Decode [0 1]
+/Length 2238
+/Filter [/FlateDecode]
+/DecodeParms [<< /Predictor 15
+/Colors 1
+/BitsPerComponent 8
+/Columns 264
+>>]
+>>
+stream
+x\YnV Jx+T@RI
+b*DħȲey=|F?ؙ͌t36YlOlN~f\ZƑ#r ?Pl<_l8 `:6' ߰ K^H#_"Rāf#>*. DIؚq@d><61ezÙyddL2̾fј-`1<8S؉0ZޫVһ.vp#82Ux\LXi%v`Bvg!tGGc3,_vrz1/kh p=' e')Xxϰ!/~*I;t`44G'Ϭel Cɰ|
o#@#Rth
Tht,Ѳj
+E`:U(:z18% 1ib@ct\݊YyN!/\Ð1/)˻gV6E0<YHF7@ro
BgS,֢+Yg\1]b %cR]l69G4LveJ1cSۢ*o m-Ԕ6Lf2Lcic%LHLNG<$LDSXg?%vA3m0Rj2dꀍ_YM_^jBBs0zW̮ѓY JoA暴BF{H?ؑ}ߊ(Z/AO_^u ݊]|a+_ksx }v=3xF|߱#\]mT)VOYk?niB ݂IހTnGHJxJe !cWO:B_`#źpt@(@QƾheC# T-1CGrR^@]@8 OGR >ҼW?ڼZoL,#/o`vuB"6+'@\Lg:әt3L߅~
+¾
+(hiw#?5ԌYQ{xaꢪsX2Těe&)1+C6J`*ϊ',:|ì;,چY7hIuِc(]
+U{lR7p!*UMYSrDUQ7ZvM_ŴS7jsiċ,оΝ[\ 0*snn|I7GW=աEz }c M2$9T3:vndڝSf^."AV\m%ܒ{$juʰe,-:(l]$,x]PG5H7WVj]aAʽ4b2̹OL2"%,^`cҫ-gih٥B9
+DOmpyeiP vju4I,{i٫R4wQ9H^5g5'Unԍ3k2qIu5/fj W5)ޓ6UOI7nͩw1!nԍ-k5Z[fI3c=S*d0[z*{2f"},ev+WD8
+u:
+b]K][nҍu,[K.'uɝ960f;e')c` %Φ2M\n=c嶟Ah[&x۟-IB5,r["SMP@3
vZ>ľvֆM8Jٍ*:C;oRVI E%pͺ텎PGZsSnzߒ!Ѡ}NxON&B~Ku5Zk`;iW3\)ԕf%b>[5?;sexV릀Fbn.A`^
w_pQ>\4a|Qg:g
+endstream
+endobj
+10 0 obj
+<< /Type /Font
+/BaseFont /bfbcb8+Montserrat-SemiBold
+/Subtype /TrueType
+/FontDescriptor 73 0 R
+/FirstChar 32
+/LastChar 255
+/Widths 75 0 R
+/ToUnicode 74 0 R
+>>
+endobj
+11 0 obj
+<< /Type /Font
+/BaseFont /fc37a6+WorkSans-Regular
+/Subtype /TrueType
+/FontDescriptor 77 0 R
+/FirstChar 32
+/LastChar 255
+/Widths 79 0 R
+/ToUnicode 78 0 R
+>>
+endobj
+12 0 obj
+<< /Length 6409
+>>
+stream
+q
+/DeviceRGB cs
+0.2 0.2 0.2 scn
+/DeviceRGB CS
+0.2 0.2 0.2 SCN
+
+BT
+48.24 789.15 Td
+/F4.0 18 Tf
+<5461626c65206f6620436f6e74656e7473> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 761.546 Td
+/F2.0 11 Tf
+<312e20496e74726f64756374696f6e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6627 0.6627 0.6627 scn
+0.6627 0.6627 0.6627 SCN
+
+BT
+127.8382 761.546 Td
+/F2.0 11 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+BT
+541.8123 761.546 Td
+/F2.0 2.75 Tf
+ Tj
+ET
+
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+542.75 761.546 Td
+/F2.0 11 Tf
+<31> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 744.243 Td
+/F2.0 11 Tf
+<322e2053797374656d20726571756972656d656e7473> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6627 0.6627 0.6627 scn
+0.6627 0.6627 0.6627 SCN
+
+BT
+181.2542 744.243 Td
+/F2.0 11 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+BT
+541.8123 744.243 Td
+/F2.0 2.75 Tf
+ Tj
+ET
+
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+542.75 744.243 Td
+/F2.0 11 Tf
+<31> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 726.94 Td
+/F2.0 11 Tf
+<332e20496e7374616c6c205061636b616765> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6627 0.6627 0.6627 scn
+0.6627 0.6627 0.6627 SCN
+
+BT
+147.8692 726.94 Td
+/F2.0 11 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+BT
+541.8123 726.94 Td
+/F2.0 2.75 Tf
+ Tj
+ET
+
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+542.75 726.94 Td
+/F2.0 11 Tf
+<31> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+60.24 709.637 Td
+/F2.0 11 Tf
+<332e312e204365727469666963617465> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6627 0.6627 0.6627 scn
+0.6627 0.6627 0.6627 SCN
+
+BT
+139.0692 709.637 Td
+/F2.0 11 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+BT
+539.6892 709.637 Td
+/F2.0 2.75 Tf
+ Tj
+ET
+
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+540.627 709.637 Td
+/F2.0 11 Tf
+<32> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+60.24 692.334 Td
+/F2.0 11 Tf
+<332e322e204e556e69742028666f722072756e6e696e6720746865204e556e69742073616d706c65207465737429> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6627 0.6627 0.6627 scn
+0.6627 0.6627 0.6627 SCN
+
+BT
+312.6713 692.334 Td
+/F2.0 11 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+BT
+539.6892 692.334 Td
+/F2.0 2.75 Tf
+ Tj
+ET
+
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+540.627 692.334 Td
+/F2.0 11 Tf
+<32> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+60.24 675.031 Td
+/F2.0 11 Tf
+<332e332e205465737420656e64706f696e7473> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6627 0.6627 0.6627 scn
+0.6627 0.6627 0.6627 SCN
+
+BT
+165.7772 675.031 Td
+/F2.0 11 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+BT
+539.6892 675.031 Td
+/F2.0 2.75 Tf
+ Tj
+ET
+
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+540.627 675.031 Td
+/F2.0 11 Tf
+<32> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+60.24 657.728 Td
+/F2.0 11 Tf
+<332e342e20486f7720746f2072656c65617365205369676e65642052415350202e4e4554> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6627 0.6627 0.6627 scn
+0.6627 0.6627 0.6627 SCN
+
+BT
+265.9322 657.728 Td
+/F2.0 11 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+BT
+539.6892 657.728 Td
+/F2.0 2.75 Tf
+ Tj
+ET
+
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+540.627 657.728 Td
+/F2.0 11 Tf
+<32> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 640.425 Td
+/F2.0 11 Tf
+<342e20566572696679696e6720696e7374616c6c6174696f6e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6627 0.6627 0.6627 scn
+0.6627 0.6627 0.6627 SCN
+
+BT
+172.4543 640.425 Td
+/F2.0 11 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+BT
+539.6892 640.425 Td
+/F2.0 2.75 Tf
+ Tj
+ET
+
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+540.627 640.425 Td
+/F2.0 11 Tf
+<33> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 623.122 Td
+/F2.0 11 Tf
+<352e20556e696e7374616c6c696e67> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6627 0.6627 0.6627 scn
+0.6627 0.6627 0.6627 SCN
+
+BT
+125.7152 623.122 Td
+/F2.0 11 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+BT
+539.6892 623.122 Td
+/F2.0 2.75 Tf
+ Tj
+ET
+
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+540.627 623.122 Td
+/F2.0 11 Tf
+<33> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+Q
+
+endstream
+endobj
+13 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 595.28 841.89]
+/CropBox [0 0 595.28 841.89]
+/BleedBox [0 0 595.28 841.89]
+/TrimBox [0 0 595.28 841.89]
+/ArtBox [0 0 595.28 841.89]
+/Contents 12 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F4.0 20 0 R
+/F2.0 11 0 R
+>>
+>>
+/Annots [39 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R 48 0 R 49 0 R 50 0 R 51 0 R 52 0 R 53 0 R 54 0 R 55 0 R 56 0 R]
+>>
+endobj
+14 0 obj
+<< /Length 12481
+>>
+stream
+q
+/DeviceRGB cs
+0.2 0.2 0.2 scn
+/DeviceRGB CS
+0.2 0.2 0.2 SCN
+
+BT
+48.24 789.15 Td
+/F4.0 18 Tf
+<312e20496e74726f64756374696f6e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+0.1155 Tw
+
+BT
+48.24 762.9603 Td
+/F2.0 11 Tf
+<546865204f494f52415350204c69627261727920666f72202e4e45542069732061204d6963726f736f6674202e4e45542d626173656420746f6f6c6b697420666f7220696d706c656d656e746174696f6e206f662052415350> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 748.4859 Td
+/F2.0 11 Tf
+<2852656c6961626c65204173796e6368726f6e6f7573205365637572652050726f66696c652920636f6d706c69616e7420627573696e657373206170706c69636174696f6e732e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 722.0114 Td
+/F4.0 11 Tf
+<5468652063757272656e7420737461626c652076657273696f6e2069733a20322e312e31> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 695.537 Td
+/F2.0 11 Tf
+<5468697320646f63756d656e742064657363726962657320746865207374657073206e6565646564206265666f7265207468652052415350204c6962726172792063616e206265206275696c7420616e6420757365642e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+8.4745 Tw
+
+BT
+48.24 669.0626 Td
+/F2.0 11 Tf
+<546865206c6962726172792063616e20626520646f776e6c6f616465642066726f6d20> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2588 0.5451 0.7922 scn
+0.2588 0.5451 0.7922 SCN
+
+8.4745 Tw
+
+BT
+299.628 669.0626 Td
+/F2.0 11 Tf
+<68747470733a2f2f6469676974616c697365722e646b2f67726f75702f3430353436372f7265736f7572636573> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+8.4745 Tw
+
+BT
+547.04 669.0626 Td
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+0.5783 Tw
+
+BT
+48.24 654.5881 Td
+/F2.0 11 Tf
+<28436f6d70696c6564204c69627261727929206f72206174206469726563746c7920> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2588 0.5451 0.7922 scn
+0.2588 0.5451 0.7922 SCN
+
+0.5783 Tw
+
+BT
+228.3197 654.5881 Td
+/F2.0 11 Tf
+<68747470733a2f2f7265702e657273742e646b2f6769742f6f70656e65627573696e6573732f6c6962726172792f646f746e6574> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+0.5783 Tw
+
+BT
+510.5797 654.5881 Td
+/F2.0 11 Tf
+<20284f70656e> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 640.1137 Td
+/F2.0 11 Tf
+<736f7572636520476974207265706f7369746f727929> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+48.24 583.915 Td
+/F4.0 18 Tf
+<322e2053797374656d20726571756972656d656e7473> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 557.7253 Td
+/F2.0 11 Tf
+<496e20616c6c2063617365732074686520666f6c6c6f77696e67206973206e6565646564> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+
+0.0 Tc
+
+-0.5 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+56.147 531.2509 Td
+/F2.0 11 Tf
+ Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+0.0 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+66.24 531.2509 Td
+/F2.0 11 Tf
+<4d6963726f736f66742057696e646f77732037206f72206e657765722c20696e636c7564696e6720746865206c61746573742073657276696365207061636b73> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+
+0.0 Tc
+
+-0.5 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+56.147 510.7764 Td
+/F2.0 11 Tf
+ Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+0.0 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+66.24 510.7764 Td
+/F2.0 11 Tf
+<4d6963726f736f667420496e7465726e657420496e666f726d6174696f6e20536572766963657320362e30206f72206c61746572> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+
+0.0 Tc
+
+-0.5 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+56.147 490.302 Td
+/F2.0 11 Tf
+ Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+0.0 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+66.24 490.302 Td
+/F2.0 11 Tf
+<4d6963726f736f66742056697375616c2053747564696f2032303139> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+
+0.0 Tc
+
+-0.5 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+56.147 469.8276 Td
+/F2.0 11 Tf
+ Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+0.0 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+66.24 469.8276 Td
+/F2.0 11 Tf
+<4d6963726f736f6674202e4e4554204672616d65776f726b20342e362e32> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+
+0.0 Tc
+
+-0.5 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+56.147 449.3531 Td
+/F2.0 11 Tf
+ Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+0.0 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+66.24 449.3531 Td
+/F2.0 11 Tf
+<506f72742038302c203830383020616e64203830303820284854545029206f7574676f696e67206f70656e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+
+0.0 Tc
+
+-0.5 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+56.147 428.8787 Td
+/F2.0 11 Tf
+ Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+0.0 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+66.24 428.8787 Td
+/F2.0 11 Tf
+<506f72742033383920284c44415029206f7574676f696e6720706f7274> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 402.4043 Td
+/F2.0 11 Tf
+<546f20686f737420796f7572206f776e20524153502048545450207365727669636520796f752077696c6c20616c736f206e656564> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+
+0.0 Tc
+
+-0.5 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+56.147 375.9299 Td
+/F2.0 11 Tf
+ Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+0.0 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+66.24 375.9299 Td
+/F2.0 11 Tf
+<506f72742038302c203830383020616e6420383030382028485454502920696e676f696e67206f70656e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+48.24 319.7311 Td
+/F4.0 18 Tf
+<332e20496e7374616c6c205061636b616765> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+0.6691 Tw
+
+BT
+48.24 293.5414 Td
+/F2.0 11 Tf
+<546865204f494f52415350204c6962726172792069732064697374726962757465642061732061207a69702066696c652c2077686963682073686f756c642073696d706c7920626520756e7a697070656420696e746f20616e79> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 279.067 Td
+/F2.0 11 Tf
+<666f6c6465722e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+2.5659 Tw
+
+BT
+48.24 252.5926 Td
+/F2.0 11 Tf
+<4e6f746520746861742070726f6a656374732077697468696e207468652072656c65617365207061636b2063616e6e6f74206265206d6f7665642066726f6d20746865697220696e7465726e616c207061746873> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 238.1181 Td
+/F2.0 11 Tf
+<72656c617469766520746f2065616368206f746865722e20496620736f2c206c696272617279207265666572656e636573206d75737420626520757064617465642e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 211.6437 Td
+/F2.0 11 Tf
+<546865207a69702d7061636b61676520636f6e7461696e733a> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+48.24 161.2361 249.4 34.9489 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+297.64 161.2361 249.4 34.9489 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+48.24 140.7617 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+297.64 140.7617 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+48.24 120.2873 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+297.64 120.2873 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+48.24 99.8129 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+297.64 99.8129 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+48.24 79.3384 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+297.64 79.3384 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 196.185 m
+297.64 196.185 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 161.2361 m
+297.64 161.2361 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 196.435 m
+48.24 160.9861 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 196.435 m
+297.64 160.9861 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+51.24 182.1693 Td
+/F2.0 11 Tf
+<6c6962> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 196.185 m
+547.04 196.185 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 161.2361 m
+547.04 161.2361 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 196.435 m
+297.64 160.9861 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+547.04 196.435 m
+547.04 160.9861 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+300.64 182.1693 Td
+/F2.0 11 Tf
+<45787465726e616c206c6962726172696573207573656420627920746865204f494f52415350> Tj
+ET
+
+
+BT
+300.64 167.6949 Td
+/F2.0 11 Tf
+<4c696272617279> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 161.2361 m
+297.64 161.2361 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 140.7617 m
+297.64 140.7617 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 161.4861 m
+48.24 140.5117 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 161.4861 m
+297.64 140.5117 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+51.24 147.2204 Td
+/F2.0 11 Tf
+<73616d706c6573> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 161.2361 m
+547.04 161.2361 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 140.7617 m
+547.04 140.7617 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 161.4861 m
+297.64 140.5117 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+547.04 161.4861 m
+547.04 140.5117 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+300.64 147.2204 Td
+/F2.0 11 Tf
+<53616d706c652070726f6a65637473> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 140.7617 m
+297.64 140.7617 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 120.2873 m
+297.64 120.2873 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 141.0117 m
+48.24 120.0373 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 141.0117 m
+297.64 120.0373 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+51.24 126.746 Td
+/F2.0 11 Tf
+<737263> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 140.7617 m
+547.04 140.7617 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 120.2873 m
+547.04 120.2873 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 141.0117 m
+297.64 120.0373 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+547.04 141.0117 m
+547.04 120.0373 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+300.64 126.746 Td
+/F2.0 11 Tf
+<52415350202e4e4554204c69627261727920736f7572636520636f6465> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 120.2873 m
+297.64 120.2873 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 99.8129 m
+297.64 99.8129 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 120.5373 m
+48.24 99.5629 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 120.5373 m
+297.64 99.5629 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+51.24 106.2716 Td
+/F2.0 11 Tf
+<74657374> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 120.2873 m
+547.04 120.2873 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 99.8129 m
+547.04 99.8129 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 120.5373 m
+297.64 99.5629 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+547.04 120.5373 m
+547.04 99.5629 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+300.64 106.2716 Td
+/F2.0 11 Tf
+<556e697420616e6420696e746567726174696f6e207465737473> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 99.8129 m
+297.64 99.8129 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 79.3384 m
+297.64 79.3384 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 100.0629 m
+48.24 79.0884 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 100.0629 m
+297.64 79.0884 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+51.24 85.7971 Td
+/F2.0 11 Tf
+<646b2e676f762e6f696f73692e6c6962726172792e736c6e> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 99.8129 m
+547.04 99.8129 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 79.3384 m
+547.04 79.3384 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 100.0629 m
+297.64 79.0884 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+547.04 100.0629 m
+547.04 79.0884 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+300.64 85.7971 Td
+/F2.0 11 Tf
+<56697375616c2053747564696f203230313920736f6c7574696f6e2066696c65> Tj
+ET
+
+0.0 0.0 0.0 scn
+q
+0.0 0.0 0.0 scn
+0.0 0.0 0.0 SCN
+1 w
+0 J
+0 j
+[] 0 d
+/Stamp1 Do
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+542.53 15.505 Td
+/F2.0 9 Tf
+<31> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+Q
+Q
+
+endstream
+endobj
+15 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 595.28 841.89]
+/CropBox [0 0 595.28 841.89]
+/BleedBox [0 0 595.28 841.89]
+/TrimBox [0 0 595.28 841.89]
+/ArtBox [0 0 595.28 841.89]
+/Contents 14 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F4.0 20 0 R
+/F2.0 11 0 R
+>>
+/XObject << /Stamp1 70 0 R
+>>
+>>
+/Annots [21 0 R 22 0 R]
+>>
+endobj
+16 0 obj
+[15 0 R /XYZ 0 841.89 null]
+endobj
+17 0 obj
+<< /Type /Names
+/Dests 18 0 R
+>>
+endobj
+18 0 obj
+<< /Names [(__anchor-top) 16 0 R (_certificate) 27 0 R (_install_package) 24 0 R (_introduction) 19 0 R (_nunit_for_running_the_nunit_sample_test) 30 0 R (_system_requirements) 23 0 R (_test_endpoints) 32 0 R (_uninstalling) 38 0 R (_verifying_installation) 37 0 R (howto_codesign) 34 0 R]
+>>
+endobj
+19 0 obj
+[15 0 R /XYZ 0 841.89 null]
+endobj
+20 0 obj
+<< /Type /Font
+/BaseFont /3e7871+WorkSans-SemiBold
+/Subtype /TrueType
+/FontDescriptor 81 0 R
+/FirstChar 32
+/LastChar 255
+/Widths 83 0 R
+/ToUnicode 82 0 R
+>>
+endobj
+21 0 obj
+<< /Border [0 0 0]
+/A << /Type /Action
+/S /URI
+/URI (https://digitaliser.dk/group/405467/resources)
+>>
+/Subtype /Link
+/Rect [299.628 666.3896 547.04 679.2926]
+/Type /Annot
+>>
+endobj
+22 0 obj
+<< /Border [0 0 0]
+/A << /Type /Action
+/S /URI
+/URI (https://rep.erst.dk/git/openebusiness/library/dotnet)
+>>
+/Subtype /Link
+/Rect [228.3197 651.9151 510.5797 664.8181]
+/Type /Annot
+>>
+endobj
+23 0 obj
+[15 0 R /XYZ 0 624.655 null]
+endobj
+24 0 obj
+[15 0 R /XYZ 0 360.4711 null]
+endobj
+25 0 obj
+<< /Length 12151
+>>
+stream
+q
+/DeviceRGB cs
+0.2 0.2 0.2 scn
+/DeviceRGB CS
+0.2 0.2 0.2 SCN
+
+BT
+48.24 791.94 Td
+/F4.0 15 Tf
+<332e312e204365727469666963617465> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+1.6716 Tw
+
+BT
+48.24 766.4793 Td
+/F2.0 11 Tf
+<4e6577206665617475726520696e205241535020332e302e3020697320746861742065616368202e646c6c206973207369676e6564206279206120536f667477617265205075626c6973686572204365727469666963617465> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+0.3109 Tw
+
+BT
+48.24 752.0049 Td
+/F2.0 11 Tf
+<28535043292e205468652044616e69736820427573696e65737320417574686f72697479206861732070757263686173656420612070726f647563746976652063657274696669636174652074686174206973207573656420696e> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+0.0313 Tw
+
+BT
+48.24 737.5304 Td
+/F2.0 11 Tf
+<7468652072656c65617365206379636c652e20496620796f752077616e7420746f20636f6d70696c652061207369676e656420636f646520796f757273656c6620287573696e6720746865204e416e7420736372697074292c20796f75> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+0.1166 Tw
+
+BT
+48.24 723.056 Td
+/F2.0 11 Tf
+<6d757374206f627461696e206120636f64652d7369676e696e6720636572746966696361746520616e6420666f6c6c6f772074686520737465707320696e20> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2588 0.5451 0.7922 scn
+0.2588 0.5451 0.7922 SCN
+
+0.1166 Tw
+
+BT
+388.9214 723.056 Td
+/F2.0 11 Tf
+<22486f7720746f2072656c65617365205369676e65642052415350> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2588 0.5451 0.7922 scn
+0.2588 0.5451 0.7922 SCN
+
+BT
+48.24 708.5816 Td
+/F2.0 11 Tf
+<2e4e455422> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+48.24 661.1729 Td
+/F4.0 15 Tf
+<332e322e204e556e69742028666f722072756e6e696e6720746865204e556e69742073616d706c65207465737429> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+0.9036 Tw
+
+BT
+48.24 635.7121 Td
+/F2.0 11 Tf
+<546f2072756e20746865204e556e6974207465737420646c6c206c6f636174656420696e20746865207465737420666f6c6465722c204e556e6974206e6565647320746f20626520696e7374616c6c6564206c6f63616c6c79206f6e> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+1.4123 Tw
+
+BT
+48.24 621.2377 Td
+/F2.0 11 Tf
+<746865206d616368696e652e205768656e20696e7374616c6c656420746865206672616d65776f726b2063616e206265207573656420746f2072756e204e556e697420746573747320616e6420646576656c6f70> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 606.7633 Td
+/F2.0 11 Tf
+<746573747320696e2056697375616c2053747564696f2e20466f6c6c6f77207468652074776f2073696d706c6520737465707320746f20696e7374616c6c204e556e69743a> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+
+0.0 Tc
+
+-0.5 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+54.161 580.2889 Td
+/F2.0 11 Tf
+<312e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+0.0 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+66.24 580.2889 Td
+/F2.0 11 Tf
+<446f776e6c6f616420746865206e657765737420696e7374616c6c2076657273696f6e206f66204e556e697420666f72202e4e65742066726f6d207777772e6e756e69742e6f72672e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+
+0.0 Tc
+
+-0.5 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+52.038 559.8144 Td
+/F2.0 11 Tf
+<322e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+0.0 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+2.7205 Tw
+
+BT
+66.24 559.8144 Td
+/F2.0 11 Tf
+<496e7374616c6c2074686520646f776e6c6f616465642066696c652e204e6f77204e556e69742074657374732063616e2062652065786563757465642066726f6d204e556e6974207768696368206973> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+66.24 545.34 Td
+/F2.0 11 Tf
+<6c6f636174656420756e6465722089dbcf73746172742f616c6c2070726f6772616d732f4e556e69742e4e65742d76657273696f6e2f4e556e69742e4e65742d76657273696f6e89db> Tj
+/F2.1 11 Tf
+<21> Tj
+/F2.0 11 Tf
+<2e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+48.24 497.9313 Td
+/F4.0 15 Tf
+<332e332e205465737420656e64706f696e7473> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 472.4706 Td
+/F2.0 11 Tf
+<5465737420656e64706f696e74732063616e20626520666f756e642061742074686520666f6c6c6f77696e67206c6f636174696f6e3a> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2588 0.5451 0.7922 scn
+0.2588 0.5451 0.7922 SCN
+
+BT
+48.24 445.9961 Td
+/F2.0 11 Tf
+<68747470733a2f2f7777772e6469676974616c697365722e646b2f7265736f757263652f36313431303436> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+48.24 398.5874 Td
+/F4.0 15 Tf
+<332e342e20486f7720746f2072656c65617365205369676e65642052415350202e4e4554> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+1.5198 Tw
+
+BT
+48.24 373.1267 Td
+/F2.0 11 Tf
+<576f726b2068617320676f6e6520696e746f206d616b652061207369676e65642072656c65617365206f662052415350202e4e45542e204163636f7264696e676c7920746865204e416e74206275696c642066696c65> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 358.6523 Td
+/F2.0 11 Tf
+<286275696c642e786d6c2920686173206265656e2061646a757374656420746f2068616e646c6520746865207369676e696e6720616e64207374726f6e67206e616d696e672070726f636573732e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+0.3901 Tw
+
+BT
+48.24 332.1779 Td
+/F2.0 11 Tf
+<5468657365207374657073206578706c61696e20686f7720746f207365747570206120776f726b73746174696f6e206f72206275696c642d73657276657220746f2072656c656173652061207369676e65642076657273696f6e> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 317.7034 Td
+/F2.0 11 Tf
+<6f662052415350202e4e455420332e302e302e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+
+0.0 Tc
+
+-0.5 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+54.161 291.229 Td
+/F2.0 11 Tf
+<312e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+0.0 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+66.24 291.229 Td
+/F2.0 11 Tf
+<41646420286966206e6f7420616c72656164792065786973742920746f207468652053797374656d20456e7669726f6e6d656e74616c205661726961626c65733a> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+48.24 255.2959 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+297.64 255.2959 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+48.24 234.8214 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+297.64 234.8214 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 275.7703 m
+297.64 275.7703 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 255.2959 m
+297.64 255.2959 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 276.0203 m
+48.24 255.0459 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 276.0203 m
+297.64 255.0459 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+51.24 261.7546 Td
+/F2.0 11 Tf
+<4e616d65> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 275.7703 m
+547.04 275.7703 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 255.2959 m
+547.04 255.2959 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 276.0203 m
+297.64 255.0459 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+547.04 276.0203 m
+547.04 255.0459 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+300.64 261.7546 Td
+/F2.0 11 Tf
+<455253545f434f44455349474e494e475f50415353574f5244> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 255.2959 m
+297.64 255.2959 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 234.8214 m
+297.64 234.8214 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 255.5459 m
+48.24 234.5714 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 255.5459 m
+297.64 234.5714 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+51.24 241.2801 Td
+/F2.0 11 Tf
+<56616c7565> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 255.2959 m
+547.04 255.2959 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 234.8214 m
+547.04 234.8214 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 255.5459 m
+297.64 234.5714 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+547.04 255.5459 m
+547.04 234.5714 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+300.64 241.2801 Td
+/F2.0 11 Tf
+<504b206f6620746865206465736972656420636f6465207369676e696e67206365727469666963617465> Tj
+ET
+
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+
+0.0 Tc
+
+-0.5 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+54.161 211.8057 Td
+/F2.0 11 Tf
+<312e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+0.0 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+1.3696 Tw
+
+BT
+66.24 211.8057 Td
+/F2.0 11 Tf
+<41646420286966206e6f7420616c72656164792065786973742920746f2077696e646f777320456e7669726f6d656e742c20746865206b657920616e64204861736820746f20746865206365727469666963617465> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+66.24 197.3313 Td
+/F2.0 11 Tf
+<287965732c20746865206b6579207374617274207769746820272d27293a> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+48.24 161.3981 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+297.64 161.3981 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+48.24 140.9237 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+297.64 140.9237 249.4 20.4744 re
+f
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 181.8726 m
+297.64 181.8726 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 161.3981 m
+297.64 161.3981 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 182.1226 m
+48.24 161.1481 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 182.1226 m
+297.64 161.1481 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+51.24 167.8569 Td
+/F2.0 11 Tf
+<4e616d65> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 181.8726 m
+547.04 181.8726 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 161.3981 m
+547.04 161.3981 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 182.1226 m
+297.64 161.1481 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+547.04 182.1226 m
+547.04 161.1481 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+300.64 167.8569 Td
+/F2.0 11 Tf
+<455253545f434f44455349474e494e475f4345525449434154455f50415448> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 161.3981 m
+297.64 161.3981 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 140.9237 m
+297.64 140.9237 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+48.24 161.6481 m
+48.24 140.6737 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 161.6481 m
+297.64 140.6737 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+51.24 147.3824 Td
+/F2.0 11 Tf
+<56616c7565> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 161.3981 m
+547.04 161.3981 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 140.9237 m
+547.04 140.9237 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+297.64 161.6481 m
+297.64 140.6737 l
+S
+[] 0 d
+0.5 w
+0.8667 0.8667 0.8667 SCN
+547.04 161.6481 m
+547.04 140.6737 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.1333 0.1333 0.1333 scn
+
+BT
+300.64 147.3824 Td
+/F2.0 11 Tf
+<5061746820746f20746865206365727469666963617465> Tj
+ET
+
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+
+0.0 Tc
+
+-0.5 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+54.161 117.908 Td
+/F2.0 11 Tf
+<312e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+0.0 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+66.24 117.908 Td
+/F2.0 11 Tf
+<557064617465207468652066696c6520272e2f2e2e2f4e416e742e6275696c642e446973747269627574652e5369676e65642e626174272c20616e6420736574207468652064657369726564206275696c64206e756d6265722e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+
+0.0 Tc
+
+-0.5 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+52.038 97.4336 Td
+/F2.0 11 Tf
+<322e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+0.0 Tc
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+66.24 97.4336 Td
+/F2.0 11 Tf
+<52756e207468652066696c6520272e2f2e2e2f4e416e742e6275696c642e446973747269627574652e5369676e65642e626174272e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+q
+0.0 0.0 0.0 scn
+0.0 0.0 0.0 SCN
+1 w
+0 J
+0 j
+[] 0 d
+/Stamp2 Do
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+49.24 15.505 Td
+/F2.0 9 Tf
+<32> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+Q
+Q
+
+endstream
+endobj
+26 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 595.28 841.89]
+/CropBox [0 0 595.28 841.89]
+/BleedBox [0 0 595.28 841.89]
+/TrimBox [0 0 595.28 841.89]
+/ArtBox [0 0 595.28 841.89]
+/Contents 25 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F4.0 20 0 R
+/F2.0 11 0 R
+/F2.1 31 0 R
+>>
+/XObject << /Stamp2 71 0 R
+>>
+>>
+/Annots [28 0 R 29 0 R 33 0 R]
+>>
+endobj
+27 0 obj
+[26 0 R /XYZ 0 841.89 null]
+endobj
+28 0 obj
+<< /Border [0 0 0]
+/Dest (howto_codesign)
+/Subtype /Link
+/Rect [388.9214 720.383 547.04 733.286]
+/Type /Annot
+>>
+endobj
+29 0 obj
+<< /Border [0 0 0]
+/Dest (howto_codesign)
+/Subtype /Link
+/Rect [48.24 705.9086 77.335 718.8116]
+/Type /Annot
+>>
+endobj
+30 0 obj
+[26 0 R /XYZ 0 693.1229 null]
+endobj
+31 0 obj
+<< /Type /Font
+/BaseFont /c9d34c+WorkSans-Regular
+/Subtype /TrueType
+/FontDescriptor 85 0 R
+/FirstChar 32
+/LastChar 255
+/Widths 87 0 R
+/ToUnicode 86 0 R
+>>
+endobj
+32 0 obj
+[26 0 R /XYZ 0 529.8813 null]
+endobj
+33 0 obj
+<< /Border [0 0 0]
+/A << /Type /Action
+/S /URI
+/URI (https://www.digitaliser.dk/resource/6141046)
+>>
+/Subtype /Link
+/Rect [48.24 443.3231 287.633 456.2261]
+/Type /Annot
+>>
+endobj
+34 0 obj
+[26 0 R /XYZ 0 430.5374 null]
+endobj
+35 0 obj
+<< /Length 2130
+>>
+stream
+q
+/DeviceRGB cs
+0.2 0.2 0.2 scn
+/DeviceRGB CS
+0.2 0.2 0.2 SCN
+
+BT
+48.24 789.15 Td
+/F4.0 18 Tf
+<342e20566572696679696e6720696e7374616c6c6174696f6e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+0.4341 Tw
+
+BT
+48.24 762.9603 Td
+/F2.0 11 Tf
+<546f20766572696679207468617420746865207365747570206f6620746865206c69627261727920686173206265656e20646f6e6520636f72726563746c79206974206973207265636f6d6d656e6465642074686174206f6e65> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+1.1122 Tw
+
+BT
+48.24 748.4859 Td
+/F2.0 11 Tf
+<636f6d70696c6573207468652052617370436c69656e74546573747320736f6c7574696f6e20616e642c2074726965732072756e6e696e67206f6e65206f662074686520746573742070726f6a656374732073756368206173> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+1.7194 Tw
+
+BT
+48.24 734.0114 Td
+/F2.0 11 Tf
+<646b2e676f762e6f696f73692e746573742e726571756573742c206f7220746861742074686520646b2e676f762e6f696f73692e746573742e6e756e69742e6c6962726172792070726f6a65637420697320636f6d70696c656420616e64> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 719.537 Td
+/F2.0 11 Tf
+<72756e20696e204e556e69742e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+48.24 663.3383 Td
+/F4.0 18 Tf
+<352e20556e696e7374616c6c696e67> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+0.9369 Tw
+
+BT
+48.24 637.1486 Td
+/F2.0 11 Tf
+<556e696e7374616c6c696e67207468652052415350204c69627261727920697320646f6e652062792073696d706c792064656c6574696e672074686520666f6c6465727320696e746f20776869636820746865206c696272617279> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+48.24 622.6741 Td
+/F2.0 11 Tf
+<77617320756e7a69707065642e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+q
+0.0 0.0 0.0 scn
+0.0 0.0 0.0 SCN
+1 w
+0 J
+0 j
+[] 0 d
+/Stamp1 Do
+0.1333 0.1333 0.1333 scn
+0.1333 0.1333 0.1333 SCN
+
+BT
+540.793 15.505 Td
+/F2.0 9 Tf
+<33> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+Q
+Q
+
+endstream
+endobj
+36 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 595.28 841.89]
+/CropBox [0 0 595.28 841.89]
+/BleedBox [0 0 595.28 841.89]
+/TrimBox [0 0 595.28 841.89]
+/ArtBox [0 0 595.28 841.89]
+/Contents 35 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F4.0 20 0 R
+/F2.0 11 0 R
+>>
+/XObject << /Stamp1 70 0 R
+>>
+>>
+>>
+endobj
+37 0 obj
+[36 0 R /XYZ 0 841.89 null]
+endobj
+38 0 obj
+[36 0 R /XYZ 0 704.0783 null]
+endobj
+39 0 obj
+<< /Border [0 0 0]
+/Dest (_introduction)
+/Subtype /Link
+/Rect [48.24 758.873 125.757 771.776]
+/Type /Annot
+>>
+endobj
+40 0 obj
+<< /Border [0 0 0]
+/Dest (_introduction)
+/Subtype /Link
+/Rect [542.75 758.873 547.04 771.776]
+/Type /Annot
+>>
+endobj
+41 0 obj
+<< /Border [0 0 0]
+/Dest (_system_requirements)
+/Subtype /Link
+/Rect [48.24 741.57 177.369 754.473]
+/Type /Annot
+>>
+endobj
+42 0 obj
+<< /Border [0 0 0]
+/Dest (_system_requirements)
+/Subtype /Link
+/Rect [542.75 741.57 547.04 754.473]
+/Type /Annot
+>>
+endobj
+43 0 obj
+<< /Border [0 0 0]
+/Dest (_install_package)
+/Subtype /Link
+/Rect [48.24 724.267 142.268 737.17]
+/Type /Annot
+>>
+endobj
+44 0 obj
+<< /Border [0 0 0]
+/Dest (_install_package)
+/Subtype /Link
+/Rect [542.75 724.267 547.04 737.17]
+/Type /Annot
+>>
+endobj
+45 0 obj
+<< /Border [0 0 0]
+/Dest (_certificate)
+/Subtype /Link
+/Rect [60.24 706.964 137.053 719.867]
+/Type /Annot
+>>
+endobj
+46 0 obj
+<< /Border [0 0 0]
+/Dest (_certificate)
+/Subtype /Link
+/Rect [540.627 706.964 547.04 719.867]
+/Type /Annot
+>>
+endobj
+47 0 obj
+<< /Border [0 0 0]
+/Dest (_nunit_for_running_the_nunit_sample_test)
+/Subtype /Link
+/Rect [60.24 689.661 307.421 702.564]
+/Type /Annot
+>>
+endobj
+48 0 obj
+<< /Border [0 0 0]
+/Dest (_nunit_for_running_the_nunit_sample_test)
+/Subtype /Link
+/Rect [540.627 689.661 547.04 702.564]
+/Type /Annot
+>>
+endobj
+49 0 obj
+<< /Border [0 0 0]
+/Dest (_test_endpoints)
+/Subtype /Link
+/Rect [60.24 672.358 163.508 685.261]
+/Type /Annot
+>>
+endobj
+50 0 obj
+<< /Border [0 0 0]
+/Dest (_test_endpoints)
+/Subtype /Link
+/Rect [540.627 672.358 547.04 685.261]
+/Type /Annot
+>>
+endobj
+51 0 obj
+<< /Border [0 0 0]
+/Dest (howto_codesign)
+/Subtype /Link
+/Rect [60.24 655.055 264.609 667.958]
+/Type /Annot
+>>
+endobj
+52 0 obj
+<< /Border [0 0 0]
+/Dest (howto_codesign)
+/Subtype /Link
+/Rect [540.627 655.055 547.04 667.958]
+/Type /Annot
+>>
+endobj
+53 0 obj
+<< /Border [0 0 0]
+/Dest (_verifying_installation)
+/Subtype /Link
+/Rect [48.24 637.752 172.133 650.655]
+/Type /Annot
+>>
+endobj
+54 0 obj
+<< /Border [0 0 0]
+/Dest (_verifying_installation)
+/Subtype /Link
+/Rect [540.627 637.752 547.04 650.655]
+/Type /Annot
+>>
+endobj
+55 0 obj
+<< /Border [0 0 0]
+/Dest (_uninstalling)
+/Subtype /Link
+/Rect [48.24 620.449 124.602 633.352]
+/Type /Annot
+>>
+endobj
+56 0 obj
+<< /Border [0 0 0]
+/Dest (_uninstalling)
+/Subtype /Link
+/Rect [540.627 620.449 547.04 633.352]
+/Type /Annot
+>>
+endobj
+57 0 obj
+<< /Type /Outlines
+/Count 11
+/First 58 0 R
+/Last 68 0 R
+>>
+endobj
+58 0 obj
+<< /Title
+/Parent 57 0 R
+/Count 0
+/Next 59 0 R
+/Dest [7 0 R /XYZ 0 841.89 null]
+>>
+endobj
+59 0 obj
+<< /Title
+/Parent 57 0 R
+/Count 0
+/Next 60 0 R
+/Prev 58 0 R
+/Dest [13 0 R /XYZ 0 841.89 null]
+>>
+endobj
+60 0 obj
+<< /Title
+/Parent 57 0 R
+/Count 0
+/Next 61 0 R
+/Prev 59 0 R
+/Dest [15 0 R /XYZ 0 841.89 null]
+>>
+endobj
+61 0 obj
+<< /Title
+/Parent 57 0 R
+/Count 0
+/Next 62 0 R
+/Prev 60 0 R
+/Dest [15 0 R /XYZ 0 624.655 null]
+>>
+endobj
+62 0 obj
+<< /Title
+/Parent 57 0 R
+/Count 4
+/First 63 0 R
+/Last 66 0 R
+/Next 67 0 R
+/Prev 61 0 R
+/Dest [15 0 R /XYZ 0 360.4711 null]
+>>
+endobj
+63 0 obj
+<< /Title
+/Parent 62 0 R
+/Count 0
+/Next 64 0 R
+/Dest [26 0 R /XYZ 0 841.89 null]
+>>
+endobj
+64 0 obj
+<< /Title
+/Parent 62 0 R
+/Count 0
+/Next 65 0 R
+/Prev 63 0 R
+/Dest [26 0 R /XYZ 0 693.1229 null]
+>>
+endobj
+65 0 obj
+<< /Title
+/Parent 62 0 R
+/Count 0
+/Next 66 0 R
+/Prev 64 0 R
+/Dest [26 0 R /XYZ 0 529.8813 null]
+>>
+endobj
+66 0 obj
+<< /Title
+/Parent 62 0 R
+/Count 0
+/Prev 65 0 R
+/Dest [26 0 R /XYZ 0 430.5374 null]
+>>
+endobj
+67 0 obj
+<< /Title
+/Parent 57 0 R
+/Count 0
+/Next 68 0 R
+/Prev 62 0 R
+/Dest [36 0 R /XYZ 0 841.89 null]
+>>
+endobj
+68 0 obj
+<< /Title
+/Parent 57 0 R
+/Count 0
+/Prev 67 0 R
+/Dest [36 0 R /XYZ 0 704.0783 null]
+>>
+endobj
+69 0 obj
+<< /Nums [0 << /P (i)
+>> 1 << /P (ii)
+>> 2 << /P (1)
+>> 3 << /P (2)
+>> 4 << /P (3)
+>>]
+>>
+endobj
+70 0 obj
+<< /Type /XObject
+/Subtype /Form
+/BBox [0 0 595.28 841.89]
+/Length 162
+>>
+stream
+q
+/DeviceRGB cs
+0.0 0.0 0.0 scn
+/DeviceRGB CS
+0.0 0.0 0.0 SCN
+1 w
+0 J
+0 j
+[] 0 d
+q
+0.25 w
+/DeviceRGB CS
+0.8667 0.8667 0.8667 SCN
+48.24 30.0 m
+547.04 30.0 l
+S
+Q
+Q
+
+endstream
+endobj
+71 0 obj
+<< /Type /XObject
+/Subtype /Form
+/BBox [0 0 595.28 841.89]
+/Length 162
+>>
+stream
+q
+/DeviceRGB cs
+0.0 0.0 0.0 scn
+/DeviceRGB CS
+0.0 0.0 0.0 SCN
+1 w
+0 J
+0 j
+[] 0 d
+q
+0.25 w
+/DeviceRGB CS
+0.8667 0.8667 0.8667 SCN
+48.24 30.0 m
+547.04 30.0 l
+S
+Q
+Q
+
+endstream
+endobj
+72 0 obj
+<< /Length1 7916
+/Length 4288
+/Filter [/FlateDecode]
+>>
+stream
+xXil[Wv>=.Z,B٦,?ꑴ,>Ҳd-e"&m˲vlZIJkl+qz6cf0#?ZhҞi:-?N)P@(vAGʲc'iP9{{ޕHQu~gRqmvPH4}oπASzETd:_zs
+Q3E?:>uaj?n3M'm!t!q8Mr8nqֵF@vOr@GJgSȐIz_k{W`kcͫBt;^Vt
+r9fd`47 tiuDŽ[8LphB MI`0!+xK[Q[-،M7!f}|-^2;};f˽hio/^o:╥d"z}{Dwkm/-,>3@l
HޑNXHxW84]S&ʐáMe2nt>rBe3EG%ZV7755u4`RcVմF0ZZ?p!^ͧ}/y~WhT=nLéţG車A+[==٭Q؏R;atЄv7f\0S@3\7ʍ]~}Mp g1[}-A; Sdp.{+GN/{Zl]"Ë19{~e݀6
6Vˌ#m©S5_xnVkTyd_<Rd vn풵rt:CkCSC.[趶w;`p(U-@Gx ivsekZrc##&SF:_-^~%tf9:f]f[FgSǓqZY}0g^Oğ1<שӮZRW3n4