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 625E8A00C4; Wed, 9 Nov 2022 11:20:02 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E5DCC40143; Wed, 9 Nov 2022 11:20:01 +0100 (CET) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 4BB27400EF for ; Wed, 9 Nov 2022 11:20:00 +0100 (CET) Received: from frapeml500005.china.huawei.com (unknown [172.18.147.226]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4N6gpP4Cydz67xsC; Wed, 9 Nov 2022 18:15:41 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml500005.china.huawei.com (7.182.85.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 9 Nov 2022 11:19:58 +0100 Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2375.031; Wed, 9 Nov 2022 11:19:58 +0100 From: Konstantin Ananyev To: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , Bruce Richardson , Thomas Monjalon CC: "andrew.rybchenko@oktetlabs.ru" , "olivier.matz@6wind.com" , "david.marchand@redhat.com" , "dev@dpdk.org" , "hofors@lysator.liu.se" , "stephen@networkplumber.org" , "jerinj@marvell.com" Subject: RE: FW: [PATCH v4 3/3] mempool: use cache for frequently updated stats Thread-Topic: FW: [PATCH v4 3/3] mempool: use cache for frequently updated stats Thread-Index: AQHY8EWGJHVmHQn4qECYwEvekL7ida40xLXwgAAcq8CAAAcqEIAAEz2AgAAQHICAABangIAAAkcAgAArPdCAAKWUAIAAQX8AgAAocrA= Date: Wed, 9 Nov 2022 10:19:58 +0000 Message-ID: <29e077d6e6444999b01c04c598e763b8@huawei.com> References: <98CBD80474FA8B44BF855DF32C47DC35D874A1@smartserver.smartshare.dk> <6110999.17fYzF0512@thomas> <98CBD80474FA8B44BF855DF32C47DC35D874A3@smartserver.smartshare.dk> <2028060.trqCLbgVIZ@thomas> <74775cadd8174c3797b4076929ebbcb7@huawei.com> <98CBD80474FA8B44BF855DF32C47DC35D874A4@smartserver.smartshare.dk> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.48.147.2] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected 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 DQo+IE9uIDIwMjItMTEtMDkgMDY6MDMsIE1vcnRlbiBCcsO4cnVwIHdyb3RlOg0KPiA+PiBGcm9t OiBLb25zdGFudGluIEFuYW55ZXYgW21haWx0bzprb25zdGFudGluLmFuYW55ZXZAaHVhd2VpLmNv bV0NCj4gPj4gU2VudDogVHVlc2RheSwgOCBOb3ZlbWJlciAyMDIyIDE4LjM4DQo+ID4+Pg0KPiA+ Pj4gT24gVHVlLCBOb3YgMDgsIDIwMjIgYXQgMDQ6NTE6MTFQTSArMDEwMCwgVGhvbWFzIE1vbmph bG9uIHdyb3RlOg0KPiA+Pj4+IDA4LzExLzIwMjIgMTU6MzAsIE1vcnRlbiBCcsO4cnVwOg0KPiA+ Pj4+Pj4gRnJvbTogVGhvbWFzIE1vbmphbG9uIFttYWlsdG86dGhvbWFzQG1vbmphbG9uLm5ldF0N Cj4gPj4+Pj4+IDA4LzExLzIwMjIgMTI6MjUsIE1vcnRlbiBCcsO4cnVwOg0KPiA+Pj4+Pj4+IEZy b206IE1vcnRlbiBCcsO4cnVwDQo+ID4+Pj4+Pj4+IEZyb206IEtvbnN0YW50aW4gQW5hbnlldg0K PiA+PiBbbWFpbHRvOmtvbnN0YW50aW4uYW5hbnlldkBodWF3ZWkuY29tXQ0KPiA+Pj4+Pj4+PiBT ZW50OiBUdWVzZGF5LCA4IE5vdmVtYmVyIDIwMjIgMTAuMjANCj4gPj4+Pj4+Pj4+ICsjaWZkZWYg UlRFX0xJQlJURV9NRU1QT09MX1NUQVRTDQo+ID4+Pj4+Pj4+PiArI2RlZmluZSBSVEVfTUVNUE9P TF9DQUNIRV9TVEFUX0FERChjYWNoZSwgbmFtZSwgbikNCj4gPj4gKGNhY2hlKS0NCj4gPj4+Pj4+ PiBodHRwczovL3Byb3RlY3QyLmZpcmVleWUuY29tL3YxL3VybD9rPTMxMzIzMzM0LTUwMWQ1MTIy LTMxMzI3M2FmLTQ1NDQ0NTU1NTczMS0yN2E4NTllN2VjMTMwMzVhJnE9MSZlPWExMjBlMjhlLQ0K PiBjYWE3LTQ3ODMtOTY4Ni01ODY4Yzg3MTU1M2QmdT1odHRwJTNBJTJGJTJGc3RhdHMubmFtZSUy RiArPSBuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IEFzIEFuZHJldyBhbHJlYWR5IHBvaW50ZWQs IGl0IG5lZWRzIHRvIGJlOiAoKGNhY2hlKS0NCj4gPj4+IGh0dHBzOi8vcHJvdGVjdDIuZmlyZWV5 ZS5jb20vdjEvdXJsP2s9MzEzMjMzMzQtNTAxZDUxMjItMzEzMjczYWYtNDU0NDQ1NTU1NzMxLTI3 YTg1OWU3ZWMxMzAzNWEmcT0xJmU9YTEyMGUyOGUtY2FhNy0NCj4gNDc4My05Njg2LTU4NjhjODcx NTUzZCZ1PWh0dHAlM0ElMkYlMkZzdGF0cy5uYW1lJTJGICs9DQo+ID4+Pj4+PiAobikpDQo+ID4+ Pj4+Pj4+IEFwYXJ0IGZyb20gdGhhdCwgTEdUTS4NCj4gPj4+Pj4+Pj4gU2VyaWVzLUFja2VkLWJ5 OiBLb25zdGFudGluIEFuYW55ZXYNCj4gPj4gPGtvbnN0YW50aW4uYW5hbnlldkBodWF3ZWkuY29t Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQFRob21hcywgdGhpcyBzZXJpZXMgc2hvdWxkIGJlIHJl YWR5IHRvIGFwcGx5Li4uIGl0IG5vdyBoYXMNCj4gPj4gYmVlbjoNCj4gPj4+Pj4+PiBSZXZpZXdl ZC1ieTogKG1lbXBvb2wgbWFpbnRhaW5lcikgQW5kcmV3IFJ5YmNoZW5rbw0KPiA+Pj4+Pj4gPGFu ZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+Pj4+Pj4+IFJldmlld2VkLUJ5OiBNYXR0 aWFzIFLDtm5uYmxvbSA8bWF0dGlhcy5yb25uYmxvbUBlcmljc3Nvbi5jb20+DQo+ID4+Pj4+Pj4g QWNrZWQtYnk6IEtvbnN0YW50aW4gQW5hbnlldiA8a29uc3RhbnRpbi5hbmFueWV2QGh1YXdlaS5j b20+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gQmVpbmcgYWNrZWQgZG9lcyBub3QgbWVhbiBpdCBpcyBn b29kIHRvIGFwcGx5IGluIC1yYzMuDQo+ID4+Pj4+DQo+ID4+Pj4+IEkgdW5kZXJzdGFuZCB0aGF0 IHRoZSBSRkMvdjEgb2YgdGhpcyBzZXJpZXMgd2FzIGZvcm1hbGx5IHRvbyBsYXRlDQo+ID4+IHRv IG1ha2UgaXQgaW4gMjIuMTEsIHNvIEkgd2lsbCBub3QgY29tcGxhaW4gbG91ZGx5IGlmIHlvdSBj aG9vc2UgdG8NCj4gPj4+IG9taXQgaXQgZm9yIDIyLjExLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBXaXRo IHR3byBpbmRlcGVuZGVudCByZXZpZXdzLCBpbmNsdWRpbmcgZnJvbSBhIG1lbXBvb2wNCj4gPj4g bWFpbnRhaW5lciwgSSBzdGlsbCBoYXZlIHNvbWUgaG9wZS4gQWxzbyBjb25zaWRlcmluZyB0aGUg cmlzaw0KPiA+PiBhc3Nlc3NtZW50DQo+ID4+PiBiZWxvdy4gOy0pDQo+ID4+Pj4+DQo+ID4+Pj4+ PiBQbGVhc2UgdGVsbCB3aGF0IGlzIHRoZSBiZW5lZml0IGZvciAyMi4xMSAoYmVmb3JlL2FmdGVy IGFuZA0KPiA+PiBjb25kaXRpb24pLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBTaG9ydCB2ZXJzaW9uOiBX aXRoIHRoaXMgc2VyaWVzLCBtZW1wb29sIHN0YXRpc3RpY3MgY2FuIGJlIHVzZWQNCj4gPj4gaW4g cHJvZHVjdGlvbi4gV2l0aG91dCBpdCwgdGhlIHBlcmZvcm1hbmNlIGNvc3QNCj4gPj4+IChtZW1w b29sX3BlcmZfYXV0b3Rlc3Q6IC03NCAlKSBpcyBwcm9oaWJpdGl2ZSENCj4gPj4+Pj4NCj4gPj4+ Pj4gTG9uZyB2ZXJzaW9uOg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGUgcGF0Y2ggc2VyaWVzIHByb3Zp ZGVzIHNpZ25pZmljYW50bHkgaGlnaGVyIHBlcmZvcm1hbmNlIGZvcg0KPiA+PiBtZW1wb29sIHN0 YXRpc3RpY3MsIHdoaWNoIGFyZSByZWFkYWJsZSB0aHJvdWdoDQo+ID4+PiBydGVfbWVtcG9vbF9k dW1wKEZJTEUgKmYsIHN0cnVjdCBydGVfbWVtcG9vbCAqbXApLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBX aXRob3V0IHRoaXMgc2VyaWVzLCB5b3UgaGF2ZSB0byBzZXQgUlRFX0xJQlJURV9NRU1QT09MX0RF QlVHIGF0DQo+ID4+IGJ1aWxkIHRpbWUgdG8gZ2V0IG1lbXBvb2wgc3RhdGlzdGljcy4NCj4gPj4+ IFJURV9MSUJSVEVfTUVNUE9PTF9ERUJVRyBhbHNvIGVuYWJsZXMgcHJvdGVjdGl2ZSBjb29raWVz IGJlZm9yZSBhbmQNCj4gPj4gYWZ0ZXIgZWFjaCBtZW1wb29sIG9iamVjdCwgd2hpY2ggYXJlIGFs bCB2ZXJpZmllZCBvbg0KPiA+Pj4gZ2V0L3B1dCBmcm9tIHRoZSBtZW1wb29sLiBBY2NvcmRpbmcg dG8gbWVtcG9vbF9wZXJmX2F1dG90ZXN0LCB0aGUNCj4gPj4gcGVyZm9ybWFuY2UgY29zdCBvZiBt ZW1wb29sIHN0YXRpc3RpY3MgKGJ5IHNldHRpbmcNCj4gPj4+IFJURV9MSUJSVEVfTUVNUE9PTF9E RUJVRykgaXMgYSA3NCAlIGRlY3JlYXNlIGluIHJhdGVfcGVyc2VjIGZvcg0KPiA+PiBtZW1wb29s cyB3aXRoIGNhY2hlIChpLmUuIG1idWYgcG9vbHMpLiBQcm9oaWJpdGl2ZSBmb3IgdXNlIGluDQo+ ID4+PiBwcm9kdWN0aW9uIQ0KPiA+Pj4+Pg0KPiA+Pj4+PiBXaXRoIHRoaXMgc2VyaWVzLCB0aGUg cGVyZm9ybWFuY2UgY29zdCBvZiBtZW1wb29sIHN0YXRpc3RpY3MgKGJ5DQo+ID4+IHNldHRpbmcg UlRFX0xJQlJURV9NRU1QT09MX1NUQVRTKSBpbg0KPiA+Pj4gbWVtcG9vbF9wZXJmX2F1dG90ZXN0 IGlzIG9ubHkgNi43ICUsIHNvIG1lbXBvb2wgc3RhdGlzdGljcyBjYW4gYmUNCj4gPj4gdXNlZCBp biBwcm9kdWN0aW9uLg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4gTm90ZSB0aGVyZSBpcyBhIHJlYWwgcmlz ayBkb2luZyBzdWNoIGNoYW5nZSB0aGF0IGxhdGUuDQo+ID4+Pj4+DQo+ID4+Pj4+IFJpc2sgYXNz ZXNzbWVudDoNCj4gPj4+Pj4NCj4gPj4+Pj4gVGhlIHBhdGNoIHNlcmllcyBoYXMgemVybyBlZmZl Y3QgdW5sZXNzIGVpdGhlcg0KPiA+PiBSVEVfTElCUlRFX01FTVBPT0xfREVCVUcgb3IgUlRFX0xJ QlJURV9NRU1QT09MX1NUQVRTIGFyZSBzZXQgd2hlbg0KPiA+Pj4gYnVpbGRpbmcuIFRoZXkgYXJl IG5vdCBzZXQgaW4gdGhlIGRlZmF1bHQgYnVpbGQuDQo+ID4+Pj4NCj4gPj4+PiBJZiB0aGVzZXMg YnVpbGQgZmxhZ3MgYXJlIG5vdCBzZXQsIHRoZXJlIGlzIG5vIHJpc2sgYW5kIG5vIGJlbmVmaXQu DQo+ID4+Pj4gQnV0IGlmIHRoZXkgYXJlIHNldCwgdGhlcmUgaXMgYSByaXNrIG9mIHJlZ3Jlc3Np b24sDQo+ID4+Pj4gZm9yIHRoZSBiZW5lZml0IG9mIGFuIGluY3JlYXNlZCBwZXJmb3JtYW5jZSBv ZiBhIGRlYnVnIGZlYXR1cmUuDQo+ID4+Pj4gSSB3b3VsZCBzYXkgaXQgaXMgYmV0dGVyIHRvIGF2 b2lkIGFueSBmdW5jdGlvbmFsIHJlZ3Jlc3Npb24gaW4gYQ0KPiA+PiBkZWJ1ZyBmZWF0dXJlDQo+ ID4+Pj4gYXQgdGhpcyBzdGFnZS4NCj4gPj4+PiBBbnkgb3RoZXIgb3Bpbmlvbj8NCj4gPj4+Pg0K PiA+Pj4gV2hpbGUgSSBhZ3JlZSB0aGF0IHdlIHNob3VsZCBhdm9pZCBhbnkgZnVuY3Rpb25hbCBy ZWdyZXNzaW9uLCBJDQo+ID4+IHdvbmRlciBob3cNCj4gPj4+IHdpZGVseSB1c2VkIHRoZSBkZWJ1 ZyBmZWF0dXJlIGlzLCBhbmQgaG93IGJpZyB0aGUgcmlzayBvZiBhDQo+ID4+IHJlZ3Jlc3Npb24g aXM/DQo+ID4+PiBFdmVuIGlmIHRoZXJlIGlzIG9uZSwgaGF2aW5nIGEgcmVncmVzc2lvbiBpbiBh IGRlYnVnIGZlYXR1cmUgaXMgYSBsb3QNCj4gPj4gbGVzcw0KPiA+Pj4gc2VyaW91cyB0aGFuIGhh dmluZyBvbmUgaW4gc29tZXRoaW5nIHdoaWNoIGdvZXMgaW50byBwcm9kdWN0aW9uLg0KPiA+Pj4N Cj4gPj4NCj4gPj4gVW5sZXNzIGl0IGludHJvZHVjZXMgYW4gQUJJIGJyZWFrYWdlIChhcyBJIHVu ZGVyc3RhbmQgaXQgZG9lc24ndCksIEknbGwNCj4gPj4gd2FpdCB0aWxsIDIzLjAzLg0KPiA+PiBK dXN0IGluIGNhc2UuDQo+ID4NCj4gPiBJZiBidWlsdCAoYm90aCBiZWZvcmUgYW5kIGFmdGVyIHRo aXMgc2VyaWVzKSB3aXRob3V0IFJURV9MSUJSVEVfTUVNUE9PTF9ERUJVRyAoYW5kIHdpdGhvdXQg UlRFX0xJQlJURV9NRU1QT09MX1NUQVRTLA0KPiB3aGljaCBpcyBpbnRyb2R1Y2VkIGJ5IHRoZSBz ZXJpZXMpLCB0aGVyZSBpcyBubyBBQkkgYnJlYWthZ2UuDQo+ID4NCj4gPiBJZiBidWlsdCAoYm90 aCBiZWZvcmUgYW5kIGFmdGVyIHRoaXMgc2VyaWVzKSB3aXRoIFJURV9MSUJSVEVfTUVNUE9PTF9E RUJVRyAoYW5kIHdpdGhvdXQgUlRFX0xJQlJURV9NRU1QT09MX1NUQVRTKSwgdGhlDQo+IEFCSSBk aWZmZXJzIGJldHdlZW4gYmVmb3JlIGFuZCBhZnRlciB0aGlzIHNlcmllczogVGhlIHN0YXRzIGFy cmF5IGRpc2FwcGVhcnMgZnJvbSBzdHJ1Y3QgcnRlX21lbXBvb2wsIGFuZCB0aGUgb3V0cHV0IGZy b20NCj4gcnRlX21lbXBvb2xfZHVtcCgpIGRvZXMgbm90IGluY2x1ZGUgdGhlIHN0YXRpc3RpY3Mu DQo+ID4NCg0KQ2FuIHdlIHByb2JhYmx5IGFsd2F5cyBlbmFibGUgUlRFX0xJQlJURV9NRU1QT09M X1NUQVRTIHdoZW4gUlRFX0xJQlJURV9NRU1QT09MX0RFQlVHIGlzIG9uPyANCg0KPiA+IElmIGJ1 aWx0IChib3RoIGJlZm9yZSBhbmQgYWZ0ZXIgdGhpcyBzZXJpZXMpIHdpdGggUlRFX0xJQlJURV9N RU1QT09MX0RFQlVHIChhbmQgd2l0aCBSVEVfTElCUlRFX01FTVBPT0xfU1RBVFMpLCB0aGUgQUJJ DQo+IGFsc28gZGlmZmVycyBiZXR3ZWVuIGJlZm9yZSBhbmQgYWZ0ZXIgdGhpcyBzZXJpZXM6IFRo ZSBzaXplIG9mIHRoZSBzdGF0cyBhcnJheSBpbiBzdHJ1Y3QgcnRlX21lbXBvb2wgZ3Jvd3MgYnkg b25lIGVsZW1lbnQuDQoNCkFoIHllcywgbWlzc2VkIHRoYXQgb25lLg0KU28gdGhlIHF1ZXN0aW9u IGlzIHRoZW4gLSBkb2VzIGl0IGNvdW50IGFzIGZvcm1hbCBBQkkgYnJlYWthZ2Ugb3Igbm90Pw0K SWYgeWVzLCB0aGVuIHByb2JhYmx5IGJldHRlciB0byBnbyBhaGVhZCB3aXRoIHRoZXNlIGNoYW5n ZXMgZm9yIDIyLjExDQooaXQgc291bmRzIHRvbyBwcm9oaWJpdGl2ZSB0byB3YWl0IGZvciBhbiB5 ZWFyIGhlcmUpLiAgDQpPciBhdCBsZWFzdCB0YWtlIGluIHRoZSBwYXJ0IHRoYXQgaW50cm9kdWNl IHRoZSBBQkkgYnJlYWthZ2UuDQpJZiBub3QsIHByb2JhYmx5IG5vdCBiaXQgZGVhbCB0byB3YWl0 IHRpbGwgMjMuMDMuDQoNCj4gPj4gQlRXLCBhcyBhIHNpZGUgdGhvdWdodCAtIGlmIHRoZSBpbXBh Y3QgaXMgcmVhbGx5IHRoYXQgc21hbGwgbm93LCB3b3VsZA0KPiA+PiBpdCBtYWtlIHNlbnNlIHRv IG1ha2UNCj4gPj4gaXQgcnVuLXRpbWUgb3B0aW9uLCBpbnN0ZWFkIG9mIGNvbXBpbGUtdGltZSBv bmU/DQo+ID4NCj4gPiBUaGUgbWVtcG9vbCBnZXQvcHV0IGZ1bmN0aW9ucyBhcmUgdmVyeSBsZWFu IHdoZW4gYnVpbHQgd2l0aG91dCBTVEFUUyBvciBERUJVRy4gV2l0aCBhIHJ1bnRpbWUgb3B0aW9u LCB0aGUgcmVzdWx0aW5nIGNvZGUgd291bGQNCj4gYmUgc2xpZ2h0bHkgbG9uZ2VyLCBhbmQgb25s eSBvbmUgYWRkaXRpb25hbCBjb25kaXRpb25hbCB3b3VsZCBiZSBoaXQgaW4gdGhlIGNvbW1vbiBj YXNlIChpLmUuIHdoZW4gdGhlIG9iamVjdHMgZG9uJ3QgbWlzcyB0aGUgbWVtcG9vbA0KPiBjYWNo ZSkuIFNvIHdpdGggc3RhdHMgZGlzYWJsZWQgKGF0IHJ1bnRpbWUpLCBpdCB3b3VsZCBvbmx5IGFk ZCBhIHZlcnkgc21hbGwgcGVyZm9ybWFuY2UgY29zdC4gSG93ZXZlciwgY2hlY2tpbmcgdGhlIHZh bHVlIG9mIHRoZQ0KPiBlbmFibGVkL2Rpc2FibGVkIHZhcmlhYmxlIGNhbiBjYXVzZSBhIENQVSBj YWNoZSBtaXNzLCB3aGljaCBoYXMgYSBwZXJmb3JtYW5jZSBjb3N0LiBBbmQgdGhlIGVuYWJsZWQv ZGlzYWJsZWQgdmFyaWFibGUgc2hvdWxkDQo+IGRlZmluaXRlbHkgYmUgZ2xvYmFsIC0gaWYgaXQg aXMgcGVyIG1lbXBvb2wsIGl0IHdpbGwgY2F1c2UgbWFueSBDUFUgY2FjaGUgbWlzc2VzIChiZWNh dXNlIHRoZSBjb21tb24gY2FzZSBkb2Vzbid0IHRvdWNoIHRoZSBtZW1wb29sDQo+IHN0cnVjdHVy ZSwgb25seSB0aGUgbWVtcG9vbCBjYWNoZSBzdHJ1Y3R1cmUpLg0KPiA+DQoNClllcywgZWl0aGVy IGEgZ2xvYmFsIG9uZSwgb3IgcHV0IGl0IGludG8gYm90aCBzdHJ1Y3RzOiBydGVfbWVtcG9vbF9j YWNoZSBhbmQgcnRlX21lbXBvb2wuDQoNCj4gSXQncyBub3QgdG90YWxseSBvYnZpb3VzIHRoYXQg YSBjb25kaXRpb25hbCBpcyBiZXR0ZXIgdGhhbiBqdXN0IGFsd2F5cw0KPiBwZXJmb3JtaW5nIHRo ZXNlIHNpbXBsZSBhcml0aG1ldGljIG9wZXJhdGlvbnMsIGV2ZW4gaWYgeW91IGRvbid0IGtub3cg aWYNCj4geW91IG5lZWQgdGhlIHJlc3VsdCAoaS5lLiwgaWYgc3RhdHMgaXMgZW5hYmxlZCBvciBu b3QpLCBlc3BlY2lhbGx5IHNpbmNlDQo+IHRoZXkgb3BlcmF0ZSBvbiBhIGNhY2hlIGxpbmUgdGhh dCBpcyB2ZXJ5IGxpa2VseSBhbHJlYWR5IG93bmVkIGJ5IHRoZQ0KPiBjb3JlIHJ1bm5pbmcgdGhl IGNvcmUgKHNpbmNlIHRoZSAnbGVuJyBmaWVsZHMgaXMgZnJlcXVlbnRseSB1c2VkKS4NCg0KWWVw LCB0aGF0J3MgYW5vdGhlciBvcHRpb24gLSBhbHdheXMgdXBkYXRlIHRoZSBjYWNoZSBwYXJ0Lg0K DQo+ID4gQWxzbywgY2hlY2tpbmcgdGhlIHJ1bnRpbWUgb3B0aW9uIHNob3VsZCBoYXZlIHVubGlr ZWx5KCksIHNvIHRoZSBwZXJmb3JtYW5jZSBjb3N0IG9mIHRoZSBzdGF0cyAod2hlbiBlbmFibGVk IGF0IHJ1bnRpbWUpIGlzIGFsc28NCj4gaGlnaGVyIHRoYW4gd2l0aCBhIGJ1aWxkIHRpbWUgb3B0 aW9uLiAoWWVzLCBkeW5hbWljIGJyYW5jaCBwcmVkaWN0aW9uIHdpbGwgYWxsZXZpYXRlIG1vc3Qg b2YgdGhpcywgYnV0IGl0IHdpbGwgY29uc3VtZSBlbnRyaWVzIGluIHRoZQ0KPiBicmFuY2ggcHJl ZGljdG9yIHRhYmxlIC0gdGhlc2UgYXJlIGlubGluZWQgZnVuY3Rpb25zLiBKdXN0IGxpa2Ugd2Ug YWx3YXlzIHRyeSB0byBhdm9pZCBjYWNoZSBtaXNzZXMgaW4gRFBESywgd2Ugc2hvdWxkIGFsc28g dHJ5IHRvDQo+IGNvbnNlcnZlIGJyYW5jaCBwcmVkaWN0b3IgdGFibGUgZW50cmllcy4gSSBoYXRl IHRoZSBhcmd1bWVudCB0aGF0IGJyYW5jaCBwcmVkaWN0aW9uIGZpeGVzIGNvbmRpdGlvbmFscywg ZXNwZWNpYWxseSBpZiB0aGV5IGFyZSB3ZWlyZCBvcg0KPiBjb3VsZCBoYXZlIGJlZW4gYXZvaWRl ZC4pDQo+ID4NCj4gPiBJbiB0aGUgY29zdC9iZW5lZml0IGFuYWx5c2lzLCB3ZSBuZWVkIHRvIGNv bnNpZGVyIHRoYXQgdGhlc2Ugc3RhdGlzdGljcyBhcmUgbm90IGZpbGwvZW1wdGluZXNzIGxldmVs IHN0YXR1cyBvciBzaW1pbGFyLCBidXQgb25seSBkZWJ1Zw0KPiBjb3VudGVycyAobnVtYmVyIG9m IGdldC9wdXQgdHJhbnNhY3Rpb25zIGFuZCBvYmplY3RzKSwgc28gd2UgbmVlZCB0byBhc2sgb3Vy c2VsdmVzIHRoaXMgcXVlc3Rpb246IEhvdyBtYW55IHVzZXJzIGFyZSBpbnRlcmVzdGVkIGluDQo+ IHRoZXNlIHN0YXRpc3RpY3MgZm9yIHByb2R1Y3Rpb24gYW5kIGFyZSB1bmFibGUgdG8gYnVpbGQg dGhlaXIgYXBwbGljYXRpb24gd2l0aCBSVEVfTElCUlRFX01FTVBPT0xfU1RBVFM/DQoNCk9idmlv dXNseSwgSSBkb24ndCBoYXZlIHN1Y2ggc3RhdHMuDQpGcm9tIG15IHBlcnNwZWN0aXZlIC0gSSBh bSBvayB0byBzcGVuZCBmZXcgZXh0cmEgY3ljbGVzIHRvIGF2b2lkIGJ1aWxkaW5nIHNlcGFyYXRl IGJpbmFyeS4NCkFnYWluLCBJIGd1ZXNzIHRoYXQgIHdpdGggZ2xvYmFsIHN3aXRjaCB0aGUgaW1w YWN0IHdpbGwgYmUgbmVnbGlnaWJsZS4gDQpCdXQgYW55d2F5LCBpdCB3aWxsIHJlcXVpcmUgZXZl biBtb3JlIGNoYW5nZXMgYW5kIGFub3RoZXIgQUJJIGJyZWFrYWdlIChhcyBzdGF0cyBzaG91bGQg YWx3YXlzIGJlIGluY2x1ZGVkKSwNCnNvIGl0IGRlZmluaXRlbHkgb3V0IG9mIHNjb3BlIGZvciB0 aGlzIHJlbGVhc2UuIA0KDQo+ID4gRm9yIGV4YW1wbGUsIHdlIChTbWFydFNoYXJlIFN5c3RlbXMp IGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gdGhlbSBmb3IgYXBwbGljYXRpb24gcHJvZmlsaW5nIHB1 cnBvc2VzLi4uIHRyeWluZyB0byBpbXByb3ZlIHRoZQ0KPiBwZXJmb3JtYW5jZSBieSBzdHJpdmlu ZyBmb3IgYSBoaWdoZXIgbnVtYmVyIG9mIG9iamVjdHMgcGVyIGJ1cnN0IGluIGV2ZXJ5IHBpcGVs aW5lIHN0YWdlLg0KPiA+DQo+ID4+IEtvbnN0YW50aW4NCg0K