From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH] x86/debug: Avoid crashing in early boot because of debugger_trap_entry() Date: Wed, 3 Aug 2016 18:08:05 +0100 Message-ID: <1470244085-1389-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.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Jan Beulich List-Id: xen-devel@lists.xenproject.org ZGVidWdnZXJfdHJhcF9lbnRyeSgpIGlzIG5vdCBzYWZlIHRvIHVzZSBkdXJpbmcgZWFybHkgYm9v dCwgYXMgaXQgZm9sbG93cwpjdXJyZW50IGJlZm9yZSBpdCBpcyBuZWNlc3NlcmlseSBzYWZlIHRv IGRvIHNvLiAgRnV0aGVybW9yZSBpdCBkb2VzIHRoaXMKdW5jb25kaXRpb25hbGx5LCBkZXNwaXRl IG1vc3QgY2FsbHNpdGVzIHR1cm5pbmcgaW50byBuby1vcHMgYmVjYXVzZSBvZiB0aGUKdmVjdG9y IHRlc3QuCgpJbmxpbmUgZGVidWdnZXJfdHJhcF9lbnRyeSgpIGludG8gdGhlIHR3byBjYWxsZXJz IHdoZXJlIGRvZXNuJ3QgYmVjb21lIGEKbm8tb3AsIGFuZCByZXBvc2l0aW9uIHRoZSBndWVzdF9r ZXJuZWxfbW9kZSgpIHRlc3QgdG8gYmUgYWZ0ZXIgdGhlCmd1ZXN0X21vZGUoKSB0ZXN0LCBhdm9p ZGluZyB0aGUgcmVmZXJlbmNlIHRvIGN1cnJlbnQgaWYgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkCmZy b20gaHlwZXJ2aXNvciBjb250ZXh0LiAgVGhpcyBtYWtlcyB0aGUgZXhjZXB0aW9uIGhhbmRsZXJz IHNhZmUgaW4gZWFybHkKYm9vdC4gIFRoZSByZXBvc2l0aW9uaW5nIGFsc28gaGFzIGJ1Z2ZpeCBp biB0aGUgVFJBUF9kZWJ1ZyBjYXNlLCB3aGVyZSBkcjYKd2lsbCBiZSBjb3JyZWN0IGluIHRoZSBk ZWJ1Z2dlcnMgdmlldyBvZiBzdGF0ZS4KClRoaXMgY2F1c2VzIHRoZSBkZWxldGlvbiBvZiBERUJV R0dFUl90cmFwX2VudHJ5KCksIHdoaWNoIGlzIGEgZ29vZCB0aGluZyBhcwpoaWRpbmcgYSByZXR1 cm4gc3RhdGVtZW50IGluIGEgZnVuY3Rpb24tbGlrZSBtYWNybyBpcyB2ZXJ5IGFudGlzb2NpYWwK cHJvZ3JhbW1pbmcuCgpXaGlsZSBjbGVhbmluZyB0aGlzIGFyZWEgdXAsIGRyb3AgdGhlIERFQlVH R0VSX3RyYXBfZmF0YWwoKSB3cmFwcGVyIGFzIHdlbGwsCm1ha2luZyB0aGUgY29kZSBmbG93IG1v cmUgYXBwYXJlbnQsIGFuZCBzd2l0Y2ggZGVidWdnZXJfdHJhcF9mYXRhbCgpJ3MgcmV0dXJuCnR5 cGUgdG8gYm9vbGVhbiB0byBtYXRjaCBpdHMgc2VtYW50aWNzLgoKU2lnbmVkLW9mZi1ieTogQW5k cmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGlj aCA8SkJldWxpY2hAc3VzZS5jb20+Ci0tLQogeGVuL2FyY2gveDg2L3RyYXBzLmMgICAgICAgICAg IHwgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5j bHVkZS9hc20teDg2L2RlYnVnZ2VyLmggfCAyOSArKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMiBm aWxlcyBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCmluZGV4IDc2 N2QwYjAuLjkzMzQzNWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jCisrKyBiL3hl bi9hcmNoL3g4Ni90cmFwcy5jCkBAIC03MzYsNyArNzM2LDkgQEAgdm9pZCBkb19yZXNlcnZlZF90 cmFwKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogewogICAgIHVuc2lnbmVkIGludCB0cmFw bnIgPSByZWdzLT5lbnRyeV92ZWN0b3I7CiAKLSAgICBERUJVR0dFUl90cmFwX2ZhdGFsKHRyYXBu ciwgcmVncyk7CisgICAgaWYgKCBkZWJ1Z2dlcl90cmFwX2ZhdGFsKHRyYXBuciwgcmVncykgKQor ICAgICAgICByZXR1cm47CisKICAgICBzaG93X2V4ZWN1dGlvbl9zdGF0ZShyZWdzKTsKICAgICBw YW5pYygiRkFUQUwgUkVTRVJWRUQgVFJBUCAlI3g6ICVzIiwgdHJhcG5yLCB0cmFwc3RyKHRyYXBu cikpOwogfQpAQCAtNzUwLDggKzc1Miw2IEBAIHN0YXRpYyB2b2lkIGRvX3RyYXAoc3RydWN0IGNw dV91c2VyX3JlZ3MgKnJlZ3MsIGludCB1c2VfZXJyb3JfY29kZSkKICAgICBpZiAoIHJlZ3MtPmVy cm9yX2NvZGUgJiBYODZfWEVDX0VYVCApCiAgICAgICAgIGdvdG8gaGFyZHdhcmVfdHJhcDsKIAot ICAgIERFQlVHR0VSX3RyYXBfZW50cnkodHJhcG5yLCByZWdzKTsKLQogICAgIGlmICggZ3Vlc3Rf bW9kZShyZWdzKSApCiAgICAgewogICAgICAgICBkb19ndWVzdF90cmFwKHRyYXBuciwgcmVncywg dXNlX2Vycm9yX2NvZGUpOwpAQCAtNzc3LDcgKzc3Nyw4IEBAIHN0YXRpYyB2b2lkIGRvX3RyYXAo c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGludCB1c2VfZXJyb3JfY29kZSkKICAgICB9CiAK ICBoYXJkd2FyZV90cmFwOgotICAgIERFQlVHR0VSX3RyYXBfZmF0YWwodHJhcG5yLCByZWdzKTsK KyAgICBpZiAoIGRlYnVnZ2VyX3RyYXBfZmF0YWwodHJhcG5yLCByZWdzKSApCisgICAgICAgIHJl dHVybjsKIAogICAgIHNob3dfZXhlY3V0aW9uX3N0YXRlKHJlZ3MpOwogICAgIHBhbmljKCJGQVRB TCBUUkFQOiB2ZWN0b3IgPSAlZCAoJXMpXG4iCkBAIC0xMzA3LDggKzEzMDgsNiBAQCB2b2lkIGRv X2ludmFsaWRfb3Aoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgaW50IGlkID0gLTEs IGxpbmVubzsKICAgICBjb25zdCBzdHJ1Y3QgdmlydHVhbF9yZWdpb24gKnJlZ2lvbjsKIAotICAg IERFQlVHR0VSX3RyYXBfZW50cnkoVFJBUF9pbnZhbGlkX29wLCByZWdzKTsKLQogICAgIGlmICgg bGlrZWx5KGd1ZXN0X21vZGUocmVncykpICkKICAgICB7CiAgICAgICAgIGlmICggIWVtdWxhdGVf aW52YWxpZF9yZHRzY3AocmVncykgJiYKQEAgLTEzNzcsNyArMTM3NiwxMCBAQCB2b2lkIGRvX2lu dmFsaWRfb3Aoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAKICAgICBjYXNlIEJVR0ZSQU1F X2J1ZzoKICAgICAgICAgcHJpbnRrKCJYZW4gQlVHIGF0ICVzJXM6JWRcbiIsIHByZWZpeCwgZmls ZW5hbWUsIGxpbmVubyk7Ci0gICAgICAgIERFQlVHR0VSX3RyYXBfZmF0YWwoVFJBUF9pbnZhbGlk X29wLCByZWdzKTsKKworICAgICAgICBpZiAoIGRlYnVnZ2VyX3RyYXBfZmF0YWwoVFJBUF9pbnZh bGlkX29wLCByZWdzKSApCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgc2hvd19leGVj dXRpb25fc3RhdGUocmVncyk7CiAgICAgICAgIHBhbmljKCJYZW4gQlVHIGF0ICVzJXM6JWQiLCBw cmVmaXgsIGZpbGVuYW1lLCBsaW5lbm8pOwogCkBAIC0xMzg5LDcgKzEzOTEsMTAgQEAgdm9pZCBk b19pbnZhbGlkX29wKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogCiAgICAgICAgIHByaW50 aygiQXNzZXJ0aW9uICclcycgZmFpbGVkIGF0ICVzJXM6JWRcbiIsCiAgICAgICAgICAgICAgICBw cmVkaWNhdGUsIHByZWZpeCwgZmlsZW5hbWUsIGxpbmVubyk7Ci0gICAgICAgIERFQlVHR0VSX3Ry YXBfZmF0YWwoVFJBUF9pbnZhbGlkX29wLCByZWdzKTsKKworICAgICAgICBpZiAoIGRlYnVnZ2Vy X3RyYXBfZmF0YWwoVFJBUF9pbnZhbGlkX29wLCByZWdzKSApCisgICAgICAgICAgICByZXR1cm47 CisKICAgICAgICAgc2hvd19leGVjdXRpb25fc3RhdGUocmVncyk7CiAgICAgICAgIHBhbmljKCJB c3NlcnRpb24gJyVzJyBmYWlsZWQgYXQgJXMlczolZCIsCiAgICAgICAgICAgICAgIHByZWRpY2F0 ZSwgcHJlZml4LCBmaWxlbmFtZSwgbGluZW5vKTsKQEAgLTE0MDIsMTQgKzE0MDcsMTcgQEAgdm9p ZCBkb19pbnZhbGlkX29wKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICByZWdz LT5laXAgPSBmaXh1cDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBERUJVR0dFUl90cmFw X2ZhdGFsKFRSQVBfaW52YWxpZF9vcCwgcmVncyk7CisKKyAgICBpZiAoIGRlYnVnZ2VyX3RyYXBf ZmF0YWwoVFJBUF9pbnZhbGlkX29wLCByZWdzKSApCisgICAgICAgIHJldHVybjsKKwogICAgIHNo b3dfZXhlY3V0aW9uX3N0YXRlKHJlZ3MpOwogICAgIHBhbmljKCJGQVRBTCBUUkFQOiB2ZWN0b3Ig PSAlZCAoaW52YWxpZCBvcGNvZGUpIiwgVFJBUF9pbnZhbGlkX29wKTsKIH0KIAogdm9pZCBkb19p bnQzKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogewotICAgIERFQlVHR0VSX3RyYXBfZW50 cnkoVFJBUF9pbnQzLCByZWdzKTsKKyAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7CiAK ICAgICBpZiAoICFndWVzdF9tb2RlKHJlZ3MpICkKICAgICB7CkBAIC0xNDE3LDYgKzE0MjUsMTMg QEAgdm9pZCBkb19pbnQzKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICByZXR1 cm47CiAgICAgfSAKIAorICAgIGlmICggZ3Vlc3Rfa2VybmVsX21vZGUoY3VyciwgcmVncykgJiYg Y3Vyci0+ZG9tYWluLT5kZWJ1Z2dlcl9hdHRhY2hlZCApCisgICAgeworICAgICAgICBjdXJyLT5h cmNoLmdkYnN4X3ZjcHVfZXZlbnQgPSBUUkFQX2ludDM7CisgICAgICAgIGRvbWFpbl9wYXVzZV9m b3JfZGVidWdnZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGRvX2d1ZXN0X3Ry YXAoVFJBUF9pbnQzLCByZWdzLCAwKTsKIH0KIApAQCAtMTc0NCw4ICsxNzU5LDYgQEAgdm9pZCBk b19wYWdlX2ZhdWx0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIC8qIGZpeHVwX3Bh Z2VfZmF1bHQoKSBtaWdodCBjaGFuZ2UgcmVncy0+ZXJyb3JfY29kZSwgc28gY2FjaGUgaXQgaGVy ZS4gKi8KICAgICBlcnJvcl9jb2RlID0gcmVncy0+ZXJyb3JfY29kZTsKIAotICAgIERFQlVHR0VS X3RyYXBfZW50cnkoVFJBUF9wYWdlX2ZhdWx0LCByZWdzKTsKLQogICAgIHBlcmZjX2luY3IocGFn ZV9mYXVsdHMpOwogCiAgICAgaWYgKCB1bmxpa2VseShmaXh1cF9wYWdlX2ZhdWx0KGFkZHIsIHJl Z3MpICE9IDApICkKQEAgLTE3NzQsNyArMTc4Nyw4IEBAIHZvaWQgZG9fcGFnZV9mYXVsdChzdHJ1 Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog Ci0gICAgICAgIERFQlVHR0VSX3RyYXBfZmF0YWwoVFJBUF9wYWdlX2ZhdWx0LCByZWdzKTsKKyAg ICAgICAgaWYgKCBkZWJ1Z2dlcl90cmFwX2ZhdGFsKFRSQVBfcGFnZV9mYXVsdCwgcmVncykgKQor ICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHNob3dfZXhlY3V0aW9uX3N0YXRlKHJlZ3Mp OwogICAgICAgICBzaG93X3BhZ2Vfd2FsayhhZGRyKTsKQEAgLTM0NzEsOCArMzQ4NSw2IEBAIHZv aWQgZG9fZ2VuZXJhbF9wcm90ZWN0aW9uKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAg IHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsKICAgICB1bnNpZ25lZCBsb25nIGZpeHVwOwogCi0g ICAgREVCVUdHRVJfdHJhcF9lbnRyeShUUkFQX2dwX2ZhdWx0LCByZWdzKTsKLQogICAgIGlmICgg cmVncy0+ZXJyb3JfY29kZSAmIFg4Nl9YRUNfRVhUICkKICAgICAgICAgZ290byBoYXJkd2FyZV9n cDsKIApAQCAtMzU0Myw3ICszNTU1LDggQEAgdm9pZCBkb19nZW5lcmFsX3Byb3RlY3Rpb24oc3Ry dWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgfQogCiAgaGFyZHdhcmVfZ3A6Ci0gICAgREVC VUdHRVJfdHJhcF9mYXRhbChUUkFQX2dwX2ZhdWx0LCByZWdzKTsKKyAgICBpZiAoIGRlYnVnZ2Vy X3RyYXBfZmF0YWwoVFJBUF9ncF9mYXVsdCwgcmVncykgKQorICAgICAgICByZXR1cm47CiAKICAg ICBzaG93X2V4ZWN1dGlvbl9zdGF0ZShyZWdzKTsKICAgICBwYW5pYygiR0VORVJBTCBQUk9URUNU SU9OIEZBVUxUXG5bZXJyb3JfY29kZT0lMDR4XSIsIHJlZ3MtPmVycm9yX2NvZGUpOwpAQCAtMzc3 OCw4ICszNzkxLDYgQEAgdm9pZCBkb19kZWJ1ZyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykK IHsKICAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7CiAKLSAgICBERUJVR0dFUl90cmFwX2Vu dHJ5KFRSQVBfZGVidWcsIHJlZ3MpOwotCiAgICAgaWYgKCAhZ3Vlc3RfbW9kZShyZWdzKSApCiAg ICAgewogICAgICAgICBpZiAoIHJlZ3MtPmVmbGFncyAmIFg4Nl9FRkxBR1NfVEYgKQpAQCAtMzgx NCw2ICszODI1LDEzIEBAIHZvaWQgZG9fZGVidWcoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3Mp CiAgICAgLyogU2F2ZSBkZWJ1ZyBzdGF0dXMgcmVnaXN0ZXIgd2hlcmUgZ3Vlc3QgT1MgY2FuIHBl ZWsgYXQgaXQgKi8KICAgICB2LT5hcmNoLmRlYnVncmVnWzZdID0gcmVhZF9kZWJ1Z3JlZyg2KTsK IAorICAgIGlmICggZ3Vlc3Rfa2VybmVsX21vZGUodiwgcmVncykgJiYgdi0+ZG9tYWluLT5kZWJ1 Z2dlcl9hdHRhY2hlZCApCisgICAgeworICAgICAgICB2LT5hcmNoLmdkYnN4X3ZjcHVfZXZlbnQg PSBUUkFQX2RlYnVnOworICAgICAgICBkb21haW5fcGF1c2VfZm9yX2RlYnVnZ2VyKCk7CisgICAg ICAgIHJldHVybjsKKyAgICB9CisKICAgICBsZXJfZW5hYmxlKCk7CiAgICAgZG9fZ3Vlc3RfdHJh cChUUkFQX2RlYnVnLCByZWdzLCAwKTsKICAgICByZXR1cm47CmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20teDg2L2RlYnVnZ2VyLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2RlYnVnZ2VyLmgK aW5kZXggMjcxY2JhYS4uMGY5NWZlOSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9k ZWJ1Z2dlci5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZGVidWdnZXIuaApAQCAtMzMsMTcg KzMzLDExIEBACiAjaW5jbHVkZSA8YXNtL3JlZ3MuaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29y Lmg+CiAKLS8qIFRoZSBtYWluIHRyYXAgaGFuZGxlcnMgdXNlIHRoZXNlIGhlbHBlciBtYWNyb3Mg d2hpY2ggaW5jbHVkZSBlYXJseSBiYWlsLiAqLwotI2RlZmluZSBERUJVR0dFUl90cmFwX2VudHJ5 KF92LCBfcikgXAotICAgIGlmICggZGVidWdnZXJfdHJhcF9lbnRyeShfdiwgX3IpICkgcmV0dXJu OwotI2RlZmluZSBERUJVR0dFUl90cmFwX2ZhdGFsKF92LCBfcikgXAotICAgIGlmICggZGVidWdn ZXJfdHJhcF9mYXRhbChfdiwgX3IpICkgcmV0dXJuOwotCiAjaWZkZWYgQ09ORklHX0NSQVNIX0RF QlVHCiAKICNpbmNsdWRlIDx4ZW4vZ2Ric3R1Yi5oPgogCi1zdGF0aWMgaW5saW5lIGludCBkZWJ1 Z2dlcl90cmFwX2ZhdGFsKAorc3RhdGljIGlubGluZSBib29sIGRlYnVnZ2VyX3RyYXBfZmF0YWwo CiAgICAgdW5zaWduZWQgaW50IHZlY3Rvciwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiB7 CiAgICAgaW50IHJjID0gX190cmFwX3RvX2dkYihyZWdzLCB2ZWN0b3IpOwpAQCAtNTUsMzMgKzQ5 LDE2IEBAIHN0YXRpYyBpbmxpbmUgaW50IGRlYnVnZ2VyX3RyYXBfZmF0YWwoCiAKICNlbHNlCiAK LXN0YXRpYyBpbmxpbmUgaW50IGRlYnVnZ2VyX3RyYXBfZmF0YWwoCitzdGF0aWMgaW5saW5lIGJv b2wgZGVidWdnZXJfdHJhcF9mYXRhbCgKICAgICB1bnNpZ25lZCBpbnQgdmVjdG9yLCBzdHJ1Y3Qg Y3B1X3VzZXJfcmVncyAqcmVncykKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gZmFsc2U7 CiB9CiAKICNkZWZpbmUgZGVidWdnZXJfdHJhcF9pbW1lZGlhdGUoKSAoKHZvaWQpMCkKIAogI2Vu ZGlmCiAKLXN0YXRpYyBpbmxpbmUgaW50IGRlYnVnZ2VyX3RyYXBfZW50cnkoCi0gICAgdW5zaWdu ZWQgaW50IHZlY3Rvciwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCi17Ci0gICAgc3RydWN0 IHZjcHUgKnYgPSBjdXJyZW50OwotCi0gICAgaWYgKCBndWVzdF9rZXJuZWxfbW9kZSh2LCByZWdz KSAmJiB2LT5kb21haW4tPmRlYnVnZ2VyX2F0dGFjaGVkICYmCi0gICAgICAgICAoKHZlY3RvciA9 PSBUUkFQX2ludDMpIHx8ICh2ZWN0b3IgPT0gVFJBUF9kZWJ1ZykpICkKLSAgICB7Ci0gICAgICAg IGlmICggdmVjdG9yICE9IFRSQVBfZGVidWcgKSAvKiBkb21haW4gcGF1c2UgaXMgZ29vZCBlbm91 Z2ggKi8KLSAgICAgICAgICAgIGN1cnJlbnQtPmFyY2guZ2Ric3hfdmNwdV9ldmVudCA9IHZlY3Rv cjsKLSAgICAgICAgZG9tYWluX3BhdXNlX2Zvcl9kZWJ1Z2dlcigpOwotICAgICAgICByZXR1cm4g MTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQogdW5zaWduZWQgaW50IGRiZ19yd19tZW0o dm9pZCAqIF9fdXNlciBhZGRyLCB2b2lkICogX191c2VyIGJ1ZiwKICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBsZW4sIGRvbWlkX3QgZG9taWQsIGJvb2xfdCB0b2FkZHIsCiAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBwZ2QzKTsKLS0gCjIuMS40CgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==