From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Bastien Nocera To: git-commits@fedoraproject.org Subject: [rpms/bluez] rawhide: Update to latest upstream HEAD to fix a number of possible crashes Date: Fri, 17 Jul 2026 11:55:07 GMT Message-ID: <178428930797.1.8364223444274986688.rpms-bluez-ab04c8e31d7a@fedoraproject.org> List-ID: X-Git-Repo: rpms/bluez X-Git-Branch: rawhide X-Git-Rev: ab04c8e31d7a164e3be6cd299fced25313a358a1 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYmx1ZXoKQnJhbmNo IDogcmF3aGlkZQpDb21taXQgOiBhYjA0YzhlMzFkN2ExNjRlM2JlNmNkMjk5ZmNlZDI1MzEzYTM1 OGExCkF1dGhvciA6IEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KRGF0ZSAgIDog MjAyNi0wNy0xN1QxMzo1NDozNyswMjowMApTdGF0cyAgOiArMjM4My8tODkgaW4gMyBmaWxlKHMp ClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvYmx1ZXovYy9hYjA0 YzhlMzFkN2ExNjRlM2JlNmNkMjk5ZmNlZDI1MzEzYTM1OGExP2JyYW5jaD1yYXdoaWRlCgpMb2c6 ClVwZGF0ZSB0byBsYXRlc3QgdXBzdHJlYW0gSEVBRCB0byBmaXggYSBudW1iZXIgb2YgcG9zc2li bGUgY3Jhc2hlcwoKLS0tCmRpZmYgLS1naXQgYS8wMDAxLWFkYXB0ZXItRml4LWNyYXNoLW9uLWRl dl9kaXNjb25uZWN0ZWQucGF0Y2ggYi8wMDAxLWFkYXB0ZXItRml4LWNyYXNoLW9uLWRldl9kaXNj b25uZWN0ZWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3MjNjNDEuLjAw MDAwMDAKLS0tIGEvMDAwMS1hZGFwdGVyLUZpeC1jcmFzaC1vbi1kZXZfZGlzY29ubmVjdGVkLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotRnJvbSA1YmM2YWE3OWU1MzcwMGQ1 NmZjMWY5ZjkzNjQ1NzNiYTRjNzhkYTY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog THVpeiBBdWd1c3RvIHZvbiBEZW50eiA8bHVpei52b24uZGVudHpAaW50ZWwuY29tPgotRGF0ZTog VGh1LCAyIEp1bCAyMDI2IDExOjQzOjUyIC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIGFkYXB0ZXI6 IEZpeCBjcmFzaCBvbiBkZXZfZGlzY29ubmVjdGVkCi0KLUNvbW1pdCA1ZDgzNmYxYzY5N2MgKCJh ZGFwdGVyOiBGaXggZmFpbGVkIGJvbmRpbmcgYXR0ZW1wdCBhZnRlciBMRQotbGluayBkaXNjb25u ZWN0aW9uIikgaW50cm9kdWNlcyBhIHJlZ3Jlc3Npb24gc2luY2UgaXQgYXR0ZW1wdHMgdG8KLWNh bGwgZGV2aWNlX2lzX2Nvbm5lY3RlZCBhZnRlciBhZGFwdGVyX3JlbW92ZV9jb25uZWN0aW9uIHdo aWNoIG1heQotZnJlZSB0aGUgZGV2aWNlIGNhdXNpbmcgdGhlIGZvbGxvd2luZyBiYWNrdHJhY2U6 Ci0KLSAgICAjMCAweDVjZDZlMzg0MjYyZiBpbiBidGRfZGV2aWNlX2JlYXJlcl9pc19jb25uZWN0 ZWQgc3JjL2RldmljZS5jOjM3NTQKLSAgICAjMSAweDVjZDZlMzg0MjY2ZiBpbiBidGRfZGV2aWNl X2lzX2Nvbm5lY3RlZCBzcmMvZGV2aWNlLmM6Mzc0NQotICAgICMyIDB4NWNkNmUzN2Y4NjE0IGlu IGRldl9kaXNjb25uZWN0ZWQgc3JjL2FkYXB0ZXIuYzo4NjI2Ci0KLUZpeGVzOiBodHRwczovL2dp dGh1Yi5jb20vYmx1ZXovYmx1ZXovaXNzdWVzLzIyMjEKLS0tLQotIHNyYy9hZGFwdGVyLmMgfCAy NSArKysrKysrKysrKysrKysrKysrKystLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvYWRhcHRlci5jIGIvc3Jj L2FkYXB0ZXIuYwotaW5kZXggNTM4ZjYzZTBhMTUzLi4yMTAyMjUyNDNmMDAgMTAwNjQ0Ci0tLS0g YS9zcmMvYWRhcHRlci5jCi0rKysgYi9zcmMvYWRhcHRlci5jCi1AQCAtNzYxMiwxMiArNzYxMiwx NiBAQCBzdHJ1Y3QgYWdlbnQgKmFkYXB0ZXJfZ2V0X2FnZW50KHN0cnVjdCBidGRfYWRhcHRlciAq YWRhcHRlcikKLSBzdGF0aWMgdm9pZCBhZGFwdGVyX3JlbW92ZV9jb25uZWN0aW9uKHN0cnVjdCBi dGRfYWRhcHRlciAqYWRhcHRlciwKLSAJCQkJCQlzdHJ1Y3QgYnRkX2RldmljZSAqZGV2aWNlLAot IAkJCQkJCXVpbnQ4X3QgYmRhZGRyX3R5cGUsCi0tCQkJCQkJdWludDhfdCByZWFzb24pCi0rCQkJ CQkJdWludDhfdCByZWFzb24sCi0rCQkJCQkJYm9vbCAqcmVtb3ZlZCkKLSB7Ci0gCWJvb2wgcmVt b3ZlX2RldmljZSA9IGZhbHNlOwotIAotIAlEQkcoIiIpOwotIAotKwlpZiAocmVtb3ZlZCkKLSsJ CSpyZW1vdmVkID0gZmFsc2U7Ci0rCi0gCWlmICghZ19zbGlzdF9maW5kKGFkYXB0ZXItPmNvbm5l Y3Rpb25zLCBkZXZpY2UpKSB7Ci0gCQlidGRfZXJyb3IoYWRhcHRlci0+ZGV2X2lkLCAiTm8gbWF0 Y2hpbmcgY29ubmVjdGlvbiBmb3IgZGV2aWNlIik7Ci0gCQlyZXR1cm47Ci1AQCAtNzYzOCw2ICs3 NjQyLDkgQEAgc3RhdGljIHZvaWQgYWRhcHRlcl9yZW1vdmVfY29ubmVjdGlvbihzdHJ1Y3QgYnRk X2FkYXB0ZXIgKmFkYXB0ZXIsCi0gCi0gCQlEQkcoIlJlbW92aW5nIHRlbXBvcmFyeSBkZXZpY2Ug JXMiLCBwYXRoKTsKLSAJCWJ0ZF9hZGFwdGVyX3JlbW92ZV9kZXZpY2UoYWRhcHRlciwgZGV2aWNl KTsKLSsKLSsJCWlmIChyZW1vdmVkKQotKwkJCSpyZW1vdmVkID0gdHJ1ZTsKLSAJfQotIH0KLSAK LUBAIC03NjY1LDEwICs3NjcyLDEwIEBAIHN0YXRpYyB2b2lkIGFkYXB0ZXJfc3RvcChzdHJ1Y3Qg YnRkX2FkYXB0ZXIgKmFkYXB0ZXIpCi0gCQl1aW50OF90IGFkZHJfdHlwZSA9IGJ0ZF9kZXZpY2Vf Z2V0X2JkYWRkcl90eXBlKGRldmljZSk7Ci0gCi0gCQlhZGFwdGVyX3JlbW92ZV9jb25uZWN0aW9u KGFkYXB0ZXIsIGRldmljZSwgQkRBRERSX0JSRURSLAotLQkJCQkJCU1HTVRfREVWX0RJU0NPTk5f VU5LTk9XTik7Ci0rCQkJCQkJTUdNVF9ERVZfRElTQ09OTl9VTktOT1dOLCBOVUxMKTsKLSAJCWlm IChhZGRyX3R5cGUgIT0gQkRBRERSX0JSRURSKQotIAkJCWFkYXB0ZXJfcmVtb3ZlX2Nvbm5lY3Rp b24oYWRhcHRlciwgZGV2aWNlLCBhZGRyX3R5cGUsCi0tCQkJCQkJTUdNVF9ERVZfRElTQ09OTl9V TktOT1dOKTsKLSsJCQkJCQlNR01UX0RFVl9ESVNDT05OX1VOS05PV04sIE5VTEwpOwotIAl9Ci0g Ci0gCWdfZGJ1c19lbWl0X3Byb3BlcnR5X2NoYW5nZWQoZGJ1c19jb25uLCBhZGFwdGVyLT5wYXRo LAotQEAgLTg2MTgsNyArODYyNSwxNyBAQCBzdGF0aWMgdm9pZCBkZXZfZGlzY29ubmVjdGVkKHN0 cnVjdCBidGRfYWRhcHRlciAqYWRhcHRlciwKLSAKLSAJZGV2aWNlID0gYnRkX2FkYXB0ZXJfZmlu ZF9kZXZpY2UoYWRhcHRlciwgJmFkZHItPmJkYWRkciwgYWRkci0+dHlwZSk7Ci0gCWlmIChkZXZp Y2UpIHsKLS0JCWFkYXB0ZXJfcmVtb3ZlX2Nvbm5lY3Rpb24oYWRhcHRlciwgZGV2aWNlLCBhZGRy LT50eXBlLCByZWFzb24pOwotKwkJYm9vbCByZW1vdmVkOwotKwotKwkJYWRhcHRlcl9yZW1vdmVf Y29ubmVjdGlvbihhZGFwdGVyLCBkZXZpY2UsIGFkZHItPnR5cGUsIHJlYXNvbiwKLSsJCQkJCQkm cmVtb3ZlZCk7Ci0rCQkvKiBObyBuZWVkIHRvIGNvbnRpbnVlIGlmIGRldmljZSB3YXMgcmVtb3Zl ZCBmcm9tIHRoZSBhZGFwdGVyLAotKwkJICogYXMgaXQgd2lsbCBiZSBmcmVlZCBhbmQgdGhlIGRp c2Nvbm5lY3Qgbm90aWZ5IHdpbGwgYmUgY2FsbGVkCi0rCQkgKiBpbiB0aGUgZGV2aWNlIGZyZWUg Y2FsbGJhY2suCi0rCQkgKi8KLSsJCWlmIChyZW1vdmVkKQotKwkJCXJldHVybjsKLSsKLSAJCWRp c2Nvbm5lY3Rfbm90aWZ5KGRldmljZSwgcmVhc29uKTsKLSAJfQotIAotLS0gCi0yLjU0LjAKLQoK ZGlmZiAtLWdpdCBhLzUuODctYnVnLWZpeGVzLTEucGF0Y2ggYi81Ljg3LWJ1Zy1maXhlcy0xLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5MTU3ODMKLS0tIC9kZXYv bnVsbAorKysgYi81Ljg3LWJ1Zy1maXhlcy0xLnBhdGNoCkBAIC0wLDAgKzEsMjM3NyBAQAorRnJv bSA1YmM2YWE3OWU1MzcwMGQ1NmZjMWY5ZjkzNjQ1NzNiYTRjNzhkYTY1IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogTHVpeiBBdWd1c3RvIHZvbiBEZW50eiA8bHVpei52b24uZGVudHpA aW50ZWwuY29tPgorRGF0ZTogVGh1LCAyIEp1bCAyMDI2IDExOjQzOjUyIC0wNDAwCitTdWJqZWN0 OiBbUEFUQ0ggMDEvMTldIGFkYXB0ZXI6IEZpeCBjcmFzaCBvbiBkZXZfZGlzY29ubmVjdGVkCisK K0NvbW1pdCA1ZDgzNmYxYzY5N2MgKCJhZGFwdGVyOiBGaXggZmFpbGVkIGJvbmRpbmcgYXR0ZW1w dCBhZnRlciBMRQorbGluayBkaXNjb25uZWN0aW9uIikgaW50cm9kdWNlcyBhIHJlZ3Jlc3Npb24g c2luY2UgaXQgYXR0ZW1wdHMgdG8KK2NhbGwgZGV2aWNlX2lzX2Nvbm5lY3RlZCBhZnRlciBhZGFw dGVyX3JlbW92ZV9jb25uZWN0aW9uIHdoaWNoIG1heQorZnJlZSB0aGUgZGV2aWNlIGNhdXNpbmcg dGhlIGZvbGxvd2luZyBiYWNrdHJhY2U6CisKKyAgICAjMCAweDVjZDZlMzg0MjYyZiBpbiBidGRf ZGV2aWNlX2JlYXJlcl9pc19jb25uZWN0ZWQgc3JjL2RldmljZS5jOjM3NTQKKyAgICAjMSAweDVj ZDZlMzg0MjY2ZiBpbiBidGRfZGV2aWNlX2lzX2Nvbm5lY3RlZCBzcmMvZGV2aWNlLmM6Mzc0NQor ICAgICMyIDB4NWNkNmUzN2Y4NjE0IGluIGRldl9kaXNjb25uZWN0ZWQgc3JjL2FkYXB0ZXIuYzo4 NjI2CisKK0ZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20vYmx1ZXovYmx1ZXovaXNzdWVzLzIyMjEK Ky0tLQorIHNyYy9hZGFwdGVyLmMgfCAyNSArKysrKysrKysrKysrKysrKysrKystLS0tCisgMSBm aWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1n aXQgYS9zcmMvYWRhcHRlci5jIGIvc3JjL2FkYXB0ZXIuYworaW5kZXggNTM4ZjYzZTBhMTUzLi4y MTAyMjUyNDNmMDAgMTAwNjQ0CistLS0gYS9zcmMvYWRhcHRlci5jCisrKysgYi9zcmMvYWRhcHRl ci5jCitAQCAtNzYxMiwxMiArNzYxMiwxNiBAQCBzdHJ1Y3QgYWdlbnQgKmFkYXB0ZXJfZ2V0X2Fn ZW50KHN0cnVjdCBidGRfYWRhcHRlciAqYWRhcHRlcikKKyBzdGF0aWMgdm9pZCBhZGFwdGVyX3Jl bW92ZV9jb25uZWN0aW9uKHN0cnVjdCBidGRfYWRhcHRlciAqYWRhcHRlciwKKyAJCQkJCQlzdHJ1 Y3QgYnRkX2RldmljZSAqZGV2aWNlLAorIAkJCQkJCXVpbnQ4X3QgYmRhZGRyX3R5cGUsCistCQkJ CQkJdWludDhfdCByZWFzb24pCisrCQkJCQkJdWludDhfdCByZWFzb24sCisrCQkJCQkJYm9vbCAq cmVtb3ZlZCkKKyB7CisgCWJvb2wgcmVtb3ZlX2RldmljZSA9IGZhbHNlOworIAorIAlEQkcoIiIp OworIAorKwlpZiAocmVtb3ZlZCkKKysJCSpyZW1vdmVkID0gZmFsc2U7CisrCisgCWlmICghZ19z bGlzdF9maW5kKGFkYXB0ZXItPmNvbm5lY3Rpb25zLCBkZXZpY2UpKSB7CisgCQlidGRfZXJyb3Io YWRhcHRlci0+ZGV2X2lkLCAiTm8gbWF0Y2hpbmcgY29ubmVjdGlvbiBmb3IgZGV2aWNlIik7Cisg CQlyZXR1cm47CitAQCAtNzYzOCw2ICs3NjQyLDkgQEAgc3RhdGljIHZvaWQgYWRhcHRlcl9yZW1v dmVfY29ubmVjdGlvbihzdHJ1Y3QgYnRkX2FkYXB0ZXIgKmFkYXB0ZXIsCisgCisgCQlEQkcoIlJl bW92aW5nIHRlbXBvcmFyeSBkZXZpY2UgJXMiLCBwYXRoKTsKKyAJCWJ0ZF9hZGFwdGVyX3JlbW92 ZV9kZXZpY2UoYWRhcHRlciwgZGV2aWNlKTsKKysKKysJCWlmIChyZW1vdmVkKQorKwkJCSpyZW1v dmVkID0gdHJ1ZTsKKyAJfQorIH0KKyAKK0BAIC03NjY1LDEwICs3NjcyLDEwIEBAIHN0YXRpYyB2 b2lkIGFkYXB0ZXJfc3RvcChzdHJ1Y3QgYnRkX2FkYXB0ZXIgKmFkYXB0ZXIpCisgCQl1aW50OF90 IGFkZHJfdHlwZSA9IGJ0ZF9kZXZpY2VfZ2V0X2JkYWRkcl90eXBlKGRldmljZSk7CisgCisgCQlh ZGFwdGVyX3JlbW92ZV9jb25uZWN0aW9uKGFkYXB0ZXIsIGRldmljZSwgQkRBRERSX0JSRURSLAor LQkJCQkJCU1HTVRfREVWX0RJU0NPTk5fVU5LTk9XTik7CisrCQkJCQkJTUdNVF9ERVZfRElTQ09O Tl9VTktOT1dOLCBOVUxMKTsKKyAJCWlmIChhZGRyX3R5cGUgIT0gQkRBRERSX0JSRURSKQorIAkJ CWFkYXB0ZXJfcmVtb3ZlX2Nvbm5lY3Rpb24oYWRhcHRlciwgZGV2aWNlLCBhZGRyX3R5cGUsCist CQkJCQkJTUdNVF9ERVZfRElTQ09OTl9VTktOT1dOKTsKKysJCQkJCQlNR01UX0RFVl9ESVNDT05O X1VOS05PV04sIE5VTEwpOworIAl9CisgCisgCWdfZGJ1c19lbWl0X3Byb3BlcnR5X2NoYW5nZWQo ZGJ1c19jb25uLCBhZGFwdGVyLT5wYXRoLAorQEAgLTg2MTgsNyArODYyNSwxNyBAQCBzdGF0aWMg dm9pZCBkZXZfZGlzY29ubmVjdGVkKHN0cnVjdCBidGRfYWRhcHRlciAqYWRhcHRlciwKKyAKKyAJ ZGV2aWNlID0gYnRkX2FkYXB0ZXJfZmluZF9kZXZpY2UoYWRhcHRlciwgJmFkZHItPmJkYWRkciwg YWRkci0+dHlwZSk7CisgCWlmIChkZXZpY2UpIHsKKy0JCWFkYXB0ZXJfcmVtb3ZlX2Nvbm5lY3Rp b24oYWRhcHRlciwgZGV2aWNlLCBhZGRyLT50eXBlLCByZWFzb24pOworKwkJYm9vbCByZW1vdmVk OworKworKwkJYWRhcHRlcl9yZW1vdmVfY29ubmVjdGlvbihhZGFwdGVyLCBkZXZpY2UsIGFkZHIt PnR5cGUsIHJlYXNvbiwKKysJCQkJCQkmcmVtb3ZlZCk7CisrCQkvKiBObyBuZWVkIHRvIGNvbnRp bnVlIGlmIGRldmljZSB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBhZGFwdGVyLAorKwkJICogYXMgaXQg d2lsbCBiZSBmcmVlZCBhbmQgdGhlIGRpc2Nvbm5lY3Qgbm90aWZ5IHdpbGwgYmUgY2FsbGVkCisr CQkgKiBpbiB0aGUgZGV2aWNlIGZyZWUgY2FsbGJhY2suCisrCQkgKi8KKysJCWlmIChyZW1vdmVk KQorKwkJCXJldHVybjsKKysKKyAJCWRpc2Nvbm5lY3Rfbm90aWZ5KGRldmljZSwgcmVhc29uKTsK KyAJfQorIAorLS0gCisyLjU0LjAKKworCitGcm9tIGI4NGFhODk0OTIxMDM3ZTFiMWRlMDBkMjgy ZGIyZWUyN2E0Y2U2M2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBMdWl6IEF1Z3Vz dG8gdm9uIERlbnR6IDxsdWl6LnZvbi5kZW50ekBpbnRlbC5jb20+CitEYXRlOiBNb24sIDYgSnVs IDIwMjYgMTA6NTk6MjggLTA0MDAKK1N1YmplY3Q6IFtQQVRDSCAwMi8xOV0gbDJ0ZXN0OiBGaXgg Y2FsbGluZyBnZXRzb2Nrb3B0KEJUX1BIWSkKKworZ2V0c29ja29wdChCVF9QSFkpIGV4cGVjdGVz IGEgMzIgYml0cyBhcmd1bWVudCBub3QgYQorc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9sMikuCist LS0KKyB0b29scy9sMnRlc3QuYyB8IDUgKysrKy0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS90b29scy9sMnRlc3QuYyBiL3Rv b2xzL2wydGVzdC5jCitpbmRleCBhYTA1ZjUyNDdjNWUuLjA4ZDIyNjk5MzZiOSAxMDA2NDQKKy0t LSBhL3Rvb2xzL2wydGVzdC5jCisrKysgYi90b29scy9sMnRlc3QuYworQEAgLTM1OCw3ICszNTgs OCBAQCBzdGF0aWMgaW50IHByaW50X2luZm8oaW50IHNrLCBzdHJ1Y3QgbDJjYXBfb3B0aW9ucyAq b3B0cykKKyAJc3RydWN0IHNvY2thZGRyX2wyIGFkZHI7CisgCXNvY2tsZW5fdCBvcHRsZW47Cisg CXN0cnVjdCBsMmNhcF9jb25uaW5mbyBjb25uOworLQlpbnQgcHJpbywgcGh5OworKwlpbnQgcHJp bzsKKysJdWludDMyX3QgcGh5OworIAljaGFyIGJhWzE4XTsKKyAKKyAJLyogR2V0IGNvbm5lY3Rp b24gaW5mb3JtYXRpb24gKi8KK0BAIC00MTQsNiArNDE1LDggQEAgc3RhdGljIGludCBwcmludF9p bmZvKGludCBzaywgc3RydWN0IGwyY2FwX29wdGlvbnMgKm9wdHMpCisgCQljb25uLmRldl9jbGFz c1swXSwgcHJpbywgcmN2YnVmKTsKKyAKKyAKKysJb3B0bGVuID0gc2l6ZW9mKHBoeSk7CisrCisg CWlmICghZ2V0c29ja29wdChzaywgU09MX0JMVUVUT09USCwgQlRfUEhZLCAmcGh5LCAmb3B0bGVu KSkgeworIAkJc3lzbG9nKExPR19JTkZPLCAiU3VwcG9ydGVkIFBIWTogMHglMDh4IiwgcGh5KTsK KyAJCXByaW50X2JpdGZpZWxkKDIsIHBoeSwgcGh5X3RhYmxlKTsKKy0tIAorMi41NC4wCisKKwor RnJvbSAzZjI4M2M4ZTBhYjNiYWQxN2VlOGMxM2ZhMGRjZjI1MWExNmU0ZTI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogcmFnaGF2ZW5kcmEgPHJhZ2hhdmVuZHJhLnJhb0Bjb2xsYWJv cmEuY29tPgorRGF0ZTogVGh1LCAyIEp1bCAyMDI2IDE4OjM5OjA0ICswNTMwCitTdWJqZWN0OiBb UEFUQ0ggMDMvMTldIHNoYXJlZC9iYXA6IFZhbGlkYXRlIGNvZGVjIGNvbmZpZ3VyYXRpb24gcGFy YW1ldGVycworCitUaGlzIGlzIHJlcXVpcmVkIGZvciBQVFMgdGVzdCBBU0NTL1NSL1NQRS9CSS0w Ny1DCistLS0KKyBzcmMvc2hhcmVkL2JhcC5jIHwgMjIgKysrKysrKysrKysrKysrKysrKysrKwor IDEgZmlsZSBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zcmMvc2hh cmVkL2JhcC5jIGIvc3JjL3NoYXJlZC9iYXAuYworaW5kZXggMWY2MTIyN2Y4MmE3Li42YmMwNDRh NjM3NTggMTAwNjQ0CistLS0gYS9zcmMvc2hhcmVkL2JhcC5jCisrKysgYi9zcmMvc2hhcmVkL2Jh cC5jCitAQCAtMjksNiArMjksNyBAQAorICNpbmNsdWRlICJzcmMvc2hhcmVkL2dhdHQtY2xpZW50 LmgiCisgI2luY2x1ZGUgInNyYy9zaGFyZWQvYmFwLmgiCisgI2luY2x1ZGUgInNyYy9zaGFyZWQv YXNjcy5oIgorKyNpbmNsdWRlICJzcmMvc2hhcmVkL2xjMy5oIgorICNpbmNsdWRlICJzcmMvc2hh cmVkL2JhcC1kZWJ1Zy5oIgorIAorIC8qIE1heGltdW0gbnVtYmVyIG9mIEFTRShzKSAqLworQEAg LTMxNTcsNiArMzE1OCw3IEBAIHN0YXRpYyB1aW50OF90IGVwX2NvbmZpZyhzdHJ1Y3QgYnRfYmFw X2VuZHBvaW50ICplcCwgc3RydWN0IGJ0X2JhcCAqYmFwLAorIAlzdHJ1Y3QgaW92ZWMgY2M7Cisg CWNvbnN0IHN0cnVjdCBxdWV1ZV9lbnRyeSAqZTsKKyAJc3RydWN0IGJ0X2JhcF9jb2RlYyBjb2Rl YzsKKysJdWludDhfdCAqbHR2OworIAorIAlEQkcoYmFwLCAiZXAgJXAgaWQgMHglMDJ4IGRpciAw eCUwMngiLCBlcCwgZXAtPmlkLCBlcC0+ZGlyKTsKKyAKK0BAIC0zMTkwLDYgKzMxOTIsMTkgQEAg c3RhdGljIHVpbnQ4X3QgZXBfY29uZmlnKHN0cnVjdCBidF9iYXBfZW5kcG9pbnQgKmVwLCBzdHJ1 Y3QgYnRfYmFwICpiYXAsCisgCQlyZXR1cm4gMDsKKyAJfQorIAorKwlsdHYgPSBjYy5pb3ZfYmFz ZTsKKysKKysJaWYgKHJlcS0+Y29kZWMuaWQgPT0gTEMzX0lEICYmIGNjLmlvdl9sZW4gPT0gMyAm JgorKwkJCWx0dlswXSA9PSAweDAyICYmCisrCQkJbHR2WzFdID09IExDM19DT05GSUdfRFVSQVRJ T04gJiYKKysJCQlsdHZbMl0gIT0gTEMzX0NPTkZJR19EVVJBVElPTl83XzUgJiYKKysJCQlsdHZb Ml0gIT0gTEMzX0NPTkZJR19EVVJBVElPTl8xMCkgeworKwkJYXNjc19hc2VfcnNwX2FkZChyc3As IHJlcS0+YXNlLAorKwkJCQlCVF9BU0NTX1JTUF9DT05GX0lOVkFMSUQsCisrCQkJCUJUX0FTQ1Nf UkVBU09OX0NPREVDX0RBVEEpOworKwkJcmV0dXJuIDA7CisrCX0KKysKKyAJc3dpdGNoIChlcC0+ ZGlyKSB7CisgCWNhc2UgQlRfQkFQX1NJTks6CisgCQllID0gcXVldWVfZ2V0X2VudHJpZXMoYmFw LT5sZGItPnNpbmtzKTsKK0BAIC0zMjA3LDYgKzMyMjIsMTMgQEAgc3RhdGljIHVpbnQ4X3QgZXBf Y29uZmlnKHN0cnVjdCBidF9iYXBfZW5kcG9pbnQgKmVwLCBzdHJ1Y3QgYnRfYmFwICpiYXAsCisg CWNvZGVjLmNpZCA9IGxlMTZfdG9fY3B1KHJlcS0+Y29kZWMuY2lkKTsKKyAJY29kZWMudmlkID0g bGUxNl90b19jcHUocmVxLT5jb2RlYy52aWQpOworIAorKwlpZiAoY29kZWMuaWQgIT0gMHhmZiAm JiAoY29kZWMuY2lkIHx8IGNvZGVjLnZpZCkpIHsKKysJCWFzY3NfYXNlX3JzcF9hZGQocnNwLCBy ZXEtPmFzZSwKKysJCQkJQlRfQVNDU19SU1BfQ09ORl9JTlZBTElELAorKwkJCQlCVF9BU0NTX1JF QVNPTl9DT0RFQyk7CisrCQlyZXR1cm4gMDsKKysJfQorKworIAlmb3IgKDsgZTsgZSA9IGUtPm5l eHQpIHsKKyAJCXN0cnVjdCBidF9iYXBfcGFjICpwYWMgPSBlLT5kYXRhOworIAorLS0gCisyLjU0 LjAKKworCitGcm9tIDVjMWM2NzllYzMwNGI4YWFkYWEyODdjY2E1OWIzODU4OWQzMzllOTEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiByYWdoYXZlbmRyYSA8cmFnaGF2ZW5kcmEucmFv QGNvbGxhYm9yYS5jb20+CitEYXRlOiBUaHUsIDIgSnVsIDIwMjYgMTg6Mzk6MDUgKzA1MzAKK1N1 YmplY3Q6IFtQQVRDSCAwNC8xOV0gc2hhcmVkL2JhcDogVmFsaWRhdGUgdW5pY2FzdCBRb1MgY29u ZmlndXJhdGlvbgorCitUaGlzIGlzIHJlcXVpcmVkIGZvciBQVFMgdGVzdHMgQVNDUy9TUi9TUEUv QkktMDgtQyBhbmQgQVNDUy9TUi9TUEUvQkktMTAtQy4KKy0tLQorIHNyYy9zaGFyZWQvYmFwLmMg fCAyNiArKysrKysrKysrKysrKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAyNiBpbnNl cnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zcmMvc2hhcmVkL2JhcC5jIGIvc3JjL3NoYXJlZC9i YXAuYworaW5kZXggNmJjMDQ0YTYzNzU4Li5mMmJlN2MwN2JhNWQgMTAwNjQ0CistLS0gYS9zcmMv c2hhcmVkL2JhcC5jCisrKysgYi9zcmMvc2hhcmVkL2JhcC5jCitAQCAtMzMxNiw2ICszMzE2LDMy IEBAIHN0YXRpYyB1aW50OF90IGVwX3FvcyhzdHJ1Y3QgYnRfYmFwX2VuZHBvaW50ICplcCwgc3Ry dWN0IGJ0X2JhcCAqYmFwLAorIAkJcmV0dXJuIDA7CisgCX0KKyAKKysJaWYgKGVwLT5zdHJlYW0t PmxwYWMtPmNvZGVjLmlkID09IExDM19JRCAmJgorKwkJCXFvcy0+dWNhc3QuaW9fcW9zLmludGVy dmFsIDwgMHgwMDAwZmYpIHsKKysJCWFzY3NfYXNlX3JzcF9hZGQocnNwLCBlcC0+aWQsCisrCQkJ CUJUX0FTQ1NfUlNQX0NPTkZfSU5WQUxJRCwKKysJCQkJQlRfQVNDU19SRUFTT05fSU5URVJWQUwp OworKwkJcmV0dXJuIDA7CisrCX0KKysKKysJaWYgKHFvcy0+dWNhc3QuZnJhbWluZyAhPSBCVF9B U0NTX1FPU19GUkFNSU5HX1VORlJBTUVEICYmCisrCQkJcW9zLT51Y2FzdC5mcmFtaW5nICE9IEJU X0FTQ1NfUU9TX0ZSQU1JTkdfRlJBTUVEKSB7CisrCQlhc2NzX2FzZV9yc3BfYWRkKHJzcCwgZXAt PmlkLAorKwkJCQlCVF9BU0NTX1JTUF9DT05GX0lOVkFMSUQsCisrCQkJCUJUX0FTQ1NfUkVBU09O X0ZSQU1JTkcpOworKwkJcmV0dXJuIDA7CisrCX0KKysKKysJaWYgKCFxb3MtPnVjYXN0LmlvX3Fv cy5waHlzIHx8CisrCQkJKHFvcy0+dWNhc3QuaW9fcW9zLnBoeXMgJiB+KEJUX0JBUF9DT05GSUdf UEhZXzFNIHwKKysJCQkJCUJUX0JBUF9DT05GSUdfUEhZXzJNIHwKKysJCQkJCUJUX0JBUF9DT05G SUdfUEhZX0NPREVDKSkpIHsKKysJCWFzY3NfYXNlX3JzcF9hZGQocnNwLCBlcC0+aWQsCisrCQkJ CUJUX0FTQ1NfUlNQX0NPTkZfSU5WQUxJRCwKKysJCQkJQlRfQVNDU19SRUFTT05fUEhZKTsKKysJ CXJldHVybiAwOworKwl9CisrCisgCXJldHVybiBzdHJlYW1fcW9zKGVwLT5zdHJlYW0sIHFvcywg cnNwKTsKKyB9CisgCistLSAKKzIuNTQuMAorCisKK0Zyb20gMTNiMTRkYjk1MDg5MzgyNzAxZjU0 YTQ2ZTZlZjAxMjBiNjlkNGE2MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEx1aXog QXVndXN0byB2b24gRGVudHogPGx1aXoudm9uLmRlbnR6QGludGVsLmNvbT4KK0RhdGU6IFR1ZSwg NyBKdWwgMjAyNiAxNDozNDozMCAtMDQwMAorU3ViamVjdDogW1BBVENIIDA1LzE5XSBzaGFyZWQv YmFwOiBVc2UgdXRpbF9sdHZfZm9yZWFjaCB0byBwcm9jZXNzIG1ldGFkYXRhCisKK1RoaXMgbWFr ZXMgdXNlIG9mIHV0aWxfbHR2X2ZvcmVhY2ggdG8gcHJvY2VzcyB0aGUgbWV0YWRhdGEgZW50cmll cworaW5zdGVhZCBvZiBhdHRlbXB0aW5nIHRvIGl0ZXJhdGUgb3ZlciB0aGUgZW50cmllcyBtYW51 YWxseSB3aGljaAorcHJvYmFibHkgb25seSB3b3JrcyB3aXRoIHRoZSBleGFjdCBzYW1lIG9yZGVy IGFzIHVzZWQgYnkgUFRTLgorLS0tCisgc3JjL3NoYXJlZC9iYXAuYyB8IDg0ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA1 OSBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9zaGFy ZWQvYmFwLmMgYi9zcmMvc2hhcmVkL2JhcC5jCitpbmRleCBmMmJlN2MwN2JhNWQuLmRiNmY0ZjIw NDc4NyAxMDA2NDQKKy0tLSBhL3NyYy9zaGFyZWQvYmFwLmMKKysrKyBiL3NyYy9zaGFyZWQvYmFw LmMKK0BAIC0zNDA0LDM1ICszNDA0LDY5IEBAIHN0YXRpYyB1aW50OF90IHN0cmVhbV9lbmFibGUo c3RydWN0IGJ0X2JhcF9zdHJlYW0gKnN0cmVhbSwgc3RydWN0IGlvdmVjICptZXRhLAorIAlyZXR1 cm4gMDsKKyB9CisgCistc3RhdGljIGJvb2wgYXNjc19tZXRhZGF0YV9yc3Aoc3RydWN0IGJ0X2Jh cF9lbmRwb2ludCAqZXAsIHN0cnVjdCBpb3ZlYyAqbWV0YSwKKy0JCQkJCQkJc3RydWN0IGlvdmVj ICpyc3ApCisrc3RydWN0IGJhcF9tZXRhZGF0YV9wcm9jZXNzIHsKKysJc3RydWN0IGJ0X2JhcF9l bmRwb2ludCAqZXA7CisrCXVpbnQxNl90IGNvbnRleHQ7CisrCXN0cnVjdCBpb3ZlYyAqcnNwOwor Kwl1aW50OF90IGVycjsKKyt9OworKworK3N0YXRpYyB2b2lkIGJhcF9tZXRhZGF0YV9wcm9jZXNz KHNpemVfdCBpLCB1aW50OF90IGwsIHVpbnQ4X3QgdCwgdWludDhfdCAqdiwKKysJCQkJCXZvaWQg KnVzZXJfZGF0YSkKKyB7CistCXN0cnVjdCBidF9sdHYgKmx0djsKKy0JdWludDE2X3Qgc3VwcG9y dGVkX2NvbnRleHQgPSAwOworKwlzdHJ1Y3QgYmFwX21ldGFkYXRhX3Byb2Nlc3MgKmRhdGEgPSB1 c2VyX2RhdGE7CisgCXVpbnQxNl90IGNvbnRleHQ7CisgCisrCXN3aXRjaCAodCkgeworKwljYXNl IEJBUF9NRVRBREFUQV9QUkVGX0NPTlRFWFRfTFRWX1RZUEU6CisrCQlicmVhazsKKysJY2FzZSBC QVBfTUVUQURBVEFfQ09OVEVYVF9MVFZfVFlQRToKKysJCWlmIChsICE9IHNpemVvZihjb250ZXh0 KSkgeworKwkJCWFzY3NfYXNlX3JzcF9hZGQoZGF0YS0+cnNwLCBkYXRhLT5lcC0+aWQsCisrCQkJ CQlCVF9BU0NTX1JTUF9NRVRBREFUQV9JTlZBTElELCB0KTsKKysJCQlkYXRhLT5lcnIgPSBCVF9B U0NTX1JTUF9NRVRBREFUQV9JTlZBTElEOworKwkJCWJyZWFrOworKwkJfQorKworKwkJY29udGV4 dCA9IGdldF9sZTE2KHYpOworKwkJaWYgKCFjb250ZXh0IHx8IChjb250ZXh0ICYgfmRhdGEtPmNv bnRleHQpKSB7CisrCQkJYXNjc19hc2VfcnNwX2FkZChkYXRhLT5yc3AsIGRhdGEtPmVwLT5pZCwK KysJCQkJCUJUX0FTQ1NfUlNQX01FVEFEQVRBX0lOVkFMSUQsIHQpOworKwkJCWRhdGEtPmVyciA9 IEJUX0FTQ1NfUlNQX01FVEFEQVRBX0lOVkFMSUQ7CisrCQl9CisrCisrCQlicmVhazsKKysJY2Fz ZSBCQVBfTUVUQURBVEFfUFJPR1JBTV9JTkZPX0xUVl9UWVBFOgorKwljYXNlIEJBUF9NRVRBREFU QV9MQU5HVUFHRV9MVFZfVFlQRToKKysJCWJyZWFrOworKwlkZWZhdWx0OgorKwkJYXNjc19hc2Vf cnNwX2FkZChkYXRhLT5yc3AsIGRhdGEtPmVwLT5pZCwKKysJCQkJCUJUX0FTQ1NfUlNQX01FVEFE QVRBX1VOU1VQUE9SVEVELAorKwkJCQkJdCk7CisrCQlkYXRhLT5lcnIgPSBCVF9BU0NTX1JTUF9N RVRBREFUQV9VTlNVUFBPUlRFRDsKKysJCWJyZWFrOworKwl9OworK30KKysKKytzdGF0aWMgYm9v bCBhc2NzX21ldGFkYXRhX3JzcChzdHJ1Y3QgYnRfYmFwX2VuZHBvaW50ICplcCwgc3RydWN0IGJ0 X2JhcCAqYmFwLAorKwkJCQlzdHJ1Y3QgaW92ZWMgKm1ldGEsIHN0cnVjdCBpb3ZlYyAqcnNwKQor K3sKKysJc3RydWN0IGJhcF9tZXRhZGF0YV9wcm9jZXNzIGRhdGEgPSB7CisrCQkuZXAgPSBlcCwK KysJCS5yc3AgPSByc3AsCisrCQkuZXJyID0gMCwKKysJfTsKKysKKyAJaWYgKGVwLT5zdHJlYW0g JiYgZXAtPnN0cmVhbS0+bHBhYykKKy0JCXN1cHBvcnRlZF9jb250ZXh0ID0gZXAtPnN0cmVhbS0+ bHBhYy0+cW9zLnN1cHBvcnRlZF9jb250ZXh0OworKwkJZGF0YS5jb250ZXh0ID0gZXAtPnN0cmVh bS0+bHBhYy0+cW9zLnN1cHBvcnRlZF9jb250ZXh0OworIAorLQlsdHYgPSBtZXRhLT5pb3ZfYmFz ZTsKKy0JaWYgKG1ldGEtPmlvdl9sZW4gPj0gc2l6ZW9mKCpsdHYpICYmCistCQkJKGx0di0+dHlw ZSA8IEJBUF9NRVRBREFUQV9QUkVGX0NPTlRFWFRfTFRWX1RZUEUgfHwKKy0JCQlsdHYtPnR5cGUg PiBCQVBfTUVUQURBVEFfTEFOR1VBR0VfTFRWX1RZUEUpKSB7CistCQlhc2NzX2FzZV9yc3BfYWRk KHJzcCwgZXAtPmlkLAorLQkJCQlCVF9BU0NTX1JTUF9NRVRBREFUQV9VTlNVUFBPUlRFRCwgbHR2 LT50eXBlKTsKKy0JCXJldHVybiB0cnVlOworLQl9CisrCXV0aWxfbHR2X2ZvcmVhY2gobWV0YS0+ aW92X2Jhc2UsIG1ldGEtPmlvdl9sZW4sIE5VTEwsCisrCQkJCWJhcF9tZXRhZGF0YV9wcm9jZXNz LCAmZGF0YSk7CisgCistCWlmIChtZXRhLT5pb3ZfbGVuID49IHNpemVvZigqbHR2KSArIHNpemVv Zihjb250ZXh0KSAmJgorLQkJCWx0di0+dHlwZSA9PSBCQVBfTUVUQURBVEFfQ09OVEVYVF9MVFZf VFlQRSAmJgorLQkJCWx0di0+bGVuID09IHNpemVvZihjb250ZXh0KSArIDEpIHsKKy0JCWNvbnRl eHQgPSBnZXRfbGUxNihsdHYtPnZhbHVlKTsKKy0JCWlmICghY29udGV4dCB8fCAoY29udGV4dCAm IH5zdXBwb3J0ZWRfY29udGV4dCkpIHsKKy0JCQlhc2NzX2FzZV9yc3BfYWRkKHJzcCwgZXAtPmlk LAorLQkJCQkJQlRfQVNDU19SU1BfTUVUQURBVEFfSU5WQUxJRCwKKy0JCQkJCWx0di0+dHlwZSk7 CistCQkJcmV0dXJuIHRydWU7CistCQl9CisrCWlmIChkYXRhLmVycikgeworKwkJREJHKGJhcCwg ImVwICVwIGlkIDB4JTAyeCBtZXRhZGF0YSBlcnJvciAweCUwMngiLCBlcCwgZXAtPmlkLAorKwkJ CQlkYXRhLmVycik7CisrCQlyZXR1cm4gdHJ1ZTsKKyAJfQorIAorIAlyZXR1cm4gZmFsc2U7CitA QCAtMzQ2OSw3ICszNTAzLDcgQEAgc3RhdGljIHVpbnQ4X3QgZXBfZW5hYmxlKHN0cnVjdCBidF9i YXBfZW5kcG9pbnQgKmVwLCBzdHJ1Y3QgYnRfYmFwICpiYXAsCisgCQlyZXR1cm4gMDsKKyAJfQor IAorLQlpZiAoYXNjc19tZXRhZGF0YV9yc3AoZXAsICZtZXRhLCByc3ApKQorKwlpZiAoYXNjc19t ZXRhZGF0YV9yc3AoZXAsIGJhcCwgJm1ldGEsIHJzcCkpCisgCQlyZXR1cm4gMDsKKyAKKyAJaWYg KCFlcC0+c3RyZWFtKSB7CitAQCAtMzcwNSw3ICszNzM5LDcgQEAgc3RhdGljIHVpbnQ4X3QgZXBf bWV0YWRhdGEoc3RydWN0IGJ0X2JhcF9lbmRwb2ludCAqZXAsCisgCW1ldGEuaW92X2Jhc2UgPSB1 dGlsX2lvdl9wdWxsX21lbShpb3YsIHJlcS0+bGVuKTsKKyAJbWV0YS5pb3ZfbGVuID0gcmVxLT5s ZW47CisgCistCWlmIChhc2NzX21ldGFkYXRhX3JzcChlcCwgJm1ldGEsIHJzcCkpCisrCWlmIChh c2NzX21ldGFkYXRhX3JzcChlcCwgc3RyZWFtLT5iYXAsICZtZXRhLCByc3ApKQorIAkJcmV0dXJu IDA7CisgCisgCXJldHVybiBzdHJlYW1fbWV0YWRhdGEoZXAtPnN0cmVhbSwgJm1ldGEsIHJzcCk7 CistLSAKKzIuNTQuMAorCisKK0Zyb20gOWU5ZjBhMzcwYzU5MWMxMjZjMzkyMjVmNWY1MGI4ODkx NWQxMTA5NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJhaHVsIFNhbWFuYSA8cmFo dWwuc2FtYW5hQG9zcy5xdWFsY29tbS5jb20+CitEYXRlOiBUdWUsIDcgSnVsIDIwMjYgMTI6MDU6 NDMgKzA1MzAKK1N1YmplY3Q6IFtQQVRDSCAwNi8xOV0gZ29iZXg6IEZpeCB1c2UtYWZ0ZXItZnJl ZSB3aGVuIGNhbmNlbGxpbmcgU1JNIFBVVAorIHRyYW5zZmVyCisKK0luIFNSTSBtb2RlIHB1dF9n ZXRfZGF0YSgpIHF1ZXVlcyB0aGUgbmV4dCBwYWNrZXQgZHVyaW5nIGVuY29kaW5nIG9mCit0aGUg Y3VycmVudCBvbmUsIHNvIHRyYW5zZmVyLT5yZXFfaWQgYW5kIHBlbmRpbmdfcmVxLT5pZCBjYW4g ZGl2ZXJnZS4KK1doZW4gZ19vYmV4X2NhbmNlbF90cmFuc2ZlcigpIGNhbmNlbHMgdGhlIHF1ZXVl ZCBwYWNrZXQgZnJvbSB0eF9xdWV1ZSwKK2NhbmNlbF9jb21wbGV0ZSgpIGZyZWVzIHRoZSB0cmFu c2ZlciB3aGlsZSBwZW5kaW5nX3JlcSBzdGlsbCBob2xkcyBhCitjYWxsYmFjayBwb2ludGluZyB0 byBpdC4gSXRzIEdfT0JFWF9ERUZBVUxUX1RJTUVPVVQgKDEwcykgdGhlbiBmaXJlcworb24gZnJl ZWQgbWVtb3J5IGNhdXNpbmcgYSBTSUdTRUdWLgorCitGaXggYnkgY2xlYXJpbmcgcGVuZGluZ19y ZXEtPnJzcF9mdW5jIGlmIGl0IGJlbG9uZ3MgdG8gdGhlIHNhbWUKK3RyYW5zZmVyIGJlaW5nIGNh bmNlbGxlZC4KKy0tLQorIGdvYmV4L2dvYmV4LmMgfCA4ICsrKysrKysrCisgMSBmaWxlIGNoYW5n ZWQsIDggaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvZ29iZXgvZ29iZXguYyBiL2dvYmV4 L2dvYmV4LmMKK2luZGV4IGRmODBkNzlmMzFiYi4uMTBhNDM4MzkxZWFlIDEwMDY0NAorLS0tIGEv Z29iZXgvZ29iZXguYworKysrIGIvZ29iZXgvZ29iZXguYworQEAgLTg2MSw2ICs4NjEsMTQgQEAg Z2Jvb2xlYW4gZ19vYmV4X2NhbmNlbF9yZXEoR09iZXggKm9iZXgsIGd1aW50IHJlcV9pZCwgZ2Jv b2xlYW4gcmVtb3ZlX2NhbGxiYWNrKQorIAorIAlnX3F1ZXVlX2RlbGV0ZV9saW5rKG9iZXgtPnR4 X3F1ZXVlLCBtYXRjaCk7CisgCisrCS8qIEluIFNSTSBtb2RlIHBlbmRpbmdfcmVxIG1heSBiZWxv bmcgdG8gdGhlIHNhbWUgdHJhbnNmZXIgYnV0IGNhcnJ5CisrCSAqIGEgZGlmZmVyZW50IHJlcV9p ZC4gQ2xlYXIgaXRzIGNhbGxiYWNrIHRvIGF2b2lkIHVzZS1hZnRlci1mcmVlCisrCSAqIHdoZW4g aXRzIHRpbWVvdXQgZmlyZXMgYWZ0ZXIgdHJhbnNmZXJfZnJlZSgpLgorKwkgKi8KKysJaWYgKHJl bW92ZV9jYWxsYmFjayAmJiBvYmV4LT5wZW5kaW5nX3JlcSAmJgorKwkJCQlvYmV4LT5wZW5kaW5n X3JlcS0+cnNwX2RhdGEgPT0gcC0+cnNwX2RhdGEpCisrCQlvYmV4LT5wZW5kaW5nX3JlcS0+cnNw X2Z1bmMgPSBOVUxMOworKworIGltbWVkaWF0ZV9jb21wbGV0aW9uOgorIAlwLT5jYW5jZWxsZWQg PSBUUlVFOworIAlwLT5vYmV4ID0gZ19vYmV4X3JlZihvYmV4KTsKKy0tIAorMi41NC4wCisKKwor RnJvbSA4MmFmMmJlYWZjMzk1MTBlMmM0YTQzOWJmNDRmYWVhNzExZDY1MDNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogVG9tIENhdHNob2VrIDx0b21jYXRzaG9la0B6ZWVsYW5kbmV0 Lm5sPgorRGF0ZTogVGh1LCA5IEp1bCAyMDI2IDE0OjI3OjA0ICswMjAwCitTdWJqZWN0OiBbUEFU Q0ggMDcvMTldIGFkYXB0ZXI6IEZpeCBjcmFzaCBvbiBVVUlEIGRpc2NvdmVyeSBmaWx0ZXIgbWF0 Y2gKKworaXNfZmlsdGVyX21hdGNoKCkgbG9va3MgdXAgZWFjaCBkaXNjb3ZlcnktZmlsdGVyIFVV SUQgaW4gdGhlIHF1ZXVlIG9mCitzZXJ2aWNlcyBwYXJzZWQgZnJvbSBhIGRldmljZSBhZHZlcnRp c2VtZW50LiBXaGVuIHRoYXQgc2VydmljZXMgbGlzdCB3YXMKK21pZ3JhdGVkIGZyb20gYSBHU0xp c3QgdG8gYSBzdHJ1Y3QgcXVldWUsIHRoZSBxdWV1ZV9maW5kKCkgY2FsbCBrZXB0CitHTGliJ3Mg Z19zbGlzdF9maW5kX2N1c3RvbSgpIGFyZ3VtZW50IG9yZGVyLCBwYXNzaW5nIHRoZSBVVUlEIHN0 cmluZword2hlcmUgcXVldWVfZmluZCgpIGV4cGVjdHMgYSBtYXRjaCBmdW5jdGlvbiBhbmQgdGhl IGNvbXBhcmlzb24gZnVuY3Rpb24KK3doZXJlIGl0IGV4cGVjdHMgdGhlIG1hdGNoIGRhdGEuCisK K0FzIGEgcmVzdWx0IHF1ZXVlX2ZpbmQoKSBjYWxscyB0aGUgVVVJRCBzdHJpbmcgYXMgaWYgaXQg d2VyZSBhIGZ1bmN0aW9uLAoranVtcGluZyBpbnRvIG5vbi1leGVjdXRhYmxlIGhlYXAgYW5kIGNy YXNoaW5nIGJsdWV0b290aGQgd2l0aCBTSUdTRUdWIGFzCitzb29uIGFzIGFuIGFkdmVydGlzZW1l bnQgbWF0Y2hlcyBhIFVVSUQgZmlsdGVyIGNvbmZpZ3VyZWQgdmlhCitTZXREaXNjb3ZlcnlGaWx0 ZXIuCisKK0FkZCBhIHF1ZXVlX21hdGNoX2Z1bmNfdCBoZWxwZXIgYW5kIHBhc3MgdGhlIGFyZ3Vt ZW50cyBpbiB0aGUgY29ycmVjdAorb3JkZXIuCisKK0ZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20v Ymx1ZXovYmx1ZXovaXNzdWVzLzIyODIKKy0tLQorIHNyYy9hZGFwdGVyLmMgfCAxMSArKysrKysr KystLQorIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisK K2RpZmYgLS1naXQgYS9zcmMvYWRhcHRlci5jIGIvc3JjL2FkYXB0ZXIuYworaW5kZXggMjEwMjI1 MjQzZjAwLi40ZmZhMzJhNTJjMTMgMTAwNjQ0CistLS0gYS9zcmMvYWRhcHRlci5jCisrKysgYi9z cmMvYWRhcHRlci5jCitAQCAtNzE4NCw2ICs3MTg0LDE0IEBAIHN0YXRpYyB2b2lkIGFkYXB0ZXJf bXNkX25vdGlmeShzdHJ1Y3QgYnRkX2FkYXB0ZXIgKmFkYXB0ZXIsCisgCX0KKyB9CisgCisrc3Rh dGljIGJvb2wgbWF0Y2hfdXVpZChjb25zdCB2b2lkICpkYXRhLCBjb25zdCB2b2lkICptYXRjaF9k YXRhKQorK3sKKysJY29uc3QgY2hhciAqdXVpZCA9IGRhdGE7CisrCWNvbnN0IGNoYXIgKm1hdGNo ID0gbWF0Y2hfZGF0YTsKKysKKysJcmV0dXJuIHN0cmNtcCh1dWlkLCBtYXRjaCkgPT0gMDsKKyt9 CisrCisgc3RhdGljIGJvb2wgaXNfZmlsdGVyX21hdGNoKEdTTGlzdCAqZGlzY292ZXJ5X2ZpbHRl ciwgc3RydWN0IGVpcl9kYXRhICplaXJfZGF0YSwKKyAJCQkJCQkJCWludDhfdCByc3NpKQorIHsK K0BAIC03MjE2LDggKzcyMjQsNyBAQCBzdGF0aWMgYm9vbCBpc19maWx0ZXJfbWF0Y2goR1NMaXN0 ICpkaXNjb3ZlcnlfZmlsdGVyLCBzdHJ1Y3QgZWlyX2RhdGEgKmVpcl9kYXRhLAorIAkJCQkgKiB1 dWlkLgorIAkJCQkgKi8KKyAJCQkJaWYgKHF1ZXVlX2ZpbmQoZWlyX2RhdGEtPnNlcnZpY2VzLAor LQkJCQkJCQltLT5kYXRhLAorLQkJCQkJCQlnX3N0cmNtcCkgIT0gTlVMTCkKKysJCQkJCQkJbWF0 Y2hfdXVpZCwgbS0+ZGF0YSkpCisgCQkJCQlnb3RfbWF0Y2ggPSB0cnVlOworIAkJCX0KKyAJCX0K Ky0tIAorMi41NC4wCisKKworRnJvbSBiN2Q3MWU1MDY3ODU2YjBkYWYyZjFmNzNiM2ZjOTU0ODMy MzY2MTBlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWlraGFpbCBHYXZyaWxvdiA8 bWlraGFpbC52LmdhdnJpbG92QGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMTAgSnVsIDIwMjYgMTI6 Mjg6MTcgKzA1MDAKK1N1YmplY3Q6IFtQQVRDSCAwOC8xOV0gYTJkcDogRml4IGxvYWRpbmcgb2Yg cmVtb3RlIFNFUCBmcm9tIGNhY2hlCisKK0NvbW1pdCA5MTJmNWVmYjBkZDkgKCJhMmRwOiBGaXgg aGFuZGxpbmcgb2YgY29kZWMgY2FwYWJpbGl0eSBzdG9yYWdlIikKK2FkZGVkIGFuICdpID49IDIn IGNvbmRpdGlvbiB0byB0aGUgbG9vcCB0aGF0IHBhcnNlcyB0aGUgc3RvcmVkIGNvZGVjCitjYXBh YmlsaXRpZXMuIFNpbmNlIGkgc3RhcnRzIGF0IDAgdGhlIGxvb3AgYm9keSBuZXZlciBydW5zLCBp IHN0YXlzIDAsCithbmQgdGhlIHN1YnNlcXVlbnQgJ2lmIChpICE9IHNpemUpJyBjaGVjayBkaXNj YXJkcyBldmVyeSBlbmRwb2ludCBmb3VuZAoraW4gdGhlIGNhY2hlOgorCisgIGxvYWRfcmVtb3Rl X3NlcCgpIFVuYWJsZSB0byBsb2FkIExhc3RVc2VkOiByc2VpZCA2IG5vdCBmb3VuZAorCitXaXRo IG5vIHJlbW90ZSBTRVAgbG9hZGVkLCBhdmR0cF9kaXNjb3ZlcigpIGNhbiBubyBsb25nZXIgdGFr ZSB0aGUKK2NhY2hlZCBwYXRoIGFuZCBpc3N1ZXMgQVZEVFAgRGlzY292ZXIvR2V0IEFsbCBDYXBh YmlsaXRpZXMgb24gZXZlcnkKK3JlY29ubmVjdCwgYW5kIGEyZHBfc2V0dXBfcmVtb3RlX3BhdGgo KSByZXR1cm5zIE5VTEwgc28gdGhlIHRyYW5zcG9ydAorZW5kcyB1cCBhdCAvb3JnL2JsdWV6L2hj aVgvZGV2X1lZL2ZkMCBpbnN0ZWFkIG9mIC4uLi9zZXBOL2ZkMC4KKworVGhlIGNvbmRpdGlvbiB3 YXMgcHJlc3VtYWJseSBtZWFudCB0byBib3VuZCB0aGUgd3JpdGVzIGludG8gZGF0YVsxMjhdLAor d2hpY2ggdGhlIG9yaWdpbmFsIGNvbW1pdCBkaWQgbm90IGFjdHVhbGx5IGZpeDogY2FwcyBpcyBy ZWFkIHdpdGgKKyclNTEycycgc28gc2l6ZSAvIDIgY2FuIGJlIHVwIHRvIDI1Ni4gVmFsaWRhdGUg c2l6ZSB1cCBmcm9udCBpbnN0ZWFkLgorCitGaXhlczogaHR0cHM6Ly9naXRodWIuY29tL2JsdWV6 L2JsdWV6L2lzc3Vlcy8yMjg1CistLS0KKyBwcm9maWxlcy9hdWRpby9hMmRwLmMgfCAxMyArKysr KysrKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS9wcm9maWxlcy9hdWRpby9hMmRwLmMgYi9wcm9maWxlcy9hdWRp by9hMmRwLmMKK2luZGV4IGM4YWRjMzEyMjU2My4uYTRiYTFkYWNmOTQzIDEwMDY0NAorLS0tIGEv cHJvZmlsZXMvYXVkaW8vYTJkcC5jCisrKysgYi9wcm9maWxlcy9hdWRpby9hMmRwLmMKK0BAIC0y Mzk4LDcgKzIzOTgsMTYgQEAgc3RhdGljIHZvaWQgbG9hZF9yZW1vdGVfc2VwKHN0cnVjdCBhMmRw X2NoYW5uZWwgKmNoYW4sIEdLZXlGaWxlICprZXlfZmlsZSwKKyAJCQlkZWxheV9yZXBvcnRpbmcg PSBmYWxzZTsKKyAJCX0KKyAKKy0JCWZvciAoaSA9IDAsIHNpemUgPSBzdHJsZW4oY2Fwcyk7IGkg PCBzaXplICYmIGkgPj0gMjsgaSArPSAyKSB7CisrCQlzaXplID0gc3RybGVuKGNhcHMpOworKwor KwkJZ19mcmVlKHZhbHVlKTsKKysKKysJCWlmIChzaXplICUgMiB8fCBzaXplIC8gMiA+IChpbnQp IHNpemVvZihkYXRhKSkgeworKwkJCXdhcm4oIlVuYWJsZSB0byBsb2FkIEVuZHBvaW50OiBzZWlk ICV1IiwgcnNlaWQpOworKwkJCWNvbnRpbnVlOworKwkJfQorKworKwkJZm9yIChpID0gMDsgaSA8 IHNpemU7IGkgKz0gMikgeworIAkJCXVpbnQ4X3QgKnRtcCA9IGRhdGEgKyBpIC8gMjsKKyAKKyAJ CQlpZiAoc3NjYW5mKGNhcHMgKyBpLCAiJTAyaGh4IiwgdG1wKSAhPSAxKSB7CitAQCAtMjQwNyw4 ICsyNDE2LDYgQEAgc3RhdGljIHZvaWQgbG9hZF9yZW1vdGVfc2VwKHN0cnVjdCBhMmRwX2NoYW5u ZWwgKmNoYW4sIEdLZXlGaWxlICprZXlfZmlsZSwKKyAJCQl9CisgCQl9CisgCistCQlnX2ZyZWUo dmFsdWUpOworLQorIAkJaWYgKGkgIT0gc2l6ZSkKKyAJCQljb250aW51ZTsKKyAKKy0tIAorMi41 NC4wCisKKworRnJvbSAyYTNkM2IwZTZmODM1MTY3MzZjM2M4MTkxZmI5NDQwNDc1MTcxNjAwIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTHVpeiBBdWd1c3RvIHZvbiBEZW50eiA8bHVp ei52b24uZGVudHpAaW50ZWwuY29tPgorRGF0ZTogRnJpLCAxMCBKdWwgMjAyNiAxNDo0NzoxNCAt MDQwMAorU3ViamVjdDogW1BBVENIIDA5LzE5XSBtb25pdG9yOiBGaXggcHJpbnRpbmcgc3VicGFn ZXMgYml0cyBhZnRlciBhbGwgc3VicGFnZXMKKworVGhpcyBmaXhlcyBwcmludGluZyB0aGUgZGVj b2RlZCBzdWJwYWdlIGJpdGZpZWxkcyBhZnRlciBhbGwgc3VicGFnZXMKK3JhdGhlciB0aGVuIGFm dGVyIHRoZSBzdWJwYWdlIGl0c2VsZjoKKworYmVmb3JlOgorCisgICAgICAgIEZlYXR1cmVzWzEv MF1bOF06CisgICAgICAgIDAwIDAzIDAwIDAwIDAwIDAwIDAwIDAwICAgICAgICAgICAgICAgICAg ICAgICAgICAuLi4uLi4uLgorICAgICAgICBGZWF0dXJlc1sxLzFdWzhdOgorICAgICAgICAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uLi4uLi4KKyAg ICAgICAgRmVhdHVyZXNbMS8yXVs4XToKKyAgICAgICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg ICAgICAgICAgICAgICAgICAgICAgICAgIC4uLi4uLi4uCisgICAgICAgICAgU2hvcnRlciBDb25u ZWN0aW9uIEludGVydmFscworICAgICAgICAgIFNob3J0ZXIgQ29ubmVjdGlvbiBJbnRlcnZhbHMg KEhvc3QgU3VwcG9ydCkKKworYWZ0ZXI6CisKKyAgICAgICAgRmVhdHVyZXNbMS8wXVs4XToKKyAg ICAgICAgMDAgMDMgMDAgMDAgMDAgMDAgMDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgIC4u Li4uLi4uCisgICAgICAgICAgU2hvcnRlciBDb25uZWN0aW9uIEludGVydmFscworICAgICAgICAg IFNob3J0ZXIgQ29ubmVjdGlvbiBJbnRlcnZhbHMgKEhvc3QgU3VwcG9ydCkKKy0tLQorIG1vbml0 b3IvcGFja2V0LmMgfCAzMyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KKyAxIGZp bGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1n aXQgYS9tb25pdG9yL3BhY2tldC5jIGIvbW9uaXRvci9wYWNrZXQuYworaW5kZXggZTYyYWQ0Y2Zi MzM3Li5iYTZmZjhlOGU1NTEgMTAwNjQ0CistLS0gYS9tb25pdG9yL3BhY2tldC5jCisrKysgYi9t b25pdG9yL3BhY2tldC5jCitAQCAtMjkyNSwxNyArMjkyNSwyOSBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGJpdGZpZWxkX2RhdGEgZmVhdHVyZXNfbXNmdFtdID0geworIAorIHN0YXRpYyB2b2lkIHBy aW50X2ZlYXR1cmVzX3N1YnBhZ2UodWludDhfdCBwYWdlLCB1aW50OF90IHN1YnBhZ2VzLAorIAkJ CQkJY29uc3QgdWludDhfdCAqZmVhdHVyZXNfYXJyYXksCistCQkJCQl1aW50NjRfdCAqZmVhdHVy ZXMpCisrCQkJCQl1aW50NjRfdCAqZmVhdHVyZXMsCisrCQkJCQljb25zdCBzdHJ1Y3QgYml0Zmll bGRfZGF0YSAqdGFibGUpCisgeworIAlpbnQgaSwgajsKKyAJY2hhciBzdHJbMThdOworIAorIAlm b3IgKGkgPSAwOyBpIDwgc3VicGFnZXM7IGkrKykgeworKwkJdWludDY0X3QgbWFzazsKKysKKyAJ CWZvciAoaiA9IDA7IGogPCA4OyBqKyspCisgCQkJZmVhdHVyZXNbaV0gfD0gKCh1aW50NjRfdCkg ZmVhdHVyZXNfYXJyYXlbaSAqIDggKyBqXSkKKyAJCQkJCTw8IChqICogOCk7CisgCQlzcHJpbnRm KHN0ciwgIkZlYXR1cmVzWyV1LyV1XSIsIHBhZ2UsIGkpOworIAkJcHJpbnRfaGV4X2ZpZWxkKHN0 ciwgJmZlYXR1cmVzX2FycmF5W2kgKiA4XSwgOCk7CisrCisrCQlpZiAoIXRhYmxlKQorKwkJCWNv bnRpbnVlOworKworKwkJbWFzayA9IHByaW50X2JpdGZpZWxkKDIsIGZlYXR1cmVzW2ldLCB0YWJs ZSk7CisrCQlpZiAobWFzaykKKysJCQlwcmludF90ZXh0KENPTE9SX1VOS05PV05fRkVBVFVSRV9C SVQsCisrCQkJCSIgIFVua25vd24gZmVhdHVyZXMgKDB4JTE2LjE2IiBQUkl4NjQgIikiLAorKwkJ CQltYXNrKTsKKyAJfQorIH0KKyAKK0BAIC0yOTQzLDE2ICsyOTU1LDEzIEBAIHN0YXRpYyB2b2lk IHByaW50X2ZlYXR1cmVzKHVpbnQ4X3QgcGFnZSwgY29uc3QgdWludDhfdCAqZmVhdHVyZXNfYXJy YXksCisgCQkJCQkJCQl1aW50OF90IHR5cGUpCisgeworIAljb25zdCBzdHJ1Y3QgYml0ZmllbGRf ZGF0YSAqZmVhdHVyZXNfdGFibGUgPSBOVUxMOworLQl1aW50NjRfdCBtYXNrLCBmZWF0dXJlc1sz XSA9IHt9OworKwl1aW50NjRfdCBmZWF0dXJlc1szXSA9IHt9OworIAl1aW50OF90IHN1YnBhZ2Vz ID0gMTsKKy0JaW50IGk7CisgCisgCS8qIExFIHBhZ2VzIDEtMTAgYXJlIDE5MiBiaXRzICgyNCBv Y3RldHMpIGVhY2ggKi8KKyAJaWYgKHR5cGUgPT0gMHgwMSAmJiBwYWdlKQorIAkJc3VicGFnZXMg PSAzOworIAorLQlwcmludF9mZWF0dXJlc19zdWJwYWdlKHBhZ2UsIHN1YnBhZ2VzLCBmZWF0dXJl c19hcnJheSwgZmVhdHVyZXMpOworLQorIAlzd2l0Y2ggKHR5cGUpIHsKKyAJY2FzZSAweDAwOgor IAkJc3dpdGNoIChwYWdlKSB7CitAQCAtMjk4NSwxNiArMjk5NCw4IEBAIHN0YXRpYyB2b2lkIHBy aW50X2ZlYXR1cmVzKHVpbnQ4X3QgcGFnZSwgY29uc3QgdWludDhfdCAqZmVhdHVyZXNfYXJyYXks CisgCQlicmVhazsKKyAJfQorIAorLQlpZiAoIWZlYXR1cmVzX3RhYmxlKQorLQkJcmV0dXJuOwor LQorLQlmb3IgKGkgPSAwOyBpIDwgc3VicGFnZXM7IGkrKykgeworLQkJbWFzayA9IHByaW50X2Jp dGZpZWxkKDIsIGZlYXR1cmVzW2ldLCBmZWF0dXJlc190YWJsZSk7CistCQlpZiAobWFzaykKKy0J CQlwcmludF90ZXh0KENPTE9SX1VOS05PV05fRkVBVFVSRV9CSVQsCistCQkJCSIgIFVua25vd24g ZmVhdHVyZXMgKDB4JTE2LjE2IiBQUkl4NjQgIikiLAorLQkJCQltYXNrKTsKKy0JfQorKwlwcmlu dF9mZWF0dXJlc19zdWJwYWdlKHBhZ2UsIHN1YnBhZ2VzLCBmZWF0dXJlc19hcnJheSwgZmVhdHVy ZXMsCisrCQkJCQkJCWZlYXR1cmVzX3RhYmxlKTsKKyB9CisgCisgdm9pZCBwYWNrZXRfcHJpbnRf ZmVhdHVyZXNfbG1wKGNvbnN0IHVpbnQ4X3QgKmZlYXR1cmVzLCB1aW50OF90IHBhZ2UpCitAQCAt MTEwNjUsNyArMTEwNjYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9wY29kZV9kYXRhIG9wY29k ZV90YWJsZVtdID0geworIAkJCQkiTEUgUmVhZCBNaW5pbXVtIFN1cHBvcnRlZCBDb25uZWN0aW9u IEludGVydmFsIiwKKyAJCQkJbnVsbF9jbWQsIDAsIHRydWUsIGxlX3JlYWRfY29ubl9pbnRlcnZh bF9yc3AsCisgCQkJCXNpemVvZihzdHJ1Y3QgYnRfaGNpX3JzcF9sZV9yZWFkX2Nvbm5faW50ZXJ2 YWwpLAorLQkJCQl0cnVlIH0sCisrCQkJCWZhbHNlIH0sCisgCXsgfQorIH07CisgCistLSAKKzIu NTQuMAorCisKK0Zyb20gMGYyZjUzZmQwNGQ0ZWI3MzgwMWRlMWY4Y2ExNmE0MGUzYjEyYzAzNCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBhdWxpIFZpcnRhbmVuIDxwYXZAaWtpLmZp PgorRGF0ZTogTW9uLCAxMyBKdWwgMjAyNiAxNjo1MDoyMyArMDMwMAorU3ViamVjdDogW1BBVENI IDEwLzE5XSB0b29scy9zY28tdGVzdGVyOiBmaXggbWlzc2luZyBjbGVhciBvZiBpb19pZCBpbgor IGNhbGxiYWNrcworCitGaXhlcyBpc3N1ZXMKKworR0xpYi1DUklUSUNBTCAqKjogU291cmNlIElE IDEyNiB3YXMgbm90IGZvdW5kIHdoZW4gYXR0ZW1wdGluZyB0byByZW1vdmUgaXQKKy0tLQorIHRv b2xzL3Njby10ZXN0ZXIuYyB8IDIgKysKKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp CisKK2RpZmYgLS1naXQgYS90b29scy9zY28tdGVzdGVyLmMgYi90b29scy9zY28tdGVzdGVyLmMK K2luZGV4IGEyMTg1YjhlZjE5OC4uZmNhOTlhOTFjMjBmIDEwMDY0NAorLS0tIGEvdG9vbHMvc2Nv LXRlc3Rlci5jCisrKysgYi90b29scy9zY28tdGVzdGVyLmMKK0BAIC0xNDE1LDYgKzE0MTUsOCBA QCBzdGF0aWMgZ2Jvb2xlYW4gc2NvX2FjY2VwdF9jYihHSU9DaGFubmVsICppbywgR0lPQ29uZGl0 aW9uIGNvbmQsCisgCWdib29sZWFuIHJldDsKKyAJR0lPQ2hhbm5lbCAqbmV3X2lvOworIAorKwlk YXRhLT5pb19pZCA9IDA7CisrCisgCXRlc3Rlcl9kZWJ1ZygiTmV3IGNvbm5lY3Rpb24iKTsKKyAK KyAJc2sgPSBnX2lvX2NoYW5uZWxfdW5peF9nZXRfZmQoaW8pOworLS0gCisyLjU0LjAKKworCitG cm9tIDkzNTNjMGVhOWY2YzFiYWNmZjAwZDlhZmVmMGQ5NjM3OTZkODZiZDMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBQYXVsaSBWaXJ0YW5lbiA8cGF2QGlraS5maT4KK0RhdGU6IE1v biwgMTMgSnVsIDIwMjYgMTY6NTA6MjQgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCAxMS8xOV0gdG9v bHMvNmxvd3Bhbi10ZXN0ZXI6IGZpeCByYWNlIGluIENsaWVudCBDb25uZWN0IC0KKyBEaXNhYmxl CisKK0l0J3MgcG9zc2libGUgY2xpZW50X2wyY2FwX2Rpc2Nvbm5lY3RfY2IoKSBpcyBjYWxsZWQg YWZ0ZXIgNmxvd3BhbgorZGlzYWJsZSBvbiBjb25uZWN0LiBQcmV2ZW50IGZhaWxpbmcgdGVzdCBp biBmaW5pc2hfc3RlcCgpIGluIHRoaXMgY2FzZS4KKy0tLQorIHRvb2xzLzZsb3dwYW4tdGVzdGVy LmMgfCA1ICsrKystCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQorCitkaWZmIC0tZ2l0IGEvdG9vbHMvNmxvd3Bhbi10ZXN0ZXIuYyBiL3Rvb2xzLzZsb3dw YW4tdGVzdGVyLmMKK2luZGV4IDk1ZmRmMjA2ZmMwYy4uNzM4NzE0ZDY4ZGQxIDEwMDY0NAorLS0t IGEvdG9vbHMvNmxvd3Bhbi10ZXN0ZXIuYworKysrIGIvdG9vbHMvNmxvd3Bhbi10ZXN0ZXIuYwor QEAgLTY0OCw4ICs2NDgsMTEgQEAgc3RhdGljIHZvaWQgY2xpZW50X2wyY2FwX2Nvbm5lY3RfY2Io dWludDE2X3QgaGFuZGxlLCB1aW50MTZfdCBjaWQsCisgCWlmIChjZGF0YS0+ZGlzYWJsZV9vbl9j b25uZWN0KSB7CisgCQlpZiAod3JpdGVfNmxvd3BhbigiNmxvd3Bhbl9lbmFibGUiLCAiMCIpKQor IAkJCXRlc3Rlcl90ZXN0X2ZhaWxlZCgpOworLQkJZWxzZQorKwkJZWxzZSB7CisrCQkJZGF0YS0+ aGFuZGxlID0gMDsKKysJCQlkYXRhLT5kY2lkID0gMDsKKyAJCQl0ZXN0ZXJfdGVzdF9wYXNzZWQo KTsKKysJCX0KKyAJfQorIH0KKyAKKy0tIAorMi41NC4wCisKKworRnJvbSBiYTA4ZTBmNmJlMGYy YWMxN2RlM2MwNjA5YzY0ZTFkMWFjYWExNTYzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogUGF1bGkgVmlydGFuZW4gPHBhdkBpa2kuZmk+CitEYXRlOiBNb24sIDEzIEp1bCAyMDI2IDE2 OjUwOjI1ICswMzAwCitTdWJqZWN0OiBbUEFUQ0ggMTIvMTldIHRvb2xzLzZsb3dwYW4tdGVzdGVy OiBhZGQgdGVzdCBmb3IgVkhDSSB0ZWFyZG93bgorIHdpdGhvdXQgZGlzYWJsZQorCitDaGVjayA2 bG93cGFuIHRlYXJkb3duIHdoZW4gY29udHJvbGxlciBkaXNhcHBlcnMgd2l0aCBhY3RpdmUgZGV2 aWNlcy4KK0FkZCB0ZXN0CisKK0NsaWVudCBDb25uZWN0IC0gTm8gRGlzYWJsZQorLS0tCisgdG9v bHMvNmxvd3Bhbi10ZXN0ZXIuYyB8IDI4ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KKyAx IGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKworZGlmZiAt LWdpdCBhL3Rvb2xzLzZsb3dwYW4tdGVzdGVyLmMgYi90b29scy82bG93cGFuLXRlc3Rlci5jCitp bmRleCA3Mzg3MTRkNjhkZDEuLmE4ZmFmNmViNTk3NiAxMDA2NDQKKy0tLSBhL3Rvb2xzLzZsb3dw YW4tdGVzdGVyLmMKKysrKyBiL3Rvb2xzLzZsb3dwYW4tdGVzdGVyLmMKK0BAIC03Niw2ICs3Niw5 IEBAIHN0cnVjdCBjbGllbnRfZGF0YSB7CisgCisgCS8qIEludGVyZmFjZSBsaXN0ZW5lciBzb2Nr ZXQgdHlwZSwgU09DS19SQVcgLyBER1JBTSAqLworIAlpbnQgc2tfdHlwZTsKKysKKysJLyogRG9u J3QgZGlzYWJsZSA2bG93cGFuIGJlZm9yZSBhZGFwdGVyIHRlYXJkb3duICovCisrCWJvb2wgbm9f dGVhcmRvd25fZGlzYWJsZTsKKyB9OworIAorIHN0YXRpYyB2b2lkIHByaW50X2RlYnVnKGNvbnN0 IGNoYXIgKnN0ciwgdm9pZCAqdXNlcl9kYXRhKQorQEAgLTI2NCw2ICsyNjcsNyBAQCBzdGF0aWMg dm9pZCB0ZXN0X3ByZV9zZXR1cChjb25zdCB2b2lkICp0ZXN0X2RhdGEpCisgc3RhdGljIHZvaWQg dGVzdF9wb3N0X3RlYXJkb3duKGNvbnN0IHZvaWQgKnRlc3RfZGF0YSkKKyB7CisgCXN0cnVjdCB0 ZXN0X2RhdGEgKmRhdGEgPSB0ZXN0ZXJfZ2V0X2RhdGEoKTsKKysJY29uc3Qgc3RydWN0IGNsaWVu dF9kYXRhICpjZGF0YSA9IGRhdGEtPnRlc3RfZGF0YTsKKyAJaW50IHJldDsKKyAKKyAJaWYgKGRh dGEtPmlvX2lkID4gMCkgeworQEAgLTI3NiwxMSArMjgwLDEzIEBAIHN0YXRpYyB2b2lkIHRlc3Rf cG9zdF90ZWFyZG93bihjb25zdCB2b2lkICp0ZXN0X2RhdGEpCisgCQlkYXRhLT5wYWNrZXRfZmQg PSAtMTsKKyAJfQorIAorLQlyZXQgPSB3cml0ZV82bG93cGFuKCI2bG93cGFuX2VuYWJsZSIsICIw Iik7CistCWlmIChyZXQgPCAwKSB7CistCQl0ZXN0ZXJfd2FybigiRmFpbGVkIHRvIGRpc2FibGUg Nmxvd3BhbiIpOworLQkJdGVzdGVyX3Bvc3RfdGVhcmRvd25fZmFpbGVkKCk7CistCQlyZXR1cm47 CisrCWlmICghY2RhdGEgfHwgIWNkYXRhLT5ub190ZWFyZG93bl9kaXNhYmxlKSB7CisrCQlyZXQg PSB3cml0ZV82bG93cGFuKCI2bG93cGFuX2VuYWJsZSIsICIwIik7CisrCQlpZiAocmV0IDwgMCkg eworKwkJCXRlc3Rlcl93YXJuKCJGYWlsZWQgdG8gZGlzYWJsZSA2bG93cGFuIik7CisrCQkJdGVz dGVyX3Bvc3RfdGVhcmRvd25fZmFpbGVkKCk7CisrCQkJcmV0dXJuOworKwkJfQorIAl9CisgCisg CWhjaWVtdV91bnJlZihkYXRhLT5oY2llbXUpOworQEAgLTMxNyw2ICszMjMsMTAgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBjbGllbnRfZGF0YSBjbGllbnRfY29ubmVjdF9kaXNhYmxlID0geworIAku ZGlzYWJsZV9vbl9jb25uZWN0ID0gdHJ1ZSwKKyB9OworIAorK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg Y2xpZW50X2RhdGEgY2xpZW50X2Nvbm5lY3Rfbm9fZGlzYWJsZSA9IHsKKysJLm5vX3RlYXJkb3du X2Rpc2FibGUgPSB0cnVlLAorK307CisrCisgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGllbnRfZGF0 YSBjbGllbnRfY29ubmVjdF9kaXNjb25uZWN0ID0geworIAkuZGlzY29ubmVjdCA9IHRydWUsCisg fTsKK0BAIC02NTMsNiArNjYzLDEwIEBAIHN0YXRpYyB2b2lkIGNsaWVudF9sMmNhcF9jb25uZWN0 X2NiKHVpbnQxNl90IGhhbmRsZSwgdWludDE2X3QgY2lkLAorIAkJCWRhdGEtPmRjaWQgPSAwOwor IAkJCXRlc3Rlcl90ZXN0X3Bhc3NlZCgpOworIAkJfQorKwl9IGVsc2UgaWYgKGNkYXRhLT5ub190 ZWFyZG93bl9kaXNhYmxlKSB7CisrCQlkYXRhLT5oYW5kbGUgPSAwOworKwkJZGF0YS0+ZGNpZCA9 IDA7CisrCQl0ZXN0ZXJfdGVzdF9wYXNzZWQoKTsKKyAJfQorIH0KKyAKK0BAIC03MDgsNiArNzIy LDEwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgCQkJCQkJCXNldHVwX3Bv d2VyZWRfY2xpZW50LAorIAkJCQkJCQl0ZXN0X2Nvbm5lY3QpOworIAorKwl0ZXN0XzZsb3dwYW4o IkNsaWVudCBDb25uZWN0IC0gTm8gRGlzYWJsZSIsICZjbGllbnRfY29ubmVjdF9ub19kaXNhYmxl LAorKwkJCQkJCQlzZXR1cF9wb3dlcmVkX2NsaWVudCwKKysJCQkJCQkJdGVzdF9jb25uZWN0KTsK KysKKyAJdGVzdF82bG93cGFuKCJDbGllbnQgQ29ubmVjdCAtIERpc2Nvbm5lY3QiLCAmY2xpZW50 X2Nvbm5lY3RfZGlzY29ubmVjdCwKKyAJCQkJCQkJc2V0dXBfcG93ZXJlZF9jbGllbnQsCisgCQkJ CQkJCXRlc3RfY29ubmVjdCk7CistLSAKKzIuNTQuMAorCisKK0Zyb20gMWNmZTJkOGIyY2JiOGM2 NDU0Mzk0NjRhMjE3MDUzZDNjZGM0MWU1ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IFBhdWxpIFZpcnRhbmVuIDxwYXZAaWtpLmZpPgorRGF0ZTogTW9uLCAxMyBKdWwgMjAyNiAxNjo1 MDoyNiArMDMwMAorU3ViamVjdDogW1BBVENIIDEzLzE5XSB0b29scy9sMmNhcC10ZXN0ZXI6IGZp eCBTZXQgUEhZIHRlc3Qgc3B1cmlvdXMgZmFpbHVyZXMKKworU2V0dGluZyBCVF9QSFkgZG9lcyBu b3QgdGFrZSBlZmZlY3QgaW5zdGFudGFuZW91c2x5IGFzIGtlcm5lbCB3YWl0cyBmb3IKK2NvbnRy b2xsZXIsIHNvIGNoZWNraW5nIGdldHNvY2tvcHQoKSBzb21ldGltZXMgZmFpbHMgaGVyZS4gSW4g UEhZIHRlc3RzLAordXNlIHJldHJ5IHdpdGggdGltZW91dCB0byBjaGVjayBhZ2FpbiBsYXRlci4K Ky0tLQorIHRvb2xzL2wyY2FwLXRlc3Rlci5jIHwgMTggKysrKysrKysrKystLS0tLS0tCisgMSBm aWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1n aXQgYS90b29scy9sMmNhcC10ZXN0ZXIuYyBiL3Rvb2xzL2wyY2FwLXRlc3Rlci5jCitpbmRleCBh OGNhYzM5MDJiMzIuLjI3NzFhZWU2NTgxNCAxMDA2NDQKKy0tLSBhL3Rvb2xzL2wyY2FwLXRlc3Rl ci5jCisrKysgYi90b29scy9sMmNhcC10ZXN0ZXIuYworQEAgLTI3Nyw3ICsyNzcsNyBAQCBzdGF0 aWMgdm9pZCB0ZXN0X2RhdGFfZnJlZSh2b2lkICp0ZXN0X2RhdGEpCisgI2RlZmluZSB0ZXN0X2wy Y2FwKG5hbWUsIHR5cGUsIGRhdGEsIHNldHVwLCBmdW5jKSBcCisgCWRvIHsgXAorIAkJc3RydWN0 IHRlc3RfZGF0YSAqdXNlcjsgXAorLQkJdXNlciA9IG1hbGxvYyhzaXplb2Yoc3RydWN0IHRlc3Rf ZGF0YSkpOyBcCisrCQl1c2VyID0gY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgdGVzdF9kYXRhKSk7 IFwKKyAJCWlmICghdXNlcikgXAorIAkJCWJyZWFrOyBcCisgCQl1c2VyLT5oY2llbXVfdHlwZSA9 IHR5cGU7IFwKK0BAIC0xNjU3LDggKzE2NTcsMTAgQEAgc3RhdGljIGdib29sZWFuIHNvY2tldF9j bG9zZWRfY2IoR0lPQ2hhbm5lbCAqaW8sIEdJT0NvbmRpdGlvbiBjb25kLAorIAkJdGVzdGVyX3By aW50KCJlcnIgJWQgIT0gJWQgZXhwZWN0ZWRfZXJyIiwgLWVyciwKKyAJCQkJCQlsMmRhdGEtPmV4 cGVjdF9lcnIpOworIAkJdGVzdGVyX3Rlc3RfZmFpbGVkKCk7CistCX0gZWxzZQorKwl9IGVsc2Ug aWYgKCFkYXRhLT5zdGVwKQorIAkJdGVzdGVyX3Rlc3RfcGFzc2VkKCk7CisrCWVsc2UKKysJCXRl c3Rlcl90ZXN0X2ZhaWxlZCgpOworIAorIAlyZXR1cm4gRkFMU0U7CisgfQorQEAgLTE3MjksMTIg KzE3MzEsMTMgQEAgc3RhdGljIGdib29sZWFuIGNoZWNrX3BoeShncG9pbnRlciBhcmdzKQorIAl9 CisgCisgCWlmIChsMmRhdGEtPnBoeSAmJiBsMmRhdGEtPnBoeSAhPSBkYXRhLT5waHlzKSB7Cist CQl0ZXN0ZXJfd2FybigicGh5IDB4JTA4eCAhPSAweCUwOHgiLCBsMmRhdGEtPnBoeSwgZGF0YS0+ cGh5cyk7CistCQl0ZXN0ZXJfdGVzdF9mYWlsZWQoKTsKKy0JCWdvdG8gZG9uZTsKKysJCXRlc3Rl cl9wcmludCgicGh5IDB4JTA4eCAhPSAweCUwOHgiLCBsMmRhdGEtPnBoeSwgZGF0YS0+cGh5cyk7 CisrCisrCQkvKiBSZXRyeSAqLworKwkJcmV0dXJuIFRSVUU7CisgCX0KKyAKKy0JdGVzdGVyX3Rl c3RfcGFzc2VkKCk7CisrCWRhdGEtPnN0ZXAtLTsKKyAKKyBkb25lOgorIAlzaHV0ZG93bihzaywg U0hVVF9XUik7CitAQCAtMTc3MCw3ICsxNzczLDggQEAgc3RhdGljIGludCBjaGVja19waHlzKHN0 cnVjdCB0ZXN0X2RhdGEgKmRhdGEsIGludCBzaykKKyAJCX0KKyAKKyAJCS8qIFdhaXQgZm9yIHRo ZSBQSFkgdG8gY2hhbmdlICovCistCQlnX2lkbGVfYWRkKGNoZWNrX3BoeSwgSU5UX1RPX1BUUihz aykpOworKwkJZGF0YS0+c3RlcCsrOworKwkJZ190aW1lb3V0X2FkZCg1MCwgY2hlY2tfcGh5LCBJ TlRfVE9fUFRSKHNrKSk7CisgCisgCQlyZXR1cm4gLUVJTlBST0dSRVNTOworIAl9CistLSAKKzIu NTQuMAorCisKK0Zyb20gN2Y4MjZkMDAzZWU3YmMwNzY5OGRkZWNmODA0Njk3ZDU1ZTdiOWM4NiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZlcm9zZSA8ZmVyb3NlMkBnbWFpbC5jb20+ CitEYXRlOiBTYXQsIDExIEp1bCAyMDI2IDAwOjAyOjMwIC0wNzAwCitTdWJqZWN0OiBbUEFUQ0gg MTQvMTldIHNoYXJlZC9iYXA6IEZpeCByZWplY3RpbmcgcmUtYXR0YWNoIG9mIHRoZSBzYW1lIGZk CisKK1doZW4gdGhlIHJlbW90ZSdzIFNUUkVBTUlORyBBU0Ugbm90aWZpY2F0aW9uIGFycml2ZXMg YmVmb3JlCitpc29fY29ubmVjdF9jYigpIGZpcmVzLCB0aGUgcmFjZSBoYW5kbGVyIGluIGJhcF9z dGF0ZSgpCisocHJvZmlsZXMvYXVkaW8vYmFwLmMpIGFscmVhZHkgYXR0YWNoZXMgdGhlIGlvIHRv IHRoZSBzdHJlYW07IHRoZQorY29tbWVudCB0aGVyZSBub3RlcyAiT3JkZXIgb2YgU1RSRUFNSU5H IGFuZCBpc29fY29ubmVjdF9jYigpIGlzCitub25kZXRlcm1pbmlzdGljIi4gV2hlbiBpc29fY29u bmVjdF9jYigpIHRoZW4gY2FsbHMKK2J0X2JhcF9zdHJlYW1fc2V0X2lvKCkgd2l0aCB0aGUgc2Ft ZSBmZCwgdGhlIGd1YXJkIGluCitiYXBfdWNhc3Rfc2V0X2lvKCkgc2VlcyBhbiBhdHRhY2hlZCwg bm9uLWNvbm5lY3RpbmcgaW8gYW5kIHJldHVybnMKK2ZhbHNlLiBpc29fY29ubmVjdF9jYigpIHRy ZWF0cyB0aGF0IGFzIGZhdGFsOgorCisgIHByb2ZpbGVzL2F1ZGlvL2JhcC5jOmlzb19jb25uZWN0 X2NiKCkgVW5hYmxlIHRvIHNldCBJTworICBwcm9maWxlcy9hdWRpby90cmFuc3BvcnQuYzpiYXBf c3RhdGVfY2hhbmdlZCgpIFVuYWJsZSB0byBnZXQgc3RyZWFtIElPCisKK2FuZCB0ZWFycyBkb3du IGEgQ0lTIHRoYXQgYnRtb24gc2hvd3Mgd2FzIGVzdGFibGlzaGVkIHN1Y2Nlc3NmdWxseQorKENJ UyBFc3RhYmxpc2hlZCBzdGF0dXMgMCwgYm90aCBJU08gZGF0YSBwYXRocyBzZXQgdXApLiBXaXRo IGEgZGV2aWNlCit3aG9zZSBTVFJFQU1JTkcgbm90aWZpY2F0aW9ucyBjb25zaXN0ZW50bHkgd2lu IHRoZSByYWNlLCBzdHJlYW1pbmcgaXMKK25ldmVyIHBvc3NpYmxlLgorCitUcmVhdCByZS1hdHRh Y2hpbmcgdGhlIGZkIHRoYXQgaXMgYWxyZWFkeSBhdHRhY2hlZCBhcyBhIG5vLW9wIHN1Y2Nlc3Ms Cit3aXRob3V0IHJlLXJ1bm5pbmcgdGhlIHBlci1zdHJlYW0gc3RhdGUgYWN0aW9ucyAod2hpY2gg d291bGQgc2VuZCBhCitkdXBsaWNhdGUgUmVjZWl2ZXIgU3RhcnQgUmVhZHkgdG8gYSBsaW5rZWQg c291cmNlIEFTRSkuIEF0dGFjaGluZyBhCitkaWZmZXJlbnQgZmQgdG8gYSBub24tY29ubmVjdGlu ZyBpbyByZW1haW5zIGFuIGVycm9yLgorCitGaXhlczogaHR0cHM6Ly9naXRodWIuY29tL2JsdWV6 L2JsdWV6L2lzc3Vlcy8yMjIzCistLS0KKyBzcmMvc2hhcmVkL2JhcC5jIHwgMTEgKysrKysrKysr Ky0KKyAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitk aWZmIC0tZ2l0IGEvc3JjL3NoYXJlZC9iYXAuYyBiL3NyYy9zaGFyZWQvYmFwLmMKK2luZGV4IGRi NmY0ZjIwNDc4Ny4uMTY2MGI4YjJjMWNmIDEwMDY0NAorLS0tIGEvc3JjL3NoYXJlZC9iYXAuYwor KysrIGIvc3JjL3NoYXJlZC9iYXAuYworQEAgLTI1ODksOSArMjU4OSwxOCBAQCBzdGF0aWMgdW5z aWduZWQgaW50IGJhcF9iY2FzdF9yZWxlYXNlKHN0cnVjdCBidF9iYXBfc3RyZWFtICpzdHJlYW0s CisgCisgc3RhdGljIGJvb2wgYmFwX3VjYXN0X3NldF9pbyhzdHJ1Y3QgYnRfYmFwX3N0cmVhbSAq c3RyZWFtLCBpbnQgZmQpCisgeworLQlpZiAoIXN0cmVhbSB8fCAoZmQgPj0gMCAmJiBzdHJlYW0t PmlvICYmICFzdHJlYW0tPmlvLT5jb25uZWN0aW5nKSkKKysJaWYgKCFzdHJlYW0pCisgCQlyZXR1 cm4gZmFsc2U7CisgCisrCS8qCisrCSAqIFRoZSBTVFJFQU1JTkcgc3RhdGUgaGFuZGxlciBtYXkg YWxyZWFkeSBoYXZlIGF0dGFjaGVkIHRoaXMgaW8KKysJICogaWYgdGhlIHJlbW90ZSdzIEFTRSBu b3RpZmljYXRpb24gcmFjZWQgYWhlYWQgb2YgaXNvX2Nvbm5lY3RfY2IKKysJICogKHNlZSBiYXBf c3RhdGUoKSBpbiBwcm9maWxlcy9hdWRpby9iYXAuYykuIFJlLWF0dGFjaGluZyB0aGUKKysJICog c2FtZSBmZCBpcyBhIG5vLW9wIHN1Y2Nlc3M7IG9ubHkgYSBkaWZmZXJlbnQgZmQgaXMgYW4gZXJy b3IuCisrCSAqLworKwlpZiAoZmQgPj0gMCAmJiBzdHJlYW0tPmlvICYmICFzdHJlYW0tPmlvLT5j b25uZWN0aW5nKQorKwkJcmV0dXJuIHN0cmVhbV9pb19nZXRfZmQoc3RyZWFtLT5pbykgPT0gZmQ7 CisrCisgCWJhcF9zdHJlYW1fc2V0X2lvKHN0cmVhbSwgSU5UX1RPX1BUUihmZCkpOworIAorIAlx dWV1ZV9mb3JlYWNoKHN0cmVhbS0+bGlua3MsIGJhcF9zdHJlYW1fc2V0X2lvLCBJTlRfVE9fUFRS KGZkKSk7CistLSAKKzIuNTQuMAorCisKK0Zyb20gYmM0OWQ2MzIxMGYyM2UwNzI0ZTA3ZjNlNTgz OGFmZjA1ZmJhYTRhYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBhdWxpIFZpcnRh bmVuIDxwYXZAaWtpLmZpPgorRGF0ZTogU2F0LCAxMSBKdWwgMjAyNiAxMjoxNToyNSArMDMwMAor U3ViamVjdDogW1BBVENIIDE1LzE5XSBsaWI6IGFkZCBpc29fZGF0YV8qIG1hY3JvcyB0byBoY2ku aAorCitBZGQgbWFjcm9zIGZvciBwYXJzaW5nIElTTyBEYXRhIFBhY2tldCBoZWFkZXIgaXRlbXMu CistLS0KKyBsaWIvYmx1ZXRvb3RoL2hjaS5oIHwgNiArKysrKysKKyAxIGZpbGUgY2hhbmdlZCwg NiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9saWIvYmx1ZXRvb3RoL2hjaS5oIGIvbGli L2JsdWV0b290aC9oY2kuaAoraW5kZXggNzMyNDc3ZWM0YjU1Li4yZTRhYTM5NGUxM2UgMTAwNjQ0 CistLS0gYS9saWIvYmx1ZXRvb3RoL2hjaS5oCisrKysgYi9saWIvYmx1ZXRvb3RoL2hjaS5oCitA QCAtMjMzNSw2ICsyMzM1LDEyIEBAIHR5cGVkZWYgc3RydWN0IHsKKyAjZGVmaW5lIGlzb19mbGFn c190cyhmKQkJKChmID4+IDIpICYgMHgwMDAxKQorICNkZWZpbmUgaXNvX2ZsYWdzX3BhY2socGIs IHRzKQkoKHBiICYgMHgwMykgfCAoKHRzICYgMHgwMSkgPDwgMikpCisgCisrLyogSVNPIGRhdGEg bGVuZ3RoIGFuZCBmbGFncyBwYWNrL3VucGFjayAqLworKyNkZWZpbmUgaXNvX2RhdGFfbGVuX3Bh Y2soaCwgZikJKChfX3UxNikgKCgoaCkgJiAweDBmZmYpIHwgXAorKwkJCQkJCSAgKCgoZikgJiAw eDMpIDw8IDE0KSkpCisrI2RlZmluZSBpc29fZGF0YV9sZW4oaCkJCSgoaCkgJiAweDBmZmYpCisr I2RlZmluZSBpc29fZGF0YV9mbGFncyhoKQkoKGgpID4+IDE0KQorKworICNlbmRpZiAvKiBfTk9f SENJX0RFRlMgKi8KKyAKKyAvKiBIQ0kgU29ja2V0IG9wdGlvbnMgKi8KKy0tIAorMi41NC4wCisK KworRnJvbSAxMzA5ZDVmOTMwNWQxMzJiYzA5NzA1ZmZhNGFmYTExM2M2NDkxYzJiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGF1bGkgVmlydGFuZW4gPHBhdkBpa2kuZmk+CitEYXRl OiBTYXQsIDExIEp1bCAyMDI2IDEyOjE1OjI2ICswMzAwCitTdWJqZWN0OiBbUEFUQ0ggMTYvMTld IG1vbml0b3I6IGZpeCBwYXJzaW5nIG9mIElTTyBwYWNrZXQgZGF0YSBoZWFkZXIgYW5kIHNsZW4K KyBjaGVjaworCitDaGVjayBQQiBmbGFnIHRvIHNlZSB3aGV0aGVyIHRpbWVzdGFtcCBhbmQgZGF0 YSBoZWFkZXJzIGFyZSBwcmVzZW50LgorCitDaGVjayBib3VuZHMgYmVmb3JlIGFjY2Vzc2luZyBk YXRhLiBCdW1wIGhhbmRsZV9zdHIgbGVuZ3RoIHRvIGZpdAorbWF4aW11bS4KKworQnl0ZXN3YXAg bGVuZ3RoIHZhbHVlcywgYW5kIG1hc2sgUGFja2V0X1N0YXR1c19GbGFnIGNvcnJlY3RseS4gIFJl bW92ZQorU0RVIGxlbmd0aCBjaGVjaywgYXMgd2UgYXJlIG5vdCB0cmFja2luZyBmcmFnbWVudGF0 aW9uLgorCitGaXhlczogaHR0cHM6Ly9naXRodWIuY29tL2JsdWV6L2JsdWV6L2lzc3Vlcy8yMjky CitBc3Npc3RlZC1ieTogR0xNLTUuMgorLS0tCisgbW9uaXRvci9wYWNrZXQuYyB8IDY5ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFu Z2VkLCA0NiBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL21v bml0b3IvcGFja2V0LmMgYi9tb25pdG9yL3BhY2tldC5jCitpbmRleCBiYTZmZjhlOGU1NTEuLmZi MDUzZTJiNDEzZiAxMDA2NDQKKy0tLSBhL21vbml0b3IvcGFja2V0LmMKKysrKyBiL21vbml0b3Iv cGFja2V0LmMKK0BAIC0xNDU0MSwyMCArMTQ1NDEsMjMgQEAgdm9pZCBwYWNrZXRfaGNpX2lzb2Rh dGEoc3RydWN0IHRpbWV2YWwgKnR2LCBzdHJ1Y3QgdWNyZWQgKmNyZWQsIHVpbnQxNl90IGluZGV4 LAorIAkJCQlib29sIGluLCBjb25zdCB2b2lkICpkYXRhLCB1aW50MTZfdCBzaXplKQorIHsKKyAJ Y29uc3Qgc3RydWN0IGJ0X2hjaV9pc29faGRyICpoZHIgPSBkYXRhOworLQljb25zdCBzdHJ1Y3Qg YnRfaGNpX2lzb19kYXRhX3N0YXJ0ICpzdGFydDsKKy0JdWludDE2X3QgaGFuZGxlID0gbGUxNl90 b19jcHUoaGRyLT5oYW5kbGUpOworLQl1aW50OF90IGZsYWdzID0gYWNsX2ZsYWdzKGhhbmRsZSk7 CisrCXVpbnQxNl90IGhhbmRsZSwgZGxlbjsKKysJdWludDhfdCBmbGFncywgcGJfZmxhZzsKKyAJ Y2hhciBsYWJlbFs4XTsKKy0JY2hhciBoYW5kbGVfc3RyWzU2XSwgZXh0cmFfc3RyWzUwXSwgdHNf c3RyWzE2XSA9IHsgMCB9OworLQlzdHJ1Y3QgaW5kZXhfYnVmX3Bvb2wgKnBvb2wgPSAmaW5kZXhf bGlzdFtpbmRleF0uaXNvOworKwljaGFyIGhhbmRsZV9zdHJbMTAwXSwgZXh0cmFfc3RyWzcwXSwg dHNfc3RyWzE2XSA9IHsgMCB9OworKwljaGFyIHNuX3N0clsxNl0gPSB7IDAgfSwgc2xlbl9zdHJb MzJdID0geyAwIH07CisrCXN0cnVjdCBpbmRleF9idWZfcG9vbCAqcG9vbDsKKyAJc3RydWN0IHBh Y2tldF9jb25uX2RhdGEgKmNvbm47CisgCXNpemVfdCB0c19zaXplID0gMDsKKysJYm9vbCBoYXZl X2hkcjsKKyAKKyAJaWYgKGluZGV4ID49IE1BWF9JTkRFWCkgeworIAkJcHJpbnRfZmllbGQoIklu dmFsaWQgaW5kZXggKCVkKS4iLCBpbmRleCk7CisgCQlyZXR1cm47CisgCX0KKyAKKysJcG9vbCA9 ICZpbmRleF9saXN0W2luZGV4XS5pc287CisrCisgCWluZGV4X2xpc3RbaW5kZXhdLmZyYW1lKys7 CisgCisgCWlmIChzaXplIDwgc2l6ZW9mKCpoZHIpKQorQEAgLTE0NTYzLDExICsxNDU2NiwxOCBA QCB2b2lkIHBhY2tldF9oY2lfaXNvZGF0YShzdHJ1Y3QgdGltZXZhbCAqdHYsIHN0cnVjdCB1Y3Jl ZCAqY3JlZCwgdWludDE2X3QgaW5kZXgsCisgCWRhdGEgKz0gc2l6ZW9mKCpoZHIpOworIAlzaXpl IC09IHNpemVvZigqaGRyKTsKKyAKKysJaGFuZGxlID0gbGUxNl90b19jcHUoaGRyLT5oYW5kbGUp OworKwlmbGFncyA9IGFjbF9mbGFncyhoYW5kbGUpOworKwlwYl9mbGFnID0gaXNvX2ZsYWdzX3Bi KGZsYWdzKTsKKysJZGxlbiA9IGxlMTZfdG9fY3B1KGhkci0+ZGxlbik7CisrCisrCWhhdmVfaGRy ID0gKHBiX2ZsYWcgPT0gMHgwMCB8fCBwYl9mbGFnID09IDB4MDIpOworKworIAkvKiBEZXRlY3Qg aWYgdGltZXN0YW1wIGZpZWxkIGlzIHByZXNldCAqLworIAlpZiAoaXNvX2ZsYWdzX3RzKGZsYWdz KSkgeworIAkJdHNfc2l6ZSA9IHNpemVvZih1aW50MzJfdCk7CisgCistCQlpZiAoc2l6ZSA8IHRz X3NpemUpCisrCQlpZiAoc2l6ZSA8IHRzX3NpemUgfHwgIWhhdmVfaGRyKQorIAkJCWdvdG8gbWFs Zm9ybWVkOworIAorIAkJc25wcmludGYodHNfc3RyLCBzaXplb2YodHNfc3RyKSwgIiB0cyAldSIs IGdldF9sZTMyKGRhdGEpKTsKK0BAIC0xNDU3NiwyMCArMTQ1ODYsNDAgQEAgdm9pZCBwYWNrZXRf aGNpX2lzb2RhdGEoc3RydWN0IHRpbWV2YWwgKnR2LCBzdHJ1Y3QgdWNyZWQgKmNyZWQsIHVpbnQx Nl90IGluZGV4LAorIAkJc2l6ZSAtPSB0c19zaXplOworIAl9CisgCistCXN0YXJ0ID0gZGF0YTsK KysJaWYgKGhhdmVfaGRyKSB7CisrCQljb25zdCBzdHJ1Y3QgYnRfaGNpX2lzb19kYXRhX3N0YXJ0 ICpzdGFydCA9IGRhdGE7CisrCQl1aW50OF90IHNmbGFnczsKKysJCXVpbnQxNl90IHNsZW47Cisr CisrCQlpZiAoc2l6ZSA8IHNpemVvZigqc3RhcnQpKQorKwkJCWdvdG8gbWFsZm9ybWVkOworKwor KwkJc2ZsYWdzID0gaXNvX2RhdGFfZmxhZ3MobGUxNl90b19jcHUoc3RhcnQtPnNsZW4pKTsKKysJ CXNsZW4gPSBpc29fZGF0YV9sZW4obGUxNl90b19jcHUoc3RhcnQtPnNsZW4pKTsKKysKKysJCWlm IChzbGVuKQorKwkJCXNucHJpbnRmKHNsZW5fc3RyLCBzaXplb2Yoc2xlbl9zdHIpLCAiIHNsZW4g JXUiLCBzbGVuKTsKKysJCWlmIChzZmxhZ3MpCisrCQkJc25wcmludGYoc2xlbl9zdHIgKyBzdHJs ZW4oc2xlbl9zdHIpLAorKwkJCQkJc2l6ZW9mKHNsZW5fc3RyKSAtIHN0cmxlbihzbGVuX3N0ciks CisrCQkJCQkiIHNmbGFncyAldSIsIHNmbGFncyk7CisrCisrCQlzbnByaW50Zihzbl9zdHIsIHNp emVvZihzbl9zdHIpLCAiIFNOICV1IiwKKysJCQkJCQkJbGUxNl90b19jcHUoc3RhcnQtPnNuKSk7 CisrCX0KKysKKyAJY29ubiA9IHBhY2tldF9nZXRfY29ubl9kYXRhKGhhbmRsZSk7CisgCisgCWlm ICghaW4gJiYgcG9vbC0+dG90YWwpCistCQlzcHJpbnRmKGhhbmRsZV9zdHIsICJIYW5kbGUgJWQg WyV1LyV1XSBTTiAldSIsCistCQkJYWNsX2hhbmRsZShoYW5kbGUpLCArK3Bvb2wtPnR4LCBwb29s LT50b3RhbCwgc3RhcnQtPnNuKTsKKysJCXNwcmludGYoaGFuZGxlX3N0ciwgIkhhbmRsZSAlZCBb JXUvJXVdJXMiLAorKwkJCWFjbF9oYW5kbGUoaGFuZGxlKSwgKytwb29sLT50eCwgcG9vbC0+dG90 YWwsIHNuX3N0cik7CisgCWVsc2UKKy0JCXNwcmludGYoaGFuZGxlX3N0ciwgIkhhbmRsZSAldSBT TiAldSIsIGFjbF9oYW5kbGUoaGFuZGxlKSwKKy0JCQlzdGFydC0+c24pOworKwkJc3ByaW50Ziho YW5kbGVfc3RyLCAiSGFuZGxlICV1JXMiLCBhY2xfaGFuZGxlKGhhbmRsZSksIHNuX3N0cik7Cisg CisgCWhhbmRsZV9zdHJfYXBwZW5kX2FkZHIoaGFuZGxlX3N0ciwgY29ubik7CisgCistCXNwcmlu dGYoZXh0cmFfc3RyLCAiZmxhZ3MgMHglMi4yeCBkbGVuICV1IHNsZW4gJXUlcyIsIGZsYWdzLCBo ZHItPmRsZW4sCistCQkJCQkJCXN0YXJ0LT5zbGVuLCB0c19zdHIpOworKwlzcHJpbnRmKGV4dHJh X3N0ciwgImZsYWdzIDB4JTIuMnggZGxlbiAldSVzJXMiLCBmbGFncywgZGxlbiwgc2xlbl9zdHIs CisrCQkJCQkJCQkJdHNfc3RyKTsKKyAKKyAJaWYgKGNvbm4pCisgCQlzcHJpbnRmKGxhYmVsLCAi JXMiLCBjb25uX3R5cGVfc3RyKGNvbm4tPnR5cGUpKTsKK0BAIC0xNDYwMSwxOCArMTQ2MzEsMTEg QEAgdm9pZCBwYWNrZXRfaGNpX2lzb2RhdGEoc3RydWN0IHRpbWV2YWwgKnR2LCBzdHJ1Y3QgdWNy ZWQgKmNyZWQsIHVpbnQxNl90IGluZGV4LAorIAorIAlpZiAoIWluKQorIAkJcGFja2V0X2VucXVl dWVfdHgodHYsIGFjbF9oYW5kbGUoaGFuZGxlKSwKKy0JCQkJCWluZGV4X2xpc3RbaW5kZXhdLmZy YW1lLCBoZHItPmRsZW4pOworKwkJCQkJaW5kZXhfbGlzdFtpbmRleF0uZnJhbWUsIGRsZW4pOwor IAorLQlpZiAoc2l6ZSArIHRzX3NpemUgIT0gaGRyLT5kbGVuKSB7CisrCWlmIChzaXplICsgdHNf c2l6ZSAhPSBkbGVuKSB7CisgCQlwcmludF90ZXh0KENPTE9SX0VSUk9SLCAiaW52YWxpZCBwYWNr ZXQgc2l6ZSAoJWQgIT0gJWQpIiwKKy0JCQkJCQlzaXplICsgKGludCl0c19zaXplLCBoZHItPmRs ZW4pOworLQkJcGFja2V0X2hleGR1bXAoZGF0YSwgc2l6ZSk7CistCQlyZXR1cm47CistCX0KKy0K Ky0JaWYgKHNpemUgIT0gc3RhcnQtPnNsZW4gKyA0KSB7CistCQlwcmludF90ZXh0KENPTE9SX0VS Uk9SLCAiaW52YWxpZCBwYWNrZXQgc2xlbiAoJWQrNCAhPSAlZCkiLAorLQkJCQkJCQlzdGFydC0+ c2xlbiwgc2l6ZSk7CisrCQkJCQkJc2l6ZSArIChpbnQpdHNfc2l6ZSwgZGxlbik7CisgCQlwYWNr ZXRfaGV4ZHVtcChkYXRhLCBzaXplKTsKKyAJCXJldHVybjsKKyAJfQorLS0gCisyLjU0LjAKKwor CitGcm9tIDc0ODJhY2VlY2U3MDQ0ZTY4OGYyMGYxMTMyNjNiNTBjMjFkNjlmYjYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/RnI9QzM9QTlkPUMzPUE5cmljPTIwRGFu aXM/PSA8ZnJlZGVyaWMuZGFuaXNAY29sbGFib3JhLmNvbT4KK0RhdGU6IFdlZCwgMTUgSnVsIDIw MjYgMTc6NTE6NDQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxNy8xOV0gcHJvZmlsZXMvYXVkaW86 IGZpeCBVQUYgb24gZXh0ZXJuYWwgbWVkaWEgc2VydmljZQorIHRlYXJkb3duCisKK0tlZXAgbWVk aWFfYXBwIGVuZHBvaW50L3BsYXllciBxdWV1ZXMgaW4gc3luYyB3aXRoIG9iamVjdCBsaWZldGlt ZSB0bworYXZvaWQgc3RhbGUgcG9pbnRlcnMgZHVyaW5nIHByb3h5IHJlbW92YWwuCisKK1doZW4g YWRtaW4gYWxsb3dsaXN0IHJlYXBwbHkgcmVtb3ZlcyBhdWRpbyBzZXJ2aWNlcywgZW5kcG9pbnQv cGxheWVyCitvYmplY3RzIG1heSBiZSBkZXN0cm95ZWQgdGhyb3VnaCBub24tcHJveHkgcGF0aHMg Zmlyc3QuCitMYXRlciBwcm94eV9yZW1vdmVkX2NiIGNhbGxzIHF1ZXVlX3JlbW92ZV9pZigpIGFu ZCBtYXRjaGluZyBieSBwYXRoCitjYW4gZGVyZWZlcmVuY2UgZnJlZWQgZW5kcG9pbnQvcGxheWVy IG1lbW9yeS4KKworRml4IGJ5OgorLSBhZGRpbmcgbWVkaWFfYXBwIGJhY2stcmVmZXJlbmNlcyBp biBtZWRpYV9lbmRwb2ludC9sb2NhbF9wbGF5ZXIKKy0gdW5saW5raW5nIGZyb20gYXBwIHF1ZXVl cyBpbnNpZGUgbWVkaWFfZW5kcG9pbnRfcmVtb3ZlIG9yCisgIGxvY2FsX3BsYXllcl9yZW1vdmUK Ky0gc2V0dGluZyBvd25lcnNoaXAgd2hlbiBhcHAtcmVnaXN0ZXJpbmcgZW5kcG9pbnQvcGxheWVy IG9iamVjdHMKKworVGhpcyBwcmV2ZW50cyBoZWFwLXVzZS1hZnRlci1mcmVlIGluIG1hdGNoX2Vu ZHBvaW50X2J5X3BhdGggb3IKK21hdGNoX3BsYXllcl9ieV9wYXRoIGR1cmluZyBzZXJ2aWNlIGRp c2Nvbm5lY3QuCisKK0Fzc2lzdGVkLWJ5OiBHUFQ6R1BULTUuMy1Db2RleAorLS0tCisgcHJvZmls ZXMvYXVkaW8vbWVkaWEuYyB8IDE2ICsrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwg MTYgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvcHJvZmlsZXMvYXVkaW8vbWVkaWEuYyBi L3Byb2ZpbGVzL2F1ZGlvL21lZGlhLmMKK2luZGV4IDVkOWVhMmNiY2JjZS4uOTVmOTU4MGIwOGZm IDEwMDY0NAorLS0tIGEvcHJvZmlsZXMvYXVkaW8vbWVkaWEuYworKysrIGIvcHJvZmlsZXMvYXVk aW8vbWVkaWEuYworQEAgLTEzNiwxMiArMTM2LDE0IEBAIHN0cnVjdCBtZWRpYV9lbmRwb2ludCB7 CisgCWd1aW50CQkJd2F0Y2g7CisgCUdTTGlzdAkJCSpyZXF1ZXN0czsKKyAJc3RydWN0IG1lZGlh X2FkYXB0ZXIJKmFkYXB0ZXI7CisrCXN0cnVjdCBtZWRpYV9hcHAJKmFwcDsKKyAJR1NMaXN0CQkJ KnRyYW5zcG9ydHM7CisgCXN0cnVjdCBlbmRwb2ludF9mZWF0dXJlcwlmZWF0dXJlczsKKyB9Owor IAorIHN0cnVjdCBsb2NhbF9wbGF5ZXIgeworIAlzdHJ1Y3QgbWVkaWFfYWRhcHRlcgkqYWRhcHRl cjsKKysJc3RydWN0IG1lZGlhX2FwcAkqYXBwOworIAljaGFyCQkJKnNlbmRlcjsJLyogUGxheWVy IERCdXMgYnVzIGlkICovCisgCWNoYXIJCQkqcGF0aDsJCS8qIFBsYXllciBvYmplY3QgcGF0aCAq LworIAlHSGFzaFRhYmxlCQkqc2V0dGluZ3M7CS8qIFBsYXllciBzZXR0aW5ncyAqLworQEAgLTMw NSw2ICszMDcsMTEgQEAgc3RhdGljIHZvaWQgbWVkaWFfZW5kcG9pbnRfcmVtb3ZlKHZvaWQgKmRh dGEpCisgCX0KKyAjZW5kaWYKKyAKKysJaWYgKGVuZHBvaW50LT5hcHApIHsKKysJCXF1ZXVlX3Jl bW92ZShlbmRwb2ludC0+YXBwLT5lbmRwb2ludHMsIGVuZHBvaW50KTsKKysJCWVuZHBvaW50LT5h cHAgPSBOVUxMOworKwl9CisrCisgCWluZm8oIkVuZHBvaW50IHVucmVnaXN0ZXJlZDogc2VuZGVy PSVzIHBhdGg9JXMiLCBlbmRwb2ludC0+c2VuZGVyLAorIAkJCWVuZHBvaW50LT5wYXRoKTsKKyAK K0BAIC0yMDc2LDYgKzIwODMsMTEgQEAgc3RhdGljIHZvaWQgbG9jYWxfcGxheWVyX3JlbW92ZSh2 b2lkICpkYXRhKQorIHsKKyAJc3RydWN0IGxvY2FsX3BsYXllciAqbXAgPSBkYXRhOworIAorKwlp ZiAobXAtPmFwcCkgeworKwkJcXVldWVfcmVtb3ZlKG1wLT5hcHAtPnBsYXllcnMsIG1wKTsKKysJ CW1wLT5hcHAgPSBOVUxMOworKwl9CisrCisgCWluZm8oIlBsYXllciB1bnJlZ2lzdGVyZWQ6IHNl bmRlcj0lcyBwYXRoPSVzIiwgbXAtPnNlbmRlciwgbXAtPnBhdGgpOworIAorIAlsb2NhbF9wbGF5 ZXJfZGVzdHJveShtcCk7CitAQCAtMzE2OCw2ICszMTgwLDggQEAgc3RhdGljIHZvaWQgYXBwX3Jl Z2lzdGVyX2VuZHBvaW50KHZvaWQgKmRhdGEsIHZvaWQgKnVzZXJfZGF0YSkKKyAJCXJldHVybjsK KyAJfQorIAorKwllbmRwb2ludC0+YXBwID0gYXBwOworKworIAlxdWV1ZV9wdXNoX3RhaWwoYXBw LT5lbmRwb2ludHMsIGVuZHBvaW50KTsKKyAKKyAJcmV0dXJuOworQEAgLTMxOTYsNiArMzIxMCw4 IEBAIHN0YXRpYyB2b2lkIGFwcF9yZWdpc3Rlcl9wbGF5ZXIodm9pZCAqZGF0YSwgdm9pZCAqdXNl cl9kYXRhKQorIAlpZiAoIXBsYXllcikKKyAJCXJldHVybjsKKyAKKysJcGxheWVyLT5hcHAgPSBh cHA7CisrCisgCWlmIChnX2RidXNfcHJveHlfZ2V0X3Byb3BlcnR5KHByb3h5LCAiUGxheWJhY2tT dGF0dXMiLCAmaXRlcikpIHsKKyAJCWlmICghc2V0X3N0YXR1cyhwbGF5ZXIsICZpdGVyKSkKKyAJ CQlnb3RvIGZhaWw7CistLSAKKzIuNTQuMAorCisKK0Zyb20gYjBhYmUyM2Y1OGYxZWNjNDRkOWQw YjZiMzI4YmU3MmQyZDIxMTNiOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5hZ2Eg QmhhdmFuaSBBa2VsbGEgPG5hZ2EuYWtlbGxhQG9zcy5xdWFsY29tbS5jb20+CitEYXRlOiBXZWQs IDE1IEp1bCAyMDI2IDE0OjA5OjU2ICswNTMwCitTdWJqZWN0OiBbUEFUQ0ggMTgvMTldIGRvYy9v cmcuYmx1ZXouQ2hhbm5lbFNvdW5kaW5nMTpBZGQgVXNlZCBieSByZWZlcmVuY2UKKyBhbmQgRXhh bXBsZXMKKworQWRkIDpVc2VkIGJ5OiBmaWVsZCBsaW5raW5nIHRvIGJsdWV0b290aGN0bCBjcyBz dWJtZW51IGFuZAorRXhhbXBsZXMgc2VjdGlvbiBzaG93aW5nIGNvcnJlc3BvbmRpbmcgYmx1ZXRv b3RoY3RsIGNzIGNvbW1hbmRzCitmb3IgRC1CdXMgbWV0aG9kcworLS0tCisgTWFrZWZpbGUuYW0g ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCisgZG9jL29yZy5ibHVlei5DaGFubmVsU291 bmRpbmcxLnJzdCB8IDUzNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIDIgZmlsZXMg Y2hhbmdlZCwgNTM2IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL29yZy5i bHVlei5DaGFubmVsU291bmRpbmcxLnJzdAorCitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9N YWtlZmlsZS5hbQoraW5kZXggNzZjNGFiNWQ0ZjRlLi4yM2I5NmMyZTMwM2YgMTAwNjQ0CistLS0g YS9NYWtlZmlsZS5hbQorKysrIGIvTWFrZWZpbGUuYW0KK0BAIC00MDUsNiArNDA1LDcgQEAgbWFu X01BTlMgKz0gZG9jL29yZy5ibHVlei5UZWxlcGhvbnkuNSBkb2Mvb3JnLmJsdWV6LkNhbGwuNQor IG1hbl9NQU5TICs9IGRvYy9vcmcuYmx1ZXouVGhlcm1vbWV0ZXJNYW5hZ2VyLjUgXAorIAkJZG9j L29yZy5ibHVlei5UaGVybW9tZXRlci41IFwKKyAJCWRvYy9vcmcuYmx1ZXouVGhlcm1vbWV0ZXJX YXRjaGVyLjUKKyttYW5fTUFOUyArPSBkb2Mvb3JnLmJsdWV6LkNoYW5uZWxTb3VuZGluZzEuNQor IGVuZGlmCisgbWFudWFsX3BhZ2VzICs9IGRvYy9ibHVldG9vdGhkLjgKKyBtYW51YWxfcGFnZXMg Kz0gZG9jL2hjaS43IGRvYy9tZ210LjcgZG9jL2wyY2FwLjcgZG9jL3JmY29tbS43IGRvYy9zY28u NyBcCitAQCAtNDQ1LDYgKzQ0Niw3IEBAIG1hbnVhbF9wYWdlcyArPSBkb2Mvb3JnLmJsdWV6LlRl bGVwaG9ueS41IGRvYy9vcmcuYmx1ZXouQ2FsbC41CisgbWFudWFsX3BhZ2VzICs9IGRvYy9vcmcu Ymx1ZXouVGhlcm1vbWV0ZXJNYW5hZ2VyLjUgXAorIAkJZG9jL29yZy5ibHVlei5UaGVybW9tZXRl ci41IFwKKyAJCWRvYy9vcmcuYmx1ZXouVGhlcm1vbWV0ZXJXYXRjaGVyLjUKKyttYW51YWxfcGFn ZXMgKz0gZG9jL29yZy5ibHVlei5DaGFubmVsU291bmRpbmcxLjUKKyAKKyBFWFRSQV9ESVNUICs9 IHNyYy9nZW5idWlsdGluIHNyYy9ibHVldG9vdGguY29uZiBcCisgCQkJc3JjL21haW4uY29uZiBw cm9maWxlcy9uZXR3b3JrL25ldHdvcmsuY29uZiBcCitkaWZmIC0tZ2l0IGEvZG9jL29yZy5ibHVl ei5DaGFubmVsU291bmRpbmcxLnJzdCBiL2RvYy9vcmcuYmx1ZXouQ2hhbm5lbFNvdW5kaW5nMS5y c3QKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLmMwNmUxZDcyODVl MAorLS0tIC9kZXYvbnVsbAorKysrIGIvZG9jL29yZy5ibHVlei5DaGFubmVsU291bmRpbmcxLnJz dAorQEAgLTAsMCArMSw1MzQgQEAKKys9PT09PT09PT09PT09PT09PT09PT09PT09PQorK29yZy5i bHVlei5DaGFubmVsU291bmRpbmcxCisrPT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQmx1ZVogRC1C dXMgQ2hhbm5lbCBTb3VuZGluZyBBUEkgZG9jdW1lbnRhdGlvbgorKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKys6VmVyc2lvbjogQmx1ZVoKKys6RGF0 ZTogSnVuZSAyMDI2CisrOk1hbnVhbCBzZWN0aW9uOiA1CisrOk1hbnVhbCBncm91cDogTGludXgg U3lzdGVtIEFkbWluaXN0cmF0aW9uCisrCisrSW50ZXJmYWNlCisrPT09PT09PT09CisrCisrOlNl cnZpY2U6CW9yZy5ibHVlegorKzpJbnRlcmZhY2U6CW9yZy5ibHVlei5DaGFubmVsU291bmRpbmcx CisrOk9iamVjdCBwYXRoOglbdmFyaWFibGUgcHJlZml4XS97aGNpMCxoY2kxLC4uLn0vZGV2X1hY X1hYX1hYX1hYX1hYX1hYCisrOlVzZWQgYnk6CSoqYmx1ZXRvb3RoY3RsKDEpKiosICoqYmx1ZXRv b3RoY3RsLWNzKDEpKioKKysKKytNZXRob2RzCisrLS0tLS0tLQorKworK3ZvaWQgU3RhcnRNZWFz dXJlbWVudChkaWN0IHBhcmFtcykKKytgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg CisrCisrU3RhcnRzIGEgQ2hhbm5lbCBTb3VuZGluZyBkaXN0YW5jZSBtZWFzdXJlbWVudCBwcm9j ZWR1cmUgb24gdGhlIGNvbm5lY3RlZAorK2RldmljZS4gQWxsIGNvbmZpZ3VyYXRpb24gaXMgc3Vw cGxpZWQgaW4gYSBzaW5nbGUgYGBhe3N2fWBgIGRpY3Rpb25hcnkuCisrQW55IGtleSB0aGF0IGlz IG9taXR0ZWQgcmV0YWlucyBpdHMgY3VycmVudCB2YWx1ZSBpbiB0aGUgZGFlbW9uLgorKworK1Ro ZSBkZXZpY2UgdG8gbWVhc3VyZSBpcyBpZGVudGlmaWVkIGJ5IHRoZSBELUJ1cyBvYmplY3QgcGF0 aCBvbiB3aGljaAorK3RoaXMgbWV0aG9kIGlzIGNhbGxlZAorKyhgYFt2YXJpYWJsZSBwcmVmaXhd L3toY2kwLGhjaTEsLi4ufS9kZXZfWFhfWFhfWFhfWFhfWFhfWFhgYCkuCisrT25seSBvbmUgbWVh c3VyZW1lbnQgcGVyIGRldmljZSBvYmplY3QgbWF5IGJlIGFjdGl2ZSBhdCBhIHRpbWUuIENhbGxp bmcKKysqKlN0YXJ0TWVhc3VyZW1lbnQqKiB3aGlsZSBhIHNlc3Npb24gaXMgYWxyZWFkeSBhY3Rp dmUgcmV0dXJucworK2Bgb3JnLmJsdWV6LkVycm9yLkluUHJvZ3Jlc3NgYC4KKysKKytXaGVuIGBg cm9sZWBgIGlzIFJlZmxlY3RvciAoYGAweDAyYGApLCB0aGlzIG1ldGhvZCBkb2VzIG5vdCBzdGFy dCBhIENTCisrZGlzdGFuY2UgbWVhc3VyZW1lbnQ6IGEgUmVmbGVjdG9yIG5ldmVyIGluaXRpYXRl cyBhIHByb2NlZHVyZSBsb2NhbGx5LAorK3NvIGl0IGNhbm5vdCBzdGFydCBvbmUgdmlhIHRoaXMg Y2FsbC4gSW5zdGVhZCwgYWxsIGdpdmVuIGNvbmZpZ3VyYXRpb24KKytpcyBhcHBsaWVkIGFuZCBz dG9yZWQgc28gdGhlIGNvbnRyb2xsZXIgaXMgcmVhZHkgdG8gcmVzcG9uZCBvbmNlIGEKKytyZW1v dGUgSW5pdGlhdG9yIGJlZ2lucyBhIHByb2NlZHVyZSwgYW5kIHRoZSBtZXRob2QgcmV0dXJucyBz dWNjZXNzCisrd2l0aG91dCBhcm1pbmcgYSBsb2NhbCBtZWFzdXJlbWVudCBzZXNzaW9uLiBUaGUg YGBBY3RpdmVgYCBwcm9wZXJ0eQorK29ubHkgdHJhbnNpdGlvbnMgdG8gYGB0cnVlYGAgd2hlbiBh IHJlbW90ZS1pbml0aWF0ZWQgcHJvY2VkdXJlCisrYWN0dWFsbHkgc3RhcnRzLCB3aGljaCBtYXkg aGFwcGVuIHdlbGwgYWZ0ZXIgdGhpcyBtZXRob2QgcmV0dXJucyAob3IKKytub3QgYXQgYWxsLCBp ZiB0aGUgcmVtb3RlIG5ldmVyIGluaXRpYXRlcyBvbmUpLiBDbGllbnRzIHRoYXQgd2F0Y2gKKytg YFByb3BlcnRpZXNDaGFuZ2VkYGAgZm9yIGBgQWN0aXZlYGAgKGFzICoqYmx1ZXRvb3RoY3RsLWNz KDEpKiogZG9lcykKKythcmUgbm90aWZpZWQgb2YgYm90aCB0aGUgcmVtb3RlLWluaXRpYXRlZCBz dGFydCBhbmQgaXRzIGV2ZW50dWFsIHN0b3AuCisrCisrRm9yIEluaXRpYXRvciByb2xlIChvciBC b3RoKSwgYGBkdXJhdGlvbl9zZWNzYGAgYW5kIHRoZSBkZXZpY2Ugb2JqZWN0CisrcGF0aCBhcmUg dGhlIHBhcmFtZXRlcnMgdGhhdCBtYXR0ZXIgdG8gc3RhcnQgYSBtZWFzdXJlbWVudDsgZXZlcnkK KytvdGhlciBrZXkgYmVsb3cgaXMgb3B0aW9uYWwgY29uZmlndXJhdGlvbiB3aXRoIGEgdXNhYmxl IGRlZmF1bHQuIEZvcgorK1JlZmxlY3RvciByb2xlLCBvbmx5IGBgcm9sZWBgLCBgYHN5bmNfYW50 X3NlbGBgIGFuZCBgYG1heF90eF9wb3dlcmBgCisrYXJlIHJlcXVpcmVkIG9yIGhhdmUgYW55IGVm ZmVjdCDigJQgdGhlIHJlbWFpbmluZyBrZXlzIGFyZSBhY2NlcHRlZCBidXQKKytvdGhlcndpc2Ug dW51c2VkLCBzaW5jZSBubyBsb2NhbCBwcm9jZWR1cmUgaXMgYXJtZWQuCisrCisrU3VwcG9ydGVk IGRpY3Rpb25hcnkga2V5czoKKysKKys6dWludDMyIGR1cmF0aW9uX3NlY3MgKERlZmF1bHQ6IDAp OgorKworKwlEdXJhdGlvbiBpbiBzZWNvbmRzIGJlZm9yZSB0aGUgbWVhc3VyZW1lbnQgaXMgc3Rv cHBlZAorKwlhdXRvbWF0aWNhbGx5LiBBIHZhbHVlIG9mIDAgZGlzYWJsZXMgdGhlIGF1dG9tYXRp YyB0aW1lb3V0LgorKworKzpieXRlIHJvbGUgKERlZmF1bHQ6IDB4MDMpOgorKworKwlDUyByb2xl IHRvIHVzZSBmb3IgdGhlIG1lYXN1cmVtZW50LgorKworKwlQb3NzaWJsZSB2YWx1ZXM6CisrCisr CToweDAxOiBJbml0aWF0b3IKKysJOjB4MDI6IFJlZmxlY3RvcgorKwk6MHgwMzogQm90aCAoSW5p dGlhdG9yIGFuZCBSZWZsZWN0b3IpCisrCisrOmJ5dGUgc3luY19hbnRfc2VsIChEZWZhdWx0OiAw eEZGKToKKysKKysJQ1Mgc3luYyBhbnRlbm5hIHNlbGVjdGlvbi4gVmFsdWVzIDB4RkUgYW5kIDB4 RkYgYXJlIHJlc2VydmVkCisrCWJ5IHRoZSBCbHVldG9vdGggc3BlY2lmaWNhdGlvbi4KKysKKys6 Ynl0ZSBtYXhfdHhfcG93ZXIgKERlZmF1bHQ6IDB4MTQpOgorKworKwlNYXhpbXVtIFRYIHBvd2Vy IGluIGRCbSwgdHJlYXRlZCBhcyBhIHNpZ25lZCB2YWx1ZS4gVmFsaWQKKysJcmFuZ2UgaXMgLTEy NyB0byArMjAgZEJtLgorKworKzpieXRlIGNvbmZpZ19pZDoKKysKKysJQ1MgY29uZmlndXJhdGlv biBpZGVudGlmaWVyLgorKworKzpieXRlIG1haW5fbW9kZV90eXBlOgorKworKwlNYWluIENTIG1v ZGUgdXNlZCBpbiB0aGUgcHJvY2VkdXJlLgorKworKzpieXRlIHN1Yl9tb2RlX3R5cGU6CisrCisr CVN1Yi1tb2RlIHdpdGhpbiB0aGUgbWFpbiBtb2RlLiBTZXQgdG8gMHhGRiB3aGVuIHVudXNlZC4K KysKKys6Ynl0ZSBtYWluX21vZGVfbWluX3N0ZXBzOgorKworKwlNaW5pbXVtIG51bWJlciBvZiBD UyBtYWluIG1vZGUgc3RlcHMgcGVyIENTIHN1YmV2ZW50LgorKworKzpieXRlIG1haW5fbW9kZV9t YXhfc3RlcHM6CisrCisrCU1heGltdW0gbnVtYmVyIG9mIENTIG1haW4gbW9kZSBzdGVwcyBwZXIg Q1Mgc3ViZXZlbnQuCisrCisrOmJ5dGUgbWFpbl9tb2RlX3JlcGV0aXRpb246CisrCisrCU51bWJl ciBvZiB0aW1lcyB0aGUgbWFpbiBtb2RlIHN0ZXBzIGFyZSByZXBlYXRlZCBpbiBhCisrCXN1YmV2 ZW50LgorKworKzpieXRlIG1vZGUwX3N0ZXBzOgorKworKwlOdW1iZXIgb2YgQ1MgTW9kZSAwIHN0 ZXBzIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBzdWJldmVudC4KKysKKys6Ynl0ZSBydHRfdHlw ZXM6CisrCisrCVJvdW5kIFRyaXAgVGltZSBtZWFzdXJlbWVudCB0eXBlcyBmb3IgdGhlIGNvbmZp Z3VyYXRpb24uCisrCisrOmJ5dGUgc3luY19waHk6CisrCisrCVBIWSB1c2VkIGZvciBDUyBzeW5j IHBhY2tldHMuCisrCisrCVBvc3NpYmxlIHZhbHVlczoKKysKKysJOjB4MDE6IExFIDFNIFBIWQor Kwk6MHgwMjogTEUgMk0gUEhZCisrCisrOmFycmF5e2J5dGV9IGNoYW5uZWxfbWFwOgorKworKwkx MC1ieXRlIGNoYW5uZWwgbWFwIGJpdG1hcC4gTXVzdCBiZSBleGFjdGx5IDEwIGJ5dGVzLgorKwor KzpieXRlIGNoYW5uZWxfbWFwX3JlcGV0aXRpb246CisrCisrCU51bWJlciBvZiBjb25zZWN1dGl2 ZSByZXBldGl0aW9ucyBvZiB0aGUgY2hhbm5lbCBtYXAuCisrCisrOmJ5dGUgY2hhbm5lbF9zZWxl Y3Rpb25fdHlwZToKKysKKysJQWxnb3JpdGhtIHVzZWQgZm9yIENTIGNoYW5uZWwgc2VsZWN0aW9u LgorKworKzpieXRlIGNoYW5uZWxfc2hhcGU6CisrCisrCVNoYXBlIHVzZWQgaW4gdGhlIGNoYW5u ZWwgc2VsZWN0aW9uIGFsZ29yaXRobS4KKysKKys6Ynl0ZSBjaGFubmVsX2p1bXA6CisrCisrCUNo YW5uZWwganVtcCBzaXplIHVzZWQgaW4gdGhlIGNoYW5uZWwgc2VsZWN0aW9uIGFsZ29yaXRobS4K KysKKys6Ynl0ZSBjb21wYW5pb25fc2lnbmFsX2VuYWJsZToKKysKKysJU2V0IHRvIDEgdG8gdHJh bnNtaXQgYSBjb21wYW5pb24gc2lnbmFsIGFsb25nc2lkZSB0aGUgQ1MKKysJdG9uZSwgMCB0byBk aXNhYmxlLgorKworKzp1aW50MTYgbWF4X3Byb2NlZHVyZV9kdXJhdGlvbjoKKysKKysJTWF4aW11 bSBkdXJhdGlvbiBvZiBhIHNpbmdsZSBDUyBtZWFzdXJlbWVudCBwcm9jZWR1cmUuCisrCisrOnVp bnQxNiBtaW5fcGVyaW9kX2JldHdlZW5fcHJvY2VkdXJlczoKKysKKysJTWluaW11bSB0aW1lIGJl dHdlZW4gY29uc2VjdXRpdmUgQ1MgbWVhc3VyZW1lbnQgcHJvY2VkdXJlcy4KKysKKys6dWludDE2 IG1heF9wZXJpb2RfYmV0d2Vlbl9wcm9jZWR1cmVzOgorKworKwlNYXhpbXVtIHRpbWUgYmV0d2Vl biBjb25zZWN1dGl2ZSBDUyBtZWFzdXJlbWVudCBwcm9jZWR1cmVzLgorKworKzp1aW50MTYgbWF4 X3Byb2NlZHVyZV9jb3VudDoKKysKKysJTWF4aW11bSBudW1iZXIgb2YgQ1MgbWVhc3VyZW1lbnQg cHJvY2VkdXJlcyB0byBydW4uCisrCUEgdmFsdWUgb2YgMCBtZWFucyBubyBsaW1pdC4KKysKKys6 YXJyYXl7Ynl0ZX0gbWluX3N1Yl9ldmVudF9sZW46CisrCisrCU1pbmltdW0gQ1Mgc3ViZXZlbnQg bGVuZ3RoIGFzIGEgMy1ieXRlIGxpdHRsZS1lbmRpYW4gdmFsdWUuCisrCU11c3QgYmUgZXhhY3Rs eSAzIGJ5dGVzLgorKworKzphcnJheXtieXRlfSBtYXhfc3ViX2V2ZW50X2xlbjoKKysKKysJTWF4 aW11bSBDUyBzdWJldmVudCBsZW5ndGggYXMgYSAzLWJ5dGUgbGl0dGxlLWVuZGlhbiB2YWx1ZS4K KysJTXVzdCBiZSBleGFjdGx5IDMgYnl0ZXMuCisrCisrOmJ5dGUgdG9uZV9hbnRlbm5hX2NvbmZp Z19zZWxlY3Rpb246CisrCisrCUFudGVubmEgY29uZmlndXJhdGlvbiB1c2VkIGZvciBDUyB0b25l IGV4Y2hhbmdlcy4KKysKKys6Ynl0ZSBwaHk6CisrCisrCVBIWSB1c2VkIGR1cmluZyBDUyBwcm9j ZWR1cmVzLgorKworKwlQb3NzaWJsZSB2YWx1ZXM6CisrCisrCToweDAxOiBMRSAxTSBQSFkKKysJ OjB4MDI6IExFIDJNIFBIWQorKworKzpieXRlIHR4X3Bvd2VyX2RlbHRhOgorKworKwlEaWZmZXJl bmNlIGJldHdlZW4gcmVtb3RlIGFuZCBsb2NhbCBUWCBwb3dlciBkdXJpbmcgQ1MKKysJcHJvY2Vk dXJlcy4gMHg4MCBpbmRpY2F0ZXMgbm90IGFwcGxpY2FibGUuCisrCisrOmJ5dGUgcHJlZmVycmVk X3BlZXJfYW50ZW5uYToKKysKKysJUHJlZmVycmVkIGFudGVubmEgdG8gYmUgdXNlZCBieSB0aGUg cGVlciBkZXZpY2UuCisrCisrOmJ5dGUgc25yX2NvbnRyb2xfaW5pdGlhdG9yOgorKworKwlTTlIg Y29udHJvbCBzZXR0aW5nIGZvciB0aGUgaW5pdGlhdG9yIHJvbGUuCisrCTB4RkYgaW5kaWNhdGVz IG5vIHByZWZlcmVuY2UuCisrCisrOmJ5dGUgc25yX2NvbnRyb2xfcmVmbGVjdG9yOgorKworKwlT TlIgY29udHJvbCBzZXR0aW5nIGZvciB0aGUgcmVmbGVjdG9yIHJvbGUuCisrCTB4RkYgaW5kaWNh dGVzIG5vIHByZWZlcmVuY2UuCisrCisrUG9zc2libGUgZXJyb3JzOgorKworKzpvcmcuYmx1ZXou RXJyb3IuSW5Qcm9ncmVzczoKKys6b3JnLmJsdWV6LkVycm9yLkludmFsaWRBcmdzOgorKzpvcmcu ZnJlZWRlc2t0b3AuREJ1cy5FcnJvci5GYWlsZWQ6CisrCisrRXhhbXBsZXM6CisrCisrOmJsdWV0 b290aGN0bCBzZXQgcm9sZSB0aGVuIHN0YXJ0OgorKwl8IFtjc10gPiByb2xlIDB4MDEKKysJfCBb Y3NdID4gbWFpbl9tb2RlX3R5cGUgMgorKwl8IFtjc10gPiBzdGFydCBBQTpCQjpDQzpERDpFRTpG RgorKzpibHVldG9vdGhjdGwgc3RhcnQgd2l0aCBkZWZhdWx0czoKKysJfCBbY3NdID4gc3RhcnQg W2Rldl9hZGRyXSBbZHVyYXRpb25fc2Vjc10KKys6Ymx1ZXRvb3RoY3RsIGNvbmZpZ3VyZSBhcyBS ZWZsZWN0b3IgKGFwcGxpZXMgc2V0dGluZ3MsIGRvZXMgbm90IHN0YXJ0IGEgbWVhc3VyZW1lbnQp OgorKwl8IFtjc10gPiByb2xlIDB4MDIKKysJfCBbY3NdID4gc3RhcnQKKysKKyt2b2lkIFN0b3BN ZWFzdXJlbWVudCh2b2lkKQorK2BgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgCisrCisrU3RvcHMg dGhlIGFjdGl2ZSBDaGFubmVsIFNvdW5kaW5nIGRpc3RhbmNlIG1lYXN1cmVtZW50IG9uIHRoaXMg ZGV2aWNlLgorK1RoZSBkZXZpY2UgaXMgaWRlbnRpZmllZCBieSB0aGUgRC1CdXMgb2JqZWN0IHBh dGggb24gd2hpY2ggdGhpcyBtZXRob2QKKytpcyBjYWxsZWQg4oCUIG5vIHNlc3Npb24gaWRlbnRp ZmllciBpcyByZXF1aXJlZC4KKysKKytSYWlzZXMgYGBvcmcuYmx1ZXouRXJyb3IuTm90Q29ubmVj dGVkYGAgaWYgbm8gbWVhc3VyZW1lbnQgaXMgYWN0aXZlLgorKworK1Bvc3NpYmxlIGVycm9yczoK KysKKys6b3JnLmJsdWV6LkVycm9yLk5vdENvbm5lY3RlZDoKKys6b3JnLmZyZWVkZXNrdG9wLkRC dXMuRXJyb3IuRmFpbGVkOgorKworK0luICoqYmx1ZXRvb3RoY3RsKDEpKiosIHRoZSBkZXZpY2Ug YWRkcmVzcyBhcmd1bWVudCBtYXkgYmUgb21pdHRlZCBvbmx5Cisrd2hlbiBhIHNpbmdsZSBtZWFz dXJlbWVudCBpcyBhY3RpdmU7IGl0IGlzIHJlcXVpcmVkIHdoZW4gbXVsdGlwbGUKKyttZWFzdXJl bWVudHMgYXJlIGFjdGl2ZS4KKysKKytFeGFtcGxlczoKKysKKys6Ymx1ZXRvb3RoY3RsIHN0b3Ag dGhlIG9ubHkgYWN0aXZlIG1lYXN1cmVtZW50OgorKwl8IFtjc10gPiBzdG9wCisrOmJsdWV0b290 aGN0bCBzdG9wIGEgc3BlY2lmaWMgZGV2aWNlIHdoZW4gbXVsdGlwbGUgYXJlIGFjdGl2ZToKKysJ fCBbY3NdID4gc3RvcCBBQTpCQjpDQzpERDpFRTpGRgorKworK1NpZ25hbHMKKystLS0tLS0tCisr Cisrdm9pZCBQcm9jZWR1cmVEYXRhKGRpY3QgZGF0YSkKKytgYGBgYGBgYGBgYGBgYGBgYGBgYGBg YGBgYGBgYGAKKysKKytFbWl0dGVkIHdoZW4gYSBDaGFubmVsIFNvdW5kaW5nIG1lYXN1cmVtZW50 IHByb2NlZHVyZSBjb21wbGV0ZXMgb24gdGhpcworK2RldmljZSwgY2FycnlpbmcgdGhlIHJhdyBD UyBwcm9jZWR1cmUgcmVzdWx0cyBhcyByZXBvcnRlZCBieSB0aGUKKytjb250cm9sbGVyLiBDb25z dW1lcnMgc3VjaCBhcyBhbiBleHRlcm5hbCByYW5naW5nIGVzdGltYXRpb24gZGFlbW9uCisrc3Vi c2NyaWJlIHRvIHRoaXMgc2lnbmFsIHRvIGNvbXB1dGUgZGlzdGFuY2UgZXN0aW1hdGVzLgorKwor KzpkaWN0IGRhdGE6CisrCisrCTppbnQzMiBwcm9jZWR1cmVDb3VudGVyOgorKworKwkJUHJvY2Vk dXJlIGNvdW50ZXIgdmFsdWUgZnJvbSB0aGUgY29udHJvbGxlci4KKysKKysJOmludDMyIHByb2Nl ZHVyZVNlcXVlbmNlOgorKworKwkJU2VxdWVuY2UgbnVtYmVyIG9mIHRoaXMgcHJvY2VkdXJlLgor KworKwk6Ynl0ZSBpbml0aWF0b3JTZWxlY3RlZFR4UG93ZXI6CisrCisrCQlUWCBwb3dlciBzZWxl Y3RlZCBieSB0aGUgSW5pdGlhdG9yLCB0cmVhdGVkIGFzIGEgc2lnbmVkCisrCQl2YWx1ZS4KKysK KysJOmJ5dGUgcmVmbGVjdG9yU2VsZWN0ZWRUeFBvd2VyOgorKworKwkJVFggcG93ZXIgc2VsZWN0 ZWQgYnkgdGhlIFJlZmxlY3RvciwgdHJlYXRlZCBhcyBhIHNpZ25lZAorKwkJdmFsdWUuCisrCisr CTp1aW50MzIgaW5pdGlhdG9yU3ViZXZlbnRDb3VudDoKKysKKysJCU51bWJlciBvZiBzdWJldmVu dCByZXN1bHRzIHJlcG9ydGVkIGJ5IHRoZSBJbml0aWF0b3IuCisrCisrCTphcnJheXtkaWN0fSBp bml0aWF0b3JTdWJldmVudFJlc3VsdHM6CisrCisrCQlQcmVzZW50IG9ubHkgd2hlbiBgYGluaXRp YXRvclN1YmV2ZW50Q291bnRgYCBpcyBncmVhdGVyCisrCQl0aGFuIDAuIE9uZSBlbnRyeSBwZXIg SW5pdGlhdG9yIHN1YmV2ZW50LCBlYWNoIHdpdGggdGhlCisrCQlmaWVsZHMgZGVzY3JpYmVkIGlu IGBTdWJldmVudCBSZXN1bHRgXyBiZWxvdy4KKysKKysJOmJ5dGUgaW5pdGlhdG9yUHJvY2VkdXJl QWJvcnRSZWFzb246CisrCisrCQlSZWFzb24gdGhlIEluaXRpYXRvcidzIHByb2NlZHVyZSB3YXMg YWJvcnRlZCwgMCBpZiBub3QKKysJCWFib3J0ZWQuCisrCisrCTp1aW50MzIgcmVmbGVjdG9yU3Vi ZXZlbnRDb3VudDoKKysKKysJCU51bWJlciBvZiBzdWJldmVudCByZXN1bHRzIHJlcG9ydGVkIGJ5 IHRoZSBSZWZsZWN0b3IuCisrCisrCTphcnJheXtkaWN0fSByZWZsZWN0b3JTdWJldmVudFJlc3Vs dHM6CisrCisrCQlQcmVzZW50IG9ubHkgd2hlbiBgYHJlZmxlY3RvclN1YmV2ZW50Q291bnRgYCBp cyBncmVhdGVyCisrCQl0aGFuIDAuIE9uZSBlbnRyeSBwZXIgUmVmbGVjdG9yIHN1YmV2ZW50LCBl YWNoIHdpdGggdGhlCisrCQlmaWVsZHMgZGVzY3JpYmVkIGluIGBTdWJldmVudCBSZXN1bHRgXyBi ZWxvdy4KKysKKysJOmJ5dGUgcmVmbGVjdG9yUHJvY2VkdXJlQWJvcnRSZWFzb246CisrCisrCQlS ZWFzb24gdGhlIFJlZmxlY3RvcidzIHByb2NlZHVyZSB3YXMgYWJvcnRlZCwgMCBpZiBub3QKKysJ CWFib3J0ZWQuCisrCisrCTpkaWN0IHByb2NlZHVyZUVuYWJsZUNvbmZpZzoKKysKKysJCTpieXRl IHRvbmVBbnRlbm5hQ29uZmlnU2VsZWN0aW9uOgorKworKwkJCUFudGVubmEgY29uZmlndXJhdGlv biB1c2VkIGZvciBDUyB0b25lIGV4Y2hhbmdlcy4KKysKKysJCTp1aW50MzIgc3ViZXZlbnRMZW5V czoKKysKKysJCQlTdWJldmVudCBsZW5ndGggaW4gbWljcm9zZWNvbmRzLgorKworKwkJOmJ5dGUg c3ViZXZlbnRzUGVyRXZlbnQ6CisrCisrCQkJTnVtYmVyIG9mIHN1YmV2ZW50cyBwZXIgZXZlbnQu CisrCisrCQk6dWludDMyIHN1YmV2ZW50SW50ZXJ2YWw6CisrCisrCQkJSW50ZXJ2YWwgYmV0d2Vl biBzdWJldmVudHMuCisrCisrCQk6dWludDMyIGV2ZW50SW50ZXJ2YWw6CisrCisrCQkJSW50ZXJ2 YWwgYmV0d2VlbiBldmVudHMuCisrCisrCQk6dWludDMyIHByb2NlZHVyZUludGVydmFsOgorKwor KwkJCUludGVydmFsIGJldHdlZW4gcHJvY2VkdXJlcy4KKysKKysJCTp1aW50MzIgcHJvY2VkdXJl Q291bnQ6CisrCisrCQkJTnVtYmVyIG9mIHByb2NlZHVyZXMgY29uZmlndXJlZC4KKysKKysJCTp1 aW50MzIgbWF4UHJvY2VkdXJlTGVuOgorKworKwkJCU1heGltdW0gcHJvY2VkdXJlIGxlbmd0aC4K KysKKysJOmRpY3QgY3NDb25maWdQYXJhbToKKysKKysJCTpieXRlIG1vZGVUeXBlOgorKworKwkJ CU1haW4gQ1MgbW9kZSB1c2VkIGluIHRoZSBwcm9jZWR1cmUuCisrCisrCQk6Ynl0ZSBzdWJNb2Rl VHlwZToKKysKKysJCQlTdWItbW9kZSB3aXRoaW4gdGhlIG1haW4gbW9kZS4KKysKKysJCTpieXRl IHJ0dFR5cGU6CisrCisrCQkJUm91bmQgVHJpcCBUaW1lIG1lYXN1cmVtZW50IHR5cGUuCisrCisr CQk6YXJyYXl7Ynl0ZX0gY2hhbm5lbE1hcDoKKysKKysJCQkxMC1ieXRlIGNoYW5uZWwgbWFwIGJp dG1hcC4KKysKKysJCTpieXRlIG1pbk1haW5Nb2RlU3RlcHM6CisrCQk6Ynl0ZSBtYXhNYWluTW9k ZVN0ZXBzOgorKwkJOmJ5dGUgbWFpbk1vZGVSZXBldGl0aW9uOgorKwkJOmJ5dGUgbW9kZTBTdGVw czoKKysKKysJCTpieXRlIHJvbGU6CisrCisrCQkJQ1Mgcm9sZSBpbiBlZmZlY3QgZm9yIHRoZSBw cm9jZWR1cmUgKEluaXRpYXRvciwKKysJCQlSZWZsZWN0b3IsIG9yIEJvdGgpLgorKworKwkJOmJ5 dGUgY3NTeW5jUGh5VHlwZToKKysKKysJCQlQSFkgdXNlZCBmb3IgQ1Mgc3luYyBwYWNrZXRzLgor KworKwkJOmJ5dGUgY2hhbm5lbFNlbGVjdGlvblR5cGU6CisrCQk6Ynl0ZSBjaDNjU2hhcGVUeXBl OgorKwkJOmJ5dGUgY2gzY0p1bXA6CisrCQk6Ynl0ZSBjaGFubmVsTWFwUmVwZXRpdGlvbjoKKysJ CTpieXRlIHRJcDFUaW1lVXM6CisrCQk6Ynl0ZSB0SXAyVGltZVVzOgorKwkJOmJ5dGUgdEZjc1Rp bWVVczoKKysJCTpieXRlIHRQbVRpbWVVczoKKysJCTpieXRlIHRTd1RpbWVVc1N1cHBvcnRlZEJ5 TG9jYWw6CisrCQk6Ynl0ZSB0U3dUaW1lVXNTdXBwb3J0ZWRCeVJlbW90ZToKKysKKysJCTp1aW50 MzIgYmxlQ29ubkludGVydmFsOgorKworKwkJCUJMRSBjb25uZWN0aW9uIGludGVydmFsIGluIGVm ZmVjdCBkdXJpbmcgdGhlCisrCQkJcHJvY2VkdXJlLgorKworK1N1YmV2ZW50IFJlc3VsdAorK35+ fn5+fn5+fn5+fn5+fn4KKysKKytFYWNoIGVsZW1lbnQgb2YgYGBpbml0aWF0b3JTdWJldmVudFJl c3VsdHNgYCBhbmQKKytgYHJlZmxlY3RvclN1YmV2ZW50UmVzdWx0c2BgIGlzIGEgZGljdCB3aXRo IHRoZSBmb2xsb3dpbmcgZmllbGRzOgorKworKzppbnQzMiBzdGFydEFjbENvbm5FdnRDb3VudGVy OgorKworKwlBQ0wgY29ubmVjdGlvbiBldmVudCBjb3VudGVyIGF0IHRoZSBzdGFydCBvZiB0aGUg c3ViZXZlbnQuCisrCisrOmludDMyIGZyZXFDb21wOgorKworKwlGcmVxdWVuY3kgY29tcGVuc2F0 aW9uIHZhbHVlLgorKworKzpieXRlIHJlZlB3ckx2bDoKKysKKysJUmVmZXJlbmNlIHBvd2VyIGxl dmVsLCB0cmVhdGVkIGFzIGEgc2lnbmVkIHZhbHVlLgorKworKzpieXRlIG51bUFudFBhdGhzOgor KworKwlOdW1iZXIgb2YgYW50ZW5uYSBwYXRocyB1c2VkLgorKworKzpieXRlIHN1YmV2ZW50QWJv cnRSZWFzb246CisrCisrCVJlYXNvbiB0aGUgc3ViZXZlbnQgd2FzIGFib3J0ZWQsIDAgaWYgbm90 IGFib3J0ZWQuCisrCisrOnVpbnQ2NCB0aW1lc3RhbXBOYW5vczoKKysKKysJVGltZXN0YW1wIG9m IHRoZSBzdWJldmVudCByZXN1bHQsIGluIG5hbm9zZWNvbmRzLgorKworKzp1aW50MzIgbnVtU3Rl cHM6CisrCisrCU51bWJlciBvZiBzdGVwcyByZXBvcnRlZCBpbiB0aGlzIHN1YmV2ZW50LgorKwor KzphcnJheXtkaWN0fSBzdGVwRGF0YToKKysKKysJT25lIGVudHJ5IHBlciBzdGVwLiBFYWNoIGVu dHJ5IGhhczoKKysKKysJOmJ5dGUgc3RlcE1vZGU6CisrCisrCQlDUyBzdGVwIG1vZGUgKDAtMyku CisrCisrCTpieXRlIHN0ZXBDaGFubmVsOgorKworKwkJQ2hhbm5lbCB1c2VkIGZvciB0aGUgc3Rl cC4KKysKKysJOmRpY3QgbW9kZVplcm9EYXRhOgorKworKwkJUHJlc2VudCB3aGVuIGBgc3RlcE1v ZGVgYCBpcyAwLgorKworKwkJOmJ5dGUgcGFja2V0UXVhbGl0eToKKysJCTpieXRlIHBhY2tldFJz c2lEYm06CisrCQk6Ynl0ZSBwYWNrZXRBbnRlbm5hOgorKworKwkJOmludDMyIGluaXRpYXRvck1l YXN1cmVkRnJlcU9mZnNldDoKKysKKysJCQlGcmVxdWVuY3kgb2Zmc2V0IG1lYXN1cmVkIGJ5IHRo ZSBJbml0aWF0b3IuCisrCisrCTpkaWN0IG1vZGVPbmVEYXRhOgorKworKwkJUHJlc2VudCB3aGVu IGBgc3RlcE1vZGVgYCBpcyAxLgorKworKwkJOmJ5dGUgcGFja2V0UXVhbGl0eToKKysJCTpieXRl IHBhY2tldE5hZG06CisrCQk6Ynl0ZSBwYWNrZXRSc3NpRGJtOgorKworKwkJOmludDMyIHRvYVRv ZEluaXRpYXRvcjoKKysKKysJCQlUaW1lIG9mIEFycml2YWwgLyBUaW1lIG9mIERlcGFydHVyZSBh dCB0aGUKKysJCQlJbml0aWF0b3IuCisrCisrCQk6aW50MzIgdG9kVG9hUmVmbGVjdG9yOgorKwor KwkJCVRpbWUgb2YgRGVwYXJ0dXJlIC8gVGltZSBvZiBBcnJpdmFsIGF0IHRoZQorKwkJCVJlZmxl Y3Rvci4KKysKKysJCTpieXRlIHBhY2tldEFudGVubmE6CisrCisrCQk6YXJyYXl7aW50MzJ9IHBh Y2tldFBjdDE6CisrCisrCQkJSW4tcGhhc2UvcXVhZHJhdHVyZSBzYW1wbGUgcGFpciwgYXMKKysJ CQlgYFtpX3NhbXBsZSwgcV9zYW1wbGVdYGAuCisrCisrCQk6YXJyYXl7aW50MzJ9IHBhY2tldFBj dDI6CisrCisrCQkJSW4tcGhhc2UvcXVhZHJhdHVyZSBzYW1wbGUgcGFpciwgYXMKKysJCQlgYFtp X3NhbXBsZSwgcV9zYW1wbGVdYGAuCisrCisrCTpkaWN0IG1vZGVUd29EYXRhOgorKworKwkJUHJl c2VudCB3aGVuIGBgc3RlcE1vZGVgYCBpcyAyLgorKworKwkJOmJ5dGUgYW50ZW5uYVBlcm11dGF0 aW9uSW5kZXg6CisrCisrCQk6YXJyYXl7aW50MzJ9IHRvbmVQY3RJUVNhbXBsZXM6CisrCisrCQkJ SW50ZXJsZWF2ZWQgaW4tcGhhc2UvcXVhZHJhdHVyZSB0b25lIHNhbXBsZXMsIGFzCisrCQkJYGBb aV9zYW1wbGUsIHFfc2FtcGxlLCAuLi5dYGAg4oCUIG9uZSBwYWlyIHBlcgorKwkJCWFudGVubmEg cGF0aC4KKysKKysJCTphcnJheXtieXRlfSB0b25lUXVhbGl0eUluZGljYXRvcnM6CisrCisrCQkJ T25lIHF1YWxpdHkgaW5kaWNhdG9yIGJ5dGUgcGVyIGFudGVubmEgcGF0aC4KKysKKysJOmRpY3Qg bW9kZVRocmVlRGF0YToKKysKKysJCVByZXNlbnQgd2hlbiBgYHN0ZXBNb2RlYGAgaXMgMy4gQ29u dGFpbnMgdGhlIGNvbWJpbmVkCisrCQlmaWVsZHMgb2YgYm90aCAqKm1vZGVPbmVEYXRhKiogYW5k ICoqbW9kZVR3b0RhdGEqKi4KKysKKytQcm9wZXJ0aWVzCisrLS0tLS0tLS0tLQorKworK2Jvb2xl YW4gQWN0aXZlIFtyZWFkb25seV0KKytgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgCisrCisrSW5k aWNhdGVzIHdoZXRoZXIgYSBDUyBkaXN0YW5jZSBtZWFzdXJlbWVudCBwcm9jZWR1cmUgaXMgY3Vy cmVudGx5CisrYWN0aXZlIG9uIHRoaXMgZGV2aWNlLgorKworK1NldCB0byBgYHRydWVgYCB3aGVu IGEgcHJvY2VkdXJlIHN0YXJ0cyDigJQgZWl0aGVyIGJlY2F1c2UgdGhlIGxvY2FsCisrSW5pdGlh dG9yIGNhbGxlZCAqKlN0YXJ0TWVhc3VyZW1lbnQqKiBzdWNjZXNzZnVsbHksIG9yIGJlY2F1c2Ug dGhlCisrcmVtb3RlIEluaXRpYXRvciBlbmFibGVkIGEgQ1MgcHJvY2VkdXJlIG9uIHRoZSBsb2Nh bCBSZWZsZWN0b3IuCisrCisrU2V0IHRvIGBgZmFsc2VgYCB3aGVuIHRoZSBwcm9jZWR1cmUgc3Rv cHMgZm9yIGFueSByZWFzb246IHRoZSBsb2NhbAorK2FwcGxpY2F0aW9uIGNhbGxlZCAqKlN0b3BN ZWFzdXJlbWVudCoqLCB0aGUgbWVhc3VyZW1lbnQgZHVyYXRpb24gdGltZXIKKytleHBpcmVkLCBv ciB0aGUgQUNMIGNvbm5lY3Rpb24gd2FzIGRyb3BwZWQuCisrCisrVGhpcyBwcm9wZXJ0eSBlbWl0 cyBgYFByb3BlcnRpZXNDaGFuZ2VkYGAgb24gZXZlcnkgdHJhbnNpdGlvbiBzbyB0aGF0CisrY2xp ZW50cyBjYW4gdHJhY2sgbWVhc3VyZW1lbnQgc3RhdGUgd2l0aG91dCBwb2xsaW5nLgorKworK1JF U09VUkNFUworKz09PT09PT09PQorKworK2h0dHA6Ly93d3cuYmx1ZXoub3JnCisrCisrUkVQT1JU SU5HIEJVR1MKKys9PT09PT09PT09PT09PQorKworK2xpbnV4LWJsdWV0b290aEB2Z2VyLmtlcm5l bC5vcmcKKy0tIAorMi41NC4wCisKKworRnJvbSAzMGRiNjZkYzk3MWJkMWNkOTVkNGE3YjBlZWEy OTYzNjdhYjY1YjNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmFnYSBCaGF2YW5p IEFrZWxsYSA8bmFnYS5ha2VsbGFAb3NzLnF1YWxjb21tLmNvbT4KK0RhdGU6IFdlZCwgMTUgSnVs IDIwMjYgMTQ6MDk6NTcgKzA1MzAKK1N1YmplY3Q6IFtQQVRDSCAxOS8xOV0gZG9jL2JsdWV0b290 aGN0bC1jczogQWRkIDpVc2VzOiBmaWVsZHMgYW5kIGRvY3VtZW50CisgYXJndW1lbnRzCisKK0Fk ZCA6VXNlczogZmllbGRzIHRvIGxpbmsgY29tbWFuZHMgdG8gdGhlaXIgY29ycmVzcG9uZGluZyBE LUJ1cyBBUEkKK21ldGhvZHMsIGFuZCBkb2N1bWVudCBjb21tYW5kIGFyZ3VtZW50cyB3aXRoIHVz YWdlIGV4YW1wbGVzCistLS0KKyBNYWtlZmlsZS50b29scyAgICAgICAgICB8ICAgNSArLQorIGRv Yy9ibHVldG9vdGhjdGwtY3MucnN0IHwgNTQ2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDU0OSBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2MvYmx1ZXRvb3RoY3RsLWNzLnJzdAorCitk aWZmIC0tZ2l0IGEvTWFrZWZpbGUudG9vbHMgYi9NYWtlZmlsZS50b29scworaW5kZXggNjE4ODQ0 OWYxNTY1Li4wNjQ2ZDUyZTE0ZGMgMTAwNjQ0CistLS0gYS9NYWtlZmlsZS50b29scworKysrIGIv TWFrZWZpbGUudG9vbHMKK0BAIC0zNTksNyArMzU5LDcgQEAgbWFuX01BTlMgKz0gZG9jL3JjdGVz dC4xIGRvYy9sMnBpbmcuMSBkb2MvYnRhdHRhY2guMSBkb2MvaXNvdGVzdC4xIFwKKyAJCWRvYy9i bHVldG9vdGhjdGwtZ2F0dC4xIGRvYy9ibHVldG9vdGhjdGwtcGxheWVyLjEgXAorIAkJZG9jL2Js dWV0b290aGN0bC1zY2FuLjEgZG9jL2JsdWV0b290aGN0bC10cmFuc3BvcnQuMSBcCisgCQlkb2Mv Ymx1ZXRvb3RoY3RsLWFzc2lzdGFudC4xIGRvYy9ibHVldG9vdGhjdGwtaGNpLjEgXAorLQkJZG9j L2JsdWV0b290aGN0bC10ZWxlcGhvbnkuMQorKwkJZG9jL2JsdWV0b290aGN0bC10ZWxlcGhvbnku MSBkb2MvYmx1ZXRvb3RoY3RsLWNzLjEKKyAKKyBlbmRpZgorIAorQEAgLTQ2NSw3ICs0NjUsOCBA QCBtYW51YWxfcGFnZXMgKz0gZG9jL2hjaWF0dGFjaC4xIGRvYy9oY2ljb25maWcuMSBkb2MvaGNp dG9vbC4xIFwKKyAJCQlkb2MvYmx1ZXRvb3RoY3RsLXRyYW5zcG9ydC4xIFwKKyAJCQlkb2MvYmx1 ZXRvb3RoY3RsLWFzc2lzdGFudC4xIFwKKyAJCQlkb2MvYmx1ZXRvb3RoY3RsLWhjaS4xIFwKKy0J CQlkb2MvYmx1ZXRvb3RoY3RsLXRlbGVwaG9ueS4xCisrCQkJZG9jL2JsdWV0b290aGN0bC10ZWxl cGhvbnkuMSBcCisrCQkJZG9jL2JsdWV0b290aGN0bC1jcy4xCisgCisgaWYgSElEMkhDSQorIHVk ZXZkaXIgPSAkKFVERVZfRElSKQorZGlmZiAtLWdpdCBhL2RvYy9ibHVldG9vdGhjdGwtY3MucnN0 IGIvZG9jL2JsdWV0b290aGN0bC1jcy5yc3QKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAw MDAwMDAwMDAwMDAuLmJiYzFkODU2NWY5MQorLS0tIC9kZXYvbnVsbAorKysrIGIvZG9jL2JsdWV0 b290aGN0bC1jcy5yc3QKK0BAIC0wLDAgKzEsNTQ2IEBACisrPT09PT09PT09PT09PT09PQorK2Js dWV0b290aGN0bC1jcworKz09PT09PT09PT09PT09PT0KKysKKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorK0NoYW5uZWwgU291bmRpbmcgU3VibWVudQorKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrCisrOlZlcnNpb246IEJsdWVaCisrOkNvcHlyaWdodDogRnJlZSB1c2Ugb2YgdGhp cyBzb2Z0d2FyZSBpcyBncmFudGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCisrICAgICAg ICAgICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIChMR1BMKS4KKys6RGF0ZTogSnVu ZSAyMDI2CisrOk1hbnVhbCBzZWN0aW9uOiAxCisrOk1hbnVhbCBncm91cDogTGludXggU3lzdGVt IEFkbWluaXN0cmF0aW9uCisrCisrU1lOT1BTSVMKKys9PT09PT09PQorKworKyoqYmx1ZXRvb3Ro Y3RsKiogWy0tb3B0aW9uc10gW2NzLmNvbW1hbmRzXQorKworK1RoaXMgc3VibWVudSBjb250cm9s cyBCbHVldG9vdGggQ2hhbm5lbCBTb3VuZGluZyAoQ1MpIGRpc3RhbmNlIG1lYXN1cmVtZW50Cisr dXNpbmcgdGhlICoqb3JnLmJsdWV6LkNoYW5uZWxTb3VuZGluZzEoNSkqKiBELUJ1cyBpbnRlcmZh Y2UuIEl0IGFsbG93cworK3N0YXJ0aW5nIGFuZCBzdG9wcGluZyBtZWFzdXJlbWVudHMgYW5kIGlu c3BlY3RpbmcgdGhlIGN1cnJlbnQgcGFyYW1ldGVyCisrc3RhdGUgYW5kIGFjdGl2ZSBzZXNzaW9u IGlkZW50aWZpZXIuCisrCisrRWFjaCBDUyBwYXJhbWV0ZXIgaGFzIGl0cyBvd24gKipjcy48cGFy YW0+Kiogc2V0IGNvbW1hbmQgKHNlZSB0aGUKKysqKkNTIFBhcmFtZXRlciBDb21tYW5kcyoqIHNl Y3Rpb24gYmVsb3cpLiBPdmVycmlkZXMgYXJlIGFwcGxpZWQgdG8KKyt0aGUgbG9jYWwgcGFyYW1l dGVyIHN0YXRlIGltbWVkaWF0ZWx5LCBzbyAqKnNob3cqKiByZWZsZWN0cyB0aGVtCisrcmlnaHQg YXdheTsgKipzdGFydCoqIGFsd2F5cyB1c2VzIHdoYXRldmVyIHZhbHVlcyBhcmUgY3VycmVudGx5 IHNldC4KKysKKysKKytDaGFubmVsIFNvdW5kaW5nIENvbW1hbmRzCisrPT09PT09PT09PT09PT09 PT09PT09PT09PQorKworK3N0YXJ0CisrLS0tLS0KKysKKytTdGFydHMgYSBkaXN0YW5jZSBtZWFz dXJlbWVudCBvbiB0aGUgY29ubmVjdGVkIGRldmljZSB1c2luZyB0aGUKKytjdXJyZW50bHkgc2V0 IENTIHBhcmFtZXRlcnMgKHNlZSB0aGUgKipjcy48cGFyYW0+KiogY29tbWFuZHMgYmVsb3cpLgor K0FsbCBjb25maWd1cmF0aW9uIGlzIHNlbnQgdG8gdGhlIGRhZW1vbiBpbiBhIHNpbmdsZSAqKlN0 YXJ0TWVhc3VyZW1lbnQqKgorK2NhbGwuIE9uIHN1Y2Nlc3MgdGhlIGRldmljZSBwYXRoIGlzIHBy aW50ZWQgdG8gdGhlIGNvbnNvbGUuIE11bHRpcGxlCisrc2ltdWx0YW5lb3VzIHNlc3Npb25zIGFj cm9zcyBkaWZmZXJlbnQgZGV2aWNlcyBhcmUgc3VwcG9ydGVkOyBlYWNoIGlzCisrdHJhY2tlZCBp bmRlcGVuZGVudGx5LgorKworK0NhbGxpbmcgKipzdGFydCoqIG9uIGEgZGV2aWNlIHRoYXQgYWxy ZWFkeSBoYXMgYW4gYWN0aXZlIG1lYXN1cmVtZW50CisrcmV0dXJucyBhbiBlcnJvciB3aXRob3V0 IHN0YXJ0aW5nIGEgc2Vjb25kIHNlc3Npb24gb24gdGhlIHNhbWUgZGV2aWNlLgorKworK0ZvciBJ bml0aWF0b3Igcm9sZSAob3IgQm90aCksIHRoZSBtYW5kYXRvcnkgcGFyYW1ldGVycyBhcmUgdGhl CisrcG9zaXRpb25hbCBgYGRldl9hZGRyYGAgYW5kIGBgZHVyYXRpb25fc2Vjc2BgOyBldmVyeSBg YGNzLjxwYXJhbT5gYAorK2NvbW1hbmQgYmVsb3cgaXMgb3B0aW9uYWwgY29uZmlndXJhdGlvbiB3 aXRoIGEgdXNhYmxlIGRlZmF1bHQuCisrCisrSWYgYGByb2xlYGAgaXMgc2V0IHRvIFJlZmxlY3Rv ciAoYGAweDAyYGAsIHZpYSAqKmNzLnJvbGUqKiksICoqc3RhcnQqKgorK2RvZXMgbm90IGJlZ2lu IG1lYXN1cmluZyBkaXN0YW5jZTogYSBSZWZsZWN0b3IgbmV2ZXIgaW5pdGlhdGVzIGEgQ1MKKytw cm9jZWR1cmUuIEl0IG9ubHkgcHVzaGVzIHRoZSBjdXJyZW50IHBhcmFtZXRlcnMgdG8gdGhlIGRh ZW1vbiBhbmQKKythcm1zIHRoZSBkZXZpY2UgdG8gcmVzcG9uZCBvbmNlIHRoZSByZW1vdGUgSW5p dGlhdG9yIHN0YXJ0cyBvbmU7IHRoZQorK2NhbGwgc3RpbGwgc3VjY2VlZHMuIFdoZW4gdGhlIHJl bW90ZSBzaWRlIHN0YXJ0cyBvciBzdG9wcyBhIHByb2NlZHVyZSwKKyt0aGUgY29uc29sZSBwcmlu dHMgYGBNZWFzdXJlbWVudCBzdGFydGVkYGAvYGBNZWFzdXJlbWVudCBzdG9wcGVkYGAgZm9yCisr dGhhdCBkZXZpY2Ug4oCUIHVzZSAqKnNob3cqKiBvciB3YXRjaCB0aGUgYGBBY3RpdmVgYCBwcm9w ZXJ0eSB0byBzZWUKKyt0aGUgc2FtZSB0cmFuc2l0aW9uLiBJbiB0aGlzIHJvbGUgdGhlIG9ubHkg cGFyYW1ldGVycyB0aGF0IGFyZQorK3JlcXVpcmVkIG9yIGhhdmUgYW55IGVmZmVjdCBhcmUgYGBy b2xlYGAsIGBgc3luY19hbnRfc2VsYGAgYW5kCisrYGBtYXhfdHhfcG93ZXJgYDsgZXZlcnkgb3Ro ZXIgKipjcy48cGFyYW0+KiogY29tbWFuZCBiZWxvdyBpcworK2FjY2VwdGVkIGJ1dCB1bnVzZWQu CisrCisrUG9zaXRpb25hbCBhcmd1bWVudHMgYXJlIG9wdGlvbmFsOgorKworKy0gYGBkZXZfYWRk cmBgIOKAlCBCbHVldG9vdGggYWRkcmVzcyBvZiB0aGUgdGFyZ2V0IGRldmljZTsgdXNlcyB0aGUg b25seQorKyAgYXZhaWxhYmxlIENTLWNhcGFibGUgZGV2aWNlIHdoZW4gb21pdHRlZC4KKystIGBg ZHVyYXRpb25fc2Vjc2BgIOKAlCBhdXRvLXN0b3AgdGltZW91dCBpbiBzZWNvbmRzOyBgYDBgYCAo ZGVmYXVsdCkgbWVhbnMKKysgIG5vIHRpbWVvdXQuCisrCisrOlVzYWdlOiAqKj4gc3RhcnQgW2Rl dl9hZGRyXSBbZHVyYXRpb25fc2Vjc10qKgorKzpVc2VzOiAqKm9yZy5ibHVlei5DaGFubmVsU291 bmRpbmcxKDUpKiogbWV0aG9kICoqU3RhcnRNZWFzdXJlbWVudCoqCisrOltkZXZfYWRkcl06IEJs dWV0b290aCBhZGRyZXNzIG9mIHRoZSB0YXJnZXQgZGV2aWNlIChvcHRpb25hbDsgdXNlcyB0aGUK KysgICAgICAgICAgICAgb25seSBhdmFpbGFibGUgQ1MtY2FwYWJsZSBkZXZpY2Ugd2hlbiBvbWl0 dGVkKQorKzpbZHVyYXRpb25fc2Vjc106IFNlY29uZHMgYmVmb3JlIGF1dG8tc3RvcCAob3B0aW9u YWwsIGRlZmF1bHQgMCA9IG5vIHRpbWVvdXQpCisrCisrOkV4YW1wbGUgU3RhcnQgd2l0aCBhbGwg ZGVmYXVsdHMsIG5vIHRpbWVvdXQ6CisrCXwgKio+IHN0YXJ0KioKKys6RXhhbXBsZSBTdGFydCBv biBhIHNwZWNpZmljIGRldmljZToKKysJfCAqKj4gc3RhcnQgQUE6QkI6Q0M6REQ6RUU6RkYqKgor KzpFeGFtcGxlIFN0YXJ0IG9uIGEgc3BlY2lmaWMgZGV2aWNlIHdpdGggMTAtc2Vjb25kIGF1dG8t c3RvcDoKKysJfCAqKj4gc3RhcnQgQUE6QkI6Q0M6REQ6RUU6RkYgMTAqKgorKzpFeGFtcGxlIFN0 YXJ0IHdpdGggMTAtc2Vjb25kIGF1dG8tc3RvcCAoc2luZ2xlIGRldmljZSwgYWRkcmVzcyBvbWl0 dGVkKToKKysJfCAqKj4gc3RhcnQgMCAxMCoqCisrOkV4YW1wbGUgU3RhcnQgd2l0aCA1LW1pbnV0 ZSBhdXRvLXN0b3A6CisrCXwgKio+IHN0YXJ0IEFBOkJCOkNDOkREOkVFOkZGIDMwMCoqCisrCisr c3RvcAorKy0tLS0KKysKKytTdG9wcyBhbiBhY3RpdmUgQ1MgZGlzdGFuY2UgbWVhc3VyZW1lbnQu IFdoZW4gb25seSBvbmUgbWVhc3VyZW1lbnQgaXMKKytydW5uaW5nIHRoZSBkZXZpY2UgYWRkcmVz cyBtYXkgYmUgb21pdHRlZC4gV2hlbiBtdWx0aXBsZSBtZWFzdXJlbWVudHMKKythcmUgYWN0aXZl IHRoZSBhZGRyZXNzIGlzIHJlcXVpcmVkIHRvIGlkZW50aWZ5IHdoaWNoIG9uZSB0byBzdG9wLgor KworKzpVc2FnZTogKio+IHN0b3AgW2Rldl9hZGRyXSoqCisrOlVzZXM6ICoqb3JnLmJsdWV6LkNo YW5uZWxTb3VuZGluZzEoNSkqKiBtZXRob2QgKipTdG9wTWVhc3VyZW1lbnQqKgorKzpbZGV2X2Fk ZHJdOiBCbHVldG9vdGggYWRkcmVzcyBvZiB0aGUgZGV2aWNlIHRvIHN0b3AgKG9wdGlvbmFsIHdo ZW4KKysgICAgICAgICAgICAgb25seSBvbmUgc2Vzc2lvbiBpcyBhY3RpdmU7IHJlcXVpcmVkIG90 aGVyd2lzZSkKKys6RXhhbXBsZSBTdG9wIHRoZSBvbmx5IGFjdGl2ZSBtZWFzdXJlbWVudDoKKysJ fCAqKj4gc3RvcCoqCisrOkV4YW1wbGUgU3RvcCBhIHNwZWNpZmljIGRldmljZSB3aGVuIG11bHRp cGxlIGFyZSBhY3RpdmU6CisrCXwgKio+IHN0b3AgQUE6QkI6Q0M6REQ6RUU6RkYqKgorKzpFeGFt cGxlIFN0b3AgYSBzZWNvbmQgZGV2aWNlOgorKwl8ICoqPiBzdG9wIDExOjIyOjMzOjQ0OjU1OjY2 KioKKysKKytzaG93CisrLS0tLQorKworK0Rpc3BsYXlzIGFsbCBhY3RpdmUgbWVhc3VyZW1lbnRz IChkZXZpY2UgcGF0aCBmb3IgZWFjaCkgYW5kIHRoZSBmdWxsCisrc2V0IG9mIENTIHBhcmFtZXRl ciB2YWx1ZXMgdGhhdCB3aWxsIGJlIHVzZWQgb24gdGhlIG5leHQgKipzdGFydCoqIGNhbGwuCisr V2hlbiBubyBtZWFzdXJlbWVudHMgYXJlIGFjdGl2ZSwgYGBub25lYGAgaXMgc2hvd24uCisrCisr VGhlIHBhcmFtZXRlciBvdXRwdXQgaXMgZGl2aWRlZCBpbnRvIHRocmVlIHNlY3Rpb25zOgorKwor Ky0gKipEZWZhdWx0IFNldHRpbmdzKiog4oCUIHJvbGUsIENTIHN5bmMgYW50ZW5uYSBzZWxlY3Rp b24sIG1heCBUWCBwb3dlci4KKystICoqQ1MgQ29uZmlnIFBhcmFtcyoqIOKAlCBwZXItcHJvY2Vk dXJlIGNvbmZpZ3VyYXRpb24gZmllbGRzIGluY2x1ZGluZworKyAgbW9kZSB0eXBlLCBzdGVwIGNv dW50cywgUEhZLCBhbmQgY2hhbm5lbCBtYXAuCisrLSAqKkNTIEZyZXF1ZW5jeSBQYXJhbXMqKiDi gJQgcHJvY2VkdXJlIHNjaGVkdWxpbmcgZmllbGRzIGluY2x1ZGluZworKyAgZHVyYXRpb24sIHBl cmlvZCwgc3ViZXZlbnQgbGVuZ3RocywgYW5kIFNOUiBjb250cm9sLgorKworKzpVc2FnZTogKio+ IHNob3cqKgorKzpFeGFtcGxlIFNob3cgYWN0aXZlIHNlc3Npb24gYW5kIGFsbCBDUyBwYXJhbWV0 ZXJzOgorKwl8ICoqPiBzaG93KioKKysKKytDUyBQYXJhbWV0ZXIgQ29tbWFuZHMKKys9PT09PT09 PT09PT09PT09PT09PT09CisrCisrRWFjaCBDUyBwYXJhbWV0ZXIgaXMgc2V0IHdpdGggaXRzIG93 biBjb21tYW5kLCBvZiB0aGUgZm9ybQorK2BgY3MuPHBhcmFtPiA8dmFsdWU+YGAuIEVudGVyaW5n IGEgcGFyYW0gY29tbWFuZCB3aXRoIG5vIHZhbHVlIHNob3dzCisraXRzIGN1cnJlbnQgc2V0dGlu Zy4gT3ZlcnJpZGVzIGFwcGx5IHRvIHRoZSBsb2NhbCBwYXJhbWV0ZXIgc3RhdGUKKytpbW1lZGlh dGVseSwgc28gKipzaG93KiogcmVmbGVjdHMgdGhlbSByaWdodCBhd2F5OyAqKnN0YXJ0KiogYWx3 YXlzCisrdXNlcyB3aGF0ZXZlciB2YWx1ZXMgYXJlIGN1cnJlbnRseSBzZXQuIEFycmF5LXZhbHVl ZCBwYXJhbWV0ZXJzCisrKGBgY2hhbm5lbF9tYXBgYCwgYGBtaW5fc3ViX2V2ZW50X2xlbmBgLCBg YG1heF9zdWJfZXZlbnRfbGVuYGApIHRha2UKKytjb2xvbi1zZXBhcmF0ZWQgaGV4IGJ5dGVzIHdp dGggbm8gYGAweGBgIHByZWZpeC4KKysKKys6VXNhZ2U6ICoqPiA8cGFyYW0+IFt2YWx1ZV0qKgor KworK3JvbGUKKystLS0tCisrCisrR2V0L3NldCB0aGUgQ1Mgcm9sZS4KKysKKys6VXNhZ2U6ICoq PiByb2xlIFsweDAxfDB4MDJ8MHgwM10qKgorKzpbMHgwMXwweDAyfDB4MDNdOiBgYDB4MDFgYCBJ bml0aWF0b3IsIGBgMHgwMmBgIFJlZmxlY3RvciwgYGAweDAzYGAgQm90aAorKyAgICAgICAgICAg ICAgICAgICAob3B0aW9uYWwsIHNob3dzIGN1cnJlbnQgaWYgb21pdHRlZDsgZGVmYXVsdCBgYDB4 MDNgYCkKKys6RXhhbXBsZSBTaG93IGN1cnJlbnQgcm9sZToKKysJfCAqKj4gcm9sZSoqCisrOkV4 YW1wbGUgU2V0IHJvbGUgdG8gSW5pdGlhdG9yIG9ubHk6CisrCXwgKio+IHJvbGUgMHgwMSoqCisr OkV4YW1wbGUgU2V0IHJvbGUgdG8gUmVmbGVjdG9yIG9ubHkgKGRvZXMgbm90IG1lYXN1cmUpOgor Kwl8ICoqPiByb2xlIDB4MDIqKgorKzpFeGFtcGxlIFNldCByb2xlIHRvIGJvdGggSW5pdGlhdG9y IGFuZCBSZWZsZWN0b3I6CisrCXwgKio+IHJvbGUgMHgwMyoqCisrCisrc3luY19hbnRfc2VsCisr LS0tLS0tLS0tLS0tCisrCisrR2V0L3NldCB0aGUgQ1Mgc3luYyBhbnRlbm5hIHNlbGVjdGlvbi4K KysKKys6VXNhZ2U6ICoqPiBzeW5jX2FudF9zZWwgW3ZhbHVlXSoqCisrOlt2YWx1ZV06IENTIHN5 bmMgYW50ZW5uYSBzZWxlY3Rpb247IGBgMHhGRWBgL2BgMHhGRmBgIHJlc2VydmVkCisrICAgICAg ICAgIChvcHRpb25hbCwgc2hvd3MgY3VycmVudCBpZiBvbWl0dGVkOyBkZWZhdWx0IGBgMHhGRmBg KQorKzpFeGFtcGxlIFNob3cgY3VycmVudCBhbnRlbm5hIHNlbGVjdGlvbjoKKysJfCAqKj4gc3lu Y19hbnRfc2VsKioKKys6RXhhbXBsZSBTZWxlY3QgYW50ZW5uYSAxOgorKwl8ICoqPiBzeW5jX2Fu dF9zZWwgMHgwMSoqCisrCisrbWF4X3R4X3Bvd2VyCisrLS0tLS0tLS0tLS0tCisrCisrR2V0L3Nl dCB0aGUgbWF4aW11bSBUWCBwb3dlci4KKysKKys6VXNhZ2U6ICoqPiBtYXhfdHhfcG93ZXIgW2RC bV0qKgorKzpbZEJtXTogTWF4IFRYIHBvd2VyIGluIGRCbSwgc2lnbmVkIChvcHRpb25hbCwgc2hv d3MgY3VycmVudCBpZgorKyAgICAgICAgb21pdHRlZDsgcmFuZ2Ug4oiSMTI3IHRvICsyMDsgZGVm YXVsdCBgYDIwYGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50IG1heCBUWCBwb3dlcjoKKysJfCAq Kj4gbWF4X3R4X3Bvd2VyKioKKys6RXhhbXBsZSBSZWR1Y2UgbWF4IFRYIHBvd2VyIHRvIDEwIGRC bToKKysJfCAqKj4gbWF4X3R4X3Bvd2VyIDEwKioKKysKKytjb25maWdfaWQKKystLS0tLS0tLS0K KysKKytHZXQvc2V0IHRoZSBDUyBjb25maWd1cmF0aW9uIGlkZW50aWZpZXIuCisrCisrOlVzYWdl OiAqKj4gY29uZmlnX2lkIFt2YWx1ZV0qKgorKzpbdmFsdWVdOiBDUyBjb25maWd1cmF0aW9uIGlk ZW50aWZpZXIgKG9wdGlvbmFsLCBzaG93cyBjdXJyZW50IGlmCisrICAgICAgICAgIG9taXR0ZWQ7 IGRlZmF1bHQgYGAwYGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50IGNvbmZpZyBpZDoKKysJfCAq Kj4gY29uZmlnX2lkKioKKys6RXhhbXBsZSBTZXQgY29uZmlnIGlkIHRvIDE6CisrCXwgKio+IGNv bmZpZ19pZCAxKioKKysKKyttYWluX21vZGVfdHlwZQorKy0tLS0tLS0tLS0tLS0tCisrCisrR2V0 L3NldCB0aGUgQ1MgbWFpbiBtb2RlIHR5cGUuCisrCisrOlVzYWdlOiAqKj4gbWFpbl9tb2RlX3R5 cGUgWzF8MnwzXSoqCisrOlsxfDJ8M106IGBgMWBgIE1vZGUgMSAoUlRUKSwgYGAyYGAgTW9kZSAy IChQQlIpLCBgYDNgYCBCb3RoIChvcHRpb25hbCwKKysgICAgICAgICAgc2hvd3MgY3VycmVudCBp ZiBvbWl0dGVkOyBkZWZhdWx0IGBgMWBgKQorKzpFeGFtcGxlIFNob3cgY3VycmVudCBtYWluIG1v ZGUgdHlwZToKKysJfCAqKj4gbWFpbl9tb2RlX3R5cGUqKgorKzpFeGFtcGxlIFNldCBtYWluIG1v ZGUgdG8gTW9kZSAyIChQQlIpOgorKwl8ICoqPiBtYWluX21vZGVfdHlwZSAyKioKKys6RXhhbXBs ZSBTZXQgbWFpbiBtb2RlIHRvIGJvdGggUlRUIGFuZCBQQlI6CisrCXwgKio+IG1haW5fbW9kZV90 eXBlIDMqKgorKworK3N1Yl9tb2RlX3R5cGUKKystLS0tLS0tLS0tLS0tCisrCisrR2V0L3NldCB0 aGUgQ1Mgc3ViLW1vZGUgdHlwZSB3aXRoaW4gdGhlIG1haW4gbW9kZS4KKysKKys6VXNhZ2U6ICoq PiBzdWJfbW9kZV90eXBlIFt2YWx1ZV0qKgorKzpbdmFsdWVdOiBTdWItbW9kZSB3aXRoaW4gbWFp biBtb2RlOyBgYDB4RkZgYCA9IHVudXNlZCAob3B0aW9uYWwsCisrICAgICAgICAgIHNob3dzIGN1 cnJlbnQgaWYgb21pdHRlZDsgZGVmYXVsdCBgYDB4RkZgYCkKKys6RXhhbXBsZSBTaG93IGN1cnJl bnQgc3ViLW1vZGUgdHlwZToKKysJfCAqKj4gc3ViX21vZGVfdHlwZSoqCisrOkV4YW1wbGUgU2V0 IHN1Yi1tb2RlIHR5cGUgdG8gMHgwMToKKysJfCAqKj4gc3ViX21vZGVfdHlwZSAweDAxKioKKysK KyttYWluX21vZGVfbWluX3N0ZXBzCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytHZXQvc2V0 IHRoZSBtaW5pbXVtIENTIG1haW4gbW9kZSBzdGVwcyBwZXIgc3ViZXZlbnQuCisrCisrOlVzYWdl OiAqKj4gbWFpbl9tb2RlX21pbl9zdGVwcyBbdmFsdWVdKioKKys6W3ZhbHVlXTogTWluIENTIG1h aW4gbW9kZSBzdGVwcyBwZXIgc3ViZXZlbnQgKG9wdGlvbmFsLCBzaG93cworKyAgICAgICAgICBj dXJyZW50IGlmIG9taXR0ZWQ7IGRlZmF1bHQgYGAyYGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50 IHZhbHVlOgorKwl8ICoqPiBtYWluX21vZGVfbWluX3N0ZXBzKioKKys6RXhhbXBsZSBTZXQgbWlu aW11bSBzdGVwcyB0byA0OgorKwl8ICoqPiBtYWluX21vZGVfbWluX3N0ZXBzIDQqKgorKworK21h aW5fbW9kZV9tYXhfc3RlcHMKKystLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK0dldC9zZXQgdGhl IG1heGltdW0gQ1MgbWFpbiBtb2RlIHN0ZXBzIHBlciBzdWJldmVudC4KKysKKys6VXNhZ2U6ICoq PiBtYWluX21vZGVfbWF4X3N0ZXBzIFt2YWx1ZV0qKgorKzpbdmFsdWVdOiBNYXggQ1MgbWFpbiBt b2RlIHN0ZXBzIHBlciBzdWJldmVudCAob3B0aW9uYWwsIHNob3dzCisrICAgICAgICAgIGN1cnJl bnQgaWYgb21pdHRlZDsgZGVmYXVsdCBgYDNgYCkKKys6RXhhbXBsZSBTaG93IGN1cnJlbnQgdmFs dWU6CisrCXwgKio+IG1haW5fbW9kZV9tYXhfc3RlcHMqKgorKzpFeGFtcGxlIFNldCBtYXhpbXVt IHN0ZXBzIHRvIDg6CisrCXwgKio+IG1haW5fbW9kZV9tYXhfc3RlcHMgOCoqCisrCisrbWFpbl9t b2RlX3JlcGV0aXRpb24KKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytHZXQvc2V0IGhvdyBt YW55IHRpbWVzIG1haW4gbW9kZSBzdGVwcyBhcmUgcmVwZWF0ZWQgaW4gYSBzdWJldmVudC4KKysK Kys6VXNhZ2U6ICoqPiBtYWluX21vZGVfcmVwZXRpdGlvbiBbdmFsdWVdKioKKys6W3ZhbHVlXTog UmVwZXRpdGlvbiBjb3VudCAob3B0aW9uYWwsIHNob3dzIGN1cnJlbnQgaWYgb21pdHRlZDsKKysg ICAgICAgICAgZGVmYXVsdCBgYDFgYCkKKys6RXhhbXBsZSBTaG93IGN1cnJlbnQgdmFsdWU6Cisr CXwgKio+IG1haW5fbW9kZV9yZXBldGl0aW9uKioKKys6RXhhbXBsZSBSZXBlYXQgbWFpbiBtb2Rl IHN0ZXBzIHR3aWNlOgorKwl8ICoqPiBtYWluX21vZGVfcmVwZXRpdGlvbiAyKioKKysKKyttb2Rl MF9zdGVwcworKy0tLS0tLS0tLS0tCisrCisrR2V0L3NldCB0aGUgbnVtYmVyIG9mIENTIE1vZGUg MCBzdGVwcyBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2gKKytzdWJldmVudC4KKysKKys6VXNhZ2U6 ICoqPiBtb2RlMF9zdGVwcyBbdmFsdWVdKioKKys6W3ZhbHVlXTogQ1MgTW9kZSAwIHN0ZXAgY291 bnQgKG9wdGlvbmFsLCBzaG93cyBjdXJyZW50IGlmIG9taXR0ZWQ7CisrICAgICAgICAgIGRlZmF1 bHQgYGAyYGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50IHZhbHVlOgorKwl8ICoqPiBtb2RlMF9z dGVwcyoqCisrOkV4YW1wbGUgU2V0IE1vZGUgMCBzdGVwcyB0byAzOgorKwl8ICoqPiBtb2RlMF9z dGVwcyAzKioKKysKKytydHRfdHlwZXMKKystLS0tLS0tLS0KKysKKytHZXQvc2V0IHRoZSBSVFQg bWVhc3VyZW1lbnQgdHlwZXMgYml0bWFzay4KKysKKys6VXNhZ2U6ICoqPiBydHRfdHlwZXMgW3Zh bHVlXSoqCisrOlt2YWx1ZV06IFJUVCBtZWFzdXJlbWVudCB0eXBlcyBiaXRtYXNrIChvcHRpb25h bCwgc2hvd3MgY3VycmVudCBpZgorKyAgICAgICAgICBvbWl0dGVkOyBkZWZhdWx0IGBgMGBgKQor KzpFeGFtcGxlIFNob3cgY3VycmVudCB2YWx1ZToKKysJfCAqKj4gcnR0X3R5cGVzKioKKys6RXhh bXBsZSBTZXQgUlRUIHR5cGVzIGJpdG1hc2s6CisrCXwgKio+IHJ0dF90eXBlcyAweDAxKioKKysK KytzeW5jX3BoeQorKy0tLS0tLS0tCisrCisrR2V0L3NldCB0aGUgUEhZIHVzZWQgZm9yIENTIHN5 bmMuCisrCisrOlVzYWdlOiAqKj4gc3luY19waHkgWzB4MDF8MHgwMl0qKgorKzpbMHgwMXwweDAy XTogYGAweDAxYGAgTEUgMU0sIGBgMHgwMmBgIExFIDJNIChvcHRpb25hbCwgc2hvd3MgY3VycmVu dAorKyAgICAgICAgICAgICAgaWYgb21pdHRlZDsgZGVmYXVsdCBgYDB4MDFgYCkKKys6RXhhbXBs ZSBTaG93IGN1cnJlbnQgc3luYyBQSFk6CisrCXwgKio+IHN5bmNfcGh5KioKKys6RXhhbXBsZSBT ZXQgQ1Mgc3luYyBQSFkgdG8gTEUgMk06CisrCXwgKio+IHN5bmNfcGh5IDB4MDIqKgorKworK2No YW5uZWxfbWFwCisrLS0tLS0tLS0tLS0KKysKKytHZXQvc2V0IHRoZSAxMC1ieXRlIENTIGNoYW5u ZWwgbWFwIGJpdG1hcC4KKysKKys6VXNhZ2U6ICoqPiBjaGFubmVsX21hcCBbYjA6YjE6Li4uOmI5 XSoqCisrOltiMDpiMTouLi46YjldOiAxMCBjb2xvbi1zZXBhcmF0ZWQgaGV4IGJ5dGVzIChvcHRp b25hbCwgc2hvd3MgY3VycmVudAorKyAgICAgICAgICAgICAgICAgaWYgb21pdHRlZDsgZGVmYXVs dCBgYEZDOkZGOjdGOkZDOkZGOkZGOkZGOkZGOkZGOjFGYGApCisrOkV4YW1wbGUgU2hvdyBjdXJy ZW50IGNoYW5uZWwgbWFwOgorKwl8ICoqPiBjaGFubmVsX21hcCoqCisrOkV4YW1wbGUgU2V0IGEg Y3VzdG9tIGNoYW5uZWwgbWFwIChhbGwgZW5hYmxlZCk6CisrCXwgKio+IGNoYW5uZWxfbWFwIEZG OkZGOkZGOkZGOkZGOkZGOkZGOkZGOkZGOkZGKioKKysKKytjaGFubmVsX21hcF9yZXBldGl0aW9u CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytHZXQvc2V0IHRoZSBudW1iZXIgb2YgY29u c2VjdXRpdmUgcmVwZXRpdGlvbnMgb2YgdGhlIGNoYW5uZWwgbWFwLgorKworKzpVc2FnZTogKio+ IGNoYW5uZWxfbWFwX3JlcGV0aXRpb24gW3ZhbHVlXSoqCisrOlt2YWx1ZV06IFJlcGV0aXRpb24g Y291bnQgKG9wdGlvbmFsLCBzaG93cyBjdXJyZW50IGlmIG9taXR0ZWQ7CisrICAgICAgICAgIGRl ZmF1bHQgYGAxYGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50IHZhbHVlOgorKwl8ICoqPiBjaGFu bmVsX21hcF9yZXBldGl0aW9uKioKKys6RXhhbXBsZSBSZXBlYXQgdGhlIGNoYW5uZWwgbWFwIDMg dGltZXM6CisrCXwgKio+IGNoYW5uZWxfbWFwX3JlcGV0aXRpb24gMyoqCisrCisrY2hhbm5lbF9z ZWxlY3Rpb25fdHlwZQorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrR2V0L3NldCB0aGUg Q1MgY2hhbm5lbCBzZWxlY3Rpb24gYWxnb3JpdGhtLgorKworKzpVc2FnZTogKio+IGNoYW5uZWxf c2VsZWN0aW9uX3R5cGUgW3ZhbHVlXSoqCisrOlt2YWx1ZV06IENoYW5uZWwgc2VsZWN0aW9uIGFs Z29yaXRobSAob3B0aW9uYWwsIHNob3dzIGN1cnJlbnQgaWYKKysgICAgICAgICAgb21pdHRlZDsg ZGVmYXVsdCBgYDBgYCkKKys6RXhhbXBsZSBTaG93IGN1cnJlbnQgdmFsdWU6CisrCXwgKio+IGNo YW5uZWxfc2VsZWN0aW9uX3R5cGUqKgorKzpFeGFtcGxlIFNlbGVjdCBhbGdvcml0aG0gMToKKysJ fCAqKj4gY2hhbm5lbF9zZWxlY3Rpb25fdHlwZSAxKioKKysKKytjaGFubmVsX3NoYXBlCisrLS0t LS0tLS0tLS0tLQorKworK0dldC9zZXQgdGhlIHNoYXBlIHVzZWQgaW4gdGhlIGNoYW5uZWwgc2Vs ZWN0aW9uIGFsZ29yaXRobS4KKysKKys6VXNhZ2U6ICoqPiBjaGFubmVsX3NoYXBlIFt2YWx1ZV0q KgorKzpbdmFsdWVdOiBDaGFubmVsIHNoYXBlIChvcHRpb25hbCwgc2hvd3MgY3VycmVudCBpZiBv bWl0dGVkOyBkZWZhdWx0CisrICAgICAgICAgIGBgMGBgKQorKzpFeGFtcGxlIFNob3cgY3VycmVu dCB2YWx1ZToKKysJfCAqKj4gY2hhbm5lbF9zaGFwZSoqCisrOkV4YW1wbGUgU2V0IGNoYW5uZWwg c2hhcGUgdG8gMToKKysJfCAqKj4gY2hhbm5lbF9zaGFwZSAxKioKKysKKytjaGFubmVsX2p1bXAK KystLS0tLS0tLS0tLS0KKysKKytHZXQvc2V0IHRoZSBjaGFubmVsIGp1bXAgc2l6ZS4KKysKKys6 VXNhZ2U6ICoqPiBjaGFubmVsX2p1bXAgW3ZhbHVlXSoqCisrOlt2YWx1ZV06IENoYW5uZWwganVt cCBzaXplIChvcHRpb25hbCwgc2hvd3MgY3VycmVudCBpZiBvbWl0dGVkOworKyAgICAgICAgICBk ZWZhdWx0IGBgMmBgKQorKzpFeGFtcGxlIFNob3cgY3VycmVudCB2YWx1ZToKKysJfCAqKj4gY2hh bm5lbF9qdW1wKioKKys6RXhhbXBsZSBTZXQgY2hhbm5lbCBqdW1wIHRvIDQ6CisrCXwgKio+IGNo YW5uZWxfanVtcCA0KioKKysKKytjb21wYW5pb25fc2lnbmFsX2VuYWJsZQorKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKworK0dldC9zZXQgd2hldGhlciB0aGUgY29tcGFuaW9uIHNpZ25hbCBp cyB0cmFuc21pdHRlZC4KKysKKys6VXNhZ2U6ICoqPiBjb21wYW5pb25fc2lnbmFsX2VuYWJsZSBb MHwxXSoqCisrOlswfDFdOiBgYDFgYCB0byB0cmFuc21pdCBjb21wYW5pb24gc2lnbmFsLCBgYDBg YCB0byBkaXNhYmxlIChvcHRpb25hbCwKKysgICAgICAgIHNob3dzIGN1cnJlbnQgaWYgb21pdHRl ZDsgZGVmYXVsdCBgYDBgYCkKKys6RXhhbXBsZSBTaG93IGN1cnJlbnQgdmFsdWU6CisrCXwgKio+ IGNvbXBhbmlvbl9zaWduYWxfZW5hYmxlKioKKys6RXhhbXBsZSBFbmFibGUgdGhlIGNvbXBhbmlv biBzaWduYWw6CisrCXwgKio+IGNvbXBhbmlvbl9zaWduYWxfZW5hYmxlIDEqKgorKworK21heF9w cm9jZWR1cmVfZHVyYXRpb24KKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK0dldC9zZXQg dGhlIG1heGltdW0gZHVyYXRpb24gb2Ygb25lIENTIG1lYXN1cmVtZW50IHByb2NlZHVyZS4KKysK Kys6VXNhZ2U6ICoqPiBtYXhfcHJvY2VkdXJlX2R1cmF0aW9uIFt2YWx1ZV0qKgorKzpbdmFsdWVd OiBNYXhpbXVtIHByb2NlZHVyZSBkdXJhdGlvbiAob3B0aW9uYWwsIHNob3dzIGN1cnJlbnQgaWYK KysgICAgICAgICAgb21pdHRlZDsgZGVmYXVsdCBgYDE2MDBgYCkKKys6RXhhbXBsZSBTaG93IGN1 cnJlbnQgdmFsdWU6CisrCXwgKio+IG1heF9wcm9jZWR1cmVfZHVyYXRpb24qKgorKzpFeGFtcGxl IFNldCBtYXggcHJvY2VkdXJlIGR1cmF0aW9uIHRvIDgwMDoKKysJfCAqKj4gbWF4X3Byb2NlZHVy ZV9kdXJhdGlvbiA4MDAqKgorKworK21pbl9wZXJpb2RfYmV0d2Vlbl9wcm9jZWR1cmVzCisrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK0dldC9zZXQgdGhlIG1pbmltdW0gdGlt ZSBiZXR3ZWVuIGNvbnNlY3V0aXZlIHByb2NlZHVyZXMuCisrCisrOlVzYWdlOiAqKj4gbWluX3Bl cmlvZF9iZXR3ZWVuX3Byb2NlZHVyZXMgW3ZhbHVlXSoqCisrOlt2YWx1ZV06IE1pbmltdW0gcGVy aW9kIChvcHRpb25hbCwgc2hvd3MgY3VycmVudCBpZiBvbWl0dGVkOyBkZWZhdWx0CisrICAgICAg ICAgIGBgMzBgYCkKKys6RXhhbXBsZSBTaG93IGN1cnJlbnQgdmFsdWU6CisrCXwgKio+IG1pbl9w ZXJpb2RfYmV0d2Vlbl9wcm9jZWR1cmVzKioKKys6RXhhbXBsZSBTZXQgbWluaW11bSBwZXJpb2Qg dG8gNTA6CisrCXwgKio+IG1pbl9wZXJpb2RfYmV0d2Vlbl9wcm9jZWR1cmVzIDUwKioKKysKKytt YXhfcGVyaW9kX2JldHdlZW5fcHJvY2VkdXJlcworKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysKKytHZXQvc2V0IHRoZSBtYXhpbXVtIHRpbWUgYmV0d2VlbiBjb25zZWN1dGl2ZSBw cm9jZWR1cmVzLgorKworKzpVc2FnZTogKio+IG1heF9wZXJpb2RfYmV0d2Vlbl9wcm9jZWR1cmVz IFt2YWx1ZV0qKgorKzpbdmFsdWVdOiBNYXhpbXVtIHBlcmlvZCAob3B0aW9uYWwsIHNob3dzIGN1 cnJlbnQgaWYgb21pdHRlZDsgZGVmYXVsdAorKyAgICAgICAgICBgYDE1MGBgKQorKzpFeGFtcGxl IFNob3cgY3VycmVudCB2YWx1ZToKKysJfCAqKj4gbWF4X3BlcmlvZF9iZXR3ZWVuX3Byb2NlZHVy ZXMqKgorKzpFeGFtcGxlIFNldCBtYXhpbXVtIHBlcmlvZCB0byAyMDA6CisrCXwgKio+IG1heF9w ZXJpb2RfYmV0d2Vlbl9wcm9jZWR1cmVzIDIwMCoqCisrCisrbWF4X3Byb2NlZHVyZV9jb3VudAor Ky0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrR2V0L3NldCB0aGUgbWF4aW11bSBudW1iZXIgb2Yg cHJvY2VkdXJlcy4KKysKKys6VXNhZ2U6ICoqPiBtYXhfcHJvY2VkdXJlX2NvdW50IFt2YWx1ZV0q KgorKzpbdmFsdWVdOiBNYXggcHJvY2VkdXJlIGNvdW50OyBgYDBgYCA9IG5vIGxpbWl0IChvcHRp b25hbCwgc2hvd3MKKysgICAgICAgICAgY3VycmVudCBpZiBvbWl0dGVkOyBkZWZhdWx0IGBgMGBg KQorKzpFeGFtcGxlIFNob3cgY3VycmVudCB2YWx1ZToKKysJfCAqKj4gbWF4X3Byb2NlZHVyZV9j b3VudCoqCisrOkV4YW1wbGUgTGltaXQgdGhlIHByb2NlZHVyZSBjb3VudCB0byAxMDA6CisrCXwg Kio+IG1heF9wcm9jZWR1cmVfY291bnQgMTAwKioKKysKKyttaW5fc3ViX2V2ZW50X2xlbgorKy0t LS0tLS0tLS0tLS0tLS0tLQorKworK0dldC9zZXQgdGhlIG1pbmltdW0gQ1Mgc3ViZXZlbnQgbGVu Z3RoLgorKworKzpVc2FnZTogKio+IG1pbl9zdWJfZXZlbnRfbGVuIFtiMDpiMTpiMl0qKgorKzpb YjA6YjE6YjJdOiAzLWJ5dGUgTEUgdmFsdWUsIGNvbG9uLXNlcGFyYXRlZCBoZXggKG9wdGlvbmFs LCBzaG93cworKyAgICAgICAgICAgICBjdXJyZW50IGlmIG9taXR0ZWQ7IGRlZmF1bHQgYGAwMDoy MDowMGBgKQorKzpFeGFtcGxlIFNob3cgY3VycmVudCB2YWx1ZToKKysJfCAqKj4gbWluX3N1Yl9l dmVudF9sZW4qKgorKzpFeGFtcGxlIFNldCBtaW5pbXVtIHN1YmV2ZW50IGxlbmd0aDoKKysJfCAq Kj4gbWluX3N1Yl9ldmVudF9sZW4gMDA6MTA6MDAqKgorKworK21heF9zdWJfZXZlbnRfbGVuCisr LS0tLS0tLS0tLS0tLS0tLS0tCisrCisrR2V0L3NldCB0aGUgbWF4aW11bSBDUyBzdWJldmVudCBs ZW5ndGguCisrCisrOlVzYWdlOiAqKj4gbWF4X3N1Yl9ldmVudF9sZW4gW2IwOmIxOmIyXSoqCisr OltiMDpiMTpiMl06IDMtYnl0ZSBMRSB2YWx1ZSwgY29sb24tc2VwYXJhdGVkIGhleCAob3B0aW9u YWwsIHNob3dzCisrICAgICAgICAgICAgIGN1cnJlbnQgaWYgb21pdHRlZDsgZGVmYXVsdCBgYDAz OjIwOjAwYGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50IHZhbHVlOgorKwl8ICoqPiBtYXhfc3Vi X2V2ZW50X2xlbioqCisrOkV4YW1wbGUgU2V0IG1heGltdW0gc3ViZXZlbnQgbGVuZ3RoOgorKwl8 ICoqPiBtYXhfc3ViX2V2ZW50X2xlbiAwNDoyMDowMCoqCisrCisrdG9uZV9hbnRlbm5hX2NvbmZp Z19zZWxlY3Rpb24KKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrR2V0L3Nl dCB0aGUgYW50ZW5uYSBjb25maWd1cmF0aW9uIGZvciBDUyB0b25lIGV4Y2hhbmdlcy4KKysKKys6 VXNhZ2U6ICoqPiB0b25lX2FudGVubmFfY29uZmlnX3NlbGVjdGlvbiBbdmFsdWVdKioKKys6W3Zh bHVlXTogQW50ZW5uYSBjb25maWcgc2VsZWN0aW9uIChvcHRpb25hbCwgc2hvd3MgY3VycmVudCBp ZgorKyAgICAgICAgICBvbWl0dGVkOyBkZWZhdWx0IGBgMHgwN2BgKQorKzpFeGFtcGxlIFNob3cg Y3VycmVudCB2YWx1ZToKKysJfCAqKj4gdG9uZV9hbnRlbm5hX2NvbmZpZ19zZWxlY3Rpb24qKgor KzpFeGFtcGxlIFNldCBhbnRlbm5hIGNvbmZpZyB0byAweDAxOgorKwl8ICoqPiB0b25lX2FudGVu bmFfY29uZmlnX3NlbGVjdGlvbiAweDAxKioKKysKKytwaHkKKystLS0KKysKKytHZXQvc2V0IHRo ZSBQSFkgdXNlZCBmb3IgQ1MgcHJvY2VkdXJlcy4KKysKKys6VXNhZ2U6ICoqPiBwaHkgWzB4MDF8 MHgwMl0qKgorKzpbMHgwMXwweDAyXTogYGAweDAxYGAgTEUgMU0sIGBgMHgwMmBgIExFIDJNIChv cHRpb25hbCwgc2hvd3MgY3VycmVudAorKyAgICAgICAgICAgICAgaWYgb21pdHRlZDsgZGVmYXVs dCBgYDB4MDFgYCkKKys6RXhhbXBsZSBTaG93IGN1cnJlbnQgcHJvY2VkdXJlIFBIWToKKysJfCAq Kj4gcGh5KioKKys6RXhhbXBsZSBTZXQgQ1MgcHJvY2VkdXJlIFBIWSB0byBMRSAyTToKKysJfCAq Kj4gcGh5IDB4MDIqKgorKworK3R4X3Bvd2VyX2RlbHRhCisrLS0tLS0tLS0tLS0tLS0KKysKKytH ZXQvc2V0IHRoZSByZW1vdGUgdnMgbG9jYWwgVFggcG93ZXIgZGVsdGEuCisrCisrOlVzYWdlOiAq Kj4gdHhfcG93ZXJfZGVsdGEgW3ZhbHVlXSoqCisrOlt2YWx1ZV06IFRYIHBvd2VyIGRlbHRhOyBg YDB4ODBgYCA9IG5vdCBhcHBsaWNhYmxlIChvcHRpb25hbCwgc2hvd3MKKysgICAgICAgICAgY3Vy cmVudCBpZiBvbWl0dGVkOyBkZWZhdWx0IGBgMHg4MGBgKQorKzpFeGFtcGxlIFNob3cgY3VycmVu dCB2YWx1ZToKKysJfCAqKj4gdHhfcG93ZXJfZGVsdGEqKgorKzpFeGFtcGxlIFNldCBUWCBwb3dl ciBkZWx0YSB0byAweDA1OgorKwl8ICoqPiB0eF9wb3dlcl9kZWx0YSAweDA1KioKKysKKytwcmVm ZXJyZWRfcGVlcl9hbnRlbm5hCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytHZXQvc2V0 IHRoZSBwcmVmZXJyZWQgYW50ZW5uYSBmb3IgdGhlIHBlZXIgZGV2aWNlLgorKworKzpVc2FnZTog Kio+IHByZWZlcnJlZF9wZWVyX2FudGVubmEgW3ZhbHVlXSoqCisrOlt2YWx1ZV06IFByZWZlcnJl ZCBwZWVyIGFudGVubmEgKG9wdGlvbmFsLCBzaG93cyBjdXJyZW50IGlmIG9taXR0ZWQ7CisrICAg ICAgICAgIGRlZmF1bHQgYGAweDAzYGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50IHZhbHVlOgor Kwl8ICoqPiBwcmVmZXJyZWRfcGVlcl9hbnRlbm5hKioKKys6RXhhbXBsZSBQcmVmZXIgYW50ZW5u YSAxIG9uIHRoZSBwZWVyOgorKwl8ICoqPiBwcmVmZXJyZWRfcGVlcl9hbnRlbm5hIDB4MDEqKgor KworK3Nucl9jb250cm9sX2luaXRpYXRvcgorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytH ZXQvc2V0IHRoZSBTTlIgY29udHJvbCBmb3IgdGhlIGluaXRpYXRvci4KKysKKys6VXNhZ2U6ICoq PiBzbnJfY29udHJvbF9pbml0aWF0b3IgW3ZhbHVlXSoqCisrOlt2YWx1ZV06IFNOUiBjb250cm9s OyBgYDB4RkZgYCA9IG5vIHByZWZlcmVuY2UgKG9wdGlvbmFsLCBzaG93cworKyAgICAgICAgICBj dXJyZW50IGlmIG9taXR0ZWQ7IGRlZmF1bHQgYGAweEZGYGApCisrOkV4YW1wbGUgU2hvdyBjdXJy ZW50IHZhbHVlOgorKwl8ICoqPiBzbnJfY29udHJvbF9pbml0aWF0b3IqKgorKzpFeGFtcGxlIFBy ZWZlciBoaWdoIFNOUiBvbiB0aGUgaW5pdGlhdG9yOgorKwl8ICoqPiBzbnJfY29udHJvbF9pbml0 aWF0b3IgMHgwMSoqCisrCisrc25yX2NvbnRyb2xfcmVmbGVjdG9yCisrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKworK0dldC9zZXQgdGhlIFNOUiBjb250cm9sIGZvciB0aGUgcmVmbGVjdG9yLgor KworKzpVc2FnZTogKio+IHNucl9jb250cm9sX3JlZmxlY3RvciBbdmFsdWVdKioKKys6W3ZhbHVl XTogU05SIGNvbnRyb2w7IGBgMHhGRmBgID0gbm8gcHJlZmVyZW5jZSAob3B0aW9uYWwsIHNob3dz CisrICAgICAgICAgIGN1cnJlbnQgaWYgb21pdHRlZDsgZGVmYXVsdCBgYDB4RkZgYCkKKys6RXhh bXBsZSBTaG93IGN1cnJlbnQgdmFsdWU6CisrCXwgKio+IHNucl9jb250cm9sX3JlZmxlY3Rvcioq CisrOkV4YW1wbGUgUHJlZmVyIGhpZ2ggU05SIG9uIHRoZSByZWZsZWN0b3I6CisrCXwgKio+IHNu cl9jb250cm9sX3JlZmxlY3RvciAweDAxKioKKys6RXhhbXBsZSBQcmVmZXIgaGlnaCBTTlIgb24g Ym90aCByb2xlczoKKysJfCAqKj4gc25yX2NvbnRyb2xfaW5pdGlhdG9yIDB4MDEqKgorKwl8ICoq PiBzbnJfY29udHJvbF9yZWZsZWN0b3IgMHgwMSoqCisrCisrUkVTT1VSQ0VTCisrPT09PT09PT09 CisrCisraHR0cDovL3d3dy5ibHVlei5vcmcKKysKKytSRVBPUlRJTkcgQlVHUworKz09PT09PT09 PT09PT09CisrCisrbGludXgtYmx1ZXRvb3RoQHZnZXIua2VybmVsLm9yZworLS0gCisyLjU0LjAK KwoKZGlmZiAtLWdpdCBhL2JsdWV6LnNwZWMgYi9ibHVlei5zcGVjCmluZGV4IDk2NDM3ZjcuLjVh YTBhZDUgMTAwNjQ0Ci0tLSBhL2JsdWV6LnNwZWMKKysrIGIvYmx1ZXouc3BlYwpAQCAtNiwxNSAr NiwxNSBAQAogCiBOYW1lOiAgICBibHVlegogVmVyc2lvbjogNS44NwotUmVsZWFzZTogMyV7P2Rp c3R9CitSZWxlYXNlOiA0JXs/ZGlzdH0KIFN1bW1hcnk6IEJsdWV0b290aCB1dGlsaXRpZXMKIExp Y2Vuc2U6IEdQTC0yLjAtb3ItbGF0ZXIKIFVSTDogICAgIGh0dHA6Ly93d3cuYmx1ZXoub3JnLwog CiBTb3VyY2UwOiBodHRwczovL3d3dy5rZXJuZWwub3JnL3B1Yi9saW51eC9ibHVldG9vdGgvJXtu YW1lfS0le3ZlcnNpb259LnRhci54egogCi0jIGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3Nj bS9ibHVldG9vdGgvYmx1ZXouZ2l0L2NvbW1pdC8/aWQ9NWJjNmFhNzllNTM3MDBkNTZmYzFmOWY5 MzY0NTczYmE0Yzc4ZGE2NQotUGF0Y2gxOiAwMDAxLWFkYXB0ZXItRml4LWNyYXNoLW9uLWRldl9k aXNjb25uZWN0ZWQucGF0Y2gKKyMgZ2l0IGZvcm1hdC1wYXRjaCAtLXN0ZG91dCA1Ljg3Li4uMzBk YjY2ZGM5NzFiZDFjZDk1ZDRhN2IwZWVhMjk2MzY3YWI2NWIzYgorUGF0Y2gxOiA1Ljg3LWJ1Zy1m aXhlcy0xLnBhdGNoCiAKIEJ1aWxkUmVxdWlyZXM6IGRidXMtZGV2ZWwgPj0gMS42CiBCdWlsZFJl cXVpcmVzOiBnbGliMi1kZXZlbApAQCAtMzQwLDYgKzM0MCw5IEBAIGluc3RhbGwgZW11bGF0b3Iv YnR2aXJ0ICR7UlBNX0JVSUxEX1JPT1R9LyV7X2xpYmV4ZWNkaXJ9L2JsdWV0b290aC8KICV7X3Vz ZXJ1bml0ZGlyfS9vYmV4LnNlcnZpY2UKIAogJWNoYW5nZWxvZworKiBGcmkgSnVsIDE3IDIwMjYg QmFzdGllbiBOb2NlcmEgPGJub2NlcmFAcmVkaGF0LmNvbT4gLSA1Ljg3LTQKKy0gVXBkYXRlIHRv IGxhdGVzdCB1cHN0cmVhbSBIRUFEIHRvIGZpeCBhIG51bWJlciBvZiBwb3NzaWJsZSBjcmFzaGVz CisKICogV2VkIEp1bCAxNSAyMDI2IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdA ZmVkb3JhcHJvamVjdC5vcmc+IC0gNS44Ny0zCiAtIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3Jh cHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDVfTWFzc19SZWJ1aWxkCiAK