Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp2747052yba; Fri, 10 May 2019 18:27:19 -0700 (PDT) X-Google-Smtp-Source: APXvYqxx/+30HwTnYvl3oebwnN3TIKKfTVa2+uxfMP6xiaRew+Wmd3xpLhV+G4012j7MrnLg9yi5 X-Received: by 2002:a17:902:bb96:: with SMTP id m22mr16514596pls.5.1557538039191; Fri, 10 May 2019 18:27:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557538039; cv=none; d=google.com; s=arc-20160816; b=N3s1GllgmvEuX9F+K0LSylV1HNBMZX9e3QAM1p2CSKJ1muKrKOHGJI12YTJ369BtR1 Ax99fyAZGfrZbZTvXg/+4eKqPc0lupllXsajr31KGpwEij3CF1glAP9QqKeXqzJK/h7b yhbdTwxaKxZrwAT16GBfJwWRBBrDwi4UPOat4/CQuWd7Nl0WqIG7Gz38UWcDD6qKeJbd hGYRiWFl/RsmWxpHDLYdVk9UpScP/8xB0f+wi9/gm3Xlef2YlqOHUkf4y8c4ezKiL23M UJaIjM5eKrlJOyd90Y2q97sZ8GVHWaMfeAZpAqU/65p2/AH1ivzBMOZyR30Km4kGmXzY lgKQ== 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 :dlp-reaction:dlp-version:dlp-product:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from; bh=OWip8BpnXERlMEonyJVqT9iQBX1AOdoQx6dSHEI+2iA=; b=OsXc+S8eG6RhZ69IQa1p7IS9zyt9wfMsZXVljSnTxU/9WJVNbETt47wf41Ido1Q9NA dhH3FNYKG+WvaUxEwLbLTc0FYuJKIdFTU9OvBVdYEZqgJx3QGovciaH8WNcmLO9RavqN DsoEiVxSGPdcXX1yC7Xk9hNKrrGs7KIJKIPqqpU9BNtijIfPI21Ev2M8+evdNlGrgtS5 JfcBbrLEn/H0I8MSt0OSHzCu4Gt2nyRoTaNB22cGx7IkwRUOaTpE9RP4Inc/wcZAXJ5u qaW5W78BIHiuDIoP3l/QtrJpeeKogp+OtjfbQe8d3OGHZqT6F5N9Am43sDyWBW+5FG1I +czg== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r185si9318366pgr.10.2019.05.10.18.27.02; Fri, 10 May 2019 18:27:19 -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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728364AbfEKBHZ (ORCPT + 99 others); Fri, 10 May 2019 21:07:25 -0400 Received: from mga09.intel.com ([134.134.136.24]:12805 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727961AbfEKBHY (ORCPT ); Fri, 10 May 2019 21:07:24 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 May 2019 18:06:53 -0700 X-ExtLoop1: 1 Received: from orsmsx105.amr.corp.intel.com ([10.22.225.132]) by FMSMGA003.fm.intel.com with ESMTP; 10 May 2019 18:06:52 -0700 Received: from orsmsx116.amr.corp.intel.com ([169.254.7.36]) by ORSMSX105.amr.corp.intel.com ([169.254.2.167]) with mapi id 14.03.0415.000; Fri, 10 May 2019 18:06:51 -0700 From: "Xing, Cedric" To: Andy Lutomirski , Jethro Beekman CC: "Hansen, Dave" , Thomas Gleixner , "Dr. Greg" , Jarkko Sakkinen , Linus Torvalds , LKML , X86 ML , "linux-sgx@vger.kernel.org" , Andrew Morton , "Christopherson, Sean J" , "nhorman@redhat.com" , "npmccallum@redhat.com" , "Ayoun, Serge" , "Katz-zamir, Shay" , "Huang, Haitao" , Andy Shevchenko , "Svahn, Kai" , Borislav Petkov , Josh Triplett , "Huang, Kai" , David Rientjes Subject: RE: [PATCH v20 00/28] Intel SGX1 support Thread-Topic: [PATCH v20 00/28] Intel SGX1 support Thread-Index: AQHU9QnxaoiNNkdqP0yJjajWChyAgKZCnqeAgAAN+QCAAVPmAIAAE4cAgABGGYCAABE4gIAAAfWAgAABFgCAAADiAIAABegAgAABOYCAAAN6gIAAAQAAgAAA2wCAAATlgIAEWt6AgBvkEoCAAHnYgIAABJkAgAAC6gD//5XxkIAAergAgAAFGwD//7YnUA== Date: Sat, 11 May 2019 01:06:51 +0000 Message-ID: <960B34DE67B9E140824F1DCDEC400C0F4E886394@ORSMSX116.amr.corp.intel.com> References: <20190417103938.7762-1-jarkko.sakkinen@linux.intel.com> <8c5133bc-1301-24ca-418d-7151a6eac0e2@fortanix.com> <2AE80EA3-799E-4808-BBE4-3872F425BCF8@amacapital.net> <49b28ca1-6e66-87d9-2202-84c58f13fb99@fortanix.com> <444537E3-4156-41FB-83CA-57C5B660523F@amacapital.net> <5854e66a-950e-1b12-5393-d9cdd15367dc@fortanix.com> <960B34DE67B9E140824F1DCDEC400C0F4E885F9D@ORSMSX116.amr.corp.intel.com> <979615a8-fd03-e3fd-fbdb-65c1e51afd93@fortanix.com> <8fe520bb-30bd-f246-a3d8-c5443e47a014@intel.com> <358e9b36-230f-eb18-efdb-b472be8438b4@fortanix.com> <960B34DE67B9E140824F1DCDEC400C0F4E886094@ORSMSX116.amr.corp.intel.com> <6da269d8-7ebb-4177-b6a7-50cc5b435cf4@fortanix.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMDJhODk2ODItMDAzMi00MDI2LTkxNzctYjJlNWYxMDZmZDMyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiaksrOW85SFhTUCtRYllvRDRaRGswSUZnVmVxOTRZZHhBeTR1ZHdZTHQyckZ1ZzJiaGRRMlpocnY2ZExtSU1jayJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.22.254.140] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgQW5keSBhbmQgSmV0aHJvLA0KDQo+ID4gPiBZb3UgaGF2ZSBwcm9iYWJseSBtaXNyZWFkIG15 IGVtYWlsLiBCeSBtbWFwKCksIEkgbWVhbnQgdGhlIGVuY2xhdmUNCj4gZmlsZSB3b3VsZCBiZSBt YXBwZWQgdmlhICptdWx0aXBsZSogbW1hcCgpIGNhbGxzLCBpbiB0aGUgc2FtZSB3YXkgYXMNCj4g d2hhdCBkbG9wZW4oKSB3b3VsZCBkbyBpbiBsb2FkaW5nIHJlZ3VsYXIgc2hhcmVkIG9iamVjdC4g VGhlIGludGVudGlvbg0KPiBoZXJlIGlzIHRvIG1ha2UgdGhlIGVuY2xhdmUgZmlsZSBzdWJqZWN0 IHRvIHRoZSBzYW1lIGNoZWNrcyBhcyByZWd1bGFyDQo+IHNoYXJlZCBvYmplY3RzLg0KPiA+DQo+ ID4gTm8sIEkgZGlkbid0IG1pc3JlYWQgeW91ciBlbWFpbC4gTXkgb3JpZ2luYWwgcG9pbnQgc3Rp bGwgc3RhbmRzOg0KPiA+IHJlcXVpcmluZyB0aGF0IGFuIGVuY2xhdmUncyBtZW1vcnkgaXMgY3Jl YXRlZCBmcm9tIG9uZSBvciBtb3JlIG1tYXANCj4gPiBjYWxscyBvZiBhIGZpbGUgcHV0cyBzaWdu aWZpY2FudCByZXN0cmljdGlvbnMgb24gdGhlIGVuY2xhdmUncyBvbi1kaXNrDQo+ID4gcmVwcmVz ZW50YXRpb24uDQo+ID4NCg0KSSB3YXMgdGFsa2luZyBpbiB0aGUgY29udGV4dCBvZiBFTEYsIHdp dGggdGhlIGFzc3VtcHRpb24gdGhhdCBjaGFuZ2luZyBSVyBwYWdlcyB0byBSWCBpcyBkaXNhbGxv d2VkIGJ5IExTTS4gQW5kIGluIHRoYXQgY2FzZSBtbWFwKCl3b3VsZCBiZSB0aGUgb25seSB3YXkg dG8gbG9hZCBhIHBhZ2UgZnJvbSBkaXNrIHdpdGhvdXQgaGF2aW5nIHRvICJ3cml0ZSIgdG8gaXQu IEJ1dCB0aGF0J3MganVzdCBhbiBleGFtcGxlIGJ1dCBub3QgdGhlIGZvY3VzIG9mIHRoZSBkaXNj dXNzaW9uLg0KDQpUaGUgcG9pbnQgSSB3YXMgdHJ5aW5nIHRvIG1ha2Ugd2FzLCB0aGF0IHRoZSBk cml2ZXIgaXMgZ29pbmcgdG8gY29weSBib3RoIGNvbnRlbnQgYW5kIHBlcm1pc3Npb25zIGZyb20g dGhlIHNvdXJjZSBzbyB0aGUgc2VjdXJpdHkgcHJvcGVydGllcyBlc3RhYmxpc2hlZCAoYnkgSU1B L0xTTSkgYXJvdW5kIHRoYXQgc291cmNlIHBhZ2Ugd291bGQgYmUgY2FycmllZCBvbnRvIHRoZSBF UEMgcGFnZSBiZWluZyBFQUREJ2VkLiBUaGUgZHJpdmVyIGRvZXNuJ3QgY2FyZSBob3cgdGhhdCBz b3VyY2UgcGFnZSBjYW1lIGludG8gZXhpc3RlbmNlLiBJdCBjb3VsZCBiZSBtYXBwZWQgZnJvbSBh biBFTEYgZmlsZSBhcyBpbiB0aGUgZXhhbXBsZSwgb3IgaXQgY291bGQgYmUgYSByZXN1bHQgZnJv bSBKSVQgYXMgbG9uZyBhcyBMU00gYWxsb3dzIGl0LiBUaGUgZHJpdmVyIHdpbGwgYmUgZmlsZSBm b3JtYXQgYWdub3N0aWMuDQoNCj4gDQo+IEZvciBhIHRpbnkgYml0IG9mIGJhY2tncm91bmQsIExp bnV4IChBRkFJSyopIG1ha2VzIG5vIGVmZm9ydCB0byBlbnN1cmUNCj4gdGhlIGNvbXBsZXRlIGlu dGVncml0eSBvZiBEU09zLiAgV2hhdCBMaW51eCAqZG9lcyogZG8gKGlmIHNvDQo+IGNvbmZpZ3Vy ZWQpIGlzIHRvIG1ha2Ugc3VyZSB0aGF0IG9ubHkgYXBwcm92ZWQgZGF0YSBpcyBtYXBwZWQNCj4g ZXhlY3V0YWJsZS4gIFNvLCBpZiB5b3Ugd2FudCB0byBoYXZlIHNvbWUgYnl0ZXMgYmUgZXhlY3V0 YWJsZSwgdGhvc2UNCj4gYnl0ZXMgaGF2ZSB0byBjb21lIGZyb20gYSBmaWxlIHRoYXQgcGFzc2Vz IHRoZSByZWxldmFudCBMU00gYW5kIElNQQ0KPiBjaGVja3MuICBTbyB3ZSBoYXZlIHR3byB2YWxp ZCBhcHByb2FjaGVzLCBJIHRoaW5rLg0KPiANCj4gQXBwcm9hY2ggMTogd2UgdHJlYXQgU0dYIGV4 YWN0bHkgdGhlIHNhbWUgd2F5IGFuZCBtYWtlIGl0IHNvIHRoYXQgb25seQ0KPiBieXRlcyB0aGF0 IHBhc3MgdGhlIHJlbGV2YW50IGNoZWNrcyBjYW4gYmUgbWFwcGVkIGFzIGNvZGUgd2l0aGluIGFu DQo+IGVuY2xhdmUuICBUaGlzIGltcG9zZXMgbm8gcGFydGljdWxhciByZXN0cmljdGlvbnMgb24g dGhlIGZpbGUgZm9ybWF0DQo+IC0tIHdlIGp1c3QgbmVlZCBzb21lIEFQSSB0aGF0IHRha2VzIGFu IGZkLCBhbiBvZmZzZXQsIGFuZCBhIGxlbmd0aCwNCj4gYW5kIGFkZHMgdGhvc2UgYnl0ZXMgYXMg Y29kZSB0byBhbiBlbmNsYXZlLiAgKEl0IGNvdWxkIGFsc28gdGFrZSBhDQo+IHBvaW50ZXIgYW5k IGEgbGVuZ3RoIGFuZCBtYWtlIHN1cmUgdGhhdCB0aGUgcG9pbnRlciBwb2ludHMgdG8NCj4gZXhl Y3V0YWJsZSBtZW1vcnkgLS0gc2FtZSBlZmZlY3QuKQ0KDQpJIGFzc3VtZSAic29tZSBBUEkiIGlz IHNvbWUgdXNlciBtb2RlIEFQSSBzbyB0aGlzIGFwcHJvYWNoIGlzIHRoZSBzYW1lIGFzIHdoYXQg SSBzdWdnZXN0ZWQgaW4gbXkgbGFzdCBlbWFpbC4gQW0gSSBjb3JyZWN0Pw0KDQo+IA0KPiBBcHBy b2FjaCAyOiB3ZSBkZWNpZGUgdGhhdCB3ZSB3YW50IGEgc3Ryb25nZXIgZ3VhcmFudGVlIGFuZCB0 aGF0IHdlDQo+ICp3aWxsKiBlbnN1cmUgdGhlIGludGVncml0eSBvZiB0aGUgZW5jbGF2ZS4gIFRo aXMgbWVhbnM6DQo+IA0KPiAyYSkgdGhhdCB3ZSBlaXRoZXIgbmVlZCB0byBsb2FkIHRoZSBlbnRp cmUgdGhpbmcgZnJvbSBzb21lIGFwcHJvdmVkDQo+IGZpbGUsIGFuZCB3ZSBjb21taXQgdG8gc3Vw cG9ydGluZyBvbmUgb3IgbW9yZSBmaWxlIGZvcm1hdHMuDQo+IA0KPiAyYikgd2UgbmVlZCB0byBj aGVjayB0aGF0IHRoZSBldmVudHVhbCBlbmNsYXZlIGhhc2ggaXMgYXBwcm92ZWQuICBPcg0KPiB3 ZSBjb3VsZCBoYXZlIGEgbXVjaCBzaG9ydGVyIGZpbGUgdGhhdCBpcyBqdXN0IHRoZSBoYXNoIGFu ZCB3ZSBjaGVjaw0KPiB0aGF0LiAgQXQgaXRzIHNpbXBsZXN0LCB0aGUgZmlsZSBjb3VsZCBiZSAq b25seSogdGhlIGhhc2gsIGFuZCB0aGVyZQ0KPiBjb3VsZCBiZSBhbiBMU00gY2FsbGJhY2sgdG8g Y2hlY2sgaXQuICBJbiB0aGUgZnV0dXJlLCBpZiBzb21lb25lIHdhbnRzDQo+IHRvIGFsbG93IGVu Y2xhdmVzIHRvIGJlIGVtYmVkZGVkIGluIERTT3MsIHdlIGNvdWxkIGhhdmUgYSBzcGVjaWFsIEVM Rg0KPiBub3RlIG9yIHNpbWlsYXIgdGhhdCBjb250YWlucyBhbiBlbmNsYXZlIGhhc2ggb3Igc2lt aWxhci4NCj4gDQo+IDJjKSBzYW1lIGFzIDJiIGV4Y2VwdCB0aGF0IHdlIGV4cG9zZSB0aGUgd2hv bGUgU0lHU1RSVUNULCBub3QganVzdCB0aGUNCj4gaGFzaC4NCj4gDQo+IEhlcmUgYXJlIHNvbWUg cHJvcyBhbmQgY29ucyBvZiB2YXJpb3VzIGJpdHM6DQo+IA0KPiAxIGFuZCAyYSBhbGxvdyBhbnRp LXZpcnVzIHNvZnR3YXJlIHRvIHNjYW4gdGhlIGVuY2xhdmUgY29kZSwgYW5kIDJhDQo+IGFsbG93 cyBpdCB0byBzY2FuIHRoZSB3aG9sZSBlbmNsYXZlLiAgSSBkb24ndCBrbm93IGlmIHRoaXMgaXMg YWN0dWFsbHkNCj4gaW1wb3JhbnQuDQoNCkkgZ3Vlc3MgYW50aS12aXJ1cyBzb2Z0d2FyZSBjYW4g c2NhbiBhbnkgZW5jbGF2ZSBmaWxlIGluICphbGwqIGNhc2VzIGFzIGxvbmcgYXMgaXQgdW5kZXJz dGFuZHMgdGhlIGZvcm1hdCBvZiB0aGF0IGVuY2xhdmUuIEl0IGRvZXNuJ3QgbmVjZXNzYXJ5IG1l YW4gdGhlIGtlcm5lbCBoYXMgdG8gdW5kZXJzdGFuZCB0aGF0IGVuY2xhdmUgZm9ybWF0IChhcyBl bmNsYXZlIGZpbGUgY291bGQgYmUgcGFyc2VkIGluIHVzZXIgbW9kZSkgb3IgdGhlIGFudGktdmly dXMgc29mdHdhcmUgaGFzIHRvIHVuZGVyc3RhbmQgYWxsIGZvcm1hdHMgKGlmIGFueSkgc3VwcG9y dGVkIG5hdGl2ZWx5IGJ5IHRoZSBrZXJuZWwuDQogDQo+IA0KPiAyYSBpcyBieSBmYXIgdGhlIG1v c3QgY29tcGxpY2F0ZWQga2VybmVsIGltcGxlbWVudGF0aW9uLg0KPiANCg0KQWdyZWVkLiBJIGRv bid0IHNlZSBhbnkgcmVhc29uIDJhIHdvdWxkIGJlIG5lY2Vzc2FyeS4NCg0KPiAyYiBhbmQgMmMg YXJlIGFsbW9zdCBmaWxlLWZvcm1hdCBhZ25vc3RpYy4gIDEgaXMgY29tcGxldGVseSBmaWxlDQo+ IGZvcm1hdCBhZ25vc3RpYyBidXQsIGluIGV4Y2hhbmdlLCBpdCdzIG11Y2ggd2Vha2VyLg0KDQpJ J2Qgc2F5IDEgYW5kICh2YXJpYW50cyBvZikgMiBhcmUgb3J0aG9nb25hbC4gU0dYIGFsd2F5cyBl bmZvcmNlcyBpbnRlZ3JpdGllcyBzbyBub3QgZG9pbmcgaW50ZWdyaXR5IGNoZWNrcyBhdCBFQURE IGRvZXNuJ3QgbWVhbiB0aGUgZW5jbGF2ZSBpbnRlZ3JpdHkgaXMgbm90IGJlaW5nIGVuZm9yY2Vk LiAxIGFuZCAyIGFyZSBiYXNpY2FsbHkgMiBkaWZmZXJlbnQgY2hlY2twb2ludHMgd2hlcmUgTFNN IGhvb2tzIGNvdWxkIGJlIHBsYWNlZC4gQW5kIGEgZ2l2ZW4gTFNNIGltcGxlbWVudGF0aW9uL3Bv bGljeSBtYXkgZW5mb3JjZSBlaXRoZXIgMSBvciAyLCBvciBib3RoLCBvciBuZWl0aGVyLiANCg0K PiANCj4gMmIgYW5kIDJjIHNob3VsZCBzb2x2ZSBtb3N0IChidXQgbm90IGFsbCkgb2YgdGhlIGxh dW5jaCBjb250cm9sDQo+IGNvbXBsYWludHMgdGhhdCBEci4gR3JlZyBjYXJlcyBhYm91dCwgaW4g dGhlIHNlbnNlIHRoYXQgdGhlIExTTSBwb2xpY3kNCj4gcXVpdGUgbGl0ZXJhbGx5IHZhbGlkYXRl cyB0aGF0IHRoZSBlbmNsYXZlIGlzIGFwcHJvdmVkLg0KPiANCj4gQXMgYSBzdHJhdyBtYW4gZGVz aWduLCBJIHByb3Bvc2UgdGhlIGZvbGxvd2luZywgd2hpY2ggaXMgbW9zdGx5IDJjLg0KPiBUaGUg d2hvbGUgbG9hZGluZyBwcm9jZXNzIHdvcmtzIGFsbW9zdCBhcyBpbiBKYXJra28ncyBjdXJyZW50 IGRyaXZlciwNCj4gYnV0IHRoZSBhY3R1YWwgaW9jdGwgdGhhdCB0cmlnZ2VycyBFSU5JVCBjaGFu Z2VzLiAgV2hlbiB5b3UgaXNzdWUgdGhlDQo+IGlvY3RsLCB5b3UgcGFzcyBpbiBhbiBmZCBhbmQg dGhlIFNJR1NUUlVDVCBpcyBsb2FkZWQgYW5kIGNoZWNrZWQgZnJvbQ0KPiB0aGUgZmQuICBUaGUg aWRlYSBpcyB0aGF0IHNvZnR3YXJlIHRoYXQgc2hpcHMgYW4gZW5jbGF2ZSB3aWxsIHNoaXAgYQ0K PiAuc2d4c2lnIGZpbGUgdGhhdCBpcyBsaXRlcmFsbHkgYSBTSUdTVFJVQ1QgZm9yIHRoZSBlbmNs YXZlLiAgV2l0aA0KPiBTRUxpbnV4LCB0aGF0IGZpbGUgZ2V0cyBsYWJlbGVkIHNvbWV0aGluZyBs aWtlDQo+IHNneF9lbmNsYXZlX3NpZ3N0cnVjdF90LiAgQW5kIHdlIGhhdmUgdGhlIGZvbGxvd2lu ZyBleHRyYSB0d2lzdDogaWYNCj4geW91J3JlIGNhbGxpbmcgdGhlIEVBREQgaW9jdGwgdG8gYWRk ICpjb2RlKiB0byB0aGUgZW5jbGF2ZSwgdGhlIGRyaXZlcg0KPiBjaGVja3MgdGhhdCB0aGUgY29k ZSBiZWluZyBsb2FkZWQgaXMgbWFwcGVkIGV4ZWN1dGFibGUuICBUaGlzIHdheQ0KPiBleGlzdGlu ZyBjb2RlLXNpZ25pbmcgcG9saWNpZXMgZG9uJ3QgZ2V0IHN1YnZlcnRlZCwgYW5kIHBvbGljaWVz IHRoYXQNCj4gd2FudCB0byBpbXBvc2UgZnVsbCB2ZXJpZmljYXRpb24gb24gdGhlIGVuY2xhdmUg Y2FuIGRvIHNvIGJ5IHZlcmlmeWluZw0KPiB0aGUgLnNpZ3N0cnVjdCBmaWxlLg0KDQpJJ20gd2l0 aCB5b3UgdGhhdCBpdCdzIGRlc2lyYWJsZS9uZWNlc3NhcnkgdG8gYWRkIGFuIExTTSBob29rIGF0 IEVJTklULCBidXQgZG9uJ3Qgc2VlIHRoZSBuZWVkIGZvciAuc2lnc3RydWN0IGZpbGUgb3IgaXRz IGZkIGFzIGlucHV0IHRvIEVJTklUIGlvY3RsLiANCg0KR2VuZXJhbGx5IHNwZWFraW5nLCBMU00g bmVlZHMgdG8gZGVjaWRlIHdoZXRoZXIgb3Igbm90IHRvIGxhdW5jaCB0aGUgZW5jbGF2ZSBpbiBx dWVzdGlvbi4gQW5kIHRoYXQgZGVjaXNpb24gY291bGQgYmUgYmFzZWQgdXBvbiBlaXRoZXIgdGhl IGVuY2xhdmUgaXRzZWxmIChpLmUuIGJ5dGVzIGNvbXByaXNpbmcgdGhlIGVuY2xhdmUsIG9yIGl0 cyBNUkVOQ0xBVkUsIG9yIGl0cyBzaWduYXR1cmUsIGFsbCBlcXVpdmFsZW50IGZyb20gY3J5cHRv Z3JhcGhpYyBzdGFuZHBvaW50KSwgb3Igc29tZSBleHRlcm5hbCBhdHRyaWJ1dGVzIGFzc29jaWF0 ZWQgd2l0aCB0aGUgZW5jbGF2ZSAoZS5nLiBEQUMvTUFDIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRo IHRoZSBlbmNsYXZlIGZpbGUpLCBvciBib3RoLiBJbiB0aGUgZm9ybWVyIGNhc2UsIHdoYXQgbWF0 dGVycyBpcyB0aGUgY29udGVudCBvZiB0aGUgU0lHU1RSVUNUIGJ1dCBub3Qgd2hlcmUgaXQgY2Ft ZSBmcm9tOyB3aGlsZSBpbiB0aGUgbGF0dGVyIGNhc2UgaXQgY291bGQgYmUgZ2F0ZWQgYXQgb3Bl bigpIHN5c2NhbGwgc28gdGhhdCBubyBmZCB0byBTSUdTVFJVQ1QgKG9yIHRoZSBlbmNsYXZlIGlt YWdlIGZpbGUpIGNvdWxkIGV2ZXIgYmUgb2J0YWluZWQgYnkgdGhlIGNhbGxpbmcgcHJvY2VzcyBp ZiBpdCB3YXMgbm90IGFsbG93ZWQgdG8gbGF1bmNoIHRoYXQgZW5jbGF2ZSBhdCBhbGwuIEluIGVp dGhlciBjYXNlLCBubyBmZCBpcyBuZWNlc3NhcnkgdG8gYmUgcGFzc2VkIHRvIEVJTklUIGlvY3Rs LiBUaGF0IHNhaWQsIGJ5IHByb3ZpZGluZyBhIFNJR1NUUlVDVCB0byBFSU5JVCBpb2N0bCwgdGhl IGNhbGxpbmcgcHJvY2VzcyBoYXMgaW1wbGljaXRseSBwcm92ZW4gaXRzIGFjY2VzcyB0byBuZWVk ZWQgZmlsZShzKSBhdCB0aGUgZmlsZSBzeXN0ZW0gbGV2ZWwsIHNvIG9ubHkgdGhlIGNvbnRlbnQg KGkuZS4gTVJFTkNMQVZFIG9yIHNpZ25pbmcga2V5KSBvZiB0aGUgU0lHU1RSVUNUIG5lZWRzIHRv IGJlIGNoZWNrZWQgYnkgTFNNLCB3aGlsZSB0aGUgaW50ZWdyaXR5IG9mIHRoZSBlbmNsYXZlIHdp bGwgYmUgZW5mb3JjZWQgYnkgU0dYIGhhcmR3YXJlLg0KDQo+IA0KPiBXaGF0IGRvIHlvdSBhbGwg dGhpbms/DQo+IA0KDQpJIHRoaW5rIGFwcHJvYWNoIDEgYW5kICh2YXJpYW50cyBvZikgMiBhcmUg b3J0aG9nb25hbCBzbyBJIHdvdWxkbid0IHNraXAgZWl0aGVyIHRvIG1ha2UgdGhlIG90aGVyIG1h bmRhdG9yeSBmcm9tIGFyY2hpdGVjdHVyZSBwZXJzcGVjdGl2ZTsgd2hpbGUgYW4gTFNNIHBvbGlj eSBtYXkgb3B0IHRvIGVuZm9yY2UgZWl0aGVyIG9uZSwgb3IgYm90aC4NCg0KUHV0dGluZyBldmVy eXRoaW5nIHRvZ2V0aGVyLCBJJ2Qgc3VnZ2VzdCB0bzogDQogIC0gQ2hhbmdlIEVBREQgaW9jdGwg dG8gdGFrZSBzb3VyY2UgcGFnZSdzIFZNQSBwZXJtaXNzaW9uIGFzICgidXBwZXIgYm91bmQiIG9m KSBFUENNIHBlcm1pc3Npb24uIFRoaXMgbWFrZSBzdXJlIG5vIG9uZSBjYW4gY2lyY3VtdmVudCBM U00gdG8gZ2VuZXJhdGUgZXhlY3V0YWJsZSBjb2RlIG9uIHRoZSBmbHkgdXNpbmcgU0dYIGRyaXZl ci4NCiAgLSBDaGFuZ2UgRUlOSVQgaW9jdGwgdG8gaW52b2tlIChuZXc/KSBMU00gaG9vayB0byB2 YWxpZGF0ZSBTSUdTVFJVQ1QgYmVmb3JlIGlzc3VpbmcgRUlOSVQuDQogDQo+ICogSXQncyBjZXJ0 YWlubHkgdGhlIGNhc2UgdGhhdCBMaW51eCBkb2VzIG5vdCAqc3VjY2VlZCogYXQgcHJlc2Vydmlu Zw0KPiB0aGUgb3ZlcmFsbCBpbnRlZ3JpdHkgb2Ygc2hhcmVkIG9iamVjdHMuICBJZiBub3RoaW5n IGVsc2UsIHlvdSBjYW4NCj4gZnJlZWx5IG1yZW1hcCgpIHRoZW0gaG93ZXZlciB5b3UgbGlrZS4g IEFuZCB5b3UgY2FuIGp1bXAgaW50byB0aGVtDQo+IHdoZXJldmVyIHlvdSBsaWtlLg0KDQotQ2Vk cmljDQo=