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 C4452A0032; Wed, 11 May 2022 09:36:26 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A9478410F2; Wed, 11 May 2022 09:36:26 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 7135840042 for ; Wed, 11 May 2022 09:36:25 +0200 (CEST) Content-class: urn:content-classes:message Subject: RE: [PATCH v5 1/3] eal: add basic thread ID and current thread identifier API MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Date: Wed, 11 May 2022 09:36:24 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D8705A@smartserver.smartshare.dk> In-Reply-To: <20220511071707.GA7974@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v5 1/3] eal: add basic thread ID and current thread identifier API X-MimeOLE: Produced By Microsoft Exchange V6.5 Thread-Index: AdhlByMQjHmrd8pITcKb57kLpSt/3QAANoqw References: <1648819793-18948-1-git-send-email-roretzla@linux.microsoft.com> <1651679185-23260-1-git-send-email-roretzla@linux.microsoft.com> <1651679185-23260-2-git-send-email-roretzla@linux.microsoft.com> <11c226e0-2e11-5367-8cb6-b76f471ea2a5@yandex.ru> <20220505071136.GA27566@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <98CBD80474FA8B44BF855DF32C47DC35D87047@smartserver.smartshare.dk> <0fa2b370-d5db-45d9-93f8-267ddc3184ec@yandex.ru> <98CBD80474FA8B44BF855DF32C47DC35D8704A@smartserver.smartshare.dk> <20220511071707.GA7974@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> From: =?UTF-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Tyler Retzlaff" , "Konstantin Ananyev" Cc: , , , , "Narcisa Vasile" 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 PiBGcm9tOiBUeWxlciBSZXR6bGFmZiBbbWFpbHRvOnJvcmV0emxhQGxpbnV4Lm1pY3Jvc29mdC5j b21dDQo+IFNlbnQ6IFdlZG5lc2RheSwgMTEgTWF5IDIwMjIgMDkuMTcNCj4gDQo+IE9uIFR1ZSwg TWF5IDEwLCAyMDIyIGF0IDEwOjUyOjM0UE0gKzAxMDAsIEtvbnN0YW50aW4gQW5hbnlldiB3cm90 ZToNCj4gPiAwNy8wNS8yMDIyIDIwOjQ3LCBNb3J0ZW4gQnLDuHJ1cCDQv9C40YjQtdGCOg0KPiA+ ID4+RnJvbTogS29uc3RhbnRpbiBBbmFueWV2IFttYWlsdG86a29uc3RhbnRpbi52LmFuYW55ZXZA eWFuZGV4LnJ1XQ0KPiA+ID4+U2VudDogU2F0dXJkYXksIDcgTWF5IDIwMjIgMTUuNTgNCj4gPiA+ Pg0KPiA+ID4+SGkgTW9ydGVuLA0KPiA+ID4+DQo+ID4gPj4+PkZyb206IEtvbnN0YW50aW4gQW5h bnlldiBbbWFpbHRvOmtvbnN0YW50aW4udi5hbmFueWV2QHlhbmRleC5ydV0NCj4gPiA+Pj4+U2Vu dDogRnJpZGF5LCA2IE1heSAyMDIyIDIxLjM4DQo+ID4gPj4+Pg0KPiA+ID4+Pj4wNS8wNS8yMDIy IDA4OjExLCBUeWxlciBSZXR6bGFmZiDQv9C40YjQtdGCOg0KPiA+ID4+Pj4+T24gV2VkLCBNYXkg MDQsIDIwMjIgYXQgMTE6NTU6NTdQTSArMDEwMCwgS29uc3RhbnRpbiBBbmFueWV2DQo+IHdyb3Rl Og0KPiA+ID4+Pj4+PjA0LzA1LzIwMjIgMTY6NDYsIFR5bGVyIFJldHpsYWZmINC/0LjRiNC10YI6 DQo+ID4gPj4+Pj4+PlByb3ZpZGUgYSBwb3J0YWJsZSB0eXBlLXNhZmUgdGhyZWFkIGlkZW50aWZp ZXIuDQo+ID4gPj4+Pj4+PlByb3ZpZGUgcnRlX3RocmVhZF9zZWxmIGZvciBvYnRhaW5pbmcgY3Vy cmVudCB0aHJlYWQNCj4gaWRlbnRpZmllci4NCj4gPiA+Pj4+Pj4+DQo+ID4gPj4+Pj4+PlNpZ25l ZC1vZmYtYnk6IE5hcmNpc2EgVmFzaWxlIDxuYXZhc2lsZUBtaWNyb3NvZnQuY29tPg0KPiA+ID4+ Pj4+Pj5TaWduZWQtb2ZmLWJ5OiBUeWxlciBSZXR6bGFmZiA8cm9yZXR6bGFAbGludXgubWljcm9z b2Z0LmNvbT4NCj4gPiA+Pj4+Pj4+QWNrZWQtYnk6IERtaXRyeSBLb3pseXVrIDxkbWl0cnkua296 bGl1a0BnbWFpbC5jb20+DQo+ID4gPj4+Pj4+Pi0tLQ0KPiA+ID4+Pj4+Pj4gICAgbGliL2VhbC9p bmNsdWRlL3J0ZV90aHJlYWQuaCB8IDIyICsrKysrKysrKysrKysrKysrKysrKysNCj4gPiA+Pj4+ Pj4+ICAgIGxpYi9lYWwvdW5peC9ydGVfdGhyZWFkLmMgICAgfCAxMSArKysrKysrKysrKw0KPiA+ ID4+Pj4+Pj4gICAgbGliL2VhbC92ZXJzaW9uLm1hcCAgICAgICAgICB8ICAzICsrKw0KPiA+ID4+ Pj4+Pj4gICAgbGliL2VhbC93aW5kb3dzL3J0ZV90aHJlYWQuYyB8IDEwICsrKysrKysrKysNCj4g PiA+Pj4+Pj4+ICAgIDQgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKQ0KPiA+ID4+Pj4+ Pj4NCj4gPiA+Pj4+Pj4+ZGlmZiAtLWdpdCBhL2xpYi9lYWwvaW5jbHVkZS9ydGVfdGhyZWFkLmgN Cj4gPiA+Pj4+Yi9saWIvZWFsL2luY2x1ZGUvcnRlX3RocmVhZC5oDQo+ID4gPj4+Pj4+PmluZGV4 IDhiZThlZDguLjE0NDc4YmEgMTAwNjQ0DQo+ID4gPj4+Pj4+Pi0tLSBhL2xpYi9lYWwvaW5jbHVk ZS9ydGVfdGhyZWFkLmgNCj4gPiA+Pj4+Pj4+KysrIGIvbGliL2VhbC9pbmNsdWRlL3J0ZV90aHJl YWQuaA0KPiA+ID4+Pj4+Pj5AQCAtMSw3ICsxLDEwIEBADQo+ID4gPj4+Pj4+PiAgICAvKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ID4gPj4+Pj4+PiAgICAgKiBDb3B5 cmlnaHQoYykgMjAyMSBNZWxsYW5veCBUZWNobm9sb2dpZXMsIEx0ZA0KPiA+ID4+Pj4+Pj4rICog Q29weXJpZ2h0IChDKSAyMDIyIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbg0KPiA+ID4+Pj4+Pj4gICAg ICovDQo+ID4gPj4+Pj4+PisjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ID4gPj4+Pj4+PisNCj4gPiA+ Pj4+Pj4+ICAgICNpbmNsdWRlIDxydGVfb3MuaD4NCj4gPiA+Pj4+Pj4+ICAgICNpbmNsdWRlIDxy dGVfY29tcGF0Lmg+DQo+ID4gPj4+Pj4+PkBAIC0yMSwxMCArMjQsMjkgQEANCj4gPiA+Pj4+Pj4+ ICAgICNlbmRpZg0KPiA+ID4+Pj4+Pj4gICAgLyoqDQo+ID4gPj4+Pj4+PisgKiBUaHJlYWQgaWQg ZGVzY3JpcHRvci4NCj4gPiA+Pj4+Pj4+KyAqLw0KPiA+ID4+Pj4+Pj4rdHlwZWRlZiBzdHJ1Y3Qg ew0KPiA+ID4+Pj4+Pj4rCXVpbnRwdHJfdCBvcGFxdWVfaWQ7IC8qKjwgdGhyZWFkIGlkZW50aWZp ZXIgKi8NCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj5JIGtub3cgdGhhdCBjdXJy ZW50bHkgb24gbGludXggdHlwZW9mKHB0aHJlYWRfaWQpID09IHVuc2lnbmVkDQo+IGxvbmcNCj4g PiA+Pj4+aW50Lg0KPiA+ID4+Pj4+PlRob3VnaCB3b3VsZG4ndCBpdCBiZSBzYWZlciBhbmQgY2xl YW5lciB0byB1c2UgcHRocmVhZF90DQo+ID4gPj5leHBsaWNpdGx5DQo+ID4gPj4+Pj4+b24gcG9z aXgtbGlrZSBzeXN0ZW1zPw0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj5pIGJlbGlldmUgdGhlIHByZXZp b3VzIGRpc2N1c3Npb25zIGFyZS4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+KiBwcmVmZXJlbmNlIGZv ciByZWR1Y2VkIG9yIG5vIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLg0KPiA+ID4+Pj4+KiBwcmVm ZXJlbmNlIGZvciBzaXplb2YodHlwZSkgdG8gYmUgYHRoZSBzYW1lJyBvbiBhbGwgcGxhdGZvcm1z Lg0KPiA+ID4+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+Pkl0IHdvdWxkIGJlIHRoZSBzYW1lIGFzIGxv bmcgYXMgc2l6ZXMgb2YgcHRocmVhZF90IHVpbnRwdHJfdCBhcmUNCj4gPiA+PmVxdWFsLg0KPiA+ ID4+Pg0KPiA+ID4+PlRoZXkgYXJlIG5vdC4gcHRocmVhZF90IChMaW51eCB0aHJlYWQgSUQpIGFu ZCBEV09SRCAoV2luZG93cw0KPiB0aHJlYWQNCj4gPiA+PklEKSBhcmUgYm90aCAzMiBiaXQsIHVp bnRwdHJfdCBpcyA2NCBvciAzMiBiaXQgZGVwZW5kaW5nIG9uIHBvaW50ZXINCj4gPiA+PnNpemUg KDMyIG9yIDY0IGJpdCBDUFUpLg0KPiA+ID4+DQo+ID4gPj5XaGF0IG1ha2UgeW91IHRoaW5rIHB0 aHJlYWRfdCBpcyAzMi1iaXQgb24gbGludXg/DQo+ID4gPj4gIEZyb20gPHB0aHJlYWQuaD4gb24g bXkgYm94Og0KPiA+ID4+dHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBwdGhyZWFkX3Q7DQo+ID4g Pj5TbyBpdCBpcyBlaXRoZXIgNjQtYml0IG9yIDMyLWJpdCBkZXBlbmRpbmcgb24gYXJjaC4NCj4g PiA+PlNhbWUgYXMgdWludHB0cl90Lg0KPiA+ID4NCj4gPiA+WW91IGFyZSByaWdodCwgS29uc3Rh bnRpbi4gSSBoYWQgb3Zlcmxvb2tlZCB0aGUgImxvbmciIGluIHRoZXJlLg0KPiA+ID4NCj4gPiA+ Pg0KPiA+ID4+Pg0KPiA+ID4+Pj4NCj4gPiA+Pj4+PiogcHJlZmVyZW5jZSBmb3IgcGxhdGZvcm0g YWdub3N0aWMgaGVhZGVycy4gaS5lLiBkb24ndCBkcmFnDQo+ID4gPj4+Pj4gICAgIHBsYXRmb3Jt IHNwZWNpZmljIGhlYWRlcnMgaW50byB0aGUgYXBwbGljYXRpb24gbmFtZXNwYWNlDQo+IHdoZW4N Cj4gPiA+Pj4+PiAgICAgaW5jbHVkaW5nIHJ0ZV94eHguaCBoZWFkZXJzLg0KPiA+ID4NCj4gPiA+ U28gdGhpcyBpcyBhbiBleGNlcHRpb24gZnJvbSB0aGUgImRvbid0IGhpZGUgdGhlIHR5cGVzIiBy dWxlIHRoYXQNCj4gRFBESyBpbmhlcml0ZWQgZnJvbSB0aGUgS2VybmVsLiBJbiB0aGVvcnksIHRo aXMgbWFrZXMgcmVhbGx5IGdvb2Qgc2Vuc2UNCj4gZm9yIGFuIEVBTCB0aGF0IHJlYWxseSBpcyB3 aGF0IGl0IHNheXMgKGkuZS4gYW4gYWJzdHJhY3Rpb24gbGF5ZXIpLiBJbg0KPiByZWFsaXR5LCB0 aG91Z2gsIHRoaXMgcmVxdWlyZXMgdGhhdCB0aGUgRUFMIG9mZmVycyBhbGwgdGhlIGZlYXR1cmVz IG9mDQo+IHRoZSB1bmRlcmx5aW5nIE8vUyB0aGF0IHRoZSBhcHBsaWNhdGlvbiB3YW50cyB0byB1 c2UgLSBvdGhlcndpc2UsIHRoZQ0KPiBhcHBsaWNhdGlvbiB3aWxsIGhhdmUgdG8gYWNjZXNzIHBy aXZhdGUgbWVtYmVycyBvZiB0aGUgRUFMIHN0cnVjdHVyZXMuDQo+ID4gPg0KPiA+ID4+Pj4+PlNv bWV0aGluZyBsaWtlOg0KPiA+ID4+Pj4+PnR5cGVkZWYgc3RydWN0IHsNCj4gPiA+Pj4+Pj4jaWZk ZWYgV0lORE9XUw0KPiA+ID4+Pj4+Pgl1aW50cHRyX3Qgb3BhcXVlX2lkOw0KPiA+ID4+Pj4+PiNl bHNlDQo+ID4gPj4+Pj4+CXB0aHJlYWRfdCBvcGFxdWVfaWQ7DQo+ID4gPj4+Pj4+I2VuZGlmDQo+ ID4gPj4+Pj4+fTsNCj4gPiA+Pj4+Pj5BRkFJSyBQT1NJWCBpdHNlbGYgZG9lc24ndCByZXF1aXJl IHB0aHJlYWRfdCB0byBiZSBhbg0KPiAnYXJpdGhtZXRpYw0KPiA+ID4+Pj50eXBlJy4NCj4gPiA+ Pj4+Pg0KPiA+ID4+Pj4+eWVzLCB0aGlzIGlzIGNvcnJlY3QuIG5ld2VyIHBvc2l4IGludHJvZHVj ZWQgdGhpcyB0byBhbGxvdyB0aGUNCj4gdXNlDQo+ID4gPj5vZg0KPiA+ID4+Pj4+c3RydWN0cy4g aSBhc3N1bWUgcHJpb3IgcmV2aWV3ZXJzIGFyZSBhd2FyZSBvZiB0aGUgcmVjZW50IHBvc2l4DQo+ ID4gPj4+Pj5zdGFuZGFyZCAob3Igc2hvdWxkIGJlKS4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+dGhp cyB0eXBlIG1ha2VzIG5vIGF0dGVtcHQgdG8gYmUgdXNhYmxlIG9uIHBsYXRmb3JtcyB0aGF0IHVz ZQ0KPiA+ID4+Pj4+YSBoYW5kbGUgPiBzaXplb2YodWludHB0cl90KS4gdGhvdWdoIGFueSBwbGF0 Zm9ybSB0aGF0IGRvZXMgaXMNCj4gZnJlZQ0KPiA+ID4+Pj4+dG8gc2hvdmUgYSBwb2ludGVyIHRv IHN0cnVjdCBpbnRvIHRoZSBoYW5kbGUgYXQgdGhlIGNvc3Qgb2YgYQ0KPiA+ID4+Pj4+ZGVyZWZl cmVuY2UgaWYgdGhhdCBpcyB0aGVpciBpbXBsZW1lbnRhdGlvbi4NCj4gPiA+Pj4+DQo+ID4gPj4+ PlVzaW5nIHB0aHJlYWRfdCBkaXJlY3RseSBzdGlsbCBzZWVtcyBsaWtlIGEgc2FmZXN0IGJldCB0 byBtZS4NCj4gPiA+Pj4+VGhlbiB3ZSBjYW4gYXZvaWQgZG9pbmcgdGhlc2UgZXhwbGljaXQgdHlw ZSBjb252ZXJzaW9ucw0KPiBiZWZvcmUvYWZ0ZXINCj4gPiA+Pj4+ZWFjaCBwdGhyZWFkX3h4eCgp IGNhbGwgYW5kIHdvdWxkbid0IG5lZWQgdG8gd29ycnkgaWYgd2UnbGwgZXZlcg0KPiA+ID4+aGF2 ZQ0KPiA+ID4+Pj5wbGF0Zm9ybSB3aXRoIGJpZ2dlciBwdGhyZWFkX3QgKHRob3VnaCB5ZXMsIEkg YWRtaXQgaXQgaXMgdmVyeQ0KPiA+ID4+Pj51bmxpa2VseSkuDQo+ID4gPj4+PkJ1dCwgaWYgd2Ug c3RpbGwgcHJlZmVyIHRvIGdvIGFoZWFkIHdpdGggJ2FyY2gtbmV1dHJhbCcgYXBwcm9hY2gsDQo+ ID4gPj4+PnRoZW4gSSB0aGluayB3ZSBuZWVkIHRvIGhhdmUgY29tcGlsYXRpb24gdGltZSBjaGVj ayB0aGF0DQo+IG9wYXF1ZV9pZA0KPiA+ID4+Pj5pcyBiaWcgZW5vdWdoIHRvIGhvbGQgcHRocmVh ZF90IHZhbHVlOg0KPiA+ID4+Pj5SVEVfQlVJTERfQlVHX09OKHNpemVvZihwdGhyZWFkX3QpICE9 IHNpemVvZihvcGFxdWVfaWQpKSBvciBzby4NCj4gPiA+DQo+ID4gPlllcywgdGhpcyBzaG91bGQg YmUgaW4gdGhlIE8vUyBzcGVjaWZpYyBjIGZpbGVzOg0KPiA+ID4NCj4gPiA+UlRFX0JVSUxEX0JV R19PTihzaXplb2YocnRlX3RocmVhZF90KSA8IHNpemVvZihwdGhyZWFkX3QpKQ0KPiA+ID4NCj4g PiA+UlRFX0JVSUxEX0JVR19PTihzaXplb2YocnRlX3RocmVhZF90KSA8IHNpemVvZihEV09SRCkp DQo+ID4gPg0KPiA+ID4+Pj4NCj4gPiA+Pj4NCj4gPiA+Pj5JIGFncmVlIHdpdGggS29uc3RhbnRp bidzIGNvbmNlcm5zLiBBbGwgdGhpcyB0eXBlIGNhc3RpbmcNCj4gaW5jcmVhc2VzDQo+ID4gPj50 aGUgcmlzayBmb3IgYnVncy4gQWxzbywgSSBkb24ndCB1bmRlcnN0YW5kIHRoZSBuZWVkIHRvIHVz ZSBhIDY0DQo+IGJpdA0KPiA+ID4+dmFsdWUgd2hlbiB0aHJlYWQgSURzIGFyZSAzMiBiaXQgaW4g Ym90aCBMaW51eCBhbmQgV2luZG93cy4NCj4gPiA+Pj4NCj4gPiA+Pj5UaGUgdGhyZWFkIGhhbmRs aW5nIGlzIE8vUyBzcGVjaWZpYyBjb2RlLCBzbyAjaWZkZWYgaXMNCj4gdW5hdm9pZGFibGUuDQo+ ID4gPj4+DQo+ID4gPj4+RnVydGhlcm1vcmUsIEkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIHdyYXAg Ty9TIHNwZWNpZmljIGludGVnZXINCj4gdHlwZXMNCj4gPiA+PmludG8gc3RydWN0cyAtIGl0IGFk ZHMgdW5uZWNlc3NhcnkgY29tcGxleGl0eS4NCj4gPiA+Pj4NCj4gPiA+Pj5JIHdvdWxkIHByZWZl cjoNCj4gPiA+Pj4NCj4gPiA+Pj4jaWZkZWYgV0lORE9XUw0KPiA+ID4+PnR5cGVkZWYgRFdPUkQg cnRlX3RocmVhZF90Ow0KPiA+ID4+PiNlbHNlDQo+ID4gPj4+dHlwZWRlZiBwdGhyZWFkX3QgcnRl X3RocmVhZF90Ow0KPiA+ID4+PiNlbmRpZg0KPiA+ID4NCj4gPiA+T0ssIEkgd2FzIHRvdGFsbHkg d3JvbmcgaGVyZS4gQnV0IEkgc3RpbGwgZG9uJ3QgdGhpbmsgd2UgbmVlZCB0bw0KPiB3cmFwIHRo ZSB2YWx1ZSBpbnRvIGEgc3RydWN0dXJlLCBidXQgY2FuIGp1c3QgdXNlOg0KPiANCj4gPiA+DQo+ ID4gPnR5cGVkZWYgdWludHB0cl90IHJ0ZV90aHJlYWRfdDsgLyogQW5kIGFkZCBjb21tZW50cyBh Ym91dCB0aGUNCj4gdW5kZXJseWluZyB0eXBlcywgaS5lLiBEV09SRCBvbiBXaW5kb3dzLCBwdGhy ZWFkX3QgKG5vdCB0aWRfdCkgb24NCj4gTGludXgvQlNELiAqLw0KPiANCj4gYSBzdHJ1Y3Qgd2ls bCBndWFyYW50ZWUgbm8gaW1wbGljaXQgY29udmVyc2lvbiBzaW5jZSBpdCBpcyBhIHJlYWwgdHlw ZS4NCg0KVGhhdCdzIGEgZ29vZCBwb2ludCwgd2hpY2ggSSBkaWRuJ3QgdGhpbmsgYWJvdXQuDQoN Cj4gDQo+IGkgYW0gdW5jZXJ0YWluIGFib3V0IHdoeSB5b3UgZmVlbCBpdCBtYWtlcyBpdCBtb3Jl IGNvbXBsZXg/IGl0IGltcHJvdmVzDQo+IHNhZmV0eSBieSBlbmZvcmNpbmcgdGhlIHNlbWFudGlj cyBpbnRlbmRlZCBpLmUuIHRoYXQgaXQgaXMgYW4gb3BhcXVlDQo+IHR5cGUuDQo+IA0KPiBhcyBh IHNpZGUtbml0IGl0J3MgYSBzaGFtZSB0aGUgc2FtZSB3YXNuJ3QgZG9uZSBmb3IgY29yZSBpZCB2 cyBjb3JlDQo+IGluZGV4DQo+IGJlY2F1c2UgaSdtIGZvcmV2ZXIgZml4aW5nIGJ1Z3Mgd2hlcmUg cGVvcGxlIGhhdmUgc3dhcHBlZCB0aGUgdHdvIHdoZXJlDQo+IHRoZSBtaXN0YWtlIGNvdWxkIGhh dmUgYmVlbiBhIGNvbXBpbGVyIGVycm9yIGl0IGlzIG5vdyBhIHJ1bnRpbWUgZXJyb3IuDQoNCkkg aGF2ZSBub3RpY2VkIHRoaXMgdG9vLi4uIEkgZ3Vlc3MgdGhleSBzdGFydGVkIG91dCBhcyBvbmUs IGFuZCBvbmx5IHNwbGl0IGludG8gdHdvIGluIGEgbGF0ZXIgdmVyc2lvbiBvZiBEUERLLiBUaGlz IGtpbmQgb2YgbGVnYWN5IGlzIGRpZmZpY3VsdCB0byBpbXByb3ZlIHdoZW4gdGhlIEFQSSBtdXN0 IHJlbWFpbiBzdGFibGUuIDotKA0KDQo+IA0KPiA+DQo+ID4NCj4gPiBJIHRoaW5rIHdlIHByb2Jh Ymx5IGNhbiBoYXZlIHdoYXQgeW91IHN1Z2dlc3RlZCBhYm92ZS4NCj4gPiBUaG91Z2ggaXQgbWln aHQgYmUgYmV0dGVyIHRvIG1vdmUgcnRlX3RocmVhZF90IHR5cGVkZWYgaW4gT1Mtc3BlY2lmaWMN Cj4gPiBoZWFkZXIgKHJ0ZV9vcy5oKS4NCj4gPg0KPiANCj4gaSBkb24ndCBzZWUgYW55IGJlbmVm aXQgdG8gdGhpcy4NCj4gDQo+IGRpcmVjdCBleHBvc3VyZSBvZiBwdGhyZWFkX3Qgd2lsbCBpbnZh cmlhYmx5IGxlYWQgdG8gYWJ1c2UgYnkgcGVvcGxlDQo+IHJlLWludHJvZHVjaW5nIGRlcGVuZGVu Y3kgb24gcHRocmVhZCBhcGkgbGVhZGluZyB0byByZS1pbnRyb2R1Y3Rpb24gb2YNCj4gY29uZGl0 aW9uYWxseSBjb21waWxlZCBjb2RlIGZvciBwb3NpeCB2IG5vbi1wb3NpeCBwb3J0cy4NCj4gDQo+ IG9mIGNvdXJzZSB0aGUgc3RydWN0IGRvZXNuJ3QgZXhwcmVzc2x5IHByZXZlbnQgdGhpcyBzaW5j ZSB5b3UgY2FuIGp1c3QNCj4gZ3JvdmVsIGl0cyBpbnRlcm5hbHMgYW5kIGFzc3VtZSB0aGUgaW1w bGVtZW50YXRpb24gYnV0IHN0aWxsIHdoeSBiZWcNCj4gZm9yIGl0IGJ5IHByZXNlbnRpbmcgbm8g YmFycmllciBlbnRyeSBhdCBhbGwuDQo+IA0KPiBpIGNhbiBhZGRyZXNzIHRoZSBpbml0aWFsIGNv bmNlcm4gYWJvdXQgdHlwZSBzaXppbmcgd2l0aCBhIHN0YXRpYw0KPiBhc3NlcnQNCj4gYnV0IGkg ZG9uJ3QgdGhpbmsgd2l0aG91dCBhIG11Y2ggc3Ryb25nZXIgYXJndW1lbnQgd2l0aCBleGFtcGxl cw0KPiBkZW1vbnN0cmF0aW5nIGNsZWFyIGJlbmVmaXQgaSBjYW4gZ2V0IGJlaGluZCB1c2luZyBq dXN0IGEgdHlwZWRlZiBvcg0KPiBwdGhyZWFkX3QgY29uZGl0aW9uYWxseSBjb21waWxlZC4NCj4g DQo+IHRoYW5rcyBmb3IgdGhlIGZlZWRiYWNrLg0KDQpJIGd1ZXNzIHRoZSBkaWZmZXJlbmNlcyBv ZiBvcGluaW9uIG1haW5seSByZXZvbHZlIGFib3V0IGhvdyBvcGFxdWUgdnMuIHRyYW5zcGFyZW50 IHdlIHdhbnQgdGhlIHJ0ZV90aHJlYWRfdCB0byBiZS4NCg0KRFBESyBoYXMgYSB0cmFkaXRpb24s IGluaGVyaXRlZCBmcm9tIExpbnV4LCBmb3Iga2VlcGluZyB0eXBlcyB0cmFuc3BhcmVudC4gSW4g dGhpcyBjYXNlLCBjb25zaWRlcmluZyB5b3VyIGV4cGVyaWVuY2Ugd2l0aCB3b3JraW5nIGNyb3Nz IE8vUywgSSB3aWxsIGNoYW5nZSBteSBvcGluaW9uIGFuZCBzdXBwb3J0IHlvdXIgc3RhbmNlLg0K DQpBbmQgdG8gZnVydGhlciBhdm9pZCBzb21lb25lIGluY29ycmVjdGx5IHVzaW5nIHRoZSBwcml2 YXRlICJpZCIgbWVtYmVyIG9mIHRoZSBydGVfdGhyZWFkX3Qgc3RydWN0LCB5b3UgY291bGQgZ2l2 ZSBpdCBhIGRpZmZlcmVudCBuYW1lIGZvciBlYWNoIE8vUy4gVW5mb3J0dW5hdGVseSwgaXQncyBu b3QgQysrLCBzbyB5b3UgY2Fubm90IG1ha2UgaXQgInByaXZhdGUiIG9yICJwcm90ZWN0ZWQiLg0K DQoNCg==