From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 00C4C1B4F7 for ; Fri, 1 Feb 2019 22:05:34 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Feb 2019 13:05:33 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,549,1539673200"; d="scan'208";a="130873183" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga002.jf.intel.com with ESMTP; 01 Feb 2019 13:05:32 -0800 Received: from fmsmsx108.amr.corp.intel.com ([169.254.9.99]) by FMSMSX103.amr.corp.intel.com ([169.254.2.205]) with mapi id 14.03.0415.000; Fri, 1 Feb 2019 13:05:32 -0800 From: "Eads, Gage" To: Ola Liljedahl , "dev@dpdk.org" CC: "jerinj@marvell.com" , "chaozhu@linux.vnet.ibm.com" , nd , "Richardson, Bruce" , "Ananyev, Konstantin" , "hemant.agrawal@nxp.com" , "olivier.matz@6wind.com" , "arybchenko@solarflare.com" , "Gavin Hu (Arm Technology China)" , Honnappa Nagarahalli Thread-Topic: [dpdk-dev] [PATCH 1/1] eal: add 128-bit cmpset (x86-64 only) Thread-Index: AQHUty7+Hx+p+KOLIUunsbjUPnO+E6XFTIWAgAXPcGCAADbYgIAAAOuAgAAK5QCAAAyOIA== Date: Fri, 1 Feb 2019 21:05:32 +0000 Message-ID: <9184057F7FC11744A2107296B6B8EB1E541CE38D@FMSMSX108.amr.corp.intel.com> References: <20190128172945.27251-1-gage.eads@intel.com> <20190128172945.27251-2-gage.eads@intel.com> <1548716507.11472.96.camel@arm.com> <9184057F7FC11744A2107296B6B8EB1E541CE1FE@FMSMSX108.amr.corp.intel.com> <1549047709.20325.35.camel@arm.com> <9184057F7FC11744A2107296B6B8EB1E541CE2CE@FMSMSX108.amr.corp.intel.com> <1549050246.20325.45.camel@arm.com> In-Reply-To: <1549050246.20325.45.camel@arm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZTU4NTIyMzQtMTQ3Mi00N2U2LTk5NjQtNjdlMjExNThmOTg3IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiQmlWNW1ZaU93MDFVaVZ5bU1DZlFLM2V1XC9wWXJPd0Zmb0V0UDk0VXM3M0JWTTBkSXVZcHd1MHNFRk9OR2lBdFwvIn0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.1.200.107] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 1/1] eal: add 128-bit cmpset (x86-64 only) 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: , X-List-Received-Date: Fri, 01 Feb 2019 21:05:35 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogT2xhIExpbGplZGFobCBb bWFpbHRvOk9sYS5MaWxqZWRhaGxAYXJtLmNvbV0NCj4gU2VudDogRnJpZGF5LCBGZWJydWFyeSAx LCAyMDE5IDE6NDQgUE0NCj4gVG86IEVhZHMsIEdhZ2UgPGdhZ2UuZWFkc0BpbnRlbC5jb20+OyBk ZXZAZHBkay5vcmcNCj4gQ2M6IGplcmluakBtYXJ2ZWxsLmNvbTsgY2hhb3podUBsaW51eC52bmV0 LmlibS5jb207IG5kIDxuZEBhcm0uY29tPjsNCj4gUmljaGFyZHNvbiwgQnJ1Y2UgPGJydWNlLnJp Y2hhcmRzb25AaW50ZWwuY29tPjsgQW5hbnlldiwgS29uc3RhbnRpbg0KPiA8a29uc3RhbnRpbi5h bmFueWV2QGludGVsLmNvbT47IGhlbWFudC5hZ3Jhd2FsQG54cC5jb207DQo+IG9saXZpZXIubWF0 ekA2d2luZC5jb207IGFyeWJjaGVua29Ac29sYXJmbGFyZS5jb207IEdhdmluIEh1IChBcm0NCj4g VGVjaG5vbG9neSBDaGluYSkgPEdhdmluLkh1QGFybS5jb20+OyBIb25uYXBwYSBOYWdhcmFoYWxs aQ0KPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4NCj4gU3ViamVjdDogUmU6IFtkcGRr LWRldl0gW1BBVENIIDEvMV0gZWFsOiBhZGQgMTI4LWJpdCBjbXBzZXQgKHg4Ni02NCBvbmx5KQ0K PiANCj4gT24gRnJpLCAyMDE5LTAyLTAxIGF0IDE5OjI4ICswMDAwLCBFYWRzLCBHYWdlIHdyb3Rl Og0KPiA+DQo+ID4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZy b206IE9sYSBMaWxqZWRhaGwgW21haWx0bzpPbGEuTGlsamVkYWhsQGFybS5jb21dDQo+ID4gPiBT ZW50OiBGcmlkYXksIEZlYnJ1YXJ5IDEsIDIwMTkgMTowMiBQTQ0KPiA+ID4gVG86IEVhZHMsIEdh Z2UgPGdhZ2UuZWFkc0BpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPiA+IENjOiBqZXJpbmpA bWFydmVsbC5jb207IGNoYW96aHVAbGludXgudm5ldC5pYm0uY29tOyBuZCA8bmRAYXJtLmNvbT47 DQo+ID4gPiBSaWNoYXJkc29uLCBCcnVjZSA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+OyBB bmFueWV2LCBLb25zdGFudGluDQo+ID4gPiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47 IGhlbWFudC5hZ3Jhd2FsQG54cC5jb207DQo+ID4gPiBvbGl2aWVyLm1hdHpANndpbmQuY29tOyBh cnliY2hlbmtvQHNvbGFyZmxhcmUuY29tOyBHYXZpbiBIdSAoQXJtDQo+ID4gPiBUZWNobm9sb2d5 IENoaW5hKSA8R2F2aW4uSHVAYXJtLmNvbT47IEhvbm5hcHBhIE5hZ2FyYWhhbGxpDQo+ID4gPiA8 SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJlOiBbZHBkay1k ZXZdIFtQQVRDSCAxLzFdIGVhbDogYWRkIDEyOC1iaXQgY21wc2V0ICh4ODYtNjQNCj4gPiA+IG9u bHkpDQo+ID4gPg0KPiA+ID4gT24gRnJpLCAyMDE5LTAyLTAxIGF0IDE3OjA2ICswMDAwLCBFYWRz LCBHYWdlIHdyb3RlOg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4g PiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206IE9sYSBM aWxqZWRhaGwgW21haWx0bzpPbGEuTGlsamVkYWhsQGFybS5jb21dDQo+ID4gPiA+ID4gU2VudDog TW9uZGF5LCBKYW51YXJ5IDI4LCAyMDE5IDU6MDIgUE0NCj4gPiA+ID4gPiBUbzogRWFkcywgR2Fn ZSA8Z2FnZS5lYWRzQGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+ID4gPiA+IENjOiBhcnli Y2hlbmtvQHNvbGFyZmxhcmUuY29tOyBqZXJpbmpAbWFydmVsbC5jb207DQo+ID4gPiA+ID4gY2hh b3podUBsaW51eC52bmV0LmlibS5jb207IG5kIDxuZEBhcm0uY29tPjsgUmljaGFyZHNvbiwgQnJ1 Y2UNCj4gPiA+ID4gPiA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+OyBBbmFueWV2LCBLb25z dGFudGluDQo+ID4gPiA+ID4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBoZW1hbnQu YWdyYXdhbEBueHAuY29tOw0KPiA+ID4gPiA+IG9saXZpZXIubWF0ekA2d2luZC5jb207IEhvbm5h cHBhIE5hZ2FyYWhhbGxpDQo+ID4gPiA+ID4gPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+ OyBHYXZpbiBIdSAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpDQo+ID4gPiA+ID4gPEdhdmluLkh1QGFy bS5jb20+DQo+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIDEvMV0gZWFs OiBhZGQgMTI4LWJpdCBjbXBzZXQNCj4gPiA+ID4gPiAoeDg2LTY0DQo+ID4gPiA+ID4gb25seSkN Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9uIE1vbiwgMjAxOS0wMS0yOCBhdCAxMToyOSAtMDYwMCwg R2FnZSBFYWRzIHdyb3RlOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBU aGlzIG9wZXJhdGlvbiBjYW4gYmUgdXNlZCBmb3Igbm9uLWJsb2NraW5nIGFsZ29yaXRobXMsIHN1 Y2gNCj4gPiA+ID4gPiA+IGFzIGEgbm9uLWJsb2NraW5nIHN0YWNrIG9yIHJpbmcuDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogR2FnZSBFYWRzIDxnYWdlLmVhZHNAaW50 ZWwuY29tPg0KPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiDCoC4uLi9jb21tb24vaW5jbHVk ZS9hcmNoL3g4Ni9ydGVfYXRvbWljXzY0LmjCoMKgwqDCoMKgwqDCoMKgfCAzMQ0KPiA+ID4gPiA+ ID4gKysrKysrKysrKysNCj4gPiA+ID4gPiA+IMKgbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1 ZGUvZ2VuZXJpYy9ydGVfYXRvbWljLmggfCA2NQ0KPiA+ID4gPiA+ID4gKysrKysrKysrKysrKysr KysrKysrKw0KPiA+ID4gPiA+ID4gwqAyIGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKykN Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+ID4gPiBhL2xpYi9s aWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2FyY2gveDg2L3J0ZV9hdG9taWNfNjQuaA0KPiA+ID4g PiA+ID4gYi9saWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9hcmNoL3g4Ni9ydGVfYXRvbWlj XzY0LmgNCj4gPiA+ID4gPiA+IGluZGV4IGZkMmVjOWM1My4uYjdiOTBiODNlIDEwMDY0NA0KPiA+ ID4gPiA+ID4gLS0tIGEvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvYXJjaC94ODYvcnRl X2F0b21pY182NC5oDQo+ID4gPiA+ID4gPiArKysgYi9saWIvbGlicnRlX2VhbC9jb21tb24vaW5j bHVkZS9hcmNoL3g4Ni9ydGVfYXRvbWljXzY0LmgNCj4gPiA+ID4gPiA+IEBAIC0zNCw2ICszNCw3 IEBADQo+ID4gPiA+ID4gPiDCoC8qDQo+ID4gPiA+ID4gPiDCoCAqIEluc3BpcmVkIGZyb20gRnJl ZUJTRCBzcmMvc3lzL2FtZDY0L2luY2x1ZGUvYXRvbWljLmgNCj4gPiA+ID4gPiA+IMKgICogQ29w eXJpZ2h0IChjKSAxOTk4IERvdWcgUmFic29uDQo+ID4gPiA+ID4gPiArICogQ29weXJpZ2h0IChj KSAyMDE5IEludGVsIENvcnBvcmF0aW9uDQo+ID4gPiA+ID4gPiDCoCAqIEFsbCByaWdodHMgcmVz ZXJ2ZWQuDQo+ID4gPiA+ID4gPiDCoCAqLw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEBAIC00 Niw2ICs0Nyw3IEBADQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gwqAjaW5jbHVkZSA8c3RkaW50 Lmg+DQo+ID4gPiA+ID4gPiDCoCNpbmNsdWRlIDxydGVfY29tbW9uLmg+DQo+ID4gPiA+ID4gPiAr I2luY2x1ZGUgPHJ0ZV9jb21wYXQuaD4NCj4gPiA+ID4gPiA+IMKgI2luY2x1ZGUgPHJ0ZV9hdG9t aWMuaD4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiDCoC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSA2NCBiaXQgYXRvbWljIG9wZXJhdGlvbnMNCj4gPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSAtKi8gQEAgLTIwOCw0ICsyMTAsMzMgQEAgc3RhdGljDQo+ID4gPiA+ID4gPiBp bmxpbmUgdm9pZCBydGVfYXRvbWljNjRfY2xlYXIocnRlX2F0b21pYzY0X3QgKnYpDQo+ID4gPiA+ ID4gPiDCoH0NCj4gPiA+ID4gPiA+IMKgI2VuZGlmDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g K3N0YXRpYyBpbmxpbmUgaW50IF9fcnRlX2V4cGVyaW1lbnRhbA0KPiA+ID4gPiA+IF9fcnRlX2Fs d2F5c19pbmxpbmU/DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gK3J0ZV9hdG9taWMxMjhfY21wc2V0KHZvbGF0aWxlIHJ0ZV9pbnQxMjhfdCAqZHN0LA0K PiA+ID4gPiA+IE5vIG5lZWQgdG8gZGVjbGFyZSB0aGUgbG9jYXRpb24gdm9sYXRpbGUuIFZvbGF0 aWxlIGRvZXNuJ3QgZG8NCj4gPiA+ID4gPiB3aGF0IHlvdSB0aGluayBpdCBkb2VzLg0KPiA+ID4g PiA+IGh0dHBzOi8veW91dHUuYmUvbGtnc3prUG5WOGc/dD0xMDI3DQo+ID4gPiA+ID4NCj4gPiA+ ID4gSSBtYWRlIHRoaXMgdm9sYXRpbGUgdG8gbWF0Y2ggdGhlIGV4aXN0aW5nIHJ0ZV9hdG9taWNO X2NtcHNldA0KPiA+ID4gPiBkZWZpbml0aW9ucywgd2hpY2ggcHJlc3VtYWJseSBoYXZlIGEgZ29v ZCByZWFzb24gZm9yIHVzaW5nIHRoZQ0KPiA+ID4gPiBrZXl3b3JkLiBNYWludGFpbmVycywgYW55 IGlucHV0IGhlcmU/DQo+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICsJCcKgwqDCoMKgwqBydGVfaW50 MTI4X3QgKmV4cCwNCj4gPiA+ID4gPiBJIHdvdWxkIGRlY2xhcmUgJ2V4cCcgY29uc3QgYXMgd2Vs bCBhbmQgZG9jdW1lbnQgdGhhdCAnZXhwJyBpcw0KPiA+ID4gPiA+IG5vdCB1cGRhdGVkICh3aXRo IHRoZSBvbGQgdmFsdWUpIGZvciBhIGZhaWx1cmUuIFRoZSByZWFzb24gYmVpbmcNCj4gPiA+ID4g PiB0aGF0DQo+ID4gPiA+ID4gQVJNdjguMC9BQXJjaDY0IGNhbm5vdCBhdG9taWNhbGx5IHJlYWQg dGhlIG9sZCB2YWx1ZSB3aXRob3V0DQo+ID4gPiA+ID4gYWxzbyB3cml0aW5nIHRoZSBsb2NhdGlv biBhbmQgdGhhdCBpcyBiYWQgZm9yIHBlcmZvcm1hbmNlDQo+ID4gPiA+ID4gKHVubmVjZXNzYXJ5 IHdyaXRlcyBsZWFkcyB0byB1bm5lY2Vzc2FyeSBjb250ZW50aW9uIGFuZCB3b3JzZQ0KPiA+ID4g PiA+IHNjYWxhYmlsaXR5KS4gQW5kIHRoZSB1c2VyIG11c3QgYW55d2F5IHJlYWQgdGhlIGxvY2F0 aW9uIChpbiB0aGUNCj4gPiA+ID4gPiBzdGFydCBvZiB0aGUgY3JpdGljYWwNCj4gPiA+ID4gPiBz ZWN0aW9uKSB1c2luZyBlLmcuIG5vbi1hdG9taWMgNjQtYml0IHJlYWRzIHNvIHRoZXJlIGlzbid0 DQo+ID4gPiA+ID4gYWN0dWFsbHkgYW55IHJlcXVpcmVtZW50IGZvciBhbiBhdG9taWMgMTI4LWJp dCByZWFkIG9mIHRoZSBsb2NhdGlvbi4NCj4gPiA+ID4gPg0KPiA+ID4gPiBXaWxsIGNoYW5nZSBp biB2Mi4NCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+IMKgcnRlX2ludDEyOF90ICpzcmMsDQo+ID4gPiA+ID4gY29uc3Qg cnRlX2ludDEyOF90ICpzcmM/DQo+ID4gPiA+IFN1cmUsIEkgZG9uJ3Qgc2VlIGFueSBoYXJtIGlu IHVzaW5nIGNvbnN0Lg0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+IEJ1dCB3aHkgYXJlIHdlIG5vdCBwYXNzaW5nICdleHAnIGFuZCAnc3JjJyBieSB2 YWx1ZT8gVGhhdCB3b3Jrcw0KPiA+ID4gPiA+IGdyZWF0LCBldmVuIHdpdGggc3RydWN0cy4gUGFz c2luZyBieSB2YWx1ZSBzaW1wbGlmaWVzIHRoZQ0KPiA+ID4gPiA+IGNvbXBpbGVyJ3MgbGlmZSwg ZXNwZWNpYWxseSBpZiB0aGUgY2FsbCBpcyBpbmxpbmVkLiBBc2sgYSBjb21waWxlciBkZXZlbG9w ZXIuDQo+ID4gPiA+IEkgcmFuIG9iamR1bXAgb24gdGhlIG5iX3N0YWNrIGNvZGUgd2l0aCBib3Ro IGFwcHJvYWNoZXMsIGFuZA0KPiA+ID4gPiBwYXNzLWJ5LXJlZmVyZW5jZSByZXN1bHRlZCBpbiBm ZXdlciBvdmVyYWxsIHg4Nl82NCBhc3NlbWJseSBvcHMuDQo+ID4gPiA+IFBCVjogMTAwIG9wcyBm b3IgcHVzaCwgOTcgb3BzIGZvciBwb3ANCj4gPiA+ID4gUEJSOiA5MiBvcHMgZm9yIHB1c2gsIDg0 IG9wcyBmb3IgcG9wDQo+ID4gPiBPSyBJIGhhdmUgbmV2ZXIgY2hlY2tlZCB4ODZfNjQgY29kZSBn ZW5lcmF0aW9uLi4uIEkgaGF2ZSBnb29kDQo+ID4gPiBleHBlcmllbmNlcyB3aXRoIEFSTS9BQXJj aDY0LCBldmVyeXRoaW5nIHNlZW1zIHRvIGJlIGRvbmUgdXNpbmcNCj4gPiA+IHJlZ2lzdGVycy4g SSBhbSBzdXJwcmlzZWQgdGhlcmUgaXMgYSBkaWZmZXJlbmNlLg0KPiA+ID4NCj4gPiA+IERpZCBh IHF1aWNrIGNoZWNrIHdpdGggbGZyaW5nLCBwYXNzaW5nICdzcmMnICh0aGlyZCBwYXJhbSkgYnkN Cj4gPiA+IHJlZmVyZW5jZSBhbmQgYnkgdmFsdWUuIE5vIGRpZmZlcmVuY2UgaW4gY29kZSBnZW5l cmF0aW9uIG9uIHg4Nl82NC4NCj4gPiA+DQo+ID4gPiBCdXQgaWYgeW91IGluc2lzdCBsZXQncyBn byB3aXRoIFBCUi4NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IChVc2luZyB0aGUg aW4tcHJvZ3Jlc3MgdjUgbmJfc3RhY2sgY29kZSkNCj4gPiA+ID4NCj4gPiA+ID4gQW5vdGhlciBm YWN0b3IgLS0gdGhvdWdoIG11Y2ggbGVzcyBjb21wZWxsaW5nIC0tIGlzIHRoYXQgd2l0aA0KPiA+ ID4gPiBwYXNzLWJ5LSByZWZlcmVuY2UsIHRoZSB1c2VyIGNhbiBjcmVhdGUgYSAxNkIgc3RydWN0 dXJlIGFuZCBjYXN0DQo+ID4gPiA+IGl0IHRvIHJ0ZV9pbnQxMjhfdCB3aGVuIHRoZXkgY2FsbCBy dGVfYXRvbWljMTI4X2NtcHNldCwgd2hlcmVhcw0KPiA+ID4gPiB3aXRoIHBhc3MtYnktdmFsdWUg dGhleSBuZWVkIHRvIHB1dCB0aGF0IHN0cnVjdCBpbiBhIHVuaW9uIHdpdGgNCj4gcnRlX2ludDEy OF90Lg0KPiA+ID4gV2hpY2ggaXMgd2hhdCBJIGFsd2F5cyBkbyBub3dhZGF5cy4uLiBUcnlpbmcg dG8gdXNlIGFzIGZldyBjYXN0cyBhcw0KPiA+ID4gcG9zc2libGUgYW5kIGxpZSB0byB0aGUgY29t cGlsZXIgYXMgc2VsZG9tIGFzIHBvc3NpYmxlLiBCdXQgSSBjYW4NCj4gPiA+IHNlZSB0aGUgZnJl ZWRvbSBwcm92aWRlZCBieSB0YWtpbmcgYSBwb2ludGVyIHRvIHNvbWV0aGluZyBhbmQgY2FzdA0K PiA+ID4gaXQgaXQgcnRlX2ludDEyOF90IHB0ciBpbiB0aGUgY2FsbCB0b8KgcnRlX2F0b21pYzEy OF9jbXBzZXQoKS4NCj4gPiA+DQo+ID4gPiBXb3VsZCBwcmVmZXIgYSBuYW1lIHRoYXQgaXMgbW9y ZSBzaW1pbGFyIHRvIF9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2UoKS4NCj4gPiA+IEUuZy4NCj4g PiA+IHJ0ZV9hdG9taWMxMjhfY29tcGFyZV9leGNoYW5nZSgpIChvciBwZXJoYXBzIGp1c3QNCj4g cnRlX2F0b21pYzEyOF9jbXB4Y2hnKT8NCj4gPiA+IEFsbCB0aGUgcnRlX2F0b21pY1hYX2NtcHNl dCgpIGZ1bmN0aW9ucyBkbyBub3QgdGFrZSBhbnkgbWVtb3J5IG9yZGVyDQo+ID4gPiBwYXJhbWV0 ZXJzLg0KPiA+ID4gRnJvbSBhbiBBcm0gcGVyc3BlY3RpdmUsIHdlIGFyZSBub3QgaGFwcHkgd2l0 aCB0aGF0Lg0KPiA+IFNpbmNlIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgYm9vbGVhbiBzdWNjZXNz IHZhbHVlLCBpc24ndA0KPiA+IGNvbXBhcmUtYW5kLXNldCB0aGUgYXBwcm9wcmlhdGUgdGVybT8N Cj4gSSB3YXMgdGhpbmtpbmcgb2YgdGhlIG1lbW9yeSBvcmRlcmluZyBwYXJhbWV0ZXJzIHRoYXQg X19hdG9taWNfeHh4IGJ1aWx0aW5zDQo+IGhhdmUgYW5kIHdlIHdhbnQgKGZyb20gYW4gQXJtIHBl cnNwZWN0aXZlKS4NCj4gDQo+IEdDQyBfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlIGFsc28gcmV0 dXJucyBhIGJvb2xlYW4uDQo+IGh0dHBzOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9nY2MvXzAw NWZfMDA1ZmF0b21pYy1CdWlsdGlucy5odG1sDQo+IGJvb2wgX19hdG9taWNfY29tcGFyZV9leGNo YW5nZV9uICh0eXBlICpwdHIsIHR5cGUgKmV4cGVjdGVkLCB0eXBlIGRlc2lyZWQsDQo+IGJvb2wg d2VhaywgaW50IHN1Y2Nlc3NfbWVtb3JkZXIsIGludCBmYWlsdXJlX21lbW9yZGVyKSBib29sDQo+ IF9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2UgKHR5cGUgKnB0ciwgdHlwZSAqZXhwZWN0ZWQsIHR5 cGUgKmRlc2lyZWQsIGJvb2wNCj4gd2VhaywgaW50IHN1Y2Nlc3NfbWVtb3JkZXIsIGludCBmYWls dXJlX21lbW9yZGVyKQ0KPiANCj4gcnRlX2F0b21pYzEyOF9jb21wYXJlX2V4Y2hhbmdlKHJ0ZV9p bnQxMjhfdCAqZHN0LCBjb25zdCBydGVfaW50MTI4X3QgKmV4cCwNCj4gY29uc3QgcnRlX2ludDE4 Ml90ICpzcmMsIGJvb2wgd2VhaywgaW50IG1vX3N1Y2Nlc3MsIGludCBtb19mYWlsdXJlKTsNCj4g DQoNCkkgYXNzdW1lZCBHQ0MgY2hvc2UgdGhlIG5hbWUgImV4Y2hhbmdlIiBiZWNhdXNlIHRoZSBi dWlsdGluIG1vZGlmaWVzICdleHAnIG9uIGZhaWx1cmUsIGJ1dCBJIGNvdWxkIGJlIHdyb25nLiBJ J20gZmluZSB3aXRoIGVpdGhlciBuYW1lLiBBbnlvbmUgZWxzZSBoYXZlIGEgcHJlZmVyZW5jZT8N Cg0KPHNuaXA+DQo=