From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shannon Zhao Subject: Re: [PATCH v7 05/15] libxl: Load guest BIOS from file Date: Mon, 15 Aug 2016 17:04:20 +0800 Message-ID: <57B18594.8060802@huawei.com> References: <20160728105013.22310-1-anthony.perard@citrix.com> <20160728105013.22310-6-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160728105013.22310-6-anthony.perard@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Anthony PERARD , xen-devel@lists.xen.org Cc: Ian Jackson , Wei Liu List-Id: xen-devel@lists.xenproject.org CgpPbiAyMDE2LzcvMjggMTg6NTAsIEFudGhvbnkgUEVSQVJEIHdyb3RlOgo+IFRoZSBwYXRoIHRv IHRoZSBCSU9TIGJsb2IgY2FuIGJlIG92ZXJyaWRlbiBieSB0aGUgeGwncwo+IGJpb3NfcGF0aF9v dmVycmlkZSBvcHRpb24sIG9yIHByb3ZpZGVkIGJ5IHUuaHZtLmJpb3NfZmlybXdhcmUgaW4gdGhl Cj4gZG9tYWluX2J1aWxkX2luZm8gc3RydWN0IGJ5IG90aGVyIGxpYnhsIHVzZXIuCj4gCj4gU2ln bmVkLW9mZi1ieTogQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQGNpdHJpeC5jb20+Cj4g QWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Cj4gCj4gLS0tCj4gQ2hhbmdl cyBpbiBWNjoKPiAtIHVzZSBnb3RvIGZvciBlcnJvciBoYW5kbGluZyBvZiBsaWJ4bF9fbG9hZF9o dm1fZmlybXdhcmVfbW9kdWxlKCkKPiAKPiBDaGFuZ2VzIGluIFY1Ogo+IC0gbWFuIHBhZ2UsIHVz ZSBCPD4gdG8gaGlnaGxpZ2h0IGNvbmZpZyBvcHRpb24gaW4gZGVzY3JpcHRpb24uCj4gLSByZW5h bWUgY29uZmlnIG9wdGlvbiBmcm9tIGBiaW9zX292ZXJyaWRlYCB0byBgYmlvc19wYXRoX292ZXJy aWRlYAo+IC0gc3RvcmUgbGlieGxfcmVhZF9maWxlX2NvbnRlbnRzKCkgcmV0dXJuIHZhbHVlIGlu dG8gciBpbnN0ZWFkIG9mIGUKPiAgIChqdXN0IHJlbmFtZWQgdGhlIHZhcmlhYmxlKQo+IC0gcmVu YW1lIGRvbWFpbl9idWlsZF9pbmZvLnUuaHZtLmJpb3NfZmlybXdhcmUgdG8gc3lzdGVtX2Zpcm13 YXJlCj4gCj4gQ2hhbmdlcyBpbiBWNDoKPiAtIHVwZGF0aW5nIG1hbiBwYWdlIHRvIGhhdmUgYmlv c19vdmVycmlkZSBkZXNjcmliZWQuCj4gLSByZXR1cm4gRVJST1JfSU5WQUwgaW4gbGlieGxfX2xv YWRfaHZtX2Zpcm13YXJlX21vZHVsZSB3aGVuIHRoZSBmaWxlIGlzCj4gICBlbXB0eS4KPiAKPiBD aGFuZ2VzIGluIFYzOgo+IC0gbW92ZSBzZWFiaW9zX3BhdGggYW5kIG92bWZfcGF0aCB0byBsaWJ4 bF9wYXRoLmMgKHdpdGggcmVuYW1pbmcpCj4gLSBmaXggc29tZSBjb2Rpbmcgc3R5bGUKPiAtIHdh cm4gZm9yIGVtcHR5IGZpbGUKPiAtIHJlbW92ZSByb21iaW9zIHN0dWZmICh3aWxsIHN0aWxsIGJl IGJ1aWx0LWluIGh2bWxvYWRlcikKPiAtIHJlbmFtZSBmaWVsZCBiaW9zX2ZpbGVuYW1lIGluIGRv bWFpbl9idWlsZF9pbmZvIHRvIGJpb3NfZmlybXdhcmUgdG8KPiAgIGZvbGxvdyBuYW1pbmcgb2Yg YWNwaSBhbmQgc21iaW9zLgo+IC0gbG9nIGFuIGVycm9yIGFmdGVyIGxpYnhsX3JlYWRfZmlsZV9j b250ZW50cygpIG9ubHkgd2hlbiBpdCByZXR1cm4gRU5PRU5UCj4gLSByZXR1cm4gYW4gZXJyb3Ig b24gZW1wdHkgZmlsZS4KPiAtIGFkZGVkICNkZWZpbmUgTElCWExfSEFWRV9CVUlMRElORk9fSFZN X0JJT1NfRklSTVdBUkUKPiAtLS0KPiAgZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluICAgICB8ICA5 ICsrKysrKysKPiAgdG9vbHMvbGlieGwvbGlieGwuaCAgICAgICAgICB8ICA4ICsrKysrKwo+ICB0 b29scy9saWJ4bC9saWJ4bF9kb20uYyAgICAgIHwgNjEgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKPiAgdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCB8ICAy ICsrCj4gIHRvb2xzL2xpYnhsL2xpYnhsX3BhdGhzLmMgICAgfCAxMCArKysrKysrKwo+ICB0b29s cy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgIHwgIDEgKwo+ICB0b29scy9saWJ4bC94bF9jbWRpbXBs LmMgICAgIHwgMTEgKysrKystLS0KPiAgNyBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kb2NzL21hbi94bC5jZmcucG9kLjUu aW4gYi9kb2NzL21hbi94bC5jZmcucG9kLjUuaW4KPiBpbmRleCAzYmIyN2QwLi5hNjg1YjgzIDEw MDY0NAo+IC0tLSBhL2RvY3MvbWFuL3hsLmNmZy5wb2QuNS5pbgo+ICsrKyBiL2RvY3MvbWFuL3hs LmNmZy5wb2QuNS5pbgo+IEBAIC0xMjEyLDYgKzEyMTIsMTUgQEAgUmVxdWlyZXMgZGV2aWNlX21v ZGVsX3ZlcnNpb249cWVtdS14ZW4uCj4gIAo+ICA9YmFjawo+ICAKPiArPWl0ZW0gQjxiaW9zX3Bh dGhfb3ZlcnJpZGU9IlBBVEgiPgo+ICsKPiArT3ZlcnJpZGUgdGhlIHBhdGggdG8gdGhlIGJsb2Ig dG8gYmUgdXNlZCBhcyBCSU9TLiBUaGUgYmxvYiBwcm92aWRlZCBoZXJlIE1VU1QKPiArYmUgY29u c2lzdGVudCB3aXRoIHRoZSBCPGJpb3M9PiB3aGljaCB5b3UgaGF2ZSBzcGVjaWZpZWQuIFlvdSBz aG91bGQgbm90Cj4gK25vcm1hbGx5IG5lZWQgdG8gc3BlY2lmeSB0aGlzIG9wdGlvbi4KPiArCj4g K1RoaXMgb3B0aW9ucyBkb2VzIG5vdCBoYXZlIGFueSBlZmZlY3QgaWYgdXNpbmcgQjxiaW9zPSJy b21iaW9zIj4gb3IKPiArQjxkZXZpY2VfbW9kZWxfdmVyc2lvbj0icWVtdS14ZW4tdHJhZGl0aW9u YWwiPi4KPiArCj4gID1pdGVtIEI8cGFlPUJPT0xFQU4+Cj4gIAo+ICBIaWRlIG9yIGV4cG9zZSB0 aGUgSUEzMiBQaHlzaWNhbCBBZGRyZXNzIEV4dGVuc2lvbnMuIFRoZXNlIGV4dGVuc2lvbnMKPiBk aWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgKPiBp bmRleCA0OGE0M2NlLi41Y2NjZGM4IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsLmgK PiArKysgYi90b29scy9saWJ4bC9saWJ4bC5oCj4gQEAgLTk0Miw2ICs5NDIsMTQgQEAgdm9pZCBs aWJ4bF9tYWNfY29weShsaWJ4bF9jdHggKmN0eCwgbGlieGxfbWFjICpkc3QsIGNvbnN0IGxpYnhs X21hYyAqc3JjKTsKPiAgI2RlZmluZSBMSUJYTF9IQVZFX0NIRUNLUE9JTlRFRF9TVFJFQU0gMQo+ ICAKPiAgLyoKPiArICogTElCWExfSEFWRV9CVUlMRElORk9fSFZNX1NZU1RFTV9GSVJNV0FSRQo+ ICsgKgo+ICsgKiBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyBoYXMgdS5odm0uc3lzdGVtX2Zpcm13 YXJlIGZpZWxkIHdoaWNoIGNhbiBiZSB1c2UKPiArICogdG8gcHJvdmlkZSBhIGRpZmZlcmVudCBm aXJtd2FyZSBibG9iIChsaWtlIFNlYUJJT1Mgb3IgT1ZNRikuCj4gKyAqLwo+ICsjZGVmaW5lIExJ QlhMX0hBVkVfQlVJTERJTkZPX0hWTV9TWVNURU1fRklSTVdBUkUKPiArCj4gKy8qCj4gICAqIEVS Uk9SX1JFTVVTX1hYWCBlcnJvciBjb2RlIG9ubHkgZXhpc3RzIGZyb20gWGVuIDQuNSwgWGVuIDQu NiBhbmQgaXQKPiAgICogaXMgY2hhbmdlZCB0byBFUlJPUl9DSEVDS1BPSU5UX1hYWCBpbiBYZW4g NC43Cj4gICAqLwo+IGRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kb20uYyBiL3Rvb2xz L2xpYnhsL2xpYnhsX2RvbS5jCj4gaW5kZXggZWMyOTA2MC4uMmExNzkzZCAxMDA2NDQKPiAtLS0g YS90b29scy9saWJ4bC9saWJ4bF9kb20uYwo+ICsrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5j Cj4gQEAgLTg2Miw2ICs4NjIsNDIgQEAgZXJyOgo+ICAgICAgcmV0dXJuIHJldDsKPiAgfQo+ICAK PiArc3RhdGljIGludCBsaWJ4bF9fbG9hZF9odm1fZmlybXdhcmVfbW9kdWxlKGxpYnhsX19nYyAq Z2MsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpmaWxlbmFtZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKndoYXQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgeGNfaHZtX2Zpcm13YXJlX21vZHVsZSAqbSkKPiArewo+ICsgICAg aW50IGRhdGFsZW4gPSAwOwo+ICsgICAgdm9pZCAqZGF0YSA9IE5VTEw7Cj4gKyAgICBpbnQgciwg cmM7Cj4gKwo+ICsgICAgTE9HKERFQlVHLCAiTG9hZGluZyAlczogJXMiLCB3aGF0LCBmaWxlbmFt ZSk7Cj4gKyAgICByID0gbGlieGxfcmVhZF9maWxlX2NvbnRlbnRzKENUWCwgZmlsZW5hbWUsICZk YXRhLCAmZGF0YWxlbik7Cj4gKyAgICBpZiAocikgewo+ICsgICAgICAgIC8qCj4gKyAgICAgICAg ICogUHJpbnQgYSBtZXNzYWdlIG9ubHkgb24gRU5PRU5ULCBvdGhlciBlcnJvcnMgYXJlIGxvZ2dl ZCBieSB0aGUKPiArICAgICAgICAgKiBmdW5jdGlvbiBsaWJ4bF9yZWFkX2ZpbGVfY29udGVudHMo KS4KPiArICAgICAgICAgKi8KPiArICAgICAgICBpZiAociA9PSBFTk9FTlQpCj4gKyAgICAgICAg ICAgIExPR0VWKEVSUk9SLCByLCAiZmFpbGVkIHRvIHJlYWQgJXMgZmlsZSIsIHdoYXQpOwo+ICsg ICAgICAgIHJjID0gIEVSUk9SX0ZBSUw7Cj4gKyAgICAgICAgZ290byBvdXQ7Cj4gKyAgICB9Cj4g KyAgICBsaWJ4bF9fcHRyX2FkZChnYywgZGF0YSk7Cj4gKyAgICBpZiAoZGF0YWxlbikgewo+ICsg ICAgICAgIC8qIE9ubHkgYWNjZXB0IG5vbi1lbXB0eSBmaWxlcyAqLwo+ICsgICAgICAgIG0tPmRh dGEgPSBkYXRhOwo+ICsgICAgICAgIG0tPmxlbmd0aCA9IGRhdGFsZW47Cj4gKyAgICB9IGVsc2Ug ewo+ICsgICAgICAgIExPRyhFUlJPUiwgImZpbGUgJXMgZm9yICVzIGlzIGVtcHR5IiwgZmlsZW5h bWUsIHdoYXQpOwo+ICsgICAgICAgIHJjID0gRVJST1JfSU5WQUw7Cj4gKyAgICAgICAgZ290byBv dXQ7Cj4gKyAgICB9Cj4gKyAgICByYyA9IDA7Cj4gK291dDoKPiArICAgIHJldHVybiByYzsKPiAr fQo+ICsKPiAgc3RhdGljIGludCBsaWJ4bF9fZG9tYWluX2Zpcm13YXJlKGxpYnhsX19nYyAqZ2Ms Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fYnVpbGRf aW5mbyAqaW5mbywKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4 Y19kb21faW1hZ2UgKmRvbSkKPiBAQCAtODcxLDYgKzkwNyw3IEBAIHN0YXRpYyBpbnQgbGlieGxf X2RvbWFpbl9maXJtd2FyZShsaWJ4bF9fZ2MgKmdjLAo+ICAgICAgaW50IGUsIHJjOwo+ICAgICAg aW50IGRhdGFsZW4gPSAwOwo+ICAgICAgdm9pZCAqZGF0YTsKPiArICAgIGNvbnN0IGNoYXIgKmJp b3NfZmlsZW5hbWUgPSBOVUxMOwo+ICAKPiAgICAgIGlmIChpbmZvLT51Lmh2bS5maXJtd2FyZSkK PiAgICAgICAgICBmaXJtd2FyZSA9IGluZm8tPnUuaHZtLmZpcm13YXJlOwo+IEBAIC05MTQsNiAr OTUxLDMwIEBAIHN0YXRpYyBpbnQgbGlieGxfX2RvbWFpbl9maXJtd2FyZShsaWJ4bF9fZ2MgKmdj LAo+ICAgICAgICAgIGdvdG8gb3V0Owo+ICAgICAgfQo+ICAKPiArICAgIGlmIChpbmZvLT5kZXZp Y2VfbW9kZWxfdmVyc2lvbiA9PSBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9RRU1VX1hFTikg ewo+ICsgICAgICAgIGlmIChpbmZvLT51Lmh2bS5zeXN0ZW1fZmlybXdhcmUpIHsKPiArICAgICAg ICAgICAgYmlvc19maWxlbmFtZSA9IGluZm8tPnUuaHZtLnN5c3RlbV9maXJtd2FyZTsKPiArICAg ICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAgICBzd2l0Y2ggKGluZm8tPnUuaHZtLmJpb3MpIHsK PiArICAgICAgICAgICAgY2FzZSBMSUJYTF9CSU9TX1RZUEVfU0VBQklPUzoKPiArICAgICAgICAg ICAgICAgIGJpb3NfZmlsZW5hbWUgPSBsaWJ4bF9fc2VhYmlvc19wYXRoKCk7Cj4gKyAgICAgICAg ICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgY2FzZSBMSUJYTF9CSU9TX1RZUEVfT1ZNRjoK PiArICAgICAgICAgICAgICAgIGJpb3NfZmlsZW5hbWUgPSBsaWJ4bF9fb3ZtZl9wYXRoKCk7Cj4g KyAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgY2FzZSBMSUJYTF9CSU9TX1RZ UEVfUk9NQklPUzoKPiArICAgICAgICAgICAgZGVmYXVsdDoKPiArICAgICAgICAgICAgICAgIGFi b3J0KCk7Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICB9Cj4gKyAgICB9Cj4gKwo+ICsgICAg aWYgKGJpb3NfZmlsZW5hbWUpIHsKPiArICAgICAgICByYyA9IGxpYnhsX19sb2FkX2h2bV9maXJt d2FyZV9tb2R1bGUoZ2MsIGJpb3NfZmlsZW5hbWUsICJCSU9TIiwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRvbS0+c3lzdGVtX2Zpcm13YXJlX21vZHVs ZSk7Cj4gKyAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKPiArICAgIH0KPiArCj4gICAgICBpZiAo aW5mby0+dS5odm0uc21iaW9zX2Zpcm13YXJlKSB7Cj4gICAgICAgICAgZGF0YSA9IE5VTEw7Cj4g ICAgICAgICAgZSA9IGxpYnhsX3JlYWRfZmlsZV9jb250ZW50cyhjdHgsIGluZm8tPnUuaHZtLnNt Ymlvc19maXJtd2FyZSwKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwu aCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKPiBpbmRleCA1MzQ3YjY5Li45OTFhMWNj IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKPiArKysgYi90b29s cy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCj4gQEAgLTIzMjAsNiArMjMyMCw4IEBAIF9oaWRkZW4g Y29uc3QgY2hhciAqbGlieGxfX3hlbl9jb25maWdfZGlyX3BhdGgodm9pZCk7Cj4gIF9oaWRkZW4g Y29uc3QgY2hhciAqbGlieGxfX3hlbl9zY3JpcHRfZGlyX3BhdGgodm9pZCk7Cj4gIF9oaWRkZW4g Y29uc3QgY2hhciAqbGlieGxfX2xvY2tfZGlyX3BhdGgodm9pZCk7Cj4gIF9oaWRkZW4gY29uc3Qg Y2hhciAqbGlieGxfX3J1bl9kaXJfcGF0aCh2b2lkKTsKPiArX2hpZGRlbiBjb25zdCBjaGFyICps aWJ4bF9fc2VhYmlvc19wYXRoKHZvaWQpOwo+ICtfaGlkZGVuIGNvbnN0IGNoYXIgKmxpYnhsX19v dm1mX3BhdGgodm9pZCk7Cj4gIAo+ICAvKi0tLS0tIHN1YnByb2Nlc3MgZXhlY3V0aW9uIHdpdGgg dGltZW91dCAtLS0tLSovCj4gIAo+IGRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9wYXRo cy5jIGIvdG9vbHMvbGlieGwvbGlieGxfcGF0aHMuYwo+IGluZGV4IDliN2IwZDUuLjY5NzJiOTAg MTAwNjQ0Cj4gLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfcGF0aHMuYwo+ICsrKyBiL3Rvb2xzL2xp YnhsL2xpYnhsX3BhdGhzLmMKPiBAQCAtMzUsNiArMzUsMTYgQEAgY29uc3QgY2hhciAqbGlieGxf X3J1bl9kaXJfcGF0aCh2b2lkKQo+ICAgICAgcmV0dXJuIFhFTl9SVU5fRElSOwo+ICB9Cj4gIAo+ ICtjb25zdCBjaGFyICpsaWJ4bF9fc2VhYmlvc19wYXRoKHZvaWQpCj4gK3sKPiArICAgIHJldHVy biBTRUFCSU9TX1BBVEg7Cj4gK30KPiArCj4gK2NvbnN0IGNoYXIgKmxpYnhsX19vdm1mX3BhdGgo dm9pZCkKPiArewo+ICsgICAgcmV0dXJuIE9WTUZfUEFUSDsKPiArfQo+ICsKSGksIEkgZ290IGJl bGxvdyBlcnJvcnMgd2hlbiBjb21waWxpbmcgb24gQVJNLgoKbGlieGxfcGF0aHMuYzogSW4gZnVu Y3Rpb24gJ2xpYnhsX19zZWFiaW9zX3BhdGgnOgpsaWJ4bF9wYXRocy5jOjQwOjEyOiBlcnJvcjog J1NFQUJJT1NfUEFUSCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMKZnVuY3Rpb24pCiAg ICAgcmV0dXJuIFNFQUJJT1NfUEFUSDsKICAgICAgICAgICAgXgpsaWJ4bF9wYXRocy5jOjQwOjEy OiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5Cm9uY2Ug Zm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgpsaWJ4bF9wYXRocy5jOiBJbiBmdW5jdGlv biAnbGlieGxfX292bWZfcGF0aCc6CmxpYnhsX3BhdGhzLmM6NDU6MTI6IGVycm9yOiAnT1ZNRl9Q QVRIJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcwpmdW5jdGlvbikKICAgICByZXR1cm4g T1ZNRl9QQVRIOwogICAgICAgICAgICBeCmxpYnhsX3BhdGhzLmM6IEluIGZ1bmN0aW9uICdsaWJ4 bF9fc2VhYmlvc19wYXRoJzoKbGlieGxfcGF0aHMuYzo0MToxOiBlcnJvcjogY29udHJvbCByZWFj aGVzIGVuZCBvZiBub24tdm9pZCBmdW5jdGlvbgpbLVdlcnJvcj1yZXR1cm4tdHlwZV0KIH0KIF4K bGlieGxfcGF0aHMuYzogSW4gZnVuY3Rpb24gJ2xpYnhsX19vdm1mX3BhdGgnOgpsaWJ4bF9wYXRo cy5jOjQ2OjE6IGVycm9yOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9u ClstV2Vycm9yPXJldHVybi10eXBlXQogfQogXgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVh dGVkIGFzIGVycm9ycwoKVGhhbmtzLAotLSAKU2hhbm5vbgoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=