From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([149.20.54.216]:52060 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750712AbcB2V4U (ORCPT ); Mon, 29 Feb 2016 16:56:20 -0500 Received: from localhost (unknown [38.140.131.194]) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 7CFE05AC97F for ; Mon, 29 Feb 2016 13:56:17 -0800 (PST) Date: Mon, 29 Feb 2016 16:56:15 -0500 (EST) Message-Id: <20160229.165615.2232238957282850211.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Mon_Feb_29_16_56_15_2016_397)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Mon_Feb_29_16_56_15_2016_397)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following bug fixes for 4.1.x and 4.4.x -stable, respectively. Thanks! ----Next_Part(Mon_Feb_29_16_56_15_2016_397)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_41.mbox" RnJvbSA3NTIzMDIwNWJhODNjNjkzOGFiNGI0ZDNmN2NhYmNjZGEyOWQ4NDM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBVcnN1bGEgQnJhdW4gPHVyc3VsYS5icmF1bkBkZS5pYm0uY29t PgpEYXRlOiBUdWUsIDE5IEphbiAyMDE2IDEwOjQxOjMzICswMTAwClN1YmplY3Q6IFtQQVRDSCAw MS8zNF0gYWZfaXVjdjogVmFsaWRhdGUgc29ja2V0IGFkZHJlc3MgbGVuZ3RoIGluCiBpdWN2X3Nv Y2tfYmluZCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA1MmE4MmUyM2I5ZjJhOWUxZDQyOWM1MjA3Zjg1 NzU3ODQyOTBkMDA4IF0KClNpZ25lZC1vZmYtYnk6IFVyc3VsYSBCcmF1biA8dXJzdWxhLmJyYXVu QGRlLmlibS5jb20+ClJlcG9ydGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5j b20+ClJldmlld2VkLWJ5OiBFdmdlbnkgQ2hlcmthc2hpbiA8RXVnZW5lLkNyb3NzZXJAcnUuaWJt LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pdWN2L2FmX2l1Y3YuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2l1Y3YvYWZfaXVjdi5jIGIvbmV0L2l1Y3YvYWZf aXVjdi5jCmluZGV4IDZkYWE1MmEuLjEyM2Y2ZjkgMTAwNjQ0Ci0tLSBhL25ldC9pdWN2L2FmX2l1 Y3YuYworKysgYi9uZXQvaXVjdi9hZl9pdWN2LmMKQEAgLTcwOSw2ICs3MDksOSBAQCBzdGF0aWMg aW50IGl1Y3Zfc29ja19iaW5kKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAq YWRkciwKIAlpZiAoIWFkZHIgfHwgYWRkci0+c2FfZmFtaWx5ICE9IEFGX0lVQ1YpCiAJCXJldHVy biAtRUlOVkFMOwogCisJaWYgKGFkZHJfbGVuIDwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pdWN2 KSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlsb2NrX3NvY2soc2spOwogCWlmIChzay0+c2tfc3Rh dGUgIT0gSVVDVl9PUEVOKSB7CiAJCWVyciA9IC1FQkFERkQ7Ci0tIAoyLjQuMQoKCkZyb20gM2Y1 ODViMTZhYzljNGFhNTkyNTI4ZGFjMTZmMzE1NWNlNWFkMjBjYiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogTWFuZnJlZCBSdWRpZ2llciA8TWFuZnJlZC5SdWRpZ2llckBvbWljcm9uLmF0 PgpEYXRlOiBXZWQsIDIwIEphbiAyMDE2IDExOjIyOjI4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAw Mi8zNF0gbmV0OiBkcDgzNjQwOiBGaXggdHggdGltZXN0YW1wIG92ZXJmbG93IGhhbmRsaW5nLgoK WyBVcHN0cmVhbSBjb21taXQgODFlOGYyZTkzMGZlNzZiOTgxNGM3MWI5ZDg3YzMwNzYwYjVlYjcw NSBdCgpQSFkgc3RhdHVzIGZyYW1lcyBhcmUgbm90IHJlbGlhYmxlLCB0aGUgUEhZIG1heSBub3Qg YmUgYWJsZSB0byBzZW5kIHRoZW0KZHVyaW5nIGhlYXZ5IHJlY2VpdmUgdHJhZmZpYy4gVGhpcyBv dmVyZmxvdyBjb25kaXRpb24gaXMgc2lnbmFsZWQgYnkgdGhlClBIWSBpbiB0aGUgbmV4dCBzdGF0 dXMgZnJhbWUsIGJ1dCB0aGUgZHJpdmVyIGRpZCBub3QgbWFrZSB1c2Ugb2YgaXQuCkluc3RlYWQg aXQgYWx3YXlzIHJlcG9ydGVkIHdyb25nIHR4IHRpbWVzdGFtcHMgdG8gdXNlciBzcGFjZSBhZnRl ciBhbgpvdmVyZmxvdyBoYXBwZW5lZCBiZWNhdXNlIGl0IGFzc2lnbmVkIG5ld2x5IHJlY2VpdmVk IHR4IHRpbWVzdGFtcHMgdG8gb2xkCnBhY2tldHMgaW4gdGhlIHF1ZXVlLgoKVGhpcyBjb21taXQg Zml4ZXMgdGhpcyBpc3N1ZSBieSBjbGVhcmluZyB0aGUgdHggdGltZXN0YW1wIHF1ZXVlIGV2ZXJ5 IHRpbWUKYW4gb3ZlcmZsb3cgaGFwcGVucywgc28gdGhhdCBubyB0aW1lc3RhbXBzIGFyZSBkZWxp dmVyZWQgZm9yIG92ZXJmbG93CnBhY2tldHMuIFRoaXMgd2F5IHRpbWUgc3RhbXBpbmcgd2lsbCBj b250aW51ZSBjb3JyZWN0bHkgYWZ0ZXIgYW4gb3ZlcmZsb3cuCgpTaWduZWQtb2ZmLWJ5OiBNYW5m cmVkIFJ1ZGlnaWVyIDxtYW5mcmVkLnJ1ZGlnaWVyQG9taWNyb24uYXQ+CkFja2VkLWJ5OiBSaWNo YXJkIENvY2hyYW4gPHJpY2hhcmRjb2NocmFuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9k cDgzNjQwLmMgfCAxNyArKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE3IGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jIGIvZHJpdmVy cy9uZXQvcGh5L2RwODM2NDAuYwppbmRleCAwMGNiNDFlLi5jNTZjZjBiIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9waHkvZHA4MzY0MC5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMK QEAgLTgzMyw2ICs4MzMsMTEgQEAgc3RhdGljIHZvaWQgZGVjb2RlX3J4dHMoc3RydWN0IGRwODM2 NDBfcHJpdmF0ZSAqZHA4MzY0MCwKIAlzdHJ1Y3Qgc2tiX3NoYXJlZF9od3RzdGFtcHMgKnNoaHd0 c3RhbXBzID0gTlVMTDsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwogCXVuc2lnbmVkIGxvbmcgZmxh Z3M7CisJdTggb3ZlcmZsb3c7CisKKwlvdmVyZmxvdyA9IChwaHlfcnh0cy0+bnNfaGkgPj4gMTQp ICYgMHgzOworCWlmIChvdmVyZmxvdykKKwkJcHJfZGVidWcoInJ4IHRpbWVzdGFtcCBxdWV1ZSBv dmVyZmxvdywgY291bnQgJWRcbiIsIG92ZXJmbG93KTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZk cDgzNjQwLT5yeF9sb2NrLCBmbGFncyk7CiAKQEAgLTg3NSw2ICs4ODAsNyBAQCBzdGF0aWMgdm9p ZCBkZWNvZGVfdHh0cyhzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwLAogCXN0cnVjdCBz a2Jfc2hhcmVkX2h3dHN0YW1wcyBzaGh3dHN0YW1wczsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwog CXU2NCBuczsKKwl1OCBvdmVyZmxvdzsKIAogCS8qIFdlIG11c3QgYWxyZWFkeSBoYXZlIHRoZSBz a2IgdGhhdCB0cmlnZ2VyZWQgdGhpcy4gKi8KIApAQCAtODg0LDYgKzg5MCwxNyBAQCBzdGF0aWMg dm9pZCBkZWNvZGVfdHh0cyhzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwLAogCQlwcl9k ZWJ1ZygiaGF2ZSB0aW1lc3RhbXAgYnV0IHR4X3F1ZXVlIGVtcHR5XG4iKTsKIAkJcmV0dXJuOwog CX0KKworCW92ZXJmbG93ID0gKHBoeV90eHRzLT5uc19oaSA+PiAxNCkgJiAweDM7CisJaWYgKG92 ZXJmbG93KSB7CisJCXByX2RlYnVnKCJ0eCB0aW1lc3RhbXAgcXVldWUgb3ZlcmZsb3csIGNvdW50 ICVkXG4iLCBvdmVyZmxvdyk7CisJCXdoaWxlIChza2IpIHsKKwkJCXNrYl9jb21wbGV0ZV90eF90 aW1lc3RhbXAoc2tiLCBOVUxMKTsKKwkJCXNrYiA9IHNrYl9kZXF1ZXVlKCZkcDgzNjQwLT50eF9x dWV1ZSk7CisJCX0KKwkJcmV0dXJuOworCX0KKwogCW5zID0gcGh5MnR4dHMocGh5X3R4dHMpOwog CW1lbXNldCgmc2hod3RzdGFtcHMsIDAsIHNpemVvZihzaGh3dHN0YW1wcykpOwogCXNoaHd0c3Rh bXBzLmh3dHN0YW1wID0gbnNfdG9fa3RpbWUobnMpOwotLSAKMi40LjEKCgpGcm9tIDQxMzQwYjk1 MTg5NGFlZGZmOWFkY2UxMGZlMDFiZmQ4MGM5YjE0NGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCAyMSBK YW4gMjAxNiAwODowMjo1NCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMzRdIHRjcDogZml4IE5V TEwgZGVyZWYgaW4gdGNwX3Y0X3NlbmRfYWNrKCkKClsgVXBzdHJlYW0gY29tbWl0IGU2MmExMjNi OGVmN2M1ZGM0ZGIyYzE2MzgzZDUwNjg2MGFkMjFiNDcgXQoKTmVhbCByZXBvcnRlZCBjcmFzaGVz IHdpdGggdGhpcyBzdGFjayB0cmFjZSA6CgogUklQOiAwMDEwOls8ZmZmZmZmZmY4YzU3MjMxYj5d IHRjcF92NF9zZW5kX2FjaysweDQxLzB4MjBmCi4uLgogQ1IyOiAwMDAwMDAwMDAwMDAwMDE4IENS MzogMDAwMDAwMDQ0MDA1YzAwMCBDUjQ6IDAwMDAwMDAwMDAxNDI3ZTAKLi4uCiAgWzxmZmZmZmZm ZjhjNTcyNThlPl0gdGNwX3Y0X3JlcXNrX3NlbmRfYWNrKzB4YTUvMHhiNAogIFs8ZmZmZmZmZmY4 YzFhN2NhYT5dIHRjcF9jaGVja19yZXErMHgyZWEvMHgzZTAKICBbPGZmZmZmZmZmOGMxOWU0MjA+ XSB0Y3BfcmN2X3N0YXRlX3Byb2Nlc3MrMHg4NTAvMHgyNTAwCiAgWzxmZmZmZmZmZjhjMWE2ZDIx Pl0gdGNwX3Y0X2RvX3JjdisweDE0MS8weDMzMAogIFs8ZmZmZmZmZmY4YzU2Y2RiMj5dIHNrX2Jh Y2tsb2dfcmN2KzB4MjEvMHgzMAogIFs8ZmZmZmZmZmY4YzA5OGJiZD5dIHRjcF9yZWN2bXNnKzB4 NzVkLzB4ZjkwCiAgWzxmZmZmZmZmZjhjMGE4NzAwPl0gaW5ldF9yZWN2bXNnKzB4ODAvMHhhMAog IFs8ZmZmZmZmZmY4YzE3NjIzZT5dIHNvY2tfYWlvX3JlYWQrMHhlZS8weDExMAogIFs8ZmZmZmZm ZmY4YzA2NmZjZj5dIGRvX3N5bmNfcmVhZCsweDZmLzB4YTAKICBbPGZmZmZmZmZmOGMwNjczYTE+ XSBTeVNfcmVhZCsweDFlMS8weDI5MAogIFs8ZmZmZmZmZmY4YzVjYTI2Mj5dIHN5c3RlbV9jYWxs X2Zhc3RwYXRoKzB4MTYvMHgxYgoKVGhlIHByb2JsZW0gaGVyZSBpcyB0aGUgc2tiIHdlIHByb3Zp ZGUgdG8gdGNwX3Y0X3NlbmRfYWNrKCkgaGFkIHRvCmJlIHBhcmtlZCBpbiB0aGUgYmFja2xvZyBv ZiBhIG5ldyBUQ1AgZmFzdG9wZW4gY2hpbGQgYmVjYXVzZSB0aGlzIGNoaWxkCndhcyBvd25lZCBi eSB0aGUgdXNlciBhdCB0aGUgdGltZSBhbiBvdXQgb2Ygd2luZG93IHBhY2tldCBhcnJpdmVkLgoK QmVmb3JlIHF1ZXVpbmcgYSBwYWNrZXQsIFRDUCBoYXMgdG8gc2V0IHNrYi0+ZGV2IHRvIE5VTEwg YXMgdGhlIGRldmljZQpjb3VsZCBkaXNhcHBlYXIgYmVmb3JlIHBhY2tldCBpcyByZW1vdmVkIGZy b20gdGhlIHF1ZXVlLgoKRml4IHRoaXMgaXNzdWUgYnkgdXNpbmcgdGhlIG5ldCBwb2ludGVyIHBy b3ZpZGVkIGJ5IHRoZSBzb2NrZXQgKGJlaW5nIGEKdGltZXdhaXQgb3IgYSByZXF1ZXN0IHNvY2tl dCkuCgpJUHY2IGlzIGltbXVuZSB0byB0aGUgYnVnIDogdGNwX3Y2X3NlbmRfcmVzcG9uc2UoKSBh bHJlYWR5IGdldHMgdGhlIG5ldApwb2ludGVyIGZyb20gdGhlIHNvY2tldCBpZiBwcm92aWRlZC4K CkZpeGVzOiAxNjhhOGY1ODA1OWEgKCJ0Y3A6IFRDUCBGYXN0IE9wZW4gU2VydmVyIC0gbWFpbiBj b2RlIHBhdGgiKQpSZXBvcnRlZC1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6 IEplcnJ5IENodSA8aGtjaHVAZ29vZ2xlLmNvbT4KQ2M6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bn b29nbGUuY29tPgpBY2tlZC1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvaXB2NC90Y3BfaXB2NC5jIHwgMTMgKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQs IDggaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90 Y3BfaXB2NC5jIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCBjZDE4YzNkLi4xM2I5MmQ1IDEw MDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaXB2NC5jCisrKyBiL25ldC9pcHY0L3RjcF9pcHY0LmMK QEAgLTcwNSw3ICs3MDUsOCBAQCByZWxlYXNlX3NrMToKICAgIG91dHNpZGUgc29ja2V0IGNvbnRl eHQgaXMgdWdseSwgY2VydGFpbmx5LiBXaGF0IGNhbiBJIGRvPwogICovCiAKLXN0YXRpYyB2b2lk IHRjcF92NF9zZW5kX2FjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgc2VxLCB1MzIgYWNrLAor c3RhdGljIHZvaWQgdGNwX3Y0X3NlbmRfYWNrKHN0cnVjdCBuZXQgKm5ldCwKKwkJCSAgICBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgc2VxLCB1MzIgYWNrLAogCQkJICAgIHUzMiB3aW4sIHUzMiB0 c3ZhbCwgdTMyIHRzZWNyLCBpbnQgb2lmLAogCQkJICAgIHN0cnVjdCB0Y3BfbWQ1c2lnX2tleSAq a2V5LAogCQkJICAgIGludCByZXBseV9mbGFncywgdTggdG9zKQpAQCAtNzIwLDcgKzcyMSw2IEBA IHN0YXRpYyB2b2lkIHRjcF92NF9zZW5kX2FjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgc2Vx LCB1MzIgYWNrLAogCQkJXTsKIAl9IHJlcDsKIAlzdHJ1Y3QgaXBfcmVwbHlfYXJnIGFyZzsKLQlz dHJ1Y3QgbmV0ICpuZXQgPSBkZXZfbmV0KHNrYl9kc3Qoc2tiKS0+ZGV2KTsKIAogCW1lbXNldCgm cmVwLnRoLCAwLCBzaXplb2Yoc3RydWN0IHRjcGhkcikpOwogCW1lbXNldCgmYXJnLCAwLCBzaXpl b2YoYXJnKSk7CkBAIC03ODIsNyArNzgyLDggQEAgc3RhdGljIHZvaWQgdGNwX3Y0X3RpbWV3YWl0 X2FjayhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJc3RydWN0IGluZXRf dGltZXdhaXRfc29jayAqdHcgPSBpbmV0X3R3c2soc2spOwogCXN0cnVjdCB0Y3BfdGltZXdhaXRf c29jayAqdGNwdHcgPSB0Y3BfdHdzayhzayk7CiAKLQl0Y3BfdjRfc2VuZF9hY2soc2tiLCB0Y3B0 dy0+dHdfc25kX254dCwgdGNwdHctPnR3X3Jjdl9ueHQsCisJdGNwX3Y0X3NlbmRfYWNrKHNvY2tf bmV0KHNrKSwgc2tiLAorCQkJdGNwdHctPnR3X3NuZF9ueHQsIHRjcHR3LT50d19yY3Zfbnh0LAog CQkJdGNwdHctPnR3X3Jjdl93bmQgPj4gdHctPnR3X3Jjdl93c2NhbGUsCiAJCQl0Y3BfdGltZV9z dGFtcCArIHRjcHR3LT50d190c19vZmZzZXQsCiAJCQl0Y3B0dy0+dHdfdHNfcmVjZW50LApAQCAt ODAxLDggKzgwMiwxMCBAQCBzdGF0aWMgdm9pZCB0Y3BfdjRfcmVxc2tfc2VuZF9hY2soc3RydWN0 IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCS8qIHNrLT5za19zdGF0ZSA9PSBUQ1Bf TElTVEVOIC0+IGZvciByZWd1bGFyIFRDUF9TWU5fUkVDVgogCSAqIHNrLT5za19zdGF0ZSA9PSBU Q1BfU1lOX1JFQ1YgLT4gZm9yIEZhc3QgT3Blbi4KIAkgKi8KLQl0Y3BfdjRfc2VuZF9hY2soc2ti LCAoc2stPnNrX3N0YXRlID09IFRDUF9MSVNURU4pID8KLQkJCXRjcF9yc2socmVxKS0+c250X2lz biArIDEgOiB0Y3Bfc2soc2spLT5zbmRfbnh0LAorCXUzMiBzZXEgPSAoc2stPnNrX3N0YXRlID09 IFRDUF9MSVNURU4pID8gdGNwX3JzayhyZXEpLT5zbnRfaXNuICsgMSA6CisJCQkJCSAgICAgdGNw X3NrKHNrKS0+c25kX254dDsKKworCXRjcF92NF9zZW5kX2Fjayhzb2NrX25ldChzayksIHNrYiwg c2VxLAogCQkJdGNwX3JzayhyZXEpLT5yY3Zfbnh0LCByZXEtPnJjdl93bmQsCiAJCQl0Y3BfdGlt ZV9zdGFtcCwKIAkJCXJlcS0+dHNfcmVjZW50LAotLSAKMi40LjEKCgpGcm9tIGE4YjE5ZWMyMjU0 ZmQ3YzRkOWM5ZDMyYjZiYmNmZGI3YTVhZDUwYWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogU3VuLCAyNCBKYW4g MjAxNiAxMzo1Mzo1MCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMzRdIGFmX3VuaXg6IGZpeCBz dHJ1Y3QgcGlkIG1lbW9yeSBsZWFrCgpbIFVwc3RyZWFtIGNvbW1pdCBmYTBkYzA0ZGYyNTliYTJk ZjNjZTE5MjBlOTY5MGM3ODQyZjhmYTRiIF0KCkRtaXRyeSByZXBvcnRlZCBhIHN0cnVjdCBwaWQg bGVhayBkZXRlY3RlZCBieSBhIHN5emthbGxlciBwcm9ncmFtLgoKQnVnIGhhcHBlbnMgaW4gdW5p eF9zdHJlYW1fcmVjdm1zZygpIHdoZW4gd2UgYnJlYWsgdGhlIGxvb3Agd2hlbiBhCnNpZ25hbCBp cyBwZW5kaW5nLCB3aXRob3V0IHByb3Blcmx5IHJlbGVhc2luZyBzY20uCgpGaXhlczogYjNjYTli MDJiMDA3ICgibmV0OiBmaXggbXVsdGl0aHJlYWRlZCBzaWduYWwgaGFuZGxpbmcgaW4gdW5peCBy ZWN2IHJvdXRpbmVzIikKUmVwb3J0ZWQtYnk6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpD YzogUmFpbmVyIFdlaWt1c2F0IDxyd2Vpa3VzYXRAbW9iaWxlYWN0aXZlZGVmZW5zZS5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvdW5peC9hZl91bml4LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoK ZGlmZiAtLWdpdCBhL25ldC91bml4L2FmX3VuaXguYyBiL25ldC91bml4L2FmX3VuaXguYwppbmRl eCBjYjNhMDFhLi5jNzQxZDgzIDEwMDY0NAotLS0gYS9uZXQvdW5peC9hZl91bml4LmMKKysrIGIv bmV0L3VuaXgvYWZfdW5peC5jCkBAIC0yMTMxLDYgKzIxMzEsNyBAQCBhZ2FpbjoKIAogCQkJaWYg KHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7CiAJCQkJZXJyID0gc29ja19pbnRyX2Vycm5vKHRp bWVvKTsKKwkJCQlzY21fZGVzdHJveSgmc2NtKTsKIAkJCQlnb3RvIG91dDsKIAkJCX0KIAotLSAK Mi40LjEKCgpGcm9tIDhmMDc3YTdhNDI4ZDQ1N2MxMmExMGYwZmMxY2ZkMTVkNTc2NTFjNTkgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5uZXNA c3RyZXNzaW5kdWt0aW9uLm9yZz4KRGF0ZTogRnJpLCAyMiBKYW4gMjAxNiAwMTozOTo0MyArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMDUvMzRdIHBwdHA6IGZpeCBpbGxlZ2FsIG1lbW9yeSBhY2Nlc3Mg Y2F1c2VkIGJ5IG11bHRpcGxlCiBiaW5kKClzCgpbIFVwc3RyZWFtIGNvbW1pdCA5YTM2OGFmZjlj YjM3MDI5OGZhMDJmZWVmZmE4NjFmMmRiNDk3YzE4IF0KClNldmVyYWwgdGltZXMgYWxyZWFkeSB0 aGlzIGhhcyBiZWVuIHJlcG9ydGVkIGFzIGthc2FuIHJlcG9ydHMgY2F1c2VkIGJ5CnN5emthbGxl ciBhbmQgdHJpbml0eSBhbmQgcGVvcGxlIGFsd2F5cyBsb29rZWQgYXQgUkNVIHJhY2VzLCBidXQg aXQgaXMKbXVjaCBtb3JlIHNpbXBsZS4gOikKCkluIGNhc2Ugd2UgYmluZCBhIHBwdHAgc29ja2V0 IG11bHRpcGxlIHRpbWVzLCB3ZSBzaW1wbHkgYWRkIGl0IHRvCnRoZSBjYWxsaWRfc29jayBsaXN0 IGJ1dCBkb24ndCByZW1vdmUgdGhlIG9sZCBiaW5kaW5nLiBUaHVzIHRoZSBvbGQKc29ja2V0IHN0 YXlzIGluIHRoZSBidWNrZXQgd2l0aCB1bnVzZWQgY2FsbF9pZCBpbmRleGVzIGFuZCBkb2Vzbid0 IGdldApjbGVhbmVkIHVwLiBUaGlzIGNhdXNlcyB2YXJpb3VzIGZvcm1zIG9mIGthc2FuIHJlcG9y dHMgd2hpY2ggd2VyZSBoYXJkCnRvIHBpbnBvaW50LgoKU2ltcGx5IGRvbid0IGFsbG93IG11bHRp cGxlIGJpbmRzIGFuZCBjb3JyZWN0IGVycm9yIGhhbmRsaW5nIGluCnBwdHBfYmluZC4gQWxzbyBr ZWVwIHNrX3N0YXRlIGJpdHMgaW4gcGxhY2UgaW4gcHB0cF9jb25uZWN0LgoKRml4ZXM6IDAwOTU5 YWRlMzZhY2FkICgiUFBUUDogUFBQIG92ZXIgSVB2NCAoUG9pbnQtdG8tUG9pbnQgVHVubmVsaW5n IFByb3RvY29sKSIpCkNjOiBEbWl0cnkgS296bG92IDx4ZWJAbWFpbC5ydT4KQ2M6IFNhc2hhIExl dmluIDxzYXNoYS5sZXZpbkBvcmFjbGUuY29tPgpDYzogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBn b29nbGUuY29tPgpSZXBvcnRlZC1ieTogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBnb29nbGUuY29t PgpDYzogRGF2ZSBKb25lcyA8ZGF2ZWpAY29kZW1vbmtleS5vcmcudWs+ClJlcG9ydGVkLWJ5OiBE YXZlIEpvbmVzIDxkYXZlakBjb2RlbW9ua2V5Lm9yZy51az4KU2lnbmVkLW9mZi1ieTogSGFubmVz IEZyZWRlcmljIFNvd2EgPGhhbm5lc0BzdHJlc3NpbmR1a3Rpb24ub3JnPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv cHBwL3BwdHAuYyB8IDM0ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9wcHAvcHB0cC5jIGIvZHJpdmVycy9uZXQvcHBwL3BwdHAuYwppbmRleCAw YmFjYWJmLi5iMzUxOTljIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9wcHAvcHB0cC5jCisrKyBi L2RyaXZlcnMvbmV0L3BwcC9wcHRwLmMKQEAgLTEzMSwyNCArMTMxLDI3IEBAIHN0YXRpYyBpbnQg bG9va3VwX2NoYW5fZHN0KHUxNiBjYWxsX2lkLCBfX2JlMzIgZF9hZGRyKQogCXJldHVybiBpIDwg TUFYX0NBTExJRDsKIH0KIAotc3RhdGljIGludCBhZGRfY2hhbihzdHJ1Y3QgcHBwb3hfc29jayAq c29jaykKK3N0YXRpYyBpbnQgYWRkX2NoYW4oc3RydWN0IHBwcG94X3NvY2sgKnNvY2ssCisJCSAg ICBzdHJ1Y3QgcHB0cF9hZGRyICpzYSkKIHsKIAlzdGF0aWMgaW50IGNhbGxfaWQ7CiAKIAlzcGlu X2xvY2soJmNoYW5fbG9jayk7Ci0JaWYgKCFzb2NrLT5wcm90by5wcHRwLnNyY19hZGRyLmNhbGxf aWQpCXsKKwlpZiAoIXNhLT5jYWxsX2lkKQl7CiAJCWNhbGxfaWQgPSBmaW5kX25leHRfemVyb19i aXQoY2FsbGlkX2JpdG1hcCwgTUFYX0NBTExJRCwgY2FsbF9pZCArIDEpOwogCQlpZiAoY2FsbF9p ZCA9PSBNQVhfQ0FMTElEKSB7CiAJCQljYWxsX2lkID0gZmluZF9uZXh0X3plcm9fYml0KGNhbGxp ZF9iaXRtYXAsIE1BWF9DQUxMSUQsIDEpOwogCQkJaWYgKGNhbGxfaWQgPT0gTUFYX0NBTExJRCkK IAkJCQlnb3RvIG91dF9lcnI7CiAJCX0KLQkJc29jay0+cHJvdG8ucHB0cC5zcmNfYWRkci5jYWxs X2lkID0gY2FsbF9pZDsKLQl9IGVsc2UgaWYgKHRlc3RfYml0KHNvY2stPnByb3RvLnBwdHAuc3Jj X2FkZHIuY2FsbF9pZCwgY2FsbGlkX2JpdG1hcCkpCisJCXNhLT5jYWxsX2lkID0gY2FsbF9pZDsK Kwl9IGVsc2UgaWYgKHRlc3RfYml0KHNhLT5jYWxsX2lkLCBjYWxsaWRfYml0bWFwKSkgewogCQln b3RvIG91dF9lcnI7CisJfQogCi0Jc2V0X2JpdChzb2NrLT5wcm90by5wcHRwLnNyY19hZGRyLmNh bGxfaWQsIGNhbGxpZF9iaXRtYXApOwotCXJjdV9hc3NpZ25fcG9pbnRlcihjYWxsaWRfc29ja1tz b2NrLT5wcm90by5wcHRwLnNyY19hZGRyLmNhbGxfaWRdLCBzb2NrKTsKKwlzb2NrLT5wcm90by5w cHRwLnNyY19hZGRyID0gKnNhOworCXNldF9iaXQoc2EtPmNhbGxfaWQsIGNhbGxpZF9iaXRtYXAp OworCXJjdV9hc3NpZ25fcG9pbnRlcihjYWxsaWRfc29ja1tzYS0+Y2FsbF9pZF0sIHNvY2spOwog CXNwaW5fdW5sb2NrKCZjaGFuX2xvY2spOwogCiAJcmV0dXJuIDA7CkBAIC00MTcsNyArNDIwLDYg QEAgc3RhdGljIGludCBwcHRwX2JpbmQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2th ZGRyICp1c2VydmFkZHIsCiAJc3RydWN0IHNvY2sgKnNrID0gc29jay0+c2s7CiAJc3RydWN0IHNv Y2thZGRyX3BwcG94ICpzcCA9IChzdHJ1Y3Qgc29ja2FkZHJfcHBwb3ggKikgdXNlcnZhZGRyOwog CXN0cnVjdCBwcHBveF9zb2NrICpwbyA9IHBwcG94X3NrKHNrKTsKLQlzdHJ1Y3QgcHB0cF9vcHQg Km9wdCA9ICZwby0+cHJvdG8ucHB0cDsKIAlpbnQgZXJyb3IgPSAwOwogCiAJaWYgKHNvY2thZGRy X2xlbiA8IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfcHBwb3gpKQpAQCAtNDI1LDEwICs0MjcsMjIg QEAgc3RhdGljIGludCBwcHRwX2JpbmQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2th ZGRyICp1c2VydmFkZHIsCiAKIAlsb2NrX3NvY2soc2spOwogCi0Jb3B0LT5zcmNfYWRkciA9IHNw LT5zYV9hZGRyLnBwdHA7Ci0JaWYgKGFkZF9jaGFuKHBvKSkKKwlpZiAoc2stPnNrX3N0YXRlICYg UFBQT1hfREVBRCkgeworCQllcnJvciA9IC1FQUxSRUFEWTsKKwkJZ290byBvdXQ7CisJfQorCisJ aWYgKHNrLT5za19zdGF0ZSAmIFBQUE9YX0JPVU5EKSB7CiAJCWVycm9yID0gLUVCVVNZOworCQln b3RvIG91dDsKKwl9CisKKwlpZiAoYWRkX2NoYW4ocG8sICZzcC0+c2FfYWRkci5wcHRwKSkKKwkJ ZXJyb3IgPSAtRUJVU1k7CisJZWxzZQorCQlzay0+c2tfc3RhdGUgfD0gUFBQT1hfQk9VTkQ7CiAK K291dDoKIAlyZWxlYXNlX3NvY2soc2spOwogCXJldHVybiBlcnJvcjsKIH0KQEAgLTQ5OSw3ICs1 MTMsNyBAQCBzdGF0aWMgaW50IHBwdHBfY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1 Y3Qgc29ja2FkZHIgKnVzZXJ2YWRkciwKIAl9CiAKIAlvcHQtPmRzdF9hZGRyID0gc3AtPnNhX2Fk ZHIucHB0cDsKLQlzay0+c2tfc3RhdGUgPSBQUFBPWF9DT05ORUNURUQ7CisJc2stPnNrX3N0YXRl IHw9IFBQUE9YX0NPTk5FQ1RFRDsKIAogIGVuZDoKIAlyZWxlYXNlX3NvY2soc2spOwotLSAKMi40 LjEKCgpGcm9tIDk0M2IxNzBkNDg3MjAzYjk0Mzk0YzA5OTBhYjRjNWZlYTkwMzM5NWUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxv LmxlaXRuZXJAZ21haWwuY29tPgpEYXRlOiBGcmksIDIyIEphbiAyMDE2IDE4OjI5OjQ5IC0wMjAw ClN1YmplY3Q6IFtQQVRDSCAwNi8zNF0gc2N0cDogYWxsb3cgc2V0dGluZyBTQ1RQX1NBQ0tfSU1N RURJQVRFTFkgYnkgdGhlCiBhcHBsaWNhdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgMjdmN2VkMmIx MWQ0MmFiNmQ3OTZlOTY1MzNjMjA3NmVjMjIwYWZmYyBdCgpUaGlzIHBhdGNoIGV4dGVuZHMgY29t bWl0IGI5M2Q2NDcxNzQ4ZCAoInNjdHA6IGltcGxlbWVudCB0aGUgc2VuZGVyIHNpZGUKZm9yIFNB Q0stSU1NRURJQVRFTFkgZXh0ZW5zaW9uIikgYXMgaXQgZGlkbid0IHdoaXRlIGxpc3QKU0NUUF9T QUNLX0lNTUVESUFURUxZIG9uIHNjdHBfbXNnaGRyX3BhcnNlKCksIGNhdXNpbmcgaXQgdG8gYmUK dW5kZXJzdG9vZCBhcyBhbiBpbnZhbGlkIGZsYWcgYW5kIHJldHVybmluZyAtRUlOVkFMIHRvIHRo ZSBhcHBsaWNhdGlvbi4KCk5vdGUgdGhhdCB0aGUgYWN0dWFsIGhhbmRsaW5nIG9mIHRoZSBmbGFn IGlzIGFscmVhZHkgdGhlcmUgaW4Kc2N0cF9kYXRhbXNnX2Zyb21fdXNlcigpLgoKaHR0cHM6Ly90 b29scy5pZXRmLm9yZy9odG1sL3JmYzcwNTMjc2VjdGlvbi03CgpGaXhlczogYjkzZDY0NzE3NDhk ICgic2N0cDogaW1wbGVtZW50IHRoZSBzZW5kZXIgc2lkZSBmb3IgU0FDSy1JTU1FRElBVEVMWSBl eHRlbnNpb24iKQpTaWduZWQtb2ZmLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vs by5sZWl0bmVyQGdtYWlsLmNvbT4KQWNrZWQtYnk6IFZsYWQgWWFzZXZpY2ggPHZ5YXNldmljaEBn bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvc2N0cC9zb2NrZXQuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3Nv Y2tldC5jCmluZGV4IDc2ZTZlYzYuLjFiODBmMjAgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tl dC5jCisrKyBiL25ldC9zY3RwL3NvY2tldC5jCkBAIC02NjUzLDYgKzY2NTMsNyBAQCBzdGF0aWMg aW50IHNjdHBfbXNnaGRyX3BhcnNlKGNvbnN0IHN0cnVjdCBtc2doZHIgKm1zZywgc2N0cF9jbXNn c190ICpjbXNncykKIAogCQkJaWYgKGNtc2dzLT5zcmluZm8tPnNpbmZvX2ZsYWdzICYKIAkJCSAg ICB+KFNDVFBfVU5PUkRFUkVEIHwgU0NUUF9BRERSX09WRVIgfAorCQkJICAgICAgU0NUUF9TQUNL X0lNTUVESUFURUxZIHwKIAkJCSAgICAgIFNDVFBfQUJPUlQgfCBTQ1RQX0VPRikpCiAJCQkJcmV0 dXJuIC1FSU5WQUw7CiAJCQlicmVhazsKQEAgLTY2NzYsNiArNjY3Nyw3IEBAIHN0YXRpYyBpbnQg c2N0cF9tc2doZHJfcGFyc2UoY29uc3Qgc3RydWN0IG1zZ2hkciAqbXNnLCBzY3RwX2Ntc2dzX3Qg KmNtc2dzKQogCiAJCQlpZiAoY21zZ3MtPnNpbmZvLT5zbmRfZmxhZ3MgJgogCQkJICAgIH4oU0NU UF9VTk9SREVSRUQgfCBTQ1RQX0FERFJfT1ZFUiB8CisJCQkgICAgICBTQ1RQX1NBQ0tfSU1NRURJ QVRFTFkgfAogCQkJICAgICAgU0NUUF9BQk9SVCB8IFNDVFBfRU9GKSkKIAkJCQlyZXR1cm4gLUVJ TlZBTDsKIAkJCWJyZWFrOwotLSAKMi40LjEKCgpGcm9tIDIzMTZlODJkMjU1YTYxMTBjMzVhZmI3 Y2JiZjBkMDFkMDhmMDgzYzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBhcnRoYXNh cmF0aHkgQmh1dmFyYWdhbiA8cGFydGhhc2FyYXRoeS5iaHV2YXJhZ2FuQGVyaWNzc29uLmNvbT4K RGF0ZTogV2VkLCAyNyBKYW4gMjAxNiAxMTozNTo1OSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDcv MzRdIHRpcGM6IGZpeCBjb25uZWN0aW9uIGFib3J0IGR1cmluZyBzdWJzY3JpcHRpb24gY2FuY2Vs CgpbIFVwc3RyZWFtIGNvbW1pdCA0ZDVjZmNiYTJmNmVjNDk0ZDg4MTBiOWUzYzBhN2IwNjI1NWM4 MDY3IF0KCkluICdjb21taXQgN2ZlODA5N2NlZjVmICgidGlwYzogZml4IG51bGxwb2ludGVyIGJ1 ZyB3aGVuIHN1YnNjcmliaW5nCnRvIGV2ZW50cyIpJywgd2UgdGVybWluYXRlIHRoZSBjb25uZWN0 aW9uIGlmIHRoZSBzdWJzY3JpcHRpb24KY3JlYXRpb24gZmFpbHMuCkluIHRoZSBzYW1lIGNvbW1p dCwgdGhlIHN1YnNjcmlwdGlvbiBjcmVhdGlvbiByZXN1bHQgd2FzIGJhc2VkIG9uCnRoZSB2YWx1 ZSBvZiB0aGUgc3Vic2NyaXB0aW9uIHBvaW50ZXIgKHNldCBpbiB0aGUgZnVuY3Rpb24pIGluc3Rl YWQKb2YgdGhlIHJldHVybiBjb2RlLgoKVW5mb3J0dW5hdGVseSwgdGhlIHNhbWUgZnVuY3Rpb24g dGlwY19zdWJzY3JwX2NyZWF0ZSgpIGhhbmRsZXMKc3Vic2NyaXB0aW9uIGNhbmNlbCByZXF1ZXN0 LiBGb3IgYSBzdWJzY3JpcHRpb24gY2FuY2VsbGF0aW9uIHJlcXVlc3QsCnRoZSBzdWJzY3JpcHRp b24gcG9pbnRlciBjYW5ub3QgYmUgc2V0LiBUaHVzIGlmIGEgc3Vic2NyaWJlciBoYXMKc2V2ZXJh bCBzdWJzY3JpcHRpb25zIGFuZCBjYW5jZWxzIGFueSBvZiB0aGVtLCB0aGUgY29ubmVjdGlvbiBp cwp0ZXJtaW5hdGVkLgoKSW4gdGhpcyBjb21taXQsIHdlIHRlcm1pbmF0ZSB0aGUgY29ubmVjdGlv biBiYXNlZCBvbiB0aGUgcmV0dXJuIHZhbHVlCm9mIHRpcGNfc3Vic2NycF9jcmVhdGUoKS4KRml4 ZXM6IGNvbW1pdCA3ZmU4MDk3Y2VmNWYgKCJ0aXBjOiBmaXggbnVsbHBvaW50ZXIgYnVnIHdoZW4g c3Vic2NyaWJpbmcgdG8gZXZlbnRzIikKClJldmlld2VkLWJ5OiAgSm9uIE1hbG95IDxqb24ubWFs b3lAZXJpY3Nzb24uY29tPgpTaWduZWQtb2ZmLWJ5OiBQYXJ0aGFzYXJhdGh5IEJodXZhcmFnYW4g PHBhcnRoYXNhcmF0aHkuYmh1dmFyYWdhbkBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9zdWJzY3Iu YyB8IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9zdWJzY3IuYyBiL25ldC90aXBjL3N1YnNjci5j CmluZGV4IDFjMTQ3YzguLjk0OGYzMTYgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL3N1YnNjci5jCisr KyBiL25ldC90aXBjL3N1YnNjci5jCkBAIC0zMDIsMTEgKzMwMiwxMCBAQCBzdGF0aWMgdm9pZCBz dWJzY3JfY29ubl9tc2dfZXZlbnQoc3RydWN0IG5ldCAqbmV0LCBpbnQgY29uaWQsCiAJc3RydWN0 IHRpcGNfbmV0ICp0biA9IG5ldF9nZW5lcmljKG5ldCwgdGlwY19uZXRfaWQpOwogCiAJc3Bpbl9s b2NrX2JoKCZzdWJzY3JpYmVyLT5sb2NrKTsKLQlzdWJzY3Jfc3Vic2NyaWJlKG5ldCwgKHN0cnVj dCB0aXBjX3N1YnNjciAqKWJ1Ziwgc3Vic2NyaWJlciwgJnN1Yik7Ci0JaWYgKHN1YikKLQkJdGlw Y19uYW1ldGJsX3N1YnNjcmliZShzdWIpOwotCWVsc2UKKwlpZiAoc3Vic2NyX3N1YnNjcmliZShu ZXQsIChzdHJ1Y3QgdGlwY19zdWJzY3IgKilidWYsIHN1YnNjcmliZXIsICZzdWIpKQogCQl0aXBj X2Nvbm5fdGVybWluYXRlKHRuLT50b3BzcnYsIHN1YnNjcmliZXItPmNvbmlkKTsKKwllbHNlCisJ CXRpcGNfbmFtZXRibF9zdWJzY3JpYmUoc3ViKTsKIAlzcGluX3VubG9ja19iaCgmc3Vic2NyaWJl ci0+bG9jayk7CiB9CiAKLS0gCjIuNC4xCgoKRnJvbSBiNDA3ZmRiYjQ0YjNiYWQ0YTk5ZjQ5NWYx NDM2MzA2MjMwYmQ4NmRjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2NoaW1t ZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+CkRhdGU6IFdlZCwgMjcgSmFuIDIwMTYgMTU6MTY6NDMg KzAxMDAKU3ViamVjdDogW1BBVENIIDA4LzM0XSBzd2l0Y2hkZXY6IFJlcXVpcmUgUlROTCBtdXRl eCB0byBiZSBoZWxkIHdoZW4gc2VuZGluZwogRkRCIG5vdGlmaWNhdGlvbnMKClsgVXBzdHJlYW0g Y29tbWl0IDRmMmM2YWU1YzY0YzM1M2ZiMWIwNDI1ZTQ3NDdlNTYwM2ZlYWRiYTEgXQoKV2hlbiBz d2l0Y2hkZXYgZHJpdmVycyBwcm9jZXNzIEZEQiBub3RpZmljYXRpb25zIGZyb20gdGhlIHVuZGVy bHlpbmcKZGV2aWNlIHRoZXkgcmVzb2x2ZSB0aGUgbmV0ZGV2IHRvIHdoaWNoIHRoZSBlbnRyeSBw b2ludHMgdG8gYW5kIG5vdGlmeQp0aGUgYnJpZGdlIHVzaW5nIHRoZSBzd2l0Y2hkZXYgbm90aWZp ZXIuCgpIb3dldmVyLCBzaW5jZSB0aGUgUlROTCBtdXRleCBpcyBub3QgaGVsZCB0aGVyZSBpcyBu b3RoaW5nIHByZXZlbnRpbmcKdGhlIG5ldGRldiBmcm9tIGRpc2FwcGVhcmluZyBpbiB0aGUgbWlk ZGxlLCB3aGljaCB3aWxsIGNhdXNlCmJyX3N3aXRjaGRldl9ldmVudCgpIHRvIGRlcmVmZXJlbmNl IGEgbm9uLWV4aXN0aW5nIG5ldGRldi4KCk1ha2Ugc3dpdGNoZGV2IGRyaXZlcnMgaG9sZCB0aGUg bG9jayBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQpub3RpZmljYXRpb24gcHJvY2Vzc2luZyBzZXNz aW9uIGFuZCByZWxlYXNlIGl0IG9uY2UgaXQgZW5kcywgYWZ0ZXIKbm90aWZ5aW5nIHRoZSBicmlk Z2UuCgpBbHNvLCByZW1vdmUgc3dpdGNoZGV2X211dGV4IGFuZCBmZGJfbG9jaywgYXMgdGhleSBh cmUgbm8gbG9uZ2VyIG5lZWRlZAp3aGVuIFJUTkwgbXV0ZXggaXMgaGVsZC4KCkZpeGVzOiAwM2Jm MGMyODEyMzQgKCJzd2l0Y2hkZXY6IGludHJvZHVjZSBzd2l0Y2hkZXYgbm90aWZpZXIiKQpTaWdu ZWQtb2ZmLWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYt Ynk6IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv cm9ja2VyL3JvY2tlci5jIHwgIDIgKysKIG5ldC9icmlkZ2UvYnIuYyAgICAgICAgICAgICAgICAg ICAgICB8ICAzICstLQogbmV0L3N3aXRjaGRldi9zd2l0Y2hkZXYuYyAgICAgICAgICAgIHwgMTUg KysrKysrKystLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDkgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tl ci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tlci5jCmluZGV4IDczYjZmYzIu LjRmZWRmN2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JvY2tlci9yb2NrZXIu YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9yb2NrZXIvcm9ja2VyLmMKQEAgLTMzODQsMTIg KzMzODQsMTQgQEAgc3RhdGljIHZvaWQgcm9ja2VyX3BvcnRfZmRiX2xlYXJuX3dvcmsoc3RydWN0 IHdvcmtfc3RydWN0ICp3b3JrKQogCWluZm8uYWRkciA9IGx3LT5hZGRyOwogCWluZm8udmlkID0g bHctPnZpZDsKIAorCXJ0bmxfbG9jaygpOwogCWlmIChsZWFybmVkICYmIHJlbW92aW5nKQogCQlj YWxsX25ldGRldl9zd2l0Y2hfbm90aWZpZXJzKE5FVERFVl9TV0lUQ0hfRkRCX0RFTCwKIAkJCQkJ ICAgICBsdy0+ZGV2LCAmaW5mby5pbmZvKTsKIAllbHNlIGlmIChsZWFybmVkICYmICFyZW1vdmlu ZykKIAkJY2FsbF9uZXRkZXZfc3dpdGNoX25vdGlmaWVycyhORVRERVZfU1dJVENIX0ZEQl9BREQs CiAJCQkJCSAgICAgbHctPmRldiwgJmluZm8uaW5mbyk7CisJcnRubF91bmxvY2soKTsKIAogCWtm cmVlKHdvcmspOwogfQpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9ici5jIGIvbmV0L2JyaWRnZS9i ci5jCmluZGV4IDAyYzI0Y2YuLmM3MmUwMWMgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnIuYwor KysgYi9uZXQvYnJpZGdlL2JyLmMKQEAgLTEyMSw2ICsxMjEsNyBAQCBzdGF0aWMgc3RydWN0IG5v dGlmaWVyX2Jsb2NrIGJyX2RldmljZV9ub3RpZmllciA9IHsKIAkubm90aWZpZXJfY2FsbCA9IGJy X2RldmljZV9ldmVudAogfTsKIAorLyogY2FsbGVkIHdpdGggUlROTCAqLwogc3RhdGljIGludCBi cl9uZXRkZXZfc3dpdGNoX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqdW51c2VkLAogCQkJ CSAgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqcHRyKQogewpAQCAtMTMwLDcgKzEzMSw2IEBA IHN0YXRpYyBpbnQgYnJfbmV0ZGV2X3N3aXRjaF9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sg KnVudXNlZCwKIAlzdHJ1Y3QgbmV0ZGV2X3N3aXRjaF9ub3RpZmllcl9mZGJfaW5mbyAqZmRiX2lu Zm87CiAJaW50IGVyciA9IE5PVElGWV9ET05FOwogCi0JcnRubF9sb2NrKCk7CiAJcCA9IGJyX3Bv cnRfZ2V0X3J0bmwoZGV2KTsKIAlpZiAoIXApCiAJCWdvdG8gb3V0OwpAQCAtMTU1LDcgKzE1NSw2 IEBAIHN0YXRpYyBpbnQgYnJfbmV0ZGV2X3N3aXRjaF9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxv Y2sgKnVudXNlZCwKIAl9CiAKIG91dDoKLQlydG5sX3VubG9jaygpOwogCXJldHVybiBlcnI7CiB9 CiAKZGlmZiAtLWdpdCBhL25ldC9zd2l0Y2hkZXYvc3dpdGNoZGV2LmMgYi9uZXQvc3dpdGNoZGV2 L3N3aXRjaGRldi5jCmluZGV4IDA1NTQ1M2QuLmE4ZGJlODAgMTAwNjQ0Ci0tLSBhL25ldC9zd2l0 Y2hkZXYvc3dpdGNoZGV2LmMKKysrIGIvbmV0L3N3aXRjaGRldi9zd2l0Y2hkZXYuYwpAQCAtMTUs NiArMTUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvbm90 aWZpZXIuaD4KICNpbmNsdWRlIDxsaW51eC9uZXRkZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9y dG5ldGxpbmsuaD4KICNpbmNsdWRlIDxuZXQvaXBfZmliLmg+CiAjaW5jbHVkZSA8bmV0L3N3aXRj aGRldi5oPgogCkBAIC02NCw3ICs2NSw2IEBAIGludCBuZXRkZXZfc3dpdGNoX3BvcnRfc3RwX3Vw ZGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1OCBzdGF0ZSkKIH0KIEVYUE9SVF9TWU1CT0xf R1BMKG5ldGRldl9zd2l0Y2hfcG9ydF9zdHBfdXBkYXRlKTsKIAotc3RhdGljIERFRklORV9NVVRF WChuZXRkZXZfc3dpdGNoX211dGV4KTsKIHN0YXRpYyBSQVdfTk9USUZJRVJfSEVBRChuZXRkZXZf c3dpdGNoX25vdGlmX2NoYWluKTsKIAogLyoqCkBAIC03OSw5ICs3OSw5IEBAIGludCByZWdpc3Rl cl9uZXRkZXZfc3dpdGNoX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpCiB7CiAJ aW50IGVycjsKIAotCW11dGV4X2xvY2soJm5ldGRldl9zd2l0Y2hfbXV0ZXgpOworCXJ0bmxfbG9j aygpOwogCWVyciA9IHJhd19ub3RpZmllcl9jaGFpbl9yZWdpc3RlcigmbmV0ZGV2X3N3aXRjaF9u b3RpZl9jaGFpbiwgbmIpOwotCW11dGV4X3VubG9jaygmbmV0ZGV2X3N3aXRjaF9tdXRleCk7CisJ cnRubF91bmxvY2soKTsKIAlyZXR1cm4gZXJyOwogfQogRVhQT1JUX1NZTUJPTF9HUEwocmVnaXN0 ZXJfbmV0ZGV2X3N3aXRjaF9ub3RpZmllcik7CkBAIC05Nyw5ICs5Nyw5IEBAIGludCB1bnJlZ2lz dGVyX25ldGRldl9zd2l0Y2hfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYikKIHsK IAlpbnQgZXJyOwogCi0JbXV0ZXhfbG9jaygmbmV0ZGV2X3N3aXRjaF9tdXRleCk7CisJcnRubF9s b2NrKCk7CiAJZXJyID0gcmF3X25vdGlmaWVyX2NoYWluX3VucmVnaXN0ZXIoJm5ldGRldl9zd2l0 Y2hfbm90aWZfY2hhaW4sIG5iKTsKLQltdXRleF91bmxvY2soJm5ldGRldl9zd2l0Y2hfbXV0ZXgp OworCXJ0bmxfdW5sb2NrKCk7CiAJcmV0dXJuIGVycjsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHVu cmVnaXN0ZXJfbmV0ZGV2X3N3aXRjaF9ub3RpZmllcik7CkBAIC0xMTMsMTYgKzExMywxNyBAQCBF WFBPUlRfU1lNQk9MX0dQTCh1bnJlZ2lzdGVyX25ldGRldl9zd2l0Y2hfbm90aWZpZXIpOwogICoJ Q2FsbCBhbGwgbmV0d29yayBub3RpZmllciBibG9ja3MuIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBi eSBkcml2ZXIKICAqCXdoZW4gaXQgbmVlZHMgdG8gcHJvcGFnYXRlIGhhcmR3YXJlIGV2ZW50Lgog ICoJUmV0dXJuIHZhbHVlcyBhcmUgc2FtZSBhcyBmb3IgYXRvbWljX25vdGlmaWVyX2NhbGxfY2hh aW4oKS4KKyAqCXJ0bmxfbG9jayBtdXN0IGJlIGhlbGQuCiAgKi8KIGludCBjYWxsX25ldGRldl9z d2l0Y2hfbm90aWZpZXJzKHVuc2lnbmVkIGxvbmcgdmFsLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 LAogCQkJCSBzdHJ1Y3QgbmV0ZGV2X3N3aXRjaF9ub3RpZmllcl9pbmZvICppbmZvKQogewogCWlu dCBlcnI7CiAKKwlBU1NFUlRfUlROTCgpOworCiAJaW5mby0+ZGV2ID0gZGV2OwotCW11dGV4X2xv Y2soJm5ldGRldl9zd2l0Y2hfbXV0ZXgpOwogCWVyciA9IHJhd19ub3RpZmllcl9jYWxsX2NoYWlu KCZuZXRkZXZfc3dpdGNoX25vdGlmX2NoYWluLCB2YWwsIGluZm8pOwotCW11dGV4X3VubG9jaygm bmV0ZGV2X3N3aXRjaF9tdXRleCk7CiAJcmV0dXJuIGVycjsKIH0KIEVYUE9SVF9TWU1CT0xfR1BM KGNhbGxfbmV0ZGV2X3N3aXRjaF9ub3RpZmllcnMpOwotLSAKMi40LjEKCgpGcm9tIGJkZDljMjY4 NTJjNzQxZmYxMmIyYTU2M2I3NmY2Y2I1YWNjZmRjNjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAyNyBK YW4gMjAxNiAxMDo1Mjo0MyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMzRdIHRjcDogYmV3YXJl IG9mIGFsaWdubWVudHMgaW4gdGNwX2dldF9pbmZvKCkKClsgVXBzdHJlYW0gY29tbWl0IGZmNWQ3 NDk3NzIwMTg2MDJjNDc1MDliZGMwMDkzZmY3MmFjZDgyZWMgXQoKV2l0aCBzb21lIGNvbWJpbmF0 aW9ucyBvZiB1c2VyIHByb3ZpZGVkIGZsYWdzIGluIG5ldGxpbmsgY29tbWFuZCwKaXQgaXMgcG9z c2libGUgdG8gY2FsbCB0Y3BfZ2V0X2luZm8oKSB3aXRoIGEgYnVmZmVyIHRoYXQgaXMgbm90IDgt Ynl0ZXMKYWxpZ25lZC4KCkl0IGRvZXMgbWF0dGVyIG9uIHNvbWUgYXJjaGVzLCBzbyB3ZSBuZWVk IHRvIHVzZSBwdXRfdW5hbGlnbmVkKCkgdG8Kc3RvcmUgdGhlIHU2NCBmaWVsZHMuCgpDdXJyZW50 IGlwcm91dGUyIHBhY2thZ2UgZG9lcyBub3QgdHJpZ2dlciB0aGlzIHBhcnRpY3VsYXIgaXNzdWUu CgpGaXhlczogMGRmNDhjMjZkODQxICgidGNwOiBhZGQgdGNwaV9ieXRlc19hY2tlZCB0byB0Y3Bf aW5mbyIpCkZpeGVzOiA5NzdjYjBlY2Y4MmUgKCJ0Y3A6IGFkZCBwYWNpbmdfcmF0ZSBpbmZvcm1h dGlvbiBpbnRvIHRjcF9pbmZvIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpl dEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwLmMgfCAxMiArKysrKysrKy0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjQvdGNwLmMgYi9uZXQvaXB2NC90Y3AuYwppbmRleCBiYjJjZTc0Li5iNWY0ZjVjIDEwMDY0 NAotLS0gYS9uZXQvaXB2NC90Y3AuYworKysgYi9uZXQvaXB2NC90Y3AuYwpAQCAtMjc5LDYgKzI3 OSw3IEBACiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9pb2N0bHMu aD4KKyNpbmNsdWRlIDxhc20vdW5hbGlnbmVkLmg+CiAjaW5jbHVkZSA8bmV0L2J1c3lfcG9sbC5o PgogCiBpbnQgc3lzY3RsX3RjcF9maW5fdGltZW91dCBfX3JlYWRfbW9zdGx5ID0gVENQX0ZJTl9U SU1FT1VUOwpAQCAtMjYwMyw2ICsyNjA0LDcgQEAgdm9pZCB0Y3BfZ2V0X2luZm8oc3RydWN0IHNv Y2sgKnNrLCBzdHJ1Y3QgdGNwX2luZm8gKmluZm8pCiAJY29uc3Qgc3RydWN0IGluZXRfY29ubmVj dGlvbl9zb2NrICppY3NrID0gaW5ldF9jc2soc2spOwogCXUzMiBub3cgPSB0Y3BfdGltZV9zdGFt cDsKIAl1bnNpZ25lZCBpbnQgc3RhcnQ7CisJdTY0IHJhdGU2NDsKIAl1MzIgcmF0ZTsKIAogCW1l bXNldChpbmZvLCAwLCBzaXplb2YoKmluZm8pKTsKQEAgLTI2NjUsMTUgKzI2NjcsMTcgQEAgdm9p ZCB0Y3BfZ2V0X2luZm8oc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGNwX2luZm8gKmluZm8pCiAJ aW5mby0+dGNwaV90b3RhbF9yZXRyYW5zID0gdHAtPnRvdGFsX3JldHJhbnM7CiAKIAlyYXRlID0g UkVBRF9PTkNFKHNrLT5za19wYWNpbmdfcmF0ZSk7Ci0JaW5mby0+dGNwaV9wYWNpbmdfcmF0ZSA9 IHJhdGUgIT0gfjBVID8gcmF0ZSA6IH4wVUxMOworCXJhdGU2NCA9IHJhdGUgIT0gfjBVID8gcmF0 ZSA6IH4wVUxMOworCXB1dF91bmFsaWduZWQocmF0ZTY0LCAmaW5mby0+dGNwaV9wYWNpbmdfcmF0 ZSk7CiAKIAlyYXRlID0gUkVBRF9PTkNFKHNrLT5za19tYXhfcGFjaW5nX3JhdGUpOwotCWluZm8t PnRjcGlfbWF4X3BhY2luZ19yYXRlID0gcmF0ZSAhPSB+MFUgPyByYXRlIDogfjBVTEw7CisJcmF0 ZTY0ID0gcmF0ZSAhPSB+MFUgPyByYXRlIDogfjBVTEw7CisJcHV0X3VuYWxpZ25lZChyYXRlNjQs ICZpbmZvLT50Y3BpX21heF9wYWNpbmdfcmF0ZSk7CiAKIAlkbyB7CiAJCXN0YXJ0ID0gdTY0X3N0 YXRzX2ZldGNoX2JlZ2luX2lycSgmdHAtPnN5bmNwKTsKLQkJaW5mby0+dGNwaV9ieXRlc19hY2tl ZCA9IHRwLT5ieXRlc19hY2tlZDsKLQkJaW5mby0+dGNwaV9ieXRlc19yZWNlaXZlZCA9IHRwLT5i eXRlc19yZWNlaXZlZDsKKwkJcHV0X3VuYWxpZ25lZCh0cC0+Ynl0ZXNfYWNrZWQsICZpbmZvLT50 Y3BpX2J5dGVzX2Fja2VkKTsKKwkJcHV0X3VuYWxpZ25lZCh0cC0+Ynl0ZXNfcmVjZWl2ZWQsICZp bmZvLT50Y3BpX2J5dGVzX3JlY2VpdmVkKTsKIAl9IHdoaWxlICh1NjRfc3RhdHNfZmV0Y2hfcmV0 cnlfaXJxKCZ0cC0+c3luY3AsIHN0YXJ0KSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh0Y3BfZ2V0 X2luZm8pOwotLSAKMi40LjEKCgpGcm9tIDA4MjJiNmUzYzE4OWY4YzQ3OTc5ZmY1OGU2ZmJmMzdk YzMwOWNhMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBhb2xvIEFiZW5pIDxwYWJl bmlAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCAyOSBKYW4gMjAxNiAxMjozMDoxOSArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMTAvMzRdIGlwdjY6IGVuZm9yY2UgZmxvd2k2X29pZiB1c2FnZSBpbiBpcDZf ZHN0X2xvb2t1cF90YWlsKCkKClsgVXBzdHJlYW0gY29tbWl0IDZmMjFjOTZhNzhiODM1MjU5NTQ2 ZDhmM2ZiNGVkZmYwZjY1MWQ0NzggXQoKVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgaXA2 X2RzdF9sb29rdXBfdGFpbCBiYXNpY2FsbHkKaWdub3JlIHRoZSBlZ3Jlc3MgaWZpbmRleCBtYXRj aDogaWYgdGhlIHNhZGRyIGlzIHNldCwKaXA2X3JvdXRlX291dHB1dCgpIHB1cnBvc2VmdWxseSBp Z25vcmVzIGZsb3dpNl9vaWYsIGR1ZQp0byB0aGUgY29tbWl0IGQ0NmE5ZDY3OGU0YyAoIm5ldDog aXB2NjogRG9udCBhZGQgUlQ2X0xPT0tVUF9GX0lGQUNFCmZsYWcgaWYgc2FkZHIgc2V0IiksIGlm IHRoZSBzYWRkciBpcyAnYW55JyB0aGUgZmlyc3Qgcm91dGUgbG9va3VwCmluIGlwNl9kc3RfbG9v a3VwX3RhaWwgZmFpbHMsIGJ1dCB1cG9uIGZhaWx1cmUgYSBzZWNvbmQgbG9va3VwIHdpbGwKYmUg cGVyZm9ybWVkIHdpdGggc2FkZHIgc2V0LCB0aHVzIGlnbm9yaW5nIHRoZSBpZmluZGV4IGNvbnN0 cmFpbnQuCgpUaGlzIGNvbW1pdCBhZGRzIGFuIG91dHB1dCByb3V0ZSBsb29rdXAgZnVuY3Rpb24g dmFyaWFudCwgd2hpY2gKYWxsb3dzIHRoZSBjYWxsZXIgdG8gc3BlY2lmeSBsb29rdXAgZmxhZ3Ms IGFuZCBtb2RpZnkKaXA2X2RzdF9sb29rdXBfdGFpbCgpIHRvIGVuZm9yY2UgdGhlIGlmaW5kZXgg bWF0Y2ggb24gdGhlIHNlY29uZApsb29rdXAgdmlhIHNhaWQgaGVscGVyLgoKaXA2X3JvdXRlX291 dHB1dCgpIGJlY2FtZXMgbm93IGEgc3RhdGljIGlubGluZSBmdW5jdGlvbiBidWlsZCBvbgp0b3Ag b2YgaXA2X3JvdXRlX291dHB1dF9mbGFncygpOyBhcyBhIHNpZGUgZWZmZWN0LCBvdXQtb2YtdHJl ZQptb2R1bGVzIG5lZWQgbm93IGEgR1BMIGxpY2Vuc2UgdG8gYWNjZXNzIHRoZSBvdXRwdXQgcm91 dGUgbG9va3VwCmZ1bmN0aW9uYWxpdHkuCgpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFi ZW5pQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0 cmVzc2luZHVrdGlvbi5vcmc+CkFja2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhQGN1bXVsdXNuZXR3 b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9pcDZfcm91dGUuaCB8IDEyICsrKysrKysrKystLQogbmV0 L2lwdjYvaXA2X291dHB1dC5jICAgfCAgNiArKysrKy0KIG5ldC9pcHY2L3JvdXRlLmMgICAgICAg IHwgIDggKysrLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgOCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcDZfcm91dGUuaCBiL2luY2x1ZGUv bmV0L2lwNl9yb3V0ZS5oCmluZGV4IDVlMTkyMDYuLjM4OGRlYTQgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbmV0L2lwNl9yb3V0ZS5oCisrKyBiL2luY2x1ZGUvbmV0L2lwNl9yb3V0ZS5oCkBAIC02NCw4 ICs2NCwxNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcnQ2X25lZWRfc3RyaWN0KGNvbnN0IHN0cnVj dCBpbjZfYWRkciAqZGFkZHIpCiAKIHZvaWQgaXA2X3JvdXRlX2lucHV0KHN0cnVjdCBza19idWZm ICpza2IpOwogCi1zdHJ1Y3QgZHN0X2VudHJ5ICppcDZfcm91dGVfb3V0cHV0KHN0cnVjdCBuZXQg Km5ldCwgY29uc3Qgc3RydWN0IHNvY2sgKnNrLAotCQkJCSAgIHN0cnVjdCBmbG93aTYgKmZsNik7 CitzdHJ1Y3QgZHN0X2VudHJ5ICppcDZfcm91dGVfb3V0cHV0X2ZsYWdzKHN0cnVjdCBuZXQgKm5l dCwgY29uc3Qgc3RydWN0IHNvY2sgKnNrLAorCQkJCQkgc3RydWN0IGZsb3dpNiAqZmw2LCBpbnQg ZmxhZ3MpOworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkc3RfZW50cnkgKmlwNl9yb3V0ZV9vdXRw dXQoc3RydWN0IG5ldCAqbmV0LAorCQkJCQkJIGNvbnN0IHN0cnVjdCBzb2NrICpzaywKKwkJCQkJ CSBzdHJ1Y3QgZmxvd2k2ICpmbDYpCit7CisJcmV0dXJuIGlwNl9yb3V0ZV9vdXRwdXRfZmxhZ3Mo bmV0LCBzaywgZmw2LCAwKTsKK30KKwogc3RydWN0IGRzdF9lbnRyeSAqaXA2X3JvdXRlX2xvb2t1 cChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBmbG93aTYgKmZsNiwKIAkJCQkgICBpbnQgZmxhZ3Mp OwogCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMgYi9uZXQvaXB2Ni9pcDZfb3V0 cHV0LmMKaW5kZXggZjUwMjI4Yi4uMzZiOWFjNCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X291 dHB1dC5jCisrKyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYwpAQCAtODg1LDYgKzg4NSw3IEBAIHN0 YXRpYyBpbnQgaXA2X2RzdF9sb29rdXBfdGFpbChzdHJ1Y3Qgc29jayAqc2ssCiAJc3RydWN0IHJ0 Nl9pbmZvICpydDsKICNlbmRpZgogCWludCBlcnI7CisJaW50IGZsYWdzID0gMDsKIAogCS8qIFRo ZSBjb3JyZWN0IHdheSB0byBoYW5kbGUgdGhpcyB3b3VsZCBiZSB0byBkbwogCSAqIGlwNl9yb3V0 ZV9nZXRfc2FkZHIsIGFuZCB0aGVuIGlwNl9yb3V0ZV9vdXRwdXQ7IGhvd2V2ZXIsCkBAIC05MTYs MTAgKzkxNywxMyBAQCBzdGF0aWMgaW50IGlwNl9kc3RfbG9va3VwX3RhaWwoc3RydWN0IHNvY2sg KnNrLAogCQkJZHN0X3JlbGVhc2UoKmRzdCk7CiAJCQkqZHN0ID0gTlVMTDsKIAkJfQorCisJCWlm IChmbDYtPmZsb3dpNl9vaWYpCisJCQlmbGFncyB8PSBSVDZfTE9PS1VQX0ZfSUZBQ0U7CiAJfQog CiAJaWYgKCEqZHN0KQotCQkqZHN0ID0gaXA2X3JvdXRlX291dHB1dChuZXQsIHNrLCBmbDYpOwor CQkqZHN0ID0gaXA2X3JvdXRlX291dHB1dF9mbGFncyhuZXQsIHNrLCBmbDYsIGZsYWdzKTsKIAog CWVyciA9ICgqZHN0KS0+ZXJyb3I7CiAJaWYgKGVycikKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3Jv dXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IGYzNzFmZWYuLmZlNzBiZDYgMTAwNjQ0Ci0t LSBhL25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAtMTAzMCwxMSAr MTAzMCw5IEBAIHN0YXRpYyBzdHJ1Y3QgcnQ2X2luZm8gKmlwNl9wb2xfcm91dGVfb3V0cHV0KHN0 cnVjdCBuZXQgKm5ldCwgc3RydWN0IGZpYjZfdGFibGUKIAlyZXR1cm4gaXA2X3BvbF9yb3V0ZShu ZXQsIHRhYmxlLCBmbDYtPmZsb3dpNl9vaWYsIGZsNiwgZmxhZ3MpOwogfQogCi1zdHJ1Y3QgZHN0 X2VudHJ5ICppcDZfcm91dGVfb3V0cHV0KHN0cnVjdCBuZXQgKm5ldCwgY29uc3Qgc3RydWN0IHNv Y2sgKnNrLAotCQkJCSAgICBzdHJ1Y3QgZmxvd2k2ICpmbDYpCitzdHJ1Y3QgZHN0X2VudHJ5ICpp cDZfcm91dGVfb3V0cHV0X2ZsYWdzKHN0cnVjdCBuZXQgKm5ldCwgY29uc3Qgc3RydWN0IHNvY2sg KnNrLAorCQkJCQkgc3RydWN0IGZsb3dpNiAqZmw2LCBpbnQgZmxhZ3MpCiB7Ci0JaW50IGZsYWdz ID0gMDsKLQogCWZsNi0+Zmxvd2k2X2lpZiA9IExPT1BCQUNLX0lGSU5ERVg7CiAKIAlpZiAoKHNr ICYmIHNrLT5za19ib3VuZF9kZXZfaWYpIHx8IHJ0Nl9uZWVkX3N0cmljdCgmZmw2LT5kYWRkcikp CkBAIC0xMDQ3LDcgKzEwNDUsNyBAQCBzdHJ1Y3QgZHN0X2VudHJ5ICppcDZfcm91dGVfb3V0cHV0 KHN0cnVjdCBuZXQgKm5ldCwgY29uc3Qgc3RydWN0IHNvY2sgKnNrLAogCiAJcmV0dXJuIGZpYjZf cnVsZV9sb29rdXAobmV0LCBmbDYsIGZsYWdzLCBpcDZfcG9sX3JvdXRlX291dHB1dCk7CiB9Ci1F WFBPUlRfU1lNQk9MKGlwNl9yb3V0ZV9vdXRwdXQpOworRVhQT1JUX1NZTUJPTF9HUEwoaXA2X3Jv dXRlX291dHB1dF9mbGFncyk7CiAKIHN0cnVjdCBkc3RfZW50cnkgKmlwNl9ibGFja2hvbGVfcm91 dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3Rfb3JpZykKIHsKLS0gCjIu NC4xCgoKRnJvbSA0YWI4ZDY2Mzk5YmQwYzNiZjUxNzQyMzc2Zjc1M2Y5ZmU0NWQxM2E3IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+ CkRhdGU6IEZyaSwgMjkgSmFuIDIwMTYgMTI6MzA6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDEx LzM0XSBpcHY2L3VkcDogdXNlIHN0aWNreSBwa3RpbmZvIGVncmVzcyBpZmluZGV4IG9uCiBjb25u ZWN0KCkKClsgVXBzdHJlYW0gY29tbWl0IDFjZGRhOTE4NzE0NzBmMTVlNzkzNzU5OTFiZDJlZGRj NmU4NmRkYjEgXQoKQ3VycmVudGx5LCB0aGUgZWdyZXNzIGludGVyZmFjZSBpbmRleCBzcGVjaWZp ZWQgdmlhIElQVjZfUEtUSU5GTwppcyBpZ25vcmVkIGJ5IF9faXA2X2RhdGFncmFtX2Nvbm5lY3Qo KSwgc28gdGhhdCBSRkMgMzU0MiBzZWN0aW9uIDYuNwpjYW4gYmUgc3VidmVydGVkIHdoZW4gdGhl IHVzZXIgc3BhY2UgYXBwbGljYXRpb24gY2FsbHMgY29ubmVjdCgpCmJlZm9yZSBzZW5kbXNnKCku CkZpeCBpdCBieSBpbml0aWFsaXppbmcgcHJvcGVybHkgZmxvd2k2X29pZiBpbiBjb25uZWN0KCkg YmVmb3JlCnBlcmZvcm1pbmcgdGhlIHJvdXRlIGxvb2t1cC4KClNpZ25lZC1vZmYtYnk6IFBhb2xv IEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IEhhbm5lcyBGcmVkZXJpYyBTb3dh IDxoYW5uZXNAc3RyZXNzaW5kdWt0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2RhdGFncmFtLmMgfCAzICsr KwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L2RhdGFncmFtLmMgYi9uZXQvaXB2Ni9kYXRhZ3JhbS5jCmluZGV4IDEzY2E0Y2YuLjhlNmNiM2Yg MTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2RhdGFncmFtLmMKKysrIGIvbmV0L2lwdjYvZGF0YWdyYW0u YwpAQCAtMTYyLDYgKzE2Miw5IEBAIGlwdjRfY29ubmVjdGVkOgogCWZsNi5mbDZfZHBvcnQgPSBp bmV0LT5pbmV0X2Rwb3J0OwogCWZsNi5mbDZfc3BvcnQgPSBpbmV0LT5pbmV0X3Nwb3J0OwogCisJ aWYgKCFmbDYuZmxvd2k2X29pZikKKwkJZmw2LmZsb3dpNl9vaWYgPSBucC0+c3RpY2t5X3BrdGlu Zm8uaXBpNl9pZmluZGV4OworCiAJaWYgKCFmbDYuZmxvd2k2X29pZiAmJiAoYWRkcl90eXBlJklQ VjZfQUREUl9NVUxUSUNBU1QpKQogCQlmbDYuZmxvd2k2X29pZiA9IG5wLT5tY2FzdF9vaWY7CiAK LS0gCjIuNC4xCgoKRnJvbSBiNDdjOGU4NGY1OGNiMjg2MjhmOGI2ODVlMjE3OWMzYTU4Mzc1Y2I4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBn bWFpbC5jb20+CkRhdGU6IFRodSwgMzAgSnVsIDIwMTUgMTQ6Mjg6NDIgKzA4MDAKU3ViamVjdDog W1BBVENIIDEyLzM0XSBuZXQvaXB2NjogYWRkIHN5c2N0bCBvcHRpb24gYWNjZXB0X3JhX21pbl9o b3BfbGltaXQKClsgVXBzdHJlYW0gY29tbWl0IDgwMTNkMWQ3ZWFmYjA1ODljYTc2NmRiNmI3NDAy NmY3NmI3ZjVjYjQgXQoKQ29tbWl0IDZmZDk5MDk0ZGUyYiAoImlwdjY6IERvbid0IHJlZHVjZSBo b3AgbGltaXQgZm9yIGFuIGludGVyZmFjZSIpCmRpc2FibGVkIGFjY2VwdCBob3AgbGltaXQgZnJv bSBSQSBpZiBpdCBpcyBzbWFsbGVyIHRoYW4gdGhlIGN1cnJlbnQgaG9wCmxpbWl0IGZvciBzZWN1 cml0eSBzdHVmZi4gQnV0IHRoaXMgYmVoYXZpb3Iga2luZCBvZiBicmVhayB0aGUgUkZDIGRlZmlu aXRpb24uCgpSRkMgNDg2MSwgNi4zLjQuICBQcm9jZXNzaW5nIFJlY2VpdmVkIFJvdXRlciBBZHZl cnRpc2VtZW50cwogICBBIFJvdXRlciBBZHZlcnRpc2VtZW50IGZpZWxkIChlLmcuLCBDdXIgSG9w IExpbWl0LCBSZWFjaGFibGUgVGltZSwKICAgYW5kIFJldHJhbnMgVGltZXIpIG1heSBjb250YWlu IGEgdmFsdWUgZGVub3RpbmcgdGhhdCBpdCBpcwogICB1bnNwZWNpZmllZC4gIEluIHN1Y2ggY2Fz ZXMsIHRoZSBwYXJhbWV0ZXIgc2hvdWxkIGJlIGlnbm9yZWQgYW5kIHRoZQogICBob3N0IHNob3Vs ZCBjb250aW51ZSB1c2luZyB3aGF0ZXZlciB2YWx1ZSBpdCBpcyBhbHJlYWR5IHVzaW5nLgoKICAg SWYgdGhlIHJlY2VpdmVkIEN1ciBIb3AgTGltaXQgdmFsdWUgaXMgbm9uLXplcm8sIHRoZSBob3N0 IFNIT1VMRCBzZXQKICAgaXRzIEN1ckhvcExpbWl0IHZhcmlhYmxlIHRvIHRoZSByZWNlaXZlZCB2 YWx1ZS4KClNvIGFkZCBzeXNjdGwgb3B0aW9uIGFjY2VwdF9yYV9taW5faG9wX2xpbWl0IHRvIGxl dCB1c2VyIGNob29zZSB0aGUgbWluaW11bQpob3AgbGltaXQgdmFsdWUgdGhleSBjYW4gYWNjZXB0 IGZyb20gUkEuIEFuZCBzZXQgZGVmYXVsdCB0byAxIHRvIG1lZXQgUkZDCnN0YW5kYXJkcy4KClNp Z25lZC1vZmYtYnk6IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KQWNrZWQtYnk6 IFlPU0hJRlVKSSBIaWRlYWtpIDxoaWRlYWtpLnlvc2hpZnVqaUBtaXJhY2xlbGludXguY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2lwLXN5c2N0bC50eHQgfCAgOCArKysrKysrKwogaW5j bHVkZS9saW51eC9pcHY2LmggICAgICAgICAgICAgICAgICAgfCAgMSArCiBpbmNsdWRlL3VhcGkv bGludXgvaXB2Ni5oICAgICAgICAgICAgICB8ICAyICsrCiBuZXQvaXB2Ni9hZGRyY29uZi5jICAg ICAgICAgICAgICAgICAgICB8IDEwICsrKysrKysrKysKIG5ldC9pcHY2L25kaXNjLmMgICAgICAg ICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKy0tLS0tLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAy OCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRp b24vbmV0d29ya2luZy9pcC1zeXNjdGwudHh0IGIvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2lw LXN5c2N0bC50eHQKaW5kZXggMDcxZmIxOC4uMDdmYWQzZCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRh dGlvbi9uZXR3b3JraW5nL2lwLXN5c2N0bC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9uZXR3b3Jr aW5nL2lwLXN5c2N0bC50eHQKQEAgLTEzMjEsNiArMTMyMSwxNCBAQCBhY2NlcHRfcmFfZnJvbV9s b2NhbCAtIEJPT0xFQU4KIAkgICBkaXNhYmxlZCBpZiBhY2NlcHRfcmFfZnJvbV9sb2NhbCBpcyBk aXNhYmxlZAogICAgICAgICAgICAgICAgb24gYSBzcGVjaWZpYyBpbnRlcmZhY2UuCiAKK2FjY2Vw dF9yYV9taW5faG9wX2xpbWl0IC0gSU5URUdFUgorCU1pbmltdW0gaG9wIGxpbWl0IEluZm9ybWF0 aW9uIGluIFJvdXRlciBBZHZlcnRpc2VtZW50LgorCisJSG9wIGxpbWl0IEluZm9ybWF0aW9uIGlu IFJvdXRlciBBZHZlcnRpc2VtZW50IGxlc3MgdGhhbiB0aGlzCisJdmFyaWFibGUgc2hhbGwgYmUg aWdub3JlZC4KKworCURlZmF1bHQ6IDEKKwogYWNjZXB0X3JhX3BpbmZvIC0gQk9PTEVBTgogCUxl YXJuIFByZWZpeCBJbmZvcm1hdGlvbiBpbiBSb3V0ZXIgQWR2ZXJ0aXNlbWVudC4KIApkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9pcHY2LmggYi9pbmNsdWRlL2xpbnV4L2lwdjYuaAppbmRleCBl NGI0NjQ5Li4wMWMyNTkyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2lwdjYuaAorKysgYi9p bmNsdWRlL2xpbnV4L2lwdjYuaApAQCAtMjksNiArMjksNyBAQCBzdHJ1Y3QgaXB2Nl9kZXZjb25m IHsKIAlfX3MzMgkJbWF4X2Rlc3luY19mYWN0b3I7CiAJX19zMzIJCW1heF9hZGRyZXNzZXM7CiAJ X19zMzIJCWFjY2VwdF9yYV9kZWZydHI7CisJX19zMzIJCWFjY2VwdF9yYV9taW5faG9wX2xpbWl0 OwogCV9fczMyCQlhY2NlcHRfcmFfcGluZm87CiAjaWZkZWYgQ09ORklHX0lQVjZfUk9VVEVSX1BS RUYKIAlfX3MzMgkJYWNjZXB0X3JhX3J0cl9wcmVmOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBp L2xpbnV4L2lwdjYuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9pcHY2LmgKaW5kZXggNWVmYTU0YS4u ODBmM2I3NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2lwdjYuaAorKysgYi9pbmNs dWRlL3VhcGkvbGludXgvaXB2Ni5oCkBAIC0xNzEsNiArMTcxLDggQEAgZW51bSB7CiAJREVWQ09O Rl9VU0VfT1BUSU1JU1RJQywKIAlERVZDT05GX0FDQ0VQVF9SQV9NVFUsCiAJREVWQ09ORl9TVEFC TEVfU0VDUkVULAorCURFVkNPTkZfVVNFX09JRl9BRERSU19PTkxZLAorCURFVkNPTkZfQUNDRVBU X1JBX01JTl9IT1BfTElNSVQsCiAJREVWQ09ORl9NQVgKIH07CiAKZGlmZiAtLWdpdCBhL25ldC9p cHY2L2FkZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCmluZGV4IGY0Nzk1YjAuLjI4YzRi YzUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25mLmMKKysrIGIvbmV0L2lwdjYvYWRkcmNv bmYuYwpAQCAtMTk1LDYgKzE5NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgaXB2Nl9kZXZjb25mIGlwdjZf ZGV2Y29uZiBfX3JlYWRfbW9zdGx5ID0gewogCS5tYXhfYWRkcmVzc2VzCQk9IElQVjZfTUFYX0FE RFJFU1NFUywKIAkuYWNjZXB0X3JhX2RlZnJ0cgk9IDEsCiAJLmFjY2VwdF9yYV9mcm9tX2xvY2Fs CT0gMCwKKwkuYWNjZXB0X3JhX21pbl9ob3BfbGltaXQ9IDEsCiAJLmFjY2VwdF9yYV9waW5mbwk9 IDEsCiAjaWZkZWYgQ09ORklHX0lQVjZfUk9VVEVSX1BSRUYKIAkuYWNjZXB0X3JhX3J0cl9wcmVm CT0gMSwKQEAgLTIzNiw2ICsyMzcsNyBAQCBzdGF0aWMgc3RydWN0IGlwdjZfZGV2Y29uZiBpcHY2 X2RldmNvbmZfZGZsdCBfX3JlYWRfbW9zdGx5ID0gewogCS5tYXhfYWRkcmVzc2VzCQk9IElQVjZf TUFYX0FERFJFU1NFUywKIAkuYWNjZXB0X3JhX2RlZnJ0cgk9IDEsCiAJLmFjY2VwdF9yYV9mcm9t X2xvY2FsCT0gMCwKKwkuYWNjZXB0X3JhX21pbl9ob3BfbGltaXQ9IDEsCiAJLmFjY2VwdF9yYV9w aW5mbwk9IDEsCiAjaWZkZWYgQ09ORklHX0lQVjZfUk9VVEVSX1BSRUYKIAkuYWNjZXB0X3JhX3J0 cl9wcmVmCT0gMSwKQEAgLTQ1NjUsNiArNDU2Nyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpcHY2 X3N0b3JlX2RldmNvbmYoc3RydWN0IGlwdjZfZGV2Y29uZiAqY25mLAogCWFycmF5W0RFVkNPTkZf TUFYX0RFU1lOQ19GQUNUT1JdID0gY25mLT5tYXhfZGVzeW5jX2ZhY3RvcjsKIAlhcnJheVtERVZD T05GX01BWF9BRERSRVNTRVNdID0gY25mLT5tYXhfYWRkcmVzc2VzOwogCWFycmF5W0RFVkNPTkZf QUNDRVBUX1JBX0RFRlJUUl0gPSBjbmYtPmFjY2VwdF9yYV9kZWZydHI7CisJYXJyYXlbREVWQ09O Rl9BQ0NFUFRfUkFfTUlOX0hPUF9MSU1JVF0gPSBjbmYtPmFjY2VwdF9yYV9taW5faG9wX2xpbWl0 OwogCWFycmF5W0RFVkNPTkZfQUNDRVBUX1JBX1BJTkZPXSA9IGNuZi0+YWNjZXB0X3JhX3BpbmZv OwogI2lmZGVmIENPTkZJR19JUFY2X1JPVVRFUl9QUkVGCiAJYXJyYXlbREVWQ09ORl9BQ0NFUFRf UkFfUlRSX1BSRUZdID0gY25mLT5hY2NlcHRfcmFfcnRyX3ByZWY7CkBAIC01NDU4LDYgKzU0NjEs MTMgQEAgc3RhdGljIHN0cnVjdCBhZGRyY29uZl9zeXNjdGxfdGFibGUKIAkJCS5wcm9jX2hhbmRs ZXIJPSBwcm9jX2RvaW50dmVjLAogCQl9LAogCQl7CisJCQkucHJvY25hbWUJPSAiYWNjZXB0X3Jh X21pbl9ob3BfbGltaXQiLAorCQkJLmRhdGEJCT0gJmlwdjZfZGV2Y29uZi5hY2NlcHRfcmFfbWlu X2hvcF9saW1pdCwKKwkJCS5tYXhsZW4JCT0gc2l6ZW9mKGludCksCisJCQkubW9kZQkJPSAwNjQ0 LAorCQkJLnByb2NfaGFuZGxlcgk9IHByb2NfZG9pbnR2ZWMsCisJCX0sCisJCXsKIAkJCS5wcm9j bmFtZQk9ICJhY2NlcHRfcmFfcGluZm8iLAogCQkJLmRhdGEJCT0gJmlwdjZfZGV2Y29uZi5hY2Nl cHRfcmFfcGluZm8sCiAJCQkubWF4bGVuCQk9IHNpemVvZihpbnQpLApkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvbmRpc2MuYyBiL25ldC9pcHY2L25kaXNjLmMKaW5kZXggOTZmMTUzYy4uYWJiMGJkZCAx MDA2NDQKLS0tIGEvbmV0L2lwdjYvbmRpc2MuYworKysgYi9uZXQvaXB2Ni9uZGlzYy5jCkBAIC0x MjI1LDE4ICsxMjI1LDE2IEBAIHN0YXRpYyB2b2lkIG5kaXNjX3JvdXRlcl9kaXNjb3Zlcnkoc3Ry dWN0IHNrX2J1ZmYgKnNrYikKIAogCWlmIChydCkKIAkJcnQ2X3NldF9leHBpcmVzKHJ0LCBqaWZm aWVzICsgKEhaICogbGlmZXRpbWUpKTsKLQlpZiAocmFfbXNnLT5pY21waC5pY21wNl9ob3BfbGlt aXQpIHsKLQkJLyogT25seSBzZXQgaG9wX2xpbWl0IG9uIHRoZSBpbnRlcmZhY2UgaWYgaXQgaXMg aGlnaGVyIHRoYW4KLQkJICogdGhlIGN1cnJlbnQgaG9wX2xpbWl0LgotCQkgKi8KLQkJaWYgKGlu Nl9kZXYtPmNuZi5ob3BfbGltaXQgPCByYV9tc2ctPmljbXBoLmljbXA2X2hvcF9saW1pdCkgewor CWlmIChpbjZfZGV2LT5jbmYuYWNjZXB0X3JhX21pbl9ob3BfbGltaXQgPCAyNTYgJiYKKwkgICAg cmFfbXNnLT5pY21waC5pY21wNl9ob3BfbGltaXQpIHsKKwkJaWYgKGluNl9kZXYtPmNuZi5hY2Nl cHRfcmFfbWluX2hvcF9saW1pdCA8PSByYV9tc2ctPmljbXBoLmljbXA2X2hvcF9saW1pdCkgewog CQkJaW42X2Rldi0+Y25mLmhvcF9saW1pdCA9IHJhX21zZy0+aWNtcGguaWNtcDZfaG9wX2xpbWl0 OworCQkJaWYgKHJ0KQorCQkJCWRzdF9tZXRyaWNfc2V0KCZydC0+ZHN0LCBSVEFYX0hPUExJTUlU LAorCQkJCQkgICAgICAgcmFfbXNnLT5pY21waC5pY21wNl9ob3BfbGltaXQpOwogCQl9IGVsc2Ug ewotCQkJTkRfUFJJTlRLKDIsIHdhcm4sICJSQTogR290IHJvdXRlIGFkdmVydGlzZW1lbnQgd2l0 aCBsb3dlciBob3BfbGltaXQgdGhhbiBjdXJyZW50XG4iKTsKKwkJCU5EX1BSSU5USygyLCB3YXJu LCAiUkE6IEdvdCByb3V0ZSBhZHZlcnRpc2VtZW50IHdpdGggbG93ZXIgaG9wX2xpbWl0IHRoYW4g bWluaW11bVxuIik7CiAJCX0KLQkJaWYgKHJ0KQotCQkJZHN0X21ldHJpY19zZXQoJnJ0LT5kc3Qs IFJUQVhfSE9QTElNSVQsCi0JCQkJICAgICAgIHJhX21zZy0+aWNtcGguaWNtcDZfaG9wX2xpbWl0 KTsKIAl9CiAKIHNraXBfZGVmcnRyOgotLSAKMi40LjEKCgpGcm9tIDRmMGNjODU3ZGU1NWFhYWM1 ZTc5MWYzNDFjMWQzYjIyZWY1NWJiZmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ICJz dWJhc2hhYkBjb2RlYXVyb3JhLm9yZyIgPHN1YmFzaGFiQGNvZGVhdXJvcmEub3JnPgpEYXRlOiBU dWUsIDIgRmViIDIwMTYgMDI6MTE6MTAgKzAwMDAKU3ViamVjdDogW1BBVENIIDEzLzM0XSBpcHY2 OiBhZGRyY29uZjogRml4IHJlY3Vyc2l2ZSBzcGluIGxvY2sgY2FsbAoKWyBVcHN0cmVhbSBjb21t aXQgMTYxODZhODJkZTFmZGQ4NjgyNTU0NDgyNzRlNjRhZTI2MTZlMjY0MCBdCgpBIHJjdSBzdGFs bCB3aXRoIHRoZSBmb2xsb3dpbmcgYmFja3RyYWNlIHdhcyBzZWVuIG9uIGEgc3lzdGVtIHdpdGgK Zm9yd2FyZGluZywgb3B0aW1pc3RpY19kYWQgYW5kIHVzZV9vcHRpbWlzdGljIHNldC4gVG8gcmVw cm9kdWNlLApzZXQgdGhlc2UgZmxhZ3MgYW5kIGFsbG93IGlwdjYgYXV0b2NvbmYuCgpUaGlzIG9j Y3VycyBiZWNhdXNlIHRoZSBkZXZpY2Ugd3JpdGVfbG9jayBpcyBhY3F1aXJlZCB3aGlsZSBhbHJl YWR5CmhvbGRpbmcgdGhlIHJlYWRfbG9jay4gQmFjayB0cmFjZSBiZWxvdyAtCgpJTkZPOiByY3Vf cHJlZW1wdCBzZWxmLWRldGVjdGVkIHN0YWxsIG9uIENQVSB7IDF9ICAodD0yMTAwIGppZmZpZXMK IGc9Mzk5MiBjPTM5OTEgcT00NDcxKQo8Nj4gVGFzayBkdW1wIGZvciBDUFUgMToKPDI+IGt3b3Jr ZXIvMTowICAgICBSICBydW5uaW5nIHRhc2sgICAgMTIxNjggICAgMTUgICAyIDB4MDAwMDAwMDIK PDI+IFdvcmtxdWV1ZTogaXB2Nl9hZGRyY29uZiBhZGRyY29uZl9kYWRfd29yawo8Nj4gQ2FsbCB0 cmFjZToKPDI+IFs8ZmZmZmZmYzAwMDA4NGRhOD5dIGVsMV9pcnErMHg2OC8weGRjCjwyPiBbPGZm ZmZmZmMwMDBjYzRlMGM+XSBfcmF3X3dyaXRlX2xvY2tfYmgrMHgyMC8weDMwCjwyPiBbPGZmZmZm ZmMwMDBiYzVkZDg+XSBfX2lwdjZfZGV2X2FjX2luYysweDY0LzB4MWI0CjwyPiBbPGZmZmZmZmMw MDBiY2JkMmM+XSBhZGRyY29uZl9qb2luX2FueWNhc3QrMHg5Yy8weGM0CjwyPiBbPGZmZmZmZmMw MDBiY2Y5ZjA+XSBfX2lwdjZfaWZhX25vdGlmeSsweDE2MC8weDI5Ywo8Mj4gWzxmZmZmZmZjMDAw YmNmYjdjPl0gaXB2Nl9pZmFfbm90aWZ5KzB4NTAvMHg3MAo8Mj4gWzxmZmZmZmZjMDAwYmQwMzVj Pl0gYWRkcmNvbmZfZGFkX3dvcmsrMHgzMTQvMHgzMzQKPDI+IFs8ZmZmZmZmYzAwMDBiNjRjOD5d IHByb2Nlc3Nfb25lX3dvcmsrMHgyNDQvMHgzZmMKPDI+IFs8ZmZmZmZmYzAwMDBiNzMyND5dIHdv cmtlcl90aHJlYWQrMHgyZjgvMHg0MTgKPDI+IFs8ZmZmZmZmYzAwMDBiYjQwYz5dIGt0aHJlYWQr MHhlMC8weGVjCgp2MjogZG8gYWRkcmNvbmZfZGFkX2tpY2sgaW5zaWRlIHJlYWQgbG9jayBhbmQg dGhlbiBhY3F1aXJlIHdyaXRlCmxvY2sgZm9yIGlwdjZfaWZhX25vdGlmeSBhcyBzdWdnZXN0ZWQg YnkgRXJpYwoKRml4ZXM6IDdmZDI1NjFlNGViZGQgKCJuZXQ6IGlwdjY6IEFkZCBhIHN5c2N0bCB0 byBtYWtlIG9wdGltaXN0aWMKYWRkcmVzc2VzIHVzZWZ1bCBjYW5kaWRhdGVzIikKCkNjOiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBFcmlrIEtsaW5lIDxla0Bnb29nbGUu Y29tPgpDYzogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5lc0BzdHJlc3NpbmR1a3Rpb24ub3Jn PgpTaWduZWQtb2ZmLWJ5OiBTdWJhc2ggQWJoaW5vdiBLYXNpdmlzd2FuYXRoYW4gPHN1YmFzaGFi QGNvZGVhdXJvcmEub3JnPgpBY2tlZC1ieTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5lc0Bz dHJlc3NpbmR1a3Rpb24ub3JnPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjYvYWRkcmNvbmYuYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9hZGRy Y29uZi5jIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwppbmRleCAyOGM0YmM1Li5mY2ZiZDA1IDEwMDY0 NAotLS0gYS9uZXQvaXB2Ni9hZGRyY29uZi5jCisrKyBiL25ldC9pcHY2L2FkZHJjb25mLmMKQEAg LTM0MjMsNiArMzQyMyw3IEBAIHN0YXRpYyB2b2lkIGFkZHJjb25mX2RhZF9iZWdpbihzdHJ1Y3Qg aW5ldDZfaWZhZGRyICppZnApCiB7CiAJc3RydWN0IGluZXQ2X2RldiAqaWRldiA9IGlmcC0+aWRl djsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gaWRldi0+ZGV2OworCWJvb2wgbm90aWZ5ID0g ZmFsc2U7CiAKIAlhZGRyY29uZl9qb2luX3NvbGljdChkZXYsICZpZnAtPmFkZHIpOwogCkBAIC0z NDY4LDcgKzM0NjksNyBAQCBzdGF0aWMgdm9pZCBhZGRyY29uZl9kYWRfYmVnaW4oc3RydWN0IGlu ZXQ2X2lmYWRkciAqaWZwKQogCQkJLyogQmVjYXVzZSBvcHRpbWlzdGljIG5vZGVzIGNhbiB1c2Ug dGhpcyBhZGRyZXNzLAogCQkJICogbm90aWZ5IGxpc3RlbmVycy4gSWYgREFEIGZhaWxzLCBSVE1f REVMQUREUiBpcyBzZW50LgogCQkJICovCi0JCQlpcHY2X2lmYV9ub3RpZnkoUlRNX05FV0FERFIs IGlmcCk7CisJCQlub3RpZnkgPSB0cnVlOwogCQl9CiAJfQogCkBAIC0zNDc2LDYgKzM0NzcsOCBA QCBzdGF0aWMgdm9pZCBhZGRyY29uZl9kYWRfYmVnaW4oc3RydWN0IGluZXQ2X2lmYWRkciAqaWZw KQogb3V0OgogCXNwaW5fdW5sb2NrKCZpZnAtPmxvY2spOwogCXJlYWRfdW5sb2NrX2JoKCZpZGV2 LT5sb2NrKTsKKwlpZiAobm90aWZ5KQorCQlpcHY2X2lmYV9ub3RpZnkoUlRNX05FV0FERFIsIGlm cCk7CiB9CiAKIHN0YXRpYyB2b2lkIGFkZHJjb25mX2RhZF9zdGFydChzdHJ1Y3QgaW5ldDZfaWZh ZGRyICppZnApCi0tIAoyLjQuMQoKCkZyb20gNjFiOTcwYzUxMWZiODdiZWJkNzczYmRmNzYwNmRk ZGFiZjU2NGZmZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDIgRmViIDIwMTYgMTc6NTU6MDEgLTA4MDAK U3ViamVjdDogW1BBVENIIDE0LzM0XSBpcHY2OiBmaXggYSBsb2NrZGVwIHNwbGF0CgpbIFVwc3Ry ZWFtIGNvbW1pdCA0NGMzZDBjMWMwYTg4MDM1NGU5ZGU1ZDk0MTc1NzQyZTJjN2M5NjgzIF0KClNp bGVuY2UgbG9ja2RlcCBmYWxzZSBwb3NpdGl2ZSBhYm91dCByY3VfZGVyZWZlcmVuY2UoKSBiZWlu Zwp1c2VkIGluIHRoZSB3cm9uZyBjb250ZXh0LgoKRmlyc3Qgb25lIHNob3VsZCB1c2UgcmN1X2Rl cmVmZXJlbmNlX3Byb3RlY3RlZCgpIGFzIHdlIG93biB0aGUgc3BpbmxvY2suCgpTZWNvbmQgb25l IHNob3VsZCBiZSBhIG5vcm1hbCBhc3NpZ25hdGlvbiwgYXMgbm8gYmFycmllciBpcyBuZWVkZWQu CgpGaXhlczogMTgzNjc2ODFhMTBiZCAoImlwdjYgZmxvd2xhYmVsOiBDb252ZXJ0IG5wLT5pcHY2 X2ZsX2xpc3QgdG8gUkNVLiIpClJlcG9ydGVkLWJ5OiBEYXZlIEpvbmVzIDxkYXZlakBjb2RlbW9u a2V5Lm9yZy51az4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpBY2tlZC1ieTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5lc0BzdHJlc3NpbmR1a3Rp b24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X2Zsb3dsYWJlbC5jIHwgNSArKystLQogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2 Ni9pcDZfZmxvd2xhYmVsLmMgYi9uZXQvaXB2Ni9pcDZfZmxvd2xhYmVsLmMKaW5kZXggZDQ5MTEy NS4uZGI5MzllNCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2Zsb3dsYWJlbC5jCisrKyBiL25l dC9pcHY2L2lwNl9mbG93bGFiZWwuYwpAQCAtNTQwLDEyICs1NDAsMTMgQEAgaW50IGlwdjZfZmxv d2xhYmVsX29wdChzdHJ1Y3Qgc29jayAqc2ssIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBvcHRs ZW4pCiAJCX0KIAkJc3Bpbl9sb2NrX2JoKCZpcDZfc2tfZmxfbG9jayk7CiAJCWZvciAoc2ZscCA9 ICZucC0+aXB2Nl9mbF9saXN0OwotCQkgICAgIChzZmwgPSByY3VfZGVyZWZlcmVuY2UoKnNmbHAp KSAhPSBOVUxMOworCQkgICAgIChzZmwgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKCpzZmxw LAorCQkJCQkJICAgICAgbG9ja2RlcF9pc19oZWxkKCZpcDZfc2tfZmxfbG9jaykpKSAhPSBOVUxM OwogCQkgICAgIHNmbHAgPSAmc2ZsLT5uZXh0KSB7CiAJCQlpZiAoc2ZsLT5mbC0+bGFiZWwgPT0g ZnJlcS5mbHJfbGFiZWwpIHsKIAkJCQlpZiAoZnJlcS5mbHJfbGFiZWwgPT0gKG5wLT5mbG93X2xh YmVsJklQVjZfRkxPV0xBQkVMX01BU0spKQogCQkJCQlucC0+Zmxvd19sYWJlbCAmPSB+SVBWNl9G TE9XTEFCRUxfTUFTSzsKLQkJCQkqc2ZscCA9IHJjdV9kZXJlZmVyZW5jZShzZmwtPm5leHQpOwor CQkJCSpzZmxwID0gc2ZsLT5uZXh0OwogCQkJCXNwaW5fdW5sb2NrX2JoKCZpcDZfc2tfZmxfbG9j ayk7CiAJCQkJZmxfcmVsZWFzZShzZmwtPmZsKTsKIAkJCQlrZnJlZV9yY3Uoc2ZsLCByY3UpOwot LSAKMi40LjEKCgpGcm9tIDFiZjQ0NTU1MmFjNzY0MTMyYjI3ZDYxMWYyZjM2NzA2MWFjMTFhMTAg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5u ZXNAc3RyZXNzaW5kdWt0aW9uLm9yZz4KRGF0ZTogV2VkLCAzIEZlYiAyMDE2IDAyOjExOjAzICsw MTAwClN1YmplY3Q6IFtQQVRDSCAxNS8zNF0gdW5peDogY29ycmVjdGx5IHRyYWNrIGluLWZsaWdo dCBmZHMgaW4gc2VuZGluZyBwcm9jZXNzCiB1c2VyX3N0cnVjdAoKWyBVcHN0cmVhbSBjb21taXQg NDE1ZTNkM2U5MGNlOWUxODcyN2U4ODQzYWUzNDNlZGE1YTU4ZmFkNiBdCgpUaGUgY29tbWl0IHJl ZmVyZW5jZWQgaW4gdGhlIEZpeGVzIHRhZyBpbmNvcnJlY3RseSBhY2NvdW50ZWQgdGhlIG51bWJl cgpvZiBpbi1mbGlnaHQgZmRzIG92ZXIgYSB1bml4IGRvbWFpbiBzb2NrZXQgdG8gdGhlIG9yaWdp bmFsIG9wZW5lcgpvZiB0aGUgZmlsZS1kZXNjcmlwdG9yLiBUaGlzIGFsbG93cyBhbm90aGVyIHBy b2Nlc3MgdG8gYXJiaXRyYXJ5CmRlcGxldGUgdGhlIG9yaWdpbmFsIGZpbGUtb3BlbmVycyByZXNv dXJjZSBsaW1pdCBmb3IgdGhlIG1heGltdW0gb2YKb3BlbiBmaWxlcy4gSW5zdGVhZCB0aGUgc2Vu ZGluZyBwcm9jZXNzZXMgYW5kIGl0cyBzdHJ1Y3QgY3JlZCBzaG91bGQKYmUgY3JlZGl0ZWQuCgpU byBkbyBzbywgd2UgYWRkIGEgcmVmZXJlbmNlIGNvdW50ZWQgc3RydWN0IHVzZXJfc3RydWN0IHBv aW50ZXIgdG8gdGhlCnNjbV9mcF9saXN0IGFuZCB1c2UgaXQgdG8gYWNjb3VudCBmb3IgdGhlIG51 bWJlciBvZiBpbmZsaWdodCB1bml4IGZkcy4KCkZpeGVzOiA3MTJmNGFhZDQwNmJiMSAoInVuaXg6 IHByb3Blcmx5IGFjY291bnQgZm9yIEZEcyBwYXNzZWQgb3ZlciB1bml4IHNvY2tldHMiKQpSZXBv cnRlZC1ieTogRGF2aWQgSGVycm1hbm4gPGRoLmhlcnJtYW5uQGdtYWlsLmNvbT4KQ2M6IERhdmlk IEhlcnJtYW5uIDxkaC5oZXJybWFubkBnbWFpbC5jb20+CkNjOiBXaWxseSBUYXJyZWF1IDx3QDF3 dC5ldT4KQ2M6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4K U3VnZ2VzdGVkLWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5v cmc+ClNpZ25lZC1vZmYtYnk6IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5uZXNAc3RyZXNzaW5k dWt0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2FmX3VuaXguaCB8IDQgKystLQogaW5jbHVkZS9uZXQv c2NtLmggICAgIHwgMSArCiBuZXQvY29yZS9zY20uYyAgICAgICAgfCA3ICsrKysrKysKIG5ldC91 bml4L2FmX3VuaXguYyAgICB8IDQgKystLQogbmV0L3VuaXgvZ2FyYmFnZS5jICAgIHwgOCArKysr LS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2FmX3VuaXguaCBiL2luY2x1ZGUvbmV0L2FmX3VuaXgu aAppbmRleCBlODMwYzNkLi43YmI2OWM5IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9hZl91bml4 LmgKKysrIGIvaW5jbHVkZS9uZXQvYWZfdW5peC5oCkBAIC02LDggKzYsOCBAQAogI2luY2x1ZGUg PGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bmV0L3NvY2suaD4KIAotdm9pZCB1bml4X2luZmxp Z2h0KHN0cnVjdCBmaWxlICpmcCk7Ci12b2lkIHVuaXhfbm90aW5mbGlnaHQoc3RydWN0IGZpbGUg KmZwKTsKK3ZvaWQgdW5peF9pbmZsaWdodChzdHJ1Y3QgdXNlcl9zdHJ1Y3QgKnVzZXIsIHN0cnVj dCBmaWxlICpmcCk7Cit2b2lkIHVuaXhfbm90aW5mbGlnaHQoc3RydWN0IHVzZXJfc3RydWN0ICp1 c2VyLCBzdHJ1Y3QgZmlsZSAqZnApOwogdm9pZCB1bml4X2djKHZvaWQpOwogdm9pZCB3YWl0X2Zv cl91bml4X2djKHZvaWQpOwogc3RydWN0IHNvY2sgKnVuaXhfZ2V0X3NvY2tldChzdHJ1Y3QgZmls ZSAqZmlscCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zY20uaCBiL2luY2x1ZGUvbmV0L3Nj bS5oCmluZGV4IDI2MjUzMmQuLjU5ZmE5M2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjbS5o CisrKyBiL2luY2x1ZGUvbmV0L3NjbS5oCkBAIC0yMSw2ICsyMSw3IEBAIHN0cnVjdCBzY21fY3Jl ZHMgewogc3RydWN0IHNjbV9mcF9saXN0IHsKIAlzaG9ydAkJCWNvdW50OwogCXNob3J0CQkJbWF4 OworCXN0cnVjdCB1c2VyX3N0cnVjdAkqdXNlcjsKIAlzdHJ1Y3QgZmlsZQkJKmZwW1NDTV9NQVhf RkRdOwogfTsKIApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc2NtLmMgYi9uZXQvY29yZS9zY20uYwpp bmRleCA4YTE3NDFiLi5kY2UwYWNiIDEwMDY0NAotLS0gYS9uZXQvY29yZS9zY20uYworKysgYi9u ZXQvY29yZS9zY20uYwpAQCAtODcsNiArODcsNyBAQCBzdGF0aWMgaW50IHNjbV9mcF9jb3B5KHN0 cnVjdCBjbXNnaGRyICpjbXNnLCBzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKipmcGxwKQogCQkqZnBscCA9 IGZwbDsKIAkJZnBsLT5jb3VudCA9IDA7CiAJCWZwbC0+bWF4ID0gU0NNX01BWF9GRDsKKwkJZnBs LT51c2VyID0gTlVMTDsKIAl9CiAJZnBwID0gJmZwbC0+ZnBbZnBsLT5jb3VudF07CiAKQEAgLTEw Nyw2ICsxMDgsMTAgQEAgc3RhdGljIGludCBzY21fZnBfY29weShzdHJ1Y3QgY21zZ2hkciAqY21z Zywgc3RydWN0IHNjbV9mcF9saXN0ICoqZnBscCkKIAkJKmZwcCsrID0gZmlsZTsKIAkJZnBsLT5j b3VudCsrOwogCX0KKworCWlmICghZnBsLT51c2VyKQorCQlmcGwtPnVzZXIgPSBnZXRfdWlkKGN1 cnJlbnRfdXNlcigpKTsKKwogCXJldHVybiBudW07CiB9CiAKQEAgLTExOSw2ICsxMjQsNyBAQCB2 b2lkIF9fc2NtX2Rlc3Ryb3koc3RydWN0IHNjbV9jb29raWUgKnNjbSkKIAkJc2NtLT5mcCA9IE5V TEw7CiAJCWZvciAoaT1mcGwtPmNvdW50LTE7IGk+PTA7IGktLSkKIAkJCWZwdXQoZnBsLT5mcFtp XSk7CisJCWZyZWVfdWlkKGZwbC0+dXNlcik7CiAJCWtmcmVlKGZwbCk7CiAJfQogfQpAQCAtMzM2 LDYgKzM0Miw3IEBAIHN0cnVjdCBzY21fZnBfbGlzdCAqc2NtX2ZwX2R1cChzdHJ1Y3Qgc2NtX2Zw X2xpc3QgKmZwbCkKIAkJZm9yIChpID0gMDsgaSA8IGZwbC0+Y291bnQ7IGkrKykKIAkJCWdldF9m aWxlKGZwbC0+ZnBbaV0pOwogCQluZXdfZnBsLT5tYXggPSBuZXdfZnBsLT5jb3VudDsKKwkJbmV3 X2ZwbC0+dXNlciA9IGdldF91aWQoZnBsLT51c2VyKTsKIAl9CiAJcmV0dXJuIG5ld19mcGw7CiB9 CmRpZmYgLS1naXQgYS9uZXQvdW5peC9hZl91bml4LmMgYi9uZXQvdW5peC9hZl91bml4LmMKaW5k ZXggYzc0MWQ4My4uZDY0NDA0MiAxMDA2NDQKLS0tIGEvbmV0L3VuaXgvYWZfdW5peC5jCisrKyBi L25ldC91bml4L2FmX3VuaXguYwpAQCAtMTQ2NCw3ICsxNDY0LDcgQEAgc3RhdGljIHZvaWQgdW5p eF9kZXRhY2hfZmRzKHN0cnVjdCBzY21fY29va2llICpzY20sIHN0cnVjdCBza19idWZmICpza2Ip CiAJVU5JWENCKHNrYikuZnAgPSBOVUxMOwogCiAJZm9yIChpID0gc2NtLT5mcC0+Y291bnQtMTsg aSA+PSAwOyBpLS0pCi0JCXVuaXhfbm90aW5mbGlnaHQoc2NtLT5mcC0+ZnBbaV0pOworCQl1bml4 X25vdGluZmxpZ2h0KHNjbS0+ZnAtPnVzZXIsIHNjbS0+ZnAtPmZwW2ldKTsKIH0KIAogc3RhdGlj IHZvaWQgdW5peF9kZXN0cnVjdF9zY20oc3RydWN0IHNrX2J1ZmYgKnNrYikKQEAgLTE1MjksNyAr MTUyOSw3IEBAIHN0YXRpYyBpbnQgdW5peF9hdHRhY2hfZmRzKHN0cnVjdCBzY21fY29va2llICpz Y20sIHN0cnVjdCBza19idWZmICpza2IpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJZm9yIChpID0g c2NtLT5mcC0+Y291bnQgLSAxOyBpID49IDA7IGktLSkKLQkJdW5peF9pbmZsaWdodChzY20tPmZw LT5mcFtpXSk7CisJCXVuaXhfaW5mbGlnaHQoc2NtLT5mcC0+dXNlciwgc2NtLT5mcC0+ZnBbaV0p OwogCXJldHVybiBtYXhfbGV2ZWw7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC91bml4L2dhcmJhZ2Uu YyBiL25ldC91bml4L2dhcmJhZ2UuYwppbmRleCA4ZmNkYzIyLi42YTBkNDg1IDEwMDY0NAotLS0g YS9uZXQvdW5peC9nYXJiYWdlLmMKKysrIGIvbmV0L3VuaXgvZ2FyYmFnZS5jCkBAIC0xMTYsNyAr MTE2LDcgQEAgc3RydWN0IHNvY2sgKnVuaXhfZ2V0X3NvY2tldChzdHJ1Y3QgZmlsZSAqZmlscCkK ICAqIGRlc2NyaXB0b3IgaWYgaXQgaXMgZm9yIGFuIEFGX1VOSVggc29ja2V0LgogICovCiAKLXZv aWQgdW5peF9pbmZsaWdodChzdHJ1Y3QgZmlsZSAqZnApCit2b2lkIHVuaXhfaW5mbGlnaHQoc3Ry dWN0IHVzZXJfc3RydWN0ICp1c2VyLCBzdHJ1Y3QgZmlsZSAqZnApCiB7CiAJc3RydWN0IHNvY2sg KnMgPSB1bml4X2dldF9zb2NrZXQoZnApOwogCkBAIC0xMzMsMTEgKzEzMywxMSBAQCB2b2lkIHVu aXhfaW5mbGlnaHQoc3RydWN0IGZpbGUgKmZwKQogCQl9CiAJCXVuaXhfdG90X2luZmxpZ2h0Kys7 CiAJfQotCWZwLT5mX2NyZWQtPnVzZXItPnVuaXhfaW5mbGlnaHQrKzsKKwl1c2VyLT51bml4X2lu ZmxpZ2h0Kys7CiAJc3Bpbl91bmxvY2soJnVuaXhfZ2NfbG9jayk7CiB9CiAKLXZvaWQgdW5peF9u b3RpbmZsaWdodChzdHJ1Y3QgZmlsZSAqZnApCit2b2lkIHVuaXhfbm90aW5mbGlnaHQoc3RydWN0 IHVzZXJfc3RydWN0ICp1c2VyLCBzdHJ1Y3QgZmlsZSAqZnApCiB7CiAJc3RydWN0IHNvY2sgKnMg PSB1bml4X2dldF9zb2NrZXQoZnApOwogCkBAIC0xNTIsNyArMTUyLDcgQEAgdm9pZCB1bml4X25v dGluZmxpZ2h0KHN0cnVjdCBmaWxlICpmcCkKIAkJCWxpc3RfZGVsX2luaXQoJnUtPmxpbmspOwog CQl1bml4X3RvdF9pbmZsaWdodC0tOwogCX0KLQlmcC0+Zl9jcmVkLT51c2VyLT51bml4X2luZmxp Z2h0LS07CisJdXNlci0+dW5peF9pbmZsaWdodC0tOwogCXNwaW5fdW5sb2NrKCZ1bml4X2djX2xv Y2spOwogfQogCi0tIAoyLjQuMQoKCkZyb20gODhhZDI1YzU5ZWU5YThhMTIyN2Q1NjY0OTUwNmVi YTE3MTllNjMxMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFucyBXZXN0Z2FhcmQg UnkgPGhhbnMud2VzdGdhYXJkLnJ5QG9yYWNsZS5jb20+CkRhdGU6IFdlZCwgMyBGZWIgMjAxNiAw OToyNjo1NyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMzRdIG5ldDpBZGQgc3lzY3RsX21heF9z a2JfZnJhZ3MKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29t bWl0IDVmNzRmODJlYTM0YzBkYTgwZWEwYjQ5MTkyYmI1ZWEwNmUwNjM1OTMgXQoKRGV2aWNlcyBt YXkgaGF2ZSBsaW1pdHMgb24gdGhlIG51bWJlciBvZiBmcmFnbWVudHMgaW4gYW4gc2tiIHRoZXkg c3VwcG9ydC4KQ3VycmVudCBjb2RlYmFzZSB1c2VzIGEgY29uc3RhbnQgYXMgbWF4aW11bSBmb3Ig bnVtYmVyIG9mIGZyYWdtZW50cyBvbmUKc2tiIGNhbiBob2xkIGFuZCB1c2UuCldoZW4gZW5hYmxp bmcgc2NhdHRlci9nYXRoZXIgYW5kIHJ1bm5pbmcgdHJhZmZpYyB3aXRoIG1hbnkgc21hbGwgbWVz c2FnZXMKdGhlIGNvZGViYXNlIHVzZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGZyYWdtZW50cyBh bmQgbWF5IHRoZXJlYnkgdmlvbGF0ZQp0aGUgbWF4IGZvciBjZXJ0YWluIGRldmljZXMuClRoZSBw YXRjaCBpbnRyb2R1Y2VzIGEgZ2xvYmFsIHZhcmlhYmxlIGFzIG1heCBudW1iZXIgb2YgZnJhZ21l bnRzLgoKU2lnbmVkLW9mZi1ieTogSGFucyBXZXN0Z2FhcmQgUnkgPGhhbnMud2VzdGdhYXJkLnJ5 QG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBIw6Vrb24gQnVnZ2UgPGhhYWtvbi5idWdnZUBvcmFj bGUuY29tPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5j bHVkZS9saW51eC9za2J1ZmYuaCAgICAgfCAgMSArCiBuZXQvY29yZS9za2J1ZmYuYyAgICAgICAg ICB8ICAyICsrCiBuZXQvY29yZS9zeXNjdGxfbmV0X2NvcmUuYyB8IDEwICsrKysrKysrKysKIG5l dC9pcHY0L3RjcC5jICAgICAgICAgICAgIHwgIDQgKystLQogNCBmaWxlcyBjaGFuZ2VkLCAxNSBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv c2tidWZmLmggYi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oCmluZGV4IDFmMTdhYmUuLjY2MzNiMGMg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc2tidWZmLmgKKysrIGIvaW5jbHVkZS9saW51eC9z a2J1ZmYuaApAQCAtMjAzLDYgKzIwMyw3IEBAIHN0cnVjdCBza19idWZmOwogI2Vsc2UKICNkZWZp bmUgTUFYX1NLQl9GUkFHUyAoNjU1MzYvUEFHRV9TSVpFICsgMSkKICNlbmRpZgorZXh0ZXJuIGlu dCBzeXNjdGxfbWF4X3NrYl9mcmFnczsKIAogdHlwZWRlZiBzdHJ1Y3Qgc2tiX2ZyYWdfc3RydWN0 IHNrYl9mcmFnX3Q7CiAKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NrYnVmZi5jIGIvbmV0L2NvcmUv c2tidWZmLmMKaW5kZXggMmU1ZmNkYS4uYzk3OTNjNiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc2ti dWZmLmMKKysrIGIvbmV0L2NvcmUvc2tidWZmLmMKQEAgLTc5LDYgKzc5LDggQEAKIAogc3RydWN0 IGttZW1fY2FjaGUgKnNrYnVmZl9oZWFkX2NhY2hlIF9fcmVhZF9tb3N0bHk7CiBzdGF0aWMgc3Ry dWN0IGttZW1fY2FjaGUgKnNrYnVmZl9mY2xvbmVfY2FjaGUgX19yZWFkX21vc3RseTsKK2ludCBz eXNjdGxfbWF4X3NrYl9mcmFncyBfX3JlYWRfbW9zdGx5ID0gTUFYX1NLQl9GUkFHUzsKK0VYUE9S VF9TWU1CT0woc3lzY3RsX21heF9za2JfZnJhZ3MpOwogCiAvKioKICAqCXNrYl9wYW5pYyAtIHBy aXZhdGUgZnVuY3Rpb24gZm9yIG91dC1vZi1saW5lIHN1cHBvcnQKZGlmZiAtLWdpdCBhL25ldC9j b3JlL3N5c2N0bF9uZXRfY29yZS5jIGIvbmV0L2NvcmUvc3lzY3RsX25ldF9jb3JlLmMKaW5kZXgg OTViNjEzOS4uYTZiZWI3YiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc3lzY3RsX25ldF9jb3JlLmMK KysrIGIvbmV0L2NvcmUvc3lzY3RsX25ldF9jb3JlLmMKQEAgLTI2LDYgKzI2LDcgQEAgc3RhdGlj IGludCB6ZXJvID0gMDsKIHN0YXRpYyBpbnQgb25lID0gMTsKIHN0YXRpYyBpbnQgbWluX3NuZGJ1 ZiA9IFNPQ0tfTUlOX1NOREJVRjsKIHN0YXRpYyBpbnQgbWluX3JjdmJ1ZiA9IFNPQ0tfTUlOX1JD VkJVRjsKK3N0YXRpYyBpbnQgbWF4X3NrYl9mcmFncyA9IE1BWF9TS0JfRlJBR1M7CiAKIHN0YXRp YyBpbnQgbmV0X21zZ193YXJuOwkvKiBVbnVzZWQsIGJ1dCBzdGlsbCBhIHN5c2N0bCAqLwogCkBA IC0zOTIsNiArMzkzLDE1IEBAIHN0YXRpYyBzdHJ1Y3QgY3RsX3RhYmxlIG5ldF9jb3JlX3RhYmxl W10gPSB7CiAJCS5tb2RlCQk9IDA2NDQsCiAJCS5wcm9jX2hhbmRsZXIJPSBwcm9jX2RvaW50dmVj CiAJfSwKKwl7CisJCS5wcm9jbmFtZQk9ICJtYXhfc2tiX2ZyYWdzIiwKKwkJLmRhdGEJCT0gJnN5 c2N0bF9tYXhfc2tiX2ZyYWdzLAorCQkubWF4bGVuCQk9IHNpemVvZihpbnQpLAorCQkubW9kZQkJ PSAwNjQ0LAorCQkucHJvY19oYW5kbGVyCT0gcHJvY19kb2ludHZlY19taW5tYXgsCisJCS5leHRy YTEJCT0gJm9uZSwKKwkJLmV4dHJhMgkJPSAmbWF4X3NrYl9mcmFncywKKwl9LAogCXsgfQogfTsK IApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2NC90Y3AuYwppbmRleCBiNWY0 ZjVjLi4xOWQzODVhIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3AuYworKysgYi9uZXQvaXB2NC90 Y3AuYwpAQCAtOTIyLDcgKzkyMiw3IEBAIG5ld19zZWdtZW50OgogCiAJCWkgPSBza2Jfc2hpbmZv KHNrYiktPm5yX2ZyYWdzOwogCQljYW5fY29hbGVzY2UgPSBza2JfY2FuX2NvYWxlc2NlKHNrYiwg aSwgcGFnZSwgb2Zmc2V0KTsKLQkJaWYgKCFjYW5fY29hbGVzY2UgJiYgaSA+PSBNQVhfU0tCX0ZS QUdTKSB7CisJCWlmICghY2FuX2NvYWxlc2NlICYmIGkgPj0gc3lzY3RsX21heF9za2JfZnJhZ3Mp IHsKIAkJCXRjcF9tYXJrX3B1c2godHAsIHNrYik7CiAJCQlnb3RvIG5ld19zZWdtZW50OwogCQl9 CkBAIC0xMTg4LDcgKzExODgsNyBAQCBuZXdfc2VnbWVudDoKIAogCQkJaWYgKCFza2JfY2FuX2Nv YWxlc2NlKHNrYiwgaSwgcGZyYWctPnBhZ2UsCiAJCQkJCSAgICAgIHBmcmFnLT5vZmZzZXQpKSB7 Ci0JCQkJaWYgKGkgPT0gTUFYX1NLQl9GUkFHUyB8fCAhc2cpIHsKKwkJCQlpZiAoaSA9PSBzeXNj dGxfbWF4X3NrYl9mcmFncyB8fCAhc2cpIHsKIAkJCQkJdGNwX21hcmtfcHVzaCh0cCwgc2tiKTsK IAkJCQkJZ290byBuZXdfc2VnbWVudDsKIAkJCQl9Ci0tIAoyLjQuMQoKCkZyb20gZDhhYTNjMjky NjgxYjYzZjZhYTBlZTFlYmQyYzEzMDgzMmI5OTE3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogU2l2YSBSZWRkeSBLYWxsYW0gPHNpdmEua2FsbGFtQGJyb2FkY29tLmNvbT4KRGF0ZTog V2VkLCAzIEZlYiAyMDE2IDE0OjA5OjM4ICswNTMwClN1YmplY3Q6IFtQQVRDSCAxNy8zNF0gdGcz OiBGaXggZm9yIHRnMyB0cmFuc21pdCBxdWV1ZSAwIHRpbWVkIG91dCB3aGVuIHRvbwogbWFueSBn c29fc2VncwoKWyBVcHN0cmVhbSBjb21taXQgYjdkOTg3Mjk1Yzc0NTAwYjczM2EwYmEwN2Y5YTli Y2M0MDc0ZmE4MyBdCgp0ZzNfdHNvX2J1ZygpIGNhbiBoaXQgYSBjb25kaXRpb24gd2hlcmUgdGhl IGVudGlyZSB0eCByaW5nIGlzIG5vdCBiaWcKZW5vdWdoIHRvIHNlZ21lbnQgdGhlIEdTTyBwYWNr ZXQuIEZvciBleGFtcGxlLCBpZiBNU1MgaXMgdmVyeSBzbWFsbCwKZ3NvX3NlZ3MgY2FuIGV4Y2Vl ZCB0aGUgdHggcmluZyBzaXplLiBXaGVuIHdlIGhpdCB0aGUgY29uZGl0aW9uLCBpdAp3aWxsIGNh dXNlIHR4IHRpbWVvdXQuCgp0ZzNfdHNvX2J1ZygpIGlzIGNhbGxlZCB0byBoYW5kbGUgVFNPIGFu ZCBETUEgaGFyZHdhcmUgYnVncy4KRm9yIFRTTyBidWdzLCBpZiB0ZzNfdHNvX2J1ZygpIGNhbm5v dCBzdWNjZWVkLCB3ZSBoYXZlIHRvIGRyb3AgdGhlIHBhY2tldC4KRm9yIERNQSBidWdzLCB3ZSBj YW4gc3RpbGwgZmFsbCBiYWNrIHRvIGxpbmVhcml6ZSB0aGUgU0tCIGFuZCBsZXQgdGhlCmhhcmR3 YXJlIHRyYW5zbWl0IHRoZSBUU08gcGFja2V0LgoKVGhpcyBwYXRjaCBhZGRzIGEgZnVuY3Rpb24g dGczX3Rzb19idWdfZ3NvX2NoZWNrKCkgdG8gY2hlY2sgaWYgdGhlcmUKYXJlIGVub3VnaCB0eCBk ZXNjcmlwdG9ycyBmb3IgR1NPIGJlZm9yZSBjYWxsaW5nIHRnM190c29fYnVnKCkuClRoZSBjYWxs ZXIgd2lsbCB0aGVuIGhhbmRsZSB0aGUgZXJyb3IgYXBwcm9wcmlhdGVseSAtIGRyb3Agb3IKbGlu ZXJhaXplIHRoZSBTS0IuCgp2MjogQ29ycmVjdGVkIHBhdGNoIGRlc2NyaXB0aW9uIHRvIGF2b2lk IGNvbmZ1c2lvbi4KClNpZ25lZC1vZmYtYnk6IFNpdmEgUmVkZHkgS2FsbGFtIDxzaXZhLmthbGxh bUBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQ2hhbiA8bWNoYW5AYnJvYWRj b20uY29tPgpBY2tlZC1ieTogUHJhc2hhbnQgU3JlZWRoYXJhbiA8cHJhc2hhbnRAYnJvYWRjb20u Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMgfCAyNSArKysrKysrKysr KysrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgNiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMu YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jCmluZGV4IDBkOGFmNWIuLmQ1 NDE1MjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jCkBAIC03ODMzLDYgKzc4MzMs MTQgQEAgc3RhdGljIGludCB0aWdvbjNfZG1hX2h3YnVnX3dvcmthcm91bmQoc3RydWN0IHRnM19u YXBpICp0bmFwaSwKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgYm9vbCB0ZzNfdHNvX2J1Z19n c29fY2hlY2soc3RydWN0IHRnM19uYXBpICp0bmFwaSwgc3RydWN0IHNrX2J1ZmYgKnNrYikKK3sK KwkvKiBDaGVjayBpZiB3ZSB3aWxsIG5ldmVyIGhhdmUgZW5vdWdoIGRlc2NyaXB0b3JzLAorCSAq IGFzIGdzb19zZWdzIGNhbiBiZSBtb3JlIHRoYW4gY3VycmVudCByaW5nIHNpemUKKwkgKi8KKwly ZXR1cm4gc2tiX3NoaW5mbyhza2IpLT5nc29fc2VncyA8IHRuYXBpLT50eF9wZW5kaW5nIC8gMzsK K30KKwogc3RhdGljIG5ldGRldl90eF90IHRnM19zdGFydF94bWl0KHN0cnVjdCBza19idWZmICos IHN0cnVjdCBuZXRfZGV2aWNlICopOwogCiAvKiBVc2UgR1NPIHRvIHdvcmthcm91bmQgYWxsIFRT TyBwYWNrZXRzIHRoYXQgbWVldCBIVyBidWcgY29uZGl0aW9ucwpAQCAtNzkzNiwxNCArNzk0NCwx OSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgdGczX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJICogdmxhbiBlbmNhcHN1bGF0ZWQuCiAJCSAq LwogCQlpZiAoc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF84MDIxUSkgfHwKLQkJICAgIHNr Yi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfODAyMUFEKSkKLQkJCXJldHVybiB0ZzNfdHNvX2J1 Zyh0cCwgdG5hcGksIHR4cSwgc2tiKTsKKwkJICAgIHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRI X1BfODAyMUFEKSkgeworCQkJaWYgKHRnM190c29fYnVnX2dzb19jaGVjayh0bmFwaSwgc2tiKSkK KwkJCQlyZXR1cm4gdGczX3Rzb19idWcodHAsIHRuYXBpLCB0eHEsIHNrYik7CisJCQlnb3RvIGRy b3A7CisJCX0KIAogCQlpZiAoIXNrYl9pc19nc29fdjYoc2tiKSkgewogCQkJaWYgKHVubGlrZWx5 KChFVEhfSExFTiArIGhkcl9sZW4pID4gODApICYmCi0JCQkgICAgdGczX2ZsYWcodHAsIFRTT19C VUcpKQotCQkJCXJldHVybiB0ZzNfdHNvX2J1Zyh0cCwgdG5hcGksIHR4cSwgc2tiKTsKLQorCQkJ ICAgIHRnM19mbGFnKHRwLCBUU09fQlVHKSkgeworCQkJCWlmICh0ZzNfdHNvX2J1Z19nc29fY2hl Y2sodG5hcGksIHNrYikpCisJCQkJCXJldHVybiB0ZzNfdHNvX2J1Zyh0cCwgdG5hcGksIHR4cSwg c2tiKTsKKwkJCQlnb3RvIGRyb3A7CisJCQl9CiAJCQlpcF9jc3VtID0gaXBoLT5jaGVjazsKIAkJ CWlwX3RvdF9sZW4gPSBpcGgtPnRvdF9sZW47CiAJCQlpcGgtPmNoZWNrID0gMDsKQEAgLTgwNzUs NyArODA4OCw3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB0ZzNfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWlmICh3b3VsZF9oaXRfaHdidWcp IHsKIAkJdGczX3R4X3NrYl91bm1hcCh0bmFwaSwgdG5hcGktPnR4X3Byb2QsIGkpOwogCi0JCWlm IChtc3MpIHsKKwkJaWYgKG1zcyAmJiB0ZzNfdHNvX2J1Z19nc29fY2hlY2sodG5hcGksIHNrYikp IHsKIAkJCS8qIElmIGl0J3MgYSBUU08gcGFja2V0LCBkbyBHU08gaW5zdGVhZCBvZgogCQkJICog YWxsb2NhdGluZyBhbmQgY29weWluZyB0byBhIGxhcmdlIGxpbmVhciBTS0IKIAkJCSAqLwotLSAK Mi40LjEKCgpGcm9tIDg5ZTA2OTMyZWE3MzVlNWJjYTk5ZmRlZWUyOWU0NDZkMGMwMTNjMGMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNv bT4KRGF0ZTogV2VkLCAzIEZlYiAyMDE2IDIzOjMzOjMwICswODAwClN1YmplY3Q6IFtQQVRDSCAx OC8zNF0gc2N0cDogdHJhbnNsYXRlIG5ldHdvcmsgb3JkZXIgdG8gaG9zdCBvcmRlciB3aGVuIHVz ZXJzCiBnZXQgYSBobWFjaWQKClsgVXBzdHJlYW0gY29tbWl0IDdhODRiZDQ2NjQ3ZmYxODFlYjI2 NTlmZGM5OTU5MGU2ZjE2ZTUwMWQgXQoKQ29tbWl0IGVkNWEzNzdkODdkYyAoInNjdHA6IHRyYW5z bGF0ZSBob3N0IG9yZGVyIHRvIG5ldHdvcmsgb3JkZXIgd2hlbgpzZXR0aW5nIGEgaG1hY2lkIikg Y29ycmVjdGVkIHRoZSBobWFjaWQgYnl0ZS1vcmRlciB3aGVuIHNldHRpbmcgYSBobWFjaWQuCmJ1 dCB0aGUgc2FtZSBpc3N1ZSBhbHNvIGV4aXN0cyBvbiBnZXR0aW5nIGEgaG1hY2lkLgoKV2UgZml4 IGl0IGJ5IGNoYW5naW5nIGhtYWNpZHMgdG8gaG9zdCBvcmRlciB3aGVuIHVzZXJzIGdldCB0aGVt IHdpdGgKZ2V0c29ja29wdC4KCkZpeGVzOiBDb21taXQgZWQ1YTM3N2Q4N2RjICgic2N0cDogdHJh bnNsYXRlIGhvc3Qgb3JkZXIgdG8gbmV0d29yayBvcmRlciB3aGVuIHNldHRpbmcgYSBobWFjaWQi KQpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkFja2VkLWJ5 OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9zY3RwL3NvY2tldC5jIHwgOSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc29ja2V0LmMgYi9u ZXQvc2N0cC9zb2NrZXQuYwppbmRleCAxYjgwZjIwLi4zYzU4MzMwIDEwMDY0NAotLS0gYS9uZXQv c2N0cC9zb2NrZXQuYworKysgYi9uZXQvc2N0cC9zb2NrZXQuYwpAQCAtNTU1NSw2ICs1NTU1LDcg QEAgc3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfaG1hY19pZGVudChzdHJ1Y3Qgc29jayAqc2ss IGludCBsZW4sCiAJc3RydWN0IHNjdHBfaG1hY19hbGdvX3BhcmFtICpobWFjczsKIAlfX3UxNiBk YXRhX2xlbiA9IDA7CiAJdTMyIG51bV9pZGVudHM7CisJaW50IGk7CiAKIAlpZiAoIWVwLT5hdXRo X2VuYWJsZSkKIAkJcmV0dXJuIC1FQUNDRVM7CkBAIC01NTcyLDggKzU1NzMsMTIgQEAgc3RhdGlj IGludCBzY3RwX2dldHNvY2tvcHRfaG1hY19pZGVudChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4s CiAJCXJldHVybiAtRUZBVUxUOwogCWlmIChwdXRfdXNlcihudW1faWRlbnRzLCAmcC0+c2htYWNf bnVtX2lkZW50cykpCiAJCXJldHVybiAtRUZBVUxUOwotCWlmIChjb3B5X3RvX3VzZXIocC0+c2ht YWNfaWRlbnRzLCBobWFjcy0+aG1hY19pZHMsIGRhdGFfbGVuKSkKLQkJcmV0dXJuIC1FRkFVTFQ7 CisJZm9yIChpID0gMDsgaSA8IG51bV9pZGVudHM7IGkrKykgeworCQlfX3UxNiBobWFjaWQgPSBu dG9ocyhobWFjcy0+aG1hY19pZHNbaV0pOworCisJCWlmIChjb3B5X3RvX3VzZXIoJnAtPnNobWFj X2lkZW50c1tpXSwgJmhtYWNpZCwgc2l6ZW9mKF9fdTE2KSkpCisJCQlyZXR1cm4gLUVGQVVMVDsK Kwl9CiAJcmV0dXJuIDA7CiB9CiAKLS0gCjIuNC4xCgoKRnJvbSBkMjE5NTVlNDM4NDYwZTMxZTZk MzVkODkxYzdmMzEyMGFkNjZiNDdjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4 YW5kZXIgRHV5Y2sgPGFkdXlja0BtaXJhbnRpcy5jb20+CkRhdGU6IFR1ZSwgOSBGZWIgMjAxNiAw Mjo0OTo1NCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMzRdIGZsb3dfZGlzc2VjdG9yOiBGaXgg dW5hbGlnbmVkIGFjY2VzcyBpbgogX19za2JfZmxvd19kaXNzZWN0b3Igd2hlbiB1c2VkIGJ5IGV0 aF9nZXRfaGVhZGxlbgoKWyBVcHN0cmVhbSBjb21taXQgNDYxNTQ3ZjMxNTg5NzhjMTgwZDc0NDg0 ZDU4ZTgyYmU5YjhlNzM1Nywgc2luY2UKICB3ZSBsYWNrIHRoZSBmbG93IGRpc3NlY3RvciBmbGFn cyBpbiB0aGlzIHJlbGVhc2Ugd2UgZ3VhcmQgdGhlCiAgZmxvdyBsYWJlbCBhY2Nlc3MgdXNpbmcg YSB0ZXN0IG9uICdza2InIGJlaW5nIE5VTEwgXQoKVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1ZSB3 aXRoIHVuYWxpZ25lZCBhY2Nlc3NlcyB3aGVuIHVzaW5nCmV0aF9nZXRfaGVhZGxlbiBvbiBhIHBh Z2UgdGhhdCB3YXMgRE1BIGFsaWduZWQgaW5zdGVhZCBvZiBiZWluZyBJUCBhbGlnbmVkLgpUaGUg ZmFjdCBpcyB3aGVuIHRyeWluZyB0byBjaGVjayB0aGUgbGVuZ3RoIHdlIGRvbid0IG5lZWQgdG8g YmUgbG9va2luZyBhdAp0aGUgZmxvdyBsYWJlbCBzbyB3ZSBjYW4gcmVvcmRlciB0aGUgY2hlY2tz IHRvIGZpcnN0IGNoZWNrIGlmIHdlIGFyZQpzdXBwb3NlZCB0byBnYXRoZXIgdGhlIGZsb3cgbGFi ZWwgYW5kIHRoZW4gbWFrZSB0aGUgY2FsbCB0byBhY3R1YWxseSBnZXQKaXQuCgp2MjogIFVwZGF0 ZWQgcGF0aCBzbyB0aGF0IGVpdGhlciBTVE9QX0FUX0ZMT1dfTEFCRUwgb3IgS0VZX0ZMT1dfTEFC RUwgY2FuCiAgICAgY2F1c2UgdXMgdG8gY2hlY2sgZm9yIHRoZSBmbG93IGxhYmVsLgoKUmVwb3J0 ZWQtYnk6IFNvd21pbmkgVmFyYWRoYW4gPHNvd21pbmkudmFyYWRoYW5Ab3JhY2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogQWxleGFuZGVyIER1eWNrIDxhZHV5Y2tAbWlyYW50aXMuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2Nv cmUvZmxvd19kaXNzZWN0b3IuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Zsb3dfZGlzc2Vj dG9yLmMgYi9uZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jCmluZGV4IDJjMzVjMDIuLmY5NmQyY2Eg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Zsb3dfZGlzc2VjdG9yLmMKKysrIGIvbmV0L2NvcmUvZmxv d19kaXNzZWN0b3IuYwpAQCAtMTEzLDcgKzExMyw2IEBAIGlwOgogCWNhc2UgaHRvbnMoRVRIX1Bf SVBWNik6IHsKIAkJY29uc3Qgc3RydWN0IGlwdjZoZHIgKmlwaDsKIAkJc3RydWN0IGlwdjZoZHIg X2lwaDsKLQkJX19iZTMyIGZsb3dfbGFiZWw7CiAKIGlwdjY6CiAJCWlwaCA9IF9fc2tiX2hlYWRl cl9wb2ludGVyKHNrYiwgbmhvZmYsIHNpemVvZihfaXBoKSwgZGF0YSwgaGxlbiwgJl9pcGgpOwpA QCAtMTMwLDggKzEyOSw5IEBAIGlwdjY6CiAJCWZsb3ctPnNyYyA9IChfX2ZvcmNlIF9fYmUzMilp cHY2X2FkZHJfaGFzaCgmaXBoLT5zYWRkcik7CiAJCWZsb3ctPmRzdCA9IChfX2ZvcmNlIF9fYmUz MilpcHY2X2FkZHJfaGFzaCgmaXBoLT5kYWRkcik7CiAKLQkJZmxvd19sYWJlbCA9IGlwNl9mbG93 bGFiZWwoaXBoKTsKLQkJaWYgKGZsb3dfbGFiZWwpIHsKKwkJaWYgKHNrYiAmJiBpcDZfZmxvd2xh YmVsKGlwaCkpIHsKKwkJCV9fYmUzMiBmbG93X2xhYmVsID0gaXA2X2Zsb3dsYWJlbChpcGgpOwor CiAJCQkvKiBBd2Vzb21lLCBJUHY2IHBhY2tldCBoYXMgYSBmbG93IGxhYmVsIHNvIHdlIGNhbgog CQkJICogdXNlIHRoYXQgdG8gcmVwcmVzZW50IHRoZSBwb3J0cyB3aXRob3V0IGFueQogCQkJICog ZnVydGhlciBkaXNzZWN0aW9uLgotLSAKMi40LjEKCgpGcm9tIDQxMjZlODEwMGQ0YTRjMTE0OTdl MDk4NTQ1YTk5YWNiZjU0ODNmOGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFsZXhh bmRlciBEdXljayA8YWR1eWNrQG1pcmFudGlzLmNvbT4KRGF0ZTogVHVlLCA5IEZlYiAyMDE2IDA2 OjE0OjQzIC0wODAwClN1YmplY3Q6IFtQQVRDSCAyMC8zNF0gbmV0OiBDb3B5IGlubmVyIEwzIGFu ZCBMNCBoZWFkZXJzIGFzIHVuYWxpZ25lZCBvbiBHUkUKIFRFQgoKWyBVcHN0cmVhbSBjb21taXQg Nzg1NjUyMDhkNzNjYTliNjU0ZmI5YTZiMTQyMjE0ZDUyZWVlZGZkMSBdCgpUaGlzIHBhdGNoIGNv cnJlY3RzIHRoZSB1bmFsaWduZWQgYWNjZXNzZXMgc2VlbiBvbiBHUkUgVEVCIHR1bm5lbHMgd2hl bgpnZW5lcmF0aW5nIGhhc2gga2V5cy4gIFNwZWNpZmljYWxseSB3aGF0IHRoaXMgcGF0Y2ggZG9l cyBpcyBtYWtlIGl0IHNvIHRoYXQKd2UgZm9yY2UgdGhlIHVzZSBvZiBza2JfY29weV9iaXRzIHdo ZW4gdGhlIEdSRSBpbm5lciBoZWFkZXJzIHdpbGwgYmUKdW5hbGlnbmVkIGR1ZSB0byBORVRfSVBf QUxJR05FRCBiZWluZyBhIG5vbi16ZXJvIHZhbHVlLgoKU2lnbmVkLW9mZi1ieTogQWxleGFuZGVy IER1eWNrIDxhZHV5Y2tAbWlyYW50aXMuY29tPgpBY2tlZC1ieTogVG9tIEhlcmJlcnQgPHRvbUBo ZXJiZXJ0bGFuZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jIHwgNyArKysrKysrCiAx IGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZmxv d19kaXNzZWN0b3IuYyBiL25ldC9jb3JlL2Zsb3dfZGlzc2VjdG9yLmMKaW5kZXggZjk2ZDJjYS4u MzU1Njc5MSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZmxvd19kaXNzZWN0b3IuYworKysgYi9uZXQv Y29yZS9mbG93X2Rpc3NlY3Rvci5jCkBAIC0yMzMsNiArMjMzLDEzIEBAIGlwdjY6CiAJCQkJCXJl dHVybiBmYWxzZTsKIAkJCQlwcm90byA9IGV0aC0+aF9wcm90bzsKIAkJCQluaG9mZiArPSBzaXpl b2YoKmV0aCk7CisKKwkJCQkvKiBDYXAgaGVhZGVycyB0aGF0IHdlIGFjY2VzcyB2aWEgcG9pbnRl cnMgYXQgdGhlCisJCQkJICogZW5kIG9mIHRoZSBFdGhlcm5ldCBoZWFkZXIgYXMgb3VyIG1heGlt dW0gYWxpZ25tZW50CisJCQkJICogYXQgdGhhdCBwb2ludCBpcyBvbmx5IDIgYnl0ZXMuCisJCQkJ ICovCisJCQkJaWYgKE5FVF9JUF9BTElHTikKKwkJCQkJaGxlbiA9IG5ob2ZmOwogCQkJfQogCQkJ Z290byBhZ2FpbjsKIAkJfQotLSAKMi40LjEKCgpGcm9tIDJmYWIzYjQyMWVmMWExMmJkNGEyNGVm ZjhiNmZkYzVhNzhlM2Y1OTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBC b3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRhdGU6IFdlZCwgMTAgRmViIDIwMTYgMTY6 NDc6MTEgKzAxMDAKU3ViamVjdDogW1BBVENIIDIxLzM0XSBicGY6IGZpeCBicmFuY2ggb2Zmc2V0 IGFkanVzdG1lbnQgb24gYmFja2p1bXBzIGFmdGVyCiBwYXRjaGluZyBjdHggZXhwYW5zaW9uCgpb IFVwc3RyZWFtIGNvbW1pdCBhMWIxNGQyN2VkMDk2NTgzODM1MGYxMzc3ZmY5N2M5M2VlMzgzNDky IF0KCldoZW4gY3R4IGFjY2VzcyBpcyB1c2VkLCB0aGUga2VybmVsIG9mdGVuIG5lZWRzIHRvIGV4 cGFuZC9yZXdyaXRlCmluc3RydWN0aW9ucywgc28gYWZ0ZXIgdGhhdCBwYXRjaGluZywgYnJhbmNo IG9mZnNldHMgaGF2ZSB0byBiZQphZGp1c3RlZCBmb3IgYm90aCBmb3J3YXJkIGFuZCBiYWNrd2Fy ZCBqdW1wcyBpbiB0aGUgbmV3IGVCUEYgcHJvZ3JhbSwKYnV0IGZvciBiYWNrd2FyZCBqdW1wcyBp dCBmYWlscyB0byBhY2NvdW50IHRoZSBkZWx0YS4gTWVhbmluZywgZm9yCmV4YW1wbGUsIGlmIHRo ZSBleHBhbnNpb24gaGFwcGVucyBleGFjdGx5IG9uIHRoZSBpbnNuIHRoYXQgc2l0cyBhdAp0aGUg anVtcCB0YXJnZXQsIGl0IGRvZXNuJ3QgZml4IHVwIHRoZSBiYWNrIGp1bXAgb2Zmc2V0LgoKQW5h bHlzaXMgb24gd2hhdCB0aGUgY2hlY2sgaW4gYWRqdXN0X2JyYW5jaGVzKCkgaXMgY3VycmVudGx5 IGRvaW5nOgoKICAvKiBhZGp1c3Qgb2Zmc2V0IG9mIGptcHMgaWYgbmVjZXNzYXJ5ICovCiAgaWYg KGkgPCBwb3MgJiYgaSArIGluc24tPm9mZiArIDEgPiBwb3MpCiAgICBpbnNuLT5vZmYgKz0gZGVs dGE7CiAgZWxzZSBpZiAoaSA+IHBvcyAmJiBpICsgaW5zbi0+b2ZmICsgMSA8IHBvcykKICAgIGlu c24tPm9mZiAtPSBkZWx0YTsKCkZpcnN0IGNvbmRpdGlvbiAoZm9yd2FyZCBqdW1wcyk6CgogIEJl Zm9yZTogICAgICAgICAgICAgICAgICAgICAgICAgQWZ0ZXI6CgogIGluc25zWzBdICAgICAgICAg ICAgICAgICAgICAgICAgaW5zbnNbMF0KICBpbnNuc1sxXSA8LS0tIGkvaW5zbiAgICAgICAgICAg IGluc25zWzFdIDwtLS0gaS9pbnNuCiAgaW5zbnNbMl0gPC0tLSBwb3MgICAgICAgICAgICAgICBp bnNuc1tQXSA8LS0tIHBvcwogIGluc25zWzNdICAgICAgICAgICAgICAgICAgICAgICAgaW5zbnNb UF0gIGAtLS0tLS18IGRlbHRhCiAgaW5zbnNbNF0gPC0tLSB0YXJnZXRfWCAgICAgICAgICBpbnNu c1tQXSAgIGAtLS0tLXwKICBpbnNuc1s1XSAgICAgICAgICAgICAgICAgICAgICAgIGluc25zWzNd CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNuc1s0XSA8LS0tIHRhcmdldF9Y CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNuc1s1XQoKRmlyc3QgY2FzZSBp cyBpZiB3ZSBjcm9zcyBwb3MtYm91bmRhcnkgYW5kIHRoZSBqdW1wIGluc3RydWN0aW9uIHdhcwpi ZWZvcmUgcG9zLiBUaGlzIGlzIGhhbmRlbGVkIGNvcnJlY3RseS4gSS5lLiBpZiBpID09IHBvcywg dGhlbiB0aGlzCndvdWxkIG1lYW4gb3VyIGp1bXAgdGhhdCB3ZSBjdXJyZW50bHkgY2hlY2sgd2Fz IHRoZSBwYXRjaGxldCBpdHNlbGYKdGhhdCB3ZSBqdXN0IGluamVjdGVkLiBTaW5jZSBzdWNoIHBh dGNobGV0cyBhcmUgc2VsZi1jb250YWluZWQgYW5kCmhhdmUgbm8gYXdhcmVuZXNzIG9mIGFueSBp bnNucyBiZWZvcmUgb3IgYWZ0ZXIgdGhlIHBhdGNoZWQgb25lLCB0aGUKZGVsdGEgaXMgY29ycmVj dGx5IG5vdCBhZGp1c3RlZC4gQWxzbywgZm9yIHRoZSBzZWNvbmQgY29uZGl0aW9uIGluCmNhc2Ug b2YgaSArIGluc24tPm9mZiArIDEgPT0gcG9zLCBtZWFucyB3ZSBqdW1wIHRvIHRoYXQgbmV3bHkg cGF0Y2hlZAppbnN0cnVjdGlvbiwgc28gbm8gb2Zmc2V0IGFkanVzdG1lbnQgYXJlIG5lZWRlZC4g VGhhdCBwYXJ0IGlzIGNvcnJlY3QuCgpTZWNvbmQgY29uZGl0aW9uIChiYWNrd2FyZCBqdW1wcyk6 CgogIEJlZm9yZTogICAgICAgICAgICAgICAgICAgICAgICAgQWZ0ZXI6CgogIGluc25zWzBdICAg ICAgICAgICAgICAgICAgICAgICAgaW5zbnNbMF0KICBpbnNuc1sxXSA8LS0tIHRhcmdldF9YICAg ICAgICAgIGluc25zWzFdIDwtLS0gdGFyZ2V0X1gKICBpbnNuc1syXSA8LS0tIHBvcyA8LS0gdGFy Z2V0X1kgIGluc25zW1BdIDwtLS0gcG9zIDwtLSB0YXJnZXRfWQogIGluc25zWzNdICAgICAgICAg ICAgICAgICAgICAgICAgaW5zbnNbUF0gIGAtLS0tLS18IGRlbHRhCiAgaW5zbnNbNF0gPC0tLSBp L2luc24gICAgICAgICAgICBpbnNuc1tQXSAgIGAtLS0tLXwKICBpbnNuc1s1XSAgICAgICAgICAg ICAgICAgICAgICAgIGluc25zWzNdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnNuc1s0XSA8LS0tIGkvaW5zbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5z bnNbNV0KClNlY29uZCBpbnRlcmVzdGluZyBjYXNlIGlzIHdoZXJlIHdlIGNyb3NzIHBvcy1ib3Vu ZGFyeSBhbmQgdGhlIGp1bXAKaW5zdHJ1Y3Rpb24gd2FzIGFmdGVyIHBvcy4gQmFja3dhcmQganVt cCB3aXRoIGkgPT0gcG9zIHdvdWxkIGJlCmltcG9zc2libGUgYW5kIHBvc2UgYSBidWcgc29tZXdo ZXJlIGluIHRoZSBwYXRjaGxldCwgc28gdGhlIGZpcnN0CmNvbmRpdGlvbiBjaGVja2luZyBpID4g cG9zIGlzIG9rYXkgb25seSBieSBpdHNlbGYuIEhvd2V2ZXIsIGkgKwppbnNuLT5vZmYgKyAxIDwg cG9zIGRvZXMgbm90IGFsd2F5cyB3b3JrIGFzIGludGVuZGVkIHRvIHRyaWdnZXIgdGhlCmFkanVz dG1lbnQuIEl0IHdvcmtzIHdoZW4ganVtcCB0YXJnZXRzIHdvdWxkIGJlIGZhciBvZmYgd2hlcmUg dGhlCmRlbHRhIHdvdWxkbid0IG1hdHRlci4gQnV0LCBmb3IgZXhhbXBsZSwgd2hlcmUgdGhlIGZp eGVkIGluc24tPm9mZgpiZWZvcmUgcG9pbnRlZCB0byBwb3MgKHRhcmdldF9ZKSwgaXQgbm93IHBv aW50cyB0byBwb3MgKyBkZWx0YSwgc28KdGhhdCBhZGRpdGlvbmFsIHJvb20gbmVlZHMgdG8gYmUg dGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgY2hlY2suClRoaXMgbWVhbnMgdGhhdCBpKSBib3Ro IHRlc3RzIGhlcmUgbmVlZCB0byBiZSBhZGp1c3RlZCBpbnRvIHBvcyArIGRlbHRhLAphbmQgaWkp IGZvciB0aGUgc2Vjb25kIGNvbmRpdGlvbiwgdGhlIHRlc3QgbmVlZHMgdG8gYmUgPD0gYXMgcG9z Cml0c2VsZiBjYW4gYmUgYSB0YXJnZXQgaW4gdGhlIGJhY2tqdW1wLCB0b28uCgpGaXhlczogOWJh YzNkNmQ1NDhlICgiYnBmOiBhbGxvdyBleHRlbmRlZCBCUEYgcHJvZ3JhbXMgYWNjZXNzIHNrYiBm aWVsZHMiKQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gu bmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQoga2VybmVsL2JwZi92ZXJpZmllci5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmll ci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jCmluZGV4IDE0MWQ1NjIuLjY1ODI0MTAgMTAwNjQ0 Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYworKysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMK QEAgLTE5NDQsNyArMTk0NCw3IEBAIHN0YXRpYyB2b2lkIGFkanVzdF9icmFuY2hlcyhzdHJ1Y3Qg YnBmX3Byb2cgKnByb2csIGludCBwb3MsIGludCBkZWx0YSkKIAkJLyogYWRqdXN0IG9mZnNldCBv ZiBqbXBzIGlmIG5lY2Vzc2FyeSAqLwogCQlpZiAoaSA8IHBvcyAmJiBpICsgaW5zbi0+b2ZmICsg MSA+IHBvcykKIAkJCWluc24tPm9mZiArPSBkZWx0YTsKLQkJZWxzZSBpZiAoaSA+IHBvcyAmJiBp ICsgaW5zbi0+b2ZmICsgMSA8IHBvcykKKwkJZWxzZSBpZiAoaSA+IHBvcyArIGRlbHRhICYmIGkg KyBpbnNuLT5vZmYgKyAxIDw9IHBvcyArIGRlbHRhKQogCQkJaW5zbi0+b2ZmIC09IGRlbHRhOwog CX0KIH0KLS0gCjIuNC4xCgoKRnJvbSBlOGIzOGE1ZGI4YTJiMGY2ZDU0ODBhZjY1OTRlZDQzNjUy MzVkODJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYXkgVm9zYnVyZ2ggPGpheS52 b3NidXJnaEBjYW5vbmljYWwuY29tPgpEYXRlOiBUdWUsIDIgRmViIDIwMTYgMTM6MzU6NTYgLTA4 MDAKU3ViamVjdDogW1BBVENIIDIyLzM0XSBib25kaW5nOiBGaXggQVJQIG1vbml0b3IgdmFsaWRh dGlvbgoKWyBVcHN0cmVhbSBjb21taXQgMjFhNzVmMDkxNWRkZTg2NzQ3MDhiMzlhYmZjZGExMTM5 MTFjNDliMSBdCgpUaGUgY3VycmVudCBsb2dpYyBpbiBib25kX2FycF9yY3Ygd2lsbCBhY2NlcHQg YW4gaW5jb21pbmcgQVJQIGZvcgp2YWxpZGF0aW9uIGlmIChhKSB0aGUgcmVjZWl2aW5nIHNsYXZl IGlzIGVpdGhlciAiYWN0aXZlIiAod2hpY2ggaW5jbHVkZXMKdGhlIGN1cnJlbnRseSBhY3RpdmUg c2xhdmUsIG9yIHRoZSBjdXJyZW50IEFSUCBzbGF2ZSkgb3IsIChiKSB0aGVyZSBpcyBhCmN1cnJl bnRseSBhY3RpdmUgc2xhdmUsIGFuZCBpdCBoYXMgcmVjZWl2ZWQgYW4gQVJQIHNpbmNlIGl0IGJl Y2FtZSBhY3RpdmUuCkZvciBjYXNlIChiKSwgdGhlIHJlY2VpdmluZyBzbGF2ZSBpc24ndCB0aGUg Y3VycmVudGx5IGFjdGl2ZSBzbGF2ZSwgYW5kIGlzCnJlY2VpdmluZyB0aGUgb3JpZ2luYWwgYnJv YWRjYXN0IEFSUCByZXF1ZXN0LCBub3QgYW4gQVJQIHJlcGx5IGZyb20gdGhlCnRhcmdldC4KCglU aGlzIGxvZ2ljIGNhbiBmYWlsIGlmIHRoZXJlIGlzIG5vIGN1cnJlbnRseSBhY3RpdmUgc2xhdmUu ICBJbgp0aGlzIHNpdHVhdGlvbiwgdGhlIEFSUCBwcm9iZSBsb2dpYyBjeWNsZXMgdGhyb3VnaCBh bGwgc2xhdmVzLCBhc3NpZ25pbmcKZWFjaCBpbiB0dXJuIGFzIHRoZSAiY3VycmVudF9hcnBfc2xh dmUiIGZvciBvbmUgYXJwX2ludGVydmFsLCB0aGVuIHNldHRpbmcKdGhhdCBvbmUgYXMgImFjdGl2 ZSwiIGFuZCBzZW5kaW5nIGFuIEFSUCBwcm9iZSBmcm9tIHRoYXQgc2xhdmUuICBUaGUKY3VycmVu dCBsb2dpYyBleHBlY3RzIHRoZSBBUlAgcmVwbHkgdG8gYXJyaXZlIG9uIHRoZSBzZW5kaW5nCmN1 cnJlbnRfYXJwX3NsYXZlLCBob3dldmVyLCBkdWUgdG8gc3dpdGNoIEZEQiB1cGRhdGluZyBkZWxh eXMsIHRoZSByZXBseQptYXkgYmUgZGlyZWN0ZWQgdG8gYW5vdGhlciBzbGF2ZS4KCglUaGlzIGNh biBhcmlzZSBpZiB0aGUgYm9uZGluZyBzbGF2ZXMgYW5kIHN3aXRjaCBhcmUgd29ya2luZywgYnV0 CnRoZSBBUlAgdGFyZ2V0IGlzIG5vdCByZXNwb25kaW5nLiAgV2hlbiB0aGUgQVJQIHRhcmdldCBy ZWNvdmVycywgYQpjb25kaXRpb24gbWF5IHJlc3VsdCB3aGVyZWluIHRoZSBBUlAgdGFyZ2V0IGhv c3QgcmVwbGllcyBmYXN0ZXIgdGhhbiB0aGUKc3dpdGNoIGNhbiB1cGRhdGUgaXRzIGZvcndhcmRp bmcgdGFibGUsIGNhdXNpbmcgZWFjaCBBUlAgcmVwbHkgdG8gYmUgc2VudAp0byB0aGUgcHJldmlv dXMgY3VycmVudF9hcnBfc2xhdmUuICBUaGlzIHdpbGwgbmV2ZXIgcGFzcyB0aGUgbG9naWMgaW4K Ym9uZF9hcnBfcmN2LCBhcyBuZWl0aGVyIG9mIHRoZSBhYm92ZSBjb25kaXRpb25zIChhKSBvciAo YikgYXJlIG1ldC4KCglTb21lIGV4cGVyaW1lbnRhdGlvbiBvbiBhIExBTiBzaG93cyBBUlAgcmVw bHkgcm91bmQgdHJpcHMgaW4gdGhlCjIwMCB1c2VjIHJhbmdlLCBidXQgbXkgYXZhaWxhYmxlIHN3 aXRjaGVzIG5ldmVyIHVwZGF0ZSB0aGVpciBGREIgaW4gbGVzcwp0aGFuIDQwMDAgdXNlYy4KCglU aGlzIHBhdGNoIGNoYW5nZXMgdGhlIGxvZ2ljIGluIGJvbmRfYXJwX3JjdiB0byBhZGRpdGlvbmFs bHkKYWNjZXB0IGFuIEFSUCByZXBseSBmb3IgdmFsaWRhdGlvbiBvbiBhbnkgc2xhdmUgaWYgdGhl cmUgaXMgYSBjdXJyZW50IEFSUApzbGF2ZSBhbmQgaXQgc2VudCBhbiBBUlAgcHJvYmUgZHVyaW5n IHRoZSBwcmV2aW91cyBhcnBfaW50ZXJ2YWwuCgpGaXhlczogYWVlYTY0YWM3MTdhICgiYm9uZGlu ZzogZG9uJ3QgdHJ1c3QgYXJwIHJlcXVlc3RzIHVubGVzcyBhY3RpdmUgc2xhdmUgcmVhbGx5IHdv cmtzIikKQ2M6IFZlYWNlc2xhdiBGYWxpY28gPHZmYWxpY29AZ21haWwuY29tPgpDYzogQW5keSBH b3Nwb2RhcmVrIDxnb3Nwb0BjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYXkg Vm9zYnVyZ2ggPGpheS52b3NidXJnaEBjYW5vbmljYWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvYm9uZGlu Zy9ib25kX21haW4uYyB8IDM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgYi9kcml2ZXJzL25ldC9i b25kaW5nL2JvbmRfbWFpbi5jCmluZGV4IDcyYmE3NzQuLmJkNzQ0ZTMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9i b25kX21haW4uYwpAQCAtMjE0LDYgKzIxNCw4IEBAIHN0YXRpYyB2b2lkIGJvbmRfdW5pbml0KHN0 cnVjdCBuZXRfZGV2aWNlICpib25kX2Rldik7CiBzdGF0aWMgc3RydWN0IHJ0bmxfbGlua19zdGF0 czY0ICpib25kX2dldF9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqYm9uZF9kZXYsCiAJCQkJCQlz dHJ1Y3QgcnRubF9saW5rX3N0YXRzNjQgKnN0YXRzKTsKIHN0YXRpYyB2b2lkIGJvbmRfc2xhdmVf YXJyX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKK3N0YXRpYyBib29sIGJvbmRf dGltZV9pbl9pbnRlcnZhbChzdHJ1Y3QgYm9uZGluZyAqYm9uZCwgdW5zaWduZWQgbG9uZyBsYXN0 X2FjdCwKKwkJCQkgIGludCBtb2QpOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g R2VuZXJhbCByb3V0aW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKQEAgLTIz OTcsNyArMjM5OSw3IEBAIGludCBib25kX2FycF9yY3YoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IGJvbmRpbmcgKmJvbmQsCiAJCSBzdHJ1Y3Qgc2xhdmUgKnNsYXZlKQogewogCXN0 cnVjdCBhcnBoZHIgKmFycCA9IChzdHJ1Y3QgYXJwaGRyICopc2tiLT5kYXRhOwotCXN0cnVjdCBz bGF2ZSAqY3Vycl9hY3RpdmVfc2xhdmU7CisJc3RydWN0IHNsYXZlICpjdXJyX2FjdGl2ZV9zbGF2 ZSwgKmN1cnJfYXJwX3NsYXZlOwogCXVuc2lnbmVkIGNoYXIgKmFycF9wdHI7CiAJX19iZTMyIHNp cCwgdGlwOwogCWludCBhbGVuLCBpc19hcnAgPSBza2ItPnByb3RvY29sID09IF9fY3B1X3RvX2Jl MTYoRVRIX1BfQVJQKTsKQEAgLTI0NDQsMjYgKzI0NDYsNDEgQEAgaW50IGJvbmRfYXJwX3Jjdihj b25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgYm9uZGluZyAqYm9uZCwKIAkJICAgICAm c2lwLCAmdGlwKTsKIAogCWN1cnJfYWN0aXZlX3NsYXZlID0gcmN1X2RlcmVmZXJlbmNlKGJvbmQt PmN1cnJfYWN0aXZlX3NsYXZlKTsKKwljdXJyX2FycF9zbGF2ZSA9IHJjdV9kZXJlZmVyZW5jZShi b25kLT5jdXJyZW50X2FycF9zbGF2ZSk7CiAKLQkvKiBCYWNrdXAgc2xhdmVzIHdvbid0IHNlZSB0 aGUgQVJQIHJlcGx5LCBidXQgZG8gY29tZSB0aHJvdWdoCi0JICogaGVyZSBmb3IgZWFjaCBBUlAg cHJvYmUgKHNvIHdlIHN3YXAgdGhlIHNpcC90aXAgdG8gdmFsaWRhdGUKLQkgKiB0aGUgcHJvYmUp LiAgSW4gYSAicmVkdW5kYW50IHN3aXRjaCwgY29tbW9uIHJvdXRlciIgdHlwZSBvZgotCSAqIGNv bmZpZ3VyYXRpb24sIHRoZSBBUlAgcHJvYmUgd2lsbCAoaG9wZWZ1bGx5KSB0cmF2ZWwgZnJvbQot CSAqIHRoZSBhY3RpdmUsIHRocm91Z2ggb25lIHN3aXRjaCwgdGhlIHJvdXRlciwgdGhlbiB0aGUg b3RoZXIKLQkgKiBzd2l0Y2ggYmVmb3JlIHJlYWNoaW5nIHRoZSBiYWNrdXAuCisJLyogV2UgJ3Ry dXN0JyB0aGUgcmVjZWl2ZWQgQVJQIGVub3VnaCB0byB2YWxpZGF0ZSBpdCBpZjoKKwkgKgorCSAq IChhKSB0aGUgc2xhdmUgcmVjZWl2aW5nIHRoZSBBUlAgaXMgYWN0aXZlICh3aGljaCBpbmNsdWRl cyB0aGUKKwkgKiBjdXJyZW50IEFSUCBzbGF2ZSwgaWYgYW55KSwgb3IKKwkgKgorCSAqIChiKSB0 aGUgcmVjZWl2aW5nIHNsYXZlIGlzbid0IGFjdGl2ZSwgYnV0IHRoZXJlIGlzIGEgY3VycmVudGx5 CisJICogYWN0aXZlIHNsYXZlIGFuZCBpdCByZWNlaXZlZCB2YWxpZCBhcnAgcmVwbHkocykgYWZ0 ZXIgaXQgYmVjYW1lCisJICogdGhlIGN1cnJlbnRseSBhY3RpdmUgc2xhdmUsIG9yCisJICoKKwkg KiAoYykgdGhlcmUgaXMgYW4gQVJQIHNsYXZlIHRoYXQgc2VudCBhbiBBUlAgZHVyaW5nIHRoZSBw cmlvciBBUlAKKwkgKiBpbnRlcnZhbCwgYW5kIHdlIHJlY2VpdmUgYW4gQVJQIHJlcGx5IG9uIGFu eSBzbGF2ZS4gIFdlIGFjY2VwdAorCSAqIHRoZXNlIGJlY2F1c2Ugc3dpdGNoIEZEQiB1cGRhdGUg ZGVsYXlzIG1heSBkZWxpdmVyIHRoZSBBUlAKKwkgKiByZXBseSB0byBhIHNsYXZlIG90aGVyIHRo YW4gdGhlIHNlbmRlciBvZiB0aGUgQVJQIHJlcXVlc3QuCiAJICoKLQkgKiBXZSAndHJ1c3QnIHRo ZSBhcnAgcmVxdWVzdHMgaWYgdGhlcmUgaXMgYW4gYWN0aXZlIHNsYXZlIGFuZAotCSAqIGl0IHJl Y2VpdmVkIHZhbGlkIGFycCByZXBseShzKSBhZnRlciBpdCBiZWNhbWUgYWN0aXZlLiBUaGlzCi0J ICogaXMgZG9uZSB0byBhdm9pZCBlbmRsZXNzIGxvb3Bpbmcgd2hlbiB3ZSBjYW4ndCByZWFjaCB0 aGUKKwkgKiBOb3RlOiBmb3IgKGIpLCBiYWNrdXAgc2xhdmVzIGFyZSByZWNlaXZpbmcgdGhlIGJy b2FkY2FzdCBBUlAKKwkgKiByZXF1ZXN0LCBub3QgYSByZXBseS4gIFRoaXMgcmVxdWVzdCBwYXNz ZXMgZnJvbSB0aGUgc2VuZGluZworCSAqIHNsYXZlIHRocm91Z2ggdGhlIEwyIHN3aXRjaChlcykg dG8gdGhlIHJlY2VpdmluZyBzbGF2ZS4gIFNpbmNlCisJICogdGhpcyBpcyBjaGVja2luZyB0aGUg cmVxdWVzdCwgc2lwL3RpcCBhcmUgc3dhcHBlZCBmb3IKKwkgKiB2YWxpZGF0aW9uLgorCSAqCisJ ICogVGhpcyBpcyBkb25lIHRvIGF2b2lkIGVuZGxlc3MgbG9vcGluZyB3aGVuIHdlIGNhbid0IHJl YWNoIHRoZQogCSAqIGFycF9pcF90YXJnZXQgYW5kIGZvb2wgb3Vyc2VsdmVzIHdpdGggb3VyIG93 biBhcnAgcmVxdWVzdHMuCiAJICovCi0KIAlpZiAoYm9uZF9pc19hY3RpdmVfc2xhdmUoc2xhdmUp KQogCQlib25kX3ZhbGlkYXRlX2FycChib25kLCBzbGF2ZSwgc2lwLCB0aXApOwogCWVsc2UgaWYg KGN1cnJfYWN0aXZlX3NsYXZlICYmCiAJCSB0aW1lX2FmdGVyKHNsYXZlX2xhc3RfcngoYm9uZCwg Y3Vycl9hY3RpdmVfc2xhdmUpLAogCQkJICAgIGN1cnJfYWN0aXZlX3NsYXZlLT5sYXN0X2xpbmtf dXApKQogCQlib25kX3ZhbGlkYXRlX2FycChib25kLCBzbGF2ZSwgdGlwLCBzaXApOworCWVsc2Ug aWYgKGN1cnJfYXJwX3NsYXZlICYmIChhcnAtPmFyX29wID09IGh0b25zKEFSUE9QX1JFUExZKSkg JiYKKwkJIGJvbmRfdGltZV9pbl9pbnRlcnZhbChib25kLAorCQkJCSAgICAgICBkZXZfdHJhbnNf c3RhcnQoY3Vycl9hcnBfc2xhdmUtPmRldiksIDEpKQorCQlib25kX3ZhbGlkYXRlX2FycChib25k LCBzbGF2ZSwgc2lwLCB0aXApOwogCiBvdXRfdW5sb2NrOgogCWlmIChhcnAgIT0gKHN0cnVjdCBh cnBoZHIgKilza2ItPmRhdGEpCi0tIAoyLjQuMQoKCkZyb20gYjM0MTBiMDZmYjliN2VhM2JiNGZj ODU5NDAzODdjMDE1MDdmODExOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDQgRmViIDIwMTYgMDY6MjM6 MjggLTA4MDAKU3ViamVjdDogW1BBVENIIDIzLzM0XSBpcHY0OiBmaXggbWVtb3J5IGxlYWtzIGlu IGlwX2Ntc2dfc2VuZCgpIGNhbGxlcnMKClsgVXBzdHJlYW0gY29tbWl0IDkxOTQ4MzA5NmJmZTc1 ZGRhMzM4ZTk4ZDU2ZGE5MWEyNjM3NDZhMGEgXQoKRG1pdHJ5IHJlcG9ydGVkIG1lbW9yeSBsZWFr cyBvZiBJUCBvcHRpb25zIGFsbG9jYXRlZCBpbgppcF9jbXNnX3NlbmQoKSB3aGVuL2lmIHRoaXMg ZnVuY3Rpb24gcmV0dXJucyBhbiBlcnJvci4KCkNhbGxlcnMgYXJlIHJlc3BvbnNpYmxlIGZvciB0 aGUgZnJlZWluZy4KCk1hbnkgdGhhbmtzIHRvIERtaXRyeSBmb3IgdGhlIHJlcG9ydCBhbmQgZGlh Z25vc3RpYy4KClJlcG9ydGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9p cHY0L2lwX3NvY2tnbHVlLmMgfCAyICsrCiBuZXQvaXB2NC9waW5nLmMgICAgICAgIHwgNCArKyst CiBuZXQvaXB2NC9yYXcuYyAgICAgICAgIHwgNCArKystCiBuZXQvaXB2NC91ZHAuYyAgICAgICAg IHwgNCArKystCiA0IGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfc29ja2dsdWUuYyBiL25ldC9pcHY0L2lwX3Nv Y2tnbHVlLmMKaW5kZXggNmRkZGU4OS4uYjZjN2JkZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBf c29ja2dsdWUuYworKysgYi9uZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jCkBAIC0yNDksNiArMjQ5LDgg QEAgaW50IGlwX2Ntc2dfc2VuZChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBtc2doZHIgKm1zZywg c3RydWN0IGlwY21fY29va2llICppcGMsCiAJCXN3aXRjaCAoY21zZy0+Y21zZ190eXBlKSB7CiAJ CWNhc2UgSVBfUkVUT1BUUzoKIAkJCWVyciA9IGNtc2ctPmNtc2dfbGVuIC0gQ01TR19BTElHTihz aXplb2Yoc3RydWN0IGNtc2doZHIpKTsKKworCQkJLyogT3VyIGNhbGxlciBpcyByZXNwb25zaWJs ZSBmb3IgZnJlZWluZyBpcGMtPm9wdCAqLwogCQkJZXJyID0gaXBfb3B0aW9uc19nZXQobmV0LCAm aXBjLT5vcHQsIENNU0dfREFUQShjbXNnKSwKIAkJCQkJICAgICBlcnIgPCA0MCA/IGVyciA6IDQw KTsKIAkJCWlmIChlcnIpCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9waW5nLmMgYi9uZXQvaXB2NC9w aW5nLmMKaW5kZXggMDVmZjQ0Yi4uZjZlZTBkNSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcGluZy5j CisrKyBiL25ldC9pcHY0L3BpbmcuYwpAQCAtNzQ1LDggKzc0NSwxMCBAQCBzdGF0aWMgaW50IHBp bmdfdjRfc2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90 IGxlbikKIAogCWlmIChtc2ctPm1zZ19jb250cm9sbGVuKSB7CiAJCWVyciA9IGlwX2Ntc2dfc2Vu ZChzb2NrX25ldChzayksIG1zZywgJmlwYywgZmFsc2UpOwotCQlpZiAoZXJyKQorCQlpZiAodW5s aWtlbHkoZXJyKSkgeworCQkJa2ZyZWUoaXBjLm9wdCk7CiAJCQlyZXR1cm4gZXJyOworCQl9CiAJ CWlmIChpcGMub3B0KQogCQkJZnJlZSA9IDE7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcmF3 LmMgYi9uZXQvaXB2NC9yYXcuYwppbmRleCA1NjFjZDRiLi5jNzdhYWM3IDEwMDY0NAotLS0gYS9u ZXQvaXB2NC9yYXcuYworKysgYi9uZXQvaXB2NC9yYXcuYwpAQCAtNTQzLDggKzU0MywxMCBAQCBz dGF0aWMgaW50IHJhd19zZW5kbXNnKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNn LCBzaXplX3QgbGVuKQogCiAJaWYgKG1zZy0+bXNnX2NvbnRyb2xsZW4pIHsKIAkJZXJyID0gaXBf Y21zZ19zZW5kKHNvY2tfbmV0KHNrKSwgbXNnLCAmaXBjLCBmYWxzZSk7Ci0JCWlmIChlcnIpCisJ CWlmICh1bmxpa2VseShlcnIpKSB7CisJCQlrZnJlZShpcGMub3B0KTsKIAkJCWdvdG8gb3V0Owor CQl9CiAJCWlmIChpcGMub3B0KQogCQkJZnJlZSA9IDE7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L2lw djQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCAxYjhjNWJhLi5hMzkwMTc0IDEwMDY0NAot LS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQvaXB2NC91ZHAuYwpAQCAtOTYzLDggKzk2Mywx MCBAQCBpbnQgdWRwX3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2cs IHNpemVfdCBsZW4pCiAJaWYgKG1zZy0+bXNnX2NvbnRyb2xsZW4pIHsKIAkJZXJyID0gaXBfY21z Z19zZW5kKHNvY2tfbmV0KHNrKSwgbXNnLCAmaXBjLAogCQkJCSAgIHNrLT5za19mYW1pbHkgPT0g QUZfSU5FVDYpOwotCQlpZiAoZXJyKQorCQlpZiAodW5saWtlbHkoZXJyKSkgeworCQkJa2ZyZWUo aXBjLm9wdCk7CiAJCQlyZXR1cm4gZXJyOworCQl9CiAJCWlmIChpcGMub3B0KQogCQkJZnJlZSA9 IDE7CiAJCWNvbm5lY3RlZCA9IDA7Ci0tIAoyLjQuMQoKCkZyb20gNjMxZGY2YjkwYzdlZWZmNDJk YTI0MDIzZjRiYTNlYmMyY2FiMjI5NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUmFp bmVyIFdlaWt1c2F0IDxyd2Vpa3VzYXRAbW9iaWxlYWN0aXZlZGVmZW5zZS5jb20+CkRhdGU6IFRo dSwgMTEgRmViIDIwMTYgMTk6Mzc6MjcgKzAwMDAKU3ViamVjdDogW1BBVENIIDI0LzM0XSBhZl91 bml4OiBHdWFyZCBhZ2FpbnN0IG90aGVyID09IHNrIGluCiB1bml4X2RncmFtX3NlbmRtc2cKClsg VXBzdHJlYW0gY29tbWl0IGE1NTI3ZGRhMzQ0ZmZmMDUxNGI3OTg5ZWY3YTc1NTcyOTc2OWRhYTEg XQoKVGhlIHVuaXhfZGdyYW1fc2VuZG1zZyByb3V0aW5lIHVzZSB0aGUgZm9sbG93aW5nIHRlc3QK CmlmICh1bmxpa2VseSh1bml4X3BlZXIob3RoZXIpICE9IHNrICYmIHVuaXhfcmVjdnFfZnVsbChv dGhlcikpKSB7Cgp0byBkZXRlcm1pbmUgaWYgc2sgYW5kIG90aGVyIGFyZSBpbiBhbiBuOjEgYXNz b2NpYXRpb24gKGVpdGhlcgplc3RhYmxpc2hlZCB2aWEgY29ubmVjdCBvciBieSB1c2luZyBzZW5k dG8gdG8gc2VuZCBtZXNzYWdlcyB0byBhbgp1bnJlbGF0ZWQgc29ja2V0IGlkZW50aWZpZWQgYnkg YWRkcmVzcykuIFRoaXMgaXNuJ3QgY29ycmVjdCBhcyB0aGUKc3BlY2lmaWVkIGFkZHJlc3MgY291 bGQgaGF2ZSBiZWVuIGJvdW5kIHRvIHRoZSBzZW5kaW5nIHNvY2tldCBpdHNlbGYgb3IKYmVjYXVz ZSB0aGlzIHNvY2tldCBjb3VsZCBoYXZlIGJlZW4gY29ubmVjdGVkIHRvIGl0c2VsZiBieSB0aGUg dGltZSBvZgp0aGUgdW5peF9wZWVyX2dldCBidXQgZGlzY29ubmVjdGVkIGJlZm9yZSB0aGUgdW5p eF9zdGF0ZV9sb2NrKG90aGVyKS4gSW4KYm90aCBjYXNlcywgdGhlIGlmLWJsb2NrIHdvdWxkIGJl IGVudGVyZWQgZGVzcGl0ZSBvdGhlciA9PSBzayB3aGljaAptaWdodCBlaXRoZXIgYmxvY2sgdGhl IHNlbmRlciB1bmludGVudGlvbmFsbHkgb3IgbGVhZCB0byB0cnlpbmcgdG8gdW5sb2NrCnRoZSBz YW1lIHNwaW4gbG9jayB0d2ljZSBmb3IgYSBub24tYmxvY2tpbmcgc2VuZC4gQWRkIGEgb3RoZXIg IT0gc2sKY2hlY2sgdG8gZ3VhcmQgYWdhaW5zdCB0aGlzLgoKRml4ZXM6IDdkMjY3Mjc4YTllYyAo InVuaXg6IGF2b2lkIHVzZS1hZnRlci1mcmVlIGluIGVwX3JlbW92ZV93YWl0X3F1ZXVlIikKUmVw b3J0ZWQtQnk6IFBoaWxpcHAgSGFobiA8cG1oYWhuQHBtaGFobi5kZT4KU2lnbmVkLW9mZi1ieTog UmFpbmVyIFdlaWt1c2F0IDxyd2Vpa3VzYXRAbW9iaWxlYWN0aXZlZGVmZW5zZS5jb20+ClRlc3Rl ZC1ieTogUGhpbGlwcCBIYWhuIDxwbWhhaG5AcG1oYWhuLmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3VuaXgvYWZfdW5peC5j IHwgNyArKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3VuaXgvYWZfdW5peC5jIGIvbmV0L3VuaXgvYWZfdW5peC5j CmluZGV4IGQ2NDQwNDIuLjUzNWE2NDIgMTAwNjQ0Ci0tLSBhL25ldC91bml4L2FmX3VuaXguYwor KysgYi9uZXQvdW5peC9hZl91bml4LmMKQEAgLTE3MTQsNyArMTcxNCwxMiBAQCByZXN0YXJ0X2xv Y2tlZDoKIAkJCWdvdG8gb3V0X3VubG9jazsKIAl9CiAKLQlpZiAodW5saWtlbHkodW5peF9wZWVy KG90aGVyKSAhPSBzayAmJiB1bml4X3JlY3ZxX2Z1bGwob3RoZXIpKSkgeworCS8qIG90aGVyID09 IHNrICYmIHVuaXhfcGVlcihvdGhlcikgIT0gc2sgaWYKKwkgKiAtIHVuaXhfcGVlcihzaykgPT0g TlVMTCwgZGVzdGluYXRpb24gYWRkcmVzcyBib3VuZCB0byBzaworCSAqIC0gdW5peF9wZWVyKHNr KSA9PSBzayBieSB0aW1lIG9mIGdldCBidXQgZGlzY29ubmVjdGVkIGJlZm9yZSBsb2NrCisJICov CisJaWYgKG90aGVyICE9IHNrICYmCisJICAgIHVubGlrZWx5KHVuaXhfcGVlcihvdGhlcikgIT0g c2sgJiYgdW5peF9yZWN2cV9mdWxsKG90aGVyKSkpIHsKIAkJaWYgKHRpbWVvKSB7CiAJCQl0aW1l byA9IHVuaXhfd2FpdF9mb3JfcGVlcihvdGhlciwgdGltZW8pOwogCi0tIAoyLjQuMQoKCkZyb20g MDhiZGU1ZmU0MzhmNTcyZjkyYjU4NjllY2ZhMjdhYmQxOTJkOTkyNiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0JqPUMzPUI4cm49MjBNb3JrPz0gPGJqb3JuQG1vcmsu bm8+CkRhdGU6IEZyaSwgMTIgRmViIDIwMTYgMTY6NDI6MTQgKzAxMDAKU3ViamVjdDogW1BBVENI IDI1LzM0XSBxbWlfd3dhbjogYWRkICI0RyBMVEUgdXNiLW1vZGVtIFU5MDEiCk1JTUUtVmVyc2lv bjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRy YW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCBhYWM4ZDNjMjgyZTAyNGMz NDRjNWI4NmRjMWVhYjdhZjg4YmI5NzE2IF0KClRob21hcyByZXBvcnRzOgoKVDogIEJ1cz0wMSBM ZXY9MDEgUHJudD0wMSBQb3J0PTAzIENudD0wMSBEZXYjPSAgNCBTcGQ9NDgwIE14Q2g9IDAKRDog IFZlcj0gMi4wMCBDbHM9MDAoPmlmYyApIFN1Yj0wMCBQcm90PTAwIE14UFM9NjQgI0NmZ3M9ICAx ClA6ICBWZW5kb3I9MDVjNiBQcm9kSUQ9NjAwMSBSZXY9MDAuMDAKUzogIE1hbnVmYWN0dXJlcj1V U0IgTW9kZW0KUzogIFByb2R1Y3Q9VVNCIE1vZGVtClM6ICBTZXJpYWxOdW1iZXI9MTIzNDU2Nzg5 MEFCQ0RFRgpDOiAgI0lmcz0gNSBDZmcjPSAxIEF0cj1lMCBNeFB3cj01MDBtQQpJOiAgSWYjPSAw IEFsdD0gMCAjRVBzPSAyIENscz1mZih2ZW5kLikgU3ViPWZmIFByb3Q9ZmYgRHJpdmVyPW9wdGlv bgpJOiAgSWYjPSAxIEFsdD0gMCAjRVBzPSAzIENscz1mZih2ZW5kLikgU3ViPWZmIFByb3Q9ZmYg RHJpdmVyPW9wdGlvbgpJOiAgSWYjPSAyIEFsdD0gMCAjRVBzPSAyIENscz1mZih2ZW5kLikgU3Vi PWZmIFByb3Q9ZmYgRHJpdmVyPW9wdGlvbgpJOiAgSWYjPSAzIEFsdD0gMCAjRVBzPSAzIENscz1m Zih2ZW5kLikgU3ViPWZmIFByb3Q9ZmYgRHJpdmVyPXFtaV93d2FuCkk6ICBJZiM9IDQgQWx0PSAw ICNFUHM9IDIgQ2xzPTA4KHN0b3IuKSBTdWI9MDYgUHJvdD01MCBEcml2ZXI9dXNiLXN0b3JhZ2UK ClJlcG9ydGVkLWJ5OiBUaG9tYXMgU2Now6RmZXIgPHRzY2hhZWZlckB0LW9ubGluZS5kZT4KU2ln bmVkLW9mZi1ieTogQmrDuHJuIE1vcmsgPGJqb3JuQG1vcmsubm8+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2Iv cW1pX3d3YW4uYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3 YW4uYwppbmRleCA3MTE5MGRjLi5jZmZiMjUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2Iv cW1pX3d3YW4uYworKysgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYwpAQCAtNTQyLDYgKzU0 Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBwcm9kdWN0c1tdID0gewog CiAJLyogMy4gQ29tYmluZWQgaW50ZXJmYWNlIGRldmljZXMgbWF0Y2hpbmcgb24gaW50ZXJmYWNl IG51bWJlciAqLwogCXtRTUlfRklYRURfSU5URigweDA0MDgsIDB4ZWE0MiwgNCl9LAkvKiBZb3Rh IC8gTWVnYWZvbiBNMTAwLTEgKi8KKwl7UU1JX0ZJWEVEX0lOVEYoMHgwNWM2LCAweDYwMDEsIDMp fSwJLyogNEcgTFRFIHVzYi1tb2RlbSBVOTAxICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MDVjNiwg MHg3MDAwLCAwKX0sCiAJe1FNSV9GSVhFRF9JTlRGKDB4MDVjNiwgMHg3MDAxLCAxKX0sCiAJe1FN SV9GSVhFRF9JTlRGKDB4MDVjNiwgMHg3MDAyLCAxKX0sCi0tIAoyLjQuMQoKCkZyb20gOGUxMjA4 ZDE1YzU5NGZkOGM4MzgwZDMxZWMwYzQ4YTkwYzQ1NzQwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogQW1pciBWYWRhaSA8YW1pckB2YWRhaS5tZT4KRGF0ZTogV2VkLCAxNyBGZWIgMjAx NiAxNzoyNDoyMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjYvMzRdIG5ldC9tbHg0X2VuOiBDb3Vu dCBIVyBidWZmZXIgb3ZlcnJ1biBvbmx5IG9uY2UKClsgVXBzdHJlYW0gY29tbWl0IDI4MWU4YjJm ZGY4ZTRlZjM2NmI4OTk0NTNjYWU1MGUwOWI1NzdhZGEgXQoKUmRyb3BPdmZsdyBjb3VudHMgb3Zl cnJ1biBvZiBIVyBidWZmZXIsIHRoZXJlZm9yZSBzaG91bGQKYmUgdXNlZCBmb3IgcnhfZmlmb19l cnJvcnMgb25seS4KCkN1cnJlbnRseSBSZHJvcE92Zmx3IGNvdW50ZXIgaXMgbWlzdGFrZW5seSBh bHNvIHNldCBpbnRvCnJ4X21pc3NlZF9lcnJvcnMgYW5kIHJ4X292ZXJfZXJyb3JzIHRvbywgd2hp Y2ggbWFrZXMgdGhlCmRldmljZSB0b3RhbCBkcm9wcGVkIHBhY2tldHMgYWNjb3VudGluZyB0byBz aG93IHdyb25nIHJlc3VsdHMuCgpGaXggdGhhdC4gVXNlIGl0IGZvciByeF9maWZvX2Vycm9ycyBv bmx5LgoKRml4ZXM6IGMyN2EwMmNkOTRkNiAoJ21seDRfZW46IEFkZCBkcml2ZXIgZm9yIE1lbGxh bm94IENvbm5lY3RYIDEwR2JFIE5JQycpClNpZ25lZC1vZmYtYnk6IEFtaXIgVmFkYWkgPGFtaXJA dmFkYWkubWU+ClNpZ25lZC1vZmYtYnk6IEV1Z2VuaWEgRW1hbnRheWV2IDxldWdlbmlhQG1lbGxh bm94LmNvbT4KU2lnbmVkLW9mZi1ieTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9wb3J0LmMgfCA0ICsrLS0K IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9wb3J0LmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3BvcnQuYwppbmRleCAwYTU2ZjAxLi43 NjBhOGIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2Vu X3BvcnQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3BvcnQu YwpAQCAtMjIzLDExICsyMjMsMTEgQEAgaW50IG1seDRfZW5fRFVNUF9FVEhfU1RBVFMoc3RydWN0 IG1seDRfZW5fZGV2ICptZGV2LCB1OCBwb3J0LCB1OCByZXNldCkKIAlzdGF0cy0+Y29sbGlzaW9u cyA9IDA7CiAJc3RhdHMtPnJ4X2Ryb3BwZWQgPSBiZTMyX3RvX2NwdShtbHg0X2VuX3N0YXRzLT5S RFJPUCk7CiAJc3RhdHMtPnJ4X2xlbmd0aF9lcnJvcnMgPSBiZTMyX3RvX2NwdShtbHg0X2VuX3N0 YXRzLT5SZHJvcExlbmd0aCk7Ci0Jc3RhdHMtPnJ4X292ZXJfZXJyb3JzID0gYmUzMl90b19jcHUo bWx4NF9lbl9zdGF0cy0+UmRyb3BPdmZsdyk7CisJc3RhdHMtPnJ4X292ZXJfZXJyb3JzID0gMDsK IAlzdGF0cy0+cnhfY3JjX2Vycm9ycyA9IGJlMzJfdG9fY3B1KG1seDRfZW5fc3RhdHMtPlJDUkMp OwogCXN0YXRzLT5yeF9mcmFtZV9lcnJvcnMgPSAwOwogCXN0YXRzLT5yeF9maWZvX2Vycm9ycyA9 IGJlMzJfdG9fY3B1KG1seDRfZW5fc3RhdHMtPlJkcm9wT3ZmbHcpOwotCXN0YXRzLT5yeF9taXNz ZWRfZXJyb3JzID0gYmUzMl90b19jcHUobWx4NF9lbl9zdGF0cy0+UmRyb3BPdmZsdyk7CisJc3Rh dHMtPnJ4X21pc3NlZF9lcnJvcnMgPSAwOwogCXN0YXRzLT50eF9hYm9ydGVkX2Vycm9ycyA9IDA7 CiAJc3RhdHMtPnR4X2NhcnJpZXJfZXJyb3JzID0gMDsKIAlzdGF0cy0+dHhfZmlmb19lcnJvcnMg PSAwOwotLSAKMi40LjEKCgpGcm9tIDg2MDEwMWJmMDAwYTZkMThjYjVhZTM4NWE2YjgwNDFjMTcz Y2QwYzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEV1Z2VuaWEgRW1hbnRheWV2IDxl dWdlbmlhQG1lbGxhbm94LmNvbT4KRGF0ZTogV2VkLCAxNyBGZWIgMjAxNiAxNzoyNDoyMyArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMjcvMzRdIG5ldC9tbHg0X2VuOiBDaG9vc2UgdGltZS1zdGFtcGlu ZyBzaGlmdCB2YWx1ZSBhY2NvcmRpbmcKIHRvIEhXIGZyZXF1ZW5jeQoKWyBVcHN0cmVhbSBjb21t aXQgMzFjMTI4YjY2ZTViMjhmNDY4MDc2ZTRmM2NhMzAyNWMzNTM0MjA0MSBdCgpQcmV2aW91c2x5 LCB0aGUgc2hpZnQgdmFsdWUgdXNlZCBmb3IgdGltZS1zdGFtcGluZyB3YXMgY29uc3RhbnQgYW5k IGRpZG4ndApkZXBlbmQgb24gdGhlIEhXIGNoaXAgZnJlcXVlbmN5LiBDaGFuZ2UgdGhhdCB0byB0 YWtlIHRoZSBmcmVxdWVuY3kgaW50byBhY2NvdW50CmFuZCBjYWxjdWxhdGUgdGhlIG1heGltYWwg dmFsdWUgaW4gY3ljbGVzIHBlciB3cmFwYXJvdW5kIG9mIHRlbiBzZWNvbmRzLiBUaGlzCnRpbWUg c2xvdCB3YXMgY2hvc2VuIHNpbmNlIGl0IGdpdmVzIGEgZ29vZCBhY2N1cmFjeSBpbiB0aW1lIHN5 bmNocm9uaXphdGlvbi4KCkFsZ29yaXRobSBmb3Igc2hpZnQgdmFsdWUgY2FsY3VsYXRpb246CiAq IFJvdW5kIHVwIHRoZSBtYXhpbWFsIHZhbHVlIGluIGN5Y2xlcyB0byBuZWFyZXN0IHBvd2VyIG9m IHR3bwoKICogQ2FsY3VsYXRlIG1heGltYWwgbXVsdGlwbGllciBieSBkaXZpc2lvbiBvZiBhbGwg NjQgYml0cyBzZXQKICAgdG8gYWJvdmUgcmVzdWx0CgogKiBUaGVuLCBpbnZlcnQgdGhlIGZ1bmN0 aW9uIGNsb2Nrc291cmNlX2toejJtdWx0KCkgdG8gZ2V0IHRoZSBzaGlmdCBmcm9tCiAgIG1heGlt YWwgbXVsdCB2YWx1ZQoKRml4ZXM6IGVjNjkzZDQ3MDEwZSAoJ25ldC9tbHg0X2VuOiBBZGQgSFcg dGltZXN0YW1waW5nIChUUykgc3VwcG9ydCcpClNpZ25lZC1vZmYtYnk6IEV1Z2VuaWEgRW1hbnRh eWV2IDxldWdlbmlhQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IE1hdGFuIEJhcmFrIDxtYXRh bmJAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxs YW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX2Nsb2NrLmMg fCAyNSArKysrKysrKysrKysrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTkgaW5zZXJ0 aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg0L2VuX2Nsb2NrLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg0L2VuX2Nsb2NrLmMKaW5kZXggOGEwODNkNy4uZGFlMmViYiAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9jbG9jay5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fY2xvY2suYwpAQCAtMjM2LDYgKzIzNiwyNCBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIG1seDRfZW5fcHRwX2Nsb2NrX2lu Zm8gPSB7CiAJLmVuYWJsZQkJPSBtbHg0X2VuX3BoY19lbmFibGUsCiB9OwogCisjZGVmaW5lIE1M WDRfRU5fV1JBUF9BUk9VTkRfU0VDCTEwVUxMCisKKy8qIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRl cyB0aGUgbWF4IHNoaWZ0IHRoYXQgZW5hYmxlcyB0aGUgdXNlciByYW5nZQorICogb2YgTUxYNF9F Tl9XUkFQX0FST1VORF9TRUMgdmFsdWVzIGluIHRoZSBjeWNsZXMgcmVnaXN0ZXIuCisgKi8KK3N0 YXRpYyB1MzIgZnJlcV90b19zaGlmdCh1MTYgZnJlcSkKK3sKKwl1MzIgZnJlcV9raHogPSBmcmVx ICogMTAwMDsKKwl1NjQgbWF4X3ZhbF9jeWNsZXMgPSBmcmVxX2toeiAqIDEwMDAgKiBNTFg0X0VO X1dSQVBfQVJPVU5EX1NFQzsKKwl1NjQgbWF4X3ZhbF9jeWNsZXNfcm91bmRlZCA9IGlzX3Bvd2Vy X29mXzIobWF4X3ZhbF9jeWNsZXMgKyAxKSA/CisJCW1heF92YWxfY3ljbGVzIDogcm91bmR1cF9w b3dfb2ZfdHdvKG1heF92YWxfY3ljbGVzKSAtIDE7CisJLyogY2FsY3VsYXRlIG1heCBwb3NzaWJs ZSBtdWx0aXBsaWVyIGluIG9yZGVyIHRvIGZpdCBpbiA2NGJpdCAqLworCXU2NCBtYXhfbXVsID0g ZGl2X3U2NCgweGZmZmZmZmZmZmZmZmZmZmZVTEwsIG1heF92YWxfY3ljbGVzX3JvdW5kZWQpOwor CisJLyogVGhpcyBjb21lcyBmcm9tIHRoZSByZXZlcnNlIG9mIGNsb2Nrc291cmNlX2toejJtdWx0 ICovCisJcmV0dXJuIGlsb2cyKGRpdl91NjQobWF4X211bCAqIGZyZXFfa2h6LCAxMDAwMDAwKSk7 Cit9CisKIHZvaWQgbWx4NF9lbl9pbml0X3RpbWVzdGFtcChzdHJ1Y3QgbWx4NF9lbl9kZXYgKm1k ZXYpCiB7CiAJc3RydWN0IG1seDRfZGV2ICpkZXYgPSBtZGV2LT5kZXY7CkBAIC0yNDcsMTIgKzI2 NSw3IEBAIHZvaWQgbWx4NF9lbl9pbml0X3RpbWVzdGFtcChzdHJ1Y3QgbWx4NF9lbl9kZXYgKm1k ZXYpCiAJbWVtc2V0KCZtZGV2LT5jeWNsZXMsIDAsIHNpemVvZihtZGV2LT5jeWNsZXMpKTsKIAlt ZGV2LT5jeWNsZXMucmVhZCA9IG1seDRfZW5fcmVhZF9jbG9jazsKIAltZGV2LT5jeWNsZXMubWFz ayA9IENMT0NLU09VUkNFX01BU0soNDgpOwotCS8qIFVzaW5nIHNoaWZ0IHRvIG1ha2UgY2FsY3Vs YXRpb24gbW9yZSBhY2N1cmF0ZS4gU2luY2UgY3VycmVudCBIVwotCSAqIGNsb2NrIGZyZXF1ZW5j eSBpcyA0MjcgTUh6LCBhbmQgY3ljbGVzIGFyZSBnaXZlbiB1c2luZyBhIDQ4IGJpdHMKLQkgKiBy ZWdpc3RlciwgdGhlIGJpZ2dlc3Qgc2hpZnQgd2hlbiBjYWxjdWxhdGluZyB1c2luZyB1NjQsIGlz IDE0Ci0JICogKG1heF9jeWNsZXMgKiBtdWx0aXBsaWVyIDwgMl42NCkKLQkgKi8KLQltZGV2LT5j eWNsZXMuc2hpZnQgPSAxNDsKKwltZGV2LT5jeWNsZXMuc2hpZnQgPSBmcmVxX3RvX3NoaWZ0KGRl di0+Y2Fwcy5oY2FfY29yZV9jbG9jayk7CiAJbWRldi0+Y3ljbGVzLm11bHQgPQogCQljbG9ja3Nv dXJjZV9raHoybXVsdCgxMDAwICogZGV2LT5jYXBzLmhjYV9jb3JlX2Nsb2NrLCBtZGV2LT5jeWNs ZXMuc2hpZnQpOwogCW1kZXYtPm5vbWluYWxfY19tdWx0ID0gbWRldi0+Y3ljbGVzLm11bHQ7Ci0t IAoyLjQuMQoKCkZyb20gNDZlZGQxMDA3NjU1ODlkOWE3ODNjY2ZmOTY0MjNiNzg1ZTUwMWFjYSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXVnZW5pYSBFbWFudGF5ZXYgPGV1Z2VuaWFA bWVsbGFub3guY29tPgpEYXRlOiBXZWQsIDE3IEZlYiAyMDE2IDE3OjI0OjI3ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAyOC8zNF0gbmV0L21seDRfZW46IEF2b2lkIGNoYW5naW5nIGRldi0+ZmVhdHVy ZXMgZGlyZWN0bHkgaW4KIHJ1bi10aW1lCgpbIFVwc3RyZWFtIGNvbW1pdCA5MjVhYjFhYTkzOTRi YmFlYWM0N2VlNWI2NWQzZmRmMGZiODEzNWNmIF0KCkl0J3MgZm9yYmlkZGVuIHRvIG1hbnVhbGx5 IGNoYW5nZSBkZXYtPmZlYXR1cmVzIGluIHJ1bi10aW1lLiBDdXJyZW50bHksIHRoaXMgaXMKZG9u ZSBpbiB0aGUgZHJpdmVyIHRvIG1ha2Ugc3VyZSB0aGF0IEdTT19VRFBfVFVOTkVMIGlzIGFkdmVy dGl6ZWQgb25seSB3aGVuClZYTEFOIHR1bm5lbCBpcyBzZXQuIEhvd2V2ZXIsIHNpbmNlIHRoZSBz dGFjayBhY3R1YWxseSBkb2VzIGZlYXR1cmVzIGludGVyc2VjdGlvbgp3aXRoIGh3X2VuY19mZWF0 dXJlcywgd2UgY2FuIHNhZmVseSByZXZlcnQgdG8gYWR2ZXJ0aXppbmcgZmVhdHVyZXMgZWFybHkg d2hlbgpyZWdpc3RlcmluZyB0aGUgbmV0ZGV2aWNlLgoKRml4ZXM6IGY0YTFlZGQ1NjEyMCAoJ25l dC9tbHg0X2VuOiBBZHZlcnRpemUgZW5jYXBzdWxhdGlvbiBvZmZsb2FkcyBbLi4uXScpClNpZ25l ZC1vZmYtYnk6IEV1Z2VuaWEgRW1hbnRheWV2IDxldWdlbmlhQG1lbGxhbm94LmNvbT4KU2lnbmVk LW9mZi1ieTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9uZXRkZXYuYyB8IDkgKysrKystLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fbmV0ZGV2LmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX25ldGRldi5jCmluZGV4IGE1YTBiODQuLmU5MTg5 NTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fbmV0 ZGV2LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9uZXRkZXYu YwpAQCAtMjMzMCw4ICsyMzMwLDYgQEAgb3V0OgogCS8qIHNldCBvZmZsb2FkcyAqLwogCXByaXYt PmRldi0+aHdfZW5jX2ZlYXR1cmVzIHw9IE5FVElGX0ZfSVBfQ1NVTSB8IE5FVElGX0ZfUlhDU1VN IHwKIAkJCQkgICAgICBORVRJRl9GX1RTTyB8IE5FVElGX0ZfR1NPX1VEUF9UVU5ORUw7Ci0JcHJp di0+ZGV2LT5od19mZWF0dXJlcyB8PSBORVRJRl9GX0dTT19VRFBfVFVOTkVMOwotCXByaXYtPmRl di0+ZmVhdHVyZXMgICAgfD0gTkVUSUZfRl9HU09fVURQX1RVTk5FTDsKIH0KIAogc3RhdGljIHZv aWQgbWx4NF9lbl9kZWxfdnhsYW5fb2ZmbG9hZHMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQpA QCAtMjM0Miw4ICsyMzQwLDYgQEAgc3RhdGljIHZvaWQgbWx4NF9lbl9kZWxfdnhsYW5fb2ZmbG9h ZHMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCS8qIHVuc2V0IG9mZmxvYWRzICovCiAJcHJp di0+ZGV2LT5od19lbmNfZmVhdHVyZXMgJj0gfihORVRJRl9GX0lQX0NTVU0gfCBORVRJRl9GX1JY Q1NVTSB8CiAJCQkJICAgICAgTkVUSUZfRl9UU08gfCBORVRJRl9GX0dTT19VRFBfVFVOTkVMKTsK LQlwcml2LT5kZXYtPmh3X2ZlYXR1cmVzICY9IH5ORVRJRl9GX0dTT19VRFBfVFVOTkVMOwotCXBy aXYtPmRldi0+ZmVhdHVyZXMgICAgJj0gfk5FVElGX0ZfR1NPX1VEUF9UVU5ORUw7CiAKIAlyZXQg PSBtbHg0X1NFVF9QT1JUX1ZYTEFOKHByaXYtPm1kZXYtPmRldiwgcHJpdi0+cG9ydCwKIAkJCQkg IFZYTEFOX1NURUVSX0JZX09VVEVSX01BQywgMCk7CkBAIC0yOTQwLDYgKzI5MzYsMTEgQEAgaW50 IG1seDRfZW5faW5pdF9uZXRkZXYoc3RydWN0IG1seDRfZW5fZGV2ICptZGV2LCBpbnQgcG9ydCwK IAkJcHJpdi0+cnNzX2hhc2hfZm4gPSBFVEhfUlNTX0hBU0hfVE9QOwogCX0KIAorCWlmIChtZGV2 LT5kZXYtPmNhcHMudHVubmVsX29mZmxvYWRfbW9kZSA9PSBNTFg0X1RVTk5FTF9PRkZMT0FEX01P REVfVlhMQU4pIHsKKwkJZGV2LT5od19mZWF0dXJlcyB8PSBORVRJRl9GX0dTT19VRFBfVFVOTkVM OworCQlkZXYtPmZlYXR1cmVzICAgIHw9IE5FVElGX0ZfR1NPX1VEUF9UVU5ORUw7CisJfQorCiAJ bWRldi0+cG5kZXZbcG9ydF0gPSBkZXY7CiAJbWRldi0+dXBwZXJbcG9ydF0gPSBOVUxMOwogCi0t IAoyLjQuMQoKCkZyb20gNDQ2YjhmNWUxMmUyYjEyYjNjMDZlYjI4MTQzMzJhMTgyMGIzYzhmYSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyayBUb21saW5zb24gPG1hcmsudG9tbGlu c29uQGFsbGllZHRlbGVzaXMuY28ubno+CkRhdGU6IE1vbiwgMTUgRmViIDIwMTYgMTY6MjQ6NDQg KzEzMDAKU3ViamVjdDogW1BBVENIIDI5LzM0XSBsMnRwOiBGaXggZXJyb3IgY3JlYXRpbmcgTDJU UCB0dW5uZWxzCgpbIFVwc3RyZWFtIGNvbW1pdCA4NTNlZmZjNTViMGY5NzVhYmQ2ZDMxOGNjYTQ4 NmE5YzFiNjdlMTBmIF0KCkEgcHJldmlvdXMgY29tbWl0ICgzM2Y3MmU2KSBhZGRlZCBub3RpZmlj YXRpb24gdmlhIG5ldGxpbmsgZm9yIHR1bm5lbHMKd2hlbiBjcmVhdGVkL21vZGlmaWVkL2RlbGV0 ZWQuIElmIHRoZSBub3RpZmljYXRpb24gcmV0dXJuZWQgYW4gZXJyb3IsCnRoaXMgZXJyb3Igd2Fz IHJldHVybmVkIGZyb20gdGhlIHR1bm5lbCBmdW5jdGlvbi4gSWYgdGhlcmUgd2VyZSBubwpsaXN0 ZW5lcnMsIHRoZSBlcnJvciBjb2RlIEVTUkNIIHdhcyByZXR1cm5lZCwgZXZlbiB0aG91Z2ggaGF2 aW5nIG5vCmxpc3RlbmVycyBpcyBub3QgYW4gZXJyb3IuIE90aGVyIGNhbGxzIHRvIHRoaXMgYW5k IG90aGVyIHNpbWlsYXIKbm90aWZpY2F0aW9uIGZ1bmN0aW9ucyBlaXRoZXIgaWdub3JlIHRoZSBl cnJvciBjb2RlLCBvciBmaWx0ZXIgRVNSQ0guClRoaXMgcGF0Y2ggY2hlY2tzIGZvciBFU1JDSCBh bmQgZG9lcyBub3QgZmxhZyB0aGlzIGFzIGFuIGVycm9yLgoKUmV2aWV3ZWQtYnk6IEhhbWlzaCBN YXJ0aW4gPGhhbWlzaC5tYXJ0aW5AYWxsaWVkdGVsZXNpcy5jby5uej4KU2lnbmVkLW9mZi1ieTog TWFyayBUb21saW5zb24gPG1hcmsudG9tbGluc29uQGFsbGllZHRlbGVzaXMuY28ubno+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv bDJ0cC9sMnRwX25ldGxpbmsuYyB8IDE4ICsrKysrKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDE0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2wy dHAvbDJ0cF9uZXRsaW5rLmMgYi9uZXQvbDJ0cC9sMnRwX25ldGxpbmsuYwppbmRleCA5ZTEzYzJm Li5mZTkyYTA4IDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX25ldGxpbmsuYworKysgYi9uZXQv bDJ0cC9sMnRwX25ldGxpbmsuYwpAQCAtMTI0LDggKzEyNCwxMyBAQCBzdGF0aWMgaW50IGwydHBf dHVubmVsX25vdGlmeShzdHJ1Y3QgZ2VubF9mYW1pbHkgKmZhbWlseSwKIAlyZXQgPSBsMnRwX25s X3R1bm5lbF9zZW5kKG1zZywgaW5mby0+c25kX3BvcnRpZCwgaW5mby0+c25kX3NlcSwKIAkJCQkg IE5MTV9GX0FDSywgdHVubmVsLCBjbWQpOwogCi0JaWYgKHJldCA+PSAwKQotCQlyZXR1cm4gZ2Vu bG1zZ19tdWx0aWNhc3RfYWxsbnMoZmFtaWx5LCBtc2csIDAsCTAsIEdGUF9BVE9NSUMpOworCWlm IChyZXQgPj0gMCkgeworCQlyZXQgPSBnZW5sbXNnX211bHRpY2FzdF9hbGxucyhmYW1pbHksIG1z ZywgMCwgMCwgR0ZQX0FUT01JQyk7CisJCS8qIFdlIGRvbid0IGNhcmUgaWYgbm8gb25lIGlzIGxp c3RlbmluZyAqLworCQlpZiAocmV0ID09IC1FU1JDSCkKKwkJCXJldCA9IDA7CisJCXJldHVybiBy ZXQ7CisJfQogCiAJbmxtc2dfZnJlZShtc2cpOwogCkBAIC0xNDcsOCArMTUyLDEzIEBAIHN0YXRp YyBpbnQgbDJ0cF9zZXNzaW9uX25vdGlmeShzdHJ1Y3QgZ2VubF9mYW1pbHkgKmZhbWlseSwKIAly ZXQgPSBsMnRwX25sX3Nlc3Npb25fc2VuZChtc2csIGluZm8tPnNuZF9wb3J0aWQsIGluZm8tPnNu ZF9zZXEsCiAJCQkJICAgTkxNX0ZfQUNLLCBzZXNzaW9uLCBjbWQpOwogCi0JaWYgKHJldCA+PSAw KQotCQlyZXR1cm4gZ2VubG1zZ19tdWx0aWNhc3RfYWxsbnMoZmFtaWx5LCBtc2csIDAsCTAsIEdG UF9BVE9NSUMpOworCWlmIChyZXQgPj0gMCkgeworCQlyZXQgPSBnZW5sbXNnX211bHRpY2FzdF9h bGxucyhmYW1pbHksIG1zZywgMCwgMCwgR0ZQX0FUT01JQyk7CisJCS8qIFdlIGRvbid0IGNhcmUg aWYgbm8gb25lIGlzIGxpc3RlbmluZyAqLworCQlpZiAocmV0ID09IC1FU1JDSCkKKwkJCXJldCA9 IDA7CisJCXJldHVybiByZXQ7CisJfQogCiAJbmxtc2dfZnJlZShtc2cpOwogCi0tIAoyLjQuMQoK CkZyb20gNDc0MjhiY2ZkZGQ5NDRlMGMyZDViMDQ4ZGU0NDBkYzk2ZWNmOGIwZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogR3VpbGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFscGhhbGluay5m cj4KRGF0ZTogTW9uLCAxNSBGZWIgMjAxNiAxNzowMToxMCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MzAvMzRdIHBwcG9lOiBmaXggcmVmZXJlbmNlIGNvdW50aW5nIGluIFBQUG9FIHByb3h5CgpbIFVw c3RyZWFtIGNvbW1pdCAyOWU3MzI2OWFhNGQzNmY5MmIzNTYxMGMyNWY4YjAxYzc4OWIwZGM4IF0K CkRyb3AgcmVmZXJlbmNlIG9uIHRoZSByZWxheV9wbyBzb2NrZXQgd2hlbiBfX3BwcG9lX3htaXQo KSBzdWNjZWVkcy4KVGhpcyBpcyBhbHJlYWR5IGhhbmRsZWQgY29ycmVjdGx5IGluIHRoZSBlcnJv ciBwYXRoLgoKU2lnbmVkLW9mZi1ieTogR3VpbGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFscGhhbGlu ay5mcj4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jIGIvZHJp dmVycy9uZXQvcHBwL3BwcG9lLmMKaW5kZXggOWM4ZmFiZS4uZDFjNGJjMSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMKKysrIGIvZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMKQEAg LTM5NSw2ICszOTUsOCBAQCBzdGF0aWMgaW50IHBwcG9lX3Jjdl9jb3JlKHN0cnVjdCBzb2NrICpz aywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogCQlpZiAoIV9fcHBwb2VfeG1pdChza19wcHBveChy ZWxheV9wbyksIHNrYikpCiAJCQlnb3RvIGFib3J0X3B1dDsKKworCQlzb2NrX3B1dChza19wcHBv eChyZWxheV9wbykpOwogCX0gZWxzZSB7CiAJCWlmIChzb2NrX3F1ZXVlX3Jjdl9za2Ioc2ssIHNr YikpCiAJCQlnb3RvIGFib3J0X2tmcmVlOwotLSAKMi40LjEKCgpGcm9tIDZmYTgzZjdhYTQ2ZWM2 MDM1YzFjNDFmMTllNjM4MzNlY2RjZDQ5Y2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAxOCBGZWIgMjAxNiAy MToyMToxOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzEvMzRdIHJvdXRlOiBjaGVjayBhbmQgcmVt b3ZlIHJvdXRlIGNhY2hlIHdoZW4gd2UgZ2V0IHJvdXRlCgpbIFVwc3RyZWFtIGNvbW1pdCBkZWVk NDlkZjczOTBkNTIzOTAyNDE5OWUyNDkxOTAzMjhmMTY1MWU3IF0KClNpbmNlIHRoZSBnYyBvZiBp cHY0IHJvdXRlIHdhcyByZW1vdmVkLCB0aGUgcm91dGUgY2FjaGVkIHdvdWxkIGhhcwpubyBjaGFu Y2UgdG8gYmUgcmVtb3ZlZCwgYW5kIGV2ZW4gaXQgaGFzIGJlZW4gdGltZW91dCwgaXQgc3RpbGwg Y291bGQKYmUgdXNlZCwgY2F1c2Ugbm8gY29kZSB0byBjaGVjayBpdCdzIGV4cGlyZXMuCgpGaXgg dGhpcyBpc3N1ZSBieSBjaGVja2luZyAgYW5kIHJlbW92aW5nIHJvdXRlIGNhY2hlIHdoZW4gd2Ug Z2V0IHJvdXRlLgoKU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29t PgpBY2tlZC1ieTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5lc0BzdHJlc3NpbmR1a3Rpb24u b3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogaW5jbHVkZS9uZXQvaXBfZmliLmggfCAgMSArCiBuZXQvaXB2NC9yb3V0ZS5jICAgICB8 IDc3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0K IDIgZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9uZXQvaXBfZmliLmggYi9pbmNsdWRlL25ldC9pcF9maWIuaAppbmRl eCA1NDI3MWVkLi4xM2YxYTk3IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pcF9maWIuaAorKysg Yi9pbmNsdWRlL25ldC9pcF9maWIuaApAQCAtNTksNiArNTksNyBAQCBzdHJ1Y3QgZmliX25oX2V4 Y2VwdGlvbiB7CiAJc3RydWN0IHJ0YWJsZSBfX3JjdQkJKmZuaGVfcnRoX2lucHV0OwogCXN0cnVj dCBydGFibGUgX19yY3UJCSpmbmhlX3J0aF9vdXRwdXQ7CiAJdW5zaWduZWQgbG9uZwkJCWZuaGVf c3RhbXA7CisJc3RydWN0IHJjdV9oZWFkCQkJcmN1OwogfTsKIAogc3RydWN0IGZuaGVfaGFzaF9i dWNrZXQgewpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMK aW5kZXggZjQ1ZjJhMS4uMWQzY2RiNGQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3JvdXRlLmMKKysr IGIvbmV0L2lwdjQvcm91dGUuYwpAQCAtMTI1LDYgKzEyNSw3IEBAIHN0YXRpYyBpbnQgaXBfcnRf bXR1X2V4cGlyZXMgX19yZWFkX21vc3RseQk9IDEwICogNjAgKiBIWjsKIHN0YXRpYyBpbnQgaXBf cnRfbWluX3BtdHUgX19yZWFkX21vc3RseQkJPSA1MTIgKyAyMCArIDIwOwogc3RhdGljIGludCBp cF9ydF9taW5fYWR2bXNzIF9fcmVhZF9tb3N0bHkJPSAyNTY7CiAKK3N0YXRpYyBpbnQgaXBfcnRf Z2NfdGltZW91dCBfX3JlYWRfbW9zdGx5CT0gUlRfR0NfVElNRU9VVDsKIC8qCiAgKglJbnRlcmZh Y2UgdG8gZ2VuZXJpYyBkZXN0aW5hdGlvbiBjYWNoZS4KICAqLwpAQCAtNzUzLDcgKzc1NCw3IEBA IHN0YXRpYyB2b2lkIF9faXBfZG9fcmVkaXJlY3Qoc3RydWN0IHJ0YWJsZSAqcnQsIHN0cnVjdCBz a19idWZmICpza2IsIHN0cnVjdCBmbG93CiAJCQkJc3RydWN0IGZpYl9uaCAqbmggPSAmRklCX1JF U19OSChyZXMpOwogCiAJCQkJdXBkYXRlX29yX2NyZWF0ZV9mbmhlKG5oLCBmbDQtPmRhZGRyLCBu ZXdfZ3csCi0JCQkJCQkgICAgICAwLCAwKTsKKwkJCQkJCTAsIGppZmZpZXMgKyBpcF9ydF9nY190 aW1lb3V0KTsKIAkJCX0KIAkJCWlmIChraWxsX3JvdXRlKQogCQkJCXJ0LT5kc3Qub2Jzb2xldGUg PSBEU1RfT0JTT0xFVEVfS0lMTDsKQEAgLTE1MzgsNiArMTUzOSwzNiBAQCBzdGF0aWMgdm9pZCBp cF9oYW5kbGVfbWFydGlhbl9zb3VyY2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKICNlbmRpZgog fQogCitzdGF0aWMgdm9pZCBpcF9kZWxfZm5oZShzdHJ1Y3QgZmliX25oICpuaCwgX19iZTMyIGRh ZGRyKQoreworCXN0cnVjdCBmbmhlX2hhc2hfYnVja2V0ICpoYXNoOworCXN0cnVjdCBmaWJfbmhf ZXhjZXB0aW9uICpmbmhlLCBfX3JjdSAqKmZuaGVfcDsKKwl1MzIgaHZhbCA9IGZuaGVfaGFzaGZ1 bihkYWRkcik7CisKKwlzcGluX2xvY2tfYmgoJmZuaGVfbG9jayk7CisKKwloYXNoID0gcmN1X2Rl cmVmZXJlbmNlX3Byb3RlY3RlZChuaC0+bmhfZXhjZXB0aW9ucywKKwkJCQkJIGxvY2tkZXBfaXNf aGVsZCgmZm5oZV9sb2NrKSk7CisJaGFzaCArPSBodmFsOworCisJZm5oZV9wID0gJmhhc2gtPmNo YWluOworCWZuaGUgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKCpmbmhlX3AsIGxvY2tkZXBf aXNfaGVsZCgmZm5oZV9sb2NrKSk7CisJd2hpbGUgKGZuaGUpIHsKKwkJaWYgKGZuaGUtPmZuaGVf ZGFkZHIgPT0gZGFkZHIpIHsKKwkJCXJjdV9hc3NpZ25fcG9pbnRlcigqZm5oZV9wLCByY3VfZGVy ZWZlcmVuY2VfcHJvdGVjdGVkKAorCQkJCWZuaGUtPmZuaGVfbmV4dCwgbG9ja2RlcF9pc19oZWxk KCZmbmhlX2xvY2spKSk7CisJCQlmbmhlX2ZsdXNoX3JvdXRlcyhmbmhlKTsKKwkJCWtmcmVlX3Jj dShmbmhlLCByY3UpOworCQkJYnJlYWs7CisJCX0KKwkJZm5oZV9wID0gJmZuaGUtPmZuaGVfbmV4 dDsKKwkJZm5oZSA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoZm5oZS0+Zm5oZV9uZXh0LAor CQkJCQkJIGxvY2tkZXBfaXNfaGVsZCgmZm5oZV9sb2NrKSk7CisJfQorCisJc3Bpbl91bmxvY2tf YmgoJmZuaGVfbG9jayk7Cit9CisKIC8qIGNhbGxlZCBpbiByY3VfcmVhZF9sb2NrKCkgc2VjdGlv biAqLwogc3RhdGljIGludCBfX21rcm91dGVfaW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJ CSAgIGNvbnN0IHN0cnVjdCBmaWJfcmVzdWx0ICpyZXMsCkBAIC0xNTkyLDExICsxNjIzLDIwIEBA IHN0YXRpYyBpbnQgX19ta3JvdXRlX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsCiAKIAlmbmhl ID0gZmluZF9leGNlcHRpb24oJkZJQl9SRVNfTkgoKnJlcyksIGRhZGRyKTsKIAlpZiAoZG9fY2Fj aGUpIHsKLQkJaWYgKGZuaGUpCisJCWlmIChmbmhlKSB7CiAJCQlydGggPSByY3VfZGVyZWZlcmVu Y2UoZm5oZS0+Zm5oZV9ydGhfaW5wdXQpOwotCQllbHNlCi0JCQlydGggPSByY3VfZGVyZWZlcmVu Y2UoRklCX1JFU19OSCgqcmVzKS5uaF9ydGhfaW5wdXQpOworCQkJaWYgKHJ0aCAmJiBydGgtPmRz dC5leHBpcmVzICYmCisJCQkgICAgdGltZV9hZnRlcihqaWZmaWVzLCBydGgtPmRzdC5leHBpcmVz KSkgeworCQkJCWlwX2RlbF9mbmhlKCZGSUJfUkVTX05IKCpyZXMpLCBkYWRkcik7CisJCQkJZm5o ZSA9IE5VTEw7CisJCQl9IGVsc2UgeworCQkJCWdvdG8gcnRfY2FjaGU7CisJCQl9CisJCX0KKwor CQlydGggPSByY3VfZGVyZWZlcmVuY2UoRklCX1JFU19OSCgqcmVzKS5uaF9ydGhfaW5wdXQpOwog CitydF9jYWNoZToKIAkJaWYgKHJ0X2NhY2hlX3ZhbGlkKHJ0aCkpIHsKIAkJCXNrYl9kc3Rfc2V0 X25vcmVmKHNrYiwgJnJ0aC0+ZHN0KTsKIAkJCWdvdG8gb3V0OwpAQCAtMTk0NSwxOSArMTk4NSwy OSBAQCBzdGF0aWMgc3RydWN0IHJ0YWJsZSAqX19ta3JvdXRlX291dHB1dChjb25zdCBzdHJ1Y3Qg ZmliX3Jlc3VsdCAqcmVzLAogCQlzdHJ1Y3QgZmliX25oICpuaCA9ICZGSUJfUkVTX05IKCpyZXMp OwogCiAJCWZuaGUgPSBmaW5kX2V4Y2VwdGlvbihuaCwgZmw0LT5kYWRkcik7Ci0JCWlmIChmbmhl KQorCQlpZiAoZm5oZSkgewogCQkJcHJ0aCA9ICZmbmhlLT5mbmhlX3J0aF9vdXRwdXQ7Ci0JCWVs c2UgewotCQkJaWYgKHVubGlrZWx5KGZsNC0+Zmxvd2k0X2ZsYWdzICYKLQkJCQkgICAgIEZMT1dJ X0ZMQUdfS05PV05fTkggJiYKLQkJCQkgICAgICEobmgtPm5oX2d3ICYmCi0JCQkJICAgICAgIG5o LT5uaF9zY29wZSA9PSBSVF9TQ09QRV9MSU5LKSkpIHsKLQkJCQlkb19jYWNoZSA9IGZhbHNlOwot CQkJCWdvdG8gYWRkOworCQkJcnRoID0gcmN1X2RlcmVmZXJlbmNlKCpwcnRoKTsKKwkJCWlmIChy dGggJiYgcnRoLT5kc3QuZXhwaXJlcyAmJgorCQkJICAgIHRpbWVfYWZ0ZXIoamlmZmllcywgcnRo LT5kc3QuZXhwaXJlcykpIHsKKwkJCQlpcF9kZWxfZm5oZShuaCwgZmw0LT5kYWRkcik7CisJCQkJ Zm5oZSA9IE5VTEw7CisJCQl9IGVsc2UgeworCQkJCWdvdG8gcnRfY2FjaGU7CiAJCQl9Ci0JCQlw cnRoID0gcmF3X2NwdV9wdHIobmgtPm5oX3BjcHVfcnRoX291dHB1dCk7CiAJCX0KKworCQlpZiAo dW5saWtlbHkoZmw0LT5mbG93aTRfZmxhZ3MgJgorCQkJICAgICBGTE9XSV9GTEFHX0tOT1dOX05I ICYmCisJCQkgICAgICEobmgtPm5oX2d3ICYmCisJCQkgICAgICAgbmgtPm5oX3Njb3BlID09IFJU X1NDT1BFX0xJTkspKSkgeworCQkJZG9fY2FjaGUgPSBmYWxzZTsKKwkJCWdvdG8gYWRkOworCQl9 CisJCXBydGggPSByYXdfY3B1X3B0cihuaC0+bmhfcGNwdV9ydGhfb3V0cHV0KTsKIAkJcnRoID0g cmN1X2RlcmVmZXJlbmNlKCpwcnRoKTsKKworcnRfY2FjaGU6CiAJCWlmIChydF9jYWNoZV92YWxp ZChydGgpKSB7CiAJCQlkc3RfaG9sZCgmcnRoLT5kc3QpOwogCQkJcmV0dXJuIHJ0aDsKQEAgLTI1 MDQsNyArMjU1NCw2IEBAIHZvaWQgaXBfcnRfbXVsdGljYXN0X2V2ZW50KHN0cnVjdCBpbl9kZXZp Y2UgKmluX2RldikKIH0KIAogI2lmZGVmIENPTkZJR19TWVNDVEwKLXN0YXRpYyBpbnQgaXBfcnRf Z2NfdGltZW91dCBfX3JlYWRfbW9zdGx5CT0gUlRfR0NfVElNRU9VVDsKIHN0YXRpYyBpbnQgaXBf cnRfZ2NfaW50ZXJ2YWwgX19yZWFkX21vc3RseSAgPSA2MCAqIEhaOwogc3RhdGljIGludCBpcF9y dF9nY19taW5faW50ZXJ2YWwgX19yZWFkX21vc3RseQk9IEhaIC8gMjsKIHN0YXRpYyBpbnQgaXBf cnRfZ2NfZWxhc3RpY2l0eSBfX3JlYWRfbW9zdGx5CT0gODsKLS0gCjIuNC4xCgoKRnJvbSAxZjNj Y2JkODIxMTI4OTZiNmQ3NzVmYTk5ODgyOTZlNjVhODRlYzgzIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBBbnRvbiBQcm90b3BvcG92IDxhLnMucHJvdG9wb3BvdkBnbWFpbC5jb20+CkRh dGU6IFR1ZSwgMTYgRmViIDIwMTYgMjE6NDM6MTYgLTA1MDAKU3ViamVjdDogW1BBVENIIDMyLzM0 XSBydG5sOiBSVE1fR0VUTkVUQ09ORjogZml4IHdyb25nIHJldHVybiB2YWx1ZQoKWyBVcHN0cmVh bSBjb21taXQgYTk3ZWIzM2ZmMjI1ZjM0YTgxMjQ3NzRiMzM3M2ZkMjQ0ZjBlODNjZSBdCgpBbiBl cnJvciByZXNwb25zZSBmcm9tIGEgUlRNX0dFVE5FVENPTkYgcmVxdWVzdCBjYW4gcmV0dXJuIHRo ZSBwb3NpdGl2ZQplcnJvciB2YWx1ZSBFSU5WQUwgaW4gdGhlIHN0cnVjdCBubG1zZ2VyciB0aGF0 IGNhbiBtaXNsZWFkIHVzZXJzcGFjZS4KClNpZ25lZC1vZmYtYnk6IEFudG9uIFByb3RvcG9wb3Yg PGEucy5wcm90b3BvcG92QGdtYWlsLmNvbT4KQWNrZWQtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2Fu Z2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvZGV2aW5ldC5jICB8IDIgKy0KIG5ldC9pcHY2L2Fk ZHJjb25mLmMgfCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9kZXZpbmV0LmMgYi9uZXQvaXB2NC9kZXZp bmV0LmMKaW5kZXggNDE5ZDIzYy4uMjgwZDQ2ZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZGV2aW5l dC5jCisrKyBiL25ldC9pcHY0L2RldmluZXQuYwpAQCAtMTgzOSw3ICsxODM5LDcgQEAgc3RhdGlj IGludCBpbmV0X25ldGNvbmZfZ2V0X2RldmNvbmYoc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwKIAlp ZiAoZXJyIDwgMCkKIAkJZ290byBlcnJvdXQ7CiAKLQllcnIgPSBFSU5WQUw7CisJZXJyID0gLUVJ TlZBTDsKIAlpZiAoIXRiW05FVENPTkZBX0lGSU5ERVhdKQogCQlnb3RvIGVycm91dDsKIApkaWZm IC0tZ2l0IGEvbmV0L2lwdjYvYWRkcmNvbmYuYyBiL25ldC9pcHY2L2FkZHJjb25mLmMKaW5kZXgg ZmNmYmQwNS4uZjU1NWY0ZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYWRkcmNvbmYuYworKysgYi9u ZXQvaXB2Ni9hZGRyY29uZi5jCkBAIC01NjksNyArNTY5LDcgQEAgc3RhdGljIGludCBpbmV0Nl9u ZXRjb25mX2dldF9kZXZjb25mKHN0cnVjdCBza19idWZmICppbl9za2IsCiAJaWYgKGVyciA8IDAp CiAJCWdvdG8gZXJyb3V0OwogCi0JZXJyID0gRUlOVkFMOworCWVyciA9IC1FSU5WQUw7CiAJaWYg KCF0YltORVRDT05GQV9JRklOREVYXSkKIAkJZ290byBlcnJvdXQ7CiAKLS0gCjIuNC4xCgoKRnJv bSAyM2ExNzdhYmU5YmMxZjYwOGRkZTQxOGMxYjNmOGE4YWM3M2YwYWJlIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiAiRG1pdHJ5IFYuIExldmluIiA8bGR2QGFsdGxpbnV4Lm9yZz4KRGF0 ZTogRnJpLCAxOSBGZWIgMjAxNiAwNDoyNzo0OCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzMvMzRd IHVuaXhfZGlhZzogZml4IGluY29ycmVjdCBzaWduIGV4dGVuc2lvbiBpbgogdW5peF9sb29rdXBf YnlfaW5vCgpbIFVwc3RyZWFtIGNvbW1pdCBiNWYwNTQ5MjMxZmZiMDI1MzM3YmU1YTYyNWIwZmY5 ZjUyYjAxNmYwIF0KClRoZSB2YWx1ZSBwYXNzZWQgYnkgdW5peF9kaWFnX2dldF9leGFjdCB0byB1 bml4X2xvb2t1cF9ieV9pbm8gaGFzIHR5cGUKX191MzIsIGJ1dCB1bml4X2xvb2t1cF9ieV9pbm8n cyBhcmd1bWVudCBpbm8gaGFzIHR5cGUgaW50LCB3aGljaCBpcyBub3QKYSBwcm9ibGVtIHlldC4K SG93ZXZlciwgd2hlbiBpbm8gaXMgY29tcGFyZWQgd2l0aCBzb2NrX2lfaW5vIHJldHVybiB2YWx1 ZSBvZiB0eXBlCnVuc2lnbmVkIGxvbmcsIGlubyBpcyBzaWduIGV4dGVuZGVkIHRvIHNpZ25lZCBs b25nLCBhbmQgdGhpcyByZXN1bHRzCnRvIGluY29ycmVjdCBjb21wYXJpc29uIG9uIDY0LWJpdCBh cmNoaXRlY3R1cmVzIGZvciBpbm9kZSBudW1iZXJzCmdyZWF0ZXIgdGhhbiBJTlRfTUFYLgoKVGhp cyBidWcgd2FzIGZvdW5kIGJ5IHN0cmFjZSB0ZXN0IHN1aXRlLgoKRml4ZXM6IDVkM2NhZThiYzM5 ZCAoInVuaXhfZGlhZzogRHVtcGluZyBleGFjdCBzb2NrZXQgY29yZSIpClNpZ25lZC1vZmYtYnk6 IERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KQWNrZWQtYnk6IENvbmcgV2FuZyA8 eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3VuaXgvZGlhZy5jIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L3VuaXgvZGlhZy5jIGIvbmV0L3VuaXgvZGlhZy5jCmluZGV4IGM1MTJmNjQuLjRkOTY3OTcgMTAw NjQ0Ci0tLSBhL25ldC91bml4L2RpYWcuYworKysgYi9uZXQvdW5peC9kaWFnLmMKQEAgLTIyMCw3 ICsyMjAsNyBAQCBkb25lOgogCXJldHVybiBza2ItPmxlbjsKIH0KIAotc3RhdGljIHN0cnVjdCBz b2NrICp1bml4X2xvb2t1cF9ieV9pbm8oaW50IGlubykKK3N0YXRpYyBzdHJ1Y3Qgc29jayAqdW5p eF9sb29rdXBfYnlfaW5vKHVuc2lnbmVkIGludCBpbm8pCiB7CiAJaW50IGk7CiAJc3RydWN0IHNv Y2sgKnNrOwotLSAKMi40LjEKCgpGcm9tIDc5ZWI2ZWU2MWUwNmYxYjk1YjI1MzY1NDAxYzZiY2Ni ZTAxMmNmNTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5laWwgSG9ybWFuIDxuaG9y bWFuQHR1eGRyaXZlci5jb20+CkRhdGU6IFRodSwgMTggRmViIDIwMTYgMTY6MTA6NTcgLTA1MDAK U3ViamVjdDogW1BBVENIIDM0LzM0XSBzY3RwOiBGaXggcG9ydCBoYXNoIHRhYmxlIHNpemUgY29t cHV0YXRpb24KClsgVXBzdHJlYW0gY29tbWl0IGQ5NzQ5ZmI1OTQyZjUxNTU1ZGM5Y2UxYWMwZGJi MTgwNjk2MGE5NzUgXQoKRG1pdHJ5IFZ5dWtvdiBub3RlZCByZWNlbnRseSB0aGF0IHRoZSBzY3Rw X3BvcnRfaGFzaHRhYmxlIGhhZCBhbiBlcnJvciBpbgppdHMgc2l6ZSBjb21wdXRhdGlvbiwgb2Jz ZXJ2aW5nIHRoYXQgdGhlIGN1cnJlbnQgbWV0aG9kIG5ldmVyIGd1YXJhbnRlZWQKdGhhdCB0aGUg aGFzaHNpemUgKG1lYXN1cmVkIGluIG51bWJlciBvZiBlbnRyaWVzKSB3b3VsZCBiZSBhIHBvd2Vy IG9mIHR3bywKd2hpY2ggdGhlIGlucHV0IGhhc2ggZnVuY3Rpb24gZm9yIHRoYXQgdGFibGUgcmVx dWlyZXMuICBUaGUgcm9vdCBjYXVzZSBvZgp0aGUgcHJvYmxlbSBpcyB0aGF0IHR3byB2YWx1ZXMg bmVlZCB0byBiZSBjb21wdXRlZCAob25lLCB0aGUgYWxsb2NhdGlvbgpvcmRlciBvZiB0aGUgc3Rv cmFnZSByZXF1cmllcywgYXMgcGFzc2VkIHRvIF9fZ2V0X2ZyZWVfcGFnZXMsIGFuZCB0d28gdGhl Cm51bWJlciBvZiBlbnRyaWVzIGZvciB0aGUgaGFzaCB0YWJsZSkuICBCb3RoIG5lZWQgdG8gYmUg XjIsIGJ1dCBmb3IKZGlmZmVyZW50IHJlYXNvbnMsIGFuZCB0aGUgZXhpc3RpbmcgY29kZSBpcyBz aW1wbHkgY29tcHV0aW5nIG9uZSBvcmRlcgp2YWx1ZSwgYW5kIHVzaW5nIGl0IGFzIHRoZSBiYXNp cyBmb3IgYm90aCwgd2hpY2ggaXMgd3JvbmcgKGkuZS4gaXQgYXNzdW1lcwp0aGF0ICgoMTw8b3Jk ZXIpKlBBR0VfU0laRSkvc2l6ZW9mKGJ1Y2tldCkgaXMgc3RpbGwgXjIgd2hlbiBpdHMgbm90KS4K ClRvIGZpeCB0aGlzLCB3ZSBjaGFuZ2UgdGhlIGxvZ2ljIHNsaWdodGx5LiAgV2Ugc3RhcnQgYnkg Y29tcHV0aW5nIGEgZ29hbAphbGxvY2F0aW9uIG9yZGVyICh3aGljaCBpcyBsaW1pdGVkIGJ5IHRo ZSBtYXhpbXVtIHNpemUgaGFzaCB0YWJsZSB3ZSB3YW50CnRvIHN1cHBvcnQuICBUaGVuIHdlIGF0 dGVtcHQgdG8gYWxsb2NhdGUgdGhhdCBzaXplIHRhYmxlLCBkZWNyZWFzaW5nIHRoZQpvcmRlciB1 bnRpbCBhIHN1Y2Nlc3NmdWwgYWxsb2NhdGlvbiBpcyBtYWRlLiAgVGhlbiwgd2l0aCB0aGUgcmVz dWx0YW50CnN1Y2Nlc3NmdWwgb3JkZXIgd2UgY29tcHV0ZSB0aGUgbnVtYmVyIG9mIGJ1Y2tldHMg dGhhdCBoYXNoIHRhYmxlIHN1cHBvcnRzLAp3aGljaCB3ZSB0aGVuIHJvdW5kIGRvd24gdG8gdGhl IG5lYXJlc3QgcG93ZXIgb2YgdHdvLCBnaXZpbmcgdXMgdGhlIG51bWJlcgpvZiBlbnRyaWVzIHRo ZSB0YWJsZSBhY3R1YWxseSBzdXBwb3J0cy4KCkkndmUgdGVzdGVkIHRoaXMgbG9jYWxseSBoZXJl LCB1c2luZyBub24tZGVidWcgYW5kIHNwaW5sb2NrLWRlYnVnIGtlcm5lbHMsCmFuZCB0aGUgbnVt YmVyIG9mIGVudHJpZXMgaW4gdGhlIGhhc2h0YWJsZSBjb25zaXN0ZW50bHkgd29yayBvdXQgdG8g YmUKcG93ZXJzIG9mIHR3byBpbiBhbGwgY2FzZXMuCgpTaWduZWQtb2ZmLWJ5OiBOZWlsIEhvcm1h biA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpSZXBvcnRlZC1ieTogRG1pdHJ5IFZ5dWtvdiA8ZHZ5 dWtvdkBnb29nbGUuY29tPgpDQzogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBnb29nbGUuY29tPgpD QzogVmxhZGlzbGF2IFlhc2V2aWNoIDx2eWFzZXZpY2hAZ21haWwuY29tPgpDQzogIkRhdmlkIFMu IE1pbGxlciIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9wcm90b2NvbC5jIHwgNDcg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC9zY3RwL3Byb3RvY29sLmMgYi9uZXQvc2N0cC9wcm90b2NvbC5jCmluZGV4IGUxM2MzYzMuLjlk MTM0YWIgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3Byb3RvY29sLmMKKysrIGIvbmV0L3NjdHAvcHJv dG9jb2wuYwpAQCAtNjAsNiArNjAsOCBAQAogI2luY2x1ZGUgPG5ldC9pbmV0X2NvbW1vbi5oPgog I2luY2x1ZGUgPG5ldC9pbmV0X2Vjbi5oPgogCisjZGVmaW5lIE1BWF9TQ1RQX1BPUlRfSEFTSF9F TlRSSUVTICg2NCAqIDEwMjQpCisKIC8qIEdsb2JhbCBkYXRhIHN0cnVjdHVyZXMuICovCiBzdHJ1 Y3Qgc2N0cF9nbG9iYWxzIHNjdHBfZ2xvYmFscyBfX3JlYWRfbW9zdGx5OwogCkBAIC0xMzMyLDYg KzEzMzQsOCBAQCBzdGF0aWMgX19pbml0IGludCBzY3RwX2luaXQodm9pZCkKIAl1bnNpZ25lZCBs b25nIGxpbWl0OwogCWludCBtYXhfc2hhcmU7CiAJaW50IG9yZGVyOworCWludCBudW1fZW50cmll czsKKwlpbnQgbWF4X2VudHJ5X29yZGVyOwogCiAJc29ja19za2JfY2JfY2hlY2tfc2l6ZShzaXpl b2Yoc3RydWN0IHNjdHBfdWxwZXZlbnQpKTsKIApAQCAtMTM4NCwxNCArMTM4OCwyNCBAQCBzdGF0 aWMgX19pbml0IGludCBzY3RwX2luaXQodm9pZCkKIAogCS8qIFNpemUgYW5kIGFsbG9jYXRlIHRo ZSBhc3NvY2lhdGlvbiBoYXNoIHRhYmxlLgogCSAqIFRoZSBtZXRob2RvbG9neSBpcyBzaW1pbGFy IHRvIHRoYXQgb2YgdGhlIHRjcCBoYXNoIHRhYmxlcy4KKwkgKiBUaG91Z2ggbm90IGlkZW50aWNh bC4gIFN0YXJ0IGJ5IGdldHRpbmcgYSBnb2FsIHNpemUKIAkgKi8KIAlpZiAodG90YWxyYW1fcGFn ZXMgPj0gKDEyOCAqIDEwMjQpKQogCQlnb2FsID0gdG90YWxyYW1fcGFnZXMgPj4gKDIyIC0gUEFH RV9TSElGVCk7CiAJZWxzZQogCQlnb2FsID0gdG90YWxyYW1fcGFnZXMgPj4gKDI0IC0gUEFHRV9T SElGVCk7CiAKLQlmb3IgKG9yZGVyID0gMDsgKDFVTCA8PCBvcmRlcikgPCBnb2FsOyBvcmRlcisr KQotCQk7CisJLyogVGhlbiBjb21wdXRlIHRoZSBwYWdlIG9yZGVyIGZvciBzYWlkIGdvYWwgKi8K KwlvcmRlciA9IGdldF9vcmRlcihnb2FsKTsKKworCS8qIE5vdyBjb21wdXRlIHRoZSByZXF1aXJl ZCBwYWdlIG9yZGVyIGZvciB0aGUgbWF4aW11bSBzaXplZCB0YWJsZSB3ZQorCSAqIHdhbnQgdG8g Y3JlYXRlCisJICovCisJbWF4X2VudHJ5X29yZGVyID0gZ2V0X29yZGVyKE1BWF9TQ1RQX1BPUlRf SEFTSF9FTlRSSUVTICoKKwkJCQkgICAgc2l6ZW9mKHN0cnVjdCBzY3RwX2JpbmRfaGFzaGJ1Y2tl dCkpOworCisJLyogTGltaXQgdGhlIHBhZ2Ugb3JkZXIgYnkgdGhhdCBtYXhpbXVtIGhhc2ggdGFi bGUgc2l6ZSAqLworCW9yZGVyID0gbWluKG9yZGVyLCBtYXhfZW50cnlfb3JkZXIpOwogCiAJZG8g ewogCQlzY3RwX2Fzc29jX2hhc2hzaXplID0gKDFVTCA8PCBvcmRlcikgKiBQQUdFX1NJWkUgLwpA QCAtMTQyNSwyNyArMTQzOSw0MiBAQCBzdGF0aWMgX19pbml0IGludCBzY3RwX2luaXQodm9pZCkK IAkJSU5JVF9ITElTVF9IRUFEKCZzY3RwX2VwX2hhc2h0YWJsZVtpXS5jaGFpbik7CiAJfQogCi0J LyogQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgdGhlIFNDVFAgcG9ydCBoYXNoIHRhYmxlLiAgKi8K KwkvKiBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZSB0aGUgU0NUUCBwb3J0IGhhc2ggdGFibGUuCisJ ICogTm90ZSB0aGF0IG9yZGVyIGlzIGluaXRhbGl6ZWQgdG8gc3RhcnQgYXQgdGhlIG1heCBzaXpl ZAorCSAqIHRhYmxlIHdlIHdhbnQgdG8gc3VwcG9ydC4gIElmIHdlIGNhbid0IGdldCB0aGF0IG1h bnkgcGFnZXMKKwkgKiByZWR1Y2UgdGhlIG9yZGVyIGFuZCB0cnkgYWdhaW4KKwkgKi8KIAlkbyB7 Ci0JCXNjdHBfcG9ydF9oYXNoc2l6ZSA9ICgxVUwgPDwgb3JkZXIpICogUEFHRV9TSVpFIC8KLQkJ CQkJc2l6ZW9mKHN0cnVjdCBzY3RwX2JpbmRfaGFzaGJ1Y2tldCk7Ci0JCWlmICgoc2N0cF9wb3J0 X2hhc2hzaXplID4gKDY0ICogMTAyNCkpICYmIG9yZGVyID4gMCkKLQkJCWNvbnRpbnVlOwogCQlz Y3RwX3BvcnRfaGFzaHRhYmxlID0gKHN0cnVjdCBzY3RwX2JpbmRfaGFzaGJ1Y2tldCAqKQogCQkJ X19nZXRfZnJlZV9wYWdlcyhHRlBfQVRPTUlDfF9fR0ZQX05PV0FSTiwgb3JkZXIpOwogCX0gd2hp bGUgKCFzY3RwX3BvcnRfaGFzaHRhYmxlICYmIC0tb3JkZXIgPiAwKTsKKwogCWlmICghc2N0cF9w b3J0X2hhc2h0YWJsZSkgewogCQlwcl9lcnIoIkZhaWxlZCBiaW5kIGhhc2ggYWxsb2NcbiIpOwog CQlzdGF0dXMgPSAtRU5PTUVNOwogCQlnb3RvIGVycl9iaGFzaF9hbGxvYzsKIAl9CisKKwkvKiBO b3cgY29tcHV0ZSB0aGUgbnVtYmVyIG9mIGVudHJpZXMgdGhhdCB3aWxsIGZpdCBpbiB0aGUKKwkg KiBwb3J0IGhhc2ggc3BhY2Ugd2UgYWxsb2NhdGVkCisJICovCisJbnVtX2VudHJpZXMgPSAoMVVM IDw8IG9yZGVyKSAqIFBBR0VfU0laRSAvCisJCSAgICAgIHNpemVvZihzdHJ1Y3Qgc2N0cF9iaW5k X2hhc2hidWNrZXQpOworCisJLyogQW5kIGZpbmlzaCBieSByb3VuZGluZyBpdCBkb3duIHRvIHRo ZSBuZWFyZXN0IHBvd2VyIG9mIHR3bworCSAqIHRoaXMgd2FzdGVzIHNvbWUgbWVtb3J5IG9mIGNv dXJzZSwgYnV0IGl0cyBuZWVkZWQgYmVjYXVzZQorCSAqIHRoZSBoYXNoIGZ1bmN0aW9uIG9wZXJh dGVzIGJhc2VkIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQKKwkgKiB0aGF0IHRoZSBudW1iZXIgb2Yg ZW50cmllcyBpcyBhIHBvd2VyIG9mIHR3bworCSAqLworCXNjdHBfcG9ydF9oYXNoc2l6ZSA9IHJv dW5kZG93bl9wb3dfb2ZfdHdvKG51bV9lbnRyaWVzKTsKKwogCWZvciAoaSA9IDA7IGkgPCBzY3Rw X3BvcnRfaGFzaHNpemU7IGkrKykgewogCQlzcGluX2xvY2tfaW5pdCgmc2N0cF9wb3J0X2hhc2h0 YWJsZVtpXS5sb2NrKTsKIAkJSU5JVF9ITElTVF9IRUFEKCZzY3RwX3BvcnRfaGFzaHRhYmxlW2ld LmNoYWluKTsKIAl9CiAKLQlwcl9pbmZvKCJIYXNoIHRhYmxlcyBjb25maWd1cmVkIChlc3RhYmxp c2hlZCAlZCBiaW5kICVkKVxuIiwKLQkJc2N0cF9hc3NvY19oYXNoc2l6ZSwgc2N0cF9wb3J0X2hh c2hzaXplKTsKKwlwcl9pbmZvKCJIYXNoIHRhYmxlcyBjb25maWd1cmVkIChlc3RhYmxpc2hlZCAl ZCBiaW5kICVkLyVkKVxuIiwKKwkJc2N0cF9hc3NvY19oYXNoc2l6ZSwgc2N0cF9wb3J0X2hhc2hz aXplLCBudW1fZW50cmllcyk7CiAKIAlzY3RwX3N5c2N0bF9yZWdpc3RlcigpOwogCi0tIAoyLjQu MQoK ----Next_Part(Mon_Feb_29_16_56_15_2016_397)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_44.mbox" RnJvbSA5ZmE1MjdhMGZlMmYyZGYyNjY1YWM3YWFhMjhiYzBkNzVmZjc3OWVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBVcnN1bGEgQnJhdW4gPHVyc3VsYS5icmF1bkBkZS5pYm0uY29t PgpEYXRlOiBUdWUsIDE5IEphbiAyMDE2IDEwOjQxOjMzICswMTAwClN1YmplY3Q6IFtQQVRDSCAw MS80N10gYWZfaXVjdjogVmFsaWRhdGUgc29ja2V0IGFkZHJlc3MgbGVuZ3RoIGluCiBpdWN2X3Nv Y2tfYmluZCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA1MmE4MmUyM2I5ZjJhOWUxZDQyOWM1MjA3Zjg1 NzU3ODQyOTBkMDA4IF0KClNpZ25lZC1vZmYtYnk6IFVyc3VsYSBCcmF1biA8dXJzdWxhLmJyYXVu QGRlLmlibS5jb20+ClJlcG9ydGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5j b20+ClJldmlld2VkLWJ5OiBFdmdlbnkgQ2hlcmthc2hpbiA8RXVnZW5lLkNyb3NzZXJAcnUuaWJt LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pdWN2L2FmX2l1Y3YuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2l1Y3YvYWZfaXVjdi5jIGIvbmV0L2l1Y3YvYWZf aXVjdi5jCmluZGV4IDQzNTYwOGMuLjIwYWI3YjIgMTAwNjQ0Ci0tLSBhL25ldC9pdWN2L2FmX2l1 Y3YuYworKysgYi9uZXQvaXVjdi9hZl9pdWN2LmMKQEAgLTcwOCw2ICs3MDgsOSBAQCBzdGF0aWMg aW50IGl1Y3Zfc29ja19iaW5kKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAq YWRkciwKIAlpZiAoIWFkZHIgfHwgYWRkci0+c2FfZmFtaWx5ICE9IEFGX0lVQ1YpCiAJCXJldHVy biAtRUlOVkFMOwogCisJaWYgKGFkZHJfbGVuIDwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pdWN2 KSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlsb2NrX3NvY2soc2spOwogCWlmIChzay0+c2tfc3Rh dGUgIT0gSVVDVl9PUEVOKSB7CiAJCWVyciA9IC1FQkFERkQ7Ci0tIAoyLjEuMAoKCkZyb20gNjg5 MzFlNzcwZjU0NTk1M2U2M2ZiMTdjODQ3ZmQ2Mjk5YTA1ZGFhOCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogSmVzc2UgR3Jvc3MgPGplc3NlQGtlcm5lbC5vcmc+CkRhdGU6IFdlZCwgMjAg SmFuIDIwMTYgMTc6NTk6NDkgLTA4MDAKU3ViamVjdDogW1BBVENIIDAyLzQ3XSBncm86IE1ha2Ug R1JPIGF3YXJlIG9mIGxpZ2h0d2VpZ2h0IHR1bm5lbHMuCgpbIFVwc3RyZWFtIGNvbW1pdCBjZTg3 ZmM2Y2UzZjlmNDQ4ODU0NjE4N2UzNzU3Y2Y2NjZkOWQ0YTJhIF0KCkdSTyBpcyBjdXJyZW50bHkg bm90IGF3YXJlIG9mIHR1bm5lbCBtZXRhZGF0YSBnZW5lcmF0ZWQgYnkgbGlnaHR3ZWlnaHQKdHVu bmVscyBhbmQgc3RvcmVkIGluIHRoZSBkc3QuIFRoaXMgbGVhZHMgdG8gdHdvIHBvc3NpYmxlIHBy b2JsZW1zOgogKiBJbmNvcnJlY3RseSBtZXJnaW5nIHR3byBmcmFtZXMgdGhhdCBoYXZlIGRpZmZl cmVudCBtZXRhZGF0YS4KICogTGVha2luZyBvZiBhbGxvY2F0ZWQgbWV0YWRhdGEgZnJvbSBtZXJn ZWQgZnJhbWVzLgoKVGhpcyBhdm9pZHMgdGhvc2UgcHJvYmxlbXMgYnkgY29tcGFyaW5nIHRoZSB0 dW5uZWwgaW5mb3JtYXRpb24gYmVmb3JlCm1lcmdpbmcsIHNpbWlsYXIgdG8gaG93IHdlIGhhbmRs ZSBvdGhlciBtZXRhZGF0YSAoc3VjaCBhcyB2bGFuIHRhZ3MpLAphbmQgcmVsZWFzaW5nIGFueSBz dGF0ZSB3aGVuIHdlIGFyZSBkb25lLgoKUmVwb3J0ZWQtYnk6IEpvaG4gPGpvaG4ucGhpbGxpcHM1 QGhwZS5jb20+CkZpeGVzOiAyZTE1ZWEzOSAoImlwX2dyZTogQWRkIHN1cHBvcnQgdG8gY29sbGVj dCB0dW5uZWwgbWV0YWRhdGEuIikKU2lnbmVkLW9mZi1ieTogSmVzc2UgR3Jvc3MgPGplc3NlQGtl cm5lbC5vcmc+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkFj a2VkLWJ5OiBUaG9tYXMgR3JhZiA8dGdyYWZAc3V1Zy5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2RzdF9tZXRh ZGF0YS5oIHwgMTggKysrKysrKysrKysrKysrKysrCiBuZXQvY29yZS9kZXYuYyAgICAgICAgICAg ICB8ICA3ICsrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9kc3RfbWV0YWRhdGEuaCBiL2luY2x1 ZGUvbmV0L2RzdF9tZXRhZGF0YS5oCmluZGV4IDY4MTZmMGYuLjMwYTU2YWIgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbmV0L2RzdF9tZXRhZGF0YS5oCisrKyBiL2luY2x1ZGUvbmV0L2RzdF9tZXRhZGF0 YS5oCkBAIC00NCw2ICs0NCwyNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2tiX3ZhbGlkX2RzdChj b25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCXJldHVybiBkc3QgJiYgIShkc3QtPmZsYWdzICYg RFNUX01FVEFEQVRBKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgc2tiX21ldGFkYXRhX2RzdF9j bXAoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYl9hLAorCQkJCSAgICAgICBjb25zdCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiX2IpCit7CisJY29uc3Qgc3RydWN0IG1ldGFkYXRhX2RzdCAqYSwgKmI7CisK KwlpZiAoIShza2JfYS0+X3NrYl9yZWZkc3QgfCBza2JfYi0+X3NrYl9yZWZkc3QpKQorCQlyZXR1 cm4gMDsKKworCWEgPSAoY29uc3Qgc3RydWN0IG1ldGFkYXRhX2RzdCAqKSBza2JfZHN0KHNrYl9h KTsKKwliID0gKGNvbnN0IHN0cnVjdCBtZXRhZGF0YV9kc3QgKikgc2tiX2RzdChza2JfYik7CisK KwlpZiAoIWEgIT0gIWIgfHwgYS0+dS50dW5faW5mby5vcHRpb25zX2xlbiAhPSBiLT51LnR1bl9p bmZvLm9wdGlvbnNfbGVuKQorCQlyZXR1cm4gMTsKKworCXJldHVybiBtZW1jbXAoJmEtPnUudHVu X2luZm8sICZiLT51LnR1bl9pbmZvLAorCQkgICAgICBzaXplb2YoYS0+dS50dW5faW5mbykgKyBh LT51LnR1bl9pbmZvLm9wdGlvbnNfbGVuKTsKK30KKwogc3RydWN0IG1ldGFkYXRhX2RzdCAqbWV0 YWRhdGFfZHN0X2FsbG9jKHU4IG9wdHNsZW4sIGdmcF90IGZsYWdzKTsKIHN0cnVjdCBtZXRhZGF0 YV9kc3QgX19wZXJjcHUgKm1ldGFkYXRhX2RzdF9hbGxvY19wZXJjcHUodTggb3B0c2xlbiwgZ2Zw X3QgZmxhZ3MpOwogCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5j CmluZGV4IDdmMDBmMjQuLjdkYzEzN2YgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBi L25ldC9jb3JlL2Rldi5jCkBAIC00MTQ1LDYgKzQxNDUsNyBAQCBzdGF0aWMgdm9pZCBncm9fbGlz dF9wcmVwYXJlKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgc3RydWN0IHNrX2J1ZmYgKnNrYikK IAogCQlkaWZmcyA9ICh1bnNpZ25lZCBsb25nKXAtPmRldiBeICh1bnNpZ25lZCBsb25nKXNrYi0+ ZGV2OwogCQlkaWZmcyB8PSBwLT52bGFuX3RjaSBeIHNrYi0+dmxhbl90Y2k7CisJCWRpZmZzIHw9 IHNrYl9tZXRhZGF0YV9kc3RfY21wKHAsIHNrYik7CiAJCWlmIChtYWNsZW4gPT0gRVRIX0hMRU4p CiAJCQlkaWZmcyB8PSBjb21wYXJlX2V0aGVyX2hlYWRlcihza2JfbWFjX2hlYWRlcihwKSwKIAkJ CQkJCSAgICAgIHNrYl9tYWNfaGVhZGVyKHNrYikpOwpAQCAtNDM0MiwxMCArNDM0MywxMiBAQCBz dGF0aWMgZ3JvX3Jlc3VsdF90IG5hcGlfc2tiX2ZpbmlzaChncm9fcmVzdWx0X3QgcmV0LCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKQogCQlicmVhazsKIAogCWNhc2UgR1JPX01FUkdFRF9GUkVFOgotCQlp ZiAoTkFQSV9HUk9fQ0Ioc2tiKS0+ZnJlZSA9PSBOQVBJX0dST19GUkVFX1NUT0xFTl9IRUFEKQor CQlpZiAoTkFQSV9HUk9fQ0Ioc2tiKS0+ZnJlZSA9PSBOQVBJX0dST19GUkVFX1NUT0xFTl9IRUFE KSB7CisJCQlza2JfZHN0X2Ryb3Aoc2tiKTsKIAkJCWttZW1fY2FjaGVfZnJlZShza2J1ZmZfaGVh ZF9jYWNoZSwgc2tiKTsKLQkJZWxzZQorCQl9IGVsc2UgewogCQkJX19rZnJlZV9za2Ioc2tiKTsK KwkJfQogCQlicmVhazsKIAogCWNhc2UgR1JPX0hFTEQ6Ci0tIAoyLjEuMAoKCkZyb20gMTZmZWU2 M2Q0MmE4OTQ4MWM1ZDQzNWVmNTFmYjdlNGQ4OWEzMTg0YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogTWFuZnJlZCBSdWRpZ2llciA8TWFuZnJlZC5SdWRpZ2llckBvbWljcm9uLmF0PgpE YXRlOiBXZWQsIDIwIEphbiAyMDE2IDExOjIyOjI4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy80 N10gbmV0OiBkcDgzNjQwOiBGaXggdHggdGltZXN0YW1wIG92ZXJmbG93IGhhbmRsaW5nLgoKWyBV cHN0cmVhbSBjb21taXQgODFlOGYyZTkzMGZlNzZiOTgxNGM3MWI5ZDg3YzMwNzYwYjVlYjcwNSBd CgpQSFkgc3RhdHVzIGZyYW1lcyBhcmUgbm90IHJlbGlhYmxlLCB0aGUgUEhZIG1heSBub3QgYmUg YWJsZSB0byBzZW5kIHRoZW0KZHVyaW5nIGhlYXZ5IHJlY2VpdmUgdHJhZmZpYy4gVGhpcyBvdmVy ZmxvdyBjb25kaXRpb24gaXMgc2lnbmFsZWQgYnkgdGhlClBIWSBpbiB0aGUgbmV4dCBzdGF0dXMg ZnJhbWUsIGJ1dCB0aGUgZHJpdmVyIGRpZCBub3QgbWFrZSB1c2Ugb2YgaXQuCkluc3RlYWQgaXQg YWx3YXlzIHJlcG9ydGVkIHdyb25nIHR4IHRpbWVzdGFtcHMgdG8gdXNlciBzcGFjZSBhZnRlciBh bgpvdmVyZmxvdyBoYXBwZW5lZCBiZWNhdXNlIGl0IGFzc2lnbmVkIG5ld2x5IHJlY2VpdmVkIHR4 IHRpbWVzdGFtcHMgdG8gb2xkCnBhY2tldHMgaW4gdGhlIHF1ZXVlLgoKVGhpcyBjb21taXQgZml4 ZXMgdGhpcyBpc3N1ZSBieSBjbGVhcmluZyB0aGUgdHggdGltZXN0YW1wIHF1ZXVlIGV2ZXJ5IHRp bWUKYW4gb3ZlcmZsb3cgaGFwcGVucywgc28gdGhhdCBubyB0aW1lc3RhbXBzIGFyZSBkZWxpdmVy ZWQgZm9yIG92ZXJmbG93CnBhY2tldHMuIFRoaXMgd2F5IHRpbWUgc3RhbXBpbmcgd2lsbCBjb250 aW51ZSBjb3JyZWN0bHkgYWZ0ZXIgYW4gb3ZlcmZsb3cuCgpTaWduZWQtb2ZmLWJ5OiBNYW5mcmVk IFJ1ZGlnaWVyIDxtYW5mcmVkLnJ1ZGlnaWVyQG9taWNyb24uYXQ+CkFja2VkLWJ5OiBSaWNoYXJk IENvY2hyYW4gPHJpY2hhcmRjb2NocmFuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9kcDgz NjQwLmMgfCAxNyArKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jIGIvZHJpdmVycy9u ZXQvcGh5L2RwODM2NDAuYwppbmRleCA0N2I3MTE3Li5lNmNlZmQwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9waHkvZHA4MzY0MC5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMKQEAg LTg0NSw2ICs4NDUsMTEgQEAgc3RhdGljIHZvaWQgZGVjb2RlX3J4dHMoc3RydWN0IGRwODM2NDBf cHJpdmF0ZSAqZHA4MzY0MCwKIAlzdHJ1Y3Qgc2tiX3NoYXJlZF9od3RzdGFtcHMgKnNoaHd0c3Rh bXBzID0gTlVMTDsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 CisJdTggb3ZlcmZsb3c7CisKKwlvdmVyZmxvdyA9IChwaHlfcnh0cy0+bnNfaGkgPj4gMTQpICYg MHgzOworCWlmIChvdmVyZmxvdykKKwkJcHJfZGVidWcoInJ4IHRpbWVzdGFtcCBxdWV1ZSBvdmVy ZmxvdywgY291bnQgJWRcbiIsIG92ZXJmbG93KTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZkcDgz NjQwLT5yeF9sb2NrLCBmbGFncyk7CiAKQEAgLTg4Nyw2ICs4OTIsNyBAQCBzdGF0aWMgdm9pZCBk ZWNvZGVfdHh0cyhzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwLAogCXN0cnVjdCBza2Jf c2hhcmVkX2h3dHN0YW1wcyBzaGh3dHN0YW1wczsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwogCXU2 NCBuczsKKwl1OCBvdmVyZmxvdzsKIAogCS8qIFdlIG11c3QgYWxyZWFkeSBoYXZlIHRoZSBza2Ig dGhhdCB0cmlnZ2VyZWQgdGhpcy4gKi8KIApAQCAtODk2LDYgKzkwMiwxNyBAQCBzdGF0aWMgdm9p ZCBkZWNvZGVfdHh0cyhzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwLAogCQlwcl9kZWJ1 ZygiaGF2ZSB0aW1lc3RhbXAgYnV0IHR4X3F1ZXVlIGVtcHR5XG4iKTsKIAkJcmV0dXJuOwogCX0K KworCW92ZXJmbG93ID0gKHBoeV90eHRzLT5uc19oaSA+PiAxNCkgJiAweDM7CisJaWYgKG92ZXJm bG93KSB7CisJCXByX2RlYnVnKCJ0eCB0aW1lc3RhbXAgcXVldWUgb3ZlcmZsb3csIGNvdW50ICVk XG4iLCBvdmVyZmxvdyk7CisJCXdoaWxlIChza2IpIHsKKwkJCXNrYl9jb21wbGV0ZV90eF90aW1l c3RhbXAoc2tiLCBOVUxMKTsKKwkJCXNrYiA9IHNrYl9kZXF1ZXVlKCZkcDgzNjQwLT50eF9xdWV1 ZSk7CisJCX0KKwkJcmV0dXJuOworCX0KKwogCW5zID0gcGh5MnR4dHMocGh5X3R4dHMpOwogCW1l bXNldCgmc2hod3RzdGFtcHMsIDAsIHNpemVvZihzaGh3dHN0YW1wcykpOwogCXNoaHd0c3RhbXBz Lmh3dHN0YW1wID0gbnNfdG9fa3RpbWUobnMpOwotLSAKMi4xLjAKCgpGcm9tIGU3YjI0NTI1ZWRi N2RlM2VlZGQyZGY0ZTViN2U0MGQwZDA0ZGM5NzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEplc3NlIEdyb3NzIDxqZXNzZUBrZXJuZWwub3JnPgpEYXRlOiBXZWQsIDIwIEphbiAyMDE2 IDE2OjIyOjQ3IC0wODAwClN1YmplY3Q6IFtQQVRDSCAwNC80N10gdHVubmVsczogQWxsb3cgSVB2 NiBVRFAgY2hlY2tzdW1zIHRvIGJlIGNvcnJlY3RseQogY29udHJvbGxlZC4KClsgVXBzdHJlYW0g Y29tbWl0IDM1ZTJkMTE1MmIyMmVhZTk5Yzk2MWFmZmJlODUzNzRiZWYwNWE3NzUgXQoKV2hlbiBj b25maWd1cmluZyBjaGVja3N1bXMgb24gVURQIHR1bm5lbHMsIHRoZSBmbGFncyBhcmUgZGlmZmVy ZW50CmZvciBJUHY0IHZzLiBJUHY2IChhbmQgcmV2ZXJzZWQpLiBIb3dldmVyLCB3aGVuIGxpZ2h0 d2VpZ2h0IHR1bm5lbHMKYXJlIGVuYWJsZWQgdGhlIGZsYWdzIHVzZWQgYXJlIGFsd2F5cyB0aGUg SVB2NCB2ZXJzaW9ucywgd2hpY2ggYXJlCmlnbm9yZWQgaW4gdGhlIElQdjYgY29kZSBwYXRocy4g VGhpcyB1c2VzIHRoZSBjb3JyZWN0IElQdjYgZmxhZ3MsIHNvCmNoZWNrc3VtcyBjYW4gYmUgY29u dHJvbGxlZCBhcHByb3ByaWF0ZWx5LgoKRml4ZXM6IGE3MjVlNTE0ICgidnhsYW46IG1ldGFkYXRh IGJhc2VkIHR1bm5lbGluZyBmb3IgSVB2NiIpCkZpeGVzOiBhYmU0OTJiNCAoImdlbmV2ZTogVURQ IGNoZWNrc3VtIGNvbmZpZ3VyYXRpb24gdmlhIG5ldGxpbmsiKQpTaWduZWQtb2ZmLWJ5OiBKZXNz ZSBHcm9zcyA8amVzc2VAa2VybmVsLm9yZz4KQWNrZWQtYnk6IEppcmkgQmVuYyA8amJlbmNAcmVk aGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmV0L3Z4bGFuLmMgfCAyMyArKysrKysrKysrKysrKysrLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhsYW4uYyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKaW5kZXgg NDA1YTdiNi4uZTBmY2RhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4uYworKysgYi9k cml2ZXJzL25ldC92eGxhbi5jCkBAIC0xOTg0LDExICsxOTg0LDYgQEAgc3RhdGljIHZvaWQgdnhs YW5feG1pdF9vbmUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwK IAkJCQkgICAgIHZ4bGFuLT5jZmcucG9ydF9tYXgsIHRydWUpOwogCiAJaWYgKGluZm8pIHsKLQkJ aWYgKGluZm8tPmtleS50dW5fZmxhZ3MgJiBUVU5ORUxfQ1NVTSkKLQkJCWZsYWdzIHw9IFZYTEFO X0ZfVURQX0NTVU07Ci0JCWVsc2UKLQkJCWZsYWdzICY9IH5WWExBTl9GX1VEUF9DU1VNOwotCiAJ CXR0bCA9IGluZm8tPmtleS50dGw7CiAJCXRvcyA9IGluZm8tPmtleS50b3M7CiAKQEAgLTIwMDMs OCArMTk5OCwxNSBAQCBzdGF0aWMgdm9pZCB2eGxhbl94bWl0X29uZShzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJZ290byBkcm9wOwogCQlzayA9IHZ4bGFu LT52bjRfc29jay0+c29jay0+c2s7CiAKLQkJaWYgKGluZm8gJiYgKGluZm8tPmtleS50dW5fZmxh Z3MgJiBUVU5ORUxfRE9OVF9GUkFHTUVOVCkpCi0JCQlkZiA9IGh0b25zKElQX0RGKTsKKwkJaWYg KGluZm8pIHsKKwkJCWlmIChpbmZvLT5rZXkudHVuX2ZsYWdzICYgVFVOTkVMX0RPTlRfRlJBR01F TlQpCisJCQkJZGYgPSBodG9ucyhJUF9ERik7CisKKwkJCWlmIChpbmZvLT5rZXkudHVuX2ZsYWdz ICYgVFVOTkVMX0NTVU0pCisJCQkJZmxhZ3MgfD0gVlhMQU5fRl9VRFBfQ1NVTTsKKwkJCWVsc2UK KwkJCQlmbGFncyAmPSB+VlhMQU5fRl9VRFBfQ1NVTTsKKwkJfQogCiAJCW1lbXNldCgmZmw0LCAw LCBzaXplb2YoZmw0KSk7CiAJCWZsNC5mbG93aTRfb2lmID0gcmRzdCA/IHJkc3QtPnJlbW90ZV9p ZmluZGV4IDogMDsKQEAgLTIxMDIsNiArMjEwNCwxMyBAQCBzdGF0aWMgdm9pZCB2eGxhbl94bWl0 X29uZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJcmV0 dXJuOwogCQl9CiAKKwkJaWYgKGluZm8pIHsKKwkJCWlmIChpbmZvLT5rZXkudHVuX2ZsYWdzICYg VFVOTkVMX0NTVU0pCisJCQkJZmxhZ3MgJj0gflZYTEFOX0ZfVURQX1pFUk9fQ1NVTTZfVFg7CisJ CQllbHNlCisJCQkJZmxhZ3MgfD0gVlhMQU5fRl9VRFBfWkVST19DU1VNNl9UWDsKKwkJfQorCiAJ CXR0bCA9IHR0bCA/IDogaXA2X2RzdF9ob3BsaW1pdChuZHN0KTsKIAkJZXJyID0gdnhsYW42X3ht aXRfc2tiKG5kc3QsIHNrLCBza2IsIGRldiwgJnNhZGRyLCAmZHN0LT5zaW42LnNpbjZfYWRkciwK IAkJCQkgICAgICAwLCB0dGwsIHNyY19wb3J0LCBkc3RfcG9ydCwgaHRvbmwodm5pIDw8IDgpLCBt ZCwKLS0gCjIuMS4wCgoKRnJvbSAzMGI3YjdkZDE4ZjU1YjMzY2YzNTAyN2NlNjc5NzVkZGMyZDdm ZDAyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJl ZGhhdC5jb20+CkRhdGU6IFdlZCwgMTcgRmViIDIwMTYgMTk6MzA6MDEgKzAxMDAKU3ViamVjdDog W1BBVENIIDA1LzQ3XSBsd3Q6IGZpeCByeCBjaGVja3N1bSBzZXR0aW5nIGZvciBsd3QgZGV2aWNl cyB0dW5uZWxpbmcKIG92ZXIgaXB2NgoKWyBVcHN0cmVhbSBjb21taXQgYzg2OGVlNzA2M2JkYjUz ZjNlZjllYWM3YmNlYzg0OTYwOTgwYjQ3MSBdCgp0aGUgY29tbWl0IDM1ZTJkMTE1MmIyMiAoInR1 bm5lbHM6IEFsbG93IElQdjYgVURQIGNoZWNrc3VtcyB0byBiZQpjb3JyZWN0bHkgY29udHJvbGxl ZC4iKSBjaGFuZ2VkIHRoZSBkZWZhdWx0IHhtaXQgY2hlY2tzdW0gc2V0dGluZwpmb3IgbHd0IHZ4 bGFuL2dlbmV2ZSBpcHY2IHR1bm5lbHMsIHNvIHRoYXQgbm93IHRoZSBjaGVja3N1bSBpcyBub3QK c2V0IGludG8gZXh0ZXJuYWwgVURQIGhlYWRlci4KVGhpcyBjb21taXQgY2hhbmdlcyB0aGUgcngg Y2hlY2tzdW0gc2V0dGluZyBmb3IgYm90aCBsd3QgdnhsYW4vZ2VuZXZlCmRldmljZXMgY3JlYXRl ZCBieSBvcGVudnN3aXRjaCBhY2NvcmRpbmdseSwgc28gdGhhdCBsd3Qgb3ZlciBpcHY2CnR1bm5l bCBwYWlycyBhcmUgYWdhaW4gYWJsZSB0byBjb21tdW5pY2F0ZSB3aXRoIGRlZmF1bHQgdmFsdWVz LgoKU2lnbmVkLW9mZi1ieTogUGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpBY2tlZC1i eTogSmlyaSBCZW5jIDxqYmVuY0ByZWRoYXQuY29tPgpBY2tlZC1ieTogSmVzc2UgR3Jvc3MgPGpl c3NlQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvb3BlbnZzd2l0Y2gvdnBvcnQtdnhsYW4uYyB8IDIgKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L25ldC9vcGVudnN3aXRjaC92cG9ydC12eGxhbi5jIGIvbmV0L29wZW52c3dpdGNoL3Zwb3J0LXZ4 bGFuLmMKaW5kZXggMTYwNTY5MS4uZDkzM2NiOCAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNo L3Zwb3J0LXZ4bGFuLmMKKysrIGIvbmV0L29wZW52c3dpdGNoL3Zwb3J0LXZ4bGFuLmMKQEAgLTkw LDcgKzkwLDcgQEAgc3RhdGljIHN0cnVjdCB2cG9ydCAqdnhsYW5fdG5sX2NyZWF0ZShjb25zdCBz dHJ1Y3QgdnBvcnRfcGFybXMgKnBhcm1zKQogCWludCBlcnI7CiAJc3RydWN0IHZ4bGFuX2NvbmZp ZyBjb25mID0gewogCQkubm9fc2hhcmUgPSB0cnVlLAotCQkuZmxhZ3MgPSBWWExBTl9GX0NPTExF Q1RfTUVUQURBVEEsCisJCS5mbGFncyA9IFZYTEFOX0ZfQ09MTEVDVF9NRVRBREFUQSB8IFZYTEFO X0ZfVURQX1pFUk9fQ1NVTTZfUlgsCiAJfTsKIAogCWlmICghb3B0aW9ucykgewotLSAKMi4xLjAK CgpGcm9tIDVmN2JhMDJlMmU1ODdhZTEzODk3YTQ1YjdjOGZjZmUzYTllZmQ2MjcgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4K RGF0ZTogVGh1LCAyMSBKYW4gMjAxNiAwODowMjo1NCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDYv NDddIHRjcDogZml4IE5VTEwgZGVyZWYgaW4gdGNwX3Y0X3NlbmRfYWNrKCkKClsgVXBzdHJlYW0g Y29tbWl0IGU2MmExMjNiOGVmN2M1ZGM0ZGIyYzE2MzgzZDUwNjg2MGFkMjFiNDcgXQoKTmVhbCBy ZXBvcnRlZCBjcmFzaGVzIHdpdGggdGhpcyBzdGFjayB0cmFjZSA6CgogUklQOiAwMDEwOls8ZmZm ZmZmZmY4YzU3MjMxYj5dIHRjcF92NF9zZW5kX2FjaysweDQxLzB4MjBmCi4uLgogQ1IyOiAwMDAw MDAwMDAwMDAwMDE4IENSMzogMDAwMDAwMDQ0MDA1YzAwMCBDUjQ6IDAwMDAwMDAwMDAxNDI3ZTAK Li4uCiAgWzxmZmZmZmZmZjhjNTcyNThlPl0gdGNwX3Y0X3JlcXNrX3NlbmRfYWNrKzB4YTUvMHhi NAogIFs8ZmZmZmZmZmY4YzFhN2NhYT5dIHRjcF9jaGVja19yZXErMHgyZWEvMHgzZTAKICBbPGZm ZmZmZmZmOGMxOWU0MjA+XSB0Y3BfcmN2X3N0YXRlX3Byb2Nlc3MrMHg4NTAvMHgyNTAwCiAgWzxm ZmZmZmZmZjhjMWE2ZDIxPl0gdGNwX3Y0X2RvX3JjdisweDE0MS8weDMzMAogIFs8ZmZmZmZmZmY4 YzU2Y2RiMj5dIHNrX2JhY2tsb2dfcmN2KzB4MjEvMHgzMAogIFs8ZmZmZmZmZmY4YzA5OGJiZD5d IHRjcF9yZWN2bXNnKzB4NzVkLzB4ZjkwCiAgWzxmZmZmZmZmZjhjMGE4NzAwPl0gaW5ldF9yZWN2 bXNnKzB4ODAvMHhhMAogIFs8ZmZmZmZmZmY4YzE3NjIzZT5dIHNvY2tfYWlvX3JlYWQrMHhlZS8w eDExMAogIFs8ZmZmZmZmZmY4YzA2NmZjZj5dIGRvX3N5bmNfcmVhZCsweDZmLzB4YTAKICBbPGZm ZmZmZmZmOGMwNjczYTE+XSBTeVNfcmVhZCsweDFlMS8weDI5MAogIFs8ZmZmZmZmZmY4YzVjYTI2 Mj5dIHN5c3RlbV9jYWxsX2Zhc3RwYXRoKzB4MTYvMHgxYgoKVGhlIHByb2JsZW0gaGVyZSBpcyB0 aGUgc2tiIHdlIHByb3ZpZGUgdG8gdGNwX3Y0X3NlbmRfYWNrKCkgaGFkIHRvCmJlIHBhcmtlZCBp biB0aGUgYmFja2xvZyBvZiBhIG5ldyBUQ1AgZmFzdG9wZW4gY2hpbGQgYmVjYXVzZSB0aGlzIGNo aWxkCndhcyBvd25lZCBieSB0aGUgdXNlciBhdCB0aGUgdGltZSBhbiBvdXQgb2Ygd2luZG93IHBh Y2tldCBhcnJpdmVkLgoKQmVmb3JlIHF1ZXVpbmcgYSBwYWNrZXQsIFRDUCBoYXMgdG8gc2V0IHNr Yi0+ZGV2IHRvIE5VTEwgYXMgdGhlIGRldmljZQpjb3VsZCBkaXNhcHBlYXIgYmVmb3JlIHBhY2tl dCBpcyByZW1vdmVkIGZyb20gdGhlIHF1ZXVlLgoKRml4IHRoaXMgaXNzdWUgYnkgdXNpbmcgdGhl IG5ldCBwb2ludGVyIHByb3ZpZGVkIGJ5IHRoZSBzb2NrZXQgKGJlaW5nIGEKdGltZXdhaXQgb3Ig YSByZXF1ZXN0IHNvY2tldCkuCgpJUHY2IGlzIGltbXVuZSB0byB0aGUgYnVnIDogdGNwX3Y2X3Nl bmRfcmVzcG9uc2UoKSBhbHJlYWR5IGdldHMgdGhlIG5ldApwb2ludGVyIGZyb20gdGhlIHNvY2tl dCBpZiBwcm92aWRlZC4KCkZpeGVzOiAxNjhhOGY1ODA1OWEgKCJ0Y3A6IFRDUCBGYXN0IE9wZW4g U2VydmVyIC0gbWFpbiBjb2RlIHBhdGgiKQpSZXBvcnRlZC1ieTogTmVhbCBDYXJkd2VsbCA8bmNh cmR3ZWxsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KQ2M6IEplcnJ5IENodSA8aGtjaHVAZ29vZ2xlLmNvbT4KQ2M6IFl1Y2h1bmcg Q2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpBY2tlZC1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3 ZWxsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3BfaXB2NC5jIHwgMTMgKysrKysrKystLS0tLQog MSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9uZXQvaXB2NC90Y3BfaXB2NC5jIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCBkODg0 MWEyLi40NjI3NzE3IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaXB2NC5jCisrKyBiL25ldC9p cHY0L3RjcF9pcHY0LmMKQEAgLTcwNSw3ICs3MDUsOCBAQCByZWxlYXNlX3NrMToKICAgIG91dHNp ZGUgc29ja2V0IGNvbnRleHQgaXMgdWdseSwgY2VydGFpbmx5LiBXaGF0IGNhbiBJIGRvPwogICov CiAKLXN0YXRpYyB2b2lkIHRjcF92NF9zZW5kX2FjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIg c2VxLCB1MzIgYWNrLAorc3RhdGljIHZvaWQgdGNwX3Y0X3NlbmRfYWNrKHN0cnVjdCBuZXQgKm5l dCwKKwkJCSAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgc2VxLCB1MzIgYWNrLAogCQkJICAg IHUzMiB3aW4sIHUzMiB0c3ZhbCwgdTMyIHRzZWNyLCBpbnQgb2lmLAogCQkJICAgIHN0cnVjdCB0 Y3BfbWQ1c2lnX2tleSAqa2V5LAogCQkJICAgIGludCByZXBseV9mbGFncywgdTggdG9zKQpAQCAt NzIwLDcgKzcyMSw2IEBAIHN0YXRpYyB2b2lkIHRjcF92NF9zZW5kX2FjayhzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCB1MzIgc2VxLCB1MzIgYWNrLAogCQkJXTsKIAl9IHJlcDsKIAlzdHJ1Y3QgaXBfcmVw bHlfYXJnIGFyZzsKLQlzdHJ1Y3QgbmV0ICpuZXQgPSBkZXZfbmV0KHNrYl9kc3Qoc2tiKS0+ZGV2 KTsKIAogCW1lbXNldCgmcmVwLnRoLCAwLCBzaXplb2Yoc3RydWN0IHRjcGhkcikpOwogCW1lbXNl dCgmYXJnLCAwLCBzaXplb2YoYXJnKSk7CkBAIC03ODIsNyArNzgyLDggQEAgc3RhdGljIHZvaWQg dGNwX3Y0X3RpbWV3YWl0X2FjayhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2Ip CiAJc3RydWN0IGluZXRfdGltZXdhaXRfc29jayAqdHcgPSBpbmV0X3R3c2soc2spOwogCXN0cnVj dCB0Y3BfdGltZXdhaXRfc29jayAqdGNwdHcgPSB0Y3BfdHdzayhzayk7CiAKLQl0Y3BfdjRfc2Vu ZF9hY2soc2tiLCB0Y3B0dy0+dHdfc25kX254dCwgdGNwdHctPnR3X3Jjdl9ueHQsCisJdGNwX3Y0 X3NlbmRfYWNrKHNvY2tfbmV0KHNrKSwgc2tiLAorCQkJdGNwdHctPnR3X3NuZF9ueHQsIHRjcHR3 LT50d19yY3Zfbnh0LAogCQkJdGNwdHctPnR3X3Jjdl93bmQgPj4gdHctPnR3X3Jjdl93c2NhbGUs CiAJCQl0Y3BfdGltZV9zdGFtcCArIHRjcHR3LT50d190c19vZmZzZXQsCiAJCQl0Y3B0dy0+dHdf dHNfcmVjZW50LApAQCAtODAxLDggKzgwMiwxMCBAQCBzdGF0aWMgdm9pZCB0Y3BfdjRfcmVxc2tf c2VuZF9hY2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCS8q IHNrLT5za19zdGF0ZSA9PSBUQ1BfTElTVEVOIC0+IGZvciByZWd1bGFyIFRDUF9TWU5fUkVDVgog CSAqIHNrLT5za19zdGF0ZSA9PSBUQ1BfU1lOX1JFQ1YgLT4gZm9yIEZhc3QgT3Blbi4KIAkgKi8K LQl0Y3BfdjRfc2VuZF9hY2soc2tiLCAoc2stPnNrX3N0YXRlID09IFRDUF9MSVNURU4pID8KLQkJ CXRjcF9yc2socmVxKS0+c250X2lzbiArIDEgOiB0Y3Bfc2soc2spLT5zbmRfbnh0LAorCXUzMiBz ZXEgPSAoc2stPnNrX3N0YXRlID09IFRDUF9MSVNURU4pID8gdGNwX3JzayhyZXEpLT5zbnRfaXNu ICsgMSA6CisJCQkJCSAgICAgdGNwX3NrKHNrKS0+c25kX254dDsKKworCXRjcF92NF9zZW5kX2Fj ayhzb2NrX25ldChzayksIHNrYiwgc2VxLAogCQkJdGNwX3JzayhyZXEpLT5yY3Zfbnh0LCByZXEt PnJza19yY3Zfd25kLAogCQkJdGNwX3RpbWVfc3RhbXAsCiAJCQlyZXEtPnRzX3JlY2VudCwKLS0g CjIuMS4wCgoKRnJvbSA3ZmY1MTZhYzQyZGM0NzE0NjExNmM1Njk4Njg1ZDM0MmEyYzI5M2NjIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+CkRhdGU6IFN1biwgMjQgSmFuIDIwMTYgMTM6NTM6NTAgLTA4MDAKU3ViamVjdDogW1BB VENIIDA3LzQ3XSBhZl91bml4OiBmaXggc3RydWN0IHBpZCBtZW1vcnkgbGVhawoKWyBVcHN0cmVh bSBjb21taXQgZmEwZGMwNGRmMjU5YmEyZGYzY2UxOTIwZTk2OTBjNzg0MmY4ZmE0YiBdCgpEbWl0 cnkgcmVwb3J0ZWQgYSBzdHJ1Y3QgcGlkIGxlYWsgZGV0ZWN0ZWQgYnkgYSBzeXprYWxsZXIgcHJv Z3JhbS4KCkJ1ZyBoYXBwZW5zIGluIHVuaXhfc3RyZWFtX3JlY3Ztc2coKSB3aGVuIHdlIGJyZWFr IHRoZSBsb29wIHdoZW4gYQpzaWduYWwgaXMgcGVuZGluZywgd2l0aG91dCBwcm9wZXJseSByZWxl YXNpbmcgc2NtLgoKRml4ZXM6IGIzY2E5YjAyYjAwNyAoIm5ldDogZml4IG11bHRpdGhyZWFkZWQg c2lnbmFsIGhhbmRsaW5nIGluIHVuaXggcmVjdiByb3V0aW5lcyIpClJlcG9ydGVkLWJ5OiBEbWl0 cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpl dCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IFJhaW5lciBXZWlrdXNhdCA8cndlaWt1c2F0QG1v YmlsZWFjdGl2ZWRlZmVuc2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3VuaXgvYWZfdW5peC5jIHwgMSArCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQvdW5peC9hZl91bml4LmMg Yi9uZXQvdW5peC9hZl91bml4LmMKaW5kZXggZTNmODViYy4uNzc1ODU1ZSAxMDA2NDQKLS0tIGEv bmV0L3VuaXgvYWZfdW5peC5jCisrKyBiL25ldC91bml4L2FmX3VuaXguYwpAQCAtMjMzMiw2ICsy MzMyLDcgQEAgYWdhaW46CiAKIAkJCWlmIChzaWduYWxfcGVuZGluZyhjdXJyZW50KSkgewogCQkJ CWVyciA9IHNvY2tfaW50cl9lcnJubyh0aW1lbyk7CisJCQkJc2NtX2Rlc3Ryb3koJnNjbSk7CiAJ CQkJZ290byBvdXQ7CiAJCQl9CiAKLS0gCjIuMS4wCgoKRnJvbSA0OTRjOWRkMmNkMGVlNTNkMmQ5 MTQyMTlkOTFhMDYyYjNjMzU1ZGEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5u ZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0cmVzc2luZHVrdGlvbi5vcmc+CkRhdGU6IEZyaSwg MjIgSmFuIDIwMTYgMDE6Mzk6NDMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4LzQ3XSBwcHRwOiBm aXggaWxsZWdhbCBtZW1vcnkgYWNjZXNzIGNhdXNlZCBieSBtdWx0aXBsZQogYmluZCgpcwoKWyBV cHN0cmVhbSBjb21taXQgOWEzNjhhZmY5Y2IzNzAyOThmYTAyZmVlZmZhODYxZjJkYjQ5N2MxOCBd CgpTZXZlcmFsIHRpbWVzIGFscmVhZHkgdGhpcyBoYXMgYmVlbiByZXBvcnRlZCBhcyBrYXNhbiBy ZXBvcnRzIGNhdXNlZCBieQpzeXprYWxsZXIgYW5kIHRyaW5pdHkgYW5kIHBlb3BsZSBhbHdheXMg bG9va2VkIGF0IFJDVSByYWNlcywgYnV0IGl0IGlzCm11Y2ggbW9yZSBzaW1wbGUuIDopCgpJbiBj YXNlIHdlIGJpbmQgYSBwcHRwIHNvY2tldCBtdWx0aXBsZSB0aW1lcywgd2Ugc2ltcGx5IGFkZCBp dCB0bwp0aGUgY2FsbGlkX3NvY2sgbGlzdCBidXQgZG9uJ3QgcmVtb3ZlIHRoZSBvbGQgYmluZGlu Zy4gVGh1cyB0aGUgb2xkCnNvY2tldCBzdGF5cyBpbiB0aGUgYnVja2V0IHdpdGggdW51c2VkIGNh bGxfaWQgaW5kZXhlcyBhbmQgZG9lc24ndCBnZXQKY2xlYW5lZCB1cC4gVGhpcyBjYXVzZXMgdmFy aW91cyBmb3JtcyBvZiBrYXNhbiByZXBvcnRzIHdoaWNoIHdlcmUgaGFyZAp0byBwaW5wb2ludC4K ClNpbXBseSBkb24ndCBhbGxvdyBtdWx0aXBsZSBiaW5kcyBhbmQgY29ycmVjdCBlcnJvciBoYW5k bGluZyBpbgpwcHRwX2JpbmQuIEFsc28ga2VlcCBza19zdGF0ZSBiaXRzIGluIHBsYWNlIGluIHBw dHBfY29ubmVjdC4KCkZpeGVzOiAwMDk1OWFkZTM2YWNhZCAoIlBQVFA6IFBQUCBvdmVyIElQdjQg KFBvaW50LXRvLVBvaW50IFR1bm5lbGluZyBQcm90b2NvbCkiKQpDYzogRG1pdHJ5IEtvemxvdiA8 eGViQG1haWwucnU+CkNjOiBTYXNoYSBMZXZpbiA8c2FzaGEubGV2aW5Ab3JhY2xlLmNvbT4KQ2M6 IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IERtaXRyeSBW eXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KQ2M6IERhdmUgSm9uZXMgPGRhdmVqQGNvZGVtb25r ZXkub3JnLnVrPgpSZXBvcnRlZC1ieTogRGF2ZSBKb25lcyA8ZGF2ZWpAY29kZW1vbmtleS5vcmcu dWs+ClNpZ25lZC1vZmYtYnk6IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5uZXNAc3RyZXNzaW5k dWt0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BwcC9wcHRwLmMgfCAzNCArKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgMTAg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcHBwL3BwdHAuYyBiL2RyaXZl cnMvbmV0L3BwcC9wcHRwLmMKaW5kZXggNTk3YzUzZS4uZjdlOGM3OSAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvcHBwL3BwdHAuYworKysgYi9kcml2ZXJzL25ldC9wcHAvcHB0cC5jCkBAIC0xMjks MjQgKzEyOSwyNyBAQCBzdGF0aWMgaW50IGxvb2t1cF9jaGFuX2RzdCh1MTYgY2FsbF9pZCwgX19i ZTMyIGRfYWRkcikKIAlyZXR1cm4gaSA8IE1BWF9DQUxMSUQ7CiB9CiAKLXN0YXRpYyBpbnQgYWRk X2NoYW4oc3RydWN0IHBwcG94X3NvY2sgKnNvY2spCitzdGF0aWMgaW50IGFkZF9jaGFuKHN0cnVj dCBwcHBveF9zb2NrICpzb2NrLAorCQkgICAgc3RydWN0IHBwdHBfYWRkciAqc2EpCiB7CiAJc3Rh dGljIGludCBjYWxsX2lkOwogCiAJc3Bpbl9sb2NrKCZjaGFuX2xvY2spOwotCWlmICghc29jay0+ cHJvdG8ucHB0cC5zcmNfYWRkci5jYWxsX2lkKQl7CisJaWYgKCFzYS0+Y2FsbF9pZCkJewogCQlj YWxsX2lkID0gZmluZF9uZXh0X3plcm9fYml0KGNhbGxpZF9iaXRtYXAsIE1BWF9DQUxMSUQsIGNh bGxfaWQgKyAxKTsKIAkJaWYgKGNhbGxfaWQgPT0gTUFYX0NBTExJRCkgewogCQkJY2FsbF9pZCA9 IGZpbmRfbmV4dF96ZXJvX2JpdChjYWxsaWRfYml0bWFwLCBNQVhfQ0FMTElELCAxKTsKIAkJCWlm IChjYWxsX2lkID09IE1BWF9DQUxMSUQpCiAJCQkJZ290byBvdXRfZXJyOwogCQl9Ci0JCXNvY2st PnByb3RvLnBwdHAuc3JjX2FkZHIuY2FsbF9pZCA9IGNhbGxfaWQ7Ci0JfSBlbHNlIGlmICh0ZXN0 X2JpdChzb2NrLT5wcm90by5wcHRwLnNyY19hZGRyLmNhbGxfaWQsIGNhbGxpZF9iaXRtYXApKQor CQlzYS0+Y2FsbF9pZCA9IGNhbGxfaWQ7CisJfSBlbHNlIGlmICh0ZXN0X2JpdChzYS0+Y2FsbF9p ZCwgY2FsbGlkX2JpdG1hcCkpIHsKIAkJZ290byBvdXRfZXJyOworCX0KIAotCXNldF9iaXQoc29j ay0+cHJvdG8ucHB0cC5zcmNfYWRkci5jYWxsX2lkLCBjYWxsaWRfYml0bWFwKTsKLQlyY3VfYXNz aWduX3BvaW50ZXIoY2FsbGlkX3NvY2tbc29jay0+cHJvdG8ucHB0cC5zcmNfYWRkci5jYWxsX2lk XSwgc29jayk7CisJc29jay0+cHJvdG8ucHB0cC5zcmNfYWRkciA9ICpzYTsKKwlzZXRfYml0KHNh LT5jYWxsX2lkLCBjYWxsaWRfYml0bWFwKTsKKwlyY3VfYXNzaWduX3BvaW50ZXIoY2FsbGlkX3Nv Y2tbc2EtPmNhbGxfaWRdLCBzb2NrKTsKIAlzcGluX3VubG9jaygmY2hhbl9sb2NrKTsKIAogCXJl dHVybiAwOwpAQCAtNDE2LDcgKzQxOSw2IEBAIHN0YXRpYyBpbnQgcHB0cF9iaW5kKHN0cnVjdCBz b2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqdXNlcnZhZGRyLAogCXN0cnVjdCBzb2NrICpz ayA9IHNvY2stPnNrOwogCXN0cnVjdCBzb2NrYWRkcl9wcHBveCAqc3AgPSAoc3RydWN0IHNvY2th ZGRyX3BwcG94ICopIHVzZXJ2YWRkcjsKIAlzdHJ1Y3QgcHBwb3hfc29jayAqcG8gPSBwcHBveF9z ayhzayk7Ci0Jc3RydWN0IHBwdHBfb3B0ICpvcHQgPSAmcG8tPnByb3RvLnBwdHA7CiAJaW50IGVy cm9yID0gMDsKIAogCWlmIChzb2NrYWRkcl9sZW4gPCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX3Bw cG94KSkKQEAgLTQyNCwxMCArNDI2LDIyIEBAIHN0YXRpYyBpbnQgcHB0cF9iaW5kKHN0cnVjdCBz b2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqdXNlcnZhZGRyLAogCiAJbG9ja19zb2NrKHNr KTsKIAotCW9wdC0+c3JjX2FkZHIgPSBzcC0+c2FfYWRkci5wcHRwOwotCWlmIChhZGRfY2hhbihw bykpCisJaWYgKHNrLT5za19zdGF0ZSAmIFBQUE9YX0RFQUQpIHsKKwkJZXJyb3IgPSAtRUFMUkVB RFk7CisJCWdvdG8gb3V0OworCX0KKworCWlmIChzay0+c2tfc3RhdGUgJiBQUFBPWF9CT1VORCkg ewogCQllcnJvciA9IC1FQlVTWTsKKwkJZ290byBvdXQ7CisJfQorCisJaWYgKGFkZF9jaGFuKHBv LCAmc3AtPnNhX2FkZHIucHB0cCkpCisJCWVycm9yID0gLUVCVVNZOworCWVsc2UKKwkJc2stPnNr X3N0YXRlIHw9IFBQUE9YX0JPVU5EOwogCitvdXQ6CiAJcmVsZWFzZV9zb2NrKHNrKTsKIAlyZXR1 cm4gZXJyb3I7CiB9CkBAIC00OTgsNyArNTEyLDcgQEAgc3RhdGljIGludCBwcHRwX2Nvbm5lY3Qo c3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICp1c2VydmFkZHIsCiAJfQogCiAJ b3B0LT5kc3RfYWRkciA9IHNwLT5zYV9hZGRyLnBwdHA7Ci0Jc2stPnNrX3N0YXRlID0gUFBQT1hf Q09OTkVDVEVEOworCXNrLT5za19zdGF0ZSB8PSBQUFBPWF9DT05ORUNURUQ7CiAKICBlbmQ6CiAJ cmVsZWFzZV9zb2NrKHNrKTsKLS0gCjIuMS4wCgoKRnJvbSAxYmYzYzFkY2I1YTFjYWJmMmQ3NmM3 ZTZlOTlmNDZkMzk2ZGQ1ZjUzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjZWxv IFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAy MiBKYW4gMjAxNiAxODoyOTo0OSAtMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkvNDddIHNjdHA6IGFs bG93IHNldHRpbmcgU0NUUF9TQUNLX0lNTUVESUFURUxZIGJ5IHRoZQogYXBwbGljYXRpb24KClsg VXBzdHJlYW0gY29tbWl0IDI3ZjdlZDJiMTFkNDJhYjZkNzk2ZTk2NTMzYzIwNzZlYzIyMGFmZmMg XQoKVGhpcyBwYXRjaCBleHRlbmRzIGNvbW1pdCBiOTNkNjQ3MTc0OGQgKCJzY3RwOiBpbXBsZW1l bnQgdGhlIHNlbmRlciBzaWRlCmZvciBTQUNLLUlNTUVESUFURUxZIGV4dGVuc2lvbiIpIGFzIGl0 IGRpZG4ndCB3aGl0ZSBsaXN0ClNDVFBfU0FDS19JTU1FRElBVEVMWSBvbiBzY3RwX21zZ2hkcl9w YXJzZSgpLCBjYXVzaW5nIGl0IHRvIGJlCnVuZGVyc3Rvb2QgYXMgYW4gaW52YWxpZCBmbGFnIGFu ZCByZXR1cm5pbmcgLUVJTlZBTCB0byB0aGUgYXBwbGljYXRpb24uCgpOb3RlIHRoYXQgdGhlIGFj dHVhbCBoYW5kbGluZyBvZiB0aGUgZmxhZyBpcyBhbHJlYWR5IHRoZXJlIGluCnNjdHBfZGF0YW1z Z19mcm9tX3VzZXIoKS4KCmh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MDUzI3NlY3Rp b24tNwoKRml4ZXM6IGI5M2Q2NDcxNzQ4ZCAoInNjdHA6IGltcGxlbWVudCB0aGUgc2VuZGVyIHNp ZGUgZm9yIFNBQ0stSU1NRURJQVRFTFkgZXh0ZW5zaW9uIikKU2lnbmVkLW9mZi1ieTogTWFyY2Vs byBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+CkFja2VkLWJ5OiBW bGFkIFlhc2V2aWNoIDx2eWFzZXZpY2hAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvc29ja2V0LmMgfCAy ICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3Nj dHAvc29ja2V0LmMgYi9uZXQvc2N0cC9zb2NrZXQuYwppbmRleCBlZjFkOTBmLi4wNmE5Y2ZiIDEw MDY0NAotLS0gYS9uZXQvc2N0cC9zb2NrZXQuYworKysgYi9uZXQvc2N0cC9zb2NrZXQuYwpAQCAt NjY0MCw2ICs2NjQwLDcgQEAgc3RhdGljIGludCBzY3RwX21zZ2hkcl9wYXJzZShjb25zdCBzdHJ1 Y3QgbXNnaGRyICptc2csIHNjdHBfY21zZ3NfdCAqY21zZ3MpCiAKIAkJCWlmIChjbXNncy0+c3Jp bmZvLT5zaW5mb19mbGFncyAmCiAJCQkgICAgfihTQ1RQX1VOT1JERVJFRCB8IFNDVFBfQUREUl9P VkVSIHwKKwkJCSAgICAgIFNDVFBfU0FDS19JTU1FRElBVEVMWSB8CiAJCQkgICAgICBTQ1RQX0FC T1JUIHwgU0NUUF9FT0YpKQogCQkJCXJldHVybiAtRUlOVkFMOwogCQkJYnJlYWs7CkBAIC02NjYz LDYgKzY2NjQsNyBAQCBzdGF0aWMgaW50IHNjdHBfbXNnaGRyX3BhcnNlKGNvbnN0IHN0cnVjdCBt c2doZHIgKm1zZywgc2N0cF9jbXNnc190ICpjbXNncykKIAogCQkJaWYgKGNtc2dzLT5zaW5mby0+ c25kX2ZsYWdzICYKIAkJCSAgICB+KFNDVFBfVU5PUkRFUkVEIHwgU0NUUF9BRERSX09WRVIgfAor CQkJICAgICAgU0NUUF9TQUNLX0lNTUVESUFURUxZIHwKIAkJCSAgICAgIFNDVFBfQUJPUlQgfCBT Q1RQX0VPRikpCiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQlicmVhazsKLS0gCjIuMS4wCgoKRnJv bSA1OTJkOWU1YjY5ODdhMjcxZWJiOTVmNTNlYWFjOWU1M2MzZjQ5NjlmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtLmxpbnV4Lm9yZy51 az4KRGF0ZTogU3VuLCAyNCBKYW4gMjAxNiAwOToyMjowNSArMDAwMApTdWJqZWN0OiBbUEFUQ0gg MTAvNDddIG5ldDogZHNhOiBmaXggbXY4OGU2eHh4IHN3aXRjaGVzCgpbIFVwc3RyZWFtIGNvbW1p dCBkYjBlNTFhZmE0ODEwODhlNjM5NmYxMWUwMjAxOGQ2NDExM2E2NTc4IF0KClNpbmNlIGNvbW1p dCA3NmUzOThhNjI3MTIgKCJuZXQ6IGRzYTogdXNlIHN3aXRjaGRldiBvYmogZm9yIFZMQU4gYWRk L2RlbApvcHMiKSwgdGhlIE1hcnZlbGwgODhFNnh4eCBzd2l0Y2ggaGFzIGJlZW4gdW5hYmxlIHRv IHBhc3MgdHJhZmZpYwpiZXR3ZWVuIHBvcnRzIC0gYW55IHJlY2VpdmVkIHRyYWZmaWMgaXMgZGlz Y2FyZGVkIGJ5IHRoZSBzd2l0Y2guClRha2luZyBhIHBvcnQgb3V0IG9mIGJyaWRnZSBtb2RlIGFu ZCBjb25maWd1cmluZyBhIHZsYW4gb24gaXQgYWxzbyB0aGUKcG9ydCB0byBzdGFydCBwYXNzaW5n IHRyYWZmaWMuCgpXaXRoIHRoZSBkZWJ1Z2ZzIGZpbGVzIHJlLWluc3RhdGVkIHRvIGFsbG93IGRl YnVnIG9mIHRoaXMgaXNzdWUgYnkKY29tcGFyaW5nIHRoZSByZWdpc3RlciBzZXR0aW5ncyBiZXR3 ZWVuIHRoZSB3b3JraW5nIGFuZCBub24td29ya2luZwpjYXNlLCB0aGUgcmVhc29uIGJlY29tZXMg Y2xlYXI6CgogICAgIEdMT0JBTCBHTE9CQUwyIFNFUkRFUyAgIDAgICAgMSAgICAyICAgIDMgICAg NCAgICA1ICAgIDYKLSA3OiAgMTExMSAgICA3MDdmICAgIDIwMDEgICAgIDIgICAgMiAgICAyICAg IDIgICAgMiAgICAwICAgIDIKKyA3OiAgMTExMSAgICA3MDdmICAgIDIwMDEgICAgIDEgICAgMSAg ICAxICAgIDEgICAgMSAgICAwICAgIDEKClJlZ2lzdGVyIDcgZm9yIHRoZSBwb3J0cyBpcyB0aGUg ZGVmYXVsdCB2bGFuIHRhZyByZWdpc3RlciwgYW5kIGluIHRoZQpub24td29ya2luZyBzZXR1cCwg aXQgaGFzIGJlZW4gc2V0IHRvIDIsIGRlc3BpdGUgdmxhbiAyIG5vdCBiZWluZwpjb25maWd1cmVk LiAgVGhpcyBjYXVzZXMgdGhlIHN3aXRjaCB0byBkcm9wIGFsbCBwYWNrZXRzIGNvbWluZyBpbiB0 bwp0aGVzZSBwb3J0cy4gIFRoZSB3b3JraW5nIHNldHVwIGhhcyB0aGUgZGVmYXVsdCB2bGFuIHRh ZyByZWdpc3RlciBzZXQKdG8gMSwgd2hpY2ggaXMgdGhlIGRlZmF1bHQgdmxhbiB3aGVuIG5vbmUg aXMgY29uZmlndXJlZC4KCkluc3BlY3Rpb24gb2YgdGhlIGNvZGUgcmV2ZWFscyB3aHkuICBUaGUg Y29kZSBwcmlvciB0byB0aGlzIGNvbW1pdAp3YXM6CgotCQlmb3IgKHZpZCA9IHZsYW4tPnZpZF9i ZWdpbjsgdmlkIDw9IHZsYW4tPnZpZF9lbmQ7ICsrdmlkKSB7Ci4uLgotCQkJaWYgKCFlcnIgJiYg dmxhbi0+ZmxhZ3MgJiBCUklER0VfVkxBTl9JTkZPX1BWSUQpCi0JCQkJZXJyID0gZHMtPmRydi0+ cG9ydF9wdmlkX3NldChkcywgcC0+cG9ydCwgdmlkKTsKCmJ1dCB0aGUgbmV3IGNvZGUgaXM6Cgor CWZvciAodmlkID0gdmxhbi0+dmlkX2JlZ2luOyB2aWQgPD0gdmxhbi0+dmlkX2VuZDsgKyt2aWQp IHsKLi4uCisJfQouLi4KKwlpZiAocHZpZCkKKwkJZXJyID0gX212ODhlNnh4eF9wb3J0X3B2aWRf c2V0KGRzLCBwb3J0LCB2aWQpOwoKVGhpcyBjYXVzZXMgdGhlIG5ldyBjb2RlIHRvIGFsd2F5cyBz ZXQgdGhlIGRlZmF1bHQgdmxhbiB0byBvbmUgaGlnaGVyCnRoYW4gdGhlIG9sZCBjb2RlLgoKRml4 IHRoaXMuCgpGaXhlczogNzZlMzk4YTYyNzEyICgibmV0OiBkc2E6IHVzZSBzd2l0Y2hkZXYgb2Jq IGZvciBWTEFOIGFkZC9kZWwgb3BzIikKQ2M6IDxzdGFibGVAdmdlci5rZXJuZWwub3JnPgpTaWdu ZWQtb2ZmLWJ5OiBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtLmxpbnV4Lm9yZy51az4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4 ZTZ4eHguYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHguYwppbmRleCBiMDZkYmEwLi4yZGVh MzliIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4LmMKKysrIGIvZHJpdmVy cy9uZXQvZHNhL212ODhlNnh4eC5jCkBAIC0xNTE5LDcgKzE1MTksNyBAQCBpbnQgbXY4OGU2eHh4 X3BvcnRfdmxhbl9hZGQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKIAogCS8qIG5v IFBWSUQgd2l0aCByYW5nZXMsIG90aGVyd2lzZSBpdCdzIGEgYnVnICovCiAJaWYgKHB2aWQpCi0J CWVyciA9IF9tdjg4ZTZ4eHhfcG9ydF9wdmlkX3NldChkcywgcG9ydCwgdmlkKTsKKwkJZXJyID0g X212ODhlNnh4eF9wb3J0X3B2aWRfc2V0KGRzLCBwb3J0LCB2bGFuLT52aWRfZW5kKTsKIHVubG9j azoKIAltdXRleF91bmxvY2soJnBzLT5zbWlfbXV0ZXgpOwogCi0tIAoyLjEuMAoKCkZyb20gZDRh ZDU3Y2M3OGJjYjg1ZDk2NDQ1ZDAwMDgzYzlmOGYxZjYxZDI5ZCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogUGFydGhhc2FyYXRoeSBCaHV2YXJhZ2FuIDxwYXJ0aGFzYXJhdGh5LmJodXZh cmFnYW5AZXJpY3Nzb24uY29tPgpEYXRlOiBXZWQsIDI3IEphbiAyMDE2IDExOjM1OjU5ICswMTAw ClN1YmplY3Q6IFtQQVRDSCAxMS80N10gdGlwYzogZml4IGNvbm5lY3Rpb24gYWJvcnQgZHVyaW5n IHN1YnNjcmlwdGlvbiBjYW5jZWwKClsgVXBzdHJlYW0gY29tbWl0IDRkNWNmY2JhMmY2ZWM0OTRk ODgxMGI5ZTNjMGE3YjA2MjU1YzgwNjcgXQoKSW4gJ2NvbW1pdCA3ZmU4MDk3Y2VmNWYgKCJ0aXBj OiBmaXggbnVsbHBvaW50ZXIgYnVnIHdoZW4gc3Vic2NyaWJpbmcKdG8gZXZlbnRzIiknLCB3ZSB0 ZXJtaW5hdGUgdGhlIGNvbm5lY3Rpb24gaWYgdGhlIHN1YnNjcmlwdGlvbgpjcmVhdGlvbiBmYWls cy4KSW4gdGhlIHNhbWUgY29tbWl0LCB0aGUgc3Vic2NyaXB0aW9uIGNyZWF0aW9uIHJlc3VsdCB3 YXMgYmFzZWQgb24KdGhlIHZhbHVlIG9mIHRoZSBzdWJzY3JpcHRpb24gcG9pbnRlciAoc2V0IGlu IHRoZSBmdW5jdGlvbikgaW5zdGVhZApvZiB0aGUgcmV0dXJuIGNvZGUuCgpVbmZvcnR1bmF0ZWx5 LCB0aGUgc2FtZSBmdW5jdGlvbiB0aXBjX3N1YnNjcnBfY3JlYXRlKCkgaGFuZGxlcwpzdWJzY3Jp cHRpb24gY2FuY2VsIHJlcXVlc3QuIEZvciBhIHN1YnNjcmlwdGlvbiBjYW5jZWxsYXRpb24gcmVx dWVzdCwKdGhlIHN1YnNjcmlwdGlvbiBwb2ludGVyIGNhbm5vdCBiZSBzZXQuIFRodXMgaWYgYSBz dWJzY3JpYmVyIGhhcwpzZXZlcmFsIHN1YnNjcmlwdGlvbnMgYW5kIGNhbmNlbHMgYW55IG9mIHRo ZW0sIHRoZSBjb25uZWN0aW9uIGlzCnRlcm1pbmF0ZWQuCgpJbiB0aGlzIGNvbW1pdCwgd2UgdGVy bWluYXRlIHRoZSBjb25uZWN0aW9uIGJhc2VkIG9uIHRoZSByZXR1cm4gdmFsdWUKb2YgdGlwY19z dWJzY3JwX2NyZWF0ZSgpLgpGaXhlczogY29tbWl0IDdmZTgwOTdjZWY1ZiAoInRpcGM6IGZpeCBu dWxscG9pbnRlciBidWcgd2hlbiBzdWJzY3JpYmluZyB0byBldmVudHMiKQoKUmV2aWV3ZWQtYnk6 ICBKb24gTWFsb3kgPGpvbi5tYWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IFBhcnRo YXNhcmF0aHkgQmh1dmFyYWdhbiA8cGFydGhhc2FyYXRoeS5iaHV2YXJhZ2FuQGVyaWNzc29uLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC90aXBjL3N1YnNjci5jIHwgMTEgKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1 IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvc3Vi c2NyLmMgYi9uZXQvdGlwYy9zdWJzY3IuYwppbmRleCAzNTBjY2EzLi42OWVlMmVlIDEwMDY0NAot LS0gYS9uZXQvdGlwYy9zdWJzY3IuYworKysgYi9uZXQvdGlwYy9zdWJzY3IuYwpAQCAtMjg5LDE1 ICsyODksMTQgQEAgc3RhdGljIHZvaWQgdGlwY19zdWJzY3JiX3Jjdl9jYihzdHJ1Y3QgbmV0ICpu ZXQsIGludCBjb25pZCwKIAkJCQlzdHJ1Y3Qgc29ja2FkZHJfdGlwYyAqYWRkciwgdm9pZCAqdXNy X2RhdGEsCiAJCQkJdm9pZCAqYnVmLCBzaXplX3QgbGVuKQogewotCXN0cnVjdCB0aXBjX3N1YnNj cmliZXIgKnN1YnNjcmliZXIgPSB1c3JfZGF0YTsKKwlzdHJ1Y3QgdGlwY19zdWJzY3JpYmVyICpz dWJzY3JiID0gdXNyX2RhdGE7CiAJc3RydWN0IHRpcGNfc3Vic2NyaXB0aW9uICpzdWIgPSBOVUxM OwogCXN0cnVjdCB0aXBjX25ldCAqdG4gPSBuZXRfZ2VuZXJpYyhuZXQsIHRpcGNfbmV0X2lkKTsK IAotCXRpcGNfc3Vic2NycF9jcmVhdGUobmV0LCAoc3RydWN0IHRpcGNfc3Vic2NyICopYnVmLCBz dWJzY3JpYmVyLCAmc3ViKTsKLQlpZiAoc3ViKQotCQl0aXBjX25hbWV0Ymxfc3Vic2NyaWJlKHN1 Yik7Ci0JZWxzZQotCQl0aXBjX2Nvbm5fdGVybWluYXRlKHRuLT50b3BzcnYsIHN1YnNjcmliZXIt PmNvbmlkKTsKKwlpZiAodGlwY19zdWJzY3JwX2NyZWF0ZShuZXQsIChzdHJ1Y3QgdGlwY19zdWJz Y3IgKilidWYsIHN1YnNjcmIsICZzdWIpKQorCQlyZXR1cm4gdGlwY19jb25uX3Rlcm1pbmF0ZSh0 bi0+dG9wc3J2LCBzdWJzY3JiLT5jb25pZCk7CisKKwl0aXBjX25hbWV0Ymxfc3Vic2NyaWJlKHN1 Yik7CiB9CiAKIC8qIEhhbmRsZSBvbmUgcmVxdWVzdCB0byBlc3RhYmxpc2ggYSBuZXcgc3Vic2Ny aWJlciAqLwotLSAKMi4xLjAKCgpGcm9tIGU4NjcxNzdkMDM4NWZkOTBmNWRhYmEwZjZiNDU5Y2Y0 YTNmOGQzMDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvZSBTdHJpbmdlciA8am9l QG92bi5vcmc+CkRhdGU6IEZyaSwgMjIgSmFuIDIwMTYgMTU6NDk6MTIgLTA4MDAKU3ViamVjdDog W1BBVENIIDEyLzQ3XSBpbmV0OiBmcmFnOiBBbHdheXMgb3JwaGFuIHNrYnMgaW5zaWRlIGlwX2Rl ZnJhZygpCgpbIFVwc3RyZWFtIGNvbW1pdCA4MjgyZjI3NDQ5YmYxNTU0OGNiODJjNzdiNmUwNGVl MGFiODI3YmRjIF0KCkxhdGVyIHBhcnRzIG9mIHRoZSBzdGFjayAoaW5jbHVkaW5nIGZyYWdtZW50 YXRpb24pIGV4cGVjdCB0aGF0IHRoZXJlIGlzCm5ldmVyIGEgc29ja2V0IGF0dGFjaGVkIHRvIGZy YWcgaW4gYSBmcmFnX2xpc3QsIGhvd2V2ZXIgdGhpcyBpbnZhcmlhbnQKd2FzIG5vdCBlbmZvcmNl ZCBvbiBhbGwgZGVmcmFnIHBhdGhzLiBUaGlzIGNvdWxkIGxlYWQgdG8gdGhlCkJVR19PTihza2It PnNrKSBkdXJpbmcgaXBfZG9fZnJhZ21lbnQoKSwgYXMgcGVyIHRoZSBjYWxsIHN0YWNrIGF0IHRo ZQplbmQgb2YgdGhpcyBjb21taXQgbWVzc2FnZS4KCldoaWxlIHRoZSBjYWxsIGNvdWxkIGJlIGFk ZGVkIHRvIG9wZW52c3dpdGNoIHRvIGZpeCB0aGlzIHBhcnRpY3VsYXIKZXJyb3IsIHRoZSBoZWFk IGFuZCB0YWlsIG9mIHRoZSBmcmFncyBsaXN0IGFyZSBhbHJlYWR5IG9ycGhhbmVkCmluZGlyZWN0 bHkgaW5zaWRlIGlwX2RlZnJhZygpLCBzbyBpdCBzZWVtcyBsaWtlIHRoZSByZW1haW5pbmcgZnJh Z21lbnRzCnNob3VsZCBhbGwgYmUgb3JwaGFuZWQgaW4gYWxsIGNpcmN1bXN0YW5jZXMuCgprZXJu ZWwgQlVHIGF0IG5ldC9pcHY0L2lwX291dHB1dC5jOjU4NiEKWy4uLl0KQ2FsbCBUcmFjZToKIDxJ UlE+CiBbPGZmZmZmZmZmYTAyMDUyNzA+XSA/IGRvX291dHB1dC5pc3JhLjI5KzB4MWIwLzB4MWIw IFtvcGVudnN3aXRjaF0KIFs8ZmZmZmZmZmZhMDIxNjdhNz5dIG92c19mcmFnbWVudCsweGNjLzB4 MjE0IFtvcGVudnN3aXRjaF0KIFs8ZmZmZmZmZmY4MTY2NzgzMD5dID8gZHN0X2Rpc2NhcmRfb3V0 KzB4MjAvMHgyMAogWzxmZmZmZmZmZjgxNjY3ODEwPl0gPyBkc3RfaWZkb3duKzB4ODAvMHg4MAog WzxmZmZmZmZmZmEwMjEyMDcyPl0gPyBmaW5kX2J1Y2tldC5pc3JhLjIrMHg2Mi8weDcwIFtvcGVu dnN3aXRjaF0KIFs8ZmZmZmZmZmY4MTBlMGJhNT5dID8gbW9kX3RpbWVyX3BlbmRpbmcrMHg2NS8w eDIxMAogWzxmZmZmZmZmZjgxMGI3MzJiPl0gPyBfX2xvY2tfYWNxdWlyZSsweDNkYi8weDFiOTAK IFs8ZmZmZmZmZmZhMDMyMDVhMj5dID8gbmZfY29ubnRyYWNrX2luKzB4MjUyLzB4NTAwIFtuZl9j b25udHJhY2tdCiBbPGZmZmZmZmZmODEwYjYzYzQ+XSA/IF9fbG9ja19pc19oZWxkKzB4NTQvMHg3 MAogWzxmZmZmZmZmZmEwMjA1MWEzPl0gZG9fb3V0cHV0LmlzcmEuMjkrMHhlMy8weDFiMCBbb3Bl bnZzd2l0Y2hdCiBbPGZmZmZmZmZmYTAyMDY0MTE+XSBkb19leGVjdXRlX2FjdGlvbnMrMHhlMTEv MHgxMWYwIFtvcGVudnN3aXRjaF0KIFs8ZmZmZmZmZmY4MTBiNjNjND5dID8gX19sb2NrX2lzX2hl bGQrMHg1NC8weDcwCiBbPGZmZmZmZmZmYTAyMDY4MjI+XSBvdnNfZXhlY3V0ZV9hY3Rpb25zKzB4 MzIvMHhkMCBbb3BlbnZzd2l0Y2hdCiBbPGZmZmZmZmZmYTAyMGI1MDU+XSBvdnNfZHBfcHJvY2Vz c19wYWNrZXQrMHg4NS8weDE0MCBbb3BlbnZzd2l0Y2hdCiBbPGZmZmZmZmZmODEwYjYzYzQ+XSA/ IF9fbG9ja19pc19oZWxkKzB4NTQvMHg3MAogWzxmZmZmZmZmZmEwMjA2OGEyPl0gb3ZzX2V4ZWN1 dGVfYWN0aW9ucysweGIyLzB4ZDAgW29wZW52c3dpdGNoXQogWzxmZmZmZmZmZmEwMjBiNTA1Pl0g b3ZzX2RwX3Byb2Nlc3NfcGFja2V0KzB4ODUvMHgxNDAgW29wZW52c3dpdGNoXQogWzxmZmZmZmZm ZmEwMjE1MDE5Pl0gPyBvdnNfY3RfZ2V0X2xhYmVscysweDQ5LzB4ODAgW29wZW52c3dpdGNoXQog WzxmZmZmZmZmZmEwMjEzYTFkPl0gb3ZzX3Zwb3J0X3JlY2VpdmUrMHg1ZC8weGEwIFtvcGVudnN3 aXRjaF0KIFs8ZmZmZmZmZmY4MTBiNzMyYj5dID8gX19sb2NrX2FjcXVpcmUrMHgzZGIvMHgxYjkw CiBbPGZmZmZmZmZmODEwYjczMmI+XSA/IF9fbG9ja19hY3F1aXJlKzB4M2RiLzB4MWI5MAogWzxm ZmZmZmZmZjgxMGI3MzJiPl0gPyBfX2xvY2tfYWNxdWlyZSsweDNkYi8weDFiOTAKIFs8ZmZmZmZm ZmZhMDIxNDg5NT5dID8gaW50ZXJuYWxfZGV2X3htaXQrMHg1LzB4MTQwIFtvcGVudnN3aXRjaF0K IFs8ZmZmZmZmZmZhMDIxNDhmYz5dIGludGVybmFsX2Rldl94bWl0KzB4NmMvMHgxNDAgW29wZW52 c3dpdGNoXQogWzxmZmZmZmZmZmEwMjE0ODk1Pl0gPyBpbnRlcm5hbF9kZXZfeG1pdCsweDUvMHgx NDAgW29wZW52c3dpdGNoXQogWzxmZmZmZmZmZjgxNjYwMjk5Pl0gZGV2X2hhcmRfc3RhcnRfeG1p dCsweDJiOS8weDVlMAogWzxmZmZmZmZmZjgxNjVmYzIxPl0gPyBuZXRpZl9za2JfZmVhdHVyZXMr MHhkMS8weDFmMAogWzxmZmZmZmZmZjgxNjYwZjIwPl0gX19kZXZfcXVldWVfeG1pdCsweDgwMC8w eDkzMAogWzxmZmZmZmZmZjgxNjYwNzcwPl0gPyBfX2Rldl9xdWV1ZV94bWl0KzB4NTAvMHg5MzAK IFs8ZmZmZmZmZmY4MTBiNTNmMT5dID8gbWFya19oZWxkX2xvY2tzKzB4NzEvMHg5MAogWzxmZmZm ZmZmZjgxNjY5ODc2Pl0gPyBuZWlnaF9yZXNvbHZlX291dHB1dCsweDEwNi8weDIyMAogWzxmZmZm ZmZmZjgxNjYxMDYwPl0gZGV2X3F1ZXVlX3htaXQrMHgxMC8weDIwCiBbPGZmZmZmZmZmODE2Njk4 ZTg+XSBuZWlnaF9yZXNvbHZlX291dHB1dCsweDE3OC8weDIyMAogWzxmZmZmZmZmZjgxNmE4ZTZm Pl0gPyBpcF9maW5pc2hfb3V0cHV0MisweDFmZi8weDU5MAogWzxmZmZmZmZmZjgxNmE4ZTZmPl0g aXBfZmluaXNoX291dHB1dDIrMHgxZmYvMHg1OTAKIFs8ZmZmZmZmZmY4MTZhOGNlZT5dID8gaXBf ZmluaXNoX291dHB1dDIrMHg3ZS8weDU5MAogWzxmZmZmZmZmZjgxNmE5YTMxPl0gaXBfZG9fZnJh Z21lbnQrMHg4MzEvMHg4YTAKIFs8ZmZmZmZmZmY4MTZhOGM3MD5dID8gaXBfY29weV9tZXRhZGF0 YSsweDFiMC8weDFiMAogWzxmZmZmZmZmZjgxNmE5YWUzPl0gaXBfZnJhZ21lbnQuY29uc3Rwcm9w LjQ5KzB4NDMvMHg4MAogWzxmZmZmZmZmZjgxNmE5YzljPl0gaXBfZmluaXNoX291dHB1dCsweDE3 Yy8weDM0MAogWzxmZmZmZmZmZjgxNjlhNmY0Pl0gPyBuZl9ob29rX3Nsb3crMHhlNC8weDE5MAog WzxmZmZmZmZmZjgxNmFiNGMwPl0gaXBfb3V0cHV0KzB4NzAvMHgxMTAKIFs8ZmZmZmZmZmY4MTZh OWIyMD5dID8gaXBfZnJhZ21lbnQuY29uc3Rwcm9wLjQ5KzB4ODAvMHg4MAogWzxmZmZmZmZmZjgx NmFhOWY5Pl0gaXBfbG9jYWxfb3V0KzB4MzkvMHg3MAogWzxmZmZmZmZmZjgxNmFiZjg5Pl0gaXBf c2VuZF9za2IrMHgxOS8weDQwCiBbPGZmZmZmZmZmODE2YWJmZTM+XSBpcF9wdXNoX3BlbmRpbmdf ZnJhbWVzKzB4MzMvMHg0MAogWzxmZmZmZmZmZjgxNmRmMjFhPl0gaWNtcF9wdXNoX3JlcGx5KzB4 ZWEvMHgxMjAKIFs8ZmZmZmZmZmY4MTZkZjkzZD5dIGljbXBfcmVwbHkuY29uc3Rwcm9wLjIzKzB4 MWVkLzB4MjMwCiBbPGZmZmZmZmZmODE2ZGY5Y2U+XSBpY21wX2VjaG8ucGFydC4yMSsweDRlLzB4 NTAKIFs8ZmZmZmZmZmY4MTBiNjNjND5dID8gX19sb2NrX2lzX2hlbGQrMHg1NC8weDcwCiBbPGZm ZmZmZmZmODEwZDVmOWU+XSA/IHJjdV9yZWFkX2xvY2tfaGVsZCsweDVlLzB4NzAKIFs8ZmZmZmZm ZmY4MTZkZmEwNj5dIGljbXBfZWNobysweDM2LzB4NzAKIFs8ZmZmZmZmZmY4MTZlMGQxMT5dIGlj bXBfcmN2KzB4MjcxLzB4NDUwCiBbPGZmZmZmZmZmODE2YTRjYTc+XSBpcF9sb2NhbF9kZWxpdmVy X2ZpbmlzaCsweDEyNy8weDNhMAogWzxmZmZmZmZmZjgxNmE0YmMxPl0gPyBpcF9sb2NhbF9kZWxp dmVyX2ZpbmlzaCsweDQxLzB4M2EwCiBbPGZmZmZmZmZmODE2YTUxNjA+XSBpcF9sb2NhbF9kZWxp dmVyKzB4NjAvMHhkMAogWzxmZmZmZmZmZjgxNmE0YjgwPl0gPyBpcF9yY3ZfZmluaXNoKzB4NTYw LzB4NTYwCiBbPGZmZmZmZmZmODE2YTQ2ZmQ+XSBpcF9yY3ZfZmluaXNoKzB4ZGQvMHg1NjAKIFs8 ZmZmZmZmZmY4MTZhNTQ1Mz5dIGlwX3JjdisweDI4My8weDNlMAogWzxmZmZmZmZmZjgxMGI2MzAy Pl0gPyBtYXRjaF9oZWxkX2xvY2srMHgxOTIvMHgyMDAKIFs8ZmZmZmZmZmY4MTZhNDYyMD5dID8g aW5ldF9kZWxfb2ZmbG9hZCsweDQwLzB4NDAKIFs8ZmZmZmZmZmY4MTY1ZDA2Mj5dIF9fbmV0aWZf cmVjZWl2ZV9za2JfY29yZSsweDM5Mi8weGFlMAogWzxmZmZmZmZmZjgxNjVlNjhlPl0gPyBwcm9j ZXNzX2JhY2tsb2crMHg4ZS8weDIzMAogWzxmZmZmZmZmZjgxMGI1M2YxPl0gPyBtYXJrX2hlbGRf bG9ja3MrMHg3MS8weDkwCiBbPGZmZmZmZmZmODE2NWQ3Yzg+XSBfX25ldGlmX3JlY2VpdmVfc2ti KzB4MTgvMHg2MAogWzxmZmZmZmZmZjgxNjVlNjc4Pl0gcHJvY2Vzc19iYWNrbG9nKzB4NzgvMHgy MzAKIFs8ZmZmZmZmZmY4MTY1ZTZkZD5dID8gcHJvY2Vzc19iYWNrbG9nKzB4ZGQvMHgyMzAKIFs8 ZmZmZmZmZmY4MTY1ZTM1NT5dIG5ldF9yeF9hY3Rpb24rMHgxNTUvMHg0MDAKIFs8ZmZmZmZmZmY4 MTA2YjQ4Yz5dIF9fZG9fc29mdGlycSsweGNjLzB4NDIwCiBbPGZmZmZmZmZmODE2YThlODc+XSA/ IGlwX2ZpbmlzaF9vdXRwdXQyKzB4MjE3LzB4NTkwCiBbPGZmZmZmZmZmODE3OGU3OGM+XSBkb19z b2Z0aXJxX293bl9zdGFjaysweDFjLzB4MzAKIDxFT0k+CiBbPGZmZmZmZmZmODEwNmI4OGU+XSBk b19zb2Z0aXJxKzB4NGUvMHg2MAogWzxmZmZmZmZmZjgxMDZiOTQ4Pl0gX19sb2NhbF9iaF9lbmFi bGVfaXArMHhhOC8weGIwCiBbPGZmZmZmZmZmODE2YThlYjA+XSBpcF9maW5pc2hfb3V0cHV0Misw eDI0MC8weDU5MAogWzxmZmZmZmZmZjgxNmE5YTMxPl0gPyBpcF9kb19mcmFnbWVudCsweDgzMS8w eDhhMAogWzxmZmZmZmZmZjgxNmE5YTMxPl0gaXBfZG9fZnJhZ21lbnQrMHg4MzEvMHg4YTAKIFs8 ZmZmZmZmZmY4MTZhOGM3MD5dID8gaXBfY29weV9tZXRhZGF0YSsweDFiMC8weDFiMAogWzxmZmZm ZmZmZjgxNmE5YWUzPl0gaXBfZnJhZ21lbnQuY29uc3Rwcm9wLjQ5KzB4NDMvMHg4MAogWzxmZmZm ZmZmZjgxNmE5YzljPl0gaXBfZmluaXNoX291dHB1dCsweDE3Yy8weDM0MAogWzxmZmZmZmZmZjgx NjlhNmY0Pl0gPyBuZl9ob29rX3Nsb3crMHhlNC8weDE5MAogWzxmZmZmZmZmZjgxNmFiNGMwPl0g aXBfb3V0cHV0KzB4NzAvMHgxMTAKIFs8ZmZmZmZmZmY4MTZhOWIyMD5dID8gaXBfZnJhZ21lbnQu Y29uc3Rwcm9wLjQ5KzB4ODAvMHg4MAogWzxmZmZmZmZmZjgxNmFhOWY5Pl0gaXBfbG9jYWxfb3V0 KzB4MzkvMHg3MAogWzxmZmZmZmZmZjgxNmFiZjg5Pl0gaXBfc2VuZF9za2IrMHgxOS8weDQwCiBb PGZmZmZmZmZmODE2YWJmZTM+XSBpcF9wdXNoX3BlbmRpbmdfZnJhbWVzKzB4MzMvMHg0MAogWzxm ZmZmZmZmZjgxNmQ1NWQzPl0gcmF3X3NlbmRtc2crMHg3ZDMvMHhjMzAKIFs8ZmZmZmZmZmY4MTBi NzMyYj5dID8gX19sb2NrX2FjcXVpcmUrMHgzZGIvMHgxYjkwCiBbPGZmZmZmZmZmODE2ZTc1NTc+ XSA/IGluZXRfc2VuZG1zZysweGM3LzB4MWQwCiBbPGZmZmZmZmZmODEwYjYzYzQ+XSA/IF9fbG9j a19pc19oZWxkKzB4NTQvMHg3MAogWzxmZmZmZmZmZjgxNmU3NTlhPl0gaW5ldF9zZW5kbXNnKzB4 MTBhLzB4MWQwCiBbPGZmZmZmZmZmODE2ZTc0OTU+XSA/IGluZXRfc2VuZG1zZysweDUvMHgxZDAK IFs8ZmZmZmZmZmY4MTYzZTM5OD5dIHNvY2tfc2VuZG1zZysweDM4LzB4NTAKIFs8ZmZmZmZmZmY4 MTYzZWM1Zj5dIF9fX3N5c19zZW5kbXNnKzB4MjVmLzB4MjcwCiBbPGZmZmZmZmZmODExYWFkYWQ+ XSA/IGhhbmRsZV9tbV9mYXVsdCsweDhkZC8weDEzMjAKIFs8ZmZmZmZmZmY4MTc4YzE0Nz5dID8g X3Jhd19zcGluX3VubG9jaysweDI3LzB4NDAKIFs8ZmZmZmZmZmY4MTA1MjliMj5dID8gX19kb19w YWdlX2ZhdWx0KzB4MWUyLzB4NDYwCiBbPGZmZmZmZmZmODEyMDQ4ODY+XSA/IF9fZmdldF9saWdo dCsweDY2LzB4OTAKIFs8ZmZmZmZmZmY4MTYzZjhlMj5dIF9fc3lzX3NlbmRtc2crMHg0Mi8weDgw CiBbPGZmZmZmZmZmODE2M2Y5MzI+XSBTeVNfc2VuZG1zZysweDEyLzB4MjAKIFs8ZmZmZmZmZmY4 MTc4Y2IxNz5dIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxMi8weDZmCkNvZGU6IDAwIDAw IDQ0IDg5IGUwIGU5IDdjIGZiIGZmIGZmIDRjIDg5IGZmIGU4IGU3IGU3IGZmIGZmIDQxIDhiIDlk IDgwIDAwIDAwIDAwIDJiIDVkIGQ0IDg5IGQ4IGMxIGY4IDAzIDBmIGI3IGMwIGU5IDMzIGZmIGZm IGYKIDY2IDY2IDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDY2IDY2IDY2IDY2IDkwIDU1 IDQ4ClJJUCAgWzxmZmZmZmZmZjgxNmE5YTkyPl0gaXBfZG9fZnJhZ21lbnQrMHg4OTIvMHg4YTAK IFJTUCA8ZmZmZjg4MDA2ZDYwMzE3MD4KCkZpeGVzOiA3ZjhhNDM2ZWFhMmMgKCJvcGVudnN3aXRj aDogQWRkIGNvbm50cmFjayBhY3Rpb24iKQpTaWduZWQtb2ZmLWJ5OiBKb2UgU3RyaW5nZXIgPGpv ZUBvdm4ub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2lwdjQvaXBfZnJhZ21lbnQuYyAgICAgICAgICAgICAgfCAxICsKIG5l dC9pcHY0L25ldGZpbHRlci9uZl9kZWZyYWdfaXB2NC5jIHwgMiAtLQogMiBmaWxlcyBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9p cF9mcmFnbWVudC5jIGIvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYwppbmRleCAxZmU1NWFlLi5iOGEw NjA3ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYworKysgYi9uZXQvaXB2NC9p cF9mcmFnbWVudC5jCkBAIC02NjEsNiArNjYxLDcgQEAgaW50IGlwX2RlZnJhZyhzdHJ1Y3QgbmV0 ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHUzMiB1c2VyKQogCXN0cnVjdCBpcHEgKnFwOwog CiAJSVBfSU5DX1NUQVRTX0JIKG5ldCwgSVBTVEFUU19NSUJfUkVBU01SRVFEUyk7CisJc2tiX29y cGhhbihza2IpOwogCiAJLyogTG9va3VwIChvciBjcmVhdGUpIHF1ZXVlIGhlYWRlciAqLwogCXFw ID0gaXBfZmluZChuZXQsIGlwX2hkcihza2IpLCB1c2VyLCB2aWYpOwpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjQvbmV0ZmlsdGVyL25mX2RlZnJhZ19pcHY0LmMgYi9uZXQvaXB2NC9uZXRmaWx0ZXIvbmZf ZGVmcmFnX2lwdjQuYwppbmRleCA2ZmI4NjlmNi4uYTA0ZGVlNSAxMDA2NDQKLS0tIGEvbmV0L2lw djQvbmV0ZmlsdGVyL25mX2RlZnJhZ19pcHY0LmMKKysrIGIvbmV0L2lwdjQvbmV0ZmlsdGVyL25m X2RlZnJhZ19pcHY0LmMKQEAgLTI3LDggKzI3LDYgQEAgc3RhdGljIGludCBuZl9jdF9pcHY0X2dh dGhlcl9mcmFncyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsCiB7CiAJaW50 IGVycjsKIAotCXNrYl9vcnBoYW4oc2tiKTsKLQogCWxvY2FsX2JoX2Rpc2FibGUoKTsKIAllcnIg PSBpcF9kZWZyYWcobmV0LCBza2IsIHVzZXIpOwogCWxvY2FsX2JoX2VuYWJsZSgpOwotLSAKMi4x LjAKCgpGcm9tIGM0MTZjZWJmNDllNDgwNzhjNWY2NTg1NWI3MDMzNzNkZjQ4NmUyYzcgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNv bT4KRGF0ZTogV2VkLCAyNyBKYW4gMjAxNiAxNToxNjo0MyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTMvNDddIHN3aXRjaGRldjogUmVxdWlyZSBSVE5MIG11dGV4IHRvIGJlIGhlbGQgd2hlbiBzZW5k aW5nCiBGREIgbm90aWZpY2F0aW9ucwoKWyBVcHN0cmVhbSBjb21taXQgNGYyYzZhZTVjNjRjMzUz ZmIxYjA0MjVlNDc0N2U1NjAzZmVhZGJhMSBdCgpXaGVuIHN3aXRjaGRldiBkcml2ZXJzIHByb2Nl c3MgRkRCIG5vdGlmaWNhdGlvbnMgZnJvbSB0aGUgdW5kZXJseWluZwpkZXZpY2UgdGhleSByZXNv bHZlIHRoZSBuZXRkZXYgdG8gd2hpY2ggdGhlIGVudHJ5IHBvaW50cyB0byBhbmQgbm90aWZ5CnRo ZSBicmlkZ2UgdXNpbmcgdGhlIHN3aXRjaGRldiBub3RpZmllci4KCkhvd2V2ZXIsIHNpbmNlIHRo ZSBSVE5MIG11dGV4IGlzIG5vdCBoZWxkIHRoZXJlIGlzIG5vdGhpbmcgcHJldmVudGluZwp0aGUg bmV0ZGV2IGZyb20gZGlzYXBwZWFyaW5nIGluIHRoZSBtaWRkbGUsIHdoaWNoIHdpbGwgY2F1c2UK YnJfc3dpdGNoZGV2X2V2ZW50KCkgdG8gZGVyZWZlcmVuY2UgYSBub24tZXhpc3RpbmcgbmV0ZGV2 LgoKTWFrZSBzd2l0Y2hkZXYgZHJpdmVycyBob2xkIHRoZSBsb2NrIGF0IHRoZSBiZWdpbm5pbmcg b2YgdGhlCm5vdGlmaWNhdGlvbiBwcm9jZXNzaW5nIHNlc3Npb24gYW5kIHJlbGVhc2UgaXQgb25j ZSBpdCBlbmRzLCBhZnRlcgpub3RpZnlpbmcgdGhlIGJyaWRnZS4KCkFsc28sIHJlbW92ZSBzd2l0 Y2hkZXZfbXV0ZXggYW5kIGZkYl9sb2NrLCBhcyB0aGV5IGFyZSBubyBsb25nZXIgbmVlZGVkCndo ZW4gUlROTCBtdXRleCBpcyBoZWxkLgoKRml4ZXM6IDAzYmYwYzI4MTIzNCAoInN3aXRjaGRldjog aW50cm9kdWNlIHN3aXRjaGRldiBub3RpZmllciIpClNpZ25lZC1vZmYtYnk6IElkbyBTY2hpbW1l bCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogSmlyaSBQaXJrbyA8amlyaUBt ZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1 bV9zd2l0Y2hkZXYuYyB8ICAzICsrKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tl ci5jICAgICAgICAgICAgICAgICAgICAgfCAgMiArKwogbmV0L2JyaWRnZS9ici5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArLS0KIG5ldC9zd2l0Y2hkZXYv c3dpdGNoZGV2LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysrKysrKyst LS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3Ry dW1fc3dpdGNoZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVj dHJ1bV9zd2l0Y2hkZXYuYwppbmRleCA2MTdmYjIyLi43ZGJlYWZhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9zd2l0Y2hkZXYuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9zd2l0Y2hkZXYu YwpAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2lmX2JyaWRnZS5oPgogI2luY2x1 ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KKyNpbmNs dWRlIDxsaW51eC9ydG5ldGxpbmsuaD4KICNpbmNsdWRlIDxuZXQvc3dpdGNoZGV2Lmg+CiAKICNp bmNsdWRlICJzcGVjdHJ1bS5oIgpAQCAtODEyLDYgKzgxMyw3IEBAIHN0YXRpYyB2b2lkIG1seHN3 X3NwX2ZkYl9ub3RpZnlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAKIAltbHhzd19z cCA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbWx4c3dfc3AsIGZkYl9ub3RpZnkuZHcud29y ayk7CiAKKwlydG5sX2xvY2soKTsKIAlkbyB7CiAJCW1seHN3X3JlZ19zZm5fcGFjayhzZm5fcGwp OwogCQllcnIgPSBtbHhzd19yZWdfcXVlcnkobWx4c3dfc3AtPmNvcmUsIE1MWFNXX1JFRyhzZm4p LCBzZm5fcGwpOwpAQCAtODI0LDYgKzgyNiw3IEBAIHN0YXRpYyB2b2lkIG1seHN3X3NwX2ZkYl9u b3RpZnlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCQltbHhzd19zcF9mZGJfbm90 aWZ5X3JlY19wcm9jZXNzKG1seHN3X3NwLCBzZm5fcGwsIGkpOwogCiAJfSB3aGlsZSAobnVtX3Jl Yyk7CisJcnRubF91bmxvY2soKTsKIAogCWtmcmVlKHNmbl9wbCk7CiAJbWx4c3dfc3BfZmRiX25v dGlmeV93b3JrX3NjaGVkdWxlKG1seHN3X3NwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3JvY2tlci9yb2NrZXIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JvY2tlci9yb2Nr ZXIuYwppbmRleCBlOWYyMzQ5Li41MmVjM2Q2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9yb2NrZXIvcm9ja2VyLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3Jv Y2tlci5jCkBAIC0zNTMxLDEyICszNTMxLDE0IEBAIHN0YXRpYyB2b2lkIHJvY2tlcl9wb3J0X2Zk Yl9sZWFybl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlpbmZvLmFkZHIgPSBsdy0+ YWRkcjsKIAlpbmZvLnZpZCA9IGx3LT52aWQ7CiAKKwlydG5sX2xvY2soKTsKIAlpZiAobGVhcm5l ZCAmJiByZW1vdmluZykKIAkJY2FsbF9zd2l0Y2hkZXZfbm90aWZpZXJzKFNXSVRDSERFVl9GREJf REVMLAogCQkJCQkgbHctPnJvY2tlcl9wb3J0LT5kZXYsICZpbmZvLmluZm8pOwogCWVsc2UgaWYg KGxlYXJuZWQgJiYgIXJlbW92aW5nKQogCQljYWxsX3N3aXRjaGRldl9ub3RpZmllcnMoU1dJVENI REVWX0ZEQl9BREQsCiAJCQkJCSBsdy0+cm9ja2VyX3BvcnQtPmRldiwgJmluZm8uaW5mbyk7CisJ cnRubF91bmxvY2soKTsKIAogCXJvY2tlcl9wb3J0X2tmcmVlKGx3LT50cmFucywgd29yayk7CiB9 CmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyLmMgYi9uZXQvYnJpZGdlL2JyLmMKaW5kZXggYTFh YmU0OS4uM2FkZGMwNSAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9ici5jCisrKyBiL25ldC9icmlk Z2UvYnIuYwpAQCAtMTIxLDYgKzEyMSw3IEBAIHN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sg YnJfZGV2aWNlX25vdGlmaWVyID0gewogCS5ub3RpZmllcl9jYWxsID0gYnJfZGV2aWNlX2V2ZW50 CiB9OwogCisvKiBjYWxsZWQgd2l0aCBSVE5MICovCiBzdGF0aWMgaW50IGJyX3N3aXRjaGRldl9l dmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnVudXNlZCwKIAkJCSAgICAgIHVuc2lnbmVkIGxv bmcgZXZlbnQsIHZvaWQgKnB0cikKIHsKQEAgLTEzMCw3ICsxMzEsNiBAQCBzdGF0aWMgaW50IGJy X3N3aXRjaGRldl9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnVudXNlZCwKIAlzdHJ1Y3Qg c3dpdGNoZGV2X25vdGlmaWVyX2ZkYl9pbmZvICpmZGJfaW5mbzsKIAlpbnQgZXJyID0gTk9USUZZ X0RPTkU7CiAKLQlydG5sX2xvY2soKTsKIAlwID0gYnJfcG9ydF9nZXRfcnRubChkZXYpOwogCWlm ICghcCkKIAkJZ290byBvdXQ7CkBAIC0xNTUsNyArMTU1LDYgQEAgc3RhdGljIGludCBicl9zd2l0 Y2hkZXZfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWQsCiAJfQogCiBvdXQ6Ci0J cnRubF91bmxvY2soKTsKIAlyZXR1cm4gZXJyOwogfQogCmRpZmYgLS1naXQgYS9uZXQvc3dpdGNo ZGV2L3N3aXRjaGRldi5jIGIvbmV0L3N3aXRjaGRldi9zd2l0Y2hkZXYuYwppbmRleCBmMzRlNTM1 Li5kNWQ3MTMyIDEwMDY0NAotLS0gYS9uZXQvc3dpdGNoZGV2L3N3aXRjaGRldi5jCisrKyBiL25l dC9zd2l0Y2hkZXYvc3dpdGNoZGV2LmMKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlIDxsaW51 eC9saXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CiAjaW5jbHVkZSA8bGludXgv aWZfdmxhbi5oPgorI2luY2x1ZGUgPGxpbnV4L3J0bmV0bGluay5oPgogI2luY2x1ZGUgPG5ldC9p cF9maWIuaD4KICNpbmNsdWRlIDxuZXQvc3dpdGNoZGV2Lmg+CiAKQEAgLTU2NSw3ICs1NjYsNiBA QCBpbnQgc3dpdGNoZGV2X3BvcnRfb2JqX2R1bXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3Ry dWN0IHN3aXRjaGRldl9vYmogKm9iaiwKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHN3aXRjaGRldl9w b3J0X29ial9kdW1wKTsKIAotc3RhdGljIERFRklORV9NVVRFWChzd2l0Y2hkZXZfbXV0ZXgpOwog c3RhdGljIFJBV19OT1RJRklFUl9IRUFEKHN3aXRjaGRldl9ub3RpZl9jaGFpbik7CiAKIC8qKgpA QCAtNTgwLDkgKzU4MCw5IEBAIGludCByZWdpc3Rlcl9zd2l0Y2hkZXZfbm90aWZpZXIoc3RydWN0 IG5vdGlmaWVyX2Jsb2NrICpuYikKIHsKIAlpbnQgZXJyOwogCi0JbXV0ZXhfbG9jaygmc3dpdGNo ZGV2X211dGV4KTsKKwlydG5sX2xvY2soKTsKIAllcnIgPSByYXdfbm90aWZpZXJfY2hhaW5fcmVn aXN0ZXIoJnN3aXRjaGRldl9ub3RpZl9jaGFpbiwgbmIpOwotCW11dGV4X3VubG9jaygmc3dpdGNo ZGV2X211dGV4KTsKKwlydG5sX3VubG9jaygpOwogCXJldHVybiBlcnI7CiB9CiBFWFBPUlRfU1lN Qk9MX0dQTChyZWdpc3Rlcl9zd2l0Y2hkZXZfbm90aWZpZXIpOwpAQCAtNTk4LDkgKzU5OCw5IEBA IGludCB1bnJlZ2lzdGVyX3N3aXRjaGRldl9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sg Km5iKQogewogCWludCBlcnI7CiAKLQltdXRleF9sb2NrKCZzd2l0Y2hkZXZfbXV0ZXgpOworCXJ0 bmxfbG9jaygpOwogCWVyciA9IHJhd19ub3RpZmllcl9jaGFpbl91bnJlZ2lzdGVyKCZzd2l0Y2hk ZXZfbm90aWZfY2hhaW4sIG5iKTsKLQltdXRleF91bmxvY2soJnN3aXRjaGRldl9tdXRleCk7CisJ cnRubF91bmxvY2soKTsKIAlyZXR1cm4gZXJyOwogfQogRVhQT1JUX1NZTUJPTF9HUEwodW5yZWdp c3Rlcl9zd2l0Y2hkZXZfbm90aWZpZXIpOwpAQCAtNjE0LDE2ICs2MTQsMTcgQEAgRVhQT1JUX1NZ TUJPTF9HUEwodW5yZWdpc3Rlcl9zd2l0Y2hkZXZfbm90aWZpZXIpOwogICoJQ2FsbCBhbGwgbmV0 d29yayBub3RpZmllciBibG9ja3MuIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBieSBkcml2ZXIKICAq CXdoZW4gaXQgbmVlZHMgdG8gcHJvcGFnYXRlIGhhcmR3YXJlIGV2ZW50LgogICoJUmV0dXJuIHZh bHVlcyBhcmUgc2FtZSBhcyBmb3IgYXRvbWljX25vdGlmaWVyX2NhbGxfY2hhaW4oKS4KKyAqCXJ0 bmxfbG9jayBtdXN0IGJlIGhlbGQuCiAgKi8KIGludCBjYWxsX3N3aXRjaGRldl9ub3RpZmllcnMo dW5zaWduZWQgbG9uZyB2YWwsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkgICAgIHN0cnVj dCBzd2l0Y2hkZXZfbm90aWZpZXJfaW5mbyAqaW5mbykKIHsKIAlpbnQgZXJyOwogCisJQVNTRVJU X1JUTkwoKTsKKwogCWluZm8tPmRldiA9IGRldjsKLQltdXRleF9sb2NrKCZzd2l0Y2hkZXZfbXV0 ZXgpOwogCWVyciA9IHJhd19ub3RpZmllcl9jYWxsX2NoYWluKCZzd2l0Y2hkZXZfbm90aWZfY2hh aW4sIHZhbCwgaW5mbyk7Ci0JbXV0ZXhfdW5sb2NrKCZzd2l0Y2hkZXZfbXV0ZXgpOwogCXJldHVy biBlcnI7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChjYWxsX3N3aXRjaGRldl9ub3RpZmllcnMpOwot LSAKMi4xLjAKCgpGcm9tIDlmMWIxZTQ3YzhhYWNiMzcwMDI4YjZmNGVmN2EyYmM5NWUwODFiMzEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KRGF0ZTogV2VkLCAyNyBKYW4gMjAxNiAxMDo1Mjo0MyAtMDgwMApTdWJqZWN0OiBb UEFUQ0ggMTQvNDddIHRjcDogYmV3YXJlIG9mIGFsaWdubWVudHMgaW4gdGNwX2dldF9pbmZvKCkK ClsgVXBzdHJlYW0gY29tbWl0IGZmNWQ3NDk3NzIwMTg2MDJjNDc1MDliZGMwMDkzZmY3MmFjZDgy ZWMgXQoKV2l0aCBzb21lIGNvbWJpbmF0aW9ucyBvZiB1c2VyIHByb3ZpZGVkIGZsYWdzIGluIG5l dGxpbmsgY29tbWFuZCwKaXQgaXMgcG9zc2libGUgdG8gY2FsbCB0Y3BfZ2V0X2luZm8oKSB3aXRo IGEgYnVmZmVyIHRoYXQgaXMgbm90IDgtYnl0ZXMKYWxpZ25lZC4KCkl0IGRvZXMgbWF0dGVyIG9u IHNvbWUgYXJjaGVzLCBzbyB3ZSBuZWVkIHRvIHVzZSBwdXRfdW5hbGlnbmVkKCkgdG8Kc3RvcmUg dGhlIHU2NCBmaWVsZHMuCgpDdXJyZW50IGlwcm91dGUyIHBhY2thZ2UgZG9lcyBub3QgdHJpZ2dl ciB0aGlzIHBhcnRpY3VsYXIgaXNzdWUuCgpGaXhlczogMGRmNDhjMjZkODQxICgidGNwOiBhZGQg dGNwaV9ieXRlc19hY2tlZCB0byB0Y3BfaW5mbyIpCkZpeGVzOiA5NzdjYjBlY2Y4MmUgKCJ0Y3A6 IGFkZCBwYWNpbmdfcmF0ZSBpbmZvcm1hdGlvbiBpbnRvIHRjcF9pbmZvIikKU2lnbmVkLW9mZi1i eTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwLmMgfCAx MiArKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2NC90Y3AuYwppbmRl eCBjODJjY2ExLi45YzEyNDFlIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3AuYworKysgYi9uZXQv aXB2NC90Y3AuYwpAQCAtMjc5LDYgKzI3OSw3IEBACiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5o PgogI2luY2x1ZGUgPGFzbS9pb2N0bHMuaD4KKyNpbmNsdWRlIDxhc20vdW5hbGlnbmVkLmg+CiAj aW5jbHVkZSA8bmV0L2J1c3lfcG9sbC5oPgogCiBpbnQgc3lzY3RsX3RjcF9maW5fdGltZW91dCBf X3JlYWRfbW9zdGx5ID0gVENQX0ZJTl9USU1FT1VUOwpAQCAtMjYzNyw2ICsyNjM4LDcgQEAgdm9p ZCB0Y3BfZ2V0X2luZm8oc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGNwX2luZm8gKmluZm8pCiAJ Y29uc3Qgc3RydWN0IGluZXRfY29ubmVjdGlvbl9zb2NrICppY3NrID0gaW5ldF9jc2soc2spOwog CXUzMiBub3cgPSB0Y3BfdGltZV9zdGFtcDsKIAl1bnNpZ25lZCBpbnQgc3RhcnQ7CisJdTY0IHJh dGU2NDsKIAl1MzIgcmF0ZTsKIAogCW1lbXNldChpbmZvLCAwLCBzaXplb2YoKmluZm8pKTsKQEAg LTI3MDIsMTUgKzI3MDQsMTcgQEAgdm9pZCB0Y3BfZ2V0X2luZm8oc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3QgdGNwX2luZm8gKmluZm8pCiAJaW5mby0+dGNwaV90b3RhbF9yZXRyYW5zID0gdHAtPnRv dGFsX3JldHJhbnM7CiAKIAlyYXRlID0gUkVBRF9PTkNFKHNrLT5za19wYWNpbmdfcmF0ZSk7Ci0J aW5mby0+dGNwaV9wYWNpbmdfcmF0ZSA9IHJhdGUgIT0gfjBVID8gcmF0ZSA6IH4wVUxMOworCXJh dGU2NCA9IHJhdGUgIT0gfjBVID8gcmF0ZSA6IH4wVUxMOworCXB1dF91bmFsaWduZWQocmF0ZTY0 LCAmaW5mby0+dGNwaV9wYWNpbmdfcmF0ZSk7CiAKIAlyYXRlID0gUkVBRF9PTkNFKHNrLT5za19t YXhfcGFjaW5nX3JhdGUpOwotCWluZm8tPnRjcGlfbWF4X3BhY2luZ19yYXRlID0gcmF0ZSAhPSB+ MFUgPyByYXRlIDogfjBVTEw7CisJcmF0ZTY0ID0gcmF0ZSAhPSB+MFUgPyByYXRlIDogfjBVTEw7 CisJcHV0X3VuYWxpZ25lZChyYXRlNjQsICZpbmZvLT50Y3BpX21heF9wYWNpbmdfcmF0ZSk7CiAK IAlkbyB7CiAJCXN0YXJ0ID0gdTY0X3N0YXRzX2ZldGNoX2JlZ2luX2lycSgmdHAtPnN5bmNwKTsK LQkJaW5mby0+dGNwaV9ieXRlc19hY2tlZCA9IHRwLT5ieXRlc19hY2tlZDsKLQkJaW5mby0+dGNw aV9ieXRlc19yZWNlaXZlZCA9IHRwLT5ieXRlc19yZWNlaXZlZDsKKwkJcHV0X3VuYWxpZ25lZCh0 cC0+Ynl0ZXNfYWNrZWQsICZpbmZvLT50Y3BpX2J5dGVzX2Fja2VkKTsKKwkJcHV0X3VuYWxpZ25l ZCh0cC0+Ynl0ZXNfcmVjZWl2ZWQsICZpbmZvLT50Y3BpX2J5dGVzX3JlY2VpdmVkKTsKIAl9IHdo aWxlICh1NjRfc3RhdHNfZmV0Y2hfcmV0cnlfaXJxKCZ0cC0+c3luY3AsIHN0YXJ0KSk7CiAJaW5m by0+dGNwaV9zZWdzX291dCA9IHRwLT5zZWdzX291dDsKIAlpbmZvLT50Y3BpX3NlZ3NfaW4gPSB0 cC0+c2Vnc19pbjsKLS0gCjIuMS4wCgoKRnJvbSBiMzFhZjA2MGFmZTA0ZGIwMWEzYzM3NDI2NDgw MTM1MTU4OWI3NWU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8 cGFiZW5pQHJlZGhhdC5jb20+CkRhdGU6IEZyaSwgMjkgSmFuIDIwMTYgMTI6MzA6MTkgKzAxMDAK U3ViamVjdDogW1BBVENIIDE1LzQ3XSBpcHY2OiBlbmZvcmNlIGZsb3dpNl9vaWYgdXNhZ2UgaW4g aXA2X2RzdF9sb29rdXBfdGFpbCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA2ZjIxYzk2YTc4YjgzNTI1 OTU0NmQ4ZjNmYjRlZGZmMGY2NTFkNDc4IF0KClRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9m IGlwNl9kc3RfbG9va3VwX3RhaWwgYmFzaWNhbGx5Cmlnbm9yZSB0aGUgZWdyZXNzIGlmaW5kZXgg bWF0Y2g6IGlmIHRoZSBzYWRkciBpcyBzZXQsCmlwNl9yb3V0ZV9vdXRwdXQoKSBwdXJwb3NlZnVs bHkgaWdub3JlcyBmbG93aTZfb2lmLCBkdWUKdG8gdGhlIGNvbW1pdCBkNDZhOWQ2NzhlNGMgKCJu ZXQ6IGlwdjY6IERvbnQgYWRkIFJUNl9MT09LVVBfRl9JRkFDRQpmbGFnIGlmIHNhZGRyIHNldCIp LCBpZiB0aGUgc2FkZHIgaXMgJ2FueScgdGhlIGZpcnN0IHJvdXRlIGxvb2t1cAppbiBpcDZfZHN0 X2xvb2t1cF90YWlsIGZhaWxzLCBidXQgdXBvbiBmYWlsdXJlIGEgc2Vjb25kIGxvb2t1cCB3aWxs CmJlIHBlcmZvcm1lZCB3aXRoIHNhZGRyIHNldCwgdGh1cyBpZ25vcmluZyB0aGUgaWZpbmRleCBj b25zdHJhaW50LgoKVGhpcyBjb21taXQgYWRkcyBhbiBvdXRwdXQgcm91dGUgbG9va3VwIGZ1bmN0 aW9uIHZhcmlhbnQsIHdoaWNoCmFsbG93cyB0aGUgY2FsbGVyIHRvIHNwZWNpZnkgbG9va3VwIGZs YWdzLCBhbmQgbW9kaWZ5CmlwNl9kc3RfbG9va3VwX3RhaWwoKSB0byBlbmZvcmNlIHRoZSBpZmlu ZGV4IG1hdGNoIG9uIHRoZSBzZWNvbmQKbG9va3VwIHZpYSBzYWlkIGhlbHBlci4KCmlwNl9yb3V0 ZV9vdXRwdXQoKSBiZWNhbWVzIG5vdyBhIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb24gYnVpbGQgb24K dG9wIG9mIGlwNl9yb3V0ZV9vdXRwdXRfZmxhZ3MoKTsgYXMgYSBzaWRlIGVmZmVjdCwgb3V0LW9m LXRyZWUKbW9kdWxlcyBuZWVkIG5vdyBhIEdQTCBsaWNlbnNlIHRvIGFjY2VzcyB0aGUgb3V0cHV0 IHJvdXRlIGxvb2t1cApmdW5jdGlvbmFsaXR5LgoKU2lnbmVkLW9mZi1ieTogUGFvbG8gQWJlbmkg PHBhYmVuaUByZWRoYXQuY29tPgpBY2tlZC1ieTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5l c0BzdHJlc3NpbmR1a3Rpb24ub3JnPgpBY2tlZC1ieTogRGF2aWQgQWhlcm4gPGRzYUBjdW11bHVz bmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvaXA2X3JvdXRlLmggfCAxMiArKysrKysrKysrLS0K IG5ldC9pcHY2L2lwNl9vdXRwdXQuYyAgIHwgIDYgKysrKystCiBuZXQvaXB2Ni9yb3V0ZS5jICAg ICAgICB8ICA3ICsrKy0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgNyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcDZfcm91dGUuaCBiL2luY2x1 ZGUvbmV0L2lwNl9yb3V0ZS5oCmluZGV4IDg3N2Y2ODIuLjI5NWQyOTEgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbmV0L2lwNl9yb3V0ZS5oCisrKyBiL2luY2x1ZGUvbmV0L2lwNl9yb3V0ZS5oCkBAIC02 NCw4ICs2NCwxNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcnQ2X25lZWRfc3RyaWN0KGNvbnN0IHN0 cnVjdCBpbjZfYWRkciAqZGFkZHIpCiAKIHZvaWQgaXA2X3JvdXRlX2lucHV0KHN0cnVjdCBza19i dWZmICpza2IpOwogCi1zdHJ1Y3QgZHN0X2VudHJ5ICppcDZfcm91dGVfb3V0cHV0KHN0cnVjdCBu ZXQgKm5ldCwgY29uc3Qgc3RydWN0IHNvY2sgKnNrLAotCQkJCSAgIHN0cnVjdCBmbG93aTYgKmZs Nik7CitzdHJ1Y3QgZHN0X2VudHJ5ICppcDZfcm91dGVfb3V0cHV0X2ZsYWdzKHN0cnVjdCBuZXQg Km5ldCwgY29uc3Qgc3RydWN0IHNvY2sgKnNrLAorCQkJCQkgc3RydWN0IGZsb3dpNiAqZmw2LCBp bnQgZmxhZ3MpOworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkc3RfZW50cnkgKmlwNl9yb3V0ZV9v dXRwdXQoc3RydWN0IG5ldCAqbmV0LAorCQkJCQkJIGNvbnN0IHN0cnVjdCBzb2NrICpzaywKKwkJ CQkJCSBzdHJ1Y3QgZmxvd2k2ICpmbDYpCit7CisJcmV0dXJuIGlwNl9yb3V0ZV9vdXRwdXRfZmxh Z3MobmV0LCBzaywgZmw2LCAwKTsKK30KKwogc3RydWN0IGRzdF9lbnRyeSAqaXA2X3JvdXRlX2xv b2t1cChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBmbG93aTYgKmZsNiwKIAkJCQkgICBpbnQgZmxh Z3MpOwogCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMgYi9uZXQvaXB2Ni9pcDZf b3V0cHV0LmMKaW5kZXggNjQ3Mzg4OS4uMzExNDRjNCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2 X291dHB1dC5jCisrKyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYwpAQCAtOTA5LDYgKzkwOSw3IEBA IHN0YXRpYyBpbnQgaXA2X2RzdF9sb29rdXBfdGFpbChzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHN0 cnVjdCBzb2NrICpzaywKIAlzdHJ1Y3QgcnQ2X2luZm8gKnJ0OwogI2VuZGlmCiAJaW50IGVycjsK KwlpbnQgZmxhZ3MgPSAwOwogCiAJLyogVGhlIGNvcnJlY3Qgd2F5IHRvIGhhbmRsZSB0aGlzIHdv dWxkIGJlIHRvIGRvCiAJICogaXA2X3JvdXRlX2dldF9zYWRkciwgYW5kIHRoZW4gaXA2X3JvdXRl X291dHB1dDsgaG93ZXZlciwKQEAgLTk0MCwxMCArOTQxLDEzIEBAIHN0YXRpYyBpbnQgaXA2X2Rz dF9sb29rdXBfdGFpbChzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAkJ CWRzdF9yZWxlYXNlKCpkc3QpOwogCQkJKmRzdCA9IE5VTEw7CiAJCX0KKworCQlpZiAoZmw2LT5m bG93aTZfb2lmKQorCQkJZmxhZ3MgfD0gUlQ2X0xPT0tVUF9GX0lGQUNFOwogCX0KIAogCWlmICgh KmRzdCkKLQkJKmRzdCA9IGlwNl9yb3V0ZV9vdXRwdXQobmV0LCBzaywgZmw2KTsKKwkJKmRzdCA9 IGlwNl9yb3V0ZV9vdXRwdXRfZmxhZ3MobmV0LCBzaywgZmw2LCBmbGFncyk7CiAKIAllcnIgPSAo KmRzdCktPmVycm9yOwogCWlmIChlcnIpCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yb3V0ZS5jIGIv bmV0L2lwdjYvcm91dGUuYwppbmRleCA4MjZlNmFhLi4zZjE2NGQzIDEwMDY0NAotLS0gYS9uZXQv aXB2Ni9yb3V0ZS5jCisrKyBiL25ldC9pcHY2L3JvdXRlLmMKQEAgLTExNzQsMTEgKzExNzQsMTAg QEAgc3RhdGljIHN0cnVjdCBydDZfaW5mbyAqaXA2X3BvbF9yb3V0ZV9vdXRwdXQoc3RydWN0IG5l dCAqbmV0LCBzdHJ1Y3QgZmliNl90YWJsZQogCXJldHVybiBpcDZfcG9sX3JvdXRlKG5ldCwgdGFi bGUsIGZsNi0+Zmxvd2k2X29pZiwgZmw2LCBmbGFncyk7CiB9CiAKLXN0cnVjdCBkc3RfZW50cnkg KmlwNl9yb3V0ZV9vdXRwdXQoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBzdHJ1Y3Qgc29jayAqc2ss Ci0JCQkJICAgIHN0cnVjdCBmbG93aTYgKmZsNikKK3N0cnVjdCBkc3RfZW50cnkgKmlwNl9yb3V0 ZV9vdXRwdXRfZmxhZ3Moc3RydWN0IG5ldCAqbmV0LCBjb25zdCBzdHJ1Y3Qgc29jayAqc2ssCisJ CQkJCSBzdHJ1Y3QgZmxvd2k2ICpmbDYsIGludCBmbGFncykKIHsKIAlzdHJ1Y3QgZHN0X2VudHJ5 ICpkc3Q7Ci0JaW50IGZsYWdzID0gMDsKIAlib29sIGFueV9zcmM7CiAKIAlkc3QgPSBsM21kZXZf cnQ2X2RzdF9ieV9vaWYobmV0LCBmbDYpOwpAQCAtMTE5OSw3ICsxMTk4LDcgQEAgc3RydWN0IGRz dF9lbnRyeSAqaXA2X3JvdXRlX291dHB1dChzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHN0cnVjdCBz b2NrICpzaywKIAogCXJldHVybiBmaWI2X3J1bGVfbG9va3VwKG5ldCwgZmw2LCBmbGFncywgaXA2 X3BvbF9yb3V0ZV9vdXRwdXQpOwogfQotRVhQT1JUX1NZTUJPTChpcDZfcm91dGVfb3V0cHV0KTsK K0VYUE9SVF9TWU1CT0xfR1BMKGlwNl9yb3V0ZV9vdXRwdXRfZmxhZ3MpOwogCiBzdHJ1Y3QgZHN0 X2VudHJ5ICppcDZfYmxhY2tob2xlX3JvdXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGRzdF9l bnRyeSAqZHN0X29yaWcpCiB7Ci0tIAoyLjEuMAoKCkZyb20gY2RkZThhMDVhYjRjOTM4NDU5NmRm YzZjNjdlMDRhNzUyOTZjNTVjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFvbG8g QWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpEYXRlOiBGcmksIDI5IEphbiAyMDE2IDEyOjMwOjIw ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNi80N10gaXB2Ni91ZHA6IHVzZSBzdGlja3kgcGt0aW5m byBlZ3Jlc3MgaWZpbmRleCBvbgogY29ubmVjdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCAxY2RkYTkx ODcxNDcwZjE1ZTc5Mzc1OTkxYmQyZWRkYzZlODZkZGIxIF0KCkN1cnJlbnRseSwgdGhlIGVncmVz cyBpbnRlcmZhY2UgaW5kZXggc3BlY2lmaWVkIHZpYSBJUFY2X1BLVElORk8KaXMgaWdub3JlZCBi eSBfX2lwNl9kYXRhZ3JhbV9jb25uZWN0KCksIHNvIHRoYXQgUkZDIDM1NDIgc2VjdGlvbiA2LjcK Y2FuIGJlIHN1YnZlcnRlZCB3aGVuIHRoZSB1c2VyIHNwYWNlIGFwcGxpY2F0aW9uIGNhbGxzIGNv bm5lY3QoKQpiZWZvcmUgc2VuZG1zZygpLgpGaXggaXQgYnkgaW5pdGlhbGl6aW5nIHByb3Blcmx5 IGZsb3dpNl9vaWYgaW4gY29ubmVjdCgpIGJlZm9yZQpwZXJmb3JtaW5nIHRoZSByb3V0ZSBsb29r dXAuCgpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+CkFja2Vk LWJ5OiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0cmVzc2luZHVrdGlvbi5vcmc+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvaXB2Ni9kYXRhZ3JhbS5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9kYXRhZ3JhbS5jIGIvbmV0L2lwdjYvZGF0YWdyYW0u YwppbmRleCA1MTdjNTViLi40MjgxNjIxIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9kYXRhZ3JhbS5j CisrKyBiL25ldC9pcHY2L2RhdGFncmFtLmMKQEAgLTE2Miw2ICsxNjIsOSBAQCBpcHY0X2Nvbm5l Y3RlZDoKIAlmbDYuZmw2X2Rwb3J0ID0gaW5ldC0+aW5ldF9kcG9ydDsKIAlmbDYuZmw2X3Nwb3J0 ID0gaW5ldC0+aW5ldF9zcG9ydDsKIAorCWlmICghZmw2LmZsb3dpNl9vaWYpCisJCWZsNi5mbG93 aTZfb2lmID0gbnAtPnN0aWNreV9wa3RpbmZvLmlwaTZfaWZpbmRleDsKKwogCWlmICghZmw2LmZs b3dpNl9vaWYgJiYgKGFkZHJfdHlwZSZJUFY2X0FERFJfTVVMVElDQVNUKSkKIAkJZmw2LmZsb3dp Nl9vaWYgPSBucC0+bWNhc3Rfb2lmOwogCi0tIAoyLjEuMAoKCkZyb20gMGVjMzY1ZTY1MGMzZjlh ZjlhZjQyMzNhYWMzODljYmExYjhlYmRmYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog InN1YmFzaGFiQGNvZGVhdXJvcmEub3JnIiA8c3ViYXNoYWJAY29kZWF1cm9yYS5vcmc+CkRhdGU6 IFR1ZSwgMiBGZWIgMjAxNiAwMjoxMToxMCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMTcvNDddIGlw djY6IGFkZHJjb25mOiBGaXggcmVjdXJzaXZlIHNwaW4gbG9jayBjYWxsCgpbIFVwc3RyZWFtIGNv bW1pdCAxNjE4NmE4MmRlMWZkZDg2ODI1NTQ0ODI3NGU2NGFlMjYxNmUyNjQwIF0KCkEgcmN1IHN0 YWxsIHdpdGggdGhlIGZvbGxvd2luZyBiYWNrdHJhY2Ugd2FzIHNlZW4gb24gYSBzeXN0ZW0gd2l0 aApmb3J3YXJkaW5nLCBvcHRpbWlzdGljX2RhZCBhbmQgdXNlX29wdGltaXN0aWMgc2V0LiBUbyBy ZXByb2R1Y2UsCnNldCB0aGVzZSBmbGFncyBhbmQgYWxsb3cgaXB2NiBhdXRvY29uZi4KClRoaXMg b2NjdXJzIGJlY2F1c2UgdGhlIGRldmljZSB3cml0ZV9sb2NrIGlzIGFjcXVpcmVkIHdoaWxlIGFs cmVhZHkKaG9sZGluZyB0aGUgcmVhZF9sb2NrLiBCYWNrIHRyYWNlIGJlbG93IC0KCklORk86IHJj dV9wcmVlbXB0IHNlbGYtZGV0ZWN0ZWQgc3RhbGwgb24gQ1BVIHsgMX0gICh0PTIxMDAgamlmZmll cwogZz0zOTkyIGM9Mzk5MSBxPTQ0NzEpCjw2PiBUYXNrIGR1bXAgZm9yIENQVSAxOgo8Mj4ga3dv cmtlci8xOjAgICAgIFIgIHJ1bm5pbmcgdGFzayAgICAxMjE2OCAgICAxNSAgIDIgMHgwMDAwMDAw Mgo8Mj4gV29ya3F1ZXVlOiBpcHY2X2FkZHJjb25mIGFkZHJjb25mX2RhZF93b3JrCjw2PiBDYWxs IHRyYWNlOgo8Mj4gWzxmZmZmZmZjMDAwMDg0ZGE4Pl0gZWwxX2lycSsweDY4LzB4ZGMKPDI+IFs8 ZmZmZmZmYzAwMGNjNGUwYz5dIF9yYXdfd3JpdGVfbG9ja19iaCsweDIwLzB4MzAKPDI+IFs8ZmZm ZmZmYzAwMGJjNWRkOD5dIF9faXB2Nl9kZXZfYWNfaW5jKzB4NjQvMHgxYjQKPDI+IFs8ZmZmZmZm YzAwMGJjYmQyYz5dIGFkZHJjb25mX2pvaW5fYW55Y2FzdCsweDljLzB4YzQKPDI+IFs8ZmZmZmZm YzAwMGJjZjlmMD5dIF9faXB2Nl9pZmFfbm90aWZ5KzB4MTYwLzB4MjljCjwyPiBbPGZmZmZmZmMw MDBiY2ZiN2M+XSBpcHY2X2lmYV9ub3RpZnkrMHg1MC8weDcwCjwyPiBbPGZmZmZmZmMwMDBiZDAz NWM+XSBhZGRyY29uZl9kYWRfd29yaysweDMxNC8weDMzNAo8Mj4gWzxmZmZmZmZjMDAwMGI2NGM4 Pl0gcHJvY2Vzc19vbmVfd29yaysweDI0NC8weDNmYwo8Mj4gWzxmZmZmZmZjMDAwMGI3MzI0Pl0g d29ya2VyX3RocmVhZCsweDJmOC8weDQxOAo8Mj4gWzxmZmZmZmZjMDAwMGJiNDBjPl0ga3RocmVh ZCsweGUwLzB4ZWMKCnYyOiBkbyBhZGRyY29uZl9kYWRfa2ljayBpbnNpZGUgcmVhZCBsb2NrIGFu ZCB0aGVuIGFjcXVpcmUgd3JpdGUKbG9jayBmb3IgaXB2Nl9pZmFfbm90aWZ5IGFzIHN1Z2dlc3Rl ZCBieSBFcmljCgpGaXhlczogN2ZkMjU2MWU0ZWJkZCAoIm5ldDogaXB2NjogQWRkIGEgc3lzY3Rs IHRvIG1ha2Ugb3B0aW1pc3RpYwphZGRyZXNzZXMgdXNlZnVsIGNhbmRpZGF0ZXMiKQoKQ2M6IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IEVyaWsgS2xpbmUgPGVrQGdvb2ds ZS5jb20+CkNjOiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0cmVzc2luZHVrdGlvbi5v cmc+ClNpZ25lZC1vZmYtYnk6IFN1YmFzaCBBYmhpbm92IEthc2l2aXN3YW5hdGhhbiA8c3ViYXNo YWJAY29kZWF1cm9yYS5vcmc+CkFja2VkLWJ5OiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVz QHN0cmVzc2luZHVrdGlvbi5vcmc+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvaXB2Ni9hZGRyY29uZi5jIHwgNSArKysrLQogMSBmaWxlIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2Fk ZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCmluZGV4IDFmMjEwODcuLjgyOGFiMjggMTAw NjQ0Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25mLmMKKysrIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwpA QCAtMzUwNiw2ICszNTA2LDcgQEAgc3RhdGljIHZvaWQgYWRkcmNvbmZfZGFkX2JlZ2luKHN0cnVj dCBpbmV0Nl9pZmFkZHIgKmlmcCkKIHsKIAlzdHJ1Y3QgaW5ldDZfZGV2ICppZGV2ID0gaWZwLT5p ZGV2OwogCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBpZGV2LT5kZXY7CisJYm9vbCBub3RpZnkg PSBmYWxzZTsKIAogCWFkZHJjb25mX2pvaW5fc29saWN0KGRldiwgJmlmcC0+YWRkcik7CiAKQEAg LTM1NTEsNyArMzU1Miw3IEBAIHN0YXRpYyB2b2lkIGFkZHJjb25mX2RhZF9iZWdpbihzdHJ1Y3Qg aW5ldDZfaWZhZGRyICppZnApCiAJCQkvKiBCZWNhdXNlIG9wdGltaXN0aWMgbm9kZXMgY2FuIHVz ZSB0aGlzIGFkZHJlc3MsCiAJCQkgKiBub3RpZnkgbGlzdGVuZXJzLiBJZiBEQUQgZmFpbHMsIFJU TV9ERUxBRERSIGlzIHNlbnQuCiAJCQkgKi8KLQkJCWlwdjZfaWZhX25vdGlmeShSVE1fTkVXQURE UiwgaWZwKTsKKwkJCW5vdGlmeSA9IHRydWU7CiAJCX0KIAl9CiAKQEAgLTM1NTksNiArMzU2MCw4 IEBAIHN0YXRpYyB2b2lkIGFkZHJjb25mX2RhZF9iZWdpbihzdHJ1Y3QgaW5ldDZfaWZhZGRyICpp ZnApCiBvdXQ6CiAJc3Bpbl91bmxvY2soJmlmcC0+bG9jayk7CiAJcmVhZF91bmxvY2tfYmgoJmlk ZXYtPmxvY2spOworCWlmIChub3RpZnkpCisJCWlwdjZfaWZhX25vdGlmeShSVE1fTkVXQUREUiwg aWZwKTsKIH0KIAogc3RhdGljIHZvaWQgYWRkcmNvbmZfZGFkX3N0YXJ0KHN0cnVjdCBpbmV0Nl9p ZmFkZHIgKmlmcCkKLS0gCjIuMS4wCgoKRnJvbSA4ZGQ4MWIzMmM4ZjE4YzFlMjc5MWI0YTYwMjYy ZTgzMDQxYWY0NTY2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgMiBGZWIgMjAxNiAxNzo1NTowMSAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggMTgvNDddIGlwdjY6IGZpeCBhIGxvY2tkZXAgc3BsYXQKClsgVXBz dHJlYW0gY29tbWl0IDQ0YzNkMGMxYzBhODgwMzU0ZTlkZTVkOTQxNzU3NDJlMmM3Yzk2ODMgXQoK U2lsZW5jZSBsb2NrZGVwIGZhbHNlIHBvc2l0aXZlIGFib3V0IHJjdV9kZXJlZmVyZW5jZSgpIGJl aW5nCnVzZWQgaW4gdGhlIHdyb25nIGNvbnRleHQuCgpGaXJzdCBvbmUgc2hvdWxkIHVzZSByY3Vf ZGVyZWZlcmVuY2VfcHJvdGVjdGVkKCkgYXMgd2Ugb3duIHRoZSBzcGlubG9jay4KClNlY29uZCBv bmUgc2hvdWxkIGJlIGEgbm9ybWFsIGFzc2lnbmF0aW9uLCBhcyBubyBiYXJyaWVyIGlzIG5lZWRl ZC4KCkZpeGVzOiAxODM2NzY4MWExMGJkICgiaXB2NiBmbG93bGFiZWw6IENvbnZlcnQgbnAtPmlw djZfZmxfbGlzdCB0byBSQ1UuIikKUmVwb3J0ZWQtYnk6IERhdmUgSm9uZXMgPGRhdmVqQGNvZGVt b25rZXkub3JnLnVrPgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+CkFja2VkLWJ5OiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0cmVzc2luZHVr dGlvbi5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfZmxvd2xhYmVsLmMgfCA1ICsrKy0tCiAxIGZpbGUgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY2L2lwNl9mbG93bGFiZWwuYyBiL25ldC9pcHY2L2lwNl9mbG93bGFiZWwuYwppbmRleCAxZjll YmUzLi5kYzJkYjRmIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZmxvd2xhYmVsLmMKKysrIGIv bmV0L2lwdjYvaXA2X2Zsb3dsYWJlbC5jCkBAIC01NDAsMTIgKzU0MCwxMyBAQCBpbnQgaXB2Nl9m bG93bGFiZWxfb3B0KHN0cnVjdCBzb2NrICpzaywgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IG9w dGxlbikKIAkJfQogCQlzcGluX2xvY2tfYmgoJmlwNl9za19mbF9sb2NrKTsKIAkJZm9yIChzZmxw ID0gJm5wLT5pcHY2X2ZsX2xpc3Q7Ci0JCSAgICAgKHNmbCA9IHJjdV9kZXJlZmVyZW5jZSgqc2Zs cCkpICE9IE5VTEw7CisJCSAgICAgKHNmbCA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoKnNm bHAsCisJCQkJCQkgICAgICBsb2NrZGVwX2lzX2hlbGQoJmlwNl9za19mbF9sb2NrKSkpICE9IE5V TEw7CiAJCSAgICAgc2ZscCA9ICZzZmwtPm5leHQpIHsKIAkJCWlmIChzZmwtPmZsLT5sYWJlbCA9 PSBmcmVxLmZscl9sYWJlbCkgewogCQkJCWlmIChmcmVxLmZscl9sYWJlbCA9PSAobnAtPmZsb3df bGFiZWwmSVBWNl9GTE9XTEFCRUxfTUFTSykpCiAJCQkJCW5wLT5mbG93X2xhYmVsICY9IH5JUFY2 X0ZMT1dMQUJFTF9NQVNLOwotCQkJCSpzZmxwID0gcmN1X2RlcmVmZXJlbmNlKHNmbC0+bmV4dCk7 CisJCQkJKnNmbHAgPSBzZmwtPm5leHQ7CiAJCQkJc3Bpbl91bmxvY2tfYmgoJmlwNl9za19mbF9s b2NrKTsKIAkJCQlmbF9yZWxlYXNlKHNmbC0+ZmwpOwogCQkJCWtmcmVlX3JjdShzZmwsIHJjdSk7 Ci0tIAoyLjEuMAoKCkZyb20gMTVkZGJjMTI2YzhlOTI5NTllMjYxZjQ5Y2E5ZjliZTczODVhYzFl NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhh bm5lc0BzdHJlc3NpbmR1a3Rpb24ub3JnPgpEYXRlOiBXZWQsIDMgRmViIDIwMTYgMDI6MTE6MDMg KzAxMDAKU3ViamVjdDogW1BBVENIIDE5LzQ3XSB1bml4OiBjb3JyZWN0bHkgdHJhY2sgaW4tZmxp Z2h0IGZkcyBpbiBzZW5kaW5nIHByb2Nlc3MKIHVzZXJfc3RydWN0CgpbIFVwc3RyZWFtIGNvbW1p dCA0MTVlM2QzZTkwY2U5ZTE4NzI3ZTg4NDNhZTM0M2VkYTVhNThmYWQ2IF0KClRoZSBjb21taXQg cmVmZXJlbmNlZCBpbiB0aGUgRml4ZXMgdGFnIGluY29ycmVjdGx5IGFjY291bnRlZCB0aGUgbnVt YmVyCm9mIGluLWZsaWdodCBmZHMgb3ZlciBhIHVuaXggZG9tYWluIHNvY2tldCB0byB0aGUgb3Jp Z2luYWwgb3BlbmVyCm9mIHRoZSBmaWxlLWRlc2NyaXB0b3IuIFRoaXMgYWxsb3dzIGFub3RoZXIg cHJvY2VzcyB0byBhcmJpdHJhcnkKZGVwbGV0ZSB0aGUgb3JpZ2luYWwgZmlsZS1vcGVuZXJzIHJl c291cmNlIGxpbWl0IGZvciB0aGUgbWF4aW11bSBvZgpvcGVuIGZpbGVzLiBJbnN0ZWFkIHRoZSBz ZW5kaW5nIHByb2Nlc3NlcyBhbmQgaXRzIHN0cnVjdCBjcmVkIHNob3VsZApiZSBjcmVkaXRlZC4K ClRvIGRvIHNvLCB3ZSBhZGQgYSByZWZlcmVuY2UgY291bnRlZCBzdHJ1Y3QgdXNlcl9zdHJ1Y3Qg cG9pbnRlciB0byB0aGUKc2NtX2ZwX2xpc3QgYW5kIHVzZSBpdCB0byBhY2NvdW50IGZvciB0aGUg bnVtYmVyIG9mIGluZmxpZ2h0IHVuaXggZmRzLgoKRml4ZXM6IDcxMmY0YWFkNDA2YmIxICgidW5p eDogcHJvcGVybHkgYWNjb3VudCBmb3IgRkRzIHBhc3NlZCBvdmVyIHVuaXggc29ja2V0cyIpClJl cG9ydGVkLWJ5OiBEYXZpZCBIZXJybWFubiA8ZGguaGVycm1hbm5AZ21haWwuY29tPgpDYzogRGF2 aWQgSGVycm1hbm4gPGRoLmhlcnJtYW5uQGdtYWlsLmNvbT4KQ2M6IFdpbGx5IFRhcnJlYXUgPHdA MXd0LmV1PgpDYzogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3Jn PgpTdWdnZXN0ZWQtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9u Lm9yZz4KU2lnbmVkLW9mZi1ieTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5lc0BzdHJlc3Np bmR1a3Rpb24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvYWZfdW5peC5oIHwgNCArKy0tCiBpbmNsdWRlL25l dC9zY20uaCAgICAgfCAxICsKIG5ldC9jb3JlL3NjbS5jICAgICAgICB8IDcgKysrKysrKwogbmV0 L3VuaXgvYWZfdW5peC5jICAgIHwgNCArKy0tCiBuZXQvdW5peC9nYXJiYWdlLmMgICAgfCA4ICsr KystLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvYWZfdW5peC5oIGIvaW5jbHVkZS9uZXQvYWZfdW5p eC5oCmluZGV4IDJhOTFhMDUuLjliNGM0MTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2FmX3Vu aXguaAorKysgYi9pbmNsdWRlL25ldC9hZl91bml4LmgKQEAgLTYsOCArNiw4IEBACiAjaW5jbHVk ZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxuZXQvc29jay5oPgogCi12b2lkIHVuaXhfaW5m bGlnaHQoc3RydWN0IGZpbGUgKmZwKTsKLXZvaWQgdW5peF9ub3RpbmZsaWdodChzdHJ1Y3QgZmls ZSAqZnApOwordm9pZCB1bml4X2luZmxpZ2h0KHN0cnVjdCB1c2VyX3N0cnVjdCAqdXNlciwgc3Ry dWN0IGZpbGUgKmZwKTsKK3ZvaWQgdW5peF9ub3RpbmZsaWdodChzdHJ1Y3QgdXNlcl9zdHJ1Y3Qg KnVzZXIsIHN0cnVjdCBmaWxlICpmcCk7CiB2b2lkIHVuaXhfZ2Modm9pZCk7CiB2b2lkIHdhaXRf Zm9yX3VuaXhfZ2Modm9pZCk7CiBzdHJ1Y3Qgc29jayAqdW5peF9nZXRfc29ja2V0KHN0cnVjdCBm aWxlICpmaWxwKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NjbS5oIGIvaW5jbHVkZS9uZXQv c2NtLmgKaW5kZXggMjYyNTMyZC4uNTlmYTkzYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc2Nt LmgKKysrIGIvaW5jbHVkZS9uZXQvc2NtLmgKQEAgLTIxLDYgKzIxLDcgQEAgc3RydWN0IHNjbV9j cmVkcyB7CiBzdHJ1Y3Qgc2NtX2ZwX2xpc3QgewogCXNob3J0CQkJY291bnQ7CiAJc2hvcnQJCQlt YXg7CisJc3RydWN0IHVzZXJfc3RydWN0CSp1c2VyOwogCXN0cnVjdCBmaWxlCQkqZnBbU0NNX01B WF9GRF07CiB9OwogCmRpZmYgLS1naXQgYS9uZXQvY29yZS9zY20uYyBiL25ldC9jb3JlL3NjbS5j CmluZGV4IDhhMTc0MWIuLmRjZTBhY2IgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NjbS5jCisrKyBi L25ldC9jb3JlL3NjbS5jCkBAIC04Nyw2ICs4Nyw3IEBAIHN0YXRpYyBpbnQgc2NtX2ZwX2NvcHko c3RydWN0IGNtc2doZHIgKmNtc2csIHN0cnVjdCBzY21fZnBfbGlzdCAqKmZwbHApCiAJCSpmcGxw ID0gZnBsOwogCQlmcGwtPmNvdW50ID0gMDsKIAkJZnBsLT5tYXggPSBTQ01fTUFYX0ZEOworCQlm cGwtPnVzZXIgPSBOVUxMOwogCX0KIAlmcHAgPSAmZnBsLT5mcFtmcGwtPmNvdW50XTsKIApAQCAt MTA3LDYgKzEwOCwxMCBAQCBzdGF0aWMgaW50IHNjbV9mcF9jb3B5KHN0cnVjdCBjbXNnaGRyICpj bXNnLCBzdHJ1Y3Qgc2NtX2ZwX2xpc3QgKipmcGxwKQogCQkqZnBwKysgPSBmaWxlOwogCQlmcGwt PmNvdW50Kys7CiAJfQorCisJaWYgKCFmcGwtPnVzZXIpCisJCWZwbC0+dXNlciA9IGdldF91aWQo Y3VycmVudF91c2VyKCkpOworCiAJcmV0dXJuIG51bTsKIH0KIApAQCAtMTE5LDYgKzEyNCw3IEBA IHZvaWQgX19zY21fZGVzdHJveShzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtKQogCQlzY20tPmZwID0g TlVMTDsKIAkJZm9yIChpPWZwbC0+Y291bnQtMTsgaT49MDsgaS0tKQogCQkJZnB1dChmcGwtPmZw W2ldKTsKKwkJZnJlZV91aWQoZnBsLT51c2VyKTsKIAkJa2ZyZWUoZnBsKTsKIAl9CiB9CkBAIC0z MzYsNiArMzQyLDcgQEAgc3RydWN0IHNjbV9mcF9saXN0ICpzY21fZnBfZHVwKHN0cnVjdCBzY21f ZnBfbGlzdCAqZnBsKQogCQlmb3IgKGkgPSAwOyBpIDwgZnBsLT5jb3VudDsgaSsrKQogCQkJZ2V0 X2ZpbGUoZnBsLT5mcFtpXSk7CiAJCW5ld19mcGwtPm1heCA9IG5ld19mcGwtPmNvdW50OworCQlu ZXdfZnBsLT51c2VyID0gZ2V0X3VpZChmcGwtPnVzZXIpOwogCX0KIAlyZXR1cm4gbmV3X2ZwbDsK IH0KZGlmZiAtLWdpdCBhL25ldC91bml4L2FmX3VuaXguYyBiL25ldC91bml4L2FmX3VuaXguYwpp bmRleCA3NzU4NTVlLi42ZGU0MWMzIDEwMDY0NAotLS0gYS9uZXQvdW5peC9hZl91bml4LmMKKysr IGIvbmV0L3VuaXgvYWZfdW5peC5jCkBAIC0xNDk2LDcgKzE0OTYsNyBAQCBzdGF0aWMgdm9pZCB1 bml4X2RldGFjaF9mZHMoc3RydWN0IHNjbV9jb29raWUgKnNjbSwgc3RydWN0IHNrX2J1ZmYgKnNr YikKIAlVTklYQ0Ioc2tiKS5mcCA9IE5VTEw7CiAKIAlmb3IgKGkgPSBzY20tPmZwLT5jb3VudC0x OyBpID49IDA7IGktLSkKLQkJdW5peF9ub3RpbmZsaWdodChzY20tPmZwLT5mcFtpXSk7CisJCXVu aXhfbm90aW5mbGlnaHQoc2NtLT5mcC0+dXNlciwgc2NtLT5mcC0+ZnBbaV0pOwogfQogCiBzdGF0 aWMgdm9pZCB1bml4X2Rlc3RydWN0X3NjbShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQpAQCAtMTU2MSw3 ICsxNTYxLDcgQEAgc3RhdGljIGludCB1bml4X2F0dGFjaF9mZHMoc3RydWN0IHNjbV9jb29raWUg KnNjbSwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlmb3IgKGkg PSBzY20tPmZwLT5jb3VudCAtIDE7IGkgPj0gMDsgaS0tKQotCQl1bml4X2luZmxpZ2h0KHNjbS0+ ZnAtPmZwW2ldKTsKKwkJdW5peF9pbmZsaWdodChzY20tPmZwLT51c2VyLCBzY20tPmZwLT5mcFtp XSk7CiAJcmV0dXJuIG1heF9sZXZlbDsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L3VuaXgvZ2FyYmFn ZS5jIGIvbmV0L3VuaXgvZ2FyYmFnZS5jCmluZGV4IDhmY2RjMjIuLjZhMGQ0ODUgMTAwNjQ0Ci0t LSBhL25ldC91bml4L2dhcmJhZ2UuYworKysgYi9uZXQvdW5peC9nYXJiYWdlLmMKQEAgLTExNiw3 ICsxMTYsNyBAQCBzdHJ1Y3Qgc29jayAqdW5peF9nZXRfc29ja2V0KHN0cnVjdCBmaWxlICpmaWxw KQogICogZGVzY3JpcHRvciBpZiBpdCBpcyBmb3IgYW4gQUZfVU5JWCBzb2NrZXQuCiAgKi8KIAot dm9pZCB1bml4X2luZmxpZ2h0KHN0cnVjdCBmaWxlICpmcCkKK3ZvaWQgdW5peF9pbmZsaWdodChz dHJ1Y3QgdXNlcl9zdHJ1Y3QgKnVzZXIsIHN0cnVjdCBmaWxlICpmcCkKIHsKIAlzdHJ1Y3Qgc29j ayAqcyA9IHVuaXhfZ2V0X3NvY2tldChmcCk7CiAKQEAgLTEzMywxMSArMTMzLDExIEBAIHZvaWQg dW5peF9pbmZsaWdodChzdHJ1Y3QgZmlsZSAqZnApCiAJCX0KIAkJdW5peF90b3RfaW5mbGlnaHQr KzsKIAl9Ci0JZnAtPmZfY3JlZC0+dXNlci0+dW5peF9pbmZsaWdodCsrOworCXVzZXItPnVuaXhf aW5mbGlnaHQrKzsKIAlzcGluX3VubG9jaygmdW5peF9nY19sb2NrKTsKIH0KIAotdm9pZCB1bml4 X25vdGluZmxpZ2h0KHN0cnVjdCBmaWxlICpmcCkKK3ZvaWQgdW5peF9ub3RpbmZsaWdodChzdHJ1 Y3QgdXNlcl9zdHJ1Y3QgKnVzZXIsIHN0cnVjdCBmaWxlICpmcCkKIHsKIAlzdHJ1Y3Qgc29jayAq cyA9IHVuaXhfZ2V0X3NvY2tldChmcCk7CiAKQEAgLTE1Miw3ICsxNTIsNyBAQCB2b2lkIHVuaXhf bm90aW5mbGlnaHQoc3RydWN0IGZpbGUgKmZwKQogCQkJbGlzdF9kZWxfaW5pdCgmdS0+bGluayk7 CiAJCXVuaXhfdG90X2luZmxpZ2h0LS07CiAJfQotCWZwLT5mX2NyZWQtPnVzZXItPnVuaXhfaW5m bGlnaHQtLTsKKwl1c2VyLT51bml4X2luZmxpZ2h0LS07CiAJc3Bpbl91bmxvY2soJnVuaXhfZ2Nf bG9jayk7CiB9CiAKLS0gCjIuMS4wCgoKRnJvbSBhZTZiMGQwMmRlMWE5OTMxMDEyZTFlZjEyZTY4 OGE0YzM5OTdkYWEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgMiBGZWIgMjAxNiAxOTozMToxMiAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggMjAvNDddIHRjcDogZG8gbm90IGRyb3Agc3luX3JlY3Ygb24gYWxs IGljbXAgcmVwb3J0cwoKWyBVcHN0cmVhbSBjb21taXQgOWNmNzQ5MDM2MGJmMmM0NmExNmI3NTI1 Zjg5OWU0OTcwYzVmYzE0NCBdCgpQZXRyIE5vdm9wYXNoZW5uaXkgcmVwb3J0ZWQgdGhhdCBJQ01Q IHJlZGlyZWN0cyBvbiBTWU5fUkVDViBzb2NrZXRzCndlcmUgbGVhZGluZyB0byBSU1QuCgpUaGlz IGlzIG9mIGNvdXJzZSBpbmNvcnJlY3QuCgpBIHNwZWNpZmljIGxpc3Qgb2YgSUNNUCBtZXNzYWdl cyBzaG91bGQgYmUgYWJsZSB0byBkcm9wIGEgU1lOX1JFQ1YuCgpGb3IgaW5zdGFuY2UsIGEgUkVE SVJFQ1Qgb24gU1lOX1JFQ1Ygc2hhbGwgYmUgaWdub3JlZCwgYXMgd2UgZG8Kbm90IGhvbGQgYSBk c3QgcGVyIFNZTl9SRUNWIHBzZXVkbyByZXF1ZXN0LgoKQnVnemlsbGE6IGh0dHBzOi8vYnVnemls bGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNzUxCkZpeGVzOiAwNzkwOTZmMTAzZmEg KCJ0Y3AvZGNjcDogaW5zdGFsbCBzeW5fcmVjdiByZXF1ZXN0cyBpbnRvIGVoYXNoIHRhYmxlIikK UmVwb3J0ZWQtYnk6IFBldHIgTm92b3Bhc2hlbm5peSA8cGV0eUBydXNuZXQucnU+ClNpZ25lZC1v ZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L3Rj cC5oICAgfCAgMiArLQogbmV0L2lwdjQvdGNwX2lwdjQuYyB8IDExICsrKysrKysrLS0tCiBuZXQv aXB2Ni90Y3BfaXB2Ni5jIHwgIDUgKysrLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC90Y3AuaCBiL2lu Y2x1ZGUvbmV0L3RjcC5oCmluZGV4IGY4MGU3NGMuLjQxNGQ4MjIgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbmV0L3RjcC5oCisrKyBiL2luY2x1ZGUvbmV0L3RjcC5oCkBAIC00NDksNyArNDQ5LDcgQEAg Y29uc3QgdTggKnRjcF9wYXJzZV9tZDVzaWdfb3B0aW9uKGNvbnN0IHN0cnVjdCB0Y3BoZHIgKnRo KTsKIAogdm9pZCB0Y3BfdjRfc2VuZF9jaGVjayhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19i dWZmICpza2IpOwogdm9pZCB0Y3BfdjRfbXR1X3JlZHVjZWQoc3RydWN0IHNvY2sgKnNrKTsKLXZv aWQgdGNwX3JlcV9lcnIoc3RydWN0IHNvY2sgKnNrLCB1MzIgc2VxKTsKK3ZvaWQgdGNwX3JlcV9l cnIoc3RydWN0IHNvY2sgKnNrLCB1MzIgc2VxLCBib29sIGFib3J0KTsKIGludCB0Y3BfdjRfY29u bl9yZXF1ZXN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYik7CiBzdHJ1Y3Qg c29jayAqdGNwX2NyZWF0ZV9vcGVucmVxX2NoaWxkKGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAkJ CQkgICAgICBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90 Y3BfaXB2NC5jIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCA0NjI3NzE3Li5mNjY2OTZjIDEw MDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaXB2NC5jCisrKyBiL25ldC9pcHY0L3RjcF9pcHY0LmMK QEAgLTMxMiw3ICszMTIsNyBAQCBzdGF0aWMgdm9pZCBkb19yZWRpcmVjdChzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3Qgc29jayAqc2spCiAKIAogLyogaGFuZGxlIElDTVAgbWVzc2FnZXMgb24g VENQX05FV19TWU5fUkVDViByZXF1ZXN0IHNvY2tldHMgKi8KLXZvaWQgdGNwX3JlcV9lcnIoc3Ry dWN0IHNvY2sgKnNrLCB1MzIgc2VxKQordm9pZCB0Y3BfcmVxX2VycihzdHJ1Y3Qgc29jayAqc2ss IHUzMiBzZXEsIGJvb2wgYWJvcnQpCiB7CiAJc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxID0gaW5l dF9yZXFzayhzayk7CiAJc3RydWN0IG5ldCAqbmV0ID0gc29ja19uZXQoc2spOwpAQCAtMzI0LDcg KzMyNCw3IEBAIHZvaWQgdGNwX3JlcV9lcnIoc3RydWN0IHNvY2sgKnNrLCB1MzIgc2VxKQogCiAJ aWYgKHNlcSAhPSB0Y3BfcnNrKHJlcSktPnNudF9pc24pIHsKIAkJTkVUX0lOQ19TVEFUU19CSChu ZXQsIExJTlVYX01JQl9PVVRPRldJTkRPV0lDTVBTKTsKLQl9IGVsc2UgeworCX0gZWxzZSBpZiAo YWJvcnQpIHsKIAkJLyoKIAkJICogU3RpbGwgaW4gU1lOX1JFQ1YsIGp1c3QgcmVtb3ZlIGl0IHNp bGVudGx5LgogCQkgKiBUaGVyZSBpcyBubyBnb29kIHdheSB0byBwYXNzIHRoZSBlcnJvciB0byB0 aGUgbmV3bHkKQEAgLTM4NCw3ICszODQsMTIgQEAgdm9pZCB0Y3BfdjRfZXJyKHN0cnVjdCBza19i dWZmICppY21wX3NrYiwgdTMyIGluZm8pCiAJfQogCXNlcSA9IG50b2hsKHRoLT5zZXEpOwogCWlm IChzay0+c2tfc3RhdGUgPT0gVENQX05FV19TWU5fUkVDVikKLQkJcmV0dXJuIHRjcF9yZXFfZXJy KHNrLCBzZXEpOworCQlyZXR1cm4gdGNwX3JlcV9lcnIoc2ssIHNlcSwKKwkJCQkgIHR5cGUgPT0g SUNNUF9QQVJBTUVURVJQUk9CIHx8CisJCQkJICB0eXBlID09IElDTVBfVElNRV9FWENFRURFRCB8 fAorCQkJCSAgKHR5cGUgPT0gSUNNUF9ERVNUX1VOUkVBQ0ggJiYKKwkJCQkgICAoY29kZSA9PSBJ Q01QX05FVF9VTlJFQUNIIHx8CisJCQkJICAgIGNvZGUgPT0gSUNNUF9IT1NUX1VOUkVBQ0gpKSk7 CiAKIAliaF9sb2NrX3NvY2soc2spOwogCS8qIElmIHRvbyBtYW55IElDTVBzIGdldCBkcm9wcGVk IG9uIGJ1c3kKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3RjcF9pcHY2LmMgYi9uZXQvaXB2Ni90Y3Bf aXB2Ni5jCmluZGV4IGJkMTAwYjQuLmFlYTA3MWUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3RjcF9p cHY2LmMKKysrIGIvbmV0L2lwdjYvdGNwX2lwdjYuYwpAQCAtMzI4LDYgKzMyOCw3IEBAIHN0YXRp YyB2b2lkIHRjcF92Nl9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGluZXQ2X3NrYl9w YXJtICpvcHQsCiAJc3RydWN0IHRjcF9zb2NrICp0cDsKIAlfX3UzMiBzZXEsIHNuZF91bmE7CiAJ c3RydWN0IHNvY2sgKnNrOworCWJvb2wgZmF0YWw7CiAJaW50IGVycjsKIAogCXNrID0gX19pbmV0 Nl9sb29rdXBfZXN0YWJsaXNoZWQobmV0LCAmdGNwX2hhc2hpbmZvLApAQCAtMzQ2LDggKzM0Nyw5 IEBAIHN0YXRpYyB2b2lkIHRjcF92Nl9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGlu ZXQ2X3NrYl9wYXJtICpvcHQsCiAJCXJldHVybjsKIAl9CiAJc2VxID0gbnRvaGwodGgtPnNlcSk7 CisJZmF0YWwgPSBpY21wdjZfZXJyX2NvbnZlcnQodHlwZSwgY29kZSwgJmVycik7CiAJaWYgKHNr LT5za19zdGF0ZSA9PSBUQ1BfTkVXX1NZTl9SRUNWKQotCQlyZXR1cm4gdGNwX3JlcV9lcnIoc2ss IHNlcSk7CisJCXJldHVybiB0Y3BfcmVxX2Vycihzaywgc2VxLCBmYXRhbCk7CiAKIAliaF9sb2Nr X3NvY2soc2spOwogCWlmIChzb2NrX293bmVkX2J5X3VzZXIoc2spICYmIHR5cGUgIT0gSUNNUFY2 X1BLVF9UT09CSUcpCkBAIC00MDEsNyArNDAzLDYgQEAgc3RhdGljIHZvaWQgdGNwX3Y2X2Vycihz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaW5ldDZfc2tiX3Bhcm0gKm9wdCwKIAkJZ290byBv dXQ7CiAJfQogCi0JaWNtcHY2X2Vycl9jb252ZXJ0KHR5cGUsIGNvZGUsICZlcnIpOwogCiAJLyog TWlnaHQgYmUgZm9yIGFuIHJlcXVlc3Rfc29jayAqLwogCXN3aXRjaCAoc2stPnNrX3N0YXRlKSB7 Ci0tIAoyLjEuMAoKCkZyb20gMDZmZDM0MTk0NDQxYzMwZmI4ZjhmYzUzODQ2ZWJjMjI5MmI0Njg5 MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFucyBXZXN0Z2FhcmQgUnkgPGhhbnMu d2VzdGdhYXJkLnJ5QG9yYWNsZS5jb20+CkRhdGU6IFdlZCwgMyBGZWIgMjAxNiAwOToyNjo1NyAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMjEvNDddIG5ldDpBZGQgc3lzY3RsX21heF9za2JfZnJhZ3MK TUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDVmNzRm ODJlYTM0YzBkYTgwZWEwYjQ5MTkyYmI1ZWEwNmUwNjM1OTMgXQoKRGV2aWNlcyBtYXkgaGF2ZSBs aW1pdHMgb24gdGhlIG51bWJlciBvZiBmcmFnbWVudHMgaW4gYW4gc2tiIHRoZXkgc3VwcG9ydC4K Q3VycmVudCBjb2RlYmFzZSB1c2VzIGEgY29uc3RhbnQgYXMgbWF4aW11bSBmb3IgbnVtYmVyIG9m IGZyYWdtZW50cyBvbmUKc2tiIGNhbiBob2xkIGFuZCB1c2UuCldoZW4gZW5hYmxpbmcgc2NhdHRl ci9nYXRoZXIgYW5kIHJ1bm5pbmcgdHJhZmZpYyB3aXRoIG1hbnkgc21hbGwgbWVzc2FnZXMKdGhl IGNvZGViYXNlIHVzZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGZyYWdtZW50cyBhbmQgbWF5IHRo ZXJlYnkgdmlvbGF0ZQp0aGUgbWF4IGZvciBjZXJ0YWluIGRldmljZXMuClRoZSBwYXRjaCBpbnRy b2R1Y2VzIGEgZ2xvYmFsIHZhcmlhYmxlIGFzIG1heCBudW1iZXIgb2YgZnJhZ21lbnRzLgoKU2ln bmVkLW9mZi1ieTogSGFucyBXZXN0Z2FhcmQgUnkgPGhhbnMud2VzdGdhYXJkLnJ5QG9yYWNsZS5j b20+ClJldmlld2VkLWJ5OiBIw6Vrb24gQnVnZ2UgPGhhYWtvbi5idWdnZUBvcmFjbGUuY29tPgpB Y2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51 eC9za2J1ZmYuaCAgICAgfCAgMSArCiBuZXQvY29yZS9za2J1ZmYuYyAgICAgICAgICB8ICAyICsr CiBuZXQvY29yZS9zeXNjdGxfbmV0X2NvcmUuYyB8IDEwICsrKysrKysrKysKIG5ldC9pcHY0L3Rj cC5jICAgICAgICAgICAgIHwgIDQgKystLQogNCBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2tidWZmLmgg Yi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oCmluZGV4IDkxNDdmOWYuLjc1ZjEzNmEgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbGludXgvc2tidWZmLmgKKysrIGIvaW5jbHVkZS9saW51eC9za2J1ZmYuaApA QCAtMjE5LDYgKzIxOSw3IEBAIHN0cnVjdCBza19idWZmOwogI2Vsc2UKICNkZWZpbmUgTUFYX1NL Ql9GUkFHUyAoNjU1MzYvUEFHRV9TSVpFICsgMSkKICNlbmRpZgorZXh0ZXJuIGludCBzeXNjdGxf bWF4X3NrYl9mcmFnczsKIAogdHlwZWRlZiBzdHJ1Y3Qgc2tiX2ZyYWdfc3RydWN0IHNrYl9mcmFn X3Q7CiAKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NrYnVmZi5jIGIvbmV0L2NvcmUvc2tidWZmLmMK aW5kZXggYjJkZjM3NS4uNWJmODhmNSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysr IGIvbmV0L2NvcmUvc2tidWZmLmMKQEAgLTc5LDYgKzc5LDggQEAKIAogc3RydWN0IGttZW1fY2Fj aGUgKnNrYnVmZl9oZWFkX2NhY2hlIF9fcmVhZF9tb3N0bHk7CiBzdGF0aWMgc3RydWN0IGttZW1f Y2FjaGUgKnNrYnVmZl9mY2xvbmVfY2FjaGUgX19yZWFkX21vc3RseTsKK2ludCBzeXNjdGxfbWF4 X3NrYl9mcmFncyBfX3JlYWRfbW9zdGx5ID0gTUFYX1NLQl9GUkFHUzsKK0VYUE9SVF9TWU1CT0wo c3lzY3RsX21heF9za2JfZnJhZ3MpOwogCiAvKioKICAqCXNrYl9wYW5pYyAtIHByaXZhdGUgZnVu Y3Rpb24gZm9yIG91dC1vZi1saW5lIHN1cHBvcnQKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3N5c2N0 bF9uZXRfY29yZS5jIGIvbmV0L2NvcmUvc3lzY3RsX25ldF9jb3JlLmMKaW5kZXggOTViNjEzOS4u YTZiZWI3YiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc3lzY3RsX25ldF9jb3JlLmMKKysrIGIvbmV0 L2NvcmUvc3lzY3RsX25ldF9jb3JlLmMKQEAgLTI2LDYgKzI2LDcgQEAgc3RhdGljIGludCB6ZXJv ID0gMDsKIHN0YXRpYyBpbnQgb25lID0gMTsKIHN0YXRpYyBpbnQgbWluX3NuZGJ1ZiA9IFNPQ0tf TUlOX1NOREJVRjsKIHN0YXRpYyBpbnQgbWluX3JjdmJ1ZiA9IFNPQ0tfTUlOX1JDVkJVRjsKK3N0 YXRpYyBpbnQgbWF4X3NrYl9mcmFncyA9IE1BWF9TS0JfRlJBR1M7CiAKIHN0YXRpYyBpbnQgbmV0 X21zZ193YXJuOwkvKiBVbnVzZWQsIGJ1dCBzdGlsbCBhIHN5c2N0bCAqLwogCkBAIC0zOTIsNiAr MzkzLDE1IEBAIHN0YXRpYyBzdHJ1Y3QgY3RsX3RhYmxlIG5ldF9jb3JlX3RhYmxlW10gPSB7CiAJ CS5tb2RlCQk9IDA2NDQsCiAJCS5wcm9jX2hhbmRsZXIJPSBwcm9jX2RvaW50dmVjCiAJfSwKKwl7 CisJCS5wcm9jbmFtZQk9ICJtYXhfc2tiX2ZyYWdzIiwKKwkJLmRhdGEJCT0gJnN5c2N0bF9tYXhf c2tiX2ZyYWdzLAorCQkubWF4bGVuCQk9IHNpemVvZihpbnQpLAorCQkubW9kZQkJPSAwNjQ0LAor CQkucHJvY19oYW5kbGVyCT0gcHJvY19kb2ludHZlY19taW5tYXgsCisJCS5leHRyYTEJCT0gJm9u ZSwKKwkJLmV4dHJhMgkJPSAmbWF4X3NrYl9mcmFncywKKwl9LAogCXsgfQogfTsKIApkaWZmIC0t Z2l0IGEvbmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2NC90Y3AuYwppbmRleCA5YzEyNDFlLi4wMzZh NzZiIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3AuYworKysgYi9uZXQvaXB2NC90Y3AuYwpAQCAt OTM5LDcgKzkzOSw3IEBAIG5ld19zZWdtZW50OgogCiAJCWkgPSBza2Jfc2hpbmZvKHNrYiktPm5y X2ZyYWdzOwogCQljYW5fY29hbGVzY2UgPSBza2JfY2FuX2NvYWxlc2NlKHNrYiwgaSwgcGFnZSwg b2Zmc2V0KTsKLQkJaWYgKCFjYW5fY29hbGVzY2UgJiYgaSA+PSBNQVhfU0tCX0ZSQUdTKSB7CisJ CWlmICghY2FuX2NvYWxlc2NlICYmIGkgPj0gc3lzY3RsX21heF9za2JfZnJhZ3MpIHsKIAkJCXRj cF9tYXJrX3B1c2godHAsIHNrYik7CiAJCQlnb3RvIG5ld19zZWdtZW50OwogCQl9CkBAIC0xMjEy LDcgKzEyMTIsNyBAQCBuZXdfc2VnbWVudDoKIAogCQkJaWYgKCFza2JfY2FuX2NvYWxlc2NlKHNr YiwgaSwgcGZyYWctPnBhZ2UsCiAJCQkJCSAgICAgIHBmcmFnLT5vZmZzZXQpKSB7Ci0JCQkJaWYg KGkgPT0gTUFYX1NLQl9GUkFHUyB8fCAhc2cpIHsKKwkJCQlpZiAoaSA9PSBzeXNjdGxfbWF4X3Nr Yl9mcmFncyB8fCAhc2cpIHsKIAkJCQkJdGNwX21hcmtfcHVzaCh0cCwgc2tiKTsKIAkJCQkJZ290 byBuZXdfc2VnbWVudDsKIAkJCQl9Ci0tIAoyLjEuMAoKCkZyb20gY2Q2MmE2MzY4MjMxZTI5NDU1 ZjJjNDRiZjc3MjQwM2I1ZDFiZGIxMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2l2 YSBSZWRkeSBLYWxsYW0gPHNpdmEua2FsbGFtQGJyb2FkY29tLmNvbT4KRGF0ZTogV2VkLCAzIEZl YiAyMDE2IDE0OjA5OjM4ICswNTMwClN1YmplY3Q6IFtQQVRDSCAyMi80N10gdGczOiBGaXggZm9y IHRnMyB0cmFuc21pdCBxdWV1ZSAwIHRpbWVkIG91dCB3aGVuIHRvbwogbWFueSBnc29fc2VncwoK WyBVcHN0cmVhbSBjb21taXQgYjdkOTg3Mjk1Yzc0NTAwYjczM2EwYmEwN2Y5YTliY2M0MDc0ZmE4 MyBdCgp0ZzNfdHNvX2J1ZygpIGNhbiBoaXQgYSBjb25kaXRpb24gd2hlcmUgdGhlIGVudGlyZSB0 eCByaW5nIGlzIG5vdCBiaWcKZW5vdWdoIHRvIHNlZ21lbnQgdGhlIEdTTyBwYWNrZXQuIEZvciBl eGFtcGxlLCBpZiBNU1MgaXMgdmVyeSBzbWFsbCwKZ3NvX3NlZ3MgY2FuIGV4Y2VlZCB0aGUgdHgg cmluZyBzaXplLiBXaGVuIHdlIGhpdCB0aGUgY29uZGl0aW9uLCBpdAp3aWxsIGNhdXNlIHR4IHRp bWVvdXQuCgp0ZzNfdHNvX2J1ZygpIGlzIGNhbGxlZCB0byBoYW5kbGUgVFNPIGFuZCBETUEgaGFy ZHdhcmUgYnVncy4KRm9yIFRTTyBidWdzLCBpZiB0ZzNfdHNvX2J1ZygpIGNhbm5vdCBzdWNjZWVk LCB3ZSBoYXZlIHRvIGRyb3AgdGhlIHBhY2tldC4KRm9yIERNQSBidWdzLCB3ZSBjYW4gc3RpbGwg ZmFsbCBiYWNrIHRvIGxpbmVhcml6ZSB0aGUgU0tCIGFuZCBsZXQgdGhlCmhhcmR3YXJlIHRyYW5z bWl0IHRoZSBUU08gcGFja2V0LgoKVGhpcyBwYXRjaCBhZGRzIGEgZnVuY3Rpb24gdGczX3Rzb19i dWdfZ3NvX2NoZWNrKCkgdG8gY2hlY2sgaWYgdGhlcmUKYXJlIGVub3VnaCB0eCBkZXNjcmlwdG9y cyBmb3IgR1NPIGJlZm9yZSBjYWxsaW5nIHRnM190c29fYnVnKCkuClRoZSBjYWxsZXIgd2lsbCB0 aGVuIGhhbmRsZSB0aGUgZXJyb3IgYXBwcm9wcmlhdGVseSAtIGRyb3Agb3IKbGluZXJhaXplIHRo ZSBTS0IuCgp2MjogQ29ycmVjdGVkIHBhdGNoIGRlc2NyaXB0aW9uIHRvIGF2b2lkIGNvbmZ1c2lv bi4KClNpZ25lZC1vZmYtYnk6IFNpdmEgUmVkZHkgS2FsbGFtIDxzaXZhLmthbGxhbUBicm9hZGNv bS5jb20+ClNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQ2hhbiA8bWNoYW5AYnJvYWRjb20uY29tPgpB Y2tlZC1ieTogUHJhc2hhbnQgU3JlZWRoYXJhbiA8cHJhc2hhbnRAYnJvYWRjb20uY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMgfCAyNSArKysrKysrKysrKysrKysrKysr LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jCmluZGV4IDc5Nzg5ZDguLmNhNWFjNWQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jCkBAIC03ODMzLDYgKzc4MzMsMTQgQEAgc3Rh dGljIGludCB0aWdvbjNfZG1hX2h3YnVnX3dvcmthcm91bmQoc3RydWN0IHRnM19uYXBpICp0bmFw aSwKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgYm9vbCB0ZzNfdHNvX2J1Z19nc29fY2hlY2so c3RydWN0IHRnM19uYXBpICp0bmFwaSwgc3RydWN0IHNrX2J1ZmYgKnNrYikKK3sKKwkvKiBDaGVj ayBpZiB3ZSB3aWxsIG5ldmVyIGhhdmUgZW5vdWdoIGRlc2NyaXB0b3JzLAorCSAqIGFzIGdzb19z ZWdzIGNhbiBiZSBtb3JlIHRoYW4gY3VycmVudCByaW5nIHNpemUKKwkgKi8KKwlyZXR1cm4gc2ti X3NoaW5mbyhza2IpLT5nc29fc2VncyA8IHRuYXBpLT50eF9wZW5kaW5nIC8gMzsKK30KKwogc3Rh dGljIG5ldGRldl90eF90IHRnM19zdGFydF94bWl0KHN0cnVjdCBza19idWZmICosIHN0cnVjdCBu ZXRfZGV2aWNlICopOwogCiAvKiBVc2UgR1NPIHRvIHdvcmthcm91bmQgYWxsIFRTTyBwYWNrZXRz IHRoYXQgbWVldCBIVyBidWcgY29uZGl0aW9ucwpAQCAtNzkzNiwxNCArNzk0NCwxOSBAQCBzdGF0 aWMgbmV0ZGV2X3R4X3QgdGczX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IG5ldF9kZXZpY2UgKmRldikKIAkJICogdmxhbiBlbmNhcHN1bGF0ZWQuCiAJCSAqLwogCQlpZiAo c2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF84MDIxUSkgfHwKLQkJICAgIHNrYi0+cHJvdG9j b2wgPT0gaHRvbnMoRVRIX1BfODAyMUFEKSkKLQkJCXJldHVybiB0ZzNfdHNvX2J1Zyh0cCwgdG5h cGksIHR4cSwgc2tiKTsKKwkJICAgIHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfODAyMUFE KSkgeworCQkJaWYgKHRnM190c29fYnVnX2dzb19jaGVjayh0bmFwaSwgc2tiKSkKKwkJCQlyZXR1 cm4gdGczX3Rzb19idWcodHAsIHRuYXBpLCB0eHEsIHNrYik7CisJCQlnb3RvIGRyb3A7CisJCX0K IAogCQlpZiAoIXNrYl9pc19nc29fdjYoc2tiKSkgewogCQkJaWYgKHVubGlrZWx5KChFVEhfSExF TiArIGhkcl9sZW4pID4gODApICYmCi0JCQkgICAgdGczX2ZsYWcodHAsIFRTT19CVUcpKQotCQkJ CXJldHVybiB0ZzNfdHNvX2J1Zyh0cCwgdG5hcGksIHR4cSwgc2tiKTsKLQorCQkJICAgIHRnM19m bGFnKHRwLCBUU09fQlVHKSkgeworCQkJCWlmICh0ZzNfdHNvX2J1Z19nc29fY2hlY2sodG5hcGks IHNrYikpCisJCQkJCXJldHVybiB0ZzNfdHNvX2J1Zyh0cCwgdG5hcGksIHR4cSwgc2tiKTsKKwkJ CQlnb3RvIGRyb3A7CisJCQl9CiAJCQlpcF9jc3VtID0gaXBoLT5jaGVjazsKIAkJCWlwX3RvdF9s ZW4gPSBpcGgtPnRvdF9sZW47CiAJCQlpcGgtPmNoZWNrID0gMDsKQEAgLTgwNzUsNyArODA4OCw3 IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB0ZzNfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWlmICh3b3VsZF9oaXRfaHdidWcpIHsKIAkJdGcz X3R4X3NrYl91bm1hcCh0bmFwaSwgdG5hcGktPnR4X3Byb2QsIGkpOwogCi0JCWlmIChtc3MpIHsK KwkJaWYgKG1zcyAmJiB0ZzNfdHNvX2J1Z19nc29fY2hlY2sodG5hcGksIHNrYikpIHsKIAkJCS8q IElmIGl0J3MgYSBUU08gcGFja2V0LCBkbyBHU08gaW5zdGVhZCBvZgogCQkJICogYWxsb2NhdGlu ZyBhbmQgY29weWluZyB0byBhIGxhcmdlIGxpbmVhciBTS0IKIAkJCSAqLwotLSAKMi4xLjAKCgpG cm9tIDAwOTBkMDNlZDdhMDg1MWYwMGVhZGU1OWVlZDhiYmJhNGIwZTE2NGMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFNhbmRlZXAgUGlsbGFpIDxzYW5waWxsYUBjaXNjby5jb20+CkRh dGU6IFdlZCwgMyBGZWIgMjAxNiAxNDo0MDo0NCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggMjMvNDdd IGVuaWM6IGluY3JlbWVudCBkZXZjbWQyIHJlc3VsdCByaW5nIGluIGNhc2Ugb2YgdGltZW91dAoK WyBVcHN0cmVhbSBjb21taXQgY2E3ZjQxYTQ5NTdiODcyNTc3ODA3MTY5YmQ3NDY0YjM2YWFlOWI5 YyBdCgpGaXJtd2FyZSBwb3N0cyB0aGUgZGV2Y21kIHJlc3VsdCBpbiByZXN1bHQgcmluZy4gSW4g Y2FzZSBvZiB0aW1lb3V0LCBkcml2ZXIKZG9lcyBub3QgaW5jcmVtZW50IHRoZSBjdXJyZW50IHJl c3VsdCBwb2ludGVyIGFuZCBmaXJtd2FyZSBjb3VsZCBwb3N0IHRoZQpyZXN1bHQgYWZ0ZXIgdGlt ZW91dCBoYXMgb2NjdXJyZWQuIER1cmluZyBuZXh0IGRldmNtZCwgZHJpdmVyIHdvdWxkIGJlCnJl YWRpbmcgdGhlIHJlc3VsdCBvZiBwcmV2aW91cyBkZXZjbWQuCgpGaXggdGhpcyBieSBpbmNyZW1l bnRpbmcgcmVzdWx0IGV2ZW4gaW4gY2FzZSBvZiB0aW1lb3V0LgoKRml4ZXM6IDM3M2ZiMDg3M2Q0 MyAoImVuaWM6IGFkZCBkZXZjbWQyIikKU2lnbmVkLW9mZi1ieTogU2FuZGVlcCBQaWxsYWkgPHNh bnBpbGxhQGNpc2NvLmNvbT4KU2lnbmVkLW9mZi1ieTogR292aW5kYXJhanVsdSBWYXJhZGFyYWph biA8X2dvdmluZEBnbXguY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvY2lzY28vZW5pYy9lbmlj LmggICAgIHwgIDIgKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Npc2NvL2VuaWMvdm5pY19kZXYu YyB8IDE5ICsrKysrKysrKysrKy0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9u cygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9j aXNjby9lbmljL2VuaWMuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Npc2NvL2VuaWMvZW5pYy5o CmluZGV4IDE2NzFmYTMuLjdiYTZkNTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2Npc2NvL2VuaWMvZW5pYy5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Npc2NvL2VuaWMv ZW5pYy5oCkBAIC0zMyw3ICszMyw3IEBACiAKICNkZWZpbmUgRFJWX05BTUUJCSJlbmljIgogI2Rl ZmluZSBEUlZfREVTQ1JJUFRJT04JCSJDaXNjbyBWSUMgRXRoZXJuZXQgTklDIERyaXZlciIKLSNk ZWZpbmUgRFJWX1ZFUlNJT04JCSIyLjMuMC4xMiIKKyNkZWZpbmUgRFJWX1ZFUlNJT04JCSIyLjMu MC4yMCIKICNkZWZpbmUgRFJWX0NPUFlSSUdIVAkJIkNvcHlyaWdodCAyMDA4LTIwMTMgQ2lzY28g U3lzdGVtcywgSW5jIgogCiAjZGVmaW5lIEVOSUNfQkFSU19NQVgJCTYKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2Npc2NvL2VuaWMvdm5pY19kZXYuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Npc2NvL2VuaWMvdm5pY19kZXYuYwppbmRleCAxZmZkMTA1Li4xZmRmNWZlIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaXNjby9lbmljL3ZuaWNfZGV2LmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2lzY28vZW5pYy92bmljX2Rldi5jCkBAIC0yOTgsNyArMjk4 LDggQEAgc3RhdGljIGludCBfdm5pY19kZXZfY21kMihzdHJ1Y3Qgdm5pY19kZXYgKnZkZXYsIGVu dW0gdm5pY19kZXZjbWRfY21kIGNtZCwKIAkJCSAgaW50IHdhaXQpCiB7CiAJc3RydWN0IGRldmNt ZDJfY29udHJvbGxlciAqZGMyYyA9IHZkZXYtPmRldmNtZDI7Ci0Jc3RydWN0IGRldmNtZDJfcmVz dWx0ICpyZXN1bHQgPSBkYzJjLT5yZXN1bHQgKyBkYzJjLT5uZXh0X3Jlc3VsdDsKKwlzdHJ1Y3Qg ZGV2Y21kMl9yZXN1bHQgKnJlc3VsdDsKKwl1OCBjb2xvcjsKIAl1bnNpZ25lZCBpbnQgaTsKIAlp bnQgZGVsYXksIGVycjsKIAl1MzIgZmV0Y2hfaW5kZXgsIG5ld19wb3N0ZWQ7CkBAIC0zMzYsMTMg KzMzNywxNyBAQCBzdGF0aWMgaW50IF92bmljX2Rldl9jbWQyKHN0cnVjdCB2bmljX2RldiAqdmRl diwgZW51bSB2bmljX2RldmNtZF9jbWQgY21kLAogCWlmIChkYzJjLT5jbWRfcmluZ1twb3N0ZWRd LmZsYWdzICYgREVWQ01EMl9GTk9SRVNVTFQpCiAJCXJldHVybiAwOwogCisJcmVzdWx0ID0gZGMy Yy0+cmVzdWx0ICsgZGMyYy0+bmV4dF9yZXN1bHQ7CisJY29sb3IgPSBkYzJjLT5jb2xvcjsKKwor CWRjMmMtPm5leHRfcmVzdWx0Kys7CisJaWYgKGRjMmMtPm5leHRfcmVzdWx0ID09IGRjMmMtPnJl c3VsdF9zaXplKSB7CisJCWRjMmMtPm5leHRfcmVzdWx0ID0gMDsKKwkJZGMyYy0+Y29sb3IgPSBk YzJjLT5jb2xvciA/IDAgOiAxOworCX0KKwogCWZvciAoZGVsYXkgPSAwOyBkZWxheSA8IHdhaXQ7 IGRlbGF5KyspIHsKLQkJaWYgKHJlc3VsdC0+Y29sb3IgPT0gZGMyYy0+Y29sb3IpIHsKLQkJCWRj MmMtPm5leHRfcmVzdWx0Kys7Ci0JCQlpZiAoZGMyYy0+bmV4dF9yZXN1bHQgPT0gZGMyYy0+cmVz dWx0X3NpemUpIHsKLQkJCQlkYzJjLT5uZXh0X3Jlc3VsdCA9IDA7Ci0JCQkJZGMyYy0+Y29sb3Ig PSBkYzJjLT5jb2xvciA/IDAgOiAxOwotCQkJfQorCQlpZiAocmVzdWx0LT5jb2xvciA9PSBjb2xv cikgewogCQkJaWYgKHJlc3VsdC0+ZXJyb3IpIHsKIAkJCQllcnIgPSByZXN1bHQtPmVycm9yOwog CQkJCWlmIChlcnIgIT0gRVJSX0VDTURVTktOT1dOIHx8Ci0tIAoyLjEuMAoKCkZyb20gMDU1YzBh ODIyYmRlY2E0YjBlYmRjN2EzNGQ5MWU5Y2VmM2FkMWFkMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBXZWQsIDMgRmVi IDIwMTYgMjM6MzM6MzAgKzA4MDAKU3ViamVjdDogW1BBVENIIDI0LzQ3XSBzY3RwOiB0cmFuc2xh dGUgbmV0d29yayBvcmRlciB0byBob3N0IG9yZGVyIHdoZW4gdXNlcnMKIGdldCBhIGhtYWNpZAoK WyBVcHN0cmVhbSBjb21taXQgN2E4NGJkNDY2NDdmZjE4MWViMjY1OWZkYzk5NTkwZTZmMTZlNTAx ZCBdCgpDb21taXQgZWQ1YTM3N2Q4N2RjICgic2N0cDogdHJhbnNsYXRlIGhvc3Qgb3JkZXIgdG8g bmV0d29yayBvcmRlciB3aGVuCnNldHRpbmcgYSBobWFjaWQiKSBjb3JyZWN0ZWQgdGhlIGhtYWNp ZCBieXRlLW9yZGVyIHdoZW4gc2V0dGluZyBhIGhtYWNpZC4KYnV0IHRoZSBzYW1lIGlzc3VlIGFs c28gZXhpc3RzIG9uIGdldHRpbmcgYSBobWFjaWQuCgpXZSBmaXggaXQgYnkgY2hhbmdpbmcgaG1h Y2lkcyB0byBob3N0IG9yZGVyIHdoZW4gdXNlcnMgZ2V0IHRoZW0gd2l0aApnZXRzb2Nrb3B0LgoK Rml4ZXM6IENvbW1pdCBlZDVhMzc3ZDg3ZGMgKCJzY3RwOiB0cmFuc2xhdGUgaG9zdCBvcmRlciB0 byBuZXR3b3JrIG9yZGVyIHdoZW4gc2V0dGluZyBhIGhtYWNpZCIpClNpZ25lZC1vZmYtYnk6IFhp biBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KQWNrZWQtYnk6IE1hcmNlbG8gUmljYXJkbyBM ZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvc29ja2V0LmMgfCA5 ICsrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmlu ZGV4IDA2YTljZmIuLmJlMTQ4OWYgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisrKyBi L25ldC9zY3RwL3NvY2tldC5jCkBAIC01NTQyLDYgKzU1NDIsNyBAQCBzdGF0aWMgaW50IHNjdHBf Z2V0c29ja29wdF9obWFjX2lkZW50KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwKIAlzdHJ1Y3Qg c2N0cF9obWFjX2FsZ29fcGFyYW0gKmhtYWNzOwogCV9fdTE2IGRhdGFfbGVuID0gMDsKIAl1MzIg bnVtX2lkZW50czsKKwlpbnQgaTsKIAogCWlmICghZXAtPmF1dGhfZW5hYmxlKQogCQlyZXR1cm4g LUVBQ0NFUzsKQEAgLTU1NTksOCArNTU2MCwxMiBAQCBzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29w dF9obWFjX2lkZW50KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwKIAkJcmV0dXJuIC1FRkFVTFQ7 CiAJaWYgKHB1dF91c2VyKG51bV9pZGVudHMsICZwLT5zaG1hY19udW1faWRlbnRzKSkKIAkJcmV0 dXJuIC1FRkFVTFQ7Ci0JaWYgKGNvcHlfdG9fdXNlcihwLT5zaG1hY19pZGVudHMsIGhtYWNzLT5o bWFjX2lkcywgZGF0YV9sZW4pKQotCQlyZXR1cm4gLUVGQVVMVDsKKwlmb3IgKGkgPSAwOyBpIDwg bnVtX2lkZW50czsgaSsrKSB7CisJCV9fdTE2IGhtYWNpZCA9IG50b2hzKGhtYWNzLT5obWFjX2lk c1tpXSk7CisKKwkJaWYgKGNvcHlfdG9fdXNlcigmcC0+c2htYWNfaWRlbnRzW2ldLCAmaG1hY2lk LCBzaXplb2YoX191MTYpKSkKKwkJCXJldHVybiAtRUZBVUxUOworCX0KIAlyZXR1cm4gMDsKIH0K IAotLSAKMi4xLjAKCgpGcm9tIDE2M2NjNWQyNTJlNDJhYmJhYjJkOGE3NzgwZjAyODQ4M2U0OWI3 MjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFsZXhhbmRlciBEdXljayA8YWR1eWNr QG1pcmFudGlzLmNvbT4KRGF0ZTogVHVlLCA5IEZlYiAyMDE2IDA2OjE0OjQzIC0wODAwClN1Ympl Y3Q6IFtQQVRDSCAyNS80N10gbmV0OiBDb3B5IGlubmVyIEwzIGFuZCBMNCBoZWFkZXJzIGFzIHVu YWxpZ25lZCBvbiBHUkUKIFRFQgoKWyBVcHN0cmVhbSBjb21taXQgNzg1NjUyMDhkNzNjYTliNjU0 ZmI5YTZiMTQyMjE0ZDUyZWVlZGZkMSBdCgpUaGlzIHBhdGNoIGNvcnJlY3RzIHRoZSB1bmFsaWdu ZWQgYWNjZXNzZXMgc2VlbiBvbiBHUkUgVEVCIHR1bm5lbHMgd2hlbgpnZW5lcmF0aW5nIGhhc2gg a2V5cy4gIFNwZWNpZmljYWxseSB3aGF0IHRoaXMgcGF0Y2ggZG9lcyBpcyBtYWtlIGl0IHNvIHRo YXQKd2UgZm9yY2UgdGhlIHVzZSBvZiBza2JfY29weV9iaXRzIHdoZW4gdGhlIEdSRSBpbm5lciBo ZWFkZXJzIHdpbGwgYmUKdW5hbGlnbmVkIGR1ZSB0byBORVRfSVBfQUxJR05FRCBiZWluZyBhIG5v bi16ZXJvIHZhbHVlLgoKU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIER1eWNrIDxhZHV5Y2tAbWly YW50aXMuY29tPgpBY2tlZC1ieTogVG9tIEhlcmJlcnQgPHRvbUBoZXJiZXJ0bGFuZC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jIHwgNyArKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNyBp bnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZmxvd19kaXNzZWN0b3IuYyBiL25l dC9jb3JlL2Zsb3dfZGlzc2VjdG9yLmMKaW5kZXggZDc5Njk5Yy4uYjI1OGY0NSAxMDA2NDQKLS0t IGEvbmV0L2NvcmUvZmxvd19kaXNzZWN0b3IuYworKysgYi9uZXQvY29yZS9mbG93X2Rpc3NlY3Rv ci5jCkBAIC0zOTYsNiArMzk2LDEzIEBAIGlwX3Byb3RvX2FnYWluOgogCQkJCWdvdG8gb3V0X2Jh ZDsKIAkJCXByb3RvID0gZXRoLT5oX3Byb3RvOwogCQkJbmhvZmYgKz0gc2l6ZW9mKCpldGgpOwor CisJCQkvKiBDYXAgaGVhZGVycyB0aGF0IHdlIGFjY2VzcyB2aWEgcG9pbnRlcnMgYXQgdGhlCisJ CQkgKiBlbmQgb2YgdGhlIEV0aGVybmV0IGhlYWRlciBhcyBvdXIgbWF4aW11bSBhbGlnbm1lbnQK KwkJCSAqIGF0IHRoYXQgcG9pbnQgaXMgb25seSAyIGJ5dGVzLgorCQkJICovCisJCQlpZiAoTkVU X0lQX0FMSUdOKQorCQkJCWhsZW4gPSBuaG9mZjsKIAkJfQogCiAJCWtleV9jb250cm9sLT5mbGFn cyB8PSBGTE9XX0RJU19FTkNBUFNVTEFUSU9OOwotLSAKMi4xLjAKCgpGcm9tIDE0ODUwZWRkMTJm MzJmYmEwMDZkMjMxMDlmZTU3MzllMjQ4M2NjOTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEFsZXhhbmRlciBEdXljayA8YWR1eWNrQG1pcmFudGlzLmNvbT4KRGF0ZTogVHVlLCA5IEZl YiAyMDE2IDAyOjQ5OjU0IC0wODAwClN1YmplY3Q6IFtQQVRDSCAyNi80N10gZmxvd19kaXNzZWN0 b3I6IEZpeCB1bmFsaWduZWQgYWNjZXNzIGluCiBfX3NrYl9mbG93X2Rpc3NlY3RvciB3aGVuIHVz ZWQgYnkgZXRoX2dldF9oZWFkbGVuCgpbIFVwc3RyZWFtIGNvbW1pdCA0NjE1NDdmMzE1ODk3OGMx ODBkNzQ0ODRkNThlODJiZTliOGU3MzU3IF0KClRoaXMgcGF0Y2ggZml4ZXMgYW4gaXNzdWUgd2l0 aCB1bmFsaWduZWQgYWNjZXNzZXMgd2hlbiB1c2luZwpldGhfZ2V0X2hlYWRsZW4gb24gYSBwYWdl IHRoYXQgd2FzIERNQSBhbGlnbmVkIGluc3RlYWQgb2YgYmVpbmcgSVAgYWxpZ25lZC4KVGhlIGZh Y3QgaXMgd2hlbiB0cnlpbmcgdG8gY2hlY2sgdGhlIGxlbmd0aCB3ZSBkb24ndCBuZWVkIHRvIGJl IGxvb2tpbmcgYXQKdGhlIGZsb3cgbGFiZWwgc28gd2UgY2FuIHJlb3JkZXIgdGhlIGNoZWNrcyB0 byBmaXJzdCBjaGVjayBpZiB3ZSBhcmUKc3VwcG9zZWQgdG8gZ2F0aGVyIHRoZSBmbG93IGxhYmVs IGFuZCB0aGVuIG1ha2UgdGhlIGNhbGwgdG8gYWN0dWFsbHkgZ2V0Cml0LgoKdjI6ICBVcGRhdGVk IHBhdGggc28gdGhhdCBlaXRoZXIgU1RPUF9BVF9GTE9XX0xBQkVMIG9yIEtFWV9GTE9XX0xBQkVM IGNhbgogICAgIGNhdXNlIHVzIHRvIGNoZWNrIGZvciB0aGUgZmxvdyBsYWJlbC4KClJlcG9ydGVk LWJ5OiBTb3dtaW5pIFZhcmFkaGFuIDxzb3dtaW5pLnZhcmFkaGFuQG9yYWNsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IEFsZXhhbmRlciBEdXljayA8YWR1eWNrQG1pcmFudGlzLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3Jl L2Zsb3dfZGlzc2VjdG9yLmMgfCA5ICsrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9mbG93X2Rpc3Nl Y3Rvci5jIGIvbmV0L2NvcmUvZmxvd19kaXNzZWN0b3IuYwppbmRleCBiMjU4ZjQ1Li4xMmU3MDAz IDEwMDY0NAotLS0gYS9uZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jCisrKyBiL25ldC9jb3JlL2Zs b3dfZGlzc2VjdG9yLmMKQEAgLTIwOCw3ICsyMDgsNiBAQCBpcDoKIAljYXNlIGh0b25zKEVUSF9Q X0lQVjYpOiB7CiAJCWNvbnN0IHN0cnVjdCBpcHY2aGRyICppcGg7CiAJCXN0cnVjdCBpcHY2aGRy IF9pcGg7Ci0JCV9fYmUzMiBmbG93X2xhYmVsOwogCiBpcHY2OgogCQlpcGggPSBfX3NrYl9oZWFk ZXJfcG9pbnRlcihza2IsIG5ob2ZmLCBzaXplb2YoX2lwaCksIGRhdGEsIGhsZW4sICZfaXBoKTsK QEAgLTIzMCw4ICsyMjksMTIgQEAgaXB2NjoKIAkJCWtleV9jb250cm9sLT5hZGRyX3R5cGUgPSBG TE9XX0RJU1NFQ1RPUl9LRVlfSVBWNl9BRERSUzsKIAkJfQogCi0JCWZsb3dfbGFiZWwgPSBpcDZf Zmxvd2xhYmVsKGlwaCk7Ci0JCWlmIChmbG93X2xhYmVsKSB7CisJCWlmICgoZGlzc2VjdG9yX3Vz ZXNfa2V5KGZsb3dfZGlzc2VjdG9yLAorCQkJCQlGTE9XX0RJU1NFQ1RPUl9LRVlfRkxPV19MQUJF TCkgfHwKKwkJICAgICAoZmxhZ3MgJiBGTE9XX0RJU1NFQ1RPUl9GX1NUT1BfQVRfRkxPV19MQUJF TCkpICYmCisJCSAgICBpcDZfZmxvd2xhYmVsKGlwaCkpIHsKKwkJCV9fYmUzMiBmbG93X2xhYmVs ID0gaXA2X2Zsb3dsYWJlbChpcGgpOworCiAJCQlpZiAoZGlzc2VjdG9yX3VzZXNfa2V5KGZsb3df ZGlzc2VjdG9yLAogCQkJCQkgICAgICAgRkxPV19ESVNTRUNUT1JfS0VZX0ZMT1dfTEFCRUwpKSB7 CiAJCQkJa2V5X3RhZ3MgPSBza2JfZmxvd19kaXNzZWN0b3JfdGFyZ2V0KGZsb3dfZGlzc2VjdG9y LAotLSAKMi4xLjAKCgpGcm9tIGZkMGExMzliOGMyZjg3MWM2YmFmOTIyMWFhZGFhYWIxZjllMmIw OTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVs QGlvZ2VhcmJveC5uZXQ+CkRhdGU6IFdlZCwgMTAgRmViIDIwMTYgMTY6NDc6MTEgKzAxMDAKU3Vi amVjdDogW1BBVENIIDI3LzQ3XSBicGY6IGZpeCBicmFuY2ggb2Zmc2V0IGFkanVzdG1lbnQgb24g YmFja2p1bXBzIGFmdGVyCiBwYXRjaGluZyBjdHggZXhwYW5zaW9uCgpbIFVwc3RyZWFtIGNvbW1p dCBhMWIxNGQyN2VkMDk2NTgzODM1MGYxMzc3ZmY5N2M5M2VlMzgzNDkyIF0KCldoZW4gY3R4IGFj Y2VzcyBpcyB1c2VkLCB0aGUga2VybmVsIG9mdGVuIG5lZWRzIHRvIGV4cGFuZC9yZXdyaXRlCmlu c3RydWN0aW9ucywgc28gYWZ0ZXIgdGhhdCBwYXRjaGluZywgYnJhbmNoIG9mZnNldHMgaGF2ZSB0 byBiZQphZGp1c3RlZCBmb3IgYm90aCBmb3J3YXJkIGFuZCBiYWNrd2FyZCBqdW1wcyBpbiB0aGUg bmV3IGVCUEYgcHJvZ3JhbSwKYnV0IGZvciBiYWNrd2FyZCBqdW1wcyBpdCBmYWlscyB0byBhY2Nv dW50IHRoZSBkZWx0YS4gTWVhbmluZywgZm9yCmV4YW1wbGUsIGlmIHRoZSBleHBhbnNpb24gaGFw cGVucyBleGFjdGx5IG9uIHRoZSBpbnNuIHRoYXQgc2l0cyBhdAp0aGUganVtcCB0YXJnZXQsIGl0 IGRvZXNuJ3QgZml4IHVwIHRoZSBiYWNrIGp1bXAgb2Zmc2V0LgoKQW5hbHlzaXMgb24gd2hhdCB0 aGUgY2hlY2sgaW4gYWRqdXN0X2JyYW5jaGVzKCkgaXMgY3VycmVudGx5IGRvaW5nOgoKICAvKiBh ZGp1c3Qgb2Zmc2V0IG9mIGptcHMgaWYgbmVjZXNzYXJ5ICovCiAgaWYgKGkgPCBwb3MgJiYgaSAr IGluc24tPm9mZiArIDEgPiBwb3MpCiAgICBpbnNuLT5vZmYgKz0gZGVsdGE7CiAgZWxzZSBpZiAo aSA+IHBvcyAmJiBpICsgaW5zbi0+b2ZmICsgMSA8IHBvcykKICAgIGluc24tPm9mZiAtPSBkZWx0 YTsKCkZpcnN0IGNvbmRpdGlvbiAoZm9yd2FyZCBqdW1wcyk6CgogIEJlZm9yZTogICAgICAgICAg ICAgICAgICAgICAgICAgQWZ0ZXI6CgogIGluc25zWzBdICAgICAgICAgICAgICAgICAgICAgICAg aW5zbnNbMF0KICBpbnNuc1sxXSA8LS0tIGkvaW5zbiAgICAgICAgICAgIGluc25zWzFdIDwtLS0g aS9pbnNuCiAgaW5zbnNbMl0gPC0tLSBwb3MgICAgICAgICAgICAgICBpbnNuc1tQXSA8LS0tIHBv cwogIGluc25zWzNdICAgICAgICAgICAgICAgICAgICAgICAgaW5zbnNbUF0gIGAtLS0tLS18IGRl bHRhCiAgaW5zbnNbNF0gPC0tLSB0YXJnZXRfWCAgICAgICAgICBpbnNuc1tQXSAgIGAtLS0tLXwK ICBpbnNuc1s1XSAgICAgICAgICAgICAgICAgICAgICAgIGluc25zWzNdCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnNuc1s0XSA8LS0tIHRhcmdldF9YCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnNuc1s1XQoKRmlyc3QgY2FzZSBpcyBpZiB3ZSBjcm9zcyBw b3MtYm91bmRhcnkgYW5kIHRoZSBqdW1wIGluc3RydWN0aW9uIHdhcwpiZWZvcmUgcG9zLiBUaGlz IGlzIGhhbmRlbGVkIGNvcnJlY3RseS4gSS5lLiBpZiBpID09IHBvcywgdGhlbiB0aGlzCndvdWxk IG1lYW4gb3VyIGp1bXAgdGhhdCB3ZSBjdXJyZW50bHkgY2hlY2sgd2FzIHRoZSBwYXRjaGxldCBp dHNlbGYKdGhhdCB3ZSBqdXN0IGluamVjdGVkLiBTaW5jZSBzdWNoIHBhdGNobGV0cyBhcmUgc2Vs Zi1jb250YWluZWQgYW5kCmhhdmUgbm8gYXdhcmVuZXNzIG9mIGFueSBpbnNucyBiZWZvcmUgb3Ig YWZ0ZXIgdGhlIHBhdGNoZWQgb25lLCB0aGUKZGVsdGEgaXMgY29ycmVjdGx5IG5vdCBhZGp1c3Rl ZC4gQWxzbywgZm9yIHRoZSBzZWNvbmQgY29uZGl0aW9uIGluCmNhc2Ugb2YgaSArIGluc24tPm9m ZiArIDEgPT0gcG9zLCBtZWFucyB3ZSBqdW1wIHRvIHRoYXQgbmV3bHkgcGF0Y2hlZAppbnN0cnVj dGlvbiwgc28gbm8gb2Zmc2V0IGFkanVzdG1lbnQgYXJlIG5lZWRlZC4gVGhhdCBwYXJ0IGlzIGNv cnJlY3QuCgpTZWNvbmQgY29uZGl0aW9uIChiYWNrd2FyZCBqdW1wcyk6CgogIEJlZm9yZTogICAg ICAgICAgICAgICAgICAgICAgICAgQWZ0ZXI6CgogIGluc25zWzBdICAgICAgICAgICAgICAgICAg ICAgICAgaW5zbnNbMF0KICBpbnNuc1sxXSA8LS0tIHRhcmdldF9YICAgICAgICAgIGluc25zWzFd IDwtLS0gdGFyZ2V0X1gKICBpbnNuc1syXSA8LS0tIHBvcyA8LS0gdGFyZ2V0X1kgIGluc25zW1Bd IDwtLS0gcG9zIDwtLSB0YXJnZXRfWQogIGluc25zWzNdICAgICAgICAgICAgICAgICAgICAgICAg aW5zbnNbUF0gIGAtLS0tLS18IGRlbHRhCiAgaW5zbnNbNF0gPC0tLSBpL2luc24gICAgICAgICAg ICBpbnNuc1tQXSAgIGAtLS0tLXwKICBpbnNuc1s1XSAgICAgICAgICAgICAgICAgICAgICAgIGlu c25zWzNdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNuc1s0XSA8LS0tIGkv aW5zbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zbnNbNV0KClNlY29uZCBp bnRlcmVzdGluZyBjYXNlIGlzIHdoZXJlIHdlIGNyb3NzIHBvcy1ib3VuZGFyeSBhbmQgdGhlIGp1 bXAKaW5zdHJ1Y3Rpb24gd2FzIGFmdGVyIHBvcy4gQmFja3dhcmQganVtcCB3aXRoIGkgPT0gcG9z IHdvdWxkIGJlCmltcG9zc2libGUgYW5kIHBvc2UgYSBidWcgc29tZXdoZXJlIGluIHRoZSBwYXRj aGxldCwgc28gdGhlIGZpcnN0CmNvbmRpdGlvbiBjaGVja2luZyBpID4gcG9zIGlzIG9rYXkgb25s eSBieSBpdHNlbGYuIEhvd2V2ZXIsIGkgKwppbnNuLT5vZmYgKyAxIDwgcG9zIGRvZXMgbm90IGFs d2F5cyB3b3JrIGFzIGludGVuZGVkIHRvIHRyaWdnZXIgdGhlCmFkanVzdG1lbnQuIEl0IHdvcmtz IHdoZW4ganVtcCB0YXJnZXRzIHdvdWxkIGJlIGZhciBvZmYgd2hlcmUgdGhlCmRlbHRhIHdvdWxk bid0IG1hdHRlci4gQnV0LCBmb3IgZXhhbXBsZSwgd2hlcmUgdGhlIGZpeGVkIGluc24tPm9mZgpi ZWZvcmUgcG9pbnRlZCB0byBwb3MgKHRhcmdldF9ZKSwgaXQgbm93IHBvaW50cyB0byBwb3MgKyBk ZWx0YSwgc28KdGhhdCBhZGRpdGlvbmFsIHJvb20gbmVlZHMgdG8gYmUgdGFrZW4gaW50byBhY2Nv dW50IGZvciB0aGUgY2hlY2suClRoaXMgbWVhbnMgdGhhdCBpKSBib3RoIHRlc3RzIGhlcmUgbmVl ZCB0byBiZSBhZGp1c3RlZCBpbnRvIHBvcyArIGRlbHRhLAphbmQgaWkpIGZvciB0aGUgc2Vjb25k IGNvbmRpdGlvbiwgdGhlIHRlc3QgbmVlZHMgdG8gYmUgPD0gYXMgcG9zCml0c2VsZiBjYW4gYmUg YSB0YXJnZXQgaW4gdGhlIGJhY2tqdW1wLCB0b28uCgpGaXhlczogOWJhYzNkNmQ1NDhlICgiYnBm OiBhbGxvdyBleHRlbmRlZCBCUEYgcHJvZ3JhbXMgYWNjZXNzIHNrYiBmaWVsZHMiKQpTaWduZWQt b2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQoga2VybmVsL2Jw Zi92ZXJpZmllci5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2Jw Zi92ZXJpZmllci5jCmluZGV4IGQxZDNlOGYuLjJlN2Y3YWIgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9i cGYvdmVyaWZpZXIuYworKysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTIwODIsNyArMjA4 Miw3IEBAIHN0YXRpYyB2b2lkIGFkanVzdF9icmFuY2hlcyhzdHJ1Y3QgYnBmX3Byb2cgKnByb2cs IGludCBwb3MsIGludCBkZWx0YSkKIAkJLyogYWRqdXN0IG9mZnNldCBvZiBqbXBzIGlmIG5lY2Vz c2FyeSAqLwogCQlpZiAoaSA8IHBvcyAmJiBpICsgaW5zbi0+b2ZmICsgMSA+IHBvcykKIAkJCWlu c24tPm9mZiArPSBkZWx0YTsKLQkJZWxzZSBpZiAoaSA+IHBvcyAmJiBpICsgaW5zbi0+b2ZmICsg MSA8IHBvcykKKwkJZWxzZSBpZiAoaSA+IHBvcyArIGRlbHRhICYmIGkgKyBpbnNuLT5vZmYgKyAx IDw9IHBvcyArIGRlbHRhKQogCQkJaW5zbi0+b2ZmIC09IGRlbHRhOwogCX0KIH0KLS0gCjIuMS4w CgoKRnJvbSA4MTg3OTJlNDRmNTE3OGNkODE5OTc2OGUwNzUwZTI4MjAxNTQ5ZDhjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYXkgVm9zYnVyZ2ggPGpheS52b3NidXJnaEBjYW5vbmlj YWwuY29tPgpEYXRlOiBUdWUsIDIgRmViIDIwMTYgMTM6MzU6NTYgLTA4MDAKU3ViamVjdDogW1BB VENIIDI4LzQ3XSBib25kaW5nOiBGaXggQVJQIG1vbml0b3IgdmFsaWRhdGlvbgoKWyBVcHN0cmVh bSBjb21taXQgMjFhNzVmMDkxNWRkZTg2NzQ3MDhiMzlhYmZjZGExMTM5MTFjNDliMSBdCgpUaGUg Y3VycmVudCBsb2dpYyBpbiBib25kX2FycF9yY3Ygd2lsbCBhY2NlcHQgYW4gaW5jb21pbmcgQVJQ IGZvcgp2YWxpZGF0aW9uIGlmIChhKSB0aGUgcmVjZWl2aW5nIHNsYXZlIGlzIGVpdGhlciAiYWN0 aXZlIiAod2hpY2ggaW5jbHVkZXMKdGhlIGN1cnJlbnRseSBhY3RpdmUgc2xhdmUsIG9yIHRoZSBj dXJyZW50IEFSUCBzbGF2ZSkgb3IsIChiKSB0aGVyZSBpcyBhCmN1cnJlbnRseSBhY3RpdmUgc2xh dmUsIGFuZCBpdCBoYXMgcmVjZWl2ZWQgYW4gQVJQIHNpbmNlIGl0IGJlY2FtZSBhY3RpdmUuCkZv ciBjYXNlIChiKSwgdGhlIHJlY2VpdmluZyBzbGF2ZSBpc24ndCB0aGUgY3VycmVudGx5IGFjdGl2 ZSBzbGF2ZSwgYW5kIGlzCnJlY2VpdmluZyB0aGUgb3JpZ2luYWwgYnJvYWRjYXN0IEFSUCByZXF1 ZXN0LCBub3QgYW4gQVJQIHJlcGx5IGZyb20gdGhlCnRhcmdldC4KCglUaGlzIGxvZ2ljIGNhbiBm YWlsIGlmIHRoZXJlIGlzIG5vIGN1cnJlbnRseSBhY3RpdmUgc2xhdmUuICBJbgp0aGlzIHNpdHVh dGlvbiwgdGhlIEFSUCBwcm9iZSBsb2dpYyBjeWNsZXMgdGhyb3VnaCBhbGwgc2xhdmVzLCBhc3Np Z25pbmcKZWFjaCBpbiB0dXJuIGFzIHRoZSAiY3VycmVudF9hcnBfc2xhdmUiIGZvciBvbmUgYXJw X2ludGVydmFsLCB0aGVuIHNldHRpbmcKdGhhdCBvbmUgYXMgImFjdGl2ZSwiIGFuZCBzZW5kaW5n IGFuIEFSUCBwcm9iZSBmcm9tIHRoYXQgc2xhdmUuICBUaGUKY3VycmVudCBsb2dpYyBleHBlY3Rz IHRoZSBBUlAgcmVwbHkgdG8gYXJyaXZlIG9uIHRoZSBzZW5kaW5nCmN1cnJlbnRfYXJwX3NsYXZl LCBob3dldmVyLCBkdWUgdG8gc3dpdGNoIEZEQiB1cGRhdGluZyBkZWxheXMsIHRoZSByZXBseQpt YXkgYmUgZGlyZWN0ZWQgdG8gYW5vdGhlciBzbGF2ZS4KCglUaGlzIGNhbiBhcmlzZSBpZiB0aGUg Ym9uZGluZyBzbGF2ZXMgYW5kIHN3aXRjaCBhcmUgd29ya2luZywgYnV0CnRoZSBBUlAgdGFyZ2V0 IGlzIG5vdCByZXNwb25kaW5nLiAgV2hlbiB0aGUgQVJQIHRhcmdldCByZWNvdmVycywgYQpjb25k aXRpb24gbWF5IHJlc3VsdCB3aGVyZWluIHRoZSBBUlAgdGFyZ2V0IGhvc3QgcmVwbGllcyBmYXN0 ZXIgdGhhbiB0aGUKc3dpdGNoIGNhbiB1cGRhdGUgaXRzIGZvcndhcmRpbmcgdGFibGUsIGNhdXNp bmcgZWFjaCBBUlAgcmVwbHkgdG8gYmUgc2VudAp0byB0aGUgcHJldmlvdXMgY3VycmVudF9hcnBf c2xhdmUuICBUaGlzIHdpbGwgbmV2ZXIgcGFzcyB0aGUgbG9naWMgaW4KYm9uZF9hcnBfcmN2LCBh cyBuZWl0aGVyIG9mIHRoZSBhYm92ZSBjb25kaXRpb25zIChhKSBvciAoYikgYXJlIG1ldC4KCglT b21lIGV4cGVyaW1lbnRhdGlvbiBvbiBhIExBTiBzaG93cyBBUlAgcmVwbHkgcm91bmQgdHJpcHMg aW4gdGhlCjIwMCB1c2VjIHJhbmdlLCBidXQgbXkgYXZhaWxhYmxlIHN3aXRjaGVzIG5ldmVyIHVw ZGF0ZSB0aGVpciBGREIgaW4gbGVzcwp0aGFuIDQwMDAgdXNlYy4KCglUaGlzIHBhdGNoIGNoYW5n ZXMgdGhlIGxvZ2ljIGluIGJvbmRfYXJwX3JjdiB0byBhZGRpdGlvbmFsbHkKYWNjZXB0IGFuIEFS UCByZXBseSBmb3IgdmFsaWRhdGlvbiBvbiBhbnkgc2xhdmUgaWYgdGhlcmUgaXMgYSBjdXJyZW50 IEFSUApzbGF2ZSBhbmQgaXQgc2VudCBhbiBBUlAgcHJvYmUgZHVyaW5nIHRoZSBwcmV2aW91cyBh cnBfaW50ZXJ2YWwuCgpGaXhlczogYWVlYTY0YWM3MTdhICgiYm9uZGluZzogZG9uJ3QgdHJ1c3Qg YXJwIHJlcXVlc3RzIHVubGVzcyBhY3RpdmUgc2xhdmUgcmVhbGx5IHdvcmtzIikKQ2M6IFZlYWNl c2xhdiBGYWxpY28gPHZmYWxpY29AZ21haWwuY29tPgpDYzogQW5keSBHb3Nwb2RhcmVrIDxnb3Nw b0BjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYXkgVm9zYnVyZ2ggPGpheS52 b3NidXJnaEBjYW5vbmljYWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyB8 IDM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDI4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFp bi5jCmluZGV4IGYxNjkyZTQuLjI4YmJjYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2JvbmRp bmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYwpAQCAt MjE0LDYgKzIxNCw4IEBAIHN0YXRpYyB2b2lkIGJvbmRfdW5pbml0KHN0cnVjdCBuZXRfZGV2aWNl ICpib25kX2Rldik7CiBzdGF0aWMgc3RydWN0IHJ0bmxfbGlua19zdGF0czY0ICpib25kX2dldF9z dGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqYm9uZF9kZXYsCiAJCQkJCQlzdHJ1Y3QgcnRubF9saW5r X3N0YXRzNjQgKnN0YXRzKTsKIHN0YXRpYyB2b2lkIGJvbmRfc2xhdmVfYXJyX2hhbmRsZXIoc3Ry dWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKK3N0YXRpYyBib29sIGJvbmRfdGltZV9pbl9pbnRlcnZh bChzdHJ1Y3QgYm9uZGluZyAqYm9uZCwgdW5zaWduZWQgbG9uZyBsYXN0X2FjdCwKKwkJCQkgIGlu dCBtb2QpOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gR2VuZXJhbCByb3V0aW5l cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKQEAgLTI0MTgsNyArMjQyMCw3IEBA IGludCBib25kX2FycF9yY3YoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGJvbmRp bmcgKmJvbmQsCiAJCSBzdHJ1Y3Qgc2xhdmUgKnNsYXZlKQogewogCXN0cnVjdCBhcnBoZHIgKmFy cCA9IChzdHJ1Y3QgYXJwaGRyICopc2tiLT5kYXRhOwotCXN0cnVjdCBzbGF2ZSAqY3Vycl9hY3Rp dmVfc2xhdmU7CisJc3RydWN0IHNsYXZlICpjdXJyX2FjdGl2ZV9zbGF2ZSwgKmN1cnJfYXJwX3Ns YXZlOwogCXVuc2lnbmVkIGNoYXIgKmFycF9wdHI7CiAJX19iZTMyIHNpcCwgdGlwOwogCWludCBh bGVuLCBpc19hcnAgPSBza2ItPnByb3RvY29sID09IF9fY3B1X3RvX2JlMTYoRVRIX1BfQVJQKTsK QEAgLTI0NjUsMjYgKzI0NjcsNDEgQEAgaW50IGJvbmRfYXJwX3Jjdihjb25zdCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgYm9uZGluZyAqYm9uZCwKIAkJICAgICAmc2lwLCAmdGlwKTsKIAog CWN1cnJfYWN0aXZlX3NsYXZlID0gcmN1X2RlcmVmZXJlbmNlKGJvbmQtPmN1cnJfYWN0aXZlX3Ns YXZlKTsKKwljdXJyX2FycF9zbGF2ZSA9IHJjdV9kZXJlZmVyZW5jZShib25kLT5jdXJyZW50X2Fy cF9zbGF2ZSk7CiAKLQkvKiBCYWNrdXAgc2xhdmVzIHdvbid0IHNlZSB0aGUgQVJQIHJlcGx5LCBi dXQgZG8gY29tZSB0aHJvdWdoCi0JICogaGVyZSBmb3IgZWFjaCBBUlAgcHJvYmUgKHNvIHdlIHN3 YXAgdGhlIHNpcC90aXAgdG8gdmFsaWRhdGUKLQkgKiB0aGUgcHJvYmUpLiAgSW4gYSAicmVkdW5k YW50IHN3aXRjaCwgY29tbW9uIHJvdXRlciIgdHlwZSBvZgotCSAqIGNvbmZpZ3VyYXRpb24sIHRo ZSBBUlAgcHJvYmUgd2lsbCAoaG9wZWZ1bGx5KSB0cmF2ZWwgZnJvbQotCSAqIHRoZSBhY3RpdmUs IHRocm91Z2ggb25lIHN3aXRjaCwgdGhlIHJvdXRlciwgdGhlbiB0aGUgb3RoZXIKLQkgKiBzd2l0 Y2ggYmVmb3JlIHJlYWNoaW5nIHRoZSBiYWNrdXAuCisJLyogV2UgJ3RydXN0JyB0aGUgcmVjZWl2 ZWQgQVJQIGVub3VnaCB0byB2YWxpZGF0ZSBpdCBpZjoKKwkgKgorCSAqIChhKSB0aGUgc2xhdmUg cmVjZWl2aW5nIHRoZSBBUlAgaXMgYWN0aXZlICh3aGljaCBpbmNsdWRlcyB0aGUKKwkgKiBjdXJy ZW50IEFSUCBzbGF2ZSwgaWYgYW55KSwgb3IKKwkgKgorCSAqIChiKSB0aGUgcmVjZWl2aW5nIHNs YXZlIGlzbid0IGFjdGl2ZSwgYnV0IHRoZXJlIGlzIGEgY3VycmVudGx5CisJICogYWN0aXZlIHNs YXZlIGFuZCBpdCByZWNlaXZlZCB2YWxpZCBhcnAgcmVwbHkocykgYWZ0ZXIgaXQgYmVjYW1lCisJ ICogdGhlIGN1cnJlbnRseSBhY3RpdmUgc2xhdmUsIG9yCisJICoKKwkgKiAoYykgdGhlcmUgaXMg YW4gQVJQIHNsYXZlIHRoYXQgc2VudCBhbiBBUlAgZHVyaW5nIHRoZSBwcmlvciBBUlAKKwkgKiBp bnRlcnZhbCwgYW5kIHdlIHJlY2VpdmUgYW4gQVJQIHJlcGx5IG9uIGFueSBzbGF2ZS4gIFdlIGFj Y2VwdAorCSAqIHRoZXNlIGJlY2F1c2Ugc3dpdGNoIEZEQiB1cGRhdGUgZGVsYXlzIG1heSBkZWxp dmVyIHRoZSBBUlAKKwkgKiByZXBseSB0byBhIHNsYXZlIG90aGVyIHRoYW4gdGhlIHNlbmRlciBv ZiB0aGUgQVJQIHJlcXVlc3QuCiAJICoKLQkgKiBXZSAndHJ1c3QnIHRoZSBhcnAgcmVxdWVzdHMg aWYgdGhlcmUgaXMgYW4gYWN0aXZlIHNsYXZlIGFuZAotCSAqIGl0IHJlY2VpdmVkIHZhbGlkIGFy cCByZXBseShzKSBhZnRlciBpdCBiZWNhbWUgYWN0aXZlLiBUaGlzCi0JICogaXMgZG9uZSB0byBh dm9pZCBlbmRsZXNzIGxvb3Bpbmcgd2hlbiB3ZSBjYW4ndCByZWFjaCB0aGUKKwkgKiBOb3RlOiBm b3IgKGIpLCBiYWNrdXAgc2xhdmVzIGFyZSByZWNlaXZpbmcgdGhlIGJyb2FkY2FzdCBBUlAKKwkg KiByZXF1ZXN0LCBub3QgYSByZXBseS4gIFRoaXMgcmVxdWVzdCBwYXNzZXMgZnJvbSB0aGUgc2Vu ZGluZworCSAqIHNsYXZlIHRocm91Z2ggdGhlIEwyIHN3aXRjaChlcykgdG8gdGhlIHJlY2Vpdmlu ZyBzbGF2ZS4gIFNpbmNlCisJICogdGhpcyBpcyBjaGVja2luZyB0aGUgcmVxdWVzdCwgc2lwL3Rp cCBhcmUgc3dhcHBlZCBmb3IKKwkgKiB2YWxpZGF0aW9uLgorCSAqCisJICogVGhpcyBpcyBkb25l IHRvIGF2b2lkIGVuZGxlc3MgbG9vcGluZyB3aGVuIHdlIGNhbid0IHJlYWNoIHRoZQogCSAqIGFy cF9pcF90YXJnZXQgYW5kIGZvb2wgb3Vyc2VsdmVzIHdpdGggb3VyIG93biBhcnAgcmVxdWVzdHMu CiAJICovCi0KIAlpZiAoYm9uZF9pc19hY3RpdmVfc2xhdmUoc2xhdmUpKQogCQlib25kX3ZhbGlk YXRlX2FycChib25kLCBzbGF2ZSwgc2lwLCB0aXApOwogCWVsc2UgaWYgKGN1cnJfYWN0aXZlX3Ns YXZlICYmCiAJCSB0aW1lX2FmdGVyKHNsYXZlX2xhc3RfcngoYm9uZCwgY3Vycl9hY3RpdmVfc2xh dmUpLAogCQkJICAgIGN1cnJfYWN0aXZlX3NsYXZlLT5sYXN0X2xpbmtfdXApKQogCQlib25kX3Zh bGlkYXRlX2FycChib25kLCBzbGF2ZSwgdGlwLCBzaXApOworCWVsc2UgaWYgKGN1cnJfYXJwX3Ns YXZlICYmIChhcnAtPmFyX29wID09IGh0b25zKEFSUE9QX1JFUExZKSkgJiYKKwkJIGJvbmRfdGlt ZV9pbl9pbnRlcnZhbChib25kLAorCQkJCSAgICAgICBkZXZfdHJhbnNfc3RhcnQoY3Vycl9hcnBf c2xhdmUtPmRldiksIDEpKQorCQlib25kX3ZhbGlkYXRlX2FycChib25kLCBzbGF2ZSwgc2lwLCB0 aXApOwogCiBvdXRfdW5sb2NrOgogCWlmIChhcnAgIT0gKHN0cnVjdCBhcnBoZHIgKilza2ItPmRh dGEpCi0tIAoyLjEuMAoKCkZyb20gMmExZjg2Zjc4NDQ2OWZlZGI3ODZiODYzNDU4MzMwZThlOTEw ZTg1MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpl dEBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDQgRmViIDIwMTYgMDY6MjM6MjggLTA4MDAKU3ViamVj dDogW1BBVENIIDI5LzQ3XSBpcHY0OiBmaXggbWVtb3J5IGxlYWtzIGluIGlwX2Ntc2dfc2VuZCgp IGNhbGxlcnMKClsgVXBzdHJlYW0gY29tbWl0IDkxOTQ4MzA5NmJmZTc1ZGRhMzM4ZTk4ZDU2ZGE5 MWEyNjM3NDZhMGEgXQoKRG1pdHJ5IHJlcG9ydGVkIG1lbW9yeSBsZWFrcyBvZiBJUCBvcHRpb25z IGFsbG9jYXRlZCBpbgppcF9jbXNnX3NlbmQoKSB3aGVuL2lmIHRoaXMgZnVuY3Rpb24gcmV0dXJu cyBhbiBlcnJvci4KCkNhbGxlcnMgYXJlIHJlc3BvbnNpYmxlIGZvciB0aGUgZnJlZWluZy4KCk1h bnkgdGhhbmtzIHRvIERtaXRyeSBmb3IgdGhlIHJlcG9ydCBhbmQgZGlhZ25vc3RpYy4KClJlcG9y dGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2lwX3NvY2tnbHVl LmMgfCAyICsrCiBuZXQvaXB2NC9waW5nLmMgICAgICAgIHwgNCArKystCiBuZXQvaXB2NC9yYXcu YyAgICAgICAgIHwgNCArKystCiBuZXQvaXB2NC91ZHAuYyAgICAgICAgIHwgNCArKystCiA0IGZp bGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjQvaXBfc29ja2dsdWUuYyBiL25ldC9pcHY0L2lwX3NvY2tnbHVlLmMKaW5kZXgg NWY3M2E3Yy4uYTUwMTI0MiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfc29ja2dsdWUuYworKysg Yi9uZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jCkBAIC0yNDksNiArMjQ5LDggQEAgaW50IGlwX2Ntc2df c2VuZChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBtc2doZHIgKm1zZywgc3RydWN0IGlwY21fY29v a2llICppcGMsCiAJCXN3aXRjaCAoY21zZy0+Y21zZ190eXBlKSB7CiAJCWNhc2UgSVBfUkVUT1BU UzoKIAkJCWVyciA9IGNtc2ctPmNtc2dfbGVuIC0gQ01TR19BTElHTihzaXplb2Yoc3RydWN0IGNt c2doZHIpKTsKKworCQkJLyogT3VyIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZWluZyBp cGMtPm9wdCAqLwogCQkJZXJyID0gaXBfb3B0aW9uc19nZXQobmV0LCAmaXBjLT5vcHQsIENNU0df REFUQShjbXNnKSwKIAkJCQkJICAgICBlcnIgPCA0MCA/IGVyciA6IDQwKTsKIAkJCWlmIChlcnIp CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9waW5nLmMgYi9uZXQvaXB2NC9waW5nLmMKaW5kZXggZTg5 MDk0YS4uYWE2N2UwZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcGluZy5jCisrKyBiL25ldC9pcHY0 L3BpbmcuYwpAQCAtNzQ2LDggKzc0NiwxMCBAQCBzdGF0aWMgaW50IHBpbmdfdjRfc2VuZG1zZyhz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAogCWlmICht c2ctPm1zZ19jb250cm9sbGVuKSB7CiAJCWVyciA9IGlwX2Ntc2dfc2VuZChzb2NrX25ldChzayks IG1zZywgJmlwYywgZmFsc2UpOwotCQlpZiAoZXJyKQorCQlpZiAodW5saWtlbHkoZXJyKSkgewor CQkJa2ZyZWUoaXBjLm9wdCk7CiAJCQlyZXR1cm4gZXJyOworCQl9CiAJCWlmIChpcGMub3B0KQog CQkJZnJlZSA9IDE7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcmF3LmMgYi9uZXQvaXB2NC9y YXcuYwppbmRleCBiYzM1ZjE4Li43MTEzYmFlIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9yYXcuYwor KysgYi9uZXQvaXB2NC9yYXcuYwpAQCAtNTQ3LDggKzU0NywxMCBAQCBzdGF0aWMgaW50IHJhd19z ZW5kbXNnKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3QgbGVuKQog CiAJaWYgKG1zZy0+bXNnX2NvbnRyb2xsZW4pIHsKIAkJZXJyID0gaXBfY21zZ19zZW5kKG5ldCwg bXNnLCAmaXBjLCBmYWxzZSk7Ci0JCWlmIChlcnIpCisJCWlmICh1bmxpa2VseShlcnIpKSB7CisJ CQlrZnJlZShpcGMub3B0KTsKIAkJCWdvdG8gb3V0OworCQl9CiAJCWlmIChpcGMub3B0KQogCQkJ ZnJlZSA9IDE7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAu YwppbmRleCBjNDM4OTA4Li43ZjhhYjQ2IDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysg Yi9uZXQvaXB2NC91ZHAuYwpAQCAtOTY2LDggKzk2NiwxMCBAQCBpbnQgdWRwX3NlbmRtc2coc3Ry dWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBsZW4pCiAJaWYgKG1zZy0+ bXNnX2NvbnRyb2xsZW4pIHsKIAkJZXJyID0gaXBfY21zZ19zZW5kKHNvY2tfbmV0KHNrKSwgbXNn LCAmaXBjLAogCQkJCSAgIHNrLT5za19mYW1pbHkgPT0gQUZfSU5FVDYpOwotCQlpZiAoZXJyKQor CQlpZiAodW5saWtlbHkoZXJyKSkgeworCQkJa2ZyZWUoaXBjLm9wdCk7CiAJCQlyZXR1cm4gZXJy OworCQl9CiAJCWlmIChpcGMub3B0KQogCQkJZnJlZSA9IDE7CiAJCWNvbm5lY3RlZCA9IDA7Ci0t IAoyLjEuMAoKCkZyb20gMWU2ZDNiZTVhZTQ1ZDE2YmVmZDczM2RmMzg4NzE0OTAyZGExNWY5NCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUmFpbmVyIFdlaWt1c2F0IDxyd2Vpa3VzYXRA bW9iaWxlYWN0aXZlZGVmZW5zZS5jb20+CkRhdGU6IE1vbiwgOCBGZWIgMjAxNiAxODo0NzoxOSAr MDAwMApTdWJqZWN0OiBbUEFUQ0ggMzAvNDddIGFmX3VuaXg6IERvbid0IHNldCBlcnIgaW4gdW5p eF9zdHJlYW1fcmVhZF9nZW5lcmljCiB1bmxlc3MgdGhlcmUgd2FzIGFuIGVycm9yCgpbIFVwc3Ry ZWFtIGNvbW1pdCAxYjkyZWUzZDAzYWY2NjQzZGYzOTUzMDBiYTc3NDhmMTllY2RiMGM1IF0KClRo ZSBwcmVzZW50IHVuaXhfc3RyZWFtX3JlYWRfZ2VuZXJpYyBjb250YWlucyB2YXJpb3VzIGNvZGUg c2VxdWVuY2VzIG9mCnRoZSBmb3JtCgplcnIgPSAtRURJU0FTVEVSOwppZiAoPHRlc3Q+KQoJZ290 byBvdXQ7CgpUaGlzIGhhcyB0aGUgdW5mb3J0dW5hdGUgc2lkZSBlZmZlY3Qgb2YgcG9zc2libHkg Y2F1c2luZyB0aGUgZXJyb3IgY29kZQp0byBibGVlZCB0aHJvdWdoIHRvIHRoZSBmaW5hbAoKb3V0 OgoJcmV0dXJuIGNvcGllZCA/IDogZXJyOwoKYW5kIHRoZW4gdG8gYmUgd3JvbmdseSByZXR1cm5l ZCBpZiBubyBkYXRhIHdhcyBjb3BpZWQgYmVjYXVzZSB0aGUgY2FsbGVyCmRpZG4ndCBzdXBwbHkg YSBkYXRhIGJ1ZmZlciwgYXMgZGVtb25zdHJhdGVkIGJ5IHRoZSBwcm9ncmFtIGF2YWlsYWJsZSBh dAoKaHR0cDovL3BhZC5sdi8xNTQwNzMxCgpDaGFuZ2UgaXQgc3VjaCB0aGF0IGVyciBpcyBvbmx5 IHNldCBpZiBhbiBlcnJvciBjb25kaXRpb24gd2FzIGRldGVjdGVkLgoKRml4ZXM6IDM4MjJiNWMy ZmM2MiAoImFmX3VuaXg6IFJldmVydCAnbG9ja19pbnRlcnJ1cHRpYmxlJyBpbiBzdHJlYW0gcmVj ZWl2ZSBjb2RlIikKUmVwb3J0ZWQtYnk6IEpvc2VwaCBTYWxpc2J1cnkgPGpvc2VwaC5zYWxpc2J1 cnlAY2Fub25pY2FsLmNvbT4KU2lnbmVkLW9mZi1ieTogUmFpbmVyIFdlaWt1c2F0IDxyd2Vpa3Vz YXRAbW9iaWxlYWN0aXZlZGVmZW5zZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdW5peC9hZl91bml4LmMgfCAxNiArKysr KysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvdW5peC9hZl91bml4LmMgYi9uZXQvdW5peC9hZl91bml4 LmMKaW5kZXggNmRlNDFjMy4uMjY1NDEyYyAxMDA2NDQKLS0tIGEvbmV0L3VuaXgvYWZfdW5peC5j CisrKyBiL25ldC91bml4L2FmX3VuaXguYwpAQCAtMjI3MCwxMyArMjI3MCwxNSBAQCBzdGF0aWMg aW50IHVuaXhfc3RyZWFtX3JlYWRfZ2VuZXJpYyhzdHJ1Y3QgdW5peF9zdHJlYW1fcmVhZF9zdGF0 ZSAqc3RhdGUpCiAJc2l6ZV90IHNpemUgPSBzdGF0ZS0+c2l6ZTsKIAl1bnNpZ25lZCBpbnQgbGFz dF9sZW47CiAKLQllcnIgPSAtRUlOVkFMOwotCWlmIChzay0+c2tfc3RhdGUgIT0gVENQX0VTVEFC TElTSEVEKQorCWlmICh1bmxpa2VseShzay0+c2tfc3RhdGUgIT0gVENQX0VTVEFCTElTSEVEKSkg eworCQllcnIgPSAtRUlOVkFMOwogCQlnb3RvIG91dDsKKwl9CiAKLQllcnIgPSAtRU9QTk9UU1VQ UDsKLQlpZiAoZmxhZ3MgJiBNU0dfT09CKQorCWlmICh1bmxpa2VseShmbGFncyAmIE1TR19PT0Ip KSB7CisJCWVyciA9IC1FT1BOT1RTVVBQOwogCQlnb3RvIG91dDsKKwl9CiAKIAl0YXJnZXQgPSBz b2NrX3Jjdmxvd2F0KHNrLCBmbGFncyAmIE1TR19XQUlUQUxMLCBzaXplKTsKIAl0aW1lbyA9IHNv Y2tfcmN2dGltZW8oc2ssIG5vYmxvY2spOwpAQCAtMjMyMiw5ICsyMzI0LDExIEBAIGFnYWluOgog CQkJCWdvdG8gdW5sb2NrOwogCiAJCQl1bml4X3N0YXRlX3VubG9jayhzayk7Ci0JCQllcnIgPSAt RUFHQUlOOwotCQkJaWYgKCF0aW1lbykKKwkJCWlmICghdGltZW8pIHsKKwkJCQllcnIgPSAtRUFH QUlOOwogCQkJCWJyZWFrOworCQkJfQorCiAJCQltdXRleF91bmxvY2soJnUtPnJlYWRsb2NrKTsK IAogCQkJdGltZW8gPSB1bml4X3N0cmVhbV9kYXRhX3dhaXQoc2ssIHRpbWVvLCBsYXN0LAotLSAK Mi4xLjAKCgpGcm9tIGRjZDUxYjkwNWJmYzk0MWYxZmZlYTMzMjJlOTdiYjhhMjBkYjhhNWQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJhaW5lciBXZWlrdXNhdCA8cndlaWt1c2F0QG1v YmlsZWFjdGl2ZWRlZmVuc2UuY29tPgpEYXRlOiBUaHUsIDExIEZlYiAyMDE2IDE5OjM3OjI3ICsw MDAwClN1YmplY3Q6IFtQQVRDSCAzMS80N10gYWZfdW5peDogR3VhcmQgYWdhaW5zdCBvdGhlciA9 PSBzayBpbgogdW5peF9kZ3JhbV9zZW5kbXNnCgpbIFVwc3RyZWFtIGNvbW1pdCBhNTUyN2RkYTM0 NGZmZjA1MTRiNzk4OWVmN2E3NTU3Mjk3NjlkYWExIF0KClRoZSB1bml4X2RncmFtX3NlbmRtc2cg cm91dGluZSB1c2UgdGhlIGZvbGxvd2luZyB0ZXN0CgppZiAodW5saWtlbHkodW5peF9wZWVyKG90 aGVyKSAhPSBzayAmJiB1bml4X3JlY3ZxX2Z1bGwob3RoZXIpKSkgewoKdG8gZGV0ZXJtaW5lIGlm IHNrIGFuZCBvdGhlciBhcmUgaW4gYW4gbjoxIGFzc29jaWF0aW9uIChlaXRoZXIKZXN0YWJsaXNo ZWQgdmlhIGNvbm5lY3Qgb3IgYnkgdXNpbmcgc2VuZHRvIHRvIHNlbmQgbWVzc2FnZXMgdG8gYW4K dW5yZWxhdGVkIHNvY2tldCBpZGVudGlmaWVkIGJ5IGFkZHJlc3MpLiBUaGlzIGlzbid0IGNvcnJl Y3QgYXMgdGhlCnNwZWNpZmllZCBhZGRyZXNzIGNvdWxkIGhhdmUgYmVlbiBib3VuZCB0byB0aGUg c2VuZGluZyBzb2NrZXQgaXRzZWxmIG9yCmJlY2F1c2UgdGhpcyBzb2NrZXQgY291bGQgaGF2ZSBi ZWVuIGNvbm5lY3RlZCB0byBpdHNlbGYgYnkgdGhlIHRpbWUgb2YKdGhlIHVuaXhfcGVlcl9nZXQg YnV0IGRpc2Nvbm5lY3RlZCBiZWZvcmUgdGhlIHVuaXhfc3RhdGVfbG9jayhvdGhlcikuIEluCmJv dGggY2FzZXMsIHRoZSBpZi1ibG9jayB3b3VsZCBiZSBlbnRlcmVkIGRlc3BpdGUgb3RoZXIgPT0g c2sgd2hpY2gKbWlnaHQgZWl0aGVyIGJsb2NrIHRoZSBzZW5kZXIgdW5pbnRlbnRpb25hbGx5IG9y IGxlYWQgdG8gdHJ5aW5nIHRvIHVubG9jawp0aGUgc2FtZSBzcGluIGxvY2sgdHdpY2UgZm9yIGEg bm9uLWJsb2NraW5nIHNlbmQuIEFkZCBhIG90aGVyICE9IHNrCmNoZWNrIHRvIGd1YXJkIGFnYWlu c3QgdGhpcy4KCkZpeGVzOiA3ZDI2NzI3OGE5ZWMgKCJ1bml4OiBhdm9pZCB1c2UtYWZ0ZXItZnJl ZSBpbiBlcF9yZW1vdmVfd2FpdF9xdWV1ZSIpClJlcG9ydGVkLUJ5OiBQaGlsaXBwIEhhaG4gPHBt aGFobkBwbWhhaG4uZGU+ClNpZ25lZC1vZmYtYnk6IFJhaW5lciBXZWlrdXNhdCA8cndlaWt1c2F0 QG1vYmlsZWFjdGl2ZWRlZmVuc2UuY29tPgpUZXN0ZWQtYnk6IFBoaWxpcHAgSGFobiA8cG1oYWhu QHBtaGFobi5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC91bml4L2FmX3VuaXguYyB8IDcgKysrKysrLQogMSBmaWxlIGNoYW5n ZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC91bml4 L2FmX3VuaXguYyBiL25ldC91bml4L2FmX3VuaXguYwppbmRleCAyNjU0MTJjLi44OThhNTNhIDEw MDY0NAotLS0gYS9uZXQvdW5peC9hZl91bml4LmMKKysrIGIvbmV0L3VuaXgvYWZfdW5peC5jCkBA IC0xNzgxLDcgKzE3ODEsMTIgQEAgcmVzdGFydF9sb2NrZWQ6CiAJCQlnb3RvIG91dF91bmxvY2s7 CiAJfQogCi0JaWYgKHVubGlrZWx5KHVuaXhfcGVlcihvdGhlcikgIT0gc2sgJiYgdW5peF9yZWN2 cV9mdWxsKG90aGVyKSkpIHsKKwkvKiBvdGhlciA9PSBzayAmJiB1bml4X3BlZXIob3RoZXIpICE9 IHNrIGlmCisJICogLSB1bml4X3BlZXIoc2spID09IE5VTEwsIGRlc3RpbmF0aW9uIGFkZHJlc3Mg Ym91bmQgdG8gc2sKKwkgKiAtIHVuaXhfcGVlcihzaykgPT0gc2sgYnkgdGltZSBvZiBnZXQgYnV0 IGRpc2Nvbm5lY3RlZCBiZWZvcmUgbG9jaworCSAqLworCWlmIChvdGhlciAhPSBzayAmJgorCSAg ICB1bmxpa2VseSh1bml4X3BlZXIob3RoZXIpICE9IHNrICYmIHVuaXhfcmVjdnFfZnVsbChvdGhl cikpKSB7CiAJCWlmICh0aW1lbykgewogCQkJdGltZW8gPSB1bml4X3dhaXRfZm9yX3BlZXIob3Ro ZXIsIHRpbWVvKTsKIAotLSAKMi4xLjAKCgpGcm9tIGFiYTRiYmI4ODFlZjg1Nzc2ZGE3NDQyNjBl OGYxZDI0Yzc1NzIyZDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvbiBQYXVsIE1h bG95IDxqb24ubWFsb3lAZXJpY3Nzb24uY29tPgpEYXRlOiBXZWQsIDEwIEZlYiAyMDE2IDE2OjE0 OjU3IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAzMi80N10gdGlwYzogZml4IHByZW1hdHVyZSBhZGRp dGlvbiBvZiBub2RlIHRvIGxvb2t1cCB0YWJsZQoKWyBVcHN0cmVhbSBjb21taXQgZDVjOTFmYjcy ZjE2NTJlYTMwMjY5MjUyNDBhMDk5OGE0MmRkYjE2YiBdCgpJbiBjb21taXQgNTI2NjY5ODY2MTQw MWEgKCJ0aXBjOiBsZXQgYnJvYWRjYXN0IHBhY2tldCByZWNlcHRpb24KdXNlIG5ldyBsaW5rIHJl Y2VpdmUgZnVuY3Rpb24iKSB3ZSBpbnRyb2R1Y2VkIGEgbmV3IHBlci1ub2RlCmJyb2FkY2FzdCBy ZWNlcHRpb24gbGluayBpbnN0YW5jZS4gVGhpcyBsaW5rIGlzIGNyZWF0ZWQgYXQgdGhlCm1vbWVu dCB0aGUgbm9kZSBpdHNlbGYgaXMgY3JlYXRlZC4gVW5mb3J0dW5hdGVseSwgdGhlIGFsbG9jYXRp b24KaXMgZG9uZSBhZnRlciB0aGUgbm9kZSBpbnN0YW5jZSBoYXMgYWxyZWFkeSBiZWVuIGFkZGVk IHRvIHRoZSBub2RlCmxvb2t1cCBoYXNoIHRhYmxlLiBUaGlzIGNyZWF0ZXMgYSBwb3RlbnRpYWwg cmFjZSBjb25kaXRpb24sIHdoZXJlCmFycml2aW5nIGJyb2FkY2FzdCBwYWNrZXRzIGFyZSBhYmxl IHRvIGZpbmQgYW5kIGFjY2VzcyB0aGUgbm9kZQpiZWZvcmUgaXQgaGFzIGJlZW4gZnVsbHkgaW5p dGlhbGl6ZWQsIGFuZCBiZWZvcmUgdGhlIGFib3ZlIG1lbnRpb25lZApsaW5rIGhhcyBiZWVuIGNy ZWF0ZWQuIFRoZSByZXN1bHQgaXMgb2NjYXNpb25hbCBjcmFzaGVzIGluIHRoZSBmdW5jdGlvbgp0 aXBjX2JjYXN0X3JjdigpLCB3aGljaCBpcyB0cnlpbmcgdG8gYWNjZXNzIHRoZSBub3QteWV0IGV4 aXN0aW5nIGxpbmsuCgpXZSBmaXggdGhpcyBieSBkZWZlcnJpbmcgdGhlIGFkZGl0aW9uIG9mIHRo ZSBub2RlIGluc3RhbmNlIHVudGlsIGFmdGVyCml0IGhhcyBiZWVuIGZ1bGx5IGluaXRpYWxpemVk IGluIHRoZSBmdW5jdGlvbiB0aXBjX25vZGVfY3JlYXRlKCkuCgpBY2tlZC1ieTogWWluZyBYdWUg PHlpbmcueHVlQHdpbmRyaXZlci5jb20+ClNpZ25lZC1vZmYtYnk6IEpvbiBNYWxveSA8am9uLm1h bG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL25vZGUuYyB8IDEyICsrKysrKy0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvdGlwYy9ub2RlLmMgYi9uZXQvdGlwYy9ub2RlLmMKaW5kZXggMjBjZGRlYy4uMzkyNmI1 NiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbm9kZS5jCisrKyBiL25ldC90aXBjL25vZGUuYwpAQCAt MTY4LDEyICsxNjgsNiBAQCBzdHJ1Y3QgdGlwY19ub2RlICp0aXBjX25vZGVfY3JlYXRlKHN0cnVj dCBuZXQgKm5ldCwgdTMyIGFkZHIsIHUxNiBjYXBhYmlsaXRpZXMpCiAJc2tiX3F1ZXVlX2hlYWRf aW5pdCgmbl9wdHItPmJjX2VudHJ5LmlucHV0cTEpOwogCV9fc2tiX3F1ZXVlX2hlYWRfaW5pdCgm bl9wdHItPmJjX2VudHJ5LmFycnZxKTsKIAlza2JfcXVldWVfaGVhZF9pbml0KCZuX3B0ci0+YmNf ZW50cnkuaW5wdXRxMik7Ci0JaGxpc3RfYWRkX2hlYWRfcmN1KCZuX3B0ci0+aGFzaCwgJnRuLT5u b2RlX2h0YWJsZVt0aXBjX2hhc2hmbihhZGRyKV0pOwotCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1 KHRlbXBfbm9kZSwgJnRuLT5ub2RlX2xpc3QsIGxpc3QpIHsKLQkJaWYgKG5fcHRyLT5hZGRyIDwg dGVtcF9ub2RlLT5hZGRyKQotCQkJYnJlYWs7Ci0JfQotCWxpc3RfYWRkX3RhaWxfcmN1KCZuX3B0 ci0+bGlzdCwgJnRlbXBfbm9kZS0+bGlzdCk7CiAJbl9wdHItPnN0YXRlID0gU0VMRl9ET1dOX1BF RVJfTEVBVklORzsKIAluX3B0ci0+c2lnbmF0dXJlID0gSU5WQUxJRF9OT0RFX1NJRzsKIAluX3B0 ci0+YWN0aXZlX2xpbmtzWzBdID0gSU5WQUxJRF9CRUFSRVJfSUQ7CkBAIC0xOTMsNiArMTg3LDEy IEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1 MzIgYWRkciwgdTE2IGNhcGFiaWxpdGllcykKIAl0aXBjX25vZGVfZ2V0KG5fcHRyKTsKIAlzZXR1 cF90aW1lcigmbl9wdHItPnRpbWVyLCB0aXBjX25vZGVfdGltZW91dCwgKHVuc2lnbmVkIGxvbmcp bl9wdHIpOwogCW5fcHRyLT5rZWVwYWxpdmVfaW50diA9IFUzMl9NQVg7CisJaGxpc3RfYWRkX2hl YWRfcmN1KCZuX3B0ci0+aGFzaCwgJnRuLT5ub2RlX2h0YWJsZVt0aXBjX2hhc2hmbihhZGRyKV0p OworCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHRlbXBfbm9kZSwgJnRuLT5ub2RlX2xpc3QsIGxp c3QpIHsKKwkJaWYgKG5fcHRyLT5hZGRyIDwgdGVtcF9ub2RlLT5hZGRyKQorCQkJYnJlYWs7CisJ fQorCWxpc3RfYWRkX3RhaWxfcmN1KCZuX3B0ci0+bGlzdCwgJnRlbXBfbm9kZS0+bGlzdCk7CiBl eGl0OgogCXNwaW5fdW5sb2NrX2JoKCZ0bi0+bm9kZV9saXN0X2xvY2spOwogCXJldHVybiBuX3B0 cjsKLS0gCjIuMS4wCgoKRnJvbSA5ZGIyMThmYTA2Zjk5MTdhN2U4NTIwODllN2QyYjk1MTNhZjMx ZjJhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+CkRhdGU6IFRodSwgMTEgRmViIDIwMTYgMjI6NTA6MjkgLTA4MDAKU3ViamVj dDogW1BBVENIIDMzLzQ3XSB0Y3A6IG1kNTogcmVsZWFzZSByZXF1ZXN0IHNvY2tldCBpbnN0ZWFk IG9mIGxpc3RlbmVyCgpbIFVwc3RyZWFtIGNvbW1pdCA3MjkyMzU1NTRkODA1YzYzZTVlMjc0ZmNj NmE5OGU3MTAxNWRkODQ3IF0KCklmIHRjcF92NF9pbmJvdW5kX21kNV9oYXNoKCkgcmV0dXJucyBh biBlcnJvciwgd2UgbXVzdCByZWxlYXNlCnRoZSByZWZjb3VudCBvbiB0aGUgcmVxdWVzdCBzb2Nr ZXQsIG5vdCBvbiB0aGUgbGlzdGVuZXIuCgpUaGUgYnVnIHdhcyBhZGRlZCBmb3IgSVB2NCBvbmx5 LgoKRml4ZXM6IDA3OTA5NmYxMDNmYWMgKCJ0Y3AvZGNjcDogaW5zdGFsbCBzeW5fcmVjdiByZXF1 ZXN0cyBpbnRvIGVoYXNoIHRhYmxlIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVt YXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX2lwdjQuYyB8IDYgKysrKy0tCiAxIGZpbGUg Y2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC9pcHY0L3RjcF9pcHY0LmMgYi9uZXQvaXB2NC90Y3BfaXB2NC5jCmluZGV4IGY2NjY5NmMuLmJm Y2RkZWUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pcHY0LmMKKysrIGIvbmV0L2lwdjQvdGNw X2lwdjQuYwpAQCAtMTU5Nyw4ICsxNTk3LDEwIEBAIHByb2Nlc3M6CiAJCXN0cnVjdCBzb2NrICpu c2sgPSBOVUxMOwogCiAJCXNrID0gcmVxLT5yc2tfbGlzdGVuZXI7Ci0JCWlmICh0Y3BfdjRfaW5i b3VuZF9tZDVfaGFzaChzaywgc2tiKSkKLQkJCWdvdG8gZGlzY2FyZF9hbmRfcmVsc2U7CisJCWlm ICh1bmxpa2VseSh0Y3BfdjRfaW5ib3VuZF9tZDVfaGFzaChzaywgc2tiKSkpIHsKKwkJCXJlcXNr X3B1dChyZXEpOworCQkJZ290byBkaXNjYXJkX2l0OworCQl9CiAJCWlmIChsaWtlbHkoc2stPnNr X3N0YXRlID09IFRDUF9MSVNURU4pKSB7CiAJCQluc2sgPSB0Y3BfY2hlY2tfcmVxKHNrLCBza2Is IHJlcSwgZmFsc2UpOwogCQl9IGVsc2UgewotLSAKMi4xLjAKCgpGcm9tIGYzZWRkYmQxMWYyMjE2 NDNiMWYzM2JlY2E1NzJkMDZmNmM4ODNkYTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 ID0/VVRGLTg/cT9Caj1DMz1COHJuPTIwTW9yaz89IDxiam9ybkBtb3JrLm5vPgpEYXRlOiBGcmks IDEyIEZlYiAyMDE2IDE2OjQyOjE0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAzNC80N10gcW1pX3d3 YW46IGFkZCAiNEcgTFRFIHVzYi1tb2RlbSBVOTAxIgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50 LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgYWFjOGQzYzI4MmUwMjRjMzQ0YzViODZkYzFlYWI3 YWY4OGJiOTcxNiBdCgpUaG9tYXMgcmVwb3J0czoKClQ6ICBCdXM9MDEgTGV2PTAxIFBybnQ9MDEg UG9ydD0wMyBDbnQ9MDEgRGV2Iz0gIDQgU3BkPTQ4MCBNeENoPSAwCkQ6ICBWZXI9IDIuMDAgQ2xz PTAwKD5pZmMgKSBTdWI9MDAgUHJvdD0wMCBNeFBTPTY0ICNDZmdzPSAgMQpQOiAgVmVuZG9yPTA1 YzYgUHJvZElEPTYwMDEgUmV2PTAwLjAwClM6ICBNYW51ZmFjdHVyZXI9VVNCIE1vZGVtClM6ICBQ cm9kdWN0PVVTQiBNb2RlbQpTOiAgU2VyaWFsTnVtYmVyPTEyMzQ1Njc4OTBBQkNERUYKQzogICNJ ZnM9IDUgQ2ZnIz0gMSBBdHI9ZTAgTXhQd3I9NTAwbUEKSTogIElmIz0gMCBBbHQ9IDAgI0VQcz0g MiBDbHM9ZmYodmVuZC4pIFN1Yj1mZiBQcm90PWZmIERyaXZlcj1vcHRpb24KSTogIElmIz0gMSBB bHQ9IDAgI0VQcz0gMyBDbHM9ZmYodmVuZC4pIFN1Yj1mZiBQcm90PWZmIERyaXZlcj1vcHRpb24K STogIElmIz0gMiBBbHQ9IDAgI0VQcz0gMiBDbHM9ZmYodmVuZC4pIFN1Yj1mZiBQcm90PWZmIERy aXZlcj1vcHRpb24KSTogIElmIz0gMyBBbHQ9IDAgI0VQcz0gMyBDbHM9ZmYodmVuZC4pIFN1Yj1m ZiBQcm90PWZmIERyaXZlcj1xbWlfd3dhbgpJOiAgSWYjPSA0IEFsdD0gMCAjRVBzPSAyIENscz0w OChzdG9yLikgU3ViPTA2IFByb3Q9NTAgRHJpdmVyPXVzYi1zdG9yYWdlCgpSZXBvcnRlZC1ieTog VGhvbWFzIFNjaMOkZmVyIDx0c2NoYWVmZXJAdC1vbmxpbmUuZGU+ClNpZ25lZC1vZmYtYnk6IEJq w7hybiBNb3JrIDxiam9ybkBtb3JrLm5vPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgfCAx ICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3VzYi9xbWlfd3dhbi5jIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKaW5kZXggNWZj Y2M1YS4uOTgyZTBhY2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCisr KyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCkBAIC00OTIsNiArNDkyLDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHByb2R1Y3RzW10gPSB7CiAKIAkvKiAzLiBDb21i aW5lZCBpbnRlcmZhY2UgZGV2aWNlcyBtYXRjaGluZyBvbiBpbnRlcmZhY2UgbnVtYmVyICovCiAJ e1FNSV9GSVhFRF9JTlRGKDB4MDQwOCwgMHhlYTQyLCA0KX0sCS8qIFlvdGEgLyBNZWdhZm9uIE0x MDAtMSAqLworCXtRTUlfRklYRURfSU5URigweDA1YzYsIDB4NjAwMSwgMyl9LAkvKiA0RyBMVEUg dXNiLW1vZGVtIFU5MDEgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgwNWM2LCAweDcwMDAsIDApfSwK IAl7UU1JX0ZJWEVEX0lOVEYoMHgwNWM2LCAweDcwMDEsIDEpfSwKIAl7UU1JX0ZJWEVEX0lOVEYo MHgwNWM2LCAweDcwMDIsIDEpfSwKLS0gCjIuMS4wCgoKRnJvbSBhZTYzN2Q3Y2E0ZDlkZjAyYTU0 Mzg4NzAwNjZmNDBkZTk3NzQ2ZWVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbWly IFZhZGFpIDxhbWlyQHZhZGFpLm1lPgpEYXRlOiBXZWQsIDE3IEZlYiAyMDE2IDE3OjI0OjIyICsw MjAwClN1YmplY3Q6IFtQQVRDSCAzNS80N10gbmV0L21seDRfZW46IENvdW50IEhXIGJ1ZmZlciBv dmVycnVuIG9ubHkgb25jZQoKWyBVcHN0cmVhbSBjb21taXQgMjgxZThiMmZkZjhlNGVmMzY2Yjg5 OTQ1M2NhZTUwZTA5YjU3N2FkYSBdCgpSZHJvcE92Zmx3IGNvdW50cyBvdmVycnVuIG9mIEhXIGJ1 ZmZlciwgdGhlcmVmb3JlIHNob3VsZApiZSB1c2VkIGZvciByeF9maWZvX2Vycm9ycyBvbmx5LgoK Q3VycmVudGx5IFJkcm9wT3ZmbHcgY291bnRlciBpcyBtaXN0YWtlbmx5IGFsc28gc2V0IGludG8K cnhfbWlzc2VkX2Vycm9ycyBhbmQgcnhfb3Zlcl9lcnJvcnMgdG9vLCB3aGljaCBtYWtlcyB0aGUK ZGV2aWNlIHRvdGFsIGRyb3BwZWQgcGFja2V0cyBhY2NvdW50aW5nIHRvIHNob3cgd3JvbmcgcmVz dWx0cy4KCkZpeCB0aGF0LiBVc2UgaXQgZm9yIHJ4X2ZpZm9fZXJyb3JzIG9ubHkuCgpGaXhlczog YzI3YTAyY2Q5NGQ2ICgnbWx4NF9lbjogQWRkIGRyaXZlciBmb3IgTWVsbGFub3ggQ29ubmVjdFgg MTBHYkUgTklDJykKU2lnbmVkLW9mZi1ieTogQW1pciBWYWRhaSA8YW1pckB2YWRhaS5tZT4KU2ln bmVkLW9mZi1ieTogRXVnZW5pYSBFbWFudGF5ZXYgPGV1Z2VuaWFAbWVsbGFub3guY29tPgpTaWdu ZWQtb2ZmLWJ5OiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3BvcnQuYyB8IDQgKystLQogMSBmaWxlIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3BvcnQuYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDQvZW5fcG9ydC5jCmluZGV4IGVlOTllNjcuLjM5MDRiNWYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fcG9ydC5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fcG9ydC5jCkBAIC0yMzgsMTEg KzIzOCwxMSBAQCBpbnQgbWx4NF9lbl9EVU1QX0VUSF9TVEFUUyhzdHJ1Y3QgbWx4NF9lbl9kZXYg Km1kZXYsIHU4IHBvcnQsIHU4IHJlc2V0KQogCXN0YXRzLT5jb2xsaXNpb25zID0gMDsKIAlzdGF0 cy0+cnhfZHJvcHBlZCA9IGJlMzJfdG9fY3B1KG1seDRfZW5fc3RhdHMtPlJEUk9QKTsKIAlzdGF0 cy0+cnhfbGVuZ3RoX2Vycm9ycyA9IGJlMzJfdG9fY3B1KG1seDRfZW5fc3RhdHMtPlJkcm9wTGVu Z3RoKTsKLQlzdGF0cy0+cnhfb3Zlcl9lcnJvcnMgPSBiZTMyX3RvX2NwdShtbHg0X2VuX3N0YXRz LT5SZHJvcE92Zmx3KTsKKwlzdGF0cy0+cnhfb3Zlcl9lcnJvcnMgPSAwOwogCXN0YXRzLT5yeF9j cmNfZXJyb3JzID0gYmUzMl90b19jcHUobWx4NF9lbl9zdGF0cy0+UkNSQyk7CiAJc3RhdHMtPnJ4 X2ZyYW1lX2Vycm9ycyA9IDA7CiAJc3RhdHMtPnJ4X2ZpZm9fZXJyb3JzID0gYmUzMl90b19jcHUo bWx4NF9lbl9zdGF0cy0+UmRyb3BPdmZsdyk7Ci0Jc3RhdHMtPnJ4X21pc3NlZF9lcnJvcnMgPSBi ZTMyX3RvX2NwdShtbHg0X2VuX3N0YXRzLT5SZHJvcE92Zmx3KTsKKwlzdGF0cy0+cnhfbWlzc2Vk X2Vycm9ycyA9IDA7CiAJc3RhdHMtPnR4X2Fib3J0ZWRfZXJyb3JzID0gMDsKIAlzdGF0cy0+dHhf Y2Fycmllcl9lcnJvcnMgPSAwOwogCXN0YXRzLT50eF9maWZvX2Vycm9ycyA9IDA7Ci0tIAoyLjEu MAoKCkZyb20gYjVmY2ZiYTQxNDcwYmMyNjRkMWQ3NTBlZmQwMWYwZWQxMDRjMzdkYSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXVnZW5pYSBFbWFudGF5ZXYgPGV1Z2VuaWFAbWVsbGFu b3guY29tPgpEYXRlOiBXZWQsIDE3IEZlYiAyMDE2IDE3OjI0OjIzICswMjAwClN1YmplY3Q6IFtQ QVRDSCAzNi80N10gbmV0L21seDRfZW46IENob29zZSB0aW1lLXN0YW1waW5nIHNoaWZ0IHZhbHVl IGFjY29yZGluZwogdG8gSFcgZnJlcXVlbmN5CgpbIFVwc3RyZWFtIGNvbW1pdCAzMWMxMjhiNjZl NWIyOGY0NjgwNzZlNGYzY2EzMDI1YzM1MzQyMDQxIF0KClByZXZpb3VzbHksIHRoZSBzaGlmdCB2 YWx1ZSB1c2VkIGZvciB0aW1lLXN0YW1waW5nIHdhcyBjb25zdGFudCBhbmQgZGlkbid0CmRlcGVu ZCBvbiB0aGUgSFcgY2hpcCBmcmVxdWVuY3kuIENoYW5nZSB0aGF0IHRvIHRha2UgdGhlIGZyZXF1 ZW5jeSBpbnRvIGFjY291bnQKYW5kIGNhbGN1bGF0ZSB0aGUgbWF4aW1hbCB2YWx1ZSBpbiBjeWNs ZXMgcGVyIHdyYXBhcm91bmQgb2YgdGVuIHNlY29uZHMuIFRoaXMKdGltZSBzbG90IHdhcyBjaG9z ZW4gc2luY2UgaXQgZ2l2ZXMgYSBnb29kIGFjY3VyYWN5IGluIHRpbWUgc3luY2hyb25pemF0aW9u LgoKQWxnb3JpdGhtIGZvciBzaGlmdCB2YWx1ZSBjYWxjdWxhdGlvbjoKICogUm91bmQgdXAgdGhl IG1heGltYWwgdmFsdWUgaW4gY3ljbGVzIHRvIG5lYXJlc3QgcG93ZXIgb2YgdHdvCgogKiBDYWxj dWxhdGUgbWF4aW1hbCBtdWx0aXBsaWVyIGJ5IGRpdmlzaW9uIG9mIGFsbCA2NCBiaXRzIHNldAog ICB0byBhYm92ZSByZXN1bHQKCiAqIFRoZW4sIGludmVydCB0aGUgZnVuY3Rpb24gY2xvY2tzb3Vy Y2Vfa2h6Mm11bHQoKSB0byBnZXQgdGhlIHNoaWZ0IGZyb20KICAgbWF4aW1hbCBtdWx0IHZhbHVl CgpGaXhlczogZWM2OTNkNDcwMTBlICgnbmV0L21seDRfZW46IEFkZCBIVyB0aW1lc3RhbXBpbmcg KFRTKSBzdXBwb3J0JykKU2lnbmVkLW9mZi1ieTogRXVnZW5pYSBFbWFudGF5ZXYgPGV1Z2VuaWFA bWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogTWF0YW4gQmFyYWsgPG1hdGFuYkBtZWxsYW5veC5j b20+ClNpZ25lZC1vZmYtYnk6IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94LmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fY2xvY2suYyB8IDI1ICsrKysrKysr KysrKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDQvZW5fY2xvY2suYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fY2xv Y2suYwppbmRleCAwMzhmOWNlLi4xNDk0OTk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg0L2VuX2Nsb2NrLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NC9lbl9jbG9jay5jCkBAIC0yMzYsNiArMjM2LDI0IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gbWx4NF9lbl9wdHBfY2xvY2tfaW5mbyA9IHsKIAkuZW5h YmxlCQk9IG1seDRfZW5fcGhjX2VuYWJsZSwKIH07CiAKKyNkZWZpbmUgTUxYNF9FTl9XUkFQX0FS T1VORF9TRUMJMTBVTEwKKworLyogVGhpcyBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSBtYXggc2hp ZnQgdGhhdCBlbmFibGVzIHRoZSB1c2VyIHJhbmdlCisgKiBvZiBNTFg0X0VOX1dSQVBfQVJPVU5E X1NFQyB2YWx1ZXMgaW4gdGhlIGN5Y2xlcyByZWdpc3Rlci4KKyAqLworc3RhdGljIHUzMiBmcmVx X3RvX3NoaWZ0KHUxNiBmcmVxKQoreworCXUzMiBmcmVxX2toeiA9IGZyZXEgKiAxMDAwOworCXU2 NCBtYXhfdmFsX2N5Y2xlcyA9IGZyZXFfa2h6ICogMTAwMCAqIE1MWDRfRU5fV1JBUF9BUk9VTkRf U0VDOworCXU2NCBtYXhfdmFsX2N5Y2xlc19yb3VuZGVkID0gaXNfcG93ZXJfb2ZfMihtYXhfdmFs X2N5Y2xlcyArIDEpID8KKwkJbWF4X3ZhbF9jeWNsZXMgOiByb3VuZHVwX3Bvd19vZl90d28obWF4 X3ZhbF9jeWNsZXMpIC0gMTsKKwkvKiBjYWxjdWxhdGUgbWF4IHBvc3NpYmxlIG11bHRpcGxpZXIg aW4gb3JkZXIgdG8gZml0IGluIDY0Yml0ICovCisJdTY0IG1heF9tdWwgPSBkaXZfdTY0KDB4ZmZm ZmZmZmZmZmZmZmZmZlVMTCwgbWF4X3ZhbF9jeWNsZXNfcm91bmRlZCk7CisKKwkvKiBUaGlzIGNv bWVzIGZyb20gdGhlIHJldmVyc2Ugb2YgY2xvY2tzb3VyY2Vfa2h6Mm11bHQgKi8KKwlyZXR1cm4g aWxvZzIoZGl2X3U2NChtYXhfbXVsICogZnJlcV9raHosIDEwMDAwMDApKTsKK30KKwogdm9pZCBt bHg0X2VuX2luaXRfdGltZXN0YW1wKHN0cnVjdCBtbHg0X2VuX2RldiAqbWRldikKIHsKIAlzdHJ1 Y3QgbWx4NF9kZXYgKmRldiA9IG1kZXYtPmRldjsKQEAgLTI1NCwxMiArMjcyLDcgQEAgdm9pZCBt bHg0X2VuX2luaXRfdGltZXN0YW1wKHN0cnVjdCBtbHg0X2VuX2RldiAqbWRldikKIAltZW1zZXQo Jm1kZXYtPmN5Y2xlcywgMCwgc2l6ZW9mKG1kZXYtPmN5Y2xlcykpOwogCW1kZXYtPmN5Y2xlcy5y ZWFkID0gbWx4NF9lbl9yZWFkX2Nsb2NrOwogCW1kZXYtPmN5Y2xlcy5tYXNrID0gQ0xPQ0tTT1VS Q0VfTUFTSyg0OCk7Ci0JLyogVXNpbmcgc2hpZnQgdG8gbWFrZSBjYWxjdWxhdGlvbiBtb3JlIGFj Y3VyYXRlLiBTaW5jZSBjdXJyZW50IEhXCi0JICogY2xvY2sgZnJlcXVlbmN5IGlzIDQyNyBNSHos IGFuZCBjeWNsZXMgYXJlIGdpdmVuIHVzaW5nIGEgNDggYml0cwotCSAqIHJlZ2lzdGVyLCB0aGUg YmlnZ2VzdCBzaGlmdCB3aGVuIGNhbGN1bGF0aW5nIHVzaW5nIHU2NCwgaXMgMTQKLQkgKiAobWF4 X2N5Y2xlcyAqIG11bHRpcGxpZXIgPCAyXjY0KQotCSAqLwotCW1kZXYtPmN5Y2xlcy5zaGlmdCA9 IDE0OworCW1kZXYtPmN5Y2xlcy5zaGlmdCA9IGZyZXFfdG9fc2hpZnQoZGV2LT5jYXBzLmhjYV9j b3JlX2Nsb2NrKTsKIAltZGV2LT5jeWNsZXMubXVsdCA9CiAJCWNsb2Nrc291cmNlX2toejJtdWx0 KDEwMDAgKiBkZXYtPmNhcHMuaGNhX2NvcmVfY2xvY2ssIG1kZXYtPmN5Y2xlcy5zaGlmdCk7CiAJ bWRldi0+bm9taW5hbF9jX211bHQgPSBtZGV2LT5jeWNsZXMubXVsdDsKLS0gCjIuMS4wCgoKRnJv bSAyNjgxMzM2ZDU1ODA4NjY4OGZiODE3NjBhMjI5NGM1YzI5OGU2MGRkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBFdWdlbmlhIEVtYW50YXlldiA8ZXVnZW5pYUBtZWxsYW5veC5jb20+ CkRhdGU6IFdlZCwgMTcgRmViIDIwMTYgMTc6MjQ6MjcgKzAyMDAKU3ViamVjdDogW1BBVENIIDM3 LzQ3XSBuZXQvbWx4NF9lbjogQXZvaWQgY2hhbmdpbmcgZGV2LT5mZWF0dXJlcyBkaXJlY3RseSBp bgogcnVuLXRpbWUKClsgVXBzdHJlYW0gY29tbWl0IDkyNWFiMWFhOTM5NGJiYWVhYzQ3ZWU1YjY1 ZDNmZGYwZmI4MTM1Y2YgXQoKSXQncyBmb3JiaWRkZW4gdG8gbWFudWFsbHkgY2hhbmdlIGRldi0+ ZmVhdHVyZXMgaW4gcnVuLXRpbWUuIEN1cnJlbnRseSwgdGhpcyBpcwpkb25lIGluIHRoZSBkcml2 ZXIgdG8gbWFrZSBzdXJlIHRoYXQgR1NPX1VEUF9UVU5ORUwgaXMgYWR2ZXJ0aXplZCBvbmx5IHdo ZW4KVlhMQU4gdHVubmVsIGlzIHNldC4gSG93ZXZlciwgc2luY2UgdGhlIHN0YWNrIGFjdHVhbGx5 IGRvZXMgZmVhdHVyZXMgaW50ZXJzZWN0aW9uCndpdGggaHdfZW5jX2ZlYXR1cmVzLCB3ZSBjYW4g c2FmZWx5IHJldmVydCB0byBhZHZlcnRpemluZyBmZWF0dXJlcyBlYXJseSB3aGVuCnJlZ2lzdGVy aW5nIHRoZSBuZXRkZXZpY2UuCgpGaXhlczogZjRhMWVkZDU2MTIwICgnbmV0L21seDRfZW46IEFk dmVydGl6ZSBlbmNhcHN1bGF0aW9uIG9mZmxvYWRzIFsuLi5dJykKU2lnbmVkLW9mZi1ieTogRXVn ZW5pYSBFbWFudGF5ZXYgPGV1Z2VuaWFAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBPciBH ZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg0L2VuX25ldGRldi5jIHwgOSArKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9uZXRkZXYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDQvZW5fbmV0ZGV2LmMKaW5kZXggNzg2OWY5Ny4uNjdlOTYzMyAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9uZXRkZXYuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX25ldGRldi5jCkBAIC0yMzgxLDgg KzIzODEsNiBAQCBvdXQ6CiAJLyogc2V0IG9mZmxvYWRzICovCiAJcHJpdi0+ZGV2LT5od19lbmNf ZmVhdHVyZXMgfD0gTkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZfRl9SWENTVU0gfAogCQkJCSAgICAg IE5FVElGX0ZfVFNPIHwgTkVUSUZfRl9HU09fVURQX1RVTk5FTDsKLQlwcml2LT5kZXYtPmh3X2Zl YXR1cmVzIHw9IE5FVElGX0ZfR1NPX1VEUF9UVU5ORUw7Ci0JcHJpdi0+ZGV2LT5mZWF0dXJlcyAg ICB8PSBORVRJRl9GX0dTT19VRFBfVFVOTkVMOwogfQogCiBzdGF0aWMgdm9pZCBtbHg0X2VuX2Rl bF92eGxhbl9vZmZsb2FkcyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCkBAIC0yMzkzLDggKzIz OTEsNiBAQCBzdGF0aWMgdm9pZCBtbHg0X2VuX2RlbF92eGxhbl9vZmZsb2FkcyhzdHJ1Y3Qgd29y a19zdHJ1Y3QgKndvcmspCiAJLyogdW5zZXQgb2ZmbG9hZHMgKi8KIAlwcml2LT5kZXYtPmh3X2Vu Y19mZWF0dXJlcyAmPSB+KE5FVElGX0ZfSVBfQ1NVTSB8IE5FVElGX0ZfUlhDU1VNIHwKIAkJCQkg ICAgICBORVRJRl9GX1RTTyB8IE5FVElGX0ZfR1NPX1VEUF9UVU5ORUwpOwotCXByaXYtPmRldi0+ aHdfZmVhdHVyZXMgJj0gfk5FVElGX0ZfR1NPX1VEUF9UVU5ORUw7Ci0JcHJpdi0+ZGV2LT5mZWF0 dXJlcyAgICAmPSB+TkVUSUZfRl9HU09fVURQX1RVTk5FTDsKIAogCXJldCA9IG1seDRfU0VUX1BP UlRfVlhMQU4ocHJpdi0+bWRldi0+ZGV2LCBwcml2LT5wb3J0LAogCQkJCSAgVlhMQU5fU1RFRVJf QllfT1VURVJfTUFDLCAwKTsKQEAgLTMwMjAsNiArMzAxNiwxMSBAQCBpbnQgbWx4NF9lbl9pbml0 X25ldGRldihzdHJ1Y3QgbWx4NF9lbl9kZXYgKm1kZXYsIGludCBwb3J0LAogCQlwcml2LT5yc3Nf aGFzaF9mbiA9IEVUSF9SU1NfSEFTSF9UT1A7CiAJfQogCisJaWYgKG1kZXYtPmRldi0+Y2Fwcy50 dW5uZWxfb2ZmbG9hZF9tb2RlID09IE1MWDRfVFVOTkVMX09GRkxPQURfTU9ERV9WWExBTikgewor CQlkZXYtPmh3X2ZlYXR1cmVzIHw9IE5FVElGX0ZfR1NPX1VEUF9UVU5ORUw7CisJCWRldi0+ZmVh dHVyZXMgICAgfD0gTkVUSUZfRl9HU09fVURQX1RVTk5FTDsKKwl9CisKIAltZGV2LT5wbmRldltw b3J0XSA9IGRldjsKIAltZGV2LT51cHBlcltwb3J0XSA9IE5VTEw7CiAKLS0gCjIuMS4wCgoKRnJv bSA2NzliNDM1YmE3MjQ3YTRhZGUwMjZjOWZhZGYwYmQzNDQ0OTA3ZmJkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBNYXJrIFRvbWxpbnNvbiA8bWFyay50b21saW5zb25AYWxsaWVkdGVs ZXNpcy5jby5uej4KRGF0ZTogTW9uLCAxNSBGZWIgMjAxNiAxNjoyNDo0NCArMTMwMApTdWJqZWN0 OiBbUEFUQ0ggMzgvNDddIGwydHA6IEZpeCBlcnJvciBjcmVhdGluZyBMMlRQIHR1bm5lbHMKClsg VXBzdHJlYW0gY29tbWl0IDg1M2VmZmM1NWIwZjk3NWFiZDZkMzE4Y2NhNDg2YTljMWI2N2UxMGYg XQoKQSBwcmV2aW91cyBjb21taXQgKDMzZjcyZTYpIGFkZGVkIG5vdGlmaWNhdGlvbiB2aWEgbmV0 bGluayBmb3IgdHVubmVscwp3aGVuIGNyZWF0ZWQvbW9kaWZpZWQvZGVsZXRlZC4gSWYgdGhlIG5v dGlmaWNhdGlvbiByZXR1cm5lZCBhbiBlcnJvciwKdGhpcyBlcnJvciB3YXMgcmV0dXJuZWQgZnJv bSB0aGUgdHVubmVsIGZ1bmN0aW9uLiBJZiB0aGVyZSB3ZXJlIG5vCmxpc3RlbmVycywgdGhlIGVy cm9yIGNvZGUgRVNSQ0ggd2FzIHJldHVybmVkLCBldmVuIHRob3VnaCBoYXZpbmcgbm8KbGlzdGVu ZXJzIGlzIG5vdCBhbiBlcnJvci4gT3RoZXIgY2FsbHMgdG8gdGhpcyBhbmQgb3RoZXIgc2ltaWxh cgpub3RpZmljYXRpb24gZnVuY3Rpb25zIGVpdGhlciBpZ25vcmUgdGhlIGVycm9yIGNvZGUsIG9y IGZpbHRlciBFU1JDSC4KVGhpcyBwYXRjaCBjaGVja3MgZm9yIEVTUkNIIGFuZCBkb2VzIG5vdCBm bGFnIHRoaXMgYXMgYW4gZXJyb3IuCgpSZXZpZXdlZC1ieTogSGFtaXNoIE1hcnRpbiA8aGFtaXNo Lm1hcnRpbkBhbGxpZWR0ZWxlc2lzLmNvLm56PgpTaWduZWQtb2ZmLWJ5OiBNYXJrIFRvbWxpbnNv biA8bWFyay50b21saW5zb25AYWxsaWVkdGVsZXNpcy5jby5uej4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9sMnRwL2wydHBfbmV0 bGluay5jIHwgMTggKysrKysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX25ldGxp bmsuYyBiL25ldC9sMnRwL2wydHBfbmV0bGluay5jCmluZGV4IGY5M2M1YmUuLjJjYWFhODQgMTAw NjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfbmV0bGluay5jCisrKyBiL25ldC9sMnRwL2wydHBfbmV0 bGluay5jCkBAIC0xMjQsOCArMTI0LDEzIEBAIHN0YXRpYyBpbnQgbDJ0cF90dW5uZWxfbm90aWZ5 KHN0cnVjdCBnZW5sX2ZhbWlseSAqZmFtaWx5LAogCXJldCA9IGwydHBfbmxfdHVubmVsX3NlbmQo bXNnLCBpbmZvLT5zbmRfcG9ydGlkLCBpbmZvLT5zbmRfc2VxLAogCQkJCSAgTkxNX0ZfQUNLLCB0 dW5uZWwsIGNtZCk7CiAKLQlpZiAocmV0ID49IDApCi0JCXJldHVybiBnZW5sbXNnX211bHRpY2Fz dF9hbGxucyhmYW1pbHksIG1zZywgMCwJMCwgR0ZQX0FUT01JQyk7CisJaWYgKHJldCA+PSAwKSB7 CisJCXJldCA9IGdlbmxtc2dfbXVsdGljYXN0X2FsbG5zKGZhbWlseSwgbXNnLCAwLCAwLCBHRlBf QVRPTUlDKTsKKwkJLyogV2UgZG9uJ3QgY2FyZSBpZiBubyBvbmUgaXMgbGlzdGVuaW5nICovCisJ CWlmIChyZXQgPT0gLUVTUkNIKQorCQkJcmV0ID0gMDsKKwkJcmV0dXJuIHJldDsKKwl9CiAKIAlu bG1zZ19mcmVlKG1zZyk7CiAKQEAgLTE0Nyw4ICsxNTIsMTMgQEAgc3RhdGljIGludCBsMnRwX3Nl c3Npb25fbm90aWZ5KHN0cnVjdCBnZW5sX2ZhbWlseSAqZmFtaWx5LAogCXJldCA9IGwydHBfbmxf c2Vzc2lvbl9zZW5kKG1zZywgaW5mby0+c25kX3BvcnRpZCwgaW5mby0+c25kX3NlcSwKIAkJCQkg ICBOTE1fRl9BQ0ssIHNlc3Npb24sIGNtZCk7CiAKLQlpZiAocmV0ID49IDApCi0JCXJldHVybiBn ZW5sbXNnX211bHRpY2FzdF9hbGxucyhmYW1pbHksIG1zZywgMCwJMCwgR0ZQX0FUT01JQyk7CisJ aWYgKHJldCA+PSAwKSB7CisJCXJldCA9IGdlbmxtc2dfbXVsdGljYXN0X2FsbG5zKGZhbWlseSwg bXNnLCAwLCAwLCBHRlBfQVRPTUlDKTsKKwkJLyogV2UgZG9uJ3QgY2FyZSBpZiBubyBvbmUgaXMg bGlzdGVuaW5nICovCisJCWlmIChyZXQgPT0gLUVTUkNIKQorCQkJcmV0ID0gMDsKKwkJcmV0dXJu IHJldDsKKwl9CiAKIAlubG1zZ19mcmVlKG1zZyk7CiAKLS0gCjIuMS4wCgoKRnJvbSBhZjcxZGE2 OTFkNzJmOGQ0ZGZmMmM2ZWUyZjQ3ODYzNWQ4YzFkYjBhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpEYXRlOiBNb24s IDE1IEZlYiAyMDE2IDE3OjAxOjEwICswMTAwClN1YmplY3Q6IFtQQVRDSCAzOS80N10gcHBwb2U6 IGZpeCByZWZlcmVuY2UgY291bnRpbmcgaW4gUFBQb0UgcHJveHkKClsgVXBzdHJlYW0gY29tbWl0 IDI5ZTczMjY5YWE0ZDM2ZjkyYjM1NjEwYzI1ZjhiMDFjNzg5YjBkYzggXQoKRHJvcCByZWZlcmVu Y2Ugb24gdGhlIHJlbGF5X3BvIHNvY2tldCB3aGVuIF9fcHBwb2VfeG1pdCgpIHN1Y2NlZWRzLgpU aGlzIGlzIGFscmVhZHkgaGFuZGxlZCBjb3JyZWN0bHkgaW4gdGhlIGVycm9yIHBhdGguCgpTaWdu ZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvcHBwL3BwcG9lLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMgYi9kcml2ZXJzL25ldC9wcHAv cHBwb2UuYwppbmRleCAwYTM3Zjg0Li40ZTAwNjhlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv cHBwL3BwcG9lLmMKKysrIGIvZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMKQEAgLTM5NSw2ICszOTUs OCBAQCBzdGF0aWMgaW50IHBwcG9lX3Jjdl9jb3JlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNr X2J1ZmYgKnNrYikKIAogCQlpZiAoIV9fcHBwb2VfeG1pdChza19wcHBveChyZWxheV9wbyksIHNr YikpCiAJCQlnb3RvIGFib3J0X3B1dDsKKworCQlzb2NrX3B1dChza19wcHBveChyZWxheV9wbykp OwogCX0gZWxzZSB7CiAJCWlmIChzb2NrX3F1ZXVlX3Jjdl9za2Ioc2ssIHNrYikpCiAJCQlnb3Rv IGFib3J0X2tmcmVlOwotLSAKMi4xLjAKCgpGcm9tIDExMjUzYmM3NmNhNDI4Y2Y1N2QyZWYzZmNk MTk4ZWZmNzkzNTlkMjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphbWFsIEhhZGkg U2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkRhdGU6IFRodSwgMTggRmViIDIwMTYgMDc6Mzg6MDQg LTA1MDAKU3ViamVjdDogW1BBVENIIDQwLzQ3XSBuZXRfc2NoZWQgZml4OiByZWNsYXNzaWZpY2F0 aW9uIG5lZWRzIHRvIGNvbnNpZGVyIGV0aGVyCiBwcm90b2NvbCBjaGFuZ2VzCgpbIFVwc3RyZWFt IGNvbW1pdCA2MTlmZTMyNjQwYjRiMDFmMzcwNTc0ZDUwMzQ0YWUwZjYyNjg5ODE2IF0KCmFjdGlv bnMgY291bGQgY2hhbmdlIHRoZSBldGhlcnByb3RvIGluIHBhcnRpY3VsYXIgd2l0aCBldGhlcm5l dAp0dW5uZWxsZWQgZGF0YS4gVHlwaWNhbGx5IHN1Y2ggYWN0aW9ucywgYWZ0ZXIgcGVlbGluZyB0 aGUgb3V0ZXIgaGVhZGVyLAp3aWxsIGFzayBmb3IgdGhlIHBhY2tldCB0byBiZSAgcmVjbGFzc2lm aWVkLiBXZSB0aGVuIG5lZWQgdG8gcmVzdGFydAp0aGUgY2xhc3NpZmljYXRpb24gd2l0aCB0aGUg bmV3IHByb3RvIGhlYWRlci4KCkV4YW1wbGUgc2V0dXAgdXNlZCB0byBjYXRjaCB0aGlzOgpzdWRv IHRjIHFkaXNjIGFkZCBkZXYgJEVUSCBpbmdyZXNzCnN1ZG8gJFRDIGZpbHRlciBhZGQgZGV2ICRF VEggcGFyZW50IGZmZmY6IHByZWYgMSBwcm90b2NvbCA4MDIuMVEgXAp1MzIgbWF0Y2ggdTMyIDAg MCBmbG93aWQgMToxIFwKYWN0aW9uICB2bGFuIHBvcCByZWNsYXNzaWZ5CgpGaXhlczogM2IzYWU4 ODAyNjZkICgibmV0OiBzY2hlZDogY29uc29saWRhdGUgdGNfY2xhc3NpZnl7LF9jb21wYXR9IikK U2lnbmVkLW9mZi1ieTogSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KQWNrZWQt Ynk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvc2No X2FwaS5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQg YS9uZXQvc2NoZWQvc2NoX2FwaS5jIGIvbmV0L3NjaGVkL3NjaF9hcGkuYwppbmRleCBiNWMyY2Yy Li5hZjFhY2YwIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2FwaS5jCisrKyBiL25ldC9zY2hl ZC9zY2hfYXBpLmMKQEAgLTE4NTIsNiArMTg1Miw3IEBAIHJlc2V0OgogCX0KIAogCXRwID0gb2xk X3RwOworCXByb3RvY29sID0gdGNfc2tiX3Byb3RvY29sKHNrYik7CiAJZ290byByZWNsYXNzaWZ5 OwogI2VuZGlmCiB9Ci0tIAoyLjEuMAoKCkZyb20gOTJlOTk0ZGM3MzMwN2Q5ODA4MGVlNjg0MjU5 MTgyZWIzMDBkYzU1MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1 Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBUaHUsIDE4IEZlYiAyMDE2IDIxOjIxOjE5ICswODAw ClN1YmplY3Q6IFtQQVRDSCA0MS80N10gcm91dGU6IGNoZWNrIGFuZCByZW1vdmUgcm91dGUgY2Fj aGUgd2hlbiB3ZSBnZXQgcm91dGUKClsgVXBzdHJlYW0gY29tbWl0IGRlZWQ0OWRmNzM5MGQ1MjM5 MDI0MTk5ZTI0OTE5MDMyOGYxNjUxZTcgXQoKU2luY2UgdGhlIGdjIG9mIGlwdjQgcm91dGUgd2Fz IHJlbW92ZWQsIHRoZSByb3V0ZSBjYWNoZWQgd291bGQgaGFzCm5vIGNoYW5jZSB0byBiZSByZW1v dmVkLCBhbmQgZXZlbiBpdCBoYXMgYmVlbiB0aW1lb3V0LCBpdCBzdGlsbCBjb3VsZApiZSB1c2Vk LCBjYXVzZSBubyBjb2RlIHRvIGNoZWNrIGl0J3MgZXhwaXJlcy4KCkZpeCB0aGlzIGlzc3VlIGJ5 IGNoZWNraW5nICBhbmQgcmVtb3Zpbmcgcm91dGUgY2FjaGUgd2hlbiB3ZSBnZXQgcm91dGUuCgpT aWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkFja2VkLWJ5OiBI YW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0cmVzc2luZHVrdGlvbi5vcmc+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRl L25ldC9pcF9maWIuaCB8ICAxICsKIG5ldC9pcHY0L3JvdXRlLmMgICAgIHwgNzcgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFu Z2VkLCA2NCBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNs dWRlL25ldC9pcF9maWIuaCBiL2luY2x1ZGUvbmV0L2lwX2ZpYi5oCmluZGV4IDlmNGRmNjguLjNm OTgyMzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwX2ZpYi5oCisrKyBiL2luY2x1ZGUvbmV0 L2lwX2ZpYi5oCkBAIC02MSw2ICs2MSw3IEBAIHN0cnVjdCBmaWJfbmhfZXhjZXB0aW9uIHsKIAlz dHJ1Y3QgcnRhYmxlIF9fcmN1CQkqZm5oZV9ydGhfaW5wdXQ7CiAJc3RydWN0IHJ0YWJsZSBfX3Jj dQkJKmZuaGVfcnRoX291dHB1dDsKIAl1bnNpZ25lZCBsb25nCQkJZm5oZV9zdGFtcDsKKwlzdHJ1 Y3QgcmN1X2hlYWQJCQlyY3U7CiB9OwogCiBzdHJ1Y3QgZm5oZV9oYXNoX2J1Y2tldCB7CmRpZmYg LS1naXQgYS9uZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lwdjQvcm91dGUuYwppbmRleCA4NWYxODRl Li4wMmM2MjI5IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9yb3V0ZS5jCisrKyBiL25ldC9pcHY0L3Jv dXRlLmMKQEAgLTEyOSw2ICsxMjksNyBAQCBzdGF0aWMgaW50IGlwX3J0X210dV9leHBpcmVzIF9f cmVhZF9tb3N0bHkJPSAxMCAqIDYwICogSFo7CiBzdGF0aWMgaW50IGlwX3J0X21pbl9wbXR1IF9f cmVhZF9tb3N0bHkJCT0gNTEyICsgMjAgKyAyMDsKIHN0YXRpYyBpbnQgaXBfcnRfbWluX2Fkdm1z cyBfX3JlYWRfbW9zdGx5CT0gMjU2OwogCitzdGF0aWMgaW50IGlwX3J0X2djX3RpbWVvdXQgX19y ZWFkX21vc3RseQk9IFJUX0dDX1RJTUVPVVQ7CiAvKgogICoJSW50ZXJmYWNlIHRvIGdlbmVyaWMg ZGVzdGluYXRpb24gY2FjaGUuCiAgKi8KQEAgLTc1NSw3ICs3NTYsNyBAQCBzdGF0aWMgdm9pZCBf X2lwX2RvX3JlZGlyZWN0KHN0cnVjdCBydGFibGUgKnJ0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgZmxvdwogCQkJCXN0cnVjdCBmaWJfbmggKm5oID0gJkZJQl9SRVNfTkgocmVzKTsKIAog CQkJCXVwZGF0ZV9vcl9jcmVhdGVfZm5oZShuaCwgZmw0LT5kYWRkciwgbmV3X2d3LAotCQkJCQkJ ICAgICAgMCwgMCk7CisJCQkJCQkwLCBqaWZmaWVzICsgaXBfcnRfZ2NfdGltZW91dCk7CiAJCQl9 CiAJCQlpZiAoa2lsbF9yb3V0ZSkKIAkJCQlydC0+ZHN0Lm9ic29sZXRlID0gRFNUX09CU09MRVRF X0tJTEw7CkBAIC0xNTU2LDYgKzE1NTcsMzYgQEAgc3RhdGljIHZvaWQgaXBfaGFuZGxlX21hcnRp YW5fc291cmNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAjZW5kaWYKIH0KIAorc3RhdGljIHZv aWQgaXBfZGVsX2ZuaGUoc3RydWN0IGZpYl9uaCAqbmgsIF9fYmUzMiBkYWRkcikKK3sKKwlzdHJ1 Y3QgZm5oZV9oYXNoX2J1Y2tldCAqaGFzaDsKKwlzdHJ1Y3QgZmliX25oX2V4Y2VwdGlvbiAqZm5o ZSwgX19yY3UgKipmbmhlX3A7CisJdTMyIGh2YWwgPSBmbmhlX2hhc2hmdW4oZGFkZHIpOworCisJ c3Bpbl9sb2NrX2JoKCZmbmhlX2xvY2spOworCisJaGFzaCA9IHJjdV9kZXJlZmVyZW5jZV9wcm90 ZWN0ZWQobmgtPm5oX2V4Y2VwdGlvbnMsCisJCQkJCSBsb2NrZGVwX2lzX2hlbGQoJmZuaGVfbG9j aykpOworCWhhc2ggKz0gaHZhbDsKKworCWZuaGVfcCA9ICZoYXNoLT5jaGFpbjsKKwlmbmhlID0g cmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZCgqZm5oZV9wLCBsb2NrZGVwX2lzX2hlbGQoJmZuaGVf bG9jaykpOworCXdoaWxlIChmbmhlKSB7CisJCWlmIChmbmhlLT5mbmhlX2RhZGRyID09IGRhZGRy KSB7CisJCQlyY3VfYXNzaWduX3BvaW50ZXIoKmZuaGVfcCwgcmN1X2RlcmVmZXJlbmNlX3Byb3Rl Y3RlZCgKKwkJCQlmbmhlLT5mbmhlX25leHQsIGxvY2tkZXBfaXNfaGVsZCgmZm5oZV9sb2NrKSkp OworCQkJZm5oZV9mbHVzaF9yb3V0ZXMoZm5oZSk7CisJCQlrZnJlZV9yY3UoZm5oZSwgcmN1KTsK KwkJCWJyZWFrOworCQl9CisJCWZuaGVfcCA9ICZmbmhlLT5mbmhlX25leHQ7CisJCWZuaGUgPSBy Y3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZuaGUtPmZuaGVfbmV4dCwKKwkJCQkJCSBsb2NrZGVw X2lzX2hlbGQoJmZuaGVfbG9jaykpOworCX0KKworCXNwaW5fdW5sb2NrX2JoKCZmbmhlX2xvY2sp OworfQorCiAvKiBjYWxsZWQgaW4gcmN1X3JlYWRfbG9jaygpIHNlY3Rpb24gKi8KIHN0YXRpYyBp bnQgX19ta3JvdXRlX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsCiAJCQkgICBjb25zdCBzdHJ1 Y3QgZmliX3Jlc3VsdCAqcmVzLApAQCAtMTYwOSwxMSArMTY0MCwyMCBAQCBzdGF0aWMgaW50IF9f bWtyb3V0ZV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJZm5oZSA9IGZpbmRfZXhjZXB0 aW9uKCZGSUJfUkVTX05IKCpyZXMpLCBkYWRkcik7CiAJaWYgKGRvX2NhY2hlKSB7Ci0JCWlmIChm bmhlKQorCQlpZiAoZm5oZSkgewogCQkJcnRoID0gcmN1X2RlcmVmZXJlbmNlKGZuaGUtPmZuaGVf cnRoX2lucHV0KTsKLQkJZWxzZQotCQkJcnRoID0gcmN1X2RlcmVmZXJlbmNlKEZJQl9SRVNfTkgo KnJlcykubmhfcnRoX2lucHV0KTsKKwkJCWlmIChydGggJiYgcnRoLT5kc3QuZXhwaXJlcyAmJgor CQkJICAgIHRpbWVfYWZ0ZXIoamlmZmllcywgcnRoLT5kc3QuZXhwaXJlcykpIHsKKwkJCQlpcF9k ZWxfZm5oZSgmRklCX1JFU19OSCgqcmVzKSwgZGFkZHIpOworCQkJCWZuaGUgPSBOVUxMOworCQkJ fSBlbHNlIHsKKwkJCQlnb3RvIHJ0X2NhY2hlOworCQkJfQorCQl9CisKKwkJcnRoID0gcmN1X2Rl cmVmZXJlbmNlKEZJQl9SRVNfTkgoKnJlcykubmhfcnRoX2lucHV0KTsKIAorcnRfY2FjaGU6CiAJ CWlmIChydF9jYWNoZV92YWxpZChydGgpKSB7CiAJCQlza2JfZHN0X3NldF9ub3JlZihza2IsICZy dGgtPmRzdCk7CiAJCQlnb3RvIG91dDsKQEAgLTIwMTQsMTkgKzIwNTQsMjkgQEAgc3RhdGljIHN0 cnVjdCBydGFibGUgKl9fbWtyb3V0ZV9vdXRwdXQoY29uc3Qgc3RydWN0IGZpYl9yZXN1bHQgKnJl cywKIAkJc3RydWN0IGZpYl9uaCAqbmggPSAmRklCX1JFU19OSCgqcmVzKTsKIAogCQlmbmhlID0g ZmluZF9leGNlcHRpb24obmgsIGZsNC0+ZGFkZHIpOwotCQlpZiAoZm5oZSkKKwkJaWYgKGZuaGUp IHsKIAkJCXBydGggPSAmZm5oZS0+Zm5oZV9ydGhfb3V0cHV0OwotCQllbHNlIHsKLQkJCWlmICh1 bmxpa2VseShmbDQtPmZsb3dpNF9mbGFncyAmCi0JCQkJICAgICBGTE9XSV9GTEFHX0tOT1dOX05I ICYmCi0JCQkJICAgICAhKG5oLT5uaF9ndyAmJgotCQkJCSAgICAgICBuaC0+bmhfc2NvcGUgPT0g UlRfU0NPUEVfTElOSykpKSB7Ci0JCQkJZG9fY2FjaGUgPSBmYWxzZTsKLQkJCQlnb3RvIGFkZDsK KwkJCXJ0aCA9IHJjdV9kZXJlZmVyZW5jZSgqcHJ0aCk7CisJCQlpZiAocnRoICYmIHJ0aC0+ZHN0 LmV4cGlyZXMgJiYKKwkJCSAgICB0aW1lX2FmdGVyKGppZmZpZXMsIHJ0aC0+ZHN0LmV4cGlyZXMp KSB7CisJCQkJaXBfZGVsX2ZuaGUobmgsIGZsNC0+ZGFkZHIpOworCQkJCWZuaGUgPSBOVUxMOwor CQkJfSBlbHNlIHsKKwkJCQlnb3RvIHJ0X2NhY2hlOwogCQkJfQotCQkJcHJ0aCA9IHJhd19jcHVf cHRyKG5oLT5uaF9wY3B1X3J0aF9vdXRwdXQpOwogCQl9CisKKwkJaWYgKHVubGlrZWx5KGZsNC0+ Zmxvd2k0X2ZsYWdzICYKKwkJCSAgICAgRkxPV0lfRkxBR19LTk9XTl9OSCAmJgorCQkJICAgICAh KG5oLT5uaF9ndyAmJgorCQkJICAgICAgIG5oLT5uaF9zY29wZSA9PSBSVF9TQ09QRV9MSU5LKSkp IHsKKwkJCWRvX2NhY2hlID0gZmFsc2U7CisJCQlnb3RvIGFkZDsKKwkJfQorCQlwcnRoID0gcmF3 X2NwdV9wdHIobmgtPm5oX3BjcHVfcnRoX291dHB1dCk7CiAJCXJ0aCA9IHJjdV9kZXJlZmVyZW5j ZSgqcHJ0aCk7CisKK3J0X2NhY2hlOgogCQlpZiAocnRfY2FjaGVfdmFsaWQocnRoKSkgewogCQkJ ZHN0X2hvbGQoJnJ0aC0+ZHN0KTsKIAkJCXJldHVybiBydGg7CkBAIC0yNTY5LDcgKzI2MTksNiBA QCB2b2lkIGlwX3J0X211bHRpY2FzdF9ldmVudChzdHJ1Y3QgaW5fZGV2aWNlICppbl9kZXYpCiB9 CiAKICNpZmRlZiBDT05GSUdfU1lTQ1RMCi1zdGF0aWMgaW50IGlwX3J0X2djX3RpbWVvdXQgX19y ZWFkX21vc3RseQk9IFJUX0dDX1RJTUVPVVQ7CiBzdGF0aWMgaW50IGlwX3J0X2djX2ludGVydmFs IF9fcmVhZF9tb3N0bHkgID0gNjAgKiBIWjsKIHN0YXRpYyBpbnQgaXBfcnRfZ2NfbWluX2ludGVy dmFsIF9fcmVhZF9tb3N0bHkJPSBIWiAvIDI7CiBzdGF0aWMgaW50IGlwX3J0X2djX2VsYXN0aWNp dHkgX19yZWFkX21vc3RseQk9IDg7Ci0tIAoyLjEuMAoKCkZyb20gZTdiNDUwNDFiNzRiYWEzYWVh ODhiOWVmNmUyZGI4YzRlZDliN2UyNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDE4IEZlYiAyMDE2IDA1 OjM5OjE4IC0wODAwClN1YmplY3Q6IFtQQVRDSCA0Mi80N10gdGNwL2RjY3A6IGZpeCBhbm90aGVy IHJhY2UgYXQgbGlzdGVuZXIgZGlzbWFudGxlCgpbIFVwc3RyZWFtIGNvbW1pdCA3NzE2NjgyY2M1 OGUzMDVlMjIyMDdkNWJiMzE1ZjI2YWY2YjFlMjQzIF0KCklseWEgcmVwb3J0ZWQgZm9sbG93aW5n IGxvY2tkZXAgc3BsYXQ6CgprZXJuZWw6ID09PT09PT09PT09PT09PT09PT09PT09PT0Ka2VybmVs OiBbIEJVRzogaGVsZCBsb2NrIGZyZWVkISBdCmtlcm5lbDogNC41LjAtcmMxLWNlcGgtMDAwMjYt ZzVlMGEzMTEgIzEgTm90IHRhaW50ZWQKa2VybmVsOiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cmtlcm5lbDogc3dhcHBlci81LzAgaXMgZnJlZWluZyBtZW1vcnkKZmZmZjg4MDAzNWM5ZDIwMC1m ZmZmODgwMDM1YzlkYmZmLCB3aXRoIGEgbG9jayBzdGlsbCBoZWxkIHRoZXJlIQprZXJuZWw6ICgm KCZxdWV1ZS0+cnNrcV9sb2NrKS0+cmxvY2speysuLS4uLn0sIGF0OgpbPGZmZmZmZmZmODE2ZjZh ODg+XSBpbmV0X2Nza19yZXFza19xdWV1ZV9hZGQrMHgyOC8weGEwCmtlcm5lbDogNCBsb2NrcyBo ZWxkIGJ5IHN3YXBwZXIvNS8wOgprZXJuZWw6ICMwOiAgKHJjdV9yZWFkX2xvY2spey4uLi4uLn0s IGF0OiBbPGZmZmZmZmZmODE2OWVmNmI+XQpuZXRpZl9yZWNlaXZlX3NrYl9pbnRlcm5hbCsweDRi LzB4MWYwCmtlcm5lbDogIzE6ICAocmN1X3JlYWRfbG9jayl7Li4uLi4ufSwgYXQ6IFs8ZmZmZmZm ZmY4MTZlOTc3Zj5dCmlwX2xvY2FsX2RlbGl2ZXJfZmluaXNoKzB4M2YvMHgzODAKa2VybmVsOiAj MjogIChzbG9jay1BRl9JTkVUKXsrLi0uLi59LCBhdDogWzxmZmZmZmZmZjgxNjg1ZmZiPl0Kc2tf Y2xvbmVfbG9jaysweDE5Yi8weDQ0MAprZXJuZWw6ICMzOiAgKCYoJnF1ZXVlLT5yc2txX2xvY2sp LT5ybG9jayl7Ky4tLi4ufSwgYXQ6Cls8ZmZmZmZmZmY4MTZmNmE4OD5dIGluZXRfY3NrX3JlcXNr X3F1ZXVlX2FkZCsweDI4LzB4YTAKClRvIHByb3Blcmx5IGZpeCB0aGlzIGlzc3VlLCBpbmV0X2Nz a19yZXFza19xdWV1ZV9hZGQoKSBuZWVkcwp0byByZXR1cm4gdG8gaXRzIGNhbGxlcnMgaWYgdGhl IGNoaWxkIGFzIGJlZW4gcXVldWVkCmludG8gYWNjZXB0IHF1ZXVlLgoKV2UgYWxzbyBuZWVkIHRv IG1ha2Ugc3VyZSBsaXN0ZW5lciBpcyBzdGlsbCB0aGVyZSBiZWZvcmUKY2FsbGluZyBzay0+c2tf ZGF0YV9yZWFkeSgpLCBieSBob2xkaW5nIGEgcmVmZXJlbmNlIG9uIGl0LApzaW5jZSB0aGUgcmVm ZXJlbmNlIGNhcnJpZWQgYnkgdGhlIGNoaWxkIGNhbiBkaXNhcHBlYXIgYXMKc29vbiBhcyB0aGUg Y2hpbGQgaXMgcHV0IG9uIGFjY2VwdCBxdWV1ZS4KClJlcG9ydGVkLWJ5OiBJbHlhIERyeW9tb3Yg PGlkcnlvbW92QGdtYWlsLmNvbT4KRml4ZXM6IGViYjUxNmFmNjBlMSAoInRjcC9kY2NwOiBmaXgg cmFjZSBhdCBsaXN0ZW5lciBkaXNtYW50bGUgcGhhc2UiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9pbmV0X2Nvbm5lY3Rpb25f c29jay5oIHwgIDUgKysrLS0KIG5ldC9kY2NwL2lwdjQuYyAgICAgICAgICAgICAgICAgICAgfCAx NCArKysrKysrLS0tLS0tLQogbmV0L2RjY3AvaXB2Ni5jICAgICAgICAgICAgICAgICAgICB8IDE0 ICsrKysrKystLS0tLS0tCiBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jICAgIHwgMTQg KysrKysrKy0tLS0tLS0KIG5ldC9pcHY0L3RjcF9pcHY0LmMgICAgICAgICAgICAgICAgfCAxNCAr KysrKysrLS0tLS0tLQogbmV0L2lwdjYvdGNwX2lwdjYuYyAgICAgICAgICAgICAgICB8IDE0ICsr KysrKystLS0tLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDM3IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmgg Yi9pbmNsdWRlL25ldC9pbmV0X2Nvbm5lY3Rpb25fc29jay5oCmluZGV4IDQ4MWZlMWMuLjQ5ZGNh ZDQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmgKKysrIGIv aW5jbHVkZS9uZXQvaW5ldF9jb25uZWN0aW9uX3NvY2suaApAQCAtMjcwLDggKzI3MCw5IEBAIHN0 cnVjdCBkc3RfZW50cnkgKmluZXRfY3NrX3JvdXRlX2NoaWxkX3NvY2soY29uc3Qgc3RydWN0IHNv Y2sgKnNrLAogCQkJCQkgICAgc3RydWN0IHNvY2sgKm5ld3NrLAogCQkJCQkgICAgY29uc3Qgc3Ry dWN0IHJlcXVlc3Rfc29jayAqcmVxKTsKIAotdm9pZCBpbmV0X2Nza19yZXFza19xdWV1ZV9hZGQo c3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsCi0JCQkgICAgICBzdHJ1 Y3Qgc29jayAqY2hpbGQpOworc3RydWN0IHNvY2sgKmluZXRfY3NrX3JlcXNrX3F1ZXVlX2FkZChz dHJ1Y3Qgc29jayAqc2ssCisJCQkJICAgICAgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxLAorCQkJ CSAgICAgIHN0cnVjdCBzb2NrICpjaGlsZCk7CiB2b2lkIGluZXRfY3NrX3JlcXNrX3F1ZXVlX2hh c2hfYWRkKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxLAogCQkJCSAg IHVuc2lnbmVkIGxvbmcgdGltZW91dCk7CiBzdHJ1Y3Qgc29jayAqaW5ldF9jc2tfY29tcGxldGVf aGFzaGRhbmNlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2sgKmNoaWxkLApkaWZmIC0tZ2l0 IGEvbmV0L2RjY3AvaXB2NC5jIGIvbmV0L2RjY3AvaXB2NC5jCmluZGV4IDU2ODRlMTQuLjkwMmQ2 MDYgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL2lwdjQuYworKysgYi9uZXQvZGNjcC9pcHY0LmMKQEAg LTgyNCwyNiArODI0LDI2IEBAIGxvb2t1cDoKIAogCWlmIChzay0+c2tfc3RhdGUgPT0gRENDUF9O RVdfU1lOX1JFQ1YpIHsKIAkJc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxID0gaW5ldF9yZXFzayhz ayk7Ci0JCXN0cnVjdCBzb2NrICpuc2sgPSBOVUxMOworCQlzdHJ1Y3Qgc29jayAqbnNrOwogCiAJ CXNrID0gcmVxLT5yc2tfbGlzdGVuZXI7Ci0JCWlmIChsaWtlbHkoc2stPnNrX3N0YXRlID09IERD Q1BfTElTVEVOKSkgewotCQkJbnNrID0gZGNjcF9jaGVja19yZXEoc2ssIHNrYiwgcmVxKTsKLQkJ fSBlbHNlIHsKKwkJaWYgKHVubGlrZWx5KHNrLT5za19zdGF0ZSAhPSBEQ0NQX0xJU1RFTikpIHsK IAkJCWluZXRfY3NrX3JlcXNrX3F1ZXVlX2Ryb3BfYW5kX3B1dChzaywgcmVxKTsKIAkJCWdvdG8g bG9va3VwOwogCQl9CisJCXNvY2tfaG9sZChzayk7CisJCW5zayA9IGRjY3BfY2hlY2tfcmVxKHNr LCBza2IsIHJlcSk7CiAJCWlmICghbnNrKSB7CiAJCQlyZXFza19wdXQocmVxKTsKLQkJCWdvdG8g ZGlzY2FyZF9pdDsKKwkJCWdvdG8gZGlzY2FyZF9hbmRfcmVsc2U7CiAJCX0KIAkJaWYgKG5zayA9 PSBzaykgewotCQkJc29ja19ob2xkKHNrKTsKIAkJCXJlcXNrX3B1dChyZXEpOwogCQl9IGVsc2Ug aWYgKGRjY3BfY2hpbGRfcHJvY2VzcyhzaywgbnNrLCBza2IpKSB7CiAJCQlkY2NwX3Y0X2N0bF9z ZW5kX3Jlc2V0KHNrLCBza2IpOwotCQkJZ290byBkaXNjYXJkX2l0OworCQkJZ290byBkaXNjYXJk X2FuZF9yZWxzZTsKIAkJfSBlbHNlIHsKKwkJCXNvY2tfcHV0KHNrKTsKIAkJCXJldHVybiAwOwog CQl9CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L2RjY3AvaXB2Ni5jIGIvbmV0L2RjY3AvaXB2Ni5jCmlu ZGV4IDljNmQwNTAuLmI4NjA4YjcgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL2lwdjYuYworKysgYi9u ZXQvZGNjcC9pcHY2LmMKQEAgLTY5MSwyNiArNjkxLDI2IEBAIGxvb2t1cDoKIAogCWlmIChzay0+ c2tfc3RhdGUgPT0gRENDUF9ORVdfU1lOX1JFQ1YpIHsKIAkJc3RydWN0IHJlcXVlc3Rfc29jayAq cmVxID0gaW5ldF9yZXFzayhzayk7Ci0JCXN0cnVjdCBzb2NrICpuc2sgPSBOVUxMOworCQlzdHJ1 Y3Qgc29jayAqbnNrOwogCiAJCXNrID0gcmVxLT5yc2tfbGlzdGVuZXI7Ci0JCWlmIChsaWtlbHko c2stPnNrX3N0YXRlID09IERDQ1BfTElTVEVOKSkgewotCQkJbnNrID0gZGNjcF9jaGVja19yZXEo c2ssIHNrYiwgcmVxKTsKLQkJfSBlbHNlIHsKKwkJaWYgKHVubGlrZWx5KHNrLT5za19zdGF0ZSAh PSBEQ0NQX0xJU1RFTikpIHsKIAkJCWluZXRfY3NrX3JlcXNrX3F1ZXVlX2Ryb3BfYW5kX3B1dChz aywgcmVxKTsKIAkJCWdvdG8gbG9va3VwOwogCQl9CisJCXNvY2tfaG9sZChzayk7CisJCW5zayA9 IGRjY3BfY2hlY2tfcmVxKHNrLCBza2IsIHJlcSk7CiAJCWlmICghbnNrKSB7CiAJCQlyZXFza19w dXQocmVxKTsKLQkJCWdvdG8gZGlzY2FyZF9pdDsKKwkJCWdvdG8gZGlzY2FyZF9hbmRfcmVsc2U7 CiAJCX0KIAkJaWYgKG5zayA9PSBzaykgewotCQkJc29ja19ob2xkKHNrKTsKIAkJCXJlcXNrX3B1 dChyZXEpOwogCQl9IGVsc2UgaWYgKGRjY3BfY2hpbGRfcHJvY2VzcyhzaywgbnNrLCBza2IpKSB7 CiAJCQlkY2NwX3Y2X2N0bF9zZW5kX3Jlc2V0KHNrLCBza2IpOwotCQkJZ290byBkaXNjYXJkX2l0 OworCQkJZ290byBkaXNjYXJkX2FuZF9yZWxzZTsKIAkJfSBlbHNlIHsKKwkJCXNvY2tfcHV0KHNr KTsKIAkJCXJldHVybiAwOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9jb25u ZWN0aW9uX3NvY2suYyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKaW5kZXggNDZi OWM4OC4uNjQxNDg5MSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2su YworKysgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jCkBAIC03ODksMTQgKzc4OSwx NiBAQCBzdGF0aWMgdm9pZCBpbmV0X2NoaWxkX2ZvcmdldChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVj dCByZXF1ZXN0X3NvY2sgKnJlcSwKIAlyZXFza19wdXQocmVxKTsKIH0KIAotdm9pZCBpbmV0X2Nz a19yZXFza19xdWV1ZV9hZGQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpy ZXEsCi0JCQkgICAgICBzdHJ1Y3Qgc29jayAqY2hpbGQpCitzdHJ1Y3Qgc29jayAqaW5ldF9jc2tf cmVxc2tfcXVldWVfYWRkKHN0cnVjdCBzb2NrICpzaywKKwkJCQkgICAgICBzdHJ1Y3QgcmVxdWVz dF9zb2NrICpyZXEsCisJCQkJICAgICAgc3RydWN0IHNvY2sgKmNoaWxkKQogewogCXN0cnVjdCBy ZXF1ZXN0X3NvY2tfcXVldWUgKnF1ZXVlID0gJmluZXRfY3NrKHNrKS0+aWNza19hY2NlcHRfcXVl dWU7CiAKIAlzcGluX2xvY2soJnF1ZXVlLT5yc2txX2xvY2spOwogCWlmICh1bmxpa2VseShzay0+ c2tfc3RhdGUgIT0gVENQX0xJU1RFTikpIHsKIAkJaW5ldF9jaGlsZF9mb3JnZXQoc2ssIHJlcSwg Y2hpbGQpOworCQljaGlsZCA9IE5VTEw7CiAJfSBlbHNlIHsKIAkJcmVxLT5zayA9IGNoaWxkOwog CQlyZXEtPmRsX25leHQgPSBOVUxMOwpAQCAtODA4LDYgKzgxMCw3IEBAIHZvaWQgaW5ldF9jc2tf cmVxc2tfcXVldWVfYWRkKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVx LAogCQlza19hY2NlcHRxX2FkZGVkKHNrKTsKIAl9CiAJc3Bpbl91bmxvY2soJnF1ZXVlLT5yc2tx X2xvY2spOworCXJldHVybiBjaGlsZDsKIH0KIEVYUE9SVF9TWU1CT0woaW5ldF9jc2tfcmVxc2tf cXVldWVfYWRkKTsKIApAQCAtODE3LDExICs4MjAsOCBAQCBzdHJ1Y3Qgc29jayAqaW5ldF9jc2tf Y29tcGxldGVfaGFzaGRhbmNlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2sgKmNoaWxkLAog CWlmIChvd25fcmVxKSB7CiAJCWluZXRfY3NrX3JlcXNrX3F1ZXVlX2Ryb3Aoc2ssIHJlcSk7CiAJ CXJlcXNrX3F1ZXVlX3JlbW92ZWQoJmluZXRfY3NrKHNrKS0+aWNza19hY2NlcHRfcXVldWUsIHJl cSk7Ci0JCWluZXRfY3NrX3JlcXNrX3F1ZXVlX2FkZChzaywgcmVxLCBjaGlsZCk7Ci0JCS8qIFdh cm5pbmc6IGNhbGxlciBtdXN0IG5vdCBjYWxsIHJlcXNrX3B1dChyZXEpOwotCQkgKiBjaGlsZCBz dG9sZSBsYXN0IHJlZmVyZW5jZSBvbiBpdC4KLQkJICovCi0JCXJldHVybiBjaGlsZDsKKwkJaWYg KGluZXRfY3NrX3JlcXNrX3F1ZXVlX2FkZChzaywgcmVxLCBjaGlsZCkpCisJCQlyZXR1cm4gY2hp bGQ7CiAJfQogCS8qIFRvbyBiYWQsIGFub3RoZXIgY2hpbGQgdG9vayBvd25lcnNoaXAgb2YgdGhl IHJlcXVlc3QsIHVuZG8uICovCiAJYmhfdW5sb2NrX3NvY2soY2hpbGQpOwpkaWZmIC0tZ2l0IGEv bmV0L2lwdjQvdGNwX2lwdjQuYyBiL25ldC9pcHY0L3RjcF9pcHY0LmMKaW5kZXggYmZjZGRlZS4u OGM3ZTYzMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lwdjQuYworKysgYi9uZXQvaXB2NC90 Y3BfaXB2NC5jCkBAIC0xNTk0LDMwICsxNTk0LDMwIEBAIHByb2Nlc3M6CiAKIAlpZiAoc2stPnNr X3N0YXRlID09IFRDUF9ORVdfU1lOX1JFQ1YpIHsKIAkJc3RydWN0IHJlcXVlc3Rfc29jayAqcmVx ID0gaW5ldF9yZXFzayhzayk7Ci0JCXN0cnVjdCBzb2NrICpuc2sgPSBOVUxMOworCQlzdHJ1Y3Qg c29jayAqbnNrOwogCiAJCXNrID0gcmVxLT5yc2tfbGlzdGVuZXI7CiAJCWlmICh1bmxpa2VseSh0 Y3BfdjRfaW5ib3VuZF9tZDVfaGFzaChzaywgc2tiKSkpIHsKIAkJCXJlcXNrX3B1dChyZXEpOwog CQkJZ290byBkaXNjYXJkX2l0OwogCQl9Ci0JCWlmIChsaWtlbHkoc2stPnNrX3N0YXRlID09IFRD UF9MSVNURU4pKSB7Ci0JCQluc2sgPSB0Y3BfY2hlY2tfcmVxKHNrLCBza2IsIHJlcSwgZmFsc2Up OwotCQl9IGVsc2UgeworCQlpZiAodW5saWtlbHkoc2stPnNrX3N0YXRlICE9IFRDUF9MSVNURU4p KSB7CiAJCQlpbmV0X2Nza19yZXFza19xdWV1ZV9kcm9wX2FuZF9wdXQoc2ssIHJlcSk7CiAJCQln b3RvIGxvb2t1cDsKIAkJfQorCQlzb2NrX2hvbGQoc2spOworCQluc2sgPSB0Y3BfY2hlY2tfcmVx KHNrLCBza2IsIHJlcSwgZmFsc2UpOwogCQlpZiAoIW5zaykgewogCQkJcmVxc2tfcHV0KHJlcSk7 Ci0JCQlnb3RvIGRpc2NhcmRfaXQ7CisJCQlnb3RvIGRpc2NhcmRfYW5kX3JlbHNlOwogCQl9CiAJ CWlmIChuc2sgPT0gc2spIHsKLQkJCXNvY2tfaG9sZChzayk7CiAJCQlyZXFza19wdXQocmVxKTsK IAkJfSBlbHNlIGlmICh0Y3BfY2hpbGRfcHJvY2VzcyhzaywgbnNrLCBza2IpKSB7CiAJCQl0Y3Bf djRfc2VuZF9yZXNldChuc2ssIHNrYik7Ci0JCQlnb3RvIGRpc2NhcmRfaXQ7CisJCQlnb3RvIGRp c2NhcmRfYW5kX3JlbHNlOwogCQl9IGVsc2UgeworCQkJc29ja19wdXQoc2spOwogCQkJcmV0dXJu IDA7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni90Y3BfaXB2Ni5jIGIvbmV0L2lwdjYv dGNwX2lwdjYuYwppbmRleCBhZWEwNzFlLi5iOGQ0MDU2IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni90 Y3BfaXB2Ni5jCisrKyBiL25ldC9pcHY2L3RjcF9pcHY2LmMKQEAgLTEzODgsNyArMTM4OCw3IEBA IHByb2Nlc3M6CiAKIAlpZiAoc2stPnNrX3N0YXRlID09IFRDUF9ORVdfU1lOX1JFQ1YpIHsKIAkJ c3RydWN0IHJlcXVlc3Rfc29jayAqcmVxID0gaW5ldF9yZXFzayhzayk7Ci0JCXN0cnVjdCBzb2Nr ICpuc2sgPSBOVUxMOworCQlzdHJ1Y3Qgc29jayAqbnNrOwogCiAJCXNrID0gcmVxLT5yc2tfbGlz dGVuZXI7CiAJCXRjcF92Nl9maWxsX2NiKHNrYiwgaGRyLCB0aCk7CkBAIC0xMzk2LDI0ICsxMzk2 LDI0IEBAIHByb2Nlc3M6CiAJCQlyZXFza19wdXQocmVxKTsKIAkJCWdvdG8gZGlzY2FyZF9pdDsK IAkJfQotCQlpZiAobGlrZWx5KHNrLT5za19zdGF0ZSA9PSBUQ1BfTElTVEVOKSkgewotCQkJbnNr ID0gdGNwX2NoZWNrX3JlcShzaywgc2tiLCByZXEsIGZhbHNlKTsKLQkJfSBlbHNlIHsKKwkJaWYg KHVubGlrZWx5KHNrLT5za19zdGF0ZSAhPSBUQ1BfTElTVEVOKSkgewogCQkJaW5ldF9jc2tfcmVx c2tfcXVldWVfZHJvcF9hbmRfcHV0KHNrLCByZXEpOwogCQkJZ290byBsb29rdXA7CiAJCX0KKwkJ c29ja19ob2xkKHNrKTsKKwkJbnNrID0gdGNwX2NoZWNrX3JlcShzaywgc2tiLCByZXEsIGZhbHNl KTsKIAkJaWYgKCFuc2spIHsKIAkJCXJlcXNrX3B1dChyZXEpOwotCQkJZ290byBkaXNjYXJkX2l0 OworCQkJZ290byBkaXNjYXJkX2FuZF9yZWxzZTsKIAkJfQogCQlpZiAobnNrID09IHNrKSB7Ci0J CQlzb2NrX2hvbGQoc2spOwogCQkJcmVxc2tfcHV0KHJlcSk7CiAJCQl0Y3BfdjZfcmVzdG9yZV9j Yihza2IpOwogCQl9IGVsc2UgaWYgKHRjcF9jaGlsZF9wcm9jZXNzKHNrLCBuc2ssIHNrYikpIHsK IAkJCXRjcF92Nl9zZW5kX3Jlc2V0KG5zaywgc2tiKTsKLQkJCWdvdG8gZGlzY2FyZF9pdDsKKwkJ CWdvdG8gZGlzY2FyZF9hbmRfcmVsc2U7CiAJCX0gZWxzZSB7CisJCQlzb2NrX3B1dChzayk7CiAJ CQlyZXR1cm4gMDsKIAkJfQogCX0KLS0gCjIuMS4wCgoKRnJvbSAyMWY5NmVhNDkwMTI4ZWZkYTg2 N2RiOWUxMmRlNzdhNzc5ODFlYjdjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQaGls IFN1dHRlciA8cGhpbEBud2wuY2M+CkRhdGU6IFdlZCwgMTcgRmViIDIwMTYgMTU6Mzc6NDMgKzAx MDAKU3ViamVjdDogW1BBVENIIDQzLzQ3XSBJRkZfTk9fUVVFVUU6IEZpeCBmb3IgZHJpdmVycyBu b3QgY2FsbGluZyBldGhlcl9zZXR1cCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBhODEzMTA0ZDkyMzMz OTE0NDA3ODkzOTE3NWZhZjRlNjZhY2ExOWI0IF0KCk15IGltcGxlbWVudGF0aW9uIGFyb3VuZCBJ RkZfTk9fUVVFVUUgZHJpdmVyIGZsYWcgYXNzdW1lZCB0aGF0IGxlYXZpbmcKdHhfcXVldWVfbGVu IHVudG91Y2hlZCAoc3BlY2lmaWNhbGx5OiBub3Qgc2V0dGluZyBpdCB0byB6ZXJvKSBieSBkcml2 ZXJzCndvdWxkIG1ha2UgaXQgcG9zc2libGUgdG8gYXNzaWduIGEgcmVndWxhciBxZGlzYyB0byB0 aGVtIHdpdGhvdXQgaGF2aW5nCnRvIHdvcnJ5IGFib3V0IHNldHRpbmcgdHhfcXVldWVfbGVuIHRv IGEgdXNlZnVsIHZhbHVlLiBUaGlzIHdhcyBvbmx5CnBhcnRpYWxseSB0cnVlOiBJIG92ZXJsb29r ZWQgdGhhdCBzb21lIGRyaXZlcnMgZG9uJ3QgY2FsbCBldGhlcl9zZXR1cCgpCmFuZCB0aGVyZWZv cmUgbm90IGluaXRpYWxpemUgdHhfcXVldWVfbGVuIHRvIHRoZSBkZWZhdWx0IHZhbHVlIG9mIDEw MDAuCkNvbnNlcXVlbnRseSwgcmVtb3ZpbmcgdGhlIHdvcmthcm91bmRzIGluIHBsYWNlIGZvciB0 aGF0IGNhc2UgaW4gcWRpc2MKaW1wbGVtZW50YXRpb25zIHdoaWNoIGNhcmVkIGFib3V0IGl0IChu YW1lbHksIHBmaWZvLCBiZmlmbywgZ3JlZCwgaHRiLApwbHVnIGFuZCBzZmIpIGxlYWRzIHRvIHBy b2JsZW1zIHdpdGggdGhlc2Ugc3BlY2lmaWMgaW50ZXJmYWNlIHR5cGVzIGFuZApxZGlzY3MuCgpM dWNraWx5LCB0aGVyZSdzIGFscmVhZHkgYSBzYW5pdGl6YXRpb24gcG9pbnQgZm9yIGRyaXZlcnMg c2V0dGluZwp0eF9xdWV1ZV9sZW4gdG8gemVybywgd2hpY2ggY2FuIGJlIHJldXNlZCB0byBhc3Np Z24gdGhlIGZhbGxiYWNrIHZhbHVlCm1vc3QgcWRpc2MgaW1wbGVtZW50YXRpb25zIHVzZWQsIHdo aWNoIGlzIDEuCgpGaXhlczogMzQ4ZTM0MzVjYmVmYSAoIm5ldDogc2NoZWQ6IGRyb3AgYWxsIHNw ZWNpYWwgaGFuZGxpbmcgb2YgdHhfcXVldWVfbGVuID09IDAiKQpUZXN0ZWQtYnk6IE1hdGhpZXUg RGVzbm95ZXJzIDxtYXRoaWV1LmRlc25veWVyc0BlZmZpY2lvcy5jb20+ClNpZ25lZC1vZmYtYnk6 IFBoaWwgU3V0dGVyIDxwaGlsQG53bC5jYz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2Rldi5jIHwgNCArKystCiAxIGZp bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCA3ZGMxMzdmLi45ZWZiZGIzIDEw MDY0NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtNzEyOCw4 ICs3MTI4LDEwIEBAIHN0cnVjdCBuZXRfZGV2aWNlICphbGxvY19uZXRkZXZfbXFzKGludCBzaXpl b2ZfcHJpdiwgY29uc3QgY2hhciAqbmFtZSwKIAlkZXYtPnByaXZfZmxhZ3MgPSBJRkZfWE1JVF9E U1RfUkVMRUFTRSB8IElGRl9YTUlUX0RTVF9SRUxFQVNFX1BFUk07CiAJc2V0dXAoZGV2KTsKIAot CWlmICghZGV2LT50eF9xdWV1ZV9sZW4pCisJaWYgKCFkZXYtPnR4X3F1ZXVlX2xlbikgewogCQlk ZXYtPnByaXZfZmxhZ3MgfD0gSUZGX05PX1FVRVVFOworCQlkZXYtPnR4X3F1ZXVlX2xlbiA9IDE7 CisJfQogCiAJZGV2LT5udW1fdHhfcXVldWVzID0gdHhxczsKIAlkZXYtPnJlYWxfbnVtX3R4X3F1 ZXVlcyA9IHR4cXM7Ci0tIAoyLjEuMAoKCkZyb20gMzQwNTcwOWEyNDU4YmQ3NDM4NjYzMDk4MWIy M2JiZTRmMTUyZjdlMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW50b24gUHJvdG9w b3BvdiA8YS5zLnByb3RvcG9wb3ZAZ21haWwuY29tPgpEYXRlOiBUdWUsIDE2IEZlYiAyMDE2IDIx OjQzOjE2IC0wNTAwClN1YmplY3Q6IFtQQVRDSCA0NC80N10gcnRubDogUlRNX0dFVE5FVENPTkY6 IGZpeCB3cm9uZyByZXR1cm4gdmFsdWUKClsgVXBzdHJlYW0gY29tbWl0IGE5N2ViMzNmZjIyNWYz NGE4MTI0Nzc0YjMzNzNmZDI0NGYwZTgzY2UgXQoKQW4gZXJyb3IgcmVzcG9uc2UgZnJvbSBhIFJU TV9HRVRORVRDT05GIHJlcXVlc3QgY2FuIHJldHVybiB0aGUgcG9zaXRpdmUKZXJyb3IgdmFsdWUg RUlOVkFMIGluIHRoZSBzdHJ1Y3Qgbmxtc2dlcnIgdGhhdCBjYW4gbWlzbGVhZCB1c2Vyc3BhY2Uu CgpTaWduZWQtb2ZmLWJ5OiBBbnRvbiBQcm90b3BvcG92IDxhLnMucHJvdG9wb3BvdkBnbWFpbC5j b20+CkFja2VkLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9p cHY0L2RldmluZXQuYyAgfCAyICstCiBuZXQvaXB2Ni9hZGRyY29uZi5jIHwgMiArLQogMiBmaWxl cyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L2lwdjQvZGV2aW5ldC5jIGIvbmV0L2lwdjQvZGV2aW5ldC5jCmluZGV4IGNlYmQ5ZDMuLmY2 MzAzYjEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2RldmluZXQuYworKysgYi9uZXQvaXB2NC9kZXZp bmV0LmMKQEAgLTE4NDcsNyArMTg0Nyw3IEBAIHN0YXRpYyBpbnQgaW5ldF9uZXRjb25mX2dldF9k ZXZjb25mKHN0cnVjdCBza19idWZmICppbl9za2IsCiAJaWYgKGVyciA8IDApCiAJCWdvdG8gZXJy b3V0OwogCi0JZXJyID0gRUlOVkFMOworCWVyciA9IC1FSU5WQUw7CiAJaWYgKCF0YltORVRDT05G QV9JRklOREVYXSkKIAkJZ290byBlcnJvdXQ7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJj b25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCmluZGV4IDgyOGFiMjguLmU4ZDNkYTAgMTAwNjQ0 Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25mLmMKKysrIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwpAQCAt NTgzLDcgKzU4Myw3IEBAIHN0YXRpYyBpbnQgaW5ldDZfbmV0Y29uZl9nZXRfZGV2Y29uZihzdHJ1 Y3Qgc2tfYnVmZiAqaW5fc2tiLAogCWlmIChlcnIgPCAwKQogCQlnb3RvIGVycm91dDsKIAotCWVy ciA9IEVJTlZBTDsKKwllcnIgPSAtRUlOVkFMOwogCWlmICghdGJbTkVUQ09ORkFfSUZJTkRFWF0p CiAJCWdvdG8gZXJyb3V0OwogCi0tIAoyLjEuMAoKCkZyb20gN2JiNGU5ZmI2NjhlZmIzY2NhYzUz MDhhZDUzZTc3ZTMxYmU4NGExNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSW5zdSBZ dW4gPHd1bmluc3VAZ21haWwuY29tPgpEYXRlOiBXZWQsIDE3IEZlYiAyMDE2IDExOjQ3OjM1IC0w NTAwClN1YmplY3Q6IFtQQVRDSCA0NS80N10gdGlwYzogdW5sb2NrIGluIGVycm9yIHBhdGgKClsg VXBzdHJlYW0gY29tbWl0IGI1M2NlM2U3ZDQwN2FhNDE5Njg3N2E0OGI4NjAxMTgxMTYyYWIxNTgg XQoKdGlwY19iY2FzdF91bmxvY2sgbmVlZCB0byBiZSB1bmxvY2tlZCBpbiBlcnJvciBwYXRoLgoK U2lnbmVkLW9mZi1ieTogSW5zdSBZdW4gPHd1bmluc3VAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvYmNh c3QuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL2JjYXN0LmMgYi9uZXQvdGlwYy9iY2FzdC5jCmlu ZGV4IDlkYzIzOWQuLjkyZTM2N2EgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL2JjYXN0LmMKKysrIGIv bmV0L3RpcGMvYmNhc3QuYwpAQCAtMzk5LDggKzM5OSwxMCBAQCBpbnQgdGlwY19ubF9hZGRfYmNf bGluayhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX25sX21zZyAqbXNnKQogCiAJaGRyID0g Z2VubG1zZ19wdXQobXNnLT5za2IsIG1zZy0+cG9ydGlkLCBtc2ctPnNlcSwgJnRpcGNfZ2VubF9m YW1pbHksCiAJCQkgIE5MTV9GX01VTFRJLCBUSVBDX05MX0xJTktfR0VUKTsKLQlpZiAoIWhkcikK KwlpZiAoIWhkcikgeworCQl0aXBjX2JjYXN0X3VubG9jayhuZXQpOwogCQlyZXR1cm4gLUVNU0dT SVpFOworCX0KIAogCWF0dHJzID0gbmxhX25lc3Rfc3RhcnQobXNnLT5za2IsIFRJUENfTkxBX0xJ TkspOwogCWlmICghYXR0cnMpCi0tIAoyLjEuMAoKCkZyb20gOTQ0MDVmNTJmMDBkNWNlYTNlNjEy MjUxZGY0NjhjMzlhZmEwYTY5MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkRtaXRy eSBWLiBMZXZpbiIgPGxkdkBhbHRsaW51eC5vcmc+CkRhdGU6IEZyaSwgMTkgRmViIDIwMTYgMDQ6 Mjc6NDggKzAzMDAKU3ViamVjdDogW1BBVENIIDQ2LzQ3XSB1bml4X2RpYWc6IGZpeCBpbmNvcnJl Y3Qgc2lnbiBleHRlbnNpb24gaW4KIHVuaXhfbG9va3VwX2J5X2lubwoKWyBVcHN0cmVhbSBjb21t aXQgYjVmMDU0OTIzMWZmYjAyNTMzN2JlNWE2MjViMGZmOWY1MmIwMTZmMCBdCgpUaGUgdmFsdWUg cGFzc2VkIGJ5IHVuaXhfZGlhZ19nZXRfZXhhY3QgdG8gdW5peF9sb29rdXBfYnlfaW5vIGhhcyB0 eXBlCl9fdTMyLCBidXQgdW5peF9sb29rdXBfYnlfaW5vJ3MgYXJndW1lbnQgaW5vIGhhcyB0eXBl IGludCwgd2hpY2ggaXMgbm90CmEgcHJvYmxlbSB5ZXQuCkhvd2V2ZXIsIHdoZW4gaW5vIGlzIGNv bXBhcmVkIHdpdGggc29ja19pX2lubyByZXR1cm4gdmFsdWUgb2YgdHlwZQp1bnNpZ25lZCBsb25n LCBpbm8gaXMgc2lnbiBleHRlbmRlZCB0byBzaWduZWQgbG9uZywgYW5kIHRoaXMgcmVzdWx0cwp0 byBpbmNvcnJlY3QgY29tcGFyaXNvbiBvbiA2NC1iaXQgYXJjaGl0ZWN0dXJlcyBmb3IgaW5vZGUg bnVtYmVycwpncmVhdGVyIHRoYW4gSU5UX01BWC4KClRoaXMgYnVnIHdhcyBmb3VuZCBieSBzdHJh Y2UgdGVzdCBzdWl0ZS4KCkZpeGVzOiA1ZDNjYWU4YmMzOWQgKCJ1bml4X2RpYWc6IER1bXBpbmcg ZXhhY3Qgc29ja2V0IGNvcmUiKQpTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgVi4gTGV2aW4gPGxkdkBh bHRsaW51eC5vcmc+CkFja2VkLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC91bml4L2RpYWcuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC91bml4L2RpYWcuYyBiL25ldC91bml4 L2RpYWcuYwppbmRleCBjNTEyZjY0Li40ZDk2Nzk3IDEwMDY0NAotLS0gYS9uZXQvdW5peC9kaWFn LmMKKysrIGIvbmV0L3VuaXgvZGlhZy5jCkBAIC0yMjAsNyArMjIwLDcgQEAgZG9uZToKIAlyZXR1 cm4gc2tiLT5sZW47CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qgc29jayAqdW5peF9sb29rdXBfYnlfaW5v KGludCBpbm8pCitzdGF0aWMgc3RydWN0IHNvY2sgKnVuaXhfbG9va3VwX2J5X2lubyh1bnNpZ25l ZCBpbnQgaW5vKQogewogCWludCBpOwogCXN0cnVjdCBzb2NrICpzazsKLS0gCjIuMS4wCgoKRnJv bSA3MTc1ZTIyYzIxYTFhNDIwZWE3MmNhY2E1MTgxNDZmNDNlYzRlMjllIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpEYXRl OiBUaHUsIDE4IEZlYiAyMDE2IDE2OjEwOjU3IC0wNTAwClN1YmplY3Q6IFtQQVRDSCA0Ny80N10g c2N0cDogRml4IHBvcnQgaGFzaCB0YWJsZSBzaXplIGNvbXB1dGF0aW9uCgpbIFVwc3RyZWFtIGNv bW1pdCBkOTc0OWZiNTk0MmY1MTU1NWRjOWNlMWFjMGRiYjE4MDY5NjBhOTc1IF0KCkRtaXRyeSBW eXVrb3Ygbm90ZWQgcmVjZW50bHkgdGhhdCB0aGUgc2N0cF9wb3J0X2hhc2h0YWJsZSBoYWQgYW4g ZXJyb3IgaW4KaXRzIHNpemUgY29tcHV0YXRpb24sIG9ic2VydmluZyB0aGF0IHRoZSBjdXJyZW50 IG1ldGhvZCBuZXZlciBndWFyYW50ZWVkCnRoYXQgdGhlIGhhc2hzaXplIChtZWFzdXJlZCBpbiBu dW1iZXIgb2YgZW50cmllcykgd291bGQgYmUgYSBwb3dlciBvZiB0d28sCndoaWNoIHRoZSBpbnB1 dCBoYXNoIGZ1bmN0aW9uIGZvciB0aGF0IHRhYmxlIHJlcXVpcmVzLiAgVGhlIHJvb3QgY2F1c2Ug b2YKdGhlIHByb2JsZW0gaXMgdGhhdCB0d28gdmFsdWVzIG5lZWQgdG8gYmUgY29tcHV0ZWQgKG9u ZSwgdGhlIGFsbG9jYXRpb24Kb3JkZXIgb2YgdGhlIHN0b3JhZ2UgcmVxdXJpZXMsIGFzIHBhc3Nl ZCB0byBfX2dldF9mcmVlX3BhZ2VzLCBhbmQgdHdvIHRoZQpudW1iZXIgb2YgZW50cmllcyBmb3Ig dGhlIGhhc2ggdGFibGUpLiAgQm90aCBuZWVkIHRvIGJlIF4yLCBidXQgZm9yCmRpZmZlcmVudCBy ZWFzb25zLCBhbmQgdGhlIGV4aXN0aW5nIGNvZGUgaXMgc2ltcGx5IGNvbXB1dGluZyBvbmUgb3Jk ZXIKdmFsdWUsIGFuZCB1c2luZyBpdCBhcyB0aGUgYmFzaXMgZm9yIGJvdGgsIHdoaWNoIGlzIHdy b25nIChpLmUuIGl0IGFzc3VtZXMKdGhhdCAoKDE8PG9yZGVyKSpQQUdFX1NJWkUpL3NpemVvZihi dWNrZXQpIGlzIHN0aWxsIF4yIHdoZW4gaXRzIG5vdCkuCgpUbyBmaXggdGhpcywgd2UgY2hhbmdl IHRoZSBsb2dpYyBzbGlnaHRseS4gIFdlIHN0YXJ0IGJ5IGNvbXB1dGluZyBhIGdvYWwKYWxsb2Nh dGlvbiBvcmRlciAod2hpY2ggaXMgbGltaXRlZCBieSB0aGUgbWF4aW11bSBzaXplIGhhc2ggdGFi bGUgd2Ugd2FudAp0byBzdXBwb3J0LiAgVGhlbiB3ZSBhdHRlbXB0IHRvIGFsbG9jYXRlIHRoYXQg c2l6ZSB0YWJsZSwgZGVjcmVhc2luZyB0aGUKb3JkZXIgdW50aWwgYSBzdWNjZXNzZnVsIGFsbG9j YXRpb24gaXMgbWFkZS4gIFRoZW4sIHdpdGggdGhlIHJlc3VsdGFudApzdWNjZXNzZnVsIG9yZGVy IHdlIGNvbXB1dGUgdGhlIG51bWJlciBvZiBidWNrZXRzIHRoYXQgaGFzaCB0YWJsZSBzdXBwb3J0 cywKd2hpY2ggd2UgdGhlbiByb3VuZCBkb3duIHRvIHRoZSBuZWFyZXN0IHBvd2VyIG9mIHR3bywg Z2l2aW5nIHVzIHRoZSBudW1iZXIKb2YgZW50cmllcyB0aGUgdGFibGUgYWN0dWFsbHkgc3VwcG9y dHMuCgpJJ3ZlIHRlc3RlZCB0aGlzIGxvY2FsbHkgaGVyZSwgdXNpbmcgbm9uLWRlYnVnIGFuZCBz cGlubG9jay1kZWJ1ZyBrZXJuZWxzLAphbmQgdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBo YXNodGFibGUgY29uc2lzdGVudGx5IHdvcmsgb3V0IHRvIGJlCnBvd2VycyBvZiB0d28gaW4gYWxs IGNhc2VzLgoKU2lnbmVkLW9mZi1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNv bT4KUmVwb3J0ZWQtYnk6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KQ0M6IERt aXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KQ0M6IFZsYWRpc2xhdiBZYXNldmljaCA8 dnlhc2V2aWNoQGdtYWlsLmNvbT4KQ0M6ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L3NjdHAvcHJvdG9jb2wuYyB8IDQzICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCA3 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3Byb3RvY29sLmMgYi9uZXQvc2N0 cC9wcm90b2NvbC5jCmluZGV4IDNkOWVhOWEuLjhiNGZmMzEgMTAwNjQ0Ci0tLSBhL25ldC9zY3Rw L3Byb3RvY29sLmMKKysrIGIvbmV0L3NjdHAvcHJvdG9jb2wuYwpAQCAtNjAsNiArNjAsOCBAQAog I2luY2x1ZGUgPG5ldC9pbmV0X2NvbW1vbi5oPgogI2luY2x1ZGUgPG5ldC9pbmV0X2Vjbi5oPgog CisjZGVmaW5lIE1BWF9TQ1RQX1BPUlRfSEFTSF9FTlRSSUVTICg2NCAqIDEwMjQpCisKIC8qIEds b2JhbCBkYXRhIHN0cnVjdHVyZXMuICovCiBzdHJ1Y3Qgc2N0cF9nbG9iYWxzIHNjdHBfZ2xvYmFs cyBfX3JlYWRfbW9zdGx5OwogCkBAIC0xMzUyLDYgKzEzNTQsOCBAQCBzdGF0aWMgX19pbml0IGlu dCBzY3RwX2luaXQodm9pZCkKIAl1bnNpZ25lZCBsb25nIGxpbWl0OwogCWludCBtYXhfc2hhcmU7 CiAJaW50IG9yZGVyOworCWludCBudW1fZW50cmllczsKKwlpbnQgbWF4X2VudHJ5X29yZGVyOwog CiAJc29ja19za2JfY2JfY2hlY2tfc2l6ZShzaXplb2Yoc3RydWN0IHNjdHBfdWxwZXZlbnQpKTsK IApAQCAtMTQwNCwxNCArMTQwOCwyNCBAQCBzdGF0aWMgX19pbml0IGludCBzY3RwX2luaXQodm9p ZCkKIAogCS8qIFNpemUgYW5kIGFsbG9jYXRlIHRoZSBhc3NvY2lhdGlvbiBoYXNoIHRhYmxlLgog CSAqIFRoZSBtZXRob2RvbG9neSBpcyBzaW1pbGFyIHRvIHRoYXQgb2YgdGhlIHRjcCBoYXNoIHRh Ymxlcy4KKwkgKiBUaG91Z2ggbm90IGlkZW50aWNhbC4gIFN0YXJ0IGJ5IGdldHRpbmcgYSBnb2Fs IHNpemUKIAkgKi8KIAlpZiAodG90YWxyYW1fcGFnZXMgPj0gKDEyOCAqIDEwMjQpKQogCQlnb2Fs ID0gdG90YWxyYW1fcGFnZXMgPj4gKDIyIC0gUEFHRV9TSElGVCk7CiAJZWxzZQogCQlnb2FsID0g dG90YWxyYW1fcGFnZXMgPj4gKDI0IC0gUEFHRV9TSElGVCk7CiAKLQlmb3IgKG9yZGVyID0gMDsg KDFVTCA8PCBvcmRlcikgPCBnb2FsOyBvcmRlcisrKQotCQk7CisJLyogVGhlbiBjb21wdXRlIHRo ZSBwYWdlIG9yZGVyIGZvciBzYWlkIGdvYWwgKi8KKwlvcmRlciA9IGdldF9vcmRlcihnb2FsKTsK KworCS8qIE5vdyBjb21wdXRlIHRoZSByZXF1aXJlZCBwYWdlIG9yZGVyIGZvciB0aGUgbWF4aW11 bSBzaXplZCB0YWJsZSB3ZQorCSAqIHdhbnQgdG8gY3JlYXRlCisJICovCisJbWF4X2VudHJ5X29y ZGVyID0gZ2V0X29yZGVyKE1BWF9TQ1RQX1BPUlRfSEFTSF9FTlRSSUVTICoKKwkJCQkgICAgc2l6 ZW9mKHN0cnVjdCBzY3RwX2JpbmRfaGFzaGJ1Y2tldCkpOworCisJLyogTGltaXQgdGhlIHBhZ2Ug b3JkZXIgYnkgdGhhdCBtYXhpbXVtIGhhc2ggdGFibGUgc2l6ZSAqLworCW9yZGVyID0gbWluKG9y ZGVyLCBtYXhfZW50cnlfb3JkZXIpOwogCiAJZG8gewogCQlzY3RwX2Fzc29jX2hhc2hzaXplID0g KDFVTCA8PCBvcmRlcikgKiBQQUdFX1NJWkUgLwpAQCAtMTQ0NSwyMCArMTQ1OSwzNSBAQCBzdGF0 aWMgX19pbml0IGludCBzY3RwX2luaXQodm9pZCkKIAkJSU5JVF9ITElTVF9IRUFEKCZzY3RwX2Vw X2hhc2h0YWJsZVtpXS5jaGFpbik7CiAJfQogCi0JLyogQWxsb2NhdGUgYW5kIGluaXRpYWxpemUg dGhlIFNDVFAgcG9ydCBoYXNoIHRhYmxlLiAgKi8KKwkvKiBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6 ZSB0aGUgU0NUUCBwb3J0IGhhc2ggdGFibGUuCisJICogTm90ZSB0aGF0IG9yZGVyIGlzIGluaXRh bGl6ZWQgdG8gc3RhcnQgYXQgdGhlIG1heCBzaXplZAorCSAqIHRhYmxlIHdlIHdhbnQgdG8gc3Vw cG9ydC4gIElmIHdlIGNhbid0IGdldCB0aGF0IG1hbnkgcGFnZXMKKwkgKiByZWR1Y2UgdGhlIG9y ZGVyIGFuZCB0cnkgYWdhaW4KKwkgKi8KIAlkbyB7Ci0JCXNjdHBfcG9ydF9oYXNoc2l6ZSA9ICgx VUwgPDwgb3JkZXIpICogUEFHRV9TSVpFIC8KLQkJCQkJc2l6ZW9mKHN0cnVjdCBzY3RwX2JpbmRf aGFzaGJ1Y2tldCk7Ci0JCWlmICgoc2N0cF9wb3J0X2hhc2hzaXplID4gKDY0ICogMTAyNCkpICYm IG9yZGVyID4gMCkKLQkJCWNvbnRpbnVlOwogCQlzY3RwX3BvcnRfaGFzaHRhYmxlID0gKHN0cnVj dCBzY3RwX2JpbmRfaGFzaGJ1Y2tldCAqKQogCQkJX19nZXRfZnJlZV9wYWdlcyhHRlBfQVRPTUlD fF9fR0ZQX05PV0FSTiwgb3JkZXIpOwogCX0gd2hpbGUgKCFzY3RwX3BvcnRfaGFzaHRhYmxlICYm IC0tb3JkZXIgPiAwKTsKKwogCWlmICghc2N0cF9wb3J0X2hhc2h0YWJsZSkgewogCQlwcl9lcnIo IkZhaWxlZCBiaW5kIGhhc2ggYWxsb2NcbiIpOwogCQlzdGF0dXMgPSAtRU5PTUVNOwogCQlnb3Rv IGVycl9iaGFzaF9hbGxvYzsKIAl9CisKKwkvKiBOb3cgY29tcHV0ZSB0aGUgbnVtYmVyIG9mIGVu dHJpZXMgdGhhdCB3aWxsIGZpdCBpbiB0aGUKKwkgKiBwb3J0IGhhc2ggc3BhY2Ugd2UgYWxsb2Nh dGVkCisJICovCisJbnVtX2VudHJpZXMgPSAoMVVMIDw8IG9yZGVyKSAqIFBBR0VfU0laRSAvCisJ CSAgICAgIHNpemVvZihzdHJ1Y3Qgc2N0cF9iaW5kX2hhc2hidWNrZXQpOworCisJLyogQW5kIGZp bmlzaCBieSByb3VuZGluZyBpdCBkb3duIHRvIHRoZSBuZWFyZXN0IHBvd2VyIG9mIHR3bworCSAq IHRoaXMgd2FzdGVzIHNvbWUgbWVtb3J5IG9mIGNvdXJzZSwgYnV0IGl0cyBuZWVkZWQgYmVjYXVz ZQorCSAqIHRoZSBoYXNoIGZ1bmN0aW9uIG9wZXJhdGVzIGJhc2VkIG9uIHRoZSBhc3N1bXB0aW9u IHRoYXQKKwkgKiB0aGF0IHRoZSBudW1iZXIgb2YgZW50cmllcyBpcyBhIHBvd2VyIG9mIHR3bwor CSAqLworCXNjdHBfcG9ydF9oYXNoc2l6ZSA9IHJvdW5kZG93bl9wb3dfb2ZfdHdvKG51bV9lbnRy aWVzKTsKKwogCWZvciAoaSA9IDA7IGkgPCBzY3RwX3BvcnRfaGFzaHNpemU7IGkrKykgewogCQlz cGluX2xvY2tfaW5pdCgmc2N0cF9wb3J0X2hhc2h0YWJsZVtpXS5sb2NrKTsKIAkJSU5JVF9ITElT VF9IRUFEKCZzY3RwX3BvcnRfaGFzaHRhYmxlW2ldLmNoYWluKTsKLS0gCjIuMS4wCgo= ----Next_Part(Mon_Feb_29_16_56_15_2016_397)----