From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LA4DE-0007J3-46 for qemu-devel@nongnu.org; Tue, 09 Dec 2008 10:09:24 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LA4DC-0007IT-Sp for qemu-devel@nongnu.org; Tue, 09 Dec 2008 10:09:23 -0500 Received: from [199.232.76.173] (port=55924 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LA4DC-0007IN-Nu for qemu-devel@nongnu.org; Tue, 09 Dec 2008 10:09:22 -0500 Received: from yw-out-1718.google.com ([74.125.46.156]:44064) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LA4DC-0004CK-9n for qemu-devel@nongnu.org; Tue, 09 Dec 2008 10:09:23 -0500 Received: by yw-out-1718.google.com with SMTP id 6so891536ywa.82 for ; Tue, 09 Dec 2008 07:09:20 -0800 (PST) Message-ID: Date: Tue, 9 Dec 2008 16:01:53 +0100 From: Gildas MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_80893_26519041.1228834913824" Subject: [Qemu-devel] [PATCH] rename vlan to vnet and mark vlan as deprecated Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org ------=_Part_80893_26519041.1228834913824 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi all, As I agree with the thread "vlan option is misleading, what about vnet ?" and I found sending a patch would be more constructive than a "+1", here it is. -- This patch renames occurences of vlan/VLAN that are not related to IEE 802.1q vlans to vnet/VNET respectively. Usage of vlan= in the -net options is still allowed but will produce an error message on stderr indicating that the option is now deprecated and will be removed in the future. Compiled on a x86_64 linux host with ./configure && make, then tested with a x86_64 linux VM using -net user with different nics and vnet/vlan combinaisons. Signed-off-by: Gildas Le Nadan <3ntr0p13@gmail.com> ------=_Part_80893_26519041.1228834913824 Content-Type: text/x-patch; name=vlan_to_vnet.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_foiol9571 Content-Disposition: attachment; filename=vlan_to_vnet.diff ZGlmZiAtTmF1ciB0cnVuay9ody9lMTAwMC5jIGxvY2FsL2h3L2UxMDAwLmMKLS0tIHRydW5rL2h3 L2UxMDAwLmMJMjAwOC0xMi0wOSAxMzoyMzowNy4wMDAwMDAwMDAgKzAxMDAKKysrIGxvY2FsL2h3 L2UxMDAwLmMJMjAwOC0xMi0wOSAxNToyMTo0NC4wMDAwMDAwMDAgKzAxMDAKQEAgLTc0LDcgKzc0 LDcgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgRTEwMDBTdGF0ZV9zdCB7CiAgICAgUENJRGV2aWNlIGRl djsKLSAgICBWTEFOQ2xpZW50U3RhdGUgKnZjOworICAgIFZORVRDbGllbnRTdGF0ZSAqdmM7CiAg ICAgTklDSW5mbyAqbmQ7CiAgICAgaW50IG1taW9faW5kZXg7CiAKQEAgLTEwNTksNyArMTA1OSw3 IEBACiAgICAgZC0+cnhidWZfbWluX3NoaWZ0ID0gMTsKICAgICBtZW1zZXQoJmQtPnR4LCAwLCBz aXplb2YgZC0+dHgpOwogCi0gICAgZC0+dmMgPSBxZW11X25ld192bGFuX2NsaWVudChuZC0+dmxh biwgZTEwMDBfcmVjZWl2ZSwKKyAgICBkLT52YyA9IHFlbXVfbmV3X3ZuZXRfY2xpZW50KG5kLT52 bmV0LCBlMTAwMF9yZWNlaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZTEw MDBfY2FuX3JlY2VpdmUsIGQpOwogCiAgICAgc25wcmludGYoZC0+dmMtPmluZm9fc3RyLCBzaXpl b2YoZC0+dmMtPmluZm9fc3RyKSwKZGlmZiAtTmF1ciB0cnVuay9ody9lZXBybzEwMC5jIGxvY2Fs L2h3L2VlcHJvMTAwLmMKLS0tIHRydW5rL2h3L2VlcHJvMTAwLmMJMjAwOC0xMi0wOSAxMzoyMzow Ny4wMDAwMDAwMDAgKzAxMDAKKysrIGxvY2FsL2h3L2VlcHJvMTAwLmMJMjAwOC0xMi0wOSAxMzoz Mzo1OS4wMDAwMDAwMDAgKzAxMDAKQEAgLTIyNiw3ICsyMjYsNyBAQAogICAgIHVpbnQ4X3QgbXVs dFs4XTsgICAgICAgICAgICAvKiBtdWx0aWNhc3QgbWFzayBhcnJheSAqLwogICAgIGludCBtbWlv X2luZGV4OwogICAgIFBDSURldmljZSAqcGNpX2RldjsKLSAgICBWTEFOQ2xpZW50U3RhdGUgKnZj OworICAgIFZORVRDbGllbnRTdGF0ZSAqdmM7CiAjZW5kaWYKICAgICB1aW50OF90IHNjYl9zdGF0 OyAgICAgICAgICAgLyogU0NCIHN0YXQvYWNrIGJ5dGUgKi8KICAgICB1aW50OF90IGludF9zdGF0 OyAgICAgICAgICAgLyogUENJIGludGVycnVwdCBzdGF0dXMgKi8KQEAgLTE3NzYsNyArMTc3Niw3 IEBACiAKICAgICBuaWNfcmVzZXQocyk7CiAKLSAgICBzLT52YyA9IHFlbXVfbmV3X3ZsYW5fY2xp ZW50KG5kLT52bGFuLCBuaWNfcmVjZWl2ZSwgbmljX2Nhbl9yZWNlaXZlLCBzKTsKKyAgICBzLT52 YyA9IHFlbXVfbmV3X3ZuZXRfY2xpZW50KG5kLT52bmV0LCBuaWNfcmVjZWl2ZSwgbmljX2Nhbl9y ZWNlaXZlLCBzKTsKIAogICAgIHNucHJpbnRmKHMtPnZjLT5pbmZvX3N0ciwgc2l6ZW9mKHMtPnZj LT5pbmZvX3N0ciksCiAgICAgICAgICAgICAgImVlcHJvMTAwIHBjaSBtYWNhZGRyPSUwMng6JTAy eDolMDJ4OiUwMng6JTAyeDolMDJ4IiwKZGlmZiAtTmF1ciB0cnVuay9ody9ldHJheGZzX2V0aC5j IGxvY2FsL2h3L2V0cmF4ZnNfZXRoLmMKLS0tIHRydW5rL2h3L2V0cmF4ZnNfZXRoLmMJMjAwOC0x Mi0wOSAxMzoyMzowNy4wMDAwMDAwMDAgKzAxMDAKKysrIGxvY2FsL2h3L2V0cmF4ZnNfZXRoLmMJ MjAwOC0xMi0wOSAxMzozMzo1OS4wMDAwMDAwMDAgKzAxMDAKQEAgLTMxNCw3ICszMTQsNyBAQAog ewogCUNQVVN0YXRlICplbnY7CiAJcWVtdV9pcnEgKmlycTsKLQlWTEFOQ2xpZW50U3RhdGUgKnZj OworCVZORVRDbGllbnRTdGF0ZSAqdmM7CiAJaW50IGV0aHJlZ3M7CiAKIAkvKiBUd28gYWRkcnMg aW4gdGhlIGZpbHRlci4gICovCkBAIC01OTYsNyArNTk2LDcgQEAKIAlldGgtPmV0aHJlZ3MgPSBj cHVfcmVnaXN0ZXJfaW9fbWVtb3J5KDAsIGV0aF9yZWFkLCBldGhfd3JpdGUsIGV0aCk7CiAJY3B1 X3JlZ2lzdGVyX3BoeXNpY2FsX21lbW9yeSAoYmFzZSwgMHg1YywgZXRoLT5ldGhyZWdzKTsKIAot CWV0aC0+dmMgPSBxZW11X25ld192bGFuX2NsaWVudChuZC0+dmxhbiwgCisJZXRoLT52YyA9IHFl bXVfbmV3X3ZuZXRfY2xpZW50KG5kLT52bmV0LCAKIAkJCQkgICAgICAgZXRoX3JlY2VpdmUsIGV0 aF9jYW5fcmVjZWl2ZSwgZXRoKTsKIAogCXJldHVybiBkbWE7CmRpZmYgLU5hdXIgdHJ1bmsvaHcv aW50ZWdyYXRvcmNwLmMgbG9jYWwvaHcvaW50ZWdyYXRvcmNwLmMKLS0tIHRydW5rL2h3L2ludGVn cmF0b3JjcC5jCTIwMDgtMTItMDkgMTM6MjM6MDcuMDAwMDAwMDAwICswMTAwCisrKyBsb2NhbC9o dy9pbnRlZ3JhdG9yY3AuYwkyMDA4LTEyLTA5IDEzOjMyOjE5LjAwMDAwMDAwMCArMDEwMApAQCAt NDk3LDcgKzQ5Nyw3IEBACiAgICAgICAgIGV4aXQoMSk7CiAgICAgfQogICAgIHBsMTgxX2luaXQo MHgxYzAwMDAwMCwgZHJpdmVzX3RhYmxlW3NkXS5iZHJ2LCBwaWNbMjNdLCBwaWNbMjRdKTsKLSAg ICBpZiAobmRfdGFibGVbMF0udmxhbikgeworICAgIGlmIChuZF90YWJsZVswXS52bmV0KSB7CiAg ICAgICAgIGlmIChuZF90YWJsZVswXS5tb2RlbCA9PSBOVUxMCiAgICAgICAgICAgICB8fCBzdHJj bXAobmRfdGFibGVbMF0ubW9kZWwsICJzbWM5MWMxMTEiKSA9PSAwKSB7CiAgICAgICAgICAgICBz bWM5MWMxMTFfaW5pdCgmbmRfdGFibGVbMF0sIDB4YzgwMDAwMDAsIHBpY1syN10pOwpkaWZmIC1O YXVyIHRydW5rL2h3L21jZjUyMDguYyBsb2NhbC9ody9tY2Y1MjA4LmMKLS0tIHRydW5rL2h3L21j ZjUyMDguYwkyMDA4LTEyLTA5IDEzOjIzOjA3LjAwMDAwMDAwMCArMDEwMAorKysgbG9jYWwvaHcv bWNmNTIwOC5jCTIwMDgtMTItMDkgMTM6MzI6MTkuMDAwMDAwMDAwICswMTAwCkBAIC0yNDEsNyAr MjQxLDcgQEAKICAgICAgICAgZnByaW50ZihzdGRlcnIsICJUb28gbWFueSBOSUNzXG4iKTsKICAg ICAgICAgZXhpdCgxKTsKICAgICB9Ci0gICAgaWYgKG5kX3RhYmxlWzBdLnZsYW4pIHsKKyAgICBp ZiAobmRfdGFibGVbMF0udm5ldCkgewogICAgICAgICBpZiAobmRfdGFibGVbMF0ubW9kZWwgPT0g TlVMTAogICAgICAgICAgICAgfHwgc3RyY21wKG5kX3RhYmxlWzBdLm1vZGVsLCAibWNmX2ZlYyIp ID09IDApIHsKICAgICAgICAgICAgIG1jZl9mZWNfaW5pdCgmbmRfdGFibGVbMF0sIDB4ZmMwMzAw MDAsIHBpYyArIDM2KTsKZGlmZiAtTmF1ciB0cnVuay9ody9tY2ZfZmVjLmMgbG9jYWwvaHcvbWNm X2ZlYy5jCi0tLSB0cnVuay9ody9tY2ZfZmVjLmMJMjAwOC0xMi0wOSAxMzoyMzowNy4wMDAwMDAw MDAgKzAxMDAKKysrIGxvY2FsL2h3L21jZl9mZWMuYwkyMDA4LTEyLTA5IDEzOjMzOjU5LjAwMDAw MDAwMCArMDEwMApAQCAtMjQsNyArMjQsNyBAQAogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgcWVt dV9pcnEgKmlycTsKLSAgICBWTEFOQ2xpZW50U3RhdGUgKnZjOworICAgIFZORVRDbGllbnRTdGF0 ZSAqdmM7CiAgICAgdWludDMyX3QgaXJxX3N0YXRlOwogICAgIHVpbnQzMl90IGVpcjsKICAgICB1 aW50MzJfdCBlaW1yOwpAQCAtNDUyLDcgKzQ1Miw3IEBACiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtY2ZfZmVjX3dyaXRlZm4sIHMpOwogICAgIGNwdV9yZWdpc3Rlcl9w aHlzaWNhbF9tZW1vcnkoYmFzZSwgMHg0MDAsIGlvbWVtdHlwZSk7CiAKLSAgICBzLT52YyA9IHFl bXVfbmV3X3ZsYW5fY2xpZW50KG5kLT52bGFuLCBtY2ZfZmVjX3JlY2VpdmUsCisgICAgcy0+dmMg PSBxZW11X25ld192bmV0X2NsaWVudChuZC0+dm5ldCwgbWNmX2ZlY19yZWNlaXZlLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWNmX2ZlY19jYW5fcmVjZWl2ZSwgcyk7CiAgICAg bWVtY3B5KHMtPm1hY2FkZHIsIG5kLT5tYWNhZGRyLCA2KTsKIH0KZGlmZiAtTmF1ciB0cnVuay9o dy9taXBzX21pcHNzaW0uYyBsb2NhbC9ody9taXBzX21pcHNzaW0uYwotLS0gdHJ1bmsvaHcvbWlw c19taXBzc2ltLmMJMjAwOC0xMi0wOSAxMzoyMzowNy4wMDAwMDAwMDAgKzAxMDAKKysrIGxvY2Fs L2h3L21pcHNfbWlwc3NpbS5jCTIwMDgtMTItMDkgMTM6MzI6MTkuMDAwMDAwMDAwICswMTAwCkBA IC0xNzUsNyArMTc1LDcgQEAKICAgICBpZiAoc2VyaWFsX2hkc1swXSkKICAgICAgICAgc2VyaWFs X2luaXQoMHgzZjgsIGVudi0+aXJxWzRdLCAxMTUyMDAsIHNlcmlhbF9oZHNbMF0pOwogCi0gICAg aWYgKG5kX3RhYmxlWzBdLnZsYW4pIHsKKyAgICBpZiAobmRfdGFibGVbMF0udm5ldCkgewogICAg ICAgICBpZiAobmRfdGFibGVbMF0ubW9kZWwgPT0gTlVMTAogICAgICAgICAgICAgfHwgc3RyY21w KG5kX3RhYmxlWzBdLm1vZGVsLCAibWlwc25ldCIpID09IDApIHsKICAgICAgICAgICAgIC8qIE1J UFNuZXQgdXNlcyB0aGUgTUlQUyBDUFUgSU5UMCwgd2hpY2ggaXMgaW50ZXJydXB0IDIuICovCmRp ZmYgLU5hdXIgdHJ1bmsvaHcvbWlwc25ldC5jIGxvY2FsL2h3L21pcHNuZXQuYwotLS0gdHJ1bmsv aHcvbWlwc25ldC5jCTIwMDgtMTItMDkgMTM6MjM6MDguMDAwMDAwMDAwICswMTAwCisrKyBsb2Nh bC9ody9taXBzbmV0LmMJMjAwOC0xMi0wOSAxMzozMzo1OS4wMDAwMDAwMDAgKzAxMDAKQEAgLTM0 LDcgKzM0LDcgQEAKICAgICB1aW50OF90IHJ4X2J1ZmZlcltNQVhfRVRIX0ZSQU1FX1NJWkVdOwog ICAgIHVpbnQ4X3QgdHhfYnVmZmVyW01BWF9FVEhfRlJBTUVfU0laRV07CiAgICAgcWVtdV9pcnEg aXJxOwotICAgIFZMQU5DbGllbnRTdGF0ZSAqdmM7CisgICAgVk5FVENsaWVudFN0YXRlICp2YzsK ICAgICBOSUNJbmZvICpuZDsKIH0gTUlQU25ldFN0YXRlOwogCkBAIC0yNDksOCArMjQ5LDggQEAK IAogICAgIHMtPmlycSA9IGlycTsKICAgICBzLT5uZCA9IG5kOwotICAgIGlmIChuZCAmJiBuZC0+ dmxhbikgewotICAgICAgICBzLT52YyA9IHFlbXVfbmV3X3ZsYW5fY2xpZW50KG5kLT52bGFuLCBt aXBzbmV0X3JlY2VpdmUsCisgICAgaWYgKG5kICYmIG5kLT52bmV0KSB7CisgICAgICAgIHMtPnZj ID0gcWVtdV9uZXdfdm5ldF9jbGllbnQobmQtPnZuZXQsIG1pcHNuZXRfcmVjZWl2ZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXBzbmV0X2Nhbl9yZWNlaXZlLCBzKTsK ICAgICB9IGVsc2UgewogICAgICAgICBzLT52YyA9IE5VTEw7CmRpZmYgLU5hdXIgdHJ1bmsvaHcv bWlwc19yNGsuYyBsb2NhbC9ody9taXBzX3I0ay5jCi0tLSB0cnVuay9ody9taXBzX3I0ay5jCTIw MDgtMTItMDkgMTM6MjM6MDguMDAwMDAwMDAwICswMTAwCisrKyBsb2NhbC9ody9taXBzX3I0ay5j CTIwMDgtMTItMDkgMTM6MzI6MTkuMDAwMDAwMDAwICswMTAwCkBAIC0yNDcsNyArMjQ3LDcgQEAK ICAgICBpc2FfdmdhX2luaXQoZHMsIHBoeXNfcmFtX2Jhc2UgKyByYW1fc2l6ZSwgcmFtX3NpemUs CiAgICAgICAgICAgICAgICAgIHZnYV9yYW1fc2l6ZSk7CiAKLSAgICBpZiAobmRfdGFibGVbMF0u dmxhbikgeworICAgIGlmIChuZF90YWJsZVswXS52bmV0KSB7CiAgICAgICAgIGlmIChuZF90YWJs ZVswXS5tb2RlbCA9PSBOVUxMCiAgICAgICAgICAgICB8fCBzdHJjbXAobmRfdGFibGVbMF0ubW9k ZWwsICJuZTJrX2lzYSIpID09IDApIHsKICAgICAgICAgICAgIGlzYV9uZTIwMDBfaW5pdCgweDMw MCwgaTgyNTlbOV0sICZuZF90YWJsZVswXSk7CmRpZmYgLU5hdXIgdHJ1bmsvaHcvbXVzaWNwYWwu YyBsb2NhbC9ody9tdXNpY3BhbC5jCi0tLSB0cnVuay9ody9tdXNpY3BhbC5jCTIwMDgtMTItMDkg MTM6MjM6MDguMDAwMDAwMDAwICswMTAwCisrKyBsb2NhbC9ody9tdXNpY3BhbC5jCTIwMDgtMTIt MDkgMTQ6NDU6MjguMDAwMDAwMDAwICswMTAwCkBAIC01NTQsNyArNTU0LDcgQEAKICAgICBtdjg4 dzg2MThfcnhfZGVzYyAqcnhfcXVldWVbNF07CiAgICAgbXY4OHc4NjE4X3J4X2Rlc2MgKmZyeF9x dWV1ZVs0XTsKICAgICBtdjg4dzg2MThfcnhfZGVzYyAqY3VyX3J4WzRdOwotICAgIFZMQU5DbGll bnRTdGF0ZSAqdmM7CisgICAgVk5FVENsaWVudFN0YXRlICp2YzsKIH0gbXY4OHc4NjE4X2V0aF9z dGF0ZTsKIAogc3RhdGljIGludCBldGhfY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVlKQpAQCAtNzE4 LDcgKzcxOCw3IEBACiAgICAgaWYgKCFzKQogICAgICAgICByZXR1cm47CiAgICAgcy0+aXJxID0g aXJxOwotICAgIHMtPnZjID0gcWVtdV9uZXdfdmxhbl9jbGllbnQobmQtPnZsYW4sIGV0aF9yZWNl aXZlLCBldGhfY2FuX3JlY2VpdmUsIHMpOworICAgIHMtPnZjID0gcWVtdV9uZXdfdm5ldF9jbGll bnQobmQtPnZuZXQsIGV0aF9yZWNlaXZlLCBldGhfY2FuX3JlY2VpdmUsIHMpOwogICAgIGlvbWVt dHlwZSA9IGNwdV9yZWdpc3Rlcl9pb19tZW1vcnkoMCwgbXY4OHc4NjE4X2V0aF9yZWFkZm4sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdjg4dzg2MThfZXRoX3dyaXRl Zm4sIHMpOwogICAgIGNwdV9yZWdpc3Rlcl9waHlzaWNhbF9tZW1vcnkoYmFzZSwgTVBfRVRIX1NJ WkUsIGlvbWVtdHlwZSk7CmRpZmYgLU5hdXIgdHJ1bmsvaHcvbmUyMDAwLmMgbG9jYWwvaHcvbmUy MDAwLmMKLS0tIHRydW5rL2h3L25lMjAwMC5jCTIwMDgtMTItMDkgMTM6MjM6MDcuMDAwMDAwMDAw ICswMTAwCisrKyBsb2NhbC9ody9uZTIwMDAuYwkyMDA4LTEyLTA5IDEzOjMzOjU5LjAwMDAwMDAw MCArMDEwMApAQCAtMTQxLDcgKzE0MSw3IEBACiAgICAgdWludDhfdCBtdWx0WzhdOyAvKiBtdWx0 aWNhc3QgbWFzayBhcnJheSAqLwogICAgIHFlbXVfaXJxIGlycTsKICAgICBQQ0lEZXZpY2UgKnBj aV9kZXY7Ci0gICAgVkxBTkNsaWVudFN0YXRlICp2YzsKKyAgICBWTkVUQ2xpZW50U3RhdGUgKnZj OwogICAgIHVpbnQ4X3QgbWFjYWRkcls2XTsKICAgICB1aW50OF90IG1lbVtORTIwMDBfTUVNX1NJ WkVdOwogfSBORTIwMDBTdGF0ZTsKQEAgLTc0MSw3ICs3NDEsNyBAQAogCiAgICAgbmUyMDAwX3Jl c2V0KHMpOwogCi0gICAgcy0+dmMgPSBxZW11X25ld192bGFuX2NsaWVudChuZC0+dmxhbiwgbmUy MDAwX3JlY2VpdmUsCisgICAgcy0+dmMgPSBxZW11X25ld192bmV0X2NsaWVudChuZC0+dm5ldCwg bmUyMDAwX3JlY2VpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZTIwMDBf Y2FuX3JlY2VpdmUsIHMpOwogCiAgICAgc25wcmludGYocy0+dmMtPmluZm9fc3RyLCBzaXplb2Yo cy0+dmMtPmluZm9fc3RyKSwKQEAgLTgxMSw3ICs4MTEsNyBAQAogICAgIHMtPnBjaV9kZXYgPSAo UENJRGV2aWNlICopZDsKICAgICBtZW1jcHkocy0+bWFjYWRkciwgbmQtPm1hY2FkZHIsIDYpOwog ICAgIG5lMjAwMF9yZXNldChzKTsKLSAgICBzLT52YyA9IHFlbXVfbmV3X3ZsYW5fY2xpZW50KG5k LT52bGFuLCBuZTIwMDBfcmVjZWl2ZSwKKyAgICBzLT52YyA9IHFlbXVfbmV3X3ZuZXRfY2xpZW50 KG5kLT52bmV0LCBuZTIwMDBfcmVjZWl2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5lMjAwMF9jYW5fcmVjZWl2ZSwgcyk7CiAKICAgICBzbnByaW50ZihzLT52Yy0+aW5mb19z dHIsIHNpemVvZihzLT52Yy0+aW5mb19zdHIpLApkaWZmIC1OYXVyIHRydW5rL2h3L3BjbmV0LmMg bG9jYWwvaHcvcGNuZXQuYwotLS0gdHJ1bmsvaHcvcGNuZXQuYwkyMDA4LTEyLTA5IDEzOjIzOjA3 LjAwMDAwMDAwMCArMDEwMAorKysgbG9jYWwvaHcvcGNuZXQuYwkyMDA4LTEyLTA5IDE1OjExOjI0 LjAwMDAwMDAwMCArMDEwMApAQCAtNjIsNyArNjIsNyBAQAogc3RydWN0IFBDTmV0U3RhdGVfc3Qg ewogICAgIFBDSURldmljZSBkZXY7CiAgICAgUENJRGV2aWNlICpwY2lfZGV2OwotICAgIFZMQU5D bGllbnRTdGF0ZSAqdmM7CisgICAgVk5FVENsaWVudFN0YXRlICp2YzsKICAgICBOSUNJbmZvICpu ZDsKICAgICBRRU1VVGltZXIgKnBvbGxfdGltZXI7CiAgICAgaW50IG1taW9faW5kZXgsIHJhcCwg aXNyLCBsbmtzdDsKQEAgLTE5MzUsOCArMTkzNSw4IEBACiAKICAgICBkLT5uZCA9IG5kOwogCi0g ICAgaWYgKG5kICYmIG5kLT52bGFuKSB7Ci0gICAgICAgIGQtPnZjID0gcWVtdV9uZXdfdmxhbl9j bGllbnQobmQtPnZsYW4sIHBjbmV0X3JlY2VpdmUsCisgICAgaWYgKG5kICYmIG5kLT52bmV0KSB7 CisgICAgICAgIGQtPnZjID0gcWVtdV9uZXdfdm5ldF9jbGllbnQobmQtPnZuZXQsIHBjbmV0X3Jl Y2VpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNuZXRfY2FuX3Jl Y2VpdmUsIGQpOwogCiAgICAgICAgIHNucHJpbnRmKGQtPnZjLT5pbmZvX3N0ciwgc2l6ZW9mKGQt PnZjLT5pbmZvX3N0ciksCmRpZmYgLU5hdXIgdHJ1bmsvaHcvcnRsODEzOS5jIGxvY2FsL2h3L3J0 bDgxMzkuYwotLS0gdHJ1bmsvaHcvcnRsODEzOS5jCTIwMDgtMTItMDkgMTM6MjM6MDcuMDAwMDAw MDAwICswMTAwCisrKyBsb2NhbC9ody9ydGw4MTM5LmMJMjAwOC0xMi0wOSAxNDo1NTo0My4wMDAw MDAwMDAgKzAxMDAKQEAgLTQ2NCw3ICs0NjQsNyBAQAogICAgIHVpbnQ4X3QgIFR4VGhyZXNoOwog CiAgICAgUENJRGV2aWNlICpwY2lfZGV2OwotICAgIFZMQU5DbGllbnRTdGF0ZSAqdmM7CisgICAg Vk5FVENsaWVudFN0YXRlICp2YzsKICAgICB1aW50OF90IG1hY2FkZHJbNl07CiAgICAgaW50IHJ0 bDgxMzlfbW1pb19pb19hZGRyOwogCkBAIC0zNDM4LDcgKzM0MzgsNyBAQAogICAgIHMtPnBjaV9k ZXYgPSAoUENJRGV2aWNlICopZDsKICAgICBtZW1jcHkocy0+bWFjYWRkciwgbmQtPm1hY2FkZHIs IDYpOwogICAgIHJ0bDgxMzlfcmVzZXQocyk7Ci0gICAgcy0+dmMgPSBxZW11X25ld192bGFuX2Ns aWVudChuZC0+dmxhbiwgcnRsODEzOV9yZWNlaXZlLAorICAgIHMtPnZjID0gcWVtdV9uZXdfdm5l dF9jbGllbnQobmQtPnZuZXQsIHJ0bDgxMzlfcmVjZWl2ZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJ0bDgxMzlfY2FuX3JlY2VpdmUsIHMpOwogCiAgICAgc25wcmludGYocy0+ dmMtPmluZm9fc3RyLCBzaXplb2Yocy0+dmMtPmluZm9fc3RyKSwKZGlmZiAtTmF1ciB0cnVuay9o dy9zbWM5MWMxMTEuYyBsb2NhbC9ody9zbWM5MWMxMTEuYwotLS0gdHJ1bmsvaHcvc21jOTFjMTEx LmMJMjAwOC0xMi0wOSAxMzoyMzowOC4wMDAwMDAwMDAgKzAxMDAKKysrIGxvY2FsL2h3L3NtYzkx YzExMS5jCTIwMDgtMTItMDkgMTM6MzM6NTkuMDAwMDAwMDAwICswMTAwCkBAIC0xNyw3ICsxNyw3 IEBACiAjZGVmaW5lIE5VTV9QQUNLRVRTIDQKIAogdHlwZWRlZiBzdHJ1Y3QgewotICAgIFZMQU5D bGllbnRTdGF0ZSAqdmM7CisgICAgVk5FVENsaWVudFN0YXRlICp2YzsKICAgICB1aW50MTZfdCB0 Y3I7CiAgICAgdWludDE2X3QgcmNyOwogICAgIHVpbnQxNl90IGNyOwpAQCAtNzA0LDcgKzcwNCw3 IEBACiAKICAgICBzbWM5MWMxMTFfcmVzZXQocyk7CiAKLSAgICBzLT52YyA9IHFlbXVfbmV3X3Zs YW5fY2xpZW50KG5kLT52bGFuLCBzbWM5MWMxMTFfcmVjZWl2ZSwKKyAgICBzLT52YyA9IHFlbXVf bmV3X3ZuZXRfY2xpZW50KG5kLT52bmV0LCBzbWM5MWMxMTFfcmVjZWl2ZSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNtYzkxYzExMV9jYW5fcmVjZWl2ZSwgcyk7CiAgICAgLyog Pz8/IFNhdmUvcmVzdG9yZS4gICovCiB9CmRpZmYgLU5hdXIgdHJ1bmsvaHcvc3RlbGxhcmlzX2Vu ZXQuYyBsb2NhbC9ody9zdGVsbGFyaXNfZW5ldC5jCi0tLSB0cnVuay9ody9zdGVsbGFyaXNfZW5l dC5jCTIwMDgtMTItMDkgMTM6MjM6MDcuMDAwMDAwMDAwICswMTAwCisrKyBsb2NhbC9ody9zdGVs bGFyaXNfZW5ldC5jCTIwMDgtMTItMDkgMTM6MzM6NTkuMDAwMDAwMDAwICswMTAwCkBAIC02Niw3 ICs2Niw3IEBACiAgICAgdWludDhfdCAqcnhfZmlmbzsKICAgICBpbnQgcnhfZmlmb19sZW47CiAg ICAgaW50IG5leHRfcGFja2V0OwotICAgIFZMQU5DbGllbnRTdGF0ZSAqdmM7CisgICAgVk5FVENs aWVudFN0YXRlICp2YzsKICAgICBxZW11X2lycSBpcnE7CiAgICAgdWludDhfdCBtYWNhZGRyWzZd OwogfSBzdGVsbGFyaXNfZW5ldF9zdGF0ZTsKQEAgLTM5Niw4ICszOTYsOCBAQAogICAgIHMtPmly cSA9IGlycTsKICAgICBtZW1jcHkocy0+bWFjYWRkciwgbmQtPm1hY2FkZHIsIDYpOwogCi0gICAg aWYgKG5kLT52bGFuKQotICAgICAgICBzLT52YyA9IHFlbXVfbmV3X3ZsYW5fY2xpZW50KG5kLT52 bGFuLCBzdGVsbGFyaXNfZW5ldF9yZWNlaXZlLAorICAgIGlmIChuZC0+dm5ldCkKKyAgICAgICAg cy0+dmMgPSBxZW11X25ld192bmV0X2NsaWVudChuZC0+dm5ldCwgc3RlbGxhcmlzX2VuZXRfcmVj ZWl2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVsbGFyaXNfZW5l dF9jYW5fcmVjZWl2ZSwgcyk7CiAKICAgICBzdGVsbGFyaXNfZW5ldF9yZXNldChzKTsKZGlmZiAt TmF1ciB0cnVuay9ody91c2ItbmV0LmMgbG9jYWwvaHcvdXNiLW5ldC5jCi0tLSB0cnVuay9ody91 c2ItbmV0LmMJMjAwOC0xMi0wOSAxMzoyMzowNy4wMDAwMDAwMDAgKzAxMDAKKysrIGxvY2FsL2h3 L3VzYi1uZXQuYwkyMDA4LTEyLTA5IDE0OjUwOjA0LjAwMDAwMDAwMCArMDEwMApAQCAtNjIwLDcg KzYyMCw3IEBACiAgICAgdWludDhfdCBpbl9idWZbMjA0OF07CiAKICAgICBjaGFyIHVzYnN0cmlu Z19tYWNbMTNdOwotICAgIFZMQU5DbGllbnRTdGF0ZSAqdmM7CisgICAgVk5FVENsaWVudFN0YXRl ICp2YzsKICAgICBUQUlMUV9IRUFEKHJuZGlzX3Jlc3BfaGVhZCwgcm5kaXNfcmVzcG9uc2UpIHJu ZGlzX3Jlc3A7CiB9IFVTQk5ldFN0YXRlOwogCkBAIC0xNDIxLDcgKzE0MjEsNyBAQAogICAgIFVT Qk5ldFN0YXRlICpzID0gKFVTQk5ldFN0YXRlICopIGRldjsKIAogICAgIC8qIFRPRE86IHJlbW92 ZSB0aGUgbmRfdGFibGVbXSBlbnRyeSAqLwotICAgIHFlbXVfZGVsX3ZsYW5fY2xpZW50KHMtPnZj KTsKKyAgICBxZW11X2RlbF92bmV0X2NsaWVudChzLT52Yyk7CiAgICAgcm5kaXNfY2xlYXJfcmVz cG9uc2VxdWV1ZShzKTsKICAgICBxZW11X2ZyZWUocyk7CiB9CkBAIC0xNDU0LDcgKzE0NTQsNyBA QAogCiAgICAgcHN0cmNweShzLT5kZXYuZGV2bmFtZSwgc2l6ZW9mKHMtPmRldi5kZXZuYW1lKSwK ICAgICAgICAgICAgICAgICAgICAgIlFFTVUgVVNCIE5ldHdvcmsgSW50ZXJmYWNlIik7Ci0gICAg cy0+dmMgPSBxZW11X25ld192bGFuX2NsaWVudChuZC0+dmxhbiwKKyAgICBzLT52YyA9IHFlbXVf bmV3X3ZuZXRfY2xpZW50KG5kLT52bmV0LAogICAgICAgICAgICAgICAgICAgICB1c2JuZXRfcmVj ZWl2ZSwgdXNibmV0X2Nhbl9yZWNlaXZlLCBzKTsKIAogICAgIHNucHJpbnRmKHMtPnVzYnN0cmlu Z19tYWMsIHNpemVvZihzLT51c2JzdHJpbmdfbWFjKSwKZGlmZiAtTmF1ciB0cnVuay9uZXQuYyBs b2NhbC9uZXQuYwotLS0gdHJ1bmsvbmV0LmMJMjAwOC0xMi0wOSAxMzoyMzoxNS4wMDAwMDAwMDAg KzAxMDAKKysrIGxvY2FsL25ldC5jCTIwMDgtMTItMDkgMTQ6MjE6MzcuMDAwMDAwMDAwICswMTAw CkBAIC0xMjgsNyArMTI4LDcgQEAKICNkZWZpbmUgU01CRF9DT01NQU5EICIvdXNyL3NiaW4vc21i ZCIKICNlbmRpZgogCi1zdGF0aWMgVkxBTlN0YXRlICpmaXJzdF92bGFuOworc3RhdGljIFZORVRT dGF0ZSAqZmlyc3Rfdm5ldDsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLwogLyogbmV0d29yayBkZXZpY2UgcmVkaXJlY3RvcnMg Ki8KQEAgLTMwNCwzMSArMzA0LDMxIEBACiB9CiAjZW5kaWYKIAotVkxBTkNsaWVudFN0YXRlICpx ZW11X25ld192bGFuX2NsaWVudChWTEFOU3RhdGUgKnZsYW4sCitWTkVUQ2xpZW50U3RhdGUgKnFl bXVfbmV3X3ZuZXRfY2xpZW50KFZORVRTdGF0ZSAqdm5ldCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSU9SZWFkSGFuZGxlciAqZmRfcmVhZCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSU9DYW5SV0hhbmRsZXIgKmZkX2Nhbl9yZWFkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpvcGFxdWUpCiB7Ci0gICAg VkxBTkNsaWVudFN0YXRlICp2YywgKipwdmM7Ci0gICAgdmMgPSBxZW11X21hbGxvY3ooc2l6ZW9m KFZMQU5DbGllbnRTdGF0ZSkpOworICAgIFZORVRDbGllbnRTdGF0ZSAqdmMsICoqcHZjOworICAg IHZjID0gcWVtdV9tYWxsb2N6KHNpemVvZihWTkVUQ2xpZW50U3RhdGUpKTsKICAgICBpZiAoIXZj KQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB2Yy0+ZmRfcmVhZCA9IGZkX3JlYWQ7CiAgICAg dmMtPmZkX2Nhbl9yZWFkID0gZmRfY2FuX3JlYWQ7CiAgICAgdmMtPm9wYXF1ZSA9IG9wYXF1ZTsK LSAgICB2Yy0+dmxhbiA9IHZsYW47CisgICAgdmMtPnZuZXQgPSB2bmV0OwogCiAgICAgdmMtPm5l eHQgPSBOVUxMOwotICAgIHB2YyA9ICZ2bGFuLT5maXJzdF9jbGllbnQ7CisgICAgcHZjID0gJnZu ZXQtPmZpcnN0X2NsaWVudDsKICAgICB3aGlsZSAoKnB2YyAhPSBOVUxMKQogICAgICAgICBwdmMg PSAmKCpwdmMpLT5uZXh0OwogICAgICpwdmMgPSB2YzsKICAgICByZXR1cm4gdmM7CiB9CiAKLXZv aWQgcWVtdV9kZWxfdmxhbl9jbGllbnQoVkxBTkNsaWVudFN0YXRlICp2YykKK3ZvaWQgcWVtdV9k ZWxfdm5ldF9jbGllbnQoVk5FVENsaWVudFN0YXRlICp2YykKIHsKLSAgICBWTEFOQ2xpZW50U3Rh dGUgKipwdmMgPSAmdmMtPnZsYW4tPmZpcnN0X2NsaWVudDsKKyAgICBWTkVUQ2xpZW50U3RhdGUg KipwdmMgPSAmdmMtPnZuZXQtPmZpcnN0X2NsaWVudDsKIAogICAgIHdoaWxlICgqcHZjICE9IE5V TEwpCiAgICAgICAgIGlmICgqcHZjID09IHZjKSB7CkBAIC0zMzksMTIgKzMzOSwxMiBAQAogICAg ICAgICAgICAgcHZjID0gJigqcHZjKS0+bmV4dDsKIH0KIAotaW50IHFlbXVfY2FuX3NlbmRfcGFj a2V0KFZMQU5DbGllbnRTdGF0ZSAqdmMxKQoraW50IHFlbXVfY2FuX3NlbmRfcGFja2V0KFZORVRD bGllbnRTdGF0ZSAqdmMxKQogewotICAgIFZMQU5TdGF0ZSAqdmxhbiA9IHZjMS0+dmxhbjsKLSAg ICBWTEFOQ2xpZW50U3RhdGUgKnZjOworICAgIFZORVRTdGF0ZSAqdm5ldCA9IHZjMS0+dm5ldDsK KyAgICBWTkVUQ2xpZW50U3RhdGUgKnZjOwogCi0gICAgZm9yKHZjID0gdmxhbi0+Zmlyc3RfY2xp ZW50OyB2YyAhPSBOVUxMOyB2YyA9IHZjLT5uZXh0KSB7CisgICAgZm9yKHZjID0gdm5ldC0+Zmly c3RfY2xpZW50OyB2YyAhPSBOVUxMOyB2YyA9IHZjLT5uZXh0KSB7CiAgICAgICAgIGlmICh2YyAh PSB2YzEpIHsKICAgICAgICAgICAgIGlmICh2Yy0+ZmRfY2FuX3JlYWQgJiYgdmMtPmZkX2Nhbl9y ZWFkKHZjLT5vcGFxdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiAxOwpAQCAtMzUzLDE2ICsz NTMsMTYgQEAKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBxZW11X3NlbmRfcGFja2V0KFZMQU5D bGllbnRTdGF0ZSAqdmMxLCBjb25zdCB1aW50OF90ICpidWYsIGludCBzaXplKQordm9pZCBxZW11 X3NlbmRfcGFja2V0KFZORVRDbGllbnRTdGF0ZSAqdmMxLCBjb25zdCB1aW50OF90ICpidWYsIGlu dCBzaXplKQogewotICAgIFZMQU5TdGF0ZSAqdmxhbiA9IHZjMS0+dmxhbjsKLSAgICBWTEFOQ2xp ZW50U3RhdGUgKnZjOworICAgIFZORVRTdGF0ZSAqdm5ldCA9IHZjMS0+dm5ldDsKKyAgICBWTkVU Q2xpZW50U3RhdGUgKnZjOwogCiAjaWZkZWYgREVCVUdfTkVUCi0gICAgcHJpbnRmKCJ2bGFuICVk IHNlbmQ6XG4iLCB2bGFuLT5pZCk7CisgICAgcHJpbnRmKCJ2bmV0ICVkIHNlbmQ6XG4iLCB2bmV0 LT5pZCk7CiAgICAgaGV4X2R1bXAoc3Rkb3V0LCBidWYsIHNpemUpOwogI2VuZGlmCi0gICAgZm9y KHZjID0gdmxhbi0+Zmlyc3RfY2xpZW50OyB2YyAhPSBOVUxMOyB2YyA9IHZjLT5uZXh0KSB7Cisg ICAgZm9yKHZjID0gdm5ldC0+Zmlyc3RfY2xpZW50OyB2YyAhPSBOVUxMOyB2YyA9IHZjLT5uZXh0 KSB7CiAgICAgICAgIGlmICh2YyAhPSB2YzEpIHsKICAgICAgICAgICAgIHZjLT5mZF9yZWFkKHZj LT5vcGFxdWUsIGJ1Ziwgc2l6ZSk7CiAgICAgICAgIH0KQEAgLTM3NCw3ICszNzQsNyBAQAogLyog c2xpcnAgbmV0d29yayBhZGFwdGVyICovCiAKIHN0YXRpYyBpbnQgc2xpcnBfaW5pdGVkOwotc3Rh dGljIFZMQU5DbGllbnRTdGF0ZSAqc2xpcnBfdmM7CitzdGF0aWMgVk5FVENsaWVudFN0YXRlICpz bGlycF92YzsKIAogaW50IHNsaXJwX2Nhbl9vdXRwdXQodm9pZCkKIHsKQEAgLTQwNiwxMyArNDA2 LDEzIEBACiAgICAgc2xpcnBfaW5wdXQoYnVmLCBzaXplKTsKIH0KIAotc3RhdGljIGludCBuZXRf c2xpcnBfaW5pdChWTEFOU3RhdGUgKnZsYW4pCitzdGF0aWMgaW50IG5ldF9zbGlycF9pbml0KFZO RVRTdGF0ZSAqdm5ldCkKIHsKICAgICBpZiAoIXNsaXJwX2luaXRlZCkgewogICAgICAgICBzbGly cF9pbml0ZWQgPSAxOwogICAgICAgICBzbGlycF9pbml0KCk7CiAgICAgfQotICAgIHNsaXJwX3Zj ID0gcWVtdV9uZXdfdmxhbl9jbGllbnQodmxhbiwKKyAgICBzbGlycF92YyA9IHFlbXVfbmV3X3Zu ZXRfY2xpZW50KHZuZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGly cF9yZWNlaXZlLCBOVUxMLCBOVUxMKTsKICAgICBzbnByaW50ZihzbGlycF92Yy0+aW5mb19zdHIs IHNpemVvZihzbGlycF92Yy0+aW5mb19zdHIpLCAidXNlciByZWRpcmVjdG9yIik7CiAgICAgcmV0 dXJuIDA7CkBAIC01NzEsNyArNTcxLDcgQEAKICNpZiAhZGVmaW5lZChfV0lOMzIpCiAKIHR5cGVk ZWYgc3RydWN0IFRBUFN0YXRlIHsKLSAgICBWTEFOQ2xpZW50U3RhdGUgKnZjOworICAgIFZORVRD bGllbnRTdGF0ZSAqdmM7CiAgICAgaW50IGZkOwogICAgIGNoYXIgZG93bl9zY3JpcHRbMTAyNF07 CiB9IFRBUFN0YXRlOwpAQCAtNjExLDcgKzYxMSw3IEBACiAKIC8qIGZkIHN1cHBvcnQgKi8KIAot c3RhdGljIFRBUFN0YXRlICpuZXRfdGFwX2ZkX2luaXQoVkxBTlN0YXRlICp2bGFuLCBpbnQgZmQp CitzdGF0aWMgVEFQU3RhdGUgKm5ldF90YXBfZmRfaW5pdChWTkVUU3RhdGUgKnZuZXQsIGludCBm ZCkKIHsKICAgICBUQVBTdGF0ZSAqczsKIApAQCAtNjE5LDcgKzYxOSw3IEBACiAgICAgaWYgKCFz KQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBzLT5mZCA9IGZkOwotICAgIHMtPnZjID0gcWVt dV9uZXdfdmxhbl9jbGllbnQodmxhbiwgdGFwX3JlY2VpdmUsIE5VTEwsIHMpOworICAgIHMtPnZj ID0gcWVtdV9uZXdfdm5ldF9jbGllbnQodm5ldCwgdGFwX3JlY2VpdmUsIE5VTEwsIHMpOwogICAg IHFlbXVfc2V0X2ZkX2hhbmRsZXIocy0+ZmQsIHRhcF9zZW5kLCBOVUxMLCBzKTsKICAgICBzbnBy aW50ZihzLT52Yy0+aW5mb19zdHIsIHNpemVvZihzLT52Yy0+aW5mb19zdHIpLCAidGFwOiBmZD0l ZCIsIGZkKTsKICAgICByZXR1cm4gczsKQEAgLTg1MSw3ICs4NTEsNyBAQAogICAgIHJldHVybiAw OwogfQogCi1zdGF0aWMgaW50IG5ldF90YXBfaW5pdChWTEFOU3RhdGUgKnZsYW4sIGNvbnN0IGNo YXIgKmlmbmFtZTEsCitzdGF0aWMgaW50IG5ldF90YXBfaW5pdChWTkVUU3RhdGUgKnZuZXQsIGNv bnN0IGNoYXIgKmlmbmFtZTEsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpz ZXR1cF9zY3JpcHQsIGNvbnN0IGNoYXIgKmRvd25fc2NyaXB0KQogewogICAgIFRBUFN0YXRlICpz OwpAQCAtODcyLDcgKzg3Miw3IEBACiAJaWYgKGxhdW5jaF9zY3JpcHQoc2V0dXBfc2NyaXB0LCBp Zm5hbWUsIGZkKSkKIAkgICAgcmV0dXJuIC0xOwogICAgIH0KLSAgICBzID0gbmV0X3RhcF9mZF9p bml0KHZsYW4sIGZkKTsKKyAgICBzID0gbmV0X3RhcF9mZF9pbml0KHZuZXQsIGZkKTsKICAgICBp ZiAoIXMpCiAgICAgICAgIHJldHVybiAtMTsKICAgICBzbnByaW50ZihzLT52Yy0+aW5mb19zdHIs IHNpemVvZihzLT52Yy0+aW5mb19zdHIpLApAQCAtODg2LDcgKzg4Niw3IEBACiAKICNpZiBkZWZp bmVkKENPTkZJR19WREUpCiB0eXBlZGVmIHN0cnVjdCBWREVTdGF0ZSB7Ci0gICAgVkxBTkNsaWVu dFN0YXRlICp2YzsKKyAgICBWTkVUQ2xpZW50U3RhdGUgKnZjOwogICAgIFZERUNPTk4gKnZkZTsK IH0gVkRFU3RhdGU7CiAKQEAgLTkxNSw3ICs5MTUsNyBAQAogICAgIH0KIH0KIAotc3RhdGljIGlu dCBuZXRfdmRlX2luaXQoVkxBTlN0YXRlICp2bGFuLCBjb25zdCBjaGFyICpzb2NrLCBpbnQgcG9y dCwKK3N0YXRpYyBpbnQgbmV0X3ZkZV9pbml0KFZORVRTdGF0ZSAqdm5ldCwgY29uc3QgY2hhciAq c29jaywgaW50IHBvcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpncm91 cCwgaW50IG1vZGUpCiB7CiAgICAgVkRFU3RhdGUgKnM7CkBAIC05MzYsNyArOTM2LDcgQEAKICAg ICAgICAgZnJlZShzKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KLSAgICBzLT52YyA9IHFl bXVfbmV3X3ZsYW5fY2xpZW50KHZsYW4sIHZkZV9mcm9tX3FlbXUsIE5VTEwsIHMpOworICAgIHMt PnZjID0gcWVtdV9uZXdfdm5ldF9jbGllbnQodm5ldCwgdmRlX2Zyb21fcWVtdSwgTlVMTCwgcyk7 CiAgICAgcWVtdV9zZXRfZmRfaGFuZGxlcih2ZGVfZGF0YWZkKHMtPnZkZSksIHZkZV90b19xZW11 LCBOVUxMLCBzKTsKICAgICBzbnByaW50ZihzLT52Yy0+aW5mb19zdHIsIHNpemVvZihzLT52Yy0+ aW5mb19zdHIpLCAidmRlOiBzb2NrPSVzIGZkPSVkIiwKICAgICAgICAgICAgICBzb2NrLCB2ZGVf ZGF0YWZkKHMtPnZkZSkpOwpAQCAtOTQ2LDcgKzk0Niw3IEBACiAKIC8qIG5ldHdvcmsgY29ubmVj dGlvbiAqLwogdHlwZWRlZiBzdHJ1Y3QgTmV0U29ja2V0U3RhdGUgewotICAgIFZMQU5DbGllbnRT dGF0ZSAqdmM7CisgICAgVk5FVENsaWVudFN0YXRlICp2YzsKICAgICBpbnQgZmQ7CiAgICAgaW50 IHN0YXRlOyAvKiAwID0gZ2V0dGluZyBsZW5ndGgsIDEgPSBnZXR0aW5nIGRhdGEgKi8KICAgICBp bnQgaW5kZXg7CkBAIC05NTYsNyArOTU2LDcgQEAKIH0gTmV0U29ja2V0U3RhdGU7CiAKIHR5cGVk ZWYgc3RydWN0IE5ldFNvY2tldExpc3RlblN0YXRlIHsKLSAgICBWTEFOU3RhdGUgKnZsYW47Cisg ICAgVk5FVFN0YXRlICp2bmV0OwogICAgIGludCBmZDsKIH0gTmV0U29ja2V0TGlzdGVuU3RhdGU7 CiAKQEAgLTExMTAsNyArMTExMCw3IEBACiAgICAgcmV0dXJuIC0xOwogfQogCi1zdGF0aWMgTmV0 U29ja2V0U3RhdGUgKm5ldF9zb2NrZXRfZmRfaW5pdF9kZ3JhbShWTEFOU3RhdGUgKnZsYW4sIGlu dCBmZCwKK3N0YXRpYyBOZXRTb2NrZXRTdGF0ZSAqbmV0X3NvY2tldF9mZF9pbml0X2RncmFtKFZO RVRTdGF0ZSAqdm5ldCwgaW50IGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50IGlzX2Nvbm5lY3RlZCkKIHsKICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc2Fk ZHI7CkBAIC0xMTU0LDcgKzExNTQsNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBzLT5m ZCA9IGZkOwogCi0gICAgcy0+dmMgPSBxZW11X25ld192bGFuX2NsaWVudCh2bGFuLCBuZXRfc29j a2V0X3JlY2VpdmVfZGdyYW0sIE5VTEwsIHMpOworICAgIHMtPnZjID0gcWVtdV9uZXdfdm5ldF9j bGllbnQodm5ldCwgbmV0X3NvY2tldF9yZWNlaXZlX2RncmFtLCBOVUxMLCBzKTsKICAgICBxZW11 X3NldF9mZF9oYW5kbGVyKHMtPmZkLCBuZXRfc29ja2V0X3NlbmRfZGdyYW0sIE5VTEwsIHMpOwog CiAgICAgLyogbWNhc3Q6IHNhdmUgYm91bmQgYWRkcmVzcyBhcyBkc3QgKi8KQEAgLTExNzMsNyAr MTE3Myw3IEBACiAgICAgcWVtdV9zZXRfZmRfaGFuZGxlcihzLT5mZCwgbmV0X3NvY2tldF9zZW5k LCBOVUxMLCBzKTsKIH0KIAotc3RhdGljIE5ldFNvY2tldFN0YXRlICpuZXRfc29ja2V0X2ZkX2lu aXRfc3RyZWFtKFZMQU5TdGF0ZSAqdmxhbiwgaW50IGZkLAorc3RhdGljIE5ldFNvY2tldFN0YXRl ICpuZXRfc29ja2V0X2ZkX2luaXRfc3RyZWFtKFZORVRTdGF0ZSAqdm5ldCwgaW50IGZkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlzX2Nvbm5lY3RlZCkK IHsKICAgICBOZXRTb2NrZXRTdGF0ZSAqczsKQEAgLTExODEsNyArMTE4MSw3IEBACiAgICAgaWYg KCFzKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBzLT5mZCA9IGZkOwotICAgIHMtPnZjID0g cWVtdV9uZXdfdmxhbl9jbGllbnQodmxhbiwKKyAgICBzLT52YyA9IHFlbXVfbmV3X3ZuZXRfY2xp ZW50KHZuZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRfc29ja2V0X3Jl Y2VpdmUsIE5VTEwsIHMpOwogICAgIHNucHJpbnRmKHMtPnZjLT5pbmZvX3N0ciwgc2l6ZW9mKHMt PnZjLT5pbmZvX3N0ciksCiAgICAgICAgICAgICAgInNvY2tldDogZmQ9JWQiLCBmZCk7CkBAIC0x MTkzLDcgKzExOTMsNyBAQAogICAgIHJldHVybiBzOwogfQogCi1zdGF0aWMgTmV0U29ja2V0U3Rh dGUgKm5ldF9zb2NrZXRfZmRfaW5pdChWTEFOU3RhdGUgKnZsYW4sIGludCBmZCwKK3N0YXRpYyBO ZXRTb2NrZXRTdGF0ZSAqbmV0X3NvY2tldF9mZF9pbml0KFZORVRTdGF0ZSAqdm5ldCwgaW50IGZk LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlzX2Nvbm5l Y3RlZCkKIHsKICAgICBpbnQgc29fdHlwZT0tMSwgb3B0bGVuPXNpemVvZihzb190eXBlKTsKQEAg LTEyMDUsMTMgKzEyMDUsMTMgQEAKICAgICB9CiAgICAgc3dpdGNoKHNvX3R5cGUpIHsKICAgICBj YXNlIFNPQ0tfREdSQU06Ci0gICAgICAgIHJldHVybiBuZXRfc29ja2V0X2ZkX2luaXRfZGdyYW0o dmxhbiwgZmQsIGlzX2Nvbm5lY3RlZCk7CisgICAgICAgIHJldHVybiBuZXRfc29ja2V0X2ZkX2lu aXRfZGdyYW0odm5ldCwgZmQsIGlzX2Nvbm5lY3RlZCk7CiAgICAgY2FzZSBTT0NLX1NUUkVBTToK LSAgICAgICAgcmV0dXJuIG5ldF9zb2NrZXRfZmRfaW5pdF9zdHJlYW0odmxhbiwgZmQsIGlzX2Nv bm5lY3RlZCk7CisgICAgICAgIHJldHVybiBuZXRfc29ja2V0X2ZkX2luaXRfc3RyZWFtKHZuZXQs IGZkLCBpc19jb25uZWN0ZWQpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8qIHdobyBrbm93cyAu Li4gdGhpcyBjb3VsZCBiZSBhIGVnLiBhIHB0eSwgZG8gd2FybiBhbmQgY29udGludWUgYXMgc3Ry ZWFtICovCiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAicWVtdTogd2FybmluZzogc29ja2V0IHR5 cGU9JWQgZm9yIGZkPSVkIGlzIG5vdCBTT0NLX0RHUkFNIG9yIFNPQ0tfU1RSRUFNXG4iLCBzb190 eXBlLCBmZCk7Ci0gICAgICAgIHJldHVybiBuZXRfc29ja2V0X2ZkX2luaXRfc3RyZWFtKHZsYW4s IGZkLCBpc19jb25uZWN0ZWQpOworICAgICAgICByZXR1cm4gbmV0X3NvY2tldF9mZF9pbml0X3N0 cmVhbSh2bmV0LCBmZCwgaXNfY29ubmVjdGVkKTsKICAgICB9CiAgICAgcmV0dXJuIE5VTEw7CiB9 CkBAIC0xMjMzLDcgKzEyMzMsNyBAQAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg ICB9Ci0gICAgczEgPSBuZXRfc29ja2V0X2ZkX2luaXQocy0+dmxhbiwgZmQsIDEpOworICAgIHMx ID0gbmV0X3NvY2tldF9mZF9pbml0KHMtPnZuZXQsIGZkLCAxKTsKICAgICBpZiAoIXMxKSB7CiAg ICAgICAgIGNsb3Nlc29ja2V0KGZkKTsKICAgICB9IGVsc2UgewpAQCAtMTI0Myw3ICsxMjQzLDcg QEAKICAgICB9CiB9CiAKLXN0YXRpYyBpbnQgbmV0X3NvY2tldF9saXN0ZW5faW5pdChWTEFOU3Rh dGUgKnZsYW4sIGNvbnN0IGNoYXIgKmhvc3Rfc3RyKQorc3RhdGljIGludCBuZXRfc29ja2V0X2xp c3Rlbl9pbml0KFZORVRTdGF0ZSAqdm5ldCwgY29uc3QgY2hhciAqaG9zdF9zdHIpCiB7CiAgICAg TmV0U29ja2V0TGlzdGVuU3RhdGUgKnM7CiAgICAgaW50IGZkLCB2YWwsIHJldDsKQEAgLTEyNzcs MTMgKzEyNzcsMTMgQEAKICAgICAgICAgcGVycm9yKCJsaXN0ZW4iKTsKICAgICAgICAgcmV0dXJu IC0xOwogICAgIH0KLSAgICBzLT52bGFuID0gdmxhbjsKKyAgICBzLT52bmV0ID0gdm5ldDsKICAg ICBzLT5mZCA9IGZkOwogICAgIHFlbXVfc2V0X2ZkX2hhbmRsZXIoZmQsIG5ldF9zb2NrZXRfYWNj ZXB0LCBOVUxMLCBzKTsKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBuZXRfc29ja2V0 X2Nvbm5lY3RfaW5pdChWTEFOU3RhdGUgKnZsYW4sIGNvbnN0IGNoYXIgKmhvc3Rfc3RyKQorc3Rh dGljIGludCBuZXRfc29ja2V0X2Nvbm5lY3RfaW5pdChWTkVUU3RhdGUgKnZuZXQsIGNvbnN0IGNo YXIgKmhvc3Rfc3RyKQogewogICAgIE5ldFNvY2tldFN0YXRlICpzOwogICAgIGludCBmZCwgY29u bmVjdGVkLCByZXQsIGVycjsKQEAgLTEzMjEsNyArMTMyMSw3IEBACiAgICAgICAgICAgICBicmVh azsKICAgICAgICAgfQogICAgIH0KLSAgICBzID0gbmV0X3NvY2tldF9mZF9pbml0KHZsYW4sIGZk LCBjb25uZWN0ZWQpOworICAgIHMgPSBuZXRfc29ja2V0X2ZkX2luaXQodm5ldCwgZmQsIGNvbm5l Y3RlZCk7CiAgICAgaWYgKCFzKQogICAgICAgICByZXR1cm4gLTE7CiAgICAgc25wcmludGYocy0+ dmMtPmluZm9fc3RyLCBzaXplb2Yocy0+dmMtPmluZm9fc3RyKSwKQEAgLTEzMzAsNyArMTMzMCw3 IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbmV0X3NvY2tldF9tY2FzdF9pbml0 KFZMQU5TdGF0ZSAqdmxhbiwgY29uc3QgY2hhciAqaG9zdF9zdHIpCitzdGF0aWMgaW50IG5ldF9z b2NrZXRfbWNhc3RfaW5pdChWTkVUU3RhdGUgKnZuZXQsIGNvbnN0IGNoYXIgKmhvc3Rfc3RyKQog ewogICAgIE5ldFNvY2tldFN0YXRlICpzOwogICAgIGludCBmZDsKQEAgLTEzNDQsNyArMTM0NCw3 IEBACiAgICAgaWYgKGZkIDwgMCkKIAlyZXR1cm4gLTE7CiAKLSAgICBzID0gbmV0X3NvY2tldF9m ZF9pbml0KHZsYW4sIGZkLCAwKTsKKyAgICBzID0gbmV0X3NvY2tldF9mZF9pbml0KHZuZXQsIGZk LCAwKTsKICAgICBpZiAoIXMpCiAgICAgICAgIHJldHVybiAtMTsKIApAQCAtMTM1NywzOSArMTM1 Nyw0OCBAQAogCiB9CiAKLS8qIGZpbmQgb3IgYWxsb2MgYSBuZXcgVkxBTiAqLwotVkxBTlN0YXRl ICpxZW11X2ZpbmRfdmxhbihpbnQgaWQpCisvKiBmaW5kIG9yIGFsbG9jIGEgbmV3IFZORVQgKi8K K1ZORVRTdGF0ZSAqcWVtdV9maW5kX3ZuZXQoaW50IGlkKQogewotICAgIFZMQU5TdGF0ZSAqKnB2 bGFuLCAqdmxhbjsKLSAgICBmb3IodmxhbiA9IGZpcnN0X3ZsYW47IHZsYW4gIT0gTlVMTDsgdmxh biA9IHZsYW4tPm5leHQpIHsKLSAgICAgICAgaWYgKHZsYW4tPmlkID09IGlkKQotICAgICAgICAg ICAgcmV0dXJuIHZsYW47CisgICAgVk5FVFN0YXRlICoqcHZuZXQsICp2bmV0OworICAgIGZvcih2 bmV0ID0gZmlyc3Rfdm5ldDsgdm5ldCAhPSBOVUxMOyB2bmV0ID0gdm5ldC0+bmV4dCkgeworICAg ICAgICBpZiAodm5ldC0+aWQgPT0gaWQpCisgICAgICAgICAgICByZXR1cm4gdm5ldDsKICAgICB9 Ci0gICAgdmxhbiA9IHFlbXVfbWFsbG9jeihzaXplb2YoVkxBTlN0YXRlKSk7Ci0gICAgaWYgKCF2 bGFuKQorICAgIHZuZXQgPSBxZW11X21hbGxvY3ooc2l6ZW9mKFZORVRTdGF0ZSkpOworICAgIGlm ICghdm5ldCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgdmxhbi0+aWQgPSBpZDsKLSAgICB2 bGFuLT5uZXh0ID0gTlVMTDsKLSAgICBwdmxhbiA9ICZmaXJzdF92bGFuOwotICAgIHdoaWxlICgq cHZsYW4gIT0gTlVMTCkKLSAgICAgICAgcHZsYW4gPSAmKCpwdmxhbiktPm5leHQ7Ci0gICAgKnB2 bGFuID0gdmxhbjsKLSAgICByZXR1cm4gdmxhbjsKKyAgICB2bmV0LT5pZCA9IGlkOworICAgIHZu ZXQtPm5leHQgPSBOVUxMOworICAgIHB2bmV0ID0gJmZpcnN0X3ZuZXQ7CisgICAgd2hpbGUgKCpw dm5ldCAhPSBOVUxMKQorICAgICAgICBwdm5ldCA9ICYoKnB2bmV0KS0+bmV4dDsKKyAgICAqcHZu ZXQgPSB2bmV0OworICAgIHJldHVybiB2bmV0OwogfQogCiBpbnQgbmV0X2NsaWVudF9pbml0KGNv bnN0IGNoYXIgKmRldmljZSwgY29uc3QgY2hhciAqcCkKIHsKICAgICBjaGFyIGJ1ZlsxMDI0XTsK LSAgICBpbnQgdmxhbl9pZCwgcmV0OwotICAgIFZMQU5TdGF0ZSAqdmxhbjsKKyAgICBpbnQgdm5l dF9pZCwgcmV0OworICAgIFZORVRTdGF0ZSAqdm5ldDsKIAotICAgIHZsYW5faWQgPSAwOwotICAg IGlmIChnZXRfcGFyYW1fdmFsdWUoYnVmLCBzaXplb2YoYnVmKSwgInZsYW4iLCBwKSkgewotICAg ICAgICB2bGFuX2lkID0gc3RydG9sKGJ1ZiwgTlVMTCwgMCk7CisgICAgdm5ldF9pZCA9IDA7Cisg ICAgaWYgKGdldF9wYXJhbV92YWx1ZShidWYsIHNpemVvZihidWYpLCAidm5ldCIsIHApKSB7Cisg ICAgICAgIHZuZXRfaWQgPSBzdHJ0b2woYnVmLCBOVUxMLCAwKTsKICAgICB9Ci0gICAgdmxhbiA9 IHFlbXVfZmluZF92bGFuKHZsYW5faWQpOwotICAgIGlmICghdmxhbikgewotICAgICAgICBmcHJp bnRmKHN0ZGVyciwgIkNvdWxkIG5vdCBjcmVhdGUgdmxhbiAlZFxuIiwgdmxhbl9pZCk7CisgICAg Lyogc3VwcG9ydCBmb3IgZGVwcmVjYXRlZCBrZXl3b3JkICJ2bGFuIiAqLworICAgIGlmIChnZXRf cGFyYW1fdmFsdWUoYnVmLCBzaXplb2YoYnVmKSwgInZsYW4iLCBwKSkgeworICAgICAgICBmcHJp bnRmKHN0ZGVyciwKKyAgICAgICAgICAgICJVc2Ugb2Yga2V5d29yZCAndmxhbicgaXMgZGVwcmVj YXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLiIpOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwKKyAg ICAgICAgICAgICIgVXNlIHRoZSBrZXl3b3JkICd2bmV0JyBpbnN0ZWFkXG4iKTsKKyAgICAgICAg dm5ldF9pZCA9IHN0cnRvbChidWYsIE5VTEwsIDApOworICAgIH0KKyAgICAvKiBlbmQgc3VwcG9y dCBzZWN0aW9uIGZvciBkZXByZWNhdGVkIGtleXdvcmQgInZsYW4iICovCisgICAgdm5ldCA9IHFl bXVfZmluZF92bmV0KHZuZXRfaWQpOworICAgIGlmICghdm5ldCkgeworICAgICAgICBmcHJpbnRm KHN0ZGVyciwgIkNvdWxkIG5vdCBjcmVhdGUgdm5ldCAlZFxuIiwgdm5ldF9pZCk7CiAgICAgICAg IHJldHVybiAtMTsKICAgICB9CiAgICAgaWYgKCFzdHJjbXAoZGV2aWNlLCAibmljIikpIHsKQEAg LTE0MTgsOSArMTQyNyw5IEBACiAgICAgICAgIGlmIChnZXRfcGFyYW1fdmFsdWUoYnVmLCBzaXpl b2YoYnVmKSwgIm1vZGVsIiwgcCkpIHsKICAgICAgICAgICAgIG5kLT5tb2RlbCA9IHN0cmR1cChi dWYpOwogICAgICAgICB9Ci0gICAgICAgIG5kLT52bGFuID0gdmxhbjsKKyAgICAgICAgbmQtPnZu ZXQgPSB2bmV0OwogICAgICAgICBuYl9uaWNzKys7Ci0gICAgICAgIHZsYW4tPm5iX2d1ZXN0X2Rl dnMrKzsKKyAgICAgICAgdm5ldC0+bmJfZ3Vlc3RfZGV2cysrOwogICAgICAgICByZXQgPSAwOwog ICAgIH0gZWxzZQogICAgIGlmICghc3RyY21wKGRldmljZSwgIm5vbmUiKSkgewpAQCAtMTQzMyw4 ICsxNDQyLDggQEAKICAgICAgICAgaWYgKGdldF9wYXJhbV92YWx1ZShidWYsIHNpemVvZihidWYp LCAiaG9zdG5hbWUiLCBwKSkgewogICAgICAgICAgICAgcHN0cmNweShzbGlycF9ob3N0bmFtZSwg c2l6ZW9mKHNsaXJwX2hvc3RuYW1lKSwgYnVmKTsKICAgICAgICAgfQotICAgICAgICB2bGFuLT5u Yl9ob3N0X2RldnMrKzsKLSAgICAgICAgcmV0ID0gbmV0X3NsaXJwX2luaXQodmxhbik7CisgICAg ICAgIHZuZXQtPm5iX2hvc3RfZGV2cysrOworICAgICAgICByZXQgPSBuZXRfc2xpcnBfaW5pdCh2 bmV0KTsKICAgICB9IGVsc2UKICNlbmRpZgogI2lmZGVmIF9XSU4zMgpAQCAtMTQ0NCw4ICsxNDUz LDggQEAKICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAidGFwOiBubyBpbnRlcmZhY2UgbmFt ZVxuIik7CiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgIH0KLSAgICAgICAgdmxhbi0+ bmJfaG9zdF9kZXZzKys7Ci0gICAgICAgIHJldCA9IHRhcF93aW4zMl9pbml0KHZsYW4sIGlmbmFt ZSk7CisgICAgICAgIHZuZXQtPm5iX2hvc3RfZGV2cysrOworICAgICAgICByZXQgPSB0YXBfd2lu MzJfaW5pdCh2bmV0LCBpZm5hbWUpOwogICAgIH0gZWxzZQogI2VsaWYgZGVmaW5lZCAoX0FJWCkK ICNlbHNlCkBAIC0xNDUzLDEyICsxNDYyLDEyIEBACiAgICAgICAgIGNoYXIgaWZuYW1lWzY0XTsK ICAgICAgICAgY2hhciBzZXR1cF9zY3JpcHRbMTAyNF0sIGRvd25fc2NyaXB0WzEwMjRdOwogICAg ICAgICBpbnQgZmQ7Ci0gICAgICAgIHZsYW4tPm5iX2hvc3RfZGV2cysrOworICAgICAgICB2bmV0 LT5uYl9ob3N0X2RldnMrKzsKICAgICAgICAgaWYgKGdldF9wYXJhbV92YWx1ZShidWYsIHNpemVv ZihidWYpLCAiZmQiLCBwKSA+IDApIHsKICAgICAgICAgICAgIGZkID0gc3RydG9sKGJ1ZiwgTlVM TCwgMCk7CiAgICAgICAgICAgICBmY250bChmZCwgRl9TRVRGTCwgT19OT05CTE9DSyk7CiAgICAg ICAgICAgICByZXQgPSAtMTsKLSAgICAgICAgICAgIGlmIChuZXRfdGFwX2ZkX2luaXQodmxhbiwg ZmQpKQorICAgICAgICAgICAgaWYgKG5ldF90YXBfZmRfaW5pdCh2bmV0LCBmZCkpCiAgICAgICAg ICAgICAgICAgcmV0ID0gMDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChnZXRf cGFyYW1fdmFsdWUoaWZuYW1lLCBzaXplb2YoaWZuYW1lKSwgImlmbmFtZSIsIHApIDw9IDApIHsK QEAgLTE0NzAsNyArMTQ3OSw3IEBACiAgICAgICAgICAgICBpZiAoZ2V0X3BhcmFtX3ZhbHVlKGRv d25fc2NyaXB0LCBzaXplb2YoZG93bl9zY3JpcHQpLCAiZG93bnNjcmlwdCIsIHApID09IDApIHsK ICAgICAgICAgICAgICAgICBwc3RyY3B5KGRvd25fc2NyaXB0LCBzaXplb2YoZG93bl9zY3JpcHQp LCBERUZBVUxUX05FVFdPUktfRE9XTl9TQ1JJUFQpOwogICAgICAgICAgICAgfQotICAgICAgICAg ICAgcmV0ID0gbmV0X3RhcF9pbml0KHZsYW4sIGlmbmFtZSwgc2V0dXBfc2NyaXB0LCBkb3duX3Nj cmlwdCk7CisgICAgICAgICAgICByZXQgPSBuZXRfdGFwX2luaXQodm5ldCwgaWZuYW1lLCBzZXR1 cF9zY3JpcHQsIGRvd25fc2NyaXB0KTsKICAgICAgICAgfQogICAgIH0gZWxzZQogI2VuZGlmCkBA IC0xNDc5LDI1ICsxNDg4LDI1IEBACiAgICAgICAgICAgICBpbnQgZmQ7CiAgICAgICAgICAgICBm ZCA9IHN0cnRvbChidWYsIE5VTEwsIDApOwogICAgICAgICAgICAgcmV0ID0gLTE7Ci0gICAgICAg ICAgICBpZiAobmV0X3NvY2tldF9mZF9pbml0KHZsYW4sIGZkLCAxKSkKKyAgICAgICAgICAgIGlm IChuZXRfc29ja2V0X2ZkX2luaXQodm5ldCwgZmQsIDEpKQogICAgICAgICAgICAgICAgIHJldCA9 IDA7CiAgICAgICAgIH0gZWxzZSBpZiAoZ2V0X3BhcmFtX3ZhbHVlKGJ1Ziwgc2l6ZW9mKGJ1Ziks ICJsaXN0ZW4iLCBwKSA+IDApIHsKLSAgICAgICAgICAgIHJldCA9IG5ldF9zb2NrZXRfbGlzdGVu X2luaXQodmxhbiwgYnVmKTsKKyAgICAgICAgICAgIHJldCA9IG5ldF9zb2NrZXRfbGlzdGVuX2lu aXQodm5ldCwgYnVmKTsKICAgICAgICAgfSBlbHNlIGlmIChnZXRfcGFyYW1fdmFsdWUoYnVmLCBz aXplb2YoYnVmKSwgImNvbm5lY3QiLCBwKSA+IDApIHsKLSAgICAgICAgICAgIHJldCA9IG5ldF9z b2NrZXRfY29ubmVjdF9pbml0KHZsYW4sIGJ1Zik7CisgICAgICAgICAgICByZXQgPSBuZXRfc29j a2V0X2Nvbm5lY3RfaW5pdCh2bmV0LCBidWYpOwogICAgICAgICB9IGVsc2UgaWYgKGdldF9wYXJh bV92YWx1ZShidWYsIHNpemVvZihidWYpLCAibWNhc3QiLCBwKSA+IDApIHsKLSAgICAgICAgICAg IHJldCA9IG5ldF9zb2NrZXRfbWNhc3RfaW5pdCh2bGFuLCBidWYpOworICAgICAgICAgICAgcmV0 ID0gbmV0X3NvY2tldF9tY2FzdF9pbml0KHZuZXQsIGJ1Zik7CiAgICAgICAgIH0gZWxzZSB7CiAg ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVua25vd24gc29ja2V0IG9wdGlvbnM6ICVzXG4i LCBwKTsKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgfQotICAgICAgICB2bGFuLT5u Yl9ob3N0X2RldnMrKzsKKyAgICAgICAgdm5ldC0+bmJfaG9zdF9kZXZzKys7CiAgICAgfSBlbHNl CiAjaWZkZWYgQ09ORklHX1ZERQogICAgIGlmICghc3RyY21wKGRldmljZSwgInZkZSIpKSB7CiAg ICAgICAgIGNoYXIgdmRlX3NvY2tbMTAyNF0sIHZkZV9ncm91cFs1MTJdOwogCWludCB2ZGVfcG9y dCwgdmRlX21vZGU7Ci0gICAgICAgIHZsYW4tPm5iX2hvc3RfZGV2cysrOworICAgICAgICB2bmV0 LT5uYl9ob3N0X2RldnMrKzsKICAgICAgICAgaWYgKGdldF9wYXJhbV92YWx1ZSh2ZGVfc29jaywg c2l6ZW9mKHZkZV9zb2NrKSwgInNvY2siLCBwKSA8PSAwKSB7CiAJICAgIHZkZV9zb2NrWzBdID0g J1wwJzsKIAl9CkBAIC0xNTE0LDcgKzE1MjMsNyBAQAogCX0gZWxzZSB7CiAJICAgIHZkZV9tb2Rl ID0gMDcwMDsKIAl9Ci0JcmV0ID0gbmV0X3ZkZV9pbml0KHZsYW4sIHZkZV9zb2NrLCB2ZGVfcG9y dCwgdmRlX2dyb3VwLCB2ZGVfbW9kZSk7CisJcmV0ID0gbmV0X3ZkZV9pbml0KHZuZXQsIHZkZV9z b2NrLCB2ZGVfcG9ydCwgdmRlX2dyb3VwLCB2ZGVfbW9kZSk7CiAgICAgfSBlbHNlCiAjZW5kaWYK ICAgICB7CkBAIC0xNTUwLDI2ICsxNTU5LDI2IEBACiAKIHZvaWQgZG9faW5mb19uZXR3b3JrKHZv aWQpCiB7Ci0gICAgVkxBTlN0YXRlICp2bGFuOwotICAgIFZMQU5DbGllbnRTdGF0ZSAqdmM7Cisg ICAgVk5FVFN0YXRlICp2bmV0OworICAgIFZORVRDbGllbnRTdGF0ZSAqdmM7CiAKLSAgICBmb3Io dmxhbiA9IGZpcnN0X3ZsYW47IHZsYW4gIT0gTlVMTDsgdmxhbiA9IHZsYW4tPm5leHQpIHsKLSAg ICAgICAgdGVybV9wcmludGYoIlZMQU4gJWQgZGV2aWNlczpcbiIsIHZsYW4tPmlkKTsKLSAgICAg ICAgZm9yKHZjID0gdmxhbi0+Zmlyc3RfY2xpZW50OyB2YyAhPSBOVUxMOyB2YyA9IHZjLT5uZXh0 KQorICAgIGZvcih2bmV0ID0gZmlyc3Rfdm5ldDsgdm5ldCAhPSBOVUxMOyB2bmV0ID0gdm5ldC0+ bmV4dCkgeworICAgICAgICB0ZXJtX3ByaW50ZigiVk5FVCAlZCBkZXZpY2VzOlxuIiwgdm5ldC0+ aWQpOworICAgICAgICBmb3IodmMgPSB2bmV0LT5maXJzdF9jbGllbnQ7IHZjICE9IE5VTEw7IHZj ID0gdmMtPm5leHQpCiAgICAgICAgICAgICB0ZXJtX3ByaW50ZigiICAlc1xuIiwgdmMtPmluZm9f c3RyKTsKICAgICB9CiB9CiAKIHZvaWQgbmV0X2NsZWFudXAodm9pZCkKIHsKLSAgICBWTEFOU3Rh dGUgKnZsYW47CisgICAgVk5FVFN0YXRlICp2bmV0OwogCiAjaWYgIWRlZmluZWQoX1dJTjMyKQog ICAgIC8qIGNsb3NlIG5ldHdvcmsgY2xpZW50cyAqLwotICAgIGZvcih2bGFuID0gZmlyc3Rfdmxh bjsgdmxhbiAhPSBOVUxMOyB2bGFuID0gdmxhbi0+bmV4dCkgewotICAgICAgICBWTEFOQ2xpZW50 U3RhdGUgKnZjOworICAgIGZvcih2bmV0ID0gZmlyc3Rfdm5ldDsgdm5ldCAhPSBOVUxMOyB2bmV0 ID0gdm5ldC0+bmV4dCkgeworICAgICAgICBWTkVUQ2xpZW50U3RhdGUgKnZjOwogCi0gICAgICAg IGZvcih2YyA9IHZsYW4tPmZpcnN0X2NsaWVudDsgdmMgIT0gTlVMTDsgdmMgPSB2Yy0+bmV4dCkg eworICAgICAgICBmb3IodmMgPSB2bmV0LT5maXJzdF9jbGllbnQ7IHZjICE9IE5VTEw7IHZjID0g dmMtPm5leHQpIHsKICAgICAgICAgICAgIGlmICh2Yy0+ZmRfcmVhZCA9PSB0YXBfcmVjZWl2ZSkg ewogICAgICAgICAgICAgICAgIGNoYXIgaWZuYW1lWzY0XTsKICAgICAgICAgICAgICAgICBUQVBT dGF0ZSAqcyA9IHZjLT5vcGFxdWU7CkBAIC0xNTkxLDE2ICsxNjAwLDE2IEBACiAKIHZvaWQgbmV0 X2NsaWVudF9jaGVjayh2b2lkKQogewotICAgIFZMQU5TdGF0ZSAqdmxhbjsKKyAgICBWTkVUU3Rh dGUgKnZuZXQ7CiAKLSAgICBmb3IodmxhbiA9IGZpcnN0X3ZsYW47IHZsYW4gIT0gTlVMTDsgdmxh biA9IHZsYW4tPm5leHQpIHsKLSAgICAgICAgaWYgKHZsYW4tPm5iX2d1ZXN0X2RldnMgPT0gMCAm JiB2bGFuLT5uYl9ob3N0X2RldnMgPT0gMCkKKyAgICBmb3Iodm5ldCA9IGZpcnN0X3ZuZXQ7IHZu ZXQgIT0gTlVMTDsgdm5ldCA9IHZuZXQtPm5leHQpIHsKKyAgICAgICAgaWYgKHZuZXQtPm5iX2d1 ZXN0X2RldnMgPT0gMCAmJiB2bmV0LT5uYl9ob3N0X2RldnMgPT0gMCkKICAgICAgICAgICAgIGNv bnRpbnVlOwotICAgICAgICBpZiAodmxhbi0+bmJfZ3Vlc3RfZGV2cyA9PSAwKQotICAgICAgICAg ICAgZnByaW50ZihzdGRlcnIsICJXYXJuaW5nOiB2bGFuICVkIHdpdGggbm8gbmljc1xuIiwgdmxh bi0+aWQpOwotICAgICAgICBpZiAodmxhbi0+bmJfaG9zdF9kZXZzID09IDApCisgICAgICAgIGlm ICh2bmV0LT5uYl9ndWVzdF9kZXZzID09IDApCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwg Ildhcm5pbmc6IHZuZXQgJWQgd2l0aCBubyBuaWNzXG4iLCB2bmV0LT5pZCk7CisgICAgICAgIGlm ICh2bmV0LT5uYl9ob3N0X2RldnMgPT0gMCkKICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAot ICAgICAgICAgICAgICAgICAgICAiV2FybmluZzogdmxhbiAlZCBpcyBub3QgY29ubmVjdGVkIHRv IGhvc3QgbmV0d29ya1xuIiwKLSAgICAgICAgICAgICAgICAgICAgdmxhbi0+aWQpOworICAgICAg ICAgICAgICAgICAgICAiV2FybmluZzogdm5ldCAlZCBpcyBub3QgY29ubmVjdGVkIHRvIGhvc3Qg bmV0d29ya1xuIiwKKyAgICAgICAgICAgICAgICAgICAgdm5ldC0+aWQpOwogICAgIH0KIH0KZGlm ZiAtTmF1ciB0cnVuay9uZXQuaCBsb2NhbC9uZXQuaAotLS0gdHJ1bmsvbmV0LmgJMjAwOC0xMi0w OSAxMzoyMzoxNS4wMDAwMDAwMDAgKzAxMDAKKysrIGxvY2FsL25ldC5oCTIwMDgtMTItMDkgMTM6 MzQ6MDYuMDAwMDAwMDAwICswMTAwCkBAIC0xLDM2ICsxLDM2IEBACiAjaWZuZGVmIFFFTVVfTkVU X0gKICNkZWZpbmUgUUVNVV9ORVRfSAogCi0vKiBWTEFOcyBzdXBwb3J0ICovCisvKiBWTkVUcyBz dXBwb3J0ICovCiAKLXR5cGVkZWYgc3RydWN0IFZMQU5DbGllbnRTdGF0ZSBWTEFOQ2xpZW50U3Rh dGU7Cit0eXBlZGVmIHN0cnVjdCBWTkVUQ2xpZW50U3RhdGUgVk5FVENsaWVudFN0YXRlOwogCi1z dHJ1Y3QgVkxBTkNsaWVudFN0YXRlIHsKK3N0cnVjdCBWTkVUQ2xpZW50U3RhdGUgewogICAgIElP UmVhZEhhbmRsZXIgKmZkX3JlYWQ7CiAgICAgLyogUGFja2V0cyBtYXkgc3RpbGwgYmUgc2VudCBp ZiB0aGlzIHJldHVybnMgemVyby4gIEl0J3MgdXNlZCB0bwogICAgICAgIHJhdGUtbGltaXQgdGhl IHNsaXJwIGNvZGUuICAqLwogICAgIElPQ2FuUldIYW5kbGVyICpmZF9jYW5fcmVhZDsKICAgICB2 b2lkICpvcGFxdWU7Ci0gICAgc3RydWN0IFZMQU5DbGllbnRTdGF0ZSAqbmV4dDsKLSAgICBzdHJ1 Y3QgVkxBTlN0YXRlICp2bGFuOworICAgIHN0cnVjdCBWTkVUQ2xpZW50U3RhdGUgKm5leHQ7Cisg ICAgc3RydWN0IFZORVRTdGF0ZSAqdm5ldDsKICAgICBjaGFyIGluZm9fc3RyWzI1Nl07CiB9Owog Ci1zdHJ1Y3QgVkxBTlN0YXRlIHsKK3N0cnVjdCBWTkVUU3RhdGUgewogICAgIGludCBpZDsKLSAg ICBWTEFOQ2xpZW50U3RhdGUgKmZpcnN0X2NsaWVudDsKLSAgICBzdHJ1Y3QgVkxBTlN0YXRlICpu ZXh0OworICAgIFZORVRDbGllbnRTdGF0ZSAqZmlyc3RfY2xpZW50OworICAgIHN0cnVjdCBWTkVU U3RhdGUgKm5leHQ7CiAgICAgdW5zaWduZWQgaW50IG5iX2d1ZXN0X2RldnMsIG5iX2hvc3RfZGV2 czsKIH07CiAKLVZMQU5TdGF0ZSAqcWVtdV9maW5kX3ZsYW4oaW50IGlkKTsKLVZMQU5DbGllbnRT dGF0ZSAqcWVtdV9uZXdfdmxhbl9jbGllbnQoVkxBTlN0YXRlICp2bGFuLAorVk5FVFN0YXRlICpx ZW11X2ZpbmRfdm5ldChpbnQgaWQpOworVk5FVENsaWVudFN0YXRlICpxZW11X25ld192bmV0X2Ns aWVudChWTkVUU3RhdGUgKnZuZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElPUmVhZEhhbmRsZXIgKmZkX3JlYWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElPQ2FuUldIYW5kbGVyICpmZF9jYW5fcmVhZCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdm9pZCAqb3BhcXVlKTsKLXZvaWQgcWVtdV9kZWxfdmxhbl9j bGllbnQoVkxBTkNsaWVudFN0YXRlICp2Yyk7Ci1pbnQgcWVtdV9jYW5fc2VuZF9wYWNrZXQoVkxB TkNsaWVudFN0YXRlICp2Yyk7Ci12b2lkIHFlbXVfc2VuZF9wYWNrZXQoVkxBTkNsaWVudFN0YXRl ICp2YywgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSk7Cit2b2lkIHFlbXVfZGVsX3ZuZXRf Y2xpZW50KFZORVRDbGllbnRTdGF0ZSAqdmMpOworaW50IHFlbXVfY2FuX3NlbmRfcGFja2V0KFZO RVRDbGllbnRTdGF0ZSAqdmMpOwordm9pZCBxZW11X3NlbmRfcGFja2V0KFZORVRDbGllbnRTdGF0 ZSAqdmMsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IHNpemUpOwogdm9pZCBxZW11X2hhbmRsZXJf dHJ1ZSh2b2lkICpvcGFxdWUpOwogCiB2b2lkIGRvX2luZm9fbmV0d29yayh2b2lkKTsKQEAgLTQy LDcgKzQyLDcgQEAKIHN0cnVjdCBOSUNJbmZvIHsKICAgICB1aW50OF90IG1hY2FkZHJbNl07CiAg ICAgY29uc3QgY2hhciAqbW9kZWw7Ci0gICAgVkxBTlN0YXRlICp2bGFuOworICAgIFZORVRTdGF0 ZSAqdm5ldDsKIH07CiAKIGV4dGVybiBpbnQgbmJfbmljczsKZGlmZiAtTmF1ciB0cnVuay9xZW11 LWNvbW1vbi5oIGxvY2FsL3FlbXUtY29tbW9uLmgKLS0tIHRydW5rL3FlbXUtY29tbW9uLmgJMjAw OC0xMi0wOSAxMzoyMzoxNS4wMDAwMDAwMDAgKzAxMDAKKysrIGxvY2FsL3FlbXUtY29tbW9uLmgJ MjAwOC0xMi0wOSAxMzozNDowNi4wMDAwMDAwMDAgKzAxMDAKQEAgLTE2MCw3ICsxNjAsNyBAQAog dHlwZWRlZiBzdHJ1Y3QgVGV4dENvbnNvbGUgVGV4dENvbnNvbGU7CiB0eXBlZGVmIFRleHRDb25z b2xlIFFFTVVDb25zb2xlOwogdHlwZWRlZiBzdHJ1Y3QgQ2hhckRyaXZlclN0YXRlIENoYXJEcml2 ZXJTdGF0ZTsKLXR5cGVkZWYgc3RydWN0IFZMQU5TdGF0ZSBWTEFOU3RhdGU7Cit0eXBlZGVmIHN0 cnVjdCBWTkVUU3RhdGUgVk5FVFN0YXRlOwogdHlwZWRlZiBzdHJ1Y3QgUUVNVUZpbGUgUUVNVUZp bGU7CiB0eXBlZGVmIHN0cnVjdCBpMmNfYnVzIGkyY19idXM7CiB0eXBlZGVmIHN0cnVjdCBpMmNf c2xhdmUgaTJjX3NsYXZlOwpkaWZmIC1OYXVyIHRydW5rL3FlbXUtZG9jLnRleGkgbG9jYWwvcWVt dS1kb2MudGV4aQotLS0gdHJ1bmsvcWVtdS1kb2MudGV4aQkyMDA4LTEyLTA5IDEzOjIzOjE1LjAw MDAwMDAwMCArMDEwMAorKysgbG9jYWwvcWVtdS1kb2MudGV4aQkyMDA4LTEyLTA5IDEzOjM4OjAw LjAwMDAwMDAwMCArMDEwMApAQCAtNjA0LDggKzYwNCw4IEBACiAKIEB0YWJsZSBAb3B0aW9uCiAK LUBpdGVtIC1uZXQgbmljWyx2bGFuPUB2YXJ7bn1dWyxtYWNhZGRyPUB2YXJ7YWRkcn1dWyxtb2Rl bD1AdmFye3R5cGV9XQotQ3JlYXRlIGEgbmV3IE5ldHdvcmsgSW50ZXJmYWNlIENhcmQgYW5kIGNv bm5lY3QgaXQgdG8gVkxBTiBAdmFye259IChAdmFye259CitAaXRlbSAtbmV0IG5pY1ssdm5ldD1A dmFye259XVssbWFjYWRkcj1AdmFye2FkZHJ9XVssbW9kZWw9QHZhcnt0eXBlfV0KK0NyZWF0ZSBh IG5ldyBOZXR3b3JrIEludGVyZmFjZSBDYXJkIGFuZCBjb25uZWN0IGl0IHRvIFZORVQgQHZhcntu fSAoQHZhcntufQogPSAwIGlzIHRoZSBkZWZhdWx0KS4gVGhlIE5JQyBpcyBhbiBuZTJrX3BjaSBi eSBkZWZhdWx0IG9uIHRoZSBQQwogdGFyZ2V0LiBPcHRpb25hbGx5LCB0aGUgTUFDIGFkZHJlc3Mg Y2FuIGJlIGNoYW5nZWQuIElmIG5vCiBAb3B0aW9uey1uZXR9IG9wdGlvbiBpcyBzcGVjaWZpZWQs IGEgc2luZ2xlIE5JQyBpcyBjcmVhdGVkLgpAQCAtNjE3LDEzICs2MTcsMTMgQEAKIE5vdCBhbGwg ZGV2aWNlcyBhcmUgc3VwcG9ydGVkIG9uIGFsbCB0YXJnZXRzLiAgVXNlIC1uZXQgbmljLG1vZGVs PT8KIGZvciBhIGxpc3Qgb2YgYXZhaWxhYmxlIGRldmljZXMgZm9yIHlvdXIgdGFyZ2V0LgogCi1A aXRlbSAtbmV0IHVzZXJbLHZsYW49QHZhcntufV1bLGhvc3RuYW1lPUB2YXJ7bmFtZX1dCitAaXRl bSAtbmV0IHVzZXJbLHZuZXQ9QHZhcntufV1bLGhvc3RuYW1lPUB2YXJ7bmFtZX1dCiBVc2UgdGhl IHVzZXIgbW9kZSBuZXR3b3JrIHN0YWNrIHdoaWNoIHJlcXVpcmVzIG5vIGFkbWluaXN0cmF0b3IK IHByaXZpbGVnZSB0byBydW4uICBAb3B0aW9ue2hvc3RuYW1lPW5hbWV9IGNhbiBiZSB1c2VkIHRv IHNwZWNpZnkgdGhlIGNsaWVudAogaG9zdG5hbWUgcmVwb3J0ZWQgYnkgdGhlIGJ1aWx0aW4gREhD UCBzZXJ2ZXIuCiAKLUBpdGVtIC1uZXQgdGFwWyx2bGFuPUB2YXJ7bn1dWyxmZD1AdmFye2h9XVss aWZuYW1lPUB2YXJ7bmFtZX1dWyxzY3JpcHQ9QHZhcntmaWxlfV1bLGRvd25zY3JpcHQ9QHZhcntk ZmlsZX1dCi1Db25uZWN0IHRoZSBob3N0IFRBUCBuZXR3b3JrIGludGVyZmFjZSBAdmFye25hbWV9 IHRvIFZMQU4gQHZhcntufSwgdXNlCitAaXRlbSAtbmV0IHRhcFssdm5ldD1AdmFye259XVssZmQ9 QHZhcntofV1bLGlmbmFtZT1AdmFye25hbWV9XVssc2NyaXB0PUB2YXJ7ZmlsZX1dWyxkb3duc2Ny aXB0PUB2YXJ7ZGZpbGV9XQorQ29ubmVjdCB0aGUgaG9zdCBUQVAgbmV0d29yayBpbnRlcmZhY2Ug QHZhcntuYW1lfSB0byBWTkVUIEB2YXJ7bn0sIHVzZQogdGhlIG5ldHdvcmsgc2NyaXB0IEB2YXJ7 ZmlsZX0gdG8gY29uZmlndXJlIGl0IGFuZCB0aGUgbmV0d29yayBzY3JpcHQgCiBAdmFye2RmaWxl fSB0byBkZWNvbmZpZ3VyZSBpdC4gSWYgQHZhcntuYW1lfSBpcyBub3QgcHJvdmlkZWQsIHRoZSBP UyAKIGF1dG9tYXRpY2FsbHkgcHJvdmlkZXMgb25lLiBAb3B0aW9ue2ZkfT1AdmFye2h9IGNhbiBi ZSB1c2VkIHRvIHNwZWNpZnkKQEAgLTYzOCwxNCArNjM4LDE0IEBACiAKIE1vcmUgY29tcGxpY2F0 ZWQgZXhhbXBsZSAodHdvIE5JQ3MsIGVhY2ggb25lIGNvbm5lY3RlZCB0byBhIFRBUCBkZXZpY2Up CiBAZXhhbXBsZQotcWVtdSBsaW51eC5pbWcgLW5ldCBuaWMsdmxhbj0wIC1uZXQgdGFwLHZsYW49 MCxpZm5hbWU9dGFwMCBcCi0gICAgICAgICAgICAgICAtbmV0IG5pYyx2bGFuPTEgLW5ldCB0YXAs dmxhbj0xLGlmbmFtZT10YXAxCitxZW11IGxpbnV4LmltZyAtbmV0IG5pYyx2bmV0PTAgLW5ldCB0 YXAsdm5ldD0wLGlmbmFtZT10YXAwIFwKKyAgICAgICAgICAgICAgIC1uZXQgbmljLHZuZXQ9MSAt bmV0IHRhcCx2bmV0PTEsaWZuYW1lPXRhcDEKIEBlbmQgZXhhbXBsZQogCiAKLUBpdGVtIC1uZXQg c29ja2V0Wyx2bGFuPUB2YXJ7bn1dWyxmZD1AdmFye2h9XVssbGlzdGVuPVtAdmFye2hvc3R9XTpA dmFye3BvcnR9XVssY29ubmVjdD1AdmFye2hvc3R9OkB2YXJ7cG9ydH1dCitAaXRlbSAtbmV0IHNv Y2tldFssdm5ldD1AdmFye259XVssZmQ9QHZhcntofV1bLGxpc3Rlbj1bQHZhcntob3N0fV06QHZh cntwb3J0fV1bLGNvbm5lY3Q9QHZhcntob3N0fTpAdmFye3BvcnR9XQogCi1Db25uZWN0IHRoZSBW TEFOIEB2YXJ7bn0gdG8gYSByZW1vdGUgVkxBTiBpbiBhbm90aGVyIFFFTVUgdmlydHVhbAorQ29u bmVjdCB0aGUgVk5FVCBAdmFye259IHRvIGEgcmVtb3RlIFZORVQgaW4gYW5vdGhlciBRRU1VIHZp cnR1YWwKIG1hY2hpbmUgdXNpbmcgYSBUQ1Agc29ja2V0IGNvbm5lY3Rpb24uIElmIEBvcHRpb257 bGlzdGVufSBpcwogc3BlY2lmaWVkLCBRRU1VIHdhaXRzIGZvciBpbmNvbWluZyBjb25uZWN0aW9u cyBvbiBAdmFye3BvcnR9CiAoQHZhcntob3N0fSBpcyBvcHRpb25hbCkuIEBvcHRpb257Y29ubmVj dH0gaXMgdXNlZCB0byBjb25uZWN0IHRvCkBAIC02NTcsMTUgKzY1NywxNSBAQAogIyBsYXVuY2gg YSBmaXJzdCBRRU1VIGluc3RhbmNlCiBxZW11IGxpbnV4LmltZyAtbmV0IG5pYyxtYWNhZGRyPTUy OjU0OjAwOjEyOjM0OjU2IFwKICAgICAgICAgICAgICAgIC1uZXQgc29ja2V0LGxpc3Rlbj06MTIz NAotIyBjb25uZWN0IHRoZSBWTEFOIDAgb2YgdGhpcyBpbnN0YW5jZSB0byB0aGUgVkxBTiAwCisj IGNvbm5lY3QgdGhlIFZORVQgMCBvZiB0aGlzIGluc3RhbmNlIHRvIHRoZSBWTkVUIDAKICMgb2Yg dGhlIGZpcnN0IGluc3RhbmNlCiBxZW11IGxpbnV4LmltZyAtbmV0IG5pYyxtYWNhZGRyPTUyOjU0 OjAwOjEyOjM0OjU3IFwKICAgICAgICAgICAgICAgIC1uZXQgc29ja2V0LGNvbm5lY3Q9MTI3LjAu MC4xOjEyMzQKIEBlbmQgZXhhbXBsZQogCi1AaXRlbSAtbmV0IHNvY2tldFssdmxhbj1AdmFye259 XVssZmQ9QHZhcntofV1bLG1jYXN0PUB2YXJ7bWFkZHJ9OkB2YXJ7cG9ydH1dCitAaXRlbSAtbmV0 IHNvY2tldFssdm5ldD1AdmFye259XVssZmQ9QHZhcntofV1bLG1jYXN0PUB2YXJ7bWFkZHJ9OkB2 YXJ7cG9ydH1dCiAKLUNyZWF0ZSBhIFZMQU4gQHZhcntufSBzaGFyZWQgd2l0aCBhbm90aGVyIFFF TVUgdmlydHVhbAorQ3JlYXRlIGEgVk5FVCBAdmFye259IHNoYXJlZCB3aXRoIGFub3RoZXIgUUVN VSB2aXJ0dWFsCiBtYWNoaW5lcyB1c2luZyBhIFVEUCBtdWx0aWNhc3Qgc29ja2V0LCBlZmZlY3Rp dmVseSBtYWtpbmcgYSBidXMgZm9yCiBldmVyeSBRRU1VIHdpdGggc2FtZSBtdWx0aWNhc3QgYWRk cmVzcyBAdmFye21hZGRyfSBhbmQgQHZhcntwb3J0fS4KIE5PVEVTOgpAQCAtNzAzLDggKzcwMyw4 IEBACiAvcGF0aC90by9saW51eCB1YmQwPS9wYXRoL3RvL3Jvb3RfZnMgZXRoMD1tY2FzdAogQGVu ZCBleGFtcGxlCiAKLUBpdGVtIC1uZXQgdmRlWyx2bGFuPUB2YXJ7bn1dWyxzb2NrPUB2YXJ7c29j a2V0cGF0aH1dWyxwb3J0PUB2YXJ7bn1dWyxncm91cD1AdmFye2dyb3VwbmFtZX1dWyxtb2RlPUB2 YXJ7b2N0YWxtb2RlfV0KLUNvbm5lY3QgVkxBTiBAdmFye259IHRvIFBPUlQgQHZhcntufSBvZiBh IHZkZSBzd2l0Y2ggcnVubmluZyBvbiBob3N0IGFuZAorQGl0ZW0gLW5ldCB2ZGVbLHZuZXQ9QHZh cntufV1bLHNvY2s9QHZhcntzb2NrZXRwYXRofV1bLHBvcnQ9QHZhcntufV1bLGdyb3VwPUB2YXJ7 Z3JvdXBuYW1lfV1bLG1vZGU9QHZhcntvY3RhbG1vZGV9XQorQ29ubmVjdCBWTkVUIEB2YXJ7bn0g dG8gUE9SVCBAdmFye259IG9mIGEgdmRlIHN3aXRjaCBydW5uaW5nIG9uIGhvc3QgYW5kCiBsaXN0 ZW5pbmcgZm9yIGluY29taW5nIGNvbm5lY3Rpb25zIG9uIEB2YXJ7c29ja2V0cGF0aH0uIFVzZSBH Uk9VUCBAdmFye2dyb3VwbmFtZX0KIGFuZCBNT0RFIEB2YXJ7b2N0YWxtb2RlfSB0byBjaGFuZ2Ug ZGVmYXVsdCBvd25lcnNoaXAgYW5kIHBlcm1pc3Npb25zIGZvcgogY29tbXVuaWNhdGlvbiBwb3J0 LiBUaGlzIG9wdGlvbiBpcyBhdmFpbGFibGUgb25seSBpZiBRRU1VIGhhcyBiZWVuIGNvbXBpbGVk CkBAIC04MTYsMTQgKzgxNiwxNCBAQAogQGNvZGV7aGNpMH0pIG9uIHRoZSBjb21wdXRlciBydW5u aW5nIFFFTVUuICBPbmx5IGF2YWlsYWJsZSBvbiBAY29kZXtibHVlen0KIGNhcGFibGUgc3lzdGVt cyBsaWtlIExpbnV4LgogCi1AaXRlbSAtYnQgaGNpWyx2bGFuPUB2YXJ7bn1dCitAaXRlbSAtYnQg aGNpWyx2bmV0PUB2YXJ7bn1dCiBBZGQgYSB2aXJ0dWFsLCBzdGFuZGFyZCBIQ0kgdGhhdCB3aWxs IHBhcnRpY2lwYXRlIGluIHRoZSBCbHVldG9vdGgKIHNjYXR0ZXJuZXQgQHZhcntufSAoZGVmYXVs dCBAY29kZXswfSkuICBTaW1pbGFybHkgdG8gQG9wdGlvbnstbmV0fQotVkxBTnMsIGRldmljZXMg aW5zaWRlIGEgYmx1ZXRvb3RoIG5ldHdvcmsgQHZhcntufSBjYW4gb25seSBjb21tdW5pY2F0ZQor Vk5FVHMsIGRldmljZXMgaW5zaWRlIGEgYmx1ZXRvb3RoIG5ldHdvcmsgQHZhcntufSBjYW4gb25s eSBjb21tdW5pY2F0ZQogd2l0aCBvdGhlciBkZXZpY2VzIGluIHRoZSBzYW1lIG5ldHdvcmsgKHNj YXR0ZXJuZXQpLgogQGVuZCB0YWJsZQogCi1AaXRlbSAtYnQgdmhjaVssdmxhbj1AdmFye259XQor QGl0ZW0gLWJ0IHZoY2lbLHZuZXQ9QHZhcntufV0KIChMaW51eC1ob3N0IG9ubHkpIENyZWF0ZSBh IEhDSSBpbiBzY2F0dGVybmV0IEB2YXJ7bn0gKGRlZmF1bHQgMCkgYXR0YWNoZWQKIHRvIHRoZSBo b3N0IGJsdWV0b290aCBzdGFjayBpbnN0ZWFkIG9mIHRvIHRoZSBlbXVsYXRlZCB0YXJnZXQuICBU aGlzCiBhbGxvd3MgdGhlIGhvc3QgYW5kIHRhcmdldCBtYWNoaW5lcyB0byBwYXJ0aWNpcGF0ZSBp biBhIGNvbW1vbiBzY2F0dGVybmV0CkBAIC04MzEsMTAgKzgzMSwxMCBAQAogYmUgdXNlZCBhcyBm b2xsb3dpbmc6CiAKIEBleGFtcGxlCi1xZW11IFsuLi5PUFRJT05TLi4uXSAtYnQgaGNpLHZsYW49 NSAtYnQgdmhjaSx2bGFuPTUKK3FlbXUgWy4uLk9QVElPTlMuLi5dIC1idCBoY2ksdm5ldD01IC1i dCB2aGNpLHZuZXQ9NQogQGVuZCBleGFtcGxlCiAKLUBpdGVtIC1idCBkZXZpY2U6QHZhcntkZXZ9 Wyx2bGFuPUB2YXJ7bn1dCitAaXRlbSAtYnQgZGV2aWNlOkB2YXJ7ZGV2fVssdm5ldD1AdmFye259 XQogRW11bGF0ZSBhIGJsdWV0b290aCBkZXZpY2UgQHZhcntkZXZ9IGFuZCBwbGFjZSBpdCBpbiBu ZXR3b3JrIEB2YXJ7bn0KIChkZWZhdWx0IEBjb2RlezB9KS4gIFFFTVUgY2FuIG9ubHkgZW11bGF0 ZSBvbmUgdHlwZSBvZiBibHVldG9vdGggZGV2aWNlcwogY3VycmVudGx5OgpAQCAtMTE5NCw3ICsx MTk0LDcgQEAKIAogQHRhYmxlIEBvcHRpb24KIEBpdGVtIGluZm8gbmV0d29yawotc2hvdyB0aGUg dmFyaW91cyBWTEFOcyBhbmQgdGhlIGFzc29jaWF0ZWQgZGV2aWNlcworc2hvdyB0aGUgdmFyaW91 cyBWTkVUcyBhbmQgdGhlIGFzc29jaWF0ZWQgZGV2aWNlcwogQGl0ZW0gaW5mbyBibG9jawogc2hv dyB0aGUgYmxvY2sgZGV2aWNlcwogQGl0ZW0gaW5mbyByZWdpc3RlcnMKQEAgLTE2NTgsMTYgKzE2 NTgsMTYgQEAKIEBzZWN0aW9uIE5ldHdvcmsgZW11bGF0aW9uCiAKIFFFTVUgY2FuIHNpbXVsYXRl IHNldmVyYWwgbmV0d29yayBjYXJkcyAoUENJIG9yIElTQSBjYXJkcyBvbiB0aGUgUEMKLXRhcmdl dCkgYW5kIGNhbiBjb25uZWN0IHRoZW0gdG8gYW4gYXJiaXRyYXJ5IG51bWJlciBvZiBWaXJ0dWFs IExvY2FsCi1BcmVhIE5ldHdvcmtzIChWTEFOcykuIEhvc3QgVEFQIGRldmljZXMgY2FuIGJlIGNv bm5lY3RlZCB0byBhbnkgUUVNVQotVkxBTi4gVkxBTiBjYW4gYmUgY29ubmVjdGVkIGJldHdlZW4g c2VwYXJhdGUgaW5zdGFuY2VzIG9mIFFFTVUgdG8KK3RhcmdldCkgYW5kIGNhbiBjb25uZWN0IHRo ZW0gdG8gYW4gYXJiaXRyYXJ5IG51bWJlciBvZiBWaXJ0dWFsIAorTmV0d29ya3MgKFZORVRzKS4g SG9zdCBUQVAgZGV2aWNlcyBjYW4gYmUgY29ubmVjdGVkIHRvIGFueSBRRU1VCitWTkVULiBWTkVU IGNhbiBiZSBjb25uZWN0ZWQgYmV0d2VlbiBzZXBhcmF0ZSBpbnN0YW5jZXMgb2YgUUVNVSB0bwog c2ltdWxhdGUgbGFyZ2UgbmV0d29ya3MuIEZvciBzaW1wbGVyIHVzYWdlLCBhIG5vbiBwcml2aWxl Z2VkIHVzZXIgbW9kZQogbmV0d29yayBzdGFjayBjYW4gcmVwbGFjZSB0aGUgVEFQIGRldmljZSB0 byBoYXZlIGEgYmFzaWMgbmV0d29yawogY29ubmVjdGlvbi4KIAotQHN1YnNlY3Rpb24gVkxBTnMK K0BzdWJzZWN0aW9uIFZORVRzCiAKLVFFTVUgc2ltdWxhdGVzIHNldmVyYWwgVkxBTnMuIEEgVkxB TiBjYW4gYmUgc3ltYm9saXNlZCBhcyBhIHZpcnR1YWwKK1FFTVUgc2ltdWxhdGVzIHNldmVyYWwg Vk5FVHMuIEEgVk5FVCBjYW4gYmUgc3ltYm9saXNlZCBhcyBhIHZpcnR1YWwKIGNvbm5lY3Rpb24g YmV0d2VlbiBzZXZlcmFsIG5ldHdvcmsgZGV2aWNlcy4gVGhlc2UgZGV2aWNlcyBjYW4gYmUgZm9y CiBleGFtcGxlIFFFTVUgdmlydHVhbCBFdGhlcm5ldCBjYXJkcyBvciB2aXJ0dWFsIEhvc3QgZXRo ZXJuZXQgZGV2aWNlcwogKFRBUCBkZXZpY2VzKS4KQEAgLTE3MDYsNyArMTcwNiw3IEBACiAKIEBl eGFtcGxlCiAKLSAgICAgICAgIFFFTVUgVkxBTiAgICAgIDwtLS0tLS0+ICBGaXJld2FsbC9ESENQ IHNlcnZlciA8LS0tLS0+IEludGVybmV0CisgICAgICAgICBRRU1VIFZORVQgICAgICA8LS0tLS0t PiAgRmlyZXdhbGwvREhDUCBzZXJ2ZXIgPC0tLS0tPiBJbnRlcm5ldAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAoMTAuMC4yLjIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tPiAgRE5TIHNlcnZlciAoMTAu MC4yLjMpCkBAIC0xNzM0LDkgKzE3MzQsOSBAQAogcmVkaXJlY3RlZCBmcm9tIHRoZSBob3N0IHRv IHRoZSBndWVzdC4gSXQgYWxsb3dzIGZvciBleGFtcGxlIHRvCiByZWRpcmVjdCBYMTEsIHRlbG5l dCBvciBTU0ggY29ubmVjdGlvbnMuCiAKLUBzdWJzZWN0aW9uIENvbm5lY3RpbmcgVkxBTnMgYmV0 d2VlbiBRRU1VIGluc3RhbmNlcworQHN1YnNlY3Rpb24gQ29ubmVjdGluZyBWTkVUcyBiZXR3ZWVu IFFFTVUgaW5zdGFuY2VzCiAKLVVzaW5nIHRoZSBAb3B0aW9uey1uZXQgc29ja2V0fSBvcHRpb24s IGl0IGlzIHBvc3NpYmxlIHRvIG1ha2UgVkxBTnMKK1VzaW5nIHRoZSBAb3B0aW9uey1uZXQgc29j a2V0fSBvcHRpb24sIGl0IGlzIHBvc3NpYmxlIHRvIG1ha2UgVk5FVHMKIHRoYXQgc3BhbiBzZXZl cmFsIFFFTVUgaW5zdGFuY2VzLiBTZWUgQHJlZntzZWNfaW52b2NhdGlvbn0gdG8gaGF2ZSBhCiBi YXNpYyBleGFtcGxlLgogCkBAIC0xODI4LDE3ICsxODI4LDE3IEBACiBzcGVjaWZpZXMgTklDIG9w dGlvbnMgYXMgd2l0aCBAY29kZXstbmV0IG5pYyx9QHZhcntvcHRpb25zfSAoc2VlIGRlc2NyaXB0 aW9uKS4KIEZvciBpbnN0YW5jZSwgdXNlci1tb2RlIG5ldHdvcmtpbmcgY2FuIGJlIHVzZWQgd2l0 aAogQGV4YW1wbGUKLXFlbXUgWy4uLk9QVElPTlMuLi5dIC1uZXQgdXNlcix2bGFuPTAgLXVzYmRl dmljZSBuZXQ6dmxhbj0wCitxZW11IFsuLi5PUFRJT05TLi4uXSAtbmV0IHVzZXIsdm5ldD0wIC11 c2JkZXZpY2UgbmV0OnZuZXQ9MAogQGVuZCBleGFtcGxlCiBDdXJyZW50bHkgdGhpcyBjYW5ub3Qg YmUgdXNlZCBpbiBtYWNoaW5lcyB0aGF0IHN1cHBvcnQgUENJIE5JQ3MuCiBAaXRlbSBidFs6QHZh cntoY2ktdHlwZX1dCiBCbHVldG9vdGggZG9uZ2xlIHdob3NlIHR5cGUgaXMgc3BlY2lmaWVkIGlu IHRoZSBzYW1lIGZvcm1hdCBhcyB3aXRoCiB0aGUgQG9wdGlvbnstYnQgaGNpfSBvcHRpb24sIEBw eHJlZntidC1oY2lzLCxhbGxvd2VkIEhDSSB0eXBlc30uICBJZgotbm8gdHlwZSBpcyBnaXZlbiwg dGhlIEhDSSBsb2dpYyBjb3JyZXNwb25kcyB0byBAY29kZXstYnQgaGNpLHZsYW49MH0uCitubyB0 eXBlIGlzIGdpdmVuLCB0aGUgSENJIGxvZ2ljIGNvcnJlc3BvbmRzIHRvIEBjb2Rley1idCBoY2ks dm5ldD0wfS4KIFRoaXMgVVNCIGRldmljZSBpbXBsZW1lbnRzIHRoZSBVU0IgVHJhbnNwb3J0IExh eWVyIG9mIEhDSS4gIEV4YW1wbGUKIHVzYWdlOgogQGV4YW1wbGUKLXFlbXUgWy4uLk9QVElPTlMu Li5dIC11c2JkZXZpY2UgYnQ6aGNpLHZsYW49MyAtYnQgZGV2aWNlOmtleWJvYXJkLHZsYW49Mwor cWVtdSBbLi4uT1BUSU9OUy4uLl0gLXVzYmRldmljZSBidDpoY2ksdm5ldD0zIC1idCBkZXZpY2U6 a2V5Ym9hcmQsdm5ldD0zCiBAZW5kIGV4YW1wbGUKIEBlbmQgdGFibGUKIApkaWZmIC1OYXVyIHRy dW5rL3NhdmV2bS5jIGxvY2FsL3NhdmV2bS5jCi0tLSB0cnVuay9zYXZldm0uYwkyMDA4LTEyLTA5 IDEzOjIzOjE1LjAwMDAwMDAwMCArMDEwMAorKysgbG9jYWwvc2F2ZXZtLmMJMjAwOC0xMi0wOSAx MzozMzo1OS4wMDAwMDAwMDAgKzAxMDAKQEAgLTExNCwxNCArMTE0LDE0IEBACiB2b2lkIHFlbXVf YW5ub3VuY2Vfc2VsZih2b2lkKQogewogICAgIGludCBpLCBqLCBsZW47Ci0gICAgVkxBTlN0YXRl ICp2bGFuOwotICAgIFZMQU5DbGllbnRTdGF0ZSAqdmM7CisgICAgVk5FVFN0YXRlICp2bmV0Owor ICAgIFZORVRDbGllbnRTdGF0ZSAqdmM7CiAgICAgdWludDhfdCBidWZbMjU2XTsKIAogICAgIGZv ciAoaSA9IDA7IGkgPCBuYl9uaWNzOyBpKyspIHsKICAgICAgICAgbGVuID0gYW5ub3VuY2Vfc2Vs Zl9jcmVhdGUoYnVmLCBuZF90YWJsZVtpXS5tYWNhZGRyKTsKLSAgICAgICAgdmxhbiA9IG5kX3Rh YmxlW2ldLnZsYW47Ci0gICAgICAgIGZvcih2YyA9IHZsYW4tPmZpcnN0X2NsaWVudDsgdmMgIT0g TlVMTDsgdmMgPSB2Yy0+bmV4dCkgeworICAgICAgICB2bmV0ID0gbmRfdGFibGVbaV0udm5ldDsK KyAgICAgICAgZm9yKHZjID0gdm5ldC0+Zmlyc3RfY2xpZW50OyB2YyAhPSBOVUxMOyB2YyA9IHZj LT5uZXh0KSB7CiAgICAgICAgICAgICBmb3IgKGo9MDsgaiA8IFNFTEZfQU5OT1VOQ0VfUk9VTkRT OyBqKyspCiAgICAgICAgICAgICAgICAgdmMtPmZkX3JlYWQodmMtPm9wYXF1ZSwgYnVmLCBsZW4p OwogICAgICAgICB9CmRpZmYgLU5hdXIgdHJ1bmsvc3lzZW11LmggbG9jYWwvc3lzZW11LmgKLS0t IHRydW5rL3N5c2VtdS5oCTIwMDgtMTItMDkgMTM6MjM6MTUuMDAwMDAwMDAwICswMTAwCisrKyBs b2NhbC9zeXNlbXUuaAkyMDA4LTEyLTA5IDEzOjMyOjE5LjAwMDAwMDAwMCArMDEwMApAQCAtNzUs NyArNzUsNyBAQAogI2VuZGlmCiAKIC8qIFRBUCB3aW4zMiAqLwotaW50IHRhcF93aW4zMl9pbml0 KFZMQU5TdGF0ZSAqdmxhbiwgY29uc3QgY2hhciAqaWZuYW1lKTsKK2ludCB0YXBfd2luMzJfaW5p dChWTkVUU3RhdGUgKnZuZXQsIGNvbnN0IGNoYXIgKmlmbmFtZSk7CiAKIC8qIFNMSVJQICovCiB2 b2lkIGRvX2luZm9fc2xpcnAodm9pZCk7CmRpZmYgLU5hdXIgdHJ1bmsvdGFwLXdpbjMyLmMgbG9j YWwvdGFwLXdpbjMyLmMKLS0tIHRydW5rL3RhcC13aW4zMi5jCTIwMDgtMTItMDkgMTM6MjM6MTUu MDAwMDAwMDAwICswMTAwCisrKyBsb2NhbC90YXAtd2luMzIuYwkyMDA4LTEyLTA5IDEzOjMzOjU5 LjAwMDAwMDAwMCArMDEwMApAQCAtNjM1LDcgKzYzNSw3IEBACiAvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICB0eXBlZGVmIHN0cnVjdCBUQVBTdGF0ZSB7 Ci0gICAgIFZMQU5DbGllbnRTdGF0ZSAqdmM7CisgICAgIFZORVRDbGllbnRTdGF0ZSAqdmM7CiAg ICAgIHRhcF93aW4zMl9vdmVybGFwcGVkX3QgKmhhbmRsZTsKICB9IFRBUFN0YXRlOwogCkBAIC02 NjAsNyArNjYwLDcgQEAKICAgICB9CiB9CiAKLWludCB0YXBfd2luMzJfaW5pdChWTEFOU3RhdGUg KnZsYW4sIGNvbnN0IGNoYXIgKmlmbmFtZSkKK2ludCB0YXBfd2luMzJfaW5pdChWTkVUU3RhdGUg KnZuZXQsIGNvbnN0IGNoYXIgKmlmbmFtZSkKIHsKICAgICBUQVBTdGF0ZSAqczsKIApAQCAtNjcy LDcgKzY3Miw3IEBACiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAgICBzLT52YyA9IHFl bXVfbmV3X3ZsYW5fY2xpZW50KHZsYW4sIHRhcF9yZWNlaXZlLCBOVUxMLCBzKTsKKyAgICBzLT52 YyA9IHFlbXVfbmV3X3ZuZXRfY2xpZW50KHZuZXQsIHRhcF9yZWNlaXZlLCBOVUxMLCBzKTsKIAog ICAgIHNucHJpbnRmKHMtPnZjLT5pbmZvX3N0ciwgc2l6ZW9mKHMtPnZjLT5pbmZvX3N0ciksCiAg ICAgICAgICAgICAgInRhcDogaWZuYW1lPSVzIiwgaWZuYW1lKTsKZGlmZiAtTmF1ciB0cnVuay92 bC5jIGxvY2FsL3ZsLmMKLS0tIHRydW5rL3ZsLmMJMjAwOC0xMi0wOSAxMzoyMzoxNS4wMDAwMDAw MDAgKzAxMDAKKysrIGxvY2FsL3ZsLmMJMjAwOC0xMi0wOSAxMzozMzo1OS4wMDAwMDAwMDAgKzAx MDAKQEAgLTE5NTYsMjcgKzE5NTYsMjcgQEAKIHN0YXRpYyBpbnQgY3VyX2hjaTsKIHN0YXRpYyBz dHJ1Y3QgSENJSW5mbyAqaGNpX3RhYmxlW01BWF9OSUNTXTsKIAotc3RhdGljIHN0cnVjdCBidF92 bGFuX3Mgeworc3RhdGljIHN0cnVjdCBidF92bmV0X3MgewogICAgIHN0cnVjdCBidF9zY2F0dGVy bmV0X3MgbmV0OwogICAgIGludCBpZDsKLSAgICBzdHJ1Y3QgYnRfdmxhbl9zICpuZXh0OwotfSAq Zmlyc3RfYnRfdmxhbjsKKyAgICBzdHJ1Y3QgYnRfdm5ldF9zICpuZXh0OworfSAqZmlyc3RfYnRf dm5ldDsKIAotLyogZmluZCBvciBhbGxvYyBhIG5ldyBibHVldG9vdGggIlZMQU4iICovCi1zdGF0 aWMgc3RydWN0IGJ0X3NjYXR0ZXJuZXRfcyAqcWVtdV9maW5kX2J0X3ZsYW4oaW50IGlkKQorLyog ZmluZCBvciBhbGxvYyBhIG5ldyBibHVldG9vdGggIlZORVQiICovCitzdGF0aWMgc3RydWN0IGJ0 X3NjYXR0ZXJuZXRfcyAqcWVtdV9maW5kX2J0X3ZuZXQoaW50IGlkKQogewotICAgIHN0cnVjdCBi dF92bGFuX3MgKipwdmxhbiwgKnZsYW47Ci0gICAgZm9yICh2bGFuID0gZmlyc3RfYnRfdmxhbjsg dmxhbiAhPSBOVUxMOyB2bGFuID0gdmxhbi0+bmV4dCkgewotICAgICAgICBpZiAodmxhbi0+aWQg PT0gaWQpCi0gICAgICAgICAgICByZXR1cm4gJnZsYW4tPm5ldDsKLSAgICB9Ci0gICAgdmxhbiA9 IHFlbXVfbWFsbG9jeihzaXplb2Yoc3RydWN0IGJ0X3ZsYW5fcykpOwotICAgIHZsYW4tPmlkID0g aWQ7Ci0gICAgcHZsYW4gPSAmZmlyc3RfYnRfdmxhbjsKLSAgICB3aGlsZSAoKnB2bGFuICE9IE5V TEwpCi0gICAgICAgIHB2bGFuID0gJigqcHZsYW4pLT5uZXh0OwotICAgICpwdmxhbiA9IHZsYW47 Ci0gICAgcmV0dXJuICZ2bGFuLT5uZXQ7CisgICAgc3RydWN0IGJ0X3ZuZXRfcyAqKnB2bmV0LCAq dm5ldDsKKyAgICBmb3IgKHZuZXQgPSBmaXJzdF9idF92bmV0OyB2bmV0ICE9IE5VTEw7IHZuZXQg PSB2bmV0LT5uZXh0KSB7CisgICAgICAgIGlmICh2bmV0LT5pZCA9PSBpZCkKKyAgICAgICAgICAg IHJldHVybiAmdm5ldC0+bmV0OworICAgIH0KKyAgICB2bmV0ID0gcWVtdV9tYWxsb2N6KHNpemVv ZihzdHJ1Y3QgYnRfdm5ldF9zKSk7CisgICAgdm5ldC0+aWQgPSBpZDsKKyAgICBwdm5ldCA9ICZm aXJzdF9idF92bmV0OworICAgIHdoaWxlICgqcHZuZXQgIT0gTlVMTCkKKyAgICAgICAgcHZuZXQg PSAmKCpwdm5ldCktPm5leHQ7CisgICAgKnB2bmV0ID0gdm5ldDsKKyAgICByZXR1cm4gJnZuZXQt Pm5ldDsKIH0KIAogc3RhdGljIHZvaWQgbnVsbF9oY2lfc2VuZChzdHJ1Y3QgSENJSW5mbyAqaGNp LCBjb25zdCB1aW50OF90ICpkYXRhLCBpbnQgbGVuKQpAQCAtMjAwNiw3ICsyMDA2LDcgQEAKIHN0 YXRpYyBzdHJ1Y3QgSENJSW5mbyAqaGNpX2luaXQoY29uc3QgY2hhciAqc3RyKQogewogICAgIGNo YXIgKmVuZHA7Ci0gICAgc3RydWN0IGJ0X3NjYXR0ZXJuZXRfcyAqdmxhbiA9IDA7CisgICAgc3Ry dWN0IGJ0X3NjYXR0ZXJuZXRfcyAqdm5ldCA9IDA7CiAKICAgICBpZiAoIXN0cmNtcChzdHIsICJu dWxsIikpCiAgICAgICAgIC8qIG51bGwgKi8KQEAgLTIwMTUsMTcgKzIwMTUsMTcgQEAKICAgICAg ICAgLyogaG9zdFs6aGNpTl0gKi8KICAgICAgICAgcmV0dXJuIGJ0X2hvc3RfaGNpKHN0cls0XSA/ IHN0ciArIDUgOiAiaGNpMCIpOwogICAgIGVsc2UgaWYgKCFzdHJuY21wKHN0ciwgImhjaSIsIDMp KSB7Ci0gICAgICAgIC8qIGhjaVssdmxhbj1uXSAqLworICAgICAgICAvKiBoY2lbLHZuZXQ9bl0g Ki8KICAgICAgICAgaWYgKHN0clszXSkgewotICAgICAgICAgICAgaWYgKCFzdHJuY21wKHN0ciAr IDMsICIsdmxhbj0iLCA2KSkgewotICAgICAgICAgICAgICAgIHZsYW4gPSBxZW11X2ZpbmRfYnRf dmxhbihzdHJ0b2woc3RyICsgOSwgJmVuZHAsIDApKTsKKyAgICAgICAgICAgIGlmICghc3RybmNt cChzdHIgKyAzLCAiLHZuZXQ9IiwgNikpIHsKKyAgICAgICAgICAgICAgICB2bmV0ID0gcWVtdV9m aW5kX2J0X3ZuZXQoc3RydG9sKHN0ciArIDksICZlbmRwLCAwKSk7CiAgICAgICAgICAgICAgICAg aWYgKCplbmRwKQotICAgICAgICAgICAgICAgICAgICB2bGFuID0gMDsKKyAgICAgICAgICAgICAg ICAgICAgdm5ldCA9IDA7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZQotICAgICAgICAg ICAgdmxhbiA9IHFlbXVfZmluZF9idF92bGFuKDApOwotICAgICAgICBpZiAodmxhbikKLSAgICAg ICAgICAgcmV0dXJuIGJ0X25ld19oY2kodmxhbik7CisgICAgICAgICAgICB2bmV0ID0gcWVtdV9m aW5kX2J0X3ZuZXQoMCk7CisgICAgICAgIGlmICh2bmV0KQorICAgICAgICAgICByZXR1cm4gYnRf bmV3X2hjaSh2bmV0KTsKICAgICB9CiAKICAgICBmcHJpbnRmKHN0ZGVyciwgInFlbXU6IFVua25v d24gYmx1ZXRvb3RoIEhDSSBgJXMnLlxuIiwgc3RyKTsKQEAgLTIwNjAsNDMgKzIwNjAsNDMgQEAK ICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgYnRfdmhjaV9hZGQoaW50IHZsYW5faWQp CitzdGF0aWMgdm9pZCBidF92aGNpX2FkZChpbnQgdm5ldF9pZCkKIHsKLSAgICBzdHJ1Y3QgYnRf c2NhdHRlcm5ldF9zICp2bGFuID0gcWVtdV9maW5kX2J0X3ZsYW4odmxhbl9pZCk7CisgICAgc3Ry dWN0IGJ0X3NjYXR0ZXJuZXRfcyAqdm5ldCA9IHFlbXVfZmluZF9idF92bmV0KHZuZXRfaWQpOwog Ci0gICAgaWYgKCF2bGFuLT5zbGF2ZSkKKyAgICBpZiAoIXZuZXQtPnNsYXZlKQogICAgICAgICBm cHJpbnRmKHN0ZGVyciwgInFlbXU6IHdhcm5pbmc6IGFkZGluZyBhIFZIQ0kgdG8gIgotICAgICAg ICAgICAgICAgICAgICAgICAgImFuIGVtcHR5IHNjYXR0ZXJuZXQgJWlcbiIsIHZsYW5faWQpOwor ICAgICAgICAgICAgICAgICAgICAgICAgImFuIGVtcHR5IHNjYXR0ZXJuZXQgJWlcbiIsIHZuZXRf aWQpOwogCi0gICAgYnRfdmhjaV9pbml0KGJ0X25ld19oY2kodmxhbikpOworICAgIGJ0X3ZoY2lf aW5pdChidF9uZXdfaGNpKHZuZXQpKTsKIH0KIAogc3RhdGljIHN0cnVjdCBidF9kZXZpY2VfcyAq YnRfZGV2aWNlX2FkZChjb25zdCBjaGFyICpvcHQpCiB7Ci0gICAgc3RydWN0IGJ0X3NjYXR0ZXJu ZXRfcyAqdmxhbjsKLSAgICBpbnQgdmxhbl9pZCA9IDA7Ci0gICAgY2hhciAqZW5kcCA9IHN0cnN0 cihvcHQsICIsdmxhbj0iKTsKKyAgICBzdHJ1Y3QgYnRfc2NhdHRlcm5ldF9zICp2bmV0OworICAg IGludCB2bmV0X2lkID0gMDsKKyAgICBjaGFyICplbmRwID0gc3Ryc3RyKG9wdCwgIix2bmV0PSIp OwogICAgIGludCBsZW4gPSAoZW5kcCA/IGVuZHAgLSBvcHQgOiBzdHJsZW4ob3B0KSkgKyAxOwog ICAgIGNoYXIgZGV2bmFtZVsxMF07CiAKICAgICBwc3RyY3B5KGRldm5hbWUsIE1JTihzaXplb2Yo ZGV2bmFtZSksIGxlbiksIG9wdCk7CiAKICAgICBpZiAoZW5kcCkgewotICAgICAgICB2bGFuX2lk ID0gc3RydG9sKGVuZHAgKyA2LCAmZW5kcCwgMCk7CisgICAgICAgIHZuZXRfaWQgPSBzdHJ0b2wo ZW5kcCArIDYsICZlbmRwLCAwKTsKICAgICAgICAgaWYgKCplbmRwKSB7Ci0gICAgICAgICAgICBm cHJpbnRmKHN0ZGVyciwgInFlbXU6IHVucmVjb2duaXNlZCBibHVldG9vdGggdmxhbiBJZFxuIik7 CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInFlbXU6IHVucmVjb2duaXNlZCBibHVldG9v dGggdm5ldCBJZFxuIik7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgIH0K IAotICAgIHZsYW4gPSBxZW11X2ZpbmRfYnRfdmxhbih2bGFuX2lkKTsKKyAgICB2bmV0ID0gcWVt dV9maW5kX2J0X3ZuZXQodm5ldF9pZCk7CiAKLSAgICBpZiAoIXZsYW4tPnNsYXZlKQorICAgIGlm ICghdm5ldC0+c2xhdmUpCiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAicWVtdTogd2FybmluZzog YWRkaW5nIGEgc2xhdmUgZGV2aWNlIHRvICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJhbiBl bXB0eSBzY2F0dGVybmV0ICVpXG4iLCB2bGFuX2lkKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICJhbiBlbXB0eSBzY2F0dGVybmV0ICVpXG4iLCB2bmV0X2lkKTsKIAogICAgIGlmICghc3RyY21w KGRldm5hbWUsICJrZXlib2FyZCIpKQotICAgICAgICByZXR1cm4gYnRfa2V5Ym9hcmRfaW5pdCh2 bGFuKTsKKyAgICAgICAgcmV0dXJuIGJ0X2tleWJvYXJkX2luaXQodm5ldCk7CiAKICAgICBmcHJp bnRmKHN0ZGVyciwgInFlbXU6IHVuc3VwcG9ydGVkIGJsdWV0b290aCBkZXZpY2UgYCVzJ1xuIiwg ZGV2bmFtZSk7CiAgICAgcmV0dXJuIDA7CkBAIC0yMTA1LDEyICsyMTA1LDEyIEBACiBzdGF0aWMg aW50IGJ0X3BhcnNlKGNvbnN0IGNoYXIgKm9wdCkKIHsKICAgICBjb25zdCBjaGFyICplbmRwLCAq cDsKLSAgICBpbnQgdmxhbjsKKyAgICBpbnQgdm5ldDsKIAogICAgIGlmIChzdHJzdGFydChvcHQs ICJoY2kiLCAmZW5kcCkpIHsKICAgICAgICAgaWYgKCEqZW5kcCB8fCAqZW5kcCA9PSAnLCcpIHsK ICAgICAgICAgICAgIGlmICgqZW5kcCkKLSAgICAgICAgICAgICAgICBpZiAoIXN0cnN0YXJ0KGVu ZHAsICIsdmxhbj0iLCAwKSkKKyAgICAgICAgICAgICAgICBpZiAoIXN0cnN0YXJ0KGVuZHAsICIs dm5ldD0iLCAwKSkKICAgICAgICAgICAgICAgICAgICAgb3B0ID0gZW5kcCArIDE7CiAKICAgICAg ICAgICAgIHJldHVybiBidF9oY2lfcGFyc2Uob3B0KTsKQEAgLTIxMTgsOCArMjExOCw4IEBACiAg ICAgfSBlbHNlIGlmIChzdHJzdGFydChvcHQsICJ2aGNpIiwgJmVuZHApKSB7CiAgICAgICAgIGlm ICghKmVuZHAgfHwgKmVuZHAgPT0gJywnKSB7CiAgICAgICAgICAgICBpZiAoKmVuZHApIHsKLSAg ICAgICAgICAgICAgICBpZiAoc3Ryc3RhcnQoZW5kcCwgIix2bGFuPSIsICZwKSkgewotICAgICAg ICAgICAgICAgICAgICB2bGFuID0gc3RydG9sKHAsIChjaGFyICoqKSAmZW5kcCwgMCk7CisgICAg ICAgICAgICAgICAgaWYgKHN0cnN0YXJ0KGVuZHAsICIsdm5ldD0iLCAmcCkpIHsKKyAgICAgICAg ICAgICAgICAgICAgdm5ldCA9IHN0cnRvbChwLCAoY2hhciAqKikgJmVuZHAsIDApOwogICAgICAg ICAgICAgICAgICAgICBpZiAoKmVuZHApIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmlu dGYoc3RkZXJyLCAicWVtdTogYmFkIHNjYXR0ZXJuZXQgJyVzJ1xuIiwgcCk7CiAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gMTsKQEAgLTIxMjksOSArMjEyOSw5IEBACiAgICAgICAgICAg ICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxz ZQotICAgICAgICAgICAgICAgIHZsYW4gPSAwOworICAgICAgICAgICAgICAgIHZuZXQgPSAwOwog Ci0gICAgICAgICAgICBidF92aGNpX2FkZCh2bGFuKTsKKyAgICAgICAgICAgIGJ0X3ZoY2lfYWRk KHZuZXQpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYg KHN0cnN0YXJ0KG9wdCwgImRldmljZToiLCAmZW5kcCkpCkBAIC0yNjA1LDcgKzI2MDUsNyBAQAog ICAgICAgICBkZXYgPSB1c2JfbmV0X2luaXQoJm5kX3RhYmxlW25pY10pOwogICAgIH0gZWxzZSBp ZiAoIXN0cmNtcChkZXZuYW1lLCAiYnQiKSB8fCBzdHJzdGFydChkZXZuYW1lLCAiYnQ6IiwgJnAp KSB7CiAgICAgICAgIGRldiA9IHVzYl9idF9pbml0KGRldm5hbWVbMl0gPyBoY2lfaW5pdChwKSA6 Ci0gICAgICAgICAgICAgICAgICAgICAgICBidF9uZXdfaGNpKHFlbXVfZmluZF9idF92bGFuKDAp KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBidF9uZXdfaGNpKHFlbXVfZmluZF9idF92bmV0 KDApKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KQEAgLTM4Nzcs MzEgKzM4NzcsMzEgQEAKICAgICAgICAgICAgIi11dWlkICUlMDh4LSUlMDR4LSUlMDR4LSUlMDR4 LSUlMDEyeCBzcGVjaWZ5IG1hY2hpbmUgVVVJRFxuIgogICAgICAgICAgICAiXG4iCiAgICAgICAg ICAgICJOZXR3b3JrIG9wdGlvbnM6XG4iCi0gICAgICAgICAgICItbmV0IG5pY1ssdmxhbj1uXVss bWFjYWRkcj1hZGRyXVssbW9kZWw9dHlwZV1cbiIKLSAgICAgICAgICAgIiAgICAgICAgICAgICAg ICBjcmVhdGUgYSBuZXcgTmV0d29yayBJbnRlcmZhY2UgQ2FyZCBhbmQgY29ubmVjdCBpdCB0byBW TEFOICduJ1xuIgorICAgICAgICAgICAiLW5ldCBuaWNbLHZuZXQ9bl1bLG1hY2FkZHI9YWRkcl1b LG1vZGVsPXR5cGVdXG4iCisgICAgICAgICAgICIgICAgICAgICAgICAgICAgY3JlYXRlIGEgbmV3 IE5ldHdvcmsgSW50ZXJmYWNlIENhcmQgYW5kIGNvbm5lY3QgaXQgdG8gVk5FVCAnbidcbiIKICNp ZmRlZiBDT05GSUdfU0xJUlAKLSAgICAgICAgICAgIi1uZXQgdXNlclssdmxhbj1uXVssaG9zdG5h bWU9aG9zdF1cbiIKLSAgICAgICAgICAgIiAgICAgICAgICAgICAgICBjb25uZWN0IHRoZSB1c2Vy IG1vZGUgbmV0d29yayBzdGFjayB0byBWTEFOICduJyBhbmQgc2VuZFxuIgorICAgICAgICAgICAi LW5ldCB1c2VyWyx2bmV0PW5dWyxob3N0bmFtZT1ob3N0XVxuIgorICAgICAgICAgICAiICAgICAg ICAgICAgICAgIGNvbm5lY3QgdGhlIHVzZXIgbW9kZSBuZXR3b3JrIHN0YWNrIHRvIFZORVQgJ24n IGFuZCBzZW5kXG4iCiAgICAgICAgICAgICIgICAgICAgICAgICAgICAgaG9zdG5hbWUgJ2hvc3Qn IHRvIERIQ1AgY2xpZW50c1xuIgogI2VuZGlmCiAjaWZkZWYgX1dJTjMyCi0gICAgICAgICAgICIt bmV0IHRhcFssdmxhbj1uXSxpZm5hbWU9bmFtZVxuIgotICAgICAgICAgICAiICAgICAgICAgICAg ICAgIGNvbm5lY3QgdGhlIGhvc3QgVEFQIG5ldHdvcmsgaW50ZXJmYWNlIHRvIFZMQU4gJ24nXG4i CisgICAgICAgICAgICItbmV0IHRhcFssdm5ldD1uXSxpZm5hbWU9bmFtZVxuIgorICAgICAgICAg ICAiICAgICAgICAgICAgICAgIGNvbm5lY3QgdGhlIGhvc3QgVEFQIG5ldHdvcmsgaW50ZXJmYWNl IHRvIFZORVQgJ24nXG4iCiAjZWxzZQotICAgICAgICAgICAiLW5ldCB0YXBbLHZsYW49bl1bLGZk PWhdWyxpZm5hbWU9bmFtZV1bLHNjcmlwdD1maWxlXVssZG93bnNjcmlwdD1kZmlsZV1cbiIKLSAg ICAgICAgICAgIiAgICAgICAgICAgICAgICBjb25uZWN0IHRoZSBob3N0IFRBUCBuZXR3b3JrIGlu dGVyZmFjZSB0byBWTEFOICduJyBhbmQgdXNlIHRoZVxuIgorICAgICAgICAgICAiLW5ldCB0YXBb LHZuZXQ9bl1bLGZkPWhdWyxpZm5hbWU9bmFtZV1bLHNjcmlwdD1maWxlXVssZG93bnNjcmlwdD1k ZmlsZV1cbiIKKyAgICAgICAgICAgIiAgICAgICAgICAgICAgICBjb25uZWN0IHRoZSBob3N0IFRB UCBuZXR3b3JrIGludGVyZmFjZSB0byBWTkVUICduJyBhbmQgdXNlIHRoZVxuIgogICAgICAgICAg ICAiICAgICAgICAgICAgICAgIG5ldHdvcmsgc2NyaXB0cyAnZmlsZScgKGRlZmF1bHQ9JXMpXG4i CiAgICAgICAgICAgICIgICAgICAgICAgICAgICAgYW5kICdkZmlsZScgKGRlZmF1bHQ9JXMpO1xu IgogICAgICAgICAgICAiICAgICAgICAgICAgICAgIHVzZSAnW2Rvd25dc2NyaXB0PW5vJyB0byBk aXNhYmxlIHNjcmlwdCBleGVjdXRpb247XG4iCiAgICAgICAgICAgICIgICAgICAgICAgICAgICAg dXNlICdmZD1oJyB0byBjb25uZWN0IHRvIGFuIGFscmVhZHkgb3BlbmVkIFRBUCBpbnRlcmZhY2Vc biIKICNlbmRpZgotICAgICAgICAgICAiLW5ldCBzb2NrZXRbLHZsYW49bl1bLGZkPWhdWyxsaXN0 ZW49W2hvc3RdOnBvcnRdWyxjb25uZWN0PWhvc3Q6cG9ydF1cbiIKLSAgICAgICAgICAgIiAgICAg ICAgICAgICAgICBjb25uZWN0IHRoZSB2bGFuICduJyB0byBhbm90aGVyIFZMQU4gdXNpbmcgYSBz b2NrZXQgY29ubmVjdGlvblxuIgotICAgICAgICAgICAiLW5ldCBzb2NrZXRbLHZsYW49bl1bLGZk PWhdWyxtY2FzdD1tYWRkcjpwb3J0XVxuIgotICAgICAgICAgICAiICAgICAgICAgICAgICAgIGNv bm5lY3QgdGhlIHZsYW4gJ24nIHRvIG11bHRpY2FzdCBtYWRkciBhbmQgcG9ydFxuIgorICAgICAg ICAgICAiLW5ldCBzb2NrZXRbLHZuZXQ9bl1bLGZkPWhdWyxsaXN0ZW49W2hvc3RdOnBvcnRdWyxj b25uZWN0PWhvc3Q6cG9ydF1cbiIKKyAgICAgICAgICAgIiAgICAgICAgICAgICAgICBjb25uZWN0 IHRoZSB2bmV0ICduJyB0byBhbm90aGVyIFZORVQgdXNpbmcgYSBzb2NrZXQgY29ubmVjdGlvblxu IgorICAgICAgICAgICAiLW5ldCBzb2NrZXRbLHZuZXQ9bl1bLGZkPWhdWyxtY2FzdD1tYWRkcjpw b3J0XVxuIgorICAgICAgICAgICAiICAgICAgICAgICAgICAgIGNvbm5lY3QgdGhlIHZuZXQgJ24n IHRvIG11bHRpY2FzdCBtYWRkciBhbmQgcG9ydFxuIgogI2lmZGVmIENPTkZJR19WREUKLSAgICAg ICAgICAgIi1uZXQgdmRlWyx2bGFuPW5dWyxzb2NrPXNvY2tldHBhdGhdWyxwb3J0PW5dWyxncm91 cD1ncm91cG5hbWVdWyxtb2RlPW9jdGFsbW9kZV1cbiIKLSAgICAgICAgICAgIiAgICAgICAgICAg ICAgICBjb25uZWN0IHRoZSB2bGFuICduJyB0byBwb3J0ICduJyBvZiBhIHZkZSBzd2l0Y2ggcnVu bmluZ1xuIgorICAgICAgICAgICAiLW5ldCB2ZGVbLHZuZXQ9bl1bLHNvY2s9c29ja2V0cGF0aF1b LHBvcnQ9bl1bLGdyb3VwPWdyb3VwbmFtZV1bLG1vZGU9b2N0YWxtb2RlXVxuIgorICAgICAgICAg ICAiICAgICAgICAgICAgICAgIGNvbm5lY3QgdGhlIHZuZXQgJ24nIHRvIHBvcnQgJ24nIG9mIGEg dmRlIHN3aXRjaCBydW5uaW5nXG4iCiAgICAgICAgICAgICIgICAgICAgICAgICAgICAgb24gaG9z dCBhbmQgbGlzdGVuaW5nIGZvciBpbmNvbWluZyBjb25uZWN0aW9ucyBvbiAnc29ja2V0cGF0aCcu XG4iCiAgICAgICAgICAgICIgICAgICAgICAgICAgICAgVXNlIGdyb3VwICdncm91cG5hbWUnIGFu ZCBtb2RlICdvY3RhbG1vZGUnIHRvIGNoYW5nZSBkZWZhdWx0XG4iCiAgICAgICAgICAgICIgICAg ICAgICAgICAgICAgb3duZXJzaGlwIGFuZCBwZXJtaXNzaW9ucyBmb3IgY29tbXVuaWNhdGlvbiBw b3J0LlxuIgpAQCAtMzkxMiwxMSArMzkxMiwxMSBAQAogICAgICAgICAgICAiLWJ0IGhjaSxudWxs ICAgIER1bWIgYmx1ZXRvb3RoIEhDSSAtIGRvZXNuJ3QgcmVzcG9uZCB0byBjb21tYW5kc1xuIgog ICAgICAgICAgICAiLWJ0IGhjaSxob3N0WzppZF1cbiIKICAgICAgICAgICAgIiAgICAgICAgICAg ICAgICBVc2UgaG9zdCdzIEhDSSB3aXRoIHRoZSBnaXZlbiBuYW1lXG4iCi0gICAgICAgICAgICIt YnQgaGNpWyx2bGFuPW5dXG4iCisgICAgICAgICAgICItYnQgaGNpWyx2bmV0PW5dXG4iCiAgICAg ICAgICAgICIgICAgICAgICAgICAgICAgRW11bGF0ZSBhIHN0YW5kYXJkIEhDSSBpbiB2aXJ0dWFs IHNjYXR0ZXJuZXQgJ24nXG4iCi0gICAgICAgICAgICItYnQgdmhjaVssdmxhbj1uXVxuIgorICAg ICAgICAgICAiLWJ0IHZoY2lbLHZuZXQ9bl1cbiIKICAgICAgICAgICAgIiAgICAgICAgICAgICAg ICBBZGQgaG9zdCBjb21wdXRlciB0byB2aXJ0dWFsIHNjYXR0ZXJuZXQgJ24nIHVzaW5nIFZIQ0lc biIKLSAgICAgICAgICAgIi1idCBkZXZpY2U6ZGV2Wyx2bGFuPW5dXG4iCisgICAgICAgICAgICIt YnQgZGV2aWNlOmRldlssdm5ldD1uXVxuIgogICAgICAgICAgICAiICAgICAgICAgICAgICAgIEVt dWxhdGUgYSBibHVldG9vdGggZGV2aWNlICdkZXYnIGluIHNjYXR0ZXJuZXQgJ24nXG4iCiAgICAg ICAgICAgICJcbiIKICNpZmRlZiBDT05GSUdfU0xJUlAK ------=_Part_80893_26519041.1228834913824--