From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:56740 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752154AbdHHXV2 (ORCPT ); Tue, 8 Aug 2017 19:21:28 -0400 Received: from localhost (74-93-104-98-Washington.hfc.comcastbusiness.net [74.93.104.98]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id BBC7E120FBEBF for ; Tue, 8 Aug 2017 16:21:26 -0700 (PDT) Date: Tue, 08 Aug 2017 16:21:26 -0700 (PDT) Message-Id: <20170808.162126.1884197973683666949.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(Tue_Aug__8_16_21_26_2017_796)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Tue_Aug__8_16_21_26_2017_796)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for 4.9.x and 4.12.x -stable, respectively. Thanks! ----Next_Part(Tue_Aug__8_16_21_26_2017_796)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_49.mbox" RnJvbSBhZmZjOGIzYzcyNmI3MjYzM2IxY2MxMTBhYzUyZTJhNjJkNGQzMzYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4K RGF0ZTogRnJpLCAxNCBKdWwgMjAxNyAxNzo0OToyMSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDEv MjhdIHRjcF9iYnI6IGN1dCBwYWNpbmcgcmF0ZSBvbmx5IGlmIGZpbGxlZCBwaXBlCgpbIFVwc3Ry ZWFtIGNvbW1pdCA0YWVhMjg3ZTkwZGQ2MWE0ODI2OGZmMjk5NGI1NmY5Nzk5NDQxYjYyIF0KCklu IGJicl9zZXRfcGFjaW5nX3JhdGUoKSwgd2hpY2ggZGVjaWRlcyB3aGV0aGVyIHRvIGN1dCB0aGUg cGFjaW5nCnJhdGUsIHRoZXJlIHdhcyBzb21lIGNvZGUgdGhhdCBjb25zaWRlcmVkIGV4aXRpbmcg U1RBUlRVUCB0byBiZQplcXVpdmFsZW50IHRvIHRoZSBub3Rpb24gb2YgZmlsbGluZyB0aGUgcGlw ZSAoaS5lLiwKYmJyX2Z1bGxfYndfcmVhY2hlZCgpKS4gU3BlY2lmaWNhbGx5LCBhcyB0aGUgY29k ZSB3YXMgc3RydWN0dXJlZCwKZXhpdGluZyBTVEFSVFVQIGFuZCBnb2luZyBpbnRvIFBST0JFX1JU VCBjb3VsZCBjYXVzZSB1cyB0byBjdXQgdGhlCnBhY2luZyByYXRlIGRvd24gdG8gc29tZXRoaW5n IHNpbGx5IGFuZCBsb3csIGJhc2VkIG9uIHdoYXRldmVyCmJhbmR3aWR0aCBzYW1wbGVzIHdlJ3Zl IGhhZCBzbyBmYXIsIHdoZW4gaXQncyBwb3NzaWJsZSB0aGF0IGFsbCBvZgp0aGVtIGhhdmUgYmVl biBzbWFsbCBhcHAtbGltaXRlZCBiYW5kd2lkdGggc2FtcGxlcyB0aGF0IGFyZSBub3QKcmVwcmVz ZW50YXRpdmUgb2YgdGhlIGJhbmR3aWR0aCBhdmFpbGFibGUgaW4gdGhlIHBhdGguIChUaGUgY29k ZSB3YXMKY29ycmVjdCBhdCB0aGUgdGltZSBpdCB3YXMgd3JpdHRlbiwgYnV0IHRoZSBzdGF0ZSBt YWNoaW5lIGNoYW5nZWQKd2l0aG91dCB0aGlzIHNwb3QgYmVpbmcgYWRqdXN0ZWQgY29ycmVzcG9u ZGluZ2x5LikKCkZpeGVzOiAwZjg3ODJlYTE0OTcgKCJ0Y3BfYmJyOiBhZGQgQkJSIGNvbmdlc3Rp b24gY29udHJvbCIpClNpZ25lZC1vZmYtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogU29oZWlsIEhhc3NhcyBZZWdhbmVoIDxzb2hlaWxAZ29vZ2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9pcHY0L3RjcF9iYnIuYyB8IDMgKy0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2Jici5jIGIvbmV0 L2lwdjQvdGNwX2Jici5jCmluZGV4IDBlYTY2YzJjOTM0NC4uOWUzZDQzOGZhZWY4IDEwMDY0NAot LS0gYS9uZXQvaXB2NC90Y3BfYmJyLmMKKysrIGIvbmV0L2lwdjQvdGNwX2Jici5jCkBAIC0xOTEs MTIgKzE5MSwxMSBAQCBzdGF0aWMgdTY0IGJicl9yYXRlX2J5dGVzX3Blcl9zZWMoc3RydWN0IHNv Y2sgKnNrLCB1NjQgcmF0ZSwgaW50IGdhaW4pCiAgKi8KIHN0YXRpYyB2b2lkIGJicl9zZXRfcGFj aW5nX3JhdGUoc3RydWN0IHNvY2sgKnNrLCB1MzIgYncsIGludCBnYWluKQogewotCXN0cnVjdCBi YnIgKmJiciA9IGluZXRfY3NrX2NhKHNrKTsKIAl1NjQgcmF0ZSA9IGJ3OwogCiAJcmF0ZSA9IGJi cl9yYXRlX2J5dGVzX3Blcl9zZWMoc2ssIHJhdGUsIGdhaW4pOwogCXJhdGUgPSBtaW5fdCh1NjQs IHJhdGUsIHNrLT5za19tYXhfcGFjaW5nX3JhdGUpOwotCWlmIChiYnItPm1vZGUgIT0gQkJSX1NU QVJUVVAgfHwgcmF0ZSA+IHNrLT5za19wYWNpbmdfcmF0ZSkKKwlpZiAoYmJyX2Z1bGxfYndfcmVh Y2hlZChzaykgfHwgcmF0ZSA+IHNrLT5za19wYWNpbmdfcmF0ZSkKIAkJc2stPnNrX3BhY2luZ19y YXRlID0gcmF0ZTsKIH0KIAotLSAKMi4xMy40CgoKRnJvbSBiZDYxMjNhODc2ZGZmYzRjYTQxYTM0 MWJiNzRjYzY5NGY4Y2UzZTJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOZWFsIENh cmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAxNCBKdWwgMjAxNyAxNzo0 OToyMiAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMjhdIHRjcF9iYnI6IGludHJvZHVjZSBiYnJf YndfdG9fcGFjaW5nX3JhdGUoKSBoZWxwZXIKClsgVXBzdHJlYW0gY29tbWl0IGYxOWZkNjJkYWZh ZjFlZDZjZjYxNWRiYTY1NWI4MmZhOWRmNTkwNzQgXQoKSW50cm9kdWNlIGEgaGVscGVyIHRvIGNv bnZlcnQgYSBCQlIgYmFuZHdpZHRoIGFuZCBnYWluIGZhY3RvciB0byBhCnBhY2luZyByYXRlIGlu IGJ5dGVzIHBlciBzZWNvbmQuIFRoaXMgaXMgYSBwdXJlIHJlZmFjdG9yLCBidXQgaXMKbmVlZGVk IGZvciB0d28gZm9sbG93aW5nIGZpeGVzLgoKRml4ZXM6IDBmODc4MmVhMTQ5NyAoInRjcF9iYnI6 IGFkZCBCQlIgY29uZ2VzdGlvbiBjb250cm9sIikKU2lnbmVkLW9mZi1ieTogTmVhbCBDYXJkd2Vs bCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFl1Y2h1bmcgQ2hlbmcgPHlj aGVuZ0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNv aGVpbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX2Jici5jIHwgMTQgKysrKysrKysrKystLS0K IDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC9pcHY0L3RjcF9iYnIuYyBiL25ldC9pcHY0L3RjcF9iYnIuYwppbmRleCA5ZTNk NDM4ZmFlZjguLjVjNWM5ZjFlZjkxMyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2Jici5jCisr KyBiL25ldC9pcHY0L3RjcF9iYnIuYwpAQCAtMTgyLDYgKzE4MiwxNiBAQCBzdGF0aWMgdTY0IGJi cl9yYXRlX2J5dGVzX3Blcl9zZWMoc3RydWN0IHNvY2sgKnNrLCB1NjQgcmF0ZSwgaW50IGdhaW4p CiAJcmV0dXJuIHJhdGUgPj4gQldfU0NBTEU7CiB9CiAKKy8qIENvbnZlcnQgYSBCQlIgYncgYW5k IGdhaW4gZmFjdG9yIHRvIGEgcGFjaW5nIHJhdGUgaW4gYnl0ZXMgcGVyIHNlY29uZC4gKi8KK3N0 YXRpYyB1MzIgYmJyX2J3X3RvX3BhY2luZ19yYXRlKHN0cnVjdCBzb2NrICpzaywgdTMyIGJ3LCBp bnQgZ2FpbikKK3sKKwl1NjQgcmF0ZSA9IGJ3OworCisJcmF0ZSA9IGJicl9yYXRlX2J5dGVzX3Bl cl9zZWMoc2ssIHJhdGUsIGdhaW4pOworCXJhdGUgPSBtaW5fdCh1NjQsIHJhdGUsIHNrLT5za19t YXhfcGFjaW5nX3JhdGUpOworCXJldHVybiByYXRlOworfQorCiAvKiBQYWNlIHVzaW5nIGN1cnJl bnQgYncgZXN0aW1hdGUgYW5kIGEgZ2FpbiBmYWN0b3IuIEluIG9yZGVyIHRvIGhlbHAgZHJpdmUg dGhlCiAgKiBuZXR3b3JrIHRvd2FyZCBsb3dlciBxdWV1ZXMgd2hpbGUgbWFpbnRhaW5pbmcgaGln aCB1dGlsaXphdGlvbiBhbmQgbG93CiAgKiBsYXRlbmN5LCB0aGUgYXZlcmFnZSBwYWNpbmcgcmF0 ZSBhaW1zIHRvIGJlIHNsaWdodGx5ICh+MSUpIGxvd2VyIHRoYW4gdGhlCkBAIC0xOTEsMTAgKzIw MSw4IEBAIHN0YXRpYyB1NjQgYmJyX3JhdGVfYnl0ZXNfcGVyX3NlYyhzdHJ1Y3Qgc29jayAqc2ss IHU2NCByYXRlLCBpbnQgZ2FpbikKICAqLwogc3RhdGljIHZvaWQgYmJyX3NldF9wYWNpbmdfcmF0 ZShzdHJ1Y3Qgc29jayAqc2ssIHUzMiBidywgaW50IGdhaW4pCiB7Ci0JdTY0IHJhdGUgPSBidzsK Kwl1MzIgcmF0ZSA9IGJicl9id190b19wYWNpbmdfcmF0ZShzaywgYncsIGdhaW4pOwogCi0JcmF0 ZSA9IGJicl9yYXRlX2J5dGVzX3Blcl9zZWMoc2ssIHJhdGUsIGdhaW4pOwotCXJhdGUgPSBtaW5f dCh1NjQsIHJhdGUsIHNrLT5za19tYXhfcGFjaW5nX3JhdGUpOwogCWlmIChiYnJfZnVsbF9id19y ZWFjaGVkKHNrKSB8fCByYXRlID4gc2stPnNrX3BhY2luZ19yYXRlKQogCQlzay0+c2tfcGFjaW5n X3JhdGUgPSByYXRlOwogfQotLSAKMi4xMy40CgoKRnJvbSBlMjVmMjJkN2YwNDMxYTE2OTZjMmMx MGY4MjdiNGQ4N2NkYjRmNDFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOZWFsIENh cmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAxNCBKdWwgMjAxNyAxNzo0 OToyMyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMjhdIHRjcF9iYnI6IGludHJvZHVjZSBiYnJf aW5pdF9wYWNpbmdfcmF0ZV9mcm9tX3J0dCgpCiBoZWxwZXIKClsgVXBzdHJlYW0gY29tbWl0IDc5 MTM1Yjg5YjhhZjMwNDQ1NmJkNjc5MTZiODAxMTZkZGYwM2Q3YjYgXQoKSW50cm9kdWNlIGEgaGVs cGVyIHRvIGluaXRpYWxpemUgdGhlIEJCUiBwYWNpbmcgcmF0ZSB1bmNvbmRpdGlvbmFsbHksCmJh c2VkIG9uIHRoZSBjdXJyZW50IGN3bmQgYW5kIFJUVCBlc3RpbWF0ZS4gVGhpcyBpcyBhIHB1cmUg cmVmYWN0b3IsCmJ1dCBpcyBuZWVkZWQgZm9yIHR3byBmb2xsb3dpbmcgZml4ZXMuCgpGaXhlczog MGY4NzgyZWExNDk3ICgidGNwX2JicjogYWRkIEJCUiBjb25nZXN0aW9uIGNvbnRyb2wiKQpTaWdu ZWQtb2ZmLWJ5OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9m Zi1ieTogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFNv aGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3BfYmJy LmMgfCAyMyArKysrKysrKysrKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE4IGluc2Vy dGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2Jici5j IGIvbmV0L2lwdjQvdGNwX2Jici5jCmluZGV4IDVjNWM5ZjFlZjkxMy4uYzdhNGMzZjk1MDE2IDEw MDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfYmJyLmMKKysrIGIvbmV0L2lwdjQvdGNwX2Jici5jCkBA IC0xOTIsNiArMTkyLDIzIEBAIHN0YXRpYyB1MzIgYmJyX2J3X3RvX3BhY2luZ19yYXRlKHN0cnVj dCBzb2NrICpzaywgdTMyIGJ3LCBpbnQgZ2FpbikKIAlyZXR1cm4gcmF0ZTsKIH0KIAorLyogSW5p dGlhbGl6ZSBwYWNpbmcgcmF0ZSB0bzogaGlnaF9nYWluICogaW5pdF9jd25kIC8gUlRULiAqLwor c3RhdGljIHZvaWQgYmJyX2luaXRfcGFjaW5nX3JhdGVfZnJvbV9ydHQoc3RydWN0IHNvY2sgKnNr KQoreworCXN0cnVjdCB0Y3Bfc29jayAqdHAgPSB0Y3Bfc2soc2spOworCXU2NCBidzsKKwl1MzIg cnR0X3VzOworCisJaWYgKHRwLT5zcnR0X3VzKSB7CQkvKiBhbnkgUlRUIHNhbXBsZSB5ZXQ/ICov CisJCXJ0dF91cyA9IG1heCh0cC0+c3J0dF91cyA+PiAzLCAxVSk7CisJfSBlbHNlIHsJCQkgLyog bm8gUlRUIHNhbXBsZSB5ZXQgKi8KKwkJcnR0X3VzID0gVVNFQ19QRVJfTVNFQzsJIC8qIHVzZSBu b21pbmFsIGRlZmF1bHQgUlRUICovCisJfQorCWJ3ID0gKHU2NCl0cC0+c25kX2N3bmQgKiBCV19V TklUOworCWRvX2RpdihidywgcnR0X3VzKTsKKwlzay0+c2tfcGFjaW5nX3JhdGUgPSBiYnJfYndf dG9fcGFjaW5nX3JhdGUoc2ssIGJ3LCBiYnJfaGlnaF9nYWluKTsKK30KKwogLyogUGFjZSB1c2lu ZyBjdXJyZW50IGJ3IGVzdGltYXRlIGFuZCBhIGdhaW4gZmFjdG9yLiBJbiBvcmRlciB0byBoZWxw IGRyaXZlIHRoZQogICogbmV0d29yayB0b3dhcmQgbG93ZXIgcXVldWVzIHdoaWxlIG1haW50YWlu aW5nIGhpZ2ggdXRpbGl6YXRpb24gYW5kIGxvdwogICogbGF0ZW5jeSwgdGhlIGF2ZXJhZ2UgcGFj aW5nIHJhdGUgYWltcyB0byBiZSBzbGlnaHRseSAofjElKSBsb3dlciB0aGFuIHRoZQpAQCAtNzc2 LDcgKzc5Myw2IEBAIHN0YXRpYyB2b2lkIGJicl9pbml0KHN0cnVjdCBzb2NrICpzaykKIHsKIAlz dHJ1Y3QgdGNwX3NvY2sgKnRwID0gdGNwX3NrKHNrKTsKIAlzdHJ1Y3QgYmJyICpiYnIgPSBpbmV0 X2Nza19jYShzayk7Ci0JdTY0IGJ3OwogCiAJYmJyLT5wcmlvcl9jd25kID0gMDsKIAliYnItPnRz b19zZWdzX2dvYWwgPSAwOwkgLyogZGVmYXVsdCBzZWdzIHBlciBza2IgdW50aWwgZmlyc3QgQUNL ICovCkBAIC03OTIsMTEgKzgwOCw4IEBAIHN0YXRpYyB2b2lkIGJicl9pbml0KHN0cnVjdCBzb2Nr ICpzaykKIAogCW1pbm1heF9yZXNldCgmYmJyLT5idywgYmJyLT5ydHRfY250LCAwKTsgIC8qIGlu aXQgbWF4IGJ3IHRvIDAgKi8KIAotCS8qIEluaXRpYWxpemUgcGFjaW5nIHJhdGUgdG86IGhpZ2hf Z2FpbiAqIGluaXRfY3duZCAvIFJUVC4gKi8KLQlidyA9ICh1NjQpdHAtPnNuZF9jd25kICogQldf VU5JVDsKLQlkb19kaXYoYncsICh0cC0+c3J0dF91cyA+PiAzKSA/IDogVVNFQ19QRVJfTVNFQyk7 CiAJc2stPnNrX3BhY2luZ19yYXRlID0gMDsJCS8qIGZvcmNlIGFuIHVwZGF0ZSBvZiBza19wYWNp bmdfcmF0ZSAqLwotCWJicl9zZXRfcGFjaW5nX3JhdGUoc2ssIGJ3LCBiYnJfaGlnaF9nYWluKTsK KwliYnJfaW5pdF9wYWNpbmdfcmF0ZV9mcm9tX3J0dChzayk7CiAKIAliYnItPnJlc3RvcmVfY3du ZCA9IDA7CiAJYmJyLT5yb3VuZF9zdGFydCA9IDA7Ci0tIAoyLjEzLjQKCgpGcm9tIGNjMzhjMmYw YzQ5ZGFkMzEzMWU5N2IxNDIxM2FjZGM0YWJkZjczMjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpEYXRlOiBGcmksIDE0 IEp1bCAyMDE3IDE3OjQ5OjI0IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwNC8yOF0gdGNwX2Jicjog cmVtb3ZlIHNrX3BhY2luZ19yYXRlPTAgdHJhbnNpZW50IGR1cmluZyBpbml0CgpbIFVwc3RyZWFt IGNvbW1pdCAxZDM2NDhlYjVkMWZlOWVkM2QwOTVlZDhmYTE5YWQxMWNhNGM4YmMwIF0KCkZpeCBh IGNvcm5lciBjYXNlIG5vdGljZWQgYnkgRXJpYyBEdW1hemV0LCB3aGVyZSBCQlIncyBzZXR0aW5n CnNrLT5za19wYWNpbmdfcmF0ZSB0byAwIGR1cmluZyBpbml0aWFsaXphdGlvbiBjb3VsZCB0aGVv cmV0aWNhbGx5CmNhdXNlIHBhY2tldHMgaW4gdGhlIHNlbmRpbmcgaG9zdCB0byBoYW5nIGlmIHRo ZXJlIHdlcmUgcGFja2V0cyAiaW4KZmxpZ2h0IiBpbiB0aGUgcGFjaW5nIGluZnJhc3RydWN0dXJl IGF0IHRoZSB0aW1lIHRoZSBCQlIgY29uZ2VzdGlvbgpjb250cm9sIHN0YXRlIGlzIGluaXRpYWxp emVkLiBUaGlzIGNvdWxkIG9jY3VyIGlmIHRoZSBwYWNpbmcKaW5mcmFzdHJ1Y3R1cmUgaGFwcGVu ZWQgdG8gcmFjZSB3aXRoIGJicl9pbml0KCkgaW4gYSB3YXkgc3VjaCB0aGF0IHRoZQpwYWNlciBy ZWFkIHRoZSAwIHJhdGhlciB0aGFuIHRoZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgbm9uLXplcm8g cGFjaW5nCnJhdGUuCgpGaXhlczogMGY4NzgyZWExNDk3ICgidGNwX2JicjogYWRkIEJCUiBjb25n ZXN0aW9uIGNvbnRyb2wiKQpSZXBvcnRlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNv bT4KU2lnbmVkLW9mZi1ieTogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv aXB2NC90Y3BfYmJyLmMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2Jici5jIGIvbmV0L2lwdjQvdGNwX2Jici5jCmluZGV4IGM3 YTRjM2Y5NTAxNi4uYzc5ODc4ODg3N2UyIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfYmJyLmMK KysrIGIvbmV0L2lwdjQvdGNwX2Jici5jCkBAIC04MDgsNyArODA4LDYgQEAgc3RhdGljIHZvaWQg YmJyX2luaXQoc3RydWN0IHNvY2sgKnNrKQogCiAJbWlubWF4X3Jlc2V0KCZiYnItPmJ3LCBiYnIt PnJ0dF9jbnQsIDApOyAgLyogaW5pdCBtYXggYncgdG8gMCAqLwogCi0Jc2stPnNrX3BhY2luZ19y YXRlID0gMDsJCS8qIGZvcmNlIGFuIHVwZGF0ZSBvZiBza19wYWNpbmdfcmF0ZSAqLwogCWJicl9p bml0X3BhY2luZ19yYXRlX2Zyb21fcnR0KHNrKTsKIAogCWJici0+cmVzdG9yZV9jd25kID0gMDsK LS0gCjIuMTMuNAoKCkZyb20gOWJkNDliMTU0YTgyOWQyYmU3ZjQwOGE1NjBhYTgyMDYwNzg0MTFk MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxs QGdvb2dsZS5jb20+CkRhdGU6IEZyaSwgMTQgSnVsIDIwMTcgMTc6NDk6MjUgLTA0MDAKU3ViamVj dDogW1BBVENIIDA1LzI4XSB0Y3BfYmJyOiBpbml0IHBhY2luZyByYXRlIG9uIGZpcnN0IFJUVCBz YW1wbGUKClsgVXBzdHJlYW0gY29tbWl0IDMyOTg0NTY1NTc0ZGE3ZWQzYWZhMTA2NDdiYjQwMjBk N2E5ZTZjOTMgXQoKRml4ZXMgdGhlIGZvbGxvd2luZyBiZWhhdmlvcjogZm9yIGNvbm5lY3Rpb25z IHRoYXQgaGFkIG5vIFJUVCBzYW1wbGUKYXQgdGhlIHRpbWUgb2YgaW5pdGlhbGl6aW5nIGNvbmdl c3Rpb24gY29udHJvbCwgQkJSIHdhcyBpbml0aWFsaXppbmcKdGhlIHBhY2luZyByYXRlIHRvIGEg aGlnaCBub21pbmFsIHJhdGUgKGJhc2VkIGFuIGEgZ3Vlc3Mgb2YgUlRUPTFtcywKaW4gY2FzZSB0 aGlzIGlzIExBTiB0cmFmZmljKS4gVGhlbiBCQlIgbmV2ZXIgYWRqdXN0ZWQgdGhlIHBhY2luZyBy YXRlCmRvd253YXJkIHVwb24gb2J0YWluaW5nIGFuIGFjdHVhbCBSVFQgc2FtcGxlLCBpZiB0aGUg Y29ubmVjdGlvbiBuZXZlcgpmaWxsZWQgdGhlIHBpcGUgKGUuZy4gYWxsIHNlbmRzIHdlcmUgc21h bGwgYXBwLWxpbWl0ZWQgd3JpdGVzKCkpLgoKVGhpcyBmaXggYWRqdXN0cyB0aGUgcGFjaW5nIHJh dGUgdXBvbiBvYnRhaW5pbmcgdGhlIGZpcnN0IFJUVCBzYW1wbGUuCgpGaXhlczogMGY4NzgyZWEx NDk3ICgidGNwX2JicjogYWRkIEJCUiBjb25nZXN0aW9uIGNvbnRyb2wiKQpTaWduZWQtb2ZmLWJ5 OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogWXVj aHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFNvaGVpbCBIYXNz YXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3BfYmJyLmMgfCAxMCAr KysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2Jici5jIGIvbmV0L2lwdjQvdGNwX2Jici5jCmlu ZGV4IGM3OTg3ODg4NzdlMi4uY2I4ZGIzNDdjNjgwIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3Bf YmJyLmMKKysrIGIvbmV0L2lwdjQvdGNwX2Jici5jCkBAIC04Myw3ICs4Myw4IEBAIHN0cnVjdCBi YnIgewogCQljd25kX2dhaW46MTAsCS8qIGN1cnJlbnQgZ2FpbiBmb3Igc2V0dGluZyBjd25kICov CiAJCWZ1bGxfYndfY250OjMsCS8qIG51bWJlciBvZiByb3VuZHMgd2l0aG91dCBsYXJnZSBidyBn YWlucyAqLwogCQljeWNsZV9pZHg6MywJLyogY3VycmVudCBpbmRleCBpbiBwYWNpbmdfZ2FpbiBj eWNsZSBhcnJheSAqLwotCQl1bnVzZWRfYjo2OworCQloYXNfc2Vlbl9ydHQ6MSwgLyogaGF2ZSB3 ZSBzZWVuIGFuIFJUVCBzYW1wbGUgeWV0PyAqLworCQl1bnVzZWRfYjo1OwogCXUzMglwcmlvcl9j d25kOwkvKiBwcmlvciBjd25kIHVwb24gZW50ZXJpbmcgbG9zcyByZWNvdmVyeSAqLwogCXUzMglm dWxsX2J3OwkvKiByZWNlbnQgYncsIHRvIGVzdGltYXRlIGlmIHBpcGUgaXMgZnVsbCAqLwogfTsK QEAgLTE5NiwxMSArMTk3LDEzIEBAIHN0YXRpYyB1MzIgYmJyX2J3X3RvX3BhY2luZ19yYXRlKHN0 cnVjdCBzb2NrICpzaywgdTMyIGJ3LCBpbnQgZ2FpbikKIHN0YXRpYyB2b2lkIGJicl9pbml0X3Bh Y2luZ19yYXRlX2Zyb21fcnR0KHN0cnVjdCBzb2NrICpzaykKIHsKIAlzdHJ1Y3QgdGNwX3NvY2sg KnRwID0gdGNwX3NrKHNrKTsKKwlzdHJ1Y3QgYmJyICpiYnIgPSBpbmV0X2Nza19jYShzayk7CiAJ dTY0IGJ3OwogCXUzMiBydHRfdXM7CiAKIAlpZiAodHAtPnNydHRfdXMpIHsJCS8qIGFueSBSVFQg c2FtcGxlIHlldD8gKi8KIAkJcnR0X3VzID0gbWF4KHRwLT5zcnR0X3VzID4+IDMsIDFVKTsKKwkJ YmJyLT5oYXNfc2Vlbl9ydHQgPSAxOwogCX0gZWxzZSB7CQkJIC8qIG5vIFJUVCBzYW1wbGUgeWV0 ICovCiAJCXJ0dF91cyA9IFVTRUNfUEVSX01TRUM7CSAvKiB1c2Ugbm9taW5hbCBkZWZhdWx0IFJU VCAqLwogCX0KQEAgLTIxOCw4ICsyMjEsMTIgQEAgc3RhdGljIHZvaWQgYmJyX2luaXRfcGFjaW5n X3JhdGVfZnJvbV9ydHQoc3RydWN0IHNvY2sgKnNrKQogICovCiBzdGF0aWMgdm9pZCBiYnJfc2V0 X3BhY2luZ19yYXRlKHN0cnVjdCBzb2NrICpzaywgdTMyIGJ3LCBpbnQgZ2FpbikKIHsKKwlzdHJ1 Y3QgdGNwX3NvY2sgKnRwID0gdGNwX3NrKHNrKTsKKwlzdHJ1Y3QgYmJyICpiYnIgPSBpbmV0X2Nz a19jYShzayk7CiAJdTMyIHJhdGUgPSBiYnJfYndfdG9fcGFjaW5nX3JhdGUoc2ssIGJ3LCBnYWlu KTsKIAorCWlmICh1bmxpa2VseSghYmJyLT5oYXNfc2Vlbl9ydHQgJiYgdHAtPnNydHRfdXMpKQor CQliYnJfaW5pdF9wYWNpbmdfcmF0ZV9mcm9tX3J0dChzayk7CiAJaWYgKGJicl9mdWxsX2J3X3Jl YWNoZWQoc2spIHx8IHJhdGUgPiBzay0+c2tfcGFjaW5nX3JhdGUpCiAJCXNrLT5za19wYWNpbmdf cmF0ZSA9IHJhdGU7CiB9CkBAIC04MDgsNiArODE1LDcgQEAgc3RhdGljIHZvaWQgYmJyX2luaXQo c3RydWN0IHNvY2sgKnNrKQogCiAJbWlubWF4X3Jlc2V0KCZiYnItPmJ3LCBiYnItPnJ0dF9jbnQs IDApOyAgLyogaW5pdCBtYXggYncgdG8gMCAqLwogCisJYmJyLT5oYXNfc2Vlbl9ydHQgPSAwOwog CWJicl9pbml0X3BhY2luZ19yYXRlX2Zyb21fcnR0KHNrKTsKIAogCWJici0+cmVzdG9yZV9jd25k ID0gMDsKLS0gCjIuMTMuNAoKCkZyb20gNTM4YjdlNThlZWUxMzdlN2M1NmYyOGQwZGE3NWEwNmVk ZjA3MjQ3MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGFuZGVyIFBvdGFwZW5r byA8Z2xpZGVyQGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgMTcgSnVsIDIwMTcgMTI6MzU6NTggKzAy MDAKU3ViamVjdDogW1BBVENIIDA2LzI4XSBpcHY0OiBpcHY2OiBpbml0aWFsaXplIHRyZXEtPnR4 aGFzaCBpbgogY29va2llX3ZbNDZdX2NoZWNrKCkKClsgVXBzdHJlYW0gY29tbWl0IDE4YmNmMjkw N2RmOTM1OTgxMjY2NTMyZTFlMGQwNTJhZmYyZTZmYWUgXQoKS01TQU4gcmVwb3J0ZWQgdXNlIG9m IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGluIHNrYl9zZXRfaGFzaF9mcm9tX3NrKCksCndoaWNoIG9y aWdpbmF0ZWQgZnJvbSB0aGUgVENQIHJlcXVlc3Qgc29ja2V0IGNyZWF0ZWQgaW4KY29va2llX3Y2 X2NoZWNrKCk6CgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiBCVUc6IEtNU0FOOiB1c2Ugb2YgdW5pbml0aWFsaXplZCBt ZW1vcnkgaW4gdGNwX3RyYW5zbWl0X3NrYisweGY3Ny8weDNlYzAKIENQVTogMSBQSUQ6IDI5NDkg Q29tbTogc3l6LWV4ZWNwcm9nIE5vdCB0YWludGVkIDQuMTEuMC1yYzUrICMyOTMxCiBIYXJkd2Fy ZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyBCb2No cyAwMS8wMS8yMDExCiBUQ1A6IHJlcXVlc3Rfc29ja19UQ1B2NjogUG9zc2libGUgU1lOIGZsb29k aW5nIG9uIHBvcnQgMjAwMjguIFNlbmRpbmcgY29va2llcy4gIENoZWNrIFNOTVAgY291bnRlcnMu CiBDYWxsIFRyYWNlOgogIDxJUlE+CiAgX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6MTYK ICBkdW1wX3N0YWNrKzB4MTcyLzB4MWMwIGxpYi9kdW1wX3N0YWNrLmM6NTIKICBrbXNhbl9yZXBv cnQrMHgxMmEvMHgxODAgbW0va21zYW4va21zYW4uYzo5MjcKICBfX21zYW5fd2FybmluZ18zMisw eDYxLzB4YjAgbW0va21zYW4va21zYW5faW5zdHIuYzo0NjkKICBza2Jfc2V0X2hhc2hfZnJvbV9z ayAuL2luY2x1ZGUvbmV0L3NvY2suaDoyMDExCiAgdGNwX3RyYW5zbWl0X3NrYisweGY3Ny8weDNl YzAgbmV0L2lwdjQvdGNwX291dHB1dC5jOjk4MwogIHRjcF9zZW5kX2FjaysweDc1Yi8weDgzMCBu ZXQvaXB2NC90Y3Bfb3V0cHV0LmM6MzQ5MwogIHRjcF9kZWxhY2tfdGltZXJfaGFuZGxlcisweDlh Ni8weGI5MCBuZXQvaXB2NC90Y3BfdGltZXIuYzoyODQKICB0Y3BfZGVsYWNrX3RpbWVyKzB4MWIw LzB4MzEwIG5ldC9pcHY0L3RjcF90aW1lci5jOjMwOQogIGNhbGxfdGltZXJfZm4rMHgyNDAvMHg1 MjAga2VybmVsL3RpbWUvdGltZXIuYzoxMjY4CiAgZXhwaXJlX3RpbWVycyBrZXJuZWwvdGltZS90 aW1lci5jOjEzMDcKICBfX3J1bl90aW1lcnMrMHhjMTMvMHhmMTAga2VybmVsL3RpbWUvdGltZXIu YzoxNjAxCiAgcnVuX3RpbWVyX3NvZnRpcnErMHgzNi8weGEwIGtlcm5lbC90aW1lL3RpbWVyLmM6 MTYxNAogIF9fZG9fc29mdGlycSsweDQ4NS8weDk0MiBrZXJuZWwvc29mdGlycS5jOjI4NAogIGlu dm9rZV9zb2Z0aXJxIGtlcm5lbC9zb2Z0aXJxLmM6MzY0CiAgaXJxX2V4aXQrMHgxZmEvMHgyMzAg a2VybmVsL3NvZnRpcnEuYzo0MDUKICBleGl0aW5nX2lycSsweGUvMHgxMCAuL2FyY2gveDg2L2lu Y2x1ZGUvYXNtL2FwaWMuaDo2NTcKICBzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQrMHg1YS8weDgw IGFyY2gveDg2L2tlcm5lbC9hcGljL2FwaWMuYzo5NjYKICBhcGljX3RpbWVyX2ludGVycnVwdCsw eDg2LzB4OTAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzo0ODkKIFJJUDogMDAxMDpuYXRpdmVf cmVzdG9yZV9mbCAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lycWZsYWdzLmg6MzYKIFJJUDogMDAx MDphcmNoX2xvY2FsX2lycV9yZXN0b3JlIC4vYXJjaC94ODYvaW5jbHVkZS9hc20vaXJxZmxhZ3Mu aDo3NwogUklQOiAwMDEwOl9fbXNhbl9wb2lzb25fYWxsb2NhKzB4ZWQvMHgxMjAgbW0va21zYW4v a21zYW5faW5zdHIuYzo0NDAKIFJTUDogMDAxODpmZmZmODgwMDI0OTE3Y2Q4IEVGTEFHUzogMDAw MDAyNDYgT1JJR19SQVg6IGZmZmZmZmZmZmZmZmZmMTAKIFJBWDogMDAwMDAwMDAwMDAwMDI0NiBS Qlg6IGZmZmY4ODAwMjI0YzAwMDAgUkNYOiAwMDAwMDAwMDAwMDAwMDA1CiBSRFg6IDAwMDAwMDAw MDAwMDAwMDQgUlNJOiBmZmZmODgwMDAwMDAwMDAwIFJESTogZmZmZmVhMDAwMGI2ZDc3MAogUkJQ OiBmZmZmODgwMDI0OTE3ZDU4IFIwODogMDAwMDAwMDAwMDAwMGRkOCBSMDk6IDAwMDAwMDAwMDAw MDAwMDQKIFIxMDogMDAwMDE2MDAwMDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiBm ZmZmZmZmZjg1YWJmODEwCiBSMTM6IGZmZmY4ODAwMjQ5MTdkZDggUjE0OiAwMDAwMDAwMDAwMDAw MDEwIFIxNTogZmZmZmZmZmY4MWNhYmRlNAogIDwvSVJRPgogIHBvbGxfc2VsZWN0X2NvcHlfcmVt YWluaW5nKzB4YWMvMHg2YjAgZnMvc2VsZWN0LmM6MjkzCiAgU1lTQ19zZWxlY3QrMHg0YjQvMHg0 ZTAgZnMvc2VsZWN0LmM6NjUzCiAgU3lTX3NlbGVjdCsweDc2LzB4YTAgZnMvc2VsZWN0LmM6NjM0 CiAgZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0aCsweDEzLzB4OTQgYXJjaC94ODYvZW50cnkvZW50 cnlfNjQuUzoyMDQKIFJJUDogMDAzMzoweDQ1OTdlNwogUlNQOiAwMDJiOjAwMDAwMGM0MjAwMzdl ZTAgRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAxNwogUkFYOiBmZmZm ZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6IDAwMDAwMDAwMDA0NTk3ZTcK IFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAwMDAwMDAgUkRJOiAwMDAwMDAw MDAwMDAwMDAwCiBSQlA6IDAwMDAwMGM0MjAwMzdlZjAgUjA4OiAwMDAwMDBjNDIwMDM3ZWUwIFIw OTogMDAwMDAwMDAwMDAwMDA1OQogUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAw MDAwMDI0NiBSMTI6IDAwMDAwMDAwMDA0MmRjMjAKIFIxMzogMDAwMDAwMDAwMDAwMDBmMyBSMTQ6 IDAwMDAwMDAwMDAwMDAwMzAgUjE1OiAwMDAwMDAwMDAwMDAwMDAzCiBjaGFpbmVkIG9yaWdpbjoK ICBzYXZlX3N0YWNrX3RyYWNlKzB4MzcvMHg0MCBhcmNoL3g4Ni9rZXJuZWwvc3RhY2t0cmFjZS5j OjU5CiAga21zYW5fc2F2ZV9zdGFja193aXRoX2ZsYWdzIG1tL2ttc2FuL2ttc2FuLmM6MzAyCiAg a21zYW5fc2F2ZV9zdGFjayBtbS9rbXNhbi9rbXNhbi5jOjMxNwogIGttc2FuX2ludGVybmFsX2No YWluX29yaWdpbisweDEyYS8weDFmMCBtbS9rbXNhbi9rbXNhbi5jOjU0NwogIF9fbXNhbl9zdG9y ZV9zaGFkb3dfb3JpZ2luXzQrMHhhYy8weDExMCBtbS9rbXNhbi9rbXNhbl9pbnN0ci5jOjI1OQog IHRjcF9jcmVhdGVfb3BlbnJlcV9jaGlsZCsweDcwOS8weDFhZTAgbmV0L2lwdjQvdGNwX21pbmlz b2Nrcy5jOjQ3MgogIHRjcF92Nl9zeW5fcmVjdl9zb2NrKzB4N2ViLzB4MmEzMCBuZXQvaXB2Ni90 Y3BfaXB2Ni5jOjExMDMKICB0Y3BfZ2V0X2Nvb2tpZV9zb2NrKzB4MTM2LzB4NWYwIG5ldC9pcHY0 L3N5bmNvb2tpZXMuYzoyMTIKICBjb29raWVfdjZfY2hlY2srMHgxN2E5LzB4MWI1MCBuZXQvaXB2 Ni9zeW5jb29raWVzLmM6MjQ1CiAgdGNwX3Y2X2Nvb2tpZV9jaGVjayBuZXQvaXB2Ni90Y3BfaXB2 Ni5jOjk4OQogIHRjcF92Nl9kb19yY3YrMHhkZDgvMHgxYzYwIG5ldC9pcHY2L3RjcF9pcHY2LmM6 MTI5OAogIHRjcF92Nl9yY3YrMHg0MWEzLzB4NGYwMCBuZXQvaXB2Ni90Y3BfaXB2Ni5jOjE0ODcK ICBpcDZfaW5wdXRfZmluaXNoKzB4ODJmLzB4MWVlMCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzoyNzkK ICBORl9IT09LIC4vaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyNTcKICBpcDZfaW5wdXQrMHgy MzkvMHgyOTAgbmV0L2lwdjYvaXA2X2lucHV0LmM6MzIyCiAgZHN0X2lucHV0IC4vaW5jbHVkZS9u ZXQvZHN0Lmg6NDkyCiAgaXA2X3Jjdl9maW5pc2ggbmV0L2lwdjYvaXA2X2lucHV0LmM6NjkKICBO Rl9IT09LIC4vaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyNTcKICBpcHY2X3JjdisweDFkYmQv MHgyMmUwIG5ldC9pcHY2L2lwNl9pbnB1dC5jOjIwMwogIF9fbmV0aWZfcmVjZWl2ZV9za2JfY29y ZSsweDJmNmYvMHgzYTIwIG5ldC9jb3JlL2Rldi5jOjQyMDgKICBfX25ldGlmX3JlY2VpdmVfc2ti IG5ldC9jb3JlL2Rldi5jOjQyNDYKICBwcm9jZXNzX2JhY2tsb2crMHg2NjcvMHhiYTAgbmV0L2Nv cmUvZGV2LmM6NDg2NgogIG5hcGlfcG9sbCBuZXQvY29yZS9kZXYuYzo1MjY4CiAgbmV0X3J4X2Fj dGlvbisweGM5NS8weDE1OTAgbmV0L2NvcmUvZGV2LmM6NTMzMwogIF9fZG9fc29mdGlycSsweDQ4 NS8weDk0MiBrZXJuZWwvc29mdGlycS5jOjI4NAogb3JpZ2luOgogIHNhdmVfc3RhY2tfdHJhY2Ur MHgzNy8weDQwIGFyY2gveDg2L2tlcm5lbC9zdGFja3RyYWNlLmM6NTkKICBrbXNhbl9zYXZlX3N0 YWNrX3dpdGhfZmxhZ3MgbW0va21zYW4va21zYW4uYzozMDIKICBrbXNhbl9pbnRlcm5hbF9wb2lz b25fc2hhZG93KzB4YjEvMHgxYTAgbW0va21zYW4va21zYW4uYzoxOTgKICBrbXNhbl9rbWFsbG9j KzB4N2YvMHhlMCBtbS9rbXNhbi9rbXNhbi5jOjMzNwogIGttZW1fY2FjaGVfYWxsb2MrMHgxYzIv MHgxZTAgbW0vc2x1Yi5jOjI3NjYKICByZXFza19hbGxvYyAuL2luY2x1ZGUvbmV0L3JlcXVlc3Rf c29jay5oOjg3CiAgaW5ldF9yZXFza19hbGxvYysweGE0LzB4NWIwIG5ldC9pcHY0L3RjcF9pbnB1 dC5jOjYyMDAKICBjb29raWVfdjZfY2hlY2srMHg0ZjQvMHgxYjUwIG5ldC9pcHY2L3N5bmNvb2tp ZXMuYzoxNjkKICB0Y3BfdjZfY29va2llX2NoZWNrIG5ldC9pcHY2L3RjcF9pcHY2LmM6OTg5CiAg dGNwX3Y2X2RvX3JjdisweGRkOC8weDFjNjAgbmV0L2lwdjYvdGNwX2lwdjYuYzoxMjk4CiAgdGNw X3Y2X3JjdisweDQxYTMvMHg0ZjAwIG5ldC9pcHY2L3RjcF9pcHY2LmM6MTQ4NwogIGlwNl9pbnB1 dF9maW5pc2grMHg4MmYvMHgxZWUwIG5ldC9pcHY2L2lwNl9pbnB1dC5jOjI3OQogIE5GX0hPT0sg Li9pbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI1NwogIGlwNl9pbnB1dCsweDIzOS8weDI5MCBu ZXQvaXB2Ni9pcDZfaW5wdXQuYzozMjIKICBkc3RfaW5wdXQgLi9pbmNsdWRlL25ldC9kc3QuaDo0 OTIKICBpcDZfcmN2X2ZpbmlzaCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzo2OQogIE5GX0hPT0sgLi9p bmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI1NwogIGlwdjZfcmN2KzB4MWRiZC8weDIyZTAgbmV0 L2lwdjYvaXA2X2lucHV0LmM6MjAzCiAgX19uZXRpZl9yZWNlaXZlX3NrYl9jb3JlKzB4MmY2Zi8w eDNhMjAgbmV0L2NvcmUvZGV2LmM6NDIwOAogIF9fbmV0aWZfcmVjZWl2ZV9za2IgbmV0L2NvcmUv ZGV2LmM6NDI0NgogIHByb2Nlc3NfYmFja2xvZysweDY2Ny8weGJhMCBuZXQvY29yZS9kZXYuYzo0 ODY2CiAgbmFwaV9wb2xsIG5ldC9jb3JlL2Rldi5jOjUyNjgKICBuZXRfcnhfYWN0aW9uKzB4Yzk1 LzB4MTU5MCBuZXQvY29yZS9kZXYuYzo1MzMzCiAgX19kb19zb2Z0aXJxKzB4NDg1LzB4OTQyIGtl cm5lbC9zb2Z0aXJxLmM6Mjg0CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClNpbWlsYXIgZXJyb3IgaXMgcmVwb3J0ZWQg Zm9yIGNvb2tpZV92NF9jaGVjaygpLgoKRml4ZXM6IDU4ZDYwN2QzZTUyZiAoInRjcDogcHJvdmlk ZSBza2ItPmhhc2ggdG8gc3luYWNrIHBhY2tldHMiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIg UG90YXBlbmtvIDxnbGlkZXJAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3N5bmNvb2tpZXMuYyB8IDEgKwogbmV0L2lwdjYv c3luY29va2llcy5jIHwgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L3N5bmNvb2tpZXMuYyBiL25ldC9pcHY0L3N5bmNvb2tpZXMuYwpp bmRleCBlM2M0MDQzYzI3ZGUuLmI2ZjcxMGQ1MTVkMCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvc3lu Y29va2llcy5jCisrKyBiL25ldC9pcHY0L3N5bmNvb2tpZXMuYwpAQCAtMzM0LDYgKzMzNCw3IEBA IHN0cnVjdCBzb2NrICpjb29raWVfdjRfY2hlY2soc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiKQogCXRyZXEgPSB0Y3BfcnNrKHJlcSk7CiAJdHJlcS0+cmN2X2lzbgkJPSBudG9o bCh0aC0+c2VxKSAtIDE7CiAJdHJlcS0+c250X2lzbgkJPSBjb29raWU7CisJdHJlcS0+dHhoYXNo CQk9IG5ldF90eF9ybmRoYXNoKCk7CiAJcmVxLT5tc3MJCT0gbXNzOwogCWlyZXEtPmlyX251bQkJ PSBudG9ocyh0aC0+ZGVzdCk7CiAJaXJlcS0+aXJfcm10X3BvcnQJPSB0aC0+c291cmNlOwpkaWZm IC0tZ2l0IGEvbmV0L2lwdjYvc3luY29va2llcy5jIGIvbmV0L2lwdjYvc3luY29va2llcy5jCmlu ZGV4IDU5YzQ4MzkzN2FlYy4uN2E4NjQzM2Q4ODk2IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9zeW5j b29raWVzLmMKKysrIGIvbmV0L2lwdjYvc3luY29va2llcy5jCkBAIC0yMDksNiArMjA5LDcgQEAg c3RydWN0IHNvY2sgKmNvb2tpZV92Nl9jaGVjayhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19i dWZmICpza2IpCiAJdHJlcS0+c250X3N5bmFjay52NjQJPSAwOwogCXRyZXEtPnJjdl9pc24gPSBu dG9obCh0aC0+c2VxKSAtIDE7CiAJdHJlcS0+c250X2lzbiA9IGNvb2tpZTsKKwl0cmVxLT50eGhh c2ggPSBuZXRfdHhfcm5kaGFzaCgpOwogCiAJLyoKIAkgKiBXZSBuZWVkIHRvIGxvb2t1cCB0aGUg ZHN0X2VudHJ5IHRvIGdldCB0aGUgY29ycmVjdCB3aW5kb3cgc2l6ZS4KLS0gCjIuMTMuNAoKCkZy b20gNzYzMTdhMmI2MjEwMDg0Zjg5Nzg2ODE3NjIzNGNjYTUwOGJiMzdlMyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogIkRhdmlkIFMuIE1pbGxlciIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ CkRhdGU6IFdlZCwgMTkgSnVsIDIwMTcgMTM6MzM6MjQgLTA3MDAKU3ViamVjdDogW1BBVENIIDA3 LzI4XSBuZXQ6IFplcm8gdGVybWluYXRlIGlmcl9uYW1lIGluIGRldl9pZm5hbWUoKS4KClsgVXBz dHJlYW0gY29tbWl0IDYzNjc5MTEyYzUzNjI4OTgyNmZlYzYxYzkxNzYyMWRlOTViYTJhZGUgXQoK VGhlIGlmci5pZnJfbmFtZSBpcyBwYXNzZWQgYXJvdW5kIGFuZCBhc3N1bWVkIHRvIGJlIE5VTEwg dGVybWluYXRlZC4KClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9kZXZfaW9jdGwuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2X2lvY3RsLmMgYi9uZXQv Y29yZS9kZXZfaW9jdGwuYwppbmRleCBiOTRiMWQyOTM1MDYuLjE1MWUwNDdjZTA3MiAxMDA2NDQK LS0tIGEvbmV0L2NvcmUvZGV2X2lvY3RsLmMKKysrIGIvbmV0L2NvcmUvZGV2X2lvY3RsLmMKQEAg LTI4LDYgKzI4LDcgQEAgc3RhdGljIGludCBkZXZfaWZuYW1lKHN0cnVjdCBuZXQgKm5ldCwgc3Ry dWN0IGlmcmVxIF9fdXNlciAqYXJnKQogCiAJaWYgKGNvcHlfZnJvbV91c2VyKCZpZnIsIGFyZywg c2l6ZW9mKHN0cnVjdCBpZnJlcSkpKQogCQlyZXR1cm4gLUVGQVVMVDsKKwlpZnIuaWZyX25hbWVb SUZOQU1TSVotMV0gPSAwOwogCiAJZXJyb3IgPSBuZXRkZXZfZ2V0X25hbWUobmV0LCBpZnIuaWZy X25hbWUsIGlmci5pZnJfaWZpbmRleCk7CiAJaWYgKGVycm9yKQotLSAKMi4xMy40CgoKRnJvbSBj NDRhNDExNmIyZjUxZWJmODE2NDkwMjg5MWJjOWMyZmZjNmQwNzU5IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4KRGF0ZTog V2VkLCAxOSBKdWwgMjAxNyAyMjoyODo1NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMjhdIGlw djY6IGF2b2lkIG92ZXJmbG93IG9mIG9mZnNldCBpbiBpcDZfZmluZF8xc3RmcmFnb3B0CgpbIFVw c3RyZWFtIGNvbW1pdCA2Mzk5ZjFmYWU0ZWMyOWZhYjVlYzc2MDcwNDM1NTU1ZTI1NmNhM2E2IF0K CkluIHNvbWUgY2FzZXMsIG9mZnNldCBjYW4gb3ZlcmZsb3cgYW5kIGNhbiBjYXVzZSBhbiBpbmZp bml0ZSBsb29wIGluCmlwNl9maW5kXzFzdGZyYWdvcHQoKS4gTWFrZSBpdCB1bnNpZ25lZCBpbnQg dG8gcHJldmVudCB0aGUgb3ZlcmZsb3csIGFuZApjYXAgaXQgYXQgSVBWNl9NQVhQTEVOLCBzaW5j ZSBwYWNrZXRzIGxhcmdlciB0aGFuIHRoYXQgc2hvdWxkIGJlIGludmFsaWQuCgpUaGlzIHByb2Js ZW0gaGFzIGJlZW4gaGVyZSBzaW5jZSBiZWZvcmUgdGhlIGJlZ2lubmluZyBvZiBnaXQgaGlzdG9y eS4KClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpB Y2tlZC1ieTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5lc0BzdHJlc3NpbmR1a3Rpb24ub3Jn PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjYvb3V0cHV0X2NvcmUuYyB8IDggKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA2 IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvb3V0 cHV0X2NvcmUuYyBiL25ldC9pcHY2L291dHB1dF9jb3JlLmMKaW5kZXggZTkwNjViOGQzYWY4Li5h YmIyYzMwN2ZiZTggMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L291dHB1dF9jb3JlLmMKKysrIGIvbmV0 L2lwdjYvb3V0cHV0X2NvcmUuYwpAQCAtNzgsNyArNzgsNyBAQCBFWFBPUlRfU1lNQk9MKGlwdjZf c2VsZWN0X2lkZW50KTsKIAogaW50IGlwNl9maW5kXzFzdGZyYWdvcHQoc3RydWN0IHNrX2J1ZmYg KnNrYiwgdTggKipuZXh0aGRyKQogewotCXUxNiBvZmZzZXQgPSBzaXplb2Yoc3RydWN0IGlwdjZo ZHIpOworCXVuc2lnbmVkIGludCBvZmZzZXQgPSBzaXplb2Yoc3RydWN0IGlwdjZoZHIpOwogCXVu c2lnbmVkIGludCBwYWNrZXRfbGVuID0gc2tiX3RhaWxfcG9pbnRlcihza2IpIC0KIAkJc2tiX25l dHdvcmtfaGVhZGVyKHNrYik7CiAJaW50IGZvdW5kX3JoZHIgPSAwOwpAQCAtODYsNiArODYsNyBA QCBpbnQgaXA2X2ZpbmRfMXN0ZnJhZ29wdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqKm5leHRo ZHIpCiAKIAl3aGlsZSAob2Zmc2V0IDw9IHBhY2tldF9sZW4pIHsKIAkJc3RydWN0IGlwdjZfb3B0 X2hkciAqZXh0aGRyOworCQl1bnNpZ25lZCBpbnQgbGVuOwogCiAJCXN3aXRjaCAoKipuZXh0aGRy KSB7CiAKQEAgLTExMSw3ICsxMTIsMTAgQEAgaW50IGlwNl9maW5kXzFzdGZyYWdvcHQoc3RydWN0 IHNrX2J1ZmYgKnNrYiwgdTggKipuZXh0aGRyKQogCiAJCWV4dGhkciA9IChzdHJ1Y3QgaXB2Nl9v cHRfaGRyICopKHNrYl9uZXR3b3JrX2hlYWRlcihza2IpICsKIAkJCQkJCSBvZmZzZXQpOwotCQlv ZmZzZXQgKz0gaXB2Nl9vcHRsZW4oZXh0aGRyKTsKKwkJbGVuID0gaXB2Nl9vcHRsZW4oZXh0aGRy KTsKKwkJaWYgKGxlbiArIG9mZnNldCA+PSBJUFY2X01BWFBMRU4pCisJCQlyZXR1cm4gLUVJTlZB TDsKKwkJb2Zmc2V0ICs9IGxlbjsKIAkJKm5leHRoZHIgPSAmZXh0aGRyLT5uZXh0aGRyOwogCX0K IAotLSAKMi4xMy40CgoKRnJvbSA5YWNjYTE3YmNiYTBjMzc2MDUxMTVjNTk0ZGI0YjFmOGIxZmE1 ZGE0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZh aW5lbGxpQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyMCBKdWwgMjAxNyAxMjoyNToyMiAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggMDkvMjhdIG5ldDogZHNhOiBiNTM6IEFkZCBtaXNzaW5nIEFSTCBlbnRy aWVzIGZvciBCQ001MzEyNQoKWyBVcHN0cmVhbSBjb21taXQgYmUzNWU4YzUxNmMxOTE1YTMwMzVk MjY2YTIwMTViNDFmNzNiYTNmOSBdCgpUaGUgQkNNNTMxMjUgZW50cnkgd2FzIG1pc3NpbmcgYW4g YXJsX2VudHJpZXMgbWVtYmVyIHdoaWNoIHdvdWxkCmJhc2ljYWxseSBwcmV2ZW50IHRoZSBBUkwg c2VhcmNoIGZyb20gdGVybWluYXRpbmcgcHJvcGVybHkuIFRoaXMgc3dpdGNoCmhhcyA0IEFSTCBl bnRyaWVzLCBzbyBhZGQgdGhhdC4KCkZpeGVzOiAxZGE2ZGY4NWM2ZmIgKCJuZXQ6IGRzYTogYjUz OiBJbXBsZW1lbnQgQVJMIGFkZC9kZWwvZHVtcCBvcGVyYXRpb25zIikKU2lnbmVkLW9mZi1ieTog RmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBWaXZp ZW4gRGlkZWxvdCA8dml2aWVuLmRpZGVsb3RAc2F2b2lyZmFpcmVsaW51eC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9kc2EvYjUzL2I1M19jb21tb24uYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL2I1My9iNTNfY29tbW9uLmMgYi9k cml2ZXJzL25ldC9kc2EvYjUzL2I1M19jb21tb24uYwppbmRleCA5NDdhZGRhMzM5N2QuLjNlYzU3 M2MxM2RhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL2I1My9iNTNfY29tbW9uLmMKKysr IGIvZHJpdmVycy9uZXQvZHNhL2I1My9iNTNfY29tbW9uLmMKQEAgLTE1NTgsNiArMTU1OCw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgYjUzX2NoaXBfZGF0YSBiNTNfc3dpdGNoX2NoaXBzW10gPSB7 CiAJCS5kZXZfbmFtZSA9ICJCQ001MzEyNSIsCiAJCS52bGFucyA9IDQwOTYsCiAJCS5lbmFibGVk X3BvcnRzID0gMHhmZiwKKwkJLmFybF9lbnRyaWVzID0gNCwKIAkJLmNwdV9wb3J0ID0gQjUzX0NQ VV9QT1JULAogCQkudnRhX3JlZ3MgPSBCNTNfVlRBX1JFR1MsCiAJCS5kdXBsZXhfcmVnID0gQjUz X0RVUExFWF9TVEFUX0dFLAotLSAKMi4xMy40CgoKRnJvbSBiYWEyNjIyMjI0Zjc2YjI5NzI2ZjVh YTVhYzczNjhiNTgyNDlkYjI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYWhlc2gg QmFuZGV3YXIgPG1haGVzaGJAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAxOSBKdWwgMjAxNyAxNTo0 MTozMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjhdIGlwdjQ6IGluaXRpYWxpemUgZmliX3Ry aWUgcHJpb3IgdG8KIHJlZ2lzdGVyX25ldGRldl9ub3RpZmllciBjYWxsLgoKWyBVcHN0cmVhbSBj b21taXQgODc5OWEyMjFmNTk0NGE3ZDc0NTE2ZWNmNDZkNThjMjhlYzFkMWY3NSBdCgpOZXQgc3Rh Y2sgaW5pdGlhbGl6YXRpb24gY3VycmVudGx5IGluaXRpYWxpemVzIGZpYi10cmllIGFmdGVyIHRo ZQpmaXJzdCBjYWxsIHRvIG5ldGRldmljZV9ub3RpZmllcigpIGNhbGwuIEluIGZhY3QgZmliX3Ry aWUgaW5pdGlhbGl6YXRpb24KbmVlZHMgdG8gaGFwcGVuIGJlZm9yZSBmaXJzdCBydG5sX3JlZ2lz dGVyKCkuIEl0IGRvZXMgbm90IGNhdXNlIGFueSBwcm9ibGVtCnNpbmNlIHRoZXJlIGFyZSBubyBk ZXZpY2VzIFVQIGF0IHRoaXMgbW9tZW50LCBidXQgdHJ5aW5nIHRvIGJyaW5nICdsbycKVVAgYXQg aW5pdGlhbGl6YXRpb24gd291bGQgbWFrZSB0aGlzIGFzc3VtcHRpb24gd3JvbmcgYW5kIGV4cG9z ZXMgdGhlIGlzc3VlLgoKRml4ZXMgZm9sbG93aW5nIGNyYXNoCgogQ2FsbCBUcmFjZToKICA/IGFs dGVybmF0ZV9ub2RlX2FsbG9jKzB4NzYvMHhhMAogIGZpYl90YWJsZV9pbnNlcnQrMHgxYjcvMHg0 YjAKICBmaWJfbWFnaWMuaXNyYS4xNysweGVhLzB4MTIwCiAgZmliX2FkZF9pZmFkZHIrMHg3Yi8w eDE5MAogIGZpYl9uZXRkZXZfZXZlbnQrMHhjMC8weDEzMAogIHJlZ2lzdGVyX25ldGRldmljZV9u b3RpZmllcisweDFjMS8weDFkMAogIGlwX2ZpYl9pbml0KzB4NzIvMHg4NQogIGlwX3J0X2luaXQr MHgxODcvMHgxZTkKICBpcF9pbml0KzB4ZS8weDFhCiAgaW5ldF9pbml0KzB4MTcxLzB4MjZjCiAg PyBpcHY0X29mZmxvYWRfaW5pdCsweDY2LzB4NjYKICBkb19vbmVfaW5pdGNhbGwrMHg0My8weDE2 MAogIGtlcm5lbF9pbml0X2ZyZWVhYmxlKzB4MTkxLzB4MjE5CiAgPyByZXN0X2luaXQrMHg4MC8w eDgwCiAga2VybmVsX2luaXQrMHhlLzB4MTUwCiAgcmV0X2Zyb21fZm9yaysweDIyLzB4MzAKIENv ZGU6IGY2IDQ2IDIzIDA0IDc0IDg2IDRjIDg5IGY3IGU4IGFlIDQ1IDAxIDAwIDQ5IDg5IGM3IDRk IDg1IGZmIDBmIDg1IDdiIGZmIGZmIGZmIDMxIGRiIGViIDA4IDRjIDg5IGZmIGU4IDE2IDQ3IDAx IDAwIDQ4IDhiIDQ0IDI0IDM4IDw0NT4gOGIgNmUgMTQgNGQgNjMgNzYgNzQgNDggODkgMDQgMjQg MGYgMWYgNDQgMDAgMDAgNDggODMgYzQgMDgKIFJJUDoga21lbV9jYWNoZV9hbGxvYysweGNmLzB4 MWMwIFJTUDogZmZmZjliMTUwMDAxN2MyOAogQ1IyOiAwMDAwMDAwMDAwMDAwMDE0CgpGaXhlczog N2IxYTc0ZmRiYjllICgiW05FVE5TXTogUmVmYWN0b3IgZmliIGluaXRpYWxpemF0aW9uIHNvIGl0 IGNhbiBoYW5kbGUgbXVsdGlwbGUgbmFtZXNwYWNlcy4iKQpGaXhlczogN2Y5YjgwNTI5YjhhICgi W0lQVjRdOiBmaWIgaGFzaHx0cmllIGluaXRpYWxpemF0aW9uIikKClNpZ25lZC1vZmYtYnk6IE1h aGVzaCBCYW5kZXdhciA8bWFoZXNoYkBnb29nbGUuY29tPgpBY2tlZC1ieTogIkVyaWMgVy4gQmll ZGVybWFuIiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMg fCA5ICsrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9maWJfZnJvbnRlbmQuYyBiL25ldC9pcHY0L2Zp Yl9mcm9udGVuZC5jCmluZGV4IDNkOTI1MzRjNDQ1MC4uOTY4ZDhlMTY1ZTNkIDEwMDY0NAotLS0g YS9uZXQvaXB2NC9maWJfZnJvbnRlbmQuYworKysgYi9uZXQvaXB2NC9maWJfZnJvbnRlbmQuYwpA QCAtMTMxOSwxMyArMTMxOSwxNCBAQCBzdGF0aWMgc3RydWN0IHBlcm5ldF9vcGVyYXRpb25zIGZp Yl9uZXRfb3BzID0gewogCiB2b2lkIF9faW5pdCBpcF9maWJfaW5pdCh2b2lkKQogewotCXJ0bmxf cmVnaXN0ZXIoUEZfSU5FVCwgUlRNX05FV1JPVVRFLCBpbmV0X3J0bV9uZXdyb3V0ZSwgTlVMTCwg TlVMTCk7Ci0JcnRubF9yZWdpc3RlcihQRl9JTkVULCBSVE1fREVMUk9VVEUsIGluZXRfcnRtX2Rl bHJvdXRlLCBOVUxMLCBOVUxMKTsKLQlydG5sX3JlZ2lzdGVyKFBGX0lORVQsIFJUTV9HRVRST1VU RSwgTlVMTCwgaW5ldF9kdW1wX2ZpYiwgTlVMTCk7CisJZmliX3RyaWVfaW5pdCgpOwogCiAJcmVn aXN0ZXJfcGVybmV0X3N1YnN5cygmZmliX25ldF9vcHMpOworCiAJcmVnaXN0ZXJfbmV0ZGV2aWNl X25vdGlmaWVyKCZmaWJfbmV0ZGV2X25vdGlmaWVyKTsKIAlyZWdpc3Rlcl9pbmV0YWRkcl9ub3Rp ZmllcigmZmliX2luZXRhZGRyX25vdGlmaWVyKTsKIAotCWZpYl90cmllX2luaXQoKTsKKwlydG5s X3JlZ2lzdGVyKFBGX0lORVQsIFJUTV9ORVdST1VURSwgaW5ldF9ydG1fbmV3cm91dGUsIE5VTEws IE5VTEwpOworCXJ0bmxfcmVnaXN0ZXIoUEZfSU5FVCwgUlRNX0RFTFJPVVRFLCBpbmV0X3J0bV9k ZWxyb3V0ZSwgTlVMTCwgTlVMTCk7CisJcnRubF9yZWdpc3RlcihQRl9JTkVULCBSVE1fR0VUUk9V VEUsIE5VTEwsIGluZXRfZHVtcF9maWIsIE5VTEwpOwogfQotLSAKMi4xMy40CgoKRnJvbSBlNGU1 NDg5NjM1NzZiNDVjOTQ0YzEzMTQzN2IyNTM4MTgwNzdlZmEwIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBXQU5HIENvbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogVGh1 LCAyMCBKdWwgMjAxNyAxMToyNzo1NyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMjhdIHJ0bmV0 bGluazogYWxsb2NhdGUgbW9yZSBtZW1vcnkgZm9yCiBkZXZfc2V0X21hY19hZGRyZXNzKCkKClsg VXBzdHJlYW0gY29tbWl0IDE1MzcxMWY5NDIxYmU1ZGJjOTczZGM1N2E0MTA5ZGM5ZDU0Yzg5YjEg XQoKdmlydG5ldF9zZXRfbWFjX2FkZHJlc3MoKSBpbnRlcnByZXRzIG1hYyBhZGRyZXNzIGFzIHN0 cnVjdApzb2NrYWRkciwgYnV0IHVwcGVyIGxheWVyIG9ubHkgYWxsb2NhdGVzIGRldi0+YWRkcl9s ZW4Kd2hpY2ggaXMgRVRIX0FMRU4gKyBzaXplb2Yoc2FfZmFtaWx5X3QpIGluIHRoaXMgY2FzZS4K CldlIGxhY2sgYSB1bmlmaWVkIGRlZmluaXRpb24gZm9yIG1hYyBhZGRyZXNzLCBzbyBqdXN0IGZp eAp0aGUgdXBwZXIgbGF5ZXIsIHRoaXMgYWxzbyBhbGxvd3MgZHJpdmVycyB0byBpbnRlcnByZXQg aXQKdG8gc3RydWN0IHNvY2thZGRyIGZyZWVseS4KClJlcG9ydGVkLWJ5OiBEYXZpZCBBaGVybiA8 ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2Nv bmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvcnRuZXRsaW5rLmMgfCAzICsrLQogMSBmaWxlIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3Jl L3J0bmV0bGluay5jIGIvbmV0L2NvcmUvcnRuZXRsaW5rLmMKaW5kZXggOWM2ZmQ3ZjgzYTRhLi40 ZDI2Mjk3ODFlOGIgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3J0bmV0bGluay5jCisrKyBiL25ldC9j b3JlL3J0bmV0bGluay5jCkBAIC0xOTY1LDcgKzE5NjUsOCBAQCBzdGF0aWMgaW50IGRvX3NldGxp bmsoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJc3RydWN0IHNvY2thZGRyICpzYTsKIAkJ aW50IGxlbjsKIAotCQlsZW4gPSBzaXplb2Yoc2FfZmFtaWx5X3QpICsgZGV2LT5hZGRyX2xlbjsK KwkJbGVuID0gc2l6ZW9mKHNhX2ZhbWlseV90KSArIG1heF90KHNpemVfdCwgZGV2LT5hZGRyX2xl biwKKwkJCQkJCSAgc2l6ZW9mKCpzYSkpOwogCQlzYSA9IGttYWxsb2MobGVuLCBHRlBfS0VSTkVM KTsKIAkJaWYgKCFzYSkgewogCQkJZXJyID0gLUVOT01FTTsKLS0gCjIuMTMuNAoKCkZyb20gNWY2 MTU1ZDkzZjA3MWY3NGVlYTBhYjAwODZmM2E5ZGM4ZjEyYTJkMiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogVGhvbWFzIEphcm9zY2ggPHRob21hcy5qYXJvc2NoQGludHJhMm5ldC5jb20+ CkRhdGU6IFNhdCwgMjIgSnVsIDIwMTcgMTc6MTQ6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDEy LzI4XSBtY3M3NzgwOiBGaXggaW5pdGlhbGl6YXRpb24gd2hlbiBDT05GSUdfVk1BUF9TVEFDSyBp cwogZW5hYmxlZAoKWyBVcHN0cmVhbSBjb21taXQgOTQ3NmQzOTM2Njc5NjhiNGEwMmFmYmU5ZDM1 YTM1NTg0ODJiOTQzZSBdCgpETUEgdHJhbnNmZXJzIGFyZSBub3QgYWxsb3dlZCB0byBidWZmZXJz IHRoYXQgYXJlIG9uIHRoZSBzdGFjay4KVGhlcmVmb3JlIGFsbG9jYXRlIGEgYnVmZmVyIHRvIHN0 b3JlIHRoZSByZXN1bHQgb2YgdXNiX2NvbnRyb2xfbWVzc2FnZSgpLgoKRml4ZXMgdGhlc2UgYnVn cmVwb3J0czoKaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUy MTcKCmh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTQyMTM4Nwpo dHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTE0MjczOTgKClNob3J0 ZW5lZCBrZXJuZWwgYmFja3RyYWNlIGZyb20gNC4xMS45LTIwMC5mYzI1Lng4Nl82NDoKa2VybmVs OiAtLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0Ka2VybmVsOiBXQVJOSU5HOiBD UFU6IDMgUElEOiAyOTU3IGF0IGRyaXZlcnMvdXNiL2NvcmUvaGNkLmM6MTU4NwprZXJuZWw6IHRy YW5zZmVyIGJ1ZmZlciBub3QgZG1hIGNhcGFibGUKa2VybmVsOiBDYWxsIFRyYWNlOgprZXJuZWw6 IGR1bXBfc3RhY2srMHg2My8weDg2Cmtlcm5lbDogX193YXJuKzB4Y2IvMHhmMAprZXJuZWw6IHdh cm5fc2xvd3BhdGhfZm10KzB4NWEvMHg4MAprZXJuZWw6IHVzYl9oY2RfbWFwX3VyYl9mb3JfZG1h KzB4MzdmLzB4NTcwCmtlcm5lbDogPyB0cnlfdG9fZGVsX3RpbWVyX3N5bmMrMHg1My8weDgwCmtl cm5lbDogdXNiX2hjZF9zdWJtaXRfdXJiKzB4MzRlLzB4YjkwCmtlcm5lbDogPyBzY2hlZHVsZV90 aW1lb3V0KzB4MTdlLzB4MzAwCmtlcm5lbDogPyBkZWxfdGltZXJfc3luYysweDUwLzB4NTAKa2Vy bmVsOiA/IF9fc2xhYl9mcmVlKzB4YTkvMHgzMDAKa2VybmVsOiB1c2Jfc3VibWl0X3VyYisweDJm NC8weDU2MAprZXJuZWw6ID8gdXJiX2Rlc3Ryb3krMHgyNC8weDMwCmtlcm5lbDogdXNiX3N0YXJ0 X3dhaXRfdXJiKzB4NmUvMHgxNzAKa2VybmVsOiB1c2JfY29udHJvbF9tc2crMHhkYy8weDEyMApr ZXJuZWw6IG1jc19nZXRfcmVnKzB4MzYvMHg0MCBbbWNzNzc4MF0Ka2VybmVsOiBtY3NfbmV0X29w ZW4rMHhiNS8weDVjMCBbbWNzNzc4MF0KLi4uCgpSZWdyZXNzaW9uIGdvZXMgYmFjayB0byA0Ljks IHNvIGl0J3MgYSBnb29kIGNhbmRpZGF0ZSBmb3IgLXN0YWJsZS4KVGhvdWdoIGl0J3MgdGhlIGRl Y2lzaW9uIG9mIHRoZSBtYWludGFpbmVyLgoKVGhhbmtzIHRvIERhbiBXaWxsaWFtcyBmb3IgYWRk aW5nIHRoZSAidHJhbnNmZXIgYnVmZmVyIG5vdCBkbWEgY2FwYWJsZSIKd2FybmluZyBpbiB0aGUg Zmlyc3QgcGxhY2UuIEl0IGluc3RhbnRseSBwb2ludGVkIG1lIGluIHRoZSByaWdodCBkaXJlY3Rp b24uCgpQYXRjaCBoYXMgYmVlbiB0ZXN0ZWQgd2l0aCB0cmFuc2ZlcnJpbmcgZGF0YSBmcm9tIGEg UG9sYXIgd2F0Y2guCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgSmFyb3NjaCA8dGhvbWFzLmphcm9z Y2hAaW50cmEybmV0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2lyZGEvbWNzNzc4MC5jIHwgMTYgKysrKysr KysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXJkYS9tY3M3NzgwLmMgYi9kcml2ZXJzL25l dC9pcmRhL21jczc3ODAuYwppbmRleCBiY2E2YTFlNzJkMWQuLmUxYmI4MDJkNGE0ZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvaXJkYS9tY3M3NzgwLmMKKysrIGIvZHJpdmVycy9uZXQvaXJkYS9t Y3M3NzgwLmMKQEAgLTE0MSw5ICsxNDEsMTkgQEAgc3RhdGljIGludCBtY3Nfc2V0X3JlZyhzdHJ1 Y3QgbWNzX2NiICptY3MsIF9fdTE2IHJlZywgX191MTYgdmFsKQogc3RhdGljIGludCBtY3NfZ2V0 X3JlZyhzdHJ1Y3QgbWNzX2NiICptY3MsIF9fdTE2IHJlZywgX191MTYgKiB2YWwpCiB7CiAJc3Ry dWN0IHVzYl9kZXZpY2UgKmRldiA9IG1jcy0+dXNiZGV2OwotCWludCByZXQgPSB1c2JfY29udHJv bF9tc2coZGV2LCB1c2JfcmN2Y3RybHBpcGUoZGV2LCAwKSwgTUNTX1JEUkVRLAotCQkJCSAgTUNT X1JEX1JUWVBFLCAwLCByZWcsIHZhbCwgMiwKLQkJCQkgIG1zZWNzX3RvX2ppZmZpZXMoTUNTX0NU UkxfVElNRU9VVCkpOworCXZvaWQgKmRtYWJ1ZjsKKwlpbnQgcmV0OworCisJZG1hYnVmID0ga21h bGxvYyhzaXplb2YoX191MTYpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWRtYWJ1ZikKKwkJcmV0dXJu IC1FTk9NRU07CisKKwlyZXQgPSB1c2JfY29udHJvbF9tc2coZGV2LCB1c2JfcmN2Y3RybHBpcGUo ZGV2LCAwKSwgTUNTX1JEUkVRLAorCQkJICAgICAgTUNTX1JEX1JUWVBFLCAwLCByZWcsIGRtYWJ1 ZiwgMiwKKwkJCSAgICAgIG1zZWNzX3RvX2ppZmZpZXMoTUNTX0NUUkxfVElNRU9VVCkpOworCisJ bWVtY3B5KHZhbCwgZG1hYnVmLCBzaXplb2YoX191MTYpKTsKKwlrZnJlZShkbWFidWYpOwogCiAJ cmV0dXJuIHJldDsKIH0KLS0gCjIuMTMuNAoKCkZyb20gYmVkNzRmODdmNjBiNzMzMmQ2NjNkMjQx NDYxZTQxMTVlYjkwNTk4MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTGlwaW5nIFpo YW5nIDx6bHBub2JvZHlAZ21haWwuY29tPgpEYXRlOiBTdW4sIDIzIEp1bCAyMDE3IDE3OjUyOjIz ICswODAwClN1YmplY3Q6IFtQQVRDSCAxMy8yOF0gb3BlbnZzd2l0Y2g6IGZpeCBwb3RlbnRpYWwg b3V0IG9mIGJvdW5kIGFjY2VzcyBpbgogcGFyc2VfY3QKClsgVXBzdHJlYW0gY29tbWl0IDY5ZWM5 MzJlMzY0YjFiYTljM2EyMDg1ZmU5NmI3NmM4YTNmNzFlN2MgXQoKQmVmb3JlIHRoZSAndHlwZScg aXMgdmFsaWRhdGVkLCB3ZSBzaG91bGRuJ3QgdXNlIGl0IHRvIGZldGNoIHRoZQpvdnNfY3RfYXR0 cl9sZW5zJ3MgbWlubGVuIGFuZCBtYXhsZW4sIGVsc2UsIG91dCBvZiBib3VuZCBhY2Nlc3MKbWF5 IGhhcHBlbi4KCkZpeGVzOiA3ZjhhNDM2ZWFhMmMgKCJvcGVudnN3aXRjaDogQWRkIGNvbm50cmFj ayBhY3Rpb24iKQpTaWduZWQtb2ZmLWJ5OiBMaXBpbmcgWmhhbmcgPHpscG5vYm9keUBnbWFpbC5j b20+CkFja2VkLWJ5OiBQcmF2aW4gQiBTaGVsYXIgPHBzaGVsYXJAb3ZuLm9yZz4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9vcGVu dnN3aXRjaC9jb25udHJhY2suYyB8IDcgKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvY29u bnRyYWNrLmMgYi9uZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMKaW5kZXggNDgzODZiZmY4YjRl Li5iMjhlNDViNjkxZGUgMTAwNjQ0Ci0tLSBhL25ldC9vcGVudnN3aXRjaC9jb25udHJhY2suYwor KysgYi9uZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMKQEAgLTEwODgsOCArMTA4OCw4IEBAIHN0 YXRpYyBpbnQgcGFyc2VfY3QoY29uc3Qgc3RydWN0IG5sYXR0ciAqYXR0ciwgc3RydWN0IG92c19j b25udHJhY2tfaW5mbyAqaW5mbywKIAogCW5sYV9mb3JfZWFjaF9uZXN0ZWQoYSwgYXR0ciwgcmVt KSB7CiAJCWludCB0eXBlID0gbmxhX3R5cGUoYSk7Ci0JCWludCBtYXhsZW4gPSBvdnNfY3RfYXR0 cl9sZW5zW3R5cGVdLm1heGxlbjsKLQkJaW50IG1pbmxlbiA9IG92c19jdF9hdHRyX2xlbnNbdHlw ZV0ubWlubGVuOworCQlpbnQgbWF4bGVuOworCQlpbnQgbWlubGVuOwogCiAJCWlmICh0eXBlID4g T1ZTX0NUX0FUVFJfTUFYKSB7CiAJCQlPVlNfTkxFUlIobG9nLApAQCAtMTA5Nyw2ICsxMDk3LDkg QEAgc3RhdGljIGludCBwYXJzZV9jdChjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLCBzdHJ1Y3Qg b3ZzX2Nvbm50cmFja19pbmZvICppbmZvLAogCQkJCSAgdHlwZSwgT1ZTX0NUX0FUVFJfTUFYKTsK IAkJCXJldHVybiAtRUlOVkFMOwogCQl9CisKKwkJbWF4bGVuID0gb3ZzX2N0X2F0dHJfbGVuc1t0 eXBlXS5tYXhsZW47CisJCW1pbmxlbiA9IG92c19jdF9hdHRyX2xlbnNbdHlwZV0ubWlubGVuOwog CQlpZiAobmxhX2xlbihhKSA8IG1pbmxlbiB8fCBubGFfbGVuKGEpID4gbWF4bGVuKSB7CiAJCQlP VlNfTkxFUlIobG9nLAogCQkJCSAgIkNvbm50cmFjayBhdHRyIHR5cGUgaGFzIHVuZXhwZWN0ZWQg bGVuZ3RoICh0eXBlPSVkLCBsZW5ndGg9JWQsIGV4cGVjdGVkPSVkKSIsCi0tIAoyLjEzLjQKCgpG cm9tIDhkOTkyZTRlMmU5MmIyYzY2ZWJjYjI1NWM5OTI4NTlmMWE0OWVjNzIgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFdBTkcgQ29uZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpE YXRlOiBNb24sIDI0IEp1bCAyMDE3IDEwOjA3OjMyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNC8y OF0gcGFja2V0OiBmaXggdXNlLWFmdGVyLWZyZWUgaW4KIHByYl9yZXRpcmVfcnhfYmxrX3RpbWVy X2V4cGlyZWQoKQoKWyBVcHN0cmVhbSBjb21taXQgYzgwMGFhZjhkODY5ZjJiOWI0N2IxMGM1YzMx MmZlMTlmMGE5NDA0MiBdCgpUaGVyZSBhcmUgbXVsdGlwbGUgcmVwb3J0cyBzaG93aW5nIHdlIGhh dmUgYSB1c2UtYWZ0ZXItZnJlZSBpbgp0aGUgdGltZXIgcHJiX3JldGlyZV9yeF9ibGtfdGltZXJf ZXhwaXJlZCgpLCB3aGVyZSB3ZSB1c2Ugc3RydWN0CnRwYWNrZXRfa2JkcV9jb3JlOjpwa2JkcSwg YSBwZ192ZWMsIGFmdGVyIGl0IGdldHMgZnJlZWQgYnkKZnJlZV9wZ192ZWMoKS4KClRoZSBpbnRl cmVzdGluZyBwYXJ0IGlzIGl0IGlzIG5vdCBmcmVlZCB2aWEgcGFja2V0X3JlbGVhc2UoKSBidXQK dmlhIHBhY2tldF9zZXRzb2Nrb3B0KCksIHdoaWNoIG1lYW5zIHdlIGFyZSBub3QgY2xvc2luZyB0 aGUgc29ja2V0LgpMb29raW5nIGludG8gdGhlIGJpZyBhbmQgZmF0IGZ1bmN0aW9uIHBhY2tldF9z ZXRfcmluZygpLCB0aGlzIGNvdWxkCmhhcHBlbiBpZiB3ZSBzYXRpc2Z5IHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9uczoKCjEuIGNsb3NpbmcgPT0gMCwgbm90IG9uIHBhY2tldF9yZWxlYXNlKCkgcGF0 aAoyLiByZXEtPnRwX2Jsb2NrX25yID09IDAsIHdlIGRvbid0IGFsbG9jYXRlIGEgbmV3IHBnX3Zl YwozLiByeF9yaW5nLT5wZ192ZWMgaXMgYWxyZWFkeSBzZXQgYXMgVjMsIHdoaWNoIG1lYW5zIHdl IGFscmVhZHkgY2FsbGVkCiAgIHBhY2tldF9zZXRfcmluZygpIHd0aWggcmVxLT50cF9ibG9ja19u ciA+IDAgcHJldmlvdXNseQo0LiByZXEtPnRwX2ZyYW1lX25yID09IDAsIHBhc3Mgc2FuaXR5IGNo ZWNrCjUuIHBvLT5tYXBwZWQgPT0gMCwgbmV2ZXIgY2FsbGVkIG1tYXAoKQoKSW4gdGhpcyBzY2Vu YXJpbyB3ZSBhcmUgY2xlYXJpbmcgdGhlIG9sZCByeF9yaW5nLT5wZ192ZWMsIHNvIHdlIG5lZWQK dG8gZnJlZSB0aGlzIHBnX3ZlYywgYnV0IHdlIGRvbid0IHN0b3AgdGhlIHRpbWVyIG9uIHRoaXMg cGF0aCBiZWNhdXNlCm9mIGNsb3Npbmc9PTAuCgpUaGUgdGltZXIgaGFzIHRvIGJlIHN0b3BwZWQg YXMgbG9uZyBhcyB3ZSBuZWVkIHRvIGZyZWUgcGdfdmVjLCB0aGVyZWZvcmUKdGhlIGNoZWNrIG9u IGNsb3NpbmchPTAgaXMgd3JvbmcsIHdlIHNob3VsZCBjaGVjayBwZ192ZWMhPU5VTEwgaW5zdGVh ZC4KClRoYW5rcyB0byBsaXVqaWFuIGZvciB0ZXN0aW5nIGRpZmZlcmVudCBmaXhlcy4KClJlcG9y dGVkLWJ5OiBhbGV4YW5kZXIubGV2aW5AdmVyaXpvbi5jb20KUmVwb3J0ZWQtYnk6IERhdmUgSm9u ZXMgPGRhdmVqQGNvZGVtb25rZXkub3JnLnVrPgpSZXBvcnRlZC1ieTogbGl1amlhbiAoQ0UpIDxs aXVqaWFuNTZAaHVhd2VpLmNvbT4KVGVzdGVkLWJ5OiBsaXVqaWFuIChDRSkgPGxpdWppYW41NkBo dWF3ZWkuY29tPgpDYzogRGluZyBUaWFuaG9uZyA8ZGluZ3RpYW5ob25nQGh1YXdlaS5jb20+CkNj OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1kZWJydWlqbi5rZXJuZWxAZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9wYWNr ZXQvYWZfcGFja2V0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYwppbmRleCA2YTU2M2U2ZTI0ZGUuLjM2NWM4M2ZjZWUwMiAxMDA2NDQK LS0tIGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYworKysgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5j CkBAIC00MzIyLDcgKzQzMjIsNyBAQCBzdGF0aWMgaW50IHBhY2tldF9zZXRfcmluZyhzdHJ1Y3Qg c29jayAqc2ssIHVuaW9uIHRwYWNrZXRfcmVxX3UgKnJlcV91LAogCQlyZWdpc3Rlcl9wcm90X2hv b2soc2spOwogCX0KIAlzcGluX3VubG9jaygmcG8tPmJpbmRfbG9jayk7Ci0JaWYgKGNsb3Npbmcg JiYgKHBvLT50cF92ZXJzaW9uID4gVFBBQ0tFVF9WMikpIHsKKwlpZiAocGdfdmVjICYmIChwby0+ dHBfdmVyc2lvbiA+IFRQQUNLRVRfVjIpKSB7CiAJCS8qIEJlY2F1c2Ugd2UgZG9uJ3Qgc3VwcG9y dCBibG9jay1iYXNlZCBWMyBvbiB0eC1yaW5nICovCiAJCWlmICghdHhfcmluZykKIAkJCXByYl9z aHV0ZG93bl9yZXRpcmVfYmxrX3RpbWVyKHBvLCByYl9xdWV1ZSk7Ci0tIAoyLjEzLjQKCgpGcm9t IDlhMDNmZDllMTllYzZlNjVkZDM2ZDM2ODU1YzdkY2M1MzEwZWI2YzkgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFN0ZWZhbm8gQnJpdmlvIDxzYnJpdmlvQHJlZGhhdC5jb20+CkRhdGU6 IE1vbiwgMjQgSnVsIDIwMTcgMjM6MTQ6MjggKzAyMDAKU3ViamVjdDogW1BBVENIIDE1LzI4XSBp cHY2OiBEb24ndCBpbmNyZWFzZSBJUFNUQVRTX01JQl9GUkFHRkFJTFMgdHdpY2UgaW4KIGlwNl9m cmFnbWVudCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBhZmNlNjE1YWFhYmZiYWFkMDI1NTBlNzVjMGJl YzEwNmRhZmExYWRmIF0KClJGQyAyNDY1IGRlZmluZXMgaXB2NklmU3RhdHNPdXRGcmFnRmFpbHMg YXM6CgoJIlRoZSBudW1iZXIgb2YgSVB2NiBkYXRhZ3JhbXMgdGhhdCBoYXZlIGJlZW4gZGlzY2Fy ZGVkCgkgYmVjYXVzZSB0aGV5IG5lZWRlZCB0byBiZSBmcmFnbWVudGVkIGF0IHRoaXMgb3V0cHV0 CgkgaW50ZXJmYWNlIGJ1dCBjb3VsZCBub3QgYmUuIgoKVGhlIGV4aXN0aW5nIGltcGxlbWVudGF0 aW9uLCBpbnN0ZWFkLCB3b3VsZCBpbmNyZWFzZSB0aGUgY291bnRlcgp0d2ljZSBpbiBjYXNlIHdl IGZhaWwgdG8gYWxsb2NhdGUgcm9vbSBmb3Igc2luZ2xlIGZyYWdtZW50czoKb25jZSBmb3IgdGhl IGZyYWdtZW50LCBvbmNlIGZvciB0aGUgZGF0YWdyYW0uCgpUaGlzIGRpZG4ndCBsb29rIGludGVu dGlvbmFsIHRob3VnaC4gSW4gb25lIG9mIHRoZSB0d28gYWZmZWN0ZWQKYWZmZWN0ZWQgZmFpbHVy ZSBwYXRocywgdGhlIGRvdWJsZSBpbmNyZWFzZSB3YXMgc2ltcGx5IGEgcmVzdWx0Cm9mIGEgbmV3 ICdnb3RvIGZhaWwnIHN0YXRlbWVudCwgaW50cm9kdWNlZCB0byBhdm9pZCBhIHNrYiBsZWFrLgpU aGUgb3RoZXIgcGF0aCBhcHBlYXJzIHRvIGJlIGFmZmVjdGVkIHNpbmNlIGF0IGxlYXN0IDIuNi4x Mi1yYzIuCgpSZXBvcnRlZC1ieTogU2FicmluYSBEdWJyb2NhIDxzZHVicm9jYUByZWRoYXQuY29t PgpGaXhlczogMWQzMjVkMjE3YzdmICgiaXB2NjogaXA2X2ZyYWdtZW50OiBmaXggaGVhZHJvb20g dGVzdHMgYW5kIHNrYiBsZWFrIikKU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCcml2aW8gPHNicml2 aW9AcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9vdXRwdXQuYyB8IDQgLS0tLQogMSBmaWxlIGNo YW5nZWQsIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X291dHB1dC5j IGIvbmV0L2lwdjYvaXA2X291dHB1dC5jCmluZGV4IDVhNGI4ZTdiY2VkZC4uZWZlODExYzZlY2Nm IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjYvaXA2X291 dHB1dC5jCkBAIC02NjIsOCArNjYyLDYgQEAgaW50IGlwNl9mcmFnbWVudChzdHJ1Y3QgbmV0ICpu ZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJKnByZXZoZHIgPSBO RVhUSERSX0ZSQUdNRU5UOwogCQl0bXBfaGRyID0ga21lbWR1cChza2JfbmV0d29ya19oZWFkZXIo c2tiKSwgaGxlbiwgR0ZQX0FUT01JQyk7CiAJCWlmICghdG1wX2hkcikgewotCQkJSVA2X0lOQ19T VEFUUyhuZXQsIGlwNl9kc3RfaWRldihza2JfZHN0KHNrYikpLAotCQkJCSAgICAgIElQU1RBVFNf TUlCX0ZSQUdGQUlMUyk7CiAJCQllcnIgPSAtRU5PTUVNOwogCQkJZ290byBmYWlsOwogCQl9CkBA IC03ODIsOCArNzgwLDYgQEAgaW50IGlwNl9mcmFnbWVudChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVj dCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJZnJhZyA9IGFsbG9jX3NrYihsZW4g KyBobGVuICsgc2l6ZW9mKHN0cnVjdCBmcmFnX2hkcikgKwogCQkJCSBocm9vbSArIHRyb29tLCBH RlBfQVRPTUlDKTsKIAkJaWYgKCFmcmFnKSB7Ci0JCQlJUDZfSU5DX1NUQVRTKG5ldCwgaXA2X2Rz dF9pZGV2KHNrYl9kc3Qoc2tiKSksCi0JCQkJICAgICAgSVBTVEFUU19NSUJfRlJBR0ZBSUxTKTsK IAkJCWVyciA9IC1FTk9NRU07CiAJCQlnb3RvIGZhaWw7CiAJCX0KLS0gCjIuMTMuNAoKCkZyb20g MTNmMGI0MTRlY2FjZDU0ODUxNWM1ZjMxMDFiNDYzZmIxOTM3YmZmZiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogTWFyYyBHb256YWxleiA8bWFyY19nb256YWxlekBzaWdtYWRlc2lnbnMu Y29tPgpEYXRlOiBUdWUsIDI1IEp1bCAyMDE3IDE0OjM1OjAzICswMjAwClN1YmplY3Q6IFtQQVRD SCAxNi8yOF0gbmV0OiBldGhlcm5ldDogbmI4ODAwOiBIYW5kbGUgYWxsIDQgUkdNSUkgbW9kZXMK IGlkZW50aWNhbGx5CgpbIFVwc3RyZWFtIGNvbW1pdCA0ODEzNDk3YjUzN2M2MjA4YzkwZDZjYmVj YWM1MDcyZDM0N2RlOTAwIF0KCkJlZm9yZSBjb21taXQgYmY4ZjY5NTJhMjMzICgiQWRkIGJsdXJi IGFib3V0IFJHTUlJIikgaXQgd2FzIHVuY2xlYXIKd2hvc2UgcmVzcG9uc2liaWxpdHkgaXQgd2Fz IHRvIGluc2VydCB0aGUgcmVxdWlyZWQgY2xvY2sgc2tldywgYW5kCmluIGhpbmRzaWdodCwgc29t ZSBQSFkgZHJpdmVycyBnb3QgaXQgd3JvbmcuIFRoZSBzb2x1dGlvbiBmb3J3YXJkCmlzIHRvIGlu dHJvZHVjZSBhIG5ldyBwcm9wZXJ0eSwgZXhwbGljaXRseSByZXF1aXJpbmcgc2tldyBmcm9tIHRo ZQpub2RlIHRvIHdoaWNoIGl0IGlzIGF0dGFjaGVkLiBJbiB0aGUgaW50ZXJpbSwgdGhpcyBkcml2 ZXIgd2lsbCBoYW5kbGUKYWxsIDQgUkdNSUkgbW9kZXMgaWRlbnRpY2FsbHkgKG5vIHNrZXcpLgoK Rml4ZXM6IDUyZGZjODMwMTI0OCAoIm5ldDogZXRoZXJuZXQ6IGFkZCBkcml2ZXIgZm9yIEF1cm9y YSBWTFNJIE5CODgwMCBFdGhlcm5ldCBjb250cm9sbGVyIikKU2lnbmVkLW9mZi1ieTogTWFyYyBH b256YWxleiA8bWFyY19nb256YWxlekBzaWdtYWRlc2lnbnMuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRo ZXJuZXQvYXVyb3JhL25iODgwMC5jIHwgOSArKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGlu c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYXVyb3JhL25iODgwMC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXVyb3JhL25iODgw MC5jCmluZGV4IGUwNzhkOGRhOTc4Yy4uMjlkMjlhZjYxMmQxIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9hdXJvcmEvbmI4ODAwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv YXVyb3JhL25iODgwMC5jCkBAIC02MDksNyArNjA5LDcgQEAgc3RhdGljIHZvaWQgbmI4ODAwX21h Y19jb25maWcoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJbWFjX21vZGUgfD0gSEFMRl9EVVBM RVg7CiAKIAlpZiAoZ2lnYWJpdCkgewotCQlpZiAocHJpdi0+cGh5X21vZGUgPT0gUEhZX0lOVEVS RkFDRV9NT0RFX1JHTUlJKQorCQlpZiAocGh5X2ludGVyZmFjZV9pc19yZ21paShkZXYtPnBoeWRl dikpCiAJCQltYWNfbW9kZSB8PSBSR01JSV9NT0RFOwogCiAJCW1hY19tb2RlIHw9IEdNQUNfTU9E RTsKQEAgLTEyNzcsMTEgKzEyNzcsMTAgQEAgc3RhdGljIGludCBuYjg4MDBfdGFuZ294X2luaXQo c3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJYnJlYWs7CiAKIAljYXNlIFBIWV9JTlRFUkZBQ0Vf TU9ERV9SR01JSToKLQkJcGFkX21vZGUgPSBQQURfTU9ERV9SR01JSTsKLQkJYnJlYWs7Ci0KKwlj YXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9JRDoKKwljYXNlIFBIWV9JTlRFUkZBQ0VfTU9E RV9SR01JSV9SWElEOgogCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX1RYSUQ6Ci0JCXBh ZF9tb2RlID0gUEFEX01PREVfUkdNSUkgfCBQQURfTU9ERV9HVFhfQ0xLX0RFTEFZOworCQlwYWRf bW9kZSA9IFBBRF9NT0RFX1JHTUlJOwogCQlicmVhazsKIAogCWRlZmF1bHQ6Ci0tIAoyLjEzLjQK CgpGcm9tIGYyZTcxY2FlYTg2MTJjZTJlMDI1OWY1YTc1MzUxZmVkOTVjNDYzYjQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0 ZTogV2VkLCAyNiBKdWwgMjAxNyAxNDoxOTowOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjhd IGRjY3A6IGZpeCBhIG1lbWxlYWsgdGhhdCBkY2NwX2lwdjYgZG9lc24ndCBwdXQgcmVxc2sKIHBy b3Blcmx5CgpbIFVwc3RyZWFtIGNvbW1pdCAwYzIyMzJiMGE3MWRiMGFjMWQyMmY3NTFhYTFhYzBj YWRiOTUwZmQyIF0KCkluIGRjY3BfdjZfY29ubl9yZXF1ZXN0LCBhZnRlciByZXFzayBnZXRzIGFs bG9jZWQgYW5kIGhhc2hlZCBpbnRvCmVoYXNoIHRhYmxlLCByZXFzaydzIHJlZmNudCBpcyBzZXQg My4gb25lIGlzIGZvciByZXEtPnJza190aW1lciwKb25lIGlzIGZvciBobGlzdCwgYW5kIHRoZSBv dGhlciBvbmUgaXMgZm9yIGN1cnJlbnQgdXNpbmcuCgpUaGUgcHJvYmxlbSBpcyB3aGVuIGRjY3Bf djZfY29ubl9yZXF1ZXN0IHJldHVybnMgYW5kIGZpbmlzaGVzIHVzaW5nCnJlcXNrLCBpdCBkb2Vz bid0IHB1dCByZXFzay4gVGhpcyB3aWxsIGNhdXNlIHJlcXNrIHJlZmNudCBsZWFrcyBhbmQKcmVx c2sgb2JqIG5ldmVyIGdldHMgZnJlZWQuCgpKaWFubGluIGZvdW5kIHRoaXMgaXNzdWUgd2hlbiBy dW5uaW5nIGRjY3BfbWVtbGVhay5jIGluIGEgbG9vcCwgdGhlCnN5c3RlbSBtZW1vcnkgd291bGQg cnVuIG91dC4KCmRjY3BfbWVtbGVhay5jOgogIGludCBzMSA9IHNvY2tldChQRl9JTkVUNiwgNiwg SVBQUk9UT19JUCk7CiAgYmluZChzMSwgJnNhMSwgMHgyMCk7CiAgbGlzdGVuKHMxLCAweDkpOwog IGludCBzMiA9IHNvY2tldChQRl9JTkVUNiwgNiwgSVBQUk9UT19JUCk7CiAgY29ubmVjdChzMiwg JnNhMSwgMHgyMCk7CiAgY2xvc2UoczEpOwogIGNsb3NlKHMyKTsKClRoaXMgcGF0Y2ggaXMgdG8g cHV0IHRoZSByZXFzayBiZWZvcmUgZGNjcF92Nl9jb25uX3JlcXVlc3QgcmV0dXJucywKanVzdCBh cyB3aGF0IHRjcF9jb25uX3JlcXVlc3QgZG9lcy4KClJlcG9ydGVkLWJ5OiBKaWFubGluIFNoaSA8 amlzaGlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2RjY3AvaXB2Ni5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKykKCmRpZmYgLS1naXQgYS9uZXQvZGNjcC9pcHY2LmMgYi9uZXQvZGNjcC9pcHY2LmMKaW5k ZXggMmFjOWQyYTFhYWFiLi4yOGU4MjUyY2M1ZWEgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL2lwdjYu YworKysgYi9uZXQvZGNjcC9pcHY2LmMKQEAgLTM4MCw2ICszODAsNyBAQCBzdGF0aWMgaW50IGRj Y3BfdjZfY29ubl9yZXF1ZXN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikK IAkJZ290byBkcm9wX2FuZF9mcmVlOwogCiAJaW5ldF9jc2tfcmVxc2tfcXVldWVfaGFzaF9hZGQo c2ssIHJlcSwgRENDUF9USU1FT1VUX0lOSVQpOworCXJlcXNrX3B1dChyZXEpOwogCXJldHVybiAw OwogCiBkcm9wX2FuZF9mcmVlOgotLSAKMi4xMy40CgoKRnJvbSA2MDJiMGZkYjRmNzMzYzkyNjlk ZTE0YjZjMGI4MzhmNTYwODUzZDZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4g TG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjYgSnVsIDIwMTcgMTQ6MTk6 NDYgKzA4MDAKU3ViamVjdDogW1BBVENIIDE4LzI4XSBkY2NwOiBmaXggYSBtZW1sZWFrIHRoYXQg ZGNjcF9pcHY0IGRvZXNuJ3QgcHV0IHJlcXNrCiBwcm9wZXJseQoKWyBVcHN0cmVhbSBjb21taXQg Yjc5NTNkM2MwZTMwYTVmYzk0NGY2YjdiZDBiY2NlYjA3OTRiY2Q4NSBdCgpUaGUgcGF0Y2ggImRj Y3A6IGZpeCBhIG1lbWxlYWsgdGhhdCBkY2NwX2lwdjYgZG9lc24ndCBwdXQgcmVxc2sKcHJvcGVy bHkiIGZpeGVkIHJlcXNrIHJlZmNudCBsZWFrIGZvciBkY2NwX2lwdjYuIFRoZSBzYW1lIGlzc3Vl CmV4aXN0cyBvbiBkY2NwX2lwdjQuCgpUaGlzIHBhdGNoIGlzIHRvIGZpeCBpdCBmb3IgZGNjcF9p cHY0LgoKU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2RjY3AvaXB2NC5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYg LS1naXQgYS9uZXQvZGNjcC9pcHY0LmMgYi9uZXQvZGNjcC9pcHY0LmMKaW5kZXggODZiMDkzM2Vj ZDQ1Li44ZmMxNjAwOThlMTEgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL2lwdjQuYworKysgYi9uZXQv ZGNjcC9pcHY0LmMKQEAgLTYzNyw2ICs2MzcsNyBAQCBpbnQgZGNjcF92NF9jb25uX3JlcXVlc3Qo c3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQlnb3RvIGRyb3BfYW5kX2Zy ZWU7CiAKIAlpbmV0X2Nza19yZXFza19xdWV1ZV9oYXNoX2FkZChzaywgcmVxLCBEQ0NQX1RJTUVP VVRfSU5JVCk7CisJcmVxc2tfcHV0KHJlcSk7CiAJcmV0dXJuIDA7CiAKIGRyb3BfYW5kX2ZyZWU6 Ci0tIAoyLjEzLjQKCgpGcm9tIGQ3ZmM2NzA4OTg4N2Y0MGFmMWI1YmI1ZTc2NTJiMWI5ZDJkZmQ2 ZWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdt YWlsLmNvbT4KRGF0ZTogV2VkLCAyNiBKdWwgMjAxNyAxNDoyMDoxNSArMDgwMApTdWJqZWN0OiBb UEFUQ0ggMTkvMjhdIGRjY3A6IGZpeCBhIG1lbWxlYWsgZm9yIGRjY3BfZmVhdF9pbml0IGVyciBw cm9jZXNzCgpbIFVwc3RyZWFtIGNvbW1pdCBlOTBjZTJmYzI3Y2FkN2U3YjFlNzJiOWU2NjIwMWE3 YTRjMTI0YzJiIF0KCkluIGRjY3BfZmVhdF9pbml0LCB3aGVuIGNjaWRfZ2V0X2J1aWx0aW5fY2Np ZHMgZmFpbHN0byBhbGxvYwptZW1vcnkgZm9yIHJ4LnZhbCwgaXQgc2hvdWxkIGZyZWUgdHgudmFs IGJlZm9yZSByZXR1cm5pbmcgYW4KZXJyb3IuCgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVj aWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvZGNjcC9mZWF0LmMgfCA3ICsrKysrLS0KIDEgZmlsZSBj aGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2RjY3AvZmVhdC5jIGIvbmV0L2RjY3AvZmVhdC5jCmluZGV4IDE3MDQ5NDhlNmExMi4uZjIyN2Yw MDJjNzNkIDEwMDY0NAotLS0gYS9uZXQvZGNjcC9mZWF0LmMKKysrIGIvbmV0L2RjY3AvZmVhdC5j CkBAIC0xNDcxLDkgKzE0NzEsMTIgQEAgaW50IGRjY3BfZmVhdF9pbml0KHN0cnVjdCBzb2NrICpz aykKIAkgKiBzaW5nbGV0b24gdmFsdWVzICh3aGljaCBhbHdheXMgbGVhZHMgdG8gZmFpbHVyZSku CiAJICogVGhlc2Ugc2V0dGluZ3MgY2FuIHN0aWxsIChsYXRlcikgYmUgb3ZlcnJpZGRlbiB2aWEg c29ja29wdHMuCiAJICovCi0JaWYgKGNjaWRfZ2V0X2J1aWx0aW5fY2NpZHMoJnR4LnZhbCwgJnR4 LmxlbikgfHwKLQkgICAgY2NpZF9nZXRfYnVpbHRpbl9jY2lkcygmcngudmFsLCAmcngubGVuKSkK KwlpZiAoY2NpZF9nZXRfYnVpbHRpbl9jY2lkcygmdHgudmFsLCAmdHgubGVuKSkKIAkJcmV0dXJu IC1FTk9CVUZTOworCWlmIChjY2lkX2dldF9idWlsdGluX2NjaWRzKCZyeC52YWwsICZyeC5sZW4p KSB7CisJCWtmcmVlKHR4LnZhbCk7CisJCXJldHVybiAtRU5PQlVGUzsKKwl9CiAKIAlpZiAoIWRj Y3BfZmVhdF9wcmVmZXIoc3lzY3RsX2RjY3BfdHhfY2NpZCwgdHgudmFsLCB0eC5sZW4pIHx8CiAJ ICAgICFkY2NwX2ZlYXRfcHJlZmVyKHN5c2N0bF9kY2NwX3J4X2NjaWQsIHJ4LnZhbCwgcngubGVu KSkKLS0gCjIuMTMuNAoKCkZyb20gYTQ2Y2MxZjUzZGFkN2U0ZTI2YjY4NGJlMGE2Y2M1OTFhZmZk MGM0MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGFuZGVyIFBvdGFwZW5rbyA8 Z2xpZGVyQGdvb2dsZS5jb20+CkRhdGU6IEZyaSwgMTQgSnVsIDIwMTcgMTg6MzI6NDUgKzAyMDAK U3ViamVjdDogW1BBVENIIDIwLzI4XSBzY3RwOiBkb24ndCBkZXJlZmVyZW5jZSBwdHIgYmVmb3Jl IGxlYXZpbmcKIF9zY3RwX3dhbGtfe3BhcmFtcywgZXJyb3JzfSgpCgpbIFVwc3RyZWFtIGNvbW1p dCBiMWY1YmZjMjdhMTlmMjE0MDA2YjliNGRiN2I5MTI2ZGYyZGZkZjVhIF0KCklmIHRoZSBsZW5n dGggZmllbGQgb2YgdGhlIGl0ZXJhdG9yICh8cG9zLnB8IG9yIHxlcnJ8KSBpcyBwYXN0IHRoZSBl bmQKb2YgdGhlIGNodW5rLCB3ZSBzaG91bGRuJ3QgYWNjZXNzIGl0LgoKVGhpcyBidWcgaGFzIGJl ZW4gZGV0ZWN0ZWQgYnkgS01TQU4uIEZvciB0aGUgZm9sbG93aW5nIHBhaXIgb2Ygc3lzdGVtCmNh bGxzOgoKICBzb2NrZXQoUEZfSU5FVDYsIFNPQ0tfU1RSRUFNLCAweDg0IC8qIElQUFJPVE9fPz8/ ICovKSA9IDMKICBzZW5kdG8oMywgIkEiLCAxLCBNU0dfT09CLCB7c2FfZmFtaWx5PUFGX0lORVQ2 LCBzaW42X3BvcnQ9aHRvbnMoMCksCiAgICAgICAgIGluZXRfcHRvbihBRl9JTkVUNiwgIjo6MSIs ICZzaW42X2FkZHIpLCBzaW42X2Zsb3dpbmZvPTAsCiAgICAgICAgIHNpbjZfc2NvcGVfaWQ9MH0s IDI4KSA9IDEKCnRoZSB0b29sIGhhcyByZXBvcnRlZCBhIHVzZSBvZiB1bmluaXRpYWxpemVkIG1l bW9yeToKCiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAgQlVHOiBLTVNBTjogdXNlIG9mIHVuaW5pdGlhbGl6ZWQgbWVt b3J5IGluIHNjdHBfcmN2KzB4MTdiOC8weDQzYjAKICBDUFU6IDEgUElEOiAyOTQwIENvbW06IHBy b2JlIE5vdCB0YWludGVkIDQuMTEuMC1yYzUrICMyOTI2CiAgSGFyZHdhcmUgbmFtZTogUUVNVSBT dGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgQm9jaHMKICAwMS8wMS8yMDEx CiAgQ2FsbCBUcmFjZToKICAgPElSUT4KICAgX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6 MTYKICAgZHVtcF9zdGFjaysweDE3Mi8weDFjMCBsaWIvZHVtcF9zdGFjay5jOjUyCiAgIGttc2Fu X3JlcG9ydCsweDEyYS8weDE4MCBtbS9rbXNhbi9rbXNhbi5jOjkyNwogICBfX21zYW5fd2Fybmlu Z18zMisweDYxLzB4YjAgbW0va21zYW4va21zYW5faW5zdHIuYzo0NjkKICAgX19zY3RwX3Jjdl9p bml0X2xvb2t1cCBuZXQvc2N0cC9pbnB1dC5jOjEwNzQKICAgX19zY3RwX3Jjdl9sb29rdXBfaGFy ZGVyIG5ldC9zY3RwL2lucHV0LmM6MTIzMwogICBfX3NjdHBfcmN2X2xvb2t1cCBuZXQvc2N0cC9p bnB1dC5jOjEyNTUKICAgc2N0cF9yY3YrMHgxN2I4LzB4NDNiMCBuZXQvc2N0cC9pbnB1dC5jOjE3 MAogICBzY3RwNl9yY3YrMHgzMi8weDcwIG5ldC9zY3RwL2lwdjYuYzo5ODQKICAgaXA2X2lucHV0 X2ZpbmlzaCsweDgyZi8weDFlZTAgbmV0L2lwdjYvaXA2X2lucHV0LmM6Mjc5CiAgIE5GX0hPT0sg Li9pbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI1NwogICBpcDZfaW5wdXQrMHgyMzkvMHgyOTAg bmV0L2lwdjYvaXA2X2lucHV0LmM6MzIyCiAgIGRzdF9pbnB1dCAuL2luY2x1ZGUvbmV0L2RzdC5o OjQ5MgogICBpcDZfcmN2X2ZpbmlzaCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzo2OQogICBORl9IT09L IC4vaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyNTcKICAgaXB2Nl9yY3YrMHgxZGJkLzB4MjJl MCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzoyMDMKICAgX19uZXRpZl9yZWNlaXZlX3NrYl9jb3JlKzB4 MmY2Zi8weDNhMjAgbmV0L2NvcmUvZGV2LmM6NDIwOAogICBfX25ldGlmX3JlY2VpdmVfc2tiIG5l dC9jb3JlL2Rldi5jOjQyNDYKICAgcHJvY2Vzc19iYWNrbG9nKzB4NjY3LzB4YmEwIG5ldC9jb3Jl L2Rldi5jOjQ4NjYKICAgbmFwaV9wb2xsIG5ldC9jb3JlL2Rldi5jOjUyNjgKICAgbmV0X3J4X2Fj dGlvbisweGM5NS8weDE1OTAgbmV0L2NvcmUvZGV2LmM6NTMzMwogICBfX2RvX3NvZnRpcnErMHg0 ODUvMHg5NDIga2VybmVsL3NvZnRpcnEuYzoyODQKICAgZG9fc29mdGlycV9vd25fc3RhY2srMHgx Yy8weDMwIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlM6OTAyCiAgIDwvSVJRPgogICBkb19zb2Z0 aXJxIGtlcm5lbC9zb2Z0aXJxLmM6MzI4CiAgIF9fbG9jYWxfYmhfZW5hYmxlX2lwKzB4MjViLzB4 MjkwIGtlcm5lbC9zb2Z0aXJxLmM6MTgxCiAgIGxvY2FsX2JoX2VuYWJsZSsweDM3LzB4NDAgLi9p bmNsdWRlL2xpbnV4L2JvdHRvbV9oYWxmLmg6MzEKICAgcmN1X3JlYWRfdW5sb2NrX2JoIC4vaW5j bHVkZS9saW51eC9yY3VwZGF0ZS5oOjkzMQogICBpcDZfZmluaXNoX291dHB1dDIrMHgxOWIyLzB4 MWNmMCBuZXQvaXB2Ni9pcDZfb3V0cHV0LmM6MTI0CiAgIGlwNl9maW5pc2hfb3V0cHV0KzB4NzY0 LzB4OTcwIG5ldC9pcHY2L2lwNl9vdXRwdXQuYzoxNDkKICAgTkZfSE9PS19DT05EIC4vaW5jbHVk ZS9saW51eC9uZXRmaWx0ZXIuaDoyNDYKICAgaXA2X291dHB1dCsweDQ1Ni8weDUyMCBuZXQvaXB2 Ni9pcDZfb3V0cHV0LmM6MTYzCiAgIGRzdF9vdXRwdXQgLi9pbmNsdWRlL25ldC9kc3QuaDo0ODYK ICAgTkZfSE9PSyAuL2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MjU3CiAgIGlwNl94bWl0KzB4 MTg0MS8weDFjMDAgbmV0L2lwdjYvaXA2X291dHB1dC5jOjI2MQogICBzY3RwX3Y2X3htaXQrMHgz YjcvMHg0NzAgbmV0L3NjdHAvaXB2Ni5jOjIyNQogICBzY3RwX3BhY2tldF90cmFuc21pdCsweDM4 Y2IvMHgzYTIwIG5ldC9zY3RwL291dHB1dC5jOjYzMgogICBzY3RwX291dHFfZmx1c2grMHhlYjMv MHg0NmUwIG5ldC9zY3RwL291dHF1ZXVlLmM6ODg1CiAgIHNjdHBfb3V0cV91bmNvcmsrMHhiMi8w eGQwIG5ldC9zY3RwL291dHF1ZXVlLmM6NzUwCiAgIHNjdHBfc2lkZV9lZmZlY3RzIG5ldC9zY3Rw L3NtX3NpZGVlZmZlY3QuYzoxNzczCiAgIHNjdHBfZG9fc20rMHg2OTYyLzB4NmVjMCBuZXQvc2N0 cC9zbV9zaWRlZWZmZWN0LmM6MTE0NwogICBzY3RwX3ByaW1pdGl2ZV9BU1NPQ0lBVEUrMHgxMmMv MHgxNjAgbmV0L3NjdHAvcHJpbWl0aXZlLmM6ODgKICAgc2N0cF9zZW5kbXNnKzB4NDNlNS8weDRm OTAgbmV0L3NjdHAvc29ja2V0LmM6MTk1NAogICBpbmV0X3NlbmRtc2crMHg0OTgvMHg2NzAgbmV0 L2lwdjQvYWZfaW5ldC5jOjc2MgogICBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0L3NvY2tldC5jOjYz MwogICBzb2NrX3NlbmRtc2cgbmV0L3NvY2tldC5jOjY0MwogICBTWVNDX3NlbmR0bysweDYwOC8w eDcxMCBuZXQvc29ja2V0LmM6MTY5NgogICBTeVNfc2VuZHRvKzB4OGEvMHhiMCBuZXQvc29ja2V0 LmM6MTY2NAogICBkb19zeXNjYWxsXzY0KzB4ZTYvMHgxMzAgYXJjaC94ODYvZW50cnkvY29tbW9u LmM6Mjg1CiAgIGVudHJ5X1NZU0NBTEw2NF9zbG93X3BhdGgrMHgyNS8weDI1IGFyY2gveDg2L2Vu dHJ5L2VudHJ5XzY0LlM6MjQ2CiAgUklQOiAwMDMzOjB4NDAxMTMzCiAgUlNQOiAwMDJiOjAwMDA3 ZmZmNmQ5OWNkMzggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAyYwog IFJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDA0MDAyYjAgUkNYOiAwMDAwMDAw MDAwNDAxMTMzCiAgUkRYOiAwMDAwMDAwMDAwMDAwMDAxIFJTSTogMDAwMDAwMDAwMDQ5NDA4OCBS REk6IDAwMDAwMDAwMDAwMDAwMDMKICBSQlA6IDAwMDA3ZmZmNmQ5OWNkOTAgUjA4OiAwMDAwN2Zm ZjZkOTljZDUwIFIwOTogMDAwMDAwMDAwMDAwMDAxYwogIFIxMDogMDAwMDAwMDAwMDAwMDAwMSBS MTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwMDAwMDAwMDAwMDAwCiAgUjEzOiAwMDAwMDAw MDAwNDA2M2QwIFIxNDogMDAwMDAwMDAwMDQwNjQ2MCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKICBv cmlnaW46CiAgIHNhdmVfc3RhY2tfdHJhY2UrMHgzNy8weDQwIGFyY2gveDg2L2tlcm5lbC9zdGFj a3RyYWNlLmM6NTkKICAga21zYW5fc2F2ZV9zdGFja193aXRoX2ZsYWdzIG1tL2ttc2FuL2ttc2Fu LmM6MzAyCiAgIGttc2FuX2ludGVybmFsX3BvaXNvbl9zaGFkb3crMHhiMS8weDFhMCBtbS9rbXNh bi9rbXNhbi5jOjE5OAogICBrbXNhbl9wb2lzb25fc2hhZG93KzB4NmQvMHhjMCBtbS9rbXNhbi9r bXNhbi5jOjIxMQogICBzbGFiX2FsbG9jX25vZGUgbW0vc2x1Yi5jOjI3NDMKICAgX19rbWFsbG9j X25vZGVfdHJhY2tfY2FsbGVyKzB4MjAwLzB4MzYwIG1tL3NsdWIuYzo0MzUxCiAgIF9fa21hbGxv Y19yZXNlcnZlIG5ldC9jb3JlL3NrYnVmZi5jOjEzOAogICBfX2FsbG9jX3NrYisweDI2Yi8weDg0 MCBuZXQvY29yZS9za2J1ZmYuYzoyMzEKICAgYWxsb2Nfc2tiIC4vaW5jbHVkZS9saW51eC9za2J1 ZmYuaDo5MzMKICAgc2N0cF9wYWNrZXRfdHJhbnNtaXQrMHgzMWUvMHgzYTIwIG5ldC9zY3RwL291 dHB1dC5jOjU3MAogICBzY3RwX291dHFfZmx1c2grMHhlYjMvMHg0NmUwIG5ldC9zY3RwL291dHF1 ZXVlLmM6ODg1CiAgIHNjdHBfb3V0cV91bmNvcmsrMHhiMi8weGQwIG5ldC9zY3RwL291dHF1ZXVl LmM6NzUwCiAgIHNjdHBfc2lkZV9lZmZlY3RzIG5ldC9zY3RwL3NtX3NpZGVlZmZlY3QuYzoxNzcz CiAgIHNjdHBfZG9fc20rMHg2OTYyLzB4NmVjMCBuZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmM6MTE0 NwogICBzY3RwX3ByaW1pdGl2ZV9BU1NPQ0lBVEUrMHgxMmMvMHgxNjAgbmV0L3NjdHAvcHJpbWl0 aXZlLmM6ODgKICAgc2N0cF9zZW5kbXNnKzB4NDNlNS8weDRmOTAgbmV0L3NjdHAvc29ja2V0LmM6 MTk1NAogICBpbmV0X3NlbmRtc2crMHg0OTgvMHg2NzAgbmV0L2lwdjQvYWZfaW5ldC5jOjc2Mgog ICBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0L3NvY2tldC5jOjYzMwogICBzb2NrX3NlbmRtc2cgbmV0 L3NvY2tldC5jOjY0MwogICBTWVNDX3NlbmR0bysweDYwOC8weDcxMCBuZXQvc29ja2V0LmM6MTY5 NgogICBTeVNfc2VuZHRvKzB4OGEvMHhiMCBuZXQvc29ja2V0LmM6MTY2NAogICBkb19zeXNjYWxs XzY0KzB4ZTYvMHgxMzAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjg1CiAgIHJldHVybl9mcm9t X1NZU0NBTExfNjQrMHgwLzB4NmEgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzoyNDYKICA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KClNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBQb3RhcGVua28gPGdsaWRlckBnb29nbGUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogaW5jbHVkZS9uZXQvc2N0cC9zY3RwLmggfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zY3RwL3NjdHAuaCBiL2lu Y2x1ZGUvbmV0L3NjdHAvc2N0cC5oCmluZGV4IDMxYWNjM2Y0ZjEzMi4uMDIxNzBiYmI0NDkwIDEw MDY0NAotLS0gYS9pbmNsdWRlL25ldC9zY3RwL3NjdHAuaAorKysgYi9pbmNsdWRlL25ldC9zY3Rw L3NjdHAuaApAQCAtNDYwLDYgKzQ2MCw4IEBAIF9zY3RwX3dhbGtfcGFyYW1zKChwb3MpLCAoY2h1 bmspLCBudG9ocygoY2h1bmspLT5jaHVua19oZHIubGVuZ3RoKSwgbWVtYmVyKQogCiAjZGVmaW5l IF9zY3RwX3dhbGtfcGFyYW1zKHBvcywgY2h1bmssIGVuZCwgbWVtYmVyKVwKIGZvciAocG9zLnYg PSBjaHVuay0+bWVtYmVyO1wKKyAgICAgKHBvcy52ICsgb2Zmc2V0b2Yoc3RydWN0IHNjdHBfcGFy YW1oZHIsIGxlbmd0aCkgKyBzaXplb2YocG9zLnAtPmxlbmd0aCkgPFwKKyAgICAgICh2b2lkICop Y2h1bmsgKyBlbmQpICYmXAogICAgICBwb3MudiA8PSAodm9pZCAqKWNodW5rICsgZW5kIC0gbnRv aHMocG9zLnAtPmxlbmd0aCkgJiZcCiAgICAgIG50b2hzKHBvcy5wLT5sZW5ndGgpID49IHNpemVv ZihzY3RwX3BhcmFtaGRyX3QpO1wKICAgICAgcG9zLnYgKz0gU0NUUF9QQUQ0KG50b2hzKHBvcy5w LT5sZW5ndGgpKSkKQEAgLTQ3MCw2ICs0NzIsOCBAQCBfc2N0cF93YWxrX2Vycm9ycygoZXJyKSwg KGNodW5rX2hkciksIG50b2hzKChjaHVua19oZHIpLT5sZW5ndGgpKQogI2RlZmluZSBfc2N0cF93 YWxrX2Vycm9ycyhlcnIsIGNodW5rX2hkciwgZW5kKVwKIGZvciAoZXJyID0gKHNjdHBfZXJyaGRy X3QgKikoKHZvaWQgKiljaHVua19oZHIgKyBcCiAJICAgIHNpemVvZihzY3RwX2NodW5raGRyX3Qp KTtcCisgICAgICgodm9pZCAqKWVyciArIG9mZnNldG9mKHNjdHBfZXJyaGRyX3QsIGxlbmd0aCkg KyBzaXplb2YoZXJyLT5sZW5ndGgpIDxcCisgICAgICAodm9pZCAqKWNodW5rX2hkciArIGVuZCkg JiZcCiAgICAgICh2b2lkICopZXJyIDw9ICh2b2lkICopY2h1bmtfaGRyICsgZW5kIC0gbnRvaHMo ZXJyLT5sZW5ndGgpICYmXAogICAgICBudG9ocyhlcnItPmxlbmd0aCkgPj0gc2l6ZW9mKHNjdHBf ZXJyaGRyX3QpOyBcCiAgICAgIGVyciA9IChzY3RwX2Vycmhkcl90ICopKCh2b2lkICopZXJyICsg U0NUUF9QQUQ0KG50b2hzKGVyci0+bGVuZ3RoKSkpKQotLSAKMi4xMy40CgoKRnJvbSBkNmMzNWYz NjMyMjk1MWNkOTM0YjgyODcyY2E4Njk2ZTQ1Mjg4NjM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjYgSnVs IDIwMTcgMTY6MjQ6NTkgKzA4MDAKU3ViamVjdDogW1BBVENIIDIxLzI4XSBzY3RwOiBmaXggdGhl IGNoZWNrIGZvciBfc2N0cF93YWxrX3BhcmFtcyBhbmQKIF9zY3RwX3dhbGtfZXJyb3JzCgpbIFVw c3RyZWFtIGNvbW1pdCA2Yjg0MjAyYzk0NmNkM2RhM2E4ZGFhOTJjNjgyNTEwZTllZDgwMzIxIF0K CkNvbW1pdCBiMWY1YmZjMjdhMTkgKCJzY3RwOiBkb24ndCBkZXJlZmVyZW5jZSBwdHIgYmVmb3Jl IGxlYXZpbmcKX3NjdHBfd2Fsa197cGFyYW1zLCBlcnJvcnN9KCkiKSB0cmllZCB0byBmaXggdGhl IGlzc3VlIHRoYXQgaXQKbWF5IG92ZXJzdGVwIHRoZSBjaHVuayBlbmQgZm9yIF9zY3RwX3dhbGtf e3BhcmFtcywgZXJyb3JzfSB3aXRoCidjaHVua19lbmQgPiBvZmZzZXQobGVuZ3RoKSArIHNpemVv ZihsZW5ndGgpJy4KCkJ1dCBpdCBpbnRyb2R1Y2VkIGEgc2lkZSBlZmZlY3Q6IFdoZW4gcHJvY2Vz c2luZyBJTklULCBpdCB2ZXJpZmllcwp0aGUgY2h1bmtzIHdpdGggJ3BhcmFtLnYgPT0gY2h1bmtf ZW5kJyBhZnRlciBpdGVyYXRpbmcgYWxsIHBhcmFtcwpieSBzY3RwX3dhbGtfcGFyYW1zKCkuIFdp dGggdGhlIGNoZWNrICdjaHVua19lbmQgPiBvZmZzZXQobGVuZ3RoKQorIHNpemVvZihsZW5ndGgp JywgaXQgd291bGQgcmV0dXJuIHdoZW4gdGhlIGxhc3QgcGFyYW0gaXMgbm90IHlldAphY2Nlc3Nl ZC4gQmVjYXVzZSB0aGUgbGFzdCBwYXJhbSB1c3VhbGx5IGlzIGZ3ZHRzbiBzdXBwb3J0ZWQgcGFy YW0Kd2hvc2Ugc2l6ZSBpcyA0IGFuZCAnY2h1bmtfZW5kID09IG9mZnNldChsZW5ndGgpICsgc2l6 ZW9mKGxlbmd0aCknCgpUaGlzIGlzIGEgYmFkbHkgaXNzdWUgZXZlbiBjYXVzaW5nIHNjdHAgY291 bGRuJ3QgcHJvY2VzcyA0LXNoYWtlcy4KQ2xpZW50IHdvdWxkIGFsd2F5cyBnZXQgYWJvcnQgd2hl biBjb25uZWN0aW5nIHRvIHNlcnZlciwgZHVlIHRvCnRoZSBmYWlsdXJlIG9mIElOSVQgY2h1bmsg dmVyaWZpY2F0aW9uIG9uIHNlcnZlci4KClRoZSBwYXRjaCBpcyB0byB1c2UgJ2NodW5rX2VuZCA8 PSBvZmZzZXQobGVuZ3RoKSArIHNpemVvZihsZW5ndGgpJwppbnN0ZWFkIG9mICdjaHVua19lbmQg PCBvZmZzZXQobGVuZ3RoKSArIHNpemVvZihsZW5ndGgpJyBmb3IgYm90aApfc2N0cF93YWxrX3Bh cmFtcyBhbmQgX3NjdHBfd2Fsa19lcnJvcnMuCgpGaXhlczogYjFmNWJmYzI3YTE5ICgic2N0cDog ZG9uJ3QgZGVyZWZlcmVuY2UgcHRyIGJlZm9yZSBsZWF2aW5nIF9zY3RwX3dhbGtfe3BhcmFtcywg ZXJyb3JzfSgpIikKU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29t PgpBY2tlZC1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUv bmV0L3NjdHAvc2N0cC5oIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NjdHAvc2N0cC5oIGIv aW5jbHVkZS9uZXQvc2N0cC9zY3RwLmgKaW5kZXggMDIxNzBiYmI0NDkwLi42MWQ5Y2U4OWQxMGQg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjdHAvc2N0cC5oCisrKyBiL2luY2x1ZGUvbmV0L3Nj dHAvc2N0cC5oCkBAIC00NjAsNyArNDYwLDcgQEAgX3NjdHBfd2Fsa19wYXJhbXMoKHBvcyksIChj aHVuayksIG50b2hzKChjaHVuayktPmNodW5rX2hkci5sZW5ndGgpLCBtZW1iZXIpCiAKICNkZWZp bmUgX3NjdHBfd2Fsa19wYXJhbXMocG9zLCBjaHVuaywgZW5kLCBtZW1iZXIpXAogZm9yIChwb3Mu diA9IGNodW5rLT5tZW1iZXI7XAotICAgICAocG9zLnYgKyBvZmZzZXRvZihzdHJ1Y3Qgc2N0cF9w YXJhbWhkciwgbGVuZ3RoKSArIHNpemVvZihwb3MucC0+bGVuZ3RoKSA8XAorICAgICAocG9zLnYg KyBvZmZzZXRvZihzdHJ1Y3Qgc2N0cF9wYXJhbWhkciwgbGVuZ3RoKSArIHNpemVvZihwb3MucC0+ bGVuZ3RoKSA8PVwKICAgICAgICh2b2lkICopY2h1bmsgKyBlbmQpICYmXAogICAgICBwb3MudiA8 PSAodm9pZCAqKWNodW5rICsgZW5kIC0gbnRvaHMocG9zLnAtPmxlbmd0aCkgJiZcCiAgICAgIG50 b2hzKHBvcy5wLT5sZW5ndGgpID49IHNpemVvZihzY3RwX3BhcmFtaGRyX3QpO1wKQEAgLTQ3Miw3 ICs0NzIsNyBAQCBfc2N0cF93YWxrX2Vycm9ycygoZXJyKSwgKGNodW5rX2hkciksIG50b2hzKChj aHVua19oZHIpLT5sZW5ndGgpKQogI2RlZmluZSBfc2N0cF93YWxrX2Vycm9ycyhlcnIsIGNodW5r X2hkciwgZW5kKVwKIGZvciAoZXJyID0gKHNjdHBfZXJyaGRyX3QgKikoKHZvaWQgKiljaHVua19o ZHIgKyBcCiAJICAgIHNpemVvZihzY3RwX2NodW5raGRyX3QpKTtcCi0gICAgICgodm9pZCAqKWVy ciArIG9mZnNldG9mKHNjdHBfZXJyaGRyX3QsIGxlbmd0aCkgKyBzaXplb2YoZXJyLT5sZW5ndGgp IDxcCisgICAgICgodm9pZCAqKWVyciArIG9mZnNldG9mKHNjdHBfZXJyaGRyX3QsIGxlbmd0aCkg KyBzaXplb2YoZXJyLT5sZW5ndGgpIDw9XAogICAgICAgKHZvaWQgKiljaHVua19oZHIgKyBlbmQp ICYmXAogICAgICAodm9pZCAqKWVyciA8PSAodm9pZCAqKWNodW5rX2hkciArIGVuZCAtIG50b2hz KGVyci0+bGVuZ3RoKSAmJlwKICAgICAgbnRvaHMoZXJyLT5sZW5ndGgpID49IHNpemVvZihzY3Rw X2Vycmhkcl90KTsgXAotLSAKMi4xMy40CgoKRnJvbSAzYjM0MTAyNTYxZjk4OGJiMDIyNTliNTA2 ZjJlZGJkNWU3ZTMzOGY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBdml2IEhlbGxl ciA8YXZpdmhAbWVsbGFub3guY29tPgpEYXRlOiBTdW4sIDIgSnVsIDIwMTcgMTk6MTM6NDMgKzAz MDAKU3ViamVjdDogW1BBVENIIDIyLzI4XSBuZXQvbWx4NTogQ29uc2lkZXIgdHhfZW5hYmxlZCBp biBhbGwgbW9kZXMgb24gcmVtYXAKClsgVXBzdHJlYW0gY29tbWl0IGRjNzk4YjRjYzBmMmEwNmU3 YWQ3ZDUyMjQwM2RlMjc0Yjg2YTBhNmYgXQoKVGhlIHR4X2VuYWJsZWQgbGFnIGV2ZW50IGZpZWxk IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBzbGF2ZSBpcwphY3RpdmUuCkN1cnJlbnQg bG9naWMgdXNlcyB0aGlzIHZhbHVlIG9ubHkgaWYgdGhlIG1vZGUgaXMgYWN0aXZlLWJhY2t1cC4K Ckhvd2V2ZXIsIExBQ1AgbW9kZSwgYWx0aG91Z2ggY29uc2lkZXJlZCBhIGxvYWQgYmFsYW5jaW5n IG1vZGUsIGNhbiBtYXJrCmEgc2xhdmUgYXMgaW5hY3RpdmUgaW4gY2VydGFpbiBzaXR1YXRpb25z IChlLmcuLCBMQUNQIHRpbWVvdXQpLgoKVGhpcyBmaXggdGFrZXMgdGhlIHR4X2VuYWJsZWQgdmFs dWUgaW50byBhY2NvdW50IHdoZW4gcmVtYXBwaW5nLCB3aXRoCm5vIHJlc3BlY3QgdG8gdGhlIExB RyBtb2RlICh0aGlzIHNob3VsZCBub3QgYWZmZWN0IHRoZSBiZWhhdmlvciBpbiBYT1IKbW9kZSwg c2luY2UgaW4gdGhpcyBtb2RlIGJvdGggc2xhdmVzIGFyZSBtYXJrZWQgYXMgYWN0aXZlKS4KCkZp eGVzOiA3OTA3ZjIzYWRjMTggKG5ldC9tbHg1OiBJbXBsZW1lbnQgUm9DRSBMQUcgZmVhdHVyZSkK U2lnbmVkLW9mZi1ieTogQXZpdiBIZWxsZXIgPGF2aXZoQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9m Zi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy5jIHwgMjUgKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9sYWcuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcuYwpp bmRleCBiNWQ1NTE5NTQyZTguLjBjYTQ2MjNiZGE2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9sYWcuYwpAQCAtMTU3LDIyICsxNTcsMTcgQEAgc3RhdGlj IGJvb2wgbWx4NV9sYWdfaXNfYm9uZGVkKHN0cnVjdCBtbHg1X2xhZyAqbGRldikKIHN0YXRpYyB2 b2lkIG1seDVfaW5mZXJfdHhfYWZmaW5pdHlfbWFwcGluZyhzdHJ1Y3QgbGFnX3RyYWNrZXIgKnRy YWNrZXIsCiAJCQkJCSAgIHU4ICpwb3J0MSwgdTggKnBvcnQyKQogewotCWlmICh0cmFja2VyLT50 eF90eXBlID09IE5FVERFVl9MQUdfVFhfVFlQRV9BQ1RJVkVCQUNLVVApIHsKLQkJaWYgKHRyYWNr ZXItPm5ldGRldl9zdGF0ZVswXS50eF9lbmFibGVkKSB7Ci0JCQkqcG9ydDEgPSAxOwotCQkJKnBv cnQyID0gMTsKLQkJfSBlbHNlIHsKLQkJCSpwb3J0MSA9IDI7Ci0JCQkqcG9ydDIgPSAyOwotCQl9 Ci0JfSBlbHNlIHsKLQkJKnBvcnQxID0gMTsKLQkJKnBvcnQyID0gMjsKLQkJaWYgKCF0cmFja2Vy LT5uZXRkZXZfc3RhdGVbMF0ubGlua191cCkKLQkJCSpwb3J0MSA9IDI7Ci0JCWVsc2UgaWYgKCF0 cmFja2VyLT5uZXRkZXZfc3RhdGVbMV0ubGlua191cCkKLQkJCSpwb3J0MiA9IDE7CisJKnBvcnQx ID0gMTsKKwkqcG9ydDIgPSAyOworCWlmICghdHJhY2tlci0+bmV0ZGV2X3N0YXRlWzBdLnR4X2Vu YWJsZWQgfHwKKwkgICAgIXRyYWNrZXItPm5ldGRldl9zdGF0ZVswXS5saW5rX3VwKSB7CisJCSpw b3J0MSA9IDI7CisJCXJldHVybjsKIAl9CisKKwlpZiAoIXRyYWNrZXItPm5ldGRldl9zdGF0ZVsx XS50eF9lbmFibGVkIHx8CisJICAgICF0cmFja2VyLT5uZXRkZXZfc3RhdGVbMV0ubGlua191cCkK KwkJKnBvcnQyID0gMTsKIH0KIAogc3RhdGljIHZvaWQgbWx4NV9hY3RpdmF0ZV9sYWcoc3RydWN0 IG1seDVfbGFnICpsZGV2LAotLSAKMi4xMy40CgoKRnJvbSAyYjIwN2NiYzFiZDQxYTBmODljODA4 NDBlZDVjNGM1NzU5ZjRlZmM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNb3NoZSBT aGVtZXNoIDxtb3NoZUBtZWxsYW5veC5jb20+CkRhdGU6IFN1biwgMjUgSnVuIDIwMTcgMTg6NDU6 MzIgKzAzMDAKU3ViamVjdDogW1BBVENIIDIzLzI4XSBuZXQvbWx4NTogRml4IGNvbW1hbmQgYmFk IGZsb3cgb24gY29tbWFuZCBlbnRyeQogYWxsb2NhdGlvbiBmYWlsdXJlCgpbIFVwc3RyZWFtIGNv bW1pdCAyMTljODFmN2QxZDVhODk2NTZjYjNiNTNkM2I0ZTExZTkzNjA4ZDgwIF0KCldoZW4gZHJp dmVyIGZhaWwgdG8gYWxsb2NhdGUgYW4gZW50cnkgdG8gc2VuZCBjb21tYW5kIHRvIEZXLCBpdCBt dXN0Cm5vdGlmeSB0aGUgY2FsbGluZyBmdW5jdGlvbiBhbmQgcmVsZWFzZSB0aGUgbWVtb3J5IGFs bG9jYXRlZCBmb3IKdGhpcyBjb21tYW5kLgoKRml4ZXM6IGUxMjZiYTk3ZGJhOWUgKCdtbHg1OiBB ZGQgZHJpdmVyIGZvciBNZWxsYW5veCBDb25uZWN0LUlCIGFkYXB0ZXJzJykKU2lnbmVkLW9mZi1i eTogTW9zaGUgU2hlbWVzaCA8bW9zaGVAbWVsbGFub3guY29tPgpDYzoga2VybmVsLXRlYW1AZmIu Y29tClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgot LS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYyB8IDE5ICsr KysrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9jbWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9j bWQuYwppbmRleCBjYjQ1MzkwYzc2MjMuLmY3ZmFiZWNjMTA0ZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYwpAQCAtNzcwLDYgKzc3MCwxMCBAQCBz dGF0aWMgdm9pZCBjYl90aW1lb3V0X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQog CW1seDVfY21kX2NvbXBfaGFuZGxlcihkZXYsIDFVTCA8PCBlbnQtPmlkeCwgdHJ1ZSk7CiB9CiAK K3N0YXRpYyB2b2lkIGZyZWVfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBt bHg1X2NtZF9tc2cgKm1zZyk7CitzdGF0aWMgdm9pZCBtbHg1X2ZyZWVfY21kX21zZyhzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqZGV2LAorCQkJICAgICAgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKTsK Kwogc3RhdGljIHZvaWQgY21kX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmsp CiB7CiAJc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQgPSBjb250YWluZXJfb2Yod29yaywg c3RydWN0IG1seDVfY21kX3dvcmtfZW50LCB3b3JrKTsKQEAgLTc3OSwxNiArNzgzLDI3IEBAIHN0 YXRpYyB2b2lkIGNtZF93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXN0 cnVjdCBtbHg1X2NtZF9sYXlvdXQgKmxheTsKIAlzdHJ1Y3Qgc2VtYXBob3JlICpzZW07CiAJdW5z aWduZWQgbG9uZyBmbGFnczsKKwlpbnQgYWxsb2NfcmV0OwogCiAJc2VtID0gZW50LT5wYWdlX3F1 ZXVlID8gJmNtZC0+cGFnZXNfc2VtIDogJmNtZC0+c2VtOwogCWRvd24oc2VtKTsKIAlpZiAoIWVu dC0+cGFnZV9xdWV1ZSkgewotCQllbnQtPmlkeCA9IGFsbG9jX2VudChjbWQpOwotCQlpZiAoZW50 LT5pZHggPCAwKSB7CisJCWFsbG9jX3JldCA9IGFsbG9jX2VudChjbWQpOworCQlpZiAoYWxsb2Nf cmV0IDwgMCkgeworCQkJaWYgKGVudC0+Y2FsbGJhY2spIHsKKwkJCQllbnQtPmNhbGxiYWNrKC1F QUdBSU4sIGVudC0+Y29udGV4dCk7CisJCQkJbWx4NV9mcmVlX2NtZF9tc2coZGV2LCBlbnQtPm91 dCk7CisJCQkJZnJlZV9tc2coZGV2LCBlbnQtPmluKTsKKwkJCQlmcmVlX2NtZChlbnQpOworCQkJ fSBlbHNlIHsKKwkJCQllbnQtPnJldCA9IC1FQUdBSU47CisJCQkJY29tcGxldGUoJmVudC0+ZG9u ZSk7CisJCQl9CiAJCQltbHg1X2NvcmVfZXJyKGRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSBjb21t YW5kIGVudHJ5XG4iKTsKIAkJCXVwKHNlbSk7CiAJCQlyZXR1cm47CiAJCX0KKwkJZW50LT5pZHgg PSBhbGxvY19yZXQ7CiAJfSBlbHNlIHsKIAkJZW50LT5pZHggPSBjbWQtPm1heF9yZWdfY21kczsK IAkJc3Bpbl9sb2NrX2lycXNhdmUoJmNtZC0+YWxsb2NfbG9jaywgZmxhZ3MpOwotLSAKMi4xMy40 CgoKRnJvbSA1YzEyMzIwMzA5YWFhZTA4YTIwMDIwNDU1NWRmYmQ4YjIwNGM3MzRlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJbGFuIFRheWFyaSA8aWxhbnRAbWVsbGFub3guY29tPgpE YXRlOiBXZWQsIDUgSnVsIDIwMTcgMTA6MTc6MDQgKzAzMDAKU3ViamVjdDogW1BBVENIIDI0LzI4 XSBuZXQvbWx4NWU6IEZpeCBvdXRlcl9oZWFkZXJfemVybygpIGNoZWNrIHNpemUKClsgVXBzdHJl YW0gY29tbWl0IDAyNDJmNGEwYmIwMzkwNjAxMGJiZjgwNDk1NTEyYmUwMDQ5NGEwZWYgXQoKb3V0 ZXJfaGVhZGVyX3plcm8oKSByb3V0aW5lIGNoZWNrcyBpZiB0aGUgb3V0ZXJfaGVhZGVycyBtYXRj aCBvZiBhCmZsb3ctdGFibGUgZW50cnkgYXJlIGFsbCB6ZXJvLgoKVGhpcyBmdW5jdGlvbiB1c2Vz IHRoZSBzaXplIG9mIHdob2xlIGZ0ZV9tYXRjaF9wYXJhbSwgaW5zdGVhZCBvZiBqdXN0CnRoZSBv dXRlcl9oZWFkZXJzIG1lbWJlciwgY2F1c2luZyBmYWlsdXJlIHRvIGRldGVjdCBhbGwtemVyb3Mg aWYKYW55IG90aGVyIG1lbWJlcnMgb2YgdGhlIGZ0ZV9tYXRjaF9wYXJhbSBhcmUgbm9uLXplcm8u CgpVc2UgdGhlIGNvcnJlY3Qgc2l6ZSBmb3IgemVybyBjaGVjay4KCkZpeGVzOiA2ZGM2MDcxY2Zj ZGUgKCJuZXQvbWx4NWU6IEFkZCBldGh0b29sIGZsb3cgc3RlZXJpbmcgc3VwcG9ydCIpClNpZ25l ZC1vZmYtYnk6IElsYW4gVGF5YXJpIDxpbGFudEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6 IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9mc19ldGh0b29sLmMgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZnNfZXRodG9vbC5jIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2ZzX2V0aHRvb2wuYwppbmRl eCBlMDM0ZGJjNDkxM2QuLmNmMDcwZmMwZmI2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2ZzX2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZnNfZXRodG9vbC5jCkBAIC0yNzYsNyAr Mjc2LDcgQEAgc3RhdGljIHZvaWQgYWRkX3J1bGVfdG9fbGlzdChzdHJ1Y3QgbWx4NWVfcHJpdiAq cHJpdiwKIAogc3RhdGljIGJvb2wgb3V0ZXJfaGVhZGVyX3plcm8odTMyICptYXRjaF9jcml0ZXJp YSkKIHsKLQlpbnQgc2l6ZSA9IE1MWDVfU1RfU1pfQllURVMoZnRlX21hdGNoX3BhcmFtKTsKKwlp bnQgc2l6ZSA9IE1MWDVfRkxEX1NaX0JZVEVTKGZ0ZV9tYXRjaF9wYXJhbSwgb3V0ZXJfaGVhZGVy cyk7CiAJY2hhciAqb3V0ZXJfaGVhZGVyc19jID0gTUxYNV9BRERSX09GKGZ0ZV9tYXRjaF9wYXJh bSwgbWF0Y2hfY3JpdGVyaWEsCiAJCQkJCSAgICAgb3V0ZXJfaGVhZGVycyk7CiAKLS0gCjIuMTMu NAoKCkZyb20gOTkzNDk1MTA5N2E3M2M0NWE1YWYzNDZmOGQ2ZTYxM2FmZDczZWU5MSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXVnZW5pYSBFbWFudGF5ZXYgPGV1Z2VuaWFAbWVsbGFu b3guY29tPgpEYXRlOiBXZWQsIDEyIEp1bCAyMDE3IDE3OjI3OjE4ICswMzAwClN1YmplY3Q6IFtQ QVRDSCAyNS8yOF0gbmV0L21seDVlOiBGaXggd3JvbmcgZGVsYXkgY2FsY3VsYXRpb24gZm9yIG92 ZXJmbG93CiBjaGVjayBzY2hlZHVsaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBkNDM5Yzg0NTA5YTUx MGU4NjRmZGM2MTY2Yzc2MDQ4MmNkMDNmYzU3IF0KClRoZSBvdmVyZmxvd19wZXJpb2QgaXMgY2Fs Y3VsYXRlZCBpbiBzZWNvbmRzLiBJbiBvcmRlciB0byB1c2UgaXQKZm9yIGRlbGF5ZWQgd29yayBz Y2hlZHVsaW5nIHRyYW5zbGF0aW9uIHRvIGppZmZpZXMgaXMgbmVlZGVkLgoKRml4ZXM6IGVmOTgx NGRlYWZkMCAoJ25ldC9tbHg1ZTogQWRkIEhXIHRpbWVzdGFtcGluZyAoVFMpIHN1cHBvcnQnKQpT aWduZWQtb2ZmLWJ5OiBFdWdlbmlhIEVtYW50YXlldiA8ZXVnZW5pYUBtZWxsYW5veC5jb20+ClNp Z25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9jbG9jay5jIHwgMyArKy0K IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY2xvY2suYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9jbG9jay5jCmluZGV4 IDEzZGMzODg2NjdiNi4uZmRkY2ZmMDE1NTIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY2xvY2suYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY2xvY2suYwpAQCAtNjcsNyArNjcsOCBAQCBzdGF0 aWMgdm9pZCBtbHg1ZV90aW1lc3RhbXBfb3ZlcmZsb3coc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr KQogCXdyaXRlX2xvY2tfaXJxc2F2ZSgmdHN0YW1wLT5sb2NrLCBmbGFncyk7CiAJdGltZWNvdW50 ZXJfcmVhZCgmdHN0YW1wLT5jbG9jayk7CiAJd3JpdGVfdW5sb2NrX2lycXJlc3RvcmUoJnRzdGFt cC0+bG9jaywgZmxhZ3MpOwotCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmdHN0YW1wLT5vdmVyZmxv d193b3JrLCB0c3RhbXAtPm92ZXJmbG93X3BlcmlvZCk7CisJc2NoZWR1bGVfZGVsYXllZF93b3Jr KCZ0c3RhbXAtPm92ZXJmbG93X3dvcmssCisJCQkgICAgICBtc2Vjc190b19qaWZmaWVzKHRzdGFt cC0+b3ZlcmZsb3dfcGVyaW9kICogMTAwMCkpOwogfQogCiBpbnQgbWx4NWVfaHdzdGFtcF9zZXQo c3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGlmcmVxICppZnIpCi0tIAoyLjEzLjQKCgpG cm9tIDg4MTczYTljMDdmMGE0MjM5NGZmMjhlN2RiMDM3YTcyNjAxMDYzNTYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEV1Z2VuaWEgRW1hbnRheWV2IDxldWdlbmlhQG1lbGxhbm94LmNv bT4KRGF0ZTogV2VkLCAxMiBKdWwgMjAxNyAxNzo0NDowNyArMDMwMApTdWJqZWN0OiBbUEFUQ0gg MjYvMjhdIG5ldC9tbHg1ZTogU2NoZWR1bGUgb3ZlcmZsb3cgY2hlY2sgd29yayB0byBtbHg1ZQog d29ya3F1ZXVlCgpbIFVwc3RyZWFtIGNvbW1pdCBmMDhjMzllZDBiZmI1MDNjN2IzZTAxM2NkNDBk MDM2Y2U2YTA5NDFhIF0KClRoaXMgaXMgZG9uZSBpbiBvcmRlciB0byBlbnN1cmUgdGhhdCB3b3Jr IHdpbGwgbm90IHJ1biBhZnRlciB0aGUgY2xlYW51cC4KCkZpeGVzOiBlZjk4MTRkZWFmZDAgKCdu ZXQvbWx4NWU6IEFkZCBIVyB0aW1lc3RhbXBpbmcgKFRTKSBzdXBwb3J0JykKU2lnbmVkLW9mZi1i eTogRXVnZW5pYSBFbWFudGF5ZXYgPGV1Z2VuaWFAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5 OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY2xvY2suYyB8IDcgKysrKy0tLQogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY2xvY2suYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9jbG9jay5jCmluZGV4IGZkZGNm ZjAxNTUyMi4uMTYxMmVjMGQ5MTAzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW5fY2xvY2suYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW5fY2xvY2suYwpAQCAtNjIsMTMgKzYyLDE0IEBAIHN0YXRpYyB2 b2lkIG1seDVlX3RpbWVzdGFtcF9vdmVyZmxvdyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJ c3RydWN0IGRlbGF5ZWRfd29yayAqZHdvcmsgPSB0b19kZWxheWVkX3dvcmsod29yayk7CiAJc3Ry dWN0IG1seDVlX3RzdGFtcCAqdHN0YW1wID0gY29udGFpbmVyX29mKGR3b3JrLCBzdHJ1Y3QgbWx4 NWVfdHN0YW1wLAogCQkJCQkJICAgb3ZlcmZsb3dfd29yayk7CisJc3RydWN0IG1seDVlX3ByaXYg KnByaXYgPSBjb250YWluZXJfb2YodHN0YW1wLCBzdHJ1Y3QgbWx4NWVfcHJpdiwgdHN0YW1wKTsK IAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJd3JpdGVfbG9ja19pcnFzYXZlKCZ0c3RhbXAtPmxv Y2ssIGZsYWdzKTsKIAl0aW1lY291bnRlcl9yZWFkKCZ0c3RhbXAtPmNsb2NrKTsKIAl3cml0ZV91 bmxvY2tfaXJxcmVzdG9yZSgmdHN0YW1wLT5sb2NrLCBmbGFncyk7Ci0Jc2NoZWR1bGVfZGVsYXll ZF93b3JrKCZ0c3RhbXAtPm92ZXJmbG93X3dvcmssCi0JCQkgICAgICBtc2Vjc190b19qaWZmaWVz KHRzdGFtcC0+b3ZlcmZsb3dfcGVyaW9kICogMTAwMCkpOworCXF1ZXVlX2RlbGF5ZWRfd29yayhw cml2LT53cSwgJnRzdGFtcC0+b3ZlcmZsb3dfd29yaywKKwkJCSAgIG1zZWNzX3RvX2ppZmZpZXMo dHN0YW1wLT5vdmVyZmxvd19wZXJpb2QgKiAxMDAwKSk7CiB9CiAKIGludCBtbHg1ZV9od3N0YW1w X3NldChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgaWZyZXEgKmlmcikKQEAgLTI2NCw3 ICsyNjUsNyBAQCB2b2lkIG1seDVlX3RpbWVzdGFtcF9pbml0KHN0cnVjdCBtbHg1ZV9wcml2ICpw cml2KQogCiAJSU5JVF9ERUxBWUVEX1dPUksoJnRzdGFtcC0+b3ZlcmZsb3dfd29yaywgbWx4NWVf dGltZXN0YW1wX292ZXJmbG93KTsKIAlpZiAodHN0YW1wLT5vdmVyZmxvd19wZXJpb2QpCi0JCXNj aGVkdWxlX2RlbGF5ZWRfd29yaygmdHN0YW1wLT5vdmVyZmxvd193b3JrLCAwKTsKKwkJcXVldWVf ZGVsYXllZF93b3JrKHByaXYtPndxLCAmdHN0YW1wLT5vdmVyZmxvd193b3JrLCAwKTsKIAllbHNl CiAJCW1seDVfY29yZV93YXJuKHByaXYtPm1kZXYsICJpbnZhbGlkIG92ZXJmbG93IHBlcmlvZCwg b3ZlcmZsb3dfd29yayBpcyBub3Qgc2NoZWR1bGVkXG4iKTsKIAotLSAKMi4xMy40CgoKRnJvbSBj MzZkYjFlNWVhNjc0MzIxOWYxMTMzYjUxZTEzMTQ4OTY5Mzc4M2NmIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KRGF0 ZTogRnJpLCAyOCBKdWwgMjAxNyAxMTo1ODozNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjcvMjhd IG5ldDogcGh5OiBDb3JyZWN0bHkgcHJvY2VzcyBQSFlfSEFMVEVEIGluCiBwaHlfc3RvcF9tYWNo aW5lKCkKClsgVXBzdHJlYW0gY29tbWl0IDdhZDgxM2YyMDg1MzNjZWJmY2MzMmQzZDc0NzRkYzE2 NzdkMWIwOWEgXQoKTWFyYyByZXBvcnRlZCB0aGF0IGhlIHdhcyBub3QgZ2V0dGluZyB0aGUgUEhZ IGxpYnJhcnkgYWRqdXN0X2xpbmsoKQpjYWxsYmFjayBmdW5jdGlvbiB0byBydW4gd2hlbiBjYWxs aW5nIHBoeV9zdG9wKCkgKyBwaHlfZGlzY29ubmVjdCgpCndoaWNoIGRvZXMgbm90IGluZGVlZCBo YXBwZW4gYmVjYXVzZSB3ZSBzZXQgdGhlIHN0YXRlIG1hY2hpbmUgdG8KUEhZX0hBTFRFRCBidXQg d2UgZG9uJ3QgZ2V0IHRvIHJ1biBpdCB0byBwcm9jZXNzIHRoaXMgc3RhdGUgcGFzdCB0aGF0CnBv aW50LgoKRml4IHRoaXMgd2l0aCBhIHN5bmNocm9ub3VzIGNhbGwgdG8gcGh5X3N0YXRlX21hY2hp bmUoKSBpbiBvcmRlciB0byBoYXZlCnRoZSBzdGF0ZSBtYWNoaW5lIGFjdHVhbGx5IGFjdCBvbiBQ SFlfSEFMVEVELCBzZXQgdGhlIFBIWSBkZXZpY2UncyBsaW5rCmRvd24sIHR1cm4gdGhlIG5ldHdv cmsgZGV2aWNlJ3MgY2FycmllciBvZmYgYW5kIGZpbmFsbHkgY2FsbCB0aGUKYWRqdXN0X2xpbmso KSBmdW5jdGlvbi4KClJlcG9ydGVkLWJ5OiBNYXJjIEdvbnphbGV6IDxtYXJjX2dvbnphbGV6QHNp Z21hZGVzaWducy5jb20+CkZpeGVzOiBhMzkwZDFmMzc5Y2YgKCJwaHlsaWI6IGNvbnZlcnQgc3Rh dGVfcXVldWUgd29yayB0byBkZWxheWVkX3dvcmsiKQpTaWduZWQtb2ZmLWJ5OiBGbG9yaWFuIEZh aW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWFyYyBHb256YWxl eiA8bWFyY19nb256YWxlekBzaWdtYWRlc2lnbnMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L3BoeS5j IHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9waHkvcGh5LmMgYi9kcml2ZXJzL25ldC9waHkvcGh5LmMKaW5kZXggZWRkMzBl YmJmMjc1Li43MTAzZGMxZDIwZjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHkuYwor KysgYi9kcml2ZXJzL25ldC9waHkvcGh5LmMKQEAgLTY3NCw2ICs2NzQsOSBAQCB2b2lkIHBoeV9z dG9wX21hY2hpbmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlpZiAocGh5ZGV2LT5zdGF0 ZSA+IFBIWV9VUCAmJiBwaHlkZXYtPnN0YXRlICE9IFBIWV9IQUxURUQpCiAJCXBoeWRldi0+c3Rh dGUgPSBQSFlfVVA7CiAJbXV0ZXhfdW5sb2NrKCZwaHlkZXYtPmxvY2spOworCisJLyogTm93IHdl IGNhbiBydW4gdGhlIHN0YXRlIG1hY2hpbmUgc3luY2hyb25vdXNseSAqLworCXBoeV9zdGF0ZV9t YWNoaW5lKCZwaHlkZXYtPnN0YXRlX3F1ZXVlLndvcmspOwogfQogCiAvKioKLS0gCjIuMTMuNAoK CkZyb20gMTRmYjAzYzJiZjk1NDExYzVjYTNlNzhmMjBjMTcwNzE5YjYwNmU4NCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KRGF0ZTog V2VkLCAyMSBKdW4gMjAxNyAxMDoyMToyMiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjgvMjhdIHhl bi1uZXRiYWNrOiBjb3JyZWN0bHkgc2NoZWR1bGUgcmF0ZS1saW1pdGVkIHF1ZXVlcwoKWyBVcHN0 cmVhbSBjb21taXQgZGZhNTIzYWU5ZjI1NDJiZWU0Y2RkYWVhMzdiM2JlM2UxNTdmNmU2YiBdCgpB ZGQgYSBmbGFnIHRvIGluZGljYXRlIGlmIGEgcXVldWUgaXMgcmF0ZS1saW1pdGVkLiBUZXN0IHRo ZSBmbGFnIGluCk5BUEkgcG9sbCBoYW5kbGVyIGFuZCBhdm9pZCByZXNjaGVkdWxpbmcgdGhlIHF1 ZXVlIGlmIHRydWUsIG90aGVyd2lzZQp3ZSByaXNrIGxvY2tpbmcgdXAgdGhlIGhvc3QuIFRoZSBy ZXNjaGVkdWxpbmcgd2lsbCBiZSBkb25lIGluIHRoZQp0aW1lciBjYWxsYmFjayBmdW5jdGlvbi4K ClJlcG9ydGVkLWJ5OiBKZWFuLUxvdWlzIER1cG9uZCA8amVhbi1sb3Vpc0BkdXBvbmQuYmU+ClNp Z25lZC1vZmYtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+ClRlc3RlZC1ieTogSmVh bi1Mb3VpcyBEdXBvbmQgPGplYW4tbG91aXNAZHVwb25kLmJlPgpSZXZpZXdlZC1ieTogUGF1bCBE dXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3hlbi1uZXRiYWNr L2NvbW1vbi5oICAgIHwgMSArCiBkcml2ZXJzL25ldC94ZW4tbmV0YmFjay9pbnRlcmZhY2UuYyB8 IDYgKysrKystCiBkcml2ZXJzL25ldC94ZW4tbmV0YmFjay9uZXRiYWNrLmMgICB8IDYgKysrKyst CiAzIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svY29tbW9uLmggYi9kcml2ZXJzL25ldC94 ZW4tbmV0YmFjay9jb21tb24uaAppbmRleCAzY2UxZjdkYTg2NDcuLmNiNzM2NWJkZjZlMCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svY29tbW9uLmgKKysrIGIvZHJpdmVycy9u ZXQveGVuLW5ldGJhY2svY29tbW9uLmgKQEAgLTE5OSw2ICsxOTksNyBAQCBzdHJ1Y3QgeGVudmlm X3F1ZXVlIHsgLyogUGVyLXF1ZXVlIGRhdGEgZm9yIHhlbnZpZiAqLwogCXVuc2lnbmVkIGxvbmcg ICByZW1haW5pbmdfY3JlZGl0OwogCXN0cnVjdCB0aW1lcl9saXN0IGNyZWRpdF90aW1lb3V0Owog CXU2NCBjcmVkaXRfd2luZG93X3N0YXJ0OworCWJvb2wgcmF0ZV9saW1pdGVkOwogCiAJLyogU3Rh dGlzdGljcyAqLwogCXN0cnVjdCB4ZW52aWZfc3RhdHMgc3RhdHM7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC94ZW4tbmV0YmFjay9pbnRlcmZhY2UuYyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNr L2ludGVyZmFjZS5jCmluZGV4IGIwMDlkNzk2NmI0Ni4uNWJmYWY1NTc4ODEwIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay9pbnRlcmZhY2UuYworKysgYi9kcml2ZXJzL25ldC94 ZW4tbmV0YmFjay9pbnRlcmZhY2UuYwpAQCAtMTA1LDcgKzEwNSwxMSBAQCBzdGF0aWMgaW50IHhl bnZpZl9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKIAogCWlmICh3 b3JrX2RvbmUgPCBidWRnZXQpIHsKIAkJbmFwaV9jb21wbGV0ZShuYXBpKTsKLQkJeGVudmlmX25h cGlfc2NoZWR1bGVfb3JfZW5hYmxlX2V2ZW50cyhxdWV1ZSk7CisJCS8qIElmIHRoZSBxdWV1ZSBp cyByYXRlLWxpbWl0ZWQsIGl0IHNoYWxsIGJlCisJCSAqIHJlc2NoZWR1bGVkIGluIHRoZSB0aW1l ciBjYWxsYmFjay4KKwkJICovCisJCWlmIChsaWtlbHkoIXF1ZXVlLT5yYXRlX2xpbWl0ZWQpKQor CQkJeGVudmlmX25hcGlfc2NoZWR1bGVfb3JfZW5hYmxlX2V2ZW50cyhxdWV1ZSk7CiAJfQogCiAJ cmV0dXJuIHdvcmtfZG9uZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL25l dGJhY2suYyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL25ldGJhY2suYwppbmRleCA0N2I0ODEw OTVkNzcuLmQ5YjViNzNjMzVhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2sv bmV0YmFjay5jCisrKyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL25ldGJhY2suYwpAQCAtMTc5 LDYgKzE3OSw3IEBAIHN0YXRpYyB2b2lkIHR4X2FkZF9jcmVkaXQoc3RydWN0IHhlbnZpZl9xdWV1 ZSAqcXVldWUpCiAJCW1heF9jcmVkaXQgPSBVTE9OR19NQVg7IC8qIHdyYXBwZWQ6IGNsYW1wIHRv IFVMT05HX01BWCAqLwogCiAJcXVldWUtPnJlbWFpbmluZ19jcmVkaXQgPSBtaW4obWF4X2NyZWRp dCwgbWF4X2J1cnN0KTsKKwlxdWV1ZS0+cmF0ZV9saW1pdGVkID0gZmFsc2U7CiB9CiAKIHZvaWQg eGVudmlmX3R4X2NyZWRpdF9jYWxsYmFjayh1bnNpZ25lZCBsb25nIGRhdGEpCkBAIC02ODUsOCAr Njg2LDEwIEBAIHN0YXRpYyBib29sIHR4X2NyZWRpdF9leGNlZWRlZChzdHJ1Y3QgeGVudmlmX3F1 ZXVlICpxdWV1ZSwgdW5zaWduZWQgc2l6ZSkKIAkJbXNlY3NfdG9famlmZmllcyhxdWV1ZS0+Y3Jl ZGl0X3VzZWMgLyAxMDAwKTsKIAogCS8qIFRpbWVyIGNvdWxkIGFscmVhZHkgYmUgcGVuZGluZyBp biByYXJlIGNhc2VzLiAqLwotCWlmICh0aW1lcl9wZW5kaW5nKCZxdWV1ZS0+Y3JlZGl0X3RpbWVv dXQpKQorCWlmICh0aW1lcl9wZW5kaW5nKCZxdWV1ZS0+Y3JlZGl0X3RpbWVvdXQpKSB7CisJCXF1 ZXVlLT5yYXRlX2xpbWl0ZWQgPSB0cnVlOwogCQlyZXR1cm4gdHJ1ZTsKKwl9CiAKIAkvKiBQYXNz ZWQgdGhlIHBvaW50IHdoZXJlIHdlIGNhbiByZXBsZW5pc2ggY3JlZGl0PyAqLwogCWlmICh0aW1l X2FmdGVyX2VxNjQobm93LCBuZXh0X2NyZWRpdCkpIHsKQEAgLTcwMSw2ICs3MDQsNyBAQCBzdGF0 aWMgYm9vbCB0eF9jcmVkaXRfZXhjZWVkZWQoc3RydWN0IHhlbnZpZl9xdWV1ZSAqcXVldWUsIHVu c2lnbmVkIHNpemUpCiAJCW1vZF90aW1lcigmcXVldWUtPmNyZWRpdF90aW1lb3V0LAogCQkJICBu ZXh0X2NyZWRpdCk7CiAJCXF1ZXVlLT5jcmVkaXRfd2luZG93X3N0YXJ0ID0gbmV4dF9jcmVkaXQ7 CisJCXF1ZXVlLT5yYXRlX2xpbWl0ZWQgPSB0cnVlOwogCiAJCXJldHVybiB0cnVlOwogCX0KLS0g CjIuMTMuNAoK ----Next_Part(Tue_Aug__8_16_21_26_2017_796)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_412.mbox" RnJvbSAzMzFlZDBkZDYwMTU3NWQ0ZjkzMjY3YjdmNTQ0YTExMzZiNjM3MTkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6 IEZyaSwgMTQgSnVsIDIwMTcgMjI6MDc6MzMgKzA4MDAKU3ViamVjdDogW1BBVENIIDAxLzQ1XSBz Y3RwOiBmaXggYW4gYXJyYXkgb3ZlcmZsb3cgd2hlbiBhbGwgZXh0IGNodW5rcyBhcmUgc2V0Cgpb IFVwc3RyZWFtIGNvbW1pdCAxMGIzYmY1NDQwNmJiN2Y0ZTc4ZGE5YmIyYTQ4NWM1Yzk4NjY3OGFk IF0KCk1hcmNlbG8gbm90aWNlZCBhbiBhcnJheSBvdmVyZmxvdyBjYXVzZWQgYnkgY29tbWl0IGMy ODQ0NWMzY2IwNwooInNjdHA6IGFkZCByZWNvbmZfZW5hYmxlIGluIGFzb2MgZXAgYW5kIG5ldG5z IiksIGluIHdoaWNoIHNjdHAKd291bGQgYWRkIFNDVFBfQ0lEX1JFQ09ORiBpbnRvIGV4dGVuc2lv bnMgd2hlbiByZWNvbmZfZW5hYmxlIGlzCnNldCBpbiBzY3RwX21ha2VfaW5pdCBhbmQgc2N0cF9t YWtlX2luaXRfYWNrLgoKVGhlbiBub3cgd2hlbiBhbGwgZXh0IGNodW5rcyBhcmUgc2V0LCA0IGV4 dCBjaHVuayBpZHMgY2FuIGJlIHB1dAppbnRvIGV4dGVuc2lvbnMgYXJyYXkgd2hpbGUgZXh0ZW5z aW9ucyBhcnJheSBzaXplIGlzIDMuIEl0IHdvdWxkCmNhdXNlIGEga2VybmVsIHBhbmljIGJlY2F1 c2Ugb2YgdGhpcyBvdmVyZmxvdy4KClRoaXMgcGF0Y2ggaXMgdG8gZml4IGl0IGJ5IGRlZmluaW5n IGV4dGVuc2lvbnMgYXJyYXkgc2l6ZSBpcyA0IGluCmJvdGggc2N0cF9tYWtlX2luaXQgYW5kIHNj dHBfbWFrZV9pbml0X2Fjay4KCkZpeGVzOiBjMjg0NDVjM2NiMDcgKCJzY3RwOiBhZGQgcmVjb25m X2VuYWJsZSBpbiBhc29jIGVwIGFuZCBuZXRucyIpClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxs dWNpZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY3RwL3NtX21ha2VfY2h1bmsuYyB8IDQgKystLQog MSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9uZXQvc2N0cC9zbV9tYWtlX2NodW5rLmMgYi9uZXQvc2N0cC9zbV9tYWtlX2NodW5rLmMK aW5kZXggOTJlMzMyZTE3MzkxLi45NjFhNmY4MWFlNjQgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3Nt X21ha2VfY2h1bmsuYworKysgYi9uZXQvc2N0cC9zbV9tYWtlX2NodW5rLmMKQEAgLTIyOCw3ICsy MjgsNyBAQCBzdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9tYWtlX2luaXQoY29uc3Qgc3RydWN0IHNj dHBfYXNzb2NpYXRpb24gKmFzb2MsCiAJc2N0cF9hZGFwdGF0aW9uX2luZF9wYXJhbV90IGFpcGFy YW07CiAJc2N0cF9zdXBwb3J0ZWRfZXh0X3BhcmFtX3QgZXh0X3BhcmFtOwogCWludCBudW1fZXh0 ID0gMDsKLQlfX3U4IGV4dGVuc2lvbnNbM107CisJX191OCBleHRlbnNpb25zWzRdOwogCXNjdHBf cGFyYW1oZHJfdCAqYXV0aF9jaHVua3MgPSBOVUxMLAogCQkJKmF1dGhfaG1hY3MgPSBOVUxMOwog CkBAIC0zOTYsNyArMzk2LDcgQEAgc3RydWN0IHNjdHBfY2h1bmsgKnNjdHBfbWFrZV9pbml0X2Fj ayhjb25zdCBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywKIAlzY3RwX2FkYXB0YXRpb25f aW5kX3BhcmFtX3QgYWlwYXJhbTsKIAlzY3RwX3N1cHBvcnRlZF9leHRfcGFyYW1fdCBleHRfcGFy YW07CiAJaW50IG51bV9leHQgPSAwOwotCV9fdTggZXh0ZW5zaW9uc1szXTsKKwlfX3U4IGV4dGVu c2lvbnNbNF07CiAJc2N0cF9wYXJhbWhkcl90ICphdXRoX2NodW5rcyA9IE5VTEwsCiAJCQkqYXV0 aF9obWFjcyA9IE5VTEwsCiAJCQkqYXV0aF9yYW5kb20gPSBOVUxMOwotLSAKMi4xMy40CgoKRnJv bSBjMmFiNDkyMTY2ODkyOTQ0Y2RmMGI5MzNiYjVhMzExMjYyYWNkNGYyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KRGF0 ZTogRnJpLCAxNCBKdWwgMjAxNyAxNzo0OToyMSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDIvNDVd IHRjcF9iYnI6IGN1dCBwYWNpbmcgcmF0ZSBvbmx5IGlmIGZpbGxlZCBwaXBlCgpbIFVwc3RyZWFt IGNvbW1pdCA0YWVhMjg3ZTkwZGQ2MWE0ODI2OGZmMjk5NGI1NmY5Nzk5NDQxYjYyIF0KCkluIGJi cl9zZXRfcGFjaW5nX3JhdGUoKSwgd2hpY2ggZGVjaWRlcyB3aGV0aGVyIHRvIGN1dCB0aGUgcGFj aW5nCnJhdGUsIHRoZXJlIHdhcyBzb21lIGNvZGUgdGhhdCBjb25zaWRlcmVkIGV4aXRpbmcgU1RB UlRVUCB0byBiZQplcXVpdmFsZW50IHRvIHRoZSBub3Rpb24gb2YgZmlsbGluZyB0aGUgcGlwZSAo aS5lLiwKYmJyX2Z1bGxfYndfcmVhY2hlZCgpKS4gU3BlY2lmaWNhbGx5LCBhcyB0aGUgY29kZSB3 YXMgc3RydWN0dXJlZCwKZXhpdGluZyBTVEFSVFVQIGFuZCBnb2luZyBpbnRvIFBST0JFX1JUVCBj b3VsZCBjYXVzZSB1cyB0byBjdXQgdGhlCnBhY2luZyByYXRlIGRvd24gdG8gc29tZXRoaW5nIHNp bGx5IGFuZCBsb3csIGJhc2VkIG9uIHdoYXRldmVyCmJhbmR3aWR0aCBzYW1wbGVzIHdlJ3ZlIGhh ZCBzbyBmYXIsIHdoZW4gaXQncyBwb3NzaWJsZSB0aGF0IGFsbCBvZgp0aGVtIGhhdmUgYmVlbiBz bWFsbCBhcHAtbGltaXRlZCBiYW5kd2lkdGggc2FtcGxlcyB0aGF0IGFyZSBub3QKcmVwcmVzZW50 YXRpdmUgb2YgdGhlIGJhbmR3aWR0aCBhdmFpbGFibGUgaW4gdGhlIHBhdGguIChUaGUgY29kZSB3 YXMKY29ycmVjdCBhdCB0aGUgdGltZSBpdCB3YXMgd3JpdHRlbiwgYnV0IHRoZSBzdGF0ZSBtYWNo aW5lIGNoYW5nZWQKd2l0aG91dCB0aGlzIHNwb3QgYmVpbmcgYWRqdXN0ZWQgY29ycmVzcG9uZGlu Z2x5LikKCkZpeGVzOiAwZjg3ODJlYTE0OTcgKCJ0Y3BfYmJyOiBhZGQgQkJSIGNvbmdlc3Rpb24g Y29udHJvbCIpClNpZ25lZC1vZmYtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogU29oZWlsIEhhc3NhcyBZZWdhbmVoIDxzb2hlaWxAZ29vZ2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9pcHY0L3RjcF9iYnIuYyB8IDMgKy0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2Jici5jIGIvbmV0L2lw djQvdGNwX2Jici5jCmluZGV4IGI4OWJjZTRjNzIxZS4uYjE1MmUxZDNiNzU0IDEwMDY0NAotLS0g YS9uZXQvaXB2NC90Y3BfYmJyLmMKKysrIGIvbmV0L2lwdjQvdGNwX2Jici5jCkBAIC0yMjEsMTIg KzIyMSwxMSBAQCBzdGF0aWMgdTY0IGJicl9yYXRlX2J5dGVzX3Blcl9zZWMoc3RydWN0IHNvY2sg KnNrLCB1NjQgcmF0ZSwgaW50IGdhaW4pCiAgKi8KIHN0YXRpYyB2b2lkIGJicl9zZXRfcGFjaW5n X3JhdGUoc3RydWN0IHNvY2sgKnNrLCB1MzIgYncsIGludCBnYWluKQogewotCXN0cnVjdCBiYnIg KmJiciA9IGluZXRfY3NrX2NhKHNrKTsKIAl1NjQgcmF0ZSA9IGJ3OwogCiAJcmF0ZSA9IGJicl9y YXRlX2J5dGVzX3Blcl9zZWMoc2ssIHJhdGUsIGdhaW4pOwogCXJhdGUgPSBtaW5fdCh1NjQsIHJh dGUsIHNrLT5za19tYXhfcGFjaW5nX3JhdGUpOwotCWlmIChiYnItPm1vZGUgIT0gQkJSX1NUQVJU VVAgfHwgcmF0ZSA+IHNrLT5za19wYWNpbmdfcmF0ZSkKKwlpZiAoYmJyX2Z1bGxfYndfcmVhY2hl ZChzaykgfHwgcmF0ZSA+IHNrLT5za19wYWNpbmdfcmF0ZSkKIAkJc2stPnNrX3BhY2luZ19yYXRl ID0gcmF0ZTsKIH0KIAotLSAKMi4xMy40CgoKRnJvbSBiMWZkZGQ5ODRjYzM0MDk1OTIzYTY4N2E2 MDNlMGE4NmE4MmZiZDEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOZWFsIENhcmR3 ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAxNCBKdWwgMjAxNyAxNzo0OToy MiAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDMvNDVdIHRjcF9iYnI6IGludHJvZHVjZSBiYnJfYndf dG9fcGFjaW5nX3JhdGUoKSBoZWxwZXIKClsgVXBzdHJlYW0gY29tbWl0IGYxOWZkNjJkYWZhZjFl ZDZjZjYxNWRiYTY1NWI4MmZhOWRmNTkwNzQgXQoKSW50cm9kdWNlIGEgaGVscGVyIHRvIGNvbnZl cnQgYSBCQlIgYmFuZHdpZHRoIGFuZCBnYWluIGZhY3RvciB0byBhCnBhY2luZyByYXRlIGluIGJ5 dGVzIHBlciBzZWNvbmQuIFRoaXMgaXMgYSBwdXJlIHJlZmFjdG9yLCBidXQgaXMKbmVlZGVkIGZv ciB0d28gZm9sbG93aW5nIGZpeGVzLgoKRml4ZXM6IDBmODc4MmVhMTQ5NyAoInRjcF9iYnI6IGFk ZCBCQlIgY29uZ2VzdGlvbiBjb250cm9sIikKU2lnbmVkLW9mZi1ieTogTmVhbCBDYXJkd2VsbCA8 bmNhcmR3ZWxsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVu Z0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVp bEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX2Jici5jIHwgMTQgKysrKysrKysrKystLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC9pcHY0L3RjcF9iYnIuYyBiL25ldC9pcHY0L3RjcF9iYnIuYwppbmRleCBiMTUyZTFk M2I3NTQuLjE0ZTBlYmE3YWE3YSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2Jici5jCisrKyBi L25ldC9pcHY0L3RjcF9iYnIuYwpAQCAtMjEyLDYgKzIxMiwxNiBAQCBzdGF0aWMgdTY0IGJicl9y YXRlX2J5dGVzX3Blcl9zZWMoc3RydWN0IHNvY2sgKnNrLCB1NjQgcmF0ZSwgaW50IGdhaW4pCiAJ cmV0dXJuIHJhdGUgPj4gQldfU0NBTEU7CiB9CiAKKy8qIENvbnZlcnQgYSBCQlIgYncgYW5kIGdh aW4gZmFjdG9yIHRvIGEgcGFjaW5nIHJhdGUgaW4gYnl0ZXMgcGVyIHNlY29uZC4gKi8KK3N0YXRp YyB1MzIgYmJyX2J3X3RvX3BhY2luZ19yYXRlKHN0cnVjdCBzb2NrICpzaywgdTMyIGJ3LCBpbnQg Z2FpbikKK3sKKwl1NjQgcmF0ZSA9IGJ3OworCisJcmF0ZSA9IGJicl9yYXRlX2J5dGVzX3Blcl9z ZWMoc2ssIHJhdGUsIGdhaW4pOworCXJhdGUgPSBtaW5fdCh1NjQsIHJhdGUsIHNrLT5za19tYXhf cGFjaW5nX3JhdGUpOworCXJldHVybiByYXRlOworfQorCiAvKiBQYWNlIHVzaW5nIGN1cnJlbnQg YncgZXN0aW1hdGUgYW5kIGEgZ2FpbiBmYWN0b3IuIEluIG9yZGVyIHRvIGhlbHAgZHJpdmUgdGhl CiAgKiBuZXR3b3JrIHRvd2FyZCBsb3dlciBxdWV1ZXMgd2hpbGUgbWFpbnRhaW5pbmcgaGlnaCB1 dGlsaXphdGlvbiBhbmQgbG93CiAgKiBsYXRlbmN5LCB0aGUgYXZlcmFnZSBwYWNpbmcgcmF0ZSBh aW1zIHRvIGJlIHNsaWdodGx5ICh+MSUpIGxvd2VyIHRoYW4gdGhlCkBAIC0yMjEsMTAgKzIzMSw4 IEBAIHN0YXRpYyB1NjQgYmJyX3JhdGVfYnl0ZXNfcGVyX3NlYyhzdHJ1Y3Qgc29jayAqc2ssIHU2 NCByYXRlLCBpbnQgZ2FpbikKICAqLwogc3RhdGljIHZvaWQgYmJyX3NldF9wYWNpbmdfcmF0ZShz dHJ1Y3Qgc29jayAqc2ssIHUzMiBidywgaW50IGdhaW4pCiB7Ci0JdTY0IHJhdGUgPSBidzsKKwl1 MzIgcmF0ZSA9IGJicl9id190b19wYWNpbmdfcmF0ZShzaywgYncsIGdhaW4pOwogCi0JcmF0ZSA9 IGJicl9yYXRlX2J5dGVzX3Blcl9zZWMoc2ssIHJhdGUsIGdhaW4pOwotCXJhdGUgPSBtaW5fdCh1 NjQsIHJhdGUsIHNrLT5za19tYXhfcGFjaW5nX3JhdGUpOwogCWlmIChiYnJfZnVsbF9id19yZWFj aGVkKHNrKSB8fCByYXRlID4gc2stPnNrX3BhY2luZ19yYXRlKQogCQlzay0+c2tfcGFjaW5nX3Jh dGUgPSByYXRlOwogfQotLSAKMi4xMy40CgoKRnJvbSAwZTZkZmY1YTU3ZDI3MGIzYjZlNDE0MDgz MThiMzJhYTk3YmRiMDJhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOZWFsIENhcmR3 ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAxNCBKdWwgMjAxNyAxNzo0OToy MyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDQvNDVdIHRjcF9iYnI6IGludHJvZHVjZSBiYnJfaW5p dF9wYWNpbmdfcmF0ZV9mcm9tX3J0dCgpCiBoZWxwZXIKClsgVXBzdHJlYW0gY29tbWl0IDc5MTM1 Yjg5YjhhZjMwNDQ1NmJkNjc5MTZiODAxMTZkZGYwM2Q3YjYgXQoKSW50cm9kdWNlIGEgaGVscGVy IHRvIGluaXRpYWxpemUgdGhlIEJCUiBwYWNpbmcgcmF0ZSB1bmNvbmRpdGlvbmFsbHksCmJhc2Vk IG9uIHRoZSBjdXJyZW50IGN3bmQgYW5kIFJUVCBlc3RpbWF0ZS4gVGhpcyBpcyBhIHB1cmUgcmVm YWN0b3IsCmJ1dCBpcyBuZWVkZWQgZm9yIHR3byBmb2xsb3dpbmcgZml4ZXMuCgpGaXhlczogMGY4 NzgyZWExNDk3ICgidGNwX2JicjogYWRkIEJCUiBjb25nZXN0aW9uIGNvbnRyb2wiKQpTaWduZWQt b2ZmLWJ5OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1i eTogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFNvaGVp bCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3BfYmJyLmMg fCAyMyArKysrKysrKysrKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlv bnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2Jici5jIGIv bmV0L2lwdjQvdGNwX2Jici5jCmluZGV4IDE0ZTBlYmE3YWE3YS4uZTY5YzhiNDQ1NjhhIDEwMDY0 NAotLS0gYS9uZXQvaXB2NC90Y3BfYmJyLmMKKysrIGIvbmV0L2lwdjQvdGNwX2Jici5jCkBAIC0y MjIsNiArMjIyLDIzIEBAIHN0YXRpYyB1MzIgYmJyX2J3X3RvX3BhY2luZ19yYXRlKHN0cnVjdCBz b2NrICpzaywgdTMyIGJ3LCBpbnQgZ2FpbikKIAlyZXR1cm4gcmF0ZTsKIH0KIAorLyogSW5pdGlh bGl6ZSBwYWNpbmcgcmF0ZSB0bzogaGlnaF9nYWluICogaW5pdF9jd25kIC8gUlRULiAqLworc3Rh dGljIHZvaWQgYmJyX2luaXRfcGFjaW5nX3JhdGVfZnJvbV9ydHQoc3RydWN0IHNvY2sgKnNrKQor eworCXN0cnVjdCB0Y3Bfc29jayAqdHAgPSB0Y3Bfc2soc2spOworCXU2NCBidzsKKwl1MzIgcnR0 X3VzOworCisJaWYgKHRwLT5zcnR0X3VzKSB7CQkvKiBhbnkgUlRUIHNhbXBsZSB5ZXQ/ICovCisJ CXJ0dF91cyA9IG1heCh0cC0+c3J0dF91cyA+PiAzLCAxVSk7CisJfSBlbHNlIHsJCQkgLyogbm8g UlRUIHNhbXBsZSB5ZXQgKi8KKwkJcnR0X3VzID0gVVNFQ19QRVJfTVNFQzsJIC8qIHVzZSBub21p bmFsIGRlZmF1bHQgUlRUICovCisJfQorCWJ3ID0gKHU2NCl0cC0+c25kX2N3bmQgKiBCV19VTklU OworCWRvX2RpdihidywgcnR0X3VzKTsKKwlzay0+c2tfcGFjaW5nX3JhdGUgPSBiYnJfYndfdG9f cGFjaW5nX3JhdGUoc2ssIGJ3LCBiYnJfaGlnaF9nYWluKTsKK30KKwogLyogUGFjZSB1c2luZyBj dXJyZW50IGJ3IGVzdGltYXRlIGFuZCBhIGdhaW4gZmFjdG9yLiBJbiBvcmRlciB0byBoZWxwIGRy aXZlIHRoZQogICogbmV0d29yayB0b3dhcmQgbG93ZXIgcXVldWVzIHdoaWxlIG1haW50YWluaW5n IGhpZ2ggdXRpbGl6YXRpb24gYW5kIGxvdwogICogbGF0ZW5jeSwgdGhlIGF2ZXJhZ2UgcGFjaW5n IHJhdGUgYWltcyB0byBiZSBzbGlnaHRseSAofjElKSBsb3dlciB0aGFuIHRoZQpAQCAtODA2LDcg KzgyMyw2IEBAIHN0YXRpYyB2b2lkIGJicl9pbml0KHN0cnVjdCBzb2NrICpzaykKIHsKIAlzdHJ1 Y3QgdGNwX3NvY2sgKnRwID0gdGNwX3NrKHNrKTsKIAlzdHJ1Y3QgYmJyICpiYnIgPSBpbmV0X2Nz a19jYShzayk7Ci0JdTY0IGJ3OwogCiAJYmJyLT5wcmlvcl9jd25kID0gMDsKIAliYnItPnRzb19z ZWdzX2dvYWwgPSAwOwkgLyogZGVmYXVsdCBzZWdzIHBlciBza2IgdW50aWwgZmlyc3QgQUNLICov CkBAIC04MjIsMTEgKzgzOCw4IEBAIHN0YXRpYyB2b2lkIGJicl9pbml0KHN0cnVjdCBzb2NrICpz aykKIAogCW1pbm1heF9yZXNldCgmYmJyLT5idywgYmJyLT5ydHRfY250LCAwKTsgIC8qIGluaXQg bWF4IGJ3IHRvIDAgKi8KIAotCS8qIEluaXRpYWxpemUgcGFjaW5nIHJhdGUgdG86IGhpZ2hfZ2Fp biAqIGluaXRfY3duZCAvIFJUVC4gKi8KLQlidyA9ICh1NjQpdHAtPnNuZF9jd25kICogQldfVU5J VDsKLQlkb19kaXYoYncsICh0cC0+c3J0dF91cyA+PiAzKSA/IDogVVNFQ19QRVJfTVNFQyk7CiAJ c2stPnNrX3BhY2luZ19yYXRlID0gMDsJCS8qIGZvcmNlIGFuIHVwZGF0ZSBvZiBza19wYWNpbmdf cmF0ZSAqLwotCWJicl9zZXRfcGFjaW5nX3JhdGUoc2ssIGJ3LCBiYnJfaGlnaF9nYWluKTsKKwli YnJfaW5pdF9wYWNpbmdfcmF0ZV9mcm9tX3J0dChzayk7CiAKIAliYnItPnJlc3RvcmVfY3duZCA9 IDA7CiAJYmJyLT5yb3VuZF9zdGFydCA9IDA7Ci0tIAoyLjEzLjQKCgpGcm9tIDU0YWE2NzdmMjYz NmQ0NzVjYWUwNDY2YTc1ZWUzYzVkM2MxMzNmODMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpEYXRlOiBGcmksIDE0IEp1 bCAyMDE3IDE3OjQ5OjI0IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwNS80NV0gdGNwX2JicjogcmVt b3ZlIHNrX3BhY2luZ19yYXRlPTAgdHJhbnNpZW50IGR1cmluZyBpbml0CgpbIFVwc3RyZWFtIGNv bW1pdCAxZDM2NDhlYjVkMWZlOWVkM2QwOTVlZDhmYTE5YWQxMWNhNGM4YmMwIF0KCkZpeCBhIGNv cm5lciBjYXNlIG5vdGljZWQgYnkgRXJpYyBEdW1hemV0LCB3aGVyZSBCQlIncyBzZXR0aW5nCnNr LT5za19wYWNpbmdfcmF0ZSB0byAwIGR1cmluZyBpbml0aWFsaXphdGlvbiBjb3VsZCB0aGVvcmV0 aWNhbGx5CmNhdXNlIHBhY2tldHMgaW4gdGhlIHNlbmRpbmcgaG9zdCB0byBoYW5nIGlmIHRoZXJl IHdlcmUgcGFja2V0cyAiaW4KZmxpZ2h0IiBpbiB0aGUgcGFjaW5nIGluZnJhc3RydWN0dXJlIGF0 IHRoZSB0aW1lIHRoZSBCQlIgY29uZ2VzdGlvbgpjb250cm9sIHN0YXRlIGlzIGluaXRpYWxpemVk LiBUaGlzIGNvdWxkIG9jY3VyIGlmIHRoZSBwYWNpbmcKaW5mcmFzdHJ1Y3R1cmUgaGFwcGVuZWQg dG8gcmFjZSB3aXRoIGJicl9pbml0KCkgaW4gYSB3YXkgc3VjaCB0aGF0IHRoZQpwYWNlciByZWFk IHRoZSAwIHJhdGhlciB0aGFuIHRoZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgbm9uLXplcm8gcGFj aW5nCnJhdGUuCgpGaXhlczogMGY4NzgyZWExNDk3ICgidGNwX2JicjogYWRkIEJCUiBjb25nZXN0 aW9uIGNvbnRyb2wiKQpSZXBvcnRlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+ClNpZ25lZC1v ZmYtYnk6IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2 NC90Y3BfYmJyLmMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L2lwdjQvdGNwX2Jici5jIGIvbmV0L2lwdjQvdGNwX2Jici5jCmluZGV4IGU2OWM4 YjQ0NTY4YS4uMjBkODM0ZmQ1NTdkIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfYmJyLmMKKysr IGIvbmV0L2lwdjQvdGNwX2Jici5jCkBAIC04MzgsNyArODM4LDYgQEAgc3RhdGljIHZvaWQgYmJy X2luaXQoc3RydWN0IHNvY2sgKnNrKQogCiAJbWlubWF4X3Jlc2V0KCZiYnItPmJ3LCBiYnItPnJ0 dF9jbnQsIDApOyAgLyogaW5pdCBtYXggYncgdG8gMCAqLwogCi0Jc2stPnNrX3BhY2luZ19yYXRl ID0gMDsJCS8qIGZvcmNlIGFuIHVwZGF0ZSBvZiBza19wYWNpbmdfcmF0ZSAqLwogCWJicl9pbml0 X3BhY2luZ19yYXRlX2Zyb21fcnR0KHNrKTsKIAogCWJici0+cmVzdG9yZV9jd25kID0gMDsKLS0g CjIuMTMuNAoKCkZyb20gYmY5OTVlM2VjNGU4NjRmNmVjZjRjMWIxNjM4MTAxZGU0NzBhMmYyZSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdv b2dsZS5jb20+CkRhdGU6IEZyaSwgMTQgSnVsIDIwMTcgMTc6NDk6MjUgLTA0MDAKU3ViamVjdDog W1BBVENIIDA2LzQ1XSB0Y3BfYmJyOiBpbml0IHBhY2luZyByYXRlIG9uIGZpcnN0IFJUVCBzYW1w bGUKClsgVXBzdHJlYW0gY29tbWl0IDMyOTg0NTY1NTc0ZGE3ZWQzYWZhMTA2NDdiYjQwMjBkN2E5 ZTZjOTMgXQoKRml4ZXMgdGhlIGZvbGxvd2luZyBiZWhhdmlvcjogZm9yIGNvbm5lY3Rpb25zIHRo YXQgaGFkIG5vIFJUVCBzYW1wbGUKYXQgdGhlIHRpbWUgb2YgaW5pdGlhbGl6aW5nIGNvbmdlc3Rp b24gY29udHJvbCwgQkJSIHdhcyBpbml0aWFsaXppbmcKdGhlIHBhY2luZyByYXRlIHRvIGEgaGln aCBub21pbmFsIHJhdGUgKGJhc2VkIGFuIGEgZ3Vlc3Mgb2YgUlRUPTFtcywKaW4gY2FzZSB0aGlz IGlzIExBTiB0cmFmZmljKS4gVGhlbiBCQlIgbmV2ZXIgYWRqdXN0ZWQgdGhlIHBhY2luZyByYXRl CmRvd253YXJkIHVwb24gb2J0YWluaW5nIGFuIGFjdHVhbCBSVFQgc2FtcGxlLCBpZiB0aGUgY29u bmVjdGlvbiBuZXZlcgpmaWxsZWQgdGhlIHBpcGUgKGUuZy4gYWxsIHNlbmRzIHdlcmUgc21hbGwg YXBwLWxpbWl0ZWQgd3JpdGVzKCkpLgoKVGhpcyBmaXggYWRqdXN0cyB0aGUgcGFjaW5nIHJhdGUg dXBvbiBvYnRhaW5pbmcgdGhlIGZpcnN0IFJUVCBzYW1wbGUuCgpGaXhlczogMGY4NzgyZWExNDk3 ICgidGNwX2JicjogYWRkIEJCUiBjb25nZXN0aW9uIGNvbnRyb2wiKQpTaWduZWQtb2ZmLWJ5OiBO ZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogWXVjaHVu ZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFNvaGVpbCBIYXNzYXMg WWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3BfYmJyLmMgfCAxMCArKysr KysrKystCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2Jici5jIGIvbmV0L2lwdjQvdGNwX2Jici5jCmluZGV4 IDIwZDgzNGZkNTU3ZC4uOTZjOTVjOGQ5ODFlIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfYmJy LmMKKysrIGIvbmV0L2lwdjQvdGNwX2Jici5jCkBAIC0xMTMsNyArMTEzLDggQEAgc3RydWN0IGJi ciB7CiAJCWN3bmRfZ2FpbjoxMCwJLyogY3VycmVudCBnYWluIGZvciBzZXR0aW5nIGN3bmQgKi8K IAkJZnVsbF9id19jbnQ6MywJLyogbnVtYmVyIG9mIHJvdW5kcyB3aXRob3V0IGxhcmdlIGJ3IGdh aW5zICovCiAJCWN5Y2xlX2lkeDozLAkvKiBjdXJyZW50IGluZGV4IGluIHBhY2luZ19nYWluIGN5 Y2xlIGFycmF5ICovCi0JCXVudXNlZF9iOjY7CisJCWhhc19zZWVuX3J0dDoxLCAvKiBoYXZlIHdl IHNlZW4gYW4gUlRUIHNhbXBsZSB5ZXQ/ICovCisJCXVudXNlZF9iOjU7CiAJdTMyCXByaW9yX2N3 bmQ7CS8qIHByaW9yIGN3bmQgdXBvbiBlbnRlcmluZyBsb3NzIHJlY292ZXJ5ICovCiAJdTMyCWZ1 bGxfYnc7CS8qIHJlY2VudCBidywgdG8gZXN0aW1hdGUgaWYgcGlwZSBpcyBmdWxsICovCiB9OwpA QCAtMjI2LDExICsyMjcsMTMgQEAgc3RhdGljIHUzMiBiYnJfYndfdG9fcGFjaW5nX3JhdGUoc3Ry dWN0IHNvY2sgKnNrLCB1MzIgYncsIGludCBnYWluKQogc3RhdGljIHZvaWQgYmJyX2luaXRfcGFj aW5nX3JhdGVfZnJvbV9ydHQoc3RydWN0IHNvY2sgKnNrKQogewogCXN0cnVjdCB0Y3Bfc29jayAq dHAgPSB0Y3Bfc2soc2spOworCXN0cnVjdCBiYnIgKmJiciA9IGluZXRfY3NrX2NhKHNrKTsKIAl1 NjQgYnc7CiAJdTMyIHJ0dF91czsKIAogCWlmICh0cC0+c3J0dF91cykgewkJLyogYW55IFJUVCBz YW1wbGUgeWV0PyAqLwogCQlydHRfdXMgPSBtYXgodHAtPnNydHRfdXMgPj4gMywgMVUpOworCQli YnItPmhhc19zZWVuX3J0dCA9IDE7CiAJfSBlbHNlIHsJCQkgLyogbm8gUlRUIHNhbXBsZSB5ZXQg Ki8KIAkJcnR0X3VzID0gVVNFQ19QRVJfTVNFQzsJIC8qIHVzZSBub21pbmFsIGRlZmF1bHQgUlRU ICovCiAJfQpAQCAtMjQ4LDggKzI1MSwxMiBAQCBzdGF0aWMgdm9pZCBiYnJfaW5pdF9wYWNpbmdf cmF0ZV9mcm9tX3J0dChzdHJ1Y3Qgc29jayAqc2spCiAgKi8KIHN0YXRpYyB2b2lkIGJicl9zZXRf cGFjaW5nX3JhdGUoc3RydWN0IHNvY2sgKnNrLCB1MzIgYncsIGludCBnYWluKQogeworCXN0cnVj dCB0Y3Bfc29jayAqdHAgPSB0Y3Bfc2soc2spOworCXN0cnVjdCBiYnIgKmJiciA9IGluZXRfY3Nr X2NhKHNrKTsKIAl1MzIgcmF0ZSA9IGJicl9id190b19wYWNpbmdfcmF0ZShzaywgYncsIGdhaW4p OwogCisJaWYgKHVubGlrZWx5KCFiYnItPmhhc19zZWVuX3J0dCAmJiB0cC0+c3J0dF91cykpCisJ CWJicl9pbml0X3BhY2luZ19yYXRlX2Zyb21fcnR0KHNrKTsKIAlpZiAoYmJyX2Z1bGxfYndfcmVh Y2hlZChzaykgfHwgcmF0ZSA+IHNrLT5za19wYWNpbmdfcmF0ZSkKIAkJc2stPnNrX3BhY2luZ19y YXRlID0gcmF0ZTsKIH0KQEAgLTgzOCw2ICs4NDUsNyBAQCBzdGF0aWMgdm9pZCBiYnJfaW5pdChz dHJ1Y3Qgc29jayAqc2spCiAKIAltaW5tYXhfcmVzZXQoJmJici0+YncsIGJici0+cnR0X2NudCwg MCk7ICAvKiBpbml0IG1heCBidyB0byAwICovCiAKKwliYnItPmhhc19zZWVuX3J0dCA9IDA7CiAJ YmJyX2luaXRfcGFjaW5nX3JhdGVfZnJvbV9ydHQoc2spOwogCiAJYmJyLT5yZXN0b3JlX2N3bmQg PSAwOwotLSAKMi4xMy40CgoKRnJvbSA5NzZhZTVlYTQzMThlMzM0N2E1MzRiOGI4ZDZkYzNmNDA5 MGRhNDczIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgUG90YXBlbmtv IDxnbGlkZXJAZ29vZ2xlLmNvbT4KRGF0ZTogTW9uLCAxNyBKdWwgMjAxNyAxMjozNTo1OCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDgvNDVdIGlwdjQ6IGlwdjY6IGluaXRpYWxpemUgdHJlcS0+dHho YXNoIGluCiBjb29raWVfdls0Nl1fY2hlY2soKQoKWyBVcHN0cmVhbSBjb21taXQgMThiY2YyOTA3 ZGY5MzU5ODEyNjY1MzJlMWUwZDA1MmFmZjJlNmZhZSBdCgpLTVNBTiByZXBvcnRlZCB1c2Ugb2Yg dW5pbml0aWFsaXplZCBtZW1vcnkgaW4gc2tiX3NldF9oYXNoX2Zyb21fc2soKSwKd2hpY2ggb3Jp Z2luYXRlZCBmcm9tIHRoZSBUQ1AgcmVxdWVzdCBzb2NrZXQgY3JlYXRlZCBpbgpjb29raWVfdjZf Y2hlY2soKToKCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIEJVRzogS01TQU46IHVzZSBvZiB1bmluaXRpYWxpemVkIG1l bW9yeSBpbiB0Y3BfdHJhbnNtaXRfc2tiKzB4Zjc3LzB4M2VjMAogQ1BVOiAxIFBJRDogMjk0OSBD b21tOiBzeXotZXhlY3Byb2cgTm90IHRhaW50ZWQgNC4xMS4wLXJjNSsgIzI5MzEKIEhhcmR3YXJl IG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIEJvY2hz IDAxLzAxLzIwMTEKIFRDUDogcmVxdWVzdF9zb2NrX1RDUHY2OiBQb3NzaWJsZSBTWU4gZmxvb2Rp bmcgb24gcG9ydCAyMDAyOC4gU2VuZGluZyBjb29raWVzLiAgQ2hlY2sgU05NUCBjb3VudGVycy4K IENhbGwgVHJhY2U6CiAgPElSUT4KICBfX2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzoxNgog IGR1bXBfc3RhY2srMHgxNzIvMHgxYzAgbGliL2R1bXBfc3RhY2suYzo1MgogIGttc2FuX3JlcG9y dCsweDEyYS8weDE4MCBtbS9rbXNhbi9rbXNhbi5jOjkyNwogIF9fbXNhbl93YXJuaW5nXzMyKzB4 NjEvMHhiMCBtbS9rbXNhbi9rbXNhbl9pbnN0ci5jOjQ2OQogIHNrYl9zZXRfaGFzaF9mcm9tX3Nr IC4vaW5jbHVkZS9uZXQvc29jay5oOjIwMTEKICB0Y3BfdHJhbnNtaXRfc2tiKzB4Zjc3LzB4M2Vj MCBuZXQvaXB2NC90Y3Bfb3V0cHV0LmM6OTgzCiAgdGNwX3NlbmRfYWNrKzB4NzViLzB4ODMwIG5l dC9pcHY0L3RjcF9vdXRwdXQuYzozNDkzCiAgdGNwX2RlbGFja190aW1lcl9oYW5kbGVyKzB4OWE2 LzB4YjkwIG5ldC9pcHY0L3RjcF90aW1lci5jOjI4NAogIHRjcF9kZWxhY2tfdGltZXIrMHgxYjAv MHgzMTAgbmV0L2lwdjQvdGNwX3RpbWVyLmM6MzA5CiAgY2FsbF90aW1lcl9mbisweDI0MC8weDUy MCBrZXJuZWwvdGltZS90aW1lci5jOjEyNjgKICBleHBpcmVfdGltZXJzIGtlcm5lbC90aW1lL3Rp bWVyLmM6MTMwNwogIF9fcnVuX3RpbWVycysweGMxMy8weGYxMCBrZXJuZWwvdGltZS90aW1lci5j OjE2MDEKICBydW5fdGltZXJfc29mdGlycSsweDM2LzB4YTAga2VybmVsL3RpbWUvdGltZXIuYzox NjE0CiAgX19kb19zb2Z0aXJxKzB4NDg1LzB4OTQyIGtlcm5lbC9zb2Z0aXJxLmM6Mjg0CiAgaW52 b2tlX3NvZnRpcnEga2VybmVsL3NvZnRpcnEuYzozNjQKICBpcnFfZXhpdCsweDFmYS8weDIzMCBr ZXJuZWwvc29mdGlycS5jOjQwNQogIGV4aXRpbmdfaXJxKzB4ZS8weDEwIC4vYXJjaC94ODYvaW5j bHVkZS9hc20vYXBpYy5oOjY1NwogIHNtcF9hcGljX3RpbWVyX2ludGVycnVwdCsweDVhLzB4ODAg YXJjaC94ODYva2VybmVsL2FwaWMvYXBpYy5jOjk2NgogIGFwaWNfdGltZXJfaW50ZXJydXB0KzB4 ODYvMHg5MCBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TOjQ4OQogUklQOiAwMDEwOm5hdGl2ZV9y ZXN0b3JlX2ZsIC4vYXJjaC94ODYvaW5jbHVkZS9hc20vaXJxZmxhZ3MuaDozNgogUklQOiAwMDEw OmFyY2hfbG9jYWxfaXJxX3Jlc3RvcmUgLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pcnFmbGFncy5o Ojc3CiBSSVA6IDAwMTA6X19tc2FuX3BvaXNvbl9hbGxvY2ErMHhlZC8weDEyMCBtbS9rbXNhbi9r bXNhbl9pbnN0ci5jOjQ0MAogUlNQOiAwMDE4OmZmZmY4ODAwMjQ5MTdjZDggRUZMQUdTOiAwMDAw MDI0NiBPUklHX1JBWDogZmZmZmZmZmZmZmZmZmYxMAogUkFYOiAwMDAwMDAwMDAwMDAwMjQ2IFJC WDogZmZmZjg4MDAyMjRjMDAwMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDUKIFJEWDogMDAwMDAwMDAw MDAwMDAwNCBSU0k6IGZmZmY4ODAwMDAwMDAwMDAgUkRJOiBmZmZmZWEwMDAwYjZkNzcwCiBSQlA6 IGZmZmY4ODAwMjQ5MTdkNTggUjA4OiAwMDAwMDAwMDAwMDAwZGQ4IFIwOTogMDAwMDAwMDAwMDAw MDAwNAogUjEwOiAwMDAwMTYwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6IGZm ZmZmZmZmODVhYmY4MTAKIFIxMzogZmZmZjg4MDAyNDkxN2RkOCBSMTQ6IDAwMDAwMDAwMDAwMDAw MTAgUjE1OiBmZmZmZmZmZjgxY2FiZGU0CiAgPC9JUlE+CiAgcG9sbF9zZWxlY3RfY29weV9yZW1h aW5pbmcrMHhhYy8weDZiMCBmcy9zZWxlY3QuYzoyOTMKICBTWVNDX3NlbGVjdCsweDRiNC8weDRl MCBmcy9zZWxlY3QuYzo2NTMKICBTeVNfc2VsZWN0KzB4NzYvMHhhMCBmcy9zZWxlY3QuYzo2MzQK ICBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MTMvMHg5NCBhcmNoL3g4Ni9lbnRyeS9lbnRy eV82NC5TOjIwNAogUklQOiAwMDMzOjB4NDU5N2U3CiBSU1A6IDAwMmI6MDAwMDAwYzQyMDAzN2Vl MCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMDE3CiBSQVg6IGZmZmZm ZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAwMDAwMDAwIFJDWDogMDAwMDAwMDAwMDQ1OTdlNwog UkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAwMDAwMDAwMCBSREk6IDAwMDAwMDAw MDAwMDAwMDAKIFJCUDogMDAwMDAwYzQyMDAzN2VmMCBSMDg6IDAwMDAwMGM0MjAwMzdlZTAgUjA5 OiAwMDAwMDAwMDAwMDAwMDU5CiBSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAw MDAwMjQ2IFIxMjogMDAwMDAwMDAwMDQyZGMyMAogUjEzOiAwMDAwMDAwMDAwMDAwMGYzIFIxNDog MDAwMDAwMDAwMDAwMDAzMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDMKIGNoYWluZWQgb3JpZ2luOgog IHNhdmVfc3RhY2tfdHJhY2UrMHgzNy8weDQwIGFyY2gveDg2L2tlcm5lbC9zdGFja3RyYWNlLmM6 NTkKICBrbXNhbl9zYXZlX3N0YWNrX3dpdGhfZmxhZ3MgbW0va21zYW4va21zYW4uYzozMDIKICBr bXNhbl9zYXZlX3N0YWNrIG1tL2ttc2FuL2ttc2FuLmM6MzE3CiAga21zYW5faW50ZXJuYWxfY2hh aW5fb3JpZ2luKzB4MTJhLzB4MWYwIG1tL2ttc2FuL2ttc2FuLmM6NTQ3CiAgX19tc2FuX3N0b3Jl X3NoYWRvd19vcmlnaW5fNCsweGFjLzB4MTEwIG1tL2ttc2FuL2ttc2FuX2luc3RyLmM6MjU5CiAg dGNwX2NyZWF0ZV9vcGVucmVxX2NoaWxkKzB4NzA5LzB4MWFlMCBuZXQvaXB2NC90Y3BfbWluaXNv Y2tzLmM6NDcyCiAgdGNwX3Y2X3N5bl9yZWN2X3NvY2srMHg3ZWIvMHgyYTMwIG5ldC9pcHY2L3Rj cF9pcHY2LmM6MTEwMwogIHRjcF9nZXRfY29va2llX3NvY2srMHgxMzYvMHg1ZjAgbmV0L2lwdjQv c3luY29va2llcy5jOjIxMgogIGNvb2tpZV92Nl9jaGVjaysweDE3YTkvMHgxYjUwIG5ldC9pcHY2 L3N5bmNvb2tpZXMuYzoyNDUKICB0Y3BfdjZfY29va2llX2NoZWNrIG5ldC9pcHY2L3RjcF9pcHY2 LmM6OTg5CiAgdGNwX3Y2X2RvX3JjdisweGRkOC8weDFjNjAgbmV0L2lwdjYvdGNwX2lwdjYuYzox Mjk4CiAgdGNwX3Y2X3JjdisweDQxYTMvMHg0ZjAwIG5ldC9pcHY2L3RjcF9pcHY2LmM6MTQ4Nwog IGlwNl9pbnB1dF9maW5pc2grMHg4MmYvMHgxZWUwIG5ldC9pcHY2L2lwNl9pbnB1dC5jOjI3OQog IE5GX0hPT0sgLi9pbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI1NwogIGlwNl9pbnB1dCsweDIz OS8weDI5MCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzozMjIKICBkc3RfaW5wdXQgLi9pbmNsdWRlL25l dC9kc3QuaDo0OTIKICBpcDZfcmN2X2ZpbmlzaCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzo2OQogIE5G X0hPT0sgLi9pbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI1NwogIGlwdjZfcmN2KzB4MWRiZC8w eDIyZTAgbmV0L2lwdjYvaXA2X2lucHV0LmM6MjAzCiAgX19uZXRpZl9yZWNlaXZlX3NrYl9jb3Jl KzB4MmY2Zi8weDNhMjAgbmV0L2NvcmUvZGV2LmM6NDIwOAogIF9fbmV0aWZfcmVjZWl2ZV9za2Ig bmV0L2NvcmUvZGV2LmM6NDI0NgogIHByb2Nlc3NfYmFja2xvZysweDY2Ny8weGJhMCBuZXQvY29y ZS9kZXYuYzo0ODY2CiAgbmFwaV9wb2xsIG5ldC9jb3JlL2Rldi5jOjUyNjgKICBuZXRfcnhfYWN0 aW9uKzB4Yzk1LzB4MTU5MCBuZXQvY29yZS9kZXYuYzo1MzMzCiAgX19kb19zb2Z0aXJxKzB4NDg1 LzB4OTQyIGtlcm5lbC9zb2Z0aXJxLmM6Mjg0CiBvcmlnaW46CiAgc2F2ZV9zdGFja190cmFjZSsw eDM3LzB4NDAgYXJjaC94ODYva2VybmVsL3N0YWNrdHJhY2UuYzo1OQogIGttc2FuX3NhdmVfc3Rh Y2tfd2l0aF9mbGFncyBtbS9rbXNhbi9rbXNhbi5jOjMwMgogIGttc2FuX2ludGVybmFsX3BvaXNv bl9zaGFkb3crMHhiMS8weDFhMCBtbS9rbXNhbi9rbXNhbi5jOjE5OAogIGttc2FuX2ttYWxsb2Mr MHg3Zi8weGUwIG1tL2ttc2FuL2ttc2FuLmM6MzM3CiAga21lbV9jYWNoZV9hbGxvYysweDFjMi8w eDFlMCBtbS9zbHViLmM6Mjc2NgogIHJlcXNrX2FsbG9jIC4vaW5jbHVkZS9uZXQvcmVxdWVzdF9z b2NrLmg6ODcKICBpbmV0X3JlcXNrX2FsbG9jKzB4YTQvMHg1YjAgbmV0L2lwdjQvdGNwX2lucHV0 LmM6NjIwMAogIGNvb2tpZV92Nl9jaGVjaysweDRmNC8weDFiNTAgbmV0L2lwdjYvc3luY29va2ll cy5jOjE2OQogIHRjcF92Nl9jb29raWVfY2hlY2sgbmV0L2lwdjYvdGNwX2lwdjYuYzo5ODkKICB0 Y3BfdjZfZG9fcmN2KzB4ZGQ4LzB4MWM2MCBuZXQvaXB2Ni90Y3BfaXB2Ni5jOjEyOTgKICB0Y3Bf djZfcmN2KzB4NDFhMy8weDRmMDAgbmV0L2lwdjYvdGNwX2lwdjYuYzoxNDg3CiAgaXA2X2lucHV0 X2ZpbmlzaCsweDgyZi8weDFlZTAgbmV0L2lwdjYvaXA2X2lucHV0LmM6Mjc5CiAgTkZfSE9PSyAu L2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MjU3CiAgaXA2X2lucHV0KzB4MjM5LzB4MjkwIG5l dC9pcHY2L2lwNl9pbnB1dC5jOjMyMgogIGRzdF9pbnB1dCAuL2luY2x1ZGUvbmV0L2RzdC5oOjQ5 MgogIGlwNl9yY3ZfZmluaXNoIG5ldC9pcHY2L2lwNl9pbnB1dC5jOjY5CiAgTkZfSE9PSyAuL2lu Y2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MjU3CiAgaXB2Nl9yY3YrMHgxZGJkLzB4MjJlMCBuZXQv aXB2Ni9pcDZfaW5wdXQuYzoyMDMKICBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUrMHgyZjZmLzB4 M2EyMCBuZXQvY29yZS9kZXYuYzo0MjA4CiAgX19uZXRpZl9yZWNlaXZlX3NrYiBuZXQvY29yZS9k ZXYuYzo0MjQ2CiAgcHJvY2Vzc19iYWNrbG9nKzB4NjY3LzB4YmEwIG5ldC9jb3JlL2Rldi5jOjQ4 NjYKICBuYXBpX3BvbGwgbmV0L2NvcmUvZGV2LmM6NTI2OAogIG5ldF9yeF9hY3Rpb24rMHhjOTUv MHgxNTkwIG5ldC9jb3JlL2Rldi5jOjUzMzMKICBfX2RvX3NvZnRpcnErMHg0ODUvMHg5NDIga2Vy bmVsL3NvZnRpcnEuYzoyODQKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKU2ltaWxhciBlcnJvciBpcyByZXBvcnRlZCBm b3IgY29va2llX3Y0X2NoZWNrKCkuCgpGaXhlczogNThkNjA3ZDNlNTJmICgidGNwOiBwcm92aWRl IHNrYi0+aGFzaCB0byBzeW5hY2sgcGFja2V0cyIpClNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBQ b3RhcGVua28gPGdsaWRlckBnb29nbGUuY29tPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVt YXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvc3luY29va2llcy5jIHwgMSArCiBuZXQvaXB2Ni9z eW5jb29raWVzLmMgfCAxICsKIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvbmV0L2lwdjQvc3luY29va2llcy5jIGIvbmV0L2lwdjQvc3luY29va2llcy5jCmlu ZGV4IDAyNTdkOTY1ZjExMS4uNGE5N2ZlMjBmNTllIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9zeW5j b29raWVzLmMKKysrIGIvbmV0L2lwdjQvc3luY29va2llcy5jCkBAIC0zMzIsNiArMzMyLDcgQEAg c3RydWN0IHNvY2sgKmNvb2tpZV92NF9jaGVjayhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19i dWZmICpza2IpCiAJdHJlcS0+cmN2X2lzbgkJPSBudG9obCh0aC0+c2VxKSAtIDE7CiAJdHJlcS0+ c250X2lzbgkJPSBjb29raWU7CiAJdHJlcS0+dHNfb2ZmCQk9IDA7CisJdHJlcS0+dHhoYXNoCQk9 IG5ldF90eF9ybmRoYXNoKCk7CiAJcmVxLT5tc3MJCT0gbXNzOwogCWlyZXEtPmlyX251bQkJPSBu dG9ocyh0aC0+ZGVzdCk7CiAJaXJlcS0+aXJfcm10X3BvcnQJPSB0aC0+c291cmNlOwpkaWZmIC0t Z2l0IGEvbmV0L2lwdjYvc3luY29va2llcy5jIGIvbmV0L2lwdjYvc3luY29va2llcy5jCmluZGV4 IDVhYmMzNjkyYjkwMS4uY2E3ODk1NDU0Y2VjIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9zeW5jb29r aWVzLmMKKysrIGIvbmV0L2lwdjYvc3luY29va2llcy5jCkBAIC0yMTUsNiArMjE1LDcgQEAgc3Ry dWN0IHNvY2sgKmNvb2tpZV92Nl9jaGVjayhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZm ICpza2IpCiAJdHJlcS0+cmN2X2lzbiA9IG50b2hsKHRoLT5zZXEpIC0gMTsKIAl0cmVxLT5zbnRf aXNuID0gY29va2llOwogCXRyZXEtPnRzX29mZiA9IDA7CisJdHJlcS0+dHhoYXNoID0gbmV0X3R4 X3JuZGhhc2goKTsKIAogCS8qCiAJICogV2UgbmVlZCB0byBsb29rdXAgdGhlIGRzdF9lbnRyeSB0 byBnZXQgdGhlIGNvcnJlY3Qgd2luZG93IHNpemUuCi0tIAoyLjEzLjQKCgpGcm9tIDRmZDJlZmM0 Y2M1MjU0OGNhZTAyYWUxYjI2MjlmMjVmZDQ4MGMzZDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206ICJMZXZpbiwgQWxleGFuZGVyIiA8YWxleGFuZGVyLmxldmluQHZlcml6b24uY29tPgpE YXRlOiBUdWUsIDE4IEp1bCAyMDE3IDA0OjIzOjE2ICswMDAwClN1YmplY3Q6IFtQQVRDSCAwOS80 NV0gd2lyZWxlc3M6IHdleHQ6IHRlcm1pbmF0ZSBpZnIgbmFtZSBjb21pbmcgZnJvbQogdXNlcnNw YWNlCgpbIFVwc3RyZWFtIGNvbW1pdCA5OGRlNGUwZWE0N2QxMDY4NDZmYzBlMzBjZTRlNjQ0Mjgz ZmE3ZmMyIF0KCmlmciBuYW1lIGlzIGFzc3VtZWQgdG8gYmUgYSB2YWxpZCBzdHJpbmcgYnkgdGhl IGtlcm5lbCwgYnV0IG5vdGhpbmcKd2FzIGZvcmNpbmcgdXNlcm5hbWUgdG8gcGFzcyBhIHZhbGlk IHN0cmluZy4KCkluIHR1cm4sIHRoaXMgd291bGQgY2F1c2UgcGFuaWNzIGFzIHdlIHRyaWVkIHRv IGFjY2VzcyB0aGUgc3RyaW5nCnBhc3QgaXQncyB2YWxpZCBtZW1vcnkuCgpTaWduZWQtb2ZmLWJ5 OiBTYXNoYSBMZXZpbiA8YWxleGFuZGVyLmxldmluQHZlcml6b24uY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvZGV2 X2lvY3RsLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvbmV0L2NvcmUvZGV2X2lvY3RsLmMgYi9uZXQvY29yZS9kZXZfaW9jdGwuYwppbmRleCAy N2ZhZDMxNzg0YTguLjQzNDQxM2YxMDc0YSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2X2lvY3Rs LmMKKysrIGIvbmV0L2NvcmUvZGV2X2lvY3RsLmMKQEAgLTQyMyw2ICs0MjMsOCBAQCBpbnQgZGV2 X2lvY3RsKHN0cnVjdCBuZXQgKm5ldCwgdW5zaWduZWQgaW50IGNtZCwgdm9pZCBfX3VzZXIgKmFy ZykKIAkJaWYgKGNvcHlfZnJvbV91c2VyKCZpd3IsIGFyZywgc2l6ZW9mKGl3cikpKQogCQkJcmV0 dXJuIC1FRkFVTFQ7CiAKKwkJaXdyLmlmcl9uYW1lW3NpemVvZihpd3IuaWZyX25hbWUpIC0gMV0g PSAwOworCiAJCXJldHVybiB3ZXh0X2hhbmRsZV9pb2N0bChuZXQsICZpd3IsIGNtZCwgYXJnKTsK IAl9CiAKLS0gCjIuMTMuNAoKCkZyb20gZTdiMWZlMmU2YzYzYWRlZTcwZGZlZGZmYzdkMDIxM2E4 MDdmNmI0MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkRhdmlkIFMuIE1pbGxlciIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+CkRhdGU6IFdlZCwgMTkgSnVsIDIwMTcgMTM6MzM6MjQgLTA3 MDAKU3ViamVjdDogW1BBVENIIDEwLzQ1XSBuZXQ6IFplcm8gdGVybWluYXRlIGlmcl9uYW1lIGlu IGRldl9pZm5hbWUoKS4KClsgVXBzdHJlYW0gY29tbWl0IDYzNjc5MTEyYzUzNjI4OTgyNmZlYzYx YzkxNzYyMWRlOTViYTJhZGUgXQoKVGhlIGlmci5pZnJfbmFtZSBpcyBwYXNzZWQgYXJvdW5kIGFu ZCBhc3N1bWVkIHRvIGJlIE5VTEwgdGVybWluYXRlZC4KClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9kZXZfaW9jdGwuYyB8 IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2Nv cmUvZGV2X2lvY3RsLmMgYi9uZXQvY29yZS9kZXZfaW9jdGwuYwppbmRleCA0MzQ0MTNmMTA3NGEu LjE4ZjljYjlhYTg3ZCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2X2lvY3RsLmMKKysrIGIvbmV0 L2NvcmUvZGV2X2lvY3RsLmMKQEAgLTI4LDYgKzI4LDcgQEAgc3RhdGljIGludCBkZXZfaWZuYW1l KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGlmcmVxIF9fdXNlciAqYXJnKQogCiAJaWYgKGNvcHlf ZnJvbV91c2VyKCZpZnIsIGFyZywgc2l6ZW9mKHN0cnVjdCBpZnJlcSkpKQogCQlyZXR1cm4gLUVG QVVMVDsKKwlpZnIuaWZyX25hbWVbSUZOQU1TSVotMV0gPSAwOwogCiAJZXJyb3IgPSBuZXRkZXZf Z2V0X25hbWUobmV0LCBpZnIuaWZyX25hbWUsIGlmci5pZnJfaWZpbmRleCk7CiAJaWYgKGVycm9y KQotLSAKMi4xMy40CgoKRnJvbSBkYjk3YzAyNzllMDdlYjRjZmU0ZjczNmEwY2QwMmNmNGJlMzA3 MmU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TWFydGluPTIwSHVu ZGViPUMzPUI4bGw/PSA8bW5odUBwcmV2YXMuZGs+CkRhdGU6IFdlZCwgMTkgSnVsIDIwMTcgMDg6 MTc6MDIgKzAyMDAKU3ViamVjdDogW1BBVENIIDExLzQ1XSBuZXQ6IGRzYTogbXY4OGU2eHh4OiBF bmFibGUgQ01PREUgY29uZmlnIHN1cHBvcnQgZm9yCiA2MzkwWApNSU1FLVZlcnNpb246IDEuMApD b250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1F bmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgYmIwYTI2NzVmNzJiNDU4ZTY0ZjQ3MDcx ZThhYWJkYjIyNWE2YWY0ZCBdCgpDb21taXQgZjM5OTA4ZDNiMWM0NSAoJ25ldDogZHNhOiBtdjg4 ZTZ4eHg6IFNldCB0aGUgQ01PREUgZm9yIG12ODhlNjM5MApwb3J0cyA5ICYgMTAnKSBhZGRlZCBz dXBwb3J0IGZvciBzZXR0aW5nIHRoZSBDTU9ERSBmb3IgdGhlIDYzOTBYIGZhbWlseSwKYnV0IG9u bHkgZW5hYmxlZCBpdCBmb3IgOTI5MCBhbmQgNjM5MCAtIGFuZCBsZWZ0IG91dCA2MzkwWC4KCkZp eCBzdXBwb3J0IGZvciBzZXR0aW5nIHRoZSBDTU9ERSBvbiA2MzkwWCBhbHNvIGJ5IGFzc2lnbmlu Zwptdjg4ZTYzOTB4X3BvcnRfc2V0X2Ntb2RlKCkgdG8gdGhlIC5wb3J0X3NldF9jbW9kZSBmdW5j dGlvbiBwb2ludGVyIGluCm12ODhlNjM5MHhfb3BzIHRvby4KCkZpeGVzOiBmMzk5MDhkM2IxYzQg KCJuZXQ6IGRzYTogbXY4OGU2eHh4OiBTZXQgdGhlIENNT0RFIGZvciBtdjg4ZTYzOTAgcG9ydHMg OSAmIDEwIikKU2lnbmVkLW9mZi1ieTogTWFydGluIEh1bmRlYsO4bGwgPG1uaHVAcHJldmFzLmRr PgpSZXZpZXdlZC1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpSZXZpZXdlZC1ieTog Vml2aWVuIERpZGVsb3QgPHZpdmllbi5kaWRlbG90QHNhdm9pcmZhaXJlbGludXguY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5j IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKaW5kZXggZDAzNGQ4Y2Q3ZDIyLi4z Mjg2NGE0N2M0YzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5j CisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCkBAIC0zMzc3LDYgKzMzNzcs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzkweF9vcHMgPSB7 CiAJLnBvcnRfanVtYm9fY29uZmlnID0gbXY4OGU2MTY1X3BvcnRfanVtYm9fY29uZmlnLAogCS5w b3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGlt aXRpbmcsCiAJLnBvcnRfcGF1c2VfY29uZmlnID0gbXY4OGU2MzkwX3BvcnRfcGF1c2VfY29uZmln LAorCS5wb3J0X3NldF9jbW9kZSA9IG12ODhlNjM5MHhfcG9ydF9zZXRfY21vZGUsCiAJLnBvcnRf ZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQs CiAJLnBvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX3By aV9vdmVycmlkZSwKIAkuc3RhdHNfc25hcHNob3QgPSBtdjg4ZTYzOTBfZzFfc3RhdHNfc25hcHNo b3QsCi0tIAoyLjEzLjQKCgpGcm9tIGIxMWU5NzBiMmM5MGRjMjMyYmU4NGJmNzA3NTJkZTEzNzFh ZjIyYTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlkIEFoZXJuIDxkc2FoZXJu QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxOSBKdWwgMjAxNyAxMDoyMjo0MCAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMTIvNDVdIFJldmVydCAicnRuZXRsaW5rOiBEbyBub3QgZ2VuZXJhdGUgbm90aWZp Y2F0aW9ucyBmb3IKIENIQU5HRUFERFIgZXZlbnQiCgpbIFVwc3RyZWFtIGNvbW1pdCAzNzUzNjU0 ZTU0MTkzODcxN2IxM2YyYjI1NzkxYzMxNzFhM2EwNmFhIF0KClRoaXMgcmV2ZXJ0cyBjb21taXQg Y2Q4OTY2ZTc1ZWQzYzZiNDFhMzcwNDdhOTA0NjE3YmM0NGZhNDgxZi4KClRoZSBkdXBsaWNhdGUg Q0hBTkdFQUREUiBldmVudCBtZXNzYWdlIGlzIHNlbnQgcmVnYXJkbGVzcyBvZiBsaW5rCnN0YXR1 cyB3aGVyZWFzIHRoZSBzZXRsaW5rIGNoYW5nZXMgb25seSBnZW5lcmF0ZSBhIG5vdGlmaWNhdGlv biB3aGVuCnRoZSBsaW5rIGlzIHVwLiBOb3Qgc2VuZGluZyBhIG5vdGlmaWNhdGlvbiB3aGVuIHRo ZSBsaW5rIGlzIGRvd24gYnJlYWtzCmRoY3BjZCB3aGljaCBvbmx5IHByb2Nlc3NlcyBod2FkZHIg Y2hhbmdlcyB3aGVuIHRoZSBsaW5rIGlzIGRvd24uCgpGaXhlcyByZXBvcnRlZCByZWdyZXNzaW9u OgogICAgaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTYzNTUK ClJlcG9ydGVkLWJ5OiBZYXJvc2xhdiBJc2Frb3YgPHlhcm9zbGF2LmlzYWtvdkBnbWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3Jl L3J0bmV0bGluay5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYg LS1naXQgYS9uZXQvY29yZS9ydG5ldGxpbmsuYyBiL25ldC9jb3JlL3J0bmV0bGluay5jCmluZGV4 IDQ2N2EyZjQ1MTBhNy4uMDk5ZWNhMTUyNGMwIDEwMDY0NAotLS0gYS9uZXQvY29yZS9ydG5ldGxp bmsuYworKysgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwpAQCAtNDE2NSw2ICs0MTY1LDcgQEAgc3Rh dGljIGludCBydG5ldGxpbmtfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp0aGlzLCB1bnNp Z25lZCBsb25nIGV2ZW50LCB2b2kKIAogCXN3aXRjaCAoZXZlbnQpIHsKIAljYXNlIE5FVERFVl9S RUJPT1Q6CisJY2FzZSBORVRERVZfQ0hBTkdFQUREUjoKIAljYXNlIE5FVERFVl9DSEFOR0VOQU1F OgogCWNhc2UgTkVUREVWX0ZFQVRfQ0hBTkdFOgogCWNhc2UgTkVUREVWX0JPTkRJTkdfRkFJTE9W RVI6Ci0tIAoyLjEzLjQKCgpGcm9tIDRiZmE5MjQ0MzkwYjI5ZDA0ZGM3MzlmMjdkN2Y5MmFhODJk YTA3YjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNhYnJpbmEgRHVicm9jYSA8c2RA cXVlYXN5c25haWwubmV0PgpEYXRlOiBXZWQsIDE5IEp1bCAyMDE3IDIyOjI4OjU1ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAxMy80NV0gaXB2NjogYXZvaWQgb3ZlcmZsb3cgb2Ygb2Zmc2V0IGluIGlw Nl9maW5kXzFzdGZyYWdvcHQKClsgVXBzdHJlYW0gY29tbWl0IDYzOTlmMWZhZTRlYzI5ZmFiNWVj NzYwNzA0MzU1NTVlMjU2Y2EzYTYgXQoKSW4gc29tZSBjYXNlcywgb2Zmc2V0IGNhbiBvdmVyZmxv dyBhbmQgY2FuIGNhdXNlIGFuIGluZmluaXRlIGxvb3AgaW4KaXA2X2ZpbmRfMXN0ZnJhZ29wdCgp LiBNYWtlIGl0IHVuc2lnbmVkIGludCB0byBwcmV2ZW50IHRoZSBvdmVyZmxvdywgYW5kCmNhcCBp dCBhdCBJUFY2X01BWFBMRU4sIHNpbmNlIHBhY2tldHMgbGFyZ2VyIHRoYW4gdGhhdCBzaG91bGQg YmUgaW52YWxpZC4KClRoaXMgcHJvYmxlbSBoYXMgYmVlbiBoZXJlIHNpbmNlIGJlZm9yZSB0aGUg YmVnaW5uaW5nIG9mIGdpdCBoaXN0b3J5LgoKU2lnbmVkLW9mZi1ieTogU2FicmluYSBEdWJyb2Nh IDxzZEBxdWVhc3lzbmFpbC5uZXQ+CkFja2VkLWJ5OiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFu bmVzQHN0cmVzc2luZHVrdGlvbi5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9vdXRwdXRfY29yZS5jIHwgOCArKysr KystLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvaXB2Ni9vdXRwdXRfY29yZS5jIGIvbmV0L2lwdjYvb3V0cHV0X2NvcmUu YwppbmRleCBlOTA2NWI4ZDNhZjguLmFiYjJjMzA3ZmJlOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYv b3V0cHV0X2NvcmUuYworKysgYi9uZXQvaXB2Ni9vdXRwdXRfY29yZS5jCkBAIC03OCw3ICs3OCw3 IEBAIEVYUE9SVF9TWU1CT0woaXB2Nl9zZWxlY3RfaWRlbnQpOwogCiBpbnQgaXA2X2ZpbmRfMXN0 ZnJhZ29wdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqKm5leHRoZHIpCiB7Ci0JdTE2IG9mZnNl dCA9IHNpemVvZihzdHJ1Y3QgaXB2Nmhkcik7CisJdW5zaWduZWQgaW50IG9mZnNldCA9IHNpemVv ZihzdHJ1Y3QgaXB2Nmhkcik7CiAJdW5zaWduZWQgaW50IHBhY2tldF9sZW4gPSBza2JfdGFpbF9w b2ludGVyKHNrYikgLQogCQlza2JfbmV0d29ya19oZWFkZXIoc2tiKTsKIAlpbnQgZm91bmRfcmhk ciA9IDA7CkBAIC04Niw2ICs4Niw3IEBAIGludCBpcDZfZmluZF8xc3RmcmFnb3B0KHN0cnVjdCBz a19idWZmICpza2IsIHU4ICoqbmV4dGhkcikKIAogCXdoaWxlIChvZmZzZXQgPD0gcGFja2V0X2xl bikgewogCQlzdHJ1Y3QgaXB2Nl9vcHRfaGRyICpleHRoZHI7CisJCXVuc2lnbmVkIGludCBsZW47 CiAKIAkJc3dpdGNoICgqKm5leHRoZHIpIHsKIApAQCAtMTExLDcgKzExMiwxMCBAQCBpbnQgaXA2 X2ZpbmRfMXN0ZnJhZ29wdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqKm5leHRoZHIpCiAKIAkJ ZXh0aGRyID0gKHN0cnVjdCBpcHY2X29wdF9oZHIgKikoc2tiX25ldHdvcmtfaGVhZGVyKHNrYikg KwogCQkJCQkJIG9mZnNldCk7Ci0JCW9mZnNldCArPSBpcHY2X29wdGxlbihleHRoZHIpOworCQls ZW4gPSBpcHY2X29wdGxlbihleHRoZHIpOworCQlpZiAobGVuICsgb2Zmc2V0ID49IElQVjZfTUFY UExFTikKKwkJCXJldHVybiAtRUlOVkFMOworCQlvZmZzZXQgKz0gbGVuOwogCQkqbmV4dGhkciA9 ICZleHRoZHItPm5leHRoZHI7CiAJfQogCi0tIAoyLjEzLjQKCgpGcm9tIDBhNDhiMDQwYmRkNmQ0 N2Y4YjkwODllNTE3MzA4NDM2NmIxMjI0ODEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpEYXRlOiBUaHUsIDIwIEp1 bCAyMDE3IDEyOjI1OjIyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNC80NV0gbmV0OiBkc2E6IGI1 MzogQWRkIG1pc3NpbmcgQVJMIGVudHJpZXMgZm9yIEJDTTUzMTI1CgpbIFVwc3RyZWFtIGNvbW1p dCBiZTM1ZThjNTE2YzE5MTVhMzAzNWQyNjZhMjAxNWI0MWY3M2JhM2Y5IF0KClRoZSBCQ001MzEy NSBlbnRyeSB3YXMgbWlzc2luZyBhbiBhcmxfZW50cmllcyBtZW1iZXIgd2hpY2ggd291bGQKYmFz aWNhbGx5IHByZXZlbnQgdGhlIEFSTCBzZWFyY2ggZnJvbSB0ZXJtaW5hdGluZyBwcm9wZXJseS4g VGhpcyBzd2l0Y2gKaGFzIDQgQVJMIGVudHJpZXMsIHNvIGFkZCB0aGF0LgoKRml4ZXM6IDFkYTZk Zjg1YzZmYiAoIm5ldDogZHNhOiBiNTM6IEltcGxlbWVudCBBUkwgYWRkL2RlbC9kdW1wIG9wZXJh dGlvbnMiKQpTaWduZWQtb2ZmLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWls LmNvbT4KUmV2aWV3ZWQtYnk6IFZpdmllbiBEaWRlbG90IDx2aXZpZW4uZGlkZWxvdEBzYXZvaXJm YWlyZWxpbnV4LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2RzYS9iNTMvYjUzX2NvbW1vbi5jIHwgMSArCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9k c2EvYjUzL2I1M19jb21tb24uYyBiL2RyaXZlcnMvbmV0L2RzYS9iNTMvYjUzX2NvbW1vbi5jCmlu ZGV4IGZhMGVlY2UyMWVlZi4uZDljYzk0YTdkNDRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9k c2EvYjUzL2I1M19jb21tb24uYworKysgYi9kcml2ZXJzL25ldC9kc2EvYjUzL2I1M19jb21tb24u YwpAQCAtMTY2OCw2ICsxNjY4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBiNTNfY2hpcF9kYXRh IGI1M19zd2l0Y2hfY2hpcHNbXSA9IHsKIAkJLmRldl9uYW1lID0gIkJDTTUzMTI1IiwKIAkJLnZs YW5zID0gNDA5NiwKIAkJLmVuYWJsZWRfcG9ydHMgPSAweGZmLAorCQkuYXJsX2VudHJpZXMgPSA0 LAogCQkuY3B1X3BvcnQgPSBCNTNfQ1BVX1BPUlQsCiAJCS52dGFfcmVncyA9IEI1M19WVEFfUkVH UywKIAkJLmR1cGxleF9yZWcgPSBCNTNfRFVQTEVYX1NUQVRfR0UsCi0tIAoyLjEzLjQKCgpGcm9t IDU4ZTZlZTZiOGY0ZTdkODU3MWVlMWQ4MTA1ZGIwMDU3MTUwMzI0NDQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IE1haGVzaCBCYW5kZXdhciA8bWFoZXNoYkBnb29nbGUuY29tPgpEYXRl OiBXZWQsIDE5IEp1bCAyMDE3IDE1OjQxOjMzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNS80NV0g aXB2NDogaW5pdGlhbGl6ZSBmaWJfdHJpZSBwcmlvciB0bwogcmVnaXN0ZXJfbmV0ZGV2X25vdGlm aWVyIGNhbGwuCgpbIFVwc3RyZWFtIGNvbW1pdCA4Nzk5YTIyMWY1OTQ0YTdkNzQ1MTZlY2Y0NmQ1 OGMyOGVjMWQxZjc1IF0KCk5ldCBzdGFjayBpbml0aWFsaXphdGlvbiBjdXJyZW50bHkgaW5pdGlh bGl6ZXMgZmliLXRyaWUgYWZ0ZXIgdGhlCmZpcnN0IGNhbGwgdG8gbmV0ZGV2aWNlX25vdGlmaWVy KCkgY2FsbC4gSW4gZmFjdCBmaWJfdHJpZSBpbml0aWFsaXphdGlvbgpuZWVkcyB0byBoYXBwZW4g YmVmb3JlIGZpcnN0IHJ0bmxfcmVnaXN0ZXIoKS4gSXQgZG9lcyBub3QgY2F1c2UgYW55IHByb2Js ZW0Kc2luY2UgdGhlcmUgYXJlIG5vIGRldmljZXMgVVAgYXQgdGhpcyBtb21lbnQsIGJ1dCB0cnlp bmcgdG8gYnJpbmcgJ2xvJwpVUCBhdCBpbml0aWFsaXphdGlvbiB3b3VsZCBtYWtlIHRoaXMgYXNz dW1wdGlvbiB3cm9uZyBhbmQgZXhwb3NlcyB0aGUgaXNzdWUuCgpGaXhlcyBmb2xsb3dpbmcgY3Jh c2gKCiBDYWxsIFRyYWNlOgogID8gYWx0ZXJuYXRlX25vZGVfYWxsb2MrMHg3Ni8weGEwCiAgZmli X3RhYmxlX2luc2VydCsweDFiNy8weDRiMAogIGZpYl9tYWdpYy5pc3JhLjE3KzB4ZWEvMHgxMjAK ICBmaWJfYWRkX2lmYWRkcisweDdiLzB4MTkwCiAgZmliX25ldGRldl9ldmVudCsweGMwLzB4MTMw CiAgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKzB4MWMxLzB4MWQwCiAgaXBfZmliX2luaXQr MHg3Mi8weDg1CiAgaXBfcnRfaW5pdCsweDE4Ny8weDFlOQogIGlwX2luaXQrMHhlLzB4MWEKICBp bmV0X2luaXQrMHgxNzEvMHgyNmMKICA/IGlwdjRfb2ZmbG9hZF9pbml0KzB4NjYvMHg2NgogIGRv X29uZV9pbml0Y2FsbCsweDQzLzB4MTYwCiAga2VybmVsX2luaXRfZnJlZWFibGUrMHgxOTEvMHgy MTkKICA/IHJlc3RfaW5pdCsweDgwLzB4ODAKICBrZXJuZWxfaW5pdCsweGUvMHgxNTAKICByZXRf ZnJvbV9mb3JrKzB4MjIvMHgzMAogQ29kZTogZjYgNDYgMjMgMDQgNzQgODYgNGMgODkgZjcgZTgg YWUgNDUgMDEgMDAgNDkgODkgYzcgNGQgODUgZmYgMGYgODUgN2IgZmYgZmYgZmYgMzEgZGIgZWIg MDggNGMgODkgZmYgZTggMTYgNDcgMDEgMDAgNDggOGIgNDQgMjQgMzggPDQ1PiA4YiA2ZSAxNCA0 ZCA2MyA3NiA3NCA0OCA4OSAwNCAyNCAwZiAxZiA0NCAwMCAwMCA0OCA4MyBjNCAwOAogUklQOiBr bWVtX2NhY2hlX2FsbG9jKzB4Y2YvMHgxYzAgUlNQOiBmZmZmOWIxNTAwMDE3YzI4CiBDUjI6IDAw MDAwMDAwMDAwMDAwMTQKCkZpeGVzOiA3YjFhNzRmZGJiOWUgKCJbTkVUTlNdOiBSZWZhY3RvciBm aWIgaW5pdGlhbGl6YXRpb24gc28gaXQgY2FuIGhhbmRsZSBtdWx0aXBsZSBuYW1lc3BhY2VzLiIp CkZpeGVzOiA3ZjliODA1MjliOGEgKCJbSVBWNF06IGZpYiBoYXNofHRyaWUgaW5pdGlhbGl6YXRp b24iKQoKU2lnbmVkLW9mZi1ieTogTWFoZXNoIEJhbmRld2FyIDxtYWhlc2hiQGdvb2dsZS5jb20+ CkFja2VkLWJ5OiAiRXJpYyBXLiBCaWVkZXJtYW4iIDxlYmllZGVybUB4bWlzc2lvbi5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvaXB2NC9maWJfZnJvbnRlbmQuYyB8IDkgKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2ZpYl9m cm9udGVuZC5jIGIvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKaW5kZXggODNlM2VkMjU4NDY3Li4z YWNjODI2MTQ3N2MgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2ZpYl9mcm9udGVuZC5jCisrKyBiL25l dC9pcHY0L2ZpYl9mcm9udGVuZC5jCkBAIC0xMzI3LDEzICsxMzI3LDE0IEBAIHN0YXRpYyBzdHJ1 Y3QgcGVybmV0X29wZXJhdGlvbnMgZmliX25ldF9vcHMgPSB7CiAKIHZvaWQgX19pbml0IGlwX2Zp Yl9pbml0KHZvaWQpCiB7Ci0JcnRubF9yZWdpc3RlcihQRl9JTkVULCBSVE1fTkVXUk9VVEUsIGlu ZXRfcnRtX25ld3JvdXRlLCBOVUxMLCBOVUxMKTsKLQlydG5sX3JlZ2lzdGVyKFBGX0lORVQsIFJU TV9ERUxST1VURSwgaW5ldF9ydG1fZGVscm91dGUsIE5VTEwsIE5VTEwpOwotCXJ0bmxfcmVnaXN0 ZXIoUEZfSU5FVCwgUlRNX0dFVFJPVVRFLCBOVUxMLCBpbmV0X2R1bXBfZmliLCBOVUxMKTsKKwlm aWJfdHJpZV9pbml0KCk7CiAKIAlyZWdpc3Rlcl9wZXJuZXRfc3Vic3lzKCZmaWJfbmV0X29wcyk7 CisKIAlyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoJmZpYl9uZXRkZXZfbm90aWZpZXIpOwog CXJlZ2lzdGVyX2luZXRhZGRyX25vdGlmaWVyKCZmaWJfaW5ldGFkZHJfbm90aWZpZXIpOwogCi0J ZmliX3RyaWVfaW5pdCgpOworCXJ0bmxfcmVnaXN0ZXIoUEZfSU5FVCwgUlRNX05FV1JPVVRFLCBp bmV0X3J0bV9uZXdyb3V0ZSwgTlVMTCwgTlVMTCk7CisJcnRubF9yZWdpc3RlcihQRl9JTkVULCBS VE1fREVMUk9VVEUsIGluZXRfcnRtX2RlbHJvdXRlLCBOVUxMLCBOVUxMKTsKKwlydG5sX3JlZ2lz dGVyKFBGX0lORVQsIFJUTV9HRVRST1VURSwgTlVMTCwgaW5ldF9kdW1wX2ZpYiwgTlVMTCk7CiB9 Ci0tIAoyLjEzLjQKCgpGcm9tIGNlODBiNmU2MWRhYmY3MDVkNmY0YmU5ZDI0YjIxYjg5YTI2NzVm MjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdBTkcgQ29uZyA8eGl5b3Uud2FuZ2Nv bmdAZ21haWwuY29tPgpEYXRlOiBUaHUsIDIwIEp1bCAyMDE3IDExOjI3OjU3IC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAxNi80NV0gcnRuZXRsaW5rOiBhbGxvY2F0ZSBtb3JlIG1lbW9yeSBmb3IKIGRl dl9zZXRfbWFjX2FkZHJlc3MoKQoKWyBVcHN0cmVhbSBjb21taXQgMTUzNzExZjk0MjFiZTVkYmM5 NzNkYzU3YTQxMDlkYzlkNTRjODliMSBdCgp2aXJ0bmV0X3NldF9tYWNfYWRkcmVzcygpIGludGVy cHJldHMgbWFjIGFkZHJlc3MgYXMgc3RydWN0CnNvY2thZGRyLCBidXQgdXBwZXIgbGF5ZXIgb25s eSBhbGxvY2F0ZXMgZGV2LT5hZGRyX2xlbgp3aGljaCBpcyBFVEhfQUxFTiArIHNpemVvZihzYV9m YW1pbHlfdCkgaW4gdGhpcyBjYXNlLgoKV2UgbGFjayBhIHVuaWZpZWQgZGVmaW5pdGlvbiBmb3Ig bWFjIGFkZHJlc3MsIHNvIGp1c3QgZml4CnRoZSB1cHBlciBsYXllciwgdGhpcyBhbHNvIGFsbG93 cyBkcml2ZXJzIHRvIGludGVycHJldCBpdAp0byBzdHJ1Y3Qgc29ja2FkZHIgZnJlZWx5LgoKUmVw b3J0ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTog Q29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9ydG5ldGxpbmsu YyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvcnRuZXRsaW5rLmMgYi9uZXQvY29yZS9ydG5ldGxpbmsu YwppbmRleCAwOTllY2ExNTI0YzAuLjUyYmZlYjYwYzg4NiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUv cnRuZXRsaW5rLmMKKysrIGIvbmV0L2NvcmUvcnRuZXRsaW5rLmMKQEAgLTE5NzcsNyArMTk3Nyw4 IEBAIHN0YXRpYyBpbnQgZG9fc2V0bGluayhjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQlz dHJ1Y3Qgc29ja2FkZHIgKnNhOwogCQlpbnQgbGVuOwogCi0JCWxlbiA9IHNpemVvZihzYV9mYW1p bHlfdCkgKyBkZXYtPmFkZHJfbGVuOworCQlsZW4gPSBzaXplb2Yoc2FfZmFtaWx5X3QpICsgbWF4 X3Qoc2l6ZV90LCBkZXYtPmFkZHJfbGVuLAorCQkJCQkJICBzaXplb2YoKnNhKSk7CiAJCXNhID0g a21hbGxvYyhsZW4sIEdGUF9LRVJORUwpOwogCQlpZiAoIXNhKSB7CiAJCQllcnIgPSAtRU5PTUVN OwotLSAKMi4xMy40CgoKRnJvbSA3ZTVjY2FjOTE5ZWE4MjVkMjQ0MWM4YjVkNGM0MjFkYjBlNGE2 Y2E4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLb3N1a2UgVGF0c3VrYXdhIDx0YXRz dUBhYi5qcC5uZWMuY29tPgpEYXRlOiBUaHUsIDIwIEp1bCAyMDE3IDA1OjIwOjQwICswMDAwClN1 YmplY3Q6IFtQQVRDSCAxNy80NV0gbmV0OiBib25kaW5nOiBGaXggdHJhbnNtaXQgbG9hZCBiYWxh bmNpbmcgaW4KIGJhbGFuY2UtYWxiIG1vZGUKClsgVXBzdHJlYW0gY29tbWl0IGNiZjVlY2IzMDU2 MDFkMDYzZGM5NGE1NzY4MGRmYmMzZjk2YzE4OGQgXQoKYmFsYW5jZS1hbGIgbW9kZSB1c2VkIHRv IGhhdmUgdHJhbnNtaXQgZHluYW1pYyBsb2FkIGJhbGFuY2luZyBmZWF0dXJlCmVuYWJsZWQgYnkg ZGVmYXVsdC4gIEhvd2V2ZXIsIHRyYW5zbWl0IGR5bmFtaWMgbG9hZCBiYWxhbmNpbmcgbm8gbG9u Z2VyCndvcmtzIGluIGJhbGFuY2UtYWxiIGFmdGVyIGNvbW1pdCA4YjQyNmRjNTRjZjQgKCJib25k aW5nOiByZW1vdmUKaGFyZGNvZGVkIHZhbHVlIikuCgpCb3RoIGJhbGFuY2UtdGxiIGFuZCBiYWxh bmNlLWFsYiB1c2UgdGhlIGZ1bmN0aW9uIGJvbmRfZG9fYWxiX3htaXQoKSB0bwpzZW5kIHBhY2tl dHMuICBUaGlzIGZ1bmN0aW9uIHVzZXMgdGhlIHBhcmFtZXRlciB0bGJfZHluYW1pY19sYi4KdGxi X2R5bmFtaWNfbGIgdXNlZCB0byBoYXZlIHRoZSBkZWZhdWx0IHZhbHVlIG9mIDEgZm9yIGJhbGFu Y2UtYWxiLCBidXQKbm93IHRoZSB2YWx1ZSBpcyBzZXQgdG8gMCBleGNlcHQgaW4gYmFsYW5jZS10 bGIuCgpSZS1lbmFibGUgdHJhbnNtaXQgZHlhbm1pYyBsb2FkIGJhbGFuY2luZyBieSBpbml0aWFs aXppbmcgdGxiX2R5bmFtaWNfbGIKZm9yIGJhbGFuY2UtYWxiIHNpbWlsYXIgdG8gYmFsYW5jZS10 bGIuCgpGaXhlczogOGI0MjZkYzU0Y2Y0ICgiYm9uZGluZzogcmVtb3ZlIGhhcmRjb2RlZCB2YWx1 ZSIpClNpZ25lZC1vZmYtYnk6IEtvc3VrZSBUYXRzdWthd2EgPHRhdHN1QGFiLmpwLm5lYy5jb20+ CkFja2VkLWJ5OiBBbmR5IEdvc3BvZGFyZWsgPGFuZHlAZ3JleWhvdXNlLm5ldD4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ib25kaW5nL2Jv bmRfbWFpbi5jIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYwppbmRleCA4YWI2YmRi ZTE2ODIuLjYxOWM2ZjhkODE0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25k X21haW4uYworKysgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jCkBAIC00NTk4LDcg KzQ1OTgsNyBAQCBzdGF0aWMgaW50IGJvbmRfY2hlY2tfcGFyYW1zKHN0cnVjdCBib25kX3BhcmFt cyAqcGFyYW1zKQogCX0KIAlhZF91c2VyX3BvcnRfa2V5ID0gdmFscHRyLT52YWx1ZTsKIAotCWlm IChib25kX21vZGUgPT0gQk9ORF9NT0RFX1RMQikgeworCWlmICgoYm9uZF9tb2RlID09IEJPTkRf TU9ERV9UTEIpIHx8IChib25kX21vZGUgPT0gQk9ORF9NT0RFX0FMQikpIHsKIAkJYm9uZF9vcHRf aW5pdHN0cigmbmV3dmFsLCAiZGVmYXVsdCIpOwogCQl2YWxwdHIgPSBib25kX29wdF9wYXJzZShi b25kX29wdF9nZXQoQk9ORF9PUFRfVExCX0RZTkFNSUNfTEIpLAogCQkJCQkmbmV3dmFsKTsKLS0g CjIuMTMuNAoKCkZyb20gMDFhOTlmY2U1ZjExODU0M2I5NjhlMjcwOGJiNTZlMTVhYzZkMDk4MiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGhvbWFzIEphcm9zY2ggPHRob21hcy5qYXJv c2NoQGludHJhMm5ldC5jb20+CkRhdGU6IFNhdCwgMjIgSnVsIDIwMTcgMTc6MTQ6MzQgKzAyMDAK U3ViamVjdDogW1BBVENIIDE4LzQ1XSBtY3M3NzgwOiBGaXggaW5pdGlhbGl6YXRpb24gd2hlbiBD T05GSUdfVk1BUF9TVEFDSyBpcwogZW5hYmxlZAoKWyBVcHN0cmVhbSBjb21taXQgOTQ3NmQzOTM2 Njc5NjhiNGEwMmFmYmU5ZDM1YTM1NTg0ODJiOTQzZSBdCgpETUEgdHJhbnNmZXJzIGFyZSBub3Qg YWxsb3dlZCB0byBidWZmZXJzIHRoYXQgYXJlIG9uIHRoZSBzdGFjay4KVGhlcmVmb3JlIGFsbG9j YXRlIGEgYnVmZmVyIHRvIHN0b3JlIHRoZSByZXN1bHQgb2YgdXNiX2NvbnRyb2xfbWVzc2FnZSgp LgoKRml4ZXMgdGhlc2UgYnVncmVwb3J0czoKaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3No b3dfYnVnLmNnaT9pZD0xOTUyMTcKCmh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1 Zy5jZ2k/aWQ9MTQyMTM4NwpodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dp P2lkPTE0MjczOTgKClNob3J0ZW5lZCBrZXJuZWwgYmFja3RyYWNlIGZyb20gNC4xMS45LTIwMC5m YzI1Lng4Nl82NDoKa2VybmVsOiAtLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0K a2VybmVsOiBXQVJOSU5HOiBDUFU6IDMgUElEOiAyOTU3IGF0IGRyaXZlcnMvdXNiL2NvcmUvaGNk LmM6MTU4NwprZXJuZWw6IHRyYW5zZmVyIGJ1ZmZlciBub3QgZG1hIGNhcGFibGUKa2VybmVsOiBD YWxsIFRyYWNlOgprZXJuZWw6IGR1bXBfc3RhY2srMHg2My8weDg2Cmtlcm5lbDogX193YXJuKzB4 Y2IvMHhmMAprZXJuZWw6IHdhcm5fc2xvd3BhdGhfZm10KzB4NWEvMHg4MAprZXJuZWw6IHVzYl9o Y2RfbWFwX3VyYl9mb3JfZG1hKzB4MzdmLzB4NTcwCmtlcm5lbDogPyB0cnlfdG9fZGVsX3RpbWVy X3N5bmMrMHg1My8weDgwCmtlcm5lbDogdXNiX2hjZF9zdWJtaXRfdXJiKzB4MzRlLzB4YjkwCmtl cm5lbDogPyBzY2hlZHVsZV90aW1lb3V0KzB4MTdlLzB4MzAwCmtlcm5lbDogPyBkZWxfdGltZXJf c3luYysweDUwLzB4NTAKa2VybmVsOiA/IF9fc2xhYl9mcmVlKzB4YTkvMHgzMDAKa2VybmVsOiB1 c2Jfc3VibWl0X3VyYisweDJmNC8weDU2MAprZXJuZWw6ID8gdXJiX2Rlc3Ryb3krMHgyNC8weDMw Cmtlcm5lbDogdXNiX3N0YXJ0X3dhaXRfdXJiKzB4NmUvMHgxNzAKa2VybmVsOiB1c2JfY29udHJv bF9tc2crMHhkYy8weDEyMAprZXJuZWw6IG1jc19nZXRfcmVnKzB4MzYvMHg0MCBbbWNzNzc4MF0K a2VybmVsOiBtY3NfbmV0X29wZW4rMHhiNS8weDVjMCBbbWNzNzc4MF0KLi4uCgpSZWdyZXNzaW9u IGdvZXMgYmFjayB0byA0LjksIHNvIGl0J3MgYSBnb29kIGNhbmRpZGF0ZSBmb3IgLXN0YWJsZS4K VGhvdWdoIGl0J3MgdGhlIGRlY2lzaW9uIG9mIHRoZSBtYWludGFpbmVyLgoKVGhhbmtzIHRvIERh biBXaWxsaWFtcyBmb3IgYWRkaW5nIHRoZSAidHJhbnNmZXIgYnVmZmVyIG5vdCBkbWEgY2FwYWJs ZSIKd2FybmluZyBpbiB0aGUgZmlyc3QgcGxhY2UuIEl0IGluc3RhbnRseSBwb2ludGVkIG1lIGlu IHRoZSByaWdodCBkaXJlY3Rpb24uCgpQYXRjaCBoYXMgYmVlbiB0ZXN0ZWQgd2l0aCB0cmFuc2Zl cnJpbmcgZGF0YSBmcm9tIGEgUG9sYXIgd2F0Y2guCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgSmFy b3NjaCA8dGhvbWFzLmphcm9zY2hAaW50cmEybmV0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2lyZGEvbWNz Nzc4MC5jIHwgMTYgKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXJkYS9tY3M3 NzgwLmMgYi9kcml2ZXJzL25ldC9pcmRhL21jczc3ODAuYwppbmRleCA2ZjZlZDc1YjYzYzkuLjc2 NWRlM2JlZGI4OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXJkYS9tY3M3NzgwLmMKKysrIGIv ZHJpdmVycy9uZXQvaXJkYS9tY3M3NzgwLmMKQEAgLTE0MSw5ICsxNDEsMTkgQEAgc3RhdGljIGlu dCBtY3Nfc2V0X3JlZyhzdHJ1Y3QgbWNzX2NiICptY3MsIF9fdTE2IHJlZywgX191MTYgdmFsKQog c3RhdGljIGludCBtY3NfZ2V0X3JlZyhzdHJ1Y3QgbWNzX2NiICptY3MsIF9fdTE2IHJlZywgX191 MTYgKiB2YWwpCiB7CiAJc3RydWN0IHVzYl9kZXZpY2UgKmRldiA9IG1jcy0+dXNiZGV2OwotCWlu dCByZXQgPSB1c2JfY29udHJvbF9tc2coZGV2LCB1c2JfcmN2Y3RybHBpcGUoZGV2LCAwKSwgTUNT X1JEUkVRLAotCQkJCSAgTUNTX1JEX1JUWVBFLCAwLCByZWcsIHZhbCwgMiwKLQkJCQkgIG1zZWNz X3RvX2ppZmZpZXMoTUNTX0NUUkxfVElNRU9VVCkpOworCXZvaWQgKmRtYWJ1ZjsKKwlpbnQgcmV0 OworCisJZG1hYnVmID0ga21hbGxvYyhzaXplb2YoX191MTYpLCBHRlBfS0VSTkVMKTsKKwlpZiAo IWRtYWJ1ZikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyZXQgPSB1c2JfY29udHJvbF9tc2coZGV2 LCB1c2JfcmN2Y3RybHBpcGUoZGV2LCAwKSwgTUNTX1JEUkVRLAorCQkJICAgICAgTUNTX1JEX1JU WVBFLCAwLCByZWcsIGRtYWJ1ZiwgMiwKKwkJCSAgICAgIG1zZWNzX3RvX2ppZmZpZXMoTUNTX0NU UkxfVElNRU9VVCkpOworCisJbWVtY3B5KHZhbCwgZG1hYnVmLCBzaXplb2YoX191MTYpKTsKKwlr ZnJlZShkbWFidWYpOwogCiAJcmV0dXJuIHJldDsKIH0KLS0gCjIuMTMuNAoKCkZyb20gMjBmMmQy MzMxYTk1MTgzMjM3ZTdiNTFkMTU3YWMwYTdjNzhkMzM0MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogTGlwaW5nIFpoYW5nIDx6bHBub2JvZHlAZ21haWwuY29tPgpEYXRlOiBTdW4sIDIz IEp1bCAyMDE3IDE3OjUyOjIzICswODAwClN1YmplY3Q6IFtQQVRDSCAxOS80NV0gb3BlbnZzd2l0 Y2g6IGZpeCBwb3RlbnRpYWwgb3V0IG9mIGJvdW5kIGFjY2VzcyBpbgogcGFyc2VfY3QKClsgVXBz dHJlYW0gY29tbWl0IDY5ZWM5MzJlMzY0YjFiYTljM2EyMDg1ZmU5NmI3NmM4YTNmNzFlN2MgXQoK QmVmb3JlIHRoZSAndHlwZScgaXMgdmFsaWRhdGVkLCB3ZSBzaG91bGRuJ3QgdXNlIGl0IHRvIGZl dGNoIHRoZQpvdnNfY3RfYXR0cl9sZW5zJ3MgbWlubGVuIGFuZCBtYXhsZW4sIGVsc2UsIG91dCBv ZiBib3VuZCBhY2Nlc3MKbWF5IGhhcHBlbi4KCkZpeGVzOiA3ZjhhNDM2ZWFhMmMgKCJvcGVudnN3 aXRjaDogQWRkIGNvbm50cmFjayBhY3Rpb24iKQpTaWduZWQtb2ZmLWJ5OiBMaXBpbmcgWmhhbmcg PHpscG5vYm9keUBnbWFpbC5jb20+CkFja2VkLWJ5OiBQcmF2aW4gQiBTaGVsYXIgPHBzaGVsYXJA b3ZuLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9vcGVudnN3aXRjaC9jb25udHJhY2suYyB8IDcgKysrKystLQogMSBmaWxl IGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9u ZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMgYi9uZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMK aW5kZXggMDg2NzllYmIzMDY4Li5iM2JmNjZiYmY0ZGMgMTAwNjQ0Ci0tLSBhL25ldC9vcGVudnN3 aXRjaC9jb25udHJhY2suYworKysgYi9uZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMKQEAgLTEy ODksOCArMTI4OSw4IEBAIHN0YXRpYyBpbnQgcGFyc2VfY3QoY29uc3Qgc3RydWN0IG5sYXR0ciAq YXR0ciwgc3RydWN0IG92c19jb25udHJhY2tfaW5mbyAqaW5mbywKIAogCW5sYV9mb3JfZWFjaF9u ZXN0ZWQoYSwgYXR0ciwgcmVtKSB7CiAJCWludCB0eXBlID0gbmxhX3R5cGUoYSk7Ci0JCWludCBt YXhsZW4gPSBvdnNfY3RfYXR0cl9sZW5zW3R5cGVdLm1heGxlbjsKLQkJaW50IG1pbmxlbiA9IG92 c19jdF9hdHRyX2xlbnNbdHlwZV0ubWlubGVuOworCQlpbnQgbWF4bGVuOworCQlpbnQgbWlubGVu OwogCiAJCWlmICh0eXBlID4gT1ZTX0NUX0FUVFJfTUFYKSB7CiAJCQlPVlNfTkxFUlIobG9nLApA QCAtMTI5OCw2ICsxMjk4LDkgQEAgc3RhdGljIGludCBwYXJzZV9jdChjb25zdCBzdHJ1Y3Qgbmxh dHRyICphdHRyLCBzdHJ1Y3Qgb3ZzX2Nvbm50cmFja19pbmZvICppbmZvLAogCQkJCSAgdHlwZSwg T1ZTX0NUX0FUVFJfTUFYKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9CisKKwkJbWF4bGVuID0g b3ZzX2N0X2F0dHJfbGVuc1t0eXBlXS5tYXhsZW47CisJCW1pbmxlbiA9IG92c19jdF9hdHRyX2xl bnNbdHlwZV0ubWlubGVuOwogCQlpZiAobmxhX2xlbihhKSA8IG1pbmxlbiB8fCBubGFfbGVuKGEp ID4gbWF4bGVuKSB7CiAJCQlPVlNfTkxFUlIobG9nLAogCQkJCSAgIkNvbm50cmFjayBhdHRyIHR5 cGUgaGFzIHVuZXhwZWN0ZWQgbGVuZ3RoICh0eXBlPSVkLCBsZW5ndGg9JWQsIGV4cGVjdGVkPSVk KSIsCi0tIAoyLjEzLjQKCgpGcm9tIDdkNmNmMzM1NjkzMDAyZmNiMTM2MjRjYzgxYTIwZThiYTc5 Y2IwMzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdBTkcgQ29uZyA8eGl5b3Uud2Fu Z2NvbmdAZ21haWwuY29tPgpEYXRlOiBNb24sIDI0IEp1bCAyMDE3IDEwOjA3OjMyIC0wNzAwClN1 YmplY3Q6IFtQQVRDSCAyMC80NV0gcGFja2V0OiBmaXggdXNlLWFmdGVyLWZyZWUgaW4KIHByYl9y ZXRpcmVfcnhfYmxrX3RpbWVyX2V4cGlyZWQoKQoKWyBVcHN0cmVhbSBjb21taXQgYzgwMGFhZjhk ODY5ZjJiOWI0N2IxMGM1YzMxMmZlMTlmMGE5NDA0MiBdCgpUaGVyZSBhcmUgbXVsdGlwbGUgcmVw b3J0cyBzaG93aW5nIHdlIGhhdmUgYSB1c2UtYWZ0ZXItZnJlZSBpbgp0aGUgdGltZXIgcHJiX3Jl dGlyZV9yeF9ibGtfdGltZXJfZXhwaXJlZCgpLCB3aGVyZSB3ZSB1c2Ugc3RydWN0CnRwYWNrZXRf a2JkcV9jb3JlOjpwa2JkcSwgYSBwZ192ZWMsIGFmdGVyIGl0IGdldHMgZnJlZWQgYnkKZnJlZV9w Z192ZWMoKS4KClRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIGl0IGlzIG5vdCBmcmVlZCB2aWEgcGFj a2V0X3JlbGVhc2UoKSBidXQKdmlhIHBhY2tldF9zZXRzb2Nrb3B0KCksIHdoaWNoIG1lYW5zIHdl IGFyZSBub3QgY2xvc2luZyB0aGUgc29ja2V0LgpMb29raW5nIGludG8gdGhlIGJpZyBhbmQgZmF0 IGZ1bmN0aW9uIHBhY2tldF9zZXRfcmluZygpLCB0aGlzIGNvdWxkCmhhcHBlbiBpZiB3ZSBzYXRp c2Z5IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCjEuIGNsb3NpbmcgPT0gMCwgbm90IG9uIHBh Y2tldF9yZWxlYXNlKCkgcGF0aAoyLiByZXEtPnRwX2Jsb2NrX25yID09IDAsIHdlIGRvbid0IGFs bG9jYXRlIGEgbmV3IHBnX3ZlYwozLiByeF9yaW5nLT5wZ192ZWMgaXMgYWxyZWFkeSBzZXQgYXMg VjMsIHdoaWNoIG1lYW5zIHdlIGFscmVhZHkgY2FsbGVkCiAgIHBhY2tldF9zZXRfcmluZygpIHd0 aWggcmVxLT50cF9ibG9ja19uciA+IDAgcHJldmlvdXNseQo0LiByZXEtPnRwX2ZyYW1lX25yID09 IDAsIHBhc3Mgc2FuaXR5IGNoZWNrCjUuIHBvLT5tYXBwZWQgPT0gMCwgbmV2ZXIgY2FsbGVkIG1t YXAoKQoKSW4gdGhpcyBzY2VuYXJpbyB3ZSBhcmUgY2xlYXJpbmcgdGhlIG9sZCByeF9yaW5nLT5w Z192ZWMsIHNvIHdlIG5lZWQKdG8gZnJlZSB0aGlzIHBnX3ZlYywgYnV0IHdlIGRvbid0IHN0b3Ag dGhlIHRpbWVyIG9uIHRoaXMgcGF0aCBiZWNhdXNlCm9mIGNsb3Npbmc9PTAuCgpUaGUgdGltZXIg aGFzIHRvIGJlIHN0b3BwZWQgYXMgbG9uZyBhcyB3ZSBuZWVkIHRvIGZyZWUgcGdfdmVjLCB0aGVy ZWZvcmUKdGhlIGNoZWNrIG9uIGNsb3NpbmchPTAgaXMgd3JvbmcsIHdlIHNob3VsZCBjaGVjayBw Z192ZWMhPU5VTEwgaW5zdGVhZC4KClRoYW5rcyB0byBsaXVqaWFuIGZvciB0ZXN0aW5nIGRpZmZl cmVudCBmaXhlcy4KClJlcG9ydGVkLWJ5OiBhbGV4YW5kZXIubGV2aW5AdmVyaXpvbi5jb20KUmVw b3J0ZWQtYnk6IERhdmUgSm9uZXMgPGRhdmVqQGNvZGVtb25rZXkub3JnLnVrPgpSZXBvcnRlZC1i eTogbGl1amlhbiAoQ0UpIDxsaXVqaWFuNTZAaHVhd2VpLmNvbT4KVGVzdGVkLWJ5OiBsaXVqaWFu IChDRSkgPGxpdWppYW41NkBodWF3ZWkuY29tPgpDYzogRGluZyBUaWFuaG9uZyA8ZGluZ3RpYW5o b25nQGh1YXdlaS5jb20+CkNjOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1kZWJydWlqbi5rZXJu ZWxAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdt YWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9wYWNrZXQvYWZfcGFja2V0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2Fm X3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRleCBlM2VlZWQxOWNjN2EuLjA4 ODBlMGE5ZDE1MSAxMDA2NDQKLS0tIGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYworKysgYi9uZXQv cGFja2V0L2FmX3BhY2tldC5jCkBAIC00MzM0LDcgKzQzMzQsNyBAQCBzdGF0aWMgaW50IHBhY2tl dF9zZXRfcmluZyhzdHJ1Y3Qgc29jayAqc2ssIHVuaW9uIHRwYWNrZXRfcmVxX3UgKnJlcV91LAog CQlyZWdpc3Rlcl9wcm90X2hvb2soc2spOwogCX0KIAlzcGluX3VubG9jaygmcG8tPmJpbmRfbG9j ayk7Ci0JaWYgKGNsb3NpbmcgJiYgKHBvLT50cF92ZXJzaW9uID4gVFBBQ0tFVF9WMikpIHsKKwlp ZiAocGdfdmVjICYmIChwby0+dHBfdmVyc2lvbiA+IFRQQUNLRVRfVjIpKSB7CiAJCS8qIEJlY2F1 c2Ugd2UgZG9uJ3Qgc3VwcG9ydCBibG9jay1iYXNlZCBWMyBvbiB0eC1yaW5nICovCiAJCWlmICgh dHhfcmluZykKIAkJCXByYl9zaHV0ZG93bl9yZXRpcmVfYmxrX3RpbWVyKHBvLCByYl9xdWV1ZSk7 Ci0tIAoyLjEzLjQKCgpGcm9tIGFmZWZhZGNkMzlmOWQ2MmU1ZTNhYTg5MzgxZjRjZjk4MDNmODQ1 ODYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbm8gQnJpdmlvIDxzYnJpdmlv QHJlZGhhdC5jb20+CkRhdGU6IE1vbiwgMjQgSnVsIDIwMTcgMjM6MTQ6MjggKzAyMDAKU3ViamVj dDogW1BBVENIIDIxLzQ1XSBpcHY2OiBEb24ndCBpbmNyZWFzZSBJUFNUQVRTX01JQl9GUkFHRkFJ TFMgdHdpY2UgaW4KIGlwNl9mcmFnbWVudCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBhZmNlNjE1YWFh YmZiYWFkMDI1NTBlNzVjMGJlYzEwNmRhZmExYWRmIF0KClJGQyAyNDY1IGRlZmluZXMgaXB2Nklm U3RhdHNPdXRGcmFnRmFpbHMgYXM6CgoJIlRoZSBudW1iZXIgb2YgSVB2NiBkYXRhZ3JhbXMgdGhh dCBoYXZlIGJlZW4gZGlzY2FyZGVkCgkgYmVjYXVzZSB0aGV5IG5lZWRlZCB0byBiZSBmcmFnbWVu dGVkIGF0IHRoaXMgb3V0cHV0CgkgaW50ZXJmYWNlIGJ1dCBjb3VsZCBub3QgYmUuIgoKVGhlIGV4 aXN0aW5nIGltcGxlbWVudGF0aW9uLCBpbnN0ZWFkLCB3b3VsZCBpbmNyZWFzZSB0aGUgY291bnRl cgp0d2ljZSBpbiBjYXNlIHdlIGZhaWwgdG8gYWxsb2NhdGUgcm9vbSBmb3Igc2luZ2xlIGZyYWdt ZW50czoKb25jZSBmb3IgdGhlIGZyYWdtZW50LCBvbmNlIGZvciB0aGUgZGF0YWdyYW0uCgpUaGlz IGRpZG4ndCBsb29rIGludGVudGlvbmFsIHRob3VnaC4gSW4gb25lIG9mIHRoZSB0d28gYWZmZWN0 ZWQKYWZmZWN0ZWQgZmFpbHVyZSBwYXRocywgdGhlIGRvdWJsZSBpbmNyZWFzZSB3YXMgc2ltcGx5 IGEgcmVzdWx0Cm9mIGEgbmV3ICdnb3RvIGZhaWwnIHN0YXRlbWVudCwgaW50cm9kdWNlZCB0byBh dm9pZCBhIHNrYiBsZWFrLgpUaGUgb3RoZXIgcGF0aCBhcHBlYXJzIHRvIGJlIGFmZmVjdGVkIHNp bmNlIGF0IGxlYXN0IDIuNi4xMi1yYzIuCgpSZXBvcnRlZC1ieTogU2FicmluYSBEdWJyb2NhIDxz ZHVicm9jYUByZWRoYXQuY29tPgpGaXhlczogMWQzMjVkMjE3YzdmICgiaXB2NjogaXA2X2ZyYWdt ZW50OiBmaXggaGVhZHJvb20gdGVzdHMgYW5kIHNrYiBsZWFrIikKU2lnbmVkLW9mZi1ieTogU3Rl ZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9vdXRwdXQuYyB8 IDQgLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvaXA2X291dHB1dC5jIGIvbmV0L2lwdjYvaXA2X291dHB1dC5jCmluZGV4IDE2OTlhY2Iy ZmEyYy4uYmUwMzA2Nzc4OTM4IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKKysr IGIvbmV0L2lwdjYvaXA2X291dHB1dC5jCkBAIC02NzMsOCArNjczLDYgQEAgaW50IGlwNl9mcmFn bWVudChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNr YiwKIAkJKnByZXZoZHIgPSBORVhUSERSX0ZSQUdNRU5UOwogCQl0bXBfaGRyID0ga21lbWR1cChz a2JfbmV0d29ya19oZWFkZXIoc2tiKSwgaGxlbiwgR0ZQX0FUT01JQyk7CiAJCWlmICghdG1wX2hk cikgewotCQkJSVA2X0lOQ19TVEFUUyhuZXQsIGlwNl9kc3RfaWRldihza2JfZHN0KHNrYikpLAot CQkJCSAgICAgIElQU1RBVFNfTUlCX0ZSQUdGQUlMUyk7CiAJCQllcnIgPSAtRU5PTUVNOwogCQkJ Z290byBmYWlsOwogCQl9CkBAIC03OTMsOCArNzkxLDYgQEAgaW50IGlwNl9mcmFnbWVudChzdHJ1 Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJZnJh ZyA9IGFsbG9jX3NrYihsZW4gKyBobGVuICsgc2l6ZW9mKHN0cnVjdCBmcmFnX2hkcikgKwogCQkJ CSBocm9vbSArIHRyb29tLCBHRlBfQVRPTUlDKTsKIAkJaWYgKCFmcmFnKSB7Ci0JCQlJUDZfSU5D X1NUQVRTKG5ldCwgaXA2X2RzdF9pZGV2KHNrYl9kc3Qoc2tiKSksCi0JCQkJICAgICAgSVBTVEFU U19NSUJfRlJBR0ZBSUxTKTsKIAkJCWVyciA9IC1FTk9NRU07CiAJCQlnb3RvIGZhaWw7CiAJCX0K LS0gCjIuMTMuNAoKCkZyb20gZmMyNzNmMWY4ZGZhY2JjODc2MjM3MDM2Zjc0MmEwOWEzZGZjNWU2 YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyYyBHb256YWxleiA8bWFyY19nb256 YWxlekBzaWdtYWRlc2lnbnMuY29tPgpEYXRlOiBUdWUsIDI1IEp1bCAyMDE3IDE0OjM1OjAzICsw MjAwClN1YmplY3Q6IFtQQVRDSCAyMi80NV0gbmV0OiBldGhlcm5ldDogbmI4ODAwOiBIYW5kbGUg YWxsIDQgUkdNSUkgbW9kZXMKIGlkZW50aWNhbGx5CgpbIFVwc3RyZWFtIGNvbW1pdCA0ODEzNDk3 YjUzN2M2MjA4YzkwZDZjYmVjYWM1MDcyZDM0N2RlOTAwIF0KCkJlZm9yZSBjb21taXQgYmY4ZjY5 NTJhMjMzICgiQWRkIGJsdXJiIGFib3V0IFJHTUlJIikgaXQgd2FzIHVuY2xlYXIKd2hvc2UgcmVz cG9uc2liaWxpdHkgaXQgd2FzIHRvIGluc2VydCB0aGUgcmVxdWlyZWQgY2xvY2sgc2tldywgYW5k CmluIGhpbmRzaWdodCwgc29tZSBQSFkgZHJpdmVycyBnb3QgaXQgd3JvbmcuIFRoZSBzb2x1dGlv biBmb3J3YXJkCmlzIHRvIGludHJvZHVjZSBhIG5ldyBwcm9wZXJ0eSwgZXhwbGljaXRseSByZXF1 aXJpbmcgc2tldyBmcm9tIHRoZQpub2RlIHRvIHdoaWNoIGl0IGlzIGF0dGFjaGVkLiBJbiB0aGUg aW50ZXJpbSwgdGhpcyBkcml2ZXIgd2lsbCBoYW5kbGUKYWxsIDQgUkdNSUkgbW9kZXMgaWRlbnRp Y2FsbHkgKG5vIHNrZXcpLgoKRml4ZXM6IDUyZGZjODMwMTI0OCAoIm5ldDogZXRoZXJuZXQ6IGFk ZCBkcml2ZXIgZm9yIEF1cm9yYSBWTFNJIE5CODgwMCBFdGhlcm5ldCBjb250cm9sbGVyIikKU2ln bmVkLW9mZi1ieTogTWFyYyBHb256YWxleiA8bWFyY19nb256YWxlekBzaWdtYWRlc2lnbnMuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYXVyb3JhL25iODgwMC5jIHwgOSArKysrLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXVyb3JhL25iODgwMC5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYXVyb3JhL25iODgwMC5jCmluZGV4IDU3MTFmYmJkNmFlMy4uODc4Y2ZmZDM3ZTFmIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hdXJvcmEvbmI4ODAwLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvYXVyb3JhL25iODgwMC5jCkBAIC02MDksNyArNjA5LDcgQEAgc3Rh dGljIHZvaWQgbmI4ODAwX21hY19jb25maWcoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJbWFj X21vZGUgfD0gSEFMRl9EVVBMRVg7CiAKIAlpZiAoZ2lnYWJpdCkgewotCQlpZiAocHJpdi0+cGh5 X21vZGUgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJKQorCQlpZiAocGh5X2ludGVyZmFjZV9p c19yZ21paShkZXYtPnBoeWRldikpCiAJCQltYWNfbW9kZSB8PSBSR01JSV9NT0RFOwogCiAJCW1h Y19tb2RlIHw9IEdNQUNfTU9ERTsKQEAgLTEyNjgsMTEgKzEyNjgsMTAgQEAgc3RhdGljIGludCBu Yjg4MDBfdGFuZ294X2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJYnJlYWs7CiAKIAlj YXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSToKLQkJcGFkX21vZGUgPSBQQURfTU9ERV9SR01J STsKLQkJYnJlYWs7Ci0KKwljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9JRDoKKwljYXNl IFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9SWElEOgogCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RF X1JHTUlJX1RYSUQ6Ci0JCXBhZF9tb2RlID0gUEFEX01PREVfUkdNSUkgfCBQQURfTU9ERV9HVFhf Q0xLX0RFTEFZOworCQlwYWRfbW9kZSA9IFBBRF9NT0RFX1JHTUlJOwogCQlicmVhazsKIAogCWRl ZmF1bHQ6Ci0tIAoyLjEzLjQKCgpGcm9tIGY4MzY2Njc4YTE4ZTVlYzA1MTIzMmI2NDQyNzg3ZWZj NTViZjRjYzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdBTkcgQ29uZyA8eGl5b3Uu d2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI1IEp1bCAyMDE3IDA5OjQ0OjI1IC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAyMy80NV0gYm9uZGluZzogY29tbWl0IGxpbmsgc3RhdHVzIGNoYW5n ZSBhZnRlciBwcm9wb3NlCgpbIFVwc3RyZWFtIGNvbW1pdCBkOTQ3MDhhNTUzMDIyYmYwMTJmYTk1 YWYxMDUzMmExMzRlZWI1YTUyIF0KCkNvbW1pdCBkZTc3ZWNkNGVmMDIgKCJib25kaW5nOiBpbXBy b3ZlIGxpbmstc3RhdHVzIHVwZGF0ZSBpbiBtaWktbW9uaXRvcmluZyIpCm1vdmVzIGxpbmsgc3Rh dHVzIGNvbW1pdG1lbnQgaW50byBib25kX21paV9tb25pdG9yKCksIGJ1dCBpdCBzdGlsbCByZWxp ZXMKb24gdGhlIHJldHVybiB2YWx1ZSBvZiBib25kX21paW1vbl9pbnNwZWN0KCkgYXMgdGhlIGhp bnQuIFdlIG5lZWQgdG8gcmV0dXJuCm5vbi16ZXJvIGFzIGxvbmcgYXMgd2UgcHJvcG9zZSBhIGxp bmsgc3RhdHVzIGNoYW5nZS4KCkZpeGVzOiBkZTc3ZWNkNGVmMDIgKCJib25kaW5nOiBpbXByb3Zl IGxpbmstc3RhdHVzIHVwZGF0ZSBpbiBtaWktbW9uaXRvcmluZyIpClJlcG9ydGVkLWJ5OiBCZW5q YW1pbiBHaWxiZXJ0IDxiZW5qYW1pbi5naWxiZXJ0QGNvcmVvcy5jb20+ClRlc3RlZC1ieTogQmVu amFtaW4gR2lsYmVydCA8YmVuamFtaW4uZ2lsYmVydEBjb3Jlb3MuY29tPgpDYzogTWFoZXNoIEJh bmRld2FyIDxtYWhlc2hiQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5 b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpBY2tlZC1ieTogTWFoZXNoIEJhbmRld2FyIDxtYWhlc2hi QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jIHwgMiArKwogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2Jv bmRpbmcvYm9uZF9tYWluLmMgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jCmluZGV4 IDYxOWM2ZjhkODE0Mi4uMjI0ZTkzYWE2ZDIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ib25k aW5nL2JvbmRfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKQEAg LTIwNDcsNiArMjA0Nyw3IEBAIHN0YXRpYyBpbnQgYm9uZF9taWltb25faW5zcGVjdChzdHJ1Y3Qg Ym9uZGluZyAqYm9uZCkKIAkJCQljb250aW51ZTsKIAogCQkJYm9uZF9wcm9wb3NlX2xpbmtfc3Rh dGUoc2xhdmUsIEJPTkRfTElOS19GQUlMKTsKKwkJCWNvbW1pdCsrOwogCQkJc2xhdmUtPmRlbGF5 ID0gYm9uZC0+cGFyYW1zLmRvd25kZWxheTsKIAkJCWlmIChzbGF2ZS0+ZGVsYXkpIHsKIAkJCQlu ZXRkZXZfaW5mbyhib25kLT5kZXYsICJsaW5rIHN0YXR1cyBkb3duIGZvciAlc2ludGVyZmFjZSAl cywgZGlzYWJsaW5nIGl0IGluICVkIG1zXG4iLApAQCAtMjA4NSw2ICsyMDg2LDcgQEAgc3RhdGlj IGludCBib25kX21paW1vbl9pbnNwZWN0KHN0cnVjdCBib25kaW5nICpib25kKQogCQkJCWNvbnRp bnVlOwogCiAJCQlib25kX3Byb3Bvc2VfbGlua19zdGF0ZShzbGF2ZSwgQk9ORF9MSU5LX0JBQ0sp OworCQkJY29tbWl0Kys7CiAJCQlzbGF2ZS0+ZGVsYXkgPSBib25kLT5wYXJhbXMudXBkZWxheTsK IAogCQkJaWYgKHNsYXZlLT5kZWxheSkgewotLSAKMi4xMy40CgoKRnJvbSA0NjQ4MjA1ODU3N2Yy ZTkwMmM3MzQ2ZDgzODk1OWNiMjI1NWJmNTI3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjYgSnVsIDIwMTcg MTQ6MTk6MDkgKzA4MDAKU3ViamVjdDogW1BBVENIIDI0LzQ1XSBkY2NwOiBmaXggYSBtZW1sZWFr IHRoYXQgZGNjcF9pcHY2IGRvZXNuJ3QgcHV0IHJlcXNrCiBwcm9wZXJseQoKWyBVcHN0cmVhbSBj b21taXQgMGMyMjMyYjBhNzFkYjBhYzFkMjJmNzUxYWExYWMwY2FkYjk1MGZkMiBdCgpJbiBkY2Nw X3Y2X2Nvbm5fcmVxdWVzdCwgYWZ0ZXIgcmVxc2sgZ2V0cyBhbGxvY2VkIGFuZCBoYXNoZWQgaW50 bwplaGFzaCB0YWJsZSwgcmVxc2sncyByZWZjbnQgaXMgc2V0IDMuIG9uZSBpcyBmb3IgcmVxLT5y c2tfdGltZXIsCm9uZSBpcyBmb3IgaGxpc3QsIGFuZCB0aGUgb3RoZXIgb25lIGlzIGZvciBjdXJy ZW50IHVzaW5nLgoKVGhlIHByb2JsZW0gaXMgd2hlbiBkY2NwX3Y2X2Nvbm5fcmVxdWVzdCByZXR1 cm5zIGFuZCBmaW5pc2hlcyB1c2luZwpyZXFzaywgaXQgZG9lc24ndCBwdXQgcmVxc2suIFRoaXMg d2lsbCBjYXVzZSByZXFzayByZWZjbnQgbGVha3MgYW5kCnJlcXNrIG9iaiBuZXZlciBnZXRzIGZy ZWVkLgoKSmlhbmxpbiBmb3VuZCB0aGlzIGlzc3VlIHdoZW4gcnVubmluZyBkY2NwX21lbWxlYWsu YyBpbiBhIGxvb3AsIHRoZQpzeXN0ZW0gbWVtb3J5IHdvdWxkIHJ1biBvdXQuCgpkY2NwX21lbWxl YWsuYzoKICBpbnQgczEgPSBzb2NrZXQoUEZfSU5FVDYsIDYsIElQUFJPVE9fSVApOwogIGJpbmQo czEsICZzYTEsIDB4MjApOwogIGxpc3RlbihzMSwgMHg5KTsKICBpbnQgczIgPSBzb2NrZXQoUEZf SU5FVDYsIDYsIElQUFJPVE9fSVApOwogIGNvbm5lY3QoczIsICZzYTEsIDB4MjApOwogIGNsb3Nl KHMxKTsKICBjbG9zZShzMik7CgpUaGlzIHBhdGNoIGlzIHRvIHB1dCB0aGUgcmVxc2sgYmVmb3Jl IGRjY3BfdjZfY29ubl9yZXF1ZXN0IHJldHVybnMsCmp1c3QgYXMgd2hhdCB0Y3BfY29ubl9yZXF1 ZXN0IGRvZXMuCgpSZXBvcnRlZC1ieTogSmlhbmxpbiBTaGkgPGppc2hpQHJlZGhhdC5jb20+ClNp Z25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9kY2NwL2lw djYuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEv bmV0L2RjY3AvaXB2Ni5jIGIvbmV0L2RjY3AvaXB2Ni5jCmluZGV4IDk5MjYyMTE3MjIyMC4uY2Yz ZTQwZGY0NzY1IDEwMDY0NAotLS0gYS9uZXQvZGNjcC9pcHY2LmMKKysrIGIvbmV0L2RjY3AvaXB2 Ni5jCkBAIC0zODAsNiArMzgwLDcgQEAgc3RhdGljIGludCBkY2NwX3Y2X2Nvbm5fcmVxdWVzdChz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJCWdvdG8gZHJvcF9hbmRfZnJl ZTsKIAogCWluZXRfY3NrX3JlcXNrX3F1ZXVlX2hhc2hfYWRkKHNrLCByZXEsIERDQ1BfVElNRU9V VF9JTklUKTsKKwlyZXFza19wdXQocmVxKTsKIAlyZXR1cm4gMDsKIAogZHJvcF9hbmRfZnJlZToK LS0gCjIuMTMuNAoKCkZyb20gZmE0ZmYxMDg3NmEyOThhODg0NzA0MmNlZmZlNzMwNDYxMmQxZTFh ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI2IEp1bCAyMDE3IDE0OjE5OjQ2ICswODAwClN1YmplY3Q6IFtQ QVRDSCAyNS80NV0gZGNjcDogZml4IGEgbWVtbGVhayB0aGF0IGRjY3BfaXB2NCBkb2Vzbid0IHB1 dCByZXFzawogcHJvcGVybHkKClsgVXBzdHJlYW0gY29tbWl0IGI3OTUzZDNjMGUzMGE1ZmM5NDRm NmI3YmQwYmNjZWIwNzk0YmNkODUgXQoKVGhlIHBhdGNoICJkY2NwOiBmaXggYSBtZW1sZWFrIHRo YXQgZGNjcF9pcHY2IGRvZXNuJ3QgcHV0IHJlcXNrCnByb3Blcmx5IiBmaXhlZCByZXFzayByZWZj bnQgbGVhayBmb3IgZGNjcF9pcHY2LiBUaGUgc2FtZSBpc3N1ZQpleGlzdHMgb24gZGNjcF9pcHY0 LgoKVGhpcyBwYXRjaCBpcyB0byBmaXggaXQgZm9yIGRjY3BfaXB2NC4KClNpZ25lZC1vZmYtYnk6 IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9kY2NwL2lwdjQuYyB8IDEgKwog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2RjY3AvaXB2 NC5jIGIvbmV0L2RjY3AvaXB2NC5jCmluZGV4IGY3NTQ4MmJkZWU5YS4uOTczNjhmMjI5ODc2IDEw MDY0NAotLS0gYS9uZXQvZGNjcC9pcHY0LmMKKysrIGIvbmV0L2RjY3AvaXB2NC5jCkBAIC02MzEs NiArNjMxLDcgQEAgaW50IGRjY3BfdjRfY29ubl9yZXF1ZXN0KHN0cnVjdCBzb2NrICpzaywgc3Ry dWN0IHNrX2J1ZmYgKnNrYikKIAkJZ290byBkcm9wX2FuZF9mcmVlOwogCiAJaW5ldF9jc2tfcmVx c2tfcXVldWVfaGFzaF9hZGQoc2ssIHJlcSwgRENDUF9USU1FT1VUX0lOSVQpOworCXJlcXNrX3B1 dChyZXEpOwogCXJldHVybiAwOwogCiBkcm9wX2FuZF9mcmVlOgotLSAKMi4xMy40CgoKRnJvbSBh YTliYmI5OGM5NGQ1YzY1ZmMxNjViODlkNTIyYTZlOWNkNWY4M2U2IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFdlZCwg MjYgSnVsIDIwMTcgMTQ6MjA6MTUgKzA4MDAKU3ViamVjdDogW1BBVENIIDI2LzQ1XSBkY2NwOiBm aXggYSBtZW1sZWFrIGZvciBkY2NwX2ZlYXRfaW5pdCBlcnIgcHJvY2VzcwoKWyBVcHN0cmVhbSBj b21taXQgZTkwY2UyZmMyN2NhZDdlN2IxZTcyYjllNjYyMDFhN2E0YzEyNGMyYiBdCgpJbiBkY2Nw X2ZlYXRfaW5pdCwgd2hlbiBjY2lkX2dldF9idWlsdGluX2NjaWRzIGZhaWxzdG8gYWxsb2MKbWVt b3J5IGZvciByeC52YWwsIGl0IHNob3VsZCBmcmVlIHR4LnZhbCBiZWZvcmUgcmV0dXJuaW5nIGFu CmVycm9yLgoKU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2RjY3AvZmVhdC5jIHwgNyArKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9kY2NwL2ZlYXQuYyBiL25ldC9k Y2NwL2ZlYXQuYwppbmRleCAxNzA0OTQ4ZTZhMTIuLmYyMjdmMDAyYzczZCAxMDA2NDQKLS0tIGEv bmV0L2RjY3AvZmVhdC5jCisrKyBiL25ldC9kY2NwL2ZlYXQuYwpAQCAtMTQ3MSw5ICsxNDcxLDEy IEBAIGludCBkY2NwX2ZlYXRfaW5pdChzdHJ1Y3Qgc29jayAqc2spCiAJICogc2luZ2xldG9uIHZh bHVlcyAod2hpY2ggYWx3YXlzIGxlYWRzIHRvIGZhaWx1cmUpLgogCSAqIFRoZXNlIHNldHRpbmdz IGNhbiBzdGlsbCAobGF0ZXIpIGJlIG92ZXJyaWRkZW4gdmlhIHNvY2tvcHRzLgogCSAqLwotCWlm IChjY2lkX2dldF9idWlsdGluX2NjaWRzKCZ0eC52YWwsICZ0eC5sZW4pIHx8Ci0JICAgIGNjaWRf Z2V0X2J1aWx0aW5fY2NpZHMoJnJ4LnZhbCwgJnJ4LmxlbikpCisJaWYgKGNjaWRfZ2V0X2J1aWx0 aW5fY2NpZHMoJnR4LnZhbCwgJnR4LmxlbikpCiAJCXJldHVybiAtRU5PQlVGUzsKKwlpZiAoY2Np ZF9nZXRfYnVpbHRpbl9jY2lkcygmcngudmFsLCAmcngubGVuKSkgeworCQlrZnJlZSh0eC52YWwp OworCQlyZXR1cm4gLUVOT0JVRlM7CisJfQogCiAJaWYgKCFkY2NwX2ZlYXRfcHJlZmVyKHN5c2N0 bF9kY2NwX3R4X2NjaWQsIHR4LnZhbCwgdHgubGVuKSB8fAogCSAgICAhZGNjcF9mZWF0X3ByZWZl cihzeXNjdGxfZGNjcF9yeF9jY2lkLCByeC52YWwsIHJ4LmxlbikpCi0tIAoyLjEzLjQKCgpGcm9t IDkzYjdjNzMxMzU3YjJmMzA0ZGNmMWZkNWM1ZmNlYzEwYWU1NGU2ZDEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEF2aXYgSGVsbGVyIDxhdml2aEBtZWxsYW5veC5jb20+CkRhdGU6IFN1 biwgMiBKdWwgMjAxNyAxOToxMzo0MyArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjcvNDVdIG5ldC9t bHg1OiBDb25zaWRlciB0eF9lbmFibGVkIGluIGFsbCBtb2RlcyBvbiByZW1hcAoKWyBVcHN0cmVh bSBjb21taXQgZGM3OThiNGNjMGYyYTA2ZTdhZDdkNTIyNDAzZGUyNzRiODZhMGE2ZiBdCgpUaGUg dHhfZW5hYmxlZCBsYWcgZXZlbnQgZmllbGQgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciBh IHNsYXZlIGlzCmFjdGl2ZS4KQ3VycmVudCBsb2dpYyB1c2VzIHRoaXMgdmFsdWUgb25seSBpZiB0 aGUgbW9kZSBpcyBhY3RpdmUtYmFja3VwLgoKSG93ZXZlciwgTEFDUCBtb2RlLCBhbHRob3VnaCBj b25zaWRlcmVkIGEgbG9hZCBiYWxhbmNpbmcgbW9kZSwgY2FuIG1hcmsKYSBzbGF2ZSBhcyBpbmFj dGl2ZSBpbiBjZXJ0YWluIHNpdHVhdGlvbnMgKGUuZy4sIExBQ1AgdGltZW91dCkuCgpUaGlzIGZp eCB0YWtlcyB0aGUgdHhfZW5hYmxlZCB2YWx1ZSBpbnRvIGFjY291bnQgd2hlbiByZW1hcHBpbmcs IHdpdGgKbm8gcmVzcGVjdCB0byB0aGUgTEFHIG1vZGUgKHRoaXMgc2hvdWxkIG5vdCBhZmZlY3Qg dGhlIGJlaGF2aW9yIGluIFhPUgptb2RlLCBzaW5jZSBpbiB0aGlzIG1vZGUgYm90aCBzbGF2ZXMg YXJlIG1hcmtlZCBhcyBhY3RpdmUpLgoKRml4ZXM6IDc5MDdmMjNhZGMxOCAobmV0L21seDU6IElt cGxlbWVudCBSb0NFIExBRyBmZWF0dXJlKQpTaWduZWQtb2ZmLWJ5OiBBdml2IEhlbGxlciA8YXZp dmhAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1l bGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv bGFnLmMgfCAyNSArKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAg aW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2xhZy5jCmluZGV4IGI1ZDU1MTk1NDJlOC4uMGNhNDYyM2JkYTZi IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFn LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy5jCkBA IC0xNTcsMjIgKzE1NywxNyBAQCBzdGF0aWMgYm9vbCBtbHg1X2xhZ19pc19ib25kZWQoc3RydWN0 IG1seDVfbGFnICpsZGV2KQogc3RhdGljIHZvaWQgbWx4NV9pbmZlcl90eF9hZmZpbml0eV9tYXBw aW5nKHN0cnVjdCBsYWdfdHJhY2tlciAqdHJhY2tlciwKIAkJCQkJICAgdTggKnBvcnQxLCB1OCAq cG9ydDIpCiB7Ci0JaWYgKHRyYWNrZXItPnR4X3R5cGUgPT0gTkVUREVWX0xBR19UWF9UWVBFX0FD VElWRUJBQ0tVUCkgewotCQlpZiAodHJhY2tlci0+bmV0ZGV2X3N0YXRlWzBdLnR4X2VuYWJsZWQp IHsKLQkJCSpwb3J0MSA9IDE7Ci0JCQkqcG9ydDIgPSAxOwotCQl9IGVsc2UgewotCQkJKnBvcnQx ID0gMjsKLQkJCSpwb3J0MiA9IDI7Ci0JCX0KLQl9IGVsc2UgewotCQkqcG9ydDEgPSAxOwotCQkq cG9ydDIgPSAyOwotCQlpZiAoIXRyYWNrZXItPm5ldGRldl9zdGF0ZVswXS5saW5rX3VwKQotCQkJ KnBvcnQxID0gMjsKLQkJZWxzZSBpZiAoIXRyYWNrZXItPm5ldGRldl9zdGF0ZVsxXS5saW5rX3Vw KQotCQkJKnBvcnQyID0gMTsKKwkqcG9ydDEgPSAxOworCSpwb3J0MiA9IDI7CisJaWYgKCF0cmFj a2VyLT5uZXRkZXZfc3RhdGVbMF0udHhfZW5hYmxlZCB8fAorCSAgICAhdHJhY2tlci0+bmV0ZGV2 X3N0YXRlWzBdLmxpbmtfdXApIHsKKwkJKnBvcnQxID0gMjsKKwkJcmV0dXJuOwogCX0KKworCWlm ICghdHJhY2tlci0+bmV0ZGV2X3N0YXRlWzFdLnR4X2VuYWJsZWQgfHwKKwkgICAgIXRyYWNrZXIt Pm5ldGRldl9zdGF0ZVsxXS5saW5rX3VwKQorCQkqcG9ydDIgPSAxOwogfQogCiBzdGF0aWMgdm9p ZCBtbHg1X2FjdGl2YXRlX2xhZyhzdHJ1Y3QgbWx4NV9sYWcgKmxkZXYsCi0tIAoyLjEzLjQKCgpG cm9tIDFlMjQ2M2IzNmQ3ZGEwNTUwZjNmZjMxMDU5NjAzMTBmMjY4ZjRjMzAgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IE1vc2hlIFNoZW1lc2ggPG1vc2hlQG1lbGxhbm94LmNvbT4KRGF0 ZTogVGh1LCA2IEp1bCAyMDE3IDE1OjQ4OjQwICswMzAwClN1YmplY3Q6IFtQQVRDSCAyOC80NV0g bmV0L21seDU6IEZpeCBjb21tYW5kIGNvbXBsZXRpb24gYWZ0ZXIgdGltZW91dCBhY2Nlc3MKIGlu dmFsaWQgc3RydWN0dXJlCgpbIFVwc3RyZWFtIGNvbW1pdCAwNjE4NzA4MDBlZmI0ZTNkMWFkNDA4 MmEyNTY5MzYzNjI5YmRmY2ZjIF0KCkNvbXBsZXRpb24gb24gdGltZW91dCBzaG91bGQgbm90IGZy ZWUgdGhlIGRyaXZlciBjb21tYW5kIGVudHJ5IHN0cnVjdHVyZQphcyBpdCB3aWxsIG5lZWQgdG8g YWNjZXNzIGl0IGFnYWluIG9uY2UgcmVhbCBjb21wbGV0aW9uIGV2ZW50IGZyb20gRlcKd2lsbCBv Y2N1ci4KCkZpeGVzOiA3M2RkM2E0ODM5YzEgKCduZXQvbWx4NTogQXZvaWQgdXNpbmcgcGVuZGlu ZyBjb21tYW5kIGludGVyZmFjZSBzbG90cycpClNpZ25lZC1vZmYtYnk6IE1vc2hlIFNoZW1lc2gg PG1vc2hlQG1lbGxhbm94LmNvbT4KQ2M6IGtlcm5lbC10ZWFtQGZiLmNvbQpTaWduZWQtb2ZmLWJ5 OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMgfCA2ICsrKystLQogMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMKaW5kZXggMTBkMjgyODQxZjViLi41MTZlNWQz MTc4ODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9jbWQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21k LmMKQEAgLTk1NSw3ICs5NTUsNyBAQCBzdGF0aWMgaW50IG1seDVfY21kX2ludm9rZShzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICppbiwKIAogCWVyciA9IHdh aXRfZnVuYyhkZXYsIGVudCk7CiAJaWYgKGVyciA9PSAtRVRJTUVET1VUKQotCQlnb3RvIG91dF9m cmVlOworCQlnb3RvIG91dDsKIAogCWRzID0gZW50LT50czIgLSBlbnQtPnRzMTsKIAlvcCA9IE1M WDVfR0VUKG1ib3hfaW4sIGluLT5maXJzdC5kYXRhLCBvcGNvZGUpOwpAQCAtMTQxOSw2ICsxNDE5 LDcgQEAgdm9pZCBtbHg1X2NtZF9jb21wX2hhbmRsZXIoc3RydWN0IG1seDVfY29yZV9kZXYgKmRl diwgdTY0IHZlYywgYm9vbCBmb3JjZWQpCiAJCQkJCW1seDVfY29yZV9lcnIoZGV2LCAiQ29tbWFu ZCBjb21wbGV0aW9uIGFycml2ZWQgYWZ0ZXIgdGltZW91dCAoZW50cnkgaWR4ID0gJWQpLlxuIiwK IAkJCQkJCSAgICAgIGVudC0+aWR4KTsKIAkJCQkJZnJlZV9lbnQoY21kLCBlbnQtPmlkeCk7CisJ CQkJCWZyZWVfY21kKGVudCk7CiAJCQkJfQogCQkJCWNvbnRpbnVlOwogCQkJfQpAQCAtMTQ3Nyw3 ICsxNDc4LDggQEAgdm9pZCBtbHg1X2NtZF9jb21wX2hhbmRsZXIoc3RydWN0IG1seDVfY29yZV9k ZXYgKmRldiwgdTY0IHZlYywgYm9vbCBmb3JjZWQpCiAJCQkJZnJlZV9tc2coZGV2LCBlbnQtPmlu KTsKIAogCQkJCWVyciA9IGVyciA/IGVyciA6IGVudC0+c3RhdHVzOwotCQkJCWZyZWVfY21kKGVu dCk7CisJCQkJaWYgKCFmb3JjZWQpCisJCQkJCWZyZWVfY21kKGVudCk7CiAJCQkJY2FsbGJhY2so ZXJyLCBjb250ZXh0KTsKIAkJCX0gZWxzZSB7CiAJCQkJY29tcGxldGUoJmVudC0+ZG9uZSk7Ci0t IAoyLjEzLjQKCgpGcm9tIDE0NmM5NWJmYjU3Y2ExMDIwYzExMTg1NjljMjZlZWFlNTdiYTQ3Y2Yg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1vc2hlIFNoZW1lc2ggPG1vc2hlQG1lbGxh bm94LmNvbT4KRGF0ZTogU3VuLCAyNSBKdW4gMjAxNyAxODo0NTozMiArMDMwMApTdWJqZWN0OiBb UEFUQ0ggMjkvNDVdIG5ldC9tbHg1OiBGaXggY29tbWFuZCBiYWQgZmxvdyBvbiBjb21tYW5kIGVu dHJ5CiBhbGxvY2F0aW9uIGZhaWx1cmUKClsgVXBzdHJlYW0gY29tbWl0IDIxOWM4MWY3ZDFkNWE4 OTY1NmNiM2I1M2QzYjRlMTFlOTM2MDhkODAgXQoKV2hlbiBkcml2ZXIgZmFpbCB0byBhbGxvY2F0 ZSBhbiBlbnRyeSB0byBzZW5kIGNvbW1hbmQgdG8gRlcsIGl0IG11c3QKbm90aWZ5IHRoZSBjYWxs aW5nIGZ1bmN0aW9uIGFuZCByZWxlYXNlIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGZvcgp0aGlzIGNv bW1hbmQuCgpGaXhlczogZTEyNmJhOTdkYmE5ZSAoJ21seDU6IEFkZCBkcml2ZXIgZm9yIE1lbGxh bm94IENvbm5lY3QtSUIgYWRhcHRlcnMnKQpTaWduZWQtb2ZmLWJ5OiBNb3NoZSBTaGVtZXNoIDxt b3NoZUBtZWxsYW5veC5jb20+CkNjOiBrZXJuZWwtdGVhbUBmYi5jb20KU2lnbmVkLW9mZi1ieTog U2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jIHwgMTkgKysrKysrKysrKysrKysrKystLQog MSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jCmluZGV4IDUxNmU1ZDMx Nzg4NS4uYWMwYTQ2MGMwMDZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvY21kLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2NtZC5jCkBAIC03NzcsNiArNzc3LDEwIEBAIHN0YXRpYyB2b2lkIGNiX3RpbWVv dXRfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJbWx4NV9jbWRfY29tcF9oYW5k bGVyKGRldiwgMVVMIDw8IGVudC0+aWR4LCB0cnVlKTsKIH0KIAorc3RhdGljIHZvaWQgZnJlZV9t c2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKTsK K3N0YXRpYyB2b2lkIG1seDVfZnJlZV9jbWRfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYs CisJCQkgICAgICBzdHJ1Y3QgbWx4NV9jbWRfbXNnICptc2cpOworCiBzdGF0aWMgdm9pZCBjbWRf d29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKIAlzdHJ1Y3QgbWx4NV9j bWRfd29ya19lbnQgKmVudCA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbWx4NV9jbWRfd29y a19lbnQsIHdvcmspOwpAQCAtNzg2LDE2ICs3OTAsMjcgQEAgc3RhdGljIHZvaWQgY21kX3dvcmtf aGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJc3RydWN0IG1seDVfY21kX2xheW91 dCAqbGF5OwogCXN0cnVjdCBzZW1hcGhvcmUgKnNlbTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwor CWludCBhbGxvY19yZXQ7CiAKIAlzZW0gPSBlbnQtPnBhZ2VfcXVldWUgPyAmY21kLT5wYWdlc19z ZW0gOiAmY21kLT5zZW07CiAJZG93bihzZW0pOwogCWlmICghZW50LT5wYWdlX3F1ZXVlKSB7Ci0J CWVudC0+aWR4ID0gYWxsb2NfZW50KGNtZCk7Ci0JCWlmIChlbnQtPmlkeCA8IDApIHsKKwkJYWxs b2NfcmV0ID0gYWxsb2NfZW50KGNtZCk7CisJCWlmIChhbGxvY19yZXQgPCAwKSB7CiAJCQltbHg1 X2NvcmVfZXJyKGRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSBjb21tYW5kIGVudHJ5XG4iKTsKKwkJ CWlmIChlbnQtPmNhbGxiYWNrKSB7CisJCQkJZW50LT5jYWxsYmFjaygtRUFHQUlOLCBlbnQtPmNv bnRleHQpOworCQkJCW1seDVfZnJlZV9jbWRfbXNnKGRldiwgZW50LT5vdXQpOworCQkJCWZyZWVf bXNnKGRldiwgZW50LT5pbik7CisJCQkJZnJlZV9jbWQoZW50KTsKKwkJCX0gZWxzZSB7CisJCQkJ ZW50LT5yZXQgPSAtRUFHQUlOOworCQkJCWNvbXBsZXRlKCZlbnQtPmRvbmUpOworCQkJfQogCQkJ dXAoc2VtKTsKIAkJCXJldHVybjsKIAkJfQorCQllbnQtPmlkeCA9IGFsbG9jX3JldDsKIAl9IGVs c2UgewogCQllbnQtPmlkeCA9IGNtZC0+bWF4X3JlZ19jbWRzOwogCQlzcGluX2xvY2tfaXJxc2F2 ZSgmY21kLT5hbGxvY19sb2NrLCBmbGFncyk7Ci0tIAoyLjEzLjQKCgpGcm9tIGY5MjkwZmQ5NmRi YTYyMGEwMTYyNmJiM2QxYWM0ODc1NTU3ZGJkOWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEFsZXhhbmRlciBQb3RhcGVua28gPGdsaWRlckBnb29nbGUuY29tPgpEYXRlOiBGcmksIDE0 IEp1bCAyMDE3IDE4OjMyOjQ1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMC80NV0gc2N0cDogZG9u J3QgZGVyZWZlcmVuY2UgcHRyIGJlZm9yZSBsZWF2aW5nCiBfc2N0cF93YWxrX3twYXJhbXMsIGVy cm9yc30oKQoKWyBVcHN0cmVhbSBjb21taXQgYjFmNWJmYzI3YTE5ZjIxNDAwNmI5YjRkYjdiOTEy NmRmMmRmZGY1YSBdCgpJZiB0aGUgbGVuZ3RoIGZpZWxkIG9mIHRoZSBpdGVyYXRvciAofHBvcy5w fCBvciB8ZXJyfCkgaXMgcGFzdCB0aGUgZW5kCm9mIHRoZSBjaHVuaywgd2Ugc2hvdWxkbid0IGFj Y2VzcyBpdC4KClRoaXMgYnVnIGhhcyBiZWVuIGRldGVjdGVkIGJ5IEtNU0FOLiBGb3IgdGhlIGZv bGxvd2luZyBwYWlyIG9mIHN5c3RlbQpjYWxsczoKCiAgc29ja2V0KFBGX0lORVQ2LCBTT0NLX1NU UkVBTSwgMHg4NCAvKiBJUFBST1RPXz8/PyAqLykgPSAzCiAgc2VuZHRvKDMsICJBIiwgMSwgTVNH X09PQiwge3NhX2ZhbWlseT1BRl9JTkVUNiwgc2luNl9wb3J0PWh0b25zKDApLAogICAgICAgICBp bmV0X3B0b24oQUZfSU5FVDYsICI6OjEiLCAmc2luNl9hZGRyKSwgc2luNl9mbG93aW5mbz0wLAog ICAgICAgICBzaW42X3Njb3BlX2lkPTB9LCAyOCkgPSAxCgp0aGUgdG9vbCBoYXMgcmVwb3J0ZWQg YSB1c2Ugb2YgdW5pbml0aWFsaXplZCBtZW1vcnk6CgogID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIEJVRzogS01TQU46 IHVzZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSBpbiBzY3RwX3JjdisweDE3YjgvMHg0M2IwCiAg Q1BVOiAxIFBJRDogMjk0MCBDb21tOiBwcm9iZSBOb3QgdGFpbnRlZCA0LjExLjAtcmM1KyAjMjky NgogIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYp LCBCSU9TIEJvY2hzCiAgMDEvMDEvMjAxMQogIENhbGwgVHJhY2U6CiAgIDxJUlE+CiAgIF9fZHVt cF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjE2CiAgIGR1bXBfc3RhY2srMHgxNzIvMHgxYzAgbGli L2R1bXBfc3RhY2suYzo1MgogICBrbXNhbl9yZXBvcnQrMHgxMmEvMHgxODAgbW0va21zYW4va21z YW4uYzo5MjcKICAgX19tc2FuX3dhcm5pbmdfMzIrMHg2MS8weGIwIG1tL2ttc2FuL2ttc2FuX2lu c3RyLmM6NDY5CiAgIF9fc2N0cF9yY3ZfaW5pdF9sb29rdXAgbmV0L3NjdHAvaW5wdXQuYzoxMDc0 CiAgIF9fc2N0cF9yY3ZfbG9va3VwX2hhcmRlciBuZXQvc2N0cC9pbnB1dC5jOjEyMzMKICAgX19z Y3RwX3Jjdl9sb29rdXAgbmV0L3NjdHAvaW5wdXQuYzoxMjU1CiAgIHNjdHBfcmN2KzB4MTdiOC8w eDQzYjAgbmV0L3NjdHAvaW5wdXQuYzoxNzAKICAgc2N0cDZfcmN2KzB4MzIvMHg3MCBuZXQvc2N0 cC9pcHY2LmM6OTg0CiAgIGlwNl9pbnB1dF9maW5pc2grMHg4MmYvMHgxZWUwIG5ldC9pcHY2L2lw Nl9pbnB1dC5jOjI3OQogICBORl9IT09LIC4vaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyNTcK ICAgaXA2X2lucHV0KzB4MjM5LzB4MjkwIG5ldC9pcHY2L2lwNl9pbnB1dC5jOjMyMgogICBkc3Rf aW5wdXQgLi9pbmNsdWRlL25ldC9kc3QuaDo0OTIKICAgaXA2X3Jjdl9maW5pc2ggbmV0L2lwdjYv aXA2X2lucHV0LmM6NjkKICAgTkZfSE9PSyAuL2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MjU3 CiAgIGlwdjZfcmN2KzB4MWRiZC8weDIyZTAgbmV0L2lwdjYvaXA2X2lucHV0LmM6MjAzCiAgIF9f bmV0aWZfcmVjZWl2ZV9za2JfY29yZSsweDJmNmYvMHgzYTIwIG5ldC9jb3JlL2Rldi5jOjQyMDgK ICAgX19uZXRpZl9yZWNlaXZlX3NrYiBuZXQvY29yZS9kZXYuYzo0MjQ2CiAgIHByb2Nlc3NfYmFj a2xvZysweDY2Ny8weGJhMCBuZXQvY29yZS9kZXYuYzo0ODY2CiAgIG5hcGlfcG9sbCBuZXQvY29y ZS9kZXYuYzo1MjY4CiAgIG5ldF9yeF9hY3Rpb24rMHhjOTUvMHgxNTkwIG5ldC9jb3JlL2Rldi5j OjUzMzMKICAgX19kb19zb2Z0aXJxKzB4NDg1LzB4OTQyIGtlcm5lbC9zb2Z0aXJxLmM6Mjg0CiAg IGRvX3NvZnRpcnFfb3duX3N0YWNrKzB4MWMvMHgzMCBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5T OjkwMgogICA8L0lSUT4KICAgZG9fc29mdGlycSBrZXJuZWwvc29mdGlycS5jOjMyOAogICBfX2xv Y2FsX2JoX2VuYWJsZV9pcCsweDI1Yi8weDI5MCBrZXJuZWwvc29mdGlycS5jOjE4MQogICBsb2Nh bF9iaF9lbmFibGUrMHgzNy8weDQwIC4vaW5jbHVkZS9saW51eC9ib3R0b21faGFsZi5oOjMxCiAg IHJjdV9yZWFkX3VubG9ja19iaCAuL2luY2x1ZGUvbGludXgvcmN1cGRhdGUuaDo5MzEKICAgaXA2 X2ZpbmlzaF9vdXRwdXQyKzB4MTliMi8weDFjZjAgbmV0L2lwdjYvaXA2X291dHB1dC5jOjEyNAog ICBpcDZfZmluaXNoX291dHB1dCsweDc2NC8weDk3MCBuZXQvaXB2Ni9pcDZfb3V0cHV0LmM6MTQ5 CiAgIE5GX0hPT0tfQ09ORCAuL2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MjQ2CiAgIGlwNl9v dXRwdXQrMHg0NTYvMHg1MjAgbmV0L2lwdjYvaXA2X291dHB1dC5jOjE2MwogICBkc3Rfb3V0cHV0 IC4vaW5jbHVkZS9uZXQvZHN0Lmg6NDg2CiAgIE5GX0hPT0sgLi9pbmNsdWRlL2xpbnV4L25ldGZp bHRlci5oOjI1NwogICBpcDZfeG1pdCsweDE4NDEvMHgxYzAwIG5ldC9pcHY2L2lwNl9vdXRwdXQu YzoyNjEKICAgc2N0cF92Nl94bWl0KzB4M2I3LzB4NDcwIG5ldC9zY3RwL2lwdjYuYzoyMjUKICAg c2N0cF9wYWNrZXRfdHJhbnNtaXQrMHgzOGNiLzB4M2EyMCBuZXQvc2N0cC9vdXRwdXQuYzo2MzIK ICAgc2N0cF9vdXRxX2ZsdXNoKzB4ZWIzLzB4NDZlMCBuZXQvc2N0cC9vdXRxdWV1ZS5jOjg4NQog ICBzY3RwX291dHFfdW5jb3JrKzB4YjIvMHhkMCBuZXQvc2N0cC9vdXRxdWV1ZS5jOjc1MAogICBz Y3RwX3NpZGVfZWZmZWN0cyBuZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmM6MTc3MwogICBzY3RwX2Rv X3NtKzB4Njk2Mi8weDZlYzAgbmV0L3NjdHAvc21fc2lkZWVmZmVjdC5jOjExNDcKICAgc2N0cF9w cmltaXRpdmVfQVNTT0NJQVRFKzB4MTJjLzB4MTYwIG5ldC9zY3RwL3ByaW1pdGl2ZS5jOjg4CiAg IHNjdHBfc2VuZG1zZysweDQzZTUvMHg0ZjkwIG5ldC9zY3RwL3NvY2tldC5jOjE5NTQKICAgaW5l dF9zZW5kbXNnKzB4NDk4LzB4NjcwIG5ldC9pcHY0L2FmX2luZXQuYzo3NjIKICAgc29ja19zZW5k bXNnX25vc2VjIG5ldC9zb2NrZXQuYzo2MzMKICAgc29ja19zZW5kbXNnIG5ldC9zb2NrZXQuYzo2 NDMKICAgU1lTQ19zZW5kdG8rMHg2MDgvMHg3MTAgbmV0L3NvY2tldC5jOjE2OTYKICAgU3lTX3Nl bmR0bysweDhhLzB4YjAgbmV0L3NvY2tldC5jOjE2NjQKICAgZG9fc3lzY2FsbF82NCsweGU2LzB4 MTMwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI4NQogICBlbnRyeV9TWVNDQUxMNjRfc2xvd19w YXRoKzB4MjUvMHgyNSBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TOjI0NgogIFJJUDogMDAzMzow eDQwMTEzMwogIFJTUDogMDAyYjowMDAwN2ZmZjZkOTljZDM4IEVGTEFHUzogMDAwMDAyNDYgT1JJ R19SQVg6IDAwMDAwMDAwMDAwMDAwMmMKICBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAw MDAwMDAwNDAwMmIwIFJDWDogMDAwMDAwMDAwMDQwMTEzMwogIFJEWDogMDAwMDAwMDAwMDAwMDAw MSBSU0k6IDAwMDAwMDAwMDA0OTQwODggUkRJOiAwMDAwMDAwMDAwMDAwMDAzCiAgUkJQOiAwMDAw N2ZmZjZkOTljZDkwIFIwODogMDAwMDdmZmY2ZDk5Y2Q1MCBSMDk6IDAwMDAwMDAwMDAwMDAwMWMK ICBSMTA6IDAwMDAwMDAwMDAwMDAwMDEgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAw MDAwMDAwMDAwMAogIFIxMzogMDAwMDAwMDAwMDQwNjNkMCBSMTQ6IDAwMDAwMDAwMDA0MDY0NjAg UjE1OiAwMDAwMDAwMDAwMDAwMDAwCiAgb3JpZ2luOgogICBzYXZlX3N0YWNrX3RyYWNlKzB4Mzcv MHg0MCBhcmNoL3g4Ni9rZXJuZWwvc3RhY2t0cmFjZS5jOjU5CiAgIGttc2FuX3NhdmVfc3RhY2tf d2l0aF9mbGFncyBtbS9rbXNhbi9rbXNhbi5jOjMwMgogICBrbXNhbl9pbnRlcm5hbF9wb2lzb25f c2hhZG93KzB4YjEvMHgxYTAgbW0va21zYW4va21zYW4uYzoxOTgKICAga21zYW5fcG9pc29uX3No YWRvdysweDZkLzB4YzAgbW0va21zYW4va21zYW4uYzoyMTEKICAgc2xhYl9hbGxvY19ub2RlIG1t L3NsdWIuYzoyNzQzCiAgIF9fa21hbGxvY19ub2RlX3RyYWNrX2NhbGxlcisweDIwMC8weDM2MCBt bS9zbHViLmM6NDM1MQogICBfX2ttYWxsb2NfcmVzZXJ2ZSBuZXQvY29yZS9za2J1ZmYuYzoxMzgK ICAgX19hbGxvY19za2IrMHgyNmIvMHg4NDAgbmV0L2NvcmUvc2tidWZmLmM6MjMxCiAgIGFsbG9j X3NrYiAuL2luY2x1ZGUvbGludXgvc2tidWZmLmg6OTMzCiAgIHNjdHBfcGFja2V0X3RyYW5zbWl0 KzB4MzFlLzB4M2EyMCBuZXQvc2N0cC9vdXRwdXQuYzo1NzAKICAgc2N0cF9vdXRxX2ZsdXNoKzB4 ZWIzLzB4NDZlMCBuZXQvc2N0cC9vdXRxdWV1ZS5jOjg4NQogICBzY3RwX291dHFfdW5jb3JrKzB4 YjIvMHhkMCBuZXQvc2N0cC9vdXRxdWV1ZS5jOjc1MAogICBzY3RwX3NpZGVfZWZmZWN0cyBuZXQv c2N0cC9zbV9zaWRlZWZmZWN0LmM6MTc3MwogICBzY3RwX2RvX3NtKzB4Njk2Mi8weDZlYzAgbmV0 L3NjdHAvc21fc2lkZWVmZmVjdC5jOjExNDcKICAgc2N0cF9wcmltaXRpdmVfQVNTT0NJQVRFKzB4 MTJjLzB4MTYwIG5ldC9zY3RwL3ByaW1pdGl2ZS5jOjg4CiAgIHNjdHBfc2VuZG1zZysweDQzZTUv MHg0ZjkwIG5ldC9zY3RwL3NvY2tldC5jOjE5NTQKICAgaW5ldF9zZW5kbXNnKzB4NDk4LzB4Njcw IG5ldC9pcHY0L2FmX2luZXQuYzo3NjIKICAgc29ja19zZW5kbXNnX25vc2VjIG5ldC9zb2NrZXQu Yzo2MzMKICAgc29ja19zZW5kbXNnIG5ldC9zb2NrZXQuYzo2NDMKICAgU1lTQ19zZW5kdG8rMHg2 MDgvMHg3MTAgbmV0L3NvY2tldC5jOjE2OTYKICAgU3lTX3NlbmR0bysweDhhLzB4YjAgbmV0L3Nv Y2tldC5jOjE2NjQKICAgZG9fc3lzY2FsbF82NCsweGU2LzB4MTMwIGFyY2gveDg2L2VudHJ5L2Nv bW1vbi5jOjI4NQogICByZXR1cm5fZnJvbV9TWVNDQUxMXzY0KzB4MC8weDZhIGFyY2gveDg2L2Vu dHJ5L2VudHJ5XzY0LlM6MjQ2CiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIg UG90YXBlbmtvIDxnbGlkZXJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L3NjdHAvc2N0cC5oIHwg NCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9uZXQvc2N0cC9zY3RwLmggYi9pbmNsdWRlL25ldC9zY3RwL3NjdHAuaAppbmRleCAwNjk1 ODJlZTVkN2YuLjI1N2FmM2Y4ODI5NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc2N0cC9zY3Rw LmgKKysrIGIvaW5jbHVkZS9uZXQvc2N0cC9zY3RwLmgKQEAgLTQ2OSw2ICs0NjksOCBAQCBfc2N0 cF93YWxrX3BhcmFtcygocG9zKSwgKGNodW5rKSwgbnRvaHMoKGNodW5rKS0+Y2h1bmtfaGRyLmxl bmd0aCksIG1lbWJlcikKIAogI2RlZmluZSBfc2N0cF93YWxrX3BhcmFtcyhwb3MsIGNodW5rLCBl bmQsIG1lbWJlcilcCiBmb3IgKHBvcy52ID0gY2h1bmstPm1lbWJlcjtcCisgICAgIChwb3MudiAr IG9mZnNldG9mKHN0cnVjdCBzY3RwX3BhcmFtaGRyLCBsZW5ndGgpICsgc2l6ZW9mKHBvcy5wLT5s ZW5ndGgpIDxcCisgICAgICAodm9pZCAqKWNodW5rICsgZW5kKSAmJlwKICAgICAgcG9zLnYgPD0g KHZvaWQgKiljaHVuayArIGVuZCAtIG50b2hzKHBvcy5wLT5sZW5ndGgpICYmXAogICAgICBudG9o cyhwb3MucC0+bGVuZ3RoKSA+PSBzaXplb2Yoc2N0cF9wYXJhbWhkcl90KTtcCiAgICAgIHBvcy52 ICs9IFNDVFBfUEFENChudG9ocyhwb3MucC0+bGVuZ3RoKSkpCkBAIC00NzksNiArNDgxLDggQEAg X3NjdHBfd2Fsa19lcnJvcnMoKGVyciksIChjaHVua19oZHIpLCBudG9ocygoY2h1bmtfaGRyKS0+ bGVuZ3RoKSkKICNkZWZpbmUgX3NjdHBfd2Fsa19lcnJvcnMoZXJyLCBjaHVua19oZHIsIGVuZClc CiBmb3IgKGVyciA9IChzY3RwX2Vycmhkcl90ICopKCh2b2lkICopY2h1bmtfaGRyICsgXAogCSAg ICBzaXplb2Yoc2N0cF9jaHVua2hkcl90KSk7XAorICAgICAoKHZvaWQgKillcnIgKyBvZmZzZXRv ZihzY3RwX2Vycmhkcl90LCBsZW5ndGgpICsgc2l6ZW9mKGVyci0+bGVuZ3RoKSA8XAorICAgICAg KHZvaWQgKiljaHVua19oZHIgKyBlbmQpICYmXAogICAgICAodm9pZCAqKWVyciA8PSAodm9pZCAq KWNodW5rX2hkciArIGVuZCAtIG50b2hzKGVyci0+bGVuZ3RoKSAmJlwKICAgICAgbnRvaHMoZXJy LT5sZW5ndGgpID49IHNpemVvZihzY3RwX2Vycmhkcl90KTsgXAogICAgICBlcnIgPSAoc2N0cF9l cnJoZHJfdCAqKSgodm9pZCAqKWVyciArIFNDVFBfUEFENChudG9ocyhlcnItPmxlbmd0aCkpKSkK LS0gCjIuMTMuNAoKCkZyb20gMGQyMzYzOGMyM2U2ZGUyOTIzZjgzMWJkYzk2M2E0ZTQzYTMxOTIy MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI2IEp1bCAyMDE3IDE2OjI0OjU5ICswODAwClN1YmplY3Q6IFtQ QVRDSCAzMS80NV0gc2N0cDogZml4IHRoZSBjaGVjayBmb3IgX3NjdHBfd2Fsa19wYXJhbXMgYW5k CiBfc2N0cF93YWxrX2Vycm9ycwoKWyBVcHN0cmVhbSBjb21taXQgNmI4NDIwMmM5NDZjZDNkYTNh OGRhYTkyYzY4MjUxMGU5ZWQ4MDMyMSBdCgpDb21taXQgYjFmNWJmYzI3YTE5ICgic2N0cDogZG9u J3QgZGVyZWZlcmVuY2UgcHRyIGJlZm9yZSBsZWF2aW5nCl9zY3RwX3dhbGtfe3BhcmFtcywgZXJy b3JzfSgpIikgdHJpZWQgdG8gZml4IHRoZSBpc3N1ZSB0aGF0IGl0Cm1heSBvdmVyc3RlcCB0aGUg Y2h1bmsgZW5kIGZvciBfc2N0cF93YWxrX3twYXJhbXMsIGVycm9yc30gd2l0aAonY2h1bmtfZW5k ID4gb2Zmc2V0KGxlbmd0aCkgKyBzaXplb2YobGVuZ3RoKScuCgpCdXQgaXQgaW50cm9kdWNlZCBh IHNpZGUgZWZmZWN0OiBXaGVuIHByb2Nlc3NpbmcgSU5JVCwgaXQgdmVyaWZpZXMKdGhlIGNodW5r cyB3aXRoICdwYXJhbS52ID09IGNodW5rX2VuZCcgYWZ0ZXIgaXRlcmF0aW5nIGFsbCBwYXJhbXMK Ynkgc2N0cF93YWxrX3BhcmFtcygpLiBXaXRoIHRoZSBjaGVjayAnY2h1bmtfZW5kID4gb2Zmc2V0 KGxlbmd0aCkKKyBzaXplb2YobGVuZ3RoKScsIGl0IHdvdWxkIHJldHVybiB3aGVuIHRoZSBsYXN0 IHBhcmFtIGlzIG5vdCB5ZXQKYWNjZXNzZWQuIEJlY2F1c2UgdGhlIGxhc3QgcGFyYW0gdXN1YWxs eSBpcyBmd2R0c24gc3VwcG9ydGVkIHBhcmFtCndob3NlIHNpemUgaXMgNCBhbmQgJ2NodW5rX2Vu ZCA9PSBvZmZzZXQobGVuZ3RoKSArIHNpemVvZihsZW5ndGgpJwoKVGhpcyBpcyBhIGJhZGx5IGlz c3VlIGV2ZW4gY2F1c2luZyBzY3RwIGNvdWxkbid0IHByb2Nlc3MgNC1zaGFrZXMuCkNsaWVudCB3 b3VsZCBhbHdheXMgZ2V0IGFib3J0IHdoZW4gY29ubmVjdGluZyB0byBzZXJ2ZXIsIGR1ZSB0bwp0 aGUgZmFpbHVyZSBvZiBJTklUIGNodW5rIHZlcmlmaWNhdGlvbiBvbiBzZXJ2ZXIuCgpUaGUgcGF0 Y2ggaXMgdG8gdXNlICdjaHVua19lbmQgPD0gb2Zmc2V0KGxlbmd0aCkgKyBzaXplb2YobGVuZ3Ro KScKaW5zdGVhZCBvZiAnY2h1bmtfZW5kIDwgb2Zmc2V0KGxlbmd0aCkgKyBzaXplb2YobGVuZ3Ro KScgZm9yIGJvdGgKX3NjdHBfd2Fsa19wYXJhbXMgYW5kIF9zY3RwX3dhbGtfZXJyb3JzLgoKRml4 ZXM6IGIxZjViZmMyN2ExOSAoInNjdHA6IGRvbid0IGRlcmVmZXJlbmNlIHB0ciBiZWZvcmUgbGVh dmluZyBfc2N0cF93YWxrX3twYXJhbXMsIGVycm9yc30oKSIpClNpZ25lZC1vZmYtYnk6IFhpbiBM b25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFu QHR1eGRyaXZlci5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9zY3RwL3NjdHAuaCB8IDQgKystLQogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9p bmNsdWRlL25ldC9zY3RwL3NjdHAuaCBiL2luY2x1ZGUvbmV0L3NjdHAvc2N0cC5oCmluZGV4IDI1 N2FmM2Y4ODI5NS4uMDZkYjBjM2VjMzg0IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zY3RwL3Nj dHAuaAorKysgYi9pbmNsdWRlL25ldC9zY3RwL3NjdHAuaApAQCAtNDY5LDcgKzQ2OSw3IEBAIF9z Y3RwX3dhbGtfcGFyYW1zKChwb3MpLCAoY2h1bmspLCBudG9ocygoY2h1bmspLT5jaHVua19oZHIu bGVuZ3RoKSwgbWVtYmVyKQogCiAjZGVmaW5lIF9zY3RwX3dhbGtfcGFyYW1zKHBvcywgY2h1bmss IGVuZCwgbWVtYmVyKVwKIGZvciAocG9zLnYgPSBjaHVuay0+bWVtYmVyO1wKLSAgICAgKHBvcy52 ICsgb2Zmc2V0b2Yoc3RydWN0IHNjdHBfcGFyYW1oZHIsIGxlbmd0aCkgKyBzaXplb2YocG9zLnAt Pmxlbmd0aCkgPFwKKyAgICAgKHBvcy52ICsgb2Zmc2V0b2Yoc3RydWN0IHNjdHBfcGFyYW1oZHIs IGxlbmd0aCkgKyBzaXplb2YocG9zLnAtPmxlbmd0aCkgPD1cCiAgICAgICAodm9pZCAqKWNodW5r ICsgZW5kKSAmJlwKICAgICAgcG9zLnYgPD0gKHZvaWQgKiljaHVuayArIGVuZCAtIG50b2hzKHBv cy5wLT5sZW5ndGgpICYmXAogICAgICBudG9ocyhwb3MucC0+bGVuZ3RoKSA+PSBzaXplb2Yoc2N0 cF9wYXJhbWhkcl90KTtcCkBAIC00ODEsNyArNDgxLDcgQEAgX3NjdHBfd2Fsa19lcnJvcnMoKGVy ciksIChjaHVua19oZHIpLCBudG9ocygoY2h1bmtfaGRyKS0+bGVuZ3RoKSkKICNkZWZpbmUgX3Nj dHBfd2Fsa19lcnJvcnMoZXJyLCBjaHVua19oZHIsIGVuZClcCiBmb3IgKGVyciA9IChzY3RwX2Vy cmhkcl90ICopKCh2b2lkICopY2h1bmtfaGRyICsgXAogCSAgICBzaXplb2Yoc2N0cF9jaHVua2hk cl90KSk7XAotICAgICAoKHZvaWQgKillcnIgKyBvZmZzZXRvZihzY3RwX2Vycmhkcl90LCBsZW5n dGgpICsgc2l6ZW9mKGVyci0+bGVuZ3RoKSA8XAorICAgICAoKHZvaWQgKillcnIgKyBvZmZzZXRv ZihzY3RwX2Vycmhkcl90LCBsZW5ndGgpICsgc2l6ZW9mKGVyci0+bGVuZ3RoKSA8PVwKICAgICAg ICh2b2lkICopY2h1bmtfaGRyICsgZW5kKSAmJlwKICAgICAgKHZvaWQgKillcnIgPD0gKHZvaWQg KiljaHVua19oZHIgKyBlbmQgLSBudG9ocyhlcnItPmxlbmd0aCkgJiZcCiAgICAgIG50b2hzKGVy ci0+bGVuZ3RoKSA+PSBzaXplb2Yoc2N0cF9lcnJoZHJfdCk7IFwKLS0gCjIuMTMuNAoKCkZyb20g NmM4M2JiOTQwNDQ4YmM4MmJjY2MxNzAxZjljNWUyNmFiNTA5ODkzZCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQWxleCBWZXNrZXIgPHZhbGV4QG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1 LCA2IEp1bCAyMDE3IDE1OjQwOjMyICswMzAwClN1YmplY3Q6IFtQQVRDSCAzMi80NV0gbmV0L21s eDVlOiBJUG9JQiwgTW9kaWZ5IGFkZC9yZW1vdmUgdW5kZXJsYXkgUVBOIGZsb3dzCgpbIFVwc3Ry ZWFtIGNvbW1pdCA1ODU2OWVmOGY2MTk3NjE1NDhlN2QxOThmNTllOGViZTNhZjkxZDA0IF0KCk9u IGludGVyZmFjZSByZW1vdmUsIHRoZSBjbGVhbi11cCB3YXMgZG9uZSBpbmNvcnJlY3RseSBjYXVz aW5nCmFuIGVycm9yIGluIHRoZSBsb2c6CiJTRVRfRkxPV19UQUJMRV9ST09UKDB4OTJmKSBvcF9t b2QoMHgwKSBmYWlsZWQuLi5zeW5kcm9tZSAoMHg3ZTlmMTQpIgoKVGhpcyB3YXMgY2F1c2VkIGJ5 IHRoZSBmb2xsb3dpbmcgZmxvdzoKLW5kb191bmluaXQ6CiBNb3ZlIFFQIHN0YXRlIHRvIFJTVCAo dGhpcyBkaXNjb25uZWN0cyB0aGUgUVAgZnJvbSBGVCksCiB0aGUgUVAgY2Fubm90IGJlIGF0dGFj aGVkIHRvIGFueSBGVCB1bmxlc3MgaXQgaXMgaW4gUlRTLgoKLW1seDVfcmRtYV9uZXRkZXZfZnJl ZToKIGNsZWFudXBfcng6IERlc3Ryb3kgRlQKIGNsZWFudXBfdHg6IERlc3Ryb3kgUVAgYW5kIHJl bW92ZSBRUE4gZnJvbSBGVAoKVGhpcyBjYXVzZWQgYSBwcm9ibGVtIHdoZW4gZGVzdHJveWluZyBj dXJyZW50IEZUIHdlIHRyaWVkIHRvCnJlLWF0dGFjaCB0aGUgUVAgdG8gdGhlIG5leHQgRlQgd2hp Y2ggaXMgbm90IG5lZWRlZC4KClRoZSBjb3JyZWN0IGZsb3cgaXM6Ci1tbHg1X3JkbWFfbmV0ZGV2 X2ZyZWU6CgljbGVhbnVwX3J4OiByZW1vdmUgUVBOIGZyb20gRlQgJiBEZXN0cm95IEZUCgljbGVh bnVwX3R4OiBEZXN0cm95IFFQCgpGaXhlczogNTA4NTQxMTQ2YWYxICgibmV0L21seDU6IFVzZSB1 bmRlcmxheSBRUE4gZnJvbSB0aGUgcm9vdCBuYW1lIHNwYWNlIikKU2lnbmVkLW9mZi1ieTogQWxl eCBWZXNrZXIgPHZhbGV4QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1l ZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2lwb2liLmMgfCAxNiArKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMTEgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi5jCmluZGV4IGNjMTg1ODc1MmU3MC4uNmQ5 MGU5ZTNiZmQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvaXBvaWIuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvaXBvaWIuYwpAQCAtMTYwLDggKzE2MCw2IEBAIHN0YXRpYyBpbnQgbWx4NWlfY3JlYXRlX3Vu ZGVybGF5X3FwKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LCBzdHJ1Y3QgbWx4NV9jb3JlCiAK IHN0YXRpYyB2b2lkIG1seDVpX2Rlc3Ryb3lfdW5kZXJsYXlfcXAoc3RydWN0IG1seDVfY29yZV9k ZXYgKm1kZXYsIHN0cnVjdCBtbHg1X2NvcmVfcXAgKnFwKQogewotCW1seDVfZnNfcmVtb3ZlX3J4 X3VuZGVybGF5X3FwbihtZGV2LCBxcC0+cXBuKTsKLQogCW1seDVfY29yZV9kZXN0cm95X3FwKG1k ZXYsIHFwKTsKIH0KIApAQCAtMTc2LDggKzE3NCw2IEBAIHN0YXRpYyBpbnQgbWx4NWlfaW5pdF90 eChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKIAkJcmV0dXJuIGVycjsKIAl9CiAKLQltbHg1X2Zz X2FkZF9yeF91bmRlcmxheV9xcG4ocHJpdi0+bWRldiwgaXByaXYtPnFwLnFwbik7Ci0KIAllcnIg PSBtbHg1ZV9jcmVhdGVfdGlzKHByaXYtPm1kZXYsIDAgLyogdGMgKi8sIGlwcml2LT5xcC5xcG4s ICZwcml2LT50aXNuWzBdKTsKIAlpZiAoZXJyKSB7CiAJCW1seDVfY29yZV93YXJuKHByaXYtPm1k ZXYsICJjcmVhdGUgdGlzIGZhaWxlZCwgJWRcbiIsIGVycik7CkBAIC0yMzUsNiArMjMxLDcgQEAg c3RhdGljIHZvaWQgbWx4NWlfZGVzdHJveV9mbG93X3N0ZWVyaW5nKHN0cnVjdCBtbHg1ZV9wcml2 ICpwcml2KQogCiBzdGF0aWMgaW50IG1seDVpX2luaXRfcngoc3RydWN0IG1seDVlX3ByaXYgKnBy aXYpCiB7CisJc3RydWN0IG1seDVpX3ByaXYgKmlwcml2ICA9IHByaXYtPnBwcml2OwogCWludCBl cnI7CiAKIAllcnIgPSBtbHg1ZV9jcmVhdGVfaW5kaXJlY3RfcnF0KHByaXYpOwpAQCAtMjUzLDEy ICsyNTAsMTggQEAgc3RhdGljIGludCBtbHg1aV9pbml0X3J4KHN0cnVjdCBtbHg1ZV9wcml2ICpw cml2KQogCWlmIChlcnIpCiAJCWdvdG8gZXJyX2Rlc3Ryb3lfaW5kaXJlY3RfdGlyczsKIAotCWVy ciA9IG1seDVpX2NyZWF0ZV9mbG93X3N0ZWVyaW5nKHByaXYpOworCWVyciA9IG1seDVfZnNfYWRk X3J4X3VuZGVybGF5X3Fwbihwcml2LT5tZGV2LCBpcHJpdi0+cXAucXBuKTsKIAlpZiAoZXJyKQog CQlnb3RvIGVycl9kZXN0cm95X2RpcmVjdF90aXJzOwogCisJZXJyID0gbWx4NWlfY3JlYXRlX2Zs b3dfc3RlZXJpbmcocHJpdik7CisJaWYgKGVycikKKwkJZ290byBlcnJfcmVtb3ZlX3J4X3VuZGVy bGF5X3FwbjsKKwogCXJldHVybiAwOwogCitlcnJfcmVtb3ZlX3J4X3VuZGVybGF5X3FwbjoKKwlt bHg1X2ZzX3JlbW92ZV9yeF91bmRlcmxheV9xcG4ocHJpdi0+bWRldiwgaXByaXYtPnFwLnFwbik7 CiBlcnJfZGVzdHJveV9kaXJlY3RfdGlyczoKIAltbHg1ZV9kZXN0cm95X2RpcmVjdF90aXJzKHBy aXYpOwogZXJyX2Rlc3Ryb3lfaW5kaXJlY3RfdGlyczoKQEAgLTI3Miw2ICsyNzUsOSBAQCBzdGF0 aWMgaW50IG1seDVpX2luaXRfcngoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAKIHN0YXRpYyB2 b2lkIG1seDVpX2NsZWFudXBfcngoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiB7CisJc3RydWN0 IG1seDVpX3ByaXYgKmlwcml2ICA9IHByaXYtPnBwcml2OworCisJbWx4NV9mc19yZW1vdmVfcnhf dW5kZXJsYXlfcXBuKHByaXYtPm1kZXYsIGlwcml2LT5xcC5xcG4pOwogCW1seDVpX2Rlc3Ryb3lf Zmxvd19zdGVlcmluZyhwcml2KTsKIAltbHg1ZV9kZXN0cm95X2RpcmVjdF90aXJzKHByaXYpOwog CW1seDVlX2Rlc3Ryb3lfaW5kaXJlY3RfdGlycyhwcml2KTsKLS0gCjIuMTMuNAoKCkZyb20gY2Q2 NDI0MjViMzVhMWY5ZDkxOTExYWQxYTAyYmZkNWQ2MDA3NDMwMiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogSWxhbiBUYXlhcmkgPGlsYW50QG1lbGxhbm94LmNvbT4KRGF0ZTogV2VkLCA1 IEp1bCAyMDE3IDEwOjE3OjA0ICswMzAwClN1YmplY3Q6IFtQQVRDSCAzMy80NV0gbmV0L21seDVl OiBGaXggb3V0ZXJfaGVhZGVyX3plcm8oKSBjaGVjayBzaXplCgpbIFVwc3RyZWFtIGNvbW1pdCAw MjQyZjRhMGJiMDM5MDYwMTBiYmY4MDQ5NTUxMmJlMDA0OTRhMGVmIF0KCm91dGVyX2hlYWRlcl96 ZXJvKCkgcm91dGluZSBjaGVja3MgaWYgdGhlIG91dGVyX2hlYWRlcnMgbWF0Y2ggb2YgYQpmbG93 LXRhYmxlIGVudHJ5IGFyZSBhbGwgemVyby4KClRoaXMgZnVuY3Rpb24gdXNlcyB0aGUgc2l6ZSBv ZiB3aG9sZSBmdGVfbWF0Y2hfcGFyYW0sIGluc3RlYWQgb2YganVzdAp0aGUgb3V0ZXJfaGVhZGVy cyBtZW1iZXIsIGNhdXNpbmcgZmFpbHVyZSB0byBkZXRlY3QgYWxsLXplcm9zIGlmCmFueSBvdGhl ciBtZW1iZXJzIG9mIHRoZSBmdGVfbWF0Y2hfcGFyYW0gYXJlIG5vbi16ZXJvLgoKVXNlIHRoZSBj b3JyZWN0IHNpemUgZm9yIHplcm8gY2hlY2suCgpGaXhlczogNmRjNjA3MWNmY2RlICgibmV0L21s eDVlOiBBZGQgZXRodG9vbCBmbG93IHN0ZWVyaW5nIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBJ bGFuIFRheWFyaSA8aWxhbnRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhh bWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fZnNfZXRodG9vbC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2ZzX2V0aHRvb2wuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9mc19ldGh0b29sLmMKaW5kZXggODViZjRhMzg5 Mjk1Li45NjlkZGIzYWFmNmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lbl9mc19ldGh0b29sLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX2ZzX2V0aHRvb2wuYwpAQCAtMjc2LDcgKzI3Niw3IEBAIHN0 YXRpYyB2b2lkIGFkZF9ydWxlX3RvX2xpc3Qoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAKIHN0 YXRpYyBib29sIG91dGVyX2hlYWRlcl96ZXJvKHUzMiAqbWF0Y2hfY3JpdGVyaWEpCiB7Ci0JaW50 IHNpemUgPSBNTFg1X1NUX1NaX0JZVEVTKGZ0ZV9tYXRjaF9wYXJhbSk7CisJaW50IHNpemUgPSBN TFg1X0ZMRF9TWl9CWVRFUyhmdGVfbWF0Y2hfcGFyYW0sIG91dGVyX2hlYWRlcnMpOwogCWNoYXIg Km91dGVyX2hlYWRlcnNfYyA9IE1MWDVfQUREUl9PRihmdGVfbWF0Y2hfcGFyYW0sIG1hdGNoX2Ny aXRlcmlhLAogCQkJCQkgICAgIG91dGVyX2hlYWRlcnMpOwogCi0tIAoyLjEzLjQKCgpGcm9tIDE0 ZmRkMTU3Y2NhOWY0ZjQ4YTVkZTU4M2E0Yzc4ODQ2YjZiZDlhMmQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEV1Z2VuaWEgRW1hbnRheWV2IDxldWdlbmlhQG1lbGxhbm94LmNvbT4KRGF0 ZTogVGh1LCAyNSBNYXkgMjAxNyAxNToxMToyNiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzQvNDVd IG5ldC9tbHg1OiBGaXggbWx4NV9pZmNfbXRwcHNfcmVnX2JpdHMgc3RydWN0dXJlIHNpemUKClsg VXBzdHJlYW0gY29tbWl0IDBiNzk0ZmZhZTdhZmE3YzRlNWFjY2FjODc5MWM0Yjc4ZThkMDgwY2Ug XQoKRml4IG1pc2NhbGN1bGF0aW9uIGluIHJlc2VydmVkX2F0XzFhMCBmaWVsZC4KCkZpeGVzOiBl ZTdmMTIyMDVhYmMgKCduZXQvbWx4NWU6IEltcGxlbWVudCAxUFBTIHN1cHBvcnQnKQpTaWduZWQt b2ZmLWJ5OiBFdWdlbmlhIEVtYW50YXlldiA8ZXVnZW5pYUBtZWxsYW5veC5jb20+ClNpZ25lZC1v ZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGluY2x1ZGUv bGludXgvbWx4NS9tbHg1X2lmYy5oIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbHg1L21seDVf aWZjLmggYi9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaAppbmRleCBlZGFmZWRiN2I1MDku LjlkMTI0MWEyNTQzNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgK KysrIGIvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgKQEAgLTgxMzEsNyArODEzMSw3IEBA IHN0cnVjdCBtbHg1X2lmY19tdHBwc19yZWdfYml0cyB7CiAJdTggICAgICAgICBvdXRfcHVsc2Vf ZHVyYXRpb25bMHgxMF07CiAJdTggICAgICAgICBvdXRfcGVyaW9kaWNfYWRqdXN0bWVudFsweDEw XTsKIAotCXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMWEwWzB4NjBdOworCXU4ICAgICAgICAgcmVz ZXJ2ZWRfYXRfMWEwWzB4NDBdOwogfTsKIAogc3RydWN0IG1seDVfaWZjX210cHBzZV9yZWdfYml0 cyB7Ci0tIAoyLjEzLjQKCgpGcm9tIDc2YTdlNjY2YTE0M2M3ZmZjMmZhOGJjOTRiZWVmZTA3ODE5 NGYyZmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEV1Z2VuaWEgRW1hbnRheWV2IDxl dWdlbmlhQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAyNSBNYXkgMjAxNyAxNjowOTozNCArMDMw MApTdWJqZWN0OiBbUEFUQ0ggMzUvNDVdIG5ldC9tbHg1ZTogQWRkIGZpZWxkIHNlbGVjdCB0byBN VFBQUyByZWdpc3RlcgoKWyBVcHN0cmVhbSBjb21taXQgZmEzNjc2ODg1ZTNiNWJlMWVkZmExYjJj Yzc3NWUyMGE0NWIzNGExOSBdCgpJbiBvcmRlciB0byBtYXJrIHJlbGV2YW50IGZpZWxkcyB3aGls ZSBzZXR0aW5nIHRoZSBNVFBQUyByZWdpc3RlcgphZGQgZmllbGQgc2VsZWN0LiBPdGhlcndpc2Ug aXQgY2FuIGNhdXNlIGEgbWlzY29uZmlndXJhdGlvbiBpbgpmaXJtd2FyZS4KCkZpeGVzOiBlZTdm MTIyMDVhYmMgKCduZXQvbWx4NWU6IEltcGxlbWVudCAxUFBTIHN1cHBvcnQnKQpTaWduZWQtb2Zm LWJ5OiBFdWdlbmlhIEVtYW50YXlldiA8ZXVnZW5pYUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYt Ynk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9jbG9jay5jIHwgMjkgKysrKysrKysrKysr KysrKystLS0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VxLmMg ICAgICAgfCAgMiArLQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWx4NV9j b3JlLmggICAgfCAgNSArKysrCiBpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaCAgICAgICAg ICAgICAgICAgICAgICB8IDEwICsrKysrLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlv bnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9jbG9jay5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX2Nsb2NrLmMKaW5kZXggZTcwNmE4N2ZjOGIyLi4zNTNhNDg5OGQ5 NWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl9jbG9jay5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl9jbG9jay5jCkBAIC01Myw2ICs1MywxNSBAQCBlbnVtIHsKIAlNTFg1RV9FVkVOVF9NT0RFX09O Q0VfVElMTF9BUk0JPSAweDIsCiB9OwogCitlbnVtIHsKKwlNTFg1RV9NVFBQU19GU19FTkFCTEUJ CQk9IEJJVCgweDApLAorCU1MWDVFX01UUFBTX0ZTX1BBVFRFUk4JCQk9IEJJVCgweDIpLAorCU1M WDVFX01UUFBTX0ZTX1BJTl9NT0RFCQkJPSBCSVQoMHgzKSwKKwlNTFg1RV9NVFBQU19GU19USU1F X1NUQU1QCQk9IEJJVCgweDQpLAorCU1MWDVFX01UUFBTX0ZTX09VVF9QVUxTRV9EVVJBVElPTgk9 IEJJVCgweDUpLAorCU1MWDVFX01UUFBTX0ZTX0VOSF9PVVRfUEVSX0FESgkJPSBCSVQoMHg3KSwK K307CisKIHZvaWQgbWx4NWVfZmlsbF9od3N0YW1wKHN0cnVjdCBtbHg1ZV90c3RhbXAgKnRzdGFt cCwgdTY0IHRpbWVzdGFtcCwKIAkJCXN0cnVjdCBza2Jfc2hhcmVkX2h3dHN0YW1wcyAqaHd0cykK IHsKQEAgLTIyMiw3ICsyMzEsMTAgQEAgc3RhdGljIGludCBtbHg1ZV9wdHBfYWRqZnJlcShzdHJ1 Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwgczMyIGRlbHRhKQogCiAJCS8qIEZvciBmdXR1cmUgdXNl IG5lZWQgdG8gYWRkIGEgbG9vcCBmb3IgZmluZGluZyBhbGwgMVBQUyBvdXQgcGlucyAqLwogCQlN TFg1X1NFVChtdHBwc19yZWcsIGluLCBwaW5fbW9kZSwgTUxYNUVfUElOX01PREVfT1VUKTsKLQkJ TUxYNV9TRVQobXRwcHNfcmVnLCBpbiwgb3V0X3BlcmlvZGljX2FkanVzdG1lbnQsIGRlbHRhICYg MHhGRkZGKTsKKwkJTUxYNV9TRVQobXRwcHNfcmVnLCBpbiwgZW5oYW5jZWRfb3V0X3BlcmlvZGlj X2FkanVzdG1lbnQsIGRlbHRhKTsKKwkJTUxYNV9TRVQobXRwcHNfcmVnLCBpbiwgZmllbGRfc2Vs ZWN0LAorCQkJIE1MWDVFX01UUFBTX0ZTX1BJTl9NT0RFIHwKKwkJCSBNTFg1RV9NVFBQU19GU19F TkhfT1VUX1BFUl9BREopOwogCiAJCW1seDVfc2V0X210cHBzKHByaXYtPm1kZXYsIGluLCBzaXpl b2YoaW4pKTsKIAl9CkBAIC0yNTgsOCArMjcwLDcgQEAgc3RhdGljIGludCBtbHg1ZV9leHR0c19j b25maWd1cmUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsCiAJaW50IHBpbiA9IC0xOwogCWlu dCBlcnIgPSAwOwogCi0JaWYgKCFNTFg1X0NBUF9HRU4ocHJpdi0+bWRldiwgcHBzKSB8fAotCSAg ICAhTUxYNV9DQVBfR0VOKHByaXYtPm1kZXYsIHBwc19tb2RpZnkpKQorCWlmICghTUxYNV9QUFNf Q0FQKHByaXYtPm1kZXYpKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKIAlpZiAocnEtPmV4dHRz LmluZGV4ID49IHRzdGFtcC0+cHRwX2luZm8ubl9waW5zKQpAQCAtMjc4LDYgKzI4OSw5IEBAIHN0 YXRpYyBpbnQgbWx4NWVfZXh0dHNfY29uZmlndXJlKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRw LAogCU1MWDVfU0VUKG10cHBzX3JlZywgaW4sIHBpbl9tb2RlLCBNTFg1RV9QSU5fTU9ERV9JTik7 CiAJTUxYNV9TRVQobXRwcHNfcmVnLCBpbiwgcGF0dGVybiwgcGF0dGVybik7CiAJTUxYNV9TRVQo bXRwcHNfcmVnLCBpbiwgZW5hYmxlLCBvbik7CisJTUxYNV9TRVQobXRwcHNfcmVnLCBpbiwgZmll bGRfc2VsZWN0LCBNTFg1RV9NVFBQU19GU19QSU5fTU9ERSB8CisJCQkJCSAgICAgIE1MWDVFX01U UFBTX0ZTX1BBVFRFUk4gfAorCQkJCQkgICAgICBNTFg1RV9NVFBQU19GU19FTkFCTEUpOwogCiAJ ZXJyID0gbWx4NV9zZXRfbXRwcHMocHJpdi0+bWRldiwgaW4sIHNpemVvZihpbikpOwogCWlmIChl cnIpCkBAIC0zMDMsNyArMzE3LDcgQEAgc3RhdGljIGludCBtbHg1ZV9wZXJvdXRfY29uZmlndXJl KHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLAogCWludCBwaW4gPSAtMTsKIAlzNjQgbnM7CiAK LQlpZiAoIU1MWDVfQ0FQX0dFTihwcml2LT5tZGV2LCBwcHNfbW9kaWZ5KSkKKwlpZiAoIU1MWDVf UFBTX0NBUChwcml2LT5tZGV2KSkKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCiAJaWYgKHJxLT5w ZXJvdXQuaW5kZXggPj0gdHN0YW1wLT5wdHBfaW5mby5uX3BpbnMpCkBAIC0zMzgsNyArMzUyLDEw IEBAIHN0YXRpYyBpbnQgbWx4NWVfcGVyb3V0X2NvbmZpZ3VyZShzdHJ1Y3QgcHRwX2Nsb2NrX2lu Zm8gKnB0cCwKIAlNTFg1X1NFVChtdHBwc19yZWcsIGluLCBwYXR0ZXJuLCBNTFg1RV9PVVRfUEFU VEVSTl9QRVJJT0RJQyk7CiAJTUxYNV9TRVQobXRwcHNfcmVnLCBpbiwgZW5hYmxlLCBvbik7CiAJ TUxYNV9TRVQ2NChtdHBwc19yZWcsIGluLCB0aW1lX3N0YW1wLCB0aW1lX3N0YW1wKTsKLQorCU1M WDVfU0VUKG10cHBzX3JlZywgaW4sIGZpZWxkX3NlbGVjdCwgTUxYNUVfTVRQUFNfRlNfUElOX01P REUgfAorCQkJCQkgICAgICBNTFg1RV9NVFBQU19GU19QQVRURVJOIHwKKwkJCQkJICAgICAgTUxY NUVfTVRQUFNfRlNfRU5BQkxFIHwKKwkJCQkJICAgICAgTUxYNUVfTVRQUFNfRlNfVElNRV9TVEFN UCk7CiAJcmV0dXJuIG1seDVfc2V0X210cHBzKHByaXYtPm1kZXYsIGluLCBzaXplb2YoaW4pKTsK IH0KIApAQCAtNDg4LDcgKzUwNSw3IEBAIHZvaWQgbWx4NWVfdGltZXN0YW1wX2luaXQoc3RydWN0 IG1seDVlX3ByaXYgKnByaXYpCiAjZGVmaW5lIE1BWF9QSU5fTlVNCTgKIAl0c3RhbXAtPnBwc19w aW5fY2FwcyA9IGt6YWxsb2Moc2l6ZW9mKHU4KSAqIE1BWF9QSU5fTlVNLCBHRlBfS0VSTkVMKTsK IAlpZiAodHN0YW1wLT5wcHNfcGluX2NhcHMpIHsKLQkJaWYgKE1MWDVfQ0FQX0dFTihwcml2LT5t ZGV2LCBwcHMpKQorCQlpZiAoTUxYNV9QUFNfQ0FQKHByaXYtPm1kZXYpKQogCQkJbWx4NWVfZ2V0 X3Bwc19jYXBzKHByaXYsIHRzdGFtcCk7CiAJCWlmICh0c3RhbXAtPnB0cF9pbmZvLm5fcGlucykK IAkJCW1seDVlX2luaXRfcGluX2NvbmZpZyh0c3RhbXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VxLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZXEuYwppbmRleCAzM2VhZTVhZDJmYjAuLjU4YTlmNWM5NmQx MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vx LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VxLmMKQEAg LTY5MCw3ICs2OTAsNyBAQCBpbnQgbWx4NV9zdGFydF9lcXMoc3RydWN0IG1seDVfY29yZV9kZXYg KmRldikKIAllbHNlCiAJCW1seDVfY29yZV9kYmcoZGV2LCAicG9ydF9tb2R1bGVfZXZlbnQgaXMg bm90IHNldFxuIik7CiAKLQlpZiAoTUxYNV9DQVBfR0VOKGRldiwgcHBzKSkKKwlpZiAoTUxYNV9Q UFNfQ0FQKGRldikpCiAJCWFzeW5jX2V2ZW50X21hc2sgfD0gKDF1bGwgPDwgTUxYNV9FVkVOVF9U WVBFX1BQU19FVkVOVCk7CiAKIAllcnIgPSBtbHg1X2NyZWF0ZV9tYXBfZXEoZGV2LCAmdGFibGUt PmNtZF9lcSwgTUxYNV9FUV9WRUNfQ01ELApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL21seDVfY29yZS5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL21seDVfY29yZS5oCmluZGV4IGZiYzZlOWU5ZTMwNS4uMTg3NGFh OTZjMWExIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvbWx4NV9jb3JlLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL21seDVfY29yZS5oCkBAIC0xNTMsNiArMTUzLDExIEBAIGludCBtbHg1X3NldF9tdHBwcyhz dHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwgdTMyICptdHBwcywgdTMyIG10cHBzX3NpemUpOwog aW50IG1seDVfcXVlcnlfbXRwcHNlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LCB1OCBwaW4s IHU4ICphcm0sIHU4ICptb2RlKTsKIGludCBtbHg1X3NldF9tdHBwc2Uoc3RydWN0IG1seDVfY29y ZV9kZXYgKm1kZXYsIHU4IHBpbiwgdTggYXJtLCB1OCBtb2RlKTsKIAorI2RlZmluZSBNTFg1X1BQ U19DQVAobWRldikgKE1MWDVfQ0FQX0dFTigobWRldiksIHBwcykgJiYJCVwKKwkJCSAgICBNTFg1 X0NBUF9HRU4oKG1kZXYpLCBwcHNfbW9kaWZ5KSAmJgkJXAorCQkJICAgIE1MWDVfQ0FQX01DQU1f RkVBVFVSRSgobWRldiksIG10cHBzX2ZzKSAmJglcCisJCQkgICAgTUxYNV9DQVBfTUNBTV9GRUFU VVJFKChtZGV2KSwgbXRwcHNfZW5oX291dF9wZXJfYWRqKSkKKwogdm9pZCBtbHg1ZV9pbml0KHZv aWQpOwogdm9pZCBtbHg1ZV9jbGVhbnVwKHZvaWQpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L21seDUvbWx4NV9pZmMuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oCmluZGV4 IDlkMTI0MWEyNTQzNi4uZTIxYTBiM2Q2NDU0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21s eDUvbWx4NV9pZmMuaAorKysgYi9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaApAQCAtNzcx OCw4ICs3NzE4LDEwIEBAIHN0cnVjdCBtbHg1X2lmY19wY2FtX3JlZ19iaXRzIHsKIH07CiAKIHN0 cnVjdCBtbHg1X2lmY19tY2FtX2VuaGFuY2VkX2ZlYXR1cmVzX2JpdHMgewotCXU4ICAgICAgICAg cmVzZXJ2ZWRfYXRfMFsweDdmXTsKKwl1OCAgICAgICAgIHJlc2VydmVkX2F0XzBbMHg3ZF07CiAK Kwl1OCAgICAgICAgIG10cHBzX2VuaF9vdXRfcGVyX2FkalsweDFdOworCXU4ICAgICAgICAgbXRw cHNfZnNbMHgxXTsKIAl1OCAgICAgICAgIHBjaWVfcGVyZm9ybWFuY2VfZ3JvdXBbMHgxXTsKIH07 CiAKQEAgLTgxMTUsNyArODExNyw4IEBAIHN0cnVjdCBtbHg1X2lmY19tdHBwc19yZWdfYml0cyB7 CiAJdTggICAgICAgICByZXNlcnZlZF9hdF83OFsweDRdOwogCXU4ICAgICAgICAgY2FwX3Bpbl80 X21vZGVbMHg0XTsKIAotCXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfODBbMHg4MF07CisJdTggICAg ICAgICBmaWVsZF9zZWxlY3RbMHgyMF07CisJdTggICAgICAgICByZXNlcnZlZF9hdF9hMFsweDYw XTsKIAogCXU4ICAgICAgICAgZW5hYmxlWzB4MV07CiAJdTggICAgICAgICByZXNlcnZlZF9hdF8x MDFbMHhiXTsKQEAgLTgxMzAsOCArODEzMyw5IEBAIHN0cnVjdCBtbHg1X2lmY19tdHBwc19yZWdf Yml0cyB7CiAKIAl1OCAgICAgICAgIG91dF9wdWxzZV9kdXJhdGlvblsweDEwXTsKIAl1OCAgICAg ICAgIG91dF9wZXJpb2RpY19hZGp1c3RtZW50WzB4MTBdOworCXU4ICAgICAgICAgZW5oYW5jZWRf b3V0X3BlcmlvZGljX2FkanVzdG1lbnRbMHgyMF07CiAKLQl1OCAgICAgICAgIHJlc2VydmVkX2F0 XzFhMFsweDQwXTsKKwl1OCAgICAgICAgIHJlc2VydmVkX2F0XzFjMFsweDIwXTsKIH07CiAKIHN0 cnVjdCBtbHg1X2lmY19tdHBwc2VfcmVnX2JpdHMgewotLSAKMi4xMy40CgoKRnJvbSAxMTExZTk3 YTliMmM4ZTkyYmI3ZTE3ODFiZWJmYTM2NGUyMjczNjdmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBFdWdlbmlhIEVtYW50YXlldiA8ZXVnZW5pYUBtZWxsYW5veC5jb20+CkRhdGU6IFN1 biwgMjggTWF5IDIwMTcgMTI6MDE6MzggKzAzMDAKU3ViamVjdDogW1BBVENIIDM2LzQ1XSBuZXQv bWx4NWU6IEZpeCBicm9rZW4gZGlzYWJsZSAxUFBTIGZsb3cKClsgVXBzdHJlYW0gY29tbWl0IDQ5 YzUwMzFjYTZmMDYyOGVmOTczYTExYjE3ZTQ2M2UwODhiZjg1OWUgXQoKTmVlZCB0byBkaXNhYmxl IHRoZSBNVFBQUyBhbmQgdW5zdWJzY3JpYmUgZnJvbSB0aGUgcHVsc2UgZXZlbnRzCndoZW4gdXNl ciBkaXNhYmxlcyB0aGUgMVBQUyBmdW5jdGlvbmFsaXR5LgoKRml4ZXM6IGVlN2YxMjIwNWFiYyAo J25ldC9tbHg1ZTogSW1wbGVtZW50IDFQUFMgc3VwcG9ydCcpClNpZ25lZC1vZmYtYnk6IEV1Z2Vu aWEgRW1hbnRheWV2IDxldWdlbmlhQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQg TWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX2Nsb2NrLmMgfCA3NSArKysrKysrKysrKysrLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2Nsb2Nr LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY2xvY2suYwpp bmRleCAzNTNhNDg5OGQ5NWIuLjQxMzk3ZGU4NmY4OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2Nsb2NrLmMKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2Nsb2NrLmMKQEAgLTI2Niw2ICsyNjYsOCBA QCBzdGF0aWMgaW50IG1seDVlX2V4dHRzX2NvbmZpZ3VyZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8g KnB0cCwKIAlzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiA9CiAJCWNvbnRhaW5lcl9vZih0c3RhbXAs IHN0cnVjdCBtbHg1ZV9wcml2LCB0c3RhbXApOwogCXUzMiBpbltNTFg1X1NUX1NaX0RXKG10cHBz X3JlZyldID0gezB9OworCXUzMiBmaWVsZF9zZWxlY3QgPSAwOworCXU4IHBpbl9tb2RlID0gMDsK IAl1OCBwYXR0ZXJuID0gMDsKIAlpbnQgcGluID0gLTE7CiAJaW50IGVyciA9IDA7CkBAIC0yODAs MTggKzI4MiwyMSBAQCBzdGF0aWMgaW50IG1seDVlX2V4dHRzX2NvbmZpZ3VyZShzdHJ1Y3QgcHRw X2Nsb2NrX2luZm8gKnB0cCwKIAkJcGluID0gcHRwX2ZpbmRfcGluKHRzdGFtcC0+cHRwLCBQVFBf UEZfRVhUVFMsIHJxLT5leHR0cy5pbmRleCk7CiAJCWlmIChwaW4gPCAwKQogCQkJcmV0dXJuIC1F QlVTWTsKKwkJcGluX21vZGUgPSBNTFg1RV9QSU5fTU9ERV9JTjsKKwkJcGF0dGVybiA9ICEhKHJx LT5leHR0cy5mbGFncyAmIFBUUF9GQUxMSU5HX0VER0UpOworCQlmaWVsZF9zZWxlY3QgPSBNTFg1 RV9NVFBQU19GU19QSU5fTU9ERSB8CisJCQkgICAgICAgTUxYNUVfTVRQUFNfRlNfUEFUVEVSTiB8 CisJCQkgICAgICAgTUxYNUVfTVRQUFNfRlNfRU5BQkxFOworCX0gZWxzZSB7CisJCXBpbiA9IHJx LT5leHR0cy5pbmRleDsKKwkJZmllbGRfc2VsZWN0ID0gTUxYNUVfTVRQUFNfRlNfRU5BQkxFOwog CX0KIAotCWlmIChycS0+ZXh0dHMuZmxhZ3MgJiBQVFBfRkFMTElOR19FREdFKQotCQlwYXR0ZXJu ID0gMTsKLQogCU1MWDVfU0VUKG10cHBzX3JlZywgaW4sIHBpbiwgcGluKTsKLQlNTFg1X1NFVCht dHBwc19yZWcsIGluLCBwaW5fbW9kZSwgTUxYNUVfUElOX01PREVfSU4pOworCU1MWDVfU0VUKG10 cHBzX3JlZywgaW4sIHBpbl9tb2RlLCBwaW5fbW9kZSk7CiAJTUxYNV9TRVQobXRwcHNfcmVnLCBp biwgcGF0dGVybiwgcGF0dGVybik7CiAJTUxYNV9TRVQobXRwcHNfcmVnLCBpbiwgZW5hYmxlLCBv bik7Ci0JTUxYNV9TRVQobXRwcHNfcmVnLCBpbiwgZmllbGRfc2VsZWN0LCBNTFg1RV9NVFBQU19G U19QSU5fTU9ERSB8Ci0JCQkJCSAgICAgIE1MWDVFX01UUFBTX0ZTX1BBVFRFUk4gfAotCQkJCQkg ICAgICBNTFg1RV9NVFBQU19GU19FTkFCTEUpOworCU1MWDVfU0VUKG10cHBzX3JlZywgaW4sIGZp ZWxkX3NlbGVjdCwgZmllbGRfc2VsZWN0KTsKIAogCWVyciA9IG1seDVfc2V0X210cHBzKHByaXYt Pm1kZXYsIGluLCBzaXplb2YoaW4pKTsKIAlpZiAoZXJyKQpAQCAtMzE0LDYgKzMxOSw5IEBAIHN0 YXRpYyBpbnQgbWx4NWVfcGVyb3V0X2NvbmZpZ3VyZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0 cCwKIAl1NjQgY3ljbGVzX25vdywgY3ljbGVzX2RlbHRhOwogCXN0cnVjdCB0aW1lc3BlYzY0IHRz OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdTMyIGZpZWxkX3NlbGVjdCA9IDA7CisJdTggcGlu X21vZGUgPSAwOworCXU4IHBhdHRlcm4gPSAwOwogCWludCBwaW4gPSAtMTsKIAlzNjQgbnM7CiAK QEAgLTMyOCwzNCArMzM2LDQzIEBAIHN0YXRpYyBpbnQgbWx4NWVfcGVyb3V0X2NvbmZpZ3VyZShz dHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwKIAkJCQkgICBycS0+cGVyb3V0LmluZGV4KTsKIAkJ aWYgKHBpbiA8IDApCiAJCQlyZXR1cm4gLUVCVVNZOwotCX0KIAotCXRzLnR2X3NlYyA9IHJxLT5w ZXJvdXQucGVyaW9kLnNlYzsKLQl0cy50dl9uc2VjID0gcnEtPnBlcm91dC5wZXJpb2QubnNlYzsK LQlucyA9IHRpbWVzcGVjNjRfdG9fbnMoJnRzKTsKLQlpZiAob24pCisJCXBpbl9tb2RlID0gTUxY NUVfUElOX01PREVfT1VUOworCQlwYXR0ZXJuID0gTUxYNUVfT1VUX1BBVFRFUk5fUEVSSU9ESUM7 CisJCXRzLnR2X3NlYyA9IHJxLT5wZXJvdXQucGVyaW9kLnNlYzsKKwkJdHMudHZfbnNlYyA9IHJx LT5wZXJvdXQucGVyaW9kLm5zZWM7CisJCW5zID0gdGltZXNwZWM2NF90b19ucygmdHMpOworCiAJ CWlmICgobnMgPj4gMSkgIT0gNTAwMDAwMDAwTEwpCiAJCQlyZXR1cm4gLUVJTlZBTDsKLQl0cy50 dl9zZWMgPSBycS0+cGVyb3V0LnN0YXJ0LnNlYzsKLQl0cy50dl9uc2VjID0gcnEtPnBlcm91dC5z dGFydC5uc2VjOwotCW5zID0gdGltZXNwZWM2NF90b19ucygmdHMpOwotCWN5Y2xlc19ub3cgPSBt bHg1X3JlYWRfaW50ZXJuYWxfdGltZXIodHN0YW1wLT5tZGV2KTsKLQl3cml0ZV9sb2NrX2lycXNh dmUoJnRzdGFtcC0+bG9jaywgZmxhZ3MpOwotCW5zZWNfbm93ID0gdGltZWNvdW50ZXJfY3ljMnRp bWUoJnRzdGFtcC0+Y2xvY2ssIGN5Y2xlc19ub3cpOwotCW5zZWNfZGVsdGEgPSBucyAtIG5zZWNf bm93OwotCWN5Y2xlc19kZWx0YSA9IGRpdjY0X3U2NChuc2VjX2RlbHRhIDw8IHRzdGFtcC0+Y3lj bGVzLnNoaWZ0LAotCQkJCSB0c3RhbXAtPmN5Y2xlcy5tdWx0KTsKLQl3cml0ZV91bmxvY2tfaXJx cmVzdG9yZSgmdHN0YW1wLT5sb2NrLCBmbGFncyk7Ci0JdGltZV9zdGFtcCA9IGN5Y2xlc19ub3cg KyBjeWNsZXNfZGVsdGE7CisKKwkJdHMudHZfc2VjID0gcnEtPnBlcm91dC5zdGFydC5zZWM7CisJ CXRzLnR2X25zZWMgPSBycS0+cGVyb3V0LnN0YXJ0Lm5zZWM7CisJCW5zID0gdGltZXNwZWM2NF90 b19ucygmdHMpOworCQljeWNsZXNfbm93ID0gbWx4NV9yZWFkX2ludGVybmFsX3RpbWVyKHRzdGFt cC0+bWRldik7CisJCXdyaXRlX2xvY2tfaXJxc2F2ZSgmdHN0YW1wLT5sb2NrLCBmbGFncyk7CisJ CW5zZWNfbm93ID0gdGltZWNvdW50ZXJfY3ljMnRpbWUoJnRzdGFtcC0+Y2xvY2ssIGN5Y2xlc19u b3cpOworCQluc2VjX2RlbHRhID0gbnMgLSBuc2VjX25vdzsKKwkJY3ljbGVzX2RlbHRhID0gZGl2 NjRfdTY0KG5zZWNfZGVsdGEgPDwgdHN0YW1wLT5jeWNsZXMuc2hpZnQsCisJCQkJCSB0c3RhbXAt PmN5Y2xlcy5tdWx0KTsKKwkJd3JpdGVfdW5sb2NrX2lycXJlc3RvcmUoJnRzdGFtcC0+bG9jaywg ZmxhZ3MpOworCQl0aW1lX3N0YW1wID0gY3ljbGVzX25vdyArIGN5Y2xlc19kZWx0YTsKKwkJZmll bGRfc2VsZWN0ID0gTUxYNUVfTVRQUFNfRlNfUElOX01PREUgfAorCQkJICAgICAgIE1MWDVFX01U UFBTX0ZTX1BBVFRFUk4gfAorCQkJICAgICAgIE1MWDVFX01UUFBTX0ZTX0VOQUJMRSB8CisJCQkg ICAgICAgTUxYNUVfTVRQUFNfRlNfVElNRV9TVEFNUDsKKwl9IGVsc2UgeworCQlwaW4gPSBycS0+ cGVyb3V0LmluZGV4OworCQlmaWVsZF9zZWxlY3QgPSBNTFg1RV9NVFBQU19GU19FTkFCTEU7CisJ fQorCiAJTUxYNV9TRVQobXRwcHNfcmVnLCBpbiwgcGluLCBwaW4pOwotCU1MWDVfU0VUKG10cHBz X3JlZywgaW4sIHBpbl9tb2RlLCBNTFg1RV9QSU5fTU9ERV9PVVQpOwotCU1MWDVfU0VUKG10cHBz X3JlZywgaW4sIHBhdHRlcm4sIE1MWDVFX09VVF9QQVRURVJOX1BFUklPRElDKTsKKwlNTFg1X1NF VChtdHBwc19yZWcsIGluLCBwaW5fbW9kZSwgcGluX21vZGUpOworCU1MWDVfU0VUKG10cHBzX3Jl ZywgaW4sIHBhdHRlcm4sIHBhdHRlcm4pOwogCU1MWDVfU0VUKG10cHBzX3JlZywgaW4sIGVuYWJs ZSwgb24pOwogCU1MWDVfU0VUNjQobXRwcHNfcmVnLCBpbiwgdGltZV9zdGFtcCwgdGltZV9zdGFt cCk7Ci0JTUxYNV9TRVQobXRwcHNfcmVnLCBpbiwgZmllbGRfc2VsZWN0LCBNTFg1RV9NVFBQU19G U19QSU5fTU9ERSB8Ci0JCQkJCSAgICAgIE1MWDVFX01UUFBTX0ZTX1BBVFRFUk4gfAotCQkJCQkg ICAgICBNTFg1RV9NVFBQU19GU19FTkFCTEUgfAotCQkJCQkgICAgICBNTFg1RV9NVFBQU19GU19U SU1FX1NUQU1QKTsKKwlNTFg1X1NFVChtdHBwc19yZWcsIGluLCBmaWVsZF9zZWxlY3QsIGZpZWxk X3NlbGVjdCk7CisKIAlyZXR1cm4gbWx4NV9zZXRfbXRwcHMocHJpdi0+bWRldiwgaW4sIHNpemVv ZihpbikpOwogfQogCi0tIAoyLjEzLjQKCgpGcm9tIGU2NGU5N2YzMmNmODRlMWY5ZWRkMTA2OGYy ODhmZWQ2NWE1OWRkNTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEV1Z2VuaWEgRW1h bnRheWV2IDxldWdlbmlhQG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCAyOCBNYXkgMjAxNyAxNDow NjowMSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzcvNDVdIG5ldC9tbHg1ZTogQ2hhbmdlIDFQUFMg b3V0IHNjaGVtZQoKWyBVcHN0cmVhbSBjb21taXQgNDI3MmY5Yjg4ZGI5MjIzMjE2Y2RmODczMTRm NTcwZjZkODEyOTViNCBdCgpJbiBvcmRlciB0byBmaXggdGhlIGRyaWZ0IGluIDFQUFMgb3V0IG5l ZWQgdG8gYWRqdXN0IHRoZSBuZXh0IHB1bHNlLgpPbiBlYWNoIDFQUFMgb3V0IGZhbGxpbmcgZWRn ZSBkcml2ZXIgZ2V0cyB0aGUgZXZlbnQsIHRoZW4gdGhlIGV2ZW50CmhhbmRsZXIgYWRqdXN0cyB0 aGUgbmV4dCBwdWxzZSBzdGFydGluZyB0aW1lLgoKRml4ZXM6IGVlN2YxMjIwNWFiYyAoJ25ldC9t bHg1ZTogSW1wbGVtZW50IDFQUFMgc3VwcG9ydCcpClNpZ25lZC1vZmYtYnk6IEV1Z2VuaWEgRW1h bnRheWV2IDxldWdlbmlhQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1l ZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuLmggICAgICAgfCAgIDkgKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbl9jbG9jay5jIHwgMTE2ICsrKysrKysrKysrKysrLS0tLS0tLQog MiBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaCBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oCmluZGV4IDk0NGZjMTc0 MjQ2NC4uMDhjMzAzYzBiZTEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW4uaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW4uaApAQCAtMjYxLDYgKzI2MSwxMyBAQCBzdHJ1Y3QgbWx4NWVfZGNieCB7CiB9 OwogI2VuZGlmCiAKKyNkZWZpbmUgTUFYX1BJTl9OVU0JOAorc3RydWN0IG1seDVlX3BwcyB7CisJ dTggICAgICAgICAgICAgICAgICAgICAgICAgcGluX2NhcHNbTUFYX1BJTl9OVU1dOworCXN0cnVj dCB3b3JrX3N0cnVjdCAgICAgICAgIG91dF93b3JrOworCXU2NCAgICAgICAgICAgICAgICAgICAg ICAgIHN0YXJ0W01BWF9QSU5fTlVNXTsKK307CisKIHN0cnVjdCBtbHg1ZV90c3RhbXAgewogCXJ3 bG9ja190ICAgICAgICAgICAgICAgICAgIGxvY2s7CiAJc3RydWN0IGN5Y2xlY291bnRlciAgICAg ICAgY3ljbGVzOwpAQCAtMjcyLDcgKzI3OSw3IEBAIHN0cnVjdCBtbHg1ZV90c3RhbXAgewogCXN0 cnVjdCBtbHg1X2NvcmVfZGV2ICAgICAgKm1kZXY7CiAJc3RydWN0IHB0cF9jbG9jayAgICAgICAg ICAqcHRwOwogCXN0cnVjdCBwdHBfY2xvY2tfaW5mbyAgICAgIHB0cF9pbmZvOwotCXU4ICAgICAg ICAgICAgICAgICAgICAgICAgKnBwc19waW5fY2FwczsKKwlzdHJ1Y3QgbWx4NWVfcHBzICAgICAg ICAgICBwcHNfaW5mbzsKIH07CiAKIGVudW0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2Nsb2NrLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY2xvY2suYwppbmRleCA0MTM5N2RlODZmODkuLmRhOWZh MjBmOTNkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX2Nsb2NrLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX2Nsb2NrLmMKQEAgLTgyLDYgKzgyLDMzIEBAIHN0YXRpYyB1NjQgbWx4NWVfcmVhZF9p bnRlcm5hbF90aW1lcihjb25zdCBzdHJ1Y3QgY3ljbGVjb3VudGVyICpjYykKIAlyZXR1cm4gbWx4 NV9yZWFkX2ludGVybmFsX3RpbWVyKHRzdGFtcC0+bWRldikgJiBjYy0+bWFzazsKIH0KIAorc3Rh dGljIHZvaWQgbWx4NWVfcHBzX291dChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJc3Ry dWN0IG1seDVlX3BwcyAqcHBzX2luZm8gPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IG1seDVl X3BwcywKKwkJCQkJCSAgb3V0X3dvcmspOworCXN0cnVjdCBtbHg1ZV90c3RhbXAgKnRzdGFtcCA9 IGNvbnRhaW5lcl9vZihwcHNfaW5mbywgc3RydWN0IG1seDVlX3RzdGFtcCwKKwkJCQkJCSAgIHBw c19pbmZvKTsKKwl1MzIgaW5bTUxYNV9TVF9TWl9EVyhtdHBwc19yZWcpXSA9IHswfTsKKwl1bnNp Z25lZCBsb25nIGZsYWdzOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IHRzdGFtcC0+cHRw X2luZm8ubl9waW5zOyBpKyspIHsKKwkJdTY0IHRzdGFydDsKKworCQl3cml0ZV9sb2NrX2lycXNh dmUoJnRzdGFtcC0+bG9jaywgZmxhZ3MpOworCQl0c3RhcnQgPSB0c3RhbXAtPnBwc19pbmZvLnN0 YXJ0W2ldOworCQl0c3RhbXAtPnBwc19pbmZvLnN0YXJ0W2ldID0gMDsKKwkJd3JpdGVfdW5sb2Nr X2lycXJlc3RvcmUoJnRzdGFtcC0+bG9jaywgZmxhZ3MpOworCQlpZiAoIXRzdGFydCkKKwkJCWNv bnRpbnVlOworCisJCU1MWDVfU0VUKG10cHBzX3JlZywgaW4sIHBpbiwgaSk7CisJCU1MWDVfU0VU NjQobXRwcHNfcmVnLCBpbiwgdGltZV9zdGFtcCwgdHN0YXJ0KTsKKwkJTUxYNV9TRVQobXRwcHNf cmVnLCBpbiwgZmllbGRfc2VsZWN0LCBNTFg1RV9NVFBQU19GU19USU1FX1NUQU1QKTsKKwkJbWx4 NV9zZXRfbXRwcHModHN0YW1wLT5tZGV2LCBpbiwgc2l6ZW9mKGluKSk7CisJfQorfQorCiBzdGF0 aWMgdm9pZCBtbHg1ZV90aW1lc3RhbXBfb3ZlcmZsb3coc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr KQogewogCXN0cnVjdCBkZWxheWVkX3dvcmsgKmR3b3JrID0gdG9fZGVsYXllZF93b3JrKHdvcmsp OwpAQCAtMjIzLDIxICsyNTAsNiBAQCBzdGF0aWMgaW50IG1seDVlX3B0cF9hZGpmcmVxKHN0cnVj dCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBzMzIgZGVsdGEpCiAJaW50IG5lZ19hZGogPSAwOwogCXN0 cnVjdCBtbHg1ZV90c3RhbXAgKnRzdGFtcCA9IGNvbnRhaW5lcl9vZihwdHAsIHN0cnVjdCBtbHg1 ZV90c3RhbXAsCiAJCQkJCQkgIHB0cF9pbmZvKTsKLQlzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiA9 Ci0JCWNvbnRhaW5lcl9vZih0c3RhbXAsIHN0cnVjdCBtbHg1ZV9wcml2LCB0c3RhbXApOwotCi0J aWYgKE1MWDVfQ0FQX0dFTihwcml2LT5tZGV2LCBwcHNfbW9kaWZ5KSkgewotCQl1MzIgaW5bTUxY NV9TVF9TWl9EVyhtdHBwc19yZWcpXSA9IHswfTsKLQotCQkvKiBGb3IgZnV0dXJlIHVzZSBuZWVk IHRvIGFkZCBhIGxvb3AgZm9yIGZpbmRpbmcgYWxsIDFQUFMgb3V0IHBpbnMgKi8KLQkJTUxYNV9T RVQobXRwcHNfcmVnLCBpbiwgcGluX21vZGUsIE1MWDVFX1BJTl9NT0RFX09VVCk7Ci0JCU1MWDVf U0VUKG10cHBzX3JlZywgaW4sIGVuaGFuY2VkX291dF9wZXJpb2RpY19hZGp1c3RtZW50LCBkZWx0 YSk7Ci0JCU1MWDVfU0VUKG10cHBzX3JlZywgaW4sIGZpZWxkX3NlbGVjdCwKLQkJCSBNTFg1RV9N VFBQU19GU19QSU5fTU9ERSB8Ci0JCQkgTUxYNUVfTVRQUFNfRlNfRU5IX09VVF9QRVJfQURKKTsK LQotCQltbHg1X3NldF9tdHBwcyhwcml2LT5tZGV2LCBpbiwgc2l6ZW9mKGluKSk7Ci0JfQogCiAJ aWYgKGRlbHRhIDwgMCkgewogCQluZWdfYWRqID0gMTsKQEAgLTMxNSw3ICszMjcsNyBAQCBzdGF0 aWMgaW50IG1seDVlX3Blcm91dF9jb25maWd1cmUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAs CiAJc3RydWN0IG1seDVlX3ByaXYgKnByaXYgPQogCQljb250YWluZXJfb2YodHN0YW1wLCBzdHJ1 Y3QgbWx4NWVfcHJpdiwgdHN0YW1wKTsKIAl1MzIgaW5bTUxYNV9TVF9TWl9EVyhtdHBwc19yZWcp XSA9IHswfTsKLQl1NjQgbnNlY19ub3csIG5zZWNfZGVsdGEsIHRpbWVfc3RhbXA7CisJdTY0IG5z ZWNfbm93LCBuc2VjX2RlbHRhLCB0aW1lX3N0YW1wID0gMDsKIAl1NjQgY3ljbGVzX25vdywgY3lj bGVzX2RlbHRhOwogCXN0cnVjdCB0aW1lc3BlYzY0IHRzOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 CkBAIC0zMjMsNiArMzM1LDcgQEAgc3RhdGljIGludCBtbHg1ZV9wZXJvdXRfY29uZmlndXJlKHN0 cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLAogCXU4IHBpbl9tb2RlID0gMDsKIAl1OCBwYXR0ZXJu ID0gMDsKIAlpbnQgcGluID0gLTE7CisJaW50IGVyciA9IDA7CiAJczY0IG5zOwogCiAJaWYgKCFN TFg1X1BQU19DQVAocHJpdi0+bWRldikpCkBAIC0zNzMsNyArMzg2LDEyIEBAIHN0YXRpYyBpbnQg bWx4NWVfcGVyb3V0X2NvbmZpZ3VyZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwKIAlNTFg1 X1NFVDY0KG10cHBzX3JlZywgaW4sIHRpbWVfc3RhbXAsIHRpbWVfc3RhbXApOwogCU1MWDVfU0VU KG10cHBzX3JlZywgaW4sIGZpZWxkX3NlbGVjdCwgZmllbGRfc2VsZWN0KTsKIAotCXJldHVybiBt bHg1X3NldF9tdHBwcyhwcml2LT5tZGV2LCBpbiwgc2l6ZW9mKGluKSk7CisJZXJyID0gbWx4NV9z ZXRfbXRwcHMocHJpdi0+bWRldiwgaW4sIHNpemVvZihpbikpOworCWlmIChlcnIpCisJCXJldHVy biBlcnI7CisKKwlyZXR1cm4gbWx4NV9zZXRfbXRwcHNlKHByaXYtPm1kZXYsIHBpbiwgMCwKKwkJ CSAgICAgICBNTFg1RV9FVkVOVF9NT0RFX1JFUEVURVRJVkUgJiBvbik7CiB9CiAKIHN0YXRpYyBp bnQgbWx4NWVfcHRwX2VuYWJsZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwKQEAgLTQ1Nywy MiArNDc1LDUwIEBAIHN0YXRpYyB2b2lkIG1seDVlX2dldF9wcHNfY2FwcyhzdHJ1Y3QgbWx4NWVf cHJpdiAqcHJpdiwKIAl0c3RhbXAtPnB0cF9pbmZvLm5fcGVyX291dCA9IE1MWDVfR0VUKG10cHBz X3JlZywgb3V0LAogCQkJCQkgICAgICBjYXBfbWF4X251bV9vZl9wcHNfb3V0X3BpbnMpOwogCi0J dHN0YW1wLT5wcHNfcGluX2NhcHNbMF0gPSBNTFg1X0dFVChtdHBwc19yZWcsIG91dCwgY2FwX3Bp bl8wX21vZGUpOwotCXRzdGFtcC0+cHBzX3Bpbl9jYXBzWzFdID0gTUxYNV9HRVQobXRwcHNfcmVn LCBvdXQsIGNhcF9waW5fMV9tb2RlKTsKLQl0c3RhbXAtPnBwc19waW5fY2Fwc1syXSA9IE1MWDVf R0VUKG10cHBzX3JlZywgb3V0LCBjYXBfcGluXzJfbW9kZSk7Ci0JdHN0YW1wLT5wcHNfcGluX2Nh cHNbM10gPSBNTFg1X0dFVChtdHBwc19yZWcsIG91dCwgY2FwX3Bpbl8zX21vZGUpOwotCXRzdGFt cC0+cHBzX3Bpbl9jYXBzWzRdID0gTUxYNV9HRVQobXRwcHNfcmVnLCBvdXQsIGNhcF9waW5fNF9t b2RlKTsKLQl0c3RhbXAtPnBwc19waW5fY2Fwc1s1XSA9IE1MWDVfR0VUKG10cHBzX3JlZywgb3V0 LCBjYXBfcGluXzVfbW9kZSk7Ci0JdHN0YW1wLT5wcHNfcGluX2NhcHNbNl0gPSBNTFg1X0dFVCht dHBwc19yZWcsIG91dCwgY2FwX3Bpbl82X21vZGUpOwotCXRzdGFtcC0+cHBzX3Bpbl9jYXBzWzdd ID0gTUxYNV9HRVQobXRwcHNfcmVnLCBvdXQsIGNhcF9waW5fN19tb2RlKTsKKwl0c3RhbXAtPnBw c19pbmZvLnBpbl9jYXBzWzBdID0gTUxYNV9HRVQobXRwcHNfcmVnLCBvdXQsIGNhcF9waW5fMF9t b2RlKTsKKwl0c3RhbXAtPnBwc19pbmZvLnBpbl9jYXBzWzFdID0gTUxYNV9HRVQobXRwcHNfcmVn LCBvdXQsIGNhcF9waW5fMV9tb2RlKTsKKwl0c3RhbXAtPnBwc19pbmZvLnBpbl9jYXBzWzJdID0g TUxYNV9HRVQobXRwcHNfcmVnLCBvdXQsIGNhcF9waW5fMl9tb2RlKTsKKwl0c3RhbXAtPnBwc19p bmZvLnBpbl9jYXBzWzNdID0gTUxYNV9HRVQobXRwcHNfcmVnLCBvdXQsIGNhcF9waW5fM19tb2Rl KTsKKwl0c3RhbXAtPnBwc19pbmZvLnBpbl9jYXBzWzRdID0gTUxYNV9HRVQobXRwcHNfcmVnLCBv dXQsIGNhcF9waW5fNF9tb2RlKTsKKwl0c3RhbXAtPnBwc19pbmZvLnBpbl9jYXBzWzVdID0gTUxY NV9HRVQobXRwcHNfcmVnLCBvdXQsIGNhcF9waW5fNV9tb2RlKTsKKwl0c3RhbXAtPnBwc19pbmZv LnBpbl9jYXBzWzZdID0gTUxYNV9HRVQobXRwcHNfcmVnLCBvdXQsIGNhcF9waW5fNl9tb2RlKTsK Kwl0c3RhbXAtPnBwc19pbmZvLnBpbl9jYXBzWzddID0gTUxYNV9HRVQobXRwcHNfcmVnLCBvdXQs IGNhcF9waW5fN19tb2RlKTsKIH0KIAogdm9pZCBtbHg1ZV9wcHNfZXZlbnRfaGFuZGxlcihzdHJ1 Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAkJCSAgICAgc3RydWN0IHB0cF9jbG9ja19ldmVudCAqZXZl bnQpCiB7CisJc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiA9IHByaXYtPm5ldGRldjsKIAlzdHJ1 Y3QgbWx4NWVfdHN0YW1wICp0c3RhbXAgPSAmcHJpdi0+dHN0YW1wOworCXN0cnVjdCB0aW1lc3Bl YzY0IHRzOworCXU2NCBuc2VjX25vdywgbnNlY19kZWx0YTsKKwl1NjQgY3ljbGVzX25vdywgY3lj bGVzX2RlbHRhOworCWludCBwaW4gPSBldmVudC0+aW5kZXg7CisJczY0IG5zOworCXVuc2lnbmVk IGxvbmcgZmxhZ3M7CiAKLQlwdHBfY2xvY2tfZXZlbnQodHN0YW1wLT5wdHAsIGV2ZW50KTsKKwlz d2l0Y2ggKHRzdGFtcC0+cHRwX2luZm8ucGluX2NvbmZpZ1twaW5dLmZ1bmMpIHsKKwljYXNlIFBU UF9QRl9FWFRUUzoKKwkJcHRwX2Nsb2NrX2V2ZW50KHRzdGFtcC0+cHRwLCBldmVudCk7CisJCWJy ZWFrOworCWNhc2UgUFRQX1BGX1BFUk9VVDoKKwkJbWx4NWVfcHRwX2dldHRpbWUoJnRzdGFtcC0+ cHRwX2luZm8sICZ0cyk7CisJCWN5Y2xlc19ub3cgPSBtbHg1X3JlYWRfaW50ZXJuYWxfdGltZXIo dHN0YW1wLT5tZGV2KTsKKwkJdHMudHZfc2VjICs9IDE7CisJCXRzLnR2X25zZWMgPSAwOworCQlu cyA9IHRpbWVzcGVjNjRfdG9fbnMoJnRzKTsKKwkJd3JpdGVfbG9ja19pcnFzYXZlKCZ0c3RhbXAt PmxvY2ssIGZsYWdzKTsKKwkJbnNlY19ub3cgPSB0aW1lY291bnRlcl9jeWMydGltZSgmdHN0YW1w LT5jbG9jaywgY3ljbGVzX25vdyk7CisJCW5zZWNfZGVsdGEgPSBucyAtIG5zZWNfbm93OworCQlj eWNsZXNfZGVsdGEgPSBkaXY2NF91NjQobnNlY19kZWx0YSA8PCB0c3RhbXAtPmN5Y2xlcy5zaGlm dCwKKwkJCQkJIHRzdGFtcC0+Y3ljbGVzLm11bHQpOworCQl0c3RhbXAtPnBwc19pbmZvLnN0YXJ0 W3Bpbl0gPSBjeWNsZXNfbm93ICsgY3ljbGVzX2RlbHRhOworCQlxdWV1ZV93b3JrKHByaXYtPndx LCAmdHN0YW1wLT5wcHNfaW5mby5vdXRfd29yayk7CisJCXdyaXRlX3VubG9ja19pcnFyZXN0b3Jl KCZ0c3RhbXAtPmxvY2ssIGZsYWdzKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJbmV0ZGV2X2Vy cihuZXRkZXYsICIlczogVW5oYW5kbGVkIGV2ZW50XG4iLCBfX2Z1bmNfXyk7CisJfQogfQogCiB2 b2lkIG1seDVlX3RpbWVzdGFtcF9pbml0KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQpAQCAtNTA4 LDYgKzU1NCw3IEBAIHZvaWQgbWx4NWVfdGltZXN0YW1wX2luaXQoc3RydWN0IG1seDVlX3ByaXYg KnByaXYpCiAJZG9fZGl2KG5zLCBOU0VDX1BFUl9TRUMgLyAyIC8gSFopOwogCXRzdGFtcC0+b3Zl cmZsb3dfcGVyaW9kID0gbnM7CiAKKwlJTklUX1dPUksoJnRzdGFtcC0+cHBzX2luZm8ub3V0X3dv cmssIG1seDVlX3Bwc19vdXQpOwogCUlOSVRfREVMQVlFRF9XT1JLKCZ0c3RhbXAtPm92ZXJmbG93 X3dvcmssIG1seDVlX3RpbWVzdGFtcF9vdmVyZmxvdyk7CiAJaWYgKHRzdGFtcC0+b3ZlcmZsb3df cGVyaW9kKQogCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJnRzdGFtcC0+b3ZlcmZsb3dfd29yaywg MCk7CkBAIC01MTksMTYgKzU2NiwxMCBAQCB2b2lkIG1seDVlX3RpbWVzdGFtcF9pbml0KHN0cnVj dCBtbHg1ZV9wcml2ICpwcml2KQogCXNucHJpbnRmKHRzdGFtcC0+cHRwX2luZm8ubmFtZSwgMTYs ICJtbHg1IHB0cCIpOwogCiAJLyogSW5pdGlhbGl6ZSAxUFBTIGRhdGEgc3RydWN0dXJlcyAqLwot I2RlZmluZSBNQVhfUElOX05VTQk4Ci0JdHN0YW1wLT5wcHNfcGluX2NhcHMgPSBremFsbG9jKHNp emVvZih1OCkgKiBNQVhfUElOX05VTSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKHRzdGFtcC0+cHBzX3Bp bl9jYXBzKSB7Ci0JCWlmIChNTFg1X1BQU19DQVAocHJpdi0+bWRldikpCi0JCQltbHg1ZV9nZXRf cHBzX2NhcHMocHJpdiwgdHN0YW1wKTsKLQkJaWYgKHRzdGFtcC0+cHRwX2luZm8ubl9waW5zKQot CQkJbWx4NWVfaW5pdF9waW5fY29uZmlnKHRzdGFtcCk7Ci0JfSBlbHNlIHsKLQkJbWx4NV9jb3Jl X3dhcm4ocHJpdi0+bWRldiwgIjFQUFMgaW5pdGlhbGl6YXRpb24gZmFpbGVkXG4iKTsKLQl9CisJ aWYgKE1MWDVfUFBTX0NBUChwcml2LT5tZGV2KSkKKwkJbWx4NWVfZ2V0X3Bwc19jYXBzKHByaXYs IHRzdGFtcCk7CisJaWYgKHRzdGFtcC0+cHRwX2luZm8ubl9waW5zKQorCQltbHg1ZV9pbml0X3Bp bl9jb25maWcodHN0YW1wKTsKIAogCXRzdGFtcC0+cHRwID0gcHRwX2Nsb2NrX3JlZ2lzdGVyKCZ0 c3RhbXAtPnB0cF9pbmZvLAogCQkJCQkgJnByaXYtPm1kZXYtPnBkZXYtPmRldik7CkBAIC01NTEs NyArNTkyLDggQEAgdm9pZCBtbHg1ZV90aW1lc3RhbXBfY2xlYW51cChzdHJ1Y3QgbWx4NWVfcHJp diAqcHJpdikKIAkJcHJpdi0+dHN0YW1wLnB0cCA9IE5VTEw7CiAJfQogCi0Ja2ZyZWUodHN0YW1w LT5wcHNfcGluX2NhcHMpOworCWNhbmNlbF93b3JrX3N5bmMoJnRzdGFtcC0+cHBzX2luZm8ub3V0 X3dvcmspOworCiAJa2ZyZWUodHN0YW1wLT5wdHBfaW5mby5waW5fY29uZmlnKTsKIAogCWNhbmNl bF9kZWxheWVkX3dvcmtfc3luYygmdHN0YW1wLT5vdmVyZmxvd193b3JrKTsKLS0gCjIuMTMuNAoK CkZyb20gN2FlZjk2YmMxNTkxMTg0NjI4Y2VjMjYyMjJmNDAwZGIyZTA0MjA4OCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRXVnZW5pYSBFbWFudGF5ZXYgPGV1Z2VuaWFAbWVsbGFub3gu Y29tPgpEYXRlOiBTdW4sIDI4IE1heSAyMDE3IDE0OjI3OjAyICswMzAwClN1YmplY3Q6IFtQQVRD SCAzOC80NV0gbmV0L21seDVlOiBBZGQgbWlzc2luZyBzdXBwb3J0IGZvciBQVFBfQ0xLX1JFUV9Q UFMKIHJlcXVlc3QKClsgVXBzdHJlYW0gY29tbWl0IGNmNTAzMzA4OWIwNzgzMDNiMTAyYjY1ZTNj Y2JiZmEzY2UwZjQzNjcgXQoKQWRkIHRoZSBtaXNzaW5nIG9wdGlvbiB0byBlbmFibGUgdGhlIFBU UF9DTEtfUFBTIGZ1bmN0aW9uLgpJbiB0aGlzIGNhc2UgcGluIHNob3VsZCBiZSBjb25maWd1cmVk IGFzIDFQUFMgSU4gZmlyc3QgYW5kCnRoZW4gaXQgd2lsbCBiZSBjb25uZWN0ZWQgdG8gUFBTIG1l Y2hhbmlzbS4KRXZlbnRzIHdpbGwgYmUgcmVwb3J0ZWQgYXMgUFRQX0NMT0NLX1BQU1VTUiBldmVu dHMgdG8gcmVsZXZhbnQgc3lzZnMuCgpGaXhlczogZWU3ZjEyMjA1YWJjICgnbmV0L21seDVlOiBJ bXBsZW1lbnQgMVBQUyBzdXBwb3J0JykKU2lnbmVkLW9mZi1ieTogRXVnZW5pYSBFbWFudGF5ZXYg PGV1Z2VuaWFAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2Fl ZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW4uaCAgICAgICB8ICAxICsKIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9jbG9jay5jIHwgMjAgKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgIHwgIDEgLQogMyBmaWxlcyBj aGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmggYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaAppbmRleCAwOGMzMDNjMGJlMTAuLjNiMzlk YmQ5N2U1NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu LmgKQEAgLTI2Niw2ICsyNjYsNyBAQCBzdHJ1Y3QgbWx4NWVfcHBzIHsKIAl1OCAgICAgICAgICAg ICAgICAgICAgICAgICBwaW5fY2Fwc1tNQVhfUElOX05VTV07CiAJc3RydWN0IHdvcmtfc3RydWN0 ICAgICAgICAgb3V0X3dvcms7CiAJdTY0ICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRbTUFY X1BJTl9OVU1dOworCXU4ICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ7CiB9OwogCiBz dHJ1Y3QgbWx4NWVfdHN0YW1wIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbl9jbG9jay5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuX2Nsb2NrLmMKaW5kZXggZGE5ZmEyMGY5M2Q1Li5hOTcyMTI1NzA4Yzgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9j bG9jay5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9j bG9jay5jCkBAIC0zOTQsNiArMzk0LDE3IEBAIHN0YXRpYyBpbnQgbWx4NWVfcGVyb3V0X2NvbmZp Z3VyZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwKIAkJCSAgICAgICBNTFg1RV9FVkVOVF9N T0RFX1JFUEVURVRJVkUgJiBvbik7CiB9CiAKK3N0YXRpYyBpbnQgbWx4NWVfcHBzX2NvbmZpZ3Vy ZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwKKwkJCSAgICAgICBzdHJ1Y3QgcHRwX2Nsb2Nr X3JlcXVlc3QgKnJxLAorCQkJICAgICAgIGludCBvbikKK3sKKwlzdHJ1Y3QgbWx4NWVfdHN0YW1w ICp0c3RhbXAgPQorCQljb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgbWx4NWVfdHN0YW1wLCBwdHBf aW5mbyk7CisKKwl0c3RhbXAtPnBwc19pbmZvLmVuYWJsZWQgPSAhIW9uOworCXJldHVybiAwOwor fQorCiBzdGF0aWMgaW50IG1seDVlX3B0cF9lbmFibGUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpw dHAsCiAJCQkgICAgc3RydWN0IHB0cF9jbG9ja19yZXF1ZXN0ICpycSwKIAkJCSAgICBpbnQgb24p CkBAIC00MDMsNiArNDE0LDggQEAgc3RhdGljIGludCBtbHg1ZV9wdHBfZW5hYmxlKHN0cnVjdCBw dHBfY2xvY2tfaW5mbyAqcHRwLAogCQlyZXR1cm4gbWx4NWVfZXh0dHNfY29uZmlndXJlKHB0cCwg cnEsIG9uKTsKIAljYXNlIFBUUF9DTEtfUkVRX1BFUk9VVDoKIAkJcmV0dXJuIG1seDVlX3Blcm91 dF9jb25maWd1cmUocHRwLCBycSwgb24pOworCWNhc2UgUFRQX0NMS19SRVFfUFBTOgorCQlyZXR1 cm4gbWx4NWVfcHBzX2NvbmZpZ3VyZShwdHAsIHJxLCBvbik7CiAJZGVmYXVsdDoKIAkJcmV0dXJu IC1FT1BOT1RTVVBQOwogCX0KQEAgLTQ0OCw2ICs0NjEsNyBAQCBzdGF0aWMgaW50IG1seDVlX2lu aXRfcGluX2NvbmZpZyhzdHJ1Y3QgbWx4NWVfdHN0YW1wICp0c3RhbXApCiAJCXJldHVybiAtRU5P TUVNOwogCXRzdGFtcC0+cHRwX2luZm8uZW5hYmxlID0gbWx4NWVfcHRwX2VuYWJsZTsKIAl0c3Rh bXAtPnB0cF9pbmZvLnZlcmlmeSA9IG1seDVlX3B0cF92ZXJpZnk7CisJdHN0YW1wLT5wdHBfaW5m by5wcHMgPSAxOwogCiAJZm9yIChpID0gMDsgaSA8IHRzdGFtcC0+cHRwX2luZm8ubl9waW5zOyBp KyspIHsKIAkJc25wcmludGYodHN0YW1wLT5wdHBfaW5mby5waW5fY29uZmlnW2ldLm5hbWUsCkBA IC00OTksNiArNTEzLDEyIEBAIHZvaWQgbWx4NWVfcHBzX2V2ZW50X2hhbmRsZXIoc3RydWN0IG1s eDVlX3ByaXYgKnByaXYsCiAKIAlzd2l0Y2ggKHRzdGFtcC0+cHRwX2luZm8ucGluX2NvbmZpZ1tw aW5dLmZ1bmMpIHsKIAljYXNlIFBUUF9QRl9FWFRUUzoKKwkJaWYgKHRzdGFtcC0+cHBzX2luZm8u ZW5hYmxlZCkgeworCQkJZXZlbnQtPnR5cGUgPSBQVFBfQ0xPQ0tfUFBTVVNSOworCQkJZXZlbnQt PnBwc190aW1lcy50c19yZWFsID0gbnNfdG9fdGltZXNwZWM2NChldmVudC0+dGltZXN0YW1wKTsK KwkJfSBlbHNlIHsKKwkJCWV2ZW50LT50eXBlID0gUFRQX0NMT0NLX0VYVFRTOworCQl9CiAJCXB0 cF9jbG9ja19ldmVudCh0c3RhbXAtPnB0cCwgZXZlbnQpOwogCQlicmVhazsKIAljYXNlIFBUUF9Q Rl9QRVJPVVQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX21haW4uYwppbmRleCA3ODE5ZmU5ZWRlMjIuLjA3MmFhOGExM2EwYSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCkBAIC0zNjUs NyArMzY1LDYgQEAgc3RhdGljIHZvaWQgbWx4NWVfYXN5bmNfZXZlbnQoc3RydWN0IG1seDVfY29y ZV9kZXYgKm1kZXYsIHZvaWQgKnZwcml2LAogCQlicmVhazsKIAljYXNlIE1MWDVfREVWX0VWRU5U X1BQUzoKIAkJZXFlID0gKHN0cnVjdCBtbHg1X2VxZSAqKXBhcmFtOwotCQlwdHBfZXZlbnQudHlw ZSA9IFBUUF9DTE9DS19FWFRUUzsKIAkJcHRwX2V2ZW50LmluZGV4ID0gZXFlLT5kYXRhLnBwcy5w aW47CiAJCXB0cF9ldmVudC50aW1lc3RhbXAgPQogCQkJdGltZWNvdW50ZXJfY3ljMnRpbWUoJnBy aXYtPnRzdGFtcC5jbG9jaywKLS0gCjIuMTMuNAoKCkZyb20gNDk5YzgxZTEzMjA3YmYwMDQxYzkw NjJiOWE4MzMzNTI4N2VjMjhlMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXVnZW5p YSBFbWFudGF5ZXYgPGV1Z2VuaWFAbWVsbGFub3guY29tPgpEYXRlOiBXZWQsIDEyIEp1bCAyMDE3 IDE3OjI3OjE4ICswMzAwClN1YmplY3Q6IFtQQVRDSCAzOS80NV0gbmV0L21seDVlOiBGaXggd3Jv bmcgZGVsYXkgY2FsY3VsYXRpb24gZm9yIG92ZXJmbG93CiBjaGVjayBzY2hlZHVsaW5nCgpbIFVw c3RyZWFtIGNvbW1pdCBkNDM5Yzg0NTA5YTUxMGU4NjRmZGM2MTY2Yzc2MDQ4MmNkMDNmYzU3IF0K ClRoZSBvdmVyZmxvd19wZXJpb2QgaXMgY2FsY3VsYXRlZCBpbiBzZWNvbmRzLiBJbiBvcmRlciB0 byB1c2UgaXQKZm9yIGRlbGF5ZWQgd29yayBzY2hlZHVsaW5nIHRyYW5zbGF0aW9uIHRvIGppZmZp ZXMgaXMgbmVlZGVkLgoKRml4ZXM6IGVmOTgxNGRlYWZkMCAoJ25ldC9tbHg1ZTogQWRkIEhXIHRp bWVzdGFtcGluZyAoVFMpIHN1cHBvcnQnKQpTaWduZWQtb2ZmLWJ5OiBFdWdlbmlhIEVtYW50YXll diA8ZXVnZW5pYUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxz YWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9jbG9jay5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fY2xvY2suYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbl9jbG9jay5jCmluZGV4IGE5NzIxMjU3MDhjOC4uNWQ5YzBmMWQ1ZGQxIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY2xv Y2suYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY2xv Y2suYwpAQCAtMTE5LDcgKzExOSw4IEBAIHN0YXRpYyB2b2lkIG1seDVlX3RpbWVzdGFtcF9vdmVy ZmxvdyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJd3JpdGVfbG9ja19pcnFzYXZlKCZ0c3Rh bXAtPmxvY2ssIGZsYWdzKTsKIAl0aW1lY291bnRlcl9yZWFkKCZ0c3RhbXAtPmNsb2NrKTsKIAl3 cml0ZV91bmxvY2tfaXJxcmVzdG9yZSgmdHN0YW1wLT5sb2NrLCBmbGFncyk7Ci0Jc2NoZWR1bGVf ZGVsYXllZF93b3JrKCZ0c3RhbXAtPm92ZXJmbG93X3dvcmssIHRzdGFtcC0+b3ZlcmZsb3dfcGVy aW9kKTsKKwlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJnRzdGFtcC0+b3ZlcmZsb3dfd29yaywKKwkJ CSAgICAgIG1zZWNzX3RvX2ppZmZpZXModHN0YW1wLT5vdmVyZmxvd19wZXJpb2QgKiAxMDAwKSk7 CiB9CiAKIGludCBtbHg1ZV9od3N0YW1wX3NldChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1 Y3QgaWZyZXEgKmlmcikKLS0gCjIuMTMuNAoKCkZyb20gYzQ0NDg2NjdjMmJhNmUyYjU1OTJkZjFm OTU4ZTY5YWRmZDVjNzM2ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXVnZW5pYSBF bWFudGF5ZXYgPGV1Z2VuaWFAbWVsbGFub3guY29tPgpEYXRlOiBXZWQsIDEyIEp1bCAyMDE3IDE3 OjQ0OjA3ICswMzAwClN1YmplY3Q6IFtQQVRDSCA0MC80NV0gbmV0L21seDVlOiBTY2hlZHVsZSBv dmVyZmxvdyBjaGVjayB3b3JrIHRvIG1seDVlCiB3b3JrcXVldWUKClsgVXBzdHJlYW0gY29tbWl0 IGYwOGMzOWVkMGJmYjUwM2M3YjNlMDEzY2Q0MGQwMzZjZTZhMDk0MWEgXQoKVGhpcyBpcyBkb25l IGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHdvcmsgd2lsbCBub3QgcnVuIGFmdGVyIHRoZSBjbGVh bnVwLgoKRml4ZXM6IGVmOTgxNGRlYWZkMCAoJ25ldC9tbHg1ZTogQWRkIEhXIHRpbWVzdGFtcGlu ZyAoVFMpIHN1cHBvcnQnKQpTaWduZWQtb2ZmLWJ5OiBFdWdlbmlhIEVtYW50YXlldiA8ZXVnZW5p YUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVs bGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl9jbG9jay5jIHwgMTEgKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX2Nsb2NrLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW5fY2xvY2suYwppbmRleCA1ZDljMGYxZDVkZDEuLjgwYzUwMGY4N2FiNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2Ns b2NrLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2Ns b2NrLmMKQEAgLTExNCwxMyArMTE0LDE0IEBAIHN0YXRpYyB2b2lkIG1seDVlX3RpbWVzdGFtcF9v dmVyZmxvdyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJc3RydWN0IGRlbGF5ZWRfd29yayAq ZHdvcmsgPSB0b19kZWxheWVkX3dvcmsod29yayk7CiAJc3RydWN0IG1seDVlX3RzdGFtcCAqdHN0 YW1wID0gY29udGFpbmVyX29mKGR3b3JrLCBzdHJ1Y3QgbWx4NWVfdHN0YW1wLAogCQkJCQkJICAg b3ZlcmZsb3dfd29yayk7CisJc3RydWN0IG1seDVlX3ByaXYgKnByaXYgPSBjb250YWluZXJfb2Yo dHN0YW1wLCBzdHJ1Y3QgbWx4NWVfcHJpdiwgdHN0YW1wKTsKIAl1bnNpZ25lZCBsb25nIGZsYWdz OwogCiAJd3JpdGVfbG9ja19pcnFzYXZlKCZ0c3RhbXAtPmxvY2ssIGZsYWdzKTsKIAl0aW1lY291 bnRlcl9yZWFkKCZ0c3RhbXAtPmNsb2NrKTsKIAl3cml0ZV91bmxvY2tfaXJxcmVzdG9yZSgmdHN0 YW1wLT5sb2NrLCBmbGFncyk7Ci0Jc2NoZWR1bGVfZGVsYXllZF93b3JrKCZ0c3RhbXAtPm92ZXJm bG93X3dvcmssCi0JCQkgICAgICBtc2Vjc190b19qaWZmaWVzKHRzdGFtcC0+b3ZlcmZsb3dfcGVy aW9kICogMTAwMCkpOworCXF1ZXVlX2RlbGF5ZWRfd29yayhwcml2LT53cSwgJnRzdGFtcC0+b3Zl cmZsb3dfd29yaywKKwkJCSAgIG1zZWNzX3RvX2ppZmZpZXModHN0YW1wLT5vdmVyZmxvd19wZXJp b2QgKiAxMDAwKSk7CiB9CiAKIGludCBtbHg1ZV9od3N0YW1wX3NldChzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgaWZyZXEgKmlmcikKQEAgLTU3OCw3ICs1NzksNyBAQCB2b2lkIG1seDVl X3RpbWVzdGFtcF9pbml0KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogCUlOSVRfV09SSygmdHN0 YW1wLT5wcHNfaW5mby5vdXRfd29yaywgbWx4NWVfcHBzX291dCk7CiAJSU5JVF9ERUxBWUVEX1dP UksoJnRzdGFtcC0+b3ZlcmZsb3dfd29yaywgbWx4NWVfdGltZXN0YW1wX292ZXJmbG93KTsKIAlp ZiAodHN0YW1wLT5vdmVyZmxvd19wZXJpb2QpCi0JCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmdHN0 YW1wLT5vdmVyZmxvd193b3JrLCAwKTsKKwkJcXVldWVfZGVsYXllZF93b3JrKHByaXYtPndxLCAm dHN0YW1wLT5vdmVyZmxvd193b3JrLCAwKTsKIAllbHNlCiAJCW1seDVfY29yZV93YXJuKHByaXYt Pm1kZXYsICJpbnZhbGlkIG92ZXJmbG93IHBlcmlvZCwgb3ZlcmZsb3dfd29yayBpcyBub3Qgc2No ZWR1bGVkXG4iKTsKIApAQCAtNjE0LDggKzYxNSw2IEBAIHZvaWQgbWx4NWVfdGltZXN0YW1wX2Ns ZWFudXAoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAJfQogCiAJY2FuY2VsX3dvcmtfc3luYygm dHN0YW1wLT5wcHNfaW5mby5vdXRfd29yayk7Ci0KLQlrZnJlZSh0c3RhbXAtPnB0cF9pbmZvLnBp bl9jb25maWcpOwotCiAJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZ0c3RhbXAtPm92ZXJmbG93 X3dvcmspOworCWtmcmVlKHRzdGFtcC0+cHRwX2luZm8ucGluX2NvbmZpZyk7CiB9Ci0tIAoyLjEz LjQKCgpGcm9tIDcwNmY1YTQwY2VhZmNjZjc0YjYyMWVhYzliMDE5NmZiNjg4ZjBhZTcgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBhdWwgQmxha2V5IDxwYXVsYkBtZWxsYW5veC5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAxNyAxNjo0MDozNCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggNDEv NDVdIG5ldC9tbHg1OiBGaXggbWx4NV9hZGRfZmxvd19ydWxlcyBjYWxsIHdpdGggY29ycmVjdCBu dW0KIG9mIGRlc3RzCgpbIFVwc3RyZWFtIGNvbW1pdCBiY2VjNjAxZjMwZmI0MWU5MjMzNjc0OTQy ZmE0MDQwYTZlNjM2NTdhIF0KCldoZW4gYWRkaW5nIGV0aHRvb2wgc3RlZXJpbmcgcnVsZSB3aXRo IGFjdGlvbiBESVNDQVJEIHdlIHdyb25nbHkKcGFzcyBhIE5VTEwgZGVzdCB3aXRoIGRlc3RfbnVt IDEgdG8gbWx4NV9hZGRfZmxvd19ydWxlcygpLgpXaGF0IHRoaXMgZXJyb3Igc2VlbXMgdG8gaGF2 ZSBjYXVzZWQgaXMgc2VuZGluZyBWUE9SVCAwCihNTFg1X0ZMT1dfREVTVElOQVRJT05fVFlQRV9W UE9SVCkgYXMgdGhlIGZ0ZSBkZXN0IGluc3RlYWQgb2Ygbm8gZGVzdHMuCldlIGhhdmUgZnRlIGFj dGlvbiBjb3JyZWN0bHkgc2V0IHRvIERST1Agc28gaXQgbWlnaHQgYmVlbiBpZ25vcmVkCmFueXdh eXMuCgpUbyByZXByb2R1Y2UgdXNlOgogIyBzdWRvIGV0aHRvb2wgLS1jb25maWctbmZjIDxkZXY+ IGZsb3ctdHlwZSBldGhlciBcCiAgIGRzdCBhYTpiYjpjYzpkZDplZTpmZiBhY3Rpb24gLTEKCkZp eGVzOiA3NDQ5MWRlOTM3MTIgKCJuZXQvbWx4NTogQWRkIG11bHRpIGRlc3Qgc3VwcG9ydCIpClNp Z25lZC1vZmYtYnk6IFBhdWwgQmxha2V5IDxwYXVsYkBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5 OiBNYXJrIEJsb2NoIDxtYXJrYkBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1h aGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbl9mc19ldGh0b29sLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZnNfZXRodG9vbC5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2ZzX2V0aHRvb2wuYwppbmRleCA5NjlkZGIz YWFmNmUuLjk4NjM4N2RlMTNlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX2ZzX2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZnNfZXRodG9vbC5jCkBAIC0zMjAsNyArMzIwLDcgQEAg YWRkX2V0aHRvb2xfZmxvd19ydWxlKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAogCiAJc3BlYy0+ bWF0Y2hfY3JpdGVyaWFfZW5hYmxlID0gKCFvdXRlcl9oZWFkZXJfemVybyhzcGVjLT5tYXRjaF9j cml0ZXJpYSkpOwogCWZsb3dfYWN0LmZsb3dfdGFnID0gTUxYNV9GU19ERUZBVUxUX0ZMT1dfVEFH OwotCXJ1bGUgPSBtbHg1X2FkZF9mbG93X3J1bGVzKGZ0LCBzcGVjLCAmZmxvd19hY3QsIGRzdCwg MSk7CisJcnVsZSA9IG1seDVfYWRkX2Zsb3dfcnVsZXMoZnQsIHNwZWMsICZmbG93X2FjdCwgZHN0 LCBkc3QgPyAxIDogMCk7CiAJaWYgKElTX0VSUihydWxlKSkgewogCQllcnIgPSBQVFJfRVJSKHJ1 bGUpOwogCQluZXRkZXZfZXJyKHByaXYtPm5ldGRldiwgIiVzOiBmYWlsZWQgdG8gYWRkIGV0aHRv b2wgc3RlZXJpbmcgcnVsZTogJWRcbiIsCi0tIAoyLjEzLjQKCgpGcm9tIGYzNzNlMDdkZDYyMjRh Y2UyNmRmOWU2ZWYzMDlmYjIzOWE0ZjU0OGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KRGF0ZTogVGh1LCAyNyBKdWwgMjAxNyAx NDo0NTowOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDIvNDVdIHVkcDY6IGZpeCBzb2NrZXQgbGVh ayBvbiBlYXJseSBkZW11eAoKWyBVcHN0cmVhbSBjb21taXQgYzlmMmMxYWUxMjNhNzUxZDRlNGY5 NDkxNDQ1MDAyMTkzNTRkNWVlMSBdCgpXaGVuIGFuIGVhcmx5IGRlbXV4ZWQgcGFja2V0IHJlYWNo ZXMgX191ZHA2X2xpYl9sb29rdXBfc2tiKCksIHRoZQpzayByZWZlcmVuY2UgaXMgcmV0cmlldmVk IGFuZCB1c2VkLCBidXQgdGhlIHJlbGV2YW50IHJlZmVyZW5jZQpjb3VudCBpcyBsZWFrZWQgYW5k IHRoZSBzb2NrZXQgZGVzdHJ1Y3RvciBpcyBuZXZlciBjYWxsZWQuCkJleW9uZCBsZWFraW5nIHRo ZSBzayBtZW1vcnksIGlmIHRoZXJlIGFyZSBwZW5kaW5nIFVEUCBwYWNrZXRzCmluIHRoZSByZWNl aXZlIHF1ZXVlLCBldmVuIHRoZSByZWxhdGVkIGFjY291bnRlZCBtZW1vcnkgaXMgbGVha2VkLgoK SW4gdGhlIGxvbmcgcnVuLCB0aGlzIHdpbGwgY2F1c2UgcGVyc2lzdGVudCBmb3J3YXJkIGFsbG9j YXRpb24gZXJyb3JzCmFuZCBubyBVRFAgc2ticyAoYm90aCBpcHY0IGFuZCBpcHY2KSB3aWxsIGJl IGFibGUgdG8gcmVhY2ggdGhlCnVzZXItc3BhY2UuCgpGaXggdGhpcyBieSBleHBsaWNpdGx5IGFj Y2Vzc2luZyB0aGUgZWFybHkgZGVtdXggcmVmZXJlbmNlIGJlZm9yZQp0aGUgbG9va3VwLCBhbmQg cHJvcGVybHkgZGVjcmVhc2luZyB0aGUgc29ja2V0IHJlZmVyZW5jZSBjb3VudAphZnRlciB1c2Fn ZS4KCkFsc28gZHJvcCB0aGUgc2tiX3N0ZWFsX3NvY2soKSBpbiBfX3VkcDZfbGliX2xvb2t1cF9z a2IoKSwgYW5kCnRoZSBub3cgb2Jzb2xldGVkIGNvbW1lbnQgYWJvdXQgInNvY2tldCBjYWNoZSIu CgpUaGUgbmV3bHkgYWRkZWQgY29kZSBpcyBkZXJpdmVkIGZyb20gdGhlIGN1cnJlbnQgaXB2NCBj b2RlIGZvciB0aGUKc2ltaWxhciBwYXRoLgoKdjEgLT4gdjI6CiAgZml4ZWQgdGhlIF9fdWRwNl9s aWJfcmN2KCkgcmV0dXJuIGNvZGUgZm9yIHJlc3VibWlzc2lvbiwKICBhcyBzdWdnZXN0ZWQgYnkg RXJpYwoKUmVwb3J0ZWQtYnk6IFNhbSBFZHdhcmRzIDxDRlN3b3Jrc0BnbWFpbC5jb20+ClJlcG9y dGVkLWJ5OiBNYXJjIEhhYmVyIDxtaCtuZXRkZXZAenVnc2NobHVzLmRlPgpGaXhlczogNTQyNTA3 N2Q3M2UwICgibmV0OiBpcHY2OiBBZGQgZWFybHkgZGVtdXggaGFuZGxlciBmb3IgVURQIHVuaWNh c3QiKQpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+CkFja2Vk LWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC91ZHAu aCB8ICAxICsKIG5ldC9pcHY0L3VkcC5jICAgIHwgIDMgKystCiBuZXQvaXB2Ni91ZHAuYyAgICB8 IDI3ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNl cnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC91ZHAu aCBiL2luY2x1ZGUvbmV0L3VkcC5oCmluZGV4IDMzOTFkYmQ3Mzk1OS4uMTkzMzQ0MmNmMWE2IDEw MDY0NAotLS0gYS9pbmNsdWRlL25ldC91ZHAuaAorKysgYi9pbmNsdWRlL25ldC91ZHAuaApAQCAt MjY1LDYgKzI2NSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNrX2J1ZmYgKnNrYl9yZWN2X3Vk cChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIGludCBmbGFncywKIH0KIAogdm9pZCB1ZHBfdjRf ZWFybHlfZGVtdXgoc3RydWN0IHNrX2J1ZmYgKnNrYik7Cit2b2lkIHVkcF9za19yeF9kc3Rfc2V0 KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGRzdF9lbnRyeSAqZHN0KTsKIGludCB1ZHBfZ2V0X3Bv cnQoc3RydWN0IHNvY2sgKnNrLCB1bnNpZ25lZCBzaG9ydCBzbnVtLAogCQkgaW50ICgqc2FkZHJf Y21wKShjb25zdCBzdHJ1Y3Qgc29jayAqLAogCQkJCSAgY29uc3Qgc3RydWN0IHNvY2sgKikpOwpk aWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCAxZDYyMTli ZjJkNmIuLmI5YTg0ZWJhNjBiOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0 L2lwdjQvdWRwLmMKQEAgLTE3NjIsNyArMTc2Miw3IEBAIHN0YXRpYyBpbnQgdWRwX3F1ZXVlX3Jj dl9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogLyogRm9yIFRDUCBz b2NrZXRzLCBza19yeF9kc3QgaXMgcHJvdGVjdGVkIGJ5IHNvY2tldCBsb2NrCiAgKiBGb3IgVURQ LCB3ZSB1c2UgeGNoZygpIHRvIGd1YXJkIGFnYWluc3QgY29uY3VycmVudCBjaGFuZ2VzLgogICov Ci1zdGF0aWMgdm9pZCB1ZHBfc2tfcnhfZHN0X3NldChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBk c3RfZW50cnkgKmRzdCkKK3ZvaWQgdWRwX3NrX3J4X2RzdF9zZXQoc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3QgZHN0X2VudHJ5ICpkc3QpCiB7CiAJc3RydWN0IGRzdF9lbnRyeSAqb2xkOwogCkBAIC0y MTIwLDYgKzIxMjAsNyBAQCB2b2lkIHVkcF9kZXN0cm95X3NvY2soc3RydWN0IHNvY2sgKnNrKQog CQkJZW5jYXBfZGVzdHJveShzayk7CiAJfQogfQorRVhQT1JUX1NZTUJPTCh1ZHBfc2tfcnhfZHN0 X3NldCk7CiAKIC8qCiAgKglTb2NrZXQgb3B0aW9uIGNvZGUgZm9yIFVEUApkaWZmIC0tZ2l0IGEv bmV0L2lwdjYvdWRwLmMgYi9uZXQvaXB2Ni91ZHAuYwppbmRleCA3NTcwM2ZkYTIzZTcuLjU5MjI3 MGMzMTBmNCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvdWRwLmMKKysrIGIvbmV0L2lwdjYvdWRwLmMK QEAgLTI5MSwxMSArMjkxLDcgQEAgc3RhdGljIHN0cnVjdCBzb2NrICpfX3VkcDZfbGliX2xvb2t1 cF9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkJICBzdHJ1Y3QgdWRwX3RhYmxlICp1ZHB0 YWJsZSkKIHsKIAljb25zdCBzdHJ1Y3QgaXB2NmhkciAqaXBoID0gaXB2Nl9oZHIoc2tiKTsKLQlz dHJ1Y3Qgc29jayAqc2s7CiAKLQlzayA9IHNrYl9zdGVhbF9zb2NrKHNrYik7Ci0JaWYgKHVubGlr ZWx5KHNrKSkKLQkJcmV0dXJuIHNrOwogCXJldHVybiBfX3VkcDZfbGliX2xvb2t1cChkZXZfbmV0 KHNrYi0+ZGV2KSwgJmlwaC0+c2FkZHIsIHNwb3J0LAogCQkJCSAmaXBoLT5kYWRkciwgZHBvcnQs IGluZXQ2X2lpZihza2IpLAogCQkJCSB1ZHB0YWJsZSwgc2tiKTsKQEAgLTc5OCw2ICs3OTQsMjQg QEAgaW50IF9fdWRwNl9saWJfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB1ZHBfdGFi bGUgKnVkcHRhYmxlLAogCWlmICh1ZHA2X2NzdW1faW5pdChza2IsIHVoLCBwcm90bykpCiAJCWdv dG8gY3N1bV9lcnJvcjsKIAorCS8qIENoZWNrIGlmIHRoZSBzb2NrZXQgaXMgYWxyZWFkeSBhdmFp bGFibGUsIGUuZy4gZHVlIHRvIGVhcmx5IGRlbXV4ICovCisJc2sgPSBza2Jfc3RlYWxfc29jayhz a2IpOworCWlmIChzaykgeworCQlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QgPSBza2JfZHN0KHNrYik7 CisJCWludCByZXQ7CisKKwkJaWYgKHVubGlrZWx5KHNrLT5za19yeF9kc3QgIT0gZHN0KSkKKwkJ CXVkcF9za19yeF9kc3Rfc2V0KHNrLCBkc3QpOworCisJCXJldCA9IHVkcHY2X3F1ZXVlX3Jjdl9z a2Ioc2ssIHNrYik7CisJCXNvY2tfcHV0KHNrKTsKKworCQkvKiBhIHJldHVybiB2YWx1ZSA+IDAg bWVhbnMgdG8gcmVzdWJtaXQgdGhlIGlucHV0ICovCisJCWlmIChyZXQgPiAwKQorCQkJcmV0dXJu IHJldDsKKwkJcmV0dXJuIDA7CisJfQorCiAJLyoKIAkgKglNdWx0aWNhc3QgcmVjZWl2ZSBjb2Rl CiAJICovCkBAIC04MDYsMTEgKzgyMCw2IEBAIGludCBfX3VkcDZfbGliX3JjdihzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgdWRwX3RhYmxlICp1ZHB0YWJsZSwKIAkJCQlzYWRkciwgZGFkZHIs IHVkcHRhYmxlLCBwcm90byk7CiAKIAkvKiBVbmljYXN0ICovCi0KLQkvKgotCSAqIGNoZWNrIHNv Y2tldCBjYWNoZSAuLi4gbXVzdCB0YWxrIHRvIEFsYW4gYWJvdXQgaGlzIHBsYW5zCi0JICogZm9y IHNvY2sgY2FjaGVzLi4uIGknbGwgc2tpcCB0aGlzIGZvciBub3cuCi0JICovCiAJc2sgPSBfX3Vk cDZfbGliX2xvb2t1cF9za2Ioc2tiLCB1aC0+c291cmNlLCB1aC0+ZGVzdCwgdWRwdGFibGUpOwog CWlmIChzaykgewogCQlpbnQgcmV0OwotLSAKMi4xMy40CgoKRnJvbSAwOTBmMThhMjE0ZDk3ZjQ4 YTc1ZWI1ODRkMTEzYjhhNTE2YjFlNTA1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBG bG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyOCBKdWwg MjAxNyAxMTo1ODozNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNDMvNDVdIG5ldDogcGh5OiBDb3Jy ZWN0bHkgcHJvY2VzcyBQSFlfSEFMVEVEIGluCiBwaHlfc3RvcF9tYWNoaW5lKCkKClsgVXBzdHJl YW0gY29tbWl0IDdhZDgxM2YyMDg1MzNjZWJmY2MzMmQzZDc0NzRkYzE2NzdkMWIwOWEgXQoKTWFy YyByZXBvcnRlZCB0aGF0IGhlIHdhcyBub3QgZ2V0dGluZyB0aGUgUEhZIGxpYnJhcnkgYWRqdXN0 X2xpbmsoKQpjYWxsYmFjayBmdW5jdGlvbiB0byBydW4gd2hlbiBjYWxsaW5nIHBoeV9zdG9wKCkg KyBwaHlfZGlzY29ubmVjdCgpCndoaWNoIGRvZXMgbm90IGluZGVlZCBoYXBwZW4gYmVjYXVzZSB3 ZSBzZXQgdGhlIHN0YXRlIG1hY2hpbmUgdG8KUEhZX0hBTFRFRCBidXQgd2UgZG9uJ3QgZ2V0IHRv IHJ1biBpdCB0byBwcm9jZXNzIHRoaXMgc3RhdGUgcGFzdCB0aGF0CnBvaW50LgoKRml4IHRoaXMg d2l0aCBhIHN5bmNocm9ub3VzIGNhbGwgdG8gcGh5X3N0YXRlX21hY2hpbmUoKSBpbiBvcmRlciB0 byBoYXZlCnRoZSBzdGF0ZSBtYWNoaW5lIGFjdHVhbGx5IGFjdCBvbiBQSFlfSEFMVEVELCBzZXQg dGhlIFBIWSBkZXZpY2UncyBsaW5rCmRvd24sIHR1cm4gdGhlIG5ldHdvcmsgZGV2aWNlJ3MgY2Fy cmllciBvZmYgYW5kIGZpbmFsbHkgY2FsbCB0aGUKYWRqdXN0X2xpbmsoKSBmdW5jdGlvbi4KClJl cG9ydGVkLWJ5OiBNYXJjIEdvbnphbGV6IDxtYXJjX2dvbnphbGV6QHNpZ21hZGVzaWducy5jb20+ CkZpeGVzOiBhMzkwZDFmMzc5Y2YgKCJwaHlsaWI6IGNvbnZlcnQgc3RhdGVfcXVldWUgd29yayB0 byBkZWxheWVkX3dvcmsiKQpTaWduZWQtb2ZmLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5l bGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWFyYyBHb256YWxleiA8bWFyY19nb256YWxl ekBzaWdtYWRlc2lnbnMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L3BoeS5jIHwgMyArKysKIDEgZmls ZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkv cGh5LmMgYi9kcml2ZXJzL25ldC9waHkvcGh5LmMKaW5kZXggZWViYjBlMWM3MGZmLi5iMzBkOWNl ZWU4YmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHkuYworKysgYi9kcml2ZXJzL25l dC9waHkvcGh5LmMKQEAgLTc0OSw2ICs3NDksOSBAQCB2b2lkIHBoeV9zdG9wX21hY2hpbmUoc3Ry dWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlpZiAocGh5ZGV2LT5zdGF0ZSA+IFBIWV9VUCAmJiBw aHlkZXYtPnN0YXRlICE9IFBIWV9IQUxURUQpCiAJCXBoeWRldi0+c3RhdGUgPSBQSFlfVVA7CiAJ bXV0ZXhfdW5sb2NrKCZwaHlkZXYtPmxvY2spOworCisJLyogTm93IHdlIGNhbiBydW4gdGhlIHN0 YXRlIG1hY2hpbmUgc3luY2hyb25vdXNseSAqLworCXBoeV9zdGF0ZV9tYWNoaW5lKCZwaHlkZXYt PnN0YXRlX3F1ZXVlLndvcmspOwogfQogCiAvKioKLS0gCjIuMTMuNAoKCkZyb20gYTZhY2ZkNjM5 ZDY4ZmJlNGY0ZjBmMjdhYjliMzM0NmU4ZTBmNDVkNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpEYXRlOiBGcmksIDI4IEp1 bCAyMDE3IDIzOjI3OjQ0ICswMzAwClN1YmplY3Q6IFtQQVRDSCA0NC80NV0gaXB2NDogZmliOiBG aXggTlVMTCBwb2ludGVyIGRlcmVmIGR1cmluZwogZmliX3N5bmNfZG93bl9kZXYoKQpNSU1FLVZl cnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVu dC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgNzFlZDdlZTM1YWQy YzUzMDBmNGI1MTYzNDE4NWEwMTkzYjRmYjBmYSBdCgpNaWNoYcWCIHJlcG9ydGVkIGEgTlVMTCBw b2ludGVyIGRlcmVmIGR1cmluZyBmaWJfc3luY19kb3duX2RldigpIHdoZW4KdW5yZWdpc3Rlcmlu ZyBhIG5ldGRldmljZS4gVGhlIHByb2JsZW0gaXMgdGhhdCB3ZSBkb24ndCBjaGVjayBmb3IKJ2lu X2RldicgYmVpbmcgTlVMTCwgd2hpY2ggY2FuIGhhcHBlbiBpbiB2ZXJ5IHNwZWNpZmljIGNhc2Vz LgoKVXN1YWxseSByb3V0ZXMgYXJlIGZsdXNoZWQgdXBvbiBORVRERVZfRE9XTiBzZW50IGluIGVp dGhlciB0aGUgbmV0ZGV2IG9yCnRoZSBpbmV0YWRkciBub3RpZmljYXRpb24gY2hhaW5zLiBIb3dl dmVyLCBpZiBhbiBpbnRlcmZhY2UgaXNuJ3QKY29uZmlndXJlZCB3aXRoIGFueSBJUCBhZGRyZXNz LCB0aGVuIGl0J3MgcG9zc2libGUgZm9yIGhvc3Qgcm91dGVzIHRvIGJlCmZsdXNoZWQgZm9sbG93 aW5nIE5FVERFVl9VTlJFR0lTVEVSLCBhZnRlciBOVUxMaW5nIGRldi0+aXBfcHRyIGluCmluZXRk ZXZfZGVzdHJveSgpLgoKVG8gcmVwcm9kdWNlOgokIGlwIGxpbmsgYWRkIHR5cGUgZHVtbXkKJCBp cCByb3V0ZSBhZGQgbG9jYWwgMS4xLjEuMC8yNCBkZXYgZHVtbXkwCiQgaXAgbGluayBkZWwgZGV2 IGR1bW15MAoKRml4IHRoaXMgYnkgY2hlY2tpbmcgZm9yIHRoZSBwcmVzZW5jZSBvZiAnaW5fZGV2 JyBiZWZvcmUgcmVmZXJlbmNpbmcgaXQuCgpGaXhlczogOTgyYWNiOTc1NjBjICgiaXB2NDogZmli OiBOb3RpZnkgYWJvdXQgbmV4dGhvcCBzdGF0dXMgY2hhbmdlcyIpClNpZ25lZC1vZmYtYnk6IElk byBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KUmVwb3J0ZWQtYnk6IE1pY2hhxYIgTWly b3PFgmF3IDxtaXJxLWxpbnV4QHJlcmUucW1xbS5wbD4KVGVzdGVkLWJ5OiBNaWNoYcWCIE1pcm9z xYJhdyA8bWlycS1saW51eEByZXJlLnFtcW0ucGw+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9maWJfc2VtYW50aWNzLmMg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMgYi9uZXQvaXB2NC9maWJfc2VtYW50 aWNzLmMKaW5kZXggYWQ5YWQ0YWFiNWRhLi5jZTdiYzJlNTE3NWEgMTAwNjQ0Ci0tLSBhL25ldC9p cHY0L2ZpYl9zZW1hbnRpY3MuYworKysgYi9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMKQEAgLTEz NzIsNyArMTM3Miw3IEBAIHN0YXRpYyBpbnQgY2FsbF9maWJfbmhfbm90aWZpZXJzKHN0cnVjdCBm aWJfbmggKmZpYl9uaCwKIAkJcmV0dXJuIGNhbGxfZmliX25vdGlmaWVycyhkZXZfbmV0KGZpYl9u aC0+bmhfZGV2KSwgZXZlbnRfdHlwZSwKIAkJCQkJICAmaW5mby5pbmZvKTsKIAljYXNlIEZJQl9F VkVOVF9OSF9ERUw6Ci0JCWlmICgoSU5fREVWX0lHTk9SRV9ST1VURVNfV0lUSF9MSU5LRE9XTihp bl9kZXYpICYmCisJCWlmICgoaW5fZGV2ICYmIElOX0RFVl9JR05PUkVfUk9VVEVTX1dJVEhfTElO S0RPV04oaW5fZGV2KSAmJgogCQkgICAgIGZpYl9uaC0+bmhfZmxhZ3MgJiBSVE5IX0ZfTElOS0RP V04pIHx8CiAJCSAgICAoZmliX25oLT5uaF9mbGFncyAmIFJUTkhfRl9ERUFEKSkKIAkJCXJldHVy biBjYWxsX2ZpYl9ub3RpZmllcnMoZGV2X25ldChmaWJfbmgtPm5oX2RldiksCi0tIAoyLjEzLjQK CgpGcm9tIGU4ZTYwMDZmMjNlNDgxZTEzMjk4YTY3MDcxYmNhYWZkNTlhZjEzOGYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206ICJNaWNoYWVsIFMuIFRzaXJraW4iIDxtc3RAcmVkaGF0LmNv bT4KRGF0ZTogTW9uLCAzMSBKdWwgMjAxNyAyMTo0OTo0OSArMDMwMApTdWJqZWN0OiBbUEFUQ0gg NDUvNDVdIHZpcnRpb19uZXQ6IGZpeCB0cnVlc2l6ZSBmb3IgbWVyZ2VhYmxlIGJ1ZmZlcnMKClsg VXBzdHJlYW0gY29tbWl0IDFkYWE4NzkwZDAyODBkMmM3MTk2NThlMzliZDU5ZmNlNjVlZmE5MDkg XQoKU2V0aCBGb3JzaGVlIG5vdGljZWQgYSBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvbiB3aXRoIHNv bWUgd29ya2xvYWRzLgpUaGlzIHR1cm5zIG91dCB0byBiZSBkdWUgdG8gcGFja2V0IGRyb3BzLiAg RXVhbiBLZW1wIG5vdGljZWQgdGhhdCB0aGlzCmlzIGJlY2F1c2Ugd2UgZHJvcCBhbGwgcGFja2V0 cyB3aGVyZSBsZW5ndGggZXhjZWVkcyB0aGUgdHJ1ZXNpemUsIGJ1dApmb3Igc29tZSBwYWNrZXRz IHdlIGFkZCBpbiBleHRyYSBtZW1vcnkgd2l0aG91dCB1cGRhdGluZyB0aGUgdHJ1ZXNpemUuClRo aXMgaW4gdHVybiB3YXMga2VwdCBhcm91bmQgdW5jaGFuZ2VkIGZyb20gYWI3ZGI5MTcwNWU5NSAo InZpcnRpby1uZXQ6CmF1dG8tdHVuZSBtZXJnZWFibGUgcnggYnVmZmVyIHNpemUgZm9yIGltcHJv dmVkIHBlcmZvcm1hbmNlIikuICBUaGF0CmNvbW1pdCBoYWQgYW4gaW50ZXJuYWwgcmVhc29uIG5v dCB0byBhY2NvdW50IGZvciB0aGUgZXh0cmEgc3BhY2U6IG5vdAplbm91Z2ggYml0cyB0byBkbyBp dC4gIE5vIGxvbmdlciB0cnVlIHNvIGxldCdzIGFjY291bnQgZm9yIHRoZSBhbGxvY2F0ZWQKbGVu Z3RoIGV4YWN0bHkuCgpNYW55IHRoYW5rcyB0byBTZXRoIEZvcnNoZWUgZm9yIHRoZSByZXBvcnQg YW5kIGJpc2VjdGluZyBhbmQgRXVhbiBLZW1wCmZvciBkZWJ1Z2dpbmcgdGhlIGlzc3VlLgoKRml4 ZXM6IDY4MDU1N2NmNzlmOCAoInZpcnRpb19uZXQ6IHJld29yayBtZXJnZWFibGUgYnVmZmVyIGhh bmRsaW5nIikKUmVwb3J0ZWQtYnk6IEV1YW4gS2VtcCA8ZXVhbi5rZW1wQGNvcmVvcy5jb20+ClRl c3RlZC1ieTogRXVhbiBLZW1wIDxldWFuLmtlbXBAY29yZW9zLmNvbT4KUmVwb3J0ZWQtYnk6IFNl dGggRm9yc2hlZSA8c2V0aC5mb3JzaGVlQGNhbm9uaWNhbC5jb20+ClRlc3RlZC1ieTogU2V0aCBG b3JzaGVlIDxzZXRoLmZvcnNoZWVAY2Fub25pY2FsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWljaGFl bCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYyB8 IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQvdmly dGlvX25ldC5jCmluZGV4IDY2MzNkZDRiYjY0OS4uYWNiNzU0ZWIxY2NiIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKKysrIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCkBA IC04ODksMjEgKzg4OSwyMCBAQCBzdGF0aWMgaW50IGFkZF9yZWN2YnVmX21lcmdlYWJsZShzdHJ1 Y3QgdmlydG5ldF9pbmZvICp2aSwKIAogCWJ1ZiA9IChjaGFyICopcGFnZV9hZGRyZXNzKGFsbG9j X2ZyYWctPnBhZ2UpICsgYWxsb2NfZnJhZy0+b2Zmc2V0OwogCWJ1ZiArPSBoZWFkcm9vbTsgLyog YWR2YW5jZSBhZGRyZXNzIGxlYXZpbmcgaG9sZSBhdCBmcm9udCBvZiBwa3QgKi8KLQljdHggPSAo dm9pZCAqKSh1bnNpZ25lZCBsb25nKWxlbjsKIAlnZXRfcGFnZShhbGxvY19mcmFnLT5wYWdlKTsK IAlhbGxvY19mcmFnLT5vZmZzZXQgKz0gbGVuICsgaGVhZHJvb207CiAJaG9sZSA9IGFsbG9jX2Zy YWctPnNpemUgLSBhbGxvY19mcmFnLT5vZmZzZXQ7CiAJaWYgKGhvbGUgPCBsZW4gKyBoZWFkcm9v bSkgewogCQkvKiBUbyBhdm9pZCBpbnRlcm5hbCBmcmFnbWVudGF0aW9uLCBpZiB0aGVyZSBpcyB2 ZXJ5IGxpa2VseSBub3QKIAkJICogZW5vdWdoIHNwYWNlIGZvciBhbm90aGVyIGJ1ZmZlciwgYWRk IHRoZSByZW1haW5pbmcgc3BhY2UgdG8KLQkJICogdGhlIGN1cnJlbnQgYnVmZmVyLiBUaGlzIGV4 dHJhIHNwYWNlIGlzIG5vdCBpbmNsdWRlZCBpbgotCQkgKiB0aGUgdHJ1ZXNpemUgc3RvcmVkIGlu IGN0eC4KKwkJICogdGhlIGN1cnJlbnQgYnVmZmVyLgogCQkgKi8KIAkJbGVuICs9IGhvbGU7CiAJ CWFsbG9jX2ZyYWctPm9mZnNldCArPSBob2xlOwogCX0KIAogCXNnX2luaXRfb25lKHJxLT5zZywg YnVmLCBsZW4pOworCWN0eCA9ICh2b2lkICopKHVuc2lnbmVkIGxvbmcpbGVuOwogCWVyciA9IHZp cnRxdWV1ZV9hZGRfaW5idWZfY3R4KHJxLT52cSwgcnEtPnNnLCAxLCBidWYsIGN0eCwgZ2ZwKTsK IAlpZiAoZXJyIDwgMCkKIAkJcHV0X3BhZ2UodmlydF90b19oZWFkX3BhZ2UoYnVmKSk7Ci0tIAoy LjEzLjQKCg== ----Next_Part(Tue_Aug__8_16_21_26_2017_796)----