From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id WBcdHiRe4GUEVgEAe85BDQ:P1 (envelope-from ) for ; Thu, 29 Feb 2024 11:36:20 +0100 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id WBcdHiRe4GUEVgEAe85BDQ (envelope-from ) for ; Thu, 29 Feb 2024 11:36:20 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=none; spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org"; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1709202980; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post; bh=QMCS+gC3MHLayBnxhqpGWMuigukDYCrFuZAyqgtoREg=; b=sQlbJclOPT+qlPvHmdIMibKtqaeMpcheXmCvjTjCdTYH4j3yVKx3mtwX9FaNpFFUPAtm2z truUM2JqvUo/80p+rNgxrgWPTxDNNU9CV9ls3fqNubBM4x9FaBGJnfVG8BewubsPBOixx6 XzUam95gAJvCIz7AEz2+0Xsag9lDw2J2URsL5L+BYXOR8XvhvmK2IBgR7s5pdpAGRnheQ+ vXkjMr0qp1f8N9ULWXDOuYsP0wGLyNisaFljbCimjXfwoxnnZyerRqgXXF6Twhc6Fd6IQd durqbqgcmn7lDeiHg6ahJo1LSs7W0ZZYWQqDn/Ui9xXU5M8BpYkpamPFOwla5w== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org"; dmarc=none ARC-Seal: i=1; s=key1; d=yhetil.org; t=1709202980; a=rsa-sha256; cv=none; b=BYBFEsfTYgctxTlrkd4dhThH45cD0kik5aAdeENgKwVEhN/EOYqkovrPQ5rxitcCXnIx5v fzGVRdASFtxHfokNXLUay1dDyWHsigpUQODe/fpgrx4HZ3xfr92RN1o+JszZiaRgHc/FWB bNWqTzva2ihei/3jkXZGJ9bFoshs2WgdV5eZINd+TfqgyVLx5v52fmaStrMKPisev+HNU+ fxxSf90uRnlumIKn+kJUdAUUp+GVDXP4lToK+370fFE9swsDmlwLRkE0jo7r0sglCPIWQc XIcSZWnSuBwPLI1uf2VSeonIGImRUdgTcl1PKuVGA6V1TssSmaS9R1lGb7HOKg== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 04C9B6DCAC for ; Thu, 29 Feb 2024 11:36:19 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rfdDX-0004ur-J6; Thu, 29 Feb 2024 05:00:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rfdDU-0004p9-QG for bug-guix@gnu.org; Thu, 29 Feb 2024 05:00:40 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rfdDP-0004er-2V for bug-guix@gnu.org; Thu, 29 Feb 2024 05:00:36 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rfdDp-0001RT-Nw for bug-guix@gnu.org; Thu, 29 Feb 2024 05:01:01 -0500 X-Loop: help-debbugs@gnu.org Subject: bug#57005: [PATCH v1] gnu: petsc: scrub build machine specifics Resent-From: Lars Bilke Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 29 Feb 2024 10:01:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 57005 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 57005@debbugs.gnu.org Received: via spool by 57005-submit@debbugs.gnu.org id=B57005.17092008585527 (code B ref 57005); Thu, 29 Feb 2024 10:01:01 +0000 Received: (at 57005) by debbugs.gnu.org; 29 Feb 2024 10:00:58 +0000 Received: from localhost ([127.0.0.1]:33588 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rfdDl-0001R4-Sa for submit@debbugs.gnu.org; Thu, 29 Feb 2024 05:00:58 -0500 Received: from mailgate4.ufz.de ([141.65.7.211]:59438 helo=mailgate.ufz.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rfdDj-0001Qq-AS for 57005@debbugs.gnu.org; Thu, 29 Feb 2024 05:00:56 -0500 Received: from imap.intranet.ufz.de (dcs1.intranet.ufz.de [141.65.125.135]) by mailgate.ufz.de (Mailgate4-UFZ) with ESMTP id AE2BB1602BC for <57005@debbugs.gnu.org>; Thu, 29 Feb 2024 11:00:21 +0100 (CET) MIME-version: 1.0 Received: from conversion-daemon.imap.intranet.ufz.de by imap.intranet.ufz.de (Oracle Communications Messaging Server 8.0.2.6.20200227 64bit (built Feb 27 2020)) id <0S9M007002Y55I00@imap.intranet.ufz.de> for 57005@debbugs.gnu.org; Thu, 29 Feb 2024 11:00:21 +0100 (CET) Received: from smtp1.ufz.de ([141.65.7.216]) by imap.intranet.ufz.de (Oracle Communications Messaging Server 8.0.2.6.20200227 64bit (built Feb 27 2020)) with ESMTPS id <0S9M00HNI3SK4TF0@imap.intranet.ufz.de> for 57005@debbugs.gnu.org; Thu, 29 Feb 2024 11:00:20 +0100 (CET) Received: from [198.19.249.3] (ufz542757.intranet.ufz.de [141.65.235.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp1.ufz.de (smtp1-UFZ) with ESMTPSA id 1594280211 for <57005@debbugs.gnu.org>; Thu, 29 Feb 2024 11:00:20 +0100 (CET) Date: Thu, 29 Feb 2024 11:00:19 +0100 From: Lars Bilke In-reply-to: Message-id: <44D266D4-7B4A-4486-AA7E-24CC9E4622B0@ufz.de> X-Mailer: MailMate (1.14r5937) Content-type: multipart/signed; boundary="=_MailMate_DDBCECFE-F3E3-43C3-A5C2-954E507A6E99_="; micalg=sha-256; protocol="application/pkcs7-signature" References: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: bug-guix-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -7.87 X-Spam-Score: -7.87 X-Migadu-Queue-Id: 04C9B6DCAC X-Migadu-Scanner: mx11.migadu.com X-TUID: BYeyXVoXislx This is an S/MIME signed message (RFC 5652 and 8551). --=_MailMate_DDBCECFE-F3E3-43C3-A5C2-954E507A6E99_= Content-Type: multipart/alternative; boundary="=_MailMate_C07CF1BE-6717-41EE-8772-7248BCEDD4A7_=" --=_MailMate_C07CF1BE-6717-41EE-8772-7248BCEDD4A7_= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable This patch makes these files deterministic: - petscmachineinfo.h - petscvariables Unfortunately libpetsc.so.3.16.1 still differs between builds, see e.g. t= his diffoscope output: https://jsfiddle.net/dLx15obp/show (click on run) Maybe someone has an idea how to also fix the library? Sincerely, Lars On 29 Feb 2024, at 10:46, Lars Bilke wrote: > 'Libraries compiled on' does not have to be removed since PETSc 3.9: > > https: //gitlab.com/petsc/petsc/-/commit/a970bd748978a4e12790be7c36b10e= 832ec0149f > > Change-Id: I41d82339e43187d7dc7e3fc189a338784c363c68 > > --- > gnu/packages/maths.scm | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm > index 1f61ee0583..f09cbee48b 100644 > --- a/gnu/packages/maths.scm > +++ b/gnu/packages/maths.scm > @@ -3455,18 +3455,21 @@ (define-public petsc > (substitute* "config/example_template.py" > (("#!/usr/bin/env bash") > (string-append "#!" (which "bash"))))))) > - (add-after 'configure 'clean-local-references > + (add-after 'install 'clean-local-references > (lambda* (#:key outputs #:allow-other-keys) > (let ((out (assoc-ref outputs "out"))) > (substitute* (find-files "." "^petsc(conf|machineinfo)= =2Eh$") > ;; Prevent build directory from leaking into compile= d code > (((getcwd)) out) > - ;; Scrub timestamp for reproducibility > - ((".*Libraries compiled on.*") "")) > + ;; Scrub build machine characteristic > + (("Machine characteristics: Linux-[0-9]+\\.[0-9]+\\.= [0-9]+") > + "Machine characteristics: Linux-x.x.x")) > (substitute* (find-files "." "petscvariables") > ;; Do not expose build machine characteristics, set = to defaults. > - (("MAKE_NP =3D [:digit:]+") "MAKE_NP =3D 2") > - (("NPMAX =3D [:digit:]+") "NPMAX =3D 2"))))) > + (("MAKE_NP =3D [[:digit:]]+") "MAKE_NP =3D 2") > + (("MAKE_TEST_NP =3D [[:digit:]]+") "MAKE_TEST_NP =3D= 2") > + (("MAKE_LOAD =3D [[:digit:]]+\\.[[:digit:]]+") "MAKE= _LOAD =3D 2.0") > + (("NPMAX =3D [[:digit:]]+") "NPMAX =3D 2"))))) > (add-after 'install 'clean-install > ;; Try to keep installed files from leaking build director= y names. > (lambda* (#:key inputs outputs #:allow-other-keys) > > base-commit: 75bad75367fcf2c289fae3b40dbcc850f92177be > -- = > 2.43.0 --=_MailMate_C07CF1BE-6717-41EE-8772-7248BCEDD4A7_= Content-Type: text/html Content-Transfer-Encoding: quoted-printable

