From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH] x86/xpti: Hide almost all of .text and all .data/.rodata/.bss mappings Date: Wed, 14 Feb 2018 16:23:12 +0000 Message-ID: <1518625392-1912-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Juergen Gross , Andrew Cooper , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIGN1cnJlbnQgWFBUSSBpbXBsZW1lbnRhdGlvbiBpc29sYXRlcyB0aGUgZGlyZWN0bWFwIChh bmQgdGhlcmVmb3JlIGEgbG90IG9mCmd1ZXN0IGRhdGEpLCBidXQgYSBsYXJnZSBxdWFudGl0eSBv ZiBDUFUwJ3Mgc3RhdGUgKGluY2x1ZGluZyBpdHMgc3RhY2spCnJlbWFpbnMgdmlzaWJsZS4KCkZ1 cnRoZXJtb3JlLCBhbiBhdHRhY2tlciBhYmxlIHRvIHJlYWQgLnRleHQgaXMgaW4gYSB2YXN0bHkg c3VwZXJpb3IgcG9zaXRpb24KdG8gbm9ybWFsIHdoZW4gaXQgY29tZXMgdG8gZmluZ2VycHJpbnRp bmcgWGVuIGZvciBrbm93biB2dWxuZXJhYmlsaXRpZXMsIG9yCnNjYW5uaW5nIGZvciBST1AvU3Bl Y3RyZSBnYWRnZXRzLgoKQ29sbGVjdCB0b2dldGhlciB0aGUgZW50cnlwb2ludHMgaW4gLnRleHQu ZW50cnkgKGN1cnJlbnRseSAzeDRrIGZyYW1lcywgYnV0CmNhbiBhbG1vc3QgY2VydGFpbmx5IGJl IHNsaW1tZWQgZG93biksIGFuZCBjcmVhdGUgYSBjb21tb24gbWFwcGluZyB3aGljaCBpcwppbnNl cnRlZCBpbnRvIGVhY2ggcGVyLWNwdSBzaGFkb3cuICBUaGUgc3R1YnMgYXJlIGFsc28gaW5zZXJ0 ZWQgaW50byB0aGlzCm1hcHBpbmcgYnkgcG9pbnRpbmcgYXQgdGhlIGluLXVzZSBMMi4gIFRoaXMg YWxsb3dzIHN0dWJzIGFsbG9jYXRlZCBsYXRlciAoU01QCmJvb3QsIG9yIENQVSBob3RwbHVnKSB0 byB3b3JrIHdpdGhvdXQgZnVydGhlciBjaGFuZ2VzIHRvIHRoZSBjb21tb24gbWFwcGluZ3MuCgpT aWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgot LS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5s aXUyQGNpdHJpeC5jb20+CkNDOiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+Cgp2MjoK ICogRHJvcCAiaW5jb21wbGV0ZSIgd2FybmluZyBmcm9tIHRoZSBkb2NzLiAgVGhpcyBpcyBhYm91 dCBhcyBjb21wbGV0ZSBhcyBpdAogICBjYW4gcmVhc29uYWJseSBnZXQuCiAqIENvcnJlY3QgQlVJ TERfQlVHX09OKCkgY2FsY3VsYXRpb24sIGR1cGxpY2F0ZSBpbiB0aGUgY29tbW9uX3BndCBjb2Rl CiAqIHNjb3BlL2NvbnN0IGltcHJvdmVtZW50cwogKiBVc2UgLnB1c2gvLnBvcHNlY3Rpb24gaW4g cHJlZmVyZW5jZSB0byAucHJldmlvdXMKICogRXhjbHVkZSB7Y29tcGF0X31jcmVhdGVfYm91bmNl X2ZyYW1lIGZyb20gLnRleHQuZW50cnkKICogRXh0ZW5kIHRoZSBzYW5pdHkgY2hlY2tpbmcgb2Yg bGluZWFyIGluIGNsb25lX21hcHBpbmcoKS4gIFRoZXJlIGlzIGEgbGF0ZW50CiAgIGJ1ZyB3aGVy ZSBhIGJhZCBsaW5lYXIgcGFyYW1ldGVyIHdvdWxkIGNhdXNlIFhlbiB0byBmYWxsIG92ZXIgYSBO VUxMIHBvaW50ZXIuCi0tLQogZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gfCAg MyAtLQogeGVuL2FyY2gveDg2L3NtcGJvb3QuYyAgICAgICAgICAgICAgfCA1NiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tCiB4ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9l bnRyeS5TICB8ICA1ICsrKysKIHhlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUyAgICAgICAgIHwg MTEgKysrKysrLS0KIHhlbi9hcmNoL3g4Ni94ZW4ubGRzLlMgICAgICAgICAgICAgIHwgIDcgKysr KysKIDUgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gYi9kb2NzL21p c2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgppbmRleCA3OWZlYmE2Li44MzE3NjM5IDEwMDY0 NAotLS0gYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgorKysgYi9kb2NzL21p c2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgpAQCAtMTkzNSw5ICsxOTM1LDYgQEAgbW9kZS4K IE92ZXJyaWRlIGRlZmF1bHQgc2VsZWN0aW9uIG9mIHdoZXRoZXIgdG8gaXNvbGF0ZSA2NC1iaXQg UFYgZ3Vlc3QgcGFnZQogdGFibGVzLgogCi0qKiBXQVJOSU5HOiBOb3QgeWV0IGEgY29tcGxldGUg aXNvbGF0aW9uIGltcGxlbWVudGF0aW9uLCBidXQgYmV0dGVyIHRoYW4KLW5vdGhpbmcuICoqCi0K ICMjIyB4c2F2ZQogPiBgPSA8Ym9vbGVhbj5gCiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9z bXBib290LmMgYi94ZW4vYXJjaC94ODYvc21wYm9vdC5jCmluZGV4IDJlYmVmMDMuLjEwYmYyZjMg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zbXBib290LmMKKysrIGIveGVuL2FyY2gveDg2L3Nt cGJvb3QuYwpAQCAtNjIyLDYgKzYyMiw5IEBAIHVuc2lnbmVkIGxvbmcgYWxsb2Nfc3R1Yl9wYWdl KHVuc2lnbmVkIGludCBjcHUsIHVuc2lnbmVkIGxvbmcgKm1mbikKICAgICAgICAgdW5tYXBfZG9t YWluX3BhZ2UobWVtc2V0KF9fbWFwX2RvbWFpbl9wYWdlKHBnKSwgMHhjYywgUEFHRV9TSVpFKSk7 CiAgICAgfQogCisgICAgLyogQ29uZmlybSB0aGF0IGFsbCBzdHVicyBmaXQgaW4gYSBzaW5nbGUg TDIgcGFnZXRhYmxlLiAqLworICAgIEJVSUxEX0JVR19PTihOUl9DUFVTICogUEFHRV9TSVpFID4g KDF1IDw8IEwzX1BBR0VUQUJMRV9TSElGVCkpOworCiAgICAgc3R1Yl92YSA9IFhFTl9WSVJUX0VO RCAtIChjcHUgKyAxKSAqIFBBR0VfU0laRTsKICAgICBpZiAoIG1hcF9wYWdlc190b194ZW4oc3R1 Yl92YSwgbWZuX3gocGFnZV90b19tZm4ocGcpKSwgMSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgUEFHRV9IWVBFUlZJU09SX1JYIHwgTUFQX1NNQUxMX1BBR0VTKSApCkBAIC02NDYsMTMgKzY0 OSwyMyBAQCBzdGF0aWMgaW50IGNsb25lX21hcHBpbmcoY29uc3Qgdm9pZCAqcHRyLCByb290X3Bn ZW50cnlfdCAqcnB0KQogewogICAgIHVuc2lnbmVkIGxvbmcgbGluZWFyID0gKHVuc2lnbmVkIGxv bmcpcHRyLCBwZm47CiAgICAgdW5zaWduZWQgaW50IGZsYWdzOwotICAgIGwzX3BnZW50cnlfdCAq cGwzZSA9IGw0ZV90b19sM2UoaWRsZV9wZ190YWJsZVtyb290X3RhYmxlX29mZnNldChsaW5lYXIp XSkgKwotICAgICAgICAgICAgICAgICAgICAgICAgIGwzX3RhYmxlX29mZnNldChsaW5lYXIpOwor ICAgIGwzX3BnZW50cnlfdCAqcGwzZTsKICAgICBsMl9wZ2VudHJ5X3QgKnBsMmU7CiAgICAgbDFf cGdlbnRyeV90ICpwbDFlOwogCi0gICAgaWYgKCBsaW5lYXIgPCBESVJFQ1RNQVBfVklSVF9TVEFS VCApCi0gICAgICAgIHJldHVybiAwOworICAgIC8qCisgICAgICogU2FuaXR5IGNoZWNrICdsaW5l YXInLiAgV2Ugb25seSBhbGxvdyBjbG9uaW5nIGZyb20gdGhlIFhlbiB2aXJ0dWFsCisgICAgICog cmFuZ2UsIGFuZCBpbiBwYXJ0aWN1bGFyLCBvbmx5IGZyb20gdGhlIGRpcmVjdG1hcCBhbmQgLnRl eHQgcmFuZ2VzLgorICAgICAqLworICAgIGlmICggcm9vdF90YWJsZV9vZmZzZXQobGluZWFyKSA+ IFJPT1RfUEFHRVRBQkxFX0xBU1RfWEVOX1NMT1QgfHwKKyAgICAgICAgIHJvb3RfdGFibGVfb2Zm c2V0KGxpbmVhcikgPCBST09UX1BBR0VUQUJMRV9GSVJTVF9YRU5fU0xPVCApCisgICAgICAgIHJl dHVybiAtRUlOVkFMOworICAgIGlmICggIShsaW5lYXIgPj0gRElSRUNUTUFQX1ZJUlRfU1RBUlQg fHwKKyAgICAgICAgICAgKGxpbmVhciA+PSBYRU5fVklSVF9TVEFSVCAmJiBsaW5lYXIgPCBYRU5f VklSVF9FTkQpKSApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgcGwzZSA9IGw0ZV90 b19sM2UoaWRsZV9wZ190YWJsZVtyb290X3RhYmxlX29mZnNldChsaW5lYXIpXSkgKworICAgICAg ICBsM190YWJsZV9vZmZzZXQobGluZWFyKTsKIAogICAgIGZsYWdzID0gbDNlX2dldF9mbGFncygq cGwzZSk7CiAgICAgQVNTRVJUKGZsYWdzICYgX1BBR0VfUFJFU0VOVCk7CkBAIC03NDQsOCArNzU3 LDEyIEBAIHN0YXRpYyBfX3JlYWRfbW9zdGx5IGludDhfdCBvcHRfeHB0aSA9IC0xOwogYm9vbGVh bl9wYXJhbSgieHB0aSIsIG9wdF94cHRpKTsKIERFRklORV9QRVJfQ1BVKHJvb3RfcGdlbnRyeV90 ICosIHJvb3RfcGd0KTsKIAorZXh0ZXJuIGNvbnN0IGNoYXIgX3N0ZXh0ZW50cnlbXSwgX2V0ZXh0 ZW50cnlbXTsKKwogc3RhdGljIGludCBzZXR1cF9jcHVfcm9vdF9wZ3QodW5zaWduZWQgaW50IGNw dSkKIHsKKyAgICBzdGF0aWMgcm9vdF9wZ2VudHJ5X3QgY29tbW9uX3BndDsKKwogICAgIHJvb3Rf cGdlbnRyeV90ICpycHQ7CiAgICAgdW5zaWduZWQgaW50IG9mZjsKICAgICBpbnQgcmM7CkBAIC03 NjQsOCArNzgxLDM1IEBAIHN0YXRpYyBpbnQgc2V0dXBfY3B1X3Jvb3RfcGd0KHVuc2lnbmVkIGlu dCBjcHUpCiAgICAgICAgIGlkbGVfcGdfdGFibGVbcm9vdF90YWJsZV9vZmZzZXQoUk9fTVBUX1ZJ UlRfU1RBUlQpXTsKICAgICAvKiBTSF9MSU5FQVJfUFQgaW5zZXJ0ZWQgdG9nZXRoZXIgd2l0aCBn dWVzdCBtYXBwaW5ncy4gKi8KICAgICAvKiBQRVJET01BSU4gaW5zZXJ0ZWQgZHVyaW5nIGNvbnRl eHQgc3dpdGNoLiAqLwotICAgIHJwdFtyb290X3RhYmxlX29mZnNldChYRU5fVklSVF9TVEFSVCld ID0KLSAgICAgICAgaWRsZV9wZ190YWJsZVtyb290X3RhYmxlX29mZnNldChYRU5fVklSVF9TVEFS VCldOworCisgICAgLyogT25lLXRpbWUgc2V0dXAgb2YgY29tbW9uX3BndCwgd2hpY2ggbWFwcyAu dGV4dC5lbnRyeSBhbmQgdGhlIHN0dWJzLiAqLworICAgIGlmICggdW5saWtlbHkoIXJvb3RfZ2V0 X2ludHB0ZShjb21tb25fcGd0KSkgKQorICAgIHsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBzdHVi c19saW5lYXIgPSBYRU5fVklSVF9FTkQgLSAxOworICAgICAgICBsM19wZ2VudHJ5X3QgKnN0dWJz X21haW4sICpzdHVic19zaGFkb3c7CisgICAgICAgIGNvbnN0IGNoYXIgKnB0cjsKKworICAgICAg ICBmb3IgKCByYyA9IDAsIHB0ciA9IF9zdGV4dGVudHJ5OworICAgICAgICAgICAgICAhcmMgJiYg cHRyIDwgX2V0ZXh0ZW50cnk7IHB0ciArPSBQQUdFX1NJWkUgKQorICAgICAgICAgICAgcmMgPSBj bG9uZV9tYXBwaW5nKHB0ciwgcnB0KTsKKworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAg IHJldHVybiByYzsKKworICAgICAgICAvKiBDb25maXJtIHRoYXQgYWxsIHN0dWJzIGZpdCBpbiBh IHNpbmdsZSBMMiBwYWdldGFibGUuICovCisgICAgICAgIEJVSUxEX0JVR19PTihOUl9DUFVTICog UEFHRV9TSVpFID4gKDF1IDw8IEwzX1BBR0VUQUJMRV9TSElGVCkpOworCisgICAgICAgIHN0dWJz X21haW4gPSBsNGVfdG9fbDNlKGlkbGVfcGdfdGFibGVbbDRfdGFibGVfb2Zmc2V0KHN0dWJzX2xp bmVhcildKTsKKyAgICAgICAgc3R1YnNfc2hhZG93ID0gbDRlX3RvX2wzZShycHRbbDRfdGFibGVf b2Zmc2V0KHN0dWJzX2xpbmVhcildKTsKKworICAgICAgICAvKiBTcGxpY2UgaW50byB0aGUgcmVn dWxhciBMMiBtYXBwaW5nIHRoZSBzdHVicy4gKi8KKyAgICAgICAgc3R1YnNfc2hhZG93W2wzX3Rh YmxlX29mZnNldChzdHVic19saW5lYXIpXSA9CisgICAgICAgICAgICBzdHVic19tYWluW2wzX3Rh YmxlX29mZnNldChzdHVic19saW5lYXIpXTsKKworICAgICAgICBjb21tb25fcGd0ID0gcnB0W3Jv b3RfdGFibGVfb2Zmc2V0KFhFTl9WSVJUX1NUQVJUKV07CisgICAgfQorCisgICAgcnB0W3Jvb3Rf dGFibGVfb2Zmc2V0KFhFTl9WSVJUX1NUQVJUKV0gPSBjb21tb25fcGd0OwogCiAgICAgLyogSW5z dGFsbCBkaXJlY3QgbWFwIHBhZ2UgdGFibGUgZW50cmllcyBmb3Igc3RhY2ssIElEVCwgYW5kIFRT Uy4gKi8KICAgICBmb3IgKCBvZmYgPSByYyA9IDA7ICFyYyAmJiBvZmYgPCBTVEFDS19TSVpFOyBv ZmYgKz0gUEFHRV9TSVpFICkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0 L2VudHJ5LlMgYi94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9lbnRyeS5TCmluZGV4IDcwN2M3 NDYuLjQ1OGQ4MTAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5 LlMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQvZW50cnkuUwpAQCAtMTMsNiArMTMs OCBAQAogI2luY2x1ZGUgPHB1YmxpYy94ZW4uaD4KICNpbmNsdWRlIDxpcnFfdmVjdG9ycy5oPgog CisgICAgICAgIC5zZWN0aW9uIC50ZXh0LmVudHJ5LCAiYXgiLCBAcHJvZ2JpdHMKKwogRU5UUlko ZW50cnlfaW50ODIpCiAgICAgICAgIEFTTV9DTEFDCiAgICAgICAgIHB1c2hxICQwCkBAIC0yNzAs NiArMjcyLDkgQEAgRU5UUlkoY29tcGF0X2ludDgwX2RpcmVjdF90cmFwKQogICAgICAgICBjYWxs ICBjb21wYXRfY3JlYXRlX2JvdW5jZV9mcmFtZQogICAgICAgICBqbXAgICBjb21wYXRfdGVzdF9h bGxfZXZlbnRzCiAKKyAgICAgICAgLyogY29tcGF0X2NyZWF0ZV9ib3VuY2VfZnJhbWUgJiBoZWxw ZXJzIGRvbid0IG5lZWQgdG8gYmUgaW4gLnRleHQuZW50cnkgKi8KKyAgICAgICAgLnRleHQKKwog LyogQ1JFQVRFIEEgQkFTSUMgRVhDRVBUSU9OIEZSQU1FIE9OIEdVRVNUIE9TIChSSU5HLTEpIFNU QUNLOiAgICAgICAgICAgICovCiAvKiAgIHtbRVJSQ09ERSxdIEVJUCwgQ1MsIEVGTEFHUywgW0VT UCwgU1NdfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qICVyZHg6IHRyYXBfYm91 bmNlLCAlcmJ4OiBzdHJ1Y3QgdmNwdSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq LwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TIGIveGVuL2FyY2gveDg2 L3g4Nl82NC9lbnRyeS5TCmluZGV4IDU4ZjY1MmQuLjk0MWYwNmYgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni94ODZfNjQvZW50cnkuUworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMK QEAgLTE0LDYgKzE0LDggQEAKICNpbmNsdWRlIDxwdWJsaWMveGVuLmg+CiAjaW5jbHVkZSA8aXJx X3ZlY3RvcnMuaD4KIAorICAgICAgICAuc2VjdGlvbiAudGV4dC5lbnRyeSwgImF4IiwgQHByb2di aXRzCisKIC8qICVyYng6IHN0cnVjdCB2Y3B1ICovCiBFTlRSWShzd2l0Y2hfdG9fa2VybmVsKQog ICAgICAgICBsZWFxICBWQ1BVX3RyYXBfYm91bmNlKCVyYngpLCVyZHgKQEAgLTM1Nyw2ICszNTks OSBAQCBpbnQ4MF9zbG93X3BhdGg6CiAgICAgICAgIHN1YnEgICQyLFVSRUdTX3JpcCglcnNwKQog ICAgICAgICBqbXAgICBoYW5kbGVfZXhjZXB0aW9uX3NhdmVkCiAKKyAgICAgICAgLyogY3JlYXRl X2JvdW5jZV9mcmFtZSAmIGhlbHBlcnMgZG9uJ3QgbmVlZCB0byBiZSBpbiAudGV4dC5lbnRyeSAq LworICAgICAgICAudGV4dAorCiAvKiBDUkVBVEUgQSBCQVNJQyBFWENFUFRJT04gRlJBTUUgT04g R1VFU1QgT1MgU1RBQ0s6ICAgICAgICAgICAgICAgICAgICAgKi8KIC8qICAgeyBSQ1gsIFIxMSwg W0VSUkNPREUsXSBSSVAsIENTLCBSRkxBR1MsIFJTUCwgU1MgfSAgICAgICAgICAgICAgICAgICAq LwogLyogJXJkeDogdHJhcF9ib3VuY2UsICVyYng6IHN0cnVjdCB2Y3B1ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICovCkBAIC00ODcsNiArNDkyLDggQEAgRU5UUlkoZG9tX2NyYXNo X3N5bmNfZXh0YWJsZSkKICAgICAgICAgam1wICAgYXNtX2RvbWFpbl9jcmFzaF9zeW5jaHJvbm91 cyAvKiBEb2VzIG5vdCByZXR1cm4gKi8KICAgICAgICAgLnBvcHNlY3Rpb24KIAorICAgICAgICAu c2VjdGlvbiAudGV4dC5lbnRyeSwgImF4IiwgQHByb2diaXRzCisKIEVOVFJZKGNvbW1vbl9pbnRl cnJ1cHQpCiAgICAgICAgIFNBVkVfQUxMIENMQUMKIApAQCAtODQ1LDcgKzg1Miw3IEBAIEdMT0JB TCh0cmFwX25vcCkKICAgICAgICAgaXJldHEKIAogLyogVGFibGUgb2YgYXV0b21hdGljYWxseSBn ZW5lcmF0ZWQgZW50cnkgcG9pbnRzLiAgT25lIHBlciB2ZWN0b3IuICovCi0gICAgICAgIC5zZWN0 aW9uIC5pbml0LnJvZGF0YSwgImEiLCBAcHJvZ2JpdHMKKyAgICAgICAgLnB1c2hzZWN0aW9uIC5p bml0LnJvZGF0YSwgImEiLCBAcHJvZ2JpdHMKIEdMT0JBTChhdXRvZ2VuX2VudHJ5cG9pbnRzKQog ICAgICAgICAvKiBwb3AgaW50byB0aGUgLmluaXQucm9kYXRhIHNlY3Rpb24gYW5kIHJlY29yZCBh biBlbnRyeSBwb2ludC4gKi8KICAgICAgICAgLm1hY3JvIGVudHJ5cG9pbnQgZW50CkBAIC04NTQs NyArODYxLDcgQEAgR0xPQkFMKGF1dG9nZW5fZW50cnlwb2ludHMpCiAgICAgICAgIC5wb3BzZWN0 aW9uCiAgICAgICAgIC5lbmRtCiAKLSAgICAgICAgLnRleHQKKyAgICAgICAgLnBvcHNlY3Rpb24K IGF1dG9nZW5fc3R1YnM6IC8qIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIHN0dWJzLiAqLwogCiAg ICAgICAgIHZlYyA9IDAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMgYi94ZW4v YXJjaC94ODYveGVuLmxkcy5TCmluZGV4IDA5NTI5ODAuLjI1YzZjYmMgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni94ZW4ubGRzLlMKKysrIGIveGVuL2FyY2gveDg2L3hlbi5sZHMuUwpAQCAtNjcs NiArNjcsMTMgQEAgU0VDVElPTlMKICAgICAgICAqKC50ZXh0KQogICAgICAgICooLnRleHQuX194 ODZfaW5kaXJlY3RfdGh1bmtfKikKICAgICAgICAqKC50ZXh0LnBhZ2VfYWxpZ25lZCkKKworICAg ICAgIC4gPSBBTElHTihQQUdFX1NJWkUpOworICAgICAgIF9zdGV4dGVudHJ5ID0gLjsKKyAgICAg ICAqKC50ZXh0LmVudHJ5KQorICAgICAgIC4gPSBBTElHTihQQUdFX1NJWkUpOworICAgICAgIF9l dGV4dGVudHJ5ID0gLjsKKwogICAgICAgICooLnRleHQuY29sZCkKICAgICAgICAqKC50ZXh0LnVu bGlrZWx5KQogICAgICAgICooLmZpeHVwKQotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h aWxtYW4vbGlzdGluZm8veGVuLWRldmVs