From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id 676376DE21B4 for ; Mon, 20 Feb 2017 01:44:14 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at cworth.org X-Spam-Flag: NO X-Spam-Score: -0.176 X-Spam-Level: X-Spam-Status: No, score=-0.176 tagged_above=-999 required=5 tests=[AWL=-0.156, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] autolearn=disabled Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TZh4XfUZ9kb4 for ; Mon, 20 Feb 2017 01:44:11 -0800 (PST) Received: from mail-lf0-f44.google.com (mail-lf0-f44.google.com [209.85.215.44]) by arlo.cworth.org (Postfix) with ESMTPS id CC3116DE21B3 for ; Mon, 20 Feb 2017 01:44:10 -0800 (PST) Received: by mail-lf0-f44.google.com with SMTP id g134so3570880lfe.1 for ; Mon, 20 Feb 2017 01:44:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaute-vetsj-com.20150623.gappssmtp.com; s=20150623; h=date:from:subject:to:references:in-reply-to:user-agent:message-id :mime-version; bh=MLVl8z+JolCFPQMEDcvF0y1ibVGc0DaA5ugs8tMLmts=; b=RUYuPqcMHqENBe8HUwcvTNNMxpvouc9qrkXFWlVXUIpnpFSKfZ2wdQSFtY5BvUaw+n WXJ1KGIy8NoXRVEt71aT56c2pES/+9h/7Cl64tmT/lXIfS1/mDEjGRuuf32kwW5QHdXJ WZwSW7NTA1u66qBhWj3BO1c8VWoA05IZOmeyFMdWVT9jDAYmfA5acG4jJ+t7ZVjmfaju dQLFbl86kJwc9fZhd1DKBhbdihyrFdYUjAXUcwcspGtFRHT5Djo3y5jG8lgiEGvdqG75 HJpwm1qFu0+lF/EDN9RRMzJRDZth9goaIKAsS9Sy1wP/X3uBaWWSMmBdZeMOXu0jf5CB 2VTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:subject:to:references:in-reply-to :user-agent:message-id:mime-version; bh=MLVl8z+JolCFPQMEDcvF0y1ibVGc0DaA5ugs8tMLmts=; b=qAxz0E1MzdsxKhvF7IxdvhyZpF9kJqxcxI2KDZoW5l1baU7AgzBQ+i7b3rw+Te8GXi ACo6EPtJb/mZathMTfknwEfusCCdXU+BqznUq1QRoKKX0ipacwmMEkOXTKWAgSBDrva5 iNCUAzDj5x3Kx6awcFEYWzy+HUrsFxRnLCtd6pYpf/cn6V+nBTKQgI6TXFEGtOqDH19k KfuboYWnFnbEZPymHF9CcGaeVgS6c8m78C/dcNxhGvMPDuZ32SCWrOOfyP4F12Ftnr4G Q2d9Sgqciyv9JJo8zZKuYF71J2pvSVkf7boeVJ47oQxeUQXUpxKAigHS10IcaE4wK0rx RFMQ== X-Gm-Message-State: AMke39nlZLtyZ+EoqdVMAxHEmap17WNIZdaNiUzxWCeS6Akzc43/qhfMTzyYAljQCEtj0A== X-Received: by 10.46.77.147 with SMTP id c19mr4668919ljd.105.1487583849114; Mon, 20 Feb 2017 01:44:09 -0800 (PST) Received: from localhost ([128.39.46.106]) by smtp.gmail.com with ESMTPSA id v21sm5067754ljd.9.2017.02.20.01.44.07 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Feb 2017 01:44:07 -0800 (PST) Date: Mon, 20 Feb 2017 09:44:06 +0000 From: Gaute Hope Subject: Re: add status value to _notmuch_message_ensure_metadata To: David Bremner , notmuch@notmuchmail.org References: <20170218144551.22925-1-david@tethera.net> <1487582192.57s86yczcg.astroid@strange.none> In-Reply-To: <1487582192.57s86yczcg.astroid@strange.none> User-Agent: astroid/v0.7-28-gadf1bf33 (https://github.com/astroidmail/astroid) Message-Id: <1487583702.5ghl7kdkaw.astroid@strange.none> MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha256; boundary="=-YgV2r73O4IafSrk/VJGv" X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Feb 2017 09:44:14 -0000 --=-YgV2r73O4IafSrk/VJGv Content-Type: multipart/mixed; boundary="=-HlHJhBGzI02d1KKhAqb/" --=-HlHJhBGzI02d1KKhAqb/ Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Gaute Hope writes on februar 20, 2017 10:27: > David Bremner writes on februar 18, 2017 15:45: >> In id:1487339566.mz8acpov1j.astroid@strange.none , Gaute provided a >> traceback of an uncaught Xapian::DatabaseModifiedError. The fix for >> this is simple, but somewhat intrusive. >> >> [...] >> >> I haven't tested against Gaute's test case (needs more boost than I >> have handy). Alright then, attached is a non-boost version that takes a notmuch db path (absolute) as the first argument (no warranty). - gaute = --=-HlHJhBGzI02d1KKhAqb/ Content-Type: text/x-c++src; name=test_notmuch_standalone.cc Content-Disposition: attachment; filename=test_notmuch_standalone.cc Content-Transfer-Encoding: base64 IyBpbmNsdWRlIDxpb3N0cmVhbT4KIyBpbmNsdWRlIDx1bmlzdGQuaD4KCiMgaW5jbHVkZSA8bm90 bXVjaC5oPgoKdXNpbmcgc3RkOjpjb3V0Owp1c2luZyBzdGQ6OmVuZGw7CgppbnQgbWFpbiAoaW50 IGFyZ2MsIGNoYXIgKiphcmd2KSB7CiAgaWYgKGFyZ2MgPCAyKSB7CiAgICBzdGQ6OmNlcnIgPDwg ImVycm9yOiBzcGVjaWZ5IHRoZSBwYXRoIHRvIHRoZSB0ZXN0IG5vdG11Y2ggZGF0YWJhc2UiIDw8 IGVuZGw7CiAgICByZXR1cm4gMTsKICB9CgogIHN0ZDo6c3RyaW5nIHBhdGhfZGI7CiAgcGF0aF9k YiA9IGFyZ3ZbMV07CgogIGNvdXQgPDwgInVzaW5nIGRiOiAiIDw8IHBhdGhfZGIgPDwgZW5kbDsK CiAgbm90bXVjaF9kYXRhYmFzZV90ICogbm1fZGI7CgogIG5vdG11Y2hfc3RhdHVzX3QgcyA9CiAg ICBub3RtdWNoX2RhdGFiYXNlX29wZW4gKAogICAgICBwYXRoX2RiLmNfc3RyKCksCiAgICAgIG5v dG11Y2hfZGF0YWJhc2VfbW9kZV90OjpOT1RNVUNIX0RBVEFCQVNFX01PREVfUkVBRF9PTkxZLAog ICAgICAmbm1fZGIpOwoKCiAgY291dCA8PCAiZGI6IHJ1bm5pbmcgdGVzdCBxdWVyeS4uIiA8PCBl bmRsOwogIG5vdG11Y2hfcXVlcnlfdCAqIHEgPSBub3RtdWNoX3F1ZXJ5X2NyZWF0ZSAobm1fZGIs ICIqIik7CgogIHVuc2lnbmVkIGludCBjOwogIG5vdG11Y2hfc3RhdHVzX3Qgc3QgPSBub3RtdWNo X3F1ZXJ5X2NvdW50X3RocmVhZHNfc3QgKHEsICZjKTsgLy8gZGVzdHJ1Y3RpdmUKICBub3RtdWNo X3F1ZXJ5X2Rlc3Ryb3kgKHEpOwogIHEgPSBub3RtdWNoX3F1ZXJ5X2NyZWF0ZSAobm1fZGIsICIq Iik7CgogIGNvdXQgPDwgInF1ZXJ5OiAiIDw8IG5vdG11Y2hfcXVlcnlfZ2V0X3F1ZXJ5X3N0cmlu ZyAocSkgPDwgIiwgYXBwcm94OiAiCiAgICAgICA8PCBjIDw8ICIgdGhyZWFkcy4iIDw8IGVuZGw7 CgogIG5vdG11Y2hfdGhyZWFkc190ICogdGhyZWFkczsKICBub3RtdWNoX3RocmVhZF90ICAqIHRo cmVhZDsKICBzdCA9IG5vdG11Y2hfcXVlcnlfc2VhcmNoX3RocmVhZHNfc3QgKHEsICZ0aHJlYWRz KTsKCiAgc3RkOjpzdHJpbmcgdGhyZWFkX2lkOwoKICBpbnQgaSA9IDA7CgogIGZvciAoOyBub3Rt dWNoX3RocmVhZHNfdmFsaWQgKHRocmVhZHMpOwogICAgICAgICBub3RtdWNoX3RocmVhZHNfbW92 ZV90b19uZXh0ICh0aHJlYWRzKSkgewogICAgdGhyZWFkID0gbm90bXVjaF90aHJlYWRzX2dldCAo dGhyZWFkcyk7CiAgICBpKys7CgogICAgaWYgKGkgPT0gMykKICAgICAgdGhyZWFkX2lkID0gbm90 bXVjaF90aHJlYWRfZ2V0X3RocmVhZF9pZCAodGhyZWFkKTsKCiAgICBub3RtdWNoX3RocmVhZF9k ZXN0cm95ICh0aHJlYWQpOwoKICAgIGlmIChpID09IDMpIGJyZWFrOwogIH0KCiAgY291dCA8PCAi dGhyZWFkIGlkIHRvIGNoYW5nZTogIiA8PCB0aHJlYWRfaWQgPDwgIiwgdGhyZWFkIG5vOiAiIDw8 IGkgPDwgZW5kbDsKICBub3RtdWNoX3F1ZXJ5X2Rlc3Ryb3kgKHEpOwoKICAvKiByZXN0YXJ0IHF1 ZXJ5ICovCiAgY291dCA8PCAicmVzdGFydGluZyBxdWVyeS4uIiA8PCBlbmRsOwogIHEgPSBub3Rt dWNoX3F1ZXJ5X2NyZWF0ZSAobm1fZGIsICIqIik7CiAgc3QgPSBub3RtdWNoX3F1ZXJ5X3NlYXJj aF90aHJlYWRzX3N0IChxLCAmdGhyZWFkcyk7CgogIGkgPSAwOwogIGludCBzdG9wID0gMjsKCiAg Y291dCA8PCAibW92aW5nIHRvIHRocmVhZDogIiA8PCBzdG9wIDw8IGVuZGw7CiAgZm9yICggOyBu b3RtdWNoX3RocmVhZHNfdmFsaWQgKHRocmVhZHMpOwogICAgICAgICAgbm90bXVjaF90aHJlYWRz X21vdmVfdG9fbmV4dCAodGhyZWFkcykpCiAgewogICAgdGhyZWFkID0gbm90bXVjaF90aHJlYWRz X2dldCAodGhyZWFkcyk7CiAgICBub3RtdWNoX3RocmVhZF9nZXRfdGhyZWFkX2lkICh0aHJlYWQp OwogICAgaSsrOwoKICAgIGNvdXQgPDwgInRhZ3M6ICI7CgogICAgLyogZ2V0IHRhZ3MgKi8KICAg IG5vdG11Y2hfdGFnc190ICp0YWdzOwogICAgY29uc3QgY2hhciAqdGFnOwoKICAgIGZvciAodGFn cyA9IG5vdG11Y2hfdGhyZWFkX2dldF90YWdzICh0aHJlYWQpOwogICAgICAgICBub3RtdWNoX3Rh Z3NfdmFsaWQgKHRhZ3MpOwogICAgICAgICBub3RtdWNoX3RhZ3NfbW92ZV90b19uZXh0ICh0YWdz KSkKICAgIHsKICAgICAgICB0YWcgPSBub3RtdWNoX3RhZ3NfZ2V0ICh0YWdzKTsKICAgICAgICBj b3V0IDw8IHRhZyA8PCAiICI7CiAgICB9CiAgICBjb3V0IDw8IGVuZGw7CgogICAgbm90bXVjaF90 aHJlYWRfZGVzdHJveSAodGhyZWFkKTsKCiAgICBpZiAoaSA9PSBzdG9wKSBicmVhazsKICB9Cgog IC8qIG5vdyBvcGVuIGEgbmV3IGRiIGluc3RhbmNlLCBtb2RpZnkgdGhlIGFscmVhZHkgbG9hZGVk IHRocmVhZCBhbmQKICAgKiBjb250aW51ZSBsb2FkaW5nIHRoZSBvcmlnaW5hbCBxdWVyeSAqLwog IG5vdG11Y2hfZGF0YWJhc2VfdCAqIG5tX2RiMjsKCiAgcyA9IG5vdG11Y2hfZGF0YWJhc2Vfb3Bl biAoCiAgICAgIHBhdGhfZGIuY19zdHIoKSwKICAgICAgbm90bXVjaF9kYXRhYmFzZV9tb2RlX3Q6 Ok5PVE1VQ0hfREFUQUJBU0VfTU9ERV9SRUFEX1dSSVRFLAogICAgICAmbm1fZGIyKTsKCgogIGNo YXIgcXJ5X3NbMjU2XTsKICBzcHJpbnRmIChxcnlfcywgInRocmVhZDolcyIsIHRocmVhZF9pZC5j X3N0ciAoKSk7CiAgbm90bXVjaF9xdWVyeV90ICogcTIgPSBub3RtdWNoX3F1ZXJ5X2NyZWF0ZSAo bm1fZGIyLCBxcnlfcyk7CiAgbm90bXVjaF90aHJlYWRzX3QgKiB0czI7CiAgbm90bXVjaF90aHJl YWRfdCAgKiB0MjsKCiAgc3QgPSBub3RtdWNoX3F1ZXJ5X3NlYXJjaF90aHJlYWRzX3N0IChxMiwg JnRzMik7CgogIGZvciAoIDsgbm90bXVjaF90aHJlYWRzX3ZhbGlkICh0czIpOwogICAgICAgICAg bm90bXVjaF90aHJlYWRzX21vdmVfdG9fbmV4dCAodHMyKSkKICB7CiAgICB0MiA9IG5vdG11Y2hf dGhyZWFkc19nZXQgKHRzMik7CiAgICBzdGQ6OnN0cmluZyB0aHJlYWRfaWQgPSBub3RtdWNoX3Ro cmVhZF9nZXRfdGhyZWFkX2lkICh0Mik7CgoKICAgIC8qIHJlbW92ZSB1bnJlYWQgdGFnICovCiAg ICBub3RtdWNoX21lc3NhZ2VzX3QgKiBtcyA9IG5vdG11Y2hfdGhyZWFkX2dldF9tZXNzYWdlcyAo dDIpOwogICAgbm90bXVjaF9tZXNzYWdlX3QgICogbTsKCiAgICBmb3IgKDsgbm90bXVjaF9tZXNz YWdlc192YWxpZCAobXMpOyBub3RtdWNoX21lc3NhZ2VzX21vdmVfdG9fbmV4dCAobXMpKSB7CiAg ICAgIG0gPSBub3RtdWNoX21lc3NhZ2VzX2dldCAobXMpOwoKICAgICAgc3QgPSBub3RtdWNoX21l c3NhZ2VfcmVtb3ZlX3RhZyAobSwgInVucmVhZCIpOwoKICAgICAgbm90bXVjaF9tZXNzYWdlX2Rl c3Ryb3kgKG0pOwogICAgfQoKICAgIG5vdG11Y2hfbWVzc2FnZXNfZGVzdHJveSAobXMpOwoKCiAg ICBub3RtdWNoX3RocmVhZF9kZXN0cm95ICh0Mik7CiAgICBicmVhazsKICB9CgogIG5vdG11Y2hf cXVlcnlfZGVzdHJveSAocTIpOwogIG5vdG11Y2hfZGF0YWJhc2VfY2xvc2UgKG5tX2RiMik7Cgog IC8qIHJlLWFkZCB1bnJlYWQgdGFnICovCiAgcyA9IG5vdG11Y2hfZGF0YWJhc2Vfb3BlbiAoCiAg ICAgIHBhdGhfZGIuY19zdHIoKSwKICAgICAgbm90bXVjaF9kYXRhYmFzZV9tb2RlX3Q6Ok5PVE1V Q0hfREFUQUJBU0VfTU9ERV9SRUFEX1dSSVRFLAogICAgICAmbm1fZGIyKTsKCgoKICBxMiA9IG5v dG11Y2hfcXVlcnlfY3JlYXRlIChubV9kYjIsIHFyeV9zKTsKCiAgc3QgPSBub3RtdWNoX3F1ZXJ5 X3NlYXJjaF90aHJlYWRzX3N0IChxMiwgJnRzMik7CgogIGZvciAoIDsgbm90bXVjaF90aHJlYWRz X3ZhbGlkICh0czIpOwogICAgICAgICAgbm90bXVjaF90aHJlYWRzX21vdmVfdG9fbmV4dCAodHMy KSkKICB7CiAgICB0MiA9IG5vdG11Y2hfdGhyZWFkc19nZXQgKHRzMik7CiAgICBzdGQ6OnN0cmlu ZyB0aHJlYWRfaWQgPSBub3RtdWNoX3RocmVhZF9nZXRfdGhyZWFkX2lkICh0Mik7CgoKICAgIC8q IHJlbW92ZSB1bnJlYWQgdGFnICovCiAgICBub3RtdWNoX21lc3NhZ2VzX3QgKiBtcyA9IG5vdG11 Y2hfdGhyZWFkX2dldF9tZXNzYWdlcyAodDIpOwogICAgbm90bXVjaF9tZXNzYWdlX3QgICogbTsK CiAgICBmb3IgKDsgbm90bXVjaF9tZXNzYWdlc192YWxpZCAobXMpOyBub3RtdWNoX21lc3NhZ2Vz X21vdmVfdG9fbmV4dCAobXMpKSB7CiAgICAgIG0gPSBub3RtdWNoX21lc3NhZ2VzX2dldCAobXMp OwoKICAgICAgc3QgPSBub3RtdWNoX21lc3NhZ2VfYWRkX3RhZyAobSwgInVucmVhZCIpOwoKICAg ICAgbm90bXVjaF9tZXNzYWdlX2Rlc3Ryb3kgKG0pOwogICAgfQoKICAgIG5vdG11Y2hfbWVzc2Fn ZXNfZGVzdHJveSAobXMpOwoKCiAgICBub3RtdWNoX3RocmVhZF9kZXN0cm95ICh0Mik7CiAgICBi cmVhazsKICB9CgogIG5vdG11Y2hfcXVlcnlfZGVzdHJveSAocTIpOwogIG5vdG11Y2hfZGF0YWJh c2VfY2xvc2UgKG5tX2RiMik7CgogIC8qIGNvbnRpbnVlIGxvYWRpbmcgKi8KICBjb3V0IDw8ICJj b250aW51ZSBsb2FkaW5nLi4iIDw8IGVuZGw7CiAgZm9yICggOyBub3RtdWNoX3RocmVhZHNfdmFs aWQgKHRocmVhZHMpOwogICAgICAgICAgbm90bXVjaF90aHJlYWRzX21vdmVfdG9fbmV4dCAodGhy ZWFkcykpCiAgewogICAgaWYgKHRocmVhZHMgPT0gTlVMTCkgewogICAgICBjb3V0IDw8ICJ0aHJl YWRzID09IE5VTEwiIDw8IGVuZGw7CiAgICB9IGVsc2UgewogICAgICBjb3V0IDw8ICJ0aHJlYWRz ICE9IE5VTEwiIDw8IGVuZGw7CiAgICB9CiAgICB0aHJlYWQgPSBub3RtdWNoX3RocmVhZHNfZ2V0 ICh0aHJlYWRzKTsKICAgIGlmICh0aHJlYWQgPT0gTlVMTCkgewogICAgICBjb3V0IDw8ICJ0aHJl YWQgPT0gTlVMTCIgPDwgZW5kbDsKICAgIH0gZWxzZSB7CiAgICAgIGNvdXQgPDwgInRocmVhZCAh PSBOVUxMIiA8PCBlbmRsOwogICAgfQoKICAgIGNvdXQgPDwgImxvYWRpbmc6ICIgPDwgaTsKICAg IGNvbnN0IGNoYXIgKiBjaWQgPSBub3RtdWNoX3RocmVhZF9nZXRfdGhyZWFkX2lkICh0aHJlYWQp OwogICAgc3RkOjpzdHJpbmcgdGlkID0gIiI7CiAgICBpZiAoY2lkICE9IE5VTEwpIHRpZCA9IGNp ZDsKICAgIGNvdXQgPDwgIjogIiA8PCB0aWQgPDwgZW5kbDsKCiAgICAvKiBnZXQgdGFncyAqLwog ICAgbm90bXVjaF90YWdzX3QgKnRhZ3M7CiAgICBjb25zdCBjaGFyICp0YWc7CgogICAgY291dCA8 PCAidGFnczogIjsKICAgIGZvciAodGFncyA9IG5vdG11Y2hfdGhyZWFkX2dldF90YWdzICh0aHJl YWQpOwogICAgICAgICBub3RtdWNoX3RhZ3NfdmFsaWQgKHRhZ3MpOwogICAgICAgICBub3RtdWNo X3RhZ3NfbW92ZV90b19uZXh0ICh0YWdzKSkKICAgIHsKICAgICAgICB0YWcgPSBub3RtdWNoX3Rh Z3NfZ2V0ICh0YWdzKTsKICAgICAgICBjb3V0IDw8IHRhZyA8PCAiICI7CiAgICB9CiAgICBjb3V0 IDw8IGVuZGw7CgogICAgaSsrOwogICAgbm90bXVjaF90aHJlYWRfZGVzdHJveSAodGhyZWFkKTsK ICB9CgogIG5vdG11Y2hfZGF0YWJhc2VfY2xvc2UgKG5tX2RiKTsKICByZXR1cm4gMDsKfQoK --=-HlHJhBGzI02d1KKhAqb/-- --=-YgV2r73O4IafSrk/VJGv Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEwTgvpR+zk9CtKEuvmCen6KB0kCMFAliqumYACgkQmCen6KB0 kCPnFQ//RlwweS6B+/3p8WnkIS3hsMnPu1od1m2BJwVhUcXYKMWhIt82oyOG968l FxqUN5hyevUPAp+z125aBslDnMg2qpls/O2RIVli1i2Xp+FZ+b2VDanuOOgUn3e8 9zj0ht+nryGn5MXk1bhc50Xz5B2oWIPoHYDVpUkPP3BE9rZ9C942KwtLbTxZVy07 FIzFvygIcCb4ZYto+Mo4ILa+lhIBBt297lW76FnoV1NVi7FQVH398SQSxUuz+LBf Y0shWz0B/Wl0xii0+XQYrIk4JO1tYRjMy0qC07feZ/0+HRF76+3r1XuwOJ7T/iZo kn++G/v/WmJLJA/yX30TFYJSXTb6QOWLltvFfmhoLJneA//q/JpX7oihYbAxxSY3 bmRyS8nwWmegw+TqPIY7Su7KcIDRigfqZs6ONb3jy7j0oaWBv6R88EnPxES1gupw WaJFzOH4eqX1TQD3PDDVbtYLT2Xc2HHDnxsfhJEd+5xKW74d7aR5VECaWXnp8F+M g0sYp7HTBMMQqM4hmtFOShwX6MYLoJ4Db+pn40luIGJhGAFnDAF8qVdpjcUZBKJ5 ejf7hGup3M3gkeGmBvw+kOMzAVD61oF3rqLO6BUx52l46YbwpHoN+/rPSMeS8RoV eOfpELSdUkHHAhUuVKUyfIBF4HZW3tajzXAKt9PaARB7HYkc3/4= =Pm6f -----END PGP SIGNATURE----- --=-YgV2r73O4IafSrk/VJGv--