From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id E0D6237A0 for ; Mon, 4 Sep 2017 10:51:00 +0200 (CEST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP; 04 Sep 2017 01:50:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,473,1498546800"; d="scan'208";a="1168901085" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga001.jf.intel.com with ESMTP; 04 Sep 2017 01:50:58 -0700 Received: from fmsmsx157.amr.corp.intel.com (10.18.116.73) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 4 Sep 2017 01:50:58 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX157.amr.corp.intel.com (10.18.116.73) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 4 Sep 2017 01:50:57 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.219]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.117]) with mapi id 14.03.0319.002; Mon, 4 Sep 2017 16:50:56 +0800 From: "Liu, Yong" To: Jianbo Liu , "dts@dpdk.org" , "Herbert Guan" CC: "Xu, Qian Q" Thread-Topic: [PATCH] tests/ip_pipeline: fix test failures Thread-Index: AQHTJUeM8eVRp7j6eEuQsfkp/nHDx6KkarCw Date: Mon, 4 Sep 2017 08:50:55 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E62E99C55@SHSMSX103.ccr.corp.intel.com> References: <1503311443-26858-1-git-send-email-jianbo.liu@linaro.org> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 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] tests/ip_pipeline: fix test failures 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: Mon, 04 Sep 2017 08:51:01 -0000 SGkgSmlhbmJvLA0KSSBtZXQgb25lIGlzc3VlIHdoZW4gdHJ5aW5nIHRvIHZhbGlkYXRlIHlvdXIg cGF0Y2guIFNvcnJ5IGZvciBsYXRlIHJlc3BvbnNlLCB3ZSdyZSB3b3JraW5nIG9uIHJlbWFpbmlu ZyBpc3N1ZXMgaW4gdGVzdCBzdWl0ZXMgdGhlc2Ugd2Vla3MuDQoNCjA0LzA5LzIwMTcgMjM6Mzg6 MzkgICAgICAgIFNVSVRFX0RVVF9DTUQ6IFsxMC42Ny4xMTkuMTIwXSBwIDEgZmxvdyBhZGQgZGVm YXVsdCAzDQowNC8wOS8yMDE3IDIzOjM4OjM5ICAgICBTVUlURV9EVVRfT1VUUFVUOiBbMTAuNjcu MTE5LjEyMF0gcCAxIGZsb3cgYWRkIGRlZmF1bHQgM15NXk0NCkNvbW1hbmQgImZsb3cgYWRkIGRl ZmF1bHQiIGZhaWxlZA0KDQoNClRoYW5rcywNCk1hcnZpbg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IEppYW5ibyBMaXUgW21haWx0bzpqaWFuYm8ubGl1QGxpbmFyby5v cmddDQo+IFNlbnQ6IE1vbmRheSwgU2VwdGVtYmVyIDA0LCAyMDE3IDI6MzIgUE0NCj4gVG86IGR0 c0BkcGRrLm9yZzsgSGVyYmVydCBHdWFuIDxoZXJiZXJ0Lmd1YW5AYXJtLmNvbT4NCj4gQ2M6IFh1 LCBRaWFuIFEgPHFpYW4ucS54dUBpbnRlbC5jb20+OyBMaXUsIFlvbmcgPHlvbmcubGl1QGludGVs LmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSF0gdGVzdHMvaXBfcGlwZWxpbmU6IGZpeCB0ZXN0 IGZhaWx1cmVzDQo+IA0KPiBIaSBZb25nIGFuZCBRaWFuLA0KPiANCj4gSGF2ZSB5b3UgcmV2aWV3 ZWQgdGhpcyBwYXRjaCwgYW55IGNvbW1lbnRzPw0KPiANCj4gVGhhbmtzIQ0KPiBKaWFuYm8NCj4g DQo+IA0KPiBPbiAyMSBBdWd1c3QgMjAxNyBhdCAxODozMCwgSmlhbmJvIExpdSA8amlhbmJvLmxp dUBsaW5hcm8ub3JnPiB3cm90ZToNCj4gPiBUaGUgaXBfcGlwZWxpbmUgd2FzIGNoYW5nZWQgYSBs b3QsIGFuZCB0aGUgY29uZmlndXJhdGlvbiBhbmQgY29tbWFuZHMNCj4gPiBhcmUgZGlmZmVyZW50 IGZyb20gdGhvc2UgaW4gdGhpcyB0ZXN0aW5nIGNhc2UuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5 OiBKaWFuYm8gTGl1IDxqaWFuYm8ubGl1QGxpbmFyby5vcmc+DQo+ID4gLS0tDQo+ID4gIHRlc3Rz L1Rlc3RTdWl0ZV9pcF9waXBlbGluZS5weSB8IDE1NyArKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tDQo+IC0tLS0tLS0NCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDkwIGluc2VydGlvbnMo KyksIDY3IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL1Rlc3RTdWl0 ZV9pcF9waXBlbGluZS5weQ0KPiBiL3Rlc3RzL1Rlc3RTdWl0ZV9pcF9waXBlbGluZS5weQ0KPiA+ IGluZGV4IDkwZGJhMzEuLjMwMGIxZGUgMTAwNjQ0DQo+ID4gLS0tIGEvdGVzdHMvVGVzdFN1aXRl X2lwX3BpcGVsaW5lLnB5DQo+ID4gKysrIGIvdGVzdHMvVGVzdFN1aXRlX2lwX3BpcGVsaW5lLnB5 DQo+ID4gQEAgLTEyNCwxMSArMTI0LDQ3IEBAIGNsYXNzIFRlc3RJUFBpcGVsaW5lKFRlc3RDYXNl KToNCj4gPg0KPiA+ICAgICAgICAgIHdyaXRlci5jbG9zZSgpDQo+ID4NCj4gPiArICAgIGRlZiBj cmVhdGVfcGFzc3Rocm91Z2hfY2ZnZmlsZShzZWxmKToNCj4gPiArICAgICAgICBzZWxmLmR1dC5z ZW5kX2V4cGVjdCgnZWNobyBbUElQRUxJTkUwXSA+IC90bXAvaXBfcGlwZWxpbmUuY2ZnJywNCj4g JyMnKQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIHR5cGUgPSBNQVNU RVIgPj4NCj4gL3RtcC9pcF9waXBlbGluZS5jZmcnLCAnIycpDQo+ID4gKyAgICAgICAgc2VsZi5k dXQuc2VuZF9leHBlY3QoJ2VjaG8gY29yZSA9IDAgPj4gL3RtcC9pcF9waXBlbGluZS5jZmcnLA0K PiAnIycpDQo+ID4gKyAgICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoJ2VjaG8gW1BJUEVMSU5F MV0gPj4gL3RtcC9pcF9waXBlbGluZS5jZmcnLA0KPiAnIycpDQo+ID4gKyAgICAgICAgc2VsZi5k dXQuc2VuZF9leHBlY3QoJ2VjaG8gdHlwZSA9IFBBU1MtVEhST1VHSCA+Pg0KPiAvdG1wL2lwX3Bp cGVsaW5lLmNmZycsICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnZWNo byBjb3JlID0gMSA+PiAvdG1wL2lwX3BpcGVsaW5lLmNmZycsDQo+ICcjJykNCj4gPiArICAgICAg ICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnZWNobyBwa3RxX2luID0gUlhRMC4wIFJYUTEuMCA+Pg0K PiAvdG1wL2lwX3BpcGVsaW5lLmNmZycsICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5k X2V4cGVjdCgnZWNobyBwa3RxX291dCA9IFRYUTEuMCBUWFEwLjAgPj4NCj4gL3RtcC9pcF9waXBl bGluZS5jZmcnLCAnIycpDQo+ID4gKw0KPiA+ICsgICAgZGVmIGNyZWF0ZV9yb3V0aW5nX2NmZ2Zp bGUoc2VsZik6DQo+ID4gKyAgICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoJ2VjaG8gW1BJUEVM SU5FMF0gPiAvdG1wL2lwX3BpcGVsaW5lLmNmZycsDQo+ICcjJykNCj4gPiArICAgICAgICBzZWxm LmR1dC5zZW5kX2V4cGVjdCgnZWNobyB0eXBlID0gTUFTVEVSID4+DQo+IC90bXAvaXBfcGlwZWxp bmUuY2ZnJywgJyMnKQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIGNv cmUgPSAwID4+IC90bXAvaXBfcGlwZWxpbmUuY2ZnJywNCj4gJyMnKQ0KPiA+ICsgICAgICAgIHNl bGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIFtQSVBFTElORTFdID4+IC90bXAvaXBfcGlwZWxpbmUu Y2ZnJywNCj4gJyMnKQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIHR5 cGUgPSBST1VUSU5HID4+DQo+IC90bXAvaXBfcGlwZWxpbmUuY2ZnJywgJyMnKQ0KPiA+ICsgICAg ICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIGNvcmUgPSAxID4+IC90bXAvaXBfcGlwZWxp bmUuY2ZnJywNCj4gJyMnKQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hv IHBrdHFfaW4gPSBSWFEwLjAgUlhRMS4wID4+DQo+IC90bXAvaXBfcGlwZWxpbmUuY2ZnJywgJyMn KQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIHBrdHFfb3V0ID0gVFhR MC4wIFRYUTEuMCA+Pg0KPiAvdG1wL2lwX3BpcGVsaW5lLmNmZycsICcjJykNCj4gPiArICAgICAg ICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnZWNobyBlbmNhcCA9IGV0aGVybmV0ID4+DQo+IC90bXAv aXBfcGlwZWxpbmUuY2ZnJywgJyMnKQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0 KCdlY2hvIGlwX2hkcl9vZmZzZXQgPSAyNzAgPj4NCj4gL3RtcC9pcF9waXBlbGluZS5jZmcnLCAn IycpDQo+ID4gKyAgICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoJ2VjaG8gYXJwX2tleV9vZmZz ZXQgPSAxMjggPj4NCj4gL3RtcC9pcF9waXBlbGluZS5jZmcnLCAnIycpDQo+ID4gKyAgICAgICAg c2VsZi5kdXQuc2VuZF9leHBlY3QoJ2VjaG8gbl9hcnBfZW50cmllcyA9IDEwMDAgPj4NCj4gL3Rt cC9pcF9waXBlbGluZS5jZmcnLCAnIycpDQo+ID4gKw0KPiA+ICsgICAgZGVmIGNyZWF0ZV9mbG93 X2NmZ2ZpbGUoc2VsZik6DQo+ID4gKyAgICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoJ2VjaG8g W1BJUEVMSU5FMF0gPiAvdG1wL2lwX3BpcGVsaW5lLmNmZycsDQo+ICcjJykNCj4gPiArICAgICAg ICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnZWNobyB0eXBlID0gTUFTVEVSID4+DQo+IC90bXAvaXBf cGlwZWxpbmUuY2ZnJywgJyMnKQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdl Y2hvIGNvcmUgPSAwID4+IC90bXAvaXBfcGlwZWxpbmUuY2ZnJywNCj4gJyMnKQ0KPiA+ICsgICAg ICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIFtQSVBFTElORTFdID4+IC90bXAvaXBfcGlw ZWxpbmUuY2ZnJywNCj4gJyMnKQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdl Y2hvIHR5cGUgPSBGTE9XX0NMQVNTSUZJQ0FUSU9OID4+DQo+IC90bXAvaXBfcGlwZWxpbmUuY2Zn JywgJyMnKQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIGNvcmUgPSAx ID4+IC90bXAvaXBfcGlwZWxpbmUuY2ZnJywNCj4gJyMnKQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0 LnNlbmRfZXhwZWN0KCdlY2hvIHBrdHFfaW4gPSBSWFEwLjAgUlhRMS4wID4+DQo+IC90bXAvaXBf cGlwZWxpbmUuY2ZnJywgJyMnKQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdl Y2hvIHBrdHFfb3V0ID0gVFhRMC4wIFRYUTEuMCBTSU5LMCA+Pg0KPiAvdG1wL2lwX3BpcGVsaW5l LmNmZycsICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnZWNobyBuX2Zs b3dzID0gNjU1MzYgPj4NCj4gL3RtcC9pcF9waXBlbGluZS5jZmcnLCAnIycpDQo+ID4gKyAgICAg ICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoJ2VjaG8ga2V5X3NpemUgPSAxNiA+Pg0KPiAvdG1wL2lw X3BpcGVsaW5lLmNmZycsICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgn ZWNobyBrZXlfb2Zmc2V0ID0gMjc4ID4+DQo+IC90bXAvaXBfcGlwZWxpbmUuY2ZnJywgJyMnKQ0K PiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIGtleV9tYXNrID0NCj4gMDBG RjAwMDBGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYgPj4gL3RtcC9pcF9waXBlbGluZS5jZmcnLCAn IycpDQo+ID4gKyAgICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoJ2VjaG8gZmxvd2lkX29mZnNl dCA9IDEyOCA+Pg0KPiAvdG1wL2lwX3BpcGVsaW5lLmNmZycsICcjJykNCj4gPiArDQo+ID4gICAg ICBkZWYgc3RhcnRfaXBfcGlwZWxpbmUoc2VsZiwgcG9ydHMpOg0KPiA+IC0gICAgICAgIGNvbW1h bmRfbGluZSA9ICIuL2V4YW1wbGVzL2lwX3BpcGVsaW5lL2J1aWxkL2lwX3BpcGVsaW5lIC1jICVz DQo+IC1uICVkIC0tIC1wICVzIiAlIFwNCj4gPiAtICAgICAgICAgICAgKHNlbGYuY29yZW1hc2ss DQo+ID4gLSAgICAgICAgICAgICBzZWxmLmR1dC5nZXRfbWVtb3J5X2NoYW5uZWxzKCksDQo+ID4g LSAgICAgICAgICAgICBwb3J0cykNCj4gPiArICAgICAgICBjb21tYW5kX2xpbmUgPSAiLi9leGFt cGxlcy9pcF9waXBlbGluZS9idWlsZC9pcF9waXBlbGluZSAtcCAlcw0KPiAtZiAvdG1wL2lwX3Bp cGVsaW5lLmNmZyIgJSBwb3J0cw0KPiA+DQo+ID4gICAgICAgICAgb3V0ID0gc2VsZi5kdXQuc2Vu ZF9leHBlY3QoY29tbWFuZF9saW5lLCAncGlwZWxpbmU+JywgNjApDQo+ID4gICAgICAgICAgc2xl ZXAoNSkgICAgIyAnSW5pdGlhbGl6YXRpb24gY29tcGxldGVkJyBpcyBub3QgdGhlIGxhc3Qgb3V0 cHV0LA0KPiBzb21lDQo+ID4gQEAgLTE1MCwxMCArMTg2LDEwIEBAIGNsYXNzIFRlc3RJUFBpcGVs aW5lKFRlc3RDYXNlKToNCj4gPiAgICAgICAgICAiIiINCj4gPg0KPiA+ICAgICAgICAgIGZvciBp ZmFjZSBpbiBpZmFjZXM6DQo+ID4gKyAgICAgICAgICAgIGNvbW1hbmQgPSAoJ3JtIC1mIHRjcGR1 bXBfezB9LnBjYXAnKS5mb3JtYXQoaWZhY2UpDQo+ID4gKyAgICAgICAgICAgIHNlbGYudGVzdGVy LnNlbmRfZXhwZWN0KGNvbW1hbmQsICcjJykNCj4gPiAgICAgICAgICAgICAgY29tbWFuZCA9ICgN Cj4gPiAgICAgICAgICAgICAgICAgICd0Y3BkdW1wIC13IHRjcGR1bXBfezB9LnBjYXAgLWkgezB9 IDI+dGNwZHVtcF97MH0ub3V0DQo+ICYnKS5mb3JtYXQoaWZhY2UpDQo+ID4gLSAgICAgICAgICAg IHNlbGYudGVzdGVyLnNlbmRfZXhwZWN0KA0KPiA+IC0gICAgICAgICAgICAgICAgJ3JtIC1mIHRj cGR1bXBfezB9LnBjYXAnLCAnIycpLmZvcm1hdChpZmFjZSkNCj4gPiAgICAgICAgICAgICAgc2Vs Zi50ZXN0ZXIuc2VuZF9leHBlY3QoY29tbWFuZCwgJyMnKQ0KPiA+DQo+ID4gICAgICBkZWYgdGNw ZHVtcF9zdG9wX3NuaWZmKHNlbGYpOg0KPiA+IEBAIC0yMDAsMTUgKzIzNiwxMyBAQCBjbGFzcyBU ZXN0SVBQaXBlbGluZShUZXN0Q2FzZSk6DQo+ID4NCj4gPiAgICAgICAgICB0eF9wb3J0ID0gc2Vs Zi50ZXN0ZXIuZ2V0X2xvY2FsX3BvcnQoc2VsZi5kdXRfcG9ydHNbZnJvbV9wb3J0XSkNCj4gPiAg ICAgICAgICByeF9wb3J0ID0gc2VsZi50ZXN0ZXIuZ2V0X2xvY2FsX3BvcnQoc2VsZi5kdXRfcG9y dHNbdG9fcG9ydF0pDQo+ID4gKyAgICAgICAgcG9ydDAgPSBzZWxmLnRlc3Rlci5nZXRfbG9jYWxf cG9ydChzZWxmLmR1dF9wb3J0c1swXSkNCj4gPg0KPiA+ICAgICAgICAgIHR4X2ludGVyZmFjZSA9 IHNlbGYudGVzdGVyLmdldF9pbnRlcmZhY2UodHhfcG9ydCkNCj4gPiAgICAgICAgICByeF9pbnRl cmZhY2UgPSBzZWxmLnRlc3Rlci5nZXRfaW50ZXJmYWNlKHJ4X3BvcnQpDQo+ID4NCj4gPiAgICAg ICAgICBzZWxmLnRjcGR1bXBfc3RhcnRfc25pZmZpbmcoW3R4X2ludGVyZmFjZSwgcnhfaW50ZXJm YWNlXSkNCj4gPg0KPiA+IC0gICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdsaW5rIDAgdXAn LCAncGlwZWxpbmU+JykNCj4gPiAtICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnbGluayAx IHVwJywgJ3BpcGVsaW5lPicpDQo+ID4gLQ0KPiA+ICAgICAgICAgIHRpbWVvdXQgPSBmcmFtZXNf bnVtYmVyICogaW50ZXIgKyAyDQo+ID4gICAgICAgICAgaW50ZXIgPSAiLCBpbnRlcj0lZCIgJSBp bnRlcg0KPiA+DQo+ID4gQEAgLTIyNSw2NCArMjU5LDU4IEBAIGNsYXNzIFRlc3RJUFBpcGVsaW5l KFRlc3RDYXNlKToNCj4gPg0KPiA+ICAgICAgICAgIHNlbGYudGNwZHVtcF9zdG9wX3NuaWZmKCkN Cj4gPg0KPiA+IC0gICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdsaW5rIDAgZG93bicsICdw aXBlbGluZT4nKQ0KPiA+IC0gICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdsaW5rIDEgZG93 bicsICdwaXBlbGluZT4nKQ0KPiA+IC0NCj4gPiAgICAgICAgICByeF9zdGF0cyA9IHNlbGYubnVt YmVyX29mX3BhY2tldHMoJ3RjcGR1bXBfJXMucGNhcCcgJQ0KPiByeF9pbnRlcmZhY2UpDQo+ID4g ICAgICAgICAgdHhfc3RhdHMgPSBzZWxmLm51bWJlcl9vZl9wYWNrZXRzKCd0Y3BkdW1wXyVzLnBj YXAnICUNCj4gdHhfaW50ZXJmYWNlKQ0KPiA+DQo+ID4gICAgICAgICAgIyBEbyBub3QgY291bnQg dGhlIHNlbnQgZnJhbWVzIGluIHRoZSB0eF9pbnRlcmZhY2UNCj4gPiAgICAgICAgICB0eF9zdGF0 cyA9IHR4X3N0YXRzIC0gZnJhbWVzX251bWJlcg0KPiA+DQo+ID4gLSAgICAgICAgcmV0dXJuIHsn cngnOiByeF9zdGF0cywgJ3R4JzogdHhfc3RhdHN9DQo+ID4gKyAgICAgICAgaWYgcG9ydDAgPT0g dHhfcG9ydDoNCj4gPiArICAgICAgICAgICAgcmV0dXJuIHsncngwJzogdHhfc3RhdHMsICdyeDEn OiByeF9zdGF0c30NCj4gPiArICAgICAgICBlbHNlOg0KPiA+ICsgICAgICAgICAgICByZXR1cm4g eydyeDAnOiByeF9zdGF0cywgJ3J4MSc6IHR4X3N0YXRzfQ0KPiA+DQo+ID4gICAgICBkZWYgY2hl Y2tfcmVzdWx0cyhzZWxmLCBzdGF0cywgZXhwZWN0ZWQpOg0KPiA+ICAgICAgICAgICIiIg0KPiA+ IC0gICAgICAgIFRoaXMgZnVuY3Rpb24gY2hlY2sgdGhhdCB0aGUgUnggYW5kIFR4IHN0YXRzIG1h dGNoZXMgdGhlDQo+IGV4cGVjdGVkLg0KPiA+IC0gICAgICAgIGV4cGVjdGVkID0gW1J4LCBUeF0N Cj4gPiArICAgICAgICBUaGlzIGZ1bmN0aW9uIGNoZWNrIHRoYXQgdGhlIHJlY2VpdmVkIHBhY2tl dCBudW1iZXJzIG9mIHBvcnQwDQo+IGFuZCBwb3J0MSBtYXRjaCB0aGUgZXhwZWN0ZWQuDQo+ID4g KyAgICAgICAgZXhwZWN0ZWQgPSBbUngwLCBSeDFdDQo+ID4gICAgICAgICAgIiIiDQo+ID4NCj4g PiAtICAgICAgICBmb3IgcG9ydCBpbiBbJ3J4JywgJ3R4J106DQo+ID4gKyAgICAgICAgZm9yIHBv cnQgaW4gWydyeDAnLCAncngxJ106DQo+ID4gICAgICAgICAgICAgIHNlbGYudmVyaWZ5KHN0YXRz W3BvcnRdID09IGV4cGVjdGVkW3BvcnRdLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAn RnJhbWVzIGV4cGVjdGVkICglcykgYW5kIHJlY2VpdmVkICglcykNCj4gbWlzbWF0Y2ggb24gJXMg cG9ydCcgJSAoDQo+ID4gICAgICAgICAgICAgICAgICBleHBlY3RlZFtwb3J0XSwgc3RhdHNbcG9y dF0sIHBvcnQpKQ0KPiA+DQo+ID4gICAgICBkZWYgcGlwZWxpbmVfY29tbWFuZChzZWxmLCBjb21t YW5kKToNCj4gPiAgICAgICAgICBvdXQgPSBzZWxmLmR1dC5zZW5kX2V4cGVjdChjb21tYW5kLCAn cGlwZWxpbmU+JykNCj4gPiAtICAgICAgICBzZWxmLnZlcmlmeSgiSWxsZWdhbCIgbm90IGluIG91 dCwgIlBpcGVsaW5lIGNvbW1hbmQgZXJyb3IgMToNCj4gJyVzJyIgJSBjb21tYW5kKQ0KPiA+IC0g ICAgICAgIHNlbGYudmVyaWZ5KCJCYWQiIG5vdCBpbiBvdXQsICJQaXBlbGluZSBjb21tYW5kIGVy cm9yIDI6ICclcyciICUNCj4gY29tbWFuZCkNCj4gPiArICAgICAgICBzZWxmLnZlcmlmeSgiYXJn dW1lbnRzIiBub3QgaW4gb3V0LCAiSW5jb3JyZWN0IGFyZ3VtZW50czoNCj4gJyVzJyIgJSBjb21t YW5kKQ0KPiA+ICsgICAgICAgIHNlbGYudmVyaWZ5KCJJbnZhbGlkIiBub3QgaW4gb3V0LCAiSW52 YWxpZCBhcmd1bWVudDogJyVzJyIgJQ0KPiBjb21tYW5kKQ0KPiA+ICsgICAgICAgIHNlbGYudmVy aWZ5KCJTeW50YXggZXJyb3IiIG5vdCBpbiBvdXQsICJTeW50YXggZXJyb3I6ICclcyciICUNCj4g Y29tbWFuZCkNCj4gPiAgICAgICAgICByZXR1cm4gb3V0DQo+ID4NCj4gPiAtICAgIGRlZiBwaXBl bGluZV9hZGRfZmxvdyhzZWxmLCBwb3J0LCBzcmNfaXAsIGRzdF9pcCwgc3JjX3BvcnQsDQo+IGRz dF9wb3J0LA0KPiA+ICsgICAgZGVmIHBpcGVsaW5lX2FkZF9mbG93KHNlbGYsIHBvcnQsIHNyY19p cCwgZHN0X2lwLCBzcmNfcG9ydCwNCj4gZHN0X3BvcnQsIGZsb3dpZCwNCj4gPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwcm90b2NvbD02KToNCj4gPiAtICAgICAgICBjb21tYW5kID0gJ2Zs b3cgYWRkICVzICVzICVkICVkICVkICVkJyAlIChzcmNfaXAsIGRzdF9pcCwNCj4gc3JjX3BvcnQs DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZHN0X3BvcnQsIHByb3RvY29sLA0KPiBwb3J0KQ0KPiA+ICsgICAgICAgIGNvbW1hbmQgPSAncCAx IGZsb3cgYWRkIGlwdjQgJXMgJXMgJWQgJWQgJWQgcG9ydCAlZCBpZCAlZCcgJQ0KPiAoc3JjX2lw LCBkc3RfaXAsIHNyY19wb3J0LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRzdF9wb3J0LCBwcm90b2NvbCwNCj4gcG9ydCwgZmxvd2lkKQ0K PiA+ICAgICAgICAgIG91dCA9IHNlbGYucGlwZWxpbmVfY29tbWFuZChjb21tYW5kKQ0KPiA+IC0g ICAgICAgIHNlbGYudmVyaWZ5KCJBZGRpbmcgZmxvdyIgaW4gb3V0LCAiQWRkIGZsb3cgZXJyb3Ii KQ0KPiA+ICsgICAgICAgIHNlbGYudmVyaWZ5KCJmYWlsZWQiIG5vdCBpbiBvdXQsICJBZGQgZmxv dyBlcnJvciIpDQo+ID4NCj4gPiAgICAgIGRlZiBwaXBlbGluZV9kZWxfZmxvdyhzZWxmLCBzcmNf aXAsIGRzdF9pcCwgc3JjX3BvcnQsIGRzdF9wb3J0LA0KPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHByb3RvY29sPTYpOg0KPiA+IC0gICAgICAgIGNvbW1hbmQgPSAnZmxvdyBkZWwgJXMg JXMgJWQgJWQgJWQnICUgKHNyY19pcCwgZHN0X2lwLCBzcmNfcG9ydCwNCj4gPiArICAgICAgICBj b21tYW5kID0gJ3AgMSBmbG93IGRlbCBpcHY0ICVzICVzICVkICVkICVkJyAlIChzcmNfaXAsIGRz dF9pcCwNCj4gc3JjX3BvcnQsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZHN0X3BvcnQsIHByb3RvY29sKQ0KPiA+ICAgICAgICAgIG91dCA9IHNl bGYucGlwZWxpbmVfY29tbWFuZChjb21tYW5kKQ0KPiA+IC0gICAgICAgIHNlbGYudmVyaWZ5KCJE ZWxldGluZyBmbG93IiBpbiBvdXQsICJEZWwgZmxvdyBlcnJvciIpDQo+ID4gKyAgICAgICAgc2Vs Zi52ZXJpZnkoImZhaWxlZCIgbm90IGluIG91dCwgIkRlbCBmbG93IGVycm9yIikNCj4gPg0KPiA+ ICAgICAgZGVmIHBpcGVsaW5lX2FkZF9yb3V0ZShzZWxmLCBwb3J0LCBzcmNfaXAsIG5ldG1hc2ss IGd3X2lwKToNCj4gPiAtICAgICAgICBjb21tYW5kID0gJ3JvdXRlIGFkZCAlcyAlZCAlZCAlcycg JSAoc3JjX2lwLCBuZXRtYXNrLCBwb3J0LA0KPiBnd19pcCkNCj4gPiArICAgICAgICBjb21tYW5k ID0gJ3AgMSByb3V0ZSBhZGQgJXMgJWQgcG9ydCAlZCBldGhlciAlcycgJSAoc3JjX2lwLA0KPiBu ZXRtYXNrLCBwb3J0LCBnd19pcCkNCj4gPiAgICAgICAgICBvdXQgPSBzZWxmLnBpcGVsaW5lX2Nv bW1hbmQoY29tbWFuZCkNCj4gPiAtICAgICAgICBzZWxmLnZlcmlmeSgiQWRkaW5nIHJvdXRlIiBp biBvdXQsICJBZGQgcm91dGUgZXJyb3IiKQ0KPiA+ICsgICAgICAgIHNlbGYudmVyaWZ5KCJmYWls ZWQiIG5vdCBpbiBvdXQsICJBZGQgcm91dGUgZXJyb3IiKQ0KPiA+DQo+ID4gICAgICBkZWYgcGlw ZWxpbmVfZGVsX3JvdXRlKHNlbGYsIHNyY19pcCwgbmV0bWFzayk6DQo+ID4gLSAgICAgICAgY29t bWFuZCA9ICdyb3V0ZSBkZWwgJXMgJWQnICUgKHNyY19pcCwgbmV0bWFzaykNCj4gPiArICAgICAg ICBjb21tYW5kID0gJ3AgMSByb3V0ZSBkZWwgJXMgJWQnICUgKHNyY19pcCwgbmV0bWFzaykNCj4g PiAgICAgICAgICBvdXQgPSBzZWxmLnBpcGVsaW5lX2NvbW1hbmQoY29tbWFuZCkNCj4gPiAtICAg ICAgICBzZWxmLnZlcmlmeSgiRGVsZXRpbmcgcm91dGUiIGluIG91dCwgIkRlbCByb3V0ZSBlcnJv ciIpDQo+ID4gLQ0KPiA+IC0gICAgZGVmIHBpcGVsaW5lX3RyYWZmaWNfYnVyc3Qoc2VsZik6DQo+ ID4gLSAgICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoJ2xpbmsgMCB1cCcsICdwaXBlbGluZT4n KQ0KPiA+IC0gICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdsaW5rIDEgdXAnLCAncGlwZWxp bmU+JykNCj4gPiAtICAgICAgICBzbGVlcCgwLjEpDQo+ID4gLSAgICAgICAgc2VsZi5kdXQuc2Vu ZF9leHBlY3QoJ2xpbmsgMCBkb3duJywgJ3BpcGVsaW5lPicpDQo+ID4gLSAgICAgICAgc2VsZi5k dXQuc2VuZF9leHBlY3QoJ2xpbmsgMSBkb3duJywgJ3BpcGVsaW5lPicpDQo+ID4gKyAgICAgICAg c2VsZi52ZXJpZnkoImZhaWxlZCIgbm90IGluIG91dCwgIkRlbCByb3V0ZSBlcnJvciIpDQo+ID4N Cj4gPiAgICAgIGRlZiBzZXRfdXBfYWxsKHNlbGYpOg0KPiA+ICAgICAgICAgICIiIg0KPiA+IEBA IC0yOTEsMTQgKzMxOSw4IEBAIGNsYXNzIFRlc3RJUFBpcGVsaW5lKFRlc3RDYXNlKToNCj4gPiAg ICAgICAgICBQTUQgcHJlcmVxdWlzaXRlcy4NCj4gPiAgICAgICAgICAiIiINCj4gPg0KPiA+IC0g ICAgICAgICMgQ2hlY2sgZm9yIHBvcnQgYXZhaWxhYmlsaXR5DQo+ID4gLSAgICAgICAgc2VsZi5u ZWVkZWRfcG9ydHMgPSB7Im5pYW50aWMiOiAyLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJJMjE3ViI6IDEsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkky MTdMTSI6IDEsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkkyMThWIjogMSwN Cj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSTIxOExNIjogMX0NCj4gPiAgICAg ICAgICBzZWxmLmR1dF9wb3J0cyA9IHNlbGYuZHV0LmdldF9wb3J0cygpDQo+ID4gLSAgICAgICAg c2VsZi52ZXJpZnkobGVuKHNlbGYuZHV0X3BvcnRzKSA+PSBzZWxmLm5lZWRlZF9wb3J0c1tzZWxm Lm5pY10sDQo+ID4gKyAgICAgICAgc2VsZi52ZXJpZnkobGVuKHNlbGYuZHV0X3BvcnRzKSA+PSAy LA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICJJbnN1ZmZpY2llbnQgcG9ydHMgZm9yIHNwZWVk IHRlc3RpbmciKQ0KPiA+DQo+ID4gICAgICAgICAgb3V0ID0gc2VsZi5kdXQuYnVpbGRfZHBka19h cHBzKCIuL2V4YW1wbGVzL2lwX3BpcGVsaW5lIikNCj4gPiBAQCAtMzI0LDkgKzM0NiwxMCBAQCBj bGFzcyBUZXN0SVBQaXBlbGluZShUZXN0Q2FzZSk6DQo+ID4gICAgICAgICAgcGNhcF9maWxlID0g J2lwX3BpcGVsaW5lLnBjYXAnDQo+ID4gICAgICAgICAgZnJhbWVfc2l6ZSA9IDY0DQo+ID4NCj4g PiArICAgICAgICBzZWxmLmNyZWF0ZV9wYXNzdGhyb3VnaF9jZmdmaWxlKCkNCj4gPiAgICAgICAg ICBzZWxmLnN0YXJ0X2lwX3BpcGVsaW5lKHBvcnRzPXNlbGYucG9ydHNfbWFzaykNCj4gPiAgICAg ICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgNCj4gPiAtICAgICAgICAgICAgJ3J1biBleGFtcGxl cy9pcF9waXBlbGluZS9pcF9waXBlbGluZS5zaCcsICdwaXBlbGluZT4nLCAxMCkNCj4gPiArICAg ICAgICAgICAgJ3J1biBleGFtcGxlcy9pcF9waXBlbGluZS9jb25maWcvaXBfcGlwZWxpbmUuc2gn LA0KPiAncGlwZWxpbmU+JywgMTApDQo+ID4NCj4gPiAgICAgICAgICAjIENyZWF0ZSBhIFBDQVAg ZmlsZSBjb250YWluaW5nIHRoZSBtYXhpbXVtIGZyYW1lc19udW1iZXIgb2YNCj4gZnJhbWVzIG5l ZWRlZA0KPiA+ICAgICAgICAgICMgd2l0aCBmaXhlZCBzaXplIGFuZCBpbmNyZW1lbnRhbCBJUA0K PiA+IEBAIC0zNDIsMTMgKzM2NSwxMyBAQCBjbGFzcyBUZXN0SVBQaXBlbGluZShUZXN0Q2FzZSk6 DQo+ID4gICAgICAgICAgICAgICAgICBzdGF0cyA9IHNlbGYuc2VuZF9hbmRfc25pZmZfcGNhcF9m aWxlKHBjYXBfZmlsZSwNCj4gZnJhbWVzX251bWJlciwNCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgMCwgaW50ZXIpDQo+ID4NCj4g PiAtICAgICAgICAgICAgICAgIGV4cGVjdGVkID0geyd0eCc6IDAsICdyeCc6IGZyYW1lc19udW1i ZXJ9DQo+ID4gKyAgICAgICAgICAgICAgICBleHBlY3RlZCA9IHsncngwJzogZnJhbWVzX251bWJl ciwgJ3J4MSc6IDB9DQo+ID4gICAgICAgICAgICAgICAgICBzZWxmLmNoZWNrX3Jlc3VsdHMoc3Rh dHMsIGV4cGVjdGVkKQ0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICBzdGF0cyA9IHNlbGYuc2Vu ZF9hbmRfc25pZmZfcGNhcF9maWxlKHBjYXBfZmlsZSwNCj4gZnJhbWVzX251bWJlciwNCj4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwg MSwgaW50ZXIpDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgIGV4cGVjdGVkID0geyd0eCc6IGZy YW1lc19udW1iZXIsICdyeCc6IDB9DQo+ID4gKyAgICAgICAgICAgICAgICBleHBlY3RlZCA9IHsn cngwJzogMCwgJ3J4MSc6IGZyYW1lc19udW1iZXJ9DQo+ID4gICAgICAgICAgICAgICAgICBzZWxm LmNoZWNrX3Jlc3VsdHMoc3RhdHMsIGV4cGVjdGVkKQ0KPiA+DQo+ID4gICAgICBkZWYgdGVzdF9m cmFtZV9zaXplcyhzZWxmKToNCj4gPiBAQCAtMzU5LDkgKzM4MiwxMCBAQCBjbGFzcyBUZXN0SVBQ aXBlbGluZShUZXN0Q2FzZSk6DQo+ID4gICAgICAgICAgZnJhbWVzX251bWJlciA9IDEwMA0KPiA+ ICAgICAgICAgIGludGVyID0gMC41DQo+ID4NCj4gPiArICAgICAgICBzZWxmLmNyZWF0ZV9wYXNz dGhyb3VnaF9jZmdmaWxlKCkNCj4gPiAgICAgICAgICBzZWxmLnN0YXJ0X2lwX3BpcGVsaW5lKHBv cnRzPXNlbGYucG9ydHNfbWFzaykNCj4gPiAgICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgN Cj4gPiAtICAgICAgICAgICAgJ3J1biBleGFtcGxlcy9pcF9waXBlbGluZS9pcF9waXBlbGluZS5z aCcsICdwaXBlbGluZT4nLCAxMCkNCj4gPiArICAgICAgICAgICAgJ3J1biBleGFtcGxlcy9pcF9w aXBlbGluZS9jb25maWcvaXBfcGlwZWxpbmUuc2gnLA0KPiAncGlwZWxpbmU+JywgMTApDQo+ID4N Cj4gPiAgICAgICAgICBmb3IgZnJhbWVfc2l6ZSBpbiBUZXN0SVBQaXBlbGluZS5mcmFtZV9zaXpl czoNCj4gPg0KPiA+IEBAIC0zNzYsMTMgKzQwMCwxMyBAQCBjbGFzcyBUZXN0SVBQaXBlbGluZShU ZXN0Q2FzZSk6DQo+ID4gICAgICAgICAgICAgIHN0YXRzID0gc2VsZi5zZW5kX2FuZF9zbmlmZl9w Y2FwX2ZpbGUocGNhcF9maWxlLA0KPiBmcmFtZXNfbnVtYmVyLA0KPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDAsIGludGVyKQ0KPiA+DQo+ ID4gLSAgICAgICAgICAgIGV4cGVjdGVkID0geyd0eCc6IDAsICdyeCc6IGZyYW1lc19udW1iZXJ9 DQo+ID4gKyAgICAgICAgICAgIGV4cGVjdGVkID0geydyeDAnOiBmcmFtZXNfbnVtYmVyLCAncngx JzogMH0NCj4gPiAgICAgICAgICAgICAgc2VsZi5jaGVja19yZXN1bHRzKHN0YXRzLCBleHBlY3Rl ZCkNCj4gPg0KPiA+ICAgICAgICAgICAgICBzdGF0cyA9IHNlbGYuc2VuZF9hbmRfc25pZmZfcGNh cF9maWxlKHBjYXBfZmlsZSwNCj4gZnJhbWVzX251bWJlciwNCj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCBpbnRlcikNCj4gPg0KPiA+ IC0gICAgICAgICAgICBleHBlY3RlZCA9IHsndHgnOiBmcmFtZXNfbnVtYmVyLCAncngnOiAwfQ0K PiA+ICsgICAgICAgICAgICBleHBlY3RlZCA9IHsncngwJzogMCwgJ3J4MSc6IGZyYW1lc19udW1i ZXJ9DQo+ID4gICAgICAgICAgICAgIHNlbGYuY2hlY2tfcmVzdWx0cyhzdGF0cywgZXhwZWN0ZWQp DQo+ID4NCj4gPiAgICAgIGRlZiB0ZXN0X2Zsb3dfbWFuYWdlbWVudChzZWxmKToNCj4gPiBAQCAt MzkyLDExICs0MTYsNiBAQCBjbGFzcyBUZXN0SVBQaXBlbGluZShUZXN0Q2FzZSk6DQo+ID4gICAg ICAgICAgcGNhcF9maWxlID0gJ2lwX3BpcGVsaW5lLnBjYXAnDQo+ID4gICAgICAgICAgZnJhbWVf c2l6ZSA9IDY0DQo+ID4NCj4gPiAtICAgICAgICBkZWZhdWx0X3NldHVwID0gWydhcnAgYWRkIDAg MC4wLjAuMSAwYTowYjowYzowZDowZTowZicsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAnYXJwIGFkZCAxIDAuMTI4LjAuMSAxYToxYjoxYzoxZDoxZToxZicsDQo+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAncm91dGUgYWRkIDAuMC4wLjAgOSAwIDAuMC4wLjEnLA0KPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgJ3JvdXRlIGFkZCAwLjEyOC4wLjAgOSAxIDAuMTI4LjAu MSddDQo+ID4gLQ0KPiA+ICAgICAgICAgIGlwX2FkZHJzID0gWw0KPiA+ICAgICAgICAgICAgICAn MC4wLjAuMCcsICcwLjAuMC4xJywgJzAuMC4wLjEyNycsICcwLjAuMC4xMjgnLCAnMC4wLjAuMjU1 JywNCj4gPiAgICAgICAgICAgICAgJzAuMC4xLjAnLCAnMC4wLjEyNy4wJywgJzAuMC4xMjguMCcs ICcwLjAuMTI5LjAnLA0KPiAnMC4wLjI1NS4wJywNCj4gPiBAQCAtNDA5LDMwICs0MjgsMzIgQEAg Y2xhc3MgVGVzdElQUGlwZWxpbmUoVGVzdENhc2UpOg0KPiA+ICAgICAgICAgICAgICBmcmFtZXMu YXBwZW5kKHNlbGYuY3JlYXRlX3RjcF9pcHY0X2ZyYW1lKDAsICcwLjAuMC4wJywgYWRkciwNCj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm cmFtZV9zaXplKSkNCj4gPg0KPiA+ICsgICAgICAgIHNlbGYuY3JlYXRlX2Zsb3dfY2ZnZmlsZSgp DQo+ID4gICAgICAgICAgc2VsZi5jcmVhdGVfcGNhcF9maWxlX2Zyb21fZnJhbWVzKHBjYXBfZmls ZSwgZnJhbWVzKQ0KPiA+ICAgICAgICAgIHNlbGYudGVzdGVyLnNlc3Npb24uY29weV9maWxlX3Rv KHBjYXBfZmlsZSkNCj4gPg0KPiA+ICAgICAgICAgICMgU3RhcnQgaXBfcGlwZWxpbmUgYXBwIGFu ZCBzZXR1cCBkZWZhdWx0cw0KPiA+ICAgICAgICAgIHNlbGYuc3RhcnRfaXBfcGlwZWxpbmUocG9y dHM9c2VsZi5wb3J0c19tYXNrKQ0KPiA+IC0gICAgICAgIGZvciBjb21tYW5kIGluIGRlZmF1bHRf c2V0dXA6DQo+ID4gLSAgICAgICAgICAgIHNlbGYucGlwZWxpbmVfY29tbWFuZChjb21tYW5kKQ0K PiA+ICsNCj4gPiArICAgICAgICAjIGRlZmF1bHQgdG8gU0lOSzANCj4gPiArICAgICAgICBzZWxm LnBpcGVsaW5lX2NvbW1hbmQoJ3AgMSBmbG93IGFkZCBkZWZhdWx0IDMnKQ0KPiA+DQo+ID4gICAg ICAgICAgIyBDaGVjayB0aGF0IG5vIHRyYWZmaWMgcGFzcyB0aG91Z2gNCj4gPiAgICAgICAgICBz dGF0cyA9IHNlbGYuc2VuZF9hbmRfc25pZmZfcGNhcF9maWxlKHBjYXBfZmlsZSwgbGVuKGZyYW1l cyksDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx LCAwLCAwLjIpDQo+ID4gLSAgICAgICAgZXhwZWN0ZWQgPSB7J3R4JzogMCwgJ3J4JzogMH0NCj4g PiArICAgICAgICBleHBlY3RlZCA9IHsncngwJzogMCwgJ3J4MSc6IDB9DQo+ID4gICAgICAgICAg c2VsZi5jaGVja19yZXN1bHRzKHN0YXRzLCBleHBlY3RlZCkNCj4gPg0KPiA+ICAgICAgICAgICMg QWRkIHRoZSBmbG93cw0KPiA+ICAgICAgICAgIGZsb3dzX2FkZGVkID0gMA0KPiA+ICAgICAgICAg IGZvciBhZGRycyBpbiBpcF9hZGRyczoNCj4gPiAtICAgICAgICAgICAgc2VsZi5waXBlbGluZV9h ZGRfZmxvdygxLCAnMC4wLjAuMCcsIGFkZHJzLCAwLCAwKQ0KPiA+ICsgICAgICAgICAgICBzZWxm LnBpcGVsaW5lX2FkZF9mbG93KDAsICcwLjAuMC4wJywgYWRkcnMsIDAsIDAsDQo+IGZsb3dzX2Fk ZGVkKQ0KPiA+ICAgICAgICAgICAgICBmbG93c19hZGRlZCArPSAxDQo+ID4NCj4gPiAgICAgICAg ICAgICAgIyBDaGVjayB0aGF0IHRyYWZmaWMgbWF0Y2hpbmcgZmxvd3MgcGFzcyB0aG91Z2gNCj4g PiAgICAgICAgICAgICAgc3RhdHMgPSBzZWxmLnNlbmRfYW5kX3NuaWZmX3BjYXBfZmlsZShwY2Fw X2ZpbGUsDQo+IGxlbihmcmFtZXMpLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAuMikNCj4gPiAtICAgICAgICAgICAgZXhwZWN0 ZWQgPSB7J3R4JzogMCwgJ3J4JzogZmxvd3NfYWRkZWR9DQo+ID4gKyAgICAgICAgICAgIGV4cGVj dGVkID0geydyeDAnOiBmbG93c19hZGRlZCwgJ3J4MSc6IDB9DQo+ID4gICAgICAgICAgICAgIHNl bGYuY2hlY2tfcmVzdWx0cyhzdGF0cywgZXhwZWN0ZWQpDQo+ID4NCj4gPiAgICAgICAgICAjIFJl bW92ZSBmbG93cw0KPiA+IEBAIC00NDMsNyArNDY0LDcgQEAgY2xhc3MgVGVzdElQUGlwZWxpbmUo VGVzdENhc2UpOg0KPiA+ICAgICAgICAgICAgICAjIENoZWNrIHRoYXQgdHJhZmZpYyBtYXRjaGlu ZyBmbG93cyBwYXNzIHRob3VnaA0KPiA+ICAgICAgICAgICAgICBzdGF0cyA9IHNlbGYuc2VuZF9h bmRfc25pZmZfcGNhcF9maWxlKHBjYXBfZmlsZSwNCj4gbGVuKGZyYW1lcyksDQo+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgMCwgMC4yKQ0K PiA+IC0gICAgICAgICAgICBleHBlY3RlZCA9IHsndHgnOiAwLCAncngnOiBmbG93c19hZGRlZH0N Cj4gPiArICAgICAgICAgICAgZXhwZWN0ZWQgPSB7J3J4MCc6IGZsb3dzX2FkZGVkLCAncngxJzog MH0NCj4gPiAgICAgICAgICAgICAgc2VsZi5jaGVja19yZXN1bHRzKHN0YXRzLCBleHBlY3RlZCkN Cj4gPg0KPiA+ICAgICAgICAgIG91dCA9IHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdmbG93IHByaW50 JywgJ3BpcGVsaW5lPicpDQo+ID4gQEAgLTQ1Miw3ICs0NzMsNyBAQCBjbGFzcyBUZXN0SVBQaXBl bGluZShUZXN0Q2FzZSk6DQo+ID4gICAgICAgICAgIyBDaGVjayB0aGF0IGFnYWluIG5vIHRyYWZm aWMgcGFzcyB0aG91Z2gNCj4gPiAgICAgICAgICBzdGF0cyA9IHNlbGYuc2VuZF9hbmRfc25pZmZf cGNhcF9maWxlKHBjYXBfZmlsZSwgbGVuKGZyYW1lcyksDQo+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLjIpDQo+ID4gLSAgICAgICAgZXhw ZWN0ZWQgPSB7J3R4JzogMCwgJ3J4JzogMH0NCj4gPiArICAgICAgICBleHBlY3RlZCA9IHsncngw JzogMCwgJ3J4MSc6IDB9DQo+ID4gICAgICAgICAgc2VsZi5jaGVja19yZXN1bHRzKHN0YXRzLCBl eHBlY3RlZCkNCj4gPg0KPiA+ICAgICAgICAgIHNlbGYucXVpdF9pcF9waXBlbGluZSgpDQo+ID4g QEAgLTQ2NCw5ICs0ODUsOCBAQCBjbGFzcyBUZXN0SVBQaXBlbGluZShUZXN0Q2FzZSk6DQo+ID4g ICAgICAgICAgcGNhcF9maWxlID0gJ2lwX3BpcGVsaW5lLnBjYXAnDQo+ID4gICAgICAgICAgZnJh bWVfc2l6ZSA9IDY0DQo+ID4NCj4gPiAtICAgICAgICBkZWZhdWx0X3NldHVwID0gWydhcnAgYWRk IDAgMC4wLjAuMSAwYTowYjowYzowZDowZTowZicsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAnYXJwIGFkZCAxIDAuMTI4LjAuMSAxYToxYjoxYzoxZDoxZToxZicsDQo+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAnZmxvdyBhZGQgYWxsJ10NCj4gPiArICAgICAgICBkZWZhdWx0 X3NldHVwID0gWydwIDEgYXJwIGFkZCAwIDAuMC4wLjEgMGE6MGI6MGM6MGQ6MGU6MGYnLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgJ3AgMSBhcnAgYWRkIDEgMC4xMjguMC4xIDFhOjFi OjFjOjFkOjFlOjFmJ10NCj4gPg0KPiA+ICAgICAgICAgIGlwX2FkZHJzID0gWw0KPiA+ICAgICAg ICAgICAgICAnMC4wLjAuMCcsICcwLjAuMC4xJywgJzAuMC4wLjEyNycsICcwLjAuMC4xMjgnLCAn MC4wLjAuMjU1JywNCj4gPiBAQCAtNDgzLDYgKzUwMyw3IEBAIGNsYXNzIFRlc3RJUFBpcGVsaW5l KFRlc3RDYXNlKToNCj4gPiAgICAgICAgICBzZWxmLmNyZWF0ZV9wY2FwX2ZpbGVfZnJvbV9mcmFt ZXMocGNhcF9maWxlLCBmcmFtZXMpDQo+ID4gICAgICAgICAgc2VsZi50ZXN0ZXIuc2Vzc2lvbi5j b3B5X2ZpbGVfdG8ocGNhcF9maWxlKQ0KPiA+DQo+ID4gKyAgICAgICAgc2VsZi5jcmVhdGVfcm91 dGluZ19jZmdmaWxlKCkNCj4gPiAgICAgICAgICAjIFN0YXJ0IGlwX3BpcGVsaW5lIGFwcCBhbmQg c2V0dXAgZGVmYXVsdHMNCj4gPiAgICAgICAgICBzZWxmLnN0YXJ0X2lwX3BpcGVsaW5lKHBvcnRz PXNlbGYucG9ydHNfbWFzaykNCj4gPiAgICAgICAgICBmb3IgY29tbWFuZCBpbiBkZWZhdWx0X3Nl dHVwOg0KPiA+IEBAIC00OTEsNyArNTEyLDcgQEAgY2xhc3MgVGVzdElQUGlwZWxpbmUoVGVzdENh c2UpOg0KPiA+ICAgICAgICAgICMgQ2hlY2sgdGhhdCBubyB0cmFmZmljIHBhc3MgdGhvdWdoDQo+ ID4gICAgICAgICAgc3RhdHMgPSBzZWxmLnNlbmRfYW5kX3NuaWZmX3BjYXBfZmlsZShwY2FwX2Zp bGUsIGxlbihmcmFtZXMpLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMSwgMCwgMC4yKQ0KPiA+IC0gICAgICAgIGV4cGVjdGVkID0geyd0eCc6IDAs ICdyeCc6IDB9DQo+ID4gKyAgICAgICAgZXhwZWN0ZWQgPSB7J3J4MCc6IDAsICdyeDEnOiAwfQ0K PiA+ICAgICAgICAgIHNlbGYuY2hlY2tfcmVzdWx0cyhzdGF0cywgZXhwZWN0ZWQpDQo+ID4NCj4g PiAgICAgICAgICAjIEFkZCB0aGUgcm91dGVzDQo+ID4gQEAgLTUwNCw3ICs1MjUsNyBAQCBjbGFz cyBUZXN0SVBQaXBlbGluZShUZXN0Q2FzZSk6DQo+ID4gICAgICAgICAgICAgIHN0YXRzID0gc2Vs Zi5zZW5kX2FuZF9zbmlmZl9wY2FwX2ZpbGUocGNhcF9maWxlLA0KPiBsZW4oZnJhbWVzKSwNCj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAw LCAwLjIpDQo+ID4NCj4gPiAtICAgICAgICAgICAgZXhwZWN0ZWQgPSB7J3R4JzogMCwgJ3J4Jzog cm91dGVzX2FkZGVkfQ0KPiA+ICsgICAgICAgICAgICBleHBlY3RlZCA9IHsncngwJzogcm91dGVz X2FkZGVkLCAncngxJzogMH0NCj4gPiAgICAgICAgICAgICAgc2VsZi5jaGVja19yZXN1bHRzKHN0 YXRzLCBleHBlY3RlZCkNCj4gPg0KPiA+ICAgICAgICAgICMgUmVtb3ZlIHJvdXRlcw0KPiA+IEBA IC01MTUsNyArNTM2LDcgQEAgY2xhc3MgVGVzdElQUGlwZWxpbmUoVGVzdENhc2UpOg0KPiA+ICAg ICAgICAgICAgICAjIENoZWNrIHRoYXQgdHJhZmZpYyBtYXRjaGluZyBmbG93cyBwYXNzIHRob3Vn aA0KPiA+ICAgICAgICAgICAgICBzdGF0cyA9IHNlbGYuc2VuZF9hbmRfc25pZmZfcGNhcF9maWxl KHBjYXBfZmlsZSwNCj4gbGVuKGZyYW1lcyksDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgMCwgMC4yKQ0KPiA+IC0gICAgICAgICAgICBl eHBlY3RlZCA9IHsndHgnOiAwLCAncngnOiByb3V0ZXNfYWRkZWR9DQo+ID4gKyAgICAgICAgICAg IGV4cGVjdGVkID0geydyeDAnOiByb3V0ZXNfYWRkZWQsICdyeDEnOiAwfQ0KPiA+ICAgICAgICAg ICAgICBzZWxmLmNoZWNrX3Jlc3VsdHMoc3RhdHMsIGV4cGVjdGVkKQ0KPiA+DQo+ID4gICAgICAg ICAgb3V0ID0gc2VsZi5kdXQuc2VuZF9leHBlY3QoJ3JvdXRlIHByaW50JywgJ3BpcGVsaW5lPicp DQo+ID4gQEAgLTUyNCw3ICs1NDUsNyBAQCBjbGFzcyBUZXN0SVBQaXBlbGluZShUZXN0Q2FzZSk6 DQo+ID4gICAgICAgICAgIyBDaGVjayB0aGF0IGFnYWluIG5vIHRyYWZmaWMgcGFzcyB0aG91Z2gN Cj4gPiAgICAgICAgICBzdGF0cyA9IHNlbGYuc2VuZF9hbmRfc25pZmZfcGNhcF9maWxlKHBjYXBf ZmlsZSwgbGVuKGZyYW1lcyksDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAxLCAwLCAwLjIpDQo+ID4gLSAgICAgICAgZXhwZWN0ZWQgPSB7J3R4Jzog MCwgJ3J4JzogMH0NCj4gPiArICAgICAgICBleHBlY3RlZCA9IHsncngwJzogMCwgJ3J4MSc6IDB9 DQo+ID4gICAgICAgICAgc2VsZi5jaGVja19yZXN1bHRzKHN0YXRzLCBleHBlY3RlZCkNCj4gPg0K PiA+ICAgICAgICAgIHNlbGYucXVpdF9pcF9waXBlbGluZSgpDQo+ID4gQEAgLTUzOSw1ICs1NjAs NyBAQCBjbGFzcyBUZXN0SVBQaXBlbGluZShUZXN0Q2FzZSk6DQo+ID4gICAgICAgICAgIiIiDQo+ ID4gICAgICAgICAgUnVuIGFmdGVyIGVhY2ggdGVzdCBzdWl0ZS4NCj4gPiAgICAgICAgICAiIiIN Cj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgicm0gL3RtcC9pcF9waXBlbGluZS5j ZmciLCAiIyIpDQo+ID4gKyAgICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoInJtIC90bXAvaXBf cGlwZWxpbmUuY2ZnLm91dCIsICIjIikNCj4gPiAgICAgICAgICBvdXQgPSBzZWxmLmR1dC5idWls ZF9kcGRrX2FwcHMoIi4vZXhhbXBsZXMvaXBfcGlwZWxpbmUiKQ0KPiA+ICAgICAgICAgIHNlbGYu dmVyaWZ5KCJFcnJvciIgbm90IGluIG91dCwgIkNvbXBpbGF0aW9uIGVycm9yIikNCj4gPiAtLQ0K PiA+IDEuOS4xDQo+ID4NCg==