modules/teamcityExtensions/Utils/Get-TestRunGuidFromTrxFile.Tests.ps1
<# The MIT License (MIT) Copyright (c) 2015 Objectivity Bespoke Software Specialists Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #> Import-Module -Name "$PSScriptRoot\..\..\..\PSCI.psd1" -Force Describe -Tag "PSCI.unit" "Get-TestRunGuidFromTrxFile.Tests.ps1" { InModuleScope PSCI.teamcityExtensions { Context "when used without TrxFolderOrFilePath parameter" { It "should throw error" { { Get-TestRunGuidFromTrxFile -TrxFolderOrFilePath "" } | Should Throw } } Context "when used with invalid project file" { $TrxFolderOrFilePath = "C:\Test.Reports.SomeNotExistingFile6546546464654xxx" It "should throw error that file does not exists" { { Get-TestRunGuidFromTrxFile -TrxFolderOrFilePath $TrxFolderOrFilePath } | Should Throw } } Context "when used with valid, but empty test report file" { $TrxFolderOrFilePath = 'C:\TestReport.trx' Mock Test-Path { return $true } -ParameterFilter { $TrxFolderOrFilePath -eq 'C:\TestReport.trx' } Mock Get-Content { return "<SomeNode></SomeNode>" } It "should throw error missing xml element." { { Get-TestRunGuidFromTrxFile -TrxFolderOrFilePath 'C:\TestReport.trx' } | Should Throw } } Context "when used with valid xml" { $TrxFolderOrFilePath = 'TestReport.trx' Mock Test-Path { return $true } -ParameterFilter { $TrxFolderOrFilePath -eq 'C:\TestReport.trx' } Mock Get-Content { return "<TestRun id='0000-1111-AAAA-BBBB-9999'>some other content</TestRun>" } It "should return expected guid from xml." { $result = Get-TestRunGuidFromTrxFile -TrxFolderOrFilePath 'C:\TestReport.trx' $result | Should Be '0000-1111-AAAA-BBBB-9999' } } Context "when used with valid xml" { $TrxFolderOrFilePath = 'C:\TestReport.trx' Mock Test-Path { return $true } -ParameterFilter { $TrxFolderOrFilePath -eq 'C:\TestReport.trx' } Mock Get-Content { return @" <?xml version="1.0" encoding="UTF-8"?> <TestRun id="f6df8ed1-3a9b-4c60-a0ff-88d082506a23" name="myComputerName@PLmyComputerName 2015-09-29 12:48:00" runUser="OBJECTIVITY\myComputerName" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"> <TestSettings name="Local" id="7a269be1-e9d3-497b-99a0-a009d3eb20c8"> <Description>These are default test settings for a local test run.</Description> <Execution> <TestTypeSpecific /> <AgentRule name="Execution Agents"> </AgentRule> </Execution> <Deployment runDeploymentRoot="myComputerName_PLmyComputerName 2015-09-29 12_48_00" /> <Properties> <Property name="TestSettingsUIType" value="LoadTest" /> </Properties> </TestSettings> <Times creation="2015-09-29T12:48:00.5964227+02:00" queuing="2015-09-29T12:48:01.0349418+02:00" start="2015-09-29T12:48:01.1579900+02:00" finish="2015-09-29T12:48:13.4386600+02:00" /> <ResultSummary outcome="Completed"> <Counters total="1" executed="1" passed="1" error="0" failed="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" /> </ResultSummary> <TestDefinitions> <WebTest name="WebTest1" storage="c:\users\myComputerName\documents\visual studio 2015\projects\webandloadtestproject1\webandloadtestproject1\webtest1.webtest" id="d74260a0-b081-4ab8-8d0f-b55fc10a99d7" persistedWebTest="77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFdlYlRlc3QgTmFtZT0iV2ViVGVzdDEiIElkPSJkNzQyNjBhMC1iMDgxLTRhYjgtOGQwZi1iNTVmYzEwYTk5ZDciIE93bmVyPSIiIFByaW9yaXR5PSIyMTQ3NDgzNjQ3IiBFbmFibGVkPSJUcnVlIiBDc3NQcm9qZWN0U3RydWN0dXJlPSIiIENzc0l0ZXJhdGlvbj0iIiBUaW1lb3V0PSIwIiBXb3JrSXRlbUlkcz0iIiB4bWxucz0iaHR0cDovL21pY3Jvc29mdC5jb20vc2NoZW1hcy9WaXN1YWxTdHVkaW8vVGVhbVRlc3QvMjAxMCIgRGVzY3JpcHRpb249IiIgQ3JlZGVudGlhbFVzZXJOYW1lPSIiIENyZWRlbnRpYWxQYXNzd29yZD0iIiBQcmVBdXRoZW50aWNhdGU9IlRydWUiIFByb3h5PSJkZWZhdWx0IiBTdG9wT25FcnJvcj0iRmFsc2UiIFJlY29yZGVkUmVzdWx0RmlsZT0iV2ViVGVzdDEuMDg0Y2NhNDAtZDZjNS00YzkyLWI5ZDMtNDVlNTk2MDQyZmUxLnJlYy53ZWJ0ZXN0cmVzdWx0IiBSZXN1bHRzTG9jYWxlPSIiPg0KICA8SXRlbXM+DQogICAgPFJlcXVlc3QgTWV0aG9kPSJHRVQiIEd1aWQ9ImExYmFiYjU4LTZjN2UtNGU0My05YmQ2LTQyOWFjNDNiYjQ4MyIgVmVyc2lvbj0iMS4xIiBVcmw9Imh0dHBzOi8vd3d3Lmdvb2dsZS5wbC8iIFRoaW5rVGltZT0iMCIgVGltZW91dD0iMzAwIiBQYXJzZURlcGVuZGVudFJlcXVlc3RzPSJUcnVlIiBGb2xsb3dSZWRpcmVjdHM9IlRydWUiIFJlY29yZFJlc3VsdD0iVHJ1ZSIgQ2FjaGU9IkZhbHNlIiBSZXNwb25zZVRpbWVHb2FsPSIwIiBFbmNvZGluZz0idXRmLTgiIEV4cGVjdGVkSHR0cFN0YXR1c0NvZGU9IjAiIEV4cGVjdGVkUmVzcG9uc2VVcmw9IiIgUmVwb3J0aW5nTmFtZT0iIiBJZ25vcmVIdHRwU3RhdHVzQ29kZT0iRmFsc2UiPg0KICAgICAgPEV4dHJhY3Rpb25SdWxlcz4NCiAgICAgICAgPEV4dHJhY3Rpb25SdWxlIENsYXNzbmFtZT0iTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5UZXN0VG9vbHMuV2ViVGVzdGluZy5SdWxlcy5FeHRyYWN0SGlkZGVuRmllbGRzLCBNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlF1YWxpdHlUb29scy5XZWJUZXN0RnJhbWV3b3JrLCBWZXJzaW9uPTEwLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EiIFZhcmlhYmxlTmFtZT0iMSIgRGlzcGxheU5hbWU9IkV4dHJhY3QgSGlkZGVuIEZpZWxkcyIgRGVzY3JpcHRpb249IkV4dHJhY3QgYWxsIGhpZGRlbiBmaWVsZHMgZnJvbSB0aGUgcmVzcG9uc2UgYW5kIHBsYWNlIHRoZW0gaW50byB0aGUgdGVzdCBjb250ZXh0LiI+DQogICAgICAgICAgPFJ1bGVQYXJhbWV0ZXJzPg0KICAgICAgICAgICAgPFJ1bGVQYXJhbWV0ZXIgTmFtZT0iUmVxdWlyZWQiIFZhbHVlPSJUcnVlIiAvPg0KICAgICAgICAgICAgPFJ1bGVQYXJhbWV0ZXIgTmFtZT0iSHRtbERlY29kZSIgVmFsdWU9IlRydWUiIC8+DQogICAgICAgICAgPC9SdWxlUGFyYW1ldGVycz4NCiAgICAgICAgPC9FeHRyYWN0aW9uUnVsZT4NCiAgICAgIDwvRXh0cmFjdGlvblJ1bGVzPg0KICAgICAgPENvcnJlbGF0aW9uRXh0cmFjdGlvblJ1bGVzPg0KICAgICAgICA8RXh0cmFjdGlvblJ1bGUgQ2xhc3NuYW1lPSJNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlRlc3RUb29scy5XZWJUZXN0aW5nLlJ1bGVzLkV4dHJhY3RUZXh0LCBNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlF1YWxpdHlUb29scy5XZWJUZXN0RnJhbWV3b3JrLCBWZXJzaW9uPTEwLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EiIFZhcmlhYmxlTmFtZT0iUXVlcnlTdHJpbmdQYXJhbTM3LmF0eXAiIERpc3BsYXlOYW1lPSIiIERlc2NyaXB0aW9uPSIiPg0KICAgICAgICAgIDxSdWxlUGFyYW1ldGVycz4NCiAgICAgICAgICAgIDxSdWxlUGFyYW1ldGVyIE5hbWU9IlN0YXJ0c1dpdGgiIFZhbHVlPSI/YXR5cD0iIC8+DQogICAgICAgICAgICA8UnVsZVBhcmFtZXRlciBOYW1lPSJFbmRzV2l0aCIgVmFsdWU9IiZhbXA7IiAvPg0KICAgICAgICAgICAgPFJ1bGVQYXJhbWV0ZXIgTmFtZT0iSW5kZXgiIFZhbHVlPSIwIiAvPg0KICAgICAgICAgICAgPFJ1bGVQYXJhbWV0ZXIgTmFtZT0iSWdub3JlQ2FzZSIgVmFsdWU9IkZhbHNlIiAvPg0KICAgICAgICAgICAgPFJ1bGVQYXJhbWV0ZXIgTmFtZT0iVXNlUmVndWxhckV4cHJlc3Npb24iIFZhbHVlPSJGYWxzZSIgLz4NCiAgICAgICAgICAgIDxSdWxlUGFyYW1ldGVyIE5hbWU9Ikh0bWxEZWNvZGUiIFZhbHVlPSJUcnVlIiAvPg0KICAgICAgICAgICAgPFJ1bGVQYXJhbWV0ZXIgTmFtZT0iUmVxdWlyZWQiIFZhbHVlPSJGYWxzZSIgLz4NCiAgICAgICAgICA8L1J1bGVQYXJhbWV0ZXJzPg0KICAgICAgICA8L0V4dHJhY3Rpb25SdWxlPg0KICAgICAgICA8RXh0cmFjdGlvblJ1bGUgQ2xhc3NuYW1lPSJNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlRlc3RUb29scy5XZWJUZXN0aW5nLlJ1bGVzLkV4dHJhY3RUZXh0LCBNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlF1YWxpdHlUb29scy5XZWJUZXN0RnJhbWV3b3JrLCBWZXJzaW9uPTEwLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EiIFZhcmlhYmxlTmFtZT0iUXVlcnlTdHJpbmdQYXJhbTk4LmF0eXAiIERpc3BsYXlOYW1lPSIiIERlc2NyaXB0aW9uPSIiPg0KICAgICAgICAgIDxSdWxlUGFyYW1ldGVycz4NCiAgICAgICAgICAgIDxSdWxlUGFyYW1ldGVyIE5hbWU9IlN0YXJ0c1dpdGgiIFZhbHVlPSI/YXR5cD0iIC8+DQogICAgICAgICAgICA8UnVsZVBhcmFtZXRlciBOYW1lPSJFbmRzV2l0aCIgVmFsdWU9IiZhbXA7IiAvPg0KICAgICAgICAgICAgPFJ1bGVQYXJhbWV0ZXIgTmFtZT0iSW5kZXgiIFZhbHVlPSIwIiAvPg0KICAgICAgICAgICAgPFJ1bGVQYXJhbWV0ZXIgTmFtZT0iSWdub3JlQ2FzZSIgVmFsdWU9IkZhbHNlIiAvPg0KICAgICAgICAgICAgPFJ1bGVQYXJhbWV0ZXIgTmFtZT0iVXNlUmVndWxhckV4cHJlc3Npb24iIFZhbHVlPSJGYWxzZSIgLz4NCiAgICAgICAgICAgIDxSdWxlUGFyYW1ldGVyIE5hbWU9Ikh0bWxEZWNvZGUiIFZhbHVlPSJUcnVlIiAvPg0KICAgICAgICAgICAgPFJ1bGVQYXJhbWV0ZXIgTmFtZT0iUmVxdWlyZWQiIFZhbHVlPSJGYWxzZSIgLz4NCiAgICAgICAgICA8L1J1bGVQYXJhbWV0ZXJzPg0KICAgICAgICA8L0V4dHJhY3Rpb25SdWxlPg0KICAgICAgICA8RXh0cmFjdGlvblJ1bGUgQ2xhc3NuYW1lPSJNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlRlc3RUb29scy5XZWJUZXN0aW5nLlJ1bGVzLkV4dHJhY3RUZXh0LCBNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlF1YWxpdHlUb29scy5XZWJUZXN0RnJhbWV3b3JrLCBWZXJzaW9uPTEwLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EiIFZhcmlhYmxlTmFtZT0iUXVlcnlTdHJpbmdQYXJhbTI2Ny5hdHlwIiBEaXNwbGF5TmFtZT0iIiBEZXNjcmlwdGlvbj0iIj4NCiAgICAgICAgICA8UnVsZVBhcmFtZXRlcnM+DQogICAgICAgICAgICA8UnVsZVBhcmFtZXRlciBOYW1lPSJTdGFydHNXaXRoIiBWYWx1ZT0iP2F0eXA9IiAvPg0KICAgICAgICAgICAgPFJ1bGVQYXJhbWV0ZXIgTmFtZT0iRW5kc1dpdGgiIFZhbHVlPSImYW1wOyIgLz4NCiAgICAgICAgICAgIDxSdWxlUGFyYW1ldGVyIE5hbWU9IkluZGV4IiBWYWx1ZT0iMCIgLz4NCiAgICAgICAgICAgIDxSdWxlUGFyYW1ldGVyIE5hbWU9Iklnbm9yZUNhc2UiIFZhbHVlPSJGYWxzZSIgLz4NCiAgICAgICAgICAgIDxSdWxlUGFyYW1ldGVyIE5hbWU9IlVzZVJlZ3VsYXJFeHByZXNzaW9uIiBWYWx1ZT0iRmFsc2UiIC8+DQogICAgICAgICAgICA8UnVsZVBhcmFtZXRlciBOYW1lPSJIdG1sRGVjb2RlIiBWYWx1ZT0iVHJ1ZSIgLz4NCiAgICAgICAgICAgIDxSdWxlUGFyYW1ldGVyIE5hbWU9IlJlcXVpcmVkIiBWYWx1ZT0iRmFsc2UiIC8+DQogICAgICAgICAgPC9SdWxlUGFyYW1ldGVycz4NCiAgICAgICAgPC9FeHRyYWN0aW9uUnVsZT4NCiAgICAgICAgPEV4dHJhY3Rpb25SdWxlIENsYXNzbmFtZT0iTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5UZXN0VG9vbHMuV2ViVGVzdGluZy5SdWxlcy5FeHRyYWN0VGV4dCwgTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5RdWFsaXR5VG9vbHMuV2ViVGVzdEZyYW1ld29yaywgVmVyc2lvbj0xMC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhIiBWYXJpYWJsZU5hbWU9IlF1ZXJ5U3RyaW5nUGFyYW0zNjcuYXR5cCIgRGlzcGxheU5hbWU9IiIgRGVzY3JpcHRpb249IiI+DQogICAgICAgICAgPFJ1bGVQYXJhbWV0ZXJzPg0KICAgICAgICAgICAgPFJ1bGVQYXJhbWV0ZXIgTmFtZT0iU3RhcnRzV2l0aCIgVmFsdWU9Ij9hdHlwPSIgLz4NCiAgICAgICAgICAgIDxSdWxlUGFyYW1ldGVyIE5hbWU9IkVuZHNXaXRoIiBWYWx1ZT0iJmFtcDsiIC8+DQogICAgICAgICAgICA8UnVsZVBhcmFtZXRlciBOYW1lPSJJbmRleCIgVmFsdWU9IjAiIC8+DQogICAgICAgICAgICA8UnVsZVBhcmFtZXRlciBOYW1lPSJJZ25vcmVDYXNlIiBWYWx1ZT0iRmFsc2UiIC8+DQogICAgICAgICAgICA8UnVsZVBhcmFtZXRlciBOYW1lPSJVc2VSZWd1bGFyRXhwcmVzc2lvbiIgVmFsdWU9IkZhbHNlIiAvPg0KICAgICAgICAgICAgPFJ1bGVQYXJhbWV0ZXIgTmFtZT0iSHRtbERlY29kZSIgVmFsdWU9IlRydWUiIC8+DQogICAgICAgICAgICA8UnVsZVBhcmFtZXRlciBOYW1lPSJSZXF1aXJlZCIgVmFsdWU9IkZhbHNlIiAvPg0KICAgICAgICAgIDwvUnVsZVBhcmFtZXRlcnM+DQogICAgICAgIDwvRXh0cmFjdGlvblJ1bGU+DQogICAgICA8L0NvcnJlbGF0aW9uRXh0cmFjdGlvblJ1bGVzPg0KICAgIDwvUmVxdWVzdD4NCiAgICA8UmVxdWVzdCBNZXRob2Q9IkdFVCIgR3VpZD0iNDNkMWExYmItMjAyOC00ZGNmLThhYWItMDRhNjhlMGQxMTQxIiBWZXJzaW9uPSIxLjEiIFVybD0iaHR0cHM6Ly93d3cuZ29vZ2xlLnBsL3hqcy9fL2pzL2s9eGpzLnMucGwuX2FWX0hiT3ZTRTQuTy9tPXN4LGMsc2IsY2RvcyxjcixlbG9nLGpzYSxyLGhzbSxqLHAsZCxjc2kvYW09a0lJUVJQd2VCR0dGVVJPb1FrZ3NCZy9ydD1qL2Q9MS90PXpjbXMvcnM9QUNUOTBvR050QnJ0Sm42SXZZTkpsRGhfUzFkR3Z1YjBlUSIgVGhpbmtUaW1lPSIwIiBUaW1lb3V0PSIzMDAiIFBhcnNlRGVwZW5kZW50UmVxdWVzdHM9IlRydWUiIEZvbGxvd1JlZGlyZWN0cz0iVHJ1ZSIgUmVjb3JkUmVzdWx0PSJUcnVlIiBDYWNoZT0iRmFsc2UiIFJlc3BvbnNlVGltZUdvYWw9IjAiIEVuY29kaW5nPSJ1dGYtOCIgRXhwZWN0ZWRIdHRwU3RhdHVzQ29kZT0iMCIgRXhwZWN0ZWRSZXNwb25zZVVybD0iIiBSZXBvcnRpbmdOYW1lPSIiIElnbm9yZUh0dHBTdGF0dXNDb2RlPSJGYWxzZSI+DQogICAgICA8SGVhZGVycz4NCiAgICAgICAgPEhlYWRlciBOYW1lPSJSZWZlcmVyIiBWYWx1ZT0iaHR0cHM6Ly93d3cuZ29vZ2xlLnBsLyIgLz4NCiAgICAgIDwvSGVhZGVycz4NCiAgICA8L1JlcXVlc3Q+DQogICAgPFJlcXVlc3QgTWV0aG9kPSJHRVQiIEd1aWQ9ImNjZDg3YjU4LThkZjEtNGNlYy1iMGM0LWZiY2Q0MWEwNDFkZSIgVmVyc2lvbj0iMS4xIiBVcmw9Imh0dHBzOi8vd3d3Lmdvb2dsZS5wbC9nZW5fMjA0IiBUaGlua1RpbWU9IjAiIFRpbWVvdXQ9IjMwMCIgUGFyc2VEZXBlbmRlbnRSZXF1ZXN0cz0iVHJ1ZSIgRm9sbG93UmVkaXJlY3RzPSJUcnVlIiBSZWNvcmRSZXN1bHQ9IlRydWUiIENhY2hlPSJGYWxzZSIgUmVzcG9uc2VUaW1lR29hbD0iMCIgRW5jb2Rpbmc9InV0Zi04IiBFeHBlY3RlZEh0dHBTdGF0dXNDb2RlPSIwIiBFeHBlY3RlZFJlc3BvbnNlVXJsPSIiIFJlcG9ydGluZ05hbWU9IiIgSWdub3JlSHR0cFN0YXR1c0NvZGU9IkZhbHNlIj4NCiAgICAgIDxIZWFkZXJzPg0KICAgICAgICA8SGVhZGVyIE5hbWU9IlJlZmVyZXIiIFZhbHVlPSJodHRwczovL3d3dy5nb29nbGUucGwvIiAvPg0KICAgICAgPC9IZWFkZXJzPg0KICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVycz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InYiIFZhbHVlPSIzIiBSZWNvcmRlZFZhbHVlPSIzIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0icyIgVmFsdWU9IndlYmhwIiBSZWNvcmRlZFZhbHVlPSJ3ZWJocCIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImF0eXAiIFZhbHVlPSJjc2kiIFJlY29yZGVkVmFsdWU9ImNzaSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImltYyIgVmFsdWU9IjQiIFJlY29yZGVkVmFsdWU9IjQiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJpbW4iIFZhbHVlPSI0IiBSZWNvcmRlZFZhbHVlPSI0IiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iaW1wIiBWYWx1ZT0iMCIgUmVjb3JkZWRWYWx1ZT0iMCIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImVpIiBWYWx1ZT0iVW13S1ZwYVdBNFhZeUFPRm1LOXciIFJlY29yZGVkVmFsdWU9IlVtd0tWcGFXQTRYWXlBT0ZtSzl3IiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iZSIgVmFsdWU9IjQwMjQyMDcsNDAyNjI0MSw0MDI5ODE1LDQwMzExMDksNDAzMjY3OCw0MDMzMzA3LDQwMzMzNDQsNDAzNDg4Miw0MDM2MDA1LDQwMzY1MjcsNDAzNzMzMyw0MDM3NTY5LDQwMzc5NjIsNDAzNzk2NCw0MDM4MDEyLDQwMzgyMTQsNDA0MTA2Miw0MDQxNDQwLDQwNDE1MDcsNDA0MTc3Niw0MDQxODM2LDQwNDIxODAsNDA0MjQ5MSw0MDQyOTg1LDQwNDI5ODcsNDA0Mjk4OSw0MDQzMDMwLDQwNDMyNTUsNDA0MzQxMSw0MDQzNDQ4LDQwNDM0NDksNDA0MzQ5Miw0MDQzNTY0LDQwNDM1NjgsNDA0MzU5Niw0MDQ0MjQ1LDQwNDQzMzksNDA0NDM0Myw0MDQ0NjA2LDQwNDUwMDMsNDA0NTcxNiw0MDQ1NzY0LDQwNDU4NDEsNDA0NTg3Miw0MDQ2MDQzLDQwNDYzMDQsNDA0NjQwMCw0MDQ2NjA2LDQwNDY3MTcsNDA0NjgzNSw0MDQ2ODM3LDQwNDY4NzcsNDA0NjkwNCw0MDQ2OTA2LDQwNDcxMzMsNDA0NzMzMyw0MDQ3NDkyLDQwNDc1MzMsNDA0NzU0OSw0MDQ3NTkzLDQwNDc2ODMsNDA0NzkxNCw0MDQ4MDQzLDQwNDgwOTYsNDA0ODM1NCw0MDQ4NDI1LDQwNDg4MzYsNDA0ODg1NCw4MzAwMTk5LDgzMDAyMDMsODUwMTk3Miw4NTAxOTg3LDg1MDIzMTUsMTAyMDAwODMiIFJlY29yZGVkVmFsdWU9IjQwMjQyMDcsNDAyNjI0MSw0MDI5ODE1LDQwMzExMDksNDAzMjY3OCw0MDMzMzA3LDQwMzMzNDQsNDAzNDg4Miw0MDM2MDA1LDQwMzY1MjcsNDAzNzMzMyw0MDM3NTY5LDQwMzc5NjIsNDAzNzk2NCw0MDM4MDEyLDQwMzgyMTQsNDA0MTA2Miw0MDQxNDQwLDQwNDE1MDcsNDA0MTc3Niw0MDQxODM2LDQwNDIxODAsNDA0MjQ5MSw0MDQyOTg1LDQwNDI5ODcsNDA0Mjk4OSw0MDQzMDMwLDQwNDMyNTUsNDA0MzQxMSw0MDQzNDQ4LDQwNDM0NDksNDA0MzQ5Miw0MDQzNTY0LDQwNDM1NjgsNDA0MzU5Niw0MDQ0MjQ1LDQwNDQzMzksNDA0NDM0Myw0MDQ0NjA2LDQwNDUwMDMsNDA0NTcxNiw0MDQ1NzY0LDQwNDU4NDEsNDA0NTg3Miw0MDQ2MDQzLDQwNDYzMDQsNDA0NjQwMCw0MDQ2NjA2LDQwNDY3MTcsNDA0NjgzNSw0MDQ2ODM3LDQwNDY4NzcsNDA0NjkwNCw0MDQ2OTA2LDQwNDcxMzMsNDA0NzMzMyw0MDQ3NDkyLDQwNDc1MzMsNDA0NzU0OSw0MDQ3NTkzLDQwNDc2ODMsNDA0NzkxNCw0MDQ4MDQzLDQwNDgwOTYsNDA0ODM1NCw0MDQ4NDI1LDQwNDg4MzYsNDA0ODg1NCw4MzAwMTk5LDgzMDAyMDMsODUwMTk3Miw4NTAxOTg3LDg1MDIzMTUsMTAyMDAwODMiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJkTSIgVmFsdWU9IjExIiBSZWNvcmRlZFZhbHVlPSIxMSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImFkaCIgVmFsdWU9IiIgUmVjb3JkZWRWYWx1ZT0iIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0ieGpzIiBWYWx1ZT0iaW5pdC4yMi45LnNiLjE5LnAuMy5iYmQuMC5URzhyRncuMC5jLjAiIFJlY29yZGVkVmFsdWU9ImluaXQuMjIuOS5zYi4xOS5wLjMuYmJkLjAuVEc4ckZ3LjAuYy4wIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iaW1hIiBWYWx1ZT0iMiIgUmVjb3JkZWRWYWx1ZT0iMiIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InJ0IiBWYWx1ZT0ieGpzbHMuNjMscHJ0LjY0LGltbC42NCxkY2wuNjYsb2wuODYseGpzZXMuMjQwLHhqc2VlLjI4Mix4anMuMjgyLGFmdC42NCx3c3J0LjI5MSxjc3QuMCxkbnN0LjAscnFzdC4xMzAscnNwdC4xMzAscnFzdHQuMjA0LHVudC4wLGNzdHQuMCxkaXQuMzU3IiBSZWNvcmRlZFZhbHVlPSJ4anNscy42MyxwcnQuNjQsaW1sLjY0LGRjbC42NixvbC44Nix4anNlcy4yNDAseGpzZWUuMjgyLHhqcy4yODIsYWZ0LjY0LHdzcnQuMjkxLGNzdC4wLGRuc3QuMCxycXN0LjEzMCxyc3B0LjEzMCxycXN0dC4yMDQsdW50LjAsY3N0dC4wLGRpdC4zNTciIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICA8L1F1ZXJ5U3RyaW5nUGFyYW1ldGVycz4NCiAgICA8L1JlcXVlc3Q+DQogICAgPFJlcXVlc3QgTWV0aG9kPSJHRVQiIEd1aWQ9IjNiMWE1OGFiLTNhNWQtNDM5OC05YTBlLWQ0NmQyNjRhY2JiYiIgVmVyc2lvbj0iMS4xIiBVcmw9Imh0dHBzOi8vd3d3Lmdvb2dsZS5wbC94anMvXy9qcy9rPXhqcy5zLnBsLl9hVl9IYk92U0U0Lk8vbT1hYmQsc3k2NSxzeTY0LHN5NjMsc3k2Nixhc3luYyxlcmgsc3k2Nyxmb290LGZwZSxpZGNrLGlwdjYsbGMsc3kzMixzeTEyNSxsdSxtLHNmLHN5MzUsc3k0MSxzeTEyOCxzeTEyOSxzeTE0OSxzeTM2LHN5NDIsc3kzOSxzeTExMixzeTE0OCxzeTE1MCxzeTk5LHN5MTI0LHN5MTE4LHN5MTIxLHN5MTI3LHN5MTM3LHN5MTUxLHN5MTMwLHN5MjIxLHN5MTQ3LHN5MTU4LHN5MTM4LHN5MjE3LHN5MjU0LHN5MjcxLHN5NDAsc3k5NSxlbTEzLGVtMyxlbTYsZW00LGVtNSxlbTksZW03LGVtMTAsc3kyNzIsc2twLHZtLHN5MTAxLHN5MzQsc3k5OCxzeTEwMCxzeTEwMixjYmluLGRnbSxjYmhiL2FtPWtJSVFSUHdlQkdHRlVST29Ra2dzQmcvcnQ9ai9kPTAvdD16Y21zL3JzPUFDVDkwb0dOdEJydEpuNkl2WU5KbERoX1MxZEd2dWIwZVEiIFRoaW5rVGltZT0iMCIgVGltZW91dD0iMzAwIiBQYXJzZURlcGVuZGVudFJlcXVlc3RzPSJUcnVlIiBGb2xsb3dSZWRpcmVjdHM9IlRydWUiIFJlY29yZFJlc3VsdD0iVHJ1ZSIgQ2FjaGU9IkZhbHNlIiBSZXNwb25zZVRpbWVHb2FsPSIwIiBFbmNvZGluZz0idXRmLTgiIEV4cGVjdGVkSHR0cFN0YXR1c0NvZGU9IjAiIEV4cGVjdGVkUmVzcG9uc2VVcmw9IiIgUmVwb3J0aW5nTmFtZT0iIiBJZ25vcmVIdHRwU3RhdHVzQ29kZT0iRmFsc2UiPg0KICAgICAgPEhlYWRlcnM+DQogICAgICAgIDxIZWFkZXIgTmFtZT0iUmVmZXJlciIgVmFsdWU9Imh0dHBzOi8vd3d3Lmdvb2dsZS5wbC8iIC8+DQogICAgICA8L0hlYWRlcnM+DQogICAgPC9SZXF1ZXN0Pg0KICAgIDxSZXF1ZXN0IE1ldGhvZD0iR0VUIiBHdWlkPSJkNzYwNDkxNy01MGI3LTQwNGQtODdlOC1jYjk1OTNlNmYzMjYiIFZlcnNpb249IjEuMSIgVXJsPSJodHRwczovL3d3dy5nc3RhdGljLmNvbS9vZy9fL2pzL2s9b2cub2cyLmVuX1VTLkdZWElyS3ZoV0JZLk8vcnQ9ai90PXpjbXMvbT1zeTcsc3k2LHN5MjUsc3kzMCxzeTI2LHN5Mjgsc3k5LGRlZi9ycz1BQTJZclRzd2trSy03Vy1MczhycjkwNVJtODB4YWIya3FRIiBUaGlua1RpbWU9IjAiIFRpbWVvdXQ9IjMwMCIgUGFyc2VEZXBlbmRlbnRSZXF1ZXN0cz0iVHJ1ZSIgRm9sbG93UmVkaXJlY3RzPSJUcnVlIiBSZWNvcmRSZXN1bHQ9IlRydWUiIENhY2hlPSJGYWxzZSIgUmVzcG9uc2VUaW1lR29hbD0iMCIgRW5jb2Rpbmc9InV0Zi04IiBFeHBlY3RlZEh0dHBTdGF0dXNDb2RlPSIwIiBFeHBlY3RlZFJlc3BvbnNlVXJsPSIiIFJlcG9ydGluZ05hbWU9IiIgSWdub3JlSHR0cFN0YXR1c0NvZGU9IkZhbHNlIj4NCiAgICAgIDxIZWFkZXJzPg0KICAgICAgICA8SGVhZGVyIE5hbWU9IlJlZmVyZXIiIFZhbHVlPSJodHRwczovL3d3dy5nb29nbGUucGwvIiAvPg0KICAgICAgPC9IZWFkZXJzPg0KICAgIDwvUmVxdWVzdD4NCiAgICA8UmVxdWVzdCBNZXRob2Q9IkdFVCIgR3VpZD0iMmRlMWI2MDgtODU5My00M2ZiLWI4NWQtODQ2YTNiZWVhZmU4IiBWZXJzaW9uPSIxLjEiIFVybD0iaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vXy9zY3MvYWJjLXN0YXRpYy9fL2pzL2s9Z2FwaS5nYXBpLmVuLm9kLUJRVWsyT0xnLk8vbT1nYXBpX2lmcmFtZXMsZ29vZ2xlYXBpc19jbGllbnQscGx1c29uZS9ydD1qL3N2PTEvZD0xL2VkPTEvYW09QUFJL3JzPUFJdFJTVFBCUWxob3AzQnZNSVR5ZW4xeDJGRW1OM01jZncvY2I9Z2FwaS5sb2FkZWRfMCIgVGhpbmtUaW1lPSIwIiBUaW1lb3V0PSIzMDAiIFBhcnNlRGVwZW5kZW50UmVxdWVzdHM9IlRydWUiIEZvbGxvd1JlZGlyZWN0cz0iVHJ1ZSIgUmVjb3JkUmVzdWx0PSJUcnVlIiBDYWNoZT0iRmFsc2UiIFJlc3BvbnNlVGltZUdvYWw9IjAiIEVuY29kaW5nPSJ1dGYtOCIgRXhwZWN0ZWRIdHRwU3RhdHVzQ29kZT0iMCIgRXhwZWN0ZWRSZXNwb25zZVVybD0iIiBSZXBvcnRpbmdOYW1lPSIiIElnbm9yZUh0dHBTdGF0dXNDb2RlPSJGYWxzZSI+DQogICAgICA8SGVhZGVycz4NCiAgICAgICAgPEhlYWRlciBOYW1lPSJSZWZlcmVyIiBWYWx1ZT0iaHR0cHM6Ly93d3cuZ29vZ2xlLnBsLyIgLz4NCiAgICAgIDwvSGVhZGVycz4NCiAgICA8L1JlcXVlc3Q+DQogICAgPFJlcXVlc3QgTWV0aG9kPSJHRVQiIEd1aWQ9ImRhNTUzNTc1LWEzZTItNDAyOS1hMDY2LWVkMmM1ODdmMjZjMyIgVmVyc2lvbj0iMS4xIiBVcmw9Imh0dHBzOi8vd3d3Lmdvb2dsZS5wbC9nZW5fMjA0IiBUaGlua1RpbWU9IjUiIFRpbWVvdXQ9IjMwMCIgUGFyc2VEZXBlbmRlbnRSZXF1ZXN0cz0iVHJ1ZSIgRm9sbG93UmVkaXJlY3RzPSJUcnVlIiBSZWNvcmRSZXN1bHQ9IlRydWUiIENhY2hlPSJGYWxzZSIgUmVzcG9uc2VUaW1lR29hbD0iMCIgRW5jb2Rpbmc9InV0Zi04IiBFeHBlY3RlZEh0dHBTdGF0dXNDb2RlPSIwIiBFeHBlY3RlZFJlc3BvbnNlVXJsPSIiIFJlcG9ydGluZ05hbWU9IiIgSWdub3JlSHR0cFN0YXR1c0NvZGU9IkZhbHNlIj4NCiAgICAgIDxIZWFkZXJzPg0KICAgICAgICA8SGVhZGVyIE5hbWU9IlJlZmVyZXIiIFZhbHVlPSJodHRwczovL3d3dy5nb29nbGUucGwvIiAvPg0KICAgICAgPC9IZWFkZXJzPg0KICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVycz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImF0eXAiIFZhbHVlPSJpIiBSZWNvcmRlZFZhbHVlPSJpIiBDb3JyZWxhdGlvbkJpbmRpbmc9Int7UXVlcnlTdHJpbmdQYXJhbTM3LmF0eXB9fSIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iY3QiIFZhbHVlPSIiIFJlY29yZGVkVmFsdWU9IiIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImNhZCIgVmFsdWU9IiIgUmVjb3JkZWRWYWx1ZT0iIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0idmV0IiBWYWx1ZT0iMTBDQW9Rc21ScUZRb1RDSmFIM05xSW5NZ0NGUVVzY2dvZEJjd0xEZy4ucyIgUmVjb3JkZWRWYWx1ZT0iMTBDQW9Rc21ScUZRb1RDSmFIM05xSW5NZ0NGUVVzY2dvZEJjd0xEZy4ucyIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImVpIiBWYWx1ZT0iVW13S1ZwYVdBNFhZeUFPRm1LOXciIFJlY29yZGVkVmFsdWU9IlVtd0tWcGFXQTRYWXlBT0ZtSzl3IiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iengiIFZhbHVlPSIxNDQzNTIzNjY2NjgyIiBSZWNvcmRlZFZhbHVlPSIxNDQzNTIzNjY2NjgyIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgPC9RdWVyeVN0cmluZ1BhcmFtZXRlcnM+DQogICAgPC9SZXF1ZXN0Pg0KICAgIDxSZXF1ZXN0IE1ldGhvZD0iR0VUIiBHdWlkPSJmM2IwNjY4NS1hYjU4LTQwZGMtYjBhMS1kMWNiZjczYjkzOWQiIFZlcnNpb249IjEuMSIgVXJsPSJodHRwczovL3d3dy5nb29nbGUucGwvcyIgVGhpbmtUaW1lPSIwIiBUaW1lb3V0PSIzMDAiIFBhcnNlRGVwZW5kZW50UmVxdWVzdHM9IlRydWUiIEZvbGxvd1JlZGlyZWN0cz0iVHJ1ZSIgUmVjb3JkUmVzdWx0PSJUcnVlIiBDYWNoZT0iRmFsc2UiIFJlc3BvbnNlVGltZUdvYWw9IjAiIEVuY29kaW5nPSJ1dGYtOCIgRXhwZWN0ZWRIdHRwU3RhdHVzQ29kZT0iMCIgRXhwZWN0ZWRSZXNwb25zZVVybD0iIiBSZXBvcnRpbmdOYW1lPSIiIElnbm9yZUh0dHBTdGF0dXNDb2RlPSJGYWxzZSI+DQogICAgICA8SGVhZGVycz4NCiAgICAgICAgPEhlYWRlciBOYW1lPSJSZWZlcmVyIiBWYWx1ZT0iaHR0cHM6Ly93d3cuZ29vZ2xlLnBsLyIgLz4NCiAgICAgIDwvSGVhZGVycz4NCiAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlcnM+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJzY2xpZW50IiBWYWx1ZT0ie3skSElEREVOMS5zY2xpZW50fX0iIFJlY29yZGVkVmFsdWU9InBzeS1hYiIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InNpdGUiIFZhbHVlPSJ7eyRISURERU4xLnNpdGV9fSIgUmVjb3JkZWRWYWx1ZT0iIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0ic291cmNlIiBWYWx1ZT0ie3skSElEREVOMS5zb3VyY2V9fSIgUmVjb3JkZWRWYWx1ZT0iaHAiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJxIiBWYWx1ZT0iZCIgUmVjb3JkZWRWYWx1ZT0iZCIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9Im9xIiBWYWx1ZT0iIiBSZWNvcmRlZFZhbHVlPSIiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJnc19sIiBWYWx1ZT0iIiBSZWNvcmRlZFZhbHVlPSIiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJwYngiIFZhbHVlPSIxIiBSZWNvcmRlZFZhbHVlPSIxIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iYmF2IiBWYWx1ZT0ib24uMixvci4iIFJlY29yZGVkVmFsdWU9Im9uLjIsb3IuIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iYnZtIiBWYWx1ZT0iYnYuMTAzNjI3MTE2LGQuYkdRIiBSZWNvcmRlZFZhbHVlPSJidi4xMDM2MjcxMTYsZC5iR1EiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJmcCIgVmFsdWU9ImJmMjdmOWJkNzkxYmM5MzUiIFJlY29yZGVkVmFsdWU9ImJmMjdmOWJkNzkxYmM5MzUiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJiaXciIFZhbHVlPSIxNjU4IiBSZWNvcmRlZFZhbHVlPSIxNjU4IiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iYmloIiBWYWx1ZT0iOTg1IiBSZWNvcmRlZFZhbHVlPSI5ODUiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJkcHIiIFZhbHVlPSIxIiBSZWNvcmRlZFZhbHVlPSIxIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0icGYiIFZhbHVlPSJwIiBSZWNvcmRlZFZhbHVlPSJwIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iZ3Nfcm4iIFZhbHVlPSI2NCIgUmVjb3JkZWRWYWx1ZT0iNjQiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJnc19yaSIgVmFsdWU9InBzeS1hYiIgUmVjb3JkZWRWYWx1ZT0icHN5LWFiIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iY3AiIFZhbHVlPSIxIiBSZWNvcmRlZFZhbHVlPSIxIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iZ3NfaWQiIFZhbHVlPSI0IiBSZWNvcmRlZFZhbHVlPSI0IiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0ieGhyIiBWYWx1ZT0idCIgUmVjb3JkZWRWYWx1ZT0idCIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InRjaCIgVmFsdWU9IjEiIFJlY29yZGVkVmFsdWU9IjEiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJlY2giIFZhbHVlPSIxIiBSZWNvcmRlZFZhbHVlPSIxIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0icHNpIiBWYWx1ZT0iVW13S1ZwYVdBNFhZeUFPRm1LOXcuMTQ0MzUyMzY2NjUyMy4xIiBSZWNvcmRlZFZhbHVlPSJVbXdLVnBhV0E0WFl5QU9GbUs5dy4xNDQzNTIzNjY2NTIzLjEiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICA8L1F1ZXJ5U3RyaW5nUGFyYW1ldGVycz4NCiAgICA8L1JlcXVlc3Q+DQogICAgPFJlcXVlc3QgTWV0aG9kPSJHRVQiIEd1aWQ9IjUzMjVlNjlmLWZiNWYtNDQ1MS04ODJlLTU2MzJhMDJkYWI4NCIgVmVyc2lvbj0iMS4xIiBVcmw9Imh0dHBzOi8vd3d3Lmdvb2dsZS5wbC9nZW5fMjA0IiBUaGlua1RpbWU9IjAiIFRpbWVvdXQ9IjMwMCIgUGFyc2VEZXBlbmRlbnRSZXF1ZXN0cz0iVHJ1ZSIgRm9sbG93UmVkaXJlY3RzPSJUcnVlIiBSZWNvcmRSZXN1bHQ9IlRydWUiIENhY2hlPSJGYWxzZSIgUmVzcG9uc2VUaW1lR29hbD0iMCIgRW5jb2Rpbmc9InV0Zi04IiBFeHBlY3RlZEh0dHBTdGF0dXNDb2RlPSIwIiBFeHBlY3RlZFJlc3BvbnNlVXJsPSIiIFJlcG9ydGluZ05hbWU9IiIgSWdub3JlSHR0cFN0YXR1c0NvZGU9IkZhbHNlIj4NCiAgICAgIDxIZWFkZXJzPg0KICAgICAgICA8SGVhZGVyIE5hbWU9IlJlZmVyZXIiIFZhbHVlPSJodHRwczovL3d3dy5nb29nbGUucGwvIiAvPg0KICAgICAgPC9IZWFkZXJzPg0KICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVycz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImF0eXAiIFZhbHVlPSJpIiBSZWNvcmRlZFZhbHVlPSJpIiBDb3JyZWxhdGlvbkJpbmRpbmc9Int7UXVlcnlTdHJpbmdQYXJhbTk4LmF0eXB9fSIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iY3QiIFZhbHVlPSIxIiBSZWNvcmRlZFZhbHVlPSIxIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iY2FkIiBWYWx1ZT0iMSIgUmVjb3JkZWRWYWx1ZT0iMSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InJzbSIgVmFsdWU9IjYiIFJlY29yZGVkVmFsdWU9IjYiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJlaSIgVmFsdWU9IlVtd0tWcGFXQTRYWXlBT0ZtSzl3IiBSZWNvcmRlZFZhbHVlPSJVbXdLVnBhV0E0WFl5QU9GbUs5dyIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9Inp4IiBWYWx1ZT0iMTQ0MzUyMzY3MTc5OSIgUmVjb3JkZWRWYWx1ZT0iMTQ0MzUyMzY3MTc5OSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgIDwvUXVlcnlTdHJpbmdQYXJhbWV0ZXJzPg0KICAgIDwvUmVxdWVzdD4NCiAgICA8UmVxdWVzdCBNZXRob2Q9IkdFVCIgR3VpZD0iZTUwNDZiMzYtN2RlNS00ZTYxLWFiM2UtZGMxMGJiOWE3YTYzIiBWZXJzaW9uPSIxLjEiIFVybD0iaHR0cHM6Ly93d3cuZ29vZ2xlLnBsL3MiIFRoaW5rVGltZT0iMCIgVGltZW91dD0iMzAwIiBQYXJzZURlcGVuZGVudFJlcXVlc3RzPSJUcnVlIiBGb2xsb3dSZWRpcmVjdHM9IlRydWUiIFJlY29yZFJlc3VsdD0iVHJ1ZSIgQ2FjaGU9IkZhbHNlIiBSZXNwb25zZVRpbWVHb2FsPSIwIiBFbmNvZGluZz0idXRmLTgiIEV4cGVjdGVkSHR0cFN0YXR1c0NvZGU9IjAiIEV4cGVjdGVkUmVzcG9uc2VVcmw9IiIgUmVwb3J0aW5nTmFtZT0iIiBJZ25vcmVIdHRwU3RhdHVzQ29kZT0iRmFsc2UiPg0KICAgICAgPEhlYWRlcnM+DQogICAgICAgIDxIZWFkZXIgTmFtZT0iUmVmZXJlciIgVmFsdWU9Imh0dHBzOi8vd3d3Lmdvb2dsZS5wbC8iIC8+DQogICAgICA8L0hlYWRlcnM+DQogICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXJzPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0ic2NsaWVudCIgVmFsdWU9Int7JEhJRERFTjEuc2NsaWVudH19IiBSZWNvcmRlZFZhbHVlPSJwc3ktYWIiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJzaXRlIiBWYWx1ZT0ie3skSElEREVOMS5zaXRlfX0iIFJlY29yZGVkVmFsdWU9IiIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InNvdXJjZSIgVmFsdWU9Int7JEhJRERFTjEuc291cmNlfX0iIFJlY29yZGVkVmFsdWU9ImhwIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0icSIgVmFsdWU9ImR1IiBSZWNvcmRlZFZhbHVlPSJkdSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9Im9xIiBWYWx1ZT0iIiBSZWNvcmRlZFZhbHVlPSIiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJnc19sIiBWYWx1ZT0iIiBSZWNvcmRlZFZhbHVlPSIiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJwYngiIFZhbHVlPSIxIiBSZWNvcmRlZFZhbHVlPSIxIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iYmF2IiBWYWx1ZT0ib24uMixvci4iIFJlY29yZGVkVmFsdWU9Im9uLjIsb3IuIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iYnZtIiBWYWx1ZT0iYnYuMTAzNjI3MTE2LGQuYkdRIiBSZWNvcmRlZFZhbHVlPSJidi4xMDM2MjcxMTYsZC5iR1EiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJmcCIgVmFsdWU9ImJmMjdmOWJkNzkxYmM5MzUiIFJlY29yZGVkVmFsdWU9ImJmMjdmOWJkNzkxYmM5MzUiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJiaXciIFZhbHVlPSIxNjU4IiBSZWNvcmRlZFZhbHVlPSIxNjU4IiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iYmloIiBWYWx1ZT0iOTg1IiBSZWNvcmRlZFZhbHVlPSI5ODUiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJkcHIiIFZhbHVlPSIxIiBSZWNvcmRlZFZhbHVlPSIxIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0icGYiIFZhbHVlPSJwIiBSZWNvcmRlZFZhbHVlPSJwIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iZ3Nfcm4iIFZhbHVlPSI2NCIgUmVjb3JkZWRWYWx1ZT0iNjQiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJnc19yaSIgVmFsdWU9InBzeS1hYiIgUmVjb3JkZWRWYWx1ZT0icHN5LWFiIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iY3AiIFZhbHVlPSIyIiBSZWNvcmRlZFZhbHVlPSIyIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iZ3NfaWQiIFZhbHVlPSI4IiBSZWNvcmRlZFZhbHVlPSI4IiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0ieGhyIiBWYWx1ZT0idCIgUmVjb3JkZWRWYWx1ZT0idCIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InRjaCIgVmFsdWU9IjEiIFJlY29yZGVkVmFsdWU9IjEiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJlY2giIFZhbHVlPSIyIiBSZWNvcmRlZFZhbHVlPSIyIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0icHNpIiBWYWx1ZT0iVW13S1ZwYVdBNFhZeUFPRm1LOXcuMTQ0MzUyMzY2NjUyMy4xIiBSZWNvcmRlZFZhbHVlPSJVbXdLVnBhV0E0WFl5QU9GbUs5dy4xNDQzNTIzNjY2NTIzLjEiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICA8L1F1ZXJ5U3RyaW5nUGFyYW1ldGVycz4NCiAgICA8L1JlcXVlc3Q+DQogICAgPFJlcXVlc3QgTWV0aG9kPSJHRVQiIEd1aWQ9ImFhOTk3Yzc0LWI0NmItNGYwMy1iMmYwLWNiNDQwNTIzNDMwMCIgVmVyc2lvbj0iMS4xIiBVcmw9Imh0dHBzOi8vd3d3Lmdvb2dsZS5wbC9zIiBUaGlua1RpbWU9IjAiIFRpbWVvdXQ9IjMwMCIgUGFyc2VEZXBlbmRlbnRSZXF1ZXN0cz0iVHJ1ZSIgRm9sbG93UmVkaXJlY3RzPSJUcnVlIiBSZWNvcmRSZXN1bHQ9IlRydWUiIENhY2hlPSJGYWxzZSIgUmVzcG9uc2VUaW1lR29hbD0iMCIgRW5jb2Rpbmc9InV0Zi04IiBFeHBlY3RlZEh0dHBTdGF0dXNDb2RlPSIwIiBFeHBlY3RlZFJlc3BvbnNlVXJsPSIiIFJlcG9ydGluZ05hbWU9IiIgSWdub3JlSHR0cFN0YXR1c0NvZGU9IkZhbHNlIj4NCiAgICAgIDxIZWFkZXJzPg0KICAgICAgICA8SGVhZGVyIE5hbWU9IlJlZmVyZXIiIFZhbHVlPSJodHRwczovL3d3dy5nb29nbGUucGwvIiAvPg0KICAgICAgPC9IZWFkZXJzPg0KICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVycz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InNjbGllbnQiIFZhbHVlPSJ7eyRISURERU4xLnNjbGllbnR9fSIgUmVjb3JkZWRWYWx1ZT0icHN5LWFiIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0ic2l0ZSIgVmFsdWU9Int7JEhJRERFTjEuc2l0ZX19IiBSZWNvcmRlZFZhbHVlPSIiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJzb3VyY2UiIFZhbHVlPSJ7eyRISURERU4xLnNvdXJjZX19IiBSZWNvcmRlZFZhbHVlPSJocCIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InEiIFZhbHVlPSJkdXAiIFJlY29yZGVkVmFsdWU9ImR1cCIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9Im9xIiBWYWx1ZT0iIiBSZWNvcmRlZFZhbHVlPSIiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJnc19sIiBWYWx1ZT0iIiBSZWNvcmRlZFZhbHVlPSIiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJwYngiIFZhbHVlPSIxIiBSZWNvcmRlZFZhbHVlPSIxIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iYmF2IiBWYWx1ZT0ib24uMixvci4iIFJlY29yZGVkVmFsdWU9Im9uLjIsb3IuIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iYnZtIiBWYWx1ZT0iYnYuMTAzNjI3MTE2LGQuYkdRIiBSZWNvcmRlZFZhbHVlPSJidi4xMDM2MjcxMTYsZC5iR1EiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJmcCIgVmFsdWU9ImJmMjdmOWJkNzkxYmM5MzUiIFJlY29yZGVkVmFsdWU9ImJmMjdmOWJkNzkxYmM5MzUiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJiaXciIFZhbHVlPSIxNjU4IiBSZWNvcmRlZFZhbHVlPSIxNjU4IiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iYmloIiBWYWx1ZT0iOTg1IiBSZWNvcmRlZFZhbHVlPSI5ODUiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJkcHIiIFZhbHVlPSIxIiBSZWNvcmRlZFZhbHVlPSIxIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0icGYiIFZhbHVlPSJwIiBSZWNvcmRlZFZhbHVlPSJwIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iZ3Nfcm4iIFZhbHVlPSI2NCIgUmVjb3JkZWRWYWx1ZT0iNjQiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJnc19yaSIgVmFsdWU9InBzeS1hYiIgUmVjb3JkZWRWYWx1ZT0icHN5LWFiIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iY3AiIFZhbHVlPSIzIiBSZWNvcmRlZFZhbHVlPSIzIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iZ3NfaWQiIFZhbHVlPSJjIiBSZWNvcmRlZFZhbHVlPSJjIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0ieGhyIiBWYWx1ZT0idCIgUmVjb3JkZWRWYWx1ZT0idCIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InRjaCIgVmFsdWU9IjEiIFJlY29yZGVkVmFsdWU9IjEiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJlY2giIFZhbHVlPSIzIiBSZWNvcmRlZFZhbHVlPSIzIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0icHNpIiBWYWx1ZT0iVW13S1ZwYVdBNFhZeUFPRm1LOXcuMTQ0MzUyMzY2NjUyMy4xIiBSZWNvcmRlZFZhbHVlPSJVbXdLVnBhV0E0WFl5QU9GbUs5dy4xNDQzNTIzNjY2NTIzLjEiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICA8L1F1ZXJ5U3RyaW5nUGFyYW1ldGVycz4NCiAgICA8L1JlcXVlc3Q+DQogICAgPFJlcXVlc3QgTWV0aG9kPSJHRVQiIEd1aWQ9IjZiMGJkN2VlLTA2N2EtNDA3MC04Yzk4LTllNjM0YmI0NGM5MyIgVmVyc2lvbj0iMS4xIiBVcmw9Imh0dHBzOi8vd3d3Lmdvb2dsZS5wbC9zIiBUaGlua1RpbWU9IjAiIFRpbWVvdXQ9IjMwMCIgUGFyc2VEZXBlbmRlbnRSZXF1ZXN0cz0iVHJ1ZSIgRm9sbG93UmVkaXJlY3RzPSJUcnVlIiBSZWNvcmRSZXN1bHQ9IlRydWUiIENhY2hlPSJGYWxzZSIgUmVzcG9uc2VUaW1lR29hbD0iMCIgRW5jb2Rpbmc9InV0Zi04IiBFeHBlY3RlZEh0dHBTdGF0dXNDb2RlPSIwIiBFeHBlY3RlZFJlc3BvbnNlVXJsPSIiIFJlcG9ydGluZ05hbWU9IiIgSWdub3JlSHR0cFN0YXR1c0NvZGU9IkZhbHNlIj4NCiAgICAgIDxIZWFkZXJzPg0KICAgICAgICA8SGVhZGVyIE5hbWU9IlJlZmVyZXIiIFZhbHVlPSJodHRwczovL3d3dy5nb29nbGUucGwvIiAvPg0KICAgICAgPC9IZWFkZXJzPg0KICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVycz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InNjbGllbnQiIFZhbHVlPSJ7eyRISURERU4xLnNjbGllbnR9fSIgUmVjb3JkZWRWYWx1ZT0icHN5LWFiIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0ic2l0ZSIgVmFsdWU9Int7JEhJRERFTjEuc2l0ZX19IiBSZWNvcmRlZFZhbHVlPSIiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJzb3VyY2UiIFZhbHVlPSJ7eyRISURERU4xLnNvdXJjZX19IiBSZWNvcmRlZFZhbHVlPSJocCIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InEiIFZhbHVlPSJkdXBhIiBSZWNvcmRlZFZhbHVlPSJkdXBhIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0ib3EiIFZhbHVlPSIiIFJlY29yZGVkVmFsdWU9IiIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImdzX2wiIFZhbHVlPSIiIFJlY29yZGVkVmFsdWU9IiIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InBieCIgVmFsdWU9IjEiIFJlY29yZGVkVmFsdWU9IjEiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJiYXYiIFZhbHVlPSJvbi4yLG9yLiIgUmVjb3JkZWRWYWx1ZT0ib24uMixvci4iIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJidm0iIFZhbHVlPSJidi4xMDM2MjcxMTYsZC5iR1EiIFJlY29yZGVkVmFsdWU9ImJ2LjEwMzYyNzExNixkLmJHUSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImZwIiBWYWx1ZT0iYmYyN2Y5YmQ3OTFiYzkzNSIgUmVjb3JkZWRWYWx1ZT0iYmYyN2Y5YmQ3OTFiYzkzNSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImJpdyIgVmFsdWU9IjE2NTgiIFJlY29yZGVkVmFsdWU9IjE2NTgiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJiaWgiIFZhbHVlPSI5ODUiIFJlY29yZGVkVmFsdWU9Ijk4NSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImRwciIgVmFsdWU9IjEiIFJlY29yZGVkVmFsdWU9IjEiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJwZiIgVmFsdWU9InAiIFJlY29yZGVkVmFsdWU9InAiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJnc19ybiIgVmFsdWU9IjY0IiBSZWNvcmRlZFZhbHVlPSI2NCIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImdzX3JpIiBWYWx1ZT0icHN5LWFiIiBSZWNvcmRlZFZhbHVlPSJwc3ktYWIiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJjcCIgVmFsdWU9IjQiIFJlY29yZGVkVmFsdWU9IjQiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJnc19pZCIgVmFsdWU9ImciIFJlY29yZGVkVmFsdWU9ImciIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJ4aHIiIFZhbHVlPSJ0IiBSZWNvcmRlZFZhbHVlPSJ0IiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0idGNoIiBWYWx1ZT0iMSIgUmVjb3JkZWRWYWx1ZT0iMSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImVjaCIgVmFsdWU9IjQiIFJlY29yZGVkVmFsdWU9IjQiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJwc2kiIFZhbHVlPSJVbXdLVnBhV0E0WFl5QU9GbUs5dy4xNDQzNTIzNjY2NTIzLjEiIFJlY29yZGVkVmFsdWU9IlVtd0tWcGFXQTRYWXlBT0ZtSzl3LjE0NDM1MjM2NjY1MjMuMSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgIDwvUXVlcnlTdHJpbmdQYXJhbWV0ZXJzPg0KICAgIDwvUmVxdWVzdD4NCiAgICA8UmVxdWVzdCBNZXRob2Q9IkdFVCIgR3VpZD0iMDNjNDY1YWYtMmFkNy00ZmY1LTgzNTYtYjE3ZWFlYzVhN2JhIiBWZXJzaW9uPSIxLjEiIFVybD0iaHR0cHM6Ly93d3cuZ29vZ2xlLnBsL2dlbl8yMDQiIFRoaW5rVGltZT0iMyIgVGltZW91dD0iMzAwIiBQYXJzZURlcGVuZGVudFJlcXVlc3RzPSJUcnVlIiBGb2xsb3dSZWRpcmVjdHM9IlRydWUiIFJlY29yZFJlc3VsdD0iVHJ1ZSIgQ2FjaGU9IkZhbHNlIiBSZXNwb25zZVRpbWVHb2FsPSIwIiBFbmNvZGluZz0idXRmLTgiIEV4cGVjdGVkSHR0cFN0YXR1c0NvZGU9IjAiIEV4cGVjdGVkUmVzcG9uc2VVcmw9IiIgUmVwb3J0aW5nTmFtZT0iIiBJZ25vcmVIdHRwU3RhdHVzQ29kZT0iRmFsc2UiPg0KICAgICAgPEhlYWRlcnM+DQogICAgICAgIDxIZWFkZXIgTmFtZT0iUmVmZXJlciIgVmFsdWU9Imh0dHBzOi8vd3d3Lmdvb2dsZS5wbC8iIC8+DQogICAgICA8L0hlYWRlcnM+DQogICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXJzPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iYXR5cCIgVmFsdWU9ImkiIFJlY29yZGVkVmFsdWU9ImkiIENvcnJlbGF0aW9uQmluZGluZz0ie3tRdWVyeVN0cmluZ1BhcmFtMjY3LmF0eXB9fSIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iY3QiIFZhbHVlPSIxIiBSZWNvcmRlZFZhbHVlPSIxIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iY2FkIiBWYWx1ZT0iMSIgUmVjb3JkZWRWYWx1ZT0iMSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InJzbSIgVmFsdWU9IjIiIFJlY29yZGVkVmFsdWU9IjIiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJlaSIgVmFsdWU9IlVtd0tWcGFXQTRYWXlBT0ZtSzl3IiBSZWNvcmRlZFZhbHVlPSJVbXdLVnBhV0E0WFl5QU9GbUs5dyIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9Inp4IiBWYWx1ZT0iMTQ0MzUyMzY3MjA5NSIgUmVjb3JkZWRWYWx1ZT0iMTQ0MzUyMzY3MjA5NSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgIDwvUXVlcnlTdHJpbmdQYXJhbWV0ZXJzPg0KICAgIDwvUmVxdWVzdD4NCiAgICA8UmVxdWVzdCBNZXRob2Q9IkdFVCIgR3VpZD0iMDVjZGQ4MjMtNmM5OS00MmY1LWJmY2YtODBhYzc4ODUyYjVjIiBWZXJzaW9uPSIxLjEiIFVybD0iaHR0cHM6Ly93d3cuZ29vZ2xlLnBsLyIgVGhpbmtUaW1lPSIwIiBUaW1lb3V0PSIzMDAiIFBhcnNlRGVwZW5kZW50UmVxdWVzdHM9IlRydWUiIEZvbGxvd1JlZGlyZWN0cz0iVHJ1ZSIgUmVjb3JkUmVzdWx0PSJUcnVlIiBDYWNoZT0iRmFsc2UiIFJlc3BvbnNlVGltZUdvYWw9IjAiIEVuY29kaW5nPSJ1dGYtOCIgRXhwZWN0ZWRIdHRwU3RhdHVzQ29kZT0iMCIgRXhwZWN0ZWRSZXNwb25zZVVybD0iaHR0cHM6Ly93d3cuZ29vZ2xlLnBsLyNxPWR1cGEiIFJlcG9ydGluZ05hbWU9IiIgSWdub3JlSHR0cFN0YXR1c0NvZGU9IkZhbHNlIiAvPg0KICAgIDxSZXF1ZXN0IE1ldGhvZD0iR0VUIiBHdWlkPSIzODY4MTE4ZC01Njc5LTQ4YjctOTcxMC1kYmRlNTU3MGNmOWUiIFZlcnNpb249IjEuMSIgVXJsPSJodHRwczovL3d3dy5nb29nbGUucGwvc2VhcmNoIiBUaGlua1RpbWU9IjAiIFRpbWVvdXQ9IjMwMCIgUGFyc2VEZXBlbmRlbnRSZXF1ZXN0cz0iVHJ1ZSIgRm9sbG93UmVkaXJlY3RzPSJUcnVlIiBSZWNvcmRSZXN1bHQ9IlRydWUiIENhY2hlPSJGYWxzZSIgUmVzcG9uc2VUaW1lR29hbD0iMCIgRW5jb2Rpbmc9InV0Zi04IiBFeHBlY3RlZEh0dHBTdGF0dXNDb2RlPSIwIiBFeHBlY3RlZFJlc3BvbnNlVXJsPSIiIFJlcG9ydGluZ05hbWU9IiIgSWdub3JlSHR0cFN0YXR1c0NvZGU9IkZhbHNlIj4NCiAgICAgIDxIZWFkZXJzPg0KICAgICAgICA8SGVhZGVyIE5hbWU9IlJlZmVyZXIiIFZhbHVlPSJodHRwczovL3d3dy5nb29nbGUucGwvIiAvPg0KICAgICAgPC9IZWFkZXJzPg0KICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVycz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InNjbGllbnQiIFZhbHVlPSJ7eyRISURERU4xLnNjbGllbnR9fSIgUmVjb3JkZWRWYWx1ZT0icHN5LWFiIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0ic2l0ZSIgVmFsdWU9Int7JEhJRERFTjEuc2l0ZX19IiBSZWNvcmRlZFZhbHVlPSIiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJzb3VyY2UiIFZhbHVlPSJ7eyRISURERU4xLnNvdXJjZX19IiBSZWNvcmRlZFZhbHVlPSJocCIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InEiIFZhbHVlPSJkdXBhIiBSZWNvcmRlZFZhbHVlPSJkdXBhIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0ib3EiIFZhbHVlPSJkdXBhIiBSZWNvcmRlZFZhbHVlPSJkdXBhIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iZ3NfbCIgVmFsdWU9ImhwLjEyLi4uNTE2Ni41NDIwLjAuODkxOS40LjQuMC4wLjAuMC4xNTEuNTEzLjFqMy40LjAuLi4uMC4uLjFjLjEuNjQucHN5LWFiLi4xLjMuMzY3LkxLbUZuSkdjNjQ0IiBSZWNvcmRlZFZhbHVlPSJocC4xMi4uLjUxNjYuNTQyMC4wLjg5MTkuNC40LjAuMC4wLjAuMTUxLjUxMy4xajMuNC4wLi4uLjAuLi4xYy4xLjY0LnBzeS1hYi4uMS4zLjM2Ny5MS21GbkpHYzY0NCIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InBieCIgVmFsdWU9IjEiIFJlY29yZGVkVmFsdWU9IjEiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJiYXYiIFZhbHVlPSJvbi4yLG9yLiIgUmVjb3JkZWRWYWx1ZT0ib24uMixvci4iIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJidm0iIFZhbHVlPSJidi4xMDM2MjcxMTYsZC5iR1EiIFJlY29yZGVkVmFsdWU9ImJ2LjEwMzYyNzExNixkLmJHUSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImZwIiBWYWx1ZT0iYmYyN2Y5YmQ3OTFiYzkzNSIgUmVjb3JkZWRWYWx1ZT0iYmYyN2Y5YmQ3OTFiYzkzNSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImJpdyIgVmFsdWU9IjE2NTgiIFJlY29yZGVkVmFsdWU9IjE2NTgiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJiaWgiIFZhbHVlPSI5ODUiIFJlY29yZGVkVmFsdWU9Ijk4NSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImRwciIgVmFsdWU9IjEiIFJlY29yZGVkVmFsdWU9IjEiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJ0Y2giIFZhbHVlPSIxIiBSZWNvcmRlZFZhbHVlPSIxIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iZWNoIiBWYWx1ZT0iMSIgUmVjb3JkZWRWYWx1ZT0iMSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InBzaSIgVmFsdWU9IlVtd0tWcGFXQTRYWXlBT0ZtSzl3LjE0NDM1MjM2NjY1MjMuMyIgUmVjb3JkZWRWYWx1ZT0iVW13S1ZwYVdBNFhZeUFPRm1LOXcuMTQ0MzUyMzY2NjUyMy4zIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgPC9RdWVyeVN0cmluZ1BhcmFtZXRlcnM+DQogICAgPC9SZXF1ZXN0Pg0KICAgIDxSZXF1ZXN0IE1ldGhvZD0iR0VUIiBHdWlkPSIxMWJmZDdmNC04MTM1LTQ1YmQtYjA2ZS03YzYxMzY1OTliMzEiIFZlcnNpb249IjEuMSIgVXJsPSJodHRwczovL3d3dy5nb29nbGUucGwvZ2VuXzIwNCIgVGhpbmtUaW1lPSIwIiBUaW1lb3V0PSIzMDAiIFBhcnNlRGVwZW5kZW50UmVxdWVzdHM9IlRydWUiIEZvbGxvd1JlZGlyZWN0cz0iVHJ1ZSIgUmVjb3JkUmVzdWx0PSJUcnVlIiBDYWNoZT0iRmFsc2UiIFJlc3BvbnNlVGltZUdvYWw9IjAiIEVuY29kaW5nPSJ1dGYtOCIgRXhwZWN0ZWRIdHRwU3RhdHVzQ29kZT0iMCIgRXhwZWN0ZWRSZXNwb25zZVVybD0iIiBSZXBvcnRpbmdOYW1lPSIiIElnbm9yZUh0dHBTdGF0dXNDb2RlPSJGYWxzZSI+DQogICAgICA8SGVhZGVycz4NCiAgICAgICAgPEhlYWRlciBOYW1lPSJSZWZlcmVyIiBWYWx1ZT0iaHR0cHM6Ly93d3cuZ29vZ2xlLnBsLyIgLz4NCiAgICAgIDwvSGVhZGVycz4NCiAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlcnM+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJ2IiBWYWx1ZT0iMyIgUmVjb3JkZWRWYWx1ZT0iMyIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InMiIFZhbHVlPSJ3ZWIiIFJlY29yZGVkVmFsdWU9IndlYiIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImF0eXAiIFZhbHVlPSJjc2kiIFJlY29yZGVkVmFsdWU9ImNzaSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImUiIFZhbHVlPSI0MDI0MjA3LDQwMjYyNDEsNDAyOTgxNSw0MDMxMTA5LDQwMzI2NzgsNDAzMzMwNyw0MDMzMzQ0LDQwMzQ4ODIsNDAzNjAwNSw0MDM2NTI3LDQwMzczMzMsNDAzNzU2OSw0MDM3OTYyLDQwMzc5NjQsNDAzODAxMiw0MDM4MjE0LDQwNDEwNjIsNDA0MTQ0MCw0MDQxNTA3LDQwNDE3NzYsNDA0MTgzNiw0MDQyMTgwLDQwNDI0OTEsNDA0Mjk4NSw0MDQyOTg3LDQwNDI5ODksNDA0MzAzMCw0MDQzMjU1LDQwNDM0MTEsNDA0MzQ0OCw0MDQzNDQ5LDQwNDM0OTIsNDA0MzU2NCw0MDQzNTY4LDQwNDM1OTYsNDA0NDI0NSw0MDQ0MzM5LDQwNDQzNDMsNDA0NDYwNiw0MDQ1MDAzLDQwNDU3MTYsNDA0NTc2NCw0MDQ1ODQxLDQwNDU4NzIsNDA0NjA0Myw0MDQ2MzA0LDQwNDY0MDAsNDA0NjYwNiw0MDQ2NzE3LDQwNDY4MzUsNDA0NjgzNyw0MDQ2ODc3LDQwNDY5MDQsNDA0NjkwNiw0MDQ3MTMzLDQwNDczMzMsNDA0NzQ5Miw0MDQ3NTMzLDQwNDc1NDksNDA0NzU5Myw0MDQ3NjgzLDQwNDc5MTQsNDA0ODA0Myw0MDQ4MDk2LDQwNDgzNTQsNDA0ODQyNSw0MDQ4ODM2LDQwNDg4NTQsODMwMDE5OSw4MzAwMjAzLDg1MDE5NzIsODUwMTk4Nyw4NTAyMzE1LDEwMjAwMDgzIiBSZWNvcmRlZFZhbHVlPSI0MDI0MjA3LDQwMjYyNDEsNDAyOTgxNSw0MDMxMTA5LDQwMzI2NzgsNDAzMzMwNyw0MDMzMzQ0LDQwMzQ4ODIsNDAzNjAwNSw0MDM2NTI3LDQwMzczMzMsNDAzNzU2OSw0MDM3OTYyLDQwMzc5NjQsNDAzODAxMiw0MDM4MjE0LDQwNDEwNjIsNDA0MTQ0MCw0MDQxNTA3LDQwNDE3NzYsNDA0MTgzNiw0MDQyMTgwLDQwNDI0OTEsNDA0Mjk4NSw0MDQyOTg3LDQwNDI5ODksNDA0MzAzMCw0MDQzMjU1LDQwNDM0MTEsNDA0MzQ0OCw0MDQzNDQ5LDQwNDM0OTIsNDA0MzU2NCw0MDQzNTY4LDQwNDM1OTYsNDA0NDI0NSw0MDQ0MzM5LDQwNDQzNDMsNDA0NDYwNiw0MDQ1MDAzLDQwNDU3MTYsNDA0NTc2NCw0MDQ1ODQxLDQwNDU4NzIsNDA0NjA0Myw0MDQ2MzA0LDQwNDY0MDAsNDA0NjYwNiw0MDQ2NzE3LDQwNDY4MzUsNDA0NjgzNyw0MDQ2ODc3LDQwNDY5MDQsNDA0NjkwNiw0MDQ3MTMzLDQwNDczMzMsNDA0NzQ5Miw0MDQ3NTMzLDQwNDc1NDksNDA0NzU5Myw0MDQ3NjgzLDQwNDc5MTQsNDA0ODA0Myw0MDQ4MDk2LDQwNDgzNTQsNDA0ODQyNSw0MDQ4ODM2LDQwNDg4NTQsODMwMDE5OSw4MzAwMjAzLDg1MDE5NzIsODUwMTk4Nyw4NTAyMzE1LDEwMjAwMDgzIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iZWkiIFZhbHVlPSJXMndLVnF1YUhLUFh5UU9jajVYSUJRIiBSZWNvcmRlZFZhbHVlPSJXMndLVnF1YUhLUFh5UU9jajVYSUJRIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iY3IiIFZhbHVlPSJjIiBSZWNvcmRlZFZhbHVlPSJjIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iaW1wIiBWYWx1ZT0iMCIgUmVjb3JkZWRWYWx1ZT0iMCIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9InBmYSIgVmFsdWU9Im4uNCx0dGZjLjYxLHR0bGMuMCxjYnQuOTQiIFJlY29yZGVkVmFsdWU9Im4uNCx0dGZjLjYxLHR0bGMuMCxjYnQuOTQiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJwZm0iIFZhbHVlPSJuLjQsdHRmYy42Mix0dGxjLjAsY2J0Ljk0IiBSZWNvcmRlZFZhbHVlPSJuLjQsdHRmYy42Mix0dGxjLjAsY2J0Ljk0IiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0icG1kIiBWYWx1ZT0ibWF4LjE0MixhdmcuOSwwLDAsMCwwLDE5LDAsMCwxLDAsMSwxLDIsMSwzLDIsNywwLDAsMCwxNDIiIFJlY29yZGVkVmFsdWU9Im1heC4xNDIsYXZnLjksMCwwLDAsMCwxOSwwLDAsMSwwLDEsMSwyLDEsMywyLDcsMCwwLDAsMTQyIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iaW1uIiBWYWx1ZT0iMyIgUmVjb3JkZWRWYWx1ZT0iMyIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImRNIiBWYWx1ZT0iMTEiIFJlY29yZGVkVmFsdWU9IjExIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iYWRoIiBWYWx1ZT0iIiBSZWNvcmRlZFZhbHVlPSIiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJ4anMiIFZhbHVlPSJpbml0LjMuMTIuZm9vdC4xLmZwZS4xLm0uMS5hYmQuMC5hc3luYy4wLGRpc3Bvc2UuMS4xMC5qc2EuMS5tLjAubHUuMC5pcHY2LjAuZnBlLjAiIFJlY29yZGVkVmFsdWU9ImluaXQuMy4xMi5mb290LjEuZnBlLjEubS4xLmFiZC4wLmFzeW5jLjAsZGlzcG9zZS4xLjEwLmpzYS4xLm0uMC5sdS4wLmlwdjYuMC5mcGUuMCIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImltYSIgVmFsdWU9IjIiIFJlY29yZGVkVmFsdWU9IjIiIENvcnJlbGF0aW9uQmluZGluZz0iIiBVcmxFbmNvZGU9IkZhbHNlIiBVc2VUb0dyb3VwUmVzdWx0cz0iRmFsc2UiIC8+DQogICAgICAgIDxRdWVyeVN0cmluZ1BhcmFtZXRlciBOYW1lPSJydCIgVmFsdWU9InBydC4zOTUscHBydC4zOTUsb2wuMzk2LGpzcnQuOTIsaW1sLjM5NixhZnQuMzI1IiBSZWNvcmRlZFZhbHVlPSJwcnQuMzk1LHBwcnQuMzk1LG9sLjM5Nixqc3J0LjkyLGltbC4zOTYsYWZ0LjMyNSIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgIDwvUXVlcnlTdHJpbmdQYXJhbWV0ZXJzPg0KICAgIDwvUmVxdWVzdD4NCiAgICA8UmVxdWVzdCBNZXRob2Q9IkdFVCIgR3VpZD0iYTE0NDBkYjEtMWJkYi00YmY2LWIzODYtZjBkNzMxYWFkNzRhIiBWZXJzaW9uPSIxLjEiIFVybD0iaHR0cHM6Ly93d3cuZ29vZ2xlLnBsL3hqcy9fL2pzL2s9eGpzLnMucGwuX2FWX0hiT3ZTRTQuTy9tPXN5NCxzeTE3MSxzeTQwMCxzeTQwMSxzeTYsc3k0MDIsc3k0MjIsc3kyLHN5NDIzLGR2bCx2cyxzeTc0LHN5NzUsc3k3NyxzeTc5LHN5NzMsc3k3NixzeTgwLHN5Njgsc3k3MSxzeTc4LHN5ODEsc3k2OSx0bnYsY2JvYixtZS9hbT1rSUlRUlB3ZUJHR0ZVUk9vUWtnc0JnL3J0PWovZD0wL3Q9emNtcy9ycz1BQ1Q5MG9HTnRCcnRKbjZJdllOSmxEaF9TMWRHdnViMGVRIiBUaGlua1RpbWU9IjAiIFRpbWVvdXQ9IjMwMCIgUGFyc2VEZXBlbmRlbnRSZXF1ZXN0cz0iVHJ1ZSIgRm9sbG93UmVkaXJlY3RzPSJUcnVlIiBSZWNvcmRSZXN1bHQ9IlRydWUiIENhY2hlPSJGYWxzZSIgUmVzcG9uc2VUaW1lR29hbD0iMCIgRW5jb2Rpbmc9InV0Zi04IiBFeHBlY3RlZEh0dHBTdGF0dXNDb2RlPSIwIiBFeHBlY3RlZFJlc3BvbnNlVXJsPSIiIFJlcG9ydGluZ05hbWU9IiIgSWdub3JlSHR0cFN0YXR1c0NvZGU9IkZhbHNlIj4NCiAgICAgIDxIZWFkZXJzPg0KICAgICAgICA8SGVhZGVyIE5hbWU9IlJlZmVyZXIiIFZhbHVlPSJodHRwczovL3d3dy5nb29nbGUucGwvIiAvPg0KICAgICAgPC9IZWFkZXJzPg0KICAgIDwvUmVxdWVzdD4NCiAgICA8UmVxdWVzdCBNZXRob2Q9IkdFVCIgR3VpZD0iNGQzNzQxYzUtNDM0ZC00Y2U3LThiZTQtMTA1ODJiNTYzMDA3IiBWZXJzaW9uPSIxLjEiIFVybD0iaHR0cHM6Ly93d3cuZ29vZ2xlLnBsL2dlbl8yMDQiIFRoaW5rVGltZT0iMCIgVGltZW91dD0iMzAwIiBQYXJzZURlcGVuZGVudFJlcXVlc3RzPSJUcnVlIiBGb2xsb3dSZWRpcmVjdHM9IlRydWUiIFJlY29yZFJlc3VsdD0iVHJ1ZSIgQ2FjaGU9IkZhbHNlIiBSZXNwb25zZVRpbWVHb2FsPSIwIiBFbmNvZGluZz0idXRmLTgiIEV4cGVjdGVkSHR0cFN0YXR1c0NvZGU9IjAiIEV4cGVjdGVkUmVzcG9uc2VVcmw9IiIgUmVwb3J0aW5nTmFtZT0iIiBJZ25vcmVIdHRwU3RhdHVzQ29kZT0iRmFsc2UiPg0KICAgICAgPEhlYWRlcnM+DQogICAgICAgIDxIZWFkZXIgTmFtZT0iUmVmZXJlciIgVmFsdWU9Imh0dHBzOi8vd3d3Lmdvb2dsZS5wbC8iIC8+DQogICAgICA8L0hlYWRlcnM+DQogICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXJzPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iYXR5cCIgVmFsdWU9ImkiIFJlY29yZGVkVmFsdWU9ImkiIENvcnJlbGF0aW9uQmluZGluZz0ie3tRdWVyeVN0cmluZ1BhcmFtMzY3LmF0eXB9fSIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iY3QiIFZhbHVlPSIiIFJlY29yZGVkVmFsdWU9IiIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImNhZCIgVmFsdWU9IiIgUmVjb3JkZWRWYWx1ZT0iIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0idmV0IiBWYWx1ZT0iMTBDQnNRdFdScUZRb1RDT3V6bXQtSW5NZ0NGYU5yY2dvZG5FY0ZXUS4ucyIgUmVjb3JkZWRWYWx1ZT0iMTBDQnNRdFdScUZRb1RDT3V6bXQtSW5NZ0NGYU5yY2dvZG5FY0ZXUS4ucyIgQ29ycmVsYXRpb25CaW5kaW5nPSIiIFVybEVuY29kZT0iRmFsc2UiIFVzZVRvR3JvdXBSZXN1bHRzPSJGYWxzZSIgLz4NCiAgICAgICAgPFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIE5hbWU9ImJ2bSIgVmFsdWU9ImJ2LjEwMzYyNzExNixkLmJHUSIgUmVjb3JkZWRWYWx1ZT0iYnYuMTAzNjI3MTE2LGQuYkdRIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iZWkiIFZhbHVlPSJXMndLVnF1YUhLUFh5UU9jajVYSUJRIiBSZWNvcmRlZFZhbHVlPSJXMndLVnF1YUhLUFh5UU9jajVYSUJRIiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgICA8UXVlcnlTdHJpbmdQYXJhbWV0ZXIgTmFtZT0iengiIFZhbHVlPSIxNDQzNTIzNjc2MDI2IiBSZWNvcmRlZFZhbHVlPSIxNDQzNTIzNjc2MDI2IiBDb3JyZWxhdGlvbkJpbmRpbmc9IiIgVXJsRW5jb2RlPSJGYWxzZSIgVXNlVG9Hcm91cFJlc3VsdHM9IkZhbHNlIiAvPg0KICAgICAgPC9RdWVyeVN0cmluZ1BhcmFtZXRlcnM+DQogICAgPC9SZXF1ZXN0Pg0KICA8L0l0ZW1zPg0KICA8VmFsaWRhdGlvblJ1bGVzPg0KICAgIDxWYWxpZGF0aW9uUnVsZSBDbGFzc25hbWU9Ik1pY3Jvc29mdC5WaXN1YWxTdHVkaW8uVGVzdFRvb2xzLldlYlRlc3RpbmcuUnVsZXMuVmFsaWRhdGVSZXNwb25zZVVybCwgTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5RdWFsaXR5VG9vbHMuV2ViVGVzdEZyYW1ld29yaywgVmVyc2lvbj0xMC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhIiBEaXNwbGF5TmFtZT0iUmVzcG9uc2UgVVJMIiBEZXNjcmlwdGlvbj0iVmFsaWRhdGVzIHRoYXQgdGhlIHJlc3BvbnNlIFVSTCBhZnRlciByZWRpcmVjdHMgYXJlIGZvbGxvd2VkIGlzIHRoZSBzYW1lIGFzIHRoZSByZWNvcmRlZCByZXNwb25zZSBVUkwuICBRdWVyeVN0cmluZyBwYXJhbWV0ZXJzIGFyZSBpZ25vcmVkLiIgTGV2ZWw9IkxvdyIgRXhlY3R1aW9uT3JkZXI9IkJlZm9yZURlcGVuZGVudHMiIC8+DQogICAgPFZhbGlkYXRpb25SdWxlIENsYXNzbmFtZT0iTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5UZXN0VG9vbHMuV2ViVGVzdGluZy5SdWxlcy5WYWxpZGF0aW9uUnVsZVJlc3BvbnNlVGltZUdvYWwsIE1pY3Jvc29mdC5WaXN1YWxTdHVkaW8uUXVhbGl0eVRvb2xzLldlYlRlc3RGcmFtZXdvcmssIFZlcnNpb249MTAuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYSIgRGlzcGxheU5hbWU9IlJlc3BvbnNlIFRpbWUgR29hbCIgRGVzY3JpcHRpb249IlZhbGlkYXRlcyB0aGF0IHRoZSByZXNwb25zZSB0aW1lIGZvciB0aGUgcmVxdWVzdCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHJlc3BvbnNlIHRpbWUgZ29hbCBhcyBzcGVjaWZpZWQgb24gdGhlIHJlcXVlc3QuICBSZXNwb25zZSB0aW1lIGdvYWxzIG9mIHplcm8gd2lsbCBiZSBpZ25vcmVkLiIgTGV2ZWw9IkxvdyIgRXhlY3R1aW9uT3JkZXI9IkFmdGVyRGVwZW5kZW50cyI+DQogICAgICA8UnVsZVBhcmFtZXRlcnM+DQogICAgICAgIDxSdWxlUGFyYW1ldGVyIE5hbWU9IlRvbGVyYW5jZSIgVmFsdWU9IjAiIC8+DQogICAgICA8L1J1bGVQYXJhbWV0ZXJzPg0KICAgIDwvVmFsaWRhdGlvblJ1bGU+DQogIDwvVmFsaWRhdGlvblJ1bGVzPg0KPC9XZWJUZXN0Pg=="> <Execution id="1f870567-1c31-4d6c-a179-41d1a1d05937" /> </WebTest> </TestDefinitions> <TestLists> <TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" /> <TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" /> </TestLists> <TestEntries> <TestEntry isTransparent="false" testId="d74260a0-b081-4ab8-8d0f-b55fc10a99d7" executionId="1f870567-1c31-4d6c-a179-41d1a1d05937" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" /> </TestEntries> <Results> <WebTestResult executionId="1f870567-1c31-4d6c-a179-41d1a1d05937" testId="d74260a0-b081-4ab8-8d0f-b55fc10a99d7" testName="WebTest1" computerName="PLmyComputerName" duration="00:00:01.6148766" startTime="2015-09-29T12:48:01.1900125+02:00" endTime="2015-09-29T12:48:13.3777296+02:00" testType="4e7599fa-5ecb-43e9-a887-cd63cf72d207" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1f870567-1c31-4d6c-a179-41d1a1d05937"> <ResultFiles> <ResultFile path="WebTest1.webtestResult" /> </ResultFiles> <TestSettings name="Local" id="7a269be1-e9d3-497b-99a0-a009d3eb20c8"> <Description>These are default test settings for a local test run.</Description> <Execution> <TestTypeSpecific> <WebTestRunConfiguration testTypeId="4e7599fa-5ecb-43e9-a887-cd63cf72d207"> <Browser name="Internet Explorer 9.0" MaxConnections="6"> <Headers> <Header name="User-Agent" value="Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" /> <Header name="Accept" value="*/*" /> <Header name="Accept-Language" value="{{$IEAcceptLanguage}}" /> <Header name="Accept-Encoding" value="GZIP" /> </Headers> </Browser> </WebTestRunConfiguration> </TestTypeSpecific> <AgentRule name="Execution Agents"> </AgentRule> </Execution> <Deployment runDeploymentRoot="myComputerName_PLmyComputerName 2015-09-29 12_48_00" /> <Properties> <Property name="TestSettingsUIType" value="LoadTest" /> </Properties> </TestSettings> <WebTestResultFilePath>myComputerName_PLmyComputerName 2015-09-29 12_48_00\In\1f870567-1c31-4d6c-a179-41d1a1d05937\WebTest1.webtestResult</WebTestResultFilePath> </WebTestResult> </Results> </TestRun> "@ } It "should return expected guid from xml." { $result = Get-TestRunGuidFromTrxFile -TrxFolderOrFilePath 'C:\TestReport.trx' $result | Should Be 'f6df8ed1-3a9b-4c60-a0ff-88d082506a23' } } Context "when not existing directory is given" { It "it should throw not existing directory path" { { Get-TestRunGuidFromTrxFile -TrxFolderOrFilePath 'C:\NotExistingDirectory123654\NotExistingSubdirectory987654123' } | Should Throw } } Context "when existing directory with at least one trx file is given" { $directory = "C:\test123454321ijhuyhasdflkjhsdf\" $file = "someFile.xml" $filePath = $directory + $file # Clean directory if (Test-Path -PathType Container -Path $directory) { Get-ChildItem $directory | ForEach-Object { Remove-Item -Path $_.FullName } Remove-Item -Path $directory } New-Item -ItemType directory -Path $directory New-Item -ItemType File -Path $filePath # Create The Document $XmlWriter = New-Object System.XMl.XmlTextWriter($filePath,$Null) # Set The Formatting $xmlWriter.Formatting = "Indented" $xmlWriter.Indentation = "4" # Write the XML Decleration $xmlWriter.WriteStartDocument() # Set the XSL $XSLPropText = "type='text/xsl' href='style.xsl'" $xmlWriter.WriteProcessingInstruction("xml-stylesheet", $XSLPropText) # Write Root Element $xmlWriter.WriteStartElement("TestRun") # Write the Document $XmlWriter.WriteAttributeString("Id", "1111-2222-3333-4444-AAAA") $xmlWriter.WriteEndElement() # <-- Closing RootElement # End the XML Document $xmlWriter.WriteEndDocument() # Finish The Document #$xmlWriter.Finalize() $xmlWriter.Flush() $xmlWriter.Close() Get-ChildItem -Path $filePath | rename-item -newname { $_.name -replace '\.xml$','.trx' } It "should take the newest trx file and make other things" { $result = Get-TestRunGuidFromTrxFile -TrxFolderOrFilePath $directory $result | Should Be '1111-2222-3333-4444-AAAA' } # Delete files and directory at the end. if (Test-Path -PathType Container -Path $directory) { Get-ChildItem $directory | ForEach-Object { Remove-Item -Path $_.FullName } Remove-Item -Path $directory } } } } |