From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH i-g-t 12/22] meson: basic build system support Date: Wed, 06 Sep 2017 17:01:42 +0300 Message-ID: <878ths53jt.fsf@nikula.org> References: <20170905123624.21315-1-daniel.vetter@ffwll.ch> <20170905123624.21315-13-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 187566E703 for ; Wed, 6 Sep 2017 14:02:09 +0000 (UTC) In-Reply-To: <20170905123624.21315-13-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel Graphics Development Cc: Daniel Vetter , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAwNSBTZXAgMjAxNywgRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5j aD4gd3JvdGU6Cj4gV2h5Pwo+Cj4gQmVjYXVzZSBpdCdzIGZhc3QuCgpBbmQgdGhhdCdzIG5vdCBl dmVuIHRoZSBtYWluIHJlYXNvbiBmcm9tIG15IHBlcnNwZWN0aXZlISA7KQoKUGxlYXNlIGZpbmQg c29tZSBjb21tZW50cyBpbmxpbmUuIE5vbmUgb2YgdGhlbSBhcmUgYmxvY2tlcnMuCgpCUiwKSmFu aS4KCj4KPiBMaWtlIHJlYWxseSwgcmVhbGx5IGZhc3QuCj4KPiBTb21lIGRhdGEgKGZyb20gYSBz bmIgbGFwdG9wLCBzbyByYXRoZXIgbG93ZXItcG93ZXJlZCk6Cj4KPiAtIEluY3JlbWVudGFsIGJ1 aWxkIGFmdGVyICQgdG91Y2ggbGliL2lndF9jb3JlLmMgd2l0aCBtZXNvbjogMC42cwo+ICAgSXQg bm90aWNlcyB0aGF0IHRoZSBzeW1ib2wgbGlzdCBvZiB0aGUgbGliaWd0LnNvIGhhc24ndCBjaGFu Z2VkIGFuZAo+ICAgZG9lc24ndCBib3RoZXIgcmUtbGlua2luZyB0aGUgYWxtb3N0IDMwMCBiaW5h cmllcyB3ZSBoYXZlLiBtYWtlIC1qIDYKPiAgIGZvciB0aGUgc2FtZSBzY2VuYXJpbyB0YWtlcyA0 NHMuCj4KPiAtIEluY3JlbWVudGFsIGJ1aWxkIHdpdGggbm90aGluZyBjaGFuZ2VkOiBtYWtlOiAw LjdzLCBtZXNvbjogMC4ycyBUaGlzCj4gICBtZWFucyBzdHVmZiBsaWtlIC0tZGlzYWJsZS1naXQt aGFzaCBpcyBlbnRpcmVseSBwb2ludGxlc3Mgd2l0aAo+ICAgbWVzb24sIGl0J3MgZmFzdGVyIHRo YW4gYSBtYWtlIGV2ZXIgY2FuIGJlICh3aXRoIDAuNnMpLgo+Cj4gLSBSZWNvbmZpZ3VyZSBzdGFn ZTogbmluamEgcmVjb25maWd1cmUgMC44cyB2cy4gLi9jb25maWd1cmUgOC42cykKPgo+IC0gUnVu bmluZyB0ZXN0cywgYWZ0ZXIgYSBmdWxsIGJ1aWxkOiBuaW5qYSB0ZXN0IDZzIHZzLiBtYWtlIGNo ZWNrIDI0cwo+Cj4gLSBGdWxsIGJ1aWxkIChpLmUuIGluY2x1ZGluZyAuL2F1dG9nZW4uc2ggcmVz cGVjdGl2ZWx5IG1lc29uIGJ1aWxkKSwKPiAgIGluY2x1ZGluZyB0ZXN0cywgZnJvbSBhIHByaXN0 aW5lIGdpdCBjaGVja291dC4gYXV0b21ha2UgMm00OXMgdnMuCj4gICBtZXNvbiA0NHMuCj4KPiBD YzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzog RXJpYyBBbmhvbHQgPGVyaWNAYW5ob2x0Lm5ldD4KPiBDYzogRGFuaWVsIFN0b25lIDxkYW5pZWxA Zm9vaXNoYmFyLm9yZz4KPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGludGVsLmNvbT4KPiAtLS0KPiAgLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAgICAgICAg fCAgIDEgKwo+ICBhc3NlbWJsZXIvbWVzb24uYnVpbGQgICAgICAgICAgICB8ICA3MyArKysrKysr KysrCj4gIGJlbmNobWFya3MvbWVzb24uYnVpbGQgICAgICAgICAgIHwgIDM2ICsrKysrCj4gIGxp Yi9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgIHwgMTY2ICsrKysrKysrKysrKysrKysrKysr KysKPiAgbGliL3ByZXBlbmRfbG9nX2RvbWFpbi5zaCAgICAgICAgfCAgIDggKysKPiAgbGliL3Rl c3RzL21lc29uLmJ1aWxkICAgICAgICAgICAgfCAgMzQgKysrKysKPiAgbGliL3ZlcnNpb24uaC5p biAgICAgICAgICAgICAgICAgfCAgIDEgKwo+ICBtZXNvbi5idWlsZCAgICAgICAgICAgICAgICAg ICAgICB8IDEwNSArKysrKysrKysrKysrKwo+ICBvdmVybGF5L21lc29uLmJ1aWxkICAgICAgICAg ICAgICB8ICA1OSArKysrKysrKwo+ICB0ZXN0cy9nZW5lcmF0ZV90ZXN0bGlzdC5zaCAgICAgICB8 ICAxMCArKwo+ICB0ZXN0cy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8IDI5MCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgdG9vbHMvbWVzb24uYnVpbGQgICAg ICAgICAgICAgICAgfCAgNTkgKysrKysrKysKPiAgdG9vbHMvbnVsbF9zdGF0ZV9nZW4vbWVzb24u YnVpbGQgfCAgMTUgKysKPiAgMTMgZmlsZXMgY2hhbmdlZCwgODU3IGluc2VydGlvbnMoKykKPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGFzc2VtYmxlci9tZXNvbi5idWlsZAo+ICBjcmVhdGUgbW9kZSAx MDA2NDQgYmVuY2htYXJrcy9tZXNvbi5idWlsZAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL21l c29uLmJ1aWxkCj4gIGNyZWF0ZSBtb2RlIDEwMDc1NSBsaWIvcHJlcGVuZF9sb2dfZG9tYWluLnNo Cj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvdGVzdHMvbWVzb24uYnVpbGQKPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGxpYi92ZXJzaW9uLmguaW4KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IG1lc29uLmJ1 aWxkCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBvdmVybGF5L21lc29uLmJ1aWxkCj4gIGNyZWF0ZSBt b2RlIDEwMDc1NSB0ZXN0cy9nZW5lcmF0ZV90ZXN0bGlzdC5zaAo+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgdGVzdHMvbWVzb24uYnVpbGQKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL21lc29uLmJ1 aWxkCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9udWxsX3N0YXRlX2dlbi9tZXNvbi5idWls ZAo+Cj4gZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCj4gaW5kZXggNjIwNDk2 NWEwZTMyLi5lNjkxOTI3MmQ4YjYgMTAwNjQ0Cj4gLS0tIGEvLmdpdGlnbm9yZQo+ICsrKyBiLy5n aXRpZ25vcmUKPiBAQCAtOTMsMyArOTMsNCBAQCBpbnRlbC1ncHUtdG9vbHMtKi8KPiAgCj4gIHBp Z2xpdAo+ICByZXN1bHRzCj4gK2J1aWxkCj4gZGlmZiAtLWdpdCBhL2Fzc2VtYmxlci9tZXNvbi5i dWlsZCBiL2Fzc2VtYmxlci9tZXNvbi5idWlsZAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5k ZXggMDAwMDAwMDAwMDAwLi5iZGRkZDBlMmRiMjUKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvYXNz ZW1ibGVyL21lc29uLmJ1aWxkCj4gQEAgLTAsMCArMSw3MyBAQAo+ICtsaWJfYnJ3X3NyYyA9IFsK PiArCSdicndfY29udGV4dC5jJywKPiArCSdicndfZGlzYXNtLmMnLAo+ICsJJ2Jyd19ldS5jJywK PiArCSdicndfZXVfY29tcGFjdC5jJywKPiArCSdicndfZXVfZGVidWcuYycsCj4gKwknYnJ3X2V1 X2VtaXQuYycsCj4gKwknYnJ3X2V1X3V0aWwuYycsCj4gKwknZ2VuOF9kaXNhc20uYycsCj4gKwkn Z2VuOF9pbnN0cnVjdGlvbi5jJywKPiArCSdyYWxsb2MuYycsCj4gK10KCkZXSVcgSSBsaWtlIHRo aXMgc3R5bGUgb2YgYXNzaWduaW5nIGxpc3RzLgoKPiArCj4gK2xpYl9icncgPSBzaGFyZWRfbGli cmFyeSgnYnJ3JywgbGliX2Jyd19zcmMsCj4gKwkJZGVwZW5kZW5jaWVzIDogaWd0X2RlcHMpCgpU aGUgRW1hY3MgbWVzb24gbW9kZSBuaWNlbHkgaW5kZW50cyB0aGUgY29udGludWF0aW9uIGxpbmVz IGFmdGVyIHRoZQpvcGVuaW5nICguIFRoZXNlIHNlZW0gb2ZmLi4uIGFsbCBvdmVyIHRoZSBwbGFj ZS4KCj4gKwo+ICtmbGV4ID0gZmluZF9wcm9ncmFtKCdmbGV4JykKPiArYmlzb24gPSBmaW5kX3By b2dyYW0oJ2Jpc29uJykKPiArCj4gK2xnZW4gPSBnZW5lcmF0b3IoZmxleCwKPiArCQlvdXRwdXQg OiAnQEJBU0VOQU1FQC5jJywKPiArCQlhcmd1bWVudHMgOiBbJy1vJywgJ0BPVVRQVVRAJywgJ0BJ TlBVVEAnXSkKPiArCj4gK2xmaWxlcyA9IGxnZW4ucHJvY2VzcygnbGV4LmwnKQo+ICsKPiArcGdl biA9IGdlbmVyYXRvcihiaXNvbiwKPiArCQlvdXRwdXQgOiBbJ0BCQVNFTkFNRUAuYycsICdAQkFT RU5BTUVALmgnXSwKPiArCQlhcmd1bWVudHMgOiBbJ0BJTlBVVEAnLCAnLS1kZWZpbmVzPUBPVVRQ VVQxQCcsICctLW91dHB1dD1AT1VUUFVUMEAnXSkKPiArCj4gK3BmaWxlcyA9IHBnZW4ucHJvY2Vz cygnZ3JhbS55JykKPiArCj4gK2V4ZWN1dGFibGUoJ2ludGVsLWdlbjRhc20nLCAnbWFpbi5jJywg bGZpbGVzLCBwZmlsZXMsIGxpbmtfd2l0aCA6IGxpYl9icncpCj4gKwo+ICtleGVjdXRhYmxlKCdp bnRlbC1nZW40ZGlzYXNtJywgJ2Rpc2FzbS1tYWluLmMnLCBsaW5rX3dpdGggOiBsaWJfYnJ3KQo+ ICsKPiArZ2VuNGFzbV90ZXN0Y2FzZXMgPSBbCj4gKwkndGVzdC9tb3YnLAo+ICsJJ3Rlc3QvZnJj JywKPiArCSd0ZXN0L3JuZGQnLAo+ICsJJ3Rlc3Qvcm5kdScsCj4gKwkndGVzdC9ybmRlJywKPiAr CSd0ZXN0L3JuZGUtaW50c3JjJywKPiArCSd0ZXN0L3JuZHonLAo+ICsJJ3Rlc3QvbHpkJywKPiAr CSd0ZXN0L25vdCcsCj4gKwkndGVzdC9pbW1lZGlhdGUnLAo+ICtdCj4gKwo+ICsjIFRob3NlIHRl c3RzIHdlcmUgYWxyZWFkeSBmYWlsaW5nIHdoZW4gdGhlIGFzc2VtYmxlciB3YXMgaW1wb3J0ZWQg ZnJvbQo+ICsjIHRoZSBpbnRlbC1nZW40YXNtIGdpdCByZXBvc2l0b3J5Ogo+ICsjICAgaHR0cDov L2NnaXQuZnJlZWRlc2t0b3Aub3JnL3hvcmcvYXBwL2ludGVsLWdlbjRhc20vCj4gKyMgV2UgZGlz YWJsZSB0aGVtICJmb3Igbm93IiBhcyBhIHdvcmthcm91bmQgdG8gYmUgYWJsZSB0byByZWxlYXNl IGktZy10Cj4gK2dlbjRhc21fdGVzdGNhc2VzX2Jyb2tlbiA9IFsKPiArCSd0ZXN0L2RlY2xhcmUn LAo+ICsJJ3Rlc3Qvam1waScsCj4gKwkndGVzdC9pZicsCj4gKwkndGVzdC9pZmYnLAo+ICsJJ3Rl c3Qvd2hpbGUnLAo+ICsJJ3Rlc3QvZWxzZScsCj4gKwkndGVzdC9icmVhaycsCj4gKwkndGVzdC9j b250JywKPiArCSd0ZXN0L2hhbHQnLAo+ICsJJ3Rlc3Qvd2FpdCcsCj4gKwkndGVzdC9lbmRpZics Cj4gK10KPiArCj4gK3Rlc3RfcnVubmVyID0gZmluZF9wcm9ncmFtKCd0ZXN0L3J1bi10ZXN0LnNo JykKPiArZm9yZWFjaCB0ZXN0Y2FzZSA6IGdlbjRhc21fdGVzdGNhc2VzCj4gKwl0ZXN0KCdhc3Nl bWJsZXI6ICcgKyB0ZXN0Y2FzZSwgdGVzdF9ydW5uZXIsCj4gKwkJCWFyZ3MgOiB0ZXN0Y2FzZSwK PiArCQkJZW52IDogWyAnc3JjZGlyPScgKyBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKPiAr CQkJCSd0b3BfYnVpbGRkaXI9JyArIG1lc29uLmN1cnJlbnRfYnVpbGRfZGlyKCldKQo+ICtlbmRm b3JlYWNoCj4gZGlmZiAtLWdpdCBhL2JlbmNobWFya3MvbWVzb24uYnVpbGQgYi9iZW5jaG1hcmtz L21lc29uLmJ1aWxkCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAu LjlhYjczOGY3NjU4OAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9iZW5jaG1hcmtzL21lc29uLmJ1 aWxkCj4gQEAgLTAsMCArMSwzNiBAQAo+ICtiZW5jaG1hcmtfcHJvZ3MgPSBbCj4gKwknZ2VtX2Js dCcsCj4gKwknZ2VtX2J1c3knLAo+ICsJJ2dlbV9jcmVhdGUnLAo+ICsJJ2dlbV9leGVjX2N0eCcs Cj4gKwknZ2VtX2V4ZWNfZmF1bHQnLAo+ICsJJ2dlbV9leGVjX25vcCcsCj4gKwknZ2VtX2V4ZWNf cmVsb2MnLAo+ICsJJ2dlbV9leGVjX3RyYWNlJywKPiArCSdnZW1fbGF0ZW5jeScsCj4gKwknZ2Vt X21tYXAnLAo+ICsJJ2dlbV9wcncnLAo+ICsJJ2dlbV9zZXRfZG9tYWluJywKPiArCSdnZW1fc3lz bGF0ZW5jeScsCj4gKwknZ2VtX3dzaW0nLAo+ICsJJ2ttc192YmxhbmsnLAo+ICsJJ3ByaW1lX2xv b2t1cCcsCj4gKwkndmdlbV9tbWFwJywKPiArXQo+ICsKPiAraWYgbGliZHJtX2ludGVsLmZvdW5k KCkKPiArCWJlbmNobWFya19wcm9ncyArPSBbCj4gKwkJJ2ludGVsX3VwbG9hZF9ibGl0X2xhcmdl JywKPiArCQknaW50ZWxfdXBsb2FkX2JsaXRfbGFyZ2VfZ3R0JywKPiArCQknaW50ZWxfdXBsb2Fk X2JsaXRfbGFyZ2VfbWFwJywKPiArCQknaW50ZWxfdXBsb2FkX2JsaXRfc21hbGwnLAo+ICsJCSdn ZW1fdXNlcnB0cl9iZW5jaG1hcmsnLAo+ICsJXQo+ICtlbmRpZgo+ICsKPiArZm9yZWFjaCBwcm9n IDogYmVuY2htYXJrX3Byb2dzCj4gKwkjIEZJWE1FIG1lc29uIGRvZXNuJ3QgbGlrZSBiaW5hcmll cyB3aXRoIHRoZSBzYW1lIG5hbWUKPiArCSMgbWVhbndoaWxlIGp1c3Qgc3VmZml4IHdpdGggX2Jl bmNoCj4gKwlleGVjdXRhYmxlKHByb2cgKyAnX2JlbmNoJywgcHJvZyArICcuYycsCj4gKwkJCWRl cGVuZGVuY2llcyA6IHRlc3RfZGVwcykKPiArZW5kZm9yZWFjaAo+IGRpZmYgLS1naXQgYS9saWIv bWVzb24uYnVpbGQgYi9saWIvbWVzb24uYnVpbGQKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGlu ZGV4IDAwMDAwMDAwMDAwMC4uNTFkM2Y5ZTI3OGRhCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2xp Yi9tZXNvbi5idWlsZAo+IEBAIC0wLDAgKzEsMTY2IEBACj4gK2xpYl9oZWFkZXJzID0gWwo+ICsJ J2RlYnVnLmgnLAo+ICsJJ2RybXRlc3QuaCcsCj4gKwknaTgzMF9yZWcuaCcsCj4gKwknaTkxNV8z ZC5oJywKPiArCSdpOTE1X3JlZy5oJywKPiArCSdpOTE1X3BjaWlkcy5oJywKPiArCSdpZ3QuaCcs Cj4gKwknaWd0X2RlYnVnZnMuaCcsCj4gKwknaWd0X2F1eC5oJywKPiArCSdpZ3RfZWRpZF90ZW1w bGF0ZS5oJywKPiArCSdpZ3RfZ3QuaCcsCj4gKwknaWd0X2d2dC5oJywKPiArCSdpZ3RfcHJpbWVz LmgnLAo+ICsJJ2lndF9yYW5kLmgnLAo+ICsJJ2lndF9zdGF0cy5oJywKPiArCSdpZ3Rfc3lzZnMu aCcsCj4gKwknaWd0X3g4Ni5oJywKPiArCSdpZ3RfdmdlbS5oJywKPiArCSdpbnN0ZG9uZS5oJywK PiArCSdpbnRlbF9iYXRjaGJ1ZmZlci5oJywKPiArCSdpbnRlbF9jaGlwc2V0LmgnLAo+ICsJJ2lu dGVsX2lvLmgnLAo+ICsJJ2ludGVsX3JlZy5oJywKPiArCSdpb2N0bF93cmFwcGVycy5oJywKPiAr CSdtZWRpYV9maWxsLmgnLAo+ICsJJ21lZGlhX3NwaW4uaCcsCj4gKwknZ3BncHVfZmlsbC5oJywK PiArCSdnZW43X21lZGlhLmgnLAo+ICsJJ2dlbjhfbWVkaWEuaCcsCj4gKwknZ2VuNl9yZW5kZXIu aCcsCj4gKwknZ2VuN19yZW5kZXIuaCcsCj4gKwknZ2VuOF9yZW5kZXIuaCcsCj4gKwknZ2VuOV9y ZW5kZXIuaCcsCj4gKwkncmVuZGVyY29weS5oJywKPiArCSdzd19zeW5jLmgnLAo+ICsJJ2lndF9r bXMuaCcsCj4gKwknaWd0X2ZiLmgnLAo+ICsJJ2lndF9jb3JlLmgnLAo+ICsJJ2lndF9kcmF3Lmgn LAo+ICsJJ2lndF9wbS5oJywKPiArCSdpZ3RfZHVtbXlsb2FkLmgnLAo+ICsJJ3V3aWxkbWF0L3V3 aWxkbWF0LmgnLAo+ICsJJ2lndF9rbW9kLmgnLAo+ICtdCj4gKwo+ICtsaWJfc291cmNlcyA9IFsK PiArCSdkcm10ZXN0LmMnLAo+ICsJJ2lndF9kZWJ1Z2ZzLmMnLAo+ICsJJ2lndF9hdXguYycsCj4g KwknaWd0X2d0LmMnLAo+ICsJJ2lndF9ndnQuYycsCj4gKwknaWd0X3ByaW1lcy5jJywKPiArCSdp Z3RfcmFuZC5jJywKPiArCSdpZ3Rfc3RhdHMuYycsCj4gKwknaWd0X3N5c2ZzLmMnLAo+ICsJJ2ln dF94ODYuYycsCj4gKwknaWd0X3ZnZW0uYycsCj4gKwknaW5zdGRvbmUuYycsCj4gKwknaW50ZWxf YmF0Y2hidWZmZXIuYycsCj4gKwknaW50ZWxfY2hpcHNldC5jJywKPiArCSdpbnRlbF9kZXZpY2Vf aW5mby5jJywKPiArCSdpbnRlbF9vcy5jJywKPiArCSdpbnRlbF9tbWlvLmMnLAo+ICsJJ2lvY3Rs X3dyYXBwZXJzLmMnLAo+ICsJJ21lZGlhX2ZpbGxfZ2VuNy5jJywKPiArCSdtZWRpYV9maWxsX2dl bjguYycsCj4gKwknbWVkaWFfZmlsbF9nZW44bHAuYycsCj4gKwknbWVkaWFfZmlsbF9nZW45LmMn LAo+ICsJJ21lZGlhX3NwaW4uYycsCj4gKwknZ3BncHVfZmlsbC5jJywKPiArCSdyZW5kZXJjb3B5 X2k5MTUuYycsCj4gKwkncmVuZGVyY29weV9pODMwLmMnLAo+ICsJJ3JlbmRlcmNvcHlfZ2VuNi5j JywKPiArCSdyZW5kZXJjb3B5X2dlbjcuYycsCj4gKwkncmVuZGVyY29weV9nZW44LmMnLAo+ICsJ J3JlbmRlcmNvcHlfZ2VuOS5jJywKPiArCSdzd19zeW5jLmMnLAo+ICsJJ2ludGVsX3JlZ19tYXAu YycsCj4gKwknaW50ZWxfaW9zZi5jJywKPiArCSdpZ3Rfa21zLmMnLAo+ICsJJ2lndF9mYi5jJywK PiArCSdpZ3RfY29yZS5jJywKPiArCSdpZ3RfZHJhdy5jJywKPiArCSdpZ3RfcG0uYycsCj4gKwkn aWd0X2R1bW15bG9hZC5jJywKPiArCSd1d2lsZG1hdC91d2lsZG1hdC5jJywKPiArCSdpZ3Rfa21v ZC5jJywKPiArXQo+ICsKPiArbGliX2RlcHMgPSBbCj4gKwljYWlybywKPiArCWdsaWIsCj4gKwls aWJkcm0sCj4gKwlsaWJrbW9kLAo+ICsJbGlicHJvY3BzLAo+ICsJbGlidWRldiwKPiArCWxpYnVu d2luZCwKPiArCXBjaWFjY2VzcywKPiArCXB0aHJlYWRzLAo+ICsJbWF0aCwKPiArCXJlYWx0aW1l LAo+ICtdCj4gKwo+ICtpZiBsaWJkcm1faW50ZWwuZm91bmQoKQo+ICsJbGliX2RlcHMgKz0gbGli ZHJtX2ludGVsCj4gK2Vsc2UKPiArCWxpYl9oZWFkZXJzICs9ICdzdHVicy9kcm0vaW50ZWxfYnVm bWdyLmgnCj4gKwlsaWJfc291cmNlcyArPSAnc3R1YnMvZHJtL2ludGVsX2J1Zm1nci5jJwo+ICtl bmRpZgo+ICsKPiAraWYgbGliZHJtX3ZjNC5mb3VuZCgpCj4gKwlsaWJfaGVhZGVycyArPSAnaWd0 X3ZjNC5oJwo+ICsJbGliX3NvdXJjZXMgKz0gJ2lndF92YzQuYycKPiArZW5kaWYKPiAraWYgdmFs Z3JpbmQuZm91bmQoKQo+ICsJbGliX2RlcHMgKz0gdmFsZ3JpbmQKPiArZW5kaWYKPiArCj4gK2lm IGdzbC5mb3VuZCgpCj4gKwlsaWJfZGVwcyArPSBnc2wKPiArCWxpYl9oZWFkZXJzICs9IFsgJ2ln dF9mcmFtZS5oJywgJ2lndF9hdWRpby5oJyBdCj4gKwlsaWJfc291cmNlcyArPSBbICdpZ3RfZnJh bWUuYycsICdpZ3RfYXVkaW8uYycgXQo+ICtlbmRpZgo+ICsKPiAraWYgYWxzYS5mb3VuZCgpCj4g KwlsaWJfZGVwcyArPSBhbHNhCj4gKwlsaWJfaGVhZGVycyArPSAnaWd0X2Fsc2EuaCcKPiArCWxp Yl9zb3VyY2VzICs9ICdpZ3RfYWxzYS5jJwo+ICtlbmRpZgo+ICsKPiAraWYgY2hhbWVsaXVtLmZv dW5kKCkKPiArCWxpYl9kZXBzICs9IGNoYW1lbGl1bQo+ICsJbGliX2hlYWRlcnMgKz0gJ2lndF9j aGFtZWxpdW0uaCcKPiArCWxpYl9zb3VyY2VzICs9ICdpZ3RfY2hhbWVsaXVtLmMnCj4gK2VuZGlm Cj4gKwo+ICtpbnN0YWxsX2hlYWRlcnMobGliX2hlYWRlcnMpCj4gKwo+ICtwa2dkYXRhZGlyID0g am9pbl9wYXRocyhnZXRfb3B0aW9uKCdwcmVmaXgnKSwgZ2V0X29wdGlvbignZGF0YWRpcicpLCAn aW50ZWwtZ3B1LXRvb2xzJykKPiArc3JjZGlyID0gam9pbl9wYXRocyhtZXNvbi5zb3VyY2Vfcm9v dCgpLCAndGVzdHMnKQo+ICsKPiArdmNzX3RhZyhpbnB1dCA6ICd2ZXJzaW9uLmguaW4nLCBvdXRw dXQgOiAndmVyc2lvbi5oJywKPiArCWZhbGxiYWNrIDogJ05PLUdJVCcsCj4gKwljb21tYW5kIDog WyAnZ2l0JywgJ2xvZycsICctbjEnLCAnLS1wcmV0dHk9Zm9ybWF0OmclaCcgXSApCj4gKwo+ICsj IEZJWE1FIHdlIGRvbid0IHJlZ2VuZXJhdGUgd2hlbiB0aGUgc2NyaXB0IGNoYW5nZXMKPiArcHJl cGVuZF9sb2dfZG9tYWluID0gZ2VuZXJhdG9yKGZpbmRfcHJvZ3JhbSgncHJlcGVuZF9sb2dfZG9t YWluLnNoJyksCj4gKwkJYXJndW1lbnRzIDogWyAnQElOUFVUQCcsICdAT1VUUFVUQCcgXSwKPiAr CQlvdXRwdXQgOiAnQFBMQUlOTkFNRUAnICsgJy5wcmUuYycpCj4gKwo+ICtwcm9jZXNzZWRfc3Jj X2RlcCA9IHByZXBlbmRfbG9nX2RvbWFpbi5wcm9jZXNzKGxpYl9zb3VyY2VzKQo+ICsKPiArbGli X2lndF9idWlsZCA9IHNoYXJlZF9saWJyYXJ5KCdpZ3QnLAo+ICsJCQkgcHJvY2Vzc2VkX3NyY19k ZXAsCj4gKwkJCSBpbmNsdWRlX2RpcmVjdG9yaWVzIDogaW5jLAo+ICsJCQkgZGVwZW5kZW5jaWVz IDogbGliX2RlcHMsCj4gKwkJCSBjX2FyZ3MgOiBbICctRElHVF9EQVRBRElSPSJAMEAiJy5mb3Jt YXQocGtnZGF0YWRpciksCj4gKwkJCQknLURJR1RfU1JDRElSPSJAMEAiJy5mb3JtYXQoc3JjZGly KSwgXSkKPiArCj4gK2xpYl9pZ3QgPSBkZWNsYXJlX2RlcGVuZGVuY3kobGlua193aXRoIDogbGli X2lndF9idWlsZCwKPiArCQkJICAgIGluY2x1ZGVfZGlyZWN0b3JpZXMgOiBpbmMpCj4gKwo+ICtp Z3RfZGVwcyA9IFsgbGliX2lndCBdICsgbGliX2RlcHMKPiArCj4gK3N1YmRpcigndGVzdHMnKQo+ IGRpZmYgLS1naXQgYS9saWIvcHJlcGVuZF9sb2dfZG9tYWluLnNoIGIvbGliL3ByZXBlbmRfbG9n X2RvbWFpbi5zaAo+IG5ldyBmaWxlIG1vZGUgMTAwNzU1Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi45 M2E5MTE1MDhiN2YKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvbGliL3ByZXBlbmRfbG9nX2RvbWFp bi5zaAo+IEBAIC0wLDAgKzEsOCBAQAo+ICsjIS9iaW4vYmFzaAo+ICsKPiAraW5wdXQ9JDEKPiAr b3V0cHV0PSQyCj4gK2Jhc2VuYW1lPSQoYmFzZW5hbWUgJDEgLmMpCj4gKwo+ICtlY2hvICIjZGVm aW5lIElHVF9MT0dfRE9NQUlOIFwiJGJhc2VuYW1lXCIiID4gJG91dHB1dAo+ICtjYXQgJGlucHV0 ID4+ICRvdXRwdXQKPiBkaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL21lc29uLmJ1aWxkIGIvbGliL3Rl c3RzL21lc29uLmJ1aWxkCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAw MDAuLjI5YmRiMmM0MjIyYwo+IC0tLSAvZGV2L251bGwKPiArKysgYi9saWIvdGVzdHMvbWVzb24u YnVpbGQKPiBAQCAtMCwwICsxLDM0IEBACj4gK2xpYl90ZXN0cyA9IFsKPiArCSdpZ3RfZm9ya19o ZWxwZXInLAo+ICsJJ2lndF9saXN0X29ubHknLAo+ICsJJ2lndF9zaW11bGF0aW9uJywKPiArCSdp Z3Rfc3RhdHMnLAo+ICsJJ2lndF9zZWdmYXVsdCcsCj4gKwknaWd0X3N1YnRlc3RfZ3JvdXAnLAo+ ICsJJ2lndF9hc3NlcnQnLAo+ICsJJ2lndF9leGl0X2hhbmRsZXInLAo+ICsJJ2lndF9oZG1pX2lu amVjdCcsCj4gKwknaWd0X2Nhbl9mYWlsJywKPiArCSdpZ3RfY2FuX2ZhaWxfc2ltcGxlJywKPiAr XQo+ICsKPiArbGliX2ZhaWxfdGVzdHMgPSBbCj4gKwknaWd0X25vX2V4aXQnLAo+ICsJJ2lndF9u b19leGl0X2xpc3Rfb25seScsCj4gKwknaWd0X25vX3N1YnRlc3QnLAo+ICsJJ2lndF9zaW1wbGVf dGVzdF9zdWJ0ZXN0cycsCj4gKwknaWd0X3RpbWVvdXQnLAo+ICsJJ2lndF9pbnZhbGlkX3N1YnRl c3RfbmFtZScsCj4gK10KPiArCj4gK2ZvcmVhY2ggbGliX3Rlc3QgOiBsaWJfdGVzdHMKPiArCWV4 ZWMgPSBleGVjdXRhYmxlKGxpYl90ZXN0LCBsaWJfdGVzdCArICcuYycsIGluc3RhbGwgOiB0cnVl LAo+ICsJCQlkZXBlbmRlbmNpZXMgOiBpZ3RfZGVwcykKPiArCXRlc3QoJ2xpYjogJyArIGxpYl90 ZXN0LCBleGVjKQo+ICtlbmRmb3JlYWNoCj4gKwo+ICtmb3JlYWNoIGxpYl90ZXN0IDogbGliX2Zh aWxfdGVzdHMKPiArCWV4ZWMgPSBleGVjdXRhYmxlKGxpYl90ZXN0LCBsaWJfdGVzdCArICcuYycs IGluc3RhbGwgOiB0cnVlLAo+ICsJCQlkZXBlbmRlbmNpZXMgOiBpZ3RfZGVwcykKPiArCXRlc3Qo J2xpYjogJyArIGxpYl90ZXN0LCBleGVjLCBzaG91bGRfZmFpbCA6IHRydWUpCj4gK2VuZGZvcmVh Y2gKPiBkaWZmIC0tZ2l0IGEvbGliL3ZlcnNpb24uaC5pbiBiL2xpYi92ZXJzaW9uLmguaW4KPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNzJmYzY5NzhjZjMyCj4g LS0tIC9kZXYvbnVsbAo+ICsrKyBiL2xpYi92ZXJzaW9uLmguaW4KPiBAQCAtMCwwICsxIEBACj4g KyNkZWZpbmUgSUdUX0dJVF9TSEExICJAVkNTX1RBR0AiCj4gZGlmZiAtLWdpdCBhL21lc29uLmJ1 aWxkIGIvbWVzb24uYnVpbGQKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAw MDAwMC4uZmVlNjRmY2RmMzZlCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL21lc29uLmJ1aWxkCj4g QEAgLTAsMCArMSwxMDUgQEAKPiArcHJvamVjdCgnSUdUIGdwdSB0ZXN0cycsICdjJywKPiArCXZl cnNpb24gOiAnMS4xOScsCj4gKyAgICAgICAgZGVmYXVsdF9vcHRpb25zOiBbCj4gKyAgICAgICAg ICAnd2FybmluZ19sZXZlbD0yJywKPiArICAgICAgICAgICdjX3N0ZD1nbnU5OScsCj4gKyAgICAg ICAgXSwKPiArCWxpY2Vuc2UgOiAnTUlUJykKPiArCj4gK2NjID0gbWVzb24uZ2V0X2NvbXBpbGVy KCdjJykKPiArCj4gK2luYyA9IGluY2x1ZGVfZGlyZWN0b3JpZXMoJ2xpYicsICcuJykKPiArCj4g K2NvbmZpZ19oID0gY29uZmlndXJhdGlvbl9kYXRhKCkKPiArCj4gK2xpYmRybSA9IGRlcGVuZGVu Y3koJ2xpYmRybScsIHZlcnNpb24gOiAnPj0yLjQuODInKQo+ICtsaWJkcm1faW50ZWwgPSBkZXBl bmRlbmN5KCdsaWJkcm1faW50ZWwnLCByZXF1aXJlZCA6IGZhbHNlKQo+ICtsaWJkcm1fdmM0ID0g ZGVwZW5kZW5jeSgnbGliZHJtX3ZjNCcsIHJlcXVpcmVkIDogZmFsc2UpCj4gK2xpYmRybV9ub3V2 ZWF1ID0gZGVwZW5kZW5jeSgnbGliZHJtX25vdXZlYXUnLCByZXF1aXJlZCA6IGZhbHNlKQo+ICts aWJkcm1fYW1kZ3B1ID0gZGVwZW5kZW5jeSgnbGliZHJtX2FtZGdwdScsIHJlcXVpcmVkIDogZmFs c2UpCj4gKwo+ICtwY2lhY2Nlc3MgPSBkZXBlbmRlbmN5KCdwY2lhY2Nlc3MnLCB2ZXJzaW9uIDog Jz49MC4xMCcpCj4gK2xpYmttb2QgPSBkZXBlbmRlbmN5KCdsaWJrbW9kJykKPiArbGlicHJvY3Bz ID0gZGVwZW5kZW5jeSgnbGlicHJvY3BzJywgcmVxdWlyZWQgOiBmYWxzZSkKPiAraWYgbGlicHJv Y3BzLmZvdW5kKCkKPiArCWNvbmZpZ19oLnNldCgnSEFWRV9QUk9DUFMnLCAxKQo+ICtlbmRpZgoK SSB3aXNoIHdlIHVzZWQgI2lmIGluc3RlYWQgb2YgI2lmZGVmIGluIGNvZGUuIFdpdGggdGhhdCB5 b3UgY291bGQgdXNlCnRoZSBvbmUtbGluZXI6Cgpjb25maWdfaC5zZXQxMCgnSEFWRV9QUk9DUFMn LCBsaWJwcm9jcHMuZm91bmQoKSkKCmFuZCBoYXZlCgojZGVmaW5lIEhBVkVfUFJPQ1BTIDAKCmlu IGNvbmZpZy5oLCB3aGljaCBpcyBoZWxwZnVsIGZvciBkZWJ1Z2dpbmcgaXNzdWVzLgoKPiArCj4g K3ZhbGdyaW5kID0gZGVwZW5kZW5jeSgndmFsZ3JpbmQnLCByZXF1aXJlZCA6IGZhbHNlKQo+ICtp ZiB2YWxncmluZC5mb3VuZCgpCj4gKwljb25maWdfaC5zZXQoJ0hBVkVfVkFMR1JJTkQnLCAxKQo+ ICtlbmRpZgo+ICsKPiArY2Fpcm8gPSBkZXBlbmRlbmN5KCdjYWlybycsIHZlcnNpb24gOiAnPjEu MTIuMCcsIHJlcXVpcmVkIDogZmFsc2UpCj4gKwo+ICtsaWJ1ZGV2ID0gZGVwZW5kZW5jeSgnbGli dWRldicsIHJlcXVpcmVkIDogZmFsc2UpCj4gK2lmIGxpYnVkZXYuZm91bmQoKQo+ICsJY29uZmln X2guc2V0KCdIQVZFX1VERVYnLCAxKQo+ICtlbmRpZgo+ICsKPiArZ2xpYiA9IGRlcGVuZGVuY3ko J2dsaWItMi4wJywgcmVxdWlyZWQgOiBmYWxzZSkKPiAraWYgZ2xpYi5mb3VuZCgpCj4gKwljb25m aWdfaC5zZXQoJ0hBVkVfR0xJQicsIDEpCj4gK2VuZGlmCj4gKwo+ICtsaWJ1bndpbmQgPSBkZXBl bmRlbmN5KCdsaWJ1bndpbmQnKQo+ICtnc2wgPSBkZXBlbmRlbmN5KCdnc2wnLCByZXF1aXJlZCA6 IGZhbHNlKQo+ICthbHNhID0gZGVwZW5kZW5jeSgnYWxzYScsIHJlcXVpcmVkIDogZmFsc2UpCj4g Kwo+ICtwaXhtYW4gPSBkZXBlbmRlbmN5KCdwaXhtYW4tMScsIHJlcXVpcmVkIDogZmFsc2UpCj4g K3htbHJwYyA9IGRlcGVuZGVuY3koJ3htbHJwYycsIHJlcXVpcmVkIDogZmFsc2UpCj4gK3htbHJw Y191dGlsID0gZGVwZW5kZW5jeSgneG1scnBjX3V0aWwnLCByZXF1aXJlZCA6IGZhbHNlKQo+ICt4 bWxycGNfY2xpZW50ID0gZGVwZW5kZW5jeSgneG1scnBjX2NsaWVudCcsIHJlcXVpcmVkIDogZmFs c2UpCj4gKwo+ICtpZiBwaXhtYW4uZm91bmQoKSBhbmQgeG1scnBjLmZvdW5kKCkgYW5kIHhtbHJw Y191dGlsLmZvdW5kKCkgYW5kIHhtbHJwY19jbGllbnQuZm91bmQoKQo+ICsJY2hhbWVsaXVtID0g ZGVjbGFyZV9kZXBlbmRlbmN5KGRlcGVuZGVuY2llcyA6IFsgcGl4bWFuLCB4bWxycGMsCj4gKwkg IHhtbHJwY191dGlsLCB4bWxycGNfY2xpZW50XSkKPiArZWxzZQo+ICsJY2hhbWVsaXVtID0gZGVw ZW5kZW5jeSgnJywgcmVxdWlyZWQ6IGZhbHNlKQo+ICtlbmRpZgo+ICsKPiArcHRocmVhZHMgPSBk ZXBlbmRlbmN5KCd0aHJlYWRzJykKPiArbWF0aCA9IGNjLmZpbmRfbGlicmFyeSgnbScpCj4gK3Jl YWx0aW1lID0gY2MuZmluZF9saWJyYXJ5KCdydCcpCj4gK2Rsc3ltID0gY2MuZmluZF9saWJyYXJ5 KCdkbCcpCj4gK3psaWIgPSBjYy5maW5kX2xpYnJhcnkoJ3onKQo+ICsKPiAraWYgY2MuaGFzX2hl YWRlcignbGludXgva2QuaCcpCj4gKwljb25maWdfaC5zZXQoJ0hBVkVfTElOVVhfS0RfSCcsIDEp Cj4gK2VuZGlmCj4gK2lmIGNjLmhhc19oZWFkZXIoJ3N5cy9rZC5oJykKPiArCWNvbmZpZ19oLnNl dCgnSEFWRV9TWVNfS0RfSCcsIDEpCj4gK2VuZGlmCj4gK2lmIGNjLmhhc19oZWFkZXIoJ2xpYmdl bi5oJykKPiArCWNvbmZpZ19oLnNldCgnSEFWRV9MSUJHRU5fSCcsIDEpCj4gK2VuZGlmCj4gK2lm IGNjLmhhc19oZWFkZXIoJ3N5cy9pby5oJykKPiArCWNvbmZpZ19oLnNldCgnSEFWRV9TWVNfSU9f SCcsIDEpCj4gK2VuZGlmCj4gK2lmIGNjLmhhc19oZWFkZXIoJ2NwdWlkLmgnKQo+ICsJIyBGSVhN RTogRG8gd2UgbmVlZCB0aGUgZXhhbXBsZSBsaW5rIHRlc3QgZnJvbSBjb25maWd1cmUuYWM/Cj4g Kwljb25maWdfaC5zZXQoJ0hBVkVfQ1BVSURfSCcsIDEpCj4gK2VuZGlmCj4gKwo+ICtpZiBjYy5o YXNfbWVtYmVyKCdzdHJ1Y3Qgc3lzaW5mbycsICd0b3RhbHJhbScsCj4gKwkJcHJlZml4IDogJyNp bmNsdWRlIDxzeXMvc3lzaW5mby5oPicpCj4gKwljb25maWdfaC5zZXQoJ0hBVkVfU1RSVUNUX1NZ U0lORk9fVE9UQUxSQU0nLCAxKQo+ICtlbmRpZgo+ICsKPiArYWRkX3Byb2plY3RfYXJndW1lbnRz KCctRF9HTlVfU09VUkNFJywgbGFuZ3VhZ2UgOiAnYycpCj4gK2FkZF9wcm9qZWN0X2FyZ3VtZW50 cygnLWluY2x1ZGUnLCAnY29uZmlnLmgnLCBsYW5ndWFnZSA6ICdjJykKCk9vbywgdGhhdCdzIGEg bmljZSB3YXkgdG8gZG8gdGhpcy4gVElMLgoKPiArCj4gK2NvbmZpZ19oLnNldF9xdW90ZWQoJ1BB Q0tBR0VfVkVSU0lPTicsIG1lc29uLnByb2plY3RfdmVyc2lvbigpKQo+ICtjb25maWdfaC5zZXRf cXVvdGVkKCdQQUNLQUdFJywgbWVzb24ucHJvamVjdF9uYW1lKCkpCj4gK2NvbmZpZ19oLnNldF9x dW90ZWQoJ1RBUkdFVF9DUFVfUExBVEZPUk0nLCBob3N0X21hY2hpbmUuY3B1X2ZhbWlseSgpKQo+ ICsKPiArY29uZmlndXJlX2ZpbGUob3V0cHV0OiAnY29uZmlnLmgnLCBpbnN0YWxsOiBmYWxzZSwg Y29uZmlndXJhdGlvbjogY29uZmlnX2gpCgpUaGlzIG1ha2VzIG1lIHRoaW5rIGNvbmZpZ19oIGlz IGEgbWlzbm9tZXIgZm9yIHRoZSBjb25maWd1cmF0aW9uIGRhdGEKb2JqZWN0LiBJJ2QgcHJvYmFi bHkgdXNlIHBsYWluICJjb25maWciIGluc3RlYWQuCgpJIHRoaW5rIHdlJ2xsIGVuZCB1cCB3YW50 aW5nIHRvIHVzZSB0aGUgY29uZmlndXJhdGlvbiBkYXRhIGZvciB0aGUgdGVzdApydW5uZXIgc2hl bGwgc2NyaXB0cyB0b28sIGFuZCBnZW5lcmF0ZSBhIHNoLmNvbmZpZyBmcm9tIHRoZSBzYW1lCmNv bmZpZy4gV2UgY2FuIHNvdXJjZSB0aGUgc2guY29uZmlnIGZyb20gZS5nLiBydW4tdGVzdHMuc2gs IHRvIGZpZ3VyZQpvdXQgdGhlIHNvdXJjZSBhbmQgYnVpbGQgZGlyZWN0b3JpZXMuIFdlIGNhbiB1 c2UgZmluZF9wcm9ncmFtKCkgdG8gZmluZApwaWdsaXQsIGZvciBleGFtcGxlLCBhbmQgc2hvdmUg dGhhdCBpbnRvIHNoLmNvbmZpZy4KCkxvb2sgYXQgdGhlIGJlZ2lubmluZyBvZiBydW4tdGVzdHMu c2ggYW5kIHNlZSBob3cgbXVjaCBiZXR0ZXIgaXQgY291bGQKYmUgd2l0aCBhIHNoLmNvbmZpZy4K Ck9mIGNvdXJzZSwgdGhlIGFsdGVybmF0aXZlIGlzIHRvIHVzZSBhIHNlcGFyYXRlIGNvbmZpZ3Vy YXRpb24gZGF0YQpvYmplY3QgZm9yIHNoLmNvbmZpZywgYnV0IEkgdGhpbmsgaXQncyBjbGVhcmVy IHRvIHVzZSBvbmUsIGFuZCB1c2UgLmluCmZpbGVzIHRvIGRlY2lkZSB3aGF0IGdvZXMgaW4gdGhl bS4KCj4gKwo+ICtzdWJkaXIoJ2xpYicpCj4gK3N1YmRpcigndGVzdHMnKQo+ICtzdWJkaXIoJ2Jl bmNobWFya3MnKQo+ICtzdWJkaXIoJ3Rvb2xzJykKPiAraWYgbGliZHJtX2ludGVsLmZvdW5kKCkK PiArCXN1YmRpcignYXNzZW1ibGVyJykKPiArCXN1YmRpcignb3ZlcmxheScpCj4gK2VuZGlmCj4g ZGlmZiAtLWdpdCBhL292ZXJsYXkvbWVzb24uYnVpbGQgYi9vdmVybGF5L21lc29uLmJ1aWxkCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLmE0Yjc3OGNhNWE4Ngo+ IC0tLSAvZGV2L251bGwKPiArKysgYi9vdmVybGF5L21lc29uLmJ1aWxkCj4gQEAgLTAsMCArMSw1 OSBAQAo+ICtncHVfb3ZlcmxheV9zcmMgPSBbCj4gKwknY2hhcnQuYycsCj4gKwknY29uZmlnLmMn LAo+ICsJJ2NwdS10b3AuYycsCj4gKwknZGVidWdmcy5jJywKPiArCSdnZW0taW50ZXJydXB0cy5j JywKPiArCSdnZW0tb2JqZWN0cy5jJywKPiArCSdncHUtdG9wLmMnLAo+ICsJJ2dwdS1wZXJmLmMn LAo+ICsJJ2dwdS1mcmVxLmMnLAo+ICsJJ2lnZnguYycsCj4gKwknb3ZlcmxheS5jJywKPiArCSdw ZXJmLmMnLAo+ICsJJ3Bvd2VyLmMnLAo+ICsJJ3JjNi5jJywKPiArXQo+ICsKPiAreHYgPSBkZXBl bmRlbmN5KCd4dicsIHJlcXVpcmVkIDogZmFsc2UpCj4gK3gxMSA9IGRlcGVuZGVuY3koJ3gxMScs IHJlcXVpcmVkIDogZmFsc2UpCj4gK3hleHQgPSBkZXBlbmRlbmN5KCd4ZXh0JywgcmVxdWlyZWQg OiBmYWxzZSkKPiArZHJpMnByb3RvID0gZGVwZW5kZW5jeSgnZHJpMnByb3RvJywgdmVyc2lvbiA6 ICc+PSAyLjYnLCByZXF1aXJlZCA6IGZhbHNlKQo+ICtjYWlyb194bGliID0gZGVwZW5kZW5jeSgn Y2Fpcm8teGxpYicsIHJlcXVpcmVkIDogZmFsc2UpCj4gK3hyYW5kciA9IGRlcGVuZGVuY3koJ3hy YW5kcicsIHZlcnNpb24gOiAnPj0xLjMnLCByZXF1aXJlZCA6IGZhbHNlKQo+ICsKPiArZ3B1X292 ZXJsYXlfZGVwcyA9IFsgcmVhbHRpbWUsIGNhaXJvLCBwY2lhY2Nlc3MsIGxpYmRybSwgbGliZHJt X2ludGVsIF0KPiArCj4gK2JvdGhfeDExX3NyYyA9ICcnCj4gKwo+ICtncHVfb3ZlcmxheV9jZmxh Z3MgPSBbXQo+ICtpZiB4di5mb3VuZCgpIGFuZCB4MTEuZm91bmQoKSBhbmQgeGV4dC5mb3VuZCgp IGFuZCBkcmkycHJvdG8uZm91bmQoKQo+ICsJYm90aF94MTFfc3JjID0gJ3gxMS9wb3NpdGlvbi5j Jwo+ICsJZ3B1X292ZXJsYXlfc3JjICs9IFsKPiArCQkneDExL2RyaTIuYycsCj4gKwkJJ3gxMS9k cmkyLmgnLAo+ICsJCSd4MTEvcmdiMnl1di5jJywKPiArCQkneDExL3JnYjJ5dXYuaCcsCj4gKwkJ J3gxMS94MTEtb3ZlcmxheS5jJywKPiArCV0KPiArCWdwdV9vdmVybGF5X2RlcHMgKz0gWyB4diwg eDExLCB4ZXh0LCBkcmkycHJvdG8gXQo+ICsJZ3B1X292ZXJsYXlfY2ZsYWdzICs9IFsgJy1ESEFW RV9PVkVSTEFZX1hWTElCJyBdCgpIbW0sIHNlZW1zIGEgYml0IG9kZCB0byBoYXZlIHRoZSBjb25m aWcgZGF0YSBzcGxpdCBiZXR3ZWVuIGEKY29uZmlndXJhdGlvbiBkYXRhIG9iamVjdCBhbmQgZmxh Z3MgbGlrZSB0aGlzLgoKPiArZW5kaWYKPiArCj4gK2lmIGNhaXJvX3hsaWIuZm91bmQoKSBhbmQg eHJhbmRyLmZvdW5kKCkgYW5kIGRyaTJwcm90by5mb3VuZCgpCj4gKwlib3RoX3gxMV9zcmMgPSAn eDExL3Bvc2l0aW9uLmMnCj4gKwlncHVfb3ZlcmxheV9zcmMgKz0gJ3gxMS94MTEtd2luZG93LmMn Cj4gKwlncHVfb3ZlcmxheV9kZXBzICs9IFsgY2Fpcm9feGxpYiwgZHJpMnByb3RvIF0KPiArCWdw dV9vdmVybGF5X2NmbGFncyArPSBbICctREhBVkVfT1ZFUkxBWV9YTElCJyBdCgpEaXR0by4KCj4g K2VuZGlmCj4gKwo+ICtncHVfb3ZlcmxheV9zcmMgKz0gYm90aF94MTFfc3JjCj4gKwo+ICtncHVf b3ZlcmxheV9zcmMgKz0gJ2ttcy9rbXMtb3ZlcmxheS5jJwo+ICsKPiAraWYgeHJhbmRyLmZvdW5k KCkgYW5kIGNhaXJvLmZvdW5kKCkKPiArCWV4ZWN1dGFibGUoJ2ludGVsX2dwdV9vdmVybGF5Jywg Z3B1X292ZXJsYXlfc3JjLAo+ICsJCQlpbmNsdWRlX2RpcmVjdG9yaWVzIDogaW5jLAo+ICsJCQlj X2FyZ3MgOiBncHVfb3ZlcmxheV9jZmxhZ3MsCj4gKwkJCWRlcGVuZGVuY2llcyA6IGdwdV9vdmVy bGF5X2RlcHMpCj4gK2VuZGlmCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbmVyYXRlX3Rlc3RsaXN0 LnNoIGIvdGVzdHMvZ2VuZXJhdGVfdGVzdGxpc3Quc2gKPiBuZXcgZmlsZSBtb2RlIDEwMDc1NQo+ IGluZGV4IDAwMDAwMDAwMDAwMC4uNmVhNzg2NTVkYWNhCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBi L3Rlc3RzL2dlbmVyYXRlX3Rlc3RsaXN0LnNoCj4gQEAgLTAsMCArMSwxMCBAQAo+ICsjIS9iaW4v YmFzaAo+ICsKPiArZWNobyBURVNUTElTVCA+ICRNRVNPTl9CVUlMRF9ST09UL3Rlc3RzL3Rlc3Qt bGlzdC50eHQKPiArCj4gK3doaWxlIFtbICQjIC1ndCAwIF1dIDsgZG8KPiArCWVjaG8gJDEgPj4g JE1FU09OX0JVSUxEX1JPT1QvdGVzdHMvdGVzdC1saXN0LnR4dAo+ICsJc2hpZnQKPiArZG9uZQo+ ICsKPiArZWNobyBFTkQgVEVTVExJU1QgPj4gJE1FU09OX0JVSUxEX1JPT1QvdGVzdHMvdGVzdC1s aXN0LnR4dAo+IGRpZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1 aWxkCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjczODMzNzU4 YmUwZQo+IC0tLSAvZGV2L251bGwKPiArKysgYi90ZXN0cy9tZXNvbi5idWlsZAo+IEBAIC0wLDAg KzEsMjkwIEBACj4gK3Rlc3RfcHJvZ3MgPSBbCj4gKwknY29yZV9hdXRoJywKPiArCSdjb3JlX2dl dF9jbGllbnRfYXV0aCcsCj4gKwknY29yZV9nZXRjbGllbnQnLAo+ICsJJ2NvcmVfZ2V0c3RhdHMn LAo+ICsJJ2NvcmVfZ2V0dmVyc2lvbicsCj4gKwknY29yZV9wcm9wX2Jsb2InLAo+ICsJJ2NvcmVf c2V0bWFzdGVyX3ZzX2F1dGgnLAo+ICsJJ2RlYnVnZnNfdGVzdCcsCj4gKwknZHJtX2ltcG9ydF9l eHBvcnQnLAo+ICsJJ2RybV9tbScsCj4gKwknZHJtX3JlYWQnLAo+ICsJJ2RybV92bWFfbGltaXRl cicsCj4gKwknZHJtX3ZtYV9saW1pdGVyX2NhY2hlZCcsCj4gKwknZHJtX3ZtYV9saW1pdGVyX2Nw dScsCj4gKwknZHJtX3ZtYV9saW1pdGVyX2d0dCcsCj4gKwknZHJ2X2dldHBhcmFtc19iYXNpYycs Cj4gKwknZHJ2X2hhbmdtYW4nLAo+ICsJJ2Rydl9taXNzZWRfaXJxJywKPiArCSdkcnZfbW9kdWxl X3JlbG9hZCcsCj4gKwknZHJ2X3NlbGZ0ZXN0JywKPiArCSdkcnZfc3VzcGVuZCcsCj4gKwknZ2Vt X2JhZF9sZW5ndGgnLAo+ICsJJ2dlbV9iYWRfcmVsb2MnLAo+ICsJJ2dlbV9iYXNpYycsCj4gKwkn Z2VtX2J1c3knLAo+ICsJJ2dlbV9jYWNoaW5nJywKPiArCSdnZW1fY2xvc2UnLAo+ICsJJ2dlbV9j bG9zZV9yYWNlJywKPiArCSdnZW1fY29uY3VycmVudF9ibGl0JywKPiArCSdnZW1fY3B1X3JlbG9j JywKPiArCSdnZW1fY3JlYXRlJywKPiArCSdnZW1fY3NfcHJlZmV0Y2gnLAo+ICsJJ2dlbV9jc190 bGInLAo+ICsJJ2dlbV9jdHhfYmFkX2Rlc3Ryb3knLAo+ICsJJ2dlbV9jdHhfYmFkX2V4ZWMnLAo+ ICsJJ2dlbV9jdHhfYmFzaWMnLAo+ICsJJ2dlbV9jdHhfY3JlYXRlJywKPiArCSdnZW1fY3R4X2V4 ZWMnLAo+ICsJJ2dlbV9jdHhfcGFyYW0nLAo+ICsJJ2dlbV9jdHhfc3dpdGNoJywKPiArCSdnZW1f Y3R4X3RocmFzaCcsCj4gKwknZ2VtX2RvdWJsZV9pcnFfbG9vcCcsCj4gKwknZ2VtX2VpbycsCj4g KwknZ2VtX2V2aWN0X2FsaWdubWVudCcsCj4gKwknZ2VtX2V2aWN0X2V2ZXJ5dGhpbmcnLAo+ICsJ J2dlbV9leGVjX2FsaWdubWVudCcsCj4gKwknZ2VtX2V4ZWNfYXN5bmMnLAo+ICsJJ2dlbV9leGVj X2F3YWl0JywKPiArCSdnZW1fZXhlY19iYWRfZG9tYWlucycsCj4gKwknZ2VtX2V4ZWNfYmFzaWMn LAo+ICsJJ2dlbV9leGVjX2JpZycsCj4gKwknZ2VtX2V4ZWNfYmx0JywKPiArCSdnZW1fZXhlY19j YXB0dXJlJywKPiArCSdnZW1fZXhlY19jcmVhdGUnLAo+ICsJJ2dlbV9leGVjX2ZhdWx0aW5nX3Jl bG9jJywKPiArCSdnZW1fZXhlY19mZW5jZScsCj4gKwknZ2VtX2V4ZWNfZmx1c2gnLAo+ICsJJ2dl bV9leGVjX2d0dGZpbGwnLAo+ICsJJ2dlbV9leGVjX2xhdGVuY3knLAo+ICsJJ2dlbV9leGVjX2x1 dF9oYW5kbGUnLAo+ICsJJ2dlbV9leGVjX25vcCcsCj4gKwknZ2VtX2V4ZWNfcGFyYWxsZWwnLAo+ ICsJJ2dlbV9leGVjX3BhcmFtcycsCj4gKwknZ2VtX2V4ZWNfcGFyc2UnLAo+ICsJJ2dlbV9leGVj X3JlbG9jJywKPiArCSdnZW1fZXhlY19yZXVzZScsCj4gKwknZ2VtX2V4ZWNfc2NoZWR1bGUnLAo+ ICsJJ2dlbV9leGVjX3N0b3JlJywKPiArCSdnZW1fZXhlY19zdXNwZW5kJywKPiArCSdnZW1fZXhl Y193aGlzcGVyJywKPiArCSdnZW1fZmRfZXhoYXVzdGlvbicsCj4gKwknZ2VtX2ZlbmNlX3RocmFz aCcsCj4gKwknZ2VtX2ZlbmNlX3VwbG9hZCcsCj4gKwknZ2VtX2ZlbmNlZF9leGVjX3RocmFzaCcs Cj4gKwknZ2VtX2ZsaW5rX2Jhc2ljJywKPiArCSdnZW1fZmxpbmtfcmFjZScsCj4gKwknZ2VtX2dw Z3B1X2ZpbGwnLAo+ICsJJ2dlbV9ndHRfY3B1X3RsYicsCj4gKwknZ2VtX2d0dF9ob2cnLAo+ICsJ J2dlbV9ndHRfc3BlZWQnLAo+ICsJJ2dlbV9oYW5nY2hlY2tfZm9yY2V3YWtlJywKPiArCSdnZW1f bGFyZ2VvYmplY3QnLAo+ICsJJ2dlbV9saW5lYXJfYmxpdHMnLAo+ICsJJ2dlbV9sdXRfaGFuZGxl JywKPiArCSdnZW1fbWFkdmlzZScsCj4gKwknZ2VtX21lZGlhX2ZpbGwnLAo+ICsJJ2dlbV9tbWFw JywKPiArCSdnZW1fbW1hcF9ndHQnLAo+ICsJJ2dlbV9tbWFwX29mZnNldF9leGhhdXN0aW9uJywK PiArCSdnZW1fbW1hcF93YycsCj4gKwknZ2VtX21vY3Nfc2V0dGluZ3MnLAo+ICsJJ2dlbV9wYXJ0 aWFsX3B3cml0ZV9wcmVhZCcsCj4gKwknZ2VtX3BlcnNpc3RlbnRfcmVsb2NzJywKPiArCSdnZW1f cGluJywKPiArCSdnZW1fcGlwZV9jb250cm9sX3N0b3JlX2xvb3AnLAo+ICsJJ2dlbV9wcGd0dCcs Cj4gKwknZ2VtX3ByZWFkJywKPiArCSdnZW1fcHJlYWRfYWZ0ZXJfYmxpdCcsCj4gKwknZ2VtX3B3 cml0ZScsCj4gKwknZ2VtX3B3cml0ZV9wcmVhZCcsCj4gKwknZ2VtX3B3cml0ZV9zbm9vcGVkJywK PiArCSdnZW1fcmVhZF9yZWFkX3NwZWVkJywKPiArCSdnZW1fcmVhZHdyaXRlJywKPiArCSdnZW1f cmVnX3JlYWQnLAo+ICsJJ2dlbV9yZWxvY19vdmVyZmxvdycsCj4gKwknZ2VtX3JlbG9jX3ZzX2dw dScsCj4gKwknZ2VtX3JlbmRlcl9jb3B5JywKPiArCSdnZW1fcmVuZGVyX2NvcHlfcmVkdXgnLAo+ ICsJJ2dlbV9yZW5kZXJfbGluZWFyX2JsaXRzJywKPiArCSdnZW1fcmVuZGVyX3RpbGVkX2JsaXRz JywKPiArCSdnZW1fcmVxdWVzdF9yZXRpcmUnLAo+ICsJJ2dlbV9yZXNldF9zdGF0cycsCj4gKwkn Z2VtX3Jpbmdfc3luY19jb3B5JywKPiArCSdnZW1fcmluZ19zeW5jX2xvb3AnLAo+ICsJJ2dlbV9y aW5nZmlsbCcsCj4gKwknZ2VtX3NlcW5vX3dyYXAnLAo+ICsJJ2dlbV9zZXRfdGlsaW5nX3ZzX2Js dCcsCj4gKwknZ2VtX3NldF90aWxpbmdfdnNfZ3R0JywKPiArCSdnZW1fc2V0X3RpbGluZ192c19w d3JpdGUnLAo+ICsJJ2dlbV9zaHJpbmsnLAo+ICsJJ2dlbV9zb2Z0cGluJywKPiArCSdnZW1fc3Bp bl9iYXRjaCcsCj4gKwknZ2VtX3N0b2xlbicsCj4gKwknZ2VtX3N0b3JlZHdfYmF0Y2hlc19sb29w JywKPiArCSdnZW1fc3RvcmVkd19sb29wJywKPiArCSdnZW1fc3RyZWFtaW5nX3dyaXRlcycsCj4g KwknZ2VtX3N5bmMnLAo+ICsJJ2dlbV90aHJlYWRlZF9hY2Nlc3NfdGlsZWQnLAo+ICsJJ2dlbV90 aWxlZF9ibGl0cycsCj4gKwknZ2VtX3RpbGVkX2ZlbmNlX2JsaXRzJywKPiArCSdnZW1fdGlsZWRf cGFydGlhbF9wd3JpdGVfcHJlYWQnLAo+ICsJJ2dlbV90aWxlZF9wcmVhZF9iYXNpYycsCj4gKwkn Z2VtX3RpbGVkX3ByZWFkX3B3cml0ZScsCj4gKwknZ2VtX3RpbGVkX3N3YXBwaW5nJywKPiArCSdn ZW1fdGlsZWRfd2InLAo+ICsJJ2dlbV90aWxlZF93YycsCj4gKwknZ2VtX3RpbGluZ19tYXhfc3Ry aWRlJywKPiArCSdnZW1fdW5mZW5jZV9hY3RpdmVfYnVmZmVycycsCj4gKwknZ2VtX3VucmVmX2Fj dGl2ZV9idWZmZXJzJywKPiArCSdnZW1fdXNlcnB0cl9ibGl0cycsCj4gKwknZ2VtX3dhaXQnLAo+ ICsJJ2dlbV93b3JrYXJvdW5kcycsCj4gKwknZ2VtX3dyaXRlX3JlYWRfcmluZ19zd2l0Y2gnLAo+ ICsJJ2dlbjNfbWl4ZWRfYmxpdHMnLAo+ICsJJ2dlbjNfcmVuZGVyX2xpbmVhcl9ibGl0cycsCj4g KwknZ2VuM19yZW5kZXJfbWl4ZWRfYmxpdHMnLAo+ICsJJ2dlbjNfcmVuZGVyX3RpbGVkeF9ibGl0 cycsCj4gKwknZ2VuM19yZW5kZXJfdGlsZWR5X2JsaXRzJywKPiArCSdnZW43X2ZvcmNld2FrZV9t dCcsCj4gKwknZ3Z0X2Jhc2ljJywKPiArCSdrbXNfM2QnLAo+ICsJJ2ttc19hZGRmYl9iYXNpYycs Cj4gKwkna21zX2F0b21pYycsCj4gKwkna21zX2F0b21pY190cmFuc2l0aW9uJywKPiArCSdrbXNf YnVzeScsCj4gKwkna21zX2NjcycsCj4gKwkna21zX2Nodl9jdXJzb3JfZmFpbCcsCj4gKwkna21z X2NvbmN1cnJlbnQnLAo+ICsJJ2ttc19jcnRjX2JhY2tncm91bmRfY29sb3InLAo+ICsJJ2ttc19j dXJzb3JfY3JjJywKPiArCSdrbXNfY3Vyc29yX2xlZ2FjeScsCj4gKwkna21zX2RyYXdfY3JjJywK PiArCSdrbXNfZmJjX2NyYycsCj4gKwkna21zX2ZiY29uX2ZidCcsCj4gKwkna21zX2ZlbmNlX3Bp bl9sZWFrJywKPiArCSdrbXNfZmxpcCcsCj4gKwkna21zX2ZsaXBfZXZlbnRfbGVhaycsCj4gKwkn a21zX2ZsaXBfdGlsaW5nJywKPiArCSdrbXNfZm9yY2VfY29ubmVjdG9yX2Jhc2ljJywKPiArCSdr bXNfZnJvbnRidWZmZXJfdHJhY2tpbmcnLAo+ICsJJ2ttc19oZG1pX2luamVjdCcsCj4gKwkna21z X2ludmFsaWRfZG90Y2xvY2snLAo+ICsJJ2ttc19sZWdhY3lfY29sb3JrZXknLAo+ICsJJ2ttc19t bWFwX3dyaXRlX2NyYycsCj4gKwkna21zX21taW9fdnNfY3NfZmxpcCcsCj4gKwkna21zX3BhbmVs X2ZpdHRpbmcnLAo+ICsJJ2ttc19waXBlX2JfY19pdmInLAo+ICsJJ2ttc19waXBlX2NvbG9yJywK PiArCSdrbXNfcGlwZV9jcmNfYmFzaWMnLAo+ICsJJ2ttc19wbGFuZScsCj4gKwkna21zX3BsYW5l X2xvd3JlcycsCj4gKwkna21zX3BsYW5lX211bHRpcGxlJywKPiArCSdrbXNfcGxhbmVfc2NhbGlu ZycsCj4gKwkna21zX3Byb3BlcnRpZXMnLAo+ICsJJ2ttc19wc3Jfc2lua19jcmMnLAo+ICsJJ2tt c19wd3JpdGVfY3JjJywKPiArCSdrbXNfcmVuZGVyJywKPiArCSdrbXNfcm1mYicsCj4gKwkna21z X3JvdGF0aW9uX2NyYycsCj4gKwkna21zX3NldG1vZGUnLAo+ICsJJ2ttc19zaW5rX2NyY19iYXNp YycsCj4gKwkna21zX3N5c2ZzX2VkaWRfdGltaW5nJywKPiArCSdrbXNfdHZfbG9hZF9kZXRlY3Qn LAo+ICsJJ2ttc191bml2ZXJzYWxfcGxhbmUnLAo+ICsJJ2ttc192YmxhbmsnLAo+ICsJJ21ldGFf dGVzdCcsCj4gKwkncGVyZicsCj4gKwkncG1fYmFja2xpZ2h0JywKPiArCSdwbV9scHNwJywKPiAr CSdwbV9yYzZfcmVzaWRlbmN5JywKPiArCSdwbV9ycG0nLAo+ICsJJ3BtX3JwcycsCj4gKwkncG1f c3NldScsCj4gKwkncHJpbWVfYnVzeScsCj4gKwkncHJpbWVfbW1hcCcsCj4gKwkncHJpbWVfbW1h cF9jb2hlcmVuY3knLAo+ICsJJ3ByaW1lX21tYXBfa21zJywKPiArCSdwcmltZV9zZWxmX2ltcG9y dCcsCj4gKwkncHJpbWVfdWRsJywKPiArCSdwcmltZV92Z2VtJywKPiArCSdzd19zeW5jJywKPiAr CSdzeW5jb2JqX2Jhc2ljJywKPiArCSd0ZW1wbGF0ZScsCj4gKwkndG9vbHNfdGVzdCcsCj4gKwkn dmdlbV9iYXNpYycsCj4gKwkndmdlbV9zbG93JywKPiArXQo+ICsKPiArdGVzdF9kZXBzID0gWyBp Z3RfZGVwcyBdCj4gK2lmIGxpYmRybV9ub3V2ZWF1LmZvdW5kKCkKPiArCXRlc3RfcHJvZ3MgKz0g Wwo+ICsJCSdwcmltZV9udl9hcGknLAo+ICsJCSdwcmltZV9udl9wY29weScsCj4gKwkJJ3ByaW1l X252X3Rlc3QnLAo+ICsJXQo+ICsJdGVzdF9kZXBzICs9IGxpYmRybV9ub3V2ZWF1Cj4gK2VuZGlm Cj4gKwo+ICtpZiBsaWJkcm1fdmM0LmZvdW5kKCkKPiArCXRlc3RfcHJvZ3MgKz0gWwo+ICsJCSd2 YzRfY3JlYXRlX2JvJywKPiArCQkndmM0X2RtYWJ1Zl9wb2xsJywKPiArCQkndmM0X2xvb2t1cF9m YWlsJywKPiArCQkndmM0X3dhaXRfYm8nLAo+ICsJCSd2YzRfd2FpdF9zZXFubycsCj4gKwldCj4g Kwl0ZXN0X2RlcHMgKz0gbGliZHJtX3ZjNAo+ICtlbmRpZgo+ICsKPiAraWYgbGliZHJtX2FtZGdw dS5mb3VuZCgpCj4gKwkjIEZJWE1FIG1lc29uL25pbmphIHJlYWxseSBkb2Vzbid0IGxpa2UgYnVp bGQgdGFyZ2V0cyB3aXRoIHBhdGhzIGluIHRoZW0KPiArCXRlc3RfcHJvZ3MgKz0gWwo+ICsJCSdh bWRncHUvYW1kX2Jhc2ljJywKPiArCQknYW1kZ3B1L2FtZF9jc19ub3AnLAo+ICsJCSdhbWRncHUv YW1kX3ByaW1lJywKPiArCV0KPiArCXRlc3RfZGVwcyArPSBsaWJkcm1fYW1kZ3B1Cj4gK2VuZGlm Cj4gKwo+ICtpZiBhbHNhLmZvdW5kKCkKPiArCXRlc3RfcHJvZ3MgKz0gWwo+ICsJCSdhdWRpbycs Cj4gKwldCj4gKwl0ZXN0X2RlcHMgKz0gYWxzYQo+ICtlbmRpZgo+ICsKPiArZm9yZWFjaCBwcm9n IDogdGVzdF9wcm9ncwo+ICsJZXhlY3V0YWJsZShwcm9nLCBwcm9nICsgJy5jJywKPiArCQkJZGVw ZW5kZW5jaWVzIDogdGVzdF9kZXBzKQo+ICtlbmRmb3JlYWNoCj4gKwo+ICtleGVjdXRhYmxlKCd0 ZXN0ZGlzcGxheScsIFsndGVzdGRpc3BsYXkuYycsICd0ZXN0ZGlzcGxheV9ob3RwbHVnLmMnXSwK PiArCQlkZXBlbmRlbmNpZXMgOiB0ZXN0X2RlcHMpCj4gK3Rlc3RfcHJvZ3MgKz0gJ3Rlc3RkaXNw bGF5Jwo+ICsKPiArcnVuX2NvbW1hbmQoJ2dlbmVyYXRlX3Rlc3RsaXN0LnNoJywgdGVzdF9wcm9n cykKPiArCj4gK3Rlc3Rfc2NyaXB0ID0gZmluZF9wcm9ncmFtKCdpZ3RfY29tbWFuZF9saW5lLnNo JykKPiArZm9yZWFjaCBwcm9nIDogdGVzdF9wcm9ncwo+ICsJdGVzdCgndGVzdGNhc2UgY2hlY2s6 ICcgKyBwcm9nLCB0ZXN0X3NjcmlwdCwKPiArCQkJYXJncyA6IHByb2cpCj4gK2VuZGZvcmVhY2gK PiArCj4gK2V4ZWN1dGFibGUoJ2dlbV9zdHJlc3MnLCAnZ2VtX3N0cmVzcy5jJywgZGVwZW5kZW5j aWVzIDogaWd0X2RlcHMpCj4gKwo+ICsjIElNUE9SVEFOVDogVGhlc2UgdGVzdHMgaGVyZSBhcmUg YWxsIGRpc2FibGVkIGJlY2F1c2UgdGhlIHJlc3VsdCBpbiBzb21ldGltZQo+ICsjIHVucmVjb3Zl cmFibGUgZ3B1IGhhbmdzLiBEb24ndCBwdXQgcmVhbCB0ZXN0Y2FzZXMgaGVyZS4KPiAraGFuZ19w cm9ncyA9IFsKPiArCSdnZW1fYmFkX2JhdGNoJywKPiArCSdnZW1faGFuZycsCj4gKwknZ2VtX2Jh ZF9ibGl0JywKPiArCSdnZW1fYmFkX2FkZHJlc3MnLAo+ICsJJ2dlbV9ub25fc2VjdXJlX2JhdGNo JywKPiArXQo+ICtmb3JlYWNoIHByb2cgOiBoYW5nX3Byb2dzCj4gKwlleGVjdXRhYmxlKHByb2cs IHByb2cgKyAnLmMnLAo+ICsJCQlkZXBlbmRlbmNpZXMgOiBpZ3RfZGVwcywKPiArCQkJaW5zdGFs bCA6IGZhbHNlKQo+ICtlbmRmb3JlYWNoCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL21lc29uLmJ1aWxk IGIvdG9vbHMvbWVzb24uYnVpbGQKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAw MDAwMDAwMC4uZDJkNDQxMGUyMTMwCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3Rvb2xzL21lc29u LmJ1aWxkCj4gQEAgLTAsMCArMSw1OSBAQAo+ICt0b29sc19wcm9nc19ub2lzbnQgPSBbCj4gKwkn aHN3X2NvbXB1dGVfd3JwbGwnLAo+ICsJJ3NrbF9jb21wdXRlX3dycGxsJywKPiArCSdza2xfZGRi X2FsbG9jYXRpb24nLAo+ICtdCj4gKwo+ICtmb3JlYWNoIHByb2cgOiB0b29sc19wcm9nc19ub2lz bnQKPiArCWV4ZWN1dGFibGUocHJvZywgcHJvZyArICcuYycsCj4gKwkJCWRlcGVuZGVuY2llcyA6 IGlndF9kZXBzLAo+ICsJCQlpbnN0YWxsIDogZmFsc2UpCj4gK2VuZGZvcmVhY2gKPiArCj4gK3Rv b2xzX3Byb2dzID0gWwo+ICsJIyBGSVhNRSB3ZSBhbHJlYWR5IGhhdmUgYSBsaWJ0ZXN0Y2FzZSB3 aXRoIHRoaXMgbmFtZSBhcyB0YXJnZXQKPiArCSMnaWd0X3N0YXRzJywKPiArCSdpbnRlbF9hdWRp b19kdW1wJywKPiArCSdpbnRlbF9iYWNrbGlnaHQnLAo+ICsJJ2ludGVsX2Jpb3NfZHVtcGVyJywK PiArCSdpbnRlbF9kaXNwbGF5X2NyYycsCj4gKwknaW50ZWxfZGlzcGxheV9wb2xsZXInLAo+ICsJ J2ludGVsX2ZvcmNld2FrZWQnLAo+ICsJJ2ludGVsX2dwdV9mcmVxdWVuY3knLAo+ICsJJ2ludGVs X2Zpcm13YXJlX2RlY29kZScsCj4gKwknaW50ZWxfZ3B1X3RpbWUnLAo+ICsJJ2ludGVsX2dwdV90 b3AnLAo+ICsJJ2ludGVsX2d0dCcsCj4gKwknaW50ZWxfZ3VjX2xvZ2dlcicsCj4gKwknaW50ZWxf aW5mb2ZyYW1lcycsCj4gKwknaW50ZWxfbGlkJywKPiArCSdpbnRlbF9vcHJlZ2lvbl9kZWNvZGUn LAo+ICsJJ2ludGVsX3BhbmVsX2ZpdHRlcicsCj4gKwknaW50ZWxfcmVnX2NoZWNrZXInLAo+ICsJ J2ludGVsX3Jlc2lkZW5jeScsCj4gKwknaW50ZWxfc3RlcHBpbmcnLAo+ICsJJ2ludGVsX3ZidF9k ZWNvZGUnLAo+ICsJJ2ludGVsX3dhdGVybWFyaycsCj4gKwknaW50ZWxfZ2VtX2luZm8nLAo+ICsJ J2ludGVsX2d2dGdfdGVzdCcsCj4gK10KPiArdG9vbF9kZXBzID0gaWd0X2RlcHMKPiArCj4gK2lm IGxpYmRybV9pbnRlbC5mb3VuZCgpCj4gKwl0b29sc19wcm9ncyArPSBbCj4gKwkJJ2ludGVsX2R1 bXBfZGVjb2RlJywKPiArCQknaW50ZWxfZXJyb3JfZGVjb2RlJywKPiArCQknaW50ZWxfZnJhbWVi dWZmZXJfZHVtcCcsCj4gKwkJJ2ludGVsX3BlcmZfY291bnRlcnMnLAo+ICsJXQo+ICsJdG9vbF9k ZXBzICs9IHpsaWIKPiArZW5kaWYKPiArCj4gK2ZvcmVhY2ggcHJvZyA6IHRvb2xzX3Byb2dzCj4g KwlleGVjdXRhYmxlKHByb2csIHByb2cgKyAnLmMnLAo+ICsJCQlkZXBlbmRlbmNpZXMgOiB0b29s X2RlcHMpCj4gK2VuZGZvcmVhY2gKPiArCj4gK3NoYXJlZF9saWJyYXJ5KCdpbnRlbF9hdWJkdW1w JywgJ2F1YmR1bXAuYycsIGRlcGVuZGVuY2llcyA6IFsgaWd0X2RlcHMsIGRsc3ltIF0pCj4gKwo+ ICtzdWJkaXIoJ251bGxfc3RhdGVfZ2VuJykKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvbnVsbF9zdGF0 ZV9nZW4vbWVzb24uYnVpbGQgYi90b29scy9udWxsX3N0YXRlX2dlbi9tZXNvbi5idWlsZAo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi45NjY5N2RiZjY0ZjEKPiAt LS0gL2Rldi9udWxsCj4gKysrIGIvdG9vbHMvbnVsbF9zdGF0ZV9nZW4vbWVzb24uYnVpbGQKPiBA QCAtMCwwICsxLDE1IEBACj4gK2ludGVsX251bGxfc3RhdGVfZ2VuX3NyYyA9IFsKPiArCSdpbnRl bF9iYXRjaGJ1ZmZlci5jJywKPiArCSdpbnRlbF9yZW5kZXJzdGF0ZV9nZW42LmMnLAo+ICsJJ2lu dGVsX3JlbmRlcnN0YXRlX2dlbjcuYycsCj4gKwknaW50ZWxfcmVuZGVyc3RhdGVfZ2VuOC5jJywK PiArCSdpbnRlbF9yZW5kZXJzdGF0ZV9nZW45LmMnLAo+ICsJJ2ludGVsX251bGxfc3RhdGVfZ2Vu LmMnLAo+ICtdCj4gKwo+ICtpbnRlbF9udWxsX3N0YXRlX2dlbiA9IGV4ZWN1dGFibGUoJ2ludGVs X251bGxfc3RhdGVfZ2VuJywKPiArCQlpbnRlbF9udWxsX3N0YXRlX2dlbl9zcmMsIGRlcGVuZGVu Y2llcyA6IGlndF9kZXBzLAo+ICsJCWluc3RhbGwgOiBmYWxzZSkKPiArCj4gKyMgRklYTUUgYWN0 dWFsIG51bGxfc3RhdGUgZ2VuZXJhdGlvbi4gV2UgcHJvYmFibHkgd2FudCB0byBwdXNoIHRoZSB0 aGUgY29weXJpZ2h0Cj4gKyMgaGVhZGVyIGdlbmVyYXRpb24gaW50byBpbnRlbF9udWxsX3N0YXRl X2dlbiBmb3Igc2ltcGxpY2l0eQoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBU ZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK