HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Program Files/Docker/Docker/frontend/resources/regedit/vbs/util.vbs
Set stdout = WScript.StdOut
Set stderr = WScript.StdErr
Set stdin = WScript.StdIn
Set args = WScript.Arguments
Set fs = CreateObject("scripting.filesystemobject") 
Dim OSArchitecture

Sub WriteErr(message)
	stderr.Write message
End Sub

Sub WriteLineErr(message)
	stderr.WriteLine message
End Sub

Sub Write(message)
	stdout.Write message
End Sub

Sub WriteLine(message)
	stdout.WriteLine message
End Sub

Function IndexOf(varNeedle, arrHaystack)
	IndexOf = -1
	
	If Not IsArray(arrHaystack)	 Then
		Exit Function
	End If

	For xyz = 0 To UBound(arrHaystack)
		If arrHaystack(xyz) = varNeedle Then
			IndexOf = xyz
			Exit Function
		End If
	Next
End Function

Sub CheckZeroArgs(message)
	' bail if args are missing
	If args.Count = 0 Then
		WriteLineErr message
		WScript.Quit 25121
	End If
End Sub

Dim ALLOWED_OS_ARCHITECTURE_VALUES: ALLOWED_OS_ARCHITECTURE_VALUES = Array("S", "A", "32", "64")

'
'	determine the architecture of the operating system, that will be used. there are 4 possibilities:
'	A - means agnostic
'	S - means that we want to use a specific architecture, but auto detect Item
'	32 - explicitly use 32 bit architecture
'	64 - explicitly use 64 bit architecture
'
Sub DetermineOSArchitecture()
	strArchitecture = args(0)

	If IsNull(strArchitecture) Then
		WriteLineErr "missing architecture argument"
		WScript.Quit 25124
	End If

	strArchitecture = UCase(strArchitecture)

	If IndexOf(strArchitecture, ALLOWED_OS_ARCHITECTURE_VALUES) = -1 Then
		WriteLineErr "invalid architecture argument"
		WScript.Quit 25124
	End If

	If (strArchitecture = "S") Then
		OSArchitecture = GetOSArchitecture()
		If OSArchitecture = -1 Then
			WriteLineErr "invalid os architecture detected " & OSArchitecture
			WScript.Quit 25126
		End If
	Else
		OSArchitecture = strArchitecture
	End If

End Sub

Sub Include(sPath)
	' TODO this is fragile, but should work for "modules" nested relatively to script root
	include_ScriptPath = Left(WScript.ScriptFullName, InStr(WScript.ScriptFullName, WScript.ScriptName) - 2)	
	sPath = include_ScriptPath & "\" & sPath
	
	include_code = fs.OpenTextFile(sPath).ReadAll 	
	ExecuteGlobal include_code
End Sub

Function GetOSArchitecture()

	Dim ObjWMI, ColSettings, ObjProcessor 
	Dim StrComputer, ObjNetwork 
	
	Set ObjWMI = GetObject("winmgmts:\Root\CIMV2") 
	Set ColSettings = ObjWMI.ExecQuery ("SELECT DataWidth, AddressWidth, Architecture FROM Win32_Processor") 

	' I make two assumptions here: 
	' 1. Eveyone will have CPU0 device
	' 2. There is only one cpu defined in the wmi database (and if not, then they are all of the same architecture)
	' 
	' from: https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-processor
	' Architecture values:
	' x86 (0)
	' MIPS (1)
	' Alpha (2)
	' PowerPC (3)
	' ARM (5)
	' ia64 (6)
	' x64 (9)
	' ARM64 (12)

	Set ObjProcessor = ColSettings.Item("Win32_Processor.DeviceID=""CPU0""")

	If ObjProcessor.Architecture = 0 AND ObjProcessor.AddressWidth = 32 Then 
		GetOSArchitecture = 32
	ElseIf (ObjProcessor.Architecture = 6 OR ObjProcessor.Architecture = 9) AND ObjProcessor.DataWidth = 64 AND ObjProcessor.AddressWidth = 32 Then 
		GetOSArchitecture = 32
	ElseIf (ObjProcessor.Architecture = 6 OR ObjProcessor.Architecture = 9) AND ObjProcessor.DataWidth = 64 AND ObjProcessor.AddressWidth = 64 Then 
		GetOSArchitecture = 64
	' special case (could be included in the statements above) for Windows VM on Apple Silicon, tested only on parallels
	ElseIf ObjProcessor.Architecture = 12 AND ObjProcessor.DataWidth = 64 AND ObjProcessor.AddressWidth = 64 Then
		GetOSArchitecture = 64
	Else
		GetOSArchitecture = -1
	End If 
	
End Function

