From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= Subject: [PATCH v2 15/35] libxl/libxl_dm.c: used LOG*D functions Date: Fri, 2 Dec 2016 16:08:21 +0100 Message-ID: <20161202150841.31227-16-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 bGlieGxfZG0uYyB8IDExMSArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfZG0uYyBiL3Rvb2xzL2xpYnhsL2xp YnhsX2RtLmMKaW5kZXggYWQzNjZhOC4uYmU5MjhhZCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv bGlieGxfZG0uYworKysgYi90b29scy9saWJ4bC9saWJ4bF9kbS5jCkBAIC00NTUsNyArNDU1LDcg QEAgc3RhdGljIGludCBsaWJ4bF9fYnVpbGRfZGV2aWNlX21vZGVsX2FyZ3Nfb2xkKGxpYnhsX19n YyAqZ2MsCiAgICAgICAgIGlmICh2bmMtPmxpc3RlbikgewogICAgICAgICAgICAgaWYgKHN0cmNo cih2bmMtPmxpc3RlbiwgJzonKSAhPSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgaWYgKHZuYy0+ ZGlzcGxheSkgewotICAgICAgICAgICAgICAgICAgICBMT0coRVJST1IsICJ2bmNkaXNwbGF5IHNl dCwgdm5jbGlzdGVuIGNvbnRhaW5zIGRpc3BsYXkiKTsKKyAgICAgICAgICAgICAgICAgICAgTE9H RChFUlJPUiwgZG9taWQsICJ2bmNkaXNwbGF5IHNldCwgdm5jbGlzdGVuIGNvbnRhaW5zIGRpc3Bs YXkiKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVSUk9SX0lOVkFMOwogICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICB2bmNhcmcgPSB2bmMtPmxpc3RlbjsKQEAgLTUwMiwx NSArNTAyLDE1IEBAIHN0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9hcmdzX29s ZChsaWJ4bF9fZ2MgKmdjLAogICAgICAgICBjaGFyICpzOwogCiAgICAgICAgIGlmIChiX2luZm8t Pmtlcm5lbCkgewotICAgICAgICAgICAgTE9HKEVSUk9SLCAiSFZNIGRpcmVjdCBrZXJuZWwgYm9v dCBpcyBub3Qgc3VwcG9ydGVkIGJ5ICIKLSAgICAgICAgICAgICAgICAicWVtdS14ZW4tdHJhZGl0 aW9uYWwiKTsKKyAgICAgICAgICAgIExPR0QoRVJST1IsIGRvbWlkLCAiSFZNIGRpcmVjdCBrZXJu ZWwgYm9vdCBpcyBub3Qgc3VwcG9ydGVkIGJ5ICIKKyAgICAgICAgICAgICAgICAgInFlbXUteGVu LXRyYWRpdGlvbmFsIik7CiAgICAgICAgICAgICByZXR1cm4gRVJST1JfSU5WQUw7CiAgICAgICAg IH0KIAogICAgICAgICBpZiAoYl9pbmZvLT51Lmh2bS5zZXJpYWwgfHwgYl9pbmZvLT51Lmh2bS5z ZXJpYWxfbGlzdCkgewogICAgICAgICAgICAgaWYgKCBiX2luZm8tPnUuaHZtLnNlcmlhbCAmJiBi X2luZm8tPnUuaHZtLnNlcmlhbF9saXN0ICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg ICBMT0coRVJST1IsICJCb3RoIHNlcmlhbCBhbmQgc2VyaWFsX2xpc3Qgc2V0Iik7CisgICAgICAg ICAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJCb3RoIHNlcmlhbCBhbmQgc2VyaWFsX2xpc3Qg c2V0Iik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVSUk9SX0lOVkFMOwogICAgICAgICAgICAg fQogICAgICAgICAgICAgaWYgKGJfaW5mby0+dS5odm0uc2VyaWFsKSB7CkBAIC01NTAsNyArNTUw LDcgQEAgc3RhdGljIGludCBsaWJ4bF9fYnVpbGRfZGV2aWNlX21vZGVsX2FyZ3Nfb2xkKGxpYnhs X19nYyAqZ2MsCiAgICAgICAgIGNhc2UgTElCWExfVkdBX0lOVEVSRkFDRV9UWVBFX1FYTDoKICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgTE9HKEVSUk9S LCAiSW52YWxpZCBlbXVsYXRlZCB2aWRlbyBjYXJkIHNwZWNpZmllZCIpOworICAgICAgICAgICAg TE9HRChFUlJPUiwgZG9taWQsICJJbnZhbGlkIGVtdWxhdGVkIHZpZGVvIGNhcmQgc3BlY2lmaWVk Iik7CiAgICAgICAgICAgICByZXR1cm4gRVJST1JfSU5WQUw7CiAgICAgICAgIH0KIApAQCAtNTYy LDcgKzU2Miw3IEBAIHN0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9hcmdzX29s ZChsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgfHwgYl9pbmZvLT51Lmh2bS51c2JkZXZpY2Vf bGlzdCkgewogICAgICAgICAgICAgaWYgKCBiX2luZm8tPnUuaHZtLnVzYmRldmljZSAmJiBiX2lu Zm8tPnUuaHZtLnVzYmRldmljZV9saXN0ICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg ICBMT0coRVJST1IsICJCb3RoIHVzYmRldmljZSBhbmQgdXNiZGV2aWNlX2xpc3Qgc2V0Iik7Cisg ICAgICAgICAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJCb3RoIHVzYmRldmljZSBhbmQgdXNi ZGV2aWNlX2xpc3Qgc2V0Iik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVSUk9SX0lOVkFMOwog ICAgICAgICAgICAgfQogICAgICAgICAgICAgZmxleGFycmF5X2FwcGVuZChkbV9hcmdzLCAiLXVz YiIpOwpAQCAtNjMyLDcgKzYzMiw3IEBAIHN0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9t b2RlbF9hcmdzX29sZChsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgIGZsZXhhcnJheV9h cHBlbmQoZG1fYXJncywgIi1nZnhfcGFzc3RocnUiKTsKICAgICAgICAgICAgICAgICBicmVhazsK ICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgTE9HKEVSUk9SLCAidW5zdXBw b3J0ZWQgZ2Z4X3Bhc3N0aHJ1X2tpbmQuIik7CisgICAgICAgICAgICAgICAgTE9HRChFUlJPUiwg ZG9taWQsICJ1bnN1cHBvcnRlZCBnZnhfcGFzc3RocnVfa2luZC4iKTsKICAgICAgICAgICAgICAg ICByZXR1cm4gRVJST1JfSU5WQUw7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTk3MCw3 ICs5NzAsNyBAQCBzdGF0aWMgaW50IGxpYnhsX19idWlsZF9kZXZpY2VfbW9kZWxfYXJnc19uZXco bGlieGxfX2djICpnYywKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1 bHQ6CiAgICAgICAgICAgICAgICAgLyogV2UndmUgZm9yZ290dGVuIHRvIGFkZCB0aGUgY2xhdXNl ICovCi0gICAgICAgICAgICAgICAgTE9HKEVSUk9SLCAiJXM6IHVua25vd24gY2hhbm5lbCBjb25u ZWN0aW9uICVkIiwKKyAgICAgICAgICAgICAgICBMT0dEKEVSUk9SLCBndWVzdF9kb21pZCwgIiVz OiB1bmtub3duIGNoYW5uZWwgY29ubmVjdGlvbiAlZCIsCiAgICAgICAgICAgICAgICAgICAgIF9f ZnVuY19fLCBjb25uZWN0aW9uKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVJST1JfSU5WQUw7 CiAgICAgICAgIH0KQEAgLTEwMTQsNyArMTAxNCw4IEBAIHN0YXRpYyBpbnQgbGlieGxfX2J1aWxk X2RldmljZV9tb2RlbF9hcmdzX25ldyhsaWJ4bF9fZ2MgKmdjLAogICAgICAgICBpZiAodm5jLT5s aXN0ZW4pIHsKICAgICAgICAgICAgIGlmIChzdHJjaHIodm5jLT5saXN0ZW4sICc6JykgIT0gTlVM TCkgewogICAgICAgICAgICAgICAgIGlmICh2bmMtPmRpc3BsYXkpIHsKLSAgICAgICAgICAgICAg ICAgICAgTE9HKEVSUk9SLCAidm5jZGlzcGxheSBzZXQsIHZuY2xpc3RlbiBjb250YWlucyBkaXNw bGF5Iik7CisgICAgICAgICAgICAgICAgICAgIExPR0QoRVJST1IsIGd1ZXN0X2RvbWlkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICJ2bmNkaXNwbGF5IHNldCwgdm5jbGlzdGVuIGNvbnRhaW5z IGRpc3BsYXkiKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVSUk9SX0lOVkFMOwogICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB2bmNhcmcgPSB2bmMtPmxpc3RlbjsKQEAg LTEwNzUsNyArMTA3Niw3IEBAIHN0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9h cmdzX25ldyhsaWJ4bF9fZ2MgKmdjLAogICAgICAgICBpZiAoYl9pbmZvLT51Lmh2bS5zZXJpYWwg fHwgYl9pbmZvLT51Lmh2bS5zZXJpYWxfbGlzdCkgewogICAgICAgICAgICAgaWYgKCBiX2luZm8t PnUuaHZtLnNlcmlhbCAmJiBiX2luZm8tPnUuaHZtLnNlcmlhbF9saXN0ICkKICAgICAgICAgICAg IHsKLSAgICAgICAgICAgICAgICBMT0coRVJST1IsICJCb3RoIHNlcmlhbCBhbmQgc2VyaWFsX2xp c3Qgc2V0Iik7CisgICAgICAgICAgICAgICAgTE9HRChFUlJPUiwgZ3Vlc3RfZG9taWQsICJCb3Ro IHNlcmlhbCBhbmQgc2VyaWFsX2xpc3Qgc2V0Iik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVS Uk9SX0lOVkFMOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGJfaW5mby0+dS5odm0u c2VyaWFsKSB7CkBAIC0xMTMzLDcgKzExMzQsNyBAQCBzdGF0aWMgaW50IGxpYnhsX19idWlsZF9k ZXZpY2VfbW9kZWxfYXJnc19uZXcobGlieGxfX2djICpnYywKICAgICAgICAgICAgICAgICAoYl9p bmZvLT52aWRlb19tZW1rYi8yLzEwMjQpLCAoYl9pbmZvLT52aWRlb19tZW1rYi8yLzEwMjQpICkg KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgTE9H KEVSUk9SLCAiSW52YWxpZCBlbXVsYXRlZCB2aWRlbyBjYXJkIHNwZWNpZmllZCIpOworICAgICAg ICAgICAgTE9HRChFUlJPUiwgZ3Vlc3RfZG9taWQsICJJbnZhbGlkIGVtdWxhdGVkIHZpZGVvIGNh cmQgc3BlY2lmaWVkIik7CiAgICAgICAgICAgICByZXR1cm4gRVJST1JfSU5WQUw7CiAgICAgICAg IH0KIApAQCAtMTE0Niw3ICsxMTQ3LDcgQEAgc3RhdGljIGludCBsaWJ4bF9fYnVpbGRfZGV2aWNl X21vZGVsX2FyZ3NfbmV3KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAgICB8fCBiX2luZm8tPnUu aHZtLnVzYmRldmljZV9saXN0KSB7CiAgICAgICAgICAgICBpZiAoIGJfaW5mby0+dS5odm0udXNi ZGV2aWNlICYmIGJfaW5mby0+dS5odm0udXNiZGV2aWNlX2xpc3QgKQogICAgICAgICAgICAgewot ICAgICAgICAgICAgICAgIExPRyhFUlJPUiwgIkJvdGggdXNiZGV2aWNlIGFuZCB1c2JkZXZpY2Vf bGlzdCBzZXQiKTsKKyAgICAgICAgICAgICAgICBMT0dEKEVSUk9SLCBndWVzdF9kb21pZCwgIkJv dGggdXNiZGV2aWNlIGFuZCB1c2JkZXZpY2VfbGlzdCBzZXQiKTsKICAgICAgICAgICAgICAgICBy ZXR1cm4gRVJST1JfSU5WQUw7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBmbGV4YXJyYXlf YXBwZW5kKGRtX2FyZ3MsICItdXNiIik7CkBAIC0xMTgzLDcgKzExODQsNyBAQCBzdGF0aWMgaW50 IGxpYnhsX19idWlsZF9kZXZpY2VfbW9kZWxfYXJnc19uZXcobGlieGxfX2djICpnYywKICAgICAg ICAgICAgICAgICAgICAgIi1kZXZpY2UiLCAibmVjLXVzYi14aGNpLGlkPXVzYiIsIE5VTEwpOwog ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAg ICAgICBMT0coRVJST1IsICJ1c2J2ZXJzaW9uIHBhcmFtZXRlciBpcyBpbnZhbGlkLCAiCisgICAg ICAgICAgICAgICAgTE9HRChFUlJPUiwgZ3Vlc3RfZG9taWQsICJ1c2J2ZXJzaW9uIHBhcmFtZXRl ciBpcyBpbnZhbGlkLCAiCiAgICAgICAgICAgICAgICAgICAgICJtdXN0IGJlIGJldHdlZW4gMSBh bmQgMyIpOwogICAgICAgICAgICAgICAgIHJldHVybiBFUlJPUl9JTlZBTDsKICAgICAgICAgICAg IH0KQEAgLTExOTYsNyArMTE5Nyw3IEBAIHN0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9t b2RlbF9hcmdzX25ldyhsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAgICAgICAgR0NT UFJJTlRGKCJ1c2ItcmVkaXIsY2hhcmRldj11c2JyYyVkLCIKICAgICAgICAgICAgICAgICAgICAg ICAgICJpZD11c2JyYyVkIiwgaSwgaSksIE5VTEwpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAg ICAgICAgICAgICAgICBMT0coRVJST1IsICJ1c2JyZWRpcmVjdGlvbiBwYXJhbWV0ZXIgaXMgaW52 YWxpZCwgIgorICAgICAgICAgICAgICAgIExPR0QoRVJST1IsIGd1ZXN0X2RvbWlkLCAidXNicmVk aXJlY3Rpb24gcGFyYW1ldGVyIGlzIGludmFsaWQsICIKICAgICAgICAgICAgICAgICAgICAgIml0 IG11c3QgYmUgYmV0d2VlbiAxIGFuZCA0Iik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVSUk9S X0lOVkFMOwogICAgICAgICAgICAgfQpAQCAtMTI4Miw4ICsxMjgzLDggQEAgc3RhdGljIGludCBs aWJ4bF9fYnVpbGRfZGV2aWNlX21vZGVsX2FyZ3NfbmV3KGxpYnhsX19nYyAqZ2MsCiAgICAgICAg ICAgICAgICAgKGJfaW5mby0+dS5odm0ubW1pb19ob2xlX21lbWtiIDw8IDEwKTsKIAogICAgICAg ICAgICAgaWYgKG1heF9yYW1fYmVsb3dfNGcgPiBIVk1fQkVMT1dfNEdfTU1JT19TVEFSVCkgewot ICAgICAgICAgICAgICAgIExPRyhXQVJOLCAibW1pb19ob2xlX21lbWtiPSUiUFJJdTY0Ci0gICAg ICAgICAgICAgICAgICAgICIgaW52YWxpZCBpZ25vcmVkLlxuIiwKKyAgICAgICAgICAgICAgICBM T0dEKFdBUk4sIGd1ZXN0X2RvbWlkLCAibW1pb19ob2xlX21lbWtiPSUiUFJJdTY0CisgICAgICAg ICAgICAgICAgICAgICAiIGludmFsaWQgaWdub3JlZC5cbiIsCiAgICAgICAgICAgICAgICAgICAg IGJfaW5mby0+dS5odm0ubW1pb19ob2xlX21lbWtiKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAg ICAgICAgICAgICAgICAgbWFjaGluZWFyZyA9IEdDU1BSSU5URigiJXMsbWF4LXJhbS1iZWxvdy00 Zz0lIlBSSXU2NCwKQEAgLTEyOTksMTAgKzEzMDAsMTAgQEAgc3RhdGljIGludCBsaWJ4bF9fYnVp bGRfZGV2aWNlX21vZGVsX2FyZ3NfbmV3KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAgICAgICAg bWFjaGluZWFyZyA9IEdDU1BSSU5URigiJXMsaWdkLXBhc3N0aHJ1PW9uIiwgbWFjaGluZWFyZyk7 CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIExJQlhMX0dGWF9QQVNT VEhSVV9LSU5EX0RFRkFVTFQ6Ci0gICAgICAgICAgICAgICAgTE9HKEVSUk9SLCAidW5hYmxlIHRv IGRldGVjdCByZXF1aXJlZCBnZnhfcGFzc3RocnVfa2luZCIpOworICAgICAgICAgICAgICAgIExP R0QoRVJST1IsIGd1ZXN0X2RvbWlkLCAidW5hYmxlIHRvIGRldGVjdCByZXF1aXJlZCBnZnhfcGFz c3RocnVfa2luZCIpOwogICAgICAgICAgICAgICAgIHJldHVybiBFUlJPUl9GQUlMOwogICAgICAg ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBMT0coRVJST1IsICJpbnZhbGlkIHZhbHVl IGZvciBnZnhfcGFzc3RocnVfa2luZCIpOworICAgICAgICAgICAgICAgIExPR0QoRVJST1IsIGd1 ZXN0X2RvbWlkLCAiaW52YWxpZCB2YWx1ZSBmb3IgZ2Z4X3Bhc3N0aHJ1X2tpbmQiKTsKICAgICAg ICAgICAgICAgICByZXR1cm4gRVJST1JfSU5WQUw7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K QEAgLTEzMzIsOCArMTMzMyw4IEBAIHN0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2Rl bF9hcmdzX25ldyhsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgaW50IGNvbG9fbW9kZTsKIAog ICAgICAgICAgICAgaWYgKGRldl9udW1iZXIgPT0gLTEpIHsKLSAgICAgICAgICAgICAgICBMT0co V0FSTiwgInVuYWJsZSB0byBkZXRlcm1pbmUiIiBkaXNrIG51bWJlciBmb3IgJXMiLAotICAgICAg ICAgICAgICAgICAgICBkaXNrc1tpXS52ZGV2KTsKKyAgICAgICAgICAgICAgICBMT0dEKFdBUk4s IGd1ZXN0X2RvbWlkLCAidW5hYmxlIHRvIGRldGVybWluZSIiIGRpc2sgbnVtYmVyIGZvciAlcyIs CisgICAgICAgICAgICAgICAgICAgICBkaXNrc1tpXS52ZGV2KTsKICAgICAgICAgICAgICAgICBj b250aW51ZTsKICAgICAgICAgICAgIH0KIApAQCAtMTM0OCwxNyArMTM0OSwxNyBAQCBzdGF0aWMg aW50IGxpYnhsX19idWlsZF9kZXZpY2VfbW9kZWxfYXJnc19uZXcobGlieGxfX2djICpnYywKIAog ICAgICAgICAgICAgaWYgKGRpc2tzW2ldLmZvcm1hdCA9PSBMSUJYTF9ESVNLX0ZPUk1BVF9FTVBU WSkgewogICAgICAgICAgICAgICAgIGlmICghZGlza3NbaV0uaXNfY2Ryb20pIHsKLSAgICAgICAg ICAgICAgICAgICAgTE9HKFdBUk4sICJDYW5ub3Qgc3VwcG9ydCBlbXB0eSBkaXNrIGZvcm1hdCBm b3IgJXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgZGlza3NbaV0udmRldik7CisgICAgICAg ICAgICAgICAgICAgIExPR0QoV0FSTiwgZ3Vlc3RfZG9taWQsICJDYW5ub3Qgc3VwcG9ydCBlbXB0 eSBkaXNrIGZvcm1hdCBmb3IgJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2tzW2ld LnZkZXYpOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmIChmb3JtYXQgPT0gTlVM TCkgewotICAgICAgICAgICAgICAgICAgICBMT0coV0FSTiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICJVbmFibGUgdG8gZGV0ZXJtaW5lIGRpc2sgaW1hZ2UgZm9ybWF0OiAlc1xuIgotICAgICAg ICAgICAgICAgICAgICAgICAgIkRpc2sgd2lsbCBiZSBhdmFpbGFibGUgdmlhIFBWIGRyaXZlcnMg YnV0IG5vdCBhcyBhbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICJlbXVsYXRlZCBkaXNrLiIs Ci0gICAgICAgICAgICAgICAgICAgICAgICBkaXNrc1tpXS52ZGV2KTsKKyAgICAgICAgICAgICAg ICAgICAgTE9HRChXQVJOLCBndWVzdF9kb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAi VW5hYmxlIHRvIGRldGVybWluZSBkaXNrIGltYWdlIGZvcm1hdDogJXNcbiIKKyAgICAgICAgICAg ICAgICAgICAgICAgICAiRGlzayB3aWxsIGJlIGF2YWlsYWJsZSB2aWEgUFYgZHJpdmVycyBidXQg bm90IGFzIGFuIgorICAgICAgICAgICAgICAgICAgICAgICAgICJlbXVsYXRlZCBkaXNrLiIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgZGlza3NbaV0udmRldik7CiAgICAgICAgICAgICAgICAg ICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KIApAQCAtMTM3OCwxMCArMTM3OSwxMCBA QCBzdGF0aWMgaW50IGxpYnhsX19idWlsZF9kZXZpY2VfbW9kZWxfYXJnc19uZXcobGlieGxfX2dj ICpnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn dWVzdF9kb21pZCwgJmRpc2tzW2ldLCB0cnVlKTsKIAogICAgICAgICAgICAgICAgIGlmICghdGFy Z2V0X3BhdGgpIHsKLSAgICAgICAgICAgICAgICAgICAgTE9HKFdBUk4sICJObyB3YXkgdG8gZ2V0 IGxvY2FsIGFjY2VzcyBkaXNrIHRvIGltYWdlOiAlc1xuIgotICAgICAgICAgICAgICAgICAgICAg ICAgIkRpc2sgd2lsbCBiZSBhdmFpbGFibGUgdmlhIFBWIGRyaXZlcnMgYnV0IG5vdCBhcyBhbiIK LSAgICAgICAgICAgICAgICAgICAgICAgICJlbXVsYXRlZCBkaXNrLiIsCi0gICAgICAgICAgICAg ICAgICAgICAgICBkaXNrc1tpXS52ZGV2KTsKKyAgICAgICAgICAgICAgICAgICAgTE9HRChXQVJO LCBndWVzdF9kb21pZCwgIk5vIHdheSB0byBnZXQgbG9jYWwgYWNjZXNzIGRpc2sgdG8gaW1hZ2U6 ICVzXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgIkRpc2sgd2lsbCBiZSBhdmFpbGFibGUg dmlhIFBWIGRyaXZlcnMgYnV0IG5vdCBhcyBhbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAi ZW11bGF0ZWQgZGlzay4iLAorICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2tzW2ldLnZkZXYp OwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICB9CkBAIC0xNDI2LDcgKzE0MjcsOCBAQCBzdGF0aWMgaW50IGxpYnhsX19idWlsZF9k ZXZpY2VfbW9kZWxfYXJnc19uZXcobGlieGxfX2djICpnYywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb19tb2RlKTsKICAgICAgICAg ICAgICAgICB9IGVsc2UgaWYgKGRpc2sgPCA2ICYmIGJfaW5mby0+dS5odm0uaGR0eXBlID09IExJ QlhMX0hEVFlQRV9BSENJKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghZGlza3NbaV0ucmVh ZHdyaXRlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBMT0coRVJST1IsICJxZW11LXhlbiBk b2Vzbid0IHN1cHBvcnQgcmVhZC1vbmx5IEFIQ0kgZGlzayBkcml2ZXJzIik7CisgICAgICAgICAg ICAgICAgICAgICAgICBMT0dEKEVSUk9SLCBndWVzdF9kb21pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgInFlbXUteGVuIGRvZXNuJ3Qgc3VwcG9ydCByZWFkLW9ubHkgQUhDSSBkaXNr IGRyaXZlcnMiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUlJPUl9JTlZBTDsK ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBmbGV4YXJyYXlfdmFw cGVuZChkbV9hcmdzLCAiLWRyaXZlIiwKQEAgLTE0MzcsNyArMTQzOSw4IEBAIHN0YXRpYyBpbnQg bGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9hcmdzX25ldyhsaWJ4bF9fZ2MgKmdjLAogICAgICAg ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRpc2sg PCA0KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghZGlza3NbaV0ucmVhZHdyaXRlKSB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICBMT0coRVJST1IsICJxZW11LXhlbiBkb2Vzbid0IHN1cHBv cnQgcmVhZC1vbmx5IElERSBkaXNrIGRyaXZlcnMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg IExPR0QoRVJST1IsIGd1ZXN0X2RvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi cWVtdS14ZW4gZG9lc24ndCBzdXBwb3J0IHJlYWQtb25seSBJREUgZGlzayBkcml2ZXJzIik7CiAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVJST1JfSU5WQUw7CiAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbG9fbW9kZSA9PSBMSUJYTF9fQ09M T19TRUNPTkRBUlkpIHsKQEAgLTE0OTAsMTQgKzE0OTMsMTQgQEAgc3RhdGljIGludCBsaWJ4bF9f YnVpbGRfZGV2aWNlX21vZGVsX2FyZ3NfbmV3KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgIGlmIChy ZXQgPCAwKQogICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICAgaWYgKHJldCA+IDApIHsK LSAgICAgICAgICAgIExPRyhXQVJOLCAiQ291bGQgbm90IGZpbmQgdXNlciAlcyVkLCBmYWxsaW5n IGJhY2sgdG8gJXMiLAorICAgICAgICAgICAgTE9HRChXQVJOLCBndWVzdF9kb21pZCwgIkNvdWxk IG5vdCBmaW5kIHVzZXIgJXMlZCwgZmFsbGluZyBiYWNrIHRvICVzIiwKICAgICAgICAgICAgICAg ICAgICAgTElCWExfUUVNVV9VU0VSX0JBU0UsIGd1ZXN0X2RvbWlkLCBMSUJYTF9RRU1VX1VTRVJf U0hBUkVEKTsKICAgICAgICAgICAgIGdvdG8gZW5kX3NlYXJjaDsKICAgICAgICAgfQogCiAgICAg ICAgIHVzZXIgPSBOVUxMOwotICAgICAgICBMT0coREVCVUcsICJDb3VsZCBub3QgZmluZCB1c2Vy ICVzLCBzdGFydGluZyBRRU1VIGFzIHJvb3QiLAotICAgICAgICAgICAgTElCWExfUUVNVV9VU0VS X1NIQVJFRCk7CisgICAgICAgIExPR0QoREVCVUcsIGd1ZXN0X2RvbWlkLCAiQ291bGQgbm90IGZp bmQgdXNlciAlcywgc3RhcnRpbmcgUUVNVSBhcyByb290IiwKKyAgICAgICAgICAgICBMSUJYTF9R RU1VX1VTRVJfU0hBUkVEKTsKIAogZW5kX3NlYXJjaDoKICAgICAgICAgaWYgKHVzZXIgIT0gTlVM TCAmJiBzdHJjbXAodXNlciwgInJvb3QiKSkgewpAQCAtMTUzNiw4ICsxNTM5LDggQEAgc3RhdGlj IGludCBsaWJ4bF9fYnVpbGRfZGV2aWNlX21vZGVsX2FyZ3MobGlieGxfX2djICpnYywKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncywgZW52cywK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUs IGRtX3N0YXRlX2ZkKTsKICAgICBkZWZhdWx0OgotICAgICAgICBMT0dFKEVSUk9SLCAidW5rbm93 biBkZXZpY2UgbW9kZWwgdmVyc2lvbiAlZCIsCi0gICAgICAgICAgICAgZ3Vlc3RfY29uZmlnLT5i X2luZm8uZGV2aWNlX21vZGVsX3ZlcnNpb24pOworICAgICAgICBMT0dFRChFUlJPUiwgZ3Vlc3Rf ZG9taWQsICJ1bmtub3duIGRldmljZSBtb2RlbCB2ZXJzaW9uICVkIiwKKyAgICAgICAgICAgICAg Z3Vlc3RfY29uZmlnLT5iX2luZm8uZGV2aWNlX21vZGVsX3ZlcnNpb24pOwogICAgICAgICByZXR1 cm4gRVJST1JfSU5WQUw7CiAgICAgfQogfQpAQCAtMTc2NCw3ICsxNzY3LDggQEAgdm9pZCBsaWJ4 bF9fc3Bhd25fc3R1Yl9kbShsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19zdHViX2RtX3NwYXduX3N0 YXRlICpzZHNzKQogICAgICAgICAgICAgICAgICAgICAgIiVkIiwgZ3Vlc3RfZG9taWQpOwogICAg IHJldCA9IHhjX2RvbWFpbl9zZXRfdGFyZ2V0KGN0eC0+eGNoLCBkbV9kb21pZCwgZ3Vlc3RfZG9t aWQpOwogICAgIGlmIChyZXQ8MCkgewotICAgICAgICBMT0dFKEVSUk9SLCAic2V0dGluZyB0YXJn ZXQgZG9tYWluICVkIC0+ICVkIiwgZG1fZG9taWQsIGd1ZXN0X2RvbWlkKTsKKyAgICAgICAgTE9H RUQoRVJST1IsIGd1ZXN0X2RvbWlkLCAic2V0dGluZyB0YXJnZXQgZG9tYWluICVkIC0+ICVkIiwK KyAgICAgICAgICAgICAgZG1fZG9taWQsIGd1ZXN0X2RvbWlkKTsKICAgICAgICAgcmV0ID0gRVJS T1JfRkFJTDsKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQpAQCAtMTgxNCw3ICsxODE4LDcgQEAg c3RhdGljIHZvaWQgc3Bhd25fc3R1Yl9sYXVuY2hfZG0obGlieGxfX2VnYyAqZWdjLAogICAgIHVp bnQzMl90IGRtX2RvbWlkID0gc2Rzcy0+cHZxZW11Lmd1ZXN0X2RvbWlkOwogCiAgICAgaWYgKHJl dCkgewotICAgICAgICBMT0coRVJST1IsICJlcnJvciBjb25uZWN0aW5nIGRpc2sgZGV2aWNlcyIp OworICAgICAgICBMT0dEKEVSUk9SLCBndWVzdF9kb21pZCwgImVycm9yIGNvbm5lY3RpbmcgZGlz ayBkZXZpY2VzIik7CiAgICAgICAgIGdvdG8gb3V0OwogICAgICB9CiAKQEAgLTE5MjksNyArMTkz Myw4IEBAIHN0YXRpYyB2b2lkIHN0dWJkb21fcHZxZW11X2NiKGxpYnhsX19lZ2MgKmVnYywKICAg ICBsaWJ4bF9feHN3YWl0X2luaXQoJnNkc3MtPnhzd2FpdCk7CiAKICAgICBpZiAocmMpIHsKLSAg ICAgICAgTE9HRShFUlJPUiwgImVycm9yIGNvbm5lY3RpbmcgbmljcyBkZXZpY2VzIik7CisgICAg ICAgIExPR0VEKEVSUk9SLCBzZHNzLT5kbS5ndWVzdF9kb21pZCwKKyAgICAgICAgICAgICAgImVy cm9yIGNvbm5lY3RpbmcgbmljcyBkZXZpY2VzIik7CiAgICAgICAgIGdvdG8gb3V0OwogICAgIH0K IApAQCAtMTk2MCw3ICsxOTY1LDggQEAgc3RhdGljIHZvaWQgc3R1YmRvbV94c3dhaXRfY2IobGli eGxfX2VnYyAqZWdjLCBsaWJ4bF9feHN3YWl0X3N0YXRlICp4c3dhaXQsCiAKICAgICBpZiAocmMp IHsKICAgICAgICAgaWYgKHJjID09IEVSUk9SX1RJTUVET1VUKQotICAgICAgICAgICAgTE9HKEVS Uk9SLCAiJXM6IHN0YXJ0dXAgdGltZWQgb3V0IiwgeHN3YWl0LT53aGF0KTsKKyAgICAgICAgICAg IExPR0QoRVJST1IsIHNkc3MtPmRtLmd1ZXN0X2RvbWlkLAorICAgICAgICAgICAgICAgICAiJXM6 IHN0YXJ0dXAgdGltZWQgb3V0IiwgeHN3YWl0LT53aGF0KTsKICAgICAgICAgZ290byBvdXQ7CiAg ICAgfQogCkBAIC0yMDIxLDcgKzIwMjcsNyBAQCB2b2lkIGxpYnhsX19zcGF3bl9sb2NhbF9kbShs aWJ4bF9fZWdjICplZ2MsIGxpYnhsX19kbV9zcGF3bl9zdGF0ZSAqZG1zcykKICAgICAgICAgZ290 byBvdXQ7CiAgICAgfQogICAgIGlmIChhY2Nlc3MoZG0sIFhfT0spIDwgMCkgewotICAgICAgICBM T0dFKEVSUk9SLCAiZGV2aWNlIG1vZGVsICVzIGlzIG5vdCBleGVjdXRhYmxlIiwgZG0pOworICAg ICAgICBMT0dFRChFUlJPUiwgZG9taWQsICJkZXZpY2UgbW9kZWwgJXMgaXMgbm90IGV4ZWN1dGFi bGUiLCBkbSk7CiAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKICAgICAgICAgZ290byBvdXQ7CiAg ICAgfQpAQCAtMjA2NCw3ICsyMDcwLDcgQEAgdm9pZCBsaWJ4bF9fc3Bhd25fbG9jYWxfZG0obGli eGxfX2VnYyAqZWdjLCBsaWJ4bF9fZG1fc3Bhd25fc3RhdGUgKmRtc3MpCiAgICAgfQogICAgIG51 bGwgPSBvcGVuKCIvZGV2L251bGwiLCBPX1JET05MWSk7CiAgICAgaWYgKG51bGwgPCAwKSB7Ci0g ICAgICAgIExPR0UoRVJST1IsICJ1bmFibGUgdG8gb3BlbiAvZGV2L251bGwiKTsKKyAgICAgICAg TE9HRUQoRVJST1IsIGRvbWlkLCAidW5hYmxlIHRvIG9wZW4gL2Rldi9udWxsIik7CiAgICAgICAg IHJjID0gRVJST1JfRkFJTDsKICAgICAgICAgZ290byBvdXRfY2xvc2U7CiAgICAgfQpAQCAtMjA5 MSwxMyArMjA5NywxMyBAQCByZXRyeV90cmFuc2FjdGlvbjoKICAgICAgICAgfQogICAgIH0KIAot ICAgIExPRyhERUJVRywgIlNwYXduaW5nIGRldmljZS1tb2RlbCAlcyB3aXRoIGFyZ3VtZW50czoi LCBkbSk7CisgICAgTE9HRChERUJVRywgZG9taWQsICJTcGF3bmluZyBkZXZpY2UtbW9kZWwgJXMg d2l0aCBhcmd1bWVudHM6IiwgZG0pOwogICAgIGZvciAoYXJnID0gYXJnczsgKmFyZzsgYXJnKysp Ci0gICAgICAgIExPRyhERUJVRywgIiAgJXMiLCAqYXJnKTsKKyAgICAgICAgTE9HRChERUJVRywg ZG9taWQsICIgICVzIiwgKmFyZyk7CiAgICAgaWYgKCplbnZzKSB7Ci0gICAgICAgIExPRyhERUJV RywgIlNwYXduaW5nIGRldmljZS1tb2RlbCAlcyB3aXRoIGFkZGl0aW9uYWwgZW52aXJvbm1lbnQ6 IiwgZG0pOworICAgICAgICBMT0dEKERFQlVHLCBkb21pZCwgIlNwYXduaW5nIGRldmljZS1tb2Rl bCAlcyB3aXRoIGFkZGl0aW9uYWwgZW52aXJvbm1lbnQ6IiwgZG0pOwogICAgICAgICBmb3IgKGFy ZyA9IGVudnM7ICphcmc7IGFyZyArPSAyKQotICAgICAgICAgICAgTE9HKERFQlVHLCAiICAlcz0l cyIsIGFyZ1swXSwgYXJnWzFdKTsKKyAgICAgICAgICAgIExPR0QoREVCVUcsIGRvbWlkLCAiICAl cz0lcyIsIGFyZ1swXSwgYXJnWzFdKTsKICAgICB9CiAKICAgICBzcGF3bi0+d2hhdCA9IEdDU1BS SU5URigiZG9tYWluICVkIGRldmljZSBtb2RlbCIsIGRvbWlkKTsKQEAgLTIxODYsMTQgKzIxOTIs MTUgQEAgc3RhdGljIHZvaWQgZGV2aWNlX21vZGVsX3NwYXduX291dGNvbWUobGlieGxfX2VnYyAq ZWdjLAogICAgIGludCByZXQyOwogCiAgICAgaWYgKHJjKQotICAgICAgICBMT0coRVJST1IsICIl czogc3Bhd24gZmFpbGVkIChyYz0lZCkiLCBkbXNzLT5zcGF3bi53aGF0LCByYyk7CisgICAgICAg IExPR0QoRVJST1IsIGRtc3MtPmd1ZXN0X2RvbWlkLAorICAgICAgICAgICAgICIlczogc3Bhd24g ZmFpbGVkIChyYz0lZCkiLCBkbXNzLT5zcGF3bi53aGF0LCByYyk7CiAKICAgICBsaWJ4bF9fZG9t YWluX2J1aWxkX3N0YXRlICpzdGF0ZSA9IGRtc3MtPmJ1aWxkX3N0YXRlOwogCiAgICAgaWYgKHN0 YXRlLT5zYXZlZF9zdGF0ZSkgewogICAgICAgICByZXQyID0gdW5saW5rKHN0YXRlLT5zYXZlZF9z dGF0ZSk7CiAgICAgICAgIGlmIChyZXQyKSB7Ci0gICAgICAgICAgICBMT0dFKEVSUk9SLCAiJXM6 IGZhaWxlZCB0byByZW1vdmUgZGV2aWNlLW1vZGVsIHN0YXRlICVzIiwKKyAgICAgICAgICAgIExP R0VEKEVSUk9SLCBkbXNzLT5ndWVzdF9kb21pZCwgIiVzOiBmYWlsZWQgdG8gcmVtb3ZlIGRldmlj ZS1tb2RlbCBzdGF0ZSAlcyIsCiAgICAgICAgICAgICAgICAgIGRtc3MtPnNwYXduLndoYXQsIHN0 YXRlLT5zYXZlZF9zdGF0ZSk7CiAgICAgICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CiAgICAgICAg ICAgICBnb3RvIG91dDsKQEAgLTIzMzksNyArMjM0Niw3IEBAIGludCBsaWJ4bF9fZGVzdHJveV9k ZXZpY2VfbW9kZWwobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQpCiB7CiAgICAgY2hhciAq cGF0aCA9IERFVklDRV9NT0RFTF9YU19QQVRIKGdjLCBMSUJYTF9UT09MU1RBQ0tfRE9NSUQsIGRv bWlkLCAiIik7CiAgICAgaWYgKCF4c19ybShDVFgtPnhzaCwgWEJUX05VTEwsIHBhdGgpKQotICAg ICAgICBMT0coRVJST1IsICJ4c19ybSBmYWlsZWQgZm9yICVzIiwgcGF0aCk7CisgICAgICAgIExP R0QoRVJST1IsIGRvbWlkLCAieHNfcm0gZmFpbGVkIGZvciAlcyIsIHBhdGgpOwogICAgIC8qIFdl IHNob3VsZCB0cnkgdG8gZGVzdHJveSB0aGUgZGV2aWNlIG1vZGVsIGFueXdheS4gKi8KICAgICBy ZXR1cm4ga2lsbF9kZXZpY2VfbW9kZWwoZ2MsCiAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIv bG9jYWwvZG9tYWluLyVkL2ltYWdlL2RldmljZS1tb2RlbC1waWQiLCBkb21pZCkpOwpAQCAtMjQy MCw3ICsyNDI3LDcgQEAgaW50IGxpYnhsX19kbV9jaGVja19zdGFydChsaWJ4bF9fZ2MgKmdjLCBs aWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZpZywKICAgICBpZiAoIXJjKQogICAgICAgICByZXR1 cm4gMDsKIAotICAgIExPRyhFUlJPUiwgImRldmljZSBtb2RlbCByZXF1aXJlZCBidXQgbm90IHJ1 bm5pbmciKTsKKyAgICBMT0dEKEVSUk9SLCBkb21pZCwgImRldmljZSBtb2RlbCByZXF1aXJlZCBi dXQgbm90IHJ1bm5pbmciKTsKICAgICByYyA9IEVSUk9SX0ZBSUw7CiAKIG91dDoKLS0gCjIuMTAu MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=