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] f43: Update to latest upstream HEAD to fix a number of possible crashes Date: Fri, 17 Jul 2026 12:29:46 GMT Message-ID: <178429138636.1.1830937039761259664.rpms-bluez-0bb713b6503e@fedoraproject.org> List-ID: X-Git-Repo: rpms/bluez X-Git-Branch: f43 X-Git-Rev: 0bb713b6503eb7e8bc237cf2aa18772b5aa5222c QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYmx1ZXoKQnJhbmNo IDogZjQzCkNvbW1pdCA6IDBiYjcxM2I2NTAzZWI3ZThiYzIzN2NmMmFhMTg3NzJiNWFhNTIyMmMK QXV0aG9yIDogQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgpEYXRlICAgOiAyMDI2 LTA3LTE3VDE0OjI5OjM0KzAyOjAwClN0YXRzICA6ICsyMzgzLy04OSBpbiAzIGZpbGUocykKVVJM ICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9ibHVlei9jLzBiYjcxM2I2 NTAzZWI3ZThiYzIzN2NmMmFhMTg3NzJiNWFhNTIyMmM/YnJhbmNoPWY0MwoKTG9nOgpVcGRhdGUg dG8gbGF0ZXN0IHVwc3RyZWFtIEhFQUQgdG8gZml4IGEgbnVtYmVyIG9mIHBvc3NpYmxlIGNyYXNo ZXMKCi0tLQpkaWZmIC0tZ2l0IGEvMDAwMS1hZGFwdGVyLUZpeC1jcmFzaC1vbi1kZXZfZGlzY29u bmVjdGVkLnBhdGNoIGIvMDAwMS1hZGFwdGVyLUZpeC1jcmFzaC1vbi1kZXZfZGlzY29ubmVjdGVk LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzIzYzQxLi4wMDAwMDAwCi0t LSBhLzAwMDEtYWRhcHRlci1GaXgtY3Jhc2gtb24tZGV2X2Rpc2Nvbm5lY3RlZC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLUZyb20gNWJjNmFhNzllNTM3MDBkNTZmYzFmOWY5 MzY0NTczYmE0Yzc4ZGE2NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEx1aXogQXVn dXN0byB2b24gRGVudHogPGx1aXoudm9uLmRlbnR6QGludGVsLmNvbT4KLURhdGU6IFRodSwgMiBK dWwgMjAyNiAxMTo0Mzo1MiAtMDQwMAotU3ViamVjdDogW1BBVENIXSBhZGFwdGVyOiBGaXggY3Jh c2ggb24gZGV2X2Rpc2Nvbm5lY3RlZAotCi1Db21taXQgNWQ4MzZmMWM2OTdjICgiYWRhcHRlcjog Rml4IGZhaWxlZCBib25kaW5nIGF0dGVtcHQgYWZ0ZXIgTEUKLWxpbmsgZGlzY29ubmVjdGlvbiIp IGludHJvZHVjZXMgYSByZWdyZXNzaW9uIHNpbmNlIGl0IGF0dGVtcHRzIHRvCi1jYWxsIGRldmlj ZV9pc19jb25uZWN0ZWQgYWZ0ZXIgYWRhcHRlcl9yZW1vdmVfY29ubmVjdGlvbiB3aGljaCBtYXkK LWZyZWUgdGhlIGRldmljZSBjYXVzaW5nIHRoZSBmb2xsb3dpbmcgYmFja3RyYWNlOgotCi0gICAg IzAgMHg1Y2Q2ZTM4NDI2MmYgaW4gYnRkX2RldmljZV9iZWFyZXJfaXNfY29ubmVjdGVkIHNyYy9k ZXZpY2UuYzozNzU0Ci0gICAgIzEgMHg1Y2Q2ZTM4NDI2NmYgaW4gYnRkX2RldmljZV9pc19jb25u ZWN0ZWQgc3JjL2RldmljZS5jOjM3NDUKLSAgICAjMiAweDVjZDZlMzdmODYxNCBpbiBkZXZfZGlz Y29ubmVjdGVkIHNyYy9hZGFwdGVyLmM6ODYyNgotCi1GaXhlczogaHR0cHM6Ly9naXRodWIuY29t L2JsdWV6L2JsdWV6L2lzc3Vlcy8yMjIxCi0tLS0KLSBzcmMvYWRhcHRlci5jIHwgMjUgKysrKysr KysrKysrKysrKysrKysrLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2FkYXB0ZXIuYyBiL3NyYy9hZGFwdGVy LmMKLWluZGV4IDUzOGY2M2UwYTE1My4uMjEwMjI1MjQzZjAwIDEwMDY0NAotLS0tIGEvc3JjL2Fk YXB0ZXIuYwotKysrIGIvc3JjL2FkYXB0ZXIuYwotQEAgLTc2MTIsMTIgKzc2MTIsMTYgQEAgc3Ry dWN0IGFnZW50ICphZGFwdGVyX2dldF9hZ2VudChzdHJ1Y3QgYnRkX2FkYXB0ZXIgKmFkYXB0ZXIp Ci0gc3RhdGljIHZvaWQgYWRhcHRlcl9yZW1vdmVfY29ubmVjdGlvbihzdHJ1Y3QgYnRkX2FkYXB0 ZXIgKmFkYXB0ZXIsCi0gCQkJCQkJc3RydWN0IGJ0ZF9kZXZpY2UgKmRldmljZSwKLSAJCQkJCQl1 aW50OF90IGJkYWRkcl90eXBlLAotLQkJCQkJCXVpbnQ4X3QgcmVhc29uKQotKwkJCQkJCXVpbnQ4 X3QgcmVhc29uLAotKwkJCQkJCWJvb2wgKnJlbW92ZWQpCi0gewotIAlib29sIHJlbW92ZV9kZXZp Y2UgPSBmYWxzZTsKLSAKLSAJREJHKCIiKTsKLSAKLSsJaWYgKHJlbW92ZWQpCi0rCQkqcmVtb3Zl ZCA9IGZhbHNlOwotKwotIAlpZiAoIWdfc2xpc3RfZmluZChhZGFwdGVyLT5jb25uZWN0aW9ucywg ZGV2aWNlKSkgewotIAkJYnRkX2Vycm9yKGFkYXB0ZXItPmRldl9pZCwgIk5vIG1hdGNoaW5nIGNv bm5lY3Rpb24gZm9yIGRldmljZSIpOwotIAkJcmV0dXJuOwotQEAgLTc2MzgsNiArNzY0Miw5IEBA IHN0YXRpYyB2b2lkIGFkYXB0ZXJfcmVtb3ZlX2Nvbm5lY3Rpb24oc3RydWN0IGJ0ZF9hZGFwdGVy ICphZGFwdGVyLAotIAotIAkJREJHKCJSZW1vdmluZyB0ZW1wb3JhcnkgZGV2aWNlICVzIiwgcGF0 aCk7Ci0gCQlidGRfYWRhcHRlcl9yZW1vdmVfZGV2aWNlKGFkYXB0ZXIsIGRldmljZSk7Ci0rCi0r CQlpZiAocmVtb3ZlZCkKLSsJCQkqcmVtb3ZlZCA9IHRydWU7Ci0gCX0KLSB9Ci0gCi1AQCAtNzY2 NSwxMCArNzY3MiwxMCBAQCBzdGF0aWMgdm9pZCBhZGFwdGVyX3N0b3Aoc3RydWN0IGJ0ZF9hZGFw dGVyICphZGFwdGVyKQotIAkJdWludDhfdCBhZGRyX3R5cGUgPSBidGRfZGV2aWNlX2dldF9iZGFk ZHJfdHlwZShkZXZpY2UpOwotIAotIAkJYWRhcHRlcl9yZW1vdmVfY29ubmVjdGlvbihhZGFwdGVy LCBkZXZpY2UsIEJEQUREUl9CUkVEUiwKLS0JCQkJCQlNR01UX0RFVl9ESVNDT05OX1VOS05PV04p OwotKwkJCQkJCU1HTVRfREVWX0RJU0NPTk5fVU5LTk9XTiwgTlVMTCk7Ci0gCQlpZiAoYWRkcl90 eXBlICE9IEJEQUREUl9CUkVEUikKLSAJCQlhZGFwdGVyX3JlbW92ZV9jb25uZWN0aW9uKGFkYXB0 ZXIsIGRldmljZSwgYWRkcl90eXBlLAotLQkJCQkJCU1HTVRfREVWX0RJU0NPTk5fVU5LTk9XTik7 Ci0rCQkJCQkJTUdNVF9ERVZfRElTQ09OTl9VTktOT1dOLCBOVUxMKTsKLSAJfQotIAotIAlnX2Ri dXNfZW1pdF9wcm9wZXJ0eV9jaGFuZ2VkKGRidXNfY29ubiwgYWRhcHRlci0+cGF0aCwKLUBAIC04 NjE4LDcgKzg2MjUsMTcgQEAgc3RhdGljIHZvaWQgZGV2X2Rpc2Nvbm5lY3RlZChzdHJ1Y3QgYnRk X2FkYXB0ZXIgKmFkYXB0ZXIsCi0gCi0gCWRldmljZSA9IGJ0ZF9hZGFwdGVyX2ZpbmRfZGV2aWNl KGFkYXB0ZXIsICZhZGRyLT5iZGFkZHIsIGFkZHItPnR5cGUpOwotIAlpZiAoZGV2aWNlKSB7Ci0t CQlhZGFwdGVyX3JlbW92ZV9jb25uZWN0aW9uKGFkYXB0ZXIsIGRldmljZSwgYWRkci0+dHlwZSwg cmVhc29uKTsKLSsJCWJvb2wgcmVtb3ZlZDsKLSsKLSsJCWFkYXB0ZXJfcmVtb3ZlX2Nvbm5lY3Rp b24oYWRhcHRlciwgZGV2aWNlLCBhZGRyLT50eXBlLCByZWFzb24sCi0rCQkJCQkJJnJlbW92ZWQp OwotKwkJLyogTm8gbmVlZCB0byBjb250aW51ZSBpZiBkZXZpY2Ugd2FzIHJlbW92ZWQgZnJvbSB0 aGUgYWRhcHRlciwKLSsJCSAqIGFzIGl0IHdpbGwgYmUgZnJlZWQgYW5kIHRoZSBkaXNjb25uZWN0 IG5vdGlmeSB3aWxsIGJlIGNhbGxlZAotKwkJICogaW4gdGhlIGRldmljZSBmcmVlIGNhbGxiYWNr LgotKwkJICovCi0rCQlpZiAocmVtb3ZlZCkKLSsJCQlyZXR1cm47Ci0rCi0gCQlkaXNjb25uZWN0 X25vdGlmeShkZXZpY2UsIHJlYXNvbik7Ci0gCX0KLSAKLS0tIAotMi41NC4wCi0KCmRpZmYgLS1n aXQgYS81Ljg3LWJ1Zy1maXhlcy0xLnBhdGNoIGIvNS44Ny1idWctZml4ZXMtMS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTE1NzgzCi0tLSAvZGV2L251bGwKKysr IGIvNS44Ny1idWctZml4ZXMtMS5wYXRjaApAQCAtMCwwICsxLDIzNzcgQEAKK0Zyb20gNWJjNmFh NzllNTM3MDBkNTZmYzFmOWY5MzY0NTczYmE0Yzc4ZGE2NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IEx1aXogQXVndXN0byB2b24gRGVudHogPGx1aXoudm9uLmRlbnR6QGludGVsLmNv bT4KK0RhdGU6IFRodSwgMiBKdWwgMjAyNiAxMTo0Mzo1MiAtMDQwMAorU3ViamVjdDogW1BBVENI IDAxLzE5XSBhZGFwdGVyOiBGaXggY3Jhc2ggb24gZGV2X2Rpc2Nvbm5lY3RlZAorCitDb21taXQg NWQ4MzZmMWM2OTdjICgiYWRhcHRlcjogRml4IGZhaWxlZCBib25kaW5nIGF0dGVtcHQgYWZ0ZXIg TEUKK2xpbmsgZGlzY29ubmVjdGlvbiIpIGludHJvZHVjZXMgYSByZWdyZXNzaW9uIHNpbmNlIGl0 IGF0dGVtcHRzIHRvCitjYWxsIGRldmljZV9pc19jb25uZWN0ZWQgYWZ0ZXIgYWRhcHRlcl9yZW1v dmVfY29ubmVjdGlvbiB3aGljaCBtYXkKK2ZyZWUgdGhlIGRldmljZSBjYXVzaW5nIHRoZSBmb2xs b3dpbmcgYmFja3RyYWNlOgorCisgICAgIzAgMHg1Y2Q2ZTM4NDI2MmYgaW4gYnRkX2RldmljZV9i ZWFyZXJfaXNfY29ubmVjdGVkIHNyYy9kZXZpY2UuYzozNzU0CisgICAgIzEgMHg1Y2Q2ZTM4NDI2 NmYgaW4gYnRkX2RldmljZV9pc19jb25uZWN0ZWQgc3JjL2RldmljZS5jOjM3NDUKKyAgICAjMiAw eDVjZDZlMzdmODYxNCBpbiBkZXZfZGlzY29ubmVjdGVkIHNyYy9hZGFwdGVyLmM6ODYyNgorCitG aXhlczogaHR0cHM6Ly9naXRodWIuY29tL2JsdWV6L2JsdWV6L2lzc3Vlcy8yMjIxCistLS0KKyBz cmMvYWRhcHRlci5jIHwgMjUgKysrKysrKysrKysrKysrKysrKysrLS0tLQorIDEgZmlsZSBjaGFu Z2VkLCAyMSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3Jj L2FkYXB0ZXIuYyBiL3NyYy9hZGFwdGVyLmMKK2luZGV4IDUzOGY2M2UwYTE1My4uMjEwMjI1MjQz ZjAwIDEwMDY0NAorLS0tIGEvc3JjL2FkYXB0ZXIuYworKysrIGIvc3JjL2FkYXB0ZXIuYworQEAg LTc2MTIsMTIgKzc2MTIsMTYgQEAgc3RydWN0IGFnZW50ICphZGFwdGVyX2dldF9hZ2VudChzdHJ1 Y3QgYnRkX2FkYXB0ZXIgKmFkYXB0ZXIpCisgc3RhdGljIHZvaWQgYWRhcHRlcl9yZW1vdmVfY29u bmVjdGlvbihzdHJ1Y3QgYnRkX2FkYXB0ZXIgKmFkYXB0ZXIsCisgCQkJCQkJc3RydWN0IGJ0ZF9k ZXZpY2UgKmRldmljZSwKKyAJCQkJCQl1aW50OF90IGJkYWRkcl90eXBlLAorLQkJCQkJCXVpbnQ4 X3QgcmVhc29uKQorKwkJCQkJCXVpbnQ4X3QgcmVhc29uLAorKwkJCQkJCWJvb2wgKnJlbW92ZWQp CisgeworIAlib29sIHJlbW92ZV9kZXZpY2UgPSBmYWxzZTsKKyAKKyAJREJHKCIiKTsKKyAKKysJ aWYgKHJlbW92ZWQpCisrCQkqcmVtb3ZlZCA9IGZhbHNlOworKworIAlpZiAoIWdfc2xpc3RfZmlu ZChhZGFwdGVyLT5jb25uZWN0aW9ucywgZGV2aWNlKSkgeworIAkJYnRkX2Vycm9yKGFkYXB0ZXIt PmRldl9pZCwgIk5vIG1hdGNoaW5nIGNvbm5lY3Rpb24gZm9yIGRldmljZSIpOworIAkJcmV0dXJu OworQEAgLTc2MzgsNiArNzY0Miw5IEBAIHN0YXRpYyB2b2lkIGFkYXB0ZXJfcmVtb3ZlX2Nvbm5l Y3Rpb24oc3RydWN0IGJ0ZF9hZGFwdGVyICphZGFwdGVyLAorIAorIAkJREJHKCJSZW1vdmluZyB0 ZW1wb3JhcnkgZGV2aWNlICVzIiwgcGF0aCk7CisgCQlidGRfYWRhcHRlcl9yZW1vdmVfZGV2aWNl KGFkYXB0ZXIsIGRldmljZSk7CisrCisrCQlpZiAocmVtb3ZlZCkKKysJCQkqcmVtb3ZlZCA9IHRy dWU7CisgCX0KKyB9CisgCitAQCAtNzY2NSwxMCArNzY3MiwxMCBAQCBzdGF0aWMgdm9pZCBhZGFw dGVyX3N0b3Aoc3RydWN0IGJ0ZF9hZGFwdGVyICphZGFwdGVyKQorIAkJdWludDhfdCBhZGRyX3R5 cGUgPSBidGRfZGV2aWNlX2dldF9iZGFkZHJfdHlwZShkZXZpY2UpOworIAorIAkJYWRhcHRlcl9y ZW1vdmVfY29ubmVjdGlvbihhZGFwdGVyLCBkZXZpY2UsIEJEQUREUl9CUkVEUiwKKy0JCQkJCQlN R01UX0RFVl9ESVNDT05OX1VOS05PV04pOworKwkJCQkJCU1HTVRfREVWX0RJU0NPTk5fVU5LTk9X TiwgTlVMTCk7CisgCQlpZiAoYWRkcl90eXBlICE9IEJEQUREUl9CUkVEUikKKyAJCQlhZGFwdGVy X3JlbW92ZV9jb25uZWN0aW9uKGFkYXB0ZXIsIGRldmljZSwgYWRkcl90eXBlLAorLQkJCQkJCU1H TVRfREVWX0RJU0NPTk5fVU5LTk9XTik7CisrCQkJCQkJTUdNVF9ERVZfRElTQ09OTl9VTktOT1dO LCBOVUxMKTsKKyAJfQorIAorIAlnX2RidXNfZW1pdF9wcm9wZXJ0eV9jaGFuZ2VkKGRidXNfY29u biwgYWRhcHRlci0+cGF0aCwKK0BAIC04NjE4LDcgKzg2MjUsMTcgQEAgc3RhdGljIHZvaWQgZGV2 X2Rpc2Nvbm5lY3RlZChzdHJ1Y3QgYnRkX2FkYXB0ZXIgKmFkYXB0ZXIsCisgCisgCWRldmljZSA9 IGJ0ZF9hZGFwdGVyX2ZpbmRfZGV2aWNlKGFkYXB0ZXIsICZhZGRyLT5iZGFkZHIsIGFkZHItPnR5 cGUpOworIAlpZiAoZGV2aWNlKSB7CistCQlhZGFwdGVyX3JlbW92ZV9jb25uZWN0aW9uKGFkYXB0 ZXIsIGRldmljZSwgYWRkci0+dHlwZSwgcmVhc29uKTsKKysJCWJvb2wgcmVtb3ZlZDsKKysKKysJ CWFkYXB0ZXJfcmVtb3ZlX2Nvbm5lY3Rpb24oYWRhcHRlciwgZGV2aWNlLCBhZGRyLT50eXBlLCBy ZWFzb24sCisrCQkJCQkJJnJlbW92ZWQpOworKwkJLyogTm8gbmVlZCB0byBjb250aW51ZSBpZiBk ZXZpY2Ugd2FzIHJlbW92ZWQgZnJvbSB0aGUgYWRhcHRlciwKKysJCSAqIGFzIGl0IHdpbGwgYmUg ZnJlZWQgYW5kIHRoZSBkaXNjb25uZWN0IG5vdGlmeSB3aWxsIGJlIGNhbGxlZAorKwkJICogaW4g dGhlIGRldmljZSBmcmVlIGNhbGxiYWNrLgorKwkJICovCisrCQlpZiAocmVtb3ZlZCkKKysJCQly ZXR1cm47CisrCisgCQlkaXNjb25uZWN0X25vdGlmeShkZXZpY2UsIHJlYXNvbik7CisgCX0KKyAK Ky0tIAorMi41NC4wCisKKworRnJvbSBiODRhYTg5NDkyMTAzN2UxYjFkZTAwZDI4MmRiMmVlMjdh NGNlNjNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTHVpeiBBdWd1c3RvIHZvbiBE ZW50eiA8bHVpei52b24uZGVudHpAaW50ZWwuY29tPgorRGF0ZTogTW9uLCA2IEp1bCAyMDI2IDEw OjU5OjI4IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0ggMDIvMTldIGwydGVzdDogRml4IGNhbGxpbmcg Z2V0c29ja29wdChCVF9QSFkpCisKK2dldHNvY2tvcHQoQlRfUEhZKSBleHBlY3RlcyBhIDMyIGJp dHMgYXJndW1lbnQgbm90IGEKK3NpemVvZihzdHJ1Y3Qgc29ja2FkZHJfbDIpLgorLS0tCisgdG9v bHMvbDJ0ZXN0LmMgfCA1ICsrKystCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvdG9vbHMvbDJ0ZXN0LmMgYi90b29scy9sMnRl c3QuYworaW5kZXggYWEwNWY1MjQ3YzVlLi4wOGQyMjY5OTM2YjkgMTAwNjQ0CistLS0gYS90b29s cy9sMnRlc3QuYworKysrIGIvdG9vbHMvbDJ0ZXN0LmMKK0BAIC0zNTgsNyArMzU4LDggQEAgc3Rh dGljIGludCBwcmludF9pbmZvKGludCBzaywgc3RydWN0IGwyY2FwX29wdGlvbnMgKm9wdHMpCisg CXN0cnVjdCBzb2NrYWRkcl9sMiBhZGRyOworIAlzb2NrbGVuX3Qgb3B0bGVuOworIAlzdHJ1Y3Qg bDJjYXBfY29ubmluZm8gY29ubjsKKy0JaW50IHByaW8sIHBoeTsKKysJaW50IHByaW87CisrCXVp bnQzMl90IHBoeTsKKyAJY2hhciBiYVsxOF07CisgCisgCS8qIEdldCBjb25uZWN0aW9uIGluZm9y bWF0aW9uICovCitAQCAtNDE0LDYgKzQxNSw4IEBAIHN0YXRpYyBpbnQgcHJpbnRfaW5mbyhpbnQg c2ssIHN0cnVjdCBsMmNhcF9vcHRpb25zICpvcHRzKQorIAkJY29ubi5kZXZfY2xhc3NbMF0sIHBy aW8sIHJjdmJ1Zik7CisgCisgCisrCW9wdGxlbiA9IHNpemVvZihwaHkpOworKworIAlpZiAoIWdl dHNvY2tvcHQoc2ssIFNPTF9CTFVFVE9PVEgsIEJUX1BIWSwgJnBoeSwgJm9wdGxlbikpIHsKKyAJ CXN5c2xvZyhMT0dfSU5GTywgIlN1cHBvcnRlZCBQSFk6IDB4JTA4eCIsIHBoeSk7CisgCQlwcmlu dF9iaXRmaWVsZCgyLCBwaHksIHBoeV90YWJsZSk7CistLSAKKzIuNTQuMAorCisKK0Zyb20gM2Yy ODNjOGUwYWIzYmFkMTdlZThjMTNmYTBkY2YyNTFhMTZlNGUyNSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IHJhZ2hhdmVuZHJhIDxyYWdoYXZlbmRyYS5yYW9AY29sbGFib3JhLmNvbT4K K0RhdGU6IFRodSwgMiBKdWwgMjAyNiAxODozOTowNCArMDUzMAorU3ViamVjdDogW1BBVENIIDAz LzE5XSBzaGFyZWQvYmFwOiBWYWxpZGF0ZSBjb2RlYyBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMK KworVGhpcyBpcyByZXF1aXJlZCBmb3IgUFRTIHRlc3QgQVNDUy9TUi9TUEUvQkktMDctQworLS0t Cisgc3JjL3NoYXJlZC9iYXAuYyB8IDIyICsrKysrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUg Y2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc3JjL3NoYXJlZC9iYXAu YyBiL3NyYy9zaGFyZWQvYmFwLmMKK2luZGV4IDFmNjEyMjdmODJhNy4uNmJjMDQ0YTYzNzU4IDEw MDY0NAorLS0tIGEvc3JjL3NoYXJlZC9iYXAuYworKysrIGIvc3JjL3NoYXJlZC9iYXAuYworQEAg LTI5LDYgKzI5LDcgQEAKKyAjaW5jbHVkZSAic3JjL3NoYXJlZC9nYXR0LWNsaWVudC5oIgorICNp bmNsdWRlICJzcmMvc2hhcmVkL2JhcC5oIgorICNpbmNsdWRlICJzcmMvc2hhcmVkL2FzY3MuaCIK KysjaW5jbHVkZSAic3JjL3NoYXJlZC9sYzMuaCIKKyAjaW5jbHVkZSAic3JjL3NoYXJlZC9iYXAt ZGVidWcuaCIKKyAKKyAvKiBNYXhpbXVtIG51bWJlciBvZiBBU0UocykgKi8KK0BAIC0zMTU3LDYg KzMxNTgsNyBAQCBzdGF0aWMgdWludDhfdCBlcF9jb25maWcoc3RydWN0IGJ0X2JhcF9lbmRwb2lu dCAqZXAsIHN0cnVjdCBidF9iYXAgKmJhcCwKKyAJc3RydWN0IGlvdmVjIGNjOworIAljb25zdCBz dHJ1Y3QgcXVldWVfZW50cnkgKmU7CisgCXN0cnVjdCBidF9iYXBfY29kZWMgY29kZWM7CisrCXVp bnQ4X3QgKmx0djsKKyAKKyAJREJHKGJhcCwgImVwICVwIGlkIDB4JTAyeCBkaXIgMHglMDJ4Iiwg ZXAsIGVwLT5pZCwgZXAtPmRpcik7CisgCitAQCAtMzE5MCw2ICszMTkyLDE5IEBAIHN0YXRpYyB1 aW50OF90IGVwX2NvbmZpZyhzdHJ1Y3QgYnRfYmFwX2VuZHBvaW50ICplcCwgc3RydWN0IGJ0X2Jh cCAqYmFwLAorIAkJcmV0dXJuIDA7CisgCX0KKyAKKysJbHR2ID0gY2MuaW92X2Jhc2U7CisrCisr CWlmIChyZXEtPmNvZGVjLmlkID09IExDM19JRCAmJiBjYy5pb3ZfbGVuID09IDMgJiYKKysJCQls dHZbMF0gPT0gMHgwMiAmJgorKwkJCWx0dlsxXSA9PSBMQzNfQ09ORklHX0RVUkFUSU9OICYmCisr CQkJbHR2WzJdICE9IExDM19DT05GSUdfRFVSQVRJT05fN181ICYmCisrCQkJbHR2WzJdICE9IExD M19DT05GSUdfRFVSQVRJT05fMTApIHsKKysJCWFzY3NfYXNlX3JzcF9hZGQocnNwLCByZXEtPmFz ZSwKKysJCQkJQlRfQVNDU19SU1BfQ09ORl9JTlZBTElELAorKwkJCQlCVF9BU0NTX1JFQVNPTl9D T0RFQ19EQVRBKTsKKysJCXJldHVybiAwOworKwl9CisrCisgCXN3aXRjaCAoZXAtPmRpcikgewor IAljYXNlIEJUX0JBUF9TSU5LOgorIAkJZSA9IHF1ZXVlX2dldF9lbnRyaWVzKGJhcC0+bGRiLT5z aW5rcyk7CitAQCAtMzIwNyw2ICszMjIyLDEzIEBAIHN0YXRpYyB1aW50OF90IGVwX2NvbmZpZyhz dHJ1Y3QgYnRfYmFwX2VuZHBvaW50ICplcCwgc3RydWN0IGJ0X2JhcCAqYmFwLAorIAljb2RlYy5j aWQgPSBsZTE2X3RvX2NwdShyZXEtPmNvZGVjLmNpZCk7CisgCWNvZGVjLnZpZCA9IGxlMTZfdG9f Y3B1KHJlcS0+Y29kZWMudmlkKTsKKyAKKysJaWYgKGNvZGVjLmlkICE9IDB4ZmYgJiYgKGNvZGVj LmNpZCB8fCBjb2RlYy52aWQpKSB7CisrCQlhc2NzX2FzZV9yc3BfYWRkKHJzcCwgcmVxLT5hc2Us CisrCQkJCUJUX0FTQ1NfUlNQX0NPTkZfSU5WQUxJRCwKKysJCQkJQlRfQVNDU19SRUFTT05fQ09E RUMpOworKwkJcmV0dXJuIDA7CisrCX0KKysKKyAJZm9yICg7IGU7IGUgPSBlLT5uZXh0KSB7Cisg CQlzdHJ1Y3QgYnRfYmFwX3BhYyAqcGFjID0gZS0+ZGF0YTsKKyAKKy0tIAorMi41NC4wCisKKwor RnJvbSA1YzFjNjc5ZWMzMDRiOGFhZGFhMjg3Y2NhNTliMzg1ODlkMzM5ZTkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogcmFnaGF2ZW5kcmEgPHJhZ2hhdmVuZHJhLnJhb0Bjb2xsYWJv cmEuY29tPgorRGF0ZTogVGh1LCAyIEp1bCAyMDI2IDE4OjM5OjA1ICswNTMwCitTdWJqZWN0OiBb UEFUQ0ggMDQvMTldIHNoYXJlZC9iYXA6IFZhbGlkYXRlIHVuaWNhc3QgUW9TIGNvbmZpZ3VyYXRp b24KKworVGhpcyBpcyByZXF1aXJlZCBmb3IgUFRTIHRlc3RzIEFTQ1MvU1IvU1BFL0JJLTA4LUMg YW5kIEFTQ1MvU1IvU1BFL0JJLTEwLUMuCistLS0KKyBzcmMvc2hhcmVkL2JhcC5jIHwgMjYgKysr KysrKysrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygr KQorCitkaWZmIC0tZ2l0IGEvc3JjL3NoYXJlZC9iYXAuYyBiL3NyYy9zaGFyZWQvYmFwLmMKK2lu ZGV4IDZiYzA0NGE2Mzc1OC4uZjJiZTdjMDdiYTVkIDEwMDY0NAorLS0tIGEvc3JjL3NoYXJlZC9i YXAuYworKysrIGIvc3JjL3NoYXJlZC9iYXAuYworQEAgLTMzMTYsNiArMzMxNiwzMiBAQCBzdGF0 aWMgdWludDhfdCBlcF9xb3Moc3RydWN0IGJ0X2JhcF9lbmRwb2ludCAqZXAsIHN0cnVjdCBidF9i YXAgKmJhcCwKKyAJCXJldHVybiAwOworIAl9CisgCisrCWlmIChlcC0+c3RyZWFtLT5scGFjLT5j b2RlYy5pZCA9PSBMQzNfSUQgJiYKKysJCQlxb3MtPnVjYXN0LmlvX3Fvcy5pbnRlcnZhbCA8IDB4 MDAwMGZmKSB7CisrCQlhc2NzX2FzZV9yc3BfYWRkKHJzcCwgZXAtPmlkLAorKwkJCQlCVF9BU0NT X1JTUF9DT05GX0lOVkFMSUQsCisrCQkJCUJUX0FTQ1NfUkVBU09OX0lOVEVSVkFMKTsKKysJCXJl dHVybiAwOworKwl9CisrCisrCWlmIChxb3MtPnVjYXN0LmZyYW1pbmcgIT0gQlRfQVNDU19RT1Nf RlJBTUlOR19VTkZSQU1FRCAmJgorKwkJCXFvcy0+dWNhc3QuZnJhbWluZyAhPSBCVF9BU0NTX1FP U19GUkFNSU5HX0ZSQU1FRCkgeworKwkJYXNjc19hc2VfcnNwX2FkZChyc3AsIGVwLT5pZCwKKysJ CQkJQlRfQVNDU19SU1BfQ09ORl9JTlZBTElELAorKwkJCQlCVF9BU0NTX1JFQVNPTl9GUkFNSU5H KTsKKysJCXJldHVybiAwOworKwl9CisrCisrCWlmICghcW9zLT51Y2FzdC5pb19xb3MucGh5cyB8 fAorKwkJCShxb3MtPnVjYXN0LmlvX3Fvcy5waHlzICYgfihCVF9CQVBfQ09ORklHX1BIWV8xTSB8 CisrCQkJCQlCVF9CQVBfQ09ORklHX1BIWV8yTSB8CisrCQkJCQlCVF9CQVBfQ09ORklHX1BIWV9D T0RFQykpKSB7CisrCQlhc2NzX2FzZV9yc3BfYWRkKHJzcCwgZXAtPmlkLAorKwkJCQlCVF9BU0NT X1JTUF9DT05GX0lOVkFMSUQsCisrCQkJCUJUX0FTQ1NfUkVBU09OX1BIWSk7CisrCQlyZXR1cm4g MDsKKysJfQorKworIAlyZXR1cm4gc3RyZWFtX3FvcyhlcC0+c3RyZWFtLCBxb3MsIHJzcCk7Cisg fQorIAorLS0gCisyLjU0LjAKKworCitGcm9tIDEzYjE0ZGI5NTA4OTM4MjcwMWY1NGE0NmU2ZWYw MTIwYjY5ZDRhNjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBMdWl6IEF1Z3VzdG8g dm9uIERlbnR6IDxsdWl6LnZvbi5kZW50ekBpbnRlbC5jb20+CitEYXRlOiBUdWUsIDcgSnVsIDIw MjYgMTQ6MzQ6MzAgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSCAwNS8xOV0gc2hhcmVkL2JhcDogVXNl IHV0aWxfbHR2X2ZvcmVhY2ggdG8gcHJvY2VzcyBtZXRhZGF0YQorCitUaGlzIG1ha2VzIHVzZSBv ZiB1dGlsX2x0dl9mb3JlYWNoIHRvIHByb2Nlc3MgdGhlIG1ldGFkYXRhIGVudHJpZXMKK2luc3Rl YWQgb2YgYXR0ZW1wdGluZyB0byBpdGVyYXRlIG92ZXIgdGhlIGVudHJpZXMgbWFudWFsbHkgd2hp Y2gKK3Byb2JhYmx5IG9ubHkgd29ya3Mgd2l0aCB0aGUgZXhhY3Qgc2FtZSBvcmRlciBhcyB1c2Vk IGJ5IFBUUy4KKy0tLQorIHNyYy9zaGFyZWQvYmFwLmMgfCA4NCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNTkgaW5zZXJ0 aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvc2hhcmVkL2JhcC5j IGIvc3JjL3NoYXJlZC9iYXAuYworaW5kZXggZjJiZTdjMDdiYTVkLi5kYjZmNGYyMDQ3ODcgMTAw NjQ0CistLS0gYS9zcmMvc2hhcmVkL2JhcC5jCisrKysgYi9zcmMvc2hhcmVkL2JhcC5jCitAQCAt MzQwNCwzNSArMzQwNCw2OSBAQCBzdGF0aWMgdWludDhfdCBzdHJlYW1fZW5hYmxlKHN0cnVjdCBi dF9iYXBfc3RyZWFtICpzdHJlYW0sIHN0cnVjdCBpb3ZlYyAqbWV0YSwKKyAJcmV0dXJuIDA7Cisg fQorIAorLXN0YXRpYyBib29sIGFzY3NfbWV0YWRhdGFfcnNwKHN0cnVjdCBidF9iYXBfZW5kcG9p bnQgKmVwLCBzdHJ1Y3QgaW92ZWMgKm1ldGEsCistCQkJCQkJCXN0cnVjdCBpb3ZlYyAqcnNwKQor K3N0cnVjdCBiYXBfbWV0YWRhdGFfcHJvY2VzcyB7CisrCXN0cnVjdCBidF9iYXBfZW5kcG9pbnQg KmVwOworKwl1aW50MTZfdCBjb250ZXh0OworKwlzdHJ1Y3QgaW92ZWMgKnJzcDsKKysJdWludDhf dCBlcnI7CisrfTsKKysKKytzdGF0aWMgdm9pZCBiYXBfbWV0YWRhdGFfcHJvY2VzcyhzaXplX3Qg aSwgdWludDhfdCBsLCB1aW50OF90IHQsIHVpbnQ4X3QgKnYsCisrCQkJCQl2b2lkICp1c2VyX2Rh dGEpCisgeworLQlzdHJ1Y3QgYnRfbHR2ICpsdHY7CistCXVpbnQxNl90IHN1cHBvcnRlZF9jb250 ZXh0ID0gMDsKKysJc3RydWN0IGJhcF9tZXRhZGF0YV9wcm9jZXNzICpkYXRhID0gdXNlcl9kYXRh OworIAl1aW50MTZfdCBjb250ZXh0OworIAorKwlzd2l0Y2ggKHQpIHsKKysJY2FzZSBCQVBfTUVU QURBVEFfUFJFRl9DT05URVhUX0xUVl9UWVBFOgorKwkJYnJlYWs7CisrCWNhc2UgQkFQX01FVEFE QVRBX0NPTlRFWFRfTFRWX1RZUEU6CisrCQlpZiAobCAhPSBzaXplb2YoY29udGV4dCkpIHsKKysJ CQlhc2NzX2FzZV9yc3BfYWRkKGRhdGEtPnJzcCwgZGF0YS0+ZXAtPmlkLAorKwkJCQkJQlRfQVND U19SU1BfTUVUQURBVEFfSU5WQUxJRCwgdCk7CisrCQkJZGF0YS0+ZXJyID0gQlRfQVNDU19SU1Bf TUVUQURBVEFfSU5WQUxJRDsKKysJCQlicmVhazsKKysJCX0KKysKKysJCWNvbnRleHQgPSBnZXRf bGUxNih2KTsKKysJCWlmICghY29udGV4dCB8fCAoY29udGV4dCAmIH5kYXRhLT5jb250ZXh0KSkg eworKwkJCWFzY3NfYXNlX3JzcF9hZGQoZGF0YS0+cnNwLCBkYXRhLT5lcC0+aWQsCisrCQkJCQlC VF9BU0NTX1JTUF9NRVRBREFUQV9JTlZBTElELCB0KTsKKysJCQlkYXRhLT5lcnIgPSBCVF9BU0NT X1JTUF9NRVRBREFUQV9JTlZBTElEOworKwkJfQorKworKwkJYnJlYWs7CisrCWNhc2UgQkFQX01F VEFEQVRBX1BST0dSQU1fSU5GT19MVFZfVFlQRToKKysJY2FzZSBCQVBfTUVUQURBVEFfTEFOR1VB R0VfTFRWX1RZUEU6CisrCQlicmVhazsKKysJZGVmYXVsdDoKKysJCWFzY3NfYXNlX3JzcF9hZGQo ZGF0YS0+cnNwLCBkYXRhLT5lcC0+aWQsCisrCQkJCQlCVF9BU0NTX1JTUF9NRVRBREFUQV9VTlNV UFBPUlRFRCwKKysJCQkJCXQpOworKwkJZGF0YS0+ZXJyID0gQlRfQVNDU19SU1BfTUVUQURBVEFf VU5TVVBQT1JURUQ7CisrCQlicmVhazsKKysJfTsKKyt9CisrCisrc3RhdGljIGJvb2wgYXNjc19t ZXRhZGF0YV9yc3Aoc3RydWN0IGJ0X2JhcF9lbmRwb2ludCAqZXAsIHN0cnVjdCBidF9iYXAgKmJh cCwKKysJCQkJc3RydWN0IGlvdmVjICptZXRhLCBzdHJ1Y3QgaW92ZWMgKnJzcCkKKyt7CisrCXN0 cnVjdCBiYXBfbWV0YWRhdGFfcHJvY2VzcyBkYXRhID0geworKwkJLmVwID0gZXAsCisrCQkucnNw ID0gcnNwLAorKwkJLmVyciA9IDAsCisrCX07CisrCisgCWlmIChlcC0+c3RyZWFtICYmIGVwLT5z dHJlYW0tPmxwYWMpCistCQlzdXBwb3J0ZWRfY29udGV4dCA9IGVwLT5zdHJlYW0tPmxwYWMtPnFv cy5zdXBwb3J0ZWRfY29udGV4dDsKKysJCWRhdGEuY29udGV4dCA9IGVwLT5zdHJlYW0tPmxwYWMt PnFvcy5zdXBwb3J0ZWRfY29udGV4dDsKKyAKKy0JbHR2ID0gbWV0YS0+aW92X2Jhc2U7CistCWlm IChtZXRhLT5pb3ZfbGVuID49IHNpemVvZigqbHR2KSAmJgorLQkJCShsdHYtPnR5cGUgPCBCQVBf TUVUQURBVEFfUFJFRl9DT05URVhUX0xUVl9UWVBFIHx8CistCQkJbHR2LT50eXBlID4gQkFQX01F VEFEQVRBX0xBTkdVQUdFX0xUVl9UWVBFKSkgeworLQkJYXNjc19hc2VfcnNwX2FkZChyc3AsIGVw LT5pZCwKKy0JCQkJQlRfQVNDU19SU1BfTUVUQURBVEFfVU5TVVBQT1JURUQsIGx0di0+dHlwZSk7 CistCQlyZXR1cm4gdHJ1ZTsKKy0JfQorKwl1dGlsX2x0dl9mb3JlYWNoKG1ldGEtPmlvdl9iYXNl LCBtZXRhLT5pb3ZfbGVuLCBOVUxMLAorKwkJCQliYXBfbWV0YWRhdGFfcHJvY2VzcywgJmRhdGEp OworIAorLQlpZiAobWV0YS0+aW92X2xlbiA+PSBzaXplb2YoKmx0dikgKyBzaXplb2YoY29udGV4 dCkgJiYKKy0JCQlsdHYtPnR5cGUgPT0gQkFQX01FVEFEQVRBX0NPTlRFWFRfTFRWX1RZUEUgJiYK Ky0JCQlsdHYtPmxlbiA9PSBzaXplb2YoY29udGV4dCkgKyAxKSB7CistCQljb250ZXh0ID0gZ2V0 X2xlMTYobHR2LT52YWx1ZSk7CistCQlpZiAoIWNvbnRleHQgfHwgKGNvbnRleHQgJiB+c3VwcG9y dGVkX2NvbnRleHQpKSB7CistCQkJYXNjc19hc2VfcnNwX2FkZChyc3AsIGVwLT5pZCwKKy0JCQkJ CUJUX0FTQ1NfUlNQX01FVEFEQVRBX0lOVkFMSUQsCistCQkJCQlsdHYtPnR5cGUpOworLQkJCXJl dHVybiB0cnVlOworLQkJfQorKwlpZiAoZGF0YS5lcnIpIHsKKysJCURCRyhiYXAsICJlcCAlcCBp ZCAweCUwMnggbWV0YWRhdGEgZXJyb3IgMHglMDJ4IiwgZXAsIGVwLT5pZCwKKysJCQkJZGF0YS5l cnIpOworKwkJcmV0dXJuIHRydWU7CisgCX0KKyAKKyAJcmV0dXJuIGZhbHNlOworQEAgLTM0Njks NyArMzUwMyw3IEBAIHN0YXRpYyB1aW50OF90IGVwX2VuYWJsZShzdHJ1Y3QgYnRfYmFwX2VuZHBv aW50ICplcCwgc3RydWN0IGJ0X2JhcCAqYmFwLAorIAkJcmV0dXJuIDA7CisgCX0KKyAKKy0JaWYg KGFzY3NfbWV0YWRhdGFfcnNwKGVwLCAmbWV0YSwgcnNwKSkKKysJaWYgKGFzY3NfbWV0YWRhdGFf cnNwKGVwLCBiYXAsICZtZXRhLCByc3ApKQorIAkJcmV0dXJuIDA7CisgCisgCWlmICghZXAtPnN0 cmVhbSkgeworQEAgLTM3MDUsNyArMzczOSw3IEBAIHN0YXRpYyB1aW50OF90IGVwX21ldGFkYXRh KHN0cnVjdCBidF9iYXBfZW5kcG9pbnQgKmVwLAorIAltZXRhLmlvdl9iYXNlID0gdXRpbF9pb3Zf cHVsbF9tZW0oaW92LCByZXEtPmxlbik7CisgCW1ldGEuaW92X2xlbiA9IHJlcS0+bGVuOworIAor LQlpZiAoYXNjc19tZXRhZGF0YV9yc3AoZXAsICZtZXRhLCByc3ApKQorKwlpZiAoYXNjc19tZXRh ZGF0YV9yc3AoZXAsIHN0cmVhbS0+YmFwLCAmbWV0YSwgcnNwKSkKKyAJCXJldHVybiAwOworIAor IAlyZXR1cm4gc3RyZWFtX21ldGFkYXRhKGVwLT5zdHJlYW0sICZtZXRhLCByc3ApOworLS0gCisy LjU0LjAKKworCitGcm9tIDllOWYwYTM3MGM1OTFjMTI2YzM5MjI1ZjVmNTBiODg5MTVkMTEwOTUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSYWh1bCBTYW1hbmEgPHJhaHVsLnNhbWFu YUBvc3MucXVhbGNvbW0uY29tPgorRGF0ZTogVHVlLCA3IEp1bCAyMDI2IDEyOjA1OjQzICswNTMw CitTdWJqZWN0OiBbUEFUQ0ggMDYvMTldIGdvYmV4OiBGaXggdXNlLWFmdGVyLWZyZWUgd2hlbiBj YW5jZWxsaW5nIFNSTSBQVVQKKyB0cmFuc2ZlcgorCitJbiBTUk0gbW9kZSBwdXRfZ2V0X2RhdGEo KSBxdWV1ZXMgdGhlIG5leHQgcGFja2V0IGR1cmluZyBlbmNvZGluZyBvZgordGhlIGN1cnJlbnQg b25lLCBzbyB0cmFuc2Zlci0+cmVxX2lkIGFuZCBwZW5kaW5nX3JlcS0+aWQgY2FuIGRpdmVyZ2Uu CitXaGVuIGdfb2JleF9jYW5jZWxfdHJhbnNmZXIoKSBjYW5jZWxzIHRoZSBxdWV1ZWQgcGFja2V0 IGZyb20gdHhfcXVldWUsCitjYW5jZWxfY29tcGxldGUoKSBmcmVlcyB0aGUgdHJhbnNmZXIgd2hp bGUgcGVuZGluZ19yZXEgc3RpbGwgaG9sZHMgYQorY2FsbGJhY2sgcG9pbnRpbmcgdG8gaXQuIEl0 cyBHX09CRVhfREVGQVVMVF9USU1FT1VUICgxMHMpIHRoZW4gZmlyZXMKK29uIGZyZWVkIG1lbW9y eSBjYXVzaW5nIGEgU0lHU0VHVi4KKworRml4IGJ5IGNsZWFyaW5nIHBlbmRpbmdfcmVxLT5yc3Bf ZnVuYyBpZiBpdCBiZWxvbmdzIHRvIHRoZSBzYW1lCit0cmFuc2ZlciBiZWluZyBjYW5jZWxsZWQu CistLS0KKyBnb2JleC9nb2JleC5jIHwgOCArKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA4IGlu c2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2dvYmV4L2dvYmV4LmMgYi9nb2JleC9nb2JleC5j CitpbmRleCBkZjgwZDc5ZjMxYmIuLjEwYTQzODM5MWVhZSAxMDA2NDQKKy0tLSBhL2dvYmV4L2dv YmV4LmMKKysrKyBiL2dvYmV4L2dvYmV4LmMKK0BAIC04NjEsNiArODYxLDE0IEBAIGdib29sZWFu IGdfb2JleF9jYW5jZWxfcmVxKEdPYmV4ICpvYmV4LCBndWludCByZXFfaWQsIGdib29sZWFuIHJl bW92ZV9jYWxsYmFjaykKKyAKKyAJZ19xdWV1ZV9kZWxldGVfbGluayhvYmV4LT50eF9xdWV1ZSwg bWF0Y2gpOworIAorKwkvKiBJbiBTUk0gbW9kZSBwZW5kaW5nX3JlcSBtYXkgYmVsb25nIHRvIHRo ZSBzYW1lIHRyYW5zZmVyIGJ1dCBjYXJyeQorKwkgKiBhIGRpZmZlcmVudCByZXFfaWQuIENsZWFy IGl0cyBjYWxsYmFjayB0byBhdm9pZCB1c2UtYWZ0ZXItZnJlZQorKwkgKiB3aGVuIGl0cyB0aW1l b3V0IGZpcmVzIGFmdGVyIHRyYW5zZmVyX2ZyZWUoKS4KKysJICovCisrCWlmIChyZW1vdmVfY2Fs bGJhY2sgJiYgb2JleC0+cGVuZGluZ19yZXEgJiYKKysJCQkJb2JleC0+cGVuZGluZ19yZXEtPnJz cF9kYXRhID09IHAtPnJzcF9kYXRhKQorKwkJb2JleC0+cGVuZGluZ19yZXEtPnJzcF9mdW5jID0g TlVMTDsKKysKKyBpbW1lZGlhdGVfY29tcGxldGlvbjoKKyAJcC0+Y2FuY2VsbGVkID0gVFJVRTsK KyAJcC0+b2JleCA9IGdfb2JleF9yZWYob2JleCk7CistLSAKKzIuNTQuMAorCisKK0Zyb20gODJh ZjJiZWFmYzM5NTEwZTJjNGE0MzliZjQ0ZmFlYTcxMWQ2NTAzZiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IFRvbSBDYXRzaG9layA8dG9tY2F0c2hvZWtAemVlbGFuZG5ldC5ubD4KK0Rh dGU6IFRodSwgOSBKdWwgMjAyNiAxNDoyNzowNCArMDIwMAorU3ViamVjdDogW1BBVENIIDA3LzE5 XSBhZGFwdGVyOiBGaXggY3Jhc2ggb24gVVVJRCBkaXNjb3ZlcnkgZmlsdGVyIG1hdGNoCisKK2lz X2ZpbHRlcl9tYXRjaCgpIGxvb2tzIHVwIGVhY2ggZGlzY292ZXJ5LWZpbHRlciBVVUlEIGluIHRo ZSBxdWV1ZSBvZgorc2VydmljZXMgcGFyc2VkIGZyb20gYSBkZXZpY2UgYWR2ZXJ0aXNlbWVudC4g V2hlbiB0aGF0IHNlcnZpY2VzIGxpc3Qgd2FzCittaWdyYXRlZCBmcm9tIGEgR1NMaXN0IHRvIGEg c3RydWN0IHF1ZXVlLCB0aGUgcXVldWVfZmluZCgpIGNhbGwga2VwdAorR0xpYidzIGdfc2xpc3Rf ZmluZF9jdXN0b20oKSBhcmd1bWVudCBvcmRlciwgcGFzc2luZyB0aGUgVVVJRCBzdHJpbmcKK3do ZXJlIHF1ZXVlX2ZpbmQoKSBleHBlY3RzIGEgbWF0Y2ggZnVuY3Rpb24gYW5kIHRoZSBjb21wYXJp c29uIGZ1bmN0aW9uCit3aGVyZSBpdCBleHBlY3RzIHRoZSBtYXRjaCBkYXRhLgorCitBcyBhIHJl c3VsdCBxdWV1ZV9maW5kKCkgY2FsbHMgdGhlIFVVSUQgc3RyaW5nIGFzIGlmIGl0IHdlcmUgYSBm dW5jdGlvbiwKK2p1bXBpbmcgaW50byBub24tZXhlY3V0YWJsZSBoZWFwIGFuZCBjcmFzaGluZyBi bHVldG9vdGhkIHdpdGggU0lHU0VHViBhcworc29vbiBhcyBhbiBhZHZlcnRpc2VtZW50IG1hdGNo ZXMgYSBVVUlEIGZpbHRlciBjb25maWd1cmVkIHZpYQorU2V0RGlzY292ZXJ5RmlsdGVyLgorCitB ZGQgYSBxdWV1ZV9tYXRjaF9mdW5jX3QgaGVscGVyIGFuZCBwYXNzIHRoZSBhcmd1bWVudHMgaW4g dGhlIGNvcnJlY3QKK29yZGVyLgorCitGaXhlczogaHR0cHM6Ly9naXRodWIuY29tL2JsdWV6L2Js dWV6L2lzc3Vlcy8yMjgyCistLS0KKyBzcmMvYWRhcHRlci5jIHwgMTEgKysrKysrKysrLS0KKyAx IGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0t Z2l0IGEvc3JjL2FkYXB0ZXIuYyBiL3NyYy9hZGFwdGVyLmMKK2luZGV4IDIxMDIyNTI0M2YwMC4u NGZmYTMyYTUyYzEzIDEwMDY0NAorLS0tIGEvc3JjL2FkYXB0ZXIuYworKysrIGIvc3JjL2FkYXB0 ZXIuYworQEAgLTcxODQsNiArNzE4NCwxNCBAQCBzdGF0aWMgdm9pZCBhZGFwdGVyX21zZF9ub3Rp Znkoc3RydWN0IGJ0ZF9hZGFwdGVyICphZGFwdGVyLAorIAl9CisgfQorIAorK3N0YXRpYyBib29s IG1hdGNoX3V1aWQoY29uc3Qgdm9pZCAqZGF0YSwgY29uc3Qgdm9pZCAqbWF0Y2hfZGF0YSkKKyt7 CisrCWNvbnN0IGNoYXIgKnV1aWQgPSBkYXRhOworKwljb25zdCBjaGFyICptYXRjaCA9IG1hdGNo X2RhdGE7CisrCisrCXJldHVybiBzdHJjbXAodXVpZCwgbWF0Y2gpID09IDA7CisrfQorKworIHN0 YXRpYyBib29sIGlzX2ZpbHRlcl9tYXRjaChHU0xpc3QgKmRpc2NvdmVyeV9maWx0ZXIsIHN0cnVj dCBlaXJfZGF0YSAqZWlyX2RhdGEsCisgCQkJCQkJCQlpbnQ4X3QgcnNzaSkKKyB7CitAQCAtNzIx Niw4ICs3MjI0LDcgQEAgc3RhdGljIGJvb2wgaXNfZmlsdGVyX21hdGNoKEdTTGlzdCAqZGlzY292 ZXJ5X2ZpbHRlciwgc3RydWN0IGVpcl9kYXRhICplaXJfZGF0YSwKKyAJCQkJICogdXVpZC4KKyAJ CQkJICovCisgCQkJCWlmIChxdWV1ZV9maW5kKGVpcl9kYXRhLT5zZXJ2aWNlcywKKy0JCQkJCQkJ bS0+ZGF0YSwKKy0JCQkJCQkJZ19zdHJjbXApICE9IE5VTEwpCisrCQkJCQkJCW1hdGNoX3V1aWQs IG0tPmRhdGEpKQorIAkJCQkJZ290X21hdGNoID0gdHJ1ZTsKKyAJCQl9CisgCQl9CistLSAKKzIu NTQuMAorCisKK0Zyb20gYjdkNzFlNTA2Nzg1NmIwZGFmMmYxZjczYjNmYzk1NDgzMjM2NjEwZSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pa2hhaWwgR2F2cmlsb3YgPG1pa2hhaWwu di5nYXZyaWxvdkBnbWFpbC5jb20+CitEYXRlOiBGcmksIDEwIEp1bCAyMDI2IDEyOjI4OjE3ICsw NTAwCitTdWJqZWN0OiBbUEFUQ0ggMDgvMTldIGEyZHA6IEZpeCBsb2FkaW5nIG9mIHJlbW90ZSBT RVAgZnJvbSBjYWNoZQorCitDb21taXQgOTEyZjVlZmIwZGQ5ICgiYTJkcDogRml4IGhhbmRsaW5n IG9mIGNvZGVjIGNhcGFiaWxpdHkgc3RvcmFnZSIpCithZGRlZCBhbiAnaSA+PSAyJyBjb25kaXRp b24gdG8gdGhlIGxvb3AgdGhhdCBwYXJzZXMgdGhlIHN0b3JlZCBjb2RlYworY2FwYWJpbGl0aWVz LiBTaW5jZSBpIHN0YXJ0cyBhdCAwIHRoZSBsb29wIGJvZHkgbmV2ZXIgcnVucywgaSBzdGF5cyAw LAorYW5kIHRoZSBzdWJzZXF1ZW50ICdpZiAoaSAhPSBzaXplKScgY2hlY2sgZGlzY2FyZHMgZXZl cnkgZW5kcG9pbnQgZm91bmQKK2luIHRoZSBjYWNoZToKKworICBsb2FkX3JlbW90ZV9zZXAoKSBV bmFibGUgdG8gbG9hZCBMYXN0VXNlZDogcnNlaWQgNiBub3QgZm91bmQKKworV2l0aCBubyByZW1v dGUgU0VQIGxvYWRlZCwgYXZkdHBfZGlzY292ZXIoKSBjYW4gbm8gbG9uZ2VyIHRha2UgdGhlCitj YWNoZWQgcGF0aCBhbmQgaXNzdWVzIEFWRFRQIERpc2NvdmVyL0dldCBBbGwgQ2FwYWJpbGl0aWVz IG9uIGV2ZXJ5CityZWNvbm5lY3QsIGFuZCBhMmRwX3NldHVwX3JlbW90ZV9wYXRoKCkgcmV0dXJu cyBOVUxMIHNvIHRoZSB0cmFuc3BvcnQKK2VuZHMgdXAgYXQgL29yZy9ibHVlei9oY2lYL2Rldl9Z WS9mZDAgaW5zdGVhZCBvZiAuLi4vc2VwTi9mZDAuCisKK1RoZSBjb25kaXRpb24gd2FzIHByZXN1 bWFibHkgbWVhbnQgdG8gYm91bmQgdGhlIHdyaXRlcyBpbnRvIGRhdGFbMTI4XSwKK3doaWNoIHRo ZSBvcmlnaW5hbCBjb21taXQgZGlkIG5vdCBhY3R1YWxseSBmaXg6IGNhcHMgaXMgcmVhZCB3aXRo CisnJTUxMnMnIHNvIHNpemUgLyAyIGNhbiBiZSB1cCB0byAyNTYuIFZhbGlkYXRlIHNpemUgdXAg ZnJvbnQgaW5zdGVhZC4KKworRml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibHVlei9ibHVlei9p c3N1ZXMvMjI4NQorLS0tCisgcHJvZmlsZXMvYXVkaW8vYTJkcC5jIHwgMTMgKysrKysrKysrKy0t LQorIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvcHJvZmlsZXMvYXVkaW8vYTJkcC5jIGIvcHJvZmlsZXMvYXVkaW8vYTJkcC5j CitpbmRleCBjOGFkYzMxMjI1NjMuLmE0YmExZGFjZjk0MyAxMDA2NDQKKy0tLSBhL3Byb2ZpbGVz L2F1ZGlvL2EyZHAuYworKysrIGIvcHJvZmlsZXMvYXVkaW8vYTJkcC5jCitAQCAtMjM5OCw3ICsy Mzk4LDE2IEBAIHN0YXRpYyB2b2lkIGxvYWRfcmVtb3RlX3NlcChzdHJ1Y3QgYTJkcF9jaGFubmVs ICpjaGFuLCBHS2V5RmlsZSAqa2V5X2ZpbGUsCisgCQkJZGVsYXlfcmVwb3J0aW5nID0gZmFsc2U7 CisgCQl9CisgCistCQlmb3IgKGkgPSAwLCBzaXplID0gc3RybGVuKGNhcHMpOyBpIDwgc2l6ZSAm JiBpID49IDI7IGkgKz0gMikgeworKwkJc2l6ZSA9IHN0cmxlbihjYXBzKTsKKysKKysJCWdfZnJl ZSh2YWx1ZSk7CisrCisrCQlpZiAoc2l6ZSAlIDIgfHwgc2l6ZSAvIDIgPiAoaW50KSBzaXplb2Yo ZGF0YSkpIHsKKysJCQl3YXJuKCJVbmFibGUgdG8gbG9hZCBFbmRwb2ludDogc2VpZCAldSIsIHJz ZWlkKTsKKysJCQljb250aW51ZTsKKysJCX0KKysKKysJCWZvciAoaSA9IDA7IGkgPCBzaXplOyBp ICs9IDIpIHsKKyAJCQl1aW50OF90ICp0bXAgPSBkYXRhICsgaSAvIDI7CisgCisgCQkJaWYgKHNz Y2FuZihjYXBzICsgaSwgIiUwMmhoeCIsIHRtcCkgIT0gMSkgeworQEAgLTI0MDcsOCArMjQxNiw2 IEBAIHN0YXRpYyB2b2lkIGxvYWRfcmVtb3RlX3NlcChzdHJ1Y3QgYTJkcF9jaGFubmVsICpjaGFu LCBHS2V5RmlsZSAqa2V5X2ZpbGUsCisgCQkJfQorIAkJfQorIAorLQkJZ19mcmVlKHZhbHVlKTsK Ky0KKyAJCWlmIChpICE9IHNpemUpCisgCQkJY29udGludWU7CisgCistLSAKKzIuNTQuMAorCisK K0Zyb20gMmEzZDNiMGU2ZjgzNTE2NzM2YzNjODE5MWZiOTQ0MDQ3NTE3MTYwMCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IEx1aXogQXVndXN0byB2b24gRGVudHogPGx1aXoudm9uLmRl bnR6QGludGVsLmNvbT4KK0RhdGU6IEZyaSwgMTAgSnVsIDIwMjYgMTQ6NDc6MTQgLTA0MDAKK1N1 YmplY3Q6IFtQQVRDSCAwOS8xOV0gbW9uaXRvcjogRml4IHByaW50aW5nIHN1YnBhZ2VzIGJpdHMg YWZ0ZXIgYWxsIHN1YnBhZ2VzCisKK1RoaXMgZml4ZXMgcHJpbnRpbmcgdGhlIGRlY29kZWQgc3Vi cGFnZSBiaXRmaWVsZHMgYWZ0ZXIgYWxsIHN1YnBhZ2VzCityYXRoZXIgdGhlbiBhZnRlciB0aGUg c3VicGFnZSBpdHNlbGY6CisKK2JlZm9yZToKKworICAgICAgICBGZWF0dXJlc1sxLzBdWzhdOgor ICAgICAgICAwMCAwMyAwMCAwMCAwMCAwMCAwMCAwMCAgICAgICAgICAgICAgICAgICAgICAgICAg Li4uLi4uLi4KKyAgICAgICAgRmVhdHVyZXNbMS8xXVs4XToKKyAgICAgICAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLi4uLi4uCisgICAgICAgIEZl YXR1cmVzWzEvMl1bOF06CisgICAgICAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAgICAgICAg ICAgICAgICAgICAgICAgICAuLi4uLi4uLgorICAgICAgICAgIFNob3J0ZXIgQ29ubmVjdGlvbiBJ bnRlcnZhbHMKKyAgICAgICAgICBTaG9ydGVyIENvbm5lY3Rpb24gSW50ZXJ2YWxzIChIb3N0IFN1 cHBvcnQpCisKK2FmdGVyOgorCisgICAgICAgIEZlYXR1cmVzWzEvMF1bOF06CisgICAgICAgIDAw IDAzIDAwIDAwIDAwIDAwIDAwIDAwICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4uLi4uLgor ICAgICAgICAgIFNob3J0ZXIgQ29ubmVjdGlvbiBJbnRlcnZhbHMKKyAgICAgICAgICBTaG9ydGVy IENvbm5lY3Rpb24gSW50ZXJ2YWxzIChIb3N0IFN1cHBvcnQpCistLS0KKyBtb25pdG9yL3BhY2tl dC5jIHwgMzMgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5n ZWQsIDE3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbW9u aXRvci9wYWNrZXQuYyBiL21vbml0b3IvcGFja2V0LmMKK2luZGV4IGU2MmFkNGNmYjMzNy4uYmE2 ZmY4ZThlNTUxIDEwMDY0NAorLS0tIGEvbW9uaXRvci9wYWNrZXQuYworKysrIGIvbW9uaXRvci9w YWNrZXQuYworQEAgLTI5MjUsMTcgKzI5MjUsMjkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiaXRm aWVsZF9kYXRhIGZlYXR1cmVzX21zZnRbXSA9IHsKKyAKKyBzdGF0aWMgdm9pZCBwcmludF9mZWF0 dXJlc19zdWJwYWdlKHVpbnQ4X3QgcGFnZSwgdWludDhfdCBzdWJwYWdlcywKKyAJCQkJCWNvbnN0 IHVpbnQ4X3QgKmZlYXR1cmVzX2FycmF5LAorLQkJCQkJdWludDY0X3QgKmZlYXR1cmVzKQorKwkJ CQkJdWludDY0X3QgKmZlYXR1cmVzLAorKwkJCQkJY29uc3Qgc3RydWN0IGJpdGZpZWxkX2RhdGEg KnRhYmxlKQorIHsKKyAJaW50IGksIGo7CisgCWNoYXIgc3RyWzE4XTsKKyAKKyAJZm9yIChpID0g MDsgaSA8IHN1YnBhZ2VzOyBpKyspIHsKKysJCXVpbnQ2NF90IG1hc2s7CisrCisgCQlmb3IgKGog PSAwOyBqIDwgODsgaisrKQorIAkJCWZlYXR1cmVzW2ldIHw9ICgodWludDY0X3QpIGZlYXR1cmVz X2FycmF5W2kgKiA4ICsgal0pCisgCQkJCQk8PCAoaiAqIDgpOworIAkJc3ByaW50ZihzdHIsICJG ZWF0dXJlc1sldS8ldV0iLCBwYWdlLCBpKTsKKyAJCXByaW50X2hleF9maWVsZChzdHIsICZmZWF0 dXJlc19hcnJheVtpICogOF0sIDgpOworKworKwkJaWYgKCF0YWJsZSkKKysJCQljb250aW51ZTsK KysKKysJCW1hc2sgPSBwcmludF9iaXRmaWVsZCgyLCBmZWF0dXJlc1tpXSwgdGFibGUpOworKwkJ aWYgKG1hc2spCisrCQkJcHJpbnRfdGV4dChDT0xPUl9VTktOT1dOX0ZFQVRVUkVfQklULAorKwkJ CQkiICBVbmtub3duIGZlYXR1cmVzICgweCUxNi4xNiIgUFJJeDY0ICIpIiwKKysJCQkJbWFzayk7 CisgCX0KKyB9CisgCitAQCAtMjk0MywxNiArMjk1NSwxMyBAQCBzdGF0aWMgdm9pZCBwcmludF9m ZWF0dXJlcyh1aW50OF90IHBhZ2UsIGNvbnN0IHVpbnQ4X3QgKmZlYXR1cmVzX2FycmF5LAorIAkJ CQkJCQkJdWludDhfdCB0eXBlKQorIHsKKyAJY29uc3Qgc3RydWN0IGJpdGZpZWxkX2RhdGEgKmZl YXR1cmVzX3RhYmxlID0gTlVMTDsKKy0JdWludDY0X3QgbWFzaywgZmVhdHVyZXNbM10gPSB7fTsK KysJdWludDY0X3QgZmVhdHVyZXNbM10gPSB7fTsKKyAJdWludDhfdCBzdWJwYWdlcyA9IDE7Cist CWludCBpOworIAorIAkvKiBMRSBwYWdlcyAxLTEwIGFyZSAxOTIgYml0cyAoMjQgb2N0ZXRzKSBl YWNoICovCisgCWlmICh0eXBlID09IDB4MDEgJiYgcGFnZSkKKyAJCXN1YnBhZ2VzID0gMzsKKyAK Ky0JcHJpbnRfZmVhdHVyZXNfc3VicGFnZShwYWdlLCBzdWJwYWdlcywgZmVhdHVyZXNfYXJyYXks IGZlYXR1cmVzKTsKKy0KKyAJc3dpdGNoICh0eXBlKSB7CisgCWNhc2UgMHgwMDoKKyAJCXN3aXRj aCAocGFnZSkgeworQEAgLTI5ODUsMTYgKzI5OTQsOCBAQCBzdGF0aWMgdm9pZCBwcmludF9mZWF0 dXJlcyh1aW50OF90IHBhZ2UsIGNvbnN0IHVpbnQ4X3QgKmZlYXR1cmVzX2FycmF5LAorIAkJYnJl YWs7CisgCX0KKyAKKy0JaWYgKCFmZWF0dXJlc190YWJsZSkKKy0JCXJldHVybjsKKy0KKy0JZm9y IChpID0gMDsgaSA8IHN1YnBhZ2VzOyBpKyspIHsKKy0JCW1hc2sgPSBwcmludF9iaXRmaWVsZCgy LCBmZWF0dXJlc1tpXSwgZmVhdHVyZXNfdGFibGUpOworLQkJaWYgKG1hc2spCistCQkJcHJpbnRf dGV4dChDT0xPUl9VTktOT1dOX0ZFQVRVUkVfQklULAorLQkJCQkiICBVbmtub3duIGZlYXR1cmVz ICgweCUxNi4xNiIgUFJJeDY0ICIpIiwKKy0JCQkJbWFzayk7CistCX0KKysJcHJpbnRfZmVhdHVy ZXNfc3VicGFnZShwYWdlLCBzdWJwYWdlcywgZmVhdHVyZXNfYXJyYXksIGZlYXR1cmVzLAorKwkJ CQkJCQlmZWF0dXJlc190YWJsZSk7CisgfQorIAorIHZvaWQgcGFja2V0X3ByaW50X2ZlYXR1cmVz X2xtcChjb25zdCB1aW50OF90ICpmZWF0dXJlcywgdWludDhfdCBwYWdlKQorQEAgLTExMDY1LDcg KzExMDY2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvcGNvZGVfZGF0YSBvcGNvZGVfdGFibGVb XSA9IHsKKyAJCQkJIkxFIFJlYWQgTWluaW11bSBTdXBwb3J0ZWQgQ29ubmVjdGlvbiBJbnRlcnZh bCIsCisgCQkJCW51bGxfY21kLCAwLCB0cnVlLCBsZV9yZWFkX2Nvbm5faW50ZXJ2YWxfcnNwLAor IAkJCQlzaXplb2Yoc3RydWN0IGJ0X2hjaV9yc3BfbGVfcmVhZF9jb25uX2ludGVydmFsKSwKKy0J CQkJdHJ1ZSB9LAorKwkJCQlmYWxzZSB9LAorIAl7IH0KKyB9OworIAorLS0gCisyLjU0LjAKKwor CitGcm9tIDBmMmY1M2ZkMDRkNGViNzM4MDFkZTFmOGNhMTZhNDBlM2IxMmMwMzQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBQYXVsaSBWaXJ0YW5lbiA8cGF2QGlraS5maT4KK0RhdGU6 IE1vbiwgMTMgSnVsIDIwMjYgMTY6NTA6MjMgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCAxMC8xOV0g dG9vbHMvc2NvLXRlc3RlcjogZml4IG1pc3NpbmcgY2xlYXIgb2YgaW9faWQgaW4KKyBjYWxsYmFj a3MKKworRml4ZXMgaXNzdWVzCisKK0dMaWItQ1JJVElDQUwgKio6IFNvdXJjZSBJRCAxMjYgd2Fz IG5vdCBmb3VuZCB3aGVuIGF0dGVtcHRpbmcgdG8gcmVtb3ZlIGl0CistLS0KKyB0b29scy9zY28t dGVzdGVyLmMgfCAyICsrCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQorCitkaWZm IC0tZ2l0IGEvdG9vbHMvc2NvLXRlc3Rlci5jIGIvdG9vbHMvc2NvLXRlc3Rlci5jCitpbmRleCBh MjE4NWI4ZWYxOTguLmZjYTk5YTkxYzIwZiAxMDA2NDQKKy0tLSBhL3Rvb2xzL3Njby10ZXN0ZXIu YworKysrIGIvdG9vbHMvc2NvLXRlc3Rlci5jCitAQCAtMTQxNSw2ICsxNDE1LDggQEAgc3RhdGlj IGdib29sZWFuIHNjb19hY2NlcHRfY2IoR0lPQ2hhbm5lbCAqaW8sIEdJT0NvbmRpdGlvbiBjb25k LAorIAlnYm9vbGVhbiByZXQ7CisgCUdJT0NoYW5uZWwgKm5ld19pbzsKKyAKKysJZGF0YS0+aW9f aWQgPSAwOworKworIAl0ZXN0ZXJfZGVidWcoIk5ldyBjb25uZWN0aW9uIik7CisgCisgCXNrID0g Z19pb19jaGFubmVsX3VuaXhfZ2V0X2ZkKGlvKTsKKy0tIAorMi41NC4wCisKKworRnJvbSA5MzUz YzBlYTlmNmMxYmFjZmYwMGQ5YWZlZjBkOTYzNzk2ZDg2YmQzIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogUGF1bGkgVmlydGFuZW4gPHBhdkBpa2kuZmk+CitEYXRlOiBNb24sIDEzIEp1 bCAyMDI2IDE2OjUwOjI0ICswMzAwCitTdWJqZWN0OiBbUEFUQ0ggMTEvMTldIHRvb2xzLzZsb3dw YW4tdGVzdGVyOiBmaXggcmFjZSBpbiBDbGllbnQgQ29ubmVjdCAtCisgRGlzYWJsZQorCitJdCdz IHBvc3NpYmxlIGNsaWVudF9sMmNhcF9kaXNjb25uZWN0X2NiKCkgaXMgY2FsbGVkIGFmdGVyIDZs b3dwYW4KK2Rpc2FibGUgb24gY29ubmVjdC4gUHJldmVudCBmYWlsaW5nIHRlc3QgaW4gZmluaXNo X3N0ZXAoKSBpbiB0aGlzIGNhc2UuCistLS0KKyB0b29scy82bG93cGFuLXRlc3Rlci5jIHwgNSAr KysrLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKwor ZGlmZiAtLWdpdCBhL3Rvb2xzLzZsb3dwYW4tdGVzdGVyLmMgYi90b29scy82bG93cGFuLXRlc3Rl ci5jCitpbmRleCA5NWZkZjIwNmZjMGMuLjczODcxNGQ2OGRkMSAxMDA2NDQKKy0tLSBhL3Rvb2xz LzZsb3dwYW4tdGVzdGVyLmMKKysrKyBiL3Rvb2xzLzZsb3dwYW4tdGVzdGVyLmMKK0BAIC02NDgs OCArNjQ4LDExIEBAIHN0YXRpYyB2b2lkIGNsaWVudF9sMmNhcF9jb25uZWN0X2NiKHVpbnQxNl90 IGhhbmRsZSwgdWludDE2X3QgY2lkLAorIAlpZiAoY2RhdGEtPmRpc2FibGVfb25fY29ubmVjdCkg eworIAkJaWYgKHdyaXRlXzZsb3dwYW4oIjZsb3dwYW5fZW5hYmxlIiwgIjAiKSkKKyAJCQl0ZXN0 ZXJfdGVzdF9mYWlsZWQoKTsKKy0JCWVsc2UKKysJCWVsc2UgeworKwkJCWRhdGEtPmhhbmRsZSA9 IDA7CisrCQkJZGF0YS0+ZGNpZCA9IDA7CisgCQkJdGVzdGVyX3Rlc3RfcGFzc2VkKCk7CisrCQl9 CisgCX0KKyB9CisgCistLSAKKzIuNTQuMAorCisKK0Zyb20gYmEwOGUwZjZiZTBmMmFjMTdkZTNj MDYwOWM2NGUxZDFhY2FhMTU2MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBhdWxp IFZpcnRhbmVuIDxwYXZAaWtpLmZpPgorRGF0ZTogTW9uLCAxMyBKdWwgMjAyNiAxNjo1MDoyNSAr MDMwMAorU3ViamVjdDogW1BBVENIIDEyLzE5XSB0b29scy82bG93cGFuLXRlc3RlcjogYWRkIHRl c3QgZm9yIFZIQ0kgdGVhcmRvd24KKyB3aXRob3V0IGRpc2FibGUKKworQ2hlY2sgNmxvd3BhbiB0 ZWFyZG93biB3aGVuIGNvbnRyb2xsZXIgZGlzYXBwZXJzIHdpdGggYWN0aXZlIGRldmljZXMuCitB ZGQgdGVzdAorCitDbGllbnQgQ29ubmVjdCAtIE5vIERpc2FibGUKKy0tLQorIHRvb2xzLzZsb3dw YW4tdGVzdGVyLmMgfCAyOCArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCisgMSBmaWxlIGNo YW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS90 b29scy82bG93cGFuLXRlc3Rlci5jIGIvdG9vbHMvNmxvd3Bhbi10ZXN0ZXIuYworaW5kZXggNzM4 NzE0ZDY4ZGQxLi5hOGZhZjZlYjU5NzYgMTAwNjQ0CistLS0gYS90b29scy82bG93cGFuLXRlc3Rl ci5jCisrKysgYi90b29scy82bG93cGFuLXRlc3Rlci5jCitAQCAtNzYsNiArNzYsOSBAQCBzdHJ1 Y3QgY2xpZW50X2RhdGEgeworIAorIAkvKiBJbnRlcmZhY2UgbGlzdGVuZXIgc29ja2V0IHR5cGUs IFNPQ0tfUkFXIC8gREdSQU0gKi8KKyAJaW50IHNrX3R5cGU7CisrCisrCS8qIERvbid0IGRpc2Fi bGUgNmxvd3BhbiBiZWZvcmUgYWRhcHRlciB0ZWFyZG93biAqLworKwlib29sIG5vX3RlYXJkb3du X2Rpc2FibGU7CisgfTsKKyAKKyBzdGF0aWMgdm9pZCBwcmludF9kZWJ1Zyhjb25zdCBjaGFyICpz dHIsIHZvaWQgKnVzZXJfZGF0YSkKK0BAIC0yNjQsNiArMjY3LDcgQEAgc3RhdGljIHZvaWQgdGVz dF9wcmVfc2V0dXAoY29uc3Qgdm9pZCAqdGVzdF9kYXRhKQorIHN0YXRpYyB2b2lkIHRlc3RfcG9z dF90ZWFyZG93bihjb25zdCB2b2lkICp0ZXN0X2RhdGEpCisgeworIAlzdHJ1Y3QgdGVzdF9kYXRh ICpkYXRhID0gdGVzdGVyX2dldF9kYXRhKCk7CisrCWNvbnN0IHN0cnVjdCBjbGllbnRfZGF0YSAq Y2RhdGEgPSBkYXRhLT50ZXN0X2RhdGE7CisgCWludCByZXQ7CisgCisgCWlmIChkYXRhLT5pb19p ZCA+IDApIHsKK0BAIC0yNzYsMTEgKzI4MCwxMyBAQCBzdGF0aWMgdm9pZCB0ZXN0X3Bvc3RfdGVh cmRvd24oY29uc3Qgdm9pZCAqdGVzdF9kYXRhKQorIAkJZGF0YS0+cGFja2V0X2ZkID0gLTE7Cisg CX0KKyAKKy0JcmV0ID0gd3JpdGVfNmxvd3BhbigiNmxvd3Bhbl9lbmFibGUiLCAiMCIpOworLQlp ZiAocmV0IDwgMCkgeworLQkJdGVzdGVyX3dhcm4oIkZhaWxlZCB0byBkaXNhYmxlIDZsb3dwYW4i KTsKKy0JCXRlc3Rlcl9wb3N0X3RlYXJkb3duX2ZhaWxlZCgpOworLQkJcmV0dXJuOworKwlpZiAo IWNkYXRhIHx8ICFjZGF0YS0+bm9fdGVhcmRvd25fZGlzYWJsZSkgeworKwkJcmV0ID0gd3JpdGVf Nmxvd3BhbigiNmxvd3Bhbl9lbmFibGUiLCAiMCIpOworKwkJaWYgKHJldCA8IDApIHsKKysJCQl0 ZXN0ZXJfd2FybigiRmFpbGVkIHRvIGRpc2FibGUgNmxvd3BhbiIpOworKwkJCXRlc3Rlcl9wb3N0 X3RlYXJkb3duX2ZhaWxlZCgpOworKwkJCXJldHVybjsKKysJCX0KKyAJfQorIAorIAloY2llbXVf dW5yZWYoZGF0YS0+aGNpZW11KTsKK0BAIC0zMTcsNiArMzIzLDEwIEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgY2xpZW50X2RhdGEgY2xpZW50X2Nvbm5lY3RfZGlzYWJsZSA9IHsKKyAJLmRpc2FibGVf b25fY29ubmVjdCA9IHRydWUsCisgfTsKKyAKKytzdGF0aWMgY29uc3Qgc3RydWN0IGNsaWVudF9k YXRhIGNsaWVudF9jb25uZWN0X25vX2Rpc2FibGUgPSB7CisrCS5ub190ZWFyZG93bl9kaXNhYmxl ID0gdHJ1ZSwKKyt9OworKworIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xpZW50X2RhdGEgY2xpZW50 X2Nvbm5lY3RfZGlzY29ubmVjdCA9IHsKKyAJLmRpc2Nvbm5lY3QgPSB0cnVlLAorIH07CitAQCAt NjUzLDYgKzY2MywxMCBAQCBzdGF0aWMgdm9pZCBjbGllbnRfbDJjYXBfY29ubmVjdF9jYih1aW50 MTZfdCBoYW5kbGUsIHVpbnQxNl90IGNpZCwKKyAJCQlkYXRhLT5kY2lkID0gMDsKKyAJCQl0ZXN0 ZXJfdGVzdF9wYXNzZWQoKTsKKyAJCX0KKysJfSBlbHNlIGlmIChjZGF0YS0+bm9fdGVhcmRvd25f ZGlzYWJsZSkgeworKwkJZGF0YS0+aGFuZGxlID0gMDsKKysJCWRhdGEtPmRjaWQgPSAwOworKwkJ dGVzdGVyX3Rlc3RfcGFzc2VkKCk7CisgCX0KKyB9CisgCitAQCAtNzA4LDYgKzcyMiwxMCBAQCBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQorIAkJCQkJCQlzZXR1cF9wb3dlcmVkX2Ns aWVudCwKKyAJCQkJCQkJdGVzdF9jb25uZWN0KTsKKyAKKysJdGVzdF82bG93cGFuKCJDbGllbnQg Q29ubmVjdCAtIE5vIERpc2FibGUiLCAmY2xpZW50X2Nvbm5lY3Rfbm9fZGlzYWJsZSwKKysJCQkJ CQkJc2V0dXBfcG93ZXJlZF9jbGllbnQsCisrCQkJCQkJCXRlc3RfY29ubmVjdCk7CisrCisgCXRl c3RfNmxvd3BhbigiQ2xpZW50IENvbm5lY3QgLSBEaXNjb25uZWN0IiwgJmNsaWVudF9jb25uZWN0 X2Rpc2Nvbm5lY3QsCisgCQkJCQkJCXNldHVwX3Bvd2VyZWRfY2xpZW50LAorIAkJCQkJCQl0ZXN0 X2Nvbm5lY3QpOworLS0gCisyLjU0LjAKKworCitGcm9tIDFjZmUyZDhiMmNiYjhjNjQ1NDM5NDY0 YTIxNzA1M2QzY2RjNDFlNWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQYXVsaSBW aXJ0YW5lbiA8cGF2QGlraS5maT4KK0RhdGU6IE1vbiwgMTMgSnVsIDIwMjYgMTY6NTA6MjYgKzAz MDAKK1N1YmplY3Q6IFtQQVRDSCAxMy8xOV0gdG9vbHMvbDJjYXAtdGVzdGVyOiBmaXggU2V0IFBI WSB0ZXN0IHNwdXJpb3VzIGZhaWx1cmVzCisKK1NldHRpbmcgQlRfUEhZIGRvZXMgbm90IHRha2Ug ZWZmZWN0IGluc3RhbnRhbmVvdXNseSBhcyBrZXJuZWwgd2FpdHMgZm9yCitjb250cm9sbGVyLCBz byBjaGVja2luZyBnZXRzb2Nrb3B0KCkgc29tZXRpbWVzIGZhaWxzIGhlcmUuIEluIFBIWSB0ZXN0 cywKK3VzZSByZXRyeSB3aXRoIHRpbWVvdXQgdG8gY2hlY2sgYWdhaW4gbGF0ZXIuCistLS0KKyB0 b29scy9sMmNhcC10ZXN0ZXIuYyB8IDE4ICsrKysrKysrKysrLS0tLS0tLQorIDEgZmlsZSBjaGFu Z2VkLCAxMSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvdG9v bHMvbDJjYXAtdGVzdGVyLmMgYi90b29scy9sMmNhcC10ZXN0ZXIuYworaW5kZXggYThjYWMzOTAy YjMyLi4yNzcxYWVlNjU4MTQgMTAwNjQ0CistLS0gYS90b29scy9sMmNhcC10ZXN0ZXIuYworKysr IGIvdG9vbHMvbDJjYXAtdGVzdGVyLmMKK0BAIC0yNzcsNyArMjc3LDcgQEAgc3RhdGljIHZvaWQg dGVzdF9kYXRhX2ZyZWUodm9pZCAqdGVzdF9kYXRhKQorICNkZWZpbmUgdGVzdF9sMmNhcChuYW1l LCB0eXBlLCBkYXRhLCBzZXR1cCwgZnVuYykgXAorIAlkbyB7IFwKKyAJCXN0cnVjdCB0ZXN0X2Rh dGEgKnVzZXI7IFwKKy0JCXVzZXIgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCB0ZXN0X2RhdGEpKTsg XAorKwkJdXNlciA9IGNhbGxvYygxLCBzaXplb2Yoc3RydWN0IHRlc3RfZGF0YSkpOyBcCisgCQlp ZiAoIXVzZXIpIFwKKyAJCQlicmVhazsgXAorIAkJdXNlci0+aGNpZW11X3R5cGUgPSB0eXBlOyBc CitAQCAtMTY1Nyw4ICsxNjU3LDEwIEBAIHN0YXRpYyBnYm9vbGVhbiBzb2NrZXRfY2xvc2VkX2Ni KEdJT0NoYW5uZWwgKmlvLCBHSU9Db25kaXRpb24gY29uZCwKKyAJCXRlc3Rlcl9wcmludCgiZXJy ICVkICE9ICVkIGV4cGVjdGVkX2VyciIsIC1lcnIsCisgCQkJCQkJbDJkYXRhLT5leHBlY3RfZXJy KTsKKyAJCXRlc3Rlcl90ZXN0X2ZhaWxlZCgpOworLQl9IGVsc2UKKysJfSBlbHNlIGlmICghZGF0 YS0+c3RlcCkKKyAJCXRlc3Rlcl90ZXN0X3Bhc3NlZCgpOworKwllbHNlCisrCQl0ZXN0ZXJfdGVz dF9mYWlsZWQoKTsKKyAKKyAJcmV0dXJuIEZBTFNFOworIH0KK0BAIC0xNzI5LDEyICsxNzMxLDEz IEBAIHN0YXRpYyBnYm9vbGVhbiBjaGVja19waHkoZ3BvaW50ZXIgYXJncykKKyAJfQorIAorIAlp ZiAobDJkYXRhLT5waHkgJiYgbDJkYXRhLT5waHkgIT0gZGF0YS0+cGh5cykgeworLQkJdGVzdGVy X3dhcm4oInBoeSAweCUwOHggIT0gMHglMDh4IiwgbDJkYXRhLT5waHksIGRhdGEtPnBoeXMpOwor LQkJdGVzdGVyX3Rlc3RfZmFpbGVkKCk7CistCQlnb3RvIGRvbmU7CisrCQl0ZXN0ZXJfcHJpbnQo InBoeSAweCUwOHggIT0gMHglMDh4IiwgbDJkYXRhLT5waHksIGRhdGEtPnBoeXMpOworKworKwkJ LyogUmV0cnkgKi8KKysJCXJldHVybiBUUlVFOworIAl9CisgCistCXRlc3Rlcl90ZXN0X3Bhc3Nl ZCgpOworKwlkYXRhLT5zdGVwLS07CisgCisgZG9uZToKKyAJc2h1dGRvd24oc2ssIFNIVVRfV1Ip OworQEAgLTE3NzAsNyArMTc3Myw4IEBAIHN0YXRpYyBpbnQgY2hlY2tfcGh5cyhzdHJ1Y3QgdGVz dF9kYXRhICpkYXRhLCBpbnQgc2spCisgCQl9CisgCisgCQkvKiBXYWl0IGZvciB0aGUgUEhZIHRv IGNoYW5nZSAqLworLQkJZ19pZGxlX2FkZChjaGVja19waHksIElOVF9UT19QVFIoc2spKTsKKysJ CWRhdGEtPnN0ZXArKzsKKysJCWdfdGltZW91dF9hZGQoNTAsIGNoZWNrX3BoeSwgSU5UX1RPX1BU UihzaykpOworIAorIAkJcmV0dXJuIC1FSU5QUk9HUkVTUzsKKyAJfQorLS0gCisyLjU0LjAKKwor CitGcm9tIDdmODI2ZDAwM2VlN2JjMDc2OThkZGVjZjgwNDY5N2Q1NWU3YjljODYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBGZXJvc2UgPGZlcm9zZTJAZ21haWwuY29tPgorRGF0ZTog U2F0LCAxMSBKdWwgMjAyNiAwMDowMjozMCAtMDcwMAorU3ViamVjdDogW1BBVENIIDE0LzE5XSBz aGFyZWQvYmFwOiBGaXggcmVqZWN0aW5nIHJlLWF0dGFjaCBvZiB0aGUgc2FtZSBmZAorCitXaGVu IHRoZSByZW1vdGUncyBTVFJFQU1JTkcgQVNFIG5vdGlmaWNhdGlvbiBhcnJpdmVzIGJlZm9yZQor aXNvX2Nvbm5lY3RfY2IoKSBmaXJlcywgdGhlIHJhY2UgaGFuZGxlciBpbiBiYXBfc3RhdGUoKQor KHByb2ZpbGVzL2F1ZGlvL2JhcC5jKSBhbHJlYWR5IGF0dGFjaGVzIHRoZSBpbyB0byB0aGUgc3Ry ZWFtOyB0aGUKK2NvbW1lbnQgdGhlcmUgbm90ZXMgIk9yZGVyIG9mIFNUUkVBTUlORyBhbmQgaXNv X2Nvbm5lY3RfY2IoKSBpcworbm9uZGV0ZXJtaW5pc3RpYyIuIFdoZW4gaXNvX2Nvbm5lY3RfY2Io KSB0aGVuIGNhbGxzCitidF9iYXBfc3RyZWFtX3NldF9pbygpIHdpdGggdGhlIHNhbWUgZmQsIHRo ZSBndWFyZCBpbgorYmFwX3VjYXN0X3NldF9pbygpIHNlZXMgYW4gYXR0YWNoZWQsIG5vbi1jb25u ZWN0aW5nIGlvIGFuZCByZXR1cm5zCitmYWxzZS4gaXNvX2Nvbm5lY3RfY2IoKSB0cmVhdHMgdGhh dCBhcyBmYXRhbDoKKworICBwcm9maWxlcy9hdWRpby9iYXAuYzppc29fY29ubmVjdF9jYigpIFVu YWJsZSB0byBzZXQgSU8KKyAgcHJvZmlsZXMvYXVkaW8vdHJhbnNwb3J0LmM6YmFwX3N0YXRlX2No YW5nZWQoKSBVbmFibGUgdG8gZ2V0IHN0cmVhbSBJTworCithbmQgdGVhcnMgZG93biBhIENJUyB0 aGF0IGJ0bW9uIHNob3dzIHdhcyBlc3RhYmxpc2hlZCBzdWNjZXNzZnVsbHkKKyhDSVMgRXN0YWJs aXNoZWQgc3RhdHVzIDAsIGJvdGggSVNPIGRhdGEgcGF0aHMgc2V0IHVwKS4gV2l0aCBhIGRldmlj ZQord2hvc2UgU1RSRUFNSU5HIG5vdGlmaWNhdGlvbnMgY29uc2lzdGVudGx5IHdpbiB0aGUgcmFj ZSwgc3RyZWFtaW5nIGlzCituZXZlciBwb3NzaWJsZS4KKworVHJlYXQgcmUtYXR0YWNoaW5nIHRo ZSBmZCB0aGF0IGlzIGFscmVhZHkgYXR0YWNoZWQgYXMgYSBuby1vcCBzdWNjZXNzLAord2l0aG91 dCByZS1ydW5uaW5nIHRoZSBwZXItc3RyZWFtIHN0YXRlIGFjdGlvbnMgKHdoaWNoIHdvdWxkIHNl bmQgYQorZHVwbGljYXRlIFJlY2VpdmVyIFN0YXJ0IFJlYWR5IHRvIGEgbGlua2VkIHNvdXJjZSBB U0UpLiBBdHRhY2hpbmcgYQorZGlmZmVyZW50IGZkIHRvIGEgbm9uLWNvbm5lY3RpbmcgaW8gcmVt YWlucyBhbiBlcnJvci4KKworRml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibHVlei9ibHVlei9p c3N1ZXMvMjIyMworLS0tCisgc3JjL3NoYXJlZC9iYXAuYyB8IDExICsrKysrKysrKystCisgMSBm aWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdp dCBhL3NyYy9zaGFyZWQvYmFwLmMgYi9zcmMvc2hhcmVkL2JhcC5jCitpbmRleCBkYjZmNGYyMDQ3 ODcuLjE2NjBiOGIyYzFjZiAxMDA2NDQKKy0tLSBhL3NyYy9zaGFyZWQvYmFwLmMKKysrKyBiL3Ny Yy9zaGFyZWQvYmFwLmMKK0BAIC0yNTg5LDkgKzI1ODksMTggQEAgc3RhdGljIHVuc2lnbmVkIGlu dCBiYXBfYmNhc3RfcmVsZWFzZShzdHJ1Y3QgYnRfYmFwX3N0cmVhbSAqc3RyZWFtLAorIAorIHN0 YXRpYyBib29sIGJhcF91Y2FzdF9zZXRfaW8oc3RydWN0IGJ0X2JhcF9zdHJlYW0gKnN0cmVhbSwg aW50IGZkKQorIHsKKy0JaWYgKCFzdHJlYW0gfHwgKGZkID49IDAgJiYgc3RyZWFtLT5pbyAmJiAh c3RyZWFtLT5pby0+Y29ubmVjdGluZykpCisrCWlmICghc3RyZWFtKQorIAkJcmV0dXJuIGZhbHNl OworIAorKwkvKgorKwkgKiBUaGUgU1RSRUFNSU5HIHN0YXRlIGhhbmRsZXIgbWF5IGFscmVhZHkg aGF2ZSBhdHRhY2hlZCB0aGlzIGlvCisrCSAqIGlmIHRoZSByZW1vdGUncyBBU0Ugbm90aWZpY2F0 aW9uIHJhY2VkIGFoZWFkIG9mIGlzb19jb25uZWN0X2NiCisrCSAqIChzZWUgYmFwX3N0YXRlKCkg aW4gcHJvZmlsZXMvYXVkaW8vYmFwLmMpLiBSZS1hdHRhY2hpbmcgdGhlCisrCSAqIHNhbWUgZmQg aXMgYSBuby1vcCBzdWNjZXNzOyBvbmx5IGEgZGlmZmVyZW50IGZkIGlzIGFuIGVycm9yLgorKwkg Ki8KKysJaWYgKGZkID49IDAgJiYgc3RyZWFtLT5pbyAmJiAhc3RyZWFtLT5pby0+Y29ubmVjdGlu ZykKKysJCXJldHVybiBzdHJlYW1faW9fZ2V0X2ZkKHN0cmVhbS0+aW8pID09IGZkOworKworIAli YXBfc3RyZWFtX3NldF9pbyhzdHJlYW0sIElOVF9UT19QVFIoZmQpKTsKKyAKKyAJcXVldWVfZm9y ZWFjaChzdHJlYW0tPmxpbmtzLCBiYXBfc3RyZWFtX3NldF9pbywgSU5UX1RPX1BUUihmZCkpOwor LS0gCisyLjU0LjAKKworCitGcm9tIGJjNDlkNjMyMTBmMjNlMDcyNGUwN2YzZTU4MzhhZmYwNWZi YWE0YWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQYXVsaSBWaXJ0YW5lbiA8cGF2 QGlraS5maT4KK0RhdGU6IFNhdCwgMTEgSnVsIDIwMjYgMTI6MTU6MjUgKzAzMDAKK1N1YmplY3Q6 IFtQQVRDSCAxNS8xOV0gbGliOiBhZGQgaXNvX2RhdGFfKiBtYWNyb3MgdG8gaGNpLmgKKworQWRk IG1hY3JvcyBmb3IgcGFyc2luZyBJU08gRGF0YSBQYWNrZXQgaGVhZGVyIGl0ZW1zLgorLS0tCisg bGliL2JsdWV0b290aC9oY2kuaCB8IDYgKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0 aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvbGliL2JsdWV0b290aC9oY2kuaCBiL2xpYi9ibHVldG9v dGgvaGNpLmgKK2luZGV4IDczMjQ3N2VjNGI1NS4uMmU0YWEzOTRlMTNlIDEwMDY0NAorLS0tIGEv bGliL2JsdWV0b290aC9oY2kuaAorKysrIGIvbGliL2JsdWV0b290aC9oY2kuaAorQEAgLTIzMzUs NiArMjMzNSwxMiBAQCB0eXBlZGVmIHN0cnVjdCB7CisgI2RlZmluZSBpc29fZmxhZ3NfdHMoZikJ CSgoZiA+PiAyKSAmIDB4MDAwMSkKKyAjZGVmaW5lIGlzb19mbGFnc19wYWNrKHBiLCB0cykJKChw YiAmIDB4MDMpIHwgKCh0cyAmIDB4MDEpIDw8IDIpKQorIAorKy8qIElTTyBkYXRhIGxlbmd0aCBh bmQgZmxhZ3MgcGFjay91bnBhY2sgKi8KKysjZGVmaW5lIGlzb19kYXRhX2xlbl9wYWNrKGgsIGYp CSgoX191MTYpICgoKGgpICYgMHgwZmZmKSB8IFwKKysJCQkJCQkgICgoKGYpICYgMHgzKSA8PCAx NCkpKQorKyNkZWZpbmUgaXNvX2RhdGFfbGVuKGgpCQkoKGgpICYgMHgwZmZmKQorKyNkZWZpbmUg aXNvX2RhdGFfZmxhZ3MoaCkJKChoKSA+PiAxNCkKKysKKyAjZW5kaWYgLyogX05PX0hDSV9ERUZT ICovCisgCisgLyogSENJIFNvY2tldCBvcHRpb25zICovCistLSAKKzIuNTQuMAorCisKK0Zyb20g MTMwOWQ1ZjkzMDVkMTMyYmMwOTcwNWZmYTRhZmExMTNjNjQ5MWMyYiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IFBhdWxpIFZpcnRhbmVuIDxwYXZAaWtpLmZpPgorRGF0ZTogU2F0LCAx MSBKdWwgMjAyNiAxMjoxNToyNiArMDMwMAorU3ViamVjdDogW1BBVENIIDE2LzE5XSBtb25pdG9y OiBmaXggcGFyc2luZyBvZiBJU08gcGFja2V0IGRhdGEgaGVhZGVyIGFuZCBzbGVuCisgY2hlY2sK KworQ2hlY2sgUEIgZmxhZyB0byBzZWUgd2hldGhlciB0aW1lc3RhbXAgYW5kIGRhdGEgaGVhZGVy cyBhcmUgcHJlc2VudC4KKworQ2hlY2sgYm91bmRzIGJlZm9yZSBhY2Nlc3NpbmcgZGF0YS4gQnVt cCBoYW5kbGVfc3RyIGxlbmd0aCB0byBmaXQKK21heGltdW0uCisKK0J5dGVzd2FwIGxlbmd0aCB2 YWx1ZXMsIGFuZCBtYXNrIFBhY2tldF9TdGF0dXNfRmxhZyBjb3JyZWN0bHkuICBSZW1vdmUKK1NE VSBsZW5ndGggY2hlY2ssIGFzIHdlIGFyZSBub3QgdHJhY2tpbmcgZnJhZ21lbnRhdGlvbi4KKwor Rml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibHVlei9ibHVlei9pc3N1ZXMvMjI5MgorQXNzaXN0 ZWQtYnk6IEdMTS01LjIKKy0tLQorIG1vbml0b3IvcGFja2V0LmMgfCA2OSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNDYg aW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9tb25pdG9yL3Bh Y2tldC5jIGIvbW9uaXRvci9wYWNrZXQuYworaW5kZXggYmE2ZmY4ZThlNTUxLi5mYjA1M2UyYjQx M2YgMTAwNjQ0CistLS0gYS9tb25pdG9yL3BhY2tldC5jCisrKysgYi9tb25pdG9yL3BhY2tldC5j CitAQCAtMTQ1NDEsMjAgKzE0NTQxLDIzIEBAIHZvaWQgcGFja2V0X2hjaV9pc29kYXRhKHN0cnVj dCB0aW1ldmFsICp0diwgc3RydWN0IHVjcmVkICpjcmVkLCB1aW50MTZfdCBpbmRleCwKKyAJCQkJ Ym9vbCBpbiwgY29uc3Qgdm9pZCAqZGF0YSwgdWludDE2X3Qgc2l6ZSkKKyB7CisgCWNvbnN0IHN0 cnVjdCBidF9oY2lfaXNvX2hkciAqaGRyID0gZGF0YTsKKy0JY29uc3Qgc3RydWN0IGJ0X2hjaV9p c29fZGF0YV9zdGFydCAqc3RhcnQ7CistCXVpbnQxNl90IGhhbmRsZSA9IGxlMTZfdG9fY3B1KGhk ci0+aGFuZGxlKTsKKy0JdWludDhfdCBmbGFncyA9IGFjbF9mbGFncyhoYW5kbGUpOworKwl1aW50 MTZfdCBoYW5kbGUsIGRsZW47CisrCXVpbnQ4X3QgZmxhZ3MsIHBiX2ZsYWc7CisgCWNoYXIgbGFi ZWxbOF07CistCWNoYXIgaGFuZGxlX3N0cls1Nl0sIGV4dHJhX3N0cls1MF0sIHRzX3N0clsxNl0g PSB7IDAgfTsKKy0Jc3RydWN0IGluZGV4X2J1Zl9wb29sICpwb29sID0gJmluZGV4X2xpc3RbaW5k ZXhdLmlzbzsKKysJY2hhciBoYW5kbGVfc3RyWzEwMF0sIGV4dHJhX3N0cls3MF0sIHRzX3N0clsx Nl0gPSB7IDAgfTsKKysJY2hhciBzbl9zdHJbMTZdID0geyAwIH0sIHNsZW5fc3RyWzMyXSA9IHsg MCB9OworKwlzdHJ1Y3QgaW5kZXhfYnVmX3Bvb2wgKnBvb2w7CisgCXN0cnVjdCBwYWNrZXRfY29u bl9kYXRhICpjb25uOworIAlzaXplX3QgdHNfc2l6ZSA9IDA7CisrCWJvb2wgaGF2ZV9oZHI7Cisg CisgCWlmIChpbmRleCA+PSBNQVhfSU5ERVgpIHsKKyAJCXByaW50X2ZpZWxkKCJJbnZhbGlkIGlu ZGV4ICglZCkuIiwgaW5kZXgpOworIAkJcmV0dXJuOworIAl9CisgCisrCXBvb2wgPSAmaW5kZXhf bGlzdFtpbmRleF0uaXNvOworKworIAlpbmRleF9saXN0W2luZGV4XS5mcmFtZSsrOworIAorIAlp ZiAoc2l6ZSA8IHNpemVvZigqaGRyKSkKK0BAIC0xNDU2MywxMSArMTQ1NjYsMTggQEAgdm9pZCBw YWNrZXRfaGNpX2lzb2RhdGEoc3RydWN0IHRpbWV2YWwgKnR2LCBzdHJ1Y3QgdWNyZWQgKmNyZWQs IHVpbnQxNl90IGluZGV4LAorIAlkYXRhICs9IHNpemVvZigqaGRyKTsKKyAJc2l6ZSAtPSBzaXpl b2YoKmhkcik7CisgCisrCWhhbmRsZSA9IGxlMTZfdG9fY3B1KGhkci0+aGFuZGxlKTsKKysJZmxh Z3MgPSBhY2xfZmxhZ3MoaGFuZGxlKTsKKysJcGJfZmxhZyA9IGlzb19mbGFnc19wYihmbGFncyk7 CisrCWRsZW4gPSBsZTE2X3RvX2NwdShoZHItPmRsZW4pOworKworKwloYXZlX2hkciA9IChwYl9m bGFnID09IDB4MDAgfHwgcGJfZmxhZyA9PSAweDAyKTsKKysKKyAJLyogRGV0ZWN0IGlmIHRpbWVz dGFtcCBmaWVsZCBpcyBwcmVzZXQgKi8KKyAJaWYgKGlzb19mbGFnc190cyhmbGFncykpIHsKKyAJ CXRzX3NpemUgPSBzaXplb2YodWludDMyX3QpOworIAorLQkJaWYgKHNpemUgPCB0c19zaXplKQor KwkJaWYgKHNpemUgPCB0c19zaXplIHx8ICFoYXZlX2hkcikKKyAJCQlnb3RvIG1hbGZvcm1lZDsK KyAKKyAJCXNucHJpbnRmKHRzX3N0ciwgc2l6ZW9mKHRzX3N0ciksICIgdHMgJXUiLCBnZXRfbGUz MihkYXRhKSk7CitAQCAtMTQ1NzYsMjAgKzE0NTg2LDQwIEBAIHZvaWQgcGFja2V0X2hjaV9pc29k YXRhKHN0cnVjdCB0aW1ldmFsICp0diwgc3RydWN0IHVjcmVkICpjcmVkLCB1aW50MTZfdCBpbmRl eCwKKyAJCXNpemUgLT0gdHNfc2l6ZTsKKyAJfQorIAorLQlzdGFydCA9IGRhdGE7CisrCWlmICho YXZlX2hkcikgeworKwkJY29uc3Qgc3RydWN0IGJ0X2hjaV9pc29fZGF0YV9zdGFydCAqc3RhcnQg PSBkYXRhOworKwkJdWludDhfdCBzZmxhZ3M7CisrCQl1aW50MTZfdCBzbGVuOworKworKwkJaWYg KHNpemUgPCBzaXplb2YoKnN0YXJ0KSkKKysJCQlnb3RvIG1hbGZvcm1lZDsKKysKKysJCXNmbGFn cyA9IGlzb19kYXRhX2ZsYWdzKGxlMTZfdG9fY3B1KHN0YXJ0LT5zbGVuKSk7CisrCQlzbGVuID0g aXNvX2RhdGFfbGVuKGxlMTZfdG9fY3B1KHN0YXJ0LT5zbGVuKSk7CisrCisrCQlpZiAoc2xlbikK KysJCQlzbnByaW50ZihzbGVuX3N0ciwgc2l6ZW9mKHNsZW5fc3RyKSwgIiBzbGVuICV1Iiwgc2xl bik7CisrCQlpZiAoc2ZsYWdzKQorKwkJCXNucHJpbnRmKHNsZW5fc3RyICsgc3RybGVuKHNsZW5f c3RyKSwKKysJCQkJCXNpemVvZihzbGVuX3N0cikgLSBzdHJsZW4oc2xlbl9zdHIpLAorKwkJCQkJ IiBzZmxhZ3MgJXUiLCBzZmxhZ3MpOworKworKwkJc25wcmludGYoc25fc3RyLCBzaXplb2Yoc25f c3RyKSwgIiBTTiAldSIsCisrCQkJCQkJCWxlMTZfdG9fY3B1KHN0YXJ0LT5zbikpOworKwl9Cisr CisgCWNvbm4gPSBwYWNrZXRfZ2V0X2Nvbm5fZGF0YShoYW5kbGUpOworIAorIAlpZiAoIWluICYm IHBvb2wtPnRvdGFsKQorLQkJc3ByaW50ZihoYW5kbGVfc3RyLCAiSGFuZGxlICVkIFsldS8ldV0g U04gJXUiLAorLQkJCWFjbF9oYW5kbGUoaGFuZGxlKSwgKytwb29sLT50eCwgcG9vbC0+dG90YWws IHN0YXJ0LT5zbik7CisrCQlzcHJpbnRmKGhhbmRsZV9zdHIsICJIYW5kbGUgJWQgWyV1LyV1XSVz IiwKKysJCQlhY2xfaGFuZGxlKGhhbmRsZSksICsrcG9vbC0+dHgsIHBvb2wtPnRvdGFsLCBzbl9z dHIpOworIAllbHNlCistCQlzcHJpbnRmKGhhbmRsZV9zdHIsICJIYW5kbGUgJXUgU04gJXUiLCBh Y2xfaGFuZGxlKGhhbmRsZSksCistCQkJc3RhcnQtPnNuKTsKKysJCXNwcmludGYoaGFuZGxlX3N0 ciwgIkhhbmRsZSAldSVzIiwgYWNsX2hhbmRsZShoYW5kbGUpLCBzbl9zdHIpOworIAorIAloYW5k bGVfc3RyX2FwcGVuZF9hZGRyKGhhbmRsZV9zdHIsIGNvbm4pOworIAorLQlzcHJpbnRmKGV4dHJh X3N0ciwgImZsYWdzIDB4JTIuMnggZGxlbiAldSBzbGVuICV1JXMiLCBmbGFncywgaGRyLT5kbGVu LAorLQkJCQkJCQlzdGFydC0+c2xlbiwgdHNfc3RyKTsKKysJc3ByaW50ZihleHRyYV9zdHIsICJm bGFncyAweCUyLjJ4IGRsZW4gJXUlcyVzIiwgZmxhZ3MsIGRsZW4sIHNsZW5fc3RyLAorKwkJCQkJ CQkJCXRzX3N0cik7CisgCisgCWlmIChjb25uKQorIAkJc3ByaW50ZihsYWJlbCwgIiVzIiwgY29u bl90eXBlX3N0cihjb25uLT50eXBlKSk7CitAQCAtMTQ2MDEsMTggKzE0NjMxLDExIEBAIHZvaWQg cGFja2V0X2hjaV9pc29kYXRhKHN0cnVjdCB0aW1ldmFsICp0diwgc3RydWN0IHVjcmVkICpjcmVk LCB1aW50MTZfdCBpbmRleCwKKyAKKyAJaWYgKCFpbikKKyAJCXBhY2tldF9lbnF1ZXVlX3R4KHR2 LCBhY2xfaGFuZGxlKGhhbmRsZSksCistCQkJCQlpbmRleF9saXN0W2luZGV4XS5mcmFtZSwgaGRy LT5kbGVuKTsKKysJCQkJCWluZGV4X2xpc3RbaW5kZXhdLmZyYW1lLCBkbGVuKTsKKyAKKy0JaWYg KHNpemUgKyB0c19zaXplICE9IGhkci0+ZGxlbikgeworKwlpZiAoc2l6ZSArIHRzX3NpemUgIT0g ZGxlbikgeworIAkJcHJpbnRfdGV4dChDT0xPUl9FUlJPUiwgImludmFsaWQgcGFja2V0IHNpemUg KCVkICE9ICVkKSIsCistCQkJCQkJc2l6ZSArIChpbnQpdHNfc2l6ZSwgaGRyLT5kbGVuKTsKKy0J CXBhY2tldF9oZXhkdW1wKGRhdGEsIHNpemUpOworLQkJcmV0dXJuOworLQl9CistCistCWlmIChz aXplICE9IHN0YXJ0LT5zbGVuICsgNCkgeworLQkJcHJpbnRfdGV4dChDT0xPUl9FUlJPUiwgImlu dmFsaWQgcGFja2V0IHNsZW4gKCVkKzQgIT0gJWQpIiwKKy0JCQkJCQkJc3RhcnQtPnNsZW4sIHNp emUpOworKwkJCQkJCXNpemUgKyAoaW50KXRzX3NpemUsIGRsZW4pOworIAkJcGFja2V0X2hleGR1 bXAoZGF0YSwgc2l6ZSk7CisgCQlyZXR1cm47CisgCX0KKy0tIAorMi41NC4wCisKKworRnJvbSA3 NDgyYWNlZWNlNzA0NGU2ODhmMjBmMTEzMjYzYjUwYzIxZDY5ZmI2IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0ZyPUMzPUE5ZD1DMz1BOXJpYz0yMERhbmlzPz0gPGZy ZWRlcmljLmRhbmlzQGNvbGxhYm9yYS5jb20+CitEYXRlOiBXZWQsIDE1IEp1bCAyMDI2IDE3OjUx OjQ0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMTcvMTldIHByb2ZpbGVzL2F1ZGlvOiBmaXggVUFG IG9uIGV4dGVybmFsIG1lZGlhIHNlcnZpY2UKKyB0ZWFyZG93bgorCitLZWVwIG1lZGlhX2FwcCBl bmRwb2ludC9wbGF5ZXIgcXVldWVzIGluIHN5bmMgd2l0aCBvYmplY3QgbGlmZXRpbWUgdG8KK2F2 b2lkIHN0YWxlIHBvaW50ZXJzIGR1cmluZyBwcm94eSByZW1vdmFsLgorCitXaGVuIGFkbWluIGFs bG93bGlzdCByZWFwcGx5IHJlbW92ZXMgYXVkaW8gc2VydmljZXMsIGVuZHBvaW50L3BsYXllcgor b2JqZWN0cyBtYXkgYmUgZGVzdHJveWVkIHRocm91Z2ggbm9uLXByb3h5IHBhdGhzIGZpcnN0Lgor TGF0ZXIgcHJveHlfcmVtb3ZlZF9jYiBjYWxscyBxdWV1ZV9yZW1vdmVfaWYoKSBhbmQgbWF0Y2hp bmcgYnkgcGF0aAorY2FuIGRlcmVmZXJlbmNlIGZyZWVkIGVuZHBvaW50L3BsYXllciBtZW1vcnku CisKK0ZpeCBieToKKy0gYWRkaW5nIG1lZGlhX2FwcCBiYWNrLXJlZmVyZW5jZXMgaW4gbWVkaWFf ZW5kcG9pbnQvbG9jYWxfcGxheWVyCistIHVubGlua2luZyBmcm9tIGFwcCBxdWV1ZXMgaW5zaWRl IG1lZGlhX2VuZHBvaW50X3JlbW92ZSBvcgorICBsb2NhbF9wbGF5ZXJfcmVtb3ZlCistIHNldHRp bmcgb3duZXJzaGlwIHdoZW4gYXBwLXJlZ2lzdGVyaW5nIGVuZHBvaW50L3BsYXllciBvYmplY3Rz CisKK1RoaXMgcHJldmVudHMgaGVhcC11c2UtYWZ0ZXItZnJlZSBpbiBtYXRjaF9lbmRwb2ludF9i eV9wYXRoIG9yCittYXRjaF9wbGF5ZXJfYnlfcGF0aCBkdXJpbmcgc2VydmljZSBkaXNjb25uZWN0 LgorCitBc3Npc3RlZC1ieTogR1BUOkdQVC01LjMtQ29kZXgKKy0tLQorIHByb2ZpbGVzL2F1ZGlv L21lZGlhLmMgfCAxNiArKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDE2IGluc2Vy dGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3Byb2ZpbGVzL2F1ZGlvL21lZGlhLmMgYi9wcm9maWxl cy9hdWRpby9tZWRpYS5jCitpbmRleCA1ZDllYTJjYmNiY2UuLjk1Zjk1ODBiMDhmZiAxMDA2NDQK Ky0tLSBhL3Byb2ZpbGVzL2F1ZGlvL21lZGlhLmMKKysrKyBiL3Byb2ZpbGVzL2F1ZGlvL21lZGlh LmMKK0BAIC0xMzYsMTIgKzEzNiwxNCBAQCBzdHJ1Y3QgbWVkaWFfZW5kcG9pbnQgeworIAlndWlu dAkJCXdhdGNoOworIAlHU0xpc3QJCQkqcmVxdWVzdHM7CisgCXN0cnVjdCBtZWRpYV9hZGFwdGVy CSphZGFwdGVyOworKwlzdHJ1Y3QgbWVkaWFfYXBwCSphcHA7CisgCUdTTGlzdAkJCSp0cmFuc3Bv cnRzOworIAlzdHJ1Y3QgZW5kcG9pbnRfZmVhdHVyZXMJZmVhdHVyZXM7CisgfTsKKyAKKyBzdHJ1 Y3QgbG9jYWxfcGxheWVyIHsKKyAJc3RydWN0IG1lZGlhX2FkYXB0ZXIJKmFkYXB0ZXI7CisrCXN0 cnVjdCBtZWRpYV9hcHAJKmFwcDsKKyAJY2hhcgkJCSpzZW5kZXI7CS8qIFBsYXllciBEQnVzIGJ1 cyBpZCAqLworIAljaGFyCQkJKnBhdGg7CQkvKiBQbGF5ZXIgb2JqZWN0IHBhdGggKi8KKyAJR0hh c2hUYWJsZQkJKnNldHRpbmdzOwkvKiBQbGF5ZXIgc2V0dGluZ3MgKi8KK0BAIC0zMDUsNiArMzA3 LDExIEBAIHN0YXRpYyB2b2lkIG1lZGlhX2VuZHBvaW50X3JlbW92ZSh2b2lkICpkYXRhKQorIAl9 CisgI2VuZGlmCisgCisrCWlmIChlbmRwb2ludC0+YXBwKSB7CisrCQlxdWV1ZV9yZW1vdmUoZW5k cG9pbnQtPmFwcC0+ZW5kcG9pbnRzLCBlbmRwb2ludCk7CisrCQllbmRwb2ludC0+YXBwID0gTlVM TDsKKysJfQorKworIAlpbmZvKCJFbmRwb2ludCB1bnJlZ2lzdGVyZWQ6IHNlbmRlcj0lcyBwYXRo PSVzIiwgZW5kcG9pbnQtPnNlbmRlciwKKyAJCQllbmRwb2ludC0+cGF0aCk7CisgCitAQCAtMjA3 Niw2ICsyMDgzLDExIEBAIHN0YXRpYyB2b2lkIGxvY2FsX3BsYXllcl9yZW1vdmUodm9pZCAqZGF0 YSkKKyB7CisgCXN0cnVjdCBsb2NhbF9wbGF5ZXIgKm1wID0gZGF0YTsKKyAKKysJaWYgKG1wLT5h cHApIHsKKysJCXF1ZXVlX3JlbW92ZShtcC0+YXBwLT5wbGF5ZXJzLCBtcCk7CisrCQltcC0+YXBw ID0gTlVMTDsKKysJfQorKworIAlpbmZvKCJQbGF5ZXIgdW5yZWdpc3RlcmVkOiBzZW5kZXI9JXMg cGF0aD0lcyIsIG1wLT5zZW5kZXIsIG1wLT5wYXRoKTsKKyAKKyAJbG9jYWxfcGxheWVyX2Rlc3Ry b3kobXApOworQEAgLTMxNjgsNiArMzE4MCw4IEBAIHN0YXRpYyB2b2lkIGFwcF9yZWdpc3Rlcl9l bmRwb2ludCh2b2lkICpkYXRhLCB2b2lkICp1c2VyX2RhdGEpCisgCQlyZXR1cm47CisgCX0KKyAK KysJZW5kcG9pbnQtPmFwcCA9IGFwcDsKKysKKyAJcXVldWVfcHVzaF90YWlsKGFwcC0+ZW5kcG9p bnRzLCBlbmRwb2ludCk7CisgCisgCXJldHVybjsKK0BAIC0zMTk2LDYgKzMyMTAsOCBAQCBzdGF0 aWMgdm9pZCBhcHBfcmVnaXN0ZXJfcGxheWVyKHZvaWQgKmRhdGEsIHZvaWQgKnVzZXJfZGF0YSkK KyAJaWYgKCFwbGF5ZXIpCisgCQlyZXR1cm47CisgCisrCXBsYXllci0+YXBwID0gYXBwOworKwor IAlpZiAoZ19kYnVzX3Byb3h5X2dldF9wcm9wZXJ0eShwcm94eSwgIlBsYXliYWNrU3RhdHVzIiwg Jml0ZXIpKSB7CisgCQlpZiAoIXNldF9zdGF0dXMocGxheWVyLCAmaXRlcikpCisgCQkJZ290byBm YWlsOworLS0gCisyLjU0LjAKKworCitGcm9tIGIwYWJlMjNmNThmMWVjYzQ0ZDlkMGI2YjMyOGJl NzJkMmQyMTEzYjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBOYWdhIEJoYXZhbmkg QWtlbGxhIDxuYWdhLmFrZWxsYUBvc3MucXVhbGNvbW0uY29tPgorRGF0ZTogV2VkLCAxNSBKdWwg MjAyNiAxNDowOTo1NiArMDUzMAorU3ViamVjdDogW1BBVENIIDE4LzE5XSBkb2Mvb3JnLmJsdWV6 LkNoYW5uZWxTb3VuZGluZzE6QWRkIFVzZWQgYnkgcmVmZXJlbmNlCisgYW5kIEV4YW1wbGVzCisK K0FkZCA6VXNlZCBieTogZmllbGQgbGlua2luZyB0byBibHVldG9vdGhjdGwgY3Mgc3VibWVudSBh bmQKK0V4YW1wbGVzIHNlY3Rpb24gc2hvd2luZyBjb3JyZXNwb25kaW5nIGJsdWV0b290aGN0bCBj cyBjb21tYW5kcworZm9yIEQtQnVzIG1ldGhvZHMKKy0tLQorIE1ha2VmaWxlLmFtICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKworIGRvYy9vcmcuYmx1ZXouQ2hhbm5lbFNvdW5kaW5nMS5y c3QgfCA1MzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQs IDUzNiBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9vcmcuYmx1ZXouQ2hh bm5lbFNvdW5kaW5nMS5yc3QKKworZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUu YW0KK2luZGV4IDc2YzRhYjVkNGY0ZS4uMjNiOTZjMmUzMDNmIDEwMDY0NAorLS0tIGEvTWFrZWZp bGUuYW0KKysrKyBiL01ha2VmaWxlLmFtCitAQCAtNDA1LDYgKzQwNSw3IEBAIG1hbl9NQU5TICs9 IGRvYy9vcmcuYmx1ZXouVGVsZXBob255LjUgZG9jL29yZy5ibHVlei5DYWxsLjUKKyBtYW5fTUFO UyArPSBkb2Mvb3JnLmJsdWV6LlRoZXJtb21ldGVyTWFuYWdlci41IFwKKyAJCWRvYy9vcmcuYmx1 ZXouVGhlcm1vbWV0ZXIuNSBcCisgCQlkb2Mvb3JnLmJsdWV6LlRoZXJtb21ldGVyV2F0Y2hlci41 CisrbWFuX01BTlMgKz0gZG9jL29yZy5ibHVlei5DaGFubmVsU291bmRpbmcxLjUKKyBlbmRpZgor IG1hbnVhbF9wYWdlcyArPSBkb2MvYmx1ZXRvb3RoZC44CisgbWFudWFsX3BhZ2VzICs9IGRvYy9o Y2kuNyBkb2MvbWdtdC43IGRvYy9sMmNhcC43IGRvYy9yZmNvbW0uNyBkb2Mvc2NvLjcgXAorQEAg LTQ0NSw2ICs0NDYsNyBAQCBtYW51YWxfcGFnZXMgKz0gZG9jL29yZy5ibHVlei5UZWxlcGhvbnku NSBkb2Mvb3JnLmJsdWV6LkNhbGwuNQorIG1hbnVhbF9wYWdlcyArPSBkb2Mvb3JnLmJsdWV6LlRo ZXJtb21ldGVyTWFuYWdlci41IFwKKyAJCWRvYy9vcmcuYmx1ZXouVGhlcm1vbWV0ZXIuNSBcCisg CQlkb2Mvb3JnLmJsdWV6LlRoZXJtb21ldGVyV2F0Y2hlci41CisrbWFudWFsX3BhZ2VzICs9IGRv Yy9vcmcuYmx1ZXouQ2hhbm5lbFNvdW5kaW5nMS41CisgCisgRVhUUkFfRElTVCArPSBzcmMvZ2Vu YnVpbHRpbiBzcmMvYmx1ZXRvb3RoLmNvbmYgXAorIAkJCXNyYy9tYWluLmNvbmYgcHJvZmlsZXMv bmV0d29yay9uZXR3b3JrLmNvbmYgXAorZGlmZiAtLWdpdCBhL2RvYy9vcmcuYmx1ZXouQ2hhbm5l bFNvdW5kaW5nMS5yc3QgYi9kb2Mvb3JnLmJsdWV6LkNoYW5uZWxTb3VuZGluZzEucnN0CituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi5jMDZlMWQ3Mjg1ZTAKKy0tLSAv ZGV2L251bGwKKysrKyBiL2RvYy9vcmcuYmx1ZXouQ2hhbm5lbFNvdW5kaW5nMS5yc3QKK0BAIC0w LDAgKzEsNTM0IEBACisrPT09PT09PT09PT09PT09PT09PT09PT09PT0KKytvcmcuYmx1ZXouQ2hh bm5lbFNvdW5kaW5nMQorKz09PT09PT09PT09PT09PT09PT09PT09PT09CisrCisrLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0JsdWVaIEQtQnVzIENoYW5u ZWwgU291bmRpbmcgQVBJIGRvY3VtZW50YXRpb24KKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrOlZlcnNpb246IEJsdWVaCisrOkRhdGU6IEp1bmUg MjAyNgorKzpNYW51YWwgc2VjdGlvbjogNQorKzpNYW51YWwgZ3JvdXA6IExpbnV4IFN5c3RlbSBB ZG1pbmlzdHJhdGlvbgorKworK0ludGVyZmFjZQorKz09PT09PT09PQorKworKzpTZXJ2aWNlOglv cmcuYmx1ZXoKKys6SW50ZXJmYWNlOglvcmcuYmx1ZXouQ2hhbm5lbFNvdW5kaW5nMQorKzpPYmpl Y3QgcGF0aDoJW3ZhcmlhYmxlIHByZWZpeF0ve2hjaTAsaGNpMSwuLi59L2Rldl9YWF9YWF9YWF9Y WF9YWF9YWAorKzpVc2VkIGJ5OgkqKmJsdWV0b290aGN0bCgxKSoqLCAqKmJsdWV0b290aGN0bC1j cygxKSoqCisrCisrTWV0aG9kcworKy0tLS0tLS0KKysKKyt2b2lkIFN0YXJ0TWVhc3VyZW1lbnQo ZGljdCBwYXJhbXMpCisrYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYAorKworK1N0 YXJ0cyBhIENoYW5uZWwgU291bmRpbmcgZGlzdGFuY2UgbWVhc3VyZW1lbnQgcHJvY2VkdXJlIG9u IHRoZSBjb25uZWN0ZWQKKytkZXZpY2UuIEFsbCBjb25maWd1cmF0aW9uIGlzIHN1cHBsaWVkIGlu IGEgc2luZ2xlIGBgYXtzdn1gYCBkaWN0aW9uYXJ5LgorK0FueSBrZXkgdGhhdCBpcyBvbWl0dGVk IHJldGFpbnMgaXRzIGN1cnJlbnQgdmFsdWUgaW4gdGhlIGRhZW1vbi4KKysKKytUaGUgZGV2aWNl IHRvIG1lYXN1cmUgaXMgaWRlbnRpZmllZCBieSB0aGUgRC1CdXMgb2JqZWN0IHBhdGggb24gd2hp Y2gKKyt0aGlzIG1ldGhvZCBpcyBjYWxsZWQKKysoYGBbdmFyaWFibGUgcHJlZml4XS97aGNpMCxo Y2kxLC4uLn0vZGV2X1hYX1hYX1hYX1hYX1hYX1hYYGApLgorK09ubHkgb25lIG1lYXN1cmVtZW50 IHBlciBkZXZpY2Ugb2JqZWN0IG1heSBiZSBhY3RpdmUgYXQgYSB0aW1lLiBDYWxsaW5nCisrKipT dGFydE1lYXN1cmVtZW50Kiogd2hpbGUgYSBzZXNzaW9uIGlzIGFscmVhZHkgYWN0aXZlIHJldHVy bnMKKytgYG9yZy5ibHVlei5FcnJvci5JblByb2dyZXNzYGAuCisrCisrV2hlbiBgYHJvbGVgYCBp cyBSZWZsZWN0b3IgKGBgMHgwMmBgKSwgdGhpcyBtZXRob2QgZG9lcyBub3Qgc3RhcnQgYSBDUwor K2Rpc3RhbmNlIG1lYXN1cmVtZW50OiBhIFJlZmxlY3RvciBuZXZlciBpbml0aWF0ZXMgYSBwcm9j ZWR1cmUgbG9jYWxseSwKKytzbyBpdCBjYW5ub3Qgc3RhcnQgb25lIHZpYSB0aGlzIGNhbGwuIElu c3RlYWQsIGFsbCBnaXZlbiBjb25maWd1cmF0aW9uCisraXMgYXBwbGllZCBhbmQgc3RvcmVkIHNv IHRoZSBjb250cm9sbGVyIGlzIHJlYWR5IHRvIHJlc3BvbmQgb25jZSBhCisrcmVtb3RlIEluaXRp YXRvciBiZWdpbnMgYSBwcm9jZWR1cmUsIGFuZCB0aGUgbWV0aG9kIHJldHVybnMgc3VjY2Vzcwor K3dpdGhvdXQgYXJtaW5nIGEgbG9jYWwgbWVhc3VyZW1lbnQgc2Vzc2lvbi4gVGhlIGBgQWN0aXZl YGAgcHJvcGVydHkKKytvbmx5IHRyYW5zaXRpb25zIHRvIGBgdHJ1ZWBgIHdoZW4gYSByZW1vdGUt aW5pdGlhdGVkIHByb2NlZHVyZQorK2FjdHVhbGx5IHN0YXJ0cywgd2hpY2ggbWF5IGhhcHBlbiB3 ZWxsIGFmdGVyIHRoaXMgbWV0aG9kIHJldHVybnMgKG9yCisrbm90IGF0IGFsbCwgaWYgdGhlIHJl bW90ZSBuZXZlciBpbml0aWF0ZXMgb25lKS4gQ2xpZW50cyB0aGF0IHdhdGNoCisrYGBQcm9wZXJ0 aWVzQ2hhbmdlZGBgIGZvciBgYEFjdGl2ZWBgIChhcyAqKmJsdWV0b290aGN0bC1jcygxKSoqIGRv ZXMpCisrYXJlIG5vdGlmaWVkIG9mIGJvdGggdGhlIHJlbW90ZS1pbml0aWF0ZWQgc3RhcnQgYW5k IGl0cyBldmVudHVhbCBzdG9wLgorKworK0ZvciBJbml0aWF0b3Igcm9sZSAob3IgQm90aCksIGBg ZHVyYXRpb25fc2Vjc2BgIGFuZCB0aGUgZGV2aWNlIG9iamVjdAorK3BhdGggYXJlIHRoZSBwYXJh bWV0ZXJzIHRoYXQgbWF0dGVyIHRvIHN0YXJ0IGEgbWVhc3VyZW1lbnQ7IGV2ZXJ5Cisrb3RoZXIg a2V5IGJlbG93IGlzIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gd2l0aCBhIHVzYWJsZSBkZWZhdWx0 LiBGb3IKKytSZWZsZWN0b3Igcm9sZSwgb25seSBgYHJvbGVgYCwgYGBzeW5jX2FudF9zZWxgYCBh bmQgYGBtYXhfdHhfcG93ZXJgYAorK2FyZSByZXF1aXJlZCBvciBoYXZlIGFueSBlZmZlY3Qg4oCU IHRoZSByZW1haW5pbmcga2V5cyBhcmUgYWNjZXB0ZWQgYnV0Cisrb3RoZXJ3aXNlIHVudXNlZCwg c2luY2Ugbm8gbG9jYWwgcHJvY2VkdXJlIGlzIGFybWVkLgorKworK1N1cHBvcnRlZCBkaWN0aW9u YXJ5IGtleXM6CisrCisrOnVpbnQzMiBkdXJhdGlvbl9zZWNzIChEZWZhdWx0OiAwKToKKysKKysJ RHVyYXRpb24gaW4gc2Vjb25kcyBiZWZvcmUgdGhlIG1lYXN1cmVtZW50IGlzIHN0b3BwZWQKKysJ YXV0b21hdGljYWxseS4gQSB2YWx1ZSBvZiAwIGRpc2FibGVzIHRoZSBhdXRvbWF0aWMgdGltZW91 dC4KKysKKys6Ynl0ZSByb2xlIChEZWZhdWx0OiAweDAzKToKKysKKysJQ1Mgcm9sZSB0byB1c2Ug Zm9yIHRoZSBtZWFzdXJlbWVudC4KKysKKysJUG9zc2libGUgdmFsdWVzOgorKworKwk6MHgwMTog SW5pdGlhdG9yCisrCToweDAyOiBSZWZsZWN0b3IKKysJOjB4MDM6IEJvdGggKEluaXRpYXRvciBh bmQgUmVmbGVjdG9yKQorKworKzpieXRlIHN5bmNfYW50X3NlbCAoRGVmYXVsdDogMHhGRik6Cisr CisrCUNTIHN5bmMgYW50ZW5uYSBzZWxlY3Rpb24uIFZhbHVlcyAweEZFIGFuZCAweEZGIGFyZSBy ZXNlcnZlZAorKwlieSB0aGUgQmx1ZXRvb3RoIHNwZWNpZmljYXRpb24uCisrCisrOmJ5dGUgbWF4 X3R4X3Bvd2VyIChEZWZhdWx0OiAweDE0KToKKysKKysJTWF4aW11bSBUWCBwb3dlciBpbiBkQm0s IHRyZWF0ZWQgYXMgYSBzaWduZWQgdmFsdWUuIFZhbGlkCisrCXJhbmdlIGlzIC0xMjcgdG8gKzIw IGRCbS4KKysKKys6Ynl0ZSBjb25maWdfaWQ6CisrCisrCUNTIGNvbmZpZ3VyYXRpb24gaWRlbnRp Zmllci4KKysKKys6Ynl0ZSBtYWluX21vZGVfdHlwZToKKysKKysJTWFpbiBDUyBtb2RlIHVzZWQg aW4gdGhlIHByb2NlZHVyZS4KKysKKys6Ynl0ZSBzdWJfbW9kZV90eXBlOgorKworKwlTdWItbW9k ZSB3aXRoaW4gdGhlIG1haW4gbW9kZS4gU2V0IHRvIDB4RkYgd2hlbiB1bnVzZWQuCisrCisrOmJ5 dGUgbWFpbl9tb2RlX21pbl9zdGVwczoKKysKKysJTWluaW11bSBudW1iZXIgb2YgQ1MgbWFpbiBt b2RlIHN0ZXBzIHBlciBDUyBzdWJldmVudC4KKysKKys6Ynl0ZSBtYWluX21vZGVfbWF4X3N0ZXBz OgorKworKwlNYXhpbXVtIG51bWJlciBvZiBDUyBtYWluIG1vZGUgc3RlcHMgcGVyIENTIHN1YmV2 ZW50LgorKworKzpieXRlIG1haW5fbW9kZV9yZXBldGl0aW9uOgorKworKwlOdW1iZXIgb2YgdGlt ZXMgdGhlIG1haW4gbW9kZSBzdGVwcyBhcmUgcmVwZWF0ZWQgaW4gYQorKwlzdWJldmVudC4KKysK Kys6Ynl0ZSBtb2RlMF9zdGVwczoKKysKKysJTnVtYmVyIG9mIENTIE1vZGUgMCBzdGVwcyBhdCB0 aGUgYmVnaW5uaW5nIG9mIGVhY2ggc3ViZXZlbnQuCisrCisrOmJ5dGUgcnR0X3R5cGVzOgorKwor KwlSb3VuZCBUcmlwIFRpbWUgbWVhc3VyZW1lbnQgdHlwZXMgZm9yIHRoZSBjb25maWd1cmF0aW9u LgorKworKzpieXRlIHN5bmNfcGh5OgorKworKwlQSFkgdXNlZCBmb3IgQ1Mgc3luYyBwYWNrZXRz LgorKworKwlQb3NzaWJsZSB2YWx1ZXM6CisrCisrCToweDAxOiBMRSAxTSBQSFkKKysJOjB4MDI6 IExFIDJNIFBIWQorKworKzphcnJheXtieXRlfSBjaGFubmVsX21hcDoKKysKKysJMTAtYnl0ZSBj aGFubmVsIG1hcCBiaXRtYXAuIE11c3QgYmUgZXhhY3RseSAxMCBieXRlcy4KKysKKys6Ynl0ZSBj aGFubmVsX21hcF9yZXBldGl0aW9uOgorKworKwlOdW1iZXIgb2YgY29uc2VjdXRpdmUgcmVwZXRp dGlvbnMgb2YgdGhlIGNoYW5uZWwgbWFwLgorKworKzpieXRlIGNoYW5uZWxfc2VsZWN0aW9uX3R5 cGU6CisrCisrCUFsZ29yaXRobSB1c2VkIGZvciBDUyBjaGFubmVsIHNlbGVjdGlvbi4KKysKKys6 Ynl0ZSBjaGFubmVsX3NoYXBlOgorKworKwlTaGFwZSB1c2VkIGluIHRoZSBjaGFubmVsIHNlbGVj dGlvbiBhbGdvcml0aG0uCisrCisrOmJ5dGUgY2hhbm5lbF9qdW1wOgorKworKwlDaGFubmVsIGp1 bXAgc2l6ZSB1c2VkIGluIHRoZSBjaGFubmVsIHNlbGVjdGlvbiBhbGdvcml0aG0uCisrCisrOmJ5 dGUgY29tcGFuaW9uX3NpZ25hbF9lbmFibGU6CisrCisrCVNldCB0byAxIHRvIHRyYW5zbWl0IGEg Y29tcGFuaW9uIHNpZ25hbCBhbG9uZ3NpZGUgdGhlIENTCisrCXRvbmUsIDAgdG8gZGlzYWJsZS4K KysKKys6dWludDE2IG1heF9wcm9jZWR1cmVfZHVyYXRpb246CisrCisrCU1heGltdW0gZHVyYXRp b24gb2YgYSBzaW5nbGUgQ1MgbWVhc3VyZW1lbnQgcHJvY2VkdXJlLgorKworKzp1aW50MTYgbWlu X3BlcmlvZF9iZXR3ZWVuX3Byb2NlZHVyZXM6CisrCisrCU1pbmltdW0gdGltZSBiZXR3ZWVuIGNv bnNlY3V0aXZlIENTIG1lYXN1cmVtZW50IHByb2NlZHVyZXMuCisrCisrOnVpbnQxNiBtYXhfcGVy aW9kX2JldHdlZW5fcHJvY2VkdXJlczoKKysKKysJTWF4aW11bSB0aW1lIGJldHdlZW4gY29uc2Vj dXRpdmUgQ1MgbWVhc3VyZW1lbnQgcHJvY2VkdXJlcy4KKysKKys6dWludDE2IG1heF9wcm9jZWR1 cmVfY291bnQ6CisrCisrCU1heGltdW0gbnVtYmVyIG9mIENTIG1lYXN1cmVtZW50IHByb2NlZHVy ZXMgdG8gcnVuLgorKwlBIHZhbHVlIG9mIDAgbWVhbnMgbm8gbGltaXQuCisrCisrOmFycmF5e2J5 dGV9IG1pbl9zdWJfZXZlbnRfbGVuOgorKworKwlNaW5pbXVtIENTIHN1YmV2ZW50IGxlbmd0aCBh cyBhIDMtYnl0ZSBsaXR0bGUtZW5kaWFuIHZhbHVlLgorKwlNdXN0IGJlIGV4YWN0bHkgMyBieXRl cy4KKysKKys6YXJyYXl7Ynl0ZX0gbWF4X3N1Yl9ldmVudF9sZW46CisrCisrCU1heGltdW0gQ1Mg c3ViZXZlbnQgbGVuZ3RoIGFzIGEgMy1ieXRlIGxpdHRsZS1lbmRpYW4gdmFsdWUuCisrCU11c3Qg YmUgZXhhY3RseSAzIGJ5dGVzLgorKworKzpieXRlIHRvbmVfYW50ZW5uYV9jb25maWdfc2VsZWN0 aW9uOgorKworKwlBbnRlbm5hIGNvbmZpZ3VyYXRpb24gdXNlZCBmb3IgQ1MgdG9uZSBleGNoYW5n ZXMuCisrCisrOmJ5dGUgcGh5OgorKworKwlQSFkgdXNlZCBkdXJpbmcgQ1MgcHJvY2VkdXJlcy4K KysKKysJUG9zc2libGUgdmFsdWVzOgorKworKwk6MHgwMTogTEUgMU0gUEhZCisrCToweDAyOiBM RSAyTSBQSFkKKysKKys6Ynl0ZSB0eF9wb3dlcl9kZWx0YToKKysKKysJRGlmZmVyZW5jZSBiZXR3 ZWVuIHJlbW90ZSBhbmQgbG9jYWwgVFggcG93ZXIgZHVyaW5nIENTCisrCXByb2NlZHVyZXMuIDB4 ODAgaW5kaWNhdGVzIG5vdCBhcHBsaWNhYmxlLgorKworKzpieXRlIHByZWZlcnJlZF9wZWVyX2Fu dGVubmE6CisrCisrCVByZWZlcnJlZCBhbnRlbm5hIHRvIGJlIHVzZWQgYnkgdGhlIHBlZXIgZGV2 aWNlLgorKworKzpieXRlIHNucl9jb250cm9sX2luaXRpYXRvcjoKKysKKysJU05SIGNvbnRyb2wg c2V0dGluZyBmb3IgdGhlIGluaXRpYXRvciByb2xlLgorKwkweEZGIGluZGljYXRlcyBubyBwcmVm ZXJlbmNlLgorKworKzpieXRlIHNucl9jb250cm9sX3JlZmxlY3RvcjoKKysKKysJU05SIGNvbnRy b2wgc2V0dGluZyBmb3IgdGhlIHJlZmxlY3RvciByb2xlLgorKwkweEZGIGluZGljYXRlcyBubyBw cmVmZXJlbmNlLgorKworK1Bvc3NpYmxlIGVycm9yczoKKysKKys6b3JnLmJsdWV6LkVycm9yLklu UHJvZ3Jlc3M6CisrOm9yZy5ibHVlei5FcnJvci5JbnZhbGlkQXJnczoKKys6b3JnLmZyZWVkZXNr dG9wLkRCdXMuRXJyb3IuRmFpbGVkOgorKworK0V4YW1wbGVzOgorKworKzpibHVldG9vdGhjdGwg c2V0IHJvbGUgdGhlbiBzdGFydDoKKysJfCBbY3NdID4gcm9sZSAweDAxCisrCXwgW2NzXSA+IG1h aW5fbW9kZV90eXBlIDIKKysJfCBbY3NdID4gc3RhcnQgQUE6QkI6Q0M6REQ6RUU6RkYKKys6Ymx1 ZXRvb3RoY3RsIHN0YXJ0IHdpdGggZGVmYXVsdHM6CisrCXwgW2NzXSA+IHN0YXJ0IFtkZXZfYWRk cl0gW2R1cmF0aW9uX3NlY3NdCisrOmJsdWV0b290aGN0bCBjb25maWd1cmUgYXMgUmVmbGVjdG9y IChhcHBsaWVzIHNldHRpbmdzLCBkb2VzIG5vdCBzdGFydCBhIG1lYXN1cmVtZW50KToKKysJfCBb Y3NdID4gcm9sZSAweDAyCisrCXwgW2NzXSA+IHN0YXJ0CisrCisrdm9pZCBTdG9wTWVhc3VyZW1l bnQodm9pZCkKKytgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYAorKworK1N0b3BzIHRoZSBhY3Rp dmUgQ2hhbm5lbCBTb3VuZGluZyBkaXN0YW5jZSBtZWFzdXJlbWVudCBvbiB0aGlzIGRldmljZS4K KytUaGUgZGV2aWNlIGlzIGlkZW50aWZpZWQgYnkgdGhlIEQtQnVzIG9iamVjdCBwYXRoIG9uIHdo aWNoIHRoaXMgbWV0aG9kCisraXMgY2FsbGVkIOKAlCBubyBzZXNzaW9uIGlkZW50aWZpZXIgaXMg cmVxdWlyZWQuCisrCisrUmFpc2VzIGBgb3JnLmJsdWV6LkVycm9yLk5vdENvbm5lY3RlZGBgIGlm IG5vIG1lYXN1cmVtZW50IGlzIGFjdGl2ZS4KKysKKytQb3NzaWJsZSBlcnJvcnM6CisrCisrOm9y Zy5ibHVlei5FcnJvci5Ob3RDb25uZWN0ZWQ6CisrOm9yZy5mcmVlZGVza3RvcC5EQnVzLkVycm9y LkZhaWxlZDoKKysKKytJbiAqKmJsdWV0b290aGN0bCgxKSoqLCB0aGUgZGV2aWNlIGFkZHJlc3Mg YXJndW1lbnQgbWF5IGJlIG9taXR0ZWQgb25seQorK3doZW4gYSBzaW5nbGUgbWVhc3VyZW1lbnQg aXMgYWN0aXZlOyBpdCBpcyByZXF1aXJlZCB3aGVuIG11bHRpcGxlCisrbWVhc3VyZW1lbnRzIGFy ZSBhY3RpdmUuCisrCisrRXhhbXBsZXM6CisrCisrOmJsdWV0b290aGN0bCBzdG9wIHRoZSBvbmx5 IGFjdGl2ZSBtZWFzdXJlbWVudDoKKysJfCBbY3NdID4gc3RvcAorKzpibHVldG9vdGhjdGwgc3Rv cCBhIHNwZWNpZmljIGRldmljZSB3aGVuIG11bHRpcGxlIGFyZSBhY3RpdmU6CisrCXwgW2NzXSA+ IHN0b3AgQUE6QkI6Q0M6REQ6RUU6RkYKKysKKytTaWduYWxzCisrLS0tLS0tLQorKworK3ZvaWQg UHJvY2VkdXJlRGF0YShkaWN0IGRhdGEpCisrYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg CisrCisrRW1pdHRlZCB3aGVuIGEgQ2hhbm5lbCBTb3VuZGluZyBtZWFzdXJlbWVudCBwcm9jZWR1 cmUgY29tcGxldGVzIG9uIHRoaXMKKytkZXZpY2UsIGNhcnJ5aW5nIHRoZSByYXcgQ1MgcHJvY2Vk dXJlIHJlc3VsdHMgYXMgcmVwb3J0ZWQgYnkgdGhlCisrY29udHJvbGxlci4gQ29uc3VtZXJzIHN1 Y2ggYXMgYW4gZXh0ZXJuYWwgcmFuZ2luZyBlc3RpbWF0aW9uIGRhZW1vbgorK3N1YnNjcmliZSB0 byB0aGlzIHNpZ25hbCB0byBjb21wdXRlIGRpc3RhbmNlIGVzdGltYXRlcy4KKysKKys6ZGljdCBk YXRhOgorKworKwk6aW50MzIgcHJvY2VkdXJlQ291bnRlcjoKKysKKysJCVByb2NlZHVyZSBjb3Vu dGVyIHZhbHVlIGZyb20gdGhlIGNvbnRyb2xsZXIuCisrCisrCTppbnQzMiBwcm9jZWR1cmVTZXF1 ZW5jZToKKysKKysJCVNlcXVlbmNlIG51bWJlciBvZiB0aGlzIHByb2NlZHVyZS4KKysKKysJOmJ5 dGUgaW5pdGlhdG9yU2VsZWN0ZWRUeFBvd2VyOgorKworKwkJVFggcG93ZXIgc2VsZWN0ZWQgYnkg dGhlIEluaXRpYXRvciwgdHJlYXRlZCBhcyBhIHNpZ25lZAorKwkJdmFsdWUuCisrCisrCTpieXRl IHJlZmxlY3RvclNlbGVjdGVkVHhQb3dlcjoKKysKKysJCVRYIHBvd2VyIHNlbGVjdGVkIGJ5IHRo ZSBSZWZsZWN0b3IsIHRyZWF0ZWQgYXMgYSBzaWduZWQKKysJCXZhbHVlLgorKworKwk6dWludDMy IGluaXRpYXRvclN1YmV2ZW50Q291bnQ6CisrCisrCQlOdW1iZXIgb2Ygc3ViZXZlbnQgcmVzdWx0 cyByZXBvcnRlZCBieSB0aGUgSW5pdGlhdG9yLgorKworKwk6YXJyYXl7ZGljdH0gaW5pdGlhdG9y U3ViZXZlbnRSZXN1bHRzOgorKworKwkJUHJlc2VudCBvbmx5IHdoZW4gYGBpbml0aWF0b3JTdWJl dmVudENvdW50YGAgaXMgZ3JlYXRlcgorKwkJdGhhbiAwLiBPbmUgZW50cnkgcGVyIEluaXRpYXRv ciBzdWJldmVudCwgZWFjaCB3aXRoIHRoZQorKwkJZmllbGRzIGRlc2NyaWJlZCBpbiBgU3ViZXZl bnQgUmVzdWx0YF8gYmVsb3cuCisrCisrCTpieXRlIGluaXRpYXRvclByb2NlZHVyZUFib3J0UmVh c29uOgorKworKwkJUmVhc29uIHRoZSBJbml0aWF0b3IncyBwcm9jZWR1cmUgd2FzIGFib3J0ZWQs IDAgaWYgbm90CisrCQlhYm9ydGVkLgorKworKwk6dWludDMyIHJlZmxlY3RvclN1YmV2ZW50Q291 bnQ6CisrCisrCQlOdW1iZXIgb2Ygc3ViZXZlbnQgcmVzdWx0cyByZXBvcnRlZCBieSB0aGUgUmVm bGVjdG9yLgorKworKwk6YXJyYXl7ZGljdH0gcmVmbGVjdG9yU3ViZXZlbnRSZXN1bHRzOgorKwor KwkJUHJlc2VudCBvbmx5IHdoZW4gYGByZWZsZWN0b3JTdWJldmVudENvdW50YGAgaXMgZ3JlYXRl cgorKwkJdGhhbiAwLiBPbmUgZW50cnkgcGVyIFJlZmxlY3RvciBzdWJldmVudCwgZWFjaCB3aXRo IHRoZQorKwkJZmllbGRzIGRlc2NyaWJlZCBpbiBgU3ViZXZlbnQgUmVzdWx0YF8gYmVsb3cuCisr CisrCTpieXRlIHJlZmxlY3RvclByb2NlZHVyZUFib3J0UmVhc29uOgorKworKwkJUmVhc29uIHRo ZSBSZWZsZWN0b3IncyBwcm9jZWR1cmUgd2FzIGFib3J0ZWQsIDAgaWYgbm90CisrCQlhYm9ydGVk LgorKworKwk6ZGljdCBwcm9jZWR1cmVFbmFibGVDb25maWc6CisrCisrCQk6Ynl0ZSB0b25lQW50 ZW5uYUNvbmZpZ1NlbGVjdGlvbjoKKysKKysJCQlBbnRlbm5hIGNvbmZpZ3VyYXRpb24gdXNlZCBm b3IgQ1MgdG9uZSBleGNoYW5nZXMuCisrCisrCQk6dWludDMyIHN1YmV2ZW50TGVuVXM6CisrCisr CQkJU3ViZXZlbnQgbGVuZ3RoIGluIG1pY3Jvc2Vjb25kcy4KKysKKysJCTpieXRlIHN1YmV2ZW50 c1BlckV2ZW50OgorKworKwkJCU51bWJlciBvZiBzdWJldmVudHMgcGVyIGV2ZW50LgorKworKwkJ OnVpbnQzMiBzdWJldmVudEludGVydmFsOgorKworKwkJCUludGVydmFsIGJldHdlZW4gc3ViZXZl bnRzLgorKworKwkJOnVpbnQzMiBldmVudEludGVydmFsOgorKworKwkJCUludGVydmFsIGJldHdl ZW4gZXZlbnRzLgorKworKwkJOnVpbnQzMiBwcm9jZWR1cmVJbnRlcnZhbDoKKysKKysJCQlJbnRl cnZhbCBiZXR3ZWVuIHByb2NlZHVyZXMuCisrCisrCQk6dWludDMyIHByb2NlZHVyZUNvdW50Ogor KworKwkJCU51bWJlciBvZiBwcm9jZWR1cmVzIGNvbmZpZ3VyZWQuCisrCisrCQk6dWludDMyIG1h eFByb2NlZHVyZUxlbjoKKysKKysJCQlNYXhpbXVtIHByb2NlZHVyZSBsZW5ndGguCisrCisrCTpk aWN0IGNzQ29uZmlnUGFyYW06CisrCisrCQk6Ynl0ZSBtb2RlVHlwZToKKysKKysJCQlNYWluIENT IG1vZGUgdXNlZCBpbiB0aGUgcHJvY2VkdXJlLgorKworKwkJOmJ5dGUgc3ViTW9kZVR5cGU6Cisr CisrCQkJU3ViLW1vZGUgd2l0aGluIHRoZSBtYWluIG1vZGUuCisrCisrCQk6Ynl0ZSBydHRUeXBl OgorKworKwkJCVJvdW5kIFRyaXAgVGltZSBtZWFzdXJlbWVudCB0eXBlLgorKworKwkJOmFycmF5 e2J5dGV9IGNoYW5uZWxNYXA6CisrCisrCQkJMTAtYnl0ZSBjaGFubmVsIG1hcCBiaXRtYXAuCisr CisrCQk6Ynl0ZSBtaW5NYWluTW9kZVN0ZXBzOgorKwkJOmJ5dGUgbWF4TWFpbk1vZGVTdGVwczoK KysJCTpieXRlIG1haW5Nb2RlUmVwZXRpdGlvbjoKKysJCTpieXRlIG1vZGUwU3RlcHM6CisrCisr CQk6Ynl0ZSByb2xlOgorKworKwkJCUNTIHJvbGUgaW4gZWZmZWN0IGZvciB0aGUgcHJvY2VkdXJl IChJbml0aWF0b3IsCisrCQkJUmVmbGVjdG9yLCBvciBCb3RoKS4KKysKKysJCTpieXRlIGNzU3lu Y1BoeVR5cGU6CisrCisrCQkJUEhZIHVzZWQgZm9yIENTIHN5bmMgcGFja2V0cy4KKysKKysJCTpi eXRlIGNoYW5uZWxTZWxlY3Rpb25UeXBlOgorKwkJOmJ5dGUgY2gzY1NoYXBlVHlwZToKKysJCTpi eXRlIGNoM2NKdW1wOgorKwkJOmJ5dGUgY2hhbm5lbE1hcFJlcGV0aXRpb246CisrCQk6Ynl0ZSB0 SXAxVGltZVVzOgorKwkJOmJ5dGUgdElwMlRpbWVVczoKKysJCTpieXRlIHRGY3NUaW1lVXM6Cisr CQk6Ynl0ZSB0UG1UaW1lVXM6CisrCQk6Ynl0ZSB0U3dUaW1lVXNTdXBwb3J0ZWRCeUxvY2FsOgor KwkJOmJ5dGUgdFN3VGltZVVzU3VwcG9ydGVkQnlSZW1vdGU6CisrCisrCQk6dWludDMyIGJsZUNv bm5JbnRlcnZhbDoKKysKKysJCQlCTEUgY29ubmVjdGlvbiBpbnRlcnZhbCBpbiBlZmZlY3QgZHVy aW5nIHRoZQorKwkJCXByb2NlZHVyZS4KKysKKytTdWJldmVudCBSZXN1bHQKKyt+fn5+fn5+fn5+ fn5+fn5+CisrCisrRWFjaCBlbGVtZW50IG9mIGBgaW5pdGlhdG9yU3ViZXZlbnRSZXN1bHRzYGAg YW5kCisrYGByZWZsZWN0b3JTdWJldmVudFJlc3VsdHNgYCBpcyBhIGRpY3Qgd2l0aCB0aGUgZm9s bG93aW5nIGZpZWxkczoKKysKKys6aW50MzIgc3RhcnRBY2xDb25uRXZ0Q291bnRlcjoKKysKKysJ QUNMIGNvbm5lY3Rpb24gZXZlbnQgY291bnRlciBhdCB0aGUgc3RhcnQgb2YgdGhlIHN1YmV2ZW50 LgorKworKzppbnQzMiBmcmVxQ29tcDoKKysKKysJRnJlcXVlbmN5IGNvbXBlbnNhdGlvbiB2YWx1 ZS4KKysKKys6Ynl0ZSByZWZQd3JMdmw6CisrCisrCVJlZmVyZW5jZSBwb3dlciBsZXZlbCwgdHJl YXRlZCBhcyBhIHNpZ25lZCB2YWx1ZS4KKysKKys6Ynl0ZSBudW1BbnRQYXRoczoKKysKKysJTnVt YmVyIG9mIGFudGVubmEgcGF0aHMgdXNlZC4KKysKKys6Ynl0ZSBzdWJldmVudEFib3J0UmVhc29u OgorKworKwlSZWFzb24gdGhlIHN1YmV2ZW50IHdhcyBhYm9ydGVkLCAwIGlmIG5vdCBhYm9ydGVk LgorKworKzp1aW50NjQgdGltZXN0YW1wTmFub3M6CisrCisrCVRpbWVzdGFtcCBvZiB0aGUgc3Vi ZXZlbnQgcmVzdWx0LCBpbiBuYW5vc2Vjb25kcy4KKysKKys6dWludDMyIG51bVN0ZXBzOgorKwor KwlOdW1iZXIgb2Ygc3RlcHMgcmVwb3J0ZWQgaW4gdGhpcyBzdWJldmVudC4KKysKKys6YXJyYXl7 ZGljdH0gc3RlcERhdGE6CisrCisrCU9uZSBlbnRyeSBwZXIgc3RlcC4gRWFjaCBlbnRyeSBoYXM6 CisrCisrCTpieXRlIHN0ZXBNb2RlOgorKworKwkJQ1Mgc3RlcCBtb2RlICgwLTMpLgorKworKwk6 Ynl0ZSBzdGVwQ2hhbm5lbDoKKysKKysJCUNoYW5uZWwgdXNlZCBmb3IgdGhlIHN0ZXAuCisrCisr CTpkaWN0IG1vZGVaZXJvRGF0YToKKysKKysJCVByZXNlbnQgd2hlbiBgYHN0ZXBNb2RlYGAgaXMg MC4KKysKKysJCTpieXRlIHBhY2tldFF1YWxpdHk6CisrCQk6Ynl0ZSBwYWNrZXRSc3NpRGJtOgor KwkJOmJ5dGUgcGFja2V0QW50ZW5uYToKKysKKysJCTppbnQzMiBpbml0aWF0b3JNZWFzdXJlZEZy ZXFPZmZzZXQ6CisrCisrCQkJRnJlcXVlbmN5IG9mZnNldCBtZWFzdXJlZCBieSB0aGUgSW5pdGlh dG9yLgorKworKwk6ZGljdCBtb2RlT25lRGF0YToKKysKKysJCVByZXNlbnQgd2hlbiBgYHN0ZXBN b2RlYGAgaXMgMS4KKysKKysJCTpieXRlIHBhY2tldFF1YWxpdHk6CisrCQk6Ynl0ZSBwYWNrZXRO YWRtOgorKwkJOmJ5dGUgcGFja2V0UnNzaURibToKKysKKysJCTppbnQzMiB0b2FUb2RJbml0aWF0 b3I6CisrCisrCQkJVGltZSBvZiBBcnJpdmFsIC8gVGltZSBvZiBEZXBhcnR1cmUgYXQgdGhlCisr CQkJSW5pdGlhdG9yLgorKworKwkJOmludDMyIHRvZFRvYVJlZmxlY3RvcjoKKysKKysJCQlUaW1l IG9mIERlcGFydHVyZSAvIFRpbWUgb2YgQXJyaXZhbCBhdCB0aGUKKysJCQlSZWZsZWN0b3IuCisr CisrCQk6Ynl0ZSBwYWNrZXRBbnRlbm5hOgorKworKwkJOmFycmF5e2ludDMyfSBwYWNrZXRQY3Qx OgorKworKwkJCUluLXBoYXNlL3F1YWRyYXR1cmUgc2FtcGxlIHBhaXIsIGFzCisrCQkJYGBbaV9z YW1wbGUsIHFfc2FtcGxlXWBgLgorKworKwkJOmFycmF5e2ludDMyfSBwYWNrZXRQY3QyOgorKwor KwkJCUluLXBoYXNlL3F1YWRyYXR1cmUgc2FtcGxlIHBhaXIsIGFzCisrCQkJYGBbaV9zYW1wbGUs IHFfc2FtcGxlXWBgLgorKworKwk6ZGljdCBtb2RlVHdvRGF0YToKKysKKysJCVByZXNlbnQgd2hl biBgYHN0ZXBNb2RlYGAgaXMgMi4KKysKKysJCTpieXRlIGFudGVubmFQZXJtdXRhdGlvbkluZGV4 OgorKworKwkJOmFycmF5e2ludDMyfSB0b25lUGN0SVFTYW1wbGVzOgorKworKwkJCUludGVybGVh dmVkIGluLXBoYXNlL3F1YWRyYXR1cmUgdG9uZSBzYW1wbGVzLCBhcworKwkJCWBgW2lfc2FtcGxl LCBxX3NhbXBsZSwgLi4uXWBgIOKAlCBvbmUgcGFpciBwZXIKKysJCQlhbnRlbm5hIHBhdGguCisr CisrCQk6YXJyYXl7Ynl0ZX0gdG9uZVF1YWxpdHlJbmRpY2F0b3JzOgorKworKwkJCU9uZSBxdWFs aXR5IGluZGljYXRvciBieXRlIHBlciBhbnRlbm5hIHBhdGguCisrCisrCTpkaWN0IG1vZGVUaHJl ZURhdGE6CisrCisrCQlQcmVzZW50IHdoZW4gYGBzdGVwTW9kZWBgIGlzIDMuIENvbnRhaW5zIHRo ZSBjb21iaW5lZAorKwkJZmllbGRzIG9mIGJvdGggKiptb2RlT25lRGF0YSoqIGFuZCAqKm1vZGVU d29EYXRhKiouCisrCisrUHJvcGVydGllcworKy0tLS0tLS0tLS0KKysKKytib29sZWFuIEFjdGl2 ZSBbcmVhZG9ubHldCisrYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYAorKworK0luZGljYXRlcyB3 aGV0aGVyIGEgQ1MgZGlzdGFuY2UgbWVhc3VyZW1lbnQgcHJvY2VkdXJlIGlzIGN1cnJlbnRseQor K2FjdGl2ZSBvbiB0aGlzIGRldmljZS4KKysKKytTZXQgdG8gYGB0cnVlYGAgd2hlbiBhIHByb2Nl ZHVyZSBzdGFydHMg4oCUIGVpdGhlciBiZWNhdXNlIHRoZSBsb2NhbAorK0luaXRpYXRvciBjYWxs ZWQgKipTdGFydE1lYXN1cmVtZW50Kiogc3VjY2Vzc2Z1bGx5LCBvciBiZWNhdXNlIHRoZQorK3Jl bW90ZSBJbml0aWF0b3IgZW5hYmxlZCBhIENTIHByb2NlZHVyZSBvbiB0aGUgbG9jYWwgUmVmbGVj dG9yLgorKworK1NldCB0byBgYGZhbHNlYGAgd2hlbiB0aGUgcHJvY2VkdXJlIHN0b3BzIGZvciBh bnkgcmVhc29uOiB0aGUgbG9jYWwKKythcHBsaWNhdGlvbiBjYWxsZWQgKipTdG9wTWVhc3VyZW1l bnQqKiwgdGhlIG1lYXN1cmVtZW50IGR1cmF0aW9uIHRpbWVyCisrZXhwaXJlZCwgb3IgdGhlIEFD TCBjb25uZWN0aW9uIHdhcyBkcm9wcGVkLgorKworK1RoaXMgcHJvcGVydHkgZW1pdHMgYGBQcm9w ZXJ0aWVzQ2hhbmdlZGBgIG9uIGV2ZXJ5IHRyYW5zaXRpb24gc28gdGhhdAorK2NsaWVudHMgY2Fu IHRyYWNrIG1lYXN1cmVtZW50IHN0YXRlIHdpdGhvdXQgcG9sbGluZy4KKysKKytSRVNPVVJDRVMK Kys9PT09PT09PT0KKysKKytodHRwOi8vd3d3LmJsdWV6Lm9yZworKworK1JFUE9SVElORyBCVUdT CisrPT09PT09PT09PT09PT0KKysKKytsaW51eC1ibHVldG9vdGhAdmdlci5rZXJuZWwub3JnCist LSAKKzIuNTQuMAorCisKK0Zyb20gMzBkYjY2ZGM5NzFiZDFjZDk1ZDRhN2IwZWVhMjk2MzY3YWI2 NWIzYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5hZ2EgQmhhdmFuaSBBa2VsbGEg PG5hZ2EuYWtlbGxhQG9zcy5xdWFsY29tbS5jb20+CitEYXRlOiBXZWQsIDE1IEp1bCAyMDI2IDE0 OjA5OjU3ICswNTMwCitTdWJqZWN0OiBbUEFUQ0ggMTkvMTldIGRvYy9ibHVldG9vdGhjdGwtY3M6 IEFkZCA6VXNlczogZmllbGRzIGFuZCBkb2N1bWVudAorIGFyZ3VtZW50cworCitBZGQgOlVzZXM6 IGZpZWxkcyB0byBsaW5rIGNvbW1hbmRzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgRC1CdXMgQVBJ CittZXRob2RzLCBhbmQgZG9jdW1lbnQgY29tbWFuZCBhcmd1bWVudHMgd2l0aCB1c2FnZSBleGFt cGxlcworLS0tCisgTWFrZWZpbGUudG9vbHMgICAgICAgICAgfCAgIDUgKy0KKyBkb2MvYmx1ZXRv b3RoY3RsLWNzLnJzdCB8IDU0NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCisgMiBmaWxlcyBjaGFuZ2VkLCA1NDkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK KyBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL2JsdWV0b290aGN0bC1jcy5yc3QKKworZGlmZiAtLWdp dCBhL01ha2VmaWxlLnRvb2xzIGIvTWFrZWZpbGUudG9vbHMKK2luZGV4IDYxODg0NDlmMTU2NS4u MDY0NmQ1MmUxNGRjIDEwMDY0NAorLS0tIGEvTWFrZWZpbGUudG9vbHMKKysrKyBiL01ha2VmaWxl LnRvb2xzCitAQCAtMzU5LDcgKzM1OSw3IEBAIG1hbl9NQU5TICs9IGRvYy9yY3Rlc3QuMSBkb2Mv bDJwaW5nLjEgZG9jL2J0YXR0YWNoLjEgZG9jL2lzb3Rlc3QuMSBcCisgCQlkb2MvYmx1ZXRvb3Ro Y3RsLWdhdHQuMSBkb2MvYmx1ZXRvb3RoY3RsLXBsYXllci4xIFwKKyAJCWRvYy9ibHVldG9vdGhj dGwtc2Nhbi4xIGRvYy9ibHVldG9vdGhjdGwtdHJhbnNwb3J0LjEgXAorIAkJZG9jL2JsdWV0b290 aGN0bC1hc3Npc3RhbnQuMSBkb2MvYmx1ZXRvb3RoY3RsLWhjaS4xIFwKKy0JCWRvYy9ibHVldG9v dGhjdGwtdGVsZXBob255LjEKKysJCWRvYy9ibHVldG9vdGhjdGwtdGVsZXBob255LjEgZG9jL2Js dWV0b290aGN0bC1jcy4xCisgCisgZW5kaWYKKyAKK0BAIC00NjUsNyArNDY1LDggQEAgbWFudWFs X3BhZ2VzICs9IGRvYy9oY2lhdHRhY2guMSBkb2MvaGNpY29uZmlnLjEgZG9jL2hjaXRvb2wuMSBc CisgCQkJZG9jL2JsdWV0b290aGN0bC10cmFuc3BvcnQuMSBcCisgCQkJZG9jL2JsdWV0b290aGN0 bC1hc3Npc3RhbnQuMSBcCisgCQkJZG9jL2JsdWV0b290aGN0bC1oY2kuMSBcCistCQkJZG9jL2Js dWV0b290aGN0bC10ZWxlcGhvbnkuMQorKwkJCWRvYy9ibHVldG9vdGhjdGwtdGVsZXBob255LjEg XAorKwkJCWRvYy9ibHVldG9vdGhjdGwtY3MuMQorIAorIGlmIEhJRDJIQ0kKKyB1ZGV2ZGlyID0g JChVREVWX0RJUikKK2RpZmYgLS1naXQgYS9kb2MvYmx1ZXRvb3RoY3RsLWNzLnJzdCBiL2RvYy9i bHVldG9vdGhjdGwtY3MucnN0CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAw MDAwLi5iYmMxZDg1NjVmOTEKKy0tLSAvZGV2L251bGwKKysrKyBiL2RvYy9ibHVldG9vdGhjdGwt Y3MucnN0CitAQCAtMCwwICsxLDU0NiBAQAorKz09PT09PT09PT09PT09PT0KKytibHVldG9vdGhj dGwtY3MKKys9PT09PT09PT09PT09PT09CisrCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KytDaGFubmVsIFNvdW5kaW5nIFN1Ym1lbnUKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KworKzpWZXJzaW9uOiBCbHVlWgorKzpDb3B5cmlnaHQ6IEZyZWUgdXNlIG9mIHRoaXMgc29mdHdh cmUgaXMgZ3JhbnRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorKyAgICAgICAgICAgIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlcyAoTEdQTCkuCisrOkRhdGU6IEp1bmUgMjAyNgor KzpNYW51YWwgc2VjdGlvbjogMQorKzpNYW51YWwgZ3JvdXA6IExpbnV4IFN5c3RlbSBBZG1pbmlz dHJhdGlvbgorKworK1NZTk9QU0lTCisrPT09PT09PT0KKysKKysqKmJsdWV0b290aGN0bCoqIFst LW9wdGlvbnNdIFtjcy5jb21tYW5kc10KKysKKytUaGlzIHN1Ym1lbnUgY29udHJvbHMgQmx1ZXRv b3RoIENoYW5uZWwgU291bmRpbmcgKENTKSBkaXN0YW5jZSBtZWFzdXJlbWVudAorK3VzaW5nIHRo ZSAqKm9yZy5ibHVlei5DaGFubmVsU291bmRpbmcxKDUpKiogRC1CdXMgaW50ZXJmYWNlLiBJdCBh bGxvd3MKKytzdGFydGluZyBhbmQgc3RvcHBpbmcgbWVhc3VyZW1lbnRzIGFuZCBpbnNwZWN0aW5n IHRoZSBjdXJyZW50IHBhcmFtZXRlcgorK3N0YXRlIGFuZCBhY3RpdmUgc2Vzc2lvbiBpZGVudGlm aWVyLgorKworK0VhY2ggQ1MgcGFyYW1ldGVyIGhhcyBpdHMgb3duICoqY3MuPHBhcmFtPioqIHNl dCBjb21tYW5kIChzZWUgdGhlCisrKipDUyBQYXJhbWV0ZXIgQ29tbWFuZHMqKiBzZWN0aW9uIGJl bG93KS4gT3ZlcnJpZGVzIGFyZSBhcHBsaWVkIHRvCisrdGhlIGxvY2FsIHBhcmFtZXRlciBzdGF0 ZSBpbW1lZGlhdGVseSwgc28gKipzaG93KiogcmVmbGVjdHMgdGhlbQorK3JpZ2h0IGF3YXk7ICoq c3RhcnQqKiBhbHdheXMgdXNlcyB3aGF0ZXZlciB2YWx1ZXMgYXJlIGN1cnJlbnRseSBzZXQuCisr CisrCisrQ2hhbm5lbCBTb3VuZGluZyBDb21tYW5kcworKz09PT09PT09PT09PT09PT09PT09PT09 PT0KKysKKytzdGFydAorKy0tLS0tCisrCisrU3RhcnRzIGEgZGlzdGFuY2UgbWVhc3VyZW1lbnQg b24gdGhlIGNvbm5lY3RlZCBkZXZpY2UgdXNpbmcgdGhlCisrY3VycmVudGx5IHNldCBDUyBwYXJh bWV0ZXJzIChzZWUgdGhlICoqY3MuPHBhcmFtPioqIGNvbW1hbmRzIGJlbG93KS4KKytBbGwgY29u ZmlndXJhdGlvbiBpcyBzZW50IHRvIHRoZSBkYWVtb24gaW4gYSBzaW5nbGUgKipTdGFydE1lYXN1 cmVtZW50KioKKytjYWxsLiBPbiBzdWNjZXNzIHRoZSBkZXZpY2UgcGF0aCBpcyBwcmludGVkIHRv IHRoZSBjb25zb2xlLiBNdWx0aXBsZQorK3NpbXVsdGFuZW91cyBzZXNzaW9ucyBhY3Jvc3MgZGlm ZmVyZW50IGRldmljZXMgYXJlIHN1cHBvcnRlZDsgZWFjaCBpcworK3RyYWNrZWQgaW5kZXBlbmRl bnRseS4KKysKKytDYWxsaW5nICoqc3RhcnQqKiBvbiBhIGRldmljZSB0aGF0IGFscmVhZHkgaGFz IGFuIGFjdGl2ZSBtZWFzdXJlbWVudAorK3JldHVybnMgYW4gZXJyb3Igd2l0aG91dCBzdGFydGlu ZyBhIHNlY29uZCBzZXNzaW9uIG9uIHRoZSBzYW1lIGRldmljZS4KKysKKytGb3IgSW5pdGlhdG9y IHJvbGUgKG9yIEJvdGgpLCB0aGUgbWFuZGF0b3J5IHBhcmFtZXRlcnMgYXJlIHRoZQorK3Bvc2l0 aW9uYWwgYGBkZXZfYWRkcmBgIGFuZCBgYGR1cmF0aW9uX3NlY3NgYDsgZXZlcnkgYGBjcy48cGFy YW0+YGAKKytjb21tYW5kIGJlbG93IGlzIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gd2l0aCBhIHVz YWJsZSBkZWZhdWx0LgorKworK0lmIGBgcm9sZWBgIGlzIHNldCB0byBSZWZsZWN0b3IgKGBgMHgw MmBgLCB2aWEgKipjcy5yb2xlKiopLCAqKnN0YXJ0KioKKytkb2VzIG5vdCBiZWdpbiBtZWFzdXJp bmcgZGlzdGFuY2U6IGEgUmVmbGVjdG9yIG5ldmVyIGluaXRpYXRlcyBhIENTCisrcHJvY2VkdXJl LiBJdCBvbmx5IHB1c2hlcyB0aGUgY3VycmVudCBwYXJhbWV0ZXJzIHRvIHRoZSBkYWVtb24gYW5k CisrYXJtcyB0aGUgZGV2aWNlIHRvIHJlc3BvbmQgb25jZSB0aGUgcmVtb3RlIEluaXRpYXRvciBz dGFydHMgb25lOyB0aGUKKytjYWxsIHN0aWxsIHN1Y2NlZWRzLiBXaGVuIHRoZSByZW1vdGUgc2lk ZSBzdGFydHMgb3Igc3RvcHMgYSBwcm9jZWR1cmUsCisrdGhlIGNvbnNvbGUgcHJpbnRzIGBgTWVh c3VyZW1lbnQgc3RhcnRlZGBgL2BgTWVhc3VyZW1lbnQgc3RvcHBlZGBgIGZvcgorK3RoYXQgZGV2 aWNlIOKAlCB1c2UgKipzaG93Kiogb3Igd2F0Y2ggdGhlIGBgQWN0aXZlYGAgcHJvcGVydHkgdG8g c2VlCisrdGhlIHNhbWUgdHJhbnNpdGlvbi4gSW4gdGhpcyByb2xlIHRoZSBvbmx5IHBhcmFtZXRl cnMgdGhhdCBhcmUKKytyZXF1aXJlZCBvciBoYXZlIGFueSBlZmZlY3QgYXJlIGBgcm9sZWBgLCBg YHN5bmNfYW50X3NlbGBgIGFuZAorK2BgbWF4X3R4X3Bvd2VyYGA7IGV2ZXJ5IG90aGVyICoqY3Mu PHBhcmFtPioqIGNvbW1hbmQgYmVsb3cgaXMKKythY2NlcHRlZCBidXQgdW51c2VkLgorKworK1Bv c2l0aW9uYWwgYXJndW1lbnRzIGFyZSBvcHRpb25hbDoKKysKKystIGBgZGV2X2FkZHJgYCDigJQg Qmx1ZXRvb3RoIGFkZHJlc3Mgb2YgdGhlIHRhcmdldCBkZXZpY2U7IHVzZXMgdGhlIG9ubHkKKysg IGF2YWlsYWJsZSBDUy1jYXBhYmxlIGRldmljZSB3aGVuIG9taXR0ZWQuCisrLSBgYGR1cmF0aW9u X3NlY3NgYCDigJQgYXV0by1zdG9wIHRpbWVvdXQgaW4gc2Vjb25kczsgYGAwYGAgKGRlZmF1bHQp IG1lYW5zCisrICBubyB0aW1lb3V0LgorKworKzpVc2FnZTogKio+IHN0YXJ0IFtkZXZfYWRkcl0g W2R1cmF0aW9uX3NlY3NdKioKKys6VXNlczogKipvcmcuYmx1ZXouQ2hhbm5lbFNvdW5kaW5nMSg1 KSoqIG1ldGhvZCAqKlN0YXJ0TWVhc3VyZW1lbnQqKgorKzpbZGV2X2FkZHJdOiBCbHVldG9vdGgg YWRkcmVzcyBvZiB0aGUgdGFyZ2V0IGRldmljZSAob3B0aW9uYWw7IHVzZXMgdGhlCisrICAgICAg ICAgICAgIG9ubHkgYXZhaWxhYmxlIENTLWNhcGFibGUgZGV2aWNlIHdoZW4gb21pdHRlZCkKKys6 W2R1cmF0aW9uX3NlY3NdOiBTZWNvbmRzIGJlZm9yZSBhdXRvLXN0b3AgKG9wdGlvbmFsLCBkZWZh dWx0IDAgPSBubyB0aW1lb3V0KQorKworKzpFeGFtcGxlIFN0YXJ0IHdpdGggYWxsIGRlZmF1bHRz LCBubyB0aW1lb3V0OgorKwl8ICoqPiBzdGFydCoqCisrOkV4YW1wbGUgU3RhcnQgb24gYSBzcGVj aWZpYyBkZXZpY2U6CisrCXwgKio+IHN0YXJ0IEFBOkJCOkNDOkREOkVFOkZGKioKKys6RXhhbXBs ZSBTdGFydCBvbiBhIHNwZWNpZmljIGRldmljZSB3aXRoIDEwLXNlY29uZCBhdXRvLXN0b3A6Cisr CXwgKio+IHN0YXJ0IEFBOkJCOkNDOkREOkVFOkZGIDEwKioKKys6RXhhbXBsZSBTdGFydCB3aXRo IDEwLXNlY29uZCBhdXRvLXN0b3AgKHNpbmdsZSBkZXZpY2UsIGFkZHJlc3Mgb21pdHRlZCk6Cisr CXwgKio+IHN0YXJ0IDAgMTAqKgorKzpFeGFtcGxlIFN0YXJ0IHdpdGggNS1taW51dGUgYXV0by1z dG9wOgorKwl8ICoqPiBzdGFydCBBQTpCQjpDQzpERDpFRTpGRiAzMDAqKgorKworK3N0b3AKKyst LS0tCisrCisrU3RvcHMgYW4gYWN0aXZlIENTIGRpc3RhbmNlIG1lYXN1cmVtZW50LiBXaGVuIG9u bHkgb25lIG1lYXN1cmVtZW50IGlzCisrcnVubmluZyB0aGUgZGV2aWNlIGFkZHJlc3MgbWF5IGJl IG9taXR0ZWQuIFdoZW4gbXVsdGlwbGUgbWVhc3VyZW1lbnRzCisrYXJlIGFjdGl2ZSB0aGUgYWRk cmVzcyBpcyByZXF1aXJlZCB0byBpZGVudGlmeSB3aGljaCBvbmUgdG8gc3RvcC4KKysKKys6VXNh Z2U6ICoqPiBzdG9wIFtkZXZfYWRkcl0qKgorKzpVc2VzOiAqKm9yZy5ibHVlei5DaGFubmVsU291 bmRpbmcxKDUpKiogbWV0aG9kICoqU3RvcE1lYXN1cmVtZW50KioKKys6W2Rldl9hZGRyXTogQmx1 ZXRvb3RoIGFkZHJlc3Mgb2YgdGhlIGRldmljZSB0byBzdG9wIChvcHRpb25hbCB3aGVuCisrICAg ICAgICAgICAgIG9ubHkgb25lIHNlc3Npb24gaXMgYWN0aXZlOyByZXF1aXJlZCBvdGhlcndpc2Up CisrOkV4YW1wbGUgU3RvcCB0aGUgb25seSBhY3RpdmUgbWVhc3VyZW1lbnQ6CisrCXwgKio+IHN0 b3AqKgorKzpFeGFtcGxlIFN0b3AgYSBzcGVjaWZpYyBkZXZpY2Ugd2hlbiBtdWx0aXBsZSBhcmUg YWN0aXZlOgorKwl8ICoqPiBzdG9wIEFBOkJCOkNDOkREOkVFOkZGKioKKys6RXhhbXBsZSBTdG9w IGEgc2Vjb25kIGRldmljZToKKysJfCAqKj4gc3RvcCAxMToyMjozMzo0NDo1NTo2NioqCisrCisr c2hvdworKy0tLS0KKysKKytEaXNwbGF5cyBhbGwgYWN0aXZlIG1lYXN1cmVtZW50cyAoZGV2aWNl IHBhdGggZm9yIGVhY2gpIGFuZCB0aGUgZnVsbAorK3NldCBvZiBDUyBwYXJhbWV0ZXIgdmFsdWVz IHRoYXQgd2lsbCBiZSB1c2VkIG9uIHRoZSBuZXh0ICoqc3RhcnQqKiBjYWxsLgorK1doZW4gbm8g bWVhc3VyZW1lbnRzIGFyZSBhY3RpdmUsIGBgbm9uZWBgIGlzIHNob3duLgorKworK1RoZSBwYXJh bWV0ZXIgb3V0cHV0IGlzIGRpdmlkZWQgaW50byB0aHJlZSBzZWN0aW9uczoKKysKKystICoqRGVm YXVsdCBTZXR0aW5ncyoqIOKAlCByb2xlLCBDUyBzeW5jIGFudGVubmEgc2VsZWN0aW9uLCBtYXgg VFggcG93ZXIuCisrLSAqKkNTIENvbmZpZyBQYXJhbXMqKiDigJQgcGVyLXByb2NlZHVyZSBjb25m aWd1cmF0aW9uIGZpZWxkcyBpbmNsdWRpbmcKKysgIG1vZGUgdHlwZSwgc3RlcCBjb3VudHMsIFBI WSwgYW5kIGNoYW5uZWwgbWFwLgorKy0gKipDUyBGcmVxdWVuY3kgUGFyYW1zKiog4oCUIHByb2Nl ZHVyZSBzY2hlZHVsaW5nIGZpZWxkcyBpbmNsdWRpbmcKKysgIGR1cmF0aW9uLCBwZXJpb2QsIHN1 YmV2ZW50IGxlbmd0aHMsIGFuZCBTTlIgY29udHJvbC4KKysKKys6VXNhZ2U6ICoqPiBzaG93KioK Kys6RXhhbXBsZSBTaG93IGFjdGl2ZSBzZXNzaW9uIGFuZCBhbGwgQ1MgcGFyYW1ldGVyczoKKysJ fCAqKj4gc2hvdyoqCisrCisrQ1MgUGFyYW1ldGVyIENvbW1hbmRzCisrPT09PT09PT09PT09PT09 PT09PT09PQorKworK0VhY2ggQ1MgcGFyYW1ldGVyIGlzIHNldCB3aXRoIGl0cyBvd24gY29tbWFu ZCwgb2YgdGhlIGZvcm0KKytgYGNzLjxwYXJhbT4gPHZhbHVlPmBgLiBFbnRlcmluZyBhIHBhcmFt IGNvbW1hbmQgd2l0aCBubyB2YWx1ZSBzaG93cworK2l0cyBjdXJyZW50IHNldHRpbmcuIE92ZXJy aWRlcyBhcHBseSB0byB0aGUgbG9jYWwgcGFyYW1ldGVyIHN0YXRlCisraW1tZWRpYXRlbHksIHNv ICoqc2hvdyoqIHJlZmxlY3RzIHRoZW0gcmlnaHQgYXdheTsgKipzdGFydCoqIGFsd2F5cworK3Vz ZXMgd2hhdGV2ZXIgdmFsdWVzIGFyZSBjdXJyZW50bHkgc2V0LiBBcnJheS12YWx1ZWQgcGFyYW1l dGVycworKyhgYGNoYW5uZWxfbWFwYGAsIGBgbWluX3N1Yl9ldmVudF9sZW5gYCwgYGBtYXhfc3Vi X2V2ZW50X2xlbmBgKSB0YWtlCisrY29sb24tc2VwYXJhdGVkIGhleCBieXRlcyB3aXRoIG5vIGBg MHhgYCBwcmVmaXguCisrCisrOlVzYWdlOiAqKj4gPHBhcmFtPiBbdmFsdWVdKioKKysKKytyb2xl CisrLS0tLQorKworK0dldC9zZXQgdGhlIENTIHJvbGUuCisrCisrOlVzYWdlOiAqKj4gcm9sZSBb MHgwMXwweDAyfDB4MDNdKioKKys6WzB4MDF8MHgwMnwweDAzXTogYGAweDAxYGAgSW5pdGlhdG9y LCBgYDB4MDJgYCBSZWZsZWN0b3IsIGBgMHgwM2BgIEJvdGgKKysgICAgICAgICAgICAgICAgICAg KG9wdGlvbmFsLCBzaG93cyBjdXJyZW50IGlmIG9taXR0ZWQ7IGRlZmF1bHQgYGAweDAzYGApCisr OkV4YW1wbGUgU2hvdyBjdXJyZW50IHJvbGU6CisrCXwgKio+IHJvbGUqKgorKzpFeGFtcGxlIFNl dCByb2xlIHRvIEluaXRpYXRvciBvbmx5OgorKwl8ICoqPiByb2xlIDB4MDEqKgorKzpFeGFtcGxl IFNldCByb2xlIHRvIFJlZmxlY3RvciBvbmx5IChkb2VzIG5vdCBtZWFzdXJlKToKKysJfCAqKj4g cm9sZSAweDAyKioKKys6RXhhbXBsZSBTZXQgcm9sZSB0byBib3RoIEluaXRpYXRvciBhbmQgUmVm bGVjdG9yOgorKwl8ICoqPiByb2xlIDB4MDMqKgorKworK3N5bmNfYW50X3NlbAorKy0tLS0tLS0t LS0tLQorKworK0dldC9zZXQgdGhlIENTIHN5bmMgYW50ZW5uYSBzZWxlY3Rpb24uCisrCisrOlVz YWdlOiAqKj4gc3luY19hbnRfc2VsIFt2YWx1ZV0qKgorKzpbdmFsdWVdOiBDUyBzeW5jIGFudGVu bmEgc2VsZWN0aW9uOyBgYDB4RkVgYC9gYDB4RkZgYCByZXNlcnZlZAorKyAgICAgICAgICAob3B0 aW9uYWwsIHNob3dzIGN1cnJlbnQgaWYgb21pdHRlZDsgZGVmYXVsdCBgYDB4RkZgYCkKKys6RXhh bXBsZSBTaG93IGN1cnJlbnQgYW50ZW5uYSBzZWxlY3Rpb246CisrCXwgKio+IHN5bmNfYW50X3Nl bCoqCisrOkV4YW1wbGUgU2VsZWN0IGFudGVubmEgMToKKysJfCAqKj4gc3luY19hbnRfc2VsIDB4 MDEqKgorKworK21heF90eF9wb3dlcgorKy0tLS0tLS0tLS0tLQorKworK0dldC9zZXQgdGhlIG1h eGltdW0gVFggcG93ZXIuCisrCisrOlVzYWdlOiAqKj4gbWF4X3R4X3Bvd2VyIFtkQm1dKioKKys6 W2RCbV06IE1heCBUWCBwb3dlciBpbiBkQm0sIHNpZ25lZCAob3B0aW9uYWwsIHNob3dzIGN1cnJl bnQgaWYKKysgICAgICAgIG9taXR0ZWQ7IHJhbmdlIOKIkjEyNyB0byArMjA7IGRlZmF1bHQgYGAy MGBgKQorKzpFeGFtcGxlIFNob3cgY3VycmVudCBtYXggVFggcG93ZXI6CisrCXwgKio+IG1heF90 eF9wb3dlcioqCisrOkV4YW1wbGUgUmVkdWNlIG1heCBUWCBwb3dlciB0byAxMCBkQm06CisrCXwg Kio+IG1heF90eF9wb3dlciAxMCoqCisrCisrY29uZmlnX2lkCisrLS0tLS0tLS0tCisrCisrR2V0 L3NldCB0aGUgQ1MgY29uZmlndXJhdGlvbiBpZGVudGlmaWVyLgorKworKzpVc2FnZTogKio+IGNv bmZpZ19pZCBbdmFsdWVdKioKKys6W3ZhbHVlXTogQ1MgY29uZmlndXJhdGlvbiBpZGVudGlmaWVy IChvcHRpb25hbCwgc2hvd3MgY3VycmVudCBpZgorKyAgICAgICAgICBvbWl0dGVkOyBkZWZhdWx0 IGBgMGBgKQorKzpFeGFtcGxlIFNob3cgY3VycmVudCBjb25maWcgaWQ6CisrCXwgKio+IGNvbmZp Z19pZCoqCisrOkV4YW1wbGUgU2V0IGNvbmZpZyBpZCB0byAxOgorKwl8ICoqPiBjb25maWdfaWQg MSoqCisrCisrbWFpbl9tb2RlX3R5cGUKKystLS0tLS0tLS0tLS0tLQorKworK0dldC9zZXQgdGhl IENTIG1haW4gbW9kZSB0eXBlLgorKworKzpVc2FnZTogKio+IG1haW5fbW9kZV90eXBlIFsxfDJ8 M10qKgorKzpbMXwyfDNdOiBgYDFgYCBNb2RlIDEgKFJUVCksIGBgMmBgIE1vZGUgMiAoUEJSKSwg YGAzYGAgQm90aCAob3B0aW9uYWwsCisrICAgICAgICAgIHNob3dzIGN1cnJlbnQgaWYgb21pdHRl ZDsgZGVmYXVsdCBgYDFgYCkKKys6RXhhbXBsZSBTaG93IGN1cnJlbnQgbWFpbiBtb2RlIHR5cGU6 CisrCXwgKio+IG1haW5fbW9kZV90eXBlKioKKys6RXhhbXBsZSBTZXQgbWFpbiBtb2RlIHRvIE1v ZGUgMiAoUEJSKToKKysJfCAqKj4gbWFpbl9tb2RlX3R5cGUgMioqCisrOkV4YW1wbGUgU2V0IG1h aW4gbW9kZSB0byBib3RoIFJUVCBhbmQgUEJSOgorKwl8ICoqPiBtYWluX21vZGVfdHlwZSAzKioK KysKKytzdWJfbW9kZV90eXBlCisrLS0tLS0tLS0tLS0tLQorKworK0dldC9zZXQgdGhlIENTIHN1 Yi1tb2RlIHR5cGUgd2l0aGluIHRoZSBtYWluIG1vZGUuCisrCisrOlVzYWdlOiAqKj4gc3ViX21v ZGVfdHlwZSBbdmFsdWVdKioKKys6W3ZhbHVlXTogU3ViLW1vZGUgd2l0aGluIG1haW4gbW9kZTsg YGAweEZGYGAgPSB1bnVzZWQgKG9wdGlvbmFsLAorKyAgICAgICAgICBzaG93cyBjdXJyZW50IGlm IG9taXR0ZWQ7IGRlZmF1bHQgYGAweEZGYGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50IHN1Yi1t b2RlIHR5cGU6CisrCXwgKio+IHN1Yl9tb2RlX3R5cGUqKgorKzpFeGFtcGxlIFNldCBzdWItbW9k ZSB0eXBlIHRvIDB4MDE6CisrCXwgKio+IHN1Yl9tb2RlX3R5cGUgMHgwMSoqCisrCisrbWFpbl9t b2RlX21pbl9zdGVwcworKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrR2V0L3NldCB0aGUgbWlu aW11bSBDUyBtYWluIG1vZGUgc3RlcHMgcGVyIHN1YmV2ZW50LgorKworKzpVc2FnZTogKio+IG1h aW5fbW9kZV9taW5fc3RlcHMgW3ZhbHVlXSoqCisrOlt2YWx1ZV06IE1pbiBDUyBtYWluIG1vZGUg c3RlcHMgcGVyIHN1YmV2ZW50IChvcHRpb25hbCwgc2hvd3MKKysgICAgICAgICAgY3VycmVudCBp ZiBvbWl0dGVkOyBkZWZhdWx0IGBgMmBgKQorKzpFeGFtcGxlIFNob3cgY3VycmVudCB2YWx1ZToK KysJfCAqKj4gbWFpbl9tb2RlX21pbl9zdGVwcyoqCisrOkV4YW1wbGUgU2V0IG1pbmltdW0gc3Rl cHMgdG8gNDoKKysJfCAqKj4gbWFpbl9tb2RlX21pbl9zdGVwcyA0KioKKysKKyttYWluX21vZGVf bWF4X3N0ZXBzCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytHZXQvc2V0IHRoZSBtYXhpbXVt IENTIG1haW4gbW9kZSBzdGVwcyBwZXIgc3ViZXZlbnQuCisrCisrOlVzYWdlOiAqKj4gbWFpbl9t b2RlX21heF9zdGVwcyBbdmFsdWVdKioKKys6W3ZhbHVlXTogTWF4IENTIG1haW4gbW9kZSBzdGVw cyBwZXIgc3ViZXZlbnQgKG9wdGlvbmFsLCBzaG93cworKyAgICAgICAgICBjdXJyZW50IGlmIG9t aXR0ZWQ7IGRlZmF1bHQgYGAzYGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50IHZhbHVlOgorKwl8 ICoqPiBtYWluX21vZGVfbWF4X3N0ZXBzKioKKys6RXhhbXBsZSBTZXQgbWF4aW11bSBzdGVwcyB0 byA4OgorKwl8ICoqPiBtYWluX21vZGVfbWF4X3N0ZXBzIDgqKgorKworK21haW5fbW9kZV9yZXBl dGl0aW9uCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrR2V0L3NldCBob3cgbWFueSB0aW1l cyBtYWluIG1vZGUgc3RlcHMgYXJlIHJlcGVhdGVkIGluIGEgc3ViZXZlbnQuCisrCisrOlVzYWdl OiAqKj4gbWFpbl9tb2RlX3JlcGV0aXRpb24gW3ZhbHVlXSoqCisrOlt2YWx1ZV06IFJlcGV0aXRp b24gY291bnQgKG9wdGlvbmFsLCBzaG93cyBjdXJyZW50IGlmIG9taXR0ZWQ7CisrICAgICAgICAg IGRlZmF1bHQgYGAxYGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50IHZhbHVlOgorKwl8ICoqPiBt YWluX21vZGVfcmVwZXRpdGlvbioqCisrOkV4YW1wbGUgUmVwZWF0IG1haW4gbW9kZSBzdGVwcyB0 d2ljZToKKysJfCAqKj4gbWFpbl9tb2RlX3JlcGV0aXRpb24gMioqCisrCisrbW9kZTBfc3RlcHMK KystLS0tLS0tLS0tLQorKworK0dldC9zZXQgdGhlIG51bWJlciBvZiBDUyBNb2RlIDAgc3RlcHMg YXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoCisrc3ViZXZlbnQuCisrCisrOlVzYWdlOiAqKj4gbW9k ZTBfc3RlcHMgW3ZhbHVlXSoqCisrOlt2YWx1ZV06IENTIE1vZGUgMCBzdGVwIGNvdW50IChvcHRp b25hbCwgc2hvd3MgY3VycmVudCBpZiBvbWl0dGVkOworKyAgICAgICAgICBkZWZhdWx0IGBgMmBg KQorKzpFeGFtcGxlIFNob3cgY3VycmVudCB2YWx1ZToKKysJfCAqKj4gbW9kZTBfc3RlcHMqKgor KzpFeGFtcGxlIFNldCBNb2RlIDAgc3RlcHMgdG8gMzoKKysJfCAqKj4gbW9kZTBfc3RlcHMgMyoq CisrCisrcnR0X3R5cGVzCisrLS0tLS0tLS0tCisrCisrR2V0L3NldCB0aGUgUlRUIG1lYXN1cmVt ZW50IHR5cGVzIGJpdG1hc2suCisrCisrOlVzYWdlOiAqKj4gcnR0X3R5cGVzIFt2YWx1ZV0qKgor KzpbdmFsdWVdOiBSVFQgbWVhc3VyZW1lbnQgdHlwZXMgYml0bWFzayAob3B0aW9uYWwsIHNob3dz IGN1cnJlbnQgaWYKKysgICAgICAgICAgb21pdHRlZDsgZGVmYXVsdCBgYDBgYCkKKys6RXhhbXBs ZSBTaG93IGN1cnJlbnQgdmFsdWU6CisrCXwgKio+IHJ0dF90eXBlcyoqCisrOkV4YW1wbGUgU2V0 IFJUVCB0eXBlcyBiaXRtYXNrOgorKwl8ICoqPiBydHRfdHlwZXMgMHgwMSoqCisrCisrc3luY19w aHkKKystLS0tLS0tLQorKworK0dldC9zZXQgdGhlIFBIWSB1c2VkIGZvciBDUyBzeW5jLgorKwor KzpVc2FnZTogKio+IHN5bmNfcGh5IFsweDAxfDB4MDJdKioKKys6WzB4MDF8MHgwMl06IGBgMHgw MWBgIExFIDFNLCBgYDB4MDJgYCBMRSAyTSAob3B0aW9uYWwsIHNob3dzIGN1cnJlbnQKKysgICAg ICAgICAgICAgIGlmIG9taXR0ZWQ7IGRlZmF1bHQgYGAweDAxYGApCisrOkV4YW1wbGUgU2hvdyBj dXJyZW50IHN5bmMgUEhZOgorKwl8ICoqPiBzeW5jX3BoeSoqCisrOkV4YW1wbGUgU2V0IENTIHN5 bmMgUEhZIHRvIExFIDJNOgorKwl8ICoqPiBzeW5jX3BoeSAweDAyKioKKysKKytjaGFubmVsX21h cAorKy0tLS0tLS0tLS0tCisrCisrR2V0L3NldCB0aGUgMTAtYnl0ZSBDUyBjaGFubmVsIG1hcCBi aXRtYXAuCisrCisrOlVzYWdlOiAqKj4gY2hhbm5lbF9tYXAgW2IwOmIxOi4uLjpiOV0qKgorKzpb YjA6YjE6Li4uOmI5XTogMTAgY29sb24tc2VwYXJhdGVkIGhleCBieXRlcyAob3B0aW9uYWwsIHNo b3dzIGN1cnJlbnQKKysgICAgICAgICAgICAgICAgIGlmIG9taXR0ZWQ7IGRlZmF1bHQgYGBGQzpG Rjo3RjpGQzpGRjpGRjpGRjpGRjpGRjoxRmBgKQorKzpFeGFtcGxlIFNob3cgY3VycmVudCBjaGFu bmVsIG1hcDoKKysJfCAqKj4gY2hhbm5lbF9tYXAqKgorKzpFeGFtcGxlIFNldCBhIGN1c3RvbSBj aGFubmVsIG1hcCAoYWxsIGVuYWJsZWQpOgorKwl8ICoqPiBjaGFubmVsX21hcCBGRjpGRjpGRjpG RjpGRjpGRjpGRjpGRjpGRjpGRioqCisrCisrY2hhbm5lbF9tYXBfcmVwZXRpdGlvbgorKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrCisrR2V0L3NldCB0aGUgbnVtYmVyIG9mIGNvbnNlY3V0aXZl IHJlcGV0aXRpb25zIG9mIHRoZSBjaGFubmVsIG1hcC4KKysKKys6VXNhZ2U6ICoqPiBjaGFubmVs X21hcF9yZXBldGl0aW9uIFt2YWx1ZV0qKgorKzpbdmFsdWVdOiBSZXBldGl0aW9uIGNvdW50IChv cHRpb25hbCwgc2hvd3MgY3VycmVudCBpZiBvbWl0dGVkOworKyAgICAgICAgICBkZWZhdWx0IGBg MWBgKQorKzpFeGFtcGxlIFNob3cgY3VycmVudCB2YWx1ZToKKysJfCAqKj4gY2hhbm5lbF9tYXBf cmVwZXRpdGlvbioqCisrOkV4YW1wbGUgUmVwZWF0IHRoZSBjaGFubmVsIG1hcCAzIHRpbWVzOgor Kwl8ICoqPiBjaGFubmVsX21hcF9yZXBldGl0aW9uIDMqKgorKworK2NoYW5uZWxfc2VsZWN0aW9u X3R5cGUKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK0dldC9zZXQgdGhlIENTIGNoYW5u ZWwgc2VsZWN0aW9uIGFsZ29yaXRobS4KKysKKys6VXNhZ2U6ICoqPiBjaGFubmVsX3NlbGVjdGlv bl90eXBlIFt2YWx1ZV0qKgorKzpbdmFsdWVdOiBDaGFubmVsIHNlbGVjdGlvbiBhbGdvcml0aG0g KG9wdGlvbmFsLCBzaG93cyBjdXJyZW50IGlmCisrICAgICAgICAgIG9taXR0ZWQ7IGRlZmF1bHQg YGAwYGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50IHZhbHVlOgorKwl8ICoqPiBjaGFubmVsX3Nl bGVjdGlvbl90eXBlKioKKys6RXhhbXBsZSBTZWxlY3QgYWxnb3JpdGhtIDE6CisrCXwgKio+IGNo YW5uZWxfc2VsZWN0aW9uX3R5cGUgMSoqCisrCisrY2hhbm5lbF9zaGFwZQorKy0tLS0tLS0tLS0t LS0KKysKKytHZXQvc2V0IHRoZSBzaGFwZSB1c2VkIGluIHRoZSBjaGFubmVsIHNlbGVjdGlvbiBh bGdvcml0aG0uCisrCisrOlVzYWdlOiAqKj4gY2hhbm5lbF9zaGFwZSBbdmFsdWVdKioKKys6W3Zh bHVlXTogQ2hhbm5lbCBzaGFwZSAob3B0aW9uYWwsIHNob3dzIGN1cnJlbnQgaWYgb21pdHRlZDsg ZGVmYXVsdAorKyAgICAgICAgICBgYDBgYCkKKys6RXhhbXBsZSBTaG93IGN1cnJlbnQgdmFsdWU6 CisrCXwgKio+IGNoYW5uZWxfc2hhcGUqKgorKzpFeGFtcGxlIFNldCBjaGFubmVsIHNoYXBlIHRv IDE6CisrCXwgKio+IGNoYW5uZWxfc2hhcGUgMSoqCisrCisrY2hhbm5lbF9qdW1wCisrLS0tLS0t LS0tLS0tCisrCisrR2V0L3NldCB0aGUgY2hhbm5lbCBqdW1wIHNpemUuCisrCisrOlVzYWdlOiAq Kj4gY2hhbm5lbF9qdW1wIFt2YWx1ZV0qKgorKzpbdmFsdWVdOiBDaGFubmVsIGp1bXAgc2l6ZSAo b3B0aW9uYWwsIHNob3dzIGN1cnJlbnQgaWYgb21pdHRlZDsKKysgICAgICAgICAgZGVmYXVsdCBg YDJgYCkKKys6RXhhbXBsZSBTaG93IGN1cnJlbnQgdmFsdWU6CisrCXwgKio+IGNoYW5uZWxfanVt cCoqCisrOkV4YW1wbGUgU2V0IGNoYW5uZWwganVtcCB0byA0OgorKwl8ICoqPiBjaGFubmVsX2p1 bXAgNCoqCisrCisrY29tcGFuaW9uX3NpZ25hbF9lbmFibGUKKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysKKytHZXQvc2V0IHdoZXRoZXIgdGhlIGNvbXBhbmlvbiBzaWduYWwgaXMgdHJhbnNt aXR0ZWQuCisrCisrOlVzYWdlOiAqKj4gY29tcGFuaW9uX3NpZ25hbF9lbmFibGUgWzB8MV0qKgor KzpbMHwxXTogYGAxYGAgdG8gdHJhbnNtaXQgY29tcGFuaW9uIHNpZ25hbCwgYGAwYGAgdG8gZGlz YWJsZSAob3B0aW9uYWwsCisrICAgICAgICBzaG93cyBjdXJyZW50IGlmIG9taXR0ZWQ7IGRlZmF1 bHQgYGAwYGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50IHZhbHVlOgorKwl8ICoqPiBjb21wYW5p b25fc2lnbmFsX2VuYWJsZSoqCisrOkV4YW1wbGUgRW5hYmxlIHRoZSBjb21wYW5pb24gc2lnbmFs OgorKwl8ICoqPiBjb21wYW5pb25fc2lnbmFsX2VuYWJsZSAxKioKKysKKyttYXhfcHJvY2VkdXJl X2R1cmF0aW9uCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytHZXQvc2V0IHRoZSBtYXhp bXVtIGR1cmF0aW9uIG9mIG9uZSBDUyBtZWFzdXJlbWVudCBwcm9jZWR1cmUuCisrCisrOlVzYWdl OiAqKj4gbWF4X3Byb2NlZHVyZV9kdXJhdGlvbiBbdmFsdWVdKioKKys6W3ZhbHVlXTogTWF4aW11 bSBwcm9jZWR1cmUgZHVyYXRpb24gKG9wdGlvbmFsLCBzaG93cyBjdXJyZW50IGlmCisrICAgICAg ICAgIG9taXR0ZWQ7IGRlZmF1bHQgYGAxNjAwYGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50IHZh bHVlOgorKwl8ICoqPiBtYXhfcHJvY2VkdXJlX2R1cmF0aW9uKioKKys6RXhhbXBsZSBTZXQgbWF4 IHByb2NlZHVyZSBkdXJhdGlvbiB0byA4MDA6CisrCXwgKio+IG1heF9wcm9jZWR1cmVfZHVyYXRp b24gODAwKioKKysKKyttaW5fcGVyaW9kX2JldHdlZW5fcHJvY2VkdXJlcworKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytHZXQvc2V0IHRoZSBtaW5pbXVtIHRpbWUgYmV0d2Vl biBjb25zZWN1dGl2ZSBwcm9jZWR1cmVzLgorKworKzpVc2FnZTogKio+IG1pbl9wZXJpb2RfYmV0 d2Vlbl9wcm9jZWR1cmVzIFt2YWx1ZV0qKgorKzpbdmFsdWVdOiBNaW5pbXVtIHBlcmlvZCAob3B0 aW9uYWwsIHNob3dzIGN1cnJlbnQgaWYgb21pdHRlZDsgZGVmYXVsdAorKyAgICAgICAgICBgYDMw YGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50IHZhbHVlOgorKwl8ICoqPiBtaW5fcGVyaW9kX2Jl dHdlZW5fcHJvY2VkdXJlcyoqCisrOkV4YW1wbGUgU2V0IG1pbmltdW0gcGVyaW9kIHRvIDUwOgor Kwl8ICoqPiBtaW5fcGVyaW9kX2JldHdlZW5fcHJvY2VkdXJlcyA1MCoqCisrCisrbWF4X3Blcmlv ZF9iZXR3ZWVuX3Byb2NlZHVyZXMKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr CisrR2V0L3NldCB0aGUgbWF4aW11bSB0aW1lIGJldHdlZW4gY29uc2VjdXRpdmUgcHJvY2VkdXJl cy4KKysKKys6VXNhZ2U6ICoqPiBtYXhfcGVyaW9kX2JldHdlZW5fcHJvY2VkdXJlcyBbdmFsdWVd KioKKys6W3ZhbHVlXTogTWF4aW11bSBwZXJpb2QgKG9wdGlvbmFsLCBzaG93cyBjdXJyZW50IGlm IG9taXR0ZWQ7IGRlZmF1bHQKKysgICAgICAgICAgYGAxNTBgYCkKKys6RXhhbXBsZSBTaG93IGN1 cnJlbnQgdmFsdWU6CisrCXwgKio+IG1heF9wZXJpb2RfYmV0d2Vlbl9wcm9jZWR1cmVzKioKKys6 RXhhbXBsZSBTZXQgbWF4aW11bSBwZXJpb2QgdG8gMjAwOgorKwl8ICoqPiBtYXhfcGVyaW9kX2Jl dHdlZW5fcHJvY2VkdXJlcyAyMDAqKgorKworK21heF9wcm9jZWR1cmVfY291bnQKKystLS0tLS0t LS0tLS0tLS0tLS0tLQorKworK0dldC9zZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHByb2NlZHVy ZXMuCisrCisrOlVzYWdlOiAqKj4gbWF4X3Byb2NlZHVyZV9jb3VudCBbdmFsdWVdKioKKys6W3Zh bHVlXTogTWF4IHByb2NlZHVyZSBjb3VudDsgYGAwYGAgPSBubyBsaW1pdCAob3B0aW9uYWwsIHNo b3dzCisrICAgICAgICAgIGN1cnJlbnQgaWYgb21pdHRlZDsgZGVmYXVsdCBgYDBgYCkKKys6RXhh bXBsZSBTaG93IGN1cnJlbnQgdmFsdWU6CisrCXwgKio+IG1heF9wcm9jZWR1cmVfY291bnQqKgor KzpFeGFtcGxlIExpbWl0IHRoZSBwcm9jZWR1cmUgY291bnQgdG8gMTAwOgorKwl8ICoqPiBtYXhf cHJvY2VkdXJlX2NvdW50IDEwMCoqCisrCisrbWluX3N1Yl9ldmVudF9sZW4KKystLS0tLS0tLS0t LS0tLS0tLS0KKysKKytHZXQvc2V0IHRoZSBtaW5pbXVtIENTIHN1YmV2ZW50IGxlbmd0aC4KKysK Kys6VXNhZ2U6ICoqPiBtaW5fc3ViX2V2ZW50X2xlbiBbYjA6YjE6YjJdKioKKys6W2IwOmIxOmIy XTogMy1ieXRlIExFIHZhbHVlLCBjb2xvbi1zZXBhcmF0ZWQgaGV4IChvcHRpb25hbCwgc2hvd3MK KysgICAgICAgICAgICAgY3VycmVudCBpZiBvbWl0dGVkOyBkZWZhdWx0IGBgMDA6MjA6MDBgYCkK Kys6RXhhbXBsZSBTaG93IGN1cnJlbnQgdmFsdWU6CisrCXwgKio+IG1pbl9zdWJfZXZlbnRfbGVu KioKKys6RXhhbXBsZSBTZXQgbWluaW11bSBzdWJldmVudCBsZW5ndGg6CisrCXwgKio+IG1pbl9z dWJfZXZlbnRfbGVuIDAwOjEwOjAwKioKKysKKyttYXhfc3ViX2V2ZW50X2xlbgorKy0tLS0tLS0t LS0tLS0tLS0tLQorKworK0dldC9zZXQgdGhlIG1heGltdW0gQ1Mgc3ViZXZlbnQgbGVuZ3RoLgor KworKzpVc2FnZTogKio+IG1heF9zdWJfZXZlbnRfbGVuIFtiMDpiMTpiMl0qKgorKzpbYjA6YjE6 YjJdOiAzLWJ5dGUgTEUgdmFsdWUsIGNvbG9uLXNlcGFyYXRlZCBoZXggKG9wdGlvbmFsLCBzaG93 cworKyAgICAgICAgICAgICBjdXJyZW50IGlmIG9taXR0ZWQ7IGRlZmF1bHQgYGAwMzoyMDowMGBg KQorKzpFeGFtcGxlIFNob3cgY3VycmVudCB2YWx1ZToKKysJfCAqKj4gbWF4X3N1Yl9ldmVudF9s ZW4qKgorKzpFeGFtcGxlIFNldCBtYXhpbXVtIHN1YmV2ZW50IGxlbmd0aDoKKysJfCAqKj4gbWF4 X3N1Yl9ldmVudF9sZW4gMDQ6MjA6MDAqKgorKworK3RvbmVfYW50ZW5uYV9jb25maWdfc2VsZWN0 aW9uCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK0dldC9zZXQgdGhlIGFu dGVubmEgY29uZmlndXJhdGlvbiBmb3IgQ1MgdG9uZSBleGNoYW5nZXMuCisrCisrOlVzYWdlOiAq Kj4gdG9uZV9hbnRlbm5hX2NvbmZpZ19zZWxlY3Rpb24gW3ZhbHVlXSoqCisrOlt2YWx1ZV06IEFu dGVubmEgY29uZmlnIHNlbGVjdGlvbiAob3B0aW9uYWwsIHNob3dzIGN1cnJlbnQgaWYKKysgICAg ICAgICAgb21pdHRlZDsgZGVmYXVsdCBgYDB4MDdgYCkKKys6RXhhbXBsZSBTaG93IGN1cnJlbnQg dmFsdWU6CisrCXwgKio+IHRvbmVfYW50ZW5uYV9jb25maWdfc2VsZWN0aW9uKioKKys6RXhhbXBs ZSBTZXQgYW50ZW5uYSBjb25maWcgdG8gMHgwMToKKysJfCAqKj4gdG9uZV9hbnRlbm5hX2NvbmZp Z19zZWxlY3Rpb24gMHgwMSoqCisrCisrcGh5CisrLS0tCisrCisrR2V0L3NldCB0aGUgUEhZIHVz ZWQgZm9yIENTIHByb2NlZHVyZXMuCisrCisrOlVzYWdlOiAqKj4gcGh5IFsweDAxfDB4MDJdKioK Kys6WzB4MDF8MHgwMl06IGBgMHgwMWBgIExFIDFNLCBgYDB4MDJgYCBMRSAyTSAob3B0aW9uYWws IHNob3dzIGN1cnJlbnQKKysgICAgICAgICAgICAgIGlmIG9taXR0ZWQ7IGRlZmF1bHQgYGAweDAx YGApCisrOkV4YW1wbGUgU2hvdyBjdXJyZW50IHByb2NlZHVyZSBQSFk6CisrCXwgKio+IHBoeSoq CisrOkV4YW1wbGUgU2V0IENTIHByb2NlZHVyZSBQSFkgdG8gTEUgMk06CisrCXwgKio+IHBoeSAw eDAyKioKKysKKyt0eF9wb3dlcl9kZWx0YQorKy0tLS0tLS0tLS0tLS0tCisrCisrR2V0L3NldCB0 aGUgcmVtb3RlIHZzIGxvY2FsIFRYIHBvd2VyIGRlbHRhLgorKworKzpVc2FnZTogKio+IHR4X3Bv d2VyX2RlbHRhIFt2YWx1ZV0qKgorKzpbdmFsdWVdOiBUWCBwb3dlciBkZWx0YTsgYGAweDgwYGAg PSBub3QgYXBwbGljYWJsZSAob3B0aW9uYWwsIHNob3dzCisrICAgICAgICAgIGN1cnJlbnQgaWYg b21pdHRlZDsgZGVmYXVsdCBgYDB4ODBgYCkKKys6RXhhbXBsZSBTaG93IGN1cnJlbnQgdmFsdWU6 CisrCXwgKio+IHR4X3Bvd2VyX2RlbHRhKioKKys6RXhhbXBsZSBTZXQgVFggcG93ZXIgZGVsdGEg dG8gMHgwNToKKysJfCAqKj4gdHhfcG93ZXJfZGVsdGEgMHgwNSoqCisrCisrcHJlZmVycmVkX3Bl ZXJfYW50ZW5uYQorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrR2V0L3NldCB0aGUgcHJl ZmVycmVkIGFudGVubmEgZm9yIHRoZSBwZWVyIGRldmljZS4KKysKKys6VXNhZ2U6ICoqPiBwcmVm ZXJyZWRfcGVlcl9hbnRlbm5hIFt2YWx1ZV0qKgorKzpbdmFsdWVdOiBQcmVmZXJyZWQgcGVlciBh bnRlbm5hIChvcHRpb25hbCwgc2hvd3MgY3VycmVudCBpZiBvbWl0dGVkOworKyAgICAgICAgICBk ZWZhdWx0IGBgMHgwM2BgKQorKzpFeGFtcGxlIFNob3cgY3VycmVudCB2YWx1ZToKKysJfCAqKj4g cHJlZmVycmVkX3BlZXJfYW50ZW5uYSoqCisrOkV4YW1wbGUgUHJlZmVyIGFudGVubmEgMSBvbiB0 aGUgcGVlcjoKKysJfCAqKj4gcHJlZmVycmVkX3BlZXJfYW50ZW5uYSAweDAxKioKKysKKytzbnJf Y29udHJvbF9pbml0aWF0b3IKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrR2V0L3NldCB0 aGUgU05SIGNvbnRyb2wgZm9yIHRoZSBpbml0aWF0b3IuCisrCisrOlVzYWdlOiAqKj4gc25yX2Nv bnRyb2xfaW5pdGlhdG9yIFt2YWx1ZV0qKgorKzpbdmFsdWVdOiBTTlIgY29udHJvbDsgYGAweEZG YGAgPSBubyBwcmVmZXJlbmNlIChvcHRpb25hbCwgc2hvd3MKKysgICAgICAgICAgY3VycmVudCBp ZiBvbWl0dGVkOyBkZWZhdWx0IGBgMHhGRmBgKQorKzpFeGFtcGxlIFNob3cgY3VycmVudCB2YWx1 ZToKKysJfCAqKj4gc25yX2NvbnRyb2xfaW5pdGlhdG9yKioKKys6RXhhbXBsZSBQcmVmZXIgaGln aCBTTlIgb24gdGhlIGluaXRpYXRvcjoKKysJfCAqKj4gc25yX2NvbnRyb2xfaW5pdGlhdG9yIDB4 MDEqKgorKworK3Nucl9jb250cm9sX3JlZmxlY3RvcgorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysKKytHZXQvc2V0IHRoZSBTTlIgY29udHJvbCBmb3IgdGhlIHJlZmxlY3Rvci4KKysKKys6VXNh Z2U6ICoqPiBzbnJfY29udHJvbF9yZWZsZWN0b3IgW3ZhbHVlXSoqCisrOlt2YWx1ZV06IFNOUiBj b250cm9sOyBgYDB4RkZgYCA9IG5vIHByZWZlcmVuY2UgKG9wdGlvbmFsLCBzaG93cworKyAgICAg ICAgICBjdXJyZW50IGlmIG9taXR0ZWQ7IGRlZmF1bHQgYGAweEZGYGApCisrOkV4YW1wbGUgU2hv dyBjdXJyZW50IHZhbHVlOgorKwl8ICoqPiBzbnJfY29udHJvbF9yZWZsZWN0b3IqKgorKzpFeGFt cGxlIFByZWZlciBoaWdoIFNOUiBvbiB0aGUgcmVmbGVjdG9yOgorKwl8ICoqPiBzbnJfY29udHJv bF9yZWZsZWN0b3IgMHgwMSoqCisrOkV4YW1wbGUgUHJlZmVyIGhpZ2ggU05SIG9uIGJvdGggcm9s ZXM6CisrCXwgKio+IHNucl9jb250cm9sX2luaXRpYXRvciAweDAxKioKKysJfCAqKj4gc25yX2Nv bnRyb2xfcmVmbGVjdG9yIDB4MDEqKgorKworK1JFU09VUkNFUworKz09PT09PT09PQorKworK2h0 dHA6Ly93d3cuYmx1ZXoub3JnCisrCisrUkVQT1JUSU5HIEJVR1MKKys9PT09PT09PT09PT09PQor KworK2xpbnV4LWJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmcKKy0tIAorMi41NC4wCisKCmRpZmYg LS1naXQgYS9ibHVlei5zcGVjIGIvYmx1ZXouc3BlYwppbmRleCA0MjVhMzExLi44OTUxNGExIDEw MDY0NAotLS0gYS9ibHVlei5zcGVjCisrKyBiL2JsdWV6LnNwZWMKQEAgLTYsMTUgKzYsMTUgQEAK IAogTmFtZTogICAgYmx1ZXoKIFZlcnNpb246IDUuODcKLVJlbGVhc2U6IDIlez9kaXN0fQorUmVs ZWFzZTogMyV7P2Rpc3R9CiBTdW1tYXJ5OiBCbHVldG9vdGggdXRpbGl0aWVzCiBMaWNlbnNlOiBH UEwtMi4wLW9yLWxhdGVyCiBVUkw6ICAgICBodHRwOi8vd3d3LmJsdWV6Lm9yZy8KIAogU291cmNl MDogaHR0cHM6Ly93d3cua2VybmVsLm9yZy9wdWIvbGludXgvYmx1ZXRvb3RoLyV7bmFtZX0tJXt2 ZXJzaW9ufS50YXIueHoKIAotIyBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vYmx1ZXRv b3RoL2JsdWV6LmdpdC9jb21taXQvP2lkPTViYzZhYTc5ZTUzNzAwZDU2ZmMxZjlmOTM2NDU3M2Jh NGM3OGRhNjUKLVBhdGNoMTogMDAwMS1hZGFwdGVyLUZpeC1jcmFzaC1vbi1kZXZfZGlzY29ubmVj dGVkLnBhdGNoCisjIGdpdCBmb3JtYXQtcGF0Y2ggLS1zdGRvdXQgNS44Ny4uLjMwZGI2NmRjOTcx YmQxY2Q5NWQ0YTdiMGVlYTI5NjM2N2FiNjViM2IKK1BhdGNoMTogNS44Ny1idWctZml4ZXMtMS5w YXRjaAogCiBCdWlsZFJlcXVpcmVzOiBkYnVzLWRldmVsID49IDEuNgogQnVpbGRSZXF1aXJlczog Z2xpYjItZGV2ZWwKQEAgLTM0MCw2ICszNDAsOSBAQCBpbnN0YWxsIGVtdWxhdG9yL2J0dmlydCAk e1JQTV9CVUlMRF9ST09UfS8le19saWJleGVjZGlyfS9ibHVldG9vdGgvCiAle191c2VydW5pdGRp cn0vb2JleC5zZXJ2aWNlCiAKICVjaGFuZ2Vsb2cKKyogRnJpIEp1bCAxNyAyMDI2IEJhc3RpZW4g Tm9jZXJhIDxibm9jZXJhQHJlZGhhdC5jb20+IC0gNS44Ny0zCistIFVwZGF0ZSB0byBsYXRlc3Qg dXBzdHJlYW0gSEVBRCB0byBmaXggYSBudW1iZXIgb2YgcG9zc2libGUgY3Jhc2hlcworCiAqIFdl ZCBKdWwgMDggMjAyNiBCYXN0aWVuIE5vY2VyYSA8Ym5vY2VyYUByZWRoYXQuY29tPiAtIDUuODct MgogLSBBZGQgcG9zdC1yZWxlYXNlIGNyYXNoIGZpeCBvbiBkaXNjb25uZWN0aW9uCiAK