Function JsonSafe(inStrText)
	If inStrText = "" Then
		JsonSafe = ""
		Exit Function 
	End If
	Dim outStrText: outStrText = inStrText
	outStrText = Replace(outStrText, "\", "\\")
	outStrText = Replace(outStrText, vbcrlf, "\\r\\n")
	outStrText = Replace(outStrText, vblf, "\\n")
	outStrText = Replace(outStrText, vbcr, "\\r")
	outStrText = Replace(outStrText, """", "\""")	
	outStrText = JsonU(outStrText)
	JsonSafe = outStrText
End Function

'TODO: need to change this function's name to something more appropriate
Function JsonU(astr)
	
	If isNull(astr) Then
		JsonU = ""
		Exit Function
	End If

	Dim c 
	Dim utftext: utftext = ""
	
	For n = 1 To Len(astr)
		c = CLng(AscW(Mid(astr, n, 1)))

		If c < 0 Then
			c = &H10000 + c
		End If

		If c < &H80 Then
			utftext = utftext & Mid(astr, n, 1)
		ElseIf c < &H100 Then
			utftext = utftext & "\u00" & Hex(c)
		ElseIf c < &H1000 Then
			utftext = utftext & "\u0" & Hex(c)
		Else
			utftext = utftext & "\u" & Hex(c)
		End If
	Next

	JsonU = utftext
End Function

'' SIG '' Begin signature block
'' SIG '' MIIpugYJKoZIhvcNAQcCoIIpqzCCKacCAQExDzANBglg
'' SIG '' hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor
'' SIG '' BgEEAYI3AgEeMCQCAQEEEE7wKRaZJ7VNj+Ws4Q8X66sC
'' SIG '' AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg
'' SIG '' /xx+W09gkLJc/0HyNY6NAGcF9m9HJnfsYf8ONzIEqiqg
'' SIG '' gg5xMIIGsDCCBJigAwIBAgIQCK1AsmDSnEyfXs2pvZOu
'' SIG '' 2TANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQGEwJVUzEV
'' SIG '' MBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
'' SIG '' d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2Vy
'' SIG '' dCBUcnVzdGVkIFJvb3QgRzQwHhcNMjEwNDI5MDAwMDAw
'' SIG '' WhcNMzYwNDI4MjM1OTU5WjBpMQswCQYDVQQGEwJVUzEX
'' SIG '' MBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMT
'' SIG '' OERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5n
'' SIG '' IFJTQTQwOTYgU0hBMzg0IDIwMjEgQ0ExMIICIjANBgkq
'' SIG '' hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1bQvQtAorXi3
'' SIG '' XdU5WRuxiEL1M4zrPYGXcMW7xIUmMJ+kjmjYXPXrNCQH
'' SIG '' 4UtP03hD9BfXHtr50tVnGlJPDqFX/IiZwZHMgQM+TXAk
'' SIG '' ZLON4gh9NH1MgFcSa0OamfLFOx/y78tHWhOmTLMBICXz
'' SIG '' ENOLsvsI8IrgnQnAZaf6mIBJNYc9URnokCF4RS6hnyzh
'' SIG '' GMIazMXuk0lwQjKP+8bqHPNlaJGiTUyCEUhSaN4QvRRX
'' SIG '' XegYE2XFf7JPhSxIpFaENdb5LpyqABXRN/4aBpTCfMjq
'' SIG '' GzLmysL0p6MDDnSlrzm2q2AS4+jWufcx4dyt5Big2MEj
'' SIG '' R0ezoQ9uo6ttmAaDG7dqZy3SvUQakhCBj7A7CdfHmzJa
'' SIG '' wv9qYFSLScGT7eG0XOBv6yb5jNWy+TgQ5urOkfW+0/tv
'' SIG '' k2E0XLyTRSiDNipmKF+wc86LJiUGsoPUXPYVGUztYuBe
'' SIG '' M/Lo6OwKp7ADK5GyNnm+960IHnWmZcy740hQ83eRGv7b
'' SIG '' UKJGyGFYmPV8AhY8gyitOYbs1LcNU9D4R+Z1MI3sMJN2
'' SIG '' FKZbS110YU0/EpF23r9Yy3IQKUHw1cVtJnZoEUETWJrc
'' SIG '' JisB9IlNWdt4z4FKPkBHX8mBUHOFECMhWWCKZFTBzCEa
'' SIG '' 6DgZfGYczXg4RTCZT/9jT0y7qg0IU0F8WD1Hs/q27Iwy
'' SIG '' CQLMbDwMVhECAwEAAaOCAVkwggFVMBIGA1UdEwEB/wQI
'' SIG '' MAYBAf8CAQAwHQYDVR0OBBYEFGg34Ou2O/hfEYb7/mF7
'' SIG '' CIhl9E5CMB8GA1UdIwQYMBaAFOzX44LScV1kTN8uZz/n
'' SIG '' upiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAK
'' SIG '' BggrBgEFBQcDAzB3BggrBgEFBQcBAQRrMGkwJAYIKwYB
'' SIG '' BQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBB
'' SIG '' BggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNl
'' SIG '' cnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcnQw
'' SIG '' QwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybDMuZGln
'' SIG '' aWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5j
'' SIG '' cmwwHAYDVR0gBBUwEzAHBgVngQwBAzAIBgZngQwBBAEw
'' SIG '' DQYJKoZIhvcNAQEMBQADggIBADojRD2NCHbuj7w6mdNW
'' SIG '' 4AIapfhINPMstuZ0ZveUcrEAyq9sMCcTEp6QRJ9L/Z6j
'' SIG '' fCbVN7w6XUhtldU/SfQnuxaBRVD9nL22heB2fjdxyyL3
'' SIG '' WqqQz/WTauPrINHVUHmImoqKwba9oUgYftzYgBoRGRjN
'' SIG '' YZmBVvbJ43bnxOQbX0P4PpT/djk9ntSZz0rdKOtfJqGV
'' SIG '' WEjVGv7XJz/9kNF2ht0csGBc8w2o7uCJob054ThO2m67
'' SIG '' Np375SFTWsPK6Wrxoj7bQ7gzyE84FJKZ9d3OVG3ZXQIU
'' SIG '' H0AzfAPilbLCIXVzUstG2MQ0HKKlS43Nb3Y3LIU/Gs4m
'' SIG '' 6Ri+kAewQ3+ViCCCcPDMyu/9KTVcH4k4Vfc3iosJocsL
'' SIG '' 6TEa/y4ZXDlx4b6cpwoG1iZnt5LmTl/eeqxJzy6kdJKt
'' SIG '' 2zyknIYf48FWGysj/4+16oh7cGvmoLr9Oj9FpsToFpFS
'' SIG '' i0HASIRLlk2rREDjjfAVKM7t8RhWByovEMQMCGQ8M4+u
'' SIG '' KIw8y4+ICw2/O/TOHnuO77Xry7fwdxPm5yg/rBKupS8i
'' SIG '' bEH5glwVZsxsDsrFhsP2JjMMB0ug0wcCampAMEhLNKhR
'' SIG '' ILutG4UI4lkNbcoFUCvqShyepf2gpx8GdOfy1lKQ/a+F
'' SIG '' SCH5Vzu0nAPthkX0tGFuv2jiJmCG6sivqf6UHedjGzqG
'' SIG '' VnhOMIIHuTCCBaGgAwIBAgIQCnsc1K1pEsyUUas2dqg1
'' SIG '' ZzANBgkqhkiG9w0BAQsFADBpMQswCQYDVQQGEwJVUzEX
'' SIG '' MBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMT
'' SIG '' OERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5n
'' SIG '' IFJTQTQwOTYgU0hBMzg0IDIwMjEgQ0ExMB4XDTI0MTEw
'' SIG '' ODAwMDAwMFoXDTI1MTEwNzIzNTk1OVowgcExEzARBgsr
'' SIG '' BgEEAYI3PAIBAxMCVVMxGTAXBgsrBgEEAYI3PAIBAhMI
'' SIG '' RGVsYXdhcmUxHTAbBgNVBA8MFFByaXZhdGUgT3JnYW5p
'' SIG '' emF0aW9uMRAwDgYDVQQFEwc0ODE3NDY0MQswCQYDVQQG
'' SIG '' EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UE
'' SIG '' BxMJUGFsbyBBbHRvMRMwEQYDVQQKEwpEb2NrZXIgSW5j
'' SIG '' MRMwEQYDVQQDEwpEb2NrZXIgSW5jMIICIjANBgkqhkiG
'' SIG '' 9w0BAQEFAAOCAg8AMIICCgKCAgEA2bkcKnV+V48j+M8N
'' SIG '' qipIuAgFwMYVv9kAwVNy25KuSJ1WfgO0jGGVFgYtzpMf
'' SIG '' YG0Y8G6DaO7lSuIju73e3ylt0fqXW12Wszl+BvAjIGou
'' SIG '' 1qwPJMuyrr5Ne8uT7fd1xNbtbZrsm1MW6nNNHvQBapB8
'' SIG '' p6ggGILkpxfdt7O4f+7t0sQpBuHrr9ZG9HATm+VM4hbw
'' SIG '' +tONQf7uBNvogqWYy0g5X99c0XAUcYwn1lpaLr4aUuiv
'' SIG '' xHerVYEayZRY6Hev4NkrJMJaGarqmxX3tl1ZyH3SQn5t
'' SIG '' qx5HNDHaebh593K7dam7piNZ9gmDOF0bkKA9anuaG8JH
'' SIG '' leW19sXjtvzP7LOgH8g510jaQkOC0GuSzli7UZh74k6R
'' SIG '' kuZoWgCWIc8hQmDfM1AXD/Sn8mRsmsuqNdr8+bX1b+Jb
'' SIG '' ojrnFZSUNehUl/+HNABduQNJhl74JBZsZr0gJg+bclVU
'' SIG '' 13S4pnDQy4PPXD2mKy//KhrpimVgtzbuOCHNMO7f3AY1
'' SIG '' K+QA1rekaBz7XBBtLA9pPIw7pCaZMdZemOkiLImIGWqd
'' SIG '' QuCB4sfmcHdpQMi/FAq9ev/sPdDZD3ig4dlQ1e9t/Buc
'' SIG '' gaEsO69rLbclF9jHb/gL75UECtzjsAUAk1JXE52nkMey
'' SIG '' f9Ryusm55fUIQAXozay1BwPK3HcuNc7X4aZrYA0EZNFj
'' SIG '' 9pkRdJsCAwEAAaOCAgIwggH+MB8GA1UdIwQYMBaAFGg3
'' SIG '' 4Ou2O/hfEYb7/mF7CIhl9E5CMB0GA1UdDgQWBBTsCjbX
'' SIG '' 88tCqZ6UaqBFia6/kIqURDA9BgNVHSAENjA0MDIGBWeB
'' SIG '' DAEDMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly93d3cuZGln
'' SIG '' aWNlcnQuY29tL0NQUzAOBgNVHQ8BAf8EBAMCB4AwEwYD
'' SIG '' VR0lBAwwCgYIKwYBBQUHAwMwgbUGA1UdHwSBrTCBqjBT
'' SIG '' oFGgT4ZNaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0Rp
'' SIG '' Z2lDZXJ0VHJ1c3RlZEc0Q29kZVNpZ25pbmdSU0E0MDk2
'' SIG '' U0hBMzg0MjAyMUNBMS5jcmwwU6BRoE+GTWh0dHA6Ly9j
'' SIG '' cmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRH
'' SIG '' NENvZGVTaWduaW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEu
'' SIG '' Y3JsMIGUBggrBgEFBQcBAQSBhzCBhDAkBggrBgEFBQcw
'' SIG '' AYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMFwGCCsG
'' SIG '' AQUFBzAChlBodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5j
'' SIG '' b20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JT
'' SIG '' QTQwOTZTSEEzODQyMDIxQ0ExLmNydDAJBgNVHRMEAjAA
'' SIG '' MA0GCSqGSIb3DQEBCwUAA4ICAQBonrdB+g0ATLlnIJR+
'' SIG '' +kEzYMFsWGlYAUnpIvB7HD6g4qKr4QveLBVgQB3itR99
'' SIG '' /jlTq2nuAD5LijDm5UBNxErcDsMpKy9nYMEqDZumfern
'' SIG '' DUHgifueXOYVOLiD9th957tOu716gZLMTs6IDnvtEaIl
'' SIG '' IFq2EBgJHESQmOPnoyTYzF4JZscUjAcKMMX4QMtx7A28
'' SIG '' 1ATUVA73kIzgs8TQVr9Ci0Ju8BtToSjYT6mDeHx64Zjo
'' SIG '' Y/00J3lEwzaklphadGkLdShP72GyadeMBCewI+zBxzkM
'' SIG '' dv9Eha5hobQd9rH+gGzcx9EGgXJakxL7EiGDDLLl+EMq
'' SIG '' ei/pG5kMbpZbwMjLL9KgD64mdIkGQKylyWnvEHjoB1kR
'' SIG '' YWMY66AX6BRqXzFve1qmlFoKJ6c69uf2zNuOgaQIcDuA
'' SIG '' ddSLzHfdbAS9/2HQX5iPy33VRhzqJaF3fsbh5iUJhH0p
'' SIG '' F7OwC7JhJmGhgYggcC9hPa1Bx5QXLk8eycDmitir0YXh
'' SIG '' RoI2sLsIev/dPq96bi3cuhDPXoN8je2EfvxbumYW03T5
'' SIG '' +ITUj93NNuRIUP/3mt+V6X54E96z1f37nemB3WOtB84c
'' SIG '' RMZcbCWd2cuO9Peiyw5kmudo8/1yAQveWV6Q990mz8BD
'' SIG '' 85AN4gAzEHpiJ3at1PZuUh+gKVgMvuFF0xV6gvdYsnka
'' SIG '' b7Sd5zGCGqEwghqdAgEBMH0waTELMAkGA1UEBhMCVVMx
'' SIG '' FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQD
'' SIG '' EzhEaWdpQ2VydCBUcnVzdGVkIEc0IENvZGUgU2lnbmlu
'' SIG '' ZyBSU0E0MDk2IFNIQTM4NCAyMDIxIENBMQIQCnsc1K1p
'' SIG '' EsyUUas2dqg1ZzANBglghkgBZQMEAgEFAKB8MBAGCisG
'' SIG '' AQQBgjcCAQwxAjAAMBkGCSqGSIb3DQEJAzEMBgorBgEE
'' SIG '' AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3
'' SIG '' AgEVMC8GCSqGSIb3DQEJBDEiBCCtKTXv4r5pL+bltUtR
'' SIG '' nleuqt/b8/4Pe8Vqw/4yFE19JzANBgkqhkiG9w0BAQEF
'' SIG '' AASCAgDFwJ0BkxpXu8papj44+xKUO8k6aochc5RPCgyu
'' SIG '' OPKP0pIPHphtbd86Us/0uNA8AG2yldf+PpxoZO9pxrZo
'' SIG '' i/PThZWy/EAqdFt/qSV2YiUIee6xUanaxOKfub7n8iQj
'' SIG '' 9YPxvrrTfbDV7cwMo7olqD/+za3/iTVLu0qv7lgZ7a/s
'' SIG '' GJvPyRFBGYrmW19FV43Rejn+mljQDKOLe6e6OYKiA+ty
'' SIG '' cZ6vkKkeMMA7hNYo2P2sUZcP31LvZK5gh9LZ+1PMKvB7
'' SIG '' Y8wnFJQDjavcSizS5fE2jwGO/lWra5S1MCbX9/ZifEb2
'' SIG '' jmi1wObWomDZJlSXrP0YKkXK3RUvLOIANKWS6PRuR1sC
'' SIG '' ZmLuSl1epwaWyfgJ62FRrOj7XWNTxfiOYWUHtnPUQxar
'' SIG '' 75/U55udW72L5UB2XlET+CbRSFBymkujZXOnyPo7JqcS
'' SIG '' KtfLPjL8tABa+GJ0KGNYqTcgKjiA6l9cvN25pAy9JHcv
'' SIG '' MOdf1gj4tyWEwUzJtRMlqcSzk5qgxwFpwNMvYMM8wJ6n
'' SIG '' S47Xnj3WjmW+1c250pFzyvVX+DiC7t9MI+7idARislR4
'' SIG '' LxjWZ//N6Diy5kOcY3yjuq9Z2yGG0SKgKrFaX1LfUsR5
'' SIG '' QXvJyzur+k4gn6i3qbZPr3FGOHD3DpB1SQdxPM5HJImp
'' SIG '' OqJLVh16zvE0iBUcRj+KjdCtG1VWWaGCF3cwghdzBgor
'' SIG '' BgEEAYI3AwMBMYIXYzCCF18GCSqGSIb3DQEHAqCCF1Aw
'' SIG '' ghdMAgEDMQ8wDQYJYIZIAWUDBAIBBQAweAYLKoZIhvcN
'' SIG '' AQkQAQSgaQRnMGUCAQEGCWCGSAGG/WwHATAxMA0GCWCG
'' SIG '' SAFlAwQCAQUABCAUkgInA1oWI9vGDIcQYSNpvnhqXDfC
'' SIG '' NM4iWOOrL39jJwIRAPBwwrr9sVYv/0mM8XtjjcoYDzIw
'' SIG '' MjUwOTExMDcyMjU3WqCCEzowggbtMIIE1aADAgECAhAK
'' SIG '' gO8YS43xBYLRxHanlXRoMA0GCSqGSIb3DQEBCwUAMGkx
'' SIG '' CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg
'' SIG '' SW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBH
'' SIG '' NCBUaW1lU3RhbXBpbmcgUlNBNDA5NiBTSEEyNTYgMjAy
'' SIG '' NSBDQTEwHhcNMjUwNjA0MDAwMDAwWhcNMzYwOTAzMjM1
'' SIG '' OTU5WjBjMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGln
'' SIG '' aUNlcnQsIEluYy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFNI
'' SIG '' QTI1NiBSU0E0MDk2IFRpbWVzdGFtcCBSZXNwb25kZXIg
'' SIG '' MjAyNSAxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
'' SIG '' CgKCAgEA0EasLRLGntDqrmBWsytXum9R/4ZwCgHfyjfM
'' SIG '' GUIwYzKomd8U1nH7C8Dr0cVMF3BsfAFI54um8+dnxk36
'' SIG '' +jx0Tb+k+87H9WPxNyFPJIDZHhAqlUPt281mHrBbZHqR
'' SIG '' K71Em3/hCGC5KyyneqiZ7syvFXJ9A72wzHpkBaMUNg7M
'' SIG '' OLxI6E9RaUueHTQKWXymOtRwJXcrcTTPPT2V1D/+cFll
'' SIG '' ESviH8YjoPFvZSjKs3SKO1QNUdFd2adw44wDcKgH+JRJ
'' SIG '' E5Qg0NP3yiSyi5MxgU6cehGHr7zou1znOM8odbkqoK+l
'' SIG '' J25LCHBSai25CFyD23DZgPfDrJJJK77epTwMP6eKA0kW
'' SIG '' a3osAe8fcpK40uhktzUd/Yk0xUvhDU6lvJukx7jphx40
'' SIG '' DQt82yepyekl4i0r8OEps/FNO4ahfvAk12hE5FVs9HVV
'' SIG '' WcO5J4dVmVzix4A77p3awLbr89A90/nWGjXMGn7FQhmS
'' SIG '' lIUDy9Z2hSgctaepZTd0ILIUbWuhKuAeNIeWrzHKYueM
'' SIG '' JtItnj2Q+aTyLLKLM0MheP/9w6CtjuuVHJOVoIJ/DtpJ
'' SIG '' RE7Ce7vMRHoRon4CWIvuiNN1Lk9Y+xZ66lazs2kKFSTn
'' SIG '' nkrT3pXWETTJkhd76CIDBbTRofOsNyEhzZtCGmnQigpF
'' SIG '' Hti58CSmvEyJcAlDVcKacJ+A9/z7eacCAwEAAaOCAZUw
'' SIG '' ggGRMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFOQ7/PIx
'' SIG '' 7f391/ORcWMZUEPPYYzoMB8GA1UdIwQYMBaAFO9vU0rp
'' SIG '' 5AZ8esrikFb2L9RJ7MtOMA4GA1UdDwEB/wQEAwIHgDAW
'' SIG '' BgNVHSUBAf8EDDAKBggrBgEFBQcDCDCBlQYIKwYBBQUH
'' SIG '' AQEEgYgwgYUwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3Nw
'' SIG '' LmRpZ2ljZXJ0LmNvbTBdBggrBgEFBQcwAoZRaHR0cDov
'' SIG '' L2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1
'' SIG '' c3RlZEc0VGltZVN0YW1waW5nUlNBNDA5NlNIQTI1NjIw
'' SIG '' MjVDQTEuY3J0MF8GA1UdHwRYMFYwVKBSoFCGTmh0dHA6
'' SIG '' Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0
'' SIG '' ZWRHNFRpbWVTdGFtcGluZ1JTQTQwOTZTSEEyNTYyMDI1
'' SIG '' Q0ExLmNybDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglg
'' SIG '' hkgBhv1sBwEwDQYJKoZIhvcNAQELBQADggIBAGUqrfEc
'' SIG '' JwS5rmBB7NEIRJ5jQHIh+OT2Ik/bNYulCrVvhREafBYF
'' SIG '' 0RkP2AGr181o2YWPoSHz9iZEN/FPsLSTwVQWo2H62yGB
'' SIG '' vg7ouCODwrx6ULj6hYKqdT8wv2UV+Kbz/3ImZlJ7YXwB
'' SIG '' D9R0oU62PtgxOao872bOySCILdBghQ/ZLcdC8cbUUO75
'' SIG '' ZSpbh1oipOhcUT8lD8QAGB9lctZTTOJM3pHfKBAEcxQF
'' SIG '' oHlt2s9sXoxFizTeHihsQyfFg5fxUFEp7W42fNBVN4ue
'' SIG '' LaceRf9Cq9ec1v5iQMWTFQa0xNqItH3CPFTG7aEQJmmr
'' SIG '' JTV3Qhtfparz+BW60OiMEgV5GWoBy4RVPRwqxv7Mk0Sy
'' SIG '' 4QHs7v9y69NBqycz0BZwhB9WOfOu/CIJnzkQTwtSSpGG
'' SIG '' hLdjnQ4eBpjtP+XB3pQCtv4E5UCSDag6+iX8MmB10nfl
'' SIG '' dPF9SVD7weCC3yXZi/uuhqdwkgVxuiMFzGVFwYbQsiGn
'' SIG '' oa9F5AaAyBjFBtXVLcKtapnMG3VH3EmAp/jsJ3FVF3+d
'' SIG '' 1SVDTmjFjLbNFZUWMXuZyvgLfgyPehwJVxwC+UpX2MSe
'' SIG '' y2ueIu9THFVkT+um1vshETaWyQo8gmBto/m3acaP9Qsu
'' SIG '' Lj3FNwFlTxq25+T4QwX9xa6ILs84ZPvmpovq90K8eWyG
'' SIG '' 2N01c4IhSOxqt81nMIIGtDCCBJygAwIBAgIQDcesVwX/
'' SIG '' IZkuQEMiDDpJhjANBgkqhkiG9w0BAQsFADBiMQswCQYD
'' SIG '' VQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkw
'' SIG '' FwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQD
'' SIG '' ExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMjUw
'' SIG '' NTA3MDAwMDAwWhcNMzgwMTE0MjM1OTU5WjBpMQswCQYD
'' SIG '' VQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4x
'' SIG '' QTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGlt
'' SIG '' ZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0Ex
'' SIG '' MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
'' SIG '' tHgx0wqYQXK+PEbAHKx126NGaHS0URedTa2NDZS1mZaD
'' SIG '' LFTtQ2oRjzUXMmxCqvkbsDpz4aH+qbxeLho8I6jY3xL1
'' SIG '' IusLopuW2qftJYJaDNs1+JH7Z+QdSKWM06qchUP+AbdJ
'' SIG '' gMQB3h2DZ0Mal5kYp77jYMVQXSZH++0trj6Ao+xh/AS7
'' SIG '' sQRuQL37QXbDhAktVJMQbzIBHYJBYgzWIjk8eDrYhXDE
'' SIG '' pKk7RdoX0M980EpLtlrNyHw0Xm+nt5pnYJU3Gmq6bNMI
'' SIG '' 1I7Gb5IBZK4ivbVCiZv7PNBYqHEpNVWC2ZQ8BbfnFRQV
'' SIG '' ESYOszFI2Wv82wnJRfN20VRS3hpLgIR4hjzL0hpoYGk8
'' SIG '' 1coWJ+KdPvMvaB0WkE/2qHxJ0ucS638ZxqU14lDnki7C
'' SIG '' coKCz6eum5A19WZQHkqUJfdkDjHkccpL6uoG8pbF0LJA
'' SIG '' QQZxst7VvwDDjAmSFTUms+wV/FbWBqi7fTJnjq3hj0Xb
'' SIG '' Qcd8hjj/q8d6ylgxCZSKi17yVp2NL+cnT6Toy+rN+nM8
'' SIG '' M7LnLqCrO2JP3oW//1sfuZDKiDEb1AQ8es9Xr/u6bDTn
'' SIG '' YCTKIsDq1BtmXUqEG1NqzJKS4kOmxkYp2WyODi7vQTCB
'' SIG '' ZtVFJfVZ3j7OgWmnhFr4yUozZtqgPrHRVHhGNKlYzyjl
'' SIG '' roPxul+bgIspzOwbtmsgY1MCAwEAAaOCAV0wggFZMBIG
'' SIG '' A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFO9vU0rp
'' SIG '' 5AZ8esrikFb2L9RJ7MtOMB8GA1UdIwQYMBaAFOzX44LS
'' SIG '' cV1kTN8uZz/nupiuHA9PMA4GA1UdDwEB/wQEAwIBhjAT
'' SIG '' BgNVHSUEDDAKBggrBgEFBQcDCDB3BggrBgEFBQcBAQRr
'' SIG '' MGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2lj
'' SIG '' ZXJ0LmNvbTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2Vy
'' SIG '' dHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJv
'' SIG '' b3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDov
'' SIG '' L2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3Rl
'' SIG '' ZFJvb3RHNC5jcmwwIAYDVR0gBBkwFzAIBgZngQwBBAIw
'' SIG '' CwYJYIZIAYb9bAcBMA0GCSqGSIb3DQEBCwUAA4ICAQAX
'' SIG '' zvsWgBz+Bz0RdnEwvb4LyLU0pn/N0IfFiBowf0/Dm1wG
'' SIG '' c/Do7oVMY2mhXZXjDNJQa8j00DNqhCT3t+s8G0iP5kvN
'' SIG '' 2n7Jd2E4/iEIUBO41P5F448rSYJ59Ib61eoalhnd6ywF
'' SIG '' LerycvZTAz40y8S4F3/a+Z1jEMK/DMm/axFSgoR8n6c3
'' SIG '' nuZB9BfBwAQYK9FHaoq2e26MHvVY9gCDA/JYsq7pGdog
'' SIG '' P8HRtrYfctSLANEBfHU16r3J05qX3kId+ZOczgj5kjat
'' SIG '' VB+NdADVZKON/gnZruMvNYY2o1f4MXRJDMdTSlOLh0HC
'' SIG '' n2cQLwQCqjFbqrXuvTPSegOOzr4EWj7PtspIHBldNE2K
'' SIG '' 9i697cvaiIo2p61Ed2p8xMJb82Yosn0z4y25xUbI7GIN
'' SIG '' /TpVfHIqQ6Ku/qjTY6hc3hsXMrS+U0yy+GWqAXam4ToW
'' SIG '' d2UQ1KYT70kZjE4YtL8Pbzg0c1ugMZyZZd/BdHLiRu7h
'' SIG '' AWE6bTEm4XYRkA6Tl4KSFLFk43esaUeqGkH/wyW4N7Oi
'' SIG '' gizwJWeukcyIPbAvjSabnf7+Pu0VrFgoiovRDiyx3zEd
'' SIG '' mcif/sYQsfch28bZeUz2rtY/9TCA6TD8dC3JE3rYkrhL
'' SIG '' ULy7Dc90G6e8BlqmyIjlgp2+VqsS9/wQD7yFylIz0scm
'' SIG '' bKvFoW2jNrbM1pD2T7m3XDCCBY0wggR1oAMCAQICEA6b
'' SIG '' GI750C3n79tQ4ghAGFowDQYJKoZIhvcNAQEMBQAwZTEL
'' SIG '' MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IElu
'' SIG '' YzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEkMCIG
'' SIG '' A1UEAxMbRGlnaUNlcnQgQXNzdXJlZCBJRCBSb290IENB
'' SIG '' MB4XDTIyMDgwMTAwMDAwMFoXDTMxMTEwOTIzNTk1OVow
'' SIG '' YjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0
'' SIG '' IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEh
'' SIG '' MB8GA1UEAxMYRGlnaUNlcnQgVHJ1c3RlZCBSb290IEc0
'' SIG '' MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
'' SIG '' v+aQc2jeu+RdSjwwIjBpM+zCpyUuySE98orYWcLhKac9
'' SIG '' WKt2ms2uexuEDcQwH/MbpDgW61bGl20dq7J58soR0uRf
'' SIG '' 1gU8Ug9SH8aeFaV+vp+pVxZZVXKvaJNwwrK6dZlqczKU
'' SIG '' 0RBEEC7fgvMHhOZ0O21x4i0MG+4g1ckgHWMpLc7sXk7I
'' SIG '' k/ghYZs06wXGXuxbGrzryc/NrDRAX7F6Zu53yEioZldX
'' SIG '' n1RYjgwrt0+nMNlW7sp7XeOtyU9e5TXnMcvak17cjo+A
'' SIG '' 2raRmECQecN4x7axxLVqGDgDEI3Y1DekLgV9iPWCPhCR
'' SIG '' cKtVgkEy19sEcypukQF8IUzUvK4bA3VdeGbZOjFEmjNA
'' SIG '' vwjXWkmkwuapoGfdpCe8oU85tRFYF/ckXEaPZPfBaYh2
'' SIG '' mHY9WV1CdoeJl2l6SPDgohIbZpp0yt5LHucOY67m1O+S
'' SIG '' kjqePdwA5EUlibaaRBkrfsCUtNJhbesz2cXfSwQAzH0c
'' SIG '' lcOP9yGyshG3u3/y1YxwLEFgqrFjGESVGnZifvaAsPvo
'' SIG '' ZKYz0YkH4b235kOkGLimdwHhD5QMIR2yVCkliWzlDlJR
'' SIG '' R3S+Jqy2QXXeeqxfjT/JvNNBERJb5RBQ6zHFynIWIgnf
'' SIG '' fEx1P2PsIV/EIFFrb7GrhotPwtZFX50g/KEexcCPorF+
'' SIG '' CiaZ9eRpL5gdLfXZqbId5RsCAwEAAaOCATowggE2MA8G
'' SIG '' A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOzX44LScV1k
'' SIG '' TN8uZz/nupiuHA9PMB8GA1UdIwQYMBaAFEXroq/0ksuC
'' SIG '' MS1Ri6enIZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjB5Bggr
'' SIG '' BgEFBQcBAQRtMGswJAYIKwYBBQUHMAGGGGh0dHA6Ly9v
'' SIG '' Y3NwLmRpZ2ljZXJ0LmNvbTBDBggrBgEFBQcwAoY3aHR0
'' SIG '' cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
'' SIG '' QXNzdXJlZElEUm9vdENBLmNydDBFBgNVHR8EPjA8MDqg
'' SIG '' OKA2hjRodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGln
'' SIG '' aUNlcnRBc3N1cmVkSURSb290Q0EuY3JsMBEGA1UdIAQK
'' SIG '' MAgwBgYEVR0gADANBgkqhkiG9w0BAQwFAAOCAQEAcKC/
'' SIG '' Q1xV5zhfoKN0Gz22Ftf3v1cHvZqsoYcs7IVeqRq7IviH
'' SIG '' GmlUIu2kiHdtvRoU9BNKei8ttzjv9P+Aufih9/Jy3iS8
'' SIG '' UgPITtAq3votVs/59PesMHqai7Je1M/RQ0SbQyHrlnKh
'' SIG '' SLSZy51PpwYDE3cnRNTnf+hZqPC/Lwum6fI0POz3A8eH
'' SIG '' qNJMQBk1RmppVLC4oVaO7KTVPeix3P0c2PR3WlxUjG/v
'' SIG '' oVA9/HYJaISfb8rbII01YBwCA8sgsKxYoA5AY8WYIsGy
'' SIG '' WfVVa88nq2x2zm8jLfR+cWojayL/ErhULSd+2DrZ8LaH
'' SIG '' lv1b0VysGMNNn3O3AamfV6peKOK5lDGCA3wwggN4AgEB
'' SIG '' MH0waTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lD
'' SIG '' ZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2VydCBUcnVz
'' SIG '' dGVkIEc0IFRpbWVTdGFtcGluZyBSU0E0MDk2IFNIQTI1
'' SIG '' NiAyMDI1IENBMQIQCoDvGEuN8QWC0cR2p5V0aDANBglg
'' SIG '' hkgBZQMEAgEFAKCB0TAaBgkqhkiG9w0BCQMxDQYLKoZI
'' SIG '' hvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI1MDkxMTA3
'' SIG '' MjI1N1owKwYLKoZIhvcNAQkQAgwxHDAaMBgwFgQU3WIw
'' SIG '' rIYKLTBr2jixaHlSMAf7QX4wLwYJKoZIhvcNAQkEMSIE
'' SIG '' IHEHg97YtiEkz4cBrj/eoiPbPbSP25PWytZTzrWpDeZ3
'' SIG '' MDcGCyqGSIb3DQEJEAIvMSgwJjAkMCIEIEqgP6Is11yE
'' SIG '' xVyTj4KOZ2ucrsqzP+NtJpqjNPFGEQozMA0GCSqGSIb3
'' SIG '' DQEBAQUABIICACT693eW3o0FNQhzuw5O8oWE2MGMtKyv
'' SIG '' p8yG/l/I29VUgddJrhMeasHbsqBqbYxU+/wpbOhPQbTR
'' SIG '' 0kWeixD8+IbYSO4mAiI5xpnVsBHsVVzJtKdDSXWJb0GI
'' SIG '' B5s6pHomJisuVJtuM6CxMiJrxQFjhHOZkiCPwh7E3TeO
'' SIG '' j9jHOPdac6ll7jg/jKO5jzUfV/reJN5CYZqkJYvKwDuK
'' SIG '' 3i9i09313QqYihMSzyq/qUspxr3y44myrmPyVL+Pf38f
'' SIG '' BuZviGxMcFM9+wlt5HbrQNEWwxucr20GoFPjEXVhoX72
'' SIG '' h1nQnXUkq0FDo3x9ujhswTcZnyHSQXSIqH4bYREIBQzV
'' SIG '' j2OLFVN2ZoJc8nS6n0HAt/5eMGjt7Wx0/IgNWWDVcGF/
'' SIG '' Av6H6Kr+XB9Hmku8rP21KGdfJcwL+taY7ofm0sG9ctak
'' SIG '' 2yzqXak8HJ/vuT4Nhe312cPZco85inXJfNUoRDjsQox5
'' SIG '' BsW2ohzLiO9xlHWsNfpucwF3EY+TlBnbeHQ6VnTeGKXI
'' SIG '' 0C+RAx3aGb9H0NlXm1Gni87haShbHjizpH/Oqeh+IYy6
'' SIG '' PRIEDovSKkd8wruRsEEORf0x5lekDohpd4TH9y4zfwP3
'' SIG '' gzB2p7btzOP5HpHK2VHnevaL5FuENxjndh9De+TjMG2W
'' SIG '' Rt/QbKSAct6mSrv08WmHHGd8AniwJJfkMj4u
'' SIG '' End signature block