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 D82C642660; Thu, 28 Sep 2023 12:11:27 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 96F25402D3; Thu, 28 Sep 2023 12:11:27 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 993304029E for ; Thu, 28 Sep 2023 12:11:26 +0200 (CEST) Received: from frapeml100007.china.huawei.com (unknown [172.18.147.201]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4Rx8Ns0Pknz6K6bt; Thu, 28 Sep 2023 18:10:05 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml100007.china.huawei.com (7.182.85.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Thu, 28 Sep 2023 12:11:24 +0200 Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.031; Thu, 28 Sep 2023 12:11:24 +0200 From: Konstantin Ananyev To: "Tummala, Sivaprasad" , Konstantin Ananyev , Tyler Retzlaff , "Yigit, Ferruh" CC: Bruce Richardson , "david.hunt@intel.com" , "anatoly.burakov@intel.com" , "david.marchand@redhat.com" , "thomas@monjalon.net" , "dev@dpdk.org" Subject: RE: [PATCH v5 3/3] power: amd power monitor support Thread-Topic: [PATCH v5 3/3] power: amd power monitor support Thread-Index: AQHZ0HP+ggM1l/NZ/UiCDsaVSmY5La/tLRcAgAEN9ACAAE5lAIABYvgAgAAGjgCABtsVgIAAtWiAgABwtgCAAR1xAIACBpkAgAhMq4CAKzYagIABp3Fg Date: Thu, 28 Sep 2023 10:11:24 +0000 Message-ID: References: <20230816185959.1331336-3-sivaprasad.tummala@amd.com> <20230816192758.GA12453@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <92e7bd2e-b799-9658-c90e-f50638c6fdbd@amd.com> <35925f36-ccde-f632-8df2-f7d20e0f95cb@amd.com> <20230823160304.GA22267@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <05cb0c66-18e2-6635-6c89-b7edeb1573c5@amd.com> <20230825160050.GA16609@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <5ab56da7-ba97-ab8f-ebed-886221813e4b@yandex.ru> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.206.138.42] 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+ID4gQ2F1dGlvbjogVGhpcyBtZXNzYWdlIG9yaWdpbmF0ZWQgZnJvbSBhbiBFeHRlcm5hbCBT b3VyY2UuIFVzZSBwcm9wZXIgY2F1dGlvbg0KPiA+IHdoZW4gb3BlbmluZyBhdHRhY2htZW50cywg Y2xpY2tpbmcgbGlua3MsIG9yIHJlc3BvbmRpbmcuDQo+ID4NCj4gPg0KPiA+IDI1LzA4LzIwMjMg MTc6MDAsIFR5bGVyIFJldHpsYWZmINC/0LjRiNC10YI6DQo+ID4gPiBPbiBUaHUsIEF1ZyAyNCwg MjAyMyBhdCAxMDowNDo0MkFNICswMTAwLCBGZXJydWggWWlnaXQgd3JvdGU6DQo+ID4gPj4gT24g OC8yMy8yMDIzIDU6MDMgUE0sIFR5bGVyIFJldHpsYWZmIHdyb3RlOg0KPiA+ID4+PiBPbiBXZWQs IEF1ZyAyMywgMjAyMyBhdCAxMDoxOTozOUFNICswMTAwLCBGZXJydWggWWlnaXQgd3JvdGU6DQo+ ID4gPj4+PiBPbiA4LzIyLzIwMjMgMTE6MzAgUE0sIEtvbnN0YW50aW4gQW5hbnlldiB3cm90ZToN Cj4gPiA+Pj4+PiAxOC8wOC8yMDIzIDE0OjQ4LCBCcnVjZSBSaWNoYXJkc29uINC/0LjRiNC10YI6 DQo+ID4gPj4+Pj4+IE9uIEZyaSwgQXVnIDE4LCAyMDIzIGF0IDAyOjI1OjE0UE0gKzAxMDAsIEZl cnJ1aCBZaWdpdCB3cm90ZToNCj4gPiA+Pj4+Pj4+IE9uIDgvMTcvMjAyMyAzOjE4IFBNLCBLb25z dGFudGluIEFuYW55ZXYgd3JvdGU6DQo+ID4gPj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+IENhdXRp b246IFRoaXMgbWVzc2FnZSBvcmlnaW5hdGVkIGZyb20gYW4gRXh0ZXJuYWwgU291cmNlLiBVc2UN Cj4gPiA+Pj4+Pj4+Pj4+IHByb3BlciBjYXV0aW9uIHdoZW4gb3BlbmluZyBhdHRhY2htZW50cywg Y2xpY2tpbmcgbGlua3MsIG9yDQo+ID4gPj4+Pj4+Pj4+PiByZXNwb25kaW5nLg0KPiA+ID4+Pj4+ Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+PiBPbiBXZWQsIEF1ZyAxNiwgMjAy MyBhdCAxMTo1OTo1OUFNIC0wNzAwLCBTaXZhcHJhc2FkIFR1bW1hbGENCj4gPiB3cm90ZToNCj4g PiA+Pj4+Pj4+Pj4+PiBtd2FpdHggYWxsb3dzIEVQWUMgcHJvY2Vzc29ycyB0byBlbnRlciBhIGlt cGxlbWVudGF0aW9uDQo+ID4gPj4+Pj4+Pj4+Pj4gZGVwZW5kZW50IHBvd2VyL3BlcmZvcm1hbmNl IG9wdGltaXplZCBzdGF0ZSAoQzEgc3RhdGUpIGZvciBhDQo+ID4gPj4+Pj4+Pj4+Pj4gc3BlY2lm aWMgcGVyaW9kIG9yIHVudGlsIGEgc3RvcmUgdG8gdGhlIG1vbml0b3JlZCBhZGRyZXNzDQo+ID4g Pj4+Pj4+Pj4+Pj4gcmFuZ2UuDQo+ID4gPj4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+PiBTaWdu ZWQtb2ZmLWJ5OiBTaXZhcHJhc2FkIFR1bW1hbGENCj4gPiA+Pj4+Pj4+Pj4+PiA8c2l2YXByYXNh ZC50dW1tYWxhQGFtZC5jb20+DQo+ID4gPj4+Pj4+Pj4+Pj4gQWNrZWQtYnk6IEFuYXRvbHkgQnVy YWtvdiA8YW5hdG9seS5idXJha292QGludGVsLmNvbT4NCj4gPiA+Pj4+Pj4+Pj4+PiAtLS0NCj4g PiA+Pj4+Pj4+Pj4+PiAgICBsaWIvZWFsL3g4Ni9ydGVfcG93ZXJfaW50cmluc2ljcy5jIHwgNzcN Cj4gPiA+Pj4+Pj4+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0NCj4gPiA+Pj4+ Pj4+Pj4+PiAgICAxIGZpbGUgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25z KC0pDQo+ID4gPj4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvbGliL2Vh bC94ODYvcnRlX3Bvd2VyX2ludHJpbnNpY3MuYw0KPiA+ID4+Pj4+Pj4+Pj4+IGIvbGliL2VhbC94 ODYvcnRlX3Bvd2VyX2ludHJpbnNpY3MuYw0KPiA+ID4+Pj4+Pj4+Pj4+IGluZGV4IDZlYjllNTA4 MDcuLmI0NzU0ZTE3ZGEgMTAwNjQ0DQo+ID4gPj4+Pj4+Pj4+Pj4gLS0tIGEvbGliL2VhbC94ODYv cnRlX3Bvd2VyX2ludHJpbnNpY3MuYw0KPiA+ID4+Pj4+Pj4+Pj4+ICsrKyBiL2xpYi9lYWwveDg2 L3J0ZV9wb3dlcl9pbnRyaW5zaWNzLmMNCj4gPiA+Pj4+Pj4+Pj4+PiBAQCAtMTcsNiArMTcsNjAg QEAgc3RhdGljIHN0cnVjdCBwb3dlcl93YWl0X3N0YXR1cyB7DQo+ID4gPj4+Pj4+Pj4+Pj4gICAg ICAgICB2b2xhdGlsZSB2b2lkICptb25pdG9yX2FkZHI7IC8qKjwgTlVMTCBpZiBub3QNCj4gPiA+ Pj4+Pj4+Pj4+PiBjdXJyZW50bHkgc2xlZXBpbmcgKi8gIH0gX19ydGVfY2FjaGVfYWxpZ25lZA0K PiA+ID4+Pj4+Pj4+Pj4+IHdhaXRfc3RhdHVzW1JURV9NQVhfTENPUkVdOw0KPiA+ID4+Pj4+Pj4+ Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4gKy8qKg0KPiA+ID4+Pj4+Pj4+Pj4+ICsgKiBUaGVzZSBmdW5j dGlvbnMgdXNlcyBVTU9OSVRPUi9VTVdBSVQgaW5zdHJ1Y3Rpb25zIGFuZA0KPiA+ID4+Pj4+Pj4+ Pj4+ICt3aWxsDQo+ID4gPj4+Pj4+Pj4+Pj4gZW50ZXIgQzAuMg0KPiA+ID4+Pj4+Pj4+Pj4gc3Rh dGUuDQo+ID4gPj4+Pj4+Pj4+Pj4gKyAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHVzYWdl IG9mIHRoZXNlIGluc3RydWN0aW9ucywNCj4gPiA+Pj4+Pj4+Pj4+PiArcGxlYXNlIHJlZmVyIHRv DQo+ID4gPj4+Pj4+Pj4+Pj4gKyAqIEludGVsKFIpIDY0IGFuZCBJQS0zMiBBcmNoaXRlY3R1cmVz IFNvZnR3YXJlIERldmVsb3BlcidzDQo+ID4gTWFudWFsLg0KPiA+ID4+Pj4+Pj4+Pj4+ICsgKi8N Cj4gPiA+Pj4+Pj4+Pj4+PiArc3RhdGljIHZvaWQgaW50ZWxfdW1vbml0b3Iodm9sYXRpbGUgdm9p ZCAqYWRkcikgew0KPiA+ID4+Pj4+Pj4+Pj4+ICsgICAgIC8qIFVNT05JVE9SICovDQo+ID4gPj4+ Pj4+Pj4+Pj4gKyAgICAgYXNtIHZvbGF0aWxlKCIuYnl0ZSAweGYzLCAweDBmLCAweGFlLCAweGY3 OyINCj4gPiA+Pj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgOg0KPiA+ID4+Pj4+Pj4+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICA6ICJEIihhZGRyKSk7IH0NCj4gPiA+Pj4+Pj4+Pj4+ PiArDQo+ID4gPj4+Pj4+Pj4+Pj4gK3N0YXRpYyB2b2lkIGludGVsX3Vtd2FpdChjb25zdCB1aW50 NjRfdCB0aW1lb3V0KSB7DQo+ID4gPj4+Pj4+Pj4+Pj4gKyAgICAgY29uc3QgdWludDMyX3QgdHNj X2wgPSAodWludDMyX3QpdGltZW91dDsNCj4gPiA+Pj4+Pj4+Pj4+PiArICAgICBjb25zdCB1aW50 MzJfdCB0c2NfaCA9ICh1aW50MzJfdCkodGltZW91dCA+PiAzMik7DQo+ID4gPj4+Pj4+Pj4+Pj4g KyAgICAgLyogVU1XQUlUICovDQo+ID4gPj4+Pj4+Pj4+Pj4gKyAgICAgYXNtIHZvbGF0aWxlKCIu Ynl0ZSAweGYyLCAweDBmLCAweGFlLCAweGY3OyINCj4gPiA+Pj4+Pj4+Pj4+PiArICAgICAgICAg ICAgICAgICAgICAgOiAvKiBpZ25vcmUgcmZsYWdzICovDQo+ID4gPj4+Pj4+Pj4+Pj4gKyAgICAg ICAgICAgICAgICAgICAgIDogIkQiKDApLCAvKiBlbnRlciBDMC4yICovDQo+ID4gPj4+Pj4+Pj4+ Pj4gKyAgICAgICAgICAgICAgICAgICAgICJhIih0c2NfbCksICJkIih0c2NfaCkpOyB9DQo+ID4g Pj4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+Pj4gcXVlc3Rpb24gYW5kIHBlcmhhcHMgQW5hdG9seSBC dXJha292IGNhbiBjaGltZSBpbiB3aXRoIGV4cGVydGlzZS4NCj4gPiA+Pj4+Pj4+Pj4+DQo+ID4g Pj4+Pj4+Pj4+PiBnY2MvY2xhbmcgaGF2ZSBidWlsdC1pbiBpbnRyaW5zaWNzIGZvciB1bW9uaXRv ciBhbmQgdW13YWl0IGkNCj4gPiA+Pj4+Pj4+Pj4+IGJlbGlldmUgYXMgcGVyIG91ciBvdGhlciB0 aHJlYWQgb2YgZGlzY3Vzc2lvbiBpcyB0aGVyZSBhDQo+ID4gPj4+Pj4+Pj4+PiBiZW5lZml0IHRv IGFsc28gcHJvdmlkaW5nIGlubGluZSBhc3NlbWJseSBvdmVyIGp1c3QgdXNpbmcgdGhlDQo+ID4g Pj4+Pj4+Pj4+PiBpbnRyaW5zaWNzPyBJIHVuZGVyc3RhbmQgdGhhdCB0aGUgaW50cmluc2ljcyBt YXkgbm90IGV4aXN0DQo+ID4gPj4+Pj4+Pj4+PiBmb3IgdGhlIG1vbml0b3J4IGFuZCBtd2FpdHgg YmVsb3cgc28gaXQgaXMgcHJvYmFibHkgbmVjZXNzYXJ5DQo+ID4gPj4+Pj4+Pj4+PiBmb3IgYW1k Lg0KPiA+ID4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+IHNvIHRoZSBzdWdnZXN0aW9uIGhlcmUg aXMgd2hlbiB0aGV5IGFyZSBhdmFpbGFibGUganVzdCB1c2UNCj4gPiA+Pj4+Pj4+Pj4+IHRoZSBp bnRyaW5zaWNzLg0KPiA+ID4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+IHRoYW5rcw0KPiA+ID4+ Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4gVGhlIGdjYyBidWlsdC1pbiBmdW5jdGlvbnMNCj4gPiA+ Pj4+Pj4+Pj4gX19idWlsdGluX2lhMzJfbW9uaXRvcngoKS9fX2J1aWx0aW5faWEzMl9td2FpdHgg YXJlIGF2YWlsYWJsZQ0KPiA+ID4+Pj4+Pj4+PiBvbmx5IHdoZW4gLW1td2FpdHggaXMgdXNlZCBz cGVjaWZpYyBmb3IgQU1EIHBsYXRmb3Jtcy4gT24NCj4gPiA+Pj4+Pj4+Pj4gZ2VuZXJpYyBidWls ZHMsIHRoZXNlIGJ1aWx0LWlucyBhcmUgbm90IGF2YWlsYWJsZSBhbmQgaGVuY2UNCj4gPiA+Pj4+ Pj4+Pj4gaW5saW5lIGFzc2VtYmx5IGlzIHJlcXVpcmVkIGhlcmUuDQo+ID4gPj4+Pj4+Pj4NCj4g PiA+Pj4+Pj4+PiBPay4uLiBidXQgd2UgY2FuIHByb2JhYmx5IHB1dCB0aGVtIGludG8gYSBzZXBh cmF0ZSAuYyBmaWxlIHRoYXQNCj4gPiA+Pj4+Pj4+PiB3aWxsIGJlIGNvbXBpbGVkIHdpdGggdGhh dCBzcGVjaWZpYyBmbGFnPw0KPiA+ID4+Pj4+Pj4+IFNhbWUgdGhpbmcgY2FuIGJlIHByb2JhYmx5 IGRvbmUgZm9yIEludGVsIHNwZWNpZmljIGluc3RydWN0aW9ucy4NCj4gPiA+Pj4+Pj4+PiBJbiBn ZW5lcmFsLCBJIHRoaW5rIGl0IGlzIG11Y2ggbW9yZSBwcmVmZXJhYmxlIHRvIHVzZSBidWlsdC1p bnMNCj4gPiA+Pj4+Pj4+PiB2cyBpbmxpbmUgYXNzZW1ibHkgKGlmIHBvc3NpYmxlIG9mZi1jb3Vy c2UpLg0KPiA+ID4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4gV2UgZG9uJ3QgY29t cGlsZSBkaWZmZXJlbnQgc2V0IG9mIGZpbGVzIGZvciBBTUQgYW5kIEludGVsLCBidXQNCj4gPiA+ Pj4+Pj4+IHRoZXJlIGFyZSBydW50aW1lIGNoZWNrcywgc28gcHV0dGluZyBpbnRvIHNlcGFyYXRl IGZpbGUgaXMgbm90IG11Y2gNCj4gPiBkaWZmZXJlbnQuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBX ZWxsLCB3ZSBwcm9iYWJseSBkb24ndCBjb21waWxlIC5jIGZpbGVzIGZvciBwYXJ0aWN1bGFyIHZl bmRvciwNCj4gPiA+Pj4+PiBidXQgd2UgZGVmaW5pdGVseSBkbyBjb21waWxlIHNvbWUgLmMgZmls ZXMgZm9yIHBhcnRpY3VsYXIgSVNBIGV4dGVuc2lvbnMuDQo+ID4gPj4+Pj4gTGV0IHNheSB0aGVy ZSBhcmUgZmlsZXMgaW4gbGliL2FjbCB0aGF0IHJlcXVpcmVzIHZhcmlvdXMgJy1tYXZ4NTEyKicN Cj4gPiA+Pj4+PiBmbGFncywgc2FtZSBmb3Igb3RoZXIgbGlicyBhbmQgUE1Ecy4NCj4gPiA+Pj4+ PiBTbyBzdGlsbCBub3QgY2xlYXIgdG8gbWUgd2h5IHNhbWUgYXBwcm9hY2ggY2FuJ3QgYmUgYXBw bGllZCB0bw0KPiA+ID4+Pj4+IHBvd2VyX2luc3RyaW5jdHMuYz8NCj4gPiA+Pj4+Pg0KPiA+ID4+ Pj4+Pj4NCj4gPiA+Pj4+Pj4+IEl0IG1heSBiZSBhbiBvcHRpb24gdG8gYWx3YXlzIGVuYWJsZSBj b21waWxlciBmbGFnICgtbW13YWl0eCksIEkNCj4gPiA+Pj4+Pj4+IHRoaW5rIGl0IHdvbid0IGh1 cnQgb3RoZXIgcGxhdGZvcm1zIGJ1dCBJIGFtIG5vdCBzdXJlIGFib3V0DQo+ID4gPj4+Pj4+PiBp bXBsaWNhdGlvbnMgb2YgdGhpcyB0byBvdGhlciBwbGF0Zm9ybXMgKHdoYXQgd2FzIHRoZSBtb3Rp dmF0aW9uDQo+ID4gPj4+Pj4+PiBmb3IgdGhlIGNvbXBpbGVyIGd1eXMgdG8gZW5hYmxlIHRoZXNl IGJ1aWxkLWlucyB3aXRoIHNwZWNpZmljIGZsYWc/KS4NCj4gPiA+Pj4+Pj4+DQo+ID4gPj4+Pj4+ PiBBbHNvIHRoaXMgcmVxdWlyZXMgZGV0ZWN0aW5nIGNvbXBpbGVyIHRoYXQgc3VwcG9ydHMgJ21t d2FpdHgnIG9yDQo+ID4gPj4+Pj4+PiBub3QsIGV0Yy4uDQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+ PiBUaGlzIGlzIHRoZSBiaWdnZXN0IHJlYXNvbiB3aHkgd2UgaGF2ZSBpbiB0aGUgcGFzdCBhZGRl ZCBzdXBwb3J0DQo+ID4gPj4+Pj4+IGZvciB0aGVzZSBpbnN0cnVjdGlvbnMgdmlhIGFzbSBieXRl cyByYXRoZXIgdGhhbiBpbnRyaW5zaWNzLiBJdA0KPiA+ID4+Pj4+PiB0YWtlcyBhIGxvbmcgdGlt ZSBmb3IgZW5kLXVzZXIgY29tcGlsZXJzLCBlc3BlY2lhbGx5IHRob3NlIGluIExUUw0KPiA+ID4+ Pj4+PiByZWxlYXNlcywgdG8gZ2V0IHRoZSBuZWNlc3NhcnkgaW50cmluc2ljcy4NCj4gPiA+Pj4+ Pg0KPiA+ID4+Pj4+IFllcCwgdW5kZXJzdGFuZC4NCj4gPiA+Pj4+PiBCdXQgd2h5IHRoZW4gd2Ug Y2FuJ3QgaGF2ZSBib3RoIGltcGxlbWVudGF0aW9ucz8NCj4gPiA+Pj4+PiBMZXQgc2F5IGlmIFdB SVRQS0cgaXMgZGVmaW5lZCB3ZSBjYW4gdXNlIGJ1aWx0aW5zIGZvcg0KPiA+ID4+Pj4+IHVtb25p dG9yL3Vtd2FpdC90cGF1c2UsIG90aGVyd2lzZSB3ZSBmYWxsYmFjayB0byBpbmxpbmUgYXNtDQo+ ID4gaW1wbGVtZW50YXRpb24uDQo+ID4gPj4+Pj4gU2FtZSBzdG9yeSBmb3IgTVdBSVRYL21vbml0 b3J4Lg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gWWVzIHRoaXMgY2FuIGJlIGRvbmUs DQo+ID4gPj4+PiBpdCBjYW4gYmUgZG9uZSBlaXRoZXIgYXMgZGlmZmVyZW50IC5jIGZpbGVzIHBl ciBpbXBsZW1lbnRhdGlvbiwgb3INCj4gPiA+Pj4+IGFzICNpZmRlZiBpbiBzYW1lIGZpbGUuDQo+ ID4gPj4+Pg0KPiA+ID4+Pj4gQnV0IGV2ZW50dWFsbHkgYXNtIGltcGxlbWVudGF0aW9uIGlzIHJl cXVpcmVkLCBhcyBmYWxsYmFjaywgYW5kIGlmDQo+ID4gPj4+PiB3ZSB3aWxsIHJlbHkgb24gYXNt IGltcGxlbWVudGF0aW9uIGFueXdheSwgZG9lcyBpdCB3b3J0aCB0byBoYXZlDQo+ID4gPj4+PiB0 aGUgYWRkaXRpb25hbCBjaGVja3MgdG8gYmUgYWJsZSB0byB1c2UgYnVpbHQtaW4gaW50cmluc2lj Pw0KPiA+ID4+Pj4NCj4gPiA+Pj4+IERvZXMgaXQgaGVscHMgdG8gY29tbWVudCBuYW1lIG9mIHRo ZSBidWlsdC1pbiBmdW5jdGlvbiB0byBpbmxpbmUNCj4gPiA+Pj4+IGFzc2VtYmx5IGNvZGUsIHRv IGRvY3VtZW50IGludGVudGlvbiBhbmQgYW5vdGhlciBwb3NzaWJsZQ0KPiA+IGltcGxlbWVudGF0 aW9uPw0KPiA+ID4+Pg0KPiA+ID4+PiB0aGUgbWFpbiB2YWx1ZSBvZiBwcmVmZXJyaW5nIGludHJp bnNpY3MgaXMgdGhhdCB3aGVuIHRoZXkgYXJlDQo+ID4gPj4+IGF2YWlsYWJsZSB0aGV5IGFsc28g d29yayB3aXRoIG1zdmMvd2luZG93cy4gdGhlIG1zdmMgdG9vbGNoYWluIGRvZXMNCj4gPiA+Pj4g bm90IHN1cHBvcnQgaW5saW5lIGFzbS4gc28gc29tZSBvZiB0aGUgdGFyZ2V0cyBoYXZlIHRvIHVz ZQ0KPiA+ID4+PiBpbnRyaW5zaWNzIGJlY2F1c2UgdGhhdCdzIGFsbCB0aGVyZSBpcy4NCj4gPiA+ Pj4NCj4gPiA+Pg0KPiA+ID4+IEhvdyB3aW5kb3dzIGhhbmRsZXMgY3VycmVudCBwb3dlciBBUElz IHdpdGhvdXQgaW5saW5lIGFzbSBzdXBwb3J0LA0KPiA+ID4+IGxpa2UgcnRlX3Bvd2VyX2ludHJp bnNpY3MuYyBvbmU/DQo+ID4gPg0KPiA+ID4gc28gdGhpcyBpcyBhIHdpbmRvd3MgdnMgdG9vbGNo YWluIGVudGFuZ2xlbWVudC4NCj4gPiA+DQo+ID4gPj4gQWxzbyB3aWxsIHVzaW5nIGJvdGggYnVp bHQtaW4gYW5kIGlubGluZSBhc3NlbWJseSB3b3JrIGZvciBXaW5kb3dzLA0KPiA+ID4+IHNpbmNl IHRoZXJlIG1heSBiZSBjb21waWxlciB2ZXJzaW9ucyB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBidWls dC1pbg0KPiA+ID4+IGZ1bmN0aW9ucywgdGhleSBzaG91bGQgZGlzYWJsZSBBUElzIGFsdG9nZXRo ZXIsIGFuZCB0aGlzIGNhbiBjcmVhdGUgYQ0KPiA+ID4+IHNjZW5hcmlvIHRoYXQgbGlzdCBvZiBl eHBvc2VkIEFQSXMgY2hhbmdlcyBiYXNlZCBvbiBjb21waWxlciB2ZXJzaW9uLg0KPiA+ID4NCj4g PiA+IHNvIEkgZG9uJ3QgaW50ZW5kIHRvIGRpc2FibGUgYXBpcywgdGhlcmVzIHVzdWFsbHkgYSB3 YXkgdG8gbWFrZSB0aGVtDQo+ID4gPiB3b3JrIGFuZCB0aGVyZSBzaG91bGQgbm90IGJlIGFueSBh cGkgY2hhbmdlcyB3aGVuIGRvbmUgY29ycmVjdGx5Lg0KPiA+ID4NCj4gPiA+IHdpbmRvd3MvY2xh bmcvbWluZ3cNCj4gPiA+ICAgICAgKiBpbmxpbmUgYXNtIG1heSBiZSB1c2VkLCBidXQgZm9yIG1l IGlzbid0IHByZWZlcnJlZA0KPiA+ID4NCj4gPiA+IHdpbmRvd3MvbXN2Yw0KPiA+ID4gICAgICAq IGludHJpbnNpY3MgKHdoZW4gYXZhaWxhYmxlKQ0KPiA+ID4gICAgICAqIG5vbi1pbmxpbmUgYXNt IGluIGEgLnMgKHdoZW4gbm8gaW50cmluc2ljcyBhdmFpbGFibGUpDQo+ID4gPiAgICAgICoga2Vl cGluZyBpbiBtaW5kIHRoYXQgdGhlIGNvbXBpbGVyIHZlcnNpb24gaXNuJ3QgdGllZCB0byB3aW5k b3dzDQo+ID4gPiAgICAgICAgT1MgcmVsZWFzZSBzbyBpdCdzIGVhc2llciBmb3IgbWUgdG8gZG9j dW1lbnQgdGhhdCB5b3UgbmVlZCBhDQo+ID4gPiAgICAgICAgbmV3ZXIgY29tcGlsZXIgYXJiaXRy YXJpbHkuIFRoZSBwZXJpb2RzIHdoZXJlIHRoZXJlIGFyZSBubyBpbnRyaW5zaWNzDQo+ID4gPiAg ICAgICAgZW5kIHVwIGJlaW5nIHNob3J0LWxpdmVkLg0KPiA+ID4NCj4gPiA+IEknbSBvbiB0aGUg aG9vayBmb3Igd2luZG93cy9tc3ZjIGFueSBzdGlja3luZXNzIGRlYWxpbmcgd2l0aCBpdCBlbmRz DQo+ID4gPiB1cCBiZWluZyBteSBwcm9ibGVtLg0KPiA+DQo+ID4gQXMgSSBjYW4gcmVhZCBydGVf cG93ZXJfaW5zdHJpbnRjdHMuYywgZm9yIGVhY2ggc2V0IG9mIHBvd2VyIGluc3RydWN0aW9ucyB3 ZSBoYXZlDQo+ID4gcmVsYXRlZCBzdGF0aWMgdmFyaWFibGU6IHdhaXQqX3N1cHBvcnRlZC4NCj4g PiBTbyBpZiB3ZSBuZWVkIHRvIHN1cHBvcnQgY29tcGlsZXIgdGhhdCBzdXBwb3J0cyBuZWl0aGVy IG5ldyBidWx0aW5zIG5vciBpbmxpbmUtYXNtLA0KPiA+IHRoZW4gaXQgcHJvYmFibHkgcG9zc2li bGUgdG8gcmVhcnJhbmdlIHRoZSBjb2RlIHRvIGtlZXAgdGhlc2Ugc3RhdGljIHZhcnMgZXF1YWwg emVybw0KPiA+IGZvciBzdWNoIGNhc2UuDQo+ID4NCj4gS29uc3RhbnRpbiwNCj4gSSBwcmVmZXJy ZWQgdG8gdXNlIHRoZSBpbmxpbmUgYXNtIGZvciB0aGUgbmV3IHBvd2VyIGluc3RydWN0aW9ucyB3 aXRoIHRoaXMgcGF0Y2ggZHVlIHRvOg0KPiAxLiBidWlsdGlucyBtYXkgbm90IGFsd2F5cyBhdmFp bGFibGUgYmFzZWQgb24gY29tcGlsZXIgdmVyc2lvbnMNCj4gMi4gYWRkaXRpb25hbCBjb21wbGV4 aXR5IHdpdGggdmVyc2lvbmluZyBjaGVja3MNCg0KSSBkb24ndCB0aGluayB3ZSdsbCBuZWVkIHRv IG1vY2sgd2l0aCB2ZXJzaW9uIG51bWJlcnMgZXRjLg0KQUZBSUssIGVhY2ggc3VjaCBmZWF0dXJl IGFzIGNvcnJlc3BvbmRpbmcgZGVmaW5lLCBpLmUuOg0KSWYgV0FJVFBLRyBpcyBkZWZpbmVkIHdl IGNhbiB1c2UgYnVpbHRpbnMgZm9yIHVtb25pdG9yL3Vtd2FpdC90cGF1c2UsDQpJZiBNV0FJVFgg aXMgZGVmaW5lZCB3ZSBjYW4gdXNlIG13YWl0eC9tb25pdG9yeCwgZXRjLg0KDQo+IDMuIG5vIGFk ZGl0aW9uYWwgcGVyZm9ybWFuY2UgYmVuZWZpdA0KPiBBcyBhbiBpbXByb3ZlbWVudCwgd2lsbCBh ZGQgYnVpbHRpbnMgc3VwcG9ydCBnbG9iYWxseSBpbiBhIHNlcGFyYXRlIHBhdGNoIGxhdGVyLg0K DQpXb3JrcyBmb3IgbWUsIGFzIGxvbmcgYXMgd2Ugd291bGRuJ3QgZm9yZ2V0IHRvIGRvIGl0IGlu IGZ1dHVyZS4gDQoNCiANCj4gPg0KPiA+ID4NCj4gPiA+Pg0KPiA+ID4+Pj4NCj4gPiA+Pj4+Pj4g Q29uc2lkZXIgYSB1c2VyIHJ1bm5pbmcgZS5nLiBSSEVMIDgsIHdobyB3YW50cyB0byB0YWtlIGFk dmFudGFnZXMNCj4gPiA+Pj4+Pj4gb2YgdGhlIGxhdGVzdCBEUERLIGZlYXR1cmVzOyB0aGV5IHNo b3VsZCBub3QgYmUgcmVxdWlyZWQgdG8NCj4gPiA+Pj4+Pj4gdXBncmFkZSB0aGVpciBjb21waWxl ciAtIGFuZCBwb3NzaWJseSBiaW51dGlscy9hc3NlbWJsZXIgLSB0byBkbyBzby4NCj4gPiA+Pj4+ Pj4NCj4gPiA+Pj4+Pj4gL0JydWNlDQo+ID4gPj4+Pj4NCg0K