Received: by 10.213.65.68 with SMTP id h4csp1549394imn; Thu, 29 Mar 2018 06:48:30 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+IveGgBayxf8hSFEevqmbu8nqZyzNH9vTEJ4Nb+lRh96XtXjDfKJwIovOtGkMd5G8e6efq X-Received: by 10.98.133.28 with SMTP id u28mr6453631pfd.190.1522331310121; Thu, 29 Mar 2018 06:48:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522331310; cv=none; d=google.com; s=arc-20160816; b=LUqZjisaRTOq5KOaEv40gnAKSc4aj2LAH6F3kWp9wMZ3Psb5WyfadSx/2/fOVxlBsD BFIB1gqwAp6c7zO2TfWQXo/lew5iGOqIVWzekXAXlPxbxpTVcpOVC20crZZy98NkXSXg ZPYxvzqrJPyU7OPVjqeUGenr2OAh+XUuMnlSMj9eCwvOM+fhRqTVWODYZyOnA7nQxA4V hJZAdONBMkBYdkZsbYpsgcRGOarUCBxaVSLgJMBj0JMWGCOxeSKbh8ILI0xGos11zXiH CduKIXHYbsqz+Jg/XEJaDmf72iYxf52yaQuAnpqejr7pQrThsXSYF1E5FUKAXhfzr/IV zWaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=M7wSu/qSp/1aLtO/HNT3cVFqGvWCAvvsVU3zPSM6e3s=; b=h8GLByKfQTeX8NqvTNoUJUq9IhS+2pqBHKQ1bA1O0P7pS07lWV3bToirSCKvTUfjh0 CjnonF8gaeaDEdbHX450TYGhDW86dj5GNWVbf5fSZX2MOQ/iReMPFaoLoWfGL1TgNX5o eCq8ROLKglkoE7Y0RhvXGZkG3b1lq6xR10v/uksspo+e1WVC8PzeKtkqQUpyFF0XYXwA ArYBeAGyT+QVw89ZQ4pYOs2lhosdc0Jt4TdYR2Q5ln64g32ih5neZ3PYaw5a5X1KvQcE 3mZ1sGJivk9nwRUzs9lpezVpn4prM+RTyJyOHiVHCZRu4Akr653Qj5MC9JV8wGFLcWP1 3asw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=z5NjkDhB; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s76si4406138pfi.412.2018.03.29.06.48.16; Thu, 29 Mar 2018 06:48:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=z5NjkDhB; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752747AbeC2NrH (ORCPT + 99 others); Thu, 29 Mar 2018 09:47:07 -0400 Received: from mail-bn3nam01on0044.outbound.protection.outlook.com ([104.47.33.44]:45258 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752299AbeC2NrF (ORCPT ); Thu, 29 Mar 2018 09:47:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=M7wSu/qSp/1aLtO/HNT3cVFqGvWCAvvsVU3zPSM6e3s=; b=z5NjkDhBOXqkTlLf3cXxmXA7h4xp0j1YJu0BItzkscyzO86qzvsFX7FjIxowQAwNv98wBQRpzOgfpVRucWpT/cLLASQJAoh76rQYeclbcRq9wRXGWRhAabA7q4GuL3WGiUPheufJla8WboxMZSAaoZUqRH6XXbpAgF1dVz9v0Bw= Received: from DM5PR12MB1916.namprd12.prod.outlook.com (10.175.88.148) by DM5PR12MB1531.namprd12.prod.outlook.com (10.172.34.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Thu, 29 Mar 2018 13:47:03 +0000 Received: from DM5PR12MB1916.namprd12.prod.outlook.com ([fe80::8df7:ee16:53f5:1095]) by DM5PR12MB1916.namprd12.prod.outlook.com ([fe80::8df7:ee16:53f5:1095%17]) with mapi id 15.20.0609.012; Thu, 29 Mar 2018 13:47:03 +0000 From: "Ghannam, Yazen" To: Borislav Petkov CC: "linux-efi@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "ard.biesheuvel@linaro.org" , "x86@kernel.org" , "tony.luck@intel.com" Subject: RE: [PATCH v3 2/8] efi: Decode IA32/X64 Processor Error Section Thread-Topic: [PATCH v3 2/8] efi: Decode IA32/X64 Processor Error Section Thread-Index: AQHTw6EUE8NPisR8RkSBUxCEiwHimKPm/kqAgAA4vIA= Date: Thu, 29 Mar 2018 13:47:03 +0000 Message-ID: References: <20180324184940.19762-1-Yazen.Ghannam@amd.com> <20180324184940.19762-3-Yazen.Ghannam@amd.com> <20180329094613.GA29198@pd.tnic> In-Reply-To: <20180329094613.GA29198@pd.tnic> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Yazen.Ghannam@amd.com; x-originating-ip: [2601:345:301:c593:3414:3059:320b:d027] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DM5PR12MB1531;7:56fLin8KJtJ+qstmaAilcNsYWHsJmYdvKvIE9wvP9bSAQ6n0d7yjmj/zAcRzqHZGBxHh8zZ0AqKU9+3wxV1sBYMqgk7AhCxZb2aznw0Q/d31b5HKckchzH4Rz5MW1hHD61y14kTIWp5tJ8qF5sa3NPHBk+zB1kztRwKPLtZLSM9paPIvag0ZgedmEBdQFqSLfscvFq7wToguMwyqF5kf7Ea5ep2ECYvyTqE2M9jsoTYtYiVgArFqa2OWYaota3BT;20:4AUCfNO/34lzOvKllYBZLQHug16GLhyRmqSO0zXRUDlxt55OGfLMFciRzWpR+ZXrABUas+QiqglJxgnKUfAF2ShnQ07Y4xLODB3MmRBpR1A7Azf8DN1A9FkjOkF5UwIR+8WUAvtb9wG9WzuBplzWVqPomsJH4G1kc3wHgxWCwx1DFDjEObWt9ST3yT9H//AlKZaYc/JV+loDy4yYnD3KMPu0FYIRhbrZa37b0oM8wKk22Ew3eNErEe1B6p9MdEc8 x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 55f0457c-ea56-4946-8ab8-08d5957b8db7 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:DM5PR12MB1531; x-ms-traffictypediagnostic: DM5PR12MB1531: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(9452136761055)(767451399110)(42068640409301)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231221)(944501327)(52105095)(10201501046)(3002001)(6055026)(6041310)(20161123560045)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011);SRVR:DM5PR12MB1531;BCL:0;PCL:0;RULEID:;SRVR:DM5PR12MB1531; x-forefront-prvs: 0626C21B10 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(376002)(39380400002)(346002)(366004)(396003)(13464003)(189003)(199004)(5250100002)(575784001)(106356001)(6116002)(2906002)(476003)(11346002)(446003)(3660700001)(3280700002)(229853002)(9686003)(8936002)(486005)(486005)(53936002)(8676002)(81166006)(81156014)(97736004)(6916009)(305945005)(6306002)(7736002)(74316002)(5660300001)(68736007)(6246003)(2900100001)(316002)(86362001)(478600001)(54906003)(76176011)(6506007)(53546011)(14454004)(99286004)(33656002)(105586002)(4326008)(102836004)(6436002)(55016002)(966005)(72206003)(7696005)(186003)(46003)(25786009);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR12MB1531;H:DM5PR12MB1916.namprd12.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: aW/9GZHxztKnp50U+pWvbKv9utMdUCcMlFcgmvCOSSpv7Mi+5fh8v34uEBgs5CbCU8SZY5g4s7ArXROszJqDrbqZ5G95mxS890LvO7XzsFihqhDQsuQyOHPfNoN/cuz91TrdnvjFw4giGaDKEmoK3HdVLId8EXuwJIongBPc0hMG32B8JQCxy8lin7xGymWteYsLB7t9dec0taX1RubK8A8a4cGF3Lo5oS7TLdqWmS5VvnOh/RnJbu1/4OZOy7lDM87Qx7bN94fw7zcP+IDwMM4Ewg15uDjwUoY2SMDxNy3UG0MPyPzRjBvcSMcuGLqGTusF07suS45fkDhhhmM6Kw== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 55f0457c-ea56-4946-8ab8-08d5957b8db7 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Mar 2018 13:47:03.3144 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1531 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBCb3Jpc2xhdiBQZXRrb3YgPGJw QGFsaWVuOC5kZT4NCj4gU2VudDogVGh1cnNkYXksIE1hcmNoIDI5LCAyMDE4IDU6NDYgQU0NCj4g VG86IEdoYW5uYW0sIFlhemVuIDxZYXplbi5HaGFubmFtQGFtZC5jb20+DQo+IENjOiBsaW51eC1l ZmlAdmdlci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOw0KPiBhcmQu Ymllc2hldXZlbEBsaW5hcm8ub3JnOyB4ODZAa2VybmVsLm9yZzsgdG9ueS5sdWNrQGludGVsLmNv bQ0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDIvOF0gZWZpOiBEZWNvZGUgSUEzMi9YNjQgUHJv Y2Vzc29yIEVycm9yIFNlY3Rpb24NCj4gDQo+IE9uIFNhdCwgTWFyIDI0LCAyMDE4IGF0IDAxOjQ5 OjM0UE0gLTA1MDAsIFlhemVuIEdoYW5uYW0gd3JvdGU6DQo+ID4gRnJvbTogWWF6ZW4gR2hhbm5h bSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0KPiA+DQo+ID4gUmVjb2duaXplIHRoZSBJQTMyL1g2 NCBQcm9jZXNzb3IgRXJyb3IgU2VjdGlvbi4NCj4gPg0KPiA+IERvIHRoZSBzZWN0aW9uIGRlY29k aW5nIGluIGEgbmV3ICJjcGVyLXg4Ni5jIiBmaWxlIGFuZCBhZGQgdGhpcyB0byB0aGUNCj4gPiBN YWtlZmlsZSBkZXBlbmRpbmcgb24gYSBuZXcgIlVFRklfQ1BFUl9YODYiIGNvbmZpZyBvcHRpb24u DQo+ID4NCj4gPiBQcmludCB0aGUgTG9jYWwgQVBJQyBJRCBhbmQgQ1BVSUQgaW5mbyBmcm9tIHRo ZSBQcm9jZXNzb3IgRXJyb3IgUmVjb3JkLg0KPiA+DQo+ID4gVGhlICJQcm9jZXNzb3IgRXJyb3Ig SW5mbyIgYW5kICJQcm9jZXNzb3IgQ29udGV4dCIgZmllbGRzIHdpbGwgYmUNCj4gPiBkZWNvZGVk IGluIGZvbGxvd2luZyBwYXRjaGVzLg0KPiA+DQo+ID4gQmFzZWQgb24gVUVGSSAyLjcgVGFibGUg MjUyLiBQcm9jZXNzb3IgRXJyb3IgUmVjb3JkLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogWWF6 ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0KPiA+IC0tLQ0KPiA+IExpbms6DQo+ ID4gaHR0cHM6Ly9sa21sLmtlcm5lbC5vcmcvci8yMDE4MDIyNjE5MzkwNC4yMDUzMi0zLQ0KPiBZ YXplbi5HaGFubmFtQGFtZC5jb20NCj4gPg0KPiA+IHYyLT52MzoNCj4gPiAqIEZpeCB0YWJsZSBu dW1iZXIgaW4gY29tbWl0IG1lc3NhZ2UuDQo+ID4gKiBEb24ndCBwcmludCByYXcgdmFsaWRhdGlv biBiaXRzLg0KPiA+DQo+ID4gdjEtPnYyOg0KPiA+ICogQ2hhbmdlIGNvbmZpZyBvcHRpb24gZGVw ZW5kcyB0byAiWDg2IiBpbnN0ZWFkIG9mICJYODZfMzIgfHwgWDY0XzY0Ii4NCj4gPiAqIFJlbW92 ZSBleHRyYSBuZXdsaW5lIGluIE1ha2VmaWxlIGNoYW5nZXMuDQo+ID4gKiBEcm9wIGF1dGhvciBj b3B5cmlnaHQgbGluZS4NCj4gPg0KPiA+ICBkcml2ZXJzL2Zpcm13YXJlL2VmaS9LY29uZmlnICAg IHwgIDUgKysrKysNCj4gPiAgZHJpdmVycy9maXJtd2FyZS9lZmkvTWFrZWZpbGUgICB8ICAxICsN Cj4gPiAgZHJpdmVycy9maXJtd2FyZS9lZmkvY3Blci14ODYuYyB8IDIzICsrKysrKysrKysrKysr KysrKysrKysrDQo+IA0KPiBJJ2QgcHJlZmVyIGlmIHRoYXQgd2VyZToNCj4gDQo+IGRyaXZlcnMv ZmlybXdhcmUvZWZpL2NwZXIveDg2LmMNCj4gZHJpdmVycy9maXJtd2FyZS9lZmkvY3Blci9hcm0u Yw0KPiANCj4gYnV0IHRoYXQncyBBcmQncyBjYWxsLg0KPiANCj4gPiAgZHJpdmVycy9maXJtd2Fy ZS9lZmkvY3Blci5jICAgICB8IDEwICsrKysrKysrKysNCj4gPiAgaW5jbHVkZS9saW51eC9jcGVy LmggICAgICAgICAgICB8ICAyICsrDQo+ID4gIDUgZmlsZXMgY2hhbmdlZCwgNDEgaW5zZXJ0aW9u cygrKQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9maXJtd2FyZS9lZmkvY3Blci14 ODYuYw0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvZWZpL0tjb25maWcg Yi9kcml2ZXJzL2Zpcm13YXJlL2VmaS9LY29uZmlnDQo+ID4gaW5kZXggMzA5ODQxMGFiYWQ4Li43 ODFhNGEzMzc1NTcgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9maXJtd2FyZS9lZmkvS2NvbmZp Zw0KPiA+ICsrKyBiL2RyaXZlcnMvZmlybXdhcmUvZWZpL0tjb25maWcNCj4gPiBAQCAtMTc0LDYg KzE3NCwxMSBAQCBjb25maWcgVUVGSV9DUEVSX0FSTQ0KPiA+ICAJZGVwZW5kcyBvbiBVRUZJX0NQ RVIgJiYgKCBBUk0gfHwgQVJNNjQgKQ0KPiA+ICAJZGVmYXVsdCB5DQo+ID4NCj4gPiArY29uZmln IFVFRklfQ1BFUl9YODYNCj4gPiArCWJvb2wNCj4gPiArCWRlcGVuZHMgb24gVUVGSV9DUEVSICYm IFg4Ng0KPiA+ICsJZGVmYXVsdCB5DQo+ID4gKw0KPiA+ICBjb25maWcgRUZJX0RFVl9QQVRIX1BB UlNFUg0KPiA+ICAJYm9vbA0KPiA+ICAJZGVwZW5kcyBvbiBBQ1BJDQo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZmlybXdhcmUvZWZpL01ha2VmaWxlIGIvZHJpdmVycy9maXJtd2FyZS9lZmkvTWFr ZWZpbGUNCj4gPiBpbmRleCBjYjgwNTM3NGY0YmMuLjVmOWY1MDM5ZGU1MCAxMDA2NDQNCj4gPiAt LS0gYS9kcml2ZXJzL2Zpcm13YXJlL2VmaS9NYWtlZmlsZQ0KPiA+ICsrKyBiL2RyaXZlcnMvZmly bXdhcmUvZWZpL01ha2VmaWxlDQo+ID4gQEAgLTMxLDMgKzMxLDQgQEAgb2JqLSQoQ09ORklHX0FS TSkJCQkrPSAkKGFybS1vYmotDQo+IHkpDQo+ID4gIG9iai0kKENPTkZJR19BUk02NCkJCQkrPSAk KGFybS1vYmoteSkNCj4gPiAgb2JqLSQoQ09ORklHX0VGSV9DQVBTVUxFX0xPQURFUikJKz0gY2Fw c3VsZS1sb2FkZXIubw0KPiA+ICBvYmotJChDT05GSUdfVUVGSV9DUEVSX0FSTSkJCSs9IGNwZXIt YXJtLm8NCj4gPiArb2JqLSQoQ09ORklHX1VFRklfQ1BFUl9YODYpCQkrPSBjcGVyLXg4Ni5vDQo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvZWZpL2NwZXIteDg2LmMgYi9kcml2ZXJz L2Zpcm13YXJlL2VmaS9jcGVyLQ0KPiB4ODYuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ ID4gaW5kZXggMDAwMDAwMDAwMDAwLi44NjNmMGNkMmEwZmYNCj4gPiAtLS0gL2Rldi9udWxsDQo+ ID4gKysrIGIvZHJpdmVycy9maXJtd2FyZS9lZmkvY3Blci14ODYuYw0KPiA+IEBAIC0wLDAgKzEs MjMgQEANCj4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCj4gPiArLy8g Q29weXJpZ2h0IChDKSAyMDE4LCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuDQo+ID4gKw0K PiA+ICsjaW5jbHVkZSA8bGludXgvY3Blci5oPg0KPiA+ICsNCj4gPiArLyoNCj4gPiArICogV2Ug ZG9uJ3QgbmVlZCBhICJDUEVSX0lBIiBwcmVmaXggc2luY2UgdGhlc2UgYXJlIGFsbCBsb2NhbGx5 IGRlZmluZWQuDQo+ID4gKyAqIFRoaXMgd2lsbCBzYXZlIHVzIGEgbG90IG9mIGxpbmUgc3BhY2Uu DQo+ID4gKyAqLw0KPiA+ICsjZGVmaW5lIFZBTElEX0xBUElDX0lECQkJQklUX1VMTCgwKQ0KPiA+ ICsjZGVmaW5lIFZBTElEX0NQVUlEX0lORk8JCUJJVF9VTEwoMSkNCj4gPiArDQo+ID4gK3ZvaWQg Y3Blcl9wcmludF9wcm9jX2lhKGNvbnN0IGNoYXIgKnBmeCwgY29uc3Qgc3RydWN0IGNwZXJfc2Vj X3Byb2NfaWENCj4gKnByb2MpDQo+ID4gK3sNCj4gPiArCWlmIChwcm9jLT52YWxpZGF0aW9uX2Jp dHMgJiBWQUxJRF9MQVBJQ19JRCkNCj4gPiArCQlwcmludGsoIiVzTG9jYWwgQVBJQ19JRDogMHgl bGx4XG4iLCBwZngsIHByb2MtPmxhcGljX2lkKTsNCj4gPiArDQo+ID4gKwlpZiAocHJvYy0+dmFs aWRhdGlvbl9iaXRzICYgVkFMSURfQ1BVSURfSU5GTykgew0KPiA+ICsJCXByaW50aygiJXNDUFVJ RCBJbmZvOlxuIiwgcGZ4KTsNCj4gPiArCQlwcmludF9oZXhfZHVtcChwZngsICIiLCBEVU1QX1BS RUZJWF9PRkZTRVQsIDE2LCA0LCBwcm9jLQ0KPiA+Y3B1aWQsDQo+ID4gKwkJCSAgICAgICBzaXpl b2YocHJvYy0+Y3B1aWQpLCAwKTsNCj4gDQo+IFRoYXQncyBkdW1waW5nIDQ4IGJ5dGVzIG9mIHN0 YXRpYyBpbmZvcm1hdGlvbiBmb3IgZXZlcnkgZXJyb3IhDQo+IEluZm9ybWF0aW9uIHdoaWNoIGNh biBiZSBkdW1wZWQgb25seSBvbmNlIHdoZW4gY29sbGVjdGluZyBzeXN0ZW0gaW5mby4NCj4gDQoN ClJpZ2h0LCBidXQgaGVyZSB3ZSBqdXN0IHByaW50IHRoZSByZWNvcmQgYXMtaXMuIFdlIGNhbiBk byBpdCBkaWZmZXJlbnQgd2hlbg0KdGhpcyBob29rcyBpbnRvIHRoZSBNQ0EgZGVjb2RpbmcuIEFu ZCB0aGUgdXNlLWNhc2UgYXQgdGhlIG1vbWVudCBpcyBmb3INCkJFUlQgd2hpY2ggc2hvdWxkbid0 IGhhdmUgdmVyeSBtYW55IGVycm9ycy4NCg0KVGhhbmtzLA0KWWF6ZW4NCg==