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=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham 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 63700C3F2D2 for ; Fri, 28 Feb 2020 17:39:40 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0DB082051A for ; Fri, 28 Feb 2020 17:39:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="MFz36iw5" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0DB082051A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=quicinc.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:51698 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7jbv-0000HQ-8D for qemu-devel@archiver.kernel.org; Fri, 28 Feb 2020 12:39:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:58641) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7imU-0005ty-PT for qemu-devel@nongnu.org; Fri, 28 Feb 2020 11:46:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j7imP-0007VZ-Uj for qemu-devel@nongnu.org; Fri, 28 Feb 2020 11:46:30 -0500 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:13250) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1j7imP-0005Uz-7j for qemu-devel@nongnu.org; Fri, 28 Feb 2020 11:46:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1582908385; x=1614444385; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=mIrYXtH3eJ+JVVsYYsN3Uh9KZ4tWnmYYvTY6O5BHOuQ=; b=MFz36iw5BGbjMVJOi1AyV4sQes3x2m3YQ3uiCI1xtpEZstqmcOxDer6h c88055qQOZFBt4F2nChg9xzZ1XA3XAnrhqeOA97PNdvrTbnGWWS+db2B0 nHe/6qYJ6EjKMLuN9xjskBiBIlnCs3cSD0SFkFHbaMBaaBeIfaA6Pczlg c=; Received: from unknown (HELO ironmsg01-sd.qualcomm.com) ([10.53.140.141]) by alexa-out-sd-01.qualcomm.com with ESMTP; 28 Feb 2020 08:44:34 -0800 Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg01-sd.qualcomm.com with ESMTP; 28 Feb 2020 08:44:32 -0800 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id 7D1EC1102; Fri, 28 Feb 2020 10:44:32 -0600 (CST) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [RFC PATCH v2 52/67] Hexagon Linux user emulation Date: Fri, 28 Feb 2020 10:43:48 -0600 Message-Id: <1582908244-304-53-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1582908244-304-1-git-send-email-tsimpson@quicinc.com> References: <1582908244-304-1-git-send-email-tsimpson@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x [fuzzy] X-Received-From: 199.106.114.38 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: riku.voipio@iki.fi, richard.henderson@linaro.org, laurent@vivier.eu, Taylor Simpson , philmd@redhat.com, aleksandar.m.mail@gmail.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" SW1wbGVtZW50YXRpb24gb2YgTGludXggdXNlciBlbXVsYXRpb24gZm9yIFJJU0MtVgpTb21lIGNv bW1vbiBmaWxlcyBtb2RpZmllZCBpbiBhZGRpdGlvbiB0byBuZXcgZmlsZXMgaW4gbGludXgtdXNl ci9oZXhhZ29uCgpTaWduZWQtb2ZmLWJ5OiBUYXlsb3IgU2ltcHNvbiA8dHNpbXBzb25AcXVpY2lu Yy5jb20+Ci0tLQogbGludXgtdXNlci9oZXhhZ29uL3NvY2tiaXRzLmggICAgICAgfCAgMTggKysK IGxpbnV4LXVzZXIvaGV4YWdvbi9zeXNjYWxsX25yLmggICAgIHwgMzQ2ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogbGludXgtdXNlci9oZXhhZ29uL3RhcmdldF9jcHUuaCAg ICAgfCAgNDQgKysrKysKIGxpbnV4LXVzZXIvaGV4YWdvbi90YXJnZXRfZWxmLmggICAgIHwgIDM4 ICsrKysKIGxpbnV4LXVzZXIvaGV4YWdvbi90YXJnZXRfZmNudGwuaCAgIHwgIDE4ICsrCiBsaW51 eC11c2VyL2hleGFnb24vdGFyZ2V0X3NpZ25hbC5oICB8ICAzNCArKysrCiBsaW51eC11c2VyL2hl eGFnb24vdGFyZ2V0X3N0cnVjdHMuaCB8ICA0NiArKysrKwogbGludXgtdXNlci9oZXhhZ29uL3Rh cmdldF9zeXNjYWxsLmggfCAgMzIgKysrKwogbGludXgtdXNlci9oZXhhZ29uL3Rlcm1iaXRzLmgg ICAgICAgfCAgMTggKysKIGxpbnV4LXVzZXIvc3lzY2FsbF9kZWZzLmggICAgICAgICAgIHwgIDMz ICsrKysKIGxpbnV4LXVzZXIvZWxmbG9hZC5jICAgICAgICAgICAgICAgIHwgIDE2ICsrCiBsaW51 eC11c2VyL2hleGFnb24vY3B1X2xvb3AuYyAgICAgICB8IDE3MyArKysrKysrKysrKysrKysrKysK IGxpbnV4LXVzZXIvaGV4YWdvbi9zaWduYWwuYyAgICAgICAgIHwgMjc2ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysKIGxpbnV4LXVzZXIvc3lzY2FsbC5jICAgICAgICAgICAgICAgIHwgICAy ICsKIDE0IGZpbGVzIGNoYW5nZWQsIDEwOTQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAw NjQ0IGxpbnV4LXVzZXIvaGV4YWdvbi9zb2NrYml0cy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGlu dXgtdXNlci9oZXhhZ29uL3N5c2NhbGxfbnIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpbnV4LXVz ZXIvaGV4YWdvbi90YXJnZXRfY3B1LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaW51eC11c2VyL2hl eGFnb24vdGFyZ2V0X2VsZi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGludXgtdXNlci9oZXhhZ29u L3RhcmdldF9mY250bC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGludXgtdXNlci9oZXhhZ29uL3Rh cmdldF9zaWduYWwuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpbnV4LXVzZXIvaGV4YWdvbi90YXJn ZXRfc3RydWN0cy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGludXgtdXNlci9oZXhhZ29uL3Rhcmdl dF9zeXNjYWxsLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaW51eC11c2VyL2hleGFnb24vdGVybWJp dHMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpbnV4LXVzZXIvaGV4YWdvbi9jcHVfbG9vcC5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgbGludXgtdXNlci9oZXhhZ29uL3NpZ25hbC5jCgpkaWZmIC0tZ2l0 IGEvbGludXgtdXNlci9oZXhhZ29uL3NvY2tiaXRzLmggYi9saW51eC11c2VyL2hleGFnb24vc29j a2JpdHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmU4OTY2Ci0tLSAv ZGV2L251bGwKKysrIGIvbGludXgtdXNlci9oZXhhZ29uL3NvY2tiaXRzLmgKQEAgLTAsMCArMSwx OCBAQAorLyoKKyAqICBDb3B5cmlnaHQoYykgMjAxOS0yMDIwIFF1YWxjb21tIElubm92YXRpb24g Q2VudGVyLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cisg KiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisjaW5jbHVkZSAiLi4vZ2VuZXJpYy9zb2NrYml0 cy5oIgpkaWZmIC0tZ2l0IGEvbGludXgtdXNlci9oZXhhZ29uL3N5c2NhbGxfbnIuaCBiL2xpbnV4 LXVzZXIvaGV4YWdvbi9zeXNjYWxsX25yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uOWVhMzhjYwotLS0gL2Rldi9udWxsCisrKyBiL2xpbnV4LXVzZXIvaGV4YWdvbi9zeXNj YWxsX25yLmgKQEAgLTAsMCArMSwzNDYgQEAKKy8qCisgKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAy MCBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor ICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworLyoKKyAq IFN5c2NhbGwgbnVtYmVycworICovCisKKyNkZWZpbmUgIFRBUkdFVF9OUl9pb19zZXR1cCAwCisj ZGVmaW5lICBUQVJHRVRfTlJfaW9fZGVzdHJveSAxCisjZGVmaW5lICBUQVJHRVRfTlJfaW9fc3Vi bWl0IDIKKyNkZWZpbmUgIFRBUkdFVF9OUl9pb19jYW5jZWwgMworI2RlZmluZSAgVEFSR0VUX05S X2lvX2dldGV2ZW50cyA0CisjZGVmaW5lICBUQVJHRVRfTlJfc2V0eGF0dHIgNQorI2RlZmluZSAg VEFSR0VUX05SX2xzZXR4YXR0ciA2CisjZGVmaW5lICBUQVJHRVRfTlJfZnNldHhhdHRyIDcKKyNk ZWZpbmUgIFRBUkdFVF9OUl9nZXR4YXR0ciA4CisjZGVmaW5lICBUQVJHRVRfTlJfbGdldHhhdHRy IDkKKyNkZWZpbmUgIFRBUkdFVF9OUl9mZ2V0eGF0dHIgMTAKKyNkZWZpbmUgIFRBUkdFVF9OUl9s aXN0eGF0dHIgMTEKKyNkZWZpbmUgIFRBUkdFVF9OUl9sbGlzdHhhdHRyIDEyCisjZGVmaW5lICBU QVJHRVRfTlJfZmxpc3R4YXR0ciAxMworI2RlZmluZSAgVEFSR0VUX05SX3JlbW92ZXhhdHRyIDE0 CisjZGVmaW5lICBUQVJHRVRfTlJfbHJlbW92ZXhhdHRyIDE1CisjZGVmaW5lICBUQVJHRVRfTlJf ZnJlbW92ZXhhdHRyIDE2CisjZGVmaW5lICBUQVJHRVRfTlJfZ2V0Y3dkIDE3CisjZGVmaW5lICBU QVJHRVRfTlJfbG9va3VwX2Rjb29raWUgMTgKKyNkZWZpbmUgIFRBUkdFVF9OUl9ldmVudGZkMiAx OQorI2RlZmluZSAgVEFSR0VUX05SX2Vwb2xsX2NyZWF0ZTEgMjAKKyNkZWZpbmUgIFRBUkdFVF9O Ul9lcG9sbF9jdGwgMjEKKyNkZWZpbmUgIFRBUkdFVF9OUl9lcG9sbF9wd2FpdCAyMgorI2RlZmlu ZSAgVEFSR0VUX05SX2R1cCAyMworI2RlZmluZSAgVEFSR0VUX05SX2R1cDMgMjQKKyNkZWZpbmUg IFRBUkdFVF9OUjMyNjRfZmNudGwgMjUKKyNkZWZpbmUgIFRBUkdFVF9OUl9pbm90aWZ5X2luaXQx IDI2CisjZGVmaW5lICBUQVJHRVRfTlJfaW5vdGlmeV9hZGRfd2F0Y2ggMjcKKyNkZWZpbmUgIFRB UkdFVF9OUl9pbm90aWZ5X3JtX3dhdGNoIDI4CisjZGVmaW5lICBUQVJHRVRfTlJfaW9jdGwgMjkK KyNkZWZpbmUgIFRBUkdFVF9OUl9pb3ByaW9fc2V0IDMwCisjZGVmaW5lICBUQVJHRVRfTlJfaW9w cmlvX2dldCAzMQorI2RlZmluZSAgVEFSR0VUX05SX2Zsb2NrIDMyCisjZGVmaW5lICBUQVJHRVRf TlJfbWtub2RhdCAzMworI2RlZmluZSAgVEFSR0VUX05SX21rZGlyYXQgMzQKKyNkZWZpbmUgIFRB UkdFVF9OUl91bmxpbmthdCAzNQorI2RlZmluZSAgVEFSR0VUX05SX3N5bWxpbmthdCAzNgorI2Rl ZmluZSAgVEFSR0VUX05SX2xpbmthdCAzNworI2RlZmluZSAgVEFSR0VUX05SX3JlbmFtZWF0IDM4 CisjZGVmaW5lICBUQVJHRVRfTlJfdW1vdW50MiAzOQorI2RlZmluZSAgVEFSR0VUX05SX21vdW50 IDQwCisjZGVmaW5lICBUQVJHRVRfTlJfcGl2b3Rfcm9vdCA0MQorI2RlZmluZSAgVEFSR0VUX05S X25mc3NlcnZjdGwgNDIKKyNkZWZpbmUgIFRBUkdFVF9OUjMyNjRfc3RhdGZzIDQzCisjZGVmaW5l ICBUQVJHRVRfTlJfc3RhdGZzIFRBUkdFVF9OUjMyNjRfc3RhdGZzCisjZGVmaW5lICBUQVJHRVRf TlIzMjY0X2ZzdGF0ZnMgNDQKKyNkZWZpbmUgIFRBUkdFVF9OUjMyNjRfdHJ1bmNhdGUgNDUKKyNk ZWZpbmUgIFRBUkdFVF9OUjMyNjRfZnRydW5jYXRlIDQ2CisjZGVmaW5lICBUQVJHRVRfTlJfZmFs bG9jYXRlIDQ3CisjZGVmaW5lICBUQVJHRVRfTlJfZmFjY2Vzc2F0IDQ4CisjZGVmaW5lICBUQVJH RVRfTlJfY2hkaXIgNDkKKyNkZWZpbmUgIFRBUkdFVF9OUl9mY2hkaXIgNTAKKyNkZWZpbmUgIFRB UkdFVF9OUl9jaHJvb3QgNTEKKyNkZWZpbmUgIFRBUkdFVF9OUl9mY2htb2QgNTIKKyNkZWZpbmUg IFRBUkdFVF9OUl9mY2htb2RhdCA1MworI2RlZmluZSAgVEFSR0VUX05SX2ZjaG93bmF0IDU0Cisj ZGVmaW5lICBUQVJHRVRfTlJfZmNob3duIDU1CisjZGVmaW5lICBUQVJHRVRfTlJfb3BlbmF0IDU2 CisjZGVmaW5lICBUQVJHRVRfTlJfY2xvc2UgNTcKKyNkZWZpbmUgIFRBUkdFVF9OUl92aGFuZ3Vw IDU4CisjZGVmaW5lICBUQVJHRVRfTlJfcGlwZTIgNTkKKyNkZWZpbmUgIFRBUkdFVF9OUl9xdW90 YWN0bCA2MAorI2RlZmluZSAgVEFSR0VUX05SX2dldGRlbnRzNjQgNjEKKyNkZWZpbmUgIFRBUkdF VF9OUjMyNjRfbHNlZWsgNjIKKyNkZWZpbmUgIFRBUkdFVF9OUl9yZWFkIDYzCisjZGVmaW5lICBU QVJHRVRfTlJfd3JpdGUgNjQKKyNkZWZpbmUgIFRBUkdFVF9OUl9yZWFkdiA2NQorI2RlZmluZSAg VEFSR0VUX05SX3dyaXRldiA2NgorI2RlZmluZSAgVEFSR0VUX05SX3ByZWFkNjQgNjcKKyNkZWZp bmUgIFRBUkdFVF9OUl9wd3JpdGU2NCA2OAorI2RlZmluZSAgVEFSR0VUX05SX3ByZWFkdiA2OQor I2RlZmluZSAgVEFSR0VUX05SX3B3cml0ZXYgNzAKKyNkZWZpbmUgIFRBUkdFVF9OUjMyNjRfc2Vu ZGZpbGUgNzEKKyNkZWZpbmUgIFRBUkdFVF9OUl9wc2VsZWN0NiA3MgorI2RlZmluZSAgVEFSR0VU X05SX3Bwb2xsIDczCisjZGVmaW5lICBUQVJHRVRfTlJfc2lnbmFsZmQ0IDc0CisjZGVmaW5lICBU QVJHRVRfTlJfdm1zcGxpY2UgNzUKKyNkZWZpbmUgIFRBUkdFVF9OUl9zcGxpY2UgNzYKKyNkZWZp bmUgIFRBUkdFVF9OUl90ZWUgNzcKKyNkZWZpbmUgIFRBUkdFVF9OUl9yZWFkbGlua2F0IDc4Cisj ZGVmaW5lICBUQVJHRVRfTlIzMjY0X2ZzdGF0YXQgNzkKKyNkZWZpbmUgIFRBUkdFVF9OUjMyNjRf ZnN0YXQgODAKKyNkZWZpbmUgIFRBUkdFVF9OUl9mc3RhdCAgVEFSR0VUX05SMzI2NF9mc3RhdAor I2RlZmluZSAgVEFSR0VUX05SX3N5bmMgODEKKyNkZWZpbmUgIFRBUkdFVF9OUl9mc3luYyA4Mgor I2RlZmluZSAgVEFSR0VUX05SX2ZkYXRhc3luYyA4MworI2RlZmluZSAgVEFSR0VUX05SX3N5bmNf ZmlsZV9yYW5nZSA4NAorI2RlZmluZSAgVEFSR0VUX05SX3RpbWVyZmRfY3JlYXRlIDg1CisjZGVm aW5lICBUQVJHRVRfTlJfdGltZXJmZF9zZXR0aW1lIDg2CisjZGVmaW5lICBUQVJHRVRfTlJfdGlt ZXJmZF9nZXR0aW1lIDg3CisjZGVmaW5lICBUQVJHRVRfTlJfdXRpbWVuc2F0IDg4CisjZGVmaW5l ICBUQVJHRVRfTlJfYWNjdCA4OQorI2RlZmluZSAgVEFSR0VUX05SX2NhcGdldCA5MAorI2RlZmlu ZSAgVEFSR0VUX05SX2NhcHNldCA5MQorI2RlZmluZSAgVEFSR0VUX05SX3BlcnNvbmFsaXR5IDky CisjZGVmaW5lICBUQVJHRVRfTlJfZXhpdCA5MworI2RlZmluZSAgVEFSR0VUX05SX2V4aXRfZ3Jv dXAgOTQKKyNkZWZpbmUgIFRBUkdFVF9OUl93YWl0aWQgOTUKKyNkZWZpbmUgIFRBUkdFVF9OUl9z ZXRfdGlkX2FkZHJlc3MgOTYKKyNkZWZpbmUgIFRBUkdFVF9OUl91bnNoYXJlIDk3CisjZGVmaW5l ICBUQVJHRVRfTlJfZnV0ZXggOTgKKyNkZWZpbmUgIFRBUkdFVF9OUl9zZXRfcm9idXN0X2xpc3Qg OTkKKyNkZWZpbmUgIFRBUkdFVF9OUl9nZXRfcm9idXN0X2xpc3QgMTAwCisjZGVmaW5lICBUQVJH RVRfTlJfbmFub3NsZWVwIDEwMQorI2RlZmluZSAgVEFSR0VUX05SX2dldGl0aW1lciAxMDIKKyNk ZWZpbmUgIFRBUkdFVF9OUl9zZXRpdGltZXIgMTAzCisjZGVmaW5lICBUQVJHRVRfTlJfa2V4ZWNf bG9hZCAxMDQKKyNkZWZpbmUgIFRBUkdFVF9OUl9pbml0X21vZHVsZSAxMDUKKyNkZWZpbmUgIFRB UkdFVF9OUl9kZWxldGVfbW9kdWxlIDEwNgorI2RlZmluZSAgVEFSR0VUX05SX3RpbWVyX2NyZWF0 ZSAxMDcKKyNkZWZpbmUgIFRBUkdFVF9OUl90aW1lcl9nZXR0aW1lIDEwOAorI2RlZmluZSAgVEFS R0VUX05SX3RpbWVyX2dldG92ZXJydW4gMTA5CisjZGVmaW5lICBUQVJHRVRfTlJfdGltZXJfc2V0 dGltZSAxMTAKKyNkZWZpbmUgIFRBUkdFVF9OUl90aW1lcl9kZWxldGUgMTExCisjZGVmaW5lICBU QVJHRVRfTlJfY2xvY2tfc2V0dGltZSAxMTIKKyNkZWZpbmUgIFRBUkdFVF9OUl9jbG9ja19nZXR0 aW1lIDExMworI2RlZmluZSAgVEFSR0VUX05SX2Nsb2NrX2dldHJlcyAxMTQKKyNkZWZpbmUgIFRB UkdFVF9OUl9jbG9ja19uYW5vc2xlZXAgMTE1CisjZGVmaW5lICBUQVJHRVRfTlJfc3lzbG9nIDEx NgorI2RlZmluZSAgVEFSR0VUX05SX3B0cmFjZSAxMTcKKyNkZWZpbmUgIFRBUkdFVF9OUl9zY2hl ZF9zZXRwYXJhbSAxMTgKKyNkZWZpbmUgIFRBUkdFVF9OUl9zY2hlZF9zZXRzY2hlZHVsZXIgMTE5 CisjZGVmaW5lICBUQVJHRVRfTlJfc2NoZWRfZ2V0c2NoZWR1bGVyIDEyMAorI2RlZmluZSAgVEFS R0VUX05SX3NjaGVkX2dldHBhcmFtIDEyMQorI2RlZmluZSAgVEFSR0VUX05SX3NjaGVkX3NldGFm ZmluaXR5IDEyMgorI2RlZmluZSAgVEFSR0VUX05SX3NjaGVkX2dldGFmZmluaXR5IDEyMworI2Rl ZmluZSAgVEFSR0VUX05SX3NjaGVkX3lpZWxkIDEyNAorI2RlZmluZSAgVEFSR0VUX05SX3NjaGVk X2dldF9wcmlvcml0eV9tYXggMTI1CisjZGVmaW5lICBUQVJHRVRfTlJfc2NoZWRfZ2V0X3ByaW9y aXR5X21pbiAxMjYKKyNkZWZpbmUgIFRBUkdFVF9OUl9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwgMTI3 CisjZGVmaW5lICBUQVJHRVRfTlJfcmVzdGFydF9zeXNjYWxsIDEyOAorI2RlZmluZSAgVEFSR0VU X05SX2tpbGwgMTI5CisjZGVmaW5lICBUQVJHRVRfTlJfdGtpbGwgMTMwCisjZGVmaW5lICBUQVJH RVRfTlJfdGdraWxsIDEzMQorI2RlZmluZSAgVEFSR0VUX05SX3NpZ2FsdHN0YWNrIDEzMgorI2Rl ZmluZSAgVEFSR0VUX05SX3J0X3NpZ3N1c3BlbmQgMTMzCisjZGVmaW5lICBUQVJHRVRfTlJfcnRf c2lnYWN0aW9uIDEzNAorI2RlZmluZSAgVEFSR0VUX05SX3J0X3NpZ3Byb2NtYXNrIDEzNQorI2Rl ZmluZSAgVEFSR0VUX05SX3J0X3NpZ3BlbmRpbmcgMTM2CisjZGVmaW5lICBUQVJHRVRfTlJfcnRf c2lndGltZWR3YWl0IDEzNworI2RlZmluZSAgVEFSR0VUX05SX3J0X3NpZ3F1ZXVlaW5mbyAxMzgK KyNkZWZpbmUgIFRBUkdFVF9OUl9ydF9zaWdyZXR1cm4gMTM5CisjZGVmaW5lICBUQVJHRVRfTlJf c2V0cHJpb3JpdHkgMTQwCisjZGVmaW5lICBUQVJHRVRfTlJfZ2V0cHJpb3JpdHkgMTQxCisjZGVm aW5lICBUQVJHRVRfTlJfcmVib290IDE0MgorI2RlZmluZSAgVEFSR0VUX05SX3NldHJlZ2lkIDE0 MworI2RlZmluZSAgVEFSR0VUX05SX3NldGdpZCAxNDQKKyNkZWZpbmUgIFRBUkdFVF9OUl9zZXRy ZXVpZCAxNDUKKyNkZWZpbmUgIFRBUkdFVF9OUl9zZXR1aWQgMTQ2CisjZGVmaW5lICBUQVJHRVRf TlJfc2V0cmVzdWlkIDE0NworI2RlZmluZSAgVEFSR0VUX05SX2dldHJlc3VpZCAxNDgKKyNkZWZp bmUgIFRBUkdFVF9OUl9zZXRyZXNnaWQgMTQ5CisjZGVmaW5lICBUQVJHRVRfTlJfZ2V0cmVzZ2lk IDE1MAorI2RlZmluZSAgVEFSR0VUX05SX3NldGZzdWlkIDE1MQorI2RlZmluZSAgVEFSR0VUX05S X3NldGZzZ2lkIDE1MgorI2RlZmluZSAgVEFSR0VUX05SX3RpbWVzIDE1MworI2RlZmluZSAgVEFS R0VUX05SX3NldHBnaWQgMTU0CisjZGVmaW5lICBUQVJHRVRfTlJfZ2V0cGdpZCAxNTUKKyNkZWZp bmUgIFRBUkdFVF9OUl9nZXRzaWQgMTU2CisjZGVmaW5lICBUQVJHRVRfTlJfc2V0c2lkIDE1Nwor I2RlZmluZSAgVEFSR0VUX05SX2dldGdyb3VwcyAxNTgKKyNkZWZpbmUgIFRBUkdFVF9OUl9zZXRn cm91cHMgMTU5CisjZGVmaW5lICBUQVJHRVRfTlJfdW5hbWUgMTYwCisjZGVmaW5lICBUQVJHRVRf TlJfc2V0aG9zdG5hbWUgMTYxCisjZGVmaW5lICBUQVJHRVRfTlJfc2V0ZG9tYWlubmFtZSAxNjIK KyNkZWZpbmUgIFRBUkdFVF9OUl9nZXRybGltaXQgMTYzCisjZGVmaW5lICBUQVJHRVRfTlJfc2V0 cmxpbWl0IDE2NAorI2RlZmluZSAgVEFSR0VUX05SX2dldHJ1c2FnZSAxNjUKKyNkZWZpbmUgIFRB UkdFVF9OUl91bWFzayAxNjYKKyNkZWZpbmUgIFRBUkdFVF9OUl9wcmN0bCAxNjcKKyNkZWZpbmUg IFRBUkdFVF9OUl9nZXRjcHUgMTY4CisjZGVmaW5lICBUQVJHRVRfTlJfZ2V0dGltZW9mZGF5IDE2 OQorI2RlZmluZSAgVEFSR0VUX05SX3NldHRpbWVvZmRheSAxNzAKKyNkZWZpbmUgIFRBUkdFVF9O Ul9hZGp0aW1leCAxNzEKKyNkZWZpbmUgIFRBUkdFVF9OUl9nZXRwaWQgMTcyCisjZGVmaW5lICBU QVJHRVRfTlJfZ2V0cHBpZCAxNzMKKyNkZWZpbmUgIFRBUkdFVF9OUl9nZXR1aWQgMTc0CisjZGVm aW5lICBUQVJHRVRfTlJfZ2V0ZXVpZCAxNzUKKyNkZWZpbmUgIFRBUkdFVF9OUl9nZXRnaWQgMTc2 CisjZGVmaW5lICBUQVJHRVRfTlJfZ2V0ZWdpZCAxNzcKKyNkZWZpbmUgIFRBUkdFVF9OUl9nZXR0 aWQgMTc4CisjZGVmaW5lICBUQVJHRVRfTlJfc3lzaW5mbyAxNzkKKyNkZWZpbmUgIFRBUkdFVF9O Ul9tcV9vcGVuIDE4MAorI2RlZmluZSAgVEFSR0VUX05SX21xX3VubGluayAxODEKKyNkZWZpbmUg IFRBUkdFVF9OUl9tcV90aW1lZHNlbmQgMTgyCisjZGVmaW5lICBUQVJHRVRfTlJfbXFfdGltZWRy ZWNlaXZlIDE4MworI2RlZmluZSAgVEFSR0VUX05SX21xX25vdGlmeSAxODQKKyNkZWZpbmUgIFRB UkdFVF9OUl9tcV9nZXRzZXRhdHRyIDE4NQorI2RlZmluZSAgVEFSR0VUX05SX21zZ2dldCAxODYK KyNkZWZpbmUgIFRBUkdFVF9OUl9tc2djdGwgMTg3CisjZGVmaW5lICBUQVJHRVRfTlJfbXNncmN2 IDE4OAorI2RlZmluZSAgVEFSR0VUX05SX21zZ3NuZCAxODkKKyNkZWZpbmUgIFRBUkdFVF9OUl9z ZW1nZXQgMTkwCisjZGVmaW5lICBUQVJHRVRfTlJfc2VtY3RsIDE5MQorI2RlZmluZSAgVEFSR0VU X05SX3NlbXRpbWVkb3AgMTkyCisjZGVmaW5lICBUQVJHRVRfTlJfc2Vtb3AgMTkzCisjZGVmaW5l ICBUQVJHRVRfTlJfc2htZ2V0IDE5NAorI2RlZmluZSAgVEFSR0VUX05SX3NobWN0bCAxOTUKKyNk ZWZpbmUgIFRBUkdFVF9OUl9zaG1hdCAxOTYKKyNkZWZpbmUgIFRBUkdFVF9OUl9zaG1kdCAxOTcK KyNkZWZpbmUgIFRBUkdFVF9OUl9zb2NrZXQgMTk4CisjZGVmaW5lICBUQVJHRVRfTlJfc29ja2V0 cGFpciAxOTkKKyNkZWZpbmUgIFRBUkdFVF9OUl9iaW5kIDIwMAorI2RlZmluZSAgVEFSR0VUX05S X2xpc3RlbiAyMDEKKyNkZWZpbmUgIFRBUkdFVF9OUl9hY2NlcHQgMjAyCisjZGVmaW5lICBUQVJH RVRfTlJfY29ubmVjdCAyMDMKKyNkZWZpbmUgIFRBUkdFVF9OUl9nZXRzb2NrbmFtZSAyMDQKKyNk ZWZpbmUgIFRBUkdFVF9OUl9nZXRwZWVybmFtZSAyMDUKKyNkZWZpbmUgIFRBUkdFVF9OUl9zZW5k dG8gMjA2CisjZGVmaW5lICBUQVJHRVRfTlJfcmVjdmZyb20gMjA3CisjZGVmaW5lICBUQVJHRVRf TlJfc2V0c29ja29wdCAyMDgKKyNkZWZpbmUgIFRBUkdFVF9OUl9nZXRzb2Nrb3B0IDIwOQorI2Rl ZmluZSAgVEFSR0VUX05SX3NodXRkb3duIDIxMAorI2RlZmluZSAgVEFSR0VUX05SX3NlbmRtc2cg MjExCisjZGVmaW5lICBUQVJHRVRfTlJfcmVjdm1zZyAyMTIKKyNkZWZpbmUgIFRBUkdFVF9OUl9y ZWFkYWhlYWQgMjEzCisjZGVmaW5lICBUQVJHRVRfTlJfYnJrIDIxNAorI2RlZmluZSAgVEFSR0VU X05SX211bm1hcCAyMTUKKyNkZWZpbmUgIFRBUkdFVF9OUl9tcmVtYXAgMjE2CisjZGVmaW5lICBU QVJHRVRfTlJfYWRkX2tleSAyMTcKKyNkZWZpbmUgIFRBUkdFVF9OUl9yZXF1ZXN0X2tleSAyMTgK KyNkZWZpbmUgIFRBUkdFVF9OUl9rZXljdGwgMjE5CisjZGVmaW5lICBUQVJHRVRfTlJfY2xvbmUg MjIwCisjZGVmaW5lICBUQVJHRVRfTlJfZXhlY3ZlIDIyMQorI2RlZmluZSAgVEFSR0VUX05SMzI2 NF9tbWFwIDIyMgorI2RlZmluZSAgVEFSR0VUX05SMzI2NF9mYWR2aXNlNjQgMjIzCisjZGVmaW5l ICBUQVJHRVRfTlJfc3dhcG9uIDIyNAorI2RlZmluZSAgVEFSR0VUX05SX3N3YXBvZmYgMjI1Cisj ZGVmaW5lICBUQVJHRVRfTlJfbXByb3RlY3QgMjI2CisjZGVmaW5lICBUQVJHRVRfTlJfbXN5bmMg MjI3CisjZGVmaW5lICBUQVJHRVRfTlJfbWxvY2sgMjI4CisjZGVmaW5lICBUQVJHRVRfTlJfbXVu bG9jayAyMjkKKyNkZWZpbmUgIFRBUkdFVF9OUl9tbG9ja2FsbCAyMzAKKyNkZWZpbmUgIFRBUkdF VF9OUl9tdW5sb2NrYWxsIDIzMQorI2RlZmluZSAgVEFSR0VUX05SX21pbmNvcmUgMjMyCisjZGVm aW5lICBUQVJHRVRfTlJfbWFkdmlzZSAyMzMKKyNkZWZpbmUgIFRBUkdFVF9OUl9yZW1hcF9maWxl X3BhZ2VzIDIzNAorI2RlZmluZSAgVEFSR0VUX05SX21iaW5kIDIzNQorI2RlZmluZSAgVEFSR0VU X05SX2dldF9tZW1wb2xpY3kgMjM2CisjZGVmaW5lICBUQVJHRVRfTlJfc2V0X21lbXBvbGljeSAy MzcKKyNkZWZpbmUgIFRBUkdFVF9OUl9taWdyYXRlX3BhZ2VzIDIzOAorI2RlZmluZSAgVEFSR0VU X05SX21vdmVfcGFnZXMgMjM5CisjZGVmaW5lICBUQVJHRVRfTlJfcnRfdGdzaWdxdWV1ZWluZm8g MjQwCisjZGVmaW5lICBUQVJHRVRfTlJfcGVyZl9ldmVudF9vcGVuIDI0MQorI2RlZmluZSAgVEFS R0VUX05SX2FjY2VwdDQgMjQyCisjZGVmaW5lICBUQVJHRVRfTlJfcmVjdm1tc2cgMjQzCisjZGVm aW5lICBUQVJHRVRfTlJfYXJjaF9zcGVjaWZpY19zeXNjYWxsIDI0NAorI2RlZmluZSAgVEFSR0VU X05SX3dhaXQ0IDI2MAorI2RlZmluZSAgVEFSR0VUX05SX3BybGltaXQ2NCAyNjEKKyNkZWZpbmUg IFRBUkdFVF9OUl9mYW5vdGlmeV9pbml0IDI2MgorI2RlZmluZSAgVEFSR0VUX05SX2Zhbm90aWZ5 X21hcmsgMjYzCisjZGVmaW5lICBUQVJHRVRfTlJfbmFtZV90b19oYW5kbGVfYXQgICAgICAgICAy NjQKKyNkZWZpbmUgIFRBUkdFVF9OUl9vcGVuX2J5X2hhbmRsZV9hdCAgICAgICAgIDI2NQorI2Rl ZmluZSAgVEFSR0VUX05SX2Nsb2NrX2FkanRpbWUgMjY2CisjZGVmaW5lICBUQVJHRVRfTlJfc3lu Y2ZzIDI2NworI2RlZmluZSAgVEFSR0VUX05SX3NldG5zIDI2OAorI2RlZmluZSAgVEFSR0VUX05S X3NlbmRtbXNnIDI2OQorI2RlZmluZSAgVEFSR0VUX05SX3Byb2Nlc3Nfdm1fcmVhZHYgMjcwCisj ZGVmaW5lICBUQVJHRVRfTlJfcHJvY2Vzc192bV93cml0ZXYgMjcxCisjZGVmaW5lICBUQVJHRVRf TlJfa2NtcCAyNzIKKyNkZWZpbmUgIFRBUkdFVF9OUl9maW5pdF9tb2R1bGUgMjczCisjZGVmaW5l ICBUQVJHRVRfTlJfc2NoZWRfc2V0YXR0ciAyNzQKKyNkZWZpbmUgIFRBUkdFVF9OUl9zY2hlZF9n ZXRhdHRyIDI3NQorI2RlZmluZSAgVEFSR0VUX05SX3JlbmFtZWF0MiAyNzYKKyNkZWZpbmUgIFRB UkdFVF9OUl9zZWNjb21wIDI3NworI2RlZmluZSAgVEFSR0VUX05SX2dldHJhbmRvbSAyNzgKKyNk ZWZpbmUgIFRBUkdFVF9OUl9tZW1mZF9jcmVhdGUgMjc5CisjZGVmaW5lICBUQVJHRVRfTlJfYnBm IDI4MAorI2RlZmluZSAgVEFSR0VUX05SX2V4ZWN2ZWF0IDI4MQorI2RlZmluZSAgVEFSR0VUX05S X29wZW4gMTAyNAorI2RlZmluZSAgVEFSR0VUX05SX2xpbmsgMTAyNQorI2RlZmluZSAgVEFSR0VU X05SX3VubGluayAxMDI2CisjZGVmaW5lICBUQVJHRVRfTlJfbWtub2QgMTAyNworI2RlZmluZSAg VEFSR0VUX05SX2NobW9kIDEwMjgKKyNkZWZpbmUgIFRBUkdFVF9OUl9jaG93biAxMDI5CisjZGVm aW5lICBUQVJHRVRfTlJfbWtkaXIgMTAzMAorI2RlZmluZSAgVEFSR0VUX05SX3JtZGlyIDEwMzEK KyNkZWZpbmUgIFRBUkdFVF9OUl9sY2hvd24gMTAzMgorI2RlZmluZSAgVEFSR0VUX05SX2FjY2Vz cyAxMDMzCisjZGVmaW5lICBUQVJHRVRfTlJfcmVuYW1lIDEwMzQKKyNkZWZpbmUgIFRBUkdFVF9O Ul9yZWFkbGluayAxMDM1CisjZGVmaW5lICBUQVJHRVRfTlJfc3ltbGluayAxMDM2CisjZGVmaW5l ICBUQVJHRVRfTlJfdXRpbWVzIDEwMzcKKyNkZWZpbmUgIFRBUkdFVF9OUjMyNjRfc3RhdCAxMDM4 CisjZGVmaW5lICBUQVJHRVRfTlIzMjY0X2xzdGF0IDEwMzkKKyNkZWZpbmUgIFRBUkdFVF9OUl9w aXBlIDEwNDAKKyNkZWZpbmUgIFRBUkdFVF9OUl9kdXAyIDEwNDEKKyNkZWZpbmUgIFRBUkdFVF9O Ul9lcG9sbF9jcmVhdGUgMTA0MgorI2RlZmluZSAgVEFSR0VUX05SX2lub3RpZnlfaW5pdCAxMDQz CisjZGVmaW5lICBUQVJHRVRfTlJfZXZlbnRmZCAxMDQ0CisjZGVmaW5lICBUQVJHRVRfTlJfc2ln bmFsZmQgMTA0NQorI2RlZmluZSAgVEFSR0VUX05SX2FsYXJtIDEwNTkKKyNkZWZpbmUgIFRBUkdF VF9OUl9nZXRwZ3JwIDEwNjAKKyNkZWZpbmUgIFRBUkdFVF9OUl9wYXVzZSAxMDYxCisjZGVmaW5l ICBUQVJHRVRfTlJfdGltZSAxMDYyCisjZGVmaW5lICBUQVJHRVRfTlJfdXRpbWUgMTA2MworI2Rl ZmluZSAgVEFSR0VUX05SX2NyZWF0IDEwNjQKKyNkZWZpbmUgIFRBUkdFVF9OUl9nZXRkZW50cyAx MDY1CisjZGVmaW5lICBUQVJHRVRfTlJfZnV0aW1lc2F0IDEwNjYKKyNkZWZpbmUgIFRBUkdFVF9O Ul9zZWxlY3QgMTA2NworI2RlZmluZSAgVEFSR0VUX05SX3BvbGwgMTA2OAorI2RlZmluZSAgVEFS R0VUX05SX2Vwb2xsX3dhaXQgMTA2OQorI2RlZmluZSAgVEFSR0VUX05SX3VzdGF0IDEwNzAKKyNk ZWZpbmUgIFRBUkdFVF9OUl92Zm9yayAxMDcxCisjZGVmaW5lICBUQVJHRVRfTlJfb2xkd2FpdDQg MTA3MgorI2RlZmluZSAgVEFSR0VUX05SX3JlY3YgMTA3MworI2RlZmluZSAgVEFSR0VUX05SX3Nl bmQgMTA3NAorI2RlZmluZSAgVEFSR0VUX05SX2JkZmx1c2ggMTA3NQorI2RlZmluZSAgVEFSR0VU X05SX3Vtb3VudCAxMDc2CisjZGVmaW5lICBUQVJHRVRfTlJfdXNlbGliIDEwNzcKKyNkZWZpbmUg IFRBUkdFVF9OUl9fc3lzY3RsIDEwNzgKKyNkZWZpbmUgIFRBUkdFVF9OUl9mb3JrIDEwNzkKKyNk ZWZpbmUgIFRBUkdFVF9OUl9zeXNjYWxscyAoVEFSR0VUX05SX2ZvcmsgKyAxKQorI2RlZmluZSAg VEFSR0VUX05SX2ZzdGF0ZnMgIFRBUkdFVF9OUjMyNjRfZnN0YXRmcworI2RlZmluZSAgVEFSR0VU X05SX3RydW5jYXRlNjQgIFRBUkdFVF9OUjMyNjRfdHJ1bmNhdGUKKyNkZWZpbmUgIFRBUkdFVF9O Ul9mdHJ1bmNhdGU2NCAgVEFSR0VUX05SMzI2NF9mdHJ1bmNhdGUKKyNkZWZpbmUgIFRBUkdFVF9O Ul9zZW5kZmlsZSAgVEFSR0VUX05SMzI2NF9zZW5kZmlsZQorI2RlZmluZSAgVEFSR0VUX05SX25l d2ZzdGF0YXQgIFRBUkdFVF9OUjMyNjRfZnN0YXRhdAorI2RlZmluZSAgVEFSR0VUX05SX2xzdGF0 ICBUQVJHRVRfTlIzMjY0X2xzdGF0CisjZGVmaW5lICBUQVJHRVRfTlJfZmNudGw2NCAgVEFSR0VU X05SMzI2NF9mY250bAorI2RlZmluZSAgVEFSR0VUX05SX19sbHNlZWsgIFRBUkdFVF9OUjMyNjRf bHNlZWsKKyNkZWZpbmUgIFRBUkdFVF9OUl9tbWFwMiAgVEFSR0VUX05SMzI2NF9tbWFwCisjZGVm aW5lICBUQVJHRVRfTlJfZmFkdmlzZTY0XzY0ICBUQVJHRVRfTlIzMjY0X2ZhZHZpc2U2NAorI2Rl ZmluZSAgVEFSR0VUX05SX3N0YXQ2NCAgVEFSR0VUX05SMzI2NF9zdGF0CisKZGlmZiAtLWdpdCBh L2xpbnV4LXVzZXIvaGV4YWdvbi90YXJnZXRfY3B1LmggYi9saW51eC11c2VyL2hleGFnb24vdGFy Z2V0X2NwdS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzZDQ1ZjUKLS0t IC9kZXYvbnVsbAorKysgYi9saW51eC11c2VyL2hleGFnb24vdGFyZ2V0X2NwdS5oCkBAIC0wLDAg KzEsNDQgQEAKKy8qCisgKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAyMCBRdWFsY29tbSBJbm5vdmF0 aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAq ICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2lmbmRlZiBIRVhBR09OX1RBUkdFVF9D UFVfSAorI2RlZmluZSBIRVhBR09OX1RBUkdFVF9DUFVfSAorCitzdGF0aWMgaW5saW5lIHZvaWQg Y3B1X2Nsb25lX3JlZ3NfY2hpbGQoQ1BVSGV4YWdvblN0YXRlICplbnYsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3Vsb25nIG5ld3NwLCB1bnNpZ25lZCBm bGFncykKK3sKKyAgICBpZiAobmV3c3ApIHsKKyAgICAgICAgZW52LT5ncHJbSEVYX1JFR19TUF0g PSBuZXdzcDsKKyAgICB9CisgICAgZW52LT5ncHJbMF0gPSAwOworfQorCitzdGF0aWMgaW5saW5l IHZvaWQgY3B1X2Nsb25lX3JlZ3NfcGFyZW50KENQVUhleGFnb25TdGF0ZSAqZW52LCB1bnNpZ25l ZCBmbGFncykKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lkIGNwdV9zZXRfdGxzKENQVUhleGFn b25TdGF0ZSAqZW52LCB0YXJnZXRfdWxvbmcgbmV3dGxzKQoreworICAgIGVudi0+Z3ByW0hFWF9S RUdfVUdQXSA9IG5ld3RsczsKK30KKworc3RhdGljIGlubGluZSBhYmlfdWxvbmcgZ2V0X3NwX2Zy b21fY3B1c3RhdGUoQ1BVSGV4YWdvblN0YXRlICpzdGF0ZSkKK3sKKyAgICByZXR1cm4gc3RhdGUt PmdwcltIRVhfUkVHX1NQXTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9saW51eC11c2VyL2hl eGFnb24vdGFyZ2V0X2VsZi5oIGIvbGludXgtdXNlci9oZXhhZ29uL3RhcmdldF9lbGYuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YWVhMTEzCi0tLSAvZGV2L251bGwKKysr IGIvbGludXgtdXNlci9oZXhhZ29uL3RhcmdldF9lbGYuaApAQCAtMCwwICsxLDM4IEBACisvKgor ICogIENvcHlyaWdodChjKSAyMDE5LTIwMjAgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIElu Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIg b2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorICovCisKKyNpZm5kZWYgSEVYQUdPTl9UQVJHRVRfRUxGX0gKKyNkZWZpbmUg SEVYQUdPTl9UQVJHRVRfRUxGX0gKKworc3RhdGljIGlubGluZSBjb25zdCBjaGFyICpjcHVfZ2V0 X21vZGVsKHVpbnQzMl90IGVmbGFncykKK3sKKyAgICAvKiBGb3Igbm93LCB0cmVhdCBhbnl0aGlu ZyBuZXdlciB0aGFuIHY1IGFzIGEgdjY3ICovCisgICAgLyogRklYTUUgLSBEaXNhYmxlIGluc3Ry dWN0aW9ucyB0aGF0IGFyZSBuZXdlciB0aGFuIHRoZSBzcGVjaWZpZWQgYXJjaCAqLworICAgIGlm IChlZmxhZ3MgPT0gMHgwNCB8fCAgICAvKiB2NSAgKi8KKyAgICAgICAgZWZsYWdzID09IDB4MDUg fHwgICAgLyogdjU1ICovCisgICAgICAgIGVmbGFncyA9PSAweDYwIHx8ICAgIC8qIHY2MCAqLwor ICAgICAgICBlZmxhZ3MgPT0gMHg2MSB8fCAgICAvKiB2NjEgKi8KKyAgICAgICAgZWZsYWdzID09 IDB4NjIgfHwgICAgLyogdjYyICovCisgICAgICAgIGVmbGFncyA9PSAweDY1IHx8ICAgIC8qIHY2 NSAqLworICAgICAgICBlZmxhZ3MgPT0gMHg2NiB8fCAgICAvKiB2NjYgKi8KKyAgICAgICAgZWZs YWdzID09IDB4NjcpIHsgICAgLyogdjY3ICovCisgICAgICAgIHJldHVybiAidjY3IjsKKyAgICB9 CisgICAgcmV0dXJuICJ1bmtub3duIjsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9saW51eC11 c2VyL2hleGFnb24vdGFyZ2V0X2ZjbnRsLmggYi9saW51eC11c2VyL2hleGFnb24vdGFyZ2V0X2Zj bnRsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDgxNjJlNgotLS0gL2Rl di9udWxsCisrKyBiL2xpbnV4LXVzZXIvaGV4YWdvbi90YXJnZXRfZmNudGwuaApAQCAtMCwwICsx LDE4IEBACisvKgorICogIENvcHlyaWdodChjKSAyMDE5LTIwMjAgUXVhbGNvbW0gSW5ub3ZhdGlv biBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpbmNsdWRlICIuLi9nZW5lcmljL2ZjbnRs LmgiCmRpZmYgLS1naXQgYS9saW51eC11c2VyL2hleGFnb24vdGFyZ2V0X3NpZ25hbC5oIGIvbGlu dXgtdXNlci9oZXhhZ29uL3RhcmdldF9zaWduYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4xMmE2MTg3Ci0tLSAvZGV2L251bGwKKysrIGIvbGludXgtdXNlci9oZXhhZ29u L3RhcmdldF9zaWduYWwuaApAQCAtMCwwICsxLDM0IEBACisvKgorICogIENvcHlyaWdodChjKSAy MDE5LTIwMjAgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNl cnZlZC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y CisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisK KyNpZm5kZWYgSEVYQUdPTl9UQVJHRVRfU0lHTkFMX0gKKyNkZWZpbmUgSEVYQUdPTl9UQVJHRVRf U0lHTkFMX0gKKwordHlwZWRlZiBzdHJ1Y3QgdGFyZ2V0X3NpZ2FsdHN0YWNrIHsKKyAgICBhYmlf dWxvbmcgc3Nfc3A7CisgICAgYWJpX2ludCBzc19mbGFnczsKKyAgICBhYmlfdWxvbmcgc3Nfc2l6 ZTsKK30gdGFyZ2V0X3N0YWNrX3Q7CisKKyNkZWZpbmUgVEFSR0VUX1NTX09OU1RBQ0sgMQorI2Rl ZmluZSBUQVJHRVRfU1NfRElTQUJMRSAyCisKKyNkZWZpbmUgVEFSR0VUX01JTlNJR1NUS1NaIDIw NDgKKworI2luY2x1ZGUgIi4uL2dlbmVyaWMvc2lnbmFsLmgiCisKKyNlbmRpZiAvKiBUQVJHRVRf U0lHTkFMX0ggKi8KZGlmZiAtLWdpdCBhL2xpbnV4LXVzZXIvaGV4YWdvbi90YXJnZXRfc3RydWN0 cy5oIGIvbGludXgtdXNlci9oZXhhZ29uL3RhcmdldF9zdHJ1Y3RzLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMmUwNjIyNwotLS0gL2Rldi9udWxsCisrKyBiL2xpbnV4LXVz ZXIvaGV4YWdvbi90YXJnZXRfc3RydWN0cy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiAgQ29w eXJpZ2h0KGMpIDIwMTktMjAyMCBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwg UmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cisg KiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUg TGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK KyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCisgKi8KKworLyoKKyAqIEhleGFnb24gc3BlY2lmaWMgc3RydWN0dXJlcyBmb3IgbGludXgt dXNlcgorICovCisjaWZuZGVmIEhFWEFHT05fVEFSR0VUX1NUUlVDVFNfSAorI2RlZmluZSBIRVhB R09OX1RBUkdFVF9TVFJVQ1RTX0gKKworc3RydWN0IHRhcmdldF9pcGNfcGVybSB7CisgICAgYWJp X2ludCBfX2tleTsKKyAgICBhYmlfaW50IHVpZDsKKyAgICBhYmlfaW50IGdpZDsKKyAgICBhYmlf aW50IGN1aWQ7CisgICAgYWJpX2ludCBjZ2lkOworICAgIGFiaV91c2hvcnQgbW9kZTsKKyAgICBh YmlfdXNob3J0IF9fcGFkMTsKKyAgICBhYmlfdXNob3J0IF9fc2VxOworfTsKKworc3RydWN0IHRh cmdldF9zaG1pZF9kcyB7CisgICAgc3RydWN0IHRhcmdldF9pcGNfcGVybSBzaG1fcGVybTsKKyAg ICBhYmlfbG9uZyBzaG1fc2Vnc3o7CisgICAgYWJpX3Vsb25nIHNobV9hdGltZTsKKyAgICBhYmlf dWxvbmcgc2htX2R0aW1lOworICAgIGFiaV91bG9uZyBzaG1fY3RpbWU7CisgICAgYWJpX2ludCBz aG1fY3BpZDsKKyAgICBhYmlfaW50IHNobV9scGlkOworICAgIGFiaV91bG9uZyBzaG1fbmF0dGNo OworfTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9saW51eC11c2VyL2hleGFnb24vdGFyZ2V0X3N5 c2NhbGwuaCBiL2xpbnV4LXVzZXIvaGV4YWdvbi90YXJnZXRfc3lzY2FsbC5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzYmQzMDcKLS0tIC9kZXYvbnVsbAorKysgYi9saW51 eC11c2VyL2hleGFnb24vdGFyZ2V0X3N5c2NhbGwuaApAQCAtMCwwICsxLDMyIEBACisvKgorICog IENvcHlyaWdodChjKSAyMDE5LTIwMjAgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4g QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2Yg dGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorICovCisKKyNpZm5kZWYgSEVYQUdPTl9UQVJHRVRfU1lTQ0FMTF9ICisjZGVmaW5l IEhFWEFHT05fVEFSR0VUX1NZU0NBTExfSAorCitzdHJ1Y3QgdGFyZ2V0X3B0X3JlZ3MgeworICAg IGFiaV9sb25nIHNlcGM7CisgICAgYWJpX2xvbmcgc3A7Cit9OworCisjZGVmaW5lIFVOQU1FX01B Q0hJTkUgImhleGFnb24iCisjZGVmaW5lIFVOQU1FX01JTklNVU1fUkVMRUFTRSAiNC4xNS4wIgor CisjZGVmaW5lIFRBUkdFVF9NTE9DS0FMTF9NQ0xfQ1VSUkVOVCAxCisjZGVmaW5lIFRBUkdFVF9N TE9DS0FMTF9NQ0xfRlVUVVJFICAyCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGludXgtdXNlci9o ZXhhZ29uL3Rlcm1iaXRzLmggYi9saW51eC11c2VyL2hleGFnb24vdGVybWJpdHMuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNWY5MmYxCi0tLSAvZGV2L251bGwKKysrIGIv bGludXgtdXNlci9oZXhhZ29uL3Rlcm1iaXRzLmgKQEAgLTAsMCArMSwxOCBAQAorLyoKKyAqICBD b3B5cmlnaHQoYykgMjAxOS0yMDIwIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIEFs bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK KyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRo ZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg KgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KKyAqLworCisjaW5jbHVkZSAiLi4vaTM4Ni90ZXJtYml0cy5oIgpkaWZmIC0tZ2l0IGEv bGludXgtdXNlci9zeXNjYWxsX2RlZnMuaCBiL2xpbnV4LXVzZXIvc3lzY2FsbF9kZWZzLmgKaW5k ZXggMTUyZWM2My4uMDQ5Mzc5ZCAxMDA2NDQKLS0tIGEvbGludXgtdXNlci9zeXNjYWxsX2RlZnMu aAorKysgYi9saW51eC11c2VyL3N5c2NhbGxfZGVmcy5oCkBAIC0xMDIsNiArMTAyLDE0IEBACiAj ZGVmaW5lIFRBUkdFVF9JT0NfV1JJVEUgIDJVCiAjZGVmaW5lIFRBUkdFVF9JT0NfUkVBRCAgIDFV CiAKKyNlbGlmIGRlZmluZWQoVEFSR0VUX0hFWEFHT04pCisKKyNkZWZpbmUgVEFSR0VUX0lPQ19T SVpFQklUUyAgICAgMTQKKworI2RlZmluZSBUQVJHRVRfSU9DX05PTkUgICAwVQorI2RlZmluZSBU QVJHRVRfSU9DX1dSSVRFICAxVQorI2RlZmluZSBUQVJHRVRfSU9DX1JFQUQgICAgICAgICAgMlUK KwogI2Vsc2UKICNlcnJvciB1bnN1cHBvcnRlZCBDUFUKICNlbmRpZgpAQCAtMjEzMyw2ICsyMTQx LDMxIEBAIHN0cnVjdCB0YXJnZXRfc3RhdDY0IHsKICAgICB1aW50NjRfdCAgIHN0X2lubzsKIH07 CiAKKyNlbGlmIGRlZmluZWQoVEFSR0VUX0hFWEFHT04pCisKK3N0cnVjdCB0YXJnZXRfc3RhdCB7 CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHN0X2RldjsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcg c3RfaW5vOworICAgIHVuc2lnbmVkIGludCBzdF9tb2RlOworICAgIHVuc2lnbmVkIGludCBzdF9u bGluazsKKyAgICB1bnNpZ25lZCBpbnQgc3RfdWlkOworICAgIHVuc2lnbmVkIGludCBzdF9naWQ7 CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHN0X3JkZXY7CisgICAgdGFyZ2V0X3Vsb25nIF9fcGFk MTsKKyAgICBsb25nIGxvbmcgc3Rfc2l6ZTsKKyAgICB0YXJnZXRfbG9uZyBzdF9ibGtzaXplOwor ICAgIGludCBfX3BhZDI7CisgICAgbG9uZyBsb25nIHN0X2Jsb2NrczsKKworICAgIHRhcmdldF9s b25nIHRhcmdldF9zdF9hdGltZTsKKyAgICB0YXJnZXRfbG9uZyB0YXJnZXRfc3RfYXRpbWVfbnNl YzsKKyAgICB0YXJnZXRfbG9uZyB0YXJnZXRfc3RfbXRpbWU7CisgICAgdGFyZ2V0X2xvbmcgdGFy Z2V0X3N0X210aW1lX25zZWM7CisgICAgdGFyZ2V0X2xvbmcgdGFyZ2V0X3N0X2N0aW1lOworICAg IHRhcmdldF9sb25nIHRhcmdldF9zdF9jdGltZV9uc2VjOworICAgIGludCBfX3VudXNlZFsyXTsK K307CisKICNlbHNlCiAjZXJyb3IgdW5zdXBwb3J0ZWQgQ1BVCiAjZW5kaWYKZGlmZiAtLWdpdCBh L2xpbnV4LXVzZXIvZWxmbG9hZC5jIGIvbGludXgtdXNlci9lbGZsb2FkLmMKaW5kZXggYjFhODk1 Zi4uY2FmYmViMiAxMDA2NDQKLS0tIGEvbGludXgtdXNlci9lbGZsb2FkLmMKKysrIGIvbGludXgt dXNlci9lbGZsb2FkLmMKQEAgLTE1MDcsNiArMTUwNywyMiBAQCBzdGF0aWMgdm9pZCBlbGZfY29y ZV9jb3B5X3JlZ3ModGFyZ2V0X2VsZl9ncmVnc2V0X3QgKnJlZ3MsCiAKICNlbmRpZiAvKiBUQVJH RVRfWFRFTlNBICovCiAKKyNpZmRlZiBUQVJHRVRfSEVYQUdPTgorCisjZGVmaW5lIEVMRl9TVEFS VF9NTUFQIDB4MjAwMDAwMDAKKworI2RlZmluZSBFTEZfQ0xBU1MgICAgICAgRUxGQ0xBU1MzMgor I2RlZmluZSBFTEZfQVJDSCAgICAgICAgRU1fSEVYQUdPTgorCitzdGF0aWMgaW5saW5lIHZvaWQg aW5pdF90aHJlYWQoc3RydWN0IHRhcmdldF9wdF9yZWdzICpyZWdzLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBpbWFnZV9pbmZvICppbmZvcCkKK3sKKyAgICByZWdzLT5z ZXBjID0gaW5mb3AtPmVudHJ5OworICAgIHJlZ3MtPnNwID0gaW5mb3AtPnN0YXJ0X3N0YWNrOwor fQorCisjZW5kaWYgLyogVEFSR0VUX0hFWEFHT04gKi8KKwogI2lmbmRlZiBFTEZfUExBVEZPUk0K ICNkZWZpbmUgRUxGX1BMQVRGT1JNIChOVUxMKQogI2VuZGlmCmRpZmYgLS1naXQgYS9saW51eC11 c2VyL2hleGFnb24vY3B1X2xvb3AuYyBiL2xpbnV4LXVzZXIvaGV4YWdvbi9jcHVfbG9vcC5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmNGNhNmMKLS0tIC9kZXYvbnVsbAor KysgYi9saW51eC11c2VyL2hleGFnb24vY3B1X2xvb3AuYwpAQCAtMCwwICsxLDE3MyBAQAorLyoK KyAqICBxZW11IHVzZXIgY3B1IGxvb3AKKyAqCisgKiAgQ29weXJpZ2h0IChjKSAyMDAzLTIwMDgg RmFicmljZSBCZWxsYXJkCisgKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAyMCBRdWFsY29tbSBJbm5v dmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2luY2x1ZGUgInFlbXUvb3NkZXAu aCIKKyNpbmNsdWRlICJxZW11LmgiCisjaW5jbHVkZSAiY3B1X2xvb3AtY29tbW9uLmgiCisjaW5j bHVkZSAiaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJ0cmFuc2xhdGUuaCIKKworc3RhdGljIGludCBk b19zdG9yZV9leGNsdXNpdmUoQ1BVSGV4YWdvblN0YXRlICplbnYsIGJvb2wgc2luZ2xlKQorewor ICAgIHRhcmdldF91bG9uZyBhZGRyOworICAgIHRhcmdldF91bG9uZyB2YWw7CisgICAgdWludDY0 X3QgdmFsX2k2NDsKKyAgICBpbnQgc2VndiA9IDA7CisgICAgaW50IHJlZzsKKworICAgIGFkZHIg PSBlbnYtPmxsc2NfYWRkcjsKKyAgICByZWcgPSBlbnYtPmxsc2NfcmVnOworCisgICAgc3RhcnRf ZXhjbHVzaXZlKCk7CisgICAgbW1hcF9sb2NrKCk7CisKKyAgICBlbnYtPnByZWRbcmVnXSA9IDA7 CisgICAgaWYgKHNpbmdsZSkgeworICAgICAgICBzZWd2ID0gZ2V0X3VzZXJfczMyKHZhbCwgYWRk cik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2VndiA9IGdldF91c2VyX3M2NCh2YWxfaTY0LCBh ZGRyKTsKKyAgICB9CisgICAgaWYgKCFzZWd2KSB7CisgICAgICAgIGlmIChzaW5nbGUpIHsKKyAg ICAgICAgICAgIGlmICh2YWwgPT0gZW52LT5sbHNjX3ZhbCkgeworICAgICAgICAgICAgICAgIHNl Z3YgPSBwdXRfdXNlcl91MzIoZW52LT5sbHNjX25ld3ZhbCwgYWRkcik7CisgICAgICAgICAgICAg ICAgaWYgKCFzZWd2KSB7CisgICAgICAgICAgICAgICAgICAgIGVudi0+cHJlZFtyZWddID0gMHhm ZjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICBpZiAodmFsX2k2NCA9PSBlbnYtPmxsc2NfdmFsX2k2NCkgeworICAgICAgICAg ICAgICAgIHNlZ3YgPSBwdXRfdXNlcl91NjQoZW52LT5sbHNjX25ld3ZhbF9pNjQsIGFkZHIpOwor ICAgICAgICAgICAgICAgIGlmICghc2VndikgeworICAgICAgICAgICAgICAgICAgICBlbnYtPnBy ZWRbcmVnXSA9IDB4ZmY7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg ICB9CisgICAgfQorICAgIGVudi0+bGxzY19hZGRyID0gfjA7CisgICAgaWYgKCFzZWd2KSB7Cisg ICAgICAgIGVudi0+bmV4dF9QQyArPSA0OworICAgIH0KKworICAgIG1tYXBfdW5sb2NrKCk7Cisg ICAgZW5kX2V4Y2x1c2l2ZSgpOworICAgIHJldHVybiBzZWd2OworfQorCit2b2lkIGNwdV9sb29w KENQVUhleGFnb25TdGF0ZSAqZW52KQoreworICAgIENQVVN0YXRlICpjcyA9IENQVShoZXhhZ29u X2Vudl9nZXRfY3B1KGVudikpOworICAgIHRhcmdldF9zaWdpbmZvX3QgaW5mbzsKKyAgICBpbnQg dHJhcG5yLCBzaWdudW0sIHNpZ2NvZGU7CisgICAgdGFyZ2V0X3Vsb25nIHNpZ2FkZHI7CisgICAg dGFyZ2V0X3Vsb25nIHN5c2NhbGxudW07CisgICAgdGFyZ2V0X3Vsb25nIHJldDsKKworICAgIGZv ciAoOzspIHsKKyAgICAgICAgY3B1X2V4ZWNfc3RhcnQoY3MpOworICAgICAgICB0cmFwbnIgPSBj cHVfZXhlYyhjcyk7CisgICAgICAgIGNwdV9leGVjX2VuZChjcyk7CisgICAgICAgIHByb2Nlc3Nf cXVldWVkX2NwdV93b3JrKGNzKTsKKworICAgICAgICBzaWdudW0gPSAwOworICAgICAgICBzaWdj b2RlID0gMDsKKyAgICAgICAgc2lnYWRkciA9IDA7CisKKyAgICAgICAgc3dpdGNoICh0cmFwbnIp IHsKKyAgICAgICAgY2FzZSBFWENQX0lOVEVSUlVQVDoKKyAgICAgICAgICAgIC8qIGp1c3QgaW5k aWNhdGUgdGhhdCBzaWduYWxzIHNob3VsZCBiZSBoYW5kbGVkIGFzYXAgKi8KKyAgICAgICAgICAg IGJyZWFrOworICAgICAgICBjYXNlIEhFWF9FWENQX1RSQVAwOgorICAgICAgICAgICAgc3lzY2Fs bG51bSA9IGVudi0+Z3ByWzZdOworICAgICAgICAgICAgZW52LT5ncHJbSEVYX1JFR19QQ10gKz0g NDsKKyNpZiBDT1VOVF9IRVhfSEVMUEVSUworICAgICAgICAgICAgaWYgKHN5c2NhbGxudW0gPT0g VEFSR0VUX05SX2V4aXRfZ3JvdXApIHsKKyAgICAgICAgICAgICAgICBwcmludF9oZWxwZXJfY291 bnRzKCk7CisgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgIHJldCA9IGRvX3N5c2Nh bGwoZW52LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXNjYWxsbnVtLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlbnYtPmdwclswXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZW52LT5ncHJbMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudi0+ Z3ByWzJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnYtPmdwclszXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZW52LT5ncHJbNF0sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVudi0+Z3ByWzVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAw KTsKKyAgICAgICAgICAgIGlmIChyZXQgPT0gLVRBUkdFVF9FUkVTVEFSVFNZUykgeworICAgICAg ICAgICAgICAgIGVudi0+Z3ByW0hFWF9SRUdfUENdIC09IDQ7CisgICAgICAgICAgICB9IGVsc2Ug aWYgKHJldCAhPSAtVEFSR0VUX1FFTVVfRVNJR1JFVFVSTikgeworICAgICAgICAgICAgICAgIGVu di0+Z3ByWzBdID0gcmV0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgIGNhc2UgSEVYX0VYQ1BfVFJBUDE6CisgICAgICAgICAgICBFWENQX0RVTVAoZW52LCAiXG5x ZW11OiB0cmFwMSBleGNlcHRpb24gJSN4IC0gYWJvcnRpbmdcbiIsCisgICAgICAgICAgICAgICAg ICAgICB0cmFwbnIpOworICAgICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOworICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgIGNhc2UgSEVYX0VYQ1BfU0M0OgorICAgICAgICAgICAgaWYgKGRv X3N0b3JlX2V4Y2x1c2l2ZShlbnYsIHRydWUpKSB7CisgICAgICAgICAgICAgICAgaW5mby5zaV9z aWdubyA9IFRBUkdFVF9TSUdTRUdWOworICAgICAgICAgICAgICAgIGluZm8uc2lfZXJybm8gPSAw OworICAgICAgICAgICAgICAgIGluZm8uc2lfY29kZSA9IFRBUkdFVF9TRUdWX01BUEVSUjsKKyAg ICAgICAgICAgICAgICBpbmZvLl9zaWZpZWxkcy5fc2lnZmF1bHQuX2FkZHIgPSBlbnYtPm5leHRf UEM7CisgICAgICAgICAgICAgICAgcXVldWVfc2lnbmFsKGVudiwgaW5mby5zaV9zaWdubywgUUVN VV9TSV9GQVVMVCwgJmluZm8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgIGNhc2UgSEVYX0VYQ1BfU0M4OgorICAgICAgICAgICAgaWYgKGRvX3N0b3JlX2V4Y2x1 c2l2ZShlbnYsIGZhbHNlKSkgeworICAgICAgICAgICAgICAgIGluZm8uc2lfc2lnbm8gPSBUQVJH RVRfU0lHU0VHVjsKKyAgICAgICAgICAgICAgICBpbmZvLnNpX2Vycm5vID0gMDsKKyAgICAgICAg ICAgICAgICBpbmZvLnNpX2NvZGUgPSBUQVJHRVRfU0VHVl9NQVBFUlI7CisgICAgICAgICAgICAg ICAgaW5mby5fc2lmaWVsZHMuX3NpZ2ZhdWx0Ll9hZGRyID0gZW52LT5uZXh0X1BDOworICAgICAg ICAgICAgICAgIHF1ZXVlX3NpZ25hbChlbnYsIGluZm8uc2lfc2lnbm8sIFFFTVVfU0lfRkFVTFQs ICZpbmZvKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl IEhFWF9FWENQX0ZFVENIX05PX1VQQUdFOgorICAgICAgICBjYXNlIEhFWF9FWENQX1BSSVZfTk9f VVJFQUQ6CisgICAgICAgIGNhc2UgSEVYX0VYQ1BfUFJJVl9OT19VV1JJVEU6CisgICAgICAgICAg ICBzaWdudW0gPSBUQVJHRVRfU0lHU0VHVjsKKyAgICAgICAgICAgIHNpZ2NvZGUgPSBUQVJHRVRf U0VHVl9NQVBFUlI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg ICAgICAgIEVYQ1BfRFVNUChlbnYsICJcbnFlbXU6IHVuaGFuZGxlZCBDUFUgZXhjZXB0aW9uICUj eCAtIGFib3J0aW5nXG4iLAorICAgICAgICAgICAgICAgICAgICAgdHJhcG5yKTsKKyAgICAgICAg ICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzaWdudW0p IHsKKyAgICAgICAgICAgIHRhcmdldF9zaWdpbmZvX3QgaW5mbyA9IHsKKyAgICAgICAgICAgICAg ICAuc2lfc2lnbm8gPSBzaWdudW0sCisgICAgICAgICAgICAgICAgLnNpX2Vycm5vID0gMCwKKyAg ICAgICAgICAgICAgICAuc2lfY29kZSA9IHNpZ2NvZGUsCisgICAgICAgICAgICAgICAgLl9zaWZp ZWxkcy5fc2lnZmF1bHQuX2FkZHIgPSBzaWdhZGRyCisgICAgICAgICAgICB9OworICAgICAgICAg ICAgcXVldWVfc2lnbmFsKGVudiwgaW5mby5zaV9zaWdubywgUUVNVV9TSV9LSUxMLCAmaW5mbyk7 CisgICAgICAgIH0KKworICAgICAgICBwcm9jZXNzX3BlbmRpbmdfc2lnbmFscyhlbnYpOworICAg IH0KK30KKwordm9pZCB0YXJnZXRfY3B1X2NvcHlfcmVncyhDUFVBcmNoU3RhdGUgKmVudiwgc3Ry dWN0IHRhcmdldF9wdF9yZWdzICpyZWdzKQoreworICAgIGVudi0+Z3ByW0hFWF9SRUdfUENdID0g cmVncy0+c2VwYzsKKyAgICBlbnYtPmdwcltIRVhfUkVHX1NQXSA9IHJlZ3MtPnNwOworfQpkaWZm IC0tZ2l0IGEvbGludXgtdXNlci9oZXhhZ29uL3NpZ25hbC5jIGIvbGludXgtdXNlci9oZXhhZ29u L3NpZ25hbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5ODM3ZTEKLS0t IC9kZXYvbnVsbAorKysgYi9saW51eC11c2VyL2hleGFnb24vc2lnbmFsLmMKQEAgLTAsMCArMSwy NzYgQEAKKy8qCisgKiAgRW11bGF0aW9uIG9mIExpbnV4IHNpZ25hbHMKKyAqCisgKiAgQ29weXJp Z2h0IChjKSAyMDAzIEZhYnJpY2UgQmVsbGFyZAorICogIENvcHlyaWdodChjKSAyMDE5LTIwMjAg UXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq CisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisjaW5jbHVkZSAi cWVtdS9vc2RlcC5oIgorI2luY2x1ZGUgInFlbXUuaCIKKyNpbmNsdWRlICJzaWduYWwtY29tbW9u LmgiCisjaW5jbHVkZSAibGludXgtdXNlci90cmFjZS5oIgorCitzdHJ1Y3QgdGFyZ2V0X3NpZ2Nv bnRleHQgeworICAgIHRhcmdldF91bG9uZyByMCwgIHIxLCAgcjIsICByMzsKKyAgICB0YXJnZXRf dWxvbmcgcjQsICByNSwgIHI2LCAgcjc7CisgICAgdGFyZ2V0X3Vsb25nIHI4LCAgcjksIHIxMCwg cjExOworICAgIHRhcmdldF91bG9uZyByMTIsIHIxMywgcjE0LCByMTU7CisgICAgdGFyZ2V0X3Vs b25nIHIxNiwgcjE3LCByMTgsIHIxOTsKKyAgICB0YXJnZXRfdWxvbmcgcjIwLCByMjEsIHIyMiwg cjIzOworICAgIHRhcmdldF91bG9uZyByMjQsIHIyNSwgcjI2LCByMjc7CisgICAgdGFyZ2V0X3Vs b25nIHIyOCwgcjI5LCByMzAsIHIzMTsKKyAgICB0YXJnZXRfdWxvbmcgc2EwOworICAgIHRhcmdl dF91bG9uZyBsYzA7CisgICAgdGFyZ2V0X3Vsb25nIHNhMTsKKyAgICB0YXJnZXRfdWxvbmcgbGMx OworICAgIHRhcmdldF91bG9uZyBtMDsKKyAgICB0YXJnZXRfdWxvbmcgbTE7CisgICAgdGFyZ2V0 X3Vsb25nIHVzcjsKKyAgICB0YXJnZXRfdWxvbmcgcDNfMDsKKyAgICB0YXJnZXRfdWxvbmcgZ3A7 CisgICAgdGFyZ2V0X3Vsb25nIHVncDsKKyAgICB0YXJnZXRfdWxvbmcgcGM7CisgICAgdGFyZ2V0 X3Vsb25nIGNhdXNlOworICAgIHRhcmdldF91bG9uZyBiYWR2YTsKKyAgICB0YXJnZXRfdWxvbmcg cGFkMTsKKyAgICB0YXJnZXRfdWxvbmcgcGFkMjsKKyAgICB0YXJnZXRfdWxvbmcgcGFkMzsKK307 CisKK3N0cnVjdCB0YXJnZXRfdWNvbnRleHQgeworICAgIHVuc2lnbmVkIGxvbmcgdWNfZmxhZ3M7 CisgICAgdGFyZ2V0X3Vsb25nIHVjX2xpbms7IC8qIHRhcmdldCBwb2ludGVyICovCisgICAgdGFy Z2V0X3N0YWNrX3QgdWNfc3RhY2s7CisgICAgc3RydWN0IHRhcmdldF9zaWdjb250ZXh0IHVjX21j b250ZXh0OworICAgIHRhcmdldF9zaWdzZXRfdCB1Y19zaWdtYXNrOworfTsKKworc3RydWN0IHRh cmdldF9ydF9zaWdmcmFtZSB7CisgICAgdWludDMyX3QgdHJhbXBbMl07CisgICAgc3RydWN0IHRh cmdldF9zaWdpbmZvIGluZm87CisgICAgc3RydWN0IHRhcmdldF91Y29udGV4dCB1YzsKK307CisK K3N0YXRpYyBhYmlfdWxvbmcgZ2V0X3NpZ2ZyYW1lKHN0cnVjdCB0YXJnZXRfc2lnYWN0aW9uICpr YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENQVUhleGFnb25TdGF0ZSAqcmVncywg c2l6ZV90IGZyYW1lc2l6ZSkKK3sKKyAgICBhYmlfdWxvbmcgc3AgPSBnZXRfc3BfZnJvbV9jcHVz dGF0ZShyZWdzKTsKKworICAgIC8qIFRoaXMgaXMgdGhlIFgvT3BlbiBzYW5jdGlvbmVkIHNpZ25h bCBzdGFjayBzd2l0Y2hpbmcuICAqLworICAgIHNwID0gdGFyZ2V0X3NpZ3NwKHNwLCBrYSkgLSBm cmFtZXNpemU7CisKKyAgICBzcCA9IFFFTVVfQUxJR05fRE9XTihzcCwgOCk7CisKKyAgICByZXR1 cm4gc3A7Cit9CisKK3N0YXRpYyB2b2lkIHNldHVwX3NpZ2NvbnRleHQoc3RydWN0IHRhcmdldF9z aWdjb250ZXh0ICpzYywgQ1BVSGV4YWdvblN0YXRlICplbnYpCit7CisgICAgX19wdXRfdXNlcihl bnYtPmdwcltIRVhfUkVHX1IwMF0sICZzYy0+cjApOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJb SEVYX1JFR19SMDFdLCAmc2MtPnIxKTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdf UjAyXSwgJnNjLT5yMik7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwM10sICZz Yy0+cjMpOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDRdLCAmc2MtPnI0KTsK KyAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjA1XSwgJnNjLT5yNSk7CisgICAgX19w dXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwNl0sICZzYy0+cjYpOworICAgIF9fcHV0X3VzZXIo ZW52LT5ncHJbSEVYX1JFR19SMDddLCAmc2MtPnI3KTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3By W0hFWF9SRUdfUjA4XSwgJnNjLT5yOCk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVH X1IwOV0sICZzYy0+cjkpOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMTBdLCAm c2MtPnIxMCk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IxMV0sICZzYy0+cjEx KTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjEyXSwgJnNjLT5yMTIpOworICAg IF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMTNdLCAmc2MtPnIxMyk7CisgICAgX19wdXRf dXNlcihlbnYtPmdwcltIRVhfUkVHX1IxNF0sICZzYy0+cjE0KTsKKyAgICBfX3B1dF91c2VyKGVu di0+Z3ByW0hFWF9SRUdfUjE1XSwgJnNjLT5yMTUpOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJb SEVYX1JFR19SMTZdLCAmc2MtPnIxNik7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVH X1IxN10sICZzYy0+cjE3KTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjE4XSwg JnNjLT5yMTgpOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMTldLCAmc2MtPnIx OSk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IyMF0sICZzYy0+cjIwKTsKKyAg ICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjIxXSwgJnNjLT5yMjEpOworICAgIF9fcHV0 X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMjJdLCAmc2MtPnIyMik7CisgICAgX19wdXRfdXNlcihl bnYtPmdwcltIRVhfUkVHX1IyM10sICZzYy0+cjIzKTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3By W0hFWF9SRUdfUjI0XSwgJnNjLT5yMjQpOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JF R19SMjVdLCAmc2MtPnIyNSk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IyNl0s ICZzYy0+cjI2KTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjI3XSwgJnNjLT5y MjcpOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMjhdLCAmc2MtPnIyOCk7Cisg ICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IyOV0sICZzYy0+cjI5KTsKKyAgICBfX3B1 dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjMwXSwgJnNjLT5yMzApOworICAgIF9fcHV0X3VzZXIo ZW52LT5ncHJbSEVYX1JFR19SMzFdLCAmc2MtPnIzMSk7CisgICAgX19wdXRfdXNlcihlbnYtPmdw cltIRVhfUkVHX1NBMF0sICZzYy0+c2EwKTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9S RUdfTEMwXSwgJnNjLT5sYzApOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19TQTFd LCAmc2MtPnNhMSk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX0xDMV0sICZzYy0+ bGMxKTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfTTBdLCAmc2MtPm0wKTsKKyAg ICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfTTFdLCAmc2MtPm0xKTsKKyAgICBfX3B1dF91 c2VyKGVudi0+Z3ByW0hFWF9SRUdfVVNSXSwgJnNjLT51c3IpOworICAgIF9fcHV0X3VzZXIoZW52 LT5ncHJbSEVYX1JFR19QM18wXSwgJnNjLT5wM18wKTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3By W0hFWF9SRUdfR1BdLCAmc2MtPmdwKTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdf VUdQXSwgJnNjLT51Z3ApOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19QQ10sICZz Yy0+cGMpOworfQorCitzdGF0aWMgdm9pZCBzZXR1cF91Y29udGV4dChzdHJ1Y3QgdGFyZ2V0X3Vj b250ZXh0ICp1YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIENQVUhleGFnb25TdGF0ZSAq ZW52LCB0YXJnZXRfc2lnc2V0X3QgKnNldCkKK3sKKyAgICBfX3B1dF91c2VyKDAsICAgICYodWMt PnVjX2ZsYWdzKSk7CisgICAgX19wdXRfdXNlcigwLCAgICAmKHVjLT51Y19saW5rKSk7CisKKyAg ICB0YXJnZXRfc2F2ZV9hbHRzdGFjaygmdWMtPnVjX3N0YWNrLCBlbnYpOworCisgICAgaW50IGk7 CisgICAgZm9yIChpID0gMDsgaSA8IFRBUkdFVF9OU0lHX1dPUkRTOyBpKyspIHsKKyAgICAgICAg X19wdXRfdXNlcihzZXQtPnNpZ1tpXSwgJih1Yy0+dWNfc2lnbWFzay5zaWdbaV0pKTsKKyAgICB9 CisKKyAgICBzZXR1cF9zaWdjb250ZXh0KCZ1Yy0+dWNfbWNvbnRleHQsIGVudik7Cit9CisKK3N0 YXRpYyBpbmxpbmUgdm9pZCBpbnN0YWxsX3NpZ3RyYW1wKHVpbnQzMl90ICp0cmFtcCkKK3sKKyAg ICBfX3B1dF91c2VyKDB4NzgwMGQxNjYsIHRyYW1wICsgMCk7IC8qICB7IHI2PSNfX05SX3J0X3Np Z3JldHVybiB9ICovCisgICAgX19wdXRfdXNlcigweDU0MDBjMDA0LCB0cmFtcCArIDEpOyAvKiAg eyB0cmFwMCgjMSkgfSAqLworfQorCit2b2lkIHNldHVwX3J0X2ZyYW1lKGludCBzaWcsIHN0cnVj dCB0YXJnZXRfc2lnYWN0aW9uICprYSwKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3NpZ2lu Zm9fdCAqaW5mbywKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3NpZ3NldF90ICpzZXQsIENQ VUhleGFnb25TdGF0ZSAqZW52KQoreworICAgIGFiaV91bG9uZyBmcmFtZV9hZGRyOworICAgIHN0 cnVjdCB0YXJnZXRfcnRfc2lnZnJhbWUgKmZyYW1lOworCisgICAgZnJhbWVfYWRkciA9IGdldF9z aWdmcmFtZShrYSwgZW52LCBzaXplb2YoKmZyYW1lKSk7CisgICAgdHJhY2VfdXNlcl9zZXR1cF9y dF9mcmFtZShlbnYsIGZyYW1lX2FkZHIpOworCisgICAgaWYgKCFsb2NrX3VzZXJfc3RydWN0KFZF UklGWV9XUklURSwgZnJhbWUsIGZyYW1lX2FkZHIsIDApKSB7CisgICAgICAgIGdvdG8gYmFkZnJh bWU7CisgICAgfQorCisgICAgc2V0dXBfdWNvbnRleHQoJmZyYW1lLT51YywgZW52LCBzZXQpOwor ICAgIHRzd2FwX3NpZ2luZm8oJmZyYW1lLT5pbmZvLCBpbmZvKTsKKyAgICBpbnN0YWxsX3NpZ3Ry YW1wKGZyYW1lLT50cmFtcCk7CisKKyAgICBlbnYtPmdwcltIRVhfUkVHX1BDXSA9IGthLT5fc2Ff aGFuZGxlcjsKKyAgICBlbnYtPmdwcltIRVhfUkVHX1NQXSA9IGZyYW1lX2FkZHI7CisgICAgZW52 LT5ncHJbSEVYX1JFR19SMDBdID0gc2lnOworICAgIGVudi0+Z3ByW0hFWF9SRUdfUjAxXSA9Cisg ICAgICAgIGZyYW1lX2FkZHIgKyBvZmZzZXRvZihzdHJ1Y3QgdGFyZ2V0X3J0X3NpZ2ZyYW1lLCBp bmZvKTsKKyAgICBlbnYtPmdwcltIRVhfUkVHX1IwMl0gPQorICAgICAgICBmcmFtZV9hZGRyICsg b2Zmc2V0b2Yoc3RydWN0IHRhcmdldF9ydF9zaWdmcmFtZSwgdWMpOworICAgIGVudi0+Z3ByW0hF WF9SRUdfTFJdID0KKyAgICAgICAgZnJhbWVfYWRkciArIG9mZnNldG9mKHN0cnVjdCB0YXJnZXRf cnRfc2lnZnJhbWUsIHRyYW1wKTsKKworICAgIHJldHVybjsKKworYmFkZnJhbWU6CisgICAgdW5s b2NrX3VzZXJfc3RydWN0KGZyYW1lLCBmcmFtZV9hZGRyLCAxKTsKKyAgICBpZiAoc2lnID09IFRB UkdFVF9TSUdTRUdWKSB7CisgICAgICAgIGthLT5fc2FfaGFuZGxlciA9IFRBUkdFVF9TSUdfREZM OworICAgIH0KKyAgICBmb3JjZV9zaWcoVEFSR0VUX1NJR1NFR1YpOworfQorCitzdGF0aWMgdm9p ZCByZXN0b3JlX3NpZ2NvbnRleHQoQ1BVSGV4YWdvblN0YXRlICplbnYsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHRhcmdldF9zaWdjb250ZXh0ICpzYykKK3sKKyAgICBf X2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjAwXSwgJnNjLT5yMCk7CisgICAgX19nZXRfdXNl cihlbnYtPmdwcltIRVhfUkVHX1IwMV0sICZzYy0+cjEpOworICAgIF9fZ2V0X3VzZXIoZW52LT5n cHJbSEVYX1JFR19SMDJdLCAmc2MtPnIyKTsKKyAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9S RUdfUjAzXSwgJnNjLT5yMyk7CisgICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwNF0s ICZzYy0+cjQpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDVdLCAmc2MtPnI1 KTsKKyAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjA2XSwgJnNjLT5yNik7CisgICAg X19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwN10sICZzYy0+cjcpOworICAgIF9fZ2V0X3Vz ZXIoZW52LT5ncHJbSEVYX1JFR19SMDhdLCAmc2MtPnI4KTsKKyAgICBfX2dldF91c2VyKGVudi0+ Z3ByW0hFWF9SRUdfUjA5XSwgJnNjLT5yOSk7CisgICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhf UkVHX1IxMF0sICZzYy0+cjEwKTsKKyAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjEx XSwgJnNjLT5yMTEpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMTJdLCAmc2Mt PnIxMik7CisgICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IxM10sICZzYy0+cjEzKTsK KyAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjE0XSwgJnNjLT5yMTQpOworICAgIF9f Z2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMTVdLCAmc2MtPnIxNSk7CisgICAgX19nZXRfdXNl cihlbnYtPmdwcltIRVhfUkVHX1IxNl0sICZzYy0+cjE2KTsKKyAgICBfX2dldF91c2VyKGVudi0+ Z3ByW0hFWF9SRUdfUjE3XSwgJnNjLT5yMTcpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVY X1JFR19SMThdLCAmc2MtPnIxOCk7CisgICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1Ix OV0sICZzYy0+cjE5KTsKKyAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjIwXSwgJnNj LT5yMjApOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMjFdLCAmc2MtPnIyMSk7 CisgICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IyMl0sICZzYy0+cjIyKTsKKyAgICBf X2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjIzXSwgJnNjLT5yMjMpOworICAgIF9fZ2V0X3Vz ZXIoZW52LT5ncHJbSEVYX1JFR19SMjRdLCAmc2MtPnIyNCk7CisgICAgX19nZXRfdXNlcihlbnYt PmdwcltIRVhfUkVHX1IyNV0sICZzYy0+cjI1KTsKKyAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hF WF9SRUdfUjI2XSwgJnNjLT5yMjYpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19S MjddLCAmc2MtPnIyNyk7CisgICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IyOF0sICZz Yy0+cjI4KTsKKyAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjI5XSwgJnNjLT5yMjkp OworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMzBdLCAmc2MtPnIzMCk7CisgICAg X19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IzMV0sICZzYy0+cjMxKTsKKyAgICBfX2dldF91 c2VyKGVudi0+Z3ByW0hFWF9SRUdfU0EwXSwgJnNjLT5zYTApOworICAgIF9fZ2V0X3VzZXIoZW52 LT5ncHJbSEVYX1JFR19MQzBdLCAmc2MtPmxjMCk7CisgICAgX19nZXRfdXNlcihlbnYtPmdwcltI RVhfUkVHX1NBMV0sICZzYy0+c2ExKTsKKyAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdf TEMxXSwgJnNjLT5sYzEpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19NMF0sICZz Yy0+bTApOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19NMV0sICZzYy0+bTEpOwor ICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19VU1JdLCAmc2MtPnVzcik7CisgICAgX19n ZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1AzXzBdLCAmc2MtPnAzXzApOworICAgIF9fZ2V0X3Vz ZXIoZW52LT5ncHJbSEVYX1JFR19HUF0sICZzYy0+Z3ApOworICAgIF9fZ2V0X3VzZXIoZW52LT5n cHJbSEVYX1JFR19VR1BdLCAmc2MtPnVncCk7CisgICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhf UkVHX1BDXSwgJnNjLT5wYyk7Cit9CisKK3N0YXRpYyB2b2lkIHJlc3RvcmVfdWNvbnRleHQoQ1BV SGV4YWdvblN0YXRlICplbnYsIHN0cnVjdCB0YXJnZXRfdWNvbnRleHQgKnVjKQoreworICAgIHNp Z3NldF90IGJsb2NrZWQ7CisgICAgdGFyZ2V0X3NpZ3NldF90IHRhcmdldF9zZXQ7CisgICAgaW50 IGk7CisKKyAgICB0YXJnZXRfc2lnZW1wdHlzZXQoJnRhcmdldF9zZXQpOworICAgIGZvciAoaSA9 IDA7IGkgPCBUQVJHRVRfTlNJR19XT1JEUzsgaSsrKSB7CisgICAgICAgIF9fZ2V0X3VzZXIodGFy Z2V0X3NldC5zaWdbaV0sICYodWMtPnVjX3NpZ21hc2suc2lnW2ldKSk7CisgICAgfQorCisgICAg dGFyZ2V0X3RvX2hvc3Rfc2lnc2V0X2ludGVybmFsKCZibG9ja2VkLCAmdGFyZ2V0X3NldCk7Cisg ICAgc2V0X3NpZ21hc2soJmJsb2NrZWQpOworCisgICAgcmVzdG9yZV9zaWdjb250ZXh0KGVudiwg JnVjLT51Y19tY29udGV4dCk7Cit9CisKK2xvbmcgZG9fcnRfc2lncmV0dXJuKENQVUhleGFnb25T dGF0ZSAqZW52KQoreworICAgIHN0cnVjdCB0YXJnZXRfcnRfc2lnZnJhbWUgKmZyYW1lOworICAg IGFiaV91bG9uZyBmcmFtZV9hZGRyOworCisgICAgZnJhbWVfYWRkciA9IGVudi0+Z3ByW0hFWF9S RUdfU1BdOworICAgIHRyYWNlX3VzZXJfZG9fc2lncmV0dXJuKGVudiwgZnJhbWVfYWRkcik7Cisg ICAgaWYgKCFsb2NrX3VzZXJfc3RydWN0KFZFUklGWV9SRUFELCBmcmFtZSwgZnJhbWVfYWRkciwg MSkpIHsKKyAgICAgICAgZ290byBiYWRmcmFtZTsKKyAgICB9CisKKyAgICByZXN0b3JlX3Vjb250 ZXh0KGVudiwgJmZyYW1lLT51Yyk7CisKKyAgICBpZiAoZG9fc2lnYWx0c3RhY2soZnJhbWVfYWRk ciArIG9mZnNldG9mKHN0cnVjdCB0YXJnZXRfcnRfc2lnZnJhbWUsCisgICAgICAgICAgICB1Yy51 Y19zdGFjayksIDAsIGdldF9zcF9mcm9tX2NwdXN0YXRlKGVudikpID09IC1FRkFVTFQpIHsKKyAg ICAgICAgZ290byBiYWRmcmFtZTsKKyAgICB9CisKKyAgICB1bmxvY2tfdXNlcl9zdHJ1Y3QoZnJh bWUsIGZyYW1lX2FkZHIsIDApOworICAgIHJldHVybiAtVEFSR0VUX1FFTVVfRVNJR1JFVFVSTjsK KworYmFkZnJhbWU6CisgICAgdW5sb2NrX3VzZXJfc3RydWN0KGZyYW1lLCBmcmFtZV9hZGRyLCAw KTsKKyAgICBmb3JjZV9zaWcoVEFSR0VUX1NJR1NFR1YpOworICAgIHJldHVybiAwOworfQpkaWZm IC0tZ2l0IGEvbGludXgtdXNlci9zeXNjYWxsLmMgYi9saW51eC11c2VyL3N5c2NhbGwuYwppbmRl eCA4ZDI3ZDEwLi4yNmNiZWRjIDEwMDY0NAotLS0gYS9saW51eC11c2VyL3N5c2NhbGwuYworKysg Yi9saW51eC11c2VyL3N5c2NhbGwuYwpAQCAtNTE2LDYgKzUxNiw4IEBAIHN0YXRpYyBpbmxpbmUg aW50IHJlZ3BhaXJzX2FsaWduZWQodm9pZCAqY3B1X2VudiwgaW50IG51bSkKIH0KICNlbGlmIGRl ZmluZWQoVEFSR0VUX1hURU5TQSkKIHN0YXRpYyBpbmxpbmUgaW50IHJlZ3BhaXJzX2FsaWduZWQo dm9pZCAqY3B1X2VudiwgaW50IG51bSkgeyByZXR1cm4gMTsgfQorI2VsaWYgZGVmaW5lZChUQVJH RVRfSEVYQUdPTikKK3N0YXRpYyBpbmxpbmUgaW50IHJlZ3BhaXJzX2FsaWduZWQodm9pZCAqY3B1 X2VudiwgaW50IG51bSkgeyByZXR1cm4gMTsgfQogI2Vsc2UKIHN0YXRpYyBpbmxpbmUgaW50IHJl Z3BhaXJzX2FsaWduZWQodm9pZCAqY3B1X2VudiwgaW50IG51bSkgeyByZXR1cm4gMDsgfQogI2Vu ZGlmCi0tIAoyLjcuNAoK