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 6ED2AA00C5; Fri, 4 Nov 2022 11:01:11 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 02E2C42D10; Fri, 4 Nov 2022 11:01:11 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id D0D0842D0E for ; Fri, 4 Nov 2022 11:01:09 +0100 (CET) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: RE: [PATCH v2 2/3] mempool: include non-DPDK threads in statistics Date: Fri, 4 Nov 2022 11:01:05 +0100 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D87483@smartserver.smartshare.dk> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v2 2/3] mempool: include non-DPDK threads in statistics Thread-Index: AdjwK6V84fpHcGeQRHy3sBI6yINtUwAAC99Q References: <20221030115445.2115-1-mb@smartsharesystems.com> <20221031112634.18329-1-mb@smartsharesystems.com> <20221031112634.18329-2-mb@smartsharesystems.com> <6c37816f-4136-772a-1ff2-501eb1d3a244@lysator.liu.se> <98CBD80474FA8B44BF855DF32C47DC35D87473@smartserver.smartshare.dk> <22a82237-3e7c-70bc-c98c-b9fd4a088513@lysator.liu.se> <98CBD80474FA8B44BF855DF32C47DC35D8747D@smartserver.smartshare.dk> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , , , , , Cc: , 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 PiBGcm9tOiBNYXR0aWFzIFLDtm5uYmxvbSBbbWFpbHRvOmhvZm9yc0BseXNhdG9yLmxpdS5zZV0N Cj4gU2VudDogRnJpZGF5LCA0IE5vdmVtYmVyIDIwMjIgMDkuNTkNCj4gDQo+IE9uIDIwMjItMTEt MDMgMDk6NTksIE1vcnRlbiBCcsO4cnVwIHdyb3RlOg0KPiA+PiBGcm9tOiBNYXR0aWFzIFLDtm5u YmxvbSBbbWFpbHRvOmhvZm9yc0BseXNhdG9yLmxpdS5zZV0NCj4gPj4gU2VudDogV2VkbmVzZGF5 LCAyIE5vdmVtYmVyIDIwMjIgMTguNTMNCj4gPj4NCj4gPj4gT24gMjAyMi0xMS0wMiAxMDowOSwg TW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+ID4+Pj4gRnJvbTogTWF0dGlhcyBSw7ZubmJsb20gW21h aWx0bzpob2ZvcnNAbHlzYXRvci5saXUuc2VdDQo+ID4+Pj4gU2VudDogV2VkbmVzZGF5LCAyIE5v dmVtYmVyIDIwMjIgMDguNTMNCj4gPj4+Pg0KPiA+Pj4+IE9uIDIwMjItMTAtMzEgMTI6MjYsIE1v cnRlbiBCcsO4cnVwIHdyb3RlOg0KPiA+Pj4+PiBPZmZzZXQgdGhlIHN0YXRzIGFycmF5IGluZGV4 IGJ5IG9uZSwgYW5kIGNvdW50IG5vbi1EUERLIHRocmVhZHMNCj4gYXQNCj4gPj4+PiBpbmRleA0K PiA+Pj4+PiB6ZXJvLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGlzIHBhdGNoIHByb3ZpZGVzIHR3byBi ZW5lZml0czoNCj4gPj4+Pj4gKiBOb24tRFBESyB0aHJlYWRzIGFyZSBhbHNvIGluY2x1ZGVkIGlu IHRoZSBzdGF0aXN0aWNzLg0KPiA+Pj4+PiAqIEEgY29uZGl0aW9uYWwgaW4gdGhlIGZhc3QgcGF0 aCBpcyByZW1vdmVkLiBTdGF0aWMgYnJhbmNoDQo+ID4+IHByZWRpY3Rpb24NCj4gPj4+PiB3YXMN Cj4gPj4+Pj4gICAgICBjb3JyZWN0LCBzbyB0aGUgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgaXMg bmVnbGlnaWJsZS4NCj4gPj4+Pj4NCj4gPj4+Pj4gdjI6DQo+ID4+Pj4+ICogTmV3LiBObyB2MSBv ZiB0aGlzIHBhdGNoIGluIHRoZSBzZXJpZXMuDQo+ID4+Pj4+DQo+ID4+Pj4+IFN1Z2dlc3RlZC1i eTogU3RlcGhlbiBIZW1taW5nZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPg0KPiA+Pj4+ PiBTaWduZWQtb2ZmLWJ5OiBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29t Pg0KPiA+Pj4+PiAtLS0NCj4gPj4+Pj4gICAgIGxpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmMgfCAg MiArLQ0KPiA+Pj4+PiAgICAgbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaCB8IDEyICsrKysrKy0t LS0tLQ0KPiA+Pj4+PiAgICAgMiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDcgZGVs ZXRpb25zKC0pDQo+ID4+Pj4+DQo+ID4+Pj4+IGRpZmYgLS1naXQgYS9saWIvbWVtcG9vbC9ydGVf bWVtcG9vbC5jDQo+IGIvbGliL21lbXBvb2wvcnRlX21lbXBvb2wuYw0KPiA+Pj4+PiBpbmRleCA2 MmQxY2U3NjRlLi5lNjIwODEyNWUwIDEwMDY0NA0KPiA+Pj4+PiAtLS0gYS9saWIvbWVtcG9vbC9y dGVfbWVtcG9vbC5jDQo+ID4+Pj4+ICsrKyBiL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmMNCj4g Pj4+Pj4gQEAgLTEyNzIsNyArMTI3Miw3IEBAIHJ0ZV9tZW1wb29sX2R1bXAoRklMRSAqZiwgc3Ry dWN0DQo+IHJ0ZV9tZW1wb29sDQo+ID4+Pj4gKm1wKQ0KPiA+Pj4+PiAgICAgI2lmZGVmIFJURV9M SUJSVEVfTUVNUE9PTF9TVEFUUw0KPiA+Pj4+PiAgICAgCXJ0ZV9tZW1wb29sX29wc19nZXRfaW5m byhtcCwgJmluZm8pOw0KPiA+Pj4+PiAgICAgCW1lbXNldCgmc3VtLCAwLCBzaXplb2Yoc3VtKSk7 DQo+ID4+Pj4+IC0JZm9yIChsY29yZV9pZCA9IDA7IGxjb3JlX2lkIDwgUlRFX01BWF9MQ09SRTsg bGNvcmVfaWQrKykgew0KPiA+Pj4+PiArCWZvciAobGNvcmVfaWQgPSAwOyBsY29yZV9pZCA8IFJU RV9NQVhfTENPUkUgKyAxOw0KPiBsY29yZV9pZCsrKSB7DQo+ID4+Pj4+ICAgICAJCXN1bS5wdXRf YnVsayArPSBtcC0+c3RhdHNbbGNvcmVfaWRdLnB1dF9idWxrOw0KPiA+Pj4+PiAgICAgCQlzdW0u cHV0X29ianMgKz0gbXAtPnN0YXRzW2xjb3JlX2lkXS5wdXRfb2JqczsNCj4gPj4+Pj4gICAgIAkJ c3VtLnB1dF9jb21tb25fcG9vbF9idWxrICs9IG1wLQ0KPiA+Pj4+PiBzdGF0c1tsY29yZV9pZF0u cHV0X2NvbW1vbl9wb29sX2J1bGs7DQo+ID4+Pj4+IGRpZmYgLS1naXQgYS9saWIvbWVtcG9vbC9y dGVfbWVtcG9vbC5oDQo+IGIvbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaA0KPiA+Pj4+PiBpbmRl eCA5YzRiZjU1NDlmLi4xNmU3ZTYyZTNjIDEwMDY0NA0KPiA+Pj4+PiAtLS0gYS9saWIvbWVtcG9v bC9ydGVfbWVtcG9vbC5oDQo+ID4+Pj4+ICsrKyBiL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmgN Cj4gPj4+Pj4gQEAgLTIzOCw4ICsyMzgsMTEgQEAgc3RydWN0IHJ0ZV9tZW1wb29sIHsNCj4gPj4+ Pj4gICAgIAlzdHJ1Y3QgcnRlX21lbXBvb2xfbWVtaGRyX2xpc3QgbWVtX2xpc3Q7IC8qKjwgTGlz dCBvZg0KPiA+PiBtZW1vcnkNCj4gPj4+PiBjaHVua3MgKi8NCj4gPj4+Pj4NCj4gPj4+Pj4gICAg ICNpZmRlZiBSVEVfTElCUlRFX01FTVBPT0xfU1RBVFMNCj4gPj4+Pj4gLQkvKiogUGVyLWxjb3Jl IHN0YXRpc3RpY3MuICovDQo+ID4+Pj4+IC0Jc3RydWN0IHJ0ZV9tZW1wb29sX2RlYnVnX3N0YXRz IHN0YXRzW1JURV9NQVhfTENPUkVdOw0KPiA+Pj4+PiArCS8qKiBQZXItbGNvcmUgc3RhdGlzdGlj cy4NCj4gPj4+Pj4gKwkgKg0KPiA+Pj4+PiArCSAqIE9mZnNldCBieSBvbmUsIHRvIGluY2x1ZGUg bm9uLURQREsgdGhyZWFkcy4NCj4gPj4+Pj4gKwkgKi8NCj4gPj4+Pj4gKwlzdHJ1Y3QgcnRlX21l bXBvb2xfZGVidWdfc3RhdHMgc3RhdHNbUlRFX01BWF9MQ09SRSArIDFdOw0KPiA+Pj4+PiAgICAg I2VuZGlmDQo+ID4+Pj4+ICAgICB9ICBfX3J0ZV9jYWNoZV9hbGlnbmVkOw0KPiA+Pj4+Pg0KPiA+ Pj4+PiBAQCAtMzA0LDEwICszMDcsNyBAQCBzdHJ1Y3QgcnRlX21lbXBvb2wgew0KPiA+Pj4+PiAg ICAgICovDQo+ID4+Pj4+ICAgICAjaWZkZWYgUlRFX0xJQlJURV9NRU1QT09MX1NUQVRTDQo+ID4+ Pj4+ICAgICAjZGVmaW5lIFJURV9NRU1QT09MX1NUQVRfQUREKG1wLCBuYW1lLCBuKSBkbyB7DQo+ ID4+IFwNCj4gPj4+Pj4gLQkJdW5zaWduZWQgX19sY29yZV9pZCA9IHJ0ZV9sY29yZV9pZCgpOyAg ICAgICAgICAgXA0KPiA+Pj4+PiAtCQlpZiAoX19sY29yZV9pZCA8IFJURV9NQVhfTENPUkUpIHsg ICAgICAgICAgICAgICBcDQo+ID4+Pj4+IC0JCQltcC0+c3RhdHNbX19sY29yZV9pZF0ubmFtZSAr PSBuOyAgICAgICAgXA0KPiA+Pj4+PiAtCQl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQo+ID4+Pj4+ICsJCShtcCktPnN0YXRzW3J0ZV9sY29yZV9pZCgp ICsgMV0ubmFtZSArPSBuOyAgICAgIFwNCj4gPj4+Pg0KPiA+Pj4+IFRoaXMgcmVsaWVzIG9uIExD T1JFX0lEX0FOWSBiZWluZyBVSU5UMzJfTUFYLCBhbmQgYSB3cmFwIHRvIDAsIGZvcg0KPiA+PiBh bg0KPiA+Pj4+IHVucmVnaXN0ZXJlZCBub24tRUFMIHRocmVhZD8gTWlnaHQgYmUgd29ydGggYSBj b21tZW50LCBvciBiZXR0ZXIgYQ0KPiA+Pj4+IHJld3JpdGUgd2l0aCBhbiBleHBsaWNpdCBMQ09S RV9JRF9BTlkgY29tcGFyaXNvbi4NCj4gPj4+DQo+ID4+PiBUaGUgcHVycG9zZSBvZiB0aGlzIHBh dGNoIGlzIHRvIGF2b2lkIHRoZSBjb21wYXJpc29uIGhlcmUuDQo+ID4+Pg0KPiA+Pj4gWWVzLCBp dCByZWxpZXMgb24gdGhlIHdyYXAgdG8gemVybywgYW5kIHRoZXNlIGNvbmRpdGlvbnM6DQo+ID4+ PiAxLiBMQ09SRV9JRF9BTlkgYmVpbmcgVUlOVDMyX01BWCwgYW5kDQo+ID4+PiAyLiB0aGUgcmV0 dXJuIHR5cGUgb2YgcnRlX2xjb3JlX2lkKCkgYmVpbmcgdW5zaWduZWQgaW50LCBhbmQNCj4gPj4+ IDMuIHVuc2lnbmVkIGludCBiZWluZyB1aW50MzJfdC4NCj4gPj4+DQo+ID4+PiBXaGVuIEkgd3Jv dGUgdGhpcywgSSBjb25zaWRlcmVkIGl0IHNhZmUgdG8gYXNzdW1lIHRoYXQgTENPUkVfSURfQU5Z DQo+ID4+IHdpbGwgcmVtYWluIHRoZSB1bnNpZ25lZCBlcXVpdmFsZW50IG9mIC0xIHVzaW5nIHRo ZSByZXR1cm4gdHlwZSBvZg0KPiA+PiBydGVfbGNvcmVfaWQoKS4gSW4gb3RoZXIgd29yZHM6IElm IHRoZSByZXR1cm4gdHlwZSBvZiBydGVfbGNvcmVfaWQoKQ0KPiA+PiBzaG91bGQgY2hhbmdlIGZy b20gMzIgdG8gNjQgYml0LCBMQ09SRV9JRF9BTlkgd291bGQgYmUgdXBkYXRlZA0KPiA+PiBhY2Nv cmRpbmdseSB0byBVSU5UNjRfTUFYLg0KPiA+Pj4NCj4gPj4+IEJlY2F1c2Ugb2YgdGhpcyBhc3N1 bXB0aW9uLCBJIGRpZG4ndCB1c2UgWyhydGVfbGNvcmVfaWQoKSArIDEpICYNCj4gPj4gVUlOVDMy X01BWF0sIGJ1dCBqdXN0IFtydGVfbGNvcmVfaWQoKSArIDFdLg0KPiA+Pj4NCj4gPj4+IEkgc3Ry dWdnbGVkIHdyaXRpbmcgYW4gYXBwcm9wcmlhdGUgY29tbWVudCB3aXRob3V0IG1ha2luZyBpdA0K PiA+PiB1bmFjY2VwdGFibHkgbG9uZywgYnV0IGV2ZW50dWFsbHkgZ2F2ZSB1cCwgYW5kIHNldHRs ZWQgZm9yIHRoZSBvbmUtDQo+IGxpbmUNCj4gPj4gY29tbWVudCBpbiB0aGUgc3RydWN0dXJlIG9u bHkuDQo+ID4+Pg0KPiA+Pj4+DQo+ID4+Pj4gWW91IGFueXdheXMgbmVlZCBhIGNvbmRpdGlvbmFs LiBBbiBhdG9taWMgYWRkIG11c3QgYmUgdXNlZCBpbiB0aGUNCj4gPj4+PiB1bnJlZ2lzdGVyZWQg RUFMIHRocmVhZCBjYXNlLg0KPiA+Pj4NCj4gPj4+IEdvb2QgcG9pbnQ6IFRoZSAiKz0gbiIgbXVz dCBiZSBhdG9taWMgZm9yIG5vbi1pc29sYXRlZCB0aHJlYWRzLg0KPiA+Pj4NCj4gPj4NCj4gPj4g SWYgdGhlIHZhcmlvdXMgdW5yZWdpc3RlcmVkIG5vbi1FQUwgdGhyZWFkcyBhcmUgcnVuIG9uIGlz b2xhdGVkDQo+IGNvcmVzDQo+ID4+IG9yIG5vdCBkb2VzIG5vdCBtYXR0ZXIuDQo+ID4NCj4gPiBB Z3JlZTogVGhleSBhbGwgc2hhcmUgdGhlIHNhbWUgaW5kZXgsIGFuZCB0aHVzIG1heSByYWNlLCBy ZWdhcmRsZXNzDQo+IHdoaWNoIGNvcmVzIHRoZXkgYXJlIHVzaW5nLg0KPiA+DQo+ID4gUmVwaHJh c2luZzogVGhlICIrPSBuIiBtdXN0IGJlIGF0b21pYyBmb3IgdGhlIHVucmVnaXN0ZXJlZCBub24t RUFMDQo+IHRocmVhZHMuDQo+ID4NCj4gPj4NCj4gPj4+IEkganVzdCB0b29rIGEgbG9vayBhdCBo b3cgc29mdHdhcmUgbWFpbnRhaW5lZCBzdGF0cyBhcmUgaGFuZGxlZA0KPiA+PiBlbHNld2hlcmUs IGFuZCB0aGUgZmlyc3QgdGhpbmcgSSBmb3VuZCwgaXMgdGhlIElPQVQgRE1BIGRyaXZlciwNCj4g d2hpY2gNCj4gPj4gYWxzbyBzZWVtcyB0byBiZSB1c2luZyBub24tYXRvbWljIGluY3JlbWVudCBb MV0gcmVnYXJkbGVzcyBpZiB1c2VkDQo+IGJ5IGENCj4gPj4gRFBESyB0aHJlYWQgb3Igbm90Lg0K PiA+Pj4NCj4gPj4+IFsxXTogaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vZHBkay92MjIuMTEt DQo+ID4+IHJjMi9zb3VyY2UvZHJpdmVycy9kbWEvaW9hdC9pb2F0X2RtYWRldi5jI0wyMjgNCj4g Pj4+DQo+ID4+PiBIb3dldmVyLCBkb2luZyBpdCB3cm9uZyBlbHNld2hlcmUgZG9lc24ndCBtYWtl IGl0IGNvcnJlY3QgZG9pbmcgaXQNCj4gPj4gd3JvbmcgaGVyZSB0b28uIDotKQ0KPiA+Pj4NCj4g Pj4+IEF0b21pYyBpbmNyZW1lbnRzIGFyZSBjb3N0bHksIHNvIEkgd291bGQgcmF0aGVyIGZvbGxv dyB5b3VyDQo+ID4+IHN1Z2dlc3Rpb24gYW5kIHJlaW50cm9kdWNlIHRoZSBjb21wYXJpc29uLiBI b3cgYWJvdXQ6DQo+ID4+Pg0KPiA+Pj4gI2RlZmluZSBSVEVfTUVNUE9PTF9TVEFUX0FERChtcCwg bmFtZSwgbikgZG8geyBcDQo+ID4+PiAgICAgICB1bnNpZ25lZCBpbnQgX19sY29yZV9pZCA9IHJ0 ZV9sY29yZV9pZCgpOyBcDQo+ID4+PiAgICAgICBpZiAobGlrZWx5KF9fbGNvcmVfaWQgPCBSVEVf TUFYX0xDT1JFKSkgeyBcDQo+ID4+PiAgICAgICAgICAgKG1wKS0+c3RhdHNbX19sY29yZV9pZF0u bmFtZSArPSBuOyBcDQo+ID4+PiAgICAgICB9IGVsc2Ugew0KPiA+Pj4gICAgICAgICAgIHJ0ZV9h dG9taWM2NF9hZGQoIFwNCj4gPj4+ICAgICAgICAgICAgICAgICAgIChydGVfYXRvbWljNjRfdCop JigobXApLQ0KPiA+c3RhdHNbUlRFX01BWF9MQ09SRV0ubmFtZSksDQo+ID4+IG4pO1wNCj4gPj4+ ICAgICAgIH0gXA0KPiA+Pj4gfQ0KPiA+PiBZb3UgYXJlIHN1cHBvc2VkIHRvIHVzZSBHQ0MgQzEx IGludHJpbnNpY3MgKGUuZy4sDQo+ID4+IF9fYXRvbWljX2ZldGNoX2FkZCgpKS4NCj4gPg0KPiA+ IFVwcy4gSSBmb3Jnb3QhDQo+ID4NCj4gPiBUaGlzIHNob3VsZCBiZSBlbXBoYXNpemVkIGV2ZXJ5 d2hlcmUgaW4gdGhlIHJ0ZV9hdG9taWMgbGlicmFyeSwgdG8NCj4gcHJldmVudCBzdWNoIG1pc3Rh a2VzLg0KPiA+DQo+ID4+DQo+ID4+IEluIGFkZGl0aW9uOiB0ZWNobmljYWxseSwgeW91IG11c3Qg dXNlIGFuIGF0b21pYyBzdG9yZSBmb3IgdGhlIEVBTA0KPiA+PiB0aHJlYWQgY2FzZSAoYW5kIGFu IGF0b21pYyBsb2FkIG9uIHRoZSByZWFkZXIgc2lkZSksIGFsdGhvdWdoIHRoZXJlDQo+IGFyZQ0K PiA+PiB0b25zIG9mIGV4YW1wbGVzIGluIERQREsgd2hlcmUgdGVhcmluZyBpcyBpZ25vcmVkLiAo VGhlIGdlbmVyYXRlZA0KPiBjb2RlDQo+ID4+IHdpbGwgbGlrZWx5IGxvb2sgdGhlIHNhbWUuKQ0K PiA+DQo+ID4gVGhlIGNvdW50ZXJzIGFyZSA2NCBiaXQgYWxpZ25lZCwgYnV0IHRlYXJpbmcgY291 bGQgaGFwcGVuIG9uIDMyIGJpdA0KPiBhcmNoaXRlY3R1cmVzLg0KPiA+DQo+IA0KPiBUaGUgY29t cGlsZXIgaXMgZnJlZSB0byBkbyBpdCBvbiBhbnkgYXJjaGl0ZWN0dXJlLCBidXQgSSdtIG5vdCBz dXJlIGlmDQo+IGl0IGhhcHBlbnMgbXVjaCBpbiBwcmFjdGljZS4NCj4gDQo+ID4gTXkgaW5pdGlh bCByZWFjdGlvbiB0byB5b3VyIGNvbW1lbnQgd2FzIHRvIGRvIGl0IGNvcnJlY3RseSBvbiB0aGUg RUFMDQo+IHRocmVhZHMgdG9vLCB0byBhdm9pZCB0ZWFyaW5nIHRoZXJlIHRvby4gSG93ZXZlciwg dGhlcmUgbWlnaHQgYmUgYQ0KPiBwZXJmb3JtYW5jZSBjb3N0IGZvciAzMiBiaXQgYXJjaGl0ZWN0 dXJlcywgc28gSSB3aWxsIGNvbnNpZGVyIHRoYXQNCj4gdGhlc2UgYXJlIG9ubHkgZGVidWcgY291 bnRlcnMsIGFuZCBhY2NlcHQgdGhlIHJpc2sgb2YgdGVhcmluZy4NCj4gPg0KPiANCj4gV2hhdCB3 b3VsZCB0aGF0IGNvc3QgY29uc2lzdCBvZj8NCg0KSSBoYXZlIHRlc3RlZCBpdCB0aGlzIG1vcm5p bmcgb24gR29kYm9sdDogaHR0cHM6Ly9nb2Rib2x0Lm9yZy96L2Z6N2YzY3Y4Yg0KDQpjdHIgKz0g biBiZWNvbWVzOg0KDQogICAgICAgIGFkZCAgICAgUVdPUkQgUFRSIGN0cltyaXBdLCByZGkNCg0K V2hlcmVhcyBfX2F0b21pY19mZXRjaF9hZGQoJmN0ciwgbiwgX19BVE9NSUNfUkVMQVhFRCkgYmVj b21lczoNCiANCiAgICAgICAgbG9jayBhZGQgICAgICAgIFFXT1JEIFBUUiBjdHJbcmlwXSwgcmRp DQoNCj4gDQo+IEluIHRoZW9yeSBDMTEgYXRvbWljcyBjb3VsZCBiZSBpbXBsZW1lbnRlZCAiaW4g c29mdHdhcmUiIChpLmUuLCB3aXRob3V0DQo+IHRoZSBwcm9wZXIgSVNBLWxldmVsIGd1YXJhbnRl ZXMsIHdpdGggbG9ja3MpLCBidXQgZG9lcyBhbnkgb2YgdGhlDQo+IERQREstc3VwcG9ydGVkIGNv bXBpbGVyLzMyLWJpdCBJU0FzIGFjdHVhbGx5IGRvIHNvPw0KDQpBZGRpbmcgLW0zMiB0byB0aGUg Y29tcGlsZXIgb3B0aW9ucywgY3RyICs9IG4gYmVjb21lczoNCg0KICAgICAgICB4b3IgICAgIGVk eCwgZWR4DQogICAgICAgIG1vdiAgICAgZWF4LCBEV09SRCBQVFIgW2VzcCs0XQ0KICAgICAgICBh ZGQgICAgIERXT1JEIFBUUiBjdHIsIGVheA0KICAgICAgICBhZGMgICAgIERXT1JEIFBUUiBjdHIr NCwgZWR4DQoNCkFuZCBfX2F0b21pY19mZXRjaF9hZGQoJmN0ciwgbiwgX19BVE9NSUNfUkVMQVhF RCkgYmVjb21lczoNCg0KICAgICAgICBwdXNoICAgIGVkaQ0KICAgICAgICB4b3IgICAgIGVkaSwg ZWRpDQogICAgICAgIHB1c2ggICAgZXNpDQogICAgICAgIHB1c2ggICAgZWJ4DQogICAgICAgIHN1 YiAgICAgZXNwLCA4DQogICAgICAgIG1vdiAgICAgZXNpLCBEV09SRCBQVFIgW2VzcCsyNF0NCiAg ICAgICAgbW92ICAgICBlYXgsIERXT1JEIFBUUiBjdHINCiAgICAgICAgbW92ICAgICBlZHgsIERX T1JEIFBUUiBjdHIrNA0KLkw0Og0KICAgICAgICBtb3YgICAgIGVjeCwgZWF4DQogICAgICAgIG1v diAgICAgZWJ4LCBlZHgNCiAgICAgICAgYWRkICAgICBlY3gsIGVzaQ0KICAgICAgICBhZGMgICAg IGVieCwgZWRpDQogICAgICAgIG1vdiAgICAgRFdPUkQgUFRSIFtlc3BdLCBlY3gNCiAgICAgICAg bW92ICAgICBEV09SRCBQVFIgW2VzcCs0XSwgZWJ4DQogICAgICAgIG1vdiAgICAgZWJ4LCBEV09S RCBQVFIgW2VzcF0NCiAgICAgICAgbW92ICAgICBlY3gsIERXT1JEIFBUUiBbZXNwKzRdDQogICAg ICAgIGxvY2sgY21weGNoZzhiICBRV09SRCBQVFIgY3RyDQogICAgICAgIGpuZSAgICAgLkw0DQog ICAgICAgIGFkZCAgICAgZXNwLCA4DQogICAgICAgIHBvcCAgICAgZWJ4DQogICAgICAgIHBvcCAg ICAgZXNpDQogICAgICAgIHBvcCAgICAgZWRpDQoNCj4gDQo+IEl0J3MgYWxzbyBub3Qgb2J2aW91 cyB0aGF0IGlmIHRoZXJlLCBmb3IgYSBjZXJ0YWluDQo+IGNvbXBpbGVyL0lTQS1jb21iaW5hdGlv biwgaXMgYSBwZXJmb3JtYW5jZSBpbXBhY3QgdG8gcGF5IGZvcg0KPiBjb3JyZWN0bmVzcywgY29y cmVjdG5lc3Mgd291bGQgaGF2ZSB0byBnaXZlIHdheS4NCg0KSW4gdGhpcyBwYXJ0aWN1bGFyIGNh c2UsIGFuZCBiZWNhdXNlIHRoZXkgYXJlIG9ubHkgZGVidWcgY291bnRlcnMsIEkgd2lsbCBhcmd1 ZSB0aGF0IERQREsgZ2VuZXJhbGx5IHVzZXMgbm9uLWF0b21pYyBhY2Nlc3MgdG8gNjQgYml0IHN0 YXRpc3RpY3MgY291bnRlcnMuIFRoaXMgd2FzIGFsc28gdGhlIGNhc2UgZm9yIHRoZXNlIGNvdW50 ZXJzIGJlZm9yZSB0aGlzIHBhdGNoLg0KDQpJIGFtIHBsYW5uaW5nIHRvIGZpbmlzaCB2MyBvZiB0 aGlzIHBhdGNoIHNlcmllcyB0b2RheSwgc28gSSBob3BlIHlvdSBjYW4gYWdyZWUgdG8gY2xvc2Ug dGhlIGF0b21pY2l0eSBkaXNjdXNzaW9uIHdpdGggYW5vdGhlciBhcmd1bWVudDogTWFraW5nIHN0 YXRpc3RpY3MgY291bnRlcnMgYXRvbWljIHNob3VsZCBiZSBlbGV2YXRlZCB0byBhIGdlbmVyYWwg cGF0Y2ggYWNyb3NzIERQREssIGFuZCBub3QgcGFydCBvZiB0aGlzIG1lbXBvb2wgcGF0Y2ggc2Vy aWVzLg0KDQpUaGUgdjMgcGF0Y2ggKHdoaWNoIEkgYW0gd29ya2luZyBvbiByaWdodCBub3cpIGNv dW50cyBhdG9taWNhbGx5IGZvciB0aGUgdW5yZWdpc3RlcmVkIG5vbi1FQUwgdGhyZWFkczoNCg0K I2RlZmluZSBSVEVfTUVNUE9PTF9TVEFUX0FERChtcCwgbmFtZSwgbikgZG8geyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQoJCXVuc2lnbmVkIGludCBfX2xjb3JlX2lkID0gcnRl X2xjb3JlX2lkKCk7ICAgICAgICAgICAgICAgICAgICAgICBcDQoJCWlmIChsaWtlbHkoX19sY29y ZV9pZCA8IFJURV9NQVhfTENPUkUpKSAgICAgICAgICAgICAgICAgICAgICAgICBcDQoJCQkobXAp LT5zdGF0c1tfX2xjb3JlX2lkXS5uYW1lICs9IG47ICAgICAgICAgICAgICAgICAgICAgIFwNCgkJ ZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCgkJCV9fYXRvbWljX2ZldGNoX2FkZCgmKChtcCktPnN0YXRzW1JURV9NQVhfTENP UkVdLm5hbWUpLCAgXA0KCQkJCQkgICBuLCBfX0FUT01JQ19SRUxBWEVEKTsgICAgICAgICAgICAg ICAgXA0KCX0gd2hpbGUgKDApDQoNClBTOiBFeGNlbGxlbnQgZGlzY3Vzc2lvbiAtIHRoYW5rIHlv dSBmb3IgZ2V0dGluZyBpbnZvbHZlZCwgTWF0dGlhcy4NCg0K