diff --git a/linker-version.pl b/linker-version.pl new file mode 100644 index 0000000..148cd1d --- /dev/null +++ b/linker-version.pl @@ -0,0 +1,24 @@ +#!/usr/bin/perl -w +# +# Modify the linker version in the EFI/PE header +# +# NOTE: only use this script when the signature doesn't match after +# a binutils upgrade +# + +use strict; + +# The target version of binutils: 2.32 +my $major_linker_version = 2; +my $minor_linker_version = 32; + +my ($file) = @ARGV; + +die "$file: $!\n" unless open(my $fh, '+<', $file); +# Set MajorLinkerVersion at 0x9a +die "seek $file: $!\n" unless seek($fh, 0x9a, 0); +die "write $file: $!\n" unless print $fh pack('C', $major_linker_version); +# Set MinorLinkerVersion at 0x9b +die "seek $file: $!\n" unless seek($fh, 0x9b, 0); +die "write $file: $!\n" unless print $fh pack('C', $minor_linker_version); +close($fh); diff --git a/shim-correct-license-in-headers.patch b/shim-correct-license-in-headers.patch new file mode 100644 index 0000000..97f4436 --- /dev/null +++ b/shim-correct-license-in-headers.patch @@ -0,0 +1,47 @@ +From 64492acf8b1d72cea0c3e203887bfe26fb840f1d Mon Sep 17 00:00:00 2001 +From: Gary Lin +Date: Thu, 13 Dec 2018 17:19:36 +0800 +Subject: [PATCH] Add the license change statement for errlog.c and mok.c + +--- + errlog.c | 6 ++++++ + mok.c | 6 ++++++ + 2 files changed, 12 insertions(+) + +diff --git a/errlog.c b/errlog.c +index 18be482..4a1fffb 100644 +--- a/errlog.c ++++ b/errlog.c +@@ -3,6 +3,12 @@ + * Copyright 2017 Peter Jones + * + * Distributed under terms of the GPLv3 license. ++ * ++ * As Peter stated in issues#155: ++ * "I'll publicly state here that as the author of those files, you can ++ * treat them as dual-licensed with the GPLv3 text that accidentally ++ * made it in and the BSD license they should have borne." ++ * Ref: https://github.com/rhboot/shim/issues/155#issuecomment-443738252 + */ + + #include "shim.h" +diff --git a/mok.c b/mok.c +index 3867521..903b3b4 100644 +--- a/mok.c ++++ b/mok.c +@@ -3,6 +3,12 @@ + * Copyright 2017 Peter Jones + * + * Distributed under terms of the GPLv3 license. ++ * ++ * As Peter stated in issues#155: ++ * "I'll publicly state here that as the author of those files, you can ++ * treat them as dual-licensed with the GPLv3 text that accidentally ++ * made it in and the BSD license they should have borne." ++ * Ref: https://github.com/rhboot/shim/issues/155#issuecomment-443738252 + */ + + #include "shim.h" +-- +2.19.2 + diff --git a/shim.changes b/shim.changes index a3fb48c..3ca48eb 100644 --- a/shim.changes +++ b/shim.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Fri Jan 22 03:29:56 UTC 2021 - Gary Ching-Pang Lin + +- Update the SLE signature +- Exclude some patches from x86_64 to avoid breaking the signature +- Add shim-correct-license-in-headers.patch back for x86_64 to + match the SLE signature +- Add linker-version.pl to modify the EFI/PE header to match the + SLE signature + ------------------------------------------------------------------- Wed Nov 4 05:53:35 UTC 2020 - Gary Ching-Pang Lin diff --git a/shim.spec b/shim.spec index 9962037..fa59131 100644 --- a/shim.spec +++ b/shim.spec @@ -1,7 +1,7 @@ # # spec file for package shim # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -59,6 +59,7 @@ Source10: strip_signature.sh Source11: signature-sles.x86_64.asc Source12: signature-opensuse.aarch64.asc Source13: signature-sles.aarch64.asc +Source14: linker-version.pl Source50: dbx-cert.tar.xz # vendor-dbx.bin is generated by generate-vendor-dbx.sh in dbx-cert.tar.xz Source51: vendor-dbx.bin @@ -73,6 +74,8 @@ Patch3: shim-bsc1092000-fallback-menu.patch Patch4: shim-always-mirror-mok-variables.patch # PATCH-FIX-UPSTREAM shim-bsc1174512-correct-license-in-headers.patch glin@suse.com -- Fix the license header in errlog.c and mok.c Patch5: shim-bsc1174512-correct-license-in-headers.patch +# PATCH-FIX-SUSE shim-correct-license-in-headers.patch glin@suse.com -- Another fix for the license header in errlog.c and mok.c +Patch51: shim-correct-license-in-headers.patch # PATCH-FIX-UPSTREAM gcc9-fix-warnings.patch mliska@suse.cz -- MokManager: Use CompareMem on MokListNode.Type instead of CompareGuid Patch6: gcc9-fix-warnings.patch # PATCH-FIX-OPENSUSE shim-fix-gnu-efi-3.0.11.patch glin@suse.com -- Fix the build error caused by the typo fix in gnu-efi 3.0.11 @@ -142,10 +145,15 @@ The source code of UEFI shim loader %patch2 -p1 %patch3 -p1 %patch4 -p1 +%ifarch x86_64 +%patch51 -p1 +%else %patch5 -p1 +%endif %patch6 -p1 %patch7 -p1 %patch8 -p1 +%ifarch aarch64 %patch9 -p1 %patch10 -p1 %patch11 -p1 @@ -155,6 +163,7 @@ The source code of UEFI shim loader %patch15 -p1 %patch16 -p1 %patch17 -p1 +%endif %if 0%{?is_opensuse} == 1 %patch100 -p1 %endif @@ -234,6 +243,14 @@ for suffix in "${suffixes[@]}"; do # alternative: verify signature #sbverify --cert MicCorThiParMarRoo_2010-10-05.pem shim-signed.efi if test -n "$signature"; then +%ifarch x86_64 + # Modify MajorLinkerVersion and MinorLinkerVersion in the + # EFI/PE header to match the one for the SLE signature. + if test "$suffix" = "sles"; then + chmod 755 %{SOURCE14} + %{SOURCE14} shim.efi + fi +%endif head -1 "$signature" > hash1 cp shim.efi shim.efi.bak # pe header contains timestamp and checksum. we need to diff --git a/signature-sles.x86_64.asc b/signature-sles.x86_64.asc index 43defaf..52b2c33 100644 --- a/signature-sles.x86_64.asc +++ b/signature-sles.x86_64.asc @@ -1,39 +1,39 @@ -hash: 06eb5badd26e4fae65f9a42358deef7c18e52cc05fbb7fc76776e69d1b982a14 +hash: 040b3bc339e9b6f9acd828b88f3482a5c3f64e67e5a714ba1da8a70453b34af6 # 1970-01-01 00:00:00 timestamp: 0 -checksum: f349 +checksum: 15eb -----BEGIN AUTHENTICODE SIGNATURE----- MIIhRgYJKoZIhvcNAQcCoIIhNzCCITMCAQExDzANBglghkgBZQMEAgEFADBcBgor BgEEAYI3AgEEoE4wTDAXBgorBgEEAYI3AgEPMAkDAQCgBKICgAAwMTANBglghkgB -ZQMEAgEFAAQgButbrdJuT65l+aQjWN7vfBjlLMBfu3/HZ3bmnRuYKhSgggssMIIF -FDCCA/ygAwIBAgITMwAAACtLebNpTRIRhwABAAAAKzANBgkqhkiG9w0BAQsFADCB +ZQMEAgEFAAQgBAs7wznptvms2Ci4jzSCpcP2TmflpxS6HainBFOzSvagggssMIIF +FDCCA/ygAwIBAgITMwAAADfNp5v/NLz58AABAAAANzANBgkqhkiG9w0BAQsFADCB gTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjErMCkGA1UEAxMi -TWljcm9zb2Z0IENvcnBvcmF0aW9uIFVFRkkgQ0EgMjAxMTAeFw0xODA3MDMyMDUz -MDFaFw0xOTA3MjYyMDUzMDFaMIGGMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +TWljcm9zb2Z0IENvcnBvcmF0aW9uIFVFRkkgQ0EgMjAxMTAeFw0yMDAzMDQxODMy +MjZaFw0yMTAzMDMxODMyMjZaMIGGMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv cnBvcmF0aW9uMTAwLgYDVQQDEydNaWNyb3NvZnQgV2luZG93cyBVRUZJIERyaXZl -ciBQdWJsaXNoZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvdKwb -/nA6xOyJrEv4ooawjt0TKaVPYqrgbJYSJvc3KVdEhVlG+ruFyDOE+gNrAFwWd2n/ -kr6WRjgiAi3YZxN6f88IxpBORWRWxQH1PRHO1/DbWxuvkDNDo004C36x/+P2KegW -6XtLaC+bGMOkz3Gr5aupL3mFCwYZ9BT1OeVXzCvgW56IWjnZdsLjMmWSqCaSweOP -mUORFMbxb9HqNMk2bNXCeHGN/vJOTqrRFB5TzM8d7myYzCy3I71Zznp5edhJ17Pc -Cff1sTevAsG6u5yvseFWvhuN4xqjYh9iCPpeeJPZF5kL2Id5WvbYoXdlK1Mae6tn -hlIT/anAvqUySWFFAgMBAAGjggF8MIIBeDAfBgNVHSUEGDAWBgorBgEEAYI3UAIB -BggrBgEFBQcDAzAdBgNVHQ4EFgQUXcTMqyC8vQlKJsRMb8/AmZ5aD3swUAYDVR0R +ciBQdWJsaXNoZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChn/rg +Nc1OXC3JNjrD/oG/1CmHukWk8dGPwF6QK0MdkTEZSryfjceBKffczUKx7xcqsWMQ +KzDbXG5JIuJOJ2KXrhmHvxOzfAt4NWQyq/YiB0DCziBIiovVlALvWw6nvS61wXja +LSYPUyGMS2PlUNvojPlC9OlJv0NhTMcXNajDZhOAvpcWl1Cj9yxN+PG4n5+2/6Lf +hHfMsuo2Ra9Qg9UIexPbj0tcuMCJ0zgAGiCZ+hbmfUa+cNk2/YTUaRbhAdMsQXpr +JXclEKiYcYlhSzACv9o2a+DjvRmWpJnKqLt3z14z0fHrpVfj6Qn98Q+m1Uy73PvN +I5rj/LTVAW5IdPIVAgMBAAGjggF8MIIBeDAfBgNVHSUEGDAWBgorBgEEAYI3UAIB +BggrBgEFBQcDAzAdBgNVHQ4EFgQU9dFg/V5Jda1EoJnmLhjc13mI8qAwUAYDVR0R BEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBS -aWNvMRYwFAYDVQQFEw0yMjk5MTErNDM3OTU2MB8GA1UdIwQYMBaAFBOtv0MJvYJw +aWNvMRYwFAYDVQQFEw0yMjk5MTErNDU4MzY3MB8GA1UdIwQYMBaAFBOtv0MJvYJw nIzVTzFu1SKYihvUMFMGA1UdHwRMMEowSKBGoESGQmh0dHA6Ly93d3cubWljcm9z b2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvclVFRkNBMjAxMV8yMDExLTA2LTI3LmNy bDBgBggrBgEFBQcBAQRUMFIwUAYIKwYBBQUHMAKGRGh0dHA6Ly93d3cubWljcm9z b2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljQ29yVUVGQ0EyMDExXzIwMTEtMDYtMjcu -Y3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggEBAFS3cfPO8qOb7UpD -WJ2QTBYr5/gbGU8Chzt00ByoiVUzMJZL5T/dX3bTRtIp4mpcjlOF5Lsxb/wHMXu+ -nh61jCa2m3k8SIAaZ8da6REOaw1XBOGU8BSFR4rQiU6nvf0FOlS8TXF5uRApC9Mg -BuHT5nDmLJAfz2iPWDHRRd3ErMgnwu3mpv72ElNM30U8D8oxXhx8bZ8adBjt3VOZ -ZlfgsMrMqu5eV8VLB84zuFRH997pn8IieFxMRZfdqQWZ2utGryN7sslxT4s5ynMm -0c61dX0SUDS2Sb78vx9mbG4SRr/S2q6Wti7KqUIl4OSyYTO5j9ENTIH9/e+61n/7 -ZFKQ3a4wggYQMIID+KADAgECAgphCNPEAAAAAAAEMA0GCSqGSIb3DQEBCwUAMIGR +Y3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggEBAA0NKC0GRT65UdsY +gyMEvNPqQSQSI4nxOPRI60HAnUr0fJ42j1hXzjy2oJro8toSI9sLyqo+XVZ/u8fi +R8gd9gN2mpZcONykp6aaDQyvZo4Amo70lfynYpMZGTZOyx1q1go1FicVuJEF8fxS +OOaR6fqgDg5nHb+MYOmCOvdoGX+I/9NB/w2M8ZS6p+Hc6Pqot4ME2Dnjfgnt/O4L +decdRvnpAQ0/gMzB7MdTTrOnr660g0OoIut/pHUecWz1ArOmjIf+4tV4wvzJkD/n +mkVAE0aWk9giO47XizIGyl06ymXGFu77Sy6xux5xLx7ZucZZpeNF9k2S+rIW6xJ3 +/n+tMEowggYQMIID+KADAgECAgphCNPEAAAAAAAEMA0GCSqGSIb3DQEBCwUAMIGR MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTswOQYDVQQDEzJN aWNyb3NvZnQgQ29ycG9yYXRpb24gVGhpcmQgUGFydHkgTWFya2V0cGxhY2UgUm9v @@ -68,53 +68,53 @@ JSKx2XvnAwYqo/cekEbDAA3WGYnjDjUnYgNxFabv0CegoFk3YPg4lLjgeHD4ukyG h5T24K4CRe5lwrajfmkWdQeSm/WmvFmDWDGCFY0wghWJAgEBMIGZMIGBMQswCQYD VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSswKQYDVQQDEyJNaWNyb3Nv -ZnQgQ29ycG9yYXRpb24gVUVGSSBDQSAyMDExAhMzAAAAK0t5s2lNEhGHAAEAAAAr +ZnQgQ29ycG9yYXRpb24gVUVGSSBDQSAyMDExAhMzAAAAN82nm/80vPnwAAEAAAA3 MA0GCWCGSAFlAwQCAQUAoIHcMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwG -CisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCD6ykwy -9WFgxYzOlShnIo9DZm2NSze7xGmix63B1OyYAzBwBgorBgEEAYI3AgEMMWIwYKAy +CisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCCQJUp+ +4ZbxAuzDs6s/jYNBA9f4DyqI0VmWwPV9b+SJiDBwBgorBgEEAYI3AgEMMWIwYKAy gDAAUwBVAFMARQAgAEwAaQBuAHUAeAAgAFAAcgBvAGQAdQBjAHQAcwAgAEcAbQBi AEihKoAoaHR0cHM6Ly93d3cubWljcm9zb2Z0LmNvbS9lbi11cy93aW5kb3dzIDAN -BgkqhkiG9w0BAQEFAASCAQAG1j/mfdzszjW/reGQrD0kqMnmHAgXwJtNFaaIQqM3 -w4MkMCpJfN0eOZ/elQG6gR8dxel2pJryL9bEw8Mk//jXB82CKowVomvzcPMT0guz -yNZT9fcAYNhuZqzCn4Aa7fFeMOHo85eUX43ytW+XiDe24X2jy215JJFaVpentAXM -H2bh6HZZoq3TkRZI32mdxmIFXzwObInaPjEjwOqT0eVnV8AfZTqUndgFZuLxe3r4 -UcsZVrhJ3FuWshMIILwuQDawqM6OL/efHixeeXtOMs7ibPMGOYr9RnQQxRvsyzMK -/oUijHwIu6/9lV1loJsZKYNj4n6I5pTNhAp4lmnfBwF3oYIS5TCCEuEGCisGAQQB +BgkqhkiG9w0BAQEFAASCAQBsj27JMiVaozH4KhGwqYEdbyUIxRaZgod2xcHPHV4r +xIa5CNHvHqEV2o7f3Zj6MuBfGjDi3IhHmF/BQe8TrbHF9tPUKeldw/Jw7qAbUuhX +WOA0db7hZGozECGlmSo5Ne4xK5uRCmIVxGtsBc2RT8Rl+j+Onx0ChIxpgXh8K0N7 +0mVHvuSLKssG6uMj5j0DlheroKCBUzlwkyWlQM45wYPamKbvEH3ar1MOb/ob0W3b +0nuK4kpt5m6rAPcaBQUkXpSHeAKjG1kMZYKejpxPMSCO+ejix0HL/04ADdiHrgUd +W+yk1YhJpLJIqOHeO3hkjVjwbhOLV8BkWuvEsXAQ9zqeoYIS5TCCEuEGCisGAQQB gjcDAwExghLRMIISzQYJKoZIhvcNAQcCoIISvjCCEroCAQMxDzANBglghkgBZQME AgEFADCCAVEGCyqGSIb3DQEJEAEEoIIBQASCATwwggE4AgEBBgorBgEEAYRZCgMB -MDEwDQYJYIZIAWUDBAIBBQAEIMqRrTFRqu2dUKDPc+jkywto8W4UUxNEkcAu7lOG -banGAgZclUjuk2YYEzIwMTkwNDA0MTk0MTM4LjczNFowBIACAfSggdCkgc0wgcox +MDEwDQYJYIZIAWUDBAIBBQAEIEOBCo7YNgaAKImX0b9wycuAIJwpnJYwuVxtxcfm +INJRAgZfFh+ANmwYEzIwMjAwNzMwMjE1MTI1LjE3OFowBIACAfSggdCkgc0wgcox CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1p Y3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg -RVNOOkVBQ0UtRTMxNi1DOTFEMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt -cCBTZXJ2aWNloIIOPDCCBPEwggPZoAMCAQICEzMAAADxdMXRruM9mz0AAAAAAPEw +RVNOOjIyNjQtRTMzRS03ODBDMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt +cCBTZXJ2aWNloIIOPDCCBPEwggPZoAMCAQICEzMAAAEY/jr32RvUsTMAAAAAARgw DQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0 b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcN -MTgxMDI0MjExNDIzWhcNMjAwMTEwMjExNDIzWjCByjELMAkGA1UEBhMCVVMxEzAR +MTkxMTEzMjE0MDM1WhcNMjEwMjExMjE0MDM1WjCByjELMAkGA1UEBhMCVVMxEzAR BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p Y3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2Eg -T3BlcmF0aW9uczEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046RUFDRS1FMzE2LUM5 -MUQxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCoq4WoWFgRw7nPLB1StrwYp//tsc3M -WI2NwRPfoxHCtwpJHXR9mNsTkPG6fndeyO/cJRCeBH1BSggI1jlz8PVJ+SV4kTgO -FIPez6ArJ8DfOLrds68NV0YSlbj7s8Z3MwItbB1DcqbGE+HAjhagpkvonI57o4FK -fUUJsqbneG1Wpp+p11ibMiONcVr24PKoEK3Acg5WWScdrWPc9eOLxr7PX0nt+SfD -f8QsQPpkK47Pv0LCRhp6hWh7jJn0B7ON3asDBxNhPAM3Qv5nPIOoMZ91OIhX3HqB -sLzfiGFLKxbSAyIgliF+l7IzopZ9IXpxZr3mYIpEUoHd+yoCjoM1FRvNAgMBAAGj -ggEbMIIBFzAdBgNVHQ4EFgQUZsTj6fTV/8ys+9ERmvuLxtq/l1IwHwYDVR0jBBgw +T3BlcmF0aW9uczEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046MjI2NC1FMzNFLTc4 +MEMxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDC+ANcEX8/NRj1t5YkXYB1ZHPxQSwr +hOOfXX1c5aes0t2gTI6OeH4ntcwpyTvSk7+9BBVoqTvHwfbDZmb15nQ94q+UPfBq +a/8m1tes/6Fbt1AeVHy4By1AVFi6Yi1vWd3bVRyY2SAeVonIzEFGGtQveRv2Yj6j +bCHE2+xP3Q+AcgxweE8l6/nAN5S/mTDKV2flHNQg+d5X9SSN7MdLC5OAJgSy374I +i/AnYEKyIgnOFJVkIxkLDxOyrnV/gORloaxyVGlDemnLBNahwsxnmkrpChcwvDie +Ax4g/Z1fJ0+C+wdA+EtA7rrgnRkjhKHfWkZj40bmx4GpQdJmF1zAZ0FxAgMBAAGj +ggEbMIIBFzAdBgNVHQ4EFgQU8VvlsC4PYAnYOU/05iPr+LTHKD4wHwYDVR0jBBgw FoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDov L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljVGltU3RhUENB XzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0 cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNUaW1TdGFQQ0FfMjAx MC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDCDAN -BgkqhkiG9w0BAQsFAAOCAQEAOrVnhwBI+vi/AD2MeRllHYwg1bUCP5sFOAA5kGAV -GDiDcCDDPGeOiMjJPZDvAm3XCDQdkYJCzR18rRHK+/E76zs9+3/vApqAZVS+kJq9 -qSeFvutjyh2FG42F/FUOa+4aV9Jqk8TW0Q9RBVCrw7lUxigBLn+X9BM7fJJrFtjp -h7Gov+fcQj599R1Xgis9BfDX84h1DF9Cj10TV8lfRRaD4In0NT6vDVHsq/MF75l9 -GI/ljEe+GRxaMtbu1riBT0pDRZk/LVY8iTwranl6t8aiV2TY+puKFCTbhUq1toAM -Iz4RedpkAhnWN7Lxa7+1ICdhNBptJJDmGqoUu4XA1FCcfTCCBnEwggRZoAMCAQIC +BgkqhkiG9w0BAQsFAAOCAQEAcyWdvg6cgs//AmxoQZm+WASpJzUXEPhMp30bWc5H +yCwQB+Ma6YPncSoFdct/5V1K4p/rMcMLBn5LzELVH+uztg6ERK48YtbJb9A7Jp+f +JZj7loXaP9mVP7tJs2tGuubcXpGbgo5HGCjn7gzMBHY45Q8LScfa1JFQEAiS2gCK +KRlrKMsGaIbi+UuBtsbQ8JknvmiEwCCwSmRTX0viAZusm4mJVqKBe3Bmj+yBDJVW +cv0MyrEYQ74oa0VSW3JBc+xSrqT2Jgm2Cc6IlSbm8AsiVE/Vc4yahfmLeeFHfTcr +K0flu6VGzjf1GNA1SDXR4bUinrBli3lfhwtKhx6x5eRsSjCCBnEwggRZoAMCAQIC CmEJgSoAAAAAAAIwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYD VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy b3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRp @@ -152,33 +152,33 @@ QqLJzxlBTeCG+SqaoxFmMNO7dDJL32N79ZmKLxvHIa9Zta7cRDyXUHHXodLFVeNp X4/edIhJEqGCAs4wggI3AgEBMIH4oYHQpIHNMIHKMQswCQYDVQQGEwJVUzETMBEG A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj cm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBP -cGVyYXRpb25zMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpFQUNFLUUzMTYtQzkx -RDElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcG -BSsOAwIaAxUAvFOdlKwnpU5hRdhHJCN8vFXyM1yggYMwgYCkfjB8MQswCQYDVQQG +cGVyYXRpb25zMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjoyMjY0LUUzM0UtNzgw +QzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcG +BSsOAwIaAxUAzdeb1yAva2kJJ2mFfDdeSfFJMdyggYMwgYCkfjB8MQswCQYDVQQG EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg -VGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOBQQd4wIhgPMjAx -OTA0MDQxNjQyMDZaGA8yMDE5MDQwNTE2NDIwNlowdzA9BgorBgEEAYRZCgQBMS8w -LTAKAgUA4FBB3gIBADAKAgEAAgILBwIB/zAHAgEAAgIRhTAKAgUA4FGTXgIBADA2 +VGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOLNJAkwIhgPMjAy +MDA3MzAxODQ4NDFaGA8yMDIwMDczMTE4NDg0MVowdzA9BgorBgEEAYRZCgQBMS8w +LTAKAgUA4s0kCQIBADAKAgEAAgIZUwIB/zAHAgEAAgIqIzAKAgUA4s51iQIBADA2 BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIB -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 -----END AUTHENTICODE SIGNATURE-----