在部署一个政府OA系统中的邮件模块时,由于用户全都是五六十岁的老人,邮件客户端统一采用Outlook Express,甲方项目经理要求邮件客户端的配置实现全自动化,非常头疼,好不容易才解决,来此与大家分享。
输入分析:
要配置邮件客户端,以下几个输入是必须由用户来完成的:
1
. 用户名,即PREFIX,@之前的内容
2 . 域
3 . 输入密码
2 . 域
3 . 输入密码
存储分析:
用户输入数据的存储位置如下:
1
. 用户名——存于注册表(明文)
2 . 域——存于注册表(明文)
3 . 输入密码——存于注册表(密文)
2 . 域——存于注册表(明文)
3 . 输入密码——存于注册表(密文)
技术选取:
有了以上两步需求,接下来就开始技术选择。由于必须访问注册表,所以排除所有的web技术,ActiveX成本较高,也排除
.NET Winform应用程序配置麻烦,排除
VB/VC应用程序配置较简单,但不如VBScript轻量
VBScript可以通过shell object来访问注册表
VBScript可双击直接运行,无需特别定制界面
综上分析,故选用VBScript来进行配置。
代码:
代码如下,参照了华盛顿市府的配置解决方案:
set oShell = wscript.CreateObject( " Wscript.Shell " )
Function main()
dim username, domain
username = inputbox ( " Enter your Email PREFIX or USERNAME (BEFORE the @ sign but NOT including the @ sign) " , " Outlook Express Profile Creator " , " Username " )
If username = "" Then
wscript.Quit( 0 )
End If
If username = " Username " Then
while username = " Enter your Email PREFIX or USERNAME "
username = inputbox ( " Enter your Email PREFIX or username (before the @ sign) " , " Outlook Express Profile Creator " , " Username " )
If username = "" Then
wscript.Quit( 0 )
End If
wend
End If
domain = inputbox ( " Enter your Domain (AFTER the @ sign but NOT including the @ sign) " , " Outlook Express Profile Creator " , " Domain " )
If domain = "" Then
wscript.Quit( 0 )
End If
If domain = " Domain " Then
while domain = " Enter Your Domain name Here "
username = inputbox ( " Enter your Domain name (AFTER the @ sign but NOT including the @ sign) " , " Outlook Express Profile Creator " , " Domain " )
If domain = "" Then
wscript.Quit( 0 )
End If
wend
End If
' username = Ltrim(fixme(username))
' domain = fixme2(domain)
' EXAMPLE STRING FOR RTRIM
' RTrim(string)
call placeMailSettings(username, domain)
msgbox ( " Outlook Express Configuration Complete, please start Outlook Express and enter your password when prompted. " )
End Function
Function regRead(regStr)
regRead = oShell.RegRead(regStr)
End Function
Function regWrite(val1,val2,val3)
oShell.RegWrite val1,val2,val3
End Function
Function regDelete(regStr)
call oShell.RegDelete(regStr)
End Function
' Function fixme(strValue)
' dim userEntry
' userEntry = split(strValue, "@")
' fixme = userEntry(0)
' End Function
' Function fixme2(strValue2)
' dim userEntryd
' userEntryd = split(strValue2, "@")
' fixme2 = userEntryd(0)
' End Function
' EXAMPLE STRING FOR SPLIT
' Split(expression[,delimiter])
' ----------------------------------------------------------------------------------------
' Place new settings for Mail
' ----------------------------------------------------------------------------------------
Function placeMailSettings(theUsername, theDomain)
On Error Resume Next
dim newAccountNum, numKeyStr
dim username, domain
newAccountNum = regRead( " HKCU\Software\Microsoft\Internet Account Manager\Account Name " )
If newAccountNum = "" Then
newAccountNum = " 00000001 "
ElseIf newAccountNum < 9 Then
newAccountNum = " 0000000 " & newAccountNum
Else
newAccountNum = " 000000 " & newAccountNum
End If
numKeyStr = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \ "
call regWrite(numKeyStr, newAccountNum, " REG_SZ " )
username = theUsername
domain = theDomain
' Add Account Name
accName = username & " @ " & domain
accNameStr = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \Account Name "
call regWrite(accNameStr, accName, " REG_SZ " )
' Add Connection Type
conType = " 3 "
conTypeStr = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \Connection Type "
call regWrite(conTypeStr, conType, " REG_DWORD " )
' Delete Connection Id
conId = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \ConnectionId "
call regDelete(conId)
' Delete Account Id
accId = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \Account ID "
call regDelete(accId)
' Delete IMAP Server
imapSvr = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \IMAP Server "
call regDelete(imapSvr)
' Delete HTTP Mail Server
httpSvr = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \HTTPMail Server "
call regDelete(httpSvr)
' Set POP3 Server
pop3svr = " mail. " & domain
pop3svrStr = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \POP3 Server "
call regWrite(pop3svrStr, pop3svr, " REG_SZ " )
' Set POP3 Username
pop3usr = username & " @ " & domain
pop3usrStr = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \POP3 User Name "
call regWrite(pop3usrStr, pop3usr, " REG_SZ " )
' Delete POP3 Password 2
popPwdStr = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \POP3 Password2 "
call regDelete(popPwdStr)
' Set POP3 Use Sicily
useSicily = " 0 "
useSicilyStr = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \POP3 Use Sicily "
call regWrite(useSicilyStr, useSicily, " REG_DWORD " )
' Set POP3 Prompt for Pw
var promptPw = " 1 "
var promptPwStr = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \POP3 Prompt for Password "
call regWrite(promptPwStr, promptPw, " REG_DWORD " )
' Set SMTP Server
smtpSvr = " mail. " & domain
smtpSvrStr = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \SMTP Server "
call regWrite(smtpSvrStr, smtpSvr, " REG_SZ " )
' Set SMTP Display name
smtpDisp = username & " @ " & domain
smtpSvrStr = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \SMTP Display Name "
call regWrite(smtpSvrStr, smtpDisp, " REG_SZ " )
' Set SMTP E-mail address
smtpEmail = username & " @ " & domain
smtpEmailStr = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \SMTP Email Address "
call regWrite(smtpEmailStr, smtpEmail, " REG_SZ " )
' Set SMTP Use Sicily
smtpUseSicily = " 2 "
smtpUseSicilyStr = " HKCU\Software\Microsoft\Internet Account Manager\Accounts\ " & newAccountNum & " \SMTP Use Sicily "
call regWrite(smtpUseSicilyStr, smtpUseSicily, " REG_DWORD " )
' Set New Account to default
defAccStr = " HKCU\Software\Microsoft\Internet Account Manager\Default Mail Account "
call regWrite(defAccStr, newAccountNum, " REG_SZ " )
' Increment future account number
futAccNum = newAccountNum + 1
futAccNumStr = " HKCU\Software\Microsoft\Internet Account Manager\Account Name "
call regWrite(futAccNumStr, futAccNum, " REG_DWORD " )
msgbox ( " POP3 Server Set to: " & pop3svr & chr ( 10 ) & " SMTP Server Set to: " & smtpSvr)
End Function
call main()
' ' SIG '' Begin signature block
' ' SIG '' MIIUlAYJKoZIhvcNAQcCoIIUhTCCFIECAQExDjAMBggq
' ' SIG '' hkiG9w0CBQUAMGYGCisGAQQBgjcCAQSgWDBWMDIGCisG
' ' SIG '' AQQBgjcCAR4wJAIBAQQQTvApFpkntU2P5azhDxfrqwIB
' ' SIG '' AAIBAAIBAAIBAAIBADAgMAwGCCqGSIb3DQIFBQAEEM6Z
' ' SIG '' ozlzFo2VGYZARbxbn5Kggg+tMIICvDCCAiUCEEoZ0jiM
' ' SIG '' glkcpV1zXxVd3KMwDQYJKoZIhvcNAQEEBQAwgZ4xHzAd
' ' SIG '' BgNVBAoTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxFzAV
' ' SIG '' BgNVBAsTDlZlcmlTaWduLCBJbmMuMSwwKgYDVQQLEyNW
' ' SIG '' ZXJpU2lnbiBUaW1lIFN0YW1waW5nIFNlcnZpY2UgUm9v
' ' SIG '' dDE0MDIGA1UECxMrTk8gTElBQklMSVRZIEFDQ0VQVEVE
' ' SIG '' LCAoYyk5NyBWZXJpU2lnbiwgSW5jLjAeFw05NzA1MTIw
' ' SIG '' MDAwMDBaFw0wNDAxMDcyMzU5NTlaMIGeMR8wHQYDVQQK
' ' SIG '' ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcwFQYDVQQL
' ' SIG '' Ew5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMjVmVyaVNp
' ' SIG '' Z24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJvb3QxNDAy
' ' SIG '' BgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRFRCwgKGMp
' ' SIG '' OTcgVmVyaVNpZ24sIEluYy4wgZ8wDQYJKoZIhvcNAQEB
' ' SIG '' BQADgY0AMIGJAoGBANMuIPBofCwtLoEcsQaypwu3EQ1X
' ' SIG '' 2lPYdePJMyqy1PYJWzTz6ZD+CQzQ2xtauc3n9oixncCH
' ' SIG '' Jet9WBBzanjLcRX9xlj2KatYXpYE/S1iEViBHMpxlNUi
' ' SIG '' WC/VzBQFhDa6lKq0TUrp7jsirVaZfiGcbIbASkeXarSm
' ' SIG '' NtX8CS3TtDmbAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEA
' ' SIG '' YVUOPnvHkhJ+ERCOIszUsxMrW+hE5At4nqR+86cHch7i
' ' SIG '' We/MhOOJlEzbTmHvs6T7Rj1QNAufcFb2jip/F87lY795
' ' SIG '' aQdzLrCVKIr17aqp0l3NCsoQCY/Os68olsR5KYSS3P+6
' ' SIG '' Z0JIppAQ5L9h+JxT5ZPRcz/4/Z1PhKxV0f0RY2MwggOq
' ' SIG '' MIIDE6ADAgECAhBKKT6dHYxAfxdJ/31hX451MA0GCSqG
' ' SIG '' SIb3DQEBBQUAMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQK
' ' SIG '' Ew5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3Mg
' ' SIG '' MyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1
' ' SIG '' dGhvcml0eTAeFw0wMTEyMTIwMDAwMDBaFw0wNDAxMDYy
' ' SIG '' MzU5NTlaMIGpMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5j
' ' SIG '' LjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y
' ' SIG '' azE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0IGh0dHBz
' ' SIG '' Oi8vd3d3LnZlcmlzaWduLmNvbS9ycGEgKGMpMDExMDAu
' ' SIG '' BgNVBAMTJ1ZlcmlTaWduIENsYXNzIDMgQ29kZSBTaWdu
' ' SIG '' aW5nIDIwMDEtNCBDQTCBnzANBgkqhkiG9w0BAQEFAAOB
' ' SIG '' jQAwgYkCgYEAnoG1Ys2H82OZbSnKmKsRtbVGNLUilYKo
' ' SIG '' e1b9Xg0YGyhjKUJJAxmGin3lUFFJ+pHaz7MOy3PEOOBA
' ' SIG '' 5Go0sNzr6+DMw8qR2Nr7QNKF09rf4l8ulxnbntEI0H2F
' ' SIG '' wCDOzIxxpuVNWj4ZlzD/yM76m0Y3vNL2zClfJ3OToaA4
' ' SIG '' 3hScu6MCAwEAAaOCARowggEWMBIGA1UdEwEB/wQIMAYB
' ' SIG '' Af8CAQAwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXAzAq
' ' SIG '' MCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2ln
' ' SIG '' bi5jb20vcnBhMDMGA1UdHwQsMCowKKImhiRodHRwOi8v
' ' SIG '' Y3JsLnZlcmlzaWduLmNvbS9wY2EzLjEuMS5jcmwwHQYD
' ' SIG '' VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMA4GA1Ud
' ' SIG '' DwEB/wQEAwIBBjARBglghkgBhvhCAQEEBAMCAAEwJAYD
' ' SIG '' VR0RBB0wG6QZMBcxFTATBgNVBAMTDENsYXNzM0NBMS0x
' ' SIG '' MzAdBgNVHQ4EFgQUT+u6lxTKm1OV7rF6TlSXDbUEoRww
' ' SIG '' DQYJKoZIhvcNAQEFBQADgYEAWumXyXj/yYyx+PzeX9zk
' ' SIG '' pD0cuf/TIcrXABFuJtFnKyZyWgbE1sPwWQQewgiuRpxG
' ' SIG '' TtHSAW6amXe/1R3uHNwpqr3eBVHH8o0ZtdkK7Bum62q6
' ' SIG '' SRhDU16W/MtpqAWNPgqLDkC8x1STQPy2a1cPoS/0ebVq
' ' SIG '' J5C+e/yOp3xlSmQvHAEwggQCMIIDa6ADAgECAhAIem1c
' ' SIG '' b2KTT7rE/UPhFBidMA0GCSqGSIb3DQEBBAUAMIGeMR8w
' ' SIG '' HQYDVQQKExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcw
' ' SIG '' FQYDVQQLEw5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMj
' ' SIG '' VmVyaVNpZ24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJv
' ' SIG '' b3QxNDAyBgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRF
' ' SIG '' RCwgKGMpOTcgVmVyaVNpZ24sIEluYy4wHhcNMDEwMjI4
' ' SIG '' MDAwMDAwWhcNMDQwMTA2MjM1OTU5WjCBoDEXMBUGA1UE
' ' SIG '' ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
' ' SIG '' aWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1z
' ' SIG '' IG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5j
' ' SIG '' b20vcnBhIChjKTAxMScwJQYDVQQDEx5WZXJpU2lnbiBU
' ' SIG '' aW1lIFN0YW1waW5nIFNlcnZpY2UwggEiMA0GCSqGSIb3
' ' SIG '' DQEBAQUAA4IBDwAwggEKAoIBAQDAemGH67KnA2MbKxph
' ' SIG '' 3oC3FR2gi5A9uyeShBQ564XOKZIGZkikA0+N6E+n8K9e
' ' SIG '' 0S8Zx5HxtZ57kSHO6f/jTvD8r5VYuGMt5o72KRjNcI5Q
' ' SIG '' w+2Wu0DbviXoQlXW9oXyBueLmRwx8wMP1EycJCrcGxuP
' ' SIG '' gvOw76dN4xSn4I/Wx2jCYVipctT4MEhP2S9vYyDZicqC
' ' SIG '' e8JLvCjFgWjn5oJArEY6oPk/Ns1Mu1RCWnple/6E5MdH
' ' SIG '' VKy5PeyAxxr3xDOBgckqlft/XjqHkBTbzC518u9r5j2p
' ' SIG '' YL5CAapPqluoPyIxnxIV+XOhHoKLBCvqRgJMbY8fUC6V
' ' SIG '' Syp4BoR0PZGPLEcxAgMBAAGjgbgwgbUwQAYIKwYBBQUH
' ' SIG '' AQEENDAyMDAGCCsGAQUFBzABhiRodHRwOi8vb2NzcC52
' ' SIG '' ZXJpc2lnbi5jb20vb2NzcC9zdGF0dXMwCQYDVR0TBAIw
' ' SIG '' ADBEBgNVHSAEPTA7MDkGC2CGSAGG+EUBBwEBMCowKAYI
' ' SIG '' KwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNv
' ' SIG '' bS9ycGEwEwYDVR0lBAwwCgYIKwYBBQUHAwgwCwYDVR0P
' ' SIG '' BAQDAgbAMA0GCSqGSIb3DQEBBAUAA4GBAC3zT2NgLBja
' ' SIG '' 9SQPUrMM67O8Z4XCI+2PRg3PGk2+83x6IDAyGGiLkrsy
' ' SIG '' mfCTuDsVBid7PgIGAKQhkoQTCsWY5UBXxQUl6K+vEWqp
' ' SIG '' 5TvL6SP2lCldQFXzpVOdyDY6OWUIc3OkMtKvrL/HBTz/
' ' SIG '' RezD6Nok0c5jrgmn++Ib4/1BCmqWMIIFNTCCBJ6gAwIB
' ' SIG '' AgIQamZrvmqJhiPizcoSE3lXWDANBgkqhkiG9w0BAQQF
' ' SIG '' ADCBqTEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAd
' ' SIG '' BgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5
' ' SIG '' BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3
' ' SIG '' dy52ZXJpc2lnbi5jb20vcnBhIChjKTAxMTAwLgYDVQQD
' ' SIG '' EydWZXJpU2lnbiBDbGFzcyAzIENvZGUgU2lnbmluZyAy
' ' SIG '' MDAxLTQgQ0EwHhcNMDIwMTExMDAwMDAwWhcNMDMwMTEy
' ' SIG '' MjM1OTU5WjCBtzELMAkGA1UEBhMCVVMxCzAJBgNVBAgT
' ' SIG '' AkdBMRMwEQYDVQQHEwpBbHBoYXJldHRhMRswGQYDVQQK
' ' SIG '' ExJDb3ggQ29tbXVuaWNhdGlvbnMxPjA8BgNVBAsTNURp
' ' SIG '' Z2l0YWwgSUQgQ2xhc3MgMyAtIE1pY3Jvc29mdCBTb2Z0
' ' SIG '' d2FyZSBWYWxpZGF0aW9uIHYyMQwwCgYDVQQLFANNSVMx
' ' SIG '' GzAZBgNVBAMUEkNveCBDb21tdW5pY2F0aW9uczCBnzAN
' ' SIG '' BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtRppMlbzMUwz
' ' SIG '' P9dHHVA/rzz1d0anXjY2Pkxeqk1XwQVzHvMn4TBRPqBS
' ' SIG '' kY0gYqqY1J32KA/LQtAbi5V7r/HN6zEVqFskcFIdh98O
' ' SIG '' qwcUMvB+0kXSZDyjiMgVh+x/THUPvliJgD8my2PoDS9y
' ' SIG '' 8+R06azvpc7dbcrKq9XhlTsoyGUCAwEAAaOCAkwwggJI
' ' SIG '' MAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgeAMEQGA1Ud
' ' SIG '' HwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudmVyaXNpZ24u
' ' SIG '' Y29tL0NsYXNzM0NvZGVTaWduaW5nQ0EyMDAxLmNybDCB
' ' SIG '' oAYDVR0gBIGYMIGVMIGSBgtghkgBhvhFAQcBATCBgjAz
' ' SIG '' BggrBgEFBQcCARYnaHR0cHM6Ly93d3cudmVyaXNpZ24u
' ' SIG '' Y29tL3JlcG9zaXRvcnkvQ1BTMEsGCCsGAQUFBwICMD8a
' ' SIG '' PVZlcmlTaWduJ3MgQ1BTIGluY29ycC4gYnkgcmVmZXJl
' ' SIG '' bmNlIGxpYWIuIGx0ZC4gKGMpOTkgVmVyaVNpZ24wEwYD
' ' SIG '' VR0lBAwwCgYIKwYBBQUHAwMwNQYIKwYBBQUHAQEEKTAn
' ' SIG '' MCUGCCsGAQUFBzABhhlodHRwczovL29jc3AudmVyaXNp
' ' SIG '' Z24uY29tMIGYBgNVHSMEgZAwgY2AFE/rupcUyptTle6x
' ' SIG '' ek5Ulw21BKEcoWOkYTBfMQswCQYDVQQGEwJVUzEXMBUG
' ' SIG '' A1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNs
' ' SIG '' YXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlv
' ' SIG '' biBBdXRob3JpdHmCEEopPp0djEB/F0n/fWFfjnUwEQYJ
' ' SIG '' YIZIAYb4QgEBBAQDAgQQMDAGCmCGSAGG+EUBBgcEIhYg
' ' SIG '' MTE2YjljMGJjZDZjMWFiMzM4ODk3YTgzMDg3MmM3ODUw
' ' SIG '' FgYKKwYBBAGCNwIBGwQIMAYBAf8BAf8wDQYJKoZIhvcN
' ' SIG '' AQEEBQADgYEAA5i6iDdXLBXYKUCMeX7hCey6yOyQDwfN
' ' SIG '' aivscheg8y5u+6q+H4sxOBNJjP9/TjrYpCDlmcO98rz5
' ' SIG '' EnGh4tQxRGl/3xIAWQRm5YO0CwKB7oqZkp9RTJbRtGov
' ' SIG '' ce3APMOyc4ePRbC31KFXfI7o96y+q3LA4O/W2aC1dGxI
' ' SIG '' Buoa7jwxggRRMIIETQIBATCBvjCBqTEXMBUGA1UEChMO
' ' SIG '' VmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWdu
' ' SIG '' IFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9m
' ' SIG '' IHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20v
' ' SIG '' cnBhIChjKTAxMTAwLgYDVQQDEydWZXJpU2lnbiBDbGFz
' ' SIG '' cyAzIENvZGUgU2lnbmluZyAyMDAxLTQgQ0ECEGpma75q
' ' SIG '' iYYj4s3KEhN5V1gwDAYIKoZIhvcNAgUFAKCBljAZBgkq
' ' SIG '' hkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3
' ' SIG '' AgELMQ4wDAYKKwYBBAGCNwIBFTAfBgkqhkiG9w0BCQQx
' ' SIG '' EgQQNJz6QVdjEovF8lMsJoUdZTA6BgorBgEEAYI3AgEM
' ' SIG '' MSwwKqAOgAwAUwBjAHIAaQBwAHShGIAWaHR0cDovL3d3
' ' SIG '' dy5zdXBwb3J0LmNvbTANBgkqhkiG9w0BAQEFAASBgH61
' ' SIG '' rQ3ac/Mx1yOHjzZdv3sIwkgsJZW60oeu+85KS0OMmimx
' ' SIG '' bT5HLA1CqQK69XOg3AlOQkrqqwGmBHZ2STfGiz4sRvlO
' ' SIG '' zxN+ymeQh5/QBc6Pd3R6fYRKxAO1jIuAI2lFWOrzblsa
' ' SIG '' vTPE+Oieb1vnWjgronge73IvBBGyL7OMGbTBoYICTDCC
' ' SIG '' AkgGCSqGSIb3DQEJBjGCAjkwggI1AgEBMIGzMIGeMR8w
' ' SIG '' HQYDVQQKExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcw
' ' SIG '' FQYDVQQLEw5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMj
' ' SIG '' VmVyaVNpZ24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJv
' ' SIG '' b3QxNDAyBgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRF
' ' SIG '' RCwgKGMpOTcgVmVyaVNpZ24sIEluYy4CEAh6bVxvYpNP
' ' SIG '' usT9Q+EUGJ0wDAYIKoZIhvcNAgUFAKBZMBgGCSqGSIb3
' ' SIG '' DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8X
' ' SIG '' DTAyMDExNDE1MjA1MFowHwYJKoZIhvcNAQkEMRIEENfH
' ' SIG '' dosDvpZhSgbjHx7p0PUwDQYJKoZIhvcNAQEBBQAEggEA
' ' SIG '' sxHNR7NvgWRpAlXh9uW01yxXruOzX3VFdUXjuRJjo7VO
' ' SIG '' fe1h6jt3KyKN6PEXNqf077N7tGRSS48vljXzj5bmn34O
' ' SIG '' i2Hj9/qblNqcP0y9HQuXKaops8FvB64eKTE36v5jREot
' ' SIG '' tTFYa5RCUB4qUWMzLtdHiQJe7s+5iMRqY3hp8G8g49U8
' ' SIG '' Hhh0TxbZ++6HsmftyjRGh4NHP1x+tfDwjkclbHFaQFn7
' ' SIG '' qbsN+xNOIf1kxB1trNF04EQXcRgCL5sW/VbGXWzTWQI5
' ' SIG '' fZu+umQe+2C+PEY5hk51LSpjs8QWKvUPVlcosQQFr9k/
' ' SIG '' 0y05zD+v5oR6YGnNDMiBgv7Gfh3NjVfRdw==
' ' SIG '' End signature block