internal/templates/PSFCimFunction-1.0.0.0.xml

<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
  <Obj RefId="0">
    <TN RefId="0">
      <T>PSModuleDevelopment.Template.Template</T>
      <T>System.Object</T>
    </TN>
    <ToString>PSModuleDevelopment.Template.Template</ToString>
    <Props>
      <S N="Name">PSFCimFunction</S>
      <Obj N="Type" RefId="1">
        <TN RefId="1">
          <T>PSModuleDevelopment.Template.TemplateType</T>
          <T>System.Enum</T>
          <T>System.ValueType</T>
          <T>System.Object</T>
        </TN>
        <ToString>File</ToString>
        <I32>0</I32>
      </Obj>
      <Version N="Version">1.0.0.0</Version>
      <S N="Description">PSFramework: Create function that connects via CIM</S>
      <S N="Author">Friedrich Weinmann</S>
      <DT N="CreatedOn">2020-09-10T00:00:00+00:00</DT>
      <Obj N="Tags" RefId="2">
        <TN RefId="2">
          <T>System.Collections.Generic.List`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]</T>
          <T>System.Object</T>
        </TN>
        <LST>
          <S>function</S>
          <S>file</S>
        </LST>
      </Obj>
      <Obj N="Parameters" RefId="3">
        <TNRef RefId="2" />
        <LST>
          <S>name</S>
        </LST>
      </Obj>
      <Obj N="Scripts" RefId="4">
        <TN RefId="3">
          <T>System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[PSModuleDevelopment.Template.ParameterScript, PSModuleDevelopment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]]</T>
          <T>System.Object</T>
        </TN>
        <DCT />
      </Obj>
      <Obj N="Children" RefId="5">
        <TN RefId="4">
          <T>System.Collections.Generic.List`1[[PSModuleDevelopment.Template.TemplateItemBase, PSModuleDevelopment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]]</T>
          <T>System.Object</T>
        </TN>
        <LST>
          <Obj RefId="6">
            <TN RefId="5">
              <T>PSModuleDevelopment.Template.TemplateItemFile</T>
              <T>PSModuleDevelopment.Template.TemplateItemBase</T>
              <T>System.Object</T>
            </TN>
            <ToString>PSModuleDevelopment.Template.TemplateItemFile</ToString>
            <Props>
              <S N="Value">function þnameþ_x000D__x000A_{_x000D__x000A_&lt;#_x000D__x000A__x0009_.SYNOPSIS_x000D__x000A__x0009__x0009_&lt;Insert Synopsis here&gt;._x000D__x000A__x0009__x000D__x000A__x0009_.DESCRIPTION_x000D__x000A__x0009__x0009_&lt;Insert Description here&gt;._x000D__x000A__x0009__x000D__x000A__x0009_.PARAMETER ComputerName_x000D__x000A__x0009__x0009_The computer(s) to connect to._x000D__x000A__x0009__x0009_Can be an established CimSession, which will then be reused._x000D__x000A__x0009__x000D__x000A__x0009_.PARAMETER Credential_x000D__x000A__x0009__x0009_The credentials to use to connect to remote computer(s) with._x000D__x000A__x0009__x0009_This parameter is ignored for local queries._x000D__x000A__x0009__x0009_This parameter is ignored if passing an established Cim Session for ComputerName._x000D__x000A__x0009__x000D__x000A__x0009_.PARAMETER Authentication_x000D__x000A__x0009__x0009_The authentication method to use to when authenticating to remote computer(s)._x000D__x000A__x0009__x0009_Uses the system default settings by default._x000D__x000A__x0009__x0009_This parameter is ignored for local queries._x000D__x000A__x0009__x0009_This parameter is ignored if passing an established Cim Session for ComputerName._x000D__x000A__x0009__x000D__x000A__x0009_.PARAMETER EnableException_x000D__x000A__x0009__x0009_This parameters disables user-friendly warnings and enables the throwing of exceptions._x000D__x000A__x0009__x0009_This is less user friendly, but allows catching exceptions in calling scripts._x000D__x000A__x0009__x000D__x000A__x0009_.EXAMPLE_x000D__x000A__x0009__x0009_PS C:\&gt; þnameþ_x000D__x000A__x0009__x000D__x000A__x0009__x0009_&lt;insert description for local execution&gt;._x000D__x000A__x0009__x000D__x000A__x0009_.EXAMPLE_x000D__x000A__x0009__x0009_PS C:\&gt; Get-Content servers.txt | þnameþ_x000D__x000A__x0009__x000D__x000A__x0009__x0009_&lt;insert description for remote execution from file&gt;_x000D__x000A__x0009__x000D__x000A__x0009_.EXAMPLE_x000D__x000A__x0009__x0009_PS C:\&gt; Get-ADComputer -Filter "name -like 'Desktop*'" | þnameþ_x000D__x000A__x0009__x000D__x000A__x0009__x0009_&lt;insert description for remote execution from AD Computer&gt;_x000D__x000A_#&gt;_x000D__x000A__x0009_[CmdletBinding()]_x000D__x000A__x0009_Param (_x000D__x000A__x0009__x0009_[Parameter(ValueFromPipeline = $true)]_x000D__x000A__x0009__x0009_[PSFComputer[]]_x000D__x000A__x0009__x0009_$ComputerName = $env:COMPUTERNAME,_x000D__x000A__x0009__x0009__x000D__x000A__x0009__x0009_[System.Management.Automation.CredentialAttribute()]_x000D__x000A__x0009__x0009_[System.Management.Automation.PSCredential]_x000D__x000A__x0009__x0009_$Credential,_x000D__x000A__x0009__x0009__x000D__x000A__x0009__x0009_[Microsoft.Management.Infrastructure.Options.PasswordAuthenticationMechanism]_x000D__x000A__x0009__x0009_$Authentication = [Microsoft.Management.Infrastructure.Options.PasswordAuthenticationMechanism]::Default,_x000D__x000A__x0009__x0009__x000D__x000A__x0009__x0009_[switch]_x000D__x000A__x0009__x0009_$EnableException_x000D__x000A__x0009_)_x000D__x000A__x0009__x000D__x000A__x0009_begin_x000D__x000A__x0009_{_x000D__x000A__x0009__x0009_Write-PSFMessage -Level InternalComment -Message "Bound parameters: $($PSBoundParameters.Keys -join ", ")" -Tag 'debug','start','param'_x000D__x000A__x0009_}_x000D__x000A__x0009_process_x000D__x000A__x0009_{_x000D__x000A__x0009__x0009_#region Process by Computer Name_x000D__x000A__x0009__x0009_foreach ($Computer in $ComputerName)_x000D__x000A__x0009__x0009_{_x000D__x000A__x0009__x0009__x0009_#region Remote Connection_x000D__x000A__x0009__x0009__x0009_Write-PSFMessage -Level VeryVerbose -Message "[$Computer] Establishing connection" -Target $Computer -Tag 'connect', 'start'_x000D__x000A__x0009__x0009__x0009_try_x000D__x000A__x0009__x0009__x0009_{_x000D__x000A__x0009__x0009__x0009__x0009_if (-not $Computer.IsLocalhost)_x000D__x000A__x0009__x0009__x0009__x0009_{_x000D__x000A__x0009__x0009__x0009__x0009__x0009_if ($Computer.Type -like "CimSession") { $session = $Computer.InputObject }_x000D__x000A__x0009__x0009__x0009__x0009__x0009_else { $session = New-CimSession -ComputerName $Computer -Credential $Credential -Authentication $Authentication -ErrorAction Stop }_x000D__x000A__x0009__x0009__x0009__x0009__x0009__x000D__x000A__x0009__x0009__x0009__x0009__x0009_# Some dummy code, replace with actual logic_x000D__x000A__x0009__x0009__x0009__x0009__x0009_Write-PSFMessage -Level SomewhatVerbose -Message "[$Computer] Retrieving OS information" -Target $Computer -Tag 'os', 'get'_x000D__x000A__x0009__x0009__x0009__x0009__x0009_$operatingSystem = Get-CimInstance -ClassName Win32_OperatingSystem -CimSession $session -ErrorAction Stop_x000D__x000A__x0009__x0009__x0009__x0009__x0009__x000D__x000A__x0009__x0009__x0009__x0009__x0009_if ($Computer.Type -notlike "CimSession") { Remove-CimSession -CimSession $session }_x000D__x000A__x0009__x0009__x0009__x0009_}_x000D__x000A__x0009__x0009__x0009__x0009_else_x000D__x000A__x0009__x0009__x0009__x0009_{_x000D__x000A__x0009__x0009__x0009__x0009__x0009_# Some dummy code, replace with actual logic_x000D__x000A__x0009__x0009__x0009__x0009__x0009_# No point in establishing a session to localhost, custom credentials also not supported_x000D__x000A__x0009__x0009__x0009__x0009__x0009_Write-PSFMessage -Level SomewhatVerbose -Message "[$Computer] Retrieving OS information" -Target $Computer -Tag 'os', 'get'_x000D__x000A__x0009__x0009__x0009__x0009__x0009_$operatingSystem = Get-CimInstance -ClassName Win32_OperatingSystem -ErrorAction Stop_x000D__x000A__x0009__x0009__x0009__x0009_}_x000D__x000A__x0009__x0009__x0009_}_x000D__x000A__x0009__x0009__x0009_catch_x000D__x000A__x0009__x0009__x0009_{_x000D__x000A__x0009__x0009__x0009__x0009_Stop-PSFFunction -Message "[$Computer] Failed to connect to target computer" -Target $Computer -Tag 'connect', 'fail' -ErrorRecord $_ -EnableException $EnableException -Continue_x000D__x000A__x0009__x0009__x0009_}_x000D__x000A__x0009__x0009__x0009_#endregion Remote Connection_x000D__x000A__x0009__x0009__x0009__x000D__x000A__x0009__x0009__x0009_# Dummy data, replace with actual data object to build_x000D__x000A__x0009__x0009__x0009_#region Process Data_x000D__x000A__x0009__x0009__x0009_$systemInfo = New-Object Fred.IronScripter2018.SystemInformation -Property @{_x000D__x000A__x0009__x0009__x0009__x0009_ComputerName = $Computer.ComputerName_x000D__x000A__x0009__x0009__x0009__x0009_Name_x0009__x0009_ = $operatingSystem.Caption_x000D__x000A__x0009__x0009__x0009__x0009_Version_x0009_ = $operatingSystem.Version_x000D__x000A__x0009__x0009__x0009__x0009_ServicePack = "{0}.{1}" -f $operatingSystem.ServicePackMajorVersion, $operatingSystem.ServicePackMinorVersion_x000D__x000A__x0009__x0009__x0009__x0009_Manufacturer = $operatingSystem.Manufacturer_x000D__x000A__x0009__x0009__x0009__x0009_WindowsDirectory = $operatingSystem.WindowsDirectory_x000D__x000A__x0009__x0009__x0009__x0009_Locale_x0009__x0009_ = $operatingSystem.Locale_x000D__x000A__x0009__x0009__x0009__x0009_FreePhysicalMemory = $operatingSystem.FreePhysicalMemory * 1024 # Comes in KB_x000D__x000A__x0009__x0009__x0009__x0009_VirtualMemory = $operatingSystem.TotalVirtualMemorySize * 1024 # Comes in KB_x000D__x000A__x0009__x0009__x0009__x0009_FreeVirtualMemory = $operatingSystem.FreeVirtualMemory * 1024 # Comes in KB_x000D__x000A__x0009__x0009__x0009_}_x000D__x000A__x0009__x0009__x0009__x000D__x000A__x0009__x0009__x0009_Write-PSFMessage -Level Verbose -Message "[$Computer] Finished gathering information" -Target $Computer -Tag 'success', 'finished'_x000D__x000A__x0009__x0009__x0009_$systemInfo_x000D__x000A__x0009__x0009__x0009_#endregion Process Data_x000D__x000A__x0009__x0009_}_x000D__x000A__x0009__x0009_#endregion Process by Computer Name_x000D__x000A__x0009_}_x000D__x000A_}</S>
              <B N="PlainText">true</B>
              <Obj N="ContentParameterFlat" RefId="7">
                <TNRef RefId="2" />
                <LST>
                  <S>name</S>
                </LST>
              </Obj>
              <Obj N="ContentParameterScript" RefId="8">
                <TNRef RefId="2" />
                <LST />
              </Obj>
              <S N="Name">þnameþ.ps1</S>
              <S N="RelativePath"></S>
              <S N="Identifier">þ</S>
              <Obj N="FileSystemParameterFlat" RefId="9">
                <TNRef RefId="2" />
                <LST>
                  <S>name</S>
                </LST>
              </Obj>
              <Obj N="FileSystemParameterScript" RefId="10">
                <TNRef RefId="2" />
                <LST />
              </Obj>
            </Props>
            <MS>
              <BA N="SerializationData">AAEAAAD/////AQAAAAAAAAAMAgAAAEpQU01vZHVsZURldmVsb3BtZW50LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAALVBTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGVJdGVtRmlsZQkAAAAFVmFsdWUJUGxhaW5UZXh0FENvbnRlbnRQYXJhbWV0ZXJGbGF0FkNvbnRlbnRQYXJhbWV0ZXJTY3JpcHQETmFtZQxSZWxhdGl2ZVBhdGgKSWRlbnRpZmllchdGaWxlU3lzdGVtUGFyYW1ldGVyRmxhdBlGaWxlU3lzdGVtUGFyYW1ldGVyU2NyaXB0AQADAwEBAQMDAX9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1df1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV1/U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXX9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dAgAAAAYDAAAAkiRmdW5jdGlvbiDDvm5hbWXDvg0Kew0KPCMNCgkuU1lOT1BTSVMNCgkJPEluc2VydCBTeW5vcHNpcyBoZXJlPi4NCgkNCgkuREVTQ1JJUFRJT04NCgkJPEluc2VydCBEZXNjcmlwdGlvbiBoZXJlPi4NCgkNCgkuUEFSQU1FVEVSIENvbXB1dGVyTmFtZQ0KCQlUaGUgY29tcHV0ZXIocykgdG8gY29ubmVjdCB0by4NCgkJQ2FuIGJlIGFuIGVzdGFibGlzaGVkIENpbVNlc3Npb24sIHdoaWNoIHdpbGwgdGhlbiBiZSByZXVzZWQuDQoJDQoJLlBBUkFNRVRFUiBDcmVkZW50aWFsDQoJCVRoZSBjcmVkZW50aWFscyB0byB1c2UgdG8gY29ubmVjdCB0byByZW1vdGUgY29tcHV0ZXIocykgd2l0aC4NCgkJVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBmb3IgbG9jYWwgcXVlcmllcy4NCgkJVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZiBwYXNzaW5nIGFuIGVzdGFibGlzaGVkIENpbSBTZXNzaW9uIGZvciBDb21wdXRlck5hbWUuDQoJDQoJLlBBUkFNRVRFUiBBdXRoZW50aWNhdGlvbg0KCQlUaGUgYXV0aGVudGljYXRpb24gbWV0aG9kIHRvIHVzZSB0byB3aGVuIGF1dGhlbnRpY2F0aW5nIHRvIHJlbW90ZSBjb21wdXRlcihzKS4NCgkJVXNlcyB0aGUgc3lzdGVtIGRlZmF1bHQgc2V0dGluZ3MgYnkgZGVmYXVsdC4NCgkJVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBmb3IgbG9jYWwgcXVlcmllcy4NCgkJVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZiBwYXNzaW5nIGFuIGVzdGFibGlzaGVkIENpbSBTZXNzaW9uIGZvciBDb21wdXRlck5hbWUuDQoJDQoJLlBBUkFNRVRFUiBFbmFibGVFeGNlcHRpb24NCgkJVGhpcyBwYXJhbWV0ZXJzIGRpc2FibGVzIHVzZXItZnJpZW5kbHkgd2FybmluZ3MgYW5kIGVuYWJsZXMgdGhlIHRocm93aW5nIG9mIGV4Y2VwdGlvbnMuDQoJCVRoaXMgaXMgbGVzcyB1c2VyIGZyaWVuZGx5LCBidXQgYWxsb3dzIGNhdGNoaW5nIGV4Y2VwdGlvbnMgaW4gY2FsbGluZyBzY3JpcHRzLg0KCQ0KCS5FWEFNUExFDQoJCVBTIEM6XD4gw75uYW1lw74NCgkNCgkJPGluc2VydCBkZXNjcmlwdGlvbiBmb3IgbG9jYWwgZXhlY3V0aW9uPi4NCgkNCgkuRVhBTVBMRQ0KCQlQUyBDOlw+IEdldC1Db250ZW50IHNlcnZlcnMudHh0IHwgw75uYW1lw74NCgkNCgkJPGluc2VydCBkZXNjcmlwdGlvbiBmb3IgcmVtb3RlIGV4ZWN1dGlvbiBmcm9tIGZpbGU+DQoJDQoJLkVYQU1QTEUNCgkJUFMgQzpcPiBHZXQtQURDb21wdXRlciAtRmlsdGVyICJuYW1lIC1saWtlICdEZXNrdG9wKiciIHwgw75uYW1lw74NCgkNCgkJPGluc2VydCBkZXNjcmlwdGlvbiBmb3IgcmVtb3RlIGV4ZWN1dGlvbiBmcm9tIEFEIENvbXB1dGVyPg0KIz4NCglbQ21kbGV0QmluZGluZygpXQ0KCVBhcmFtICgNCgkJW1BhcmFtZXRlcihWYWx1ZUZyb21QaXBlbGluZSA9ICR0cnVlKV0NCgkJW1BTRkNvbXB1dGVyW11dDQoJCSRDb21wdXRlck5hbWUgPSAkZW52OkNPTVBVVEVSTkFNRSwNCgkJDQoJCVtTeXN0ZW0uTWFuYWdlbWVudC5BdXRvbWF0aW9uLkNyZWRlbnRpYWxBdHRyaWJ1dGUoKV0NCgkJW1N5c3RlbS5NYW5hZ2VtZW50LkF1dG9tYXRpb24uUFNDcmVkZW50aWFsXQ0KCQkkQ3JlZGVudGlhbCwNCgkJDQoJCVtNaWNyb3NvZnQuTWFuYWdlbWVudC5JbmZyYXN0cnVjdHVyZS5PcHRpb25zLlBhc3N3b3JkQXV0aGVudGljYXRpb25NZWNoYW5pc21dDQoJCSRBdXRoZW50aWNhdGlvbiA9IFtNaWNyb3NvZnQuTWFuYWdlbWVudC5JbmZyYXN0cnVjdHVyZS5PcHRpb25zLlBhc3N3b3JkQXV0aGVudGljYXRpb25NZWNoYW5pc21dOjpEZWZhdWx0LA0KCQkNCgkJW3N3aXRjaF0NCgkJJEVuYWJsZUV4Y2VwdGlvbg0KCSkNCgkNCgliZWdpbg0KCXsNCgkJV3JpdGUtUFNGTWVzc2FnZSAtTGV2ZWwgSW50ZXJuYWxDb21tZW50IC1NZXNzYWdlICJCb3VuZCBwYXJhbWV0ZXJzOiAkKCRQU0JvdW5kUGFyYW1ldGVycy5LZXlzIC1qb2luICIsICIpIiAtVGFnICdkZWJ1ZycsJ3N0YXJ0JywncGFyYW0nDQoJfQ0KCXByb2Nlc3MNCgl7DQoJCSNyZWdpb24gUHJvY2VzcyBieSBDb21wdXRlciBOYW1lDQoJCWZvcmVhY2ggKCRDb21wdXRlciBpbiAkQ29tcHV0ZXJOYW1lKQ0KCQl7DQoJCQkjcmVnaW9uIFJlbW90ZSBDb25uZWN0aW9uDQoJCQlXcml0ZS1QU0ZNZXNzYWdlIC1MZXZlbCBWZXJ5VmVyYm9zZSAtTWVzc2FnZSAiWyRDb21wdXRlcl0gRXN0YWJsaXNoaW5nIGNvbm5lY3Rpb24iIC1UYXJnZXQgJENvbXB1dGVyIC1UYWcgJ2Nvbm5lY3QnLCAnc3RhcnQnDQoJCQl0cnkNCgkJCXsNCgkJCQlpZiAoLW5vdCAkQ29tcHV0ZXIuSXNMb2NhbGhvc3QpDQoJCQkJew0KCQkJCQlpZiAoJENvbXB1dGVyLlR5cGUgLWxpa2UgIkNpbVNlc3Npb24iKSB7ICRzZXNzaW9uID0gJENvbXB1dGVyLklucHV0T2JqZWN0IH0NCgkJCQkJZWxzZSB7ICRzZXNzaW9uID0gTmV3LUNpbVNlc3Npb24gLUNvbXB1dGVyTmFtZSAkQ29tcHV0ZXIgLUNyZWRlbnRpYWwgJENyZWRlbnRpYWwgLUF1dGhlbnRpY2F0aW9uICRBdXRoZW50aWNhdGlvbiAtRXJyb3JBY3Rpb24gU3RvcCB9DQoJCQkJCQ0KCQkJCQkjIFNvbWUgZHVtbXkgY29kZSwgcmVwbGFjZSB3aXRoIGFjdHVhbCBsb2dpYw0KCQkJCQlXcml0ZS1QU0ZNZXNzYWdlIC1MZXZlbCBTb21ld2hhdFZlcmJvc2UgLU1lc3NhZ2UgIlskQ29tcHV0ZXJdIFJldHJpZXZpbmcgT1MgaW5mb3JtYXRpb24iIC1UYXJnZXQgJENvbXB1dGVyIC1UYWcgJ29zJywgJ2dldCcNCgkJCQkJJG9wZXJhdGluZ1N5c3RlbSA9IEdldC1DaW1JbnN0YW5jZSAtQ2xhc3NOYW1lIFdpbjMyX09wZXJhdGluZ1N5c3RlbSAtQ2ltU2Vzc2lvbiAkc2Vzc2lvbiAtRXJyb3JBY3Rpb24gU3RvcA0KCQkJCQkNCgkJCQkJaWYgKCRDb21wdXRlci5UeXBlIC1ub3RsaWtlICJDaW1TZXNzaW9uIikgeyBSZW1vdmUtQ2ltU2Vzc2lvbiAtQ2ltU2Vzc2lvbiAkc2Vzc2lvbiB9DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCSMgU29tZSBkdW1teSBjb2RlLCByZXBsYWNlIHdpdGggYWN0dWFsIGxvZ2ljDQoJCQkJCSMgTm8gcG9pbnQgaW4gZXN0YWJsaXNoaW5nIGEgc2Vzc2lvbiB0byBsb2NhbGhvc3QsIGN1c3RvbSBjcmVkZW50aWFscyBhbHNvIG5vdCBzdXBwb3J0ZWQNCgkJCQkJV3JpdGUtUFNGTWVzc2FnZSAtTGV2ZWwgU29tZXdoYXRWZXJib3NlIC1NZXNzYWdlICJbJENvbXB1dGVyXSBSZXRyaWV2aW5nIE9TIGluZm9ybWF0aW9uIiAtVGFyZ2V0ICRDb21wdXRlciAtVGFnICdvcycsICdnZXQnDQoJCQkJCSRvcGVyYXRpbmdTeXN0ZW0gPSBHZXQtQ2ltSW5zdGFuY2UgLUNsYXNzTmFtZSBXaW4zMl9PcGVyYXRpbmdTeXN0ZW0gLUVycm9yQWN0aW9uIFN0b3ANCgkJCQl9DQoJCQl9DQoJCQljYXRjaA0KCQkJew0KCQkJCVN0b3AtUFNGRnVuY3Rpb24gLU1lc3NhZ2UgIlskQ29tcHV0ZXJdIEZhaWxlZCB0byBjb25uZWN0IHRvIHRhcmdldCBjb21wdXRlciIgLVRhcmdldCAkQ29tcHV0ZXIgLVRhZyAnY29ubmVjdCcsICdmYWlsJyAtRXJyb3JSZWNvcmQgJF8gLUVuYWJsZUV4Y2VwdGlvbiAkRW5hYmxlRXhjZXB0aW9uIC1Db250aW51ZQ0KCQkJfQ0KCQkJI2VuZHJlZ2lvbiBSZW1vdGUgQ29ubmVjdGlvbg0KCQkJDQoJCQkjIER1bW15IGRhdGEsIHJlcGxhY2Ugd2l0aCBhY3R1YWwgZGF0YSBvYmplY3QgdG8gYnVpbGQNCgkJCSNyZWdpb24gUHJvY2VzcyBEYXRhDQoJCQkkc3lzdGVtSW5mbyA9IE5ldy1PYmplY3QgRnJlZC5Jcm9uU2NyaXB0ZXIyMDE4LlN5c3RlbUluZm9ybWF0aW9uIC1Qcm9wZXJ0eSBAew0KCQkJCUNvbXB1dGVyTmFtZSAgICAgICA9ICRDb21wdXRlci5Db21wdXRlck5hbWUNCgkJCQlOYW1lCQkgICAgICAgPSAkb3BlcmF0aW5nU3lzdGVtLkNhcHRpb24NCgkJCQlWZXJzaW9uCSAgICAgICAgICAgPSAkb3BlcmF0aW5nU3lzdGVtLlZlcnNpb24NCgkJCQlTZXJ2aWNlUGFjayAgICAgICAgPSAiezB9LnsxfSIgLWYgJG9wZXJhdGluZ1N5c3RlbS5TZXJ2aWNlUGFja01ham9yVmVyc2lvbiwgJG9wZXJhdGluZ1N5c3RlbS5TZXJ2aWNlUGFja01pbm9yVmVyc2lvbg0KCQkJCU1hbnVmYWN0dXJlciAgICAgICA9ICRvcGVyYXRpbmdTeXN0ZW0uTWFudWZhY3R1cmVyDQoJCQkJV2luZG93c0RpcmVjdG9yeSAgID0gJG9wZXJhdGluZ1N5c3RlbS5XaW5kb3dzRGlyZWN0b3J5DQoJCQkJTG9jYWxlCQkgICAgICAgPSAkb3BlcmF0aW5nU3lzdGVtLkxvY2FsZQ0KCQkJCUZyZWVQaHlzaWNhbE1lbW9yeSA9ICRvcGVyYXRpbmdTeXN0ZW0uRnJlZVBoeXNpY2FsTWVtb3J5ICogMTAyNCAjIENvbWVzIGluIEtCDQoJCQkJVmlydHVhbE1lbW9yeSAgICAgID0gJG9wZXJhdGluZ1N5c3RlbS5Ub3RhbFZpcnR1YWxNZW1vcnlTaXplICogMTAyNCAjIENvbWVzIGluIEtCDQoJCQkJRnJlZVZpcnR1YWxNZW1vcnkgID0gJG9wZXJhdGluZ1N5c3RlbS5GcmVlVmlydHVhbE1lbW9yeSAqIDEwMjQgIyBDb21lcyBpbiBLQg0KCQkJfQ0KCQkJDQoJCQlXcml0ZS1QU0ZNZXNzYWdlIC1MZXZlbCBWZXJib3NlIC1NZXNzYWdlICJbJENvbXB1dGVyXSBGaW5pc2hlZCBnYXRoZXJpbmcgaW5mb3JtYXRpb24iIC1UYXJnZXQgJENvbXB1dGVyIC1UYWcgJ3N1Y2Nlc3MnLCAnZmluaXNoZWQnDQoJCQkkc3lzdGVtSW5mbw0KCQkJI2VuZHJlZ2lvbiBQcm9jZXNzIERhdGENCgkJfQ0KCQkjZW5kcmVnaW9uIFByb2Nlc3MgYnkgQ29tcHV0ZXIgTmFtZQ0KCX0NCn0BCQQAAAAJBQAAAAYGAAAADMO+bmFtZcO+LnBzMQYHAAAAAAYIAAAAAsO+CQkAAAAJCgAAAAQEAAAAf1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgYAAAgICQsAAAABAAAAAQAAAAEFAAAABAAAAAkMAAAAAAAAAAAAAAABCQAAAAQAAAAJDQAAAAEAAAABAAAAAQoAAAAEAAAACQwAAAAAAAAAAAAAABELAAAABAAAAAYPAAAABG5hbWUNAxEMAAAAAAAAABENAAAABAAAAAYQAAAABG5hbWUNAws=</BA>
            </MS>
          </Obj>
        </LST>
      </Obj>
    </Props>
    <MS>
      <BA N="SerializationData">AAEAAAD/////AQAAAAAAAAAMAgAAAEpQU01vZHVsZURldmVsb3BtZW50LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJVBTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGUKAAAABE5hbWUEVHlwZQdWZXJzaW9uC0Rlc2NyaXB0aW9uBkF1dGhvcglDcmVhdGVkT24EVGFncwpQYXJhbWV0ZXJzB1NjcmlwdHMIQ2hpbGRyZW4BBAMBAQADAwMDKVBTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGVUeXBlAgAAAA5TeXN0ZW0uVmVyc2lvbg1/U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXX9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dgAJTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5EaWN0aW9uYXJ5YDJbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV0sW1BTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuUGFyYW1ldGVyU2NyaXB0LCBQU01vZHVsZURldmVsb3BtZW50LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dngFTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1BTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGVJdGVtQmFzZSwgUFNNb2R1bGVEZXZlbG9wbWVudCwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQIAAAAGAwAAAA5QU0ZDaW1GdW5jdGlvbgX8////KVBTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGVUeXBlAQAAAAd2YWx1ZV9fAAgCAAAAAAAAAAkFAAAABgYAAAAyUFNGcmFtZXdvcms6IENyZWF0ZSBmdW5jdGlvbiB0aGF0IGNvbm5lY3RzIHZpYSBDSU0GBwAAABJGcmllZHJpY2ggV2Vpbm1hbm4AwP51HFXYiAkIAAAACQkAAAAJCgAAAAkLAAAABAUAAAAOU3lzdGVtLlZlcnNpb24EAAAABl9NYWpvcgZfTWlub3IGX0J1aWxkCV9SZXZpc2lvbgAAAAAICAgIAQAAAAAAAAAAAAAAAAAAAAQIAAAAf1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgYAAAgICQwAAAACAAAAAAAAAAEJAAAACAAAAAkNAAAAAQAAAAEAAAAECgAAAIACU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuRGljdGlvbmFyeWAyW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtQU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlBhcmFtZXRlclNjcmlwdCwgUFNNb2R1bGVEZXZlbG9wbWVudCwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQMAAAAHVmVyc2lvbghDb21wYXJlcghIYXNoU2l6ZQADAAgWU3lzdGVtLk9yZGluYWxDb21wYXJlcggAAAAACQ4AAAAAAAAABAsAAACeAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbUFNNb2R1bGVEZXZlbG9wbWVudC5UZW1wbGF0ZS5UZW1wbGF0ZUl0ZW1CYXNlLCBQU01vZHVsZURldmVsb3BtZW50LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAvUFNNb2R1bGVEZXZlbG9wbWVudC5UZW1wbGF0ZS5UZW1wbGF0ZUl0ZW1CYXNlW10CAAAACAgJDwAAAAEAAAABAAAAEQwAAAACAAAABhAAAAAIZnVuY3Rpb24GEQAAAARmaWxlEQ0AAAAEAAAABhIAAAAEbmFtZQ0DBA4AAAAWU3lzdGVtLk9yZGluYWxDb21wYXJlcgEAAAALX2lnbm9yZUNhc2UAAQEHDwAAAAABAAAABAAAAAQtUFNNb2R1bGVEZXZlbG9wbWVudC5UZW1wbGF0ZS5UZW1wbGF0ZUl0ZW1CYXNlAgAAAAkTAAAADQMFEwAAAC1QU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlRlbXBsYXRlSXRlbUZpbGUJAAAABVZhbHVlCVBsYWluVGV4dBRDb250ZW50UGFyYW1ldGVyRmxhdBZDb250ZW50UGFyYW1ldGVyU2NyaXB0BE5hbWUMUmVsYXRpdmVQYXRoCklkZW50aWZpZXIXRmlsZVN5c3RlbVBhcmFtZXRlckZsYXQZRmlsZVN5c3RlbVBhcmFtZXRlclNjcmlwdAEAAwMBAQEDAwF/U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXX9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1df1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV1/U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXQIAAAAGFAAAAJIkZnVuY3Rpb24gw75uYW1lw74NCnsNCjwjDQoJLlNZTk9QU0lTDQoJCTxJbnNlcnQgU3lub3BzaXMgaGVyZT4uDQoJDQoJLkRFU0NSSVBUSU9ODQoJCTxJbnNlcnQgRGVzY3JpcHRpb24gaGVyZT4uDQoJDQoJLlBBUkFNRVRFUiBDb21wdXRlck5hbWUNCgkJVGhlIGNvbXB1dGVyKHMpIHRvIGNvbm5lY3QgdG8uDQoJCUNhbiBiZSBhbiBlc3RhYmxpc2hlZCBDaW1TZXNzaW9uLCB3aGljaCB3aWxsIHRoZW4gYmUgcmV1c2VkLg0KCQ0KCS5QQVJBTUVURVIgQ3JlZGVudGlhbA0KCQlUaGUgY3JlZGVudGlhbHMgdG8gdXNlIHRvIGNvbm5lY3QgdG8gcmVtb3RlIGNvbXB1dGVyKHMpIHdpdGguDQoJCVRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgZm9yIGxvY2FsIHF1ZXJpZXMuDQoJCVRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYgcGFzc2luZyBhbiBlc3RhYmxpc2hlZCBDaW0gU2Vzc2lvbiBmb3IgQ29tcHV0ZXJOYW1lLg0KCQ0KCS5QQVJBTUVURVIgQXV0aGVudGljYXRpb24NCgkJVGhlIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCB0byB1c2UgdG8gd2hlbiBhdXRoZW50aWNhdGluZyB0byByZW1vdGUgY29tcHV0ZXIocykuDQoJCVVzZXMgdGhlIHN5c3RlbSBkZWZhdWx0IHNldHRpbmdzIGJ5IGRlZmF1bHQuDQoJCVRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgZm9yIGxvY2FsIHF1ZXJpZXMuDQoJCVRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYgcGFzc2luZyBhbiBlc3RhYmxpc2hlZCBDaW0gU2Vzc2lvbiBmb3IgQ29tcHV0ZXJOYW1lLg0KCQ0KCS5QQVJBTUVURVIgRW5hYmxlRXhjZXB0aW9uDQoJCVRoaXMgcGFyYW1ldGVycyBkaXNhYmxlcyB1c2VyLWZyaWVuZGx5IHdhcm5pbmdzIGFuZCBlbmFibGVzIHRoZSB0aHJvd2luZyBvZiBleGNlcHRpb25zLg0KCQlUaGlzIGlzIGxlc3MgdXNlciBmcmllbmRseSwgYnV0IGFsbG93cyBjYXRjaGluZyBleGNlcHRpb25zIGluIGNhbGxpbmcgc2NyaXB0cy4NCgkNCgkuRVhBTVBMRQ0KCQlQUyBDOlw+IMO+bmFtZcO+DQoJDQoJCTxpbnNlcnQgZGVzY3JpcHRpb24gZm9yIGxvY2FsIGV4ZWN1dGlvbj4uDQoJDQoJLkVYQU1QTEUNCgkJUFMgQzpcPiBHZXQtQ29udGVudCBzZXJ2ZXJzLnR4dCB8IMO+bmFtZcO+DQoJDQoJCTxpbnNlcnQgZGVzY3JpcHRpb24gZm9yIHJlbW90ZSBleGVjdXRpb24gZnJvbSBmaWxlPg0KCQ0KCS5FWEFNUExFDQoJCVBTIEM6XD4gR2V0LUFEQ29tcHV0ZXIgLUZpbHRlciAibmFtZSAtbGlrZSAnRGVza3RvcConIiB8IMO+bmFtZcO+DQoJDQoJCTxpbnNlcnQgZGVzY3JpcHRpb24gZm9yIHJlbW90ZSBleGVjdXRpb24gZnJvbSBBRCBDb21wdXRlcj4NCiM+DQoJW0NtZGxldEJpbmRpbmcoKV0NCglQYXJhbSAoDQoJCVtQYXJhbWV0ZXIoVmFsdWVGcm9tUGlwZWxpbmUgPSAkdHJ1ZSldDQoJCVtQU0ZDb21wdXRlcltdXQ0KCQkkQ29tcHV0ZXJOYW1lID0gJGVudjpDT01QVVRFUk5BTUUsDQoJCQ0KCQlbU3lzdGVtLk1hbmFnZW1lbnQuQXV0b21hdGlvbi5DcmVkZW50aWFsQXR0cmlidXRlKCldDQoJCVtTeXN0ZW0uTWFuYWdlbWVudC5BdXRvbWF0aW9uLlBTQ3JlZGVudGlhbF0NCgkJJENyZWRlbnRpYWwsDQoJCQ0KCQlbTWljcm9zb2Z0Lk1hbmFnZW1lbnQuSW5mcmFzdHJ1Y3R1cmUuT3B0aW9ucy5QYXNzd29yZEF1dGhlbnRpY2F0aW9uTWVjaGFuaXNtXQ0KCQkkQXV0aGVudGljYXRpb24gPSBbTWljcm9zb2Z0Lk1hbmFnZW1lbnQuSW5mcmFzdHJ1Y3R1cmUuT3B0aW9ucy5QYXNzd29yZEF1dGhlbnRpY2F0aW9uTWVjaGFuaXNtXTo6RGVmYXVsdCwNCgkJDQoJCVtzd2l0Y2hdDQoJCSRFbmFibGVFeGNlcHRpb24NCgkpDQoJDQoJYmVnaW4NCgl7DQoJCVdyaXRlLVBTRk1lc3NhZ2UgLUxldmVsIEludGVybmFsQ29tbWVudCAtTWVzc2FnZSAiQm91bmQgcGFyYW1ldGVyczogJCgkUFNCb3VuZFBhcmFtZXRlcnMuS2V5cyAtam9pbiAiLCAiKSIgLVRhZyAnZGVidWcnLCdzdGFydCcsJ3BhcmFtJw0KCX0NCglwcm9jZXNzDQoJew0KCQkjcmVnaW9uIFByb2Nlc3MgYnkgQ29tcHV0ZXIgTmFtZQ0KCQlmb3JlYWNoICgkQ29tcHV0ZXIgaW4gJENvbXB1dGVyTmFtZSkNCgkJew0KCQkJI3JlZ2lvbiBSZW1vdGUgQ29ubmVjdGlvbg0KCQkJV3JpdGUtUFNGTWVzc2FnZSAtTGV2ZWwgVmVyeVZlcmJvc2UgLU1lc3NhZ2UgIlskQ29tcHV0ZXJdIEVzdGFibGlzaGluZyBjb25uZWN0aW9uIiAtVGFyZ2V0ICRDb21wdXRlciAtVGFnICdjb25uZWN0JywgJ3N0YXJ0Jw0KCQkJdHJ5DQoJCQl7DQoJCQkJaWYgKC1ub3QgJENvbXB1dGVyLklzTG9jYWxob3N0KQ0KCQkJCXsNCgkJCQkJaWYgKCRDb21wdXRlci5UeXBlIC1saWtlICJDaW1TZXNzaW9uIikgeyAkc2Vzc2lvbiA9ICRDb21wdXRlci5JbnB1dE9iamVjdCB9DQoJCQkJCWVsc2UgeyAkc2Vzc2lvbiA9IE5ldy1DaW1TZXNzaW9uIC1Db21wdXRlck5hbWUgJENvbXB1dGVyIC1DcmVkZW50aWFsICRDcmVkZW50aWFsIC1BdXRoZW50aWNhdGlvbiAkQXV0aGVudGljYXRpb24gLUVycm9yQWN0aW9uIFN0b3AgfQ0KCQkJCQkNCgkJCQkJIyBTb21lIGR1bW15IGNvZGUsIHJlcGxhY2Ugd2l0aCBhY3R1YWwgbG9naWMNCgkJCQkJV3JpdGUtUFNGTWVzc2FnZSAtTGV2ZWwgU29tZXdoYXRWZXJib3NlIC1NZXNzYWdlICJbJENvbXB1dGVyXSBSZXRyaWV2aW5nIE9TIGluZm9ybWF0aW9uIiAtVGFyZ2V0ICRDb21wdXRlciAtVGFnICdvcycsICdnZXQnDQoJCQkJCSRvcGVyYXRpbmdTeXN0ZW0gPSBHZXQtQ2ltSW5zdGFuY2UgLUNsYXNzTmFtZSBXaW4zMl9PcGVyYXRpbmdTeXN0ZW0gLUNpbVNlc3Npb24gJHNlc3Npb24gLUVycm9yQWN0aW9uIFN0b3ANCgkJCQkJDQoJCQkJCWlmICgkQ29tcHV0ZXIuVHlwZSAtbm90bGlrZSAiQ2ltU2Vzc2lvbiIpIHsgUmVtb3ZlLUNpbVNlc3Npb24gLUNpbVNlc3Npb24gJHNlc3Npb24gfQ0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkjIFNvbWUgZHVtbXkgY29kZSwgcmVwbGFjZSB3aXRoIGFjdHVhbCBsb2dpYw0KCQkJCQkjIE5vIHBvaW50IGluIGVzdGFibGlzaGluZyBhIHNlc3Npb24gdG8gbG9jYWxob3N0LCBjdXN0b20gY3JlZGVudGlhbHMgYWxzbyBub3Qgc3VwcG9ydGVkDQoJCQkJCVdyaXRlLVBTRk1lc3NhZ2UgLUxldmVsIFNvbWV3aGF0VmVyYm9zZSAtTWVzc2FnZSAiWyRDb21wdXRlcl0gUmV0cmlldmluZyBPUyBpbmZvcm1hdGlvbiIgLVRhcmdldCAkQ29tcHV0ZXIgLVRhZyAnb3MnLCAnZ2V0Jw0KCQkJCQkkb3BlcmF0aW5nU3lzdGVtID0gR2V0LUNpbUluc3RhbmNlIC1DbGFzc05hbWUgV2luMzJfT3BlcmF0aW5nU3lzdGVtIC1FcnJvckFjdGlvbiBTdG9wDQoJCQkJfQ0KCQkJfQ0KCQkJY2F0Y2gNCgkJCXsNCgkJCQlTdG9wLVBTRkZ1bmN0aW9uIC1NZXNzYWdlICJbJENvbXB1dGVyXSBGYWlsZWQgdG8gY29ubmVjdCB0byB0YXJnZXQgY29tcHV0ZXIiIC1UYXJnZXQgJENvbXB1dGVyIC1UYWcgJ2Nvbm5lY3QnLCAnZmFpbCcgLUVycm9yUmVjb3JkICRfIC1FbmFibGVFeGNlcHRpb24gJEVuYWJsZUV4Y2VwdGlvbiAtQ29udGludWUNCgkJCX0NCgkJCSNlbmRyZWdpb24gUmVtb3RlIENvbm5lY3Rpb24NCgkJCQ0KCQkJIyBEdW1teSBkYXRhLCByZXBsYWNlIHdpdGggYWN0dWFsIGRhdGEgb2JqZWN0IHRvIGJ1aWxkDQoJCQkjcmVnaW9uIFByb2Nlc3MgRGF0YQ0KCQkJJHN5c3RlbUluZm8gPSBOZXctT2JqZWN0IEZyZWQuSXJvblNjcmlwdGVyMjAxOC5TeXN0ZW1JbmZvcm1hdGlvbiAtUHJvcGVydHkgQHsNCgkJCQlDb21wdXRlck5hbWUgICAgICAgPSAkQ29tcHV0ZXIuQ29tcHV0ZXJOYW1lDQoJCQkJTmFtZQkJICAgICAgID0gJG9wZXJhdGluZ1N5c3RlbS5DYXB0aW9uDQoJCQkJVmVyc2lvbgkgICAgICAgICAgID0gJG9wZXJhdGluZ1N5c3RlbS5WZXJzaW9uDQoJCQkJU2VydmljZVBhY2sgICAgICAgID0gInswfS57MX0iIC1mICRvcGVyYXRpbmdTeXN0ZW0uU2VydmljZVBhY2tNYWpvclZlcnNpb24sICRvcGVyYXRpbmdTeXN0ZW0uU2VydmljZVBhY2tNaW5vclZlcnNpb24NCgkJCQlNYW51ZmFjdHVyZXIgICAgICAgPSAkb3BlcmF0aW5nU3lzdGVtLk1hbnVmYWN0dXJlcg0KCQkJCVdpbmRvd3NEaXJlY3RvcnkgICA9ICRvcGVyYXRpbmdTeXN0ZW0uV2luZG93c0RpcmVjdG9yeQ0KCQkJCUxvY2FsZQkJICAgICAgID0gJG9wZXJhdGluZ1N5c3RlbS5Mb2NhbGUNCgkJCQlGcmVlUGh5c2ljYWxNZW1vcnkgPSAkb3BlcmF0aW5nU3lzdGVtLkZyZWVQaHlzaWNhbE1lbW9yeSAqIDEwMjQgIyBDb21lcyBpbiBLQg0KCQkJCVZpcnR1YWxNZW1vcnkgICAgICA9ICRvcGVyYXRpbmdTeXN0ZW0uVG90YWxWaXJ0dWFsTWVtb3J5U2l6ZSAqIDEwMjQgIyBDb21lcyBpbiBLQg0KCQkJCUZyZWVWaXJ0dWFsTWVtb3J5ICA9ICRvcGVyYXRpbmdTeXN0ZW0uRnJlZVZpcnR1YWxNZW1vcnkgKiAxMDI0ICMgQ29tZXMgaW4gS0INCgkJCX0NCgkJCQ0KCQkJV3JpdGUtUFNGTWVzc2FnZSAtTGV2ZWwgVmVyYm9zZSAtTWVzc2FnZSAiWyRDb21wdXRlcl0gRmluaXNoZWQgZ2F0aGVyaW5nIGluZm9ybWF0aW9uIiAtVGFyZ2V0ICRDb21wdXRlciAtVGFnICdzdWNjZXNzJywgJ2ZpbmlzaGVkJw0KCQkJJHN5c3RlbUluZm8NCgkJCSNlbmRyZWdpb24gUHJvY2VzcyBEYXRhDQoJCX0NCgkJI2VuZHJlZ2lvbiBQcm9jZXNzIGJ5IENvbXB1dGVyIE5hbWUNCgl9DQp9AQkVAAAACRYAAAAGFwAAAAzDvm5hbWXDvi5wczEGGAAAAAAGGQAAAALDvgkaAAAACRsAAAABFQAAAAgAAAAJHAAAAAEAAAABAAAAARYAAAAIAAAACR0AAAAAAAAAAAAAAAEaAAAACAAAAAkeAAAAAQAAAAEAAAABGwAAAAgAAAAJHQAAAAAAAAAAAAAAERwAAAAEAAAABiAAAAAEbmFtZQ0DER0AAAAAAAAAER4AAAAEAAAABiEAAAAEbmFtZQ0DCw==</BA>
    </MS>
  </Obj>
</Objs>