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
            }
        }
    }
}