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 517E3A04DD; Thu, 22 Oct 2020 10:53:35 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4129C72EB; Thu, 22 Oct 2020 10:53:34 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 10A7972EA for ; Thu, 22 Oct 2020 10:53:30 +0200 (CEST) IronPort-SDR: TBXrWxNd6RmilKADsOHqFLLFebwEXRmBjL8KQUOWwGvty1I9E6u4jS+DcKXe8cZLr/cOVpeugg KBNeT0RpiKeA== X-IronPort-AV: E=McAfee;i="6000,8403,9781"; a="167592706" X-IronPort-AV: E=Sophos;i="5.77,404,1596524400"; d="scan'208";a="167592706" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Oct 2020 01:53:28 -0700 IronPort-SDR: jxQA0GLgHJxat2oLmm3DwDdHvH5RXbQG6U9axa0pdiFRhs54FiPw5TzWiwyaoUg4FJC7OamqK1 iTj1dc4Ubkjg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,404,1596524400"; d="scan'208";a="332883857" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga002.jf.intel.com with ESMTP; 22 Oct 2020 01:53:28 -0700 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 22 Oct 2020 01:53:26 -0700 Received: from shsmsx601.ccr.corp.intel.com (10.109.6.141) by SHSMSX603.ccr.corp.intel.com (10.109.6.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 22 Oct 2020 16:53:24 +0800 Received: from shsmsx601.ccr.corp.intel.com ([10.109.6.141]) by SHSMSX601.ccr.corp.intel.com ([10.109.6.141]) with mapi id 15.01.1713.004; Thu, 22 Oct 2020 16:53:24 +0800 From: "Tu, Lijuan" To: Owen Hilyard , "dts@dpdk.org" , "Ma, LihongX" CC: "lylavoie@iol.unh.edu" , "Chen, Zhaoyan" , "Peng, Yuan" , "shall@iol.unh.edu" Thread-Topic: [PATCH] rte flow: added test suite and framework Thread-Index: AQHWomvEAnA7RsvAikmcrJegT5NcD6mjV0eQ Date: Thu, 22 Oct 2020 08:53:24 +0000 Message-ID: References: <20201014205051.16205-1-ohilyard@iol.unh.edu> In-Reply-To: <20201014205051.16205-1-ohilyard@iol.unh.edu> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.5.1.3 dlp-product: dlpe-windows x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dts] [PATCH] rte flow: added test suite and framework 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: , Errors-To: dts-bounces@dpdk.org Sender: "dts" MSwgbmVlZCB0byBhZGQgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluIGVhY2ggZmlsZS4NCjIsIHRv byBtYW55IGZpbGVzIGluIGEgcGF0Y2gsIHBsZWFzZSBzcGxpdCBpdCB0byBzZXJ2YWwgcGF0Y2hl cywgYW5kIG1ha2UgdGhlbSBhIHBhdGNoIHNldC4gQSBsYXJnZSBwYXRjaCBpcyByZWFsbHkgaGFy ZCB0byByZXZpZXcuDQozLCBpZiBmaXhlZCBzb21lIGlzc3VlcyBvZiBhIHBhdGNoLCBwbGVhc2Ug c2VuZCBvdXQgVjIgYmFzZWQgb24gbWFzdGVyLCBub3QgYSBmaXhlcyBiYXNlZCBvbiBWMS4NCjQs ICBoYXZlIHlvdSB0ZXN0ZWQgdGhlIHBhdGNoLCB3ZSBoYXZlbid0IGdvdCBjaGFuZ2UgdG8gdGVz dCBpdC4gVGhlIGltcGxlbWVudCBzZWVtcyBvayBmb3IgbWUuDQoNCj4gKyAgICBhY3Rpb25fZnVu Y3Rpb25zID0NCj4gY3JlYXRlX3Rlc3RfZnVuY3Rpb25fc3RyaW5ncyhnZXRfdGVzdF9jb25maWdz X2Zvcl9hY3Rpb25zKCkpDQo+ICsgICAgcHJpbnQoIlxuIi5qb2luKGFjdGlvbl9mdW5jdGlvbnMp KQ0KDQpXaHkgdXNlIHByaW50LCBidXQgbm90IGR0cyBhcGk6IHNlbGYubG9nZ2VyLmluZm8sIGlz IHRoZXJlIGEgc3BlY2lhbCByZWFzb24/DQoNCg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+IEZyb206IE93ZW4gSGlseWFyZCA8b2hpbHlhcmRAaW9sLnVuaC5lZHU+DQo+IFNlbnQ6 IDIwMjDlubQxMOaciDE15pelIDQ6NTENCj4gVG86IGR0c0BkcGRrLm9yZzsgTWEsIExpaG9uZ1gg PGxpaG9uZ3gubWFAaW50ZWwuY29tPg0KPiBDYzogb2hpbHlhcmRAaW9sLnVuaC5lZHU7IGx5bGF2 b2llQGlvbC51bmguZWR1OyBDaGVuLCBaaGFveWFuDQo+IDx6aGFveWFuLmNoZW5AaW50ZWwuY29t PjsgUGVuZywgWXVhbiA8eXVhbi5wZW5nQGludGVsLmNvbT47IFR1LCBMaWp1YW4NCj4gPGxpanVh bi50dUBpbnRlbC5jb20+OyBzaGFsbEBpb2wudW5oLmVkdQ0KPiBTdWJqZWN0OiBbUEFUQ0hdIHJ0 ZSBmbG93OiBhZGRlZCB0ZXN0IHN1aXRlIGFuZCBmcmFtZXdvcmsNCj4gDQo+IFRoZSBmcmFtZXdv cmsgZm9yIHRoZSBydGUgZmxvdyBjYW4gYmUgZm91bmQgaW4gZnJhbWV3b3JrL2Zsb3cuIFRoZSBw bGFuDQo+IGZvciB0aGlzIHRlc3Qgc3VpdGUgd2FzIHRvIGRlc2lnbiBhIHR5cGUgc3lzdGVtIGFu ZCB0aGVuIHVzZSB0aGUNCj4gY29uc3RyYWludHMgY3JlYXRlZCBieSB0aGUgdHlwZSBzeXN0ZW0g dG8gZ2VuZXJhdGUgYWxsIHBvc3NpYmxlIGZsb3cNCj4gcnVsZXMgd2l0aGluIHJlYXNvbiAoYWRk cmVzc2VzIGFuZCBwb3J0cyB3b3VsZCBvbmx5IHVzZSBhIGZldyBvcHRpb25zKS4NCj4gVGhlIHR5 cGUgc3lzdGVtIHdhcyBkZXNpZ25lZCBhbmQgdGhlbiBpdCB3YXMgZm91bmQgdGhhdCB0aGlzIHBy b2R1Y2VzDQo+IDIsNTQ5LDAyNiBwYXR0ZXJucyB3aXRob3V0IGRlYWxpbmcgd2l0aCBhbnkgb2Yg dGhlIHNwZWMgYXR0cmlidXRlcyBvZg0KPiB0aGUgcGF0dGVybiBpdGVtcy4gSWYgYWxsIHBvc3Np YmxlIGFjdGlvbnMgd2VyZSB0byBiZSB0ZXN0ZWQsIHRoaXMNCj4gYnJvdWdodCB0aGUgbnVtYmVy IG9mIHJlcXVpcmVkIHRlc3QgY2FzZXMgdXAgdG8NCj4gMTEsNDc5LDc5Miw1NDMsNzU3LDcwNSw5 MzYsODk2LiBBcyBzdWNoLCB0aGlzIGJydXRlLWZvcmNlIGFwcHJvYWNoIHdhcw0KPiBhYmFuZG9u ZWQuIEF0dGVtcHRzIHdlcmUgbWFkZSB0byByZXN0cmljdCB0aGUgdHlwZSBzeXN0ZW0gZW5vdWdo IHRvDQo+IGNyZWF0ZSBhIHJlYXNvbmFibGUgbnVtYmVyIG9mIHJ1bGVzLCBidXQgZXZlbnR1YWxs eSBpdCB3YXMgZm91bmQgdG8gYmUNCj4gYSBtdWNoIGJldHRlciB1c2Ugb2YgZGV2ZWxvcGVyIHRp bWUgdG8gd3JpdGUgdGhlIHJ1bGVzIGJ5IGhhbmQgd2l0aCB0aGUNCj4gYWlkIG9mIHNvbWUgcnVu dGltZSBjb2RlIGdlbmVyYXRpb24gdG8gY3JlYXRlIG1vc3Qgb2YgdGhlIHBhdHRlcm4gdGVzdCwN Cj4gaGF2aW5nIHRoZW0gYWxsIHVzZSB0aGUgcXVldWUgYWN0aW9uIGR1ZSB0byBpdCdzIGVhc3kg dG8gZGV0ZWN0IHByZXNlbmNlDQo+IHdoZW4gdmVyYm9zZSBsb2dnaW5nIGlzIHR1cm5lZCBvbi4N Cj4gDQo+IFRoZSB0eXBlIHN5c3RlbSBpcyBwYXJ0IG9mIHRoaXMgY29tbWl0IGJlY2F1c2UgaXQg c3RpbGwgcHJvdmlkZXMgYQ0KPiBwYXJ0aWFsIGZyYW1ld29yayBmb3IgY3JlYXRpbmcgZmxvdyBy dWxlcywgbW9kZWxlZCBhZnRlciB0aGUgd2F5IHBhY2tldHMNCj4gbWF5IGJlIGNyZWF0ZWQgd2l0 aCBzY2FweS4NCj4gDQo+IFByb3RvY29scyB3aGljaCBhcmUgc3VwcG9ydGVkIGJ5IHRlc3RwbWQg YnV0IGFyZSBub3Qgc3VwcG9ydGVkIGluIHNjYXB5DQo+IHdlcmUgbm90IHRlc3RlZCBkdWUgdG8g dGhlIHRpbWUgcmVxdWlyZW1lbnRzIG9mIGNyZWF0aW5nIHByb3RvY29sDQo+IGltcGxpbWVudGF0 aW9ucy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gSGlseWFyZCA8b2hpbHlhcmRAaW9sLnVu aC5lZHU+DQo+IFNpZ25lZC1vZmYtYnk6IFNhcmFoIEhhbGwgPHNoYWxsQGlvbC51bmguZWR1Pg0K PiAtLS0NCj4gIGZyYW1ld29yay9mbG93L19faW5pdF9fLnB5ICAgICAgICAgICB8ICAgIDANCj4g IGZyYW1ld29yay9mbG93L2VudW1zLnB5ICAgICAgICAgICAgICB8ICAgOTEgKw0KPiAgZnJhbWV3 b3JrL2Zsb3cvZXhjZXB0aW9ucy5weSAgICAgICAgIHwgICAxMiArDQo+ICBmcmFtZXdvcmsvZmxv dy9mbG93LnB5ICAgICAgICAgICAgICAgfCAgMTU1ICsNCj4gIGZyYW1ld29yay9mbG93L2Zsb3df YWN0aW9uX2l0ZW1zLnB5ICB8IDEwMTggKysrKysrKw0KPiAgZnJhbWV3b3JrL2Zsb3cvZmxvd19p dGVtcy5weSAgICAgICAgIHwgICA4NCArDQo+ICBmcmFtZXdvcmsvZmxvdy9mbG93X3BhdHRlcm5f aXRlbXMucHkgfCAxMDc2ICsrKysrKysNCj4gIGZyYW1ld29yay9mbG93L2Zsb3dfcnVsZS5weSAg ICAgICAgICB8ICAgMzEgKw0KPiAgZnJhbWV3b3JrL2Zsb3cvZ2VuZXJhdG9yLnB5ICAgICAgICAg IHwgIDE1NSArDQo+ICB0ZXN0X3BsYW5zL2luZGV4LnJzdCAgICAgICAgICAgICAgICAgfCAgICAx ICsNCj4gIHRlc3RfcGxhbnMvcnRlX2Zsb3dfdGVzdF9wbGFuLnJzdCAgICB8IDQxMTQgKysrKysr KysrKysrKysrKysrKysrKysrKysNCj4gIHRlc3RfcGxhbnMvcnRlX2Zsb3dfdW5zdXBwb3J0ZWQu cnN0ICB8ICAxMzAgKw0KPiAgdGVzdHMvVGVzdFN1aXRlX3J0ZV9mbG93LnB5ICAgICAgICAgIHwg IDIzMiArKw0KPiAgMTMgZmlsZXMgY2hhbmdlZCwgNzA5OSBpbnNlcnRpb25zKCspDQo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgZnJhbWV3b3JrL2Zsb3cvX19pbml0X18ucHkNCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBmcmFtZXdvcmsvZmxvdy9lbnVtcy5weQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGZy YW1ld29yay9mbG93L2V4Y2VwdGlvbnMucHkNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBmcmFtZXdv cmsvZmxvdy9mbG93LnB5DQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZnJhbWV3b3JrL2Zsb3cvZmxv d19hY3Rpb25faXRlbXMucHkNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBmcmFtZXdvcmsvZmxvdy9m bG93X2l0ZW1zLnB5DQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZnJhbWV3b3JrL2Zsb3cvZmxvd19w YXR0ZXJuX2l0ZW1zLnB5DQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZnJhbWV3b3JrL2Zsb3cvZmxv d19ydWxlLnB5DQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZnJhbWV3b3JrL2Zsb3cvZ2VuZXJhdG9y LnB5DQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdF9wbGFucy9ydGVfZmxvd190ZXN0X3BsYW4u cnN0DQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdF9wbGFucy9ydGVfZmxvd191bnN1cHBvcnRl ZC5yc3QNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9UZXN0U3VpdGVfcnRlX2Zsb3cucHkN Cj4gDQo+IGRpZmYgLS1naXQgYS9mcmFtZXdvcmsvZmxvdy9fX2luaXRfXy5weSBiL2ZyYW1ld29y ay9mbG93L19faW5pdF9fLnB5DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAw MDAwLi5lNjlkZTI5Yg0KPiBkaWZmIC0tZ2l0IGEvZnJhbWV3b3JrL2Zsb3cvZW51bXMucHkgYi9m cmFtZXdvcmsvZmxvdy9lbnVtcy5weQ0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAw MDAwMDAwMC4uYjQ5ODFmMmINCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9mcmFtZXdvcmsvZmxv dy9lbnVtcy5weQ0KPiBAQCAtMCwwICsxLDkxIEBADQo+ICtmcm9tIGVudW0gaW1wb3J0IEVudW0N Cj4gKw0KPiArDQo+ICtjbGFzcyBGbG93UnVsZVR5cGUoRW51bSk6DQo+ICsgICAgSU5HUkVTUyA9 ICJpbmdyZXNzIg0KPiArICAgIEVHUkVTUyA9ICJlZ3Jlc3MiDQo+ICsgICAgQk9USCA9ICIiDQo+ ICsNCj4gKw0KPiArY2xhc3MgRmxvd0l0ZW1UeXBlKEVudW0pOg0KPiArICAgIFVEUCA9ICJ1ZHAi DQo+ICsgICAgVENQID0gInRjcCINCj4gKyAgICBTQ1RQID0gInNjdHAiDQo+ICsgICAgSVBWNCA9 ICJpcHY0Ig0KPiArICAgIElQVjYgPSAiaXB2NiINCj4gKyAgICBFTkQgPSAiZW5kIg0KPiArICAg IFZPSUQgPSAidm9pZCINCj4gKyAgICBJTlZFUlQgPSAiaW52ZXJ0Ig0KPiArICAgIEFOWSA9ICJh bnkiDQo+ICsgICAgUkFXID0gInJhdyINCj4gKyAgICBFVEggPSAiZXRoIg0KPiArICAgIFZMQU4g PSAidmxhbiINCj4gKyAgICBWWExBTiA9ICJ2eGxhbiINCj4gKyAgICBHUkUgPSAiZ3JlIg0KPiAr ICAgIFZYTEFOX0dQRSA9ICJ2eGxhbl9ncGUiDQo+ICsgICAgQVJQX0VUSF9JUFY0ID0gImFycF9l dGhfaXB2NCINCj4gKyAgICBJQ01QID0gImljbXAiDQo+ICsgICAgSUNNUDYgPSAiaWNtcDYiDQo+ ICsgICAgTUFSSyA9ICJtYXJrIg0KPiArICAgIE1FVEEgPSAibWV0YSINCj4gKyAgICBUQUcgPSAi dGFnIg0KPiArICAgIEZVWlpZID0gImZ1enp5Ig0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rp b25UeXBlKEVudW0pOg0KPiArICAgICMgIlNpbXBsZSIgYWN0aW9ucyB0aGF0IGRvbid0IG5lZWQg cGFyYW1ldGVycw0KPiArICAgIFZPSUQgPSAidm9pZCINCj4gKyAgICBQQVNTVEhSVSA9ICJwYXNz dGhydSINCj4gKyAgICBGTEFHID0gImZsYWciDQo+ICsgICAgRFJPUCA9ICJkcm9wIg0KPiArICAg IENPVU5UID0gImNvdW50Ig0KPiArICAgIE1BQ19TV0FQID0gIm1hY19zd2FwIg0KPiArICAgIERF Q19UVEwgPSAiZGVjX3R0bCINCj4gKw0KPiArICAgICMgQWN0aW9ucyB0aGF0IGRvIG5lZWQgcGFy YW1ldGVycw0KPiArICAgIEpVTVAgPSAianVtcCINCj4gKyAgICBNQVJLID0gIm1hcmsiDQo+ICsg ICAgUVVFVUUgPSAicXVldWUiDQo+ICsgICAgUlNTID0gInJzcyINCj4gKyAgICBQRiA9ICJwZiIN Cj4gKyAgICBWRiA9ICJ2ZiINCj4gKyAgICBQSFlfUE9SVCA9ICJwaHlfcG9ydCINCj4gKyAgICBQ T1JUX0lEID0gInBvcnRfaWQiDQo+ICsgICAgTUVURVIgPSAibWV0ZXIiDQo+ICsgICAgU0VDVVJJ VFkgPSAic2VjdXJpdHkiDQo+ICsgICAgT0ZfU0VUX01QTFNfVFRMID0gIm9mX3NldF9tcGxzX3R0 bCINCj4gKyAgICBPRl9ERUNfTVBMU19UVEwgPSAib2ZfZGVjX21wbHNfdHRsIg0KPiArICAgIE9G X1NFVF9OV19UVEwgPSAib2Zfc2V0X253X3R0bCINCj4gKyAgICBPRl9ERUNfTldfVFRMID0gIm9m X2RlY19ud190dGwiDQo+ICsgICAgT0ZfQ09QWV9UVExfT1VUID0gIm9mX2NvcHlfdHRsX291dCIN Cj4gKyAgICBPRl9DT1BZX1RUTF9JTiA9ICJvZl9jb3B5X3R0bF9pbiINCj4gKyAgICBPRl9QT1Bf VkxBTiA9ICJvZl9wb3BfdmxhbiINCj4gKyAgICBPRl9QVVNIX1ZMQU4gPSAib2ZfcHVzaF92bGFu Ig0KPiArICAgIE9GX1NFVF9WTEFOX1ZJRCA9ICJvZl9zZXRfdmxhbl92aWQiDQo+ICsgICAgT0Zf U0VUX1ZMQU5fUENQID0gIm9mX3NldF92bGFuX3BjcCINCj4gKyAgICBPRl9QT1BfTVBMUyA9ICJv Zl9wb3BfbXBscyINCj4gKyAgICBPRl9QVVNIX01QTFMgPSAib2ZfcHVzaF9tcGxzIg0KPiArICAg IFZYTEFOX0VOQ0FQID0gInZ4bGFuX2VuY2FwIg0KPiArICAgIFZYTEFOX0RFQ0FQID0gInZ4bGFu X2RlY2FwIg0KPiArICAgIE5WR1JFX0VOQ0FQID0gIm52Z3JlX2VuY2FwIg0KPiArICAgIE5WR1JF X0RFQ0FQID0gIm52Z3JlX2RlY2FwIg0KPiArICAgIFJBV19FTkNBUCA9ICJyYXdfZW5jYXAiDQo+ ICsgICAgUkFXX0RFQ0FQID0gInJhd19kZWNhcCINCj4gKyAgICBTRVRfSVBWNF9TUkMgPSAic2V0 X2lwdjRfc3JjIg0KPiArICAgIFNFVF9JUFY0X0RTVCA9ICJzZXRfaXB2NF9kc3QiDQo+ICsgICAg U0VUX0lQVjZfU1JDID0gInNldF9pcHY2X3NyYyINCj4gKyAgICBTRVRfSVBWNl9EU1QgPSAic2V0 X2lwdjZfZHN0Ig0KPiArICAgIFNFVF9UUF9TUkMgPSAic2V0X3RwX3NyYyINCj4gKyAgICBTRVRf VFBfRFNUID0gInNldF90cF9kc3QiDQo+ICsgICAgU0VUX1RUTCA9ICJzZXRfdHRsIg0KPiArICAg IFNFVF9NQUNfU1JDID0gInNldF9tYWNfc3JjIg0KPiArICAgIFNFVF9NQUNfRFNUID0gInNldF9t YWNfZHN0Ig0KPiArICAgIElOQ19UQ1BfU0VRID0gImluY190Y3Bfc2VxIg0KPiArICAgIERFQ19U Q1BfU0VRID0gImRlY190Y3Bfc2VxIg0KPiArICAgIElOQ19UQ1BfQUNLID0gImluY190Y3BfYWNr Ig0KPiArICAgIERFQ19UQ1BfQUNLID0gImRlY190Y3BfYWNrIg0KPiArICAgIFNFVF9UQUcgPSAi c2V0X3RhZyINCj4gKyAgICBTRVRfTUVUQSA9ICJzZXRfbWV0YSINCj4gKyAgICBTRVRfSVBWNF9E U0NQID0gInNldF9pcHY0X2RzY3AiDQo+ICsgICAgU0VUX0lQVjZfRFNDUCA9ICJzZXRfaXB2Nl9k c2NwIg0KPiArICAgIEFHRSA9ICJhZ2UiDQo+IGRpZmYgLS1naXQgYS9mcmFtZXdvcmsvZmxvdy9l eGNlcHRpb25zLnB5IGIvZnJhbWV3b3JrL2Zsb3cvZXhjZXB0aW9ucy5weQ0KPiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMC4uNzQ2YjIwNGYNCj4gLS0tIC9kZXYvbnVsbA0K PiArKysgYi9mcmFtZXdvcmsvZmxvdy9leGNlcHRpb25zLnB5DQo+IEBAIC0wLDAgKzEsMTIgQEAN Cj4gK2NsYXNzIENvbXBvc2l0aW9uRXhjZXB0aW9uKEV4Y2VwdGlvbik6DQo+ICsNCj4gKyAgICBk ZWYgX19pbml0X18oc2VsZik6DQo+ICsgICAgICAgIHNlbGYubWVzc2FnZSA9ICJUaGVyZSB3YXMg YW4gdW5leHBlY3RlZCBlcnJvciBpbiBjb21wb3NpdGlvbiINCj4gKw0KPiArDQo+ICtjbGFzcyBJ bnZhbGlkRmxvd0l0ZW1FeGNlcHRpb24oQ29tcG9zaXRpb25FeGNlcHRpb24pOg0KPiArICAgIGRl ZiBfX2luaXRfXyhzZWxmLCBmaXJzdF9pdGVtLCBzZWNvbmRfaXRlbSwgZmxvdz1Ob25lKToNCj4g KyAgICAgICAgaWYgZmxvdyBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIHNlbGYubWVzc2Fn ZSA9IGYnIntmaXJzdF9pdGVtfSIgd2FzIG5vdCBhYmxlIHRvIGFjY2VwdCAie3NlY29uZF9pdGVt fSINCj4gYXMgdGhlIG5leHQgaXRlbSBpbiBmbG93IHtmbG93fS4nDQo+ICsgICAgICAgIGVsc2U6 DQo+ICsgICAgICAgICAgICBzZWxmLm1lc3NhZ2UgPSBmJyJ7Zmlyc3RfaXRlbX0iIHdhcyBub3Qg YWJsZSB0byBhY2NlcHQgIntzZWNvbmRfaXRlbX0iLicNCj4gZGlmZiAtLWdpdCBhL2ZyYW1ld29y ay9mbG93L2Zsb3cucHkgYi9mcmFtZXdvcmsvZmxvdy9mbG93LnB5DQo+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwLi4zZmEwMmUxOA0KPiAtLS0gL2Rldi9udWxsDQo+ICsr KyBiL2ZyYW1ld29yay9mbG93L2Zsb3cucHkNCj4gQEAgLTAsMCArMSwxNTUgQEANCj4gKyMgSXRl bXMgd2hpY2ggbWF5IGJlIHVzZWQgdG8gc3RhcnQgdGhlIHByb3RvY29sIGNoYWluIG9uY2UgYWN0 aW9ucyBoYXZlIGJlZW4NCj4gdXNlZA0KPiArZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhbm5vdGF0 aW9ucw0KPiArDQo+ICtpbXBvcnQgY29weQ0KPiAraW1wb3J0IGl0ZXJ0b29scw0KPiAraW1wb3J0 IG9wZXJhdG9yDQo+ICtmcm9tIGZ1bmN0b29scyBpbXBvcnQgcmVkdWNlDQo+ICtmcm9tIHR5cGlu ZyBpbXBvcnQgTGlzdCwgRnJvemVuU2V0LCBVbmlvbiwgSXRlcmFibGUsIFR1cGxlDQo+ICsNCj4g K2Zyb20gc2NhcHkubGF5ZXJzLmwyIGltcG9ydCBFdGhlcg0KPiArDQo+ICtmcm9tIGZyYW1ld29y ay5mbG93LmVudW1zIGltcG9ydCBGbG93SXRlbVR5cGUsIEZsb3dBY3Rpb25UeXBlDQo+ICtmcm9t IGZyYW1ld29yay5mbG93LmV4Y2VwdGlvbnMgaW1wb3J0IEludmFsaWRGbG93SXRlbUV4Y2VwdGlv bg0KPiArZnJvbSBmcmFtZXdvcmsuZmxvdy5mbG93X2FjdGlvbl9pdGVtcyBpbXBvcnQgQWN0aW9u Rmxvd0l0ZW0NCj4gK2Zyb20gZnJhbWV3b3JrLmZsb3cuZmxvd19pdGVtcyBpbXBvcnQgRmxvd0l0 ZW0NCj4gK2Zyb20gZnJhbWV3b3JrLmZsb3cuZmxvd19wYXR0ZXJuX2l0ZW1zIGltcG9ydCBQYXR0 ZXJuRmxvd0l0ZW0sDQo+IFRVTk5FTElOR19QUk9UT0NPTFMNCj4gKw0KPiArIyBHZXQgcmVzZXJ2 ZWQgbWFjIGFkZHJlc3Nlcw0KPiArTkVWRVJfTUFUQ0hfUEFDS0VUID0gRXRoZXIoc3JjPSIiLCBk c3Q9IiIpIC8gKCdceDAwJyAqIDY0KQ0KPiArDQo+ICsNCj4gK2RlZiBfaXRlcmFibGVfZGVlcF9j b21wYXJlKGkxLCBpMik6DQo+ICsgICAgcmV0dXJuIHJlZHVjZSgNCj4gKyAgICAgICAgbGFtYmRh IHgsIHk6IHggYW5kIHksDQo+ICsgICAgICAgIG1hcChsYW1iZGEgeCwgeTogeCA9PSB5LCBpMSwg aTIpLA0KPiArICAgICAgICBUcnVlDQo+ICsgICAgKQ0KPiArDQo+ICsNCj4gK2RlZiBleHBhbmRf cGF0dGVybl9saXN0X3dpdGhfaXRlcmFibGVfcmVwbGFjaW5nX2l0ZW0ocGF0dGVybnM6DQo+IExp c3RbSXRlcmFibGVbRmxvd0l0ZW1dXSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaXQ6IEl0ZXJhYmxlW1R1cGxlW0Zsb3dJdGVtLCBGcm96 ZW5TZXRbc3RyXSwNCj4gRnJvemVuU2V0W3N0cl0sIHN0cl1dLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtKToNCj4gKyAgICAiIiIN Cj4gKyAgICBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgbGlzdCBvZiBwYXR0ZXJucyBhbmQgc3BsaXRz IGVhY2ggb2YgdGhlbSBpbnRvIDINCj4gKyAgICBwYXJ0cywgZXhjbHVkaW5nIHRoZSBpdGVtIGF0 IGluZGV4LiBJdCB0aGVuIHVzZXMgdGhlIHByb3ZpZGVkDQo+ICsgICAgaXRlcmF0b3IgdG8gZmls bCBpbiB0aGF0IHZhbHVlIGZvciBhbGwgcGF0dGVybnMuDQo+ICsNCj4gKyAgICBFeDoNCj4gKyAg ICBpZiBwYXR0ZXJucyBpcyBbWydhJywgJ2InLCAnYyddLCBbJ2MnLCdiJywnYSddXSwgaXQgaXMg WzEsMl0sIGFuZCBpdGVtIGlzICdiJywNCj4gKyAgICB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBw cm9kdWNlDQo+ICsNCj4gKyAgICBbWydhJywgMV0sIFsnYScsIDJdLCBbJ2EnLCAxXSwgWydhJywg Ml0sIFsnYScsIDFdLCBbJ2EnLCAyXV0NCj4gKw0KPiArICAgIGlmIGV2ZXJ5dGhpbmcgaXMgY29u dmVydGVkIGludG8gYSBsaXN0LiBJdCBpcyBub3QgY29udmVydGVkDQo+ICsgICAgYmVjYXVzZSB0 aGF0IHJlcXVpcmVzIHVzaW5nIHRoZSBtZW1vcnkgdG8gc3RvcmUgYWxsIG9mIHRoaXMgYXQNCj4g KyAgICB0aGUgc2FtZSB0aW1lLCB3aGljaCBjb3VsZCBiZSBmYWlybHkgbGFyZ2UuDQo+ICsgICAg IiIiDQo+ICsNCj4gKyAgICBzcGxpdF9wYXR0ZXJucyA9IGxpc3QobWFwKGxhbWJkYSBwYXR0ZXJu OiAocGF0dGVybls6cGF0dGVybi5pbmRleChpdGVtKV0sDQo+IHBhdHRlcm5bcGF0dGVybi5pbmRl eChpdGVtKSArIDE6XSwpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVy KGxhbWJkYSBwYXR0ZXJuOiBpdGVtIGluIHBhdHRlcm4sIHBhdHRlcm5zKSkpDQo+ICsgICAgIyBU ZWUgdGhlIGl0ZXJhdG9ycyBzbyBJIGNhbiBjb25zdW1lIGFsbCBvZiB0aGVtDQo+ICsNCj4gKyAg ICBpdGVyYXRvcnMgPSBpdGVydG9vbHMudGVlKGl0LCBsZW4ocGF0dGVybnMpKQ0KPiArICAgIGZv ciBwYXR0ZXJuX2JlZm9yZSwgcGF0dGVybl9hZnRlciBpbiBzcGxpdF9wYXR0ZXJuczoNCj4gKyAg ICAgICAgZm9yIGl0ZXJhdG9yIGluIGl0ZXJhdG9yczoNCj4gKyAgICAgICAgICAgIGZvciBkYXRh c2V0IGluIGl0ZXJhdG9yOg0KPiArICAgICAgICAgICAgICAgIGJhY2t1cF9kYXRhc2V0ID0gY29w eS5kZWVwY29weShkYXRhc2V0KQ0KPiArICAgICAgICAgICAgICAgIHlpZWxkICgNCj4gKyAgICAg ICAgICAgICAgICAgICAgWypwYXR0ZXJuX2JlZm9yZSwgYmFja3VwX2RhdGFzZXRbMF0sICpwYXR0 ZXJuX2FmdGVyXSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKmJhY2t1cF9kYXRhc2V0WzE6XSwN Cj4gKyAgICAgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICAjIHlpZWxkIGZyb20gbWFwKA0K PiArICAgICAgICAgICAgIyAgICAgbGFtYmRhIGZsb3dfaXRlbV90ZXN0X3Byb3BlcnRpZXM6ICgN Cj4gKyAgICAgICAgICAgICMgICAgICAgICBbKnBhdHRlcm5fYmVmb3JlLCBmbG93X2l0ZW1fdGVz dF9wcm9wZXJ0aWVzWzBdLCAqcGF0dGVybl9hZnRlcl0sDQo+ICsgICAgICAgICAgICAjICAgICAg ICAgKmZsb3dfaXRlbV90ZXN0X3Byb3BlcnRpZXNbMTpdLA0KPiArICAgICAgICAgICAgIyAgICAg KSwgaXRlcmF0b3INCj4gKyAgICAgICAgICAgICMgKQ0KPiArDQo+ICsgICAgeWllbGQgZnJvbSBm aWx0ZXIobGFtYmRhIHBhdHRlcm46IGl0ZW0gbm90IGluIHBhdHRlcm4sIHBhdHRlcm5zKQ0KPiAr DQo+ICsNCj4gK2NsYXNzIEZsb3cob2JqZWN0KToNCj4gKyAgICBhY3Rpb25faXRlbXM6IExpc3Rb QWN0aW9uRmxvd0l0ZW1dDQo+ICsgICAgcGF0dGVybl9pdGVtczogTGlzdFtQYXR0ZXJuRmxvd0l0 ZW1dDQo+ICsgICAgZW50cnlfcG9pbnRzOiBGcm96ZW5TZXRbRmxvd0l0ZW1UeXBlXQ0KPiArDQo+ ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFjdGlvbl9pdGVtcz1Ob25lLCBwYXR0ZXJuX2l0ZW1z PU5vbmUsICk6DQo+ICsgICAgICAgIGlmIGFjdGlvbl9pdGVtcyBpcyBOb25lOg0KPiArICAgICAg ICAgICAgYWN0aW9uX2l0ZW1zID0gW10NCj4gKw0KPiArICAgICAgICBpZiBwYXR0ZXJuX2l0ZW1z IGlzIE5vbmU6DQo+ICsgICAgICAgICAgICBwYXR0ZXJuX2l0ZW1zID0gW10NCj4gKw0KPiArICAg ICAgICBzZWxmLmFjdGlvbl9pdGVtcyA9IGFjdGlvbl9pdGVtcw0KPiArICAgICAgICBzZWxmLnBh dHRlcm5faXRlbXMgPSBwYXR0ZXJuX2l0ZW1zDQo+ICsNCj4gKyAgICBkZWYgX190cnVlZGl2X18o c2VsZiwgaXRlbTogVW5pb25bRmxvd0l0ZW0sIEZsb3ddKToNCj4gKyAgICAgICAgIiIiDQo+ICsg ICAgICAgIFVzZWQgaW4gYSBzaW1pbGFyIHdheSB0byBzY2FweSdzIHBhY2tldCBjb21wb3NpdGlv bi4gUmV0dXJucyBhIG5ldyBmbG93DQo+IHdpdGggdGhlIG11dGF0ZWQgc3RhdGUuDQo+ICsgICAg ICAgIEBwYXJhbSBpdGVtOiBUaGUgb3RoZXIgZmxvdyBpdGVtLg0KPiArICAgICAgICBAcmV0dXJu OiBBIEZsb3cgY29udGFpbmluZyBib3RoIGl0ZW1zDQo+ICsgICAgICAgICIiIg0KPiArICAgICAg ICBpZiBpc2luc3RhbmNlKGl0ZW0sIEZsb3cpOg0KPiArICAgICAgICAgICAgcmV0dXJuIEZsb3co cGF0dGVybl9pdGVtcz1bKnNlbGYucGF0dGVybl9pdGVtcywgKml0ZW0ucGF0dGVybl9pdGVtc10s DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25faXRlbXM9WypzZWxmLmFjdGlvbl9p dGVtcywgKml0ZW0uYWN0aW9uX2l0ZW1zXSkNCj4gKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKGl0 ZW0sIFBhdHRlcm5GbG93SXRlbSk6DQo+ICsgICAgICAgICAgICBpZiBsZW4oc2VsZi5wYXR0ZXJu X2l0ZW1zKSA9PSAwOg0KPiArICAgICAgICAgICAgICAgIHJldHVybiBGbG93KHBhdHRlcm5faXRl bXM9WypzZWxmLnBhdHRlcm5faXRlbXMsIGl0ZW1dLA0KPiBhY3Rpb25faXRlbXM9WypzZWxmLmFj dGlvbl9pdGVtc10pDQo+ICsgICAgICAgICAgICBlbGlmIGl0ZW0udHlwZSBpbiBzZWxmLnBhdHRl cm5faXRlbXNbLTFdLnZhbGlkX25leHRfaXRlbXM6DQo+ICsgICAgICAgICAgICAgICAgcmV0dXJu IEZsb3cocGF0dGVybl9pdGVtcz1bKnNlbGYucGF0dGVybl9pdGVtcywgaXRlbV0sDQo+IGFjdGlv bl9pdGVtcz1bKnNlbGYuYWN0aW9uX2l0ZW1zXSkNCj4gKyAgICAgICAgICAgIGVsc2U6DQo+ICsg ICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZsb3dJdGVtRXhjZXB0aW9uKHNlbGYucGF0dGVy bl9pdGVtc1stMV0sIGl0ZW0sIGZsb3c9c2VsZikNCj4gKyAgICAgICAgZWxpZiBpc2luc3RhbmNl KGl0ZW0sIEFjdGlvbkZsb3dJdGVtKToNCj4gKyAgICAgICAgICAgIGlmIGxlbihzZWxmLmFjdGlv bl9pdGVtcykgPT0gMDoNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gRmxvdyhwYXR0ZXJuX2l0 ZW1zPVsqc2VsZi5wYXR0ZXJuX2l0ZW1zXSwNCj4gYWN0aW9uX2l0ZW1zPVsqc2VsZi5hY3Rpb25f aXRlbXMsIGl0ZW1dKQ0KPiArDQo+ICsgICAgICAgICAgICBmb3IgYWN0aW9uIGluIHNlbGYuYWN0 aW9uX2l0ZW1zOg0KPiArICAgICAgICAgICAgICAgIGlmIGl0ZW0udHlwZSBub3QgaW4gYWN0aW9u LmFsbG93ZWRfd2l0aDoNCj4gKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZsb3dJ dGVtRXhjZXB0aW9uKGFjdGlvbiwgaXRlbSwgZmxvdz1zZWxmKQ0KPiArICAgICAgICAgICAgcmV0 dXJuIEZsb3cocGF0dGVybl9pdGVtcz1bKnNlbGYucGF0dGVybl9pdGVtc10sDQo+IGFjdGlvbl9p dGVtcz1bKnNlbGYuYWN0aW9uX2l0ZW1zLCBpdGVtXSkNCj4gKw0KPiArICAgIGRlZiBfX3N0cl9f KHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gZiJpbmdyZXNzIHBhdHRlcm4gJXMgYWN0aW9ucyBx dWV1ZSBpbmRleCAxIC8gZW5kIiAlICgNCj4gKyAgICAgICAgICAgICAgICAgICAgIiAvICIuam9p bihzdHIoaXRlbSkgZm9yIGl0ZW0gaW4gc2VsZi5wYXR0ZXJuX2l0ZW1zKSArICIgLyBlbmQiKQ0K PiArDQo+ICsgICAgZGVmIF9fcmVwcl9fKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc3RyKHNl bGYpDQo+ICsNCj4gKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToNCj4gKyAgICAgICAgcmV0 dXJuIGlzaW5zdGFuY2Uob3RoZXIsIEZsb3cpIGFuZCBcDQo+ICsgICAgICAgICAgICAgICBsZW4o c2VsZi5hY3Rpb25faXRlbXMpID09IGxlbihvdGhlci5hY3Rpb25faXRlbXMpIGFuZCBcDQo+ICsg ICAgICAgICAgICAgICBsZW4oc2VsZi5wYXR0ZXJuX2l0ZW1zKSA9PSBsZW4ob3RoZXIucGF0dGVy bl9pdGVtcykgYW5kIFwNCj4gKyAgICAgICAgICAgICAgIF9pdGVyYWJsZV9kZWVwX2NvbXBhcmUo c2VsZi5wYXR0ZXJuX2l0ZW1zLCBvdGhlci5wYXR0ZXJuX2l0ZW1zKSBhbmQNCj4gXA0KPiArICAg ICAgICAgICAgICAgX2l0ZXJhYmxlX2RlZXBfY29tcGFyZShzZWxmLmFjdGlvbl9pdGVtcywgb3Ro ZXIuYWN0aW9uX2l0ZW1zKQ0KPiArDQo+ICsgICAgZGVmIHRvX3NjYXB5X3BhY2tldChzZWxmKToN Cj4gKyAgICAgICAgcmV0dXJuIHJlZHVjZShvcGVyYXRvci50cnVlZGl2LCBtYXAobGFtYmRhIHg6 IHgudG9fc2NhcHlfcGFja2V0KCksDQo+IHNlbGYucGF0dGVybl9pdGVtcykpDQo+ICsNCj4gKyAg ICBkZWYgZ2V0X3Rlc3RfcHJvcGVydHlfZmxvd3Moc2VsZiwgcGF0dGVybl9pdGVtX3R5cGVzX3Rv X3VwZGF0ZT1Ob25lLA0KPiBhY3Rpb25faXRlbV90eXBlc190b191cGRhdGU9Tm9uZSkgLT4gXA0K PiArICAgICAgICAgICAgSXRlcmFibGVbRmxvd106DQo+ICsgICAgICAgIGlmIHBhdHRlcm5faXRl bV90eXBlc190b191cGRhdGUgaXMgTm9uZSBhbmQNCj4gYWN0aW9uX2l0ZW1fdHlwZXNfdG9fdXBk YXRlIGlzIE5vbmU6DQo+ICsgICAgICAgICAgICBwYXR0ZXJuX2l0ZW1fdHlwZXNfdG9fdXBkYXRl ID0gW3NlbGYucGF0dGVybl9pdGVtc1stMV1dDQo+ICsgICAgICAgIGVsaWYgcGF0dGVybl9pdGVt X3R5cGVzX3RvX3VwZGF0ZSBpcyBOb25lOg0KPiArICAgICAgICAgICAgcGF0dGVybl9pdGVtX3R5 cGVzX3RvX3VwZGF0ZSA9IFtdDQo+ICsgICAgICAgIGVsaWYgYWN0aW9uX2l0ZW1fdHlwZXNfdG9f dXBkYXRlIGlzIE5vbmU6DQo+ICsgICAgICAgICAgICBhY3Rpb25faXRlbV90eXBlc190b191cGRh dGUgPSBbXQ0KPiArDQo+ICsgICAgICAgICMgU28gdGhhdCBpZiB0aGlzIG9iamVjdCBpcyBtdXRh dGVkIGJlZm9yZSB0aGUgZ2VuZXJhdG9yIGlzIGZpbmlzaGVkLCBpdCB3b24ndA0KPiBjaGFuZ2Ug YW55dGhpbmcNCj4gKyAgICAgICAgYmFzZV9wYXR0ZXJuX2l0ZW1zID0gY29weS5kZWVwY29weShz ZWxmLnBhdHRlcm5faXRlbXMpDQo+ICsgICAgICAgIGJhc2VfYWN0aW9uX2l0ZW1zID0gY29weS5k ZWVwY29weShzZWxmLmFjdGlvbl9pdGVtcykNCj4gKw0KPiArICAgICAgICB0ZXN0X2Zsb3dzOiBJ dGVyYWJsZVtJdGVyYWJsZVtGbG93SXRlbV1dID0gW2Jhc2VfcGF0dGVybl9pdGVtc10NCj4gKw0K PiArICAgICAgICB0dW5uZWxsaW5nX3Byb3RvY29scyA9IGxpc3QoZmlsdGVyKGxhbWJkYSBpOiB0 eXBlKGkpIGluDQo+IFRVTk5FTElOR19QUk9UT0NPTFMsIGJhc2VfcGF0dGVybl9pdGVtcykpDQo+ ICsgICAgICAgIGlmIGxlbih0dW5uZWxsaW5nX3Byb3RvY29scykgPiAwOg0KPiArICAgICAgICAg ICAgdGVzdF9mbG93cyA9DQo+IGV4cGFuZF9wYXR0ZXJuX2xpc3Rfd2l0aF9pdGVyYWJsZV9yZXBs YWNpbmdfaXRlbShbKnRlc3RfZmxvd3NdLA0KPiArDQo+IHR1bm5lbGxpbmdfcHJvdG9jb2xzWzBd LmdldF9wcm9wZXJ0eV9zdHJlYW0oKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVubmVsbGluZ19w cm90b2NvbHNbMF0pDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICB0ZXN0X2Zsb3dz ID0NCj4gZXhwYW5kX3BhdHRlcm5fbGlzdF93aXRoX2l0ZXJhYmxlX3JlcGxhY2luZ19pdGVtKFsq dGVzdF9mbG93c10sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGF0dGVybl9pdGVtc1sNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0xXS5nZXRfcHJvcGVydHlfc3RyZWFtKCksDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYucGF0dGVybl9pdGVtc1stMV0pDQo+ICsgICAgICAgIGZvciBwYXR0 ZXJuIGluIHRlc3RfZmxvd3M6DQo+ICsgICAgICAgICAgICB5aWVsZCBGbG93KHBhdHRlcm5faXRl bXM9cGF0dGVyblswXSwgYWN0aW9uX2l0ZW1zPWJhc2VfYWN0aW9uX2l0ZW1zKSwNCj4gKnBhdHRl cm5bMTpdDQo+IGRpZmYgLS1naXQgYS9mcmFtZXdvcmsvZmxvdy9mbG93X2FjdGlvbl9pdGVtcy5w eQ0KPiBiL2ZyYW1ld29yay9mbG93L2Zsb3dfYWN0aW9uX2l0ZW1zLnB5DQo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwLi41MDIwMWVlMg0KPiAtLS0gL2Rldi9udWxsDQo+ ICsrKyBiL2ZyYW1ld29yay9mbG93L2Zsb3dfYWN0aW9uX2l0ZW1zLnB5DQo+IEBAIC0wLDAgKzEs MTAxOCBAQA0KPiArZnJvbSB0eXBpbmcgaW1wb3J0IEZyb3plblNldCwgRGljdCwgVHVwbGUNCj4g Kw0KPiArZnJvbSBmcmFtZXdvcmsuZmxvdy5lbnVtcyBpbXBvcnQgRmxvd0FjdGlvblR5cGUNCj4g K2Zyb20gZnJhbWV3b3JrLmZsb3cuZmxvd19wYXR0ZXJuX2l0ZW1zIGltcG9ydCBGbG93SXRlbQ0K PiArDQo+ICtBTFdBWVNfQUxMT1dFRF9BQ1RJT05TID0ge0Zsb3dBY3Rpb25UeXBlLlZPSUR9DQo+ ICsNCj4gK0VOVFJZX1BPSU5UUyA9IHsNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5WT0lELA0KPiAr ICAgIEZsb3dBY3Rpb25UeXBlLlBBU1NUSFJVLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLkZMQUcs DQo+ICsgICAgRmxvd0FjdGlvblR5cGUuRFJPUCwNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5DT1VO VCwNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5NQUNfU1dBUCwNCj4gKyAgICBGbG93QWN0aW9uVHlw ZS5ERUNfVFRMLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLkpVTVAsDQo+ICsgICAgRmxvd0FjdGlv blR5cGUuTUFSSywNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5RVUVVRSwNCj4gKyAgICBGbG93QWN0 aW9uVHlwZS5SU1MsDQo+ICsgICAgRmxvd0FjdGlvblR5cGUuUEYsDQo+ICsgICAgRmxvd0FjdGlv blR5cGUuVkYsDQo+ICsgICAgRmxvd0FjdGlvblR5cGUuUEhZX1BPUlQsDQo+ICsgICAgRmxvd0Fj dGlvblR5cGUuUE9SVF9JRCwNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5TRUNVUklUWSwNCj4gKyAg ICBGbG93QWN0aW9uVHlwZS5PRl9TRVRfTVBMU19UVEwsDQo+ICsgICAgRmxvd0FjdGlvblR5cGUu T0ZfREVDX01QTFNfVFRMLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLk9GX1NFVF9OV19UVEwsDQo+ ICsgICAgRmxvd0FjdGlvblR5cGUuT0ZfREVDX05XX1RUTCwNCj4gKyAgICBGbG93QWN0aW9uVHlw ZS5PRl9DT1BZX1RUTF9PVVQsDQo+ICsgICAgRmxvd0FjdGlvblR5cGUuT0ZfQ09QWV9UVExfSU4s DQo+ICsgICAgRmxvd0FjdGlvblR5cGUuT0ZfUE9QX1ZMQU4sDQo+ICsgICAgRmxvd0FjdGlvblR5 cGUuT0ZfUFVTSF9WTEFOLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLk9GX1NFVF9WTEFOX1ZJRCwN Cj4gKyAgICBGbG93QWN0aW9uVHlwZS5PRl9TRVRfVkxBTl9QQ1AsDQo+ICsgICAgRmxvd0FjdGlv blR5cGUuT0ZfUE9QX01QTFMsDQo+ICsgICAgRmxvd0FjdGlvblR5cGUuT0ZfUFVTSF9NUExTLA0K PiArICAgIEZsb3dBY3Rpb25UeXBlLlZYTEFOX0VOQ0FQLA0KPiArICAgIEZsb3dBY3Rpb25UeXBl LlZYTEFOX0RFQ0FQLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLk5WR1JFX0VOQ0FQLA0KPiArICAg IEZsb3dBY3Rpb25UeXBlLk5WR1JFX0RFQ0FQLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLlJBV19F TkNBUCwNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5SQVdfREVDQVAsDQo+ICsgICAgRmxvd0FjdGlv blR5cGUuU0VUX0lQVjRfU1JDLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLlNFVF9JUFY0X0RTVCwN Cj4gKyAgICBGbG93QWN0aW9uVHlwZS5TRVRfSVBWNl9TUkMsDQo+ICsgICAgRmxvd0FjdGlvblR5 cGUuU0VUX0lQVjZfRFNULA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLlNFVF9UUF9TUkMsDQo+ICsg ICAgRmxvd0FjdGlvblR5cGUuU0VUX1RQX0RTVCwNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5TRVRf VFRMLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLlNFVF9NQUNfU1JDLA0KPiArICAgIEZsb3dBY3Rp b25UeXBlLlNFVF9NQUNfRFNULA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLklOQ19UQ1BfU0VRLA0K PiArICAgIEZsb3dBY3Rpb25UeXBlLkRFQ19UQ1BfU0VRLA0KPiArICAgIEZsb3dBY3Rpb25UeXBl LklOQ19UQ1BfQUNLLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLkRFQ19UQ1BfQUNLLA0KPiArICAg IEZsb3dBY3Rpb25UeXBlLlNFVF9UQUcsDQo+ICsgICAgRmxvd0FjdGlvblR5cGUuU0VUX01FVEEs DQo+ICsgICAgRmxvd0FjdGlvblR5cGUuU0VUX0lQVjRfRFNDUCwNCj4gKyAgICBGbG93QWN0aW9u VHlwZS5TRVRfSVBWNl9EU0NQLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLkFHRSwNCj4gK30NCj4g Kw0KPiArDQo+ICtjbGFzcyBBY3Rpb25GbG93SXRlbShGbG93SXRlbSk6DQo+ICsgICAgYWxsb3dl ZF93aXRoOiBGcm96ZW5TZXRbRmxvd0FjdGlvblR5cGVdID0gXA0KPiArICAgICAgICBmcm96ZW5z ZXQoe2l0ZW0gZm9yIGl0ZW0gaW4gRmxvd0FjdGlvblR5cGV9KQ0KPiArDQo+ICsgICAgdmFsaWRf bmV4dF9pdGVtczogRnJvemVuU2V0W0Zsb3dBY3Rpb25UeXBlXSA9IFwNCj4gKyAgICAgICAgZnJv emVuc2V0KHtpdGVtIGZvciBpdGVtIGluIEZsb3dBY3Rpb25UeXBlfSkNCj4gKw0KPiArICAgIHRl c3RfY2FzZTogRGljdFtzdHIsIFR1cGxlW3N0ciwgZnJvemVuc2V0LCBmcm96ZW5zZXRdXSA9IGRp Y3QoKQ0KPiArDQo+ICtjbGFzcyBGbG93QWN0aW9uVm9pZChBY3Rpb25GbG93SXRlbSk6DQo+ICsg ICAgdHlwZSA9IEZsb3dBY3Rpb25UeXBlLlZPSUQNCj4gKw0KPiArICAgIHRlc3RfY2FzZSA9IHsN Cj4gKyAgICAgICAgICd0ZXN0JzogKCdpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMg MTkyLjE2OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucyB2b2lkDQo+IC8gZW5kJywNCj4gKyAgICAg ICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwi KSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsgICAgICAgICAgICAgICAgICBmcm96 ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4 MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJ UChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAv IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcg KiA2NCkifSkpLA0KPiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0aW9uUGFzc3Ro cnUoQWN0aW9uRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlwZS5QQVNTVEhS VQ0KPiArICAgIHRlc3RfY2FzZSA9IHsNCj4gKyAgICAgICAgJ3Rlc3QnOiAgKCdpbmdyZXNzIHBh dHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0K PiBwYXNzdGhydSAvIGVuZCcsDQo+ICsgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhl cigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0p LA0KPiArICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5 Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgp IC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRo ZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3 LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pKSwNCj4gKyAgICB9DQo+ICsNCj4g Kw0KPiArY2xhc3MgRmxvd0FjdGlvbkZsYWcoQWN0aW9uRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUg PSBGbG93QWN0aW9uVHlwZS5GTEFHDQo+ICsgICAgdGVzdF9jYXNlID0gew0KPiArICAgICAgICAn dGVzdCc6ICgnaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8g dWRwIC8gZW5kIGFjdGlvbnMgZmxhZw0KPiAvIGVuZCcsDQo+ICsgICAgICAgICAgICAgICAgIGZy b3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFVEUCgpIC8gKCdc XHgwMCcgKiA2NCkifSksDQo+ICsgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkg LyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45 OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdcXHgwMCcg KiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3Jj PVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSksDQo+ICsgICAg fQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rpb25Ecm9wKEFjdGlvbkZsb3dJdGVtKToNCj4g KyAgICB0eXBlID0gRmxvd0FjdGlvblR5cGUuRFJPUA0KPiArICAgIHRlc3RfY2FzZSA9IHsNCj4g KyAgICAgICAgJ3Rlc3QnOiAoJ2luZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIu MTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zIGRyb3ANCj4gLyBlbmQnLA0KPiArICAgICAgICAg ICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgLyBV RFAoKSAvICgnXFx4MDAnICogNjQpIn0pLA0KPiArICAgICAgICAgICAgICAgICBmcm96ZW5zZXQo eyJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICog NjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1c IjEwLjAuMzAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikgLyBVRFAoKSAv ICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIo KSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSkp LA0KPiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0aW9uQ291bnQoQWN0aW9uRmxv d0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlwZS5DT1VOVA0KPiArICAgIHRlc3Rf Y2FzZSA9IHsNCj4gKyAgICAgICAgJ3Rlc3Rfc2hhcmVkJzogKCdpbmdyZXNzIHBhdHRlcm4gZXRo IC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEnDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAn IC8gdWRwIC8gZW5kIGFjdGlvbnMgY291bnQgc2hhcmVkIDAgaWQgMSAvIGVuZCcsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2 OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICoNCj4gNjQpIn0pLA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIp IC8gVURQKCkgLyAoJ1xceDAwJyAqDQo+IDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgpIC8g KCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJF dGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwi MTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSksDQo+ICsgICAgICAg ICd0ZXN0X2lkJzogKCdpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4w LjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0KPiBjb3VudCBpZCAxIC8gZW5kJywNCj4gKyAgICAgICAg ICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIp IC8gVURQKCkgLyAoJ1xceDAwJyAqDQo+IDY0KSJ9KSwNCj4gKyAgICAgICAgICAgICAgICAgICAg ZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAo J1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIo KSAvIElQKHNyYz1cIjEwLjAuMzAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjguOC44 LjhcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8g KCdcXHgwMCcgKiA2NCkifSkpLA0KPiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0 aW9uTWFjX3N3YXAoQWN0aW9uRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlw ZS5NQUNfU1dBUA0KPiArDQo+ICsgICAgdGVzdF9jYXNlID0gew0KPiArICAgICAgICAgJ3Rlc3Qn OiAoJ2luZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAv IGVuZCBhY3Rpb25zDQo+IG1hY19zd2FwIC8gZW5kJywNCj4gKyAgICAgICAgICAgICAgICAgIGZy b3plbnNldCh7IkV0aGVyKHNyYz1cIjkwOjYxOmFlOmZkOjQxOjQzXCIsIGRzdCA9DQo+IFwiYWI6 Y2Q6ZWY6MTI6MzQ6NTZcIikgIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIElQ KHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKyAg ICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKHNyYz1cIjkwOjYxOmFlOmZkOjQxOjQz XCIsIGRzdCA9DQo+IFwiYWI6Y2Q6ZWY6MTI6MzQ6NTZcIikgIg0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICIvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAw JyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcihzcmM9XCI5 MDo2MTphZTpmZDo0MTo0M1wiLCBkc3QgPSBcImFiOmNkOmVmOjEyOjM0OjU2XCIpICINCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVE UCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi RXRoZXIoc3JjPVwiOTA6NjE6YWU6ZmQ6NDE6NDNcIiwgZHN0ID0gXCJhYjpjZDplZjoxMjozNDo1 NlwiKSAiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIElQKHNyYz1cIjguOC44 LjhcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIkV0aGVyKHNyYz1cIjkwOjYxOmFlOmZkOjQxOjQzXCIsIGRzdCA9IFwiYWI6Y2Q6 ZWY6MTI6MzQ6NTZcIikgIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyBJUChz cmM9XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pKSwNCj4gKyAg ICAgfQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rpb25EZWNfdHRsKEFjdGlvbkZsb3dJdGVt KToNCj4gKyAgICB0eXBlID0gRmxvd0FjdGlvblR5cGUuREVDX1RUTA0KPiArDQo+ICsgICAgdGVz dF9jYXNlID0gew0KPiArICAgICAgICAndGVzdCc6ICgnaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlw djQgc3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4gZGVjX3R0bCAvIGVu ZCcsDQo+ICsgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIx OTIuMTY4LjAuMVwiLCB0dGwgPSAxMjgpIC8gVURQKCkgLw0KPiAoJ1xceDAwJyAqIDY0KSJ9KSwN Cj4gKyAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4x NjguMC4yXCIsIHR0bCA9IDEyOCkgLyBVRFAoKSAvDQo+ICgnXFx4MDAnICogNjQpIiwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAuOTlc IiwgdHRsID0gMTI4KSAvIFVEUCgpIC8gKCdcXHgwMCcgKg0KPiA2NCkiLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiLCB0dGwgPSAx MjggKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIsIHR0bCA9IDEyOCkgLyBV RFAoKSAvICgnXFx4MDAnICoNCj4gNjQpIn0pKSwNCj4gKyAgICB9DQo+ICsNCj4gKw0KPiArY2xh c3MgRmxvd0FjdGlvbkp1bXAoQWN0aW9uRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0 aW9uVHlwZS5KVU1QDQo+ICsNCj4gKyAgICB0ZXN0X2Nhc2UgPSB7DQo+ICsgICAgICAgICAndGVz dCc6ICgnaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRw IC8gZW5kIGFjdGlvbnMNCj4ganVtcCBncm91cCAxIC8gZW5kJywNCj4gKyAgICAgICAgICAgICAg ICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFVEUCgp IC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJF dGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQp IiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIx MC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8g KCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIo KSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSkp LA0KPiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0aW9uTWFyayhBY3Rpb25GbG93 SXRlbSk6DQo+ICsgICAgdHlwZSA9IEZsb3dBY3Rpb25UeXBlLk1BUksNCj4gKyAgICB0ZXN0X2Nh c2UgPSB7DQo+ICsgICAgICAgICd0ZXN0JzogKCdpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBz cmMgaXMgMTkyLjE2OC4wLjEgJw0KPiArICAgICAgICAgICAgICAgICAnLyB1ZHAgLyBlbmQgYWN0 aW9ucyBtYXJrIGlkIDB4QUJDREVGIC8gZW5kJywNCj4gKyAgICAgICAgICAgICAgICAgZnJvemVu c2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQKCkgLyAoJ1xceDAw JyAqIDY0KSJ9KSwNCj4gKyAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQ KHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIp IC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0 KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIx MzIuMTc3LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pKSwNCj4gKyAgICB9DQo+ ICsNCj4gKw0KPiArY2xhc3MgRmxvd0FjdGlvblF1ZXVlKEFjdGlvbkZsb3dJdGVtKToNCj4gKyAg ICB0eXBlID0gRmxvd0FjdGlvblR5cGUuUVVFVUUNCj4gKyAgICB0ZXN0X2Nhc2UgPSB7DQo+ICsg ICAgICAgICd0ZXN0JzogKCdpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2 OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0KPiBxdWV1ZSBpbmRleCAxIC8gZW5kJywNCj4gKyAg ICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4x XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKyAgICAgICAgICAgICAgICAgZnJv emVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xc eDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJ UChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8g VURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg IkV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICog NjQpIn0pKSwNCj4gKyAgICB9DQo+ICsNCj4gKw0KPiArY2xhc3MgRmxvd0FjdGlvblJzcyhBY3Rp b25GbG93SXRlbSk6DQo+ICsgICAgdHlwZSA9IEZsb3dBY3Rpb25UeXBlLlJTUw0KPiArDQo+ICsg ICAgIyBSU1MgYWxyZWFkeSBoYXMgYSB0ZXN0IHN1aXRlLg0KPiArICAgICcnJw0KPiArICAgICB0 ZXN0X2Nhc2UgPSB7DQo+ICsgICAgICAgICAnY2FzZTEnOiAoJ2luZ3Jlc3MgcGF0dGVybiBldGgg LyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zIC8NCj4gZW5kJywN Cj4gKyAgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTky LjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pLA0KPiArICAgICAgICAgICAg ICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAvIFVE UCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IkV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0 KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1c IjguOC44LjhcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQ KCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSksDQo+ICsgICAgIH0NCj4gKyAgICAgJycnDQo+ICsNCj4g Kw0KPiArY2xhc3MgRmxvd0FjdGlvblBmKEFjdGlvbkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0g Rmxvd0FjdGlvblR5cGUuUEYNCj4gKyAgICB0ZXN0X2Nhc2UgPSB7DQo+ICsgICAgICAgICd0ZXN0 JzogKCdpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAg LyBlbmQgYWN0aW9ucyBwZiAvDQo+IGVuZCcsDQo+ICsgICAgICAgICAgICAgICAgIGZyb3plbnNl dCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcg KiA2NCkifSksDQo+ICsgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChz cmM9XCIxOTIuMTY4LjAuMlwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAv IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCki LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTMy LjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSksDQo+ICsgICAgfQ0KPiAr DQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rpb25WZihBY3Rpb25GbG93SXRlbSk6DQo+ICsgICAgdHlw ZSA9IEZsb3dBY3Rpb25UeXBlLlZGDQo+ICsgICAgdGVzdF9jYXNlID0gew0KPiArICAgICAgICAn dGVzdF9vcmlnaW5hbCc6ICgnaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4x NjguMC4xIC8nDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICcgdWRwIC8gZW5kIGFjdGlv bnMgdmYgb3JpZ2luYWwgMS8gZW5kJywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgZnJv emVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQKCkgLyAoJ1xc eDAwJyAqDQo+IDY0KSJ9KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvemVuc2V0 KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAq DQo+IDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVy KCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1x4MDAnICogNjQpIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1c IjguOC44LjhcIikgLyBVRFAoKSAvICgnXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIp IC8gVURQKCkgLyAoJ1xceDAwJyAqDQo+IDY0KSJ9KSksDQo+ICsgICAgICAgICd0ZXN0X2lkJzog KCdpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAgLyBl bmQgYWN0aW9ucw0KPiB2ZiBpZCAxIC8gZW5kJywNCj4gKyAgICAgICAgICAgICAgICAgICAgZnJv emVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQKCkgLyAoJ1xc eDAwJyAqDQo+IDY0KSJ9KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRo ZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIx MC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkg LyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0 aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQp In0pKSwNCj4gKyAgICB9DQo+ICsNCj4gKw0KPiArY2xhc3MgRmxvd0FjdGlvblBoeV9wb3J0KEFj dGlvbkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0FjdGlvblR5cGUuUEhZX1BPUlQNCj4g Kw0KPiArICAgIHRlc3RfY2FzZSA9IHsNCj4gKyAgICAgICAgICMgb3JpZ2luYWwgcG9ydCBpbmRl eA0KPiArICAgICAgICAgJ3Rlc3Rfb3JpZ2luYWwnOiAoJ2luZ3Jlc3MgcGF0dGVybiBldGggLyBp cHY0IHNyYyBpcyAxOTIuMTY4LjAuMScNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICcg LyB1ZHAgLyBlbmQgYWN0aW9ucyBwaHlfcG9ydCBvcmlnaW5hbCAvIGVuZCcsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2 OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICoNCj4gNjQpIn0pLA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4y XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqDQo+IDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVE UCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikgLyBVRFAoKSAvICgnXFx4MDAn ICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVy KCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICoNCj4gNjQp In0pKSwNCj4gKyAgICAgICAgICMgcGh5c2ljYWwgcG9ydCBpbmRleA0KPiArICAgICAgICAgJ3Rl c3RfaW5kZXgnOiAoJ2luZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAu MSAnDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAnLyB1ZHAgLyBlbmQgYWN0aW9ucyBwaHlf cG9ydCBpbmRleCAxIC8gZW5kJywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGZyb3plbnNl dCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcg Kg0KPiA2NCkifSksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhl cigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICoNCj4gNjQp IiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChz cmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwi KSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8g KCdcXHgwMCcgKiA2NCkifSkpLA0KPiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0 aW9uUG9ydF9pZChBY3Rpb25GbG93SXRlbSk6DQo+ICsgICAgdHlwZSA9IEZsb3dBY3Rpb25UeXBl LlBPUlRfSUQNCj4gKw0KPiArICAgIHRlc3RfY2FzZSA9IHsNCj4gKyAgICAgICAgIyBvcmlnaW5h bCBEUERLIHBvcnQgSUQNCj4gKyAgICAgICAgJ3Rlc3Rfb3JpZ2luYWwnOiAoJ2luZ3Jlc3MgcGF0 dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAnDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICcvIHVkcCAvIGVuZCBhY3Rpb25zIHBvcnRfaWQgb3JpZ2luYWwgLyBlbmQnLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3Jj PVwiMTkyLjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICoNCj4gNjQpIn0pLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTky LjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICoNCj4gNjQpIiwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAuOTlc IikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikgLyBVRFAoKSAvICgn XFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi RXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKg0K PiA2NCkifSkpLA0KPiArICAgICAgICAjIERQREsgcG9ydCBJRA0KPiArICAgICAgICAndGVzdF9p ZCc6ICgnaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xICcNCj4g KyAgICAgICAgICAgICAgICAgICAgJy8gdWRwIC8gZW5kIGFjdGlvbnMgcG9ydF9pZCBpZCAxIC8g ZW5kJywNCj4gKyAgICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNy Yz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqDQo+IDY0KSJ9KSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjgu MC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAo J1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVy KCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3 LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pKSwNCj4gKyAgICAgfQ0KPiArDQo+ ICsNCj4gK2NsYXNzIEZsb3dBY3Rpb25NZXRlcihBY3Rpb25GbG93SXRlbSk6DQo+ICsgICAgdHlw ZSA9IEZsb3dBY3Rpb25UeXBlLk1FVEVSDQo+ICsgICAgdGVzdF9jYXNlID0gew0KPiArICAgICAg ICAndGVzdCc6ICgnaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4x IC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4gbWV0ZXIgbXRyX2lkIDEgLyBlbmQnLA0KPiArICAgICAg ICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikg LyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pLA0KPiArICAgICAgICAgICAgICAgICBmcm96ZW5z ZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAn ICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNy Yz1cIjEwLjAuMzAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikgLyBVRFAo KSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRo ZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCki fSkpLA0KPiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0aW9uU2VjdXJpdHkoQWN0 aW9uRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlwZS5TRUNVUklUWQ0KPiAr ICAgIHRlc3RfY2FzZSA9IHsNCj4gKyAgICAgICAgJ3Rlc3QnOiAoJ2luZ3Jlc3MgcGF0dGVybiBl dGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMScNCj4gKyAgICAgICAgICAgICAgICAgJyAvIHVk cCAvIGVuZCBhY3Rpb25zIHNlY3VyaXR5IHNlY3VyaXR5X3Nlc3Npb24gMSAvIGVuZCcsDQo+ICsg ICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAu MVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsgICAgICAgICAgICAgICAgIGZy b3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAvIFVEUCgpIC8gKCdc XHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8g SVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAv IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAq IDY0KSJ9KSksDQo+ICsgICAgfQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rpb25PZl9zZXRf bXBsc190dGwoQWN0aW9uRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlwZS5P Rl9TRVRfTVBMU19UVEwNCj4gKw0KPiArICAgIHRlc3RfY2FzZSA9IHsNCj4gKyAgICAgICAgICd0 ZXN0JzogKCdpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgJw0K PiArICAgICAgICAgICAgICAgICAgJy8gdWRwIC8gZW5kIGFjdGlvbnMgb2Zfc2V0X21wbHNfdHRs IG1wbHNfdHRsIDY0IC8gZW5kJywNCj4gKyAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0 aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIE1QTFMobGFiZWwgPSAweGFiLA0KPiB0 dGw9MTI4KSINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAvIFVEUCgpIC8gKCdc XHgwMCcgKiA2NCkifSksDQo+ICsgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigp IC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBNUExTKGxhYmVsID0gMHhhYiwNCj4gdHRsPTEy OCkgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gTVBMUyhsYWJlbCA9IDB4 YWIsIHR0bD0xMjgpIC8NCj4gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIE1QTFMo bGFiZWwgPSAweGFiLCB0dGw9MTI4KSAvDQo+IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcu MC45OVwiKSAvIE1QTFMobGFiZWwgPSAweGFiLA0KPiB0dGw9MTI4KSINCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIiAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSkpLA0KPiArICAg ICB9DQo+ICsNCj4gKw0KPiArY2xhc3MgRmxvd0FjdGlvbk9mX2RlY19tcGxzX3R0bChBY3Rpb25G bG93SXRlbSk6DQo+ICsgICAgdHlwZSA9IEZsb3dBY3Rpb25UeXBlLk9GX0RFQ19NUExTX1RUTA0K PiArDQo+ICsgICAgdGVzdF9jYXNlID0gew0KPiArICAgICAgICAndGVzdCc6ICgNCj4gKyAgICAg ICAgICAgICdpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1 ZHAgLyBlbmQgYWN0aW9ucw0KPiBvZl9kZWNfbXBsc190dGwgLyBlbmQnLA0KPiArICAgICAgICAg ICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gTVBMUyhs YWJlbCA9IDB4YWIsIHR0bD0xMjgpDQo+IC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4g KyAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwi KSAvIE1QTFMobGFiZWwgPSAweGFiLCB0dGw9MTI4KQ0KPiAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2 NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAu MzAuOTlcIikgLyBNUExTKGxhYmVsID0gMHhhYiwgdHRsPTEyOCkgLw0KPiBVRFAoKSAvICgnXFx4 MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9 XCI4LjguOC44XCIpIC8gTVBMUyhsYWJlbCA9IDB4YWIsIHR0bD0xMjgpIC8gVURQKCkgLw0KPiAo J1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAo c3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gTVBMUyhsYWJlbCA9IDB4YWIsIHR0bD0xMjgpIC8NCj4g VURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSksDQo+ICsgICAgfQ0KPiArDQo+ICsNCj4gK2NsYXNz IEZsb3dBY3Rpb25PZl9zZXRfbndfdHRsKEFjdGlvbkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0g Rmxvd0FjdGlvblR5cGUuT0ZfU0VUX05XX1RUTA0KPiArDQo+ICsgICAgdGVzdF9jYXNlID0gew0K PiArICAgICAgICAgJ3Rlc3QnOiAoJ2luZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAx OTIuMTY4LjAuMSAnDQo+ICsgICAgICAgICAgICAgICAgICAnLyB1ZHAgLyBlbmQgYWN0aW9ucyBv Zl9zZXRfbndfdHRsIG53X3R0bCA2NCAvIGVuZCcsDQo+ICsgICAgICAgICAgICAgICAgICBmcm96 ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIiwgdHRsPTEyOCkgLyBVRFAo KSAvICgnXFx4MDAnDQo+ICogNjQpIn0pLA0KPiArICAgICAgICAgICAgICAgICAgZnJvemVuc2V0 KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIsIHR0bD0xMjgpIC8gVURQKCkgLyAo J1xceDAwJw0KPiAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhl cigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiLCB0dGw9MTI4KSAvIFVEUCgpIC8gKCdcXHgwMCcg Kg0KPiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQ KHNyYz1cIjguOC44LjhcIiwgdHRsPTEyOCkgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3 LjAuOTlcIiwgdHRsPTEyOCkgLyBVRFAoKSAvICgnXFx4MDAnICoNCj4gNjQpIn0pKSwNCj4gKyAg ICB9DQo+ICsNCj4gKw0KPiArY2xhc3MgRmxvd0FjdGlvbk9mX2RlY19ud190dGwoQWN0aW9uRmxv d0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlwZS5PRl9ERUNfTldfVFRMDQo+ICsg ICAgdGVzdF9jYXNlID0gew0KPiArICAgICAgICAndGVzdCc6ICgNCj4gKyAgICAgICAgICAgICdp bmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAgLyBlbmQg YWN0aW9ucw0KPiBvZl9kZWNfbndfdHRsIC8gZW5kJywNCj4gKyAgICAgICAgICAgIGZyb3plbnNl dCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiLCB0dGw9MTI4KSAvIFVEUCgpIC8g KCdcXHgwMCcgKg0KPiA2NCkifSksDQo+ICsgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigp IC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIiwgdHRsPTEyOCkgLyBVRFAoKSAvICgnXFx4MDAnICoN Cj4gNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIx MC4wLjMwLjk5XCIsIHR0bD0xMjgpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiLCB0dGw9MTI4 KSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAi RXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiLCB0dGw9MTI4KSAvIFVEUCgpIC8gKCdc XHgwMCcgKg0KPiA2NCkifSkpLA0KPiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0 aW9uT2ZfY29weV90dGxfb3V0KEFjdGlvbkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0Fj dGlvblR5cGUuT0ZfQ09QWV9UVExfT1VUDQo+ICsNCj4gKyAgICB0ZXN0X2Nhc2UgPSB7DQo+ICsg ICAgICAgICAndGVzdCc6ICgnaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4x NjguMC4xICcNCj4gKyAgICAgICAgICAgICAgICAgICcvIHVkcCAvIGVuZCBhY3Rpb25zIG9mX2Nv cHlfdHRsX291dCAvIGVuZCcsDQo+ICsgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhl cigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0p LA0KPiArICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5 Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgp IC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRo ZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3 LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pKSwNCj4gKyAgICB9DQo+ICsNCj4g Kw0KPiArY2xhc3MgRmxvd0FjdGlvbk9mX2NvcHlfdHRsX2luKEFjdGlvbkZsb3dJdGVtKToNCj4g KyAgICB0eXBlID0gRmxvd0FjdGlvblR5cGUuT0ZfQ09QWV9UVExfSU4NCj4gKw0KPiArICAgIHRl c3RfY2FzZSA9IHsNCj4gKyAgICAgICAgICd0ZXN0JzogKCdpbmdyZXNzIHBhdHRlcm4gZXRoIC8g aXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgJw0KPiArICAgICAgICAgICAgICAgICAgJy8gdWRwIC8g ZW5kIGFjdGlvbnMgb2ZfY29weV90dGxfb3V0IC8gZW5kJywNCj4gKyAgICAgICAgICAgICAgICAg IGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFVEUCgpIC8g KCdcXHgwMCcgKiA2NCkifSksDQo+ICsgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhl cigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMC4w LjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdc XHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAv IElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSkpLA0K PiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0aW9uT2ZfcG9wX3ZsYW4oQWN0aW9u Rmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlwZS5PRl9QT1BfVkxBTg0KPiAr DQo+ICsgICAgdGVzdF9jYXNlID0gew0KPiArICAgICAgICAgJ3Rlc3QnOiAoJ2luZ3Jlc3MgcGF0 dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+ IG9mX3BvcF92bGFuIC8gZW5kJywNCj4gKyAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0 aGVyKCkgLyBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YWFhKSAvDQo+IElQ KHNyYz1cIjE5Mi4xNjguMC4xXCIpICINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ii8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKyAgICAgICAgICAgICAgICAgIGZyb3pl bnNldCh7IkV0aGVyKCkgLyBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YWFh KSAvDQo+IElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpICINCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIi8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4g PSAweGFhYSkgLw0KPiBJUChzcmM9XCIxMC4wLjMwLjk5XCIpICINCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIi8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAs IHZsYW4gPSAweGFhYSkgLw0KPiBJUChzcmM9XCI4LjguOC44XCIpICINCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIi8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAw eDAsIHZsYW4gPSAweGFhYSkgLw0KPiBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikiDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pKSwN Cj4gKyAgICB9DQo+ICsNCj4gKw0KPiArY2xhc3MgRmxvd0FjdGlvbk9mX3B1c2hfdmxhbihBY3Rp b25GbG93SXRlbSk6DQo+ICsgICAgdHlwZSA9IEZsb3dBY3Rpb25UeXBlLk9GX1BVU0hfVkxBTg0K PiArICAgIHRlc3RfY2FzZSA9IHsNCj4gKyAgICAgICAgICd0ZXN0JzogKCdpbmdyZXNzIHBhdHRl cm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEnDQo+ICsgICAgICAgICAgICAgICAgICAn IC8gdWRwIC8gZW5kIGFjdGlvbnMgb2ZfcHVzaF92bGFuIGV0aGVydHlwZSAweDgxMDAgLyBlbmQn LA0KPiArICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIERvdDFRKHByaW8g PSAweDUsIGlkID0gMHgwLCB2bGFuID0gMHhhYWEpIC8NCj4gSVAoc3JjPVwiMTkyLjE2OC4wLjFc IikgIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyBVRFAoKSAvICgnXFx4MDAn ICogNjQpIn0pLA0KPiArICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIERv dDFRKHByaW8gPSAweDUsIGlkID0gMHgwLCB2bGFuID0gMHhhYWEpIC8NCj4gSVAoc3JjPVwiMTky LjE2OC4wLjJcIikgIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyBVRFAoKSAv ICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVy KCkgLyBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YWFhKSAvDQo+IElQKHNy Yz1cIjEwLjAuMzAuOTlcIikgIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyBV RFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IkV0aGVyKCkgLyBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YWFhKSAvDQo+ IElQKHNyYz1cIjguOC44LjhcIikgIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi LyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkV0aGVyKCkgLyBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YWFhKSAv DQo+IElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSINCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIiAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSkpLA0KPiArICAgIH0NCj4gKw0KPiAr DQo+ICtjbGFzcyBGbG93QWN0aW9uT2Zfc2V0X3ZsYW5fdmlkKEFjdGlvbkZsb3dJdGVtKToNCj4g KyAgICB0eXBlID0gRmxvd0FjdGlvblR5cGUuT0ZfU0VUX1ZMQU5fVklEDQo+ICsNCj4gKyAgICB0 ZXN0X2Nhc2UgPSB7DQo+ICsgICAgICAgICd0ZXN0JzogKCdpbmdyZXNzIHBhdHRlcm4gZXRoIC8g aXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgJw0KPiArICAgICAgICAgICAgICAgICAnLyB1ZHAgLyBl bmQgYWN0aW9ucyBvZl9zZXRfdmxhbl92aWQgdmxhbl92aWQgMHhiYmIgLyBlbmQnLA0KPiArICAg ICAgICAgICAgICAgICBmcm96ZW5zZXQoew0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4gPSAweGFhYSkg Lw0KPiBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSINCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKyAgICAgICAgICAgICAg ICAgZnJvemVuc2V0KHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIo KSAvIERvdDFRKHByaW8gPSAweDUsIGlkID0gMHgwLCB2bGFuID0gMHhhYWEpIC8NCj4gSVAoc3Jj PVwiMTkyLjE2OC4wLjJcIikgIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIv IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4gPSAweGFhYSkg Lw0KPiBJUChzcmM9XCIxMC4wLjMwLjk5XCIpICINCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiLyBVRFAoKSAvICgnXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4g PSAweGFhYSkgLw0KPiBJUChzcmM9XCI4LjguOC44XCIpICINCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiLyBVRFAoKSAvICgnXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAs IHZsYW4gPSAweGFhYSkgLw0KPiBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgIg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSkpLA0K PiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0aW9uT2Zfc2V0X3ZsYW5fcGNwKEFj dGlvbkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0FjdGlvblR5cGUuT0ZfU0VUX1ZMQU5f UENQDQo+ICsgICAgdGVzdF9jYXNlID0gew0KPiArICAgICAgICAndGVzdCc6ICgnaW5ncmVzcyBw YXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xJw0KPiArICAgICAgICAgICAgICAg ICAnIC8gdWRwIC8gZW5kIGFjdGlvbnMgb2Zfc2V0X3ZsYW5fdmlkIHZsYW5fcGNwIDB4NyAvIGVu ZCcsDQo+ICsgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7DQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxh biA9IDB4YWFhKSAvDQo+IElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpICINCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pLA0KPiArICAg ICAgICAgICAgICAgICBmcm96ZW5zZXQoew0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4gPSAweGFhYSkg Lw0KPiBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAiDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIi8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxh biA9IDB4YWFhKSAvDQo+IElQKHNyYz1cIjEwLjAuMzAuOTlcIikgIg0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIvIFVEUCgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBEb3QxUShwcmlvID0gMHg1LCBpZCA9 IDB4MCwgdmxhbiA9IDB4YWFhKSAvDQo+IElQKHNyYz1cIjguOC44LjhcIikgIg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIvIFVEUCgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBEb3QxUShwcmlvID0gMHg1 LCBpZCA9IDB4MCwgdmxhbiA9IDB4YWFhKSAvDQo+IElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAi DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8gVURQKCkgLyAoJ1xceDAwJyAq IDY0KSJ9KSksDQo+ICsgICAgfQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rpb25PZl9wb3Bf bXBscyhBY3Rpb25GbG93SXRlbSk6DQo+ICsgICAgdHlwZSA9IEZsb3dBY3Rpb25UeXBlLk9GX1BP UF9NUExTDQo+ICsgICAgdGVzdF9jYXNlID0gew0KPiArICAgICAgICAndGVzdCc6ICgNCj4gKyAg ICAgICAgICAgICdpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEg Jw0KPiArICAgICAgICAgICAgJy8gdWRwIC8gZW5kIGFjdGlvbnMgb2ZfcG9wX21wbHMgZXRoZXJ0 eXBlIDB4MDgwNiAvIGVuZCcsDQo+ICsgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8g SVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgLyBNUExTKGxhYmVsID0gMHhhYiwgdHRsPTEyOCkNCj4g LyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pLA0KPiArICAgICAgICAgICAgZnJvemVuc2V0KHsi RXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gTVBMUyhsYWJlbCA9IDB4YWIsIHR0 bD0xMjgpDQo+IC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIE1QTFMobGFiZWwgPSAw eGFiLCB0dGw9MTI4KSAvDQo+IFVEUCgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIE1QTFMobGFiZWwg PSAweGFiLCB0dGw9MTI4KSAvIFVEUCgpIC8NCj4gKCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gTVBM UyhsYWJlbCA9IDB4YWIsIHR0bD0xMjgpIC8NCj4gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSks DQo+ICsgICAgfQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rpb25PZl9wdXNoX21wbHMoQWN0 aW9uRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlwZS5PRl9QVVNIX01QTFMN Cj4gKw0KPiArICAgIHRlc3RfY2FzZSA9IHsNCj4gKyAgICAgICAgJ3Rlc3QnOiAoDQo+ICsgICAg ICAgICAgICAnaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xJw0K PiArICAgICAgICAgICAgJyAvIHVkcCAvIGVuZCBhY3Rpb25zIG9mX3B1c2hfbXBscyBldGhlcnR5 cGUgMHgwODA2IC8gZW5kJywNCj4gKyAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJ UChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIE1QTFMobGFiZWwgPSAweGFiLCB0dGw9MTI4KQ0KPiAv IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsgICAgICAgICAgICBmcm96ZW5zZXQoeyJF dGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBNUExTKGxhYmVsID0gMHhhYiwgdHRs PTEyOCkNCj4gLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gTVBMUyhsYWJlbCA9IDB4 YWIsIHR0bD0xMjgpIC8NCj4gVURQKCkgLyAoJ1x4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gTVBMUyhsYWJlbCA9 IDB4YWIsIHR0bD0xMjgpIC8gVURQKCkgLw0KPiAoJ1x4MDAnICogNjQpIiwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBNUExT KGxhYmVsID0gMHhhYiwgdHRsPTEyOCkgLw0KPiBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pKSwN Cj4gKyAgICB9DQo+ICsNCj4gKw0KPiArY2xhc3MgRmxvd0FjdGlvblZ4bGFuX2VuY2FwKEFjdGlv bkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0FjdGlvblR5cGUuVlhMQU5fRU5DQVANCj4g Kw0KPiArICAgIHRlc3RfY2FzZSA9IHsNCj4gKyAgICAgICAgICMgVlhMQU4gZW5jYXAgZGVmaW5p dGlvbiBpcyB0aGUgVk5JPw0KPiArICAgICAgICAgJ3Rlc3QnOiAoJ2luZ3Jlc3MgcGF0dGVybiBl dGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMScNCj4gKyAgICAgICAgICAgICAgICAgICcgLyB1 ZHAgLyBlbmQgYWN0aW9ucyB2eGxhbl9lbmNhcCBkZWZpbml0aW9uIDB4MTEyMjMzIC8gZW5kJywN Cj4gKyAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIu MTY4LjAuMVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsgICAgICAgICAgICAg ICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAo KSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0 aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1x4MDAnICogNjQpIiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCI4Ljgu OC44XCIpIC8gVURQKCkgLyAoJ1x4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAoKSAvICgn XFx4MDAnICogNjQpIn0pKSwNCj4gKyAgICAgfQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rp b25WeGxhbl9kZWNhcChBY3Rpb25GbG93SXRlbSk6DQo+ICsgICAgdHlwZSA9IEZsb3dBY3Rpb25U eXBlLlZYTEFOX0RFQ0FQDQo+ICsNCj4gKyAgICB0ZXN0X2Nhc2UgPSB7DQo+ICsgICAgICAgICAn dGVzdCc6ICgnaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8g dWRwIC8gZW5kIGFjdGlvbnMNCj4gdnhsYW5fZGVjYXAgLyBlbmQnLA0KPiArICAgICAgICAgICAg ICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQ KCkgLyBWWExBTigpIC8NCj4gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsgICAgICAgICAgICAgICAg ICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAv IFZYTEFOKCkgLw0KPiAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgpIC8gVlhMQU4o KSAvICgnXFx4MDAnICoNCj4gNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IkV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkgLyBWWExBTigpIC8gKCdcXHgw MCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQ KHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8gVlhMQU4oKSAvICgnXFx4MDAnICoNCj4g NjQpIn0pKSwNCj4gKyAgICAgfQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rpb25OdmdyZV9l bmNhcChBY3Rpb25GbG93SXRlbSk6DQo+ICsgICAgdHlwZSA9IEZsb3dBY3Rpb25UeXBlLk5WR1JF X0VOQ0FQDQo+ICsgICAgIyBOVkdSRSBQQUNLRVRTIE5PVCBTVVBQT1JURUQgQlkgU0NBUFkuDQo+ ICsgICAgJycnDQo+ICsgICAgIHRlc3RfY2FzZSA9IHsNCj4gKyAgICAgICAgICd0ZXN0JzogKCdp bmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjENCj4gKyAgICAgICAg IC8gdWRwIC8gZW5kIGFjdGlvbnMgbnZncmVfZW5jYXAgZGVmaW5pdGlvbiAweDExMjIzMyAvIGVu ZCcsDQo+ICsgICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1c IjE5Mi4xNjguMC4xXCIpIC8gVURQKCkgLyAgTlZHUkUoKSAvDQo+ICgnXFx4MDAnICogNjQpIn0p LA0KPiArICAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIx OTIuMTY4LjAuMlwiKSAvIFVEUCgpIC8gIE5WR1JFKCkgLw0KPiAoJ1xceDAwJyAqIDY0KSIsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAu MzAuOTlcIikgLyBVRFAoKSAvICBOVkdSRSgpIC8gKCdcXHgwMCcgKg0KPiA2NCkiLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIp IC8gVURQKCkgLyAgTlZHUkUoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQ KCkgLyAgTlZHUkUoKSAvICgnXFx4MDAnDQo+ICogNjQpIn0pKSwNCj4gKyAgICAgfQ0KPiArICAg ICAnJycNCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0aW9uTnZncmVfZGVjYXAoQWN0aW9uRmxv d0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlwZS5OVkdSRV9ERUNBUA0KPiArICAg ICMgTlZHUkUgUEFDS0VUUyBOT1QgU1VQUE9SVEVEIEJZIFNDQVBZLg0KPiArICAgICcnJw0KPiAr ICAgICB0ZXN0X2Nhc2UgPSB7DQo+ICsgICAgICAgICAndGVzdCc6ICgnaW5ncmVzcyBwYXR0ZXJu IGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4gbnZn cmVfZGVjYXAgLyBlbmQnLA0KPiArICAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVy KCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFVEUCgpIC8gTlZHUkUoKSAvDQo+ICgnXFx4 MDAnICogNjQpIn0pLA0KPiArICAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkg LyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAvIFVEUCgpIC8gTlZHUkUoKSAvDQo+ICgnXFx4MDAn ICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAo c3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgpIC8gTlZHUkUoKSAvICgnXFx4MDAnICoNCj4gNjQp IiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwi OC44LjguOFwiKSAvIFVEUCgpIC8gTlZHUkUoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5 XCIpIC8gVURQKCkgLyBOVkdSRSgpIC8gKCdcXHgwMCcNCj4gKiA2NCkifSkpLA0KPiArICAgICB9 DQo+ICsgICAgICcnJw0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rpb25SYXdfZW5jYXAoQWN0 aW9uRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlwZS5SQVdfRU5DQVANCj4g KyAgICAjIEFzc3VtZSB3ZSBhcmUgZW5jYXBzdWxhdGluZyB3aXRoIGEgVkxBTiBoZWFkZXIgd2l0 aCB0aGUgZm9sbG93aW5nIHZhbHVlczoNCj4gKyAgICAjIFRQSUQ6IDB4ODEwMA0KPiArICAgICMg UHJpbzogMHg1DQo+ICsgICAgIyBQQ1A6IDANCj4gKyAgICAjIFZJRDogMHhhYWENCj4gKyAgICAj IFRoaXMgbWFrZXMgdGhlIGZ1bGwgaGVhZGVyOiAweDgxMDBhYWFhDQo+ICsgICAgdGVzdF9jYXNl ID0gew0KPiArICAgICAgICAndGVzdF9kYXRhJzogKCdpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2 NCBzcmMgaXMgMTkyLjE2OC4wLjEgJw0KPiArICAgICAgICAgICAgICAgICAgICAgICcvIHVkcCAv IGVuZCBhY3Rpb25zIHJhd19lbmNhcCBkYXRhIDB4ODEwMGFhYWEgLyBlbmQnLA0KPiArICAgICAg ICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAu MVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKg0KPiA2NCkifSksDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQ KCkgLyAoJ1xceDAwJyAqDQo+IDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAuOTlcIikgLyBVRFAoKSAvICgnXHgwMCcg KiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJ UChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1x4MDAnICogNjQpIiwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5 XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSksDQo+ICsNCj4gKyAgICAgICAgJ3Rlc3Rf cHJlc2VydmUnOiAoJ2luZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAu MSAnDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICcvIHVkcCAvIGVuZCBhY3Rpb25zIHJh d19lbmNhcCBkYXRhIDB4ODEwMGFhYWEgcHJlc2VydmUNCj4gMHhmZmZmZmZmZiAvIGVuZCcsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9 XCIxOTIuMTY4LjAuMVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKg0KPiA2NCkifSksDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIu MTY4LjAuMlwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKg0KPiA2NCkiLA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwi KSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdc XHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJF dGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqDQo+ IDY0KSJ9KSksDQo+ICsgICAgICAgICMgSXMgInNpemUiIGluIGJpdHMgb3IgYnl0ZXM/IFVuY2xl YXIgaW4gZG9jdW1lbnRhdGlvbiwgZGVmYXVsdGluZyB0byBiaXRzLg0KPiArICAgICAgICAndGVz dF9zaXplJzogKCdpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEg Jw0KPiArICAgICAgICAgICAgICAgICAgICAgICcvIHVkcCAvIGVuZCBhY3Rpb25zIHJhd19lbmNh cCBkYXRhIDB4ODEwMGFhYWEgc2l6ZSAzMiAvIGVuZCcsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQKCkg LyAoJ1xceDAwJyAqDQo+IDY0KSJ9KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICBmcm96ZW5z ZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAn ICoNCj4gNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigp IC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjguOC44 LjhcIikgLyBVRFAoKSAvICgnXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAoKSAv ICgnXFx4MDAnICogNjQpIn0pKSwNCj4gKyAgICB9DQo+ICsNCj4gKw0KPiArY2xhc3MgRmxvd0Fj dGlvblJhd19kZWNhcChBY3Rpb25GbG93SXRlbSk6DQo+ICsgICAgdHlwZSA9IEZsb3dBY3Rpb25U eXBlLlJBV19ERUNBUA0KPiArICAgIHRlc3RfY2FzZSA9IHsNCj4gKyAgICAgICAgJ3Rlc3RfZGF0 YSc6ICgNCj4gKyAgICAgICAgICAgICdpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMg MTkyLjE2OC4wLjEgJw0KPiArICAgICAgICAgICAgJy8gdWRwIC8gZW5kIGFjdGlvbnMgcmF3X2Rl Y2FwIGRhdGEgMHg4MTAwYWFhYSAvIGVuZCcsDQo+ICsgICAgICAgICAgICBmcm96ZW5zZXQoeyJF dGhlcigpICAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0 KSJ9KSwNCj4gKyAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyAgRG90MVEocHJpbyA9 IDB4NSwgaWQgPSAweDAsIHZsYW4gPSAweGJiYikgLw0KPiBJUChzcmM9XCIxOTIuMTY4LjAuMlwi KSINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIiAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCki LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvICBEb3QxUShwcmlvID0gMHg1 LCBpZCA9IDB4MCwgdmxhbiA9IDB4YmJiKSAvDQo+IElQKHNyYz1cIjEwLjAuMzAuOTlcIikgIg0K PiArICAgICAgICAgICAgICAgICAgICAgICAiLyBVRFAoKSAvICgnXHgwMCcgKiA2NCkiLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvICBEb3QxUShwcmlvID0gMHg1LCBpZCA9 IDB4MCwgdmxhbiA9IDB4YmJiKSAvDQo+IElQKHNyYz1cIjguOC44LjhcIikiDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICIgLyBVRFAoKSAvICgnXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAiRXRoZXIoKSAvICBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxh biA9IDB4YmJiKSAvDQo+IElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAiDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICIvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSkpLA0KPiArDQo+ICsgICAg ICAgICMgSXMgInNpemUiIGluIGJpdHMgb3IgYnl0ZXM/IFVuY2xlYXIgaW4gZG9jdW1lbnRhdGlv biwgZGVmYXVsdGluZyB0byBiaXRzLg0KPiArICAgICAgICAndGVzdF9zaXplJzogKA0KPiArICAg ICAgICAgICAgJ2luZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAn DQo+ICsgICAgICAgICAgICAnLyB1ZHAgLyBlbmQgYWN0aW9ucyByYXdfZGVjYXAgZGF0YSAweDgx MDBhYWFhIHNpemUgMzIgLyBlbmQnLA0KPiArICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIo KSAvICBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YmJiKSAvDQo+IElQKHNy Yz1cIjE5Mi4xNjguMC4xXCIpICINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIi8gVURQKCkg LyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKyAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkg LyAgRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4gPSAweGJiYikgLw0KPiBJUChzcmM9 XCIxOTIuMTY4LjAuMlwiKSAiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICIvIFVEUCgpIC8g KCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvICBE b3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YmJiKSAvDQo+IElQKHNyYz1cIjEw LjAuMzAuOTlcIikiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICIgLyBVRFAoKSAvICgnXHgw MCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvICBEb3QxUShw cmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YmJiKSAvDQo+IElQKHNyYz1cIjguOC44Ljhc IikgIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAiLyBVRFAoKSAvICgnXHgwMCcgKiA2NCki LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvICBEb3QxUShwcmlvID0gMHg1 LCBpZCA9IDB4MCwgdmxhbiA9IDB4YmJiKSAvDQo+IElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAi DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICIvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSkp LA0KPiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0aW9uU2V0X2lwdjRfc3JjKEFj dGlvbkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0FjdGlvblR5cGUuU0VUX0lQVjRfU1JD DQo+ICsNCj4gKyAgICB0ZXN0X2Nhc2UgPSB7DQo+ICsgICAgICAgICAndGVzdCc6ICgnaW5ncmVz cyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xICcNCj4gKyAgICAgICAgICAg ICAgICAgICcvIHVkcCAvIGVuZCBhY3Rpb25zIHNldF9pcHY0X3NyYyBpcHY0X2FkZHIgMTcyLjE2 LjAuMTAgIC8gZW5kJywNCj4gKyAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkg LyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ ICsgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2 OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAo J1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigp IC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45 OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSkpLA0KPiArICAgICB9DQo+ICsNCj4gKw0K PiArY2xhc3MgRmxvd0FjdGlvblNldF9pcHY0X2RzdChBY3Rpb25GbG93SXRlbSk6DQo+ICsgICAg dHlwZSA9IEZsb3dBY3Rpb25UeXBlLlNFVF9JUFY0X0RTVA0KPiArDQo+ICsgICAgdGVzdF9jYXNl ID0gew0KPiArICAgICAgICAgJ3Rlc3QnOiAoJ2luZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IGRz dCBpcyAxOTIuMTY4LjAuMScNCj4gKyAgICAgICAgICAgICAgICAgICcgLyB1ZHAgLyBlbmQgYWN0 aW9ucyBzZXRfaXB2NF9kc3QgaXB2NF9hZGRyIDE3Mi4xNi4wLjEwIC8gZW5kJywNCj4gKyAgICAg ICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChkc3Q9XCIxOTIuMTY4LjAuMVwi KSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsgICAgICAgICAgICAgICAgICBmcm96 ZW5zZXQoeyJFdGhlcigpIC8gSVAoZHN0PVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4 MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJ UChkc3Q9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoZHN0PVwiOC44LjguOFwiKSAv IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiRXRoZXIoKSAvIElQKGRzdD1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcg KiA2NCkifSkpLA0KPiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0aW9uU2V0X2lw djZfc3JjKEFjdGlvbkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0FjdGlvblR5cGUuU0VU X0lQVjZfU1JDDQo+ICsNCj4gKyAgICB0ZXN0X2Nhc2UgPSB7DQo+ICsgICAgICAgICAndGVzdCc6 ICgnaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjYgc3JjIGlzDQo+IDIwMDE6MDAwMDo5ZDM4OjZh Yjg6MWM0ODozYTFjOmE5NWE6YjFjMiAnDQo+ICsgICAgICAgICAgICAgICAgICAnLyB1ZHAgLyBl bmQgYWN0aW9ucyBzZXRfaXB2Nl9zcmMgaXB2Nl9hZGRyDQo+IDIwMDE6MDAwMDo5ZDM4OjZhYjg6 MWM0ODo5OTk5OmFhYWE6YmJiYicsDQo+ICsgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJF dGhlcigpIC8NCj4gSVB2NihzcmM9XCIyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVh OmIxYzJcIikgIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyBVRFAoKSAvICgn XFx4MDAnICogNjQpIn0pLA0KPiArICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIo KSAvDQo+IElQdjYoc3JjPVwiMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpiMWMz XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqDQo+IDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIkV0aGVyKCkgLw0KPiBJUHY2KHNyYz1cIjIwMDE6MDAwMDo5ZDM4OjZhYjg6MWM0 ODozYTFjOmE5NWE6YjFjNFwiKSAvIFVEUCgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8NCj4gSVB2NihzcmM9XCIyMDAxOjAwMDA6 OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzVcIikgLyBVRFAoKSAvICgnXHgwMCcgKiA2NCki LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvDQo+IElQdjYoc3Jj PVwiMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpiMWM2XCIpICINCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIi8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSksDQo+ ICsgICAgfQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rpb25TZXRfaXB2Nl9kc3QoQWN0aW9u Rmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlwZS5TRVRfSVBWNl9EU1QNCj4g Kw0KPiArICAgIHRlc3RfY2FzZSA9IHsNCj4gKyAgICAgICAgICd0ZXN0JzogKCdpbmdyZXNzIHBh dHRlcm4gZXRoIC8gaXB2NiBkc3QgaXMNCj4gMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6 YTk1YTpiMWMyICcNCj4gKyAgICAgICAgICAgICAgICAgICcvIHVkcCAvIGVuZCBhY3Rpb25zIHNl dF9pcHY2X2RzdCBpcHY2X2FkZHINCj4gMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4Ojk5OTk6YWFh YTpiYmJiJywNCj4gKyAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLw0KPiBJ UHY2KGRzdD1cIjIwMDE6MDAwMDo5ZDM4OjZhYjg6MWM0ODozYTFjOmE5NWE6YjFjMlwiKSINCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCki fSksDQo+ICsgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8NCj4gSVB2Nihk c3Q9XCIyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzNcIikgLyBVRFAoKSAv ICgnXFx4MDAnICoNCj4gNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRo ZXIoKSAvDQo+IElQdjYoZHN0PVwiMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpi MWM0XCIpIC8gVURQKCkgLyAoJ1x4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIkV0aGVyKCkgLw0KPiBJUHY2KGRzdD1cIjIwMDE6MDAwMDo5ZDM4OjZhYjg6MWM0 ODozYTFjOmE5NWE6YjFjNVwiKSAvIFVEUCgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8NCj4gSVB2Nihkc3Q9XCIyMDAxOjAwMDA6 OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzZcIikgIg0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pKSwNCj4gKyAgICAgIH0NCj4g Kw0KPiArDQo+ICtjbGFzcyBGbG93QWN0aW9uU2V0X3RwX3NyYyhBY3Rpb25GbG93SXRlbSk6DQo+ ICsgICAgdHlwZSA9IEZsb3dBY3Rpb25UeXBlLlNFVF9UUF9TUkMNCj4gKw0KPiArICAgIHRlc3Rf Y2FzZSA9IHsNCj4gKyAgICAgICAgIyBVRFANCj4gKyAgICAgICAgJ3Rlc3RfdWRwJzogKCdpbmdy ZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEnDQo+ICsgICAgICAgICAg ICAgICAgICAgICAnIC8gdWRwIC8gZW5kIGFjdGlvbnMgc2V0X3RwX3NyYyBwb3J0IDE5OTggLyBl bmQnLA0KPiArICAgICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNy Yz1cIjE5Mi4xNjguMC4xXCIpIFVEUChzcG9ydD0zODM4KSAvDQo+ICgnXFx4MDAnICogNjQpIn0p LA0KPiArICAgICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1c IjE5Mi4xNjguMC4yXCIpIFVEUChzcG9ydD0zODM4KSAvDQo+ICgnXFx4MDAnICogNjQpIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMC4w LjMwLjk5XCIpIFVEUChzcG9ydD0zODM4KSAvICgnXHgwMCcgKg0KPiA2NCkiLA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikg VURQKHNwb3J0PTM4MzgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIFVEUChzcG9y dD0zODM4KSAvICgnXFx4MDAnDQo+ICogNjQpIn0pKSwNCj4gKw0KPiArICAgICAgICAjIFRDUA0K PiArICAgICAgICAndGVzdF90Y3AnOiAoDQo+ICsgICAgICAgICAgJ2luZ3Jlc3MgcGF0dGVybiBl dGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHRjcCAvIGVuZCBhY3Rpb25zIHNldF90cF9z cmMNCj4gcG9ydCAxOTk4IC8gZW5kJywNCj4gKyAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigp IC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgVENQKHNwb3J0PTM4MzgpIC8gKCdcXHgwMCcgKg0K PiA2NCkifSksDQo+ICsgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5 Mi4xNjguMC4yXCIpIFRDUChzcG9ydD0zODM4KSAvICgnXFx4MDAnICoNCj4gNjQpIiwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSBUQ1Ao c3BvcnQ9MzgzOCkgLyAoJ1x4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICJF dGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSBUQ1Aoc3BvcnQ9MzgzOCkgLyAoJ1x4MDAnICog NjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3 Ny4wLjk5XCIpIFRDUChzcG9ydD0zODM4KSAvICgnXFx4MDAnICoNCj4gNjQpIn0pKSwNCj4gKyAg ICB9DQo+ICsNCj4gKw0KPiArY2xhc3MgRmxvd0FjdGlvblNldF90cF9kc3QoQWN0aW9uRmxvd0l0 ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlwZS5TRVRfVFBfRFNUDQo+ICsNCj4gKyAg ICB0ZXN0X2Nhc2UgPSB7DQo+ICsgICAgICAgICMgVURQDQo+ICsgICAgICAgICd0ZXN0X3VkcCc6 ICgnaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xICcNCj4gKyAg ICAgICAgICAgICAgICAgICAgICcvIHVkcCAvIGVuZCBhY3Rpb25zIHNldF90cF9kc3QgcG9ydCAx OTk4IC8gZW5kJywNCj4gKyAgICAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkg LyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSBVRFAoZHBvcnQ9MzgzOCkgLw0KPiAoJ1xceDAwJyAq IDY0KSJ9KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJ UChzcmM9XCIxOTIuMTY4LjAuMlwiKSBVRFAoZHBvcnQ9MzgzOCkgLw0KPiAoJ1xceDAwJyAqIDY0 KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3Jj PVwiMTAuMC4zMC45OVwiKSBVRFAoZHBvcnQ9MzgzOCkgLyAoJ1x4MDAnICoNCj4gNjQpIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCI4Ljgu OC44XCIpIFVEUChkcG9ydD0zODM4KSAvICgnXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSBV RFAoZHBvcnQ9MzgzOCkgLyAoJ1xceDAwJw0KPiAqIDY0KSJ9KSksDQo+ICsNCj4gKyAgICAgICAg IyBUQ1ANCj4gKyAgICAgICAgJ3Rlc3RfdGNwJzogKA0KPiArICAgICAgICAgICdpbmdyZXNzIHBh dHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB0Y3AgLyBlbmQgYWN0aW9ucyBz ZXRfdHBfZHN0DQo+IHBvcnQgMTk5OCAvIGVuZCcsDQo+ICsgICAgICAgICAgZnJvemVuc2V0KHsi RXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIFRDUChkcG9ydD0zODM4KSAvICgnXFx4 MDAnICoNCj4gNjQpIn0pLA0KPiArICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChz cmM9XCIxOTIuMTY4LjAuMlwiKSBUQ1AoZHBvcnQ9MzgzOCkgLyAoJ1xceDAwJyAqDQo+IDY0KSIs DQo+ICsgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAuOTlc IikgVENQKGRwb3J0PTM4MzgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikgVENQKGRwb3J0PTM4MzgpIC8gKCdc eDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1c IjEzMi4xNzcuMC45OVwiKSBUQ1AoZHBvcnQ9MzgzOCkgLyAoJ1xceDAwJyAqDQo+IDY0KSJ9KSks DQo+ICsNCj4gKyAgICB9DQo+ICsNCj4gKw0KPiArY2xhc3MgRmxvd0FjdGlvblNldF90dGwoQWN0 aW9uRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlwZS5TRVRfVFRMDQo+ICsN Cj4gKyAgICB0ZXN0X2Nhc2UgPSB7DQo+ICsgICAgICAgICAndGVzdCc6ICgnaW5ncmVzcyBwYXR0 ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xJw0KPiArICAgICAgICAgICAgICAgICAg JyAvIHVkcCAvIGVuZCBhY3Rpb25zIHNldF90dGwgdHRsX3ZhbHVlIDY0IC8gZW5kJywNCj4gKyAg ICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAu MVwiICwgdHRsPTEyOCApIC8gVURQKCkgLw0KPiAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKyAgICAg ICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwi ICwgdHRsPTEyOCApIC8gVURQKCkgLw0KPiAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiICwgdHRs PTEyOCApIC8gVURQKCkgLyAoJ1x4MDAnICoNCj4gNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIsIHR0bD0xMjggKSAvIFVE UCgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJF dGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIsIHR0bD0xMjggKSAvIFVEUCgpIC8gKCdc XHgwMCcgKg0KPiA2NCkifSkpLA0KPiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0 aW9uU2V0X21hY19zcmMoQWN0aW9uRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9u VHlwZS5TRVRfTUFDX1NSQw0KPiArDQo+ICsgICAgdGVzdF9jYXNlID0gew0KPiArICAgICAgICAg J3Rlc3QnOiAoJ2luZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMScN Cj4gKyAgICAgICAgICAgICAgICAgICcgLyB1ZHAgLyBlbmQgYWN0aW9ucyBzZXRfbWFjX3NyYyBt YWNfYWRkciAxMDoyMDozMDo0MDo1MDo2MCAvIGVuZCcsDQo+ICsgICAgICAgICAgICAgICAgICBm cm96ZW5zZXQoeyJFdGhlcihzcmM9XCI5MDo2MTphZTpmZDo0MTo0M1wiKSAvIElQKHNyYz1cIjE5 Mi4xNjguMC4xXCIpDQo+IC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKyAgICAgICAg ICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKHNyYz1cIjkwOjYxOmFlOmZkOjQxOjQzXCIpIC8g SVAoc3JjPVwiMTkyLjE2OC4wLjJcIikNCj4gLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoc3JjPVwiOTA6NjE6YWU6ZmQ6NDE6 NDNcIikgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8NCj4gVURQKCkgLyAoJ1xceDAwJyAqIDY0 KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcihzcmM9XCI5MDo2MTph ZTpmZDo0MTo0M1wiKSAvIElQKHNyYz1cIjguOC44LjhcIikgLyBVRFAoKSAvDQo+ICgnXFx4MDAn ICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKHNyYz1cIjkw OjYxOmFlOmZkOjQxOjQzXCIpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8NCj4gVURQKCkg LyAoJ1xceDAwJyAqIDY0KSJ9KSksDQo+ICsgICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93 QWN0aW9uU2V0X21hY19kc3QoQWN0aW9uRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0 aW9uVHlwZS5TRVRfTUFDX0RTVA0KPiArICAgIHRlc3RfY2FzZSA9IHsNCj4gKyAgICAgICAgICAg ICAndGVzdCc6ICgnaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4x Jw0KPiArICAgICAgICAgICAgICAgICAgICAgICcgLyB1ZHAgLyBlbmQgYWN0aW9ucyBzZXRfbWFj X2RzdCBtYWNfYWRkciAxMDoyMDozMDo0MDo1MDo2MCAvDQo+IGVuZCcsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoZHN0PVwiOTA6NjE6YWU6ZmQ6NDE6NDNcIikg Lw0KPiBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAiDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pLA0KPiArICAgICAgICAgICAg ICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKGRzdD1cIjkwOjYxOmFlOmZkOjQxOjQzXCIpIC8N Cj4gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKGRzdD1cIjkwOjYxOmFlOmZk OjQxOjQzXCIpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvDQo+IFVEUCgpIC8gKCdceDAwJyAq IDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoZHN0PVwi OTA6NjE6YWU6ZmQ6NDE6NDNcIikgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkNCj4gLyAo J1x4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhl cihkc3Q9XCI5MDo2MTphZTpmZDo0MTo0M1wiKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKQ0K PiAiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyBVRFAoKSAvICgnXFx4 MDAnICogNjQpIn0pKSwNCj4gKyAgICAgICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0 aW9uSW5jX3RjcF9zZXEoQWN0aW9uRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9u VHlwZS5JTkNfVENQX1NFUQ0KPiArDQo+ICsgICAgdGVzdF9jYXNlID0gew0KPiArICAgICAgICAg J3Rlc3QnOiAoJ2luZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAv IHRjcCAvIGVuZCBhY3Rpb25zDQo+IGluY190Y3Bfc2VxIC8gZW5kJywNCj4gKyAgICAgICAgICAg ICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFRD UChzZXE9MikgLyAoJ1xceDAwJyAqDQo+IDY0KSJ9KSwNCj4gKyAgICAgICAgICAgICAgICAgIGZy b3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAvIFRDUChzZXE9Mikg LyAoJ1xceDAwJyAqDQo+IDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJF dGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFRDUChzZXE9MikgLyAoJ1xceDAwJyAq IDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3Jj PVwiOC44LjguOFwiKSAvIFRDUChzZXE9MikgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIp IC8gVENQKHNlcT0yKSAvICgnXFx4MDAnICoNCj4gNjQpIn0pKSwNCj4gKyAgICAgfQ0KPiArDQo+ ICsNCj4gK2NsYXNzIEZsb3dBY3Rpb25EZWNfdGNwX3NlcShBY3Rpb25GbG93SXRlbSk6DQo+ICsg ICAgdHlwZSA9IEZsb3dBY3Rpb25UeXBlLkRFQ19UQ1BfU0VRDQo+ICsNCj4gKyAgICB0ZXN0X2Nh c2UgPSB7DQo+ICsgICAgICAgICAndGVzdCc6ICgnaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQg c3JjIGlzIDE5Mi4xNjguMC4xIC8gdGNwIC8gZW5kIGFjdGlvbnMNCj4gZGVjX3RjcF9zZXEgLyBl bmQnLA0KPiArICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1c IjE5Mi4xNjguMC4xXCIpIC8gVENQKHNlcT0yKSAvICgnXFx4MDAnICoNCj4gNjQpIn0pLA0KPiAr ICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjgu MC4yXCIpIC8gVENQKHNlcT0yKSAvICgnXFx4MDAnICoNCj4gNjQpIiwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVENQ KHNlcT0yKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gVENQKHNlcT0yKSAvICgnXFx4MDAn ICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChz cmM9XCIxMzIuMTc3LjAuOTlcIikgLyBUQ1Aoc2VxPTIpIC8gKCdcXHgwMCcgKg0KPiA2NCkifSkp LA0KPiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93QWN0aW9uSW5jX3RjcF9hY2soQWN0 aW9uRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlwZS5JTkNfVENQX0FDSw0K PiArDQo+ICsgICAgdGVzdF9jYXNlID0gew0KPiArICAgICAgICAgJ3Rlc3QnOiAoJ2luZ3Jlc3Mg cGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHRjcCAvIGVuZCBhY3Rpb25z DQo+IGluY190Y3BfYWNrIC8gZW5kJywNCj4gKyAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7 IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFRDUChhY2s9MikgLyAoJ1xceDAw JyAqDQo+IDY0KSJ9KSwNCj4gKyAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkg LyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAvIFRDUChhY2s9MikgLyAoJ1xceDAwJyAqDQo+IDY0 KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwi MTAuMC4zMC45OVwiKSAvIFRDUChhY2s9MikgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFRD UChhY2s9MikgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVENQKGFjaz0yKSAvICgn XFx4MDAnICoNCj4gNjQpIn0pKSwNCj4gKyAgICAgfQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dB Y3Rpb25EZWNfdGNwX2FjayhBY3Rpb25GbG93SXRlbSk6DQo+ICsgICAgdHlwZSA9IEZsb3dBY3Rp b25UeXBlLkRFQ19UQ1BfQUNLDQo+ICsNCj4gKyAgICB0ZXN0X2Nhc2UgPSB7DQo+ICsgICAgICAg ICAndGVzdCc6ICgnaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4x IC8gdGNwIC8gZW5kIGFjdGlvbnMNCj4gZGVjX3RjcF9hY2sgLyBlbmQnLA0KPiArICAgICAgICAg ICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8g VENQKGFjaz0yKSAvICgnXFx4MDAnICoNCj4gNjQpIn0pLA0KPiArICAgICAgICAgICAgICAgICAg ZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVENQKGFjaz0y KSAvICgnXFx4MDAnICoNCj4gNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IkV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVENQKGFjaz0yKSAvICgnXFx4MDAn ICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChz cmM9XCI4LjguOC44XCIpIC8gVENQKGFjaz0yKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlc IikgLyBUQ1AoYWNrPTIpIC8gKCdcXHgwMCcgKg0KPiA2NCkifSkpLA0KPiArICAgIH0NCj4gKw0K PiArDQo+ICtjbGFzcyBGbG93QWN0aW9uU2V0X3RhZyhBY3Rpb25GbG93SXRlbSk6DQo+ICsgICAg dHlwZSA9IEZsb3dBY3Rpb25UeXBlLlNFVF9UQUcNCj4gKw0KPiArICAgIHRlc3RfY2FzZSA9IHsN Cj4gKyAgICAgICAgICd0ZXN0X2RhdGEnOiAoJ2luZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNy YyBpcyAxOTIuMTY4LjAuMSAnDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICcvIHVkcCAvIGVu ZCBhY3Rpb25zIHNldF90YWcgZGF0YSAweGFiYyAvIGVuZCcsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFVE UCgpIC8gKCdcXHgwMCcgKg0KPiA2NCkifSksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGZy b3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAvIFVEUCgpIC8gKCdc XHgwMCcgKg0KPiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJF dGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgpIC8gKCdceDAwJyAqIDY0KSIs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9 XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1x4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAv IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSkpLA0KPiArICAgICAgICAgIyBiaXQtbWFzayBhcHBs aWVzIHRvICJkYXRhIg0KPiArICAgICAgICAgJ3Rlc3RfbWFzayc6ICgnaW5ncmVzcyBwYXR0ZXJu IGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xICcNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgJy8gdWRwIC8gZW5kIGFjdGlvbnMgc2V0X3RhZyBkYXRhIDB4YWJjIG1hc2sgMHhjYmEgLyBl bmQnLA0KPiArICAgICAgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAo c3JjPVwiMTkyLjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICoNCj4gNjQpIn0pLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTky LjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICoNCj4gNjQpIiwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAuOTlcIikg LyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikgLyBVRFAoKSAvICgnXFx4MDAn ICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAv IElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkifSkpLA0K PiArICAgICAgICAgJ3Rlc3RfaW5kZXgnOiAoJ2luZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNy YyBpcyAxOTIuMTY4LjAuMSAnDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAnLyB1ZHAgLyBl bmQgYWN0aW9ucyBzZXRfdGFnIGRhdGEgMHhhYmMgaW5kZXggMSAvIGVuZCcsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4w LjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICoNCj4gNjQpIn0pLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8g VURQKCkgLyAoJ1xceDAwJyAqDQo+IDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgpIC8gKCdc eDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhl cigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTMy LjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSksDQo+ICsgICAgfQ0KPiAr DQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rpb25TZXRfbWV0YShBY3Rpb25GbG93SXRlbSk6DQo+ICsg ICAgdHlwZSA9IEZsb3dBY3Rpb25UeXBlLlNFVF9NRVRBDQo+ICsNCj4gKyAgICB0ZXN0X2Nhc2Ug PSB7DQo+ICsgICAgICAgICAndGVzdF9kYXRhJzogKCdpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2 NCBzcmMgaXMgMTkyLjE2OC4wLjEgJw0KPiArICAgICAgICAgICAgICAgICAgICAgICAnLyB1ZHAg LyBlbmQgYWN0aW9ucyBzZXRfbWV0YSBkYXRhIDB4YWJjIC8gZW5kJywNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIp IC8gVURQKCkgLyAoJ1xceDAwJyAqDQo+IDY0KSJ9KSwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkg LyAoJ1xceDAwJyAqDQo+IDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAq IDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJ UChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAu OTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pKSwNCj4gKyAgICAgICAgICMgYml0LW1h c2sgYXBwbGllcyB0byAiZGF0YSINCj4gKyAgICAgICAgICd0ZXN0X21hc2snOiAoJ2luZ3Jlc3Mg cGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAnDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICcvIHVkcCAvIGVuZCBhY3Rpb25zIHNldF9tZXRhIGRhdGEgMHhhYmMgbWFzayAw eGNiIC8gZW5kJywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIo KSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqDQo+IDY0KSJ9 KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNy Yz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqDQo+IDY0KSIsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMw Ljk5XCIpIC8gVURQKCkgLyAoJ1x4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikgLyBVRFAoKSAvICgn XHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhl cigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KSJ9 KSksDQo+ICsgICAgfQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rpb25TZXRfaXB2NF9kc2Nw KEFjdGlvbkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0FjdGlvblR5cGUuU0VUX0lQVjRf RFNDUA0KPiArDQo+ICsgICAgdGVzdF9jYXNlID0gew0KPiArICAgICAgICAgJ3Rlc3QnOiAoJ2lu Z3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAnDQo+ICsgICAgICAg ICAgICAgICAgICAnLyB1ZHAgLyBlbmQgYWN0aW9ucyBzZXRfaXB2NF9kc2NwIGRzY3AgMiAvIGVu ZCcsDQo+ICsgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwi MTkyLjE2OC4wLjFcIiwgdG9zID0gMCkgLyBVRFAoKSAvICgnXFx4MDAnDQo+ICogNjQpIn0pLA0K PiArICAgICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4x NjguMC4yXCIsIHRvcyA9IDApIC8gVURQKCkgLyAoJ1xceDAwJw0KPiAqIDY0KSIsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwi LCB0b3MgPSAwKSAvIFVEUCgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiLCB0b3MgPSAwKSAvIFVE UCgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJF dGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIsIHRvcyA9IDApIC8gVURQKCkgLyAoJ1xc eDAwJyAqDQo+IDY0KSJ9KSksDQo+ICsgICAgfQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rp b25TZXRfaXB2Nl9kc2NwKEFjdGlvbkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0FjdGlv blR5cGUuU0VUX0lQVjZfRFNDUA0KPiArDQo+ICsgICAgdGVzdF9jYXNlID0gew0KPiArICAgICAg ICAgJ3Rlc3QnOiAoJ2luZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY2IHNyYyBpcw0KPiAyMDAxOjAw MDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzIgJw0KPiArICAgICAgICAgICAgICAgICAg Jy8gdWRwIC8gZW5kIGFjdGlvbnMgc2V0X2lwdjZfZHNjcCBkc2NwIDB4MzAnLA0KPiArICAgICAg ICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvDQo+IElQdjYoc3JjPVwiMjAwMTowMDAw OjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpiMWMyXCIsIHRjID0gMCkgIg0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pLA0KPiArICAg ICAgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvDQo+IElQdjYoc3JjPVwiMjAwMTow MDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpiMWMzXCIsIHRjID0gMCkgIg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvDQo+IElQdjYoc3JjPVwiMjAwMTow MDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpiMWM0XCIsIHRjID0gMCkgIg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiLyBVRFAoKSAvICgnXHgwMCcgKiA2NCkiLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvDQo+IElQdjYoc3JjPVwiMjAwMTow MDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpiMWM1XCIsIHRjID0gMCkgIg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiLyBVRFAoKSAvICgnXHgwMCcgKiA2NCkiLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvDQo+IElQdjYoc3JjPVwiMjAwMTow MDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpiMWM2XCIsIHRjID0gMCkgIg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiLyBVRFAoKSAvICgnXFx4MDAnICogNjQpIn0pKSwNCj4g KyAgICAgfQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dBY3Rpb25BZ2UoQWN0aW9uRmxvd0l0ZW0p Og0KPiArICAgIHR5cGUgPSBGbG93QWN0aW9uVHlwZS5BR0UNCj4gKw0KPiArICAgIHRlc3RfY2Fz ZSA9IHsNCj4gKyAgICAgICAgICd0ZXN0X3RpbWVvdXQnOiAoJ2luZ3Jlc3MgcGF0dGVybiBldGgg LyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAnDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICcvIHVkcCAvIGVuZCBhY3Rpb25zIGFnZSB0aW1lb3V0IDEyOCAvIGVuZCcsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4 LjAuMVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKg0KPiA2NCkifSksDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwi KSAvIFVEUCgpIC8gKCdcXHgwMCcgKg0KPiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgp IC8gKCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1x4MDAnICogNjQp IiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQ KHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKg0KPiA2NCkifSkpLA0K PiArICAgICAgICAgIyA4IGJpdHMgcmVzZXJ2ZWQsIG11c3QgYmUgemVybw0KPiArICAgICAgICAg J3Rlc3RfcmVzZXJ2ZWQnOiAoJ2luZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIu MTY4LjAuMSAnDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAnLyB1ZHAgLyBlbmQgYWN0 aW9ucyBhZ2UgdGltZW91dCAxMjggcmVzZXJ2ZWQgMCAvIGVuZCcsDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFc IikgLyBVRFAoKSAvICgnXFx4MDAnICoNCj4gNjQpIn0pLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8g VURQKCkgLyAoJ1xceDAwJyAqDQo+IDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgpIC8g KCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdceDAwJyAqIDY0KSIs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAo c3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqDQo+IDY0KSJ9KSksDQo+ ICsgICAgICAgICAjIFRoZSB1c2VyIGZsb3cgY29udGV4dCwgTlVMTCBtZWFucyB0aGUgcnRlX2Zs b3cgcG9pbnRlci4NCj4gKyAgICAgICAgICd0ZXN0X2NvbnRleHQnOiAoJ2luZ3Jlc3MgcGF0dGVy biBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAnDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICcvIHVkcCAvIGVuZCBhY3Rpb25zIGFnZSB0aW1lb3V0IDEyOCBjb250ZXh0IE5VTEwg LyBlbmQnLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigp IC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICoNCj4gNjQpIn0p LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAo c3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICoNCj4gNjQpIiwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTAu MC4zMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVE UCgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xc eDAwJyAqDQo+IDY0KSJ9KSksDQo+ICsNCj4gKyAgICB9DQo+ICsNCj4gKw0KPiArQUNUSU9OX0lU RU1TX1RZUEVfQ0xBU1NfTUFQUElORzogRGljdFtGbG93QWN0aW9uVHlwZSwgQWN0aW9uRmxvd0l0 ZW1dDQo+ID0gew0KPiArICAgIEZsb3dBY3Rpb25UeXBlLlBBU1NUSFJVOiBGbG93QWN0aW9uUGFz c3RocnUsDQo+ICsgICAgRmxvd0FjdGlvblR5cGUuRkxBRzogRmxvd0FjdGlvbkZsYWcsDQo+ICsg ICAgRmxvd0FjdGlvblR5cGUuRFJPUDogRmxvd0FjdGlvbkRyb3AsDQo+ICsgICAgRmxvd0FjdGlv blR5cGUuQ09VTlQ6IEZsb3dBY3Rpb25Db3VudCwNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5NQUNf U1dBUDogRmxvd0FjdGlvbk1hY19zd2FwLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLkRFQ19UVEw6 IEZsb3dBY3Rpb25EZWNfdHRsLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLkpVTVA6IEZsb3dBY3Rp b25KdW1wLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLk1BUks6IEZsb3dBY3Rpb25NYXJrLA0KPiAr ICAgIEZsb3dBY3Rpb25UeXBlLlFVRVVFOiBGbG93QWN0aW9uUXVldWUsDQo+ICsgICAgRmxvd0Fj dGlvblR5cGUuUlNTOiBGbG93QWN0aW9uUnNzLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLlBGOiBG bG93QWN0aW9uUGYsDQo+ICsgICAgRmxvd0FjdGlvblR5cGUuVkY6IEZsb3dBY3Rpb25WZiwNCj4g KyAgICBGbG93QWN0aW9uVHlwZS5QSFlfUE9SVDogRmxvd0FjdGlvblBoeV9wb3J0LA0KPiArICAg IEZsb3dBY3Rpb25UeXBlLlBPUlRfSUQ6IEZsb3dBY3Rpb25Qb3J0X2lkLA0KPiArICAgIEZsb3dB Y3Rpb25UeXBlLk1FVEVSOiBGbG93QWN0aW9uTWV0ZXIsDQo+ICsgICAgRmxvd0FjdGlvblR5cGUu U0VDVVJJVFk6IEZsb3dBY3Rpb25TZWN1cml0eSwNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5PRl9T RVRfTVBMU19UVEw6IEZsb3dBY3Rpb25PZl9zZXRfbXBsc190dGwsDQo+ICsgICAgRmxvd0FjdGlv blR5cGUuT0ZfREVDX01QTFNfVFRMOiBGbG93QWN0aW9uT2ZfZGVjX21wbHNfdHRsLA0KPiArICAg IEZsb3dBY3Rpb25UeXBlLk9GX1NFVF9OV19UVEw6IEZsb3dBY3Rpb25PZl9zZXRfbndfdHRsLA0K PiArICAgIEZsb3dBY3Rpb25UeXBlLk9GX0RFQ19OV19UVEw6IEZsb3dBY3Rpb25PZl9kZWNfbndf dHRsLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLk9GX0NPUFlfVFRMX09VVDogRmxvd0FjdGlvbk9m X2NvcHlfdHRsX291dCwNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5PRl9DT1BZX1RUTF9JTjogRmxv d0FjdGlvbk9mX2NvcHlfdHRsX2luLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLk9GX1BPUF9WTEFO OiBGbG93QWN0aW9uT2ZfcG9wX3ZsYW4sDQo+ICsgICAgRmxvd0FjdGlvblR5cGUuT0ZfUFVTSF9W TEFOOiBGbG93QWN0aW9uT2ZfcHVzaF92bGFuLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLk9GX1NF VF9WTEFOX1ZJRDogRmxvd0FjdGlvbk9mX3NldF92bGFuX3ZpZCwNCj4gKyAgICBGbG93QWN0aW9u VHlwZS5PRl9TRVRfVkxBTl9QQ1A6IEZsb3dBY3Rpb25PZl9zZXRfdmxhbl9wY3AsDQo+ICsgICAg Rmxvd0FjdGlvblR5cGUuT0ZfUE9QX01QTFM6IEZsb3dBY3Rpb25PZl9wb3BfbXBscywNCj4gKyAg ICBGbG93QWN0aW9uVHlwZS5PRl9QVVNIX01QTFM6IEZsb3dBY3Rpb25PZl9wdXNoX21wbHMsDQo+ ICsgICAgRmxvd0FjdGlvblR5cGUuVlhMQU5fRU5DQVA6IEZsb3dBY3Rpb25WeGxhbl9lbmNhcCwN Cj4gKyAgICBGbG93QWN0aW9uVHlwZS5WWExBTl9ERUNBUDogRmxvd0FjdGlvblZ4bGFuX2RlY2Fw LA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLk5WR1JFX0VOQ0FQOiBGbG93QWN0aW9uTnZncmVfZW5j YXAsDQo+ICsgICAgRmxvd0FjdGlvblR5cGUuTlZHUkVfREVDQVA6IEZsb3dBY3Rpb25OdmdyZV9k ZWNhcCwNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5SQVdfRU5DQVA6IEZsb3dBY3Rpb25SYXdfZW5j YXAsDQo+ICsgICAgRmxvd0FjdGlvblR5cGUuUkFXX0RFQ0FQOiBGbG93QWN0aW9uUmF3X2RlY2Fw LA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLlNFVF9JUFY0X1NSQzogRmxvd0FjdGlvblNldF9pcHY0 X3NyYywNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5TRVRfSVBWNF9EU1Q6IEZsb3dBY3Rpb25TZXRf aXB2NF9kc3QsDQo+ICsgICAgRmxvd0FjdGlvblR5cGUuU0VUX0lQVjZfU1JDOiBGbG93QWN0aW9u U2V0X2lwdjZfc3JjLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLlNFVF9JUFY2X0RTVDogRmxvd0Fj dGlvblNldF9pcHY2X2RzdCwNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5TRVRfVFBfU1JDOiBGbG93 QWN0aW9uU2V0X3RwX3NyYywNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5TRVRfVFBfRFNUOiBGbG93 QWN0aW9uU2V0X3RwX2RzdCwNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5TRVRfVFRMOiBGbG93QWN0 aW9uU2V0X3R0bCwNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5TRVRfTUFDX1NSQzogRmxvd0FjdGlv blNldF9tYWNfc3JjLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLlNFVF9NQUNfRFNUOiBGbG93QWN0 aW9uU2V0X21hY19kc3QsDQo+ICsgICAgRmxvd0FjdGlvblR5cGUuSU5DX1RDUF9TRVE6IEZsb3dB Y3Rpb25JbmNfdGNwX3NlcSwNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5ERUNfVENQX1NFUTogRmxv d0FjdGlvbkRlY190Y3Bfc2VxLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLklOQ19UQ1BfQUNLOiBG bG93QWN0aW9uSW5jX3RjcF9hY2ssDQo+ICsgICAgRmxvd0FjdGlvblR5cGUuREVDX1RDUF9BQ0s6 IEZsb3dBY3Rpb25EZWNfdGNwX2FjaywNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5TRVRfVEFHOiBG bG93QWN0aW9uU2V0X3RhZywNCj4gKyAgICBGbG93QWN0aW9uVHlwZS5TRVRfTUVUQTogRmxvd0Fj dGlvblNldF9tZXRhLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLlNFVF9JUFY0X0RTQ1A6IEZsb3dB Y3Rpb25TZXRfaXB2NF9kc2NwLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLlNFVF9JUFY2X0RTQ1A6 IEZsb3dBY3Rpb25TZXRfaXB2Nl9kc2NwLA0KPiArICAgIEZsb3dBY3Rpb25UeXBlLkFHRTogRmxv d0FjdGlvbkFnZQ0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvZnJhbWV3b3JrL2Zsb3cvZmxvd19pdGVt cy5weSBiL2ZyYW1ld29yay9mbG93L2Zsb3dfaXRlbXMucHkNCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCj4gaW5kZXggMDAwMDAwMDAuLmVkNWU4ZDljDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIv ZnJhbWV3b3JrL2Zsb3cvZmxvd19pdGVtcy5weQ0KPiBAQCAtMCwwICsxLDg0IEBADQo+ICtmcm9t IF9fZnV0dXJlX18gaW1wb3J0IGFubm90YXRpb25zDQo+ICsNCj4gK2ltcG9ydCBjb3B5DQo+ICtp bXBvcnQgaXRlcnRvb2xzDQo+ICtmcm9tIGZ1bmN0b29scyBpbXBvcnQgcmVkdWNlDQo+ICtmcm9t IHR5cGluZyBpbXBvcnQgRnJvemVuU2V0LCBVbmlvbiwgQW55LCBTZXQsIERpY3QsIFR1cGxlLCBJ dGVyYWJsZSwgSGFzaGFibGUNCj4gKw0KPiArZnJvbSBmcmFtZXdvcmsuZmxvdy5lbnVtcyBpbXBv cnQgRmxvd0l0ZW1UeXBlLCBGbG93QWN0aW9uVHlwZQ0KPiArZnJvbSBmcmFtZXdvcmsuZmxvdy5l eGNlcHRpb25zIGltcG9ydCBJbnZhbGlkRmxvd0l0ZW1FeGNlcHRpb24NCj4gK2Zyb20gZnJhbWV3 b3JrLmZsb3cgaW1wb3J0IGZsb3dfYWN0aW9uX2l0ZW1zDQo+ICtmcm9tIGZyYW1ld29yay5mbG93 IGltcG9ydCBmbG93X3BhdHRlcm5faXRlbXMNCj4gKw0KPiArUEFUVEVSTl9BQ1RJT05fSVRFTVMg PSB7Rmxvd0l0ZW1UeXBlLklOVkVSVCwgRmxvd0l0ZW1UeXBlLlZPSUQsDQo+IEZsb3dJdGVtVHlw ZS5NQVJLLCBGbG93SXRlbVR5cGUuTUVUQX0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93SXRlbShv YmplY3QpOg0KPiArICAgIHR5cGU6IFVuaW9uW0Zsb3dJdGVtVHlwZSwgRmxvd0FjdGlvblR5cGVd DQo+ICsgICAgIyBEZWZpbmVzIHdoYXQgaXRlbXMgdGhpcyBtYXkgbm90IGFwcGVhciB3aXRoDQo+ ICsgICAgYWxsb3dlZF93aXRoOiBGcm96ZW5TZXRbVW5pb25bRmxvd0l0ZW1UeXBlLCBGbG93QWN0 aW9uVHlwZV1dDQo+ICsgICAgIyBPU0kgTW9kZWwgbGF5ZXIgb2YgdGhlIHByb3RvY29sDQo+ICsg ICAgIyBUaGlzIHNob3VsZCBiZSB0aGUgbG93ZXN0IGxheWVyIGEgcHJvdG9jb2wgaXMgdXNlZCBp biwgZm9yIGV4YW1wbGUNCj4gKyAgICAjIFFVSUMgd291bGQgYmUgY29uc2lkZXJlZCBMNSBzaW5j ZSBpdCBuZWVkcyB0byBnbyBhZnRlciBVRFAgKEw0KSwNCj4gKyAgICAjIGV2ZW4gdGhvdWdoIGl0 IGhhcyBjYXBhYmlsaXRpZXMgaW4gTDYuDQo+ICsgICAgbGF5ZXI6IGludA0KPiArICAgIHZhbGlk X25leHRfaXRlbXM6IEZyb3plblNldFtVbmlvbltGbG93SXRlbVR5cGUsIEZsb3dBY3Rpb25UeXBl XV0NCj4gKw0KPiArICAgICMgVHlwZXMgc3ViamVjdCB0byBjaGFuZ2UsIHNob3VsZCBvbmx5IGJl IGFjY2Vzc2VkIHRocm91Z2gNCj4gKyAgICBwb3NzaWJsZV9wcm9wZXJ0aWVzOiBEaWN0W3N0ciwg VHVwbGVbc3RyLCBGcm96ZW5TZXRbc3RyXSwgRnJvemVuU2V0W3N0cl1dXQ0KPiArICAgIHByb3Bl cnRpZXM6IHN0cg0KPiArDQo+ICsgICAgZGVmIGdldF9wcm9wZXJ0eV9zdHJlYW0oc2VsZikgLT4g SXRlcmFibGVbVHVwbGVbRmxvd0l0ZW0sIEZyb3plblNldFtzdHJdLA0KPiBGcm96ZW5TZXRbc3Ry XSwgc3RyXV06DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwg cmV0dXJuIGEgZ2VuZXJhdG9yIHRoYXQgd2lsbCBwcm92aWRlIGFsbA0KPiArICAgICAgICBjb25m aWd1cmVkIHByb3BlcnR5IGNvbWJpbmF0aW9ucy4NCj4gKw0KPiArICAgICAgICBUaGlzIGZ1bmN0 aW9uIHdpbGwgbm90IG11dGF0ZSB0aGUgaW5zdGFuY2UgaXQgaXMgY2FsbGVkIG9uLg0KPiArDQo+ ICsgICAgICAgIEByZXR1cm46IGEgZ2VuZXJhdG9yIHRoYXQgd2lsbCBwcm92aWRlIGFsbA0KPiAr ICAgICAgICBwZXJtdXRhdGlvbnMgb2YgcG9zc2libGUgcHJvcGVydGllcyB0aGlzIG9iamVjdCBo YXMgYXMgYSBmbG93DQo+ICsgICAgICAgIGl0ZW0gd2l0aCBwcm9wZXJ0aWVzDQo+ICsgICAgICAg ICIiIg0KPiArICAgICAgICBiYXNlX2NvcHkgPSBjb3B5LmRlZXBjb3B5KHNlbGYpDQo+ICsgICAg ICAgIGZvciBrZXksIHZhbHVlIGluIHNlbGYucG9zc2libGVfcHJvcGVydGllcy5pdGVtcygpOg0K PiArICAgICAgICAgICAgbmV3X2NvcHkgPSBjb3B5LmRlZXBjb3B5KGJhc2VfY29weSkNCj4gKyAg ICAgICAgICAgIG5ld19jb3B5LnByb3BlcnRpZXMgPSB2YWx1ZVswXSAgIyBUaGUgcHJvcGVydGll cyBzdHJpbmcNCj4gKyAgICAgICAgICAgIHlpZWxkIG5ld19jb3B5LCAqdmFsdWVbMTpdLCBmIntz ZWxmLnR5cGUudmFsdWV9X3trZXl9Ig0KPiArDQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYpOg0K PiArICAgICAgICBzZWxmLnByb3BlcnRpZXMgPSAiIg0KPiArDQo+ICsgICAgZGVmIF9fdHJ1ZWRp dl9fKHNlbGYsIG90aGVyOiBGbG93SXRlbSk6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBV c2VkIGluIGEgc2ltaWxhciB3YXkgdG8gc2NhcHkncyBwYWNrZXQgY29tcG9zaXRpb24uDQo+ICsg ICAgICAgIEBwYXJhbSBvdGhlcjogVGhlIG90aGVyIGZsb3cgaXRlbS4NCj4gKyAgICAgICAgQHJl dHVybjogQSBGbG93IGNvbnRhaW5pbmcgYm90aCBpdGVtcw0KPiArICAgICAgICAiIiINCj4gKyAg ICAgICAgaWYgdHlwZShzZWxmKSAhPSB0eXBlKG90aGVyKToNCj4gKyAgICAgICAgICAgIHJhaXNl IEludmFsaWRGbG93SXRlbUV4Y2VwdGlvbihzZWxmLCBvdGhlcikNCj4gKyAgICAgICAgZWxpZiBv dGhlci50eXBlIGluIHNlbGYudmFsaWRfbmV4dF9pdGVtczoNCj4gKyAgICAgICAgICAgICMgVGhp cyBpbXBvcnQgaXMgaW4gaGVyZSBzbyB0aGVyZSBpcyBubyBjaXJjdWxhciBpbXBvcnQNCj4gKyAg ICAgICAgICAgIGZyb20gZnJhbWV3b3JrLmZsb3cuZmxvdyBpbXBvcnQgRmxvdw0KPiArICAgICAg ICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLCBmbG93X3BhdHRlcm5faXRlbXMuUGF0dGVybkZsb3dJ dGVtKToNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gRmxvdyhwYXR0ZXJuX2l0ZW1zPVtzZWxm LCBvdGhlcl0pDQo+ICsgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2Uoc2VsZiwgZmxvd19hY3Rp b25faXRlbXMuQWN0aW9uRmxvd0l0ZW0pOg0KPiArICAgICAgICAgICAgICAgIHJldHVybiBGbG93 KGFjdGlvbl9pdGVtcz1bc2VsZiwgb3RoZXJdKQ0KPiArICAgICAgICAgICAgZWxzZToNCj4gKyAg ICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoDQo+ICsgICAgICAgICAgICAgICAgICAgIGYi e3R5cGUoc2VsZik6c30gaXMgbm90IG9uZSBvZg0KPiB7Zmxvd19wYXR0ZXJuX2l0ZW1zLlBhdHRl cm5GbG93SXRlbTpzfSwNCj4ge2Zsb3dfYWN0aW9uX2l0ZW1zLkFjdGlvbkZsb3dJdGVtOnN9LiIp DQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICByYWlzZSBJbnZhbGlkRmxvd0l0ZW1F eGNlcHRpb24oc2VsZiwgb3RoZXIpDQo+ICsNCj4gKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVy KSAtPiBib29sOg0KPiArICAgICAgICByZXR1cm4gdHlwZShzZWxmKSA9PSB0eXBlKG90aGVyKSBh bmQgXA0KPiArICAgICAgICAgICAgICAgc2VsZi50eXBlID09IG90aGVyLnR5cGUgYW5kIFwNCj4g KyAgICAgICAgICAgICAgIHNlbGYucHJvcGVydGllcyA9PSBvdGhlci5wcm9wZXJ0aWVzDQo+ICsN Cj4gKyAgICBkZWYgX19zdHJfXyhzZWxmKToNCj4gKyAgICAgICAgaWYgc2VsZi5wcm9wZXJ0aWVz ICE9ICIiOg0KPiArICAgICAgICAgICAgcmV0dXJuIHNlbGYucHJvcGVydGllcw0KPiArICAgICAg ICBlbHNlOg0KPiArICAgICAgICAgICAgcmV0dXJuIHNlbGYudHlwZS52YWx1ZQ0KPiArDQo+ICsg ICAgZGVmIF9fcmVwcl9fKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc3RyKHNlbGYpDQo+IGRp ZmYgLS1naXQgYS9mcmFtZXdvcmsvZmxvdy9mbG93X3BhdHRlcm5faXRlbXMucHkNCj4gYi9mcmFt ZXdvcmsvZmxvdy9mbG93X3BhdHRlcm5faXRlbXMucHkNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gaW5kZXggMDAwMDAwMDAuLjc3ZTJkZTBkDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZnJh bWV3b3JrL2Zsb3cvZmxvd19wYXR0ZXJuX2l0ZW1zLnB5DQo+IEBAIC0wLDAgKzEsMTA3NiBAQA0K PiArIyBBbGxvd3MgdGhlIHR5cGUgc3lzdGVtIHRvIGhhbmRsZSByZWZlcmVuY2luZyBhIGNsYXNz IGluc2lkZSBpdCdzIGRlZmluaXRpb24NCj4gK2Zyb20gdHlwaW5nIGltcG9ydCBGcm96ZW5TZXQs IERpY3QsIExpc3QsIFR1cGxlLCBJdGVyYWJsZQ0KPiArDQo+ICtmcm9tIHNjYXB5LmxheWVycy5p bmV0IGltcG9ydCBVRFAsIFRDUCwgSVAsIElDTVANCj4gK2Zyb20gc2NhcHkubGF5ZXJzLmluZXQ2 IGltcG9ydCBJUHY2DQo+ICtmcm9tIHNjYXB5LmxheWVycy5sMiBpbXBvcnQgRXRoZXIsIERvdDFR LCBHUkUsIEFSUA0KPiArZnJvbSBzY2FweS5sYXllcnMuc2N0cCBpbXBvcnQgU0NUUA0KPiArZnJv bSBzY2FweS5sYXllcnMudnhsYW4gaW1wb3J0IFZYTEFODQo+ICtmcm9tIHNjYXB5LnBhY2tldCBp bXBvcnQgUGFja2V0DQo+ICsNCj4gK2Zyb20gZnJhbWV3b3JrLmZsb3cuZW51bXMgaW1wb3J0IEZs b3dJdGVtVHlwZQ0KPiArZnJvbSBmcmFtZXdvcmsuZmxvdy5leGNlcHRpb25zIGltcG9ydCBJbnZh bGlkRmxvd0l0ZW1FeGNlcHRpb24NCj4gK2Zyb20gZnJhbWV3b3JrLmZsb3cuZmxvd19pdGVtcyBp bXBvcnQgRmxvd0l0ZW0NCj4gKw0KPiArQUxXQVlTX0FMTE9XRURfSVRFTVMgPSB7DQo+ICsgICAg Rmxvd0l0ZW1UeXBlLlJBVywNCj4gKyAgICBGbG93SXRlbVR5cGUuVk9JRA0KPiArfQ0KPiArTDNf RkxPV19UWVBFUyA9IHtGbG93SXRlbVR5cGUuSVBWNCwgRmxvd0l0ZW1UeXBlLklQVjZ9DQo+ICtM NF9GTE9XX0lURU1TID0ge0Zsb3dJdGVtVHlwZS5VRFAsIEZsb3dJdGVtVHlwZS5UQ1AsDQo+IEZs b3dJdGVtVHlwZS5TQ1RQLCBGbG93SXRlbVR5cGUuR1JFLCB9DQo+ICsNCj4gK1BBVFRFUk5fT1BF UkFUSU9OX1RZUEVTID0gew0KPiArICAgIEZsb3dJdGVtVHlwZS5NQVJLLA0KPiArICAgIEZsb3dJ dGVtVHlwZS5NRVRBLA0KPiArICAgIEZsb3dJdGVtVHlwZS5UQUcsDQo+ICsgICAgRmxvd0l0ZW1U eXBlLkZVWlpZLA0KPiArICAgIEZsb3dJdGVtVHlwZS5JTlZFUlQsDQo+ICt9DQo+ICsNCj4gK1RV Tk5FTElOR19QUk9UT0NPTF9UWVBFUyA9IHsNCj4gKyAgICBGbG93SXRlbVR5cGUuVkxBTiwNCj4g KyAgICBGbG93SXRlbVR5cGUuVlhMQU4sDQo+ICsgICAgRmxvd0l0ZW1UeXBlLkdSRSwNCj4gKyAg ICBGbG93SXRlbVR5cGUuVlhMQU5fR1BFDQo+ICt9DQo+ICsNCj4gKw0KPiArY2xhc3MgUGF0dGVy bkZsb3dJdGVtKEZsb3dJdGVtKToNCj4gKyAgICBhbGxvd2VkX3dpdGg6IEZyb3plblNldFtGbG93 SXRlbVR5cGVdID0gXA0KPiArICAgICAgICBmcm96ZW5zZXQoe2l0ZW0gZm9yIGl0ZW0gaW4gRmxv d0l0ZW1UeXBlfSkNCj4gKw0KPiArICAgIHZhbGlkX25leHRfaXRlbXM6IExpc3RbRmxvd0l0ZW1U eXBlXSA9IFwNCj4gKyAgICAgICAgW2l0ZW0gZm9yIGl0ZW0gaW4gRmxvd0l0ZW1UeXBlXQ0KPiAr DQo+ICsgICAgIyBPbmx5IHVzZWQgZm9yIGJ1aWxkaW5nIGEgdHJlZSB1cHdhcmQNCj4gKyAgICB2 YWxpZF9wYXJlbnRfaXRlbXM6IExpc3RbRmxvd0l0ZW1UeXBlXSA9IFwNCj4gKyAgICAgICAgW2l0 ZW0gZm9yIGl0ZW0gaW4gRmxvd0l0ZW1UeXBlXQ0KPiArDQo+ICsgICAgcG9zc2libGVfcHJvcGVy dGllczogTGlzdFtUdXBsZVtzdHIsIEl0ZXJhYmxlLCBJdGVyYWJsZV1dID0ge30NCj4gKw0KPiAr ICAgIGRlZiBfX3RydWVkaXZfXyhzZWxmLCBvdGhlcjogRmxvd0l0ZW0pOg0KPiArICAgICAgICAi IiINCj4gKyAgICAgICAgVXNlZCBpbiBhIHNpbWlsYXIgd2F5IHRvIHNjYXB5J3MgcGFja2V0IGNv bXBvc2l0aW9uLg0KPiArICAgICAgICBAcGFyYW0gb3RoZXI6IFRoZSBvdGhlciBmbG93IGl0ZW0u DQo+ICsgICAgICAgIEByZXR1cm46IEEgRmxvdyBjb250YWluaW5nIGJvdGggaXRlbXMNCj4gKyAg ICAgICAgIiIiDQo+ICsgICAgICAgIGlmIG90aGVyLnR5cGUgaW4gc2VsZi52YWxpZF9uZXh0X2l0 ZW1zIG9yIFwNCj4gKyAgICAgICAgICAgICAgICBvdGhlci50eXBlID09IEZsb3dJdGVtVHlwZS5F TkQ6DQo+ICsgICAgICAgICAgICAjIFRoaXMgaW1wb3J0IGlzIGluIGhlcmUgc28gdGhlcmUgaXMg bm8gY2lyY3VsYXIgaW1wb3J0DQo+ICsgICAgICAgICAgICBmcm9tIGZyYW1ld29yay5mbG93LmZs b3cgaW1wb3J0IEZsb3cNCj4gKyAgICAgICAgICAgIHJldHVybiBGbG93KHBhdHRlcm5faXRlbXM9 W3NlbGYsIG90aGVyXSkNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIHJhaXNlIElu dmFsaWRGbG93SXRlbUV4Y2VwdGlvbihzZWxmLCBvdGhlcikNCj4gKw0KPiArICAgICMgZGVmIHRv X3NjYXB5X3BhY2tldChzZWxmKToNCj4gKyAgICAjICAgIHNjYXB5X2NsYXNzOiB0eXBlID0gSVRF TV9UWVBFX1NDQVBZX0NMQVNTX01BUFBJTkdbc2VsZi50eXBlXQ0KPiArDQo+ICsNCj4gK2NsYXNz IEZsb3dJdGVtRW5kKFBhdHRlcm5GbG93SXRlbSk6DQo+ICsgICAgdHlwZSA9IEZsb3dJdGVtVHlw ZS5FTkQNCj4gKyAgICB2YWxpZF9uZXh0X2l0ZW1zID0gbGlzdCh7fSkNCj4gKw0KPiArDQo+ICtj bGFzcyBGbG93SXRlbVZvaWQoUGF0dGVybkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0l0 ZW1UeXBlLlZPSUQNCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93SXRlbUludmVydChQYXR0ZXJuRmxv d0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93SXRlbVR5cGUuSU5WRVJUDQo+ICsNCj4gKw0KPiAr Y2xhc3MgRmxvd0l0ZW1BbnkoUGF0dGVybkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0l0 ZW1UeXBlLkFOWQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dJdGVtUmF3KFBhdHRlcm5GbG93SXRl bSk6DQo+ICsgICAgdHlwZSA9IEZsb3dJdGVtVHlwZS5SQVcNCj4gKw0KPiArDQo+ICtjbGFzcyBG bG93SXRlbUFycF9ldGhfaXB2NChQYXR0ZXJuRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBGbG93 SXRlbVR5cGUuQVJQX0VUSF9JUFY0DQo+ICsgICAgdmFsaWRfbmV4dF9pdGVtcyA9IGxpc3Qoe0Zs b3dJdGVtVHlwZS5SQVcsIEZsb3dJdGVtVHlwZS5WT0lEfSkNCj4gKyAgICB2YWxpZF9wYXJlbnRf aXRlbXM6IExpc3RbRmxvd0l0ZW1UeXBlXSA9IFtGbG93SXRlbVR5cGUuSVBWNF0NCj4gKyAgICAi IiINCj4gKyAgICAtIGBgaGRyYGA6IGhhcmR3YXJlIHR5cGUsIG5vcm1hbGx5IDEuID0+IGh3dHlw ZQ0KPiArICAgIC0gYGBwcm9gYDogcHJvdG9jb2wgdHlwZSwgbm9ybWFsbHkgMHgwODAwLiA9PiBw dHlwZSA9IDIwNDgNCj4gKyAgICAtIGBgaGxuYGA6IGhhcmR3YXJlIGFkZHJlc3MgbGVuZ3RoLCBu b3JtYWxseSA2LiA9PiBod2xlbg0KPiArICAgIC0gYGBwbG5gYDogcHJvdG9jb2wgYWRkcmVzcyBs ZW5ndGgsIG5vcm1hbGx5IDQuID0+IHBsZW4NCj4gKyAgICAtIGBgb3BgYDogb3Bjb2RlICgxIGZv ciByZXF1ZXN0LCAyIGZvciByZXBseSkuID0+IG9wDQo+ICsgICAgLSBgYHNoYWBgOiBzZW5kZXIg aGFyZHdhcmUgYWRkcmVzcy4gPT4gaHdzcmMNCj4gKyAgICAtIGBgc3BhYGA6IHNlbmRlciBJUHY0 IGFkZHJlc3MgPT4gcHNyYw0KPiArICAgIC0gYGB0aGFgYDogdGFyZ2V0IGhhcmR3YXJlIGFkZHJl c3MuID0+IGh3ZHN0DQo+ICsgICAgLSBgYHRwYWBgOiB0YXJnZXQgSVB2NCBhZGRyZXNzLiA9PiBw ZHN0DQo+ICsgICAgLSBEZWZhdWx0IGBgbWFza2BgIG1hdGNoZXMgU0hBLCBTUEEsIFRIQSBhbmQg VFBBLg0KPiArICAgICIiIg0KPiArICAgIHBvc3NpYmxlX3Byb3BlcnRpZXMgPSB7DQo+ICsgICAg ICAgICdoZHInOg0KPiArICAgICAgICAgICAgKCdhcnBfZXRoX2lwdjQgaGRyIGlzIDEnLA0KPiAr ICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBBUlAoaHd0eXBlPTEpIC8gKCdcXHgw MCcgKiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8g QVJQKGh3dHlwZT0yKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICJFdGhlcigpIC8gQVJQKGh3dHlwZT0zKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gQVJQKGh3dHlwZT02KSAvICgnXFx4MDAnICog NjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gQVJQKGh3dHlwZS0x NSkgLyAoJ1xceDAwJyAqIDY0KSINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIH0pKSwNCj4g KyAgICAgICAgJ3Bybyc6DQo+ICsgICAgICAgICAgICAoJ2FycF9ldGhfaXB2NCBwcm8gaXMgMHgw ODAwJywNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gQVJQKHB0eXBlPTB4 MDgwMCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0KPiArICAgICAgICAgICAgIGZyb3plbnNl dCh7IkV0aGVyKCkgLyBBUlAocHR5cGU9MHgwODAwKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gQVJQKHB0eXBlPTB4MDg0MikgLyAoJ1xc eDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIEFSUChw dHlwZT0weDYwMDQpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgIkV0aGVyKCkgLyBBUlAocHR5cGU9MHg4MDliKSAvICgnXFx4MDAnICogNjQpIg0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgfSkpLA0KPiArDQo+ICsgICAgICAgICdobG4nOg0KPiArICAg ICAgICAgICAgKCdhcnBfZXRoX2lwdjQgaGxuIGlzIDYnLA0KPiArICAgICAgICAgICAgIGZyb3pl bnNldCh7IkV0aGVyKCkgLyBBUlAoaHdsZW49NikgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0K PiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBBUlAoaHdsZW49MTIpIC8gKCdc XHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBBUlAo aHdsZW49MikgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAi RXRoZXIoKSAvIEFSUChod2xlbj04KSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICJFdGhlcigpIC8gQVJQKGh3bGVuPTQpIC8gKCdcXHgwMCcgKiA2NCkiDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsNCj4gKyAgICAgICAgJ3Bsbic6DQo+ ICsgICAgICAgICAgICAoJ2FycF9ldGhfaXB2NCBwbG4gaXMgNCcsDQo+ICsgICAgICAgICAgICAg ZnJvemVuc2V0KHsiRXRoZXIoKSAvIEFSUChwbGVuPTQpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ ICsNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gQVJQKHBsZW49NikgLyAo J1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIEFS UChwbGVuPTIpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg IkV0aGVyKCkgLyBBUlAocGxlbj04KSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICJFdGhlcigpIC8gQVJQKHBsZW49MTIpIC8gKCdcXHgwMCcgKiA2NCkiDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsNCj4gKyAgICAgICAgJ29wJzoNCj4g KyAgICAgICAgICAgICgnYXJwX2V0aF9pcHY0IG9wIGlzIDEnLA0KPiArICAgICAgICAgICAgIGZy b3plbnNldCh7IkV0aGVyKCkgLyBBUlAob3A9MSkgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0K PiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBBUlAob3A9MikgLyAoJ1xceDAw JyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIEFSUChvcD0z KSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigp IC8gQVJQKG9wPTQpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgIkV0aGVyKCkgLyBBUlAob3A9NSkgLyAoJ1xceDAwJyAqIDY0KSINCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIH0pKSwNCj4gKw0KPiArICAgICAgICAnc2hhJzoNCj4gKyAgICAgICAgICAg ICgnYXJwX2V0aF9pcHY0IHNoYSBpcyA5MDo2MTphZTpmZDo0MTo0MycsDQo+ICsgICAgICAgICAg ICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIEFSUChod3NyYz1cIjkwOjYxOmFlOmZkOjQxOjQzXCIp IC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJF dGhlcigpIC8gQVJQKGh3c3JjPVwiOTA6NjE6YWU6ZmQ6NDE6NDRcIikgLyAoJ1xceDAwJyAqIDY0 KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIEFSUChod3NyYz1cIjkw OjYxOmFlOmZkOjQxOjQ1XCIpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgIkV0aGVyKCkgLyBBUlAoaHdzcmM9XCI5MDo2MTphZTpmZDo0MTo0NlwiKSAvICgn XFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gQVJQ KGh3c3JjPVwiOTA6NjE6YWU6ZmQ6NDE6NDdcIikgLyAoJ1xceDAwJyAqIDY0KSINCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIH0pKSwNCj4gKw0KPiArICAgICAgICAnc3BhJzoNCj4gKyAgICAg ICAgICAgICgnYXJwX2V0aF9pcHY0IHNwYSBpcyAxOTIuMTY4LjAuODAnLA0KPiArICAgICAgICAg ICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBBUlAocHNyYz1cIjE5Mi4xNjguMC44MFwiKSAvICgn XFx4MDAnICogNjQpIn0pLA0KPiArDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIo KSAvIEFSUChwc3JjPVwiMTAuMC4zMC4xMFwiKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gQVJQKHBzcmM9XCI4LjguOC44XCIpIC8gKCdc XHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBBUlAo cHNyYz1cIjEzMi4xNzcuMC41XCIpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgIkV0aGVyKCkgLyBBUlAocHNyYz1cIjEyMy40LjUuNlwiKSAvICgnXFx4MDAn ICogNjQpIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgfSkpLA0KPiArICAgICAgICAndGhh JzoNCj4gKyAgICAgICAgICAgICgnYXJwX2V0aF9pcHY0IHRoYSBpcyAwMDowMDowMDowMDowMDow MCcsDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIEFSUChod2RzdD0wMDow MDowMDowMDowMDowMCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0KPiArICAgICAgICAgICAg IGZyb3plbnNldCh7IkV0aGVyKCkgLyBBUlAoaHdkc3Q9OTA6NjE6YWU6ZmQ6NDE6NDUpIC8gKCdc XHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBBUlAo aHdkc3Q9OTA6NjE6YWU6ZmQ6NDE6NDYpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBBUlAoaHdkc3Q9OTA6NjE6YWU6ZmQ6NDE6NDcpIC8g KCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBB UlAoaHdkc3Q9OTA6NjE6YWU6ZmQ6NDE6NDgpIC8gKCdcXHgwMCcgKiA2NCkiDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICB9KSksDQo+ICsNCj4gKyAgICAgICAgJ3RwYSc6DQo+ICsgICAgICAg ICAgICAoJ2FycF9ldGhfaXB2NCB0cGEgaXMgMTkyLjE2OC4wLjEnLA0KPiArICAgICAgICAgICAg IGZyb3plbnNldCh7IkV0aGVyKCkgLyBBUlAocGRzdD0xOTIuMTY4LjAuMSkgLyAoJ1xceDAwJyAq IDY0KSJ9KSwNCj4gKw0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBBUlAo cGRzdD0xMC4wLjMwLjEwKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICJFdGhlcigpIC8gQVJQKHBkc3Q9OC44LjguOCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIEFSUChwZHN0PTEzMi4xNzcuMC41 KSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigp IC8gQVJQKHBkc3Q9MTIzLjQuNS42KSAvICgnXFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgfSkpLA0KPiArDQo+ICsgICAgfQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dJ dGVtRXRoKFBhdHRlcm5GbG93SXRlbSk6DQo+ICsgICAgdHlwZSA9IEZsb3dJdGVtVHlwZS5FVEgN Cj4gKyAgICB2YWxpZF9uZXh0X2l0ZW1zID0gbGlzdChBTFdBWVNfQUxMT1dFRF9JVEVNUyB8IEwz X0ZMT1dfVFlQRVMgfA0KPiB7Rmxvd0l0ZW1UeXBlLlZMQU4sIEZsb3dJdGVtVHlwZS5BUlBfRVRI X0lQVjR9KQ0KPiArICAgIHZhbGlkX3BhcmVudF9pdGVtczogTGlzdFtGbG93SXRlbVR5cGVdID0g bGlzdCh7fSkNCj4gKyAgICAjIE1hdGNoZXMgYW4gRXRoZXJuZXQgaGVhZGVyIChub3QgRXRoZXJu ZXQgZnJhbWUpLg0KPiArDQo+ICsgICAgIiIiDQo+ICsgICAgLSBgYGRzdGBgOiBkZXN0aW5hdGlv biBNQUMuDQo+ICsgICAgLSBgYHNyY2BgOiBzb3VyY2UgTUFDLg0KPiArICAgIC0gYGB0eXBlYGA6 IEV0aGVyVHlwZSBvciBUUElELiAoVFBJRCB2YWx1ZSBpcyAweDgxMDAsIGFueSBvdGhlcnMgYXJl IG5vcm1hbA0KPiBFdGhlclR5cGUpDQo+ICsgICAgLSBEZWZhdWx0IGBgbWFza2BgIG1hdGNoZXMg ZGVzdGluYXRpb24gYW5kIHNvdXJjZSBhZGRyZXNzZXMgb25seS4NCj4gKyAgICAiIiINCj4gKyAg ICBwb3NzaWJsZV9wcm9wZXJ0aWVzID0gew0KPiArICAgICAgICAnZHN0JzoNCj4gKyAgICAgICAg ICAgICgnZXRoIGRzdCBpcyA5MDo2MTphZTpmZDo0MTo0MycsDQo+ICsgICAgICAgICAgICAgZnJv emVuc2V0KHsiRXRoZXIoZHN0PVwiOTA6NjE6YWU6ZmQ6NDE6NDNcIikgLyAoJ1xceDAwJyAqIDY0 KSJ9KSwNCj4gKw0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKGRzdD1cIjkwOjYx OmFlOmZkOjQxOjQ0XCIpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgIkV0aGVyKGRzdD1cIjkwOjYxOmFlOmZkOjQxOjQ1XCIpIC8gKCdcXHgwMCcgKiA2NCki LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKGRzdD1cIjkwOjYxOmFlOmZkOjQx OjQ2XCIpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0 aGVyKGRzdD1cIjkxOjYxOmFlOmZkOjQxOjQzXCIpIC8gKCdcXHgwMCcgKiA2NCkiDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsgICAgICAgICdzcmMnOg0KPiArICAgICAgICAg ICAgKCdldGggc3JjIGlzIDkwOjYxOmFlOmZkOjQxOjQzJywNCj4gKyAgICAgICAgICAgICBmcm96 ZW5zZXQoeyJFdGhlcihzcmM9XCI5MDo2MTphZTpmZDo0MTo0M1wiKSAvICgnXFx4MDAnICogNjQp In0pLA0KPiArDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoc3JjPVwiOTA6NjE6 YWU6ZmQ6NDE6NDRcIikgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAiRXRoZXIoc3JjPVwiOTA6NjE6YWU6ZmQ6NDE6NDVcIikgLyAoJ1xceDAwJyAqIDY0KSIs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoc3JjPVwiOTA6NjE6YWU6ZmQ6NDE6 NDZcIikgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRo ZXIoc3JjPVwiOTE6NjE6YWU6ZmQ6NDE6NDNcIikgLyAoJ1xceDAwJyAqIDY0KSINCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIH0pKSwNCj4gKyAgICAgICAgJ3R5cGUnOg0KPiArICAgICAgICAg ICAgKCdldGggdHlwZSBpcyAweDA4MDAnLCAgIyBJUHY0IEV0aGVyVHlwZQ0KPiArICAgICAgICAg ICAgIGZyb3plbnNldCh7IkV0aGVyKHR5cGU9MHgwODAwKSAvICgnXFx4MDAnICogNjQpIn0pLA0K PiArDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIodHlwZT0weDA4NDIpIC8gKCdc XHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKHR5cGU9MHg4 MTAwKSAvICgnXFx4MDAnICogNjQpIiwgICMgUG9zc2libHkgYSBzcGVjaWFsIGNhc2U/DQo+IFRQ SUQvVkxBTg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKHR5cGU9MHg5MTAwKSAv ICgnXFx4MDAnICogNjQpIiwgICMgUG9zc2libHkgc3BlY2lhbCwgVkxBTg0KPiBkb3VibGUgdGFn Z2luZw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKHR5cGU9MHg4ODYzKSAvICgn XFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcih0eXBlPTB4 OTAwMCkgLyAoJ1xceDAwJyAqIDY0KSINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIH0pKSwN Cj4gKyAgICB9DQo+ICsNCj4gKw0KPiArY2xhc3MgRmxvd0l0ZW1HcmUoUGF0dGVybkZsb3dJdGVt KToNCj4gKyAgICB0eXBlID0gRmxvd0l0ZW1UeXBlLkdSRQ0KPiArICAgIHZhbGlkX25leHRfaXRl bXMgPSBsaXN0KEwzX0ZMT1dfVFlQRVMgfCBBTFdBWVNfQUxMT1dFRF9JVEVNUykNCj4gKyAgICB2 YWxpZF9wYXJlbnRfaXRlbXM6IExpc3RbRmxvd0l0ZW1UeXBlXSA9IFtGbG93SXRlbVR5cGUuSVBW NCwNCj4gRmxvd0l0ZW1UeXBlLklQVjZdDQo+ICsgICAgIiIiDQo+ICsgICAgLSBgYGNfcnN2ZDBf dmVyYGA6IGNoZWNrc3VtLCByZXNlcnZlZCAwIGFuZCB2ZXJzaW9uLg0KPiArICAgIC0gYGBwcm90 b2NvbGBgOiBwcm90b2NvbCB0eXBlLg0KPiArICAgIC0gRGVmYXVsdCBgYG1hc2tgYCBtYXRjaGVz IHByb3RvY29sIG9ubHkuDQo+ICsgICAgIiIiDQo+ICsgICAgcG9zc2libGVfcHJvcGVydGllcyA9 IHsNCj4gKyAgICAgICAgJ2NfcnN2ZDBfdmVyJzoNCj4gKyAgICAgICAgICAgKCdncmUgY19yc3Zk MF92ZXIgaXMgMCcsDQo+ICsgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gR1JFKGNo a3N1bV9wcmVzZW50PTAsIHZlcnNpb249MCkgLyAoJ1xceDAwJyAqDQo+IDY0KSJ9KSwNCj4gKw0K PiArICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gR1JFKGNoa3N1bV9wcmVzZW50PTEs IHZlcnNpb249MCkpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiAjdGhpcyBpcyB0aGUgb25seSBvdGhl ciBvcHRpb24NCj4gKyAgICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsgICAgICAgICdwcm90 b2NvbCc6DQo+ICsgICAgICAgICAgICAoJ2dyZSBwcm90b2NvbCBpcyAweDA4MDAnLA0KPiArICAg ICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBHUkUocHJvdG89MHgwODAwKSAvICgnXFx4 MDAnICogNjQpIn0pLA0KPiArDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAv IEdSRShwcm90bz0weDA4NDIpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgIkV0aGVyKCkgLyBHUkUocHJvdG89MHg4MTAwKSAvICgnXFx4MDAnICogNjQpIiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gR1JFKHByb3RvPTB4MDgwNikg LyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAv IEdSRShwcm90bz0weDgwOUIpIC8gKCdcXHgwMCcgKiA2NCkiDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICB9KSkNCj4gKyAgICB9DQo+ICsNCj4gKw0KPiArY2xhc3MgRmxvd0l0ZW1JY21wKFBh dHRlcm5GbG93SXRlbSk6DQo+ICsgICAgdHlwZSA9IEZsb3dJdGVtVHlwZS5JQ01QDQo+ICsgICAg dmFsaWRfbmV4dF9pdGVtcyA9IGxpc3Qoe0Zsb3dJdGVtVHlwZS5SQVcsIEZsb3dJdGVtVHlwZS5W T0lEfSkNCj4gKyAgICB2YWxpZF9wYXJlbnRfaXRlbXM6IExpc3RbRmxvd0l0ZW1UeXBlXSA9IFtG bG93SXRlbVR5cGUuSVBWNF0NCj4gKyAgICAiIiINCj4gKyAgICAtIGBgaGRyYGA6IElDTVAgaGVh ZGVyIGRlZmluaXRpb24gKGBgcnRlX2ljbXAuaGBgKS4NCj4gKyAgICBUaGlzIGRlZmluaXRpb24g aW5jbHVkZXM6DQo+ICsgICAgaWNtcF90eXBlICg4IGJpdHM7IGZvciBJUHY0IGVjaG8gcmVxdWVz dCBpdCdzICI4IikNCj4gKyAgICBpY21wX2NvZGUgKDggYml0cykNCj4gKw0KPiArICAgIFRIRSBG T0xMT1dJTkcgQVJFIE5PVCBTVVBQT1JURUQgSU4gVEVTVFBNRDoNCj4gKyAgICBpY21wX2Nrc3Vt ICgxNiBiaXRzKQ0KPiArICAgIGljbXBfaWRlbnQgKDE2IGJpdHMpDQo+ICsgICAgaWNtcF9zZXFf bmIgKDE2IGJpdHMpDQo+ICsgICAgLSBEZWZhdWx0IGBgbWFza2BgIG1hdGNoZXMgSUNNUCB0eXBl IGFuZCBjb2RlIG9ubHkuDQo+ICsgICAgIiIiDQo+ICsgICAgcG9zc2libGVfcHJvcGVydGllcyA9 IHsNCj4gKw0KPiArICAgICAgICAnaWNtcF90eXBlJzoNCj4gKyAgICAgICAgICAgICgnaWNtcCB0 eXBlIGlzIDMnLA0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJQ01QKHR5 cGU9MykgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0KPiArICAgICAgICAgICAgIGZyb3plbnNl dCh7IkV0aGVyKCkgLyBJQ01QKHR5cGU9MykgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElDTVAodHlwZT0xMSkgLyAoJ1xceDAwJyAqIDY0 KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElDTVAodHlwZT0xMykg LyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAv IElDTVAodHlwZT0wKSAvICgnXFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgfSkpLA0KPiArICAgICAgICAnaWNtcF9jb2RlJzoNCj4gKyAgICAgICAgICAgICgnaWNtcCB0 eXBlIGlzIDMgY29kZSBpcyAzJywgICMgQXNzdW1lIHR5cGUgMyBjb2RlIDM7IGNvZGUNCj4gbWVh bmluZ3Mvb3B0aW9ucyBhcmUgZGVwZW5kZW50IG9uIHR5cGUuDQo+ICsNCj4gKyAgICAgICAgICAg ICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSUNNUCh0eXBlPTMsIGNvZGU9MykgLyAoJ1xceDAwJyAq IDY0KSJ9KSwNCj4gKw0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJQ01Q KHR5cGU9MywgY29kZT0wKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICJFdGhlcigpIC8gSUNNUCh0eXBlPTMsIGNvZGU9MikgLyAoJ1xceDAwJyAqIDY0KSIs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElDTVAodHlwZT0xMSwgY29k ZT0xKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhl cigpIC8gSUNNUCh0eXBlPTEyLCBjb2RlPTIpIC8gKCdcXHgwMCcgKiA2NCkiDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICB9KSksDQo+ICsgICAgICAgICdpY21wX2Nrc3VtJzoNCj4gKyAgICAg ICAgICAgKCdpY21wIGNrc3VtIGlzIDB4MDgwMCcsDQo+ICsgICAgICAgICAgICBmcm96ZW5zZXQo eyJFdGhlcigpIC8gSUNNUCgpIC8gVURQKCkgLyAoJ1x4MDAnICogNjQpIn0pLA0KPiArDQo+ICsg ICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSUNNUCgpIC8gVURQKCkgLyAoJ1x4MDAn ICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJQ01QKCkgLyBV RFAoKSAvICgnXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIo KSAvIElDTVAoKSAvIFVEUCgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICJFdGhlcigpIC8gSUNNUCgpIC8gVURQKCkgLyAoJ1x4MDAnICogNjQpIg0KPiArICAg ICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsgICAgICAgICdpY21wX2lkZW50JzoNCj4gKyAg ICAgICAgICAgKCdpY21wIGlkZW50IGlzIDB4MDgwMCcsDQo+ICsgICAgICAgICAgICBmcm96ZW5z ZXQoeyJFdGhlcigpIC8gSUNNUCgpIC8gVURQKCkgLyAoJ1x4MDAnICogNjQpIn0pLA0KPiArDQo+ ICsgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSUNNUCgpIC8gVURQKCkgLyAoJ1x4 MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJQ01QKCkg LyBVRFAoKSAvICgnXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAiRXRo ZXIoKSAvIElDTVAoKSAvIFVEUCgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICJFdGhlcigpIC8gSUNNUCgpIC8gVURQKCkgLyAoJ1x4MDAnICogNjQpIg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsgICAgICAgICdpY21wX3NlcV9uYic6DQo+ ICsgICAgICAgICAgICgnaWNtcCBzZXFfbmIgaXMgMHgwODAwJywNCj4gKyAgICAgICAgICAgIGZy b3plbnNldCh7IkV0aGVyKCkgLyBJQ01QKHByb3RvPTB4MDgwMCkgLyBVRFAoKSAvICgnXHgwMCcg KiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJQ01Q KCkgLyBVRFAoKSAvICgnXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAi RXRoZXIoKSAvIElDTVAoKSAvIFVEUCgpIC8gKCdceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICJFdGhlcigpIC8gSUNNUCgpIC8gVURQKCkgLyAoJ1x4MDAnICogNjQpIiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJQ01QKCkgLyBVRFAoKSAvICgn XHgwMCcgKiA2NCkiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsgICAgfQ0K PiArDQo+ICsNCj4gK2NsYXNzIEZsb3dJdGVtSWNtcDYoUGF0dGVybkZsb3dJdGVtKToNCj4gKyAg ICB0eXBlID0gRmxvd0l0ZW1UeXBlLklDTVA2DQo+ICsgICAgdmFsaWRfbmV4dF9pdGVtcyA9IGxp c3Qoe0Zsb3dJdGVtVHlwZS5SQVcsIEZsb3dJdGVtVHlwZS5WT0lEfSkNCj4gKyAgICB2YWxpZF9w YXJlbnRfaXRlbXM6IExpc3RbRmxvd0l0ZW1UeXBlXSA9IFtGbG93SXRlbVR5cGUuSVBWNl0NCj4g KyAgICAiIiINCj4gKyAgICAtIGBgdHlwZWBgOiBJQ01QdjYgdHlwZS4NCj4gKyAgICAtIGBgY29k ZWBgOiBJQ01QdjYgY29kZS4NCj4gKyAgICAtIGBgY2hlY2tzdW1gYDogSUNNUHY2IGNoZWNrc3Vt Lg0KPiArICAgIC0gRGVmYXVsdCBgYG1hc2tgYCBtYXRjaGVzIGBgdHlwZWBgIGFuZCBgYGNvZGVg YC4NCj4gKyAgICAiIiINCj4gKyAgICAjIElDTVA2IE5PVCBTVVBQT1JURUQgQlkgVEVTVFBNRC4N Cj4gKyAgICAjIERPIE5PVCBVTkNPTU1FTlQgVEhFIEZPTExPV0lORyBURVNUIENBU0VTIFVOVElM IElUIElTDQo+IFNVUFBPUlRFRC4NCj4gKyAgICBwb3NzaWJsZV9wcm9wZXJ0aWVzID0gew0KPiAr ICAgICAgICAndHlwZSc6DQo+ICsgICAgICAgICAgICAoJ2ljbXA2IHR5cGUgaXMgMScsICAjIERl c3RpbmF0aW9uIFVucmVhY2hhYmxlDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIo KSAvIElDTVB2NkRlc3RVbnJlYWNoKHR5cGU9MSkgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0K PiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJQ01QdjZEZXN0VW5yZWFjaCh0 eXBlPTEyOCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAi RXRoZXIoKSAvIElDTVB2NkRlc3RVbnJlYWNoKHR5cGU9MTI5KSAvICgnXFx4MDAnICogNjQpIiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSUNNUHY2RGVzdFVucmVhY2go dHlwZT0zKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJF dGhlcigpIC8gSUNNUHY2RGVzdFVucmVhY2godHlwZT0xMzUpIC8gKCdcXHgwMCcgKiA2NCkiDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsgICAgICAgICdjb2RlJzogICMgSUNN UCBjb2RlIGlzIGRlcGVuZGVudCBvbiB0eXBlOyB0aGVzZSBhcmUgcG9zc2libGUgRGVzdGluYXRp b24NCj4gVW5yZWFjaGFibGUgY29kZXMNCj4gKyAgICAgICAgICAgICgnaWNtcDYgY29kZSBpcyAw JywNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSUNNUHY2RGVzdFVucmVh Y2goY29kZT0wKSAvICgnXFx4MDAnICogNjQpIn0pLA0KPiArDQo+ICsgICAgICAgICAgICAgZnJv emVuc2V0KHsiRXRoZXIoKSAvIElDTVB2NkRlc3RVbnJlYWNoKGNvZGU9MSkgLyAoJ1xceDAwJyAq IDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElDTVB2NkRlc3RV bnJlYWNoKGNvZGU9MikgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAiRXRoZXIoKSAvIElDTVB2NkRlc3RVbnJlYWNoKGNvZGU9MykgLyAoJ1xceDAwJyAqIDY0 KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElDTVB2NkRlc3RVbnJl YWNoKGNvZGU9NCkgLyAoJ1xceDAwJyAqIDY0KSINCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IH0pKSwNCj4gKw0KPiArICAgICAgICAnY2hlY2tzdW0nOg0KPiArICAgICAgICAgICAgKCdpY21w NiBja3N1bSBpcyAweDEyMzQnLA0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkg LyBJQ01QdjZEZXN0VW5yZWFjaChja3N1bT0weDEyMzQpIC8gKCdcXHgwMCcgKg0KPiA2NCkifSks DQo+ICsNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSUNNUHY2RGVzdFVu cmVhY2goY2tzdW09MHg0MzIxKSAvICgnXFx4MDAnICoNCj4gNjQpIiwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICJFdGhlcigpIC8gSUNNUHY2RGVzdFVucmVhY2goY2tzdW09MHhmZmZmKSAv ICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8g SUNNUHY2RGVzdFVucmVhY2goY2tzdW09MHgxMjMzKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSUNNUHY2RGVzdFVucmVhY2goY2tzdW09 MHgxMDEwKSAvICgnXFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgfSkp LA0KPiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93SXRlbUlwdjQoUGF0dGVybkZsb3dJ dGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0l0ZW1UeXBlLklQVjQNCj4gKyAgICB2YWxpZF9uZXh0 X2l0ZW1zID0gbGlzdChMNF9GTE9XX0lURU1TIHwge0Zsb3dJdGVtVHlwZS5JQ01QfSB8DQo+IEFM V0FZU19BTExPV0VEX0lURU1TKQ0KPiArICAgIHZhbGlkX3BhcmVudF9pdGVtczogTGlzdFtGbG93 SXRlbVR5cGVdID0gW0Zsb3dJdGVtVHlwZS5FVEgsDQo+IEZsb3dJdGVtVHlwZS5HUkVdDQo+ICsg ICAgIiIiDQo+ICsgICAgTm90ZTogSVB2NCBvcHRpb25zIGFyZSBoYW5kbGVkIGJ5IGRlZGljYXRl ZCBwYXR0ZXJuIGl0ZW1zLg0KPiArDQo+ICsgICAgLSBgYGhkcmBgOiBJUHY0IGhlYWRlciBkZWZp bml0aW9uIChgYHJ0ZV9pcC5oYGApLg0KPiArICAgIC0gRGVmYXVsdCBgYG1hc2tgYCBtYXRjaGVz IHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYWRkcmVzc2VzIG9ubHkuDQo+ICsgICAgIiIiDQo+ICsN Cj4gKyAgICBwb3NzaWJsZV9wcm9wZXJ0aWVzID0gew0KPiArDQo+ICsgICAgICAgICd0b3MnOg0K PiArICAgICAgICAgICAgKCdpcHY0IHRvcyBpcyAwJywNCj4gKyAgICAgICAgICAgICBmcm96ZW5z ZXQoeyJFdGhlcigpIC8gSVAodG9zPTApIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4gKyAg ICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAodG9zPTIpIC8gKCdcXHgwMCcgKiA2 NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUCh0b3M9NCkgLyAo J1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQ KHRvcz04KSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJF dGhlcigpIC8gSVAodG9zPTE2KSAvICgnXFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgfSkpLA0KPiArICAgICAgICAndHRsJzoNCj4gKyAgICAgICAgICAgICgnaXB2NCB0 dGwgaXMgNjQnLA0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUCh0dGw9 NjQpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQo eyJFdGhlcigpIC8gSVAodHRsPTEyOCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHR0bD0yNTUpIC8gKCdcXHgwMCcgKiA2NCkiLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUCh0dGw9MzIpICAvICgnXFx4 MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAodHRs PTEwMCkgLyAoJ1xceDAwJyAqIDY0KSINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIH0pKSwN Cj4gKyAgICAgICAgJ3Byb3RvJzoNCj4gKyAgICAgICAgICAgICgnaXB2NCBwcm90byBpcyAweDA2 JywgICMgVENQDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKHByb3Rv PTB4MDYpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAgICAgICBmcm96ZW5z ZXQoeyJFdGhlcigpIC8gSVAocHJvdG89MHgwMSkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKHByb3RvPTB4MTEpIC8gKCdcXHgwMCcg KiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUChwcm90bz0w eDEyKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhl cigpIC8gSVAocHJvdG89MHg1OCkgLyAoJ1xceDAwJyAqIDY0KSINCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIH0pKSwNCj4gKyAgICAgICAgJ3NyYyc6DQo+ICsgICAgICAgICAgICAoJ2lwdjQg c3JjIGlzIDE5Mi4xNjguMC41JywNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigp IC8gSVAoc3JjPVwiMTkyLjE2OC4wLjVcIikgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0KPiAr ICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChzcmM9XCIxMC4xMC4xMC4xMFwi KSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigp IC8gSVAoc3JjPVwiMTMyLjE3Ny4xMjcuNlwiKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjRcIikgLyAo J1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQ KHNyYz1cIjE5Mi4xNjguMC4yNTBcIikgLyAoJ1xceDAwJyAqIDY0KSINCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIH0pKSwNCj4gKyAgICAgICAgJ2RzdCc6DQo+ICsgICAgICAgICAgICAoJ2lw djQgZHN0IGlzIDE5Mi4xNjguMC41JywNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhl cigpIC8gSVAoZHN0PVwiMTkyLjE2OC4wLjVcIikgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0K PiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUChkc3Q9XCIxMC4xMC4xMC4x MFwiKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhl cigpIC8gSVAoZHN0PVwiMTMyLjE3Ny4xMjcuNlwiKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoZHN0PVwiMTkyLjE2OC4wLjRcIikg LyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAv IElQKGRzdD1cIjE5Mi4xNjguMC4yNTBcIikgLyAoJ1xceDAwJyAqIDY0KSINCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgIH0pKSwNCj4gKyAgICAgICAgIyBDSEVDS1NVTSBQUk9QRVJUWSBOT1Qg U1VQUE9SVEVEIEJZIFRFU1RQTUQ7IERPIE5PVA0KPiBVTkNPTU1FTlQgVU5USUwgU1VQUE9SVEVE DQo+ICsgICAgICAgICMgJ2NoZWNrc3VtJzoNCj4gKyAgICAgICAgIyAgICAgKCdpcHY0IGNoa3N1 bSBpcyAweDEyMzQnLA0KPiArICAgICAgICAjICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSUNN UHY2RGVzdFVucmVhY2goY2tzdW09MHgxMjM0KSAvICgnXFx4MDAnICoNCj4gNjQpIn0pLA0KPiAr DQo+ICsgICAgICAgICMgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJQ01QdjZEZXN0VW5yZWFj aChja3N1bT0weDQzMjEpIC8gKCdcXHgwMCcgKg0KPiA2NCkiLA0KPiArICAgICAgICAjICAgICAg ICAgICAgICAgICJFdGhlcigpIC8gSUNNUHY2RGVzdFVucmVhY2goY2tzdW09MHhmZmZmKSAvICgn XFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgIyAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElD TVB2NkRlc3RVbnJlYWNoKGNrc3VtPTB4MTIzMykgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAg ICAgICMgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJQ01QdjZEZXN0VW5yZWFjaChja3N1bT0w eDEwMTApIC8gKCdcXHgwMCcgKiA2NCkiDQo+ICsgICAgICAgICMgICAgICAgICAgICAgICAgfSkp LA0KPiArDQo+ICsNCj4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gIyMjIyMjIyMjDQo+ICsgICAgfQ0KPiArDQo+ICsN Cj4gK2NsYXNzIEZsb3dJdGVtSXB2NihQYXR0ZXJuRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUgPSBG bG93SXRlbVR5cGUuSVBWNg0KPiArICAgIHZhbGlkX25leHRfaXRlbXMgPSBsaXN0KEw0X0ZMT1df SVRFTVMgfCB7Rmxvd0l0ZW1UeXBlLklDTVA2fSB8DQo+IEFMV0FZU19BTExPV0VEX0lURU1TKQ0K PiArICAgIHZhbGlkX3BhcmVudF9pdGVtczogTGlzdFtGbG93SXRlbVR5cGVdID0gW0Zsb3dJdGVt VHlwZS5FVEgsDQo+IEZsb3dJdGVtVHlwZS5HUkVdDQo+ICsgICAgIiIiDQo+ICsgICAgTm90ZTog SVB2NiBvcHRpb25zIGFyZSBoYW5kbGVkIGJ5IGRlZGljYXRlZCBwYXR0ZXJuIGl0ZW1zLCBzZWUg YEl0ZW06DQo+ICsgICAgSVBWNl9FWFRgXy4NCj4gKw0KPiArICAgIC0gYGBoZHJgYDogSVB2NiBo ZWFkZXIgZGVmaW5pdGlvbiAoYGBydGVfaXAuaGBgKS4NCj4gKyAgICAtIERlZmF1bHQgYGBtYXNr YGAgbWF0Y2hlcyBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGFkZHJlc3NlcyBvbmx5Lg0KPiArICAg ICIiIg0KPiArDQo+ICsgICAgcG9zc2libGVfcHJvcGVydGllcyA9IHsNCj4gKyAgICAgICAgIyBU SEUgRk9MTE9XSU5HIFBST1BFUlRJRVMgQVJFIFVOU1VQUE9SVEVEIEJZIFRFU1RQTUQgQVQgVEhF DQo+IFRJTUUgT0YgV1JJVElORy4NCj4gKyAgICAgICAgIyBUaGV5IGFyZSBzdGlsbCB0ZXN0ZWQg dG8gZnV0dXJlIHByb29mIHRoaXMgdGVzdCBzdWl0ZS4NCj4gKyAgICAgICAgJ3Z0Y19mbG93JzoN Cj4gKyAgICAgICAgICAgICgnaXB2NiB2dGNfZmxvdyBpcyAweDAnLA0KPiArICAgICAgICAgICAg IGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUHY2KHRjPTAsIGZsPTAsIHZlcnNpb249MCkgLyAoJ1xc eDAwJyAqIDY0KSJ9KSwNCj4gKw0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkg LyBJUHY2KHRjPTEsIGZsPTAsIHZlcnNpb249MCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQdjYodGM9MCwgZmw9MHhBQkNELCB2ZXJz aW9uPTApIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0 aGVyKCkgLyBJUHY2KHRjPTAsIGZsPTAsIHZlcnNpb249MSkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQdjYodGM9NiwgZmw9MHg5OTk5 LCB2ZXJzaW9uPTEpIC8gKCdcXHgwMCcgKiA2NCkiDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICB9KSksDQo+ICsgICAgICAgICdwYXlsb2FkX2xlbic6DQo+ICsgICAgICAgICAgICAoJ2lwdjYg cGF5bG9hZF9sZW4gaXMgNjQnLA0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkg LyBJUHY2KHBsZW49NjQpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAgICAg ICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVB2NihwbGVuPTMyKSAvICgnXFx4MDAnICogNjQpIiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVB2NihwbGVuPTEyOCkgLyAo J1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQ djYocGxlbj01MDAwKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICJFdGhlcigpIC8gSVB2NihwbGVuPTQpIC8gKCdcXHgwMCcgKiA2NCkiDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICB9KSksDQo+ICsgICAgICAgICMgRU5EIFVOU1VQUE9SVEVEIFBST1BF UlRJRVMNCj4gKyAgICAgICAgJ3RjJzoNCj4gKyAgICAgICAgICAgICgnaXB2NiB0YyBpcyAwJywN Cj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVB2Nih0Yz0wKSAvICgnXFx4 MDAnICogNjQpIn0pLA0KPiArDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAv IElQdjYodGM9MSkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAiRXRoZXIoKSAvIElQdjYodGM9MikgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQdjYodGM9NCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQdjYodGM9NikgLyAoJ1xceDAw JyAqIDY0KSINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIH0pKSwNCj4gKyAgICAgICAgJ2Zs b3cnOg0KPiArICAgICAgICAgICAgKCdpcHY2IGZsb3cgaXMgMHhBQkNEJywNCj4gKyAgICAgICAg ICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVB2NihmbD0weEFCQ0QpIC8gKCdcXHgwMCcgKiA2 NCkifSksDQo+ICsNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVB2Nihm bD0weEFCQ0UpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg IkV0aGVyKCkgLyBJUHY2KGZsPTB4MDAwMSkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQdjYoZmw9MHhGRkZGKSAvICgnXFx4MDAnICog NjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVB2NihmbD0weDEy MzQpIC8gKCdcXHgwMCcgKiA2NCkiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICB9KSksDQo+ ICsgICAgICAgICdwcm90byc6ICAjIG5leHQgaGVhZGVyIChuaCkNCj4gKyAgICAgICAgICAgICgn aXB2NiBwcm90byBpcyA2JywgICMgVENQDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRo ZXIoKSAvIElQdjYobmg9NikgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0KPiArICAgICAgICAg ICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUHY2KG5oPTE3KSAvICgnXFx4MDAnICogNjQpIiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVB2NihuaD00MSkgLyAoJ1xc eDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQdjYo bmg9MCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRo ZXIoKSAvIElQdjYobmg9NjApIC8gKCdcXHgwMCcgKiA2NCkiDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICB9KSksDQo+ICsgICAgICAgICdob3AnOiAgIyBob3AgbGltaXQNCj4gKyAgICAgICAg ICAgICgnaXB2NiBob3AgaXMgNjQnLA0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVy KCkgLyBJUHY2KGhsaW09NjQpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAg ICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVB2NihobGltPTEyOCkgLyAoJ1xceDAwJyAqIDY0 KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQdjYoaGxpbT0zMikg LyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAv IElQdjYoaGxpbT0yNTUpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgIkV0aGVyKCkgLyBJUHY2KGhsaW09MTAwKSAvICgnXFx4MDAnICogNjQpIg0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgfSkpLA0KPiArICAgICAgICAnZHN0JzoNCj4gKyAgICAgICAg ICAgICgnaXB2NiBkc3QgaXMgMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpiMWMy JywNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8NCj4gSVB2Nihkc3Q9XCIy MDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzJcIikgLyAoJ1xceDAwJyAqIDY0 KSJ9KSwNCj4gKw0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLw0KPiBJUHY2 KGRzdD1cIjIwMDE6MDAwMDo5ZDM4OjZhYjg6MWM0ODozYTFjOmE5NWE6YjFjM1wiKSAvICgnXFx4 MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8NCj4gSVB2 Nihkc3Q9XCIyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzRcIikgLyAoJ1xc eDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvDQo+IElQ djYoZHN0PVwiMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpiMWM1XCIpIC8gKCdc XHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLw0KPiBJ UHY2KGRzdD1cIjIwMDE6MDAwMDo5ZDM4OjZhYjg6MWM0ODozYTFjOmE5NWE6YjFjNlwiKSAvICgn XFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgfSkpLA0KPiArICAgICAg ICAnc3JjJzoNCj4gKyAgICAgICAgICAgICgnaXB2NiBzcmMgaXMgMjAwMTowMDAwOjlkMzg6NmFi ODoxYzQ4OjNhMWM6YTk1YTpiMWMyJywNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhl cigpIC8NCj4gSVB2NihzcmM9XCIyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIx YzJcIikgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0KPiArICAgICAgICAgICAgIGZyb3plbnNl dCh7IkV0aGVyKCkgLw0KPiBJUHY2KHNyYz1cIjIwMDE6MDAwMDo5ZDM4OjZhYjg6MWM0ODozYTFj OmE5NWE6YjFjM1wiKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICJFdGhlcigpIC8NCj4gSVB2NihzcmM9XCIyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2Ex YzphOTVhOmIxYzRcIikgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAiRXRoZXIoKSAvDQo+IElQdjYoc3JjPVwiMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4OjNh MWM6YTk1YTpiMWM1XCIpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgIkV0aGVyKCkgLw0KPiBJUHY2KHNyYz1cIjIwMDE6MDAwMDo5ZDM4OjZhYjg6MWM0ODoz YTFjOmE5NWE6YjFjNlwiKSAvICgnXFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgfSkpLA0KPiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93SXRlbVNjdHAoUGF0 dGVybkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0l0ZW1UeXBlLlNDVFANCj4gKyAgICB2 YWxpZF9uZXh0X2l0ZW1zID0gbGlzdChBTFdBWVNfQUxMT1dFRF9JVEVNUykNCj4gKyAgICB2YWxp ZF9wYXJlbnRfaXRlbXM6IExpc3RbRmxvd0l0ZW1UeXBlXSA9IFtGbG93SXRlbVR5cGUuSVBWNCwN Cj4gRmxvd0l0ZW1UeXBlLklQVjZdDQo+ICsgICAgIiIiDQo+ICsNCj4gKyAgICAqKmNodW5rcz8N Cj4gKw0KPiArICAgIC0gYGBoZHJgYDogU0NUUCBoZWFkZXIgZGVmaW5pdGlvbiAoYGBydGVfc2N0 cC5oYGApLg0KPiArICAgIC0gRGVmYXVsdCBgYG1hc2tgYCBtYXRjaGVzIHNvdXJjZSBhbmQgZGVz dGluYXRpb24gcG9ydHMgb25seS4NCj4gKyAgICAiIiINCj4gKyAgICBwb3NzaWJsZV9wcm9wZXJ0 aWVzID0gew0KPiArDQo+ICsgICAgICAgICdzcmMnOg0KPiArICAgICAgICAgICAgKCdzY3RwIHNy YyBpcyAzODM4JywNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoKSAv IFNDVFAoc3BvcnQ9MzgzOCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0KPiArICAgICAgICAg ICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUCgpIC8gU0NUUChzcG9ydD0zOTM5KSAvICgnXFx4 MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoKSAv IFNDVFAoc3BvcnQ9NTAwMCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAiRXRoZXIoKSAvIElQKCkgLyBTQ1RQKHNwb3J0PTE5OTgpIC8gKCdcXHgwMCcgKiA2 NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUCgpIC8gU0NUUChz cG9ydD0xMDI4KSAvICgnXFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg fSkpLA0KPiArDQo+ICsgICAgICAgICdkc3QnOg0KPiArICAgICAgICAgICAgKCdzY3RwIGRzdCBp cyAzODM4JywNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoKSAvIFND VFAoZHBvcnQ9MzgzOCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0KPiArICAgICAgICAgICAg IGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUCgpIC8gU0NUUChkcG9ydD0zOTM5KSAvICgnXFx4MDAn ICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoKSAvIFND VFAoZHBvcnQ9NTAwMCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAiRXRoZXIoKSAvIElQKCkgLyBTQ1RQKGRwb3J0PTE5OTgpIC8gKCdcXHgwMCcgKiA2NCki LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUCgpIC8gU0NUUChkcG9y dD0xMDI4KSAvICgnXFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgfSkp LA0KPiArICAgICAgICAndGFnJzoNCj4gKyAgICAgICAgICAgICgnc2N0cCB0YWcgaXMgMTIzNDUn LA0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUCgpIC8gU0NUUCh0YWc9 MTIzNDUpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAgICAgICBmcm96ZW5z ZXQoeyJFdGhlcigpIC8gSVAoKSAvIFNDVFAodGFnPTEyMzQ2KSAvICgnXFx4MDAnICogNjQpIiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoKSAvIFNDVFAodGFnPTEy KSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigp IC8gSVAoKSAvIFNDVFAodGFnPTk5OTkpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUCgpIC8gU0NUUCh0YWc9NDIpIC8gKCdcXHgwMCcg KiA2NCkiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsNCj4gKyAgICAgICAg J2Nrc3VtJzoNCj4gKyAgICAgICAgICAgICgnc2N0cCBja3N1bSBpcyAweDAxNTM1YjY3JywNCj4g KyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoKSAvIFNDVFAoY2hrc3VtPTB4 MDE1MzViNjcpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAgICAgICBmcm96 ZW5zZXQoeyJFdGhlcigpIC8gSVAoKSAvIFNDVFAoY2hrc3VtPTB4MDE1MzViNjgpIC8gKCdcXHgw MCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUCgpIC8g U0NUUChjaGtzdW09MHhkZWFkYmVlZikgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKCkgLyBTQ1RQKGNoa3N1bT0weDEyMzQ1Njc4KSAv ICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8g SVAoKSAvIFNDVFAoY2hrc3VtPTB4Mzg1MDMwZmUpIC8gKCdcXHgwMCcgKiA2NCkiDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICB9KSkNCj4gKyAgICB9DQo+ICsNCj4gKw0KPiArY2xhc3MgRmxv d0l0ZW1UY3AoUGF0dGVybkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0l0ZW1UeXBlLlRD UA0KPiArICAgIHZhbGlkX25leHRfaXRlbXMgPSBsaXN0KEFMV0FZU19BTExPV0VEX0lURU1TKQ0K PiArICAgIHZhbGlkX3BhcmVudF9pdGVtczogTGlzdFtGbG93SXRlbVR5cGVdID0gW0Zsb3dJdGVt VHlwZS5JUFY0LA0KPiBGbG93SXRlbVR5cGUuSVBWNl0NCj4gKyAgICAiIiINCj4gKyAgICAtIGBg aGRyYGA6IFRDUCBoZWFkZXIgZGVmaW5pdGlvbiAoYGBydGVfdGNwLmhgYCkuDQo+ICsgICAgLSBE ZWZhdWx0IGBgbWFza2BgIG1hdGNoZXMgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBwb3J0cyBvbmx5 Lg0KPiArDQo+ICsgICAgI2RlZmluZSAJUlRFX1RDUF9DV1JfRkxBRyAgIDB4ODANCj4gKw0KPiAr ICAgICNkZWZpbmUgCVJURV9UQ1BfRUNFX0ZMQUcgICAweDQwDQo+ICsNCj4gKyAgICAjZGVmaW5l IAlSVEVfVENQX1VSR19GTEFHICAgMHgyMA0KPiArDQo+ICsgICAgI2RlZmluZSAJUlRFX1RDUF9B Q0tfRkxBRyAgIDB4MTANCj4gKw0KPiArICAgICNkZWZpbmUgCVJURV9UQ1BfUFNIX0ZMQUcgICAw eDA4DQo+ICsNCj4gKyAgICAjZGVmaW5lIAlSVEVfVENQX1JTVF9GTEFHICAgMHgwNA0KPiArDQo+ ICsgICAgI2RlZmluZSAJUlRFX1RDUF9TWU5fRkxBRyAgIDB4MDINCj4gKw0KPiArICAgICNkZWZp bmUgCVJURV9UQ1BfRklOX0ZMQUcgICAweDAxDQo+ICsNCj4gKyAgICBDYW4gd2Ugc2V0IG11bHRp cGxlIGZsYWdzIGF0IG9uY2UgaW4gdGVzdGluZyAoZXguIFNZTiwgQUNLKT8NCj4gKyAgICBQcm9i YWJseSwgYW5kIHdlIGNhbiBkZWZpbml0ZWx5IHRlc3QgdGhlbSBpZiBuZWNlc3NhcnkuDQo+ICsN Cj4gKyAgICAiIiINCj4gKyAgICBwb3NzaWJsZV9wcm9wZXJ0aWVzID0gew0KPiArICAgICAgICAj IFRIRSBGT0xMT1dJTkcgUFJPUEVSVElFUyBBUkUgVU5TVVBQT1JURUQgQlkgVEVTVFBNRCBBVCBU SEUNCj4gVElNRSBPRiBXUklUSU5HLg0KPiArICAgICAgICAjIFRoZXkgYXJlIHN0aWxsIHRlc3Rl ZCB0byBmdXR1cmUgcHJvb2YgdGhpcyB0ZXN0IHN1aXRlLg0KPiArICAgICAgICAnZGF0YV9vZmYn Og0KPiArICAgICAgICAgICAgKCd0Y3AgZGF0YV9vZmYgaXMgMCcsDQo+ICsgICAgICAgICAgICAg ZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKCkgLyBUQ1AoZGF0YW9mcz0wKSAvICgnXFx4MDAnICog NjQpIn0pLA0KPiArDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvICBJUCgp IC8gVENQKGRhdGFvZnM9MSkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAiRXRoZXIoKSAvICBJUCgpIC8gVENQKGRhdGFvZnM9MikgLyAoJ1xceDAwJyAqIDY0 KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvICBJUCgpIC8gVENQKGRh dGFvZnM9MykgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAi RXRoZXIoKSAvICBJUCgpIC8gVENQKGRhdGFvZnM9NCkgLyAoJ1xceDAwJyAqIDY0KSINCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIH0pKSwNCj4gKyAgICAgICAgJ3J4X3dpbic6DQo+ICsgICAg ICAgICAgICAoJ3RjcCByeF93aW4gaXMgNjQnLA0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7 IkV0aGVyKCkgLyAgSVAoKSAvIFRDUCh3aW5kb3c9NjQpLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4g Kw0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyAgSVAoKSAvIFRDUCh3aW5k b3c9MTYpLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRo ZXIoKSAvICBJUCgpIC8gVENQKHdpbmRvdz0xMjgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyAgSVAoKSAvIFRDUCh3aW5kb3c9MzIpIC8g KCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyAg SVAoKSAvIFRDUCh3aW5kb3c9MjU1KSAvICgnXFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgfSkpLA0KPiArICAgICAgICAnY2tzdW0nOg0KPiArICAgICAgICAgICAgKCd0 Y3AgY2tzdW0gaXMgMHgxMjM0JywNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigp IC8gIElQKCkgLyBUQ1AoY2hrc3VtPTB4MTIzNCkgLyAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0K PiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUCgpIC8gVENQKGNoa3N1bT0w eDQzMjEpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0 aGVyKCkgLyAgSVAoKSAvIFRDUChjaGtzdW09MHhmZmZmKSAvICgnXFx4MDAnICogNjQpIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gIElQKCkgLyBUQ1AoY2hrc3VtPTB4 OTk5OSkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRo ZXIoKSAvICBJUCgpIC8gVENQKGNoa3N1bT0weDEyMzMpICAvICgnXFx4MDAnICogNjQpIg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgfSkpLA0KPiArICAgICAgICAjIEVORCBVTlNVUFBPUlRF RCBQUk9QRVJUSUVTDQo+ICsgICAgICAgICdzcmMnOg0KPiArICAgICAgICAgICAgKCd0Y3Agc3Jj IGlzIDM4MzgnLA0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUCgpIC8g VENQKHNwb3J0PTM4MzgpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAgICAg ICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoKSAvIFRDUChzcG9ydD0zOTM5KSAvICgnXFx4MDAn ICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoKSAvIFRD UChzcG9ydD01MDAwKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICJFdGhlcigpIC8gSVAoKSAvIFRDUChzcG9ydD0xOTk4KSAvICgnXFx4MDAnICogNjQpIiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoKSAvIFRDUChzcG9ydD0x MDI4KSAvICgnXFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgfSkpLA0K PiArDQo+ICsgICAgICAgICdkc3QnOg0KPiArICAgICAgICAgICAgKCd0Y3AgZHN0IGlzIDM4Mzgn LA0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUCgpIC8gVENQKGRwb3J0 PTM4MzgpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAgICAgICBmcm96ZW5z ZXQoeyJFdGhlcigpIC8gSVAoKSAvIFRDUChkcG9ydD0zOTM5KSAvICgnXFx4MDAnICogNjQpIiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoKSAvIFRDUChkcG9ydD01 MDAwKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhl cigpIC8gSVAoKSAvIFRDUChkcG9ydD0xOTk4KSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gSVAoKSAvIFRDUChkcG9ydD0xMDI4KSAvICgn XFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgfSkpLA0KPiArICAgICAg ICAnZmxhZ3MnOg0KPiArICAgICAgICAgICAgKCd0Y3AgZmxhZ3MgaXMgMHgwMicsDQo+ICsgICAg ICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKCkgLyBUQ1AoZmxhZ3M9MHgwMikgLyAo J1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVy KCkgLyBJUCgpIC8gVENQKGZsYWdzPTB4MDEpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUCgpIC8gVENQKGZsYWdzPTB4MDQpIC8gKCdc XHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUCgp IC8gVENQKGZsYWdzPTB4MDgpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgIkV0aGVyKCkgLyBJUCgpIC8gVENQKGZsYWdzPTB4MTApIC8gKCdcXHgwMCcgKiA2 NCkiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICB9KSkNCj4gKw0KPiArICAgIH0NCj4gKw0K PiArDQo+ICtjbGFzcyBGbG93SXRlbVVkcChQYXR0ZXJuRmxvd0l0ZW0pOg0KPiArICAgIHR5cGUg PSBGbG93SXRlbVR5cGUuVURQDQo+ICsgICAgdmFsaWRfbmV4dF9pdGVtcyA9IGxpc3Qoe0Zsb3dJ dGVtVHlwZS5WWExBTiwgRmxvd0l0ZW1UeXBlLlZYTEFOX0dQRX0gfA0KPiBBTFdBWVNfQUxMT1dF RF9JVEVNUykNCj4gKyAgICB2YWxpZF9wYXJlbnRfaXRlbXM6IExpc3RbRmxvd0l0ZW1UeXBlXSA9 IFtGbG93SXRlbVR5cGUuSVBWNCwNCj4gRmxvd0l0ZW1UeXBlLklQVjZdDQo+ICsgICAgIiIiDQo+ ICsgICAgLSBgYGhkcmBgOiBVRFAgaGVhZGVyIGRlZmluaXRpb24gKGBgcnRlX3VkcC5oYGApLg0K PiArICAgIC0gRGVmYXVsdCBgYG1hc2tgYCBtYXRjaGVzIHNvdXJjZSBhbmQgZGVzdGluYXRpb24g cG9ydHMgb25seS4NCj4gKyAgICAiIiINCj4gKw0KPiArICAgIHBvc3NpYmxlX3Byb3BlcnRpZXMg PSB7DQo+ICsgICAgICAgICMgVEhFIEZPTExPV0lORyBQUk9QRVJUSUVTIEFSRSBVTlNVUFBPUlRF RCBCWSBURVNUUE1EIEFUIFRIRQ0KPiBUSU1FIE9GIFdSSVRJTkcuDQo+ICsgICAgICAgICMgVGhl eSBhcmUgc3RpbGwgdGVzdGVkIHRvIGZ1dHVyZSBwcm9vZiB0aGlzIHRlc3Qgc3VpdGUuDQo+ICsg ICAgICAgICdkZ3JhbV9sZW4nOg0KPiArICAgICAgICAgICAgKCd1ZHAgZGdyYW1fbGVuIGlzIDY0 JywNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoKSAvIFVEUChsZW49 NjQpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQo eyJFdGhlcigpIC8gIElQKCkgLyBVRFAobGVuPTEyOCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvICBJUCgpIC8gVURQKGxlbj0zMikgLyAo J1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvICBJ UCgpIC8gVURQKGxlbj0xNikgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAiRXRoZXIoKSAvICBJUCgpIC8gVURQKGxlbj0yNTUpIC8gKCdcXHgwMCcgKiA2NCki DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsgICAgICAgICdkZ3JhbV9ja3N1 bSc6DQo+ICsgICAgICAgICAgICAoJ3VkcCBkZ3JhbV9ja3N1bSBpcyAweDEyMzQnLA0KPiArICAg ICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyAgSVAoKSAvIFVEUChjaGtzdW09MHgxMjM0 KSAvICgnXFx4MDAnICogNjQpIn0pLA0KPiArDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsi RXRoZXIoKSAvIElQKCkgLyBVRFAoY2hrc3VtPTB4NDMyMSkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvICBJUCgpIC8gVURQKGNoa3N1bT0w eGZmZmYpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0 aGVyKCkgLyAgSVAoKSAvIFVEUChjaGtzdW09MHg5OTk5KSAvICgnXFx4MDAnICogNjQpIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gIElQKCkgLyBVRFAoY2hrc3VtPTB4 MTIzMykgIC8gKCdcXHgwMCcgKiA2NCkiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICB9KSks DQo+ICsgICAgICAgICMgRU5EIFVOU1VQUE9SVEVEIFBST1BFUlRJRVMNCj4gKw0KPiArICAgICAg ICAnc3JjJzoNCj4gKyAgICAgICAgICAgICgndWRwIHNyYyBpcyAzODM4JywNCj4gKyAgICAgICAg ICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoKSAvIFVEUChzcG9ydD0zODM4KSAvICgnXFx4 MDAnICogNjQpIn0pLA0KPiArDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAv IElQKCkgLyBVRFAoc3BvcnQ9MzkzOSkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKCkgLyBVRFAoc3BvcnQ9NTAwMCkgLyAoJ1xceDAw JyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKCkgLyBV RFAoc3BvcnQ9MTk5OCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAiRXRoZXIoKSAvIElQKCkgLyBVRFAoc3BvcnQ9MTAyOCkgLyAoJ1xceDAwJyAqIDY0KSIN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIH0pKSwNCj4gKw0KPiArICAgICAgICAnZHN0JzoN Cj4gKyAgICAgICAgICAgICgndWRwIGRzdCBpcyAzODM4JywNCj4gKyAgICAgICAgICAgICBmcm96 ZW5zZXQoeyJFdGhlcigpIC8gSVAoKSAvIFVEUChkcG9ydD0zODM4KSAvICgnXFx4MDAnICogNjQp In0pLA0KPiArDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKCkgLyBV RFAoZHBvcnQ9MzkzOSkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAiRXRoZXIoKSAvIElQKCkgLyBVRFAoZHBvcnQ9NTAwMCkgLyAoJ1xceDAwJyAqIDY0KSIs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvIElQKCkgLyBVRFAoZHBvcnQ9 MTk5OCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRo ZXIoKSAvIElQKCkgLyBVRFAoZHBvcnQ9MTAyOCkgLyAoJ1xceDAwJyAqIDY0KSINCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIH0pKSwNCj4gKw0KPiArICAgIH0NCj4gKw0KPiArDQo+ICtjbGFz cyBGbG93SXRlbVZsYW4oUGF0dGVybkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0l0ZW1U eXBlLlZMQU4NCj4gKyAgICB2YWxpZF9uZXh0X2l0ZW1zID0gbGlzdChBTFdBWVNfQUxMT1dFRF9J VEVNUykNCj4gKyAgICB2YWxpZF9wYXJlbnRfaXRlbXM6IExpc3RbRmxvd0l0ZW1UeXBlXSA9IFtG bG93SXRlbVR5cGUuRVRIXQ0KPiArICAgICIiIg0KPiArICAgIFRoZSBjb3JyZXNwb25kaW5nIHN0 YW5kYXJkIG91dGVyIEV0aGVyVHlwZSAoVFBJRCkgdmFsdWVzIGFyZQ0KPiArICAgIGBgUlRFX0VU SEVSX1RZUEVfVkxBTmBgIG9yIGBgUlRFX0VUSEVSX1RZUEVfUUlOUWBgLiBJdCBjYW4gYmUNCj4g b3ZlcnJpZGRlbiBieSB0aGUNCj4gKyAgICBwcmVjZWRpbmcgcGF0dGVybiBpdGVtLg0KPiArICAg IElmIGEgYGBWTEFOYGAgaXRlbSBpcyBwcmVzZW50IGluIHRoZSBwYXR0ZXJuLCB0aGVuIG9ubHkg dGFnZ2VkIHBhY2tldHMgd2lsbA0KPiArICAgIG1hdGNoIHRoZSBwYXR0ZXJuLg0KPiArDQo+ICsg ICAgLSBgYHRjaWBgOiB0YWcgY29udHJvbCBpbmZvcm1hdGlvbi4NCj4gKyAgICAtIGBgaW5uZXJf dHlwZWBgOiBpbm5lciBFdGhlclR5cGUgb3IgVFBJRC4NCj4gKyAgICAtIERlZmF1bHQgYGBtYXNr YGAgbWF0Y2hlcyB0aGUgVklEIHBhcnQgb2YgVENJIG9ubHkgKGxvd2VyIDEyIGJpdHMpLg0KPiAr DQo+ICsgICAgdGNpIGluIHRlc3RwbWQgPSBwY3AsIGRlaSwgYW5kIHZpZCwgYWx0b2dldGhlci4N Cj4gKw0KPiArICAgIHBjcCBpbiB0ZXN0cG1kID0gcHJpbyBpbiBzY2FweQ0KPiArICAgIGRlaSBp biB0ZXN0cG1kID0gaWQgaW4gc2NhcHk/DQo+ICsgICAgdmlkIGluIHRlc3RwbWQgPSB2bGFuIGlu IHNjYXB5DQo+ICsNCj4gKyAgICB0cGlkIGluIHRlc3RwbWQgPSB0eXBlIGluIHNjYXB5DQo+ICsN Cj4gKw0KPiArICAgICIiIg0KPiArICAgIHBvc3NpYmxlX3Byb3BlcnRpZXMgPSB7DQo+ICsNCj4g KyAgICAgICAgJ3RjaSc6DQo+ICsgICAgICAgICAgICAoJ3ZsYW4gdGNpIGlzIDB4YWFhYScsDQo+ ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIERvdDFRKHByaW8gPSAweDUsIGlk ID0gMHgwLCB2bGFuID0gMHhhYWEpIC8gKCdcXHgwMCcgKg0KPiA2NCkifSksDQo+ICsNCj4gKyAg ICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gIERvdDFRKHByaW8gPSAweDAsIGlkID0g MHgxLCB2bGFuID0gMHhiYmIpIC8gKCdcXHgwMCcNCj4gKiA2NCkiLA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgIkV0aGVyKCkgLyAgRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4g PSAweGNjYykgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAi RXRoZXIoKSAvICBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MSwgdmxhbiA9IDB4YWFhKSAvICgn XFx4MDAnICoNCj4gNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8g IERvdDFRKHByaW8gPSAweDQsIGlkID0gMHgwLCB2bGFuID0gMHhhYWEpIC8gKCdcXHgwMCcgKg0K PiA2NCkiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsNCj4gKyAgICAgICAg J3BjcCc6DQo+ICsgICAgICAgICAgICAoJ3ZsYW4gcGNwIGlzIDB4MCcsDQo+ICsgICAgICAgICAg ICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIERvdDFRKHByaW89MHgwKSAvICgnXFx4MDAnICogNjQp In0pLA0KPiArDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvICBEb3QxUShw cmlvPTB4MSkgLyAgKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg IkV0aGVyKCkgLyAgRG90MVEocHJpbz0weDIpIC8gICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gIERvdDFRKHByaW89MHgzKSAvICgnXFx4MDAn ICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gIERvdDFRKHBy aW89MHg3KSAvICgnXFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgfSkp LA0KPiArICAgICAgICAnZGVpJzoNCj4gKyAgICAgICAgICAgICgndmxhbiBkZWkgaXMgMCcsDQo+ ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIERvdDFRKGlkPTApIC8gICgnXFx4 MDAnICogNjQpIn0pLA0KPiArDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAv ICBEb3QxUShpZD0xKSAvICgnXFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgfSkpLA0KPiArDQo+ICsgICAgICAgICd2aWQnOg0KPiArICAgICAgICAgICAgKCd2bGFuIHZp ZCBpcyAweGFiYycsDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIERvdDFR KHZsYW49MHhhYmMpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAgICAgICBm cm96ZW5zZXQoeyJFdGhlcigpIC8gIERvdDFRKHZsYW49MHhhYWEpIC8gKCdcXHgwMCcgKiA2NCki LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyAgRG90MVEodmxhbj0weDEy MykgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRoZXIo KSAvICBEb3QxUSh2bGFuPTB4MWY1KSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICJFdGhlcigpIC8gIERvdDFRKHZsYW49MHg5OTkpIC8gKCdcXHgwMCcgKiA2 NCkiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsNCj4gKyAgICAgICAgJ3Rw aWQnOg0KPiArICAgICAgICAgICAgKCd2bGFuIHRwaWQgaXMgMHg4MTAwJywgICMgc3RhbmRhcmQg dmFsdWUNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gRG90MVEodHlwZT0w eDgxMDApIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAgICAgICBmcm96ZW5z ZXQoeyJFdGhlcigpIC8gIERvdDFRKHR5cGU9MHgwODAwKSAvICgnXFx4MDAnICogNjQpIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gIERvdDFRKHR5cGU9MHgwODQyKSAv ICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8g IERvdDFRKHR5cGU9MHg4MDliKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICJFdGhlcigpIC8gIERvdDFRKHR5cGU9MHg4NmRkKSAvICgnXFx4MDAnICogNjQp Ig0KPiArICAgICAgICAgICAgICAgICAgICAgICAgfSkpLA0KPiArICAgIH0NCj4gKw0KPiArDQo+ ICtjbGFzcyBGbG93SXRlbVZ4bGFuKFBhdHRlcm5GbG93SXRlbSk6DQo+ICsgICAgdHlwZSA9IEZs b3dJdGVtVHlwZS5WWExBTg0KPiArICAgIHZhbGlkX25leHRfaXRlbXMgPSBmcm96ZW5zZXQoe0Zs b3dJdGVtVHlwZS5FVEh9IHwNCj4gQUxXQVlTX0FMTE9XRURfSVRFTVMpDQo+ICsgICAgdmFsaWRf cGFyZW50X2l0ZW1zOiBGcm96ZW5TZXRbRmxvd0l0ZW1UeXBlXSA9DQo+IGZyb3plbnNldCh7Rmxv d0l0ZW1UeXBlLlVEUH0pDQo+ICsgICAgIiIiDQo+ICsgICAgLSBgYGZsYWdzYGA6IG5vcm1hbGx5 IDB4MDggKEkgZmxhZykuDQo+ICsgICAgLSBgYHJzdmQwYGA6IHJlc2VydmVkLCBub3JtYWxseSAw eDAwMDAwMC4NCj4gKyAgICAtIGBgdm5pYGA6IFZYTEFOIG5ldHdvcmsgaWRlbnRpZmllci4NCj4g KyAgICAtIGBgcnN2ZDFgYDogcmVzZXJ2ZWQsIG5vcm1hbGx5IDB4MDAuDQo+ICsgICAgLSBEZWZh dWx0IGBgbWFza2BgIG1hdGNoZXMgVk5JIG9ubHkuDQo+ICsNCj4gKyAgICBURVNUUE1EIE9OTFkg U1VQUE9SVFMgVk5JLg0KPiArICAgICIiIg0KPiArDQo+ICsNCj4gK3Bvc3NpYmxlX3Byb3BlcnRp ZXMgPSB7DQo+ICsgICAgIyBUSEUgRk9MTE9XSU5HIFBST1BFUlRJRVMgQVJFIFVOU1VQUE9SVEVE IEJZIFRFU1RQTUQgQVQgVEhFDQo+IFRJTUUgT0YgV1JJVElORy4NCj4gKyAgICAjIFRoZXkgYXJl IHN0aWxsIHRlc3RlZCB0byBmdXR1cmUgcHJvb2YgdGhpcyB0ZXN0IHN1aXRlLg0KPiArICAgICdy c3ZkMCc6DQo+ICsgICAgICAgICgndnhsYW4gcnN2ZDAgaXMgMHgwMDAwMDAnLA0KPiArICAgICAg ICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKCkgLyBWWExBTihyZXNlcnZlZDA9MCkgLyAoJ1xc eDAwJyAqIDY0KSJ9KSwNCj4gKw0KPiArICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvICBJ UCgpIC8gVlhMQU4ocmVzZXJ2ZWQwPTEpIC8gICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAg ICAgICAgICAgICAgIkV0aGVyKCkgLyAgSVAoKSAvICBWWExBTihyZXNlcnZlZDA9MikgLyAgKCdc XHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvICBJUCgpIC8g IFZYTEFOKHJlc2VydmVkMD0zKSAvICAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAg ICAgICAgICJFdGhlcigpIC8gIElQKCkgIC8gVlhMQU4ocmVzZXJ2ZWQwPTQpIC8gICgnXFx4MDAn ICogNjQpIg0KPiArICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsgICAgJ3JzdmQxJzoNCj4g KyAgICAgICAgKCd2eGxhbiByc3ZkMSBpcyAweDAwJywNCj4gKyAgICAgICAgIGZyb3plbnNldCh7 IkV0aGVyKCkgLyAgSVAoKSAvICBWWExBTihyZXNlcnZlZDA9MCkgLyAgKCdcXHgwMCcgKiA2NCki fSksDQo+ICsNCj4gKyAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJUCgpIC8gIFZYTEFO KHJlc2VydmVkMD0xKSAvICAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICJFdGhlcigpIC8gIElQKCkgLyAgVlhMQU4ocmVzZXJ2ZWQwPTIpIC8gICgnXFx4MDAnICogNjQp IiwNCj4gKyAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyAgSVAoKSAvIFZYTEFOKHJlc2Vy dmVkMD0zKSAvICAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICJFdGhl cigpIC8gIElQKCkgLyAgVlhMQU4ocmVzZXJ2ZWQwPTQpIC8gICgnXFx4MDAnICogNjQpIg0KPiAr ICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsgICAgJ2ZsYWdzJzoNCj4gKyAgICAgICAgKCd2 eGxhbiBmbGFncyBpcyAweDA4JywNCj4gKyAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyAg SVAoKSAvICBWWExBTihmbGFncz0weDA4KSAvICAoJ1xceDAwJyAqIDY0KSJ9KSwNCj4gKw0KPiAr ICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKCkgLyAgVlhMQU4oZmxhZ3M9MHg4MCkg LyAgKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAiRXRoZXIoKSAvICBJ UCgpIC8gIFZYTEFOKGZsYWdzPTB4MDApIC8gICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAg ICAgICAgICAgICAgIkV0aGVyKCkgLyAgSVAoKSAvIFZYTEFOKGZsYWdzPTB4OTkpIC8gICgnXFx4 MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyAgSVAoKSAvICBW WExBTihmbGFncz0weDAxKSAvICAoJ1xceDAwJyAqIDY0KSINCj4gKyAgICAgICAgICAgICAgICAg ICAgfSkpLA0KPiArICAgICMgRU5EIFVOU1VQUE9SVEVEIFBST1BFUlRJRVMNCj4gKyAgICAndm5p JzogICMgYSAzLWJ5dGUgdmFsdWUNCj4gKyAgICAgICAgKCd2eGxhbiB2bmkgaXMgMHgxMTIyMzMn LA0KPiArICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKCkgLyBWWExBTih2bmk9MHgx MTIyMzMpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4gKyAgICAgICAgIGZyb3plbnNldCh7 IkV0aGVyKCkgLyBJUCgpIC8gVlhMQU4odm5pPTB4MTEyMjM0KSAvICgnXFx4MDAnICogNjQpIiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUCgpIC8gVlhMQU4odm5pPTB4MTIz NDU2KSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkg LyBJUCgpIC8gVlhMQU4odm5pPTB4YWFiYmNjKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAg ICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUCgpIC8gVlhMQU4odm5pPTB4OTk5OTk5KSAvICgn XFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICt9DQo+ICsNCj4g Kw0KPiArY2xhc3MgRmxvd0l0ZW1WeGxhbl9ncGUoUGF0dGVybkZsb3dJdGVtKToNCj4gKyAgICB0 eXBlID0gRmxvd0l0ZW1UeXBlLlZYTEFOX0dQRQ0KPiArICAgIHZhbGlkX25leHRfaXRlbXMgPSBs aXN0KHtGbG93SXRlbVR5cGUuRVRIfSB8IEFMV0FZU19BTExPV0VEX0lURU1TKQ0KPiArICAgIHZh bGlkX3BhcmVudF9pdGVtczogTGlzdFtGbG93SXRlbVR5cGVdID0gW0Zsb3dJdGVtVHlwZS5VRFBd DQo+ICsgICAgIiIiDQo+ICsgICAgLSBgYGZsYWdzYGA6IG5vcm1hbGx5IDB4MEMgKEkgYW5kIFAg ZmxhZ3MpLg0KPiArICAgIC0gYGByc3ZkMGBgOiByZXNlcnZlZCwgbm9ybWFsbHkgMHgwMDAwLg0K PiArICAgIC0gYGBwcm90b2NvbGBgOiBwcm90b2NvbCB0eXBlLiA9PiBOZXh0UHJvdG9jb2w/DQo+ ICsgICAgLSBgYHZuaWBgOiBWWExBTiBuZXR3b3JrIGlkZW50aWZpZXIuDQo+ICsgICAgLSBgYHJz dmQxYGA6IHJlc2VydmVkLCBub3JtYWxseSAweDAwLg0KPiArICAgIC0gRGVmYXVsdCBgYG1hc2tg YCBtYXRjaGVzIFZOSSBvbmx5Lg0KPiArDQo+ICsgICAgTk9UIENVUlJFTlRMWSBTVVBQT1JURUQg QlkgVEVTVFBNRC4NCj4gKyAgICAiIiINCj4gKw0KPiArICAgICMgVEhFIEZPTExPV0lORyBQUk9Q RVJUSUVTIEFSRSBVTlNVUFBPUlRFRCBCWSBURVNUUE1EIEFUIFRIRQ0KPiBUSU1FIE9GIFdSSVRJ TkcuDQo+ICsgICAgIyBUaGV5IGFyZSBzdGlsbCB0ZXN0ZWQgdG8gZnV0dXJlIHByb29mIHRoaXMg dGVzdCBzdWl0ZS4NCj4gKyAgICBwb3NzaWJsZV9wcm9wZXJ0aWVzID0gew0KPiArDQo+ICsgICAg ICAgICdyc3ZkMCc6DQo+ICsgICAgICAgICAgICAoJ3Z4bGFuIHJzdmQwIGlzIDB4MDAwMDAwJywN Cj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoKSAvIFZYTEFOKHJlc2Vy dmVkMD0wKSAvICgnXFx4MDAnICogNjQpIn0pLA0KPiArDQo+ICsgICAgICAgICAgICAgZnJvemVu c2V0KHsiRXRoZXIoKSAvICBJUCgpIC8gVlhMQU4ocmVzZXJ2ZWQwPTEpIC8gICgnXFx4MDAnICog NjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gIElQKCkgLyAgVlhM QU4ocmVzZXJ2ZWQwPTIpIC8gICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICJFdGhlcigpIC8gIElQKCkgLyAgVlhMQU4ocmVzZXJ2ZWQwPTMpIC8gICgnXFx4MDAn ICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gIElQKCkgIC8g VlhMQU4ocmVzZXJ2ZWQwPTQpIC8gICgnXFx4MDAnICogNjQpIg0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgfSkpLA0KPiArICAgICAgICAncnN2ZDEnOg0KPiArICAgICAgICAgICAgKCd2eGxh biByc3ZkMSBpcyAweDAwJywNCj4gKyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8g IElQKCkgLyAgVlhMQU4ocmVzZXJ2ZWQwPTApIC8gICgnXFx4MDAnICogNjQpIn0pLA0KPiArDQo+ ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAvIElQKCkgLyAgVlhMQU4ocmVzZXJ2 ZWQwPTEpIC8gICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJF dGhlcigpIC8gIElQKCkgLyAgVlhMQU4ocmVzZXJ2ZWQwPTIpIC8gICgnXFx4MDAnICogNjQpIiwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhlcigpIC8gIElQKCkgLyBWWExBTihyZXNl cnZlZDA9MykgLyAgKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg IkV0aGVyKCkgLyAgSVAoKSAvICBWWExBTihyZXNlcnZlZDA9NCkgLyAgKCdcXHgwMCcgKiA2NCki DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsgICAgICAgICdmbGFncyc6DQo+ ICsgICAgICAgICAgICAoJ3Z4bGFuIGZsYWdzIGlzIDB4MDgnLA0KPiArICAgICAgICAgICAgIGZy b3plbnNldCh7IkV0aGVyKCkgLyAgSVAoKSAvICBWWExBTihmbGFncz0weDA4KSAvICAoJ1xceDAw JyAqIDY0KSJ9KSwNCj4gKw0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkgLyBJ UCgpIC8gIFZYTEFOKGZsYWdzPTB4ODApIC8gICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICJFdGhlcigpIC8gIElQKCkgLyAgVlhMQU4oZmxhZ3M9MHgwMCkgLyAg KCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyAg SVAoKSAvIFZYTEFOKGZsYWdzPTB4OTkpIC8gICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICJFdGhlcigpIC8gIElQKCkgLyAgVlhMQU4oZmxhZ3M9MHgwMSkgLyAg KCdcXHgwMCcgKiA2NCkiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICB9KSksDQo+ICsNCj4g KyAgICAgICAgJ3ZuaSc6ICAjIGEgMy1ieXRlIHZhbHVlDQo+ICsgICAgICAgICAgICAoJ3Z4bGFu IHZuaSBpcyAweDExMjIzMycsDQo+ICsgICAgICAgICAgICAgZnJvemVuc2V0KHsiRXRoZXIoKSAv IElQKCkgLyBWWExBTih2bmk9MHgxMTIyMzMpIC8gKCdcXHgwMCcgKiA2NCkifSksDQo+ICsNCj4g KyAgICAgICAgICAgICBmcm96ZW5zZXQoeyJFdGhlcigpIC8gSVAoKSAvIFZYTEFOKHZuaT0weDEx MjIzNCkgLyAoJ1xceDAwJyAqIDY0KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAiRXRo ZXIoKSAvIElQKCkgLyBWWExBTih2bmk9MHgxMjM0NTYpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUCgpIC8gVlhMQU4odm5pPTB4YWFi YmNjKSAvICgnXFx4MDAnICogNjQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICJFdGhl cigpIC8gSVAoKSAvIFZYTEFOKHZuaT0weDk5OTk5OSkgLyAoJ1xceDAwJyAqIDY0KSINCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIH0pKSwNCj4gKyAgICAgICAgJ3Byb3RvY29sJzoNCj4gKyAg ICAgICAgICAgICgndnhsYW4gcHJvdG9jb2wgaXMgMHgwMScsDQo+ICsgICAgICAgICAgICAgZnJv emVuc2V0KHsiRXRoZXIoKSAvIElQKCkgLyBWWExBTihOZXh0UHJvdG9jb2w9MHgwMSkgLyAoJ1xc eDAwJyAqIDY0KSJ9KSwNCj4gKw0KPiArICAgICAgICAgICAgIGZyb3plbnNldCh7IkV0aGVyKCkg LyBJUCgpIC8gVlhMQU4oTmV4dFByb3RvY29sPTB4MDEpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUCgpIC8gVlhMQU4oTmV4dFByb3Rv Y29sPTB4MTEpIC8gKCdcXHgwMCcgKiA2NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg IkV0aGVyKCkgLyBJUCgpIC8gVlhMQU4oTmV4dFByb3RvY29sPTB4MjIpIC8gKCdcXHgwMCcgKiA2 NCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIkV0aGVyKCkgLyBJUCgpIC8gVlhMQU4o TmV4dFByb3RvY29sPTB4MzMpIC8gKCdcXHgwMCcgKiA2NCkiDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICB9KSksDQo+ICsgICAgfQ0KPiArDQo+ICsNCj4gK2NsYXNzIEZsb3dJdGVtRnV6enko UGF0dGVybkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0l0ZW1UeXBlLkZVWlpZDQo+ICsg ICAgbGF5ZXIgPSAxICAjIFRoaXMgZmllbGQgbmVlZHMgdG8gZ28gYmVmb3JlIGV0aGVybmV0LCBh bmQgd2UgaWdub3JlIGxheWVyIDEgaW4NCj4gdGhlc2UgZmlsdGVycw0KPiArICAgIHZhbGlkX25l eHRfaXRlbXMgPSBsaXN0KHtGbG93SXRlbVR5cGUuRVRILCBGbG93SXRlbVR5cGUuUkFXLA0KPiBG bG93SXRlbVR5cGUuVk9JRH0pDQo+ICsgICAgIiIiDQo+ICsgICArLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rDQo+ICsgICB8IEZpZWxkICAgIHwgICBTdWJmaWVsZCAgICB8IFZhbHVlICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsNCj4gKz09PT09PT09PT0rPT09 PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPT09 PT09PT09PT09PSsNCj4gKyAgIHwgYGBzcGVjYGAgfCBgYHRocmVzaG9sZGBgIHwgMCBhcyBwZXJm ZWN0IG1hdGNoLCAweGZmZmZmZmZmIGFzIGZ1enppZXN0IG1hdGNoIHwNCj4gKyAgICstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSsNCj4gKyAgIHwgYGBsYXN0YGAgfCBgYHRocmVzaG9sZGBgIHwgdXBwZXIg cmFuZ2UgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKyAgICstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgIHwgYGBtYXNrYGAgfCBgYHRocmVzaG9sZGBgIHwgYml0 LW1hc2sgYXBwbHkgdG8gInNwZWMiIGFuZCAibGFzdCIgICAgICAgICAgICAgIHwNCj4gKyAgICst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgICAiIiINCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93 SXRlbU1hcmsoUGF0dGVybkZsb3dJdGVtKToNCj4gKyAgICB0eXBlID0gRmxvd0l0ZW1UeXBlLk1B UksNCj4gKyAgICAiIiINCj4gKyAgICArLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgICB8IEZpZWxkICAgIHwgU3ViZmllbGQgfCBWYWx1ZSAg ICAgICAgICAgICAgICAgICAgIHwNCj4gKyAgICArPT09PT09PT09PSs9PT09PT09PT09Kz09PT09 PT09PT09PT09PT09PT09PT09PT09PSsNCj4gKyAgICB8IGBgc3BlY2BgIHwgYGBpZGBgICAgfCBp bnRlZ2VyIHZhbHVlICAgICAgICAgICAgIHwNCj4gKyAgICArLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgICB8IGBgbGFzdGBgIHwgYGBpZGBg ICAgfCB1cHBlciByYW5nZSB2YWx1ZSAgICAgICAgIHwNCj4gKyAgICArLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgICB8IGBgbWFza2BgIHwg YGBpZGBgICAgfCB6ZXJvZWQgdG8gbWF0Y2ggYW55IHZhbHVlIHwNCj4gKyAgICArLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgICAiIiINCj4g Kw0KPiArDQo+ICtjbGFzcyBGbG93SXRlbU1ldGEoUGF0dGVybkZsb3dJdGVtKToNCj4gKyAgICB0 eXBlID0gRmxvd0l0ZW1UeXBlLk1FVEENCj4gKyAgICAiIiINCj4gKyAgICBNYXRjaGVzIGFuIGFw cGxpY2F0aW9uIHNwZWNpZmljIDMyIGJpdCBtZXRhZGF0YSBpdGVtLg0KPiArDQo+ICsgICAgLSBE ZWZhdWx0IGBgbWFza2BgIG1hdGNoZXMgdGhlIHNwZWNpZmllZCBtZXRhZGF0YSB2YWx1ZS4NCj4g KyAgICAiIiINCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93SXRlbVRhZyhQYXR0ZXJuRmxvd0l0ZW0p Og0KPiArICAgIHR5cGUgPSBGbG93SXRlbVR5cGUuVEFHDQo+ICsgICAgIiIiDQo+ICsgICAgTWF0 Y2hlcyB0YWcgaXRlbSBzZXQgYnkgb3RoZXIgZmxvd3MuIE11bHRpcGxlIHRhZ3MgYXJlIHN1cHBv cnRlZCBieQ0KPiBzcGVjaWZ5aW5nDQo+ICsgICAgYGBpbmRleGBgLg0KPiArDQo+ICsgICAgLSBE ZWZhdWx0IGBgbWFza2BgIG1hdGNoZXMgdGhlIHNwZWNpZmllZCB0YWcgdmFsdWUgYW5kIGluZGV4 Lg0KPiArDQo+ICsgICArLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsgICB8IEZpZWxkICAgIHwgU3ViZmllbGQgIHwgVmFs dWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsNCj4gKz09PT09PT09PT0r PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kw0KPiAr ICAgfCBgYHNwZWNgYCB8IGBgZGF0YWBgICB8IDMyIGJpdCBmbG93IHRhZyB2YWx1ZSAgICAgICAg ICAgICAgICAgfA0KPiArICAgfCAgICAgICAgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArICAgfCAgICAgICAgICB8IGBgaW5kZXhgYCB8 IGluZGV4IG9mIGZsb3cgdGFnICAgICAgICAgICAgICAgICAgICAgfA0KPiArICAgKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0K PiArICAgfCBgYGxhc3RgYCB8IGBgZGF0YWBgICB8IHVwcGVyIHJhbmdlIHZhbHVlICAgICAgICAg ICAgICAgICAgICAgfA0KPiArICAgfCAgICAgICAgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArICAgfCAgICAgICAgICB8IGBgaW5kZXhg YCB8IGZpZWxkIGlzIGlnbm9yZWQgICAgICAgICAgICAgICAgICAgICAgfA0KPiArICAgKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Kw0KPiArICAgfCBgYG1hc2tgYCB8IGBgZGF0YWBgICB8IGJpdC1tYXNrIGFwcGxpZXMgdG8gInNw ZWMiIGFuZCAibGFzdCIgfA0KPiArICAgfCAgICAgICAgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArICAgfCAgICAgICAgICB8IGBgaW5k ZXhgYCB8IGZpZWxkIGlzIGlnbm9yZWQgICAgICAgICAgICAgICAgICAgICAgfA0KPiArICAgKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKw0KPiArICAgICIiIg0KPiArDQo+ICsNCj4gK1BBVFRFUk5fSVRFTVNfVFlQRV9DTEFTU19N QVBQSU5HOiBEaWN0W0Zsb3dJdGVtVHlwZSwNCj4gUGF0dGVybkZsb3dJdGVtXSA9IHsNCj4gKyAg ICBGbG93SXRlbVR5cGUuVURQOiBGbG93SXRlbVVkcCwNCj4gKyAgICBGbG93SXRlbVR5cGUuVENQ OiBGbG93SXRlbVRjcCwNCj4gKyAgICBGbG93SXRlbVR5cGUuU0NUUDogRmxvd0l0ZW1TY3RwLA0K PiArICAgIEZsb3dJdGVtVHlwZS5JUFY0OiBGbG93SXRlbUlwdjQsDQo+ICsgICAgRmxvd0l0ZW1U eXBlLklQVjY6IEZsb3dJdGVtSXB2NiwNCj4gKyAgICBGbG93SXRlbVR5cGUuRVRIOiBGbG93SXRl bUV0aCwNCj4gKyAgICBGbG93SXRlbVR5cGUuVkxBTjogRmxvd0l0ZW1WbGFuLA0KPiArICAgIEZs b3dJdGVtVHlwZS5WWExBTjogRmxvd0l0ZW1WeGxhbiwNCj4gKyAgICBGbG93SXRlbVR5cGUuR1JF OiBGbG93SXRlbUdyZSwNCj4gKyAgICBGbG93SXRlbVR5cGUuVlhMQU5fR1BFOiBGbG93SXRlbVZ4 bGFuX2dwZSwNCj4gKyAgICBGbG93SXRlbVR5cGUuQVJQX0VUSF9JUFY0OiBGbG93SXRlbUFycF9l dGhfaXB2NCwNCj4gKyAgICBGbG93SXRlbVR5cGUuSUNNUDogRmxvd0l0ZW1JY21wLA0KPiArICAg IEZsb3dJdGVtVHlwZS5JQ01QNjogRmxvd0l0ZW1JY21wNiwNCj4gKyAgICBGbG93SXRlbVR5cGUu TUFSSzogRmxvd0l0ZW1NYXJrLA0KPiArICAgIEZsb3dJdGVtVHlwZS5NRVRBOiBGbG93SXRlbU1l dGEsDQo+ICsgICAgRmxvd0l0ZW1UeXBlLlRBRzogRmxvd0l0ZW1UYWcsDQo+ICsgICAgRmxvd0l0 ZW1UeXBlLkZVWlpZOiBGbG93SXRlbUZ1enp5LA0KPiArICAgIEZsb3dJdGVtVHlwZS5FTkQ6IEZs b3dJdGVtRW5kLA0KPiArICAgIEZsb3dJdGVtVHlwZS5WT0lEOiBGbG93SXRlbVZvaWQsDQo+ICsg ICAgRmxvd0l0ZW1UeXBlLklOVkVSVDogRmxvd0l0ZW1JbnZlcnQsDQo+ICsgICAgRmxvd0l0ZW1U eXBlLkFOWTogRmxvd0l0ZW1BbnksDQo+ICsgICAgRmxvd0l0ZW1UeXBlLlJBVzogRmxvd0l0ZW1S YXcsDQo+ICt9DQo+ICsNCj4gK0lURU1fVFlQRV9TQ0FQWV9DTEFTU19NQVBQSU5HOiBEaWN0W0Zs b3dJdGVtVHlwZSwgUGFja2V0XSA9IHsNCj4gKyAgICBGbG93SXRlbVR5cGUuVURQOiBVRFAsDQo+ ICsgICAgRmxvd0l0ZW1UeXBlLlRDUDogVENQLA0KPiArICAgIEZsb3dJdGVtVHlwZS5TQ1RQOiBT Q1RQLA0KPiArICAgIEZsb3dJdGVtVHlwZS5JUFY0OiBJUCwNCj4gKyAgICBGbG93SXRlbVR5cGUu SVBWNjogSVB2NiwNCj4gKyAgICBGbG93SXRlbVR5cGUuRVRIOiBFdGhlciwNCj4gKyAgICBGbG93 SXRlbVR5cGUuVkxBTjogRG90MVEsDQo+ICsgICAgRmxvd0l0ZW1UeXBlLlZYTEFOOiBWWExBTiwN Cj4gKyAgICBGbG93SXRlbVR5cGUuR1JFOiBHUkUsDQo+ICsgICAgRmxvd0l0ZW1UeXBlLlZYTEFO X0dQRTogVlhMQU4sDQo+ICsgICAgRmxvd0l0ZW1UeXBlLkFSUF9FVEhfSVBWNDogQVJQLCAgIyBU aGUgdHlwZSBydWxlcyBwcmV2ZW50IHRoaXMgZnJvbSBiZWluZw0KPiB1bmRlciBhbnl0aGluZyBl eGNlcHQgRXRoZXIgLyBJUHY0DQo+ICsgICAgRmxvd0l0ZW1UeXBlLklDTVA6IElDTVAsDQo+ICsg ICAgRmxvd0l0ZW1UeXBlLklDTVA2OiBJQ01QLA0KPiArICAgIEZsb3dJdGVtVHlwZS5NQVJLOiBO b25lLA0KPiArICAgIEZsb3dJdGVtVHlwZS5NRVRBOiBOb25lLA0KPiArICAgIEZsb3dJdGVtVHlw ZS5UQUc6IE5vbmUsDQo+ICsgICAgRmxvd0l0ZW1UeXBlLkZVWlpZOiBOb25lLA0KPiArICAgIEZs b3dJdGVtVHlwZS5FTkQ6IE5vbmUsDQo+ICsgICAgRmxvd0l0ZW1UeXBlLlZPSUQ6IE5vbmUsDQo+ ICsgICAgRmxvd0l0ZW1UeXBlLklOVkVSVDogTm9uZSwNCj4gKyAgICBGbG93SXRlbVR5cGUuQU5Z OiBOb25lLA0KPiArICAgIEZsb3dJdGVtVHlwZS5SQVc6IE5vbmUsDQo+ICt9DQo+ICsNCj4gK1RV Tk5FTElOR19QUk9UT0NPTFMgPSB7DQo+ICsgICAgRmxvd0l0ZW1WbGFuLA0KPiArICAgIEZsb3dJ dGVtVnhsYW4sDQo+ICsgICAgRmxvd0l0ZW1HcmUsDQo+ICsgICAgRmxvd0l0ZW1WeGxhbl9ncGUN Cj4gK30NCj4gKw0KPiArUEFUVEVSTl9PUEVSQVRJT05TID0gew0KPiArICAgIEZsb3dJdGVtTWFy aywNCj4gKyAgICBGbG93SXRlbU1ldGEsDQo+ICsgICAgRmxvd0l0ZW1UYWcsDQo+ICsgICAgRmxv d0l0ZW1GdXp6eSwNCj4gKyAgICBGbG93SXRlbUludmVydCwNCj4gK30NCj4gZGlmZiAtLWdpdCBh L2ZyYW1ld29yay9mbG93L2Zsb3dfcnVsZS5weSBiL2ZyYW1ld29yay9mbG93L2Zsb3dfcnVsZS5w eQ0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMC4uNzBiMzA4ZGENCj4g LS0tIC9kZXYvbnVsbA0KPiArKysgYi9mcmFtZXdvcmsvZmxvdy9mbG93X3J1bGUucHkNCj4gQEAg LTAsMCArMSwzMSBAQA0KPiArZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uDQo+ICsNCj4gK2Zyb20g ZnJhbWV3b3JrLmZsb3cuZW51bXMgaW1wb3J0ICoNCj4gK2Zyb20gZnJhbWV3b3JrLmZsb3cuZmxv dyBpbXBvcnQgRmxvdw0KPiAraW1wb3J0IGZyYW1ld29yay5mbG93LmZsb3dfYWN0aW9uX2l0ZW1z IGFzIGZsb3dfYWN0aW9uX2l0ZW1zDQo+ICsNCj4gK2NsYXNzIEZsb3dQYXR0ZXJuKEZsb3cpOg0K PiArICAgIGVudHJ5X3BvaW50cyA9IHtGbG93SXRlbVR5cGUuRVRILCBGbG93SXRlbVR5cGUuRlVa Wll9DQo+ICsNCj4gKyAgICBkZWYgX19zdHJfXyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIGYi cGF0dGVybiB7c3VwZXIoRmxvd1BhdHRlcm4sIHNlbGYpLl9fc3RyX18oKX0gLyBlbmQiDQo+ICsN Cj4gKw0KPiArY2xhc3MgRmxvd0FjdGlvbnMoRmxvdyk6DQo+ICsgICAgZW50cnlfcG9pbnRzID0g Zmxvd19hY3Rpb25faXRlbXMuRU5UUllfUE9JTlRTDQo+ICsNCj4gKyAgICBkZWYgX19zdHJfXyhz ZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIGYiYWN0aW9uIHtzdXBlcihGbG93QWN0aW9ucywgc2Vs ZikuX19zdHJfXygpfSAvIGVuZCINCj4gKw0KPiArDQo+ICtjbGFzcyBGbG93UnVsZShvYmplY3Qp Og0KPiArICAgIHBvcnQ6IGludA0KPiArICAgIGdyb3VwOiBVbmlvbltpbnQsIE5vbmVdDQo+ICsg ICAgcHJpb3JpdHk6IFVuaW9uW2ludCwgTm9uZV0NCj4gKw0KPiArICAgIGluZ3Jlc3M6IGJvb2wN Cj4gKyAgICBlZ3Jlc3M6IGJvb2wNCj4gKyAgICB0cmFuc2ZlcjogYm9vbA0KPiArDQo+ICsgICAg cGF0dGVybjogRmxvd1BhdHRlcm4NCj4gKyAgICBhY3Rpb25zOiBGbG93QWN0aW9ucw0KPiBkaWZm IC0tZ2l0IGEvZnJhbWV3b3JrL2Zsb3cvZ2VuZXJhdG9yLnB5IGIvZnJhbWV3b3JrL2Zsb3cvZ2Vu ZXJhdG9yLnB5DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwLi44MjY3 ZjdhZg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2ZyYW1ld29yay9mbG93L2dlbmVyYXRvci5w eQ0KPiBAQCAtMCwwICsxLDE1NSBAQA0KPiArZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhbm5vdGF0 aW9ucw0KPiArDQo+ICtpbXBvcnQgY29weQ0KPiAraW1wb3J0IGl0ZXJ0b29scw0KPiAraW1wb3J0 IG9zDQo+ICtpbXBvcnQgc3lzDQo+ICtpbXBvcnQgdGltZQ0KPiArZnJvbSB0eXBpbmcgaW1wb3J0 IExpc3QsIFNldCwgR2VuZXJhdG9yLCBJdGVyYWJsZSwgRnJvemVuU2V0LCBUdXBsZQ0KPiArDQo+ ICtpbXBvcnQgbnVtcHkgYXMgbnANCj4gKw0KPiArZnJvbSBmcmFtZXdvcmsuZmxvdy5mbG93IGlt cG9ydCBGbG93DQo+ICtmcm9tIGZyYW1ld29yay5mbG93LmZsb3dfYWN0aW9uX2l0ZW1zIGltcG9y dA0KPiBBQ1RJT05fSVRFTVNfVFlQRV9DTEFTU19NQVBQSU5HDQo+ICtmcm9tIGZyYW1ld29yay5m bG93LmZsb3dfcGF0dGVybl9pdGVtcyBpbXBvcnQNCj4gUEFUVEVSTl9JVEVNU19UWVBFX0NMQVNT X01BUFBJTkcsIFBhdHRlcm5GbG93SXRlbSwgXA0KPiArICAgIFBBVFRFUk5fT1BFUkFUSU9OX1RZ UEVTLCBUVU5ORUxJTkdfUFJPVE9DT0xfVFlQRVMsDQo+IEFMV0FZU19BTExPV0VEX0lURU1TLCBG bG93SXRlbUVuZCwgRmxvd0l0ZW1WeGxhbiwgRmxvd0l0ZW1JcHY0LCBcDQo+ICsgICAgRmxvd0l0 ZW1FdGgsIEZsb3dJdGVtR3JlLCBMM19GTE9XX1RZUEVTLCBGbG93SXRlbVZsYW4sIEZsb3dJdGVt VWRwDQo+ICtmcm9tIGZyYW1ld29yay5mbG93LmZsb3dfcnVsZSBpbXBvcnQgRmxvd0l0ZW1UeXBl DQo+ICsNCj4gKw0KPiArZGVmIGdldF92YWxpZF9uZXh0X3Byb3RvY29scyhjdXJyZW50X3Byb3Rv Y29sLCBwcm90b2NvbF9zdGFjaywgdHlwZV9kZW55bGlzdCk6DQo+ICsgICAgcmV0dXJuIGxpc3Qo ZmlsdGVyKA0KPiArICAgICAgICBsYW1iZGEgcGF0ZW50X2l0ZW06IHBhdGVudF9pdGVtIG5vdCBp biB0eXBlX2RlbnlsaXN0IGFuZCBwYXRlbnRfaXRlbQ0KPiBub3QgaW4ge3AudHlwZSBmb3IgcCBp biBwcm90b2NvbF9zdGFja30sDQo+ICsgICAgICAgIGN1cnJlbnRfcHJvdG9jb2wudmFsaWRfcGFy ZW50X2l0ZW1zKSkNCj4gKw0KPiArDQo+ICtkZWYgX2dlbmVyYXRlKHR5cGVfZGVueWxpc3Q9Tm9u ZSkgLT4gTGlzdFtMaXN0W1BhdHRlcm5GbG93SXRlbV1dOg0KPiArICAgIGlmIHR5cGVfZGVueWxp c3QgaXMgTm9uZToNCj4gKyAgICAgICAgdHlwZV9kZW55bGlzdCA9IHNldCgpDQo+ICsgICAgVU5V U0VEX1BBVFRFUk5fSVRFTVMgPSB7UEFUVEVSTl9JVEVNU19UWVBFX0NMQVNTX01BUFBJTkdbaV0g Zm9yDQo+IGkgaW4gdHlwZV9kZW55bGlzdH0NCj4gKw0KPiArICAgIHBhdHRlcm5zOiBMaXN0W0xp c3RbUGF0dGVybkZsb3dJdGVtXV0gPSBbXQ0KPiArICAgIGZvciBwYXR0ZXJuX2l0ZW0gaW4gW2Ns YXp6IGZvciBjbGF6eiBpbg0KPiBQQVRURVJOX0lURU1TX1RZUEVfQ0xBU1NfTUFQUElORy52YWx1 ZXMoKSBpZg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXp6IG5vdCBpbiBVTlVTRURf UEFUVEVSTl9JVEVNU106DQo+ICsgICAgICAgIHByb3RvY29sX3N0YWNrID0gW10NCj4gKyAgICAg ICAgaWYgcHJvdG9jb2xfc3RhY2suY291bnQocGF0dGVybl9pdGVtKSA+PSAyOg0KPiArICAgICAg ICAgICAgY29udGludWUNCj4gKw0KPiArICAgICAgICBjdXJyZW50X3Byb3RvY29sID0gcGF0dGVy bl9pdGVtKCkNCj4gKyAgICAgICAgdmFsaWRfbmV4dF9wcm90b2NvbHMgPSBnZXRfdmFsaWRfbmV4 dF9wcm90b2NvbHMoY3VycmVudF9wcm90b2NvbCwNCj4gcHJvdG9jb2xfc3RhY2ssIHR5cGVfZGVu eWxpc3QpDQo+ICsgICAgICAgIHdoaWxlIGxlbih2YWxpZF9uZXh0X3Byb3RvY29scykgPiAwOg0K PiArICAgICAgICAgICAgcHJvdG9jb2xfc3RhY2suYXBwZW5kKGN1cnJlbnRfcHJvdG9jb2wpDQo+ ICsgICAgICAgICAgICBjdXJyZW50X3Byb3RvY29sID0NCj4gUEFUVEVSTl9JVEVNU19UWVBFX0NM QVNTX01BUFBJTkdbbGlzdCh2YWxpZF9uZXh0X3Byb3RvY29scylbMF1dKCkNCj4gKyAgICAgICAg ICAgIHZhbGlkX25leHRfcHJvdG9jb2xzID0gZ2V0X3ZhbGlkX25leHRfcHJvdG9jb2xzKGN1cnJl bnRfcHJvdG9jb2wsDQo+IHByb3RvY29sX3N0YWNrLCB0eXBlX2RlbnlsaXN0KQ0KPiArDQo+ICsg ICAgICAgIHByb3RvY29sX3N0YWNrLmFwcGVuZChjdXJyZW50X3Byb3RvY29sKQ0KPiArDQo+ICsg ICAgICAgIHBhdHRlcm5zLmFwcGVuZChsaXN0KHJldmVyc2VkKHByb3RvY29sX3N0YWNrKSkpICAj IFRoaXMgd2lsbCBwbGFjZSB0aGUgbG93ZXN0DQo+IGxldmVsIHByb3RvY29scyBmaXJzdA0KPiAr ICAgIHJldHVybiBwYXR0ZXJucw0KPiArDQo+ICsNCj4gK2RlZiBjb252ZXJ0X3Byb3RvY29sX3N0 YWNrX3RvX2Zsb3dfcGF0dGVybihwcm90b2NvbF9zdGFjayk6DQo+ICsgICAgcmV0dXJuIEZsb3co cGF0dGVybl9pdGVtcz1wcm90b2NvbF9zdGFjaykNCj4gKw0KPiArDQo+ICtkZWYgX2dldF9wYXR0 ZXJuc193aXRoX3R5cGVfZGVueWxpc3QodHlwZV9kZW55bGlzdDogU2V0KToNCj4gKyAgICByZXR1 cm4gW2NvbnZlcnRfcHJvdG9jb2xfc3RhY2tfdG9fZmxvd19wYXR0ZXJuKHByb3RvY29sX3N0YWNr KSBmb3INCj4gcHJvdG9jb2xfc3RhY2sgaW4gKF9nZW5lcmF0ZSgNCj4gKyAgICAgICAgdHlwZV9k ZW55bGlzdD10eXBlX2RlbnlsaXN0DQo+ICsgICAgKSldDQo+ICsNCj4gKw0KPiArZGVmIF9nZXRf bm9ybWFsX3Byb3RvY29sX3BhdHRlcm5zKCkgLT4gTGlzdFtGbG93XToNCj4gKyAgICByZXR1cm4g X2dldF9wYXR0ZXJuc193aXRoX3R5cGVfZGVueWxpc3QoDQo+ICsgICAgICAgIFBBVFRFUk5fT1BF UkFUSU9OX1RZUEVTIHwgQUxXQVlTX0FMTE9XRURfSVRFTVMgfA0KPiB7Rmxvd0l0ZW1UeXBlLkFO WSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGbG93SXRlbVR5cGUuRU5EfSkNCj4gKw0KPiArDQo+ICtkZWYgX2dldF90dW5uZWxs ZWRfcHJvdG9jb2xfcGF0dGVybnMocGF0dGVybnM6IExpc3RbRmxvd10pIC0+IEdlbmVyYXRvcltG bG93XToNCj4gKyAgICBWWExBTl9GTE9XID0gRmxvdyhwYXR0ZXJuX2l0ZW1zPVtGbG93SXRlbUV0 aCgpLCBGbG93SXRlbUlwdjQoKSwNCj4gRmxvd0l0ZW1VZHAoKSwgRmxvd0l0ZW1WeGxhbigpXSkN Cj4gKyAgICBmb3IgcGF0dGVybiBpbiBwYXR0ZXJuczoNCj4gKyAgICAgICAgeWllbGQgVlhMQU5f RkxPVyAvIHBhdHRlcm4NCj4gKw0KPiArICAgIEdSRV9GTE9XID0gRmxvdyhwYXR0ZXJuX2l0ZW1z PVtGbG93SXRlbUV0aCgpLCBGbG93SXRlbUlwdjQoKSwNCj4gRmxvd0l0ZW1HcmUoKV0pDQo+ICsg ICAgZm9yIHBhdHRlcm4gaW4gcGF0dGVybnM6DQo+ICsgICAgICAgIGlmIGxlbihwYXR0ZXJuLnBh dHRlcm5faXRlbXMpID49IDI6DQo+ICsgICAgICAgICAgICBpZiBwYXR0ZXJuLnBhdHRlcm5faXRl bXNbMV0udHlwZSBpbiBMM19GTE9XX1RZUEVTOg0KPiArICAgICAgICAgICAgICAgIHlpZWxkIEdS RV9GTE9XIC8gcGF0dGVybg0KPiArDQo+ICsNCj4gK2RlZiBhZGRfdmxhbnNfdG9fcGF0dGVybnMo Zmxvd3M6IEl0ZXJhYmxlW0l0ZXJhYmxlW0Zsb3ddXSkgLT4gR2VuZXJhdG9yW0Zsb3ddOg0KPiAr ICAgIGZvciBmbG93IGluIGZsb3dzOg0KPiArICAgICAgICBwYXR0ZXJuX2l0ZW1zX3ZsYW4gPSBj b3B5LmRlZXBjb3B5KGZsb3cucGF0dGVybl9pdGVtcykNCj4gKyAgICAgICAgcGF0dGVybl9pdGVt c19xaW5xID0gY29weS5kZWVwY29weShmbG93LnBhdHRlcm5faXRlbXMpDQo+ICsgICAgICAgIGV0 aF9pbmRleGVzID0gbnAud2hlcmUobnAuYXJyYXkoZmxvdy5wYXR0ZXJuX2l0ZW1zKSA9PSBGbG93 SXRlbUV0aCgpKVswXQ0KPiArICAgICAgICBmb3IgaW5kZXggaW4gZXRoX2luZGV4ZXM6DQo+ICsg ICAgICAgICAgICBwYXR0ZXJuX2l0ZW1zX3ZsYW4uaW5zZXJ0KGluZGV4ICsgMSwgRmxvd0l0ZW1W bGFuKCkpDQo+ICsgICAgICAgICAgICBwYXR0ZXJuX2l0ZW1zX3FpbnEuaW5zZXJ0KGluZGV4ICsg MSwgRmxvd0l0ZW1WbGFuKCkpDQo+ICsgICAgICAgICAgICBwYXR0ZXJuX2l0ZW1zX3FpbnEuaW5z ZXJ0KGluZGV4ICsgMSwgRmxvd0l0ZW1WbGFuKCkpDQo+ICsgICAgICAgIHlpZWxkIGZsb3cNCj4g KyAgICAgICAgeWllbGQgRmxvdyhwYXR0ZXJuX2l0ZW1zPXBhdHRlcm5faXRlbXNfdmxhbiwNCj4g YWN0aW9uX2l0ZW1zPWZsb3cuYWN0aW9uX2l0ZW1zKQ0KPiArICAgICAgICB5aWVsZCBGbG93KHBh dHRlcm5faXRlbXM9cGF0dGVybl9pdGVtc19xaW5xLA0KPiBhY3Rpb25faXRlbXM9Zmxvdy5hY3Rp b25faXRlbXMpDQo+ICsNCj4gKw0KPiArZGVmIGdldF9wYXR0ZXJucygpIC0+IEl0ZXJhYmxlW0l0 ZXJhYmxlW0Zsb3ddXToNCj4gKyAgICBwYXR0ZXJuczogTGlzdFtGbG93XSA9IF9nZXRfbm9ybWFs X3Byb3RvY29sX3BhdHRlcm5zKCkNCj4gKw0KPiArICAgICMgVGhlIGZsb3cgd2l0aCBvbmx5IGFu IGV0aGVybmV0IGhlYWRlciB3YXMgYSBjb25zZXF1ZW5jZSBvZiB0aGUNCj4gKyAgICAjIGdlbmVy YXRpb24gYWxnb3JpdGhtLCBidXQgaXNuJ3QgdGhhdCB1c2VmdWwgdG8gdGVzdCBzaW5jZSB3ZSBj YW4ndA0KPiArICAgICMgY3JlYXRlIGEgZmFpbGluZyBjYXNlIHdpdGhvdXQgZ2V0dGluZyBlYWNo IE5JQyB0byB3cml0ZSBhcmJpdHJhcnkNCj4gKyAgICAjIGJ5dGVzIG92ZXIgdGhlIGxpbmsuDQo+ ICsgICAgZXRoX29ubHlfZmxvdyA9IEZsb3cocGF0dGVybl9pdGVtcz1bRmxvd0l0ZW1FdGgoKV0p DQo+ICsgICAgcGF0dGVybnMucmVtb3ZlKGV0aF9vbmx5X2Zsb3cpDQo+ICsNCj4gKyAgICAjIHR1 bm5lbGxlZF9wYXR0ZXJucyA9IF9nZXRfdHVubmVsbGVkX3Byb3RvY29sX3BhdHRlcm5zKHBhdHRl cm5zKQ0KPiArDQo+ICsgICAgcmV0dXJuIHBhdHRlcm5zDQo+ICsNCj4gKw0KPiArZGVmIGFkZF9w cm9wZXJ0aWVzX3RvX3BhdHRlcm5zKHBhdHRlcm5zOiBJdGVyYWJsZVtGbG93XSkgLT4NCj4gSXRl cmFibGVbVHVwbGVbRmxvdywgRnJvemVuU2V0W3N0cl0sIEZyb3plblNldFtzdHJdLCBzdHJdXToN Cj4gKyAgICB0ZXN0X3Byb3BlcnR5X2Zsb3dfaXRlcnMgPSBtYXAobGFtYmRhIGY6IGYuZ2V0X3Rl c3RfcHJvcGVydHlfZmxvd3MoKSwNCj4gcGF0dGVybnMpDQo+ICsgICAgZm9yIGl0ZXJhdG9yIGlu IHRlc3RfcHJvcGVydHlfZmxvd19pdGVyczoNCj4gKyAgICAgICAgeWllbGQgZnJvbSBpdGVyYXRv cg0KPiArDQo+ICsNCj4gK2RlZiBnZXRfcGF0dGVybnNfd2l0aF9wcm9wZXJ0aWVzKCkgLT4gSXRl cmFibGVbVHVwbGVbRmxvdywgRnJvemVuU2V0W3N0cl0sDQo+IEZyb3plblNldFtzdHJdLCBzdHJd XToNCj4gKyAgICBiYXNlX3BhdHRlcm5zID0gZ2V0X3BhdHRlcm5zKCkNCj4gKyAgICByZXR1cm4g YWRkX3Byb3BlcnRpZXNfdG9fcGF0dGVybnMoYmFzZV9wYXR0ZXJucykNCj4gKw0KPiArDQo+ICtk ZWYgY3JlYXRlX3Rlc3RfZnVuY3Rpb25fc3RyaW5ncyh0ZXN0X2NvbmZpZ3VyYXRpb25zOiBJdGVy YWJsZVtUdXBsZVtGbG93LA0KPiBGcm96ZW5TZXRbc3RyXSwgRnJvemVuU2V0W3N0cl0sIHN0cl1d KSAtPiBcDQo+ICsgICAgICAgIEl0ZXJhYmxlW3N0cl06DQo+ICsgICAgIiIiDQo+ICsgICAgVGhp cyB3aWxsIGJyZWFrIGlmIHRoZSBfX3N0cl9fIG1ldGhvZHMgb2YgZnJvemVuc2V0IGV2ZXIgY2hh bmdlcyBvciBpZiAlDQo+IGZvcm1hdHRpbmcgc3ludGF4IGlzIHJlbW92ZWQuDQo+ICsNCj4gKyAg ICBAcGFyYW0gdGVzdF9jb25maWd1cmF0aW9uczogQW4gaXRlcmFibGUgd2l0aCB0ZXN0IGNvbmZp Z3VyYXRpb25zIHRvIGNvbnZlcnQNCj4gaW50byB0ZXN0IGNhc2Ugc3RyaW5ncy4NCj4gKyAgICBA cmV0dXJuOiBBbiBpdGVyYWJsZSBjb250YWluaW5nIHN0cmluZ3MgdGhhdCBhcmUgZnVuY3Rpb24g cGFyYW1ldGVycy4NCj4gKyAgICAiIiINCj4gKyAgICBmdW5jdGlvbl90ZW1wbGF0ZSA9IFwNCj4g KyAgICAgICAgIiIiDQo+ICtkZWYgdGVzdF8lcyhzZWxmKToNCj4gKyAgICBzZWxmLmRvX3Rlc3Rf d2l0aF9xdWV1ZV9hY3Rpb24oIiVzIiwgJXMsICVzKQ0KPiArICAgICAgICAiIiINCj4gKyAgICBy ZXR1cm4gbWFwKGxhbWJkYSB0ZXN0X2NvbmZpZ3VyYXRpb246IGZ1bmN0aW9uX3RlbXBsYXRlICUg KA0KPiArICAgICAgICB0ZXN0X2NvbmZpZ3VyYXRpb25bLTFdLCB0ZXN0X2NvbmZpZ3VyYXRpb25b MF0sIHRlc3RfY29uZmlndXJhdGlvblsxXSwNCj4gdGVzdF9jb25maWd1cmF0aW9uWzJdLCksDQo+ ICsgICAgICAgICAgICAgICB0ZXN0X2NvbmZpZ3VyYXRpb25zKQ0KPiArDQo+ICtkZWYgZ2V0X3Rl c3RfY29uZmlnc19mb3JfYWN0aW9ucygpIC0+IEl0ZXJhYmxlW1R1cGxlW3N0ciwgRnJvemVuU2V0 W3N0cl0sDQo+IEZyb3plblNldFtzdHJdLCBzdHJdXToNCj4gKyAgICByZXR1cm4gaXRlcnRvb2xz LmNoYWluLmZyb21faXRlcmFibGUoDQo+ICsgICAgICAgICAgICBbDQo+ICsgICAgICAgICAgICAg ICAgWygqdGVzdF9jYXNlLCBmInthY3Rpb25fdHlwZS52YWx1ZX1fe3Rlc3RfY2FzZV9uYW1lfSIs KSBcDQo+ICsgICAgICAgICAgICAgICAgIGZvciB0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9jYXNlIGlu IGNhc2UudGVzdF9jYXNlLml0ZW1zKCldIFwNCj4gKyAgICAgICAgICAgICAgICBmb3IgYWN0aW9u X3R5cGUsIGNhc2UgaW4NCj4gQUNUSU9OX0lURU1TX1RZUEVfQ0xBU1NfTUFQUElORy5pdGVtcygp DQo+ICsgICAgICAgICAgICBdDQo+ICsgICAgICAgICkNCj4gKyMgVXNlZCBmb3IgdGVzdGluZyBw YXR0ZXJuIGdlbmVyYXRpb24sIGl0IHdpbGwgb3V0cHV0IGFsbCBwYXR0ZXJucw0KPiArIyBhbmQg dGhlaXIgcGFzcy9mYWlsIHBhY2tldHMgdG8gc3Rkb3V0DQo+ICtkZWYgbWFpbigpOg0KPiArICAg IHBhdHRlcm5fdGVzdHMgPSBsaXN0KGdldF9wYXR0ZXJuc193aXRoX3Byb3BlcnRpZXMoKSkNCj4g KyAgICBwYXR0ZXJuX2Z1bmN0aW9ucyA9IGNyZWF0ZV90ZXN0X2Z1bmN0aW9uX3N0cmluZ3MocGF0 dGVybl90ZXN0cykNCj4gKyAgICAjIHByaW50KCJcbiIuam9pbihwYXR0ZXJuX2Z1bmN0aW9ucykp DQo+ICsNCj4gKyAgICBhY3Rpb25fZnVuY3Rpb25zID0NCj4gY3JlYXRlX3Rlc3RfZnVuY3Rpb25f c3RyaW5ncyhnZXRfdGVzdF9jb25maWdzX2Zvcl9hY3Rpb25zKCkpDQo+ICsgICAgcHJpbnQoIlxu Ii5qb2luKGFjdGlvbl9mdW5jdGlvbnMpKQ0KPiArDQo+ICtpZiBfX25hbWVfXyA9PSAiX19tYWlu X18iOg0KPiArICAgIG1haW4oKQ0KPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4gZGlm ZiAtLWdpdCBhL3Rlc3RfcGxhbnMvaW5kZXgucnN0IGIvdGVzdF9wbGFucy9pbmRleC5yc3QNCj4g aW5kZXggNmEwNzUwZDEuLjc3YWM4MjQ4IDEwMDY0NA0KPiAtLS0gYS90ZXN0X3BsYW5zL2luZGV4 LnJzdA0KPiArKysgYi90ZXN0X3BsYW5zL2luZGV4LnJzdA0KPiBAQCAtMTM2LDYgKzEzNiw3IEBA IFRoZSBmb2xsb3dpbmcgYXJlIHRoZSB0ZXN0IHBsYW5zIGZvciB0aGUgRFBESyBEVFMNCj4gYXV0 b21hdGVkIHRlc3Qgc3lzdGVtLg0KPiAgICAgIHJzc19rZXlfdXBkYXRlX3Rlc3RfcGxhbg0KPiAg ICAgIHJ4dHhfb2ZmbG9hZF90ZXN0X3BsYW4NCj4gICAgICBydGVmbG93X3ByaW9yaXR5X3Rlc3Rf cGxhbg0KPiArICAgIHJ0ZV9mbG93X3Rlc3RfcGxhbg0KPiAgICAgIHJ1bnRpbWVfdmZfcXVldWVf bnVtYmVyX2tlcm5lbF90ZXN0X3BsYW4NCj4gICAgICBydW50aW1lX3ZmX3F1ZXVlX251bWJlcl9t YXhpbnVtX3Rlc3RfcGxhbg0KPiAgICAgIHJ1bnRpbWVfdmZfcXVldWVfbnVtYmVyX3Rlc3RfcGxh bg0KPiBkaWZmIC0tZ2l0IGEvdGVzdF9wbGFucy9ydGVfZmxvd190ZXN0X3BsYW4ucnN0DQo+IGIv dGVzdF9wbGFucy9ydGVfZmxvd190ZXN0X3BsYW4ucnN0DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+IGluZGV4IDAwMDAwMDAwLi5iNTNmNjRiOA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL3Rl c3RfcGxhbnMvcnRlX2Zsb3dfdGVzdF9wbGFuLnJzdA0KPiBAQCAtMCwwICsxLDQxMTQgQEANCj4g Ky4uICMgQlNEIExJQ0VOU0UNCj4gKyAgICAjDQo+ICsgICAgIyBDb3B5cmlnaHQoYykgMjAxMC0y MDE0IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiArICAgICMgQ29w eXJpZ2h0IMKpIDIwMThbLCAyMDIwXSBUaGUgVW5pdmVyc2l0eSBvZiBOZXcgSGFtcHNoaXJlLiBB bGwgcmlnaHRzDQo+IHJlc2VydmVkLg0KPiArICAgICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4g KyAgICAjDQo+ICsgICAgIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCj4gKyAgICAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KPiArICAgICMg YXJlIG1ldDoNCj4gKyAgICAjDQo+ICsgICAgIyAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCj4gKyAgICAjICAgICBub3Rp Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu DQo+ICsgICAgIyAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCj4gKyAgICAjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4NCj4gKyAgICAjICAg ICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg dGhlDQo+ICsgICAgIyAgICAgZGlzdHJpYnV0aW9uLg0KPiArICAgICMgICAqIE5laXRoZXIgdGhl IG5hbWUgb2YgSW50ZWwgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCj4gKyAgICAj ICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1 Y3RzIGRlcml2ZWQNCj4gKyAgICAjICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQo+ICsgICAgIw0KPiArICAgICMgVEhJUyBT T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EDQo+IENPTlRS SUJVVE9SUw0KPiArICAgICMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS QU5USUVTLCBJTkNMVURJTkcsIEJVVA0KPiBOT1QNCj4gKyAgICAjIExJTUlURUQgVE8sIFRIRSBJ TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORA0KPiBGSVRORVNTIEZPUg0K PiArICAgICMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U IFNIQUxMIFRIRQ0KPiBDT1BZUklHSFQNCj4gKyAgICAjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULA0KPiBJTkNJREVOVEFMLA0KPiArICAg ICMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO RywgQlVUDQo+IE5PVA0KPiArICAgICMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUw0KPiBPRiBVU0UsDQo+ICsgICAgIyBEQVRBLCBP UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORA0K PiBPTiBBTlkNCj4gKyAgICAjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SDQo+IFRPUlQNCj4gKyAgICAjIChJTkNMVURJTkcgTkVH TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YNCj4gVEhFIFVT RQ0KPiArICAgICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT SUJJTElUWSBPRiBTVUNIDQo+IERBTUFHRS4NCj4gKw0KPiArcnRlX2Zsb3cgVGVzdHMNCj4gKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gK1RoaXMgZG9jdW1lbnQg Y29udGFpbnMgdGhlIHRlc3QgcGxhbiBmb3IgdGhlIHJ0ZV9mbG93IEFQSS4NCj4gKw0KPiArUHJl cmVxdWlzaXRlcw0KPiArPT09PT09PT09PT09PQ0KPiArVGhlIERVVCBtdXN0IGhhdmUgb25lIDEw RyBFdGhlcm5ldCBwb3J0cyBjb25uZWN0ZWQgdG8gb25lIHBvcnQgb24NCj4gK1Rlc3RlciB0aGF0 IGFyZSBjb250cm9sbGVkIGJ5IHBhY2tldCBnZW5lcmF0b3I6Og0KPiArDQo+ICsgICAgZHV0X3Bv cnRfMCA8LS0tPiB0ZXN0ZXJfcG9ydF8wDQo+ICsNCj4gK0Fzc3VtZSB0aGUgRFVUIDEwRyBFdGhl cm5ldCBwb3J0cycgcGNpIGRldmljZSBpZCBpcyBhcyB0aGUgZm9sbG93aW5nOjoNCj4gKw0KPiAr ICAgIGR1dF9wb3J0XzAgOiAiMDAwMDowNTowMC4wIg0KPiArICAgIG1hY19hZGRyZXNzOiAiMDA6 MDA6MDA6MDA6MDE6MDAiDQo+ICsNCj4gK0JpbmQgdGhlIHBvcnQgdG8gZHBkayBpZ2JfdWlvIGRy aXZlcjo6DQo+ICsNCj4gKyAgICAuL3VzZXJ0b29scy9kcGRrLWRldmJpbmQucHkgLWIgaWdiX3Vp byAwNTowMC4wDQo+ICsNCj4gK1lvdSB3aWxsIGFsc28gbmVlZCB0byBoYXZlIFB5dGhvbiAzLjYg aW5zdGFsbGVkIGFsb25nIHdpdGggc2NhcHkgdG8gY3JlYXRlIHRlc3QNCj4gcGFja2V0cy4NCj4g Kw0KPiArUGF0dGVybiBJdGVtIGFuZCBQcm9wZXJ0eSBUZXN0cw0KPiArfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fg0KPiArV2UgY3JlYXRlIGEgZmxvdyBydWxlIGZvciBlYWNoIHByb3Bl cnR5IGluIGVhY2ggcGF0dGVybiBpdGVtLiBXZSB0aGVuIHNlbmQNCj4gb25lIHBhY2tldCB0aGF0 IGlzIGV4cGVjdGVkIHRvIHBhc3MsDQo+ICthbmQgYWJvdXQgZm91ciBwYWNrZXRzIHRoYXQgYXJl IGV4cGVjdGVkIHRvIGZhaWwuDQo+ICsNCj4gK1dlIG9ubHkgdGVzdCBvbmUgcGF0dGVybiBpdGVt IGFuZCBvbmUgcHJvcGVydHkgYXQgYSB0aW1lLg0KPiArDQo+ICtGbG93IHJ1bGVzIGFyZSBjcmVh dGVkIHVzaW5nICoqdGVzdHBtZCoqIGFuZCBwYWNrZXRzIGFyZSBjcmVhdGVkL3NlbnQgdXNpbmcN Cj4gKipzY2FweSoqLg0KPiArDQo+ICtOT1RFOiBTb21lIHBhdHRlcm4gaXRlbXMgYW5kIHByb3Bl cnRpZXMgY291bGQgbm90IGJlIHRlc3RlZA0KPiArZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGVzdHBt ZCBkb2VzIG5vdCBzdXBwb3J0IHRoZW0uIFNlZSAqKmRwZGstDQo+IGR0cy90ZXN0X3BsYW5zL3Vu c3VwcG9ydGVkLnJzdCoqDQo+ICtmb3IgYSBsaXN0aW5nIG9mIHRoZXNlIGl0ZW1zIGFuZCBwcm9w ZXJ0aWVzLg0KPiArDQo+ICtJdGVtOiBFVEgNCj4gK35+fn5+fn5+fg0KPiArDQo+ICsNCj4gK1Rl c3QgQ2FzZTogZHN0IChkZXN0aW5hdGlvbiBNQUMpIHJ1bGUNCj4gKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3Rp dmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiAr Mi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIEV0aGVybmV0IGRlc3RpbmF0aW9uIE1B QyBpcyBlcXVhbCB0bw0KPiA5MDo2MTphZTpmZDo0MTo0Mywgc2VuZCB0aGUgcGFja2V0IHRvIHF1 ZXVlIDEpOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBh dHRlcm4gZXRoIGRzdCBpcyA5MDo2MTphZTpmZDo0MTo0MyAvIGVuZCBhY3Rpb25zIHF1ZXVlDQo+ IGluZGV4IDEgLyBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0aGF0 IG1hdGNoZXMgdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0gRXRoZXIo ZHN0PSI5MDo2MTphZTpmZDo0MTo0MyIpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4g Kw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ ICs6Og0KPiArDQo+ICsgICAgICAgICAgIFBrdDEgPSBFdGhlcihkc3Q9XCI5MDo2MTphZTpmZDo0 MTo0NCIpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICAgICAgICAgUGt0MiA9IEV0aGVyKGRzdD1c IjkwOjYxOmFlOmZkOjQxOjQ1IikgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgICAgICAgICBQa3Qz ID0gRXRoZXIoZHN0PVwiOTA6NjE6YWU6ZmQ6NDE6NDYiKSAvICgnXFx4MDAnICogNjQpDQo+ICsg ICAgICAgICAgIFBrdDQgPSBFdGhlcihkc3Q9XCI5MTo2MTphZTpmZDo0MTo0MyIpIC8gKCdcXHgw MCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQg b25seSB0aGUgcGFzcyBwYWNrZXQgd2FzIHJlY2VpdmVkIGJ5IHF1ZXVlIDEuDQo+ICsNCj4gK1Rl c3QgQ2FzZTogc3JjIChzb3VyY2UgTUFDKSBydWxlDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3 aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAg ICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRo ZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIEV0aGVybmV0IHNvdXJjZSBNQUMgaXMgZXF1YWwgdG8N Cj4gOTA6NjE6YWU6ZmQ6NDE6NDMsIHNlbmQgdGhlIHBhY2tldCB0byBxdWV1ZSAxKQ0KPiArDQo+ ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIHNyYyBp cyA5MDo2MTphZTpmZDo0MTo0MyAvIGVuZCBhY3Rpb25zIHF1ZXVlDQo+IGluZGV4IDEgLyBlbmQN Cj4gKw0KPiArLi4NCj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1 bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0gRXRoZXIoZHN0PSI5MDo2MTphZTpm ZDo0MTo0MyIpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2VuZCBw YWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsg ICAgICAgICAgICBQa3QxID0gRXRoZXIoZHN0PVwiOTA6NjE6YWU6ZmQ6NDE6NDQiKSAvICgnXFx4 MDAnICogNjQpDQo+ICsgICAgICAgICAgICBQa3QyID0gRXRoZXIoZHN0PVwiOTA6NjE6YWU6ZmQ6 NDE6NDUiKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgICAgICAgICBQa3QzID0gRXRoZXIoZHN0 PVwiOTA6NjE6YWU6ZmQ6NDE6NDYiKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgICAgICAgICBQ a3Q0ID0gRXRoZXIoZHN0PVwiOTE6NjE6YWU6ZmQ6NDE6NDMiKSAvICgnXFx4MDAnICogNjQpDQo+ ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG9ubHkgdGhlIHBh c3MgcGFja2V0IHdhcyByZWNlaXZlZCBieSBxdWV1ZSAxLg0KPiArDQo+ICsNCj4gK1Rlc3QgQ2Fz ZTogdHlwZSAoRXRoZXJUeXBlIG9yIFRQSUQpIHJ1bGUNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGludGVyYWN0 aXZlIG1vZGUgd2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ICs6Og0K PiArDQo+ICsgICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ICsNCj4g KzIuIFNldCB0aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBFdGhlcm5ldCB0eXBlIGlzIDB4MDgw MCwgc2VuZCB0aGUgcGFja2V0IHRvDQo+IHF1ZXVlIDEpOg0KPiArDQo+ICs6Og0KPiArDQo+ICsg ICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIHR5cGUgaXMgMHgwODAwIC8gZW5k IGFjdGlvbnMgcXVldWUgaW5kZXggMSAvDQo+IGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBT ZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiAr ICAgICAgICAgICAgUGt0MCA9IEV0aGVyKHR5cGU9MHgwODAwKSAvICgnXFx4MDAnICogNjQpDQo+ ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUg cnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgICAgICAgICAgUGt0MSA9IEV0aGVyKHR5cGU9 MHgwODQyKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgICAgICAgICBQa3QyID0gRXRoZXIodHlw ZT0weDgxMDApIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICAgICAgICAgIFBrdDMgPSBFdGhlcih0 eXBlPTB4OTEwMCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgICAgICAgICAgUGt0NCA9IEV0aGVy KHR5cGU9MHg4ODYzKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgICAgICAgICBQa3Q1ID0gRXRo ZXIodHlwZT0weDkwMDApIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4g Q2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgb25seSB0aGUgcGFzcyBwYWNrZXQgd2FzIHJlY2VpdmVk IGJ5IHF1ZXVlIDEuDQo+ICsNCj4gK0l0ZW06IEdSRQ0KPiArfn5+fn5+fn5+DQo+ICsNCj4gK1Rl c3QgQ2FzZTogcHJvdG9jb2wgKHByb3RvY29sIHR5cGUpIHJ1bGUNCj4gKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGlu dGVyYWN0aXZlIG1vZGUgd2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ ICs6Og0KPiArDQo+ICsgICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ ICsNCj4gKzIuIFNldCB0aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBHUkUgcHJvdG9jb2wgaXMg ZXF1YWwgdG8gMHgwODAwLHNlbmQgdGhlIHBhY2tldA0KPiB0byBxdWV1ZSAxKSA6DQo+ICsNCj4g Kzo6DQo+ICsNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGdyZSBw cm90b2NvbCBpcyAweDA4MDAgLyBlbmQgYWN0aW9ucyBxdWV1ZQ0KPiBpbmRleCAxIC8gZW5kDQo+ ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxl Og0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgICAgICAgICBQa3QwID0gRXRoZXIoKSAvIEdSRShw cm90bz0weDA4MDApIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2Vu ZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ ICsgICAgICAgICAgICBQa3QxID0gRXRoZXIoKSAvIEdSRShwcm90bz0weDA4NDIpIC8gKCdcXHgw MCcgKiA2NCkNCj4gKyAgICAgICAgICAgIFBrdDIgPSBFdGhlcigpIC8gR1JFKHByb3RvPTB4ODEw MCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgICAgICAgICAgUGt0MyA9IEV0aGVyKCkgLyBHUkUo cHJvdG89MHgwODA2KSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgICAgICAgICBQa3Q0ID0gRXRo ZXIoKSAvIEdSRShwcm90bz0weDgwOUIpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4g Kw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgb25seSB0aGUgcGFzcyBwYWNrZXQgd2Fz IHJlY2VpdmVkIGJ5IHF1ZXVlIDEuDQo+ICsNCj4gKw0KPiArSXRlbTogSUNNUA0KPiArfn5+fn5+ fn5+fg0KPiArDQo+ICtUZXN0IENhc2U6IGljbXBfdHlwZSAoSUNNUCBtZXNzYWdlIHR5cGUpIHJ1 bGUNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g Kw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJv dW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1k IC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVs ZSAoSWYgdGhlIElDTVAgdHlwZSBpcyAzLCBzZW5kIHRoZSBwYWNrZXQgdG8gcXVldWUgMSkgOg0K PiArDQo+ICs6Og0KPiArDQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVy biBpY21wIHR5cGUgaXMgMyAvIGVuZCBhY3Rpb25zIHF1ZXVlIGluZGV4IDEgLyBlbmQNCj4gKw0K PiArLi4NCj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGU6DQo+ ICsNCj4gKzo6DQo+ICsNCj4gKyAgICAgICAgICAgIFBrdDAgPSBFdGhlcigpIC8gSUNNUCh0eXBl PTMpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRz IHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgICAg ICAgICBQa3QxID0gRXRoZXIoKSAvIElDTVAodHlwZT0zKSAvICgnXFx4MDAnICogNjQpDQo+ICsg ICAgICAgICAgICBQa3QyID0gRXRoZXIoKSAvIElDTVAodHlwZT0xMykgLyAoJ1xceDAwJyAqIDY0 KQ0KPiArICAgICAgICAgICAgUGt0MyA9IEV0aGVyKCkgLyBJQ01QKHR5cGU9MTEpIC8gKCdcXHgw MCcgKiA2NCkNCj4gKyAgICAgICAgICAgIFBrdDQgPSBFdGhlcigpIC8gSUNNUCh0eXBlPTEyKSAv ICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3Vy ZSB0aGF0IG9ubHkgdGhlIHBhc3MgcGFja2V0IHdhcyByZWNlaXZlZCBieSBxdWV1ZSAxLg0KPiAr DQo+ICsNCj4gK1Rlc3QgQ2FzZTogaWNtcF9jb2RlIChJQ01QIG1lc3NhZ2UgY29kZSkgcnVsZQ0K PiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0K PiArTk9URTogSUNNUCBjb2RlIG1lYW5pbmcgaXMgZGVwZW5kZW50IG9uIHR5cGUuDQo+ICtXZSB0 ZXN0ZWQgdHlwZSAzLCBjb2RlIDMuDQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGludGVyYWN0 aXZlIG1vZGUgd2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ICs6Og0K PiArDQo+ICsgICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ICsNCj4g KzIuIFNldCB0aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBJQ01QIHR5cGUgaXMgMyBhbmQgdGhl IElDTVAgY29kZSBpcyAzLCBzZW5kIHRoZQ0KPiBwYWNrZXQgdG8gcXVldWUgMSkgOg0KPiArDQo+ ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gaWNtcCB0eXBl IGlzIDMgY29kZSBpcyAzIC8gZW5kIGFjdGlvbnMgcXVldWUNCj4gaW5kZXggMSAvIGVuZA0KPiAr DQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZToN Cj4gKw0KPiArOjoNCj4gKw0KPiArIFBrdDAgPSBFdGhlcigpIC8gSUNNUCh0eXBlPTMsIGNvZGU9 MykgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMg dGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3Qx ID0gRXRoZXIoKSAvIElDTVAodHlwZT0zLCBjb2RlPTMpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAg ICBQa3QyID0gRXRoZXIoKSAvIElDTVAodHlwZT0zLCBjb2RlPTApIC8gKCdcXHgwMCcgKiA2NCkN Cj4gKyAgICBQa3QzID0gRXRoZXIoKSAvIElDTVAodHlwZT0xMSwgY29kZT0xKSAvICgnXFx4MDAn ICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkgLyBJQ01QKHR5cGU9MTIsIGNvZGU9MikgLyAo J1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUg dGhhdCBvbmx5IHRoZSBwYXNzIHBhY2tldCB3YXMgcmVjZWl2ZWQgYnkgcXVldWUgMS4NCj4gKw0K PiArDQo+ICtJdGVtOiBJUHY0DQo+ICt+fn5+fn5+fn5+fg0KPiArDQo+ICtUZXN0IENhc2U6IHRv cyAoVHlwZSBvZiBTZXJ2aWNlKSBydWxlDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGludGVyYWN0aXZlIG1vZGUg d2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsg ICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzIuIFNldCB0 aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBJUHY0IHR5cGUgb2Ygc2VydmljZSBpcyAwLCBzZW5k IHRoZSBwYWNrZXQgdG8NCj4gcXVldWUgMSkgOg0KPiArDQo+ICs6Og0KPiArDQo+ICsNCj4gKyAg ICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBpcHY0IHRvcyBpcyAwIC8gZW5kIGFjdGlv bnMgcXVldWUgaW5kZXggMSAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFj a2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAg PSBFdGhlcigpIC8gSVAodG9zPTApIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0K PiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6 Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUCh0b3M9MikgLyAoJ1xceDAwJyAqIDY0 KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAodG9zPTQpIC8gKCdcXHgwMCcgKiA2NCkNCj4g KyAgICBQa3QzID0gRXRoZXIoKSAvIElQKHRvcz04KSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAg UGt0NCA9IEV0aGVyKCkgLyBJUCh0b3M9MTYpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4N Cj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgb25seSB0aGUgcGFzcyBwYWNrZXQg d2FzIHJlY2VpdmVkIGJ5IHF1ZXVlIDEuDQo+ICsNCj4gKw0KPiArVGVzdCBDYXNlOiB0dGwgKHRp bWUgdG8gbGl2ZSkgcnVsZQ0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBv cnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rl c3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxv dyBydWxlIChJZiB0aGUgSVB2NCBwYWNrZXQncyB0aW1lIHRvIGxpdmUgaXMgNjQsIHNlbmQgdGhl IHBhY2tldA0KPiB0byBxdWV1ZSAxKSA6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKw0KPiArICAgZmxv dyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gaXB2NCB0dGwgaXMgNjQgLyBlbmQgYWN0aW9ucyBx dWV1ZSBpbmRleCAxIC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQg dGhhdCBtYXRjaGVzIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0 aGVyKCkgLyBJUCh0dGw9NjQpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiAr NC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6Og0K PiArDQo+ICsgICBQa3QxID0gRXRoZXIoKSAvIElQKHR0bD0xMjgpIC8gKCdcXHgwMCcgKiA2NCkN Cj4gKyAgIFBrdDIgPSBFdGhlcigpIC8gSVAodHRsPTI1NSkgLyAoJ1xceDAwJyAqIDY0KQ0KPiAr ICAgUGt0MyA9IEV0aGVyKCkgLyBJUCh0dGw9MzIpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgIFBr dDQgPSBFdGhlcigpIC8gSVAodHRsPTEwMCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0K PiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCBvbmx5IHRoZSBwYXNzIHBhY2tldCB3 YXMgcmVjZWl2ZWQgYnkgcXVldWUgMS4NCj4gKw0KPiArVGVzdCBDYXNlOiBwcm90byAoSVB2NCBw cm90b2NvbCkgcnVsZQ0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBv cnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rl c3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxv dyBydWxlIChJZiB0aGUgSVB2NCBwcm90b2NvbCBpcyAweDA2LCBzZW5kIHRoZSBwYWNrZXQgdG8g cXVldWUNCj4gMSkgOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgZmxvdyBjcmVhdGUgMCBpbmdyZXNz IHBhdHRlcm4gaXB2NCBwcm90byBpcyAweDA2IC8gZW5kIGFjdGlvbnMgcXVldWUgaW5kZXggMSAv DQo+IGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hl cyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8gSVAo cHJvdG89MHgwNikgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5k IHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4g KyAgIFBrdDEgPSBFdGhlcigpIC8gSVAocHJvdG89MHgwMSkgLyAoJ1xceDAwJyAqIDY0KQ0KPiAr ICAgUGt0MiA9IEV0aGVyKCkgLyBJUChwcm90bz0weDExKSAvICgnXFx4MDAnICogNjQpDQo+ICsg ICBQa3QzID0gRXRoZXIoKSAvIElQKHByb3RvPTB4MTIpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAg IFBrdDQgPSBFdGhlcigpIC8gSVAocHJvdG89MHg1OCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCBvbmx5IHRoZSBwYXNzIHBh Y2tldCB3YXMgcmVjZWl2ZWQgYnkgcXVldWUgMS4NCj4gKw0KPiArDQo+ICtUZXN0IENhc2U6IHNy YyAoSVB2NCBzb3VyY2UpIHJ1bGUNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25l IHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxk L3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3Qg ZmxvdyBydWxlIChJZiB0aGUgSVB2NCBzb3VyY2UgaXMgMTkyLjE2OC4wLjUsIHNlbmQgdGhlIHBh Y2tldCB0bw0KPiBxdWV1ZSAxKSA6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgIGZsb3cgY3JlYXRl IDAgaW5ncmVzcyBwYXR0ZXJuIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC41IC8gZW5kIGFjdGlvbnMg cXVldWUgaW5kZXgNCj4gMSAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFj a2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAg PSBFdGhlcigpIC8gSVAoc3JjPTE5Mi4xNjguMC41KSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4g Ky4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZToN Cj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoc3JjPTEwLjEwLjEw LjEwKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkgLyBJUChzcmM9MTMy LjE3Ny4xMjcuNikgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8gSVAo c3JjPTE5Mi4xNjguMC40KSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkg LyBJUChzcmM9MTkyLjE2OC4wLjI1MCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiAr DQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCBvbmx5IHRoZSBwYXNzIHBhY2tldCB3YXMg cmVjZWl2ZWQgYnkgcXVldWUgMS4NCj4gKw0KPiArVGVzdCBDYXNlOiBkc3QgKElQdjQgZGVzdGlu YXRpb24pIHJ1bGUNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBv cnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rl c3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxv dyBydWxlIChJZiB0aGUgSVB2NCBkZXN0aW5hdGlvbiBpcyAxOTIuMTY4LjAuNSwgc2VuZCB0aGUg cGFja2V0DQo+IHRvIHF1ZXVlIDEpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3Jl YXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGlwdjQgZHN0IGlzIDE5Mi4xNjguMC41IC8gZW5kIGFjdGlv bnMgcXVldWUNCj4gaW5kZXggMSAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEg cGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBr dDAgPSBFdGhlcigpIC8gSVAoc3JjPTE5Mi4xNjguMC41KSAvICgnXFx4MDAnICogNjQpDQo+ICsN Cj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVs ZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoZHN0PTEwLjEw LjEwLjEwKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkgLyBJUChkc3Q9 MTMyLjE3Ny4xMjcuNikgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8g SVAoZHN0PTE5Mi4xNjguMC40KSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVy KCkgLyBJUChkc3Q9MTkyLjE2OC4wLjI1MCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0K PiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCBvbmx5IHRoZSBwYXNzIHBhY2tldCB3 YXMgcmVjZWl2ZWQgYnkgcXVldWUgMS4NCj4gKw0KPiArDQo+ICtJdGVtOiBJUHY2DQo+ICt+fn5+ fn5+fn5+fg0KPiArDQo+ICtUZXN0IENhc2U6IHRjIChUcmFmZmljIENsYXNzKSBydWxlDQo+ICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzEuIFJ1biB0ZXN0cG1kIGlu IGludGVyYWN0aXZlIG1vZGUgd2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiAr DQo+ICs6Og0KPiArDQo+ICsgICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4u DQo+ICsNCj4gKzIuIFNldCB0aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBJUHY2IHRyYWZmaWMg Y2xhc3MgaXMgMCwgc2VuZCB0aGUgcGFja2V0IHRvIHF1ZXVlDQo+IDEpIDoNCj4gKw0KPiArOjoN Cj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGlwdjYgdGMgaXMgMCAv IGVuZCBhY3Rpb25zIHF1ZXVlIGluZGV4IDEgLyBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4g U2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4g KyAgICBQa3QwID0gRXRoZXIoKSAvIElQdjYodGM9MCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6 DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRoZXIoKSAvIElQdjYodGM9MSkgLyAo J1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVB2Nih0Yz0yKSAvICgnXFx4 MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVyKCkgLyBJUHY2KHRjPTQpIC8gKCdcXHgwMCcg KiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQdjYodGM9NikgLyAoJ1xceDAwJyAqIDY0 KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCBvbmx5IHRo ZSBwYXNzIHBhY2tldCB3YXMgcmVjZWl2ZWQgYnkgcXVldWUgMS4NCj4gKw0KPiArDQo+ICtUZXN0 IENhc2U6IGZsb3cgKEZsb3cgQ29kZSkgcnVsZQ0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRo IG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBi dWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0 ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjYgZmxvdyBjb2RlIGlzIDB4QUJDRCwgc2VuZCB0aGUg cGFja2V0IHRvDQo+IHF1ZXVlIDEpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3Jl YXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGlwdjYgZmxvdyBpcyAweEFCQ0QgLyBlbmQgYWN0aW9ucyBx dWV1ZSBpbmRleCAxDQo+IC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNr ZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9 IEV0aGVyKCkgLyBJUHY2KGZsPTB4QUJDRCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0K PiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsN Cj4gKzo6DQo+ICsNCj4gKyAgIFBrdDEgPSBFdGhlcigpIC8gSVB2NihmbD0weEFCQ0UpIC8gKCdc XHgwMCcgKiA2NCkNCj4gKyAgIFBrdDIgPSBFdGhlcigpIC8gSVB2NihmbD0weDAwMDEpIC8gKCdc XHgwMCcgKiA2NCkNCj4gKyAgIFBrdDMgPSBFdGhlcigpIC8gSVB2NihmbD0weEZGRkYpIC8gKCdc XHgwMCcgKiA2NCkNCj4gKyAgIFBrdDQgPSBFdGhlcigpIC8gSVB2NihmbD0weDEyMzQpIC8gKCdc XHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRo YXQgb25seSB0aGUgcGFzcyBwYWNrZXQgd2FzIHJlY2VpdmVkIGJ5IHF1ZXVlIDEuDQo+ICsNCj4g Kw0KPiArVGVzdCBDYXNlOiBwcm90byAoSVB2NiBwcm90b2NvbC9uZXh0IGhlYWRlciBwcm90b2Nv bCkgcnVsZQ0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUg bW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsN Cj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4g U2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjYgcHJvdG9jb2wgaXMgMHgwNiwgc2Vu ZCB0aGUgcGFja2V0IHRvIHF1ZXVlDQo+IDEpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZs b3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGlwdjYgcHJvdG8gaXMgMHgwNiAvIGVuZCBhY3Rp b25zIHF1ZXVlIGluZGV4IDEgLw0KPiBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4gU2VuZCBh IHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQ a3QwID0gRXRoZXIoKSAvIElQdjYobmg9NikgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0K PiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsN Cj4gKzo6DQo+ICsNCj4gKyAgIFBrdDEgPSBFdGhlcigpIC8gSVB2NihuaD0xNykgLyAoJ1xceDAw JyAqIDY0KQ0KPiArICAgUGt0MiA9IEV0aGVyKCkgLyBJUHY2KG5oPTQxKSAvICgnXFx4MDAnICog NjQpDQo+ICsgICBQa3QzID0gRXRoZXIoKSAvIElQdjYobmg9MCkgLyAoJ1xceDAwJyAqIDY0KQ0K PiArICAgUGt0NCA9IEV0aGVyKCkgLyBJUHY2KG5oPTYwKSAvICgnXFx4MDAnICogNjQpDQo+ICsN Cj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG9ubHkgdGhlIHBhc3Mg cGFja2V0IHdhcyByZWNlaXZlZCBieSBxdWV1ZSAxLg0KPiArDQo+ICsNCj4gK1Rlc3QgQ2FzZTog aG9wIChIb3AgTGltaXQpIHJ1bGUNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBv cnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rl c3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxv dyBydWxlIChJZiB0aGUgSVB2NiBob3AgbGltaXQgaXMgNjQsIHNlbmQgdGhlIHBhY2tldCB0byBx dWV1ZSAxKSA6DQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRl cm4gaXB2NiBob3AgaXMgNjQgLyBlbmQgYWN0aW9ucyBxdWV1ZSBpbmRleCAxIC8gZW5kDQo+ICsN Cj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlOg0K PiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUHY2KGhsaW09NjQpIC8g KCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQg ZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICBQa3QxID0gRXRo ZXIoKSAvIElQdjYoaGxpbT0xMjgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgIFBrdDIgPSBFdGhl cigpIC8gSVB2NihobGltPTMyKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICBQa3QzID0gRXRoZXIo KSAvIElQdjYoaGxpbT0yNTUpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgIFBrdDQgPSBFdGhlcigp IC8gSVB2NihobGltPTEwMCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1 LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCBvbmx5IHRoZSBwYXNzIHBhY2tldCB3YXMgcmVjZWl2 ZWQgYnkgcXVldWUgMS4NCj4gKw0KPiArVGVzdCBDYXNlOiBkc3QgKElQdjYgZGVzdGluYXRpb24p IHJ1bGUNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQg YW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMg MyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJ ZiB0aGUgSVB2NiBkZXN0aW5hdGlvbiBpcyAyMDAxOi4uLjpiMWMyLCBzZW5kIHRoZSBwYWNrZXQN Cj4gdG8gcXVldWUgMSkgOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICBmbG93IGNyZWF0ZSAwIGlu Z3Jlc3MgcGF0dGVybiBpcHY2IGRzdCBpcw0KPiAyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2Ex YzphOTVhOmIxYzIgLyBlbmQgYWN0aW9ucyBxdWV1ZSBpbmRleCAxIC8gZW5kDQo+ICsNCj4gKy4u DQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlOg0KPiArDQo+ ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUHY2KGRzdD1cIjIwMDE6MDAwMDo5 ZDM4OjZhYjg6MWM0ODozYTFjOmE5NWE6YjFjMlwiKSAvDQo+ICgnXFx4MDAnICogNjQpDQo+ICsN Cj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVs ZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVB2Nihkc3Q9XCIy MDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzNcIikgLw0KPiAoJ1xceDAwJyAq IDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVB2Nihkc3Q9XCIyMDAxOjAwMDA6OWQzODo2 YWI4OjFjNDg6M2ExYzphOTVhOmIxYzRcIikgLw0KPiAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBr dDMgPSBFdGhlcigpIC8gSVB2Nihkc3Q9XCIyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzph OTVhOmIxYzVcIikgLw0KPiAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8g SVB2Nihkc3Q9XCIyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzZcIikgLw0K PiAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1 cmUgdGhhdCBvbmx5IHRoZSBwYXNzIHBhY2tldCB3YXMgcmVjZWl2ZWQgYnkgcXVldWUgMS4NCj4g Kw0KPiArVGVzdCBDYXNlOiBzcmMgKElQdjYgc291cmNlKSBydWxlDQo+ICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFj dGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoN Cj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2NiBkZXN0aW5hdGlvbiBpcyAy MDAxOi4uLmIxYzIsIHNlbmQgdGhlIHBhY2tldA0KPiB0byBxdWV1ZSAxKSA6DQo+ICsNCj4gKzo6 DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBpcHY2IHNyYyBpcw0K PiAyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzIgLyBlbmQgYWN0aW9ucyBx dWV1ZSBpbmRleCAxIC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQg dGhhdCBtYXRjaGVzIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0 aGVyKCkgLyBJUHY2KHNyYz1cIjIwMDE6MDAwMDo5ZDM4OjZhYjg6MWM0ODozYTFjOmE5NWE6YjFj MlwiKSAvDQo+ICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFj a2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAg IFBrdDEgPSBFdGhlcigpIC8gSVB2NihzcmM9XCIyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2Ex YzphOTVhOmIxYzNcIikgLw0KPiAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigp IC8gSVB2NihzcmM9XCIyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzRcIikg Lw0KPiAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8gSVB2NihzcmM9XCIy MDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzVcIikgLw0KPiAoJ1xceDAwJyAq IDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8gSVB2NihzcmM9XCIyMDAxOjAwMDA6OWQzODo2 YWI4OjFjNDg6M2ExYzphOTVhOmIxYzZcIikgLw0KPiAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsu Lg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCBvbmx5IHRoZSBwYXNzIHBhY2tl dCB3YXMgcmVjZWl2ZWQgYnkgcXVldWUgMS4NCj4gKw0KPiArDQo+ICtJdGVtOiBTQ1RQDQo+ICt+ fn5+fn5+fn5+fg0KPiArDQo+ICtUZXN0IENhc2U6IHNyYyAoc291cmNlIHBvcnQpIHJ1bGUNCj4g Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRl c3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFi bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4g Kw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIFNDVFAg c291cmNlIHBvcnQgaXMgMzgzOCwgc2VuZCB0aGUgcGFja2V0IHRvDQo+IHF1ZXVlIDEpIDoNCj4g Kw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIHNjdHAg c3JjIGlzIDM4MzggLyBlbmQgYWN0aW9ucyBxdWV1ZSBpbmRleCAxIC8NCj4gZW5kDQo+ICsNCj4g Ky4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlOg0KPiAr DQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUCgpIC8gU0NUUChzcG9ydD0z ODM4KSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0 cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBr dDEgPSBFdGhlcigpIC8gSVAoKSAvIFNDVFAoc3BvcnQ9MzkzOSkgLyAoJ1xceDAwJyAqIDY0KQ0K PiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAoKSAvIFNDVFAoc3BvcnQ9NTAwMCkgLyAoJ1xceDAw JyAqIDY0KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8gSVAoKSAvIFNDVFAoc3BvcnQ9MTk5OCkg LyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8gSVAoKSAvIFNDVFAoc3Bv cnQ9MTAyOCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICtUZXN0IENhc2U6 IGRzdCAoZGVzdGluYXRpb24gcG9ydCkgcnVsZQ0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUg bW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsN Cj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4g U2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIFNDVFAgZGVzdGluYXRpb24gcG9ydCBpcyAz ODM4LCBzZW5kIHRoZSBwYWNrZXQgdG8NCj4gcXVldWUgMSkgOg0KPiArDQo+ICs6Og0KPiArDQo+ ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gc2N0cCBkc3QgaXMgMzgzOCAvIGVu ZCBhY3Rpb25zIHF1ZXVlIGluZGV4IDEgLw0KPiBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4g U2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4g KyAgICBQa3QwID0gRXRoZXIoKSAvIElQKCkgLyBTQ1RQKGRwb3J0PTM4MzgpIC8gKCdcXHgwMCcg KiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1h dGNoIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJ UCgpIC8gU0NUUChkcG9ydD0zOTM5KSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0 aGVyKCkgLyBJUCgpIC8gU0NUUChkcG9ydD01MDAwKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAg UGt0MyA9IEV0aGVyKCkgLyBJUCgpIC8gU0NUUChkcG9ydD0xOTk4KSAvICgnXFx4MDAnICogNjQp DQo+ICsgICAgUGt0NCA9IEV0aGVyKCkgLyBJUCgpIC8gU0NUUChkcG9ydD0xMDI4KSAvICgnXFx4 MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0 IG9ubHkgdGhlIHBhc3MgcGFja2V0IHdhcyByZWNlaXZlZCBieSBxdWV1ZSAxLg0KPiArDQo+ICtU ZXN0IENhc2U6IHRhZyAoU0NUUCBoZWFkZXIgdGFnKSBydWxlDQo+ICstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFj dGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoN Cj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgU0NUUCB0YWcgaXMgZXF1YWwgdG8g MTIzNDUsIHNlbmQgdGhlIHBhY2tldCB0bw0KPiBxdWV1ZSAxKSA6DQo+ICsNCj4gKzo6DQo+ICsN Cj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBzY3RwIHRhZyBpcyAxMjM0NSAv IGVuZCBhY3Rpb25zIHF1ZXVlIGluZGV4IDEgLw0KPiBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiAr My4gU2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsN Cj4gKyAgICBQa3QwID0gRXRoZXIoKSAvIElQKCkgLyBTQ1RQKHRhZz0xMjM0NSkgLyAoJ1xceDAw JyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3Qg bWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgIFBrdDEgPSBFdGhlcigpIC8g SVAoKSAvIFNDVFAodGFnPTEyMzQ2KSAvICgnXFx4MDAnICogNjQpDQo+ICsgICBQa3QyID0gRXRo ZXIoKSAvIElQKCkgLyBTQ1RQKHRhZz0xMikgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgUGt0MyA9 IEV0aGVyKCkgLyBJUCgpIC8gU0NUUCh0YWc9OTk5OSkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAg UGt0NCA9IEV0aGVyKCkgLyBJUCgpIC8gU0NUUCh0YWc9NDIpIC8gKCdcXHgwMCcgKiA2NCkNCj4g Kw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgb25seSB0aGUgcGFz cyBwYWNrZXQgd2FzIHJlY2VpdmVkIGJ5IHF1ZXVlIDEuDQo+ICsNCj4gKw0KPiArVGVzdCBDYXNl OiBja3N1bSAoU0NUUCBoZWFkZXIgY2hlY2tzdW0pIHJ1bGUNCj4gKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGlu IGludGVyYWN0aXZlIG1vZGUgd2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiAr DQo+ICs6Og0KPiArDQo+ICsgICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4u DQo+ICsNCj4gKzIuIFNldCB0aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBTQ1RQIGNoZWNrc3Vt IGlzIGVxdWFsIHRvIDB4MTUzNWI2Nywgc2VuZCB0aGUNCj4gcGFja2V0IHRvIHF1ZXVlIDEpIDoN Cj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIHNj dHAgY2tzdW0gaXMgMHgwMTUzNWI2NyAvIGVuZCBhY3Rpb25zIHF1ZXVlDQo+IGluZGV4IDEgLyBl bmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhl IHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0gRXRoZXIoKSAvIElQKCkgLyBT Q1RQKGNoa3N1bT0weDAxNTM1YjY3KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tl dHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgIFBr dDEgPSBFdGhlcigpIC8gSVAoKSAvIFNDVFAoY2hrc3VtPTB4MDE1MzViNjgpDQo+ICsgICBQa3Qy ID0gRXRoZXIoKSAvIElQKCkgLyBTQ1RQKGNoa3N1bT0weGRlYWRiZWVmKQ0KPiArICAgUGt0MyA9 IEV0aGVyKCkgLyBJUCgpIC8gU0NUUChjaGtzdW09MHgxMjM0NTY3OCkNCj4gKyAgIFBrdDQgPSBF dGhlcigpIC8gSVAoKSAvIFNDVFAoY2hrc3VtPTB4Mzg1MDMwZmUpDQo+ICsNCj4gKy4uDQo+ICsN Cj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG9ubHkgdGhlIHBhc3MgcGFja2V0IHdhcyBy ZWNlaXZlZCBieSBxdWV1ZSAxLg0KPiArDQo+ICtJdGVtOiBUQ1ANCj4gK35+fn5+fn5+fn5+DQo+ ICsNCj4gK1Rlc3QgQ2FzZTogc3JjIChzb3VyY2UgcG9ydCkgcnVsZQ0KPiArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50 ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4g Kzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4g Kw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIFRDUCBzb3VyY2UgcG9ydCBp cyBlcXVhbCB0byAzODM4LCBzZW5kIHRoZQ0KPiBwYWNrZXQgdG8gcXVldWUgMSkgOg0KPiArDQo+ ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gdGNwIHNyYyBp cyAzODM4IC8gZW5kIGFjdGlvbnMgcXVldWUgaW5kZXggMSAvIGVuZA0KPiArDQo+ICsuLg0KPiAr DQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoN Cj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8gSVAoKSAvIFRDUChzcG9ydD0zODM4KSAvICgn XFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRv IG5vdCBtYXRjaCB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhl cigpIC8gSVAoKSAvIFRDUChzcG9ydD0zOTM5KSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0 MiA9IEV0aGVyKCkgLyBJUCgpIC8gVENQKHNwb3J0PTUwMDApIC8gKCdcXHgwMCcgKiA2NCkNCj4g KyAgICBQa3QzID0gRXRoZXIoKSAvIElQKCkgLyBUQ1Aoc3BvcnQ9MTk5OCkgLyAoJ1xceDAwJyAq IDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8gSVAoKSAvIFRDUChzcG9ydD0xMDI4KSAvICgn XFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0 aGF0IG9ubHkgdGhlIHBhc3MgcGFja2V0IHdhcyByZWNlaXZlZCBieSBxdWV1ZSAxLg0KPiArDQo+ ICsNCj4gK1Rlc3QgQ2FzZTogZHN0IChkZXN0aW5hdGlvbiBwb3J0KSBydWxlDQo+ICstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBt ZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToN Cj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgVENQIGRlc3Rp bmF0aW9uIHBvcnQgaXMgZXF1YWwgdG8gMzgzOCwgc2VuZCB0aGUNCj4gcGFja2V0IHRvIHF1ZXVl IDEpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0 ZXJuIHRjcCBkc3QgaXMgMzgzOCAvIGVuZCBhY3Rpb25zIHF1ZXVlIGluZGV4IDEgLw0KPiBlbmQN Cj4gKw0KPiArLi4NCj4gKw0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0 aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8gSVAoKSAv IFRDUChkcG9ydD0zODM4KSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQu IFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4g Kw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoKSAvIFRDUChkcG9ydD0zOTM5KSAvICgnXFx4 MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkgLyBJUCgpIC8gVENQKGRwb3J0PTUwMDAp IC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QzID0gRXRoZXIoKSAvIElQKCkgLyBUQ1AoZHBv cnQ9MTk5OCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8gSVAoKSAv IFRDUChkcG9ydD0xMDI4KSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUu IENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG9ubHkgdGhlIHBhc3MgcGFja2V0IHdhcyByZWNlaXZl ZCBieSBxdWV1ZSAxLg0KPiArDQo+ICtUZXN0IENhc2U6IGZsYWdzIChUQ1AgZmxhZ3MpIHJ1bGUN Cj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0 ZXN0cG1kIGluIGludGVyYWN0aXZlIG1vZGUgd2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxh YmxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ ICsNCj4gKy4uDQo+ICsNCj4gKzIuIFNldCB0aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBUQ1Ag ZmxhZ3MgYXJlIGVxdWFsIHRvIDB4MDIsIHNlbmQgdGhlIHBhY2tldCB0bw0KPiBxdWV1ZSAxKSA6 DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiB0 Y3AgZmxhZ3MgaXMgMHgwMiAvIGVuZCBhY3Rpb25zIHF1ZXVlIGluZGV4IDEgLw0KPiBlbmQNCj4g Kw0KPiArLi4NCj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGU6 DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0gRXRoZXIoKSAvIElQKCkgLyBUQ1AoZmxh Z3M9MHgwMikgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBh Y2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAg ICBQa3QxID0gRXRoZXIoKSAvIElQKCkgLyBUQ1AoZmxhZ3M9MHgwMSkgLyAoJ1xceDAwJyAqIDY0 KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAoKSAvIFRDUChmbGFncz0weDA0KSAvICgnXFx4 MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVyKCkgLyBJUCgpIC8gVENQKGZsYWdzPTB4MDgp IC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQKCkgLyBUQ1AoZmxh Z3M9MHgxMCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0 byBtYWtlIHN1cmUgdGhhdCBvbmx5IHRoZSBwYXNzIHBhY2tldCB3YXMgcmVjZWl2ZWQgYnkgcXVl dWUgMS4NCj4gKw0KPiArSXRlbTogVURQDQo+ICt+fn5+fn5+fn5+fg0KPiArDQo+ICtUZXN0IENh c2U6IHNyYyAoc291cmNlIHBvcnQpIHJ1bGUNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3 aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAg ICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRo ZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIFVEUCBzb3VyY2UgcG9ydCBpcyBlcXVhbCB0byAzODM4 LCBzZW5kIHRoZQ0KPiBwYWNrZXQgdG8gcXVldWUgMSkgOg0KPiArDQo+ICs6Og0KPiArDQo+ICsg ICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gdWRwIHNyYyBpcyAzODM4IC8gZW5kIGFj dGlvbnMgcXVldWUgaW5kZXggMSAvDQo+IGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5k IGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKyAgICBQa3Qw ID0gRXRoZXIoKSAvIElQKCkgLyBVRFAoc3BvcnQ9MzgzOCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiAr DQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1 bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRoZXIoKSAvIElQKCkgLyBVRFAo c3BvcnQ9MzkzOSkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAo KSAvIFVEUChzcG9ydD01MDAwKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVy KCkgLyBJUCgpIC8gVURQKHNwb3J0PTE5OTgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Q0 ID0gRXRoZXIoKSAvIElQKCkgLyBVRFAoc3BvcnQ9MTAyOCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiAr DQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCBvbmx5IHRoZSBwYXNz IHBhY2tldCB3YXMgcmVjZWl2ZWQgYnkgcXVldWUgMS4NCj4gKw0KPiArDQo+ICtUZXN0IENhc2U6 IGRzdCAoZGVzdGluYXRpb24gcG9ydCkgcnVsZQ0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUg bW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsN Cj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4g U2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIFVEUCBkZXN0aW5hdGlvbiBwb3J0IGlzIGVx dWFsIHRvIDM4MzgsIHNlbmQgdGhlDQo+IHBhY2tldCB0byBxdWV1ZSAxKSA6DQo+ICsNCj4gKzo6 DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiB1ZHAgZHN0IGlzIDM4 MzggLyBlbmQgYWN0aW9ucyBxdWV1ZSBpbmRleCAxIC8NCj4gZW5kDQo+ICsNCj4gKy4uDQo+ICsN Cj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlOg0KPiArDQo+ICs6Og0K PiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUCgpIC8gVURQKGRwb3J0PTM4MzgpIC8gKCdc XHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8g bm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVy KCkgLyBJUCgpIC8gVURQKGRwb3J0PTM5MzkpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Qy ID0gRXRoZXIoKSAvIElQKCkgLyBVRFAoZHBvcnQ9NTAwMCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiAr ICAgIFBrdDMgPSBFdGhlcigpIC8gSVAoKSAvIFVEUChkcG9ydD0xOTk4KSAvICgnXFx4MDAnICog NjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkgLyBJUCgpIC8gVURQKGRwb3J0PTEwMjgpIC8gKCdc XHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRo YXQgb25seSB0aGUgcGFzcyBwYWNrZXQgd2FzIHJlY2VpdmVkIGJ5IHF1ZXVlIDEuDQo+ICsNCj4g K0l0ZW06IFZMQU4NCj4gK35+fn5+fn5+fn5+DQo+ICsNCj4gK1Rlc3QgQ2FzZTogdGNpIChUYWcg Q29udHJvbCBJbmZvcm1hdGlvbikgcnVsZQ0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArTk9URTogVGhlIFZMQU4gdGNpIGlzIHRoZSBj b21iaW5hdGlvbiBvZiB0aGUgZmllbGRzIHBjcCwgZGVpLCBhbmQgdmlkLg0KPiArV2UgdGVzdCB0 aGVtIGFsdG9nZXRoZXIgYXMgdGhlIHRjaSBhbmQgd2UgdGVzdCBlYWNoIGZpZWxkIGluZGl2aWR1 YWxseS4NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9u ZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWls ZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0 IGZsb3cgcnVsZSAoSWYgdGhlIHZsYW4gdGFnIGNvbnRyb2wgaW5mb3JtYXRpb24gdmFsdWUgaXMg MHhhYWFhLA0KPiBzZW5kIHRoZSBwYWNrZXQgdG8gcXVldWUgMSkgOg0KPiArDQo+ICs6Og0KPiAr DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiB2bGFuIHRjaSBpcyAw eGFhYWEgLyBlbmQgYWN0aW9ucyBxdWV1ZSBpbmRleCAxIC8NCj4gZW5kDQo+ICsNCj4gKy4uDQo+ ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlOg0KPiArDQo+ICs6 Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4 MCwgdmxhbiA9IDB4YWFhKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQu IFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4g Kw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4MCwgaWQgPSAweDAsIHZs YW4gPSAweGJiYikgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gRG90 MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4gPSAweGNjYykgLyAoJ1xceDAwJyAqIDY0KQ0K PiArICAgIFBrdDMgPSBFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDEsIHZsYW4g PSAweGFhYSkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8gRG90MVEo cHJpbyA9IDB4NCwgaWQgPSAweDAsIHZsYW4gPSAweGFhYSkgLyAoJ1xceDAwJyAqIDY0KQ0KPiAr DQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCBvbmx5IHRoZSBwYXNz IHBhY2tldCB3YXMgcmVjZWl2ZWQgYnkgcXVldWUgMS4NCj4gKw0KPiArDQo+ICtUZXN0IENhc2U6 IHBjcCAoUHJpb3JpdHkgQ29kZSBQb2ludCkgcnVsZQ0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJh Y3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6 DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0K PiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIFZMQU4gcHJpb3JpdHkgY29kZSBw b2ludCBpcyBlcXVhbCB0byAweDAsIHNlbmQNCj4gdGhlIHBhY2tldCB0byBxdWV1ZSAxKSA6DQo+ ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiB2bGFu IHBjcCBpcyAweDAgLyBlbmQgYWN0aW9ucyBxdWV1ZSBpbmRleCAxIC8NCj4gZW5kDQo+ICsNCj4g Ky4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlOg0KPiAr DQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBEb3QxUShwcmlvPTB4MCkgLyAo J1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBk byBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRo ZXIoKSAvIERvdDFRKHByaW89MHgxKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0 aGVyKCkgLyBEb3QxUShwcmlvPTB4MikgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDMgPSBF dGhlcigpIC8gRG90MVEocHJpbz0weDMpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0g RXRoZXIoKSAvIERvdDFRKHByaW89MHg3KSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ ICsNCj4gK1Rlc3QgQ2FzZTogZGVpIChEcm9wIEVsaWdpYmxlIEluZGljYXRvcikgcnVsZQ0KPiAr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK05PVEU6 IFRoZSBvbmx5IHR3byBwb3NzaWJsZSB2YWx1ZXMgZm9yIGRlaSBhcmUgMCBhbmQgMS4NCj4gKw0K PiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5k IGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1j IDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAo SWYgdGhlIFZMQU4gZHJvcCBlbGlnaWJsZSBpbmRpY2F0b3IgaXMgZXF1YWwgdG8gMCwgc2VuZA0K PiB0aGUgcGFja2V0IHRvIHF1ZXVlIDEpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cg Y3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIHZsYW4gZGVpIGlzIDAgLyBlbmQgYWN0aW9ucyBxdWV1 ZSBpbmRleCAxIC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhh dCBtYXRjaGVzIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVy KCkgLyBEb3QxUShpZD0wKSkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0 LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ ICsNCj4gKyAgICBQa3QxID0gRXRoZXIoKSAvIERvdDFRKGlkPTEpIC8gKCdcXHgwMCcgKiA2NCkN Cj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgb25seSB0aGUg cGFzcyBwYWNrZXQgd2FzIHJlY2VpdmVkIGJ5IHF1ZXVlIDEuDQo+ICsNCj4gK1Rlc3QgQ2FzZTog dmlkIChWTEFOIGlkZW50aWZpZXIpIHJ1bGUNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGludGVyYWN0aXZlIG1v ZGUgd2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ICs6Og0KPiArDQo+ ICsgICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzIuIFNl dCB0aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBWTEFOIGlkZW50aWZpZXIgaXMgZXF1YWwgdG8g MHhhYmMsIHNlbmQgdGhlDQo+IHBhY2tldCB0byBxdWV1ZSAxKSA6DQo+ICsNCj4gKzo6DQo+ICsN Cj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiB2bGFuIHZpZCBpcyAweGFiYyAv IGVuZCBhY3Rpb25zIHF1ZXVlIGluZGV4IDEgLw0KPiBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiAr My4gU2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsN Cj4gKyAgICBQa3QwID0gRXRoZXIoKSAvIERvdDFRKHZsYW49MHhhYmMpIC8gKCdcXHgwMCcgKiA2 NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNo IHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBEb3Qx USh2bGFuPTB4YWFhKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkgLyBE b3QxUSh2bGFuPTB4MTIzKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVyKCkg LyBEb3QxUSh2bGFuPTB4MWY1KSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVy KCkgLyBEb3QxUSh2bGFuPTB4OTk5KSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsN Cj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG9ubHkgdGhlIHBhc3MgcGFja2V0IHdhcyBy ZWNlaXZlZCBieSBxdWV1ZSAxLg0KPiArDQo+ICsNCj4gK1Rlc3QgQ2FzZTogdHBpZCAoVGFnIFBy b3RvY29sIElkZW50aWZpZXIpIHJ1bGUNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGludGVyYWN0 aXZlIG1vZGUgd2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ICs6Og0K PiArDQo+ICsgICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ICsNCj4g KzIuIFNldCB0aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBWTEFOIHRhZyBwcm90b2NvbCBpZGVu dGlmaWVyIGlzIGVxdWFsIHRvIDB4ODEwMCwNCj4gc2VuZCB0aGUgcGFja2V0IHRvIHF1ZXVlIDEp IDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJu IHZsYW4gdHBpZCBpcyAweDgxMDAgLyBlbmQgYWN0aW9ucyBxdWV1ZSBpbmRleCAxIC8NCj4gZW5k DQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBy dWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBEb3QxUSh0eXBl PTB4ODEwMCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBh Y2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAg ICBQa3QxID0gRXRoZXIoKSAvIERvdDFRKHR5cGU9MHgwODAwKSAvICgnXFx4MDAnICogNjQpDQo+ ICsgICAgUGt0MiA9IEV0aGVyKCkgLyBEb3QxUSh0eXBlPTB4MDg0MikgLyAoJ1xceDAwJyAqIDY0 KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8gRG90MVEodHlwZT0weDgwOWIpIC8gKCdcXHgwMCcg KiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIERvdDFRKHR5cGU9MHg4NmRkKSAvICgnXFx4 MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0 IG9ubHkgdGhlIHBhc3MgcGFja2V0IHdhcyByZWNlaXZlZCBieSBxdWV1ZSAxLg0KPiArDQo+ICsN Cj4gK0l0ZW06IFZYTEFODQo+ICt+fn5+fn5+fn5+fg0KPiArDQo+ICtUZXN0IENhc2U6IHZuaSAo VlhMQU4gbmV0d29yayBpZGVudGlmaWVyKSBydWxlDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50 ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4g Kzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4g Kw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIFZYTEFOIG5ldHdvcmsgaWRl bnRpZmllciBpcyBlcXVhbCB0byAweDExMjIzMywNCj4gc2VuZCB0aGUgcGFja2V0IHRvIHF1ZXVl IDEpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0 ZXJuIHZ4bGFuIHZuaSBpcyAweDExMjIzMyAvIGVuZCBhY3Rpb25zIHF1ZXVlIGluZGV4DQo+IDEg LyBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMg dGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0gRXRoZXIoKSAvIElQKCkg LyBWWExBTih2bmk9MHgxMTIyMzMpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0K PiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6 Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUCgpIC8gVlhMQU4odm5pPTB4MTEyMjM0 KSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkgLyBJUCgpIC8gVlhMQU4o dm5pPTB4MTIzNDU2KSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVyKCkgLyBJ UCgpIC8gVlhMQU4odm5pPTB4YWFiYmNjKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0NCA9 IEV0aGVyKCkgLyBJUCgpIC8gVlhMQU4odm5pPTB4OTk5OTk5KSAvICgnXFx4MDAnICogNjQpDQo+ ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG9ubHkgdGhlIHBh c3MgcGFja2V0IHdhcyByZWNlaXZlZCBieSBxdWV1ZSAxLg0KPiArDQo+ICtBY3Rpb24gSXRlbSBU ZXN0cw0KPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0KPiArV2UgY3JlYXRlIGEg c2ltcGxlIGZsb3cgcnVsZSB0aGF0IGZpbHRlcnMgcGFja2V0cyBieSBtYXRjaGluZyBJUHY0IGFk ZHJlc3MNCj4gKG1vcmUgcnVsZXMgYXJlIHNvbWV0aW1lcyBhcHBsaWVkDQo+ICtkZXBlbmRpbmcg b24gdGhlIGFjdGlvbiBiZWluZyB0ZXN0ZWQpLiBXZSB0aGVuIHNlbmQgb25lIHBhY2tldCB0aGF0 IGlzDQo+IGV4cGVjdGVkIHRvIHBhc3MsDQo+ICthbmQgYWJvdXQgZm91ciBwYWNrZXRzIHRoYXQg YXJlIGV4cGVjdGVkIHRvIGZhaWwuIFdlIGNoZWNrIGlmIHRoZSBwYWNrZXQgdGhhdCBpcw0KPiBl eHBlY3RlZCB0byBwYXNzDQo+ICtoYXMgdGhlIGFjdGlvbiB3ZSBhcmUgdGVzdGluZyBhcHBsaWVk IHRvIGl0Lg0KPiArDQo+ICtXZSBvbmx5IHRlc3Qgb25lIGFjdGlvbiBhbmQgb25lIG9mIHRoZSBh Y3Rpb24ncyBwcm9wZXJ0aWVzIGF0IGEgdGltZSwgdW5sZXNzDQo+IG9uZSBwcm9wZXJ0eSByZXF1 aXJlcyB0aGUgY29udGV4dA0KPiArb2YgYW5vdGhlci4NCj4gKw0KPiArRmxvdyBydWxlcyBhcmUg Y3JlYXRlZCB1c2luZyAqKnRlc3RwbWQqKiBhbmQgcGFja2V0cyBhcmUgY3JlYXRlZC9zZW50IHVz aW5nDQo+ICoqc2NhcHkqKi4NCj4gKw0KPiArTk9URTogTlZHUkVfRU5DQVAgYW5kIE5WR1JFX0RF Q0FQIGNvdWxkIG5vdCBiZSB0ZXN0ZWQgYXQgdGhpcyB0aW1lDQo+IGJlY2F1c2UgU2NhcHkgZG9l cyBub3Qgc3VwcG9ydCBOVkdSRS4NCj4gKw0KPiArV2UgZGlkIG5vdCBjcmVhdGUgYW4gUlNTIHRl c3Qgc3VpdGUgYmVjYXVzZSBvbmUgaGFzIGFscmVhZHkgYmVlbiBjcmVhdGVkLg0KPiArDQo+ICsN Cj4gK0FjdGlvbjogUEFTU1RIUlUNCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4g Kw0KPiArVGVzdCBDYXNlOiBwYXNzdGhydSB0ZXN0DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGludGVyYWN0 aXZlIG1vZGUgd2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ICs6Og0K PiArDQo+ICsgICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ICsNCj4g KzIuIFNldCB0aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBJUHY0IHNvdXJjZSBpcyAxOTIuMTY4 LjAuMSwgbGV0IHRoZSBwYWNrZXQgcGFzcw0KPiB0aHJvdWdoKSA6DQo+ICsNCj4gKzo6DQo+ICsN Cj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAx OTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IHBhc3N0aHJ1IC8gZW5kDQo+ICsNCj4g Ky4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlOg0KPiAr DQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAu MVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2Vu ZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAvIFVEUCgpIC8g KCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QyID0gRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAu OTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVyKCkgLyBJ UChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQg PSBFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAq IDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUg cGFzcyBwYWNrZXQgd2FzIGFsbG93ZWQgdG8gcGFzcyB0aHJvdWdoLg0KPiArDQo+ICtBY3Rpb246 IEZMQUcNCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0KPiArVGVzdCBDYXNl OiBmbGFnIHRlc3QNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBw b3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90 ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZs b3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBmbGFnIHRoZSBwYWNr ZXQpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0 ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4g ZmxhZyAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0 Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8g SVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4g Ky4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZToN Cj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2 OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkg LyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAg IFBrdDMgPSBFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdcXHgwMCcg KiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAv IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8g bWFrZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0IHdhcyBmbGFnZ2VkLg0KPiArDQo+ICtBY3Rp b246IERST1ANCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0KPiArVGVzdCBD YXNlOiBkcm9wIHRlc3QNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9u ZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWls ZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0 IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBkcm9wIHRoZSBw YWNrZXQpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBw YXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMN Cj4gZHJvcCAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQg bWF0Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigp IC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsN Cj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVs ZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTky LjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVy KCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiAr ICAgIFBrdDMgPSBFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdcXHgw MCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwi KSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sg dG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0IHdhcyBkcm9wcGVkLg0KPiArDQo+ICtB Y3Rpb246IENPVU5UDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK1Rl c3QgQ2FzZTogdGVzdF9zaGFyZWQNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBt b2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0K PiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBT ZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2NCBzb3VyY2UgaXMgMTkyLjE2OC4wLjEs IGFkZCB1bnNoYXJlZA0KPiBjb3VudGVyIGFjdGlvbiB3aXRoIGlkIG9mIDEpIDoNCj4gKw0KPiAr OjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQg c3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4gY291bnQgc2hhcmVkIDAg aWQgMSAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0 Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8g SVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4g Ky4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZToN Cj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2 OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkg LyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAg IFBrdDMgPSBFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdcXHgwMCcg KiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAv IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8g bWFrZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0IGhhcyBhIGNvdW50ZXIgYWN0aW9uIGFkZGVk IHRvIGl0Lg0KPiArDQo+ICtUZXN0IENhc2U6IHRlc3RfaWQNCj4gKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBp biBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4g Kw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsu Lg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2NCBzb3VyY2Ug aXMgMTkyLjE2OC4wLjEsIGFkZCBjb3VudGVyIGFjdGlvbg0KPiB3aXRoIGlkIG9mIDEpIDoNCj4g Kw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0aCAv IGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4gY291bnQgaWQg MSAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hl cyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8gSVAo c3JjPVwiMTkyLjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4u DQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZToNCj4g Kw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4w LjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkgLyBJ UChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBr dDMgPSBFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2 NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVE UCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFr ZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0IGhhcyBhIGNvdW50ZXIgYWN0aW9uIGFkZGVkIHRv IGl0Lg0KPiArDQo+ICtBY3Rpb246IE1BQ19TV0FQDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+DQo+ICsNCj4gK1Rlc3QgQ2FzZTogbWFjX3N3YXAgdGVzdA0KPiArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0ZXN0 cG1kIGluIGludGVyYWN0aXZlIG1vZGUgd2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxl Og0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsN Cj4gKy4uDQo+ICsNCj4gKzIuIFNldCB0aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBJUHY0IHNv dXJjZSBpcyAxOTIuMTY4LjAuMSwgc3dhcCBkc3QgYW5kIHNyYw0KPiBNQUMgYWRkcmVzc2VzKSA6 DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBl dGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IG1hY19z d2FwIC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRj aGVzIHRoZSBydWxlLCB3aXRoIGRlZmluZWQgc3JjIGFuZCBkc3QgTUFDIGFkZHJlc3NlczoNCj4g Kw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcihzcmM9XCI5MDo2MTphZTpmZDo0MTo0 M1wiLCBkc3QgPSBcImFiOmNkOmVmOjEyOjM0OjU2XCIpIC8NCj4gSVAoc3JjPVwiMTkyLjE2OC4w LjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNl bmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZSwgd2l0aCBkZWZpbmVkIHNyYyBh bmQgZHN0IE1BQw0KPiBhZGRyZXNzZXM6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0g RXRoZXIoc3JjPVwiOTA6NjE6YWU6ZmQ6NDE6NDNcIiwgZHN0ID0gXCJhYjpjZDplZjoxMjozNDo1 NlwiKSAvDQo+IElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0 KQ0KPiArICAgIFBrdDIgPSBFdGhlcihzcmM9XCI5MDo2MTphZTpmZDo0MTo0M1wiLCBkc3QgPSBc ImFiOmNkOmVmOjEyOjM0OjU2XCIpIC8NCj4gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgp IC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QzID0gRXRoZXIoc3JjPVwiOTA6NjE6YWU6ZmQ6 NDE6NDNcIiwgZHN0ID0gXCJhYjpjZDplZjoxMjozNDo1NlwiKSAvDQo+IElQKHNyYz1cIjguOC44 LjhcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKHNyYz1c IjkwOjYxOmFlOmZkOjQxOjQzXCIsIGRzdCA9IFwiYWI6Y2Q6ZWY6MTI6MzQ6NTZcIikgLw0KPiBJ UChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4g Ky4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBhY2tldCBo YXMgaGFkIGl0cyBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uDQo+IE1BQyBhZGRyZXNzZXMgc3dhcHBl ZC4NCj4gKw0KPiArQWN0aW9uOiBERUNfVFRMDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+DQo+ICsNCj4gK1Rlc3QgQ2FzZTogZGVjX3R0bCB0ZXN0DQo+ICstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQg aW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiAr Li4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNl IGlzIDE5Mi4xNjguMC4xLCBkZWNyZWFzZSBpdHMgVFRMKSA6DQo+ICsNCj4gKzo6DQo+ICsNCj4g KyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIu MTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IGRlY190dGwgLyBlbmQNCj4gKw0KPiArLi4N Cj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGUsIHdpdGggYSBk ZWZpbmVkIHR0bDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8gSVAo c3JjPVwiMTkyLjE2OC4wLjFcIiwgdHRsID0gMTI4KSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkN Cj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRo ZSBydWxlLCB3aXRoIGEgZGVmaW5lZCB0dGw6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3Qx ID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIsIHR0bCA9IDEyOCkgLyBVRFAoKSAv ICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMw Ljk5XCIsIHR0bCA9IDEyOCkgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9 IEV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIsIHR0bCA9IDEyOCkgLyBVRFAoKSAvICgnXFx4 MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlc IiwgdHRsID0gMTI4KSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0K PiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0IGhhcyBoYWQgaXRz IHR0bCByZWR1Y2VkLg0KPiArDQo+ICtBY3Rpb246IEpVTVANCj4gK35+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4NCj4gKw0KPiArVGVzdCBDYXNlOiBqdW1wIHRlc3QNCj4gKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVz dHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJs ZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiAr DQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2NCBz b3VyY2UgaXMgMTkyLjE2OC4wLjEsIHJlZGlyZWN0IHRoZSBwYWNrZXQgdG8NCj4gZ3JvdXAgMSkg Og0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4g ZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0KPiBqdW1w IGdyb3VwIDEgLyBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0aGF0 IG1hdGNoZXMgdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0gRXRoZXIo KSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiAr DQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1 bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5 Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhl cigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4g KyAgICBQa3QzID0gRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikgLyBVRFAoKSAvICgnXFx4 MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlc IikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNr IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBhY2tldCBoYXMgYmVlbiBhZGRlZCB0byBncm91 cCAxIG9uIHRoZQ0KPiBkZXN0aW5hdGlvbiBkZXZpY2UuDQo+ICsNCj4gKw0KPiArQWN0aW9uOiBN QVJLDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK1Rlc3QgQ2FzZTog bWFyayB0ZXN0DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9u ZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWls ZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0 IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBtYXJrIHRoZSBw YWNrZXQgd2l0aA0KPiBhbiBpZCBvZiAweEFCQ0RFRikgOg0KPiArDQo+ICs6Og0KPiArDQo+ICsg ICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2 OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0KPiBtYXJrIGlkIDB4QUJDREVGIC8gZW5kDQo+ICsN Cj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlOg0K PiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4 LjAuMVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4g U2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiAr DQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAvIFVEUCgp IC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QyID0gRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAu MzAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVyKCkg LyBJUChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBr dDQgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAw JyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0 aGUgcGFzcyBwYWNrZXQgaGFzIGJlZW4gbWFya2VkIHdpdGggdGhlIGNvcnJlY3QgaWQuDQo+ICsN Cj4gK0FjdGlvbjogUVVFVUUNCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0K PiArVGVzdCBDYXNlOiBxdWV1ZSB0ZXN0DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3Rp dmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiAr Mi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjgu MC4xLCBzZW5kIHRoZSBwYWNrZXQgdG8NCj4gcXVldWUgMSkgOg0KPiArDQo+ICs6Og0KPiArDQo+ ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTky LjE2OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0KPiBxdWV1ZSBpbmRleCAxIC8gZW5kDQo+ICsN Cj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlOg0K PiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4 LjAuMVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4g U2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiAr DQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAvIFVEUCgp IC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QyID0gRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAu MzAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVyKCkg LyBJUChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBr dDQgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAw JyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0 aGUgcGFzcyBwYWNrZXQgaGFzIGJlZW4gYWRkZWQgdG8gcXVldWUgMS4NCj4gKw0KPiArQWN0aW9u OiBQRg0KPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0KPiArDQo+ICtUZXN0IENhc2U6 IHBmIHRlc3QNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25l IHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxk L3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3Qg ZmxvdyBydWxlIChJZiB0aGUgSVB2NCBzb3VyY2UgaXMgMTkyLjE2OC4wLjEsIGRpcmVjdCB0aGUg cGFja2V0IHRvDQo+IHRoZSBwaHlzaWNhbCBmdW5jdGlvbiBvZiB0aGUgZGV2aWNlKSA6DQo+ICsN Cj4gKzo6DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBp cHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IHBmIC8gZW5kDQo+ ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxl Og0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIu MTY4LjAuMVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiAr NC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6Og0K PiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAvIFVE UCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QyID0gRXRoZXIoKSAvIElQKHNyYz1cIjEw LjAuMzAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVy KCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAg IFBrdDQgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xc eDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhh dCB0aGUgcGFzcyBwYWNrZXQgaGFzIGJlZW4gZGlyZWN0ZWQgdG8gdGhlIHBoeXNpY2FsDQo+IGZ1 bmN0aW9uIG9mIHRoZSBkZXZpY2UuDQo+ICsNCj4gK0FjdGlvbjogVkYNCj4gK35+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0KPiArVGVzdCBDYXNlOiB0ZXN0X29yaWdpbmFsDQo+ICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiAr MS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFu ZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMg LS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYg dGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBkaXJlY3QgdGhlIHBhY2tldCB0bw0KPiB0 aGUgb3JpZ2luYWwgdmlydHVhbCBmdW5jdGlvbiBvZiB0aGUgZGV2aWNlKSA6DQo+ICsNCj4gKzo6 DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNy YyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IHZmIG9yaWdpbmFsIC8gZW5k DQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBy dWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUChzcmM9XCIx OTIuMTY4LjAuMVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0K PiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6 Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAv IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QyID0gRXRoZXIoKSAvIElQKHNyYz1c IjEwLjAuMzAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0 aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiAr ICAgIFBrdDQgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAo J1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUg dGhhdCB0aGUgcGFzcyBwYWNrZXQgaGFzIGJlZW4gZGlyZWN0ZWQgdG8gdGhlIG9yaWdpbmFsDQo+ IHZpcnR1YWwgZnVuY3Rpb24gb2YgdGhlIGRldmljZS4NCj4gKw0KPiArVGVzdCBDYXNlOiB0ZXN0 X2lkDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0 IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0 cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cg cnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBkaXJlY3QgdGhlIHBhY2tl dCB0bw0KPiB0aGUgdmlydHVhbCBmdW5jdGlvbiBvZiBpZCAxKSA6DQo+ICsNCj4gKzo6DQo+ICsN Cj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAx OTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IHZmIGlkIDEgLyBlbmQNCj4gKw0KPiAr Li4NCj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGU6DQo+ICsN Cj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4x XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5k IHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4g KyAgICBQa3QxID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAo J1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45 OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QzID0gRXRoZXIoKSAvIElQ KHNyYz1cIjguOC44LjhcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0NCA9 IEV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICog NjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBw YXNzIHBhY2tldCBoYXMgYmVlbiBkaXJlY3RlZCB0byB0aGUgdmlydHVhbA0KPiBmdW5jdGlvbiB3 aXRoIHRoZSBpZCBvZiAxLg0KPiArDQo+ICsNCj4gK0FjdGlvbjogUEhZX1BPUlQNCj4gK35+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0KPiArVGVzdCBDYXNlOiB0ZXN0X29yaWdpbmFs DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g Kw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJv dW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1k IC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVs ZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBkaXJlY3QgdGhlIHBhY2tldCB0 bw0KPiB0aGUgb3JpZ2luYWwgcGh5c2ljYWwgcG9ydCBvZiB0aGUgZGV2aWNlKSA6DQo+ICsNCj4g Kzo6DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0 IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IHBoeV9wb3J0IG9yaWdp bmFsIC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRj aGVzIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJ UChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiAr Li4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0K PiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4 LjAuMlwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QyID0gRXRoZXIoKSAv IElQKHNyYz1cIjEwLjAuMzAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAg UGt0MyA9IEV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAq IDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8g VURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBt YWtlIHN1cmUgdGhhdCB0aGUgcGFzcyBwYWNrZXQgaGFzIGJlZW4gZGlyZWN0ZWQgdG8gdGhlIG9y aWdpbmFsDQo+IHBoeXNpY2FsIHBvcnQgb2YgdGhlIGRldmljZS4NCj4gKw0KPiArVGVzdCBDYXNl OiB0ZXN0X2luZGV4DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRo IG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBi dWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0 ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBkaXJlY3Qg dGhlIHBhY2tldCB0bw0KPiB0aGUgcGh5c2ljYWwgcG9ydCBvZiBpbmRleCAxKSA6DQo+ICsNCj4g Kzo6DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0 IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IHBoeV9wb3J0IGluZGV4 IDEgLyBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0aGF0IG1hdGNo ZXMgdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0gRXRoZXIoKSAvIElQ KHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsu Lg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjgu MC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8g SVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQ a3QzID0gRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikgLyBVRFAoKSAvICgnXFx4MDAnICog NjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBV RFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1h a2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBhY2tldCBoYXMgYmVlbiBkaXJlY3RlZCB0byB0aGUgcGh5 c2ljYWwNCj4gcG9ydCBvZiBpbmRleCAxLg0KPiArDQo+ICsNCj4gK0FjdGlvbjogUE9SVF9JRA0K PiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0KPiArDQo+ICtUZXN0IENhc2U6IHRlc3Rf b3JpZ2luYWwNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25l IHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxk L3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3Qg ZmxvdyBydWxlIChJZiB0aGUgSVB2NCBzb3VyY2UgaXMgMTkyLjE2OC4wLjEsIGRpcmVjdCB0aGUg cGFja2V0IHRvDQo+IHRoZSBvcmlnaW5hbCBEUERLIHBvcnQgSUQpIDoNCj4gKw0KPiArOjoNCj4g Kw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlz IDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4gcG9ydF9pZCBvcmlnaW5hbCAvIGVu ZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUg cnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8gSVAoc3JjPVwi MTkyLjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsN Cj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZToNCj4gKw0KPiAr OjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikg LyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkgLyBJUChzcmM9 XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDMgPSBF dGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4g KyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8g KCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJl IHRoYXQgdGhlIHBhc3MgcGFja2V0IGhhcyBiZWVuIGRpcmVjdGVkIHRvIHRoZSBvcmlnaW5hbA0K PiBEUERLIHBvcnQgSUQgb2YgdGhlIGRldmljZS4NCj4gKw0KPiArVGVzdCBDYXNlOiB0ZXN0X2lk DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g Kw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJv dW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1k IC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVs ZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBkaXJlY3QgdGhlIHBhY2tldCB0 bw0KPiB0aGUgRFBESyBwb3J0IG9mIGlkIDEpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZs b3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4x IC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4gcG9ydF9pZCBpZCAxIC8gZW5kDQo+ICsNCj4gKy4uDQo+ ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlOg0KPiArDQo+ICs6 Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAv IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNr ZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAg UGt0MSA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAvIFVEUCgpIC8gKCdcXHgw MCcgKiA2NCkNCj4gKyAgICBQa3QyID0gRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAuOTlcIikg LyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVyKCkgLyBJUChzcmM9 XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhl cigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0K PiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcGFzcyBw YWNrZXQgaGFzIGJlZW4gZGlyZWN0ZWQgdG8gdGhlIERQREsgcG9ydA0KPiBvZiBpZCAxLg0KPiAr DQo+ICsNCj4gK0FjdGlvbjogTUVURVINCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4N Cj4gKw0KPiArVGVzdCBDYXNlOiBtZXRlciB0ZXN0DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBw b3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90 ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZs b3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBhcHBseSBhIE1UUiBv YmplY3QNCj4gd2l0aCBpZCAxKSA6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0 ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAv IGVuZCBhY3Rpb25zDQo+IG1ldGVyIG10cl9pZCAxIC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4g KzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiAr DQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFVEUCgp IC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRo YXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MSA9 IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2 NCkNCj4gKyAgICBQa3QyID0gRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAuOTlcIikgLyBVRFAo KSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVyKCkgLyBJUChzcmM9XCI4Ljgu OC44XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8g SVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcGFzcyBwYWNrZXQg aGFzIGhhZCBNVFIgb2JqZWN0IHdpdGggaWQgMQ0KPiBhcHBsaWVkIHRvIGl0Lg0KPiArDQo+ICtB Y3Rpb246IFNFQ1VSSVRZDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4g K1Rlc3QgQ2FzZTogc2VjdXJpdHkgdGVzdA0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBv cnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rl c3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxv dyBydWxlIChJZiB0aGUgSVB2NCBzb3VyY2UgaXMgMTkyLjE2OC4wLjEsIGFwcGx5IHNlY3VyaXR5 IHNlc3Npb24NCj4gb2YgaWQgMSkgOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVh dGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAg LyBlbmQgYWN0aW9ucw0KPiBzZWN1cml0eSBzZWN1cml0eV9zZXNzaW9uIDEgLyBlbmQNCj4gKw0K PiArLi4NCj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGU6DQo+ ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjgu MC4xXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBT ZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsN Cj4gKyAgICBQa3QxID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkg LyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4z MC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QzID0gRXRoZXIoKSAv IElQKHNyYz1cIjguOC44LjhcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0 NCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAn ICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRo ZSBwYXNzIHBhY2tldCBoYXMgaGFkIHNlY3VyaXR5IHNlc3Npb24gMSBhcHBsaWVkDQo+IHRvIGl0 Lg0KPiArDQo+ICsNCj4gK0FjdGlvbjogT0ZfU0VUX01QTFNfVFRMDQo+ICt+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK1Rlc3QgQ2FzZTogb2Zfc2V0X21wbHNfdHRsIHRlc3QN Cj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVz dHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJs ZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiAr DQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2NCBz b3VyY2UgaXMgMTkyLjE2OC4wLjEsIGltcGxlbWVudCBNUExTIFRUTA0KPiB3aXRoIGEgdmFsdWUg b2YgNjQpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBw YXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMN Cj4gb2Zfc2V0X21wbHNfdHRsIG1wbHNfdHRsIDY0IC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4g KzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlLCB3aXRoIGFuIE1QTFMgbGF5 ZXIgd2l0aCBhc3NpZ25lZCB0dGw6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0gRXRo ZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gTVBMUyhsYWJlbCA9IDB4YWIsIHR0bD0x MjgpIC8gVURQKCkgLw0KPiAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBT ZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGUsIHdpdGggTVBMUyBsYXllcnMg d2l0aCBhc3NpZ25lZCB0dGw6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRoZXIo KSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gTVBMUyhsYWJlbCA9IDB4YWIsIHR0bD0xMjgp IC8gVURQKCkgLw0KPiAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAo c3JjPVwiMTAuMC4zMC45OVwiKSAvIE1QTFMobGFiZWwgPSAweGFiLCB0dGw9MTI4KSAvIFVEUCgp IC8NCj4gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QzID0gRXRoZXIoKSAvIElQKHNyYz1cIjgu OC44LjhcIikgLyBNUExTKGxhYmVsID0gMHhhYiwgdHRsPTEyOCkgLyBVRFAoKSAvDQo+ICgnXFx4 MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlc IikgLyBNUExTKGxhYmVsID0gMHhhYiwgdHRsPTEyOCkgLyBVRFAoKQ0KPiAvICgnXFx4MDAnICog NjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBw YXNzIHBhY2tldCBoYXMgaGFkIGl0cyBNUExTIHR0bCBkZWZpbmVkIGFzIDY0Lg0KPiArDQo+ICtB Y3Rpb246IE9GX0RFQ19NUExTX1RUTA0KPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0K PiArDQo+ICtUZXN0IENhc2U6IG9mX2RlY19tcGxzX3R0bCB0ZXN0DQo+ICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3Rp dmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiAr Mi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjgu MC4xLCBkZWNyZW1lbnQgdGhlIE1QTFMNCj4gdHRsIHZhbHVlKSA6DQo+ICsNCj4gKzo6DQo+ICsN Cj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAx OTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IG9mX2RlY19tcGxzX3R0bCAvIGVuZA0K PiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVs ZSwgd2l0aCBhbiBNUExTIGxheWVyIHdpdGggYXNzaWduZWQgdHRsOg0KPiArDQo+ICs6Og0KPiAr DQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIE1QTFMo bGFiZWwgPSAweGFiLCB0dGw9MTI4KSAvIFVEUCgpIC8NCj4gKCdcXHgwMCcgKiA2NCkNCj4gKw0K PiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxl LCB3aXRoIE1QTFMgbGF5ZXJzIHdpdGggYXNzaWduZWQgdHRsOg0KPiArDQo+ICs6Og0KPiArDQo+ ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAvIE1QTFMobGFi ZWwgPSAweGFiLCB0dGw9MTI4KSAvIFVEUCgpIC8NCj4gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQ a3QyID0gRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAuOTlcIikgLyBNUExTKGxhYmVsID0gMHhh YiwgdHRsPTEyOCkgLyBVRFAoKSAvDQo+ICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0 aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gTVBMUyhsYWJlbCA9IDB4YWIsIHR0bD0xMjgp IC8gVURQKCkgLw0KPiAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8gSVAo c3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gTVBMUyhsYWJlbCA9IDB4YWIsIHR0bD0xMjgpIC8gVURQ KCkNCj4gLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBt YWtlIHN1cmUgdGhhdCB0aGUgcGFzcyBwYWNrZXQgaGFzIGhhZCBpdHMgTVBMUyB0dGwgZGVjcmVt ZW50ZWQuDQo+ICsNCj4gKw0KPiArQWN0aW9uOiBPRl9TRVRfTldfVFRMDQo+ICt+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK1Rlc3QgQ2FzZTogb2Zfc2V0X253X3R0bCB0ZXN0 DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRl c3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFi bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4g Kw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQg c291cmNlIGlzIDE5Mi4xNjguMC4xLCBpbXBsZW1lbnQgSVAgVFRMDQo+IHdpdGggYSB2YWx1ZSBv ZiA2NCkgOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBh dHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0K PiBvZl9zZXRfbndfdHRsIG53X3R0bCA2NCAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBT ZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZSwgd2l0aCBhIGRlZmluZWQgVFRMIGlu IHRoZSBJUCBsYXllcjoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8g SVAoc3JjPVwiMTkyLjE2OC4wLjFcIiwgdHRsPTEyOCkgIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0 KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2gg dGhlIHJ1bGUsIHdpdGggYSBkZWZpbmVkIFRUTCBpbiB0aGUgSVAgbGF5ZXI6DQo+ICsNCj4gKzo6 DQo+ICsNCj4gKyAgICBQa3QxID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIsIHR0 bCA9IDEyOCkgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkg LyBJUChzcmM9XCIxMC4wLjMwLjk5XCIsIHR0bCA9IDEyOCkgLyBVRFAoKSAvICgnXFx4MDAnICog NjQpDQo+ICsgICAgUGt0MyA9IEV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIsIHR0bCA9IDEy OCkgLyAgVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8gSVAo c3JjPVwiMTMyLjE3Ny4wLjk5XCIsIHR0bCA9IDEyOCkgLyBVRFAoKSAvICgnXFx4MDAnICogNjQp DQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNz IHBhY2tldCBoYXMgaGFkIGl0cyBJUCBUVEwgZGVmaW5lZCBhcyA2NC4NCj4gKw0KPiArDQo+ICtB Y3Rpb246IE9GX0RFQ19OV19UVEwNCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4g Kw0KPiArVGVzdCBDYXNlOiBvZl9kZWNfbndfdHRsIHRlc3QNCj4gKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBt b2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0K PiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBT ZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2NCBzb3VyY2UgaXMgMTkyLjE2OC4wLjEs IGRlY3JlYXNlIHRoZSBJUCBUVEwpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3Jl YXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRw IC8gZW5kIGFjdGlvbnMNCj4gb2ZfZGVjX253X3R0bCAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZSwgd2l0aCBhIGRlZmluZWQg VFRMIGluIHRoZSBJUCBsYXllcjoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhl cigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIiwgdHRsPTEyOCApICAvIFVEUCgpIC8gKCdcXHgw MCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90 IG1hdGNoIHRoZSBydWxlLCB3aXRoIGEgZGVmaW5lZCBUVEwgaW4gdGhlIElQIGxheWVyOg0KPiAr DQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAu MlwiLCB0dGwgPSAxMjgpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBF dGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiLCB0dGwgPSAxMjgpIC8gVURQKCkgLyAoJ1xc eDAwJyAqIDY0KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiLCB0 dGwgPSAxMjgpIC8gIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIo KSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiLCB0dGwgPSAxMjgpIC8gVURQKCkgLyAoJ1xceDAw JyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0 aGUgcGFzcyBwYWNrZXQgaGFzIGhhZCBpdHMgSVAgVFRMIGRlY3JlbWVudGVkLg0KPiArDQo+ICtB Y3Rpb246IE9GX0NPUFlfVFRMX09VVA0KPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0K PiArDQo+ICtUZXN0IENhc2U6IG9mX2NvcHlfdHRsX291dCB0ZXN0DQo+ICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3Rp dmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiAr Mi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjgu MC4xLCBjb3B5IHRoZSBUVEwNCj4gb3V0d2FyZHMpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAg IGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjgu MC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4gb2ZfY29weV90dGxfb3V0IC8gZW5kDQo+ICsNCj4g Ky4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlLCB3aXRo IGEgZGVmaW5lZCBUVEwgaW4gdGhlIElQIGxheWVyOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAg UGt0MCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAgLyBVRFAoKSAvICgnXFx4 MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5v dCBtYXRjaCB0aGUgcnVsZSwgd2l0aCBhIGRlZmluZWQgVFRMIGluIHRoZSBJUCBsYXllcjoNCj4g Kw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4w LjJcIiwgdHRsID0gMTI4KSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QyID0g RXRoZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAuOTlcIiwgdHRsID0gMTI4KSAvIFVEUCgpIC8gKCdc XHgwMCcgKiA2NCkNCj4gKyAgICBQa3QzID0gRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIiwg dHRsID0gMTI4KSAvICBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVy KCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIiwgdHRsID0gMTI4KSAvIFVEUCgpIC8gKCdcXHgw MCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQg dGhlIHBhc3MgcGFja2V0IGhhcyBoYWQgaXRzIFRUTCBjb3BpZWQgb3V0d2FyZHMuDQo+ICsNCj4g K0FjdGlvbjogT0ZfQ09QWV9UVExfSU4NCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4N Cj4gKw0KPiArVGVzdCBDYXNlOiBvZl9jb3B5X3R0bF9pbiB0ZXN0DQo+ICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3Rp dmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiAr Mi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjgu MC4xLCBjb3B5IHRoZSBUVEwNCj4gaW53YXJkcykgOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAg ZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4w LjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0KPiBvZl9jb3B5X3R0bF9pbiAvIGVuZA0KPiArDQo+ICsu Lg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZSwgd2l0aCBh IGRlZmluZWQgVFRMIGluIHRoZSBJUCBsYXllcjoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBr dDAgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgIC8gVURQKCkgLyAoJ1xceDAw JyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3Qg bWF0Y2ggdGhlIHJ1bGUsIHdpdGggYSBkZWZpbmVkIFRUTCBpbiB0aGUgSVAgbGF5ZXI6DQo+ICsN Cj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4y XCIsIHR0bCA9IDEyOCkgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0 aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIsIHR0bCA9IDEyOCkgLyBVRFAoKSAvICgnXFx4 MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIsIHR0 bCA9IDEyOCkgLyAgVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigp IC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIsIHR0bCA9IDEyOCkgLyBVRFAoKSAvICgnXFx4MDAn ICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRo ZSBwYXNzIHBhY2tldCBoYXMgaGFkIGl0cyBUVEwgY29waWVkIGlud2FyZHMuDQo+ICsNCj4gK0Fj dGlvbjogT0ZfUE9QX1ZMQU4NCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0K PiArVGVzdCBDYXNlOiBvZl9wb3BfdmxhbiB0ZXN0DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3 aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAg ICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRo ZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBwb3Ag dGhlIG91dGVyIFZMQU4NCj4gdGFnKSA6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBmbG93IGNy ZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHVk cCAvIGVuZCBhY3Rpb25zDQo+IG9mX3BvcF92bGFuIC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4g KzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlLCB3aXRoIGEgZGVmaW5lZCBW TEFOIGxheWVyL3RhZzoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8g RG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4gPSAweGFhYSkgLw0KPiBJUChzcmM9XCIx OTIuMTY4LjAuMVwiKSAgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsN Cj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZSwgd2l0aCBkZWZp bmVkIFZMQU4gbGF5ZXJzL3RhZ3M6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRo ZXIoKSAvIERvdDFRKHByaW8gPSAweDUsIGlkID0gMHgwLCB2bGFuID0gMHhhYWEpIC8NCj4gSVAo c3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0 MiA9IEV0aGVyKCkgLyBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YWFhKSAv DQo+IElQKHNyYz1cIjEwLjAuMzAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsg ICAgUGt0MyA9IEV0aGVyKCkgLyBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4 YWFhKSAvIElQKHNyYz1cIjguOC44LjhcIikNCj4gLyAgVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0K PiArICAgIFBrdDQgPSBFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4g PSAweGFhYSkgLw0KPiBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAn ICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRo ZSBwYXNzIHBhY2tldCBoYXMgaGFkIGl0cyBvdXRlciAob25seSkgVkxBTiB0YWcNCj4gcG9wcGVk Lg0KPiArDQo+ICtBY3Rpb246IE9GX1BVU0hfVkxBTg0KPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fg0KPiArDQo+ICtUZXN0IENhc2U6IG9mX3B1c2hfdmxhbiB0ZXN0DQo+ICstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50 ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4g Kzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4g Kw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5 Mi4xNjguMC4xLCBwdXNoIGEgbmV3IFZMQU4gdGFnDQo+IHdpdGggRXRoZXJUeXBlIDB4ODEwMCkg Og0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4g ZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0KPiBvZl9w dXNoX3ZsYW4gZXRoZXJ0eXBlIDB4ODEwMCAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBT ZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZSwgd2l0aCBhIGRlZmluZWQgVkxBTiBs YXllci90YWc6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0gRXRoZXIoKSAvIERvdDFR KHByaW8gPSAweDUsIGlkID0gMHgwLCB2bGFuID0gMHhhYWEpIC8NCj4gSVAoc3JjPVwiMTkyLjE2 OC4wLjFcIikgIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0 LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGUsIHdpdGggZGVmaW5lZCBW TEFOIGxheWVycy90YWdzOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkg LyBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YWFhKSAvDQo+IElQKHNyYz1c IjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBF dGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4gPSAweGFhYSkgLw0KPiBJ UChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBr dDMgPSBFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4gPSAweGFhYSkg LyBJUChzcmM9XCI4LjguOC44XCIpDQo+IC8gIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAg ICBQa3Q0ID0gRXRoZXIoKSAvIERvdDFRKHByaW8gPSAweDUsIGlkID0gMHgwLCB2bGFuID0gMHhh YWEpIC8NCj4gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0 KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcGFz cyBwYWNrZXQgaGFzIGhhZCBhIFZMQU4gdGFnIHdpdGggRXRoZXJUeXBlDQo+IDB4ODEwMCBwdXNo ZWQgb250byBpdC4NCj4gKw0KPiArQWN0aW9uOiBPRl9TRVRfVkxBTl9WSUQNCj4gK35+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0KPiArDQo+ICtUZXN0IENhc2U6IG9mX3NldF92bGFu X3ZpZCB0ZXN0DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiAr MS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFu ZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMg LS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYg dGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBzZXQgdGhlIFZMQU4gdmlkIHRvDQo+IDB4 YmJiKToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0 ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4g b2Zfc2V0X3ZsYW5fdmlkIDB4YmJiIC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQg YSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlLCB3aXRoIGEgZGVmaW5lZCBWTEFOIGxheWVy L3RhZzoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8gRG90MVEocHJp byA9IDB4NSwgaWQgPSAweDAsIHZsYW4gPSAweGFhYSkgLw0KPiBJUChzcmM9XCIxOTIuMTY4LjAu MVwiKSAgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNl bmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZSwgd2l0aCBkZWZpbmVkIFZMQU4g bGF5ZXJzL3RhZ3M6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRoZXIoKSAvIERv dDFRKHByaW8gPSAweDUsIGlkID0gMHgwLCB2bGFuID0gMHhhYWEpIC8NCj4gSVAoc3JjPVwiMTky LjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVy KCkgLyBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YWFhKSAvDQo+IElQKHNy Yz1cIjEwLjAuMzAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9 IEV0aGVyKCkgLyBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YWFhKSAvIElQ KHNyYz1cIjguOC44LjhcIikNCj4gLyAgVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBr dDQgPSBFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4gPSAweGFhYSkg Lw0KPiBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBh Y2tldCBoYXMgaGFkIGl0cyBWTEFOIHZpZCBzZXQgdG8gMHhiYmIuDQo+ICsNCj4gK0FjdGlvbjog T0ZfU0VUX1ZMQU5fUENQDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4g K1Rlc3QgQ2FzZTogb2Zfc2V0X3ZsYW5fcGNwIHRlc3QNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2Rl IHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiAr ICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQg dGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2NCBzb3VyY2UgaXMgMTkyLjE2OC4wLjEsIHNl dCB0aGUgVkxBTiBwY3AgdG8NCj4gMHg3KToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cg Y3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8g dWRwIC8gZW5kIGFjdGlvbnMNCj4gb2Zfc2V0X3ZsYW5fcGNwIDB4NyAvIGVuZA0KPiArDQo+ICsu Lg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZSwgd2l0aCBh IGRlZmluZWQgVkxBTiBsYXllci90YWc6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0g RXRoZXIoKSAvIERvdDFRKHByaW8gPSAweDUsIGlkID0gMHgwLCB2bGFuID0gMHhhYWEpIC8NCj4g SVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGUs IHdpdGggZGVmaW5lZCBWTEFOIGxheWVycy90YWdzOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAg UGt0MSA9IEV0aGVyKCkgLyBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YWFh KSAvDQo+IElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0K PiArICAgIFBrdDIgPSBFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4g PSAweGFhYSkgLw0KPiBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAq IDY0KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8gRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAs IHZsYW4gPSAweGFhYSkgLyBJUChzcmM9XCI4LjguOC44XCIpDQo+IC8gIFVEUCgpIC8gKCdcXHgw MCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIERvdDFRKHByaW8gPSAweDUsIGlkID0g MHgwLCB2bGFuID0gMHhhYWEpIC8NCj4gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkg LyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1 cmUgdGhhdCB0aGUgcGFzcyBwYWNrZXQgaGFzIGhhZCBpdHMgVkxBTiBwY3Agc2V0IHRvIDB4Ny4N Cj4gKw0KPiArQWN0aW9uOiBPRl9QT1BfTVBMUw0KPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fg0KPiArDQo+ICtUZXN0IENhc2U6IG9mX3BvcF9tcGxzIHRlc3QNCj4gKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFj dGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoN Cj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2NCBzb3VyY2UgaXMgMTkyLjE2 OC4wLjEsIHBvcCB0aGUgb3V0ZXIgTVBMUw0KPiB0YWcpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiAr ICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4x NjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4gb2ZfcG9wX21wbHMgLyBlbmQNCj4gKw0KPiAr Li4NCj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGUsIHdpdGgg YSBkZWZpbmVkIE1QTFMgbGF5ZXIvdGFnOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9 IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAgLyBVRFAoKSAvICgnXFx4MDAnICog NjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRj aCB0aGUgcnVsZSwgd2l0aCBkZWZpbmVkIE1QTFMgbGF5ZXJzL3RhZ3M6DQo+ICsNCj4gKzo6DQo+ ICsNCj4gKyAgICBQa3QxID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gIE1Q TFMobGFiZWwgPSAweGFiLCB0dGw9MTI4KSAvIFVEUCgpDQo+IC8gKCdcXHgwMCcgKiA2NCkNCj4g KyAgICBQa3QyID0gRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAuOTlcIikgLyAgTVBMUyhsYWJl bCA9IDB4YWIsIHR0bD0xMjgpIC8gVURQKCkgLw0KPiAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBr dDMgPSBFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIE1QTFMobGFiZWwgPSAweGFiLCB0 dGw9MTI4KSAvIFVEUCgpIC8NCj4gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIo KSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvICBNUExTKGxhYmVsID0gMHhhYiwgdHRsPTEy OCkgLw0KPiBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENo ZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBhY2tldCBoYXMgaGFkIGl0cyBvdXRlciAo b25seSkgTVBMUyB0YWcNCj4gcG9wcGVkLg0KPiArDQo+ICtBY3Rpb246IE9GX1BVU0hfTVBMUw0K PiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0KPiArDQo+ICtUZXN0IENhc2U6IG9mX3B1 c2hfbXBscyB0ZXN0DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0K PiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5k IGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1j IDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAo SWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBwdXNoIGEgbmV3IE1QTFMgdGFnDQo+ IHdpdGggRXRoZXJUeXBlIDB4MDgwNikgOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBj cmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1 ZHAgLyBlbmQgYWN0aW9ucw0KPiBvZl9wdXNoX21wbHMgZXRoZXJ0eXBlIDB4MDgwNiAvIGVuZA0K PiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVs ZSwgd2l0aCBhIGRlZmluZWQgTVBMUyBsYXllci90YWc6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAg ICBQa3QwID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpICAvIFVEUCgpIC8gKCdc XHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8g bm90IG1hdGNoIHRoZSBydWxlLCB3aXRoIGRlZmluZWQgTVBMUyBsYXllcnMvdGFnczoNCj4gKw0K PiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJc IikgLyAgTVBMUyhsYWJlbCA9IDB4YWIsIHR0bD0xMjgpIC8gVURQKCkNCj4gLyAoJ1xceDAwJyAq IDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvICBN UExTKGxhYmVsID0gMHhhYiwgdHRsPTEyOCkgLyBVRFAoKSAvDQo+ICgnXFx4MDAnICogNjQpDQo+ ICsgICAgUGt0MyA9IEV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gTVBMUyhsYWJlbCA9 IDB4YWIsIHR0bD0xMjgpIC8gVURQKCkgLw0KPiAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQg PSBFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gIE1QTFMobGFiZWwgPSAweGFi LCB0dGw9MTI4KSAvDQo+IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0K PiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0IGhhcyBoYWQgYW4g TVBMUyB0YWcgd2l0aA0KPiBFdGhlclR5cGUgMHgwODA2IHB1c2hlZCBvbnRvIGl0Lg0KPiArDQo+ ICsNCj4gK0FjdGlvbjogVlhMQU5fRU5DQVANCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4NCj4gK1Rlc3QgQ2FzZTogdnhsYW5fZW5jYXANCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdp dGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAg IGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhl IHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2NCBzb3VyY2UgaXMgMTkyLjE2OC4wLjEsIGVuY2Fw c3VsYXRlIHdpdGggYQ0KPiBWWExBTiB0YWcgd2l0aCBvdmVybGF5IGRlZmluaXRpb24gKHZuaSkg MHgxMTIyMzMpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVz cyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlv bnMNCj4gdnhsYW5fZW5jYXAgZGVmaW5pdGlvbiAweDExMjIzMyAvIGVuZA0KPiArDQo+ICsuLg0K PiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiAr OjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikg IC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBh Y2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAg ICBQa3QxID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gIFVEUCgpIC8gKCdc XHgwMCcgKiA2NCkNCj4gKyAgICBQa3QyID0gRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAuOTlc IikgLyAgVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8gSVAo c3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0g RXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvICBVRFAoKSAvICgnXFx4MDAnICog NjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBw YXNzIHBhY2tldCBoYXMgYmVlbiBlbmNhcHN1bGF0ZWQgd2l0aCBhDQo+IFZYTEFOIHRhZyB3aXRo IHZuaSAweDExMjIzMy4NCj4gKw0KPiArQWN0aW9uOiBWWExBTl9ERUNBUA0KPiArfn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fg0KPiArDQo+ICtUZXN0IENhc2U6IHZ4bGFuX2RlY2FwDQo+ICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQg aW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiAr Li4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNl IGlzIDE5Mi4xNjguMC4xLCBzdHJpcCBhbGwgVlhMQU4NCj4gaGVhZGVycyA6DQo+ICsNCj4gKzo6 DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNy YyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IHZ4bGFuX2RlY2FwIC8gZW5k DQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBy dWxlLCB3aXRoIGEgVlhMQU4gaGVhZGVyOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9 IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAgLyBVRFAoKSAvIFZYTEFOKCkgLyAo J1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBk byBub3QgbWF0Y2ggdGhlIHJ1bGUsIHdpdGggVlhMQU4gaGVhZGVyczoNCj4gKw0KPiArOjoNCj4g Kw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyAgVURQ KCkgLyBWWExBTigpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QyID0gRXRoZXIoKSAvIElQ KHNyYz1cIjEwLjAuMzAuOTlcIikgLyAgVURQKCkgLyBWWExBTigpIC8gKCdcXHgwMCcgKiA2NCkN Cj4gKyAgICBQa3QzID0gRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikgLyBVRFAoKSAvIFZY TEFOKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8gSVAoc3JjPVwi MTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyBWWExBTigpLyAgKCdcXHgwMCcgKiA2NCkNCj4gKw0K PiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0 IGhhcyBoYWQgaXRzIFZYTEFOIGhlYWRlciBzdHJpcHBlZC4NCj4gKw0KPiArQWN0aW9uOiBSQVdf RU5DQVANCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0KPiArVGVzdCBDYXNl OiB0ZXN0X2RhdGENCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQg YW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMg MyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJ ZiB0aGUgSVB2NCBzb3VyY2UgaXMgMTkyLjE2OC4wLjEsIGVuY2Fwc3VsYXRlIHdpdGggYQ0KPiBW TEFOIHRhZyB3aXRoIHRoZSBoZWFkZXIgdmFsdWUgMHg4MTAwYWFhYToNCj4gKw0KPiArOjoNCj4g Kw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlz IDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4gcmF3X2VuY2FwIGRhdGEgMHg4MTAw YWFhYSAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0 Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8g SVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6 DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4x NjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigp IC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAg ICBQa3QzID0gRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikgLyBVRFAoKSAvICgnXFx4MDAn ICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikg LyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRv IG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBhY2tldCBoYXMgYmVlbiBlbmNhcHN1bGF0ZWQgd2l0 aCBhIFZMQU4NCj4gdGFnIHdpdGggdGhlIGhlYWRlciB2YWx1ZSAweDgxMDBhYWFhLg0KPiArDQo+ ICtUZXN0IENhc2U6IHRlc3RfcHJlc2VydmUNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiArDQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGludGVyYWN0aXZlIG1vZGUg d2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsg ICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzIuIFNldCB0 aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBJUHY0IHNvdXJjZSBpcyAxOTIuMTY4LjAuMSwNCj4g K2VuY2Fwc3VsYXRlIHdpdGggYSBWTEFOIHRhZyB3aXRoIHRoZSBoZWFkZXIgdmFsdWUgb2YgMHg4 MTAwYWFhYSBhbmQgYQ0KPiBwcmVzZXJ2ZSBiaXRtYXNrIG9mIDB4ZmZmZmZmZmY6DQo+ICsNCj4g Kzo6DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0 IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IHJhd19lbmNhcCBkYXRh IDB4ODEwMGFhYWEgcHJlc2VydmUgMHhmZmZmZmZmZiAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4g Kw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgIC8gVURQ KCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMg dGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3Qx ID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAq IDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVE UCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QzID0gRXRoZXIoKSAvIElQKHNyYz1cIjgu OC44LjhcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkg LyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyAgVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiAr DQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcGFzcyBwYWNr ZXQgaGFzIGJlZW4gZW5jYXBzdWxhdGVkIHdpdGggYSBWTEFODQo+IHRhZyB3aXRoIHRoZSBoZWFk ZXIgdmFsdWUgMHg4MTAwYWFhYQ0KPiArYW5kIGhhcyBhIHByZXNlcnZlIGJpdG1hc2sgb2YgMHhm ZmZmZmZmZi4NCj4gKw0KPiArVGVzdCBDYXNlOiB0ZXN0X3NpemUNCj4gKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2 ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4g Kw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsy LiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2NCBzb3VyY2UgaXMgMTkyLjE2OC4w LjEsDQo+ICtlbmNhcHN1bGF0ZSB3aXRoIGEgVkxBTiB0YWcgd2l0aCB0aGUgaGVhZGVyIHZhbHVl IG9mIDB4ODEwMGFhYWEgYW5kIGEgZGF0YQ0KPiAoaGVhZGVyKSBzaXplIG9mIDMyLg0KPiArDQo+ ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2 NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0KPiByYXdfZW5jYXAgZGF0 YSAweDgxMDBhYWFhIHNpemUgMzIvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEg cGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBr dDAgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgIC8gVURQKCkgLyAoJ1xceDAw JyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3Qg bWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRoZXIoKSAv IElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAg IFBrdDIgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvICBVRFAoKSAvICgnXFx4 MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8g VURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8gSVAoc3JjPVwi MTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiAr DQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcGFzcyBwYWNrZXQgaGFzIGJlZW4g ZW5jYXBzdWxhdGVkIHdpdGggYSBWTEFODQo+IHRhZyB3aXRoIHRoZSBoZWFkZXIgdmFsdWUgMHg4 MTAwYWFhYQ0KPiArYW5kIGhhcyBhIHNpemUgb2YgMzIuDQo+ICsNCj4gK0FjdGlvbjogUkFXX0RF Q0FQDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK1Rlc3QgQ2FzZTog dGVzdF9kYXRhDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiAr MS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFu ZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMg LS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYg dGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBkZWNhcHN1bGF0ZSBhIFZMQU4NCj4gdGFn IHdpdGggdGhlIGhlYWRlciB2YWx1ZSAweDgxMDBhYWFhOg0KPiArDQo+ICs6Og0KPiArDQo+ICsg ICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2 OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0KPiByYXdfZGVjYXAgZGF0YSAweDgxMDBhYWFhIC8g ZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRo ZSBydWxlLCB3aXRoIGEgbWF0Y2hpbmcgVkxBTiBoZWFkZXI6DQo+ICsNCj4gKzo6DQo+ICsNCj4g KyAgICBQa3QwID0gRXRoZXIoKSAvICBEb3QxUShwcmlvID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9 IDB4YmJiKSAvDQo+IElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpICAvIFVEUCgpIC8gKCdcXHgwMCcg KiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1h dGNoIHRoZSBydWxlLCB3aXRoIG1hdGNoaW5nIFZMQU4gaGVhZGVyczoNCj4gKw0KPiArOjoNCj4g Kw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gIERvdDFRKHByaW8gPSAweDUsIGlkID0gMHgwLCB2 bGFuID0gMHhiYmIpIC8NCj4gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4 MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkgLyAgRG90MVEocHJpbyA9IDB4NSwgaWQg PSAweDAsIHZsYW4gPSAweGJiYikgLw0KPiBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gIFVEUCgp IC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QzID0gRXRoZXIoKSAvICBEb3QxUShwcmlvID0g MHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YmJiKSAvIElQKHNyYz1cIjguOC44LjhcIikNCj4gLyBV RFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkgLyAgRG90MVEocHJp byA9IDB4NSwgaWQgPSAweDAsIHZsYW4gPSAweGJiYikgLw0KPiBJUChzcmM9XCIxMzIuMTc3LjAu OTlcIikgLyAgVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBD aGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcGFzcyBwYWNrZXQgaGFzIGhhZCBpdHMgVkxBTiB0 YWcgZGVjYXBzdWxhdGVkLg0KPiArDQo+ICsNCj4gK1Rlc3QgQ2FzZTogdGVzdF9zaXplDQo+ICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQg aW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiAr Li4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNl IGlzIDE5Mi4xNjguMC4xLCBkZWNhcHN1bGF0ZSBhIFZMQU4NCj4gdGFnIHdpdGggdGhlIGhlYWRl ciB2YWx1ZSAweDgxMDBhYWFhDQo+ICthbmQgaGVhZGVyIHNpemUgb2YgMzI6DQo+ICsNCj4gKzo6 DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNy YyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IHJhd19kZWNhcCBkYXRhIDB4 ODEwMGFhYWEgc2l6ZSAzMiAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFj a2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZSwgd2l0aCBhIG1hdGNoaW5nIFZMQU4gaGVhZGVyOg0K PiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyAgRG90MVEocHJpbyA9IDB4 NSwgaWQgPSAweDAsIHZsYW4gPSAweGJiYikgLw0KPiBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAg LyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFj a2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZSwgd2l0aCBtYXRjaGluZyBWTEFOIGhlYWRl cnM6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRoZXIoKSAvICBEb3QxUShwcmlv ID0gMHg1LCBpZCA9IDB4MCwgdmxhbiA9IDB4YmJiKSAvDQo+IElQKHNyYz1cIjE5Mi4xNjguMC4y XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gIERv dDFRKHByaW8gPSAweDUsIGlkID0gMHgwLCB2bGFuID0gMHhiYmIpIC8NCj4gSVAoc3JjPVwiMTAu MC4zMC45OVwiKSAvICBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVy KCkgLyAgRG90MVEocHJpbyA9IDB4NSwgaWQgPSAweDAsIHZsYW4gPSAweGJiYikgLyBJUChzcmM9 XCI4LjguOC44XCIpDQo+IC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQgPSBF dGhlcigpIC8gIERvdDFRKHByaW8gPSAweDUsIGlkID0gMHgwLCB2bGFuID0gMHhiYmIpIC8NCj4g SVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0K PiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0 IGhhcyBoYWQgaXRzIFZMQU4gdGFnIG9mIHNpemUgMzINCj4gZGVjYXBzdWxhdGVkLg0KPiArDQo+ ICtBY3Rpb246IFNFVF9JUFY0X1NSQw0KPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0K PiArDQo+ICtUZXN0IENhc2U6IHNldF9pcHY0X3NyYyB0ZXN0DQo+ICstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGludGVyYWN0aXZlIG1vZGUg d2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsg ICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzIuIFNldCB0 aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBJUHY0IHNvdXJjZSBpcyAxOTIuMTY4LjAuMSwgc2V0 IHRoZSBpcHY0IHNyYyB0bw0KPiAxNzIuMTYuMC4xMCkgOg0KPiArDQo+ICs6Og0KPiArDQo+ICsg ICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2 OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0KPiBzZXRfaXB2NF9zcmMgaXB2NF9hZGRyIDE3Mi4x Ni4wLjEwIC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBt YXRjaGVzIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkg LyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0K PiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxl Og0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIu MTY4LjAuMlwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QyID0gRXRoZXIo KSAvIElQKHNyYz1cIjEwLjAuMzAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsg ICAgUGt0MyA9IEV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1xceDAw JyAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIp IC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0 byBtYWtlIHN1cmUgdGhhdCB0aGUgcGFzcyBwYWNrZXQgaGFzIGhhZCBpdHMgSVB2NCBzb3VyY2Ug YWRkcmVzcyBzZXQNCj4gdG8gMTcyLjE2LjAuMTAuDQo+ICsNCj4gKw0KPiArQWN0aW9uOiBTRVRf SVBWNF9EU1QNCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0KPiArVGVzdCBD YXNlOiBzZXRfaXB2NF9kc3QgdGVzdA0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBvcnQg Ym91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rlc3Rw bWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBy dWxlIChJZiB0aGUgSVB2NCBkZXN0aW5hdGlvbiBpcyAxOTIuMTY4LjAuMSwgc2V0IHRoZSBpcHY0 IGRzdA0KPiB0byAxNzIuMTYuMC4xMCkgOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBj cmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBkc3QgaXMgMTkyLjE2OC4wLjEgLyB1 ZHAgLyBlbmQgYWN0aW9ucw0KPiBzZXRfaXB2NF9kc3QgaXB2NF9hZGRyIDE3Mi4xNi4wLjEwIC8g ZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRo ZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUChkc3Q9 XCIxOTIuMTY4LjAuMVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4g Kw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiArDQo+ ICs6Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUChkc3Q9XCIxOTIuMTY4LjAuMlwi KSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QyID0gRXRoZXIoKSAvIElQKGRz dD1cIjEwLjAuMzAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9 IEV0aGVyKCkgLyBJUChkc3Q9XCI4LjguOC44XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0K PiArICAgIFBrdDQgPSBFdGhlcigpIC8gSVAoZHN0PVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkg LyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1 cmUgdGhhdCB0aGUgcGFzcyBwYWNrZXQgaGFzIGhhZCBpdHMgSVB2NCBkZXN0aW5hdGlvbiBhZGRy ZXNzDQo+IHNldCB0byAxNzIuMTYuMC4xMC4NCj4gKw0KPiArQWN0aW9uOiBTRVRfSVBWNl9TUkMN Cj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0KPiArVGVzdCBDYXNlOiBzZXRf aXB2Nl9zcmMgdGVzdA0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsx LiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5k IGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAt LSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0 aGUgSVB2NiBzb3VyY2UgaXMNCj4gMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpi MWMyLA0KPiArc2V0IHRoZSBpcHY2IHNvdXJjZSB0byAyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6 OTk5OTphYWFhOmJiYmIpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAg aW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjYgc3JjIGlzDQo+IDIwMDE6MDAwMDo5ZDM4OjZhYjg6 MWM0ODozYTFjOmE5NWE6YjFjMiAvIHVkcCAvDQo+ICsgICAgZW5kIGFjdGlvbnMgc2V0X2lwdjZf c3JjIGlwdjZfYWRkcg0KPiAyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6OTk5OTphYWFhOmJiYmIg LyBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMg dGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0gRXRoZXIoKSAvIElQdjYo c3JjPVwiMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpiMWMyXCIpIC8NCj4gVURQ KCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMg dGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3Qx ID0gRXRoZXIoKSAvIElQdjYoc3JjPVwiMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1 YTpiMWMzXCIpIC8NCj4gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhl cigpIC8gSVB2NihzcmM9XCIyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzRc IikgLw0KPiBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVyKCkgLyBJ UHY2KHNyYz1cIjIwMDE6MDAwMDo5ZDM4OjZhYjg6MWM0ODozYTFjOmE5NWE6YjFjNVwiKSAvDQo+ IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQdjYoc3Jj PVwiMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpiMWM2XCIpIC8NCj4gVURQKCkg LyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1 cmUgdGhhdCB0aGUgcGFzcyBwYWNrZXQgaGFzIGhhZCBpdHMgSVB2NiBzb3VyY2UgYWRkcmVzcyBz ZXQNCj4gdG8gMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4Ojk5OTk6YWFhYTpiYmJiLg0KPiArDQo+ ICtBY3Rpb246IFNFVF9JUFY2X0RTVA0KPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0K PiArDQo+ICtUZXN0IENhc2U6IHNldF9pcHY2X2RzdCB0ZXN0DQo+ICstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGludGVyYWN0aXZlIG1vZGUg d2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsg ICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzIuIFNldCB0 aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBJUHY2IGRlc3RpbmF0aW9uIGlzDQo+IDIwMDE6MDAw MDo5ZDM4OjZhYjg6MWM0ODozYTFjOmE5NWE6YjFjMiwNCj4gK3NldCB0aGUgaXB2NiBkc3QgdG8g MjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4Ojk5OTk6YWFhYTpiYmJiKSA6DQo+ICsNCj4gKzo6DQo+ ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY2IHNyYyBp cw0KPiAyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzIgLyB1ZHAgLw0KPiAr ICAgIGVuZCBhY3Rpb25zIHNldF9pcHY2X2RzdCBpcHY2X2FkZHINCj4gMjAwMTowMDAwOjlkMzg6 NmFiODoxYzQ4Ojk5OTk6YWFhYTpiYmJiIC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNl bmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsg ICAgUGt0MCA9IEV0aGVyKCkgLyBJUHY2KGRzdD1cIjIwMDE6MDAwMDo5ZDM4OjZhYjg6MWM0ODoz YTFjOmE5NWE6YjFjMlwiKSAvDQo+IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4N Cj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlOg0KPiAr DQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUHY2KGRzdD1cIjIwMDE6MDAw MDo5ZDM4OjZhYjg6MWM0ODozYTFjOmE5NWE6YjFjM1wiKSAvDQo+IFVEUCgpIC8gKCdcXHgwMCcg KiA2NCkNCj4gKyAgICBQa3QyID0gRXRoZXIoKSAvIElQdjYoZHN0PVwiMjAwMTowMDAwOjlkMzg6 NmFiODoxYzQ4OjNhMWM6YTk1YTpiMWM0XCIpIC8NCj4gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0K PiArICAgIFBrdDMgPSBFdGhlcigpIC8gSVB2Nihkc3Q9XCIyMDAxOjAwMDA6OWQzODo2YWI4OjFj NDg6M2ExYzphOTVhOmIxYzVcIikgLw0KPiBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAg UGt0NCA9IEV0aGVyKCkgLyBJUHY2KGRzdD1cIjIwMDE6MDAwMDo5ZDM4OjZhYjg6MWM0ODozYTFj OmE5NWE6YjFjNlwiKSAvDQo+IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4g Kw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0IGhhcyBoYWQg aXRzIElQdjYgZGVzdGluYXRpb24gYWRkcmVzcw0KPiBzZXQgdG8gIDIwMDE6MDAwMDo5ZDM4OjZh Yjg6MWM0ODo5OTk5OmFhYWE6YmJiYi4NCj4gKw0KPiArQWN0aW9uOiBTRVRfVFBfU1JDDQo+ICt+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK1Rlc3QgQ2FzZTogdGVzdF91ZHAN Cj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQg aW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiAr Li4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNl IGlzIDE5Mi4xNjguMC4xLCBzZXQgdGhlIHRjcC91ZHANCj4gc291cmNlIHBvcnQgdG8gMTk5ODoN Cj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0 aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4gc2V0X3Rw X3NyYyAxOTk4LyBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0aGF0 IG1hdGNoZXMgdGhlIHJ1bGUgd2l0aCBhIGRlZmluZWQgVURQIHNvdXJjZSBwb3J0Og0KPiArDQo+ ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwi KSAvIFVEUChzcG9ydD0zODM4KSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4g KzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZSB3aXRoIGRlZmluZWQg VURQIHNvdXJjZSBwb3J0czoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigp IC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoc3BvcnQ9MzgzOCkgLyAoJ1xceDAwJyAq IDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVE UChzcG9ydD0zODM4KSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVyKCkgLyBJ UChzcmM9XCI4LjguOC44XCIpIC8gVURQKHNwb3J0PTM4MzgpIC8gKCdcXHgwMCcgKiA2NCkNCj4g KyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUChzcG9y dD0zODM4KSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRv IG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBhY2tldCBoYXMgaGFkIGl0cyBVRFAgc291cmNlIHBv cnQgc2V0IHRvDQo+IDE5OTguDQo+ICsNCj4gK1Rlc3QgQ2FzZTogdGVzdF90Y3ANCj4gKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJh Y3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6 DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0K PiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4x NjguMC4xLCBzZXQgdGhlIHRjcC91ZHANCj4gc291cmNlIHBvcnQgdG8gMTk5ODoNCj4gKw0KPiAr OjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQg c3JjIGlzIDE5Mi4xNjguMC4xIC8gdGNwIC8gZW5kIGFjdGlvbnMNCj4gc2V0X3RwX3NyYyAxOTk4 IC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVz IHRoZSBydWxlIHdpdGggYSBkZWZpbmVkIFRDUCBzb3VyY2UgcG9ydDoNCj4gKw0KPiArOjoNCj4g Kw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgLyBUQ1Ao c3BvcnQ9MzgzOCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5k IHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGUgd2l0aCBkZWZpbmVkIFRDUCBzb3Vy Y2UgcG9ydHM6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRoZXIoKSAvIElQKHNy Yz1cIjE5Mi4xNjguMC4yXCIpIC8gVENQKHNwb3J0PTM4MzgpIC8gKCdcXHgwMCcgKiA2NCkNCj4g KyAgICBQa3QyID0gRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAuOTlcIikgLyBUQ1Aoc3BvcnQ9 MzgzOCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8gSVAoc3JjPVwi OC44LjguOFwiKSAvIFRDUChzcG9ydD0zODM4KSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0 NCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBUQ1Aoc3BvcnQ9MzgzOCkg LyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1 cmUgdGhhdCB0aGUgcGFzcyBwYWNrZXQgaGFzIGhhZCBpdHMgVENQIHNvdXJjZSBwb3J0IHNldCB0 bw0KPiAxOTk4Lg0KPiArDQo+ICtBY3Rpb246IFNFVF9UUF9EU1QNCj4gK35+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4NCj4gKw0KPiArDQo+ICtUZXN0IENhc2U6IHRlc3RfdWRwDQo+ICstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGludGVy YWN0aXZlIG1vZGUgd2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ICs6 Og0KPiArDQo+ICsgICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ICsN Cj4gKzIuIFNldCB0aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBJUHY0IGRlc3RpbmF0aW9uIGlz IDE5Mi4xNjguMC4xLCBzZXQgdGhlIHRjcC91ZHANCj4gZGVzdGluYXRpb24gcG9ydCB0byAxOTk4 Og0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4g ZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0KPiBzZXRf dHBfZHN0IDE5OTgvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRo YXQgbWF0Y2hlcyB0aGUgcnVsZSB3aXRoIGEgZGVmaW5lZCBVRFAgZGVzdGluYXRpb24gcG9ydDoN Cj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2 OC4wLjFcIikgLyBVRFAoZHBvcnQ9MzgzOCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0K PiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGUgd2l0aCBk ZWZpbmVkIFVEUCBkZXN0aW5hdGlvbiBwb3J0czoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBr dDEgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoZHBvcnQ9MzgzOCkg LyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4z MC45OVwiKSAvIFVEUChkcG9ydD0zODM4KSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9 IEV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gVURQKGRwb3J0PTM4MzgpIC8gKCdcXHgw MCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwi KSAvIFVEUChkcG9ydD0zODM4KSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4g KzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBhY2tldCBoYXMgaGFkIGl0cyBV RFAgZGVzdGluYXRpb24gcG9ydCBzZXQNCj4gdG8gMTk5OC4NCj4gKw0KPiArVGVzdCBDYXNlOiB0 ZXN0X3RjcA0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4g dGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWls YWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0K PiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2 NCBzb3VyY2UgaXMgMTkyLjE2OC4wLjEsIHNldCB0aGUgdGNwL3VkcA0KPiBkZXN0aW5hdGlvbiBw b3J0IHRvIDE5OTg6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jl c3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHRjcCAvIGVuZCBhY3Rp b25zDQo+IHNldF90cF9kc3QgMTk5OCAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5k IGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZSB3aXRoIGEgZGVmaW5lZCBUQ1AgZGVzdGlu YXRpb24gcG9ydDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8gSVAo c3JjPVwiMTkyLjE2OC4wLjFcIikgLyBUQ1AoZHBvcnQ9MzgzOCkgLyAoJ1xceDAwJyAqIDY0KQ0K PiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhl IHJ1bGUgd2l0aCBkZWZpbmVkIFRDUCBkZXN0aW5hdGlvbiBwb3J0czoNCj4gKw0KPiArOjoNCj4g Kw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBUQ1Ao ZHBvcnQ9MzgzOCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAo c3JjPVwiMTAuMC4zMC45OVwiKSAvIFRDUChkcG9ydD0zODM4KSAvICgnXFx4MDAnICogNjQpDQo+ ICsgICAgUGt0MyA9IEV0aGVyKCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gVENQKGRwb3J0PTM4 MzgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQKHNyYz1cIjEz Mi4xNzcuMC45OVwiKSAvIFRDUChkcG9ydD0zODM4KSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4g Ky4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBhY2tldCBo YXMgaGFkIGl0cyBUQ1AgZGVzdGluYXRpb24gcG9ydCBzZXQNCj4gdG8gMTk5OC4NCj4gK0FjdGlv bjogU0VUX1RUTA0KPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0KPiArDQo+ICtUZXN0 IENhc2U6IHNldF90dGwgdGVzdA0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGludGVyYWN0aXZlIG1vZGUgd2l0aCBvbmUgcG9y dCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgYnVpbGQvdGVz dHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzIuIFNldCB0aGUgdGVzdCBmbG93 IHJ1bGUgKElmIHRoZSBJUHY0IHNvdXJjZSBpcyAxOTIuMTY4LjAuMSwgc2V0IFRUTCB0byBhIHZh bHVlIG9mDQo+IDY0KSA6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGlu Z3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBh Y3Rpb25zDQo+IHNldF90dGwgdHRsX3ZhbHVlIDY0IC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4g KzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlLCB3aXRoIGEgZGVmaW5lZCBU VEwgaW4gdGhlIElQIGxheWVyOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVy KCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiLCB0dGw9MTI4KSAgLyBVRFAoKSAvICgnXFx4MDAn ICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBt YXRjaCB0aGUgcnVsZSwgd2l0aCBhIGRlZmluZWQgVFRMIGluIHRoZSBJUCBsYXllcjoNCj4gKw0K PiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJc IiwgdHRsID0gMTI4KSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QyID0gRXRo ZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAuOTlcIiwgdHRsID0gMTI4KSAvIFVEUCgpIC8gKCdcXHgw MCcgKiA2NCkNCj4gKyAgICBQa3QzID0gRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIiwgdHRs ID0gMTI4KSAvICBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkg LyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIiwgdHRsID0gMTI4KSAvIFVEUCgpIC8gKCdcXHgwMCcg KiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhl IHBhc3MgcGFja2V0IGhhcyBoYWQgaXRzIFRUTCBkZWZpbmVkIGFzIDY0Lg0KPiArDQo+ICtBY3Rp b246IFNFVF9NQUNfU1JDDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4g K1Rlc3QgQ2FzZTogc2V0X21hY19zcmMgdGVzdA0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGludGVy YWN0aXZlIG1vZGUgd2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ICs6 Og0KPiArDQo+ICsgICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ICsN Cj4gKzIuIFNldCB0aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBJUHY0IHNvdXJjZSBpcyAxOTIu MTY4LjAuMSwgc2V0IE1BQyBzcmMgdG8NCj4gMTA6MjA6MzA6NDA6NTA6NjApIDoNCj4gKw0KPiAr OjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQg c3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4gc2V0X21hY19zcmMgbWFj X2FkZHIgMTA6MjA6MzA6NDA6NTA6NjAgLyBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4gU2Vu ZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGUsIHdpdGggYSBkZWZpbmVkIHNyYyBNQUMg YWRkcmVzczoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcihzcmM9XCI5MDo2 MTphZTpmZDo0MTo0M1wiKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQKCkgLw0KPiAo J1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBk byBub3QgbWF0Y2ggdGhlIHJ1bGUsIHdpdGggZGVmaW5lZCBzcmMgTUFDIGFkZHJlc3NlczoNCj4g Kw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcihzcmM9XCI5MDo2MTphZTpmZDo0MTo0 M1wiKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLw0KPiAoJ1xceDAwJyAqIDY0 KQ0KPiArICAgIFBrdDIgPSBFdGhlcihzcmM9XCI5MDo2MTphZTpmZDo0MTo0M1wiICkgLyBJUChz cmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLw0KPiAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBr dDMgPSBFdGhlcihzcmM9XCI5MDo2MTphZTpmZDo0MTo0M1wiICkgLyBJUChzcmM9XCI4LjguOC44 XCIpIC8gVURQKCkgLyAoJ1xceDAwJw0KPiAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcihzcmM9 XCI5MDo2MTphZTpmZDo0MTo0M1wiICkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAo KSAvDQo+ICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1h a2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBhY2tldCBoYXMgaGFkIGl0cyBzb3VyY2UgTUFDIGFkZHJl c3Mgc2V0DQo+IHRvIDEwOjIwOjMwOjQwOjUwOjYwLg0KPiArDQo+ICtBY3Rpb246IFNFVF9NQUNf RFNUDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK1Rlc3QgQ2FzZTog c2V0X21hY19kc3QgdGVzdA0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGludGVyYWN0aXZlIG1vZGUg d2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsg ICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzIuIFNldCB0 aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBJUHY0IHNvdXJjZSBpcyAxOTIuMTY4LjAuMSwgc2V0 IE1BQyBkc3QgdG8NCj4gMTA6MjA6MzA6NDA6NTA6NjApIDoNCj4gKw0KPiArOjoNCj4gKw0KPiAr ICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4x NjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMNCj4gc2V0X21hY19kc3QgbWFjX2FkZHIgMTA6MjA6 MzA6NDA6NTA6NjAgLyBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4gU2VuZCBhIHBhY2tldCB0 aGF0IG1hdGNoZXMgdGhlIHJ1bGUsIHdpdGggYSBkZWZpbmVkIGRzdCBNQUMgYWRkcmVzczoNCj4g Kw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcihzcmM9XCI5MDo2MTphZTpmZDo0MTo0 M1wiKSAvIElQKGRzdCA9XCIxOTIuMTY4LjAuMVwiKSAvIFVEUCgpIC8NCj4gKCdcXHgwMCcgKiA2 NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNo IHRoZSBydWxlLCB3aXRoIGRlZmluZWQgZHN0IE1BQyBhZGRyZXNzZXM6DQo+ICsNCj4gKzo6DQo+ ICsNCj4gKyAgICBQa3QxID0gRXRoZXIoZHN0PVwiOTA6NjE6YWU6ZmQ6NDE6NDNcIikgLyBJUChz cmM9XCIxOTIuMTY4LjAuMlwiKSAvIFVEUCgpIC8NCj4gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQ a3QyID0gRXRoZXIoZHN0PVwiOTA6NjE6YWU6ZmQ6NDE6NDNcIiApIC8gSVAoc3JjPVwiMTAuMC4z MC45OVwiKSAvIFVEUCgpIC8NCj4gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QzID0gRXRoZXIo ZHN0PVwiOTA6NjE6YWU6ZmQ6NDE6NDNcIiApIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgp IC8NCj4gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoZHN0PVwiOTA6NjE6YWU6 ZmQ6NDE6NDNcIiApIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVURQKCkgLw0KPiAoJ1xc eDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhh dCB0aGUgcGFzcyBwYWNrZXQgaGFzIGhhZCBpdHMgZGVzdGluYXRpb24gTUFDIGFkZHJlc3MNCj4g c2V0IHRvIDEwOjIwOjMwOjQwOjUwOjYwLg0KPiArDQo+ICtBY3Rpb246IElOQ19UQ1BfU0VRDQo+ ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK1Rlc3QgQ2FzZTogaW5jX3Rj cF9zZXEgdGVzdA0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBS dW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2 YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAt aQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUg SVB2NCBzb3VyY2UgaXMgMTkyLjE2OC4wLjEsIGluY3JlYXNlIHRoZSBUQ1Agc2VxDQo+IHZhbHVl Og0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4g ZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB0Y3AgLyBlbmQgYWN0aW9ucw0KPiBpbmNf dGNwX3NlcSAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQg bWF0Y2hlcyB0aGUgcnVsZSB3aXRoIGEgZGVmaW5lZCBUQ1Agc2VxIHZhbHVlOg0KPiArDQo+ICs6 Og0KPiArDQo+ICsgICAgUGt0MCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAv IFRDUChzZXE9MikgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5k IHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGUgd2l0aCBkZWZpbmVkIFRDUCBzZXEg dmFsdWVzOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUChzcmM9 XCIxOTIuMTY4LjAuMlwiKSAvIFRDUChzZXE9MikgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBr dDIgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFRDUChzZXE9MikgLyAoJ1xc eDAwJyAqIDY0KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAv IFRDUChzZXE9MikgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8gSVAo c3JjPVwiMTMyLjE3Ny4wLjk5XCIpIC8gVENQKHNlcT0yKSAvICgnXFx4MDAnICogNjQpDQo+ICsN Cj4gKy4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBhY2tl dCBoYXMgaGFkIGl0cyBUQ1Agc2VxIHZhbHVlIGluY3JlYXNlZC4NCj4gKw0KPiArQWN0aW9uOiBE RUNfVENQX1NFUQ0KPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0KPiArDQo+ICtUZXN0 IENhc2U6IGRlY190Y3Bfc2VxIHRlc3QNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0 IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0 cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cg cnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBkZWNyZWFzZSB0aGUgVENQ IHNlcQ0KPiB2YWx1ZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5n cmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8gdGNwIC8gZW5kIGFj dGlvbnMNCj4gZGVjX3RjcF9zZXEgLyBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4gU2VuZCBh IHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGUgd2l0aCBhIGRlZmluZWQgVENQIHNlcSB2YWx1 ZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTky LjE2OC4wLjFcIikgLyBUQ1Aoc2VxPTIpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4g Kw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8gbm90IG1hdGNoIHRoZSBydWxlIHdpdGggZGVm aW5lZCBUQ1Agc2VxIHZhbHVlczoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhl cigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBUQ1Aoc2VxPTIpIC8gKCdcXHgwMCcgKiA2 NCkNCj4gKyAgICBQa3QyID0gRXRoZXIoKSAvIElQKHNyYz1cIjEwLjAuMzAuOTlcIikgLyBUQ1Ao c2VxPTIpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QzID0gRXRoZXIoKSAvIElQKHNyYz1c IjguOC44LjhcIikgLyBUQ1Aoc2VxPTIpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0g RXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFRDUChzZXE9MikgLyAoJ1xceDAw JyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs1LiBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0 aGUgcGFzcyBwYWNrZXQgaGFzIGhhZCBpdHMgVENQIHNlcSB2YWx1ZSBkZWNyZWFzZWQuDQo+ICsN Cj4gK0FjdGlvbjogSU5DX1RDUF9BQ0sNCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4N Cj4gKw0KPiArVGVzdCBDYXNlOiBpbmNfdGNwX2FjayB0ZXN0DQo+ICstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0ZXN0cG1kIGluIGludGVyYWN0aXZlIG1vZGUg d2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsg ICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzIuIFNldCB0 aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBJUHY0IHNvdXJjZSBpcyAxOTIuMTY4LjAuMSwgaW5j cmVhc2UgdGhlIFRDUCBhY2sNCj4gdmFsdWU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBmbG93 IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAv IHRjcCAvIGVuZCBhY3Rpb25zDQo+IGluY190Y3BfYWNrIC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsN Cj4gKzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlIHdpdGggYSBkZWZpbmVk IFRDUCBhY2sgdmFsdWU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0gRXRoZXIoKSAv IElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVENQKGFjaz0yKSAvICgnXFx4MDAnICogNjQpDQo+ ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUg cnVsZSB3aXRoIGRlZmluZWQgVENQIGFjayB2YWx1ZXM6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAg ICBQa3QxID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVENQKGFjaz0yKSAv ICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMw Ljk5XCIpIC8gVENQKGFjaz0yKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MyA9IEV0aGVy KCkgLyBJUChzcmM9XCI4LjguOC44XCIpIC8gVENQKGFjaz0yKSAvICgnXFx4MDAnICogNjQpDQo+ ICsgICAgUGt0NCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBUQ1AoYWNr PTIpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFr ZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0IGhhcyBoYWQgaXRzIFRDUCBhY2sgdmFsdWUgaW5j cmVhc2VkLg0KPiArDQo+ICtBY3Rpb246IERFQ19UQ1BfQUNLDQo+ICt+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+DQo+ICsNCj4gK1Rlc3QgQ2FzZTogZGVjX3RjcF9hY2sgdGVzdA0KPiArLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRl cmFjdGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiAr OjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiAr DQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2NCBzb3VyY2UgaXMgMTky LjE2OC4wLjEsIGRlY3JlYXNlIHRoZSBUQ1AgYWNrDQo+IHZhbHVlOg0KPiArDQo+ICs6Og0KPiAr DQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMg MTkyLjE2OC4wLjEgLyB0Y3AgLyBlbmQgYWN0aW9ucw0KPiBkZWNfdGNwX2FjayAvIGVuZA0KPiAr DQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZSB3 aXRoIGEgZGVmaW5lZCBUQ1AgYWNrIHZhbHVlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0 MCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFRDUChhY2s9MikgLyAoJ1xc eDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBu b3QgbWF0Y2ggdGhlIHJ1bGUgd2l0aCBkZWZpbmVkIFRDUCBhY2sgdmFsdWVzOg0KPiArDQo+ICs6 Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMlwiKSAv IFRDUChhY2s9MikgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAo c3JjPVwiMTAuMC4zMC45OVwiKSAvIFRDUChhY2s9MikgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAg IFBrdDMgPSBFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFRDUChhY2s9MikgLyAoJ1xc eDAwJyAqIDY0KQ0KPiArICAgIFBrdDQgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTMyLjE3Ny4wLjk5 XCIpIC8gVENQKGFjaz0yKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzUu IENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBhY2tldCBoYXMgaGFkIGl0cyBUQ1Ag YWNrIHZhbHVlIGRlY3JlYXNlZC4NCj4gKw0KPiArQWN0aW9uOiBTRVRfVEFHDQo+ICt+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK1Rlc3QgQ2FzZTogdGVzdF9kYXRhDQo+ICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiAr MS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFu ZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMg LS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYg dGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCB0YWcgdGhlIHBhY2tldCB3aXRoDQo+IHRo ZSB2YWx1ZSAweGFiYykgOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBp bmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAgLyBlbmQg YWN0aW9ucw0KPiBzZXRfdGFnIGRhdGEgMHhhYmMgLyBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiAr My4gU2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsN Cj4gKyAgICBQa3QwID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQKCkg LyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhh dCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0g RXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0 KQ0KPiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgp IC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QzID0gRXRoZXIoKSAvIElQKHNyYz1cIjguOC44 LjhcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkgLyBJ UChzcmM9XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4g Ky4uDQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBhY2tldCBo YXMgYmVlbiB0YWdnZWQgd2l0aCB0aGUgY29ycmVjdA0KPiBkYXRhLg0KPiArDQo+ICtUZXN0IENh c2U6IHRlc3RfbWFzaw0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ICsNCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9k ZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4g KyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0 IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCB0 YWcgdGhlIHBhY2tldCB3aXRoDQo+IHRoZSB2YWx1ZSAweGFiYyBhbmQgbWFzayAweGNiYSkgOg0K PiArDQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRo IC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0KPiBzZXRfdGFn IGRhdGEgMHhhYmMgbWFzayAweGNiYSAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5k IGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAg IFBrdDAgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4 MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5v dCBtYXRjaCB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigp IC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsg ICAgUGt0MiA9IEV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xc eDAwJyAqIDY0KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAv IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQKHNyYz1c IjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4g Kw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0IGhhcyBiZWVu IHRhZ2dlZCB3aXRoIHRoZSBjb3JyZWN0DQo+IGRhdGEgYW5kIG1hc2suDQo+ICsNCj4gKw0KPiAr VGVzdCBDYXNlOiB0ZXN0X2luZGV4DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFj dGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoN Cj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2NCBzb3VyY2UgaXMgMTkyLjE2 OC4wLjEsIHNldCB0aGUgcGFja2V0IHRhZw0KPiBpbmRleCAxIHRvIHRoZSB2YWx1ZSAweGFiYykg Og0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4g ZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0KPiBzZXRf dGFnIGRhdGEgMHhhYmMgaW5kZXggMSAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5k IGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAg IFBrdDAgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4 MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5v dCBtYXRjaCB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigp IC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsg ICAgUGt0MiA9IEV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xc eDAwJyAqIDY0KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAv IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQKHNyYz1c IjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4g Kw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0IGhhcyBiZWVu IHRhZ2dlZCB3aXRoIHRoZSBjb3JyZWN0DQo+IGRhdGEgb24gdGhlIGNvcnJlY3QgdGFnIGluZGV4 Lg0KPiArDQo+ICsNCj4gK0FjdGlvbjogU0VUX01FVEENCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4NCj4gKw0KPiArVGVzdCBDYXNlOiB0ZXN0X2RhdGENCj4gKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICsxLiBSdW4gdGVzdHBt ZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToN Cj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ ICsuLg0KPiArDQo+ICsyLiBTZXQgdGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2NCBzb3Vy Y2UgaXMgMTkyLjE2OC4wLjEsIHNldCB0aGUgcGFja2V0J3MgbWV0YQ0KPiB0byB0aGUgdmFsdWUg MHhhYmMpIDoNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIGZsb3cgY3JlYXRlIDAgaW5ncmVzcyBw YXR0ZXJuIGV0aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMN Cj4gc2V0X21ldGEgZGF0YSAweGFiYyAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5k IGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAg IFBrdDAgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4 MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5v dCBtYXRjaCB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigp IC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsg ICAgUGt0MiA9IEV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xc eDAwJyAqIDY0KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAv IFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQKHNyYz1c IjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4g Kw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0IGhhcyBoYWQg dGhlIGNvcnJlY3QgbWV0YWRhdGENCj4gYXNzaWduZWQgdG8gaXQuDQo+ICsNCj4gK1Rlc3QgQ2Fz ZTogdGVzdF9tYXNrDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gKw0KPiArDQo+ICsxLiBSdW4gdGVzdHBtZCBpbiBpbnRlcmFjdGl2ZSBtb2Rl IHdpdGggb25lIHBvcnQgYm91bmQgYW5kIGF2YWlsYWJsZToNCj4gKw0KPiArOjoNCj4gKw0KPiAr ICAgIGJ1aWxkL3Rlc3RwbWQgLWMgMyAtLSAtaQ0KPiArDQo+ICsuLg0KPiArDQo+ICsyLiBTZXQg dGhlIHRlc3QgZmxvdyBydWxlIChJZiB0aGUgSVB2NCBzb3VyY2UgaXMgMTkyLjE2OC4wLjEsIHNl dCB0aGUgcGFja2V0J3MgbWV0YQ0KPiB0byB0aGUgdmFsdWUgMHhhYmMgYW5kIG1hc2sgMHhjYmEp Og0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4g ZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAgLyBlbmQgYWN0aW9ucw0KPiBzZXRf bWV0YSBkYXRhIDB4YWJjIG1hc2sgMHhjYmEgLyBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4g U2VuZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4g KyAgICBQa3QwID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQKCkgLyAo J1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBk byBub3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRo ZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0K PiArICAgIFBrdDIgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgpIC8g KCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QzID0gRXRoZXIoKSAvIElQKHNyYz1cIjguOC44Ljhc IikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkgLyBJUChz cmM9XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4u DQo+ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBhY2tldCBoYXMg aGFkIHRoZSBjb3JyZWN0IG1ldGFkYXRhIGFuZA0KPiBtYXNrIGFzc2lnbmVkIHRvIGl0Lg0KPiAr DQo+ICtBY3Rpb246IFNFVF9JUFY0X0RTQ1ANCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4NCj4gKw0KPiArVGVzdCBDYXNlOiBzZXRfaXB2NF9kc2NwIHRlc3QNCj4gKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4gaW50ZXJhY3Rp dmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4NCj4gKw0KPiAr Mi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlzIDE5Mi4xNjgu MC4xLCBzZXQgdGhlIElQdjQgZHNjcCAodG9zKQ0KPiB0byAyKSA6DQo+ICsNCj4gKzo6DQo+ICsN Cj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IHNyYyBpcyAx OTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IHNldF9pcHY0X2RzY3AgMiAvIGVuZA0K PiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVs ZSB3aXRoIGEgZGVmaW5lZCBkc2NwICh0b3MpIHZhbHVlOg0KPiArDQo+ICs6Og0KPiArDQo+ICsg ICAgUGt0MCA9IEV0aGVyKCkgLyBJUChzcmM9XCIxOTIuMTY4LjAuMVwiKSAvIFVEUCgpIC8gKCdc XHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNC4gU2VuZCBwYWNrZXRzIHRoYXQgZG8g bm90IG1hdGNoIHRoZSBydWxlIHdpdGggZGVmaW5lZCBkc2NwICh0b3MpIHZhbHVlczoNCj4gKw0K PiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJc IikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkgLyBJUChz cmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDMg PSBFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkN Cj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgp IC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBz dXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0IGhhcyBoYWQgaXRzIElQdjQgZHNjcCAodG9zKSB2YWx1 ZSBzZXQNCj4gdG8gMi4NCj4gKw0KPiArDQo+ICtBY3Rpb246IFNFVF9JUFY2X0RTQ1ANCj4gK35+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0KPiArVGVzdCBDYXNlOiBzZXRfaXB2Nl9k c2NwIHRlc3QNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4g UnVuIHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBh dmFpbGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0g LWkNCj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhl IElQdjYgc3JjIGlzDQo+IDIwMDE6MDAwMDo5ZDM4OjZhYjg6MWM0ODozYTFjOmE5NWE6YjFjMiwg c2V0IGl0cyBkc2NwICh0YykgdmFsdWUgdG8gMHgzMCk6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAg ICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY2IHNyYyBpcw0KPiAyMDAx OjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzIgLyB1ZHAgLw0KPiArICAgIGVuZCBh Y3Rpb25zIHNldF9pcHY2X2RzY3AgZHNjcCAweDMwIC8gZW5kDQo+ICsNCj4gKy4uDQo+ICsNCj4g KzMuIFNlbmQgYSBwYWNrZXQgdGhhdCBtYXRjaGVzIHRoZSBydWxlLCB3aXRoIGEgZGVmaW5lZCBk c2NwICh0YykgdmFsdWU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QwID0gRXRoZXIoKSAv IElQdjYoc3JjPVwiMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpiMWMzXCIsDQo+ IHRjPTApIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBT ZW5kIHBhY2tldHMgdGhhdCBkbyBub3QgbWF0Y2ggdGhlIHJ1bGUsIHdpdGggZGVmaW5lZCBkc2Nw ICh0YykgdmFsdWVzOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgUGt0MSA9IEV0aGVyKCkgLyBJ UHY2KHNyYz1cIjIwMDE6MDAwMDo5ZDM4OjZhYjg6MWM0ODozYTFjOmE5NWE6YjFjM1wiLA0KPiB0 Yz0wKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3QyID0gRXRoZXIoKSAvIElQ djYoc3JjPVwiMjAwMTowMDAwOjlkMzg6NmFiODoxYzQ4OjNhMWM6YTk1YTpiMWM0XCIsDQo+IHRj PTApIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8gSVB2 NihzcmM9XCIyMDAxOjAwMDA6OWQzODo2YWI4OjFjNDg6M2ExYzphOTVhOmIxYzVcIiwNCj4gdGM9 MCkgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkgLyBJUHY2 KHNyYz1cIjIwMDE6MDAwMDo5ZDM4OjZhYjg6MWM0ODozYTFjOmE5NWE6YjFjNlwiLA0KPiB0Yz0w KSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sg dG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0IGhhcyBoYWQgaXRzIGRzY3AgKHRjKSB2 YWx1ZSBzZXQgdG8NCj4gMHgzMC4NCj4gKw0KPiArQWN0aW9uOiBBR0UNCj4gK35+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0KPiArVGVzdCBDYXNlOiB0ZXN0X3RpbWVvdXQNCj4gKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVuIHRlc3RwbWQgaW4g aW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFpbGFibGU6DQo+ICsN Cj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkNCj4gKw0KPiArLi4N Cj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQdjQgc291cmNlIGlz IDE5Mi4xNjguMC4xLCBzZXQgdGhlIGFnaW5nIHRpbWVvdXQNCj4gdmFsdWUgdG8gMTI4KSA6DQo+ ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBldGgg LyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IGFnZSB0aW1l b3V0IDEyOCAvIGVuZA0KPiArDQo+ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQg bWF0Y2hlcyB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigp IC8gSVAoc3JjPVwiMTkyLjE2OC4wLjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsN Cj4gKy4uDQo+ICsNCj4gKzQuIFNlbmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVs ZToNCj4gKw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTky LjE2OC4wLjJcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVy KCkgLyBJUChzcmM9XCIxMC4wLjMwLjk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiAr ICAgIFBrdDMgPSBFdGhlcigpIC8gSVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdcXHgw MCcgKiA2NCkNCj4gKyAgICBQa3Q0ID0gRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwi KSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sg dG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBhc3MgcGFja2V0IGhhcyBoYWQgaXRzIGFnaW5nIHRpbWVv dXQgdmFsdWUgc2V0DQo+IHRvIDEyOC4NCj4gKw0KPiArVGVzdCBDYXNlOiB0ZXN0X3Jlc2VydmVk DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gKzEuIFJ1biB0ZXN0 cG1kIGluIGludGVyYWN0aXZlIG1vZGUgd2l0aCBvbmUgcG9ydCBib3VuZCBhbmQgYXZhaWxhYmxl Og0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgYnVpbGQvdGVzdHBtZCAtYyAzIC0tIC1pDQo+ICsN Cj4gKy4uDQo+ICsNCj4gKzIuIFNldCB0aGUgdGVzdCBmbG93IHJ1bGUgKElmIHRoZSBJUHY0IHNv dXJjZSBpcyAxOTIuMTY4LjAuMSwgc2V0IHRoZSBhZ2luZyB0aW1lb3V0DQo+IHZhbHVlIHRvIDEy OCBhbmQgcmVzZXJ2ZWQgdG8gMCkgOg0KPiArDQo+ICs6Og0KPiArDQo+ICsgICAgZmxvdyBjcmVh dGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCBzcmMgaXMgMTkyLjE2OC4wLjEgLyB1ZHAg LyBlbmQgYWN0aW9ucw0KPiBhZ2UgdGltZW91dCAxMjggcmVzZXJ2ZWQgMCAvIGVuZA0KPiArDQo+ ICsuLg0KPiArDQo+ICszLiBTZW5kIGEgcGFja2V0IHRoYXQgbWF0Y2hlcyB0aGUgcnVsZToNCj4g Kw0KPiArOjoNCj4gKw0KPiArICAgIFBrdDAgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4w LjFcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ICsNCj4gKzQuIFNl bmQgcGFja2V0cyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgcnVsZToNCj4gKw0KPiArOjoNCj4gKw0K PiArICAgIFBrdDEgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTkyLjE2OC4wLjJcIikgLyBVRFAoKSAv ICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0MiA9IEV0aGVyKCkgLyBJUChzcmM9XCIxMC4wLjMw Ljk5XCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiArICAgIFBrdDMgPSBFdGhlcigpIC8g SVAoc3JjPVwiOC44LjguOFwiKSAvIFVEUCgpIC8gKCdcXHgwMCcgKiA2NCkNCj4gKyAgICBQa3Q0 ID0gRXRoZXIoKSAvIElQKHNyYz1cIjEzMi4xNzcuMC45OVwiKSAvIFVEUCgpIC8gKCdcXHgwMCcg KiA2NCkNCj4gKw0KPiArLi4NCj4gKw0KPiArNS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhl IHBhc3MgcGFja2V0IGhhcyBoYWQgaXRzIGFnaW5nIHRpbWVvdXQgdmFsdWUgc2V0DQo+IHRvIDEy OCBhbmQgcmVzZXJ2ZWQgYml0cyBzZXQgdG8gMC4NCj4gKw0KPiArVGVzdCBDYXNlOiB0ZXN0X2Nv bnRleHQNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArMS4gUnVu IHRlc3RwbWQgaW4gaW50ZXJhY3RpdmUgbW9kZSB3aXRoIG9uZSBwb3J0IGJvdW5kIGFuZCBhdmFp bGFibGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBidWlsZC90ZXN0cG1kIC1jIDMgLS0gLWkN Cj4gKw0KPiArLi4NCj4gKw0KPiArMi4gU2V0IHRoZSB0ZXN0IGZsb3cgcnVsZSAoSWYgdGhlIElQ djQgc291cmNlIGlzIDE5Mi4xNjguMC4xLCBzZXQgdGhlIGFnaW5nIHRpbWVvdXQNCj4gdmFsdWUg dG8gMTI4DQo+ICsgICBhbmQgZmxvdyBjb250ZXh0IHRvIHRoZSBydGVfZmxvdyBwb2ludGVyKSA6 DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBl dGggLyBpcHY0IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zDQo+IGFnZSB0 aW1lb3V0IDEyOCBjb250ZXh0IE5VTEwgLyBlbmQNCj4gKw0KPiArLi4NCj4gKw0KPiArMy4gU2Vu ZCBhIHBhY2tldCB0aGF0IG1hdGNoZXMgdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAg ICBQa3QwID0gRXRoZXIoKSAvIElQKHNyYz1cIjE5Mi4xNjguMC4xXCIpIC8gVURQKCkgLyAoJ1xc eDAwJyAqIDY0KQ0KPiArDQo+ICsuLg0KPiArDQo+ICs0LiBTZW5kIHBhY2tldHMgdGhhdCBkbyBu b3QgbWF0Y2ggdGhlIHJ1bGU6DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICBQa3QxID0gRXRoZXIo KSAvIElQKHNyYz1cIjE5Mi4xNjguMC4yXCIpIC8gVURQKCkgLyAoJ1xceDAwJyAqIDY0KQ0KPiAr ICAgIFBrdDIgPSBFdGhlcigpIC8gSVAoc3JjPVwiMTAuMC4zMC45OVwiKSAvIFVEUCgpIC8gKCdc XHgwMCcgKiA2NCkNCj4gKyAgICBQa3QzID0gRXRoZXIoKSAvIElQKHNyYz1cIjguOC44LjhcIikg LyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsgICAgUGt0NCA9IEV0aGVyKCkgLyBJUChzcmM9 XCIxMzIuMTc3LjAuOTlcIikgLyBVRFAoKSAvICgnXFx4MDAnICogNjQpDQo+ICsNCj4gKy4uDQo+ ICsNCj4gKzUuIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNzIHBhY2tldCBoYXMgaGFk IGl0cyBhZ2luZyB0aW1lb3V0IHZhbHVlIHNldA0KPiB0byAxMjggYW5kIGl0cyB1c2VyIGZsb3cg Y29udGV4dA0KPiArc2V0IHRvIHRoZSBydGVfZmxvdyBwb2ludGVyLg0KPiArDQo+ICsNCj4gKw0K PiArDQo+ICsNCj4gKw0KPiBkaWZmIC0tZ2l0IGEvdGVzdF9wbGFucy9ydGVfZmxvd191bnN1cHBv cnRlZC5yc3QNCj4gYi90ZXN0X3BsYW5zL3J0ZV9mbG93X3Vuc3VwcG9ydGVkLnJzdA0KPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMC4uOWRmODk0ZjMNCj4gLS0tIC9kZXYv bnVsbA0KPiArKysgYi90ZXN0X3BsYW5zL3J0ZV9mbG93X3Vuc3VwcG9ydGVkLnJzdA0KPiBAQCAt MCwwICsxLDEzMCBAQA0KPiArLi4gIyBCU0QgTElDRU5TRQ0KPiArICAgICMNCj4gKyAgICAjIENv cHlyaWdodChjKSAyMDEwLTIwMTQgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2 ZWQuDQo+ICsgICAgIyBDb3B5cmlnaHQgwqkgMjAxOFssIDIwMjBdIFRoZSBVbml2ZXJzaXR5IG9m IE5ldyBIYW1wc2hpcmUuIEFsbCByaWdodHMNCj4gcmVzZXJ2ZWQuDQo+ICsgICAgIyBBbGwgcmln aHRzIHJlc2VydmVkLg0KPiArICAgICMNCj4gKyAgICAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KPiArICAgICMgbW9k aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k aXRpb25zDQo+ICsgICAgIyBhcmUgbWV0Og0KPiArICAgICMNCj4gKyAgICAjICAgKiBSZWRpc3Ry aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0K PiArICAgICMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs b3dpbmcgZGlzY2xhaW1lci4NCj4gKyAgICAjICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5 IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KPiArICAgICMgICAgIG5v dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l ciBpbg0KPiArICAgICMgICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh bHMgcHJvdmlkZWQgd2l0aCB0aGUNCj4gKyAgICAjICAgICBkaXN0cmlidXRpb24uDQo+ICsgICAg IyAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBJbnRlbCBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVz IG9mIGl0cw0KPiArICAgICMgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KPiArICAgICMgICAgIGZyb20gdGhpcyBzb2Z0 d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCj4gKyAgICAj DQo+ICsgICAgIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M REVSUyBBTkQNCj4gQ09OVFJJQlVUT1JTDQo+ICsgICAgIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUDQo+IE5PVA0KPiArICAgICMg TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E DQo+IEZJVE5FU1MgRk9SDQo+ICsgICAgIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFDQo+IENPUFlSSUdIVA0KPiArICAgICMgT1dORVIg T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsDQo+IElO Q0lERU5UQUwsDQo+ICsgICAgIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg REFNQUdFUyAoSU5DTFVESU5HLCBCVVQNCj4gTk9UDQo+ICsgICAgIyBMSU1JVEVEIFRPLCBQUk9D VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTDQo+IE9GIFVTRSwN Cj4gKyAgICAjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X RVZFUiBDQVVTRUQgQU5EDQo+IE9OIEFOWQ0KPiArICAgICMgVEhFT1JZIE9GIExJQUJJTElUWSwg V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1INCj4gVE9SVA0KPiArICAg ICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ IE9VVCBPRg0KPiBUSEUgVVNFDQo+ICsgICAgIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCj4gREFNQUdFLg0KPiArDQo+ICtydGVf ZmxvdyBJdGVtcyBhbmQgUHJvcGVydGllcyBOb3QgU3VwcG9ydGVkIGJ5IHRlc3RwbWQNCj4gKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4g K1RoZSBmb2xsb3dpbmcgcnRlX2Zsb3cgcGF0dGVybiBpdGVtcyBhbmQgcHJvcGVydGllcyBhcmUg Y3VycmVudGx5IHVuc3VwcG9ydGVkDQo+IGJ5IHRlc3RwbWQuIEFzIGEgcmVzdWx0LCB0aGV5IGNh bm5vdCBiZSB0ZXN0ZWQgYXQgdGhpcyB0aW1lLg0KPiArDQo+ICtUaGVzZSBpdGVtcyBhbmQgcHJv cGVydGllcyBhcmUgaW50ZW5kZWQgdG8gYmUgYSBwYXJ0IG9mDQo+ICoqdGVzdF9wbGFucy9mbG93 X3BhdHRlcm5faXRlbV90ZXN0X3BsYW4ucnN0KiouDQo+ICsNCj4gK1NhbXBsZSB0ZXN0IGNhc2Vz IGZvciB0aGVzZSBwcm9wZXJ0aWVzIGhhdmUgYmVlbiB3cml0dGVuIHdpdGggdGhlIG90aGVyDQo+ IHJ0ZV9mbG93IHBhdHRlcm4gaXRlbS9wcm9wZXJ0eSB0ZXN0cywgYnV0IGFyZSBsZWZ0IGFzIGNv bW1lbnRzIGFzIHRoZXkgY2Fubm90DQo+IGJlIHVzZWQgYXQgdGhpcyB0aW1lLg0KPiArDQo+ICsN Cj4gK0l0ZW06IEFSUA0KPiArfn5+fn5+fn5+DQo+ICtBUlAgaXMgbm90IHN1cHBvcnRlZCwgYWxv bmcgd2l0aCBhbGwgb2YgaXRzIHByb3BlcnRpZXM6DQo+ICsNCj4gKy0gaGRyIChoYXJkd2FyZSB0 eXBlKQ0KPiArLSBwcm8gKHByb3RvY29sIHR5cGUpDQo+ICstIGhsbiAoaGFyZHdhcmUgYWRkcmVz cyBsZW5ndGgpDQo+ICstIHBsbiAocHJvdG9jb2wgYWRkcmVzcyBsZW5ndGgpDQo+ICstIG9wIChv cGNvZGUpDQo+ICstIHNoYSAoc2VuZGVyIGhhcmR3YXJlIGFkZHJlc3MpDQo+ICstIHNwYSAoc2Vu ZGVyIGlwdjQgYWRkcmVzcykNCj4gKy0gdGhhICh0YXJnZXQgaGFyZHdhcmUgYWRkcmVzcykNCj4g Ky0gdHBhICh0YXJnZXQgaXB2NCBhZGRyZXNzKQ0KPiArDQo+ICtJdGVtOiBHUkUNCj4gK35+fn5+ fn5+fg0KPiArDQo+ICtUaGUgZm9sbG93aW5nIHByb3BlcnR5IGlzIG5vdCBzdXBwb3J0ZWQgYnkg dGVzdHBtZDoNCj4gKw0KPiArLSBjX3JzdmQwX3ZlciAoY2hlY2tzdW0gKyByZXNlcnZlZDAgKyB2 ZXJzaW9uKQ0KPiArDQo+ICtJdGVtOiBJQ01QDQo+ICt+fn5+fn5+fn5+DQo+ICsNCj4gK1RoZSBm b2xsb3dpbmcgcHJvcGVydGllcyBhcmUgbm90IHN1cHBvcnRlZCBieSB0ZXN0cG1kOg0KPiArDQo+ ICstIGljbXBfY2tzdW0gKGNoZWNrc3VtKQ0KPiArLSBpY21wX2lkZW50IChpZGVudGlmaWVyKQ0K PiArLSBpY21wX3NlcV9uYiAoc2VxdWVuY2UgbnVtYmVyKQ0KPiArDQo+ICtJdGVtOiBJQ01QNg0K PiArfn5+fn5+fn5+fn4NCj4gK0lDTVA2IGlzIG5vdCBzdXBwb3J0ZWQsIGFsb25nIHdpdGggYWxs IG9mIGl0cyBwcm9wZXJ0aWVzOg0KPiArDQo+ICstIHR5cGUNCj4gKy0gY29kZQ0KPiArLSBjaGVj a3N1bQ0KPiArDQo+ICtJdGVtOiBJUHY0DQo+ICt+fn5+fn5+fn5+fg0KPiArVGhlIGZvbGxvd2lu ZyBwcm9wZXJ0eSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRlc3RwbWQ6DQo+ICsNCj4gKy0gY2hlY2tz dW0NCj4gKw0KPiArSXRlbTogSVB2Ng0KPiArfn5+fn5+fn5+fn4NCj4gK1RoZSBmb2xsb3dpbmcg cHJvcGVydGllcyBhcmUgbm90IHN1cHBvcnRlZCBieSB0ZXN0cG1kOg0KPiArDQo+ICstIHZ0Y19m bG93ICh2ZXJzaW9uICsgdHJhZmZpYyBjbGFzcyArIGZsb3cpDQo+ICstIHBheWxvYWRfbGVuIChw YXlsb2FkIGxlbmd0aCkNCj4gKw0KPiArSXRlbTogVENQDQo+ICt+fn5+fn5+fn5+fg0KPiArVGhl IGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRlc3RwbWQ6DQo+ICsN Cj4gKy0gZGF0YV9vZmYgKGRhdGEgb2Zmc2V0KQ0KPiArLSByeF93aW4gKHdpbmRvdyBzaXplKQ0K PiArLSBja3N1bSAoY2hlY2tzdW0pDQo+ICsNCj4gKw0KPiArSXRlbTogVURQDQo+ICt+fn5+fn5+ fn5+fg0KPiArVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRl c3RwbWQ6DQo+ICsNCj4gKy0gZGdyYW1fbGVuIChkYXRhZ3JhbSBsZW5ndGgpDQo+ICstIGRncmFt X2Nrc3VtIChkYXRhZ3JhbSBjaGVja3N1bSkNCj4gKw0KPiArSXRlbTogVlhMQU4NCj4gK35+fn5+ fn5+fn5+DQo+ICtUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkg dGVzdHBtZDoNCj4gKw0KPiArLSByc3ZkMA0KPiArLSByc3ZkMQ0KPiArLSBmbGFncw0KPiArDQo+ ICtJdGVtOiBWWExBTl9HUEUNCj4gK35+fn5+fn5+fn5+fn5+fg0KPiArVlhMQU5fR1BFIGlzIG5v dCBzdXBwb3J0ZWQsIGFsb25nIHdpdGggYWxsIG9mIGl0cyBwcm9wZXJ0aWVzOg0KPiArDQo+ICsN Cj4gKy0gcnN2ZDANCj4gKy0gcnN2ZDENCj4gKy0gZmxhZ3MNCj4gKy0gdm5pDQo+ICstIHByb3Rv Y29sDQo+ICsNCj4gKw0KPiArDQo+ICsNCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL1Rlc3RTdWl0ZV9y dGVfZmxvdy5weSBiL3Rlc3RzL1Rlc3RTdWl0ZV9ydGVfZmxvdy5weQ0KPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMC4uNTYyNzdhMTgNCj4gLS0tIC9kZXYvbnVsbA0KPiAr KysgYi90ZXN0cy9UZXN0U3VpdGVfcnRlX2Zsb3cucHkNCj4gQEAgLTAsMCArMSwyMzIgQEANCj4g KyMgQlNEIExJQ0VOU0UNCj4gKyMNCj4gKyMgQ29weXJpZ2h0KGMpIDIwMjAgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICsjIENvcHlyaWdodCDCqSAyMDE4WywgMjAx OV0gVGhlIFVuaXZlcnNpdHkgb2YgTmV3IEhhbXBzaGlyZS4gQWxsIHJpZ2h0cw0KPiByZXNlcnZl ZC4NCj4gKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gKyMNCj4gKyMgUmVkaXN0cmlidXRpb24g YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQo+ICsj IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9ucw0KPiArIyBhcmUgbWV0Og0KPiArIw0KPiArIyAgICogUmVkaXN0cmlidXRpb25z IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCj4gKyMgICAg IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh aW1lci4NCj4gKyMgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQo+ICsjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4NCj4gKyMgICAgIHRoZSBk b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUNCj4g KyMgICAgIGRpc3RyaWJ1dGlvbi4NCj4gKyMgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgSW50ZWwg Q29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCj4gKyMgICAgIGNvbnRyaWJ1dG9ycyBt YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KPiArIyAg ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt aXNzaW9uLg0KPiArIw0KPiArIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ UklHSFQgSE9MREVSUyBBTkQNCj4gQ09OVFJJQlVUT1JTDQo+ICsjICJBUyBJUyIgQU5EIEFOWSBF WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQo+ICsjIExJ TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG SVRORVNTDQo+IEZPUg0KPiArIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g SU4gTk8gRVZFTlQgU0hBTEwgVEhFDQo+IENPUFlSSUdIVA0KPiArIyBPV05FUiBPUiBDT05UUklC VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwNCj4gSU5DSURFTlRBTCwN Cj4gKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV RElORywgQlVUDQo+IE5PVA0KPiArIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GDQo+IFVTRSwNCj4gKyMgREFUQSwgT1IgUFJP RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQNCj4gT04g QU5ZDQo+ICsjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD VCBMSUFCSUxJVFksIE9SIFRPUlQNCj4gKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRg0KPiBUSEUgVVNFDQo+ICsjIE9GIFRISVMg U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B R0UuDQo+ICsNCj4gKyIiIg0KPiArRFBESyBUZXN0IHN1aXRlLg0KPiArTVRVIENoZWNrcyBleGFt cGxlLg0KPiArIiIiDQo+ICtpbXBvcnQgdGltZQ0KPiAraW1wb3J0IGlwYWRkcmVzcw0KPiArZnJv bSB0eXBpbmcgaW1wb3J0IENhbGxhYmxlDQo+ICsNCj4gK2ltcG9ydCB1dGlscw0KPiArZnJvbSBw bWRfb3V0cHV0IGltcG9ydCBQbWRPdXRwdXQNCj4gK2Zyb20gdGVzdF9jYXNlIGltcG9ydCBUZXN0 Q2FzZQ0KPiArDQo+ICtmcm9tIHRlc3RfY2FzZSBpbXBvcnQgVGVzdENhc2UNCj4gKw0KPiArZnJv bSBmcmFtZXdvcmsuZmxvdyBpbXBvcnQgZ2VuZXJhdG9yDQo+ICsNCj4gKw0KPiArY2xhc3MgUnRl RmxvdyhUZXN0Q2FzZSk6DQo+ICsgICAgIw0KPiArICAgICMNCj4gKyAgICAjIEhlbHBlciBtZXRo b2RzIGFuZCBzZXR1cCBtZXRob2RzLg0KPiArICAgICMNCj4gKyAgICAjIFNvbWUgb2YgdGhlc2Ug bWV0aG9kcyBtYXkgbm90IGJlIHVzZWQgYmVjYXVzZSB0aGV5IHdlcmUgaW5saW5lZCBmcm9tIGEN Cj4gY2hpbGQNCj4gKyAgICAjIG9mIFRlc3RDYXNlLiBUaGlzIHdhcyBkb25lIGJlY2F1c2UgdGhl IGN1cnJlbnQgdGVzdCBzeXN0ZW0gZG9lc24ndA0KPiBzdXBwb3J0DQo+ICsgICAgIyBpbmhlcml0 YW5jZS4NCj4gKyAgICAjDQo+ICsgICAgZGVmIGV4ZWMoc2VsZiwgY29tbWFuZDogc3RyKSAtPiBz dHI6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBBbiBhYnN0cmFjdGlvbiB0byByZW1vdmUg cmVwZWF0ZWQgY29kZSB0aHJvdWdob3V0IHRoZSBzdWJjbGFzc2VzIG9mIHRoaXMNCj4gY2xhc3MN Cj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIHJldHVybiBzZWxmLmR1dC5zZW5kX2V4cGVjdChj b21tYW5kLCAidGVzdHBtZD4iKQ0KPiArDQo+ICsgICAgZGVmIGdldF9tYWNfYWRkcmVzc19mb3Jf cG9ydChzZWxmLCBwb3J0X2lkOiBpbnQpIC0+IHN0cjoNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYu ZHV0LmdldF9tYWNfYWRkcmVzcyhwb3J0X2lkKQ0KPiArDQo+ICsgICAgZGVmIHNlbmRfc2NhcHlf cGFja2V0KHNlbGYsIHBvcnRfaWQ6IGludCwgcGFja2V0OiBzdHIpOg0KPiArICAgICAgICBpdGYg PSBzZWxmLnRlc3Rlci5nZXRfaW50ZXJmYWNlKHBvcnRfaWQpDQo+ICsgICAgICAgIHJldHVybiBz ZWxmLnRlc3Rlci5zZW5kX2V4cGVjdChmJ3NlbmRwKHtwYWNrZXR9LCBpZmFjZT0ie2l0Zn0iKScs ICI+Pj4iLA0KPiB0aW1lb3V0PTMwKQ0KPiArDQo+ICsgICAgZGVmIHNldF91cF9hbGwoc2VsZik6 DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBQcmVyZXF1aXNpdGUgc3RlcHMgZm9yIGVhY2gg dGVzdCBzdWl0Lg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgc2VsZi5kdXRfcG9ydHMgPSBz ZWxmLmR1dC5nZXRfcG9ydHMoKQ0KPiArICAgICAgICBzZWxmLnZlcmlmeShsZW4oc2VsZi5kdXRf cG9ydHMpID49IDIsICJJbnN1ZmZpY2llbnQgcG9ydHMiKQ0KPiArICAgICAgICBzZWxmLnJ4X3Bv cnQgPSBzZWxmLmR1dF9wb3J0c1swXQ0KPiArICAgICAgICBzZWxmLnR4X3BvcnQgPSBzZWxmLmR1 dF9wb3J0c1sxXQ0KPiArDQo+ICsgICAgICAgIHNlbGYucG1kb3V0ID0gUG1kT3V0cHV0KHNlbGYu ZHV0KQ0KPiArICAgICAgICBzZWxmLnBtZG91dC5zdGFydF90ZXN0cG1kKCJkZWZhdWx0IiwgIi0t cnhxIDIgLS10eHEgMiIpDQo+ICsgICAgICAgIHNlbGYuZXhlYygic2V0IHZlcmJvc2UgMyIpDQo+ ICsgICAgICAgIHNlbGYuZXhlYygic2V0IGZ3ZCByeG9ubHkiKQ0KPiArICAgICAgICBzZWxmLnRl c3Rlci5zZW5kX2V4cGVjdCgic2NhcHkiLCAiPj4+IikNCj4gKw0KPiArICAgIGRlZiBpbml0aWFs aXplX2Zsb3dfcnVsZShzZWxmLCBydWxlOiBzdHIpOg0KPiArICAgICAgICBvdXRwdXQ6IHN0ciA9 IHNlbGYuZXhlYyhmImZsb3cgdmFsaWRhdGUge3NlbGYuZHV0X3BvcnRzWzBdfSB7cnVsZX0iKQ0K PiArICAgICAgICBpZiAiVW5zdXBwb3J0ZWQgcGF0dGVybiIgaW4gb3V0cHV0Og0KPiArICAgICAg ICAgICAgcmV0dXJuIEZhbHNlDQo+ICsNCj4gKyAgICAgICAgb3V0cHV0ID0gc2VsZi5leGVjKGYi ZmxvdyBjcmVhdGUge3NlbGYuZHV0X3BvcnRzWzBdfSB7cnVsZX0iKQ0KPiArICAgICAgICBzZWxm LnZlcmlmeSgiY3JlYXRlZCIgaW4gb3V0cHV0IG9yICJGbG93IHJ1bGUgdmFsaWRhdGVkIiBpbiBv dXRwdXQsICJGbG93IHJ1bGUNCj4gd2FzIG5vdCBjcmVhdGVkOiAiICsgb3V0cHV0KQ0KPiArICAg ICAgICByZXR1cm4gVHJ1ZQ0KPiArDQo+ICsgICAgZGVmIHNlbmRfcGFja2V0cyhzZWxmLCBwYWNr ZXRzLCBwYXNzX2ZhaWxfZnVuY3Rpb246IENhbGxhYmxlW1tzdHJdLCBib29sXSwNCj4gZXJyb3Jf bWVzc2FnZTogc3RyKToNCj4gKyAgICAgICAgZm9yIHBhY2tldCBpbiBwYWNrZXRzOg0KPiArICAg ICAgICAgICAgb3V0cHV0ID0gc2VsZi5zZW5kX3NjYXB5X3BhY2tldCgwLCBwYWNrZXQpDQo+ICsg ICAgICAgICAgICB0aW1lLnNsZWVwKDUpICAjIEFsbG93IHRoZSBwYWNrZXQgdG8gYmUgcHJvY2Vz c2VkDQo+ICsgICAgICAgICAgICBzZWxmLnZlcmlmeSgiU2VudCIgaW4gb3V0cHV0LCAiQnJva2Vu IHNjYXB5IHBhY2tldCBkZWZpbml0b246ICIgKyBwYWNrZXQpDQo+ICsgICAgICAgICAgICBvdXRw dXQgPSBzZWxmLnBtZG91dC5nZXRfb3V0cHV0KCkNCj4gKyAgICAgICAgICAgIHNlbGYudmVyaWZ5 KHBhc3NfZmFpbF9mdW5jdGlvbihvdXRwdXQpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ZXJyb3JfbWVzc2FnZSArICJcclxuIiArIG91dHB1dCkNCj4gKw0KPiArICAgIGRlZiBkb190ZXN0 X3dpdGhfY2FsbGFibGVfdGVzdHNfZm9yX3Bhc3NfZmFpbChzZWxmLCBydWxlOiBzdHIsIHBhc3Nf cGFja2V0czoNCj4gZnJvemVuc2V0LCBmYWlsX3BhY2tldHM6IGZyb3plbnNldCwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc19jaGVja19m dW5jdGlvbjogQ2FsbGFibGVbW3N0cl0sIGJvb2xdLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsX2NoZWNrX2Z1bmN0aW9uOiBDYWxsYWJs ZVtbc3RyXSwgYm9vbF0sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGVycm9yX21lc3NhZ2U6IHN0cik6DQo+ICsgICAgICAgIHdhc192YWxpZDog Ym9vbCA9IHNlbGYuaW5pdGlhbGl6ZV9mbG93X3J1bGUocnVsZSkNCj4gKyAgICAgICAgaWYgbm90 IHdhc192YWxpZDogICMgSWYgYSBQTUQgcmVqZWN0cyBhIHRlc3QgY2FzZSwgd2UgbGV0IGl0IHBh c3MNCj4gKyAgICAgICAgICAgIHJldHVybiBOb25lDQo+ICsNCj4gKyAgICAgICAgc2VsZi5leGVj KCJzdGFydCIpDQo+ICsgICAgICAgIHNlbGYuc2VuZF9wYWNrZXRzKHBhc3NfcGFja2V0cywgcGFz c19jaGVja19mdW5jdGlvbiwgZXJyb3JfbWVzc2FnZSkNCj4gKyAgICAgICAgc2VsZi5zZW5kX3Bh Y2tldHMoZmFpbF9wYWNrZXRzLCBmYWlsX2NoZWNrX2Z1bmN0aW9uLCBlcnJvcl9tZXNzYWdlKQ0K PiArDQo+ICsgICAgZGVmIGRvX3Rlc3Rfd2l0aF9leHBlY3RlZF9zdHJpbmdzX2Zvcl9wYXNzX2Zh aWwoc2VsZiwgcnVsZTogc3RyLA0KPiBwYXNzX3BhY2tldHM6IGZyb3plbnNldCwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsX3BhY2tl dHM6IGZyb3plbnNldCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwYXNzX2V4cGVjdDogc3RyLCBmYWlsX2V4cGVjdDogc3RyLCBlcnJvcl9t ZXNzYWdlOg0KPiBzdHIpOg0KPiArICAgICAgICBzZWxmLmRvX3Rlc3Rfd2l0aF9jYWxsYWJsZV90 ZXN0c19mb3JfcGFzc19mYWlsKHJ1bGUsIHBhc3NfcGFja2V0cywNCj4gZmFpbF9wYWNrZXRzLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxhbWJkYSBvdXRwdXQ6IHBhc3NfZXhwZWN0IGluIG91dHB1dCwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgb3V0cHV0OiBm YWlsX2V4cGVjdCBpbiBvdXRwdXQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfbWVzc2FnZSkNCj4gKw0KPiArICAgIGRlZiBk b190ZXN0X3dpdGhfcXVldWVfYWN0aW9uKHNlbGYsIHJ1bGU6IHN0ciwgcGFzc19wYWNrZXRzOiBm cm96ZW5zZXQsDQo+IGZhaWxfcGFja2V0czogZnJvemVuc2V0KToNCj4gKyAgICAgICAgc2VsZi5k b190ZXN0X3dpdGhfZXhwZWN0ZWRfc3RyaW5nc19mb3JfcGFzc19mYWlsKHJ1bGUsIHBhc3NfcGFj a2V0cywNCj4gZmFpbF9wYWNrZXRzLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZiJwb3J0IHtzZWxmLmR1dF9wb3J0c1swXX0vcXVl dWUgMSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmInBvcnQge3NlbGYuZHV0X3BvcnRzWzBdfS9xdWV1ZSAwIiwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFcnJv cjogcGFja2V0IHdlbnQgdG8gdGhlIHdyb25nIHF1ZXVlIikNCj4gKw0KPiArICAgIGRlZiBzZXRf dXAoc2VsZik6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBUaGlzIGlzIHRvIGNsZWFyIHVw IGVudmlyb25tZW50IGJlZm9yZSB0aGUgY2FzZSBydW4uDQo+ICsgICAgICAgICIiIg0KPiArDQo+ ICsgICAgZGVmIHRlYXJfZG93bihzZWxmKToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIFJ1 biBhZnRlciBlYWNoIHRlc3QgY2FzZS4NCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIHNlbGYu ZXhlYyhmImZsb3cgZmx1c2gge3NlbGYuZHV0X3BvcnRzWzBdfSIpDQo+ICsgICAgICAgIHNlbGYu ZXhlYygic3RvcCIpDQo+ICsNCj4gKyAgICBkZWYgdGVhcl9kb3duX2FsbChzZWxmKToNCj4gKyAg ICAgICAgIiIiDQo+ICsgICAgICAgIFdoZW4gdGhlIGNhc2Ugb2YgdGhpcyB0ZXN0IHN1aXRlIGZp bmlzaGVkLCB0aGUgZW52aXJvbm1lbnQgc2hvdWxkDQo+ICsgICAgICAgIGNsZWFyIHVwLg0KPiAr ICAgICAgICAiIiINCj4gKyAgICAgICAgc2VsZi50ZXN0ZXIuc2VuZF9leHBlY3QoImV4aXQoKSIs ICIjIikNCj4gKyAgICAgICAgc2VsZi5kdXQua2lsbF9hbGwoKQ0KPiArICAgICAgICBzZWxmLnRl c3Rlci5raWxsX2FsbCgpDQo+ICsNCj4gKyAgICAiIiINCj4gKyAgICBFZGdlIENhc2VzDQo+ICsN Cj4gKyAgICBUaGVzZSBhcmUgdGVzdHMgd2hpY2ggYXJlIGRlc2lnbmVkIHRvIGRlYWwgd2l0aCBl ZGdlIGNhc2VzLg0KPiArICAgICIiIg0KPiArDQo+ICsgICAgZGVmIHRlc3RfZXhjZXNzaXZlX3Zv aWRzKHNlbGYpOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgVGhpcyB0ZXN0IHB1dHMgZmFy LCBmYXIgdG9vIG1hbnkgdm9pZCB0b2tlbnMgaW4gYW4gb3RoZXJ3aXNlIHZhbGlkDQo+ICsgICAg ICAgIHBhdHRlcm4uIFRoaXMgbWF5IGNhdXNlIGEgY3Jhc2ggb3Igb3RoZXIgaXNzdWUsIGR1ZSB0 byBidWZmZXIgc2l6ZQ0KPiArICAgICAgICBjb25zdHJhaW50cyBvciBvdGhlciBsaW1pdHMgaW5z aWRlIG9mIGVpdGhlciB0aGUgcGFyc2VyIG9yIHRoZSBuaWMuDQo+ICsgICAgICAgICIiIg0KPiAr ICAgICAgICBzZWxmLmRvX3Rlc3Rfd2l0aF9xdWV1ZV9hY3Rpb24oDQo+ICsgICAgICAgICAgICAi aW5ncmVzcyBwYXR0ZXJuIGV0aCAvIGlwdjQgLyAiICsgKA0KPiArICAgICAgICAgICAgICAgICAg ICAidm9pZCAvICIgKiAyMDApICsgInVkcCAvIGVuZCBhY3Rpb25zIHF1ZXVlIGluZGV4IDEgLyBl bmQiLA0KPiArICAgICAgICAgICAgZnJvemVuc2V0KHsnRXRoZXIoKSAvIElQKCkgLyBVRFAoKSAv IChcJ1xceDAwXCcgKiA2NCknfSksDQo+ICsgICAgICAgICAgICBmcm96ZW5zZXQoew0KPiArICAg ICAgICAgICAgICAgICdFdGhlcigpIC8gSVAoKSAvIFRDUCgpIC8gKFwnXFx4MDBcJyAqIDY0KScs DQo+ICsgICAgICAgICAgICAgICAgJ0V0aGVyKCkgLyBJUCgpIC8gU0NUUCgpIC8gKFwnXFx4MDBc JyAqIDY0KScsDQo+ICsgICAgICAgICAgICAgICAgJ0V0aGVyKCkgLyBJUHY2KCkgLyBVRFAoKSAv IChcJ1xceDAwXCcgKiA2NCknLA0KPiArICAgICAgICAgICAgfSkNCj4gKyAgICAgICAgKQ0KPiAr DQo+ICsgICAgZGVmIHRlc3RfZXhjZXNzaXZlX3R1bm5lbGluZyhzZWxmKToNCj4gKyAgICAgICAg c2VsZi5kb190ZXN0X3dpdGhfcXVldWVfYWN0aW9uKA0KPiArICAgICAgICAgICAgImluZ3Jlc3Mg cGF0dGVybiAiICsgKCJldGggLyBncmUgLyAiICogMjApICsgImV0aCAvIGlwdjQgLyB1ZHAgLyBl bmQgYWN0aW9ucw0KPiBxdWV1ZSBpbmRleCAxIC8gZW5kIiwNCj4gKyAgICAgICAgICAgIGZyb3pl bnNldCh7J0V0aGVyKCkgLyBJUCgpIC8gVURQKCkgLyAoXCdcXHgwMFwnICogNjQpJ30pLA0KPiAr ICAgICAgICAgICAgZnJvemVuc2V0KHsNCj4gKyAgICAgICAgICAgICAgICAnRXRoZXIoKSAvIElQ KCkgLyBUQ1AoKSAvIChcJ1xceDAwXCcgKiA2NCknLA0KPiArICAgICAgICAgICAgICAgICdFdGhl cigpIC8gSVAoKSAvIFNDVFAoKSAvIChcJ1xceDAwXCcgKiA2NCknLA0KPiArICAgICAgICAgICAg ICAgICdFdGhlcigpIC8gSVB2NigpIC8gVURQKCkgLyAoXCdcXHgwMFwnICogNjQpJywNCj4gKyAg ICAgICAgICAgIH0pDQo+ICsgICAgICAgICkNCj4gKw0KPiArICAgICIiIg0KPiArICAgIEFjdGlv biBUZXN0IENhc2VzDQo+ICsNCj4gKyAgICBUaGVzZSBhcmUgdGVzdCBjYXNlcyBidWlsdCBmb3Ig dGVzdGluZyB2YXJpb3VzIGFjdGlvbnMNCj4gKyAgICAiIiINCj4gKw0KPiArICAgIGRlZiB0ZXN0 X2Ryb3BfY2FzZTEoc2VsZik6DQo+ICsgICAgICAgIHNlbGYuZG9fdGVzdF93aXRoX2NhbGxhYmxl X3Rlc3RzX2Zvcl9wYXNzX2ZhaWwoDQo+ICsgICAgICAgICAgICAiaW5ncmVzcyBwYXR0ZXJuIGV0 aCAvIGlwdjQgc3JjIGlzIDE5Mi4xNjguMC4xIC8gdWRwIC8gZW5kIGFjdGlvbnMgZHJvcCAvDQo+ IGVuZCIsDQo+ICsgICAgICAgICAgICBmcm96ZW5zZXQoeydFdGhlcigpIC8gSVAoc3JjPSIxOTIu MTY4LjAuMSIpIC8gVURQKCkgLyAoXCdcXHgwMFwnICogNjQpJ30pLA0KPiArICAgICAgICAgICAg ZnJvemVuc2V0KHsnRXRoZXIoKSAvIElQKHNyYz0iMTAuMC4zMC45OSIpIC8gVURQKCkgLyAoXCdc XHgwMFwnICogNjQpJywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgJ0V0aGVyKCkgLyBJUChz cmM9IjEzMi4xNzcuMC45OSIpIC8gVURQKCkgLyAoXCdcXHgwMFwnICogNjQpJywNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgJ0V0aGVyKCkgLyBJUChzcmM9IjE5Mi4xNjguMC4yIikgLyBVRFAo KSAvIChcJ1xceDAwXCcgKiA2NCknLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAnRXRoZXIo KSAvIElQKHNyYz0iOC44LjguOCIpIC8gVURQKCkgLyAoXCdcXHgwMFwnICogNjQpJ30pLA0KPiAr ICAgICAgICAgICAgbGFtYmRhIG91dHB1dDogInBvcnQiIG5vdCBpbiBvdXRwdXQsDQo+ICsgICAg ICAgICAgICBsYW1iZGEgb3V0cHV0OiAicG9ydCIgaW4gb3V0cHV0LA0KPiArICAgICAgICAgICAg IkRyb3AgZnVuY3Rpb24gd2FzIG5vdCBjb3JyZWN0bHkgYXBwbGllZCIpDQo+ICsNCj4gKyAgICBk ZWYgdGVzdF9xdWV1ZV9jYXNlMShzZWxmKToNCj4gKyAgICAgICAgc2VsZi5kb190ZXN0X3dpdGhf cXVldWVfYWN0aW9uKA0KPiArICAgICAgICAgICAgImluZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0 IHNyYyBpcyAxOTIuMTY4LjAuMSAvIHVkcCAvIGVuZCBhY3Rpb25zIHF1ZXVlDQo+IGluZGV4IDEg LyBlbmQiLA0KPiArICAgICAgICAgICAgZnJvemVuc2V0KHsnRXRoZXIoKSAvIElQKHNyYz0iMTky LjE2OC4wLjEiKSAvIFVEUCgpIC8gKFwnXFx4MDBcJyAqIDY0KSd9KSwNCj4gZnJvemVuc2V0KA0K PiArICAgICAgICAgICAgICAgIHsnRXRoZXIoKSAvIElQKHNyYz0iMTAuMC4zMC45OSIpIC8gVURQ KCkgLyAoXCdcXHgwMFwnICogNjQpJywNCj4gKyAgICAgICAgICAgICAgICAgJ0V0aGVyKCkgLyBJ UChzcmM9IjEzMi4xNzcuMC45OSIpIC8gVURQKCkgLyAoXCdcXHgwMFwnICogNjQpJywNCj4gKyAg ICAgICAgICAgICAgICAgJ0V0aGVyKCkgLyBJUChzcmM9IjE5Mi4xNjguMC4yIikgLyBVRFAoKSAv IChcJ1xceDAwXCcgKiA2NCknLA0KPiArICAgICAgICAgICAgICAgICAnRXRoZXIoKSAvIElQKHNy Yz0iOC44LjguOCIpIC8gVURQKCkgLyAoXCdcXHgwMFwnICogNjQpJ30pKQ0KPiArDQo+ICsNCj4g K2RlZiBkb19ydW50aW1lX3Rlc3RfZ2VuZXJhdGlvbigpOg0KPiArICAgICIiIg0KPiArICAgIFRo ZXJlIGFyZSBlbm91Z2ggdGVzdHMgZm9yIHRoaXMgc3VpdGUgdGhhdCBpdCBwcmVzZW50cyBhIG1h aW50YWluYWJpbGl0eQ0KPiArICAgIGlzc3VlIHRvIGtlZXAgdXNpbmcgdGhlIGdlbmVyYXRvciBt YW51YWxseSwgc28gdGhpcyBhcHByb2FjaCBpcyBkZXNpZ25lZA0KPiArICAgICIiIg0KPiArICAg IHByaW50KCJHZW5lcmF0aW5nIHRlc3QgY2FzZXMgZm9yIFJURSBGbG93IHRlc3Qgc3VpdGUuIikN Cj4gKyAgICBwYXR0ZXJuX2Z1bmN0aW9ucyA9DQo+IGdlbmVyYXRvci5jcmVhdGVfdGVzdF9mdW5j dGlvbl9zdHJpbmdzKGdlbmVyYXRvci5nZXRfcGF0dGVybnNfd2l0aF9wcm9wZXJ0aWUNCj4gcygp KQ0KPiArDQo+ICsgICAgcGF0dGVybl9mdW5jdGlvbl9zdHJpbmcgPSAiXG4iLmpvaW4ocGF0dGVy bl9mdW5jdGlvbnMpDQo+ICsgICAgZXhlYyhwYXR0ZXJuX2Z1bmN0aW9uX3N0cmluZykNCj4gKw0K PiArICAgICMgQ29weSBpdCBiZWNhdXNlIGEgZm9yIGxvb3AgY3JlYXRlcyBsb2NhbCB2YXJpYWJs ZXMsIHdoaWNoIGNoYW5nZXMgdGhlIGRpY3QNCj4gYXQgcnVudGltZS4NCj4gKyAgICBsb2NhbHNf Y29weSA9IGZpbHRlcihsYW1iZGEgbmFtZV9mdW5jdGlvbl90dXBsZToNCj4gbmFtZV9mdW5jdGlv bl90dXBsZVswXS5zdGFydHN3aXRoKCJ0ZXN0XyIpLCBsb2NhbHMoKS5pdGVtcygpKQ0KPiArDQo+ ICsgICAgZm9yIG5hbWUsIGZ1bmN0aW9uIGluIGxvY2Fsc19jb3B5Og0KPiArICAgICAgICBzZXRh dHRyKFJ0ZUZsb3csIG5hbWUsIGZ1bmN0aW9uKQ0KPiArDQo+ICsNCj4gK2RvX3J1bnRpbWVfdGVz dF9nZW5lcmF0aW9uKCkNCj4gLS0NCj4gMi4yNS4xDQoNCg==