From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 6C35E1C00 for ; Thu, 11 May 2017 08:19:50 +0200 (CEST) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 May 2017 23:19:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.38,322,1491289200"; d="scan'208";a="85438056" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga002.jf.intel.com with ESMTP; 10 May 2017 23:19:49 -0700 Received: from fmsmsx116.amr.corp.intel.com (10.18.116.20) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 10 May 2017 23:19:49 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx116.amr.corp.intel.com (10.18.116.20) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 10 May 2017 23:19:49 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.117]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.217]) with mapi id 14.03.0319.002; Thu, 11 May 2017 14:19:47 +0800 From: "Liu, Yong" To: "Xu, GangX" , "dts@dpdk.org" CC: "Xu, GangX" Thread-Topic: [dts] [PATCH V1] add test suite interrupt_pmd Thread-Index: AQHSygT3RnLsn+LJykWBERJUgZ+OlaHupTfw Date: Thu, 11 May 2017 06:19:46 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E62DCEE37@SHSMSX103.ccr.corp.intel.com> References: <1494472600-40649-1-git-send-email-gangx.xu@intel.com> In-Reply-To: <1494472600-40649-1-git-send-email-gangx.xu@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 10.0.102.7 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: [dts] [PATCH V1] add test suite interrupt_pmd X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 May 2017 06:19:52 -0000 R2FuZywgeW91ciBzdWl0ZSBsb29rIGxpa2UgaXMgZGlmZmVyZW5jZSBmcm9tIG9yaWdpbmFsIHRl c3QgcGxhbi4gDQpUaGVyZSdzIG5vIFZGIHBtZCBpbnRlcnJ1cHQgdGVzdCBjYXNlIGluIHlvdXIg c3VpdGUgYW5kIFBGIGludGVycnVwdCB3aXRoIG1heCBxdWV1ZXMgY2FzZSBhbHNvIG5vdCBpbiB5 b3VyIHN1aXRlLg0KV2lsbCB1IGltcGxlbWVudCB0aGVtIGluIGFub3RoZXIgc3VpdGU/DQoNClRo YW5rcywNCk1hcnZpbg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGR0 cyBbbWFpbHRvOmR0cy1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgeHUsZ2FuZw0KPiBT ZW50OiBUaHVyc2RheSwgTWF5IDExLCAyMDE3IDExOjE3IEFNDQo+IFRvOiBkdHNAZHBkay5vcmcN Cj4gQ2M6IFh1LCBHYW5nWCA8Z2FuZ3gueHVAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbZHRzXSBb UEFUQ0ggVjFdIGFkZCB0ZXN0IHN1aXRlIGludGVycnVwdF9wbWQNCj4gDQo+IFNpZ25lZC1vZmYt Ynk6IHh1LGdhbmcgPGdhbmd4Lnh1QGludGVsLmNvbT4NCj4gLS0tDQo+ICB0ZXN0cy9UZXN0U3Vp dGVfaW50ZXJydXB0X3BtZC5weSB8IDI3Nw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysNCj4gIDEgZmlsZSBjaGFuZ2VkLCAyNzcgaW5zZXJ0aW9ucygrKQ0KPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IHRlc3RzL1Rlc3RTdWl0ZV9pbnRlcnJ1cHRfcG1kLnB5DQo+IA0KPiBk aWZmIC0tZ2l0IGEvdGVzdHMvVGVzdFN1aXRlX2ludGVycnVwdF9wbWQucHkNCj4gYi90ZXN0cy9U ZXN0U3VpdGVfaW50ZXJydXB0X3BtZC5weQ0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl eCAwMDAwMDAwLi4wZjE5NWRhDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvdGVzdHMvVGVzdFN1 aXRlX2ludGVycnVwdF9wbWQucHkNCj4gQEAgLTAsMCArMSwyNzcgQEANCj4gKyMgQlNEIExJQ0VO U0UNCj4gKyMNCj4gKyMgQ29weXJpZ2h0KGMpIDIwMTAtMjAxNyBJbnRlbCBDb3Jwb3JhdGlvbi4g QWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gKyMNCj4g KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0 aCBvciB3aXRob3V0DQo+ICsjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0 aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KPiArIyBhcmUgbWV0Og0KPiArIw0KPiArIyAg ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj b3B5cmlnaHQNCj4gKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCj4gKyMgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQo+ICsjICAgICBub3Rp Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg aW4NCj4gKyMgICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv dmlkZWQgd2l0aCB0aGUNCj4gKyMgICAgIGRpc3RyaWJ1dGlvbi4NCj4gKyMgICAqIE5laXRoZXIg dGhlIG5hbWUgb2YgSW50ZWwgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCj4gKyMg ICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj dHMgZGVyaXZlZA0KPiArIyAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KPiArIw0KPiArIyBUSElTIFNPRlRXQVJFIElTIFBS T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQo+ICsjICJB UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC VVQgTk9UDQo+ICsjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0KPiArIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KPiArIyBPV05FUiBP UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF TlRBTCwNCj4gKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg KElOQ0xVRElORywgQlVUIE5PVA0KPiArIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCj4gKyMgREFUQSwgT1IgUFJP RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z DQo+ICsjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM SUFCSUxJVFksIE9SIFRPUlQNCj4gKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFDQo+ICsjIE9GIFRISVMgU09GVFdB UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuDQo+ ICsNCj4gKyIiIg0KPiArRFBESyBUZXN0IHN1aXRlLg0KPiArDQo+ICtSeCBpbnRlcnJ1cHQgcG1k IHRlc3Qgc3VpdGUuDQo+ICsiIiINCj4gKw0KPiAraW1wb3J0IHN0cmluZw0KPiAraW1wb3J0IHJl DQo+ICtpbXBvcnQgdGltZQ0KPiAraW1wb3J0IHV0aWxzDQo+ICtmcm9tIHRlc3RfY2FzZSBpbXBv cnQgVGVzdENhc2UNCj4gK2Zyb20gdXRpbHMgaW1wb3J0IGNyZWF0ZV9tYXNrDQo+ICtmcm9tIHBh Y2tldCBpbXBvcnQgUGFja2V0LCBzbmlmZl9wYWNrZXRzLCBsb2FkX3NuaWZmX3BhY2tldHMNCj4g Kw0KPiArDQo+ICtjbGFzcyBUZXN0SW50clBtZChUZXN0Q2FzZSk6DQo+ICsNCj4gKyAgICBWSUZP X01PREVTID0gWydsZWdhY3knLCAnbXNpJywgJ21zaXgnXQ0KPiArICAgIElHQlVJT19NT0RFUyA9 IFsnbGVnYWN5JywgJ21zaXgnXQ0KPiArDQo+ICsgICAgZGVmIHNldF91cF9hbGwoc2VsZik6DQo+ ICsgICAgICAgICIiIg0KPiArICAgICAgICBSdW4gYmVmb3JlIGVhY2ggdGVzdCBzdWl0ZS4NCj4g KyAgICAgICAgIiIiDQo+ICsgICAgICAgIHNlbGYuZHV0X3BvcnRzID0gc2VsZi5kdXQuZ2V0X3Bv cnRzKHNlbGYubmljKQ0KPiArICAgICAgICBzZWxmLnZlcmlmeShsZW4oc2VsZi5kdXRfcG9ydHMp ID49IDIsICJJbnN1ZmZpY2llbnQgcG9ydHMiKQ0KPiArICAgICAgICBzZWxmLmNvcmVzID0gc2Vs Zi5kdXQuZ2V0X2NvcmVfbGlzdCgiMVMvNEMvMVQiKQ0KPiArICAgICAgICBzZWxmLnBvcnRtYXNr ID0gdXRpbHMuY3JlYXRlX21hc2soc2VsZi5kdXRfcG9ydHMpDQo+ICsgICAgICAgIHNlbGYuY29y ZW1hc2sgPSBjcmVhdGVfbWFzayhzZWxmLmNvcmVzKQ0KPiArDQo+ICsgICAgICAgIHNlbGYucGF0 aCA9ICIuL2V4YW1wbGVzL2wzZndkLXBvd2VyL2J1aWxkL2wzZndkLXBvd2VyIg0KPiArICAgICAg ICBzZWxmLmJ1aWxkX2FwcCgpDQo+ICsNCj4gKyAgICBkZWYgYnVpbGRfYXBwKHNlbGYpOg0KPiAr ICAgICAgICAiIiINCj4gKyAgICAgICAgYnVpbGQgc2FtcGxlIGFwcA0KPiArICAgICAgICAiIiIN Cj4gKyAgICAgICAgb3V0ID0gc2VsZi5kdXQuc2VuZF9leHBlY3QoIm1ha2UgLUMgZXhhbXBsZXMv bDNmd2QtcG93ZXIiLCAiIyAiKQ0KPiArICAgICAgICBzZWxmLnZlcmlmeSgiRXJyb3IiIG5vdCBp biBvdXQsICJjb21waWxhdGlvbiBlcnJvciAxIikNCj4gKyAgICAgICAgc2VsZi52ZXJpZnkoIk5v IHN1Y2ggZmlsZSIgbm90IGluIG91dCwgImNvbXBpbGF0aW9uIGVycm9yIDIiKQ0KPiArDQo+ICsg ICAgZGVmIHNldF91cChzZWxmKToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIFJ1biBiZWZv cmUgZWFjaCB0ZXN0IGNhc2UuDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBwYXNzDQo+ICsN Cj4gKyAgICBkZWYgc2NhcHlfc2VuZF9wYWNrZXQoc2VsZiwgcXVldWVudW09MSk6DQo+ICsgICAg ICAgICIiIg0KPiArICAgICAgICBTZW5kIGEgcGFja2V0IHRvIHBvcnQNCj4gKyAgICAgICAgIiIi DQo+ICsgICAgICAgIHNlbGYuZG1hYyA9IHNlbGYuZHV0LmdldF9tYWNfYWRkcmVzcyhzZWxmLmR1 dF9wb3J0c1swXSkNCj4gKyAgICAgICAgdHhwb3J0ID0gc2VsZi50ZXN0ZXIuZ2V0X2xvY2FsX3Bv cnQoc2VsZi5kdXRfcG9ydHNbMF0pDQo+ICsgICAgICAgIHNlbGYudHhJdGYgPSBzZWxmLnRlc3Rl ci5nZXRfaW50ZXJmYWNlKHR4cG9ydCkNCj4gKyAgICAgICAgaWYgcXVldWVudW0gPT0gMToNCj4g KyAgICAgICAgICAgIHNlbGYudGVzdGVyLnNjYXB5X2FwcGVuZCgNCj4gKyAgICAgICAgICAgICAg ICAnc2VuZHAoW0V0aGVyKGRzdD0iJXMiKS9JUCgpL1VEUCgpL1JhdyhcJ1hcJyoxOCldLA0KPiBp ZmFjZT0iJXMiKScgJSAoc2VsZi5kbWFjLCBzZWxmLnR4SXRmKSkNCj4gKyAgICAgICAgZWxpZiBx dWV1ZW51bSA9PSAyOg0KPiArICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMTYpOg0KPiArICAg ICAgICAgICAgICAgIHNlbGYudGVzdGVyLnNjYXB5X2FwcGVuZCgNCj4gKw0KPiAnc2VuZHAoW0V0 aGVyKGRzdD0iJXMiKS9JUChkc3Q9IjEyNy4wLjAuJWQiKS9VRFAoKS9SYXcoXCdYXCcqMTgpXSwN Cj4gaWZhY2U9IiVzIiknICUgKHNlbGYuZG1hYywgaSwgc2VsZi50eEl0ZikpDQo+ICsgICAgICAg IGVsc2U6DQo+ICsgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgyNTYpOg0KPiArICAgICAgICAg ICAgICAgIHNlbGYudGVzdGVyLnNjYXB5X2FwcGVuZCgNCj4gKw0KPiAnc2VuZHAoW0V0aGVyKGRz dD0iJXMiKS9JUChkc3Q9IjEyNy4wLjAuJWQiKS9VRFAoKS9SYXcoXCdYXCcqMTgpXSwNCj4gaWZh Y2U9IiVzIiknICUgKHNlbGYuZG1hYywgaSwgc2VsZi50eEl0ZikpDQo+ICsgICAgICAgIHNlbGYu dGVzdGVyLnNjYXB5X2V4ZWN1dGUoKQ0KPiArDQo+ICsgICAgZGVmIHRlc3RfZGlmZl9xdWV1ZShz ZWxmKToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIFZlcmlmeSBpbnRlcnJ1cHQgcG1kIHdv cmsgZmluZSB3aXRoIGRpZmZlcmVudCBxdWV1ZXMNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAg IGNvcmVtYXNrID0gY3JlYXRlX21hc2soc2VsZi5jb3JlcykNCj4gKyAgICAgICAgIyBBIG51bWJl ciBpcyBhIMOi4oKsxZNkaWdpdChbMC05XSspw6LigqzCnTsNCg0KUGxlYXNlIHJlbW92ZSBzcGVj aWFsIGNoYXJhY3RlcnMgaGVyZS4NCg0KPiArICAgICAgICBpZiBzZWxmLm5pYyA9PSAibmlhbnRp YyI6DQo+ICsgICAgICAgICAgICBzZWxmLm1heF9xdWV1ZSA9IDEwDQoNCldoeSBxdWV1ZXMgZm9y IE5pYW50aWMvRm9ydHZpbGxlIGlzIDEwPyBNU0kgc3VwcG9ydCAzMiBpbnRlcnJ1cHQgc291cmNl cyBhbmQgTVNJWCBzdXBwb3J0IDIwNDguDQpOaWFudGljIG1heGltdW0gaW50ZXJydXB0IHNvdXJj ZSBpcyAzMiwgZm9yIEZvcnR2aWxsZSBzaG91bGQgYmUgMTI4Lg0KDQoNCj4gKyAgICAgICAgZWxp ZiAia2F3ZWxhIiBpbiBzZWxmLm5pYzoNCj4gKyAgICAgICAgICAgIHNlbGYubWF4X3F1ZXVlID0g MTANCj4gKyAgICAgICAgZWxpZiBzZWxmLm5pYyA9PSAicG93ZXJ2aWxsZSIgb3Igc2VsZi5uaWMg PT0gImJhcnRvbmhpbGxzIjoNCj4gKyAgICAgICAgICAgIHNlbGYubWF4X3F1ZXVlID0gOA0KPiAr ICAgICAgICBlbGlmIHNlbGYubmljID09ICJzcHJpbmd2aWxsZSI6DQo+ICsgICAgICAgICAgICBz ZWxmLm1heF9xdWV1ZSA9IDQNCj4gKyAgICAgICAgZWxpZiBzZWxmLm5pYyA9PSAiZm9ydHZpbGxl X2VhZ2xlIjoNCj4gKyAgICAgICAgICAgIHNlbGYubWF4X3F1ZXVlID0gMTANCj4gKyAgICAgICAg ZWxzZToNCj4gKyAgICAgICAgICAgIHNlbGYubWF4X3F1ZXVlID0gMg0KPiArDQo+ICsgICAgICAg IGZvciBxdWV1ZSBpbiByYW5nZSgxLCBzZWxmLm1heF9xdWV1ZSk6DQo+ICsgICAgICAgICAgICAj LS1jb25maWcgKHBvcnQscXVldWUsbGNvcmUpDQo+ICsgICAgICAgICAgICBjb25maWdfY21kID0g Ii0tY29uZmlnPVwiIg0KPiArICAgICAgICAgICAgZm9yIGlkeCBpbiByYW5nZShxdWV1ZSk6DQo+ ICsgICAgICAgICAgICAgICAgY29uZmlnX2NtZCArPSAiKDAsJWQsJXMpLCIgJSAoaWR4LCBzZWxm LmNvcmVzWzBdKQ0KPiArICAgICAgICAgICAgY29uZmlnX2NtZCArPSAiXCIiDQo+ICsgICAgICAg ICAgICBjbWQgPSBzZWxmLnBhdGggKyBcDQo+ICsgICAgICAgICAgICAgICAgIiAtYyAlcyAtbiAl ZCAtLSAtcCAlcyAtUCAiICUgKGNvcmVtYXNrLA0KPiArDQo+IHNlbGYuZHV0LmdldF9tZW1vcnlf Y2hhbm5lbHMoKSwgc2VsZi5wb3J0bWFzaykNCj4gKyAgICAgICAgICAgIGNtZCArPSBjb25maWdf Y21kDQo+ICsgICAgICAgICAgICBwdXQgPSBzZWxmLmR1dC5zZW5kX2V4cGVjdCgNCj4gKyAgICAg ICAgICAgICAgICBjbWQsICJMM0ZXRF9QT1dFUiIsIDYwKQ0KPiArICAgICAgICAgICAgc2VsZi5z Y2FweV9zZW5kX3BhY2tldChzZWxmLm1heF9xdWV1ZSkNCj4gKyAgICAgICAgICAgIG91dCA9IHNl bGYuZHV0LmdldF9zZXNzaW9uX291dHB1dCh0aW1lb3V0PTYwKQ0KPiArICAgICAgICAgICAgc2Vs Zi5kdXQuc2VuZF9leHBlY3QoIl5DIiwgIiMgIikNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuZHJp dmVybmFtZSA9PSAiaWdiX3VpbyI6DQo+ICsgICAgICAgICAgICAgICAgc2VsZi52ZXJpZnkoDQo+ ICsgICAgICAgICAgICAgICAgICAgICJsY29yZSAlcyBpcyB3YWtlZCB1cCBmcm9tIHJ4IGludGVy cnVwdCBvbiBwb3J0IDAiICUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNv cmVzWzBdIGluIG91dCwgImxjb3JlICVzIG5vdCB3YWtlZCB1cCINCj4gJSBzZWxmLmNvcmVzWzBd KQ0KPiArICAgICAgICAgICAgICAgIHNlbGYudmVyaWZ5KCJsY29yZSAlcyBzbGVlcHMgdW50aWwg aW50ZXJydXB0IHRyaWdnZXJzIiAlDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5jb3Jlc1swXSBpbiBvdXQsICJsY29yZSAlcyBub3Qgc2xlZXBzIiAlDQo+IHNlbGYuY29yZXNb MF0pDQo+ICsgICAgICAgICAgICBlbGlmIHNlbGYuZHJpdmVybmFtZSA9PSAidmZpby1wY2kiOg0K PiArICAgICAgICAgICAgICAgIGxjb3JlX3dha2UgPSByZS5maW5kYWxsKA0KPiArICAgICAgICAg ICAgICAgICAgICAibGNvcmUgKFxkKSBpcyB3YWtlZCB1cCBmcm9tIHJ4IGludGVycnVwdCIsIG91 dCkNCj4gKyAgICAgICAgICAgICAgICBzZWxmLnZlcmlmeSgNCj4gKyAgICAgICAgICAgICAgICAg ICAgc2VsZi5jb3Jlc1swXSBpbiBsY29yZV93YWtlLCAibGNvcmUgJXMgbm90IHdha2VkIHVwIg0K PiAlIHNlbGYuY29yZXNbMF0pDQo+ICsgICAgICAgICAgICAgICAgbGNvcmVfc2xlZXAgPSByZS5m aW5kYWxsKA0KPiArICAgICAgICAgICAgICAgICAgICAibGNvcmUgKFxkKSBzbGVlcHMgdW50aWwg aW50ZXJydXB0IHRyaWdnZXJzIiwgb3V0KQ0KPiArICAgICAgICAgICAgICAgIHNlbGYudmVyaWZ5 KA0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLmNvcmVzWzBdIGluIGxjb3JlX3NsZWVwLCAi bGNvcmUgJXMgbm90IHNsZWVwcyIgJQ0KPiBzZWxmLmNvcmVzWzBdKQ0KPiArICAgICAgICAgICAg ICAgIHVzZV9xdWV1ZXMgPSByZS5maW5kYWxsKA0KPiArICAgICAgICAgICAgICAgICAgICAiaXMg d2FrZWQgdXAgZnJvbSByeCBpbnRlcnJ1cHQgb24gcG9ydCAwIHF1ZXVlIChcZCkiLA0KPiBvdXQp DQo+ICsgICAgICAgICAgICAgICAgZm9yIGlkeCBpbiByYW5nZShxdWV1ZSk6DQo+ICsgICAgICAg ICAgICAgICAgICAgIHNlbGYudmVyaWZ5KA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KGlkeCkgaW4gdXNlX3F1ZXVlcywgInRoZSBpbnRlcnJ1cHQgbm90IHVlcw0KPiBkaWZmIHF1ZXVl cyIpDQo+ICsNCj4gKyAgICBkZWYgY2hhbmdlX3BvcnRfY29uZihzZWxmLCBsc2NfZW5hYmxlPVRy dWUsIHJ4cV9lbmFibGU9VHJ1ZSk6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBjaGFuZ2Ug aW50ZXJydXB0IGVuYWJsZQ0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgc2VkX2NtZF9mbXQg PSAiL2ludHJfY29uZi4qPS4qey8sL1x9XCwkL2NcICAgIC5pbnRyX2NvbmYgPQ0KPiB7XFxuXFx0 XFx0LmxzYyA9ICVkLFxcblxcdFxcdC5yeHEgPSAlZCxcXG5cXHR9LCINCj4gKyAgICAgICAgbHNj ID0gMA0KPiArICAgICAgICByeHEgPSAwDQo+ICsgICAgICAgIGlmIGxzY19lbmFibGU6DQo+ICsg ICAgICAgICAgICBsc2MgPSAxDQo+ICsgICAgICAgIGlmIHJ4cV9lbmFibGU6DQo+ICsgICAgICAg ICAgICByeHEgPSAxDQo+ICsgICAgICAgIHNlZF9jbWRfc3RyID0gc2VkX2NtZF9mbXQgJSAobHNj LCByeHEpDQo+ICsgICAgICAgIG91dCA9IHNlbGYuZHV0LnNlbmRfZXhwZWN0KA0KPiArICAgICAg ICAgICAgInNlZCAtaSAnJXMnIGV4YW1wbGVzL2wzZndkLXBvd2VyL21haW4uYyIgJSBzZWRfY21k X3N0ciwgIiMNCj4gIiwgNjApDQo+ICsNCj4gKyAgICBkZWYgdGVzdF9wZl9sc2Moc2VsZik6DQo+ ICsgICAgICAgICIiIg0KPiArICAgICAgICBWZXJpZnkgZGlmZiBpbnRlcnJ1cHQgZW5hYmxlDQo+ ICsgICAgICAgICIiIg0KPiArICAgICAgICBpZiBzZWxmLmRyaXZlcm5hbWUgPT0gImlnYl91aW8i Og0KPiArICAgICAgICAgICAgZm9yIG1vZGUgaW4gc2VsZi5JR0JVSU9fTU9ERVM6DQo+ICsgICAg ICAgICAgICAgICAgcGFyYW0gPSAiaW50cl9tb2RlPSVzIiAlIG1vZGUNCj4gKw0KPiArICAgICAg ICAgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCJybW1vZCBpZ2JfdWlvIiwgIiMgIikNCj4g KyAgICAgICAgICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgNCj4gKyAgICAgICAgICAgICAg ICAgICAgImluc21vZCAuLyVzL2ttb2QvaWdiX3Vpby5rbyAlcyIgJSAoc2VsZi50YXJnZXQsDQo+ IHBhcmFtKSwgIiMgIikNCj4gKyAgICAgICAgICAgICAgICBzZWxmLmR1dC5iaW5kX2ludGVyZmFj ZXNfbGludXgoKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgY21kID0gc2VsZi5wYXRoICsgIiAt YyAlcyAtbiAlZCAtLSAtcCAlcyAtUCAiIFwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiLS1jb25maWc9XCIoMCwwLCVzKSwoMSwwLCVzKVwiIiBcDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJSAoc2VsZi5jb3JlbWFzaywNCj4gc2VsZi5kdXQuZ2V0 X21lbW9yeV9jaGFubmVscygpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYucG9ydG1hc2ssIHNlbGYuY29yZXNbMF0sDQo+IHNlbGYuY29yZXNbMV0pDQo+ICsN Cj4gKyAgICAgICAgICAgICAgICAjIGJ1aWxkIGwzZndkLXBvd2VyIHdpdGggb25seSBsc2MgaW50 ZXJydXB0IGVuYWJsZQ0KPiArICAgICAgICAgICAgICAgIHNlbGYuY2hhbmdlX3BvcnRfY29uZihs c2NfZW5hYmxlPVRydWUsIHJ4cV9lbmFibGU9RmFsc2UpDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi5idWlsZF9hcHAoKQ0KPiArICAgICAgICAgICAgICAgIHNlbGYudmVyaWZ5X2xzY19zdGF0dXMo Y21kLCBsc2M9VHJ1ZSkNCj4gKw0KPiArICAgICAgICAgICAgICAgICMgYnVpbGQgbDNmd2QtcG93 ZXIgd2l0aCBsc2MgJiByeHEgaW50ZXJydXB0IGVuYWJsZQ0KPiArICAgICAgICAgICAgICAgIHNl bGYuY2hhbmdlX3BvcnRfY29uZihsc2NfZW5hYmxlPVRydWUsIHJ4cV9lbmFibGU9VHJ1ZSkNCj4g KyAgICAgICAgICAgICAgICBzZWxmLmJ1aWxkX2FwcCgpDQo+ICsgICAgICAgICAgICAgICAgc2Vs Zi52ZXJpZnlfbHNjX3N0YXR1cyhjbWQsIGxzYz1GYWxzZSkNCj4gKyAgICAgICAgZWxpZiBzZWxm LmRyaXZlcm5hbWUgPT0gInZmaW8tcGNpIjoNCj4gKyAgICAgICAgICAgICMgYnVpbGQgbDNmd2Qt cG93ZXIgd2l0aCBsc2MgYW5kIHJ4IGludGVycnVwdCBlbmFibGUNCj4gKyAgICAgICAgICAgIHNl bGYuY2hhbmdlX3BvcnRfY29uZihsc2NfZW5hYmxlPVRydWUsIHJ4cV9lbmFibGU9VHJ1ZSkNCj4g KyAgICAgICAgICAgIHNlbGYuYnVpbGRfYXBwKCkNCj4gKyAgICAgICAgICAgICMgdmVyaWZ5IGFs bCB2ZmlvIHN1cHBvcnRlZCBpbnRlcnJ1cHQgbW9kZXMNCj4gKyAgICAgICAgICAgIGZvciBtb2Rl IGluIHNlbGYuVklGT19NT0RFUzoNCj4gKyAgICAgICAgICAgICAgICBjbWQgPSBzZWxmLnBhdGgg KyAiIC1jICVzIC1uICVkIC0tdmZpby1pbnRyPSVzIC0tIC1wICVzIC0NCj4gUCAiIFwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1jb25maWc9XCIoMCwwLCVzKSwoMSww LCVzKVwiIiBcDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAoc2VsZi5j b3JlbWFzaywNCj4gc2VsZi5kdXQuZ2V0X21lbW9yeV9jaGFubmVscygpLCBtb2RlLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucG9ydG1hc2ssIHNlbGYuY29y ZXNbMF0sDQo+IHNlbGYuY29yZXNbMV0pDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZiBtb2Rl ICE9ICJtc2l4IjoNCj4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi52ZXJpZnlfbHNjX3N0YXR1 cyhjbWQsIGxzYz1GYWxzZSkNCj4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAg ICAgICAgICAgICBzZWxmLnZlcmlmeV9sc2Nfc3RhdHVzKGNtZCwgbHNjPVRydWUpDQo+ICsNCj4g KyAgICAgICAgICAgICMgYnVpbGQgbDNmd2QtcG93ZXIgd2l0aCBvbmx5IGxzYyBpbnRlcnJ1cHQg ZW5hYmxlDQo+ICsgICAgICAgICAgICBzZWxmLmNoYW5nZV9wb3J0X2NvbmYobHNjX2VuYWJsZT1U cnVlLCByeHFfZW5hYmxlPUZhbHNlKQ0KPiArICAgICAgICAgICAgc2VsZi5idWlsZF9hcHAoKQ0K PiArDQo+ICsgICAgICAgICAgICAjIHZlcmlmeSBhbGwgdmZpbyBzdXBwb3J0ZWQgaW50ZXJydXB0 IG1vZGVzDQo+ICsgICAgICAgICAgICBmb3IgbW9kZSBpbiBzZWxmLlZJRk9fTU9ERVM6DQo+ICsg ICAgICAgICAgICAgICAgY21kID0gc2VsZi5wYXRoICsgIiAtYyAlcyAtbiAlZCAtLXZmaW8taW50 cj0lcyAtLSAtcCAlcyAtDQo+IFAgIiBcDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIi0tY29uZmlnPVwiKDAsMCwlcyksKDEsMCwlcylcIiIgXA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICUgKHNlbGYuY29yZW1hc2ssDQo+IHNlbGYuZHV0LmdldF9t ZW1vcnlfY2hhbm5lbHMoKSwgbW9kZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnBvcnRtYXNrLCBzZWxmLmNvcmVzWzBdLA0KPiBzZWxmLmNvcmVzWzFdKQ0K PiArDQo+ICsgICAgICAgICAgICAgICAgc2VsZi52ZXJpZnlfbHNjX3N0YXR1cyhjbWQsIGxzYz1U cnVlKQ0KPiArICAgICAgICBlbGlmIHNlbGYuZHJpdmVybmFtZSA9PSAidWlvX3BjaV9nZW5lcmlj IjoNCj4gKyAgICAgICAgICAgIGNtZCA9IHNlbGYucGF0aCArICIgLWMgJXMgLW4gJWQgLS0gLXAg JXMgLVAgIiBcDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1jb25maWc9XCIo MCwwLCVzKSwoMSwwLCVzKVwiIiBcDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAl IChzZWxmLmNvcmVtYXNrLA0KPiBzZWxmLmR1dC5nZXRfbWVtb3J5X2NoYW5uZWxzKCksDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBvcnRtYXNrLCBzZWxmLmNvcmVz WzBdLA0KPiBzZWxmLmNvcmVzWzFdKQ0KPiArDQo+ICsgICAgICAgICAgICAjIHN0YXJ0IGwzZndk LXBvd2VyDQo+ICsgICAgICAgICAgICAjIGJ1aWxkIGwzZndkLXBvd2VyIHdpdGggb25seSBsc2Mg aW50ZXJydXB0IGVuYWJsZQ0KPiArICAgICAgICAgICAgc2VsZi5jaGFuZ2VfcG9ydF9jb25mKGxz Y19lbmFibGU9VHJ1ZSwgcnhxX2VuYWJsZT1GYWxzZSkNCj4gKyAgICAgICAgICAgIHNlbGYuYnVp bGRfYXBwKCkNCj4gKyAgICAgICAgICAgIHNlbGYudmVyaWZ5X2xzY19zdGF0dXMoY21kLCBsc2M9 VHJ1ZSkNCj4gKw0KPiArICAgICAgICAgICAgIyBidWlsZCBsM2Z3ZC1wb3dlciB3aXRoIGxzYyAm IHJ4cSBpbnRlcnJ1cHQgZW5hYmxlDQo+ICsgICAgICAgICAgICBzZWxmLmNoYW5nZV9wb3J0X2Nv bmYobHNjX2VuYWJsZT1UcnVlLCByeHFfZW5hYmxlPVRydWUpDQo+ICsgICAgICAgICAgICBzZWxm LmJ1aWxkX2FwcCgpDQo+ICsgICAgICAgICAgICBzZWxmLnZlcmlmeV9sc2Nfc3RhdHVzKGNtZCwg bHNjPUZhbHNlKQ0KPiArDQo+ICsgICAgZGVmIHZlcmlmeV9sc2Nfc3RhdHVzKHNlbGYsIGNtZCwg bHNjPVRydWUpOg0KPiArICAgICAgICAjIHN0YXJ0IGwzZndkLXBvd2VyDQo+ICsgICAgICAgIG91 dCA9IHNlbGYuZHV0LnNlbmRfZXhwZWN0KGNtZCwgIkwzRldEX1BPV0VSIiwgNjApDQo+ICsgICAg ICAgICMgd2FpdCBmb3IgbGlua2UgcmVhZHkNCj4gKyAgICAgICAgdGltZS5zbGVlcCgxMCkNCj4g Kw0KPiArICAgICAgICBpZiBsc2M6DQo+ICsgICAgICAgICAgICBmb3IgaWR4IGluIHJhbmdlKDIp Og0KPiArICAgICAgICAgICAgICAgIHR4cG9ydCA9IHNlbGYudGVzdGVyLmdldF9sb2NhbF9wb3J0 KHNlbGYuZHV0X3BvcnRzW2lkeF0pDQo+ICsgICAgICAgICAgICAgICAgdHhJdGYgPSBzZWxmLnRl c3Rlci5nZXRfaW50ZXJmYWNlKHR4cG9ydCkNCj4gKw0KPiArICAgICAgICAgICAgICAgIHNlbGYu dGVzdGVyLnNlbmRfZXhwZWN0KCJpZmNvbmZpZyAlcyBkb3duIiAlIHR4SXRmLCAiIyAiKQ0KPiAr ICAgICAgICAgICAgICAgIG91dCA9IHNlbGYuZHV0LmdldF9zZXNzaW9uX291dHB1dCh0aW1lb3V0 PTEwKQ0KPiArICAgICAgICAgICAgICAgIHNlbGYudmVyaWZ5KCJQb3J0ICVkOiBMaW5rIERvd24i ICUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHggaW4gb3V0LCAiTFNDIGNhbid0 IGRldGVjdGVkIGxpbmsgZG93biIpDQo+ICsgICAgICAgICAgICAgICAgc2VsZi50ZXN0ZXIuc2Vu ZF9leHBlY3QoImlmY29uZmlnICVzIHVwIiAlIHR4SXRmLCAiIyAiKQ0KPiArICAgICAgICAgICAg ICAgIG91dCA9IHNlbGYuZHV0LmdldF9zZXNzaW9uX291dHB1dCh0aW1lb3V0PTEwKQ0KPiArICAg ICAgICAgICAgICAgIHNlbGYudmVyaWZ5KCJQb3J0ICVkOiBMaW5rIFVwIiAlDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWR4IGluIG91dCwgIkxTQyBjYW4ndCBkZXRlY3RlZCBsaW5r IHVwIikNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIHNlbGYudmVyaWZ5KCJsc2Mg d29uJ3QgZW5hYmxlIiBpbiBvdXQsICJMU0Mgc2hvdWxkIG5vdA0KPiBlbmFibGVkIikNCj4gKw0K PiArICAgICAgICBzZWxmLmR1dC5raWxsX2FsbCgpDQo+ICsgICAgICAgIHRpbWUuc2xlZXAoMikN Cj4gKw0KPiArICAgIGRlZiB0ZWFyX2Rvd24oc2VsZik6DQo+ICsgICAgICAgICIiIg0KPiArICAg ICAgICBSdW4gYWZ0ZXIgZWFjaCB0ZXN0IHN1aXRlLg0KPiArICAgICAgICAiIiINCj4gKyAgICAg ICAgc2VsZi5kdXQua2lsbF9hbGwoKQ0KPiArICAgICAgICB0aW1lLnNsZWVwKDIpDQo+ICsNCj4g KyAgICBkZWYgdGVhcl9kb3duX2FsbChzZWxmKToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAg IFJ1biBhZnRlciBlYWNoIHRlc3Qgc3VpdGUuDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBw YXNzDQo+IC0tDQo+IDEuOS4zDQoNCg==