From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= Subject: [PATCH v2 25/35] libxl/libxl_pci.c: used LOG*D functions Date: Fri, 2 Dec 2016 16:08:31 +0100 Message-ID: <20161202150841.31227-26-cbosdonnat@suse.com> References: <20161202150841.31227-1-cbosdonnat@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161202150841.31227-1-cbosdonnat@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Ian Jackson , Wei Liu , Cedric Bosdonnat List-Id: xen-devel@lists.xenproject.org RnJvbTogQ2VkcmljIEJvc2Rvbm5hdCA8Y2Jvc2Rvbm5hdEBzdXNlLmNvbT4KClVzZSBMT0cqRCBs b2dnaW5nIGZ1bmN0aW9ucyB3aGVyZSBwb3NzaWJsZSBpbnN0ZWFkIG9mIHRoZSBMT0cqIG9uZXMu CgpTaWduZWQtb2ZmLWJ5OiBDw6lkcmljIEJvc2Rvbm5hdCA8Y2Jvc2Rvbm5hdEBzdXNlLmNvbT4K QWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Ci0tLQogdG9vbHMvbGlieGwv bGlieGxfcGNpLmMgfCAxNTMgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzkgaW5zZXJ0aW9ucygrKSwgNzQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfcGNpLmMgYi90b29scy9saWJ4bC9s aWJ4bF9wY2kuYwppbmRleCA2ZjhmNDljLi4zYjcwN2YzIDEwMDY0NAotLS0gYS90b29scy9saWJ4 bC9saWJ4bF9wY2kuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9wY2kuYwpAQCAtODYsNyArODYs NyBAQCBpbnQgbGlieGxfX2NyZWF0ZV9wY2lfYmFja2VuZChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJf dCBkb21pZCwKICAgICBmcm9udCA9IGZsZXhhcnJheV9tYWtlKGdjLCAxNiwgMSk7CiAgICAgYmFj ayA9IGZsZXhhcnJheV9tYWtlKGdjLCAxNiwgMSk7CiAKLSAgICBMT0coREVCVUcsICJDcmVhdGlu ZyBwY2kgYmFja2VuZCIpOworICAgIExPR0QoREVCVUcsIGRvbWlkLCAiQ3JlYXRpbmcgcGNpIGJh Y2tlbmQiKTsKIAogICAgIC8qIGFkZCBwY2kgZGV2aWNlICovCiAgICAgbGlieGxfX2RldmljZV9m cm9tX3BjaWRldihnYywgZG9taWQsIHBjaWRldiwgJmRldmljZSk7CkBAIC0xNDEsNyArMTQxLDcg QEAgc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX3BjaV9hZGRfeGVuc3RvcmUobGlieGxfX2djICpn YywgdWludDMyX3QgZG9taWQsIGxpYnhsX2QKIAogICAgIGJhY2sgPSBmbGV4YXJyYXlfbWFrZShn YywgMTYsIDEpOwogCi0gICAgTE9HKERFQlVHLCAiQWRkaW5nIG5ldyBwY2kgZGV2aWNlIHRvIHhl bnN0b3JlIik7CisgICAgTE9HRChERUJVRywgZG9taWQsICJBZGRpbmcgbmV3IHBjaSBkZXZpY2Ug dG8geGVuc3RvcmUiKTsKICAgICBudW0gPSBhdG9pKG51bV9kZXZzKTsKICAgICBsaWJ4bF9jcmVh dGVfcGNpX2JhY2tlbmRfZGV2aWNlKGdjLCBiYWNrLCBudW0sIHBjaWRldik7CiAgICAgZmxleGFy cmF5X2FwcGVuZF9wYWlyKGJhY2ssICJudW1fZGV2cyIsIEdDU1BSSU5URigiJWQiLCBudW0gKyAx KSk7CkBAIC0yMDcsNyArMjA3LDcgQEAgc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX3BjaV9yZW1v dmVfeGVuc3RvcmUobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsIGxpYngKIAogICAgIGlm IChkb210eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX1BWKSB7CiAgICAgICAgIGlmIChsaWJ4bF9f d2FpdF9mb3JfYmFja2VuZChnYywgYmVfcGF0aCwgR0NTUFJJTlRGKCIlZCIsIFhlbmJ1c1N0YXRl Q29ubmVjdGVkKSkgPCAwKSB7Ci0gICAgICAgICAgICBMT0coREVCVUcsICJwY2kgYmFja2VuZCBh dCAlcyBpcyBub3QgcmVhZHkiLCBiZV9wYXRoKTsKKyAgICAgICAgICAgIExPR0QoREVCVUcsIGRv bWlkLCAicGNpIGJhY2tlbmQgYXQgJXMgaXMgbm90IHJlYWR5IiwgYmVfcGF0aCk7CiAgICAgICAg ICAgICByZXR1cm4gRVJST1JfRkFJTDsKICAgICAgICAgfQogICAgIH0KQEAgLTIyMiw3ICsyMjIs NyBAQCBzdGF0aWMgaW50IGxpYnhsX19kZXZpY2VfcGNpX3JlbW92ZV94ZW5zdG9yZShsaWJ4bF9f Z2MgKmdjLCB1aW50MzJfdCBkb21pZCwgbGlieAogICAgICAgICB9CiAgICAgfQogICAgIGlmIChp ID09IG51bSkgewotICAgICAgICBMT0coRVJST1IsICJDb3VsZG4ndCBmaW5kIHRoZSBkZXZpY2Ug b24geGVuc3RvcmUiKTsKKyAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJDb3VsZG4ndCBmaW5k IHRoZSBkZXZpY2Ugb24geGVuc3RvcmUiKTsKICAgICAgICAgcmV0dXJuIEVSUk9SX0lOVkFMOwog ICAgIH0KIApAQCAtMjM2LDcgKzIzNiw3IEBAIHJldHJ5X3RyYW5zYWN0aW9uOgogCiAgICAgaWYg KGRvbXR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfUFYpIHsKICAgICAgICAgaWYgKGxpYnhsX193 YWl0X2Zvcl9iYWNrZW5kKGdjLCBiZV9wYXRoLCBHQ1NQUklOVEYoIiVkIiwgWGVuYnVzU3RhdGVD b25uZWN0ZWQpKSA8IDApIHsKLSAgICAgICAgICAgIExPRyhERUJVRywgInBjaSBiYWNrZW5kIGF0 ICVzIGlzIG5vdCByZWFkeSIsIGJlX3BhdGgpOworICAgICAgICAgICAgTE9HRChERUJVRywgZG9t aWQsICJwY2kgYmFja2VuZCBhdCAlcyBpcyBub3QgcmVhZHkiLCBiZV9wYXRoKTsKICAgICAgICAg ICAgIHJldHVybiBFUlJPUl9GQUlMOwogICAgICAgICB9CiAgICAgfQpAQCAtOTgxLDkgKzk4MSw5 IEBAIHN0YXRpYyBpbnQgcWVtdV9wY2lfYWRkX3hlbnN0b3JlKGxpYnhsX19nYyAqZ2MsIHVpbnQz Ml90IGRvbWlkLAogICAgIHZkZXZmbiA9IGxpYnhsX194c19yZWFkKGdjLCBYQlRfTlVMTCwgcGF0 aCk7CiAgICAgcGF0aCA9IERFVklDRV9NT0RFTF9YU19QQVRIKGdjLCBkbV9kb21pZCwgZG9taWQs ICIvc3RhdGUiKTsKICAgICBpZiAoIHJjIDwgMCApCi0gICAgICAgIExPRyhFUlJPUiwgInFlbXUg cmVmdXNlZCB0byBhZGQgZGV2aWNlOiAlcyIsIHZkZXZmbik7CisgICAgICAgIExPR0QoRVJST1Is IGRvbWlkLCAicWVtdSByZWZ1c2VkIHRvIGFkZCBkZXZpY2U6ICVzIiwgdmRldmZuKTsKICAgICBl bHNlIGlmICggc3NjYW5mKHZkZXZmbiwgIjB4JXgiLCAmcGNpZGV2LT52ZGV2Zm4pICE9IDEgKSB7 Ci0gICAgICAgIExPRyhFUlJPUiwgIndyb25nIGZvcm1hdCBmb3IgdGhlIHZkZXZmbjogJyVzJyIs IHZkZXZmbik7CisgICAgICAgIExPR0QoRVJST1IsIGRvbWlkLCAid3JvbmcgZm9ybWF0IGZvciB0 aGUgdmRldmZuOiAnJXMnIiwgdmRldmZuKTsKICAgICAgICAgcmMgPSAtMTsKICAgICB9CiAgICAg eHNfd3JpdGUoY3R4LT54c2gsIFhCVF9OVUxMLCBwYXRoLCBzdGF0ZSwgc3RybGVuKHN0YXRlKSk7 CkBAIC0xMDAwLDYgKzEwMDAsOCBAQCBzdGF0aWMgaW50IGRvX3BjaV9hZGQobGlieGxfX2djICpn YywgdWludDMyX3QgZG9taWQsIGxpYnhsX2RldmljZV9wY2kgKnBjaWRldiwgaQogICAgIHVuc2ln bmVkIGxvbmcgbG9uZyBzdGFydCwgZW5kLCBmbGFncywgc2l6ZTsKICAgICBpbnQgaXJxLCBpLCBy YywgaHZtID0gMDsKICAgICB1aW50MzJfdCBmbGFnID0gWEVOX0RPTUNUTF9ERVZfUkRNX1JFTEFY RUQ7CisgICAgdWludDMyX3QgZG9tYWluaWQgPSBkb21pZDsKKyAgICBib29sIGlzc3R1YmRvbSA9 ICFsaWJ4bF9pc19zdHViZG9tKGN0eCwgZG9taWQsICZkb21haW5pZCk7CiAKICAgICBpZiAodHlw ZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9JTlZBTElEKQogICAgICAgICByZXR1cm4gRVJST1JfRkFJ TDsKQEAgLTEwMzEsNyArMTAzMyw3IEBAIHN0YXRpYyBpbnQgZG9fcGNpX2FkZChsaWJ4bF9fZ2Mg KmdjLCB1aW50MzJfdCBkb21pZCwgbGlieGxfZGV2aWNlX3BjaSAqcGNpZGV2LCBpCiAgICAgaXJx ID0gMDsKIAogICAgIGlmIChmID09IE5VTEwpIHsKLSAgICAgICAgTE9HRShFUlJPUiwgIkNvdWxk bid0IG9wZW4gJXMiLCBzeXNmc19wYXRoKTsKKyAgICAgICAgTE9HRUQoRVJST1IsIGRvbWFpbmlk LCAiQ291bGRuJ3Qgb3BlbiAlcyIsIHN5c2ZzX3BhdGgpOwogICAgICAgICByZXR1cm4gRVJST1Jf RkFJTDsKICAgICB9CiAgICAgZm9yIChpID0gMDsgaSA8IFBST0NfUENJX05VTV9SRVNPVVJDRVM7 IGkrKykgewpAQCAtMTA0MiwxMCArMTA0NCwxMCBAQCBzdGF0aWMgaW50IGRvX3BjaV9hZGQobGli eGxfX2djICpnYywgdWludDMyX3QgZG9taWQsIGxpYnhsX2RldmljZV9wY2kgKnBjaWRldiwgaQog ICAgICAgICAgICAgaWYgKGZsYWdzICYgUENJX0JBUl9JTykgewogICAgICAgICAgICAgICAgIHJj ID0geGNfZG9tYWluX2lvcG9ydF9wZXJtaXNzaW9uKGN0eC0+eGNoLCBkb21pZCwgc3RhcnQsIHNp emUsIDEpOwogICAgICAgICAgICAgICAgIGlmIChyYyA8IDApIHsKLSAgICAgICAgICAgICAgICAg ICAgTE9HRShFUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3I6IHhjX2RvbWFp bl9pb3BvcnRfcGVybWlzc2lvbiBlcnJvciAweCVsbHgvMHglbGx4IiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICBzdGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplKTsKKyAgICAg ICAgICAgICAgICAgICAgTE9HRUQoRVJST1IsIGRvbWFpbmlkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAiRXJyb3I6IHhjX2RvbWFpbl9pb3BvcnRfcGVybWlzc2lvbiBlcnJvciAweCVsbHgv MHglbGx4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemUpOwogICAgICAgICAgICAgICAgICAgICBmY2xvc2UoZik7CiAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBFUlJPUl9GQUlMOwogICAgICAgICAgICAgICAgIH0KQEAg LTEwNTMsMTAgKzEwNTUsMTAgQEAgc3RhdGljIGludCBkb19wY2lfYWRkKGxpYnhsX19nYyAqZ2Ms IHVpbnQzMl90IGRvbWlkLCBsaWJ4bF9kZXZpY2VfcGNpICpwY2lkZXYsIGkKICAgICAgICAgICAg ICAgICByYyA9IHhjX2RvbWFpbl9pb21lbV9wZXJtaXNzaW9uKGN0eC0+eGNoLCBkb21pZCwgc3Rh cnQ+PlhDX1BBR0VfU0hJRlQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc2l6ZSsoWENfUEFHRV9TSVpFLTEpKT4+WENfUEFHRV9TSElGVCwgMSk7CiAg ICAgICAgICAgICAgICAgaWYgKHJjIDwgMCkgewotICAgICAgICAgICAgICAgICAgICBMT0dFKEVS Uk9SLAotICAgICAgICAgICAgICAgICAgICAgICAgICJFcnJvcjogeGNfZG9tYWluX2lvbWVtX3Bl cm1pc3Npb24gZXJyb3IgMHglbGx4LzB4JWxseCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg c3RhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSk7CisgICAgICAgICAgICAgICAg ICAgIExPR0VEKEVSUk9SLCBkb21haW5pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIkVy cm9yOiB4Y19kb21haW5faW9tZW1fcGVybWlzc2lvbiBlcnJvciAweCVsbHgvMHglbGx4IiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg IHNpemUpOwogICAgICAgICAgICAgICAgICAgICBmY2xvc2UoZik7CiAgICAgICAgICAgICAgICAg ICAgIHJldHVybiBFUlJPUl9GQUlMOwogICAgICAgICAgICAgICAgIH0KQEAgLTEwNjgsMTkgKzEw NzAsMTkgQEAgc3RhdGljIGludCBkb19wY2lfYWRkKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRv bWlkLCBsaWJ4bF9kZXZpY2VfcGNpICpwY2lkZXYsIGkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGNpZGV2LT5idXMsIHBjaWRldi0+ZGV2LCBwY2lkZXYtPmZ1bmMpOwogICAgIGYg PSBmb3BlbihzeXNmc19wYXRoLCAiciIpOwogICAgIGlmIChmID09IE5VTEwpIHsKLSAgICAgICAg TE9HRShFUlJPUiwgIkNvdWxkbid0IG9wZW4gJXMiLCBzeXNmc19wYXRoKTsKKyAgICAgICAgTE9H RUQoRVJST1IsIGRvbWFpbmlkLCAiQ291bGRuJ3Qgb3BlbiAlcyIsIHN5c2ZzX3BhdGgpOwogICAg ICAgICBnb3RvIG91dDsKICAgICB9CiAgICAgaWYgKChmc2NhbmYoZiwgIiV1IiwgJmlycSkgPT0g MSkgJiYgaXJxKSB7CiAgICAgICAgIHJjID0geGNfcGh5c2Rldl9tYXBfcGlycShjdHgtPnhjaCwg ZG9taWQsIGlycSwgJmlycSk7CiAgICAgICAgIGlmIChyYyA8IDApIHsKLSAgICAgICAgICAgIExP R0UoRVJST1IsICJFcnJvcjogeGNfcGh5c2Rldl9tYXBfcGlycSBpcnE9JWQiLCBpcnEpOworICAg ICAgICAgICAgTE9HRUQoRVJST1IsIGRvbWFpbmlkLCAiRXJyb3I6IHhjX3BoeXNkZXZfbWFwX3Bp cnEgaXJxPSVkIiwgaXJxKTsKICAgICAgICAgICAgIGZjbG9zZShmKTsKICAgICAgICAgICAgIHJl dHVybiBFUlJPUl9GQUlMOwogICAgICAgICB9CiAgICAgICAgIHJjID0geGNfZG9tYWluX2lycV9w ZXJtaXNzaW9uKGN0eC0+eGNoLCBkb21pZCwgaXJxLCAxKTsKICAgICAgICAgaWYgKHJjIDwgMCkg ewotICAgICAgICAgICAgTE9HRShFUlJPUiwgIkVycm9yOiB4Y19kb21haW5faXJxX3Blcm1pc3Np b24gaXJxPSVkIiwgaXJxKTsKKyAgICAgICAgICAgIExPR0VEKEVSUk9SLCBkb21haW5pZCwgIkVy cm9yOiB4Y19kb21haW5faXJxX3Blcm1pc3Npb24gaXJxPSVkIiwgaXJxKTsKICAgICAgICAgICAg IGZjbG9zZShmKTsKICAgICAgICAgICAgIHJldHVybiBFUlJPUl9GQUlMOwogICAgICAgICB9CkBA IC0xMDkxLDIyICsxMDkzLDIyIEBAIHN0YXRpYyBpbnQgZG9fcGNpX2FkZChsaWJ4bF9fZ2MgKmdj LCB1aW50MzJfdCBkb21pZCwgbGlieGxfZGV2aWNlX3BjaSAqcGNpZGV2LCBpCiAgICAgaWYgKHBj aWRldi0+cGVybWlzc2l2ZSkgewogICAgICAgICBpZiAoIHN5c2ZzX3dyaXRlX2JkZihnYywgU1lT RlNfUENJQkFDS19EUklWRVIiL3Blcm1pc3NpdmUiLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwY2lkZXYpIDwgMCApIHsKLSAgICAgICAgICAgIExPRyhFUlJPUiwgIlNldHRpbmcgcGVy bWlzc2l2ZSBmb3IgZGV2aWNlIik7CisgICAgICAgICAgICBMT0dEKEVSUk9SLCBkb21haW5pZCwg IlNldHRpbmcgcGVybWlzc2l2ZSBmb3IgZGV2aWNlIik7CiAgICAgICAgICAgICByZXR1cm4gRVJS T1JfRkFJTDsKICAgICAgICAgfQogICAgIH0KIAogb3V0OgotICAgIGlmICghbGlieGxfaXNfc3R1 YmRvbShjdHgsIGRvbWlkLCBOVUxMKSkgeworICAgIGlmICghaXNzdHViZG9tKSB7CiAgICAgICAg IGlmIChwY2lkZXYtPnJkbV9wb2xpY3kgPT0gTElCWExfUkRNX1JFU0VSVkVfUE9MSUNZX1NUUklD VCkgewogICAgICAgICAgICAgZmxhZyAmPSB+WEVOX0RPTUNUTF9ERVZfUkRNX1JFTEFYRUQ7CiAg ICAgICAgIH0gZWxzZSBpZiAocGNpZGV2LT5yZG1fcG9saWN5ICE9IExJQlhMX1JETV9SRVNFUlZF X1BPTElDWV9SRUxBWEVEKSB7Ci0gICAgICAgICAgICBMT0dFKEVSUk9SLCAidW5rbm93biByZG0g Y2hlY2sgZmxhZy4iKTsKKyAgICAgICAgICAgIExPR0VEKEVSUk9SLCBkb21haW5pZCwgInVua25v d24gcmRtIGNoZWNrIGZsYWcuIik7CiAgICAgICAgICAgICByZXR1cm4gRVJST1JfRkFJTDsKICAg ICAgICAgfQogICAgICAgICByYyA9IHhjX2Fzc2lnbl9kZXZpY2UoY3R4LT54Y2gsIGRvbWlkLCBw Y2lkZXZfZW5jb2RlX2JkZihwY2lkZXYpLCBmbGFnKTsKICAgICAgICAgaWYgKHJjIDwgMCAmJiAo aHZtIHx8IGVycm5vICE9IEVOT1NZUykpIHsKLSAgICAgICAgICAgIExPR0UoRVJST1IsICJ4Y19h c3NpZ25fZGV2aWNlIGZhaWxlZCIpOworICAgICAgICAgICAgTE9HRUQoRVJST1IsIGRvbWFpbmlk LCAieGNfYXNzaWduX2RldmljZSBmYWlsZWQiKTsKICAgICAgICAgICAgIHJldHVybiBFUlJPUl9G QUlMOwogICAgICAgICB9CiAgICAgfQpAQCAtMTEzMCwyNyArMTEzMiwyNyBAQCBzdGF0aWMgaW50 IGxpYnhsX19kZXZpY2VfcGNpX3Jlc2V0KGxpYnhsX19nYyAqZ2MsIHVuc2lnbmVkIGludCBkb21h aW4sIHVuc2lnbmVkCiAgICAgICAgIGNoYXIgKmJ1ZiA9IEdDU1BSSU5URihQQ0lfQkRGLCBkb21h aW4sIGJ1cywgZGV2LCBmdW5jKTsKICAgICAgICAgcmMgPSB3cml0ZShmZCwgYnVmLCBzdHJsZW4o YnVmKSk7CiAgICAgICAgIGlmIChyYyA8IDApCi0gICAgICAgICAgICBMT0coRVJST1IsICJ3cml0 ZSB0byAlcyByZXR1cm5lZCAlZCIsIHJlc2V0LCByYyk7CisgICAgICAgICAgICBMT0dEKEVSUk9S LCBkb21haW4sICJ3cml0ZSB0byAlcyByZXR1cm5lZCAlZCIsIHJlc2V0LCByYyk7CiAgICAgICAg IGNsb3NlKGZkKTsKICAgICAgICAgcmV0dXJuIHJjIDwgMCA/IHJjIDogMDsKICAgICB9CiAgICAg aWYgKGVycm5vICE9IEVOT0VOVCkKLSAgICAgICAgTE9HRShFUlJPUiwgIkZhaWxlZCB0byBhY2Nl c3MgcGNpYmFjayBwYXRoICVzIiwgcmVzZXQpOworICAgICAgICBMT0dFRChFUlJPUiwgZG9tYWlu LCAiRmFpbGVkIHRvIGFjY2VzcyBwY2liYWNrIHBhdGggJXMiLCByZXNldCk7CiAgICAgcmVzZXQg PSBHQ1NQUklOVEYoIiVzLyJQQ0lfQkRGIi9yZXNldCIsIFNZU0ZTX1BDSV9ERVYsIGRvbWFpbiwg YnVzLCBkZXYsIGZ1bmMpOwogICAgIGZkID0gb3BlbihyZXNldCwgT19XUk9OTFkpOwogICAgIGlm IChmZCA+PSAwKSB7CiAgICAgICAgIHJjID0gd3JpdGUoZmQsICIxIiwgMSk7CiAgICAgICAgIGlm IChyYyA8IDApCi0gICAgICAgICAgICBMT0dFKEVSUk9SLCAid3JpdGUgdG8gJXMgcmV0dXJuZWQg JWQiLCByZXNldCwgcmMpOworICAgICAgICAgICAgTE9HRUQoRVJST1IsIGRvbWFpbiwgIndyaXRl IHRvICVzIHJldHVybmVkICVkIiwgcmVzZXQsIHJjKTsKICAgICAgICAgY2xvc2UoZmQpOwogICAg ICAgICByZXR1cm4gcmMgPCAwID8gcmMgOiAwOwogICAgIH0KICAgICBpZiAoZXJybm8gPT0gRU5P RU5UKSB7Ci0gICAgICAgIExPRyhFUlJPUiwKLSAgICAgICAgICAgICJUaGUga2VybmVsIGRvZXNu J3Qgc3VwcG9ydCByZXNldCBmcm9tIHN5c2ZzIGZvciBQQ0kgZGV2aWNlICJQQ0lfQkRGLAotICAg ICAgICAgICAgZG9tYWluLCBidXMsIGRldiwgZnVuYyk7CisgICAgICAgIExPR0QoRVJST1IsIGRv bWFpbiwKKyAgICAgICAgICAgICAiVGhlIGtlcm5lbCBkb2Vzbid0IHN1cHBvcnQgcmVzZXQgZnJv bSBzeXNmcyBmb3IgUENJIGRldmljZSAiUENJX0JERiwKKyAgICAgICAgICAgICBkb21haW4sIGJ1 cywgZGV2LCBmdW5jKTsKICAgICB9IGVsc2UgewotICAgICAgICBMT0dFKEVSUk9SLCAiRmFpbGVk IHRvIGFjY2VzcyByZXNldCBwYXRoICVzIiwgcmVzZXQpOworICAgICAgICBMT0dFRChFUlJPUiwg ZG9tYWluLCAiRmFpbGVkIHRvIGFjY2VzcyByZXNldCBwYXRoICVzIiwgcmVzZXQpOwogICAgIH0K ICAgICByZXR1cm4gLTE7CiB9CkBAIC0xMjAyLDExICsxMjA0LDExIEBAIGludCBsaWJ4bF9fZGV2 aWNlX3BjaV9hZGQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsIGxpYnhsX2RldmljZV9w Y2kgKnBjaWRlCiAgICAgaWYgKGxpYnhsX19kb21haW5fdHlwZShnYywgZG9taWQpID09IExJQlhM X0RPTUFJTl9UWVBFX0hWTSkgewogICAgICAgICByYyA9IHhjX3Rlc3RfYXNzaWduX2RldmljZShj dHgtPnhjaCwgZG9taWQsIHBjaWRldl9lbmNvZGVfYmRmKHBjaWRldikpOwogICAgICAgICBpZiAo cmMpIHsKLSAgICAgICAgICAgIExPRyhFUlJPUiwKLSAgICAgICAgICAgICAgICAiUENJIGRldmlj ZSAlMDR4OiUwMng6JTAyeC4ldSAlcz8iLAotICAgICAgICAgICAgICAgIHBjaWRldi0+ZG9tYWlu LCBwY2lkZXYtPmJ1cywgcGNpZGV2LT5kZXYsIHBjaWRldi0+ZnVuYywKLSAgICAgICAgICAgICAg ICBlcnJubyA9PSBFTk9TWVMgPyAiY2Fubm90IGJlIGFzc2lnbmVkIC0gbm8gSU9NTVUiCi0gICAg ICAgICAgICAgICAgOiAiYWxyZWFkeSBhc3NpZ25lZCB0byBhIGRpZmZlcmVudCBndWVzdCIpOwor ICAgICAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsCisgICAgICAgICAgICAgICAgICJQQ0kgZGV2 aWNlICUwNHg6JTAyeDolMDJ4LiV1ICVzPyIsCisgICAgICAgICAgICAgICAgIHBjaWRldi0+ZG9t YWluLCBwY2lkZXYtPmJ1cywgcGNpZGV2LT5kZXYsIHBjaWRldi0+ZnVuYywKKyAgICAgICAgICAg ICAgICAgZXJybm8gPT0gRU5PU1lTID8gImNhbm5vdCBiZSBhc3NpZ25lZCAtIG5vIElPTU1VIgor ICAgICAgICAgICAgICAgICA6ICJhbHJlYWR5IGFzc2lnbmVkIHRvIGEgZGlmZmVyZW50IGd1ZXN0 Iik7CiAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgfQogICAgIH0KQEAgLTEyMjEsMjEg KzEyMjMsMjEgQEAgaW50IGxpYnhsX19kZXZpY2VfcGNpX2FkZChsaWJ4bF9fZ2MgKmdjLCB1aW50 MzJfdCBkb21pZCwgbGlieGxfZGV2aWNlX3BjaSAqcGNpZGUKICAgICB9CiAKICAgICBpZiAoIWxp YnhsX3BjaWRldl9hc3NpZ25hYmxlKGN0eCwgcGNpZGV2KSkgewotICAgICAgICBMT0coRVJST1Is ICJQQ0kgZGV2aWNlICV4OiV4OiV4LiV4IGlzIG5vdCBhc3NpZ25hYmxlIiwKLSAgICAgICAgICAg IHBjaWRldi0+ZG9tYWluLCBwY2lkZXYtPmJ1cywgcGNpZGV2LT5kZXYsIHBjaWRldi0+ZnVuYyk7 CisgICAgICAgIExPR0QoRVJST1IsIGRvbWlkLCAiUENJIGRldmljZSAleDoleDoleC4leCBpcyBu b3QgYXNzaWduYWJsZSIsCisgICAgICAgICAgICAgcGNpZGV2LT5kb21haW4sIHBjaWRldi0+YnVz LCBwY2lkZXYtPmRldiwgcGNpZGV2LT5mdW5jKTsKICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOwog ICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKICAgICByYyA9IGdldF9hbGxfYXNzaWduZWRfZGV2 aWNlcyhnYywgJmFzc2lnbmVkLCAmbnVtX2Fzc2lnbmVkKTsKICAgICBpZiAoIHJjICkgewotICAg ICAgICBMT0coRVJST1IsCi0gICAgICAgICAgICAiY2Fubm90IGRldGVybWluZSBpZiBkZXZpY2Ug aXMgYXNzaWduZWQsIHJlZnVzaW5nIHRvIGNvbnRpbnVlIik7CisgICAgICAgIExPR0QoRVJST1Is IGRvbWlkLAorICAgICAgICAgICAgICJjYW5ub3QgZGV0ZXJtaW5lIGlmIGRldmljZSBpcyBhc3Np Z25lZCwgcmVmdXNpbmcgdG8gY29udGludWUiKTsKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQog ICAgIGlmICggaXNfcGNpZGV2X2luX2FycmF5KGFzc2lnbmVkLCBudW1fYXNzaWduZWQsIHBjaWRl di0+ZG9tYWluLAogICAgICAgICAgICAgICAgICAgICAgcGNpZGV2LT5idXMsIHBjaWRldi0+ZGV2 LCBwY2lkZXYtPmZ1bmMpICkgewotICAgICAgICBMT0coRVJST1IsICJQQ0kgZGV2aWNlIGFscmVh ZHkgYXR0YWNoZWQgdG8gYSBkb21haW4iKTsKKyAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJQ Q0kgZGV2aWNlIGFscmVhZHkgYXR0YWNoZWQgdG8gYSBkb21haW4iKTsKICAgICAgICAgcmMgPSBF UlJPUl9GQUlMOwogICAgICAgICBnb3RvIG91dDsKICAgICB9CkBAIC0xMjU1LDcgKzEyNTcsNyBA QCBpbnQgbGlieGxfX2RldmljZV9wY2lfYWRkKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlk LCBsaWJ4bF9kZXZpY2VfcGNpICpwY2lkZQogCiAgICAgaWYgKCBwY2lkZXYtPnZmdW5jX21hc2sg PT0gTElCWExfUENJX0ZVTkNfQUxMICkgewogICAgICAgICBpZiAoICEocGNpZGV2LT52ZGV2Zm4g Pj4gMykgKSB7Ci0gICAgICAgICAgICBMT0coRVJST1IsICJNdXN0IHNwZWNpZnkgYSB2LXNsb3Qg Zm9yIG11bHRpLWZ1bmN0aW9uIGRldmljZXMiKTsKKyAgICAgICAgICAgIExPR0QoRVJST1IsIGRv bWlkLCAiTXVzdCBzcGVjaWZ5IGEgdi1zbG90IGZvciBtdWx0aS1mdW5jdGlvbiBkZXZpY2VzIik7 CiAgICAgICAgICAgICByYyA9IEVSUk9SX0lOVkFMOwogICAgICAgICAgICAgZ290byBvdXQ7CiAg ICAgICAgIH0KQEAgLTEzMDEsNyArMTMwMyw3IEBAIHN0YXRpYyB2b2lkIGxpYnhsX19hZGRfcGNp ZGV2cyhsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19hbyAqYW8sIHVpbnQzMl90IGRvbWlkLAogICAg IGZvciAoaSA9IDA7IGkgPCBkX2NvbmZpZy0+bnVtX3BjaWRldnM7IGkrKykgewogICAgICAgICBy YyA9IGxpYnhsX19kZXZpY2VfcGNpX2FkZChnYywgZG9taWQsICZkX2NvbmZpZy0+cGNpZGV2c1tp XSwgMSk7CiAgICAgICAgIGlmIChyYyA8IDApIHsKLSAgICAgICAgICAgIExPRyhFUlJPUiwgImxp YnhsX2RldmljZV9wY2lfYWRkIGZhaWxlZDogJWQiLCByYyk7CisgICAgICAgICAgICBMT0dEKEVS Uk9SLCBkb21pZCwgImxpYnhsX2RldmljZV9wY2lfYWRkIGZhaWxlZDogJWQiLCByYyk7CiAgICAg ICAgICAgICBnb3RvIG91dDsKICAgICAgICAgfQogICAgIH0KQEAgLTEzMTAsNyArMTMxMiw3IEBA IHN0YXRpYyB2b2lkIGxpYnhsX19hZGRfcGNpZGV2cyhsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19h byAqYW8sIHVpbnQzMl90IGRvbWlkLAogICAgICAgICByYyA9IGxpYnhsX19jcmVhdGVfcGNpX2Jh Y2tlbmQoZ2MsIGRvbWlkLCBkX2NvbmZpZy0+cGNpZGV2cywKICAgICAgICAgICAgIGRfY29uZmln LT5udW1fcGNpZGV2cyk7CiAgICAgICAgIGlmIChyYyA8IDApIHsKLSAgICAgICAgICAgIExPRyhF UlJPUiwgImxpYnhsX2NyZWF0ZV9wY2lfYmFja2VuZCBmYWlsZWQ6ICVkIiwgcmMpOworICAgICAg ICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJsaWJ4bF9jcmVhdGVfcGNpX2JhY2tlbmQgZmFpbGVk OiAlZCIsIHJjKTsKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9CiAgICAgfQpAQCAt MTM0Miw3ICsxMzQ0LDcgQEAgc3RhdGljIGludCBxZW11X3BjaV9yZW1vdmVfeGVuc3RvcmUobGli eGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgICAgIGxpYnhsX19xZW11X3RyYWRpdGlv bmFsX2NtZChnYywgZG9taWQsICJwY2ktcmVtIik7CiAgICAgICAgIGlmIChsaWJ4bF9fd2FpdF9m b3JfZGV2aWNlX21vZGVsX2RlcHJlY2F0ZWQoZ2MsIGRvbWlkLCAicGNpLXJlbW92ZWQiLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBOVUxMKSA8 IDApIHsKLSAgICAgICAgICAgIExPRyhFUlJPUiwgIkRldmljZSBNb2RlbCBkaWRuJ3QgcmVzcG9u ZCBpbiB0aW1lIik7CisgICAgICAgICAgICBMT0dEKEVSUk9SLCBkb21pZCwgIkRldmljZSBNb2Rl bCBkaWRuJ3QgcmVzcG9uZCBpbiB0aW1lIik7CiAgICAgICAgICAgICAvKiBUaGlzIGRlcGVuZHMg b24gZ3Vlc3Qgb3BlcmF0aW5nIHN5c3RlbSBhY2tub3dsZWRnaW5nIHRoZQogICAgICAgICAgICAg ICogU0NJLCBpZiBpdCBkb2Vzbid0IHJlc3BvbmQgaW4gdGltZSB0aGVuIHdlIG1heSB3aXNoIHRv CiAgICAgICAgICAgICAgKiBmb3JjZSB0aGUgcmVtb3ZhbC4KQEAgLTEzNjcsNiArMTM2OSw5IEBA IHN0YXRpYyBpbnQgZG9fcGNpX3JlbW92ZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwK ICAgICBsaWJ4bF9kb21haW5fdHlwZSB0eXBlID0gbGlieGxfX2RvbWFpbl90eXBlKGdjLCBkb21p ZCk7CiAgICAgaW50IGh2bSA9IDAsIHJjLCBudW07CiAgICAgaW50IHN0dWJkb21pZCA9IDA7Cisg ICAgdWludDMyX3QgZG9tYWluaWQgPSBkb21pZDsKKyAgICBib29sIGlzc3R1YmRvbSA9ICFsaWJ4 bF9pc19zdHViZG9tKGN0eCwgZG9taWQsICZkb21haW5pZCk7CisKIAogICAgIGFzc2lnbmVkID0g bGlieGxfZGV2aWNlX3BjaV9saXN0KGN0eCwgZG9taWQsICZudW0pOwogICAgIGlmICggYXNzaWdu ZWQgPT0gTlVMTCApCkBAIC0xMzc1LDcgKzEzODAsNyBAQCBzdGF0aWMgaW50IGRvX3BjaV9yZW1v dmUobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgcmMgPSBFUlJPUl9JTlZBTDsK ICAgICBpZiAoICFpc19wY2lkZXZfaW5fYXJyYXkoYXNzaWduZWQsIG51bSwgcGNpZGV2LT5kb21h aW4sCiAgICAgICAgICAgICAgICAgICAgICAgcGNpZGV2LT5idXMsIHBjaWRldi0+ZGV2LCBwY2lk ZXYtPmZ1bmMpICkgewotICAgICAgICBMT0coRVJST1IsICJQQ0kgZGV2aWNlIG5vdCBhdHRhY2hl ZCB0byB0aGlzIGRvbWFpbiIpOworICAgICAgICBMT0dEKEVSUk9SLCBkb21haW5pZCwgIlBDSSBk ZXZpY2Ugbm90IGF0dGFjaGVkIHRvIHRoaXMgZG9tYWluIik7CiAgICAgICAgIGdvdG8gb3V0X2Zh aWw7CiAgICAgfQogCkBAIC0xNDEyLDcgKzE0MTcsNyBAQCBzdGF0aWMgaW50IGRvX3BjaV9yZW1v dmUobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgICAgIGludCBpOwogCiAgICAg ICAgIGlmIChmID09IE5VTEwpIHsKLSAgICAgICAgICAgIExPR0UoRVJST1IsICJDb3VsZG4ndCBv cGVuICVzIiwgc3lzZnNfcGF0aCk7CisgICAgICAgICAgICBMT0dFRChFUlJPUiwgZG9tYWluaWQs ICJDb3VsZG4ndCBvcGVuICVzIiwgc3lzZnNfcGF0aCk7CiAgICAgICAgICAgICBnb3RvIHNraXAx OwogICAgICAgICB9CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBQUk9DX1BDSV9OVU1fUkVTT1VS Q0VTOyBpKyspIHsKQEAgLTE0MjMsMTggKzE0MjgsMTggQEAgc3RhdGljIGludCBkb19wY2lfcmVt b3ZlKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgIGlmIChm bGFncyAmIFBDSV9CQVJfSU8pIHsKICAgICAgICAgICAgICAgICAgICAgcmMgPSB4Y19kb21haW5f aW9wb3J0X3Blcm1pc3Npb24oY3R4LT54Y2gsIGRvbWlkLCBzdGFydCwgc2l6ZSwgMCk7CiAgICAg ICAgICAgICAgICAgICAgIGlmIChyYyA8IDApCi0gICAgICAgICAgICAgICAgICAgICAgICBMT0dF KEVSUk9SLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieGNfZG9tYWluX2lvcG9ydF9w ZXJtaXNzaW9uIGVycm9yIDB4JXgvMHgleCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0YXJ0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgIExPR0VEKEVSUk9SLCBkb21haW5pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJ4Y19kb21haW5faW9wb3J0X3Blcm1pc3Npb24gZXJyb3IgMHgleC8weCV4IiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZSk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg ICAgICAgICAgcmMgPSB4Y19kb21haW5faW9tZW1fcGVybWlzc2lvbihjdHgtPnhjaCwgZG9taWQs IHN0YXJ0Pj5YQ19QQUdFX1NISUZULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzaXplKyhYQ19QQUdFX1NJWkUtMSkpPj5YQ19QQUdFX1NISUZU LCAwKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKHJjIDwgMCkKLSAgICAgICAgICAgICAgICAg ICAgICAgIExPR0UoRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4Y19kb21h aW5faW9tZW1fcGVybWlzc2lvbiBlcnJvciAweCV4LzB4JXgiLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSk7Cisg ICAgICAgICAgICAgICAgICAgICAgICBMT0dFRChFUlJPUiwgZG9tYWluaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAieGNfZG9tYWluX2lvbWVtX3Blcm1pc3Npb24gZXJyb3IgMHgl eC8weCV4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgfQogICAgICAgICB9CkBAIC0xNDQ0LDE3ICsxNDQ5LDE3IEBAIHNraXAxOgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBjaWRldi0+YnVzLCBwY2lkZXYtPmRldiwgcGNpZGV2LT5m dW5jKTsKICAgICAgICAgZiA9IGZvcGVuKHN5c2ZzX3BhdGgsICJyIik7CiAgICAgICAgIGlmIChm ID09IE5VTEwpIHsKLSAgICAgICAgICAgIExPR0UoRVJST1IsICJDb3VsZG4ndCBvcGVuICVzIiwg c3lzZnNfcGF0aCk7CisgICAgICAgICAgICBMT0dFRChFUlJPUiwgZG9tYWluaWQsICJDb3VsZG4n dCBvcGVuICVzIiwgc3lzZnNfcGF0aCk7CiAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAg fQogICAgICAgICBpZiAoKGZzY2FuZihmLCAiJXUiLCAmaXJxKSA9PSAxKSAmJiBpcnEpIHsKICAg ICAgICAgICAgIHJjID0geGNfcGh5c2Rldl91bm1hcF9waXJxKGN0eC0+eGNoLCBkb21pZCwgaXJx KTsKICAgICAgICAgICAgIGlmIChyYyA8IDApIHsKLSAgICAgICAgICAgICAgICBMT0dFKEVSUk9S LCAieGNfcGh5c2Rldl91bm1hcF9waXJxIGlycT0lZCIsIGlycSk7CisgICAgICAgICAgICAgICAg TE9HRUQoRVJST1IsIGRvbWFpbmlkLCAieGNfcGh5c2Rldl91bm1hcF9waXJxIGlycT0lZCIsIGly cSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByYyA9IHhjX2RvbWFpbl9pcnFfcGVybWlz c2lvbihjdHgtPnhjaCwgZG9taWQsIGlycSwgMCk7CiAgICAgICAgICAgICBpZiAocmMgPCAwKSB7 Ci0gICAgICAgICAgICAgICAgTE9HRShFUlJPUiwgInhjX2RvbWFpbl9pcnFfcGVybWlzc2lvbiBp cnE9JWQiLCBpcnEpOworICAgICAgICAgICAgICAgIExPR0VEKEVSUk9SLCBkb21haW5pZCwgInhj X2RvbWFpbl9pcnFfcGVybWlzc2lvbiBpcnE9JWQiLCBpcnEpOwogICAgICAgICAgICAgfQogICAg ICAgICB9CiAgICAgICAgIGZjbG9zZShmKTsKQEAgLTE0NjUsMTAgKzE0NzAsMTAgQEAgb3V0Ogog ICAgICAgICBsaWJ4bF9fZGV2aWNlX3BjaV9yZXNldChnYywgcGNpZGV2LT5kb21haW4sIHBjaWRl di0+YnVzLCBwY2lkZXYtPmRldiwgcGNpZGV2LT5mdW5jKTsKICAgICB9CiAKLSAgICBpZiAoIWxp YnhsX2lzX3N0dWJkb20oY3R4LCBkb21pZCwgTlVMTCkpIHsKKyAgICBpZiAoIWlzc3R1YmRvbSkg ewogICAgICAgICByYyA9IHhjX2RlYXNzaWduX2RldmljZShjdHgtPnhjaCwgZG9taWQsIHBjaWRl dl9lbmNvZGVfYmRmKHBjaWRldikpOwogICAgICAgICBpZiAocmMgPCAwICYmIChodm0gfHwgZXJy bm8gIT0gRU5PU1lTKSkKLSAgICAgICAgICAgIExPR0UoRVJST1IsICJ4Y19kZWFzc2lnbl9kZXZp Y2UgZmFpbGVkIik7CisgICAgICAgICAgICBMT0dFRChFUlJPUiwgZG9tYWluaWQsICJ4Y19kZWFz c2lnbl9kZXZpY2UgZmFpbGVkIik7CiAgICAgfQogCiAgICAgc3R1YmRvbWlkID0gbGlieGxfZ2V0 X3N0dWJkb21faWQoY3R4LCBkb21pZCk7CkBAIC0xNjU1LDE3ICsxNjYwLDE3IEBAIGludCBsaWJ4 bF9fZ3JhbnRfdmdhX2lvbWVtX3Blcm1pc3Npb24obGlieGxfX2djICpnYywgY29uc3QgdWludDMy X3QgZG9taWQsCiAKICAgICAgICAgRklMRSAqZiA9IGZvcGVuKHBjaV9kZXZpY2VfY2xhc3NfcGF0 aCwgInIiKTsKICAgICAgICAgaWYgKCFmKSB7Ci0gICAgICAgICAgICBMT0dFKEVSUk9SLAotICAg ICAgICAgICAgICAgICAicGNpIGRldmljZSAiUENJX0JERiIgZG9lcyBub3QgaGF2ZSBjbGFzcyBh dHRyaWJ1dGUiLAotICAgICAgICAgICAgICAgICBwY2lkZXYtPmRvbWFpbiwgcGNpZGV2LT5idXMs IHBjaWRldi0+ZGV2LCBwY2lkZXYtPmZ1bmMpOworICAgICAgICAgICAgTE9HRUQoRVJST1IsIGRv bWlkLAorICAgICAgICAgICAgICAgICAgInBjaSBkZXZpY2UgIlBDSV9CREYiIGRvZXMgbm90IGhh dmUgY2xhc3MgYXR0cmlidXRlIiwKKyAgICAgICAgICAgICAgICAgIHBjaWRldi0+ZG9tYWluLCBw Y2lkZXYtPmJ1cywgcGNpZGV2LT5kZXYsIHBjaWRldi0+ZnVuYyk7CiAgICAgICAgICAgICBjb250 aW51ZTsKICAgICAgICAgfQogICAgICAgICByZWFkX2l0ZW1zID0gZnNjYW5mKGYsICIweCVseFxu IiwgJnBjaV9kZXZpY2VfY2xhc3MpOwogICAgICAgICBmY2xvc2UoZik7CiAgICAgICAgIGlmIChy ZWFkX2l0ZW1zICE9IDEpIHsKLSAgICAgICAgICAgIExPR0UoRVJST1IsCi0gICAgICAgICAgICAg ICAgICJjYW5ub3QgcmVhZCBjbGFzcyBvZiBwY2kgZGV2aWNlICJQQ0lfQkRGLAotICAgICAgICAg ICAgICAgICBwY2lkZXYtPmRvbWFpbiwgcGNpZGV2LT5idXMsIHBjaWRldi0+ZGV2LCBwY2lkZXYt PmZ1bmMpOworICAgICAgICAgICAgTE9HRUQoRVJST1IsIGRvbWlkLAorICAgICAgICAgICAgICAg ICAgImNhbm5vdCByZWFkIGNsYXNzIG9mIHBjaSBkZXZpY2UgIlBDSV9CREYsCisgICAgICAgICAg ICAgICAgICBwY2lkZXYtPmRvbWFpbiwgcGNpZGV2LT5idXMsIHBjaWRldi0+ZGV2LCBwY2lkZXYt PmZ1bmMpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHBj aV9kZXZpY2VfY2xhc3MgIT0gMHgwMzAwMDApIC8qIFZHQSBjbGFzcyAqLwpAQCAtMTY3NSwyMCAr MTY4MCwyMCBAQCBpbnQgbGlieGxfX2dyYW50X3ZnYV9pb21lbV9wZXJtaXNzaW9uKGxpYnhsX19n YyAqZ2MsIGNvbnN0IHVpbnQzMl90IGRvbWlkLAogICAgICAgICByZXQgPSB4Y19kb21haW5faW9t ZW1fcGVybWlzc2lvbihDVFgtPnhjaCwgc3R1YmRvbV9kb21pZCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmdhX2lvbWVtX3N0YXJ0LCAweDIwLCAxKTsKICAgICAg ICAgaWYgKHJldCA8IDApIHsKLSAgICAgICAgICAgIExPR0UoRVJST1IsCi0gICAgICAgICAgICAg ICAgICJmYWlsZWQgdG8gZ2l2ZSBzdHViZG9tJWQgYWNjZXNzIHRvIGlvbWVtIHJhbmdlICIKLSAg ICAgICAgICAgICAgICAgIiUiUFJJeDY0Ii0lIlBSSXg2NCIgZm9yIFZHQSBwYXNzdGhydSIsCi0g ICAgICAgICAgICAgICAgIHN0dWJkb21fZG9taWQsCi0gICAgICAgICAgICAgICAgIHZnYV9pb21l bV9zdGFydCwgKHZnYV9pb21lbV9zdGFydCArIDB4MjAgLSAxKSk7CisgICAgICAgICAgICBMT0dF RChFUlJPUiwgZG9taWQsCisgICAgICAgICAgICAgICAgICAiZmFpbGVkIHRvIGdpdmUgc3R1YmRv bSVkIGFjY2VzcyB0byBpb21lbSByYW5nZSAiCisgICAgICAgICAgICAgICAgICAiJSJQUkl4NjQi LSUiUFJJeDY0IiBmb3IgVkdBIHBhc3N0aHJ1IiwKKyAgICAgICAgICAgICAgICAgIHN0dWJkb21f ZG9taWQsCisgICAgICAgICAgICAgICAgICB2Z2FfaW9tZW1fc3RhcnQsICh2Z2FfaW9tZW1fc3Rh cnQgKyAweDIwIC0gMSkpOwogICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICAgfQogICAg ICAgICByZXQgPSB4Y19kb21haW5faW9tZW1fcGVybWlzc2lvbihDVFgtPnhjaCwgZG9taWQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZnYV9pb21lbV9zdGFydCwg MHgyMCwgMSk7CiAgICAgICAgIGlmIChyZXQgPCAwKSB7Ci0gICAgICAgICAgICBMT0dFKEVSUk9S LAotICAgICAgICAgICAgICAgICAiZmFpbGVkIHRvIGdpdmUgZG9tJWQgYWNjZXNzIHRvIGlvbWVt IHJhbmdlICIKLSAgICAgICAgICAgICAgICAgIiUiUFJJeDY0Ii0lIlBSSXg2NCIgZm9yIFZHQSBw YXNzdGhydSIsCi0gICAgICAgICAgICAgICAgIGRvbWlkLCB2Z2FfaW9tZW1fc3RhcnQsICh2Z2Ff aW9tZW1fc3RhcnQgKyAweDIwIC0gMSkpOworICAgICAgICAgICAgTE9HRUQoRVJST1IsIGRvbWlk LAorICAgICAgICAgICAgICAgICAgImZhaWxlZCB0byBnaXZlIGRvbSVkIGFjY2VzcyB0byBpb21l bSByYW5nZSAiCisgICAgICAgICAgICAgICAgICAiJSJQUkl4NjQiLSUiUFJJeDY0IiBmb3IgVkdB IHBhc3N0aHJ1IiwKKyAgICAgICAgICAgICAgICAgIGRvbWlkLCB2Z2FfaW9tZW1fc3RhcnQsICh2 Z2FfaW9tZW1fc3RhcnQgKyAweDIwIC0gMSkpOwogICAgICAgICAgICAgcmV0dXJuIHJldDsKICAg ICAgICAgfQogICAgICAgICBicmVhazsKLS0gCjIuMTAuMQoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=