From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 69AFBA2EEB for ; Tue, 10 Sep 2019 13:41:45 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1E00A1C1BA; Tue, 10 Sep 2019 13:41:45 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id C01E91BECD for ; Tue, 10 Sep 2019 13:41:42 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Sep 2019 04:41:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,489,1559545200"; d="scan'208";a="186827572" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga003.jf.intel.com with ESMTP; 10 Sep 2019 04:41:41 -0700 Received: from fmsmsx156.amr.corp.intel.com (10.18.116.74) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 10 Sep 2019 04:41:41 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by fmsmsx156.amr.corp.intel.com (10.18.116.74) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 10 Sep 2019 04:41:41 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.113]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.32]) with mapi id 14.03.0439.000; Tue, 10 Sep 2019 19:41:39 +0800 From: "Wang, Haiyue" To: "Yigit, Ferruh" , "Richardson, Bruce" CC: Ray Kinsella , "dev@dpdk.org" , "Sun, Chenmin" Thread-Topic: [dpdk-dev] [RFC v2 1/3] ethdev: add the API for getting trace information Thread-Index: AQHVUYTDT/0YGy+MOU67JpkccwCfnab35B0AgACeXoCAJdFBAIABT/vQgAM1LQCAABWGAIAAAtKAgAAHf4CAAYRhMP//tyMAgACHaSD//4uOAIAAqB1A Date: Tue, 10 Sep 2019 11:41:38 +0000 Message-ID: References: <1565665572-65495-1-git-send-email-haiyue.wang@intel.com> <1565665572-65495-2-git-send-email-haiyue.wang@intel.com> <20190812202436.662e6ca8@hermes.lan> <75f88e4b-97ca-7e1f-1385-8e69f659be7f@intel.com> <20190909124038.GA1889@bricha3-MOBL.ger.corp.intel.com> <8268b844-2815-5e0d-87cf-c6e9ca5c9f34@intel.com> <4672dfa1-a553-28fc-686e-1e14186a040a@intel.com> In-Reply-To: <4672dfa1-a553-28fc-686e-1e14186a040a@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMjlhMjJkNGQtZmQ3Ni00NzlmLTljMmQtOWIxMDBkZDk5MmRhIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoidElreVlrc0VhOWliS1wvd3ZkVVQ3dWZZN0wwQmtXbUFUdkJiZWw5dXExa1krUWFcL3BUNE9rc1AxRkx4OXRCN1QzIn0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC v2 1/3] ethdev: add the API for getting trace information X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBZaWdpdCwgRmVycnVoDQo+IFNl bnQ6IFR1ZXNkYXksIFNlcHRlbWJlciAxMCwgMjAxOSAxNzoxNQ0KPiBUbzogV2FuZywgSGFpeXVl IDxoYWl5dWUud2FuZ0BpbnRlbC5jb20+OyBSaWNoYXJkc29uLCBCcnVjZSA8YnJ1Y2UucmljaGFy ZHNvbkBpbnRlbC5jb20+DQo+IENjOiBSYXkgS2luc2VsbGEgPG1kckBhc2hyb2UuZXU+OyBkZXZA ZHBkay5vcmc7IFN1biwgQ2hlbm1pbiA8Y2hlbm1pbi5zdW5AaW50ZWwuY29tPg0KPiBTdWJqZWN0 OiBSZTogW2RwZGstZGV2XSBbUkZDIHYyIDEvM10gZXRoZGV2OiBhZGQgdGhlIEFQSSBmb3IgZ2V0 dGluZyB0cmFjZSBpbmZvcm1hdGlvbg0KPiANCj4gT24gOS8xMC8yMDE5IDk6MzcgQU0sIFdhbmcs IEhhaXl1ZSB3cm90ZToNCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJv bTogWWlnaXQsIEZlcnJ1aA0KPiA+PiBTZW50OiBUdWVzZGF5LCBTZXB0ZW1iZXIgMTAsIDIwMTkg MTY6MDcNCj4gPj4gVG86IFdhbmcsIEhhaXl1ZSA8aGFpeXVlLndhbmdAaW50ZWwuY29tPjsgUmlj aGFyZHNvbiwgQnJ1Y2UgPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPg0KPiA+PiBDYzogUmF5 IEtpbnNlbGxhIDxtZHJAYXNocm9lLmV1PjsgZGV2QGRwZGsub3JnOyBTdW4sIENoZW5taW4gPGNo ZW5taW4uc3VuQGludGVsLmNvbT4NCj4gPj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1JGQyB2 MiAxLzNdIGV0aGRldjogYWRkIHRoZSBBUEkgZm9yIGdldHRpbmcgdHJhY2UgaW5mb3JtYXRpb24N Cj4gPj4NCj4gPj4gT24gOS8xMC8yMDE5IDU6MzYgQU0sIFdhbmcsIEhhaXl1ZSB3cm90ZToNCj4g Pj4+IFRoYW5rcyBGZXJydWgsIEJydWNlLg0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IFlpZ2l0LCBGZXJydWgNCj4gPj4+PiBTZW50OiBNb25k YXksIFNlcHRlbWJlciA5LCAyMDE5IDIxOjE4DQo+ID4+Pj4gVG86IFJpY2hhcmRzb24sIEJydWNl IDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT4NCj4gPj4+PiBDYzogV2FuZywgSGFpeXVlIDxo YWl5dWUud2FuZ0BpbnRlbC5jb20+OyBSYXkgS2luc2VsbGEgPG1kckBhc2hyb2UuZXU+OyBkZXZA ZHBkay5vcmc7IFN1biwNCj4gQ2hlbm1pbg0KPiA+Pj4+IDxjaGVubWluLnN1bkBpbnRlbC5jb20+ DQo+ID4+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1JGQyB2MiAxLzNdIGV0aGRldjogYWRk IHRoZSBBUEkgZm9yIGdldHRpbmcgdHJhY2UgaW5mb3JtYXRpb24NCj4gPj4+Pg0KPiA+Pj4+IE9u IDkvOS8yMDE5IDE6NTAgUE0sIEZlcnJ1aCBZaWdpdCB3cm90ZToNCj4gPj4+Pj4gT24gOS85LzIw MTkgMTo0MCBQTSwgQnJ1Y2UgUmljaGFyZHNvbiB3cm90ZToNCj4gPj4+Pj4+IE9uIE1vbiwgU2Vw IDA5LCAyMDE5IGF0IDEyOjIzOjM2UE0gKzAxMDAsIEZlcnJ1aCBZaWdpdCB3cm90ZToNCj4gPj4+ Pj4+PiBPbiA5LzcvMjAxOSAzOjQyIEFNLCBXYW5nLCBIYWl5dWUgd3JvdGU6DQo+ID4+Pj4+Pj4+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4+Pj4gRnJvbTogWWlnaXQsIEZl cnJ1aA0KPiA+Pj4+Pj4+Pj4gU2VudDogRnJpZGF5LCBTZXB0ZW1iZXIgNiwgMjAxOSAyMjoyMg0K PiA+Pj4+Pj4+Pj4gVG86IFJheSBLaW5zZWxsYSA8bWRyQGFzaHJvZS5ldT47IFdhbmcsIEhhaXl1 ZSA8aGFpeXVlLndhbmdAaW50ZWwuY29tPg0KPiA+Pj4+Pj4+Pj4gQ2M6IGRldkBkcGRrLm9yZw0K PiA+Pj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1JGQyB2MiAxLzNdIGV0aGRldjog YWRkIHRoZSBBUEkgZm9yIGdldHRpbmcgdHJhY2UgaW5mb3JtYXRpb24NCj4gPj4+Pj4+Pj4+DQo+ ID4+Pj4+Pj4+PiBPbiA4LzEzLzIwMTkgMTo1MSBQTSwgUmF5IEtpbnNlbGxhIHdyb3RlOg0KPiA+ Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBPbiAxMy8wOC8yMDE5IDA0OjI0 LCBTdGVwaGVuIEhlbW1pbmdlciB3cm90ZToNCj4gPj4+Pj4+Pj4+Pj4gT24gVHVlLCAxMyBBdWcg MjAxOSAxMTowNjoxMCArMDgwMA0KPiA+Pj4+Pj4+Pj4+PiBIYWl5dWUgV2FuZyA8aGFpeXVlLndh bmdAaW50ZWwuY29tPiB3cm90ZToNCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IEVuaGFu Y2UgdGhlIFBNRCB0byBzdXBwb3J0IHJldHJpZXZpbmcgdHJhY2UgaW5mb3JtYXRpb24gbGlrZQ0K PiA+Pj4+Pj4+Pj4+Pj4gUngvVHggYnVyc3Qgc2VsZWN0aW9uIGV0Yy4NCj4gPj4+Pj4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBIYWl5dWUgV2FuZyA8aGFpeXVlLndhbmdA aW50ZWwuY29tPg0KPiA+Pj4+Pj4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4+Pj4+PiAgbGliL2xpYnJ0 ZV9ldGhkZXYvcnRlX2V0aGRldi5jICAgICAgfCAxOCArKysrKysrKysrKysrKysrKysNCj4gPj4+ Pj4+Pj4+Pj4+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2LmggICAgICB8ICA5ICsrKysr KysrKw0KPiA+Pj4+Pj4+Pj4+Pj4gIGxpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXZfY29yZS5o IHwgIDQgKysrKw0KPiA+Pj4+Pj4+Pj4+Pj4gIDMgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9u cygrKQ0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWIvbGli cnRlX2V0aGRldi9ydGVfZXRoZGV2LmMgYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2LmMN Cj4gPj4+Pj4+Pj4+Pj4+IGluZGV4IDE3ZDE4M2UuLjYwOThmYWQgMTAwNjQ0DQo+ID4+Pj4+Pj4+ Pj4+PiAtLS0gYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2LmMNCj4gPj4+Pj4+Pj4+Pj4+ ICsrKyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuYw0KPiA+Pj4+Pj4+Pj4+Pj4gQEAg LTQwODMsNiArNDA4MywyNCBAQCBydGVfZXRoX3R4X3F1ZXVlX2luZm9fZ2V0KHVpbnQxNl90IHBv cnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiA+Pj4+Pj4+Pj4+Pj4gIH0NCj4gPj4+Pj4+Pj4+ Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiAgaW50DQo+ID4+Pj4+Pj4+Pj4+PiArcnRlX2V0aF90cmFjZV9p bmZvX2dldCh1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gPj4+Pj4+Pj4+ Pj4+ICsJCSAgICAgICBlbnVtIHJ0ZV9ldGhfdHJhY2UgdHlwZSwgY2hhciAqYnVmLCBpbnQgc3op DQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gQmV0dGVyIHRvIHVzZSBzdHJ1Y3QgYXMgYXJndW1l bnQgaW5zdGVhZCBvZiBpbmRpdmlkdWFsIHZhcmlhYmxlcyBiZWNhdXNlIGl0IGlzDQo+ID4+Pj4+ Pj4+PiBlYXNpZXIgdG8gZXh0ZW5kIHRoZSBzdHJ1Y3QgbGF0ZXIgaWYgbmVlZGVkLg0KPiA+Pj4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+ICt7DQo+ID4+Pj4+Pj4+Pj4+PiArCXN0cnVjdCBydGVfZXRo X2RldiAqZGV2Ow0KPiA+Pj4+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4+Pj4gKwlSVEVfRVRIX1ZB TElEX1BPUlRJRF9PUl9FUlJfUkVUKHBvcnRfaWQsIC1FTk9ERVYpOw0KPiA+Pj4+Pj4+Pj4+Pj4g Kw0KPiA+Pj4+Pj4+Pj4+Pj4gKwlpZiAoYnVmID09IE5VTEwpDQo+ID4+Pj4+Pj4+Pj4+PiArCQly ZXR1cm4gLUVJTlZBTDsNCj4gPj4+Pj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+Pj4+ICsJZGV2ID0g JnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gPj4+Pj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+ Pj4+ICsJUlRFX0ZVTkNfUFRSX09SX0VSUl9SRVQoKmRldi0+ZGV2X29wcy0+dHJhY2VfaW5mb19n ZXQsIC1FTk9UU1VQKTsNCj4gPj4+Pj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+Pj4+ICsJcmV0dXJu IGRldi0+ZGV2X29wcy0+dHJhY2VfaW5mb19nZXQoZGV2LCBxdWV1ZV9pZCwgdHlwZSwgYnVmLCBz eik7DQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IFdoYXQgaWYgcXVldWVpZCBpcyBvdXQg b2YgYm91bmRzPw0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBUaGUgYmlnZ2VyIHByb2Js ZW0gaXMgdGhhdCB0aGlzIGluZm9ybWF0aW9uIGlzIGxpa2UgYSBsb2cgbWVzc2FnZQ0KPiA+Pj4+ Pj4+Pj4+PiBhbmQgdW5zdHJ1Y3R1cmVkLCB3aGljaCBtYWtlcyBpdCBkZXZpY2Ugc3BlY2lmaWMg YW5kIHVzZWxlc3MgZm9yIGF1dG9tYXRpb24uDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBJ TUhPIC0gdGhpcyBpcyBtdWNoIGJldHRlciBpbXBsZW1lbnRlZCBhcyBhIGNhcGFiaWxpdHkgYml0 ZmllbGQsIHRoYXQNCj4gPj4+Pj4+Pj4+PiBjYW4gYmUgcXVlcmllZC4NCj4gPj4+Pj4+Pj4+DQo+ ID4+Pj4+Pj4+PiArMSB0byByZXR1cm4gdGhlIGRhdGFwYXRoIGNhcGFiaWxpdHkgYXMgYml0Zmll bGQuDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gQWxzbyArMSB0byBoYXZlIGEgbmV3IEFQSSwN Cj4gPj4+Pj4+Pj4+IC0gSSBhbSBub3Qgc3VyZSBhYm91dCB0aGUgQVBJIG5hbWUsICdydGVfZXRo X3RyYWNlX2luZm9fZ2V0KCknLCBjYW4gd2UgZmluZA0KPiA+Pj4+Pj4+Pj4gc29tZXRoaW5nIGJl dHRlciBpbnN0ZWFkIG9mICd0cmFjZScgdGhlcmUuDQo+ID4+Pj4+Pj4+PiAtIEkgdGhpbmsgd2Ug c2hvdWxkIGxpbWl0IHRoaXMgQVBJIG9ubHkgdG8gZ2V0IGN1cnJlbnQgZGF0YXBhdGggY29uZmln dXJhdGlvbiwNCj4gPj4+Pj4+Pj4+IGZvciBjbGFyaXR5IG9mIHRoZSBBUEkgZG9uJ3QgcmV0dXJu IGNhcGFiaWxpdHkgb3Igbm90IGRhdGFwYXRoIHJlbGF0ZWQgY29uZmlnLg0KPiA+Pj4+Pj4+Pj4N Cj4gPj4+Pj4+Pj4+IEFsc28gdGhpcyBpbmZvcm1hdGlvbiBub3QgYWx3YXlzIHN1cHBvcnRlZCBp biBxdWV1ZSBsZXZlbCwgd2hhdCBkbyB5b3UgdGhpbmsNCj4gPj4+Pj4+Pj4+IGhhdmluZyBhYmls aXR5IHRvIGdldCB0aGlzIGluZm9ybWF0aW9uIGluIHBvcnQgbGV2ZWwsDQo+ID4+Pj4+Pj4+PiBs aWtlIHRoaXMgQVBJIGNhbiByZXR1cm4gYSBzdHJ1Y3QsIHdoaWNoIG1heSBoYXZlIGEgZmllbGQg dGhhdCBzYXlzIGlmIHRoZQ0KPiA+Pj4+Pj4+Pj4gb3V0cHV0IGlzIGZvciBxdWV1ZSBvciBwb3J0 LCBvciB0aGlzIGNhbiBiZSBhbm90aGVyIGJpdGZpZWxkLCB3aGF0IGRvIHlvdSB0aGluaz8NCj4g Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ICNkZWZpbmUgUlhfU0NBTEFSCSgxVUxM IDwgMCkNCj4gPj4+Pj4+Pj4gI2RlZmluZSBSWF9WRUNUT1JfQVZYMiAgLi4uDQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+PiBXaGF0IGFib3V0IGhhdmluZyBSWF9WRUNUT1IgdmFsdWUsIGxhdGVyIGFub3Ro ZXIgYml0IGdyb3VwIGZvciB0aGUgZGV0YWlscyBvZg0KPiA+Pj4+Pj4+IHRoZSB2ZWN0b3JpemF0 aW9uOg0KPiA+Pj4+Pj4+IFNTRQ0KPiA+Pj4+Pj4+IEFWWDINCj4gPj4+Pj4+PiBBVlg1MTINCj4g Pj4+Pj4+PiBORU9ODQo+ID4+Pj4+Pj4gQUxUSVZFQw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gU2lu Y2UgYWJvdmUgb3B0aW9ucyBjYW4gZXhpc3QgdG9nZXRoZXIsIHdoYXQgYWJvdXQgdXNpbmcgdmFs dWVzIGZvciB0aGVtIGluc3RlYWQNCj4gPj4+Pj4+PiBvZiBiaXRmaWVsZHM/IFJlc2VydmluZyA0 IGJpdHMsIDJeNCA9IDE2LCBjYW4gYmUgZW5vdWdoIEkgdGhpbmsgZm9yIGxvbmcgdGVybS4NCj4g Pj4+Pj4+Pg0KPiA+Pj4+Pj4gUmF0aGVyIHRoYW4gaGF2aW5nIG5hbWVkIHZlY3RvciB0eXBlcywg d2UganVzdCBuZWVkIHRvIHdvcnJ5IGFib3V0IHRoZSBvbmVzDQo+ID4+Pj4+PiBmb3IgdGhlIGN1 cnJlbnQgYXJjaGl0ZWN0dXJlLiBUaGVyZWZvcmUgSSdkIHN1Z2dlc3QganVzdCB1c2luZyB2ZWN0 b3INCj4gPj4+Pj4+IHdpZHRocywgb25lIGJpdCBlYWNoIGZvciAxNkIsIDMyQiBhbmQgNjRCIHZl Y3RvciBzdXBwb3J0LiBGb3Igc3VwcG9ydGluZw0KPiA+Pj4+Pj4gbXVsdGlwbGUgdmFsdWVzLCAx NiBjb21iaW5hdGlvbnMgaXMgbm90IGVub3VnaCBmb3IgYWxsIHRoZSBwb3NzaWJpbGl0aWVzLg0K PiA+Pj4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4gdmVjdG9yIHdpZHRoIGNhbiBiZSBhbiBvcHRpb24g dG9vLCBubyBvYmplY3Rpb24gdGhlcmUuIEJ1dCB0aGlzIGlzIG9ubHkgZm9yDQo+ID4+Pj4+IGN1 cnJlbnQgY29uZmlndXJhdGlvbiwgc28gaXQgY2FuIGJlIGEgY29tYmluYXRpb24sIHdlIGhhdmUg bm93IDUgdHlwZXMgYW5kDQo+ID4+Pj4+IGFsbG9jYXRpbmcgc3BhY2UgZm9yIDE2Lg0KPiA+Pj4+ Pg0KPiA+Pj4+DQo+ID4+Pj4gY29ycmVjdGlvbjogaXQgY2FuICpub3QqIGJlIGEgY29tYmluYXRp b24NCj4gPj4+DQo+ID4+PiBJIHRoaW5rIHdlIGNhbiBtZXJnZSB0aGUgUlhfVkVDVE9SIGFuZCBU WF9WRUNUT1IgdG9nZXRoZXIsIHVzZSA2IGJpdHMgZm9yIHZlY3Rvcg0KPiA+Pj4gbW9kZSBkZXRh aWwuIEFuZCBmb3IgdmVjdG9yIHdpZHRoLCB0aGUgU1NFLCBORU9OIG5hbWUgc2hvdWxkIGluZGlj YXRlcyBpdCA/DQo+ID4+Pg0KPiA+Pj4gSSByZW5hbWVkIHRoZSBkZWZpbml0aW9ucyB0byB0cnkg dG8gbWFrZSB0aGluZ3MgY2xlYXIuDQo+ID4+Pg0KPiA+Pj4gZW51bSBydGVfZXRoX2J1cnN0X21v ZGVfb3B0aW9uIHsNCj4gPj4+IAlCVVJTVF9TQ0FMQVIgPSAoMSA8PCAwKSwNCj4gPj4+IAlCVVJT VF9WRUNUT1IgPSAoMSA8PCAxKSwNCj4gPj4+DQo+ID4+PiAJQlVSU1RfVkVDVE9SX01PREVfTUFT SyA9ICgweDNGIDw8IDIpLA0KPiA+Pj4gCUJVUlNUX0FMVElWRUMgICAgICAgICAgPSAoMSA8PCAy KSwNCj4gPj4+IAlCVVJTVF9ORU9OICAgICAgICAgICAgID0gKDIgPDwgMiksDQo+ID4+PiAJQlVS U1RfU1NFICAgICAgICAgICAgICA9ICgzIDw8IDIpLA0KPiA+Pj4gCUJVUlNUX0FWWDIgICAgICAg ICAgICAgPSAoNCA8PCAyKSwNCj4gPj4+IAlCVVJTVF9BVlg1MTIgICAgICAgICAgID0gKDUgPDwg MiksDQo+ID4+DQo+ID4+IERvIHdlIG5lZWQgdG8gaGF2ZSBiaXRmaWVsZHMgZm9yIHRoaXMsIEkg d2FzIHN1Z2dlc3RpbmcgcmVzZXJ2ZSA0IGJpdHMsIGJpdCAyLTUNCj4gPj4gKGluY2x1c2l2ZSkg YW5kIHVzZSB0aGVpciB2YWx1ZToNCj4gPj4NCj4gPj4gQlVSU1RfVkVDVE9SX01PREVfSURYICA9 IDINCj4gPj4gQlVSU1RfVkVDVE9SX01PREVfU0laRSA9IDQNCj4gPj4gQlVSU1RfVkVDVE9SX01P REVfTUFTSyA9DQo+ID4+IAkoKDEgPDwgQlVSU1RfVkVDVE9SX01PREVfU0laRSkgLSAxKSA8PCBC VVJTVF9WRUNUT1JfTU9ERV9JRFgNCj4gPj4NCj4gPj4gdmVjdG9yX21vZGUgPSAob3B0aW9ucyAm IEJVUlNUX1ZFQ1RPUl9NT0RFX01BU0spID4+IEJVUlNUX1ZFQ1RPUl9NT0RFX0lEWA0KPiA+Pg0K PiA+PiBpZiAodmVjdG9yX21vZGUgPT0gMCkgLy8gQlVSU1RfU1NFDQo+ID4+IGlmICh2ZWN0b3Jf bW9kZSA9PSAxKSAvLyBCVVJTVF9BVlgyDQo+ID4+IGlmICh2ZWN0b3JfbW9kZSA9PSAyKSAvLyBC VVJTVF9BVlg1MTINCj4gPj4gaWYgKHZlY3Rvcl9tb2RlID09IDMpIC8vIEJVUlNUX05FT04NCj4g Pj4gLi4uLg0KPiA+Pg0KPiA+PiBDYW4gYW55IHZlY3RvciBtb2RlIGJlIGNvbWJpbmF0aW9uIG9m IGFib3ZlLCBpZiBub3Qgd2h5IHVzZSBiaXRmaWVsZHM/DQo+ID4+DQo+ID4NCj4gPiBJIHVzZSBp dCBhcyB0aGlzIHRvICpzZXQqIC4uLg0KPiA+DQo+ID4gCWVsc2UgaWYgKHBrdF9idXJzdCA9PSBp NDBlX3JlY3Zfc2NhdHRlcmVkX3BrdHNfdmVjX2F2eDIpDQo+ID4gCQlvcHRpb25zID0gQlVSU1Rf VkVDVE9SIHwgQlVSU1RfQVZYMiB8IEJVUlNUX1NDQVRURVJFRDsNCj4gPiAJZWxzZSBpZiAocGt0 X2J1cnN0ID09IGk0MGVfcmVjdl9wa3RzX3ZlY19hdngyKQ0KPiA+IAkJb3B0aW9ucyA9IEJVUlNU X1ZFQ1RPUiB8IEJVUlNUX0FWWDI7DQo+ID4gCWVsc2UgaWYgKHBrdF9idXJzdCA9PSBpNDBlX3Jl Y3Zfc2NhdHRlcmVkX3BrdHNfdmVjKQ0KPiA+IAkJb3B0aW9ucyA9IEJVUlNUX1ZFQ1RPUiB8IEJV UlNUX1NTRSB8IEJVUlNUX1NDQVRURVJFRDsNCj4gPiAJZWxzZSBpZiAocGt0X2J1cnN0ID09IGk0 MGVfcmVjdl9wa3RzX3ZlYykNCj4gPiAJCW9wdGlvbnMgPSBCVVJTVF9WRUNUT1IgfCBCVVJTVF9T U0U7DQo+ID4NCj4gPiBUaGVuICpnZXQqIGxpa2UgdGhpcywgc2luY2Ugd2UgcmVzZXJ2ZSB0aGUg Yml0IGdyb3VwLg0KPiA+DQo+ID4gc3RhdGljIHZvaWQNCj4gPiBidXJzdF9tb2RlX29wdGlvbnNf ZGlzcGxheSh1aW50NjRfdCBvcHRpb25zKQ0KPiA+IHsNCj4gPiAJdWludDY0X3QgdmVjX21vZGUg PSBvcHRpb25zICYgQlVSU1RfVkVDVE9SX01PREVfTUFTSzsNCj4gPiAJdWludDY0X3Qgb3B0Ow0K PiA+DQo+ID4gCW9wdGlvbnMgJj0gfkJVUlNUX1ZFQ1RPUl9NT0RFX01BU0s7DQo+ID4NCj4gPiAJ Zm9yIChvcHQgPSAxOyBvcHRpb25zICE9IDA7IG9wdCA8PD0gMSwgb3B0aW9ucyA+Pj0gMSkgew0K PiA+IAkJaWYgKCEob3B0aW9ucyAmIDEpKQ0KPiA+IAkJCWNvbnRpbnVlOw0KPiA+DQo+ID4gCQlw cmludGYoIiAlcyIsIHJ0ZV9ldGhfYnVyc3RfbW9kZV9vcHRpb25fbmFtZShvcHQpKTsNCj4gPg0K PiA+IAkJaWYgKG9wdCA9PSBCVVJTVF9WRUNUT1IpDQo+ID4gCQkJcHJpbnRmKCIoJXMpIiwNCj4g PiAJCQkgICAgICAgcnRlX2V0aF9idXJzdF9tb2RlX29wdGlvbl9uYW1lKHZlY19tb2RlKSk7DQo+ ID4gCX0NCj4gPiB9DQo+ID4NCj4gDQo+IEkgY2FuIHNlZSBob3cgeW91IGludGVuZGVkIHVzZSBp dCwgb25seSB0aGV5IGRvbid0IG5lZWQgdG8gYmUgYml0ZmllbGQgYW5kIHVzaW5nDQo+IHdpdGgg dmFsdWUgc2F2ZXMgYml0cy4NCj4gQWxzbyBJIHRoaW5rIGdvb2QgdG8gcmVzZXJ2ZSBzb21lIGJp dHMgZm9yIGZ1dHVyZSBtb2Rlcy4NCj4gDQoNCiJCVVJTVF9WRUNUT1JfTU9ERV9NQVNLID0gKDB4 M0YgPDwgMikiIGhhcyByZXNlcnZlZCA2MyBub24temVybyBiaXRzIG9uIHBvc2l0aW9uIDIgfiA3 Lg0KVGhlbiBmcm9tIGJpdCA4LCBhIG5ldyBkZWZpbml0aW9uOiBCVVJTVF9TQ0FUVEVSRUQgPSAo MSA8PCA4KS4NCg0KInVzaW5nIHdpdGggdmFsdWUgc2F2ZXMgYml0cyIgLS0gU29ycnksIEkgZGlk bid0IGdldCB0aGUgcG9pbnQuIDotKA0KdmVjdG9yX21vZGUgPSAob3B0aW9ucyAmIEJVUlNUX1ZF Q1RPUl9NT0RFX01BU0spID4+IEJVUlNUX1ZFQ1RPUl9NT0RFX0lEWA0KDQpGcm9tIGFib3ZlLCAn dmVjdG9yX21vZGUncyBiaXRzIGFyZSBmcm9tICdvcHRpb25zJyBiaXRzIHN0cmVhbSwgaG93IHRv IHNhdmUgYml0cyA/DQpJbiBteSB1bmRlcnN0YW5kaW5nLCB0aGlzIGlzIHNvbWUga2luZCBvZiBt b3JlLWJpdC1maWVsZCwgbm90IGVhY2gtYml0LWZpZWxkLg0KDQpJIGRlZmluZWQgdGhlbSB0b2dl dGhlciwgc28gY2FuIHF1aWNrIGNoZWNrIHRoZSB2ZWN0b3IgdHlwZSwgbGlrZQ0KKG9wdGlvbnMg JiBCVVJTVF9WRUNUT1JfTU9ERV9NQVNLKSA9PSBCVVJTVF9ORU9OLg0KDQo+ID4+DQo+ID4+Pg0K PiA+Pj4gCUJVUlNUX1NDQVRURVJFRCA9ICgxIDw8IDgpLA0KPiA+Pj4gCUJVUlNUX0JVTEtfQUxM T0MgPSAoMSA8PCA5KSwNCj4gPj4+IAlCVVJTVF9OT1JNQUwgPSAoMSA8PCAxMCksDQo+ID4+DQo+ ID4+IE5vdCBzdXJlIGFib3V0IHRoaXMgb25lLCB3aGF0IGlzIHRoZSBkaWZmZXJlbmNlIGJldHdl ZW4gc2NhbGFyPw0KPiA+Pg0KPiA+DQo+ID4gRXh0cmFjdCBpdCBmcm9tIHRoZSBmdW5jdGlvbiBu YW1lIGFuZCB0aGUgZGVidWcgbWVzc2FnZS4NCj4gPg0KPiA+IAlpZiAocGt0X2J1cnN0ID09IGk0 MGVfcmVjdl9zY2F0dGVyZWRfcGt0cykNCj4gPiAJCW9wdGlvbnMgPSBCVVJTVF9TQ0FMQVIgfCBC VVJTVF9TQ0FUVEVSRUQ7DQo+ID4gCWVsc2UgaWYgKHBrdF9idXJzdCA9PSBpNDBlX3JlY3ZfcGt0 c19idWxrX2FsbG9jKQ0KPiA+IAkJb3B0aW9ucyA9IEJVUlNUX1NDQUxBUiB8IEJVUlNUX0JVTEtf QUxMT0M7DQo+ID4gCWVsc2UgaWYgKHBrdF9idXJzdCA9PSBpNDBlX3JlY3ZfcGt0cykNCj4gPiAJ CW9wdGlvbnMgPSBCVVJTVF9TQ0FMQVIgfCBCVVJTVF9OT1JNQUw7DQo+IA0KPiBXaGF0IGlzIHRo ZSBkaWZmZXJlbmNlIGJldHdlZW4gJ0JVUlNUX1NDQUxBUicgJiAiQlVSU1RfU0NBTEFSIHwgQlVS U1RfTk9STUFMIiA/DQoNCklNTywgIlNDQUxBUiIgc2hvdWxkIGJlICJub24tVmVjdG9yIiA/IExp a2UgIkJVUlNUX1ZFQ1RPUiIgd2lsbCBhcHBlbmQgd2l0aA0KIlNTRS9BVlgyIiBldGMsICJTQ0FM QVIiIHdpbGwgYXBwZW5kIHdpdGggb3RoZXIgb3B0aW9uIGJpdHMuICJOb3JtYWwiIGlzIGp1c3QN CmhhbmRpbmcgdGhlIERlc2NyaXB0b3Igb25lIGJ5IG9uZSBhcyAqbm9ybWFsKi4gQXMgSSBzYWlk LCBJIGdvdCB0aGlzIG5hbWUgaWRlYQ0KZnJvbSB0aGUgb3JpZ2luYWwgbG9nIHRvIHRyeSBjb3Zl ciB0aGUgcmlnaHQgYnVyc3QgYmVoYXZpb3JzLiA6KQ0KDQo+IA0KPiBidHcsIGZvciBhY3R1YWwg aW1wbGVtZW50YXRpb24gcGxlYXNlIGFkZCAnUlRFX0VUSF8nIHByZWZpeC4NCj4gDQpHb3QgaXQs IHdpbGwgYWRkIHRoZW0uDQoNCj4gPg0KPiA+Pj4gCUJVUlNUX1NJTVBMRSA9ICgxIDw8IDExKSwN Cj4gPj4+IH07DQo+ID4+Pg0KPiA+Pj4gLyoqDQo+ID4+PiAgKiBFdGhlcm5ldCBkZXZpY2UgUlgv VFggcXVldWUgcGFja2V0IGJ1cnN0IG1vZGUgaW5mb3JtYXRpb24gc3RydWN0dXJlLg0KPiA+Pj4g ICogVXNlZCB0byByZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91dCBwYWNrZXQgYnVyc3QgbW9kZSBz ZXR0aW5nLg0KPiA+Pj4gICovDQo+ID4+PiBzdHJ1Y3QgcnRlX2V0aF9idXJzdF9tb2RlIHsNCj4g Pj4+IAl1aW50MzJfdCBwZXJfcXVldWVfc3VwcG9ydDoxOyAvKio8IFN1cHBvcnQgdG8gc2V0IHBl ciBxdWV1ZSBidXJzdCAqLw0KPiA+Pj4NCj4gPj4+IAl1aW50NjRfdCBvcHRpb25zOw0KPiA+Pj4g fTsNCj4gPj4+DQo+ID4+PiBBbmQgdGhyZWUgQVBJczoNCj4gPj4+DQo+ID4+PiAxLg0KPiA+Pj4g X19ydGVfZXhwZXJpbWVudGFsDQo+ID4+PiBpbnQgcnRlX2V0aF9yeF9idXJzdF9tb2RlX2dldCh1 aW50MTZfdCBwb3J0X2lkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gPj4+IAlzdHJ1Y3QgcnRlX2V0 aF9idXJzdF9tb2RlICptb2RlKTsNCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gMi4NCj4gPj4+IF9fcnRl X2V4cGVyaW1lbnRhbA0KPiA+Pj4gaW50IHJ0ZV9ldGhfdHhfYnVyc3RfbW9kZV9nZXQodWludDE2 X3QgcG9ydF9pZCwgdWludDE2X3QgcXVldWVfaWQsDQo+ID4+PiAJc3RydWN0IHJ0ZV9ldGhfYnVy c3RfbW9kZSAqbW9kZSk7DQo+ID4+Pg0KPiA+Pj4gMy4NCj4gPj4+IF9fcnRlX2V4cGVyaW1lbnRh bA0KPiA+Pj4gY29uc3QgY2hhciAqDQo+ID4+PiBydGVfZXRoX2J1cnN0X21vZGVfb3B0aW9uX25h bWUodWludDY0X3Qgb3B0aW9uKTsNCj4gPj4NCj4gPj4gV2hhdCBhYm91dCAncnRlX2V0aF9idXJz dF9tb2RlX25hbWUoKScgPw0KPiA+Pg0KPiA+DQo+ID4gVGhlICJtb2RlIiBzY29wZSBpcyBiaWdn ZXIgdGhhbiAibW9kZV9vcHRpb24iLCBzbyBJIGRlZmluZWQgaXQgYXMgIl9tb2RlX29wdGlvbl9u YW1lKCkiLg0KPiA+DQo+ID4gc3RydWN0IHJ0ZV9ldGhfYnVyc3RfbW9kZSB7DQo+ID4gCXVpbnQz Ml90IHBlcl9xdWV1ZV9zdXBwb3J0OjE7IC8qKjwgU3VwcG9ydCB0byBzZXQgcGVyIHF1ZXVlIGJ1 cnN0ICovDQo+ID4NCj4gPiAJdWludDY0X3Qgb3B0aW9uczsNCj4gPiB9Ow0KPiANCj4gQWdyZWVk IHRoZSBzY29wZSBpcyBiaWdnZXIgaW4gaW1wbGVtZW50YXRpb24sIGJ1dCAiYnVyc3QgbW9kZSBv cHRpb24gbmFtZSIgaXMNCj4gc2FtZSBhcyAiYnVyc3QgbW9kZSBuYW1lIiBmb3IgdXNlciwgc28g cmVtb3ZpbmcgaXQgbWF5IG1ha2UgZWFzaWVyIGZvciB1c2VyLg0KPiBCdXQgc2luY2UgdGhlIEFQ SSBpcyBnZW5lcmF0aW5nIG5hbWUgZnJvbSAnb3B0aW9ucycgdmFyaWFibGUsIGluc3RlYWQgb2YN Cj4gZGlyZWN0bHkgZnJvbSB0aGUgcG9ydCwgT0sgdG8ga2VlcCBBUEkgbmFtZSBhcyB5b3Ugc3Vn Z2VzdGVkLg0KPiANCj4gPg0KPiA+Pj4NCj4gPj4+DQo+ID4+PiBQTUQgdHdvIG9wczoNCj4gPj4+ DQo+ID4+PiB0eXBlZGVmIHZvaWQgKCpldGhfYnVyc3RfbW9kZV9nZXRfdCkoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYsDQo+ID4+PiAJdWludDE2X3QgcXVldWVfaWQsIHN0cnVjdCBydGVfZXRoX2J1 cnN0X21vZGUgKm1vZGUpOw0KPiA+Pj4NCj4gPj4+IHN0cnVjdCBldGhfZGV2X29wcyB7DQo+ID4+ PiAJLi4uDQo+ID4+PiAJZXRoX2J1cnN0X21vZGVfZ2V0X3QgICAgICAgcnhfYnVyc3RfbW9kZV9n ZXQ7IC8qKjwgR2V0IFJYIGJ1cnN0IG1vZGUgKi8NCj4gPj4+IAlldGhfYnVyc3RfbW9kZV9nZXRf dCAgICAgICB0eF9idXJzdF9tb2RlX2dldDsgLyoqPCBHZXQgVFggYnVyc3QgbW9kZSAqLw0KPiA+ Pj4gCS4uLg0KPiA+Pj4gfTsNCj4gPj4+DQo+ID4NCg0K