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=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,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 BD86AC00A89 for ; Fri, 30 Oct 2020 15:20:52 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 1730D20756 for ; Fri, 30 Oct 2020 15:20:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="gaxQn1Ge"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="fzq/xIV/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1730D20756 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=1wnIdgNjOdzXLZJ0fu+RgHX8fuf4rbiTBbHx+bHreH4=; b=gaxQn1GeQq4wE9coKR28s93I1 oZ8qIKqt1FEo5R9WaPEN/Wlj4R8p322Vy6kLP+gD2vo/PD0QsSpq9RUqDKtJQM3pXtjpBqfE+pUnp GMmEpmHmAZJ/WD7PhcDiilB4Z8mxw6NPUnOkHiBJA3jwwnO4lsS1Unytf9//glDilHtZnI5M//aOV vCM0Q4psPq78qWU2wJ2pIXoWhO3sp+1MzbBwYt1aOnVwZ5zEhb60yF22rwUIbFpHY1sieJw9warTm uwJHhFUhjYgXborMydnWV93TB1VY8INMJGKsmhV6nMOIqUii2Pt8g6/B5/qGHK8p6iJPt/03pLli9 6vlgUJSNw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYWAh-0002RV-Tj; Fri, 30 Oct 2020 15:18:31 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYWAa-0002PQ-8x for linux-arm-kernel@lists.infradead.org; Fri, 30 Oct 2020 15:18:29 +0000 Received: from localhost.localdomain (HSI-KBW-46-223-126-90.hsi.kabel-badenwuerttemberg.de [46.223.126.90]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id CD42D20A8B; Fri, 30 Oct 2020 15:18:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604071103; bh=1vp/SJB7mnGBWfEVHLXuid5cTF9gxdNQ7WBfEo/ZU8U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fzq/xIV/0ULHfa3KcYl2oHEuhekMt5MHHdZX+PGz1l0eSGRbcmNrFmSSo9G89QMPC 13bBZ7UuOr12XOybGldKg3vBqVy9v4Fey57KoaHMLrHH/Otrf0jK7XRuNe7tz+0XeU OYHypJ7cenR1YOlFVX7DP+DennW1Nk0Hz5+OTG5s= From: Arnd Bergmann To: linux-kernel@vger.kernel.org Subject: [PATCH v2 01/15] ARM: remove ebsa110 platform Date: Fri, 30 Oct 2020 16:17:44 +0100 Message-Id: <20201030151758.1241164-2-arnd@kernel.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20201030151758.1241164-1-arnd@kernel.org> References: <20201030151758.1241164-1-arnd@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201030_111824_684282_87BB2967 X-CRM114-Status: GOOD ( 31.54 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sam Creasey , Fenghua Yu , Linus Walleij , Tony Luck , linux-ia64@vger.kernel.org, Parisc List , Arnd Bergmann , Stephen Boyd , Philip Blundell , Helge Deller , Daniel Lezcano , Russell King , Finn Thain , "James E.J. Bottomley" , linux-m68k , John Stultz , Linux ARM , Thomas Gleixner , Russell King , Greg Ungerer , Joshua Thompson Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RnJvbTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KClJ1c3NlbGwgc2FpZCB0aGF0IGhl IGlzIG5vIGxvbmdlciB1c2luZyB0aGlzIG1hY2hpbmUsIGFuZCBpdCBzZWVtcyB0aGF0Cm5vYm9k eSBlbHNlIGhhcyBpbiBhIGxvbmcgdGltZSwgc28gaXQncyB0aW1lIHRvIHNheSBnb29kYnllIHRv IGl0LgoKQXMgdGhpcyBpcyB0aGUgbGFzdCBwbGF0Zm9ybSB1c2luZyBDT05GSUdfQVJDSF9VU0VT X0dFVFRJTUVPRkZTRVQsCnRoZXJlIGFyZSBzb21lIGZvbGxvdy11cCBwYXRjaGVzIHRvIHJlbW92 ZSB0aGF0IGFzIHdlbGwuCgpBY2tlZC1ieTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybWxp bnV4Lm9yZy51az4KU2lnbmVkLW9mZi1ieTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4K LS0tCiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDgg LQogYXJjaC9hcm0vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI0ICst CiBhcmNoL2FybS9LY29uZmlnLmRlYnVnICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0K IGFyY2gvYXJtL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCAtCiBh cmNoL2FybS9jb25maWdzL2Vic2ExMTBfZGVmY29uZmlnICAgICAgICAgICAgfCAgNzQgLS0tCiBh cmNoL2FybS9rZXJuZWwvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGFy Y2gvYXJtL21hY2gtZWJzYTExMC9NYWtlZmlsZSAgICAgICAgICAgICAgICB8ICAgOCAtCiBhcmNo L2FybS9tYWNoLWVic2ExMTAvTWFrZWZpbGUuYm9vdCAgICAgICAgICAgfCAgIDUgLQogYXJjaC9h cm0vbWFjaC1lYnNhMTEwL2NvcmUuYyAgICAgICAgICAgICAgICAgIHwgMzIzIC0tLS0tLS0tLS0t LS0KIGFyY2gvYXJtL21hY2gtZWJzYTExMC9jb3JlLmggICAgICAgICAgICAgICAgICB8ICAzOCAt LQogLi4uL21hY2gtZWJzYTExMC9pbmNsdWRlL21hY2gvZW50cnktbWFjcm8uUyAgIHwgIDMzIC0t CiBhcmNoL2FybS9tYWNoLWVic2ExMTAvaW5jbHVkZS9tYWNoL2hhcmR3YXJlLmggfCAgMjEgLQog YXJjaC9hcm0vbWFjaC1lYnNhMTEwL2luY2x1ZGUvbWFjaC9pby5oICAgICAgIHwgIDg5IC0tLS0K IGFyY2gvYXJtL21hY2gtZWJzYTExMC9pbmNsdWRlL21hY2gvaXJxcy5oICAgICB8ICAxNyAtCiBh cmNoL2FybS9tYWNoLWVic2ExMTAvaW5jbHVkZS9tYWNoL21lbW9yeS5oICAgfCAgMjIgLQogLi4u L21hY2gtZWJzYTExMC9pbmNsdWRlL21hY2gvdW5jb21wcmVzcy5oICAgIHwgIDQxIC0tCiBhcmNo L2FybS9tYWNoLWVic2ExMTAvaW8uYyAgICAgICAgICAgICAgICAgICAgfCA0NDAgLS0tLS0tLS0t LS0tLS0tLS0tCiBhcmNoL2FybS9tYWNoLWVic2ExMTAvbGVkcy5jICAgICAgICAgICAgICAgICAg fCAgNzEgLS0tCiBkcml2ZXJzL3dhdGNoZG9nL0tjb25maWcgICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIDE5IGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTIyOSBkZWxldGlv bnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9jb25maWdzL2Vic2ExMTBfZGVmY29u ZmlnCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1lYnNhMTEwL01ha2VmaWxlCiBk ZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1lYnNhMTEwL01ha2VmaWxlLmJvb3QKIGRl bGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLWVic2ExMTAvY29yZS5jCiBkZWxldGUgbW9k ZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1lYnNhMTEwL2NvcmUuaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IGFyY2gvYXJtL21hY2gtZWJzYTExMC9pbmNsdWRlL21hY2gvZW50cnktbWFjcm8uUwogZGVsZXRl IG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtZWJzYTExMC9pbmNsdWRlL21hY2gvaGFyZHdhcmUu aAogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtZWJzYTExMC9pbmNsdWRlL21hY2gv aW8uaAogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtZWJzYTExMC9pbmNsdWRlL21h Y2gvaXJxcy5oCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1lYnNhMTEwL2luY2x1 ZGUvbWFjaC9tZW1vcnkuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtZWJzYTEx MC9pbmNsdWRlL21hY2gvdW5jb21wcmVzcy5oCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0v bWFjaC1lYnNhMTEwL2lvLmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLWVic2Ex MTAvbGVkcy5jCgpkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUwppbmRleCBl NzM2MzZiNzVmMjkuLjEyYzZhOTAyOGVkMiAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIv TUFJTlRBSU5FUlMKQEAgLTE3ODksMTQgKzE3ODksNiBAQCBGOglkcml2ZXJzL2Zpcm13YXJlL3R1 cnJpcy1tb3gtcnd0bS5jCiBGOglkcml2ZXJzL2dwaW8vZ3Bpby1tb3h0ZXQuYwogRjoJaW5jbHVk ZS9saW51eC9tb3h0ZXQuaAogCi1BUk0vRUJTQTExMCBNQUNISU5FIFNVUFBPUlQKLU06CVJ1c3Nl bGwgS2luZyA8bGludXhAYXJtbGludXgub3JnLnVrPgotTDoJbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnIChtb2RlcmF0ZWQgZm9yIG5vbi1zdWJzY3JpYmVycykKLVM6CU1haW50 YWluZWQKLVc6CWh0dHA6Ly93d3cuYXJtbGludXgub3JnLnVrLwotRjoJYXJjaC9hcm0vbWFjaC1l YnNhMTEwLwotRjoJZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL2FtNzljOTYxYS4qCi0KIEFSTS9F TkVSR1kgTUlDUk8gKFNJTElDT04gTEFCUykgRUZNMzIgU1VQUE9SVAogTToJVXdlIEtsZWluZS1L w7ZuaWcgPHUua2xlaW5lLWtvZW5pZ0BwZW5ndXRyb25peC5kZT4KIFI6CVBlbmd1dHJvbml4IEtl cm5lbCBUZWFtIDxrZXJuZWxAcGVuZ3V0cm9uaXguZGU+CmRpZmYgLS1naXQgYS9hcmNoL2FybS9L Y29uZmlnIGIvYXJjaC9hcm0vS2NvbmZpZwppbmRleCBmZTJmMTdlYjJiNTAuLjFiOWZkYTA4Yjky ZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vS2NvbmZpZworKysgYi9hcmNoL2FybS9LY29uZmlnCkBA IC0yNjcsOCArMjY3LDcgQEAgY29uZmlnIFBIWVNfT0ZGU0VUCiAJaGV4ICJQaHlzaWNhbCBhZGRy ZXNzIG9mIG1haW4gbWVtb3J5IiBpZiBNTVUKIAlkZXBlbmRzIG9uICFBUk1fUEFUQ0hfUEhZU19W SVJUCiAJZGVmYXVsdCBEUkFNX0JBU0UgaWYgIU1NVQotCWRlZmF1bHQgMHgwMDAwMDAwMCBpZiBB UkNIX0VCU0ExMTAgfHwgXAotCQkJQVJDSF9GT09UQlJJREdFCisJZGVmYXVsdCAweDAwMDAwMDAw IEFSQ0hfRk9PVEJSSURHRQogCWRlZmF1bHQgMHgxMDAwMDAwMCBpZiBBUkNIX09NQVAxIHx8IEFS Q0hfUlBDCiAJZGVmYXVsdCAweDIwMDAwMDAwIGlmIEFSQ0hfUzVQVjIxMAogCWRlZmF1bHQgMHhj MDAwMDAwMCBpZiBBUkNIX1NBMTEwMApAQCAtMzQyLDIwICszNDEsNiBAQCBjb25maWcgQVJNX1NJ TkdMRV9BUk1WN00KIAlzZWxlY3QgU1BBUlNFX0lSUQogCXNlbGVjdCBVU0VfT0YKIAotY29uZmln IEFSQ0hfRUJTQTExMAotCWJvb2wgIkVCU0EtMTEwIgotCXNlbGVjdCBBUkNIX1VTRVNfR0VUVElN RU9GRlNFVAotCXNlbGVjdCBDUFVfU0ExMTAKLQlzZWxlY3QgSVNBCi0Jc2VsZWN0IE5FRURfTUFD SF9JT19ICi0Jc2VsZWN0IE5FRURfTUFDSF9NRU1PUllfSAotCXNlbGVjdCBOT19JT1BPUlRfTUFQ Ci0JaGVscAotCSAgVGhpcyBpcyBhbiBldmFsdWF0aW9uIGJvYXJkIGZvciB0aGUgU3Ryb25nQVJN IHByb2Nlc3NvciBhdmFpbGFibGUKLQkgIGZyb20gRGlnaXRhbC4gSXQgaGFzIGxpbWl0ZWQgaGFy ZHdhcmUgb24tYm9hcmQsIGluY2x1ZGluZyBhbgotCSAgRXRoZXJuZXQgaW50ZXJmYWNlLCB0d28g UENNQ0lBIHNvY2tldHMsIHR3byBzZXJpYWwgcG9ydHMgYW5kIGEKLQkgIHBhcmFsbGVsIHBvcnQu Ci0KIGNvbmZpZyBBUkNIX0VQOTNYWAogCWJvb2wgIkVQOTN4eC1iYXNlZCIKIAlzZWxlY3QgQVJD SF9TUEFSU0VNRU1fRU5BQkxFCkBAIC0xMzcxLDcgKzEzNTYsNiBAQCBjb25maWcgQVJDSF9OUl9H UElPCiAKIGNvbmZpZyBIWl9GSVhFRAogCWludAotCWRlZmF1bHQgMjAwIGlmIEFSQ0hfRUJTQTEx MAogCWRlZmF1bHQgMTI4IGlmIFNPQ19BVDkxUk05MjAwCiAJZGVmYXVsdCAwCiAKQEAgLTE1ODcs OSArMTU3MSw3IEBAIGNvbmZpZyBGT1JDRV9NQVhfWk9ORU9SREVSCiAJICBhIHZhbHVlIG9mIDEx IG1lYW5zIHRoYXQgdGhlIGxhcmdlc3QgZnJlZSBtZW1vcnkgYmxvY2sgaXMgMl4xMCBwYWdlcy4K IAogY29uZmlnIEFMSUdOTUVOVF9UUkFQCi0JYm9vbAotCWRlcGVuZHMgb24gQ1BVX0NQMTVfTU1V Ci0JZGVmYXVsdCB5IGlmICFBUkNIX0VCU0ExMTAKKwlkZWZfYm9vbCBDUFVfQ1AxNV9NTVUKIAlz ZWxlY3QgSEFWRV9QUk9DX0NQVSBpZiBQUk9DX0ZTCiAJaGVscAogCSAgQVJNIHByb2Nlc3NvcnMg Y2Fubm90IGZldGNoL3N0b3JlIGluZm9ybWF0aW9uIHdoaWNoIGlzIG5vdApAQCAtMTc4NCw3ICsx NzY2LDcgQEAgY29uZmlnIENNRExJTkUKIAlzdHJpbmcgIkRlZmF1bHQga2VybmVsIGNvbW1hbmQg c3RyaW5nIgogCWRlZmF1bHQgIiIKIAloZWxwCi0JICBPbiBzb21lIGFyY2hpdGVjdHVyZXMgKEVC U0ExMTAgYW5kIENBVFMpLCB0aGVyZSBpcyBjdXJyZW50bHkgbm8gd2F5CisJICBPbiBzb21lIGFy Y2hpdGVjdHVyZXMgKGUuZy4gQ0FUUyksIHRoZXJlIGlzIGN1cnJlbnRseSBubyB3YXkKIAkgIGZv ciB0aGUgYm9vdCBsb2FkZXIgdG8gcGFzcyBhcmd1bWVudHMgdG8gdGhlIGtlcm5lbC4gRm9yIHRo ZXNlCiAJICBhcmNoaXRlY3R1cmVzLCB5b3Ugc2hvdWxkIHN1cHBseSBzb21lIGNvbW1hbmQtbGlu ZSBvcHRpb25zIGF0IGJ1aWxkCiAJICB0aW1lIGJ5IGVudGVyaW5nIHRoZW0gaGVyZS4gQXMgYSBt aW5pbXVtLCB5b3Ugc2hvdWxkIHNwZWNpZnkgdGhlCmRpZmYgLS1naXQgYS9hcmNoL2FybS9LY29u ZmlnLmRlYnVnIGIvYXJjaC9hcm0vS2NvbmZpZy5kZWJ1ZwppbmRleCA4OTg2YTkxYTZmMzEuLjRm ZjA0MjAxYThjYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vS2NvbmZpZy5kZWJ1ZworKysgYi9hcmNo L2FybS9LY29uZmlnLmRlYnVnCkBAIC0xNTY3LDcgKzE1NjcsNyBAQCBjb25maWcgREVCVUdfU0lS RlNPQ19VQVJUCiBjb25maWcgREVCVUdfVUFSVF9GTE9XX0NPTlRST0wKIAlib29sICJFbmFibGUg ZmxvdyBjb250cm9sIChDVFMpIGZvciB0aGUgZGVidWcgVUFSVCIKIAlkZXBlbmRzIG9uIERFQlVH X0xMCi0JZGVmYXVsdCB5IGlmIEFSQ0hfRUJTQTExMCB8fCBERUJVR19GT09UQlJJREdFX0NPTTEg fHwgREVCVUdfR0VNSU5JIHx8IEFSQ0hfUlBDCisJZGVmYXVsdCB5IGlmIERFQlVHX0ZPT1RCUklE R0VfQ09NMSB8fCBERUJVR19HRU1JTkkgfHwgQVJDSF9SUEMKIAloZWxwCiAJICBTb21lIFVBUlQg cG9ydHMgYXJlIGNvbm5lY3RlZCB0byB0ZXJtaW5hbHMgdGhhdCB3aWxsIHVzZSBtb2RlbQogCSAg Y29udHJvbCBzaWduYWxzIHRvIGluZGljYXRlIHdoZXRoZXIgdGhleSBhcmUgcmVhZHkgdG8gcmVj ZWl2ZSB0ZXh0LgpAQCAtMTYzOSw3ICsxNjM5LDcgQEAgY29uZmlnIERFQlVHX1VBUlRfUEwwMVgK IAogIyBDb21wYXRpYmlsaXR5IG9wdGlvbnMgZm9yIDgyNTAKIGNvbmZpZyBERUJVR19VQVJUXzgy NTAKLQlkZWZfYm9vbCBBUkNIX0VCU0ExMTAgfHwgQVJDSF9JT1AzMlggfHwgQVJDSF9JWFA0WFgg fHwgQVJDSF9SUEMKKwlkZWZfYm9vbCBBUkNIX0lPUDMyWCB8fCBBUkNIX0lYUDRYWCB8fCBBUkNI X1JQQwogCiBjb25maWcgREVCVUdfVUFSVF9QSFlTCiAJaGV4ICJQaHlzaWNhbCBiYXNlIGFkZHJl c3Mgb2YgZGVidWcgVUFSVCIKQEAgLTE3NDMsNyArMTc0Myw2IEBAIGNvbmZpZyBERUJVR19VQVJU X1BIWVMKIAlkZWZhdWx0IDB4ZTgwMDgwMDAgaWYgREVCVUdfUjdTNzIxMDBfU0NJRjIgfHwgREVC VUdfUjdTOTIxMF9TQ0lGMgogCWRlZmF1bHQgMHhlODAwOTAwMCBpZiBERUJVR19SN1M5MjEwX1ND SUY0CiAJZGVmYXVsdCAweGYwMDAwMDAwIGlmIERFQlVHX0RJR0lDT0xPUl9VQTAKLQlkZWZhdWx0 IDB4ZjAwMDBiZTAgaWYgQVJDSF9FQlNBMTEwCiAJZGVmYXVsdCAweGYxMDEyMDAwIGlmIERFQlVH X01WRUJVX1VBUlQwX0FMVEVSTkFURQogCWRlZmF1bHQgMHhmMTAxMjEwMCBpZiBERUJVR19NVkVC VV9VQVJUMV9BTFRFUk5BVEUKIAlkZWZhdWx0IDB4ZjdmYzkwMDAgaWYgREVCVUdfQkVSTElOX1VB UlQKQEAgLTE3OTAsNyArMTc4OSw2IEBAIGNvbmZpZyBERUJVR19VQVJUX1ZJUlQKIAlkZWZhdWx0 IDB4Yzg4MjEwMDAgaWYgREVCVUdfUlYxMTA4X1VBUlQxCiAJZGVmYXVsdCAweGM4OTEyMDAwIGlm IERFQlVHX1JWMTEwOF9VQVJUMAogCWRlZmF1bHQgMHhlMDAxMGZlMCBpZiBBUkNIX1JQQwotCWRl ZmF1bHQgMHhmMDAwMGJlMCBpZiBBUkNIX0VCU0ExMTAKIAlkZWZhdWx0IDB4ZjAwMTAwMDAgaWYg REVCVUdfQVNNOTI2MF9VQVJUCiAJZGVmYXVsdCAweGYwMTAwMDAwIGlmIERFQlVHX0RJR0lDT0xP Ul9VQTAKIAlkZWZhdWx0IDB4ZjAxZmIwMDAgaWYgREVCVUdfTk9NQURJS19VQVJUCmRpZmYgLS1n aXQgYS9hcmNoL2FybS9NYWtlZmlsZSBiL2FyY2gvYXJtL01ha2VmaWxlCmluZGV4IDRkNzZlYWIy YjIyZC4uNjQ5OTlkOTRlZDFiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9NYWtlZmlsZQorKysgYi9h cmNoL2FybS9NYWtlZmlsZQpAQCAtMTcyLDcgKzE3Miw2IEBAIG1hY2hpbmUtJChDT05GSUdfQVJD SF9DTlMzWFhYKQkJKz0gY25zM3h4eAogbWFjaGluZS0kKENPTkZJR19BUkNIX0RBVklOQ0kpCQkr PSBkYXZpbmNpCiBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfRElHSUNPTE9SKQkrPSBkaWdpY29sb3IK IG1hY2hpbmUtJChDT05GSUdfQVJDSF9ET1ZFKQkJKz0gZG92ZQotbWFjaGluZS0kKENPTkZJR19B UkNIX0VCU0ExMTApCQkrPSBlYnNhMTEwCiBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfRUZNMzIpCQkr PSBlZm0zMgogbWFjaGluZS0kKENPTkZJR19BUkNIX0VQOTNYWCkJCSs9IGVwOTN4eAogbWFjaGlu ZS0kKENPTkZJR19BUkNIX0VYWU5PUykJCSs9IGV4eW5vcwpAQCAtMjM5LDEzICsyMzgsNiBAQCBw bGF0LSQoQ09ORklHX1BMQVRfT1JJT04pCSs9IG9yaW9uCiBwbGF0LSQoQ09ORklHX1BMQVRfUFhB KQkJKz0gcHhhCiBwbGF0LSQoQ09ORklHX1BMQVRfVkVSU0FUSUxFKQkrPSB2ZXJzYXRpbGUKIAot aWZlcSAoJChDT05GSUdfQVJDSF9FQlNBMTEwKSx5KQotIyBUaGlzIGlzIHdoYXQgaGFwcGVucyBp ZiB5b3UgZm9yZ2V0IHRoZSBJT0NTMTYgbGluZS4KLSMgUENNQ0lBIGNhcmRzIHN0b3Agd29ya2lu Zy4KLUNGTEFHU18zYzU4OV9jcy5vIDo9LURJU0FfU0lYVEVFTl9CSVRfUEVSSVBIRVJBTAotZXhw b3J0IENGTEFHU18zYzU4OV9jcy5vCi1lbmRpZgotCiAjIFRoZSBieXRlIG9mZnNldCBvZiB0aGUg a2VybmVsIGltYWdlIGluIFJBTSBmcm9tIHRoZSBzdGFydCBvZiBSQU0uCiBURVhUX09GRlNFVCA6 PSAkKHRleHRvZnMteSkKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9lYnNhMTEwX2Rl ZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvZWJzYTExMF9kZWZjb25maWcKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDczMWEyMmE1NWY0ZS4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gv YXJtL2NvbmZpZ3MvZWJzYTExMF9kZWZjb25maWcKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCww IEBACi1DT05GSUdfU1lTVklQQz15Ci1DT05GSUdfQlNEX1BST0NFU1NfQUNDVD15Ci1DT05GSUdf TE9HX0JVRl9TSElGVD0xNAotQ09ORklHX0VYUEVSVD15Ci1DT05GSUdfTU9EVUxFUz15Ci1DT05G SUdfQVJDSF9FQlNBMTEwPXkKLUNPTkZJR19QQ0NBUkQ9bQotQ09ORklHX0k4MjM2NT1tCi1DT05G SUdfTEVEUz15Ci1DT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCi1DT05GSUdfWkJPT1RfUk9NX0JT Uz0weDAKLUNPTkZJR19DTURMSU5FPSJyb290PS9kZXYvbmZzIHJ3IG1lbT0xNk0gY29uc29sZT10 dHlTMSwzODQwMG44IgotQ09ORklHX0ZQRV9OV0ZQRT15Ci1DT05GSUdfRlBFX0ZBU1RGUEU9eQot Q09ORklHX0JJTkZNVF9BT1VUPXkKLUNPTkZJR19ORVQ9eQotQ09ORklHX1BBQ0tFVD15Ci1DT05G SUdfVU5JWD15Ci1DT05GSUdfSU5FVD15Ci1DT05GSUdfSVBfTVVMVElDQVNUPXkKLUNPTkZJR19J UF9BRFZBTkNFRF9ST1VURVI9eQotQ09ORklHX0lQX01VTFRJUExFX1RBQkxFUz15Ci1DT05GSUdf SVBfUk9VVEVfVkVSQk9TRT15Ci1DT05GSUdfSVBfUE5QPXkKLUNPTkZJR19JUF9QTlBfQk9PVFA9 eQotQ09ORklHX1NZTl9DT09LSUVTPXkKLUNPTkZJR19JUFY2PXkKLUNPTkZJR19ORVRGSUxURVI9 eQotQ09ORklHX0lQX05GX0lQVEFCTEVTPXkKLUNPTkZJR19JUF9ORl9NQVRDSF9FQ049eQotQ09O RklHX0lQX05GX01BVENIX1RUTD15Ci1DT05GSUdfSVBfTkZfRklMVEVSPXkKLUNPTkZJR19JUF9O Rl9UQVJHRVRfUkVKRUNUPXkKLUNPTkZJR19JUF9ORl9UQVJHRVRfTE9HPXkKLUNPTkZJR19JUF9O Rl9NQU5HTEU9eQotQ09ORklHX0lQX05GX1RBUkdFVF9FQ049eQotQ09ORklHX0lQNl9ORl9JUFRB QkxFUz15Ci1DT05GSUdfSVA2X05GX01BVENIX0ZSQUc9eQotQ09ORklHX0lQNl9ORl9NQVRDSF9P UFRTPXkKLUNPTkZJR19JUDZfTkZfTUFUQ0hfSEw9eQotQ09ORklHX0lQNl9ORl9NQVRDSF9SVD15 Ci1DT05GSUdfSVA2X05GX0ZJTFRFUj15Ci1DT05GSUdfSVA2X05GX01BTkdMRT15Ci1DT05GSUdf RldfTE9BREVSPW0KLUNPTkZJR19QQVJQT1JUPXkKLUNPTkZJR19QQVJQT1JUX1BDPXkKLUNPTkZJ R19QQVJQT1JUX1BDX0ZJRk89eQotQ09ORklHX1BBUlBPUlRfMTI4ND15Ci1DT05GSUdfQkxLX0RF Vl9SQU09eQotQ09ORklHX05FVERFVklDRVM9eQotQ09ORklHX05FVF9FVEhFUk5FVD15Ci1DT05G SUdfQVJNX0FNNzlDOTYxQT15Ci1DT05GSUdfTkVUX1BDTUNJQT15Ci1DT05GSUdfUENNQ0lBX1BD TkVUPW0KLUNPTkZJR19QUFA9bQotQ09ORklHX1BQUF9BU1lOQz1tCi1DT05GSUdfUFBQX0RFRkxB VEU9bQotQ09ORklHX1BQUF9CU0RDT01QPW0KLSMgQ09ORklHX0lOUFVUIGlzIG5vdCBzZXQKLSMg Q09ORklHX1NFUklPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKLUNPTkZJR19T RVJJQUxfODI1MD15Ci1DT05GSUdfU0VSSUFMXzgyNTBfQ09OU09MRT15Ci1DT05GSUdfU0VSSUFM XzgyNTBfQ1M9bQotQ09ORklHX1BSSU5URVI9bQotQ09ORklHX1dBVENIRE9HPXkKLUNPTkZJR19T T0ZUX1dBVENIRE9HPXkKLUNPTkZJR19BVVRPRlM0X0ZTPXkKLUNPTkZJR19NSU5JWF9GUz15Ci1D T05GSUdfTkZTX0ZTPXkKLUNPTkZJR19ORlNfVjM9eQotQ09ORklHX1JPT1RfTkZTPXkKLUNPTkZJ R19QQVJUSVRJT05fQURWQU5DRUQ9eQotIyBDT05GSUdfTVNET1NfUEFSVElUSU9OIGlzIG5vdCBz ZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC9NYWtlZmlsZSBiL2FyY2gvYXJtL2tlcm5l bC9NYWtlZmlsZQppbmRleCA4OWU1ZDg2NGU5MjMuLjA5ZTY3Y2IwMmIyMCAxMDA2NDQKLS0tIGEv YXJjaC9hcm0va2VybmVsL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9NYWtlZmlsZQpA QCAtMTcsNyArMTcsNyBAQCBDRkxBR1NfUkVNT1ZFX3JldHVybl9hZGRyZXNzLm8gPSAtcGcKICMg T2JqZWN0IGZpbGUgbGlzdHMuCiAKIG9iai15CQk6PSBlbGYubyBlbnRyeS1jb21tb24ubyBpcnEu byBvcGNvZGVzLm8gXAotCQkgICBwcm9jZXNzLm8gcHRyYWNlLm8gcmVib290Lm8gXAorCQkgICBw cm9jZXNzLm8gcHRyYWNlLm8gcmVib290Lm8gaW8ubyBcCiAJCSAgIHNldHVwLm8gc2lnbmFsLm8g c2lncmV0dXJuX2NvZGVzLm8gXAogCQkgICBzdGFja3RyYWNlLm8gc3lzX2FybS5vIHRpbWUubyB0 cmFwcy5vCiAKQEAgLTgzLDEwICs4Myw2IEBAIEFGTEFHU19pd21teHQubwkJCTo9IC1XYSwtbWNw dT1pd21teHQKIG9iai0kKENPTkZJR19BUk1fQ1BVX1RPUE9MT0dZKSAgKz0gdG9wb2xvZ3kubwog b2JqLSQoQ09ORklHX1ZEU08pCQkrPSB2ZHNvLm8KIG9iai0kKENPTkZJR19FRkkpCQkrPSBlZmku bwotCi1pZm5lcSAoJChDT05GSUdfQVJDSF9FQlNBMTEwKSx5KQotICBvYmoteQkJKz0gaW8ubwot ZW5kaWYKIG9iai0kKENPTkZJR19QQVJBVklSVCkJKz0gcGFyYXZpcnQubwogCiBoZWFkLXkJCQk6 PSBoZWFkJChNTVVFWFQpLm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtZWJzYTExMC9NYWtl ZmlsZSBiL2FyY2gvYXJtL21hY2gtZWJzYTExMC9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMjk2NTQxMzE1ZDI1Li4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFj aC1lYnNhMTEwL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0jIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLSMKLSMgTWFrZWZpbGUgZm9yIHRoZSBs aW51eCBrZXJuZWwuCi0jCi0KLSMgT2JqZWN0IGZpbGUgbGlzdHMuCi0KLW9iai15CQkJOj0gY29y ZS5vIGlvLm8gbGVkcy5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWVic2ExMTAvTWFrZWZp bGUuYm9vdCBiL2FyY2gvYXJtL21hY2gtZWJzYTExMC9NYWtlZmlsZS5ib290CmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBlN2U5ODkzN2M3MWIuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNo L2FybS9tYWNoLWVic2ExMTAvTWFrZWZpbGUuYm9vdAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAs MCBAQAotIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0gICB6cmVsYWRk ci15CSs9IDB4MDAwMDgwMDAKLXBhcmFtc19waHlzLXkJOj0gMHgwMDAwMDQwMAotaW5pdHJkX3Bo eXMteQk6PSAweDAwODAwMDAwCi0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtZWJzYTExMC9j b3JlLmMgYi9hcmNoL2FybS9tYWNoLWVic2ExMTAvY29yZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA1OTYwZTNkZmQyYmYuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNo LWVic2ExMTAvY29yZS5jCisrKyAvZGV2L251bGwKQEAgLTEsMzIzICswLDAgQEAKLS8vIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiAgbGludXgvYXJjaC9hcm0v bWFjaC1lYnNhMTEwL2NvcmUuYwotICoKLSAqICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMSBSdXNz ZWxsIEtpbmcKLSAqCi0gKiAgRXh0cmEgTU0gcm91dGluZXMgZm9yIHRoZSBFQlNBLTExMCBhcmNo aXRlY3R1cmUKLSAqLwotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4 L21tLmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc2Vy aWFsXzgyNTAuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW8u aD4KLQotI2luY2x1ZGUgPG1hY2gvaGFyZHdhcmUuaD4KLSNpbmNsdWRlIDxhc20vaXJxLmg+Ci0j aW5jbHVkZSA8YXNtL3NldHVwLmg+Ci0jaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KLSNpbmNs dWRlIDxhc20vcGFnZS5oPgotI2luY2x1ZGUgPGFzbS9zeXN0ZW1fbWlzYy5oPgotCi0jaW5jbHVk ZSA8YXNtL21hY2gvYXJjaC5oPgotI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgotI2luY2x1ZGUg PGFzbS9tYWNoL21hcC5oPgotCi0jaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgotCi0jaW5jbHVk ZSAiY29yZS5oIgotCi1zdGF0aWMgdm9pZCBlYnNhMTEwX21hc2tfaXJxKHN0cnVjdCBpcnFfZGF0 YSAqZCkKLXsKLQlfX3Jhd193cml0ZWIoMSA8PCBkLT5pcnEsIElSUV9NQ0xSKTsKLX0KLQotc3Rh dGljIHZvaWQgZWJzYTExMF91bm1hc2tfaXJxKHN0cnVjdCBpcnFfZGF0YSAqZCkKLXsKLQlfX3Jh d193cml0ZWIoMSA8PCBkLT5pcnEsIElSUV9NU0VUKTsKLX0KLQotc3RhdGljIHN0cnVjdCBpcnFf Y2hpcCBlYnNhMTEwX2lycV9jaGlwID0gewotCS5pcnFfYWNrCT0gZWJzYTExMF9tYXNrX2lycSwK LQkuaXJxX21hc2sJPSBlYnNhMTEwX21hc2tfaXJxLAotCS5pcnFfdW5tYXNrCT0gZWJzYTExMF91 bm1hc2tfaXJxLAotfTsKLSAKLXN0YXRpYyB2b2lkIF9faW5pdCBlYnNhMTEwX2luaXRfaXJxKHZv aWQpCi17Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQl1bnNpZ25lZCBpbnQgaXJxOwotCi0JbG9j YWxfaXJxX3NhdmUoZmxhZ3MpOwotCV9fcmF3X3dyaXRlYigweGZmLCBJUlFfTUNMUik7Ci0JX19y YXdfd3JpdGViKDB4NTUsIElSUV9NU0VUKTsKLQlfX3Jhd193cml0ZWIoMHgwMCwgSVJRX01TRVQp OwotCWlmIChfX3Jhd19yZWFkYihJUlFfTUFTSykgIT0gMHg1NSkKLQkJd2hpbGUgKDEpOwotCV9f cmF3X3dyaXRlYigweGZmLCBJUlFfTUNMUik7CS8qIGNsZWFyIGFsbCBpbnRlcnJ1cHQgZW5hYmxl cyAqLwotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLQotCWZvciAoaXJxID0gMDsgaXJxIDwg TlJfSVJRUzsgaXJxKyspIHsKLQkJaXJxX3NldF9jaGlwX2FuZF9oYW5kbGVyKGlycSwgJmVic2Ex MTBfaXJxX2NoaXAsCi0JCQkJCSBoYW5kbGVfbGV2ZWxfaXJxKTsKLQkJaXJxX2NsZWFyX3N0YXR1 c19mbGFncyhpcnEsIElSUV9OT1JFUVVFU1QgfCBJUlFfTk9QUk9CRSk7Ci0JfQotfQotCi1zdGF0 aWMgc3RydWN0IG1hcF9kZXNjIGVic2ExMTBfaW9fZGVzY1tdIF9faW5pdGRhdGEgPSB7Ci0JLyoK LQkgKiBzcGFyc2UgZXh0ZXJuYWwtZGVjb2RlIElTQUlPIHNwYWNlCi0JICovCi0JewkvKiBJUlFf U1RBVC9JUlFfTUNMUiAqLwotCQkudmlydHVhbAk9ICh1bnNpZ25lZCBsb25nKUlSUV9TVEFULAot CQkucGZuCQk9IF9fcGh5c190b19wZm4oVFJJQ0s0X1BIWVMpLAotCQkubGVuZ3RoCQk9IFRSSUNL NF9TSVpFLAotCQkudHlwZQkJPSBNVF9ERVZJQ0UKLQl9LCB7CS8qIElSUV9NQVNLL0lSUV9NU0VU ICovCi0JCS52aXJ0dWFsCT0gKHVuc2lnbmVkIGxvbmcpSVJRX01BU0ssCi0JCS5wZm4JCT0gX19w aHlzX3RvX3BmbihUUklDSzNfUEhZUyksCi0JCS5sZW5ndGgJCT0gVFJJQ0szX1NJWkUsCi0JCS50 eXBlCQk9IE1UX0RFVklDRQotCX0sIHsJLyogU09GVF9CQVNFICovCi0JCS52aXJ0dWFsCT0gKHVu c2lnbmVkIGxvbmcpU09GVF9CQVNFLAotCQkucGZuCQk9IF9fcGh5c190b19wZm4oVFJJQ0sxX1BI WVMpLAotCQkubGVuZ3RoCQk9IFRSSUNLMV9TSVpFLAotCQkudHlwZQkJPSBNVF9ERVZJQ0UKLQl9 LCB7CS8qIFBJVF9CQVNFICovCi0JCS52aXJ0dWFsCT0gKHVuc2lnbmVkIGxvbmcpUElUX0JBU0Us Ci0JCS5wZm4JCT0gX19waHlzX3RvX3BmbihUUklDSzBfUEhZUyksCi0JCS5sZW5ndGgJCT0gVFJJ Q0swX1NJWkUsCi0JCS50eXBlCQk9IE1UX0RFVklDRQotCX0sCi0KLQkvKgotCSAqIHNlbGYtZGVj b2RlIElTQUlPIHNwYWNlCi0JICovCi0JewotCQkudmlydHVhbAk9IElTQUlPX0JBU0UsCi0JCS5w Zm4JCT0gX19waHlzX3RvX3BmbihJU0FJT19QSFlTKSwKLQkJLmxlbmd0aAkJPSBJU0FJT19TSVpF LAotCQkudHlwZQkJPSBNVF9ERVZJQ0UKLQl9LCB7Ci0JCS52aXJ0dWFsCT0gSVNBTUVNX0JBU0Us Ci0JCS5wZm4JCT0gX19waHlzX3RvX3BmbihJU0FNRU1fUEhZUyksCi0JCS5sZW5ndGgJCT0gSVNB TUVNX1NJWkUsCi0JCS50eXBlCQk9IE1UX0RFVklDRQotCX0KLX07Ci0KLXN0YXRpYyB2b2lkIF9f aW5pdCBlYnNhMTEwX21hcF9pbyh2b2lkKQotewotCWlvdGFibGVfaW5pdChlYnNhMTEwX2lvX2Rl c2MsIEFSUkFZX1NJWkUoZWJzYTExMF9pb19kZXNjKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9faW9t ZW0gKmVic2ExMTBfaW9yZW1hcF9jYWxsZXIocGh5c19hZGRyX3QgY29va2llLCBzaXplX3Qgc2l6 ZSwKLQkJCQkJICAgIHVuc2lnbmVkIGludCBmbGFncywgdm9pZCAqY2FsbGVyKQotewotCXJldHVy biAodm9pZCBfX2lvbWVtICopY29va2llOwotfQotCi1zdGF0aWMgdm9pZCBlYnNhMTEwX2lvdW5t YXAodm9sYXRpbGUgdm9pZCBfX2lvbWVtICppb19hZGRyKQote30KLQotc3RhdGljIHZvaWQgX19p bml0IGVic2ExMTBfaW5pdF9lYXJseSh2b2lkKQotewotCWFyY2hfaW9yZW1hcF9jYWxsZXIgPSBl YnNhMTEwX2lvcmVtYXBfY2FsbGVyOwotCWFyY2hfaW91bm1hcCA9IGVic2ExMTBfaW91bm1hcDsK LX0KLQotI2RlZmluZSBQSVRfQ1RSTAkJKFBJVF9CQVNFICsgMHgwZCkKLSNkZWZpbmUgUElUX1Qy CQkJKFBJVF9CQVNFICsgMHgwOSkKLSNkZWZpbmUgUElUX1QxCQkJKFBJVF9CQVNFICsgMHgwNSkK LSNkZWZpbmUgUElUX1QwCQkJKFBJVF9CQVNFICsgMHgwMSkKLQotLyoKLSAqIFRoaXMgaXMgdGhl IHJhdGUgYXQgd2hpY2ggeW91ciBNQ0xLIHNpZ25hbCB0b2dnbGVzIChpbiBIeikKLSAqIFRoaXMg d2FzIG1lYXN1cmVkIG9uIGEgMTAgZGlnaXQgZnJlcXVlbmN5IGNvdW50ZXIgc2FtcGxpbmcKLSAq IG92ZXIgMSBzZWNvbmQuCi0gKi8KLSNkZWZpbmUgTUNMSwk0Nzg5NDAwMAotCi0vKgotICogVGhp cyBpcyB0aGUgcmF0ZSBhdCB3aGljaCB0aGUgUElUIHRpbWVycyBnZXQgY2xvY2tlZAotICovCi0j ZGVmaW5lIENMS0JZNwkoTUNMSyAvIDcpCi0KLS8qCi0gKiBUaGlzIGlzIHRoZSBjb3VudGVyIHZh bHVlLiAgV2UgdGljayBhdCAyMDBIeiBvbiB0aGlzIHBsYXRmb3JtLgotICovCi0jZGVmaW5lIENP VU5UCSgoQ0xLQlk3ICsgKEhaIC8gMikpIC8gSFopCi0KLS8qCi0gKiBHZXQgdGhlIHRpbWUgb2Zm c2V0IGZyb20gdGhlIHN5c3RlbSBQSVQuICBOb3RlIHRoYXQgaWYgd2UgaGF2ZSBtaXNzZWQgYW4K LSAqIGludGVycnVwdCwgdGhlbiB0aGUgUElUIGNvdW50ZXIgd2lsbCByb2xsIG92ZXIgKGllLCBi ZSBuZWdhdGl2ZSkuCi0gKiBUaGlzIGFjdHVhbGx5IHdvcmtzIG91dCB0byBiZSBjb252ZW5pZW50 LgotICovCi1zdGF0aWMgdTMyIGVic2ExMTBfZ2V0dGltZW9mZnNldCh2b2lkKQotewotCXVuc2ln bmVkIGxvbmcgb2Zmc2V0LCBjb3VudDsKLQotCV9fcmF3X3dyaXRlYigweDQwLCBQSVRfQ1RSTCk7 Ci0JY291bnQgPSBfX3Jhd19yZWFkYihQSVRfVDEpOwotCWNvdW50IHw9IF9fcmF3X3JlYWRiKFBJ VF9UMSkgPDwgODsKLQotCS8qCi0JICogSWYgY291bnQgPiBDT1VOVCwgbWFrZSB0aGUgbnVtYmVy IG5lZ2F0aXZlLgotCSAqLwotCWlmIChjb3VudCA+IENPVU5UKQotCQljb3VudCB8PSAweGZmZmYw MDAwOwotCi0Jb2Zmc2V0ID0gQ09VTlQ7Ci0Jb2Zmc2V0IC09IGNvdW50OwotCi0JLyoKLQkgKiBg b2Zmc2V0JyBpcyBpbiB1bml0cyBvZiB0aW1lciBjb3VudHMuICBDb252ZXJ0Ci0JICogb2Zmc2V0 IHRvIHVuaXRzIG9mIG1pY3Jvc2Vjb25kcy4KLQkgKi8KLQlvZmZzZXQgPSBvZmZzZXQgKiAoMTAw MDAwMCAvIEhaKSAvIENPVU5UOwotCi0JcmV0dXJuIG9mZnNldCAqIDEwMDA7Ci19Ci0KLXN0YXRp YyBpcnFyZXR1cm5fdAotZWJzYTExMF90aW1lcl9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2 X2lkKQotewotCXUzMiBjb3VudDsKLQotCS8qIGxhdGNoIGFuZCByZWFkIHRpbWVyIDEgKi8KLQlf X3Jhd193cml0ZWIoMHg0MCwgUElUX0NUUkwpOwotCWNvdW50ID0gX19yYXdfcmVhZGIoUElUX1Qx KTsKLQljb3VudCB8PSBfX3Jhd19yZWFkYihQSVRfVDEpIDw8IDg7Ci0KLQljb3VudCArPSBDT1VO VDsKLQotCV9fcmF3X3dyaXRlYihjb3VudCAmIDB4ZmYsIFBJVF9UMSk7Ci0JX19yYXdfd3JpdGVi KGNvdW50ID4+IDgsIFBJVF9UMSk7Ci0KLQl0aW1lcl90aWNrKCk7Ci0KLQlyZXR1cm4gSVJRX0hB TkRMRUQ7Ci19Ci0KLS8qCi0gKiBTZXQgdXAgdGltZXIgaW50ZXJydXB0LgotICovCi12b2lkIF9f aW5pdCBlYnNhMTEwX3RpbWVyX2luaXQodm9pZCkKLXsKLQlpbnQgaXJxID0gSVJRX0VCU0ExMTBf VElNRVIwOwotCi0JYXJjaF9nZXR0aW1lb2Zmc2V0ID0gZWJzYTExMF9nZXR0aW1lb2Zmc2V0Owot Ci0JLyoKLQkgKiBUaW1lciAxLCBtb2RlIDIsIExTQi9NU0IKLQkgKi8KLQlfX3Jhd193cml0ZWIo MHg3MCwgUElUX0NUUkwpOwotCV9fcmF3X3dyaXRlYihDT1VOVCAmIDB4ZmYsIFBJVF9UMSk7Ci0J X19yYXdfd3JpdGViKENPVU5UID4+IDgsIFBJVF9UMSk7Ci0KLQlpZiAocmVxdWVzdF9pcnEoaXJx LCBlYnNhMTEwX3RpbWVyX2ludGVycnVwdCwgSVJRRl9USU1FUiB8IElSUUZfSVJRUE9MTCwKLQkJ CSJFQlNBMTEwIFRpbWVyIFRpY2siLCBOVUxMKSkKLQkJcHJfZXJyKCJGYWlsZWQgdG8gcmVxdWVz dCBpcnEgJWQgKEVCU0ExMTAgVGltZXIgVGljaylcbiIsIGlycSk7Ci19Ci0KLXN0YXRpYyBzdHJ1 Y3QgcGxhdF9zZXJpYWw4MjUwX3BvcnQgc2VyaWFsX3BsYXRmb3JtX2RhdGFbXSA9IHsKLQl7Ci0J CS5pb2Jhc2UJCT0gMHgzZjgsCi0JCS5pcnEJCT0gMSwKLQkJLnVhcnRjbGsJPSAxODQzMjAwLAot CQkucmVnc2hpZnQJPSAwLAotCQkuaW90eXBlCQk9IFVQSU9fUE9SVCwKLQkJLmZsYWdzCQk9IFVQ Rl9CT09UX0FVVE9DT05GIHwgVVBGX1NLSVBfVEVTVCwKLQl9LAotCXsKLQkJLmlvYmFzZQkJPSAw eDJmOCwKLQkJLmlycQkJPSAyLAotCQkudWFydGNsawk9IDE4NDMyMDAsCi0JCS5yZWdzaGlmdAk9 IDAsCi0JCS5pb3R5cGUJCT0gVVBJT19QT1JULAotCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NP TkYgfCBVUEZfU0tJUF9URVNULAotCX0sCi0JeyB9LAotfTsKLQotc3RhdGljIHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2Ugc2VyaWFsX2RldmljZSA9IHsKLQkubmFtZQkJCT0gInNlcmlhbDgyNTAiLAot CS5pZAkJCT0gUExBVDgyNTBfREVWX1BMQVRGT1JNLAotCS5kZXYJCQk9IHsKLQkJLnBsYXRmb3Jt X2RhdGEJPSBzZXJpYWxfcGxhdGZvcm1fZGF0YSwKLQl9LAotfTsKLQotc3RhdGljIHN0cnVjdCBy ZXNvdXJjZSBhbTc5Yzk2MV9yZXNvdXJjZXNbXSA9IHsKLQl7Ci0JCS5zdGFydAkJPSAweDIyMCwK LQkJLmVuZAkJPSAweDIzOCwKLQkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSU8sCi0JfSwgewotCQku c3RhcnQJCT0gSVJRX0VCU0ExMTBfRVRIRVJORVQsCi0JCS5lbmQJCT0gSVJRX0VCU0ExMTBfRVRI RVJORVQsCi0JCS5mbGFncwkJPSBJT1JFU09VUkNFX0lSUSwKLQl9LAotfTsKLQotc3RhdGljIHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYW03OWM5NjFfZGV2aWNlID0gewotCS5uYW1lCQkJPSAiYW03 OWM5NjEiLAotCS5pZAkJCT0gLTEsCi0JLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShhbTc5 Yzk2MV9yZXNvdXJjZXMpLAotCS5yZXNvdXJjZQkJPSBhbTc5Yzk2MV9yZXNvdXJjZXMsCi19Owot Ci1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZWJzYTExMF9kZXZpY2VzW10gPSB7Ci0J JnNlcmlhbF9kZXZpY2UsCi0JJmFtNzljOTYxX2RldmljZSwKLX07Ci0KLS8qCi0gKiBFQlNBMTEw IGlkbGluZyBtZXRob2RvbG9neToKLSAqCi0gKiBXZSBjYW4gbm90IGV4ZWN1dGUgdGhlICJ3YWl0 IGZvciBpbnRlcnJ1cHQiIGluc3RydWN0aW9uIHNpbmNlIHRoYXQKLSAqIHdpbGwgc3RvcCBvdXIg TUNMSyBzaWduYWwgKHdoaWNoIHByb3ZpZGVzIHRoZSBjbG9jayBmb3IgdGhlIGdsdWUKLSAqIGxv Z2ljLCBhbmQgdGhlcmVmb3JlIHRoZSB0aW1lciBpbnRlcnJ1cHQpLgotICoKLSAqIEluc3RlYWQs IHdlIHNwaW4sIHBvbGxpbmcgdGhlIElSUV9TVEFUIHJlZ2lzdGVyIGZvciB0aGUgb2NjdXJyZW5j ZQotICogb2YgYW55IGludGVycnVwdCB3aXRoIGNvcmUgY2xvY2sgZG93biB0byB0aGUgbWVtb3J5 IGNsb2NrLgotICovCi1zdGF0aWMgdm9pZCBlYnNhMTEwX2lkbGUodm9pZCkKLXsKLQljb25zdCBj aGFyICppcnFfc3RhdCA9IChjaGFyICopMHhmZjAwMDAwMDsKLQotCS8qIGRpc2FibGUgY2xvY2sg c3dpdGNoaW5nICovCi0JYXNtIHZvbGF0aWxlICgibWNyIHAxNSwgMCwgaXAsIGMxNSwgYzIsIDIi IDogOiA6ICJjYyIpOwotCi0JLyogd2FpdCBmb3IgYW4gaW50ZXJydXB0IHRvIG9jY3VyICovCi0J d2hpbGUgKCEqaXJxX3N0YXQpOwotCi0JLyogZW5hYmxlIGNsb2NrIHN3aXRjaGluZyAqLwotCWFz bSB2b2xhdGlsZSAoIm1jciBwMTUsIDAsIGlwLCBjMTUsIGMxLCAyIiA6IDogOiAiY2MiKTsKLX0K LQotc3RhdGljIGludCBfX2luaXQgZWJzYTExMF9pbml0KHZvaWQpCi17Ci0JYXJtX3BtX2lkbGUg PSBlYnNhMTEwX2lkbGU7Ci0JcmV0dXJuIHBsYXRmb3JtX2FkZF9kZXZpY2VzKGVic2ExMTBfZGV2 aWNlcywgQVJSQVlfU0laRShlYnNhMTEwX2RldmljZXMpKTsKLX0KLQotYXJjaF9pbml0Y2FsbChl YnNhMTEwX2luaXQpOwotCi1zdGF0aWMgdm9pZCBlYnNhMTEwX3Jlc3RhcnQoZW51bSByZWJvb3Rf bW9kZSBtb2RlLCBjb25zdCBjaGFyICpjbWQpCi17Ci0Jc29mdF9yZXN0YXJ0KDB4ODAwMDAwMDAp OwotfQotCi1NQUNISU5FX1NUQVJUKEVCU0ExMTAsICJFQlNBMTEwIikKLQkvKiBNYWludGFpbmVy OiBSdXNzZWxsIEtpbmcgKi8KLQkuYXRhZ19vZmZzZXQJPSAweDQwMCwKLQkucmVzZXJ2ZV9scDAJ PSAxLAotCS5yZXNlcnZlX2xwMgk9IDEsCi0JLm1hcF9pbwkJPSBlYnNhMTEwX21hcF9pbywKLQku aW5pdF9lYXJseQk9IGVic2ExMTBfaW5pdF9lYXJseSwKLQkuaW5pdF9pcnEJPSBlYnNhMTEwX2lu aXRfaXJxLAotCS5pbml0X3RpbWUJPSBlYnNhMTEwX3RpbWVyX2luaXQsCi0JLnJlc3RhcnQJPSBl YnNhMTEwX3Jlc3RhcnQsCi1NQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1l YnNhMTEwL2NvcmUuaCBiL2FyY2gvYXJtL21hY2gtZWJzYTExMC9jb3JlLmgKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDQ3YWNjNjEwYjZiNC4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gv YXJtL21hY2gtZWJzYTExMC9jb3JlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0v KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCi0vKgotICogIENvcHly aWdodCAoQykgMTk5Ni0yMDAwIFJ1c3NlbGwgS2luZy4KLSAqCi0gKiBUaGlzIGZpbGUgY29udGFp bnMgdGhlIGNvcmUgaGFyZHdhcmUgZGVmaW5pdGlvbnMgb2YgdGhlIEVCU0EtMTEwLgotICovCi0j aWZuZGVmIENPUkVfSAotI2RlZmluZSBDT1JFX0gKLQotLyogUGh5c2ljYWwgYWRkcmVzc2VzL3Np emVzICovCi0jZGVmaW5lIElTQU1FTV9QSFlTCQkweGUwMDAwMDAwCi0jZGVmaW5lIElTQU1FTV9T SVpFCQkweDEwMDAwMDAwCi0KLSNkZWZpbmUgSVNBSU9fUEhZUwkJMHhmMDAwMDAwMAotI2RlZmlu ZSBJU0FJT19TSVpFCQlQR0RJUl9TSVpFCi0KLSNkZWZpbmUgVFJJQ0swX1BIWVMJCTB4ZjIwMDAw MDAKLSNkZWZpbmUgVFJJQ0swX1NJWkUJCVBHRElSX1NJWkUKLSNkZWZpbmUgVFJJQ0sxX1BIWVMJ CTB4ZjI0MDAwMDAKLSNkZWZpbmUgVFJJQ0sxX1NJWkUJCVBHRElSX1NJWkUKLSNkZWZpbmUgVFJJ Q0syX1BIWVMJCTB4ZjI4MDAwMDAKLSNkZWZpbmUgVFJJQ0szX1BIWVMJCTB4ZjJjMDAwMDAKLSNk ZWZpbmUgVFJJQ0szX1NJWkUJCVBHRElSX1NJWkUKLSNkZWZpbmUgVFJJQ0s0X1BIWVMJCTB4ZjMw MDAwMDAKLSNkZWZpbmUgVFJJQ0s0X1NJWkUJCVBHRElSX1NJWkUKLSNkZWZpbmUgVFJJQ0s1X1BI WVMJCTB4ZjM0MDAwMDAKLSNkZWZpbmUgVFJJQ0s2X1BIWVMJCTB4ZjM4MDAwMDAKLSNkZWZpbmUg VFJJQ0s3X1BIWVMJCTB4ZjNjMDAwMDAKLQotLyogVmlydHVhbCBhZGRyZXNzZXMgKi8KLSNkZWZp bmUgUElUX0JBU0UJCUlPTUVNKDB4ZmMwMDAwMDApCS8qIHRyaWNrIDAgKi8KLSNkZWZpbmUgU09G VF9CQVNFCQlJT01FTSgweGZkMDAwMDAwKQkvKiB0cmljayAxICovCi0jZGVmaW5lIElSUV9NQVNL CQlJT01FTSgweGZlMDAwMDAwKQkvKiB0cmljayAzIC0gcmVhZCAqLwotI2RlZmluZSBJUlFfTVNF VAkJSU9NRU0oMHhmZTAwMDAwMCkJLyogdHJpY2sgMyAtIHdyaXRlICovCi0jZGVmaW5lIElSUV9T VEFUCQlJT01FTSgweGZmMDAwMDAwKQkvKiB0cmljayA0IC0gcmVhZCAqLwotI2RlZmluZSBJUlFf TUNMUgkJSU9NRU0oMHhmZjAwMDAwMCkJLyogdHJpY2sgNCAtIHdyaXRlICovCi0KLSNlbmRpZgpk aWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1lYnNhMTEwL2luY2x1ZGUvbWFjaC9lbnRyeS1tYWNy by5TIGIvYXJjaC9hcm0vbWFjaC1lYnNhMTEwL2luY2x1ZGUvbWFjaC9lbnRyeS1tYWNyby5TCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNGIxMTBkZTc4YTkuLjAwMDAwMDAwMDAwMAot LS0gYS9hcmNoL2FybS9tYWNoLWVic2ExMTAvaW5jbHVkZS9tYWNoL2VudHJ5LW1hY3JvLlMKKysr IC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0vKgotICogYXJjaC9hcm0vbWFjaC1lYnNhMTEw L2luY2x1ZGUvbWFjaC9lbnRyeS1tYWNyby5TCi0gKgotICogTG93LWxldmVsIElSUSBoZWxwZXIg bWFjcm9zIGZvciBlYnNhMTEwIHBsYXRmb3JtLgotICoKLSAqIFRoaXMgZmlsZSBpcyBsaWNlbnNl ZCB1bmRlciAgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2Ug dmVyc2lvbiAyLiBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQot ICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICov Ci0KLQotCi0jZGVmaW5lIElSUV9TVEFUCQkweGZmMDAwMDAwCS8qIHJlYWQgKi8KLQotCS5tYWNy byAgZ2V0X2lycW5yX3ByZWFtYmxlLCBiYXNlLCB0bXAKLQltb3YJXGJhc2UsICNJUlFfU1RBVAot CS5lbmRtCi0KLQkubWFjcm8JZ2V0X2lycW5yX2FuZF9iYXNlLCBpcnFuciwgc3RhdCwgYmFzZSwg dG1wCi0JbGRyYglcc3RhdCwgW1xiYXNlXQkJCUAgZ2V0IGludGVycnVwdHMKLQltb3YJXGlycW5y LCAjMAotCXRzdAlcc3RhdCwgIzE1Ci0JYWRkZXEJXGlycW5yLCBcaXJxbnIsICM0Ci0JbW92ZXEJ XHN0YXQsIFxzdGF0LCBsc3IgIzQKLQl0c3QJXHN0YXQsICMzCi0JYWRkZXEJXGlycW5yLCBcaXJx bnIsICMyCi0JbW92ZXEJXHN0YXQsIFxzdGF0LCBsc3IgIzIKLQl0c3QJXHN0YXQsICMxCi0JYWRk ZXEJXGlycW5yLCBcaXJxbnIsICMxCi0JbW92ZXEJXHN0YXQsIFxzdGF0LCBsc3IgIzEKLQl0c3QJ XHN0YXQsICMxCQkJQCBiaXQgMCBzaG91bGQgYmUgc2V0Ci0JLmVuZG0KLQpkaWZmIC0tZ2l0IGEv YXJjaC9hcm0vbWFjaC1lYnNhMTEwL2luY2x1ZGUvbWFjaC9oYXJkd2FyZS5oIGIvYXJjaC9hcm0v bWFjaC1lYnNhMTEwL2luY2x1ZGUvbWFjaC9oYXJkd2FyZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA4MWY2OTY3NjgzZjYuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNo LWVic2ExMTAvaW5jbHVkZS9tYWNoL2hhcmR3YXJlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMSAr MCwwIEBACi0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCi0vKgot ICogIGFyY2gvYXJtL21hY2gtZWJzYTExMC9pbmNsdWRlL21hY2gvaGFyZHdhcmUuaAotICoKLSAq ICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCBSdXNzZWxsIEtpbmcuCi0gKgotICogVGhpcyBmaWxl IGNvbnRhaW5zIHRoZSBoYXJkd2FyZSBkZWZpbml0aW9ucyBvZiB0aGUgRUJTQS0xMTAuCi0gKi8K LSNpZm5kZWYgX19BU01fQVJDSF9IQVJEV0FSRV9ICi0jZGVmaW5lIF9fQVNNX0FSQ0hfSEFSRFdB UkVfSAotCi0jZGVmaW5lIElTQU1FTV9CQVNFCQkweGUwMDAwMDAwCi0jZGVmaW5lIElTQUlPX0JB U0UJCTB4ZjAwMDAwMDAKLQotLyoKLSAqIFJBTSBkZWZpbml0aW9ucwotICovCi0jZGVmaW5lIFVO Q0FDSEVBQkxFX0FERFIJMHhmZjAwMDAwMAkvKiBJUlFfU1RBVCAqLwotCi0jZW5kaWYKLQpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1lYnNhMTEwL2luY2x1ZGUvbWFjaC9pby5oIGIvYXJjaC9h cm0vbWFjaC1lYnNhMTEwL2luY2x1ZGUvbWFjaC9pby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBhZDE3MDg4NmM5YWEuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLWVi c2ExMTAvaW5jbHVkZS9tYWNoL2lvLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0v KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCi0vKgotICogIGFyY2gv YXJtL21hY2gtZWJzYTExMC9pbmNsdWRlL21hY2gvaW8uaAotICoKLSAqICBDb3B5cmlnaHQgKEMp IDE5OTcsMTk5OCBSdXNzZWxsIEtpbmcKLSAqCi0gKiBNb2RpZmljYXRpb25zOgotICogIDA2LURl Yy0xOTk3CVJNSwlDcmVhdGVkLgotICovCi0jaWZuZGVmIF9fQVNNX0FSTV9BUkNIX0lPX0gKLSNk ZWZpbmUgX19BU01fQVJNX0FSQ0hfSU9fSAotCi11OCBfX2luYjgodW5zaWduZWQgaW50IHBvcnQp Owotdm9pZCBfX291dGI4KHU4ICB2YWwsIHVuc2lnbmVkIGludCBwb3J0KTsKLQotdTggX19pbmIx Nih1bnNpZ25lZCBpbnQgcG9ydCk7Ci12b2lkIF9fb3V0YjE2KHU4ICB2YWwsIHVuc2lnbmVkIGlu dCBwb3J0KTsKLQotdTE2IF9faW53KHVuc2lnbmVkIGludCBwb3J0KTsKLXZvaWQgX19vdXR3KHUx NiB2YWwsIHVuc2lnbmVkIGludCBwb3J0KTsKLQotdTMyIF9faW5sKHVuc2lnbmVkIGludCBwb3J0 KTsKLXZvaWQgX19vdXRsKHUzMiB2YWwsIHVuc2lnbmVkIGludCBwb3J0KTsKLQotdTggIF9fcmVh ZGIoY29uc3Qgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKTsKLXUxNiBfX3JlYWR3KGNvbnN0 IHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcik7Ci11MzIgX19yZWFkbChjb25zdCB2b2xhdGls ZSB2b2lkIF9faW9tZW0gKmFkZHIpOwotCi12b2lkIF9fd3JpdGViKHU4ICB2YWwsIHZvbGF0aWxl IHZvaWQgX19pb21lbSAqYWRkcik7Ci12b2lkIF9fd3JpdGV3KHUxNiB2YWwsIHZvbGF0aWxlIHZv aWQgX19pb21lbSAqYWRkcik7Ci12b2lkIF9fd3JpdGVsKHUzMiB2YWwsIHZvbGF0aWxlIHZvaWQg X19pb21lbSAqYWRkcik7Ci0KLS8qCi0gKiBBcmdoLCBzb21lb25lIGZvcmdvdCB0aGUgSU9DUzE2 IGxpbmUuICBXZSB0aGVyZWZvcmUgaGF2ZSB0byBoYW5kbGUKLSAqIHRoZSBieXRlIHN0ZWFyaW5n IGJ5IHNlbGVjdGluZyB0aGUgY29ycmVjdCBieXRlIElPIGZ1bmN0aW9ucyBoZXJlLgotICovCi0j aWZkZWYgSVNBX1NJWFRFRU5fQklUX1BFUklQSEVSQUwKLSNkZWZpbmUgaW5iKHApIAkJCV9faW5i MTYocCkKLSNkZWZpbmUgb3V0Yih2LHApCQlfX291dGIxNih2LHApCi0jZWxzZQotI2RlZmluZSBp bmIocCkJCQlfX2luYjgocCkKLSNkZWZpbmUgb3V0Yih2LHApCQlfX291dGI4KHYscCkKLSNlbmRp ZgotCi0jZGVmaW5lIGludyhwKQkJCV9faW53KHApCi0jZGVmaW5lIG91dHcodixwKQkJX19vdXR3 KHYscCkKLQotI2RlZmluZSBpbmwocCkJCQlfX2lubChwKQotI2RlZmluZSBvdXRsKHYscCkJCV9f b3V0bCh2LHApCi0KLSNkZWZpbmUgcmVhZGIoYikJCV9fcmVhZGIoYikKLSNkZWZpbmUgcmVhZHco YikJCV9fcmVhZHcoYikKLSNkZWZpbmUgcmVhZGwoYikJCV9fcmVhZGwoYikKLSNkZWZpbmUgcmVh ZGJfcmVsYXhlZChhZGRyKQlyZWFkYihhZGRyKQotI2RlZmluZSByZWFkd19yZWxheGVkKGFkZHIp CXJlYWR3KGFkZHIpCi0jZGVmaW5lIHJlYWRsX3JlbGF4ZWQoYWRkcikJcmVhZGwoYWRkcikKLQot I2RlZmluZSB3cml0ZWIodixiKQkJX193cml0ZWIodixiKQotI2RlZmluZSB3cml0ZXcodixiKQkJ X193cml0ZXcodixiKQotI2RlZmluZSB3cml0ZWwodixiKQkJX193cml0ZWwodixiKQotCi0jZGVm aW5lIGluc2IgaW5zYgotZXh0ZXJuIHZvaWQgaW5zYih1bnNpZ25lZCBpbnQgcG9ydCwgdm9pZCAq YnVmLCBpbnQgc3opOwotI2RlZmluZSBpbnN3IGluc3cKLWV4dGVybiB2b2lkIGluc3codW5zaWdu ZWQgaW50IHBvcnQsIHZvaWQgKmJ1ZiwgaW50IHN6KTsKLSNkZWZpbmUgaW5zbCBpbnNsCi1leHRl cm4gdm9pZCBpbnNsKHVuc2lnbmVkIGludCBwb3J0LCB2b2lkICpidWYsIGludCBzeik7Ci0KLSNk ZWZpbmUgb3V0c2Igb3V0c2IKLWV4dGVybiB2b2lkIG91dHNiKHVuc2lnbmVkIGludCBwb3J0LCBj b25zdCB2b2lkICpidWYsIGludCBzeik7Ci0jZGVmaW5lIG91dHN3IG91dHN3Ci1leHRlcm4gdm9p ZCBvdXRzdyh1bnNpZ25lZCBpbnQgcG9ydCwgY29uc3Qgdm9pZCAqYnVmLCBpbnQgc3opOwotI2Rl ZmluZSBvdXRzbCBvdXRzbAotZXh0ZXJuIHZvaWQgb3V0c2wodW5zaWduZWQgaW50IHBvcnQsIGNv bnN0IHZvaWQgKmJ1ZiwgaW50IHN6KTsKLQotLyogY2FuJ3Qgc3VwcG9ydCB3cml0ZXNiIGF0bSAq LwotI2RlZmluZSB3cml0ZXN3IHdyaXRlc3cKLWV4dGVybiB2b2lkIHdyaXRlc3codm9sYXRpbGUg dm9pZCBfX2lvbWVtICphZGRyLCBjb25zdCB2b2lkICpkYXRhLCBpbnQgd29yZGxlbik7Ci0jZGVm aW5lIHdyaXRlc2wgd3JpdGVzbAotZXh0ZXJuIHZvaWQgd3JpdGVzbCh2b2xhdGlsZSB2b2lkIF9f aW9tZW0gKmFkZHIsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsb25nbGVuKTsKLQotLyogY2FuJ3Qg c3VwcG9ydCByZWFkc2IgYXRtICovCi0jZGVmaW5lIHJlYWRzdyByZWFkc3cKLWV4dGVybiB2b2lk IHJlYWRzdyhjb25zdCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIsIHZvaWQgKmRhdGEsIGlu dCB3b3JkbGVuKTsKLQotI2RlZmluZSByZWFkc2wgcmVhZHNsCi1leHRlcm4gdm9pZCByZWFkc2wo Y29uc3Qgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyLCB2b2lkICpkYXRhLCBpbnQgbG9uZ2xl bik7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1lYnNhMTEwL2luY2x1ZGUv bWFjaC9pcnFzLmggYi9hcmNoL2FybS9tYWNoLWVic2ExMTAvaW5jbHVkZS9tYWNoL2lycXMuaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjlhODY3MWZlODQ5Li4wMDAwMDAwMDAwMDAK LS0tIGEvYXJjaC9hcm0vbWFjaC1lYnNhMTEwL2luY2x1ZGUvbWFjaC9pcnFzLmgKKysrIC9kZXYv bnVsbApAQCAtMSwxNyArMCwwIEBACi0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MC1vbmx5ICovCi0vKgotICogIGFyY2gvYXJtL21hY2gtZWJzYTExMC9pbmNsdWRlL21hY2gvaXJx cy5oCi0gKgotICogIENvcHlyaWdodCAoQykgMTk5NiBSdXNzZWxsIEtpbmcKLSAqLwotCi0jZGVm aW5lIE5SX0lSUVMJCQk4Ci0KLSNkZWZpbmUgSVJRX0VCU0ExMTBfUFJJTlRFUgkwCi0jZGVmaW5l IElSUV9FQlNBMTEwX0NPTTEJMQotI2RlZmluZSBJUlFfRUJTQTExMF9DT00yCTIKLSNkZWZpbmUg SVJRX0VCU0ExMTBfRVRIRVJORVQJMwotI2RlZmluZSBJUlFfRUJTQTExMF9USU1FUjAJNAotI2Rl ZmluZSBJUlFfRUJTQTExMF9USU1FUjEJNQotI2RlZmluZSBJUlFfRUJTQTExMF9QQ01DSUEJNgot I2RlZmluZSBJUlFfRUJTQTExMF9JTU1FRElBVEUJNwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFj aC1lYnNhMTEwL2luY2x1ZGUvbWFjaC9tZW1vcnkuaCBiL2FyY2gvYXJtL21hY2gtZWJzYTExMC9p bmNsdWRlL21hY2gvbWVtb3J5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwMjVm NDA1ZGU1MC4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtZWJzYTExMC9pbmNsdWRl L21hY2gvbWVtb3J5LmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi0vKiBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCi0vKgotICogIGFyY2gvYXJtL21hY2gt ZWJzYTExMC9pbmNsdWRlL21hY2gvbWVtb3J5LmgKLSAqCi0gKiAgQ29weXJpZ2h0IChDKSAxOTk2 LTE5OTkgUnVzc2VsbCBLaW5nLgotICoKLSAqICBDaGFuZ2Vsb2c6Ci0gKiAgIDIwLU9jdC0xOTk2 IFJNSwlDcmVhdGVkCi0gKiAgIDMxLURlYy0xOTk3IFJNSwlGaXhlZCBkZWZpbml0aW9ucyB0byBy ZWR1Y2Ugd2FybmluZ3MKLSAqICAgMjEtTWFyLTE5OTkgUk1LCVJlbmFtZWQgdG8gbWVtb3J5LmgK LSAqCQkgUk1LCU1vdmVkIFRBU0tfU0laRSBhbmQgUEFHRV9PRkZTRVQgaGVyZQotICovCi0jaWZu ZGVmIF9fQVNNX0FSQ0hfTUVNT1JZX0gKLSNkZWZpbmUgX19BU01fQVJDSF9NRU1PUllfSAotCi0v KgotICogQ2FjaGUgZmx1c2hpbmcgYXJlYSAtIFNSQU0KLSAqLwotI2RlZmluZSBGTFVTSF9CQVNF X1BIWVMJCTB4NDAwMDAwMDAKLSNkZWZpbmUgRkxVU0hfQkFTRQkJMHhkZjAwMDAwMAotCi0jZW5k aWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtZWJzYTExMC9pbmNsdWRlL21hY2gvdW5jb21w cmVzcy5oIGIvYXJjaC9hcm0vbWFjaC1lYnNhMTEwL2luY2x1ZGUvbWFjaC91bmNvbXByZXNzLmgK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlYzEyZWZlOThhNi4uMDAwMDAwMDAwMDAw Ci0tLSBhL2FyY2gvYXJtL21hY2gtZWJzYTExMC9pbmNsdWRlL21hY2gvdW5jb21wcmVzcy5oCisr KyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAtb25seSAqLwotLyoKLSAqICBhcmNoL2FybS9tYWNoLWVic2ExMTAvaW5jbHVkZS9t YWNoL3VuY29tcHJlc3MuaAotICoKLSAqICBDb3B5cmlnaHQgKEMpIDE5OTYsMTk5NywxOTk4IFJ1 c3NlbGwgS2luZwotICovCi0KLSNpbmNsdWRlIDxsaW51eC9zZXJpYWxfcmVnLmg+Ci0KLSNkZWZp bmUgU0VSSUFMX0JBU0UJKCh1bnNpZ25lZCBjaGFyICopMHhmMDAwMGJlMCkKLQotLyoKLSAqIFRo aXMgZG9lcyBub3QgYXBwZW5kIGEgbmV3bGluZQotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgcHV0 YyhpbnQgYykKLXsKLQl1bnNpZ25lZCBjaGFyIHYsICpiYXNlID0gU0VSSUFMX0JBU0U7Ci0KLQlk byB7Ci0JCXYgPSBiYXNlW1VBUlRfTFNSIDw8IDJdOwotCQliYXJyaWVyKCk7Ci0JfSB3aGlsZSAo ISh2ICYgVUFSVF9MU1JfVEhSRSkpOwotCi0JYmFzZVtVQVJUX1RYIDw8IDJdID0gYzsKLX0KLQot c3RhdGljIGlubGluZSB2b2lkIGZsdXNoKHZvaWQpCi17Ci0JdW5zaWduZWQgY2hhciB2LCAqYmFz ZSA9IFNFUklBTF9CQVNFOwotCi0JZG8gewotCQl2ID0gYmFzZVtVQVJUX0xTUiA8PCAyXTsKLQkJ YmFycmllcigpOwotCX0gd2hpbGUgKCh2ICYgKFVBUlRfTFNSX1RFTVR8VUFSVF9MU1JfVEhSRSkp ICE9Ci0JCSAoVUFSVF9MU1JfVEVNVHxVQVJUX0xTUl9USFJFKSk7Ci19Ci0KLS8qCi0gKiBub3Ro aW5nIHRvIGRvCi0gKi8KLSNkZWZpbmUgYXJjaF9kZWNvbXBfc2V0dXAoKQpkaWZmIC0tZ2l0IGEv YXJjaC9hcm0vbWFjaC1lYnNhMTEwL2lvLmMgYi9hcmNoL2FybS9tYWNoLWVic2ExMTAvaW8uYwpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2M0NGRkMzU5NmVhLi4wMDAwMDAwMDAwMDAK LS0tIGEvYXJjaC9hcm0vbWFjaC1lYnNhMTEwL2lvLmMKKysrIC9kZXYvbnVsbApAQCAtMSw0NDAg KzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLS8qCi0gKiAgbGlu dXgvYXJjaC9hcm0vbWFjaC1lYnNhMTEwL2lzYW1lbS5jCi0gKgotICogIENvcHlyaWdodCAoQykg MjAwMSBSdXNzZWxsIEtpbmcKLSAqCi0gKiBQZXJmb3JtICJJU0EiIG1lbW9yeSBhbmQgSU8gYWNj ZXNzZXMuICBUaGUgRUJTQTExMCBoYXMgc29tZSAicGVjdWxpYXJpdGllcyIKLSAqIGluIHRoZSB3 YXkgaXQgaGFuZGxlcyBhY2Nlc3NlcyB0byBvZGQgSU8gcG9ydHMgb24gMTYtYml0IGRldmljZXMu ICBUaGVzZQotICogZGV2aWNlcyBoYXZlIHRoZWlyIEQwLUQxNSBsaW5lcyBjb25uZWN0ZWQgdG8g dGhlIHByb2Nlc3NvcnMgRDAtRDE1IGxpbmVzLgotICogU2luY2UgdGhleSBleHBlY3QgYWxsIGJ5 dGUgSU8gb3BlcmF0aW9ucyB0byBiZSBwZXJmb3JtZWQgb24gRDAtRDcsIGFuZCB0aGUKLSAqIFN0 cm9uZ0FSTSBleHBlY3RzIHRvIHRyYW5zZmVyIHRoZSBieXRlIHRvIHRoZXNlIG9kZCBhZGRyZXNz ZXMgb24gRDgtRDE1LAotICogd2UgbXVzdCB1c2UgYSB0cmljayB0byBnZXQgdGhlIHJlcXVpcmVk IGJlaGF2aW91ci4KLSAqCi0gKiBUaGUgdHJpY2sgZW1wbG95ZWQgaGVyZSBpcyB0byB1c2UgbG9u ZyB3b3JkIHN0b3JlcyB0byBvZGQgYWRkcmVzcyAtMS4gIFRoZQotICogZ2x1ZSBsb2dpYyBwaWNr cyB0aGlzIHVwIGFzIGEgInRyaWNrIiBhY2Nlc3MsIGFuZCBhc3NlcnRzIHRoZSBMU0Igb2YgdGhl Ci0gKiBwZXJpcGhlcmFscyBhZGRyZXNzIGJ1cywgdGhlcmVieSBhY2Nlc3NpbmcgdGhlIG9kZCBJ TyBwb3J0LiAgTWVhbndoaWxlLCB0aGUKLSAqIFN0cm9uZ0FSTSB0cmFuc2ZlcnMgaXRzIGRhdGEg b24gRDAtRDcgYXMgZXhwZWN0ZWQuCi0gKgotICogVGhpbmdzIGdldCBtb3JlIGludGVyZXN0aW5n IG9uIHRoZSBwYXNzLTEgRUJTQTExMCAtIHRoZSBQQ01DSUEgY29udHJvbGxlcgotICogd2lyaW5n IHdhcyBzY3Jld2VkIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCBoYWQgbGltaXRlZCBtZW1vcnkgc3Bh Y2UgYWNjZXNzLgotICogTHVja2lseSwgdGhlIHdvcmstYXJvdW5kIGZvciB0aGlzIGlzIG5vdCB0 b28gaG9ycmlibGUuICBTZWUKLSAqIF9faXNhbWVtX2NvbnZlcnRfYWRkciBmb3IgdGhlIGRldGFp bHMuCi0gKi8KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJu ZWwuaD4KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4L2lvLmg+Ci0K LSNpbmNsdWRlIDxtYWNoL2hhcmR3YXJlLmg+Ci0jaW5jbHVkZSA8YXNtL3BhZ2UuaD4KLQotc3Rh dGljIHZvaWQgX19pb21lbSAqX19pc2FtZW1fY29udmVydF9hZGRyKGNvbnN0IHZvbGF0aWxlIHZv aWQgX19pb21lbSAqYWRkcikKLXsKLQl1MzIgcmV0LCBhID0gKHUzMiBfX2ZvcmNlKSBhZGRyOwot Ci0JLyoKLQkgKiBUaGUgUENNQ0lBIGNvbnRyb2xsZXIgaXMgd2lyZWQgdXAgYXMgZm9sbG93czoK LQkgKiAgICAgICAgKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKwotCSAqIFBDTUNJQSB8IDIgMiAyIDIgfCAxIDEgMSAxIHwgMSAxIDEg MSB8IDEgMSAgICAgfCAgICAgICAgIHwgICAgICAgICB8Ci0JICogICAgICAgIHwgMyAyIDEgMCB8 IDkgOCA3IDYgfCA1IDQgMyAyIHwgMSAwIDkgOCB8IDcgNiA1IDQgfCAzIDIgMSAwIHwKLQkgKiAg ICAgICAgKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKwotCSAqICBDUFUgICB8IDIgMiAyIDIgfCAyIDEgMSAxIHwgMSAxIDEgMSB8IDEg MSAxICAgfCAgICAgICAgIHwgICAgICAgICB8Ci0JICogICAgICAgIHwgNCAzIDIgMSB8IDAgOSA5 IDggfCA3IDYgNSA0IHwgMyAyIDAgOSB8IDggNyA2IDUgfCA0IDMgMiB4IHwKLQkgKiAgICAgICAg Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKwotCSAqCi0JICogVGhpcyBtZWFucyB0aGF0IHdlIGNhbiBhY2Nlc3MgUENNQ0lBIHJlZ2lv bnMgYXMgZm9sbG93czoKLQkgKgkweCoxMDAwMCAtPiAweCoxZmZmZgotCSAqCTB4KjcwMDAwIC0+ IDB4KjdmZmZmCi0JICoJMHgqOTAwMDAgLT4gMHgqOWZmZmYKLQkgKgkweCpmMDAwMCAtPiAweCpm ZmZmZgotCSAqLwotCXJldCAgPSAoYSAmIDB4ZjgwM2ZlKSA8PCAxOwotCXJldCB8PSAoYSAmIDB4 MDNmYzAwKSA8PCAyOwotCi0JcmV0ICs9IDB4ZTgwMDAwMDA7Ci0KLQlpZiAoKGEgJiAweDIwMDAw KSA9PSAoYSAmIDB4NDAwMDApID4+IDEpCi0JCXJldHVybiAodm9pZCBfX2lvbWVtICopcmV0Owot Ci0JQlVHKCk7Ci0JcmV0dXJuIE5VTEw7Ci19Ci0KLS8qCi0gKiByZWFkW2J3bF0gYW5kIHdyaXRl W2J3bF0KLSAqLwotdTggX19yZWFkYihjb25zdCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIp Ci17Ci0Jdm9pZCBfX2lvbWVtICphID0gX19pc2FtZW1fY29udmVydF9hZGRyKGFkZHIpOwotCXUz MiByZXQ7Ci0KLQlpZiAoKHVuc2lnbmVkIGxvbmcpYWRkciAmIDEpCi0JCXJldCA9IF9fcmF3X3Jl YWRsKGEpOwotCWVsc2UKLQkJcmV0ID0gX19yYXdfcmVhZGIoYSk7Ci0JcmV0dXJuIHJldDsKLX0K LQotdTE2IF9fcmVhZHcoY29uc3Qgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQotewotCXZv aWQgX19pb21lbSAqYSA9IF9faXNhbWVtX2NvbnZlcnRfYWRkcihhZGRyKTsKLQotCWlmICgodW5z aWduZWQgbG9uZylhZGRyICYgMSkKLQkJQlVHKCk7Ci0KLQlyZXR1cm4gX19yYXdfcmVhZHcoYSk7 Ci19Ci0KLXUzMiBfX3JlYWRsKGNvbnN0IHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsK LQl2b2lkIF9faW9tZW0gKmEgPSBfX2lzYW1lbV9jb252ZXJ0X2FkZHIoYWRkcik7Ci0JdTMyIHJl dDsKLQotCWlmICgodW5zaWduZWQgbG9uZylhZGRyICYgMykKLQkJQlVHKCk7Ci0KLQlyZXQgPSBf X3Jhd19yZWFkdyhhKTsKLQlyZXQgfD0gX19yYXdfcmVhZHcoYSArIDQpIDw8IDE2OwotCXJldHVy biByZXQ7Ci19Ci0KLUVYUE9SVF9TWU1CT0woX19yZWFkYik7Ci1FWFBPUlRfU1lNQk9MKF9fcmVh ZHcpOwotRVhQT1JUX1NZTUJPTChfX3JlYWRsKTsKLQotdm9pZCByZWFkc3coY29uc3Qgdm9sYXRp bGUgdm9pZCBfX2lvbWVtICphZGRyLCB2b2lkICpkYXRhLCBpbnQgbGVuKQotewotCXZvaWQgX19p b21lbSAqYSA9IF9faXNhbWVtX2NvbnZlcnRfYWRkcihhZGRyKTsKLQotCUJVR19PTigodW5zaWdu ZWQgbG9uZylhZGRyICYgMSk7Ci0KLQlfX3Jhd19yZWFkc3coYSwgZGF0YSwgbGVuKTsKLX0KLUVY UE9SVF9TWU1CT0wocmVhZHN3KTsKLQotdm9pZCByZWFkc2woY29uc3Qgdm9sYXRpbGUgdm9pZCBf X2lvbWVtICphZGRyLCB2b2lkICpkYXRhLCBpbnQgbGVuKQotewotCXZvaWQgX19pb21lbSAqYSA9 IF9faXNhbWVtX2NvbnZlcnRfYWRkcihhZGRyKTsKLQotCUJVR19PTigodW5zaWduZWQgbG9uZylh ZGRyICYgMyk7Ci0KLQlfX3Jhd19yZWFkc2woYSwgZGF0YSwgbGVuKTsKLX0KLUVYUE9SVF9TWU1C T0wocmVhZHNsKTsKLQotdm9pZCBfX3dyaXRlYih1OCB2YWwsIHZvbGF0aWxlIHZvaWQgX19pb21l bSAqYWRkcikKLXsKLQl2b2lkIF9faW9tZW0gKmEgPSBfX2lzYW1lbV9jb252ZXJ0X2FkZHIoYWRk cik7Ci0KLQlpZiAoKHVuc2lnbmVkIGxvbmcpYWRkciAmIDEpCi0JCV9fcmF3X3dyaXRlbCh2YWws IGEpOwotCWVsc2UKLQkJX19yYXdfd3JpdGViKHZhbCwgYSk7Ci19Ci0KLXZvaWQgX193cml0ZXco dTE2IHZhbCwgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQotewotCXZvaWQgX19pb21lbSAq YSA9IF9faXNhbWVtX2NvbnZlcnRfYWRkcihhZGRyKTsKLQotCWlmICgodW5zaWduZWQgbG9uZylh ZGRyICYgMSkKLQkJQlVHKCk7Ci0KLQlfX3Jhd193cml0ZXcodmFsLCBhKTsKLX0KLQotdm9pZCBf X3dyaXRlbCh1MzIgdmFsLCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0Jdm9pZCBf X2lvbWVtICphID0gX19pc2FtZW1fY29udmVydF9hZGRyKGFkZHIpOwotCi0JaWYgKCh1bnNpZ25l ZCBsb25nKWFkZHIgJiAzKQotCQlCVUcoKTsKLQotCV9fcmF3X3dyaXRldyh2YWwsIGEpOwotCV9f cmF3X3dyaXRldyh2YWwgPj4gMTYsIGEgKyA0KTsKLX0KLQotRVhQT1JUX1NZTUJPTChfX3dyaXRl Yik7Ci1FWFBPUlRfU1lNQk9MKF9fd3JpdGV3KTsKLUVYUE9SVF9TWU1CT0woX193cml0ZWwpOwot Ci12b2lkIHdyaXRlc3codm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyLCBjb25zdCB2b2lkICpk YXRhLCBpbnQgbGVuKQotewotCXZvaWQgX19pb21lbSAqYSA9IF9faXNhbWVtX2NvbnZlcnRfYWRk cihhZGRyKTsKLQotCUJVR19PTigodW5zaWduZWQgbG9uZylhZGRyICYgMSk7Ci0KLQlfX3Jhd193 cml0ZXN3KGEsIGRhdGEsIGxlbik7Ci19Ci1FWFBPUlRfU1lNQk9MKHdyaXRlc3cpOwotCi12b2lk IHdyaXRlc2wodm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyLCBjb25zdCB2b2lkICpkYXRhLCBp bnQgbGVuKQotewotCXZvaWQgX19pb21lbSAqYSA9IF9faXNhbWVtX2NvbnZlcnRfYWRkcihhZGRy KTsKLQotCUJVR19PTigodW5zaWduZWQgbG9uZylhZGRyICYgMyk7Ci0KLQlfX3Jhd193cml0ZXNs KGEsIGRhdGEsIGxlbik7Ci19Ci1FWFBPUlRfU1lNQk9MKHdyaXRlc2wpOwotCi0vKgotICogVGhl IEVCU0ExMTAgaGFzIGEgd2VpcmQgIklTQSBJTyIgcmVnaW9uOgotICoKLSAqIFJlZ2lvbiAwIChh ZGRyID0gMHhmMDAwMDAwMCArIGlvIDw8IDIpCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogUGh5c2ljYWwgcmVnaW9uCUlPIHJl Z2lvbgotICogZjAwMDBmZTAgLSBmMDAwMGZmYwkzZjggLSAzZmYgIHR0eVMwCi0gKiBmMDAwMGU2 MCAtIGYwMDAwZTY0CTM5OCAtIDM5OQotICogZjAwMDBkZTAgLSBmMDAwMGRmYwkzNzggLSAzN2Yg IGxwMAotICogZjAwMDBiZTAgLSBmMDAwMGJmYwkyZjggLSAyZmYgIHR0eVMxCi0gKgotICogUmVn aW9uIDEgKGFkZHIgPSAweGYwMDAwMDAwICsgKGlvICYgfjEpIDw8IDEgKyAoaW8gJiAxKSkKLSAq IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0gKiBQaHlzaWNhbCByZWdpb24JSU8gcmVnaW9uCi0gKiBmMDAwMTRmMSAgICAgICAgICAgICBh NzkgICAgICAgIHBucCB3cml0ZSBkYXRhCi0gKiBmMDAwMDdjMCAtIGYwMDAwN2MxCTNlMCAtIDNl MSAgcGNtY2lhCi0gKiBmMDAwMDRmMQkJMjc5ICAgICAgICBwbnAgYWRkcmVzcwotICogZjAwMDA0 NDAgLSBmMDAwMDQ2YyAgMjIwIC0gMjM2ICBldGgwCi0gKiBmMDAwMDQwNQkJMjAzICAgICAgICBw bnAgcmVhZCBkYXRhCi0gKi8KLSNkZWZpbmUgU1VQRVJJT19QT1JUKHApIFwKLQkoKChwKSA+PiAz KSA9PSAoMHgzZjggPj4gMykgfHwgXAotCSAoKHApID4+IDMpID09ICgweDJmOCA+PiAzKSB8fCBc Ci0JICgocCkgPj4gMykgPT0gKDB4Mzc4ID4+IDMpKQotCi0vKgotICogV2UncmUgYWRkcmVzc2lu ZyBhbiA4IG9yIDE2LWJpdCBwZXJpcGhlcmFsIHdoaWNoIHRyYW5mZXJzCi0gKiBvZGQgYWRkcmVz c2VzIG9uIHRoZSBsb3cgSVNBIGJ5dGUgbGFuZS4KLSAqLwotdTggX19pbmI4KHVuc2lnbmVkIGlu dCBwb3J0KQotewotCXUzMiByZXQ7Ci0KLQkvKgotCSAqIFRoZSBTdXBlcklPIHJlZ2lzdGVycyB1 c2Ugc2FuZSBhZGRyZXNzaW5nIHRlY2huaXF1ZXMuLi4KLQkgKi8KLQlpZiAoU1VQRVJJT19QT1JU KHBvcnQpKQotCQlyZXQgPSBfX3Jhd19yZWFkYigodm9pZCBfX2lvbWVtICopSVNBSU9fQkFTRSAr IChwb3J0IDw8IDIpKTsKLQllbHNlIHsKLQkJdm9pZCBfX2lvbWVtICphID0gKHZvaWQgX19pb21l bSAqKUlTQUlPX0JBU0UgKyAoKHBvcnQgJiB+MSkgPDwgMSk7Ci0KLQkJLyoKLQkJICogU2hhbWUg bm90aGluZyBlbHNlIGRvZXMKLQkJICovCi0JCWlmIChwb3J0ICYgMSkKLQkJCXJldCA9IF9fcmF3 X3JlYWRsKGEpOwotCQllbHNlCi0JCQlyZXQgPSBfX3Jhd19yZWFkYihhKTsKLQl9Ci0JcmV0dXJu IHJldDsKLX0KLQotLyoKLSAqIFdlJ3JlIGFkZHJlc3NpbmcgYSAxNi1iaXQgcGVyaXBoZXJhbCB3 aGljaCB0cmFuc2ZlcnMgb2RkCi0gKiBhZGRyZXNzZXMgb24gdGhlIGhpZ2ggSVNBIGJ5dGUgbGFu ZS4KLSAqLwotdTggX19pbmIxNih1bnNpZ25lZCBpbnQgcG9ydCkKLXsKLQl1bnNpZ25lZCBpbnQg b2Zmc2V0OwotCi0JLyoKLQkgKiBUaGUgU3VwZXJJTyByZWdpc3RlcnMgdXNlIHNhbmUgYWRkcmVz c2luZyB0ZWNobmlxdWVzLi4uCi0JICovCi0JaWYgKFNVUEVSSU9fUE9SVChwb3J0KSkKLQkJb2Zm c2V0ID0gcG9ydCA8PCAyOwotCWVsc2UKLQkJb2Zmc2V0ID0gKHBvcnQgJiB+MSkgPDwgMSB8IChw b3J0ICYgMSk7Ci0KLQlyZXR1cm4gX19yYXdfcmVhZGIoKHZvaWQgX19pb21lbSAqKUlTQUlPX0JB U0UgKyBvZmZzZXQpOwotfQotCi11MTYgX19pbncodW5zaWduZWQgaW50IHBvcnQpCi17Ci0JdW5z aWduZWQgaW50IG9mZnNldDsKLQotCS8qCi0JICogVGhlIFN1cGVySU8gcmVnaXN0ZXJzIHVzZSBz YW5lIGFkZHJlc3NpbmcgdGVjaG5pcXVlcy4uLgotCSAqLwotCWlmIChTVVBFUklPX1BPUlQocG9y dCkpCi0JCW9mZnNldCA9IHBvcnQgPDwgMjsKLQllbHNlIHsKLQkJb2Zmc2V0ID0gcG9ydCA8PCAx OwotCQlCVUdfT04ocG9ydCAmIDEpOwotCX0KLQlyZXR1cm4gX19yYXdfcmVhZHcoKHZvaWQgX19p b21lbSAqKUlTQUlPX0JBU0UgKyBvZmZzZXQpOwotfQotCi0vKgotICogRmFrZSBhIDMyLWJpdCBy ZWFkIHdpdGggdHdvIDE2LWJpdCByZWFkcy4gIE5lZWRlZCBmb3IgM2M1ODkuCi0gKi8KLXUzMiBf X2lubCh1bnNpZ25lZCBpbnQgcG9ydCkKLXsKLQl2b2lkIF9faW9tZW0gKmE7Ci0KLQlpZiAoU1VQ RVJJT19QT1JUKHBvcnQpIHx8IHBvcnQgJiAzKQotCQlCVUcoKTsKLQotCWEgPSAodm9pZCBfX2lv bWVtICopSVNBSU9fQkFTRSArICgocG9ydCAmIH4xKSA8PCAxKTsKLQotCXJldHVybiBfX3Jhd19y ZWFkdyhhKSB8IF9fcmF3X3JlYWR3KGEgKyA0KSA8PCAxNjsKLX0KLQotRVhQT1JUX1NZTUJPTChf X2luYjgpOwotRVhQT1JUX1NZTUJPTChfX2luYjE2KTsKLUVYUE9SVF9TWU1CT0woX19pbncpOwot RVhQT1JUX1NZTUJPTChfX2lubCk7Ci0KLXZvaWQgX19vdXRiOCh1OCB2YWwsIHVuc2lnbmVkIGlu dCBwb3J0KQotewotCS8qCi0JICogVGhlIFN1cGVySU8gcmVnaXN0ZXJzIHVzZSBzYW5lIGFkZHJl c3NpbmcgdGVjaG5pcXVlcy4uLgotCSAqLwotCWlmIChTVVBFUklPX1BPUlQocG9ydCkpCi0JCV9f cmF3X3dyaXRlYih2YWwsICh2b2lkIF9faW9tZW0gKilJU0FJT19CQVNFICsgKHBvcnQgPDwgMikp OwotCWVsc2UgewotCQl2b2lkIF9faW9tZW0gKmEgPSAodm9pZCBfX2lvbWVtICopSVNBSU9fQkFT RSArICgocG9ydCAmIH4xKSA8PCAxKTsKLQotCQkvKgotCQkgKiBTaGFtZSBub3RoaW5nIGVsc2Ug ZG9lcwotCQkgKi8KLQkJaWYgKHBvcnQgJiAxKQotCQkJX19yYXdfd3JpdGVsKHZhbCwgYSk7Ci0J CWVsc2UKLQkJCV9fcmF3X3dyaXRlYih2YWwsIGEpOwotCX0KLX0KLQotdm9pZCBfX291dGIxNih1 OCB2YWwsIHVuc2lnbmVkIGludCBwb3J0KQotewotCXVuc2lnbmVkIGludCBvZmZzZXQ7Ci0KLQkv KgotCSAqIFRoZSBTdXBlcklPIHJlZ2lzdGVycyB1c2Ugc2FuZSBhZGRyZXNzaW5nIHRlY2huaXF1 ZXMuLi4KLQkgKi8KLQlpZiAoU1VQRVJJT19QT1JUKHBvcnQpKQotCQlvZmZzZXQgPSBwb3J0IDw8 IDI7Ci0JZWxzZQotCQlvZmZzZXQgPSAocG9ydCAmIH4xKSA8PCAxIHwgKHBvcnQgJiAxKTsKLQot CV9fcmF3X3dyaXRlYih2YWwsICh2b2lkIF9faW9tZW0gKilJU0FJT19CQVNFICsgb2Zmc2V0KTsK LX0KLQotdm9pZCBfX291dHcodTE2IHZhbCwgdW5zaWduZWQgaW50IHBvcnQpCi17Ci0JdW5zaWdu ZWQgaW50IG9mZnNldDsKLQotCS8qCi0JICogVGhlIFN1cGVySU8gcmVnaXN0ZXJzIHVzZSBzYW5l IGFkZHJlc3NpbmcgdGVjaG5pcXVlcy4uLgotCSAqLwotCWlmIChTVVBFUklPX1BPUlQocG9ydCkp Ci0JCW9mZnNldCA9IHBvcnQgPDwgMjsKLQllbHNlIHsKLQkJb2Zmc2V0ID0gcG9ydCA8PCAxOwot CQlCVUdfT04ocG9ydCAmIDEpOwotCX0KLQlfX3Jhd193cml0ZXcodmFsLCAodm9pZCBfX2lvbWVt ICopSVNBSU9fQkFTRSArIG9mZnNldCk7Ci19Ci0KLXZvaWQgX19vdXRsKHUzMiB2YWwsIHVuc2ln bmVkIGludCBwb3J0KQotewotCUJVRygpOwotfQotCi1FWFBPUlRfU1lNQk9MKF9fb3V0YjgpOwot RVhQT1JUX1NZTUJPTChfX291dGIxNik7Ci1FWFBPUlRfU1lNQk9MKF9fb3V0dyk7Ci1FWFBPUlRf U1lNQk9MKF9fb3V0bCk7Ci0KLXZvaWQgb3V0c2IodW5zaWduZWQgaW50IHBvcnQsIGNvbnN0IHZv aWQgKmZyb20sIGludCBsZW4pCi17Ci0JdTMyIG9mZjsKLQotCWlmIChTVVBFUklPX1BPUlQocG9y dCkpCi0JCW9mZiA9IHBvcnQgPDwgMjsKLQllbHNlIHsKLQkJb2ZmID0gKHBvcnQgJiB+MSkgPDwg MTsKLQkJaWYgKHBvcnQgJiAxKQotCQkJQlVHKCk7Ci0JfQotCi0JX19yYXdfd3JpdGVzYigodm9p ZCBfX2lvbWVtICopSVNBSU9fQkFTRSArIG9mZiwgZnJvbSwgbGVuKTsKLX0KLQotdm9pZCBpbnNi KHVuc2lnbmVkIGludCBwb3J0LCB2b2lkICpmcm9tLCBpbnQgbGVuKQotewotCXUzMiBvZmY7Ci0K LQlpZiAoU1VQRVJJT19QT1JUKHBvcnQpKQotCQlvZmYgPSBwb3J0IDw8IDI7Ci0JZWxzZSB7Ci0J CW9mZiA9IChwb3J0ICYgfjEpIDw8IDE7Ci0JCWlmIChwb3J0ICYgMSkKLQkJCUJVRygpOwotCX0K LQotCV9fcmF3X3JlYWRzYigodm9pZCBfX2lvbWVtICopSVNBSU9fQkFTRSArIG9mZiwgZnJvbSwg bGVuKTsKLX0KLQotRVhQT1JUX1NZTUJPTChvdXRzYik7Ci1FWFBPUlRfU1lNQk9MKGluc2IpOwot Ci12b2lkIG91dHN3KHVuc2lnbmVkIGludCBwb3J0LCBjb25zdCB2b2lkICpmcm9tLCBpbnQgbGVu KQotewotCXUzMiBvZmY7Ci0KLQlpZiAoU1VQRVJJT19QT1JUKHBvcnQpKQotCQlvZmYgPSBwb3J0 IDw8IDI7Ci0JZWxzZSB7Ci0JCW9mZiA9IChwb3J0ICYgfjEpIDw8IDE7Ci0JCWlmIChwb3J0ICYg MSkKLQkJCUJVRygpOwotCX0KLQotCV9fcmF3X3dyaXRlc3coKHZvaWQgX19pb21lbSAqKUlTQUlP X0JBU0UgKyBvZmYsIGZyb20sIGxlbik7Ci19Ci0KLXZvaWQgaW5zdyh1bnNpZ25lZCBpbnQgcG9y dCwgdm9pZCAqZnJvbSwgaW50IGxlbikKLXsKLQl1MzIgb2ZmOwotCi0JaWYgKFNVUEVSSU9fUE9S VChwb3J0KSkKLQkJb2ZmID0gcG9ydCA8PCAyOwotCWVsc2UgewotCQlvZmYgPSAocG9ydCAmIH4x KSA8PCAxOwotCQlpZiAocG9ydCAmIDEpCi0JCQlCVUcoKTsKLQl9Ci0KLQlfX3Jhd19yZWFkc3co KHZvaWQgX19pb21lbSAqKUlTQUlPX0JBU0UgKyBvZmYsIGZyb20sIGxlbik7Ci19Ci0KLUVYUE9S VF9TWU1CT0wob3V0c3cpOwotRVhQT1JUX1NZTUJPTChpbnN3KTsKLQotLyoKLSAqIFdlIGltcGxl bWVudCB0aGVzZSBhcyAxNi1iaXQgaW5zdy9vdXRzdywgbWFpbmx5IGZvcgotICogM2M1ODkgY2Fy ZHMuCi0gKi8KLXZvaWQgb3V0c2wodW5zaWduZWQgaW50IHBvcnQsIGNvbnN0IHZvaWQgKmZyb20s IGludCBsZW4pCi17Ci0JdTMyIG9mZiA9IHBvcnQgPDwgMTsKLQotCWlmIChTVVBFUklPX1BPUlQo cG9ydCkgfHwgcG9ydCAmIDMpCi0JCUJVRygpOwotCi0JX19yYXdfd3JpdGVzdygodm9pZCBfX2lv bWVtICopSVNBSU9fQkFTRSArIG9mZiwgZnJvbSwgbGVuIDw8IDEpOwotfQotCi12b2lkIGluc2wo dW5zaWduZWQgaW50IHBvcnQsIHZvaWQgKmZyb20sIGludCBsZW4pCi17Ci0JdTMyIG9mZiA9IHBv cnQgPDwgMTsKLQotCWlmIChTVVBFUklPX1BPUlQocG9ydCkgfHwgcG9ydCAmIDMpCi0JCUJVRygp OwotCi0JX19yYXdfcmVhZHN3KCh2b2lkIF9faW9tZW0gKilJU0FJT19CQVNFICsgb2ZmLCBmcm9t LCBsZW4gPDwgMSk7Ci19Ci0KLUVYUE9SVF9TWU1CT0wob3V0c2wpOwotRVhQT1JUX1NZTUJPTChp bnNsKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtZWJzYTExMC9sZWRzLmMgYi9hcmNoL2Fy bS9tYWNoLWVic2ExMTAvbGVkcy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDE0 NzRiNjZkMzEuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLWVic2ExMTAvbGVkcy5j CisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIERyaXZlciBmb3IgdGhlIExFRCBmb3VuZCBvbiB0aGUg RUJTQTExMCBtYWNoaW5lCi0gKiBCYXNlZCBvbiBWZXJzYXRpbGUgYW5kIFJlYWxWaWV3IG1hY2hp bmUgTEVEIGNvZGUKLSAqCi0gKiBBdXRob3I6IEJyeWFuIFd1IDxicnlhbi53dUBjYW5vbmljYWwu Y29tPgotICovCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5p dC5oPgotI2luY2x1ZGUgPGxpbnV4L2lvLmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2lu Y2x1ZGUgPGxpbnV4L2xlZHMuaD4KLQotI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+Ci0KLSNp bmNsdWRlICJjb3JlLmgiCi0KLSNpZiBkZWZpbmVkKENPTkZJR19ORVdfTEVEUykgJiYgZGVmaW5l ZChDT05GSUdfTEVEU19DTEFTUykKLXN0YXRpYyB2b2lkIGVic2ExMTBfbGVkX3NldChzdHJ1Y3Qg bGVkX2NsYXNzZGV2ICpjZGV2LAotCQkJICAgICAgZW51bSBsZWRfYnJpZ2h0bmVzcyBiKQotewot CXU4IHJlZyA9IF9fcmF3X3JlYWRiKFNPRlRfQkFTRSk7Ci0KLQlpZiAoYiAhPSBMRURfT0ZGKQot CQlyZWcgfD0gMHg4MDsKLQllbHNlCi0JCXJlZyAmPSB+MHg4MDsKLQotCV9fcmF3X3dyaXRlYihy ZWcsIFNPRlRfQkFTRSk7Ci19Ci0KLXN0YXRpYyBlbnVtIGxlZF9icmlnaHRuZXNzIGVic2ExMTBf bGVkX2dldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpjZGV2KQotewotCXU4IHJlZyA9IF9fcmF3X3Jl YWRiKFNPRlRfQkFTRSk7Ci0KLQlyZXR1cm4gKHJlZyAmIDB4ODApID8gTEVEX0ZVTEwgOiBMRURf T0ZGOwotfQotCi1zdGF0aWMgaW50IF9faW5pdCBlYnNhMTEwX2xlZHNfaW5pdCh2b2lkKQotewot Ci0Jc3RydWN0IGxlZF9jbGFzc2RldiAqY2RldjsKLQlpbnQgcmV0OwotCi0JaWYgKCFtYWNoaW5l X2lzX2Vic2ExMTAoKSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQljZGV2ID0ga3phbGxvYyhzaXpl b2YoKmNkZXYpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWNkZXYpCi0JCXJldHVybiAtRU5PTUVNOwot Ci0JY2Rldi0+bmFtZSA9ICJlYnNhMTEwOjAiOwotCWNkZXYtPmJyaWdodG5lc3Nfc2V0ID0gZWJz YTExMF9sZWRfc2V0OwotCWNkZXYtPmJyaWdodG5lc3NfZ2V0ID0gZWJzYTExMF9sZWRfZ2V0Owot CWNkZXYtPmRlZmF1bHRfdHJpZ2dlciA9ICJoZWFydGJlYXQiOwotCi0JcmV0ID0gbGVkX2NsYXNz ZGV2X3JlZ2lzdGVyKE5VTEwsIGNkZXYpOwotCWlmIChyZXQJPCAwKSB7Ci0JCWtmcmVlKGNkZXYp OwotCQlyZXR1cm4gcmV0OwotCX0KLQotCXJldHVybiAwOwotfQotCi0vKgotICogU2luY2Ugd2Ug bWF5IGhhdmUgdHJpZ2dlcnMgb24gYW55IHN1YnN5c3RlbSwgZGVmZXIgcmVnaXN0cmF0aW9uCi0g KiB1bnRpbCBhZnRlciBzdWJzeXN0ZW1faW5pdC4KLSAqLwotZnNfaW5pdGNhbGwoZWJzYTExMF9s ZWRzX2luaXQpOwotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL3dhdGNoZG9nL0tjb25maWcg Yi9kcml2ZXJzL3dhdGNoZG9nL0tjb25maWcKaW5kZXggZmQ3OTY4NjM1ZTZkLi5mMjJlMzczMzcw MzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvd2F0Y2hkb2cvS2NvbmZpZworKysgYi9kcml2ZXJzL3dh dGNoZG9nL0tjb25maWcKQEAgLTU5OSw3ICs1OTksNyBAQCBjb25maWcgSzNfUlRJX1dBVENIRE9H CiAKIGNvbmZpZyBPUklPTl9XQVRDSERPRwogCXRyaXN0YXRlICJPcmlvbiB3YXRjaGRvZyIKLQlk ZXBlbmRzIG9uIEFSQ0hfT1JJT041WCB8fCBBUkNIX0RPVkUgfHwgTUFDSF9ET1ZFIHx8IEFSQ0hf TVZFQlUgfHwgKENPTVBJTEVfVEVTVCAmJiAhQVJDSF9FQlNBMTEwKQorCWRlcGVuZHMgb24gQVJD SF9PUklPTjVYIHx8IEFSQ0hfRE9WRSB8fCBNQUNIX0RPVkUgfHwgQVJDSF9NVkVCVSB8fCBDT01Q SUxFX1RFU1QKIAlkZXBlbmRzIG9uIEFSTQogCXNlbGVjdCBXQVRDSERPR19DT1JFCiAJaGVscAot LSAKMi4yNy4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtYXJtLWtlcm5lbAo=