From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: Re: [PATCH v2 2/2] x86/altp2m: allow specifying external-only use-case Date: Thu, 11 Aug 2016 18:17:50 +0100 Message-ID: <20160811171750.GD20641@citrix.com> References: <1470841215-24450-1-git-send-email-tamas.lengyel@zentific.com> <1470841215-24450-2-git-send-email-tamas.lengyel@zentific.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXtcB-0001Fb-G3 for xen-devel@lists.xenproject.org; Thu, 11 Aug 2016 17:17:55 +0000 Content-Disposition: inline In-Reply-To: <1470841215-24450-2-git-send-email-tamas.lengyel@zentific.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Tamas K Lengyel Cc: Wei Liu , Andrew Cooper , Ian Jackson , Jan Beulich , xen-devel@lists.xenproject.org, Daniel De Graaf List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBBdWcgMTAsIDIwMTYgYXQgMDk6MDA6MTVBTSAtMDYwMCwgVGFtYXMgSyBMZW5neWVs IHdyb3RlOgo+IEN1cnJlbnRseSBzZXR0aW5nIGFsdHAybWh2bT0xIGluIHRoZSBkb21haW4gY29u ZmlndXJhdGlvbiBhbGxvd3MgYWNjZXNzIHRvIHRoZQo+IGFsdHAybSBpbnRlcmZhY2UgZm9yIGJv dGggaW4tZ3Vlc3QgYW5kIGV4dGVybmFsIHByaXZpbGVnZWQgdG9vbHMuIFRoaXMgcG9zZXMKPiBh IHByb2JsZW0gZm9yIHVzZS1jYXNlcyB3aGVyZSBvbmx5IGV4dGVybmFsIGFjY2VzcyBzaG91bGQg YmUgYWxsb3dlZCwgcmVxdWlyaW5nCj4gdGhlIHVzZXIgdG8gY29tcGlsZSBYZW4gd2l0aCBYU00g ZW5hYmxlZCB0byBiZSBhYmxlIHRvIGFwcHJvcHJpYXRlbHkgcmVzdHJpY3QKPiBhY2Nlc3MuCj4g Cj4gSW4gdGhpcyBwYXRjaCB3ZSBkZXByZWNhdGUgdGhlIGFsdHAybWh2bSBkb21haW4gY29uZmln dXJhdGlvbiBvcHRpb24gYW5kCj4gaW50cm9kdWNlIHRoZSBhbHRwMm0gb3B0aW9uLCB3aGljaCBh bGxvd3Mgc3BlY2lmeWluZyBpZiBieSBkZWZhdWx0IHRoZSBhbHRwMm0KPiBpbnRlcmZhY2Ugc2hv dWxkIGJlIGV4dGVybmFsLW9ubHkuIFRoZSBpbmZvcm1hdGlvbiBpcyBzdG9yZWQgaW4KPiBIVk1f UEFSQU1fQUxUUDJNIHdoaWNoIHdlIG5vdyBkZWZpbmUgd2l0aCBzcGVjaWZpYyBYRU5fQUxUUDJN XyogbW9kZXMuCj4gSWYgZXh0ZXJuYWxfb25seSBtb2RlIGlzIHNlbGVjdGVkLCB0aGUgWFNNIGNo ZWNrIGlzIHNoaWZ0ZWQgdG8gdXNlIFhTTV9ETV9QUklWCj4gdHlwZSBjaGVjaywgdGh1cyByZXN0 cmljdGluZyBhY2Nlc3MgdG8gdGhlIGludGVyZmFjZSBieSB0aGUgZ3Vlc3QgaXRzZWxmLiBOb3Rl Cj4gdGhhdCB3ZSBrZWVwIHRoZSBkZWZhdWx0IFhTTSBwb2xpY3kgdW50b3VjaGVkLiBVc2VycyBv ZiBYU00gd2hvIHdpc2ggdG8gZW5mb3JjZQo+IGV4dGVybmFsX29ubHkgbW9kZSBmb3IgYWx0cDJt IGNhbiBkbyBzbyBieSBhZGp1c3RpbmcgdGhlaXIgWFNNIHBvbGljeSBkaXJlY3RseSwKPiBhcyB0 aGlzIGRvbWFpbiBjb25maWcgb3B0aW9uIGRvZXMgbm90IG92ZXJyaWRlIGFuIGFjdGl2ZSBYU00g cG9saWN5Lgo+IAo+IEFsc28sIGFzIHBhcnQgb2YgdGhpcyBwYXRjaCB3ZSBhZGp1c3QgdGhlIGh2 bW9wIGhhbmRsZXIgdG8gcmVxdWlyZQo+IEhWTV9QQVJBTV9BTFRQMk0gdG8gYmUgb2YgYSB0eXBl IG90aGVyIHRoZW4gZGlzYWJsZWQgZm9yIGFsbCBvcHMuIFRoaXMgaGFzIGJlZW4KPiBwcmV2aW91 c2x5IG9ubHkgcmVxdWlyZWQgZm9yIGdldC9zZXQgYWx0cDJtIGRvbWFpbiBzdGF0ZSwgYWxsIG90 aGVyIG9wdGlvbnMKPiB3ZXJlIGdhdGVkIG9uIGFsdHAybV9lbmFibGVkLiBTaW5jZSBhbHRwMm1f ZW5hYmxlZCBvbmx5IGdldHMgc2V0IGR1cmluZyBzZXQKPiBhbHRwMm0gZG9tYWluIHN0YXRlLCB0 aGlzIGNoYW5nZSBpbnRyb2R1Y2VzIG5vIG5ldyByZXF1aXJlbWVudHMgdG8gdGhlIG90aGVyCj4g b3BzIGJ1dCBtYWtlcyBpdCBtb3JlIGNsZWFyIHRoYXQgaXQgaXMgcmVxdWlyZWQgZm9yIGFsbCBv cHMuCj4gCj4gU2lnbmVkLW9mZi1ieTogVGFtYXMgSyBMZW5neWVsIDx0YW1hcy5sZW5neWVsQHpl bnRpZmljLmNvbT4KPiAtLS0KPiBDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJp eC5jb20+Cj4gQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Cj4gQ2M6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KPiBDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3Bl cjNAY2l0cml4LmNvbT4KPiBDYzogRGFuaWVsIERlIEdyYWFmIDxkZ2RlZ3JhQHR5Y2hvLm5zYS5n b3Y+Cj4gCj4gdjI6IFJlbmFtZSBIVk1BTFRQMk1fKiB0byBYRU5fQUxUUDJNXyoKPiAgICAgUmVs YXggeHNtIGNoZWNrIHRvIFhTTV9ETV9QUklWIGZvciBleHRlcm5hbC1vbmx5IG1vZGUKPiAtLS0K PiAgZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluICAgICAgICB8IDMxICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPiAgdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgICAgICB8ICA1ICsr LS0tCj4gIHRvb2xzL2xpYnhsL2xpYnhsX2RvbS5jICAgICAgICAgfCAgMiArLQo+ICB0b29scy9s aWJ4bC9saWJ4bF90eXBlcy5pZGwgICAgIHwgIDkgKysrKysrKystCj4gIHRvb2xzL2xpYnhsL3hs X2NtZGltcGwuYyAgICAgICAgfCAzNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst Cj4gIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAgICAgICAgfCAyMCArKysrKysrKysrLS0tLS0t LS0tLQo+ICB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL3BhcmFtcy5oIHwgMTAgKysrKysrKysrLQo+ ICB4ZW4vaW5jbHVkZS94c20vZHVtbXkuaCAgICAgICAgIHwgMTQgKysrKysrKysrKystLS0KPiAg eGVuL2luY2x1ZGUveHNtL3hzbS5oICAgICAgICAgICB8ICA2ICsrKy0tLQo+ICB4ZW4veHNtL2Zs YXNrL2hvb2tzLmMgICAgICAgICAgIHwgIDIgKy0KPiAgMTAgZmlsZXMgY2hhbmdlZCwgMTA5IGlu c2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kb2NzL21hbi94 bC5jZmcucG9kLjUuaW4gYi9kb2NzL21hbi94bC5jZmcucG9kLjUuaW4KPiBpbmRleCA0OGM5YzBk Li4wMDQ0Yjk4IDEwMDY0NAo+IC0tLSBhL2RvY3MvbWFuL3hsLmNmZy5wb2QuNS5pbgo+ICsrKyBi L2RvY3MvbWFuL3hsLmNmZy5wb2QuNS5pbgo+IEBAIC0xMjY4LDYgKzEyNjgsMzcgQEAgZW5hYmxl ZCBieSBkZWZhdWx0IGFuZCB5b3Ugc2hvdWxkIHVzdWFsbHkgb21pdCBpdC4gSXQgbWF5IGJlIG5l Y2Vzc2FyeQo+ICB0byBkaXNhYmxlIHRoZSBIUEVUIGluIG9yZGVyIHRvIGltcHJvdmUgY29tcGF0 aWJpbGl0eSB3aXRoIGd1ZXN0Cj4gIE9wZXJhdGluZyBTeXN0ZW1zIChYODYgb25seSkKPiAgCj4g Kz1pdGVtIEI8YWx0cDJtPU1PREU+Cj4gKwo+ICtTcGVjaWZpZXMgYWNjZXNzIG1vZGUgdG8gdGhl IGFsdGVybmF0ZS1wMm0gY2FwYWJpbGl0eSBmb3IgaHZtIGd1ZXN0cy4KPiArQWx0ZXJuYXRlLXAy bSBhbGxvd3MgYSBndWVzdCB0byBtYW5hZ2UgbXVsdGlwbGUgcDJtIGd1ZXN0IHBoeXNpY2FsCj4g KyJtZW1vcnkgdmlld3MiIChhcyBvcHBvc2VkIHRvIGEgc2luZ2xlIHAybSkuIFlvdSBtYXkgd2Fu dCB0aGlzIG9wdGlvbgo+ICtpZiB5b3Ugd2FudCB0byBhY2Nlc3MtY29udHJvbC9pc29sYXRlIGFj Y2VzcyB0byBzcGVjaWZpYyBndWVzdCBwaHlzaWNhbAo+ICttZW1vcnkgcGFnZXMgYWNjZXNzZWQg YnkgdGhlIGd1ZXN0LCBlLmcuIGZvciBIVk0gZG9tYWluIG1lbW9yeQo+ICtpbnRyb3NwZWN0aW9u IG9yIGZvciBpc29sYXRpb24vYWNjZXNzLWNvbnRyb2wgb2YgbWVtb3J5IGJldHdlZW4KPiArY29t cG9uZW50cyB3aXRoaW4gYSBzaW5nbGUgZ3Vlc3QgaHZtIGRvbWFpbi4KPiArCj4gK1RoZSB2YWxp ZCB2YWx1ZXMgYXJlIGFzIGZvbGxvd3M6Cj4gKwo+ICs9b3ZlciA0Cj4gKwo+ICs9aXRlbSBCPCJk aXNhYmxlZCI+Cj4gKwo+ICtBbHRwMm0gaXMgZGlzYWJsZWQgZm9yIHRoZSBkb21haW4gKGRlZmF1 bHQpLgo+ICsKPiArPWl0ZW0gQjwibWl4ZWQiPgo+ICsKPiArVGhlIG1peGVkIG1vZGUgYWxsb3dz IGFjY2VzcyB0byB0aGUgYWx0cDJtIGludGVyZmFjZSBmb3IgYm90aCBpbi1ndWVzdAo+ICthbmQg ZXh0ZXJuYWwgdG9vbHMgYXMgd2VsbC4KPiArCj4gKz1pdGVtIEI8ImV4dGVybmFsX29ubHkiPgo+ ICsKPiArRW5hYmxlcyBhY2Nlc3MgdG8gdGhlIGFsdGVybmF0ZS1wMm0gY2FwYWJpbGl0eSBmb3Ig aHZtIGd1ZXN0cyBvbmx5Cj4gK2J5IGV4dGVybmFsIHByaXZpbGVnZWQgdG9vbHMuIE5vdGU6IGlm IFhTTSBpcyBlbmFibGVkIHRoZW4gdGhlIFhTTSBwb2xpY3kKPiArc2hvdWxkIGJlIHVzZWQgdG8g c3BlY2lmeSBleHRlcm5hbC1vbmx5IGFjY2VzcyB0byB0aGUgaW50ZXJmYWNlLgo+ICsKPiArPWJh Y2sKPiArCj4gID1pdGVtIEI8YWx0cDJtaHZtPUJPT0xFQU4+Cj4gIAo+ICBFbmFibGVzIG9yIGRp c2FibGVzIGh2bSBndWVzdCBhY2Nlc3MgdG8gYWx0ZXJuYXRlLXAybSBjYXBhYmlsaXR5Lgo+IGRp ZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYyBiL3Rvb2xzL2xpYnhsL2xpYnhs X2NyZWF0ZS5jCj4gaW5kZXggMDRmOGFlOS4uYzkwNzZkYSAxMDA2NDQKPiAtLS0gYS90b29scy9s aWJ4bC9saWJ4bF9jcmVhdGUuYwo+ICsrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jCj4g QEAgLTMxOSw3ICszMTksNiBAQCBpbnQgbGlieGxfX2RvbWFpbl9idWlsZF9pbmZvX3NldGRlZmF1 bHQobGlieGxfX2djICpnYywKPiAgICAgICAgICBsaWJ4bF9kZWZib29sX3NldGRlZmF1bHQoJmJf aW5mby0+dS5odm0uaHBldCwgICAgICAgICAgICAgICB0cnVlKTsKPiAgICAgICAgICBsaWJ4bF9k ZWZib29sX3NldGRlZmF1bHQoJmJfaW5mby0+dS5odm0udnB0X2FsaWduLCAgICAgICAgICB0cnVl KTsKPiAgICAgICAgICBsaWJ4bF9kZWZib29sX3NldGRlZmF1bHQoJmJfaW5mby0+dS5odm0ubmVz dGVkX2h2bSwgICAgICAgICBmYWxzZSk7Cj4gLSAgICAgICAgbGlieGxfZGVmYm9vbF9zZXRkZWZh dWx0KCZiX2luZm8tPnUuaHZtLmFsdHAybSwgICAgICAgICAgICAgZmFsc2UpOwo+ICAgICAgICAg IGxpYnhsX2RlZmJvb2xfc2V0ZGVmYXVsdCgmYl9pbmZvLT51Lmh2bS51c2IsICAgICAgICAgICAg ICAgIGZhbHNlKTsKPiAgICAgICAgICBsaWJ4bF9kZWZib29sX3NldGRlZmF1bHQoJmJfaW5mby0+ dS5odm0ueGVuX3BsYXRmb3JtX3BjaSwgICB0cnVlKTsKPiAgCj4gQEAgLTkxOCw4ICs5MTcsOCBA QCBzdGF0aWMgdm9pZCBpbml0aWF0ZV9kb21haW5fY3JlYXRlKGxpYnhsX19lZ2MgKmVnYywKPiAg Cj4gICAgICBpZiAoZF9jb25maWctPmNfaW5mby50eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0hW TSAmJgo+ICAgICAgICAgIChsaWJ4bF9kZWZib29sX3ZhbChkX2NvbmZpZy0+Yl9pbmZvLnUuaHZt Lm5lc3RlZF9odm0pICYmCj4gLSAgICAgICAgIGxpYnhsX2RlZmJvb2xfdmFsKGRfY29uZmlnLT5i X2luZm8udS5odm0uYWx0cDJtKSkpIHsKPiAtICAgICAgICBMT0coRVJST1IsICJuZXN0ZWRodm0g YW5kIGFsdHAybWh2bSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIpOwo+ICsgICAgICAgICBkX2Nv bmZpZy0+Yl9pbmZvLnUuaHZtLmFsdHAybSAhPSBMSUJYTF9BTFRQMk1fTU9ERV9ESVNBQkxFRCkp IHsKPiArICAgICAgICBMT0coRVJST1IsICJuZXN0ZWRodm0gYW5kIGFsdHAybSBjYW5ub3QgYmUg dXNlZCB0b2dldGhlciIpOwo+ICAgICAgICAgIGdvdG8gZXJyb3Jfb3V0Owo+ICAgICAgfQo+ICAK PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMgYi90b29scy9saWJ4bC9saWJ4 bF9kb20uYwo+IGluZGV4IGVlZjUwNDUuLjBiOGIyYTggMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvbGli eGwvbGlieGxfZG9tLmMKPiArKysgYi90b29scy9saWJ4bC9saWJ4bF9kb20uYwo+IEBAIC0yOTIs NyArMjkyLDcgQEAgc3RhdGljIHZvaWQgaHZtX3NldF9jb25mX3BhcmFtcyh4Y19pbnRlcmZhY2Ug KmhhbmRsZSwgdWludDMyX3QgZG9taWQsCj4gICAgICB4Y19odm1fcGFyYW1fc2V0KGhhbmRsZSwg ZG9taWQsIEhWTV9QQVJBTV9ORVNURURIVk0sCj4gICAgICAgICAgICAgICAgICAgICAgbGlieGxf ZGVmYm9vbF92YWwoaW5mby0+dS5odm0ubmVzdGVkX2h2bSkpOwo+ICAgICAgeGNfaHZtX3BhcmFt X3NldChoYW5kbGUsIGRvbWlkLCBIVk1fUEFSQU1fQUxUUDJNLAo+IC0gICAgICAgICAgICAgICAg ICAgIGxpYnhsX2RlZmJvb2xfdmFsKGluZm8tPnUuaHZtLmFsdHAybSkpOwo+ICsgICAgICAgICAg ICAgICAgICAgICBpbmZvLT51Lmh2bS5hbHRwMm0pOwo+ICB9Cj4gIAo+ICBpbnQgbGlieGxfX2J1 aWxkX3ByZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKPiBkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGwvbGlieGxfdHlwZXMuaWRsIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCj4g aW5kZXggZWY2MTRiZS4uOTc5NDhmZCAxMDA2NDQKPiAtLS0gYS90b29scy9saWJ4bC9saWJ4bF90 eXBlcy5pZGwKPiArKysgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKPiBAQCAtNDM5LDYg KzQzOSwxMyBAQCBsaWJ4bF9yZG1fcmVzZXJ2ZSA9IFN0cnVjdCgicmRtX3Jlc2VydmUiLCBbCj4g ICAgICAoInBvbGljeSIsICAgICAgbGlieGxfcmRtX3Jlc2VydmVfcG9saWN5KSwKPiAgICAgIF0p Cj4gIAo+ICsjIENvbnNpc3RlbnQgd2l0aCB0aGUgdmFsdWVzIGRlZmluZWQgZm9yIEhWTV9QQVJB TV9BTFRQMk0KPiArbGlieGxfYWx0cDJtX21vZGUgPSBFbnVtZXJhdGlvbigiYWx0cDJtX21vZGUi LCBbCj4gKyAgICAoMCwgImRpc2FibGVkIiksCj4gKyAgICAoMSwgIm1peGVkIiksCj4gKyAgICAo MiwgImV4dGVybmFsX29ubHkiKSwKPiArICAgIF0sIGluaXRfdmFsID0gIkxJQlhMX0FMVFAyTV9N T0RFX0RJU0FCTEVEIikKPiArCj4gIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvID0gU3RydWN0KCJk b21haW5fYnVpbGRfaW5mbyIsWwo+ICAgICAgKCJtYXhfdmNwdXMiLCAgICAgICBpbnRlZ2VyKSwK PiAgICAgICgiYXZhaWxfdmNwdXMiLCAgICAgbGlieGxfYml0bWFwKSwKPiBAQCAtNTEyLDcgKzUx OSw3IEBAIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvID0gU3RydWN0KCJkb21haW5fYnVpbGRfaW5m byIsWwo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIm1taW9faG9s ZV9tZW1rYiIsICBNZW1LQiksCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgidGltZXJfbW9kZSIsICAgICAgIGxpYnhsX3RpbWVyX21vZGUpLAo+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIm5lc3RlZF9odm0iLCAgICAgICBsaWJ4bF9k ZWZib29sKSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJhbHRw Mm0iLCAgICAgICAgICAgbGlieGxfZGVmYm9vbCksCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICgiYWx0cDJtIiwgICAgICAgICAgIGxpYnhsX2FsdHAybV9tb2RlKSwK ClRoaXMgaXMgYSBicmVha2luZyBjaGFuZ2UuCgpMZXQgbWUgdGhpbmsgYSBiaXQgaG93IHRvIG1h a2UgaXQgYmFja3dhcmQgY29tcGF0aWJsZS4KCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgic21iaW9zX2Zpcm13YXJlIiwgIHN0cmluZyksCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiYWNwaV9maXJtd2FyZSIsICAgIHN0cmluZyks Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiaGR0eXBlIiwgICAg ICAgICAgIGxpYnhsX2hkdHlwZSksCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL3hsX2NtZGlt cGwuYyBiL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYwo+IGluZGV4IDdmOTYxZTMuLmE2NTUyOTYg MTAwNjQ0Cj4gLS0tIGEvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jCj4gKysrIGIvdG9vbHMvbGli eGwveGxfY21kaW1wbC5jCj4gQEAgLTE2NjcsNyArMTY2NywzOSBAQCBzdGF0aWMgdm9pZCBwYXJz ZV9jb25maWdfZGF0YShjb25zdCBjaGFyICpjb25maWdfc291cmNlLAo+ICAKPiAgICAgICAgICB4 bHVfY2ZnX2dldF9kZWZib29sKGNvbmZpZywgIm5lc3RlZGh2bSIsICZiX2luZm8tPnUuaHZtLm5l c3RlZF9odm0sIDApOwo+ICAKPiAtICAgICAgICB4bHVfY2ZnX2dldF9kZWZib29sKGNvbmZpZywg ImFsdHAybWh2bSIsICZiX2luZm8tPnUuaHZtLmFsdHAybSwgMCk7Cj4gKyAgICAgICAgLyoKPiAr ICAgICAgICAgKiBUaGUgY29uZmlnIHBhcmFtZXRlciAiYWx0cDJtaHZtIiBpcyBjb25zaWRlcmVk IGRlcHJlY2F0ZWQsIGhvd2V2ZXIKPiArICAgICAgICAgKiBmdXJ0aGVyIGNvbnNpZGVyZWQgYmVj YXVzZSBvZiBsZWdhY3kgcmVhc29ucy4gVGhlIGNvbmZpZyBwYXJhbWV0ZXIKPiArICAgICAgICAg KiAiYWx0cDJtIiBzaGFsbCBiZSB1c2VkIGluc3RlYWQuCj4gKyAgICAgICAgICovCj4gKyAgICAg ICAgaWYgKCF4bHVfY2ZnX2dldF9sb25nKGNvbmZpZywgImFsdHAybWh2bSIsICZsLCAwKSkgewo+ ICsgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIldBUk5JTkc6IFNwZWNpZnlpbmcgXCJhbHRw Mm1odm1cIiBpcyBkZXByZWNhdGVkLiAiCj4gKyAgICAgICAgICAgICAgICAgICAgIlBsZWFzZSB1 c2UgYSBcImFsdHAybVwiIGluc3RlYWQuXG4iKTsKCllvdSBtaWdodCB3YW50IHRvIGRlbGV0ZSB0 aGlzIGNoZWNrLCBhbmQgLi4uCgo+ICsKPiArICAgICAgICAgICAgaWYgKGwgPCBMSUJYTF9BTFRQ Mk1fTU9ERV9ESVNBQkxFRCB8fAo+ICsgICAgICAgICAgICAgICAgbCA+IExJQlhMX0FMVFAyTV9N T0RFX01JWEVEKSB7Cj4gKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBp bnZhbGlkIHZhbHVlICVsZCBmb3IgXCJhbHRwMm1odm1cIlxuIiwgbCk7Cj4gKyAgICAgICAgICAg ICAgICBleGl0ICgxKTsKPiArICAgICAgICAgICAgfQo+ICsKPiArICAgICAgICAgICAgYl9pbmZv LT51Lmh2bS5hbHRwMm0gPSBsOwoKICAgICAgIGJfaW5mby0+dS5odm0uYWx0cDJtID0gbCA/IExJ QlhMX0FMVFAyTV9NSVhFRCA6IExJQlhMX0FMVFAyTV9ESVNBQkxFRDsKCkFzc3VtaW5nIHRoYXQn cyB0aGUgb3JpZ2luYWwgc2VtYW50aWNzIG9mIHRoaXMgb3B0aW9uLCBpLmUuIHplcm8gbWVhbnMK ZGlzYWJsZWQsIG5vbi16ZXJvIHZhbHVlIG1lYW5zIE1JWEVEIG1vZGUuCgpXZWkuCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4t ZGV2ZWwK