From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: Re: [PATCH v2 22/23] libxl/acpi: Build ACPI tables for HVMlite guests Date: Thu, 11 Aug 2016 17:36:21 +0100 Message-ID: <20160811163621.GW20641@citrix.com> References: <1470344811-14225-1-git-send-email-boris.ostrovsky@oracle.com> <1470344811-14225-23-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1470344811-14225-23-git-send-email-boris.ostrovsky@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Boris Ostrovsky Cc: wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, xen-devel@lists.xen.org, julien.grall@arm.com, jbeulich@suse.com, zhaoshenglong@huawei.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBBdWcgMDQsIDIwMTYgYXQgMDU6MDY6NTBQTSAtMDQwMCwgQm9yaXMgT3N0cm92c2t5 IHdyb3RlOgpbLi4uXQo+ICAKPiAgZGlzdGNsZWFuOiBjbGVhbgo+ICAJJChSTSkgLWYgeGVubGln aHQucGMuaW4geGx1dGlsLnBjLmluCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2Fy Y2guaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2FyY2guaAo+IGluZGV4IDM0YTg1M2MuLjdjNjUzNmIg MTAwNjQ0Cj4gLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfYXJjaC5oCj4gKysrIGIvdG9vbHMvbGli eGwvbGlieGxfYXJjaC5oCj4gQEAgLTYyLDQgKzYyLDcgQEAgaW50IGxpYnhsX19hcmNoX2RvbWFp bl9jb25zdHJ1Y3RfbWVtbWFwKGxpYnhsX19nYyAqZ2MsCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkb21pZCwKPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSk7Cj4gIAo+ICtp bnQgbGlieGxfX2RvbV9sb2FkX2FjcGkobGlieGxfX2djICpnYywKPiArCQkJIGxpYnhsX2RvbWFp bl9idWlsZF9pbmZvICppbmZvLAo+ICsJCQkgc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKTsKPiAg I2VuZGlmCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jIGIvdG9vbHMvbGli eGwvbGlieGxfZG9tLmMKPiBpbmRleCAzYTFkYWFlLi43ZGJmNjE0IDEwMDY0NAo+IC0tLSBhL3Rv b2xzL2xpYnhsL2xpYnhsX2RvbS5jCj4gKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMKPiBA QCAtNjU3LDYgKzY1Nyw3IEBAIHN0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RvbShsaWJ4bF9fZ2Mg KmdjLCB1aW50MzJfdCBkb21pZCwKPiAgICAgICAgICBMT0dFKEVSUk9SLCAieGNfZG9tX2J1aWxk X2ltYWdlIGZhaWxlZCIpOwo+ICAgICAgICAgIGdvdG8gb3V0Owo+ICAgICAgfQo+ICsKClN0cmF5 IGJsYW5rIGxpbmUuCgo+ICAgICAgaWYgKCAocmV0ID0geGNfZG9tX2Jvb3RfaW1hZ2UoZG9tKSkg IT0gMCApIHsKPiAgICAgICAgICBMT0dFKEVSUk9SLCAieGNfZG9tX2Jvb3RfaW1hZ2UgZmFpbGVk Iik7Cj4gICAgICAgICAgZ290byBvdXQ7Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhs X3g4Ni5jIGIvdG9vbHMvbGlieGwvbGlieGxfeDg2LmMKPiBpbmRleCA3NjU0ZTIwLi40MmYyMTM5 IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3g4Ni5jCj4gKysrIGIvdG9vbHMvbGli eGwvbGlieGxfeDg2LmMKPiBAQCAtOCwxNSArOCwxOCBAQCBpbnQgbGlieGxfX2FyY2hfZG9tYWlu X3ByZXBhcmVfY29uZmlnKGxpYnhsX19nYyAqZ2MsCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgeGNfZG9tYWluX2NvbmZpZ3VyYXRpb25fdCAqeGNfY29uZmlnKQo+ICB7 Cj4gIAo+IC0gICAgaWYgKGRfY29uZmlnLT5jX2luZm8udHlwZSA9PSBMSUJYTF9ET01BSU5fVFlQ RV9IVk0gJiYKPiAtICAgICAgICBkX2NvbmZpZy0+Yl9pbmZvLmRldmljZV9tb2RlbF92ZXJzaW9u ICE9Cj4gLSAgICAgICAgTElCWExfREVWSUNFX01PREVMX1ZFUlNJT05fTk9ORSkgewo+IC0gICAg ICAgIC8qIEhWTSBkb21haW5zIHdpdGggYSBkZXZpY2UgbW9kZWwuICovCj4gLSAgICAgICAgeGNf Y29uZmlnLT5lbXVsYXRpb25fZmxhZ3MgPSBYRU5fWDg2X0VNVV9BTEw7Cj4gLSAgICB9IGVsc2Ug ewo+IC0gICAgICAgIC8qIFBWIG9yIEhWTSBkb21haW5zIHdpdGhvdXQgYSBkZXZpY2UgbW9kZWwu ICovCj4gKyAgICBpZiAoZF9jb25maWctPmNfaW5mby50eXBlID09IExJQlhMX0RPTUFJTl9UWVBF X0hWTSkgewo+ICsgICAgICAgIGlmIChkX2NvbmZpZy0+Yl9pbmZvLmRldmljZV9tb2RlbF92ZXJz aW9uICE9Cj4gKyAgICAgICAgICAgIExJQlhMX0RFVklDRV9NT0RFTF9WRVJTSU9OX05PTkUpCj4g KyAgICAgICAgICAgIHhjX2NvbmZpZy0+ZW11bGF0aW9uX2ZsYWdzID0gWEVOX1g4Nl9FTVVfQUxM Owo+ICsgICAgICAgIGVsc2UgaWYgKGxpYnhsX2RlZmJvb2xfdmFsKGRfY29uZmlnLT5iX2luZm8u dS5odm0uYXBpYykpCj4gKyAgICAgICAgICAgIC8qCj4gKyAgICAgICAgICAgICAqIEhWTSBndWVz dHMgd2l0aG91dCBkZXZpY2UgbW9kZWwgbWF5IHdhbnQKPiArICAgICAgICAgICAgICogdG8gaGF2 ZSBMQVBJQyBlbXVsYXRpb24uCj4gKyAgICAgICAgICAgICAqLwo+ICsgICAgICAgICAgICB4Y19j b25maWctPmVtdWxhdGlvbl9mbGFncyA9IFhFTl9YODZfRU1VX0xBUElDOwo+ICsgICAgfSBlbHNl IAoKUGxlYXNlIHJldGFpbiB7fSBmb3IgdGhlIGVsc2UgYnJhbmNoLiBXZSByZWNlbnRseSB1cGRh dGVkIHRoZQpDT0RJTkdfU1RZTEUgYSBiaXQuCgo+ICAgICAgICAgIHhjX2NvbmZpZy0+ZW11bGF0 aW9uX2ZsYWdzID0gMDsKPiAtICAgIH0KPiAgCj4gICAgICByZXR1cm4gMDsKPiAgfQo+IEBAIC0z NjYsNyArMzY5LDE1IEBAIGludCBsaWJ4bF9fYXJjaF9kb21haW5fZmluYWxpc2VfaHdfZGVzY3Jp cHRpb24obGlieGxfX2djICpnYywKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqaW5mbywKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfZG9tX2ltYWdl ICpkb20pCj4gIHsKPiAtICAgIHJldHVybiAwOwo+ICsgICAgaW50IHJldCA9IDA7Cj4gKwo+ICsg ICAgaWYgKChpbmZvLT50eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0hWTSkgJiYKPiArICAgICAg ICAoaW5mby0+ZGV2aWNlX21vZGVsX3ZlcnNpb24gPT0gTElCWExfREVWSUNFX01PREVMX1ZFUlNJ T05fTk9ORSkpIHsKPiArICAgICAgICBpZiAoIChyZXQgPSBsaWJ4bF9fZG9tX2xvYWRfYWNwaShn YywgaW5mbywgZG9tKSkgIT0gMCApCj4gKyAgICAgICAgICAgIExPR0UoRVJST1IsICJsaWJ4bF9k b21fbG9hZF9hY3BpIGZhaWxlZCIpOwo+ICsgICAgfQo+ICsKPiArICAgIHJldHVybiByZXQ7Cj4g IH0KPiAgCj4gIC8qIFJldHVybiAwIG9uIHN1Y2Nlc3MsIEVSUk9SXyogb24gZmFpbHVyZS4gKi8K PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfeDg2X2FjcGkuYyBiL3Rvb2xzL2xpYnhs L2xpYnhsX3g4Nl9hY3BpLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAu Ljg4ZTY5ZTIKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvdG9vbHMvbGlieGwvbGlieGxfeDg2X2Fj cGkuYwoKSSBvbmx5IHNraW1tZWQgdGhpcyBmaWxlLiBJIHRoaW5rIGl0J3MgbW9zdGx5IGNvZGUg bW92ZW1lbnQgYW5kIGJlbGlldmUKdGhlIGJ1ZyBoZXJlIHNob3VsZCBiZSBlYXN5IHRvIGZpeC4K Cj4gQEAgLTAsMCArMSwxOTkgQEAKPiArLyoKPiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPiArICogaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkCj4gKyAqIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24g Mi4xIG9ubHkuIHdpdGggdGhlIHNwZWNpYWwKPiArICogZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVz Y3JpYmVkIGluIGZpbGUgTElDRU5TRS4KPiArICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKyAqIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4g KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKPiArICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCj4gKyAqCj4gKyAqIENvcHlyaWdodCAoYykgMjAxNiBPcmFjbGUgYW5kL29yIGl0 cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgo+ICsgKi8KPiArCj4gKyNpbmNsdWRl ICJsaWJ4bF9pbnRlcm5hbC5oIgo+ICsjaW5jbHVkZSAibGlieGxfYXJjaC5oIgo+ICsjaW5jbHVk ZSA8eGVuL2h2bS9odm1faW5mb190YWJsZS5oPgo+ICsjaW5jbHVkZSA8eGVuL2h2bS9lODIwLmg+ Cj4gKyNpbmNsdWRlICJsaWJhY3BpL2xpYmFjcGkuaCIKPiArCj4gKyNpbmNsdWRlIDx4Y19kb20u aD4KPiArCj4gKyAvKiBOdW1iZXIgb2YgcGFnZXMgaG9sZGluZyBBQ1BJIHRhYmxlcyAqLwo+ICsj ZGVmaW5lIE5VTV9BQ1BJX1BBR0VTIDE2Cj4gKy8qIFN0b3JlIFJTRFAgaW4gdGhlIGxhc3QgNjQg Ynl0ZXMgb2YgQklPUyBSTyBtZW1vcnkgKi8KPiArI2RlZmluZSBSU0RQX0FERFJFU1MgKDB4MTAw MDAwIC0gNjQpCj4gKyNkZWZpbmUgQUNQSV9JTkZPX1BIWVNJQ0FMX0FERFJFU1MgMHhmYzAwMDAw MAo+ICsKPiArZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGNoYXIgZHNkdF9wdmhbXTsKPiArZXh0ZXJu IGNvbnN0IHVuc2lnbmVkIGludCBkc2R0X3B2aF9sZW47Cj4gKwo+ICsvKiBBc3N1bWVzIGNvbnRp Z3VvdXMgcGh5c2ljYWwgc3BhY2UgKi8KPiArc3RhdGljIHVuc2lnbmVkIGxvbmcgdmlydF90b19w aHlzKHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsIHZvaWQgKnYpCj4gK3sKPiArICAgIHJldHVybiAo KCh1bnNpZ25lZCBsb25nKXYgLSBjdHh0LT5hbGxvY19iYXNlX3ZhZGRyKSArCj4gKyAgICAgICAg ICAgIGN0eHQtPmFsbG9jX2Jhc2VfcGFkZHIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCAqbWVt X2FsbG9jKHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsIHVpbnQzMl90IHNpemUsIHVpbnQzMl90IGFs aWduKQo+ICt7Cj4gKyAgICB1bnNpZ25lZCBsb25nIHMsIGU7Cj4gKwo+ICsgICAgLyogQWxpZ24g dG8gYXQgbGVhc3QgMTYgYnl0ZXMuICovCj4gKyAgICBpZiAoYWxpZ24gPCAxNikKPiArICAgICAg ICBhbGlnbiA9IDE2Owo+ICsKPiArICAgIHMgPSAoY3R4dC0+YWxsb2NfY3VycnAgKyBhbGlnbikg JiB+KCh1bnNpZ25lZCBsb25nKWFsaWduIC0gMSk7Cj4gKyAgICBlID0gcyArIHNpemUgLSAxOwo+ ICsKPiArICAgIC8qIFRPRE86IFJlYWxsb2NhdGUgbWVtb3J5ICovCj4gKyAgICBpZiAoKGUgPCBz KSB8fCAoZSA+PSBjdHh0LT5hbGxvY19lbmQpKSByZXR1cm4gTlVMTDsKPiArCgpQbGVhc2UgcHV0 IHJldHVybiBOVUxMIG9uIGEgbmV3IGxpbmUuCgo+ICsgICAgd2hpbGUgKGN0eHQtPmFsbG9jX2N1 cnJwID4+IGN0eHQtPnBhZ2Vfc2hpZnQgIT0gCj4gKyAgICAgICAgICAgZSA+PiBjdHh0LT5wYWdl X3NoaWZ0KQo+ICsgICAgICAgIGN0eHQtPmFsbG9jX2N1cnJwICs9IGN0eHQtPnBhZ2Vfc2l6ZTsK PiArCj4gKyAgICBjdHh0LT5hbGxvY19jdXJycCA9IGU7Cj4gKwo+ICsgICAgcmV0dXJuICh2b2lk ICopczsKPiArfQo+ICsKPiArc3RhdGljIGludCBpbml0X2FjcGlfY29uZmlnKGxpYnhsX19nYyAq Z2MsIAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhjX2RvbV9pbWFnZSAq ZG9tLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2J1aWxkX2lu Zm8gKmJfaW5mbywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhY3BpX2Nv bmZpZyAqY29uZmlnKQo+ICt7Cj4gKyAgICB4Y19pbnRlcmZhY2UgKnhjaCA9IGRvbS0+eGNoOwo+ ICsgICAgdWludDMyX3QgZG9taWQgPSBkb20tPmd1ZXN0X2RvbWlkOwo+ICsgICAgeGNfZG9taW5m b190IGluZm87Cj4gKyAgICBpbnQgaSwgcmM7Cj4gKwo+ICsgICAgY29uZmlnLT5kc2R0X2FueWNw dSA9IGNvbmZpZy0+ZHNkdF8xNWNwdSA9IGRzZHRfcHZoOwo+ICsgICAgY29uZmlnLT5kc2R0X2Fu eWNwdV9sZW4gPSBjb25maWctPmRzZHRfMTVjcHVfbGVuID0gZHNkdF9wdmhfbGVuOwo+ICsKPiAr ICAgIHJjID0geGNfZG9tYWluX2dldGluZm8oeGNoLCBkb21pZCwgMSwgJmluZm8pOwo+ICsgICAg aWYgKHJjIDwgMCkgewo+ICsgICAgICAgIExPRyhFUlJPUiwgIiVzOiBnZXRkb21haW5pbmZvIGZh aWxlZCAocmM9JWQpIiwgX19GVU5DVElPTl9fLCByYyk7Cj4gKyAgICAgICAgcmV0dXJuIHJjOwo+ ICsgICAgfQo+ICsKPiArICAgIGNvbmZpZy0+aHZtaW5mbyA9IGxpYnhsX196YWxsb2MoZ2MsIHNp emVvZigqY29uZmlnLT5odm1pbmZvKSk7Cj4gKwo+ICsgICAgY29uZmlnLT5odm1pbmZvLT5hcGlj X21vZGUgPSBsaWJ4bF9kZWZib29sX3ZhbChiX2luZm8tPnUuaHZtLmFwaWMpOwo+ICsKPiArICAg IGlmIChkb20tPm5yX3Zub2Rlcykgewo+ICsgICAgICAgIHN0cnVjdCBhY3BpX251bWEgKm51bWEg PSAmY29uZmlnLT5udW1hOwo+ICsKPiArICAgICAgICByYyA9IHhjX2RvbWFpbl9nZXR2bnVtYSh4 Y2gsIGRvbWlkLCAmbnVtYS0+bnJfdm5vZGVzLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZudW1hLT5ucl92bWVtcmFuZ2VzLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZjb25maWctPmh2bWluZm8tPm5yX3ZjcHVzLCBOVUxMLCBOVUxMLCBOVUxMKTsKPiAr CWlmIChyYykgewo+ICsgICAgICAgICAgICBMT0coRVJST1IsICIlczogeGNfZG9tYWluX2dldHZu dW1hIGZhaWxlZCAocmM9JWQpIiwKPiArICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgcmMp Owo+ICsgICAgICAgICAgICByZXR1cm4gcmM7Cj4gKyAgICAgICAgfQoKSW5kZW50YXRpb24uCgo+ ICsKPiArICAgICAgICBudW1hLT52bWVtcmFuZ2UgPSBsaWJ4bF9femFsbG9jKGdjLCBkb20tPm5y X3ZtZW1yYW5nZXMgKgo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZW9mKCpudW1hLT52bWVtcmFuZ2UpKTsKPiArICAgICAgICBudW1hLT52ZGlzdGFuY2UgPSBs aWJ4bF9femFsbG9jKGdjLCBkb20tPm5yX3Zub2RlcyAqCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKCpudW1hLT52ZGlzdGFuY2UpKTsKPiArICAgICAg ICBudW1hLT52Y3B1X3RvX3Zub2RlID0gbGlieGxfX3phbGxvYyhnYywgY29uZmlnLT5odm1pbmZv LT5ucl92Y3B1cyAqCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNpemVvZigqbnVtYS0+dmNwdV90b192bm9kZSkpOwo+ICsgICAgICAgIHJjID0geGNfZG9t YWluX2dldHZudW1hKHhjaCwgZG9taWQsICZudW1hLT5ucl92bm9kZXMsCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJm51bWEtPm5yX3ZtZW1yYW5nZXMsCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmNvbmZpZy0+aHZtaW5mby0+bnJfdmNwdXMsIG51bWEtPnZt ZW1yYW5nZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1hLT52ZGlzdGFu Y2UsIG51bWEtPnZjcHVfdG9fdm5vZGUpOwo+ICsJaWYgKHJjKSB7Cj4gKyAgICAgICAgICAgIExP RyhFUlJPUiwgIiVzOiB4Y19kb21haW5fZ2V0dm51bWEgZmFpbGVkIChyYz0lZCkiLAo+ICsgICAg ICAgICAgICAgICAgX19GVU5DVElPTl9fLCByYyk7Cj4gKyAgICAgICAgICAgIHJldHVybiByYzsK PiArICAgICAgICB9Cj4gKyAgICB9Cj4gKyAgICBlbHNlCj4gKyAgICAgICAgY29uZmlnLT5odm1p bmZvLT5ucl92Y3B1cyA9IGluZm8ubWF4X3ZjcHVfaWQgKyAxOwo+ICsKPiArICAgIGZvciAoaT0w OyBpPGNvbmZpZy0+aHZtaW5mby0+bnJfdmNwdXM7IGkrKykKPiArICAgICAgICBjb25maWctPmh2 bWluZm8tPnZjcHVfb25saW5lW2kgLyA4XSB8PSAxIDw8IChpICYgNyk7Cj4gKwo+ICsgICAgcmV0 dXJuIDA7Cj4gK30KPiArCj4gK2ludCBsaWJ4bF9fZG9tX2xvYWRfYWNwaShsaWJ4bF9fZ2MgKmdj LAo+ICsgCQkJICBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqaW5mbywKPiArCQkJICBzdHJ1Y3Qg eGNfZG9tX2ltYWdlICpkb20pCgpJbmRlbnRhdGlvbi4KCkFuZCBwbGVhc2UgY29uc3RpZnkgc3R1 ZmYgdGhhdCBkb24ndCBnZXQgY2hhbmdlZCAtLSBpbmZvLgoKCldlaS4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=