From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id BD29FA2EDB for ; Tue, 1 Oct 2019 17:27:48 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E9804CFA6; Tue, 1 Oct 2019 17:27:47 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id 3CCEB4CA6 for ; Tue, 1 Oct 2019 17:27:46 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Oct 2019 08:27:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,571,1559545200"; d="scan'208";a="391227365" Received: from irsmsx154.ger.corp.intel.com ([163.33.192.96]) by fmsmga005.fm.intel.com with ESMTP; 01 Oct 2019 08:27:43 -0700 Received: from irsmsx105.ger.corp.intel.com ([169.254.7.164]) by IRSMSX154.ger.corp.intel.com ([169.254.12.160]) with mapi id 14.03.0439.000; Tue, 1 Oct 2019 16:27:43 +0100 From: "Ananyev, Konstantin" To: Hemant Agrawal , "Zhang, Roy Fan" , "dev@dpdk.org" CC: "Doherty, Declan" , Akhil Goyal Thread-Topic: [dpdk-dev] [PATCH 01/10] security: introduce CPU Crypto action type and API Thread-Index: AQHVZLTl1VhXJQJPk0mogO7E5RVz/KdCPDwAgAC/Z4CAARFPAIAB29xw Date: Tue, 1 Oct 2019 15:27:42 +0000 Message-ID: <2601191342CEEE43887BDE71AB977258019196F46F@irsmsx105.ger.corp.intel.com> References: <20190903154046.55992-1-roy.fan.zhang@intel.com> <20190906131330.40185-1-roy.fan.zhang@intel.com> <20190906131330.40185-2-roy.fan.zhang@intel.com> <1f111d3d-99fb-658f-964d-06a8a3873dfb@nxp.com> <2601191342CEEE43887BDE71AB977258019196CD7B@irsmsx105.ger.corp.intel.com> <60d2000a-a0c6-63cd-8c66-d9d7135e63b9@nxp.com> In-Reply-To: <60d2000a-a0c6-63cd-8c66-d9d7135e63b9@nxp.com> Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMDQ1MmYyY2YtN2NhMi00OTFkLWI3N2QtZjI2NGU1YTVkOGJiIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiVEtlODFWbDVoSzlYU0N2XC9mcVRFV1NoSTluc1hBUXQ0QWRQazZMc3JzWU5mMGdVUlA4Rm5tSGR1XC9cL2RmMXlzeSJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 01/10] security: introduce CPU Crypto action type and API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQpIaSBIZW1hbnQsDQoNCj4gPj4+IFRoaXMgcGF0Y2ggaW50cm9kdWNlIG5ldyBSVEVfU0VDVVJJ VFlfQUNUSU9OX1RZUEVfQ1BVX0NSWVBUTyBhY3Rpb24gdHlwZSB0bw0KPiA+Pj4gc2VjdXJpdHkg bGlicmFyeS4gVGhlIHR5cGUgcmVwcmVzZW50cyBwZXJmb3JtaW5nIGNyeXB0byBvcGVyYXRpb24g d2l0aCBDUFUNCj4gPj4+IGN5Y2xlcy4gVGhlIHBhdGNoIGFsc28gaW5jbHVkZXMgYSBuZXcgQVBJ IHRvIHByb2Nlc3MgY3J5cHRvIG9wZXJhdGlvbnMgaW4NCj4gPj4+IGJ1bGsgYW5kIHRoZSBmdW5j dGlvbiBwb2ludGVycyBmb3IgUE1Ecy4NCj4gPj4+DQo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBGYW4g WmhhbmcgPHJveS5mYW4uemhhbmdAaW50ZWwuY29tPg0KPiA+Pj4gLS0tDQo+ID4+PiAgICBsaWIv bGlicnRlX3NlY3VyaXR5L3J0ZV9zZWN1cml0eS5jICAgICAgICAgICB8IDE2ICsrKysrKysrKw0K PiA+Pj4gICAgbGliL2xpYnJ0ZV9zZWN1cml0eS9ydGVfc2VjdXJpdHkuaCAgICAgICAgICAgfCA1 MSArKysrKysrKysrKysrKysrKysrKysrKysrKystDQo+ID4+PiAgICBsaWIvbGlicnRlX3NlY3Vy aXR5L3J0ZV9zZWN1cml0eV9kcml2ZXIuaCAgICB8IDE5ICsrKysrKysrKysrDQo+ID4+PiAgICBs aWIvbGlicnRlX3NlY3VyaXR5L3J0ZV9zZWN1cml0eV92ZXJzaW9uLm1hcCB8ICAxICsNCj4gPj4+ ICAgIDQgZmlsZXMgY2hhbmdlZCwgODYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiA+ Pj4NCj4gPj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3NlY3VyaXR5L3J0ZV9zZWN1cml0eS5j IGIvbGliL2xpYnJ0ZV9zZWN1cml0eS9ydGVfc2VjdXJpdHkuYw0KPiA+Pj4gaW5kZXggYmM4MWNl MTVkLi4wZjg1YzFiNTkgMTAwNjQ0DQo+ID4+PiAtLS0gYS9saWIvbGlicnRlX3NlY3VyaXR5L3J0 ZV9zZWN1cml0eS5jDQo+ID4+PiArKysgYi9saWIvbGlicnRlX3NlY3VyaXR5L3J0ZV9zZWN1cml0 eS5jDQo+ID4+PiBAQCAtMTQxLDMgKzE0MSwxOSBAQCBydGVfc2VjdXJpdHlfY2FwYWJpbGl0eV9n ZXQoc3RydWN0IHJ0ZV9zZWN1cml0eV9jdHggKmluc3RhbmNlLA0KPiA+Pj4NCj4gPj4+ICAgIAly ZXR1cm4gTlVMTDsNCj4gPj4+ICAgIH0NCj4gPj4+ICsNCj4gPj4+ICt2b2lkDQo+ID4+PiArcnRl X3NlY3VyaXR5X3Byb2Nlc3NfY3B1X2NyeXB0b19idWxrKHN0cnVjdCBydGVfc2VjdXJpdHlfY3R4 ICppbnN0YW5jZSwNCj4gPj4+ICsJCXN0cnVjdCBydGVfc2VjdXJpdHlfc2Vzc2lvbiAqc2VzcywN Cj4gPj4+ICsJCXN0cnVjdCBydGVfc2VjdXJpdHlfdmVjIGJ1ZltdLCB2b2lkICppdltdLCB2b2lk ICphYWRbXSwNCj4gPj4+ICsJCXZvaWQgKmRpZ2VzdFtdLCBpbnQgc3RhdHVzW10sIHVpbnQzMl90 IG51bSkNCj4gPj4+ICt7DQo+ID4+PiArCXVpbnQzMl90IGk7DQo+ID4+PiArDQo+ID4+PiArCWZv ciAoaSA9IDA7IGkgPCBudW07IGkrKykNCj4gPj4+ICsJCXN0YXR1c1tpXSA9IC0xOw0KPiA+Pj4g Kw0KPiA+Pj4gKwlSVEVfRlVOQ19QVFJfT1JfUkVUKCppbnN0YW5jZS0+b3BzLT5wcm9jZXNzX2Nw dV9jcnlwdG9fYnVsayk7DQo+ID4+PiArCWluc3RhbmNlLT5vcHMtPnByb2Nlc3NfY3B1X2NyeXB0 b19idWxrKHNlc3MsIGJ1ZiwgaXYsDQo+ID4+PiArCQkJYWFkLCBkaWdlc3QsIHN0YXR1cywgbnVt KTsNCj4gPj4+ICt9DQo+ID4+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9zZWN1cml0eS9ydGVf c2VjdXJpdHkuaCBiL2xpYi9saWJydGVfc2VjdXJpdHkvcnRlX3NlY3VyaXR5LmgNCj4gPj4+IGlu ZGV4IDk2ODA2ZTNhMi4uNWEwZjg5MDFiIDEwMDY0NA0KPiA+Pj4gLS0tIGEvbGliL2xpYnJ0ZV9z ZWN1cml0eS9ydGVfc2VjdXJpdHkuaA0KPiA+Pj4gKysrIGIvbGliL2xpYnJ0ZV9zZWN1cml0eS9y dGVfc2VjdXJpdHkuaA0KPiA+Pj4gQEAgLTE4LDYgKzE4LDcgQEAgZXh0ZXJuICJDIiB7DQo+ID4+ PiAgICAjZW5kaWYNCj4gPj4+DQo+ID4+PiAgICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQo+ID4+ PiArI2luY2x1ZGUgPHN5cy91aW8uaD4NCj4gPj4+DQo+ID4+PiAgICAjaW5jbHVkZSA8bmV0aW5l dC9pbi5oPg0KPiA+Pj4gICAgI2luY2x1ZGUgPG5ldGluZXQvaXAuaD4NCj4gPj4+IEBAIC0yNzIs NiArMjczLDIwIEBAIHN0cnVjdCBydGVfc2VjdXJpdHlfcGRjcF94Zm9ybSB7DQo+ID4+PiAgICAJ dWludDMyX3QgaGZuX3RocmVzaG9sZDsNCj4gPj4+ICAgIH07DQo+ID4+Pg0KPiA+Pj4gK3N0cnVj dCBydGVfc2VjdXJpdHlfY3B1X2NyeXB0b194Zm9ybSB7DQo+ID4+PiArCS8qKiBGb3IgY2lwaGVy L2F1dGhlbnRpY2F0aW9uIGNyeXB0byBvcGVyYXRpb24gdGhlIGF1dGhlbnRpY2F0aW9uIG1heQ0K PiA+Pj4gKwkgKiBjb3ZlciBtb3JlIGNvbnRlbnQgdGhlbiB0aGUgY2lwaGVyLiBFLmcuLCBmb3Ig SVBTZWMgRVNQIGVuY3J5cHRpb24NCj4gPj4+ICsJICogd2l0aCBBRVMtQ0JDIGFuZCBTSEExLUhN QUMsIHRoZSBlbmNyeXB0aW9uIGhhcHBlbnMgYWZ0ZXIgdGhlIEVTUA0KPiA+Pj4gKwkgKiBoZWFk ZXIgYnV0IHdob2xlIHBhY2tldCAoYXBhcnQgZnJvbSBNQUMgaGVhZGVyKSBpcyBhdXRoZW50aWNh dGVkLg0KPiA+Pj4gKwkgKiBUaGUgY2lwaGVyX29mZnNldCBmaWVsZCBpcyB1c2VkIHRvIGRlZHVj dCB0aGUgY2lwaGVyIGRhdGEgcG9pbnRlcg0KPiA+Pj4gKwkgKiBmcm9tIHRoZSBidWZmZXIgdG8g YmUgcHJvY2Vzc2VkLg0KPiA+Pj4gKwkgKg0KPiA+Pj4gKwkgKiBOT1RFIHRoaXMgcGFyYW1ldGVy IHNoYWxsIGJlIGlnbm9yZWQgYnkgQUVBRCBhbGdvcml0aG1zLCBzaW5jZSBpdA0KPiA+Pj4gKwkg KiB1c2VzIHRoZSBzYW1lIG9mZnNldCBmb3IgY2lwaGVyIGFuZCBhdXRoZW50aWNhdGlvbi4NCj4g Pj4+ICsJICovDQo+ID4+PiArCWludDMyX3QgY2lwaGVyX29mZnNldDsNCj4gPj4+ICt9Ow0KPiA+ Pj4gKw0KPiA+Pj4gICAgLyoqDQo+ID4+PiAgICAgKiBTZWN1cml0eSBzZXNzaW9uIGFjdGlvbiB0 eXBlLg0KPiA+Pj4gICAgICovDQo+ID4+PiBAQCAtMjg2LDEwICszMDEsMTQgQEAgZW51bSBydGVf c2VjdXJpdHlfc2Vzc2lvbl9hY3Rpb25fdHlwZSB7DQo+ID4+PiAgICAJLyoqPCBBbGwgc2VjdXJp dHkgcHJvdG9jb2wgcHJvY2Vzc2luZyBpcyBwZXJmb3JtZWQgaW5saW5lIGR1cmluZw0KPiA+Pj4g ICAgCSAqIHRyYW5zbWlzc2lvbg0KPiA+Pj4gICAgCSAqLw0KPiA+Pj4gLQlSVEVfU0VDVVJJVFlf QUNUSU9OX1RZUEVfTE9PS0FTSURFX1BST1RPQ09MDQo+ID4+PiArCVJURV9TRUNVUklUWV9BQ1RJ T05fVFlQRV9MT09LQVNJREVfUFJPVE9DT0wsDQo+ID4+PiAgICAJLyoqPCBBbGwgc2VjdXJpdHkg cHJvdG9jb2wgcHJvY2Vzc2luZyBpbmNsdWRpbmcgY3J5cHRvIGlzIHBlcmZvcm1lZA0KPiA+Pj4g ICAgCSAqIG9uIGEgbG9va2FzaWRlIGFjY2VsZXJhdG9yDQo+ID4+PiAgICAJICovDQo+ID4+PiAr CVJURV9TRUNVUklUWV9BQ1RJT05fVFlQRV9DUFVfQ1JZUFRPDQo+ID4+PiArCS8qKjwgQ3J5cHRv IHByb2Nlc3NpbmcgZm9yIHNlY3VyaXR5IHByb3RvY29sIGlzIHByb2Nlc3NlZCBieSBDUFUNCj4g Pj4+ICsJICogc3luY2hyb25vdXNseQ0KPiA+Pj4gKwkgKi8NCj4gPj4gdGhvdWdoIHlvdSBhcmUg bmFtaW5nIGl0IGNwdSBjcnlwdG8sIGJ1dCBpdCBpcyBtb3JlIGxpa2UgcmF3IHBhY2tldA0KPiA+ PiBjcnlwdG8sIHdoZXJlIHlvdSB3YW50IHRvIHNraXAgbWJ1Zi9jcnlwdG8gb3BzIGFuZCBkaXJl Y3RseSB3YW50cyB0bw0KPiA+PiB3b3JrIG9uIHJhdyBidWZmZXIuDQo+ID4gWWVzLCBidXQgd2Ug ZG8gd2F0IHRvIGRvIHRoYXQgKHNraXAgbWJ1Zi9jcnlwdG8gb3BzIGFuZCB1c2UgcmF3IGJ1ZmZl ciksDQo+ID4gYmVjYXVzZSB0aGlzIEFQSSBpcyBkZXN0aW5lZCBmb3IgU1cgYmFja2VkIGltcGxl bWVudGF0aW9uLg0KPiA+IEZvciB0aGF0IGNhc2UgY3J5cHRvLW9wcyAsIG1idWYsIGVucXVldWUv ZGVxdWV1ZSBhcmUganVzdCB1bm5lY2Vzc2FyeSBvdmVyaGVhZC4NCj4gSSBhZ3JlZSwgd2UgYXJl IGFsc28gcGxhbm5pbmcgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgaXQgZm9yIHNvbWUgc3BlY2lmaWMN Cj4gdXNlLWNhc2VzIGluIGZ1dHVyZS4NCj4gPj4+ICAgIH07DQo+ID4+Pg0KPiA+Pj4gICAgLyoq IFNlY3VyaXR5IHNlc3Npb24gcHJvdG9jb2wgZGVmaW5pdGlvbiAqLw0KPiA+Pj4gQEAgLTMxNSw2 ICszMzQsNyBAQCBzdHJ1Y3QgcnRlX3NlY3VyaXR5X3Nlc3Npb25fY29uZiB7DQo+ID4+PiAgICAJ CXN0cnVjdCBydGVfc2VjdXJpdHlfaXBzZWNfeGZvcm0gaXBzZWM7DQo+ID4+PiAgICAJCXN0cnVj dCBydGVfc2VjdXJpdHlfbWFjc2VjX3hmb3JtIG1hY3NlYzsNCj4gPj4+ICAgIAkJc3RydWN0IHJ0 ZV9zZWN1cml0eV9wZGNwX3hmb3JtIHBkY3A7DQo+ID4+PiArCQlzdHJ1Y3QgcnRlX3NlY3VyaXR5 X2NwdV9jcnlwdG9feGZvcm0gY3B1Y3J5cHRvOw0KPiA+Pj4gICAgCX07DQo+ID4+PiAgICAJLyoq PCBDb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgZm9yIHNlY3VyaXR5IHNlc3Npb24gKi8NCj4gPj4+ ICAgIAlzdHJ1Y3QgcnRlX2NyeXB0b19zeW1feGZvcm0gKmNyeXB0b194Zm9ybTsNCj4gPj4+IEBA IC02MzksNiArNjU5LDM1IEBAIGNvbnN0IHN0cnVjdCBydGVfc2VjdXJpdHlfY2FwYWJpbGl0eSAq DQo+ID4+PiAgICBydGVfc2VjdXJpdHlfY2FwYWJpbGl0eV9nZXQoc3RydWN0IHJ0ZV9zZWN1cml0 eV9jdHggKmluc3RhbmNlLA0KPiA+Pj4gICAgCQkJICAgIHN0cnVjdCBydGVfc2VjdXJpdHlfY2Fw YWJpbGl0eV9pZHggKmlkeCk7DQo+ID4+Pg0KPiA+Pj4gKy8qKg0KPiA+Pj4gKyAqIFNlY3VyaXR5 IHZlY3RvciBzdHJ1Y3R1cmUsIGNvbnRhaW5zIHBvaW50ZXIgdG8gdmVjdG9yIGFycmF5IGFuZCB0 aGUgbGVuZ3RoDQo+ID4+PiArICogb2YgdGhlIGFycmF5DQo+ID4+PiArICovDQo+ID4+PiArc3Ry dWN0IHJ0ZV9zZWN1cml0eV92ZWMgew0KPiA+Pj4gKwlzdHJ1Y3QgaW92ZWMgKnZlYzsNCj4gPj4+ ICsJdWludDMyX3QgbnVtOw0KPiA+Pj4gK307DQo+ID4+PiArDQo+ID4+IEp1c3Qgd29uZGVyaW5n IGlmIHlvdSB3YW50IHRvIGNoYW5nZSBpdCB0byAqaW5fdmVjIGFuZCAqb3V0X3ZlYywgdGhhdA0K PiA+PiB3aWxsIGJlIGhlbHBmdWwgaW4gZnV0dXJlLCBpZiB0aGUgb3V0LW9mLXBsYWNlIHByb2Nl c3NpbmcgaXMgcmVxdWlyZWQNCj4gPj4gZm9yIENQVSB1c2VjYXNlIGFzIHdlbGw/DQo+ID4gSSBz dXBwb3NlIHRoaXMgaXMgZG9hYmxlLCB0aG91Z2ggcmlnaHQgbm93IHdlIGRvbid0IHBsYW4gdG8g c3VwcG9ydCBzdWNoIG1vZGVsLg0KPiBUaGV5IHdpbGwgY29tZSBoYW5keSBpbiBmdXR1cmUuIEkg cGxhbiB0byB1c2UgaXQgaW4gZnV0dXJlIGFuZCB3ZSBjYW4NCj4gc2tpcCB0aGUgQVBJL0FCSSBi cmVha2FnZSwgaWYgdGhlIHBsYWNlaG9sZGVyIGFyZSBwcmVzZW50DQo+ID4NCj4gPj4+ICsvKioN Cj4gPj4+ICsgKiBQcm9jZXNzaW5nIGJ1bGsgY3J5cHRvIHdvcmtsb2FkIHdpdGggQ1BVDQo+ID4+ PiArICoNCj4gPj4+ICsgKiBAcGFyYW0JaW5zdGFuY2UJc2VjdXJpdHkgaW5zdGFuY2UuDQo+ID4+ PiArICogQHBhcmFtCXNlc3MJCXNlY3VyaXR5IHNlc3Npb24NCj4gPj4+ICsgKiBAcGFyYW0JYnVm CQlhcnJheSBvZiBidWZmZXIgU0dMIHZlY3RvcnMNCj4gPj4+ICsgKiBAcGFyYW0JaXYJCWFycmF5 IG9mIElWIHBvaW50ZXJzDQo+ID4+PiArICogQHBhcmFtCWFhZAkJYXJyYXkgb2YgQUFEIHBvaW50 ZXJzDQo+ID4+PiArICogQHBhcmFtCWRpZ2VzdAkJYXJyYXkgb2YgZGlnZXN0IHBvaW50ZXJzDQo+ ID4+PiArICogQHBhcmFtCXN0YXR1cwkJYXJyYXkgb2Ygc3RhdHVzIGZvciB0aGUgZnVuY3Rpb24g dG8gcmV0dXJuDQo+ID4+PiArICogQHBhcmFtCW51bQkJbnVtYmVyIG9mIGVsZW1lbnRzIGluIGVh Y2ggYXJyYXkNCj4gPj4+ICsgKg0KPiA+Pj4gKyAqLw0KPiA+Pj4gK19fcnRlX2V4cGVyaW1lbnRh bA0KPiA+Pj4gK3ZvaWQNCj4gPj4+ICtydGVfc2VjdXJpdHlfcHJvY2Vzc19jcHVfY3J5cHRvX2J1 bGsoc3RydWN0IHJ0ZV9zZWN1cml0eV9jdHggKmluc3RhbmNlLA0KPiA+Pj4gKwkJc3RydWN0IHJ0 ZV9zZWN1cml0eV9zZXNzaW9uICpzZXNzLA0KPiA+Pj4gKwkJc3RydWN0IHJ0ZV9zZWN1cml0eV92 ZWMgYnVmW10sIHZvaWQgKml2W10sIHZvaWQgKmFhZFtdLA0KPiA+Pj4gKwkJdm9pZCAqZGlnZXN0 W10sIGludCBzdGF0dXNbXSwgdWludDMyX3QgbnVtKTsNCj4gPj4+ICsNCj4gPj4gV2h5IG5vdCBt YWtlIHRoZSByZXR1cm4gYXMgaW50LCB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoaXMgQVBJIGNvbXBs ZXRlbHkNCj4gPj4gZmFpbGVkIG9yIHByb2Nlc3NlZCBvciBoYXZlIHNvbWUgdmFsaWQgc3RhdHVz IHRvIGxvb2sgaW50bz8NCj4gPiBHb29kIHBvaW50LCB3aWxsIGNoYW5nZSBhcyBzdWdnZXN0ZWQu DQo+IA0KPiBJIGhhdmUgYW5vdGhlciBzdWdnZXN0aW9ucyB3LnIudCBpdiwgYWFkLCBkaWdlc3Qg ZXRjLiBXaHkgbm90IHB1dCB0aGVtDQo+IGluIGEgc3RydWN0dXJlLCBzbyB0aGF0IHlvdSB3aWxs DQo+IA0KPiBiZSBhYmxlIHRvIGFkZC9yZW1vdmUgdGhlIHZhcmlhYmxlIHdpdGhvdXQgYnJlYWtp bmcgdGhlIEFQSSBwcm90b3R5cGUuDQoNCg0KSnVzdCB0byBjb25maXJtLCB5b3UgYXJlIHRhbGtp bmcgYWJvdXQgc29tZXRoaW5nIGxpa2U6DQoNCnN0cnVjdCBydGVfc2VjdXJpdHlfdmVjIHsNCiAg IHN0cnVjdCBpb3ZlYyAqdmVjOw0KICAgdWludDMyX3QgbnVtOw0KfTsNCg0Kc3RydWN0IHJ0ZV9z ZWN1cml0eV9zeW1fdmVjIHsNCiAgICAgIHN0cnVjdCBydGVfc2VjdXJpdHlfdmVjIGJ1ZjsNCiAg ICAgIHZvaWQgKml2Ow0KICAgICAgdm9pZCAqYWFkOw0KICAgICAgdm9pZCAqZGlnZXN0Ow0KfTsN Cg0KcnRlX3NlY3VyaXR5X3Byb2Nlc3NfY3B1X2NyeXB0b19idWxrKHN0cnVjdCBydGVfc2VjdXJp dHlfY3R4ICppbnN0YW5jZSwNCglzdHJ1Y3QgcnRlX3NlY3VyaXR5X3Nlc3Npb24gKnNlc3MsIHN0 cnVjdCBydGVfc2VjdXJpdHlfc3ltX3ZlYyBidWZbXSwNCiAgICAgICAgICAgICAgIGludCBzdGF0 dXNbXSwgdWludDMyX3QgbnVtKTsNCg0KPw0KV2UgdGhvdWdodCBhYm91dCBzdWNoIHdheSwgdGhv dWdoIGZvciBQTUQgaXQgd291bGQgYmUNCm1vcmUgcGxhdXNpYmxlIHRvIGhhdmUgc2FtZSB0eXBl IG9mIHBhcmFtcyBncm91cGVkIHRvZ2V0aGVyLA0KaS5lLiB2b2lkICppbltdLCB2b2lkICpvdXRb XSwgdm9pZCAqZGlnZXN0W10sIC4uLg0KQW5vdGhlciB0aGluZyAtIGFib3ZlIGdyb3VwaW5nIHdv dWxkbid0IGhlbHAgdG8gYXZvaWQgQUJJIGJyZWFrYWdlLA0KaW4gY2FzZSB3ZSdsbCBuZWVkIHRv IGFkZCBuZXcgZmllbGQgaW50byBydGVfc2VjdXJpdHlfc3ltX3ZlYw0KKHRob3VnaCBpdCBtaWdo dCBoZWxwIHRvIGF2b2lkIEFQSSBicmVha2FnZSkuDQoNCkluIHRoZW9yeSBvdGhlciB3YXkgaXMg YWxzbyBwb3NzaWJsZToNCnN0cnVjdCBydGVfc2VjdXJpdHlfc3ltX3ZlYyB7DQogICAgICBzdHJ1 Y3QgcnRlX3NlY3VyaXR5X3ZlYyAqYnVmOw0KICAgICAgdm9pZCAqKml2Ow0KICAgICAgdm9pZCAq KmFhZDsNCiAgICAgIHZvaWQgKipkaWdlc3Q7DQp9Ow0KDQpydGVfc2VjdXJpdHlfcHJvY2Vzc19j cHVfY3J5cHRvX2J1bGsoc3RydWN0IHJ0ZV9zZWN1cml0eV9jdHggKmluc3RhbmNlLA0KCXN0cnVj dCBydGVfc2VjdXJpdHlfc2Vzc2lvbiAqc2Vzcywgc3RydWN0IHJ0ZV9zZWN1cml0eV9zeW1fdmVj ICpidWYsDQogICAgICAgICAgICAgICBpbnQgc3RhdHVzW10sIHVpbnQzMl90IG51bSk7DQoNCkFu ZCB0aGF0IG1pZ2h0IGhlbHAgZm9yIGJvdGggQUJJIGFuZCBBUEkgc3RhYmlsaXR5LCANCmJ1dCBp dCBsb29rcyByZWFsbHkgd2VpcmQgdGhhdCB3YXkgKGF0IGxlYXN0IHRvIG1lKS4NCkFsc28gdGhp cyBBUEkgaXMgZXhwZXJpbWVudGFsIGFuZCBJIHN1cHBvc2UgbmVlZHMgdG8gc3RheSBleHBlcmlt ZW50YWwgZm9yDQpmZXcgcmVsZWFzZXMgYmVmb3JlIHdlIGFyZSBzdXJlIG5vdGhpbmcgaW1wb3J0 YW50IGlzIG1pc3NpbmcsDQpzbyBwcm9iYWJseSBBUEkvQUJJIHN0YWJpbGl0eSBpcyBub3QgdGhh dCBoaWdoIGNvbmNlcm4gZm9yIGl0IHJpZ2h0IG5vdy4gDQoNCktvbnN0YW50aW4NCg0KIA0K