From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E69EFC432C0 for ; Tue, 3 Dec 2019 03:21:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 80E87206DC for ; Tue, 3 Dec 2019 03:21:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726214AbfLCDVx (ORCPT ); Mon, 2 Dec 2019 22:21:53 -0500 Received: from shards.monkeyblade.net ([23.128.96.9]:44476 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726186AbfLCDVx (ORCPT ); Mon, 2 Dec 2019 22:21:53 -0500 Received: from localhost (unknown [IPv6:2601:601:9f00:1c3::3d5]) (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 CC3EC14F2D93C for ; Mon, 2 Dec 2019 19:21:49 -0800 (PST) Date: Mon, 02 Dec 2019 19:21:47 -0800 (PST) Message-Id: <20191202.192147.358235389178300029.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Mon_Dec__2_19_21_47_2019_677)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Mon, 02 Dec 2019 19:21:50 -0800 (PST) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Mon_Dec__2_19_21_47_2019_677)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v5.3 and v5.4 -stable, respectively. Thank you! ----Next_Part(Mon_Dec__2_19_21_47_2019_677)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_53.mbox" RnJvbSAwYmUxYmExNDhkMTg0ODRlOTVhMDQ1OTIwYjE0MjRhZTdhMWFkYzgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXJvZW4gZGUgQm9yc3QgPGplcm9lbmRiQGdvb2dsZS5jb20+ CkRhdGU6IFR1ZSwgMjYgTm92IDIwMTkgMTU6MzY6MTkgLTA4MDAKU3ViamVjdDogW1BBVENIIDAx LzIzXSBndmU6IEZpeCB0aGUgcXVldWUgcGFnZSBsaXN0IGFsbG9jYXRlZCBwYWdlcyBjb3VudAoK WyBVcHN0cmVhbSBjb21taXQgYTk1MDY5ZWNiNzA5MmQwM2IyZWExYzM5ZWUwNDUxNGZlOTYyNzU0 MCBdCgpJbiBndmVfYWxsb2NfcXVldWVfcGFnZV9saXN0KCksIHdoZW4gYSBwYWdlIGFsbG9jYXRp b24gZmFpbHMsCnFwbC0+bnVtX2VudHJpZXMgd2lsbCBiZSB3cm9uZy4gIEluIHRoaXMgY2FzZSBw cml2LT5udW1fcmVnaXN0ZXJlZF9wYWdlcwpjYW4gdW5kZXJmbG93IGluIGd2ZV9mcmVlX3F1ZXVl X3BhZ2VfbGlzdCgpLCBjYXVzaW5nIHN1YnNlcXVlbnQgY2FsbHMKdG8gZ3ZlX2FsbG9jX3F1ZXVl X3BhZ2VfbGlzdCgpIHRvIGZhaWwuCgpGaXhlczogZjVjZWRjODRhMzBkICgiZ3ZlOiBBZGQgdHJh bnNtaXQgYW5kIHJlY2VpdmUgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEplcm9lbiBkZSBCb3Jz dCA8amVyb2VuZGJAZ29vZ2xlLmNvbT4KUmV2aWV3ZWQtYnk6IENhdGhlcmluZSBTdWxsaXZhbiA8 Y3N1bGx5QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9nb29nbGUvZ3ZlL2d2ZV9t YWluLmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2dvb2dsZS9ndmUvZ3ZlX21h aW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2dvb2dsZS9ndmUvZ3ZlX21haW4uYwppbmRleCBh Y2E5NWY2NGJkZTguLjliN2E4ZGI5ODYwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvZ29vZ2xlL2d2ZS9ndmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2dvb2ds ZS9ndmUvZ3ZlX21haW4uYwpAQCAtNTQ0LDcgKzU0NCw3IEBAIHN0YXRpYyBpbnQgZ3ZlX2FsbG9j X3F1ZXVlX3BhZ2VfbGlzdChzdHJ1Y3QgZ3ZlX3ByaXYgKnByaXYsIHUzMiBpZCwKIAl9CiAKIAlx cGwtPmlkID0gaWQ7Ci0JcXBsLT5udW1fZW50cmllcyA9IHBhZ2VzOworCXFwbC0+bnVtX2VudHJp ZXMgPSAwOwogCXFwbC0+cGFnZXMgPSBrdnphbGxvYyhwYWdlcyAqIHNpemVvZigqcXBsLT5wYWdl cyksIEdGUF9LRVJORUwpOwogCS8qIGNhbGxlciBoYW5kbGVzIGNsZWFuIHVwICovCiAJaWYgKCFx cGwtPnBhZ2VzKQpAQCAtNTYyLDYgKzU2Miw3IEBAIHN0YXRpYyBpbnQgZ3ZlX2FsbG9jX3F1ZXVl X3BhZ2VfbGlzdChzdHJ1Y3QgZ3ZlX3ByaXYgKnByaXYsIHUzMiBpZCwKIAkJLyogY2FsbGVyIGhh bmRsZXMgY2xlYW4gdXAgKi8KIAkJaWYgKGVycikKIAkJCXJldHVybiAtRU5PTUVNOworCQlxcGwt Pm51bV9lbnRyaWVzKys7CiAJfQogCXByaXYtPm51bV9yZWdpc3RlcmVkX3BhZ2VzICs9IHBhZ2Vz OwogCi0tIAoyLjIwLjEKCgpGcm9tIGFlYzIwOWViODY0Y2JhZmYxMzVkYTE3ZTc1NTU0OTIyNmQ3 ZWFmZjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1lbmdsb25nIERvbmcgPGRvbmcu bWVuZ2xvbmdAenRlLmNvbS5jbj4KRGF0ZTogTW9uLCAyNSBOb3YgMjAxOSAxNjo1ODowOSArMDgw MApTdWJqZWN0OiBbUEFUQ0ggMDIvMjNdIG1hY3ZsYW46IHNjaGVkdWxlIGJjX3dvcmsgZXZlbiBp ZiBlcnJvcgoKWyBVcHN0cmVhbSBjb21taXQgMWQ3ZWE1NTY2ODg3OGJiMzUwOTc5YzM3N2ZjNzI1 MDlkZDZmNWIyMSBdCgpXaGlsZSBlbnF1ZXVlaW5nIGEgYnJvYWRjYXN0IHNrYiB0byBwb3J0LT5i Y19xdWV1ZSwgc2NoZWR1bGVfd29yaygpCmlzIGNhbGxlZCB0byBhZGQgcG9ydC0+YmNfd29yaywg d2hpY2ggcHJvY2Vzc2VzIHRoZSBza2JzIGluCmJjX3F1ZXVlLCB0byAiZXZlbnRzIiB3b3JrIHF1 ZXVlLiBJZiBwb3J0LT5iY19xdWV1ZSBpcyBmdWxsLCB0aGUKc2tiIHdpbGwgYmUgZGlzY2FyZGVk IGFuZCBzY2hlZHVsZV93b3JrKCZwb3J0LT5iY193b3JrKSB3b24ndCBiZQpjYWxsZWQuIEhvd2V2 ZXIsIGlmIHBvcnQtPmJjX3F1ZXVlIGlzIGZ1bGwgYW5kIHBvcnQtPmJjX3dvcmsgaXMgbm90CnJ1 bm5pbmcgb3IgcGVuZGluZywgcG9ydC0+YmNfcXVldWUgd2lsbCBrZWVwIGZ1bGwgYW5kIHNjaGVk dWxlX3dvcmsoKQp3b24ndCBiZSBjYWxsZWQgYW55IG1vcmUsIGFuZCBhbGwgYnJvYWRjYXN0IHNr YnMgdG8gbWFjdmxhbiB3aWxsIGJlCmRpc2NhcmRlZC4gVGhpcyBjYXNlIGNhbiBoYXBwZW46Cgpt YWN2bGFuX3Byb2Nlc3NfYnJvYWRjYXN0KCkgaXMgdGhlIHBlbmRpbmcgZnVuY3Rpb24gb2YgcG9y dC0+YmNfd29yaywKaXQgbW92ZXMgYWxsIHRoZSBza2JzIGluIHBvcnQtPmJjX3F1ZXVlIHRvIHRo ZSBxdWV1ZSAibGlzdCIsIGFuZApwcm9jZXNzZXMgdGhlIHNrYnMgaW4gImxpc3QiLiBEdXJpbmcg dGhpcywgbmV3IHNrYnMgd2lsbCBrZWVwIGJlaW5nCmFkZGVkIHRvIHBvcnQtPmJjX3F1ZXVlIGlu IG1hY3ZsYW5fYnJvYWRjYXN0X2VucXVldWUoKSwgYW5kCnBvcnQtPmJjX3F1ZXVlIG1heSBhbHJl YWR5IGZ1bGwgd2hlbiBtYWN2bGFuX3Byb2Nlc3NfYnJvYWRjYXN0KCkKcmV0dXJuLiBUaGlzIG1h eSBoYXBwZW4sIGVzcGVjaWFsbHkgd2hlbiB0aGVyZSBhcmUgYSBsb3Qgb2YgcmVhbC10aW1lCnRo cmVhZHMgYW5kIHRoZSBwcm9jZXNzIGlzIHByZWVtcHRlZC4KCkZpeCB0aGlzIGJ5IGNhbGxpbmcg c2NoZWR1bGVfd29yaygmcG9ydC0+YmNfd29yaykgZXZlbiBpZgpwb3J0LT5iY193b3JrIGlzIGZ1 bGwgaW4gbWFjdmxhbl9icm9hZGNhc3RfZW5xdWV1ZSgpLgoKRml4ZXM6IDQxMmNhMTU1MGNiZSAo Im1hY3ZsYW46IE1vdmUgYnJvYWRjYXN0cyBpbnRvIGEgd29yayBxdWV1ZSIpClNpZ25lZC1vZmYt Ynk6IE1lbmdsb25nIERvbmcgPGRvbmcubWVuZ2xvbmdAenRlLmNvbS5jbj4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L21hY3ZsYW4uYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jIGIvZHJpdmVycy9u ZXQvbWFjdmxhbi5jCmluZGV4IDk0MDE5MmMwNTdiNi4uMTZiODZmYTYwOTYyIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9tYWN2bGFuLmMKKysrIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jCkBAIC0z NTksMTAgKzM1OSwxMSBAQCBzdGF0aWMgdm9pZCBtYWN2bGFuX2Jyb2FkY2FzdF9lbnF1ZXVlKHN0 cnVjdCBtYWN2bGFuX3BvcnQgKnBvcnQsCiAJfQogCXNwaW5fdW5sb2NrKCZwb3J0LT5iY19xdWV1 ZS5sb2NrKTsKIAorCXNjaGVkdWxlX3dvcmsoJnBvcnQtPmJjX3dvcmspOworCiAJaWYgKGVycikK IAkJZ290byBmcmVlX25za2I7CiAKLQlzY2hlZHVsZV93b3JrKCZwb3J0LT5iY193b3JrKTsKIAly ZXR1cm47CiAKIGZyZWVfbnNrYjoKLS0gCjIuMjAuMQoKCkZyb20gNDJmZWU3ZjUyMGMxN2I0ZjZj YTkxMjBmYjY4ODM4ZDI1OTdiYzUwMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2 aWQgQmF1ZXIgPG1haWxAZGF2aWQtYmF1ZXIubmV0PgpEYXRlOiBGcmksIDIyIE5vdiAyMDE5IDIy OjQ0OjUxICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy8yM10gbWRpb19idXM6IGRvbid0IHVzZSBt YW5hZ2VkIHJlc2V0LWNvbnRyb2xsZXIKClsgVXBzdHJlYW0gY29tbWl0IDMyMDg1ZjI1ZDdiNjg0 MDQwNTVmMzUyNWM3ODAxNDJmYzcyZTU0M2YgXQoKR2VlcnQgVXl0dGVyaG9ldmVuIHJlcG9ydGVk IHRoYXQgdXNpbmcgZGV2bV9yZXNldF9jb250cm9sbGVyX2dldCBsZWFkcwp0byBhIFdBUk5JTkcg d2hlbiBwcm9iaW5nIGEgcmVzZXQtY29udHJvbGxlZCBQSFkuIFRoaXMgaXMgYmVjYXVzZSB0aGUK ZGV2aWNlIGRldm1fcmVzZXRfY29udHJvbGxlcl9nZXQgZ2V0cyBzdXBwbGllZCBpcyBub3QgYWN0 dWFsbHkgdGhlCm9uZSBiZWluZyBwcm9iZWQuCgpBY3F1aXJlIGFuIHVubWFuYWdlZCByZXNldC1j b250cm9sIGFzIHdlbGwgYXMgZnJlZSB0aGUgcmVzZXRfY29udHJvbCBvbgp1bnJlZ2lzdGVyIHRv IGZpeCB0aGlzLgoKUmVwb3J0ZWQtYnk6IEdlZXJ0IFV5dHRlcmhvZXZlbiA8Z2VlcnRAbGludXgt bTY4ay5vcmc+CkNDOiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIEJhdWVyIDxtYWlsQGRhdmlkLWJhdWVyLm5ldD4KUmV2aWV3ZWQtYnk6IEFuZHJldyBM dW5uIDxhbmRyZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9tZGlvX2J1cy5jIHwgNiArKysr LS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21kaW9fYnVzLmMgYi9kcml2ZXJzL25ldC9waHkvbWRp b19idXMuYwppbmRleCAyYTc5YzdhN2U5MjAuLjlmYTFjOTNlY2U3YSAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvcGh5L21kaW9fYnVzLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L21kaW9fYnVzLmMK QEAgLTY2LDggKzY2LDggQEAgc3RhdGljIGludCBtZGlvYnVzX3JlZ2lzdGVyX3Jlc2V0KHN0cnVj dCBtZGlvX2RldmljZSAqbWRpb2RldikKIAlzdHJ1Y3QgcmVzZXRfY29udHJvbCAqcmVzZXQgPSBO VUxMOwogCiAJaWYgKG1kaW9kZXYtPmRldi5vZl9ub2RlKQotCQlyZXNldCA9IGRldm1fcmVzZXRf Y29udHJvbF9nZXRfZXhjbHVzaXZlKCZtZGlvZGV2LT5kZXYsCi0JCQkJCQkJICJwaHkiKTsKKwkJ cmVzZXQgPSBvZl9yZXNldF9jb250cm9sX2dldF9leGNsdXNpdmUobWRpb2Rldi0+ZGV2Lm9mX25v ZGUsCisJCQkJCQkgICAgICAgInBoeSIpOwogCWlmIChJU19FUlIocmVzZXQpKSB7CiAJCWlmIChQ VFJfRVJSKHJlc2V0KSA9PSAtRU5PRU5UIHx8IFBUUl9FUlIocmVzZXQpID09IC1FTk9UU1VQUCkK IAkJCXJlc2V0ID0gTlVMTDsKQEAgLTExMSw2ICsxMTEsOCBAQCBpbnQgbWRpb2J1c191bnJlZ2lz dGVyX2RldmljZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpCiAJaWYgKG1kaW9kZXYtPmJ1 cy0+bWRpb19tYXBbbWRpb2Rldi0+YWRkcl0gIT0gbWRpb2RldikKIAkJcmV0dXJuIC1FSU5WQUw7 CiAKKwlyZXNldF9jb250cm9sX3B1dChtZGlvZGV2LT5yZXNldF9jdHJsKTsKKwogCW1kaW9kZXYt PmJ1cy0+bWRpb19tYXBbbWRpb2Rldi0+YWRkcl0gPSBOVUxMOwogCiAJcmV0dXJuIDA7Ci0tIAoy LjIwLjEKCgpGcm9tIDg5OGRmY2UxMWFkNzUzNTgxZWI5YzczYzkyY2U5ZDQ5MzQ5MDhiYjcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE9sZWtzaWogUmVtcGVsIDxvLnJlbXBlbEBwZW5n dXRyb25peC5kZT4KRGF0ZTogTW9uLCAyNSBOb3YgMjAxOSAxMjo0Mzo1MSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMDQvMjNdIG5ldDogZHNhOiBzamExMTA1OiBmaXggc2phMTEwNV9wYXJzZV9yZ21p aV9kZWxheXMoKQoKWyBVcHN0cmVhbSBjb21taXQgOWJjYTNhMGE5MjNmYzNmMGZiOWU0MTM5MWJl MWQwZjI5MWU4Njg1OCBdCgpUaGlzIGZ1bmN0aW9uIHdhcyB1c2luZyBjb25maWd1cmF0aW9uIG9m IHBvcnQgMCBpbiBkZXZpY2V0cmVlIGZvciBhbGwgcG9ydHMuCkluIGNhc2UgQ1BVIHBvcnQgd2Fz IG5vdCAwLCB0aGUgZGVsYXkgc2V0dGluZ3Mgd2FzIGlnbm9yZWQuIFRoaXMgcmVzdWx0ZWQgbm90 CndvcmtpbmcgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIENQVSBhbmQgdGhlIHN3aXRjaC4KCkZpeGVz OiBmNWI4NjMxYzI5M2IgKCJuZXQ6IGRzYTogc2phMTEwNTogRXJyb3Igb3V0IGlmIFJHTUlJIGRl bGF5cyBhcmUgcmVxdWVzdGVkIGluIERUIikKU2lnbmVkLW9mZi1ieTogT2xla3NpaiBSZW1wZWwg PG8ucmVtcGVsQHBlbmd1dHJvbml4LmRlPgpSZXZpZXdlZC1ieTogVmxhZGltaXIgT2x0ZWFuIDxv bHRlYW52QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWFpbi5j IHwgMTAgKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21h aW4uYyBiL2RyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWFpbi5jCmluZGV4IDI5NjI4 NmY0ZmIzOS4uNTc2M2FlNmM2YzZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2Evc2phMTEw NS9zamExMTA1X21haW4uYworKysgYi9kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21h aW4uYwpAQCAtNTkxLDE1ICs1OTEsMTUgQEAgc3RhdGljIGludCBzamExMTA1X3BhcnNlX3JnbWlp X2RlbGF5cyhzdHJ1Y3Qgc2phMTEwNV9wcml2YXRlICpwcml2LAogCWludCBpOwogCiAJZm9yIChp ID0gMDsgaSA8IFNKQTExMDVfTlVNX1BPUlRTOyBpKyspIHsKLQkJaWYgKHBvcnRzLT5yb2xlID09 IFhNSUlfTUFDKQorCQlpZiAocG9ydHNbaV0ucm9sZSA9PSBYTUlJX01BQykKIAkJCWNvbnRpbnVl OwogCi0JCWlmIChwb3J0cy0+cGh5X21vZGUgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX1JY SUQgfHwKLQkJICAgIHBvcnRzLT5waHlfbW9kZSA9PSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlf SUQpCisJCWlmIChwb3J0c1tpXS5waHlfbW9kZSA9PSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlf UlhJRCB8fAorCQkgICAgcG9ydHNbaV0ucGh5X21vZGUgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX1JH TUlJX0lEKQogCQkJcHJpdi0+cmdtaWlfcnhfZGVsYXlbaV0gPSB0cnVlOwogCi0JCWlmIChwb3J0 cy0+cGh5X21vZGUgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX1RYSUQgfHwKLQkJICAgIHBv cnRzLT5waHlfbW9kZSA9PSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlfSUQpCisJCWlmIChwb3J0 c1tpXS5waHlfbW9kZSA9PSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlfVFhJRCB8fAorCQkgICAg cG9ydHNbaV0ucGh5X21vZGUgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX0lEKQogCQkJcHJp di0+cmdtaWlfdHhfZGVsYXlbaV0gPSB0cnVlOwogCiAJCWlmICgocHJpdi0+cmdtaWlfcnhfZGVs YXlbaV0gfHwgcHJpdi0+cmdtaWlfdHhfZGVsYXlbaV0pICYmCi0tIAoyLjIwLjEKCgpGcm9tIDNj NDYxMjNiODM4NDFiODhlNzExYTA2NGZmZGE2MjA4YTc1YmZhMTggTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IENodWhvbmcgWXVhbiA8aHNsZXN0ZXI5NkBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjggTm92IDIwMTkgMTA6MDA6MjEgKzA4MDAKU3ViamVjdDogW1BBVENIIDA1LzIzXSBuZXQ6 IG1hY2I6IGFkZCBtaXNzZWQgdGFza2xldF9raWxsCgpbIFVwc3RyZWFtIGNvbW1pdCA2MTE4M2Iw NTZiNDllMjkzN2ZmOTJhMTQyNDI5MWJhMzZhNmY2ZDA1IF0KClRoaXMgZHJpdmVyIGZvcmdldHMg dG8ga2lsbCB0YXNrbGV0IGluIHJlbW92ZS4KQWRkIHRoZSBjYWxsIHRvIGZpeCBpdC4KCkZpeGVz OiAwMzJkYzQxYmE2ZTIgKCJuZXQ6IG1hY2I6IEhhbmRsZSBIUkVTUCBlcnJvciIpClNpZ25lZC1v ZmYtYnk6IENodWhvbmcgWXVhbiA8aHNsZXN0ZXI5NkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2Jf bWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYwppbmRleCAz NWI1OWI1ZWRmMGYuLmEwOWE0YmUxZDA1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvY2FkZW5jZS9tYWNiX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNl L21hY2JfbWFpbi5jCkBAIC00MzkzLDYgKzQzOTMsNyBAQCBzdGF0aWMgaW50IG1hY2JfcmVtb3Zl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCW1kaW9idXNfZnJlZShicC0+bWlpX2J1 cyk7CiAKIAkJdW5yZWdpc3Rlcl9uZXRkZXYoZGV2KTsKKwkJdGFza2xldF9raWxsKCZicC0+aHJl c3BfZXJyX3Rhc2tsZXQpOwogCQlwbV9ydW50aW1lX2Rpc2FibGUoJnBkZXYtPmRldik7CiAJCXBt X3J1bnRpbWVfZG9udF91c2VfYXV0b3N1c3BlbmQoJnBkZXYtPmRldik7CiAJCWlmICghcG1fcnVu dGltZV9zdXNwZW5kZWQoJnBkZXYtPmRldikpIHsKLS0gCjIuMjAuMQoKCkZyb20gNjdlYjA5NmE2 MjI5ZGM4ZGViOWE4MzEwYTMxZDE4YThjNzU1MGM1ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpE YXRlOiBXZWQsIDI3IE5vdiAyMDE5IDAwOjE2OjQ0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8y M10gbmV0OiBwc2FtcGxlOiBmaXggc2tiX292ZXJfcGFuaWMKClsgVXBzdHJlYW0gY29tbWl0IDdl YjlkNzY3NWMwODkzN2NkMTFkMzJiMGI0MDQ0MmQ0ZDczMWM1ZWUgXQoKV2UgbmVlZCB0byBjYWxj dWxhdGUgdGhlIHNrYiBzaXplIGNvcnJlY3RseSBvdGhlcndpc2Ugd2UgcmlzayB0cmlnZ2VyaW5n CnNrYl9vdmVyX3BhbmljWzFdLiBUaGUgaXNzdWUgaXMgdGhhdCBkYXRhX2xlbiBpcyBhZGRlZCB0 byB0aGUgc2tiIGluIGEKbmwgYXR0cmlidXRlLCBidXQgd2UgZG9uJ3QgYWNjb3VudCBmb3IgaXRz IGhlYWRlciBzaXplIChubGF0dHIgNCBieXRlcykKYW5kIGFsaWdubWVudC4gV2UgYWNjb3VudCBm b3IgaXQgd2hlbiBjYWxjdWxhdGluZyB0aGUgdG90YWwgc2l6ZSBpbgp0aGUgPiBQU0FNUExFX01B WF9QQUNLRVRfU0laRSBjb21wYXJpc29uIGNvcnJlY3RseSwgYnV0IG5vdCB3aGVuCmFsbG9jYXRp bmcgYWZ0ZXIgdGhhdC4gVGhlIGZpeCBpcyBzaW1wbGUgLSB1c2UgbmxhX3RvdGFsX3NpemUoKSBm b3IKZGF0YV9sZW4gd2hlbiBhbGxvY2F0aW5nLgoKVG8gcmVwcm9kdWNlOgogJCB0YyBxZGlzYyBh ZGQgZGV2IGV0aDEgY2xzYWN0CiAkIHRjIGZpbHRlciBhZGQgZGV2IGV0aDEgZWdyZXNzIG1hdGNo YWxsIGFjdGlvbiBzYW1wbGUgcmF0ZSAxIGdyb3VwIDEgdHJ1bmMgMTI5CiAkIG1hdXNlemFobiBl dGgxIC1iIGJjYXN0IC1hIHJhbmQgLWMgMSAtcCAxMjkKIDwgc2tiX292ZXJfcGFuaWMgQlVHKCks IHRhaWwgaXMgNCBieXRlcyBwYXN0IHNrYi0+ZW5kID4KClsxXSBUcmFjZToKIFsgICA1MC40NTk1 MjZdWyBUMzQ4MF0gc2tidWZmOiBza2Jfb3Zlcl9wYW5pYzogdGV4dDooX19fX3B0cnZhbF9fX18p IGxlbjoxOTYgcHV0OjEzNiBoZWFkOihfX19fcHRydmFsX19fXykgZGF0YTooX19fX3B0cnZhbF9f X18pIHRhaWw6MHhjNCBlbmQ6MHhjMCBkZXY6PE5VTEw+CiBbICAgNTAuNDc0MzM5XVsgVDM0ODBd IC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQogWyAgIDUwLjQ4MTEzMl1bIFQz NDgwXSBrZXJuZWwgQlVHIGF0IG5ldC9jb3JlL3NrYnVmZi5jOjEwOCEKIFsgICA1MC40ODYwNTld WyBUMzQ4MF0gaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMxXSBQUkVFTVBUIFNNUAogWyAgIDUwLjQ4 OTQ2M11bIFQzNDgwXSBDUFU6IDMgUElEOiAzNDgwIENvbW06IG1hdXNlemFobiBOb3QgdGFpbnRl ZCA1LjQuMC1yYzcgIzEwOAogWyAgIDUwLjQ5Mjg0NF1bIFQzNDgwXSBIYXJkd2FyZSBuYW1lOiBR RU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyAxLjEyLjAtMi5mYzMw IDA0LzAxLzIwMTQKIFsgICA1MC40OTY1NTFdWyBUMzQ4MF0gUklQOiAwMDEwOnNrYl9wYW5pYysw eDc5LzB4N2IKIFsgICA1MC40OTgyNjFdWyBUMzQ4MF0gQ29kZTogYmMgMDAgMDAgMDAgNDEgNTcg NGMgODkgZTYgNDggYzcgYzcgOTAgMjkgOWEgODMgNGMgOGIgOGIgYzAgMDAgMDAgMDAgNTAgOGIg ODMgYjggMDAgMDAgMDAgNTAgZmYgYjMgYzggMDAgMDAgMDAgZTggYWUgZWYgYzAgZmUgPDBmPiAw YiBlOCAyZiBkZiBjOCBmZSA0OCA4YiA1NSAwOCA0NCA4OSBmNiA0YyA4OSBlNyA0OCBjNyBjMSBh MCAyMgogWyAgIDUwLjUwNDExMV1bIFQzNDgwXSBSU1A6IDAwMTg6ZmZmZmM5MDAwMDQ0N2ExMCBF RkxBR1M6IDAwMDEwMjgyCiBbICAgNTAuNTA1ODM1XVsgVDM0ODBdIFJBWDogMDAwMDAwMDAwMDAw MDA4NyBSQlg6IGZmZmY4ODgwMzkzMTdkMDAgUkNYOiAwMDAwMDAwMDAwMDAwMDAwCiBbICAgNTAu NTA3OTAwXVsgVDM0ODBdIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IGZmZmZmZmZmODEyNzE2 ZTEgUkRJOiAwMDAwMDAwMGZmZmZmZmZmCiBbICAgNTAuNTA5ODIwXVsgVDM0ODBdIFJCUDogZmZm ZmM5MDAwMDQ0N2E2MCBSMDg6IDAwMDAwMDAwMDAwMDAwMDEgUjA5OiAwMDAwMDAwMDAwMDAwMDAw CiBbICAgNTAuNTExNzM1XVsgVDM0ODBdIFIxMDogZmZmZmZmZmY4MWQ0Zjk0MCBSMTE6IDAwMDAw MDAwMDAwMDAwMDAgUjEyOiBmZmZmZmZmZjgzNGEyMmIwCiBbICAgNTAuNTEzNDk0XVsgVDM0ODBd IFIxMzogZmZmZmZmZmY4MmMxMDQzMyBSMTQ6IDAwMDAwMDAwMDAwMDAwODggUjE1OiBmZmZmZmZm ZjgzOGE4MDg0CiBbICAgNTAuNTE1MjIyXVsgVDM0ODBdIEZTOiAgMDAwMDdmMzUzNjQ2MjcwMCgw MDAwKSBHUzpmZmZmODg4MDNlYWMwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKIFsg ICA1MC41MTcxMzVdWyBUMzQ4MF0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAw MDAwMDA4MDA1MDAzMwogWyAgIDUwLjUxODU4M11bIFQzNDgwXSBDUjI6IDAwMDAwMDAwMDA0NDIw MDggQ1IzOiAwMDAwMDAwMDNiMjIyMDAwIENSNDogMDAwMDAwMDAwMDAwMDZlMAogWyAgIDUwLjUy MDcyM11bIFQzNDgwXSBEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAw IERSMjogMDAwMDAwMDAwMDAwMDAwMAogWyAgIDUwLjUyMjcwOV1bIFQzNDgwXSBEUjM6IDAwMDAw MDAwMDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMAog WyAgIDUwLjUyNDQ1MF1bIFQzNDgwXSBDYWxsIFRyYWNlOgogWyAgIDUwLjUyNTIxNF1bIFQzNDgw XSAgc2tiX3B1dC5jb2xkKzB4MWIvMHgxYgogWyAgIDUwLjUyNjE3MV1bIFQzNDgwXSAgcHNhbXBs ZV9zYW1wbGVfcGFja2V0KzB4MWQzLzB4MzQwCiBbICAgNTAuNTI3MzA3XVsgVDM0ODBdICB0Y2Zf c2FtcGxlX2FjdCsweDE3OC8weDI1MAogWyAgIDUwLjUyODMzOV1bIFQzNDgwXSAgdGNmX2FjdGlv bl9leGVjKzB4YjEvMHgxOTAKIFsgICA1MC41MjkzNTRdWyBUMzQ4MF0gIG1hbGxfY2xhc3NpZnkr MHg2Ny8weDkwCiBbICAgNTAuNTMwMzMyXVsgVDM0ODBdICB0Y2ZfY2xhc3NpZnkrMHg3Mi8weDE2 MAogWyAgIDUwLjUzMTI4Nl1bIFQzNDgwXSAgX19kZXZfcXVldWVfeG1pdCsweDNkYi8weGQ1MAog WyAgIDUwLjUzMjMyN11bIFQzNDgwXSAgZGV2X3F1ZXVlX3htaXQrMHgxOC8weDIwCiBbICAgNTAu NTMzMjk5XVsgVDM0ODBdICBwYWNrZXRfc2VuZG1zZysweGVlNy8weDIwOTAKIFsgICA1MC41MzQz MzFdWyBUMzQ4MF0gIHNvY2tfc2VuZG1zZysweDU0LzB4NzAKIFsgICA1MC41MzUyNzFdWyBUMzQ4 MF0gIF9fc3lzX3NlbmR0bysweDE0OC8weDFmMAogWyAgIDUwLjUzNjI1Ml1bIFQzNDgwXSAgPyB0 b21veW9fZmlsZV9pb2N0bCsweDIzLzB4MzAKIFsgICA1MC41MzczMzRdWyBUMzQ4MF0gID8ga3N5 c19pb2N0bCsweDVlLzB4YjAKIFsgICA1MC41NDAwNjhdWyBUMzQ4MF0gIF9feDY0X3N5c19zZW5k dG8rMHgyYS8weDMwCiBbICAgNTAuNTQyODEwXVsgVDM0ODBdICBkb19zeXNjYWxsXzY0KzB4NzMv MHgxZjAKIFsgICA1MC41NDUzODNdWyBUMzQ4MF0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdm cmFtZSsweDQ0LzB4YTkKIFsgICA1MC41NDg0NzddWyBUMzQ4MF0gUklQOiAwMDMzOjB4N2YzNTM1 N2Q2ZmIzCiBbICAgNTAuNTUxMDIwXVsgVDM0ODBdIENvZGU6IDQ4IDhiIDBkIDE4IDkwIDIwIDAw IGY3IGQ4IDY0IDg5IDAxIDQ4IDgzIGM4IGZmIGMzIDY2IDBmIDFmIDQ0IDAwIDAwIDgzIDNkIGY5 IGQzIDIwIDAwIDAwIDc1IDEzIDQ5IDg5IGNhIGI4IDJjIDAwIDAwIDAwIDBmIDA1IDw0OD4gM2Qg MDEgZjAgZmYgZmYgNzMgMzQgYzMgNDggODMgZWMgMDggZTggZWIgZjYgZmYgZmYgNDggODkgMDQg MjQKIFsgICA1MC41NTg1NDddWyBUMzQ4MF0gUlNQOiAwMDJiOjAwMDA3ZmZlMGM3MjEyYzggRUZM QUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAyYwogWyAgIDUwLjU2MTg3MF1b IFQzNDgwXSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAxZGFjMDEwIFJDWDog MDAwMDdmMzUzNTdkNmZiMwogWyAgIDUwLjU2NTE0Ml1bIFQzNDgwXSBSRFg6IDAwMDAwMDAwMDAw MDAwODIgUlNJOiAwMDAwMDAwMDAxZGFjMmEyIFJESTogMDAwMDAwMDAwMDAwMDAwMwogWyAgIDUw LjU2ODQ2OV1bIFQzNDgwXSBSQlA6IDAwMDA3ZmZlMGM3MjEyZjAgUjA4OiAwMDAwN2ZmZTBjNzIx MmQwIFIwOTogMDAwMDAwMDAwMDAwMDAxNAogWyAgIDUwLjU3MTczMV1bIFQzNDgwXSBSMTA6IDAw MDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAwMDAwMDA4 MgogWyAgIDUwLjU3NDk2MV1bIFQzNDgwXSBSMTM6IDAwMDAwMDAwMDFkYWMyYTIgUjE0OiAwMDAw MDAwMDAwMDAwMDAxIFIxNTogMDAwMDAwMDAwMDAwMDAwMwogWyAgIDUwLjU3ODE3MF1bIFQzNDgw XSBNb2R1bGVzIGxpbmtlZCBpbjogc2NoX2luZ3Jlc3MgdmlydGlvX25ldAogWyAgIDUwLjU4MDk3 Nl1bIFQzNDgwXSAtLS1bIGVuZCB0cmFjZSA2MWE1MTU2MjZhNTk1YWY2IF0tLS0KCkNDOiBZb3Rh bSBHaWdpIDx5b3RhbWdAbWVsbGFub3guY29tPgpDQzogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5v eC5jb20+CkNDOiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpDQzogU2ltb24g SG9ybWFuIDxzaW1vbi5ob3JtYW5AbmV0cm9ub21lLmNvbT4KQ0M6IFJvb3BhIFByYWJodSA8cm9v cGFAY3VtdWx1c25ldHdvcmtzLmNvbT4KRml4ZXM6IDZhZTBhNjI4NjE3MSAoIm5ldDogSW50cm9k dWNlIHBzYW1wbGUsIGEgbmV3IGdlbmV0bGluayBjaGFubmVsIGZvciBwYWNrZXQgc2FtcGxpbmci KQpTaWduZWQtb2ZmLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3 b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvcHNhbXBsZS9wc2FtcGxlLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcHNhbXBsZS9w c2FtcGxlLmMgYi9uZXQvcHNhbXBsZS9wc2FtcGxlLmMKaW5kZXggNjZlNGI2MWEzNTBkLi5hM2Y3 ZTM1ZGNjYWMgMTAwNjQ0Ci0tLSBhL25ldC9wc2FtcGxlL3BzYW1wbGUuYworKysgYi9uZXQvcHNh bXBsZS9wc2FtcGxlLmMKQEAgLTIyMSw3ICsyMjEsNyBAQCB2b2lkIHBzYW1wbGVfc2FtcGxlX3Bh Y2tldChzdHJ1Y3QgcHNhbXBsZV9ncm91cCAqZ3JvdXAsIHN0cnVjdCBza19idWZmICpza2IsCiAJ CWRhdGFfbGVuID0gUFNBTVBMRV9NQVhfUEFDS0VUX1NJWkUgLSBtZXRhX2xlbiAtIE5MQV9IRFJM RU4KIAkJCSAgICAtIE5MQV9BTElHTlRPOwogCi0Jbmxfc2tiID0gZ2VubG1zZ19uZXcobWV0YV9s ZW4gKyBkYXRhX2xlbiwgR0ZQX0FUT01JQyk7CisJbmxfc2tiID0gZ2VubG1zZ19uZXcobWV0YV9s ZW4gKyBubGFfdG90YWxfc2l6ZShkYXRhX2xlbiksIEdGUF9BVE9NSUMpOwogCWlmICh1bmxpa2Vs eSghbmxfc2tiKSkKIAkJcmV0dXJuOwogCi0tIAoyLjIwLjEKCgpGcm9tIDhhMWU5YzMzYWI1M2Zm NmEwMWQ0YjZmMjk5NDIwOGY5YzQwYWZmM2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IER1c3QgTGkgPGR1c3QubGlAbGludXguYWxpYmFiYS5jb20+CkRhdGU6IFRodSwgMjggTm92IDIw MTkgMTQ6Mjk6MDkgKzA4MDAKU3ViamVjdDogW1BBVENIIDA3LzIzXSBuZXQ6IHNjaGVkOiBmaXgg YHRjIC1zIGNsYXNzIHNob3dgIG5vIGJzdGF0cyBvbiBjbGFzcwogd2l0aCBub2xvY2sgc3VicXVl dWVzCgpbIFVwc3RyZWFtIGNvbW1pdCAxNGU1NGFiOTE0M2ZhNjA3OTRkMTNlYTBhNjZjNzkyYTIw NDZhOGYzIF0KCldoZW4gYSBjbGFzc2Z1bCBxZGlzYydzIGNoaWxkIHFkaXNjIGhhcyBzZXQgdGhl IGZsYWcKVENRX0ZfQ1BVU1RBVFMgKHBmaWZvX2Zhc3QgZm9yIGV4YW1wbGUpLCB0aGUgY2hpbGQg cWRpc2MncwpjcHVfYnN0YXRzIHNob3VsZCBiZSBwYXNzZWQgdG8gZ25ldF9zdGF0c19jb3B5X2Jh c2ljKCksCmJ1dCBtYW55IGNsYXNzZnVsIHFkaXNjIGRpZG4ndCBkbyB0aGF0LiBBcyBhIHJlc3Vs dCwKYHRjIC1zIGNsYXNzIHNob3cgZGV2IERFVmAgYWx3YXlzIHJldHVybiAwIGZvciBieXRlcyBh bmQKcGFja2V0cyBpbiB0aGlzIGNhc2UuCgpQYXNzIHRoZSBjaGlsZCBxZGlzYydzIGNwdV9ic3Rh dHMgdG8gZ25ldF9zdGF0c19jb3B5X2Jhc2ljKCkKdG8gZml4IHRoaXMgaXNzdWUuCgpUaGUgcXN0 YXRzIGFsc28gaGFzIHRoaXMgcHJvYmxlbSwgYnV0IGl0IGhhcyBiZWVuIGZpeGVkCmluIDVkZDQz MWI2YjkgKCJuZXQ6IHNjaGVkOiBpbnRyb2R1Y2UgYW5kIHVzZSBxc3RhdHMgcmVhZC4uLiIpCmFu ZCBic3RhdHMgc3RpbGwgcmVtYWlucyBidWdneS4KCkZpeGVzOiAyMmUwZjhiOTMyMmMgKCJuZXQ6 IHNjaGVkOiBtYWtlIGJzdGF0cyBwZXIgY3B1IGFuZCBlc3RpbWF0b3IgUkNVIHNhZmUiKQpTaWdu ZWQtb2ZmLWJ5OiBEdXN0IExpIDxkdXN0LmxpQGxpbnV4LmFsaWJhYmEuY29tPgpTaWduZWQtb2Zm LWJ5OiBUb255IEx1IDx0b255bHVAbGludXguYWxpYmFiYS5jb20+CkFja2VkLWJ5OiBDb25nIFdh bmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9zY2hfbXEuYyAgICAgfCAz ICsrLQogbmV0L3NjaGVkL3NjaF9tcXByaW8uYyB8IDQgKystLQogbmV0L3NjaGVkL3NjaF9tdWx0 aXEuYyB8IDIgKy0KIG5ldC9zY2hlZC9zY2hfcHJpby5jICAgfCAyICstCiA0IGZpbGVzIGNoYW5n ZWQsIDYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2No ZWQvc2NoX21xLmMgYi9uZXQvc2NoZWQvc2NoX21xLmMKaW5kZXggMGQ1NzgzMzNlOTY3Li4yNzhj MGIyZGM1MjMgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfbXEuYworKysgYi9uZXQvc2NoZWQv c2NoX21xLmMKQEAgLTI0NSw3ICsyNDUsOCBAQCBzdGF0aWMgaW50IG1xX2R1bXBfY2xhc3Nfc3Rh dHMoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgY2wsCiAJc3RydWN0IG5ldGRldl9x dWV1ZSAqZGV2X3F1ZXVlID0gbXFfcXVldWVfZ2V0KHNjaCwgY2wpOwogCiAJc2NoID0gZGV2X3F1 ZXVlLT5xZGlzY19zbGVlcGluZzsKLQlpZiAoZ25ldF9zdGF0c19jb3B5X2Jhc2ljKCZzY2gtPnJ1 bm5pbmcsIGQsIE5VTEwsICZzY2gtPmJzdGF0cykgPCAwIHx8CisJaWYgKGduZXRfc3RhdHNfY29w eV9iYXNpYygmc2NoLT5ydW5uaW5nLCBkLCBzY2gtPmNwdV9ic3RhdHMsCisJCQkJICAmc2NoLT5i c3RhdHMpIDwgMCB8fAogCSAgICBxZGlzY19xc3RhdHNfY29weShkLCBzY2gpIDwgMCkKIAkJcmV0 dXJuIC0xOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9tcXByaW8uYyBi L25ldC9zY2hlZC9zY2hfbXFwcmlvLmMKaW5kZXggNDY5ODBiOGQ2NmM1Li4wZDAxMTNhMjQ5NjIg MTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfbXFwcmlvLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9t cXByaW8uYwpAQCAtNTU3LDggKzU1Nyw4IEBAIHN0YXRpYyBpbnQgbXFwcmlvX2R1bXBfY2xhc3Nf c3RhdHMoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgY2wsCiAJCXN0cnVjdCBuZXRk ZXZfcXVldWUgKmRldl9xdWV1ZSA9IG1xcHJpb19xdWV1ZV9nZXQoc2NoLCBjbCk7CiAKIAkJc2No ID0gZGV2X3F1ZXVlLT5xZGlzY19zbGVlcGluZzsKLQkJaWYgKGduZXRfc3RhdHNfY29weV9iYXNp YyhxZGlzY19yb290X3NsZWVwaW5nX3J1bm5pbmcoc2NoKSwKLQkJCQkJICBkLCBOVUxMLCAmc2No LT5ic3RhdHMpIDwgMCB8fAorCQlpZiAoZ25ldF9zdGF0c19jb3B5X2Jhc2ljKHFkaXNjX3Jvb3Rf c2xlZXBpbmdfcnVubmluZyhzY2gpLCBkLAorCQkJCQkgIHNjaC0+Y3B1X2JzdGF0cywgJnNjaC0+ YnN0YXRzKSA8IDAgfHwKIAkJICAgIHFkaXNjX3FzdGF0c19jb3B5KGQsIHNjaCkgPCAwKQogCQkJ cmV0dXJuIC0xOwogCX0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfbXVsdGlxLmMgYi9uZXQv c2NoZWQvc2NoX211bHRpcS5jCmluZGV4IGUxMDg3NzQ2ZjZhMi4uNWNkZjNiNmFiYWU2IDEwMDY0 NAotLS0gYS9uZXQvc2NoZWQvc2NoX211bHRpcS5jCisrKyBiL25ldC9zY2hlZC9zY2hfbXVsdGlx LmMKQEAgLTMzMCw3ICszMzAsNyBAQCBzdGF0aWMgaW50IG11bHRpcV9kdW1wX2NsYXNzX3N0YXRz KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGNsLAogCiAJY2xfcSA9IHEtPnF1ZXVl c1tjbCAtIDFdOwogCWlmIChnbmV0X3N0YXRzX2NvcHlfYmFzaWMocWRpc2Nfcm9vdF9zbGVlcGlu Z19ydW5uaW5nKHNjaCksCi0JCQkJICBkLCBOVUxMLCAmY2xfcS0+YnN0YXRzKSA8IDAgfHwKKwkJ CQkgIGQsIGNsX3EtPmNwdV9ic3RhdHMsICZjbF9xLT5ic3RhdHMpIDwgMCB8fAogCSAgICBxZGlz Y19xc3RhdHNfY29weShkLCBjbF9xKSA8IDApCiAJCXJldHVybiAtMTsKIApkaWZmIC0tZ2l0IGEv bmV0L3NjaGVkL3NjaF9wcmlvLmMgYi9uZXQvc2NoZWQvc2NoX3ByaW8uYwppbmRleCAwZjhmZWRi ODgwOWEuLjE4Yjg4NGNmZGZlOCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9wcmlvLmMKKysr IGIvbmV0L3NjaGVkL3NjaF9wcmlvLmMKQEAgLTM1Niw3ICszNTYsNyBAQCBzdGF0aWMgaW50IHBy aW9fZHVtcF9jbGFzc19zdGF0cyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBjbCwK IAogCWNsX3EgPSBxLT5xdWV1ZXNbY2wgLSAxXTsKIAlpZiAoZ25ldF9zdGF0c19jb3B5X2Jhc2lj KHFkaXNjX3Jvb3Rfc2xlZXBpbmdfcnVubmluZyhzY2gpLAotCQkJCSAgZCwgTlVMTCwgJmNsX3Et PmJzdGF0cykgPCAwIHx8CisJCQkJICBkLCBjbF9xLT5jcHVfYnN0YXRzLCAmY2xfcS0+YnN0YXRz KSA8IDAgfHwKIAkgICAgcWRpc2NfcXN0YXRzX2NvcHkoZCwgY2xfcSkgPCAwKQogCQlyZXR1cm4g LTE7CiAKLS0gCjIuMjAuMQoKCkZyb20gMWZmZjI5MTMxNmQ5ZWRiZjY2NDllNzcxNjExMmI5ZWRj MjhkNGVkYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFvbG8gQWJlbmkgPHBhYmVu aUByZWRoYXQuY29tPgpEYXRlOiBUdWUsIDI2IE5vdiAyMDE5IDEyOjU1OjUwICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAwOC8yM10gb3BlbnZzd2l0Y2g6IGZpeCBmbG93IGNvbW1hbmQgbWVzc2FnZSBz aXplCgpbIFVwc3RyZWFtIGNvbW1pdCA0ZTgxYzBiM2ZhOTNkMDc2NTNlMjQxNWZhNzE2NTZiMDgw YTExMmZkIF0KCldoZW4gdXNlci1zcGFjZSBzZXRzIHRoZSBPVlNfVUZJRF9GX09NSVRfKiBmbGFn cywgYW5kIHRoZSByZWxldmFudApmbG93IGhhcyBubyBVRklELCB3ZSBjYW4gZXhjZWVkIHRoZSBj b21wdXRlZCBzaXplLCBhcwpvdnNfbmxhX3B1dF9pZGVudGlmaWVyKCkgd2lsbCBhbHdheXMgZHVt cCBhbiBPVlNfRkxPV19BVFRSX0tFWQphdHRyaWJ1dGUuClRha2UgdGhlIGFib3ZlIGluIGFjY291 bnQgd2hlbiBjb21wdXRpbmcgdGhlIGZsb3cgY29tbWFuZCBtZXNzYWdlCnNpemUuCgpGaXhlczog NzRlZDdhYjkyNjRjICgib3BlbnZzd2l0Y2g6IEFkZCBzdXBwb3J0IGZvciB1bmlxdWUgZmxvdyBJ RHMuIikKUmVwb3J0ZWQtYnk6IFFpIEp1biBEaW5nIDxxZGluZ0ByZWRoYXQuY29tPgpTaWduZWQt b2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvb3BlbnZzd2l0Y2gv ZGF0YXBhdGguYyB8IDYgKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMgYi9u ZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYwppbmRleCA0M2FlY2ExMjIwOGMuLmIzNzAyYjliMzAz ZiAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMKKysrIGIvbmV0L29wZW52 c3dpdGNoL2RhdGFwYXRoLmMKQEAgLTcwMSw5ICs3MDEsMTMgQEAgc3RhdGljIHNpemVfdCBvdnNf Zmxvd19jbWRfbXNnX3NpemUoY29uc3Qgc3RydWN0IHN3X2Zsb3dfYWN0aW9ucyAqYWN0cywKIHsK IAlzaXplX3QgbGVuID0gTkxNU0dfQUxJR04oc2l6ZW9mKHN0cnVjdCBvdnNfaGVhZGVyKSk7CiAK LQkvKiBPVlNfRkxPV19BVFRSX1VGSUQgKi8KKwkvKiBPVlNfRkxPV19BVFRSX1VGSUQsIG9yIHVu bWFza2VkIGZsb3cga2V5IGFzIGZhbGxiYWNrCisJICogc2VlIG92c19ubGFfcHV0X2lkZW50aWZp ZXIoKQorCSAqLwogCWlmIChzZmlkICYmIG92c19pZGVudGlmaWVyX2lzX3VmaWQoc2ZpZCkpCiAJ CWxlbiArPSBubGFfdG90YWxfc2l6ZShzZmlkLT51ZmlkX2xlbik7CisJZWxzZQorCQlsZW4gKz0g bmxhX3RvdGFsX3NpemUob3ZzX2tleV9hdHRyX3NpemUoKSk7CiAKIAkvKiBPVlNfRkxPV19BVFRS X0tFWSAqLwogCWlmICghc2ZpZCB8fCBzaG91bGRfZmlsbF9rZXkoc2ZpZCwgdWZpZF9mbGFncykp Ci0tIAoyLjIwLjEKCgpGcm9tIDA5MWNjNmU0ZTUxMmMxMjc0N2M0Y2RiZjAxMzk1MTFiYTNjM2Nj ZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5hdmlkIEVtYW1kb29zdCA8bmF2aWQu ZW1hbWRvb3N0QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyMiBOb3YgMjAxOSAxNjoxNzo1NiAtMDYw MApTdWJqZWN0OiBbUEFUQ0ggMDkvMjNdIHNjdHA6IEZpeCBtZW1vcnkgbGVhayBpbiBzY3RwX3Nm X2RvXzVfMl80X2R1cGNvb2sKClsgVXBzdHJlYW0gY29tbWl0IGI2NjMxYzYwMzFjNzQ2ZWQwMDRj NDIyMWVjMDYxNmQ3YTUyMGY0NDEgXQoKSW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIHNjdHBfc2Zf ZG9fNV8yXzRfZHVwY29vaygpIHRoZSBhbGxvY2F0ZWQKbmV3X2Fzb2MgaXMgbGVha2VkIGlmIHNl Y3VyaXR5X3NjdHBfYXNzb2NfcmVxdWVzdCgpIGZhaWxzLiBSZWxlYXNlIGl0CnZpYSBzY3RwX2Fz c29jaWF0aW9uX2ZyZWUoKS4KCkZpeGVzOiAyMjc3YzdjZDc1ZTMgKCJzY3RwOiBBZGQgTFNNIGhv b2tzIikKU2lnbmVkLW9mZi1ieTogTmF2aWQgRW1hbWRvb3N0IDxuYXZpZC5lbWFtZG9vc3RAZ21h aWwuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5l ckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNr aUBuZXRyb25vbWUuY29tPgotLS0KIG5ldC9zY3RwL3NtX3N0YXRlZnVucy5jIHwgNCArKystCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYwppbmRl eCAyYzI0NGIyOWExOTkuLjllZWVhMGQ4ZTRjZiAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc21fc3Rh dGVmdW5zLmMKKysrIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKQEAgLTIxNjAsOCArMjE2MCwx MCBAQCBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb181XzJfNF9kdXBjb29rKAogCiAJ LyogVXBkYXRlIHNvY2tldCBwZWVyIGxhYmVsIGlmIGZpcnN0IGFzc29jaWF0aW9uLiAqLwogCWlm IChzZWN1cml0eV9zY3RwX2Fzc29jX3JlcXVlc3QoKHN0cnVjdCBzY3RwX2VuZHBvaW50ICopZXAs Ci0JCQkJCWNodW5rLT5za2IpKQorCQkJCQljaHVuay0+c2tiKSkgeworCQlzY3RwX2Fzc29jaWF0 aW9uX2ZyZWUobmV3X2Fzb2MpOwogCQlyZXR1cm4gc2N0cF9zZl9wZGlzY2FyZChuZXQsIGVwLCBh c29jLCB0eXBlLCBhcmcsIGNvbW1hbmRzKTsKKwl9CiAKIAkvKiBTZXQgdGVtcCBzbyB0aGF0IGl0 IHdvbid0IGJlIGFkZGVkIGludG8gaGFzaHRhYmxlICovCiAJbmV3X2Fzb2MtPnRlbXAgPSAxOwot LSAKMi4yMC4xCgoKRnJvbSAzODVkOWU1NWMzZGNlOTQzMDlkYjgwNmJhMWEyZmRlYTE0M2Y2YzIx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb3VuaSBIb2dhbmRlciA8am91bmkuaG9n YW5kZXJAdW5pa2llLmNvbT4KRGF0ZTogTW9uLCAyNSBOb3YgMjAxOSAxNDoyMzo0MyArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMTAvMjNdIHNsaXA6IEZpeCB1c2UtYWZ0ZXItZnJlZSBSZWFkIGluIHNs aXBfb3BlbgoKWyBVcHN0cmVhbSBjb21taXQgZTU4YzE5MTI0MTg5ODBmNTdiYTIwNjAwMTc1ODMw NjdmNWY3MWU1MiBdCgpTbGlwX29wZW4gZG9lc24ndCBjbGVhbi11cCBkZXZpY2Ugd2hpY2ggcmVn aXN0cmF0aW9uIGZhaWxlZCBmcm9tIHRoZQpzbGlwX2RldnMgZGV2aWNlIGxpc3QuIE9uIG5leHQg b3BlbiBhZnRlciBmYWlsdXJlIHRoaXMgbGlzdCBpcyBpdGVyYXRlZAphbmQgZnJlZWQgZGV2aWNl IGlzIGFjY2Vzc2VkLiBGaXggdGhpcyBieSBjYWxsaW5nIHNsX2ZyZWVfbmV0ZGV2IGluIGVycm9y CnBhdGguCgpIZXJlIGlzIHRoZSB0cmFjZSBmcm9tIHRoZSBTeXpib3Q6CgpfX2R1bXBfc3RhY2sg bGliL2R1bXBfc3RhY2suYzo3NyBbaW5saW5lXQpkdW1wX3N0YWNrKzB4MTk3LzB4MjEwIGxpYi9k dW1wX3N0YWNrLmM6MTE4CnByaW50X2FkZHJlc3NfZGVzY3JpcHRpb24uY29uc3Rwcm9wLjAuY29s ZCsweGQ0LzB4MzBiIG1tL2thc2FuL3JlcG9ydC5jOjM3NApfX2thc2FuX3JlcG9ydC5jb2xkKzB4 MWIvMHg0MSBtbS9rYXNhbi9yZXBvcnQuYzo1MDYKa2FzYW5fcmVwb3J0KzB4MTIvMHgyMCBtbS9r YXNhbi9jb21tb24uYzo2MzQKX19hc2FuX3JlcG9ydF9sb2FkOF9ub2Fib3J0KzB4MTQvMHgyMCBt bS9rYXNhbi9nZW5lcmljX3JlcG9ydC5jOjEzMgpzbF9zeW5jIGRyaXZlcnMvbmV0L3NsaXAvc2xp cC5jOjcyNSBbaW5saW5lXQpzbGlwX29wZW4rMHhlY2QvMHgxMWI3IGRyaXZlcnMvbmV0L3NsaXAv c2xpcC5jOjgwMQp0dHlfbGRpc2Nfb3Blbi5pc3JhLjArMHhhMy8weDExMCBkcml2ZXJzL3R0eS90 dHlfbGRpc2MuYzo0NjkKdHR5X3NldF9sZGlzYysweDMwZS8weDZiMCBkcml2ZXJzL3R0eS90dHlf bGRpc2MuYzo1OTYKdGlvY3NldGQgZHJpdmVycy90dHkvdHR5X2lvLmM6MjMzNCBbaW5saW5lXQp0 dHlfaW9jdGwrMHhlOGQvMHgxNGYwIGRyaXZlcnMvdHR5L3R0eV9pby5jOjI1OTQKdmZzX2lvY3Rs IGZzL2lvY3RsLmM6NDYgW2lubGluZV0KZmlsZV9pb2N0bCBmcy9pb2N0bC5jOjUwOSBbaW5saW5l XQpkb192ZnNfaW9jdGwrMHhkYjYvMHgxM2UwIGZzL2lvY3RsLmM6Njk2CmtzeXNfaW9jdGwrMHhh Yi8weGQwIGZzL2lvY3RsLmM6NzEzCl9fZG9fc3lzX2lvY3RsIGZzL2lvY3RsLmM6NzIwIFtpbmxp bmVdCl9fc2Vfc3lzX2lvY3RsIGZzL2lvY3RsLmM6NzE4IFtpbmxpbmVdCl9feDY0X3N5c19pb2N0 bCsweDczLzB4YjAgZnMvaW9jdGwuYzo3MTgKZG9fc3lzY2FsbF82NCsweGZhLzB4NzYwIGFyY2gv eDg2L2VudHJ5L2NvbW1vbi5jOjI5MAplbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0 OS8weGJlCgpGaXhlczogM2I1YTM5OTc5ZGFmICgic2xpcDogRml4IG1lbW9yeSBsZWFrIGluIHNs aXBfb3BlbiBlcnJvciBwYXRoIikKUmVwb3J0ZWQtYnk6IHN5emJvdCs0ZDUxNzA3NThmMzc2MjEw OTU0MkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tCkNjOiBEYXZpZCBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+CkNjOiBPbGl2ZXIgSGFydGtvcHAgPHNvY2tldGNhbkBoYXJ0a29wcC5uZXQ+ CkNjOiBMdWthcyBCdWx3YWhuIDxsdWthcy5idWx3YWhuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogSm91bmkgSG9nYW5kZXIgPGpvdW5pLmhvZ2FuZGVyQHVuaWtpZS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9zbGlwL3NsaXAuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvc2xpcC9zbGlwLmMgYi9kcml2ZXJzL25ldC9zbGlwL3NsaXAu YwppbmRleCA0ZDQ3OWUzYzgxN2QuLjJhOTFjMTkyNjU5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvc2xpcC9zbGlwLmMKKysrIGIvZHJpdmVycy9uZXQvc2xpcC9zbGlwLmMKQEAgLTg1NSw2ICs4 NTUsNyBAQCBzdGF0aWMgaW50IHNsaXBfb3BlbihzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KQogCXNs LT50dHkgPSBOVUxMOwogCXR0eS0+ZGlzY19kYXRhID0gTlVMTDsKIAljbGVhcl9iaXQoU0xGX0lO VVNFLCAmc2wtPmZsYWdzKTsKKwlzbF9mcmVlX25ldGRldihzbC0+ZGV2KTsKIAlmcmVlX25ldGRl dihzbC0+ZGV2KTsKIAogZXJyX2V4aXQ6Ci0tIAoyLjIwLjEKCgpGcm9tIDg5YjAzYzMzYzQ2M2Fk MjU3N2MxZDRhOGM4YmIyOTlhMTE5NjViNzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAyMyBOb3YgMjAxOSAx MTo1Njo0OSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMjNdIHNjdHA6IGNhY2hlIG5ldG5zIGlu IHNjdHBfZXBfY29tbW9uCgpbIFVwc3RyZWFtIGNvbW1pdCAzMTI0MzQ2MTdjYjE2YmU1MTY2MzE2 Y2Y5ZDA4YmE3NjBiMTA0MmExIF0KClRoaXMgcGF0Y2ggaXMgdG8gZml4IGEgZGF0YS1yYWNlIHJl cG9ydGVkIGJ5IHN5emJvdDoKCiAgQlVHOiBLQ1NBTjogZGF0YS1yYWNlIGluIHNjdHBfYXNzb2Nf bWlncmF0ZSAvIHNjdHBfaGFzaF9vYmoKCiAgd3JpdGUgdG8gMHhmZmZmODg4MGI2N2MwMDIwIG9m IDggYnl0ZXMgYnkgdGFzayAxODkwOCBvbiBjcHUgMToKICAgIHNjdHBfYXNzb2NfbWlncmF0ZSsw eDFhNi8weDI5MCBuZXQvc2N0cC9hc3NvY2lvbGEuYzoxMDkxCiAgICBzY3RwX3NvY2tfbWlncmF0 ZSsweDhhYS8weDliMCBuZXQvc2N0cC9zb2NrZXQuYzo5NDY1CiAgICBzY3RwX2FjY2VwdCsweDNj OC8weDQ3MCBuZXQvc2N0cC9zb2NrZXQuYzo0OTE2CiAgICBpbmV0X2FjY2VwdCsweDdmLzB4MzYw IG5ldC9pcHY0L2FmX2luZXQuYzo3MzQKICAgIF9fc3lzX2FjY2VwdDQrMHgyMjQvMHg0MzAgbmV0 L3NvY2tldC5jOjE3NTQKICAgIF9fZG9fc3lzX2FjY2VwdCBuZXQvc29ja2V0LmM6MTc5NSBbaW5s aW5lXQogICAgX19zZV9zeXNfYWNjZXB0IG5ldC9zb2NrZXQuYzoxNzkyIFtpbmxpbmVdCiAgICBf X3g2NF9zeXNfYWNjZXB0KzB4NGUvMHg2MCBuZXQvc29ja2V0LmM6MTc5MgogICAgZG9fc3lzY2Fs bF82NCsweGNjLzB4MzcwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI5MAogICAgZW50cnlfU1lT Q0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQoKICByZWFkIHRvIDB4ZmZmZjg4ODBiNjdj MDAyMCBvZiA4IGJ5dGVzIGJ5IHRhc2sgMTIwMDMgb24gY3B1IDA6CiAgICBzY3RwX2hhc2hfb2Jq KzB4NGYvMHgyZDAgbmV0L3NjdHAvaW5wdXQuYzo4OTQKICAgIHJodF9rZXlfZ2V0X2hhc2ggaW5j bHVkZS9saW51eC9yaGFzaHRhYmxlLmg6MTMzIFtpbmxpbmVdCiAgICByaHRfa2V5X2hhc2hmbiBp bmNsdWRlL2xpbnV4L3JoYXNodGFibGUuaDoxNTkgW2lubGluZV0KICAgIHJodF9oZWFkX2hhc2hm biBpbmNsdWRlL2xpbnV4L3JoYXNodGFibGUuaDoxNzQgW2lubGluZV0KICAgIGhlYWRfaGFzaGZu IGxpYi9yaGFzaHRhYmxlLmM6NDEgW2lubGluZV0KICAgIHJoYXNodGFibGVfcmVoYXNoX29uZSBs aWIvcmhhc2h0YWJsZS5jOjI0NSBbaW5saW5lXQogICAgcmhhc2h0YWJsZV9yZWhhc2hfY2hhaW4g bGliL3JoYXNodGFibGUuYzoyNzYgW2lubGluZV0KICAgIHJoYXNodGFibGVfcmVoYXNoX3RhYmxl IGxpYi9yaGFzaHRhYmxlLmM6MzE2IFtpbmxpbmVdCiAgICByaHRfZGVmZXJyZWRfd29ya2VyKzB4 NDY4LzB4YWIwIGxpYi9yaGFzaHRhYmxlLmM6NDIwCiAgICBwcm9jZXNzX29uZV93b3JrKzB4M2Q0 LzB4ODkwIGtlcm5lbC93b3JrcXVldWUuYzoyMjY5CiAgICB3b3JrZXJfdGhyZWFkKzB4YTAvMHg4 MDAga2VybmVsL3dvcmtxdWV1ZS5jOjI0MTUKICAgIGt0aHJlYWQrMHgxZDQvMHgyMDAgZHJpdmVy cy9ibG9jay9hb2UvYW9lY21kLmM6MTI1MwogICAgcmV0X2Zyb21fZm9yaysweDFmLzB4MzAgYXJj aC94ODYvZW50cnkvZW50cnlfNjQuUzozNTIKCkl0IHdhcyBjYXVzZWQgYnkgcmhhc2h0YWJsZSBh Y2Nlc3MgYXNvYy0+YmFzZS5zayB3aGVuIHNjdHBfYXNzb2NfbWlncmF0ZQppcyBjaGFuZ2luZyBp dHMgdmFsdWUuIEhvd2V2ZXIsIHdoYXQgcmhhc2h0YWJsZSB3YW50cyBpcyBuZXRucyBmcm9tIGFz b2MKYmFzZS5zaywgYW5kIGZvciBhbiBhc29jLCBpdHMgbmV0bnMgd29uJ3QgY2hhbmdlIG9uY2Ug c2V0LiBTbyB3ZSBjYW4Kc2ltcGx5IGZpeCBpdCBieSBjYWNoaW5nIG5ldG5zIHNpbmNlIGNyZWF0 ZWQuCgpGaXhlczogZDZjMDI1NmE2MGU2ICgic2N0cDogYWRkIHRoZSByaGFzaHRhYmxlIGFwaXMg Zm9yIHNjdHAgZ2xvYmFsIHRyYW5zcG9ydCBoYXNodGFibGUiKQpSZXBvcnRlZC1ieTogc3l6Ym90 K2UzYjM1ZmU3OTE4ZmYwZWU0NzRlQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KU2lnbmVkLW9m Zi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBS aWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgotLS0KIGluY2x1 ZGUvbmV0L3NjdHAvc3RydWN0cy5oIHwgMyArKysKIG5ldC9zY3RwL2Fzc29jaW9sYS5jICAgICAg IHwgMSArCiBuZXQvc2N0cC9lbmRwb2ludG9sYS5jICAgICB8IDEgKwogbmV0L3NjdHAvaW5wdXQu YyAgICAgICAgICAgfCA0ICsrLS0KIDQgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NjdHAvc3RydWN0cy5oIGIv aW5jbHVkZS9uZXQvc2N0cC9zdHJ1Y3RzLmgKaW5kZXggYmE1YzRmNmVlZGU1Li5lZWVlMDQwYjUz OTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjdHAvc3RydWN0cy5oCisrKyBiL2luY2x1ZGUv bmV0L3NjdHAvc3RydWN0cy5oCkBAIC0xMjM5LDYgKzEyMzksOSBAQCBzdHJ1Y3Qgc2N0cF9lcF9j b21tb24gewogCS8qIFdoYXQgc29ja2V0IGRvZXMgdGhpcyBlbmRwb2ludCBiZWxvbmcgdG8/ICAq LwogCXN0cnVjdCBzb2NrICpzazsKIAorCS8qIENhY2hlIG5ldG5zIGFuZCBpdCB3b24ndCBjaGFu Z2Ugb25jZSBzZXQgKi8KKwlzdHJ1Y3QgbmV0ICpuZXQ7CisKIAkvKiBUaGlzIGlzIHdoZXJlIHdl IHJlY2VpdmUgaW5ib3VuZCBjaHVua3MuICAqLwogCXN0cnVjdCBzY3RwX2lucQkgIGlucXVldWU7 CiAKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2Fzc29jaW9sYS5jIGIvbmV0L3NjdHAvYXNzb2Npb2xh LmMKaW5kZXggNTAxMGNjZTUyYzkzLi5hNDBiODBjZGI0YjMgMTAwNjQ0Ci0tLSBhL25ldC9zY3Rw L2Fzc29jaW9sYS5jCisrKyBiL25ldC9zY3RwL2Fzc29jaW9sYS5jCkBAIC02NSw2ICs2NSw3IEBA IHN0YXRpYyBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqc2N0cF9hc3NvY2lhdGlvbl9pbml0KAog CS8qIERpc2NhcmRpbmcgY29uc3QgaXMgYXBwcm9wcmlhdGUgaGVyZS4gICovCiAJYXNvYy0+ZXAg PSAoc3RydWN0IHNjdHBfZW5kcG9pbnQgKillcDsKIAlhc29jLT5iYXNlLnNrID0gKHN0cnVjdCBz b2NrICopc2s7CisJYXNvYy0+YmFzZS5uZXQgPSBzb2NrX25ldChzayk7CiAKIAlzY3RwX2VuZHBv aW50X2hvbGQoYXNvYy0+ZXApOwogCXNvY2tfaG9sZChhc29jLT5iYXNlLnNrKTsKZGlmZiAtLWdp dCBhL25ldC9zY3RwL2VuZHBvaW50b2xhLmMgYi9uZXQvc2N0cC9lbmRwb2ludG9sYS5jCmluZGV4 IDY5Y2ViYjJjOTk4Yi4uMDQ2ZGEwYmRjNTM5IDEwMDY0NAotLS0gYS9uZXQvc2N0cC9lbmRwb2lu dG9sYS5jCisrKyBiL25ldC9zY3RwL2VuZHBvaW50b2xhLmMKQEAgLTE1Miw2ICsxNTIsNyBAQCBz dGF0aWMgc3RydWN0IHNjdHBfZW5kcG9pbnQgKnNjdHBfZW5kcG9pbnRfaW5pdChzdHJ1Y3Qgc2N0 cF9lbmRwb2ludCAqZXAsCiAKIAkvKiBSZW1lbWJlciB3aG8gd2UgYXJlIGF0dGFjaGVkIHRvLiAg Ki8KIAllcC0+YmFzZS5zayA9IHNrOworCWVwLT5iYXNlLm5ldCA9IHNvY2tfbmV0KHNrKTsKIAlz b2NrX2hvbGQoZXAtPmJhc2Uuc2spOwogCiAJcmV0dXJuIGVwOwpkaWZmIC0tZ2l0IGEvbmV0L3Nj dHAvaW5wdXQuYyBiL25ldC9zY3RwL2lucHV0LmMKaW5kZXggMTAwOGNkYzQ0ZGQ2Li4yYjQzYjVl ZDMyNDEgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2lucHV0LmMKKysrIGIvbmV0L3NjdHAvaW5wdXQu YwpAQCAtODc2LDcgKzg3Niw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHNjdHBfaGFzaF9jbXAoc3Ry dWN0IHJoYXNodGFibGVfY29tcGFyZV9hcmcgKmFyZywKIAlpZiAoIXNjdHBfdHJhbnNwb3J0X2hv bGQodCkpCiAJCXJldHVybiBlcnI7CiAKLQlpZiAoIW5ldF9lcShzb2NrX25ldCh0LT5hc29jLT5i YXNlLnNrKSwgeC0+bmV0KSkKKwlpZiAoIW5ldF9lcSh0LT5hc29jLT5iYXNlLm5ldCwgeC0+bmV0 KSkKIAkJZ290byBvdXQ7CiAJaWYgKHgtPmxwb3J0ICE9IGh0b25zKHQtPmFzb2MtPmJhc2UuYmlu ZF9hZGRyLnBvcnQpKQogCQlnb3RvIG91dDsKQEAgLTg5MSw3ICs4OTEsNyBAQCBzdGF0aWMgaW5s aW5lIF9fdTMyIHNjdHBfaGFzaF9vYmooY29uc3Qgdm9pZCAqZGF0YSwgdTMyIGxlbiwgdTMyIHNl ZWQpCiB7CiAJY29uc3Qgc3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0ID0gZGF0YTsKIAotCXJldHVy biBzY3RwX2hhc2hmbihzb2NrX25ldCh0LT5hc29jLT5iYXNlLnNrKSwKKwlyZXR1cm4gc2N0cF9o YXNoZm4odC0+YXNvYy0+YmFzZS5uZXQsCiAJCQkgICBodG9ucyh0LT5hc29jLT5iYXNlLmJpbmRf YWRkci5wb3J0KSwKIAkJCSAgICZ0LT5pcGFkZHIsIHNlZWQpOwogfQotLSAKMi4yMC4xCgoKRnJv bSBkZjE1N2EzZDA5ODIxMjRhNTExN2FkMTgwZDk1YWMwNGI5ZmJhZTJhIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+CkRhdGU6IFN1 biwgMSBEZWMgMjAxOSAxODo0MToyNCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjNdIG9wZW52 c3dpdGNoOiBkcm9wIHVubmVlZGVkIEJVR19PTigpIGluCiBvdnNfZmxvd19jbWRfYnVpbGRfaW5m bygpCgpbIFVwc3RyZWFtIGNvbW1pdCA4ZmZlYjAzZmJiYTNiNTk5NjkwYjM2MTQ2N2JmZDIzNzNl OGM0NTBmIF0KCkFsbCB0aGUgY2FsbGVycyBvZiBvdnNfZmxvd19jbWRfYnVpbGRfaW5mbygpIGFs cmVhZHkgZGVhbCB3aXRoCmVycm9yIHJldHVybiBjb2RlIGNvcnJlY3RseSwgc28gd2UgY2FuIGhh bmRsZSB0aGUgZXJyb3IgY29uZGl0aW9uCmluIGEgbW9yZSBncmFjZWZ1bGwgd2F5LiBTdGlsbCBk dW1wIGEgd2FybmluZyB0byBwcmVzZXJ2ZQpkZWJ1Z2dhYmlsaXR5LgoKdjEgLT4gdjI6CiAtIGNs YXJpZnkgdGhlIGNvbW1pdCBtZXNzYWdlCiAtIGNsZWFuIHRoZSBza2IgYW5kIHJlcG9ydCB0aGUg ZXJyb3IgKERhdmVNKQoKRml4ZXM6IGNjYjEzNTJlNzZjZiAoIm5ldDogQWRkIE9wZW4gdlN3aXRj aCBrZXJuZWwgY29tcG9uZW50cy4iKQpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5p QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYyB8IDUgKysrKy0KIDEgZmls ZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9u ZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYyBiL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jCmlu ZGV4IGIzNzAyYjliMzAzZi4uYmVjYWRlYTY0OWNjIDEwMDY0NAotLS0gYS9uZXQvb3BlbnZzd2l0 Y2gvZGF0YXBhdGguYworKysgYi9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYwpAQCAtODgzLDcg Kzg4MywxMCBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm92c19mbG93X2NtZF9idWlsZF9pbmZv KGNvbnN0IHN0cnVjdCBzd19mbG93ICpmbG93LAogCXJldHZhbCA9IG92c19mbG93X2NtZF9maWxs X2luZm8oZmxvdywgZHBfaWZpbmRleCwgc2tiLAogCQkJCQlpbmZvLT5zbmRfcG9ydGlkLCBpbmZv LT5zbmRfc2VxLCAwLAogCQkJCQljbWQsIHVmaWRfZmxhZ3MpOwotCUJVR19PTihyZXR2YWwgPCAw KTsKKwlpZiAoV0FSTl9PTl9PTkNFKHJldHZhbCA8IDApKSB7CisJCWtmcmVlX3NrYihza2IpOwor CQlza2IgPSBFUlJfUFRSKHJldHZhbCk7CisJfQogCXJldHVybiBza2I7CiB9CiAKLS0gCjIuMjAu MQoKCkZyb20gNGYxZmUwODJmNzQ4ODIwOGVjMTU2MzdhYzM2MjU2MDVjNGIwMzA4YSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpE YXRlOiBTdW4sIDEgRGVjIDIwMTkgMTg6NDE6MjUgKzAxMDAKU3ViamVjdDogW1BBVENIIDEzLzIz XSBvcGVudnN3aXRjaDogcmVtb3ZlIGFub3RoZXIgQlVHX09OKCkKClsgVXBzdHJlYW0gY29tbWl0 IDhhNTc0Zjg2NjUyYTQ1NDBhMjQzMzk0NmJhODI2Y2NiODdmMzk4Y2MgXQoKSWYgd2UgY2FuJ3Qg YnVpbGQgdGhlIGZsb3cgZGVsIG5vdGlmaWNhdGlvbiwgd2UgY2FuIHNpbXBseSBkZWxldGUKdGhl IGZsb3csIG5vIG5lZWQgdG8gY3Jhc2ggdGhlIGtlcm5lbC4gU3RpbGwga2VlcCBhIFdBUk5fT04g dG8KcHJlc2VydmUgZGVidWdnYWJpbGl0eS4KCk5vdGU6IHRoZSBCVUdfT04oKSBwcmVkYXRlcyB0 aGUgRml4ZXMgdGFnLCBidXQgdGhpcyBjaGFuZ2UKY2FuIGJlIGFwcGxpZWQgb25seSBhZnRlciB0 aGUgbWVudGlvbmVkIGNvbW1pdC4KCnYxIC0+IHYyOgogLSBkbyBub3QgbGVhayBhbiBza2Igb24g ZXJyb3IKCkZpeGVzOiBhZWQwNjc3ODNlNTAgKCJvcGVudnN3aXRjaDogTWluaW1pemUgb3ZzX2Zs b3dfY21kX2RlbCBjcml0aWNhbCBzZWN0aW9uLiIpClNpZ25lZC1vZmYtYnk6IFBhb2xvIEFiZW5p IDxwYWJlbmlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jIHwgNiArKysr Ky0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYyBiL25ldC9vcGVudnN3aXRjaC9kYXRh cGF0aC5jCmluZGV4IGJlY2FkZWE2NDljYy4uZjQwNzU3ZGJmYjI4IDEwMDY0NAotLS0gYS9uZXQv b3BlbnZzd2l0Y2gvZGF0YXBhdGguYworKysgYi9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYwpA QCAtMTM1MCw3ICsxMzUwLDEwIEBAIHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX2RlbChzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCQkJCQkJICAgICBPVlNfRkxP V19DTURfREVMLAogCQkJCQkJICAgICB1ZmlkX2ZsYWdzKTsKIAkJCXJjdV9yZWFkX3VubG9jaygp OwotCQkJQlVHX09OKGVyciA8IDApOworCQkJaWYgKFdBUk5fT05fT05DRShlcnIgPCAwKSkgewor CQkJCWtmcmVlX3NrYihyZXBseSk7CisJCQkJZ290byBvdXRfZnJlZTsKKwkJCX0KIAogCQkJb3Zz X25vdGlmeSgmZHBfZmxvd19nZW5sX2ZhbWlseSwgcmVwbHksIGluZm8pOwogCQl9IGVsc2UgewpA QCAtMTM1OCw2ICsxMzYxLDcgQEAgc3RhdGljIGludCBvdnNfZmxvd19jbWRfZGVsKHN0cnVjdCBz a19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pCiAJCX0KIAl9CiAKK291dF9mcmVl OgogCW92c19mbG93X2ZyZWUoZmxvdywgdHJ1ZSk7CiAJcmV0dXJuIDA7CiB1bmxvY2s6Ci0tIAoy LjIwLjEKCgpGcm9tIGNjOTFmZGIxNjU0ZTdiZjgwYjM3ZWQ0ODc0Nzc3MjgxNzg2NWE1ZjIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNr aUBuZXRyb25vbWUuY29tPgpEYXRlOiBXZWQsIDI3IE5vdiAyMDE5IDEyOjE2OjM5IC0wODAwClN1 YmplY3Q6IFtQQVRDSCAxNC8yM10gbmV0L3RsczogdGFrZSBpbnRvIGFjY291bnQgdGhhdCBicGZf ZXhlY190eF92ZXJkaWN0KCkKIG1heSBmcmVlIHRoZSByZWNvcmQKClsgVXBzdHJlYW0gY29tbWl0 IGMzMjllZjk2ODRkZTk1MTdkODJhZjViNDc1OGM5ZTFiNjRhOGExMWEgXQoKYnBmX2V4ZWNfdHhf dmVyZGljdCgpIG1heSBmcmVlIHRoZSByZWNvcmQgaWYgdGxzX3B1c2hfcmVjb3JkKCkKZmFpbHMs IG9yIGlmIHRoZSBlbnRpcmUgcmVjb3JkIGdvdCBjb25zdW1lZCBieSBCUEYuIFJlLWNoZWNrCmN0 eC0+b3Blbl9yZWMgYmVmb3JlIHRvdWNoaW5nIHRoZSBkYXRhLgoKRml4ZXM6IGQzYjE4YWQzMWY5 MyAoInRsczogYWRkIGJwZiBzdXBwb3J0IHRvIHNrX21zZyBoYW5kbGluZyIpClNpZ25lZC1vZmYt Ynk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpSZXZpZXdl ZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AbmV0cm9ub21lLmNvbT4KQWNrZWQtYnk6 IEpvaG4gRmFzdGFiZW5kIDxqb2huLmZhc3RhYmVuZEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGxzL3Rsc19z dy5jIHwgMTMgKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rsc19zdy5jIGIvbmV0L3Rscy90 bHNfc3cuYwppbmRleCA0MWIyYmRjMDViYTMuLmEzMzdlMjJjZmQzMCAxMDA2NDQKLS0tIGEvbmV0 L3Rscy90bHNfc3cuYworKysgYi9uZXQvdGxzL3Rsc19zdy5jCkBAIC05NzksNyArOTc5LDcgQEAg aW50IHRsc19zd19zZW5kbXNnKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBz aXplX3Qgc2l6ZSkKIAkJCQkJbnVtX2FzeW5jKys7CiAJCQkJZWxzZSBpZiAocmV0ID09IC1FTk9N RU0pCiAJCQkJCWdvdG8gd2FpdF9mb3JfbWVtb3J5OwotCQkJCWVsc2UgaWYgKHJldCA9PSAtRU5P U1BDKQorCQkJCWVsc2UgaWYgKGN0eC0+b3Blbl9yZWMgJiYgcmV0ID09IC1FTk9TUEMpCiAJCQkJ CWdvdG8gcm9sbGJhY2tfaXRlcjsKIAkJCQllbHNlIGlmIChyZXQgIT0gLUVBR0FJTikKIAkJCQkJ Z290byBzZW5kX2VuZDsKQEAgLTEwNDgsMTEgKzEwNDgsMTIgQEAgaW50IHRsc19zd19zZW5kbXNn KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3Qgc2l6ZSkKIAkJcmV0 ID0gc2tfc3RyZWFtX3dhaXRfbWVtb3J5KHNrLCAmdGltZW8pOwogCQlpZiAocmV0KSB7CiB0cmlt X3NnbDoKLQkJCXRsc190cmltX2JvdGhfbXNncyhzaywgb3JpZ19zaXplKTsKKwkJCWlmIChjdHgt Pm9wZW5fcmVjKQorCQkJCXRsc190cmltX2JvdGhfbXNncyhzaywgb3JpZ19zaXplKTsKIAkJCWdv dG8gc2VuZF9lbmQ7CiAJCX0KIAotCQlpZiAobXNnX2VuLT5zZy5zaXplIDwgcmVxdWlyZWRfc2l6 ZSkKKwkJaWYgKGN0eC0+b3Blbl9yZWMgJiYgbXNnX2VuLT5zZy5zaXplIDwgcmVxdWlyZWRfc2l6 ZSkKIAkJCWdvdG8gYWxsb2NfZW5jcnlwdGVkOwogCX0KIApAQCAtMTE4NSwxMSArMTE4NiwxMyBA QCBzdGF0aWMgaW50IHRsc19zd19kb19zZW5kcGFnZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBw YWdlICpwYWdlLAogd2FpdF9mb3JfbWVtb3J5OgogCQlyZXQgPSBza19zdHJlYW1fd2FpdF9tZW1v cnkoc2ssICZ0aW1lbyk7CiAJCWlmIChyZXQpIHsKLQkJCXRsc190cmltX2JvdGhfbXNncyhzaywg bXNnX3BsLT5zZy5zaXplKTsKKwkJCWlmIChjdHgtPm9wZW5fcmVjKQorCQkJCXRsc190cmltX2Jv dGhfbXNncyhzaywgbXNnX3BsLT5zZy5zaXplKTsKIAkJCWdvdG8gc2VuZHBhZ2VfZW5kOwogCQl9 CiAKLQkJZ290byBhbGxvY19wYXlsb2FkOworCQlpZiAoY3R4LT5vcGVuX3JlYykKKwkJCWdvdG8g YWxsb2NfcGF5bG9hZDsKIAl9CiAKIAlpZiAobnVtX2FzeW5jKSB7Ci0tIAoyLjIwLjEKCgpGcm9t IDMyNTg0MWVlNWYxOGU5MWYyMzlmYTExYzJmMGRjNzhjYmE1MDlmNmUgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUu Y29tPgpEYXRlOiBXZWQsIDI3IE5vdiAyMDE5IDEyOjE2OjQwIC0wODAwClN1YmplY3Q6IFtQQVRD SCAxNS8yM10gbmV0L3RsczogZnJlZSB0aGUgcmVjb3JkIG9uIGVuY3J5cHRpb24gZXJyb3IKClsg VXBzdHJlYW0gY29tbWl0IGQxMDUyM2QwYjNkNzgxNTNlZTU4ZDE5ODUzY2VkMjZjOTAwNGM4YzQg XQoKV2hlbiB0bHNfZG9fZW5jcnlwdGlvbigpIGZhaWxzIHRoZSBTRyBsaXN0cyBhcmUgbGVmdCB3 aXRoIHRoZQpTR19FTkQgYW5kIFNHX0NIQUlOIG1hcmtzIGluIHBsYWNlLiBPbmUgY291bGQgaG9w ZSB0aGF0IG9uY2UKZW5jcnlwdGlvbiBmYWlscyB3ZSB3aWxsIG5ldmVyIHNlZSB0aGUgcmVjb3Jk IGFnYWluLCBidXQgdGhhdAppcyBpbiBmYWN0IG5vdCB0cnVlLiBDb21taXQgZDNiMThhZDMxZjkz ICgidGxzOiBhZGQgYnBmIHN1cHBvcnQKdG8gc2tfbXNnIGhhbmRsaW5nIikgYWRkZWQgc3BlY2lh bCBoYW5kbGluZyB0byBFTk9NRU0gYW5kIEVOT1NQQwplcnJvcnMgd2hpY2ggbWVhbiB3ZSBtYXkg c2VlIHRoZSBzYW1lIHJlY29yZCByZS1zdWJtaXR0ZWQuCgpBcyBzdWdnZXN0ZWQgYnkgSm9obiBm cmVlIHRoZSByZWNvcmQsIHRoZSBCUEYgY29kZSBpcyBhbHJlYWR5CmRvaW5nIGp1c3QgdGhhdC4K ClJlcG9ydGVkLWJ5OiBzeXpib3QrZGYwZDRlYzEyMzMyNjYxZGQxZjlAc3l6a2FsbGVyLmFwcHNw b3RtYWlsLmNvbQpGaXhlczogZDNiMThhZDMxZjkzICgidGxzOiBhZGQgYnBmIHN1cHBvcnQgdG8g c2tfbXNnIGhhbmRsaW5nIikKU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtp Y2luc2tpQG5ldHJvbm9tZS5jb20+ClJldmlld2VkLWJ5OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhv cm1hbkBuZXRyb25vbWUuY29tPgpBY2tlZC1ieTogSm9obiBGYXN0YWJlbmQgPGpvaG4uZmFzdGFi ZW5kQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC90bHMvdGxzX3N3LmMgfCAxMCArKysrKysrKy0tCiAxIGZpbGUg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC90bHMvdGxzX3N3LmMgYi9uZXQvdGxzL3Rsc19zdy5jCmluZGV4IGEzMzdlMjJjZmQzMC4uOGE3 NDA0YzczYmVlIDEwMDY0NAotLS0gYS9uZXQvdGxzL3Rsc19zdy5jCisrKyBiL25ldC90bHMvdGxz X3N3LmMKQEAgLTc2Niw4ICs3NjYsMTQgQEAgc3RhdGljIGludCBicGZfZXhlY190eF92ZXJkaWN0 KHN0cnVjdCBza19tc2cgKm1zZywgc3RydWN0IHNvY2sgKnNrLAogCiAJcG9saWN5ID0gIShmbGFn cyAmIE1TR19TRU5EUEFHRV9OT1BPTElDWSk7CiAJcHNvY2sgPSBza19wc29ja19nZXQoc2spOwot CWlmICghcHNvY2sgfHwgIXBvbGljeSkKLQkJcmV0dXJuIHRsc19wdXNoX3JlY29yZChzaywgZmxh Z3MsIHJlY29yZF90eXBlKTsKKwlpZiAoIXBzb2NrIHx8ICFwb2xpY3kpIHsKKwkJZXJyID0gdGxz X3B1c2hfcmVjb3JkKHNrLCBmbGFncywgcmVjb3JkX3R5cGUpOworCQlpZiAoZXJyKSB7CisJCQkq Y29waWVkIC09IHNrX21zZ19mcmVlKHNrLCBtc2cpOworCQkJdGxzX2ZyZWVfb3Blbl9yZWMoc2sp OworCQl9CisJCXJldHVybiBlcnI7CisJfQogbW9yZV9kYXRhOgogCWVub3NwYyA9IHNrX21zZ19m dWxsKG1zZyk7CiAJaWYgKHBzb2NrLT5ldmFsID09IF9fU0tfTk9ORSkgewotLSAKMi4yMC4xCgoK RnJvbSA3NDFmYzI5NDBhZTI4Y2I3MDZkNmRlZmQyMzA3MTJkMTUzOWM1NThlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9u b21lLmNvbT4KRGF0ZTogV2VkLCAyNyBOb3YgMjAxOSAxMjoxNjo0MSAtMDgwMApTdWJqZWN0OiBb UEFUQ0ggMTYvMjNdIG5ldDogc2ttc2c6IGZpeCBUTFMgMS4zIGNyYXNoIHdpdGggZnVsbCBza19t c2cKClsgVXBzdHJlYW0gY29tbWl0IDAzMTA5N2Q5ZTA3OWU0MGRjZTQwMTAzMWQxMDEyZTgzZDgw ZWFmMDEgXQoKVExTIDEuMyBzdGFydGVkIHVzaW5nIHRoZSBlbnRyeSBhdCB0aGUgZW5kIG9mIHRo ZSBTRyBhcnJheQpmb3IgY2hhaW5pbmctaW4gdGhlIHNpbmdsZSBieXRlIGNvbnRlbnQgdHlwZSBl bnRyeS4gVGhpcyBtb3N0bHkKd29ya3M6CgpbIEUgRSBFIEUgRSBFIC4gLiBdCiAgXiAgICAgICAg ICAgXgogICBzdGFydCAgICAgICBlbmQKCiAgICAgICAgICAgICAgICAgRSA8IGNvbnRlbnQgdHlw ZQogICAgICAgICAgICAgICAvClsgRSBFIEUgRSBFIEUgQyAuIF0KICBeICAgICAgICAgICBeCiAg IHN0YXJ0ICAgICAgIGVuZAoKKFdoZXJlIEUgZGVub3RlcyBhIHBvcHVsYXRlZCBTRyBlbnRyeTsg QyBkZW5vdGVzIGEgY2hhaW5pbmcgZW50cnkuKQoKSWYgdGhlIGFycmF5IGlzIGZ1bGwsIGhvd2V2 ZXIsIHRoZSBlbmQgd2lsbCBwb2ludCB0byB0aGUgc3RhcnQ6CgpbIEUgRSBFIEUgRSBFIEUgRSBd CiAgXgogICBzdGFydAogICBlbmQKCkFuZCB3ZSBlbmQgdXAgb3ZlcndyaXRpbmcgdGhlIHN0YXJ0 OgoKICAgIEUgPCBjb250ZW50IHR5cGUKICAgLwpbIEMgRSBFIEUgRSBFIEUgRSBdCiAgXgogICBz dGFydAogICBlbmQKClRoZSBzZyBhcnJheSBpcyBzdXBwb3NlZCB0byBiZSBhIGNpcmN1bGFyIGJ1 ZmZlciB3aXRoIHN0YXJ0IGFuZAplbmQgbWFya2VycyBwb2ludGluZyBhbnl3aGVyZS4gSW4gY2Fz ZSB3aGVyZSBzdGFydCA+IGVuZAooaS5lLiB0aGUgY2lyY3VsYXIgYnVmZmVyIGhhcyAid3JhcHBl ZCIpIHRoZXJlIGlzIGFuIGV4dHJhIGVudHJ5CnJlc2VydmVkIGF0IHRoZSBlbmQgdG8gY2hhaW4g dGhlIHR3byBoYWx2ZXMgdG9nZXRoZXIuCgpbIEUgRSBFIEUgRSBFIC4gLiBsIF0KCihXaGVyZSBs IGlzIHRoZSByZXNlcnZlZCBlbnRyeSBmb3IgImxvb3BpbmciIGJhY2sgdG8gZnJvbnQuCgpBcyBz dWdnZXN0ZWQgYnkgSm9obiwgbGV0J3MgcmVzZXJ2ZSBhbm90aGVyIGVudHJ5IGZvciBjaGFpbmlu ZwpTRyBlbnRyaWVzIGFmdGVyIHRoZSBtYWluIGNpcmN1bGFyIGJ1ZmZlci4gTm90ZSB0aGF0IHRo aXMgZW50cnkKaGFzIHRvIGJlIHBvaW50ZWQgdG8gYnkgdGhlIGVuZCBlbnRyeSBzbyBpdHMgcG9z aXRpb24gaXMgbm90IGZpeGVkLgoKRXhhbXBsZXMgb2YgZnVsbCBtZXNzYWdlczoKClsgRSBFIEUg RSBFIEUgRSBFIC4gbCBdCiAgXiAgICAgICAgICAgICAgIF4KICAgc3RhcnQgICAgICAgICAgIGVu ZAoKICAgPC0tLS0tLS0tLS0tLS0tLS4KWyBFIEUgLiBFIEUgRSBFIEUgRSBsIF0KICAgICAgXiBe CiAgIGVuZCAgIHN0YXJ0CgpOb3cgdGhlIGVuZCB3aWxsIGFsd2F5cyBwb2ludCB0byBhbiB1bnVz ZWQgZW50cnksIHNvIFRMUyAxLjMKY2FuIGFsd2F5cyB1c2UgaXQuCgpGaXhlczogMTMwYjM5MmM2 Y2Q2ICgibmV0OiB0bHM6IEFkZCB0bHMgMS4zIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBKYWt1 YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IFNp bW9uIEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L3Nr bXNnLmggfCAyNiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogbmV0L2NvcmUvZmlsdGVyLmMg ICAgIHwgIDggKysrKy0tLS0KIG5ldC9jb3JlL3NrbXNnLmMgICAgICB8ICAyICstCiBuZXQvaXB2 NC90Y3BfYnBmLmMgICAgfCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NrbXNnLmggYi9p bmNsdWRlL2xpbnV4L3NrbXNnLmgKaW5kZXggY2U3MDU1MjU5ODc3Li5kYTRjYWZmN2VmYTQgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc2ttc2cuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NrbXNn LmgKQEAgLTE0LDYgKzE0LDcgQEAKICNpbmNsdWRlIDxuZXQvc3RycGFyc2VyLmg+CiAKICNkZWZp bmUgTUFYX01TR19GUkFHUwkJCU1BWF9TS0JfRlJBR1MKKyNkZWZpbmUgTlJfTVNHX0ZSQUdfSURT CQkJKE1BWF9NU0dfRlJBR1MgKyAxKQogCiBlbnVtIF9fc2tfYWN0aW9uIHsKIAlfX1NLX0RST1Ag PSAwLApAQCAtMjksMTEgKzMwLDEzIEBAIHN0cnVjdCBza19tc2dfc2cgewogCXUzMgkJCQlzaXpl OwogCXUzMgkJCQljb3B5YnJlYWs7CiAJYm9vbAkJCQljb3B5W01BWF9NU0dfRlJBR1NdOwotCS8q IFRoZSBleHRyYSBlbGVtZW50IGlzIHVzZWQgZm9yIGNoYWluaW5nIHRoZSBmcm9udCBhbmQgc2Vj dGlvbnMgd2hlbgotCSAqIHRoZSBsaXN0IGJlY29tZXMgcGFydGl0aW9uZWQgKGUuZy4gZW5kIDwg c3RhcnQpLiBUaGUgY3J5cHRvIEFQSXMKLQkgKiByZXF1aXJlIHRoZSBjaGFpbmluZy4KKwkvKiBU aGUgZXh0cmEgdHdvIGVsZW1lbnRzOgorCSAqIDEpIHVzZWQgZm9yIGNoYWluaW5nIHRoZSBmcm9u dCBhbmQgc2VjdGlvbnMgd2hlbiB0aGUgbGlzdCBiZWNvbWVzCisJICogICAgcGFydGl0aW9uZWQg KGUuZy4gZW5kIDwgc3RhcnQpLiBUaGUgY3J5cHRvIEFQSXMgcmVxdWlyZSB0aGUKKwkgKiAgICBj aGFpbmluZzsKKwkgKiAyKSB0byBjaGFpbiB0YWlsZXIgU0cgZW50cmllcyBhZnRlciB0aGUgbWVz c2FnZS4KIAkgKi8KLQlzdHJ1Y3Qgc2NhdHRlcmxpc3QJCWRhdGFbTUFYX01TR19GUkFHUyArIDFd OworCXN0cnVjdCBzY2F0dGVybGlzdAkJZGF0YVtNQVhfTVNHX0ZSQUdTICsgMl07CiB9OwogCiAv KiBVQVBJIGluIGZpbHRlci5jIGRlcGVuZHMgb24gc3RydWN0IHNrX21zZ19zZyBiZWluZyBmaXJz dCBlbGVtZW50LiAqLwpAQCAtMTQxLDEzICsxNDQsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIHNr X21zZ19hcHBseV9ieXRlcyhzdHJ1Y3Qgc2tfcHNvY2sgKnBzb2NrLCB1MzIgYnl0ZXMpCiAKIHN0 YXRpYyBpbmxpbmUgdTMyIHNrX21zZ19pdGVyX2Rpc3QodTMyIHN0YXJ0LCB1MzIgZW5kKQogewot CXJldHVybiBlbmQgPj0gc3RhcnQgPyBlbmQgLSBzdGFydCA6IGVuZCArIChNQVhfTVNHX0ZSQUdT IC0gc3RhcnQpOworCXJldHVybiBlbmQgPj0gc3RhcnQgPyBlbmQgLSBzdGFydCA6IGVuZCArIChO Ul9NU0dfRlJBR19JRFMgLSBzdGFydCk7CiB9CiAKICNkZWZpbmUgc2tfbXNnX2l0ZXJfdmFyX3By ZXYodmFyKQkJCVwKIAlkbyB7CQkJCQkJXAogCQlpZiAodmFyID09IDApCQkJCVwKLQkJCXZhciA9 IE1BWF9NU0dfRlJBR1MgLSAxOwlcCisJCQl2YXIgPSBOUl9NU0dfRlJBR19JRFMgLSAxOwlcCiAJ CWVsc2UJCQkJCVwKIAkJCXZhci0tOwkJCQlcCiAJfSB3aGlsZSAoMCkKQEAgLTE1NSw3ICsxNTgs NyBAQCBzdGF0aWMgaW5saW5lIHUzMiBza19tc2dfaXRlcl9kaXN0KHUzMiBzdGFydCwgdTMyIGVu ZCkKICNkZWZpbmUgc2tfbXNnX2l0ZXJfdmFyX25leHQodmFyKQkJCVwKIAlkbyB7CQkJCQkJXAog CQl2YXIrKzsJCQkJCVwKLQkJaWYgKHZhciA9PSBNQVhfTVNHX0ZSQUdTKQkJXAorCQlpZiAodmFy ID09IE5SX01TR19GUkFHX0lEUykJCVwKIAkJCXZhciA9IDA7CQkJXAogCX0gd2hpbGUgKDApCiAK QEAgLTE3Miw5ICsxNzUsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2tfbXNnX2NsZWFyX21ldGEo c3RydWN0IHNrX21zZyAqbXNnKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc2tfbXNnX2luaXQoc3Ry dWN0IHNrX21zZyAqbXNnKQogewotCUJVSUxEX0JVR19PTihBUlJBWV9TSVpFKG1zZy0+c2cuZGF0 YSkgLSAxICE9IE1BWF9NU0dfRlJBR1MpOworCUJVSUxEX0JVR19PTihBUlJBWV9TSVpFKG1zZy0+ c2cuZGF0YSkgLSAxICE9IE5SX01TR19GUkFHX0lEUyk7CiAJbWVtc2V0KG1zZywgMCwgc2l6ZW9m KCptc2cpKTsKLQlzZ19pbml0X21hcmtlcihtc2ctPnNnLmRhdGEsIE1BWF9NU0dfRlJBR1MpOwor CXNnX2luaXRfbWFya2VyKG1zZy0+c2cuZGF0YSwgTlJfTVNHX0ZSQUdfSURTKTsKIH0KIAogc3Rh dGljIGlubGluZSB2b2lkIHNrX21zZ194ZmVyKHN0cnVjdCBza19tc2cgKmRzdCwgc3RydWN0IHNr X21zZyAqc3JjLApAQCAtMTk1LDE0ICsxOTgsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIHNrX21z Z194ZmVyX2Z1bGwoc3RydWN0IHNrX21zZyAqZHN0LCBzdHJ1Y3Qgc2tfbXNnICpzcmMpCiAKIHN0 YXRpYyBpbmxpbmUgYm9vbCBza19tc2dfZnVsbChjb25zdCBzdHJ1Y3Qgc2tfbXNnICptc2cpCiB7 Ci0JcmV0dXJuIChtc2ctPnNnLmVuZCA9PSBtc2ctPnNnLnN0YXJ0KSAmJiBtc2ctPnNnLnNpemU7 CisJcmV0dXJuIHNrX21zZ19pdGVyX2Rpc3QobXNnLT5zZy5zdGFydCwgbXNnLT5zZy5lbmQpID09 IE1BWF9NU0dfRlJBR1M7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdTMyIHNrX21zZ19lbGVtX3VzZWQo Y29uc3Qgc3RydWN0IHNrX21zZyAqbXNnKQogewotCWlmIChza19tc2dfZnVsbChtc2cpKQotCQly ZXR1cm4gTUFYX01TR19GUkFHUzsKLQogCXJldHVybiBza19tc2dfaXRlcl9kaXN0KG1zZy0+c2cu c3RhcnQsIG1zZy0+c2cuZW5kKTsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZmlsdGVyLmMg Yi9uZXQvY29yZS9maWx0ZXIuYwppbmRleCA0YzZhMjUyZDQyMTIuLmQ4MWE1YTUwOTBiZCAxMDA2 NDQKLS0tIGEvbmV0L2NvcmUvZmlsdGVyLmMKKysrIGIvbmV0L2NvcmUvZmlsdGVyLmMKQEAgLTIy OTksNyArMjI5OSw3IEBAIEJQRl9DQUxMXzQoYnBmX21zZ19wdWxsX2RhdGEsIHN0cnVjdCBza19t c2cgKiwgbXNnLCB1MzIsIHN0YXJ0LAogCVdBUk5fT05fT05DRShsYXN0X3NnZSA9PSBmaXJzdF9z Z2UpOwogCXNoaWZ0ID0gbGFzdF9zZ2UgPiBmaXJzdF9zZ2UgPwogCQlsYXN0X3NnZSAtIGZpcnN0 X3NnZSAtIDEgOgotCQlNQVhfU0tCX0ZSQUdTIC0gZmlyc3Rfc2dlICsgbGFzdF9zZ2UgLSAxOwor CQlOUl9NU0dfRlJBR19JRFMgLSBmaXJzdF9zZ2UgKyBsYXN0X3NnZSAtIDE7CiAJaWYgKCFzaGlm dCkKIAkJZ290byBvdXQ7CiAKQEAgLTIzMDgsOCArMjMwOCw4IEBAIEJQRl9DQUxMXzQoYnBmX21z Z19wdWxsX2RhdGEsIHN0cnVjdCBza19tc2cgKiwgbXNnLCB1MzIsIHN0YXJ0LAogCWRvIHsKIAkJ dTMyIG1vdmVfZnJvbTsKIAotCQlpZiAoaSArIHNoaWZ0ID49IE1BWF9NU0dfRlJBR1MpCi0JCQlt b3ZlX2Zyb20gPSBpICsgc2hpZnQgLSBNQVhfTVNHX0ZSQUdTOworCQlpZiAoaSArIHNoaWZ0ID49 IE5SX01TR19GUkFHX0lEUykKKwkJCW1vdmVfZnJvbSA9IGkgKyBzaGlmdCAtIE5SX01TR19GUkFH X0lEUzsKIAkJZWxzZQogCQkJbW92ZV9mcm9tID0gaSArIHNoaWZ0OwogCQlpZiAobW92ZV9mcm9t ID09IG1zZy0+c2cuZW5kKQpAQCAtMjMyMyw3ICsyMzIzLDcgQEAgQlBGX0NBTExfNChicGZfbXNn X3B1bGxfZGF0YSwgc3RydWN0IHNrX21zZyAqLCBtc2csIHUzMiwgc3RhcnQsCiAJfSB3aGlsZSAo MSk7CiAKIAltc2ctPnNnLmVuZCA9IG1zZy0+c2cuZW5kIC0gc2hpZnQgPiBtc2ctPnNnLmVuZCA/ Ci0JCSAgICAgIG1zZy0+c2cuZW5kIC0gc2hpZnQgKyBNQVhfTVNHX0ZSQUdTIDoKKwkJICAgICAg bXNnLT5zZy5lbmQgLSBzaGlmdCArIE5SX01TR19GUkFHX0lEUyA6CiAJCSAgICAgIG1zZy0+c2cu ZW5kIC0gc2hpZnQ7CiBvdXQ6CiAJbXNnLT5kYXRhID0gc2dfdmlydCgmbXNnLT5zZy5kYXRhW2Zp cnN0X3NnZV0pICsgc3RhcnQgLSBvZmZzZXQ7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9za21zZy5j IGIvbmV0L2NvcmUvc2ttc2cuYwppbmRleCBjMTBlM2U1NjAwNmUuLjc0YzFmOTkwOWU4OCAxMDA2 NDQKLS0tIGEvbmV0L2NvcmUvc2ttc2cuYworKysgYi9uZXQvY29yZS9za21zZy5jCkBAIC00MjIs NyArNDIyLDcgQEAgc3RhdGljIGludCBza19wc29ja19za2JfaW5ncmVzcyhzdHJ1Y3Qgc2tfcHNv Y2sgKnBzb2NrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCWNvcGllZCA9IHNrYi0+bGVuOwogCW1z Zy0+c2cuc3RhcnQgPSAwOwogCW1zZy0+c2cuc2l6ZSA9IGNvcGllZDsKLQltc2ctPnNnLmVuZCA9 IG51bV9zZ2UgPT0gTUFYX01TR19GUkFHUyA/IDAgOiBudW1fc2dlOworCW1zZy0+c2cuZW5kID0g bnVtX3NnZTsKIAltc2ctPnNrYiA9IHNrYjsKIAogCXNrX3Bzb2NrX3F1ZXVlX21zZyhwc29jaywg bXNnKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9icGYuYyBiL25ldC9pcHY0L3RjcF9icGYu YwppbmRleCA4YTU2ZTA5Y2ZiMGUuLmUzODcwNTE2NWFjOSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQv dGNwX2JwZi5jCisrKyBiL25ldC9pcHY0L3RjcF9icGYuYwpAQCAtMzAxLDcgKzMwMSw3IEBAIEVY UE9SVF9TWU1CT0xfR1BMKHRjcF9icGZfc2VuZG1zZ19yZWRpcik7CiBzdGF0aWMgaW50IHRjcF9i cGZfc2VuZF92ZXJkaWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX3Bzb2NrICpwc29jaywK IAkJCQlzdHJ1Y3Qgc2tfbXNnICptc2csIGludCAqY29waWVkLCBpbnQgZmxhZ3MpCiB7Ci0JYm9v bCBjb3JrID0gZmFsc2UsIGVub3NwYyA9IG1zZy0+c2cuc3RhcnQgPT0gbXNnLT5zZy5lbmQ7CisJ Ym9vbCBjb3JrID0gZmFsc2UsIGVub3NwYyA9IHNrX21zZ19mdWxsKG1zZyk7CiAJc3RydWN0IHNv Y2sgKnNrX3JlZGlyOwogCXUzMiB0b3NlbmQsIGRlbHRhID0gMDsKIAlpbnQgcmV0OwotLSAKMi4y MC4xCgoKRnJvbSA5Njg1ODYzNWQyMDY3YjA3MTQxNDNhMjViYTFmZWFkNmY3ZjkzNTdkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lA bmV0cm9ub21lLmNvbT4KRGF0ZTogV2VkLCAyNyBOb3YgMjAxOSAxMjoxNjo0MiAtMDgwMApTdWJq ZWN0OiBbUEFUQ0ggMTcvMjNdIHNlbGZ0ZXN0cy90bHM6IGFkZCBhIHRlc3QgZm9yIGZyYWdtZW50 ZWQgbWVzc2FnZXMKClsgVXBzdHJlYW0gY29tbWl0IDY1MTkwZjc3NDI0ZDdiODJjNGFhZDczMjZj OWNjZTZiZDkxYTJmY2MgXQoKQWRkIGEgc2VuZG1zZyB0ZXN0IHdpdGggdmVyeSBmcmFnbWVudGVk IG1lc3NhZ2VzLiBUaGlzIHNob3VsZApmaWxsIHVwIHNrX21zZyBhbmQgdGVzdCB0aGUgYm91bmRh cnkgY29uZGl0aW9ucy4KClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNp bnNraUBuZXRyb25vbWUuY29tPgpSZXZpZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3Jt YW5AbmV0cm9ub21lLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90bHMuYyB8IDYw ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2MCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5j IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jCmluZGV4IDFjOGYxOTRkNjU1Ni4u NDZhYmNhZTQ3ZGVlIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxz LmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jCkBAIC0yNjgsNiArMjY4 LDM4IEBAIFRFU1RfRih0bHMsIHNlbmRtc2dfc2luZ2xlKQogCUVYUEVDVF9FUShtZW1jbXAoYnVm LCB0ZXN0X3N0ciwgc2VuZF9sZW4pLCAwKTsKIH0KIAorI2RlZmluZSBNQVhfRlJBR1MJNjQKKyNk ZWZpbmUgU0VORF9MRU4JMTMKK1RFU1RfRih0bHMsIHNlbmRtc2dfZnJhZ21lbnRlZCkKK3sKKwlj aGFyIGNvbnN0ICp0ZXN0X3N0ciA9ICJ0ZXN0X3NlbmRtc2ciOworCWNoYXIgYnVmW1NFTkRfTEVO ICogTUFYX0ZSQUdTXTsKKwlzdHJ1Y3QgaW92ZWMgdmVjW01BWF9GUkFHU107CisJc3RydWN0IG1z Z2hkciBtc2c7CisJaW50IGksIGZyYWdzOworCisJZm9yIChmcmFncyA9IDE7IGZyYWdzIDw9IE1B WF9GUkFHUzsgZnJhZ3MrKykgeworCQlmb3IgKGkgPSAwOyBpIDwgZnJhZ3M7IGkrKykgeworCQkJ dmVjW2ldLmlvdl9iYXNlID0gKGNoYXIgKil0ZXN0X3N0cjsKKwkJCXZlY1tpXS5pb3ZfbGVuID0g U0VORF9MRU47CisJCX0KKworCQltZW1zZXQoJm1zZywgMCwgc2l6ZW9mKHN0cnVjdCBtc2doZHIp KTsKKwkJbXNnLm1zZ19pb3YgPSB2ZWM7CisJCW1zZy5tc2dfaW92bGVuID0gZnJhZ3M7CisKKwkJ RVhQRUNUX0VRKHNlbmRtc2coc2VsZi0+ZmQsICZtc2csIDApLCBTRU5EX0xFTiAqIGZyYWdzKTsK KwkJRVhQRUNUX0VRKHJlY3Yoc2VsZi0+Y2ZkLCBidWYsIFNFTkRfTEVOICogZnJhZ3MsIE1TR19X QUlUQUxMKSwKKwkJCSAgU0VORF9MRU4gKiBmcmFncyk7CisKKwkJZm9yIChpID0gMDsgaSA8IGZy YWdzOyBpKyspCisJCQlFWFBFQ1RfRVEobWVtY21wKGJ1ZiArIFNFTkRfTEVOICogaSwKKwkJCQkJ IHRlc3Rfc3RyLCBTRU5EX0xFTiksIDApOworCX0KK30KKyN1bmRlZiBNQVhfRlJBR1MKKyN1bmRl ZiBTRU5EX0xFTgorCiBURVNUX0YodGxzLCBzZW5kbXNnX2xhcmdlKQogewogCXZvaWQgKm1lbSA9 IG1hbGxvYygxNjM4NCk7CkBAIC02OTQsNiArNzI2LDM0IEBAIFRFU1RfRih0bHMsIHJlY3ZfbG93 YXQpCiAJRVhQRUNUX0VRKG1lbWNtcChzZW5kX21lbSwgcmVjdl9tZW0gKyAxMCwgNSksIDApOwog fQogCitURVNUX0YodGxzLCByZWN2X3JjdmJ1ZikKK3sKKwljaGFyIHNlbmRfbWVtWzQwOTZdOwor CWNoYXIgcmVjdl9tZW1bNDA5Nl07CisJaW50IHJjdl9idWYgPSAxMDI0OworCisJbWVtc2V0KHNl bmRfbWVtLCAweDFjLCBzaXplb2Yoc2VuZF9tZW0pKTsKKworCUVYUEVDVF9FUShzZXRzb2Nrb3B0 KHNlbGYtPmNmZCwgU09MX1NPQ0tFVCwgU09fUkNWQlVGLAorCQkJICAgICAmcmN2X2J1Ziwgc2l6 ZW9mKHJjdl9idWYpKSwgMCk7CisKKwlFWFBFQ1RfRVEoc2VuZChzZWxmLT5mZCwgc2VuZF9tZW0s IDUxMiwgMCksIDUxMik7CisJbWVtc2V0KHJlY3ZfbWVtLCAwLCBzaXplb2YocmVjdl9tZW0pKTsK KwlFWFBFQ1RfRVEocmVjdihzZWxmLT5jZmQsIHJlY3ZfbWVtLCBzaXplb2YocmVjdl9tZW0pLCAw KSwgNTEyKTsKKwlFWFBFQ1RfRVEobWVtY21wKHNlbmRfbWVtLCByZWN2X21lbSwgNTEyKSwgMCk7 CisKKwlpZiAoc2VsZi0+bm90bHMpCisJCXJldHVybjsKKworCUVYUEVDVF9FUShzZW5kKHNlbGYt PmZkLCBzZW5kX21lbSwgNDA5NiwgMCksIDQwOTYpOworCW1lbXNldChyZWN2X21lbSwgMCwgc2l6 ZW9mKHJlY3ZfbWVtKSk7CisJRVhQRUNUX0VRKHJlY3Yoc2VsZi0+Y2ZkLCByZWN2X21lbSwgc2l6 ZW9mKHJlY3ZfbWVtKSwgMCksIC0xKTsKKwlFWFBFQ1RfRVEoZXJybm8sIEVNU0dTSVpFKTsKKwor CUVYUEVDVF9FUShyZWN2KHNlbGYtPmNmZCwgcmVjdl9tZW0sIHNpemVvZihyZWN2X21lbSksIDAp LCAtMSk7CisJRVhQRUNUX0VRKGVycm5vLCBFTVNHU0laRSk7Cit9CisKIFRFU1RfRih0bHMsIGJp ZGlyKQogewogCWNoYXIgY29uc3QgKnRlc3Rfc3RyID0gInRlc3RfcmVhZCI7Ci0tIAoyLjIwLjEK CgpGcm9tIGRiZDQ5YjA3YzcyOTg5N2M4NmQ3ZDUwNTM2MDlkMGFmNzI1Mzg5ZDkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRy b25vbWUuY29tPgpEYXRlOiBXZWQsIDI3IE5vdiAyMDE5IDEyOjE2OjQzIC0wODAwClN1YmplY3Q6 IFtQQVRDSCAxOC8yM10gbmV0L3RsczogcmVtb3ZlIHRoZSBkZWFkIGlucGxhY2VfY3J5cHRvIGNv ZGUKClsgVXBzdHJlYW0gY29tbWl0IDllNWZmZWQzN2RmNjhkMGNjZmIyZmRjNTI4NjA5ZTIzYTFl NzBlYmUgXQoKTG9va3MgbGlrZSB3aGVuIEJQRiBzdXBwb3J0IHdhcyBhZGRlZCBieSBjb21taXQg ZDNiMThhZDMxZjkzCigidGxzOiBhZGQgYnBmIHN1cHBvcnQgdG8gc2tfbXNnIGhhbmRsaW5nIikg YW5kCmNvbW1pdCBkODI5ZTljNDExMmIgKCJ0bHM6IGNvbnZlcnQgdG8gZ2VuZXJpYyBza19tc2cg aW50ZXJmYWNlIikKaXQgYnJva2UvcmVtb3ZlZCB0aGUgc3VwcG9ydCBmb3IgaW4tcGxhY2UgY3J5 cHRvIGFzIGFkZGVkIGJ5CmNvbW1pdCA0ZTZkNDcyMDZjMzIgKCJ0bHM6IEFkZCBzdXBwb3J0IGZv ciBpbnBsYWNlIHJlY29yZHMKZW5jcnlwdGlvbiIpLgoKVGhlIGlucGxhY2VfY3J5cHRvIG1lbWJl ciBvZiBzdHJ1Y3QgdGxzX3JlYyBpcyBkZWFkLCBpbml0ZWQKdG8gemVybywgYW5kIHNvbWV0aW1l cyBzZXQgdG8gemVybyBhZ2Fpbi4gSXQgdXNlZCB0byBiZQpzZXQgdG8gMSB3aGVuIHJlY29yZCB3 YXMgYWxsb2NhdGVkLCBidXQgdGhlIHNrbXNnIGNvZGUgZG9lc24ndApzZWVtIHRvIGhhdmUgYmVl biB3cml0dGVuIHdpdGggdGhlIGlkZWEgb2YgaW4tcGxhY2UgY3J5cHRvCmluIG1pbmQuCgpTaW5j ZSBub24gdHJpdmlhbCBlZmZvcnQgaXMgcmVxdWlyZWQgdG8gYnJpbmcgdGhlIGZlYXR1cmUgYmFj awphbmQgd2UgZG9uJ3QgcmVhbGx5IGhhdmUgdGhlIEhXIHRvIG1lYXN1cmUgdGhlIGJlbmVmaXQg anVzdApyZW1vdmUgdGhlIGxlZnQgb3ZlciBzdXBwb3J0IGZvciBub3cgdG8gYXZvaWQgY29uZnVz aW5nIHJlYWRlcnMuCgpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5z a2lAbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9ybWFu QG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC90bHMuaCB8IDEgLQogbmV0L3Rscy90bHNfc3cu YyAgfCA2ICstLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC90bHMuaCBiL2luY2x1ZGUvbmV0L3Rscy5o CmluZGV4IDliZjA0YTc0YTZjYi4uNGU0MjZjMTg2NDVmIDEwMDY0NAotLS0gYS9pbmNsdWRlL25l dC90bHMuaAorKysgYi9pbmNsdWRlL25ldC90bHMuaApAQCAtMTIxLDcgKzEyMSw2IEBAIHN0cnVj dCB0bHNfcmVjIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CiAJaW50IHR4X3JlYWR5OwogCWlu dCB0eF9mbGFnczsKLQlpbnQgaW5wbGFjZV9jcnlwdG87CiAKIAlzdHJ1Y3Qgc2tfbXNnIG1zZ19w bGFpbnRleHQ7CiAJc3RydWN0IHNrX21zZyBtc2dfZW5jcnlwdGVkOwpkaWZmIC0tZ2l0IGEvbmV0 L3Rscy90bHNfc3cuYyBiL25ldC90bHMvdGxzX3N3LmMKaW5kZXggOGE3NDA0YzczYmVlLi4wZGRh N2Q4YWM0ZWYgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX3N3LmMKKysrIGIvbmV0L3Rscy90bHNf c3cuYwpAQCAtNzA1LDggKzcwNSw3IEBAIHN0YXRpYyBpbnQgdGxzX3B1c2hfcmVjb3JkKHN0cnVj dCBzb2NrICpzaywgaW50IGZsYWdzLAogCX0KIAogCWkgPSBtc2dfcGwtPnNnLnN0YXJ0OwotCXNn X2NoYWluKHJlYy0+c2dfYWVhZF9pbiwgMiwgcmVjLT5pbnBsYWNlX2NyeXB0byA/Ci0JCSAmbXNn X2VuLT5zZy5kYXRhW2ldIDogJm1zZ19wbC0+c2cuZGF0YVtpXSk7CisJc2dfY2hhaW4ocmVjLT5z Z19hZWFkX2luLCAyLCAmbXNnX3BsLT5zZy5kYXRhW2ldKTsKIAogCWkgPSBtc2dfZW4tPnNnLmVu ZDsKIAlza19tc2dfaXRlcl92YXJfcHJldihpKTsKQEAgLTk3MSw4ICs5NzAsNiBAQCBpbnQgdGxz X3N3X3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBz aXplKQogCQkJaWYgKHJldCkKIAkJCQlnb3RvIGZhbGxiYWNrX3RvX3JlZ19zZW5kOwogCi0JCQly ZWMtPmlucGxhY2VfY3J5cHRvID0gMDsKLQogCQkJbnVtX3pjKys7CiAJCQljb3BpZWQgKz0gdHJ5 X3RvX2NvcHk7CiAKQEAgLTExNzEsNyArMTE2OCw2IEBAIHN0YXRpYyBpbnQgdGxzX3N3X2RvX3Nl bmRwYWdlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHBhZ2UgKnBhZ2UsCiAKIAkJdGxzX2N0eC0+ cGVuZGluZ19vcGVuX3JlY29yZF9mcmFncyA9IHRydWU7CiAJCWlmIChmdWxsX3JlY29yZCB8fCBl b3IgfHwgc2tfbXNnX2Z1bGwobXNnX3BsKSkgewotCQkJcmVjLT5pbnBsYWNlX2NyeXB0byA9IDA7 CiAJCQlyZXQgPSBicGZfZXhlY190eF92ZXJkaWN0KG1zZ19wbCwgc2ssIGZ1bGxfcmVjb3JkLAog CQkJCQkJICByZWNvcmRfdHlwZSwgJmNvcGllZCwgZmxhZ3MpOwogCQkJaWYgKHJldCkgewotLSAK Mi4yMC4xCgoKRnJvbSA0OWUyMjhlMDdkMTYwMWE1ZWY5ZTRjY2FkOWY2YTE5ODljMzEyYTAyIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5z a2lAbmV0cm9ub21lLmNvbT4KRGF0ZTogV2VkLCAyNyBOb3YgMjAxOSAxMjoxNjo0NCAtMDgwMApT dWJqZWN0OiBbUEFUQ0ggMTkvMjNdIG5ldC90bHM6IHVzZSBzZ19uZXh0KCkgdG8gd2FsayBzZyBl bnRyaWVzCgpbIFVwc3RyZWFtIGNvbW1pdCBjNWRhYTZjY2NkYzJmOTRhY2EyYzliM2ZhNWY5NGU0 NDY5OTk3MjkzIF0KClBhcnRpYWxseSBzZW50IHJlY29yZCBjbGVhbnVwIHBhdGggaW5jcmVtZW50 cyBhbiBTRyBlbnRyeQpkaXJlY3RseSBpbnN0ZWFkIG9mIHVzaW5nIHNnX25leHQoKS4gVGhpcyBz aG91bGQgbm90IGJlIGEKcHJvYmxlbSB0b2RheSwgYXMgZW5jcnlwdGVkIG1lc3NhZ2VzIHNob3Vs ZCBiZSBhbHdheXMKYWxsb2NhdGVkIGFzIGFycmF5cy4gQnV0IGdpdmVuIHRoaXMgaXMgYSBjbGVh bnVwIHBhdGggaXQncwplYXN5IHRvIG1pc3Mgd2FzIHRoaXMgZXZlciB0byBjaGFuZ2UuIFVzZSBz Z19uZXh0KCksIGFuZApzaW1wbGlmeSB0aGUgY29kZS4KClNpZ25lZC1vZmYtYnk6IEpha3ViIEtp Y2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpSZXZpZXdlZC1ieTogU2ltb24g SG9ybWFuIDxzaW1vbi5ob3JtYW5AbmV0cm9ub21lLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L3Rscy5oICB8 ICAyICstCiBuZXQvdGxzL3Rsc19tYWluLmMgfCAxMyArKy0tLS0tLS0tLS0tCiBuZXQvdGxzL3Rs c19zdy5jICAgfCAgMyArKy0KIDMgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC90bHMuaCBiL2luY2x1ZGUvbmV0 L3Rscy5oCmluZGV4IDRlNDI2YzE4NjQ1Zi4uZTQ2ZDRhYTI3ZWU3IDEwMDY0NAotLS0gYS9pbmNs dWRlL25ldC90bHMuaAorKysgYi9pbmNsdWRlL25ldC90bHMuaApAQCAtNDA3LDcgKzQwNyw3IEBA IGludCB0bHNfcHVzaF9zZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCB0bHNfY29udGV4dCAqY3R4 LAogCQlpbnQgZmxhZ3MpOwogaW50IHRsc19wdXNoX3BhcnRpYWxfcmVjb3JkKHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IHRsc19jb250ZXh0ICpjdHgsCiAJCQkgICAgaW50IGZsYWdzKTsKLWJvb2wg dGxzX2ZyZWVfcGFydGlhbF9yZWNvcmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2NvbnRl eHQgKmN0eCk7Cit2b2lkIHRsc19mcmVlX3BhcnRpYWxfcmVjb3JkKHN0cnVjdCBzb2NrICpzaywg c3RydWN0IHRsc19jb250ZXh0ICpjdHgpOwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0bHNfbXNn ICp0bHNfbXNnKHN0cnVjdCBza19idWZmICpza2IpCiB7CmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rs c19tYWluLmMgYi9uZXQvdGxzL3Rsc19tYWluLmMKaW5kZXggYWMyZGZlMzYwMjJkLi5jN2VjZDA1 M2Q0ZTcgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX21haW4uYworKysgYi9uZXQvdGxzL3Rsc19t YWluLmMKQEAgLTIwOCwyNCArMjA4LDE1IEBAIGludCB0bHNfcHVzaF9wYXJ0aWFsX3JlY29yZChz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCB0bHNfY29udGV4dCAqY3R4LAogCXJldHVybiB0bHNfcHVz aF9zZyhzaywgY3R4LCBzZywgb2Zmc2V0LCBmbGFncyk7CiB9CiAKLWJvb2wgdGxzX2ZyZWVfcGFy dGlhbF9yZWNvcmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2NvbnRleHQgKmN0eCkKK3Zv aWQgdGxzX2ZyZWVfcGFydGlhbF9yZWNvcmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2Nv bnRleHQgKmN0eCkKIHsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOwogCi0Jc2cgPSBjdHgtPnBh cnRpYWxseV9zZW50X3JlY29yZDsKLQlpZiAoIXNnKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQl3aGls ZSAoMSkgeworCWZvciAoc2cgPSBjdHgtPnBhcnRpYWxseV9zZW50X3JlY29yZDsgc2c7IHNnID0g c2dfbmV4dChzZykpIHsKIAkJcHV0X3BhZ2Uoc2dfcGFnZShzZykpOwogCQlza19tZW1fdW5jaGFy Z2Uoc2ssIHNnLT5sZW5ndGgpOwotCi0JCWlmIChzZ19pc19sYXN0KHNnKSkKLQkJCWJyZWFrOwot CQlzZysrOwogCX0KIAljdHgtPnBhcnRpYWxseV9zZW50X3JlY29yZCA9IE5VTEw7Ci0JcmV0dXJu IHRydWU7CiB9CiAKIHN0YXRpYyB2b2lkIHRsc193cml0ZV9zcGFjZShzdHJ1Y3Qgc29jayAqc2sp CmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rsc19zdy5jIGIvbmV0L3Rscy90bHNfc3cuYwppbmRleCAw ZGRhN2Q4YWM0ZWYuLjQ1ZTk5M2M0ZThmNiAxMDA2NDQKLS0tIGEvbmV0L3Rscy90bHNfc3cuYwor KysgYi9uZXQvdGxzL3Rsc19zdy5jCkBAIC0yMDg2LDcgKzIwODYsOCBAQCB2b2lkIHRsc19zd19y ZWxlYXNlX3Jlc291cmNlc190eChzdHJ1Y3Qgc29jayAqc2spCiAJLyogRnJlZSB1cCB1bi1zZW50 IHJlY29yZHMgaW4gdHhfbGlzdC4gRmlyc3QsIGZyZWUKIAkgKiB0aGUgcGFydGlhbGx5IHNlbnQg cmVjb3JkIGlmIGFueSBhdCBoZWFkIG9mIHR4X2xpc3QuCiAJICovCi0JaWYgKHRsc19mcmVlX3Bh cnRpYWxfcmVjb3JkKHNrLCB0bHNfY3R4KSkgeworCWlmICh0bHNfY3R4LT5wYXJ0aWFsbHlfc2Vu dF9yZWNvcmQpIHsKKwkJdGxzX2ZyZWVfcGFydGlhbF9yZWNvcmQoc2ssIHRsc19jdHgpOwogCQly ZWMgPSBsaXN0X2ZpcnN0X2VudHJ5KCZjdHgtPnR4X2xpc3QsCiAJCQkJICAgICAgIHN0cnVjdCB0 bHNfcmVjLCBsaXN0KTsKIAkJbGlzdF9kZWwoJnJlYy0+bGlzdCk7Ci0tIAoyLjIwLjEKCgpGcm9t IGUwODcxMGQxMDk3ZGNjMzA2YjkwZDAzNmFhNDQ2MTA1YThlOGYwMjggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUu Y29tPgpEYXRlOiBXZWQsIDI3IE5vdiAyMDE5IDEyOjE2OjQ1IC0wODAwClN1YmplY3Q6IFtQQVRD SCAyMC8yM10gc2VsZnRlc3RzOiBicGY6IHRlc3Rfc29ja21hcDogaGFuZGxlIGZpbGUgY3JlYXRp b24KIGZhaWx1cmVzIGdyYWNlZnVsbHkKClsgVXBzdHJlYW0gY29tbWl0IDRiNjdjNTE1MDM2MzEz ZjNjM2VjYmEzY2IyYmFiYjljYmRkYjNmODUgXQoKdGVzdF9zb2NrbWFwIGNyZWF0ZXMgYSB0ZW1w b3JhcnkgZmlsZSB0byB1c2UgZm9yIHNlbmRwYWdlLgp0aGlzIG1heSBmYWlsIGZvciB2YXJpb3Vz IHJlYXNvbnMuIEhhbmRsZSB0aGUgZXJyb3IgcmF0aGVyCnRoYW4gc2VnZmF1bHQuCgpTaWduZWQt b2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KUmV2 aWV3ZWQtYnk6IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJvbm9tZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiB0b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9zb2NrbWFwLmMgfCA5ICsrKysrKysrKwogMSBm aWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcv c2VsZnRlc3RzL2JwZi90ZXN0X3NvY2ttYXAuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2Jw Zi90ZXN0X3NvY2ttYXAuYwppbmRleCAzODQ1MTQ0ZTJjOTEuLjhiODM4ZTkxY2ZlNSAxMDA2NDQK LS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3Rfc29ja21hcC5jCisrKyBiL3Rv b2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3NvY2ttYXAuYwpAQCAtMzMyLDYgKzMzMiwx MCBAQCBzdGF0aWMgaW50IG1zZ19sb29wX3NlbmRwYWdlKGludCBmZCwgaW50IGlvdl9sZW5ndGgs IGludCBjbnQsCiAJaW50IGksIGZwOwogCiAJZmlsZSA9IGZvcGVuKCIuc2VuZHBhZ2VfdHN0LnRt cCIsICJ3KyIpOworCWlmICghZmlsZSkgeworCQlwZXJyb3IoImNyZWF0ZSBmaWxlIGZvciBzZW5k cGFnZSIpOworCQlyZXR1cm4gMTsKKwl9CiAJZm9yIChpID0gMDsgaSA8IGlvdl9sZW5ndGggKiBj bnQ7IGkrKywgaysrKQogCQlmd3JpdGUoJmssIHNpemVvZihjaGFyKSwgMSwgZmlsZSk7CiAJZmZs dXNoKGZpbGUpOwpAQCAtMzM5LDYgKzM0MywxMSBAQCBzdGF0aWMgaW50IG1zZ19sb29wX3NlbmRw YWdlKGludCBmZCwgaW50IGlvdl9sZW5ndGgsIGludCBjbnQsCiAJZmNsb3NlKGZpbGUpOwogCiAJ ZnAgPSBvcGVuKCIuc2VuZHBhZ2VfdHN0LnRtcCIsIE9fUkRPTkxZKTsKKwlpZiAoZnAgPCAwKSB7 CisJCXBlcnJvcigicmVvcGVuIGZpbGUgZm9yIHNlbmRwYWdlIik7CisJCXJldHVybiAxOworCX0K KwogCWNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmcy0+c3RhcnQpOwogCWZvciAoaSA9 IDA7IGkgPCBjbnQ7IGkrKykgewogCQlpbnQgc2VudCA9IHNlbmRmaWxlKGZkLCBmcCwgTlVMTCwg aW92X2xlbmd0aCk7Ci0tIAoyLjIwLjEKCgpGcm9tIDVlNzc2OWE3MDdkZThlOTA3NWE0YWY3NTAw NzkzODhiMjM0NDhmODMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2lu c2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpEYXRlOiBXZWQsIDI3IE5vdiAyMDE5 IDEyOjE2OjQ2IC0wODAwClN1YmplY3Q6IFtQQVRDSCAyMS8yM10gc2VsZnRlc3RzOiBicGY6IGNv cnJlY3QgcGVycm9yIHN0cmluZ3MKClsgVXBzdHJlYW0gY29tbWl0IGU1ZGM5ZGQzMjU4MDk4YmY4 YjVjZWI3NWZjMzQzM2I0MWVmZjYxOGEgXQoKcGVycm9yKHN0cikgaXMgYmFzaWNhbGx5IGVxdWl2 YWxlbnQgdG8KcHJpbnQoIiVzOiAlc1xuIiwgc3RyLCBzdHJlcnJvcihlcnJubykpLgpOZXcgbGlu ZSBvciBjb2xvbiBhdCB0aGUgZW5kIG9mIHN0ciBpcwphIG1pc3Rha2UvYnJlYWtzIGZvcm1hdHRp bmcuCgpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9u b21lLmNvbT4KUmV2aWV3ZWQtYnk6IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJvbm9t ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9zb2NrbWFwLmMgfCAzOCAr KysrKysrKysrKy0tLS0tLS0tLS0tCiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYveGRwaW5n LmMgICAgICAgfCAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAyMCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVz dF9zb2NrbWFwLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9zb2NrbWFwLmMK aW5kZXggOGI4MzhlOTFjZmU1Li40YTg1MTUxM2M4NDIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL2JwZi90ZXN0X3NvY2ttYXAuYworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0 ZXN0cy9icGYvdGVzdF9zb2NrbWFwLmMKQEAgLTI0MCwxNCArMjQwLDE0IEBAIHN0YXRpYyBpbnQg c29ja21hcF9pbml0X3NvY2tldHMoaW50IHZlcmJvc2UpCiAJYWRkci5zaW5fcG9ydCA9IGh0b25z KFMxX1BPUlQpOwogCWVyciA9IGJpbmQoczEsIChzdHJ1Y3Qgc29ja2FkZHIgKikmYWRkciwgc2l6 ZW9mKGFkZHIpKTsKIAlpZiAoZXJyIDwgMCkgewotCQlwZXJyb3IoImJpbmQgczEgZmFpbGVkKClc biIpOworCQlwZXJyb3IoImJpbmQgczEgZmFpbGVkKCkiKTsKIAkJcmV0dXJuIGVycm5vOwogCX0K IAogCWFkZHIuc2luX3BvcnQgPSBodG9ucyhTMl9QT1JUKTsKIAllcnIgPSBiaW5kKHMyLCAoc3Ry dWN0IHNvY2thZGRyICopJmFkZHIsIHNpemVvZihhZGRyKSk7CiAJaWYgKGVyciA8IDApIHsKLQkJ cGVycm9yKCJiaW5kIHMyIGZhaWxlZCgpXG4iKTsKKwkJcGVycm9yKCJiaW5kIHMyIGZhaWxlZCgp Iik7CiAJCXJldHVybiBlcnJubzsKIAl9CiAKQEAgLTI1NSwxNCArMjU1LDE0IEBAIHN0YXRpYyBp bnQgc29ja21hcF9pbml0X3NvY2tldHMoaW50IHZlcmJvc2UpCiAJYWRkci5zaW5fcG9ydCA9IGh0 b25zKFMxX1BPUlQpOwogCWVyciA9IGxpc3RlbihzMSwgMzIpOwogCWlmIChlcnIgPCAwKSB7Ci0J CXBlcnJvcigibGlzdGVuIHMxIGZhaWxlZCgpXG4iKTsKKwkJcGVycm9yKCJsaXN0ZW4gczEgZmFp bGVkKCkiKTsKIAkJcmV0dXJuIGVycm5vOwogCX0KIAogCWFkZHIuc2luX3BvcnQgPSBodG9ucyhT Ml9QT1JUKTsKIAllcnIgPSBsaXN0ZW4oczIsIDMyKTsKIAlpZiAoZXJyIDwgMCkgewotCQlwZXJy b3IoImxpc3RlbiBzMSBmYWlsZWQoKVxuIik7CisJCXBlcnJvcigibGlzdGVuIHMxIGZhaWxlZCgp Iik7CiAJCXJldHVybiBlcnJubzsKIAl9CiAKQEAgLTI3MCwxNCArMjcwLDE0IEBAIHN0YXRpYyBp bnQgc29ja21hcF9pbml0X3NvY2tldHMoaW50IHZlcmJvc2UpCiAJYWRkci5zaW5fcG9ydCA9IGh0 b25zKFMxX1BPUlQpOwogCWVyciA9IGNvbm5lY3QoYzEsIChzdHJ1Y3Qgc29ja2FkZHIgKikmYWRk ciwgc2l6ZW9mKGFkZHIpKTsKIAlpZiAoZXJyIDwgMCAmJiBlcnJubyAhPSBFSU5QUk9HUkVTUykg ewotCQlwZXJyb3IoImNvbm5lY3QgYzEgZmFpbGVkKClcbiIpOworCQlwZXJyb3IoImNvbm5lY3Qg YzEgZmFpbGVkKCkiKTsKIAkJcmV0dXJuIGVycm5vOwogCX0KIAogCWFkZHIuc2luX3BvcnQgPSBo dG9ucyhTMl9QT1JUKTsKIAllcnIgPSBjb25uZWN0KGMyLCAoc3RydWN0IHNvY2thZGRyICopJmFk ZHIsIHNpemVvZihhZGRyKSk7CiAJaWYgKGVyciA8IDAgJiYgZXJybm8gIT0gRUlOUFJPR1JFU1Mp IHsKLQkJcGVycm9yKCJjb25uZWN0IGMyIGZhaWxlZCgpXG4iKTsKKwkJcGVycm9yKCJjb25uZWN0 IGMyIGZhaWxlZCgpIik7CiAJCXJldHVybiBlcnJubzsKIAl9IGVsc2UgaWYgKGVyciA8IDApIHsK IAkJZXJyID0gMDsKQEAgLTI4NiwxMyArMjg2LDEzIEBAIHN0YXRpYyBpbnQgc29ja21hcF9pbml0 X3NvY2tldHMoaW50IHZlcmJvc2UpCiAJLyogQWNjZXB0IENvbm5lY3J0aW9ucyAqLwogCXAxID0g YWNjZXB0KHMxLCBOVUxMLCBOVUxMKTsKIAlpZiAocDEgPCAwKSB7Ci0JCXBlcnJvcigiYWNjZXB0 IHMxIGZhaWxlZCgpXG4iKTsKKwkJcGVycm9yKCJhY2NlcHQgczEgZmFpbGVkKCkiKTsKIAkJcmV0 dXJuIGVycm5vOwogCX0KIAogCXAyID0gYWNjZXB0KHMyLCBOVUxMLCBOVUxMKTsKIAlpZiAocDIg PCAwKSB7Ci0JCXBlcnJvcigiYWNjZXB0IHMxIGZhaWxlZCgpXG4iKTsKKwkJcGVycm9yKCJhY2Nl cHQgczEgZmFpbGVkKCkiKTsKIAkJcmV0dXJuIGVycm5vOwogCX0KIApAQCAtMzUzLDcgKzM1Myw3 IEBAIHN0YXRpYyBpbnQgbXNnX2xvb3Bfc2VuZHBhZ2UoaW50IGZkLCBpbnQgaW92X2xlbmd0aCwg aW50IGNudCwKIAkJaW50IHNlbnQgPSBzZW5kZmlsZShmZCwgZnAsIE5VTEwsIGlvdl9sZW5ndGgp OwogCiAJCWlmICghZHJvcCAmJiBzZW50IDwgMCkgewotCQkJcGVycm9yKCJzZW5kIGxvb3AgZXJy b3I6Iik7CisJCQlwZXJyb3IoInNlbmQgbG9vcCBlcnJvciIpOwogCQkJY2xvc2UoZnApOwogCQkJ cmV0dXJuIHNlbnQ7CiAJCX0gZWxzZSBpZiAoZHJvcCAmJiBzZW50ID49IDApIHsKQEAgLTQ3Miw3 ICs0NzIsNyBAQCBzdGF0aWMgaW50IG1zZ19sb29wKGludCBmZCwgaW50IGlvdl9jb3VudCwgaW50 IGlvdl9sZW5ndGgsIGludCBjbnQsCiAJCQlpbnQgc2VudCA9IHNlbmRtc2coZmQsICZtc2csIGZs YWdzKTsKIAogCQkJaWYgKCFkcm9wICYmIHNlbnQgPCAwKSB7Ci0JCQkJcGVycm9yKCJzZW5kIGxv b3AgZXJyb3I6Iik7CisJCQkJcGVycm9yKCJzZW5kIGxvb3AgZXJyb3IiKTsKIAkJCQlnb3RvIG91 dF9lcnJubzsKIAkJCX0gZWxzZSBpZiAoZHJvcCAmJiBzZW50ID49IDApIHsKIAkJCQlwcmludGYo InNlbmQgbG9vcCBlcnJvciBleHBlY3RlZDogJWlcbiIsIHNlbnQpOwpAQCAtNTA4LDcgKzUwOCw3 IEBAIHN0YXRpYyBpbnQgbXNnX2xvb3AoaW50IGZkLCBpbnQgaW92X2NvdW50LCBpbnQgaW92X2xl bmd0aCwgaW50IGNudCwKIAkJdG90YWxfYnl0ZXMgLT0gdHhtc2dfcG9wX3RvdGFsOwogCQllcnIg PSBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJnMtPnN0YXJ0KTsKIAkJaWYgKGVyciA8 IDApCi0JCQlwZXJyb3IoInJlY3Ygc3RhcnQgdGltZTogIik7CisJCQlwZXJyb3IoInJlY3Ygc3Rh cnQgdGltZSIpOwogCQl3aGlsZSAocy0+Ynl0ZXNfcmVjdmQgPCB0b3RhbF9ieXRlcykgewogCQkJ aWYgKHR4bXNnX2NvcmspIHsKIAkJCQl0aW1lb3V0LnR2X3NlYyA9IDA7CkBAIC01NTIsNyArNTUy LDcgQEAgc3RhdGljIGludCBtc2dfbG9vcChpbnQgZmQsIGludCBpb3ZfY291bnQsIGludCBpb3Zf bGVuZ3RoLCBpbnQgY250LAogCQkJaWYgKHJlY3YgPCAwKSB7CiAJCQkJaWYgKGVycm5vICE9IEVX T1VMREJMT0NLKSB7CiAJCQkJCWNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmcy0+ZW5k KTsKLQkJCQkJcGVycm9yKCJyZWN2IGZhaWxlZCgpXG4iKTsKKwkJCQkJcGVycm9yKCJyZWN2IGZh aWxlZCgpIik7CiAJCQkJCWdvdG8gb3V0X2Vycm5vOwogCQkJCX0KIAkJCX0KQEAgLTU2Niw3ICs1 NjYsNyBAQCBzdGF0aWMgaW50IG1zZ19sb29wKGludCBmZCwgaW50IGlvdl9jb3VudCwgaW50IGlv dl9sZW5ndGgsIGludCBjbnQsCiAKIAkJCQllcnJubyA9IG1zZ192ZXJpZnlfZGF0YSgmbXNnLCBy ZWN2LCBjaHVua19zeik7CiAJCQkJaWYgKGVycm5vKSB7Ci0JCQkJCXBlcnJvcigiZGF0YSB2ZXJp ZnkgbXNnIGZhaWxlZFxuIik7CisJCQkJCXBlcnJvcigiZGF0YSB2ZXJpZnkgbXNnIGZhaWxlZCIp OwogCQkJCQlnb3RvIG91dF9lcnJubzsKIAkJCQl9CiAJCQkJaWYgKHJlY3ZwKSB7CkBAIC01NzQs NyArNTc0LDcgQEAgc3RhdGljIGludCBtc2dfbG9vcChpbnQgZmQsIGludCBpb3ZfY291bnQsIGlu dCBpb3ZfbGVuZ3RoLCBpbnQgY250LAogCQkJCQkJCQlyZWN2cCwKIAkJCQkJCQkJY2h1bmtfc3op OwogCQkJCQlpZiAoZXJybm8pIHsKLQkJCQkJCXBlcnJvcigiZGF0YSB2ZXJpZnkgbXNnX3BlZWsg ZmFpbGVkXG4iKTsKKwkJCQkJCXBlcnJvcigiZGF0YSB2ZXJpZnkgbXNnX3BlZWsgZmFpbGVkIik7 CiAJCQkJCQlnb3RvIG91dF9lcnJubzsKIAkJCQkJfQogCQkJCX0KQEAgLTY2Myw3ICs2NjMsNyBA QCBzdGF0aWMgaW50IHNlbmRtc2dfdGVzdChzdHJ1Y3Qgc29ja21hcF9vcHRpb25zICpvcHQpCiAJ CQllcnIgPSAwOwogCQlleGl0KGVyciA/IDEgOiAwKTsKIAl9IGVsc2UgaWYgKHJ4cGlkID09IC0x KSB7Ci0JCXBlcnJvcigibXNnX2xvb3Bfcng6ICIpOworCQlwZXJyb3IoIm1zZ19sb29wX3J4Iik7 CiAJCXJldHVybiBlcnJubzsKIAl9CiAKQEAgLTY5MCw3ICs2OTAsNyBAQCBzdGF0aWMgaW50IHNl bmRtc2dfdGVzdChzdHJ1Y3Qgc29ja21hcF9vcHRpb25zICpvcHQpCiAJCQkJcy5ieXRlc19yZWN2 ZCwgcmVjdmRfQnBzLCByZWN2ZF9CcHMvZ2lnYSk7CiAJCWV4aXQoZXJyID8gMSA6IDApOwogCX0g ZWxzZSBpZiAodHhwaWQgPT0gLTEpIHsKLQkJcGVycm9yKCJtc2dfbG9vcF90eDogIik7CisJCXBl cnJvcigibXNnX2xvb3BfdHgiKTsKIAkJcmV0dXJuIGVycm5vOwogCX0KIApAQCAtNzI0LDcgKzcy NCw3IEBAIHN0YXRpYyBpbnQgZm9yZXZlcl9waW5nX3BvbmcoaW50IHJhdGUsIHN0cnVjdCBzb2Nr bWFwX29wdGlvbnMgKm9wdCkKIAkvKiBQaW5nL1BvbmcgZGF0YSBmcm9tIGNsaWVudCB0byBzZXJ2 ZXIgKi8KIAlzYyA9IHNlbmQoYzEsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApOwogCWlmIChzYyA8IDAp IHsKLQkJcGVycm9yKCJzZW5kIGZhaWxlZCgpXG4iKTsKKwkJcGVycm9yKCJzZW5kIGZhaWxlZCgp Iik7CiAJCXJldHVybiBzYzsKIAl9CiAKQEAgLTc1Nyw3ICs3NTcsNyBAQCBzdGF0aWMgaW50IGZv cmV2ZXJfcGluZ19wb25nKGludCByYXRlLCBzdHJ1Y3Qgc29ja21hcF9vcHRpb25zICpvcHQpCiAJ CQlyYyA9IHJlY3YoaSwgYnVmLCBzaXplb2YoYnVmKSwgMCk7CiAJCQlpZiAocmMgPCAwKSB7CiAJ CQkJaWYgKGVycm5vICE9IEVXT1VMREJMT0NLKSB7Ci0JCQkJCXBlcnJvcigicmVjdiBmYWlsZWQo KVxuIik7CisJCQkJCXBlcnJvcigicmVjdiBmYWlsZWQoKSIpOwogCQkJCQlyZXR1cm4gcmM7CiAJ CQkJfQogCQkJfQpAQCAtNzY5LDcgKzc2OSw3IEBAIHN0YXRpYyBpbnQgZm9yZXZlcl9waW5nX3Bv bmcoaW50IHJhdGUsIHN0cnVjdCBzb2NrbWFwX29wdGlvbnMgKm9wdCkKIAogCQkJc2MgPSBzZW5k KGksIGJ1ZiwgcmMsIDApOwogCQkJaWYgKHNjIDwgMCkgewotCQkJCXBlcnJvcigic2VuZCBmYWls ZWQoKVxuIik7CisJCQkJcGVycm9yKCJzZW5kIGZhaWxlZCgpIik7CiAJCQkJcmV0dXJuIHNjOwog CQkJfQogCQl9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYveGRwaW5n LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYveGRwaW5nLmMKaW5kZXggZDYwYTM0M2Ix MzcxLi44NDJkOTE1NWQzNmMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2Jw Zi94ZHBpbmcuYworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYveGRwaW5nLmMKQEAg LTQ1LDcgKzQ1LDcgQEAgc3RhdGljIGludCBnZXRfc3RhdHMoaW50IGZkLCBfX3UxNiBjb3VudCwg X191MzIgcmFkZHIpCiAJcHJpbnRmKCJcblhEUCBSVFQgZGF0YTpcbiIpOwogCiAJaWYgKGJwZl9t YXBfbG9va3VwX2VsZW0oZmQsICZyYWRkciwgJnBpbmdpbmZvKSkgewotCQlwZXJyb3IoImJwZl9t YXBfbG9va3VwIGVsZW06ICIpOworCQlwZXJyb3IoImJwZl9tYXBfbG9va3VwIGVsZW0iKTsKIAkJ cmV0dXJuIDE7CiAJfQogCi0tIAoyLjIwLjEKCgpGcm9tIGNlNjdlMDNjZWYzOGEzYTUxNWFiNTFi ZmUyN2Y5NDJjMWRiYzM1NzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gUnV0 aGVyZm9yZCA8am9obi5ydXRoZXJmb3JkQGRla3RlY2guY29tLmF1PgpEYXRlOiBUdWUsIDI2IE5v diAyMDE5IDEzOjUyOjU1ICsxMTAwClN1YmplY3Q6IFtQQVRDSCAyMi8yM10gdGlwYzogZml4IGxp bmsgbmFtZSBsZW5ndGggY2hlY2sKClsgVXBzdHJlYW0gY29tbWl0IGZkNTY3YWMyMGNiMDM3N2Zm NDY2ZDMzMzdlNmU5YWM1ZDBjYjE1ZTQgXQoKSW4gY29tbWl0IDRmMDdiODBjOTczMyAoInRpcGM6 IGNoZWNrIG1zZy0+cmVxIGRhdGEgbGVuIGluCnRpcGNfbmxfY29tcGF0X2JlYXJlcl9kaXNhYmxl IikgdGhlIHNhbWUgcGF0Y2ggY29kZSB3YXMgY29waWVkIGludG8Kcm91dGluZXM6IHRpcGNfbmxf Y29tcGF0X2JlYXJlcl9kaXNhYmxlKCksCnRpcGNfbmxfY29tcGF0X2xpbmtfc3RhdF9kdW1wKCkg YW5kIHRpcGNfbmxfY29tcGF0X2xpbmtfcmVzZXRfc3RhdHMoKS4KVGhlIHR3byBsaW5rIHJvdXRp bmUgb2NjdXJyZW5jZXMgc2hvdWxkIGhhdmUgYmVlbiBtb2RpZmllZCB0byBjaGVjawp0aGUgbWF4 aW11bSBsaW5rIG5hbWUgbGVuZ3RoIGFuZCBub3QgYmVhcmVyIG5hbWUgbGVuZ3RoLgoKRml4ZXM6 IDRmMDdiODBjOTczMyAoInRpcGM6IGNoZWNrIG1zZy0+cmVnIGRhdGEgbGVuIGluIHRpcGNfbmxf Y29tcGF0X2JlYXJlcl9kaXNhYmxlIikKU2lnbmVkLW9mZi1ieTogSm9obiBSdXRoZXJmb3JkIDxq b2huLnJ1dGhlcmZvcmRAZGVrdGVjaC5jb20uYXU+CkFja2VkLWJ5OiBKb24gTWFsb3kgPGpvbi5t YWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9uZXRsaW5rX2NvbXBhdC5jIHwgNCArKy0tCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC90aXBjL25ldGxpbmtfY29tcGF0LmMgYi9uZXQvdGlwYy9uZXRsaW5rX2NvbXBhdC5j CmluZGV4IGUxMzVkNGUxMTIzMS4uZDRkMjkyODQyNGUyIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9u ZXRsaW5rX2NvbXBhdC5jCisrKyBiL25ldC90aXBjL25ldGxpbmtfY29tcGF0LmMKQEAgLTU1MCw3 ICs1NTAsNyBAQCBzdGF0aWMgaW50IHRpcGNfbmxfY29tcGF0X2xpbmtfc3RhdF9kdW1wKHN0cnVj dCB0aXBjX25sX2NvbXBhdF9tc2cgKm1zZywKIAlpZiAobGVuIDw9IDApCiAJCXJldHVybiAtRUlO VkFMOwogCi0JbGVuID0gbWluX3QoaW50LCBsZW4sIFRJUENfTUFYX0JFQVJFUl9OQU1FKTsKKwls ZW4gPSBtaW5fdChpbnQsIGxlbiwgVElQQ19NQVhfTElOS19OQU1FKTsKIAlpZiAoIXN0cmluZ19p c192YWxpZChuYW1lLCBsZW4pKQogCQlyZXR1cm4gLUVJTlZBTDsKIApAQCAtODIyLDcgKzgyMiw3 IEBAIHN0YXRpYyBpbnQgdGlwY19ubF9jb21wYXRfbGlua19yZXNldF9zdGF0cyhzdHJ1Y3QgdGlw Y19ubF9jb21wYXRfY21kX2RvaXQgKmNtZCwKIAlpZiAobGVuIDw9IDApCiAJCXJldHVybiAtRUlO VkFMOwogCi0JbGVuID0gbWluX3QoaW50LCBsZW4sIFRJUENfTUFYX0JFQVJFUl9OQU1FKTsKKwls ZW4gPSBtaW5fdChpbnQsIGxlbiwgVElQQ19NQVhfTElOS19OQU1FKTsKIAlpZiAoIXN0cmluZ19p c192YWxpZChuYW1lLCBsZW4pKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotLSAKMi4yMC4xCgoKRnJv bSA2ZGM4YWUwMzkyNGExYTdlY2JhZDk3MmFkMTc0YWU5Y2FkMjRkYTVkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBUaGFkZXUgTGltYSBkZSBTb3V6YSBDYXNjYXJkbyA8Y2FzY2FyZG9A Y2Fub25pY2FsLmNvbT4KRGF0ZTogVGh1LCAyOCBOb3YgMjAxOSAxNTo1ODowNiAtMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMjMvMjNdIHNlbGZ0ZXN0czogcG10dTogdXNlIC1vbmVsaW5lIGZvciBpcCBy b3V0ZSBsaXN0IGNhY2hlCgpbIFVwc3RyZWFtIGNvbW1pdCAyNzQ1YWVhNjc1MGZmMGQyYzQ4Mjg1 ZDI1YmRiMDBlNWI2MzZlYzhiIF0KClNvbWUgdmVyc2lvbnMgb2YgaXByb3V0ZTIgd2lsbCBvdXRw dXQgbW9yZSB0aGFuIG9uZSBsaW5lIHBlciBlbnRyeSwgd2hpY2gKd2lsbCBjYXVzZSB0aGUgdGVz dCB0byBmYWlsLCBsaWtlOgoKVEVTVDogaXB2NjogbGlzdCBhbmQgZmx1c2ggY2FjaGVkIGV4Y2Vw dGlvbnMgICAgICAgICAgICAgICAgICAgICAgICBbRkFJTF0KICBjYW4ndCBsaXN0IGNhY2hlZCBl eGNlcHRpb25zCgpUaGF0IGhhcHBlbnMsIGZvciBleGFtcGxlLCB3aXRoIGlwcm91dGUyIDQuMTUu MC4gV2hlbiB1c2luZyB0aGUgLW9uZWxpbmUKb3B0aW9uLCB0aGlzIHdpbGwgd29yayBqdXN0IGZp bmU6CgpURVNUOiBpcHY2OiBsaXN0IGFuZCBmbHVzaCBjYWNoZWQgZXhjZXB0aW9ucyAgICAgICAg ICAgICAgICAgICAgICAgIFsgT0sgXQoKVGhpcyBhbHNvIHdvcmtzIGp1c3QgZmluZSB3aXRoIGEg bW9yZSByZWNlbnQgdmVyc2lvbiBvZiBpcHJvdXRlMiwgbGlrZQo1LjQuMC4KCkZvciBzb21lIHJl YXNvbiwgdHdvIGxpbmVzIGFyZSBwcmludGVkIGZvciB0aGUgSVB2NCB0ZXN0IG5vIG1hdHRlciB3 aGF0CnZlcnNpb24gb2YgaXByb3V0ZTIgaXMgdXNlZC4gVXNlIHRoZSBzYW1lIC1vbmVsaW5lIHBh cmFtZXRlciB0aGVyZSBpbnN0ZWFkCm9mIGNvdW50aW5nIHRoZSBsaW5lcyB0d2ljZS4KCkZpeGVz OiBiOTY0NjQxZTk5MjUgKCJzZWxmdGVzdHM6IHBtdHU6IE1ha2UgbGlzdF9mbHVzaF9pcHY2X2V4 Y2VwdGlvbiB0ZXN0IG1vcmUgZGVtYW5kaW5nIikKU2lnbmVkLW9mZi1ieTogVGhhZGV1IExpbWEg ZGUgU291emEgQ2FzY2FyZG8gPGNhc2NhcmRvQGNhbm9uaWNhbC5jb20+CkFja2VkLWJ5OiBTdGVm YW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMv bmV0L3BtdHUuc2ggfCA1ICsrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9w bXR1LnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3BtdHUuc2gKaW5kZXggYWIzNjdl NzVmMDk1Li5kNjk3ODE1ZDI3ODUgMTAwNzU1Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3Rz L25ldC9wbXR1LnNoCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9wbXR1LnNoCkBA IC0xMjQ5LDggKzEyNDksNyBAQCB0ZXN0X2xpc3RfZmx1c2hfaXB2NF9leGNlcHRpb24oKSB7CiAJ ZG9uZQogCXJ1bl9jbWQgJHtuc19hfSBwaW5nIC1xIC1NIHdhbnQgLWkgMC4xIC1jIDIgLXMgMTgw MCAiJHtkc3QyfSIKIAotCSMgRWFjaCBleGNlcHRpb24gaXMgcHJpbnRlZCBhcyB0d28gbGluZXMK LQlpZiBbICIkKCR7bnNfYX0gaXAgcm91dGUgbGlzdCBjYWNoZSB8IHdjIC1sKSIgLW5lIDIwMiBd OyB0aGVuCisJaWYgWyAiJCgke25zX2F9IGlwIC1vbmVsaW5lIHJvdXRlIGxpc3QgY2FjaGUgfCB3 YyAtbCkiIC1uZSAxMDEgXTsgdGhlbgogCQllcnIgIiAgY2FuJ3QgbGlzdCBjYWNoZWQgZXhjZXB0 aW9ucyIKIAkJZmFpbD0xCiAJZmkKQEAgLTEzMDAsNyArMTI5OSw3IEBAIHRlc3RfbGlzdF9mbHVz aF9pcHY2X2V4Y2VwdGlvbigpIHsKIAkJcnVuX2NtZCAke25zX2F9IHBpbmcgLXEgLU0gd2FudCAt aSAwLjEgLXcgMSAtcyAxODAwICIke2RzdF9wcmVmaXgxfSR7aX0iCiAJZG9uZQogCXJ1bl9jbWQg JHtuc19hfSBwaW5nIC1xIC1NIHdhbnQgLWkgMC4xIC13IDEgLXMgMTgwMCAiJHtkc3QyfSIKLQlp ZiBbICIkKCR7bnNfYX0gaXAgLTYgcm91dGUgbGlzdCBjYWNoZSB8IHdjIC1sKSIgLW5lIDEwMSBd OyB0aGVuCisJaWYgWyAiJCgke25zX2F9IGlwIC1vbmVsaW5lIC02IHJvdXRlIGxpc3QgY2FjaGUg fCB3YyAtbCkiIC1uZSAxMDEgXTsgdGhlbgogCQllcnIgIiAgY2FuJ3QgbGlzdCBjYWNoZWQgZXhj ZXB0aW9ucyIKIAkJZmFpbD0xCiAJZmkKLS0gCjIuMjAuMQoK ----Next_Part(Mon_Dec__2_19_21_47_2019_677)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_54.mbox" RnJvbSBiOGRiNzE3ZmZhNTVhMzhjZjUyYjEzYTdhMmQ4NTM1Y2FkM2ZjMDUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXJvZW4gZGUgQm9yc3QgPGplcm9lbmRiQGdvb2dsZS5jb20+ CkRhdGU6IFR1ZSwgMjYgTm92IDIwMTkgMTU6MzY6MTkgLTA4MDAKU3ViamVjdDogW1BBVENIIDAx LzI1XSBndmU6IEZpeCB0aGUgcXVldWUgcGFnZSBsaXN0IGFsbG9jYXRlZCBwYWdlcyBjb3VudAoK WyBVcHN0cmVhbSBjb21taXQgYTk1MDY5ZWNiNzA5MmQwM2IyZWExYzM5ZWUwNDUxNGZlOTYyNzU0 MCBdCgpJbiBndmVfYWxsb2NfcXVldWVfcGFnZV9saXN0KCksIHdoZW4gYSBwYWdlIGFsbG9jYXRp b24gZmFpbHMsCnFwbC0+bnVtX2VudHJpZXMgd2lsbCBiZSB3cm9uZy4gIEluIHRoaXMgY2FzZSBw cml2LT5udW1fcmVnaXN0ZXJlZF9wYWdlcwpjYW4gdW5kZXJmbG93IGluIGd2ZV9mcmVlX3F1ZXVl X3BhZ2VfbGlzdCgpLCBjYXVzaW5nIHN1YnNlcXVlbnQgY2FsbHMKdG8gZ3ZlX2FsbG9jX3F1ZXVl X3BhZ2VfbGlzdCgpIHRvIGZhaWwuCgpGaXhlczogZjVjZWRjODRhMzBkICgiZ3ZlOiBBZGQgdHJh bnNtaXQgYW5kIHJlY2VpdmUgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEplcm9lbiBkZSBCb3Jz dCA8amVyb2VuZGJAZ29vZ2xlLmNvbT4KUmV2aWV3ZWQtYnk6IENhdGhlcmluZSBTdWxsaXZhbiA8 Y3N1bGx5QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9nb29nbGUvZ3ZlL2d2ZV9t YWluLmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2dvb2dsZS9ndmUvZ3ZlX21h aW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2dvb2dsZS9ndmUvZ3ZlX21haW4uYwppbmRleCBh Y2E5NWY2NGJkZTguLjliN2E4ZGI5ODYwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvZ29vZ2xlL2d2ZS9ndmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2dvb2ds ZS9ndmUvZ3ZlX21haW4uYwpAQCAtNTQ0LDcgKzU0NCw3IEBAIHN0YXRpYyBpbnQgZ3ZlX2FsbG9j X3F1ZXVlX3BhZ2VfbGlzdChzdHJ1Y3QgZ3ZlX3ByaXYgKnByaXYsIHUzMiBpZCwKIAl9CiAKIAlx cGwtPmlkID0gaWQ7Ci0JcXBsLT5udW1fZW50cmllcyA9IHBhZ2VzOworCXFwbC0+bnVtX2VudHJp ZXMgPSAwOwogCXFwbC0+cGFnZXMgPSBrdnphbGxvYyhwYWdlcyAqIHNpemVvZigqcXBsLT5wYWdl cyksIEdGUF9LRVJORUwpOwogCS8qIGNhbGxlciBoYW5kbGVzIGNsZWFuIHVwICovCiAJaWYgKCFx cGwtPnBhZ2VzKQpAQCAtNTYyLDYgKzU2Miw3IEBAIHN0YXRpYyBpbnQgZ3ZlX2FsbG9jX3F1ZXVl X3BhZ2VfbGlzdChzdHJ1Y3QgZ3ZlX3ByaXYgKnByaXYsIHUzMiBpZCwKIAkJLyogY2FsbGVyIGhh bmRsZXMgY2xlYW4gdXAgKi8KIAkJaWYgKGVycikKIAkJCXJldHVybiAtRU5PTUVNOworCQlxcGwt Pm51bV9lbnRyaWVzKys7CiAJfQogCXByaXYtPm51bV9yZWdpc3RlcmVkX3BhZ2VzICs9IHBhZ2Vz OwogCi0tIAoyLjIwLjEKCgpGcm9tIDVjNmYyNzQ0YTcwNDY2OTBiYTI4ZDA0MTc5OGQyOTkzMDU2 ZTg1NjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1lbmdsb25nIERvbmcgPGRvbmcu bWVuZ2xvbmdAenRlLmNvbS5jbj4KRGF0ZTogTW9uLCAyNSBOb3YgMjAxOSAxNjo1ODowOSArMDgw MApTdWJqZWN0OiBbUEFUQ0ggMDIvMjVdIG1hY3ZsYW46IHNjaGVkdWxlIGJjX3dvcmsgZXZlbiBp ZiBlcnJvcgoKWyBVcHN0cmVhbSBjb21taXQgMWQ3ZWE1NTY2ODg3OGJiMzUwOTc5YzM3N2ZjNzI1 MDlkZDZmNWIyMSBdCgpXaGlsZSBlbnF1ZXVlaW5nIGEgYnJvYWRjYXN0IHNrYiB0byBwb3J0LT5i Y19xdWV1ZSwgc2NoZWR1bGVfd29yaygpCmlzIGNhbGxlZCB0byBhZGQgcG9ydC0+YmNfd29yaywg d2hpY2ggcHJvY2Vzc2VzIHRoZSBza2JzIGluCmJjX3F1ZXVlLCB0byAiZXZlbnRzIiB3b3JrIHF1 ZXVlLiBJZiBwb3J0LT5iY19xdWV1ZSBpcyBmdWxsLCB0aGUKc2tiIHdpbGwgYmUgZGlzY2FyZGVk IGFuZCBzY2hlZHVsZV93b3JrKCZwb3J0LT5iY193b3JrKSB3b24ndCBiZQpjYWxsZWQuIEhvd2V2 ZXIsIGlmIHBvcnQtPmJjX3F1ZXVlIGlzIGZ1bGwgYW5kIHBvcnQtPmJjX3dvcmsgaXMgbm90CnJ1 bm5pbmcgb3IgcGVuZGluZywgcG9ydC0+YmNfcXVldWUgd2lsbCBrZWVwIGZ1bGwgYW5kIHNjaGVk dWxlX3dvcmsoKQp3b24ndCBiZSBjYWxsZWQgYW55IG1vcmUsIGFuZCBhbGwgYnJvYWRjYXN0IHNr YnMgdG8gbWFjdmxhbiB3aWxsIGJlCmRpc2NhcmRlZC4gVGhpcyBjYXNlIGNhbiBoYXBwZW46Cgpt YWN2bGFuX3Byb2Nlc3NfYnJvYWRjYXN0KCkgaXMgdGhlIHBlbmRpbmcgZnVuY3Rpb24gb2YgcG9y dC0+YmNfd29yaywKaXQgbW92ZXMgYWxsIHRoZSBza2JzIGluIHBvcnQtPmJjX3F1ZXVlIHRvIHRo ZSBxdWV1ZSAibGlzdCIsIGFuZApwcm9jZXNzZXMgdGhlIHNrYnMgaW4gImxpc3QiLiBEdXJpbmcg dGhpcywgbmV3IHNrYnMgd2lsbCBrZWVwIGJlaW5nCmFkZGVkIHRvIHBvcnQtPmJjX3F1ZXVlIGlu IG1hY3ZsYW5fYnJvYWRjYXN0X2VucXVldWUoKSwgYW5kCnBvcnQtPmJjX3F1ZXVlIG1heSBhbHJl YWR5IGZ1bGwgd2hlbiBtYWN2bGFuX3Byb2Nlc3NfYnJvYWRjYXN0KCkKcmV0dXJuLiBUaGlzIG1h eSBoYXBwZW4sIGVzcGVjaWFsbHkgd2hlbiB0aGVyZSBhcmUgYSBsb3Qgb2YgcmVhbC10aW1lCnRo cmVhZHMgYW5kIHRoZSBwcm9jZXNzIGlzIHByZWVtcHRlZC4KCkZpeCB0aGlzIGJ5IGNhbGxpbmcg c2NoZWR1bGVfd29yaygmcG9ydC0+YmNfd29yaykgZXZlbiBpZgpwb3J0LT5iY193b3JrIGlzIGZ1 bGwgaW4gbWFjdmxhbl9icm9hZGNhc3RfZW5xdWV1ZSgpLgoKRml4ZXM6IDQxMmNhMTU1MGNiZSAo Im1hY3ZsYW46IE1vdmUgYnJvYWRjYXN0cyBpbnRvIGEgd29yayBxdWV1ZSIpClNpZ25lZC1vZmYt Ynk6IE1lbmdsb25nIERvbmcgPGRvbmcubWVuZ2xvbmdAenRlLmNvbS5jbj4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L21hY3ZsYW4uYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jIGIvZHJpdmVycy9u ZXQvbWFjdmxhbi5jCmluZGV4IDM0ZmM1OWJkMWUyMC4uMDU2MzFkOTdlZWI0IDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9tYWN2bGFuLmMKKysrIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jCkBAIC0z NTksMTAgKzM1OSwxMSBAQCBzdGF0aWMgdm9pZCBtYWN2bGFuX2Jyb2FkY2FzdF9lbnF1ZXVlKHN0 cnVjdCBtYWN2bGFuX3BvcnQgKnBvcnQsCiAJfQogCXNwaW5fdW5sb2NrKCZwb3J0LT5iY19xdWV1 ZS5sb2NrKTsKIAorCXNjaGVkdWxlX3dvcmsoJnBvcnQtPmJjX3dvcmspOworCiAJaWYgKGVycikK IAkJZ290byBmcmVlX25za2I7CiAKLQlzY2hlZHVsZV93b3JrKCZwb3J0LT5iY193b3JrKTsKIAly ZXR1cm47CiAKIGZyZWVfbnNrYjoKLS0gCjIuMjAuMQoKCkZyb20gN2U4NzIxMGE0YWZhMDEzMDFk ZWU2OGIzZTcxYzdiZWYwNzNmZWE0YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2 aWQgQmF1ZXIgPG1haWxAZGF2aWQtYmF1ZXIubmV0PgpEYXRlOiBGcmksIDIyIE5vdiAyMDE5IDIy OjQ0OjUxICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy8yNV0gbWRpb19idXM6IGRvbid0IHVzZSBt YW5hZ2VkIHJlc2V0LWNvbnRyb2xsZXIKClsgVXBzdHJlYW0gY29tbWl0IDMyMDg1ZjI1ZDdiNjg0 MDQwNTVmMzUyNWM3ODAxNDJmYzcyZTU0M2YgXQoKR2VlcnQgVXl0dGVyaG9ldmVuIHJlcG9ydGVk IHRoYXQgdXNpbmcgZGV2bV9yZXNldF9jb250cm9sbGVyX2dldCBsZWFkcwp0byBhIFdBUk5JTkcg d2hlbiBwcm9iaW5nIGEgcmVzZXQtY29udHJvbGxlZCBQSFkuIFRoaXMgaXMgYmVjYXVzZSB0aGUK ZGV2aWNlIGRldm1fcmVzZXRfY29udHJvbGxlcl9nZXQgZ2V0cyBzdXBwbGllZCBpcyBub3QgYWN0 dWFsbHkgdGhlCm9uZSBiZWluZyBwcm9iZWQuCgpBY3F1aXJlIGFuIHVubWFuYWdlZCByZXNldC1j b250cm9sIGFzIHdlbGwgYXMgZnJlZSB0aGUgcmVzZXRfY29udHJvbCBvbgp1bnJlZ2lzdGVyIHRv IGZpeCB0aGlzLgoKUmVwb3J0ZWQtYnk6IEdlZXJ0IFV5dHRlcmhvZXZlbiA8Z2VlcnRAbGludXgt bTY4ay5vcmc+CkNDOiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIEJhdWVyIDxtYWlsQGRhdmlkLWJhdWVyLm5ldD4KUmV2aWV3ZWQtYnk6IEFuZHJldyBM dW5uIDxhbmRyZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9tZGlvX2J1cy5jIHwgNiArKysr LS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21kaW9fYnVzLmMgYi9kcml2ZXJzL25ldC9waHkvbWRp b19idXMuYwppbmRleCBkYmFjYjAwMzE4NzcuLjIyOWU0ODAxNzlmZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvcGh5L21kaW9fYnVzLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L21kaW9fYnVzLmMK QEAgLTYyLDggKzYyLDggQEAgc3RhdGljIGludCBtZGlvYnVzX3JlZ2lzdGVyX3Jlc2V0KHN0cnVj dCBtZGlvX2RldmljZSAqbWRpb2RldikKIAlzdHJ1Y3QgcmVzZXRfY29udHJvbCAqcmVzZXQgPSBO VUxMOwogCiAJaWYgKG1kaW9kZXYtPmRldi5vZl9ub2RlKQotCQlyZXNldCA9IGRldm1fcmVzZXRf Y29udHJvbF9nZXRfZXhjbHVzaXZlKCZtZGlvZGV2LT5kZXYsCi0JCQkJCQkJICJwaHkiKTsKKwkJ cmVzZXQgPSBvZl9yZXNldF9jb250cm9sX2dldF9leGNsdXNpdmUobWRpb2Rldi0+ZGV2Lm9mX25v ZGUsCisJCQkJCQkgICAgICAgInBoeSIpOwogCWlmIChJU19FUlIocmVzZXQpKSB7CiAJCWlmIChQ VFJfRVJSKHJlc2V0KSA9PSAtRU5PRU5UIHx8IFBUUl9FUlIocmVzZXQpID09IC1FTk9UU1VQUCkK IAkJCXJlc2V0ID0gTlVMTDsKQEAgLTEwNyw2ICsxMDcsOCBAQCBpbnQgbWRpb2J1c191bnJlZ2lz dGVyX2RldmljZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpCiAJaWYgKG1kaW9kZXYtPmJ1 cy0+bWRpb19tYXBbbWRpb2Rldi0+YWRkcl0gIT0gbWRpb2RldikKIAkJcmV0dXJuIC1FSU5WQUw7 CiAKKwlyZXNldF9jb250cm9sX3B1dChtZGlvZGV2LT5yZXNldF9jdHJsKTsKKwogCW1kaW9kZXYt PmJ1cy0+bWRpb19tYXBbbWRpb2Rldi0+YWRkcl0gPSBOVUxMOwogCiAJcmV0dXJuIDA7Ci0tIAoy LjIwLjEKCgpGcm9tIDcxZDAzODViODMzZDE2ZjAxOGJhODJlNDQ1Zjc0MTE5ZDg0YjZiM2UgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE9sZWtzaWogUmVtcGVsIDxvLnJlbXBlbEBwZW5n dXRyb25peC5kZT4KRGF0ZTogTW9uLCAyNSBOb3YgMjAxOSAxMjo0Mzo1MSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMDQvMjVdIG5ldDogZHNhOiBzamExMTA1OiBmaXggc2phMTEwNV9wYXJzZV9yZ21p aV9kZWxheXMoKQoKWyBVcHN0cmVhbSBjb21taXQgOWJjYTNhMGE5MjNmYzNmMGZiOWU0MTM5MWJl MWQwZjI5MWU4Njg1OCBdCgpUaGlzIGZ1bmN0aW9uIHdhcyB1c2luZyBjb25maWd1cmF0aW9uIG9m IHBvcnQgMCBpbiBkZXZpY2V0cmVlIGZvciBhbGwgcG9ydHMuCkluIGNhc2UgQ1BVIHBvcnQgd2Fz IG5vdCAwLCB0aGUgZGVsYXkgc2V0dGluZ3Mgd2FzIGlnbm9yZWQuIFRoaXMgcmVzdWx0ZWQgbm90 CndvcmtpbmcgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIENQVSBhbmQgdGhlIHN3aXRjaC4KCkZpeGVz OiBmNWI4NjMxYzI5M2IgKCJuZXQ6IGRzYTogc2phMTEwNTogRXJyb3Igb3V0IGlmIFJHTUlJIGRl bGF5cyBhcmUgcmVxdWVzdGVkIGluIERUIikKU2lnbmVkLW9mZi1ieTogT2xla3NpaiBSZW1wZWwg PG8ucmVtcGVsQHBlbmd1dHJvbml4LmRlPgpSZXZpZXdlZC1ieTogVmxhZGltaXIgT2x0ZWFuIDxv bHRlYW52QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWFpbi5j IHwgMTAgKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21h aW4uYyBiL2RyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWFpbi5jCmluZGV4IDc2ODdk ZGNhZTE1OS4uYWExNDA2NjJjN2MyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2Evc2phMTEw NS9zamExMTA1X21haW4uYworKysgYi9kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21h aW4uYwpAQCAtNTk0LDE1ICs1OTQsMTUgQEAgc3RhdGljIGludCBzamExMTA1X3BhcnNlX3JnbWlp X2RlbGF5cyhzdHJ1Y3Qgc2phMTEwNV9wcml2YXRlICpwcml2LAogCWludCBpOwogCiAJZm9yIChp ID0gMDsgaSA8IFNKQTExMDVfTlVNX1BPUlRTOyBpKyspIHsKLQkJaWYgKHBvcnRzLT5yb2xlID09 IFhNSUlfTUFDKQorCQlpZiAocG9ydHNbaV0ucm9sZSA9PSBYTUlJX01BQykKIAkJCWNvbnRpbnVl OwogCi0JCWlmIChwb3J0cy0+cGh5X21vZGUgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX1JY SUQgfHwKLQkJICAgIHBvcnRzLT5waHlfbW9kZSA9PSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlf SUQpCisJCWlmIChwb3J0c1tpXS5waHlfbW9kZSA9PSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlf UlhJRCB8fAorCQkgICAgcG9ydHNbaV0ucGh5X21vZGUgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX1JH TUlJX0lEKQogCQkJcHJpdi0+cmdtaWlfcnhfZGVsYXlbaV0gPSB0cnVlOwogCi0JCWlmIChwb3J0 cy0+cGh5X21vZGUgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX1RYSUQgfHwKLQkJICAgIHBv cnRzLT5waHlfbW9kZSA9PSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlfSUQpCisJCWlmIChwb3J0 c1tpXS5waHlfbW9kZSA9PSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlfVFhJRCB8fAorCQkgICAg cG9ydHNbaV0ucGh5X21vZGUgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX0lEKQogCQkJcHJp di0+cmdtaWlfdHhfZGVsYXlbaV0gPSB0cnVlOwogCiAJCWlmICgocHJpdi0+cmdtaWlfcnhfZGVs YXlbaV0gfHwgcHJpdi0+cmdtaWlfdHhfZGVsYXlbaV0pICYmCi0tIAoyLjIwLjEKCgpGcm9tIGJm ODIzYzZiYTIyN2E3OWVkNjUzZjEzMTBkMDE4ODZjNTU5YzdlMGIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IENodWhvbmcgWXVhbiA8aHNsZXN0ZXI5NkBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjggTm92IDIwMTkgMTA6MDA6MjEgKzA4MDAKU3ViamVjdDogW1BBVENIIDA1LzI1XSBuZXQ6 IG1hY2I6IGFkZCBtaXNzZWQgdGFza2xldF9raWxsCgpbIFVwc3RyZWFtIGNvbW1pdCA2MTE4M2Iw NTZiNDllMjkzN2ZmOTJhMTQyNDI5MWJhMzZhNmY2ZDA1IF0KClRoaXMgZHJpdmVyIGZvcmdldHMg dG8ga2lsbCB0YXNrbGV0IGluIHJlbW92ZS4KQWRkIHRoZSBjYWxsIHRvIGZpeCBpdC4KCkZpeGVz OiAwMzJkYzQxYmE2ZTIgKCJuZXQ6IG1hY2I6IEhhbmRsZSBIUkVTUCBlcnJvciIpClNpZ25lZC1v ZmYtYnk6IENodWhvbmcgWXVhbiA8aHNsZXN0ZXI5NkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2Jf bWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYwppbmRleCAx ZTFiNzc0ZTE5NTMuLjBmMTBhMjcyODI3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvY2FkZW5jZS9tYWNiX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNl L21hY2JfbWFpbi5jCkBAIC00MzkyLDYgKzQzOTIsNyBAQCBzdGF0aWMgaW50IG1hY2JfcmVtb3Zl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCW1kaW9idXNfZnJlZShicC0+bWlpX2J1 cyk7CiAKIAkJdW5yZWdpc3Rlcl9uZXRkZXYoZGV2KTsKKwkJdGFza2xldF9raWxsKCZicC0+aHJl c3BfZXJyX3Rhc2tsZXQpOwogCQlwbV9ydW50aW1lX2Rpc2FibGUoJnBkZXYtPmRldik7CiAJCXBt X3J1bnRpbWVfZG9udF91c2VfYXV0b3N1c3BlbmQoJnBkZXYtPmRldik7CiAJCWlmICghcG1fcnVu dGltZV9zdXNwZW5kZWQoJnBkZXYtPmRldikpIHsKLS0gCjIuMjAuMQoKCkZyb20gZDI1NDdmZGZh YWY4YmY4YzRiMWNlMjYyMjk2NmQyNjcyNWIzYzEyNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpE YXRlOiBXZWQsIDI3IE5vdiAyMDE5IDAwOjE2OjQ0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8y NV0gbmV0OiBwc2FtcGxlOiBmaXggc2tiX292ZXJfcGFuaWMKClsgVXBzdHJlYW0gY29tbWl0IDdl YjlkNzY3NWMwODkzN2NkMTFkMzJiMGI0MDQ0MmQ0ZDczMWM1ZWUgXQoKV2UgbmVlZCB0byBjYWxj dWxhdGUgdGhlIHNrYiBzaXplIGNvcnJlY3RseSBvdGhlcndpc2Ugd2UgcmlzayB0cmlnZ2VyaW5n CnNrYl9vdmVyX3BhbmljWzFdLiBUaGUgaXNzdWUgaXMgdGhhdCBkYXRhX2xlbiBpcyBhZGRlZCB0 byB0aGUgc2tiIGluIGEKbmwgYXR0cmlidXRlLCBidXQgd2UgZG9uJ3QgYWNjb3VudCBmb3IgaXRz IGhlYWRlciBzaXplIChubGF0dHIgNCBieXRlcykKYW5kIGFsaWdubWVudC4gV2UgYWNjb3VudCBm b3IgaXQgd2hlbiBjYWxjdWxhdGluZyB0aGUgdG90YWwgc2l6ZSBpbgp0aGUgPiBQU0FNUExFX01B WF9QQUNLRVRfU0laRSBjb21wYXJpc29uIGNvcnJlY3RseSwgYnV0IG5vdCB3aGVuCmFsbG9jYXRp bmcgYWZ0ZXIgdGhhdC4gVGhlIGZpeCBpcyBzaW1wbGUgLSB1c2UgbmxhX3RvdGFsX3NpemUoKSBm b3IKZGF0YV9sZW4gd2hlbiBhbGxvY2F0aW5nLgoKVG8gcmVwcm9kdWNlOgogJCB0YyBxZGlzYyBh ZGQgZGV2IGV0aDEgY2xzYWN0CiAkIHRjIGZpbHRlciBhZGQgZGV2IGV0aDEgZWdyZXNzIG1hdGNo YWxsIGFjdGlvbiBzYW1wbGUgcmF0ZSAxIGdyb3VwIDEgdHJ1bmMgMTI5CiAkIG1hdXNlemFobiBl dGgxIC1iIGJjYXN0IC1hIHJhbmQgLWMgMSAtcCAxMjkKIDwgc2tiX292ZXJfcGFuaWMgQlVHKCks IHRhaWwgaXMgNCBieXRlcyBwYXN0IHNrYi0+ZW5kID4KClsxXSBUcmFjZToKIFsgICA1MC40NTk1 MjZdWyBUMzQ4MF0gc2tidWZmOiBza2Jfb3Zlcl9wYW5pYzogdGV4dDooX19fX3B0cnZhbF9fX18p IGxlbjoxOTYgcHV0OjEzNiBoZWFkOihfX19fcHRydmFsX19fXykgZGF0YTooX19fX3B0cnZhbF9f X18pIHRhaWw6MHhjNCBlbmQ6MHhjMCBkZXY6PE5VTEw+CiBbICAgNTAuNDc0MzM5XVsgVDM0ODBd IC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQogWyAgIDUwLjQ4MTEzMl1bIFQz NDgwXSBrZXJuZWwgQlVHIGF0IG5ldC9jb3JlL3NrYnVmZi5jOjEwOCEKIFsgICA1MC40ODYwNTld WyBUMzQ4MF0gaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMxXSBQUkVFTVBUIFNNUAogWyAgIDUwLjQ4 OTQ2M11bIFQzNDgwXSBDUFU6IDMgUElEOiAzNDgwIENvbW06IG1hdXNlemFobiBOb3QgdGFpbnRl ZCA1LjQuMC1yYzcgIzEwOAogWyAgIDUwLjQ5Mjg0NF1bIFQzNDgwXSBIYXJkd2FyZSBuYW1lOiBR RU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyAxLjEyLjAtMi5mYzMw IDA0LzAxLzIwMTQKIFsgICA1MC40OTY1NTFdWyBUMzQ4MF0gUklQOiAwMDEwOnNrYl9wYW5pYysw eDc5LzB4N2IKIFsgICA1MC40OTgyNjFdWyBUMzQ4MF0gQ29kZTogYmMgMDAgMDAgMDAgNDEgNTcg NGMgODkgZTYgNDggYzcgYzcgOTAgMjkgOWEgODMgNGMgOGIgOGIgYzAgMDAgMDAgMDAgNTAgOGIg ODMgYjggMDAgMDAgMDAgNTAgZmYgYjMgYzggMDAgMDAgMDAgZTggYWUgZWYgYzAgZmUgPDBmPiAw YiBlOCAyZiBkZiBjOCBmZSA0OCA4YiA1NSAwOCA0NCA4OSBmNiA0YyA4OSBlNyA0OCBjNyBjMSBh MCAyMgogWyAgIDUwLjUwNDExMV1bIFQzNDgwXSBSU1A6IDAwMTg6ZmZmZmM5MDAwMDQ0N2ExMCBF RkxBR1M6IDAwMDEwMjgyCiBbICAgNTAuNTA1ODM1XVsgVDM0ODBdIFJBWDogMDAwMDAwMDAwMDAw MDA4NyBSQlg6IGZmZmY4ODgwMzkzMTdkMDAgUkNYOiAwMDAwMDAwMDAwMDAwMDAwCiBbICAgNTAu NTA3OTAwXVsgVDM0ODBdIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IGZmZmZmZmZmODEyNzE2 ZTEgUkRJOiAwMDAwMDAwMGZmZmZmZmZmCiBbICAgNTAuNTA5ODIwXVsgVDM0ODBdIFJCUDogZmZm ZmM5MDAwMDQ0N2E2MCBSMDg6IDAwMDAwMDAwMDAwMDAwMDEgUjA5OiAwMDAwMDAwMDAwMDAwMDAw CiBbICAgNTAuNTExNzM1XVsgVDM0ODBdIFIxMDogZmZmZmZmZmY4MWQ0Zjk0MCBSMTE6IDAwMDAw MDAwMDAwMDAwMDAgUjEyOiBmZmZmZmZmZjgzNGEyMmIwCiBbICAgNTAuNTEzNDk0XVsgVDM0ODBd IFIxMzogZmZmZmZmZmY4MmMxMDQzMyBSMTQ6IDAwMDAwMDAwMDAwMDAwODggUjE1OiBmZmZmZmZm ZjgzOGE4MDg0CiBbICAgNTAuNTE1MjIyXVsgVDM0ODBdIEZTOiAgMDAwMDdmMzUzNjQ2MjcwMCgw MDAwKSBHUzpmZmZmODg4MDNlYWMwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKIFsg ICA1MC41MTcxMzVdWyBUMzQ4MF0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAw MDAwMDA4MDA1MDAzMwogWyAgIDUwLjUxODU4M11bIFQzNDgwXSBDUjI6IDAwMDAwMDAwMDA0NDIw MDggQ1IzOiAwMDAwMDAwMDNiMjIyMDAwIENSNDogMDAwMDAwMDAwMDAwMDZlMAogWyAgIDUwLjUy MDcyM11bIFQzNDgwXSBEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAw IERSMjogMDAwMDAwMDAwMDAwMDAwMAogWyAgIDUwLjUyMjcwOV1bIFQzNDgwXSBEUjM6IDAwMDAw MDAwMDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMAog WyAgIDUwLjUyNDQ1MF1bIFQzNDgwXSBDYWxsIFRyYWNlOgogWyAgIDUwLjUyNTIxNF1bIFQzNDgw XSAgc2tiX3B1dC5jb2xkKzB4MWIvMHgxYgogWyAgIDUwLjUyNjE3MV1bIFQzNDgwXSAgcHNhbXBs ZV9zYW1wbGVfcGFja2V0KzB4MWQzLzB4MzQwCiBbICAgNTAuNTI3MzA3XVsgVDM0ODBdICB0Y2Zf c2FtcGxlX2FjdCsweDE3OC8weDI1MAogWyAgIDUwLjUyODMzOV1bIFQzNDgwXSAgdGNmX2FjdGlv bl9leGVjKzB4YjEvMHgxOTAKIFsgICA1MC41MjkzNTRdWyBUMzQ4MF0gIG1hbGxfY2xhc3NpZnkr MHg2Ny8weDkwCiBbICAgNTAuNTMwMzMyXVsgVDM0ODBdICB0Y2ZfY2xhc3NpZnkrMHg3Mi8weDE2 MAogWyAgIDUwLjUzMTI4Nl1bIFQzNDgwXSAgX19kZXZfcXVldWVfeG1pdCsweDNkYi8weGQ1MAog WyAgIDUwLjUzMjMyN11bIFQzNDgwXSAgZGV2X3F1ZXVlX3htaXQrMHgxOC8weDIwCiBbICAgNTAu NTMzMjk5XVsgVDM0ODBdICBwYWNrZXRfc2VuZG1zZysweGVlNy8weDIwOTAKIFsgICA1MC41MzQz MzFdWyBUMzQ4MF0gIHNvY2tfc2VuZG1zZysweDU0LzB4NzAKIFsgICA1MC41MzUyNzFdWyBUMzQ4 MF0gIF9fc3lzX3NlbmR0bysweDE0OC8weDFmMAogWyAgIDUwLjUzNjI1Ml1bIFQzNDgwXSAgPyB0 b21veW9fZmlsZV9pb2N0bCsweDIzLzB4MzAKIFsgICA1MC41MzczMzRdWyBUMzQ4MF0gID8ga3N5 c19pb2N0bCsweDVlLzB4YjAKIFsgICA1MC41NDAwNjhdWyBUMzQ4MF0gIF9feDY0X3N5c19zZW5k dG8rMHgyYS8weDMwCiBbICAgNTAuNTQyODEwXVsgVDM0ODBdICBkb19zeXNjYWxsXzY0KzB4NzMv MHgxZjAKIFsgICA1MC41NDUzODNdWyBUMzQ4MF0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdm cmFtZSsweDQ0LzB4YTkKIFsgICA1MC41NDg0NzddWyBUMzQ4MF0gUklQOiAwMDMzOjB4N2YzNTM1 N2Q2ZmIzCiBbICAgNTAuNTUxMDIwXVsgVDM0ODBdIENvZGU6IDQ4IDhiIDBkIDE4IDkwIDIwIDAw IGY3IGQ4IDY0IDg5IDAxIDQ4IDgzIGM4IGZmIGMzIDY2IDBmIDFmIDQ0IDAwIDAwIDgzIDNkIGY5 IGQzIDIwIDAwIDAwIDc1IDEzIDQ5IDg5IGNhIGI4IDJjIDAwIDAwIDAwIDBmIDA1IDw0OD4gM2Qg MDEgZjAgZmYgZmYgNzMgMzQgYzMgNDggODMgZWMgMDggZTggZWIgZjYgZmYgZmYgNDggODkgMDQg MjQKIFsgICA1MC41NTg1NDddWyBUMzQ4MF0gUlNQOiAwMDJiOjAwMDA3ZmZlMGM3MjEyYzggRUZM QUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAyYwogWyAgIDUwLjU2MTg3MF1b IFQzNDgwXSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAxZGFjMDEwIFJDWDog MDAwMDdmMzUzNTdkNmZiMwogWyAgIDUwLjU2NTE0Ml1bIFQzNDgwXSBSRFg6IDAwMDAwMDAwMDAw MDAwODIgUlNJOiAwMDAwMDAwMDAxZGFjMmEyIFJESTogMDAwMDAwMDAwMDAwMDAwMwogWyAgIDUw LjU2ODQ2OV1bIFQzNDgwXSBSQlA6IDAwMDA3ZmZlMGM3MjEyZjAgUjA4OiAwMDAwN2ZmZTBjNzIx MmQwIFIwOTogMDAwMDAwMDAwMDAwMDAxNAogWyAgIDUwLjU3MTczMV1bIFQzNDgwXSBSMTA6IDAw MDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAwMDAwMDA4 MgogWyAgIDUwLjU3NDk2MV1bIFQzNDgwXSBSMTM6IDAwMDAwMDAwMDFkYWMyYTIgUjE0OiAwMDAw MDAwMDAwMDAwMDAxIFIxNTogMDAwMDAwMDAwMDAwMDAwMwogWyAgIDUwLjU3ODE3MF1bIFQzNDgw XSBNb2R1bGVzIGxpbmtlZCBpbjogc2NoX2luZ3Jlc3MgdmlydGlvX25ldAogWyAgIDUwLjU4MDk3 Nl1bIFQzNDgwXSAtLS1bIGVuZCB0cmFjZSA2MWE1MTU2MjZhNTk1YWY2IF0tLS0KCkNDOiBZb3Rh bSBHaWdpIDx5b3RhbWdAbWVsbGFub3guY29tPgpDQzogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5v eC5jb20+CkNDOiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpDQzogU2ltb24g SG9ybWFuIDxzaW1vbi5ob3JtYW5AbmV0cm9ub21lLmNvbT4KQ0M6IFJvb3BhIFByYWJodSA8cm9v cGFAY3VtdWx1c25ldHdvcmtzLmNvbT4KRml4ZXM6IDZhZTBhNjI4NjE3MSAoIm5ldDogSW50cm9k dWNlIHBzYW1wbGUsIGEgbmV3IGdlbmV0bGluayBjaGFubmVsIGZvciBwYWNrZXQgc2FtcGxpbmci KQpTaWduZWQtb2ZmLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3 b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvcHNhbXBsZS9wc2FtcGxlLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcHNhbXBsZS9w c2FtcGxlLmMgYi9uZXQvcHNhbXBsZS9wc2FtcGxlLmMKaW5kZXggYTZjZWIwNTMzYjViLi42ZjJm YmM2YjllYjIgMTAwNjQ0Ci0tLSBhL25ldC9wc2FtcGxlL3BzYW1wbGUuYworKysgYi9uZXQvcHNh bXBsZS9wc2FtcGxlLmMKQEAgLTIyOSw3ICsyMjksNyBAQCB2b2lkIHBzYW1wbGVfc2FtcGxlX3Bh Y2tldChzdHJ1Y3QgcHNhbXBsZV9ncm91cCAqZ3JvdXAsIHN0cnVjdCBza19idWZmICpza2IsCiAJ CWRhdGFfbGVuID0gUFNBTVBMRV9NQVhfUEFDS0VUX1NJWkUgLSBtZXRhX2xlbiAtIE5MQV9IRFJM RU4KIAkJCSAgICAtIE5MQV9BTElHTlRPOwogCi0Jbmxfc2tiID0gZ2VubG1zZ19uZXcobWV0YV9s ZW4gKyBkYXRhX2xlbiwgR0ZQX0FUT01JQyk7CisJbmxfc2tiID0gZ2VubG1zZ19uZXcobWV0YV9s ZW4gKyBubGFfdG90YWxfc2l6ZShkYXRhX2xlbiksIEdGUF9BVE9NSUMpOwogCWlmICh1bmxpa2Vs eSghbmxfc2tiKSkKIAkJcmV0dXJuOwogCi0tIAoyLjIwLjEKCgpGcm9tIDY4NzA3YmY5MWQyMGMx YTcwNmNlYWRlYzcxNWZiNGZiZTVmYTNjYTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IER1c3QgTGkgPGR1c3QubGlAbGludXguYWxpYmFiYS5jb20+CkRhdGU6IFRodSwgMjggTm92IDIw MTkgMTQ6Mjk6MDkgKzA4MDAKU3ViamVjdDogW1BBVENIIDA3LzI1XSBuZXQ6IHNjaGVkOiBmaXgg YHRjIC1zIGNsYXNzIHNob3dgIG5vIGJzdGF0cyBvbiBjbGFzcwogd2l0aCBub2xvY2sgc3VicXVl dWVzCgpbIFVwc3RyZWFtIGNvbW1pdCAxNGU1NGFiOTE0M2ZhNjA3OTRkMTNlYTBhNjZjNzkyYTIw NDZhOGYzIF0KCldoZW4gYSBjbGFzc2Z1bCBxZGlzYydzIGNoaWxkIHFkaXNjIGhhcyBzZXQgdGhl IGZsYWcKVENRX0ZfQ1BVU1RBVFMgKHBmaWZvX2Zhc3QgZm9yIGV4YW1wbGUpLCB0aGUgY2hpbGQg cWRpc2MncwpjcHVfYnN0YXRzIHNob3VsZCBiZSBwYXNzZWQgdG8gZ25ldF9zdGF0c19jb3B5X2Jh c2ljKCksCmJ1dCBtYW55IGNsYXNzZnVsIHFkaXNjIGRpZG4ndCBkbyB0aGF0LiBBcyBhIHJlc3Vs dCwKYHRjIC1zIGNsYXNzIHNob3cgZGV2IERFVmAgYWx3YXlzIHJldHVybiAwIGZvciBieXRlcyBh bmQKcGFja2V0cyBpbiB0aGlzIGNhc2UuCgpQYXNzIHRoZSBjaGlsZCBxZGlzYydzIGNwdV9ic3Rh dHMgdG8gZ25ldF9zdGF0c19jb3B5X2Jhc2ljKCkKdG8gZml4IHRoaXMgaXNzdWUuCgpUaGUgcXN0 YXRzIGFsc28gaGFzIHRoaXMgcHJvYmxlbSwgYnV0IGl0IGhhcyBiZWVuIGZpeGVkCmluIDVkZDQz MWI2YjkgKCJuZXQ6IHNjaGVkOiBpbnRyb2R1Y2UgYW5kIHVzZSBxc3RhdHMgcmVhZC4uLiIpCmFu ZCBic3RhdHMgc3RpbGwgcmVtYWlucyBidWdneS4KCkZpeGVzOiAyMmUwZjhiOTMyMmMgKCJuZXQ6 IHNjaGVkOiBtYWtlIGJzdGF0cyBwZXIgY3B1IGFuZCBlc3RpbWF0b3IgUkNVIHNhZmUiKQpTaWdu ZWQtb2ZmLWJ5OiBEdXN0IExpIDxkdXN0LmxpQGxpbnV4LmFsaWJhYmEuY29tPgpTaWduZWQtb2Zm LWJ5OiBUb255IEx1IDx0b255bHVAbGludXguYWxpYmFiYS5jb20+CkFja2VkLWJ5OiBDb25nIFdh bmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9zY2hfbXEuYyAgICAgfCAz ICsrLQogbmV0L3NjaGVkL3NjaF9tcXByaW8uYyB8IDQgKystLQogbmV0L3NjaGVkL3NjaF9tdWx0 aXEuYyB8IDIgKy0KIG5ldC9zY2hlZC9zY2hfcHJpby5jICAgfCAyICstCiA0IGZpbGVzIGNoYW5n ZWQsIDYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2No ZWQvc2NoX21xLmMgYi9uZXQvc2NoZWQvc2NoX21xLmMKaW5kZXggMGQ1NzgzMzNlOTY3Li4yNzhj MGIyZGM1MjMgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfbXEuYworKysgYi9uZXQvc2NoZWQv c2NoX21xLmMKQEAgLTI0NSw3ICsyNDUsOCBAQCBzdGF0aWMgaW50IG1xX2R1bXBfY2xhc3Nfc3Rh dHMoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgY2wsCiAJc3RydWN0IG5ldGRldl9x dWV1ZSAqZGV2X3F1ZXVlID0gbXFfcXVldWVfZ2V0KHNjaCwgY2wpOwogCiAJc2NoID0gZGV2X3F1 ZXVlLT5xZGlzY19zbGVlcGluZzsKLQlpZiAoZ25ldF9zdGF0c19jb3B5X2Jhc2ljKCZzY2gtPnJ1 bm5pbmcsIGQsIE5VTEwsICZzY2gtPmJzdGF0cykgPCAwIHx8CisJaWYgKGduZXRfc3RhdHNfY29w eV9iYXNpYygmc2NoLT5ydW5uaW5nLCBkLCBzY2gtPmNwdV9ic3RhdHMsCisJCQkJICAmc2NoLT5i c3RhdHMpIDwgMCB8fAogCSAgICBxZGlzY19xc3RhdHNfY29weShkLCBzY2gpIDwgMCkKIAkJcmV0 dXJuIC0xOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9tcXByaW8uYyBi L25ldC9zY2hlZC9zY2hfbXFwcmlvLmMKaW5kZXggNDY5ODBiOGQ2NmM1Li4wZDAxMTNhMjQ5NjIg MTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfbXFwcmlvLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9t cXByaW8uYwpAQCAtNTU3LDggKzU1Nyw4IEBAIHN0YXRpYyBpbnQgbXFwcmlvX2R1bXBfY2xhc3Nf c3RhdHMoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgY2wsCiAJCXN0cnVjdCBuZXRk ZXZfcXVldWUgKmRldl9xdWV1ZSA9IG1xcHJpb19xdWV1ZV9nZXQoc2NoLCBjbCk7CiAKIAkJc2No ID0gZGV2X3F1ZXVlLT5xZGlzY19zbGVlcGluZzsKLQkJaWYgKGduZXRfc3RhdHNfY29weV9iYXNp YyhxZGlzY19yb290X3NsZWVwaW5nX3J1bm5pbmcoc2NoKSwKLQkJCQkJICBkLCBOVUxMLCAmc2No LT5ic3RhdHMpIDwgMCB8fAorCQlpZiAoZ25ldF9zdGF0c19jb3B5X2Jhc2ljKHFkaXNjX3Jvb3Rf c2xlZXBpbmdfcnVubmluZyhzY2gpLCBkLAorCQkJCQkgIHNjaC0+Y3B1X2JzdGF0cywgJnNjaC0+ YnN0YXRzKSA8IDAgfHwKIAkJICAgIHFkaXNjX3FzdGF0c19jb3B5KGQsIHNjaCkgPCAwKQogCQkJ cmV0dXJuIC0xOwogCX0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfbXVsdGlxLmMgYi9uZXQv c2NoZWQvc2NoX211bHRpcS5jCmluZGV4IGIyYjdmZGIwNmZjNi4uMTMzMGFkMjI0OTMxIDEwMDY0 NAotLS0gYS9uZXQvc2NoZWQvc2NoX211bHRpcS5jCisrKyBiL25ldC9zY2hlZC9zY2hfbXVsdGlx LmMKQEAgLTMzOSw3ICszMzksNyBAQCBzdGF0aWMgaW50IG11bHRpcV9kdW1wX2NsYXNzX3N0YXRz KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGNsLAogCiAJY2xfcSA9IHEtPnF1ZXVl c1tjbCAtIDFdOwogCWlmIChnbmV0X3N0YXRzX2NvcHlfYmFzaWMocWRpc2Nfcm9vdF9zbGVlcGlu Z19ydW5uaW5nKHNjaCksCi0JCQkJICBkLCBOVUxMLCAmY2xfcS0+YnN0YXRzKSA8IDAgfHwKKwkJ CQkgIGQsIGNsX3EtPmNwdV9ic3RhdHMsICZjbF9xLT5ic3RhdHMpIDwgMCB8fAogCSAgICBxZGlz Y19xc3RhdHNfY29weShkLCBjbF9xKSA8IDApCiAJCXJldHVybiAtMTsKIApkaWZmIC0tZ2l0IGEv bmV0L3NjaGVkL3NjaF9wcmlvLmMgYi9uZXQvc2NoZWQvc2NoX3ByaW8uYwppbmRleCAwZjhmZWRi ODgwOWEuLjE4Yjg4NGNmZGZlOCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9wcmlvLmMKKysr IGIvbmV0L3NjaGVkL3NjaF9wcmlvLmMKQEAgLTM1Niw3ICszNTYsNyBAQCBzdGF0aWMgaW50IHBy aW9fZHVtcF9jbGFzc19zdGF0cyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBjbCwK IAogCWNsX3EgPSBxLT5xdWV1ZXNbY2wgLSAxXTsKIAlpZiAoZ25ldF9zdGF0c19jb3B5X2Jhc2lj KHFkaXNjX3Jvb3Rfc2xlZXBpbmdfcnVubmluZyhzY2gpLAotCQkJCSAgZCwgTlVMTCwgJmNsX3Et PmJzdGF0cykgPCAwIHx8CisJCQkJICBkLCBjbF9xLT5jcHVfYnN0YXRzLCAmY2xfcS0+YnN0YXRz KSA8IDAgfHwKIAkgICAgcWRpc2NfcXN0YXRzX2NvcHkoZCwgY2xfcSkgPCAwKQogCQlyZXR1cm4g LTE7CiAKLS0gCjIuMjAuMQoKCkZyb20gZTEyNzExN2U5MGE4ZjMxZTU3Y2ExOGViNWIzMDQyMGE0 MTE3MjMyYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFvbG8gQWJlbmkgPHBhYmVu aUByZWRoYXQuY29tPgpEYXRlOiBUdWUsIDI2IE5vdiAyMDE5IDEyOjU1OjUwICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAwOC8yNV0gb3BlbnZzd2l0Y2g6IGZpeCBmbG93IGNvbW1hbmQgbWVzc2FnZSBz aXplCgpbIFVwc3RyZWFtIGNvbW1pdCA0ZTgxYzBiM2ZhOTNkMDc2NTNlMjQxNWZhNzE2NTZiMDgw YTExMmZkIF0KCldoZW4gdXNlci1zcGFjZSBzZXRzIHRoZSBPVlNfVUZJRF9GX09NSVRfKiBmbGFn cywgYW5kIHRoZSByZWxldmFudApmbG93IGhhcyBubyBVRklELCB3ZSBjYW4gZXhjZWVkIHRoZSBj b21wdXRlZCBzaXplLCBhcwpvdnNfbmxhX3B1dF9pZGVudGlmaWVyKCkgd2lsbCBhbHdheXMgZHVt cCBhbiBPVlNfRkxPV19BVFRSX0tFWQphdHRyaWJ1dGUuClRha2UgdGhlIGFib3ZlIGluIGFjY291 bnQgd2hlbiBjb21wdXRpbmcgdGhlIGZsb3cgY29tbWFuZCBtZXNzYWdlCnNpemUuCgpGaXhlczog NzRlZDdhYjkyNjRjICgib3BlbnZzd2l0Y2g6IEFkZCBzdXBwb3J0IGZvciB1bmlxdWUgZmxvdyBJ RHMuIikKUmVwb3J0ZWQtYnk6IFFpIEp1biBEaW5nIDxxZGluZ0ByZWRoYXQuY29tPgpTaWduZWQt b2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvb3BlbnZzd2l0Y2gv ZGF0YXBhdGguYyB8IDYgKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMgYi9u ZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYwppbmRleCBkOGMzNjRkNjM3YjEuLmNlMzg2MzMxOTY0 ZiAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMKKysrIGIvbmV0L29wZW52 c3dpdGNoL2RhdGFwYXRoLmMKQEAgLTcwNCw5ICs3MDQsMTMgQEAgc3RhdGljIHNpemVfdCBvdnNf Zmxvd19jbWRfbXNnX3NpemUoY29uc3Qgc3RydWN0IHN3X2Zsb3dfYWN0aW9ucyAqYWN0cywKIHsK IAlzaXplX3QgbGVuID0gTkxNU0dfQUxJR04oc2l6ZW9mKHN0cnVjdCBvdnNfaGVhZGVyKSk7CiAK LQkvKiBPVlNfRkxPV19BVFRSX1VGSUQgKi8KKwkvKiBPVlNfRkxPV19BVFRSX1VGSUQsIG9yIHVu bWFza2VkIGZsb3cga2V5IGFzIGZhbGxiYWNrCisJICogc2VlIG92c19ubGFfcHV0X2lkZW50aWZp ZXIoKQorCSAqLwogCWlmIChzZmlkICYmIG92c19pZGVudGlmaWVyX2lzX3VmaWQoc2ZpZCkpCiAJ CWxlbiArPSBubGFfdG90YWxfc2l6ZShzZmlkLT51ZmlkX2xlbik7CisJZWxzZQorCQlsZW4gKz0g bmxhX3RvdGFsX3NpemUob3ZzX2tleV9hdHRyX3NpemUoKSk7CiAKIAkvKiBPVlNfRkxPV19BVFRS X0tFWSAqLwogCWlmICghc2ZpZCB8fCBzaG91bGRfZmlsbF9rZXkoc2ZpZCwgdWZpZF9mbGFncykp Ci0tIAoyLjIwLjEKCgpGcm9tIDMwOTdhZTQ1YmUzY2YyNDBiMDcxOWRiZjdkZmQ4YmEyODk4OTk2 YWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5hdmlkIEVtYW1kb29zdCA8bmF2aWQu ZW1hbWRvb3N0QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyMiBOb3YgMjAxOSAxNjoxNzo1NiAtMDYw MApTdWJqZWN0OiBbUEFUQ0ggMDkvMjVdIHNjdHA6IEZpeCBtZW1vcnkgbGVhayBpbiBzY3RwX3Nm X2RvXzVfMl80X2R1cGNvb2sKClsgVXBzdHJlYW0gY29tbWl0IGI2NjMxYzYwMzFjNzQ2ZWQwMDRj NDIyMWVjMDYxNmQ3YTUyMGY0NDEgXQoKSW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIHNjdHBfc2Zf ZG9fNV8yXzRfZHVwY29vaygpIHRoZSBhbGxvY2F0ZWQKbmV3X2Fzb2MgaXMgbGVha2VkIGlmIHNl Y3VyaXR5X3NjdHBfYXNzb2NfcmVxdWVzdCgpIGZhaWxzLiBSZWxlYXNlIGl0CnZpYSBzY3RwX2Fz c29jaWF0aW9uX2ZyZWUoKS4KCkZpeGVzOiAyMjc3YzdjZDc1ZTMgKCJzY3RwOiBBZGQgTFNNIGhv b2tzIikKU2lnbmVkLW9mZi1ieTogTmF2aWQgRW1hbWRvb3N0IDxuYXZpZC5lbWFtZG9vc3RAZ21h aWwuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5l ckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNr aUBuZXRyb25vbWUuY29tPgotLS0KIG5ldC9zY3RwL3NtX3N0YXRlZnVucy5jIHwgNCArKystCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYwppbmRl eCAwYzIxYzUyZmM0MDguLjRhYjgyMDhhMmRkNCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc21fc3Rh dGVmdW5zLmMKKysrIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKQEAgLTIxNjAsOCArMjE2MCwx MCBAQCBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb181XzJfNF9kdXBjb29rKAogCiAJ LyogVXBkYXRlIHNvY2tldCBwZWVyIGxhYmVsIGlmIGZpcnN0IGFzc29jaWF0aW9uLiAqLwogCWlm IChzZWN1cml0eV9zY3RwX2Fzc29jX3JlcXVlc3QoKHN0cnVjdCBzY3RwX2VuZHBvaW50ICopZXAs Ci0JCQkJCWNodW5rLT5za2IpKQorCQkJCQljaHVuay0+c2tiKSkgeworCQlzY3RwX2Fzc29jaWF0 aW9uX2ZyZWUobmV3X2Fzb2MpOwogCQlyZXR1cm4gc2N0cF9zZl9wZGlzY2FyZChuZXQsIGVwLCBh c29jLCB0eXBlLCBhcmcsIGNvbW1hbmRzKTsKKwl9CiAKIAkvKiBTZXQgdGVtcCBzbyB0aGF0IGl0 IHdvbid0IGJlIGFkZGVkIGludG8gaGFzaHRhYmxlICovCiAJbmV3X2Fzb2MtPnRlbXAgPSAxOwot LSAKMi4yMC4xCgoKRnJvbSBiOGU0NGI0NjJiYjYyMDE1M2ZjMzg0YTVkMDFiYTgyMjg2ZjhhYjRm IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb3VuaSBIb2dhbmRlciA8am91bmkuaG9n YW5kZXJAdW5pa2llLmNvbT4KRGF0ZTogTW9uLCAyNSBOb3YgMjAxOSAxNDoyMzo0MyArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMTAvMjVdIHNsaXA6IEZpeCB1c2UtYWZ0ZXItZnJlZSBSZWFkIGluIHNs aXBfb3BlbgoKWyBVcHN0cmVhbSBjb21taXQgZTU4YzE5MTI0MTg5ODBmNTdiYTIwNjAwMTc1ODMw NjdmNWY3MWU1MiBdCgpTbGlwX29wZW4gZG9lc24ndCBjbGVhbi11cCBkZXZpY2Ugd2hpY2ggcmVn aXN0cmF0aW9uIGZhaWxlZCBmcm9tIHRoZQpzbGlwX2RldnMgZGV2aWNlIGxpc3QuIE9uIG5leHQg b3BlbiBhZnRlciBmYWlsdXJlIHRoaXMgbGlzdCBpcyBpdGVyYXRlZAphbmQgZnJlZWQgZGV2aWNl IGlzIGFjY2Vzc2VkLiBGaXggdGhpcyBieSBjYWxsaW5nIHNsX2ZyZWVfbmV0ZGV2IGluIGVycm9y CnBhdGguCgpIZXJlIGlzIHRoZSB0cmFjZSBmcm9tIHRoZSBTeXpib3Q6CgpfX2R1bXBfc3RhY2sg bGliL2R1bXBfc3RhY2suYzo3NyBbaW5saW5lXQpkdW1wX3N0YWNrKzB4MTk3LzB4MjEwIGxpYi9k dW1wX3N0YWNrLmM6MTE4CnByaW50X2FkZHJlc3NfZGVzY3JpcHRpb24uY29uc3Rwcm9wLjAuY29s ZCsweGQ0LzB4MzBiIG1tL2thc2FuL3JlcG9ydC5jOjM3NApfX2thc2FuX3JlcG9ydC5jb2xkKzB4 MWIvMHg0MSBtbS9rYXNhbi9yZXBvcnQuYzo1MDYKa2FzYW5fcmVwb3J0KzB4MTIvMHgyMCBtbS9r YXNhbi9jb21tb24uYzo2MzQKX19hc2FuX3JlcG9ydF9sb2FkOF9ub2Fib3J0KzB4MTQvMHgyMCBt bS9rYXNhbi9nZW5lcmljX3JlcG9ydC5jOjEzMgpzbF9zeW5jIGRyaXZlcnMvbmV0L3NsaXAvc2xp cC5jOjcyNSBbaW5saW5lXQpzbGlwX29wZW4rMHhlY2QvMHgxMWI3IGRyaXZlcnMvbmV0L3NsaXAv c2xpcC5jOjgwMQp0dHlfbGRpc2Nfb3Blbi5pc3JhLjArMHhhMy8weDExMCBkcml2ZXJzL3R0eS90 dHlfbGRpc2MuYzo0NjkKdHR5X3NldF9sZGlzYysweDMwZS8weDZiMCBkcml2ZXJzL3R0eS90dHlf bGRpc2MuYzo1OTYKdGlvY3NldGQgZHJpdmVycy90dHkvdHR5X2lvLmM6MjMzNCBbaW5saW5lXQp0 dHlfaW9jdGwrMHhlOGQvMHgxNGYwIGRyaXZlcnMvdHR5L3R0eV9pby5jOjI1OTQKdmZzX2lvY3Rs IGZzL2lvY3RsLmM6NDYgW2lubGluZV0KZmlsZV9pb2N0bCBmcy9pb2N0bC5jOjUwOSBbaW5saW5l XQpkb192ZnNfaW9jdGwrMHhkYjYvMHgxM2UwIGZzL2lvY3RsLmM6Njk2CmtzeXNfaW9jdGwrMHhh Yi8weGQwIGZzL2lvY3RsLmM6NzEzCl9fZG9fc3lzX2lvY3RsIGZzL2lvY3RsLmM6NzIwIFtpbmxp bmVdCl9fc2Vfc3lzX2lvY3RsIGZzL2lvY3RsLmM6NzE4IFtpbmxpbmVdCl9feDY0X3N5c19pb2N0 bCsweDczLzB4YjAgZnMvaW9jdGwuYzo3MTgKZG9fc3lzY2FsbF82NCsweGZhLzB4NzYwIGFyY2gv eDg2L2VudHJ5L2NvbW1vbi5jOjI5MAplbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0 OS8weGJlCgpGaXhlczogM2I1YTM5OTc5ZGFmICgic2xpcDogRml4IG1lbW9yeSBsZWFrIGluIHNs aXBfb3BlbiBlcnJvciBwYXRoIikKUmVwb3J0ZWQtYnk6IHN5emJvdCs0ZDUxNzA3NThmMzc2MjEw OTU0MkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tCkNjOiBEYXZpZCBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+CkNjOiBPbGl2ZXIgSGFydGtvcHAgPHNvY2tldGNhbkBoYXJ0a29wcC5uZXQ+ CkNjOiBMdWthcyBCdWx3YWhuIDxsdWthcy5idWx3YWhuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogSm91bmkgSG9nYW5kZXIgPGpvdW5pLmhvZ2FuZGVyQHVuaWtpZS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9zbGlwL3NsaXAuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvc2xpcC9zbGlwLmMgYi9kcml2ZXJzL25ldC9zbGlwL3NsaXAu YwppbmRleCA0ZDQ3OWUzYzgxN2QuLjJhOTFjMTkyNjU5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvc2xpcC9zbGlwLmMKKysrIGIvZHJpdmVycy9uZXQvc2xpcC9zbGlwLmMKQEAgLTg1NSw2ICs4 NTUsNyBAQCBzdGF0aWMgaW50IHNsaXBfb3BlbihzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KQogCXNs LT50dHkgPSBOVUxMOwogCXR0eS0+ZGlzY19kYXRhID0gTlVMTDsKIAljbGVhcl9iaXQoU0xGX0lO VVNFLCAmc2wtPmZsYWdzKTsKKwlzbF9mcmVlX25ldGRldihzbC0+ZGV2KTsKIAlmcmVlX25ldGRl dihzbC0+ZGV2KTsKIAogZXJyX2V4aXQ6Ci0tIAoyLjIwLjEKCgpGcm9tIGQyN2EyYmQ1MDE2NzBm NmQ2YWY5MjY0ZTU0OGRjMGE5MGI4OTI4ZjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAyMyBOb3YgMjAxOSAx MTo1Njo0OSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMjVdIHNjdHA6IGNhY2hlIG5ldG5zIGlu IHNjdHBfZXBfY29tbW9uCgpbIFVwc3RyZWFtIGNvbW1pdCAzMTI0MzQ2MTdjYjE2YmU1MTY2MzE2 Y2Y5ZDA4YmE3NjBiMTA0MmExIF0KClRoaXMgcGF0Y2ggaXMgdG8gZml4IGEgZGF0YS1yYWNlIHJl cG9ydGVkIGJ5IHN5emJvdDoKCiAgQlVHOiBLQ1NBTjogZGF0YS1yYWNlIGluIHNjdHBfYXNzb2Nf bWlncmF0ZSAvIHNjdHBfaGFzaF9vYmoKCiAgd3JpdGUgdG8gMHhmZmZmODg4MGI2N2MwMDIwIG9m IDggYnl0ZXMgYnkgdGFzayAxODkwOCBvbiBjcHUgMToKICAgIHNjdHBfYXNzb2NfbWlncmF0ZSsw eDFhNi8weDI5MCBuZXQvc2N0cC9hc3NvY2lvbGEuYzoxMDkxCiAgICBzY3RwX3NvY2tfbWlncmF0 ZSsweDhhYS8weDliMCBuZXQvc2N0cC9zb2NrZXQuYzo5NDY1CiAgICBzY3RwX2FjY2VwdCsweDNj OC8weDQ3MCBuZXQvc2N0cC9zb2NrZXQuYzo0OTE2CiAgICBpbmV0X2FjY2VwdCsweDdmLzB4MzYw IG5ldC9pcHY0L2FmX2luZXQuYzo3MzQKICAgIF9fc3lzX2FjY2VwdDQrMHgyMjQvMHg0MzAgbmV0 L3NvY2tldC5jOjE3NTQKICAgIF9fZG9fc3lzX2FjY2VwdCBuZXQvc29ja2V0LmM6MTc5NSBbaW5s aW5lXQogICAgX19zZV9zeXNfYWNjZXB0IG5ldC9zb2NrZXQuYzoxNzkyIFtpbmxpbmVdCiAgICBf X3g2NF9zeXNfYWNjZXB0KzB4NGUvMHg2MCBuZXQvc29ja2V0LmM6MTc5MgogICAgZG9fc3lzY2Fs bF82NCsweGNjLzB4MzcwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI5MAogICAgZW50cnlfU1lT Q0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQoKICByZWFkIHRvIDB4ZmZmZjg4ODBiNjdj MDAyMCBvZiA4IGJ5dGVzIGJ5IHRhc2sgMTIwMDMgb24gY3B1IDA6CiAgICBzY3RwX2hhc2hfb2Jq KzB4NGYvMHgyZDAgbmV0L3NjdHAvaW5wdXQuYzo4OTQKICAgIHJodF9rZXlfZ2V0X2hhc2ggaW5j bHVkZS9saW51eC9yaGFzaHRhYmxlLmg6MTMzIFtpbmxpbmVdCiAgICByaHRfa2V5X2hhc2hmbiBp bmNsdWRlL2xpbnV4L3JoYXNodGFibGUuaDoxNTkgW2lubGluZV0KICAgIHJodF9oZWFkX2hhc2hm biBpbmNsdWRlL2xpbnV4L3JoYXNodGFibGUuaDoxNzQgW2lubGluZV0KICAgIGhlYWRfaGFzaGZu IGxpYi9yaGFzaHRhYmxlLmM6NDEgW2lubGluZV0KICAgIHJoYXNodGFibGVfcmVoYXNoX29uZSBs aWIvcmhhc2h0YWJsZS5jOjI0NSBbaW5saW5lXQogICAgcmhhc2h0YWJsZV9yZWhhc2hfY2hhaW4g bGliL3JoYXNodGFibGUuYzoyNzYgW2lubGluZV0KICAgIHJoYXNodGFibGVfcmVoYXNoX3RhYmxl IGxpYi9yaGFzaHRhYmxlLmM6MzE2IFtpbmxpbmVdCiAgICByaHRfZGVmZXJyZWRfd29ya2VyKzB4 NDY4LzB4YWIwIGxpYi9yaGFzaHRhYmxlLmM6NDIwCiAgICBwcm9jZXNzX29uZV93b3JrKzB4M2Q0 LzB4ODkwIGtlcm5lbC93b3JrcXVldWUuYzoyMjY5CiAgICB3b3JrZXJfdGhyZWFkKzB4YTAvMHg4 MDAga2VybmVsL3dvcmtxdWV1ZS5jOjI0MTUKICAgIGt0aHJlYWQrMHgxZDQvMHgyMDAgZHJpdmVy cy9ibG9jay9hb2UvYW9lY21kLmM6MTI1MwogICAgcmV0X2Zyb21fZm9yaysweDFmLzB4MzAgYXJj aC94ODYvZW50cnkvZW50cnlfNjQuUzozNTIKCkl0IHdhcyBjYXVzZWQgYnkgcmhhc2h0YWJsZSBh Y2Nlc3MgYXNvYy0+YmFzZS5zayB3aGVuIHNjdHBfYXNzb2NfbWlncmF0ZQppcyBjaGFuZ2luZyBp dHMgdmFsdWUuIEhvd2V2ZXIsIHdoYXQgcmhhc2h0YWJsZSB3YW50cyBpcyBuZXRucyBmcm9tIGFz b2MKYmFzZS5zaywgYW5kIGZvciBhbiBhc29jLCBpdHMgbmV0bnMgd29uJ3QgY2hhbmdlIG9uY2Ug c2V0LiBTbyB3ZSBjYW4Kc2ltcGx5IGZpeCBpdCBieSBjYWNoaW5nIG5ldG5zIHNpbmNlIGNyZWF0 ZWQuCgpGaXhlczogZDZjMDI1NmE2MGU2ICgic2N0cDogYWRkIHRoZSByaGFzaHRhYmxlIGFwaXMg Zm9yIHNjdHAgZ2xvYmFsIHRyYW5zcG9ydCBoYXNodGFibGUiKQpSZXBvcnRlZC1ieTogc3l6Ym90 K2UzYjM1ZmU3OTE4ZmYwZWU0NzRlQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KU2lnbmVkLW9m Zi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBS aWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgotLS0KIGluY2x1 ZGUvbmV0L3NjdHAvc3RydWN0cy5oIHwgMyArKysKIG5ldC9zY3RwL2Fzc29jaW9sYS5jICAgICAg IHwgMSArCiBuZXQvc2N0cC9lbmRwb2ludG9sYS5jICAgICB8IDEgKwogbmV0L3NjdHAvaW5wdXQu YyAgICAgICAgICAgfCA0ICsrLS0KIDQgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NjdHAvc3RydWN0cy5oIGIv aW5jbHVkZS9uZXQvc2N0cC9zdHJ1Y3RzLmgKaW5kZXggNTAzZmJjM2NkODE5Li4yYjZmM2YxM2Q1 YmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjdHAvc3RydWN0cy5oCisrKyBiL2luY2x1ZGUv bmV0L3NjdHAvc3RydWN0cy5oCkBAIC0xMjM5LDYgKzEyMzksOSBAQCBzdHJ1Y3Qgc2N0cF9lcF9j b21tb24gewogCS8qIFdoYXQgc29ja2V0IGRvZXMgdGhpcyBlbmRwb2ludCBiZWxvbmcgdG8/ICAq LwogCXN0cnVjdCBzb2NrICpzazsKIAorCS8qIENhY2hlIG5ldG5zIGFuZCBpdCB3b24ndCBjaGFu Z2Ugb25jZSBzZXQgKi8KKwlzdHJ1Y3QgbmV0ICpuZXQ7CisKIAkvKiBUaGlzIGlzIHdoZXJlIHdl IHJlY2VpdmUgaW5ib3VuZCBjaHVua3MuICAqLwogCXN0cnVjdCBzY3RwX2lucQkgIGlucXVldWU7 CiAKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2Fzc29jaW9sYS5jIGIvbmV0L3NjdHAvYXNzb2Npb2xh LmMKaW5kZXggZDJmZmM5YTBiYTNhLi40MTgzOWI4NWMyNjggMTAwNjQ0Ci0tLSBhL25ldC9zY3Rw L2Fzc29jaW9sYS5jCisrKyBiL25ldC9zY3RwL2Fzc29jaW9sYS5jCkBAIC02NCw2ICs2NCw3IEBA IHN0YXRpYyBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqc2N0cF9hc3NvY2lhdGlvbl9pbml0KAog CS8qIERpc2NhcmRpbmcgY29uc3QgaXMgYXBwcm9wcmlhdGUgaGVyZS4gICovCiAJYXNvYy0+ZXAg PSAoc3RydWN0IHNjdHBfZW5kcG9pbnQgKillcDsKIAlhc29jLT5iYXNlLnNrID0gKHN0cnVjdCBz b2NrICopc2s7CisJYXNvYy0+YmFzZS5uZXQgPSBzb2NrX25ldChzayk7CiAKIAlzY3RwX2VuZHBv aW50X2hvbGQoYXNvYy0+ZXApOwogCXNvY2tfaG9sZChhc29jLT5iYXNlLnNrKTsKZGlmZiAtLWdp dCBhL25ldC9zY3RwL2VuZHBvaW50b2xhLmMgYi9uZXQvc2N0cC9lbmRwb2ludG9sYS5jCmluZGV4 IGVhNTMwNDlkMWRiNi4uMzA2N2RlYjBmYmVjIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9lbmRwb2lu dG9sYS5jCisrKyBiL25ldC9zY3RwL2VuZHBvaW50b2xhLmMKQEAgLTExMCw2ICsxMTAsNyBAQCBz dGF0aWMgc3RydWN0IHNjdHBfZW5kcG9pbnQgKnNjdHBfZW5kcG9pbnRfaW5pdChzdHJ1Y3Qgc2N0 cF9lbmRwb2ludCAqZXAsCiAKIAkvKiBSZW1lbWJlciB3aG8gd2UgYXJlIGF0dGFjaGVkIHRvLiAg Ki8KIAllcC0+YmFzZS5zayA9IHNrOworCWVwLT5iYXNlLm5ldCA9IHNvY2tfbmV0KHNrKTsKIAlz b2NrX2hvbGQoZXAtPmJhc2Uuc2spOwogCiAJcmV0dXJuIGVwOwpkaWZmIC0tZ2l0IGEvbmV0L3Nj dHAvaW5wdXQuYyBiL25ldC9zY3RwL2lucHV0LmMKaW5kZXggMjI3Nzk4MTU1OWQwLi40ZDJiY2Zj OWQ3ZjggMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2lucHV0LmMKKysrIGIvbmV0L3NjdHAvaW5wdXQu YwpAQCAtODgyLDcgKzg4Miw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHNjdHBfaGFzaF9jbXAoc3Ry dWN0IHJoYXNodGFibGVfY29tcGFyZV9hcmcgKmFyZywKIAlpZiAoIXNjdHBfdHJhbnNwb3J0X2hv bGQodCkpCiAJCXJldHVybiBlcnI7CiAKLQlpZiAoIW5ldF9lcShzb2NrX25ldCh0LT5hc29jLT5i YXNlLnNrKSwgeC0+bmV0KSkKKwlpZiAoIW5ldF9lcSh0LT5hc29jLT5iYXNlLm5ldCwgeC0+bmV0 KSkKIAkJZ290byBvdXQ7CiAJaWYgKHgtPmxwb3J0ICE9IGh0b25zKHQtPmFzb2MtPmJhc2UuYmlu ZF9hZGRyLnBvcnQpKQogCQlnb3RvIG91dDsKQEAgLTg5Nyw3ICs4OTcsNyBAQCBzdGF0aWMgaW5s aW5lIF9fdTMyIHNjdHBfaGFzaF9vYmooY29uc3Qgdm9pZCAqZGF0YSwgdTMyIGxlbiwgdTMyIHNl ZWQpCiB7CiAJY29uc3Qgc3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0ID0gZGF0YTsKIAotCXJldHVy biBzY3RwX2hhc2hmbihzb2NrX25ldCh0LT5hc29jLT5iYXNlLnNrKSwKKwlyZXR1cm4gc2N0cF9o YXNoZm4odC0+YXNvYy0+YmFzZS5uZXQsCiAJCQkgICBodG9ucyh0LT5hc29jLT5iYXNlLmJpbmRf YWRkci5wb3J0KSwKIAkJCSAgICZ0LT5pcGFkZHIsIHNlZWQpOwogfQotLSAKMi4yMC4xCgoKRnJv bSBiYzIyMDg1NTE0OTQzMjQyN2UxNThkYzVkOTZjZGY0MGMyY2VhMTdjIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+CkRhdGU6IFN1 biwgMSBEZWMgMjAxOSAxODo0MToyNCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjVdIG9wZW52 c3dpdGNoOiBkcm9wIHVubmVlZGVkIEJVR19PTigpIGluCiBvdnNfZmxvd19jbWRfYnVpbGRfaW5m bygpCgpbIFVwc3RyZWFtIGNvbW1pdCA4ZmZlYjAzZmJiYTNiNTk5NjkwYjM2MTQ2N2JmZDIzNzNl OGM0NTBmIF0KCkFsbCB0aGUgY2FsbGVycyBvZiBvdnNfZmxvd19jbWRfYnVpbGRfaW5mbygpIGFs cmVhZHkgZGVhbCB3aXRoCmVycm9yIHJldHVybiBjb2RlIGNvcnJlY3RseSwgc28gd2UgY2FuIGhh bmRsZSB0aGUgZXJyb3IgY29uZGl0aW9uCmluIGEgbW9yZSBncmFjZWZ1bGwgd2F5LiBTdGlsbCBk dW1wIGEgd2FybmluZyB0byBwcmVzZXJ2ZQpkZWJ1Z2dhYmlsaXR5LgoKdjEgLT4gdjI6CiAtIGNs YXJpZnkgdGhlIGNvbW1pdCBtZXNzYWdlCiAtIGNsZWFuIHRoZSBza2IgYW5kIHJlcG9ydCB0aGUg ZXJyb3IgKERhdmVNKQoKRml4ZXM6IGNjYjEzNTJlNzZjZiAoIm5ldDogQWRkIE9wZW4gdlN3aXRj aCBrZXJuZWwgY29tcG9uZW50cy4iKQpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5p QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYyB8IDUgKysrKy0KIDEgZmls ZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9u ZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYyBiL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jCmlu ZGV4IGNlMzg2MzMxOTY0Zi4uMjMwZTM2NDA2OTc2IDEwMDY0NAotLS0gYS9uZXQvb3BlbnZzd2l0 Y2gvZGF0YXBhdGguYworKysgYi9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYwpAQCAtODg2LDcg Kzg4NiwxMCBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm92c19mbG93X2NtZF9idWlsZF9pbmZv KGNvbnN0IHN0cnVjdCBzd19mbG93ICpmbG93LAogCXJldHZhbCA9IG92c19mbG93X2NtZF9maWxs X2luZm8oZmxvdywgZHBfaWZpbmRleCwgc2tiLAogCQkJCQlpbmZvLT5zbmRfcG9ydGlkLCBpbmZv LT5zbmRfc2VxLCAwLAogCQkJCQljbWQsIHVmaWRfZmxhZ3MpOwotCUJVR19PTihyZXR2YWwgPCAw KTsKKwlpZiAoV0FSTl9PTl9PTkNFKHJldHZhbCA8IDApKSB7CisJCWtmcmVlX3NrYihza2IpOwor CQlza2IgPSBFUlJfUFRSKHJldHZhbCk7CisJfQogCXJldHVybiBza2I7CiB9CiAKLS0gCjIuMjAu MQoKCkZyb20gOTE4ZjMxODdhZDhmYzZiNzQ3MmQwOTJiZTEzZDA0ODVmOTUyZDlhOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpE YXRlOiBTdW4sIDEgRGVjIDIwMTkgMTg6NDE6MjUgKzAxMDAKU3ViamVjdDogW1BBVENIIDEzLzI1 XSBvcGVudnN3aXRjaDogcmVtb3ZlIGFub3RoZXIgQlVHX09OKCkKClsgVXBzdHJlYW0gY29tbWl0 IDhhNTc0Zjg2NjUyYTQ1NDBhMjQzMzk0NmJhODI2Y2NiODdmMzk4Y2MgXQoKSWYgd2UgY2FuJ3Qg YnVpbGQgdGhlIGZsb3cgZGVsIG5vdGlmaWNhdGlvbiwgd2UgY2FuIHNpbXBseSBkZWxldGUKdGhl IGZsb3csIG5vIG5lZWQgdG8gY3Jhc2ggdGhlIGtlcm5lbC4gU3RpbGwga2VlcCBhIFdBUk5fT04g dG8KcHJlc2VydmUgZGVidWdnYWJpbGl0eS4KCk5vdGU6IHRoZSBCVUdfT04oKSBwcmVkYXRlcyB0 aGUgRml4ZXMgdGFnLCBidXQgdGhpcyBjaGFuZ2UKY2FuIGJlIGFwcGxpZWQgb25seSBhZnRlciB0 aGUgbWVudGlvbmVkIGNvbW1pdC4KCnYxIC0+IHYyOgogLSBkbyBub3QgbGVhayBhbiBza2Igb24g ZXJyb3IKCkZpeGVzOiBhZWQwNjc3ODNlNTAgKCJvcGVudnN3aXRjaDogTWluaW1pemUgb3ZzX2Zs b3dfY21kX2RlbCBjcml0aWNhbCBzZWN0aW9uLiIpClNpZ25lZC1vZmYtYnk6IFBhb2xvIEFiZW5p IDxwYWJlbmlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jIHwgNiArKysr Ky0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYyBiL25ldC9vcGVudnN3aXRjaC9kYXRh cGF0aC5jCmluZGV4IDIzMGUzNjQwNjk3Ni4uMjNmNjdiOGZkZWFhIDEwMDY0NAotLS0gYS9uZXQv b3BlbnZzd2l0Y2gvZGF0YXBhdGguYworKysgYi9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYwpA QCAtMTM1Myw3ICsxMzUzLDEwIEBAIHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX2RlbChzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCQkJCQkJICAgICBPVlNfRkxP V19DTURfREVMLAogCQkJCQkJICAgICB1ZmlkX2ZsYWdzKTsKIAkJCXJjdV9yZWFkX3VubG9jaygp OwotCQkJQlVHX09OKGVyciA8IDApOworCQkJaWYgKFdBUk5fT05fT05DRShlcnIgPCAwKSkgewor CQkJCWtmcmVlX3NrYihyZXBseSk7CisJCQkJZ290byBvdXRfZnJlZTsKKwkJCX0KIAogCQkJb3Zz X25vdGlmeSgmZHBfZmxvd19nZW5sX2ZhbWlseSwgcmVwbHksIGluZm8pOwogCQl9IGVsc2UgewpA QCAtMTM2MSw2ICsxMzY0LDcgQEAgc3RhdGljIGludCBvdnNfZmxvd19jbWRfZGVsKHN0cnVjdCBz a19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pCiAJCX0KIAl9CiAKK291dF9mcmVl OgogCW92c19mbG93X2ZyZWUoZmxvdywgdHJ1ZSk7CiAJcmV0dXJuIDA7CiB1bmxvY2s6Ci0tIAoy LjIwLjEKCgpGcm9tIGZkNmRkZDk2NTMxMzdlYjc1NDM4YWUyM2E2YjNkODE1NDAwN2MyN2MgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNr aUBuZXRyb25vbWUuY29tPgpEYXRlOiBXZWQsIDI3IE5vdiAyMDE5IDEyOjE2OjM5IC0wODAwClN1 YmplY3Q6IFtQQVRDSCAxNC8yNV0gbmV0L3RsczogdGFrZSBpbnRvIGFjY291bnQgdGhhdCBicGZf ZXhlY190eF92ZXJkaWN0KCkKIG1heSBmcmVlIHRoZSByZWNvcmQKClsgVXBzdHJlYW0gY29tbWl0 IGMzMjllZjk2ODRkZTk1MTdkODJhZjViNDc1OGM5ZTFiNjRhOGExMWEgXQoKYnBmX2V4ZWNfdHhf dmVyZGljdCgpIG1heSBmcmVlIHRoZSByZWNvcmQgaWYgdGxzX3B1c2hfcmVjb3JkKCkKZmFpbHMs IG9yIGlmIHRoZSBlbnRpcmUgcmVjb3JkIGdvdCBjb25zdW1lZCBieSBCUEYuIFJlLWNoZWNrCmN0 eC0+b3Blbl9yZWMgYmVmb3JlIHRvdWNoaW5nIHRoZSBkYXRhLgoKRml4ZXM6IGQzYjE4YWQzMWY5 MyAoInRsczogYWRkIGJwZiBzdXBwb3J0IHRvIHNrX21zZyBoYW5kbGluZyIpClNpZ25lZC1vZmYt Ynk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpSZXZpZXdl ZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AbmV0cm9ub21lLmNvbT4KQWNrZWQtYnk6 IEpvaG4gRmFzdGFiZW5kIDxqb2huLmZhc3RhYmVuZEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGxzL3Rsc19z dy5jIHwgMTMgKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rsc19zdy5jIGIvbmV0L3Rscy90 bHNfc3cuYwppbmRleCAzMTk3MzVkNWMwODQuLmNmNzE1ZTEyNDgwNSAxMDA2NDQKLS0tIGEvbmV0 L3Rscy90bHNfc3cuYworKysgYi9uZXQvdGxzL3Rsc19zdy5jCkBAIC05NzksNyArOTc5LDcgQEAg aW50IHRsc19zd19zZW5kbXNnKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBz aXplX3Qgc2l6ZSkKIAkJCQkJbnVtX2FzeW5jKys7CiAJCQkJZWxzZSBpZiAocmV0ID09IC1FTk9N RU0pCiAJCQkJCWdvdG8gd2FpdF9mb3JfbWVtb3J5OwotCQkJCWVsc2UgaWYgKHJldCA9PSAtRU5P U1BDKQorCQkJCWVsc2UgaWYgKGN0eC0+b3Blbl9yZWMgJiYgcmV0ID09IC1FTk9TUEMpCiAJCQkJ CWdvdG8gcm9sbGJhY2tfaXRlcjsKIAkJCQllbHNlIGlmIChyZXQgIT0gLUVBR0FJTikKIAkJCQkJ Z290byBzZW5kX2VuZDsKQEAgLTEwNDgsMTEgKzEwNDgsMTIgQEAgaW50IHRsc19zd19zZW5kbXNn KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3Qgc2l6ZSkKIAkJcmV0 ID0gc2tfc3RyZWFtX3dhaXRfbWVtb3J5KHNrLCAmdGltZW8pOwogCQlpZiAocmV0KSB7CiB0cmlt X3NnbDoKLQkJCXRsc190cmltX2JvdGhfbXNncyhzaywgb3JpZ19zaXplKTsKKwkJCWlmIChjdHgt Pm9wZW5fcmVjKQorCQkJCXRsc190cmltX2JvdGhfbXNncyhzaywgb3JpZ19zaXplKTsKIAkJCWdv dG8gc2VuZF9lbmQ7CiAJCX0KIAotCQlpZiAobXNnX2VuLT5zZy5zaXplIDwgcmVxdWlyZWRfc2l6 ZSkKKwkJaWYgKGN0eC0+b3Blbl9yZWMgJiYgbXNnX2VuLT5zZy5zaXplIDwgcmVxdWlyZWRfc2l6 ZSkKIAkJCWdvdG8gYWxsb2NfZW5jcnlwdGVkOwogCX0KIApAQCAtMTE4NSwxMSArMTE4NiwxMyBA QCBzdGF0aWMgaW50IHRsc19zd19kb19zZW5kcGFnZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBw YWdlICpwYWdlLAogd2FpdF9mb3JfbWVtb3J5OgogCQlyZXQgPSBza19zdHJlYW1fd2FpdF9tZW1v cnkoc2ssICZ0aW1lbyk7CiAJCWlmIChyZXQpIHsKLQkJCXRsc190cmltX2JvdGhfbXNncyhzaywg bXNnX3BsLT5zZy5zaXplKTsKKwkJCWlmIChjdHgtPm9wZW5fcmVjKQorCQkJCXRsc190cmltX2Jv dGhfbXNncyhzaywgbXNnX3BsLT5zZy5zaXplKTsKIAkJCWdvdG8gc2VuZHBhZ2VfZW5kOwogCQl9 CiAKLQkJZ290byBhbGxvY19wYXlsb2FkOworCQlpZiAoY3R4LT5vcGVuX3JlYykKKwkJCWdvdG8g YWxsb2NfcGF5bG9hZDsKIAl9CiAKIAlpZiAobnVtX2FzeW5jKSB7Ci0tIAoyLjIwLjEKCgpGcm9t IGExZTFmODJkNzU2NDA5NWEwNjJmZGY2YmZiYWQzOWZiNzMwMWRlZWQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUu Y29tPgpEYXRlOiBXZWQsIDI3IE5vdiAyMDE5IDEyOjE2OjQwIC0wODAwClN1YmplY3Q6IFtQQVRD SCAxNS8yNV0gbmV0L3RsczogZnJlZSB0aGUgcmVjb3JkIG9uIGVuY3J5cHRpb24gZXJyb3IKClsg VXBzdHJlYW0gY29tbWl0IGQxMDUyM2QwYjNkNzgxNTNlZTU4ZDE5ODUzY2VkMjZjOTAwNGM4YzQg XQoKV2hlbiB0bHNfZG9fZW5jcnlwdGlvbigpIGZhaWxzIHRoZSBTRyBsaXN0cyBhcmUgbGVmdCB3 aXRoIHRoZQpTR19FTkQgYW5kIFNHX0NIQUlOIG1hcmtzIGluIHBsYWNlLiBPbmUgY291bGQgaG9w ZSB0aGF0IG9uY2UKZW5jcnlwdGlvbiBmYWlscyB3ZSB3aWxsIG5ldmVyIHNlZSB0aGUgcmVjb3Jk IGFnYWluLCBidXQgdGhhdAppcyBpbiBmYWN0IG5vdCB0cnVlLiBDb21taXQgZDNiMThhZDMxZjkz ICgidGxzOiBhZGQgYnBmIHN1cHBvcnQKdG8gc2tfbXNnIGhhbmRsaW5nIikgYWRkZWQgc3BlY2lh bCBoYW5kbGluZyB0byBFTk9NRU0gYW5kIEVOT1NQQwplcnJvcnMgd2hpY2ggbWVhbiB3ZSBtYXkg c2VlIHRoZSBzYW1lIHJlY29yZCByZS1zdWJtaXR0ZWQuCgpBcyBzdWdnZXN0ZWQgYnkgSm9obiBm cmVlIHRoZSByZWNvcmQsIHRoZSBCUEYgY29kZSBpcyBhbHJlYWR5CmRvaW5nIGp1c3QgdGhhdC4K ClJlcG9ydGVkLWJ5OiBzeXpib3QrZGYwZDRlYzEyMzMyNjYxZGQxZjlAc3l6a2FsbGVyLmFwcHNw b3RtYWlsLmNvbQpGaXhlczogZDNiMThhZDMxZjkzICgidGxzOiBhZGQgYnBmIHN1cHBvcnQgdG8g c2tfbXNnIGhhbmRsaW5nIikKU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtp Y2luc2tpQG5ldHJvbm9tZS5jb20+ClJldmlld2VkLWJ5OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhv cm1hbkBuZXRyb25vbWUuY29tPgpBY2tlZC1ieTogSm9obiBGYXN0YWJlbmQgPGpvaG4uZmFzdGFi ZW5kQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC90bHMvdGxzX3N3LmMgfCAxMCArKysrKysrKy0tCiAxIGZpbGUg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC90bHMvdGxzX3N3LmMgYi9uZXQvdGxzL3Rsc19zdy5jCmluZGV4IGNmNzE1ZTEyNDgwNS4uNmVm NzA0NDdmNThkIDEwMDY0NAotLS0gYS9uZXQvdGxzL3Rsc19zdy5jCisrKyBiL25ldC90bHMvdGxz X3N3LmMKQEAgLTc2Niw4ICs3NjYsMTQgQEAgc3RhdGljIGludCBicGZfZXhlY190eF92ZXJkaWN0 KHN0cnVjdCBza19tc2cgKm1zZywgc3RydWN0IHNvY2sgKnNrLAogCiAJcG9saWN5ID0gIShmbGFn cyAmIE1TR19TRU5EUEFHRV9OT1BPTElDWSk7CiAJcHNvY2sgPSBza19wc29ja19nZXQoc2spOwot CWlmICghcHNvY2sgfHwgIXBvbGljeSkKLQkJcmV0dXJuIHRsc19wdXNoX3JlY29yZChzaywgZmxh Z3MsIHJlY29yZF90eXBlKTsKKwlpZiAoIXBzb2NrIHx8ICFwb2xpY3kpIHsKKwkJZXJyID0gdGxz X3B1c2hfcmVjb3JkKHNrLCBmbGFncywgcmVjb3JkX3R5cGUpOworCQlpZiAoZXJyKSB7CisJCQkq Y29waWVkIC09IHNrX21zZ19mcmVlKHNrLCBtc2cpOworCQkJdGxzX2ZyZWVfb3Blbl9yZWMoc2sp OworCQl9CisJCXJldHVybiBlcnI7CisJfQogbW9yZV9kYXRhOgogCWVub3NwYyA9IHNrX21zZ19m dWxsKG1zZyk7CiAJaWYgKHBzb2NrLT5ldmFsID09IF9fU0tfTk9ORSkgewotLSAKMi4yMC4xCgoK RnJvbSA1MjlmMGZiMmNiNjZlMWRkYTc4ZDA0NDJlYjFlZWRjNWY5YzU5MTQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9u b21lLmNvbT4KRGF0ZTogV2VkLCAyNyBOb3YgMjAxOSAxMjoxNjo0MSAtMDgwMApTdWJqZWN0OiBb UEFUQ0ggMTYvMjVdIG5ldDogc2ttc2c6IGZpeCBUTFMgMS4zIGNyYXNoIHdpdGggZnVsbCBza19t c2cKClsgVXBzdHJlYW0gY29tbWl0IDAzMTA5N2Q5ZTA3OWU0MGRjZTQwMTAzMWQxMDEyZTgzZDgw ZWFmMDEgXQoKVExTIDEuMyBzdGFydGVkIHVzaW5nIHRoZSBlbnRyeSBhdCB0aGUgZW5kIG9mIHRo ZSBTRyBhcnJheQpmb3IgY2hhaW5pbmctaW4gdGhlIHNpbmdsZSBieXRlIGNvbnRlbnQgdHlwZSBl bnRyeS4gVGhpcyBtb3N0bHkKd29ya3M6CgpbIEUgRSBFIEUgRSBFIC4gLiBdCiAgXiAgICAgICAg ICAgXgogICBzdGFydCAgICAgICBlbmQKCiAgICAgICAgICAgICAgICAgRSA8IGNvbnRlbnQgdHlw ZQogICAgICAgICAgICAgICAvClsgRSBFIEUgRSBFIEUgQyAuIF0KICBeICAgICAgICAgICBeCiAg IHN0YXJ0ICAgICAgIGVuZAoKKFdoZXJlIEUgZGVub3RlcyBhIHBvcHVsYXRlZCBTRyBlbnRyeTsg QyBkZW5vdGVzIGEgY2hhaW5pbmcgZW50cnkuKQoKSWYgdGhlIGFycmF5IGlzIGZ1bGwsIGhvd2V2 ZXIsIHRoZSBlbmQgd2lsbCBwb2ludCB0byB0aGUgc3RhcnQ6CgpbIEUgRSBFIEUgRSBFIEUgRSBd CiAgXgogICBzdGFydAogICBlbmQKCkFuZCB3ZSBlbmQgdXAgb3ZlcndyaXRpbmcgdGhlIHN0YXJ0 OgoKICAgIEUgPCBjb250ZW50IHR5cGUKICAgLwpbIEMgRSBFIEUgRSBFIEUgRSBdCiAgXgogICBz dGFydAogICBlbmQKClRoZSBzZyBhcnJheSBpcyBzdXBwb3NlZCB0byBiZSBhIGNpcmN1bGFyIGJ1 ZmZlciB3aXRoIHN0YXJ0IGFuZAplbmQgbWFya2VycyBwb2ludGluZyBhbnl3aGVyZS4gSW4gY2Fz ZSB3aGVyZSBzdGFydCA+IGVuZAooaS5lLiB0aGUgY2lyY3VsYXIgYnVmZmVyIGhhcyAid3JhcHBl ZCIpIHRoZXJlIGlzIGFuIGV4dHJhIGVudHJ5CnJlc2VydmVkIGF0IHRoZSBlbmQgdG8gY2hhaW4g dGhlIHR3byBoYWx2ZXMgdG9nZXRoZXIuCgpbIEUgRSBFIEUgRSBFIC4gLiBsIF0KCihXaGVyZSBs IGlzIHRoZSByZXNlcnZlZCBlbnRyeSBmb3IgImxvb3BpbmciIGJhY2sgdG8gZnJvbnQuCgpBcyBz dWdnZXN0ZWQgYnkgSm9obiwgbGV0J3MgcmVzZXJ2ZSBhbm90aGVyIGVudHJ5IGZvciBjaGFpbmlu ZwpTRyBlbnRyaWVzIGFmdGVyIHRoZSBtYWluIGNpcmN1bGFyIGJ1ZmZlci4gTm90ZSB0aGF0IHRo aXMgZW50cnkKaGFzIHRvIGJlIHBvaW50ZWQgdG8gYnkgdGhlIGVuZCBlbnRyeSBzbyBpdHMgcG9z aXRpb24gaXMgbm90IGZpeGVkLgoKRXhhbXBsZXMgb2YgZnVsbCBtZXNzYWdlczoKClsgRSBFIEUg RSBFIEUgRSBFIC4gbCBdCiAgXiAgICAgICAgICAgICAgIF4KICAgc3RhcnQgICAgICAgICAgIGVu ZAoKICAgPC0tLS0tLS0tLS0tLS0tLS4KWyBFIEUgLiBFIEUgRSBFIEUgRSBsIF0KICAgICAgXiBe CiAgIGVuZCAgIHN0YXJ0CgpOb3cgdGhlIGVuZCB3aWxsIGFsd2F5cyBwb2ludCB0byBhbiB1bnVz ZWQgZW50cnksIHNvIFRMUyAxLjMKY2FuIGFsd2F5cyB1c2UgaXQuCgpGaXhlczogMTMwYjM5MmM2 Y2Q2ICgibmV0OiB0bHM6IEFkZCB0bHMgMS4zIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBKYWt1 YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IFNp bW9uIEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L3Nr bXNnLmggfCAyNiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogbmV0L2NvcmUvZmlsdGVyLmMg ICAgIHwgIDggKysrKy0tLS0KIG5ldC9jb3JlL3NrbXNnLmMgICAgICB8ICAyICstCiBuZXQvaXB2 NC90Y3BfYnBmLmMgICAgfCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NrbXNnLmggYi9p bmNsdWRlL2xpbnV4L3NrbXNnLmgKaW5kZXggY2U3MDU1MjU5ODc3Li5kYTRjYWZmN2VmYTQgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc2ttc2cuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NrbXNn LmgKQEAgLTE0LDYgKzE0LDcgQEAKICNpbmNsdWRlIDxuZXQvc3RycGFyc2VyLmg+CiAKICNkZWZp bmUgTUFYX01TR19GUkFHUwkJCU1BWF9TS0JfRlJBR1MKKyNkZWZpbmUgTlJfTVNHX0ZSQUdfSURT CQkJKE1BWF9NU0dfRlJBR1MgKyAxKQogCiBlbnVtIF9fc2tfYWN0aW9uIHsKIAlfX1NLX0RST1Ag PSAwLApAQCAtMjksMTEgKzMwLDEzIEBAIHN0cnVjdCBza19tc2dfc2cgewogCXUzMgkJCQlzaXpl OwogCXUzMgkJCQljb3B5YnJlYWs7CiAJYm9vbAkJCQljb3B5W01BWF9NU0dfRlJBR1NdOwotCS8q IFRoZSBleHRyYSBlbGVtZW50IGlzIHVzZWQgZm9yIGNoYWluaW5nIHRoZSBmcm9udCBhbmQgc2Vj dGlvbnMgd2hlbgotCSAqIHRoZSBsaXN0IGJlY29tZXMgcGFydGl0aW9uZWQgKGUuZy4gZW5kIDwg c3RhcnQpLiBUaGUgY3J5cHRvIEFQSXMKLQkgKiByZXF1aXJlIHRoZSBjaGFpbmluZy4KKwkvKiBU aGUgZXh0cmEgdHdvIGVsZW1lbnRzOgorCSAqIDEpIHVzZWQgZm9yIGNoYWluaW5nIHRoZSBmcm9u dCBhbmQgc2VjdGlvbnMgd2hlbiB0aGUgbGlzdCBiZWNvbWVzCisJICogICAgcGFydGl0aW9uZWQg KGUuZy4gZW5kIDwgc3RhcnQpLiBUaGUgY3J5cHRvIEFQSXMgcmVxdWlyZSB0aGUKKwkgKiAgICBj aGFpbmluZzsKKwkgKiAyKSB0byBjaGFpbiB0YWlsZXIgU0cgZW50cmllcyBhZnRlciB0aGUgbWVz c2FnZS4KIAkgKi8KLQlzdHJ1Y3Qgc2NhdHRlcmxpc3QJCWRhdGFbTUFYX01TR19GUkFHUyArIDFd OworCXN0cnVjdCBzY2F0dGVybGlzdAkJZGF0YVtNQVhfTVNHX0ZSQUdTICsgMl07CiB9OwogCiAv KiBVQVBJIGluIGZpbHRlci5jIGRlcGVuZHMgb24gc3RydWN0IHNrX21zZ19zZyBiZWluZyBmaXJz dCBlbGVtZW50LiAqLwpAQCAtMTQxLDEzICsxNDQsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIHNr X21zZ19hcHBseV9ieXRlcyhzdHJ1Y3Qgc2tfcHNvY2sgKnBzb2NrLCB1MzIgYnl0ZXMpCiAKIHN0 YXRpYyBpbmxpbmUgdTMyIHNrX21zZ19pdGVyX2Rpc3QodTMyIHN0YXJ0LCB1MzIgZW5kKQogewot CXJldHVybiBlbmQgPj0gc3RhcnQgPyBlbmQgLSBzdGFydCA6IGVuZCArIChNQVhfTVNHX0ZSQUdT IC0gc3RhcnQpOworCXJldHVybiBlbmQgPj0gc3RhcnQgPyBlbmQgLSBzdGFydCA6IGVuZCArIChO Ul9NU0dfRlJBR19JRFMgLSBzdGFydCk7CiB9CiAKICNkZWZpbmUgc2tfbXNnX2l0ZXJfdmFyX3By ZXYodmFyKQkJCVwKIAlkbyB7CQkJCQkJXAogCQlpZiAodmFyID09IDApCQkJCVwKLQkJCXZhciA9 IE1BWF9NU0dfRlJBR1MgLSAxOwlcCisJCQl2YXIgPSBOUl9NU0dfRlJBR19JRFMgLSAxOwlcCiAJ CWVsc2UJCQkJCVwKIAkJCXZhci0tOwkJCQlcCiAJfSB3aGlsZSAoMCkKQEAgLTE1NSw3ICsxNTgs NyBAQCBzdGF0aWMgaW5saW5lIHUzMiBza19tc2dfaXRlcl9kaXN0KHUzMiBzdGFydCwgdTMyIGVu ZCkKICNkZWZpbmUgc2tfbXNnX2l0ZXJfdmFyX25leHQodmFyKQkJCVwKIAlkbyB7CQkJCQkJXAog CQl2YXIrKzsJCQkJCVwKLQkJaWYgKHZhciA9PSBNQVhfTVNHX0ZSQUdTKQkJXAorCQlpZiAodmFy ID09IE5SX01TR19GUkFHX0lEUykJCVwKIAkJCXZhciA9IDA7CQkJXAogCX0gd2hpbGUgKDApCiAK QEAgLTE3Miw5ICsxNzUsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2tfbXNnX2NsZWFyX21ldGEo c3RydWN0IHNrX21zZyAqbXNnKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc2tfbXNnX2luaXQoc3Ry dWN0IHNrX21zZyAqbXNnKQogewotCUJVSUxEX0JVR19PTihBUlJBWV9TSVpFKG1zZy0+c2cuZGF0 YSkgLSAxICE9IE1BWF9NU0dfRlJBR1MpOworCUJVSUxEX0JVR19PTihBUlJBWV9TSVpFKG1zZy0+ c2cuZGF0YSkgLSAxICE9IE5SX01TR19GUkFHX0lEUyk7CiAJbWVtc2V0KG1zZywgMCwgc2l6ZW9m KCptc2cpKTsKLQlzZ19pbml0X21hcmtlcihtc2ctPnNnLmRhdGEsIE1BWF9NU0dfRlJBR1MpOwor CXNnX2luaXRfbWFya2VyKG1zZy0+c2cuZGF0YSwgTlJfTVNHX0ZSQUdfSURTKTsKIH0KIAogc3Rh dGljIGlubGluZSB2b2lkIHNrX21zZ194ZmVyKHN0cnVjdCBza19tc2cgKmRzdCwgc3RydWN0IHNr X21zZyAqc3JjLApAQCAtMTk1LDE0ICsxOTgsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIHNrX21z Z194ZmVyX2Z1bGwoc3RydWN0IHNrX21zZyAqZHN0LCBzdHJ1Y3Qgc2tfbXNnICpzcmMpCiAKIHN0 YXRpYyBpbmxpbmUgYm9vbCBza19tc2dfZnVsbChjb25zdCBzdHJ1Y3Qgc2tfbXNnICptc2cpCiB7 Ci0JcmV0dXJuIChtc2ctPnNnLmVuZCA9PSBtc2ctPnNnLnN0YXJ0KSAmJiBtc2ctPnNnLnNpemU7 CisJcmV0dXJuIHNrX21zZ19pdGVyX2Rpc3QobXNnLT5zZy5zdGFydCwgbXNnLT5zZy5lbmQpID09 IE1BWF9NU0dfRlJBR1M7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdTMyIHNrX21zZ19lbGVtX3VzZWQo Y29uc3Qgc3RydWN0IHNrX21zZyAqbXNnKQogewotCWlmIChza19tc2dfZnVsbChtc2cpKQotCQly ZXR1cm4gTUFYX01TR19GUkFHUzsKLQogCXJldHVybiBza19tc2dfaXRlcl9kaXN0KG1zZy0+c2cu c3RhcnQsIG1zZy0+c2cuZW5kKTsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZmlsdGVyLmMg Yi9uZXQvY29yZS9maWx0ZXIuYwppbmRleCAzZmVkNTc1NTQ5NGIuLjZkMDExMWJmZGI0YSAxMDA2 NDQKLS0tIGEvbmV0L2NvcmUvZmlsdGVyLmMKKysrIGIvbmV0L2NvcmUvZmlsdGVyLmMKQEAgLTIy OTksNyArMjI5OSw3IEBAIEJQRl9DQUxMXzQoYnBmX21zZ19wdWxsX2RhdGEsIHN0cnVjdCBza19t c2cgKiwgbXNnLCB1MzIsIHN0YXJ0LAogCVdBUk5fT05fT05DRShsYXN0X3NnZSA9PSBmaXJzdF9z Z2UpOwogCXNoaWZ0ID0gbGFzdF9zZ2UgPiBmaXJzdF9zZ2UgPwogCQlsYXN0X3NnZSAtIGZpcnN0 X3NnZSAtIDEgOgotCQlNQVhfU0tCX0ZSQUdTIC0gZmlyc3Rfc2dlICsgbGFzdF9zZ2UgLSAxOwor CQlOUl9NU0dfRlJBR19JRFMgLSBmaXJzdF9zZ2UgKyBsYXN0X3NnZSAtIDE7CiAJaWYgKCFzaGlm dCkKIAkJZ290byBvdXQ7CiAKQEAgLTIzMDgsOCArMjMwOCw4IEBAIEJQRl9DQUxMXzQoYnBmX21z Z19wdWxsX2RhdGEsIHN0cnVjdCBza19tc2cgKiwgbXNnLCB1MzIsIHN0YXJ0LAogCWRvIHsKIAkJ dTMyIG1vdmVfZnJvbTsKIAotCQlpZiAoaSArIHNoaWZ0ID49IE1BWF9NU0dfRlJBR1MpCi0JCQlt b3ZlX2Zyb20gPSBpICsgc2hpZnQgLSBNQVhfTVNHX0ZSQUdTOworCQlpZiAoaSArIHNoaWZ0ID49 IE5SX01TR19GUkFHX0lEUykKKwkJCW1vdmVfZnJvbSA9IGkgKyBzaGlmdCAtIE5SX01TR19GUkFH X0lEUzsKIAkJZWxzZQogCQkJbW92ZV9mcm9tID0gaSArIHNoaWZ0OwogCQlpZiAobW92ZV9mcm9t ID09IG1zZy0+c2cuZW5kKQpAQCAtMjMyMyw3ICsyMzIzLDcgQEAgQlBGX0NBTExfNChicGZfbXNn X3B1bGxfZGF0YSwgc3RydWN0IHNrX21zZyAqLCBtc2csIHUzMiwgc3RhcnQsCiAJfSB3aGlsZSAo MSk7CiAKIAltc2ctPnNnLmVuZCA9IG1zZy0+c2cuZW5kIC0gc2hpZnQgPiBtc2ctPnNnLmVuZCA/ Ci0JCSAgICAgIG1zZy0+c2cuZW5kIC0gc2hpZnQgKyBNQVhfTVNHX0ZSQUdTIDoKKwkJICAgICAg bXNnLT5zZy5lbmQgLSBzaGlmdCArIE5SX01TR19GUkFHX0lEUyA6CiAJCSAgICAgIG1zZy0+c2cu ZW5kIC0gc2hpZnQ7CiBvdXQ6CiAJbXNnLT5kYXRhID0gc2dfdmlydCgmbXNnLT5zZy5kYXRhW2Zp cnN0X3NnZV0pICsgc3RhcnQgLSBvZmZzZXQ7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9za21zZy5j IGIvbmV0L2NvcmUvc2ttc2cuYwppbmRleCBhZDMxZTRlNTNkMGEuLjA2NzVkMDIyNTg0ZSAxMDA2 NDQKLS0tIGEvbmV0L2NvcmUvc2ttc2cuYworKysgYi9uZXQvY29yZS9za21zZy5jCkBAIC00MjEs NyArNDIxLDcgQEAgc3RhdGljIGludCBza19wc29ja19za2JfaW5ncmVzcyhzdHJ1Y3Qgc2tfcHNv Y2sgKnBzb2NrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCWNvcGllZCA9IHNrYi0+bGVuOwogCW1z Zy0+c2cuc3RhcnQgPSAwOwogCW1zZy0+c2cuc2l6ZSA9IGNvcGllZDsKLQltc2ctPnNnLmVuZCA9 IG51bV9zZ2UgPT0gTUFYX01TR19GUkFHUyA/IDAgOiBudW1fc2dlOworCW1zZy0+c2cuZW5kID0g bnVtX3NnZTsKIAltc2ctPnNrYiA9IHNrYjsKIAogCXNrX3Bzb2NrX3F1ZXVlX21zZyhwc29jaywg bXNnKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9icGYuYyBiL25ldC9pcHY0L3RjcF9icGYu YwppbmRleCA4YTU2ZTA5Y2ZiMGUuLmUzODcwNTE2NWFjOSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQv dGNwX2JwZi5jCisrKyBiL25ldC9pcHY0L3RjcF9icGYuYwpAQCAtMzAxLDcgKzMwMSw3IEBAIEVY UE9SVF9TWU1CT0xfR1BMKHRjcF9icGZfc2VuZG1zZ19yZWRpcik7CiBzdGF0aWMgaW50IHRjcF9i cGZfc2VuZF92ZXJkaWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX3Bzb2NrICpwc29jaywK IAkJCQlzdHJ1Y3Qgc2tfbXNnICptc2csIGludCAqY29waWVkLCBpbnQgZmxhZ3MpCiB7Ci0JYm9v bCBjb3JrID0gZmFsc2UsIGVub3NwYyA9IG1zZy0+c2cuc3RhcnQgPT0gbXNnLT5zZy5lbmQ7CisJ Ym9vbCBjb3JrID0gZmFsc2UsIGVub3NwYyA9IHNrX21zZ19mdWxsKG1zZyk7CiAJc3RydWN0IHNv Y2sgKnNrX3JlZGlyOwogCXUzMiB0b3NlbmQsIGRlbHRhID0gMDsKIAlpbnQgcmV0OwotLSAKMi4y MC4xCgoKRnJvbSA4NTIzODk3MmE3ODhlZmI2MjI4MmY5ZTM1ZGIyNDk1Mjg1MDVkN2IzIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lA bmV0cm9ub21lLmNvbT4KRGF0ZTogV2VkLCAyNyBOb3YgMjAxOSAxMjoxNjo0MiAtMDgwMApTdWJq ZWN0OiBbUEFUQ0ggMTcvMjVdIHNlbGZ0ZXN0cy90bHM6IGFkZCBhIHRlc3QgZm9yIGZyYWdtZW50 ZWQgbWVzc2FnZXMKClsgVXBzdHJlYW0gY29tbWl0IDY1MTkwZjc3NDI0ZDdiODJjNGFhZDczMjZj OWNjZTZiZDkxYTJmY2MgXQoKQWRkIGEgc2VuZG1zZyB0ZXN0IHdpdGggdmVyeSBmcmFnbWVudGVk IG1lc3NhZ2VzLiBUaGlzIHNob3VsZApmaWxsIHVwIHNrX21zZyBhbmQgdGVzdCB0aGUgYm91bmRh cnkgY29uZGl0aW9ucy4KClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNp bnNraUBuZXRyb25vbWUuY29tPgpSZXZpZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3Jt YW5AbmV0cm9ub21lLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90bHMuYyB8IDYw ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2MCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5j IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jCmluZGV4IDFjOGYxOTRkNjU1Ni4u NDZhYmNhZTQ3ZGVlIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxz LmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jCkBAIC0yNjgsNiArMjY4 LDM4IEBAIFRFU1RfRih0bHMsIHNlbmRtc2dfc2luZ2xlKQogCUVYUEVDVF9FUShtZW1jbXAoYnVm LCB0ZXN0X3N0ciwgc2VuZF9sZW4pLCAwKTsKIH0KIAorI2RlZmluZSBNQVhfRlJBR1MJNjQKKyNk ZWZpbmUgU0VORF9MRU4JMTMKK1RFU1RfRih0bHMsIHNlbmRtc2dfZnJhZ21lbnRlZCkKK3sKKwlj aGFyIGNvbnN0ICp0ZXN0X3N0ciA9ICJ0ZXN0X3NlbmRtc2ciOworCWNoYXIgYnVmW1NFTkRfTEVO ICogTUFYX0ZSQUdTXTsKKwlzdHJ1Y3QgaW92ZWMgdmVjW01BWF9GUkFHU107CisJc3RydWN0IG1z Z2hkciBtc2c7CisJaW50IGksIGZyYWdzOworCisJZm9yIChmcmFncyA9IDE7IGZyYWdzIDw9IE1B WF9GUkFHUzsgZnJhZ3MrKykgeworCQlmb3IgKGkgPSAwOyBpIDwgZnJhZ3M7IGkrKykgeworCQkJ dmVjW2ldLmlvdl9iYXNlID0gKGNoYXIgKil0ZXN0X3N0cjsKKwkJCXZlY1tpXS5pb3ZfbGVuID0g U0VORF9MRU47CisJCX0KKworCQltZW1zZXQoJm1zZywgMCwgc2l6ZW9mKHN0cnVjdCBtc2doZHIp KTsKKwkJbXNnLm1zZ19pb3YgPSB2ZWM7CisJCW1zZy5tc2dfaW92bGVuID0gZnJhZ3M7CisKKwkJ RVhQRUNUX0VRKHNlbmRtc2coc2VsZi0+ZmQsICZtc2csIDApLCBTRU5EX0xFTiAqIGZyYWdzKTsK KwkJRVhQRUNUX0VRKHJlY3Yoc2VsZi0+Y2ZkLCBidWYsIFNFTkRfTEVOICogZnJhZ3MsIE1TR19X QUlUQUxMKSwKKwkJCSAgU0VORF9MRU4gKiBmcmFncyk7CisKKwkJZm9yIChpID0gMDsgaSA8IGZy YWdzOyBpKyspCisJCQlFWFBFQ1RfRVEobWVtY21wKGJ1ZiArIFNFTkRfTEVOICogaSwKKwkJCQkJ IHRlc3Rfc3RyLCBTRU5EX0xFTiksIDApOworCX0KK30KKyN1bmRlZiBNQVhfRlJBR1MKKyN1bmRl ZiBTRU5EX0xFTgorCiBURVNUX0YodGxzLCBzZW5kbXNnX2xhcmdlKQogewogCXZvaWQgKm1lbSA9 IG1hbGxvYygxNjM4NCk7CkBAIC02OTQsNiArNzI2LDM0IEBAIFRFU1RfRih0bHMsIHJlY3ZfbG93 YXQpCiAJRVhQRUNUX0VRKG1lbWNtcChzZW5kX21lbSwgcmVjdl9tZW0gKyAxMCwgNSksIDApOwog fQogCitURVNUX0YodGxzLCByZWN2X3JjdmJ1ZikKK3sKKwljaGFyIHNlbmRfbWVtWzQwOTZdOwor CWNoYXIgcmVjdl9tZW1bNDA5Nl07CisJaW50IHJjdl9idWYgPSAxMDI0OworCisJbWVtc2V0KHNl bmRfbWVtLCAweDFjLCBzaXplb2Yoc2VuZF9tZW0pKTsKKworCUVYUEVDVF9FUShzZXRzb2Nrb3B0 KHNlbGYtPmNmZCwgU09MX1NPQ0tFVCwgU09fUkNWQlVGLAorCQkJICAgICAmcmN2X2J1Ziwgc2l6 ZW9mKHJjdl9idWYpKSwgMCk7CisKKwlFWFBFQ1RfRVEoc2VuZChzZWxmLT5mZCwgc2VuZF9tZW0s IDUxMiwgMCksIDUxMik7CisJbWVtc2V0KHJlY3ZfbWVtLCAwLCBzaXplb2YocmVjdl9tZW0pKTsK KwlFWFBFQ1RfRVEocmVjdihzZWxmLT5jZmQsIHJlY3ZfbWVtLCBzaXplb2YocmVjdl9tZW0pLCAw KSwgNTEyKTsKKwlFWFBFQ1RfRVEobWVtY21wKHNlbmRfbWVtLCByZWN2X21lbSwgNTEyKSwgMCk7 CisKKwlpZiAoc2VsZi0+bm90bHMpCisJCXJldHVybjsKKworCUVYUEVDVF9FUShzZW5kKHNlbGYt PmZkLCBzZW5kX21lbSwgNDA5NiwgMCksIDQwOTYpOworCW1lbXNldChyZWN2X21lbSwgMCwgc2l6 ZW9mKHJlY3ZfbWVtKSk7CisJRVhQRUNUX0VRKHJlY3Yoc2VsZi0+Y2ZkLCByZWN2X21lbSwgc2l6 ZW9mKHJlY3ZfbWVtKSwgMCksIC0xKTsKKwlFWFBFQ1RfRVEoZXJybm8sIEVNU0dTSVpFKTsKKwor CUVYUEVDVF9FUShyZWN2KHNlbGYtPmNmZCwgcmVjdl9tZW0sIHNpemVvZihyZWN2X21lbSksIDAp LCAtMSk7CisJRVhQRUNUX0VRKGVycm5vLCBFTVNHU0laRSk7Cit9CisKIFRFU1RfRih0bHMsIGJp ZGlyKQogewogCWNoYXIgY29uc3QgKnRlc3Rfc3RyID0gInRlc3RfcmVhZCI7Ci0tIAoyLjIwLjEK CgpGcm9tIDEzNjEzYjE3NTQ2MTljZWY3ODFjZTM1MmExMGY2MDU1NDE4ODM3YWQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRy b25vbWUuY29tPgpEYXRlOiBXZWQsIDI3IE5vdiAyMDE5IDEyOjE2OjQzIC0wODAwClN1YmplY3Q6 IFtQQVRDSCAxOC8yNV0gbmV0L3RsczogcmVtb3ZlIHRoZSBkZWFkIGlucGxhY2VfY3J5cHRvIGNv ZGUKClsgVXBzdHJlYW0gY29tbWl0IDllNWZmZWQzN2RmNjhkMGNjZmIyZmRjNTI4NjA5ZTIzYTFl NzBlYmUgXQoKTG9va3MgbGlrZSB3aGVuIEJQRiBzdXBwb3J0IHdhcyBhZGRlZCBieSBjb21taXQg ZDNiMThhZDMxZjkzCigidGxzOiBhZGQgYnBmIHN1cHBvcnQgdG8gc2tfbXNnIGhhbmRsaW5nIikg YW5kCmNvbW1pdCBkODI5ZTljNDExMmIgKCJ0bHM6IGNvbnZlcnQgdG8gZ2VuZXJpYyBza19tc2cg aW50ZXJmYWNlIikKaXQgYnJva2UvcmVtb3ZlZCB0aGUgc3VwcG9ydCBmb3IgaW4tcGxhY2UgY3J5 cHRvIGFzIGFkZGVkIGJ5CmNvbW1pdCA0ZTZkNDcyMDZjMzIgKCJ0bHM6IEFkZCBzdXBwb3J0IGZv ciBpbnBsYWNlIHJlY29yZHMKZW5jcnlwdGlvbiIpLgoKVGhlIGlucGxhY2VfY3J5cHRvIG1lbWJl ciBvZiBzdHJ1Y3QgdGxzX3JlYyBpcyBkZWFkLCBpbml0ZWQKdG8gemVybywgYW5kIHNvbWV0aW1l cyBzZXQgdG8gemVybyBhZ2Fpbi4gSXQgdXNlZCB0byBiZQpzZXQgdG8gMSB3aGVuIHJlY29yZCB3 YXMgYWxsb2NhdGVkLCBidXQgdGhlIHNrbXNnIGNvZGUgZG9lc24ndApzZWVtIHRvIGhhdmUgYmVl biB3cml0dGVuIHdpdGggdGhlIGlkZWEgb2YgaW4tcGxhY2UgY3J5cHRvCmluIG1pbmQuCgpTaW5j ZSBub24gdHJpdmlhbCBlZmZvcnQgaXMgcmVxdWlyZWQgdG8gYnJpbmcgdGhlIGZlYXR1cmUgYmFj awphbmQgd2UgZG9uJ3QgcmVhbGx5IGhhdmUgdGhlIEhXIHRvIG1lYXN1cmUgdGhlIGJlbmVmaXQg anVzdApyZW1vdmUgdGhlIGxlZnQgb3ZlciBzdXBwb3J0IGZvciBub3cgdG8gYXZvaWQgY29uZnVz aW5nIHJlYWRlcnMuCgpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5z a2lAbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9ybWFu QG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC90bHMuaCB8IDEgLQogbmV0L3Rscy90bHNfc3cu YyAgfCA2ICstLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC90bHMuaCBiL2luY2x1ZGUvbmV0L3Rscy5o CmluZGV4IGY0YWQ4MzFlYWEwMi4uYjNkNTdjNGQwOTE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL25l dC90bHMuaAorKysgYi9pbmNsdWRlL25ldC90bHMuaApAQCAtMTIyLDcgKzEyMiw2IEBAIHN0cnVj dCB0bHNfcmVjIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CiAJaW50IHR4X3JlYWR5OwogCWlu dCB0eF9mbGFnczsKLQlpbnQgaW5wbGFjZV9jcnlwdG87CiAKIAlzdHJ1Y3Qgc2tfbXNnIG1zZ19w bGFpbnRleHQ7CiAJc3RydWN0IHNrX21zZyBtc2dfZW5jcnlwdGVkOwpkaWZmIC0tZ2l0IGEvbmV0 L3Rscy90bHNfc3cuYyBiL25ldC90bHMvdGxzX3N3LmMKaW5kZXggNmVmNzA0NDdmNThkLi44MzQz ZjMwYmI5NmQgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX3N3LmMKKysrIGIvbmV0L3Rscy90bHNf c3cuYwpAQCAtNzA1LDggKzcwNSw3IEBAIHN0YXRpYyBpbnQgdGxzX3B1c2hfcmVjb3JkKHN0cnVj dCBzb2NrICpzaywgaW50IGZsYWdzLAogCX0KIAogCWkgPSBtc2dfcGwtPnNnLnN0YXJ0OwotCXNn X2NoYWluKHJlYy0+c2dfYWVhZF9pbiwgMiwgcmVjLT5pbnBsYWNlX2NyeXB0byA/Ci0JCSAmbXNn X2VuLT5zZy5kYXRhW2ldIDogJm1zZ19wbC0+c2cuZGF0YVtpXSk7CisJc2dfY2hhaW4ocmVjLT5z Z19hZWFkX2luLCAyLCAmbXNnX3BsLT5zZy5kYXRhW2ldKTsKIAogCWkgPSBtc2dfZW4tPnNnLmVu ZDsKIAlza19tc2dfaXRlcl92YXJfcHJldihpKTsKQEAgLTk3MSw4ICs5NzAsNiBAQCBpbnQgdGxz X3N3X3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBz aXplKQogCQkJaWYgKHJldCkKIAkJCQlnb3RvIGZhbGxiYWNrX3RvX3JlZ19zZW5kOwogCi0JCQly ZWMtPmlucGxhY2VfY3J5cHRvID0gMDsKLQogCQkJbnVtX3pjKys7CiAJCQljb3BpZWQgKz0gdHJ5 X3RvX2NvcHk7CiAKQEAgLTExNzEsNyArMTE2OCw2IEBAIHN0YXRpYyBpbnQgdGxzX3N3X2RvX3Nl bmRwYWdlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHBhZ2UgKnBhZ2UsCiAKIAkJdGxzX2N0eC0+ cGVuZGluZ19vcGVuX3JlY29yZF9mcmFncyA9IHRydWU7CiAJCWlmIChmdWxsX3JlY29yZCB8fCBl b3IgfHwgc2tfbXNnX2Z1bGwobXNnX3BsKSkgewotCQkJcmVjLT5pbnBsYWNlX2NyeXB0byA9IDA7 CiAJCQlyZXQgPSBicGZfZXhlY190eF92ZXJkaWN0KG1zZ19wbCwgc2ssIGZ1bGxfcmVjb3JkLAog CQkJCQkJICByZWNvcmRfdHlwZSwgJmNvcGllZCwgZmxhZ3MpOwogCQkJaWYgKHJldCkgewotLSAK Mi4yMC4xCgoKRnJvbSBiNWM1ZjAyY2I2ODM4MDMxNTQzZTRjZWYxYTg3NGFiOTZiNGY1M2E5IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5z a2lAbmV0cm9ub21lLmNvbT4KRGF0ZTogV2VkLCAyNyBOb3YgMjAxOSAxMjoxNjo0NCAtMDgwMApT dWJqZWN0OiBbUEFUQ0ggMTkvMjVdIG5ldC90bHM6IHVzZSBzZ19uZXh0KCkgdG8gd2FsayBzZyBl bnRyaWVzCgpbIFVwc3RyZWFtIGNvbW1pdCBjNWRhYTZjY2NkYzJmOTRhY2EyYzliM2ZhNWY5NGU0 NDY5OTk3MjkzIF0KClBhcnRpYWxseSBzZW50IHJlY29yZCBjbGVhbnVwIHBhdGggaW5jcmVtZW50 cyBhbiBTRyBlbnRyeQpkaXJlY3RseSBpbnN0ZWFkIG9mIHVzaW5nIHNnX25leHQoKS4gVGhpcyBz aG91bGQgbm90IGJlIGEKcHJvYmxlbSB0b2RheSwgYXMgZW5jcnlwdGVkIG1lc3NhZ2VzIHNob3Vs ZCBiZSBhbHdheXMKYWxsb2NhdGVkIGFzIGFycmF5cy4gQnV0IGdpdmVuIHRoaXMgaXMgYSBjbGVh bnVwIHBhdGggaXQncwplYXN5IHRvIG1pc3Mgd2FzIHRoaXMgZXZlciB0byBjaGFuZ2UuIFVzZSBz Z19uZXh0KCksIGFuZApzaW1wbGlmeSB0aGUgY29kZS4KClNpZ25lZC1vZmYtYnk6IEpha3ViIEtp Y2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpSZXZpZXdlZC1ieTogU2ltb24g SG9ybWFuIDxzaW1vbi5ob3JtYW5AbmV0cm9ub21lLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L3Rscy5oICB8 ICAyICstCiBuZXQvdGxzL3Rsc19tYWluLmMgfCAxMyArKy0tLS0tLS0tLS0tCiBuZXQvdGxzL3Rs c19zdy5jICAgfCAgMyArKy0KIDMgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC90bHMuaCBiL2luY2x1ZGUvbmV0 L3Rscy5oCmluZGV4IGIzZDU3YzRkMDkxNi4uMDkzYWJiNWEzZGZmIDEwMDY0NAotLS0gYS9pbmNs dWRlL25ldC90bHMuaAorKysgYi9pbmNsdWRlL25ldC90bHMuaApAQCAtMzk1LDcgKzM5NSw3IEBA IGludCB0bHNfcHVzaF9zZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCB0bHNfY29udGV4dCAqY3R4 LAogCQlpbnQgZmxhZ3MpOwogaW50IHRsc19wdXNoX3BhcnRpYWxfcmVjb3JkKHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IHRsc19jb250ZXh0ICpjdHgsCiAJCQkgICAgaW50IGZsYWdzKTsKLWJvb2wg dGxzX2ZyZWVfcGFydGlhbF9yZWNvcmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2NvbnRl eHQgKmN0eCk7Cit2b2lkIHRsc19mcmVlX3BhcnRpYWxfcmVjb3JkKHN0cnVjdCBzb2NrICpzaywg c3RydWN0IHRsc19jb250ZXh0ICpjdHgpOwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0bHNfbXNn ICp0bHNfbXNnKHN0cnVjdCBza19idWZmICpza2IpCiB7CmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rs c19tYWluLmMgYi9uZXQvdGxzL3Rsc19tYWluLmMKaW5kZXggZjg3NGNjMGRhNDVkLi5lZmY0NDQy OTM1OTQgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX21haW4uYworKysgYi9uZXQvdGxzL3Rsc19t YWluLmMKQEAgLTIwOSwyNCArMjA5LDE1IEBAIGludCB0bHNfcHVzaF9wYXJ0aWFsX3JlY29yZChz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCB0bHNfY29udGV4dCAqY3R4LAogCXJldHVybiB0bHNfcHVz aF9zZyhzaywgY3R4LCBzZywgb2Zmc2V0LCBmbGFncyk7CiB9CiAKLWJvb2wgdGxzX2ZyZWVfcGFy dGlhbF9yZWNvcmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2NvbnRleHQgKmN0eCkKK3Zv aWQgdGxzX2ZyZWVfcGFydGlhbF9yZWNvcmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2Nv bnRleHQgKmN0eCkKIHsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOwogCi0Jc2cgPSBjdHgtPnBh cnRpYWxseV9zZW50X3JlY29yZDsKLQlpZiAoIXNnKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQl3aGls ZSAoMSkgeworCWZvciAoc2cgPSBjdHgtPnBhcnRpYWxseV9zZW50X3JlY29yZDsgc2c7IHNnID0g c2dfbmV4dChzZykpIHsKIAkJcHV0X3BhZ2Uoc2dfcGFnZShzZykpOwogCQlza19tZW1fdW5jaGFy Z2Uoc2ssIHNnLT5sZW5ndGgpOwotCi0JCWlmIChzZ19pc19sYXN0KHNnKSkKLQkJCWJyZWFrOwot CQlzZysrOwogCX0KIAljdHgtPnBhcnRpYWxseV9zZW50X3JlY29yZCA9IE5VTEw7Ci0JcmV0dXJu IHRydWU7CiB9CiAKIHN0YXRpYyB2b2lkIHRsc193cml0ZV9zcGFjZShzdHJ1Y3Qgc29jayAqc2sp CmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rsc19zdy5jIGIvbmV0L3Rscy90bHNfc3cuYwppbmRleCA4 MzQzZjMwYmI5NmQuLjVkZDBmMDE5MTNjMCAxMDA2NDQKLS0tIGEvbmV0L3Rscy90bHNfc3cuYwor KysgYi9uZXQvdGxzL3Rsc19zdy5jCkBAIC0yMDg0LDcgKzIwODQsOCBAQCB2b2lkIHRsc19zd19y ZWxlYXNlX3Jlc291cmNlc190eChzdHJ1Y3Qgc29jayAqc2spCiAJLyogRnJlZSB1cCB1bi1zZW50 IHJlY29yZHMgaW4gdHhfbGlzdC4gRmlyc3QsIGZyZWUKIAkgKiB0aGUgcGFydGlhbGx5IHNlbnQg cmVjb3JkIGlmIGFueSBhdCBoZWFkIG9mIHR4X2xpc3QuCiAJICovCi0JaWYgKHRsc19mcmVlX3Bh cnRpYWxfcmVjb3JkKHNrLCB0bHNfY3R4KSkgeworCWlmICh0bHNfY3R4LT5wYXJ0aWFsbHlfc2Vu dF9yZWNvcmQpIHsKKwkJdGxzX2ZyZWVfcGFydGlhbF9yZWNvcmQoc2ssIHRsc19jdHgpOwogCQly ZWMgPSBsaXN0X2ZpcnN0X2VudHJ5KCZjdHgtPnR4X2xpc3QsCiAJCQkJICAgICAgIHN0cnVjdCB0 bHNfcmVjLCBsaXN0KTsKIAkJbGlzdF9kZWwoJnJlYy0+bGlzdCk7Ci0tIAoyLjIwLjEKCgpGcm9t IGVlYjM2NGZjNGM2M2MwOTYyMDJhNWM5OTAxYjcyZDIxN2E5OWVkOWEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUu Y29tPgpEYXRlOiBXZWQsIDI3IE5vdiAyMDE5IDEyOjE2OjQ1IC0wODAwClN1YmplY3Q6IFtQQVRD SCAyMC8yNV0gc2VsZnRlc3RzOiBicGY6IHRlc3Rfc29ja21hcDogaGFuZGxlIGZpbGUgY3JlYXRp b24KIGZhaWx1cmVzIGdyYWNlZnVsbHkKClsgVXBzdHJlYW0gY29tbWl0IDRiNjdjNTE1MDM2MzEz ZjNjM2VjYmEzY2IyYmFiYjljYmRkYjNmODUgXQoKdGVzdF9zb2NrbWFwIGNyZWF0ZXMgYSB0ZW1w b3JhcnkgZmlsZSB0byB1c2UgZm9yIHNlbmRwYWdlLgp0aGlzIG1heSBmYWlsIGZvciB2YXJpb3Vz IHJlYXNvbnMuIEhhbmRsZSB0aGUgZXJyb3IgcmF0aGVyCnRoYW4gc2VnZmF1bHQuCgpTaWduZWQt b2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KUmV2 aWV3ZWQtYnk6IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJvbm9tZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiB0b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9zb2NrbWFwLmMgfCA5ICsrKysrKysrKwogMSBm aWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcv c2VsZnRlc3RzL2JwZi90ZXN0X3NvY2ttYXAuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2Jw Zi90ZXN0X3NvY2ttYXAuYwppbmRleCAzODQ1MTQ0ZTJjOTEuLjhiODM4ZTkxY2ZlNSAxMDA2NDQK LS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3Rfc29ja21hcC5jCisrKyBiL3Rv b2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3NvY2ttYXAuYwpAQCAtMzMyLDYgKzMzMiwx MCBAQCBzdGF0aWMgaW50IG1zZ19sb29wX3NlbmRwYWdlKGludCBmZCwgaW50IGlvdl9sZW5ndGgs IGludCBjbnQsCiAJaW50IGksIGZwOwogCiAJZmlsZSA9IGZvcGVuKCIuc2VuZHBhZ2VfdHN0LnRt cCIsICJ3KyIpOworCWlmICghZmlsZSkgeworCQlwZXJyb3IoImNyZWF0ZSBmaWxlIGZvciBzZW5k cGFnZSIpOworCQlyZXR1cm4gMTsKKwl9CiAJZm9yIChpID0gMDsgaSA8IGlvdl9sZW5ndGggKiBj bnQ7IGkrKywgaysrKQogCQlmd3JpdGUoJmssIHNpemVvZihjaGFyKSwgMSwgZmlsZSk7CiAJZmZs dXNoKGZpbGUpOwpAQCAtMzM5LDYgKzM0MywxMSBAQCBzdGF0aWMgaW50IG1zZ19sb29wX3NlbmRw YWdlKGludCBmZCwgaW50IGlvdl9sZW5ndGgsIGludCBjbnQsCiAJZmNsb3NlKGZpbGUpOwogCiAJ ZnAgPSBvcGVuKCIuc2VuZHBhZ2VfdHN0LnRtcCIsIE9fUkRPTkxZKTsKKwlpZiAoZnAgPCAwKSB7 CisJCXBlcnJvcigicmVvcGVuIGZpbGUgZm9yIHNlbmRwYWdlIik7CisJCXJldHVybiAxOworCX0K KwogCWNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmcy0+c3RhcnQpOwogCWZvciAoaSA9 IDA7IGkgPCBjbnQ7IGkrKykgewogCQlpbnQgc2VudCA9IHNlbmRmaWxlKGZkLCBmcCwgTlVMTCwg aW92X2xlbmd0aCk7Ci0tIAoyLjIwLjEKCgpGcm9tIGYyYTllMWZlMjkzOTE5NDQxMGI2MGY0OGQ0 ZDFlYjVjZmU1ZDQ4MDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2lu c2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpEYXRlOiBXZWQsIDI3IE5vdiAyMDE5 IDEyOjE2OjQ2IC0wODAwClN1YmplY3Q6IFtQQVRDSCAyMS8yNV0gc2VsZnRlc3RzOiBicGY6IGNv cnJlY3QgcGVycm9yIHN0cmluZ3MKClsgVXBzdHJlYW0gY29tbWl0IGU1ZGM5ZGQzMjU4MDk4YmY4 YjVjZWI3NWZjMzQzM2I0MWVmZjYxOGEgXQoKcGVycm9yKHN0cikgaXMgYmFzaWNhbGx5IGVxdWl2 YWxlbnQgdG8KcHJpbnQoIiVzOiAlc1xuIiwgc3RyLCBzdHJlcnJvcihlcnJubykpLgpOZXcgbGlu ZSBvciBjb2xvbiBhdCB0aGUgZW5kIG9mIHN0ciBpcwphIG1pc3Rha2UvYnJlYWtzIGZvcm1hdHRp bmcuCgpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9u b21lLmNvbT4KUmV2aWV3ZWQtYnk6IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJvbm9t ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9zb2NrbWFwLmMgfCAzOCAr KysrKysrKysrKy0tLS0tLS0tLS0tCiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYveGRwaW5n LmMgICAgICAgfCAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAyMCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVz dF9zb2NrbWFwLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9zb2NrbWFwLmMK aW5kZXggOGI4MzhlOTFjZmU1Li40YTg1MTUxM2M4NDIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL2JwZi90ZXN0X3NvY2ttYXAuYworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0 ZXN0cy9icGYvdGVzdF9zb2NrbWFwLmMKQEAgLTI0MCwxNCArMjQwLDE0IEBAIHN0YXRpYyBpbnQg c29ja21hcF9pbml0X3NvY2tldHMoaW50IHZlcmJvc2UpCiAJYWRkci5zaW5fcG9ydCA9IGh0b25z KFMxX1BPUlQpOwogCWVyciA9IGJpbmQoczEsIChzdHJ1Y3Qgc29ja2FkZHIgKikmYWRkciwgc2l6 ZW9mKGFkZHIpKTsKIAlpZiAoZXJyIDwgMCkgewotCQlwZXJyb3IoImJpbmQgczEgZmFpbGVkKClc biIpOworCQlwZXJyb3IoImJpbmQgczEgZmFpbGVkKCkiKTsKIAkJcmV0dXJuIGVycm5vOwogCX0K IAogCWFkZHIuc2luX3BvcnQgPSBodG9ucyhTMl9QT1JUKTsKIAllcnIgPSBiaW5kKHMyLCAoc3Ry dWN0IHNvY2thZGRyICopJmFkZHIsIHNpemVvZihhZGRyKSk7CiAJaWYgKGVyciA8IDApIHsKLQkJ cGVycm9yKCJiaW5kIHMyIGZhaWxlZCgpXG4iKTsKKwkJcGVycm9yKCJiaW5kIHMyIGZhaWxlZCgp Iik7CiAJCXJldHVybiBlcnJubzsKIAl9CiAKQEAgLTI1NSwxNCArMjU1LDE0IEBAIHN0YXRpYyBp bnQgc29ja21hcF9pbml0X3NvY2tldHMoaW50IHZlcmJvc2UpCiAJYWRkci5zaW5fcG9ydCA9IGh0 b25zKFMxX1BPUlQpOwogCWVyciA9IGxpc3RlbihzMSwgMzIpOwogCWlmIChlcnIgPCAwKSB7Ci0J CXBlcnJvcigibGlzdGVuIHMxIGZhaWxlZCgpXG4iKTsKKwkJcGVycm9yKCJsaXN0ZW4gczEgZmFp bGVkKCkiKTsKIAkJcmV0dXJuIGVycm5vOwogCX0KIAogCWFkZHIuc2luX3BvcnQgPSBodG9ucyhT Ml9QT1JUKTsKIAllcnIgPSBsaXN0ZW4oczIsIDMyKTsKIAlpZiAoZXJyIDwgMCkgewotCQlwZXJy b3IoImxpc3RlbiBzMSBmYWlsZWQoKVxuIik7CisJCXBlcnJvcigibGlzdGVuIHMxIGZhaWxlZCgp Iik7CiAJCXJldHVybiBlcnJubzsKIAl9CiAKQEAgLTI3MCwxNCArMjcwLDE0IEBAIHN0YXRpYyBp bnQgc29ja21hcF9pbml0X3NvY2tldHMoaW50IHZlcmJvc2UpCiAJYWRkci5zaW5fcG9ydCA9IGh0 b25zKFMxX1BPUlQpOwogCWVyciA9IGNvbm5lY3QoYzEsIChzdHJ1Y3Qgc29ja2FkZHIgKikmYWRk ciwgc2l6ZW9mKGFkZHIpKTsKIAlpZiAoZXJyIDwgMCAmJiBlcnJubyAhPSBFSU5QUk9HUkVTUykg ewotCQlwZXJyb3IoImNvbm5lY3QgYzEgZmFpbGVkKClcbiIpOworCQlwZXJyb3IoImNvbm5lY3Qg YzEgZmFpbGVkKCkiKTsKIAkJcmV0dXJuIGVycm5vOwogCX0KIAogCWFkZHIuc2luX3BvcnQgPSBo dG9ucyhTMl9QT1JUKTsKIAllcnIgPSBjb25uZWN0KGMyLCAoc3RydWN0IHNvY2thZGRyICopJmFk ZHIsIHNpemVvZihhZGRyKSk7CiAJaWYgKGVyciA8IDAgJiYgZXJybm8gIT0gRUlOUFJPR1JFU1Mp IHsKLQkJcGVycm9yKCJjb25uZWN0IGMyIGZhaWxlZCgpXG4iKTsKKwkJcGVycm9yKCJjb25uZWN0 IGMyIGZhaWxlZCgpIik7CiAJCXJldHVybiBlcnJubzsKIAl9IGVsc2UgaWYgKGVyciA8IDApIHsK IAkJZXJyID0gMDsKQEAgLTI4NiwxMyArMjg2LDEzIEBAIHN0YXRpYyBpbnQgc29ja21hcF9pbml0 X3NvY2tldHMoaW50IHZlcmJvc2UpCiAJLyogQWNjZXB0IENvbm5lY3J0aW9ucyAqLwogCXAxID0g YWNjZXB0KHMxLCBOVUxMLCBOVUxMKTsKIAlpZiAocDEgPCAwKSB7Ci0JCXBlcnJvcigiYWNjZXB0 IHMxIGZhaWxlZCgpXG4iKTsKKwkJcGVycm9yKCJhY2NlcHQgczEgZmFpbGVkKCkiKTsKIAkJcmV0 dXJuIGVycm5vOwogCX0KIAogCXAyID0gYWNjZXB0KHMyLCBOVUxMLCBOVUxMKTsKIAlpZiAocDIg PCAwKSB7Ci0JCXBlcnJvcigiYWNjZXB0IHMxIGZhaWxlZCgpXG4iKTsKKwkJcGVycm9yKCJhY2Nl cHQgczEgZmFpbGVkKCkiKTsKIAkJcmV0dXJuIGVycm5vOwogCX0KIApAQCAtMzUzLDcgKzM1Myw3 IEBAIHN0YXRpYyBpbnQgbXNnX2xvb3Bfc2VuZHBhZ2UoaW50IGZkLCBpbnQgaW92X2xlbmd0aCwg aW50IGNudCwKIAkJaW50IHNlbnQgPSBzZW5kZmlsZShmZCwgZnAsIE5VTEwsIGlvdl9sZW5ndGgp OwogCiAJCWlmICghZHJvcCAmJiBzZW50IDwgMCkgewotCQkJcGVycm9yKCJzZW5kIGxvb3AgZXJy b3I6Iik7CisJCQlwZXJyb3IoInNlbmQgbG9vcCBlcnJvciIpOwogCQkJY2xvc2UoZnApOwogCQkJ cmV0dXJuIHNlbnQ7CiAJCX0gZWxzZSBpZiAoZHJvcCAmJiBzZW50ID49IDApIHsKQEAgLTQ3Miw3 ICs0NzIsNyBAQCBzdGF0aWMgaW50IG1zZ19sb29wKGludCBmZCwgaW50IGlvdl9jb3VudCwgaW50 IGlvdl9sZW5ndGgsIGludCBjbnQsCiAJCQlpbnQgc2VudCA9IHNlbmRtc2coZmQsICZtc2csIGZs YWdzKTsKIAogCQkJaWYgKCFkcm9wICYmIHNlbnQgPCAwKSB7Ci0JCQkJcGVycm9yKCJzZW5kIGxv b3AgZXJyb3I6Iik7CisJCQkJcGVycm9yKCJzZW5kIGxvb3AgZXJyb3IiKTsKIAkJCQlnb3RvIG91 dF9lcnJubzsKIAkJCX0gZWxzZSBpZiAoZHJvcCAmJiBzZW50ID49IDApIHsKIAkJCQlwcmludGYo InNlbmQgbG9vcCBlcnJvciBleHBlY3RlZDogJWlcbiIsIHNlbnQpOwpAQCAtNTA4LDcgKzUwOCw3 IEBAIHN0YXRpYyBpbnQgbXNnX2xvb3AoaW50IGZkLCBpbnQgaW92X2NvdW50LCBpbnQgaW92X2xl bmd0aCwgaW50IGNudCwKIAkJdG90YWxfYnl0ZXMgLT0gdHhtc2dfcG9wX3RvdGFsOwogCQllcnIg PSBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJnMtPnN0YXJ0KTsKIAkJaWYgKGVyciA8 IDApCi0JCQlwZXJyb3IoInJlY3Ygc3RhcnQgdGltZTogIik7CisJCQlwZXJyb3IoInJlY3Ygc3Rh cnQgdGltZSIpOwogCQl3aGlsZSAocy0+Ynl0ZXNfcmVjdmQgPCB0b3RhbF9ieXRlcykgewogCQkJ aWYgKHR4bXNnX2NvcmspIHsKIAkJCQl0aW1lb3V0LnR2X3NlYyA9IDA7CkBAIC01NTIsNyArNTUy LDcgQEAgc3RhdGljIGludCBtc2dfbG9vcChpbnQgZmQsIGludCBpb3ZfY291bnQsIGludCBpb3Zf bGVuZ3RoLCBpbnQgY250LAogCQkJaWYgKHJlY3YgPCAwKSB7CiAJCQkJaWYgKGVycm5vICE9IEVX T1VMREJMT0NLKSB7CiAJCQkJCWNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmcy0+ZW5k KTsKLQkJCQkJcGVycm9yKCJyZWN2IGZhaWxlZCgpXG4iKTsKKwkJCQkJcGVycm9yKCJyZWN2IGZh aWxlZCgpIik7CiAJCQkJCWdvdG8gb3V0X2Vycm5vOwogCQkJCX0KIAkJCX0KQEAgLTU2Niw3ICs1 NjYsNyBAQCBzdGF0aWMgaW50IG1zZ19sb29wKGludCBmZCwgaW50IGlvdl9jb3VudCwgaW50IGlv dl9sZW5ndGgsIGludCBjbnQsCiAKIAkJCQllcnJubyA9IG1zZ192ZXJpZnlfZGF0YSgmbXNnLCBy ZWN2LCBjaHVua19zeik7CiAJCQkJaWYgKGVycm5vKSB7Ci0JCQkJCXBlcnJvcigiZGF0YSB2ZXJp ZnkgbXNnIGZhaWxlZFxuIik7CisJCQkJCXBlcnJvcigiZGF0YSB2ZXJpZnkgbXNnIGZhaWxlZCIp OwogCQkJCQlnb3RvIG91dF9lcnJubzsKIAkJCQl9CiAJCQkJaWYgKHJlY3ZwKSB7CkBAIC01NzQs NyArNTc0LDcgQEAgc3RhdGljIGludCBtc2dfbG9vcChpbnQgZmQsIGludCBpb3ZfY291bnQsIGlu dCBpb3ZfbGVuZ3RoLCBpbnQgY250LAogCQkJCQkJCQlyZWN2cCwKIAkJCQkJCQkJY2h1bmtfc3op OwogCQkJCQlpZiAoZXJybm8pIHsKLQkJCQkJCXBlcnJvcigiZGF0YSB2ZXJpZnkgbXNnX3BlZWsg ZmFpbGVkXG4iKTsKKwkJCQkJCXBlcnJvcigiZGF0YSB2ZXJpZnkgbXNnX3BlZWsgZmFpbGVkIik7 CiAJCQkJCQlnb3RvIG91dF9lcnJubzsKIAkJCQkJfQogCQkJCX0KQEAgLTY2Myw3ICs2NjMsNyBA QCBzdGF0aWMgaW50IHNlbmRtc2dfdGVzdChzdHJ1Y3Qgc29ja21hcF9vcHRpb25zICpvcHQpCiAJ CQllcnIgPSAwOwogCQlleGl0KGVyciA/IDEgOiAwKTsKIAl9IGVsc2UgaWYgKHJ4cGlkID09IC0x KSB7Ci0JCXBlcnJvcigibXNnX2xvb3Bfcng6ICIpOworCQlwZXJyb3IoIm1zZ19sb29wX3J4Iik7 CiAJCXJldHVybiBlcnJubzsKIAl9CiAKQEAgLTY5MCw3ICs2OTAsNyBAQCBzdGF0aWMgaW50IHNl bmRtc2dfdGVzdChzdHJ1Y3Qgc29ja21hcF9vcHRpb25zICpvcHQpCiAJCQkJcy5ieXRlc19yZWN2 ZCwgcmVjdmRfQnBzLCByZWN2ZF9CcHMvZ2lnYSk7CiAJCWV4aXQoZXJyID8gMSA6IDApOwogCX0g ZWxzZSBpZiAodHhwaWQgPT0gLTEpIHsKLQkJcGVycm9yKCJtc2dfbG9vcF90eDogIik7CisJCXBl cnJvcigibXNnX2xvb3BfdHgiKTsKIAkJcmV0dXJuIGVycm5vOwogCX0KIApAQCAtNzI0LDcgKzcy NCw3IEBAIHN0YXRpYyBpbnQgZm9yZXZlcl9waW5nX3BvbmcoaW50IHJhdGUsIHN0cnVjdCBzb2Nr bWFwX29wdGlvbnMgKm9wdCkKIAkvKiBQaW5nL1BvbmcgZGF0YSBmcm9tIGNsaWVudCB0byBzZXJ2 ZXIgKi8KIAlzYyA9IHNlbmQoYzEsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApOwogCWlmIChzYyA8IDAp IHsKLQkJcGVycm9yKCJzZW5kIGZhaWxlZCgpXG4iKTsKKwkJcGVycm9yKCJzZW5kIGZhaWxlZCgp Iik7CiAJCXJldHVybiBzYzsKIAl9CiAKQEAgLTc1Nyw3ICs3NTcsNyBAQCBzdGF0aWMgaW50IGZv cmV2ZXJfcGluZ19wb25nKGludCByYXRlLCBzdHJ1Y3Qgc29ja21hcF9vcHRpb25zICpvcHQpCiAJ CQlyYyA9IHJlY3YoaSwgYnVmLCBzaXplb2YoYnVmKSwgMCk7CiAJCQlpZiAocmMgPCAwKSB7CiAJ CQkJaWYgKGVycm5vICE9IEVXT1VMREJMT0NLKSB7Ci0JCQkJCXBlcnJvcigicmVjdiBmYWlsZWQo KVxuIik7CisJCQkJCXBlcnJvcigicmVjdiBmYWlsZWQoKSIpOwogCQkJCQlyZXR1cm4gcmM7CiAJ CQkJfQogCQkJfQpAQCAtNzY5LDcgKzc2OSw3IEBAIHN0YXRpYyBpbnQgZm9yZXZlcl9waW5nX3Bv bmcoaW50IHJhdGUsIHN0cnVjdCBzb2NrbWFwX29wdGlvbnMgKm9wdCkKIAogCQkJc2MgPSBzZW5k KGksIGJ1ZiwgcmMsIDApOwogCQkJaWYgKHNjIDwgMCkgewotCQkJCXBlcnJvcigic2VuZCBmYWls ZWQoKVxuIik7CisJCQkJcGVycm9yKCJzZW5kIGZhaWxlZCgpIik7CiAJCQkJcmV0dXJuIHNjOwog CQkJfQogCQl9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYveGRwaW5n LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYveGRwaW5nLmMKaW5kZXggZDYwYTM0M2Ix MzcxLi44NDJkOTE1NWQzNmMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2Jw Zi94ZHBpbmcuYworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYveGRwaW5nLmMKQEAg LTQ1LDcgKzQ1LDcgQEAgc3RhdGljIGludCBnZXRfc3RhdHMoaW50IGZkLCBfX3UxNiBjb3VudCwg X191MzIgcmFkZHIpCiAJcHJpbnRmKCJcblhEUCBSVFQgZGF0YTpcbiIpOwogCiAJaWYgKGJwZl9t YXBfbG9va3VwX2VsZW0oZmQsICZyYWRkciwgJnBpbmdpbmZvKSkgewotCQlwZXJyb3IoImJwZl9t YXBfbG9va3VwIGVsZW06ICIpOworCQlwZXJyb3IoImJwZl9tYXBfbG9va3VwIGVsZW0iKTsKIAkJ cmV0dXJuIDE7CiAJfQogCi0tIAoyLjIwLjEKCgpGcm9tIDYzNTY4MDJmMTM5ZmRkN2IxNmYzNzQ4 OGM4NmM4ZmIxZmMwNDdhYTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gUnV0 aGVyZm9yZCA8am9obi5ydXRoZXJmb3JkQGRla3RlY2guY29tLmF1PgpEYXRlOiBUdWUsIDI2IE5v diAyMDE5IDEzOjUyOjU1ICsxMTAwClN1YmplY3Q6IFtQQVRDSCAyMi8yNV0gdGlwYzogZml4IGxp bmsgbmFtZSBsZW5ndGggY2hlY2sKClsgVXBzdHJlYW0gY29tbWl0IGZkNTY3YWMyMGNiMDM3N2Zm NDY2ZDMzMzdlNmU5YWM1ZDBjYjE1ZTQgXQoKSW4gY29tbWl0IDRmMDdiODBjOTczMyAoInRpcGM6 IGNoZWNrIG1zZy0+cmVxIGRhdGEgbGVuIGluCnRpcGNfbmxfY29tcGF0X2JlYXJlcl9kaXNhYmxl IikgdGhlIHNhbWUgcGF0Y2ggY29kZSB3YXMgY29waWVkIGludG8Kcm91dGluZXM6IHRpcGNfbmxf Y29tcGF0X2JlYXJlcl9kaXNhYmxlKCksCnRpcGNfbmxfY29tcGF0X2xpbmtfc3RhdF9kdW1wKCkg YW5kIHRpcGNfbmxfY29tcGF0X2xpbmtfcmVzZXRfc3RhdHMoKS4KVGhlIHR3byBsaW5rIHJvdXRp bmUgb2NjdXJyZW5jZXMgc2hvdWxkIGhhdmUgYmVlbiBtb2RpZmllZCB0byBjaGVjawp0aGUgbWF4 aW11bSBsaW5rIG5hbWUgbGVuZ3RoIGFuZCBub3QgYmVhcmVyIG5hbWUgbGVuZ3RoLgoKRml4ZXM6 IDRmMDdiODBjOTczMyAoInRpcGM6IGNoZWNrIG1zZy0+cmVnIGRhdGEgbGVuIGluIHRpcGNfbmxf Y29tcGF0X2JlYXJlcl9kaXNhYmxlIikKU2lnbmVkLW9mZi1ieTogSm9obiBSdXRoZXJmb3JkIDxq b2huLnJ1dGhlcmZvcmRAZGVrdGVjaC5jb20uYXU+CkFja2VkLWJ5OiBKb24gTWFsb3kgPGpvbi5t YWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9uZXRsaW5rX2NvbXBhdC5jIHwgNCArKy0tCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC90aXBjL25ldGxpbmtfY29tcGF0LmMgYi9uZXQvdGlwYy9uZXRsaW5rX2NvbXBhdC5j CmluZGV4IGUxMzVkNGUxMTIzMS4uZDRkMjkyODQyNGUyIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9u ZXRsaW5rX2NvbXBhdC5jCisrKyBiL25ldC90aXBjL25ldGxpbmtfY29tcGF0LmMKQEAgLTU1MCw3 ICs1NTAsNyBAQCBzdGF0aWMgaW50IHRpcGNfbmxfY29tcGF0X2xpbmtfc3RhdF9kdW1wKHN0cnVj dCB0aXBjX25sX2NvbXBhdF9tc2cgKm1zZywKIAlpZiAobGVuIDw9IDApCiAJCXJldHVybiAtRUlO VkFMOwogCi0JbGVuID0gbWluX3QoaW50LCBsZW4sIFRJUENfTUFYX0JFQVJFUl9OQU1FKTsKKwls ZW4gPSBtaW5fdChpbnQsIGxlbiwgVElQQ19NQVhfTElOS19OQU1FKTsKIAlpZiAoIXN0cmluZ19p c192YWxpZChuYW1lLCBsZW4pKQogCQlyZXR1cm4gLUVJTlZBTDsKIApAQCAtODIyLDcgKzgyMiw3 IEBAIHN0YXRpYyBpbnQgdGlwY19ubF9jb21wYXRfbGlua19yZXNldF9zdGF0cyhzdHJ1Y3QgdGlw Y19ubF9jb21wYXRfY21kX2RvaXQgKmNtZCwKIAlpZiAobGVuIDw9IDApCiAJCXJldHVybiAtRUlO VkFMOwogCi0JbGVuID0gbWluX3QoaW50LCBsZW4sIFRJUENfTUFYX0JFQVJFUl9OQU1FKTsKKwls ZW4gPSBtaW5fdChpbnQsIGxlbiwgVElQQ19NQVhfTElOS19OQU1FKTsKIAlpZiAoIXN0cmluZ19p c192YWxpZChuYW1lLCBsZW4pKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotLSAKMi4yMC4xCgoKRnJv bSAxZDU5MGRkNzExMTM2NGY5YjNkMWVmOTliYzI5MDA5OTRlZDMyYzZmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBUaGFkZXUgTGltYSBkZSBTb3V6YSBDYXNjYXJkbyA8Y2FzY2FyZG9A Y2Fub25pY2FsLmNvbT4KRGF0ZTogVGh1LCAyOCBOb3YgMjAxOSAxNTo1ODowNiAtMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMjMvMjVdIHNlbGZ0ZXN0czogcG10dTogdXNlIC1vbmVsaW5lIGZvciBpcCBy b3V0ZSBsaXN0IGNhY2hlCgpbIFVwc3RyZWFtIGNvbW1pdCAyNzQ1YWVhNjc1MGZmMGQyYzQ4Mjg1 ZDI1YmRiMDBlNWI2MzZlYzhiIF0KClNvbWUgdmVyc2lvbnMgb2YgaXByb3V0ZTIgd2lsbCBvdXRw dXQgbW9yZSB0aGFuIG9uZSBsaW5lIHBlciBlbnRyeSwgd2hpY2gKd2lsbCBjYXVzZSB0aGUgdGVz dCB0byBmYWlsLCBsaWtlOgoKVEVTVDogaXB2NjogbGlzdCBhbmQgZmx1c2ggY2FjaGVkIGV4Y2Vw dGlvbnMgICAgICAgICAgICAgICAgICAgICAgICBbRkFJTF0KICBjYW4ndCBsaXN0IGNhY2hlZCBl eGNlcHRpb25zCgpUaGF0IGhhcHBlbnMsIGZvciBleGFtcGxlLCB3aXRoIGlwcm91dGUyIDQuMTUu MC4gV2hlbiB1c2luZyB0aGUgLW9uZWxpbmUKb3B0aW9uLCB0aGlzIHdpbGwgd29yayBqdXN0IGZp bmU6CgpURVNUOiBpcHY2OiBsaXN0IGFuZCBmbHVzaCBjYWNoZWQgZXhjZXB0aW9ucyAgICAgICAg ICAgICAgICAgICAgICAgIFsgT0sgXQoKVGhpcyBhbHNvIHdvcmtzIGp1c3QgZmluZSB3aXRoIGEg bW9yZSByZWNlbnQgdmVyc2lvbiBvZiBpcHJvdXRlMiwgbGlrZQo1LjQuMC4KCkZvciBzb21lIHJl YXNvbiwgdHdvIGxpbmVzIGFyZSBwcmludGVkIGZvciB0aGUgSVB2NCB0ZXN0IG5vIG1hdHRlciB3 aGF0CnZlcnNpb24gb2YgaXByb3V0ZTIgaXMgdXNlZC4gVXNlIHRoZSBzYW1lIC1vbmVsaW5lIHBh cmFtZXRlciB0aGVyZSBpbnN0ZWFkCm9mIGNvdW50aW5nIHRoZSBsaW5lcyB0d2ljZS4KCkZpeGVz OiBiOTY0NjQxZTk5MjUgKCJzZWxmdGVzdHM6IHBtdHU6IE1ha2UgbGlzdF9mbHVzaF9pcHY2X2V4 Y2VwdGlvbiB0ZXN0IG1vcmUgZGVtYW5kaW5nIikKU2lnbmVkLW9mZi1ieTogVGhhZGV1IExpbWEg ZGUgU291emEgQ2FzY2FyZG8gPGNhc2NhcmRvQGNhbm9uaWNhbC5jb20+CkFja2VkLWJ5OiBTdGVm YW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMv bmV0L3BtdHUuc2ggfCA1ICsrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9w bXR1LnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3BtdHUuc2gKaW5kZXggYWIzNjdl NzVmMDk1Li5kNjk3ODE1ZDI3ODUgMTAwNzU1Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3Rz L25ldC9wbXR1LnNoCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9wbXR1LnNoCkBA IC0xMjQ5LDggKzEyNDksNyBAQCB0ZXN0X2xpc3RfZmx1c2hfaXB2NF9leGNlcHRpb24oKSB7CiAJ ZG9uZQogCXJ1bl9jbWQgJHtuc19hfSBwaW5nIC1xIC1NIHdhbnQgLWkgMC4xIC1jIDIgLXMgMTgw MCAiJHtkc3QyfSIKIAotCSMgRWFjaCBleGNlcHRpb24gaXMgcHJpbnRlZCBhcyB0d28gbGluZXMK LQlpZiBbICIkKCR7bnNfYX0gaXAgcm91dGUgbGlzdCBjYWNoZSB8IHdjIC1sKSIgLW5lIDIwMiBd OyB0aGVuCisJaWYgWyAiJCgke25zX2F9IGlwIC1vbmVsaW5lIHJvdXRlIGxpc3QgY2FjaGUgfCB3 YyAtbCkiIC1uZSAxMDEgXTsgdGhlbgogCQllcnIgIiAgY2FuJ3QgbGlzdCBjYWNoZWQgZXhjZXB0 aW9ucyIKIAkJZmFpbD0xCiAJZmkKQEAgLTEzMDAsNyArMTI5OSw3IEBAIHRlc3RfbGlzdF9mbHVz aF9pcHY2X2V4Y2VwdGlvbigpIHsKIAkJcnVuX2NtZCAke25zX2F9IHBpbmcgLXEgLU0gd2FudCAt aSAwLjEgLXcgMSAtcyAxODAwICIke2RzdF9wcmVmaXgxfSR7aX0iCiAJZG9uZQogCXJ1bl9jbWQg JHtuc19hfSBwaW5nIC1xIC1NIHdhbnQgLWkgMC4xIC13IDEgLXMgMTgwMCAiJHtkc3QyfSIKLQlp ZiBbICIkKCR7bnNfYX0gaXAgLTYgcm91dGUgbGlzdCBjYWNoZSB8IHdjIC1sKSIgLW5lIDEwMSBd OyB0aGVuCisJaWYgWyAiJCgke25zX2F9IGlwIC1vbmVsaW5lIC02IHJvdXRlIGxpc3QgY2FjaGUg fCB3YyAtbCkiIC1uZSAxMDEgXTsgdGhlbgogCQllcnIgIiAgY2FuJ3QgbGlzdCBjYWNoZWQgZXhj ZXB0aW9ucyIKIAkJZmFpbD0xCiAJZmkKLS0gCjIuMjAuMQoKCkZyb20gYjk2N2JmMzljYzc4NTNk NzZkZjAzYzUyYjcxZjY4ZWI0OTk5ZjM4YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog SGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAxIERlYyAy MDE5IDEwOjI3OjE0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyNC8yNV0gcjgxNjk6IGZpeCBqdW1i byBjb25maWd1cmF0aW9uIGZvciBSVEw4MTY4ZXZsCgpbIFVwc3RyZWFtIGNvbW1pdCAxNDAxMmM5 ZjNiYjkyMmI5ZTA3NTFiYTQzZDE1Y2M1ODBhNjA0OWJmIF0KCkFsYW4gcmVwb3J0ZWQgWzBdIHRo YXQgbmV0d29yayBpcyBicm9rZW4gc2luY2UgdGhlIHJlZmVyZW5jZWQgY29tbWl0CndoZW4gdXNp bmcganVtYm8gZnJhbWVzLiBUaGlzIGNvbW1pdCBpc24ndCB3cm9uZywgaXQganVzdCByZXZlYWxl ZAphbm90aGVyIGlzc3VlIHRoYXQgaGFzIGJlZW4gZXhpc3RpbmcgYmVmb3JlLiBBY2NvcmRpbmcg dG8gdGhlIHZlbmRvcgpkcml2ZXIgdGhlIFJUTDgxNjhlLXNwZWNpZmljIGp1bWJvIGNvbmZpZyBk b2Vzbid0IGFwcGx5IGZvciBSVEw4MTY4ZXZsLgoKWzBdIGh0dHBzOi8vbGttbC5vcmcvbGttbC8y MDE5LzExLzMwLzExOQoKRml4ZXM6IDRlYmNiMTEzZWRjYyAoInI4MTY5OiBmaXgganVtYm8gcGFj a2V0IGhhbmRsaW5nIG9uIHJlc3VtZSBmcm9tIHN1c3BlbmQiKQpSZXBvcnRlZC1ieTogQWxhbiBK LiBXeWxpZSA8YWxhbkB3eWxpZS5tZS51az4KVGVzdGVkLWJ5OiBBbGFuIEouIFd5bGllIDxhbGFu QHd5bGllLm1lLnVrPgpTaWduZWQtb2ZmLWJ5OiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFA Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9tYWluLmMgfCAy ICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5X21haW4uYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjlfbWFpbi5jCmluZGV4IGMzM2M0Mzg4NTBjYy4u OTc5OTM2NTVhZDg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4 MTY5X21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5X21haW4u YwpAQCAtNDExOCw3ICs0MTE4LDcgQEAgc3RhdGljIHZvaWQgcnRsX2h3X2p1bWJvX2VuYWJsZShz dHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0cCkKIAljYXNlIFJUTF9HSUdBX01BQ19WRVJfMjcgLi4u IFJUTF9HSUdBX01BQ19WRVJfMjg6CiAJCXI4MTY4ZHBfaHdfanVtYm9fZW5hYmxlKHRwKTsKIAkJ YnJlYWs7Ci0JY2FzZSBSVExfR0lHQV9NQUNfVkVSXzMxIC4uLiBSVExfR0lHQV9NQUNfVkVSXzM0 OgorCWNhc2UgUlRMX0dJR0FfTUFDX1ZFUl8zMSAuLi4gUlRMX0dJR0FfTUFDX1ZFUl8zMzoKIAkJ cjgxNjhlX2h3X2p1bWJvX2VuYWJsZSh0cCk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0tIAoyLjIw LjEKCgpGcm9tIDUwMjEzNDdkMjNjNGUzMWU0YWEyNjI3OGNlODQ0NmVjNDRiN2MzNmMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFp bC5jb20+CkRhdGU6IFN1biwgMSBEZWMgMjAxOSAxMDozOTo1NiArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMjUvMjVdIHI4MTY5OiBmaXggcmVzdW1lIG9uIGNhYmxlIHBsdWctaW4KClsgVXBzdHJlYW0g Y29tbWl0IDM5OGZkNDA4Y2NmYjVlNDRiMWNiZTczYTIwOWQyMjgxZDNlZmE4M2MgXQoKSXQgd2Fz IHJlcG9ydGVkIFswXSB0aGF0IG5ldHdvcmsgZG9lc24ndCB3YWtlIHVwIG9uIGNhYmxlIHBsdWct aW4gd2l0aApjZXJ0YWluIGNoaXAgdmVyc2lvbnMuIFJlYXNvbiBpcyB0aGF0IG9uIHRoZXNlIGNo aXAgdmVyc2lvbnMgdGhlIFBIWQpkb2Vzbid0IGRldGVjdCBjYWJsZSBwbHVnLWluIHdoZW4gYmVp bmcgaW4gcG93ZXItZG93biBtb2RlLiBTbyBwcmV2ZW50CnRoZSBQSFkgZnJvbSBwb3dlcmluZyBk b3duIGlmIFdvTCBpcyBlbmFibGVkLgoKWzBdIGh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9MjAyMTAzCgpGaXhlczogOTVmYjhiYjMxODFiICgibmV0OiBwaHk6IGZv cmNlIHBoeSBzdXNwZW5kIHdoZW4gY2FsbGluZyBwaHlfc3RvcCIpClJlcG9ydGVkLWJ5OiBqaGRz a2FnMyA8amhkc2thZzNAdHV0YW5vdGEuY29tPgpUZXN0ZWQtYnk6IGpoZHNrYWczIDxqaGRza2Fn M0B0dXRhbm90YS5jb20+ClNpZ25lZC1vZmYtYnk6IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0 MUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5X21haW4uYyB8 IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9yZWFsdGVrL3I4MTY5X21haW4uYwppbmRleCA5Nzk5MzY1NWFkODcuLjFkNjdlZWVhYjc5ZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9tYWluLmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9tYWluLmMKQEAgLTE1MTYsNiAr MTUxNiw3IEBAIHN0YXRpYyB2b2lkIF9fcnRsODE2OV9zZXRfd29sKHN0cnVjdCBydGw4MTY5X3By aXZhdGUgKnRwLCB1MzIgd29sb3B0cykKIAlydGxfbG9ja19jb25maWdfcmVncyh0cCk7CiAKIAlk ZXZpY2Vfc2V0X3dha2V1cF9lbmFibGUodHBfdG9fZGV2KHRwKSwgd29sb3B0cyk7CisJdHAtPmRl di0+d29sX2VuYWJsZWQgPSB3b2xvcHRzID8gMSA6IDA7CiB9CiAKIHN0YXRpYyBpbnQgcnRsODE2 OV9zZXRfd29sKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBldGh0b29sX3dvbGluZm8g KndvbCkKLS0gCjIuMjAuMQoK ----Next_Part(Mon_Dec__2_19_21_47_2019_677)----