From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 84209 invoked by alias); 7 Sep 2016 22:10:43 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 84192 invoked by uid 89); 7 Sep 2016 22:10:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.3 required=5.0 tests=AWL,BAYES_00,MIME_BASE64_BLANKS,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=waters, prepared, dare, imagined X-HELO: NAM01-SN1-obe.outbound.protection.outlook.com Received: from mail-sn1nam01on0070.outbound.protection.outlook.com (HELO NAM01-SN1-obe.outbound.protection.outlook.com) (104.47.32.70) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 07 Sep 2016 22:10:32 +0000 Received: from CY1PR0501MB1178.namprd05.prod.outlook.com (10.160.145.14) by CY1PR0501MB1180.namprd05.prod.outlook.com (10.160.145.141) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.609.3; Wed, 7 Sep 2016 22:10:29 +0000 Received: from CY1PR0501MB1178.namprd05.prod.outlook.com ([10.160.145.14]) by CY1PR0501MB1178.namprd05.prod.outlook.com ([10.160.145.14]) with mapi id 15.01.0609.016; Wed, 7 Sep 2016 22:10:29 +0000 From: Paul Marquess To: Samuel Bronson CC: Dmitry Samersoff , vijay nag , "gdb@sourceware.org" Subject: RE: collecting data from a coring process Date: Wed, 07 Sep 2016 22:10:00 -0000 Message-ID: References: <87b59611-f5d1-628d-fd41-85ce6c6eb50b@samersoff.net> In-Reply-To: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Paul.Marquess@owmobility.com; x-ms-office365-filtering-correlation-id: aeea0a69-de5f-4cd2-fc70-08d3d76bc70c x-microsoft-exchange-diagnostics: 1;CY1PR0501MB1180;6:NlWZLsBuq6z2Djglm48krnoYO0CN4TeZuENMkPwt8vMYP4mQI5aFUr5jl0EAEFp3eH70e0bmFTJLcTrZd9Bt4huaA3x34MdU5kg3dCGpCmi04lLCD0WI5kTp45hSe75KRjRIqblvz2jenVKQOQRvx5GwbXHO9I3jxf5LtvOMJHFgG5X8NlX2+nogZvUc8MpcCyRnIjSvpymkItjUq/KUOqf5B43sKRiRSSWfewTWmhSTGmjITzAC7kvrvbD6Wl6jw6gx0W1N81iH/iPki5hzErAgNqVYJq7qqhfuvJI2XBI=;5:Pja7kqogV3eVv0P5VZSfN2Xw0H5Fp+3+nEXvINtvrVa1cRixNX/XvSQI7UjioHB8okr0K1mfcUBI/WwSA3xWWC21hNrJqaNXDa+YXma1WoRRk4aUu+WJkWXfqMAzSmdCdRpgXrZAqgThpxRJCOxrJQ==;24:3wgyUiPG94FJ2+FAahtJJY6039AH3e3sxslQ9HO6YP9PgDf7Qa+C6d7eeUk8Swl1GL11MLMEWKgYXuI3Oj63HBGYM5gkwjqpZE21WJKjhwY=;7:lzAZUkEMtV0TDLEs/zZ/0NEvLeyt3hAiMYTe9cPBWDqwKKqqbS70A1NvAcBF6zX8/AnzA8DyhzkqI8YASNoEGHiYdNtZuGycdOYb9w8aUSSWocc4p2q+gzrrSX5M4LRts56odbq/FoxgU5RQFLfgBac927V6+hwIgW2zqZnBz92Dcup+Ca0xruisq/mBiweTvw/1NuLVjTn5MdjsS4yGKCY2LslyjeqTy3gp0g5fkeAH6Hz10AZL33gpKlPCd0WK x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0501MB1180; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(17755550239193); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001);SRVR:CY1PR0501MB1180;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0501MB1180; x-forefront-prvs: 0058ABBBC7 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(7916002)(24454002)(189002)(199003)(377454003)(76576001)(93886004)(10400500002)(92566002)(99286002)(106356001)(97736004)(110136002)(105586002)(189998001)(19580395003)(5002640100001)(3660700001)(11100500001)(122556002)(33656002)(66066001)(87936001)(19580405001)(76176999)(2900100001)(2950100001)(3846002)(50986999)(102836003)(586003)(6116002)(101416001)(77096005)(8936002)(7696003)(305945005)(4326007)(81166006)(81156014)(2906002)(68736007)(74316002)(5660300001)(7736002)(8676002)(7846002)(3280700002)(9686002)(1411001)(54356999)(86362001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR0501MB1180;H:CY1PR0501MB1178.namprd05.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; received-spf: None (protection.outlook.com: owmobility.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: owmobility.com X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Sep 2016 22:10:28.8950 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 042bf9d6-5c89-4240-a963-35f806e16660 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0501MB1180 X-IsSubscribed: yes X-SW-Source: 2016-09/txt/msg00044.txt.bz2 RnJvbTogU2FtdWVsIEJyb25zb24gW21haWx0bzpuYWVzdGVuQGdtYWlsLmNv bV0gDQoNCj4gT24gVHVlLCBTZXAgNiwgMjAxNiBhdCAxMjo0MCBQTSwgUGF1 bCBNYXJxdWVzcyA8UGF1bC5NYXJxdWVzc0Bvd21vYmlsaXR5LmNvbT4gd3Jv dGU6DQo+ID4gRnJvbTogU2FtdWVsIEJyb25zb24gW21haWx0bzpuYWVzdGVu QGdtYWlsLmNvbV0NCj4gPg0KPiA+DQo+ID4+IE9uIE1vbiwgU2VwIDUsIDIw MTYgYXQgNzoxOSBQTSwgUGF1bCBNYXJxdWVzcyA8UGF1bC5NYXJxdWVzc0Bv d21vYmlsaXR5LmNvbT4gd3JvdGU6DQo+ID4+ID4gRnJvbTogU2FtdWVsIEJy b25zb24gW21haWx0bzpuYWVzdGVuQGdtYWlsLmNvbV0NCj4gPj4gPg0KPiA+ PiA+PiBPbiBNb24sIFNlcCA1LCAyMDE2IGF0IDc6MDkgQU0sIFBhdWwgTWFy cXVlc3MgPFBhdWwuTWFycXVlc3NAb3dtb2JpbGl0eS5jb20+IHdyb3RlOg0K PiA+PiA+PiA+IEZyb206IERtaXRyeSBTYW1lcnNvZmYgW21haWx0bzpkbXNA c2FtZXJzb2ZmLm5ldF0NCj4gPj4gPj4gPg0KPiA+PiA+PiA+PiBQYXVsLA0K PiA+PiA+PiA+Pg0KPiA+PiA+PiA+PiA+PiAxKSBXaHkgbm90IGR1bXAgdGhl IGluZm9ybWF0aW9uIHRoYXQgeW91IGFyZSBsb29raW5nIGZvciANCj4gPj4g Pj4gPj4gPj4gaW50byBhIGZpbGUgaW4gdGhlIHByb2Nlc3Mgc2lnbmFsIGhh bmRsZXIgPw0KPiA+PiA+PiA+PiA+DQo+ID4+ID4+ID4+ID4gV291bGQgbG92 ZSB0bywgYnV0IEkgaGF2ZSBubyBpZGVhIHdoYXQgc3RhdGUgdGhlIHByb2Nl c3MgaXMgDQo+ID4+ID4+ID4+ID4gaW4gb25jZSB0aGUgU0VHViBoYXMgYmVl biB0cmlnZ2VyZWQuDQo+ID4+ID4+IFsuLi5dDQo+ID4+ID4+ID4gSSBrbm93 IHdlJ3ZlIGhhZCBwcm9ibGVtcyB3aXRoIHNpZ25hbCBoYW5kbGVycyBjYXVz aW5nIHByb2JsZW1zLCB0aHVzIG15IHByZWZlcmVuY2UgdG8gZmluZCBhIHdh eSB0byBoYXZlIHRoZSBzaWduYWwgaGFuZGxlciBjb2RlIGRvIGFzIGxpdHRs ZSBhcyBwb3NzaWJsZSBhbmQgZ2V0IGFsbCB0aGUgZGF0YSBjb2xsZWN0aW9u IGhhbmRsZWQgYXQgYXJtJ3MgbGVuZ3RoIGJ5IGdkYi4NCj4gPj4gPj4NCj4g Pj4gPj4gWW91IGNvdWxkIGp1c3Qgc3Bhd24gKGFuZCB3YWl0IGZvcikgeW91 ciBHREItbGF1bmNoaW5nIHNjcmlwdCBmcm9tIA0KPiA+PiA+PiB0aGUgc2ln bmFsIGhhbmRsZXI7IHRoZW4sIHRoZSBwcm9jZXNzICYgc3RhY2sgd2lsbCBz dGlsbCBiZSBhcm91bmQgZm9yIEdEQi4gIEkgdGhpbmsgdGhpcyBpcyBldmVu IGxlZ2FsIQ0KPiA+PiA+DQo+ID4+ID4gVGhhdCdzIG9uZSBvZiB0aGUgYXBw cm9hY2hlcyBJJ20gdGhpbmtpbmcgb2YuIEkgbmVlZCB0byBjaGVjayBpZiB0 aGUgZm9yay9leGVjICYgd2FpdCB1c2UgbWFsbG9jLg0KPiA+Pg0KPiA+PiBJ IHRoaW5rIGl0IHNob3VsZCBzdWZmaWNlIGZvciB0aGVtIHRvIGJlICJhc3lu Yy1zaWduYWwtc2FmZSAiPyAgSXQgDQo+ID4+IGxvb2tzIGxpa2Ugc2lnbmFs KDcpIGRvY3VtZW50cyB3aGljaCBmdW5jdGlvbnMgc2V2ZXJhbCB2ZXJzaW9u cyBvZiANCj4gPj4gUE9TSVggcmVxdWlyZSB0byBiZSBhc3luYy1zaWduYWwt c2FmZSwgYW5kIGl0IGxvb2tzIGxpa2UgdGhlcmUgYXJlIHR3byB2ZXJzaW9u cyBvZiBleGVjKigpIG9uIHRoZXJlIGFzIHdlbGwgYXMgZm9yaygpIGFuZCB3 YWl0KCkuICBXaGljaCBpcyBiYXNpY2FsbHkgd2hhdCBJIG1lYW50IGJ5ICJJ IHRoaW5rIHRoaXMgaXMgZXZlbiBsZWdhbCEiIDotKS4NCj4gPg0KPiA+IEkg YWdyZWUgdGhhdCAiYXN5bmMtc2lnbmFsLXNhZmUgIiBpcyBzb21ldGhpbmcg dGhhdCBuZWVkcyB0byBiZSBjb25zaWRlcmVkLCBidXQgaXQgaXNuJ3QgdGhl IG9ubHkgdGhpbmcuIEkndmUgc2VlbiBwbGVudHkgb2YgY29yZXMgd2hlcmUg Y29ycnVwdGlvbiBvZiBhIGRhdGEgc3RydWN0dXJlIGluc2lkZSBtYWxsb2Mg aXRzZWxmIHdhcyB0aGUgdHJpZ2dlciBmb3IgdGhlIFNFR1YuIFRoYXQncyB3 aHkgSSBuZWVkIHRvIGJlIHN1cmUgdGhhdCBhbnkgY29kZSBleGVjdXRlZCBp biB0aGUgc2lnbmFsIGhhbmRsZXIgaXNuJ3QgZ29pbmcgdG8gYmxvdyB1cC4N Cj4gDQo+IEhtbS4gIEkgaGFkIG5vdCByZWFsbHkgY29uc2lkZXJlZCB0aGF0 IGl0IG1pZ2h0IHRlY2huaWNhbGx5IGJlIHBvc3NpYmxlIHRvIGhhdmUgYW4g YXN5bmMtc2lnbmFsLXNhZmUgaW1wbGVtZW50YXRpb24gb2YgbWFsbG9jKCks IGFuZCB3YXMgDQo+IHRoZXJlZm9yZSBvcGVyYXRpbmcgdW5kZXIgdGhlIGFz c3VtcHRpb24gdGhhdCBpdCB3YXMgaW1wb3NzaWJsZSBmb3IgYW4gYXN5bmMt c2lnbmFsLXNhZmUgZnVuY3Rpb24gdG8gcmVseSBvbiBtYWxsb2MoKS4gIFNv LCB0aGF0IGxlYXZlcyBhIGZldyANCj4gcXVlc3Rpb25zOg0KPiANCj4gICAx LiBXb3VsZCBpdCBhY3R1YWxseSBiZSBhIHByb2JsZW0gZm9yIGFuIHN5bmMt c2lnbmFsLXNhZmUgaW1wbGVtZW50YXRpb24gb2YgbWFsbG9jKCkgdG8gYmUg Y2FsbGVkIGluIHRoaXMgc2NlbmFyaW8/DQo+IA0KPiAgIDIuIElzIHN1Y2gg YW4gaW1wbGVtZW50YXRpb24gZXZlbiBwb3NzaWJsZT8NCj4gDQo+ICAgMy4g QXJlIHlvdSB3aWxsaW5nIHRvIHRha2UgdGhlIGNoYW5jZSB0aGF0IGFueW9u ZSB3b3VsZCBhY3R1YWxseSBzaGlwIG9uZSBBTkQgZGFyZSB0byB1c2UgaXQg aW4gYW55IG9mIFBPU0lYJ3MgbWFuZGF0ZWQgYXN5bmMtc2lnbmFsLXNhZmUg ZnVuY3Rpb25zPw0KDQpUaGlzIGZlZWxzIGxpa2UgaXQgaXMgZ2V0dGluZyBp bnRvIHVuY2hhcnRlZCB3YXRlcnMsIHNvLCBubywgSSB3b3VsZG4ndCB3YW50 IHRvIGhhdmUgdGhlIHJpc2sgb2Ygc2hpcHBpbmcgc29tZXRoaW5nIGxpa2Ug dGhpcyB1bmxlc3MgaXQgd2FzIGFscmVhZHkgbWF0dXJlIGNvZGUgdGhhdOKA mXMgaGFkIGFsbCB0aGUgaXNzdWVzIHNvcnRlZCBvdXQuDQoNCj4gKEFsc28s IGl0IGhhcyBjb21lIHRvIG15IGF0dGVudGlvbiB0aGF0IHMqcHJpbnRmKCkg YXJlIGFjdHVhbGx5IGZ1bmN0aW9ucyB3aGljaCBhcmUgbm90IG9uIHRoZSBs aXN0IC0tIHNvbWVob3csIHRoZSBuYXR1cmUgb2YgdGhlaXIgdGFzayBoYWQg Z290dGVuIA0KPiB0aGVtIHBhc3QgbXkgcmFkYXIgLS0gc28gaXQncyBwcmVz dW1hYmx5IHNpbXBsZXN0IHRvIGhhdmUgdGhlIGhlbHBlciBzY3JpcHQgZ2V0 IHRoZSBwYXJlbnQgUElEIG9uIGl0cyBvd24sIHJhdGhlciB0aGFuIHBhc3Np bmcgaXQgb24gdGhlIGNvbW1hbmQgDQo+IGxpbmUgYXMgSSBoYWQgaW5pdGlh bGx5IGltYWdpbmVkLikNCg0KR2l2ZW4gdGhhdCBJJ3ZlIG5vdyBnb3QgYSB3 b3JraW5nIHByb3RvdHlwZSB3aGVyZSB0aGUgc2lnbmFsIGhhbmRsZXIgZm9y IFNFR1YgdWx0aW1hdGVseSBqdXN0IHNlbmRzIGEgVVNSMSBzaWduYWwgdG8g YSBwYXJlbnQgcHJvY2VzcywgSSBkb24ndCB0aGluayBJJ20gcHJlcGFyZWQg dG8gdGFrZSB0aGUgcmlzayBvZiBnZXR0aW5nIGEgcHJvY2VzcyB0aGF0IGlz IGFib3V0IHRvIGNvcmUgdG8gZG8gYSBmb3JrICYgZXhlYy4gTXkgY3VycmVu dCBhcHByb2FjaCBpcyB2ZXJ5IHNpbXBsZSAod2hpY2ggaXMgYWx3YXlzIGdv b2QpIGFuZCBtZWFucyB0aGF0IGFsbCBjb21wbGV4aXR5IChhbmQgcmlzaykg aXMgbW92ZWQgdG8gdGhlIHBhcmVudCBwcm9jZXNzLg0KDQpKdXN0IG5lZWQg dG8gY2hlY2sgdGhhdCBraWxsIGRvZXNuJ3QgdXNlIG1hbGxvYyA6LSkNCg0K UGF1bA0K >From gdb-return-45315-listarch-gdb=sources.redhat.com@sourceware.org Thu Sep 08 13:15:49 2016 Return-Path: Delivered-To: listarch-gdb@sources.redhat.com Received: (qmail 128105 invoked by alias); 8 Sep 2016 13:15:45 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Delivered-To: mailing list gdb@sourceware.org Received: (qmail 128031 invoked by uid 89); 8 Sep 2016 13:15:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=BAYES_00,KAM_LAZY_DOMAIN_SECURITY autolearn=no version=3.3.2 spammy=H*r:4.85, russia, Russia, H*MI:sk:CY1PR05 X-HELO: mircat.net Received: from mircat.net (HELO mircat.net) (81.9.105.50) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 08 Sep 2016 13:15:28 +0000 Received: from mircat.net ([81.9.105.50]:46882) by mircat.net with esmtpsa (TLSv1.2:DHE-RSA-AES128-SHA:128) (Exim 4.85) (envelope-from ) id 1bhzAq-000Dg2-KE; Thu, 08 Sep 2016 16:15:24 +0300 Subject: Re: collecting data from a coring process To: Paul Marquess , "gdb@sourceware.org" References: <87b59611-f5d1-628d-fd41-85ce6c6eb50b@samersoff.net> From: Dmitry Samersoff Message-ID: Date: Thu, 08 Sep 2016 13:15:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="rIuF44HSR3dGG8vrVKRgvIli8640j2UTi" X-IsSubscribed: yes X-SW-Source: 2016-09/txt/msg00045.txt.bz2 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --rIuF44HSR3dGG8vrVKRgvIli8640j2UTi Content-Type: multipart/mixed; boundary="1Njpvjw0tl3O2rjBaWWrAA5caV2ebOrX4"; protected-headers="v1" From: Dmitry Samersoff To: Paul Marquess , "gdb@sourceware.org" Message-ID: Subject: Re: collecting data from a coring process References: <87b59611-f5d1-628d-fd41-85ce6c6eb50b@samersoff.net> In-Reply-To: --1Njpvjw0tl3O2rjBaWWrAA5caV2ebOrX4 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-length: 3418 Paul, > Thanks, will take a look at that. When you say "more or less safely", > I'm reading that as saying there will be issues with it. :-) I don't know a way to do anything with a crashing process with 100% reliability. Ever coredump. Custom code in signal handler doesn't make the situation worse. It's quite often for complicated apps that the crash is result of something that happens far before crash point. E.g. when you see a memory corruption you typically interesting where the memory had been corrupted but not where corrupted memory was hit by the app. So signal handlers that know application data structure and can print meaningful information is quite usable and saves a lot of time in debugging. Also it might be necessary to free some resources before process start dumping core to allow faster restart. > Trouble is I soon will not allow a core file to be written -- the > process is reaching a size where I cannot allow it to be out of > action for the amount of time it takes to write that to disk. One of possible solution is to add some keep-alive protocol between child and parent (e.g. child keep touching file on disk or sending udp packets), if keep-alive doesn't come in time, parent consider the child as dead, send abort to it and fire a new process. This solution also covers the situation when a child process hugs or deadlocks. -Dmitry On 2016-09-05 14:09, Paul Marquess wrote: > From: Dmitry Samersoff [mailto:dms@samersoff.net] >=20 >> Paul, >>=20 >>>> 1) Why not dump the information that you are looking for into a >>>> file in the process signal handler ? >>>=20 >>> Would love to, but I have no idea what state the process is in >>> once the SEGV has been triggered. >>=20 >> If you use altstack and avoid malloc you can dump bunch of >> information from the signal handler more or less safely. >>=20 >> e.g. >>=20 >> http://hg.openjdk.java.net/jdk9/hs/hotspot/file/tip/src/share/vm/utiliti= es/vmError.cpp > >>=20 > Thanks, will take a look at that. When you say "more or less safely", > I'm reading that as saying there will be issues with it. :-) >=20 > I know we've had problems with signal handlers causing problems, thus > my preference to find a way to have the signal handler code do as > little as possible and get all the data collection handled at arm's > length by gdb. >=20 >>>>> My first thought was to add a script in=20 >>>>> /proc/sys/kernel/core_pattern to catch the process as it is >>>>> coring. Then I get gdb to attach to the PID of the process >>>>> that is about to core. Unfortunately, when I tried that, gdb >>>>> gives me this error >>=20 >> One of possible solution is: >>=20 >> 1. Change /proc/sys/kernel/core_pattern to have all coredumps from >> your app in a separate directory, something like >> /var/dumps/%e/core.%p >>=20 >> 2. Have a cron job that looks over this directory and run gdb > image name> < gdb_script > core.%p.out on demand. >=20 > That is exactly what I'm doing at the moment. Trouble is I soon will > not allow a core file to be written -- the process is reaching a size > where I cannot allow it to be out of action for the amount of time it > takes to write that to disk. >=20 > Paul >=20 > P.S. Sorry for the delay in following up. Had no internet access for > about 10 days. >=20 --=20 Dmitry Samersoff Saint Petersburg, Russia, http://devnull.samersoff.net * There will come soft rains ... --1Njpvjw0tl3O2rjBaWWrAA5caV2ebOrX4-- --rIuF44HSR3dGG8vrVKRgvIli8640j2UTi Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" Content-length: 473 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJX0WQ6AAoJEHEy08c4gIABeU8H/A/zjA1c/dRYQdwd32Xx0pup 5JpFMVkda4yLPWQNZoBiRxyeoh2XrNKBjexpqcRwkHsTWDIZsRzPtN268L+Hikwd WfTnNunCYoi/GbIsC4MBBxb9b3xW1SslC66kyne4dZI/+0ebKzq/8yCi7OPkMb7S lhwgFJtIITJk7BVyrOg7a9P2FhE/MhJomCujmuADAbLin8M0nlYcstKekdPJDqIc Y/Q2WEEr/LiIUo/W44ZEkGOXJ2DlmyXCIKBckTcLdHm+D0jIEJNNn21WFErLTgrD UMgvlx+gB1yjITZihTVdlaxySCMm5KG5hRk7gaaluqtVsJ/HUvpYcKysY4y5xQo= =ehHx -----END PGP SIGNATURE----- --rIuF44HSR3dGG8vrVKRgvIli8640j2UTi--