This patch makes these files deterministic:

  • petscmachineinfo.h
  • petscvariables

Unfortunately libpetsc.so.3.16.1 still differs between bu= ilds, see e.g. this diffoscope output:

https://jsfiddle.net/dLx15obp/show (click on run)

=

Maybe someone has an idea how to also fix the library?

Sincerely,
Lars

On 29 Feb 2024, at 10:46, Lars Bilke wrote:

'Libraries compiled on' does not ha= ve to be removed since PETSc 3.9:

https: //gitlab.com/petsc/petsc/-/commit/a970bd748978a4e1= 2790be7c36b10e832ec0149f

Change-Id: I41d82339e43187d7dc7e3fc189a338784c363c68

---
gnu/packages/maths.scm | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.= scm
index 1f61ee0583..f09cbee48b 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -3455,18 +3455,21 @@ (define-public petsc
(substitute* "config/example_template.py"
(("#!/usr/bin/env bash")
(string-append "#!" (which "bash")))))))
- (add-after 'configure 'clean-local-references
+ (add-after 'install 'clean-local-references
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* (find-files "." "^petsc(conf|machineinfo).h= $")
;; Prevent build directory from leaking into compiled = code
(((getcwd)) out)
- ;; Scrub timestamp for reproducibility
- ((".*Libraries compiled on.*") ""))
+ ;; Scrub build machine characteristic
+ (("Machine characteristics: Linux-[0-9]+\\.[0-9]+\\.[0= -9]+")
+ "Machine characteristics: Linux-x.x.x"))
(substitute* (find-files "." "petscvariables")
;; Do not expose build machine characteristics, set to= defaults.
- (("MAKE_NP =3D [:digit:]+") "MAKE_NP =3D 2")
- (("NPMAX =3D [:digit:]+") "NPMAX =3D 2")))))
+ (("MAKE_NP =3D [[:digit:]]+") "MAKE_NP =3D 2")
+ (("MAKE_TEST_NP =3D [[:digit:]]+") "MAKE_TEST_NP =3D 2= ")
+ (("MAKE_LOAD =3D [[:digit:]]+\\.[[:digit:]]+") "MAKE_L= OAD =3D 2.0")
+ (("NPMAX =3D [[:digit:]]+") "NPMAX =3D 2")))))
(add-after 'install 'clean-install
;; Try to keep installed files from leaking build directory = names.
(lambda* (#:key inputs outputs #:allow-other-keys)

base-commit: 75bad75367fcf2c289fae3b40dbcc850f92177be
--

2.43.0

--=_MailMate_C07CF1BE-6717-41EE-8772-7248BCEDD4A7_=-- --=_MailMate_DDBCECFE-F3E3-43C3-A5C2-954E507A6E99_= Content-Description: S/MIME digital signature Content-Disposition: attachment; filename=smime.p7s Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCEacw ggUSMIID+qADAgECAgkA4wvV+K8l2YEwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAkRFMSsw KQYDVQQKDCJULVN5c3RlbXMgRW50ZXJwcmlzZSBTZXJ2aWNlcyBHbWJIMR8wHQYDVQQLDBZULVN5 c3RlbXMgVHJ1c3QgQ2VudGVyMSUwIwYDVQQDDBxULVRlbGVTZWMgR2xvYmFsUm9vdCBDbGFzcyAy MB4XDTE2MDIyMjEzMzgyMloXDTMxMDIyMjIzNTk1OVowgZUxCzAJBgNVBAYTAkRFMUUwQwYDVQQK EzxWZXJlaW4genVyIEZvZXJkZXJ1bmcgZWluZXMgRGV1dHNjaGVuIEZvcnNjaHVuZ3NuZXR6ZXMg ZS4gVi4xEDAOBgNVBAsTB0RGTi1QS0kxLTArBgNVBAMTJERGTi1WZXJlaW4gQ2VydGlmaWNhdGlv biBBdXRob3JpdHkgMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMtg1/9moUHN0vqH l4pzq5lN6mc5WqFggEcVToyVsuXPztNXS43O+FZsFVV2B+pG/cgDRWM+cNSrVICxI5y+NyipCf8F XRgPxJiZN7Mg9mZ4F4fCnQ7MSjLnFp2uDo0peQcAIFTcFV9Kltd4tjTTwXS1nem/wHdN6r1ZB+Ba L2w8pQDcNb1lDY9/Mm3yWmpLYgHurDg0WUU2SQXaeMpqbVvAgWsRzNI8qIv4cRrKO+KA3Ra0Z3qL NupOkSk9s1FcragMvp0049ENF4N1xDkesJQLEvHVaY4l9Lg9K7/AjsMeO6W/VRCrKq4Xl14zzsjz 9AkH4wKGMUZrAcUQDBHHWekCAwEAAaOCAXQwggFwMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU k+PYMiba1fFKpZFK4OpL4qIMz+EwHwYDVR0jBBgwFoAUv1kgNgB5oKAia4zV8mHSuCzLgkowEgYD VR0TAQH/BAgwBgEB/wIBAjAzBgNVHSAELDAqMA8GDSsGAQQBga0hgiwBAQQwDQYLKwYBBAGBrSGC LB4wCAYGZ4EMAQICMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kwMzM2LnRlbGVzZWMuZGUv cmwvVGVsZVNlY19HbG9iYWxSb290X0NsYXNzXzIuY3JsMIGGBggrBgEFBQcBAQR6MHgwLAYIKwYB BQUHMAGGIGh0dHA6Ly9vY3NwMDMzNi50ZWxlc2VjLmRlL29jc3ByMEgGCCsGAQUFBzAChjxodHRw Oi8vcGtpMDMzNi50ZWxlc2VjLmRlL2NydC9UZWxlU2VjX0dsb2JhbFJvb3RfQ2xhc3NfMi5jZXIw DQYJKoZIhvcNAQELBQADggEBAIcL/z4Cm2XIVi3WO5qYi3FP2ropqiH5Ri71sqQPrhE4eTizDnS6 dl2e6BiClmLbTDPo3flq3zK9LExHYFV/53RrtCyD2HlrtrdNUAtmB7Xts5et6u5/MOaZ/SLick0+ hFvu+c+Z6n/XUjkurJgARH5pO7917tALOxrN5fcPImxHhPalR6D90Bo0fa3SPXez7vTXTf/D6OWS T1k+kEcQSrCFWMBvf/iu7QhCnh7U3xQuTY+8npTD5+32GPg8SecmqKc22CzeIs2LgtjZeOJVEqM7 h0S2EQvVDFKvaYwPBt/QolOLV5h7z/0HJPT8vcP9SpIClxvyt7bPZYoaorVyGTkwggWsMIIElKAD AgECAgcbY7rQHiw9MA0GCSqGSIb3DQEBCwUAMIGVMQswCQYDVQQGEwJERTFFMEMGA1UEChM8VmVy ZWluIHp1ciBGb2VyZGVydW5nIGVpbmVzIERldXRzY2hlbiBGb3JzY2h1bmdzbmV0emVzIGUuIFYu MRAwDgYDVQQLEwdERk4tUEtJMS0wKwYDVQQDEyRERk4tVmVyZWluIENlcnRpZmljYXRpb24gQXV0 aG9yaXR5IDIwHhcNMTYwNTI0MTEzODQwWhcNMzEwMjIyMjM1OTU5WjCBjTELMAkGA1UEBhMCREUx RTBDBgNVBAoMPFZlcmVpbiB6dXIgRm9lcmRlcnVuZyBlaW5lcyBEZXV0c2NoZW4gRm9yc2NodW5n c25ldHplcyBlLiBWLjEQMA4GA1UECwwHREZOLVBLSTElMCMGA1UEAwwcREZOLVZlcmVpbiBHbG9i YWwgSXNzdWluZyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ07eRxH3h+Gy8Zp 1xCeOdfZojDbchwFfylfS2jxrRnWTOFrG7ELf6Gr4HuLi9gtzm6IOhDuV+UefwRRNuu6cG1joL6W LkDh0YNMZj0cZGnlm6Stcq5oOVGHecwX064vXWNxSzl660Knl5BpBb+Q/6RAcL0D57+eGIgfn5mI TQ5HjUhfZZkQ0tkqSe3BuS0dnxLLFdM/fx5ULzquk1enfnjK1UriGuXtQX1TX8izKvWKMKztFwUk P7agCwf9TRqaA1KgNpzeJIdl5Of6x5ZzJBTN0OgbaJ4YWa52fvfRCng8h0uwN89Tyjo4EPPLR22M ZD08WkVKusqAfLjz56dMTM0CAwEAAaOCAgUwggIBMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0P AQH/BAQDAgEGMCkGA1UdIAQiMCAwDQYLKwYBBAGBrSGCLB4wDwYNKwYBBAGBrSGCLAEBBDAdBgNV HQ4EFgQUazqYi/nyU4na4K2yMh4JH+iqO3QwHwYDVR0jBBgwFoAUk+PYMiba1fFKpZFK4OpL4qIM z+EwgY8GA1UdHwSBhzCBhDBAoD6gPIY6aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwtcm9v dC1nMi1jYS9wdWIvY3JsL2NhY3JsLmNybDBAoD6gPIY6aHR0cDovL2NkcDIucGNhLmRmbi5kZS9n bG9iYWwtcm9vdC1nMi1jYS9wdWIvY3JsL2NhY3JsLmNybDCB3QYIKwYBBQUHAQEEgdAwgc0wMwYI KwYBBQUHMAGGJ2h0dHA6Ly9vY3NwLnBjYS5kZm4uZGUvT0NTUC1TZXJ2ZXIvT0NTUDBKBggrBgEF BQcwAoY+aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1nMi1jYS9wdWIvY2FjZXJ0 L2NhY2VydC5jcnQwSgYIKwYBBQUHMAKGPmh0dHA6Ly9jZHAyLnBjYS5kZm4uZGUvZ2xvYmFsLXJv b3QtZzItY2EvcHViL2NhY2VydC9jYWNlcnQuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQCBeEWkTqR/ DlXwCbFqPnjMaDWpHPOVnj/z+N9rOHeJLI21rT7H8pTNoAauusyosa0zCLYkhmI2THhuUPDVbmCN T1IxQ5dGdfBi5G5mUcFCMWdQ5UnnOR7Ln8qGSN4IFP8VSytmm6A4nwDO/afr0X9XLchMX9wQEZc+ lgQCXISoKTlslPwQkgZ7nu7YRrQbtQMMONncsKk/cQYLsgMHM8KNSGMlJTx6e1du94oFOO+4oK4v 9NsH1VuEGMGpuEvObJAaguS5Pfp38dIfMwK/U+d2+dwmJUFvL6Yb+qQTkPp8ftkLYF3sv8pBoGH7 EUkp2KgtdRXYShjqFu9VNCIaE40GMIIG3TCCBcWgAwIBAgIMKFSK/2W4nJQKz9POMA0GCSqGSIb3 DQEBCwUAMIGNMQswCQYDVQQGEwJERTFFMEMGA1UECgw8VmVyZWluIHp1ciBGb2VyZGVydW5nIGVp bmVzIERldXRzY2hlbiBGb3JzY2h1bmdzbmV0emVzIGUuIFYuMRAwDgYDVQQLDAdERk4tUEtJMSUw IwYDVQQDDBxERk4tVmVyZWluIEdsb2JhbCBJc3N1aW5nIENBMB4XDTIzMDQxMTA3MzQxNFoXDTI2 MDQxMDA3MzQxNFowfTELMAkGA1UEBhMCREUxOjA4BgNVBAoMMUhlbG1ob2x0ei1aZW50cnVtIGZ1 ZXIgVW13ZWx0Zm9yc2NodW5nIEdtYkggLSBVRloxDjAMBgNVBAQMBUJpbGtlMQ0wCwYDVQQqDARM YXJzMRMwEQYDVQQDDApMYXJzIEJpbGtlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA m3zCUR9nxgsrHJ+Cqnw0FiOm3FGHHmUoiJj4oLp0k0cdX7Ai1R9whcJLZObcsYwrGkm201RZt5Bb UU5D9xCpv84RH3nL6zUTVkEQofseVWXD1Ydncl3Hskv8qvh/C2FpEIVbqXviGDBjESkK+QA5UHu1 CDdc8nQi0fJWh9yKG7hGn4MahXjz6bgPAxImjab8taqnxbwLoNTi+ogZjFbt7Xe+fHWN3L6a35P4 PaLzlEA9t4P10qYa/FYPEAML8VinVPasaLw/p4tj9K+a9LXxQns3KuVnvY4vOM4fPNSk+5yOipqq oXyevjx8dnMjCTrdEOIsPmqZaU0p1dxBnarnNk6Rfq8i/kFzu8ySJ6LcwNBZVWVXqiBOxTgUqriG PPnTcT/KKayY/dpsFmbn5z0H27/ItxCxX4IwhBJvvpBTrM3cUJPCv28tz4654sVq6Ygyndv5vnn/ iooa+peMGDMgfazVxDGdW+Js/HNp1En8h4KttE5wIwzgW0HRBTD/yrXBCoX3xMEL7sm4JNcYfT2w dDttdU9LDa6Nu1mKVIIE+YZyEmAsZMpg3JqV9B7hIYU14l/1zL2GPgWgGp3LiF4uvwmr+jUfBj6k IW/Tg8dtklLor7tqPklA3iNVZCKH0jyPQ3szsic2EHs9x4HpGbwm7T23N0e1Iz7irLASEEAdflEC AwEAAaOCAkowggJGMD4GA1UdIAQ3MDUwDwYNKwYBBAGBrSGCLAEBBDAQBg4rBgEEAYGtIYIsAQEE CzAQBg4rBgEEAYGtIYIsAgEECzAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIF4DAdBgNVHSUEFjAU BggrBgEFBQcDAgYIKwYBBQUHAwQwHQYDVR0OBBYEFMSCVRA6ggxoP0SCkmTDebzHfWaxMB8GA1Ud IwQYMBaAFGs6mIv58lOJ2uCtsjIeCR/oqjt0MBwGA1UdEQQVMBOBEWxhcnMuYmlsa2VAdWZ6LmRl MIGNBgNVHR8EgYUwgYIwP6A9oDuGOWh0dHA6Ly9jZHAxLnBjYS5kZm4uZGUvZGZuLWNhLWdsb2Jh bC1nMi9wdWIvY3JsL2NhY3JsLmNybDA/oD2gO4Y5aHR0cDovL2NkcDIucGNhLmRmbi5kZS9kZm4t Y2EtZ2xvYmFsLWcyL3B1Yi9jcmwvY2FjcmwuY3JsMIHbBggrBgEFBQcBAQSBzjCByzAzBggrBgEF BQcwAYYnaHR0cDovL29jc3AucGNhLmRmbi5kZS9PQ1NQLVNlcnZlci9PQ1NQMEkGCCsGAQUFBzAC hj1odHRwOi8vY2RwMS5wY2EuZGZuLmRlL2Rmbi1jYS1nbG9iYWwtZzIvcHViL2NhY2VydC9jYWNl cnQuY3J0MEkGCCsGAQUFBzAChj1odHRwOi8vY2RwMi5wY2EuZGZuLmRlL2Rmbi1jYS1nbG9iYWwt ZzIvcHViL2NhY2VydC9jYWNlcnQuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQCKNXGlF7TWJ77tYZZ2 jCGaDb5+Eh/edygbcm8WCDfMVEYRVmOTUOcoHUHkW2gJ1TMuUlDYsA3m7wvFcbWfMXDHtO/LrEUO GFoSGuiCnzpQeX2iKRMSh7yYhLS9XGl1XE0W/C3GeaEEDKEuDYdSLy4Zd65ChxULwRgPIA8n1ixx L1KmLrjCND2Dqp/zhvyKGY3zBNAh4oOc3zqHFNHDveObV021QyXRVKQH89gEkpU4KEB6TCFDIdI2 /vSOfrgKd1Yv9m2HU1k+43Wtj7wvx7tGKXzhx4OMRiGNruD9fApVQKu1IbvRYRh8F6P2/HOD9TbC XFysJxpJpiWCojircP7+MYIDUjCCA04CAQEwgZ4wgY0xCzAJBgNVBAYTAkRFMUUwQwYDVQQKDDxW ZXJlaW4genVyIEZvZXJkZXJ1bmcgZWluZXMgRGV1dHNjaGVuIEZvcnNjaHVuZ3NuZXR6ZXMgZS4g Vi4xEDAOBgNVBAsMB0RGTi1QS0kxJTAjBgNVBAMMHERGTi1WZXJlaW4gR2xvYmFsIElzc3Vpbmcg Q0ECDChUiv9luJyUCs/TzjANBglghkgBZQMEAgEFAKCBhTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN AQcBMC8GCSqGSIb3DQEJBDEiBCD1JgV3qr9AG0f0VewznjhTVwlDWF9iM+3LSrHSw5bGqDA4Bgkq hkiG9w0BCQ8xKzApMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYJ KoZIhvcNAQELBQAEggIAWUcKMH/01420TtSxSb2T0Kme5OOuEF5Mqj9X50o0/gxCIfFY6TAJGUnk RIDCnoYgPfluzBxkZl1NT2ABalYHL27mJ+HulDxtE0sm9CKhl43oLBV9FA+nulPsQxJH2G2xF3Ai CPX+E2hGfc7Dm48D93q4geKOyGGK0EFHhBEDuq3G5YsspWZhzqlIG5wwq9a9ey2r9twauo97G7ap o7YuSLvQaI7n4GvaqGlrm07obTHizaYPGxiRH1gjmcOkU7HqztJKn6HiHRZT5pm/ZN+gGCTfeAQS X43zanIJdiYNJZsRyizojaG/0hylN81kdn54NZhcF/CI3XlAfxFk8LPuT0jqrujo1Z9YvKeKLWjD 1E76mmFCvKeN2SutsbCiwHMvguumYpob4505hkqrH9GI+4FYbl2wGo4UQT91A38QDZid5wAFHooO IjvdCxbN5o94I1oHtoblZlGFDMQUwfGW8eiYcUmw9seCgljVu1uiu1uhfOvpnoUKqQoa5LAE7kLZ OLwW5JjhrM98jCcieoPvsA9moGMAZkNbILrm2pxz9wiqhpBbil9y5jC833zEMfHpx6DmAv5ZMK5/ jbOHWGdrRhvUPBDdfEijFHLWVQ3JqJg/IILISsCUWNHaTfEYGRmyPpJRwM9IaU3rYWk8Hq3A+RCg OS3dD91pjYGidtguEjgAAAAAAAA= --=_MailMate_DDBCECFE-F3E3-43C3-A5C2-954E507A6E99_=--