From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xin Li Subject: [PATCH 2/2] xen/xsm: Add new SILO mode for XSM Date: Fri, 28 Sep 2018 16:18:17 +0800 Message-ID: <20180928081817.16317-2-xin.li@citrix.com> References: <20180928081817.16317-1-xin.li@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180928081817.16317-1-xin.li@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Sergey Dyasli , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Xin Li , Tim Deegan , Jan Beulich , Andrew Cooper , Ming Lu , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org V2hlbiBTSUxPIGlzIGVuYWJsZWQsIHRoZXJlIHdvdWxkIGJlIG5vIHBhZ2Utc2hhcmluZyBvciBl dmVudCBub3RpZmljYXRpb25zCmJldHdlZW4gdW5wcml2aWxlZ2VkIFZNcyAobm8gZ3JhbnQgdGFi bGVzIG9yIGV2ZW50IGNoYW5uZWxzKS4KClNpZ25lZC1vZmYtYnk6IFhpbiBMaSA8eGluLmxpQGNp dHJpeC5jb20+CgotLS0KQ0M6IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292 PgpDQzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDQzogSmFu IEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgpDQzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxr b25yYWQud2lsa0BvcmFjbGUuY29tPgpDQzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGlu aUBrZXJuZWwub3JnPgpDQzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNDOiBXZWkgTGl1IDx3 ZWkubGl1MkBjaXRyaXguY29tPgpDQzogU2VyZ2V5IER5YXNsaSA8c2VyZ2V5LmR5YXNsaUBjaXRy aXguY29tPgpDQzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ0M6 IE1pbmcgTHUgPG1pbmcubHVAY2l0cml4LmNvbT4KCnYzOiBtYWtlIGNvcGllcyBvZiBkdW1teSBm dW5jdGlvbnMgdG8gYXZvaWQgaW5kaXJlY3QgY2FsbC4KCi0tLQogZG9jcy9taXNjL3hlbi1jb21t YW5kLWxpbmUubWFya2Rvd24gfCAgIDUgKy0KIHhlbi9jb21tb24vS2NvbmZpZyAgICAgICAgICAg ICAgICAgIHwgIDEyICsrKwogeGVuL2luY2x1ZGUveHNtL3hzbS5oICAgICAgICAgICAgICAgfCAg IDYgKysKIHhlbi94c20vTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHhlbi94 c20vc2lsby5jICAgICAgICAgICAgICAgICAgICAgIHwgMTIzICsrKysrKysrKysrKysrKysrKysr KysrKysrKysKIHhlbi94c20veHNtX2NvcmUuYyAgICAgICAgICAgICAgICAgIHwgICA5ICsrCiA2 IGZpbGVzIGNoYW5nZWQsIDE1NSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgeGVuL3hzbS9zaWxvLmMKCmRpZmYgLS1naXQgYS9kb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5tYXJrZG93biBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3du CmluZGV4IDZhM2MwZTcxYzcuLmUwYTliNGQyNjggMTAwNjQ0Ci0tLSBhL2RvY3MvbWlzYy94ZW4t Y29tbWFuZC1saW5lLm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1h cmtkb3duCkBAIC05MDAsNyArOTAwLDcgQEAgTm90ZSB0aGF0IHNwZWNpZnlpbmcgemVybyBhcyBk b21VIHZhbHVlIG1lYW5zIHplcm8sIHdoaWxlIGZvciBkb20wIGl0IG1lYW5zCiB0byB1c2UgdGhl IGRlZmF1bHQuCiAKICMjIyB4c20KLT4gYD0gZGVmYXVsdCB8IGZsYXNrYAorPiBgPSBkZWZhdWx0 IHwgZmxhc2sgfCBzaWxvYAogCiA+IERlZmF1bHQ6IGBkZWZhdWx0YAogCkBAIC05MTEsNiArOTEx LDkgQEAgdGhlIGh5cGVydmlzb3Igd2FzIGNvbXBpbGVkIHdpdGggWFNNIHN1cHBvcnQuCiAgICh0 aGUgZHVtbXkgbW9kdWxlKSB3aWxsIGJlIGFwcGxpZWQuICBpdCdzIGFsc28gdXNlZCB3aGVuIFhT TSBpcyBjb21waWxlZCBvdXQuCiAqIGBmbGFza2A6IHRoaXMgaXMgdGhlIHBvbGljeSBiYXNlZCBh Y2Nlc3MgY29udHJvbC4gIFRvIGNob29zZSB0aGlzLCB0aGUKICAgc2VwYXJhdGVkIG9wdGlvbiBp biBrY29uZmlnIG11c3QgYWxzbyBiZSBlbmFibGVkLgorKiBgc2lsb2A6IHRoaXMgd2lsbCBkZW55 IGFueSB1bm1lZGlhdGVkIGNvbW11bmljYXRpb24gY2hhbm5lbHMgYmV0d2VlbgorICB1bnByaXZp bGVnZWQgVk1zLiAgVG8gY2hvb3NlIHRoaXMsIHRoZSBzZXBhcmF0ZWQgb3B0aW9uIGluIGtjb25m aWcgbXVzdCBhbHNvCisgIGJlIGVuYWJsZWQuCiAKICMjIyBmbGFzawogPiBgPSBwZXJtaXNzaXZl IHwgZW5mb3JjaW5nIHwgbGF0ZSB8IGRpc2FibGVkYApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9L Y29uZmlnIGIveGVuL2NvbW1vbi9LY29uZmlnCmluZGV4IDFhNmQ2MjgxYzEuLjJmZTY2OGJhNWEg MTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vS2NvbmZpZworKysgYi94ZW4vY29tbW9uL0tjb25maWcK QEAgLTE1NCw2ICsxNTQsMTggQEAgY29uZmlnIFhTTV9GTEFTS19QT0xJQ1kKIAogCSAgSWYgdW5z dXJlLCBzYXkgWS4KIAorY29uZmlnIFhTTV9TSUxPCisJZGVmX2Jvb2wgeQorCXByb21wdCAiU0lM TyBzdXBwb3J0IgorCWRlcGVuZHMgb24gWFNNCisJLS0taGVscC0tLQorCSAgRW5hYmxlcyBTSUxP IGFzIHRoZSBhY2Nlc3MgY29udHJvbCBtZWNoYW5pc20gdXNlZCBieSB0aGUgWFNNIGZyYW1ld29y ay4KKwkgIFRoaXMgaXMgbm90IHRoZSBkZWZhdWx0IG1vZHVsZSwgYWRkIGJvb3QgcGFyYW1ldGVy IHhzbT1zaWxvIHRvIGNob29zZQorCSAgaXQuIFRoaXMgd2lsbCBkZW55IGFueSB1bm1lZGlhdGVk IGNvbW11bmljYXRpb24gY2hhbm5lbHMgKGdyYW50IHRhYmxlcworCSAgYW5kIGV2ZW50IGNoYW5u ZWxzKSBiZXR3ZWVuIHVucHJpdmlsZWdlZCBWTXMuCisKKwkgIElmIHVuc3VyZSwgc2F5IFkuCisK IGNvbmZpZyBMQVRFX0hXRE9NCiAJYm9vbCAiRGVkaWNhdGVkIGhhcmR3YXJlIGRvbWFpbiIKIAlk ZWZhdWx0IG4KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hzbS94c20uaCBiL3hlbi9pbmNsdWRl L3hzbS94c20uaAppbmRleCAzZDY3OTYyNDkzLi4zYjE5MmI1YzMxIDEwMDY0NAotLS0gYS94ZW4v aW5jbHVkZS94c20veHNtLmgKKysrIGIveGVuL2luY2x1ZGUveHNtL3hzbS5oCkBAIC03MzMsNiAr NzMzLDEyIEBAIGV4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyIHhzbV9mbGFza19pbml0X3BvbGlj eVtdOwogZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGludCB4c21fZmxhc2tfaW5pdF9wb2xpY3lfc2l6 ZTsKICNlbmRpZgogCisjaWZkZWYgQ09ORklHX1hTTV9TSUxPCitleHRlcm4gdm9pZCBzaWxvX2lu aXQodm9pZCk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIHNpbG9faW5pdCh2b2lkKSB7fQor I2VuZGlmCisKICNlbHNlIC8qIENPTkZJR19YU00gKi8KIAogI2luY2x1ZGUgPHhzbS9kdW1teS5o PgpkaWZmIC0tZ2l0IGEveGVuL3hzbS9NYWtlZmlsZSBiL3hlbi94c20vTWFrZWZpbGUKaW5kZXgg OGJiNGEyNGYwOS4uZTRkNTgxZTA2NSAxMDA2NDQKLS0tIGEveGVuL3hzbS9NYWtlZmlsZQorKysg Yi94ZW4veHNtL01ha2VmaWxlCkBAIC0xLDUgKzEsNiBAQAogb2JqLXkgKz0geHNtX2NvcmUubwog b2JqLSQoQ09ORklHX1hTTSkgKz0geHNtX3BvbGljeS5vCiBvYmotJChDT05GSUdfWFNNKSArPSBk dW1teS5vCitvYmotJChDT05GSUdfWFNNX1NJTE8pICs9IHNpbG8ubwogCiBzdWJkaXItJChDT05G SUdfWFNNX0ZMQVNLKSArPSBmbGFzawpkaWZmIC0tZ2l0IGEveGVuL3hzbS9zaWxvLmMgYi94ZW4v eHNtL3NpbG8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wMjBiMGM4 ZTk0Ci0tLSAvZGV2L251bGwKKysrIGIveGVuL3hzbS9zaWxvLmMKQEAgLTAsMCArMSwxMjMgQEAK Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKyAqIHhzbS9zaWxvLmMKKyAqCisgKiBTSUxPIG1vZHVs ZSBmb3IgWFNNKFhlbiBTZWN1cml0eSBNb2R1bGVzKQorICoKKyAqIENvcHlyaWdodCAoYykgMjAx OCBDaXRyaXggU3lzdGVtcyBMdGQuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRo ZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Us CisgKiB2ZXJzaW9uIDIsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSBpdCB3 aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKKyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvcgorICogRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvcgorICogbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nIHdpdGgKKyAq IHRoaXMgcHJvZ3JhbTsgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LgorICovCisKKyNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KKyNpbmNsdWRlIDx4c20veHNtLmg+CisK K3N0cnVjdCB4c21fb3BlcmF0aW9ucyBzaWxvX3hzbV9vcHM7CisKK3N0YXRpYyBpbnQgKCpkdW1t eV9ldnRjaG5fdW5ib3VuZCkgKHN0cnVjdCBkb21haW4gKiwgc3RydWN0IGV2dGNobiAqLCBkb21p ZF90KTsKK3N0YXRpYyBpbnQgKCpkdW1teV9ldnRjaG5faW50ZXJkb21haW4pIChzdHJ1Y3QgZG9t YWluICosIHN0cnVjdCBldnRjaG4gKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgZG9tYWluICosIHN0cnVjdCBldnRjaG4gKik7CitzdGF0aWMgaW50ICgq ZHVtbXlfZ3JhbnRfbWFwcmVmKSAoc3RydWN0IGRvbWFpbiAqLCBzdHJ1Y3QgZG9tYWluICosIHVp bnQzMl90KTsKK3N0YXRpYyBpbnQgKCpkdW1teV9ncmFudF90cmFuc2ZlcikgKHN0cnVjdCBkb21h aW4gKiwgc3RydWN0IGRvbWFpbiAqKTsKK3N0YXRpYyBpbnQgKCpkdW1teV9ncmFudF9jb3B5KSAo c3RydWN0IGRvbWFpbiAqLCBzdHJ1Y3QgZG9tYWluICopOworCisvKgorICogQ2hlY2sgaWYgaW50 ZXItZG9tYWluIGNvbW11bmljYXRpb24gaXMgYWxsb3dlZC4KKyAqIFJldHVybiB0cnVlIHdoZW4g cGFzcyBjaGVjay4KKyAqLworc3RhdGljIGJvb2wgc2lsb19tb2RlX2RvbV9jaGVjayhjb25zdCBz dHJ1Y3QgZG9tYWluICpsZG9tLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgZG9tYWluICpyZG9tKQoreworICAgIGNvbnN0IHN0cnVjdCBkb21haW4gKmN1cl9k b20gPSBjdXJyZW50LT5kb21haW47CisKKyAgICByZXR1cm4gKGlzX2NvbnRyb2xfZG9tYWluKGN1 cl9kb20pIHx8IGlzX2NvbnRyb2xfZG9tYWluKGxkb20pIHx8CisgICAgICAgICAgICBpc19jb250 cm9sX2RvbWFpbihyZG9tKSB8fCBsZG9tID09IHJkb20pOworfQorCitzdGF0aWMgaW50IHNpbG9f ZXZ0Y2huX3VuYm91bmQoc3RydWN0IGRvbWFpbiAqZDEsIHN0cnVjdCBldnRjaG4gKmNobiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90IGlkMikKK3sKKyAgICBpbnQgcmMg PSAtRVBFUk07CisgICAgc3RydWN0IGRvbWFpbiAqZDIgPSByY3VfbG9ja19kb21haW5fYnlfYW55 X2lkKGlkMik7CisKKyAgICBpZiAoIGQyID09IE5VTEwgKQorICAgICAgICByYyA9IC1FU1JDSDsK KyAgICBlbHNlCisgICAgeworICAgICAgICBpZiAoIHNpbG9fbW9kZV9kb21fY2hlY2soZDEsIGQy KSApCisgICAgICAgICAgICByYyA9IGR1bW15X2V2dGNobl91bmJvdW5kKGQxLCBjaG4sIGlkMik7 CisgICAgICAgIHJjdV91bmxvY2tfZG9tYWluKGQyKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmM7 Cit9CisKK3N0YXRpYyBpbnQgc2lsb19ldnRjaG5faW50ZXJkb21haW4oc3RydWN0IGRvbWFpbiAq ZDEsIHN0cnVjdCBldnRjaG4gKmNoYW4xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgZG9tYWluICpkMiwgc3RydWN0IGV2dGNobiAqY2hhbjIpCit7CisgICAgaWYg KCBzaWxvX21vZGVfZG9tX2NoZWNrKGQxLCBkMikgKQorICAgICAgICByZXR1cm4gZHVtbXlfZXZ0 Y2huX2ludGVyZG9tYWluKGQxLCBjaGFuMSwgZDIsIGNoYW4yKTsKKyAgICByZXR1cm4gLUVQRVJN OworfQorCitzdGF0aWMgaW50IHNpbG9fZ3JhbnRfbWFwcmVmKHN0cnVjdCBkb21haW4gKmQxLCBz dHJ1Y3QgZG9tYWluICpkMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg ZmxhZ3MpCit7CisgICAgaWYgKCBzaWxvX21vZGVfZG9tX2NoZWNrKGQxLCBkMikgKQorICAgICAg ICByZXR1cm4gZHVtbXlfZ3JhbnRfbWFwcmVmKGQxLCBkMiwgZmxhZ3MpOworICAgIHJldHVybiAt RVBFUk07Cit9CisKK3N0YXRpYyBpbnQgc2lsb19ncmFudF90cmFuc2ZlcihzdHJ1Y3QgZG9tYWlu ICpkMSwgc3RydWN0IGRvbWFpbiAqZDIpCit7CisgICAgaWYgKCBzaWxvX21vZGVfZG9tX2NoZWNr KGQxLCBkMikgKQorICAgICAgICByZXR1cm4gZHVtbXlfZ3JhbnRfdHJhbnNmZXIoZDEsIGQyKTsK KyAgICByZXR1cm4gLUVQRVJNOworfQorCitzdGF0aWMgaW50IHNpbG9fZ3JhbnRfY29weShzdHJ1 Y3QgZG9tYWluICpkMSwgc3RydWN0IGRvbWFpbiAqZDIpCit7CisgICAgaWYgKCBzaWxvX21vZGVf ZG9tX2NoZWNrKGQxLCBkMikgKQorICAgICAgICByZXR1cm4gZHVtbXlfZ3JhbnRfY29weShkMSwg ZDIpOworICAgIHJldHVybiAtRVBFUk07Cit9CisKK3ZvaWQgX19pbml0IHNpbG9faW5pdCh2b2lk KQoreworICAgIHByaW50aygiSW5pdGlhbGlzaW5nIFhTTSBTSUxPIG1vZGVcbiIpOworCisgICAg ZHVtbXlfZXZ0Y2huX3VuYm91bmQgPSBkdW1teV94c21fb3BzLmV2dGNobl91bmJvdW5kOworICAg IGR1bW15X2V2dGNobl9pbnRlcmRvbWFpbiA9IGR1bW15X3hzbV9vcHMuZXZ0Y2huX2ludGVyZG9t YWluOworICAgIGR1bW15X2dyYW50X21hcHJlZiA9IGR1bW15X3hzbV9vcHMuZ3JhbnRfbWFwcmVm OworICAgIGR1bW15X2dyYW50X3RyYW5zZmVyID0gZHVtbXlfeHNtX29wcy5ncmFudF90cmFuc2Zl cjsKKyAgICBkdW1teV9ncmFudF9jb3B5ID0gZHVtbXlfeHNtX29wcy5ncmFudF9jb3B5OworCisg ICAgc2lsb194c21fb3BzID0gZHVtbXlfeHNtX29wczsKKworICAgIHNpbG9feHNtX29wcy5ldnRj aG5fdW5ib3VuZCA9IHNpbG9fZXZ0Y2huX3VuYm91bmQ7CisgICAgc2lsb194c21fb3BzLmV2dGNo bl9pbnRlcmRvbWFpbiA9IHNpbG9fZXZ0Y2huX2ludGVyZG9tYWluOworICAgIHNpbG9feHNtX29w cy5ncmFudF9tYXByZWYgPSBzaWxvX2dyYW50X21hcHJlZjsKKyAgICBzaWxvX3hzbV9vcHMuZ3Jh bnRfdHJhbnNmZXIgPSBzaWxvX2dyYW50X3RyYW5zZmVyOworICAgIHNpbG9feHNtX29wcy5ncmFu dF9jb3B5ID0gc2lsb19ncmFudF9jb3B5OworCisgICAgeHNtX29wcyA9ICZzaWxvX3hzbV9vcHM7 Cit9CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5 bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRl bnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEveGVuL3hzbS94c21f Y29yZS5jIGIveGVuL3hzbS94c21fY29yZS5jCmluZGV4IDY1OGFmNDBjNmUuLjU4NDA5ZWIwYzcg MTAwNjQ0Ci0tLSBhL3hlbi94c20veHNtX2NvcmUuYworKysgYi94ZW4veHNtL3hzbV9jb3JlLmMK QEAgLTM0LDYgKzM0LDcgQEAgc3RydWN0IHhzbV9vcGVyYXRpb25zICp4c21fb3BzOwogZW51bSB4 c21fYm9vdHBhcmFtIHsKICAgICBYU01fQk9PVFBBUkFNX0RVTU1ZLAogICAgIFhTTV9CT09UUEFS QU1fRkxBU0ssCisgICAgWFNNX0JPT1RQQVJBTV9TSUxPLAogfTsKIAogc3RhdGljIGVudW0geHNt X2Jvb3RwYXJhbSBfX2luaXRkYXRhIHhzbV9ib290cGFyYW0gPSBYU01fQk9PVFBBUkFNX0RVTU1Z OwpAQCAtNDcsNiArNDgsMTAgQEAgc3RhdGljIGludCBfX2luaXQgcGFyc2VfeHNtX3BhcmFtKGNv bnN0IGNoYXIgKnMpCiAjaWZkZWYgQ09ORklHX1hTTV9GTEFTSwogICAgIGVsc2UgaWYgKCAhc3Ry Y21wKHMsICJmbGFzayIpICkKICAgICAgICAgeHNtX2Jvb3RwYXJhbSA9IFhTTV9CT09UUEFSQU1f RkxBU0s7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfWFNNX1NJTE8KKyAgICBlbHNlIGlmICggIXN0 cmNtcChzLCAic2lsbyIpICkKKyAgICAgICAgeHNtX2Jvb3RwYXJhbSA9IFhTTV9CT09UUEFSQU1f U0lMTzsKICNlbmRpZgogICAgIGVsc2UgewogICAgICAgICBwcmludGsoIlhTTTogY2FuJ3QgcGFy c2UgYm9vdCBwYXJhbWV0ZXIgeHNtPSVzXG4iLCBzKTsKQEAgLTkzLDYgKzk4LDEwIEBAIHN0YXRp YyBpbnQgX19pbml0IHhzbV9jb3JlX2luaXQoY29uc3Qgdm9pZCAqcG9saWN5X2J1ZmZlciwgc2l6 ZV90IHBvbGljeV9zaXplKQogICAgICAgICBmbGFza19pbml0KHBvbGljeV9idWZmZXIsIHBvbGlj eV9zaXplKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIFhTTV9CT09UUEFSQU1fU0lMTzoK KyAgICAgICAgc2lsb19pbml0KCk7CisgICAgICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAg ICAgICAgcHJpbnRrKCJYU006IEludmFsaWQgdmFsdWUgZm9yIHhzbT0gYm9vdCBwYXJhbWV0ZXJc biIpOwogICAgICAgICBicmVhazsKLS0gCjIuMTguMAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h bi9saXN0aW5mby94ZW4tZGV2ZWw=