From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CBF3043BED; Mon, 26 Feb 2024 14:56:53 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BA761402C8; Mon, 26 Feb 2024 14:56:53 +0100 (CET) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 9885540144; Mon, 26 Feb 2024 14:56:52 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 9B0DC208E6; Mon, 26 Feb 2024 14:56:51 +0100 (CET) Content-class: urn:content-classes:message Subject: RE: [PATCH v2] app/testpmd: use Tx preparation in txonly engine MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Date: Mon, 26 Feb 2024 14:56:49 +0100 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35E9F268@smartserver.smartshare.dk> In-Reply-To: <2b264320ddd5499b8e3899708a44cab6@huawei.com> X-MimeOLE: Produced By Microsoft Exchange V6.5 X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v2] app/testpmd: use Tx preparation in txonly engine Thread-Index: AQHaRFRkjdCCtAptyE+no5avCHrrtrD/rEgAgADB6ZCAAA2bsIAE2D1ggALj3kCADqCK0IAA9QsAgAUX7nCAAAGOIA== References: <20240103012912.4334-1-kaiwenx.deng@intel.com> <20240111052555.35930-1-kaiwenx.deng@intel.com> <38baef9c-103a-4be4-8546-e9ea35abc46f@amd.com> <98CBD80474FA8B44BF855DF32C47DC35E9F1FE@smartserver.smartshare.dk> <918593c56c5745a285facc47b6cdc76b@huawei.com> <98CBD80474FA8B44BF855DF32C47DC35E9F20C@smartserver.smartshare.dk> <670ee735254244878e4b1247a8850be5@huawei.com> <545e4c08-f4cf-4246-9ed3-22882c754640@oktetlabs.ru> <2b264320ddd5499b8e3899708a44cab6@huawei.com> From: =?UTF-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Konstantin Ananyev" , "Andrew Rybchenko" , "Ferruh Yigit" , "Kaiwen Deng" , Cc: , , , "Aman Singh" , "Yuying Zhang" , "David Marchand" , "Thomas Monjalon" , "Jerin Jacob" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiA+ID4+Pj4+Pj4gVFNPIGJyZWFrcyB3aGVuIE1TUyBzcGFucyBtb3JlIHRoYW4gOCBkYXRhIGZy YWdtZW50cy4gVGhvc2UNCj4gPiA+Pj4+Pj4+IHBhY2tldHMgd2lsbCBiZSBkcm9wcGVkIGJ5IFR4 IHByZXBhcmF0aW9uIEFQSSwgYnV0IGl0IHdpbGwNCj4gPiA+Pj4gY2F1c2UNCj4gPiA+Pj4+Pj4+ IE1ERCBldmVudCBpZiB0eG9ubHkgZm9yd2FyZGluZyBlbmdpbmUgZG9lcyBub3QgY2FsbCB0aGUg VHgNCj4gPiA+Pj4+PiBwcmVwYXJhdGlvbg0KPiA+ID4+Pj4+Pj4gQVBJIGJlZm9yZSB0cmFuc21p dHRpbmcgcGFja2V0cy4NCj4gPiA+Pj4+Pj4+DQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IHR4b25s eSBpcyB1c2VkIGNvbW1vbmx5LCBhZGRpbmcgVHggcHJlcGFyZSBmb3IgYSBzcGVjaWZpYyBjYXNl DQo+ID4gPj4+IG1heQ0KPiA+ID4+Pj4+PiBpbXBhY3QgcGVyZm9ybWFuY2UgZm9yIHVzZXJzLg0K PiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiBXaGF0IGhhcHBlbnMgd2hlbiBkcml2ZXIgdGhyb3dzIE1E RCAoTWFsaWNpb3VzIERyaXZlcg0KPiBEZXRlY3Rpb24pDQo+ID4gPj4+Pj4gZXZlbnQsDQo+ID4g Pj4+Pj4+IGNhbid0IGl0IGJlIGlnbm9yZWQ/IEFzIHlvdSBhcmUgYWxyZWFkeSBPSyB0byBkcm9w IHRoZSBwYWNrZXQsDQo+ID4gPj4+IGNhbg0KPiA+ID4+Pj4+PiBkZXZpY2UgYmUgY29uZmlndXJl ZCB0byBkcm9wIHRoZXNlIHBhY2thZ2VzPw0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+Pg0KPiA+ID4+ Pj4+PiBPciBhcyBKZXJpbiBzdWdnZXN0ZWQgYWRkaW5nIGEgbmV3IGZvcndhcmRpbmcgZW5naW5l IGlzIGENCj4gPiA+Pj4gc29sdXRpb24sDQo+ID4gPj4+Pj4gYnV0DQo+ID4gPj4+Pj4+IHRoYXQg d2lsbCBjcmVhdGUgY29kZSBkdXBsaWNhdGlvbiwgSSBwcmVmZXIgdG8gbm90IGhhdmUgaXQgaWYN Cj4gPiA+Pj4gdGhpcw0KPiA+ID4+Pj4+IGNhbg0KPiA+ID4+Pj4+PiBiZSBoYW5kbGVkIGluIGRl dmljZSBsZXZlbC4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IEFjdHVhbGx5IEkgYW0gYWdyZWUgd2l0 aCB0aGUgYXV0aG9yIG9mIHRoZSBwYXRjaCAtIHdoZW4gVFgNCj4gb2ZmbG9hZHMNCj4gPiA+Pj4+ PiBhbmQvb3IgbXVsdGlzZWdzIGFyZSBlbmFibGVkLA0KPiA+ID4+Pj4+IHVzZXIgc3VwcG9zZWQg dG8gaW52b2tlIGV0aF90eF9wcmVwYXJlKCkuDQo+ID4gPj4+Pj4gTm90IGRvaW5nIHRoYXQgc2Vl bXMgbGlrZSBhIGJ1ZyB0byBtZS4NCj4gPiA+Pj4+DQo+ID4gPj4+PiBJIHN0cm9uZ2x5IGRpc2Fn cmVlIHdpdGggdGhhdCBzdGF0ZW1lbnQsIEtvbnN0YW50aW4hDQo+ID4gPj4+PiBJdCBpcyBub3Qg ZG9jdW1lbnRlZCBhbnl3aGVyZSB0aGF0IHVzaW5nIFRYIG9mZmxvYWRzIGFuZC9vcg0KPiBtdWx0 aXNlZ3MNCj4gPiA+Pj4gcmVxdWlyZXMgY2FsbGluZyBydGVfZXRoX3R4X3ByZXBhcmUoKSBiZWZv cmUNCj4gPiA+Pj4+IHJ0ZV9ldGhfdHhfYnVyc3QoKS4gQW5kIG5vbmUgb2YgdGhlIGV4YW1wbGVz IGRvIGl0Lg0KPiA+ID4+Pg0KPiA+ID4+PiBJbiBmYWN0LCB3ZSBkbyB1c2UgaXQgZm9yIHRlc3Qt cG1kL2NzdW1vbmx5LmMuDQo+ID4gPj4+IEFib3V0IG90aGVyIHNhbXBsZSBhcHBzOg0KPiA+ID4+ PiBBRkFJSywgbm90IG1hbnkgb2Ygb3RoZXIgRFBESyBhcHBzIGRvIHVzZSBMNCBvZmZsb2Fkcy4N Cj4gPiA+Pj4gUmlnaHQgbm93IHNwZWNpYWwgdHJlYXRtZW50IChwc2V1ZG8taGVhZGVyIGNrc3Vt IGNhbGN1bGF0aW9uKSBpcw0KPiBuZWVkZWQNCj4gPiA+Pj4gb25seSBmb3IgTDQgb2ZmbG9hZHMg KENLU1VNLCBTRUcpLg0KPiA+ID4+PiBTbywgbWFqb3JpdHkgb2Ygb3VyIGFwcHMgd2hvIHJlbHkg b24gb3RoZXIgVFggb2ZmbG9hZHMgKG11bHRpLXNlZywNCj4gaXB2NA0KPiA+ID4+PiBja3N1bSwg dmxhbiBpbnNlcnRpb24pIGhhcHBpbHkgcnVuIHdpdGhvdXQNCj4gPiA+Pj4gY2FsbGluZyB0eF9w cmVwYXJlKCksIGV2ZW4gdGhvdWdoIGl0IGlzIG5vdCB0aGUgc2FmZXN0IHdheS4NCj4gPiA+Pj4N Cj4gPiA+Pj4+DQo+ID4gPj4+PiBJbiBteSBvcGluaW9uOg0KPiA+ID4+Pj4gSWYgc29tZSBkcml2 ZXIgaGFzIGxpbWl0YXRpb25zIGZvciBhIGZlYXR1cmUsIGUuZy4gbWF4IDgNCj4gZnJhZ21lbnRz LA0KPiA+ID4+PiBpdCBzaG91bGQgYmUgZG9jdW1lbnRlZCBmb3IgdGhhdCBkcml2ZXIsIHNvIHRo ZSBhcHBsaWNhdGlvbg0KPiA+ID4+Pj4gZGV2ZWxvcGVyIGNhbiBtYWtlIHRoZSBhcHByb3ByaWF0 ZSBkZWNpc2lvbnMgd2hlbiBkZXNpZ25pbmcgdGhlDQo+ID4gPj4+IGFwcGxpY2F0aW9uLg0KPiA+ ID4+Pj4gRnVydGhlcm1vcmUsIHdlIGhhdmUgQVBJcyBmb3IgdGhlIGRyaXZlcnMgdG8gZXhwb3Nl IHRvIHRoZQ0KPiA+ID4+PiBhcHBsaWNhdGlvbnMgd2hhdCB0aGUgZHJpdmVyIHN1cHBvcnRzLCBz byB0aGUgYXBwbGljYXRpb24gY2FuDQo+IGNvbmZpZ3VyZQ0KPiA+ID4+Pj4gaXRzZWxmIG9wdGlt YWxseSBhdCBzdGFydHVwLiBQZXJoYXBzIHRob3NlIEFQSXMgbmVlZCB0byBiZQ0KPiBleHBhbmRl ZC4NCj4gPiA+Pj4+IEFuZCBpZiBhIGZlYXR1cmUgbGltaXRhdGlvbiBpcyBjb21tb24gYWNyb3Nz IHRoZSBtYWpvcml0eSBvZg0KPiBkcml2ZXJzLA0KPiA+ID4+PiB0aGF0IGxpbWl0YXRpb24gc2hv dWxkIGJlIG1lbnRpb25lZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUNCj4gPiA+Pj4+IGZl YXR1cmUgaXRzZWxmLg0KPiA+ID4+Pg0KPiA+ID4+PiBNYW55IG9mIHN1Y2ggbGltaXRhdGlvbnMg KmFyZSogZG9jdW1lbnRlZCBhbmQgaW4gZmFjdCB3ZSBkbyBoYXZlDQo+IGFuIEFQSQ0KPiA+ID4+ PiB0byBjaGVjayBtYXggc2VnbWVudHMgdGhhdCBlYWNoIGRyaXZlciBzdXBwb3J0LA0KPiA+ID4+ PiBzZWUgc3RydWN0IHJ0ZV9ldGhfZGVzY19saW0uDQo+ID4gPj4NCj4gPiA+PiBZZXMsIHRoaXMg aXMgdGhlIGtpbmQgb2YgQVBJIHdlIHNob3VsZCBwcm92aWRlLCBzbyB0aGUgYXBwbGljYXRpb24N Cj4gY2FuIGNvbmZpZ3VyZSBpdHNlbGYgYXBwcm9wcmlhdGVseS4NCj4gPiA+Pg0KPiA+ID4+PiBU aGUgcHJvYmxlbSBpczoNCj4gPiA+Pj4gLSBub25lIG9mIG91ciBzYW1wbGUgYXBwIGRvZXMgcHJv cGVyIGNoZWNrIG9uIHRoZXNlIHZhbHVlcywgc28NCj4gdXNlcnMNCj4gPiA+Pj4gZG9uJ3QgaGF2 ZSBhIGdvb2QgZXhhbXBsZSBob3cgdG8gZG8gaXQuDQo+ID4gPj4NCj4gPiA+PiBBZ3JlZWQuDQo+ ID4gPj4gQWRkaW5nIGFuIGV4YW1wbGUgc2hvd2luZyBob3cgdG8gZG8gaXQgcHJvcGVybHkgd291 bGQgYmUgdGhlIGJlc3QNCj4gc29sdXRpb24uDQo+ID4gPj4gQ2FsbGluZyB0eF9wcmVwYXJlKCkg aW4gdGhlIGV4YW1wbGVzIGlzIGNlcnRhaW5seSBub3QgdGhlIHNvbHV0aW9uLg0KPiA+ID4+DQo+ ID4gPj4+IC0gd2l0aCBjdXJyZW50IERQREsgQVBJIG5vdCBhbGwgb2YgSFcvUE1EIHJlcXVpcmVt ZW50cyBjb3VsZCBiZQ0KPiA+ID4+PiBleHRyYWN0ZWQgcHJvZ3JhbW1hdGljYWxseToNCj4gPiA+ Pj4gICAgbGV0IHNheSBtYWpvcml0eSBvZiBJbnRlbCBQTURzIGZvciBUQ1Agb2ZmbG9hZHMgZXhw ZWN0IHBzZXVkby0NCj4gaGVhZGVyDQo+ID4gPj4+IGNrc3VtIHRvIGJlIHByZS1jYWxjdWxhdGVk IGJ5IHRoZSBTVy4NCj4gPiA+Pg0KPiA+ID4+IEkgaG9wZSB0aGlzIHJlcXVpcmVtZW50IGlzIGRv Y3VtZW50ZWQgc29tZXdoZXJlLg0KPiA+ID4+DQo+ID4gPj4+ICAgIGFub3RoZXIgZXhhbXBsZSwg c29tZSBIVyBleHBlY3RzIHBrdF9sZW4gdG8gYmUgYmlnZ2VyIHRoZW4gc29tZQ0KPiA+ID4+PiB0 aHJlc2hvbGQgdmFsdWUsIG90aGVyd2lzZSBIVyBoYW5nIG1heSBhcHBlYXIuDQo+ID4gPj4NCj4g PiA+PiBJIGhvcGUgdGhpcyByZXF1aXJlbWVudCBpcyBhbHNvIGRvY3VtZW50ZWQgc29tZXdoZXJl Lg0KPiA+ID4NCj4gPiA+IE5vIGlkZWEsIEkgZm91bmQgaXQgb25seSBpbiB0aGUgY29kZS4NCj4g Pg0KPiA+IElNSE8gVHggYnVyc3QgbXVzdCBjaGVjayBzdWNoIGxpbWl0YXRpb25zLiBJZiB5b3Ug bWFkZSB5b3VyIEhXIHNpbXBsZXINCj4gPiAob3IganVzdCBsb3N0IGl0IG9uIGluaXRpYWwgdGVz dGluZyksIHBheSBpbiB5b3VyIGRyaXZlcnMgKG9yIHlvdXINCj4gPiBIVytkcml2ZXIgd2lsbCBi ZSB1bnVzYWJsZSBiZWNhdXNlIG9mIHN1Y2ggcHJvYmxlbXMpLg0KPiA+DQo+ID4gPj4gR2VuZXJh bGx5LCBpZiB0aGUgcmVxdWlyZW1lbnRzIGNhbm5vdCBiZSBleHRyYWN0ZWQNCj4gcHJvZ3JhbW1h dGljYWxseSwgdGhleSBtdXN0IGJlIHByb21pbmVudGx5IGRvY3VtZW50ZWQsIGxpa2UgdGhpcyBu b3RlIHRvDQo+ID4gPj4gcnRlX2V0aF9yeF9idXJzdCgpOg0KPiA+ID4NCj4gPiA+IE9idmlvdXNs eSwgbW9yZSBkZXRhaWxlZCBkb2N1bWVudGF0aW9uIGlzIGFsd2F5cyBnb29kLCBidXQuLi4NCj4g PiA+IFJpZ2h0IG5vdyB3ZSBoYXZlIDUwKyBkaWZmZXJlbnQgUE1EcyBmcm9tIGRpZmZlcmVudCB2 ZW5kb3JzLg0KPiA+ID4gRXZlbiBpZiBlYWNoIGFuZCBldmVyeSBvZiB0aGVtIHdpbGwgY2FyZWZ1 bGx5IGRvY3VtZW50IGFsbCBwb3NzaWJsZQ0KPiBsaW1pdGF0aW9ucyBhbmQgbmVjZXNzYXJ5IHBy ZXBhcmF0aW9uIHN0ZXBzLA0KPiA+ID4gaG93IERQREsgYXBwIGRldmVsb3BlciBzdXBwb3NlZCB0 byAgZGVhbCB3aXRoIGFsbCB0aGF0Pw0KPiA+ID4gRG8geW91IGV4cGVjdCBldmVyeW9uZSwgdG8g cmVhZCBjYXJlZnVsbHkgdGhyb3VnaCBhbGwgb2YgdGhlbSwgYW5kDQo+IGhhbmRsZSBhbGwgb2Yg dGhlbSBwcm9wZXJseSBvaCBoaXMgb3duDQo+ID4gPiBpbiBlYWNoIGFuZCBldmVyeSBEUERLIGFw cCBoZSBpcyBnb2luZyB0byB3cml0ZT8NCj4gPiA+IFRoYXQgc2VlbXMgdW5yZWFsaXN0aWMuDQo+ ID4gPiBBZ2FpbiB3aGF0IHRvIGRvIHdpdGggYmFja3dhcmQgY29tcGF0aWJpbGl0eTogd2hlbiBu ZXcgZHJpdmVyICh3aXRoDQo+IG5ldyBsaW1pdGF0aW9ucykgd2lsbCBhcmlzZQ0KPiA+ID4gKmFm dGVyKiB5b3VyIGFwcCBpcyBhbHJlYWR5IHdyaXR0ZW4gYW5kIHRlc3RlZD8NCj4gPg0KPiA+ICsx DQo+ID4NCj4gPiA+Pg0KPiA+ID4+ICAgKiBAbm90ZQ0KPiA+ID4+ICAgKiAgIFNvbWUgZHJpdmVy cyB1c2luZyB2ZWN0b3IgaW5zdHJ1Y3Rpb25zIHJlcXVpcmUgdGhhdCAqbmJfcGt0cyoNCj4gaXMN Cj4gPiA+PiAgICogICBkaXZpc2libGUgYnkgNCBvciA4LCBkZXBlbmRpbmcgb24gdGhlIGRyaXZl ciBpbXBsZW1lbnRhdGlvbi4NCj4gPg0KPiA+IEknbSB3b25kZXJpbmcgd2hhdCBhcHBsaWNhdGlv biBzaG91bGQgZG8gaWYgaXQgbmVlZHMgdG8gc2VuZCBqdXN0IG9uZQ0KPiA+IHBhY2tldCBhbmQg ZG8gaXQgbm93LiBJTUhPLCBzdWNoIGxpbWl0YXRpb25zIGFyZSBub3QgYWNjZXB0YWJsZS4NCg0K VGhpcyBjb21tb24gbGltaXRhdGlvbiBmb3IgdmVjdG9yIGRyaXZlcnMgaXMgZm9yIFJYIGJ1cnN0 LCBub3QgVFggYnVyc3QuDQpJIGFncmVlIHN1Y2ggYSBsaW1pdGF0aW9uIHdvdWxkIGJlIHVuYWNj ZXB0YWJsZSBmb3IgVFguDQoNCj4gPg0KPiA+ID4+DQo+ID4gPj4+IC0gQXMgbmV3IEhXIGFuZCBQ TUQga2VlcCBhcHBlYXJpbmcgaXQgaXMgaGFyZCB0byBwcmVkaWN0IHdoYXQNCj4gZXh0cmENCj4g PiA+Pj4gbGltaXRhdGlvbnMvcmVxdWlyZW1lbnRzIHdpbGwgYXJpc2UsDQo+ID4gPj4+ICAgIHRo YXQncyB3aHkgdHhfcHJlcGFyZSgpIHdhcyBpbnRyb2R1Y2VkIGFzIHMgZHJpdmVyIG9wLg0KPiA+ ID4+Pg0KPiA+ID4+Pj4NCj4gPiA+Pj4+IFdlIGRvbid0IHdhbnQgdG8gY2hlY2sgaW4gdGhlIGZh c3QgcGF0aCB3aGF0IGNhbiBiZSBjaGVja2VkIGF0DQo+ID4gPj4+IHN0YXJ0dXAgb3IgYnVpbGQg dGltZSENCj4gPiA+Pj4NCj4gPiA+Pj4gSWYgeW91ciBhcHAgc3VwcG9zZWQgdG8gd29yayB3aXRo IGp1c3QgYSBmZXcsIGtub3duIGluIGFkdmFuY2UsDQo+IE5JQw0KPiA+ID4+PiBtb2RlbHMsIHRo ZW4gc3VyZSwgeW91IGNhbiBkbyB0aGF0Lg0KPiA+ID4+PiBGb3IgYXBwcyB0aGF0IHN1cHBvc2Vk IHRvIHdvcmsgJ2luIGdlbmVyYWwnICB3aXRoIGFueSBwb3NzaWJsZQ0KPiBQTURzDQo+ID4gPj4+ IHRoYXQgRFBESyBzdXBwb3J0cyAtIHRoYXQgbWlnaHQgYmUgYSBwcm9ibGVtLg0KPiA+ID4+PiBU aGF0J3Mgd2h5IHR4X3ByZXBhcmUoKSB3YXMgaW50cm9kdWNlZCBhbmQgaXQgaXMgc3Ryb25nbHkN Cj4gcmVjb21tZW5kZWQNCj4gPiA+Pj4gdG8gdXNlIGl0IGJ5IHRoZSBhcHBzIHRoYXQgZG8gdXNl IFRYIG9mZmxvYWRzLg0KPiA+ID4+PiBQcm9iYWJseSB0eF9wcmVwYXJlKCkgaXMgbm90IHRoZSBi ZXN0IHBvc3NpYmxlIGFwcHJvYWNoLCBidXQgcmlnaHQNCj4gbm93DQo+ID4gPj4+IHRoZXJlIGFy ZSBub3QgbWFueSBhbHRlcm5hdGl2ZXMgd2l0aGluIERQREsuDQo+ID4gPj4NCj4gPiA+PiBXaGF0 IGV4YWN0bHkgaXMgYW4gYXBwbGljYXRpb24gc3VwcG9zZWQgdG8gZG8gaWYgdHhfcHJlcGFyZSgp DQo+IGRvZXNuJ3QgYWNjZXB0IHRoZSBmdWxsIGJ1cnN0PyBJdCBkb2Vzbid0IHJldHVybiBpbmZv cm1hdGlvbiBhYm91dA0KPiA+IHdoYXQgaXMNCj4gPiA+PiB3cm9uZy4NCj4gPiA+DQo+ID4gPiBJ dCBwcm92aWRlcyBzb21lIGluZm9ybWF0aW9uLCBidXQgaXQgaXMgKnZlcnkqIGxpbWl0ZWQ6IGp1 c3QgaW5kZXgNCj4gb2YgJ2JhZCcgcGFja2V0IGFuZCBlcnJvciBjb2RlLg0KPiA+ID4gSW4gdGhl b3J5IGFwcCBjYW4gdHJ5IHRvIGhhbmRsZSBpdCBpbiBhICdzbWFydCcgd2F5OiBsZXQgc2F5IGlm DQo+IEVOT1RTVVAgaXMgcmV0dXJuZWQsIHRoZW4gdHJ5IHRvIGRpc2FibGUgYWxsIEhXIG9mZmxv YWRzDQo+ID4gPiBhbmQgZG8gYWxsIGluIFNXLiBCdXQgYWdhaW4sIGl0IGlzIG11Y2ggYmV0dGVy IHRvIGRvIHNvICpiZWZvcmUqDQo+IHN1Ym1pdHRpbmcgcGFja2V0cyBmb3IgVFgsIHNvIGluIHBy YWN0aWNlIGV2ZXJ5b25lDQo+ID4gPiBqdXN0IGRyb3Agc3VjaCAnYmFkJyBwYWNrZXRzLg0KPiA+ ID4NCj4gPiA+ICAgRHJvcHBpbmcgdGhlIHBhY2tldHMgbWlnaHQgbm90IGJlIGFuIG9wdGlvbiwg ZS5nLiBmb3IgYXBwbGljYXRpb25zDQo+IHVzZWQgaW4gbGlmZSBzdXBwb3J0IG9yIHRlbGUtbWVk aWNpbmUuDQo+ID4NCj4gPiBDcml0aWNhbCBhcHBsaWNhdGlvbnMgc2hvdWxkIGJlIGFibGUgdG8g ZG8gYWxsIFR4IG9mZmxvYWRzIGluIFNXIGFuZA0KPiA+IHJldHJ5LiBPZiBjb3Vyc2UsIHZhcmlv dXMgc3RhdGlzdGljcyBhbmQgbG9ncyBzaG91bGQgaGVscCB0byBpbXByb3ZlDQo+IHRoZQ0KPiA+ IGFwcGxpY2F0aW9uLg0KPiA+DQo+ID4gPiBJZiB0aGUgcGFja2V0IGlzICdiYWQnLCB0aGVuIGl0 IGlzIG11Y2ggYmV0dGVyIHRvIGRyb3AgaXQsIHRoZW4gVFgNCj4gY29ycnVwdGVkIHBhY2tldCBv ciBldmVuIGhhbmcgTklDIEhXIGNvbXBsZXRlbHkuDQo+ID4NCj4gPiBJTUhPIFR4IGJ1cnN0IG11 c3QgZHJvcCBwYWNrZXQgd2hpY2ggY291bGQgaGFuZyBOSUMgSFcgY29tcGxldGVseS4gSQ0KPiA+ IHJlYWxpemUgdGhhdCBpdCBpcyBhbiBleHRyYSBjaGVja3MgYW5kIHBlcmZvcm1hbmNlIGRyb3As IGJ1dCB2ZW5kb3INCj4gPiBzaG91bGQgcGF5IGluIHBlcmZvcm1hbmNlIGlmIEhXIGlzIG5vdCBn b29kIGVub3VnaC4NCj4gPg0KPiA+ID4gVGhvdWdoIG9mZi1jb3Vyc2UgaXQgaXMgbXVjaCBiZXR0 ZXIgdG8gaGF2ZSBhbiBhcHAgdGhhdCB3b3VsZCBjaGVjaw0KPiBmb3IgbGltaXRhdGlvbnMgdGhh dCBjYW4gYmUgY2hlY2tlZCBieSBBUEkgcHJvdmlkZWQNCj4gPiA+IGFuZCBlbmFibGUgb25seSBz dXBwb3J0ZWQgb2ZmbG9hZHMuDQo+ID4NCj4gPiBZZXMsIHRoYXQncyB3aHkgQVBJIHRvIGdldCBs aW1pdGF0aW9uIGlzIG11Y2ggYmV0dGVyIHRoYW4NCj4gZG9jdW1lbnRhdGlvbi4NCj4gPg0KPiA+ ID4+IElmIGxpbWl0YXRpb25zIGFyZSBkb2N1bWVudGVkLCBhbiBhcHBsaWNhdGlvbiBjYW4gdXNl IHRoZSBsb3dlc3QNCj4gY29tbW9uIGRlbm9taW5hdG9yIG9mIHRoZSBOSUNzIGl0IHN1cHBvcnRz LiBBbmQgaWYgdGhlDQo+ID4gYXBwbGljYXRpb24gaXMNCj4gPiA+PiBzdXBwb3NlZCB0byB3b3Jr IGluIGdlbmVyYWwsIHRoYXQgYmVjb21lcyB0aGUgbG93ZXN0IGNvbW1vbg0KPiBkZW5vbWluYXRv ciBvZiBhbGwgTklDcy4NCj4gPiA+DQo+ID4gPiBJIGFncmVlOiBmb3IgbGltaXRhdGlvbnMgdGhh dCBjYW4gYmUgZXh0cmFjdGVkIHdpdGggZ2VuZXJpYyBBUEksDQo+IGxpa2U6DQo+ID4gPiBudW1i ZXIgb2Ygc2VnbWVudHMgcGVyIHBhY2tldCwgc3VwcG9ydGVkIFRYIG9mZmxvYWRzLCBtYnVmIGZp bGVkcw0KPiB0aGF0IG11c3QgYmUgcHJvdmlkZWQgZm9yIGVhY2ggVFggb2ZmbG9hZCwgIGV0Yy4g LQ0KPiA+ID4gaXQgaXMgcmVzcG9uc2liaWxpdHkgb2Ygd2VsbC13cml0dGVuIGFwcGxpY2F0aW9u IHRvIG9iZXkgYWxsIG9mDQo+IHRoZW0uDQo+ID4gPiBZZXMsIG1hbnkgdHhfcHJlcGFyZSgpIGlt cGxlbWVudGF0aW9ucyBkbyAgc3VjaCBjaGVja3MgYW55d2F5LCBidXQNCj4gZnJvbSBteSBwZXJz cGVjdGl2ZSBpdCBpcyBzb3J0IG9mIGxhc3QtbGluZSBvZiBkZWZlbnNlLg0KPiA+ID4gRm9yIHdl bGwgd3JpdHRlbiBhcHBsaWNhdGlvbiB0aGF0IHNob3VsZCBqdXN0IG5ldmVyIGhhcHBlbi4NCj4g PiA+IEJ1dCB0aGVyZSBpcyBvbmUgbW9yZSBpbXBvcnRhbnQgcmVzcG9uc2liaWxpdHkgb2YgdHhf cHJlcGFyZSgpIC0gIGl0DQo+IHBlcmZvcm1zIFBNRCBzcGVjaWZpYyBwYWNrZXQgbW9kaWZpY2F0 aW9ucyBmb3IgcmVxdWVzdGVkDQo+ID4gb2ZmbG9hZHMuDQo+ID4gPiBBcyBJIGFscmVhZHkgbWVu dGlvbmVkIGZvciBJbnRlbCBOSUNzIC0gaXQgZG9lcyBwc2V1ZG8taGVhZGVyIGNrc3VtDQo+IGNh bGN1Y2F0aW9uLCBmb3IgcGFja2V0cyB3aXRoIHNpemUgbGVzcyB0aGVuIG1pbmltYWwsIGl0IGNh bg0KPiA+ID4gcHJvYmFibHkgZG8gcGFkZGluZyAoZXZlbiBpZiBkb2Vzbid0IGRvIGl0IHJpZ2h0 IG5vdyksIGZvciBzb21lDQo+IG90aGVyIFBNRHMgLSBtaWdodCBiZSBzb21ldGhpbmcgZWxzZSwg SSBkaWRuJ3QgY2hlY2suDQo+ID4gPiBPYnZpb3VzbHkgaXQgc2F2ZXMgYXBwIGRldmVsb3BlciBm cm9tIGEgYnVyZGVuIHRvIGRvIGFsbCB0aGVzZQ0KPiB0aGluZ3Mgb24gaGlzIG93bi4NCj4gPiA+ DQo+ID4gPj4gSXQgbG9va3MgbGlrZSB0eF9wcmVwYXJlKCkgaGFzIGJlY29tZSBhIGhvcnJpYmxl IHdvcmthcm91bmQgZm9yDQo+IHVuZG9jdW1lbnRlZCBsaW1pdGF0aW9ucy4NCj4gPg0KPiA+IEkg c3Ryb25nbHkgZGlzYWdyZWUuIERvY3VtZW50YXRpb24gaXMgbmV2ZXIgYSBzb2x1dGlvbiBmb3Ig YSBnZW5lcmljDQo+ID4gYXBwbGljYXRpb24gd2hpY2ggaXMgaW50ZW5kZWQgdG8gd29yayBvbiBh bnkgSFcgYW5kIElNSE8gaXQgaXMgdGhlDQo+ID4gZ29hbCB0byBoYXZlIG1vcmUgYW5kIG1vcmUg YXBwbGljYXRpb25zIHdoaWNoIHdvcmsgb24gYW55IEhXLg0KPiA+DQo+ID4gPj4gTGltaXRhdGlv bnMgZHVlIHRvIGhhcmR3YXJlIGFuZC9vciBzb2Z0d2FyZSB0cmFkZW9mZnMgYXJlDQo+IHVuYXZv aWRhYmxlLCBzbyB3ZSBoYXZlIHRvIGxpdmUgd2l0aCB0aGVtOyBidXQgd2Ugc2hvdWxkIG5vdCBh Y2NlcHQNCj4gPiA+PiBQTURzIHdpdGggdW5kb2N1bWVudGVkIGxpbWl0YXRpb25zLg0KPiA+ID4N Cj4gPiA+IEFzIEkgYWxyZWFkeSBzYWlkLCBtb3JlIGRvY3VtZW50YXRpb24gbmV2ZXIgaHVydHMs IGJ1dCBmb3IgdGhhdA0KPiBjYXNlLCBJIHRoaW5rIGl0IGlzIG5vdCBlbm91Z2guDQo+ID4gPiBJ IGV4cGVjdCBQTUQgdG8gcHJvdmlkZSBhIHR4X3ByZXBhcmUoKSBpbXBsZW1lbnRhdGlvbiB0aGF0 IHdvdWxkDQo+IGRlYWwgd2l0aCBzdWNoIHNwZWNpZmljIHRoaW5ncy4NCj4gPg0KPiA+ICsxDQo+ ID4gPiBBbnl3YXksIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHBhdGNoIC0gSSBsb29rZWQgYXQgaXQg b25jZSBhZ2FpbiwgYW5kDQo+IHJlYWxpemVkIHRoYXQgdGhlIHByb2JsZW0NCj4gPiA+IGlzIGp1 c3QgaW4gdGhlIHVuc3VwcG9ydGVkIG51bWJlciBvZiBzZWdtZW50cy4NCj4gPiA+IEFzIHdlIGRp c2N1c3NlZCBhYm92ZSAtIHN1Y2ggbGltaXRhdGlvbnMgc2hvdWxkIGJlIGhhbmRsZWQgYnkgd2Vs bA0KPiB3cml0dGVuIGFwcCwNCj4gPiA+IGJ1dCBub25lIG9mIERQREsgYXBwcyBkb2VzIGl0IHJp Z2h0IG5vdy4NCj4gPiA+IFNvIHByb2JhYmx5IGl0IGlzIGdvb2Qgb3Bwb3J0dW5pdHkgdG8gZG8g dGhpbmdzIGluIGEgcHJvcGVyIHdheSBhbmQNCj4gaW50cm9kdWNlIHN1Y2ggY2hlY2tzDQo+ID4g PiBpbiB0ZXN0cG1kIDspDQo+ID4NCj4gPiArMSBzaW5jZSB3ZSBhbHJlYWR5IGhhdmUgZmllbGRz IGluIGRldmljZSBpbmZvcm1hdGlvbiB0byByZXBvcnQgc3VjaA0KPiA+IGxpbWl0YXRpb25zLCBi dXQgaXQgZG9lcyBub3Qgc2F5IHRoYXQgVHggcHJlcGFyZSBzaG91bGQgYmUgZHJvcHBlZC4NCj4g PiBEcml2ZXJzIHdoaWNoIGRvbid0IG5lZWQgVHggcHJlcGFyZSBrZWVwIGl0IE5VTEwgYW5kIGl0 IHJldHVybnMNCj4gPiBpbW1lZGlhdGVseSBmcm9tIGV0aGRldi4gU2luY2UgaXQgaXMgZG9uZSBw ZXItYnVyc3QsIGl0IHNob3VsZCBub3QNCj4gPiBhZmZlY3QgcGVyZm9ybWFuY2UgYSBsb3QuDQo+ ID4NCj4gDQo+IDEwMCUgYWdyZWUuIEkgdGhpbmsgdHhfcHJlcGFyZSBuZWVkcyB0byBzdGF5LCBh bmQgaW4gZ2VuZXJhbCBoYXMgdG8gYmUNCj4gc3Ryb25nbHkgcmVjb21tZW5kZWQNCj4gZm9yIGFw cHMgdGhhdCBkbyB1c2UgVFggb2ZmbG9hZHMvbXVsdGktc2Vncy4NCg0KPGlyb255Pg0KVGhlbiB0 eF9wcmVwYXJlIHNob3VsZCByYW5kb21seSByZWplY3QgcGFja2V0cyBhbmQgc2VnbWVudHMsIHRv IGVuc3VyZSB0aGUgYXBwbGljYXRpb24gaGFzIHN1ZmZpY2llbnQgU1cgZmFsbGJhY2sgaW1wbGVt ZW50ZWQuDQo8L2lyb255Pg0KDQpObywgc2VyaW91c2x5LCBjb25zaWRlcmluZyB0aGUgYWJvdmUg YXJndW1lbnRzLCBJIHRoaW5rIFBNRCBjb25mb3JtYW5jZSByZXF1aXJlbWVudHMgd291bGQgYmUg YSBiZXR0ZXIgc29sdXRpb24uDQpJZiBhIFBNRCBjbGFpbXMgc3VwcG9ydCBmb3Igc29tZSBmZWF0 dXJlLCBpdCBtdXN0IGNvbmZvcm0gdG8gc29tZSBtaW5pbXVtIHJlcXVpcmVtZW50cyBmb3IgdGhh dCBmZWF0dXJlLg0KDQpFLmcuIHN1cHBvcnQgZm9yIG11bHRpLXNlZyBUWCBtdXN0IGJlIGFibGUg dG8gaGFuZGxlIG1pbi4gOCBzZWdtZW50cyAob3Igc29tZSBvdGhlciByZWFzb25hYmxlIG51bWJl cikuDQoNCkNvbW1vbiBsaW1pdGF0aW9ucyBhbmQgcHJlY29uZGl0aW9ucywgc3VjaCBhcyBtaW5p bXVtIFJYIGJ1cnN0IHNpemUgZm9yIHZlY3RvciBkcml2ZXJzIGFuZCBwc2V1ZG8taGVhZGVyIGNo ZWNrc3VtIHByZWNhbGN1bGF0aW9uIGZvciBUQ1Agb2ZmbG9hZCwgc2hvdWxkIGJlIGFjY2VwdGVk IGFuZCBwcm9taW5lbnRseSBkb2N1bWVudGVkLg0KDQpVbnVzdWFsIEhXIGxpbWl0YXRpb25zLCBz dWNoIGFzIGluYWJpbGl0eSB0byBwYWQgc2hvcnQgRXRoZXJuZXQgZnJhbWVzLCBzaG91bGQgYmUg aGFuZGxlZCBieSB0aGUgZHJpdmVyJ3MgVFggZnVuY3Rpb24gYXMgd29ya2Fyb3VuZHMgZm9yIHVu YWNjZXB0YWJsZSBsaW1pdGF0aW9ucyAoaW4gRFBESyBBUEkgY29udGV4dCkgaW4gdGhlIEhXLg0K DQo=