From e5e7e61ca7dd31a6ffc66fc58f250a8082eb2480 Mon Sep 17 00:00:00 2001 From: luc Date: Fri, 28 Aug 2026 16:03:55 +0200 Subject: [PATCH] db settings update --- EpdBase3/Epd3Base.cpp | 95 +++--- SyncToSqlsrv7.ps1 | 205 +++++++++++++ eDosLocal/UpdateLocal.sql | 145 ++++++--- eDosStation.sln | 53 +++- eDosStation/EntryBadge.xaml.cs | 2 +- eDosStation/Properties/AssemblyInfo.cs | 4 +- eDosStation/Resources/BuildDate.txt | 2 +- eDosStation/Settings.xaml | 15 +- eDosStation/Settings.xaml.cs | 7 +- eDosStation/Station.cs | 33 +- scripts/DeployPSModules.ps1 | 403 ++++++++++++------------- scripts/Downgrader.ps1 | 224 ++++++++++++++ scripts/Upgrader.ps1 | 147 +++++++-- scripts/installatie.ps1 | 24 +- scripts/installatie2.ps1 | 24 +- 15 files changed, 1018 insertions(+), 365 deletions(-) create mode 100644 scripts/Downgrader.ps1 diff --git a/EpdBase3/Epd3Base.cpp b/EpdBase3/Epd3Base.cpp index c0a88dc..d83f6aa 100644 --- a/EpdBase3/Epd3Base.cpp +++ b/EpdBase3/Epd3Base.cpp @@ -373,8 +373,10 @@ int Epd3Base::Epd3U::StartDiscover(int tokentimeout) handles[1] = hCancel; Dll3RV = WaitForMultipleObjects(2, handles, false , tokentimeout); - if (Dll3RV == WAIT_OBJECT_0) + if (Dll3RV == WAIT_OBJECT_0) { + DiscoverError = DiscoverErrorNone; rv = 1; //ok was set + } else if (Dll3RV == WAIT_OBJECT_0+1) { DiscoverError = DiscoverErrorCancel; rv = 1; //cancel @@ -427,6 +429,11 @@ int Epd3Base::Epd3U::ReOpenDev() { Dll3RV = Connect3(epdComsHandle, Epd, true); OutputDebugStringA("**** ReOpen ****\n"); + if (Dll3RV) { + Sleep(100); + Dll3RV = Connect3(epdComsHandle, Epd, true); + } + DebugWrite("**** Reopen v %d ****\n", Dll3RV(, HardVersionMinor);); } else { OutputDebugStringA("**** ReOpen no epdComsHandle ****\n"); @@ -619,10 +626,12 @@ void WINAPI ReadStatusCompletion(CommsHandle hComms, CompletionToken token) int Epd3Base::Epd3U::ReadStatusOnly() { + EPDStep = EpdSteps::StepReadStatus; int rv = 0; ResetEvent(hCompletion); SetFunctionReturnValue(eFunctions::ReadStatus, 0); current->StatusDecoded = false; + if (!isConnected) rv = ReOpenDev(); token = BeginReadStatus(epdComsHandle, ReadStatusCompletion); rv = CommitAndSetRV(); @@ -672,6 +681,7 @@ int Epd3Base::Epd3U::ReadStatus(bool onlyStatus) memset(&epd3status, 0, sizeof(StatusData_t)); int rv2; + if (!isConnected) rv = ReOpenDev(); /*step = 1; SetFunctionReturnValue(eFunctions::EpdOnOff, 0); token = BeginEpdOnOff(epdComsHandle, 1, nullptr); @@ -685,6 +695,16 @@ int Epd3Base::Epd3U::ReadStatus(bool onlyStatus) if (!rv) rv = EndReadStatus(epdComsHandle, token, &epd3status); rv2 = SetEndReturnValue(rv); + + if (rv < 0) { + if (rv==r_ErrorNotConnected) rv = ReOpenDev(); + token = BeginReadStatus(epdComsHandle, nullptr); + rv = CommitAndSetRV(); + if (!rv) + rv = EndReadStatus(epdComsHandle, token, &epd3status); + rv2 = SetEndReturnValue(rv); + } + current->StatusDecoded = false; if (rv != 0) { EPDStepResult = EpdStepResults::Error; @@ -847,6 +867,7 @@ int Epd3Base::Epd3U::ConnectAndStatus(int tokenSourceTimeout) ResetStepReturnValues(); if (CommsInitialized == 0) StartCom(); if (CommsInitialized) { + SetFunctionReturnValue(fStartDiscover,0); EPDStep = EpdSteps::StepDiscovering; dllStatus = StartDiscover(tokenSourceTimeout); @@ -858,12 +879,11 @@ int Epd3Base::Epd3U::ConnectAndStatus(int tokenSourceTimeout) if (dllStatus != 1) { rv = 1; //Connect error - EPDStepResult = EpdStepResults::Error; } else if (DeviceCount < 1) { rv = 2; - Error = r_OperationTimeout; + Error = r_OperationTimeout; //65527 EPDStepResult = EpdStepResults::Error; } else if (isMK3) { @@ -1415,6 +1435,7 @@ WORD Epd3Base::Epd3U::PrepareForIssue() EPDStepResult = EpdStepResults::OK; OutputDebugStringA("**** After clear ****\n"); if (isConnected && epdComsHandle) Disconnect(epdComsHandle); + isConnected = false; Sleep(SleepAfterClear); if (progressCallback) progressCallback(EPDStep, EPDStepResult); return rv; @@ -1557,7 +1578,13 @@ WORD Epd3Base::Epd3U::WriteWearer() { SetFunctionReturnValue(eFunctions::SetBaselineCounters,0); token = BeginSetBaselineCounters(epdComsHandle, nullptr); r = CommitAndEnd2RV(EndSetBaselineCounters, token); - //r = Commit3(epdComsHandle); SetCommitReturnValue(r); r = EndSetBaselineCounters(epdComsHandle, token); SetEndReturnValue(r); + + if (r == r_ErrorNotConnected) { + ReOpenDev(); + token = BeginSetBaselineCounters(epdComsHandle, nullptr); + r = CommitAndEnd2RV(EndSetBaselineCounters, token); + } + if (r != 0) goto error; @@ -1608,7 +1635,7 @@ WORD Epd3Base::Epd3U::Issue(bool PrepareDone) //normaal is preparedone=tru r = 0; if (!PrepareDone) { - r = PrepareForIssue(); + r = PrepareForIssue(); if (r) EPDStepResult = EpdStepResults::Error; goto error; @@ -1948,16 +1975,19 @@ error: int Epd3Base::Epd3U::WriteConfig(void) { + bool isAdmin = false; if (port == 0 || WriteConfig32 == 0) return 1; int32_t r = 0; ECLen = 32; DebugWrite("**** WriteCfg v %d.%d ****\n", HardVersion, HardVersionMinor); + r = ReOpenDev(); // Become admin SetFunctionReturnValue(eFunctions::WriteAccessLevelAdmin,0); token = BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Admin, EC, ECLen, nullptr); r = CommitAndEnd2RV(EndWriteAccessLevel,token); if (!r) { + isAdmin=true; displayIds = new QuickAccessDisplay_t[6]{ { 0,0x0021 }, { 1,0x0022 }, @@ -2038,24 +2068,19 @@ int Epd3Base::Epd3U::WriteConfig(void) if (!r) { //AlarmConfiguration if (isBG) { - const uint8_t alarmConfigLen = 14; + const uint8_t alarmConfigLen = 10; alarmConfigIds = new AlarmConfig_t[alarmConfigLen]{ - { (AlarmIds)6,0,0x0000,0x1884,60 }, - { (AlarmIds)8,0,0x0000,0x9884,60 }, - { (AlarmIds)5,0,0x0000,0x9CA4,60 }, - { (AlarmIds)4,0,0x0000,0x9CC7,60 }, - { (AlarmIds)9,0,0x0000,0x9CA5,60 }, - { (AlarmIds)7,0,0x0000,0x1884,60 }, { (AlarmIds)0,0,0x0000,0x9CC1,60 }, { (AlarmIds)1,0,0x0000,0x1884,60 }, { (AlarmIds)2,0,0x0000,0x9CC7,60 }, { (AlarmIds)3,0,0x0000,0x1885,60 }, - { (AlarmIds)0,1,0x0000,0x9CC1,60 }, - { (AlarmIds)1,1,0x0000,0x1884,60 }, - { (AlarmIds)2,1,0x0000,0x9CC7,60 }, - { (AlarmIds)3,1,0x0000,0x1885,60 } + { (AlarmIds)4,0,0x0000,0x9CC7,60 }, + { (AlarmIds)5,0,0x0000,0x9CA4,60 }, + { (AlarmIds)6,0,0x0000,0x1884,60 }, + { (AlarmIds)7,0,0x0000,0x1884,60 }, + { (AlarmIds)8,0,0x0000,0x9884,60 }, + { (AlarmIds)9,0,0x0000,0x9CA5,60 } }; - SetFunctionReturnValue(eFunctions::WriteAlarmConfiguration_R3, 1); token = BeginWriteAlarmConfiguration_R3(epdComsHandle, alarmConfigIds, alarmConfigLen, nullptr); r = CommitAndEnd2RV(EndWriteAlarmConfiguration_R3, token); @@ -2067,8 +2092,9 @@ int Epd3Base::Epd3U::WriteConfig(void) //int rv[maxbatch]; //int batchstep; - if (!r) { + if (!r && isAdmin) { //OffModeDisplay + //can give privilege issues dutyCycle = (OffModeDutyCycle)0; offModeDispId = (OffModeDisplayId_t)1; SetFunctionReturnValue(eFunctions::WriteOffModeDisplay_R3,1); @@ -2077,27 +2103,26 @@ int Epd3Base::Epd3U::WriteConfig(void) if (r != 0) Error = r; - - uint8_t OnOfenabled = 0; - SetFunctionReturnValue(eFunctions::WriteSwitchOnFromButton_R3, 0); - token = BeginWriteSwitchOnFromButton_R3(epdComsHandle, OnOfenabled, nullptr); - r = CommitAndEnd2RV(EndWriteSwitchOnFromButton_R3, token); - - if (r != 0) - Error = r; - - SetFunctionReturnValue(eFunctions::WriteAccessLevelOpen, 0); - token = BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Open,nullptr,0, nullptr); - r = CommitAndEnd2RV(EndWriteAccessLevel, token); - if (r != 0) - Error = r; - + else { + uint8_t OnOfenabled = 0; + SetFunctionReturnValue(eFunctions::WriteSwitchOnFromButton_R3, 0); + token = BeginWriteSwitchOnFromButton_R3(epdComsHandle, OnOfenabled, nullptr); + r = CommitAndEnd2RV(EndWriteSwitchOnFromButton_R3, token); + if (r != 0) + Error = r; + } + //Back to Open + if (!r) { + SetFunctionReturnValue(eFunctions::WriteAccessLevelOpen, 0); + token = BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Open, nullptr, 0, nullptr); + r = CommitAndEnd2RV(EndWriteAccessLevel, token); + if (r != 0) + Error = r; + } Sleep(200); r = DisconnectAndConnect(); if (r != 0) Error = r; - - } else Error = r; diff --git a/SyncToSqlsrv7.ps1 b/SyncToSqlsrv7.ps1 index 7e4d10b..934f8db 100644 --- a/SyncToSqlsrv7.ps1 +++ b/SyncToSqlsrv7.ps1 @@ -18,6 +18,7 @@ $cert = get-childitem -path cert:\CurrentUser\My\857150b64ef7d3e679c8cbde425d2a0 Export-Certificate -Force -FilePath "$DestPath\signertrust.cer" -Cert $cert Set-AuthenticodeSignature -FilePath "$ScriptPath\Upgrader.ps1" -Certificate $cert -TimestampServer "http://timestamp.digicert.com" +Set-AuthenticodeSignature -FilePath "$ScriptPath\Downgrader.ps1" -Certificate $cert -TimestampServer "http://timestamp.digicert.com" Set-AuthenticodeSignature -FilePath "$ScriptPath\installatie.ps1" -Certificate $cert -TimestampServer "http://timestamp.digicert.com" Set-AuthenticodeSignature -FilePath "$ScriptPath\installatie2.ps1" -Certificate $cert -TimestampServer "http://timestamp.digicert.com" @@ -31,6 +32,7 @@ Copy-Item -Path "$ScriptPath\ConfigurationFile.ini" -Destination "$DestPath" Copy-Item -Path "$ScriptPath\eDosStation.pub" -Destination "$DestPath" Copy-Item -Path "$ScriptPath\authorized_keys" -Destination "$DestPath\authorized_keys" Copy-Item -Path "$ScriptPath\Upgrader.ps1" -Destination "$DestPath\Upgrader.ps1" +Copy-Item -Path "$ScriptPath\Downgrader.ps1" -Destination "$DestPath\Downgrader.ps1" Copy-Item -Path "$ScriptPath\installatie.ps1" -Destination "$DestPath\installatie.ps1" Copy-Item -Path "$ScriptPath\installatie2.ps1" -Destination "$DestPath\installatie2.ps1" @@ -62,3 +64,206 @@ write-host "Source files from $SourcePath\eDosStation\bin\Release are zipped to Sleep 10 exit + +# SIG # Begin signature block +# MIIlWAYJKoZIhvcNAQcCoIIlSTCCJUUCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCkY6prORAwgOA6 +# WNLPMxe1wpx0GRp8nFNFFVZi+ujhzKCCH3AwggWNMIIEdaADAgECAhAOmxiO+dAt +# 5+/bUOIIQBhaMA0GCSqGSIb3DQEBDAUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQK +# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNV +# BAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yMjA4MDEwMDAwMDBa +# Fw0zMTExMDkyMzU5NTlaMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy +# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lD +# ZXJ0IFRydXN0ZWQgUm9vdCBHNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +# ggIBAL/mkHNo3rvkXUo8MCIwaTPswqclLskhPfKK2FnC4SmnPVirdprNrnsbhA3E +# MB/zG6Q4FutWxpdtHauyefLKEdLkX9YFPFIPUh/GnhWlfr6fqVcWWVVyr2iTcMKy +# unWZanMylNEQRBAu34LzB4TmdDttceItDBvuINXJIB1jKS3O7F5OyJP4IWGbNOsF +# xl7sWxq868nPzaw0QF+xembud8hIqGZXV59UWI4MK7dPpzDZVu7Ke13jrclPXuU1 +# 5zHL2pNe3I6PgNq2kZhAkHnDeMe2scS1ahg4AxCN2NQ3pC4FfYj1gj4QkXCrVYJB +# MtfbBHMqbpEBfCFM1LyuGwN1XXhm2ToxRJozQL8I11pJpMLmqaBn3aQnvKFPObUR +# WBf3JFxGj2T3wWmIdph2PVldQnaHiZdpekjw4KISG2aadMreSx7nDmOu5tTvkpI6 +# nj3cAORFJYm2mkQZK37AlLTSYW3rM9nF30sEAMx9HJXDj/chsrIRt7t/8tWMcCxB +# YKqxYxhElRp2Yn72gLD76GSmM9GJB+G9t+ZDpBi4pncB4Q+UDCEdslQpJYls5Q5S +# UUd0viastkF13nqsX40/ybzTQRESW+UQUOsxxcpyFiIJ33xMdT9j7CFfxCBRa2+x +# q4aLT8LWRV+dIPyhHsXAj6KxfgommfXkaS+YHS312amyHeUbAgMBAAGjggE6MIIB +# NjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTs1+OC0nFdZEzfLmc/57qYrhwP +# TzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzAOBgNVHQ8BAf8EBAMC +# AYYweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp +# Y2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNv +# bS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0 +# aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENB +# LmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQEMBQADggEBAHCgv0Nc +# Vec4X6CjdBs9thbX979XB72arKGHLOyFXqkauyL4hxppVCLtpIh3bb0aFPQTSnov +# Lbc47/T/gLn4offyct4kvFIDyE7QKt76LVbP+fT3rDB6mouyXtTP0UNEm0Mh65Zy +# oUi0mcudT6cGAxN3J0TU53/oWajwvy8LpunyNDzs9wPHh6jSTEAZNUZqaVSwuKFW +# juyk1T3osdz9HNj0d1pcVIxv76FQPfx2CWiEn2/K2yCNNWAcAgPLILCsWKAOQGPF +# mCLBsln1VWvPJ6tsds5vIy30fnFqI2si/xK4VC0nftg62fC2h5b9W9FcrBjDTZ9z +# twGpn1eqXijiuZQwggW8MIIDpKADAgECAgEfMA0GCSqGSIb3DQEBCwUAMGYxCzAJ +# BgNVBAYTAkJFMRIwEAYDVQQIEwlBbnR3ZXJwZW4xDDAKBgNVBAcTA01vbDEPMA0G +# A1UEChMGU0NLQ0VOMQwwCgYDVQQLEwNJQ1QxFjAUBgNVBAMTDVNDS0NFTiBJQ1Qg +# Q0EwHhcNMTgwNTI0MDYxMTAwWhcNMzAwNjAxMTIwMDAwWjBPMSEwHwYDVQQDExhW +# YW5kZW5icm91Y2tlIEx1YyBDUzIwMjExKjAoBgkqhkiG9w0BCQEWG2x1Yy52YW5k +# ZW5icm91Y2tlQHNja2Nlbi5iZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +# ggEBAPRbMPSAdMsURs6M9TChuXZWe1LSQlVXYVHPGRlnQeF719tgHS1Ern70aW0P +# uvCECkzUTbGHw3o+bF+vj1UZWw82oOEZGannAoTyG1CIxdOMc85Mdmy+Kb++9Ivx +# a6i4ahfpNDHE0F58TomaNyDY0dtRUDEMZw/A0AMkFmdg9BOnqrYeeLB0O/86ZkzU +# klRifi/Wa3ti1LV4U7fR6S4bMm7dZBh46IU2G3/oBdlNYAtC3DNol+bnrcBvF+cc +# GwG5kVxEZg8TtpEMj00hnI+rNPjI4Ar6mE83XKak1X5/xddZppx9ldJaiVujyOqy +# 0cONhiN/vsWPdZU37LQbG1OydGUCAwEAAaOCAYowggGGMAkGA1UdEwQCMAAwHQYD +# VR0OBBYEFN+1bIhLi6eWlLbzynleh97QuIFlMB8GA1UdIwQYMBaAFPApFPVqIRSS +# VlQTpD3VrfAhOsV4MAsGA1UdDwQEAwIHgDAfBgNVHSUEGDAWBggrBgEFBQcDAwYK +# KwYBBAGCNwIBFTA6BgNVHREEMzAxgRtsdWMudmFuZGVuYnJvdWNrZUBzY2tjZW4u +# YmWBEmx2YW5kZW5iQHNja2Nlbi5iZTA1BgNVHRIELjAshipodHRwOi8vY3JsLnNj +# a2Nlbi5iZS9TQ0tDRU4lMjBJQ1QlMjBDQS5jcnQwOwYDVR0fBDQwMjAwoC6gLIYq +# aHR0cDovL2NybC5zY2tjZW4uYmUvU0NLQ0VOJTIwSUNUJTIwQ0EuY3JsMD4GCSsG +# AQQBgjcVBwQxMC8GJysGAQQBgjcVCISMvCGCyP13gqGTIoSXlEaExpIugQGC1IQh +# gfrIaQIBZAIBCDAbBgkrBgEEAYI3FQoEDjAMMAoGCCsGAQUFBwMDMA0GCSqGSIb3 +# DQEBCwUAA4ICAQBGH87fu9sNbcCPVQCdJ9jP4jT59WTZm6s5BquO10UL9i7UAEmd +# d0yfCHW3myNUigR6O+Oc6Wa74HbUhAk+nEimHxzP5KcNnKE6lwqsIOf49J5G+2HR +# mTgW9tewsr39ZiB3NE5s04fHEA0I45zs8wsgyp4Mlr5v3AfzYB7gxh0Hxdm+ion7 +# PXvbKhAyI3F7pQTYauilmLAkHnoXD6T+Osp04wR9m1+HNGqLMKYyVOSdu0UnmGuq +# HBxpMD7hAJ8LCi5yR6t6s4BNCczwhzUpo6ZgrtLmKCacDmZ6SJMqsGFwan/GxnLS +# vw5QpVXUVJidDfTflMeJrfWhDOEt7jx9oQWQ249uzxlqJMVfBt1YZDq4gr76yjK6 +# VY7F6540ECog4auPte4NoiT5UPdE3QHSD/82/cdLoVuhELR4p4bfJ7PONT7x8iZz +# I8BoASh9SKJBh06mcmyJosOkc77Wv3ykqal7R+/LQi9geJwku6Ti0XIy9UFGBbUD +# 4m18e5cKdqDzyIHwAne0JR0ZEILPzITWviFuSXKqGP0bkSbGgpl+LuaCHcKAv+1F +# QBc2oWW0yPdxCUYpwo9QfTTh0qYXABQAbibOw7VKTnRLsS92m9pb6wn9tYyNfMu6 +# r7EXCuxJNDbYpKbxeadfY0arCzlOT6mpC6lzBqfgKyN+VWoy9rmdzhjEjjCCBnIw +# ggRaoAMCAQICEzgAAAACbukOrXYB5dcAAAAAAAIwDQYJKoZIhvcNAQELBQAwZzEL +# MAkGA1UEBhMCQkUxEjAQBgNVBAgTCUFudHdlcnBlbjEMMAoGA1UEBxMDTW9sMQ8w +# DQYDVQQKEwZTQ0tDRU4xDDAKBgNVBAsTA0lDVDEXMBUGA1UEAxMOU0NLQ0VOIFJv +# b3QgQ0EwHhcNMTcwNjIzMTEzOTM0WhcNMzIwNjIzMTE0OTM0WjBmMQswCQYDVQQG +# EwJCRTESMBAGA1UECBMJQW50d2VycGVuMQwwCgYDVQQHEwNNb2wxDzANBgNVBAoT +# BlNDS0NFTjEMMAoGA1UECxMDSUNUMRYwFAYDVQQDEw1TQ0tDRU4gSUNUIENBMIIC +# IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsW1uJ8gCKQwjdhAhr6eJJNXw +# +wffi5p2RB48uzTaQh2Y89P+75NFhk7qeOW0tVwacxYkubMvgNqasA9RslymREsx +# LfloMCidRPSQj8o0KE2cfLYojYre1TChFxc0PZobibZ7BTsU2v75GQjnsEEMmxzw +# JLAjSU2mFVKJKjrKs4Xt/q6j3w0fdrRz0ba8zSMbTHO2K8Cd1Rq3GQDLPythJyDx +# zo6YRE7TFOFcXGrIpFXvmy1XPc/ItiHwTocOmQ1msF+46W0gfWtbFLt8bC/CnuE2 +# ZQPnAmpq3lOUu8cOq/2eqhihAeAli5McYepaK+qr1JtLNfgTSkkFFw27c5cPXwFC +# CE0ryJdN+qN4Xdk3J2iz0hayEJ4sGaimdJTXv/OTmSxxKGMnPYV+BTvk/PDJnGjW +# QqOryf0PWgmwVQ1KAowaPjBAXJOEotzNnzW0/FKtvgJYLk3xFs3sJJ6EG6D02wB2 +# RNszNGM66tyqqx/Z3651xwzgkYYR1ETdmddcqL6/3a+HifS5K99N+q7rX/Rp31AU +# lNsb53xhh43NWUAg5Tzrb9J54mBR6Z/MafmTVHcK2nK6RRYaUfxs/WuE2+OzX7Md +# G/URi1lVuOu7hp7AKnSjcLnOcBG7lkSK1Q1pCuACYMkvCl+7keio376akUfumX3H +# qEVgK8ttZiRgiVHR7Q0CAwEAAaOCARYwggESMBAGCSsGAQQBgjcVAQQDAgEAMB0G +# A1UdDgQWBBTwKRT1aiEUklZUE6Q91a3wITrFeDAZBgkrBgEEAYI3FAIEDB4KAFMA +# dQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAW +# gBRSvxsquCggUTGvI6e+I5TG0fkUMDA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8v +# Y3JsLnNja2Nlbi5iZS9TQ0tDRU4lMjBSb290JTIwQ0EuY3JsMEcGCCsGAQUFBwEB +# BDswOTA3BggrBgEFBQcwAoYraHR0cDovL2NybC5zY2tjZW4uYmUvU0NLQ0VOJTIw +# Um9vdCUyMENBLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAhsQ1eNAeFzKKGY9KW0VM +# GrLUbtccjHoeKlGdVn+yhS9xhSaIFgm00IPVO5zh9jKtgCA3o81TqY0w1WoRK1U8 +# t89On5RZYVy39pDyu+oBlHgul9KOuJbIKLgh0VgEPvY3vM0h0bLdxIrnlIxchVxg +# s5y/h/wLKmXLjsg+AuYzsJ4+9GAD5SsdFGp2jiKPf9aw6zG67an2yTqtvPfeoRpk +# MWO+Mx39CWWwfU3MaQySlAx0/JzZcqWzk6QFgN1h89wSBHD0mMFdnahEth5y9QhP +# kLydPniibF5VZ59gbUVlpFFz8VddmBtx9xfe5aIYEjkj35HmEW/FN7qwnJP3dClj +# zFiqSueKqiFIN3punjHbMUoAxJnibx11Xz4pFm5mdk8v95r+sncH8SFK/P5nUjjE +# YIBRInZiovl7C8KfI1RD9lXJDPdw5yVfkCpkCr/rYNNMBHfDYZ+G1NEu9WzE2Nrk +# nC4H4qoNJLmMjVPTswcIT780iOvFZRf1ql+0e2TKUHCOkZ+plXtl3H6MimrNk6B/ +# ZQAy4mETNH6ceaoudV7X5Y7HzbTwSXCSw6GCiQMdYXgsFp+lioorEmFZhVc2PTs+ +# oUXbMi8IUaCyKEm6tMZHJ+PGU1YBE8Szyj5nI1SUhb+aHunRGlhgXPb4bnEdZVaM +# ruxFM0UbriGwmkOEv9cPVpAwgga0MIIEnKADAgECAhANx6xXBf8hmS5AQyIMOkmG +# MA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy +# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lD +# ZXJ0IFRydXN0ZWQgUm9vdCBHNDAeFw0yNTA1MDcwMDAwMDBaFw0zODAxMTQyMzU5 +# NTlaMGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8G +# A1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBUaW1lU3RhbXBpbmcgUlNBNDA5NiBT +# SEEyNTYgMjAyNSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC0 +# eDHTCphBcr48RsAcrHXbo0ZodLRRF51NrY0NlLWZloMsVO1DahGPNRcybEKq+Ruw +# OnPhof6pvF4uGjwjqNjfEvUi6wuim5bap+0lgloM2zX4kftn5B1IpYzTqpyFQ/4B +# t0mAxAHeHYNnQxqXmRinvuNgxVBdJkf77S2uPoCj7GH8BLuxBG5AvftBdsOECS1U +# kxBvMgEdgkFiDNYiOTx4OtiFcMSkqTtF2hfQz3zQSku2Ws3IfDReb6e3mmdglTca +# arps0wjUjsZvkgFkriK9tUKJm/s80FiocSk1VYLZlDwFt+cVFBURJg6zMUjZa/zb +# CclF83bRVFLeGkuAhHiGPMvSGmhgaTzVyhYn4p0+8y9oHRaQT/aofEnS5xLrfxnG +# pTXiUOeSLsJygoLPp66bkDX1ZlAeSpQl92QOMeRxykvq6gbylsXQskBBBnGy3tW/ +# AMOMCZIVNSaz7BX8VtYGqLt9MmeOreGPRdtBx3yGOP+rx3rKWDEJlIqLXvJWnY0v +# 5ydPpOjL6s36czwzsucuoKs7Yk/ehb//Wx+5kMqIMRvUBDx6z1ev+7psNOdgJMoi +# wOrUG2ZdSoQbU2rMkpLiQ6bGRinZbI4OLu9BMIFm1UUl9VnePs6BaaeEWvjJSjNm +# 2qA+sdFUeEY0qVjPKOWug/G6X5uAiynM7Bu2ayBjUwIDAQABo4IBXTCCAVkwEgYD +# VR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU729TSunkBnx6yuKQVvYv1Ensy04w +# HwYDVR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGG +# MBMGA1UdJQQMMAoGCCsGAQUFBwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcw +# AYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8v +# Y2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBD +# BgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNl +# cnRUcnVzdGVkUm9vdEc0LmNybDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgB +# hv1sBwEwDQYJKoZIhvcNAQELBQADggIBABfO+xaAHP4HPRF2cTC9vgvItTSmf83Q +# h8WIGjB/T8ObXAZz8OjuhUxjaaFdleMM0lBryPTQM2qEJPe36zwbSI/mS83afsl3 +# YTj+IQhQE7jU/kXjjytJgnn0hvrV6hqWGd3rLAUt6vJy9lMDPjTLxLgXf9r5nWMQ +# wr8Myb9rEVKChHyfpzee5kH0F8HABBgr0UdqirZ7bowe9Vj2AIMD8liyrukZ2iA/ +# wdG2th9y1IsA0QF8dTXqvcnTmpfeQh35k5zOCPmSNq1UH410ANVko43+Cdmu4y81 +# hjajV/gxdEkMx1NKU4uHQcKfZxAvBAKqMVuqte69M9J6A47OvgRaPs+2ykgcGV00 +# TYr2Lr3ty9qIijanrUR3anzEwlvzZiiyfTPjLbnFRsjsYg39OlV8cipDoq7+qNNj +# qFzeGxcytL5TTLL4ZaoBdqbhOhZ3ZRDUphPvSRmMThi0vw9vODRzW6AxnJll38F0 +# cuJG7uEBYTptMSbhdhGQDpOXgpIUsWTjd6xpR6oaQf/DJbg3s6KCLPAlZ66RzIg9 +# sC+NJpud/v4+7RWsWCiKi9EOLLHfMR2ZyJ/+xhCx9yHbxtl5TPau1j/1MIDpMPx0 +# LckTetiSuEtQvLsNz3Qbp7wGWqbIiOWCnb5WqxL3/BAPvIXKUjPSxyZsq8WhbaM2 +# tszWkPZPubdcMIIG7TCCBNWgAwIBAgIQCoDvGEuN8QWC0cR2p5V0aDANBgkqhkiG +# 9w0BAQsFADBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4x +# QTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGltZVN0YW1waW5nIFJTQTQw +# OTYgU0hBMjU2IDIwMjUgQ0ExMB4XDTI1MDYwNDAwMDAwMFoXDTM2MDkwMzIzNTk1 +# OVowYzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMTswOQYD +# VQQDEzJEaWdpQ2VydCBTSEEyNTYgUlNBNDA5NiBUaW1lc3RhbXAgUmVzcG9uZGVy +# IDIwMjUgMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANBGrC0Sxp7Q +# 6q5gVrMrV7pvUf+GcAoB38o3zBlCMGMyqJnfFNZx+wvA69HFTBdwbHwBSOeLpvPn +# Z8ZN+vo8dE2/pPvOx/Vj8TchTySA2R4QKpVD7dvNZh6wW2R6kSu9RJt/4QhguSss +# p3qome7MrxVyfQO9sMx6ZAWjFDYOzDi8SOhPUWlLnh00Cll8pjrUcCV3K3E0zz09 +# ldQ//nBZZREr4h/GI6Dxb2UoyrN0ijtUDVHRXdmncOOMA3CoB/iUSROUINDT98ok +# souTMYFOnHoRh6+86Ltc5zjPKHW5KqCvpSduSwhwUmotuQhcg9tw2YD3w6ySSSu+ +# 3qU8DD+nigNJFmt6LAHvH3KSuNLoZLc1Hf2JNMVL4Q1OpbybpMe46YceNA0LfNsn +# qcnpJeItK/DhKbPxTTuGoX7wJNdoRORVbPR1VVnDuSeHVZlc4seAO+6d2sC26/PQ +# PdP51ho1zBp+xUIZkpSFA8vWdoUoHLWnqWU3dCCyFG1roSrgHjSHlq8xymLnjCbS +# LZ49kPmk8iyyizNDIXj//cOgrY7rlRyTlaCCfw7aSUROwnu7zER6EaJ+AliL7ojT +# dS5PWPsWeupWs7NpChUk555K096V1hE0yZIXe+giAwW00aHzrDchIc2bQhpp0IoK +# RR7YufAkprxMiXAJQ1XCmnCfgPf8+3mnAgMBAAGjggGVMIIBkTAMBgNVHRMBAf8E +# AjAAMB0GA1UdDgQWBBTkO/zyMe39/dfzkXFjGVBDz2GM6DAfBgNVHSMEGDAWgBTv +# b1NK6eQGfHrK4pBW9i/USezLTjAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAww +# CgYIKwYBBQUHAwgwgZUGCCsGAQUFBwEBBIGIMIGFMCQGCCsGAQUFBzABhhhodHRw +# Oi8vb2NzcC5kaWdpY2VydC5jb20wXQYIKwYBBQUHMAKGUWh0dHA6Ly9jYWNlcnRz +# LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNFRpbWVTdGFtcGluZ1JTQTQw +# OTZTSEEyNTYyMDI1Q0ExLmNydDBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vY3Js +# My5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRUaW1lU3RhbXBpbmdSU0E0 +# MDk2U0hBMjU2MjAyNUNBMS5jcmwwIAYDVR0gBBkwFzAIBgZngQwBBAIwCwYJYIZI +# AYb9bAcBMA0GCSqGSIb3DQEBCwUAA4ICAQBlKq3xHCcEua5gQezRCESeY0ByIfjk +# 9iJP2zWLpQq1b4URGnwWBdEZD9gBq9fNaNmFj6Eh8/YmRDfxT7C0k8FUFqNh+tsh +# gb4O6Lgjg8K8elC4+oWCqnU/ML9lFfim8/9yJmZSe2F8AQ/UdKFOtj7YMTmqPO9m +# zskgiC3QYIUP2S3HQvHG1FDu+WUqW4daIqToXFE/JQ/EABgfZXLWU0ziTN6R3ygQ +# BHMUBaB5bdrPbF6MRYs03h4obEMnxYOX8VBRKe1uNnzQVTeLni2nHkX/QqvXnNb+ +# YkDFkxUGtMTaiLR9wjxUxu2hECZpqyU1d0IbX6Wq8/gVutDojBIFeRlqAcuEVT0c +# Ksb+zJNEsuEB7O7/cuvTQasnM9AWcIQfVjnzrvwiCZ85EE8LUkqRhoS3Y50OHgaY +# 7T/lwd6UArb+BOVAkg2oOvol/DJgddJ35XTxfUlQ+8Hggt8l2Yv7roancJIFcboj +# BcxlRcGG0LIhp6GvReQGgMgYxQbV1S3CrWqZzBt1R9xJgKf47CdxVRd/ndUlQ05o +# xYy2zRWVFjF7mcr4C34Mj3ocCVccAvlKV9jEnstrniLvUxxVZE/rptb7IRE2lskK +# PIJgbaP5t2nGj/ULLi49xTcBZU8atufk+EMF/cWuiC7POGT75qaL6vdCvHlshtjd +# NXOCIUjsarfNZzGCBT4wggU6AgEBMGswZjELMAkGA1UEBhMCQkUxEjAQBgNVBAgT +# CUFudHdlcnBlbjEMMAoGA1UEBxMDTW9sMQ8wDQYDVQQKEwZTQ0tDRU4xDDAKBgNV +# BAsTA0lDVDEWMBQGA1UEAxMNU0NLQ0VOIElDVCBDQQIBHzANBglghkgBZQMEAgEF +# AKB8MBAGCisGAQQBgjcCAQwxAjAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEE +# MBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCBw +# a/M/NRFionxZGZugetgJgsG4JMUnwXjTa53vEeocCjANBgkqhkiG9w0BAQEFAASC +# AQCralwsSvHDAs6ieXSpxPmoiL6h9NzjhvBGOq/obBYhIspC+9Az+qcJOhCrgAMC +# VVyU74Ws17Toa3+twFuXiynOka21zstzZxz0L9oq7XZ6MaySgspGNgOdgK8mJJjt +# 66GG2cNn53MYpfD616Qo1/wNFCXfMy9Vw6ghMvtP90sZYMHQ03vMsPxkNJl0Pjwo +# NRMNJ3UNzwEqcUH8xFSY9D8LVI3hYcdUwh/p9ju9fQFTWiqeDdZMMkOSrPPjbVYj +# C5gVwX/HAA0SAbFIedZ2xMWQGi8NYtGU/LuXXdGy7YTKDEHARb03aw3BfsQjbpNX +# J/l0Um1q0ZVD/KbN/CBuTl4qoYIDJjCCAyIGCSqGSIb3DQEJBjGCAxMwggMPAgEB +# MH0waTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYD +# VQQDEzhEaWdpQ2VydCBUcnVzdGVkIEc0IFRpbWVTdGFtcGluZyBSU0E0MDk2IFNI +# QTI1NiAyMDI1IENBMQIQCoDvGEuN8QWC0cR2p5V0aDANBglghkgBZQMEAgEFAKBp +# MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDgy +# ODA3NDgyNFowLwYJKoZIhvcNAQkEMSIEIGjD7zm2kZp/whATQ+2C2d8uxlPSyFV4 +# g/DYFVrHgvJ8MA0GCSqGSIb3DQEBAQUABIICAEUMaDuHZ1sSOl4k5wv38PUDcDrJ +# MO4Y0xaQe5oKQaJCtYBasjo6Pdhpz38K8++6JAHGX+KGK3zJKXTmxrM0iJfaSsKD +# r0fc5TjNcu0CAHEqjuVVO/wFXYDtMQKPM6ilw2uZYlZtIg7YfcCP4tPNe5QCi25X +# 3FJAVnKK4EMAVbOqoLnafL+U/E9mDQHXioXTGV3Tflnyivehh8ir2XvC76BDxsDW +# PdV7HtzRyNpq/z9yLVsmWpBxsuLqWnoE23eCKsVm1G4lZYVdIBzS00xexqps1riY +# uhLFqVVRmclrkXZ5dFi2hgEKe0AXvV/ZsqJpHV1B9rkHmhvBY3rd2rIlax+1EhCC +# slj6+K4ZpZ3gMmH1EEsedbocq+2DFrM1tS7j+MebYssFDoQuCPceRtZWAgde7RsQ +# 7kO5fgUbAVWIjkciJgjCwm6svtMSV2MEHZDP9QdQwr3PhT4XWIBamOwYeIax3rnf +# +JSjwGoSaqJk4OHfip0/ummbHDpq14GH7i92h1vd04XdzwyW4cW3aQhU9RBfey8P +# mC+NzXSMdDsSzugovY18wj4ATGTv+WFKqcPLyGM+Eo0m+VDrLXtPvhYR5QBUiGO+ +# pRceePDMqreLWSCza98Vpc+ESzaFqkNCAHWn6fXHbTh6mxLeqgfbfZHbvYiXU5FR +# 0Ins2JgWNBkAKM8J +# SIG # End signature block diff --git a/eDosLocal/UpdateLocal.sql b/eDosLocal/UpdateLocal.sql index eb8e4f0..fe6df0f 100644 --- a/eDosLocal/UpdateLocal.sql +++ b/eDosLocal/UpdateLocal.sql @@ -262,32 +262,51 @@ ALTER TABLE [dbo].[StationSettings] ADD AllowMultipleEPD BIT NULL; IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('[dbo].[StationSettings]') AND name='EPDRetries') ALTER TABLE [dbo].[StationSettings] ADD EPDRetries INT NULL; IF EXISTS (SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('[dbo].[StationSettings]') AND name='EPDRetries' AND [system_type_id]<>56) -ALTER TABLE [dbo].[StationSettings] ALTER COLUMN [EPDREtries] int +ALTER TABLE [dbo].[StationSettings] ALTER COLUMN [EPDREtries] INT + +IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[StationSettings]') AND name = 'WriteConfig') + ALTER TABLE [dbo].[StationSettings] ADD [WriteConfig] BIT NULL; + +IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[StationSettings]') AND name = 'IssueWhenDoseAlarms') + ALTER TABLE [dbo].[StationSettings] ADD [IssueWhenDoseAlarms] BIT NULL; + +IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[StationSettings]') AND name = 'ElatecPort') + ALTER TABLE [dbo].[StationSettings] ADD [ElatecPort] INT NULL; GO ALTER PROCEDURE [dbo].[StationSettingsSelect] AS -SELECT - [ID_Station], - [PCNr], - [ComPort], - [Inst_CODE1], - [Inst_CODE2], - [Inst_Name1], - [Inst_Name2], - [TestCSN], - [Reader], - [useTestButtons] = ISNULL([useTestButtons], 0), - [useBeep] = ISNULL([useBeep], 22), - [checkUser] = ISNULL([checkUser], 0), - [EPDTimeout] = ISNULL([EPDTimeout], 10000), - [EPDRetries] = ISNULL([EPDREtries], 1), - [RestartCom] = ISNULL([RestartCom], 0), - [RestartComFirst] = ISNULL([RestartComFirst], 0), - [OnlyMK2] = ISNULL([OnlyMK2], 0), - [AllowMultipleEPD] = ISNULL([AllowMultipleEPD], 0) -FROM [dbo].[StationSettings] -WHERE [PCNr] = HOST_NAME(); +SELECT ID_Station, + PCNr, + ComPort, + Inst_CODE1, + Inst_CODE2, + Inst_Name1, + Inst_Name2, + TestCSN, + Reader, + useTestButtons = ISNULL(useTestButtons, 0), + useBeep = ISNULL(useBeep, 22), + checkUser = ISNULL(checkUser, 0), + EPDTimeout = ISNULL(EPDTimeout, 10000), + EPDRetries = ISNULL(EPDREtries, 1), + RestartCom = ISNULL(RestartCom, 0), + RestartComFirst = ISNULL(RestartComFirst, 0), + OnlyMK2 = ISNULL(OnlyMK2, 0), + AllowMultipleEPD = ISNULL(AllowMultipleEPD, 0), + WriteConfig = ISNULL(WriteConfig, 0), + IssueWhenDoseAlarms = ISNULL(IssueWhenDoseAlarms, 0), + ElatecPort +FROM dbo.StationSettings +WHERE PCNr = HOST_NAME(); GO -ALTER PROCEDURE [dbo].[StationSettingsUpdate] @ComPort INT = NULL, +USE eDosLocal; +GO +/****** Object: StoredProcedure [dbo].[StationSettingsUpdate] Script Date: 2026-08-28 12:18:04 ******/ +SET ANSI_NULLS ON; +GO +SET QUOTED_IDENTIFIER ON; +GO +ALTER PROCEDURE dbo.StationSettingsUpdate + @ComPort INT = NULL, @Inst_CODE1 INT = NULL, @Inst_CODE2 INT = NULL, @Inst_Name1 VARCHAR(50) = NULL, @@ -302,32 +321,61 @@ ALTER PROCEDURE [dbo].[StationSettingsUpdate] @ComPort INT = NULL, @RestartCom BIT = 0, @RestartComFirst BIT = 0, @OnlyMK2 BIT = 0, - @AllowMultipleEPD BIT = 0 + @AllowMultipleEPD BIT = 0, + @WriteConfig BIT = 1, + @IssueWhenDoseAlarms BIT = 0, + @ElatecPort INT = NULL AS -IF NOT EXISTS (SELECT * FROM [dbo].[StationSettings] WHERE [PCNr] = HOST_NAME()) - INSERT [dbo].[StationSettings]([PCNr], [ComPort], [Inst_CODE1], [Inst_CODE2], [Inst_Name1], [Inst_Name2], [TestCSN], [Reader], [useTestButtons], [useBeep], [checkUser], [EPDREtries], [RestartCom], [RestartComFirst], [OnlyMK2], [AllowMultipleEPD]) - VALUES(HOST_NAME(), @ComPort, @Inst_CODE1, @Inst_CODE2, @Inst_Name1, @Inst_Name2, @TestCSN, @Reader, @useTestButtons, @useBeep, @checkUser, @EPDRetries, @RestartCom, @RestartComFirst, @OnlyMK2, @AllowMultipleEPD); +IF NOT EXISTS (SELECT * FROM dbo.StationSettings WHERE PCNr = HOST_NAME()) + INSERT dbo.StationSettings + ( + PCNr, + ComPort, + Inst_CODE1, + Inst_CODE2, + Inst_Name1, + Inst_Name2, + TestCSN, + Reader, + useTestButtons, + useBeep, + checkUser, + EPDREtries, + RestartCom, + RestartComFirst, + OnlyMK2, + AllowMultipleEPD, + WriteConfig, + IssueWhenDoseAlarms, + ElatecPort + ) + VALUES + (HOST_NAME(), @ComPort, @Inst_CODE1, @Inst_CODE2, @Inst_Name1, @Inst_Name2, @TestCSN, @Reader, @useTestButtons, + @useBeep, @checkUser, @EPDRetries, @RestartCom, @RestartComFirst, @OnlyMK2, @AllowMultipleEPD, @WriteConfig, + @IssueWhenDoseAlarms, @ElatecPort); ELSE - UPDATE - [dbo].[StationSettings] - SET - [ComPort] = @ComPort, - [Inst_CODE1] = @Inst_CODE1, - [Inst_CODE2] = @Inst_CODE2, - [Inst_Name1] = @Inst_Name1, - [Inst_Name2] = @Inst_Name2, - [TestCSN] = @TestCSN, - [Reader] = @Reader, - [useTestButtons] = @useTestButtons, - [useBeep] = @useBeep, - [checkUser] = @checkUser, - [EPDTimeout] = @EPDTimeout, - [EPDREtries] = @EPDRetries, - [RestartCom] = @RestartCom, - [RestartComFirst] = @RestartComFirst, - [OnlyMK2] = @OnlyMK2, - [AllowMultipleEPD]=@AllowMultipleEPD - WHERE [PCNr] = HOST_NAME(); + UPDATE dbo.StationSettings + SET ComPort = @ComPort, + Inst_CODE1 = @Inst_CODE1, + Inst_CODE2 = @Inst_CODE2, + Inst_Name1 = @Inst_Name1, + Inst_Name2 = @Inst_Name2, + TestCSN = @TestCSN, + Reader = @Reader, + useTestButtons = @useTestButtons, + useBeep = @useBeep, + checkUser = @checkUser, + EPDTimeout = @EPDTimeout, + EPDREtries = @EPDRetries, + RestartCom = @RestartCom, + RestartComFirst = @RestartComFirst, + OnlyMK2 = @OnlyMK2, + AllowMultipleEPD = @AllowMultipleEPD, + WriteConfig = @WriteConfig, + IssueWhenDoseAlarms = @IssueWhenDoseAlarms, + ElatecPort = @ElatecPort + WHERE PCNr = HOST_NAME(); + go @@ -390,7 +438,8 @@ UPDATE [dbo].[Visit] SET InitError=@InitError WHERE ID_Station=@ID_Station AND I go GRANT EXECUTE ON [dbo].[VisitInitConfirm] TO [eDosStation]; GO -ALTER TABLE DBO.PersonInfoSnapshot ADD Info XML; +IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[PersonInfoSnapshot]') AND name = 'Info') + ALTER TABLE DBO.PersonInfoSnapshot ADD Info XML NULL; GO IF OBJECT_ID('[dbo].[LocalEPD]') IS NULL BEGIN CREATE TABLE [dbo].[LocalEPD] ( [ID_STATION] INT NOT NULL , [EPD_InternalID] VARCHAR(8) NOT NULL, [ID_EPD] INT NOT NULL, [LastUsed] DATETIME null, PRIMARY KEY([ID_STATION],[EPD_InternalID]) ) diff --git a/eDosStation.sln b/eDosStation.sln index 895403b..de006b8 100644 --- a/eDosStation.sln +++ b/eDosStation.sln @@ -13,10 +13,45 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "syncEdosLocal", "syncEdosLo EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Epd3Base", "EpdBase3\EpdBase3.vcxproj", "{E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eDosPrep", "eDosPrep\eDosPrep.vcxproj", "{294068AF-EA7B-4851-97B2-2AB5F64167D9}" -EndProject Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "eDosLocal", "eDosLocal\eDosLocal.sqlproj", "{3A150025-D770-4521-BA21-16843B2D5359}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{065B9F2A-7C47-4273-BD30-401749A49B08}" + ProjectSection(SolutionItems) = preProject + scripts\authorized_keys = scripts\authorized_keys + scripts\ConfigurationFile.ini = scripts\ConfigurationFile.ini + scripts\CopyAll.cmd = scripts\CopyAll.cmd + scripts\copyZipAndSql.cmd = scripts\copyZipAndSql.cmd + scripts\copyZipAndSqlDAQ6468.cmd = scripts\copyZipAndSqlDAQ6468.cmd + scripts\copyZipAndSqlip.cmd = scripts\copyZipAndSqlip.cmd + scripts\copyZipAndSqlxxx.cmd = scripts\copyZipAndSqlxxx.cmd + scripts\copyZipAndSql_CleanInstall.cmd = scripts\copyZipAndSql_CleanInstall.cmd + scripts\DeployPSModules.ps1 = scripts\DeployPSModules.ps1 + scripts\Downgrader.ps1 = scripts\Downgrader.ps1 + scripts\eDosStation.pub = scripts\eDosStation.pub + scripts\edosstation.sql = scripts\edosstation.sql + scripts\edosstationmaster.sql = scripts\edosstationmaster.sql + scripts\edosstationname.sql = scripts\edosstationname.sql + scripts\eDosSync.xml = scripts\eDosSync.xml + scripts\epd_reader.cat = scripts\epd_reader.cat + scripts\epd_reader.inf = scripts\epd_reader.inf + scripts\flash.exe = scripts\flash.exe + scripts\ictinteremediate.cer = scripts\ictinteremediate.cer + scripts\installatie.ps1 = scripts\installatie.ps1 + scripts\installatie2.ps1 = scripts\installatie2.ps1 + scripts\LogFolderClean.exe = scripts\LogFolderClean.exe + scripts\LogFolderClean.exe.config = scripts\LogFolderClean.exe.config + scripts\sckca.cer = scripts\sckca.cer + scripts\signertrust.cer = scripts\signertrust.cer + scripts\sqlreg.reg = scripts\sqlreg.reg + scripts\TWN4_xCx480_EDOS100_Edos_Badge_Reader.bix = scripts\TWN4_xCx480_EDOS100_Edos_Badge_Reader.bix + scripts\UpdateLocal.sql = scripts\UpdateLocal.sql + scripts\Updates.sql = scripts\Updates.sql + scripts\UpdateSql.cmd = scripts\UpdateSql.cmd + scripts\Upgrader.ps1 = scripts\Upgrader.ps1 + scripts\VC_redist.x64.exe = scripts\VC_redist.x64.exe + scripts\VC_redist.x86.exe = scripts\VC_redist.x86.exe + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -117,20 +152,6 @@ Global {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x64.Build.0 = Release|x64 {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x86.ActiveCfg = Release|Win32 {E6BB4F4E-4774-4FE3-B341-7F4C24DC61E7}.Release|x86.Build.0 = Release|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|ARM.ActiveCfg = Debug|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|ARM64.ActiveCfg = Debug|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x64.ActiveCfg = Debug|x64 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x64.Build.0 = Debug|x64 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x86.ActiveCfg = Debug|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Debug|x86.Build.0 = Debug|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|Any CPU.ActiveCfg = Release|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|ARM.ActiveCfg = Release|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|ARM64.ActiveCfg = Release|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x64.ActiveCfg = Release|x64 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x64.Build.0 = Release|x64 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x86.ActiveCfg = Release|Win32 - {294068AF-EA7B-4851-97B2-2AB5F64167D9}.Release|x86.Build.0 = Release|Win32 {3A150025-D770-4521-BA21-16843B2D5359}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3A150025-D770-4521-BA21-16843B2D5359}.Debug|Any CPU.Build.0 = Debug|Any CPU {3A150025-D770-4521-BA21-16843B2D5359}.Debug|Any CPU.Deploy.0 = Debug|Any CPU diff --git a/eDosStation/EntryBadge.xaml.cs b/eDosStation/EntryBadge.xaml.cs index f6994f4..e579699 100644 --- a/eDosStation/EntryBadge.xaml.cs +++ b/eDosStation/EntryBadge.xaml.cs @@ -130,7 +130,7 @@ namespace eDosStation bool realFault = (ep.EPDDetFault>0) || (ep.EPDCalFault >0) || (ep.EPDComFault >0) || (ep.EPDEprFault >0) || (ep.EPDTrhFault>0); - bool stopBecauseAlarmDose = ep.eDoshasAlarm && thisStation.StopBecauseAlarmDose;//&& stat + bool stopBecauseAlarmDose = ep.eDoshasAlarm;//&& thisStation.StopBecauseAlarmDose; if (stopBecauseAlarmDose || ep.OtherAlarmBatLow > 0 || realFault ) { diff --git a/eDosStation/Properties/AssemblyInfo.cs b/eDosStation/Properties/AssemblyInfo.cs index dd15ae9..f316d36 100644 --- a/eDosStation/Properties/AssemblyInfo.cs +++ b/eDosStation/Properties/AssemblyInfo.cs @@ -73,5 +73,5 @@ using System.Windows; //2025-01-07 2.50 MK3 neutron //2026-08-07 3.00 optimized //2026-08-17 3.01 telerik upgrade, cleanup old files -[assembly: AssemblyVersion("3.1.0.0")] -[assembly: AssemblyFileVersion("3.1.0.0")] +[assembly: AssemblyVersion("3.2.0.0")] +[assembly: AssemblyFileVersion("3.2.0.0")] diff --git a/eDosStation/Resources/BuildDate.txt b/eDosStation/Resources/BuildDate.txt index d44068a..6d4a97c 100644 --- a/eDosStation/Resources/BuildDate.txt +++ b/eDosStation/Resources/BuildDate.txt @@ -1 +1 @@ -27/08/2026 12:02:06,85 +28/08/2026 15:50:26,50 diff --git a/eDosStation/Settings.xaml b/eDosStation/Settings.xaml index aba51f2..f36a01f 100644 --- a/eDosStation/Settings.xaml +++ b/eDosStation/Settings.xaml @@ -27,7 +27,8 @@ - + + @@ -78,10 +79,14 @@ - - + + - - + + + + + + diff --git a/eDosStation/Settings.xaml.cs b/eDosStation/Settings.xaml.cs index f103f1a..2d32fd2 100644 --- a/eDosStation/Settings.xaml.cs +++ b/eDosStation/Settings.xaml.cs @@ -127,7 +127,9 @@ namespace eDosStation } else thisStation.ElatecPort = string.Empty; - step = "Update"; + thisStation.StopBecauseAlarmDose = !( IssueWhenDoseAlarms.IsChecked != null ? IssueWhenDoseAlarms.IsChecked.Value : false); + + step = "Update"; thisStation.Update(); if (thisStation.Error > 0) @@ -319,6 +321,9 @@ namespace eDosStation cbWriteConfig32.IsChecked = thisStation.WriteConfig32; cbLogAll.IsChecked = thisStation.LogAll; thisStation.splunkLog?.WriteSplunkLog(module, step, LSWLib.CLog.iseverity.info); + + IssueWhenDoseAlarms.IsChecked = !thisStation.StopBecauseAlarmDose; + } catch (System.Exception ex) { diff --git a/eDosStation/Station.cs b/eDosStation/Station.cs index af3b011..665ee1f 100644 --- a/eDosStation/Station.cs +++ b/eDosStation/Station.cs @@ -73,7 +73,7 @@ namespace eDosStation public delegate void dReceivedPersID(int persid); public dReceivedPersID ReceivedPersid; - internal bool StopBecauseAlarmDose; + internal bool StopBecauseAlarmDose; // issues when false ? public ushort useBeepMK3() { @@ -90,7 +90,7 @@ namespace eDosStation splunkLog = spl; // new spl1(Environment.MachineName,hourlyLog:true); stationLog = null; dataInterface = mDataInterface; - StopBecauseAlarmDose=false; + StopBecauseAlarmDose=true; Error = 0; ErrorMessage = string.Empty; ComPort = 0; @@ -185,8 +185,8 @@ namespace eDosStation RestartComFirst = rs.BoolOrDefault("RestartComFirst", false); OnlyMK2 = rs.BoolOrDefault("OnlyMK2", false); AllowMultipleEPD = rs.BoolOrDefault("AllowMultipleEPD", false); - WriteConfig32 = true; // rs.BoolOrDefault("WriteConfig32", false); - StopBecauseAlarmDose = false; // rs.BoolOrDefault("StopBecauseAlarmDose", false); + WriteConfig32 = rs.BoolOrDefault("WriteConfig", false); + StopBecauseAlarmDose = ! rs.BoolOrDefault("IssueWhenDoseAlarms", false); } else { @@ -209,7 +209,7 @@ namespace eDosStation EPDRetries = 2; AllowMultipleEPD = false; WriteConfig32 = true; - StopBecauseAlarmDose = false; + StopBecauseAlarmDose = true; } rs.Close(); splunkLog.WriteSplunkLog(module,step, spl1.iseverity.info); @@ -295,6 +295,12 @@ namespace eDosStation cmd.SetIfExists("OnlyMK2", OnlyMK2); cmd.SetIfExists("AllowMultipleEPD", AllowMultipleEPD); cmd.SetIfExists("useTestButtons", useTestButtons); + + int eportnum = GetComportNum(ElatecPort); + cmd.SetIfExists("ElatecPort", eportnum); + cmd.SetIfExists("WriteConfig", WriteConfig32); + cmd.SetIfExists("IssueWhenDoseAlarms", !StopBecauseAlarmDose); + } catch (System.Exception ex) { @@ -400,6 +406,23 @@ namespace eDosStation return "COM" + comport.ToString(); } + public int GetComportNum(string comport) + { + if (string.IsNullOrWhiteSpace(comport)) + return 0; + + // Remove "COM" (case-insensitive) and extra spaces + string cleanString = comport.Replace("COM", string.Empty).Trim(); + + // Try parsing; return 0 if string is not a valid number + if (int.TryParse(cleanString, out int portNumber)) + { + return portNumber; + } + + return 0; + } + public string find() { string rv ; diff --git a/scripts/DeployPSModules.ps1 b/scripts/DeployPSModules.ps1 index d7b6b70..9fdaa13 100644 --- a/scripts/DeployPSModules.ps1 +++ b/scripts/DeployPSModules.ps1 @@ -18,211 +18,204 @@ if (Test-Path -Path $SourcePath) { exit # SIG # Begin signature block -# MIImpAYJKoZIhvcNAQcCoIImlTCCJpECAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIlWAYJKoZIhvcNAQcCoIIlSTCCJUUCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCJA2MB/1pJ1g33 -# UOqxVMXgvBfUjEkg/kEpXkl2q7g6P6CCDDYwggW8MIIDpKADAgECAgEfMA0GCSqG -# SIb3DQEBCwUAMGYxCzAJBgNVBAYTAkJFMRIwEAYDVQQIEwlBbnR3ZXJwZW4xDDAK -# BgNVBAcTA01vbDEPMA0GA1UEChMGU0NLQ0VOMQwwCgYDVQQLEwNJQ1QxFjAUBgNV -# BAMTDVNDS0NFTiBJQ1QgQ0EwHhcNMTgwNTI0MDYxMTAwWhcNMzAwNjAxMTIwMDAw -# WjBPMSEwHwYDVQQDExhWYW5kZW5icm91Y2tlIEx1YyBDUzIwMjExKjAoBgkqhkiG -# 9w0BCQEWG2x1Yy52YW5kZW5icm91Y2tlQHNja2Nlbi5iZTCCASIwDQYJKoZIhvcN -# AQEBBQADggEPADCCAQoCggEBAPRbMPSAdMsURs6M9TChuXZWe1LSQlVXYVHPGRln -# QeF719tgHS1Ern70aW0PuvCECkzUTbGHw3o+bF+vj1UZWw82oOEZGannAoTyG1CI -# xdOMc85Mdmy+Kb++9Ivxa6i4ahfpNDHE0F58TomaNyDY0dtRUDEMZw/A0AMkFmdg -# 9BOnqrYeeLB0O/86ZkzUklRifi/Wa3ti1LV4U7fR6S4bMm7dZBh46IU2G3/oBdlN -# YAtC3DNol+bnrcBvF+ccGwG5kVxEZg8TtpEMj00hnI+rNPjI4Ar6mE83XKak1X5/ -# xddZppx9ldJaiVujyOqy0cONhiN/vsWPdZU37LQbG1OydGUCAwEAAaOCAYowggGG -# MAkGA1UdEwQCMAAwHQYDVR0OBBYEFN+1bIhLi6eWlLbzynleh97QuIFlMB8GA1Ud -# IwQYMBaAFPApFPVqIRSSVlQTpD3VrfAhOsV4MAsGA1UdDwQEAwIHgDAfBgNVHSUE -# GDAWBggrBgEFBQcDAwYKKwYBBAGCNwIBFTA6BgNVHREEMzAxgRtsdWMudmFuZGVu -# YnJvdWNrZUBzY2tjZW4uYmWBEmx2YW5kZW5iQHNja2Nlbi5iZTA1BgNVHRIELjAs -# hipodHRwOi8vY3JsLnNja2Nlbi5iZS9TQ0tDRU4lMjBJQ1QlMjBDQS5jcnQwOwYD -# VR0fBDQwMjAwoC6gLIYqaHR0cDovL2NybC5zY2tjZW4uYmUvU0NLQ0VOJTIwSUNU -# JTIwQ0EuY3JsMD4GCSsGAQQBgjcVBwQxMC8GJysGAQQBgjcVCISMvCGCyP13gqGT -# IoSXlEaExpIugQGC1IQhgfrIaQIBZAIBCDAbBgkrBgEEAYI3FQoEDjAMMAoGCCsG -# AQUFBwMDMA0GCSqGSIb3DQEBCwUAA4ICAQBGH87fu9sNbcCPVQCdJ9jP4jT59WTZ -# m6s5BquO10UL9i7UAEmdd0yfCHW3myNUigR6O+Oc6Wa74HbUhAk+nEimHxzP5KcN -# nKE6lwqsIOf49J5G+2HRmTgW9tewsr39ZiB3NE5s04fHEA0I45zs8wsgyp4Mlr5v -# 3AfzYB7gxh0Hxdm+ion7PXvbKhAyI3F7pQTYauilmLAkHnoXD6T+Osp04wR9m1+H -# NGqLMKYyVOSdu0UnmGuqHBxpMD7hAJ8LCi5yR6t6s4BNCczwhzUpo6ZgrtLmKCac -# DmZ6SJMqsGFwan/GxnLSvw5QpVXUVJidDfTflMeJrfWhDOEt7jx9oQWQ249uzxlq -# JMVfBt1YZDq4gr76yjK6VY7F6540ECog4auPte4NoiT5UPdE3QHSD/82/cdLoVuh -# ELR4p4bfJ7PONT7x8iZzI8BoASh9SKJBh06mcmyJosOkc77Wv3ykqal7R+/LQi9g -# eJwku6Ti0XIy9UFGBbUD4m18e5cKdqDzyIHwAne0JR0ZEILPzITWviFuSXKqGP0b -# kSbGgpl+LuaCHcKAv+1FQBc2oWW0yPdxCUYpwo9QfTTh0qYXABQAbibOw7VKTnRL -# sS92m9pb6wn9tYyNfMu6r7EXCuxJNDbYpKbxeadfY0arCzlOT6mpC6lzBqfgKyN+ -# VWoy9rmdzhjEjjCCBnIwggRaoAMCAQICEzgAAAACbukOrXYB5dcAAAAAAAIwDQYJ -# KoZIhvcNAQELBQAwZzELMAkGA1UEBhMCQkUxEjAQBgNVBAgTCUFudHdlcnBlbjEM -# MAoGA1UEBxMDTW9sMQ8wDQYDVQQKEwZTQ0tDRU4xDDAKBgNVBAsTA0lDVDEXMBUG -# A1UEAxMOU0NLQ0VOIFJvb3QgQ0EwHhcNMTcwNjIzMTEzOTM0WhcNMzIwNjIzMTE0 -# OTM0WjBmMQswCQYDVQQGEwJCRTESMBAGA1UECBMJQW50d2VycGVuMQwwCgYDVQQH -# EwNNb2wxDzANBgNVBAoTBlNDS0NFTjEMMAoGA1UECxMDSUNUMRYwFAYDVQQDEw1T -# Q0tDRU4gSUNUIENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsW1u -# J8gCKQwjdhAhr6eJJNXw+wffi5p2RB48uzTaQh2Y89P+75NFhk7qeOW0tVwacxYk -# ubMvgNqasA9RslymREsxLfloMCidRPSQj8o0KE2cfLYojYre1TChFxc0PZobibZ7 -# BTsU2v75GQjnsEEMmxzwJLAjSU2mFVKJKjrKs4Xt/q6j3w0fdrRz0ba8zSMbTHO2 -# K8Cd1Rq3GQDLPythJyDxzo6YRE7TFOFcXGrIpFXvmy1XPc/ItiHwTocOmQ1msF+4 -# 6W0gfWtbFLt8bC/CnuE2ZQPnAmpq3lOUu8cOq/2eqhihAeAli5McYepaK+qr1JtL -# NfgTSkkFFw27c5cPXwFCCE0ryJdN+qN4Xdk3J2iz0hayEJ4sGaimdJTXv/OTmSxx -# KGMnPYV+BTvk/PDJnGjWQqOryf0PWgmwVQ1KAowaPjBAXJOEotzNnzW0/FKtvgJY -# Lk3xFs3sJJ6EG6D02wB2RNszNGM66tyqqx/Z3651xwzgkYYR1ETdmddcqL6/3a+H -# ifS5K99N+q7rX/Rp31AUlNsb53xhh43NWUAg5Tzrb9J54mBR6Z/MafmTVHcK2nK6 -# RRYaUfxs/WuE2+OzX7MdG/URi1lVuOu7hp7AKnSjcLnOcBG7lkSK1Q1pCuACYMkv -# Cl+7keio376akUfumX3HqEVgK8ttZiRgiVHR7Q0CAwEAAaOCARYwggESMBAGCSsG -# AQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTwKRT1aiEUklZUE6Q91a3wITrFeDAZBgkr -# BgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw -# AwEB/zAfBgNVHSMEGDAWgBRSvxsquCggUTGvI6e+I5TG0fkUMDA8BgNVHR8ENTAz -# MDGgL6AthitodHRwOi8vY3JsLnNja2Nlbi5iZS9TQ0tDRU4lMjBSb290JTIwQ0Eu -# Y3JsMEcGCCsGAQUFBwEBBDswOTA3BggrBgEFBQcwAoYraHR0cDovL2NybC5zY2tj -# ZW4uYmUvU0NLQ0VOJTIwUm9vdCUyMENBLmNydDANBgkqhkiG9w0BAQsFAAOCAgEA -# hsQ1eNAeFzKKGY9KW0VMGrLUbtccjHoeKlGdVn+yhS9xhSaIFgm00IPVO5zh9jKt -# gCA3o81TqY0w1WoRK1U8t89On5RZYVy39pDyu+oBlHgul9KOuJbIKLgh0VgEPvY3 -# vM0h0bLdxIrnlIxchVxgs5y/h/wLKmXLjsg+AuYzsJ4+9GAD5SsdFGp2jiKPf9aw -# 6zG67an2yTqtvPfeoRpkMWO+Mx39CWWwfU3MaQySlAx0/JzZcqWzk6QFgN1h89wS -# BHD0mMFdnahEth5y9QhPkLydPniibF5VZ59gbUVlpFFz8VddmBtx9xfe5aIYEjkj -# 35HmEW/FN7qwnJP3dCljzFiqSueKqiFIN3punjHbMUoAxJnibx11Xz4pFm5mdk8v -# 95r+sncH8SFK/P5nUjjEYIBRInZiovl7C8KfI1RD9lXJDPdw5yVfkCpkCr/rYNNM -# BHfDYZ+G1NEu9WzE2NrknC4H4qoNJLmMjVPTswcIT780iOvFZRf1ql+0e2TKUHCO -# kZ+plXtl3H6MimrNk6B/ZQAy4mETNH6ceaoudV7X5Y7HzbTwSXCSw6GCiQMdYXgs -# Fp+lioorEmFZhVc2PTs+oUXbMi8IUaCyKEm6tMZHJ+PGU1YBE8Szyj5nI1SUhb+a -# HunRGlhgXPb4bnEdZVaMruxFM0UbriGwmkOEv9cPVpAxghnEMIIZwAIBATBrMGYx -# CzAJBgNVBAYTAkJFMRIwEAYDVQQIEwlBbnR3ZXJwZW4xDDAKBgNVBAcTA01vbDEP -# MA0GA1UEChMGU0NLQ0VOMQwwCgYDVQQLEwNJQ1QxFjAUBgNVBAMTDVNDS0NFTiBJ -# Q1QgQ0ECAR8wDQYJYIZIAWUDBAIBBQCggbAwGQYJKoZIhvcNAQkDMQwGCisGAQQB -# gjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkE -# MSIEINCmLdSRNh3mEhCGnVT7Lio9C21IOZPQrV9tqSC9p668MEQGCisGAQQBgjcC -# AQwxNjA0oDKAMABJAG4AdABlAGcAcgBpAHQAeQAgACYAIABBAHUAdABoAGUAbgB0 -# AGkAYwBpAHQAeTANBgkqhkiG9w0BAQEFAASCAQDMhFXrAfFc3OddL++fyPhFz1Co -# FGRO3rO+ouNXZXOIpFK/3ZQB23WUBFC8WCrZWsOflJQ8NK6WxxVGZMX4tJ30SaHR -# rpB2lTQG1PuEMXktpWMNz8MNNN9iwrRyLrxmZIi06mhKUYBg96v+D86HREAHtyuz -# ksd2mBt5FE3H0/+ZupeXe/+xTmOImkknbA8+j06uycb5VD1LNvlrcV1OvY5+djox -# CqkN1/FVgiXVJF+wGOknjJQ0EW8PiUQ2XAt58FuZz4SmPOHkJemC+gC2Sw6crSjh -# yAHQxCLy5oaC3KemDctPXFX9wIo4qWdb0hX3J/wMI5Mt6jelNVeINcnAMxgPoYIX -# dzCCF3MGCisGAQQBgjcDAwExghdjMIIXXwYJKoZIhvcNAQcCoIIXUDCCF0wCAQMx -# DzANBglghkgBZQMEAgEFADB4BgsqhkiG9w0BCRABBKBpBGcwZQIBAQYJYIZIAYb9 -# bAcBMDEwDQYJYIZIAWUDBAIBBQAEICbE7gg1Faj2fbphgFqcZX6jw/JpE9VS6EbP -# rVJlbRXgAhEAnonutmZYUvElnaAcD6f9tBgPMjAyNjAyMDUwOTQ2NTJaoIITOjCC -# Bu0wggTVoAMCAQICEAqA7xhLjfEFgtHEdqeVdGgwDQYJKoZIhvcNAQELBQAwaTEL -# MAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhE -# aWdpQ2VydCBUcnVzdGVkIEc0IFRpbWVTdGFtcGluZyBSU0E0MDk2IFNIQTI1NiAy -# MDI1IENBMTAeFw0yNTA2MDQwMDAwMDBaFw0zNjA5MDMyMzU5NTlaMGMxCzAJBgNV -# BAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNl -# cnQgU0hBMjU2IFJTQTQwOTYgVGltZXN0YW1wIFJlc3BvbmRlciAyMDI1IDEwggIi -# MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDQRqwtEsae0OquYFazK1e6b1H/ -# hnAKAd/KN8wZQjBjMqiZ3xTWcfsLwOvRxUwXcGx8AUjni6bz52fGTfr6PHRNv6T7 -# zsf1Y/E3IU8kgNkeECqVQ+3bzWYesFtkepErvUSbf+EIYLkrLKd6qJnuzK8Vcn0D -# vbDMemQFoxQ2Dsw4vEjoT1FpS54dNApZfKY61HAldytxNM89PZXUP/5wWWURK+If -# xiOg8W9lKMqzdIo7VA1R0V3Zp3DjjANwqAf4lEkTlCDQ0/fKJLKLkzGBTpx6EYev -# vOi7XOc4zyh1uSqgr6UnbksIcFJqLbkIXIPbcNmA98Oskkkrvt6lPAw/p4oDSRZr -# eiwB7x9ykrjS6GS3NR39iTTFS+ENTqW8m6THuOmHHjQNC3zbJ6nJ6SXiLSvw4Smz -# 8U07hqF+8CTXaETkVWz0dVVZw7knh1WZXOLHgDvundrAtuvz0D3T+dYaNcwafsVC -# GZKUhQPL1naFKBy1p6llN3QgshRta6Eq4B40h5avMcpi54wm0i2ePZD5pPIssosz -# QyF4//3DoK2O65Uck5Wggn8O2klETsJ7u8xEehGifgJYi+6I03UuT1j7FnrqVrOz -# aQoVJOeeStPeldYRNMmSF3voIgMFtNGh86w3ISHNm0IaadCKCkUe2LnwJKa8TIlw -# CUNVwppwn4D3/Pt5pwIDAQABo4IBlTCCAZEwDAYDVR0TAQH/BAIwADAdBgNVHQ4E -# FgQU5Dv88jHt/f3X85FxYxlQQ89hjOgwHwYDVR0jBBgwFoAU729TSunkBnx6yuKQ -# VvYv1Ensy04wDgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMI -# MIGVBggrBgEFBQcBAQSBiDCBhTAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGln -# aWNlcnQuY29tMF0GCCsGAQUFBzAChlFodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5j -# b20vRGlnaUNlcnRUcnVzdGVkRzRUaW1lU3RhbXBpbmdSU0E0MDk2U0hBMjU2MjAy -# NUNBMS5jcnQwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL2NybDMuZGlnaWNlcnQu -# Y29tL0RpZ2lDZXJ0VHJ1c3RlZEc0VGltZVN0YW1waW5nUlNBNDA5NlNIQTI1NjIw -# MjVDQTEuY3JsMCAGA1UdIAQZMBcwCAYGZ4EMAQQCMAsGCWCGSAGG/WwHATANBgkq -# hkiG9w0BAQsFAAOCAgEAZSqt8RwnBLmuYEHs0QhEnmNAciH45PYiT9s1i6UKtW+F -# ERp8FgXRGQ/YAavXzWjZhY+hIfP2JkQ38U+wtJPBVBajYfrbIYG+Dui4I4PCvHpQ -# uPqFgqp1PzC/ZRX4pvP/ciZmUnthfAEP1HShTrY+2DE5qjzvZs7JIIgt0GCFD9kt -# x0LxxtRQ7vllKluHWiKk6FxRPyUPxAAYH2Vy1lNM4kzekd8oEARzFAWgeW3az2xe -# jEWLNN4eKGxDJ8WDl/FQUSntbjZ80FU3i54tpx5F/0Kr15zW/mJAxZMVBrTE2oi0 -# fcI8VMbtoRAmaaslNXdCG1+lqvP4FbrQ6IwSBXkZagHLhFU9HCrG/syTRLLhAezu -# /3Lr00GrJzPQFnCEH1Y58678IgmfORBPC1JKkYaEt2OdDh4GmO0/5cHelAK2/gTl -# QJINqDr6JfwyYHXSd+V08X1JUPvB4ILfJdmL+66Gp3CSBXG6IwXMZUXBhtCyIaeh -# r0XkBoDIGMUG1dUtwq1qmcwbdUfcSYCn+OwncVUXf53VJUNOaMWMts0VlRYxe5nK -# +At+DI96HAlXHAL5SlfYxJ7La54i71McVWRP66bW+yERNpbJCjyCYG2j+bdpxo/1 -# Cy4uPcU3AWVPGrbn5PhDBf3Froguzzhk++ami+r3Qrx5bIbY3TVzgiFI7Gq3zWcw -# gga0MIIEnKADAgECAhANx6xXBf8hmS5AQyIMOkmGMA0GCSqGSIb3DQEBCwUAMGIx -# CzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 -# dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBH -# NDAeFw0yNTA1MDcwMDAwMDBaFw0zODAxMTQyMzU5NTlaMGkxCzAJBgNVBAYTAlVT -# MRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1 -# c3RlZCBHNCBUaW1lU3RhbXBpbmcgUlNBNDA5NiBTSEEyNTYgMjAyNSBDQTEwggIi -# MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC0eDHTCphBcr48RsAcrHXbo0Zo -# dLRRF51NrY0NlLWZloMsVO1DahGPNRcybEKq+RuwOnPhof6pvF4uGjwjqNjfEvUi -# 6wuim5bap+0lgloM2zX4kftn5B1IpYzTqpyFQ/4Bt0mAxAHeHYNnQxqXmRinvuNg -# xVBdJkf77S2uPoCj7GH8BLuxBG5AvftBdsOECS1UkxBvMgEdgkFiDNYiOTx4OtiF -# cMSkqTtF2hfQz3zQSku2Ws3IfDReb6e3mmdglTcaarps0wjUjsZvkgFkriK9tUKJ -# m/s80FiocSk1VYLZlDwFt+cVFBURJg6zMUjZa/zbCclF83bRVFLeGkuAhHiGPMvS -# GmhgaTzVyhYn4p0+8y9oHRaQT/aofEnS5xLrfxnGpTXiUOeSLsJygoLPp66bkDX1 -# ZlAeSpQl92QOMeRxykvq6gbylsXQskBBBnGy3tW/AMOMCZIVNSaz7BX8VtYGqLt9 -# MmeOreGPRdtBx3yGOP+rx3rKWDEJlIqLXvJWnY0v5ydPpOjL6s36czwzsucuoKs7 -# Yk/ehb//Wx+5kMqIMRvUBDx6z1ev+7psNOdgJMoiwOrUG2ZdSoQbU2rMkpLiQ6bG -# RinZbI4OLu9BMIFm1UUl9VnePs6BaaeEWvjJSjNm2qA+sdFUeEY0qVjPKOWug/G6 -# X5uAiynM7Bu2ayBjUwIDAQABo4IBXTCCAVkwEgYDVR0TAQH/BAgwBgEB/wIBADAd -# BgNVHQ4EFgQU729TSunkBnx6yuKQVvYv1Ensy04wHwYDVR0jBBgwFoAU7NfjgtJx -# XWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUF -# BwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGln -# aWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5j -# b20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNVHR8EPDA6MDigNqA0hjJo -# dHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNy -# bDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1sBwEwDQYJKoZIhvcNAQEL -# BQADggIBABfO+xaAHP4HPRF2cTC9vgvItTSmf83Qh8WIGjB/T8ObXAZz8OjuhUxj -# aaFdleMM0lBryPTQM2qEJPe36zwbSI/mS83afsl3YTj+IQhQE7jU/kXjjytJgnn0 -# hvrV6hqWGd3rLAUt6vJy9lMDPjTLxLgXf9r5nWMQwr8Myb9rEVKChHyfpzee5kH0 -# F8HABBgr0UdqirZ7bowe9Vj2AIMD8liyrukZ2iA/wdG2th9y1IsA0QF8dTXqvcnT -# mpfeQh35k5zOCPmSNq1UH410ANVko43+Cdmu4y81hjajV/gxdEkMx1NKU4uHQcKf -# ZxAvBAKqMVuqte69M9J6A47OvgRaPs+2ykgcGV00TYr2Lr3ty9qIijanrUR3anzE -# wlvzZiiyfTPjLbnFRsjsYg39OlV8cipDoq7+qNNjqFzeGxcytL5TTLL4ZaoBdqbh -# OhZ3ZRDUphPvSRmMThi0vw9vODRzW6AxnJll38F0cuJG7uEBYTptMSbhdhGQDpOX -# gpIUsWTjd6xpR6oaQf/DJbg3s6KCLPAlZ66RzIg9sC+NJpud/v4+7RWsWCiKi9EO -# LLHfMR2ZyJ/+xhCx9yHbxtl5TPau1j/1MIDpMPx0LckTetiSuEtQvLsNz3Qbp7wG -# WqbIiOWCnb5WqxL3/BAPvIXKUjPSxyZsq8WhbaM2tszWkPZPubdcMIIFjTCCBHWg -# AwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG -# EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl -# cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcN -# MjIwODAxMDAwMDAwWhcNMzExMTA5MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEVMBMG -# A1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw -# HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp -# pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+ -# n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYykt -# zuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw -# 2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQjdjUN6Qu -# BX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/CNdaSaTC -# 5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtmmnTK -# 3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3 -# IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEP -# lAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98 -# THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t9dmpsh3l -# GwIDAQABo4IBOjCCATYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7NfjgtJx -# XWRM3y5nP+e6mK4cD08wHwYDVR0jBBgwFoAUReuir/SSy4IxLVGLp6chnfNtyA8w -# DgYDVR0PAQH/BAQDAgGGMHkGCCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYYaHR0 -# cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2FjZXJ0 -# cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MEUGA1Ud -# HwQ+MDwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFz -# c3VyZWRJRFJvb3RDQS5jcmwwEQYDVR0gBAowCDAGBgRVHSAAMA0GCSqGSIb3DQEB -# DAUAA4IBAQBwoL9DXFXnOF+go3QbPbYW1/e/Vwe9mqyhhyzshV6pGrsi+IcaaVQi -# 7aSId229GhT0E0p6Ly23OO/0/4C5+KH38nLeJLxSA8hO0Cre+i1Wz/n096wwepqL -# sl7Uz9FDRJtDIeuWcqFItJnLnU+nBgMTdydE1Od/6Fmo8L8vC6bp8jQ87PcDx4eo -# 0kxAGTVGamlUsLihVo7spNU96LHc/RzY9HdaXFSMb++hUD38dglohJ9vytsgjTVg -# HAIDyyCwrFigDkBjxZgiwbJZ9VVrzyerbHbObyMt9H5xaiNrIv8SuFQtJ37YOtnw -# toeW/VvRXKwYw02fc7cBqZ9Xql4o4rmUMYIDfDCCA3gCAQEwfTBpMQswCQYDVQQG -# EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0 -# IFRydXN0ZWQgRzQgVGltZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0Ex -# AhAKgO8YS43xBYLRxHanlXRoMA0GCWCGSAFlAwQCAQUAoIHRMBoGCSqGSIb3DQEJ -# AzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwMjA1MDk0NjUyWjAr -# BgsqhkiG9w0BCRACDDEcMBowGDAWBBTdYjCshgotMGvaOLFoeVIwB/tBfjAvBgkq -# hkiG9w0BCQQxIgQgUFtpboN0qGPi//ipQ00UflrBkqWH3O8LLrOthuRQWt8wNwYL -# KoZIhvcNAQkQAi8xKDAmMCQwIgQgSqA/oizXXITFXJOPgo5na5yuyrM/420mmqM0 -# 8UYRCjMwDQYJKoZIhvcNAQEBBQAEggIAreUnW5bppL2bd9PCn2w12J9brhE3KLLV -# tlJFcTxSTvd1sOFNAyM8YNcnXiXkS9sNVnzB74SQXIah0ozIgAn/sReG/4dfcV4C -# ZCg49Q9XmCVZvqZv62vTfSo9WcuqBKv6B49cC1jezwaV+TYScpn3Ki5mQmApZBhU -# 8dqg5mlDXoAK5dkJe4tI7vajeMSMwuSSGTcqRhGyPJnrjYOb85SbmIrqPgQpi49Z -# etIrQPZHKnKwwN4cKAbI3WINbGSUVF0ZfU2AKW7h/CjK4SMB2f5zmrNqdnmBM3Xy -# IVevAk+v9Uah5PqRm0xAUbMJvMKjNDKDhSyFP0eBC5fNytUucGPnwW4hyyqREzWm -# GBg4v+ZXHgIoNKYQ9jCXic4TxLoNCTVAmAdKU8Fibj+TMEd0GrhkfQ0OoV8O2EMM -# 1K3LtXJ/OslJhGrzlONFhKiFXIfyjcb1uSjsX58uHJw/PX/VSOG8CLxZ1PiKQNA9 -# bLTk7zkP6Kijk6pRvYHVx1rYXmq6lw6BTLNjcMfDOsfIaSKZ+HfDQmaP45VrNivj -# 4tRDGTx1cfoybRqlPvXScagLeRQWx5BfTOn/lnaptr8ZXDh4j7ju4n3ormKF0xPX -# 66vv8fcVZZmyU/Rlcmqam3mOJyBRgLWHbFEHUzQfkbopvuTDHjkJX3ytj7eKZi03 -# k/eo60iusKE= +# UOqxVMXgvBfUjEkg/kEpXkl2q7g6P6CCH3AwggWNMIIEdaADAgECAhAOmxiO+dAt +# 5+/bUOIIQBhaMA0GCSqGSIb3DQEBDAUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQK +# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNV +# BAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yMjA4MDEwMDAwMDBa +# Fw0zMTExMDkyMzU5NTlaMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy +# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lD +# ZXJ0IFRydXN0ZWQgUm9vdCBHNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +# ggIBAL/mkHNo3rvkXUo8MCIwaTPswqclLskhPfKK2FnC4SmnPVirdprNrnsbhA3E +# MB/zG6Q4FutWxpdtHauyefLKEdLkX9YFPFIPUh/GnhWlfr6fqVcWWVVyr2iTcMKy +# unWZanMylNEQRBAu34LzB4TmdDttceItDBvuINXJIB1jKS3O7F5OyJP4IWGbNOsF +# xl7sWxq868nPzaw0QF+xembud8hIqGZXV59UWI4MK7dPpzDZVu7Ke13jrclPXuU1 +# 5zHL2pNe3I6PgNq2kZhAkHnDeMe2scS1ahg4AxCN2NQ3pC4FfYj1gj4QkXCrVYJB +# MtfbBHMqbpEBfCFM1LyuGwN1XXhm2ToxRJozQL8I11pJpMLmqaBn3aQnvKFPObUR +# WBf3JFxGj2T3wWmIdph2PVldQnaHiZdpekjw4KISG2aadMreSx7nDmOu5tTvkpI6 +# nj3cAORFJYm2mkQZK37AlLTSYW3rM9nF30sEAMx9HJXDj/chsrIRt7t/8tWMcCxB +# YKqxYxhElRp2Yn72gLD76GSmM9GJB+G9t+ZDpBi4pncB4Q+UDCEdslQpJYls5Q5S +# UUd0viastkF13nqsX40/ybzTQRESW+UQUOsxxcpyFiIJ33xMdT9j7CFfxCBRa2+x +# q4aLT8LWRV+dIPyhHsXAj6KxfgommfXkaS+YHS312amyHeUbAgMBAAGjggE6MIIB +# NjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTs1+OC0nFdZEzfLmc/57qYrhwP +# TzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzAOBgNVHQ8BAf8EBAMC +# AYYweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp +# Y2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNv +# bS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0 +# aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENB +# LmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQEMBQADggEBAHCgv0Nc +# Vec4X6CjdBs9thbX979XB72arKGHLOyFXqkauyL4hxppVCLtpIh3bb0aFPQTSnov +# Lbc47/T/gLn4offyct4kvFIDyE7QKt76LVbP+fT3rDB6mouyXtTP0UNEm0Mh65Zy +# oUi0mcudT6cGAxN3J0TU53/oWajwvy8LpunyNDzs9wPHh6jSTEAZNUZqaVSwuKFW +# juyk1T3osdz9HNj0d1pcVIxv76FQPfx2CWiEn2/K2yCNNWAcAgPLILCsWKAOQGPF +# mCLBsln1VWvPJ6tsds5vIy30fnFqI2si/xK4VC0nftg62fC2h5b9W9FcrBjDTZ9z +# twGpn1eqXijiuZQwggW8MIIDpKADAgECAgEfMA0GCSqGSIb3DQEBCwUAMGYxCzAJ +# BgNVBAYTAkJFMRIwEAYDVQQIEwlBbnR3ZXJwZW4xDDAKBgNVBAcTA01vbDEPMA0G +# A1UEChMGU0NLQ0VOMQwwCgYDVQQLEwNJQ1QxFjAUBgNVBAMTDVNDS0NFTiBJQ1Qg +# Q0EwHhcNMTgwNTI0MDYxMTAwWhcNMzAwNjAxMTIwMDAwWjBPMSEwHwYDVQQDExhW +# YW5kZW5icm91Y2tlIEx1YyBDUzIwMjExKjAoBgkqhkiG9w0BCQEWG2x1Yy52YW5k +# ZW5icm91Y2tlQHNja2Nlbi5iZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +# ggEBAPRbMPSAdMsURs6M9TChuXZWe1LSQlVXYVHPGRlnQeF719tgHS1Ern70aW0P +# uvCECkzUTbGHw3o+bF+vj1UZWw82oOEZGannAoTyG1CIxdOMc85Mdmy+Kb++9Ivx +# a6i4ahfpNDHE0F58TomaNyDY0dtRUDEMZw/A0AMkFmdg9BOnqrYeeLB0O/86ZkzU +# klRifi/Wa3ti1LV4U7fR6S4bMm7dZBh46IU2G3/oBdlNYAtC3DNol+bnrcBvF+cc +# GwG5kVxEZg8TtpEMj00hnI+rNPjI4Ar6mE83XKak1X5/xddZppx9ldJaiVujyOqy +# 0cONhiN/vsWPdZU37LQbG1OydGUCAwEAAaOCAYowggGGMAkGA1UdEwQCMAAwHQYD +# VR0OBBYEFN+1bIhLi6eWlLbzynleh97QuIFlMB8GA1UdIwQYMBaAFPApFPVqIRSS +# VlQTpD3VrfAhOsV4MAsGA1UdDwQEAwIHgDAfBgNVHSUEGDAWBggrBgEFBQcDAwYK +# KwYBBAGCNwIBFTA6BgNVHREEMzAxgRtsdWMudmFuZGVuYnJvdWNrZUBzY2tjZW4u +# YmWBEmx2YW5kZW5iQHNja2Nlbi5iZTA1BgNVHRIELjAshipodHRwOi8vY3JsLnNj +# a2Nlbi5iZS9TQ0tDRU4lMjBJQ1QlMjBDQS5jcnQwOwYDVR0fBDQwMjAwoC6gLIYq +# aHR0cDovL2NybC5zY2tjZW4uYmUvU0NLQ0VOJTIwSUNUJTIwQ0EuY3JsMD4GCSsG +# AQQBgjcVBwQxMC8GJysGAQQBgjcVCISMvCGCyP13gqGTIoSXlEaExpIugQGC1IQh +# gfrIaQIBZAIBCDAbBgkrBgEEAYI3FQoEDjAMMAoGCCsGAQUFBwMDMA0GCSqGSIb3 +# DQEBCwUAA4ICAQBGH87fu9sNbcCPVQCdJ9jP4jT59WTZm6s5BquO10UL9i7UAEmd +# d0yfCHW3myNUigR6O+Oc6Wa74HbUhAk+nEimHxzP5KcNnKE6lwqsIOf49J5G+2HR +# mTgW9tewsr39ZiB3NE5s04fHEA0I45zs8wsgyp4Mlr5v3AfzYB7gxh0Hxdm+ion7 +# PXvbKhAyI3F7pQTYauilmLAkHnoXD6T+Osp04wR9m1+HNGqLMKYyVOSdu0UnmGuq +# HBxpMD7hAJ8LCi5yR6t6s4BNCczwhzUpo6ZgrtLmKCacDmZ6SJMqsGFwan/GxnLS +# vw5QpVXUVJidDfTflMeJrfWhDOEt7jx9oQWQ249uzxlqJMVfBt1YZDq4gr76yjK6 +# VY7F6540ECog4auPte4NoiT5UPdE3QHSD/82/cdLoVuhELR4p4bfJ7PONT7x8iZz +# I8BoASh9SKJBh06mcmyJosOkc77Wv3ykqal7R+/LQi9geJwku6Ti0XIy9UFGBbUD +# 4m18e5cKdqDzyIHwAne0JR0ZEILPzITWviFuSXKqGP0bkSbGgpl+LuaCHcKAv+1F +# QBc2oWW0yPdxCUYpwo9QfTTh0qYXABQAbibOw7VKTnRLsS92m9pb6wn9tYyNfMu6 +# r7EXCuxJNDbYpKbxeadfY0arCzlOT6mpC6lzBqfgKyN+VWoy9rmdzhjEjjCCBnIw +# ggRaoAMCAQICEzgAAAACbukOrXYB5dcAAAAAAAIwDQYJKoZIhvcNAQELBQAwZzEL +# MAkGA1UEBhMCQkUxEjAQBgNVBAgTCUFudHdlcnBlbjEMMAoGA1UEBxMDTW9sMQ8w +# DQYDVQQKEwZTQ0tDRU4xDDAKBgNVBAsTA0lDVDEXMBUGA1UEAxMOU0NLQ0VOIFJv +# b3QgQ0EwHhcNMTcwNjIzMTEzOTM0WhcNMzIwNjIzMTE0OTM0WjBmMQswCQYDVQQG +# EwJCRTESMBAGA1UECBMJQW50d2VycGVuMQwwCgYDVQQHEwNNb2wxDzANBgNVBAoT +# BlNDS0NFTjEMMAoGA1UECxMDSUNUMRYwFAYDVQQDEw1TQ0tDRU4gSUNUIENBMIIC +# IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsW1uJ8gCKQwjdhAhr6eJJNXw +# +wffi5p2RB48uzTaQh2Y89P+75NFhk7qeOW0tVwacxYkubMvgNqasA9RslymREsx +# LfloMCidRPSQj8o0KE2cfLYojYre1TChFxc0PZobibZ7BTsU2v75GQjnsEEMmxzw +# JLAjSU2mFVKJKjrKs4Xt/q6j3w0fdrRz0ba8zSMbTHO2K8Cd1Rq3GQDLPythJyDx +# zo6YRE7TFOFcXGrIpFXvmy1XPc/ItiHwTocOmQ1msF+46W0gfWtbFLt8bC/CnuE2 +# ZQPnAmpq3lOUu8cOq/2eqhihAeAli5McYepaK+qr1JtLNfgTSkkFFw27c5cPXwFC +# CE0ryJdN+qN4Xdk3J2iz0hayEJ4sGaimdJTXv/OTmSxxKGMnPYV+BTvk/PDJnGjW +# QqOryf0PWgmwVQ1KAowaPjBAXJOEotzNnzW0/FKtvgJYLk3xFs3sJJ6EG6D02wB2 +# RNszNGM66tyqqx/Z3651xwzgkYYR1ETdmddcqL6/3a+HifS5K99N+q7rX/Rp31AU +# lNsb53xhh43NWUAg5Tzrb9J54mBR6Z/MafmTVHcK2nK6RRYaUfxs/WuE2+OzX7Md +# G/URi1lVuOu7hp7AKnSjcLnOcBG7lkSK1Q1pCuACYMkvCl+7keio376akUfumX3H +# qEVgK8ttZiRgiVHR7Q0CAwEAAaOCARYwggESMBAGCSsGAQQBgjcVAQQDAgEAMB0G +# A1UdDgQWBBTwKRT1aiEUklZUE6Q91a3wITrFeDAZBgkrBgEEAYI3FAIEDB4KAFMA +# dQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAW +# gBRSvxsquCggUTGvI6e+I5TG0fkUMDA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8v +# Y3JsLnNja2Nlbi5iZS9TQ0tDRU4lMjBSb290JTIwQ0EuY3JsMEcGCCsGAQUFBwEB +# BDswOTA3BggrBgEFBQcwAoYraHR0cDovL2NybC5zY2tjZW4uYmUvU0NLQ0VOJTIw +# Um9vdCUyMENBLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAhsQ1eNAeFzKKGY9KW0VM +# GrLUbtccjHoeKlGdVn+yhS9xhSaIFgm00IPVO5zh9jKtgCA3o81TqY0w1WoRK1U8 +# t89On5RZYVy39pDyu+oBlHgul9KOuJbIKLgh0VgEPvY3vM0h0bLdxIrnlIxchVxg +# s5y/h/wLKmXLjsg+AuYzsJ4+9GAD5SsdFGp2jiKPf9aw6zG67an2yTqtvPfeoRpk +# MWO+Mx39CWWwfU3MaQySlAx0/JzZcqWzk6QFgN1h89wSBHD0mMFdnahEth5y9QhP +# kLydPniibF5VZ59gbUVlpFFz8VddmBtx9xfe5aIYEjkj35HmEW/FN7qwnJP3dClj +# zFiqSueKqiFIN3punjHbMUoAxJnibx11Xz4pFm5mdk8v95r+sncH8SFK/P5nUjjE +# YIBRInZiovl7C8KfI1RD9lXJDPdw5yVfkCpkCr/rYNNMBHfDYZ+G1NEu9WzE2Nrk +# nC4H4qoNJLmMjVPTswcIT780iOvFZRf1ql+0e2TKUHCOkZ+plXtl3H6MimrNk6B/ +# ZQAy4mETNH6ceaoudV7X5Y7HzbTwSXCSw6GCiQMdYXgsFp+lioorEmFZhVc2PTs+ +# oUXbMi8IUaCyKEm6tMZHJ+PGU1YBE8Szyj5nI1SUhb+aHunRGlhgXPb4bnEdZVaM +# ruxFM0UbriGwmkOEv9cPVpAwgga0MIIEnKADAgECAhANx6xXBf8hmS5AQyIMOkmG +# MA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy +# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lD +# ZXJ0IFRydXN0ZWQgUm9vdCBHNDAeFw0yNTA1MDcwMDAwMDBaFw0zODAxMTQyMzU5 +# NTlaMGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8G +# A1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBUaW1lU3RhbXBpbmcgUlNBNDA5NiBT +# SEEyNTYgMjAyNSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC0 +# eDHTCphBcr48RsAcrHXbo0ZodLRRF51NrY0NlLWZloMsVO1DahGPNRcybEKq+Ruw +# OnPhof6pvF4uGjwjqNjfEvUi6wuim5bap+0lgloM2zX4kftn5B1IpYzTqpyFQ/4B +# t0mAxAHeHYNnQxqXmRinvuNgxVBdJkf77S2uPoCj7GH8BLuxBG5AvftBdsOECS1U +# kxBvMgEdgkFiDNYiOTx4OtiFcMSkqTtF2hfQz3zQSku2Ws3IfDReb6e3mmdglTca +# arps0wjUjsZvkgFkriK9tUKJm/s80FiocSk1VYLZlDwFt+cVFBURJg6zMUjZa/zb +# CclF83bRVFLeGkuAhHiGPMvSGmhgaTzVyhYn4p0+8y9oHRaQT/aofEnS5xLrfxnG +# pTXiUOeSLsJygoLPp66bkDX1ZlAeSpQl92QOMeRxykvq6gbylsXQskBBBnGy3tW/ +# AMOMCZIVNSaz7BX8VtYGqLt9MmeOreGPRdtBx3yGOP+rx3rKWDEJlIqLXvJWnY0v +# 5ydPpOjL6s36czwzsucuoKs7Yk/ehb//Wx+5kMqIMRvUBDx6z1ev+7psNOdgJMoi +# wOrUG2ZdSoQbU2rMkpLiQ6bGRinZbI4OLu9BMIFm1UUl9VnePs6BaaeEWvjJSjNm +# 2qA+sdFUeEY0qVjPKOWug/G6X5uAiynM7Bu2ayBjUwIDAQABo4IBXTCCAVkwEgYD +# VR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU729TSunkBnx6yuKQVvYv1Ensy04w +# HwYDVR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGG +# MBMGA1UdJQQMMAoGCCsGAQUFBwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcw +# AYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8v +# Y2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBD +# BgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNl +# cnRUcnVzdGVkUm9vdEc0LmNybDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgB +# hv1sBwEwDQYJKoZIhvcNAQELBQADggIBABfO+xaAHP4HPRF2cTC9vgvItTSmf83Q +# h8WIGjB/T8ObXAZz8OjuhUxjaaFdleMM0lBryPTQM2qEJPe36zwbSI/mS83afsl3 +# YTj+IQhQE7jU/kXjjytJgnn0hvrV6hqWGd3rLAUt6vJy9lMDPjTLxLgXf9r5nWMQ +# wr8Myb9rEVKChHyfpzee5kH0F8HABBgr0UdqirZ7bowe9Vj2AIMD8liyrukZ2iA/ +# wdG2th9y1IsA0QF8dTXqvcnTmpfeQh35k5zOCPmSNq1UH410ANVko43+Cdmu4y81 +# hjajV/gxdEkMx1NKU4uHQcKfZxAvBAKqMVuqte69M9J6A47OvgRaPs+2ykgcGV00 +# TYr2Lr3ty9qIijanrUR3anzEwlvzZiiyfTPjLbnFRsjsYg39OlV8cipDoq7+qNNj +# qFzeGxcytL5TTLL4ZaoBdqbhOhZ3ZRDUphPvSRmMThi0vw9vODRzW6AxnJll38F0 +# cuJG7uEBYTptMSbhdhGQDpOXgpIUsWTjd6xpR6oaQf/DJbg3s6KCLPAlZ66RzIg9 +# sC+NJpud/v4+7RWsWCiKi9EOLLHfMR2ZyJ/+xhCx9yHbxtl5TPau1j/1MIDpMPx0 +# LckTetiSuEtQvLsNz3Qbp7wGWqbIiOWCnb5WqxL3/BAPvIXKUjPSxyZsq8WhbaM2 +# tszWkPZPubdcMIIG7TCCBNWgAwIBAgIQCoDvGEuN8QWC0cR2p5V0aDANBgkqhkiG +# 9w0BAQsFADBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4x +# QTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGltZVN0YW1waW5nIFJTQTQw +# OTYgU0hBMjU2IDIwMjUgQ0ExMB4XDTI1MDYwNDAwMDAwMFoXDTM2MDkwMzIzNTk1 +# OVowYzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMTswOQYD +# VQQDEzJEaWdpQ2VydCBTSEEyNTYgUlNBNDA5NiBUaW1lc3RhbXAgUmVzcG9uZGVy +# IDIwMjUgMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANBGrC0Sxp7Q +# 6q5gVrMrV7pvUf+GcAoB38o3zBlCMGMyqJnfFNZx+wvA69HFTBdwbHwBSOeLpvPn +# Z8ZN+vo8dE2/pPvOx/Vj8TchTySA2R4QKpVD7dvNZh6wW2R6kSu9RJt/4QhguSss +# p3qome7MrxVyfQO9sMx6ZAWjFDYOzDi8SOhPUWlLnh00Cll8pjrUcCV3K3E0zz09 +# ldQ//nBZZREr4h/GI6Dxb2UoyrN0ijtUDVHRXdmncOOMA3CoB/iUSROUINDT98ok +# souTMYFOnHoRh6+86Ltc5zjPKHW5KqCvpSduSwhwUmotuQhcg9tw2YD3w6ySSSu+ +# 3qU8DD+nigNJFmt6LAHvH3KSuNLoZLc1Hf2JNMVL4Q1OpbybpMe46YceNA0LfNsn +# qcnpJeItK/DhKbPxTTuGoX7wJNdoRORVbPR1VVnDuSeHVZlc4seAO+6d2sC26/PQ +# PdP51ho1zBp+xUIZkpSFA8vWdoUoHLWnqWU3dCCyFG1roSrgHjSHlq8xymLnjCbS +# LZ49kPmk8iyyizNDIXj//cOgrY7rlRyTlaCCfw7aSUROwnu7zER6EaJ+AliL7ojT +# dS5PWPsWeupWs7NpChUk555K096V1hE0yZIXe+giAwW00aHzrDchIc2bQhpp0IoK +# RR7YufAkprxMiXAJQ1XCmnCfgPf8+3mnAgMBAAGjggGVMIIBkTAMBgNVHRMBAf8E +# AjAAMB0GA1UdDgQWBBTkO/zyMe39/dfzkXFjGVBDz2GM6DAfBgNVHSMEGDAWgBTv +# b1NK6eQGfHrK4pBW9i/USezLTjAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAww +# CgYIKwYBBQUHAwgwgZUGCCsGAQUFBwEBBIGIMIGFMCQGCCsGAQUFBzABhhhodHRw +# Oi8vb2NzcC5kaWdpY2VydC5jb20wXQYIKwYBBQUHMAKGUWh0dHA6Ly9jYWNlcnRz +# LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNFRpbWVTdGFtcGluZ1JTQTQw +# OTZTSEEyNTYyMDI1Q0ExLmNydDBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vY3Js +# My5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRUaW1lU3RhbXBpbmdSU0E0 +# MDk2U0hBMjU2MjAyNUNBMS5jcmwwIAYDVR0gBBkwFzAIBgZngQwBBAIwCwYJYIZI +# AYb9bAcBMA0GCSqGSIb3DQEBCwUAA4ICAQBlKq3xHCcEua5gQezRCESeY0ByIfjk +# 9iJP2zWLpQq1b4URGnwWBdEZD9gBq9fNaNmFj6Eh8/YmRDfxT7C0k8FUFqNh+tsh +# gb4O6Lgjg8K8elC4+oWCqnU/ML9lFfim8/9yJmZSe2F8AQ/UdKFOtj7YMTmqPO9m +# zskgiC3QYIUP2S3HQvHG1FDu+WUqW4daIqToXFE/JQ/EABgfZXLWU0ziTN6R3ygQ +# BHMUBaB5bdrPbF6MRYs03h4obEMnxYOX8VBRKe1uNnzQVTeLni2nHkX/QqvXnNb+ +# YkDFkxUGtMTaiLR9wjxUxu2hECZpqyU1d0IbX6Wq8/gVutDojBIFeRlqAcuEVT0c +# Ksb+zJNEsuEB7O7/cuvTQasnM9AWcIQfVjnzrvwiCZ85EE8LUkqRhoS3Y50OHgaY +# 7T/lwd6UArb+BOVAkg2oOvol/DJgddJ35XTxfUlQ+8Hggt8l2Yv7roancJIFcboj +# BcxlRcGG0LIhp6GvReQGgMgYxQbV1S3CrWqZzBt1R9xJgKf47CdxVRd/ndUlQ05o +# xYy2zRWVFjF7mcr4C34Mj3ocCVccAvlKV9jEnstrniLvUxxVZE/rptb7IRE2lskK +# PIJgbaP5t2nGj/ULLi49xTcBZU8atufk+EMF/cWuiC7POGT75qaL6vdCvHlshtjd +# NXOCIUjsarfNZzGCBT4wggU6AgEBMGswZjELMAkGA1UEBhMCQkUxEjAQBgNVBAgT +# CUFudHdlcnBlbjEMMAoGA1UEBxMDTW9sMQ8wDQYDVQQKEwZTQ0tDRU4xDDAKBgNV +# BAsTA0lDVDEWMBQGA1UEAxMNU0NLQ0VOIElDVCBDQQIBHzANBglghkgBZQMEAgEF +# AKB8MBAGCisGAQQBgjcCAQwxAjAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEE +# MBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCDQ +# pi3UkTYd5hIQhp1U+y4qPQttSDmT0K1fbakgvaeuvDANBgkqhkiG9w0BAQEFAASC +# AQBNip9BmXmacdNMIKGgof3l4qYO+6K0NyMnRFSiQJ/PvcPUN431IrjU4sdd2kR5 +# vyC0e5sjmqB4Mtf08MALOcfcSQ9fHznHZ1qiREtLUJCaNYO7XKmy0RZJgQxBT0yh +# YSXLgxg2WWBo/1rYOevDXVVQ/a9jhZhBYAOdKWHp1AXK9VPGxWwpHNJ52pBxK/If +# 5jpZbh7YI/9uWf/u0B+VxTwRSMtsgm9R4O/MkI6z2NnFvOi/Nui+OZvhVArCNN47 +# 3R3M1vkY2A6jkpJETuBFg0NFd/f/7DamMatzMm2H7N1yEstNLBoWUXlqMAA5JswX +# N6NENswgLIvVBRO4wn8UuKneoYIDJjCCAyIGCSqGSIb3DQEJBjGCAxMwggMPAgEB +# MH0waTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYD +# VQQDEzhEaWdpQ2VydCBUcnVzdGVkIEc0IFRpbWVTdGFtcGluZyBSU0E0MDk2IFNI +# QTI1NiAyMDI1IENBMQIQCoDvGEuN8QWC0cR2p5V0aDANBglghkgBZQMEAgEFAKBp +# MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDgy +# ODA3NDA1MFowLwYJKoZIhvcNAQkEMSIEIG3XT2TzF+o0dETSdwuXEapFlkYC6XzP +# hmIM9zcGVDAKMA0GCSqGSIb3DQEBAQUABIICAMhawcoAwPvkoaFagHUAloQPdO6f +# E62kM7eXkZ7xQjedOs+qpbn08U9P8T6BO+V9duPpos4EUdpHffCNX7cN0EQjNqR+ +# irdkhVg1fY9E9Uvp7xo3UQwPE3TvbpLfL2uUp4MV3nJo+mrg7p4Tgi47JEtvoQqo +# 2mlWRMsiuGdJ0PRRyOTpPxhVTSHir7TZRZBF1qTO2065ErmMCeoLtCONtjN0LvdR +# z7eR2tW5drGIQInLQFbW0aJ/F7OyCP2mkgK3CGp6FS+bwzk9osYnhCScBxvF3s/0 +# CFA2xhD+HygfAQJGdEg03IXWQJQWiScV3ZrDqqZQqw5Ikn7u0xHsg8W1BTgFzopF +# q6n/uZRV/jnkzWu0gqEBarjiIo6w6RyWFtayfuSp7SSDQaFO9mZrAlE2EeoBKpaj +# NdTYJKObNw1Q2cKdtbJMhIZ7sMKP3jUcyiRQX0Q4J4DZlLElbWH7Bac0NALfaRX2 +# KCrouNmlTw+O4vvsoWaQ/ROA6LS7yufMJYFAhsBEaF/WwfRmIe6IRAMQnPVGwnef +# 38PJL2DHBgKkK2/JpzO6/z/YK/6q0FlF2W3EuVwncrK5s/gvgzWzGNMEzXNOS0oJ +# P4+VAObDj3Sh+fcKIhdBd4UKqru9SyoNONwO4B+wTMNrpFnba4kGLl94lT8usdTp +# dOB6d9nI2RXErm6o # SIG # End signature block diff --git a/scripts/Downgrader.ps1 b/scripts/Downgrader.ps1 new file mode 100644 index 0000000..660af66 --- /dev/null +++ b/scripts/Downgrader.ps1 @@ -0,0 +1,224 @@ +echo "start Powershell as admin" +Set-ExecutionPolicy -ExecutionPolicy unrestricted + + +echo Stop edossync +$psync="C:\Program Files\eDos\synceDosLocal" +$taskname="eDosSync" +$t = Get-ScheduledTask -TaskName $taskname -ea ignore +Stop-ScheduledTask -TaskName $taskname + + + + +echo Copy soft +Expand-Archive -Force c:\software\eDosStation25.zip "c:\program files\edos\edosStation" +Expand-Archive -Force c:\software\eDosSync.zip "c:\program files\edos\synceDosLocal" +echo Sql Updates + +Start-ScheduledTask -TaskName $taskname + + +exit + +# SIG # Begin signature block +# MIIlPAYJKoZIhvcNAQcCoIIlLTCCJSkCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB +# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR +# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUuA7T+1F8RGm8cVT8haqFrNUP +# AxGggh9wMIIFjTCCBHWgAwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkqhkiG9w0B +# AQwFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD +# VQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVk +# IElEIFJvb3QgQ0EwHhcNMjIwODAxMDAwMDAwWhcNMzExMTA5MjM1OTU5WjBiMQsw +# CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu +# ZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQw +# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz +# 7MKnJS7JIT3yithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS +# 5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7 +# bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfI +# SKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jH +# trHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14 +# Ztk6MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2 +# h4mXaXpI8OCiEhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt +# 6zPZxd9LBADMfRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPR +# iQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ER +# ElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4K +# Jpn15GkvmB0t9dmpsh3lGwIDAQABo4IBOjCCATYwDwYDVR0TAQH/BAUwAwEB/zAd +# BgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wHwYDVR0jBBgwFoAUReuir/SS +# y4IxLVGLp6chnfNtyA8wDgYDVR0PAQH/BAQDAgGGMHkGCCsGAQUFBwEBBG0wazAk +# BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAC +# hjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURS +# b290Q0EuY3J0MEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0 +# LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwEQYDVR0gBAowCDAGBgRV +# HSAAMA0GCSqGSIb3DQEBDAUAA4IBAQBwoL9DXFXnOF+go3QbPbYW1/e/Vwe9mqyh +# hyzshV6pGrsi+IcaaVQi7aSId229GhT0E0p6Ly23OO/0/4C5+KH38nLeJLxSA8hO +# 0Cre+i1Wz/n096wwepqLsl7Uz9FDRJtDIeuWcqFItJnLnU+nBgMTdydE1Od/6Fmo +# 8L8vC6bp8jQ87PcDx4eo0kxAGTVGamlUsLihVo7spNU96LHc/RzY9HdaXFSMb++h +# UD38dglohJ9vytsgjTVgHAIDyyCwrFigDkBjxZgiwbJZ9VVrzyerbHbObyMt9H5x +# aiNrIv8SuFQtJ37YOtnwtoeW/VvRXKwYw02fc7cBqZ9Xql4o4rmUMIIFvDCCA6Sg +# AwIBAgIBHzANBgkqhkiG9w0BAQsFADBmMQswCQYDVQQGEwJCRTESMBAGA1UECBMJ +# QW50d2VycGVuMQwwCgYDVQQHEwNNb2wxDzANBgNVBAoTBlNDS0NFTjEMMAoGA1UE +# CxMDSUNUMRYwFAYDVQQDEw1TQ0tDRU4gSUNUIENBMB4XDTE4MDUyNDA2MTEwMFoX +# DTMwMDYwMTEyMDAwMFowTzEhMB8GA1UEAxMYVmFuZGVuYnJvdWNrZSBMdWMgQ1My +# MDIxMSowKAYJKoZIhvcNAQkBFhtsdWMudmFuZGVuYnJvdWNrZUBzY2tjZW4uYmUw +# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0WzD0gHTLFEbOjPUwobl2 +# VntS0kJVV2FRzxkZZ0Hhe9fbYB0tRK5+9GltD7rwhApM1E2xh8N6Pmxfr49VGVsP +# NqDhGRmp5wKE8htQiMXTjHPOTHZsvim/vvSL8WuouGoX6TQxxNBefE6Jmjcg2NHb +# UVAxDGcPwNADJBZnYPQTp6q2HniwdDv/OmZM1JJUYn4v1mt7YtS1eFO30ekuGzJu +# 3WQYeOiFNht/6AXZTWALQtwzaJfm563AbxfnHBsBuZFcRGYPE7aRDI9NIZyPqzT4 +# yOAK+phPN1ympNV+f8XXWaacfZXSWolbo8jqstHDjYYjf77Fj3WVN+y0GxtTsnRl +# AgMBAAGjggGKMIIBhjAJBgNVHRMEAjAAMB0GA1UdDgQWBBTftWyIS4unlpS288p5 +# Xofe0LiBZTAfBgNVHSMEGDAWgBTwKRT1aiEUklZUE6Q91a3wITrFeDALBgNVHQ8E +# BAMCB4AwHwYDVR0lBBgwFgYIKwYBBQUHAwMGCisGAQQBgjcCARUwOgYDVR0RBDMw +# MYEbbHVjLnZhbmRlbmJyb3Vja2VAc2NrY2VuLmJlgRJsdmFuZGVuYkBzY2tjZW4u +# YmUwNQYDVR0SBC4wLIYqaHR0cDovL2NybC5zY2tjZW4uYmUvU0NLQ0VOJTIwSUNU +# JTIwQ0EuY3J0MDsGA1UdHwQ0MDIwMKAuoCyGKmh0dHA6Ly9jcmwuc2NrY2VuLmJl +# L1NDS0NFTiUyMElDVCUyMENBLmNybDA+BgkrBgEEAYI3FQcEMTAvBicrBgEEAYI3 +# FQiEjLwhgsj9d4KhkyKEl5RGhMaSLoEBgtSEIYH6yGkCAWQCAQgwGwYJKwYBBAGC +# NxUKBA4wDDAKBggrBgEFBQcDAzANBgkqhkiG9w0BAQsFAAOCAgEARh/O37vbDW3A +# j1UAnSfYz+I0+fVk2ZurOQarjtdFC/Yu1ABJnXdMnwh1t5sjVIoEejvjnOlmu+B2 +# 1IQJPpxIph8cz+SnDZyhOpcKrCDn+PSeRvth0Zk4FvbXsLK9/WYgdzRObNOHxxAN +# COOc7PMLIMqeDJa+b9wH82Ae4MYdB8XZvoqJ+z172yoQMiNxe6UE2GropZiwJB56 +# Fw+k/jrKdOMEfZtfhzRqizCmMlTknbtFJ5hrqhwcaTA+4QCfCwouckererOATQnM +# 8Ic1KaOmYK7S5igmnA5mekiTKrBhcGp/xsZy0r8OUKVV1FSYnQ3035THia31oQzh +# Le48faEFkNuPbs8ZaiTFXwbdWGQ6uIK++soyulWOxeueNBAqIOGrj7XuDaIk+VD3 +# RN0B0g//Nv3HS6FboRC0eKeG3yezzjU+8fImcyPAaAEofUiiQYdOpnJsiaLDpHO+ +# 1r98pKmpe0fvy0IvYHicJLuk4tFyMvVBRgW1A+JtfHuXCnag88iB8AJ3tCUdGRCC +# z8yE1r4hbklyqhj9G5EmxoKZfi7mgh3CgL/tRUAXNqFltMj3cQlGKcKPUH004dKm +# FwAUAG4mzsO1Sk50S7EvdpvaW+sJ/bWMjXzLuq+xFwrsSTQ22KSm8XmnX2NGqws5 +# Tk+pqQupcwan4CsjflVqMva5nc4YxI4wggZyMIIEWqADAgECAhM4AAAAAm7pDq12 +# AeXXAAAAAAACMA0GCSqGSIb3DQEBCwUAMGcxCzAJBgNVBAYTAkJFMRIwEAYDVQQI +# EwlBbnR3ZXJwZW4xDDAKBgNVBAcTA01vbDEPMA0GA1UEChMGU0NLQ0VOMQwwCgYD +# VQQLEwNJQ1QxFzAVBgNVBAMTDlNDS0NFTiBSb290IENBMB4XDTE3MDYyMzExMzkz +# NFoXDTMyMDYyMzExNDkzNFowZjELMAkGA1UEBhMCQkUxEjAQBgNVBAgTCUFudHdl +# cnBlbjEMMAoGA1UEBxMDTW9sMQ8wDQYDVQQKEwZTQ0tDRU4xDDAKBgNVBAsTA0lD +# VDEWMBQGA1UEAxMNU0NLQ0VOIElDVCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +# ADCCAgoCggIBALFtbifIAikMI3YQIa+niSTV8PsH34uadkQePLs02kIdmPPT/u+T +# RYZO6njltLVcGnMWJLmzL4DamrAPUbJcpkRLMS35aDAonUT0kI/KNChNnHy2KI2K +# 3tUwoRcXND2aG4m2ewU7FNr++RkI57BBDJsc8CSwI0lNphVSiSo6yrOF7f6uo98N +# H3a0c9G2vM0jG0xztivAndUatxkAyz8rYScg8c6OmERO0xThXFxqyKRV75stVz3P +# yLYh8E6HDpkNZrBfuOltIH1rWxS7fGwvwp7hNmUD5wJqat5TlLvHDqv9nqoYoQHg +# JYuTHGHqWivqq9SbSzX4E0pJBRcNu3OXD18BQghNK8iXTfqjeF3ZNydos9IWshCe +# LBmopnSU17/zk5kscShjJz2FfgU75PzwyZxo1kKjq8n9D1oJsFUNSgKMGj4wQFyT +# hKLczZ81tPxSrb4CWC5N8RbN7CSehBug9NsAdkTbMzRjOurcqqsf2d+udccM4JGG +# EdRE3ZnXXKi+v92vh4n0uSvfTfqu61/0ad9QFJTbG+d8YYeNzVlAIOU862/SeeJg +# UemfzGn5k1R3CtpyukUWGlH8bP1rhNvjs1+zHRv1EYtZVbjru4aewCp0o3C5znAR +# u5ZEitUNaQrgAmDJLwpfu5HoqN++mpFH7pl9x6hFYCvLbWYkYIlR0e0NAgMBAAGj +# ggEWMIIBEjAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQU8CkU9WohFJJWVBOk +# PdWt8CE6xXgwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGG +# MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUr8bKrgoIFExryOnviOUxtH5 +# FDAwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5zY2tjZW4uYmUvU0NLQ0VO +# JTIwUm9vdCUyMENBLmNybDBHBggrBgEFBQcBAQQ7MDkwNwYIKwYBBQUHMAKGK2h0 +# dHA6Ly9jcmwuc2NrY2VuLmJlL1NDS0NFTiUyMFJvb3QlMjBDQS5jcnQwDQYJKoZI +# hvcNAQELBQADggIBAIbENXjQHhcyihmPSltFTBqy1G7XHIx6HipRnVZ/soUvcYUm +# iBYJtNCD1Tuc4fYyrYAgN6PNU6mNMNVqEStVPLfPTp+UWWFct/aQ8rvqAZR4LpfS +# jriWyCi4IdFYBD72N7zNIdGy3cSK55SMXIVcYLOcv4f8Cyply47IPgLmM7CePvRg +# A+UrHRRqdo4ij3/WsOsxuu2p9sk6rbz33qEaZDFjvjMd/QllsH1NzGkMkpQMdPyc +# 2XKls5OkBYDdYfPcEgRw9JjBXZ2oRLYecvUIT5C8nT54omxeVWefYG1FZaRRc/FX +# XZgbcfcX3uWiGBI5I9+R5hFvxTe6sJyT93QpY8xYqkrniqohSDd6bp4x2zFKAMSZ +# 4m8ddV8+KRZuZnZPL/ea/rJ3B/EhSvz+Z1I4xGCAUSJ2YqL5ewvCnyNUQ/ZVyQz3 +# cOclX5AqZAq/62DTTAR3w2GfhtTRLvVsxNja5JwuB+KqDSS5jI1T07MHCE+/NIjr +# xWUX9apftHtkylBwjpGfqZV7Zdx+jIpqzZOgf2UAMuJhEzR+nHmqLnVe1+WOx820 +# 8ElwksOhgokDHWF4LBafpYqKKxJhWYVXNj07PqFF2zIvCFGgsihJurTGRyfjxlNW +# ARPEs8o+ZyNUlIW/mh7p0RpYYFz2+G5xHWVWjK7sRTNFG64hsJpDhL/XD1aQMIIG +# tDCCBJygAwIBAgIQDcesVwX/IZkuQEMiDDpJhjANBgkqhkiG9w0BAQsFADBiMQsw +# CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu +# ZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQw +# HhcNMjUwNTA3MDAwMDAwWhcNMzgwMTE0MjM1OTU5WjBpMQswCQYDVQQGEwJVUzEX +# MBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0 +# ZWQgRzQgVGltZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExMIICIjAN +# BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtHgx0wqYQXK+PEbAHKx126NGaHS0 +# URedTa2NDZS1mZaDLFTtQ2oRjzUXMmxCqvkbsDpz4aH+qbxeLho8I6jY3xL1IusL +# opuW2qftJYJaDNs1+JH7Z+QdSKWM06qchUP+AbdJgMQB3h2DZ0Mal5kYp77jYMVQ +# XSZH++0trj6Ao+xh/AS7sQRuQL37QXbDhAktVJMQbzIBHYJBYgzWIjk8eDrYhXDE +# pKk7RdoX0M980EpLtlrNyHw0Xm+nt5pnYJU3Gmq6bNMI1I7Gb5IBZK4ivbVCiZv7 +# PNBYqHEpNVWC2ZQ8BbfnFRQVESYOszFI2Wv82wnJRfN20VRS3hpLgIR4hjzL0hpo +# YGk81coWJ+KdPvMvaB0WkE/2qHxJ0ucS638ZxqU14lDnki7CcoKCz6eum5A19WZQ +# HkqUJfdkDjHkccpL6uoG8pbF0LJAQQZxst7VvwDDjAmSFTUms+wV/FbWBqi7fTJn +# jq3hj0XbQcd8hjj/q8d6ylgxCZSKi17yVp2NL+cnT6Toy+rN+nM8M7LnLqCrO2JP +# 3oW//1sfuZDKiDEb1AQ8es9Xr/u6bDTnYCTKIsDq1BtmXUqEG1NqzJKS4kOmxkYp +# 2WyODi7vQTCBZtVFJfVZ3j7OgWmnhFr4yUozZtqgPrHRVHhGNKlYzyjlroPxul+b +# gIspzOwbtmsgY1MCAwEAAaOCAV0wggFZMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD +# VR0OBBYEFO9vU0rp5AZ8esrikFb2L9RJ7MtOMB8GA1UdIwQYMBaAFOzX44LScV1k +# TN8uZz/nupiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcD +# CDB3BggrBgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2lj +# ZXJ0LmNvbTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29t +# L0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYyaHR0 +# cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcmww +# IAYDVR0gBBkwFzAIBgZngQwBBAIwCwYJYIZIAYb9bAcBMA0GCSqGSIb3DQEBCwUA +# A4ICAQAXzvsWgBz+Bz0RdnEwvb4LyLU0pn/N0IfFiBowf0/Dm1wGc/Do7oVMY2mh +# XZXjDNJQa8j00DNqhCT3t+s8G0iP5kvN2n7Jd2E4/iEIUBO41P5F448rSYJ59Ib6 +# 1eoalhnd6ywFLerycvZTAz40y8S4F3/a+Z1jEMK/DMm/axFSgoR8n6c3nuZB9BfB +# wAQYK9FHaoq2e26MHvVY9gCDA/JYsq7pGdogP8HRtrYfctSLANEBfHU16r3J05qX +# 3kId+ZOczgj5kjatVB+NdADVZKON/gnZruMvNYY2o1f4MXRJDMdTSlOLh0HCn2cQ +# LwQCqjFbqrXuvTPSegOOzr4EWj7PtspIHBldNE2K9i697cvaiIo2p61Ed2p8xMJb +# 82Yosn0z4y25xUbI7GIN/TpVfHIqQ6Ku/qjTY6hc3hsXMrS+U0yy+GWqAXam4ToW +# d2UQ1KYT70kZjE4YtL8Pbzg0c1ugMZyZZd/BdHLiRu7hAWE6bTEm4XYRkA6Tl4KS +# FLFk43esaUeqGkH/wyW4N7OigizwJWeukcyIPbAvjSabnf7+Pu0VrFgoiovRDiyx +# 3zEdmcif/sYQsfch28bZeUz2rtY/9TCA6TD8dC3JE3rYkrhLULy7Dc90G6e8Blqm +# yIjlgp2+VqsS9/wQD7yFylIz0scmbKvFoW2jNrbM1pD2T7m3XDCCBu0wggTVoAMC +# AQICEAqA7xhLjfEFgtHEdqeVdGgwDQYJKoZIhvcNAQELBQAwaTELMAkGA1UEBhMC +# VVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2VydCBU +# cnVzdGVkIEc0IFRpbWVTdGFtcGluZyBSU0E0MDk2IFNIQTI1NiAyMDI1IENBMTAe +# Fw0yNTA2MDQwMDAwMDBaFw0zNjA5MDMyMzU5NTlaMGMxCzAJBgNVBAYTAlVTMRcw +# FQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgU0hBMjU2 +# IFJTQTQwOTYgVGltZXN0YW1wIFJlc3BvbmRlciAyMDI1IDEwggIiMA0GCSqGSIb3 +# DQEBAQUAA4ICDwAwggIKAoICAQDQRqwtEsae0OquYFazK1e6b1H/hnAKAd/KN8wZ +# QjBjMqiZ3xTWcfsLwOvRxUwXcGx8AUjni6bz52fGTfr6PHRNv6T7zsf1Y/E3IU8k +# gNkeECqVQ+3bzWYesFtkepErvUSbf+EIYLkrLKd6qJnuzK8Vcn0DvbDMemQFoxQ2 +# Dsw4vEjoT1FpS54dNApZfKY61HAldytxNM89PZXUP/5wWWURK+IfxiOg8W9lKMqz +# dIo7VA1R0V3Zp3DjjANwqAf4lEkTlCDQ0/fKJLKLkzGBTpx6EYevvOi7XOc4zyh1 +# uSqgr6UnbksIcFJqLbkIXIPbcNmA98Oskkkrvt6lPAw/p4oDSRZreiwB7x9ykrjS +# 6GS3NR39iTTFS+ENTqW8m6THuOmHHjQNC3zbJ6nJ6SXiLSvw4Smz8U07hqF+8CTX +# aETkVWz0dVVZw7knh1WZXOLHgDvundrAtuvz0D3T+dYaNcwafsVCGZKUhQPL1naF +# KBy1p6llN3QgshRta6Eq4B40h5avMcpi54wm0i2ePZD5pPIssoszQyF4//3DoK2O +# 65Uck5Wggn8O2klETsJ7u8xEehGifgJYi+6I03UuT1j7FnrqVrOzaQoVJOeeStPe +# ldYRNMmSF3voIgMFtNGh86w3ISHNm0IaadCKCkUe2LnwJKa8TIlwCUNVwppwn4D3 +# /Pt5pwIDAQABo4IBlTCCAZEwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU5Dv88jHt +# /f3X85FxYxlQQ89hjOgwHwYDVR0jBBgwFoAU729TSunkBnx6yuKQVvYv1Ensy04w +# DgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMIGVBggrBgEF +# BQcBAQSBiDCBhTAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t +# MF0GCCsGAQUFBzAChlFodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNl +# cnRUcnVzdGVkRzRUaW1lU3RhbXBpbmdSU0E0MDk2U0hBMjU2MjAyNUNBMS5jcnQw +# XwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lD +# ZXJ0VHJ1c3RlZEc0VGltZVN0YW1waW5nUlNBNDA5NlNIQTI1NjIwMjVDQTEuY3Js +# MCAGA1UdIAQZMBcwCAYGZ4EMAQQCMAsGCWCGSAGG/WwHATANBgkqhkiG9w0BAQsF +# AAOCAgEAZSqt8RwnBLmuYEHs0QhEnmNAciH45PYiT9s1i6UKtW+FERp8FgXRGQ/Y +# AavXzWjZhY+hIfP2JkQ38U+wtJPBVBajYfrbIYG+Dui4I4PCvHpQuPqFgqp1PzC/ +# ZRX4pvP/ciZmUnthfAEP1HShTrY+2DE5qjzvZs7JIIgt0GCFD9ktx0LxxtRQ7vll +# KluHWiKk6FxRPyUPxAAYH2Vy1lNM4kzekd8oEARzFAWgeW3az2xejEWLNN4eKGxD +# J8WDl/FQUSntbjZ80FU3i54tpx5F/0Kr15zW/mJAxZMVBrTE2oi0fcI8VMbtoRAm +# aaslNXdCG1+lqvP4FbrQ6IwSBXkZagHLhFU9HCrG/syTRLLhAezu/3Lr00GrJzPQ +# FnCEH1Y58678IgmfORBPC1JKkYaEt2OdDh4GmO0/5cHelAK2/gTlQJINqDr6Jfwy +# YHXSd+V08X1JUPvB4ILfJdmL+66Gp3CSBXG6IwXMZUXBhtCyIaehr0XkBoDIGMUG +# 1dUtwq1qmcwbdUfcSYCn+OwncVUXf53VJUNOaMWMts0VlRYxe5nK+At+DI96HAlX +# HAL5SlfYxJ7La54i71McVWRP66bW+yERNpbJCjyCYG2j+bdpxo/1Cy4uPcU3AWVP +# Grbn5PhDBf3Froguzzhk++ami+r3Qrx5bIbY3TVzgiFI7Gq3zWcxggU2MIIFMgIB +# ATBrMGYxCzAJBgNVBAYTAkJFMRIwEAYDVQQIEwlBbnR3ZXJwZW4xDDAKBgNVBAcT +# A01vbDEPMA0GA1UEChMGU0NLQ0VOMQwwCgYDVQQLEwNJQ1QxFjAUBgNVBAMTDVND +# S0NFTiBJQ1QgQ0ECAR8wCQYFKw4DAhoFAKB4MBgGCisGAQQBgjcCAQwxCjAIoAKA +# AKECgAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO +# MAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFN3Z26kJfKA1niMYcGIP/Ami +# zRJXMA0GCSqGSIb3DQEBAQUABIIBAIS07zxFtxExfvrQE3gmqXL9ohfMZaXeLOma +# jeAulJkp6arWlKCTA9/6c0XFTyV5r/vNxhV69z0jMqiZH5vvTQEfQyaPGaJbWKge +# P0evjxh3h74+vAn6GxXhLAI67LVEAv604ZVJciqZKnhcgZ/oID1obbTkV/XZAVDh +# Hbw0MNV6nONbdLzmn2JgzPdZ7+EDC6kwPQx4uxnG60oP+RRkylmfo59BWGDyloCW +# OcAqE/ZdAPzu+M9+TaNscaRqC4JG0AuYv/Dp7PL0+6W9fFs/BX788lCjonzjXBy+ +# c//mk/kFA69lGuYJp2wnXIN1yF6O9ynORt2Fec3JpNcZwNnvERyhggMmMIIDIgYJ +# KoZIhvcNAQkGMYIDEzCCAw8CAQEwfTBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMO +# RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGlt +# ZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExAhAKgO8YS43xBYLRxHan +# lXRoMA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc +# BgkqhkiG9w0BCQUxDxcNMjYwODI4MTM1MDM0WjAvBgkqhkiG9w0BCQQxIgQgwGts +# hmgwg+1No3Bfq4IiEmxiCsjb9Jy7A/l9sT7ewm0wDQYJKoZIhvcNAQEBBQAEggIA +# ES1N/fkR8sGknVNzke7MT8zzrvhMf6AcV4Y0tAPwiYl062sn97sokY+ih7uwFSAJ +# qDtgpFXV9WCYVgEoGPJo3XHFo9PM5A/QcHNOgp8z17Tm0T2dpU6vQbNX5kSxodL5 +# aI0dZLFxv6lEd0sRAlhm2E9U5qZhTSnxhHeSLLng8vPkThULMNxh1pR6FQ0o0FW2 +# C0q94q8mTsv+FOc6vo82GifQc2lHFmLAPB7Kh0ncxnwCYSgFmAGI6ZTfICD2GGJm +# ixTDAylDye7NEShjfFTOOPvbqmKJmsMi5ZaKLbmhImP3ot39PFmLbow+SlVzuUwT +# rbUgC+v8w+5PvF9I0yQCLSijkottLHuvfuoUje2WqVxQW8y9yObz7XDKtUGyWbbz +# bjKcjEqDYReCb3d9AgQ33Y4NeBrVRKJ03+SsmftWpr5xP6zjG4nvMu/5d8ITwO2V +# xMXGMFsX0ttN+bH9aIsY0RcCY9ENtCJ0E7t1yn8y64RWE8D531cMu752z+N4Ucex +# Gm72w8r69K5CvwaL5WaZxevl+BswNC0Dlbmc3juR57QElQ3/6edV3XZgExqBYgJH +# G31Sj6PyJI5+UNmdnNrdy3U1k4GcD5L4ZphN1xkCfITI9BvbXjs61IWDmx6Axqgs +# vfg9EIlBV8IWg8oOHWMqfWIHHkw8EEY9LxasNrFoM7E= +# SIG # End signature block diff --git a/scripts/Upgrader.ps1 b/scripts/Upgrader.ps1 index 17475ea..6caf238 100644 --- a/scripts/Upgrader.ps1 +++ b/scripts/Upgrader.ps1 @@ -1,6 +1,97 @@ echo "start Powershell as admin" Set-ExecutionPolicy -ExecutionPolicy unrestricted +function Test-AndInstallVcRedistX86 { + [CmdletBinding()] + param( + [string]$MinVersion = "14.51.36247", + [string]$InstallerPath = (Join-Path -Path $PSScriptRoot -ChildPath "vc_redist.x86.exe") + ) + + $minVerObj = [Version]$MinVersion + $isInstalled = $false + $installedVerStr = "" + + # Path 1: Check official Microsoft Visual Studio Runtime registry key (Most Reliable) + $vcRegPath = "HKLM:\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x86" + if (Test-Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x86") { + $vcRegPath = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x86" + } + + if (Test-Path $vcRegPath) { + $regProps = Get-ItemProperty -Path $vcRegPath -ErrorAction SilentlyContinue + + if ($regProps.Installed -eq 1) { + $major = $regProps.Major + $minor = $regProps.Minor + $bld = $regProps.Bld + $rbld = if ($regProps.Rbld) { $regProps.Rbld } else { 0 } + + if ($major -and $minor -and $bld) { + $installedVerObj = [Version]"$major.$minor.$bld.$rbld" + $installedVerStr = $installedVerObj.ToString() + if ($installedVerObj -ge $minVerObj) { + $isInstalled = $true + } + } + } + } + + # Path 2: Fallback check in Uninstall keys (Updated for "v14" naming) + if (-not $isInstalled) { + $uninstallPaths = @( + "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*", + "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" + ) + + foreach ($path in $uninstallPaths) { + $found = Get-ItemProperty -Path $path -ErrorAction SilentlyContinue | Where-Object { + ($_.DisplayName -like "*Visual C++*" -or $_.DisplayName -like "*vc_redist*") -and + ($_.DisplayName -like "*(x86)*") -and + ($_.DisplayName -like "*2015*" -or $_.DisplayName -like "*2022*" -or $_.DisplayName -like "*v14*") + } + + foreach ($item in $found) { + if ($item.DisplayVersion) { + $cleanVer = $item.DisplayVersion -replace '[^\d\.]', '' + try { + $parsedVer = [Version]$cleanVer + if ($parsedVer -ge $minVerObj) { + $isInstalled = $true + $installedVerStr = $item.DisplayVersion + break + } + } catch {} + } + } + if ($isInstalled) { break } + } + } + + if ($isInstalled) { + Write-Host "[OK] VC++ Redistributable (x86) v$installedVerStr is already installed." -ForegroundColor Green + return $true + } + + # 2. Install if missing or outdated + Write-Host "[!] VC++ Redistributable (x86) v$MinVersion+ is missing." -ForegroundColor Yellow + + if (-not (Test-Path $InstallerPath)) { + Write-Error "Installer not found at '$InstallerPath'." + return $false + } + + Write-Host "[+] Installing VC++ Redistributable (x86)..." -ForegroundColor Cyan + $process = Start-Process -FilePath $InstallerPath -ArgumentList "/install", "/quiet", "/norestart" -Wait -PassThru + + if ($process.ExitCode -eq 0 -or $process.ExitCode -eq 3010) { + Write-Host "[OK] VC++ Redistributable installed successfully." -ForegroundColor Green + return $true + } else { + Write-Warning "VC++ Redistributable installation failed (Exit Code: $($process.ExitCode))." + return $false + } +} echo Stop edossync $psync="C:\Program Files\eDos\synceDosLocal" @@ -8,6 +99,17 @@ $taskname="eDosSync" $t = Get-ScheduledTask -TaskName $taskname -ea ignore Stop-ScheduledTask -TaskName $taskname + +# ============================================================================== +# Upgrade Script Main Section +# ============================================================================== + +Write-Host "Starting Kiosk Station Upgrade..." -ForegroundColor Cyan +# Check / Install VC++ Runtime +Test-AndInstallVcRedistX86 +# Proceed with your app upgrade steps... +Write-Host "Updating application files..." + echo Copy soft Expand-Archive -Force c:\software\eDosStation.zip "c:\program files\edos\edosStation" Expand-Archive -Force c:\software\eDosSync.zip "c:\program files\edos\synceDosLocal" @@ -36,11 +138,12 @@ Start-ScheduledTask -TaskName $taskname exit + # SIG # Begin signature block # MIIlPAYJKoZIhvcNAQcCoIIlLTCCJSkCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUQ69lbjQoUZQw9k230yqRHkDl -# ZVOggh9wMIIFjTCCBHWgAwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkqhkiG9w0B +# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUDBgeM7BnKkbgc+mw3TXOFK/+ +# m9uggh9wMIIFjTCCBHWgAwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkqhkiG9w0B # AQwFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD # VQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVk # IElEIFJvb3QgQ0EwHhcNMjIwODAxMDAwMDAwWhcNMzExMTA5MjM1OTU5WjBiMQsw @@ -212,28 +315,28 @@ exit # A01vbDEPMA0GA1UEChMGU0NLQ0VOMQwwCgYDVQQLEwNJQ1QxFjAUBgNVBAMTDVND # S0NFTiBJQ1QgQ0ECAR8wCQYFKw4DAhoFAKB4MBgGCisGAQQBgjcCAQwxCjAIoAKA # AKECgAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFOocoqSgBisB+uNnAiSpmNBt -# aWgGMA0GCSqGSIb3DQEBAQUABIIBAHXjeZ+Hjw2yFnp7MIZwGMx99yG7bMaNGS+8 -# mScbkg8lVlEypybQsnk/5kO7fcoK6OvEdguxsQY/ZeoQLWuVjNojjMB4p1ldusoS -# NLDEDq16kQNn3OElytte9mvS0Wx5o6f5f1YZ7SQUWZKNmMG+9htKAG6UjH/uShPt -# Pbwz7fEpjalNl/Cqn8ZKwmhTijD56sHw0h5S4MPPEnnRRK91iLItkuvMFlDbr2IQ -# VlksyHbv+6vjoOvh2srr9M4H1SnEOZTalCXLc1OgsJINDGlY0tjK1mDzsMkke8Ip -# jX/KdUC56iA3dlP/2WNRFcFMu3gma2NxZXFf0CqDTpFbeXlvLByhggMmMIIDIgYJ +# MAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFGrx/Csz4H74HcTwNd0x1Wpx +# sC1UMA0GCSqGSIb3DQEBAQUABIIBABF7JZyjWH52hwp/Vs8wC7Vpmw1TaemnVQ8H +# nzOT0TuZY9NCt4Cf0FR/hJ6Smn1vUllmc1SHbP9rbgY9cUJ+Aq89uJ+0/4Ppd1xM +# xOwxxTXsfLbMmLIlah+OcTy8iSRl+6UtD0oH44wtZK6OoTfvB02/DGHu1FuY6IGM +# iuFNTgo5rN6xZAUS2P2v7UPEzWULHfIK+mJVcwUiPXFPokwDbcEn0aDcP4ndYgJd +# 4zOmw+r69q4A7xTJDaOVHE40zJIL5F22hzjdBZJK839CnB4JcBfOj/DOdFpdeMWT +# uq84IW20v8LVw1egZnqRLHe1izrC/+CoUlLIPU14FM6FCqPkRGShggMmMIIDIgYJ # KoZIhvcNAQkGMYIDEzCCAw8CAQEwfTBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMO # RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGlt # ZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExAhAKgO8YS43xBYLRxHan # lXRoMA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc -# BgkqhkiG9w0BCQUxDxcNMjYwODI3MTAwMzA4WjAvBgkqhkiG9w0BCQQxIgQgsMdV -# 9Sh4Cj+vBhVpptTDi+Hjs5+mW9qo0JXX+/oGAjwwDQYJKoZIhvcNAQEBBQAEggIA -# ehkBFEbtRczKku9Ye6rmFbWVaj5vPhnN5CB4so2q5LTuhr50AxiWKp3YOIIiG/5t -# E48CqrMr6eF5ZZZo4xX5JHpu0POtvJWbrrgKL4y6Gq7tnpcD15yLPA80jU7gc4MD -# Bg0BsmK4jRBTIeFb5jHZ18b4ECWPKrFVd0hJF63R7RocVOdVMRg9L2F7w+solbTs -# ZSQhWXZr3tZXmgDRPAyjjnaSX6lDLIwGqNsGwKM3kftoIvNUM0+V2GKisNpFT1Yg -# +9nERlksL2LDPpFNxiUaMsb1Qf/MjhfHdQoOIj8n/0Vm2gdaORNMFtxaOouMHsub -# dTYZXHVnXtcD1GL9yj2Jwqof323eOZbl2L3yqmyPlyOEDFrzhjWvsyb0mWsMf8pV -# mdGCgS/E4oG3dygeq2LwJj2X/nZfxv4lU7CtYT+5AjSsfX+rcpe8dNwuwNYK8HOC -# 1YG18LOhDAbdomxFo9TwLNDppA48heEACsgT/Wg1kXuNW+7nTXIqZtlRj5t4llLO -# wxBj3Un+bIUa3n071kVP/sNKHgGTXwatJlNsgSmZyHpKuzQc0mqW5YE6aG6pc0Rg -# zCVCtxqw8+repCJWJD1OHH3p8Y+LHsyyvFL4DEaEFYMkhmmqXT9KwZvB1nMTeaBz -# sYRN6W9NhQSy7L2dpld6mNFZDvKBmkguvszOd6M+KW0= +# BgkqhkiG9w0BCQUxDxcNMjYwODI4MTM1MDM0WjAvBgkqhkiG9w0BCQQxIgQgr7bq +# /P/++y0PzoN4WUm73KYvebuWilY9mEikKWxVzd0wDQYJKoZIhvcNAQEBBQAEggIA +# aobNCRUcCaix3vLRYUSDodLU8CU3fTDGDKJwJH6nRIjL9OpAarJh3JRNpFe5lhqN +# 42MtARZakLLponvKVeHD3cozC0pXFYEgv/4y1QZ+wYz/IMPJDKhyCz2eTyoEf9g0 +# 0FxXOkLqg/eYPDSkygI/rBWn+aTM5AveA46eEaO8z45yWRzzSOhz/f0lbN7SpTCu +# zkR0meK/QCS6O5Glr3e+Nx+GIhnumgf/0VDNpMrYYKRpnCNb4ut79gnyHUUYh3B7 +# OE+KuNRT2836VmxAoY7Dok+o4CsCc/fF+1//6tqS56ibC83HzvyoeD2DwaWMeSkq +# W0WqpYQis3dUeAd/RGH72O2YWIoyvUQK6dylHQJCVgAfZQOBxA9zX4AnA//YoSdK +# poBkSceAbx1uovpewdfchJ67gQpkXvFORnwxehd8kJr9uQgyV7FQcUcUsX8fg2Lj +# /ReNWk/B9MEu6CRVopfIaNtUzrnOnCWvVa1WcJbyXvNFWpW7Jd+tQCoOabt6jWgD +# iF7Auv/ZxWQDiWgO/TGLjnMshEeMIs/T/hlc2sTz4aB3kJN7iE/G3H6GMd9ppbL/ +# PshLPVD3A6o3RDwnW3ZT3G0oefBNoHXH5o9VfhbOTorYs6XQD06C9zIWlPRHWEmd +# mvimyCVabZ6MT0PpDJLBYI544lOksaIDlHoY7ffv5h0= # SIG # End signature block diff --git a/scripts/installatie.ps1 b/scripts/installatie.ps1 index 42bf648..a9ea9a2 100644 --- a/scripts/installatie.ps1 +++ b/scripts/installatie.ps1 @@ -329,17 +329,17 @@ exit # RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGlt # ZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExAhAKgO8YS43xBYLRxHan # lXRoMA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc -# BgkqhkiG9w0BCQUxDxcNMjYwODI3MTAwMzA4WjAvBgkqhkiG9w0BCQQxIgQgGtui +# BgkqhkiG9w0BCQUxDxcNMjYwODI4MTM1MDM0WjAvBgkqhkiG9w0BCQQxIgQgGtui # 82paX11KDIN86kiIL1XH+uGmvG+Fu6AqHv/faOkwDQYJKoZIhvcNAQEBBQAEggIA -# lyj7Pd/mhrxl0eYo6WOF/dAi+Fva6oLNeXVo9qWNfkPz2YuuqdQd/gvI0kiWji3P -# Z+YUa96/NSTqMkEVSF+XvFjPVB1OEud1WGyJM/mWbmB7PGyerB2zouZ7zlgO4oj1 -# LY/79COSGrphnVhHF6cI8FezBc4PvUs+A1SA+egmbZxRYGWLTZGF57kd9jBOJsQL -# PzP54tThr6eVSkxH0R8Vo+qQXso73SMQ7Qz9drUTKi6s8rLCC8loKlioNjsfh/z0 -# jtNuh3uRxzXrLSmUhPVqeObZNtZerB+C4RGLWC+re1pSr+LZKMSPW85929UItGtu -# Toq61xQLP7qyUVeph4nRmrx4BfcC629jR3aDc+BqvhZ2AQ7moDgdE/X8CRX+8vdl -# WWm6gHmBzfUzZ8fCrg2pBxFoT0Xm1BH9HFTMrcK27P9yym1lxU3mwEq+9Ur0vJAf -# 0K2VKFjayM673sl292euKQC2i99wWj3+xG+RiiS6ducdQUc3v6UE+FTTBfBEiUhn -# qLO7l3H5Uf+PUpLEjBfnllqViKO0qZ21vTPZc6u+HirI0m3Skx5I+2Sbh6GbG7tP -# IwknCiKLmSeRLyzBccn/vGYrxqmJwmYi6gKXrPMywhhPPuNpkjR2fEXAxHnFpBB1 -# CgGeRJO4xdvUUbCQLMG8UCpwbGa4IouxqI+YW88q5UA= +# WEy1zMVigObWO/ONXmEImnn0kFcwsA1gYPA70rHptdcZawXa//20HuO6eZWBe7d8 +# g/3uAQG6nwea4wsu5vbzOMFBimZ9mo3FtdXhzOI4O5L/k2m9nkIyHBU7qj4do5ii +# cIVEaV1YkPV883W/CHoonltyLx1DJU5s7LKXa5LLMU6dn7+6TH/gJbKKO0Rf+ec1 +# o/Ka+sQPrUcdvykMHkEFZaACBZNnzD0DmZaWgAhKtDLVVSHAe3UmVPcA2v+UeIcT +# hur2htdynxlJ+eqQ0DVNtPa3ZVvExAetaZvsjlPCOhaAyI5cwvYw4QlT9j/ux0Jx +# xvQWLJepRpKHpcQW5ddE8q3SX2CNyeOTVkWrBHgX/0nIZTV6kqlmUbUpIVHQOzVV +# 81JMEbpgoil79RMhlRH0tOlOjsauNlRMSELuYV7QEiL78XlLfPSelpIPnewKsjmm +# HF7UYCcUccQyYGiUSGfAskSj3Zv2/FwR9+9uiTZGSLwjAlT9G8pODmxeYaFINK+C +# D+BZfmBXcMaMV0uTMyO5/Dp3VeLnQBdXOhC0UYCj5j+kPD3riQYzned5+K/oovBE +# wJJJfNm3DOXU5uKL0tD/uodZLSd3axLGC6UFDMYEshrlOIfF1uPYy9xJklKsJLgp +# EAqJYfL6iSCYsv/ULwqH39RNXZi/g7hcbUcx99xrdZ0= # SIG # End signature block diff --git a/scripts/installatie2.ps1 b/scripts/installatie2.ps1 index 7e8d044..62ce39e 100644 --- a/scripts/installatie2.ps1 +++ b/scripts/installatie2.ps1 @@ -193,17 +193,17 @@ exit # RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGlt # ZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExAhAKgO8YS43xBYLRxHan # lXRoMA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc -# BgkqhkiG9w0BCQUxDxcNMjYwODI3MTAwMzA4WjAvBgkqhkiG9w0BCQQxIgQg6Tgk +# BgkqhkiG9w0BCQUxDxcNMjYwODI4MTM1MDM1WjAvBgkqhkiG9w0BCQQxIgQg6Tgk # d9vgRJTrKaa/aNqr0ugqtMxl17/Df7q35ywcJSEwDQYJKoZIhvcNAQEBBQAEggIA -# roHEl+sxHtNEt7R4ya9BSDSLcXN8ImybetR42y1XolYlXdvG4/zLyL7gzlowxCoR -# h1d354aw+7PS56YCPSKMGwIzjELIybN4Wc6a23l7jZp2LVRTMZzZ13VlrPoJXtd+ -# v/fh0QJirLRwlB42disWNwEvyARIONOK11YrbPeQbxcdSL4oNIAvoyATBvRa/TmG -# zFgTB479XxuCjenrphwdtMFdnqpUFyq4jMZXjcDl9Obi3dGRBHZAzd8azyVeFOb+ -# uq21Leu/f7z0WDtVXjm2INXRmVVHH+J/ZvGsQGvtkZibFKtpYwTy+TSDgW5JhQ/k -# PQH4je3+tzcFG0Tqx2lGo3EtdAItv8eJcnyOCQELQQYx6ddRt5vL5bfsQKJuYgdy -# prOX3tIkyl9xSVAvO0CWEk7zM/VsXl4VzHH/g9oB42x1lcLClXVQ9QBquoPJ7kKS -# MuytoKgpoI6Ed3qzUrXZabFzgo0r7zZWrw99NEeHPsIAshuSryPuYNicT8vCpxWh -# WZZNmh0sG2qQ10kAnCFKp98E80jtpRgIkg8ytROuh2E7NSAkYol8diR8GFS+A8lI -# pggc+51YEvjfZniO8sXEUQv3/+hQjkx941kNDbVkQI9O3mphUURArTuRLaQpDzQU -# JGeQtnEm62I3yXUWKfBD6wvV4LCmWtkA4elF4Gyd/+E= +# V8Xidv7kfa+J4yFR/CpoDRtrnSeGdplYxAgMJEX/+jz4vDERAwPcAxJbyYjp3QPZ +# gNvGU7iFLHNfxVEpGv/xNhuEuvotRnqsEc7u5V4VJuSDho8dvWW/X7cEabJgTbD+ +# 4ayUnQochv5ZtlCZ9SOAsvOaV0Be1AQcqbN+kjsEG95cbTSyxxs6FRbmhgT9vmkp +# 5vFRnb1OTtztmmR+3ggEUmzFVVxhQuWEIinghUSvoZBloj6PhJU5P73TWaxrC+A4 +# kGs/sH1nvNpts5hBl0U66gUYwR12vvECZknbSyGm6kyo02ZlMBoEKydO9R44nygZ +# syzIakMo5s1AiDgBsoZRogFjzmZji9KBVGYpeuAY/RrBXdxtZADsHO1NJZ+isyQ6 +# 5QmqL6D+oHyG/UkCW3BUED48LvVQVU2PKXLmiF2D8MrR/Kra8ZYVFu+wDYOKX933 +# bunKlsrQ/oisKeUsNp0jQIA8YAGnTZNld3owwUBP+nrolRms1BpXCK1hHnmI9xxN +# yCurwa8meLHU630stovHTGakwjTTJitA23nhFaLV9tGM4FWPD/ZobsCis+N9hIQu +# zrEKu0ijY4gbDgCNEUNbfrN4libveQzdx81a4Eh4Q3ncXuNjvauNmSbvL0k0fp6q +# u1IvQ1N4wTDXyY8RjECbvGw6GAkSqXDSrW35UKNBYbY= # SIG # End signature block