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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 22BD1C88E72 for ; Mon, 14 Sep 2026 14:09:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=OfpX7JHXsmiutpt9cF97qahV/XpKhVKAzXAT9/PAJ6Q=; b=PMCy3Lkso+1wd9 gZg6CPIeg6FEJ48xAO+drxYePQzLWfjU3A/3uhVbd2l+QDS/nfqMlAq300TCRLiGK/nn6TUR8481J x0n49IdtgO9Qs11NhgF1/xyIvKIYjAeGZ3z4GaxgFMFNtIWByJZnPNLOUiIngF0c66z+3PN3BuelC FqtEKSl0aR4HsLk/CaUk/Uqf+9bgPTK0AVTCLStfaaM2oJS2HB63BU+so2+rRLpn4G8I1GMrq0Js9 P4wPquB2YN7B6C3wMdzW1WC2jo26sVFAz2qY2R+Z/y+rq2JhzzJLwjC4CW7E973BklpsYGffcev69 ZQjVNupsCiyJX/UP2fwg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x67Mm-00000003vZ6-40ZA; Mon, 14 Sep 2026 14:09:04 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x67Mj-00000003vYg-3Syo for linux-mtd@lists.infradead.org; Mon, 14 Sep 2026 14:09:01 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 8AFB4412B1; Mon, 14 Sep 2026 14:09:01 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B52B1F000FF; Mon, 14 Sep 2026 14:08:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789394941; bh=iXxM2yFk1I7K6+2eysJeES77CbXKpotXMCi/c2LVmW8=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Bus6Np6krQ3FTtmJiwLBdvPDz0soO5YJb5ALUU+bnjr3HpCRda6OVs18edLuu57Au 4kiOqt+8uyEJLp1UtJIu0+SkdU0zVGTfyWSVHmzgI2I0cCxj1n7mKDFv8tDzP/+eit wysjKrPqwbB/OK6qCj9lljoPvljMLTHGuAVy5wVia430IIUDB0kseH7kxPy3sqVS2M N4lOCK6RP5OBZQZ/DWmQaVuB+jF4ne7JRq/RzU6xdwofh494zdvNi7JV5OGbBtO7HG FyehX65K7kjxiZUxl/IN4NqBACC1JFsIeP79PZYh+KvWDqdvshd6ppp1E8YuEh/Gul Iy0AllyE/fAFA== From: Arnd Bergmann To: soc@lists.linux.dev Cc: Arnd Bergmann , Andreas Kemnade , Kevin Hilman , Roger Quadros , Tony Lindgren , Paul Walmsley , Herbert Xu , "David S. Miller" , Mauro Carvalho Chehab , Kyungmin Park , Helge Deller , Tero Kristo , Stephen Boyd , linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, linux-mtd@lists.infradead.org, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-clk@vger.kernel.org, Thomas Zimmermann , Aaro Koskinen Subject: [PATCH v2 06/14] ARM: omap2: remove omap24xx support Date: Mon, 14 Sep 2026 16:08:08 +0200 Message-ID: <20260914140821.1805449-7-arnd@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260914140821.1805449-1-arnd@kernel.org> References: <20260914140821.1805449-1-arnd@kernel.org> MIME-Version: 1.0 X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org RnJvbTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KClRoZSBvbWFwMjR4eCBTb0MgcGxh dGZvcm0gd2FzIHVzZWQgaW4gdGhlIE5va2lhIE44MDAgYW5kIE44MTAgdGFibGV0cwpyZWxlYXNl ZCBvbiAyMDA3IGFuZCB3YXMgYW1vbmcgdGhlIGZpcnN0IEFSTXY2IENQVXMgaW4gcHJvZHVjdHMg dGhhdAptYWRlIGl0IGludG8gcHJvZHVjdHMuCgpVbmZvcnR1bmF0ZWx5IHRoZSBlYXJseSBBUk0x MTM2cjAgQ1BVIGNvcmVzIGhhZCBhIG51bWJlciBvZiBxdWlya3MgdGhhdApjYXVzZWQgYSBkaXNw cm9wb3J0aW9uYXRlIGFtb3VudCBvZiB3b3JrIHRvIGtlZXAgdGhlbSBjb21wYXRpYmxlIHdpdGgK bGF0ZXIgQVJNdjZLL3Y3L3Y4IGltcGxlbWVudGF0aW9ucy4KCkRyb3AgdGhlIHN1cHBvcnQgZm9y IHRoaXMgU29DIGluIG9yZGVyIHRvIGFsbG93IHJlbW92aW5nIEFSTTExMzZyMC4KCkNjOiBBbmRy ZWFzIEtlbW5hZGUgPGFuZHJlYXNAa2VtbmFkZS5pbmZvPgpDYzogS2V2aW4gSGlsbWFuIDxraGls bWFuQGJheWxpYnJlLmNvbT4KQ2M6IFJvZ2VyIFF1YWRyb3MgPHJvZ2VycUBrZXJuZWwub3JnPgpD YzogVG9ueSBMaW5kZ3JlbiA8dG9ueUBhdG9taWRlLmNvbT4KQ2M6IFBhdWwgV2FsbXNsZXkgPHBh dWxAcHdzYW4uY29tPgpDYzogSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1 PgpDYzogIkRhdmlkIFMuIE1pbGxlciIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CkNjOiBNYXVybyBD YXJ2YWxobyBDaGVoYWIgPG1jaGVoYWJAa2VybmVsLm9yZz4KQ2M6IEt5dW5nbWluIFBhcmsgPGt5 dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+CkNjOiBIZWxnZSBEZWxsZXIgPGRlbGxlckBnbXguZGU+ CkNjOiBUZXJvIEtyaXN0byA8a3Jpc3RvQGtlcm5lbC5vcmc+CkNjOiBTdGVwaGVuIEJveWQgPHNi b3lkQGtlcm5lbC5vcmc+CkNjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51 eC1vbWFwQHZnZXIua2VybmVsLm9yZwpDYzogZGV2aWNldHJlZUB2Z2VyLmtlcm5lbC5vcmcKQ2M6 IGxpbnV4LW1lZGlhQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtbXRkQGxpc3RzLmluZnJhZGVh ZC5vcmcKQ2M6IGxpbnV4LWZiZGV2QHZnZXIua2VybmVsLm9yZwpDYzogZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpDYzogbGludXgtY2xrQHZnZXIua2VybmVsLm9yZwpSZXZpZXdlZC1i eTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+ICMgb21hcGZiCkFja2Vk LWJ5OiBBYXJvIEtvc2tpbmVuIDxhYXJvLmtvc2tpbmVuQGlraS5maT4KU2lnbmVkLW9mZi1ieTog QXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KLS0tCkkgaGF2ZSBmb2xsb3ctdXAgcGF0Y2hl cyB0byByZW1vdmUgcGxhdGZvcm1fZGF0YSBwcm9iaW5nIGluCk9NQVAyKyBzcGVjaWZpYyBkcml2 ZXIgYW5kIHBhdGNoZXMgdG8gcmVtb3ZlIHRoZSBub3cgb3JwaGFuZWQKbWVuZWxhdXMgbWZkIG9t YXAyIGNsayBzdXBwb3J0LiBJJ2xsIHBvc3QgdGhlc2Ugc2VwYXJhdGVseS4KLS0tCiBNQUlOVEFJ TkVSUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyIC0KIGFyY2gvYXJt L2Jvb3QvZHRzL3RpL29tYXAvTWFrZWZpbGUgICAgICAgICAgICB8ICAgIDYgLQogYXJjaC9hcm0v Ym9vdC9kdHMvdGkvb21hcC9vbWFwMi5kdHNpICAgICAgICAgIHwgIDMzOCAtLS0tLQogLi4uL2Fy bS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLWNsb2Nrcy5kdHNpIHwgIDI2NyAtLS0tCiBhcmNo L2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLWg0LmR0cyAgICAgfCAgIDYzIC0KIGFyY2gv YXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAtbjgwMC5kdHMgICB8ICAgIDkgLQogLi4uL2Jv b3QvZHRzL3RpL29tYXAvb21hcDI0MjAtbjgxMC13aW1heC5kdHMgIHwgICAgOSAtCiBhcmNoL2Fy bS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLW44MTAuZHRzICAgfCAgIDc1IC0KIC4uLi9kdHMv dGkvb21hcC9vbWFwMjQyMC1uOHgwLWNvbW1vbi5kdHNpICAgICB8ICAxMjMgLS0KIGFyY2gvYXJt L2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAuZHRzaSAgICAgICB8ICAyNjIgLS0tLQogLi4uL2Fy bS9ib290L2R0cy90aS9vbWFwL29tYXAyNDMwLWNsb2Nrcy5kdHNpIHwgIDM0MSAtLS0tLQogYXJj aC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQzMC1zZHAuZHRzICAgIHwgICA3MCAtCiBhcmNo L2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDMwLmR0c2kgICAgICAgfCAgMzY2IC0tLS0tCiAu Li4vYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0eHgtY2xvY2tzLmR0c2kgfCAxMjQxIC0tLS0t LS0tLS0tLS0tLS0tCiBhcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWcgICAgICAg ICAgfCAgICA0IC0KIGFyY2gvYXJtL21hY2gtb21hcDIvS2NvbmZpZyAgICAgICAgICAgICAgICAg ICB8ICAgNjIgKy0KIGFyY2gvYXJtL21hY2gtb21hcDIvTWFrZWZpbGUgICAgICAgICAgICAgICAg ICB8ICAgNjMgKy0KIGFyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtZ2VuZXJpYy5jICAgICAgICAg ICB8ICAgMzQgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1uOHgwLmMgICAgICAgICAgICAg IHwgIDUxMiAtLS0tLS0tCiBhcmNoL2FybS9tYWNoLW9tYXAyL2Nsa3QyeHh4X2RwbGwuYyAgICAg ICAgICAgfCAgIDU2IC0KIGFyY2gvYXJtL21hY2gtb21hcDIvY2xrdDJ4eHhfZHBsbGNvcmUuYyAg ICAgICB8ICAxOTQgLS0tCiBhcmNoL2FybS9tYWNoLW9tYXAyL2Nsa3QyeHh4X3ZpcnRfcHJjbV9z ZXQuYyAgfCAgMjU5IC0tLS0KIGFyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suYyAgICAgICAgICAg ICAgICAgICB8ICAgMTIgKy0KIGFyY2gvYXJtL21hY2gtb21hcDIvY2xvY2syeHh4LmggICAgICAg ICAgICAgICB8ICAgMTcgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbi5jICAgICAg ICAgICAgIHwgICAgNCArLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbi5oICAgICAg ICAgICAgIHwgICAgNSAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrZG9tYWluczI0MjBfZGF0 YS5jICAgfCAgMTU0IC0tCiBhcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrZG9tYWluczI0MzBfZGF0 YS5jICAgfCAgMTgxIC0tLQogLi4uL21hY2gtb21hcDIvY2xvY2tkb21haW5zMnh4eF8zeHh4X2Rh dGEuYyAgIHwgICAyOSArLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9jbS1yZWdiaXRzLTI0eHguaCAg ICAgICAgIHwgICA1MSAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL2NtMnh4eC5jICAgICAgICAgICAg ICAgICAgfCAgMzAyIC0tLS0KIGFyY2gvYXJtL21hY2gtb21hcDIvY20yeHh4LmggICAgICAgICAg ICAgICAgICB8ICAgNjAgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9jbV9jb21tb24uYyAgICAgICAg ICAgICAgIHwgICAxMiAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL2NvbW1vbi1ib2FyZC1kZXZpY2Vz LmggICAgfCAgIDExIC0KIGFyY2gvYXJtL21hY2gtb21hcDIvY29tbW9uLmggICAgICAgICAgICAg ICAgICB8ICAgMTIgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9jb250cm9sLmggICAgICAgICAgICAg ICAgIHwgICA1NiAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL2Rpc3BsYXkuYyAgICAgICAgICAgICAg ICAgfCAgICA0ICstCiBhcmNoL2FybS9tYWNoLW9tYXAyL2RtYS5jICAgICAgICAgICAgICAgICAg ICAgfCAgIDUzICstCiBhcmNoL2FybS9tYWNoLW9tYXAyL2ZiLmMgICAgICAgICAgICAgICAgICAg ICAgfCAgIDE0ICstCiBhcmNoL2FybS9tYWNoLW9tYXAyL2dwbWMuaCAgICAgICAgICAgICAgICAg ICAgfCAgIDEwIC0KIGFyY2gvYXJtL21hY2gtb21hcDIvaTJjLmMgICAgICAgICAgICAgICAgICAg ICB8ICAgIDIgKy0KIGFyY2gvYXJtL21hY2gtb21hcDIvaWQuYyAgICAgICAgICAgICAgICAgICAg ICB8ICAgODAgKy0KIGFyY2gvYXJtL21hY2gtb21hcDIvaW8uYyAgICAgICAgICAgICAgICAgICAg ICB8ICAxNDAgKy0KIGFyY2gvYXJtL21hY2gtb21hcDIvaW9tYXAuaCAgICAgICAgICAgICAgICAg ICB8ICAgNDYgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9sM18yeHh4LmggICAgICAgICAgICAgICAg IHwgICAxNSAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL2w0XzJ4eHguaCAgICAgICAgICAgICAgICAg fCAgIDE5IC0KIGFyY2gvYXJtL21hY2gtb21hcDIvbW1jLmggICAgICAgICAgICAgICAgICAgICB8 ICAgMTggLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9tc2RpLmMgICAgICAgICAgICAgICAgICAgIHwg ICA3NSAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL29tYXAyLXJlc3RhcnQuYyAgICAgICAgICAgfCAg IDYyIC0KIGFyY2gvYXJtL21hY2gtb21hcDIvb21hcDI0eHguaCAgICAgICAgICAgICAgICB8ICAg NzMgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kLmMgICAgICAgICAgICAgIHwgICAy MCArLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kLmggICAgICAgICAgICAgIHwgICAg MiAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfMjQyMF9kYXRhLmMgICAgfCAgNDAy IC0tLS0tLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzI0MzBfZGF0YS5jICAgIHwg IDYwNiAtLS0tLS0tLQogLi4uL29tYXBfaHdtb2RfMnh4eF9pbnRlcmNvbm5lY3RfZGF0YS5jICAg ICAgIHwgIDI1NiAtLS0tCiAuLi4vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzJ4eHhfaXBibG9ja19k YXRhLmMgfCAgNjY4IC0tLS0tLS0tLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kX2Nv bW1vbl9kYXRhLmggIHwgICA2NiAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL29wcDI0MjBfZGF0YS5j ICAgICAgICAgICAgfCAgMTMxIC0tCiBhcmNoL2FybS9tYWNoLW9tYXAyL29wcDI0MzBfZGF0YS5j ICAgICAgICAgICAgfCAgMTM2IC0tCiBhcmNoL2FybS9tYWNoLW9tYXAyL29wcDJ4eHguaCAgICAg ICAgICAgICAgICAgfCAgNDMwIC0tLS0tLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9wZGF0YS1xdWly a3MuYyAgICAgICAgICAgIHwgICAzNyArLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9wbS5oICAgICAg ICAgICAgICAgICAgICAgIHwgICAgNSAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL3Bvd2VyZG9tYWlu LmggICAgICAgICAgICAgfCAgICAzIC0KIGFyY2gvYXJtL21hY2gtb21hcDIvcG93ZXJkb21haW5z Mnh4eF9kYXRhLmMgICB8ICAxMzQgLS0KIGFyY2gvYXJtL21hY2gtb21hcDIvcHJjbS1jb21tb24u aCAgICAgICAgICAgICB8ICAxNDcgLS0KIGFyY2gvYXJtL21hY2gtb21hcDIvcHJtLXJlZ2JpdHMt MjR4eC5oICAgICAgICB8ICAgMzkgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm0yeHh4LmMgICAg ICAgICAgICAgICAgIHwgIDIyOSAtLS0KIGFyY2gvYXJtL21hY2gtb21hcDIvcHJtMnh4eC5oICAg ICAgICAgICAgICAgICB8ICAxMjggLS0KIGFyY2gvYXJtL21hY2gtb21hcDIvcHJtMnh4eF8zeHh4 LmMgICAgICAgICAgICB8ICAgIDEgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm1fY29tbW9uLmMg ICAgICAgICAgICAgIHwgICAxMSAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL3NkcmMuaCAgICAgICAg ICAgICAgICAgICAgfCAgIDIxIC0KIGFyY2gvYXJtL21hY2gtb21hcDIvc2RyYzJ4eHguYyAgICAg ICAgICAgICAgICB8ICAxNjQgLS0tCiBhcmNoL2FybS9tYWNoLW9tYXAyL3NsZWVwMjR4eC5TICAg ICAgICAgICAgICAgfCAgIDkxIC0tCiBhcmNoL2FybS9tYWNoLW9tYXAyL3NvYy5oICAgICAgICAg ICAgICAgICAgICAgfCAgIDU5IC0KIGFyY2gvYXJtL21hY2gtb21hcDIvc3JhbS5jICAgICAgICAg ICAgICAgICAgICB8ICAxNTkgKy0tCiBhcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0uaCAgICAgICAg ICAgICAgICAgICAgfCAgIDMyIC0KIGFyY2gvYXJtL21hY2gtb21hcDIvc3JhbTI0MnguUyAgICAg ICAgICAgICAgICB8ICAzMTcgLS0tLS0KIGFyY2gvYXJtL21hY2gtb21hcDIvc3JhbTI0M3guUyAg ICAgICAgICAgICAgICB8ICAzMTcgLS0tLS0KIGFyY2gvYXJtL21hY2gtb21hcDIvdXNiLXR1c2I2 MDEwLmMgICAgICAgICAgICB8ICAyMTcgLS0tCiBhcmNoL2FybS9tYWNoLW9tYXAyL3VzYi10dXNi NjAxMC5oICAgICAgICAgICAgfCAgIDEyIC0KIGFyY2gvYXJtL21hY2gtb21hcDIvdm9sdGFnZS5o ICAgICAgICAgICAgICAgICB8ICAgIDEgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi92b2x0YWdlZG9t YWluczJ4eHhfZGF0YS5jIHwgICAyOSAtCiBkcml2ZXJzL2NyeXB0by9LY29uZmlnICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAyICstCiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3RpL29tYXAv S2NvbmZpZyAgICAgICAgfCAgICA0ICstCiBkcml2ZXJzL210ZC9uYW5kL29uZW5hbmQvS2NvbmZp ZyAgICAgICAgICAgICAgfCAgICA0ICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBm Yi9LY29uZmlnICAgICAgfCAgICAyICstCiBpbmNsdWRlL2xpbnV4L2Nsay90aS5oICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICA4IC0KIDg3IGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMo KyksIDEwNzAxIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2Jvb3Qv ZHRzL3RpL29tYXAvb21hcDIuZHRzaQogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2Jvb3Qv ZHRzL3RpL29tYXAvb21hcDI0MjAtY2xvY2tzLmR0c2kKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNo L2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLWg0LmR0cwogZGVsZXRlIG1vZGUgMTAwNjQ0 IGFyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAtbjgwMC5kdHMKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBhcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLW44MTAtd2ltYXguZHRz CiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQyMC1u ODEwLmR0cwogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21h cDI0MjAtbjh4MC1jb21tb24uZHRzaQogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2Jvb3Qv ZHRzL3RpL29tYXAvb21hcDI0MjAuZHRzaQogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2Jv b3QvZHRzL3RpL29tYXAvb21hcDI0MzAtY2xvY2tzLmR0c2kKIGRlbGV0ZSBtb2RlIDEwMDY0NCBh cmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDMwLXNkcC5kdHMKIGRlbGV0ZSBtb2RlIDEw MDY0NCBhcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDMwLmR0c2kKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBhcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNHh4LWNsb2Nrcy5kdHNpCiBk ZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1uOHgwLmMKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL2Nsa3QyeHh4X2RwbGwuYwogZGVsZXRl IG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIvY2xrdDJ4eHhfZHBsbGNvcmUuYwogZGVs ZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIvY2xrdDJ4eHhfdmlydF9wcmNtX3Nl dC5jCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazJ4eHguaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIvY2xvY2tkb21haW5zMjQyMF9k YXRhLmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrZG9tYWlu czI0MzBfZGF0YS5jCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9jbS1y ZWdiaXRzLTI0eHguaAogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIvY20y eHh4LmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL2NtMnh4eC5oCiBk ZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9jb21tb24tYm9hcmQtZGV2aWNl cy5oCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9ncG1jLmgKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL2wzXzJ4eHguaAogZGVsZXRlIG1vZGUg MTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIvbDRfMnh4eC5oCiBkZWxldGUgbW9kZSAxMDA2NDQg YXJjaC9hcm0vbWFjaC1vbWFwMi9tbWMuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21h Y2gtb21hcDIvbXNkaS5jCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9v bWFwMi1yZXN0YXJ0LmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL29t YXAyNHh4LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdt b2RfMjQyMF9kYXRhLmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL29t YXBfaHdtb2RfMjQzMF9kYXRhLmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9t YXAyL29tYXBfaHdtb2RfMnh4eF9pbnRlcmNvbm5lY3RfZGF0YS5jCiBkZWxldGUgbW9kZSAxMDA2 NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzJ4eHhfaXBibG9ja19kYXRhLmMKIGRl bGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL29wcDI0MjBfZGF0YS5jCiBkZWxl dGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9vcHAyNDMwX2RhdGEuYwogZGVsZXRl IG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIvb3BwMnh4eC5oCiBkZWxldGUgbW9kZSAx MDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9wb3dlcmRvbWFpbnMyeHh4X2RhdGEuYwogZGVsZXRl IG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIvcHJtLXJlZ2JpdHMtMjR4eC5oCiBkZWxl dGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm0yeHh4LmMKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL3BybTJ4eHguaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IGFyY2gvYXJtL21hY2gtb21hcDIvc2RyYzJ4eHguYwogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gv YXJtL21hY2gtb21hcDIvc2xlZXAyNHh4LlMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9t YWNoLW9tYXAyL3NyYW0yNDJ4LlMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9t YXAyL3NyYW0yNDN4LlMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL3Vz Yi10dXNiNjAxMC5jCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi91c2It dHVzYjYwMTAuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIvdm9sdGFn ZWRvbWFpbnMyeHh4X2RhdGEuYwoKZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5F UlMKaW5kZXggYWI1NzI5NTM3MzVkLi40NTIyYmRlM2Y5MmUgMTAwNjQ0Ci0tLSBhL01BSU5UQUlO RVJTCisrKyBiL01BSU5UQUlORVJTCkBAIC0xOTg4Niw3ICsxOTg4Niw2IEBAIE06CUphcmtrbyBO aWt1bGEgPGphcmtrby5uaWt1bGFAYml0bWVyLmNvbT4KIEw6CWxpbnV4LXNvdW5kQHZnZXIua2Vy bmVsLm9yZwogTDoJbGludXgtb21hcEB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKLUY6 CXNvdW5kL3NvYy90aS9uODEwLmMKIEY6CXNvdW5kL3NvYy90aS9vbWFwKgogRjoJc291bmQvc29j L3RpL3J4NTEuYwogRjoJc291bmQvc29jL3RpL3NkbWEtcGNtLioKQEAgLTE5OTI2LDcgKzE5OTI1 LDYgQEAgTToJUm9nZXIgUXVhZHJvcyA8cm9nZXJxQGtlcm5lbC5vcmc+CiBNOglUb255IExpbmRn cmVuIDx0b255QGF0b21pZGUuY29tPgogTDoJbGludXgtb21hcEB2Z2VyLmtlcm5lbC5vcmcKIFM6 CU1haW50YWluZWQKLUY6CWFyY2gvYXJtL21hY2gtb21hcDIvKmdwbWMqCiBGOglkcml2ZXJzL21l bW9yeS9vbWFwLWdwbWMuYwogCiBPTUFQIEdQSU8gRFJJVkVSCmRpZmYgLS1naXQgYS9hcmNoL2Fy bS9ib290L2R0cy90aS9vbWFwL01ha2VmaWxlIGIvYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9N YWtlZmlsZQppbmRleCA0OThjMzZjY2I1ZWEuLjNjNWQzNzhkZjZiOSAxMDA2NDQKLS0tIGEvYXJj aC9hcm0vYm9vdC9kdHMvdGkvb21hcC9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9ib290L2R0cy90 aS9vbWFwL01ha2VmaWxlCkBAIC0xLDEwICsxLDQgQEAKICMgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjAKLWR0Yi0kKENPTkZJR19BUkNIX09NQVAyKSArPSBcCi0Jb21hcDI0MjAtaDQu ZHRiIFwKLQlvbWFwMjQyMC1uODAwLmR0YiBcCi0Jb21hcDI0MjAtbjgxMC5kdGIgXAotCW9tYXAy NDIwLW44MTAtd2ltYXguZHRiIFwKLQlvbWFwMjQzMC1zZHAuZHRiCiBkdGItJChDT05GSUdfQVJD SF9PTUFQMykgKz0gXAogCWFtMzUxNy1jcmFuZWJvYXJkLmR0YiBcCiAJYW0zNTE3LWV2bS5kdGIg XApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMi5kdHNpIGIvYXJj aC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMi5kdHNpCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBmZGMxNzkwYWRmNDMuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9ib290L2R0 cy90aS9vbWFwL29tYXAyLmR0c2kKKysrIC9kZXYvbnVsbApAQCAtMSwzMzggKzAsMCBAQAotLy8g U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIERldmljZSBUcmVl IFNvdXJjZSBmb3IgT01BUDIgU29DCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRleGFzIElu c3RydW1lbnRzIEluY29ycG9yYXRlZCAtIGh0dHBzOi8vd3d3LnRpLmNvbS8KLSAqLwotCi0jaW5j bHVkZSA8ZHQtYmluZGluZ3MvYnVzL3RpLXN5c2MuaD4KLSNpbmNsdWRlIDxkdC1iaW5kaW5ncy9n cGlvL2dwaW8uaD4KLSNpbmNsdWRlIDxkdC1iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9p cnEuaD4KLSNpbmNsdWRlIDxkdC1iaW5kaW5ncy9waW5jdHJsL29tYXAuaD4KLQotLyB7Ci0JY29t cGF0aWJsZSA9ICJ0aSxvbWFwMjQzMCIsICJ0aSxvbWFwMjQyMCIsICJ0aSxvbWFwMiI7Ci0JaW50 ZXJydXB0LXBhcmVudCA9IDwmaW50Yz47Ci0JI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JI3NpemUt Y2VsbHMgPSA8MT47Ci0JY2hvc2VuIHsgfTsKLQotCWFsaWFzZXMgewotCQlzZXJpYWwwID0gJnVh cnQxOwotCQlzZXJpYWwxID0gJnVhcnQyOwotCQlzZXJpYWwyID0gJnVhcnQzOwotCQlpMmMwID0g JmkyYzE7Ci0JCWkyYzEgPSAmaTJjMjsKLQl9OwotCi0JY3B1cyB7Ci0JCSNhZGRyZXNzLWNlbGxz ID0gPDA+OwotCQkjc2l6ZS1jZWxscyA9IDwwPjsKLQotCQljcHUgewotCQkJY29tcGF0aWJsZSA9 ICJhcm0sYXJtMTEzNmpmLXMiOwotCQkJZGV2aWNlX3R5cGUgPSAiY3B1IjsKLQkJfTsKLQl9Owot Ci0JcG11IHsKLQkJY29tcGF0aWJsZSA9ICJhcm0sYXJtMTEzNi1wbXUiOwotCQlpbnRlcnJ1cHRz ID0gPDM+OwotCX07Ci0KLQlzb2MgewotCQljb21wYXRpYmxlID0gInRpLG9tYXAtaW5mcmEiOwot CQltcHUgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1tcHUiOwotCQkJdGksaHdtb2RzID0g Im1wdSI7Ci0JCX07Ci0JfTsKLQotCW9jcCB7Ci0JCWNvbXBhdGlibGUgPSAic2ltcGxlLWJ1cyI7 Ci0JCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkjc2l6ZS1jZWxscyA9IDwxPjsKLQkJcmFuZ2Vz OwotCQl0aSxod21vZHMgPSAibDNfbWFpbiI7Ci0KLQkJYWVzOiBhZXNANDgwYTYwMDAgewotCQkJ Y29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1hZXMiOwotCQkJdGksaHdtb2RzID0gImFlcyI7Ci0JCQly ZWcgPSA8MHg0ODBhNjAwMCAweDUwPjsKLQkJCWRtYXMgPSA8JnNkbWEgOSAmc2RtYSAxMD47Ci0J CQlkbWEtbmFtZXMgPSAidHgiLCAicngiOwotCQl9OwotCi0JCWhkcTF3OiAxd0A0ODBiMjAwMCB7 Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyNDIwLTF3IjsKLQkJCXRpLGh3bW9kcyA9ICJoZHEx dyI7Ci0JCQlyZWcgPSA8MHg0ODBiMjAwMCAweDEwMDA+OwotCQkJaW50ZXJydXB0cyA9IDw1OD47 Ci0JCX07Ci0KLQkJaW50YzogaW50ZXJydXB0LWNvbnRyb2xsZXJAMSB7Ci0JCQljb21wYXRpYmxl ID0gInRpLG9tYXAyLWludGMiOwotCQkJaW50ZXJydXB0LWNvbnRyb2xsZXI7Ci0JCQkjaW50ZXJy dXB0LWNlbGxzID0gPDE+OwotCQkJcmVnID0gPDB4NDgwRkUwMDAgMHgxMDAwPjsKLQkJfTsKLQot CQl0YXJnZXQtbW9kdWxlQDQ4MDU2MDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFw MiIsICJ0aSxzeXNjIjsKLQkJCXJlZyA9IDwweDQ4MDU2MDAwIDB4ND4sCi0JCQkgICAgICA8MHg0 ODA1NjAyYyAweDQ+LAotCQkJICAgICAgPDB4NDgwNTYwMjggMHg0PjsKLQkJCXJlZy1uYW1lcyA9 ICJyZXYiLCAic3lzYyIsICJzeXNzIjsKLQkJCXRpLHN5c2MtbWFzayA9IDwoU1lTQ19PTUFQMl9D TE9DS0FDVElWSVRZIHwKLQkJCQkJIFNZU0NfT01BUDJfRU1VRlJFRSB8Ci0JCQkJCSBTWVNDX09N QVAyX1NPRlRSRVNFVCB8Ci0JCQkJCSBTWVNDX09NQVAyX0FVVE9JRExFKT47Ci0JCQl0aSxzeXNj LW1pZGxlID0gPFNZU0NfSURMRV9GT1JDRT4sCi0JCQkJCTxTWVNDX0lETEVfTk8+LAotCQkJCQk8 U1lTQ19JRExFX1NNQVJUPjsKLQkJCXRpLHN5c3MtbWFzayA9IDwxPjsKLQkJCWNsb2NrcyA9IDwm Y29yZV9sM19jaz47Ci0JCQljbG9jay1uYW1lcyA9ICJmY2siOwotCQkJI2FkZHJlc3MtY2VsbHMg PSA8MT47Ci0JCQkjc2l6ZS1jZWxscyA9IDwxPjsKLQkJCXJhbmdlcyA9IDwwIDB4NDgwNTYwMDAg MHgxMDAwPjsKLQotCQkJc2RtYTogZG1hLWNvbnRyb2xsZXJAMCB7Ci0JCQkJY29tcGF0aWJsZSA9 ICJ0aSxvbWFwMjQyMC1zZG1hIiwgInRpLG9tYXAtc2RtYSI7Ci0JCQkJcmVnID0gPDAgMHgxMDAw PjsKLQkJCQlpbnRlcnJ1cHRzID0gPDEyPiwKLQkJCQkJICAgICA8MTM+LAotCQkJCQkgICAgIDwx ND4sCi0JCQkJCSAgICAgPDE1PjsKLQkJCQkjZG1hLWNlbGxzID0gPDE+OwotCQkJCWRtYS1jaGFu bmVscyA9IDwzMj47Ci0JCQkJZG1hLXJlcXVlc3RzID0gPDY0PjsKLQkJCX07Ci0JCX07Ci0KLQkJ aTJjMTogaTJjQDQ4MDcwMDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksb21hcDItaTJjIjsKLQkJ CXRpLGh3bW9kcyA9ICJpMmMxIjsKLQkJCXJlZyA9IDwweDQ4MDcwMDAwIDB4ODA+OwotCQkJI2Fk ZHJlc3MtY2VsbHMgPSA8MT47Ci0JCQkjc2l6ZS1jZWxscyA9IDwwPjsKLQkJCWludGVycnVwdHMg PSA8NTY+OwotCQl9OwotCi0JCWkyYzI6IGkyY0A0ODA3MjAwMCB7Ci0JCQljb21wYXRpYmxlID0g InRpLG9tYXAyLWkyYyI7Ci0JCQl0aSxod21vZHMgPSAiaTJjMiI7Ci0JCQlyZWcgPSA8MHg0ODA3 MjAwMCAweDgwPjsKLQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkJI3NpemUtY2VsbHMgPSA8 MD47Ci0JCQlpbnRlcnJ1cHRzID0gPDU3PjsKLQkJfTsKLQotCQltY3NwaTE6IHNwaUA0ODA5ODAw MCB7Ci0JCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKLQkJCSNzaXplLWNlbGxzID0gPDA+OwotCQkJ Y29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1tY3NwaSI7Ci0JCQl0aSxod21vZHMgPSAibWNzcGkxIjsK LQkJCXJlZyA9IDwweDQ4MDk4MDAwIDB4MTAwPjsKLQkJCWludGVycnVwdHMgPSA8NjU+OwotCQkJ ZG1hcyA9IDwmc2RtYSAzNSAmc2RtYSAzNiAmc2RtYSAzNyAmc2RtYSAzOAotCQkJCSZzZG1hIDM5 ICZzZG1hIDQwICZzZG1hIDQxICZzZG1hIDQyPjsKLQkJCWRtYS1uYW1lcyA9ICJ0eDAiLCAicngw IiwgInR4MSIsICJyeDEiLAotCQkJCSAgICAidHgyIiwgInJ4MiIsICJ0eDMiLCAicngzIjsKLQkJ fTsKLQotCQltY3NwaTI6IHNwaUA0ODA5YTAwMCB7Ci0JCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsK LQkJCSNzaXplLWNlbGxzID0gPDA+OwotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1tY3NwaSI7 Ci0JCQl0aSxod21vZHMgPSAibWNzcGkyIjsKLQkJCXJlZyA9IDwweDQ4MDlhMDAwIDB4MTAwPjsK LQkJCWludGVycnVwdHMgPSA8NjY+OwotCQkJZG1hcyA9IDwmc2RtYSA0MyAmc2RtYSA0NCAmc2Rt YSA0NSAmc2RtYSA0Nj47Ci0JCQlkbWEtbmFtZXMgPSAidHgwIiwgInJ4MCIsICJ0eDEiLCAicngx IjsKLQkJfTsKLQotCQlybmc6IHJuZ0A0ODBhMDAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9t YXAyLXJuZyI7Ci0JCQl0aSxod21vZHMgPSAicm5nIjsKLQkJCXJlZyA9IDwweDQ4MGEwMDAwIDB4 NTA+OwotCQkJaW50ZXJydXB0cyA9IDw1Mj47Ci0JCX07Ci0KLQkJc2hhbTogc2hhbUA0ODBhNDAw MCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyLXNoYW0iOwotCQkJdGksaHdtb2RzID0gInNo YW0iOwotCQkJcmVnID0gPDB4NDgwYTQwMDAgMHg2ND47Ci0JCQlpbnRlcnJ1cHRzID0gPDUxPjsK LQkJCWRtYXMgPSA8JnNkbWEgMTM+OwotCQkJZG1hLW5hbWVzID0gInJ4IjsKLQkJfTsKLQotCQl1 YXJ0MTogc2VyaWFsQDQ4MDZhMDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksb21hcDItdWFydCI7 Ci0JCQl0aSxod21vZHMgPSAidWFydDEiOwotCQkJcmVnID0gPDB4NDgwNmEwMDAgMHgyMDAwPjsK LQkJCWludGVycnVwdHMgPSA8NzI+OwotCQkJZG1hcyA9IDwmc2RtYSA0OSAmc2RtYSA1MD47Ci0J CQlkbWEtbmFtZXMgPSAidHgiLCAicngiOwotCQkJY2xvY2stZnJlcXVlbmN5ID0gPDQ4MDAwMDAw PjsKLQkJfTsKLQotCQl1YXJ0Mjogc2VyaWFsQDQ4MDZjMDAwIHsKLQkJCWNvbXBhdGlibGUgPSAi dGksb21hcDItdWFydCI7Ci0JCQl0aSxod21vZHMgPSAidWFydDIiOwotCQkJcmVnID0gPDB4NDgw NmMwMDAgMHg0MDA+OwotCQkJaW50ZXJydXB0cyA9IDw3Mz47Ci0JCQlkbWFzID0gPCZzZG1hIDUx ICZzZG1hIDUyPjsKLQkJCWRtYS1uYW1lcyA9ICJ0eCIsICJyeCI7Ci0JCQljbG9jay1mcmVxdWVu Y3kgPSA8NDgwMDAwMDA+OwotCQl9OwotCi0JCXVhcnQzOiBzZXJpYWxANDgwNmUwMDAgewotCQkJ Y29tcGF0aWJsZSA9ICJ0aSxvbWFwMi11YXJ0IjsKLQkJCXRpLGh3bW9kcyA9ICJ1YXJ0MyI7Ci0J CQlyZWcgPSA8MHg0ODA2ZTAwMCAweDQwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDc0PjsKLQkJCWRt YXMgPSA8JnNkbWEgNTMgJnNkbWEgNTQ+OwotCQkJZG1hLW5hbWVzID0gInR4IiwgInJ4IjsKLQkJ CWNsb2NrLWZyZXF1ZW5jeSA9IDw0ODAwMDAwMD47Ci0JCX07Ci0KLQkJdGltZXIyX3RhcmdldDog dGFyZ2V0LW1vZHVsZUA0ODAyYTAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDIt dGltZXIiLCAidGksc3lzYyI7Ci0JCQlyZWcgPSA8MHg0ODAyYTAwMCAweDQ+LAotCQkJICAgICAg PDB4NDgwMmEwMTAgMHg0PiwKLQkJCSAgICAgIDwweDQ4MDJhMDE0IDB4ND47Ci0JCQlyZWctbmFt ZXMgPSAicmV2IiwgInN5c2MiLCAic3lzcyI7Ci0JCQl0aSxzeXNjLW1hc2sgPSA8KFNZU0NfT01B UDJfQ0xPQ0tBQ1RJVklUWSB8Ci0JCQkJCSBTWVNDX09NQVAyX0VNVUZSRUUgfAotCQkJCQkgU1lT Q19PTUFQMl9FTkFXQUtFVVAgfAotCQkJCQkgU1lTQ19PTUFQMl9TT0ZUUkVTRVQgfAotCQkJCQkg U1lTQ19PTUFQMl9BVVRPSURMRSk+OwotCQkJdGksc3lzYy1zaWRsZSA9IDxTWVNDX0lETEVfRk9S Q0U+LAotCQkJCQk8U1lTQ19JRExFX05PPiwKLQkJCQkJPFNZU0NfSURMRV9TTUFSVD47Ci0JCQl0 aSxzeXNzLW1hc2sgPSA8MT47Ci0JCQljbG9ja3MgPSA8JmdwdDJfZmNrPiwgPCZncHQyX2ljaz47 Ci0JCQljbG9jay1uYW1lcyA9ICJmY2siLCAiaWNrIjsKLQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+ OwotCQkJI3NpemUtY2VsbHMgPSA8MT47Ci0JCQlyYW5nZXMgPSA8MHgwIDB4NDgwMmEwMDAgMHgx MDAwPjsKLQotCQkJdGltZXIyOiB0aW1lckAwIHsKLQkJCQljb21wYXRpYmxlID0gInRpLG9tYXAy NDIwLXRpbWVyIjsKLQkJCQlyZWcgPSA8MCAweDQwMD47Ci0JCQkJaW50ZXJydXB0cyA9IDwzOD47 Ci0JCQl9OwotCQl9OwotCi0JCXRpbWVyMzogdGltZXJANDgwNzgwMDAgewotCQkJY29tcGF0aWJs ZSA9ICJ0aSxvbWFwMjQyMC10aW1lciI7Ci0JCQlyZWcgPSA8MHg0ODA3ODAwMCAweDQwMD47Ci0J CQlpbnRlcnJ1cHRzID0gPDM5PjsKLQkJCXRpLGh3bW9kcyA9ICJ0aW1lcjMiOwotCQl9OwotCi0J CXRpbWVyNDogdGltZXJANDgwN2EwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQyMC10 aW1lciI7Ci0JCQlyZWcgPSA8MHg0ODA3YTAwMCAweDQwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDQw PjsKLQkJCXRpLGh3bW9kcyA9ICJ0aW1lcjQiOwotCQl9OwotCi0JCXRpbWVyNTogdGltZXJANDgw N2MwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQyMC10aW1lciI7Ci0JCQlyZWcgPSA8 MHg0ODA3YzAwMCAweDQwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDQxPjsKLQkJCXRpLGh3bW9kcyA9 ICJ0aW1lcjUiOwotCQkJdGksdGltZXItZHNwOwotCQl9OwotCi0JCXRpbWVyNjogdGltZXJANDgw N2UwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQyMC10aW1lciI7Ci0JCQlyZWcgPSA8 MHg0ODA3ZTAwMCAweDQwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDQyPjsKLQkJCXRpLGh3bW9kcyA9 ICJ0aW1lcjYiOwotCQkJdGksdGltZXItZHNwOwotCQl9OwotCi0JCXRpbWVyNzogdGltZXJANDgw ODAwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQyMC10aW1lciI7Ci0JCQlyZWcgPSA8 MHg0ODA4MDAwMCAweDQwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDQzPjsKLQkJCXRpLGh3bW9kcyA9 ICJ0aW1lcjciOwotCQkJdGksdGltZXItZHNwOwotCQl9OwotCi0JCXRpbWVyODogdGltZXJANDgw ODIwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQyMC10aW1lciI7Ci0JCQlyZWcgPSA8 MHg0ODA4MjAwMCAweDQwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDQ0PjsKLQkJCXRpLGh3bW9kcyA9 ICJ0aW1lcjgiOwotCQkJdGksdGltZXItZHNwOwotCQl9OwotCi0JCXRpbWVyOTogdGltZXJANDgw ODQwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQyMC10aW1lciI7Ci0JCQlyZWcgPSA8 MHg0ODA4NDAwMCAweDQwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDQ1PjsKLQkJCXRpLGh3bW9kcyA9 ICJ0aW1lcjkiOwotCQkJdGksdGltZXItcHdtOwotCQl9OwotCi0JCXRpbWVyMTA6IHRpbWVyQDQ4 MDg2MDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksb21hcDI0MjAtdGltZXIiOwotCQkJcmVnID0g PDB4NDgwODYwMDAgMHg0MDA+OwotCQkJaW50ZXJydXB0cyA9IDw0Nj47Ci0JCQl0aSxod21vZHMg PSAidGltZXIxMCI7Ci0JCQl0aSx0aW1lci1wd207Ci0JCX07Ci0KLQkJdGltZXIxMTogdGltZXJA NDgwODgwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQyMC10aW1lciI7Ci0JCQlyZWcg PSA8MHg0ODA4ODAwMCAweDQwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDQ3PjsKLQkJCXRpLGh3bW9k cyA9ICJ0aW1lcjExIjsKLQkJCXRpLHRpbWVyLXB3bTsKLQkJfTsKLQotCQl0aW1lcjEyOiB0aW1l ckA0ODA4YTAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyNDIwLXRpbWVyIjsKLQkJCXJl ZyA9IDwweDQ4MDhhMDAwIDB4NDAwPjsKLQkJCWludGVycnVwdHMgPSA8NDg+OwotCQkJdGksaHdt b2RzID0gInRpbWVyMTIiOwotCQkJdGksdGltZXItcHdtOwotCQl9OwotCi0JCWRzczogZHNzQDQ4 MDUwMDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksb21hcDItZHNzIjsKLQkJCXJlZyA9IDwweDQ4 MDUwMDAwIDB4NDAwPjsKLQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7Ci0JCQl0aSxod21vZHMgPSAi ZHNzX2NvcmUiOwotCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCQkjc2l6ZS1jZWxscyA9IDwx PjsKLQkJCXJhbmdlczsKLQotCQkJZGlzcGNANDgwNTA0MDAgewotCQkJCWNvbXBhdGlibGUgPSAi dGksb21hcDItZGlzcGMiOwotCQkJCXJlZyA9IDwweDQ4MDUwNDAwIDB4NDAwPjsKLQkJCQlpbnRl cnJ1cHRzID0gPDI1PjsKLQkJCQl0aSxod21vZHMgPSAiZHNzX2Rpc3BjIjsKLQkJCX07Ci0KLQkJ CXJmYmk6IGVuY29kZXJANDgwNTA4MDAgewotCQkJCWNvbXBhdGlibGUgPSAidGksb21hcDItcmZi aSI7Ci0JCQkJcmVnID0gPDB4NDgwNTA4MDAgMHg0MDA+OwotCQkJCXN0YXR1cyA9ICJkaXNhYmxl ZCI7Ci0JCQkJdGksaHdtb2RzID0gImRzc19yZmJpIjsKLQkJCX07Ci0KLQkJCXZlbmM6IGVuY29k ZXJANDgwNTBjMDAgewotCQkJCWNvbXBhdGlibGUgPSAidGksb21hcDItdmVuYyI7Ci0JCQkJcmVn ID0gPDB4NDgwNTBjMDAgMHg0MDA+OwotCQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7Ci0JCQkJdGks aHdtb2RzID0gImRzc192ZW5jIjsKLQkJCX07Ci0JCX07Ci0JfTsKLX07CmRpZmYgLS1naXQgYS9h cmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLWNsb2Nrcy5kdHNpIGIvYXJjaC9hcm0v Ym9vdC9kdHMvdGkvb21hcC9vbWFwMjQyMC1jbG9ja3MuZHRzaQpkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDBhN2ExOTlhOTFjLi4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vYm9v dC9kdHMvdGkvb21hcC9vbWFwMjQyMC1jbG9ja3MuZHRzaQorKysgL2Rldi9udWxsCkBAIC0xLDI2 NyArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgot ICogRGV2aWNlIFRyZWUgU291cmNlIGZvciBPTUFQMjQyMCBjbG9jayBkYXRhCi0gKgotICogQ29w eXJpZ2h0IChDKSAyMDE0IFRleGFzIEluc3RydW1lbnRzLCBJbmMuCi0gKi8KLQotJnByY21fY2xv Y2tzIHsKLQlzeXNfY2xrb3V0Ml9zcmNfZ2F0ZTogc3lzX2Nsa291dDJfc3JjX2dhdGVANzAgewot CQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLW5vLXdh aXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9 IDwxNT47Ci0JCXJlZyA9IDwweDAwNzA+OwotCX07Ci0KLQlzeXNfY2xrb3V0Ml9zcmNfbXV4OiBz eXNfY2xrb3V0Ml9zcmNfbXV4QDcwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRp YmxlID0gInRpLGNvbXBvc2l0ZS1tdXgtY2xvY2siOwotCQljbG9ja3MgPSA8JmNvcmVfY2s+LCA8 JnN5c19jaz4sIDwmZnVuY185Nm1fY2s+LCA8JmZ1bmNfNTRtX2NrPjsKLQkJdGksYml0LXNoaWZ0 ID0gPDg+OwotCQlyZWcgPSA8MHgwMDcwPjsKLQl9OwotCi0Jc3lzX2Nsa291dDJfc3JjOiBzeXNf Y2xrb3V0Ml9zcmMgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGks Y29tcG9zaXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZzeXNfY2xrb3V0Ml9zcmNfZ2F0ZT4sIDwm c3lzX2Nsa291dDJfc3JjX211eD47Ci0JfTsKLQotCXN5c19jbGtvdXQyOiBzeXNfY2xrb3V0MkA3 MCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxkaXZpZGVyLWNs b2NrIjsKLQkJY2xvY2tzID0gPCZzeXNfY2xrb3V0Ml9zcmM+OwotCQl0aSxiaXQtc2hpZnQgPSA8 MTE+OwotCQl0aSxtYXgtZGl2ID0gPDY0PjsKLQkJcmVnID0gPDB4MDA3MD47Ci0JCXRpLGluZGV4 LXBvd2VyLW9mLXR3bzsKLQl9OwotCi0JZHNwX2dhdGVfaWNrOiBkc3BfZ2F0ZV9pY2tAODEwIHsK LQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1pbnRl cmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8JmRzcF9mY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8 MT47Ci0JCXJlZyA9IDwweDA4MTA+OwotCX07Ci0KLQlkc3BfZGl2X2ljazogZHNwX2Rpdl9pY2tA ODQwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0 ZS1kaXZpZGVyLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZkc3BfZmNrPjsKLQkJdGksYml0LXNoaWZ0 ID0gPDU+OwotCQl0aSxtYXgtZGl2ID0gPDM+OwotCQlyZWcgPSA8MHgwODQwPjsKLQkJdGksaW5k ZXgtc3RhcnRzLWF0LW9uZTsKLQl9OwotCi0JZHNwX2ljazogZHNwX2ljayB7Ci0JCSNjbG9jay1j ZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2siOwotCQljbG9j a3MgPSA8JmRzcF9nYXRlX2ljaz4sIDwmZHNwX2Rpdl9pY2s+OwotCX07Ci0KLQlpdmExX2dhdGVf aWZjazogaXZhMV9nYXRlX2lmY2tAODAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21w YXRpYmxlID0gInRpLGNvbXBvc2l0ZS1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2Nr PjsKLQkJdGksYml0LXNoaWZ0ID0gPDEwPjsKLQkJcmVnID0gPDB4MDgwMD47Ci0JfTsKLQotCWl2 YTFfZGl2X2lmY2s6IGl2YTFfZGl2X2lmY2tAODQwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+Owot CQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1kaXZpZGVyLWNsb2NrIjsKLQkJY2xvY2tzID0g PCZjb3JlX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDg+OwotCQlyZWcgPSA8MHgwODQwPjsKLQkJ dGksZGl2aWRlcnMgPSA8MD4sIDwxPiwgPDI+LCA8Mz4sIDw0PiwgPDA+LCA8Nj4sIDwwPiwgPDg+ LCA8MD4sIDwwPiwgPDA+LCA8MTI+OwotCX07Ci0KLQlpdmExX2lmY2s6IGl2YTFfaWZjayB7Ci0J CSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2si OwotCQljbG9ja3MgPSA8Jml2YTFfZ2F0ZV9pZmNrPiwgPCZpdmExX2Rpdl9pZmNrPjsKLQl9Owot Ci0JaXZhMV9pZmNrX2RpdjogaXZhMV9pZmNrX2RpdiB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsK LQkJY29tcGF0aWJsZSA9ICJmaXhlZC1mYWN0b3ItY2xvY2siOwotCQljbG9ja3MgPSA8Jml2YTFf aWZjaz47Ci0JCWNsb2NrLW11bHQgPSA8MT47Ci0JCWNsb2NrLWRpdiA9IDwyPjsKLQl9OwotCi0J aXZhMV9tcHVfaW50X2lmY2s6IGl2YTFfbXB1X2ludF9pZmNrQDgwMCB7Ci0JCSNjbG9jay1jZWxs cyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSx3YWl0LWdhdGUtY2xvY2siOwotCQljbG9ja3Mg PSA8Jml2YTFfaWZja19kaXY+OwotCQl0aSxiaXQtc2hpZnQgPSA8OD47Ci0JCXJlZyA9IDwweDA4 MDA+OwotCX07Ci0KLQl3ZHQzX2ljazogd2R0M19pY2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0g PDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2Nr cyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8Mjg+OwotCQlyZWcgPSA8MHgwMjEwPjsK LQl9OwotCi0Jd2R0M19mY2s6IHdkdDNfZmNrQDIwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsK LQkJY29tcGF0aWJsZSA9ICJ0aSx3YWl0LWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNf MzJrX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDI4PjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsK LQotCW1tY19pY2s6IG1tY19pY2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21w YXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+ OwotCQl0aSxiaXQtc2hpZnQgPSA8MjY+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JbW1j X2ZjazogbW1jX2Zja0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUg PSAidGksd2FpdC1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzk2bV9jaz47Ci0JCXRp LGJpdC1zaGlmdCA9IDwyNj47Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07Ci0KLQllYWNfaWNrOiBl YWNfaWNrQDIxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxv bWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0LXNo aWZ0ID0gPDI0PjsKLQkJcmVnID0gPDB4MDIxMD47Ci0JfTsKLQotCWVhY19mY2s6IGVhY19mY2tA MjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLHdhaXQtZ2F0 ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY185Nm1fY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8 MjQ+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JaTJjMV9mY2s6IGkyYzFfZmNrQDIwMCB7 Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSx3YWl0LWdhdGUtY2xv Y2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMTJtX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDE5PjsK LQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCWkyYzJfZmNrOiBpMmMyX2Zja0AyMDAgewotCQkj Y2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksd2FpdC1nYXRlLWNsb2NrIjsK LQkJY2xvY2tzID0gPCZmdW5jXzEybV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyMD47Ci0JCXJl ZyA9IDwweDAyMDA+OwotCX07Ci0KLQl2bHlucV9pY2s6IHZseW5xX2lja0AyMTAgewotCQkjY2xv Y2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2Nr IjsKLQkJY2xvY2tzID0gPCZjb3JlX2wzX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDM+OwotCQly ZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0Jdmx5bnFfZ2F0ZV9mY2s6IHZseW5xX2dhdGVfZmNrQDIw MCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUt Z2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwz PjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCWNvcmVfZDE4X2NrOiBjb3JlX2QxOF9jayB7 Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJmaXhlZC1mYWN0b3ItY2xv Y2siOwotCQljbG9ja3MgPSA8JmNvcmVfY2s+OwotCQljbG9jay1tdWx0ID0gPDE+OwotCQljbG9j ay1kaXYgPSA8MTg+OwotCX07Ci0KLQl2bHlucV9tdXhfZmNrOiB2bHlucV9tdXhfZmNrQDI0MCB7 Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtbXV4 LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzk2bV9jaz4sIDwmY29yZV9jaz4sIDwmY29yZV9k Ml9jaz4sIDwmY29yZV9kM19jaz4sIDwmY29yZV9kNF9jaz4sIDwmZHVtbXlfY2s+LCA8JmNvcmVf ZDZfY2s+LCA8JmR1bW15X2NrPiwgPCZjb3JlX2Q4X2NrPiwgPCZjb3JlX2Q5X2NrPiwgPCZkdW1t eV9jaz4sIDwmZHVtbXlfY2s+LCA8JmNvcmVfZDEyX2NrPiwgPCZkdW1teV9jaz4sIDwmZHVtbXlf Y2s+LCA8JmR1bW15X2NrPiwgPCZjb3JlX2QxNl9jaz4sIDwmZHVtbXlfY2s+LCA8JmNvcmVfZDE4 X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDE1PjsKLQkJcmVnID0gPDB4MDI0MD47Ci0JfTsKLQot CXZseW5xX2Zjazogdmx5bnFfZmNrIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRp YmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmdmx5bnFfZ2F0ZV9mY2s+ LCA8JnZseW5xX211eF9mY2s+OwotCX07Ci19OwotCi0mcHJjbV9jbG9ja2RvbWFpbnMgewotCWdm eF9jbGtkbTogZ2Z4X2Nsa2RtIHsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjbG9ja2RvbWFpbiI7Ci0J CWNsb2NrcyA9IDwmZ2Z4X2ljaz47Ci0JfTsKLQotCWNvcmVfbDNfY2xrZG06IGNvcmVfbDNfY2xr ZG0gewotCQljb21wYXRpYmxlID0gInRpLGNsb2NrZG9tYWluIjsKLQkJY2xvY2tzID0gPCZjYW1f ZmNrPiwgPCZ2bHlucV9pY2s+LCA8JnVzYl9mY2s+OwotCX07Ci0KLQl3a3VwX2Nsa2RtOiB3a3Vw X2Nsa2RtIHsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjbG9ja2RvbWFpbiI7Ci0JCWNsb2NrcyA9IDwm ZHBsbF9jaz4sIDwmZW11bF9jaz4sIDwmZ3B0MV9pY2s+LCA8JmdwaW9zX2ljaz4sCi0JCQkgPCZn cGlvc19mY2s+LCA8Jm1wdV93ZHRfaWNrPiwgPCZtcHVfd2R0X2Zjaz4sCi0JCQkgPCZzeW5jXzMy a19pY2s+LCA8JndkdDFfaWNrPiwgPCZvbWFwY3RybF9pY2s+OwotCX07Ci0KLQlpdmExX2Nsa2Rt OiBpdmExX2Nsa2RtIHsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjbG9ja2RvbWFpbiI7Ci0JCWNsb2Nr cyA9IDwmaXZhMV9tcHVfaW50X2lmY2s+OwotCX07Ci0KLQlkc3NfY2xrZG06IGRzc19jbGtkbSB7 Ci0JCWNvbXBhdGlibGUgPSAidGksY2xvY2tkb21haW4iOwotCQljbG9ja3MgPSA8JmRzc19pY2s+ LCA8JmRzc181NG1fZmNrPjsKLQl9OwotCi0JY29yZV9sNF9jbGtkbTogY29yZV9sNF9jbGtkbSB7 Ci0JCWNvbXBhdGlibGUgPSAidGksY2xvY2tkb21haW4iOwotCQljbG9ja3MgPSA8JnNzaV9sNF9p Y2s+LCA8JmdwdDJfaWNrPiwgPCZncHQzX2ljaz4sIDwmZ3B0NF9pY2s+LAotCQkJIDwmZ3B0NV9p Y2s+LCA8JmdwdDZfaWNrPiwgPCZncHQ3X2ljaz4sIDwmZ3B0OF9pY2s+LAotCQkJIDwmZ3B0OV9p Y2s+LCA8JmdwdDEwX2ljaz4sIDwmZ3B0MTFfaWNrPiwgPCZncHQxMl9pY2s+LAotCQkJIDwmbWNi c3AxX2ljaz4sIDwmbWNic3AyX2ljaz4sIDwmbWNzcGkxX2ljaz4sCi0JCQkgPCZtY3NwaTFfZmNr PiwgPCZtY3NwaTJfaWNrPiwgPCZtY3NwaTJfZmNrPiwKLQkJCSA8JnVhcnQxX2ljaz4sIDwmdWFy dDFfZmNrPiwgPCZ1YXJ0Ml9pY2s+LCA8JnVhcnQyX2Zjaz4sCi0JCQkgPCZ1YXJ0M19pY2s+LCA8 JnVhcnQzX2Zjaz4sIDwmY2FtX2ljaz4sCi0JCQkgPCZtYWlsYm94ZXNfaWNrPiwgPCZ3ZHQ0X2lj az4sIDwmd2R0NF9mY2s+LAotCQkJIDwmd2R0M19pY2s+LCA8JndkdDNfZmNrPiwgPCZtc3Byb19p Y2s+LCA8Jm1zcHJvX2Zjaz4sCi0JCQkgPCZtbWNfaWNrPiwgPCZtbWNfZmNrPiwgPCZmYWNfaWNr PiwgPCZmYWNfZmNrPiwKLQkJCSA8JmVhY19pY2s+LCA8JmVhY19mY2s+LCA8JmhkcV9pY2s+LCA8 JmhkcV9mY2s+LAotCQkJIDwmaTJjMV9pY2s+LCA8JmkyYzFfZmNrPiwgPCZpMmMyX2ljaz4sIDwm aTJjMl9mY2s+LAotCQkJIDwmZGVzX2ljaz4sIDwmc2hhX2ljaz4sIDwmcm5nX2ljaz4sIDwmYWVz X2ljaz4sCi0JCQkgPCZwa2FfaWNrPjsKLQl9OwotfTsKLQotJmZ1bmNfOTZtX2NrIHsKLQljb21w YXRpYmxlID0gImZpeGVkLWZhY3Rvci1jbG9jayI7Ci0JY2xvY2tzID0gPCZhcGxsOTZfY2s+Owot CWNsb2NrLW11bHQgPSA8MT47Ci0JY2xvY2stZGl2ID0gPDE+OwotfTsKLQotJmRzcF9kaXZfZmNr IHsKLQl0aSxkaXZpZGVycyA9IDwwPiwgPDE+LCA8Mj4sIDwzPiwgPDQ+LCA8MD4sIDw2PiwgPDA+ LCA8OD4sIDwwPiwgPDA+LCA8MD4sIDwxMj47Ci19OwotCi0mc3NpX3Nzcl9zc3RfZGl2X2ZjayB7 Ci0JdGksZGl2aWRlcnMgPSA8MD4sIDwxPiwgPDI+LCA8Mz4sIDw0PiwgPDA+LCA8Nj4sIDwwPiwg PDg+OwotfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAt aDQuZHRzIGIvYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQyMC1oNC5kdHMKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhY2Y1ZGQ4N2M1OS4uMDAwMDAwMDAwMDAwCi0tLSBh L2FyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAtaDQuZHRzCisrKyAvZGV2L251bGwK QEAgLTEsNjMgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25s eQotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBUZXhhcyBJbnN0cnVtZW50cyBJbmNvcnBvcmF0 ZWQgLSBodHRwczovL3d3dy50aS5jb20vCi0gKi8KLS9kdHMtdjEvOwotCi0jaW5jbHVkZSAib21h cDI0MjAuZHRzaSIKLQotLyB7Ci0JbW9kZWwgPSAiVEkgT01BUDI0MjAgSDQgYm9hcmQiOwotCWNv bXBhdGlibGUgPSAidGksb21hcDI0MjAtaDQiLCAidGksb21hcDI0MjAiLCAidGksb21hcDIiOwot Ci0JbWVtb3J5QDgwMDAwMDAwIHsKLQkJZGV2aWNlX3R5cGUgPSAibWVtb3J5IjsKLQkJcmVnID0g PDB4ODAwMDAwMDAgMHg0MDAwMDAwPjsgLyogNjQgTUIgKi8KLQl9OwotfTsKLQotJmdwbWMgewot CXJhbmdlcyA9IDwwIDAgMHgwODAwMDAwMCAweDA0MDAwMDAwPjsKLQotCW5vckAwLDAgewotCQlj b21wYXRpYmxlID0gImNmaS1mbGFzaCI7Ci0JCWxpbnV4LG10ZC1uYW1lID0gImludGVsLGdlMjhm MjU2bDE4Yjg1IjsKLQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCSNzaXplLWNlbGxzID0gPDE+ OwotCQlyZWcgPSA8MCAwIDB4MDQwMDAwMDA+OwotCQliYW5rLXdpZHRoID0gPDI+OwotCi0JCWdw bWMsbXV4LWFkZC1kYXRhID0gPDI+OwotCQlncG1jLGNzLW9uLW5zID0gPDEwPjsKLQkJZ3BtYyxj cy1yZC1vZmYtbnMgPSA8MTYwPjsKLQkJZ3BtYyxjcy13ci1vZmYtbnMgPSA8MTYwPjsKLQkJZ3Bt YyxhZHYtb24tbnMgPSA8MjA+OwotCQlncG1jLGFkdi1yZC1vZmYtbnMgPSA8NTA+OwotCQlncG1j LGFkdi13ci1vZmYtbnMgPSA8NTA+OwotCQlncG1jLG9lLW9uLW5zID0gPDYwPjsKLQkJZ3BtYyxv ZS1vZmYtbnMgPSA8MTIwPjsKLQkJZ3BtYyx3ZS1vbi1ucyA9IDw2MD47Ci0JCWdwbWMsd2Utb2Zm LW5zID0gPDEyMD47Ci0JCWdwbWMscmQtY3ljbGUtbnMgPSA8MTcwPjsKLQkJZ3BtYyx3ci1jeWNs ZS1ucyA9IDwxNzA+OwotCQlncG1jLGFjY2Vzcy1ucyA9IDwxNTA+OwotCQlncG1jLHBhZ2UtYnVy c3QtYWNjZXNzLW5zID0gPDEwPjsKLQotCQlwYXJ0aXRpb25AMCB7Ci0JCQlsYWJlbCA9ICJib290 bG9hZGVyIjsKLQkJCXJlZyA9IDwwIDB4MjAwMDA+OwotCQl9OwotCQlwYXJ0aXRpb25AMjAwMDAg ewotCQkJbGFiZWwgPSAicGFyYW1zIjsKLQkJCXJlZyA9IDwweDIwMDAwIDB4MjAwMDA+OwotCQl9 OwotCQlwYXJ0aXRpb25ANDAwMDAgewotCQkJbGFiZWwgPSAia2VybmVsIjsKLQkJCXJlZyA9IDww eDQwMDAwIDB4MjAwMDAwPjsKLQkJfTsKLQkJcGFydGl0aW9uQDI0MDAwMCB7Ci0JCQlsYWJlbCA9 ICJmaWxlLXN5c3RlbSI7Ci0JCQlyZWcgPSA8MHgyNDAwMDAgMHgzZGMwMDAwPjsKLQkJfTsKLQl9 OwotfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAtbjgw MC5kdHMgYi9hcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLW44MDAuZHRzCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMDZkNzY3ZTgxOGIuLjAwMDAwMDAwMDAwMAotLS0g YS9hcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLW44MDAuZHRzCisrKyAvZGV2L251 bGwKQEAgLTEsOSArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAot L2R0cy12MS87Ci0KLSNpbmNsdWRlICJvbWFwMjQyMC1uOHgwLWNvbW1vbi5kdHNpIgotCi0vIHsK LQltb2RlbCA9ICJOb2tpYSBOODAwIjsKLQljb21wYXRpYmxlID0gIm5va2lhLG44MDAiLCAibm9r aWEsbjh4MCIsICJ0aSxvbWFwMjQyMCIsICJ0aSxvbWFwMiI7Ci19OwpkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQyMC1uODEwLXdpbWF4LmR0cyBiL2FyY2gvYXJt L2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAtbjgxMC13aW1heC5kdHMKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGFjOWFjYmQ2MDliNi4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJt L2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAtbjgxMC13aW1heC5kdHMKKysrIC9kZXYvbnVsbApA QCAtMSw5ICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCi0vZHRz LXYxLzsKLQotI2luY2x1ZGUgIm9tYXAyNDIwLW44eDAtY29tbW9uLmR0c2kiCi0KLS8gewotCW1v ZGVsID0gIk5va2lhIE44MTAgV2lNYXgiOwotCWNvbXBhdGlibGUgPSAibm9raWEsbjgxMC13aW1h eCIsICJub2tpYSxuOHgwIiwgInRpLG9tYXAyNDIwIiwgInRpLG9tYXAyIjsKLX07CmRpZmYgLS1n aXQgYS9hcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLW44MTAuZHRzIGIvYXJjaC9h cm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQyMC1uODEwLmR0cwpkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggM2JmODE3NWQ4NWE4Li4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vYm9v dC9kdHMvdGkvb21hcC9vbWFwMjQyMC1uODEwLmR0cworKysgL2Rldi9udWxsCkBAIC0xLDc1ICsw LDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCi0vZHRzLXYxLzsKLQot I2luY2x1ZGUgIm9tYXAyNDIwLW44eDAtY29tbW9uLmR0c2kiCi0KLS8gewotCW1vZGVsID0gIk5v a2lhIE44MTAiOwotCWNvbXBhdGlibGUgPSAibm9raWEsbjgxMCIsICJub2tpYSxuOHgwIiwgInRp LG9tYXAyNDIwIiwgInRpLG9tYXAyIjsKLQotCXZpb19hcGU6IHZpb19hcGUgewotCQljb21wYXRp YmxlID0gInJlZ3VsYXRvci1maXhlZCI7Ci0JCXJlZ3VsYXRvci1uYW1lID0gInZpb19hcGUiOwot CQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKLQkJcmVndWxhdG9yLW1heC1t aWNyb3ZvbHQgPSA8MTgwMDAwMD47Ci0JfTsKLQotCXYyOF9haWM6IHYyOF9haWMgewotCQljb21w YXRpYmxlID0gInJlZ3VsYXRvci1maXhlZCI7Ci0JCXJlZ3VsYXRvci1uYW1lID0gInYyOF9haWMi OwotCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwyODAwMDAwPjsKLQkJcmVndWxhdG9yLW1h eC1taWNyb3ZvbHQgPSA8MjgwMDAwMD47Ci0JfTsKLX07Ci0KLSZvbWFwMjQyMF9wbXggewotCW1j YnNwMl9waW5zOiBtY2JzcDItcGlucyB7Ci0JCXBpbmN0cmwtc2luZ2xlLHBpbnMgPSA8Ci0JCQlP TUFQMjQyMF9DT1JFX0lPUEFEKDB4MDEyNCwgUElOX0lOUFVUIHwgTVVYX01PREUxKQkvKiBlYWNf YWNfc2Nsay5tY2JzcDJfY2xreCAqLwotCQkJT01BUDI0MjBfQ09SRV9JT1BBRCgweDAxMjUsIFBJ Tl9JTlBVVCB8IE1VWF9NT0RFMSkJLyogZWFjX2FjX2ZzLm1jYnNwMl9mc3ggKi8KLQkJCU9NQVAy NDIwX0NPUkVfSU9QQUQoMHgwMTI2LCBQSU5fSU5QVVQgfCBNVVhfTU9ERTEpCS8qIGVhY19hY19k aW4ubWNic3AyX2RyICovCi0JCQlPTUFQMjQyMF9DT1JFX0lPUEFEKDB4MDEyNywgUElOX09VVFBV VCB8IE1VWF9NT0RFMSkJLyogZWFjX2FjX2RvdXQubWNic3AyX2R4ICovCi0JCT47Ci0JfTsKLQot CWFpYzMzX3BpbnM6IGFpYzMzLXBpbnMgewotCQlwaW5jdHJsLXNpbmdsZSxwaW5zID0gPAotCQkJ T01BUDI0MjBfQ09SRV9JT1BBRCgweDAxMjksIFBJTl9PVVRQVVQgfCBNVVhfTU9ERTMpCS8qIGVh Y19hY19yc3QuZ3BpbzExOCAqLwotCQkJT01BUDI0MjBfQ09SRV9JT1BBRCgweDAwZTgsIFBJTl9P VVRQVVQgfCBNVVhfTU9ERTIpCS8qIHZseW5xX3R4MS5zeXNfY2xrb3V0MiAqLwotCQk+OwotCX07 Ci19OwotCi0maTJjMiB7Ci0JYWljMzNAMTggewotCQljb21wYXRpYmxlID0gInRpLHRsdjMyMGFp YzMzIjsKLQkJcmVnID0gPDB4MTg+OwotCi0JCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7Ci0J CXBpbmN0cmwtMCA9IDwmYWljMzNfcGlucz47Ci0KLQkJcmVzZXQtZ3Bpb3MgPSA8JmdwaW80IDIy IEdQSU9fQUNUSVZFX0xPVz47IC8qIGdwaW8xMTggKi8KLQotCQlhaTN4LWdwaW8tZnVuYyA9IDwK LQkJCTEwIC8qIEFJQzNYX0dQSU8xX0ZVTkNfRElHSVRBTF9NSUNfTU9EQ0xLICovCi0JCQk1IC8q IEFJQzNYX0dQSU8yX0ZVTkNfRElHSVRBTF9NSUNfSU5QVVQgKi8KLQkJPjsKLQkJYWkzeC1taWNi aWFzLXZnID0gPDE+OyAvKiAyViAqLwotCi0JCUFWREQtc3VwcGx5ID0gPCZ2MjhfYWljPjsKLQkJ RFJWREQtc3VwcGx5ID0gPCZ2MjhfYWljPjsKLQkJSU9WREQtc3VwcGx5ID0gPCZ2aW9fYXBlPjsK LQkJRFZERC1zdXBwbHkgPSA8JnZpb19hcGU+OwotCi0JCWFzc2lnbmVkLWNsb2NrcyA9IDwmc3lz X2Nsa291dDJfc3JjPiwgPCZzeXNfY2xrb3V0Mj47Ci0JCWFzc2lnbmVkLWNsb2NrLXBhcmVudHMg PSA8JmZ1bmNfOTZtX2NrPjsKLQkJYXNzaWduZWQtY2xvY2stcmF0ZXMgPSA8MD4sIDwxMjAwMDAw MD47Ci0JfTsKLX07Ci0KLSZtY2JzcDIgewotCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7Ci0J cGluY3RybC0wID0gPCZtY2JzcDJfcGlucz47Ci0KLQlzdGF0dXMgPSAib2theSI7Ci19OwpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQyMC1uOHgwLWNvbW1vbi5k dHNpIGIvYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQyMC1uOHgwLWNvbW1vbi5kdHNp CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTlkZDhiYmZjODUuLjAwMDAwMDAwMDAw MAotLS0gYS9hcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLW44eDAtY29tbW9uLmR0 c2kKKysrIC9kZXYvbnVsbApAQCAtMSwxMjMgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAKLSNpbmNsdWRlICJvbWFwMjQyMC5kdHNpIgotCi0vIHsKLQltZW1vcnlA ODAwMDAwMDAgewotCQlkZXZpY2VfdHlwZSA9ICJtZW1vcnkiOwotCQlyZWcgPSA8MHg4MDAwMDAw MCAweDgwMDAwMDA+OyAvKiAxMjggTUIgKi8KLQl9OwotCi0JY2hvc2VuIHsKLQkJc3Rkb3V0LXBh dGggPSAmdWFydDM7Ci0JfTsKLQotCW9jcCB7Ci0JCWkyYzAgewotCQkJY29tcGF0aWJsZSA9ICJp MmMtY2J1cy1ncGlvIjsKLQkJCWdwaW9zID0gPCZncGlvMyAyIEdQSU9fQUNUSVZFX0hJR0ggLyog Z3BpbzY2IGNsayAqLwotCQkJCSAmZ3BpbzMgMSBHUElPX0FDVElWRV9ISUdIIC8qIGdwaW82NSBk YXQgKi8KLQkJCQkgJmdwaW8zIDAgR1BJT19BQ1RJVkVfSElHSCAvKiBncGlvNjQgc2VsICovCi0J CQkJPjsKLQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkJI3NpemUtY2VsbHMgPSA8MD47Ci0J CQlyZXR1OiByZXR1QDEgewotCQkJCWNvbXBhdGlibGUgPSAibm9raWEscmV0dSI7Ci0JCQkJaW50 ZXJydXB0LXBhcmVudCA9IDwmZ3BpbzQ+OwotCQkJCWludGVycnVwdHMgPSA8MTIgSVJRX1RZUEVf RURHRV9SSVNJTkc+OwotCQkJCXJlZyA9IDwweDE+OwotCQkJfTsKLQkJfTsKLQl9OwotfTsKLQot JmkyYzEgewotCWNsb2NrLWZyZXF1ZW5jeSA9IDw0MDAwMDA+OwotCi0JcG1pY0A3MiB7Ci0JCWNv bXBhdGlibGUgPSAibWVuZWxhdXMiOwotCQlyZWcgPSA8MHg3Mj47Ci0JCWludGVycnVwdHMgPSA8 NyBJUlFfVFlQRV9FREdFX1JJU0lORz47Ci0JfTsKLX07Ci0KLSZpMmMyIHsKLQljbG9jay1mcmVx dWVuY3kgPSA8NDAwMDAwPjsKLX07Ci0KLSZncG1jIHsKLQlyYW5nZXMgPSA8MCAwIDB4MDQwMDAw MDAgMHgxMDAwMDAwPjsJLyogQ1MwOiAxNk1CIGZvciBPbmVOQU5EICovCi0KLQkvKiBncGlvLWly cSBmb3IgZG1hOiAyNiAqLwotCi0Jb25lbmFuZEAwLDAgewotCQkjYWRkcmVzcy1jZWxscyA9IDwx PjsKLQkJI3NpemUtY2VsbHMgPSA8MT47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDItb25lbmFu ZCI7Ci0JCXJlZyA9IDwwIDAgMHgyMDAwMD47CS8qIENTMCwgb2Zmc2V0IDAsIElPIHNpemUgMTI4 SyAqLwotCi0JCWdwbWMsc3luYy1yZWFkOwotCQlncG1jLGJ1cnN0LWxlbmd0aCA9IDwxNj47Ci0J CWdwbWMsYnVyc3QtcmVhZDsKLQkJZ3BtYyxidXJzdC13cmFwOwotCQlncG1jLGRldmljZS13aWR0 aCA9IDwyPjsKLQkJZ3BtYyxtdXgtYWRkLWRhdGEgPSA8Mj47Ci0JCWdwbWMsY3Mtb24tbnMgPSA8 MD47Ci0JCWdwbWMsY3MtcmQtb2ZmLW5zID0gPDEyNz47Ci0JCWdwbWMsY3Mtd3Itb2ZmLW5zID0g PDEwOT47Ci0JCWdwbWMsYWR2LW9uLW5zID0gPDA+OwotCQlncG1jLGFkdi1yZC1vZmYtbnMgPSA8 MTg+OwotCQlncG1jLGFkdi13ci1vZmYtbnMgPSA8MTg+OwotCQlncG1jLG9lLW9uLW5zID0gPDI3 PjsKLQkJZ3BtYyxvZS1vZmYtbnMgPSA8MTI3PjsKLQkJZ3BtYyx3ZS1vbi1ucyA9IDwyNz47Ci0J CWdwbWMsd2Utb2ZmLW5zID0gPDcyPjsKLQkJZ3BtYyxyZC1jeWNsZS1ucyA9IDwxNDU+OwotCQln cG1jLHdyLWN5Y2xlLW5zID0gPDEzNj47Ci0JCWdwbWMsYWNjZXNzLW5zID0gPDExOD47Ci0JCWdw bWMscGFnZS1idXJzdC1hY2Nlc3MtbnMgPSA8Mjc+OwotCQlncG1jLGJ1cy10dXJuYXJvdW5kLW5z ID0gPDA+OwotCQlncG1jLGN5Y2xlMmN5Y2xlLWRlbGF5LW5zID0gPDA+OwotCQlncG1jLHdhaXQt bW9uaXRvcmluZy1ucyA9IDwwPjsKLQkJZ3BtYyxjbGstYWN0aXZhdGlvbi1ucyA9IDw5PjsKLQkJ Z3BtYyxzeW5jLWNsay1wcyA9IDwyNzAwMD47Ci0KLQkJLyogTVREIHBhcnRpdGlvbiB0YWJsZSBj b3JyZXNwb25kaW5nIHRvIG9sZCBib2FyZC1uOHgwIGZpbGUuICovCi0JCXBhcnRpdGlvbkAwIHsK LQkJCWxhYmVsID0gImJvb3Rsb2FkZXIiOwotCQkJcmVnID0gPDB4MDAwMDAwMDAgMHgwMDAyMDAw MD47Ci0JCQlyZWFkLW9ubHk7Ci0JCX07Ci0JCXBhcnRpdGlvbkAxIHsKLQkJCWxhYmVsID0gImNv bmZpZyI7Ci0JCQlyZWcgPSA8MHgwMDAyMDAwMCAweDAwMDYwMDAwPjsKLQkJfTsKLQkJcGFydGl0 aW9uQDIgewotCQkJbGFiZWwgPSAia2VybmVsIjsKLQkJCXJlZyA9IDwweDAwMDgwMDAwIDB4MDAy MDAwMDA+OwotCQl9OwotCQlwYXJ0aXRpb25AMyB7Ci0JCQlsYWJlbCA9ICJpbml0ZnMiOwotCQkJ cmVnID0gPDB4MDAyODAwMDAgMHgwMDQwMDAwMD47Ci0JCX07Ci0JCXBhcnRpdGlvbkA0IHsKLQkJ CWxhYmVsID0gInJvb3RmcyI7Ci0JCQlyZWcgPSA8MHgwMDY4MDAwMCAweDBmOTgwMDAwPjsKLQkJ fTsKLQkJcGFydGl0aW9uQDUgewotCQkJbGFiZWwgPSAib21hcDItb25lbmFuZCI7Ci0JCQlyZWcg PSA8MHgwMDAwMDAwMCAweDEwMDAwMDAwPjsKLQkJfTsKLQl9OwotfTsKLQotJm1jc3BpMiB7Ci0J c3RhdHVzID0gIm9rYXkiOwotCi0Jd2lmaUAwIHsKLQkJcmVnID0gPDA+OwotCQljb21wYXRpYmxl ID0gInN0LHN0bGM0NTYwIjsKLQkJc3BpLW1heC1mcmVxdWVuY3kgPSA8NDgwMDAwMDA+OwotCQlp bnRlcnJ1cHRzLWV4dGVuZGVkID0gPCZncGlvMyAyMyBJUlFfVFlQRV9FREdFX1JJU0lORz47Ci0J CXBvd2VyZG93bi1ncGlvcyA9IDwmZ3BpbzQgMSBHUElPX0FDVElWRV9MT1c+OyAvKiBncGlvIDk3 ICovCi0JfTsKLX07CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAy NDIwLmR0c2kgYi9hcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLmR0c2kKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyMWRhNTFjYjg3MC4uMDAwMDAwMDAwMDAwCi0tLSBh L2FyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAuZHRzaQorKysgL2Rldi9udWxsCkBA IC0xLDI2MiArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5 Ci0vKgotICogRGV2aWNlIFRyZWUgU291cmNlIGZvciBPTUFQMjQyMCBTb0MKLSAqCi0gKiBDb3B5 cmlnaHQgKEMpIDIwMTIgVGV4YXMgSW5zdHJ1bWVudHMgSW5jb3Jwb3JhdGVkIC0gaHR0cHM6Ly93 d3cudGkuY29tLwotICovCi0KLSNpbmNsdWRlICJvbWFwMi5kdHNpIgotCi0vIHsKLQljb21wYXRp YmxlID0gInRpLG9tYXAyNDIwIiwgInRpLG9tYXAyIjsKLQotCW9jcCB7Ci0JCWw0OiBsNEA0ODAw MDAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyLWw0IiwgInNpbXBsZS1idXMiOwotCQkJ I2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCQkjc2l6ZS1jZWxscyA9IDwxPjsKLQkJCXJhbmdlcyA9 IDwwIDB4NDgwMDAwMDAgMHgxMDAwMDA+OwotCi0JCQlwcmNtOiBwcmNtQDgwMDAgewotCQkJCWNv bXBhdGlibGUgPSAidGksb21hcDItcHJjbSI7Ci0JCQkJcmVnID0gPDB4ODAwMCAweDEwMDA+Owot Ci0JCQkJcHJjbV9jbG9ja3M6IGNsb2NrcyB7Ci0JCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+Owot CQkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKLQkJCQl9OwotCi0JCQkJcHJjbV9jbG9ja2RvbWFpbnM6 IGNsb2NrZG9tYWlucyB7Ci0JCQkJfTsKLQkJCX07Ci0KLQkJCXNjbTogc2NtQDAgewotCQkJCWNv bXBhdGlibGUgPSAidGksb21hcDItc2NtIiwgInNpbXBsZS1idXMiOwotCQkJCXJlZyA9IDwweDAg MHgxMDAwPjsKLQkJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKLQkJCQkjc2l6ZS1jZWxscyA9IDwx PjsKLQkJCQkjcGluY3RybC1jZWxscyA9IDwxPjsKLQkJCQlyYW5nZXMgPSA8MCAweDAgMHgxMDAw PjsKLQotCQkJCW9tYXAyNDIwX3BteDogcGlubXV4QDMwIHsKLQkJCQkJY29tcGF0aWJsZSA9ICJ0 aSxvbWFwMjQyMC1wYWRjb25mIiwKLQkJCQkJCSAgICAgInBpbmN0cmwtc2luZ2xlIjsKLQkJCQkJ cmVnID0gPDB4MzAgMHgwMTEzPjsKLQkJCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCQkJCSNz aXplLWNlbGxzID0gPDA+OwotCQkJCQkjcGluY3RybC1jZWxscyA9IDwxPjsKLQkJCQkJcGluY3Ry bC1zaW5nbGUscmVnaXN0ZXItd2lkdGggPSA8OD47Ci0JCQkJCXBpbmN0cmwtc2luZ2xlLGZ1bmN0 aW9uLW1hc2sgPSA8MHgzZj47Ci0JCQkJfTsKLQotCQkJCXNjbV9jb25mOiBzY21fY29uZkAyNzAg ewotCQkJCQljb21wYXRpYmxlID0gInN5c2NvbiI7Ci0JCQkJCXJlZyA9IDwweDI3MCAweDEwMD47 Ci0JCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkJCQkjc2l6ZS1jZWxscyA9IDwxPjsKLQot CQkJCQlzY21fY2xvY2tzOiBjbG9ja3MgewotCQkJCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0J CQkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKLQkJCQkJfTsKLQkJCQl9OwotCi0JCQkJc2NtX2Nsb2Nr ZG9tYWluczogY2xvY2tkb21haW5zIHsKLQkJCQl9OwotCQkJfTsKLQotCQkJdGFyZ2V0LW1vZHVs ZUA0MDAwIHsKLQkJCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDIiLCAidGksc3lzYyI7Ci0J CQkJcmVnID0gPDB4NDAwMCAweDQ+LAotCQkJCSAgICAgIDwweDQwMDQgMHg0PjsKLQkJCQlyZWct bmFtZXMgPSAicmV2IiwgInN5c2MiOwotCQkJCXRpLHN5c2Mtc2lkbGUgPSA8U1lTQ19JRExFX0ZP UkNFPiwKLQkJCQkJCTxTWVNDX0lETEVfTk8+OwotCQkJCWNsb2NrcyA9IDwmZnVuY18zMmtfY2s+ OwotCQkJCWNsb2NrLW5hbWVzID0gImZjayI7Ci0JCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0J CQkJI3NpemUtY2VsbHMgPSA8MT47Ci0JCQkJcmFuZ2VzID0gPDB4MCAweDQwMDAgMHgxMDAwPjsK LQotCQkJCWNvdW50ZXIzMms6IGNvdW50ZXJAMCB7Ci0JCQkJCWNvbXBhdGlibGUgPSAidGksb21h cC1jb3VudGVyMzJrIjsKLQkJCQkJcmVnID0gPDAgMHgyMD47Ci0JCQkJfTsKLQkJCX07Ci0JCX07 Ci0KLQkJZ3BpbzE6IGdwaW9ANDgwMTgwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1n cGlvIjsKLQkJCXJlZyA9IDwweDQ4MDE4MDAwIDB4MjAwPjsKLQkJCWludGVycnVwdHMgPSA8Mjk+ OwotCQkJdGksaHdtb2RzID0gImdwaW8xIjsKLQkJCXRpLGdwaW8tYWx3YXlzLW9uOwotCQkJI2dw aW8tY2VsbHMgPSA8Mj47Ci0JCQlncGlvLWNvbnRyb2xsZXI7Ci0JCQkjaW50ZXJydXB0LWNlbGxz ID0gPDI+OwotCQkJaW50ZXJydXB0LWNvbnRyb2xsZXI7Ci0JCX07Ci0KLQkJZ3BpbzI6IGdwaW9A NDgwMWEwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1ncGlvIjsKLQkJCXJlZyA9IDww eDQ4MDFhMDAwIDB4MjAwPjsKLQkJCWludGVycnVwdHMgPSA8MzA+OwotCQkJdGksaHdtb2RzID0g ImdwaW8yIjsKLQkJCXRpLGdwaW8tYWx3YXlzLW9uOwotCQkJI2dwaW8tY2VsbHMgPSA8Mj47Ci0J CQlncGlvLWNvbnRyb2xsZXI7Ci0JCQkjaW50ZXJydXB0LWNlbGxzID0gPDI+OwotCQkJaW50ZXJy dXB0LWNvbnRyb2xsZXI7Ci0JCX07Ci0KLQkJZ3BpbzM6IGdwaW9ANDgwMWMwMDAgewotCQkJY29t cGF0aWJsZSA9ICJ0aSxvbWFwMi1ncGlvIjsKLQkJCXJlZyA9IDwweDQ4MDFjMDAwIDB4MjAwPjsK LQkJCWludGVycnVwdHMgPSA8MzE+OwotCQkJdGksaHdtb2RzID0gImdwaW8zIjsKLQkJCXRpLGdw aW8tYWx3YXlzLW9uOwotCQkJI2dwaW8tY2VsbHMgPSA8Mj47Ci0JCQlncGlvLWNvbnRyb2xsZXI7 Ci0JCQkjaW50ZXJydXB0LWNlbGxzID0gPDI+OwotCQkJaW50ZXJydXB0LWNvbnRyb2xsZXI7Ci0J CX07Ci0KLQkJZ3BpbzQ6IGdwaW9ANDgwMWUwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFw Mi1ncGlvIjsKLQkJCXJlZyA9IDwweDQ4MDFlMDAwIDB4MjAwPjsKLQkJCWludGVycnVwdHMgPSA8 MzI+OwotCQkJdGksaHdtb2RzID0gImdwaW80IjsKLQkJCXRpLGdwaW8tYWx3YXlzLW9uOwotCQkJ I2dwaW8tY2VsbHMgPSA8Mj47Ci0JCQlncGlvLWNvbnRyb2xsZXI7Ci0JCQkjaW50ZXJydXB0LWNl bGxzID0gPDI+OwotCQkJaW50ZXJydXB0LWNvbnRyb2xsZXI7Ci0JCX07Ci0KLQkJZ3BtYzogZ3Bt Y0A2ODAwYTAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyNDIwLWdwbWMiOwotCQkJcmVn ID0gPDB4NjgwMGEwMDAgMHgxMDAwPjsKLQkJCSNhZGRyZXNzLWNlbGxzID0gPDI+OwotCQkJI3Np emUtY2VsbHMgPSA8MT47Ci0JCQlpbnRlcnJ1cHRzID0gPDIwPjsKLQkJCWdwbWMsbnVtLWNzID0g PDg+OwotCQkJZ3BtYyxudW0td2FpdHBpbnMgPSA8ND47Ci0JCQl0aSxod21vZHMgPSAiZ3BtYyI7 Ci0JCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKLQkJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8Mj47Ci0J CQlncGlvLWNvbnRyb2xsZXI7Ci0JCQkjZ3Bpby1jZWxscyA9IDwyPjsKLQkJfTsKLQotCQltY2Jz cDE6IG1jYnNwQDQ4MDc0MDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksb21hcDI0MjAtbWNic3Ai OwotCQkJcmVnID0gPDB4NDgwNzQwMDAgMHhmZj47Ci0JCQlyZWctbmFtZXMgPSAibXB1IjsKLQkJ CWludGVycnVwdHMgPSA8NTk+LCAvKiBUWCBpbnRlcnJ1cHQgKi8KLQkJCQkgICAgIDw2MD47IC8q IFJYIGludGVycnVwdCAqLwotCQkJaW50ZXJydXB0LW5hbWVzID0gInR4IiwgInJ4IjsKLQkJCXRp LGh3bW9kcyA9ICJtY2JzcDEiOwotCQkJZG1hcyA9IDwmc2RtYSAzMT4sCi0JCQkgICAgICAgPCZz ZG1hIDMyPjsKLQkJCWRtYS1uYW1lcyA9ICJ0eCIsICJyeCI7Ci0JCQlzdGF0dXMgPSAiZGlzYWJs ZWQiOwotCQl9OwotCi0JCW1jYnNwMjogbWNic3BANDgwNzYwMDAgewotCQkJY29tcGF0aWJsZSA9 ICJ0aSxvbWFwMjQyMC1tY2JzcCI7Ci0JCQlyZWcgPSA8MHg0ODA3NjAwMCAweGZmPjsKLQkJCXJl Zy1uYW1lcyA9ICJtcHUiOwotCQkJaW50ZXJydXB0cyA9IDw2Mj4sIC8qIFRYIGludGVycnVwdCAq LwotCQkJCSAgICAgPDYzPjsgLyogUlggaW50ZXJydXB0ICovCi0JCQlpbnRlcnJ1cHQtbmFtZXMg PSAidHgiLCAicngiOwotCQkJdGksaHdtb2RzID0gIm1jYnNwMiI7Ci0JCQlkbWFzID0gPCZzZG1h IDMzPiwKLQkJCSAgICAgICA8JnNkbWEgMzQ+OwotCQkJZG1hLW5hbWVzID0gInR4IiwgInJ4IjsK LQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7Ci0JCX07Ci0KLQkJbXNkaTE6IG1tY0A0ODA5YzAwMCB7 Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyNDIwLW1tYyI7Ci0JCQl0aSxod21vZHMgPSAibXNk aTEiOwotCQkJcmVnID0gPDB4NDgwOWMwMDAgMHg4MD47Ci0JCQlpbnRlcnJ1cHRzID0gPDgzPjsK LQkJCWRtYXMgPSA8JnNkbWEgNjEgJnNkbWEgNjI+OwotCQkJZG1hLW5hbWVzID0gInR4IiwgInJ4 IjsKLQkJfTsKLQotCQltYWlsYm94OiBtYWlsYm94QDQ4MDk0MDAwIHsKLQkJCWNvbXBhdGlibGUg PSAidGksb21hcDItbWFpbGJveCI7Ci0JCQlyZWcgPSA8MHg0ODA5NDAwMCAweDIwMD47Ci0JCQlp bnRlcnJ1cHRzID0gPDI2PiwgPDM0PjsKLQkJCXRpLGh3bW9kcyA9ICJtYWlsYm94IjsKLQkJCSNt Ym94LWNlbGxzID0gPDE+OwotCQkJdGksbWJveC1udW0tdXNlcnMgPSA8ND47Ci0JCQl0aSxtYm94 LW51bS1maWZvcyA9IDw2PjsKLQkJCW1ib3hfZHNwOiBtYm94LWRzcCB7Ci0JCQkJdGksbWJveC10 eCA9IDwwIDAgMD47Ci0JCQkJdGksbWJveC1yeCA9IDwxIDAgMD47Ci0JCQl9OwotCQkJbWJveF9p dmE6IG1ib3gtaXZhIHsKLQkJCQl0aSxtYm94LXR4ID0gPDIgMSAzPjsKLQkJCQl0aSxtYm94LXJ4 ID0gPDMgMSAzPjsKLQkJCX07Ci0JCX07Ci0KLQkJdGltZXIxX3RhcmdldDogdGFyZ2V0LW1vZHVs ZUA0ODAyODAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLHN5c2Mtb21hcDItdGltZXIiLCAidGks c3lzYyI7Ci0JCQlyZWcgPSA8MHg0ODAyODAwMCAweDQ+LAotCQkJICAgICAgPDB4NDgwMjgwMTAg MHg0PiwKLQkJCSAgICAgIDwweDQ4MDI4MDE0IDB4ND47Ci0JCQlyZWctbmFtZXMgPSAicmV2Iiwg InN5c2MiLCAic3lzcyI7Ci0JCQl0aSxzeXNjLW1hc2sgPSA8KFNZU0NfT01BUDJfQ0xPQ0tBQ1RJ VklUWSB8Ci0JCQkJCSBTWVNDX09NQVAyX0VNVUZSRUUgfAotCQkJCQkgU1lTQ19PTUFQMl9FTkFX QUtFVVAgfAotCQkJCQkgU1lTQ19PTUFQMl9TT0ZUUkVTRVQgfAotCQkJCQkgU1lTQ19PTUFQMl9B VVRPSURMRSk+OwotCQkJdGksc3lzYy1zaWRsZSA9IDxTWVNDX0lETEVfRk9SQ0U+LAotCQkJCQk8 U1lTQ19JRExFX05PPiwKLQkJCQkJPFNZU0NfSURMRV9TTUFSVD47Ci0JCQl0aSxzeXNzLW1hc2sg PSA8MT47Ci0JCQljbG9ja3MgPSA8JmdwdDFfZmNrPiwgPCZncHQxX2ljaz47Ci0JCQljbG9jay1u YW1lcyA9ICJmY2siLCAiaWNrIjsKLQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkJI3NpemUt Y2VsbHMgPSA8MT47Ci0JCQlyYW5nZXMgPSA8MHgwIDB4NDgwMjgwMDAgMHgxMDAwPjsKLQotCQkJ dGltZXIxOiB0aW1lckAwIHsKLQkJCQljb21wYXRpYmxlID0gInRpLG9tYXAyNDIwLXRpbWVyIjsK LQkJCQlyZWcgPSA8MCAweDQwMD47Ci0JCQkJaW50ZXJydXB0cyA9IDwzNz47Ci0JCQkJdGksdGlt ZXItYWx3b247Ci0JCQl9OwotCQl9OwotCi0JCXdkX3RpbWVyMjogd2R0QDQ4MDIyMDAwIHsKLQkJ CWNvbXBhdGlibGUgPSAidGksb21hcDItd2R0IjsKLQkJCXRpLGh3bW9kcyA9ICJ3ZF90aW1lcjIi OwotCQkJcmVnID0gPDB4NDgwMjIwMDAgMHg4MD47Ci0JCX07Ci0JfTsKLX07Ci0KLSZpMmMxIHsK LQljb21wYXRpYmxlID0gInRpLG9tYXAyNDIwLWkyYyI7Ci19OwotCi0maTJjMiB7Ci0JY29tcGF0 aWJsZSA9ICJ0aSxvbWFwMjQyMC1pMmMiOwotfTsKLQotI2luY2x1ZGUgIm9tYXAyNHh4LWNsb2Nr cy5kdHNpIgotI2luY2x1ZGUgIm9tYXAyNDIwLWNsb2Nrcy5kdHNpIgotCi0vKiBQcmVmZXJyZWQg YWx3YXlzLW9uIHRpbWVyIGZvciBjbG9ja2V2ZW50ICovCi0mdGltZXIxX3RhcmdldCB7Ci0JdGks bm8tcmVzZXQtb24taW5pdDsKLQl0aSxuby1pZGxlOwotCXRpbWVyQDAgewotCQlhc3NpZ25lZC1j bG9ja3MgPSA8JmdwdDFfZmNrPjsKLQkJYXNzaWduZWQtY2xvY2stcGFyZW50cyA9IDwmZnVuY18z MmtfY2s+OwotCX07Ci19OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9v bWFwMjQzMC1jbG9ja3MuZHRzaSBiL2FyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MzAt Y2xvY2tzLmR0c2kKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlNWFiNTE4OTQ3Ni4u MDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MzAtY2xv Y2tzLmR0c2kKKysrIC9kZXYvbnVsbApAQCAtMSwzNDEgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIERldmljZSBUcmVlIFNvdXJjZSBmb3Ig T01BUDI0MzAgY2xvY2sgZGF0YQotICoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBUZXhhcyBJbnN0 cnVtZW50cywgSW5jLgotICovCi0KLSZzY21fY2xvY2tzIHsKLQltY2JzcDNfbXV4X2ZjazogbWNi c3AzX211eF9mY2tANzggewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAi dGksY29tcG9zaXRlLW11eC1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY185Nm1fY2s+LCA8Jm1j YnNwX2Nsa3M+OwotCQlyZWcgPSA8MHg3OD47Ci0JfTsKLQotCW1jYnNwM19mY2s6IG1jYnNwM19m Y2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRl LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZtY2JzcDNfZ2F0ZV9mY2s+LCA8Jm1jYnNwM19tdXhfZmNr PjsKLQl9OwotCi0JbWNic3A0X211eF9mY2s6IG1jYnNwNF9tdXhfZmNrQDc4IHsKLQkJI2Nsb2Nr LWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1tdXgtY2xvY2siOwot CQljbG9ja3MgPSA8JmZ1bmNfOTZtX2NrPiwgPCZtY2JzcF9jbGtzPjsKLQkJdGksYml0LXNoaWZ0 ID0gPDI+OwotCQlyZWcgPSA8MHg3OD47Ci0JfTsKLQotCW1jYnNwNF9mY2s6IG1jYnNwNF9mY2sg ewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWNs b2NrIjsKLQkJY2xvY2tzID0gPCZtY2JzcDRfZ2F0ZV9mY2s+LCA8Jm1jYnNwNF9tdXhfZmNrPjsK LQl9OwotCi0JbWNic3A1X211eF9mY2s6IG1jYnNwNV9tdXhfZmNrQDc4IHsKLQkJI2Nsb2NrLWNl bGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1tdXgtY2xvY2siOwotCQlj bG9ja3MgPSA8JmZ1bmNfOTZtX2NrPiwgPCZtY2JzcF9jbGtzPjsKLQkJdGksYml0LXNoaWZ0ID0g PDQ+OwotCQlyZWcgPSA8MHg3OD47Ci0JfTsKLQotCW1jYnNwNV9mY2s6IG1jYnNwNV9mY2sgewot CQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWNsb2Nr IjsKLQkJY2xvY2tzID0gPCZtY2JzcDVfZ2F0ZV9mY2s+LCA8Jm1jYnNwNV9tdXhfZmNrPjsKLQl9 OwotfTsKLQotJnByY21fY2xvY2tzIHsKLQlpdmEyXzFfZ2F0ZV9pY2s6IGl2YTJfMV9nYXRlX2lj a0A4MDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9z aXRlLWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmRzcF9mY2s+OwotCQl0aSxiaXQtc2hpZnQg PSA8MD47Ci0JCXJlZyA9IDwweDA4MDA+OwotCX07Ci0KLQlpdmEyXzFfZGl2X2ljazogaXZhMl8x X2Rpdl9pY2tAODQwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRp LGNvbXBvc2l0ZS1kaXZpZGVyLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZkc3BfZmNrPjsKLQkJdGks Yml0LXNoaWZ0ID0gPDU+OwotCQl0aSxtYXgtZGl2ID0gPDM+OwotCQlyZWcgPSA8MHgwODQwPjsK LQkJdGksaW5kZXgtc3RhcnRzLWF0LW9uZTsKLQl9OwotCi0JaXZhMl8xX2ljazogaXZhMl8xX2lj ayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUt Y2xvY2siOwotCQljbG9ja3MgPSA8Jml2YTJfMV9nYXRlX2ljaz4sIDwmaXZhMl8xX2Rpdl9pY2s+ OwotCX07Ci0KLQltZG1fZ2F0ZV9pY2s6IG1kbV9nYXRlX2lja0BjMTAgewotCQkjY2xvY2stY2Vs bHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWludGVyZmFjZS1jbG9jayI7 Ci0JCWNsb2NrcyA9IDwmY29yZV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwwPjsKLQkJcmVnID0g PDB4MGMxMD47Ci0JfTsKLQotCW1kbV9kaXZfaWNrOiBtZG1fZGl2X2lja0BjNDAgewotCQkjY2xv Y2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWRpdmlkZXItY2xv Y2siOwotCQljbG9ja3MgPSA8JmNvcmVfY2s+OwotCQlyZWcgPSA8MHgwYzQwPjsKLQkJdGksZGl2 aWRlcnMgPSA8MD4sIDwxPiwgPDA+LCA8MD4sIDw0PiwgPDA+LCA8Nj4sIDwwPiwgPDA+LCA8OT47 Ci0JfTsKLQotCW1kbV9pY2s6IG1kbV9pY2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNv bXBhdGlibGUgPSAidGksY29tcG9zaXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZtZG1fZ2F0ZV9p Y2s+LCA8Jm1kbV9kaXZfaWNrPjsKLQl9OwotCi0JbWRtX29zY19jazogbWRtX29zY19ja0BjMDAg ewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJm YWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZvc2NfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MT47 Ci0JCXJlZyA9IDwweDBjMDA+OwotCX07Ci0KLQltY2JzcDNfaWNrOiBtY2JzcDNfaWNrQDIxNCB7 Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZh Y2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDM+Owot CQlyZWcgPSA8MHgwMjE0PjsKLQl9OwotCi0JbWNic3AzX2dhdGVfZmNrOiBtY2JzcDNfZ2F0ZV9m Y2tAMjA0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBv c2l0ZS1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZtY2JzcF9jbGtzPjsKLQkJdGksYml0LXNo aWZ0ID0gPDM+OwotCQlyZWcgPSA8MHgwMjA0PjsKLQl9OwotCi0JbWNic3A0X2ljazogbWNic3A0 X2lja0AyMTQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21h cDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlm dCA9IDw0PjsKLQkJcmVnID0gPDB4MDIxND47Ci0JfTsKLQotCW1jYnNwNF9nYXRlX2ZjazogbWNi c3A0X2dhdGVfZmNrQDIwNCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9 ICJ0aSxjb21wb3NpdGUtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbWNic3BfY2xrcz47Ci0J CXRpLGJpdC1zaGlmdCA9IDw0PjsKLQkJcmVnID0gPDB4MDIwND47Ci0JfTsKLQotCW1jYnNwNV9p Y2s6IG1jYnNwNV9pY2tAMjE0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxl ID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0 aSxiaXQtc2hpZnQgPSA8NT47Ci0JCXJlZyA9IDwweDAyMTQ+OwotCX07Ci0KLQltY2JzcDVfZ2F0 ZV9mY2s6IG1jYnNwNV9nYXRlX2Zja0AyMDQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNv bXBhdGlibGUgPSAidGksY29tcG9zaXRlLWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8Jm1jYnNw X2Nsa3M+OwotCQl0aSxiaXQtc2hpZnQgPSA8NT47Ci0JCXJlZyA9IDwweDAyMDQ+OwotCX07Ci0K LQltY3NwaTNfaWNrOiBtY3NwaTNfaWNrQDIxNCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJ Y29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0 X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDk+OwotCQlyZWcgPSA8MHgwMjE0PjsKLQl9OwotCi0J bWNzcGkzX2ZjazogbWNzcGkzX2Zja0AyMDQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNv bXBhdGlibGUgPSAidGksd2FpdC1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzQ4bV9j az47Ci0JCXRpLGJpdC1zaGlmdCA9IDw5PjsKLQkJcmVnID0gPDB4MDIwND47Ci0JfTsKLQotCWlj cl9pY2s6IGljcl9pY2tANDEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxl ID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmc3lzX2NrPjsKLQkJ dGksYml0LXNoaWZ0ID0gPDY+OwotCQlyZWcgPSA8MHgwNDEwPjsKLQl9OwotCi0JaTJjaHMxX2Zj azogaTJjaHMxX2Zja0AyMDQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUg PSAidGksb21hcDI0MzAtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzk2bV9j az47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxOT47Ci0JCXJlZyA9IDwweDAyMDQ+OwotCX07Ci0KLQlp MmNoczJfZmNrOiBpMmNoczJfZmNrQDIwNCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29t cGF0aWJsZSA9ICJ0aSxvbWFwMjQzMC1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1 bmNfOTZtX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDIwPjsKLQkJcmVnID0gPDB4MDIwND47Ci0J fTsKLQotCXVzYmhzX2ljazogdXNiaHNfaWNrQDIxNCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsK LQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8 JmNvcmVfbDNfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8Nj47Ci0JCXJlZyA9IDwweDAyMTQ+Owot CX07Ci0KLQltbWNoczFfaWNrOiBtbWNoczFfaWNrQDIxNCB7Ci0JCSNjbG9jay1jZWxscyA9IDww PjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3Mg PSA8Jmw0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDc+OwotCQlyZWcgPSA8MHgwMjE0PjsKLQl9 OwotCi0JbW1jaHMxX2ZjazogbW1jaHMxX2Zja0AyMDQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47 Ci0JCWNvbXBhdGlibGUgPSAidGksd2FpdC1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5j Xzk2bV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDw3PjsKLQkJcmVnID0gPDB4MDIwND47Ci0JfTsK LQotCW1tY2hzMl9pY2s6IG1tY2hzMl9pY2tAMjE0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+Owot CQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwm bDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8OD47Ci0JCXJlZyA9IDwweDAyMTQ+OwotCX07Ci0K LQltbWNoczJfZmNrOiBtbWNoczJfZmNrQDIwNCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJ Y29tcGF0aWJsZSA9ICJ0aSx3YWl0LWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfOTZt X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDg+OwotCQlyZWcgPSA8MHgwMjA0PjsKLQl9OwotCi0J Z3BpbzVfaWNrOiBncGlvNV9pY2tAMjE0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21w YXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+ OwotCQl0aSxiaXQtc2hpZnQgPSA8MTA+OwotCQlyZWcgPSA8MHgwMjE0PjsKLQl9OwotCi0JZ3Bp bzVfZmNrOiBncGlvNV9mY2tAMjA0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRp YmxlID0gInRpLHdhaXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtfY2s+Owot CQl0aSxiaXQtc2hpZnQgPSA8MTA+OwotCQlyZWcgPSA8MHgwMjA0PjsKLQl9OwotCi0JbWRtX2lu dGNfaWNrOiBtZG1faW50Y19pY2tAMjE0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21w YXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+ OwotCQl0aSxiaXQtc2hpZnQgPSA8MTE+OwotCQlyZWcgPSA8MHgwMjE0PjsKLQl9OwotCi0JbW1j aHNkYjFfZmNrOiBtbWNoc2RiMV9mY2tAMjA0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQlj b21wYXRpYmxlID0gInRpLHdhaXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtf Y2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MTY+OwotCQlyZWcgPSA8MHgwMjA0PjsKLQl9OwotCi0J bW1jaHNkYjJfZmNrOiBtbWNoc2RiMl9mY2tAMjA0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+Owot CQljb21wYXRpYmxlID0gInRpLHdhaXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18z MmtfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MTc+OwotCQlyZWcgPSA8MHgwMjA0PjsKLQl9Owot fTsKLQotJnByY21fY2xvY2tkb21haW5zIHsKLQlnZnhfY2xrZG06IGdmeF9jbGtkbSB7Ci0JCWNv bXBhdGlibGUgPSAidGksY2xvY2tkb21haW4iOwotCQljbG9ja3MgPSA8JmdmeF9pY2s+OwotCX07 Ci0KLQljb3JlX2wzX2Nsa2RtOiBjb3JlX2wzX2Nsa2RtIHsKLQkJY29tcGF0aWJsZSA9ICJ0aSxj bG9ja2RvbWFpbiI7Ci0JCWNsb2NrcyA9IDwmY2FtX2Zjaz4sIDwmdXNiX2Zjaz4sIDwmdXNiaHNf aWNrPjsKLQl9OwotCi0Jd2t1cF9jbGtkbTogd2t1cF9jbGtkbSB7Ci0JCWNvbXBhdGlibGUgPSAi dGksY2xvY2tkb21haW4iOwotCQljbG9ja3MgPSA8JmRwbGxfY2s+LCA8JmVtdWxfY2s+LCA8Jmdw dDFfaWNrPiwgPCZncGlvc19pY2s+LAotCQkJIDwmZ3Bpb3NfZmNrPiwgPCZtcHVfd2R0X2ljaz4s IDwmbXB1X3dkdF9mY2s+LAotCQkJIDwmc3luY18zMmtfaWNrPiwgPCZ3ZHQxX2ljaz4sIDwmb21h cGN0cmxfaWNrPiwKLQkJCSA8Jmljcl9pY2s+OwotCX07Ci0KLQlkc3NfY2xrZG06IGRzc19jbGtk bSB7Ci0JCWNvbXBhdGlibGUgPSAidGksY2xvY2tkb21haW4iOwotCQljbG9ja3MgPSA8JmRzc19p Y2s+LCA8JmRzc181NG1fZmNrPjsKLQl9OwotCi0JY29yZV9sNF9jbGtkbTogY29yZV9sNF9jbGtk bSB7Ci0JCWNvbXBhdGlibGUgPSAidGksY2xvY2tkb21haW4iOwotCQljbG9ja3MgPSA8JnNzaV9s NF9pY2s+LCA8JmdwdDJfaWNrPiwgPCZncHQzX2ljaz4sIDwmZ3B0NF9pY2s+LAotCQkJIDwmZ3B0 NV9pY2s+LCA8JmdwdDZfaWNrPiwgPCZncHQ3X2ljaz4sIDwmZ3B0OF9pY2s+LAotCQkJIDwmZ3B0 OV9pY2s+LCA8JmdwdDEwX2ljaz4sIDwmZ3B0MTFfaWNrPiwgPCZncHQxMl9pY2s+LAotCQkJIDwm bWNic3AxX2ljaz4sIDwmbWNic3AyX2ljaz4sIDwmbWNic3AzX2ljaz4sCi0JCQkgPCZtY2JzcDRf aWNrPiwgPCZtY2JzcDVfaWNrPiwgPCZtY3NwaTFfaWNrPiwKLQkJCSA8Jm1jc3BpMV9mY2s+LCA8 Jm1jc3BpMl9pY2s+LCA8Jm1jc3BpMl9mY2s+LAotCQkJIDwmbWNzcGkzX2ljaz4sIDwmbWNzcGkz X2Zjaz4sIDwmdWFydDFfaWNrPiwKLQkJCSA8JnVhcnQxX2Zjaz4sIDwmdWFydDJfaWNrPiwgPCZ1 YXJ0Ml9mY2s+LCA8JnVhcnQzX2ljaz4sCi0JCQkgPCZ1YXJ0M19mY2s+LCA8JmNhbV9pY2s+LCA8 Jm1haWxib3hlc19pY2s+LAotCQkJIDwmd2R0NF9pY2s+LCA8JndkdDRfZmNrPiwgPCZtc3Byb19p Y2s+LCA8Jm1zcHJvX2Zjaz4sCi0JCQkgPCZmYWNfaWNrPiwgPCZmYWNfZmNrPiwgPCZoZHFfaWNr PiwgPCZoZHFfZmNrPiwKLQkJCSA8JmkyYzFfaWNrPiwgPCZpMmNoczFfZmNrPiwgPCZpMmMyX2lj az4sIDwmaTJjaHMyX2Zjaz4sCi0JCQkgPCZkZXNfaWNrPiwgPCZzaGFfaWNrPiwgPCZybmdfaWNr PiwgPCZhZXNfaWNrPiwKLQkJCSA8JnBrYV9pY2s+LCA8Jm1tY2hzMV9pY2s+LCA8Jm1tY2hzMV9m Y2s+LAotCQkJIDwmbW1jaHMyX2ljaz4sIDwmbW1jaHMyX2Zjaz4sIDwmZ3BpbzVfaWNrPiwKLQkJ CSA8JmdwaW81X2Zjaz4sIDwmbWRtX2ludGNfaWNrPiwgPCZtbWNoc2RiMV9mY2s+LAotCQkJIDwm bW1jaHNkYjJfZmNrPjsKLQl9OwotCi0JbWRtX2Nsa2RtOiBtZG1fY2xrZG0gewotCQljb21wYXRp YmxlID0gInRpLGNsb2NrZG9tYWluIjsKLQkJY2xvY2tzID0gPCZtZG1fb3NjX2NrPjsKLQl9Owot fTsKLQotJmZ1bmNfOTZtX2NrIHsKLQljb21wYXRpYmxlID0gInRpLG11eC1jbG9jayI7Ci0JY2xv Y2tzID0gPCZhcGxsOTZfY2s+LCA8JmFsdF9jaz47Ci0JdGksYml0LXNoaWZ0ID0gPDQ+OwotCXJl ZyA9IDwweDA1NDA+OwotfTsKLQotJmRzcF9kaXZfZmNrIHsKLQl0aSxtYXgtZGl2ID0gPDQ+Owot CXRpLGluZGV4LXN0YXJ0cy1hdC1vbmU7Ci19OwotCi0mc3NpX3Nzcl9zc3RfZGl2X2ZjayB7Ci0J dGksbWF4LWRpdiA9IDw1PjsKLQl0aSxpbmRleC1zdGFydHMtYXQtb25lOwotfTsKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MzAtc2RwLmR0cyBiL2FyY2gvYXJt L2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MzAtc2RwLmR0cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMjA3MDcwNjc3ZTNhLi4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vYm9vdC9k dHMvdGkvb21hcC9vbWFwMjQzMC1zZHAuZHRzCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBA QAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIENvcHly aWdodCAoQykgMjAxMyBUZXhhcyBJbnN0cnVtZW50cyBJbmNvcnBvcmF0ZWQgLSBodHRwczovL3d3 dy50aS5jb20vCi0gKi8KLS9kdHMtdjEvOwotCi0jaW5jbHVkZSAib21hcDI0MzAuZHRzaSIKLQot LyB7Ci0JbW9kZWwgPSAiVEkgT01BUDI0MzAgU0RQIjsKLQljb21wYXRpYmxlID0gInRpLG9tYXAy NDMwLXNkcCIsICJ0aSxvbWFwMjQzMCIsICJ0aSxvbWFwMiI7Ci0KLQltZW1vcnlAODAwMDAwMDAg ewotCQlkZXZpY2VfdHlwZSA9ICJtZW1vcnkiOwotCQlyZWcgPSA8MHg4MDAwMDAwMCAweDgwMDAw MDA+OyAvKiAxMjggTUIgKi8KLQl9OwotfTsKLQotJmkyYzIgewotCWNsb2NrLWZyZXF1ZW5jeSA9 IDwxMDAwMDA+OwotCi0JdHdsOiB0d2xANDggewotCQlyZWcgPSA8MHg0OD47Ci0JCWludGVycnVw dHMgPSA8Nz47IC8qIFNZU19OSVJRIGNhc2NhZGVkIHRvIGludGMgKi8KLQl9OwotfTsKLQotI2lu Y2x1ZGUgInR3bDQwMzAuZHRzaSIKLQotJm1tYzEgewotCXZtbWMtc3VwcGx5ID0gPCZ2bW1jMT47 Ci0JYnVzLXdpZHRoID0gPDQ+OwotfTsKLQotJmdwbWMgewotCXJhbmdlcyA9IDw1IDAgMHgwODAw MDAwMCAweDAxMDAwMDAwPjsKLQlldGhlcm5ldEBncG1jIHsKLQkJY29tcGF0aWJsZSA9ICJzbXNj LGxhbjkxYzk0IjsKLQkJaW50ZXJydXB0LXBhcmVudCA9IDwmZ3BpbzU+OwotCQlpbnRlcnJ1cHRz ID0gPDIxIElSUV9UWVBFX0xFVkVMX0xPVz47CS8qIGdwaW8xNDkgKi8KLQkJcmVnID0gPDUgMHgz MDAgMHhmPjsKLQkJYmFuay13aWR0aCA9IDwyPjsKLQkJZ3BtYyxzeW5jLWNsay1wcyA9IDwwPjsK LQkJZ3BtYyxtdXgtYWRkLWRhdGEgPSA8Mj47Ci0JCWdwbWMsZGV2aWNlLXdpZHRoID0gPDE+Owot CQlncG1jLGN5Y2xlMmN5Y2xlLXNhbWVjc2VuOwotCQlncG1jLGN5Y2xlMmN5Y2xlLWRpZmZjc2Vu OwotCQlncG1jLGNzLW9uLW5zID0gPDY+OwotCQlncG1jLGNzLXJkLW9mZi1ucyA9IDwxODc+Owot CQlncG1jLGNzLXdyLW9mZi1ucyA9IDwxODc+OwotCQlncG1jLGFkdi1vbi1ucyA9IDwxOD47Ci0J CWdwbWMsYWR2LXJkLW9mZi1ucyA9IDw0OD47Ci0JCWdwbWMsYWR2LXdyLW9mZi1ucyA9IDw0OD47 Ci0JCWdwbWMsb2Utb24tbnMgPSA8NjA+OwotCQlncG1jLG9lLW9mZi1ucyA9IDwxNjk+OwotCQln cG1jLHdlLW9uLW5zID0gPDY2PjsKLQkJZ3BtYyx3ZS1vZmYtbnMgPSA8MTY5PjsKLQkJZ3BtYyxy ZC1jeWNsZS1ucyA9IDwxODc+OwotCQlncG1jLHdyLWN5Y2xlLW5zID0gPDE4Nz47Ci0JCWdwbWMs YWNjZXNzLW5zID0gPDE4Nz47Ci0JCWdwbWMscGFnZS1idXJzdC1hY2Nlc3MtbnMgPSA8MjQ+Owot CQlncG1jLGJ1cy10dXJuYXJvdW5kLW5zID0gPDI0PjsKLQkJZ3BtYyxjeWNsZTJjeWNsZS1kZWxh eS1ucyA9IDwyND47Ci0JCWdwbWMsd2FpdC1tb25pdG9yaW5nLW5zID0gPDA+OwotCQlncG1jLGNs ay1hY3RpdmF0aW9uLW5zID0gPDA+OwotCQlncG1jLHdyLWRhdGEtbXV4LWJ1cy1ucyA9IDwwPjsK LQkJZ3BtYyx3ci1hY2Nlc3MtbnMgPSA8MD47Ci0JfTsKLX07Ci0KZGlmZiAtLWdpdCBhL2FyY2gv YXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MzAuZHRzaSBiL2FyY2gvYXJtL2Jvb3QvZHRzL3Rp L29tYXAvb21hcDI0MzAuZHRzaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDFiZDQ3 MWY5MjIzLi4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFw MjQzMC5kdHNpCisrKyAvZGV2L251bGwKQEAgLTEsMzY2ICswLDAgQEAKLS8vIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBEZXZpY2UgVHJlZSBTb3VyY2UgZm9y IE9NQVAyNDN4IFNvQwotICoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBUZXhhcyBJbnN0cnVtZW50 cyBJbmNvcnBvcmF0ZWQgLSBodHRwczovL3d3dy50aS5jb20vCi0gKi8KLQotI2luY2x1ZGUgIm9t YXAyLmR0c2kiCi0KLS8gewotCWNvbXBhdGlibGUgPSAidGksb21hcDI0MzAiLCAidGksb21hcDIi OwotCi0Jb2NwIHsKLQkJbDRfd2t1cDogbDRfd2t1cEA0OTAwMDAwMCB7Ci0JCQljb21wYXRpYmxl ID0gInRpLG9tYXAyLWw0LXdrdXAiLCAic2ltcGxlLWJ1cyI7Ci0JCQkjYWRkcmVzcy1jZWxscyA9 IDwxPjsKLQkJCSNzaXplLWNlbGxzID0gPDE+OwotCQkJcmFuZ2VzID0gPDAgMHg0OTAwMDAwMCAw eDMxMDAwPjsKLQotCQkJcHJjbTogcHJjbUA2MDAwIHsKLQkJCQljb21wYXRpYmxlID0gInRpLG9t YXAyLXByY20iOwotCQkJCXJlZyA9IDwweDYwMDAgMHgxMDAwPjsKLQotCQkJCXByY21fY2xvY2tz OiBjbG9ja3MgewotCQkJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKLQkJCQkJI3NpemUtY2VsbHMg PSA8MD47Ci0JCQkJfTsKLQotCQkJCXByY21fY2xvY2tkb21haW5zOiBjbG9ja2RvbWFpbnMgewot CQkJCX07Ci0JCQl9OwotCi0JCQlzY206IHNjbUAyMDAwIHsKLQkJCQljb21wYXRpYmxlID0gInRp LG9tYXAyLXNjbSIsICJzaW1wbGUtYnVzIjsKLQkJCQlyZWcgPSA8MHgyMDAwIDB4MTAwMD47Ci0J CQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCQkJI3NpemUtY2VsbHMgPSA8MT47Ci0JCQkJI3Bp bmN0cmwtY2VsbHMgPSA8MT47Ci0JCQkJcmFuZ2VzID0gPDAgMHgyMDAwIDB4MTAwMD47Ci0KLQkJ CQlvbWFwMjQzMF9wbXg6IHBpbm11eEAzMCB7Ci0JCQkJCWNvbXBhdGlibGUgPSAidGksb21hcDI0 MzAtcGFkY29uZiIsCi0JCQkJCQkgICAgICJwaW5jdHJsLXNpbmdsZSI7Ci0JCQkJCXJlZyA9IDww eDMwIDB4MDE1ND47Ci0JCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkJCQkjc2l6ZS1jZWxs cyA9IDwwPjsKLQkJCQkJI3BpbmN0cmwtY2VsbHMgPSA8MT47Ci0JCQkJCXBpbmN0cmwtc2luZ2xl LHJlZ2lzdGVyLXdpZHRoID0gPDg+OwotCQkJCQlwaW5jdHJsLXNpbmdsZSxmdW5jdGlvbi1tYXNr ID0gPDB4M2Y+OwotCQkJCX07Ci0KLQkJCQlzY21fY29uZjogc2NtX2NvbmZAMjcwIHsKLQkJCQkJ Y29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1zY20tY29uZiIsICJzeXNjb24iLAotCQkJCQkJICAgICAi c2ltcGxlLWJ1cyI7Ci0JCQkJCXJlZyA9IDwweDI3MCAweDI0MD47Ci0JCQkJCSNhZGRyZXNzLWNl bGxzID0gPDE+OwotCQkJCQkjc2l6ZS1jZWxscyA9IDwxPjsKLQkJCQkJcmFuZ2VzID0gPDAgMHgy NzAgMHgyNDA+OwotCi0JCQkJCXNjbV9jbG9ja3M6IGNsb2NrcyB7Ci0JCQkJCQkjYWRkcmVzcy1j ZWxscyA9IDwxPjsKLQkJCQkJCSNzaXplLWNlbGxzID0gPDA+OwotCQkJCQl9OwotCi0JCQkJCXBi aWFzX3JlZ3VsYXRvcjogcGJpYXNfcmVndWxhdG9yQDIzMCB7Ci0JCQkJCQljb21wYXRpYmxlID0g InRpLHBiaWFzLW9tYXAyIiwgInRpLHBiaWFzLW9tYXAiOwotCQkJCQkJcmVnID0gPDB4MjMwIDB4 ND47Ci0JCQkJCQlzeXNjb24gPSA8JnNjbV9jb25mPjsKLQkJCQkJCXBiaWFzX21tY19yZWc6IHBi aWFzX21tY19vbWFwMjQzMCB7Ci0JCQkJCQkJcmVndWxhdG9yLW5hbWUgPSAicGJpYXNfbW1jX29t YXAyNDMwIjsKLQkJCQkJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKLQkJ CQkJCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMDAwMDAwPjsKLQkJCQkJCX07Ci0JCQkJ CX07Ci0JCQkJfTsKLQotCQkJCXNjbV9jbG9ja2RvbWFpbnM6IGNsb2NrZG9tYWlucyB7Ci0JCQkJ fTsKLQkJCX07Ci0KLQkJCXRhcmdldC1tb2R1bGVAMjAwMDAgewotCQkJCWNvbXBhdGlibGUgPSAi dGksc3lzYy1vbWFwMiIsICJ0aSxzeXNjIjsKLQkJCQlyZWcgPSA8MHgyMDAwMCAweDQ+LAotCQkJ CSAgICAgIDwweDIwMDA0IDB4ND47Ci0JCQkJcmVnLW5hbWVzID0gInJldiIsICJzeXNjIjsKLQkJ CQl0aSxzeXNjLXNpZGxlID0gPFNZU0NfSURMRV9GT1JDRT4sCi0JCQkJCQk8U1lTQ19JRExFX05P PjsKLQkJCQljbG9ja3MgPSA8JmZ1bmNfMzJrX2NrPjsKLQkJCQljbG9jay1uYW1lcyA9ICJmY2si OwotCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkJCSNzaXplLWNlbGxzID0gPDE+OwotCQkJ CXJhbmdlcyA9IDwweDAgMHgyMDAwMCAweDEwMDA+OwotCi0JCQkJY291bnRlcjMyazogY291bnRl ckAwIHsKLQkJCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwLWNvdW50ZXIzMmsiOwotCQkJCQlyZWcg PSA8MCAweDIwPjsKLQkJCQl9OwotCQkJfTsKLQkJfTsKLQotCQlncGlvMTogZ3Bpb0A0OTAwYzAw MCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyLWdwaW8iOwotCQkJcmVnID0gPDB4NDkwMGMw MDAgMHgyMDA+OwotCQkJaW50ZXJydXB0cyA9IDwyOT47Ci0JCQl0aSxod21vZHMgPSAiZ3BpbzEi OwotCQkJdGksZ3Bpby1hbHdheXMtb247Ci0JCQkjZ3Bpby1jZWxscyA9IDwyPjsKLQkJCWdwaW8t Y29udHJvbGxlcjsKLQkJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8Mj47Ci0JCQlpbnRlcnJ1cHQtY29u dHJvbGxlcjsKLQkJfTsKLQotCQlncGlvMjogZ3Bpb0A0OTAwZTAwMCB7Ci0JCQljb21wYXRpYmxl ID0gInRpLG9tYXAyLWdwaW8iOwotCQkJcmVnID0gPDB4NDkwMGUwMDAgMHgyMDA+OwotCQkJaW50 ZXJydXB0cyA9IDwzMD47Ci0JCQl0aSxod21vZHMgPSAiZ3BpbzIiOwotCQkJdGksZ3Bpby1hbHdh eXMtb247Ci0JCQkjZ3Bpby1jZWxscyA9IDwyPjsKLQkJCWdwaW8tY29udHJvbGxlcjsKLQkJCSNp bnRlcnJ1cHQtY2VsbHMgPSA8Mj47Ci0JCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKLQkJfTsKLQot CQlncGlvMzogZ3Bpb0A0OTAxMDAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyLWdwaW8i OwotCQkJcmVnID0gPDB4NDkwMTAwMDAgMHgyMDA+OwotCQkJaW50ZXJydXB0cyA9IDwzMT47Ci0J CQl0aSxod21vZHMgPSAiZ3BpbzMiOwotCQkJdGksZ3Bpby1hbHdheXMtb247Ci0JCQkjZ3Bpby1j ZWxscyA9IDwyPjsKLQkJCWdwaW8tY29udHJvbGxlcjsKLQkJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8 Mj47Ci0JCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKLQkJfTsKLQotCQlncGlvNDogZ3Bpb0A0OTAx MjAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyLWdwaW8iOwotCQkJcmVnID0gPDB4NDkw MTIwMDAgMHgyMDA+OwotCQkJaW50ZXJydXB0cyA9IDwzMj47Ci0JCQl0aSxod21vZHMgPSAiZ3Bp bzQiOwotCQkJdGksZ3Bpby1hbHdheXMtb247Ci0JCQkjZ3Bpby1jZWxscyA9IDwyPjsKLQkJCWdw aW8tY29udHJvbGxlcjsKLQkJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8Mj47Ci0JCQlpbnRlcnJ1cHQt Y29udHJvbGxlcjsKLQkJfTsKLQotCQlncGlvNTogZ3Bpb0A0ODBiNjAwMCB7Ci0JCQljb21wYXRp YmxlID0gInRpLG9tYXAyLWdwaW8iOwotCQkJcmVnID0gPDB4NDgwYjYwMDAgMHgyMDA+OwotCQkJ aW50ZXJydXB0cyA9IDwzMz47Ci0JCQl0aSxod21vZHMgPSAiZ3BpbzUiOwotCQkJI2dwaW8tY2Vs bHMgPSA8Mj47Ci0JCQlncGlvLWNvbnRyb2xsZXI7Ci0JCQkjaW50ZXJydXB0LWNlbGxzID0gPDI+ OwotCQkJaW50ZXJydXB0LWNvbnRyb2xsZXI7Ci0JCX07Ci0KLQkJZ3BtYzogZ3BtY0A2ZTAwMDAw MCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyNDMwLWdwbWMiOwotCQkJcmVnID0gPDB4NmUw MDAwMDAgMHgxMDAwPjsKLQkJCSNhZGRyZXNzLWNlbGxzID0gPDI+OwotCQkJI3NpemUtY2VsbHMg PSA8MT47Ci0JCQlpbnRlcnJ1cHRzID0gPDIwPjsKLQkJCWdwbWMsbnVtLWNzID0gPDg+OwotCQkJ Z3BtYyxudW0td2FpdHBpbnMgPSA8ND47Ci0JCQl0aSxod21vZHMgPSAiZ3BtYyI7Ci0JCQlpbnRl cnJ1cHQtY29udHJvbGxlcjsKLQkJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8Mj47Ci0JCQlncGlvLWNv bnRyb2xsZXI7Ci0JCQkjZ3Bpby1jZWxscyA9IDwyPjsKLQkJfTsKLQotCQltY2JzcDE6IG1jYnNw QDQ4MDc0MDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksb21hcDI0MzAtbWNic3AiOwotCQkJcmVn ID0gPDB4NDgwNzQwMDAgMHhmZj47Ci0JCQlyZWctbmFtZXMgPSAibXB1IjsKLQkJCWludGVycnVw dHMgPSA8NjQ+LCAvKiBPQ1AgY29tcGxpYW50IGludGVycnVwdCAqLwotCQkJCSAgICAgPDU5Piwg LyogVFggaW50ZXJydXB0ICovCi0JCQkJICAgICA8NjA+LCAvKiBSWCBpbnRlcnJ1cHQgKi8KLQkJ CQkgICAgIDw2MT47IC8qIFJYIG92ZXJmbG93IGludGVycnVwdCAqLwotCQkJaW50ZXJydXB0LW5h bWVzID0gImNvbW1vbiIsICJ0eCIsICJyeCIsICJyeF9vdmVyZmxvdyI7Ci0JCQl0aSxidWZmZXIt c2l6ZSA9IDwxMjg+OwotCQkJdGksaHdtb2RzID0gIm1jYnNwMSI7Ci0JCQlkbWFzID0gPCZzZG1h IDMxPiwKLQkJCSAgICAgICA8JnNkbWEgMzI+OwotCQkJZG1hLW5hbWVzID0gInR4IiwgInJ4IjsK LQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7Ci0JCX07Ci0KLQkJbWNic3AyOiBtY2JzcEA0ODA3NjAw MCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyNDMwLW1jYnNwIjsKLQkJCXJlZyA9IDwweDQ4 MDc2MDAwIDB4ZmY+OwotCQkJcmVnLW5hbWVzID0gIm1wdSI7Ci0JCQlpbnRlcnJ1cHRzID0gPDE2 PiwgLyogT0NQIGNvbXBsaWFudCBpbnRlcnJ1cHQgKi8KLQkJCQkgICAgIDw2Mj4sIC8qIFRYIGlu dGVycnVwdCAqLwotCQkJCSAgICAgPDYzPjsgLyogUlggaW50ZXJydXB0ICovCi0JCQlpbnRlcnJ1 cHQtbmFtZXMgPSAiY29tbW9uIiwgInR4IiwgInJ4IjsKLQkJCXRpLGJ1ZmZlci1zaXplID0gPDEy OD47Ci0JCQl0aSxod21vZHMgPSAibWNic3AyIjsKLQkJCWRtYXMgPSA8JnNkbWEgMzM+LAotCQkJ ICAgICAgIDwmc2RtYSAzND47Ci0JCQlkbWEtbmFtZXMgPSAidHgiLCAicngiOwotCQkJc3RhdHVz ID0gImRpc2FibGVkIjsKLQkJfTsKLQotCQltY2JzcDM6IG1jYnNwQDQ4MDhjMDAwIHsKLQkJCWNv bXBhdGlibGUgPSAidGksb21hcDI0MzAtbWNic3AiOwotCQkJcmVnID0gPDB4NDgwOGMwMDAgMHhm Zj47Ci0JCQlyZWctbmFtZXMgPSAibXB1IjsKLQkJCWludGVycnVwdHMgPSA8MTc+LCAvKiBPQ1Ag Y29tcGxpYW50IGludGVycnVwdCAqLwotCQkJCSAgICAgPDg5PiwgLyogVFggaW50ZXJydXB0ICov Ci0JCQkJICAgICA8OTA+OyAvKiBSWCBpbnRlcnJ1cHQgKi8KLQkJCWludGVycnVwdC1uYW1lcyA9 ICJjb21tb24iLCAidHgiLCAicngiOwotCQkJdGksYnVmZmVyLXNpemUgPSA8MTI4PjsKLQkJCXRp LGh3bW9kcyA9ICJtY2JzcDMiOwotCQkJZG1hcyA9IDwmc2RtYSAxNz4sCi0JCQkgICAgICAgPCZz ZG1hIDE4PjsKLQkJCWRtYS1uYW1lcyA9ICJ0eCIsICJyeCI7Ci0JCQlzdGF0dXMgPSAiZGlzYWJs ZWQiOwotCQl9OwotCi0JCW1jYnNwNDogbWNic3BANDgwOGUwMDAgewotCQkJY29tcGF0aWJsZSA9 ICJ0aSxvbWFwMjQzMC1tY2JzcCI7Ci0JCQlyZWcgPSA8MHg0ODA4ZTAwMCAweGZmPjsKLQkJCXJl Zy1uYW1lcyA9ICJtcHUiOwotCQkJaW50ZXJydXB0cyA9IDwxOD4sIC8qIE9DUCBjb21wbGlhbnQg aW50ZXJydXB0ICovCi0JCQkJICAgICA8NTQ+LCAvKiBUWCBpbnRlcnJ1cHQgKi8KLQkJCQkgICAg IDw1NT47IC8qIFJYIGludGVycnVwdCAqLwotCQkJaW50ZXJydXB0LW5hbWVzID0gImNvbW1vbiIs ICJ0eCIsICJyeCI7Ci0JCQl0aSxidWZmZXItc2l6ZSA9IDwxMjg+OwotCQkJdGksaHdtb2RzID0g Im1jYnNwNCI7Ci0JCQlkbWFzID0gPCZzZG1hIDE5PiwKLQkJCSAgICAgICA8JnNkbWEgMjA+Owot CQkJZG1hLW5hbWVzID0gInR4IiwgInJ4IjsKLQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7Ci0JCX07 Ci0KLQkJbWNic3A1OiBtY2JzcEA0ODA5NjAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAy NDMwLW1jYnNwIjsKLQkJCXJlZyA9IDwweDQ4MDk2MDAwIDB4ZmY+OwotCQkJcmVnLW5hbWVzID0g Im1wdSI7Ci0JCQlpbnRlcnJ1cHRzID0gPDE5PiwgLyogT0NQIGNvbXBsaWFudCBpbnRlcnJ1cHQg Ki8KLQkJCQkgICAgIDw4MT4sIC8qIFRYIGludGVycnVwdCAqLwotCQkJCSAgICAgPDgyPjsgLyog UlggaW50ZXJydXB0ICovCi0JCQlpbnRlcnJ1cHQtbmFtZXMgPSAiY29tbW9uIiwgInR4IiwgInJ4 IjsKLQkJCXRpLGJ1ZmZlci1zaXplID0gPDEyOD47Ci0JCQl0aSxod21vZHMgPSAibWNic3A1IjsK LQkJCWRtYXMgPSA8JnNkbWEgMjE+LAotCQkJICAgICAgIDwmc2RtYSAyMj47Ci0JCQlkbWEtbmFt ZXMgPSAidHgiLCAicngiOwotCQkJc3RhdHVzID0gImRpc2FibGVkIjsKLQkJfTsKLQotCQltbWMx OiBtbWNANDgwOWMwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1oc21tYyI7Ci0JCQly ZWcgPSA8MHg0ODA5YzAwMCAweDIwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDgzPjsKLQkJCXRpLGh3 bW9kcyA9ICJtbWMxIjsKLQkJCXRpLGR1YWwtdm9sdDsKLQkJCWRtYXMgPSA8JnNkbWEgNjE+LCA8 JnNkbWEgNjI+OwotCQkJZG1hLW5hbWVzID0gInR4IiwgInJ4IjsKLQkJCXBiaWFzLXN1cHBseSA9 IDwmcGJpYXNfbW1jX3JlZz47Ci0JCX07Ci0KLQkJbW1jMjogbW1jQDQ4MGI0MDAwIHsKLQkJCWNv bXBhdGlibGUgPSAidGksb21hcDItaHNtbWMiOwotCQkJcmVnID0gPDB4NDgwYjQwMDAgMHgyMDA+ OwotCQkJaW50ZXJydXB0cyA9IDw4Nj47Ci0JCQl0aSxod21vZHMgPSAibW1jMiI7Ci0JCQlkbWFz ID0gPCZzZG1hIDQ3PiwgPCZzZG1hIDQ4PjsKLQkJCWRtYS1uYW1lcyA9ICJ0eCIsICJyeCI7Ci0J CX07Ci0KLQkJbWFpbGJveDogbWFpbGJveEA0ODA5NDAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRp LG9tYXAyLW1haWxib3giOwotCQkJcmVnID0gPDB4NDgwOTQwMDAgMHgyMDA+OwotCQkJaW50ZXJy dXB0cyA9IDwyNj47Ci0JCQl0aSxod21vZHMgPSAibWFpbGJveCI7Ci0JCQkjbWJveC1jZWxscyA9 IDwxPjsKLQkJCXRpLG1ib3gtbnVtLXVzZXJzID0gPDQ+OwotCQkJdGksbWJveC1udW0tZmlmb3Mg PSA8Nj47Ci0JCQltYm94X2RzcDogbWJveC1kc3AgewotCQkJCXRpLG1ib3gtdHggPSA8MCAwIDA+ OwotCQkJCXRpLG1ib3gtcnggPSA8MSAwIDA+OwotCQkJfTsKLQkJfTsKLQotCQl0aW1lcjFfdGFy Z2V0OiB0YXJnZXQtbW9kdWxlQDQ5MDE4MDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1v bWFwMi10aW1lciIsICJ0aSxzeXNjIjsKLQkJCXJlZyA9IDwweDQ5MDE4MDAwIDB4ND4sCi0JCQkg ICAgICA8MHg0OTAxODAxMCAweDQ+LAotCQkJICAgICAgPDB4NDkwMTgwMTQgMHg0PjsKLQkJCXJl Zy1uYW1lcyA9ICJyZXYiLCAic3lzYyIsICJzeXNzIjsKLQkJCXRpLHN5c2MtbWFzayA9IDwoU1lT Q19PTUFQMl9DTE9DS0FDVElWSVRZIHwKLQkJCQkJIFNZU0NfT01BUDJfRU1VRlJFRSB8Ci0JCQkJ CSBTWVNDX09NQVAyX0VOQVdBS0VVUCB8Ci0JCQkJCSBTWVNDX09NQVAyX1NPRlRSRVNFVCB8Ci0J CQkJCSBTWVNDX09NQVAyX0FVVE9JRExFKT47Ci0JCQl0aSxzeXNjLXNpZGxlID0gPFNZU0NfSURM RV9GT1JDRT4sCi0JCQkJCTxTWVNDX0lETEVfTk8+LAotCQkJCQk8U1lTQ19JRExFX1NNQVJUPjsK LQkJCXRpLHN5c3MtbWFzayA9IDwxPjsKLQkJCWNsb2NrcyA9IDwmZ3B0MV9mY2s+LCA8JmdwdDFf aWNrPjsKLQkJCWNsb2NrLW5hbWVzID0gImZjayIsICJpY2siOwotCQkJI2FkZHJlc3MtY2VsbHMg PSA8MT47Ci0JCQkjc2l6ZS1jZWxscyA9IDwxPjsKLQkJCXJhbmdlcyA9IDwweDAgMHg0OTAxODAw MCAweDEwMDA+OwotCi0JCQl0aW1lcjE6IHRpbWVyQDAgewotCQkJCWNvbXBhdGlibGUgPSAidGks b21hcDI0MjAtdGltZXIiOwotCQkJCXJlZyA9IDwwIDB4NDAwPjsKLQkJCQlpbnRlcnJ1cHRzID0g PDM3PjsKLQkJCQl0aSx0aW1lci1hbHdvbjsKLQkJCX07Ci0JCX07Ci0KLQkJbWNzcGkzOiBzcGlA NDgwYjgwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1tY3NwaSI7Ci0JCQl0aSxod21v ZHMgPSAibWNzcGkzIjsKLQkJCXJlZyA9IDwweDQ4MGI4MDAwIDB4MTAwPjsKLQkJCWludGVycnVw dHMgPSA8OTE+OwotCQkJZG1hcyA9IDwmc2RtYSAxNSAmc2RtYSAxNiAmc2RtYSAyMyAmc2RtYSAy ND47Ci0JCQlkbWEtbmFtZXMgPSAidHgwIiwgInJ4MCIsICJ0eDEiLCAicngxIjsKLQkJfTsKLQot CQl1c2Jfb3RnX2hzOiB1c2Jfb3RnX2hzQDQ4MGFjMDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGks b21hcDItbXVzYiI7Ci0JCQl0aSxod21vZHMgPSAidXNiX290Z19ocyI7Ci0JCQlyZWcgPSA8MHg0 ODBhYzAwMCAweDEwMDA+OwotCQkJaW50ZXJydXB0cyA9IDw5Mz47Ci0JCX07Ci0KLQkJd2RfdGlt ZXIyOiB3YXRjaGRvZ0A0OTAxNjAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyLXdkdCI7 Ci0JCQl0aSxod21vZHMgPSAid2RfdGltZXIyIjsKLQkJCXJlZyA9IDwweDQ5MDE2MDAwIDB4ODA+ OwotCQl9OwotCX07Ci19OwotCi0mc2RtYSB7Ci0JY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQzMC1z ZG1hIiwgInRpLG9tYXAtc2RtYSI7Ci19OwotCi0maTJjMSB7Ci0JY29tcGF0aWJsZSA9ICJ0aSxv bWFwMjQzMC1pMmMiOwotfTsKLQotJmkyYzIgewotCWNvbXBhdGlibGUgPSAidGksb21hcDI0MzAt aTJjIjsKLX07Ci0KLSNpbmNsdWRlICJvbWFwMjR4eC1jbG9ja3MuZHRzaSIKLSNpbmNsdWRlICJv bWFwMjQzMC1jbG9ja3MuZHRzaSIKLQotLyogUHJlZmVycmVkIGFsd2F5cy1vbiB0aW1lciBmb3Ig Y2xvY2tldmVudCAqLwotJnRpbWVyMV90YXJnZXQgewotCXRpLG5vLXJlc2V0LW9uLWluaXQ7Ci0J dGksbm8taWRsZTsKLQl0aW1lckAwIHsKLQkJYXNzaWduZWQtY2xvY2tzID0gPCZncHQxX2Zjaz47 Ci0JCWFzc2lnbmVkLWNsb2NrLXBhcmVudHMgPSA8JmZ1bmNfMzJrX2NrPjsKLQl9OwotfTsKZGlm ZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0eHgtY2xvY2tzLmR0c2kg Yi9hcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNHh4LWNsb2Nrcy5kdHNpCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwN2FmODdlZGYwZTIuLjAwMDAwMDAwMDAwMAotLS0gYS9h cmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNHh4LWNsb2Nrcy5kdHNpCisrKyAvZGV2L251 bGwKQEAgLTEsMTI0MSArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MC1vbmx5Ci0vKgotICogRGV2aWNlIFRyZWUgU291cmNlIGZvciBPTUFQMjR4eCBjbG9jayBkYXRh Ci0gKgotICogQ29weXJpZ2h0IChDKSAyMDE0IFRleGFzIEluc3RydW1lbnRzLCBJbmMuCi0gKi8K LSZzY21fY2xvY2tzIHsKLQltY2JzcDFfbXV4X2ZjazogbWNic3AxX211eF9mY2tANCB7Ci0JCSNj bG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtbXV4LWNsb2Nr IjsKLQkJY2xvY2tzID0gPCZmdW5jXzk2bV9jaz4sIDwmbWNic3BfY2xrcz47Ci0JCXRpLGJpdC1z aGlmdCA9IDwyPjsKLQkJcmVnID0gPDB4ND47Ci0JfTsKLQotCW1jYnNwMV9mY2s6IG1jYnNwMV9m Y2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRl LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZtY2JzcDFfZ2F0ZV9mY2s+LCA8Jm1jYnNwMV9tdXhfZmNr PjsKLQl9OwotCi0JbWNic3AyX211eF9mY2s6IG1jYnNwMl9tdXhfZmNrQDQgewotCQkjY2xvY2st Y2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLW11eC1jbG9jayI7Ci0J CWNsb2NrcyA9IDwmZnVuY185Nm1fY2s+LCA8Jm1jYnNwX2Nsa3M+OwotCQl0aSxiaXQtc2hpZnQg PSA8Nj47Ci0JCXJlZyA9IDwweDQ+OwotCX07Ci0KLQltY2JzcDJfZmNrOiBtY2JzcDJfZmNrIHsK LQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9j ayI7Ci0JCWNsb2NrcyA9IDwmbWNic3AyX2dhdGVfZmNrPiwgPCZtY2JzcDJfbXV4X2Zjaz47Ci0J fTsKLX07Ci0KLSZwcmNtX2Nsb2NrcyB7Ci0JZnVuY18zMmtfY2s6IGZ1bmNfMzJrX2NrIHsKLQkJ I2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsKLQkJY2xv Y2stZnJlcXVlbmN5ID0gPDMyNzY4PjsKLQl9OwotCi0Jc2VjdXJlXzMya19jazogc2VjdXJlXzMy a19jayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJmaXhlZC1jbG9j ayI7Ci0JCWNsb2NrLWZyZXF1ZW5jeSA9IDwzMjc2OD47Ci0JfTsKLQotCXZpcnRfMTJtX2NrOiB2 aXJ0XzEybV9jayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJmaXhl ZC1jbG9jayI7Ci0JCWNsb2NrLWZyZXF1ZW5jeSA9IDwxMjAwMDAwMD47Ci0JfTsKLQotCXZpcnRf MTNtX2NrOiB2aXJ0XzEzbV9jayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJs ZSA9ICJmaXhlZC1jbG9jayI7Ci0JCWNsb2NrLWZyZXF1ZW5jeSA9IDwxMzAwMDAwMD47Ci0JfTsK LQotCXZpcnRfMTkyMDAwMDBfY2s6IHZpcnRfMTkyMDAwMDBfY2sgewotCQkjY2xvY2stY2VsbHMg PSA8MD47Ci0JCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xvY2siOwotCQljbG9jay1mcmVxdWVuY3kg PSA8MTkyMDAwMDA+OwotCX07Ci0KLQl2aXJ0XzI2bV9jazogdmlydF8yNm1fY2sgewotCQkjY2xv Y2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xvY2siOwotCQljbG9jay1m cmVxdWVuY3kgPSA8MjYwMDAwMDA+OwotCX07Ci0KLQlhcGxsc19jbGtpbl9jazogYXBsbHNfY2xr aW5fY2tANTQwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG11 eC1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmdmlydF8xOTIwMDAwMF9jaz4sIDwmdmlydF8yNm1fY2s+ LCA8JnZpcnRfMTNtX2NrPiwgPCZ2aXJ0XzEybV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyMz47 Ci0JCXJlZyA9IDwweDA1NDA+OwotCX07Ci0KLQlhcGxsc19jbGtpbl94Ml9jazogYXBsbHNfY2xr aW5feDJfY2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAiZml4ZWQt ZmFjdG9yLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZhcGxsc19jbGtpbl9jaz47Ci0JCWNsb2NrLW11 bHQgPSA8Mj47Ci0JCWNsb2NrLWRpdiA9IDwxPjsKLQl9OwotCi0Jb3NjX2NrOiBvc2NfY2tANjAg ewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksbXV4LWNsb2NrIjsK LQkJY2xvY2tzID0gPCZhcGxsc19jbGtpbl9jaz4sIDwmYXBsbHNfY2xraW5feDJfY2s+OwotCQl0 aSxiaXQtc2hpZnQgPSA8Nj47Ci0JCXJlZyA9IDwweDAwNjA+OwotCQl0aSxpbmRleC1zdGFydHMt YXQtb25lOwotCX07Ci0KLQlzeXNfY2s6IHN5c19ja0A2MCB7Ci0JCSNjbG9jay1jZWxscyA9IDww PjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxkaXZpZGVyLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZvc2Nf Y2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8Nj47Ci0JCXRpLG1heC1kaXYgPSA8Mz47Ci0JCXJlZyA9 IDwweDAwNjA+OwotCQl0aSxpbmRleC1zdGFydHMtYXQtb25lOwotCX07Ci0KLQlhbHRfY2s6IGFs dF9jayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJmaXhlZC1jbG9j ayI7Ci0JCWNsb2NrLWZyZXF1ZW5jeSA9IDw1NDAwMDAwMD47Ci0JfTsKLQotCW1jYnNwX2Nsa3M6 IG1jYnNwX2Nsa3MgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAiZml4 ZWQtY2xvY2siOwotCQljbG9jay1mcmVxdWVuY3kgPSA8MHgwPjsKLQl9OwotCi0JZHBsbF9jazog ZHBsbF9ja0A1MDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGks b21hcDItZHBsbC1jb3JlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZzeXNfY2s+LCA8JnN5c19jaz47 Ci0JCXJlZyA9IDwweDA1MDA+LCA8MHgwNTQwPjsKLQl9OwotCi0JYXBsbDk2X2NrOiBhcGxsOTZf Y2tANTAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAy LWFwbGwtY2xvY2siOwotCQljbG9ja3MgPSA8JnN5c19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwy PjsKLQkJdGksaWRsZXN0LXNoaWZ0ID0gPDg+OwotCQl0aSxjbG9jay1mcmVxdWVuY3kgPSA8OTYw MDAwMDA+OwotCQlyZWcgPSA8MHgwNTAwPiwgPDB4MDUzMD4sIDwweDA1MjA+OwotCX07Ci0KLQlh cGxsNTRfY2s6IGFwbGw1NF9ja0A1MDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBh dGlibGUgPSAidGksb21hcDItYXBsbC1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmc3lzX2NrPjsKLQkJ dGksYml0LXNoaWZ0ID0gPDY+OwotCQl0aSxpZGxlc3Qtc2hpZnQgPSA8OT47Ci0JCXRpLGNsb2Nr LWZyZXF1ZW5jeSA9IDw1NDAwMDAwMD47Ci0JCXJlZyA9IDwweDA1MDA+LCA8MHgwNTMwPiwgPDB4 MDUyMD47Ci0JfTsKLQotCWZ1bmNfNTRtX2NrOiBmdW5jXzU0bV9ja0A1NDAgewotCQkjY2xvY2st Y2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksbXV4LWNsb2NrIjsKLQkJY2xvY2tzID0g PCZhcGxsNTRfY2s+LCA8JmFsdF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDw1PjsKLQkJcmVnID0g PDB4MDU0MD47Ci0JfTsKLQotCWNvcmVfY2s6IGNvcmVfY2sgewotCQkjY2xvY2stY2VsbHMgPSA8 MD47Ci0JCWNvbXBhdGlibGUgPSAiZml4ZWQtZmFjdG9yLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZk cGxsX2NrPjsKLQkJY2xvY2stbXVsdCA9IDwxPjsKLQkJY2xvY2stZGl2ID0gPDE+OwotCX07Ci0K LQlmdW5jXzk2bV9jazogZnVuY185Nm1fY2tANTQwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+Owot CX07Ci0KLQlhcGxsOTZfZDJfY2s6IGFwbGw5Nl9kMl9jayB7Ci0JCSNjbG9jay1jZWxscyA9IDww PjsKLQkJY29tcGF0aWJsZSA9ICJmaXhlZC1mYWN0b3ItY2xvY2siOwotCQljbG9ja3MgPSA8JmFw bGw5Nl9jaz47Ci0JCWNsb2NrLW11bHQgPSA8MT47Ci0JCWNsb2NrLWRpdiA9IDwyPjsKLQl9Owot Ci0JZnVuY180OG1fY2s6IGZ1bmNfNDhtX2NrQDU0MCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsK LQkJY29tcGF0aWJsZSA9ICJ0aSxtdXgtY2xvY2siOwotCQljbG9ja3MgPSA8JmFwbGw5Nl9kMl9j az4sIDwmYWx0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDM+OwotCQlyZWcgPSA8MHgwNTQwPjsK LQl9OwotCi0JZnVuY18xMm1fY2s6IGZ1bmNfMTJtX2NrIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+ OwotCQljb21wYXRpYmxlID0gImZpeGVkLWZhY3Rvci1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVu Y180OG1fY2s+OwotCQljbG9jay1tdWx0ID0gPDE+OwotCQljbG9jay1kaXYgPSA8ND47Ci0JfTsK LQotCXN5c19jbGtvdXRfc3JjX2dhdGU6IHN5c19jbGtvdXRfc3JjX2dhdGVANzAgewotCQkjY2xv Y2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLW5vLXdhaXQtZ2F0 ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDw3PjsK LQkJcmVnID0gPDB4MDA3MD47Ci0JfTsKLQotCXN5c19jbGtvdXRfc3JjX211eDogc3lzX2Nsa291 dF9zcmNfbXV4QDcwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRp LGNvbXBvc2l0ZS1tdXgtY2xvY2siOwotCQljbG9ja3MgPSA8JmNvcmVfY2s+LCA8JnN5c19jaz4s IDwmZnVuY185Nm1fY2s+LCA8JmZ1bmNfNTRtX2NrPjsKLQkJcmVnID0gPDB4MDA3MD47Ci0JfTsK LQotCXN5c19jbGtvdXRfc3JjOiBzeXNfY2xrb3V0X3NyYyB7Ci0JCSNjbG9jay1jZWxscyA9IDww PjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JnN5 c19jbGtvdXRfc3JjX2dhdGU+LCA8JnN5c19jbGtvdXRfc3JjX211eD47Ci0JfTsKLQotCXN5c19j bGtvdXQ6IHN5c19jbGtvdXRANzAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGli bGUgPSAidGksZGl2aWRlci1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmc3lzX2Nsa291dF9zcmM+Owot CQl0aSxiaXQtc2hpZnQgPSA8Mz47Ci0JCXRpLG1heC1kaXYgPSA8NjQ+OwotCQlyZWcgPSA8MHgw MDcwPjsKLQkJdGksaW5kZXgtcG93ZXItb2YtdHdvOwotCX07Ci0KLQllbXVsX2NrOiBlbXVsX2Nr QDc4IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGdhdGUtY2xv Y2siOwotCQljbG9ja3MgPSA8JmZ1bmNfNTRtX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDA+Owot CQlyZWcgPSA8MHgwMDc4PjsKLQl9OwotCi0JbXB1X2NrOiBtcHVfY2tAMTQwIHsKLQkJI2Nsb2Nr LWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGRpdmlkZXItY2xvY2siOwotCQljbG9j a3MgPSA8JmNvcmVfY2s+OwotCQl0aSxtYXgtZGl2ID0gPDMxPjsKLQkJcmVnID0gPDB4MDE0MD47 Ci0JCXRpLGluZGV4LXN0YXJ0cy1hdC1vbmU7Ci0JfTsKLQotCWRzcF9nYXRlX2ZjazogZHNwX2dh dGVfZmNrQDgwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxj b21wb3NpdGUtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9jaz47Ci0JCXRpLGJpdC1z aGlmdCA9IDwwPjsKLQkJcmVnID0gPDB4MDgwMD47Ci0JfTsKLQotCWRzcF9kaXZfZmNrOiBkc3Bf ZGl2X2Zja0A4NDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGks Y29tcG9zaXRlLWRpdmlkZXItY2xvY2siOwotCQljbG9ja3MgPSA8JmNvcmVfY2s+OwotCQlyZWcg PSA8MHgwODQwPjsKLQl9OwotCi0JZHNwX2ZjazogZHNwX2ZjayB7Ci0JCSNjbG9jay1jZWxscyA9 IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2siOwotCQljbG9ja3MgPSA8 JmRzcF9nYXRlX2Zjaz4sIDwmZHNwX2Rpdl9mY2s+OwotCX07Ci0KLQljb3JlX2wzX2NrOiBjb3Jl X2wzX2NrQDI0MCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxk aXZpZGVyLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2NrPjsKLQkJdGksbWF4LWRpdiA9IDwz MT47Ci0JCXJlZyA9IDwweDAyNDA+OwotCQl0aSxpbmRleC1zdGFydHMtYXQtb25lOwotCX07Ci0K LQlnZnhfM2RfZ2F0ZV9mY2s6IGdmeF8zZF9nYXRlX2Zja0AzMDAgewotCQkjY2xvY2stY2VsbHMg PSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWdhdGUtY2xvY2siOwotCQljbG9j a3MgPSA8JmNvcmVfbDNfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8Mj47Ci0JCXJlZyA9IDwweDAz MDA+OwotCX07Ci0KLQlnZnhfM2RfZGl2X2ZjazogZ2Z4XzNkX2Rpdl9mY2tAMzQwIHsKLQkJI2Ns b2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1kaXZpZGVyLWNs b2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2wzX2NrPjsKLQkJdGksbWF4LWRpdiA9IDw0PjsKLQkJ cmVnID0gPDB4MDM0MD47Ci0JCXRpLGluZGV4LXN0YXJ0cy1hdC1vbmU7Ci0JfTsKLQotCWdmeF8z ZF9mY2s6IGdmeF8zZF9mY2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUg PSAidGksY29tcG9zaXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZnZnhfM2RfZ2F0ZV9mY2s+LCA8 JmdmeF8zZF9kaXZfZmNrPjsKLQl9OwotCi0JZ2Z4XzJkX2dhdGVfZmNrOiBnZnhfMmRfZ2F0ZV9m Y2tAMzAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBv c2l0ZS1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2wzX2NrPjsKLQkJdGksYml0LXNo aWZ0ID0gPDE+OwotCQlyZWcgPSA8MHgwMzAwPjsKLQl9OwotCi0JZ2Z4XzJkX2Rpdl9mY2s6IGdm eF8yZF9kaXZfZmNrQDM0MCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9 ICJ0aSxjb21wb3NpdGUtZGl2aWRlci1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9sM19jaz47 Ci0JCXRpLG1heC1kaXYgPSA8ND47Ci0JCXJlZyA9IDwweDAzNDA+OwotCQl0aSxpbmRleC1zdGFy dHMtYXQtb25lOwotCX07Ci0KLQlnZnhfMmRfZmNrOiBnZnhfMmRfZmNrIHsKLQkJI2Nsb2NrLWNl bGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNsb2Nr cyA9IDwmZ2Z4XzJkX2dhdGVfZmNrPiwgPCZnZnhfMmRfZGl2X2Zjaz47Ci0JfTsKLQotCWdmeF9p Y2s6IGdmeF9pY2tAMzEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0g InRpLHdhaXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9sM19jaz47Ci0JCXRpLGJp dC1zaGlmdCA9IDwwPjsKLQkJcmVnID0gPDB4MDMxMD47Ci0JfTsKLQotCWw0X2NrOiBsNF9ja0Ay NDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksZGl2aWRlci1j bG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9sM19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDw1PjsK LQkJdGksbWF4LWRpdiA9IDwzPjsKLQkJcmVnID0gPDB4MDI0MD47Ci0JCXRpLGluZGV4LXN0YXJ0 cy1hdC1vbmU7Ci0JfTsKLQotCWRzc19pY2s6IGRzc19pY2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxz ID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLW5vLXdhaXQtaW50ZXJmYWNlLWNsb2Nr IjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwwPjsKLQkJcmVnID0g PDB4MDIxMD47Ci0JfTsKLQotCWRzczFfZ2F0ZV9mY2s6IGRzczFfZ2F0ZV9mY2tAMjAwIHsKLQkJ I2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1uby13YWl0 LWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmNvcmVfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8 MD47Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07Ci0KLQljb3JlX2QyX2NrOiBjb3JlX2QyX2NrIHsK LQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gImZpeGVkLWZhY3Rvci1jbG9j ayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9jaz47Ci0JCWNsb2NrLW11bHQgPSA8MT47Ci0JCWNsb2Nr LWRpdiA9IDwyPjsKLQl9OwotCi0JY29yZV9kM19jazogY29yZV9kM19jayB7Ci0JCSNjbG9jay1j ZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJmaXhlZC1mYWN0b3ItY2xvY2siOwotCQljbG9j a3MgPSA8JmNvcmVfY2s+OwotCQljbG9jay1tdWx0ID0gPDE+OwotCQljbG9jay1kaXYgPSA8Mz47 Ci0JfTsKLQotCWNvcmVfZDRfY2s6IGNvcmVfZDRfY2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47 Ci0JCWNvbXBhdGlibGUgPSAiZml4ZWQtZmFjdG9yLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3Jl X2NrPjsKLQkJY2xvY2stbXVsdCA9IDwxPjsKLQkJY2xvY2stZGl2ID0gPDQ+OwotCX07Ci0KLQlj b3JlX2Q1X2NrOiBjb3JlX2Q1X2NrIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRp YmxlID0gImZpeGVkLWZhY3Rvci1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9jaz47Ci0JCWNs b2NrLW11bHQgPSA8MT47Ci0JCWNsb2NrLWRpdiA9IDw1PjsKLQl9OwotCi0JY29yZV9kNl9jazog Y29yZV9kNl9jayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJmaXhl ZC1mYWN0b3ItY2xvY2siOwotCQljbG9ja3MgPSA8JmNvcmVfY2s+OwotCQljbG9jay1tdWx0ID0g PDE+OwotCQljbG9jay1kaXYgPSA8Nj47Ci0JfTsKLQotCWR1bW15X2NrOiBkdW1teV9jayB7Ci0J CSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJmaXhlZC1jbG9jayI7Ci0JCWNs b2NrLWZyZXF1ZW5jeSA9IDwwPjsKLQl9OwotCi0JY29yZV9kOF9jazogY29yZV9kOF9jayB7Ci0J CSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJmaXhlZC1mYWN0b3ItY2xvY2si OwotCQljbG9ja3MgPSA8JmNvcmVfY2s+OwotCQljbG9jay1tdWx0ID0gPDE+OwotCQljbG9jay1k aXYgPSA8OD47Ci0JfTsKLQotCWNvcmVfZDlfY2s6IGNvcmVfZDlfY2sgewotCQkjY2xvY2stY2Vs bHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAiZml4ZWQtZmFjdG9yLWNsb2NrIjsKLQkJY2xvY2tz ID0gPCZjb3JlX2NrPjsKLQkJY2xvY2stbXVsdCA9IDwxPjsKLQkJY2xvY2stZGl2ID0gPDk+Owot CX07Ci0KLQljb3JlX2QxMl9jazogY29yZV9kMTJfY2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47 Ci0JCWNvbXBhdGlibGUgPSAiZml4ZWQtZmFjdG9yLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3Jl X2NrPjsKLQkJY2xvY2stbXVsdCA9IDwxPjsKLQkJY2xvY2stZGl2ID0gPDEyPjsKLQl9OwotCi0J Y29yZV9kMTZfY2s6IGNvcmVfZDE2X2NrIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21w YXRpYmxlID0gImZpeGVkLWZhY3Rvci1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9jaz47Ci0J CWNsb2NrLW11bHQgPSA8MT47Ci0JCWNsb2NrLWRpdiA9IDwxNj47Ci0JfTsKLQotCWRzczFfbXV4 X2ZjazogZHNzMV9tdXhfZmNrQDI0MCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0 aWJsZSA9ICJ0aSxjb21wb3NpdGUtbXV4LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZzeXNfY2s+LCA8 JmNvcmVfY2s+LCA8JmNvcmVfZDJfY2s+LCA8JmNvcmVfZDNfY2s+LCA8JmNvcmVfZDRfY2s+LCA8 JmNvcmVfZDVfY2s+LCA8JmNvcmVfZDZfY2s+LCA8JmNvcmVfZDhfY2s+LCA8JmNvcmVfZDlfY2s+ LCA8JmNvcmVfZDEyX2NrPiwgPCZjb3JlX2QxNl9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDw4PjsK LQkJcmVnID0gPDB4MDI0MD47Ci0JfTsKLQotCWRzczFfZmNrOiBkc3MxX2ZjayB7Ci0JCSNjbG9j ay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2siOwotCQlj bG9ja3MgPSA8JmRzczFfZ2F0ZV9mY2s+LCA8JmRzczFfbXV4X2Zjaz47Ci0JfTsKLQotCWRzczJf Z2F0ZV9mY2s6IGRzczJfZ2F0ZV9mY2tAMjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQlj b21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1uby13YWl0LWdhdGUtY2xvY2siOwotCQljbG9ja3Mg PSA8JmZ1bmNfNDhtX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDE+OwotCQlyZWcgPSA8MHgwMjAw PjsKLQl9OwotCi0JZHNzMl9tdXhfZmNrOiBkc3MyX211eF9mY2tAMjQwIHsKLQkJI2Nsb2NrLWNl bGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1tdXgtY2xvY2siOwotCQlj bG9ja3MgPSA8JnN5c19jaz4sIDwmZnVuY180OG1fY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MTM+ OwotCQlyZWcgPSA8MHgwMjQwPjsKLQl9OwotCi0JZHNzMl9mY2s6IGRzczJfZmNrIHsKLQkJI2Ns b2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0J CWNsb2NrcyA9IDwmZHNzMl9nYXRlX2Zjaz4sIDwmZHNzMl9tdXhfZmNrPjsKLQl9OwotCi0JZHNz XzU0bV9mY2s6IGRzc181NG1fZmNrQDIwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29t cGF0aWJsZSA9ICJ0aSx3YWl0LWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfNTRtX2Nr PjsKLQkJdGksYml0LXNoaWZ0ID0gPDI+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0Jc3Np X3Nzcl9zc3RfZ2F0ZV9mY2s6IHNzaV9zc3Jfc3N0X2dhdGVfZmNrQDIwNCB7Ci0JCSNjbG9jay1j ZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtZ2F0ZS1jbG9jayI7Ci0J CWNsb2NrcyA9IDwmY29yZV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxPjsKLQkJcmVnID0gPDB4 MDIwND47Ci0JfTsKLQotCXNzaV9zc3Jfc3N0X2Rpdl9mY2s6IHNzaV9zc3Jfc3N0X2Rpdl9mY2tA MjQwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0 ZS1kaXZpZGVyLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2NrPjsKLQkJdGksYml0LXNoaWZ0 ID0gPDIwPjsKLQkJcmVnID0gPDB4MDI0MD47Ci0JfTsKLQotCXNzaV9zc3Jfc3N0X2Zjazogc3Np X3Nzcl9zc3RfZmNrIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRp LGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmc3NpX3Nzcl9zc3RfZ2F0ZV9mY2s+LCA8 JnNzaV9zc3Jfc3N0X2Rpdl9mY2s+OwotCX07Ci0KLQl1c2JfbDRfZ2F0ZV9pY2s6IHVzYl9sNF9n YXRlX2lja0AyMTQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGks Y29tcG9zaXRlLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9sM19jaz47Ci0J CXRpLGJpdC1zaGlmdCA9IDwwPjsKLQkJcmVnID0gPDB4MDIxND47Ci0JfTsKLQotCXVzYl9sNF9k aXZfaWNrOiB1c2JfbDRfZGl2X2lja0AyNDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNv bXBhdGlibGUgPSAidGksY29tcG9zaXRlLWRpdmlkZXItY2xvY2siOwotCQljbG9ja3MgPSA8JmNv cmVfbDNfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MjU+OwotCQlyZWcgPSA8MHgwMjQwPjsKLQkJ dGksZGl2aWRlcnMgPSA8MD4sIDwxPiwgPDI+LCA8MD4sIDw0PjsKLQl9OwotCi0JdXNiX2w0X2lj azogdXNiX2w0X2ljayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0 aSxjb21wb3NpdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JnVzYl9sNF9nYXRlX2ljaz4sIDwmdXNi X2w0X2Rpdl9pY2s+OwotCX07Ci0KLQlzc2lfbDRfaWNrOiBzc2lfbDRfaWNrQDIxNCB7Ci0JCSNj bG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xv Y2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDE+OwotCQlyZWcg PSA8MHgwMjE0PjsKLQl9OwotCi0JZ3B0MV9pY2s6IGdwdDFfaWNrQDQxMCB7Ci0JCSNjbG9jay1j ZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwot CQljbG9ja3MgPSA8JnN5c19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwwPjsKLQkJcmVnID0gPDB4 MDQxMD47Ci0JfTsKLQotCWdwdDFfZ2F0ZV9mY2s6IGdwdDFfZ2F0ZV9mY2tANDAwIHsKLQkJI2Ns b2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1nYXRlLWNsb2Nr IjsKLQkJY2xvY2tzID0gPCZmdW5jXzMya19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwwPjsKLQkJ cmVnID0gPDB4MDQwMD47Ci0JfTsKLQotCWdwdDFfbXV4X2ZjazogZ3B0MV9tdXhfZmNrQDQ0MCB7 Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtbXV4 LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzMya19jaz4sIDwmc3lzX2NrPiwgPCZhbHRfY2s+ OwotCQlyZWcgPSA8MHgwNDQwPjsKLQl9OwotCi0JZ3B0MV9mY2s6IGdwdDFfZmNrIHsKLQkJI2Ns b2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0J CWNsb2NrcyA9IDwmZ3B0MV9nYXRlX2Zjaz4sIDwmZ3B0MV9tdXhfZmNrPjsKLQl9OwotCi0JZ3B0 Ml9pY2s6IGdwdDJfaWNrQDIxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJs ZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJ dGksYml0LXNoaWZ0ID0gPDQ+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JZ3B0Ml9nYXRl X2ZjazogZ3B0Ml9nYXRlX2Zja0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBh dGlibGUgPSAidGksY29tcG9zaXRlLWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMzJr X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDQ+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0J Z3B0Ml9tdXhfZmNrOiBncHQyX211eF9mY2tAMjQ0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+Owot CQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1tdXgtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1 bmNfMzJrX2NrPiwgPCZzeXNfY2s+LCA8JmFsdF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyPjsK LQkJcmVnID0gPDB4MDI0ND47Ci0JfTsKLQotCWdwdDJfZmNrOiBncHQyX2ZjayB7Ci0JCSNjbG9j ay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2siOwotCQlj bG9ja3MgPSA8JmdwdDJfZ2F0ZV9mY2s+LCA8JmdwdDJfbXV4X2Zjaz47Ci0JfTsKLQotCWdwdDNf aWNrOiBncHQzX2lja0AyMTAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUg PSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRp LGJpdC1zaGlmdCA9IDw1PjsKLQkJcmVnID0gPDB4MDIxMD47Ci0JfTsKLQotCWdwdDNfZ2F0ZV9m Y2s6IGdwdDNfZ2F0ZV9mY2tAMjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRp YmxlID0gInRpLGNvbXBvc2l0ZS1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzMya19j az47Ci0JCXRpLGJpdC1zaGlmdCA9IDw1PjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCWdw dDNfbXV4X2ZjazogZ3B0M19tdXhfZmNrQDI0NCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJ Y29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtbXV4LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5j XzMya19jaz4sIDwmc3lzX2NrPiwgPCZhbHRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8ND47Ci0J CXJlZyA9IDwweDAyNDQ+OwotCX07Ci0KLQlncHQzX2ZjazogZ3B0M19mY2sgewotCQkjY2xvY2st Y2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWNsb2NrIjsKLQkJY2xv Y2tzID0gPCZncHQzX2dhdGVfZmNrPiwgPCZncHQzX211eF9mY2s+OwotCX07Ci0KLQlncHQ0X2lj azogZ3B0NF9pY2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0g InRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxi aXQtc2hpZnQgPSA8Nj47Ci0JCXJlZyA9IDwweDAyMTA+OwotCX07Ci0KLQlncHQ0X2dhdGVfZmNr OiBncHQ0X2dhdGVfZmNrQDIwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJs ZSA9ICJ0aSxjb21wb3NpdGUtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtfY2s+ OwotCQl0aSxiaXQtc2hpZnQgPSA8Nj47Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07Ci0KLQlncHQ0 X211eF9mY2s6IGdwdDRfbXV4X2Zja0AyNDQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNv bXBhdGlibGUgPSAidGksY29tcG9zaXRlLW11eC1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18z MmtfY2s+LCA8JnN5c19jaz4sIDwmYWx0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDY+OwotCQly ZWcgPSA8MHgwMjQ0PjsKLQl9OwotCi0JZ3B0NF9mY2s6IGdwdDRfZmNrIHsKLQkJI2Nsb2NrLWNl bGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNsb2Nr cyA9IDwmZ3B0NF9nYXRlX2Zjaz4sIDwmZ3B0NF9tdXhfZmNrPjsKLQl9OwotCi0JZ3B0NV9pY2s6 IGdwdDVfaWNrQDIxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0 aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0 LXNoaWZ0ID0gPDc+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JZ3B0NV9nYXRlX2Zjazog Z3B0NV9nYXRlX2Zja0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUg PSAidGksY29tcG9zaXRlLWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMzJrX2NrPjsK LQkJdGksYml0LXNoaWZ0ID0gPDc+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JZ3B0NV9t dXhfZmNrOiBncHQ1X211eF9mY2tAMjQ0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21w YXRpYmxlID0gInRpLGNvbXBvc2l0ZS1tdXgtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMzJr X2NrPiwgPCZzeXNfY2s+LCA8JmFsdF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDw4PjsKLQkJcmVn ID0gPDB4MDI0ND47Ci0JfTsKLQotCWdwdDVfZmNrOiBncHQ1X2ZjayB7Ci0JCSNjbG9jay1jZWxs cyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2siOwotCQljbG9ja3Mg PSA8JmdwdDVfZ2F0ZV9mY2s+LCA8JmdwdDVfbXV4X2Zjaz47Ci0JfTsKLQotCWdwdDZfaWNrOiBn cHQ2X2lja0AyMTAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGks b21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1z aGlmdCA9IDw4PjsKLQkJcmVnID0gPDB4MDIxMD47Ci0JfTsKLQotCWdwdDZfZ2F0ZV9mY2s6IGdw dDZfZ2F0ZV9mY2tAMjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0g InRpLGNvbXBvc2l0ZS1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzMya19jaz47Ci0J CXRpLGJpdC1zaGlmdCA9IDw4PjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCWdwdDZfbXV4 X2ZjazogZ3B0Nl9tdXhfZmNrQDI0NCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0 aWJsZSA9ICJ0aSxjb21wb3NpdGUtbXV4LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzMya19j az4sIDwmc3lzX2NrPiwgPCZhbHRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MTA+OwotCQlyZWcg PSA8MHgwMjQ0PjsKLQl9OwotCi0JZ3B0Nl9mY2s6IGdwdDZfZmNrIHsKLQkJI2Nsb2NrLWNlbGxz ID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9 IDwmZ3B0Nl9nYXRlX2Zjaz4sIDwmZ3B0Nl9tdXhfZmNrPjsKLQl9OwotCi0JZ3B0N19pY2s6IGdw dDdfaWNrQDIxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxv bWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0LXNo aWZ0ID0gPDk+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JZ3B0N19nYXRlX2ZjazogZ3B0 N19nYXRlX2Zja0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAi dGksY29tcG9zaXRlLWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMzJrX2NrPjsKLQkJ dGksYml0LXNoaWZ0ID0gPDk+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JZ3B0N19tdXhf ZmNrOiBncHQ3X211eF9mY2tAMjQ0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRp YmxlID0gInRpLGNvbXBvc2l0ZS1tdXgtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMzJrX2Nr PiwgPCZzeXNfY2s+LCA8JmFsdF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxMj47Ci0JCXJlZyA9 IDwweDAyNDQ+OwotCX07Ci0KLQlncHQ3X2ZjazogZ3B0N19mY2sgewotCQkjY2xvY2stY2VsbHMg PSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWNsb2NrIjsKLQkJY2xvY2tzID0g PCZncHQ3X2dhdGVfZmNrPiwgPCZncHQ3X211eF9mY2s+OwotCX07Ci0KLQlncHQ4X2ljazogZ3B0 OF9pY2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9t YXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hp ZnQgPSA8MTA+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JZ3B0OF9nYXRlX2ZjazogZ3B0 OF9nYXRlX2Zja0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAi dGksY29tcG9zaXRlLWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMzJrX2NrPjsKLQkJ dGksYml0LXNoaWZ0ID0gPDEwPjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCWdwdDhfbXV4 X2ZjazogZ3B0OF9tdXhfZmNrQDI0NCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0 aWJsZSA9ICJ0aSxjb21wb3NpdGUtbXV4LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzMya19j az4sIDwmc3lzX2NrPiwgPCZhbHRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MTQ+OwotCQlyZWcg PSA8MHgwMjQ0PjsKLQl9OwotCi0JZ3B0OF9mY2s6IGdwdDhfZmNrIHsKLQkJI2Nsb2NrLWNlbGxz ID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9 IDwmZ3B0OF9nYXRlX2Zjaz4sIDwmZ3B0OF9tdXhfZmNrPjsKLQl9OwotCi0JZ3B0OV9pY2s6IGdw dDlfaWNrQDIxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxv bWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0LXNo aWZ0ID0gPDExPjsKLQkJcmVnID0gPDB4MDIxMD47Ci0JfTsKLQotCWdwdDlfZ2F0ZV9mY2s6IGdw dDlfZ2F0ZV9mY2tAMjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0g InRpLGNvbXBvc2l0ZS1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzMya19jaz47Ci0J CXRpLGJpdC1zaGlmdCA9IDwxMT47Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07Ci0KLQlncHQ5X211 eF9mY2s6IGdwdDlfbXV4X2Zja0AyNDQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBh dGlibGUgPSAidGksY29tcG9zaXRlLW11eC1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtf Y2s+LCA8JnN5c19jaz4sIDwmYWx0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDE2PjsKLQkJcmVn ID0gPDB4MDI0ND47Ci0JfTsKLQotCWdwdDlfZmNrOiBncHQ5X2ZjayB7Ci0JCSNjbG9jay1jZWxs cyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2siOwotCQljbG9ja3Mg PSA8JmdwdDlfZ2F0ZV9mY2s+LCA8JmdwdDlfbXV4X2Zjaz47Ci0JfTsKLQotCWdwdDEwX2ljazog Z3B0MTBfaWNrQDIxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0 aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0 LXNoaWZ0ID0gPDEyPjsKLQkJcmVnID0gPDB4MDIxMD47Ci0JfTsKLQotCWdwdDEwX2dhdGVfZmNr OiBncHQxMF9nYXRlX2Zja0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGli bGUgPSAidGksY29tcG9zaXRlLWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMzJrX2Nr PjsKLQkJdGksYml0LXNoaWZ0ID0gPDEyPjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCWdw dDEwX211eF9mY2s6IGdwdDEwX211eF9mY2tAMjQ0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+Owot CQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1tdXgtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1 bmNfMzJrX2NrPiwgPCZzeXNfY2s+LCA8JmFsdF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxOD47 Ci0JCXJlZyA9IDwweDAyNDQ+OwotCX07Ci0KLQlncHQxMF9mY2s6IGdwdDEwX2ZjayB7Ci0JCSNj bG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2siOwot CQljbG9ja3MgPSA8JmdwdDEwX2dhdGVfZmNrPiwgPCZncHQxMF9tdXhfZmNrPjsKLQl9OwotCi0J Z3B0MTFfaWNrOiBncHQxMV9pY2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21w YXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+ OwotCQl0aSxiaXQtc2hpZnQgPSA8MTM+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JZ3B0 MTFfZ2F0ZV9mY2s6IGdwdDExX2dhdGVfZmNrQDIwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsK LQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwm ZnVuY18zMmtfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MTM+OwotCQlyZWcgPSA8MHgwMjAwPjsK LQl9OwotCi0JZ3B0MTFfbXV4X2ZjazogZ3B0MTFfbXV4X2Zja0AyNDQgewotCQkjY2xvY2stY2Vs bHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLW11eC1jbG9jayI7Ci0JCWNs b2NrcyA9IDwmZnVuY18zMmtfY2s+LCA8JnN5c19jaz4sIDwmYWx0X2NrPjsKLQkJdGksYml0LXNo aWZ0ID0gPDIwPjsKLQkJcmVnID0gPDB4MDI0ND47Ci0JfTsKLQotCWdwdDExX2ZjazogZ3B0MTFf ZmNrIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0 ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZ3B0MTFfZ2F0ZV9mY2s+LCA8JmdwdDExX211eF9mY2s+ OwotCX07Ci0KLQlncHQxMl9pY2s6IGdwdDEyX2lja0AyMTAgewotCQkjY2xvY2stY2VsbHMgPSA8 MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tz ID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxND47Ci0JCXJlZyA9IDwweDAyMTA+Owot CX07Ci0KLQlncHQxMl9nYXRlX2ZjazogZ3B0MTJfZ2F0ZV9mY2tAMjAwIHsKLQkJI2Nsb2NrLWNl bGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1nYXRlLWNsb2NrIjsKLQkJ Y2xvY2tzID0gPCZmdW5jXzMya19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxND47Ci0JCXJlZyA9 IDwweDAyMDA+OwotCX07Ci0KLQlncHQxMl9tdXhfZmNrOiBncHQxMl9tdXhfZmNrQDI0NCB7Ci0J CSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtbXV4LWNs b2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzMya19jaz4sIDwmc3lzX2NrPiwgPCZhbHRfY2s+Owot CQl0aSxiaXQtc2hpZnQgPSA8MjI+OwotCQlyZWcgPSA8MHgwMjQ0PjsKLQl9OwotCi0JZ3B0MTJf ZmNrOiBncHQxMl9mY2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAi dGksY29tcG9zaXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZncHQxMl9nYXRlX2Zjaz4sIDwmZ3B0 MTJfbXV4X2Zjaz47Ci0JfTsKLQotCW1jYnNwMV9pY2s6IG1jYnNwMV9pY2tAMjEwIHsKLQkJI2Ns b2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9j ayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MTU+OwotCQlyZWcg PSA8MHgwMjEwPjsKLQl9OwotCi0JbWNic3AxX2dhdGVfZmNrOiBtY2JzcDFfZ2F0ZV9mY2tAMjAw IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1n YXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZtY2JzcF9jbGtzPjsKLQkJdGksYml0LXNoaWZ0ID0g PDE1PjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCW1jYnNwMl9pY2s6IG1jYnNwMl9pY2tA MjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWlu dGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8 MTY+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JbWNic3AyX2dhdGVfZmNrOiBtY2JzcDJf Z2F0ZV9mY2tAMjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRp LGNvbXBvc2l0ZS1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZtY2JzcF9jbGtzPjsKLQkJdGks Yml0LXNoaWZ0ID0gPDE2PjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCW1jc3BpMV9pY2s6 IG1jc3BpMV9pY2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0g InRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxi aXQtc2hpZnQgPSA8MTc+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JbWNzcGkxX2Zjazog bWNzcGkxX2Zja0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAi dGksd2FpdC1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzQ4bV9jaz47Ci0JCXRpLGJp dC1zaGlmdCA9IDwxNz47Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07Ci0KLQltY3NwaTJfaWNrOiBt Y3NwaTJfaWNrQDIxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0 aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0 LXNoaWZ0ID0gPDE4PjsKLQkJcmVnID0gPDB4MDIxMD47Ci0JfTsKLQotCW1jc3BpMl9mY2s6IG1j c3BpMl9mY2tAMjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRp LHdhaXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY180OG1fY2s+OwotCQl0aSxiaXQt c2hpZnQgPSA8MTg+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JdWFydDFfaWNrOiB1YXJ0 MV9pY2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9t YXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hp ZnQgPSA8MjE+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JdWFydDFfZmNrOiB1YXJ0MV9m Y2tAMjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLHdhaXQt Z2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY180OG1fY2s+OwotCQl0aSxiaXQtc2hpZnQg PSA8MjE+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JdWFydDJfaWNrOiB1YXJ0Ml9pY2tA MjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWlu dGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8 MjI+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JdWFydDJfZmNrOiB1YXJ0Ml9mY2tAMjAw IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLHdhaXQtZ2F0ZS1j bG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY180OG1fY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MjI+ OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JdWFydDNfaWNrOiB1YXJ0M19pY2tAMjE0IHsK LQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFj ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8Mj47Ci0J CXJlZyA9IDwweDAyMTQ+OwotCX07Ci0KLQl1YXJ0M19mY2s6IHVhcnQzX2Zja0AyMDQgewotCQkj Y2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksd2FpdC1nYXRlLWNsb2NrIjsK LQkJY2xvY2tzID0gPCZmdW5jXzQ4bV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyPjsKLQkJcmVn ID0gPDB4MDIwND47Ci0JfTsKLQotCWdwaW9zX2ljazogZ3Bpb3NfaWNrQDQxMCB7Ci0JCSNjbG9j ay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2si OwotCQljbG9ja3MgPSA8JnN5c19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyPjsKLQkJcmVnID0g PDB4MDQxMD47Ci0JfTsKLQotCWdwaW9zX2ZjazogZ3Bpb3NfZmNrQDQwMCB7Ci0JCSNjbG9jay1j ZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSx3YWl0LWdhdGUtY2xvY2siOwotCQljbG9j a3MgPSA8JmZ1bmNfMzJrX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDI+OwotCQlyZWcgPSA8MHgw NDAwPjsKLQl9OwotCi0JbXB1X3dkdF9pY2s6IG1wdV93ZHRfaWNrQDQxMCB7Ci0JCSNjbG9jay1j ZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwot CQljbG9ja3MgPSA8JnN5c19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwzPjsKLQkJcmVnID0gPDB4 MDQxMD47Ci0JfTsKLQotCW1wdV93ZHRfZmNrOiBtcHVfd2R0X2Zja0A0MDAgewotCQkjY2xvY2st Y2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksd2FpdC1nYXRlLWNsb2NrIjsKLQkJY2xv Y2tzID0gPCZmdW5jXzMya19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwzPjsKLQkJcmVnID0gPDB4 MDQwMD47Ci0JfTsKLQotCXN5bmNfMzJrX2ljazogc3luY18zMmtfaWNrQDQxMCB7Ci0JCSNjbG9j ay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2si OwotCQljbG9ja3MgPSA8JnN5c19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxPjsKLQkJcmVnID0g PDB4MDQxMD47Ci0JfTsKLQotCXdkdDFfaWNrOiB3ZHQxX2lja0A0MTAgewotCQkjY2xvY2stY2Vs bHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJ Y2xvY2tzID0gPCZzeXNfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8ND47Ci0JCXJlZyA9IDwweDA0 MTA+OwotCX07Ci0KLQlvbWFwY3RybF9pY2s6IG9tYXBjdHJsX2lja0A0MTAgewotCQkjY2xvY2st Y2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsK LQkJY2xvY2tzID0gPCZzeXNfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8NT47Ci0JCXJlZyA9IDww eDA0MTA+OwotCX07Ci0KLQljYW1fZmNrOiBjYW1fZmNrQDIwMCB7Ci0JCSNjbG9jay1jZWxscyA9 IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxnYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5j Xzk2bV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwzMT47Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07 Ci0KLQljYW1faWNrOiBjYW1faWNrQDIxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29t cGF0aWJsZSA9ICJ0aSxvbWFwMy1uby13YWl0LWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9 IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MzE+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9 OwotCi0JbWFpbGJveGVzX2ljazogbWFpbGJveGVzX2lja0AyMTAgewotCQkjY2xvY2stY2VsbHMg PSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xv Y2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwzMD47Ci0JCXJlZyA9IDwweDAyMTA+ OwotCX07Ci0KLQl3ZHQ0X2ljazogd2R0NF9pY2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+ OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9 IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8Mjk+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9 OwotCi0Jd2R0NF9mY2s6IHdkdDRfZmNrQDIwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJ Y29tcGF0aWJsZSA9ICJ0aSx3YWl0LWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMzJr X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDI5PjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQot CW1zcHJvX2ljazogbXNwcm9faWNrQDIxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29t cGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2Nr PjsKLQkJdGksYml0LXNoaWZ0ID0gPDI3PjsKLQkJcmVnID0gPDB4MDIxMD47Ci0JfTsKLQotCW1z cHJvX2ZjazogbXNwcm9fZmNrQDIwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0 aWJsZSA9ICJ0aSx3YWl0LWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfOTZtX2NrPjsK LQkJdGksYml0LXNoaWZ0ID0gPDI3PjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCWZhY19p Y2s6IGZhY19pY2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0g InRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxi aXQtc2hpZnQgPSA8MjU+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JZmFjX2ZjazogZmFj X2Zja0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksd2Fp dC1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzEybV9jaz47Ci0JCXRpLGJpdC1zaGlm dCA9IDwyNT47Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07Ci0KLQloZHFfaWNrOiBoZHFfaWNrQDIx MCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRl cmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDIz PjsKLQkJcmVnID0gPDB4MDIxMD47Ci0JfTsKLQotCWhkcV9mY2s6IGhkcV9mY2tAMjAwIHsKLQkJ I2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLHdhaXQtZ2F0ZS1jbG9jayI7 Ci0JCWNsb2NrcyA9IDwmZnVuY18xMm1fY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MjM+OwotCQly ZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JaTJjMV9pY2s6IGkyYzFfaWNrQDIxMCB7Ci0JCSNjbG9j ay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2si OwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDE5PjsKLQkJcmVnID0g PDB4MDIxMD47Ci0JfTsKLQotCWkyYzJfaWNrOiBpMmMyX2lja0AyMTAgewotCQkjY2xvY2stY2Vs bHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJ Y2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyMD47Ci0JCXJlZyA9IDwweDAy MTA+OwotCX07Ci0KLQlncG1jX2ZjazogZ3BtY19mY2tAMjM4IHsKLQkJI2Nsb2NrLWNlbGxzID0g PDA+OwotCQljb21wYXRpYmxlID0gInRpLGZpeGVkLWZhY3Rvci1jbG9jayI7Ci0JCWNsb2NrcyA9 IDwmY29yZV9sM19jaz47Ci0JCXRpLGNsb2NrLWRpdiA9IDwxPjsKLQkJdGksYXV0b2lkbGUtc2hp ZnQgPSA8MT47Ci0JCXJlZyA9IDwweDAyMzg+OwotCQl0aSxjbG9jay1tdWx0ID0gPDE+OwotCX07 Ci0KLQlzZG1hX2Zjazogc2RtYV9mY2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBh dGlibGUgPSAiZml4ZWQtZmFjdG9yLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2wzX2NrPjsK LQkJY2xvY2stbXVsdCA9IDwxPjsKLQkJY2xvY2stZGl2ID0gPDE+OwotCX07Ci0KLQlzZG1hX2lj azogc2RtYV9pY2tAMjM4IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0g InRpLGZpeGVkLWZhY3Rvci1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9sM19jaz47Ci0JCXRp LGNsb2NrLWRpdiA9IDwxPjsKLQkJdGksYXV0b2lkbGUtc2hpZnQgPSA8MD47Ci0JCXJlZyA9IDww eDAyMzg+OwotCQl0aSxjbG9jay1tdWx0ID0gPDE+OwotCX07Ci0KLQlzZHJjX2ljazogc2RyY19p Y2tAMjM4IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGZpeGVk LWZhY3Rvci1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9sM19jaz47Ci0JCXRpLGNsb2NrLWRp diA9IDwxPjsKLQkJdGksYXV0b2lkbGUtc2hpZnQgPSA8Mj47Ci0JCXJlZyA9IDwweDAyMzg+Owot CQl0aSxjbG9jay1tdWx0ID0gPDE+OwotCX07Ci0KLQlkZXNfaWNrOiBkZXNfaWNrQDIxYyB7Ci0J CSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2Ut Y2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDA+OwotCQly ZWcgPSA8MHgwMjFjPjsKLQl9OwotCi0Jc2hhX2ljazogc2hhX2lja0AyMWMgewotCQkjY2xvY2st Y2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsK LQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxPjsKLQkJcmVnID0gPDB4 MDIxYz47Ci0JfTsKLQotCXJuZ19pY2s6IHJuZ19pY2tAMjFjIHsKLQkJI2Nsb2NrLWNlbGxzID0g PDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2Nr cyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8Mj47Ci0JCXJlZyA9IDwweDAyMWM+Owot CX07Ci0KLQlhZXNfaWNrOiBhZXNfaWNrQDIxYyB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJ Y29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0 X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDM+OwotCQlyZWcgPSA8MHgwMjFjPjsKLQl9OwotCi0J cGthX2ljazogcGthX2lja0AyMWMgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGli bGUgPSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0J CXRpLGJpdC1zaGlmdCA9IDw0PjsKLQkJcmVnID0gPDB4MDIxYz47Ci0JfTsKLQotCXVzYl9mY2s6 IHVzYl9mY2tAMjA0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRp LHdhaXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY180OG1fY2s+OwotCQl0aSxiaXQt c2hpZnQgPSA8MD47Ci0JCXJlZyA9IDwweDAyMDQ+OwotCX07Ci19OwpkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vY29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9vbWFw MnBsdXNfZGVmY29uZmlnCmluZGV4IGY4MjdmODk1NjdmZC4uMGQwYmE1Y2YwY2U0IDEwMDY0NAot LS0gYS9hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0v Y29uZmlncy9vbWFwMnBsdXNfZGVmY29uZmlnCkBAIC0yMiw5ICsyMiw3IEBAIENPTkZJR19OQU1F U1BBQ0VTPXkKIENPTkZJR19CTEtfREVWX0lOSVRSRD15CiBDT05GSUdfRVhQRVJUPXkKIENPTkZJ R19QUk9GSUxJTkc9eQotQ09ORklHX0FSQ0hfTVVMVElfVjY9eQogQ09ORklHX09NQVBfUkVTRVRf Q0xPQ0tTPXkKLUNPTkZJR19BUkNIX09NQVAyPXkKIENPTkZJR19BUkNIX09NQVAzPXkKIENPTkZJ R19BUkNIX09NQVA0PXkKIENPTkZJR19TT0NfT01BUDU9eQpAQCAtMzQsNyArMzIsNiBAQCBDT05G SUdfU09DX0RSQTdYWD15CiBDT05GSUdfUE9XRVJfQVZTX09NQVA9eQogQ09ORklHX1BPV0VSX0FW U19PTUFQX0NMQVNTMz15CiBDT05GSUdfQVJNX1RIVU1CRUU9eQotQ09ORklHX0FSTV9FUlJBVEFf NDExOTIwPXkKIENPTkZJR19TTVA9eQogQ09ORklHX05SX0NQVVM9MgogQ09ORklHX0FSTV9BUFBF TkRFRF9EVEI9eQpAQCAtNjI3LDcgKzYyNCw2IEBAIENPTkZJR19MRURTX1RSSUdHRVJfREVGQVVM VF9PTj1tCiBDT05GSUdfUlRDX0NMQVNTPXkKIENPTkZJR19SVENfRFJWX0RTMTMwNz1tCiBDT05G SUdfUlRDX0RSVl9NNDFUODA9bQotQ09ORklHX1JUQ19EUlZfVFdMOTIzMzA9eQogQ09ORklHX1JU Q19EUlZfVFdMNDAzMD1tCiBDT05GSUdfUlRDX0RSVl9QQUxNQVM9bQogQ09ORklHX1JUQ19EUlZf T01BUD1tCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL0tjb25maWcgYi9hcmNoL2Fy bS9tYWNoLW9tYXAyL0tjb25maWcKaW5kZXggNzlmOGFmZTNhNmJmLi4zN2VjYmZjMGExOWYgMTAw NjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNo LW9tYXAyL0tjb25maWcKQEAgLTUsMTUgKzUsNiBAQCBtZW51ICJUSSBPTUFQL0FNL0RNL0RSQSBG YW1pbHkiCiBjb25maWcgT01BUF9IV01PRAogCWJvb2wKIAotY29uZmlnIEFSQ0hfT01BUDIKLQli b29sICJUSSBPTUFQMiIKLQlkZXBlbmRzIG9uIEFSQ0hfTVVMVElfVjYKLQlkZXBlbmRzIG9uICFT TVAKLQlzZWxlY3QgQVJDSF9PTUFQMlBMVVMKLQlzZWxlY3QgQ1BVX0FSTTExMzZSMAotCXNlbGVj dCBPTUFQX0hXTU9ECi0Jc2VsZWN0IFNPQ19IQVNfT01BUDJfU0RSQwotCiBjb25maWcgQVJDSF9P TUFQMwogCWJvb2wgIlRJIE9NQVAzIgogCWRlcGVuZHMgb24gQVJDSF9NVUxUSV9WNwpAQCAtMTE4 LDcgKzEwOSw3IEBAIGNvbmZpZyBBUkNIX09NQVAyUExVUwogCXNlbGVjdCBPTUFQX0lSUUNISVAK IAlzZWxlY3QgQ0xLU1JDX1RJXzMySwogCWhlbHAKLQkgIFN5c3RlbXMgYmFzZWQgb24gT01BUDIs IE9NQVAzLCBPTUFQNCBvciBPTUFQNQorCSAgU3lzdGVtcyBiYXNlZCBvbiBPTUFQMywgT01BUDQg b3IgT01BUDUKIAogY29uZmlnIE9NQVBfSU5URVJDT05ORUNUX0JBUlJJRVIKIAlib29sCkBAIC0x MjksNyArMTIwLDcgQEAgY29uZmlnIEFSQ0hfT01BUAogCiBpZiBBUkNIX09NQVAyUExVUwogCi1t ZW51ICJUSSBPTUFQMi8zLzQgU3BlY2lmaWMgRmVhdHVyZXMiCittZW51ICJUSSBPTUFQMy80IFNw ZWNpZmljIEZlYXR1cmVzIgogCiBjb25maWcgQVJDSF9PTUFQMlBMVVNfVFlQSUNBTAogCWJvb2wg IlR5cGljYWwgT01BUCBjb25maWd1cmF0aW9uIgpAQCAtMTM4LDggKzEyOSw3IEBAIGNvbmZpZyBB UkNIX09NQVAyUExVU19UWVBJQ0FMCiAJc2VsZWN0IEhJR0hNRU0KIAlzZWxlY3QgSTJDCiAJc2Vs ZWN0IEkyQ19PTUFQCi0Jc2VsZWN0IE1FTkVMQVVTIGlmIEFSQ0hfT01BUDIKLQlzZWxlY3QgTkVP TiBpZiBDUFVfVjcKKwlzZWxlY3QgTkVPTgogCXNlbGVjdCBSRUdVTEFUT1IKIAlzZWxlY3QgUkVH VUxBVE9SX0ZJWEVEX1ZPTFRBR0UKIAlzZWxlY3QgVFdMNDAzMF9DT1JFIGlmIEFSQ0hfT01BUDMg fHwgQVJDSF9PTUFQNApAQCAtMjA0LDI3ICsxOTQsNyBAQCBjb25maWcgT01BUDNfTDJfQVVYX1NF Q1VSRV9TRVJWSUNFX1NFVF9JRAogCSAgUFBBIHJvdXRpbmUgc2VydmljZSBJRCBmb3Igc2V0dGlu ZyBMMiBhdXhpbGlhcnkgY29udHJvbCByZWdpc3Rlci4KIAogY29tbWVudCAiT01BUCBDb3JlIFR5 cGUiCi0JZGVwZW5kcyBvbiBBUkNIX09NQVAyCi0KLWNvbmZpZyBTT0NfT01BUDI0MjAKLQlib29s ICJPTUFQMjQyMCBzdXBwb3J0IChERVBSRUNBVEVEKSIKLQlkZXBlbmRzIG9uIEFSQ0hfT01BUDIK LQlkZWZhdWx0IHkKLQlzZWxlY3QgT01BUF9ETV9TWVNUSU1FUgotCXNlbGVjdCBPTUFQX0RNX1RJ TUVSCi0Jc2VsZWN0IFNPQ19IQVNfT01BUDJfU0RSQwotCWhlbHAKLQkgIFRoaXMgU29DIGlzIHNj aGVkdWxlZCBmb3IgcmVtb3ZhbCBpbiBlYXJseSAyMDI3LAotCSAgc2luY2UgaXQgdXNlcyB0aGUg QVJNMTEzNnIwIENQVSByZXZpc2lvbi4KLQotY29uZmlnIFNPQ19PTUFQMjQzMAotCWJvb2wgIk9N QVAyNDMwIHN1cHBvcnQgKERFUFJFQ0FURUQpIgotCWRlcGVuZHMgb24gQVJDSF9PTUFQMgotCWRl ZmF1bHQgeQotCXNlbGVjdCBTT0NfSEFTX09NQVAyX1NEUkMKLQloZWxwCi0JICBUaGlzIFNvQyBp cyBzY2hlZHVsZWQgZm9yIHJlbW92YWwgaW4gZWFybHkgMjAyNywKLQkgIHNpbmNlIGl0IHVzZXMg dGhlIEFSTTExMzZyMCBDUFUgcmV2aXNpb24uCisJZGVwZW5kcyBvbiBBUkNIX09NQVAzCiAKIGNv bmZpZyBTT0NfT01BUDM0MzAKIAlib29sICJPTUFQMzQzMCBzdXBwb3J0IgpAQCAtMjM3LDMzICsy MDcsOSBAQCBjb25maWcgU09DX1RJODFYWAogCWRlcGVuZHMgb24gQVJDSF9PTUFQMwogCWRlZmF1 bHQgeQogCi1jb21tZW50ICJPTUFQIExlZ2FjeSBQbGF0Zm9ybSBEYXRhIEJvYXJkIFR5cGUiCi0J ZGVwZW5kcyBvbiBBUkNIX09NQVAyUExVUwotCiBjb25maWcgTUFDSF9PTUFQX0dFTkVSSUMKIAli b29sCiAKLWNvbmZpZyBNQUNIX09NQVAyX1RVU0I2MDEwCi0JYm9vbAotCWRlcGVuZHMgb24gQVJD SF9PTUFQMiAmJiBTT0NfT01BUDI0MjAKLQlkZWZhdWx0IHkgaWYgTUFDSF9OT0tJQV9OOFgwCi0K LWNvbmZpZyBNQUNIX05PS0lBX044MTAKLQlib29sCi0KLWNvbmZpZyBNQUNIX05PS0lBX044MTBf V0lNQVgKLQlib29sCi0KLWNvbmZpZyBNQUNIX05PS0lBX044WDAKLQlib29sICJOb2tpYSBOODAw L044MTAgKERFUFJFQ0FURUQpIgotCWRlcGVuZHMgb24gU09DX09NQVAyNDIwCi0JZGVmYXVsdCB5 Ci0Jc2VsZWN0IE1BQ0hfTk9LSUFfTjgxMAotCXNlbGVjdCBNQUNIX05PS0lBX044MTBfV0lNQVgK LQloZWxwCi0JICBUaGlzIG1hY2hpbmUgaXMgc2NoZWR1bGVkIGZvciByZW1vdmFsIGluIGVhcmx5 IDIwMjcsCi0JICBzaW5jZSBpdCB1c2VzIHRoZSBBUk0xMTM2cjAgQ1BVIHJldmlzaW9uLgotCiBl bmRtZW51CiAKIGVuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL01ha2VmaWxl IGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9NYWtlZmlsZQppbmRleCBkYWYyMTEyN2M4MmYuLjZjNzQx NDQyZGMwZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9NYWtlZmlsZQorKysgYi9h cmNoL2FybS9tYWNoLW9tYXAyL01ha2VmaWxlCkBAIC01LDIzICs1LDE3IEBACiAKICMgQ29tbW9u IHN1cHBvcnQKIG9iai15IDo9IGlkLm8gaW8ubyBjb250cm9sLm8gZGV2aWNlcy5vIGZiLm8gcG0u byBcCi0JIGNvbW1vbi5vIGRtYS5vIG9tYXAtaGVhZHNtcC5vIHNyYW0ubworCSBjb21tb24ubyBk bWEubyBvbWFwLWhlYWRzbXAubwogCi1od21vZC1jb21tb24JCQkJPSBvbWFwX2h3bW9kLm8gXAor IyBPTUFQMyBod21vZCBzcGVjaWZpYworb2JqLSQoQ09ORklHX0FSQ0hfT01BUDMpCQkrPSBzcmFt Lm8gb21hcF9od21vZC5vIFwKIAkJCQkJICBvbWFwX2h3bW9kX2NvbW1vbl9kYXRhLm8gXAogCQkJ CQkgIG9tYXBfaHdtb2RfY29tbW9uX2lwYmxvY2tfZGF0YS5vIFwKIAkJCQkJICBvbWFwX2Rldmlj ZS5vIGRpc3BsYXkubyBoZHExdy5vIFwKIAkJCQkJICBpMmMubyB3ZF90aW1lci5vCi1jbG9jay1j b21tb24JCQkJPSBjbG9jay5vCi1zZWN1cmUtY29tbW9uCQkJCT0gb21hcC1zbWMubyBvbWFwLXNl Y3VyZS5vCiAKLW9iai0kKENPTkZJR19BUkNIX09NQVAyKSArPSAkKG9tYXAtMi0zLWNvbW1vbikg JChod21vZC1jb21tb24pCi1vYmotJChDT05GSUdfQVJDSF9PTUFQMykgKz0gJChvbWFwLTItMy1j b21tb24pICQoaHdtb2QtY29tbW9uKSAkKHNlY3VyZS1jb21tb24pCi1vYmotJChDT05GSUdfQVJD SF9PTUFQNCkgKz0gJChzZWN1cmUtY29tbW9uKQotb2JqLSQoQ09ORklHX1NPQ19BTTMzWFgpICs9 ICQoc2VjdXJlLWNvbW1vbikKLW9iai0kKENPTkZJR19TT0NfT01BUDUpICArPSAkKHNlY3VyZS1j b21tb24pCi1vYmotJChDT05GSUdfU09DX0FNNDNYWCkgKz0gJChzZWN1cmUtY29tbW9uKQotb2Jq LSQoQ09ORklHX1NPQ19EUkE3WFgpICs9ICQoc2VjdXJlLWNvbW1vbikKKyMgc2VjdXJlIHdvcmxk CitvYmoteQkJCQkJKz0gb21hcC1zbWMubyBvbWFwLXNlY3VyZS5vCiAKIGlmbmVxICgkKENPTkZJ R19TTkRfU09DX09NQVBfTUNCU1ApLCkKIG9iai0kKENPTkZJR19PTUFQX0hXTU9EKSArPSBtY2Jz cC5vCkBAIC00OSwxMyArNDMsNyBAQCBvbWFwNS1kcmE3LWNvbW1vbi0kKENPTkZJR19TT0NfSEFT X1JFQUxUSU1FX0NPVU5URVIpID0gIHRpbWVyLm8KIG9iai0kKENPTkZJR19TT0NfT01BUDUpCQkJ Kz0gJChvbWFwNS1kcmE3LWNvbW1vbi15KQogb2JqLSQoQ09ORklHX1NPQ19EUkE3WFgpCQkrPSAk KG9tYXA1LWRyYTctY29tbW9uLXkpCiAKLSMgRnVuY3Rpb25zIGxvYWRlZCB0byBTUkFNCi1vYmot JChDT05GSUdfU09DX09NQVAyNDIwKQkJKz0gc3JhbTI0Mngubwotb2JqLSQoQ09ORklHX1NPQ19P TUFQMjQzMCkJCSs9IHNyYW0yNDN4Lm8KLQogIyBSZXN0YXJ0IGNvZGUgKE9NQVA0LzUgY3VycmVu dGx5IGluIG9tYXA0LWNvbW1vbi5jKQotb2JqLSQoQ09ORklHX1NPQ19PTUFQMjQyMCkJCSs9IG9t YXAyLXJlc3RhcnQubwotb2JqLSQoQ09ORklHX1NPQ19PTUFQMjQzMCkJCSs9IG9tYXAyLXJlc3Rh cnQubwogb2JqLSQoQ09ORklHX1NPQ19USTgxWFgpCQkrPSB0aTgxeHgtcmVzdGFydC5vCiBvYmot JChDT05GSUdfU09DX0FNMzNYWCkJCSs9IGFtMzN4eC1yZXN0YXJ0Lm8KIG9iai0kKENPTkZJR19T T0NfQU00M1hYKQkJKz0gb21hcDQtcmVzdGFydC5vCkBAIC02NSw3ICs1Myw2IEBAIG9iai0kKENP TkZJR19TT0NfT01BUDUpCQkJKz0gb21hcDQtcmVzdGFydC5vCiBvYmotJChDT05GSUdfU09DX0RS QTdYWCkJCSs9IG9tYXA0LXJlc3RhcnQubwogCiAjIFNNUy9TRFJDCi1vYmotJChDT05GSUdfQVJD SF9PTUFQMikJCSs9IHNkcmMyeHh4Lm8KICMgb2JqLSQoQ09ORklHX0FSQ0hfT01BUDMpCQkrPSBz ZHJjM3h4eC5vCiAKICMgT1BQIHRhYmxlIGluaXRpYWxpemF0aW9uCkBAIC04MCw3ICs2Nyw2IEBA IG9iai0kKENPTkZJR19BUkNIX09NQVA0KQkJKz0gJChvbWFwLTQtNS1wbS1jb21tb24pCiBvYmot JChDT05GSUdfU09DX09NQVA1KQkJCSs9ICQob21hcC00LTUtcG0tY29tbW9uKQogCiBpZmVxICgk KENPTkZJR19QTSkseSkKLW9iai0kKENPTkZJR19BUkNIX09NQVAyKQkJKz0gc2xlZXAyNHh4Lm8K IG9iai0kKENPTkZJR19BUkNIX09NQVAzKQkJKz0gcG0zNHh4Lm8gc2xlZXAzNHh4Lm8KIG9tYXAt NC01LXBtLWNvbW1vbgkJCSs9IHBtNDR4eC5vCiBvYmotJChDT05GSUdfQVJDSF9PTUFQNCkJCSs9 ICQob21hcC00LTUtcG0tY29tbW9uKQpAQCAtMTA1LDcgKzkxLDYgQEAgZW5kaWYKIAogIyBQUkNN CiBvYmoteQkJCQkJKz0gcHJtX2NvbW1vbi5vIGNtX2NvbW1vbi5vCi1vYmotJChDT05GSUdfQVJD SF9PTUFQMikJCSs9IHBybTJ4eHhfM3h4eC5vIHBybTJ4eHgubyBjbTJ4eHgubwogb2JqLSQoQ09O RklHX0FSQ0hfT01BUDMpCQkrPSBwcm0yeHh4XzN4eHgubyBwcm0zeHh4Lm8gY20zeHh4Lm8KIG9i ai0kKENPTkZJR19BUkNIX09NQVAzKQkJKz0gdmMzeHh4X2RhdGEubyB2cDN4eHhfZGF0YS5vCiBv bWFwLXByY20tNC01LWNvbW1vbgkJCT0gIGNtaW5zdDQ0eHgubyBwcm00NHh4Lm8gXApAQCAtMTIy LDggKzEwNyw2IEBAIG9iai0kKENPTkZJR19TT0NfQU00M1hYKQkJKz0gJChvbWFwLXByY20tNC01 LWNvbW1vbikgXAogCiAjIE9NQVAgdm9sdGFnZSBkb21haW5zCiB2b2x0YWdlZG9tYWluLWNvbW1v bgkJCTo9IHZvbHRhZ2UubyB2Yy5vIHZwLm8KLW9iai0kKENPTkZJR19BUkNIX09NQVAyKQkJKz0g JCh2b2x0YWdlZG9tYWluLWNvbW1vbikKLW9iai0kKENPTkZJR19BUkNIX09NQVAyKQkJKz0gdm9s dGFnZWRvbWFpbnMyeHh4X2RhdGEubwogb2JqLSQoQ09ORklHX0FSQ0hfT01BUDMpCQkrPSAkKHZv bHRhZ2Vkb21haW4tY29tbW9uKQogb2JqLSQoQ09ORklHX0FSQ0hfT01BUDMpCQkrPSB2b2x0YWdl ZG9tYWluczN4eHhfZGF0YS5vCiBvYmotJChDT05GSUdfQVJDSF9PTUFQNCkJCSs9ICQodm9sdGFn ZWRvbWFpbi1jb21tb24pCkBAIC0xMzYsOSArMTE5LDYgQEAgb2JqLSQoQ09ORklHX1NPQ19EUkE3 WFgpCQkrPSAkKHZvbHRhZ2Vkb21haW4tY29tbW9uKQogCiAjIE9NQVAgcG93ZXJkb21haW4gZnJh bWV3b3JrCiBwb3dlcmRvbWFpbi1jb21tb24JCQkrPSBwb3dlcmRvbWFpbi5vIHBvd2VyZG9tYWlu LWNvbW1vbi5vCi1vYmotJChDT05GSUdfQVJDSF9PTUFQMikJCSs9ICQocG93ZXJkb21haW4tY29t bW9uKQotb2JqLSQoQ09ORklHX0FSQ0hfT01BUDIpCQkrPSBwb3dlcmRvbWFpbnMyeHh4X2RhdGEu bwotb2JqLSQoQ09ORklHX0FSQ0hfT01BUDIpCQkrPSBwb3dlcmRvbWFpbnMyeHh4XzN4eHhfZGF0 YS5vCiBvYmotJChDT05GSUdfQVJDSF9PTUFQMykJCSs9ICQocG93ZXJkb21haW4tY29tbW9uKQog b2JqLSQoQ09ORklHX0FSQ0hfT01BUDMpCQkrPSBwb3dlcmRvbWFpbnMzeHh4X2RhdGEubwogb2Jq LSQoQ09ORklHX0FSQ0hfT01BUDMpCQkrPSBwb3dlcmRvbWFpbnMyeHh4XzN4eHhfZGF0YS5vCkBA IC0xNTUsMTAgKzEzNSw2IEBAIG9iai0kKENPTkZJR19TT0NfRFJBN1hYKQkJKz0gcG93ZXJkb21h aW5zN3h4X2RhdGEubwogCiAjIFBSQ00gY2xvY2tkb21haW4gY29udHJvbAogY2xvY2tkb21haW4t Y29tbW9uCQkJKz0gY2xvY2tkb21haW4ubwotb2JqLSQoQ09ORklHX0FSQ0hfT01BUDIpCQkrPSAk KGNsb2NrZG9tYWluLWNvbW1vbikKLW9iai0kKENPTkZJR19BUkNIX09NQVAyKQkJKz0gY2xvY2tk b21haW5zMnh4eF8zeHh4X2RhdGEubwotb2JqLSQoQ09ORklHX1NPQ19PTUFQMjQyMCkJCSs9IGNs b2NrZG9tYWluczI0MjBfZGF0YS5vCi1vYmotJChDT05GSUdfU09DX09NQVAyNDMwKQkJKz0gY2xv Y2tkb21haW5zMjQzMF9kYXRhLm8KIG9iai0kKENPTkZJR19BUkNIX09NQVAzKQkJKz0gJChjbG9j a2RvbWFpbi1jb21tb24pCiBvYmotJChDT05GSUdfQVJDSF9PTUFQMykJCSs9IGNsb2NrZG9tYWlu czJ4eHhfM3h4eF9kYXRhLm8KIG9iai0kKENPTkZJR19BUkNIX09NQVAzKQkJKz0gY2xvY2tkb21h aW5zM3h4eF9kYXRhLm8KQEAgLTE3Niw0NyArMTUyLDIwIEBAIG9iai0kKENPTkZJR19TT0NfRFJB N1hYKQkJKz0gJChjbG9ja2RvbWFpbi1jb21tb24pCiBvYmotJChDT05GSUdfU09DX0RSQTdYWCkJ CSs9IGNsb2NrZG9tYWluczd4eF9kYXRhLm8KIAogIyBDbG9jayBmcmFtZXdvcmsKLW9iai0kKENP TkZJR19BUkNIX09NQVAyKQkJKz0gJChjbG9jay1jb21tb24pCi1vYmotJChDT05GSUdfQVJDSF9P TUFQMikJCSs9IGNsa3QyeHh4X2RwbGxjb3JlLm8KLW9iai0kKENPTkZJR19BUkNIX09NQVAyKQkJ Kz0gY2xrdDJ4eHhfdmlydF9wcmNtX3NldC5vCi1vYmotJChDT05GSUdfQVJDSF9PTUFQMikJCSs9 IGNsa3QyeHh4X2RwbGwubwotb2JqLSQoQ09ORklHX0FSQ0hfT01BUDMpCQkrPSAkKGNsb2NrLWNv bW1vbikKLW9iai0kKENPTkZJR19BUkNIX09NQVA0KQkJKz0gJChjbG9jay1jb21tb24pCi1vYmot JChDT05GSUdfU09DX0FNMzNYWCkJCSs9ICQoY2xvY2stY29tbW9uKQotb2JqLSQoQ09ORklHX1NP Q19PTUFQNSkJCQkrPSAkKGNsb2NrLWNvbW1vbikKLW9iai0kKENPTkZJR19TT0NfRFJBN1hYKQkJ Kz0gJChjbG9jay1jb21tb24pCi1vYmotJChDT05GSUdfU09DX0FNNDNYWCkJCSs9ICQoY2xvY2st Y29tbW9uKQotCi0jIE9NQVAyIGNsb2NrIHJhdGUgc2V0IGRhdGEgKG9sZCAiT1BQIiBkYXRhKQot b2JqLSQoQ09ORklHX1NPQ19PTUFQMjQyMCkJCSs9IG9wcDI0MjBfZGF0YS5vCi1vYmotJChDT05G SUdfU09DX09NQVAyNDMwKQkJKz0gb3BwMjQzMF9kYXRhLm8KK29iai15CQkJCQkrPSBjbG9jay5v CiAKICMgaHdtb2QgZGF0YQotb2JqLSQoQ09ORklHX1NPQ19PTUFQMjQyMCkJCSs9IG9tYXBfaHdt b2RfMnh4eF9pcGJsb2NrX2RhdGEubwotb2JqLSQoQ09ORklHX1NPQ19PTUFQMjQyMCkJCSs9IG9t YXBfaHdtb2RfMnh4eF8zeHh4X2lwYmxvY2tfZGF0YS5vCi1vYmotJChDT05GSUdfU09DX09NQVAy NDIwKQkJKz0gb21hcF9od21vZF8yeHh4X2ludGVyY29ubmVjdF9kYXRhLm8KLW9iai0kKENPTkZJ R19TT0NfT01BUDI0MjApCQkrPSBvbWFwX2h3bW9kXzI0MjBfZGF0YS5vCi1vYmotJChDT05GSUdf U09DX09NQVAyNDMwKQkJKz0gb21hcF9od21vZF8yeHh4X2lwYmxvY2tfZGF0YS5vCi1vYmotJChD T05GSUdfU09DX09NQVAyNDMwKQkJKz0gb21hcF9od21vZF8yeHh4XzN4eHhfaXBibG9ja19kYXRh Lm8KLW9iai0kKENPTkZJR19TT0NfT01BUDI0MzApCQkrPSBvbWFwX2h3bW9kXzJ4eHhfaW50ZXJj b25uZWN0X2RhdGEubwotb2JqLSQoQ09ORklHX1NPQ19PTUFQMjQzMCkJCSs9IG9tYXBfaHdtb2Rf MjQzMF9kYXRhLm8KIG9iai0kKENPTkZJR19BUkNIX09NQVAzKQkJKz0gb21hcF9od21vZF8yeHh4 XzN4eHhfaXBibG9ja19kYXRhLm8KIG9iai0kKENPTkZJR19BUkNIX09NQVAzKQkJKz0gb21hcF9o d21vZF8zeHh4X2RhdGEubwogb2JqLSQoQ09ORklHX1NPQ19USTgxWFgpCQkrPSBvbWFwX2h3bW9k XzgxeHhfZGF0YS5vCiAKLSMgT01BUDI0MjAgTVNESSBjb250cm9sbGVyIGludGVncmF0aW9uIHN1 cHBvcnQgKCJNTUMiKQotb2JqLSQoQ09ORklHX1NPQ19PTUFQMjQyMCkJCSs9IG1zZGkubwotCiAj IFNwZWNpZmljIGJvYXJkIHN1cHBvcnQKIG9iai0kKENPTkZJR19NQUNIX09NQVBfR0VORVJJQykJ CSs9IGJvYXJkLWdlbmVyaWMubyBwZGF0YS1xdWlya3Mubwotb2JqLSQoQ09ORklHX01BQ0hfTk9L SUFfTjhYMCkJCSs9IGJvYXJkLW44eDAubwogCiAjIFBsYXRmb3JtIHNwZWNpZmljIGRldmljZSBp bml0IGNvZGUKIAogb2JqLXkJCQkJCSs9IG9tYXBfcGh5X2ludGVybmFsLm8KIAotb2JqLSQoQ09O RklHX01BQ0hfT01BUDJfVFVTQjYwMTApCSs9IHVzYi10dXNiNjAxMC5vCi0KICQob2JqKS9wbS1h c20tb2Zmc2V0cy5oOiAkKG9iaikvcG0tYXNtLW9mZnNldHMucyBGT1JDRQogCSQoY2FsbCBmaWxl Y2hrLG9mZnNldHMsX19USV9QTV9BU01fT0ZGU0VUU19IX18pCiAKZGlmZiAtLWdpdCBhL2FyY2gv YXJtL21hY2gtb21hcDIvYm9hcmQtZ2VuZXJpYy5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2Fy ZC1nZW5lcmljLmMKaW5kZXggYmZmNjczZTkzMmZlLi45NzJiOGNmMDU0N2YgMTAwNjQ0Ci0tLSBh L2FyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtZ2VuZXJpYy5jCisrKyBiL2FyY2gvYXJtL21hY2gt b21hcDIvYm9hcmQtZ2VuZXJpYy5jCkBAIC00NSw0MCArNDUsNiBAQCB2b2lkIHRpY2tfYnJvYWRj YXN0KGNvbnN0IHN0cnVjdCBjcHVtYXNrICptYXNrKQogfQogI2VuZGlmCiAKLSNpZmRlZiBDT05G SUdfU09DX09NQVAyNDIwCi1zdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgb21hcDI0MnhfYm9hcmRz X2NvbXBhdFtdIF9faW5pdGNvbnN0ID0gewotCSJ0aSxvbWFwMjQyMCIsCi0JTlVMTCwKLX07Ci0K LURUX01BQ0hJTkVfU1RBUlQoT01BUDI0MlhfRFQsICJHZW5lcmljIE9NQVAyNDIwIChGbGF0dGVu ZWQgRGV2aWNlIFRyZWUpIikKLQkucmVzZXJ2ZQk9IG9tYXBfcmVzZXJ2ZSwKLQkubWFwX2lvCQk9 IG9tYXAyNDJ4X21hcF9pbywKLQkuaW5pdF9lYXJseQk9IG9tYXAyNDIwX2luaXRfZWFybHksCi0J LmluaXRfbWFjaGluZQk9IG9tYXBfZ2VuZXJpY19pbml0LAotCS5pbml0X3RpbWUJPSBvbWFwX2lu aXRfdGltZV9vZiwKLQkuZHRfY29tcGF0CT0gb21hcDI0MnhfYm9hcmRzX2NvbXBhdCwKLQkucmVz dGFydAk9IG9tYXAyeHh4X3Jlc3RhcnQsCi1NQUNISU5FX0VORAotI2VuZGlmCi0KLSNpZmRlZiBD T05GSUdfU09DX09NQVAyNDMwCi1zdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgb21hcDI0M3hfYm9h cmRzX2NvbXBhdFtdIF9faW5pdGNvbnN0ID0gewotCSJ0aSxvbWFwMjQzMCIsCi0JTlVMTCwKLX07 Ci0KLURUX01BQ0hJTkVfU1RBUlQoT01BUDI0M1hfRFQsICJHZW5lcmljIE9NQVAyNDMwIChGbGF0 dGVuZWQgRGV2aWNlIFRyZWUpIikKLQkucmVzZXJ2ZQk9IG9tYXBfcmVzZXJ2ZSwKLQkubWFwX2lv CQk9IG9tYXAyNDN4X21hcF9pbywKLQkuaW5pdF9lYXJseQk9IG9tYXAyNDMwX2luaXRfZWFybHks Ci0JLmluaXRfbWFjaGluZQk9IG9tYXBfZ2VuZXJpY19pbml0LAotCS5pbml0X3RpbWUJPSBvbWFw X2luaXRfdGltZV9vZiwKLQkuZHRfY29tcGF0CT0gb21hcDI0M3hfYm9hcmRzX2NvbXBhdCwKLQku cmVzdGFydAk9IG9tYXAyeHh4X3Jlc3RhcnQsCi1NQUNISU5FX0VORAotI2VuZGlmCi0KICNpZmRl ZiBDT05GSUdfQVJDSF9PTUFQMwogLyogU29tZSBib2FyZHMgbmVlZCBib2FyZCBuYW1lIGZvciBs ZWdhY3kgdXNlcnNwYWNlIGluIC9wcm9jL2NwdWluZm8gKi8KIHN0YXRpYyBjb25zdCBjaGFyICpj b25zdCBuOTAwX2JvYXJkc19jb21wYXRbXSBfX2luaXRjb25zdCA9IHsKZGlmZiAtLWdpdCBhL2Fy Y2gvYXJtL21hY2gtb21hcDIvYm9hcmQtbjh4MC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2Fy ZC1uOHgwLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5YWNkMzJjNTQ1Ny4uMDAw MDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtbjh4MC5jCisrKyAvZGV2 L251bGwKQEAgLTEsNTEyICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wLW9ubHkKLS8qCi0gKiBsaW51eC9hcmNoL2FybS9tYWNoLW9tYXAyL2JvYXJkLW44eDAuYwot ICoKLSAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA5IE5va2lhIENvcnBvcmF0aW9uCi0gKiBBdXRo b3I6IEp1aGEgWXJqb2xhIDxqdWhhLnlyam9sYUBub2tpYS5jb20+Ci0gKgotICogTW9kaWZpZWQg ZnJvbSBtYWNoLW9tYXAyL2JvYXJkLWdlbmVyaWMuYwotICovCi0KLSNpbmNsdWRlIDxsaW51eC9j bGsuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8vbWFj aGluZS5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KLSNpbmNsdWRlIDxsaW51 eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9pcnEuaD4K LSNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4KLSNpbmNsdWRlIDxsaW51eC9pMmMuaD4KLSNpbmNs dWRlIDxsaW51eC9zcGkvc3BpLmg+Ci0jaW5jbHVkZSA8bGludXgvdXNiL211c2IuaD4KLSNpbmNs dWRlIDxsaW51eC9tbWMvaG9zdC5oPgotI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvbW1j LW9tYXAuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvbWVuZWxhdXMuaD4KLQotI2luY2x1ZGUgPGFz bS9tYWNoL2FyY2guaD4KLSNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgotCi0jaW5jbHVkZSAi Y29tbW9uLmgiCi0jaW5jbHVkZSAibW1jLmgiCi0jaW5jbHVkZSAidXNiLXR1c2I2MDEwLmgiCi0j aW5jbHVkZSAic29jLmgiCi0jaW5jbHVkZSAiY29tbW9uLWJvYXJkLWRldmljZXMuaCIKLQotI2Rl ZmluZSBUVVNCNjAxMF9BU1lOQ19DUwkxCi0jZGVmaW5lIFRVU0I2MDEwX1NZTkNfQ1MJNAotI2Rl ZmluZSBUVVNCNjAxMF9ETUFDSEFOCTB4M2YKLQotI2RlZmluZSBOT0tJQV9OODEwX1dJTUFYCSgx IDw8IDIpCi0jZGVmaW5lIE5PS0lBX044MTAJCSgxIDw8IDEpCi0jZGVmaW5lIE5PS0lBX044MDAJ CSgxIDw8IDApCi0KLXN0YXRpYyB1MzIgYm9hcmRfY2FwczsKLQotI2RlZmluZSBib2FyZF9pc19u ODAwKCkJCShib2FyZF9jYXBzICYgTk9LSUFfTjgwMCkKLSNkZWZpbmUgYm9hcmRfaXNfbjgxMCgp CQkoYm9hcmRfY2FwcyAmIE5PS0lBX044MTApCi0jZGVmaW5lIGJvYXJkX2lzX244MTBfd2ltYXgo KQkoYm9hcmRfY2FwcyAmIE5PS0lBX044MTBfV0lNQVgpCi0KLXN0YXRpYyB2b2lkIGJvYXJkX2No ZWNrX3JldmlzaW9uKHZvaWQpCi17Ci0JaWYgKG9mX21hY2hpbmVfaXNfY29tcGF0aWJsZSgibm9r aWEsbjgwMCIpKQotCQlib2FyZF9jYXBzID0gTk9LSUFfTjgwMDsKLQllbHNlIGlmIChvZl9tYWNo aW5lX2lzX2NvbXBhdGlibGUoIm5va2lhLG44MTAiKSkKLQkJYm9hcmRfY2FwcyA9IE5PS0lBX044 MTA7Ci0JZWxzZSBpZiAob2ZfbWFjaGluZV9pc19jb21wYXRpYmxlKCJub2tpYSxuODEwLXdpbWF4 IikpCi0JCWJvYXJkX2NhcHMgPSBOT0tJQV9OODEwX1dJTUFYOwotCi0JaWYgKCFib2FyZF9jYXBz KQotCQlwcl9lcnIoIlVua25vd24gYm9hcmRcbiIpOwotfQotCi0jaWYgSVNfRU5BQkxFRChDT05G SUdfVVNCX01VU0JfVFVTQjYwMTApCi0KLXN0YXRpYyBzdHJ1Y3QgbXVzYl9oZHJjX2NvbmZpZyBt dXNiX2NvbmZpZyA9IHsKLQkubXVsdGlwb2ludAk9IDEsCi0JLmR5bl9maWZvCT0gMSwKLQkubnVt X2Vwcwk9IDE2LAotCS5yYW1fYml0cwk9IDEyLAotfTsKLQotc3RhdGljIHN0cnVjdCBtdXNiX2hk cmNfcGxhdGZvcm1fZGF0YSB0dXNiX2RhdGEgPSB7Ci0JLm1vZGUJCT0gTVVTQl9PVEcsCi0JLm1p bl9wb3dlcgk9IDI1LAkvKiB4MiA9IDUwIG1BIGRyYXduIGZyb20gVkJVUyBhcyBwZXJpcGhlcmFs ICovCi0JLnBvd2VyCQk9IDEwMCwJLyogTWF4IDEwMCBtQSBWQlVTIGZvciBob3N0IG1vZGUgKi8K LQkuY29uZmlnCQk9ICZtdXNiX2NvbmZpZywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgZ3Bpb2RfbG9v a3VwX3RhYmxlIHR1c2JfZ3Bpb190YWJsZSA9IHsKLQkuZGV2X2lkID0gIm11c2ItdHVzYiIsCi0J LnRhYmxlID0gewotCQlHUElPX0xPT0tVUCgiZ3Bpby0wLTMxIiwgMCwgImVuYWJsZSIsIEdQSU9f QUNUSVZFX0hJR0gpLAotCQlHUElPX0xPT0tVUCgiZ3Bpby0zMi02MyIsIDI2LCAiaW50IiwgR1BJ T19BQ1RJVkVfSElHSCksCi0JCXsgfQotCX0sCi19OwotCi1zdGF0aWMgdm9pZCBfX2luaXQgbjh4 MF91c2JfaW5pdCh2b2lkKQotewotCWludCByZXQgPSAwOwotCi0JZ3Bpb2RfYWRkX2xvb2t1cF90 YWJsZSgmdHVzYl9ncGlvX3RhYmxlKTsKLQlyZXQgPSB0dXNiNjAxMF9zZXR1cF9pbnRlcmZhY2Uo JnR1c2JfZGF0YSwgVFVTQjYwMTBfUkVGQ0xLXzE5LCAyLAotCQkJCSAgICAgICBUVVNCNjAxMF9B U1lOQ19DUywgVFVTQjYwMTBfU1lOQ19DUywKLQkJCQkgICAgICAgVFVTQjYwMTBfRE1BQ0hBTik7 Ci0JaWYgKHJldCAhPSAwKQotCQlyZXR1cm47Ci0KLQlwcl9pbmZvKCJUVVNCIDYwMTBcbiIpOwot Ci0JcmV0dXJuOwotfQotI2Vsc2UKLQotc3RhdGljIHZvaWQgX19pbml0IG44eDBfdXNiX2luaXQo dm9pZCkge30KLQotI2VuZGlmIC8qQ09ORklHX1VTQl9NVVNCX1RVU0I2MDEwICovCi0KLSNpZiBk ZWZpbmVkKENPTkZJR19NRU5FTEFVUykgJiYgSVNfRU5BQkxFRChDT05GSUdfTU1DX09NQVApCi0K LS8qCi0gKiBPbiBib3RoIE44MDAgYW5kIE44MTAsIG9ubHkgdGhlIGZpcnN0IG9mIHRoZSB0d28g TU1DIGNvbnRyb2xsZXJzIGlzIGluIHVzZS4KLSAqIFRoZSB0d28gTU1DIHNsb3RzIGFyZSBtdWx0 aXBsZXhlZCB2aWEgTWVuZWxhdXMgY29tcGFuaW9uIGNoaXAgb3ZlciBJMkMuCi0gKiBPbiBOODAw LCBib3RoIHNsb3RzIGFyZSBwb3dlcmVkIHZpYSBNZW5lbGF1cy4gT24gTjgxMCwgb25seSBvbmUg b2YgdGhlCi0gKiBzbG90cyBpcyBwb3dlcmVkIHZpYSBNZW5lbGF1cy4gVGhlIE44MTAgRU1NQyBp cyBwb3dlcmVkIHZpYSBHUElPLgotICoKLSAqIFZNTUMJCQkJc2xvdCAxIG9uIGJvdGggTjgwMCBh bmQgTjgxMAotICogVkRDREMzX0FQRSBhbmQgVk1DUzJfQVBFCXNsb3QgMiBvbiBOODAwCi0gKiBH UElPMjMgYW5kIEdQSU85CQlzbG90IDIgRU1NQyBvbiBOODEwCi0gKgotICovCi1zdGF0aWMgaW50 IHNsb3QxX2NvdmVyX29wZW47Ci1zdGF0aWMgaW50IHNsb3QyX2NvdmVyX29wZW47Ci1zdGF0aWMg c3RydWN0IGRldmljZSAqbW1jX2RldmljZTsKLQotc3RhdGljIHN0cnVjdCBncGlvZF9sb29rdXBf dGFibGUgbm9raWE4MDBfbW1jX2dwaW9fdGFibGUgPSB7Ci0JLmRldl9pZCA9ICJtbWNpLW9tYXAu MCIsCi0JLnRhYmxlID0gewotCQkvKiBTbG90IHN3aXRjaCwgR1BJTyA5NiAqLwotCQlHUElPX0xP T0tVUCgiZ3Bpby05Ni0xMjciLCAwLCAic3dpdGNoIiwgR1BJT19BQ1RJVkVfSElHSCksCi0JCXsg fQotCX0sCi19OwotCi1zdGF0aWMgc3RydWN0IGdwaW9kX2xvb2t1cF90YWJsZSBub2tpYTgxMF9t bWNfZ3Bpb190YWJsZSA9IHsKLQkuZGV2X2lkID0gIm1tY2ktb21hcC4wIiwKLQkudGFibGUgPSB7 Ci0JCS8qIFNsb3Qgc3dpdGNoLCBHUElPIDk2ICovCi0JCUdQSU9fTE9PS1VQKCJncGlvLTk2LTEy NyIsIDAsICJzd2l0Y2giLCBHUElPX0FDVElWRV9ISUdIKSwKLQkJLyogU2xvdCBpbmRleCAxLCBW U0QgcG93ZXIsIEdQSU8gMjMgKi8KLQkJR1BJT19MT09LVVBfSURYKCJncGlvLTAtMzEiLCAyMywg InZzZCIsIDEsIEdQSU9fQUNUSVZFX0hJR0gpLAotCQkvKiBTbG90IGluZGV4IDEsIFZJTyBwb3dl ciwgR1BJTyA5ICovCi0JCUdQSU9fTE9PS1VQX0lEWCgiZ3Bpby0wLTMxIiwgOSwgInZpbyIsIDEs IEdQSU9fQUNUSVZFX0hJR0gpLAotCQl7IH0KLQl9LAotfTsKLQotc3RhdGljIGludCBuOHgwX21t Y19zZXRfcG93ZXJfbWVuZWxhdXMoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgc2xvdCwKLQkJCQkJ aW50IHBvd2VyX29uLCBpbnQgdmRkKQotewotCWludCBtVjsKLQotI2lmZGVmIENPTkZJR19NTUNf REVCVUcKLQlkZXZfZGJnKGRldiwgIlNldCBzbG90ICVkIHBvd2VyOiAlcyAodmRkICVkKVxuIiwg c2xvdCArIDEsCi0JCXN0cl9vbl9vZmYocG93ZXJfb24pLCB2ZGQpOwotI2VuZGlmCi0JaWYgKHNs b3QgPT0gMCkgewotCQlpZiAoIXBvd2VyX29uKQotCQkJcmV0dXJuIG1lbmVsYXVzX3NldF92bW1j KDApOwotCQlzd2l0Y2ggKDEgPDwgdmRkKSB7Ci0JCWNhc2UgTU1DX1ZERF8zM18zNDoKLQkJY2Fz ZSBNTUNfVkREXzMyXzMzOgotCQljYXNlIE1NQ19WRERfMzFfMzI6Ci0JCQltViA9IDMxMDA7Ci0J CQlicmVhazsKLQkJY2FzZSBNTUNfVkREXzMwXzMxOgotCQkJbVYgPSAzMDAwOwotCQkJYnJlYWs7 Ci0JCWNhc2UgTU1DX1ZERF8yOF8yOToKLQkJCW1WID0gMjgwMDsKLQkJCWJyZWFrOwotCQljYXNl IE1NQ19WRERfMTY1XzE5NToKLQkJCW1WID0gMTg1MDsKLQkJCWJyZWFrOwotCQlkZWZhdWx0Ogot CQkJQlVHKCk7Ci0JCX0KLQkJcmV0dXJuIG1lbmVsYXVzX3NldF92bW1jKG1WKTsKLQl9IGVsc2Ug ewotCQlpZiAoIXBvd2VyX29uKQotCQkJcmV0dXJuIG1lbmVsYXVzX3NldF92ZGNkYygzLCAwKTsK LQkJc3dpdGNoICgxIDw8IHZkZCkgewotCQljYXNlIE1NQ19WRERfMzNfMzQ6Ci0JCWNhc2UgTU1D X1ZERF8zMl8zMzoKLQkJCW1WID0gMzMwMDsKLQkJCWJyZWFrOwotCQljYXNlIE1NQ19WRERfMzBf MzE6Ci0JCWNhc2UgTU1DX1ZERF8yOV8zMDoKLQkJCW1WID0gMzAwMDsKLQkJCWJyZWFrOwotCQlj YXNlIE1NQ19WRERfMjhfMjk6Ci0JCWNhc2UgTU1DX1ZERF8yN18yODoKLQkJCW1WID0gMjgwMDsK LQkJCWJyZWFrOwotCQljYXNlIE1NQ19WRERfMjRfMjU6Ci0JCWNhc2UgTU1DX1ZERF8yM18yNDoK LQkJCW1WID0gMjQwMDsKLQkJCWJyZWFrOwotCQljYXNlIE1NQ19WRERfMjJfMjM6Ci0JCWNhc2Ug TU1DX1ZERF8yMV8yMjoKLQkJCW1WID0gMjIwMDsKLQkJCWJyZWFrOwotCQljYXNlIE1NQ19WRERf MjBfMjE6Ci0JCQltViA9IDIwMDA7Ci0JCQlicmVhazsKLQkJY2FzZSBNTUNfVkREXzE2NV8xOTU6 Ci0JCQltViA9IDE4MDA7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCUJVRygpOwotCQl9Ci0J CXJldHVybiBtZW5lbGF1c19zZXRfdmRjZGMoMywgbVYpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQot c3RhdGljIGludCBuOHgwX21tY19zZXRfcG93ZXIoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgc2xv dCwgaW50IHBvd2VyX29uLAotCQkJICAgICAgaW50IHZkZCkKLXsKLQlpZiAoYm9hcmRfaXNfbjgw MCgpIHx8IHNsb3QgPT0gMCkKLQkJcmV0dXJuIG44eDBfbW1jX3NldF9wb3dlcl9tZW5lbGF1cyhk ZXYsIHNsb3QsIHBvd2VyX29uLCB2ZGQpOwotCi0JLyogVGhlIG44MTAgcG93ZXIgd2lsbCBiZSBo YW5kbGVkIGJ5IEdQSU8gY29kZSBpbiB0aGUgZHJpdmVyICovCi0KLQlyZXR1cm4gMDsKLX0KLQot c3RhdGljIGludCBuOHgwX21tY19zZXRfYnVzX21vZGUoc3RydWN0IGRldmljZSAqZGV2LCBpbnQg c2xvdCwgaW50IGJ1c19tb2RlKQotewotCWludCByOwotCi0JZGV2X2RiZyhkZXYsICJTZXQgc2xv dCAlZCBidXMgbW9kZSAlc1xuIiwgc2xvdCArIDEsCi0JCWJ1c19tb2RlID09IE1NQ19CVVNNT0RF X09QRU5EUkFJTiA/ICJvcGVuLWRyYWluIiA6ICJwdXNoLXB1bGwiKTsKLQlCVUdfT04oc2xvdCAh PSAwICYmIHNsb3QgIT0gMSk7Ci0Jc2xvdCsrOwotCXN3aXRjaCAoYnVzX21vZGUpIHsKLQljYXNl IE1NQ19CVVNNT0RFX09QRU5EUkFJTjoKLQkJciA9IG1lbmVsYXVzX3NldF9tbWNfb3BlbmRyYWlu KHNsb3QsIDEpOwotCQlicmVhazsKLQljYXNlIE1NQ19CVVNNT0RFX1BVU0hQVUxMOgotCQlyID0g bWVuZWxhdXNfc2V0X21tY19vcGVuZHJhaW4oc2xvdCwgMCk7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6 Ci0JCUJVRygpOwotCX0KLQlpZiAociAhPSAwICYmIHByaW50a19yYXRlbGltaXQoKSkKLQkJZGV2 X2VycihkZXYsICJNTUM6IHVuYWJsZSB0byBzZXQgYnVzIG1vZGUgZm9yIHNsb3QgJWRcbiIsCi0J CQlzbG90KTsKLQlyZXR1cm4gcjsKLX0KLQotc3RhdGljIGludCBuOHgwX21tY19nZXRfY292ZXJf c3RhdGUoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgc2xvdCkKLXsKLQlzbG90Kys7Ci0JQlVHX09O KHNsb3QgIT0gMSAmJiBzbG90ICE9IDIpOwotCWlmIChzbG90ID09IDEpCi0JCXJldHVybiBzbG90 MV9jb3Zlcl9vcGVuOwotCWVsc2UKLQkJcmV0dXJuIHNsb3QyX2NvdmVyX29wZW47Ci19Ci0KLXN0 YXRpYyB2b2lkIG44eDBfbW1jX2NhbGxiYWNrKHZvaWQgKmRhdGEsIHU4IGNhcmRfbWFzaykKLXsK LSNpZmRlZiBDT05GSUdfTU1DX09NQVAKLQlpbnQgYml0LCAqb3BlbnAsIGluZGV4OwotCi0JaWYg KGJvYXJkX2lzX244MDAoKSkgewotCQliaXQgPSAxIDw8IDE7Ci0JCW9wZW5wID0gJnNsb3QyX2Nv dmVyX29wZW47Ci0JCWluZGV4ID0gMTsKLQl9IGVsc2UgewotCQliaXQgPSAxOwotCQlvcGVucCA9 ICZzbG90MV9jb3Zlcl9vcGVuOwotCQlpbmRleCA9IDA7Ci0JfQotCi0JaWYgKGNhcmRfbWFzayAm IGJpdCkKLQkJKm9wZW5wID0gMTsKLQllbHNlCi0JCSpvcGVucCA9IDA7Ci0KLQlvbWFwX21tY19u b3RpZnlfY292ZXJfZXZlbnQobW1jX2RldmljZSwgaW5kZXgsICpvcGVucCk7Ci0jZWxzZQotCXBy X3dhcm4oIk1NQzogbm90aWZ5IGNvdmVyIGV2ZW50IG5vdCBhdmFpbGFibGVcbiIpOwotI2VuZGlm Ci19Ci0KLXN0YXRpYyBpbnQgbjh4MF9tbWNfbGF0ZV9pbml0KHN0cnVjdCBkZXZpY2UgKmRldikK LXsKLQlpbnQgciwgYml0LCAqb3BlbnA7Ci0JaW50IHZzMnNlbDsKLQotCW1tY19kZXZpY2UgPSBk ZXY7Ci0KLQlyID0gbWVuZWxhdXNfc2V0X3Nsb3Rfc2VsKDEpOwotCWlmIChyIDwgMCkKLQkJcmV0 dXJuIHI7Ci0KLQlpZiAoYm9hcmRfaXNfbjgwMCgpKQotCQl2czJzZWwgPSAwOwotCWVsc2UKLQkJ dnMyc2VsID0gMjsKLQotCXIgPSBtZW5lbGF1c19zZXRfbW1jX3Nsb3QoMiwgMCwgdnMyc2VsLCAx KTsKLQlpZiAociA8IDApCi0JCXJldHVybiByOwotCi0Jbjh4MF9tbWNfc2V0X3Bvd2VyKGRldiwg MCwgTU1DX1BPV0VSX09OLCAxNik7IC8qIE1NQ19WRERfMjhfMjkgKi8KLQluOHgwX21tY19zZXRf cG93ZXIoZGV2LCAxLCBNTUNfUE9XRVJfT04sIDE2KTsKLQotCXIgPSBtZW5lbGF1c19zZXRfbW1j X3Nsb3QoMSwgMSwgMCwgMSk7Ci0JaWYgKHIgPCAwKQotCQlyZXR1cm4gcjsKLQlyID0gbWVuZWxh dXNfc2V0X21tY19zbG90KDIsIDEsIHZzMnNlbCwgMSk7Ci0JaWYgKHIgPCAwKQotCQlyZXR1cm4g cjsKLQotCXIgPSBtZW5lbGF1c19nZXRfc2xvdF9waW5fc3RhdGVzKCk7Ci0JaWYgKHIgPCAwKQot CQlyZXR1cm4gcjsKLQotCWlmIChib2FyZF9pc19uODAwKCkpIHsKLQkJYml0ID0gMSA8PCAxOwot CQlvcGVucCA9ICZzbG90Ml9jb3Zlcl9vcGVuOwotCX0gZWxzZSB7Ci0JCWJpdCA9IDE7Ci0JCW9w ZW5wID0gJnNsb3QxX2NvdmVyX29wZW47Ci0JCXNsb3QyX2NvdmVyX29wZW4gPSAwOwotCX0KLQot CS8qIEFsbCBzbG90IHBpbiBiaXRzIHNlZW0gdG8gYmUgaW52ZXJzZWQgdW50aWwgZmlyc3Qgc3dp dGNoIGNoYW5nZSAqLwotCWlmIChyID09IDB4ZiB8fCByID09ICgweGYgJiB+Yml0KSkKLQkJciA9 IH5yOwotCi0JaWYgKHIgJiBiaXQpCi0JCSpvcGVucCA9IDE7Ci0JZWxzZQotCQkqb3BlbnAgPSAw OwotCi0JciA9IG1lbmVsYXVzX3JlZ2lzdGVyX21tY19jYWxsYmFjayhuOHgwX21tY19jYWxsYmFj aywgTlVMTCk7Ci0KLQlyZXR1cm4gcjsKLX0KLQotc3RhdGljIHZvaWQgbjh4MF9tbWNfc2h1dGRv d24oc3RydWN0IGRldmljZSAqZGV2KQotewotCWludCB2czJzZWw7Ci0KLQlpZiAoYm9hcmRfaXNf bjgwMCgpKQotCQl2czJzZWwgPSAwOwotCWVsc2UKLQkJdnMyc2VsID0gMjsKLQotCW1lbmVsYXVz X3NldF9tbWNfc2xvdCgxLCAwLCAwLCAwKTsKLQltZW5lbGF1c19zZXRfbW1jX3Nsb3QoMiwgMCwg dnMyc2VsLCAwKTsKLX0KLQotc3RhdGljIHZvaWQgbjh4MF9tbWNfY2xlYW51cChzdHJ1Y3QgZGV2 aWNlICpkZXYpCi17Ci0JbWVuZWxhdXNfdW5yZWdpc3Rlcl9tbWNfY2FsbGJhY2soKTsKLX0KLQot LyoKLSAqIE1NQyBjb250cm9sbGVyMSBoYXMgdHdvIHNsb3RzIHRoYXQgYXJlIG11bHRpcGxleGVk IHZpYSBJMkMuCi0gKiBNTUMgY29udHJvbGxlcjIgaXMgbm90IGluIHVzZS4KLSAqLwotc3RhdGlj IHN0cnVjdCBvbWFwX21tY19wbGF0Zm9ybV9kYXRhIG1tYzFfZGF0YSA9IHsKLQkubnJfc2xvdHMJ CQk9IDAsCi0JLmluaXQJCQkJPSBuOHgwX21tY19sYXRlX2luaXQsCi0JLmNsZWFudXAJCQk9IG44 eDBfbW1jX2NsZWFudXAsCi0JLnNodXRkb3duCQkJPSBuOHgwX21tY19zaHV0ZG93biwKLQkubWF4 X2ZyZXEJCQk9IDI0MDAwMDAwLAotCS5zbG90c1swXSA9IHsKLQkJLndpcmVzCQkJPSA0LAotCQku c2V0X3Bvd2VyCQk9IG44eDBfbW1jX3NldF9wb3dlciwKLQkJLnNldF9idXNfbW9kZQkJPSBuOHgw X21tY19zZXRfYnVzX21vZGUsCi0JCS5nZXRfY292ZXJfc3RhdGUJPSBuOHgwX21tY19nZXRfY292 ZXJfc3RhdGUsCi0JCS5vY3JfbWFzawkJPSBNTUNfVkREXzE2NV8xOTUgfCBNTUNfVkREXzMwXzMx IHwKLQkJCQkJCU1NQ19WRERfMzJfMzMgICB8IE1NQ19WRERfMzNfMzQsCi0JCS5uYW1lCQkJPSAi aW50ZXJuYWwiLAotCX0sCi0JLnNsb3RzWzFdID0gewotCQkuc2V0X3Bvd2VyCQk9IG44eDBfbW1j X3NldF9wb3dlciwKLQkJLnNldF9idXNfbW9kZQkJPSBuOHgwX21tY19zZXRfYnVzX21vZGUsCi0J CS5nZXRfY292ZXJfc3RhdGUJPSBuOHgwX21tY19nZXRfY292ZXJfc3RhdGUsCi0JCS5vY3JfbWFz awkJPSBNTUNfVkREXzE2NV8xOTUgfCBNTUNfVkREXzIwXzIxIHwKLQkJCQkJCU1NQ19WRERfMjFf MjIgfCBNTUNfVkREXzIyXzIzIHwKLQkJCQkJCU1NQ19WRERfMjNfMjQgfCBNTUNfVkREXzI0XzI1 IHwKLQkJCQkJCU1NQ19WRERfMjdfMjggfCBNTUNfVkREXzI4XzI5IHwKLQkJCQkJCU1NQ19WRERf MjlfMzAgfCBNTUNfVkREXzMwXzMxIHwKLQkJCQkJCU1NQ19WRERfMzJfMzMgfCBNTUNfVkREXzMz XzM0LAotCQkubmFtZQkJCT0gImV4dGVybmFsIiwKLQl9LAotfTsKLQotc3RhdGljIHN0cnVjdCBv bWFwX21tY19wbGF0Zm9ybV9kYXRhICptbWNfZGF0YVtPTUFQMjRYWF9OUl9NTUNdOwotCi1zdGF0 aWMgdm9pZCBfX2luaXQgbjh4MF9tbWNfaW5pdCh2b2lkKQotewotCWlmIChib2FyZF9pc19uODEw KCkpIHsKLQkJbW1jMV9kYXRhLnNsb3RzWzBdLm5hbWUgPSAiZXh0ZXJuYWwiOwotCi0JCS8qCi0J CSAqIFNvbWUgU2Ftc3VuZyBNb3ZpbmFuZCBjaGlwcyBkbyBub3QgbGlrZSBvcGVuLWVuZGVkCi0J CSAqIG11bHRpLWJsb2NrIHJlYWRzIGFuZCBmYWxsIHRvIGJyYWluZC1kZWFkIHN0YXRlCi0JCSAq IHdoaWxlIGRvaW5nIHNvLiBSZWR1Y2luZyB0aGUgbnVtYmVyIG9mIGJsb2NrcyBpbgotCQkgKiB0 aGUgdHJhbnNmZXIgb3IgZGVsYXlzIGluIGNsb2NrIGRpc2FibGUgZG8gbm90IGhlbHAKLQkJICov Ci0JCW1tYzFfZGF0YS5zbG90c1sxXS5uYW1lID0gImludGVybmFsIjsKLQkJbW1jMV9kYXRhLnNs b3RzWzFdLmJhbl9vcGVuZW5kZWQgPSAxOwotCQlncGlvZF9hZGRfbG9va3VwX3RhYmxlKCZub2tp YTgxMF9tbWNfZ3Bpb190YWJsZSk7Ci0JfSBlbHNlIHsKLQkJZ3Bpb2RfYWRkX2xvb2t1cF90YWJs ZSgmbm9raWE4MDBfbW1jX2dwaW9fdGFibGUpOwotCX0KLQotCW1tYzFfZGF0YS5ucl9zbG90cyA9 IDI7Ci0JbW1jX2RhdGFbMF0gPSAmbW1jMV9kYXRhOwotfQotI2Vsc2UKLXN0YXRpYyBzdHJ1Y3Qg b21hcF9tbWNfcGxhdGZvcm1fZGF0YSBtbWMxX2RhdGE7Ci1zdGF0aWMgdm9pZCBfX2luaXQgbjh4 MF9tbWNfaW5pdCh2b2lkKQotewotfQotI2VuZGlmCS8qIENPTkZJR19NTUNfT01BUCAqLwotCi0j aWZkZWYgQ09ORklHX01FTkVMQVVTCi0KLXN0YXRpYyBpbnQgbjh4MF9hdXRvX3NsZWVwX3JlZ3Vs YXRvcnModm9pZCkKLXsKLQl1MzIgdmFsOwotCWludCByZXQ7Ci0KLQl2YWwgPSBFTl9WUExMX1NM RUVQIHwgRU5fVk1NQ19TTEVFUCAgICBcCi0JCXwgRU5fVkFVWF9TTEVFUCB8IEVOX1ZJT19TTEVF UCBcCi0JCXwgRU5fVk1FTV9TTEVFUCB8IEVOX0RDM19TTEVFUCBcCi0JCXwgRU5fVkNfU0xFRVAg fCBFTl9EQzJfU0xFRVA7Ci0KLQlyZXQgPSBtZW5lbGF1c19zZXRfcmVndWxhdG9yX3NsZWVwKDEs IHZhbCk7Ci0JaWYgKHJldCA8IDApIHsKLQkJcHJfZXJyKCJDb3VsZCBub3Qgc2V0IHJlZ3VsYXRv cnMgdG8gc2xlZXAgb24gbWVuZWxhdXM6ICV1XG4iLAotCQkgICAgICAgcmV0KTsKLQkJcmV0dXJu IHJldDsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgbjh4MF9hdXRvX3ZvbHRhZ2Vf c2NhbGUodm9pZCkKLXsKLQlpbnQgcmV0OwotCi0JcmV0ID0gbWVuZWxhdXNfc2V0X3Zjb3JlX2h3 KDE0MDAsIDEwNTApOwotCWlmIChyZXQgPCAwKSB7Ci0JCXByX2VycigiQ291bGQgbm90IHNldCBW Q09SRSB2b2x0YWdlIG9uIG1lbmVsYXVzOiAldVxuIiwgcmV0KTsKLQkJcmV0dXJuIHJldDsKLQl9 Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgbjh4MF9tZW5lbGF1c19sYXRlX2luaXQoc3Ry dWN0IGRldmljZSAqZGV2KQotewotCWludCByZXQ7Ci0KLQlyZXQgPSBuOHgwX2F1dG9fdm9sdGFn ZV9zY2FsZSgpOwotCWlmIChyZXQgPCAwKQotCQlyZXR1cm4gcmV0OwotCXJldCA9IG44eDBfYXV0 b19zbGVlcF9yZWd1bGF0b3JzKCk7Ci0JaWYgKHJldCA8IDApCi0JCXJldHVybiByZXQ7Ci0JcmV0 dXJuIDA7Ci19Ci0KLSNlbHNlCi1zdGF0aWMgaW50IG44eDBfbWVuZWxhdXNfbGF0ZV9pbml0KHN0 cnVjdCBkZXZpY2UgKmRldikKLXsKLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi1zdHJ1Y3QgbWVu ZWxhdXNfcGxhdGZvcm1fZGF0YSBuOHgwX21lbmVsYXVzX3BsYXRmb3JtX2RhdGEgPSB7Ci0JLmxh dGVfaW5pdCA9IG44eDBfbWVuZWxhdXNfbGF0ZV9pbml0LAotfTsKLQotc3RhdGljIHN0cnVjdCBn cGlvZF9sb29rdXBfdGFibGUgbm9raWE4MTBfYXNvY19ncGlvX3RhYmxlID0gewotCS5kZXZfaWQg PSAic29jLWF1ZGlvIiwKLQkudGFibGUgPSB7Ci0JCUdQSU9fTE9PS1VQKCJncGlvLTAtMTUiLCAx MCwgImhlYWRzZXQiLCBHUElPX0FDVElWRV9ISUdIKSwKLQkJR1BJT19MT09LVVAoImdwaW8tODAt MTExIiwgMjEsICJzcGVha2VyIiwgR1BJT19BQ1RJVkVfSElHSCksCi0JCXsgfQotCX0sCi19Owot Ci1zdGF0aWMgaW50IF9faW5pdCBuOHgwX2xhdGVfaW5pdGNhbGwodm9pZCkKLXsKLQlpZiAoIWJv YXJkX2NhcHMpCi0JCXJldHVybiAtRU5PREVWOwotCi0Jbjh4MF9tbWNfaW5pdCgpOwotCW44eDBf dXNiX2luaXQoKTsKLQlncGlvZF9hZGRfbG9va3VwX3RhYmxlKCZub2tpYTgxMF9hc29jX2dwaW9f dGFibGUpOwotCi0JcmV0dXJuIDA7Ci19Ci1vbWFwX2xhdGVfaW5pdGNhbGwobjh4MF9sYXRlX2lu aXRjYWxsKTsKLQotLyoKLSAqIExlZ2FjeSBpbml0IHBkYXRhIGluaXQgZm9yIG44eDAuIE5vdGUg dGhhdCB3ZSB3YW50IHRvIGZvbGxvdyB0aGUKLSAqIEkyQyBidXMgbnVtYmVyaW5nIHN0YXJ0aW5n IGF0IDAgZm9yIGRldmljZSB0cmVlIGxpa2Ugb3RoZXIgb21hcHMuCi0gKi8KLXZvaWQgKiBfX2lu aXQgbjh4MF9sZWdhY3lfaW5pdCh2b2lkKQotewotCWJvYXJkX2NoZWNrX3JldmlzaW9uKCk7Ci0J cmV0dXJuICZtbWMxX2RhdGE7Ci19CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Ns a3QyeHh4X2RwbGwuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xrdDJ4eHhfZHBsbC5jCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZWRlYmYzMzU1ZmEuLjAwMDAwMDAwMDAwMAotLS0g YS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsa3QyeHh4X2RwbGwuYworKysgL2Rldi9udWxsCkBAIC0x LDU2ICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8q Ci0gKiBPTUFQMi1zcGVjaWZpYyBEUExMIGNvbnRyb2wgZnVuY3Rpb25zCi0gKgotICogQ29weXJp Z2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uCi0gKiBQYXVsIFdhbG1zbGV5Ci0gKi8KLQot I2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5j bHVkZSA8bGludXgvY2xrLmg+Ci0jaW5jbHVkZSA8bGludXgvaW8uaD4KLQotI2luY2x1ZGUgImNs b2NrLmgiCi0jaW5jbHVkZSAiY20yeHh4LmgiCi0jaW5jbHVkZSAiY20tcmVnYml0cy0yNHh4Lmgi Ci0KLS8qIFByaXZhdGUgZnVuY3Rpb25zICovCi0KLS8qKgotICogX2FsbG93X2lkbGUgLSBlbmFi bGUgRFBMTCBhdXRvaWRsZSBiaXRzCi0gKiBAY2xrOiBzdHJ1Y3QgY2xrICogb2YgdGhlIERQTEwg dG8gb3BlcmF0ZSBvbgotICoKLSAqIEVuYWJsZSBEUExMIGF1dG9tYXRpYyBpZGxlIGNvbnRyb2wu ICBUaGUgRFBMTCB3aWxsIGVudGVyIGxvdy1wb3dlcgotICogc3RvcCB3aGVuIGl0cyBkb3duc3Ry ZWFtIGNsb2NrcyBhcmUgZ2F0ZWQuICBObyByZXR1cm4gdmFsdWUuCi0gKiBSRVZJU0lUOiBEUExM IGNhbiBvcHRpb25hbGx5IGVudGVyIGxvdy1wb3dlciBieXBhc3MgYnkgd3JpdGluZyAweDEKLSAq IGluc3RlYWQuICBBZGQgc29tZSBtZWNoYW5pc20gdG8gb3B0aW9uYWxseSBlbnRlciB0aGlzIG1v ZGUuCi0gKi8KLXN0YXRpYyB2b2lkIF9hbGxvd19pZGxlKHN0cnVjdCBjbGtfaHdfb21hcCAqY2xr KQotewotCWlmICghY2xrIHx8ICFjbGstPmRwbGxfZGF0YSkKLQkJcmV0dXJuOwotCi0Jb21hcDJ4 eHhfY21fc2V0X2RwbGxfYXV0b19sb3dfcG93ZXJfc3RvcCgpOwotfQotCi0vKioKLSAqIF9kZW55 X2lkbGUgLSBwcmV2ZW50IERQTEwgZnJvbSBhdXRvbWF0aWNhbGx5IGlkbGluZwotICogQGNsazog c3RydWN0IGNsayAqIG9mIHRoZSBEUExMIHRvIG9wZXJhdGUgb24KLSAqCi0gKiBEaXNhYmxlIERQ TEwgYXV0b21hdGljIGlkbGUgY29udHJvbC4gIE5vIHJldHVybiB2YWx1ZS4KLSAqLwotc3RhdGlj IHZvaWQgX2RlbnlfaWRsZShzdHJ1Y3QgY2xrX2h3X29tYXAgKmNsaykKLXsKLQlpZiAoIWNsayB8 fCAhY2xrLT5kcGxsX2RhdGEpCi0JCXJldHVybjsKLQotCW9tYXAyeHh4X2NtX3NldF9kcGxsX2Rp c2FibGVfYXV0b2lkbGUoKTsKLX0KLQotCi0vKiBQdWJsaWMgZGF0YSAqLwotY29uc3Qgc3RydWN0 IGNsa19od19vbWFwX29wcyBjbGtod29wc19vbWFwMnh4eF9kcGxsID0gewotCS5hbGxvd19pZGxl CT0gX2FsbG93X2lkbGUsCi0JLmRlbnlfaWRsZQk9IF9kZW55X2lkbGUsCi19OwpkaWZmIC0tZ2l0 IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbGt0Mnh4eF9kcGxsY29yZS5jIGIvYXJjaC9hcm0vbWFj aC1vbWFwMi9jbGt0Mnh4eF9kcGxsY29yZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA5M2Y2ZDNjZDk1MjUuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Ns a3QyeHh4X2RwbGxjb3JlLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxOTQgKzAsMCBAQAotLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIERQTEwgKyBDT1JFX0NM SyBjb21wb3NpdGUgY2xvY2sgZnVuY3Rpb25zCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDA1LTIw MDggVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAwNC0yMDEwIE5v a2lhIENvcnBvcmF0aW9uCi0gKgotICogQ29udGFjdHM6Ci0gKiBSaWNoYXJkIFdvb2RydWZmIDxy LXdvb2RydWZmMkB0aS5jb20+Ci0gKiBQYXVsIFdhbG1zbGV5Ci0gKgotICogQmFzZWQgb24gZWFy bGllciB3b3JrIGJ5IFR1dWtrYSBUaWtrYW5lbiwgVG9ueSBMaW5kZ3JlbiwKLSAqIEdvcmRvbiBN Y051dHQgYW5kIFJpZGdlUnVuLCBJbmMuCi0gKgotICogWFhYIFRoZSBEUExMIGFuZCBDT1JFIGNs b2NrcyBzaG91bGQgYmUgc3BsaXQgaW50byB0d28gc2VwYXJhdGUgY2xvY2sKLSAqIHR5cGVzLgot ICovCi0jdW5kZWYgREVCVUcKLQotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUg PGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+Ci0jaW5jbHVkZSA8bGludXgv Y2xrL3RpLmg+Ci0jaW5jbHVkZSA8bGludXgvaW8uaD4KLQotI2luY2x1ZGUgImNsb2NrLmgiCi0j aW5jbHVkZSAiY2xvY2syeHh4LmgiCi0jaW5jbHVkZSAib3BwMnh4eC5oIgotI2luY2x1ZGUgImNt Mnh4eC5oIgotI2luY2x1ZGUgImNtLXJlZ2JpdHMtMjR4eC5oIgotI2luY2x1ZGUgInNkcmMuaCIK LSNpbmNsdWRlICJzcmFtLmgiCi0KLS8qICNkZWZpbmUgRE9XTl9WQVJJQUJMRV9EUExMIDEgKi8J CS8qIEV4cGVyaW1lbnRhbCAqLwotCi0vKgotICogZHBsbF9jb3JlX2NrOiBwb2ludGVyIHRvIHRo ZSBjb21iaW5lZCBkcGxsX2NrICsgY29yZV9jayBvbiBPTUFQMnh4eAotICogKGN1cnJlbnRseSBk ZWZpbmVkIGFzICJkcGxsX2NrIiBpbiB0aGUgT01BUDJ4eHggY2xvY2sgdHJlZSkuICBTZXQKLSAq IGR1cmluZyBkcGxsX2NrIGluaXQgYW5kIHVzZWQgbGF0ZXIgYnkgb21hcDJ4eHhfY2xrX2dldF9j b3JlX3JhdGUoKS4KLSAqLwotc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCAqZHBsbF9jb3JlX2Nr OwotCi0vKioKLSAqIG9tYXAyeHh4X2Nsa19nZXRfY29yZV9yYXRlIC0gcmV0dXJuIHRoZSBDT1JF X0NMSyByYXRlCi0gKgotICogUmV0dXJucyB0aGUgQ09SRV9DTEsgcmF0ZS4gIENPUkVfQ0xLIGNh biBoYXZlIG9uZSBvZiB0aHJlZSByYXRlCi0gKiBzb3VyY2VzIG9uIE9NQVAyeHh4OiB0aGUgRFBM TCBDTEtPVVQgcmF0ZSwgRFBMTCBDTEtPVVRYMiwgb3IgMzJLSHoKLSAqICh0aGUgbGF0dGVyIGlz IHVudXN1YWwpLiAgVGhpcyBjdXJyZW50bHkgc2hvdWxkIGJlIGNhbGxlZCB3aXRoCi0gKiBzdHJ1 Y3QgY2xrICpkcGxsX2NrLCB3aGljaCBpcyBhIGNvbXBvc2l0ZSBjbG9jayBvZiBkcGxsX2NrIGFu ZAotICogY29yZV9jay4KLSAqLwotdW5zaWduZWQgbG9uZyBvbWFwMnh4eF9jbGtfZ2V0X2NvcmVf cmF0ZSh2b2lkKQotewotCWxvbmcgbG9uZyBjb3JlX2NsazsKLQl1MzIgdjsKLQotCVdBUk5fT04o IWRwbGxfY29yZV9jayk7Ci0KLQljb3JlX2NsayA9IG9tYXAyX2dldF9kcGxsX3JhdGUoZHBsbF9j b3JlX2NrKTsKLQotCXYgPSBvbWFwMnh4eF9jbV9nZXRfY29yZV9jbGtfc3JjKCk7Ci0KLQlpZiAo diA9PSBDT1JFX0NMS19TUkNfMzJLKQotCQljb3JlX2NsayA9IDMyNzY4OwotCWVsc2UKLQkJY29y ZV9jbGsgKj0gdjsKLQotCXJldHVybiBjb3JlX2NsazsKLX0KLQotLyoKLSAqIFVzZXMgdGhlIGN1 cnJlbnQgcHJjbSBzZXQgdG8gdGVsbCBpZiBhIHJhdGUgaXMgdmFsaWQuCi0gKiBZb3UgY2FuIGdv IHNsb3dlciwgYnV0IG5vdCBmYXN0ZXIgd2l0aGluIGEgZ2l2ZW4gcmF0ZSBzZXQuCi0gKi8KLXN0 YXRpYyBsb25nIG9tYXAyX2RwbGxjb3JlX3JvdW5kX3JhdGUodW5zaWduZWQgbG9uZyB0YXJnZXRf cmF0ZSkKLXsKLQl1MzIgaGlnaCwgbG93LCBjb3JlX2Nsa19zcmM7Ci0KLQljb3JlX2Nsa19zcmMg PSBvbWFwMnh4eF9jbV9nZXRfY29yZV9jbGtfc3JjKCk7Ci0KLQlpZiAoY29yZV9jbGtfc3JjID09 IENPUkVfQ0xLX1NSQ19EUExMKSB7CS8qIERQTEwgY2xvY2tvdXQgKi8KLQkJaGlnaCA9IGN1cnJf cHJjbV9zZXQtPmRwbGxfc3BlZWQgKiAyOwotCQlsb3cgPSBjdXJyX3ByY21fc2V0LT5kcGxsX3Nw ZWVkOwotCX0gZWxzZSB7CQkJCS8qIERQTEwgY2xvY2tvdXQgeCAyICovCi0JCWhpZ2ggPSBjdXJy X3ByY21fc2V0LT5kcGxsX3NwZWVkOwotCQlsb3cgPSBjdXJyX3ByY21fc2V0LT5kcGxsX3NwZWVk IC8gMjsKLQl9Ci0KLSNpZmRlZiBET1dOX1ZBUklBQkxFX0RQTEwKLQlpZiAodGFyZ2V0X3JhdGUg PiBoaWdoKQotCQlyZXR1cm4gaGlnaDsKLQllbHNlCi0JCXJldHVybiB0YXJnZXRfcmF0ZTsKLSNl bHNlCi0JaWYgKHRhcmdldF9yYXRlID4gbG93KQotCQlyZXR1cm4gaGlnaDsKLQllbHNlCi0JCXJl dHVybiBsb3c7Ci0jZW5kaWYKLQotfQotCi11bnNpZ25lZCBsb25nIG9tYXAyX2RwbGxjb3JlX3Jl Y2FsYyhzdHJ1Y3QgY2xrX2h3ICpodywKLQkJCQkgICAgdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0 ZSkKLXsKLQlyZXR1cm4gb21hcDJ4eHhfY2xrX2dldF9jb3JlX3JhdGUoKTsKLX0KLQotaW50IG9t YXAyX3JlcHJvZ3JhbV9kcGxsY29yZShzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyBy YXRlLAotCQkJICAgICB1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlKQotewotCXN0cnVjdCBjbGtf aHdfb21hcCAqY2xrID0gdG9fY2xrX2h3X29tYXAoaHcpOwotCXUzMiBjdXJfcmF0ZSwgbG93LCBt dWx0LCBkaXYsIHZhbGlkX3JhdGUsIGRvbmVfcmF0ZTsKLQl1MzIgYnlwYXNzID0gMDsKLQlzdHJ1 Y3QgcHJjbV9jb25maWcgdG1wc2V0OwotCWNvbnN0IHN0cnVjdCBkcGxsX2RhdGEgKmRkOwotCi0J Y3VyX3JhdGUgPSBvbWFwMnh4eF9jbGtfZ2V0X2NvcmVfcmF0ZSgpOwotCW11bHQgPSBvbWFwMnh4 eF9jbV9nZXRfY29yZV9jbGtfc3JjKCk7Ci0KLQlpZiAoKHJhdGUgPT0gKGN1cl9yYXRlIC8gMikp ICYmIChtdWx0ID09IDIpKSB7Ci0JCW9tYXAyeHh4X3NkcmNfcmVwcm9ncmFtKENPUkVfQ0xLX1NS Q19EUExMLCAxKTsKLQl9IGVsc2UgaWYgKChyYXRlID09IChjdXJfcmF0ZSAqIDIpKSAmJiAobXVs dCA9PSAxKSkgewotCQlvbWFwMnh4eF9zZHJjX3JlcHJvZ3JhbShDT1JFX0NMS19TUkNfRFBMTF9Y MiwgMSk7Ci0JfSBlbHNlIGlmIChyYXRlICE9IGN1cl9yYXRlKSB7Ci0JCXZhbGlkX3JhdGUgPSBv bWFwMl9kcGxsY29yZV9yb3VuZF9yYXRlKHJhdGUpOwotCQlpZiAodmFsaWRfcmF0ZSAhPSByYXRl KQotCQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQkJaWYgKG11bHQgPT0gMSkKLQkJCWxvdyA9IGN1cnJf cHJjbV9zZXQtPmRwbGxfc3BlZWQ7Ci0JCWVsc2UKLQkJCWxvdyA9IGN1cnJfcHJjbV9zZXQtPmRw bGxfc3BlZWQgLyAyOwotCi0JCWRkID0gY2xrLT5kcGxsX2RhdGE7Ci0JCWlmICghZGQpCi0JCQly ZXR1cm4gLUVJTlZBTDsKLQotCQl0bXBzZXQuY21fY2xrc2VsMV9wbGwgPQotCQkJb21hcF9jbGtf bGxfb3BzLmNsa19yZWFkbCgmZGQtPm11bHRfZGl2MV9yZWcpOwotCQl0bXBzZXQuY21fY2xrc2Vs MV9wbGwgJj0gfihkZC0+bXVsdF9tYXNrIHwKLQkJCQkJICAgZGQtPmRpdjFfbWFzayk7Ci0JCWRp diA9ICgoY3Vycl9wcmNtX3NldC0+eHRhbF9zcGVlZCAvIDEwMDAwMDApIC0gMSk7Ci0JCXRtcHNl dC5jbV9jbGtzZWwyX3BsbCA9IG9tYXAyeHh4X2NtX2dldF9jb3JlX3BsbF9jb25maWcoKTsKLQkJ dG1wc2V0LmNtX2Nsa3NlbDJfcGxsICY9IH5PTUFQMjRYWF9DT1JFX0NMS19TUkNfTUFTSzsKLQkJ aWYgKHJhdGUgPiBsb3cpIHsKLQkJCXRtcHNldC5jbV9jbGtzZWwyX3BsbCB8PSBDT1JFX0NMS19T UkNfRFBMTF9YMjsKLQkJCW11bHQgPSAoKHJhdGUgLyAyKSAvIDEwMDAwMDApOwotCQkJZG9uZV9y YXRlID0gQ09SRV9DTEtfU1JDX0RQTExfWDI7Ci0JCX0gZWxzZSB7Ci0JCQl0bXBzZXQuY21fY2xr c2VsMl9wbGwgfD0gQ09SRV9DTEtfU1JDX0RQTEw7Ci0JCQltdWx0ID0gKHJhdGUgLyAxMDAwMDAw KTsKLQkJCWRvbmVfcmF0ZSA9IENPUkVfQ0xLX1NSQ19EUExMOwotCQl9Ci0JCXRtcHNldC5jbV9j bGtzZWwxX3BsbCB8PSAoZGl2IDw8IF9fZmZzKGRkLT5tdWx0X21hc2spKTsKLQkJdG1wc2V0LmNt X2Nsa3NlbDFfcGxsIHw9IChtdWx0IDw8IF9fZmZzKGRkLT5kaXYxX21hc2spKTsKLQotCQkvKiBX b3JzdCBjYXNlICovCi0JCXRtcHNldC5iYXNlX3NkcmNfcmZyID0gU0RSQ19SRlJfQ1RSTF9CWVBB U1M7Ci0KLQkJaWYgKHJhdGUgPT0gY3Vycl9wcmNtX3NldC0+eHRhbF9zcGVlZCkJLyogSWYgYXNr aW5nIGZvciAxLTEgKi8KLQkJCWJ5cGFzcyA9IDE7Ci0KLQkJLyogRm9yIG9tYXAyeHh4X3NkcmNf aW5pdF9wYXJhbXMoKSAqLwotCQlvbWFwMnh4eF9zZHJjX3JlcHJvZ3JhbShDT1JFX0NMS19TUkNf RFBMTF9YMiwgMSk7Ci0KLQkJLyogRm9yY2UgZGxsIGxvY2sgbW9kZSAqLwotCQlvbWFwMl9zZXRf cHJjbSh0bXBzZXQuY21fY2xrc2VsMV9wbGwsIHRtcHNldC5iYXNlX3NkcmNfcmZyLAotCQkJICAg ICAgIGJ5cGFzcyk7Ci0KLQkJLyogRXJyYXRhOiByZXQgZGxsIGVudHJ5IHN0YXRlICovCi0JCW9t YXAyeHh4X3NkcmNfaW5pdF9wYXJhbXMob21hcDJ4eHhfc2RyY19kbGxfaXNfdW5sb2NrZWQoKSk7 Ci0JCW9tYXAyeHh4X3NkcmNfcmVwcm9ncmFtKGRvbmVfcmF0ZSwgMCk7Ci0JfQotCi0JcmV0dXJu IDA7Ci19Ci0KLS8qKgotICogb21hcDJ4eHhfY2xrdF9kcGxsY29yZV9pbml0IC0gY2xrIGluaXQg ZnVuY3Rpb24gZm9yIGRwbGxfY2sKLSAqIEBjbGs6IHN0cnVjdCBjbGsgKmRwbGxfY2sKLSAqCi0g KiBTdG9yZSBhIGxvY2FsIGNvcHkgb2YgQGNsayBpbiBkcGxsX2NvcmVfY2sgc28gb3RoZXIgY29k ZSBjYW4gcXVlcnkKLSAqIHRoZSBjb3JlIHJhdGUgd2l0aG91dCBoYXZpbmcgdG8gY2xrX2dldCgp LCB3aGljaCBjYW4gc2xlZXAuICBNdXN0Ci0gKiBvbmx5IGJlIGNhbGxlZCBvbmNlLiAgTm8gcmV0 dXJuIHZhbHVlLiAgWFhYIElmIHRoZSBjbG9jawotICogcmVnaXN0cmF0aW9uIHByb2Nlc3MgaXMg ZXZlciBjaGFuZ2VkIHN1Y2ggdGhhdCBkcGxsX2NrIGlzIG5vIGxvbmdlcgotICogc3RhdGljYWxs eSBkZWZpbmVkLCB0aGlzIGNvZGUgbWF5IG5lZWQgdG8gY2hhbmdlIHRvIGluY3JlbWVudCBzb21l Ci0gKiBraW5kIG9mIHVzZSBjb3VudCBvbiBkcGxsX2NrLgotICovCi12b2lkIG9tYXAyeHh4X2Ns a3RfZHBsbGNvcmVfaW5pdChzdHJ1Y3QgY2xrX2h3ICpodykKLXsKLQlXQVJOKGRwbGxfY29yZV9j aywgImRwbGxfY29yZV9jayBhbHJlYWR5IHNldCAtIHNob3VsZCBuZXZlciBoYXBwZW4iKTsKLQlk cGxsX2NvcmVfY2sgPSB0b19jbGtfaHdfb21hcChodyk7Ci19CmRpZmYgLS1naXQgYS9hcmNoL2Fy bS9tYWNoLW9tYXAyL2Nsa3QyeHh4X3ZpcnRfcHJjbV9zZXQuYyBiL2FyY2gvYXJtL21hY2gtb21h cDIvY2xrdDJ4eHhfdmlydF9wcmNtX3NldC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAyYjA0ZTQyMmI0NmMuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Ns a3QyeHh4X3ZpcnRfcHJjbV9zZXQuYworKysgL2Rldi9udWxsCkBAIC0xLDI1OSArMCwwIEBACi0v LyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgotICogT01BUDJ4eHgg RFZGUyB2aXJ0dWFsIGNsb2NrIGZ1bmN0aW9ucwotICoKLSAqIENvcHlyaWdodCAoQykgMjAwNS0y MDA4LCAyMDEyIFRleGFzIEluc3RydW1lbnRzLCBJbmMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQt MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbgotICoKLSAqIENvbnRhY3RzOgotICogUmljaGFyZCBXb29k cnVmZiA8ci13b29kcnVmZjJAdGkuY29tPgotICogUGF1bCBXYWxtc2xleQotICoKLSAqIEJhc2Vk IG9uIGVhcmxpZXIgd29yayBieSBUdXVra2EgVGlra2FuZW4sIFRvbnkgTGluZGdyZW4sCi0gKiBH b3Jkb24gTWNOdXR0IGFuZCBSaWRnZVJ1biwgSW5jLgotICoKLSAqIFhYWCBTb21lIG9mIHRoaXMg Y29kZSBzaG91bGQgYmUgcmVwbGFjZWFibGUgYnkgdGhlIHVwY29taW5nIE9QUCBsYXllcgotICog Y29kZS4gIEhvd2V2ZXIsIHNvbWUgbm90aW9uIG9mICJyYXRlIHNldCIgaXMgcHJvYmFibHkgc3Rp bGwgbmVjZXNzYXJ5Ci0gKiBmb3IgT01BUDJ4eHggYXQgbGVhc3QuICBSYXRlIHNldHMgc2hvdWxk IGJlIGdlbmVyYWxpemVkIHNvIHRoZXkgY2FuIGJlCi0gKiB1c2VkIGZvciBhbnkgT01BUCBjaGlw LCBub3QganVzdCBPTUFQMnh4eC4gIEluIHBhcnRpY3VsYXIsIFJpY2hhcmQgV29vZHJ1ZmYKLSAq IGhhcyBpbiB0aGUgcGFzdCBleHByZXNzZWQgYSBwcmVmZXJlbmNlIHRvIHVzZSByYXRlIHNldHMg Zm9yIE9QUCBjaGFuZ2VzLAotICogcmF0aGVyIHRoYW4gZHluYW1pY2FsbHkgcmVjYWxjdWxhdGlu ZyB0aGUgY2xvY2sgdHJlZSwgc28gaWYgc29tZW9uZSB3YW50cwotICogdGhpcyBiYWRseSBlbm91 Z2ggdG8gd3JpdGUgdGhlIGNvZGUgdG8gaGFuZGxlIGl0LCB3ZSBzaG91bGQgc3VwcG9ydCBpdAot ICogYXMgYW4gb3B0aW9uLgotICovCi0jdW5kZWYgREVCVUcKLQotI2luY2x1ZGUgPGxpbnV4L2tl cm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+ Ci0jaW5jbHVkZSA8bGludXgvaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9jcHVmcmVxLmg+Ci0jaW5j bHVkZSA8bGludXgvc2xhYi5oPgotCi0jaW5jbHVkZSAic29jLmgiCi0jaW5jbHVkZSAiY2xvY2su aCIKLSNpbmNsdWRlICJjbG9jazJ4eHguaCIKLSNpbmNsdWRlICJvcHAyeHh4LmgiCi0jaW5jbHVk ZSAiY20yeHh4LmgiCi0jaW5jbHVkZSAiY20tcmVnYml0cy0yNHh4LmgiCi0jaW5jbHVkZSAic2Ry Yy5oIgotI2luY2x1ZGUgInNyYW0uaCIKLQotc3RhdGljIHUxNiBjcHVfbWFzazsKLQotY29uc3Qg c3RydWN0IHByY21fY29uZmlnICpjdXJyX3ByY21fc2V0OwotY29uc3Qgc3RydWN0IHByY21fY29u ZmlnICpyYXRlX3RhYmxlOwotCi0vKgotICogc3lzX2NrX3JhdGU6IHRoZSByYXRlIG9mIHRoZSBl eHRlcm5hbCBoaWdoLWZyZXF1ZW5jeSBjbG9jawotICogb3NjaWxsYXRvciBvbiB0aGUgYm9hcmQu ICBTZXQgYnkgdGhlIFNvQy1zcGVjaWZpYyBjbG9jayBpbml0IGNvZGUuCi0gKiBPbmNlIHNldCBk dXJpbmcgYSBib290LCB3aWxsIG5vdCBjaGFuZ2UuCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBsb25n IHN5c19ja19yYXRlOwotCi0vKioKLSAqIG9tYXAyX3RhYmxlX21wdV9yZWNhbGMgLSBqdXN0IHJl dHVybiB0aGUgTVBVIHNwZWVkCi0gKiBAY2xrOiB2aXJ0X3ByY21fc2V0IHN0cnVjdCBjbGsKLSAq Ci0gKiBTZXQgdmlydF9wcmNtX3NldCdzIHJhdGUgdG8gdGhlIG1wdV9zcGVlZCBmaWVsZCBvZiB0 aGUgY3VycmVudCBQUkNNIHNldC4KLSAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgb21hcDJfdGFi bGVfbXB1X3JlY2FsYyhzdHJ1Y3QgY2xrX2h3ICpjbGssCi0JCQkJICAgICB1bnNpZ25lZCBsb25n IHBhcmVudF9yYXRlKQotewotCXJldHVybiBjdXJyX3ByY21fc2V0LT5tcHVfc3BlZWQ7Ci19Ci0K LS8qCi0gKiBMb29rIGZvciBhIHJhdGUgZXF1YWwgb3IgbGVzcyB0aGFuIHRoZSB0YXJnZXQgcmF0 ZSBnaXZlbiBhIGNvbmZpZ3VyYXRpb24gc2V0LgotICoKLSAqIFdoYXQncyBub3QgZW50aXJlbHkg Y2xlYXIgaXMgIndoaWNoIiBmaWVsZCByZXByZXNlbnRzIHRoZSBrZXkgZmllbGQuCi0gKiBTb21l IG1pZ2h0IGFyZ3VlIEwzLUREUiwgb3RoZXJzIEFSTSwgb3RoZXJzIElWQS4gVGhpcyBjb2RlIGlz IHNpbXBsZSBhbmQKLSAqIGp1c3QgdXNlcyB0aGUgQVJNIHJhdGVzLgotICovCi1zdGF0aWMgaW50 IG9tYXAyX2RldGVybWluZV9yYXRlX3RvX3RhYmxlKHN0cnVjdCBjbGtfaHcgKmh3LAotCQkJCQkg c3RydWN0IGNsa19yYXRlX3JlcXVlc3QgKnJlcSkKLXsKLQljb25zdCBzdHJ1Y3QgcHJjbV9jb25m aWcgKnB0cjsKLQlsb25nIGhpZ2hlc3RfcmF0ZTsKLQotCWhpZ2hlc3RfcmF0ZSA9IC1FSU5WQUw7 Ci0KLQlmb3IgKHB0ciA9IHJhdGVfdGFibGU7IHB0ci0+bXB1X3NwZWVkOyBwdHIrKykgewotCQlp ZiAoIShwdHItPmZsYWdzICYgY3B1X21hc2spKQotCQkJY29udGludWU7Ci0JCWlmIChwdHItPnh0 YWxfc3BlZWQgIT0gc3lzX2NrX3JhdGUpCi0JCQljb250aW51ZTsKLQotCQloaWdoZXN0X3JhdGUg PSBwdHItPm1wdV9zcGVlZDsKLQotCQkvKiBDYW4gY2hlY2sgb25seSBhZnRlciB4dGFsIGZyZXF1 ZW5jeSBjaGVjayAqLwotCQlpZiAocHRyLT5tcHVfc3BlZWQgPD0gcmVxLT5yYXRlKQotCQkJYnJl YWs7Ci0JfQotCXJlcS0+cmF0ZSA9IGhpZ2hlc3RfcmF0ZTsKLQotCXJldHVybiAwOwotfQotCi0v KiBTZXRzIGJhc2ljIGNsb2NrcyBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIHJhdGUgKi8KLXN0YXRp YyBpbnQgb21hcDJfc2VsZWN0X3RhYmxlX3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVk IGxvbmcgcmF0ZSwKLQkJCQkgICB1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlKQotewotCXUzMiBj dXJfcmF0ZSwgZG9uZV9yYXRlLCBieXBhc3MgPSAwOwotCWNvbnN0IHN0cnVjdCBwcmNtX2NvbmZp ZyAqcHJjbTsKLQl1bnNpZ25lZCBsb25nIGZvdW5kX3NwZWVkID0gMDsKLQl1bnNpZ25lZCBsb25n IGZsYWdzOwotCi0JZm9yIChwcmNtID0gcmF0ZV90YWJsZTsgcHJjbS0+bXB1X3NwZWVkOyBwcmNt KyspIHsKLQkJaWYgKCEocHJjbS0+ZmxhZ3MgJiBjcHVfbWFzaykpCi0JCQljb250aW51ZTsKLQot CQlpZiAocHJjbS0+eHRhbF9zcGVlZCAhPSBzeXNfY2tfcmF0ZSkKLQkJCWNvbnRpbnVlOwotCi0J CWlmIChwcmNtLT5tcHVfc3BlZWQgPD0gcmF0ZSkgewotCQkJZm91bmRfc3BlZWQgPSBwcmNtLT5t cHVfc3BlZWQ7Ci0JCQlicmVhazsKLQkJfQotCX0KLQotCWlmICghZm91bmRfc3BlZWQpIHsKLQkJ cHJpbnRrKEtFUk5fSU5GTyAiQ291bGQgbm90IHNldCBNUFUgcmF0ZSB0byAlbHVNSHpcbiIsCi0J CSAgICAgICByYXRlIC8gMTAwMDAwMCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWN1cnJf cHJjbV9zZXQgPSBwcmNtOwotCWN1cl9yYXRlID0gb21hcDJ4eHhfY2xrX2dldF9jb3JlX3JhdGUo KTsKLQotCWlmIChwcmNtLT5kcGxsX3NwZWVkID09IGN1cl9yYXRlIC8gMikgewotCQlvbWFwMnh4 eF9zZHJjX3JlcHJvZ3JhbShDT1JFX0NMS19TUkNfRFBMTCwgMSk7Ci0JfSBlbHNlIGlmIChwcmNt LT5kcGxsX3NwZWVkID09IGN1cl9yYXRlICogMikgewotCQlvbWFwMnh4eF9zZHJjX3JlcHJvZ3Jh bShDT1JFX0NMS19TUkNfRFBMTF9YMiwgMSk7Ci0JfSBlbHNlIGlmIChwcmNtLT5kcGxsX3NwZWVk ICE9IGN1cl9yYXRlKSB7Ci0JCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLQotCQlpZiAocHJjbS0+ ZHBsbF9zcGVlZCA9PSBwcmNtLT54dGFsX3NwZWVkKQotCQkJYnlwYXNzID0gMTsKLQotCQlpZiAo KHByY20tPmNtX2Nsa3NlbDJfcGxsICYgT01BUDI0WFhfQ09SRV9DTEtfU1JDX01BU0spID09Ci0J CSAgICBDT1JFX0NMS19TUkNfRFBMTF9YMikKLQkJCWRvbmVfcmF0ZSA9IENPUkVfQ0xLX1NSQ19E UExMX1gyOwotCQllbHNlCi0JCQlkb25lX3JhdGUgPSBDT1JFX0NMS19TUkNfRFBMTDsKLQotCQlv bWFwMnh4eF9jbV9zZXRfbW9kX2RpdmlkZXJzKHByY20tPmNtX2Nsa3NlbF9tcHUsCi0JCQkJCSAg ICAgcHJjbS0+Y21fY2xrc2VsX2RzcCwKLQkJCQkJICAgICBwcmNtLT5jbV9jbGtzZWxfZ2Z4LAot CQkJCQkgICAgIHByY20tPmNtX2Nsa3NlbDFfY29yZSwKLQkJCQkJICAgICBwcmNtLT5jbV9jbGtz ZWxfbWRtKTsKLQotCQkvKiB4MiB0byBlbnRlciBvbWFwMnh4eF9zZHJjX2luaXRfcGFyYW1zKCkg Ki8KLQkJb21hcDJ4eHhfc2RyY19yZXByb2dyYW0oQ09SRV9DTEtfU1JDX0RQTExfWDIsIDEpOwot Ci0JCW9tYXAyX3NldF9wcmNtKHByY20tPmNtX2Nsa3NlbDFfcGxsLCBwcmNtLT5iYXNlX3NkcmNf cmZyLAotCQkJICAgICAgIGJ5cGFzcyk7Ci0KLQkJb21hcDJ4eHhfc2RyY19pbml0X3BhcmFtcyhv bWFwMnh4eF9zZHJjX2RsbF9pc191bmxvY2tlZCgpKTsKLQkJb21hcDJ4eHhfc2RyY19yZXByb2dy YW0oZG9uZV9yYXRlLCAwKTsKLQotCQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0JfQotCi0J cmV0dXJuIDA7Ci19Ci0KLS8qKgotICogb21hcDJ4eHhfY2xrdF92cHNfY2hlY2tfYm9vdGxvYWRl cl9yYXRlcyAtIGRldGVybWluZSB3aGljaCBvZiB0aGUgcmF0ZQotICogdGFibGUgc2V0cyBtYXRj aGVzIHRoZSBjdXJyZW50IENPUkUgRFBMTCBoYXJkd2FyZSByYXRlCi0gKgotICogQ2hlY2sgdGhl IE1QVSByYXRlIHNldCBieSBib290bG9hZGVyLiAgU2V0cyB0aGUgJ2N1cnJfcHJjbV9zZXQnCi0g KiBnbG9iYWwgdG8gcG9pbnQgdG8gdGhlIGFjdGl2ZSByYXRlIHNldCB3aGVuIGZvdW5kOyBvdGhl cndpc2UsIHNldHMKLSAqIGl0IHRvIE5VTEwuICBObyByZXR1cm4gdmFsdWU7Ci0gKi8KLXN0YXRp YyB2b2lkIG9tYXAyeHh4X2Nsa3RfdnBzX2NoZWNrX2Jvb3Rsb2FkZXJfcmF0ZXModm9pZCkKLXsK LQljb25zdCBzdHJ1Y3QgcHJjbV9jb25maWcgKnByY20gPSBOVUxMOwotCXVuc2lnbmVkIGxvbmcg cmF0ZTsKLQotCXJhdGUgPSBvbWFwMnh4eF9jbGtfZ2V0X2NvcmVfcmF0ZSgpOwotCWZvciAocHJj bSA9IHJhdGVfdGFibGU7IHByY20tPm1wdV9zcGVlZDsgcHJjbSsrKSB7Ci0JCWlmICghKHByY20t PmZsYWdzICYgY3B1X21hc2spKQotCQkJY29udGludWU7Ci0JCWlmIChwcmNtLT54dGFsX3NwZWVk ICE9IHN5c19ja19yYXRlKQotCQkJY29udGludWU7Ci0JCWlmIChwcmNtLT5kcGxsX3NwZWVkIDw9 IHJhdGUpCi0JCQlicmVhazsKLQl9Ci0JY3Vycl9wcmNtX3NldCA9IHByY207Ci19Ci0KLS8qKgot ICogb21hcDJ4eHhfY2xrdF92cHNfbGF0ZV9pbml0IC0gc3RvcmUgYSBjb3B5IG9mIHRoZSBzeXNf Y2sgcmF0ZQotICoKLSAqIFN0b3JlIGEgY29weSBvZiB0aGUgc3lzX2NrIHJhdGUgZm9yIGxhdGVy IHVzZSBieSB0aGUgT01BUDJ4eHggRFZGUwotICogY29kZS4gIChUaGUgc3lzX2NrIHJhdGUgZG9l cyBub3QgLS0gb3IgcmF0aGVyLCBtdXN0IG5vdCAtLSBjaGFuZ2UKLSAqIGR1cmluZyBrZXJuZWwg cnVudGltZS4pICBNdXN0IGJlIGNhbGxlZCBhZnRlciB3ZSBoYXZlIGEgdmFsaWQKLSAqIHN5c19j ayByYXRlLCBidXQgYmVmb3JlIHRoZSB2aXJ0X3ByY21fc2V0IGNsb2NrIHJhdGUgaXMKLSAqIHJl Y2FsY3VsYXRlZC4gIE5vIHJldHVybiB2YWx1ZS4KLSAqLwotc3RhdGljIHZvaWQgb21hcDJ4eHhf Y2xrdF92cHNfbGF0ZV9pbml0KHZvaWQpCi17Ci0Jc3RydWN0IGNsayAqYzsKLQotCWMgPSBjbGtf Z2V0KE5VTEwsICJzeXNfY2siKTsKLQlpZiAoSVNfRVJSKGMpKSB7Ci0JCVdBUk4oMSwgImNvdWxk IG5vdCBsb2NhdGUgc3lzX2NrXG4iKTsKLQl9IGVsc2UgewotCQlzeXNfY2tfcmF0ZSA9IGNsa19n ZXRfcmF0ZShjKTsKLQkJY2xrX3B1dChjKTsKLQl9Ci19Ci0KLSNpZmRlZiBDT05GSUdfT0YKLSNp bmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGtkZXYuaD4K LQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIHZpcnRfcHJjbV9zZXRfb3BzID0gewotCS5y ZWNhbGNfcmF0ZQk9ICZvbWFwMl90YWJsZV9tcHVfcmVjYWxjLAotCS5zZXRfcmF0ZQk9ICZvbWFw Ml9zZWxlY3RfdGFibGVfcmF0ZSwKLQkuZGV0ZXJtaW5lX3JhdGUgPSAmb21hcDJfZGV0ZXJtaW5l X3JhdGVfdG9fdGFibGUsCi19OwotCi0vKioKLSAqIG9tYXAyeHh4X2Nsa3RfdnBzX2luaXQgLSBp bml0aWFsaXplIHZpcnRfcHJjbV9zZXQgY2xvY2sKLSAqCi0gKiBEb2VzIGEgbWFudWFsIGluaXQg Zm9yIHRoZSB2aXJ0dWFsIHByY20gRFZGUyBjbG9jayBmb3IgT01BUDIuIFRoaXMKLSAqIGZ1bmN0 aW9uIGlzIGNhbGxlZCBvbmx5IGZyb20gb21hcDIgRFQgY2xvY2sgaW5pdCwgYXMgdGhlIHZpcnR1 YWwKLSAqIG5vZGUgaXMgbm90IG1vZGVsbGVkIGluIHRoZSBEVCBjbG9jayBkYXRhLgotICovCi12 b2lkIG9tYXAyeHh4X2Nsa3RfdnBzX2luaXQodm9pZCkKLXsKLQlzdHJ1Y3QgY2xrX2luaXRfZGF0 YSBpbml0ID0geyBOVUxMIH07Ci0Jc3RydWN0IGNsa19od19vbWFwICpodyA9IE5VTEw7Ci0Jc3Ry dWN0IGNsayAqY2xrOwotCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lID0gIm1wdV9jayI7Ci0KLQlv bWFwMnh4eF9jbGt0X3Zwc19sYXRlX2luaXQoKTsKLQlvbWFwMnh4eF9jbGt0X3Zwc19jaGVja19i b290bG9hZGVyX3JhdGVzKCk7Ci0KLQlodyA9IGt6YWxsb2Nfb2JqKCpodyk7Ci0JaWYgKCFodykK LQkJcmV0dXJuOwotCWluaXQubmFtZSA9ICJ2aXJ0X3ByY21fc2V0IjsKLQlpbml0Lm9wcyA9ICZ2 aXJ0X3ByY21fc2V0X29wczsKLQlpbml0LnBhcmVudF9uYW1lcyA9ICZwYXJlbnRfbmFtZTsKLQlp bml0Lm51bV9wYXJlbnRzID0gMTsKLQotCWh3LT5ody5pbml0ID0gJmluaXQ7Ci0KLQljbGsgPSBj bGtfcmVnaXN0ZXIoTlVMTCwgJmh3LT5odyk7Ci0JaWYgKElTX0VSUihjbGspKSB7Ci0JCXByaW50 ayhLRVJOX0VSUiAiRmFpbGVkIHRvIHJlZ2lzdGVyIGNsb2NrXG4iKTsKLQkJa2ZyZWUoaHcpOwot CQlyZXR1cm47Ci0JfQotCi0JY2xrZGV2X2NyZWF0ZShjbGssICJjcHVmcmVxX2NrIiwgTlVMTCk7 Ci19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suYyBiL2Fy Y2gvYXJtL21hY2gtb21hcDIvY2xvY2suYwppbmRleCA4M2ZhZTUxNzIyYTkuLmI3M2E4MDUwM2Rh OCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5jCisrKyBiL2FyY2gvYXJt L21hY2gtb21hcDIvY2xvY2suYwpAQCAtMzAsOSArMzAsNyBAQAogI2luY2x1ZGUgImNsb2NrZG9t YWluLmgiCiAjaW5jbHVkZSAiY2xvY2suaCIKICNpbmNsdWRlICJjbS5oIgotI2luY2x1ZGUgImNt Mnh4eC5oIgogI2luY2x1ZGUgImNtM3h4eC5oIgotI2luY2x1ZGUgImNtLXJlZ2JpdHMtMjR4eC5o IgogI2luY2x1ZGUgImNtLXJlZ2JpdHMtMzR4eC5oIgogI2luY2x1ZGUgImNvbW1vbi5oIgogCkBA IC05NCwxMSArOTIsNyBAQCB2b2lkIF9faW5pdCB0aV9jbGtfaW5pdF9mZWF0dXJlcyh2b2lkKQog CX0KIAogCS8qIEJ5cGFzcyB2YWx1ZSBzZXR1cCBmb3IgRFBMTHMgKi8KLQlpZiAoY3B1X2lzX29t YXAyNHh4KCkpIHsKLQkJZmVhdHVyZXMuZHBsbF9ieXBhc3NfdmFscyB8PQotCQkJKDEgPDwgT01B UDJYWFhfRU5fRFBMTF9MUEJZUEFTUykgfAotCQkJKDEgPDwgT01BUDJYWFhfRU5fRFBMTF9GUkJZ UEFTUyk7Ci0JfSBlbHNlIGlmIChjcHVfaXNfb21hcDM0eHgoKSkgeworCWlmIChjcHVfaXNfb21h cDM0eHgoKSkgewogCQlmZWF0dXJlcy5kcGxsX2J5cGFzc192YWxzIHw9CiAJCQkoMSA8PCBPTUFQ M1hYWF9FTl9EUExMX0xQQllQQVNTKSB8CiAJCQkoMSA8PCBPTUFQM1hYWF9FTl9EUExMX0ZSQllQ QVNTKTsKQEAgLTEyMiw5ICsxMTYsNyBAQCB2b2lkIF9faW5pdCB0aV9jbGtfaW5pdF9mZWF0dXJl cyh2b2lkKQogCSAqIDM0eHggcmV2ZXJzZXMgdGhpcywganVzdCB0byBrZWVwIHVzIG9uIG91ciB0 b2VzCiAJICogQU0zNXh4IHVzZXMgYm90aCwgZGVwZW5kaW5nIG9uIHRoZSBtb2R1bGUuCiAJICov Ci0JaWYgKGNwdV9pc19vbWFwMjR4eCgpKQotCQlmZWF0dXJlcy5jbV9pZGxlc3RfdmFsID0gT01B UDI0WFhfQ01fSURMRVNUX1ZBTDsKLQllbHNlIGlmIChjcHVfaXNfb21hcDM0eHgoKSkKKwlpZiAo Y3B1X2lzX29tYXAzNHh4KCkpCiAJCWZlYXR1cmVzLmNtX2lkbGVzdF92YWwgPSBPTUFQMzRYWF9D TV9JRExFU1RfVkFMOwogCiAJLyogT24gT01BUDM0MzAgRVMxLjAsIERQTEw0IGNhbid0IGJlIHJl LXByb2dyYW1tZWQgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2syeHh4 LmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMnh4eC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA3M2MwMTFkYWRmZDIuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNo LW9tYXAyL2Nsb2NrMnh4eC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotLyogU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KLS8qCi0gKiBPTUFQMiBjbG9jayBmdW5j dGlvbiBwcm90b3R5cGVzIGFuZCBtYWNyb3MKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAx MCBUZXhhcyBJbnN0cnVtZW50cywgSW5jLgotICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTAgTm9r aWEgQ29ycG9yYXRpb24KLSAqLwotCi0jaWZuZGVmIF9fQVJDSF9BUk1fTUFDSF9PTUFQMl9DTE9D SzJYWFhfSAotI2RlZmluZSBfX0FSQ0hfQVJNX01BQ0hfT01BUDJfQ0xPQ0syWFhYX0gKLQotI2lu Y2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgotI2luY2x1ZGUgImNsb2NrLmgiCi0KLXVuc2ln bmVkIGxvbmcgb21hcDJ4eHhfY2xrX2dldF9jb3JlX3JhdGUodm9pZCk7Ci0KLSNlbmRpZgpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbi5jIGIvYXJjaC9hcm0vbWFj aC1vbWFwMi9jbG9ja2RvbWFpbi5jCmluZGV4IDY5ZGM1YjgzOTMzNS4uNGI1YWUxZjQwZDUwIDEw MDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrZG9tYWluLmMKKysrIGIvYXJjaC9h cm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbi5jCkBAIC0xMjEzLDcgKzEyMTMsNyBAQCBpbnQgY2xr ZG1fY2xrX2Rpc2FibGUoc3RydWN0IGNsb2NrZG9tYWluICpjbGtkbSwgc3RydWN0IGNsayAqY2xr KQogaW50IGNsa2RtX2h3bW9kX2VuYWJsZShzdHJ1Y3QgY2xvY2tkb21haW4gKmNsa2RtLCBzdHJ1 Y3Qgb21hcF9od21vZCAqb2gpCiB7CiAJLyogVGhlIGNsa2RtIGF0dHJpYnV0ZSBkb2VzIG5vdCBl eGlzdCB5ZXQgcHJpb3IgT01BUDQgKi8KLQlpZiAoY3B1X2lzX29tYXAyNHh4KCkgfHwgY3B1X2lz X29tYXAzNHh4KCkpCisJaWYgKGNwdV9pc19vbWFwMzR4eCgpKQogCQlyZXR1cm4gMDsKIAogCS8q CkBAIC0xMjQ0LDcgKzEyNDQsNyBAQCBpbnQgY2xrZG1faHdtb2RfZW5hYmxlKHN0cnVjdCBjbG9j a2RvbWFpbiAqY2xrZG0sIHN0cnVjdCBvbWFwX2h3bW9kICpvaCkKIGludCBjbGtkbV9od21vZF9k aXNhYmxlKHN0cnVjdCBjbG9ja2RvbWFpbiAqY2xrZG0sIHN0cnVjdCBvbWFwX2h3bW9kICpvaCkK IHsKIAkvKiBUaGUgY2xrZG0gYXR0cmlidXRlIGRvZXMgbm90IGV4aXN0IHlldCBwcmlvciBPTUFQ NCAqLwotCWlmIChjcHVfaXNfb21hcDI0eHgoKSB8fCBjcHVfaXNfb21hcDM0eHgoKSkKKwlpZiAo Y3B1X2lzX29tYXAzNHh4KCkpCiAJCXJldHVybiAwOwogCiAJaWYgKCFvaCkKZGlmZiAtLWdpdCBh L2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2tkb21haW4uaCBiL2FyY2gvYXJtL21hY2gtb21hcDIv Y2xvY2tkb21haW4uaAppbmRleCA4NmEyZjllNWQwZWYuLjJkNDIyYjVmMTIxZiAxMDA2NDQKLS0t IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbi5oCisrKyBiL2FyY2gvYXJtL21hY2gt b21hcDIvY2xvY2tkb21haW4uaApAQCAtMjE2LDggKzIxNiw2IEBAIGludCBjbGtkbV9od21vZF9k aXNhYmxlKHN0cnVjdCBjbG9ja2RvbWFpbiAqY2xrZG0sIHN0cnVjdCBvbWFwX2h3bW9kICpvaCk7 CiB2b2lkIGNsa2RtX3NhdmVfY29udGV4dCh2b2lkKTsKIHZvaWQgY2xrZG1fcmVzdG9yZV9jb250 ZXh0KHZvaWQpOwogCi1leHRlcm4gdm9pZCBfX2luaXQgb21hcDI0MnhfY2xvY2tkb21haW5zX2lu aXQodm9pZCk7Ci1leHRlcm4gdm9pZCBfX2luaXQgb21hcDI0M3hfY2xvY2tkb21haW5zX2luaXQo dm9pZCk7CiBleHRlcm4gdm9pZCBfX2luaXQgb21hcDN4eHhfY2xvY2tkb21haW5zX2luaXQodm9p ZCk7CiBleHRlcm4gdm9pZCBfX2luaXQgYW0zM3h4X2Nsb2NrZG9tYWluc19pbml0KHZvaWQpOwog ZXh0ZXJuIHZvaWQgX19pbml0IHRpODE0eF9jbG9ja2RvbWFpbnNfaW5pdCh2b2lkKTsKQEAgLTIz MCwxNCArMjI4LDExIEBAIHZvaWQgYW00M3h4X2Nsb2NrZG9tYWluc19pbml0KHZvaWQpOwogZXh0 ZXJuIHZvaWQgY2xrZG1fYWRkX2F1dG9kZXBzKHN0cnVjdCBjbG9ja2RvbWFpbiAqY2xrZG0pOwog ZXh0ZXJuIHZvaWQgY2xrZG1fZGVsX2F1dG9kZXBzKHN0cnVjdCBjbG9ja2RvbWFpbiAqY2xrZG0p OwogCi1leHRlcm4gc3RydWN0IGNsa2RtX29wcyBvbWFwMl9jbGtkbV9vcGVyYXRpb25zOwogZXh0 ZXJuIHN0cnVjdCBjbGtkbV9vcHMgb21hcDNfY2xrZG1fb3BlcmF0aW9uczsKIGV4dGVybiBzdHJ1 Y3QgY2xrZG1fb3BzIG9tYXA0X2Nsa2RtX29wZXJhdGlvbnM7CiBleHRlcm4gc3RydWN0IGNsa2Rt X29wcyBhbTMzeHhfY2xrZG1fb3BlcmF0aW9uczsKIGV4dGVybiBzdHJ1Y3QgY2xrZG1fb3BzIGFt NDN4eF9jbGtkbV9vcGVyYXRpb25zOwogCi1leHRlcm4gc3RydWN0IGNsa2RtX2RlcCBnZnhfMjR4 eF93a2RlcHNbXTsKLWV4dGVybiBzdHJ1Y3QgY2xrZG1fZGVwIGRzcF8yNHh4X3drZGVwc1tdOwog ZXh0ZXJuIHN0cnVjdCBjbG9ja2RvbWFpbiB3a3VwX2NvbW1vbl9jbGtkbTsKIAogI2VuZGlmCmRp ZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrZG9tYWluczI0MjBfZGF0YS5jIGIv YXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbnMyNDIwX2RhdGEuYwpkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggYWM0ZmZiNWQyZmZjLi4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9h cm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbnMyNDIwX2RhdGEuYworKysgL2Rldi9udWxsCkBAIC0x LDE1NCArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAotLyoKLSAq IE9NQVAyNDIwIGNsb2NrZG9tYWlucwotICoKLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDExIFRl eGFzIEluc3RydW1lbnRzLCBJbmMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMCBOb2tpYSBD b3Jwb3JhdGlvbgotICoKLSAqIFBhdWwgV2FsbXNsZXksIEpvdW5pIEjDtmdhbmRlcgotICoKLSAq IFRoaXMgZmlsZSBjb250YWlucyBjbG9ja2RvbWFpbnMgYW5kIGNsb2NrZG9tYWluIHdha2V1cCBk ZXBlbmRlbmNpZXMKLSAqIGZvciBPTUFQMjQyMCBjaGlwcy4gIFNvbWUgbm90ZXM6Ci0gKgotICog QSB1c2VmdWwgdmFsaWRhdGlvbiBydWxlIGZvciBzdHJ1Y3QgY2xvY2tkb21haW46IEFueSBjbG9j a2RvbWFpbgotICogcmVmZXJlbmNlZCBieSBhIHdrZGVwX3NyY3MgbXVzdCBoYXZlIGEgZGVwX2Jp dCBhc3NpZ25lZC4gIFNvCi0gKiB3a2RlcF9zcmNzIGFyZSByZWFsbHkganVzdCBzb2Z0d2FyZS1j b250cm9sbGFibGUgZGVwZW5kZW5jaWVzLgotICogTm9uLXNvZnR3YXJlLWNvbnRyb2xsYWJsZSBk ZXBlbmRlbmNpZXMgZG8gZXhpc3QsIGJ1dCB0aGV5IGFyZSBub3QKLSAqIGVuY29kZWQgYmVsb3cg KHlldCkuCi0gKgotICogMjR4eCBkb2VzIG5vdCBzdXBwb3J0IHByb2dyYW1tYWJsZSBzbGVlcCBk ZXBlbmRlbmNpZXMgKFNMRUVQREVQKQotICoKLSAqIFRoZSBvdmVybHktc3BlY2lmaWMgZGVwX2Jp dCBuYW1lcyBhcmUgZHVlIHRvIGEgYml0IG5hbWUgY29sbGlzaW9uCi0gKiB3aXRoIENNX0ZDTEtF Tl97RFNQLElWQTJ9LiAgVGhlIERTUC9JVkEyIFBNX1dLREVQIGFuZCBDTV9TTEVFUERFUCBzaGlm dAotICogdmFsdWUgYXJlIHRoZSBzYW1lIGZvciBhbGwgcG93ZXJkb21haW5zOiAyCi0gKgotICog WFhYIHNob3VsZCBkZXBfYml0IGJlIGEgbWFzaywgc28gd2UgY2FuIHRlc3QgdG8gc2VlIGlmIGl0 IGlzIDAgYXMgYQotICogc2FuaXR5IGNoZWNrPwotICogWFhYIGVuY29kZSBoYXJkd2FyZSBmaXhl ZCB3YWtldXAgZGVwZW5kZW5jaWVzIC0tIGVzcC4gZm9yIDM0MzAgQ09SRQotICovCi0KLS8qCi0g KiBUby1EbyBMaXN0Ci0gKiAtPiBQb3J0IHRoZSBTbGVlcC9XYWtldXAgZGVwZW5kZW5jaWVzIGZv ciB0aGUgZG9tYWlucwotICogICAgZnJvbSB0aGUgUG93ZXIgZG9tYWluIGZyYW1ld29yawotICov Ci0KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9pby5oPgotCi0j aW5jbHVkZSAic29jLmgiCi0jaW5jbHVkZSAiY2xvY2tkb21haW4uaCIKLSNpbmNsdWRlICJwcm0y eHh4XzN4eHguaCIKLSNpbmNsdWRlICJjbTJ4eHhfM3h4eC5oIgotI2luY2x1ZGUgImNtLXJlZ2Jp dHMtMjR4eC5oIgotI2luY2x1ZGUgInBybS1yZWdiaXRzLTI0eHguaCIKLQotLyoKLSAqIENsb2Nr ZG9tYWluIGRlcGVuZGVuY2llcyBmb3Igd2tkZXBzCi0gKgotICogWFhYIEhhcmR3YXJlIGRlcGVu ZGVuY2llcyAoZS5nLiwgZGVwZW5kZW5jaWVzIHRoYXQgY2Fubm90IGJlCi0gKiBjaGFuZ2VkIGlu IHNvZnR3YXJlKSBhcmUgbm90IGluY2x1ZGVkIGhlcmUgeWV0LCBidXQgc2hvdWxkIGJlLgotICov Ci0KLS8qIFdha2V1cCBkZXBlbmRlbmN5IHNvdXJjZSBhcnJheXMgKi8KLQotLyogMjQyMC1zcGVj aWZpYyBwb3NzaWJsZSB3YWtldXAgZGVwZW5kZW5jaWVzICovCi0KLS8qIDI0MjAgUE1fV0tERVBf TVBVOiBDT1JFLCBEU1AsIFdLVVAgKi8KLXN0YXRpYyBzdHJ1Y3QgY2xrZG1fZGVwIG1wdV8yNDIw X3drZGVwc1tdID0gewotCXsgLmNsa2RtX25hbWUgPSAiY29yZV9sM19jbGtkbSIgfSwKLQl7IC5j bGtkbV9uYW1lID0gImNvcmVfbDRfY2xrZG0iIH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJkc3BfY2xr ZG0iIH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJ3a3VwX2Nsa2RtIiB9LAotCXsgTlVMTCB9LAotfTsK LQotLyogMjQyMCBQTV9XS0RFUF9DT1JFOiBEU1AsIEdGWCwgTVBVLCBXS1VQICovCi1zdGF0aWMg c3RydWN0IGNsa2RtX2RlcCBjb3JlXzI0MjBfd2tkZXBzW10gPSB7Ci0JeyAuY2xrZG1fbmFtZSA9 ICJkc3BfY2xrZG0iIH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJnZnhfY2xrZG0iIH0sCi0JeyAuY2xr ZG1fbmFtZSA9ICJtcHVfY2xrZG0iIH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJ3a3VwX2Nsa2RtIiB9 LAotCXsgTlVMTCB9LAotfTsKLQotLyoKLSAqIDI0MjAtb25seSBjbG9ja2RvbWFpbnMKLSAqLwot Ci1zdGF0aWMgc3RydWN0IGNsb2NrZG9tYWluIG1wdV8yNDIwX2Nsa2RtID0gewotCS5uYW1lCQk9 ICJtcHVfY2xrZG0iLAotCS5wd3JkbQkJPSB7IC5uYW1lID0gIm1wdV9wd3JkbSIgfSwKLQkuZmxh Z3MJCT0gQ0xLRE1fQ0FOX0hXU1VQLAotCS53a2RlcF9zcmNzCT0gbXB1XzI0MjBfd2tkZXBzLAot CS5jbGt0cmN0cmxfbWFzayA9IE9NQVAyNFhYX0FVVE9TVEFURV9NUFVfTUFTSywKLX07Ci0KLXN0 YXRpYyBzdHJ1Y3QgY2xvY2tkb21haW4gaXZhMV8yNDIwX2Nsa2RtID0gewotCS5uYW1lCQk9ICJp dmExX2Nsa2RtIiwKLQkucHdyZG0JCT0geyAubmFtZSA9ICJkc3BfcHdyZG0iIH0sCi0JLmZsYWdz CQk9IENMS0RNX0NBTl9IV1NVUF9TV1NVUCwKLQkuZGVwX2JpdAk9IE9NQVAyNFhYX1BNX1dLREVQ X01QVV9FTl9EU1BfU0hJRlQsCi0JLndrZGVwX3NyY3MJPSBkc3BfMjR4eF93a2RlcHMsCi0JLmNs a3RyY3RybF9tYXNrID0gT01BUDI0MjBfQVVUT1NUQVRFX0lWQV9NQVNLLAotfTsKLQotc3RhdGlj IHN0cnVjdCBjbG9ja2RvbWFpbiBkc3BfMjQyMF9jbGtkbSA9IHsKLQkubmFtZQkJPSAiZHNwX2Ns a2RtIiwKLQkucHdyZG0JCT0geyAubmFtZSA9ICJkc3BfcHdyZG0iIH0sCi0JLmZsYWdzCQk9IENM S0RNX0NBTl9IV1NVUF9TV1NVUCwKLQkuY2xrdHJjdHJsX21hc2sgPSBPTUFQMjRYWF9BVVRPU1RB VEVfRFNQX01BU0ssCi19OwotCi1zdGF0aWMgc3RydWN0IGNsb2NrZG9tYWluIGdmeF8yNDIwX2Ns a2RtID0gewotCS5uYW1lCQk9ICJnZnhfY2xrZG0iLAotCS5wd3JkbQkJPSB7IC5uYW1lID0gImdm eF9wd3JkbSIgfSwKLQkuZmxhZ3MJCT0gQ0xLRE1fQ0FOX0hXU1VQX1NXU1VQLAotCS53a2RlcF9z cmNzCT0gZ2Z4XzI0eHhfd2tkZXBzLAotCS5jbGt0cmN0cmxfbWFzayA9IE9NQVAyNFhYX0FVVE9T VEFURV9HRlhfTUFTSywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xvY2tkb21haW4gY29yZV9sM18y NDIwX2Nsa2RtID0gewotCS5uYW1lCQk9ICJjb3JlX2wzX2Nsa2RtIiwKLQkucHdyZG0JCT0geyAu bmFtZSA9ICJjb3JlX3B3cmRtIiB9LAotCS5mbGFncwkJPSBDTEtETV9DQU5fSFdTVVAsCi0JLndr ZGVwX3NyY3MJPSBjb3JlXzI0MjBfd2tkZXBzLAotCS5jbGt0cmN0cmxfbWFzayA9IE9NQVAyNFhY X0FVVE9TVEFURV9MM19NQVNLLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbG9ja2RvbWFpbiBjb3Jl X2w0XzI0MjBfY2xrZG0gPSB7Ci0JLm5hbWUJCT0gImNvcmVfbDRfY2xrZG0iLAotCS5wd3JkbQkJ PSB7IC5uYW1lID0gImNvcmVfcHdyZG0iIH0sCi0JLmZsYWdzCQk9IENMS0RNX0NBTl9IV1NVUCwK LQkud2tkZXBfc3Jjcwk9IGNvcmVfMjQyMF93a2RlcHMsCi0JLmNsa3RyY3RybF9tYXNrID0gT01B UDI0WFhfQVVUT1NUQVRFX0w0X01BU0ssCi19OwotCi1zdGF0aWMgc3RydWN0IGNsb2NrZG9tYWlu IGRzc18yNDIwX2Nsa2RtID0gewotCS5uYW1lCQk9ICJkc3NfY2xrZG0iLAotCS5wd3JkbQkJPSB7 IC5uYW1lID0gImNvcmVfcHdyZG0iIH0sCi0JLmZsYWdzCQk9IENMS0RNX0NBTl9IV1NVUCwKLQku Y2xrdHJjdHJsX21hc2sgPSBPTUFQMjRYWF9BVVRPU1RBVEVfRFNTX01BU0ssCi19OwotCi1zdGF0 aWMgc3RydWN0IGNsb2NrZG9tYWluICpjbG9ja2RvbWFpbnNfb21hcDI0MnhbXSBfX2luaXRkYXRh ID0gewotCSZ3a3VwX2NvbW1vbl9jbGtkbSwKLQkmbXB1XzI0MjBfY2xrZG0sCi0JJml2YTFfMjQy MF9jbGtkbSwKLQkmZHNwXzI0MjBfY2xrZG0sCi0JJmdmeF8yNDIwX2Nsa2RtLAotCSZjb3JlX2wz XzI0MjBfY2xrZG0sCi0JJmNvcmVfbDRfMjQyMF9jbGtkbSwKLQkmZHNzXzI0MjBfY2xrZG0sCi0J TlVMTCwKLX07Ci0KLXZvaWQgX19pbml0IG9tYXAyNDJ4X2Nsb2NrZG9tYWluc19pbml0KHZvaWQp Ci17Ci0JaWYgKCFjcHVfaXNfb21hcDI0MngoKSkKLQkJcmV0dXJuOwotCi0JY2xrZG1fcmVnaXN0 ZXJfcGxhdGZvcm1fZnVuY3MoJm9tYXAyX2Nsa2RtX29wZXJhdGlvbnMpOwotCWNsa2RtX3JlZ2lz dGVyX2Nsa2RtcyhjbG9ja2RvbWFpbnNfb21hcDI0MngpOwotCWNsa2RtX2NvbXBsZXRlX2luaXQo KTsKLX0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2tkb21haW5zMjQzMF9k YXRhLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrZG9tYWluczI0MzBfZGF0YS5jCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTk3ZTE3OGFiYWEuLjAwMDAwMDAwMDAwMAotLS0g YS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrZG9tYWluczI0MzBfZGF0YS5jCisrKyAvZGV2L251 bGwKQEAgLTEsMTgxICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w Ci0vKgotICogT01BUDJ4eHggY2xvY2tkb21haW5zCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDA4 LTIwMDkgVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEw IE5va2lhIENvcnBvcmF0aW9uCi0gKgotICogUGF1bCBXYWxtc2xleSwgSm91bmkgSMO2Z2FuZGVy Ci0gKgotICogVGhpcyBmaWxlIGNvbnRhaW5zIGNsb2NrZG9tYWlucyBhbmQgY2xvY2tkb21haW4g d2FrZXVwIGRlcGVuZGVuY2llcwotICogZm9yIE9NQVAyeHh4IGNoaXBzLiAgU29tZSBub3RlczoK LSAqCi0gKiBBIHVzZWZ1bCB2YWxpZGF0aW9uIHJ1bGUgZm9yIHN0cnVjdCBjbG9ja2RvbWFpbjog QW55IGNsb2NrZG9tYWluCi0gKiByZWZlcmVuY2VkIGJ5IGEgd2tkZXBfc3JjcyBtdXN0IGhhdmUg YSBkZXBfYml0IGFzc2lnbmVkLiAgU28KLSAqIHdrZGVwX3NyY3MgYXJlIHJlYWxseSBqdXN0IHNv ZnR3YXJlLWNvbnRyb2xsYWJsZSBkZXBlbmRlbmNpZXMuCi0gKiBOb24tc29mdHdhcmUtY29udHJv bGxhYmxlIGRlcGVuZGVuY2llcyBkbyBleGlzdCwgYnV0IHRoZXkgYXJlIG5vdAotICogZW5jb2Rl ZCBiZWxvdyAoeWV0KS4KLSAqCi0gKiAyNHh4IGRvZXMgbm90IHN1cHBvcnQgcHJvZ3JhbW1hYmxl IHNsZWVwIGRlcGVuZGVuY2llcyAoU0xFRVBERVApCi0gKgotICogVGhlIG92ZXJseS1zcGVjaWZp YyBkZXBfYml0IG5hbWVzIGFyZSBkdWUgdG8gYSBiaXQgbmFtZSBjb2xsaXNpb24KLSAqIHdpdGgg Q01fRkNMS0VOX3tEU1AsSVZBMn0uICBUaGUgRFNQL0lWQTIgUE1fV0tERVAgYW5kIENNX1NMRUVQ REVQIHNoaWZ0Ci0gKiB2YWx1ZSBhcmUgdGhlIHNhbWUgZm9yIGFsbCBwb3dlcmRvbWFpbnM6IDIK LSAqCi0gKiBYWFggc2hvdWxkIGRlcF9iaXQgYmUgYSBtYXNrLCBzbyB3ZSBjYW4gdGVzdCB0byBz ZWUgaWYgaXQgaXMgMCBhcyBhCi0gKiBzYW5pdHkgY2hlY2s/Ci0gKiBYWFggZW5jb2RlIGhhcmR3 YXJlIGZpeGVkIHdha2V1cCBkZXBlbmRlbmNpZXMgLS0gZXNwLiBmb3IgMzQzMCBDT1JFCi0gKi8K LQotLyoKLSAqIFRvLURvIExpc3QKLSAqIC0+IFBvcnQgdGhlIFNsZWVwL1dha2V1cCBkZXBlbmRl bmNpZXMgZm9yIHRoZSBkb21haW5zCi0gKiAgICBmcm9tIHRoZSBQb3dlciBkb21haW4gZnJhbWV3 b3JrCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L2lv Lmg+Ci0KLSNpbmNsdWRlICJzb2MuaCIKLSNpbmNsdWRlICJjbG9ja2RvbWFpbi5oIgotI2luY2x1 ZGUgInBybTJ4eHhfM3h4eC5oIgotI2luY2x1ZGUgImNtMnh4eF8zeHh4LmgiCi0jaW5jbHVkZSAi Y20tcmVnYml0cy0yNHh4LmgiCi0jaW5jbHVkZSAicHJtLXJlZ2JpdHMtMjR4eC5oIgotCi0vKgot ICogQ2xvY2tkb21haW4gZGVwZW5kZW5jaWVzIGZvciB3a2RlcHMKLSAqCi0gKiBYWFggSGFyZHdh cmUgZGVwZW5kZW5jaWVzIChlLmcuLCBkZXBlbmRlbmNpZXMgdGhhdCBjYW5ub3QgYmUKLSAqIGNo YW5nZWQgaW4gc29mdHdhcmUpIGFyZSBub3QgaW5jbHVkZWQgaGVyZSB5ZXQsIGJ1dCBzaG91bGQg YmUuCi0gKi8KLQotLyogV2FrZXVwIGRlcGVuZGVuY3kgc291cmNlIGFycmF5cyAqLwotCi0vKiAy NDMwLXNwZWNpZmljIHBvc3NpYmxlIHdha2V1cCBkZXBlbmRlbmNpZXMgKi8KLQotLyogMjQzMCBQ TV9XS0RFUF9DT1JFOiBEU1AsIEdGWCwgTVBVLCBXS1VQLCBNRE0gKi8KLXN0YXRpYyBzdHJ1Y3Qg Y2xrZG1fZGVwIGNvcmVfMjQzMF93a2RlcHNbXSA9IHsKLQl7IC5jbGtkbV9uYW1lID0gImRzcF9j bGtkbSIgfSwKLQl7IC5jbGtkbV9uYW1lID0gImdmeF9jbGtkbSIgfSwKLQl7IC5jbGtkbV9uYW1l ID0gIm1wdV9jbGtkbSIgfSwKLQl7IC5jbGtkbV9uYW1lID0gIndrdXBfY2xrZG0iIH0sCi0JeyAu Y2xrZG1fbmFtZSA9ICJtZG1fY2xrZG0iIH0sCi0JeyBOVUxMIH0sCi19OwotCi0vKiAyNDMwIFBN X1dLREVQX01QVTogQ09SRSwgRFNQLCBXS1VQLCBNRE0gKi8KLXN0YXRpYyBzdHJ1Y3QgY2xrZG1f ZGVwIG1wdV8yNDMwX3drZGVwc1tdID0gewotCXsgLmNsa2RtX25hbWUgPSAiY29yZV9sM19jbGtk bSIgfSwKLQl7IC5jbGtkbV9uYW1lID0gImNvcmVfbDRfY2xrZG0iIH0sCi0JeyAuY2xrZG1fbmFt ZSA9ICJkc3BfY2xrZG0iIH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJ3a3VwX2Nsa2RtIiB9LAotCXsg LmNsa2RtX25hbWUgPSAibWRtX2Nsa2RtIiB9LAotCXsgTlVMTCB9LAotfTsKLQotLyogMjQzMCBQ TV9XS0RFUF9NRE06IENPUkUsIE1QVSwgV0tVUCAqLwotc3RhdGljIHN0cnVjdCBjbGtkbV9kZXAg bWRtXzI0MzBfd2tkZXBzW10gPSB7Ci0JeyAuY2xrZG1fbmFtZSA9ICJjb3JlX2wzX2Nsa2RtIiB9 LAotCXsgLmNsa2RtX25hbWUgPSAiY29yZV9sNF9jbGtkbSIgfSwKLQl7IC5jbGtkbV9uYW1lID0g Im1wdV9jbGtkbSIgfSwKLQl7IC5jbGtkbV9uYW1lID0gIndrdXBfY2xrZG0iIH0sCi0JeyBOVUxM IH0sCi19OwotCi0vKgotICogMjQzMC1vbmx5IGNsb2NrZG9tYWlucwotICovCi0KLXN0YXRpYyBz dHJ1Y3QgY2xvY2tkb21haW4gbXB1XzI0MzBfY2xrZG0gPSB7Ci0JLm5hbWUJCT0gIm1wdV9jbGtk bSIsCi0JLnB3cmRtCQk9IHsgLm5hbWUgPSAibXB1X3B3cmRtIiB9LAotCS5mbGFncwkJPSBDTEtE TV9DQU5fSFdTVVBfU1dTVVAsCi0JLndrZGVwX3NyY3MJPSBtcHVfMjQzMF93a2RlcHMsCi0JLmNs a3RyY3RybF9tYXNrID0gT01BUDI0WFhfQVVUT1NUQVRFX01QVV9NQVNLLAotfTsKLQotLyogQW5v dGhlciBjYXNlIG9mIGJpdCBuYW1lIGNvbGxpc2lvbnMgYmV0d2VlbiBzZXZlcmFsIHJlZ2lzdGVy czogRU5fTURNICovCi1zdGF0aWMgc3RydWN0IGNsb2NrZG9tYWluIG1kbV9jbGtkbSA9IHsKLQku bmFtZQkJPSAibWRtX2Nsa2RtIiwKLQkucHdyZG0JCT0geyAubmFtZSA9ICJtZG1fcHdyZG0iIH0s Ci0JLmZsYWdzCQk9IENMS0RNX0NBTl9IV1NVUF9TV1NVUCwKLQkuZGVwX2JpdAk9IE9NQVAyNDMw X1BNX1dLREVQX01QVV9FTl9NRE1fU0hJRlQsCi0JLndrZGVwX3NyY3MJPSBtZG1fMjQzMF93a2Rl cHMsCi0JLmNsa3RyY3RybF9tYXNrID0gT01BUDI0MzBfQVVUT1NUQVRFX01ETV9NQVNLLAotfTsK LQotc3RhdGljIHN0cnVjdCBjbG9ja2RvbWFpbiBkc3BfMjQzMF9jbGtkbSA9IHsKLQkubmFtZQkJ PSAiZHNwX2Nsa2RtIiwKLQkucHdyZG0JCT0geyAubmFtZSA9ICJkc3BfcHdyZG0iIH0sCi0JLmZs YWdzCQk9IENMS0RNX0NBTl9IV1NVUF9TV1NVUCwKLQkuZGVwX2JpdAk9IE9NQVAyNFhYX1BNX1dL REVQX01QVV9FTl9EU1BfU0hJRlQsCi0JLndrZGVwX3NyY3MJPSBkc3BfMjR4eF93a2RlcHMsCi0J LmNsa3RyY3RybF9tYXNrID0gT01BUDI0WFhfQVVUT1NUQVRFX0RTUF9NQVNLLAotfTsKLQotc3Rh dGljIHN0cnVjdCBjbG9ja2RvbWFpbiBnZnhfMjQzMF9jbGtkbSA9IHsKLQkubmFtZQkJPSAiZ2Z4 X2Nsa2RtIiwKLQkucHdyZG0JCT0geyAubmFtZSA9ICJnZnhfcHdyZG0iIH0sCi0JLmZsYWdzCQk9 IENMS0RNX0NBTl9IV1NVUF9TV1NVUCwKLQkud2tkZXBfc3Jjcwk9IGdmeF8yNHh4X3drZGVwcywK LQkuY2xrdHJjdHJsX21hc2sgPSBPTUFQMjRYWF9BVVRPU1RBVEVfR0ZYX01BU0ssCi19OwotCi0v KgotICogWFhYIGFkZCB1c2Vjb3VudGluZyBmb3IgY2xrZG0gZGVwZW5kZW5jaWVzLCBvdGhlcndp c2UgdGhlIHByZXNlbmNlCi0gKiBvZiBhIHNpbmdsZSBkZXAgYml0IGZvciBjb3JlX2wzXzI0eHhf Y2xrZG0gYW5kIGNvcmVfbDRfMjR4eF9jbGtkbQotICogY291bGQgY2F1c2UgdHJvdWJsZQotICov Ci1zdGF0aWMgc3RydWN0IGNsb2NrZG9tYWluIGNvcmVfbDNfMjQzMF9jbGtkbSA9IHsKLQkubmFt ZQkJPSAiY29yZV9sM19jbGtkbSIsCi0JLnB3cmRtCQk9IHsgLm5hbWUgPSAiY29yZV9wd3JkbSIg fSwKLQkuZmxhZ3MJCT0gQ0xLRE1fQ0FOX0hXU1VQLAotCS5kZXBfYml0CT0gT01BUDI0WFhfRU5f Q09SRV9TSElGVCwKLQkud2tkZXBfc3Jjcwk9IGNvcmVfMjQzMF93a2RlcHMsCi0JLmNsa3RyY3Ry bF9tYXNrID0gT01BUDI0WFhfQVVUT1NUQVRFX0wzX01BU0ssCi19OwotCi0vKgotICogWFhYIGFk ZCB1c2Vjb3VudGluZyBmb3IgY2xrZG0gZGVwZW5kZW5jaWVzLCBvdGhlcndpc2UgdGhlIHByZXNl bmNlCi0gKiBvZiBhIHNpbmdsZSBkZXAgYml0IGZvciBjb3JlX2wzXzI0eHhfY2xrZG0gYW5kIGNv cmVfbDRfMjR4eF9jbGtkbQotICogY291bGQgY2F1c2UgdHJvdWJsZQotICovCi1zdGF0aWMgc3Ry dWN0IGNsb2NrZG9tYWluIGNvcmVfbDRfMjQzMF9jbGtkbSA9IHsKLQkubmFtZQkJPSAiY29yZV9s NF9jbGtkbSIsCi0JLnB3cmRtCQk9IHsgLm5hbWUgPSAiY29yZV9wd3JkbSIgfSwKLQkuZmxhZ3MJ CT0gQ0xLRE1fQ0FOX0hXU1VQLAotCS5kZXBfYml0CT0gT01BUDI0WFhfRU5fQ09SRV9TSElGVCwK LQkud2tkZXBfc3Jjcwk9IGNvcmVfMjQzMF93a2RlcHMsCi0JLmNsa3RyY3RybF9tYXNrID0gT01B UDI0WFhfQVVUT1NUQVRFX0w0X01BU0ssCi19OwotCi1zdGF0aWMgc3RydWN0IGNsb2NrZG9tYWlu IGRzc18yNDMwX2Nsa2RtID0gewotCS5uYW1lCQk9ICJkc3NfY2xrZG0iLAotCS5wd3JkbQkJPSB7 IC5uYW1lID0gImNvcmVfcHdyZG0iIH0sCi0JLmZsYWdzCQk9IENMS0RNX0NBTl9IV1NVUCwKLQku Y2xrdHJjdHJsX21hc2sgPSBPTUFQMjRYWF9BVVRPU1RBVEVfRFNTX01BU0ssCi19OwotCi1zdGF0 aWMgc3RydWN0IGNsb2NrZG9tYWluICpjbG9ja2RvbWFpbnNfb21hcDI0M3hbXSBfX2luaXRkYXRh ID0gewotCSZ3a3VwX2NvbW1vbl9jbGtkbSwKLQkmbXB1XzI0MzBfY2xrZG0sCi0JJm1kbV9jbGtk bSwKLQkmZHNwXzI0MzBfY2xrZG0sCi0JJmdmeF8yNDMwX2Nsa2RtLAotCSZjb3JlX2wzXzI0MzBf Y2xrZG0sCi0JJmNvcmVfbDRfMjQzMF9jbGtkbSwKLQkmZHNzXzI0MzBfY2xrZG0sCi0JTlVMTCwK LX07Ci0KLXZvaWQgX19pbml0IG9tYXAyNDN4X2Nsb2NrZG9tYWluc19pbml0KHZvaWQpCi17Ci0J aWYgKCFjcHVfaXNfb21hcDI0M3goKSkKLQkJcmV0dXJuOwotCi0JY2xrZG1fcmVnaXN0ZXJfcGxh dGZvcm1fZnVuY3MoJm9tYXAyX2Nsa2RtX29wZXJhdGlvbnMpOwotCWNsa2RtX3JlZ2lzdGVyX2Ns a2RtcyhjbG9ja2RvbWFpbnNfb21hcDI0M3gpOwotCWNsa2RtX2NvbXBsZXRlX2luaXQoKTsKLX0K LQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbnMyeHh4XzN4eHhf ZGF0YS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbnMyeHh4XzN4eHhfZGF0YS5j CmluZGV4IDIyMGMyMmY1ZTBmNS4uNGQyMGMyNzIwNjYwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9t YWNoLW9tYXAyL2Nsb2NrZG9tYWluczJ4eHhfM3h4eF9kYXRhLmMKKysrIGIvYXJjaC9hcm0vbWFj aC1vbWFwMi9jbG9ja2RvbWFpbnMyeHh4XzN4eHhfZGF0YS5jCkBAIC04LDcgKzgsNyBAQAogICog UGF1bCBXYWxtc2xleSwgSm91bmkgSMO2Z2FuZGVyCiAgKgogICogVGhpcyBmaWxlIGNvbnRhaW5z IGNsb2NrZG9tYWlucyBhbmQgY2xvY2tkb21haW4gd2FrZXVwL3NsZWVwCi0gKiBkZXBlbmRlbmNp ZXMgZm9yIHRoZSBPTUFQMi8zIGNoaXBzLiAgU29tZSBub3RlczoKKyAqIGRlcGVuZGVuY2llcyBm b3IgdGhlIE9NQVAzIGNoaXBzLiAgU29tZSBub3RlczoKICAqCiAgKiBBIHVzZWZ1bCB2YWxpZGF0 aW9uIHJ1bGUgZm9yIHN0cnVjdCBjbG9ja2RvbWFpbjogQW55IGNsb2NrZG9tYWluCiAgKiByZWZl cmVuY2VkIGJ5IGEgd2tkZXBfc3JjcyBvciBzbGVlcGRlcF9zcmNzIGFycmF5IG11c3QgaGF2ZSBh CkBAIC0xNiw4ICsxNiw2IEBACiAgKiBzb2Z0d2FyZS1jb250cm9sbGFibGUgZGVwZW5kZW5jaWVz LiAgTm9uLXNvZnR3YXJlLWNvbnRyb2xsYWJsZQogICogZGVwZW5kZW5jaWVzIGRvIGV4aXN0LCBi dXQgdGhleSBhcmUgbm90IGVuY29kZWQgYmVsb3cgKHlldCkuCiAgKgotICogMjR4eCBkb2VzIG5v dCBzdXBwb3J0IHByb2dyYW1tYWJsZSBzbGVlcCBkZXBlbmRlbmNpZXMgKFNMRUVQREVQKQotICoK ICAqIFRoZSBvdmVybHktc3BlY2lmaWMgZGVwX2JpdCBuYW1lcyBhcmUgZHVlIHRvIGEgYml0IG5h bWUgY29sbGlzaW9uCiAgKiB3aXRoIENNX0ZDTEtFTl97RFNQLElWQTJ9LiAgVGhlIERTUC9JVkEy IFBNX1dLREVQIGFuZCBDTV9TTEVFUERFUCBzaGlmdAogICogdmFsdWUgYXJlIHRoZSBzYW1lIGZv ciBhbGwgcG93ZXJkb21haW5zOiAyCkBAIC0zOSwxMCArMzcsOCBAQAogI2luY2x1ZGUgImNsb2Nr ZG9tYWluLmgiCiAjaW5jbHVkZSAicHJtMnh4eF8zeHh4LmgiCiAjaW5jbHVkZSAiY20yeHh4XzN4 eHguaCIKLSNpbmNsdWRlICJjbS1yZWdiaXRzLTI0eHguaCIKICNpbmNsdWRlICJjbS1yZWdiaXRz LTM0eHguaCIKICNpbmNsdWRlICJjbS1yZWdiaXRzLTQ0eHguaCIKLSNpbmNsdWRlICJwcm0tcmVn Yml0cy0yNHh4LmgiCiAjaW5jbHVkZSAicHJtLXJlZ2JpdHMtMzR4eC5oIgogCiAvKgpAQCAtNTQs MjkgKzUwLDggQEAKIAogLyogV2FrZXVwIGRlcGVuZGVuY3kgc291cmNlIGFycmF5cyAqLwogCi0v KiAyeHh4LXNwZWNpZmljIHBvc3NpYmxlIGRlcGVuZGVuY2llcyAqLwotCi0vKiAyeHh4IFBNX1dL REVQX0dGWDogQ09SRSwgTVBVLCBXS1VQICovCi1zdHJ1Y3QgY2xrZG1fZGVwIGdmeF8yNHh4X3dr ZGVwc1tdID0gewotCXsgLmNsa2RtX25hbWUgPSAiY29yZV9sM19jbGtkbSIgfSwKLQl7IC5jbGtk bV9uYW1lID0gImNvcmVfbDRfY2xrZG0iIH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJtcHVfY2xrZG0i IH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJ3a3VwX2Nsa2RtIiB9LAotCXsgTlVMTCB9LAotfTsKLQot LyogMnh4eCBQTV9XS0RFUF9EU1A6IENPUkUsIE1QVSwgV0tVUCAqLwotc3RydWN0IGNsa2RtX2Rl cCBkc3BfMjR4eF93a2RlcHNbXSA9IHsKLQl7IC5jbGtkbV9uYW1lID0gImNvcmVfbDNfY2xrZG0i IH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJjb3JlX2w0X2Nsa2RtIiB9LAotCXsgLmNsa2RtX25hbWUg PSAibXB1X2Nsa2RtIiB9LAotCXsgLmNsa2RtX25hbWUgPSAid2t1cF9jbGtkbSIgfSwKLQl7IE5V TEwgfSwKLX07Ci0KLQogLyoKLSAqIE9NQVAyLzMtY29tbW9uIGNsb2NrZG9tYWlucworICogT01B UDMtY29tbW9uIGNsb2NrZG9tYWlucwogICoKICAqIEV2ZW4gdGhvdWdoIHRoZSAyNDIwIGhhcyBh IHNpbmdsZSBQUkNNIG1vZHVsZSBmcm9tIHRoZQogICogaW50ZXJjb25uZWN0J3MgcGVyc3BlY3Rp dmUsIGludGVybmFsbHkgaXQgZG9lcyBhcHBlYXIgdG8gaGF2ZQpkaWZmIC0tZ2l0IGEvYXJjaC9h cm0vbWFjaC1vbWFwMi9jbS1yZWdiaXRzLTI0eHguaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvY20t cmVnYml0cy0yNHh4LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5YzE0ZGJiNmY4 Ny4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvY20tcmVnYml0cy0yNHh4 LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0vKiBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMC1vbmx5ICovCi0jaWZuZGVmIF9fQVJDSF9BUk1fTUFDSF9PTUFQMl9DTV9S RUdCSVRTXzI0WFhfSAotI2RlZmluZSBfX0FSQ0hfQVJNX01BQ0hfT01BUDJfQ01fUkVHQklUU18y NFhYX0gKLQotLyoKLSAqIE9NQVAyNFhYIENsb2NrIE1hbmFnZW1lbnQgcmVnaXN0ZXIgYml0cwot ICoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBUZXhhcyBJbnN0cnVtZW50cywgSW5jLgotICogQ29w eXJpZ2h0IChDKSAyMDA3IE5va2lhIENvcnBvcmF0aW9uCi0gKgotICogV3JpdHRlbiBieSBQYXVs IFdhbG1zbGV5Ci0gKi8KLQotI2RlZmluZSBPTUFQMjRYWF9BVVRPU1RBVEVfTVBVX01BU0sJCQko MSA8PCAwKQotI2RlZmluZSBPTUFQMjRYWF9FTl9EU1MxX01BU0sJCQkJKDEgPDwgMCkKLSNkZWZp bmUgT01BUDI0WFhfU1RfTUFJTEJPWEVTX1NISUZUCQkJMzAKLSNkZWZpbmUgT01BUDI0WFhfU1Rf SERRX1NISUZUCQkJCTIzCi0jZGVmaW5lIE9NQVAyNDIwX1NUX0kyQzJfU0hJRlQJCQkJMjAKLSNk ZWZpbmUgT01BUDI0MzBfU1RfSTJDSFMxX1NISUZUCQkJMTkKLSNkZWZpbmUgT01BUDI0MjBfU1Rf STJDMV9TSElGVAkJCQkxOQotI2RlZmluZSBPTUFQMjQzMF9TVF9JMkNIUzJfU0hJRlQJCQkyMAot I2RlZmluZSBPTUFQMjRYWF9TVF9NQ0JTUDJfU0hJRlQJCQkxNgotI2RlZmluZSBPTUFQMjRYWF9T VF9NQ0JTUDFfU0hJRlQJCQkxNQotI2RlZmluZSBPTUFQMjQzMF9TVF9NQ0JTUDVfU0hJRlQJCQk1 Ci0jZGVmaW5lIE9NQVAyNDMwX1NUX01DQlNQNF9TSElGVAkJCTQKLSNkZWZpbmUgT01BUDI0MzBf U1RfTUNCU1AzX1NISUZUCQkJMwotI2RlZmluZSBPTUFQMjRYWF9TVF9BRVNfU0hJRlQJCQkJMwot I2RlZmluZSBPTUFQMjRYWF9TVF9STkdfU0hJRlQJCQkJMgotI2RlZmluZSBPTUFQMjRYWF9TVF9T SEFfU0hJRlQJCQkJMQotI2RlZmluZSBPTUFQMjRYWF9DTEtTRUxfRFNTMl9NQVNLCQkJKDB4MSA8 PCAxMykKLSNkZWZpbmUgT01BUDI0WFhfQVVUT1NUQVRFX0RTU19NQVNLCQkJKDEgPDwgMikKLSNk ZWZpbmUgT01BUDI0WFhfQVVUT1NUQVRFX0w0X01BU0sJCQkoMSA8PCAxKQotI2RlZmluZSBPTUFQ MjRYWF9BVVRPU1RBVEVfTDNfTUFTSwkJCSgxIDw8IDApCi0jZGVmaW5lIE9NQVAyNFhYX0FVVE9T VEFURV9HRlhfTUFTSwkJCSgxIDw8IDApCi0jZGVmaW5lIE9NQVAyNFhYX1NUX01QVV9XRFRfU0hJ RlQJCQkzCi0jZGVmaW5lIE9NQVAyNFhYX1NUXzMyS1NZTkNfU0hJRlQJCQkxCi0jZGVmaW5lIE9N QVAyNFhYX0VOXzU0TV9QTExfU0hJRlQJCQk2Ci0jZGVmaW5lIE9NQVAyNFhYX0VOXzk2TV9QTExf U0hJRlQJCQkyCi0jZGVmaW5lIE9NQVAyNFhYX1NUXzU0TV9BUExMX1NISUZUCQkJOQotI2RlZmlu ZSBPTUFQMjRYWF9TVF85Nk1fQVBMTF9TSElGVAkJCTgKLSNkZWZpbmUgT01BUDI0WFhfQVVUT181 NE1fTUFTSwkJCQkoMHgzIDw8IDYpCi0jZGVmaW5lIE9NQVAyNFhYX0FVVE9fOTZNX01BU0sJCQkJ KDB4MyA8PCAyKQotI2RlZmluZSBPTUFQMjRYWF9BVVRPX0RQTExfU0hJRlQJCQkwCi0jZGVmaW5l IE9NQVAyNFhYX0FVVE9fRFBMTF9NQVNLCQkJCSgweDMgPDwgMCkKLSNkZWZpbmUgT01BUDI0WFhf Q09SRV9DTEtfU1JDX01BU0sJCQkoMHgzIDw8IDApCi0jZGVmaW5lIE9NQVAyNDIwX0FVVE9TVEFU RV9JVkFfTUFTSwkJCSgxIDw8IDgpCi0jZGVmaW5lIE9NQVAyNFhYX0FVVE9TVEFURV9EU1BfTUFT SwkJCSgxIDw8IDApCi0jZGVmaW5lIE9NQVAyNDMwX0FVVE9TVEFURV9NRE1fTUFTSwkJCSgxIDw8 IDApCi0jZGVmaW5lIE9NQVAyNFhYX0NMS1NUQ1RSTF9ESVNBQkxFX0FVVE8JCTB4MAotI2RlZmlu ZSBPTUFQMjRYWF9DTEtTVENUUkxfRU5BQkxFX0FVVE8JCTB4MQotI2VuZGlmCmRpZmYgLS1naXQg YS9hcmNoL2FybS9tYWNoLW9tYXAyL2NtMnh4eC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbTJ4 eHguYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWM2ZDY5ZjRiZjQ5Li4wMDAwMDAw MDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbTJ4eHguYworKysgL2Rldi9udWxsCkBA IC0xLDMwMiArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5 Ci0vKgotICogT01BUDJ4eHggQ00gbW9kdWxlIGZ1bmN0aW9ucwotICoKLSAqIENvcHlyaWdodCAo QykgMjAwOSBOb2tpYSBDb3Jwb3JhdGlvbgotICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTAsIDIw MTIgVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KLSAqIFBhdWwgV2FsbXNsZXkKLSAqIFJhamVuZHJh IE5heWFrIDxybmF5YWtAdGkuY29tPgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4K LSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5j bHVkZSA8bGludXgvZXJybm8uaD4KLSNpbmNsdWRlIDxsaW51eC9lcnIuaD4KLSNpbmNsdWRlIDxs aW51eC9pby5oPgotCi0jaW5jbHVkZSAicHJtMnh4eC5oIgotI2luY2x1ZGUgImNtLmgiCi0jaW5j bHVkZSAiY20yeHh4LmgiCi0jaW5jbHVkZSAiY20tcmVnYml0cy0yNHh4LmgiCi0jaW5jbHVkZSAi Y2xvY2tkb21haW4uaCIKLQotLyogQ01fQVVUT0lETEVfUExMLkFVVE9fKiBiaXQgdmFsdWVzIGZv ciBEUExMcyAqLwotI2RlZmluZSBEUExMX0FVVE9JRExFX0RJU0FCTEUJCQkJMHgwCi0jZGVmaW5l IE9NQVAyWFhYX0RQTExfQVVUT0lETEVfTE9XX1BPV0VSX1NUT1AJCTB4MwotCi0vKiBDTV9BVVRP SURMRV9QTEwuQVVUT18qIGJpdCB2YWx1ZXMgZm9yIEFQTExzIChPTUFQMnh4eCBvbmx5KSAqLwot I2RlZmluZSBPTUFQMlhYWF9BUExMX0FVVE9JRExFX0RJU0FCTEUJCQkweDAKLSNkZWZpbmUgT01B UDJYWFhfQVBMTF9BVVRPSURMRV9MT1dfUE9XRVJfU1RPUAkJMHgzCi0KLS8qIENNX0lETEVTVF9Q TEwgYml0IHZhbHVlIG9mZnNldCBmb3IgQVBMTHMgKE9NQVAyeHh4IG9ubHkpICovCi0jZGVmaW5l IEVOX0FQTExfTE9DS0VECQkJCQkzCi0KLXN0YXRpYyBjb25zdCB1OCBvbWFwMnh4eF9jbV9pZGxl c3Rfb2Zmc1tdID0gewotCUNNX0lETEVTVDEsIENNX0lETEVTVDIsIE9NQVAyNDMwX0NNX0lETEVT VDMsIE9NQVAyNFhYX0NNX0lETEVTVDQKLX07Ci0KLS8qCi0gKgotICovCi0KLXN0YXRpYyB2b2lk IF93cml0ZV9jbGt0cmN0cmwodTggYywgczE2IG1vZHVsZSwgdTMyIG1hc2spCi17Ci0JdTMyIHY7 Ci0KLQl2ID0gb21hcDJfY21fcmVhZF9tb2RfcmVnKG1vZHVsZSwgT01BUDJfQ01fQ0xLU1RDVFJM KTsKLQl2ICY9IH5tYXNrOwotCXYgfD0gYyA8PCBfX2ZmcyhtYXNrKTsKLQlvbWFwMl9jbV93cml0 ZV9tb2RfcmVnKHYsIG1vZHVsZSwgT01BUDJfQ01fQ0xLU1RDVFJMKTsKLX0KLQotc3RhdGljIGJv b2wgb21hcDJ4eHhfY21faXNfY2xrZG1faW5faHdzdXAoczE2IG1vZHVsZSwgdTMyIG1hc2spCi17 Ci0JdTMyIHY7Ci0KLQl2ID0gb21hcDJfY21fcmVhZF9tb2RfcmVnKG1vZHVsZSwgT01BUDJfQ01f Q0xLU1RDVFJMKTsKLQl2ICY9IG1hc2s7Ci0JdiA+Pj0gX19mZnMobWFzayk7Ci0KLQlyZXR1cm4g KHYgPT0gT01BUDI0WFhfQ0xLU1RDVFJMX0VOQUJMRV9BVVRPKSA/IDEgOiAwOwotfQotCi1zdGF0 aWMgdm9pZCBvbWFwMnh4eF9jbV9jbGtkbV9lbmFibGVfaHdzdXAoczE2IG1vZHVsZSwgdTMyIG1h c2spCi17Ci0JX3dyaXRlX2Nsa3RyY3RybChPTUFQMjRYWF9DTEtTVENUUkxfRU5BQkxFX0FVVE8s IG1vZHVsZSwgbWFzayk7Ci19Ci0KLXN0YXRpYyB2b2lkIG9tYXAyeHh4X2NtX2Nsa2RtX2Rpc2Fi bGVfaHdzdXAoczE2IG1vZHVsZSwgdTMyIG1hc2spCi17Ci0JX3dyaXRlX2Nsa3RyY3RybChPTUFQ MjRYWF9DTEtTVENUUkxfRElTQUJMRV9BVVRPLCBtb2R1bGUsIG1hc2spOwotfQotCi0vKgotICog RFBMTCBhdXRvaWRsZSBjb250cm9sCi0gKi8KLQotc3RhdGljIHZvaWQgX29tYXAyeHh4X3NldF9k cGxsX2F1dG9pZGxlKHU4IG0pCi17Ci0JdTMyIHY7Ci0KLQl2ID0gb21hcDJfY21fcmVhZF9tb2Rf cmVnKFBMTF9NT0QsIENNX0FVVE9JRExFKTsKLQl2ICY9IH5PTUFQMjRYWF9BVVRPX0RQTExfTUFT SzsKLQl2IHw9IG0gPDwgT01BUDI0WFhfQVVUT19EUExMX1NISUZUOwotCW9tYXAyX2NtX3dyaXRl X21vZF9yZWcodiwgUExMX01PRCwgQ01fQVVUT0lETEUpOwotfQotCi12b2lkIG9tYXAyeHh4X2Nt X3NldF9kcGxsX2Rpc2FibGVfYXV0b2lkbGUodm9pZCkKLXsKLQlfb21hcDJ4eHhfc2V0X2RwbGxf YXV0b2lkbGUoT01BUDJYWFhfRFBMTF9BVVRPSURMRV9MT1dfUE9XRVJfU1RPUCk7Ci19Ci0KLXZv aWQgb21hcDJ4eHhfY21fc2V0X2RwbGxfYXV0b19sb3dfcG93ZXJfc3RvcCh2b2lkKQotewotCV9v bWFwMnh4eF9zZXRfZHBsbF9hdXRvaWRsZShEUExMX0FVVE9JRExFX0RJU0FCTEUpOwotfQotCi0v KioKLSAqIG9tYXAyeHh4X2NtX3NwbGl0X2lkbGVzdF9yZWcgLSBzcGxpdCBDTV9JRExFU1QgcmVn IGFkZHIgaW50byBpdHMgY29tcG9uZW50cwotICogQGlkbGVzdF9yZWc6IENNX0lETEVTVCogdmly dHVhbCBhZGRyZXNzCi0gKiBAcHJjbV9pbnN0OiBwb2ludGVyIHRvIGFuIHMxNiB0byByZXR1cm4g dGhlIFBSQ00gaW5zdGFuY2Ugb2Zmc2V0Ci0gKiBAaWRsZXN0X3JlZ19pZDogcG9pbnRlciB0byBh IHU4IHRvIHJldHVybiB0aGUgQ01fSURMRVNUeCByZWdpc3RlciBJRAotICoKLSAqIFhYWCBUaGlz IGZ1bmN0aW9uIGlzIG9ubHkgbmVlZGVkIHVudGlsIGFic29sdXRlIHJlZ2lzdGVyIGFkZHJlc3Nl cyBhcmUKLSAqIHJlbW92ZWQgZnJvbSB0aGUgT01BUCBzdHJ1Y3QgY2xrIHJlY29yZHMuCi0gKi8K LXN0YXRpYyBpbnQgb21hcDJ4eHhfY21fc3BsaXRfaWRsZXN0X3JlZyhzdHJ1Y3QgY2xrX29tYXBf cmVnICppZGxlc3RfcmVnLAotCQkJCQlzMTYgKnByY21faW5zdCwKLQkJCQkJdTggKmlkbGVzdF9y ZWdfaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBvZmZzOwotCXU4IGlkbGVzdF9vZmZzOwotCWludCBp OwotCi0JaWRsZXN0X29mZnMgPSBpZGxlc3RfcmVnLT5vZmZzZXQgJiAweGZmOwotCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKG9tYXAyeHh4X2NtX2lkbGVzdF9vZmZzKTsgaSsrKSB7Ci0JCWlm IChpZGxlc3Rfb2ZmcyA9PSBvbWFwMnh4eF9jbV9pZGxlc3Rfb2Zmc1tpXSkgewotCQkJKmlkbGVz dF9yZWdfaWQgPSBpICsgMTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCi0JaWYgKGkgPT0gQVJSQVlf U0laRShvbWFwMnh4eF9jbV9pZGxlc3Rfb2ZmcykpCi0JCXJldHVybiAtRUlOVkFMOwotCi0Jb2Zm cyA9IGlkbGVzdF9yZWctPm9mZnNldDsKLQlvZmZzICY9IDB4ZmYwMDsKLQkqcHJjbV9pbnN0ID0g b2ZmczsKLQotCXJldHVybiAwOwotfQotCi0vKgotICoKLSAqLwotCi0vKioKLSAqIG9tYXAyeHh4 X2NtX3dhaXRfbW9kdWxlX3JlYWR5IC0gd2FpdCBmb3IgYSBtb2R1bGUgdG8gbGVhdmUgaWRsZSBv ciBzdGFuZGJ5Ci0gKiBAcGFydDogUFJDTSBwYXJ0aXRpb24sIGlnbm9yZWQgZm9yIE9NQVAyCi0g KiBAcHJjbV9tb2Q6IFBSQ00gbW9kdWxlIG9mZnNldAotICogQGlkbGVzdF9pZDogQ01fSURMRVNU eCByZWdpc3RlciBJRCAoaS5lLiwgeCA9IDEsIDIsIDMpCi0gKiBAaWRsZXN0X3NoaWZ0OiBzaGlm dCBvZiB0aGUgYml0IGluIHRoZSBDTV9JRExFU1QqIHJlZ2lzdGVyIHRvIGNoZWNrCi0gKgotICog V2FpdCBmb3IgdGhlIFBSQ00gdG8gaW5kaWNhdGUgdGhhdCB0aGUgbW9kdWxlIGlkZW50aWZpZWQg YnkKLSAqIChAcHJjbV9tb2QsIEBpZGxlc3RfaWQsIEBpZGxlc3Rfc2hpZnQpIGlzIGNsb2NrZWQu ICBSZXR1cm4gMCB1cG9uCi0gKiBzdWNjZXNzIG9yIC1FQlVTWSBpZiB0aGUgbW9kdWxlIGRvZXNu J3QgZW5hYmxlIGluIHRpbWUuCi0gKi8KLXN0YXRpYyBpbnQgb21hcDJ4eHhfY21fd2FpdF9tb2R1 bGVfcmVhZHkodTggcGFydCwgczE2IHByY21fbW9kLCB1MTYgaWRsZXN0X2lkLAotCQkJCQkgdTgg aWRsZXN0X3NoaWZ0KQotewotCWludCBlbmEgPSAwLCBpID0gMDsKLQl1OCBjbV9pZGxlc3RfcmVn OwotCXUzMiBtYXNrOwotCi0JaWYgKCFpZGxlc3RfaWQgfHwgKGlkbGVzdF9pZCA+IEFSUkFZX1NJ WkUob21hcDJ4eHhfY21faWRsZXN0X29mZnMpKSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQljbV9p ZGxlc3RfcmVnID0gb21hcDJ4eHhfY21faWRsZXN0X29mZnNbaWRsZXN0X2lkIC0gMV07Ci0KLQlt YXNrID0gMSA8PCBpZGxlc3Rfc2hpZnQ7Ci0JZW5hID0gbWFzazsKLQotCW9tYXBfdGVzdF90aW1l b3V0KCgob21hcDJfY21fcmVhZF9tb2RfcmVnKHByY21fbW9kLCBjbV9pZGxlc3RfcmVnKSAmCi0J CQkgICAgbWFzaykgPT0gZW5hKSwgTUFYX01PRFVMRV9SRUFEWV9USU1FLCBpKTsKLQotCXJldHVy biAoaSA8IE1BWF9NT0RVTEVfUkVBRFlfVElNRSkgPyAwIDogLUVCVVNZOwotfQotCi0vKiBDbG9j a2RvbWFpbiBsb3ctbGV2ZWwgZnVuY3Rpb25zICovCi0KLXN0YXRpYyB2b2lkIG9tYXAyeHh4X2Ns a2RtX2FsbG93X2lkbGUoc3RydWN0IGNsb2NrZG9tYWluICpjbGtkbSkKLXsKLQlvbWFwMnh4eF9j bV9jbGtkbV9lbmFibGVfaHdzdXAoY2xrZG0tPnB3cmRtLnB0ci0+cHJjbV9vZmZzLAotCQkJCSAg ICAgICBjbGtkbS0+Y2xrdHJjdHJsX21hc2spOwotfQotCi1zdGF0aWMgdm9pZCBvbWFwMnh4eF9j bGtkbV9kZW55X2lkbGUoc3RydWN0IGNsb2NrZG9tYWluICpjbGtkbSkKLXsKLQlvbWFwMnh4eF9j bV9jbGtkbV9kaXNhYmxlX2h3c3VwKGNsa2RtLT5wd3JkbS5wdHItPnByY21fb2ZmcywKLQkJCQkJ Y2xrZG0tPmNsa3RyY3RybF9tYXNrKTsKLX0KLQotc3RhdGljIGludCBvbWFwMnh4eF9jbGtkbV9j bGtfZW5hYmxlKHN0cnVjdCBjbG9ja2RvbWFpbiAqY2xrZG0pCi17Ci0JYm9vbCBod3N1cCA9IGZh bHNlOwotCi0JaWYgKCFjbGtkbS0+Y2xrdHJjdHJsX21hc2spCi0JCXJldHVybiAwOwotCi0JaHdz dXAgPSBvbWFwMnh4eF9jbV9pc19jbGtkbV9pbl9od3N1cChjbGtkbS0+cHdyZG0ucHRyLT5wcmNt X29mZnMsCi0JCQkJCSAgICAgIGNsa2RtLT5jbGt0cmN0cmxfbWFzayk7Ci0JaWYgKCFod3N1cCAm JiBjbGtkbS0+ZmxhZ3MgJiBDTEtETV9DQU5fRk9SQ0VfV0FLRVVQKQotCQlvbWFwMnh4eF9jbGtk bV93YWtldXAoY2xrZG0pOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgb21hcDJ4eHhf Y2xrZG1fY2xrX2Rpc2FibGUoc3RydWN0IGNsb2NrZG9tYWluICpjbGtkbSkKLXsKLQlib29sIGh3 c3VwID0gZmFsc2U7Ci0KLQlpZiAoIWNsa2RtLT5jbGt0cmN0cmxfbWFzaykKLQkJcmV0dXJuIDA7 Ci0KLQlod3N1cCA9IG9tYXAyeHh4X2NtX2lzX2Nsa2RtX2luX2h3c3VwKGNsa2RtLT5wd3JkbS5w dHItPnByY21fb2ZmcywKLQkJCQkJICAgICAgY2xrZG0tPmNsa3RyY3RybF9tYXNrKTsKLQotCWlm ICghaHdzdXAgJiYgY2xrZG0tPmZsYWdzICYgQ0xLRE1fQ0FOX0ZPUkNFX1NMRUVQKQotCQlvbWFw Mnh4eF9jbGtkbV9zbGVlcChjbGtkbSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RydWN0IGNsa2Rt X29wcyBvbWFwMl9jbGtkbV9vcGVyYXRpb25zID0gewotCS5jbGtkbV9hZGRfd2tkZXAJPSBvbWFw Ml9jbGtkbV9hZGRfd2tkZXAsCi0JLmNsa2RtX2RlbF93a2RlcAk9IG9tYXAyX2Nsa2RtX2RlbF93 a2RlcCwKLQkuY2xrZG1fcmVhZF93a2RlcAk9IG9tYXAyX2Nsa2RtX3JlYWRfd2tkZXAsCi0JLmNs a2RtX2NsZWFyX2FsbF93a2RlcHMJPSBvbWFwMl9jbGtkbV9jbGVhcl9hbGxfd2tkZXBzLAotCS5j bGtkbV9zbGVlcAkJPSBvbWFwMnh4eF9jbGtkbV9zbGVlcCwKLQkuY2xrZG1fd2FrZXVwCQk9IG9t YXAyeHh4X2Nsa2RtX3dha2V1cCwKLQkuY2xrZG1fYWxsb3dfaWRsZQk9IG9tYXAyeHh4X2Nsa2Rt X2FsbG93X2lkbGUsCi0JLmNsa2RtX2RlbnlfaWRsZQk9IG9tYXAyeHh4X2Nsa2RtX2RlbnlfaWRs ZSwKLQkuY2xrZG1fY2xrX2VuYWJsZQk9IG9tYXAyeHh4X2Nsa2RtX2Nsa19lbmFibGUsCi0JLmNs a2RtX2Nsa19kaXNhYmxlCT0gb21hcDJ4eHhfY2xrZG1fY2xrX2Rpc2FibGUsCi19OwotCi1pbnQg b21hcDJ4eHhfY21fZmNsa3NfYWN0aXZlKHZvaWQpCi17Ci0JdTMyIGYxLCBmMjsKLQotCWYxID0g b21hcDJfY21fcmVhZF9tb2RfcmVnKENPUkVfTU9ELCBDTV9GQ0xLRU4xKTsKLQlmMiA9IG9tYXAy X2NtX3JlYWRfbW9kX3JlZyhDT1JFX01PRCwgT01BUDI0WFhfQ01fRkNMS0VOMik7Ci0KLQlyZXR1 cm4gKGYxIHwgZjIpID8gMSA6IDA7Ci19Ci0KLWludCBvbWFwMnh4eF9jbV9tcHVfcmV0ZW50aW9u X2FsbG93ZWQodm9pZCkKLXsKLQl1MzIgbDsKLQotCS8qIENoZWNrIGZvciBNTUMsIFVBUlQyLCBV QVJUMSwgTWNTUEkyLCBNY1NQSTEgYW5kIERTUzEuICovCi0JbCA9IG9tYXAyX2NtX3JlYWRfbW9k X3JlZyhDT1JFX01PRCwgQ01fRkNMS0VOMSk7Ci0JaWYgKGwgJiAoT01BUDI0MjBfRU5fTU1DX01B U0sgfCBPTUFQMjRYWF9FTl9VQVJUMl9NQVNLIHwKLQkJIE9NQVAyNFhYX0VOX1VBUlQxX01BU0sg fCBPTUFQMjRYWF9FTl9NQ1NQSTJfTUFTSyB8Ci0JCSBPTUFQMjRYWF9FTl9NQ1NQSTFfTUFTSyB8 IE9NQVAyNFhYX0VOX0RTUzFfTUFTSykpCi0JCXJldHVybiAwOwotCS8qIENoZWNrIGZvciBVQVJU My4gKi8KLQlsID0gb21hcDJfY21fcmVhZF9tb2RfcmVnKENPUkVfTU9ELCBPTUFQMjRYWF9DTV9G Q0xLRU4yKTsKLQlpZiAobCAmIE9NQVAyNFhYX0VOX1VBUlQzX01BU0spCi0JCXJldHVybiAwOwot Ci0JcmV0dXJuIDE7Ci19Ci0KLXUzMiBvbWFwMnh4eF9jbV9nZXRfY29yZV9jbGtfc3JjKHZvaWQp Ci17Ci0JdTMyIHY7Ci0KLQl2ID0gb21hcDJfY21fcmVhZF9tb2RfcmVnKFBMTF9NT0QsIENNX0NM S1NFTDIpOwotCXYgJj0gT01BUDI0WFhfQ09SRV9DTEtfU1JDX01BU0s7Ci0KLQlyZXR1cm4gdjsK LX0KLQotdTMyIG9tYXAyeHh4X2NtX2dldF9jb3JlX3BsbF9jb25maWcodm9pZCkKLXsKLQlyZXR1 cm4gb21hcDJfY21fcmVhZF9tb2RfcmVnKFBMTF9NT0QsIENNX0NMS1NFTDIpOwotfQotCi12b2lk IG9tYXAyeHh4X2NtX3NldF9tb2RfZGl2aWRlcnModTMyIG1wdSwgdTMyIGRzcCwgdTMyIGdmeCwg dTMyIGNvcmUsIHUzMiBtZG0pCi17Ci0JdTMyIHRtcDsKLQotCW9tYXAyX2NtX3dyaXRlX21vZF9y ZWcobXB1LCBNUFVfTU9ELCBDTV9DTEtTRUwpOwotCW9tYXAyX2NtX3dyaXRlX21vZF9yZWcoZHNw LCBPTUFQMjRYWF9EU1BfTU9ELCBDTV9DTEtTRUwpOwotCW9tYXAyX2NtX3dyaXRlX21vZF9yZWco Z2Z4LCBHRlhfTU9ELCBDTV9DTEtTRUwpOwotCXRtcCA9IG9tYXAyX2NtX3JlYWRfbW9kX3JlZyhD T1JFX01PRCwgQ01fQ0xLU0VMMSkgJgotCQlPTUFQMjRYWF9DTEtTRUxfRFNTMl9NQVNLOwotCW9t YXAyX2NtX3dyaXRlX21vZF9yZWcoY29yZSB8IHRtcCwgQ09SRV9NT0QsIENNX0NMS1NFTDEpOwot CWlmIChtZG0pCi0JCW9tYXAyX2NtX3dyaXRlX21vZF9yZWcobWRtLCBPTUFQMjQzMF9NRE1fTU9E LCBDTV9DTEtTRUwpOwotfQotCi0vKgotICoKLSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGNt X2xsX2RhdGEgb21hcDJ4eHhfY21fbGxfZGF0YSA9IHsKLQkuc3BsaXRfaWRsZXN0X3JlZwk9ICZv bWFwMnh4eF9jbV9zcGxpdF9pZGxlc3RfcmVnLAotCS53YWl0X21vZHVsZV9yZWFkeQk9ICZvbWFw Mnh4eF9jbV93YWl0X21vZHVsZV9yZWFkeSwKLX07Ci0KLWludCBfX2luaXQgb21hcDJ4eHhfY21f aW5pdChjb25zdCBzdHJ1Y3Qgb21hcF9wcmNtX2luaXRfZGF0YSAqZGF0YSkKLXsKLQlyZXR1cm4g Y21fcmVnaXN0ZXIoJm9tYXAyeHh4X2NtX2xsX2RhdGEpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4 aXQgb21hcDJ4eHhfY21fZXhpdCh2b2lkKQotewotCWNtX3VucmVnaXN0ZXIoJm9tYXAyeHh4X2Nt X2xsX2RhdGEpOwotfQotX19leGl0Y2FsbChvbWFwMnh4eF9jbV9leGl0KTsKZGlmZiAtLWdpdCBh L2FyY2gvYXJtL21hY2gtb21hcDIvY20yeHh4LmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL2NtMnh4 eC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Y2JlZmYxNWZmYjAuLjAwMDAwMDAw MDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2NtMnh4eC5oCisrKyAvZGV2L251bGwKQEAg LTEsNjAgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAq LwotLyoKLSAqIE9NQVAyeHh4IENsb2NrIE1hbmFnZW1lbnQgKENNKSByZWdpc3RlciBkZWZpbml0 aW9ucwotICoKLSAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5LCAyMDEyIFRleGFzIEluc3RydW1l bnRzLCBJbmMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbgot ICogUGF1bCBXYWxtc2xleQotICoKLSAqIFRoZSBDTSBoYXJkd2FyZSBtb2R1bGVzIG9uIHRoZSBP TUFQMi8zIGFyZSBxdWl0ZSBzaW1pbGFyIHRvIGVhY2gKLSAqIG90aGVyLiAgVGhlIENNIG1vZHVs ZXMvaW5zdGFuY2VzIG9uIE9NQVA0IGFyZSBxdWl0ZSBkaWZmZXJlbnQsIHNvCi0gKiB0aGV5IGFy ZSBoYW5kbGVkIGluIGEgc2VwYXJhdGUgZmlsZS4KLSAqLwotI2lmbmRlZiBfX0FSQ0hfQVNNX01B Q0hfT01BUDJfQ00yWFhYX0gKLSNkZWZpbmUgX19BUkNIX0FTTV9NQUNIX09NQVAyX0NNMlhYWF9I Ci0KLSNpbmNsdWRlICJwcmNtLWNvbW1vbi5oIgotI2luY2x1ZGUgImNtMnh4eF8zeHh4LmgiCi0K LSNkZWZpbmUgT01BUDI0MjBfQ01fUkVHQUREUihtb2R1bGUsIHJlZykJCQkJXAotCQkJT01BUDJf TDRfSU9fQUREUkVTUyhPTUFQMjQyMF9DTV9CQVNFICsgKG1vZHVsZSkgKyAocmVnKSkKLSNkZWZp bmUgT01BUDI0MzBfQ01fUkVHQUREUihtb2R1bGUsIHJlZykJCQkJXAotCQkJT01BUDJfTDRfSU9f QUREUkVTUyhPTUFQMjQzMF9DTV9CQVNFICsgKG1vZHVsZSkgKyAocmVnKSkKLQotLyoKLSAqIE1v ZHVsZSBzcGVjaWZpYyBDTSByZWdpc3RlciBvZmZzZXRzIGZyb20gQ01fQkFTRSArIGRvbWFpbiBv ZmZzZXQKLSAqIFVzZSBjbV97cmVhZCx3cml0ZX1fbW9kX3JlZygpIHdpdGggdGhlc2UgcmVnaXN0 ZXJzLgotICogVGhlc2UgcmVnaXN0ZXIgb2Zmc2V0cyBnZW5lcmFsbHkgYXBwZWFyIGluIG1vcmUg dGhhbiBvbmUgUFJDTSBzdWJtb2R1bGUuCi0gKi8KLQotLyogT01BUDItc3BlY2lmaWMgcmVnaXN0 ZXIgb2Zmc2V0cyAqLwotCi0jZGVmaW5lIE9NQVAyNFhYX0NNX0ZDTEtFTjIJCQkJMHgwMDA0Ci0j ZGVmaW5lIE9NQVAyNFhYX0NNX0lDTEtFTjQJCQkJMHgwMDFjCi0jZGVmaW5lIE9NQVAyNFhYX0NN X0FVVE9JRExFNAkJCQkweDAwM2MKLSNkZWZpbmUgT01BUDI0WFhfQ01fSURMRVNUNAkJCQkweDAw MmMKLQotLyogQ01fSURMRVNUIGJpdCBmaWVsZCB2YWx1ZXMgdG8gaW5kaWNhdGUgZGVhc3NlcnRl ZCBJZGxlUmVxICovCi0KLSNkZWZpbmUgT01BUDI0WFhfQ01fSURMRVNUX1ZBTAkJCQkwCi0KLQot LyogQ2xvY2sgbWFuYWdlbWVudCBkb21haW4gcmVnaXN0ZXIgZ2V0L3NldCAqLwotCi0jaWZuZGVm IF9fQVNTRU1CTEVSX18KLQotZXh0ZXJuIHZvaWQgb21hcDJ4eHhfY21fc2V0X2RwbGxfZGlzYWJs ZV9hdXRvaWRsZSh2b2lkKTsKLWV4dGVybiB2b2lkIG9tYXAyeHh4X2NtX3NldF9kcGxsX2F1dG9f bG93X3Bvd2VyX3N0b3Aodm9pZCk7Ci0KLWV4dGVybiBpbnQgb21hcDJ4eHhfY21fZmNsa3NfYWN0 aXZlKHZvaWQpOwotZXh0ZXJuIGludCBvbWFwMnh4eF9jbV9tcHVfcmV0ZW50aW9uX2FsbG93ZWQo dm9pZCk7Ci1leHRlcm4gdTMyIG9tYXAyeHh4X2NtX2dldF9jb3JlX2Nsa19zcmModm9pZCk7Ci1l eHRlcm4gdTMyIG9tYXAyeHh4X2NtX2dldF9jb3JlX3BsbF9jb25maWcodm9pZCk7Ci1leHRlcm4g dm9pZCBvbWFwMnh4eF9jbV9zZXRfbW9kX2RpdmlkZXJzKHUzMiBtcHUsIHUzMiBkc3AsIHUzMiBn ZngsIHUzMiBjb3JlLAotCQkJCQkgdTMyIG1kbSk7Ci0KLWludCBfX2luaXQgb21hcDJ4eHhfY21f aW5pdChjb25zdCBzdHJ1Y3Qgb21hcF9wcmNtX2luaXRfZGF0YSAqZGF0YSk7Ci0KLSNlbmRpZgot Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY21fY29tbW9uLmMgYi9h cmNoL2FybS9tYWNoLW9tYXAyL2NtX2NvbW1vbi5jCmluZGV4IDg3ZjJjMmQyZDc1NC4uZmMxNmNk MWZkMmQ1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2NtX2NvbW1vbi5jCisrKyBi L2FyY2gvYXJtL21hY2gtb21hcDIvY21fY29tbW9uLmMKQEAgLTE1LDcgKzE1LDYgQEAKICNpbmNs dWRlIDxsaW51eC9vZi5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJlc3MuaD4KIAotI2luY2x1 ZGUgImNtMnh4eC5oIgogI2luY2x1ZGUgImNtM3h4eC5oIgogI2luY2x1ZGUgImNtMzN4eC5oIgog I2luY2x1ZGUgImNtNDR4eC5oIgpAQCAtMjMwLDE0ICsyMjksNiBAQCBzdGF0aWMgc3RydWN0IG9t YXBfcHJjbV9pbml0X2RhdGEgY20yX2RhdGEgX19pbml0ZGF0YSA9IHsKIH07CiAjZW5kaWYKIAot I2lmZGVmIENPTkZJR19BUkNIX09NQVAyCi1zdGF0aWMgc3RydWN0IG9tYXBfcHJjbV9pbml0X2Rh dGEgb21hcDJfcHJjbV9kYXRhIF9faW5pdGRhdGEgPSB7Ci0JLmluZGV4ID0gVElfQ0xLTV9DTSwK LQkuaW5pdCA9IG9tYXAyeHh4X2NtX2luaXQsCi0JLmZsYWdzID0gQ01fTk9fQ0xPQ0tTIHwgQ01f U0lOR0xFX0lOU1RBTkNFLAotfTsKLSNlbmRpZgotCiAjaWZkZWYgQ09ORklHX0FSQ0hfT01BUDMK IHN0YXRpYyBzdHJ1Y3Qgb21hcF9wcmNtX2luaXRfZGF0YSBvbWFwM19jbV9kYXRhIF9faW5pdGRh dGEgPSB7CiAJLmluZGV4ID0gVElfQ0xLTV9DTSwKQEAgLTI2OSw5ICsyNjAsNiBAQCBzdGF0aWMg c3RydWN0IG9tYXBfcHJjbV9pbml0X2RhdGEgYW00X3ByY21fZGF0YSBfX2luaXRkYXRhID0gewog I2VuZGlmCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9tYXBfY21fZHRfbWF0 Y2hfdGFibGVbXSBfX2luaXRjb25zdCA9IHsKLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMgotCXsg LmNvbXBhdGlibGUgPSAidGksb21hcDItcHJjbSIsIC5kYXRhID0gJm9tYXAyX3ByY21fZGF0YSB9 LAotI2VuZGlmCiAjaWZkZWYgQ09ORklHX0FSQ0hfT01BUDMKIAl7IC5jb21wYXRpYmxlID0gInRp LG9tYXAzLWNtIiwgLmRhdGEgPSAmb21hcDNfY21fZGF0YSB9LAogI2VuZGlmCmRpZmYgLS1naXQg YS9hcmNoL2FybS9tYWNoLW9tYXAyL2NvbW1vbi1ib2FyZC1kZXZpY2VzLmggYi9hcmNoL2FybS9t YWNoLW9tYXAyL2NvbW1vbi1ib2FyZC1kZXZpY2VzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDY5Njk0YWY3MTQ3NS4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtb21h cDIvY29tbW9uLWJvYXJkLWRldmljZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAK LS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCi0jaWZuZGVmIF9fT01BUF9D T01NT05fQk9BUkRfREVWSUNFU19fCi0jZGVmaW5lIF9fT01BUF9DT01NT05fQk9BUkRfREVWSUNF U19fCi0KLSNpbmNsdWRlIDxsaW51eC9tZmQvbWVuZWxhdXMuaD4KLQotdm9pZCAqbjh4MF9sZWdh Y3lfaW5pdCh2b2lkKTsKLQotZXh0ZXJuIHN0cnVjdCBtZW5lbGF1c19wbGF0Zm9ybV9kYXRhIG44 eDBfbWVuZWxhdXNfcGxhdGZvcm1fZGF0YTsKLQotI2VuZGlmIC8qIF9fT01BUF9DT01NT05fQk9B UkRfREVWSUNFU19fICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2NvbW1vbi5o IGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jb21tb24uaAppbmRleCA5ZDYwNzk5ZTk3NTIuLmY4ZWQ5 NzA0NGFkZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jb21tb24uaAorKysgYi9h cmNoL2FybS9tYWNoLW9tYXAyL2NvbW1vbi5oCkBAIC0xMDIsOCArMTAyLDYgQEAgc3RhdGljIGlu bGluZSB2b2lkIG9tYXA1X3JlYWx0aW1lX3RpbWVyX2luaXQodm9pZCkKIH0KICNlbmRpZgogCi12 b2lkIG9tYXAyNDIwX2luaXRfZWFybHkodm9pZCk7Ci12b2lkIG9tYXAyNDMwX2luaXRfZWFybHko dm9pZCk7CiB2b2lkIG9tYXAzNDMwX2luaXRfZWFybHkodm9pZCk7CiB2b2lkIG9tYXAzNjMwX2lu aXRfZWFybHkodm9pZCk7CiB2b2lkIGFtMzN4eF9pbml0X2Vhcmx5KHZvaWQpOwpAQCAtMTMwLDE0 ICsxMjgsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgb21hcF9zb2NfZGV2aWNlX2luaXQodm9pZCkK IH0KICNlbmRpZgogCi0jaWYgZGVmaW5lZChDT05GSUdfU09DX09NQVAyNDIwKSB8fCBkZWZpbmVk KENPTkZJR19TT0NfT01BUDI0MzApCi12b2lkIG9tYXAyeHh4X3Jlc3RhcnQoZW51bSByZWJvb3Rf bW9kZSBtb2RlLCBjb25zdCBjaGFyICpjbWQpOwotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgdm9pZCBv bWFwMnh4eF9yZXN0YXJ0KGVudW0gcmVib290X21vZGUgbW9kZSwgY29uc3QgY2hhciAqY21kKQot ewotfQotI2VuZGlmCi0KICNpZmRlZiBDT05GSUdfU09DX0FNMzNYWAogdm9pZCBhbTMzeHhfcmVz dGFydChlbnVtIHJlYm9vdF9tb2RlIG1vZGUsIGNvbnN0IGNoYXIgKmNtZCk7CiAjZWxzZQpAQCAt MTgzLDggKzE3Myw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBvbWFwX2JhcnJpZXJfcmVzZXJ2ZV9t ZW1ibG9jayh2b2lkKQogLyogVGhpcyBnZXRzIGNhbGxlZCBmcm9tIG1hY2gtb21hcDIvaW8uYywg ZG8gbm90IGNhbGwgdGhpcyAqLwogdm9pZCBfX2luaXQgb21hcDJfc2V0X2dsb2JhbHNfdGFwKHUz MiBjbGFzcywgdm9pZCBfX2lvbWVtICp0YXApOwogCi12b2lkIF9faW5pdCBvbWFwMjQyeF9tYXBf aW8odm9pZCk7Ci12b2lkIF9faW5pdCBvbWFwMjQzeF9tYXBfaW8odm9pZCk7CiB2b2lkIF9faW5p dCBvbWFwM19tYXBfaW8odm9pZCk7CiB2b2lkIF9faW5pdCBhbTMzeHhfbWFwX2lvKHZvaWQpOwog dm9pZCBfX2luaXQgb21hcDRfbWFwX2lvKHZvaWQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFj aC1vbWFwMi9jb250cm9sLmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL2NvbnRyb2wuaAppbmRleCA3 ZTc0NDA1MzNiZjkuLjNhYjFjNmU2ZGRlNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFw Mi9jb250cm9sLmgKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jb250cm9sLmgKQEAgLTE5LDE5 ICsxOSwxMSBAQAogI2luY2x1ZGUgImFtMzN4eC5oIgogCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwot I2RlZmluZSBPTUFQMjQyWF9DVFJMX1JFR0FERFIocmVnKQkJCQkJXAotCQlPTUFQMl9MNF9JT19B RERSRVNTKE9NQVAyNDJYX0NUUkxfQkFTRSArIChyZWcpKQotI2RlZmluZSBPTUFQMjQzWF9DVFJM X1JFR0FERFIocmVnKQkJCQkJXAotCQlPTUFQMl9MNF9JT19BRERSRVNTKE9NQVAyNDNYX0NUUkxf QkFTRSArIChyZWcpKQogI2RlZmluZSBPTUFQMzQzWF9DVFJMX1JFR0FERFIocmVnKQkJCQkJXAog CQlPTUFQMl9MNF9JT19BRERSRVNTKE9NQVAzNDNYX0NUUkxfQkFTRSArIChyZWcpKQogI2RlZmlu ZSBBTTMzWFhfQ1RSTF9SRUdBRERSKHJlZykJCQkJCVwKIAkJQU0zM1hYX0w0X1dLX0lPX0FERFJF U1MoQU0zM1hYX1NDTV9CQVNFICsgKHJlZykpCiAjZWxzZQotI2RlZmluZSBPTUFQMjQyWF9DVFJM X1JFR0FERFIocmVnKQkJCQkJXAotCQlPTUFQMl9MNF9JT19BRERSRVNTKE9NQVAyNDJYX0NUUkxf QkFTRSArIChyZWcpKQotI2RlZmluZSBPTUFQMjQzWF9DVFJMX1JFR0FERFIocmVnKQkJCQkJXAot CQlPTUFQMl9MNF9JT19BRERSRVNTKE9NQVAyNDNYX0NUUkxfQkFTRSArIChyZWcpKQogI2RlZmlu ZSBPTUFQMzQzWF9DVFJMX1JFR0FERFIocmVnKQkJCQkJXAogCQlPTUFQMl9MNF9JT19BRERSRVNT KE9NQVAzNDNYX0NUUkxfQkFTRSArIChyZWcpKQogI2RlZmluZSBBTTMzWFhfQ1RSTF9SRUdBRERS KHJlZykJCQkJCVwKQEAgLTc0LDUyICs2Niw2IEBACiAjZGVmaW5lIE9NQVAyX0NPTlRST0xfUlBV Ql9LRVlfSF8yCShPTUFQMl9DT05UUk9MX0dFTkVSQUwgKyAweDAwOTgpCiAjZGVmaW5lIE9NQVAy X0NPTlRST0xfUlBVQl9LRVlfSF8zCShPTUFQMl9DT05UUk9MX0dFTkVSQUwgKyAweDAwOWMpCiAK LS8qIDI0Mngtb25seSBDT05UUk9MX0dFTkVSQUwgcmVnaXN0ZXIgb2Zmc2V0cyAqLwotI2RlZmlu ZSBPTUFQMjQyWF9DT05UUk9MX0RFVkNPTkYJT01BUDJfQ09OVFJPTF9ERVZDT05GMCAvKiBtYXRj aCBUUk0gKi8KLSNkZWZpbmUgT01BUDI0MlhfQ09OVFJPTF9PQ01fUkFNX1BFUk0JKE9NQVAyX0NP TlRST0xfR0VORVJBTCArIDB4MDA2OCkKLQotLyogMjQzeC1vbmx5IENPTlRST0xfR0VORVJBTCBy ZWdpc3RlciBvZmZzZXRzICovCi0vKiBDT05UUk9MX0lWQTJfQk9PVHtBRERSLE1PRH0gYXJlIGF0 IHRoZSBzYW1lIHBsYWNlIG9uIDM0M3ggLSBub3RlZCBiZWxvdyAqLwotI2RlZmluZSBPTUFQMjQz WF9DT05UUk9MX0RFVkNPTkYxCShPTUFQMl9DT05UUk9MX0dFTkVSQUwgKyAweDAwNzgpCi0jZGVm aW5lIE9NQVAyNDNYX0NPTlRST0xfQ1NJUlhGRQkoT01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgw MDdjKQotI2RlZmluZSBPTUFQMjQzWF9DT05UUk9MX0lWQTJfQk9PVEFERFIJKE9NQVAyX0NPTlRS T0xfR0VORVJBTCArIDB4MDE5MCkKLSNkZWZpbmUgT01BUDI0M1hfQ09OVFJPTF9JVkEyX0JPT1RN T0QJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDE5NCkKLSNkZWZpbmUgT01BUDI0M1hfQ09O VFJPTF9JVkEyX0dFTUNGRwkoT01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgwMTk4KQotI2RlZmlu ZSBPTUFQMjQzWF9DT05UUk9MX1BCSUFTX0xJVEUJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4 MDIzMCkKLQotLyogMjR4eC1vbmx5IENPTlRST0xfR0VORVJBTCByZWdpc3RlciBvZmZzZXRzICov Ci0jZGVmaW5lIE9NQVAyNFhYX0NPTlRST0xfREVCT0JTCQkoT01BUDJfQ09OVFJPTF9HRU5FUkFM ICsgMHgwMDAwKQotI2RlZmluZSBPTUFQMjRYWF9DT05UUk9MX0VNVV9TVVBQT1JUCShPTUFQMl9D T05UUk9MX0dFTkVSQUwgKyAweDAwMDgpCi0jZGVmaW5lIE9NQVAyNFhYX0NPTlRST0xfU0VDX1RF U1QJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDA0NCkKLSNkZWZpbmUgT01BUDI0WFhfQ09O VFJPTF9QU0FfQ1RSTAkoT01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgwMDQ4KQotI2RlZmluZSBP TUFQMjRYWF9DT05UUk9MX1BTQV9DTUQJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDA0YykK LSNkZWZpbmUgT01BUDI0WFhfQ09OVFJPTF9QU0FfVkFMVUUJKE9NQVAyX0NPTlRST0xfR0VORVJB TCArIDB4MDA1MCkKLSNkZWZpbmUgT01BUDI0WFhfQ09OVFJPTF9TRUNfRU1VCShPTUFQMl9DT05U Uk9MX0dFTkVSQUwgKyAweDAwNjApCi0jZGVmaW5lIE9NQVAyNFhYX0NPTlRST0xfU0VDX1RBUAko T01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgwMDY0KQotI2RlZmluZSBPTUFQMjRYWF9DT05UUk9M X09DTV9QVUJfUkFNX0FERAkoT01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgwMDZjKQotI2RlZmlu ZSBPTUFQMjRYWF9DT05UUk9MX0VYVF9TRUNfUkFNX1NUQVJUX0FERAkoT01BUDJfQ09OVFJPTF9H RU5FUkFMICsgMHgwMDcwKQotI2RlZmluZSBPTUFQMjRYWF9DT05UUk9MX0VYVF9TRUNfUkFNX1NU T1BfQURECShPTUFQMl9DT05UUk9MX0dFTkVSQUwgKyAweDAwNzQpCi0jZGVmaW5lIE9NQVAyNFhY X0NPTlRST0xfU0VDX1NUQVRVUwkJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDA4MCkKLSNk ZWZpbmUgT01BUDI0WFhfQ09OVFJPTF9TRUNfRVJSX1NUQVRVUwkJKE9NQVAyX0NPTlRST0xfR0VO RVJBTCArIDB4MDA4NCkKLSNkZWZpbmUgT01BUDI0WFhfQ09OVFJPTF9TVEFUVVMJCQkoT01BUDJf Q09OVFJPTF9HRU5FUkFMICsgMHgwMDg4KQotI2RlZmluZSBPTUFQMjRYWF9DT05UUk9MX0dFTkVS QUxfUFVSUE9TRV9TVEFUVVMJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDA4YykKLSNkZWZp bmUgT01BUDI0WFhfQ09OVFJPTF9SQU5EX0tFWV8wCShPTUFQMl9DT05UUk9MX0dFTkVSQUwgKyAw eDAwYTApCi0jZGVmaW5lIE9NQVAyNFhYX0NPTlRST0xfUkFORF9LRVlfMQkoT01BUDJfQ09OVFJP TF9HRU5FUkFMICsgMHgwMGE0KQotI2RlZmluZSBPTUFQMjRYWF9DT05UUk9MX1JBTkRfS0VZXzIJ KE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDBhOCkKLSNkZWZpbmUgT01BUDI0WFhfQ09OVFJP TF9SQU5EX0tFWV8zCShPTUFQMl9DT05UUk9MX0dFTkVSQUwgKyAweDAwYWMpCi0jZGVmaW5lIE9N QVAyNFhYX0NPTlRST0xfQ1VTVF9LRVlfMAkoT01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgwMGIw KQotI2RlZmluZSBPTUFQMjRYWF9DT05UUk9MX0NVU1RfS0VZXzEJKE9NQVAyX0NPTlRST0xfR0VO RVJBTCArIDB4MDBiNCkKLSNkZWZpbmUgT01BUDI0WFhfQ09OVFJPTF9URVNUX0tFWV8wCShPTUFQ Ml9DT05UUk9MX0dFTkVSQUwgKyAweDAwYzApCi0jZGVmaW5lIE9NQVAyNFhYX0NPTlRST0xfVEVT VF9LRVlfMQkoT01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgwMGM0KQotI2RlZmluZSBPTUFQMjRY WF9DT05UUk9MX1RFU1RfS0VZXzIJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDBjOCkKLSNk ZWZpbmUgT01BUDI0WFhfQ09OVFJPTF9URVNUX0tFWV8zCShPTUFQMl9DT05UUk9MX0dFTkVSQUwg KyAweDAwY2MpCi0jZGVmaW5lIE9NQVAyNFhYX0NPTlRST0xfVEVTVF9LRVlfNAkoT01BUDJfQ09O VFJPTF9HRU5FUkFMICsgMHgwMGQwKQotI2RlZmluZSBPTUFQMjRYWF9DT05UUk9MX1RFU1RfS0VZ XzUJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDBkNCkKLSNkZWZpbmUgT01BUDI0WFhfQ09O VFJPTF9URVNUX0tFWV82CShPTUFQMl9DT05UUk9MX0dFTkVSQUwgKyAweDAwZDgpCi0jZGVmaW5l IE9NQVAyNFhYX0NPTlRST0xfVEVTVF9LRVlfNwkoT01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgw MGRjKQotI2RlZmluZSBPTUFQMjRYWF9DT05UUk9MX1RFU1RfS0VZXzgJKE9NQVAyX0NPTlRST0xf R0VORVJBTCArIDB4MDBlMCkKLSNkZWZpbmUgT01BUDI0WFhfQ09OVFJPTF9URVNUX0tFWV85CShP TUFQMl9DT05UUk9MX0dFTkVSQUwgKyAweDAwZTQpCi0KICNkZWZpbmUgT01BUDM0M1hfQ09OVFJP TF9QQURDT05GX1NZU05JUlEgKE9NQVAyX0NPTlRST0xfSU5URVJGQUNFICsgMHgwMWIwKQogCiAv KiAzNHh4LW9ubHkgQ09OVFJPTF9HRU5FUkFMIHJlZ2lzdGVyIG9mZnNldHMgKi8KQEAgLTMxMSwx NCArMjU3LDEyIEBACiAgKi8KIC8qIENPTlRST0xfREVWQ09ORjAgYml0cyAqLwogI2RlZmluZSBP TUFQMl9NTUNTRElPMUFEUENMS0lTRUwJKDEgPDwgMjQpIC8qIE1NQzEgbG9vcCBiYWNrIGNsb2Nr ICovCi0jZGVmaW5lIE9NQVAyNFhYX1VTQlNUQU5EQllDVFJMCQkoMSA8PCAxNSkKICNkZWZpbmUg T01BUDJfTUNCU1AyX0NMS1NfTUFTSwkJKDEgPDwgNikKICNkZWZpbmUgT01BUDJfTUNCU1AxX0ZT Ul9NQVNLCQkoMSA8PCA0KQogI2RlZmluZSBPTUFQMl9NQ0JTUDFfQ0xLUl9NQVNLCQkoMSA8PCAz KQogI2RlZmluZSBPTUFQMl9NQ0JTUDFfQ0xLU19NQVNLCQkoMSA8PCAyKQogCiAvKiBDT05UUk9M X0RFVkNPTkYxIGJpdHMgKi8KLSNkZWZpbmUgT01BUDI0M1hfTU1DMV9BQ1RJVkVfT1ZFUldSSVRF CSgxIDw8IDMxKQogI2RlZmluZSBPTUFQMl9NTUNTRElPMkFEUENMS0lTRUwJKDEgPDwgNikgLyog TU1DMiBsb29wIGJhY2sgY2xvY2sgKi8KICNkZWZpbmUgT01BUDJfTUNCU1A1X0NMS1NfTUFTSwkJ KDEgPDwgNCkgLyogPiAyNDJ4ICovCiAjZGVmaW5lIE9NQVAyX01DQlNQNF9DTEtTX01BU0sJCSgx IDw8IDIpIC8qID4gMjQyeCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9kaXNw bGF5LmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Rpc3BsYXkuYwppbmRleCBkYmVjM2JiOWZiZjQu LmFkZGMxNDg5OGJkNSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9kaXNwbGF5LmMK KysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9kaXNwbGF5LmMKQEAgLTEyNCw5ICsxMjQsNyBAQCBz dGF0aWMgdm9pZCBvbWFwX2RzaV9kaXNhYmxlX3BhZHMoaW50IGRzaV9pZCwgdW5zaWduZWQgbGFu ZV9tYXNrKQogCiBzdGF0aWMgZW51bSBvbWFwZHNzX3ZlcnNpb24gX19pbml0IG9tYXBfZGlzcGxh eV9nZXRfdmVyc2lvbih2b2lkKQogewotCWlmIChjcHVfaXNfb21hcDI0eHgoKSkKLQkJcmV0dXJu IE9NQVBEU1NfVkVSX09NQVAyNHh4OwotCWVsc2UgaWYgKGNwdV9pc19vbWFwMzYzMCgpKQorCWlm IChjcHVfaXNfb21hcDM2MzAoKSkKIAkJcmV0dXJuIE9NQVBEU1NfVkVSX09NQVAzNjMwOwogCWVs c2UgaWYgKGNwdV9pc19vbWFwMzR4eCgpKSB7CiAJCWlmIChzb2NfaXNfYW0zNXh4KCkpIHsKZGlm ZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvZG1hLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAy L2RtYS5jCmluZGV4IDgzMGNkNGU3ZWI0NC4uM2E2YjdiNDYyMGNhIDEwMDY0NAotLS0gYS9hcmNo L2FybS9tYWNoLW9tYXAyL2RtYS5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvZG1hLmMKQEAg LTgyLDM5ICs4Miw2IEBAIHN0YXRpYyB1bnNpZ25lZCBjb25maWd1cmVfZG1hX2VycmF0YSh2b2lk KQogewogCXVuc2lnbmVkIGVycmF0YSA9IDA7CiAKLQkvKgotCSAqIEVycmF0YSBhcHBsaWNhYmxl IGZvciBPTUFQMjQzMEVTMS4wIGFuZCBhbGwgb21hcDI0MjAKLQkgKgotCSAqIEkuCi0JICogRXJy YXR1bSBJRDogTm90IEF2YWlsYWJsZQotCSAqIEludGVyIEZyYW1lIERNQSBidWZmZXJpbmcgaXNz dWUgRE1BIHdpbGwgd3JvbmdseQotCSAqIGJ1ZmZlciBlbGVtZW50cyBpZiBwYWNraW5nIGFuZCBi dXJzdGluZyBpcyBlbmFibGVkLiBUaGlzIG1pZ2h0Ci0JICogcmVzdWx0IGluIGRhdGEgZ2V0cyBz dGFsbGVkIGluIEZJRk8gYXQgdGhlIGVuZCBvZiB0aGUgYmxvY2suCi0JICogV29ya2Fyb3VuZDog RE1BIGNoYW5uZWxzIG11c3QgaGF2ZSBCVUZGRVJJTkdfRElTQUJMRUQgYml0IHNldCB0bwotCSAq IGd1YXJhbnRlZSBubyBkYXRhIHdpbGwgc3RheSBpbiB0aGUgRE1BIEZJRk8gaW4gY2FzZSBpbnRl ciBmcmFtZQotCSAqIGJ1ZmZlcmluZyBvY2N1cnMKLQkgKgotCSAqIElJLgotCSAqIEVycmF0dW0g SUQ6IE5vdCBBdmFpbGFibGUKLQkgKiBETUEgbWF5IGhhbmcgd2hlbiBzZXZlcmFsIGNoYW5uZWxz IGFyZSB1c2VkIGluIHBhcmFsbGVsCi0JICogSW4gdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9u LCBETUEgY2hhbm5lbCBoYW5naW5nIGNhbiBvY2N1cjoKLQkgKiBhLiBDaGFubmVsIGksIGhhcmR3 YXJlIHN5bmNocm9uaXplZCwgaXMgZW5hYmxlZAotCSAqIGIuIEFub3RoZXIgY2hhbm5lbCAoQ2hh bm5lbCB4KSwgc29mdHdhcmUgc3luY2hyb25pemVkLCBpcyBlbmFibGVkLgotCSAqIGMuIENoYW5u ZWwgaSBpcyBkaXNhYmxlZCBiZWZvcmUgZW5kIG9mIHRyYW5zZmVyCi0JICogZC4gQ2hhbm5lbCBp IGlzIHJlZW5hYmxlZC4KLQkgKiBlLiBTdGVwcyAxIHRvIDQgYXJlIHJlcGVhdGVkIGEgY2VydGFp biBudW1iZXIgb2YgdGltZXMuCi0JICogZi4gQSB0aGlyZCBjaGFubmVsIChDaGFubmVsIHkpLCBz b2Z0d2FyZSBzeW5jaHJvbml6ZWQsIGlzIGVuYWJsZWQuCi0JICogQ2hhbm5lbCB4IGFuZCBDaGFu bmVsIHkgbWF5IGhhbmcgaW1tZWRpYXRlbHkgYWZ0ZXIgc3RlcCAnZicuCi0JICogV29ya2Fyb3Vu ZDoKLQkgKiBGb3IgYW55IGNoYW5uZWwgdXNlZCAtIG1ha2Ugc3VyZSBOZXh0TENIX0lEIGlzIHNl dCB0byB0aGUgdmFsdWUgai4KLQkgKi8KLQlpZiAoY3B1X2lzX29tYXAyNDIwKCkgfHwgKGNwdV9p c19vbWFwMjQzMCgpICYmCi0JCQkJKG9tYXBfdHlwZSgpID09IE9NQVAyNDMwX1JFVl9FUzFfMCkp KSB7Ci0KLQkJU0VUX0RNQV9FUlJBVEEoRE1BX0VSUkFUQV9JRlJBTUVfQlVGRkVSSU5HKTsKLQkJ U0VUX0RNQV9FUlJBVEEoRE1BX0VSUkFUQV9QQVJBTExFTF9DSEFOTkVMUyk7Ci0JfQotCiAJLyoK IAkgKiBFcnJhdHVtIElEOiBpMzc4OiBPTUFQMis6IHNETUEgQ2hhbm5lbCBpcyBub3QgZGlzYWJs ZWQKIAkgKiBhZnRlciBhIHRyYW5zYWN0aW9uIGVycm9yLgpAQCAtMTYyLDE2ICsxMjksNiBAQCBz dGF0aWMgdW5zaWduZWQgY29uZmlndXJlX2RtYV9lcnJhdGEodm9pZCkKIAlyZXR1cm4gZXJyYXRh OwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9zbGF2ZV9tYXAgb21hcDI0eHhfc2RtYV9k dF9tYXBbXSA9IHsKLQkvKiBleHRlcm5hbCBETUEgcmVxdWVzdHMgd2hlbiB0dXNiNjAxMCBpcyB1 c2VkICovCi0JeyAibXVzYi1oZHJjLjEuYXV0byIsICJkbWFyZXEwIiwgU0RNQV9GSUxURVJfUEFS QU0oMikgfSwKLQl7ICJtdXNiLWhkcmMuMS5hdXRvIiwgImRtYXJlcTEiLCBTRE1BX0ZJTFRFUl9Q QVJBTSgzKSB9LAotCXsgIm11c2ItaGRyYy4xLmF1dG8iLCAiZG1hcmVxMiIsIFNETUFfRklMVEVS X1BBUkFNKDE0KSB9LCAvKiBPTUFQMjQyMCBvbmx5ICovCi0JeyAibXVzYi1oZHJjLjEuYXV0byIs ICJkbWFyZXEzIiwgU0RNQV9GSUxURVJfUEFSQU0oMTUpIH0sIC8qIE9NQVAyNDIwIG9ubHkgKi8K LQl7ICJtdXNiLWhkcmMuMS5hdXRvIiwgImRtYXJlcTQiLCBTRE1BX0ZJTFRFUl9QQVJBTSgxNikg fSwgLyogT01BUDI0MjAgb25seSAqLwotCXsgIm11c2ItaGRyYy4xLmF1dG8iLCAiZG1hcmVxNSIs IFNETUFfRklMVEVSX1BBUkFNKDY0KSB9LCAvKiBPTUFQMjQyMCBvbmx5ICovCi19OwotCiBzdGF0 aWMgc3RydWN0IG9tYXBfZG1hX2Rldl9hdHRyIGRtYV9hdHRyID0gewogCS5kZXZfY2FwcyA9IFJF U0VSVkVfQ0hBTk5FTCB8IERNQV9MSU5LRURfTENIIHwgR0xPQkFMX1BSSU9SSVRZIHwKIAkJICAg IElTX0NTU0FfMzIgfCBJU19DRFNBXzMyLApAQCAtMTg4LDE1ICsxNDUsNyBAQCBzdHJ1Y3Qgb21h cF9zeXN0ZW1fZG1hX3BsYXRfaW5mbyBkbWFfcGxhdF9pbmZvID0gewogc3RhdGljIGludCBfX2lu aXQgb21hcDJfc3lzdGVtX2RtYV9pbml0KHZvaWQpCiB7CiAJZG1hX3BsYXRfaW5mby5lcnJhdGEg PSBjb25maWd1cmVfZG1hX2VycmF0YSgpOwotCi0JaWYgKHNvY19pc19vbWFwMjR4eCgpKSB7Ci0J CS8qIERNQSBzbGF2ZSBtYXAgZm9yIGRyaXZlcnMgbm90IHlldCBjb252ZXJ0ZWQgdG8gRFQgKi8K LQkJZG1hX3BsYXRfaW5mby5zbGF2ZV9tYXAgPSBvbWFwMjR4eF9zZG1hX2R0X21hcDsKLQkJZG1h X3BsYXRfaW5mby5zbGF2ZWNudCA9IEFSUkFZX1NJWkUob21hcDI0eHhfc2RtYV9kdF9tYXApOwot CX0KLQotCWlmICghc29jX2lzX29tYXAyNDJ4KCkpCi0JCWRtYV9hdHRyLmRldl9jYXBzIHw9IElT X1JXX1BSSU9SSVRZOworCWRtYV9hdHRyLmRldl9jYXBzIHw9IElTX1JXX1BSSU9SSVRZOwogCiAJ aWYgKHNvY19pc19vbWFwMzR4eCgpICYmIChvbWFwX3R5cGUoKSAhPSBPTUFQMl9ERVZJQ0VfVFlQ RV9HUCkpCiAJCWRtYV9hdHRyLmRldl9jYXBzIHw9IEhTX0NIQU5ORUxTX1JFU0VSVkVEOwpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9mYi5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9m Yi5jCmluZGV4IDBmOGM4ZWZlM2FlOC4uOWE0MjVjMzZmOTk2IDEwMDY0NAotLS0gYS9hcmNoL2Fy bS9tYWNoLW9tYXAyL2ZiLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9mYi5jCkBAIC0yNywx NSArMjcsNiBAQAogICogVGhlIGZpcnN0IG1lbW9yeSByZXNvdXJjZSBpcyB0aGUgcmVnaXN0ZXIg cmVnaW9uIGZvciBWUkZCLAogICogdGhlIHJlc3QgYXJlIFZSRkIgdmlydHVhbCBtZW1vcnkgYXJl YXMgZm9yIGVhY2ggVlJGQiBjb250ZXh0LgogICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVz b3VyY2Ugb21hcDJfdnJmYl9yZXNvdXJjZXNbXSA9IHsKLQlERUZJTkVfUkVTX01FTV9OQU1FRCgw eDY4MDA4MDAwdSwgMHg0MCwgInZyZmItcmVncyIpLAotCURFRklORV9SRVNfTUVNX05BTUVEKDB4 NzAwMDAwMDB1LCAweDQwMDAwMDAsICJ2cmZiLWFyZWEtMCIpLAotCURFRklORV9SRVNfTUVNX05B TUVEKDB4NzQwMDAwMDB1LCAweDQwMDAwMDAsICJ2cmZiLWFyZWEtMSIpLAotCURFRklORV9SRVNf TUVNX05BTUVEKDB4NzgwMDAwMDB1LCAweDQwMDAwMDAsICJ2cmZiLWFyZWEtMiIpLAotCURFRklO RV9SRVNfTUVNX05BTUVEKDB4N2MwMDAwMDB1LCAweDQwMDAwMDAsICJ2cmZiLWFyZWEtMyIpLAot fTsKLQogc3RhdGljIGNvbnN0IHN0cnVjdCByZXNvdXJjZSBvbWFwM192cmZiX3Jlc291cmNlc1td ID0gewogCURFRklORV9SRVNfTUVNX05BTUVEKDB4NkMwMDAxODB1LCAweGMwLCAidnJmYi1yZWdz IiksCiAJREVGSU5FX1JFU19NRU1fTkFNRUQoMHg3MDAwMDAwMHUsIDB4NDAwMDAwMCwgInZyZmIt YXJlYS0wIiksCkBAIC01OCwxMCArNDksNyBAQCBpbnQgX19pbml0IG9tYXBfaW5pdF92cmZiKHZv aWQpCiAJY29uc3Qgc3RydWN0IHJlc291cmNlICpyZXM7CiAJdW5zaWduZWQgaW50IG51bV9yZXM7 CiAKLQlpZiAoY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJcmVzID0gb21hcDJfdnJmYl9yZXNvdXJj ZXM7Ci0JCW51bV9yZXMgPSBBUlJBWV9TSVpFKG9tYXAyX3ZyZmJfcmVzb3VyY2VzKTsKLQl9IGVs c2UgaWYgKGNwdV9pc19vbWFwMzR4eCgpKSB7CisJaWYgKGNwdV9pc19vbWFwMzR4eCgpKSB7CiAJ CXJlcyA9IG9tYXAzX3ZyZmJfcmVzb3VyY2VzOwogCQludW1fcmVzID0gQVJSQVlfU0laRShvbWFw M192cmZiX3Jlc291cmNlcyk7CiAJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gt b21hcDIvZ3BtYy5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9ncG1jLmgKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGUwNjBmMWI1YzI3ZC4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJt L21hY2gtb21hcDIvZ3BtYy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotLyogU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLwotLyoKLSAqIEdlbmVyYWwtUHVy cG9zZSBNZW1vcnkgQ29udHJvbGxlciBmb3IgT01BUDIKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIw MDUtMjAwNiBOb2tpYSBDb3Jwb3JhdGlvbgotICoKLSAqIERvIG5vdCBpbmNsdWRlIHRoaXMgZmls ZSBpbiBhbnkgbmV3IGNvZGUsIHRoaXMgd2lsbCBnZXQgcmVtb3ZlZAotICogb25jZSBvbWFwMyBi b290cyBpbiBkZXZpY2UgdHJlZSBvbmx5IG1vZGUuCi0gKi8KLSNpbmNsdWRlIDxsaW51eC9vbWFw LWdwbWMuaD4KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvaTJjLmMgYi9hcmNoL2Fy bS9tYWNoLW9tYXAyL2kyYy5jCmluZGV4IDNiNGI5NTE0ZjRmYS4uZDk1NmM3MGY4ODk5IDEwMDY0 NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2kyYy5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21h cDIvaTJjLmMKQEAgLTM5LDcgKzM5LDcgQEAgaW50IG9tYXBfaTJjX3Jlc2V0KHN0cnVjdCBvbWFw X2h3bW9kICpvaCkKIAl1MTYgaTJjX2NvbjsKIAlpbnQgYyA9IDA7CiAKLQlpZiAoc29jX2lzX29t YXAyNHh4KCkgfHwgc29jX2lzX29tYXAzNHh4KCkgfHwgc29jX2lzX2FtMzV4eCgpKQorCWlmIChz b2NfaXNfb21hcDM0eHgoKSB8fCBzb2NfaXNfYW0zNXh4KCkpCiAJCWkyY19jb24gPSBPTUFQMl9J MkNfQ09OX09GRlNFVDsKIAllbHNlCiAJCWkyY19jb24gPSBPTUFQNF9JMkNfQ09OX09GRlNFVDsK ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvaWQuYyBiL2FyY2gvYXJtL21hY2gtb21h cDIvaWQuYwppbmRleCBjZjJiZmI0NDdlZTIuLjNlNzMxZGQyMTMxMSAxMDA2NDQKLS0tIGEvYXJj aC9hcm0vbWFjaC1vbWFwMi9pZC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvaWQuYwpAQCAt NTUsOSArNTUsNyBAQCBpbnQgb21hcF90eXBlKHZvaWQpCiAJaWYgKHZhbCA8IE9NQVAyX0RFVklD RVRZUEVfTUFTSykKIAkJcmV0dXJuIHZhbDsKIAotCWlmIChzb2NfaXNfb21hcDI0eHgoKSkgewot CQl2YWwgPSBvbWFwX2N0cmxfcmVhZGwoT01BUDI0WFhfQ09OVFJPTF9TVEFUVVMpOwotCX0gZWxz ZSBpZiAoc29jX2lzX3RpODF4eCgpKSB7CisJaWYgKHNvY19pc190aTgxeHgoKSkgewogCQl2YWwg PSBvbWFwX2N0cmxfcmVhZGwoVEk4MVhYX0NPTlRST0xfU1RBVFVTKTsKIAl9IGVsc2UgaWYgKHNv Y19pc19hbTMzeHgoKSB8fCBzb2NfaXNfYW00M3h4KCkpIHsKIAkJdmFsID0gb21hcF9jdHJsX3Jl YWRsKEFNMzNYWF9DT05UUk9MX1NUQVRVUyk7CkBAIC05OSwyMiArOTcsNiBAQCBFWFBPUlRfU1lN Qk9MKG9tYXBfdHlwZSk7CiAKICNkZWZpbmUgcmVhZF90YXBfcmVnKHJlZykJcmVhZGxfcmVsYXhl ZCh0YXBfYmFzZSAgKyAocmVnKSkKIAotc3RydWN0IG9tYXBfaWQgewotCXUxNgloYXdrZXllOwkv KiBTaWxpY29uIHR5cGUgKEhhd2tleWUgaWQpICovCi0JdTgJZGV2OwkJLyogRGV2aWNlIHR5cGUg ZnJvbSBwcm9kdWN0aW9uX2lkIHJlZyAqLwotCXUzMgl0eXBlOwkJLyogQ29tYmluZWQgdHlwZSBp ZCBjb3BpZWQgdG8gb21hcF9yZXZpc2lvbiAqLwotfTsKLQotLyogUmVnaXN0ZXIgdmFsdWVzIHRv IGRldGVjdCB0aGUgT01BUCB2ZXJzaW9uICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaWQgb21hcF9p ZHNbXSBfX2luaXRkYXRhID0gewotCXsgLmhhd2tleWUgPSAweGI1ZDksIC5kZXYgPSAweDAsIC50 eXBlID0gMHgyNDIwMDAyNCB9LAotCXsgLmhhd2tleWUgPSAweGI1ZDksIC5kZXYgPSAweDEsIC50 eXBlID0gMHgyNDIwMTAyNCB9LAotCXsgLmhhd2tleWUgPSAweGI1ZDksIC5kZXYgPSAweDIsIC50 eXBlID0gMHgyNDIwMjAyNCB9LAotCXsgLmhhd2tleWUgPSAweGI1ZDksIC5kZXYgPSAweDQsIC50 eXBlID0gMHgyNDIyMDAyNCB9LAotCXsgLmhhd2tleWUgPSAweGI1ZDksIC5kZXYgPSAweDgsIC50 eXBlID0gMHgyNDIzMDAyNCB9LAotCXsgLmhhd2tleWUgPSAweGI2OGEsIC5kZXYgPSAweDAsIC50 eXBlID0gMHgyNDMwMDAyNCB9LAotfTsKLQogc3RhdGljIHZvaWQgX19pb21lbSAqdGFwX2Jhc2U7 CiBzdGF0aWMgdTE2IHRhcF9wcm9kX2lkOwogCkBAIC0xNDUsNjIgKzEyNyw2IEBAIHN0YXRpYyBp bnQgX19pbml0IG9tYXBfZmVlZF9yYW5kcG9vbCh2b2lkKQogfQogb21hcF9kZXZpY2VfaW5pdGNh bGwob21hcF9mZWVkX3JhbmRwb29sKTsKIAotdm9pZCBfX2luaXQgb21hcDJ4eHhfY2hlY2tfcmV2 aXNpb24odm9pZCkKLXsKLQlpbnQgaSwgajsKLQl1MzIgaWRjb2RlLCBwcm9kX2lkOwotCXUxNiBo YXdrZXllOwotCXU4ICBkZXZfdHlwZSwgcmV2OwotCXN0cnVjdCBvbWFwX2RpZV9pZCBvZGk7Ci0K LQlpZGNvZGUgPSByZWFkX3RhcF9yZWcoT01BUF9UQVBfSURDT0RFKTsKLQlwcm9kX2lkID0gcmVh ZF90YXBfcmVnKHRhcF9wcm9kX2lkKTsKLQloYXdrZXllID0gKGlkY29kZSA+PiAxMikgJiAweGZm ZmY7Ci0JcmV2ID0gKGlkY29kZSA+PiAyOCkgJiAweDBmOwotCWRldl90eXBlID0gKHByb2RfaWQg Pj4gMTYpICYgMHgwZjsKLQlvbWFwX2dldF9kaWVfaWQoJm9kaSk7Ci0KLQlwcl9kZWJ1ZygiT01B UF9UQVBfSURDT0RFIDB4JTA4eCBSRVYgJWkgSEFXS0VZRSAweCUwNHggTUFORiAlMDN4XG4iLAot CQkgaWRjb2RlLCByZXYsIGhhd2tleWUsIChpZGNvZGUgPj4gMSkgJiAweDdmZik7Ci0JcHJfZGVi dWcoIk9NQVBfVEFQX0RJRV9JRF8wOiAweCUwOHhcbiIsIG9kaS5pZF8wKTsKLQlwcl9kZWJ1Zygi T01BUF9UQVBfRElFX0lEXzE6IDB4JTA4eCBERVZfUkVWOiAlaVxuIiwKLQkJIG9kaS5pZF8xLCAo b2RpLmlkXzEgPj4gMjgpICYgMHhmKTsKLQlwcl9kZWJ1ZygiT01BUF9UQVBfRElFX0lEXzI6IDB4 JTA4eFxuIiwgb2RpLmlkXzIpOwotCXByX2RlYnVnKCJPTUFQX1RBUF9ESUVfSURfMzogMHglMDh4 XG4iLCBvZGkuaWRfMyk7Ci0JcHJfZGVidWcoIk9NQVBfVEFQX1BST0RfSURfMDogMHglMDh4IERF Vl9UWVBFOiAlaVxuIiwKLQkJIHByb2RfaWQsIGRldl90eXBlKTsKLQotCS8qIENoZWNrIGhhd2tl eWUgaWRzICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUob21hcF9pZHMpOyBpKyspIHsK LQkJaWYgKGhhd2tleWUgPT0gb21hcF9pZHNbaV0uaGF3a2V5ZSkKLQkJCWJyZWFrOwotCX0KLQot CWlmIChpID09IEFSUkFZX1NJWkUob21hcF9pZHMpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiVW5r bm93biBPTUFQIENQVSBpZFxuIik7Ci0JCXJldHVybjsKLQl9Ci0KLQlmb3IgKGogPSBpOyBqIDwg QVJSQVlfU0laRShvbWFwX2lkcyk7IGorKykgewotCQlpZiAoZGV2X3R5cGUgPT0gb21hcF9pZHNb al0uZGV2KQotCQkJYnJlYWs7Ci0JfQotCi0JaWYgKGogPT0gQVJSQVlfU0laRShvbWFwX2lkcykp IHsKLQkJcHJfZXJyKCJVbmtub3duIE9NQVAgZGV2aWNlIHR5cGUuIEhhbmRsaW5nIGl0IGFzIE9N QVAlMDR4XG4iLAotCQkgICAgICAgb21hcF9pZHNbaV0udHlwZSA+PiAxNik7Ci0JCWogPSBpOwot CX0KLQotCXNwcmludGYoc29jX25hbWUsICJPTUFQJTA0eCIsIG9tYXBfcmV2KCkgPj4gMTYpOwot CXNwcmludGYoc29jX3JldiwgIkVTJXgiLCAob21hcF9yZXYoKSA+PiAxMikgJiAweGYpOwotCi0J cHJfaW5mbygiJXMiLCBzb2NfbmFtZSk7Ci0JaWYgKChvbWFwX3JldigpID4+IDgpICYgMHgwZikK LQkJcHJfY29udCgiJXMiLCBzb2NfcmV2KTsKLQlwcl9jb250KCJcbiIpOwotfQotCiAjZGVmaW5l IE9NQVAzX1NIT1dfRkVBVFVSRShmZWF0KQkJXAogCWlmIChvbWFwM19oYXNfICMjZmVhdCgpKQkJ XAogCQluICs9IHNjbnByaW50ZihidWYgKyBuLCBzaXplb2YoYnVmKSAtIG4sICNmZWF0ICIgIik7 CkBAIC03NTAsOSArNjc2LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBvbWFwX3R5cGVz W10gPSB7CiAKIHN0YXRpYyBjb25zdCBjaGFyICogX19pbml0IG9tYXBfZ2V0X2ZhbWlseSh2b2lk KQogewotCWlmIChzb2NfaXNfb21hcDI0eHgoKSkKLQkJcmV0dXJuIGthc3ByaW50ZihHRlBfS0VS TkVMLCAiT01BUDIiKTsKLQllbHNlIGlmIChzb2NfaXNfb21hcDM0eHgoKSkKKwlpZiAoc29jX2lz X29tYXAzNHh4KCkpCiAJCXJldHVybiBrYXNwcmludGYoR0ZQX0tFUk5FTCwgIk9NQVAzIik7CiAJ ZWxzZSBpZiAoc29jX2lzX29tYXA0NHh4KCkpCiAJCXJldHVybiBrYXNwcmludGYoR0ZQX0tFUk5F TCwgIk9NQVA0Iik7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2lvLmMgYi9hcmNo L2FybS9tYWNoLW9tYXAyL2lvLmMKaW5kZXggMTRlYzNmNzgwMDBiLi4xYzk0NWJlNWU3Y2MgMTAw NjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvaW8uYworKysgYi9hcmNoL2FybS9tYWNoLW9t YXAyL2lvLmMKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJzZHJjLmgiCiAjaW5jbHVkZSAi Y29udHJvbC5oIgogI2luY2x1ZGUgInNyYW0uaCIKLSNpbmNsdWRlICJjbTJ4eHguaCIKICNpbmNs dWRlICJjbTN4eHguaCIKICNpbmNsdWRlICJjbTMzeHguaCIKICNpbmNsdWRlICJjbTQ0eHguaCIK QEAgLTQzLDExICs0Miw5IEBACiAjaW5jbHVkZSAiY20uaCIKICNpbmNsdWRlICJwcmNtX21wdTQ0 eHguaCIKICNpbmNsdWRlICJwcm1pbnN0NDR4eC5oIgotI2luY2x1ZGUgInBybTJ4eHguaCIKICNp bmNsdWRlICJwcm0zeHh4LmgiCiAjaW5jbHVkZSAicHJtMzN4eC5oIgogI2luY2x1ZGUgInBybTQ0 eHguaCIKLSNpbmNsdWRlICJvcHAyeHh4LmgiCiAjaW5jbHVkZSAib21hcC1zZWN1cmUuaCIKIAog LyoKQEAgLTYxLDc2ICs1OCw2IEBAIHN0YXRpYyBpbnQgKCpvbWFwX2Nsa19zb2NfaW5pdCkodm9p ZCk7CiAgKiBkZWZhdWx0IG1hcHBpbmcgcHJvdmlkZWQgaGVyZS4KICAqLwogCi0jaWYgZGVmaW5l ZChDT05GSUdfU09DX09NQVAyNDIwKSB8fCBkZWZpbmVkKENPTkZJR19TT0NfT01BUDI0MzApCi1z dGF0aWMgc3RydWN0IG1hcF9kZXNjIG9tYXAyNHh4X2lvX2Rlc2NbXSBfX2luaXRkYXRhID0gewot CXsKLQkJLnZpcnR1YWwJPSBMM18yNFhYX1ZJUlQsCi0JCS5wZm4JCT0gX19waHlzX3RvX3BmbihM M18yNFhYX1BIWVMpLAotCQkubGVuZ3RoCQk9IEwzXzI0WFhfU0laRSwKLQkJLnR5cGUJCT0gTVRf REVWSUNFCi0JfSwKLQl7Ci0JCS52aXJ0dWFsCT0gTDRfMjRYWF9WSVJULAotCQkucGZuCQk9IF9f cGh5c190b19wZm4oTDRfMjRYWF9QSFlTKSwKLQkJLmxlbmd0aAkJPSBMNF8yNFhYX1NJWkUsCi0J CS50eXBlCQk9IE1UX0RFVklDRQotCX0sCi19OwotCi0jaWZkZWYgQ09ORklHX1NPQ19PTUFQMjQy MAotc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBvbWFwMjQyeF9pb19kZXNjW10gX19pbml0ZGF0YSA9 IHsKLQl7Ci0JCS52aXJ0dWFsCT0gRFNQX01FTV8yNDIwX1ZJUlQsCi0JCS5wZm4JCT0gX19waHlz X3RvX3BmbihEU1BfTUVNXzI0MjBfUEhZUyksCi0JCS5sZW5ndGgJCT0gRFNQX01FTV8yNDIwX1NJ WkUsCi0JCS50eXBlCQk9IE1UX0RFVklDRQotCX0sCi0JewotCQkudmlydHVhbAk9IERTUF9JUElf MjQyMF9WSVJULAotCQkucGZuCQk9IF9fcGh5c190b19wZm4oRFNQX0lQSV8yNDIwX1BIWVMpLAot CQkubGVuZ3RoCQk9IERTUF9JUElfMjQyMF9TSVpFLAotCQkudHlwZQkJPSBNVF9ERVZJQ0UKLQl9 LAotCXsKLQkJLnZpcnR1YWwJPSBEU1BfTU1VXzI0MjBfVklSVCwKLQkJLnBmbgkJPSBfX3BoeXNf dG9fcGZuKERTUF9NTVVfMjQyMF9QSFlTKSwKLQkJLmxlbmd0aAkJPSBEU1BfTU1VXzI0MjBfU0la RSwKLQkJLnR5cGUJCT0gTVRfREVWSUNFCi0JfSwKLX07Ci0KLSNlbmRpZgotCi0jaWZkZWYgQ09O RklHX1NPQ19PTUFQMjQzMAotc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBvbWFwMjQzeF9pb19kZXNj W10gX19pbml0ZGF0YSA9IHsKLQl7Ci0JCS52aXJ0dWFsCT0gTDRfV0tfMjQzWF9WSVJULAotCQku cGZuCQk9IF9fcGh5c190b19wZm4oTDRfV0tfMjQzWF9QSFlTKSwKLQkJLmxlbmd0aAkJPSBMNF9X S18yNDNYX1NJWkUsCi0JCS50eXBlCQk9IE1UX0RFVklDRQotCX0sCi0JewotCQkudmlydHVhbAk9 IE9NQVAyNDNYX0dQTUNfVklSVCwKLQkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKE9NQVAyNDNYX0dQ TUNfUEhZUyksCi0JCS5sZW5ndGgJCT0gT01BUDI0M1hfR1BNQ19TSVpFLAotCQkudHlwZQkJPSBN VF9ERVZJQ0UKLQl9LAotCXsKLQkJLnZpcnR1YWwJPSBPTUFQMjQzWF9TRFJDX1ZJUlQsCi0JCS5w Zm4JCT0gX19waHlzX3RvX3BmbihPTUFQMjQzWF9TRFJDX1BIWVMpLAotCQkubGVuZ3RoCQk9IE9N QVAyNDNYX1NEUkNfU0laRSwKLQkJLnR5cGUJCT0gTVRfREVWSUNFCi0JfSwKLQl7Ci0JCS52aXJ0 dWFsCT0gT01BUDI0M1hfU01TX1ZJUlQsCi0JCS5wZm4JCT0gX19waHlzX3RvX3BmbihPTUFQMjQz WF9TTVNfUEhZUyksCi0JCS5sZW5ndGgJCT0gT01BUDI0M1hfU01TX1NJWkUsCi0JCS50eXBlCQk9 IE1UX0RFVklDRQotCX0sCi19OwotI2VuZGlmCi0jZW5kaWYKLQogI2lmZGVmCUNPTkZJR19BUkNI X09NQVAzCiBzdGF0aWMgc3RydWN0IG1hcF9kZXNjIG9tYXAzNHh4X2lvX2Rlc2NbXSBfX2luaXRk YXRhID0gewogCXsKQEAgLTMwNSwyMiArMjMyLDYgQEAgc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBk cmE3eHhfaW9fZGVzY1tdIF9faW5pdGRhdGEgPSB7CiB9OwogI2VuZGlmCiAKLSNpZmRlZiBDT05G SUdfU09DX09NQVAyNDIwCi12b2lkIF9faW5pdCBvbWFwMjQyeF9tYXBfaW8odm9pZCkKLXsKLQlp b3RhYmxlX2luaXQob21hcDI0eHhfaW9fZGVzYywgQVJSQVlfU0laRShvbWFwMjR4eF9pb19kZXNj KSk7Ci0JaW90YWJsZV9pbml0KG9tYXAyNDJ4X2lvX2Rlc2MsIEFSUkFZX1NJWkUob21hcDI0Mnhf aW9fZGVzYykpOwotfQotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfU09DX09NQVAyNDMwCi12b2lk IF9faW5pdCBvbWFwMjQzeF9tYXBfaW8odm9pZCkKLXsKLQlpb3RhYmxlX2luaXQob21hcDI0eHhf aW9fZGVzYywgQVJSQVlfU0laRShvbWFwMjR4eF9pb19kZXNjKSk7Ci0JaW90YWJsZV9pbml0KG9t YXAyNDN4X2lvX2Rlc2MsIEFSUkFZX1NJWkUob21hcDI0M3hfaW9fZGVzYykpOwotfQotI2VuZGlm Ci0KICNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMwogdm9pZCBfX2luaXQgb21hcDNfbWFwX2lvKHZv aWQpCiB7CkBAIC0zNjUsNiArMjc2LDggQEAgdm9pZCBfX2luaXQgZHJhN3h4X21hcF9pbyh2b2lk KQogCW9tYXBfYmFycmllcnNfaW5pdCgpOwogfQogI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJD SF9PTUFQMwogLyoKICAqIG9tYXAyX2luaXRfcmVwcm9ncmFtX3NkcmMgLSByZXByb2dyYW0gU0RS QyB0aW1pbmcgcGFyYW1ldGVycwogICoKQEAgLTM5OSw3ICszMTIsNiBAQCBzdGF0aWMgaW50IF9f aW5pdCBfb21hcDJfaW5pdF9yZXByb2dyYW1fc2RyYyh2b2lkKQogCXJldHVybiB2OwogfQogCi0j aWZkZWYgQ09ORklHX09NQVBfSFdNT0QKIHN0YXRpYyBpbnQgX3NldF9od21vZF9wb3N0c2V0dXBf c3RhdGUoc3RydWN0IG9tYXBfaHdtb2QgKm9oLCB2b2lkICpkYXRhKQogewogCXJldHVybiBvbWFw X2h3bW9kX3NldF9wb3N0c2V0dXBfc3RhdGUob2gsICoodTggKilkYXRhKTsKQEAgLTQxMiw1NSAr MzI0LDExIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBfX21heWJlX3VudXNlZCBvbWFwX2h3bW9kX2lu aXRfcG9zdHNldHVwKHZvaWQpCiAJLyogU2V0IHRoZSBkZWZhdWx0IHBvc3RzZXR1cCBzdGF0ZSBm b3IgYWxsIGh3bW9kcyAqLwogCW9tYXBfaHdtb2RfZm9yX2VhY2goX3NldF9od21vZF9wb3N0c2V0 dXBfc3RhdGUsICZwb3N0c2V0dXBfc3RhdGUpOwogfQotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgdm9p ZCBvbWFwX2h3bW9kX2luaXRfcG9zdHNldHVwKHZvaWQpCi17Ci19Ci0jZW5kaWYKLQotI2lmZGVm IENPTkZJR19TT0NfT01BUDI0MjAKLXZvaWQgX19pbml0IG9tYXAyNDIwX2luaXRfZWFybHkodm9p ZCkKLXsKLQlvbWFwMl9zZXRfZ2xvYmFsc190YXAoT01BUDI0MlhfQ0xBU1MsIE9NQVAyX0w0X0lP X0FERFJFU1MoMHg0ODAxNDAwMCkpOwotCW9tYXAyX3NldF9nbG9iYWxzX3NkcmMoT01BUDJfTDNf SU9fQUREUkVTUyhPTUFQMjQyMF9TRFJDX0JBU0UpLAotCQkJICAgICAgIE9NQVAyX0wzX0lPX0FE RFJFU1MoT01BUDI0MjBfU01TX0JBU0UpKTsKLQlvbWFwMl9jb250cm9sX2Jhc2VfaW5pdCgpOwot CW9tYXAyeHh4X2NoZWNrX3JldmlzaW9uKCk7Ci0Jb21hcDJfcHJjbV9iYXNlX2luaXQoKTsKLQlv bWFwMnh4eF92b2x0YWdlZG9tYWluc19pbml0KCk7Ci0Jb21hcDI0MnhfcG93ZXJkb21haW5zX2lu aXQoKTsKLQlvbWFwMjQyeF9jbG9ja2RvbWFpbnNfaW5pdCgpOwotCW9tYXAyNDIwX2h3bW9kX2lu aXQoKTsKLQlvbWFwX2h3bW9kX2luaXRfcG9zdHNldHVwKCk7Ci0Jb21hcF9jbGtfc29jX2luaXQg PSBvbWFwMjQyMF9kdF9jbGtfaW5pdDsKLQlyYXRlX3RhYmxlID0gb21hcDI0MjBfcmF0ZV90YWJs ZTsKLX0KLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1NPQ19PTUFQMjQzMAotdm9pZCBfX2luaXQg b21hcDI0MzBfaW5pdF9lYXJseSh2b2lkKQotewotCW9tYXAyX3NldF9nbG9iYWxzX3RhcChPTUFQ MjQzWF9DTEFTUywgT01BUDJfTDRfSU9fQUREUkVTUygweDQ5MDBhMDAwKSk7Ci0Jb21hcDJfc2V0 X2dsb2JhbHNfc2RyYyhPTUFQMl9MM19JT19BRERSRVNTKE9NQVAyNDNYX1NEUkNfQkFTRSksCi0J CQkgICAgICAgT01BUDJfTDNfSU9fQUREUkVTUyhPTUFQMjQzWF9TTVNfQkFTRSkpOwotCW9tYXAy X2NvbnRyb2xfYmFzZV9pbml0KCk7Ci0Jb21hcDJ4eHhfY2hlY2tfcmV2aXNpb24oKTsKLQlvbWFw Ml9wcmNtX2Jhc2VfaW5pdCgpOwotCW9tYXAyeHh4X3ZvbHRhZ2Vkb21haW5zX2luaXQoKTsKLQlv bWFwMjQzeF9wb3dlcmRvbWFpbnNfaW5pdCgpOwotCW9tYXAyNDN4X2Nsb2NrZG9tYWluc19pbml0 KCk7Ci0Jb21hcDI0MzBfaHdtb2RfaW5pdCgpOwotCW9tYXBfaHdtb2RfaW5pdF9wb3N0c2V0dXAo KTsKLQlvbWFwX2Nsa19zb2NfaW5pdCA9IG9tYXAyNDMwX2R0X2Nsa19pbml0OwotCXJhdGVfdGFi bGUgPSBvbWFwMjQzMF9yYXRlX3RhYmxlOwotfQotI2VuZGlmCiAKIC8qCiAgKiBDdXJyZW50bHkg b25seSBib2FyZC1vbWFwM2JlYWdsZS5jIHNob3VsZCBjYWxsIHRoaXMgYmVjYXVzZSBvZiB0aGUK ICAqIHNhbWUgbWFjaGluZV9pZCBmb3IgMzR4eCBhbmQgMzZ4eCBiZWFnbGUuLiBXaWxsIGdldCBm aXhlZCB3aXRoIERULgogICovCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDMKIHN0YXRpYyB2b2lk IF9faW5pdCBvbWFwM19pbml0X2Vhcmx5KHZvaWQpCiB7CiAJb21hcDJfc2V0X2dsb2JhbHNfdGFw KE9NQVAzNDNYX0NMQVNTLCBPTUFQMl9MNF9JT19BRERSRVNTKDB4NDgzMEEwMDApKTsKQEAgLTY2 MSwxNiArNTI5LDE4IEBAIHZvaWQgX19pbml0IGRyYTd4eF9pbml0X2xhdGUodm9pZCkKICNlbmRp ZgogCiAKKyNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMwogdm9pZCBfX2luaXQgb21hcF9zZHJjX2lu aXQoc3RydWN0IG9tYXBfc2RyY19wYXJhbXMgKnNkcmNfY3MwLAogCQkJCSAgICAgIHN0cnVjdCBv bWFwX3NkcmNfcGFyYW1zICpzZHJjX2NzMSkKIHsKIAlvbWFwX3NyYW1faW5pdCgpOwogCi0JaWYg KGNwdV9pc19vbWFwMjR4eCgpIHx8IG9tYXAzX2hhc19zZHJjKCkpIHsKKwlpZiAob21hcDNfaGFz X3NkcmMoKSkgewogCQlvbWFwMl9zZHJjX2luaXQoc2RyY19jczAsIHNkcmNfY3MxKTsKIAkJX29t YXAyX2luaXRfcmVwcm9ncmFtX3NkcmMoKTsKIAl9CiB9CisjZW5kaWYKIAogaW50IF9faW5pdCBv bWFwX2Nsa19pbml0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2lv bWFwLmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL2lvbWFwLmgKaW5kZXggNjE5MWQyNDQ0MzhhLi40 MDM0NDRiYjY5MjQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvaW9tYXAuaAorKysg Yi9hcmNoL2FybS9tYWNoLW9tYXAyL2lvbWFwLmgKQEAgLTQ4LDUyICs0OCw2IEBACiAjZGVmaW5l IE9NQVAyX0VNVV9JT19PRkZTRVQJCTB4YWE4MDAwMDAJLyogRW11bGF0aW9uICovCiAjZGVmaW5l IE9NQVAyX0VNVV9JT19BRERSRVNTKHBhKQlJT01FTSgocGEpICsgT01BUDJfRU1VX0lPX09GRlNF VCkKIAotLyoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIE9tYXAyIHNwZWNpZmljIElPIG1h cHBpbmcKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqLwotCi0vKiBXZSBtYXAgYm90aCBMMyBh bmQgTDQgb24gT01BUDIgKi8KLSNkZWZpbmUgTDNfMjRYWF9QSFlTCUwzXzI0WFhfQkFTRQkvKiAw eDY4MDAwMDAwIC0tPiAweGY4MDAwMDAwKi8KLSNkZWZpbmUgTDNfMjRYWF9WSVJUCShMM18yNFhY X1BIWVMgKyBPTUFQMl9MM19JT19PRkZTRVQpCi0jZGVmaW5lIEwzXzI0WFhfU0laRQlTWl8xTQkJ LyogNDRrQiBvZiAxMjhNQiB1c2VkLCB3YW50IDFNQiBzZWN0ICovCi0jZGVmaW5lIEw0XzI0WFhf UEhZUwlMNF8yNFhYX0JBU0UJLyogMHg0ODAwMDAwMCAtLT4gMHhmYTAwMDAwMCAqLwotI2RlZmlu ZSBMNF8yNFhYX1ZJUlQJKEw0XzI0WFhfUEhZUyArIE9NQVAyX0w0X0lPX09GRlNFVCkKLSNkZWZp bmUgTDRfMjRYWF9TSVpFCVNaXzFNCQkvKiAxTUIgb2YgMTI4TUIgdXNlZCwgd2FudCAxTUIgc2Vj dCAqLwotCi0jZGVmaW5lIEw0X1dLXzI0M1hfUEhZUwkJTDRfV0tfMjQzWF9CQVNFCS8qIDB4NDkw MDAwMDAgLS0+IDB4ZmIwMDAwMDAgKi8KLSNkZWZpbmUgTDRfV0tfMjQzWF9WSVJUCQkoTDRfV0tf MjQzWF9QSFlTICsgT01BUDJfTDRfSU9fT0ZGU0VUKQotI2RlZmluZSBMNF9XS18yNDNYX1NJWkUJ CVNaXzFNCi0jZGVmaW5lIE9NQVAyNDNYX0dQTUNfUEhZUwlPTUFQMjQzWF9HUE1DX0JBU0UKLSNk ZWZpbmUgT01BUDI0M1hfR1BNQ19WSVJUCShPTUFQMjQzWF9HUE1DX1BIWVMgKyBPTUFQMl9MM19J T19PRkZTRVQpCi0JCQkJCQkvKiAweDZlMDAwMDAwIC0tPiAweGZlMDAwMDAwICovCi0jZGVmaW5l IE9NQVAyNDNYX0dQTUNfU0laRQlTWl8xTQotI2RlZmluZSBPTUFQMjQzWF9TRFJDX1BIWVMJT01B UDI0M1hfU0RSQ19CQVNFCi0JCQkJCQkvKiAweDZEMDAwMDAwIC0tPiAweGZkMDAwMDAwICovCi0j ZGVmaW5lIE9NQVAyNDNYX1NEUkNfVklSVAkoT01BUDI0M1hfU0RSQ19QSFlTICsgT01BUDJfTDNf SU9fT0ZGU0VUKQotI2RlZmluZSBPTUFQMjQzWF9TRFJDX1NJWkUJU1pfMU0KLSNkZWZpbmUgT01B UDI0M1hfU01TX1BIWVMJT01BUDI0M1hfU01TX0JBU0UKLQkJCQkJCS8qIDB4NmMwMDAwMDAgLS0+ IDB4ZmMwMDAwMDAgKi8KLSNkZWZpbmUgT01BUDI0M1hfU01TX1ZJUlQJKE9NQVAyNDNYX1NNU19Q SFlTICsgT01BUDJfTDNfSU9fT0ZGU0VUKQotI2RlZmluZSBPTUFQMjQzWF9TTVNfU0laRQlTWl8x TQotCi0vKiAyNDIwIElWQSAqLwotI2RlZmluZSBEU1BfTUVNXzI0MjBfUEhZUwlPTUFQMjQyMF9E U1BfTUVNX0JBU0UKLQkJCQkJCS8qIDB4NTgwMDAwMDAgLS0+IDB4ZmMxMDAwMDAgKi8KLSNkZWZp bmUgRFNQX01FTV8yNDIwX1ZJUlQJMHhmYzEwMDAwMAotI2RlZmluZSBEU1BfTUVNXzI0MjBfU0la RQkweDI4MDAwCi0jZGVmaW5lIERTUF9JUElfMjQyMF9QSFlTCU9NQVAyNDIwX0RTUF9JUElfQkFT RQotCQkJCQkJLyogMHg1OTAwMDAwMCAtLT4gMHhmYzEyODAwMCAqLwotI2RlZmluZSBEU1BfSVBJ XzI0MjBfVklSVAkweGZjMTI4MDAwCi0jZGVmaW5lIERTUF9JUElfMjQyMF9TSVpFCVNaXzRLCi0j ZGVmaW5lIERTUF9NTVVfMjQyMF9QSFlTCU9NQVAyNDIwX0RTUF9NTVVfQkFTRQotCQkJCQkJLyog MHg1YTAwMDAwMCAtLT4gMHhmYzEyOTAwMCAqLwotI2RlZmluZSBEU1BfTU1VXzI0MjBfVklSVAkw eGZjMTI5MDAwCi0jZGVmaW5lIERTUF9NTVVfMjQyMF9TSVpFCVNaXzRLCi0KLS8qIDI0MzAgSVZB Mi4xIC0gY3VycmVudGx5IHVubWFwcGVkICovCi0KIC8qCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgKiBPbWFwMyBzcGVjaWZpYyBJTyBtYXBwaW5nCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNo LW9tYXAyL2wzXzJ4eHguaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvbDNfMnh4eC5oCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Mjk3YzYyNDI4YWMuLjAwMDAwMDAwMDAwMAotLS0gYS9h cmNoL2FybS9tYWNoLW9tYXAyL2wzXzJ4eHguaAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAg QEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyICovCi0vKgot ICogYXJjaC9hcm0vcGxhdC1vbWFwL2luY2x1ZGUvcGxhdC9sM18yeHh4LmggLSBMMyBmaXJld2Fs bCBkZWZpbml0aW9ucwotICoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUZXhhcyBJbnN0cnVtZW50 cyBJbmNvcnBvcmF0ZWQgLSBodHRwczovL3d3dy50aS5jb20vCi0gKglTdW1pdCBTZW13YWwKLSAq LwotI2lmbmRlZiBfX0FSQ0hfQVJNX1BMQVRfT01BUF9JTkNMVURFX1BMQVRfTDNfMlhYWF9ICi0j ZGVmaW5lIF9fQVJDSF9BUk1fUExBVF9PTUFQX0lOQ0xVREVfUExBVF9MM18yWFhYX0gKLQotLyog TDMgQ09OTklEcyAqLwotLyogRGlzcGxheSBTdWIgc3lzdGVtIChEU1MpICovCi0jZGVmaW5lIE9N QVAyX0wzX0NPUkVfRldfQ09OTklEX0RTUwkJCTgKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNo L2FybS9tYWNoLW9tYXAyL2w0XzJ4eHguaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvbDRfMnh4eC5o CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MThlMTA3MmQ3MzAuLjAwMDAwMDAwMDAw MAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2w0XzJ4eHguaAorKysgL2Rldi9udWxsCkBAIC0x LDE5ICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVy ICovCi0vKgotICogYXJjaC9hcm0vcGxhdC1vbWFwL2luY2x1ZGUvcGxhdC9sNF8yeHh4LmggLSBM NCBmaXJld2FsbCBkZWZpbml0aW9ucwotICoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUZXhhcyBJ bnN0cnVtZW50cyBJbmNvcnBvcmF0ZWQgLSBodHRwczovL3d3dy50aS5jb20vCi0gKglTdW1pdCBT ZW13YWwKLSAqLwotI2lmbmRlZiBfX0FSQ0hfQVJNX1BMQVRfT01BUF9JTkNMVURFX1BMQVRfTDRf MlhYWF9ICi0jZGVmaW5lIF9fQVJDSF9BUk1fUExBVF9PTUFQX0lOQ0xVREVfUExBVF9MNF8yWFhY X0gKLQotLyogTDQgQ09SRSAqLwotLyogRGlzcGxheSBTdWIgc3lzdGVtIChEU1MpICovCi0jZGVm aW5lIE9NQVAyNDIwX0w0X0NPUkVfRldfRFNTX0NPUkVfUkVHSU9OCQkJMjgKLSNkZWZpbmUgT01B UDI0MjBfTDRfQ09SRV9GV19EU1NfRElTUENfUkVHSU9OCQkJMjkKLSNkZWZpbmUgT01BUDI0MjBf TDRfQ09SRV9GV19EU1NfUkZCSV9SRUdJT04JCQkzMAotI2RlZmluZSBPTUFQMjQyMF9MNF9DT1JF X0ZXX0RTU19WRU5DX1JFR0lPTgkJCTMxCi0jZGVmaW5lIE9NQVAyNDIwX0w0X0NPUkVfRldfRFNT X1RBX1JFR0lPTgkJCTMyCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFw Mi9tbWMuaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvbW1jLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGI1NTMzZTkzY2I2My4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gt b21hcDIvbW1jLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi0vKiBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwotCi0jZGVmaW5lIE9NQVAyNFhYX05SX01NQwkJMgot I2RlZmluZSBPTUFQMjQyMF9NTUNfU0laRQlPTUFQMV9NTUNfU0laRQotI2RlZmluZSBPTUFQMl9N TUMxX0JBU0UJCTB4NDgwOWMwMDAKLQotI2RlZmluZSBPTUFQNF9NTUNfUkVHX09GRlNFVAkweDEw MAotCi1zdHJ1Y3Qgb21hcF9od21vZDsKLQotI2lmZGVmIENPTkZJR19TT0NfT01BUDI0MjAKLWlu dCBvbWFwX21zZGlfcmVzZXQoc3RydWN0IG9tYXBfaHdtb2QgKm9oKTsKLSNlbHNlCi1zdGF0aWMg aW5saW5lIGludCBvbWFwX21zZGlfcmVzZXQoc3RydWN0IG9tYXBfaHdtb2QgKm9oKQotewotCXJl dHVybiAwOwotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL21zZGku YyBiL2FyY2gvYXJtL21hY2gtb21hcDIvbXNkaS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA1NTJiMmZhNGU0ZjEuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAy L21zZGkuYworKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBNU0RJIElQIGJsb2NrIHJlc2V0Ci0gKgot ICogQ29weXJpZ2h0IChDKSAyMDEyIFRleGFzIEluc3RydW1lbnRzLCBJbmMuCi0gKiBQYXVsIFdh bG1zbGV5Ci0gKgotICogWFhYIFdoYXQgYWJvdXQgcGFkIG11eGluZz8KLSAqLwotCi0jaW5jbHVk ZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvZXJyLmg+Ci0KLSNpbmNsdWRlICJw cm0uaCIKLSNpbmNsdWRlICJjb21tb24uaCIKLSNpbmNsdWRlICJjb250cm9sLmgiCi0jaW5jbHVk ZSAib21hcF9od21vZC5oIgotI2luY2x1ZGUgIm9tYXBfZGV2aWNlLmgiCi0jaW5jbHVkZSAibW1j LmgiCi0KLS8qCi0gKiBNU0RJX0NPTl9PRkZTRVQ6IG9mZnNldCBpbiBieXRlcyBvZiB0aGUgTVNE SSBJUCBibG9jaydzIENPTiByZWdpc3RlcgotICogICAgIGZyb20gdGhlIElQIGJsb2NrJ3MgYmFz ZSBhZGRyZXNzCi0gKi8KLSNkZWZpbmUgTVNESV9DT05fT0ZGU0VUCQkJCTB4MGMKLQotLyogUmVn aXN0ZXIgYml0ZmllbGRzIGluIHRoZSBDT04gcmVnaXN0ZXIgKi8KLSNkZWZpbmUgTVNESV9DT05f UE9XX01BU0sJCQlCSVQoMTEpCi0jZGVmaW5lIE1TRElfQ09OX0NMS0RfTUFTSwkJCSgweDNmIDw8 IDApCi0jZGVmaW5lIE1TRElfQ09OX0NMS0RfU0hJRlQJCQkwCi0KLS8qIE1TRElfVEFSR0VUX1JF U0VUX0NMS0Q6IGNsb2NrIGRpdmlzb3IgdG8gdXNlIHRocm91Z2hvdXQgdGhlIHJlc2V0ICovCi0j ZGVmaW5lIE1TRElfVEFSR0VUX1JFU0VUX0NMS0QJCTB4M2ZmCi0KLS8qKgotICogb21hcF9tc2Rp X3Jlc2V0IC0gcmVzZXQgdGhlIE1TREkgSVAgYmxvY2sKLSAqIEBvaDogc3RydWN0IG9tYXBfaHdt b2QgKgotICoKLSAqIFRoZSBNU0RJIElQIGJsb2NrIG9uIE9NQVAyNDIwIGhhcyB0byBoYXZlIGJv dGggdGhlIFBPVyBhbmQgQ0xLRAotICogZmllbGRzIHNldCBpbnNpZGUgaXRzIENPTiByZWdpc3Rl ciBmb3IgYSByZXNldCB0byBjb21wbGV0ZQotICogc3VjY2Vzc2Z1bGx5LiAgVGhpcyBpcyBub3Qg ZG9jdW1lbnRlZCBpbiB0aGUgVFJNLiAgRm9yIENMS0QsIHdlIHVzZQotICogdGhlIHZhbHVlIHRo YXQgcmVzdWx0cyBpbiB0aGUgbG93ZXN0IHBvc3NpYmxlIGNsb2NrIHJhdGUsIHRvIGF0dGVtcHQK LSAqIHRvIGF2b2lkIGRpc3R1cmJpbmcgYW55IGNhcmRzLgotICovCi1pbnQgb21hcF9tc2RpX3Jl c2V0KHN0cnVjdCBvbWFwX2h3bW9kICpvaCkKLXsKLQl1MTYgdiA9IDA7Ci0JaW50IGMgPSAwOwot Ci0JLyogV3JpdGUgdG8gdGhlIFNPRlRSRVNFVCBiaXQgKi8KLQlvbWFwX2h3bW9kX3NvZnRyZXNl dChvaCk7Ci0KLQkvKiBFbmFibGUgdGhlIE1TREkgY29yZSBhbmQgaW50ZXJuYWwgY2xvY2sgKi8K LQl2IHw9IE1TRElfQ09OX1BPV19NQVNLOwotCXYgfD0gTVNESV9UQVJHRVRfUkVTRVRfQ0xLRCA8 PCBNU0RJX0NPTl9DTEtEX1NISUZUOwotCW9tYXBfaHdtb2Rfd3JpdGUodiwgb2gsIE1TRElfQ09O X09GRlNFVCk7Ci0KLQkvKiBQb2xsIG9uIFJFU0VURE9ORSBiaXQgKi8KLQlvbWFwX3Rlc3RfdGlt ZW91dCgob21hcF9od21vZF9yZWFkKG9oLCBvaC0+Y2xhc3MtPnN5c2MtPnN5c3Nfb2ZmcykKLQkJ CSAgICYgU1lTU19SRVNFVERPTkVfTUFTSyksCi0JCQkgIE1BWF9NT0RVTEVfU09GVFJFU0VUX1dB SVQsIGMpOwotCi0JaWYgKGMgPT0gTUFYX01PRFVMRV9TT0ZUUkVTRVRfV0FJVCkKLQkJcHJfd2Fy bigiJXM6ICVzOiBzb2Z0cmVzZXQgZmFpbGVkICh3YWl0ZWQgJWQgdXNlYylcbiIsCi0JCQlfX2Z1 bmNfXywgb2gtPm5hbWUsIE1BWF9NT0RVTEVfU09GVFJFU0VUX1dBSVQpOwotCWVsc2UKLQkJcHJf ZGVidWcoIiVzOiAlczogc29mdHJlc2V0IGluICVkIHVzZWNcbiIsIF9fZnVuY19fLAotCQkJIG9o LT5uYW1lLCBjKTsKLQotCS8qIERpc2FibGUgdGhlIE1TREkgaW50ZXJuYWwgY2xvY2sgKi8KLQl2 ICY9IH5NU0RJX0NPTl9DTEtEX01BU0s7Ci0Jb21hcF9od21vZF93cml0ZSh2LCBvaCwgTVNESV9D T05fT0ZGU0VUKTsKLQotCXJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1v bWFwMi9vbWFwMi1yZXN0YXJ0LmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAyLXJlc3RhcnQu YwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmRjYzc1Yzk3ZDcwLi4wMDAwMDAwMDAw MDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwMi1yZXN0YXJ0LmMKKysrIC9kZXYvbnVs bApAQCAtMSw2MiArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1v bmx5Ci0vKgotICogb21hcDItcmVzdGFydC5jIC0gY29kZSBjb21tb24gdG8gYWxsIE9NQVAyeHh4 IG1hY2hpbmVzLgotICoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBUZXhhcyBJbnN0cnVtZW50cwot ICogUGF1bCBXYWxtc2xleQotICovCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVk ZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgotI2luY2x1ZGUgPGxpbnV4 L2lvLmg+Ci0KLSNpbmNsdWRlICJzb2MuaCIKLSNpbmNsdWRlICJjb21tb24uaCIKLSNpbmNsdWRl ICJwcm0uaCIKLQotLyoKLSAqIHJlc2V0X3ZpcnRfcHJjbV9zZXRfY2ssIHJlc2V0X3N5c19jazog cG9pbnRlcnMgdG8gdGhlIHZpcnRfcHJjbV9zZXQKLSAqIGNsb2NrIGFuZCB0aGUgc3lzX2NrLiAg VXNlZCBkdXJpbmcgdGhlIHJlc2V0IHByb2Nlc3MKLSAqLwotc3RhdGljIHN0cnVjdCBjbGsgKnJl c2V0X3ZpcnRfcHJjbV9zZXRfY2ssICpyZXNldF9zeXNfY2s7Ci0KLS8qIFJlYm9vdCBoYW5kbGlu ZyAqLwotCi0vKioKLSAqIG9tYXAyeHh4X3Jlc3RhcnQgLSBTZXQgRFBMTCB0byBieXBhc3MgbW9k ZSBmb3IgcmVib290IHRvIHdvcmsKLSAqCi0gKiBTZXQgdGhlIERQTEwgdG8gYnlwYXNzIHNvIHRo YXQgcmVib290IGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkuICBObwotICogcmV0dXJuIHZhbHVlLgot ICovCi12b2lkIG9tYXAyeHh4X3Jlc3RhcnQoZW51bSByZWJvb3RfbW9kZSBtb2RlLCBjb25zdCBj aGFyICpjbWQpCi17Ci0JdTMyIHJhdGU7Ci0KLQlyYXRlID0gY2xrX2dldF9yYXRlKHJlc2V0X3N5 c19jayk7Ci0JY2xrX3NldF9yYXRlKHJlc2V0X3ZpcnRfcHJjbV9zZXRfY2ssIHJhdGUpOwotCi0J LyogWFhYIFNob3VsZCBzYXZlIHRoZSBjbWQgYXJndW1lbnQgZm9yIHVzZSBhZnRlciB0aGUgcmVi b290ICovCi0KLQlvbWFwX3BybV9yZXNldF9zeXN0ZW0oKTsKLX0KLQotLyoqCi0gKiBvbWFwMnh4 eF9jb21tb25fbG9va191cF9jbGtzX2Zvcl9yZXNldCAtIGxvb2sgdXAgY2xvY2tzIG5lZWRlZCBm b3IgcmVzdGFydAotICoKLSAqIFNvbWUgY2xvY2tzIG5lZWQgdG8gYmUgbG9va2VkIHVwIGluIGFk dmFuY2UgZm9yIHRoZSBTb0MgcmVzdGFydAotICogb3BlcmF0aW9uIHRvIHdvcmsgLSBzZWUgb21h cDJ4eHhfcmVzdGFydCgpLiAgUmV0dXJucyAtRUlOVkFMIHVwb24KLSAqIGVycm9yIG9yIDAgdXBv biBzdWNjZXNzLgotICovCi1zdGF0aWMgaW50IF9faW5pdCBvbWFwMnh4eF9jb21tb25fbG9va191 cF9jbGtzX2Zvcl9yZXNldCh2b2lkKQotewotCXJlc2V0X3ZpcnRfcHJjbV9zZXRfY2sgPSBjbGtf Z2V0KE5VTEwsICJ2aXJ0X3ByY21fc2V0Iik7Ci0JaWYgKElTX0VSUihyZXNldF92aXJ0X3ByY21f c2V0X2NrKSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlyZXNldF9zeXNfY2sgPSBjbGtfZ2V0KE5V TEwsICJzeXNfY2siKTsKLQlpZiAoSVNfRVJSKHJlc2V0X3N5c19jaykpCi0JCXJldHVybiAtRUlO VkFMOwotCi0JcmV0dXJuIDA7Ci19Ci1vbWFwX3Bvc3Rjb3JlX2luaXRjYWxsKG9tYXAyeHh4X2Nv bW1vbl9sb29rX3VwX2Nsa3NfZm9yX3Jlc2V0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gt b21hcDIvb21hcDI0eHguaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcDI0eHguaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDllY2MwNTc4MjkyLi4wMDAwMDAwMDAwMDAKLS0tIGEv YXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwMjR4eC5oCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAs MCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIgKi8KLS8q Ci0gKiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIHByb2Nlc3NvciBzcGVjaWZpYyBkZWZpbml0aW9u cwotICogb2YgdGhlIFRJIE9NQVAyNFhYLgotICoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBUZXhh cyBJbnN0cnVtZW50cy4KLSAqIENvcHlyaWdodCAoQykgMjAwNyBOb2tpYSBDb3Jwb3JhdGlvbi4K LSAqLwotCi0jaWZuZGVmIF9fQVNNX0FSQ0hfT01BUDJfSAotI2RlZmluZSBfX0FTTV9BUkNIX09N QVAyX0gKLQotLyoKLSAqIFBsZWFzZSBwbGFjZSBvbmx5IGJhc2UgZGVmaW5lcyBoZXJlIGFuZCBw dXQgdGhlIHJlc3QgaW4gZGV2aWNlCi0gKiBzcGVjaWZpYyBoZWFkZXJzLiBOb3RlIGFsc28gdGhh dCBzb21lIG9mIHRoZXNlIGRlZmluZXMgYXJlIG5lZWRlZAotICogZm9yIG9tYXAxIHRvIGNvbXBp bGUgd2l0aG91dCBhZGRpbmcgaWZkZWZzLgotICovCi0KLSNkZWZpbmUgTDRfMjRYWF9CQVNFCQkw eDQ4MDAwMDAwCi0jZGVmaW5lIEw0X1dLXzI0M1hfQkFTRQkJMHg0OTAwMDAwMAotI2RlZmluZSBM M18yNFhYX0JBU0UJCTB4NjgwMDAwMDAKLQotLyogaW50ZXJydXB0IGNvbnRyb2xsZXIgKi8KLSNk ZWZpbmUgT01BUDI0WFhfSUNfQkFTRQkoTDRfMjRYWF9CQVNFICsgMHhmZTAwMCkKLSNkZWZpbmUg T01BUDI0WFhfSVZBX0lOVENfQkFTRQkweDQwMDAwMDAwCi0KLSNkZWZpbmUgT01BUDI0MlhfQ1RS TF9CQVNFCUw0XzI0WFhfQkFTRQotI2RlZmluZSBPTUFQMjQyMF8zMktTWU5DVF9CQVNFCShMNF8y NFhYX0JBU0UgKyAweDQwMDApCi0jZGVmaW5lIE9NQVAyNDIwX1BSQ01fQkFTRQkoTDRfMjRYWF9C QVNFICsgMHg4MDAwKQotI2RlZmluZSBPTUFQMjQyMF9DTV9CQVNFCShMNF8yNFhYX0JBU0UgKyAw eDgwMDApCi0jZGVmaW5lIE9NQVAyNDIwX1BSTV9CQVNFCU9NQVAyNDIwX0NNX0JBU0UKLSNkZWZp bmUgT01BUDI0MjBfU0RSQ19CQVNFCShMM18yNFhYX0JBU0UgKyAweDkwMDApCi0jZGVmaW5lIE9N QVAyNDIwX1NNU19CQVNFCTB4NjgwMDgwMDAKLSNkZWZpbmUgT01BUDI0MjBfR1BNQ19CQVNFCTB4 NjgwMGEwMDAKLQotI2RlZmluZSBPTUFQMjQzMF8zMktTWU5DVF9CQVNFCShMNF9XS18yNDNYX0JB U0UgKyAweDIwMDAwKQotI2RlZmluZSBPTUFQMjQzMF9QUkNNX0JBU0UJKEw0X1dLXzI0M1hfQkFT RSArIDB4NjAwMCkKLSNkZWZpbmUgT01BUDI0MzBfQ01fQkFTRQkoTDRfV0tfMjQzWF9CQVNFICsg MHg2MDAwKQotI2RlZmluZSBPTUFQMjQzMF9QUk1fQkFTRQlPTUFQMjQzMF9DTV9CQVNFCi0KLSNk ZWZpbmUgT01BUDI0M1hfU01TX0JBU0UJMHg2QzAwMDAwMAotI2RlZmluZSBPTUFQMjQzWF9TRFJD X0JBU0UJMHg2RDAwMDAwMAotI2RlZmluZSBPTUFQMjQzWF9HUE1DX0JBU0UJMHg2RTAwMDAwMAot I2RlZmluZSBPTUFQMjQzWF9TQ01fQkFTRQkoTDRfV0tfMjQzWF9CQVNFICsgMHgyMDAwKQotI2Rl ZmluZSBPTUFQMjQzWF9DVFJMX0JBU0UJT01BUDI0M1hfU0NNX0JBU0UKLSNkZWZpbmUgT01BUDI0 M1hfSFNfQkFTRQkoTDRfMjRYWF9CQVNFICsgMHgwMDBhYzAwMCkKLQotLyogRFNQIFNTICovCi0j ZGVmaW5lIE9NQVAyNDIwX0RTUF9CQVNFCTB4NTgwMDAwMDAKLSNkZWZpbmUgT01BUDI0MjBfRFNQ X01FTV9CQVNFCShPTUFQMjQyMF9EU1BfQkFTRSArIDB4MCkKLSNkZWZpbmUgT01BUDI0MjBfRFNQ X0lQSV9CQVNFCShPTUFQMjQyMF9EU1BfQkFTRSArIDB4MTAwMDAwMCkKLSNkZWZpbmUgT01BUDI0 MjBfRFNQX01NVV9CQVNFCShPTUFQMjQyMF9EU1BfQkFTRSArIDB4MjAwMDAwMCkKLQotI2RlZmlu ZSBPTUFQMjQzWF9EU1BfQkFTRQkweDVDMDAwMDAwCi0jZGVmaW5lIE9NQVAyNDNYX0RTUF9NRU1f QkFTRQkoT01BUDI0M1hfRFNQX0JBU0UgKyAweDApCi0jZGVmaW5lIE9NQVAyNDNYX0RTUF9NTVVf QkFTRQkoT01BUDI0M1hfRFNQX0JBU0UgKyAweDEwMDAwMDApCi0KLS8qIE1haWxib3ggKi8KLSNk ZWZpbmUgT01BUDI0WFhfTUFJTEJPWF9CQVNFCShMNF8yNFhYX0JBU0UgKyAweDk0MDAwKQotCi0v KiBDYW1lcmEgKi8KLSNkZWZpbmUgT01BUDI0WFhfQ0FNRVJBX0JBU0UJKEw0XzI0WFhfQkFTRSAr IDB4NTIwMDApCi0KLS8qIFNlY3VyaXR5ICovCi0jZGVmaW5lIE9NQVAyNFhYX1NFQ19CQVNFCShM NF8yNFhYX0JBU0UgKyAweEEwMDAwKQotI2RlZmluZSBPTUFQMjRYWF9TRUNfUk5HX0JBU0UJKE9N QVAyNFhYX1NFQ19CQVNFICsgMHgwMDAwKQotI2RlZmluZSBPTUFQMjRYWF9TRUNfREVTX0JBU0UJ KE9NQVAyNFhYX1NFQ19CQVNFICsgMHgyMDAwKQotI2RlZmluZSBPTUFQMjRYWF9TRUNfU0hBMU1E NV9CQVNFIChPTUFQMjRYWF9TRUNfQkFTRSArIDB4NDAwMCkKLSNkZWZpbmUgT01BUDI0WFhfU0VD X0FFU19CQVNFCShPTUFQMjRYWF9TRUNfQkFTRSArIDB4NjAwMCkKLSNkZWZpbmUgT01BUDI0WFhf U0VDX1BLQV9CQVNFCShPTUFQMjRYWF9TRUNfQkFTRSArIDB4ODAwMCkKLQotI2VuZGlmIC8qIF9f QVNNX0FSQ0hfT01BUDJfSCAqLwotCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL29t YXBfaHdtb2QuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZC5jCmluZGV4IDAzY2Q1 MjNkZmY4Ny4uY2RlMzU3YWNmMDM4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL29t YXBfaHdtb2QuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2QuYwpAQCAtMTUz LDkgKzE1Myw3IEBACiAjaW5jbHVkZSAiY29tbW9uLmgiCiAjaW5jbHVkZSAiY2xvY2tkb21haW4u aCIKICNpbmNsdWRlICJoZHExdy5oIgotI2luY2x1ZGUgIm1tYy5oIgogI2luY2x1ZGUgInBvd2Vy ZG9tYWluLmgiCi0jaW5jbHVkZSAiY20yeHh4LmgiCiAjaW5jbHVkZSAiY20zeHh4LmgiCiAjaW5j bHVkZSAiY20zM3h4LmgiCiAjaW5jbHVkZSAicHJtLmgiCkBAIC0zNDM3LDcgKzM0MzUsNyBAQCBz dGF0aWMgaW50IG9tYXBfaHdtb2RfYWxsb2NhdGVfbW9kdWxlKHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0IG9tYXBfaHdtb2QgKm9oLAogCQkvKgogCQkgKiBOb3RlIHRoYXQgd2UgYXNzdW1lIGlu dGVyY29ubmVjdCBpbnRlcmZhY2UgY2xvY2tzIHdpbGwgYmUKIAkJICogbWFuYWdlZCBieSB0aGUg aW50ZXJjb25uZWN0IGRyaXZlciBmb3IgT0NQSUZfU1dTVVBfSURMRSBjYXNlCi0JCSAqIG9uIG9t YXAyNHh4IGFuZCBvbWFwMy4KKwkJICogb24gb21hcDMuCiAJCSAqLwogCQlvaS0+c2xhdmUgPSBv aDsKIAkJb2ktPnVzZXIgPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BOwpAQCAtMzQ2OSwx MCArMzQ2Nyw2IEBAIHN0YXRpYyBpbnQgb21hcF9od21vZF9hbGxvY2F0ZV9tb2R1bGUoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3Qgb21hcF9od21vZCAqb2gsCiAJcmV0dXJuIC1FTk9NRU07CiB9 CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9od21vZF9yZXNldCBvbWFwMjR4eF9yZXNldF9x dWlya3NbXSA9IHsKLQl7IC5tYXRjaCA9ICJtc2RpIiwgLmxlbiA9IDQsIC5yZXNldCA9IG9tYXBf bXNkaV9yZXNldCwgfSwKLX07Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9od21vZF9yZXNl dCBvbWFwX3Jlc2V0X3F1aXJrc1tdID0gewogCXsgLm1hdGNoID0gImRzc19jb3JlIiwgLmxlbiA9 IDgsIC5yZXNldCA9IG9tYXBfZHNzX3Jlc2V0LCB9LAogCXsgLm1hdGNoID0gImhkcTF3IiwgLmxl biA9IDUsIC5yZXNldCA9IG9tYXBfaGRxMXdfcmVzZXQsIH0sCkBAIC0zNTAzLDExICszNDk3LDYg QEAgc3RhdGljIHZvaWQKIG9tYXBfaHdtb2RfaW5pdF9yZXNldF9xdWlya3Moc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3Qgb21hcF9od21vZCAqb2gsCiAJCQkgICAgIGNvbnN0IHN0cnVjdCB0aV9z eXNjX21vZHVsZV9kYXRhICpkYXRhKQogewotCWlmIChzb2NfaXNfb21hcDI0eHgoKSkKLQkJb21h cF9od21vZF9pbml0X3Jlc2V0X3F1aXJrKGRldiwgb2gsIGRhdGEsCi0JCQkJCSAgICBvbWFwMjR4 eF9yZXNldF9xdWlya3MsCi0JCQkJCSAgICBBUlJBWV9TSVpFKG9tYXAyNHh4X3Jlc2V0X3F1aXJr cykpOwotCiAJb21hcF9od21vZF9pbml0X3Jlc2V0X3F1aXJrKGRldiwgb2gsIGRhdGEsIG9tYXBf cmVzZXRfcXVpcmtzLAogCQkJCSAgICBBUlJBWV9TSVpFKG9tYXBfcmVzZXRfcXVpcmtzKSk7CiB9 CkBAIC0zOTE0LDEyICszOTAzLDcgQEAgaW50IG9tYXBfaHdtb2Rfc2V0X3Bvc3RzZXR1cF9zdGF0 ZShzdHJ1Y3Qgb21hcF9od21vZCAqb2gsIHU4IHN0YXRlKQogICovCiB2b2lkIF9faW5pdCBvbWFw X2h3bW9kX2luaXQodm9pZCkKIHsKLQlpZiAoY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJc29jX29w cy53YWl0X3RhcmdldF9yZWFkeSA9IF9vbWFwMnh4eF8zeHh4X3dhaXRfdGFyZ2V0X3JlYWR5Owot CQlzb2Nfb3BzLmFzc2VydF9oYXJkcmVzZXQgPSBfb21hcDJfYXNzZXJ0X2hhcmRyZXNldDsKLQkJ c29jX29wcy5kZWFzc2VydF9oYXJkcmVzZXQgPSBfb21hcDJfZGVhc3NlcnRfaGFyZHJlc2V0Owot CQlzb2Nfb3BzLmlzX2hhcmRyZXNldF9hc3NlcnRlZCA9IF9vbWFwMl9pc19oYXJkcmVzZXRfYXNz ZXJ0ZWQ7Ci0JfSBlbHNlIGlmIChjcHVfaXNfb21hcDM0eHgoKSkgeworCWlmIChjcHVfaXNfb21h cDM0eHgoKSkgewogCQlzb2Nfb3BzLndhaXRfdGFyZ2V0X3JlYWR5ID0gX29tYXAyeHh4XzN4eHhf d2FpdF90YXJnZXRfcmVhZHk7CiAJCXNvY19vcHMuYXNzZXJ0X2hhcmRyZXNldCA9IF9vbWFwMl9h c3NlcnRfaGFyZHJlc2V0OwogCQlzb2Nfb3BzLmRlYXNzZXJ0X2hhcmRyZXNldCA9IF9vbWFwMl9k ZWFzc2VydF9oYXJkcmVzZXQ7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBf aHdtb2QuaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZC5oCmluZGV4IGRjYWI3YTAx YzEwZS4uYjYwY2QwOWMxOTk3IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBf aHdtb2QuaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2QuaApAQCAtNjYzLDgg KzY2Myw2IEBAIG9tYXBfaHdtb2RfZm9yX2VhY2hfYnlfY2xhc3MoY29uc3QgY2hhciAqY2xhc3Nu YW1lLAogICogQ2hpcCB2YXJpYW50LXNwZWNpZmljIGh3bW9kIGluaXQgcm91dGluZXMgLSBYWFgg c2hvdWxkIGJlIGNvbnZlcnRlZAogICogdG8gdXNlIGluaXRjYWxscyBvbmNlIHRoZSBpbml0aWFs IGJvb3Qgb3JkZXJpbmcgaXMgc3RyYWlnaHRlbmVkIG91dAogICovCi1leHRlcm4gaW50IG9tYXAy NDIwX2h3bW9kX2luaXQodm9pZCk7Ci1leHRlcm4gaW50IG9tYXAyNDMwX2h3bW9kX2luaXQodm9p ZCk7CiBleHRlcm4gaW50IG9tYXAzeHh4X2h3bW9kX2luaXQodm9pZCk7CiBleHRlcm4gaW50IGRt ODE0eF9od21vZF9pbml0KHZvaWQpOwogZXh0ZXJuIGludCBkbTgxNnhfaHdtb2RfaW5pdCh2b2lk KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF8yNDIwX2RhdGEu YyBiL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF8yNDIwX2RhdGEuYwpkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggZGJkOWRjOWYwOTYyLi4wMDAwMDAwMDAwMDAKLS0tIGEvYXJj aC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzI0MjBfZGF0YS5jCisrKyAvZGV2L251bGwKQEAg LTEsNDAyICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkK LS8qCi0gKiBvbWFwX2h3bW9kXzI0MjBfZGF0YS5jIC0gaGFyZHdhcmUgbW9kdWxlcyBwcmVzZW50 IG9uIHRoZSBPTUFQMjQyMCBjaGlwcwotICoKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDExIE5v a2lhIENvcnBvcmF0aW9uCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgVGV4YXMgSW5zdHJ1bWVudHMs IEluYy4KLSAqIFBhdWwgV2FsbXNsZXkKLSAqCi0gKiBYWFggaGFuZGxlIGNyb3NzYmFyL3NoYXJl ZCBsaW5rIGRpZmZlcmVuY2UgZm9yIEwzPwotICogWFhYIHRoZXNlIHNob3VsZCBiZSBtYXJrZWQg aW5pdGRhdGEgZm9yIG11bHRpLU9NQVAga2VybmVscwotICovCi0KLSNpbmNsdWRlIDxsaW51eC9w bGF0Zm9ybV9kYXRhL2kyYy1vbWFwLmg+Ci0KLSNpbmNsdWRlICJvbWFwX2h3bW9kLmgiCi0jaW5j bHVkZSAibDNfMnh4eC5oIgotI2luY2x1ZGUgImw0XzJ4eHguaCIKLQotI2luY2x1ZGUgIm9tYXBf aHdtb2RfY29tbW9uX2RhdGEuaCIKLQotI2luY2x1ZGUgImNtLXJlZ2JpdHMtMjR4eC5oIgotI2lu Y2x1ZGUgInBybS1yZWdiaXRzLTI0eHguaCIKLSNpbmNsdWRlICJpMmMuaCIKLSNpbmNsdWRlICJt bWMuaCIKLSNpbmNsdWRlICJ3ZF90aW1lci5oIgotCi0vKgotICogT01BUDI0MjAgaGFyZHdhcmUg bW9kdWxlIGludGVncmF0aW9uIGRhdGEKLSAqCi0gKiBBbGwgb2YgdGhlIGRhdGEgaW4gdGhpcyBz ZWN0aW9uIHNob3VsZCBiZSBhdXRvZ2VuZXJhdGFibGUgZnJvbSB0aGUKLSAqIFRJIGhhcmR3YXJl IGRhdGFiYXNlIG9yIG90aGVyIHRlY2huaWNhbCBkb2N1bWVudGF0aW9uLiAgRGF0YSB0aGF0Ci0g KiBpcyBkcml2ZXItc3BlY2lmaWMgb3IgZHJpdmVyLWtlcm5lbCBpbnRlZ3JhdGlvbi1zcGVjaWZp YyBiZWxvbmdzCi0gKiBlbHNld2hlcmUuCi0gKi8KLQotLyoKLSAqIElQIGJsb2NrcwotICovCi0K LS8qIElWQTEgKElWQTEpICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3MgaXZhMV9o d21vZF9jbGFzcyA9IHsKLQkubmFtZQkJPSAiaXZhMSIsCi19OwotCi1zdGF0aWMgc3RydWN0IG9t YXBfaHdtb2RfcnN0X2luZm8gb21hcDI0MjBfaXZhX3Jlc2V0c1tdID0gewotCXsgLm5hbWUgPSAi aXZhIiwgLnJzdF9zaGlmdCA9IDggfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZCBv bWFwMjQyMF9pdmFfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gIml2YSIsCi0JLmNsYXNzCQk9ICZpdmEx X2h3bW9kX2NsYXNzLAotCS5jbGtkbV9uYW1lCT0gIml2YTFfY2xrZG0iLAotCS5yc3RfbGluZXMJ PSBvbWFwMjQyMF9pdmFfcmVzZXRzLAotCS5yc3RfbGluZXNfY250CT0gQVJSQVlfU0laRShvbWFw MjQyMF9pdmFfcmVzZXRzKSwKLQkubWFpbl9jbGsJPSAiaXZhMV9pZmNrIiwKLX07Ci0KLS8qIERT UCAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIGRzcF9od21vZF9jbGFzcyA9IHsK LQkubmFtZQkJPSAiZHNwIiwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9yc3RfaW5m byBvbWFwMjQyMF9kc3BfcmVzZXRzW10gPSB7Ci0JeyAubmFtZSA9ICJsb2dpYyIsIC5yc3Rfc2hp ZnQgPSAwIH0sCi0JeyAubmFtZSA9ICJtbXUiLCAucnN0X3NoaWZ0ID0gMSB9LAotfTsKLQotc3Rh dGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyNDIwX2RzcF9od21vZCA9IHsKLQkubmFtZQkJPSAi ZHNwIiwKLQkuY2xhc3MJCT0gJmRzcF9od21vZF9jbGFzcywKLQkuY2xrZG1fbmFtZQk9ICJkc3Bf Y2xrZG0iLAotCS5yc3RfbGluZXMJPSBvbWFwMjQyMF9kc3BfcmVzZXRzLAotCS5yc3RfbGluZXNf Y250CT0gQVJSQVlfU0laRShvbWFwMjQyMF9kc3BfcmVzZXRzKSwKLQkubWFpbl9jbGsJPSAiZHNw X2ZjayIsCi19OwotCi0vKiBJMkMgY29tbW9uICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rf Y2xhc3Nfc3lzY29uZmlnIGkyY19zeXNjID0gewotCS5yZXZfb2Zmcwk9IDB4MDAsCi0JLnN5c2Nf b2Zmcwk9IDB4MjAsCi0JLnN5c3Nfb2Zmcwk9IDB4MTAsCi0JLnN5c2NfZmxhZ3MJPSAoU1lTQ19I QVNfU09GVFJFU0VUIHwgU1lTU19IQVNfUkVTRVRfU1RBVFVTKSwKLQkuc3lzY19maWVsZHMJPSAm b21hcF9od21vZF9zeXNjX3R5cGUxLAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2Ns YXNzIGkyY19jbGFzcyA9IHsKLQkubmFtZQkJPSAiaTJjIiwKLQkuc3lzYwkJPSAmaTJjX3N5c2Ms Ci0JLnJlc2V0CQk9ICZvbWFwX2kyY19yZXNldCwKLX07Ci0KLS8qIEkyQzEgKi8KLXN0YXRpYyBz dHJ1Y3Qgb21hcF9od21vZCBvbWFwMjQyMF9pMmMxX2h3bW9kID0gewotCS5uYW1lCQk9ICJpMmMx IiwKLQkubWFpbl9jbGsJPSAiaTJjMV9mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewot CQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCQku aWRsZXN0X2lkbGVfYml0ID0gT01BUDI0MjBfU1RfSTJDMV9TSElGVCwKLQkJfSwKLQl9LAotCS5j bGFzcwkJPSAmaTJjX2NsYXNzLAotCS8qCi0JICogRnJvbSBtYWNoLW9tYXAyL3BtMjR4eC5jOiAi UHV0dGluZyBNUFUgaW50byB0aGUgV0ZJIHN0YXRlCi0JICogd2hpbGUgYSB0cmFuc2ZlciBpcyBh Y3RpdmUgc2VlbXMgdG8gY2F1c2UgdGhlIEkyQyBibG9jayB0bwotCSAqIHRpbWVvdXQuIFdoeT8g R29vZCBxdWVzdGlvbi4iCi0JICovCi0JLmZsYWdzCQk9IChIV01PRF8xNkJJVF9SRUcgfCBIV01P RF9CTE9DS19XRkkpLAotfTsKLQotLyogSTJDMiAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9k IG9tYXAyNDIwX2kyYzJfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gImkyYzIiLAotCS5tYWluX2Nsawk9 ICJpMmMyX2ZjayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMg PSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQg PSBPTUFQMjQyMF9TVF9JMkMyX1NISUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZpMmNfY2xh c3MsCi0JLmZsYWdzCQk9IEhXTU9EXzE2QklUX1JFRywKLX07Ci0KLS8qIG1haWxib3ggKi8KLXN0 YXRpYyBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMjQyMF9tYWlsYm94X2h3bW9kID0gewotCS5uYW1l CQk9ICJtYWlsYm94IiwKLQkuY2xhc3MJCT0gJm9tYXAyeHh4X21haWxib3hfaHdtb2RfY2xhc3Ms Ci0JLm1haW5fY2xrCT0gIm1haWxib3hlc19pY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0g ewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0J CQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0WFhfU1RfTUFJTEJPWEVTX1NISUZULAotCQl9LAot CX0sCi19OwotCi0vKgotICogJ21jYnNwJyBjbGFzcwotICogbXVsdGkgY2hhbm5lbCBidWZmZXJl ZCBzZXJpYWwgcG9ydCBjb250cm9sbGVyCi0gKi8KLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9k X2NsYXNzIG9tYXAyNDIwX21jYnNwX2h3bW9kX2NsYXNzID0gewotCS5uYW1lID0gIm1jYnNwIiwK LX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vcHRfY2xrIG1jYnNwX29wdF9jbGtzW10g PSB7Ci0JeyAucm9sZSA9ICJwYWRfZmNrIiwgLmNsayA9ICJtY2JzcF9jbGtzIiB9LAotCXsgLnJv bGUgPSAicHJjbV9mY2siLCAuY2xrID0gImZ1bmNfOTZtX2NrIiB9LAotfTsKLQotLyogbWNic3Ax ICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Qgb21hcDI0MjBfbWNic3AxX2h3bW9kID0gewot CS5uYW1lCQk9ICJtY2JzcDEiLAotCS5jbGFzcwkJPSAmb21hcDI0MjBfbWNic3BfaHdtb2RfY2xh c3MsCi0JLm1haW5fY2xrCT0gIm1jYnNwMV9mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0g ewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0J CQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0WFhfU1RfTUNCU1AxX1NISUZULAotCQl9LAotCX0s Ci0JLm9wdF9jbGtzCT0gbWNic3Bfb3B0X2Nsa3MsCi0JLm9wdF9jbGtzX2NudAk9IEFSUkFZX1NJ WkUobWNic3Bfb3B0X2Nsa3MpLAotfTsKLQotLyogbWNic3AyICovCi1zdGF0aWMgc3RydWN0IG9t YXBfaHdtb2Qgb21hcDI0MjBfbWNic3AyX2h3bW9kID0gewotCS5uYW1lCQk9ICJtY2JzcDIiLAot CS5jbGFzcwkJPSAmb21hcDI0MjBfbWNic3BfaHdtb2RfY2xhc3MsCi0JLm1haW5fY2xrCT0gIm1j YnNwMl9mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0g Q09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0g T01BUDI0WFhfU1RfTUNCU1AyX1NISUZULAotCQl9LAotCX0sCi0JLm9wdF9jbGtzCT0gbWNic3Bf b3B0X2Nsa3MsCi0JLm9wdF9jbGtzX2NudAk9IEFSUkFZX1NJWkUobWNic3Bfb3B0X2Nsa3MpLAot fTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzX3N5c2NvbmZpZyBvbWFwMjQyMF9t c2RpX3N5c2MgPSB7Ci0JLnJldl9vZmZzCT0gMHgzYywKLQkuc3lzY19vZmZzCT0gMHg2NCwKLQku c3lzc19vZmZzCT0gMHg2OCwKLQkuc3lzY19mbGFncwk9IChTWVNDX0hBU19TT0ZUUkVTRVQgfCBT WVNTX0hBU19SRVNFVF9TVEFUVVMpLAotCS5zeXNjX2ZpZWxkcwk9ICZvbWFwX2h3bW9kX3N5c2Nf dHlwZTEsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Mgb21hcDI0MjBfbXNk aV9od21vZF9jbGFzcyA9IHsKLQkubmFtZQk9ICJtc2RpIiwKLQkuc3lzYwk9ICZvbWFwMjQyMF9t c2RpX3N5c2MsCi0JLnJlc2V0CT0gJm9tYXBfbXNkaV9yZXNldCwKLX07Ci0KLS8qIG1zZGkxICov Ci1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Qgb21hcDI0MjBfbXNkaTFfaHdtb2QgPSB7Ci0JLm5h bWUJCT0gIm1zZGkxIiwKLQkuY2xhc3MJCT0gJm9tYXAyNDIwX21zZGlfaHdtb2RfY2xhc3MsCi0J Lm1haW5fY2xrCT0gIm1tY19mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1v ZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCQkuaWRsZXN0 X2lkbGVfYml0ID0gT01BUDI0MjBfU1RfTU1DX1NISUZULAotCQl9LAotCX0sCi0JLmZsYWdzCQk9 IEhXTU9EXzE2QklUX1JFRywKLX07Ci0KLS8qIEhEUTFXLzEtd2lyZSAqLwotc3RhdGljIHN0cnVj dCBvbWFwX2h3bW9kIG9tYXAyNDIwX2hkcTF3X2h3bW9kID0gewotCS5uYW1lCQk9ICJoZHExdyIs Ci0JLm1haW5fY2xrCT0gImhkcV9mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJ Lm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCQkuaWRs ZXN0X2lkbGVfYml0ID0gT01BUDI0WFhfU1RfSERRX1NISUZULAotCQl9LAotCX0sCi0JLmNsYXNz CQk9ICZvbWFwMl9oZHExd19jbGFzcywKLX07Ci0KLS8qCi0gKiBpbnRlcmZhY2VzCi0gKi8KLQot LyogTDQgQ09SRSAtPiBJMkMxIGludGVyZmFjZSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9k X29jcF9pZiBvbWFwMjQyMF9sNF9jb3JlX19pMmMxID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4 X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMjQyMF9pMmMxX2h3bW9kLAotCS5jbGsJ CT0gImkyYzFfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAot fTsKLQotLyogTDQgQ09SRSAtPiBJMkMyIGludGVyZmFjZSAqLwotc3RhdGljIHN0cnVjdCBvbWFw X2h3bW9kX29jcF9pZiBvbWFwMjQyMF9sNF9jb3JlX19pMmMyID0gewotCS5tYXN0ZXIJCT0gJm9t YXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMjQyMF9pMmMyX2h3bW9kLAot CS5jbGsJCT0gImkyYzJfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9T RE1BLAotfTsKLQotLyogSVZBIDwtIEwzIGludGVyZmFjZSAqLwotc3RhdGljIHN0cnVjdCBvbWFw X2h3bW9kX29jcF9pZiBvbWFwMjQyMF9sM19faXZhID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4 X2wzX21haW5faHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMjQyMF9pdmFfaHdtb2QsCi0JLmNsawkJ PSAiY29yZV9sM19jayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwK LX07Ci0KLS8qIERTUCA8LSBMMyBpbnRlcmZhY2UgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21v ZF9vY3BfaWYgb21hcDI0MjBfbDNfX2RzcCA9IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sM19t YWluX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDI0MjBfZHNwX2h3bW9kLAotCS5jbGsJCT0gImRz cF9pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0v KiBsNF93a3VwIC0+IHdkX3RpbWVyMiAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9p ZiBvbWFwMjQyMF9sNF93a3VwX193ZF90aW1lcjIgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhf bDRfd2t1cF9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X3dkX3RpbWVyMl9od21vZCwKLQku Y2xrCQk9ICJtcHVfd2R0X2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJf U0RNQSwKLX07Ci0KLS8qIGw0X3drdXAgLT4gZ3BpbzEgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9o d21vZF9vY3BfaWYgb21hcDI0MjBfbDRfd2t1cF9fZ3BpbzEgPSB7Ci0JLm1hc3RlcgkJPSAmb21h cDJ4eHhfbDRfd2t1cF9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X2dwaW8xX2h3bW9kLAot CS5jbGsJCT0gImdwaW9zX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJf U0RNQSwKLX07Ci0KLS8qIGw0X3drdXAgLT4gZ3BpbzIgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9o d21vZF9vY3BfaWYgb21hcDI0MjBfbDRfd2t1cF9fZ3BpbzIgPSB7Ci0JLm1hc3RlcgkJPSAmb21h cDJ4eHhfbDRfd2t1cF9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X2dwaW8yX2h3bW9kLAot CS5jbGsJCT0gImdwaW9zX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJf U0RNQSwKLX07Ci0KLS8qIGw0X3drdXAgLT4gZ3BpbzMgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9o d21vZF9vY3BfaWYgb21hcDI0MjBfbDRfd2t1cF9fZ3BpbzMgPSB7Ci0JLm1hc3RlcgkJPSAmb21h cDJ4eHhfbDRfd2t1cF9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X2dwaW8zX2h3bW9kLAot CS5jbGsJCT0gImdwaW9zX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJf U0RNQSwKLX07Ci0KLS8qIGw0X3drdXAgLT4gZ3BpbzQgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9o d21vZF9vY3BfaWYgb21hcDI0MjBfbDRfd2t1cF9fZ3BpbzQgPSB7Ci0JLm1hc3RlcgkJPSAmb21h cDJ4eHhfbDRfd2t1cF9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X2dwaW80X2h3bW9kLAot CS5jbGsJCT0gImdwaW9zX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJf U0RNQSwKLX07Ci0KLS8qIGw0X2NvcmUgLT4gbWFpbGJveCAqLwotc3RhdGljIHN0cnVjdCBvbWFw X2h3bW9kX29jcF9pZiBvbWFwMjQyMF9sNF9jb3JlX19tYWlsYm94ID0gewotCS5tYXN0ZXIJCT0g Jm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMjQyMF9tYWlsYm94X2h3 bW9kLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBs NF9jb3JlIC0+IG1jYnNwMSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFw MjQyMF9sNF9jb3JlX19tY2JzcDEgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9o d21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDIwX21jYnNwMV9od21vZCwKLQkuY2xrCQk9ICJtY2Jz cDFfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQot LyogbDRfY29yZSAtPiBtY2JzcDIgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYg b21hcDI0MjBfbDRfY29yZV9fbWNic3AyID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2w0X2Nv cmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMjQyMF9tY2JzcDJfaHdtb2QsCi0JLmNsawkJPSAi bWNic3AyX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07 Ci0KLS8qIGw0X2NvcmUgLT4gbXNkaTEgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3Bf aWYgb21hcDI0MjBfbDRfY29yZV9fbXNkaTEgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRf Y29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDIwX21zZGkxX2h3bW9kLAotCS5jbGsJCT0g Im1tY19pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19Owot Ci0vKiBsNF9jb3JlIC0+IGhkcTF3IGludGVyZmFjZSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3 bW9kX29jcF9pZiBvbWFwMjQyMF9sNF9jb3JlX19oZHExdyA9IHsKLQkubWFzdGVyCQk9ICZvbWFw Mnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDI0MjBfaGRxMXdfaHdtb2QsCi0J LmNsawkJPSAiaGRxX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RN QSwKLQkuZmxhZ3MJCT0gT01BUF9GSVJFV0FMTF9MNCB8IE9DUElGX1NXU1VQX0lETEUsCi19Owot Ci1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyNDIwX2wzX19ncG1jID0gewot CS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2wzX21haW5faHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMnh4 eF9ncG1jX2h3bW9kLAotCS5jbGsJCT0gImNvcmVfbDNfY2siLAotCS51c2VyCQk9IE9DUF9VU0VS X01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2Nw X2lmICpvbWFwMjQyMF9od21vZF9vY3BfaWZzW10gX19pbml0ZGF0YSA9IHsKLQkmb21hcDJ4eHhf bDNfbWFpbl9fbDRfY29yZSwKLQkmb21hcDJ4eHhfbXB1X19sM19tYWluLAotCSZvbWFwMnh4eF9k c3NfX2wzLAotCSZvbWFwMnh4eF9sNF9jb3JlX19tY3NwaTEsCi0JJm9tYXAyeHh4X2w0X2NvcmVf X21jc3BpMiwKLQkmb21hcDJ4eHhfbDRfY29yZV9fbDRfd2t1cCwKLQkmb21hcDJfbDRfY29yZV9f dWFydDEsCi0JJm9tYXAyX2w0X2NvcmVfX3VhcnQyLAotCSZvbWFwMl9sNF9jb3JlX191YXJ0MywK LQkmb21hcDI0MjBfbDRfY29yZV9faTJjMSwKLQkmb21hcDI0MjBfbDRfY29yZV9faTJjMiwKLQkm b21hcDI0MjBfbDNfX2l2YSwKLQkmb21hcDI0MjBfbDNfX2RzcCwKLQkmb21hcDJ4eHhfbDRfY29y ZV9fdGltZXIzLAotCSZvbWFwMnh4eF9sNF9jb3JlX190aW1lcjQsCi0JJm9tYXAyeHh4X2w0X2Nv cmVfX3RpbWVyNSwKLQkmb21hcDJ4eHhfbDRfY29yZV9fdGltZXI2LAotCSZvbWFwMnh4eF9sNF9j b3JlX190aW1lcjcsCi0JJm9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyOCwKLQkmb21hcDJ4eHhfbDRf Y29yZV9fdGltZXI5LAotCSZvbWFwMnh4eF9sNF9jb3JlX190aW1lcjEwLAotCSZvbWFwMnh4eF9s NF9jb3JlX190aW1lcjExLAotCSZvbWFwMnh4eF9sNF9jb3JlX190aW1lcjEyLAotCSZvbWFwMjQy MF9sNF93a3VwX193ZF90aW1lcjIsCi0JJm9tYXAyeHh4X2w0X2NvcmVfX2RzcywKLQkmb21hcDJ4 eHhfbDRfY29yZV9fZHNzX2Rpc3BjLAotCSZvbWFwMnh4eF9sNF9jb3JlX19kc3NfcmZiaSwKLQkm b21hcDJ4eHhfbDRfY29yZV9fZHNzX3ZlbmMsCi0JJm9tYXAyNDIwX2w0X3drdXBfX2dwaW8xLAot CSZvbWFwMjQyMF9sNF93a3VwX19ncGlvMiwKLQkmb21hcDI0MjBfbDRfd2t1cF9fZ3BpbzMsCi0J Jm9tYXAyNDIwX2w0X3drdXBfX2dwaW80LAotCSZvbWFwMjQyMF9sNF9jb3JlX19tYWlsYm94LAot CSZvbWFwMjQyMF9sNF9jb3JlX19tY2JzcDEsCi0JJm9tYXAyNDIwX2w0X2NvcmVfX21jYnNwMiwK LQkmb21hcDI0MjBfbDRfY29yZV9fbXNkaTEsCi0JJm9tYXAyeHh4X2w0X2NvcmVfX3JuZywKLQkm b21hcDJ4eHhfbDRfY29yZV9fc2hhbSwKLQkmb21hcDJ4eHhfbDRfY29yZV9fYWVzLAotCSZvbWFw MjQyMF9sNF9jb3JlX19oZHExdywKLQkmb21hcDI0MjBfbDNfX2dwbWMsCi0JTlVMTCwKLX07Ci0K LWludCBfX2luaXQgb21hcDI0MjBfaHdtb2RfaW5pdCh2b2lkKQotewotCW9tYXBfaHdtb2RfaW5p dCgpOwotCXJldHVybiBvbWFwX2h3bW9kX3JlZ2lzdGVyX2xpbmtzKG9tYXAyNDIwX2h3bW9kX29j cF9pZnMpOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzI0 MzBfZGF0YS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzI0MzBfZGF0YS5jCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTMyMDA4MDFiMzQuLjAwMDAwMDAwMDAwMAot LS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfMjQzMF9kYXRhLmMKKysrIC9kZXYv bnVsbApAQCAtMSw2MDYgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjAtb25seQotLyoKLSAqIG9tYXBfaHdtb2RfMjQzMF9kYXRhLmMgLSBoYXJkd2FyZSBtb2R1bGVz IHByZXNlbnQgb24gdGhlIE9NQVAyNDMwIGNoaXBzCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDA5 LTIwMTEgTm9raWEgQ29ycG9yYXRpb24KLSAqIENvcHlyaWdodCAoQykgMjAxMiBUZXhhcyBJbnN0 cnVtZW50cywgSW5jLgotICogUGF1bCBXYWxtc2xleQotICoKLSAqIFhYWCBoYW5kbGUgY3Jvc3Ni YXIvc2hhcmVkIGxpbmsgZGlmZmVyZW5jZSBmb3IgTDM/Ci0gKiBYWFggdGhlc2Ugc2hvdWxkIGJl IG1hcmtlZCBpbml0ZGF0YSBmb3IgbXVsdGktT01BUCBrZXJuZWxzCi0gKi8KLQotI2luY2x1ZGUg PGxpbnV4L3BsYXRmb3JtX2RhdGEvaTJjLW9tYXAuaD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9y bV9kYXRhL2hzbW1jLW9tYXAuaD4KLQotI2luY2x1ZGUgIm9tYXBfaHdtb2QuaCIKLSNpbmNsdWRl ICJsM18yeHh4LmgiCi0KLSNpbmNsdWRlICJzb2MuaCIKLSNpbmNsdWRlICJvbWFwX2h3bW9kX2Nv bW1vbl9kYXRhLmgiCi0jaW5jbHVkZSAicHJtLXJlZ2JpdHMtMjR4eC5oIgotI2luY2x1ZGUgImNt LXJlZ2JpdHMtMjR4eC5oIgotI2luY2x1ZGUgImkyYy5oIgotI2luY2x1ZGUgIndkX3RpbWVyLmgi Ci0KLS8qCi0gKiBPTUFQMjQzMCBoYXJkd2FyZSBtb2R1bGUgaW50ZWdyYXRpb24gZGF0YQotICoK LSAqIEFsbCBvZiB0aGUgZGF0YSBpbiB0aGlzIHNlY3Rpb24gc2hvdWxkIGJlIGF1dG9nZW5lcmF0 YWJsZSBmcm9tIHRoZQotICogVEkgaGFyZHdhcmUgZGF0YWJhc2Ugb3Igb3RoZXIgdGVjaG5pY2Fs IGRvY3VtZW50YXRpb24uICBEYXRhIHRoYXQKLSAqIGlzIGRyaXZlci1zcGVjaWZpYyBvciBkcml2 ZXIta2VybmVsIGludGVncmF0aW9uLXNwZWNpZmljIGJlbG9uZ3MKLSAqIGVsc2V3aGVyZS4KLSAq LwotCi0vKgotICogSVAgYmxvY2tzCi0gKi8KLQotLyogSVZBMiAoSVZBMikgKi8KLXN0YXRpYyBz dHJ1Y3Qgb21hcF9od21vZF9yc3RfaW5mbyBvbWFwMjQzMF9pdmFfcmVzZXRzW10gPSB7Ci0JeyAu bmFtZSA9ICJsb2dpYyIsIC5yc3Rfc2hpZnQgPSAwIH0sCi0JeyAubmFtZSA9ICJtbXUiLCAucnN0 X3NoaWZ0ID0gMSB9LAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyNDMwX2l2 YV9od21vZCA9IHsKLQkubmFtZQkJPSAiaXZhIiwKLQkuY2xhc3MJCT0gJml2YV9od21vZF9jbGFz cywKLQkuY2xrZG1fbmFtZQk9ICJkc3BfY2xrZG0iLAotCS5yc3RfbGluZXMJPSBvbWFwMjQzMF9p dmFfcmVzZXRzLAotCS5yc3RfbGluZXNfY250CT0gQVJSQVlfU0laRShvbWFwMjQzMF9pdmFfcmVz ZXRzKSwKLQkubWFpbl9jbGsJPSAiZHNwX2ZjayIsCi19OwotCi0vKiBJMkMgY29tbW9uICovCi1z dGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Nfc3lzY29uZmlnIGkyY19zeXNjID0gewotCS5y ZXZfb2Zmcwk9IDB4MDAsCi0JLnN5c2Nfb2Zmcwk9IDB4MjAsCi0JLnN5c3Nfb2Zmcwk9IDB4MTAs Ci0JLnN5c2NfZmxhZ3MJPSAoU1lTQ19IQVNfU09GVFJFU0VUIHwgU1lTQ19IQVNfQVVUT0lETEUg fAotCQkJICAgU1lTU19IQVNfUkVTRVRfU1RBVFVTKSwKLQkuc3lzY19maWVsZHMJPSAmb21hcF9o d21vZF9zeXNjX3R5cGUxLAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIGky Y19jbGFzcyA9IHsKLQkubmFtZQkJPSAiaTJjIiwKLQkuc3lzYwkJPSAmaTJjX3N5c2MsCi0JLnJl c2V0CQk9ICZvbWFwX2kyY19yZXNldCwKLX07Ci0KLS8qIEkyQzEgKi8KLXN0YXRpYyBzdHJ1Y3Qg b21hcF9od21vZCBvbWFwMjQzMF9pMmMxX2h3bW9kID0gewotCS5uYW1lCQk9ICJpMmMxIiwKLQku ZmxhZ3MJCT0gSFdNT0RfMTZCSVRfUkVHLAotCS5tYWluX2Nsawk9ICJpMmNoczFfZmNrIiwKLQku cHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS8qCi0JCQkgKiBOT1RFOiBUaGUgQ01fRkNMS0VO KiBhbmQgQ01fSUNMS0VOKiBmb3IKLQkJCSAqIEkyQ0hTIElQJ3MgZG8gbm90IGZvbGxvdyB0aGUg dXN1YWwgcGF0dGVybi4KLQkJCSAqIHByY21fcmVnX2lkIGFsb25lIGNhbm5vdCBiZSB1c2VkIHRv IHByb2dyYW0KLQkJCSAqIHRoZSBpY2xrIGFuZCBmY2xrLiBOZWVkcyB0byBiZSBoYW5kbGVkIHVz aW5nCi0JCQkgKiBhZGRpdGlvbmFsIGZsYWdzIHdoZW4gY2xrIGhhbmRsaW5nIGlzIG1vdmVkCi0J CQkgKiB0byBod21vZCBmcmFtZXdvcmsuCi0JCQkgKi8KLQkJCS5tb2R1bGVfb2ZmcyA9IENPUkVf TU9ELAotCQkJLmlkbGVzdF9yZWdfaWQgPSAxLAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9IE9NQVAy NDMwX1NUX0kyQ0hTMV9TSElGVCwKLQkJfSwKLQl9LAotCS5jbGFzcwkJPSAmaTJjX2NsYXNzLAot fTsKLQotLyogSTJDMiAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyNDMwX2kyYzJf aHdtb2QgPSB7Ci0JLm5hbWUJCT0gImkyYzIiLAotCS5mbGFncwkJPSBIV01PRF8xNkJJVF9SRUcs Ci0JLm1haW5fY2xrCT0gImkyY2hzMl9mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewot CQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCQku aWRsZXN0X2lkbGVfYml0ID0gT01BUDI0MzBfU1RfSTJDSFMyX1NISUZULAotCQl9LAotCX0sCi0J LmNsYXNzCQk9ICZpMmNfY2xhc3MsCi19OwotCi0vKiBncGlvNSAqLwotc3RhdGljIHN0cnVjdCBv bWFwX2h3bW9kIG9tYXAyNDMwX2dwaW81X2h3bW9kID0gewotCS5uYW1lCQk9ICJncGlvNSIsCi0J LmZsYWdzCQk9IEhXTU9EX0NPTlRST0xfT1BUX0NMS1NfSU5fUkVTRVQsCi0JLm1haW5fY2xrCT0g ImdwaW81X2ZjayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMg PSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMiwKLQkJCS5pZGxlc3RfaWRsZV9iaXQg PSBPTUFQMjQzMF9TVF9HUElPNV9TSElGVCwKLQkJfSwKLQl9LAotCS5jbGFzcwkJPSAmb21hcDJ4 eHhfZ3Bpb19od21vZF9jbGFzcywKLX07Ci0KLS8qIG1haWxib3ggKi8KLXN0YXRpYyBzdHJ1Y3Qg b21hcF9od21vZCBvbWFwMjQzMF9tYWlsYm94X2h3bW9kID0gewotCS5uYW1lCQk9ICJtYWlsYm94 IiwKLQkuY2xhc3MJCT0gJm9tYXAyeHh4X21haWxib3hfaHdtb2RfY2xhc3MsCi0JLm1haW5fY2xr CT0gIm1haWxib3hlc19pY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVs ZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCQkuaWRsZXN0X2lk bGVfYml0ID0gT01BUDI0WFhfU1RfTUFJTEJPWEVTX1NISUZULAotCQl9LAotCX0sCi19OwotCi0v KiBtY3NwaTMgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMjQzMF9tY3NwaTNfaHdt b2QgPSB7Ci0JLm5hbWUJCT0gIm1jc3BpMyIsCi0JLm1haW5fY2xrCT0gIm1jc3BpM19mY2siLAot CS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0J CQkuaWRsZXN0X3JlZ19pZCA9IDIsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0MzBfU1Rf TUNTUEkzX1NISUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZvbWFwMnh4eF9tY3NwaV9jbGFz cywKLX07Ci0KLS8qIHVzYmhzb3RnICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Nf c3lzY29uZmlnIG9tYXAyNDMwX3VzYmhzb3RnX3N5c2MgPSB7Ci0JLnJldl9vZmZzCT0gMHgwNDAw LAotCS5zeXNjX29mZnMJPSAweDA0MDQsCi0JLnN5c3Nfb2Zmcwk9IDB4MDQwOCwKLQkuc3lzY19m bGFncwk9IChTWVNDX0hBU19TSURMRU1PREUgfCBTWVNDX0hBU19NSURMRU1PREV8Ci0JCQkgIFNZ U0NfSEFTX0VOQVdBS0VVUCB8IFNZU0NfSEFTX1NPRlRSRVNFVCB8Ci0JCQkgIFNZU0NfSEFTX0FV VE9JRExFKSwKLQkuaWRsZW1vZGVzCT0gKFNJRExFX0ZPUkNFIHwgU0lETEVfTk8gfCBTSURMRV9T TUFSVCB8Ci0JCQkgIE1TVEFOREJZX0ZPUkNFIHwgTVNUQU5EQllfTk8gfCBNU1RBTkRCWV9TTUFS VCksCi0JLnN5c2NfZmllbGRzCT0gJm9tYXBfaHdtb2Rfc3lzY190eXBlMSwKLX07Ci0KLXN0YXRp YyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzcyB1c2JvdGdfY2xhc3MgPSB7Ci0JLm5hbWUgPSAidXNi b3RnIiwKLQkuc3lzYyA9ICZvbWFwMjQzMF91c2Joc290Z19zeXNjLAotfTsKLQotLyogdXNiX290 Z19ocyAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyNDMwX3VzYmhzb3RnX2h3bW9k ID0gewotCS5uYW1lCQk9ICJ1c2Jfb3RnX2hzIiwKLQkubWFpbl9jbGsJPSAidXNiaHNfaWNrIiwK LQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9IENPUkVfTU9ELAot CQkJLmlkbGVzdF9yZWdfaWQgPSAxLAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9IE9NQVAyNDMwX1NU X1VTQkhTX1NISUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZ1c2JvdGdfY2xhc3MsCi0JLyoK LQkgKiBFcnJhdHVtIElEOiBpNDc5ICBpZGxlX3JlcSAvIGlkbGVfYWNrIG1lY2hhbmlzbSBwb3Rl bnRpYWxseQotCSAqIGJyb2tlbiB3aGVuIGF1dG9pZGxlIGlzIGVuYWJsZWQKLQkgKiB3b3JrYXJv dW5kIGlzIHRvIGRpc2FibGUgdGhlIGF1dG9pZGxlIGJpdCBhdCBtb2R1bGUgbGV2ZWwuCi0JICov Ci0JLmZsYWdzCQk9IEhXTU9EX05PX09DUF9BVVRPSURMRSB8IEhXTU9EX1NXU1VQX1NJRExFCi0J CQkJfCBIV01PRF9TV1NVUF9NU1RBTkRCWSwKLX07Ci0KLS8qCi0gKiAnbWNic3AnIGNsYXNzCi0g KiBtdWx0aSBjaGFubmVsIGJ1ZmZlcmVkIHNlcmlhbCBwb3J0IGNvbnRyb2xsZXIKLSAqLwotCi1z dGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Nfc3lzY29uZmlnIG9tYXAyNDMwX21jYnNwX3N5 c2MgPSB7Ci0JLnJldl9vZmZzCT0gMHgwMDdDLAotCS5zeXNjX29mZnMJPSAweDAwOEMsCi0JLnN5 c2NfZmxhZ3MJPSAoU1lTQ19IQVNfU09GVFJFU0VUKSwKLQkuc3lzY19maWVsZHMgICAgPSAmb21h cF9od21vZF9zeXNjX3R5cGUxLAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNz IG9tYXAyNDMwX21jYnNwX2h3bW9kX2NsYXNzID0gewotCS5uYW1lID0gIm1jYnNwIiwKLQkuc3lz YyA9ICZvbWFwMjQzMF9tY2JzcF9zeXNjLAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9k X29wdF9jbGsgbWNic3Bfb3B0X2Nsa3NbXSA9IHsKLQl7IC5yb2xlID0gInBhZF9mY2siLCAuY2xr ID0gIm1jYnNwX2Nsa3MiIH0sCi0JeyAucm9sZSA9ICJwcmNtX2ZjayIsIC5jbGsgPSAiZnVuY185 Nm1fY2siIH0sCi19OwotCi0vKiBtY2JzcDEgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZCBv bWFwMjQzMF9tY2JzcDFfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwMSIsCi0JLmNsYXNzCQk9 ICZvbWFwMjQzMF9tY2JzcF9od21vZF9jbGFzcywKLQkubWFpbl9jbGsJPSAibWNic3AxX2ZjayIs Ci0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwK LQkJCS5pZGxlc3RfcmVnX2lkID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9T VF9NQ0JTUDFfU0hJRlQsCi0JCX0sCi0JfSwKLQkub3B0X2Nsa3MJPSBtY2JzcF9vcHRfY2xrcywK LQkub3B0X2Nsa3NfY250CT0gQVJSQVlfU0laRShtY2JzcF9vcHRfY2xrcyksCi19OwotCi0vKiBt Y2JzcDIgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMjQzMF9tY2JzcDJfaHdtb2Qg PSB7Ci0JLm5hbWUJCT0gIm1jYnNwMiIsCi0JLmNsYXNzCQk9ICZvbWFwMjQzMF9tY2JzcF9od21v ZF9jbGFzcywKLQkubWFpbl9jbGsJPSAibWNic3AyX2ZjayIsCi0JLnByY20JCT0gewotCQkub21h cDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0g MSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9NQ0JTUDJfU0hJRlQsCi0JCX0s Ci0JfSwKLQkub3B0X2Nsa3MJPSBtY2JzcF9vcHRfY2xrcywKLQkub3B0X2Nsa3NfY250CT0gQVJS QVlfU0laRShtY2JzcF9vcHRfY2xrcyksCi19OwotCi0vKiBtY2JzcDMgKi8KLXN0YXRpYyBzdHJ1 Y3Qgb21hcF9od21vZCBvbWFwMjQzMF9tY2JzcDNfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gIm1jYnNw MyIsCi0JLmNsYXNzCQk9ICZvbWFwMjQzMF9tY2JzcF9od21vZF9jbGFzcywKLQkubWFpbl9jbGsJ PSAibWNic3AzX2ZjayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29m ZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMiwKLQkJCS5pZGxlc3RfaWRsZV9i aXQgPSBPTUFQMjQzMF9TVF9NQ0JTUDNfU0hJRlQsCi0JCX0sCi0JfSwKLQkub3B0X2Nsa3MJPSBt Y2JzcF9vcHRfY2xrcywKLQkub3B0X2Nsa3NfY250CT0gQVJSQVlfU0laRShtY2JzcF9vcHRfY2xr cyksCi19OwotCi0vKiBtY2JzcDQgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMjQz MF9tY2JzcDRfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwNCIsCi0JLmNsYXNzCQk9ICZvbWFw MjQzMF9tY2JzcF9od21vZF9jbGFzcywKLQkubWFpbl9jbGsJPSAibWNic3A0X2ZjayIsCi0JLnBy Y20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5p ZGxlc3RfcmVnX2lkID0gMiwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjQzMF9TVF9NQ0JT UDRfU0hJRlQsCi0JCX0sCi0JfSwKLQkub3B0X2Nsa3MJPSBtY2JzcF9vcHRfY2xrcywKLQkub3B0 X2Nsa3NfY250CT0gQVJSQVlfU0laRShtY2JzcF9vcHRfY2xrcyksCi19OwotCi0vKiBtY2JzcDUg Ki8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMjQzMF9tY2JzcDVfaHdtb2QgPSB7Ci0J Lm5hbWUJCT0gIm1jYnNwNSIsCi0JLmNsYXNzCQk9ICZvbWFwMjQzMF9tY2JzcF9od21vZF9jbGFz cywKLQkubWFpbl9jbGsJPSAibWNic3A1X2ZjayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7 Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMiwKLQkJ CS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjQzMF9TVF9NQ0JTUDVfU0hJRlQsCi0JCX0sCi0JfSwK LQkub3B0X2Nsa3MJPSBtY2JzcF9vcHRfY2xrcywKLQkub3B0X2Nsa3NfY250CT0gQVJSQVlfU0la RShtY2JzcF9vcHRfY2xrcyksCi19OwotCi0vKiBNTUMvU0QvU0RJTyBjb21tb24gKi8KLXN0YXRp YyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzc19zeXNjb25maWcgb21hcDI0MzBfbW1jX3N5c2MgPSB7 Ci0JLnJldl9vZmZzCT0gMHgxZmMsCi0JLnN5c2Nfb2Zmcwk9IDB4MTAsCi0JLnN5c3Nfb2Zmcwk9 IDB4MTQsCi0JLnN5c2NfZmxhZ3MJPSAoU1lTQ19IQVNfQ0xPQ0tBQ1RJVklUWSB8IFNZU0NfSEFT X1NJRExFTU9ERSB8Ci0JCQkgICBTWVNDX0hBU19FTkFXQUtFVVAgfCBTWVNDX0hBU19TT0ZUUkVT RVQgfAotCQkJICAgU1lTQ19IQVNfQVVUT0lETEUgfCBTWVNTX0hBU19SRVNFVF9TVEFUVVMpLAot CS5pZGxlbW9kZXMJPSAoU0lETEVfRk9SQ0UgfCBTSURMRV9OTyB8IFNJRExFX1NNQVJUKSwKLQku c3lzY19maWVsZHMgICAgPSAmb21hcF9od21vZF9zeXNjX3R5cGUxLAotfTsKLQotc3RhdGljIHN0 cnVjdCBvbWFwX2h3bW9kX2NsYXNzIG9tYXAyNDMwX21tY19jbGFzcyA9IHsKLQkubmFtZSA9ICJt bWMiLAotCS5zeXNjID0gJm9tYXAyNDMwX21tY19zeXNjLAotfTsKLQotLyogTU1DL1NEL1NESU8x ICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb3B0X2NsayBvbWFwMjQzMF9tbWMxX29wdF9j bGtzW10gPSB7Ci0JeyAucm9sZSA9ICJkYmNrIiwgLmNsayA9ICJtbWNoc2RiMV9mY2siIH0sCi19 OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHNtbWNfZGV2X2F0dHIgbW1jMV9kZXZfYXR0ciA9IHsK LQkuZmxhZ3MgPSBPTUFQX0hTTU1DX1NVUFBPUlRTX0RVQUxfVk9MVCwKLX07Ci0KLXN0YXRpYyBz dHJ1Y3Qgb21hcF9od21vZCBvbWFwMjQzMF9tbWMxX2h3bW9kID0gewotCS5uYW1lCQk9ICJtbWMx IiwKLQkuZmxhZ3MJCT0gSFdNT0RfQ09OVFJPTF9PUFRfQ0xLU19JTl9SRVNFVCwKLQkub3B0X2Ns a3MJPSBvbWFwMjQzMF9tbWMxX29wdF9jbGtzLAotCS5vcHRfY2xrc19jbnQJPSBBUlJBWV9TSVpF KG9tYXAyNDMwX21tYzFfb3B0X2Nsa3MpLAotCS5tYWluX2Nsawk9ICJtbWNoczFfZmNrIiwKLQku cHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9IENPUkVfTU9ELAotCQkJ LmlkbGVzdF9yZWdfaWQgPSAyLAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9IE9NQVAyNDMwX1NUX01N Q0hTMV9TSElGVCwKLQkJfSwKLQl9LAotCS5kZXZfYXR0cgk9ICZtbWMxX2Rldl9hdHRyLAotCS5j bGFzcwkJPSAmb21hcDI0MzBfbW1jX2NsYXNzLAotfTsKLQotLyogTU1DL1NEL1NESU8yICovCi1z dGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb3B0X2NsayBvbWFwMjQzMF9tbWMyX29wdF9jbGtzW10g PSB7Ci0JeyAucm9sZSA9ICJkYmNrIiwgLmNsayA9ICJtbWNoc2RiMl9mY2siIH0sCi19OwotCi1z dGF0aWMgc3RydWN0IG9tYXBfaHdtb2Qgb21hcDI0MzBfbW1jMl9od21vZCA9IHsKLQkubmFtZQkJ PSAibW1jMiIsCi0JLmZsYWdzCQk9IEhXTU9EX0NPTlRST0xfT1BUX0NMS1NfSU5fUkVTRVQsCi0J Lm9wdF9jbGtzCT0gb21hcDI0MzBfbW1jMl9vcHRfY2xrcywKLQkub3B0X2Nsa3NfY250CT0gQVJS QVlfU0laRShvbWFwMjQzMF9tbWMyX29wdF9jbGtzKSwKLQkubWFpbl9jbGsJPSAibW1jaHMyX2Zj ayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01P RCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMiwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjQz MF9TVF9NTUNIUzJfU0hJRlQsCi0JCX0sCi0JfSwKLQkuY2xhc3MJCT0gJm9tYXAyNDMwX21tY19j bGFzcywKLX07Ci0KLS8qIEhEUTFXLzEtd2lyZSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9k IG9tYXAyNDMwX2hkcTF3X2h3bW9kID0gewotCS5uYW1lCQk9ICJoZHExdyIsCi0JLm1haW5fY2xr CT0gImhkcV9mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZz ID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCQkuaWRsZXN0X2lkbGVfYml0 ID0gT01BUDI0WFhfU1RfSERRX1NISUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZvbWFwMl9o ZHExd19jbGFzcywKLX07Ci0KLS8qCi0gKiBpbnRlcmZhY2VzCi0gKi8KLQotLyogTDMgLT4gTDRf Q09SRSBpbnRlcmZhY2UgKi8KLS8qIGwzX2NvcmUgLT4gdXNiaHNvdGcgIGludGVyZmFjZSAqLwot c3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF91c2Joc290Z19fbDMgPSB7 Ci0JLm1hc3RlcgkJPSAmb21hcDI0MzBfdXNiaHNvdGdfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFw Mnh4eF9sM19tYWluX2h3bW9kLAotCS5jbGsJCT0gImNvcmVfbDNfY2siLAotCS51c2VyCQk9IE9D UF9VU0VSX01QVSwKLX07Ci0KLS8qIEw0IENPUkUgLT4gSTJDMSBpbnRlcmZhY2UgKi8KLXN0YXRp YyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDI0MzBfbDRfY29yZV9faTJjMSA9IHsKLQku bWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDI0MzBf aTJjMV9od21vZCwKLQkuY2xrCQk9ICJpMmMxX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBV IHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIEw0IENPUkUgLT4gSTJDMiBpbnRlcmZhY2UgKi8K LXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDI0MzBfbDRfY29yZV9faTJjMiA9 IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21h cDI0MzBfaTJjMl9od21vZCwKLQkuY2xrCQk9ICJpMmMyX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VT RVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qICBsNF9jb3JlIC0+dXNiaHNvdGcgIGlu dGVyZmFjZSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sNF9j b3JlX191c2Joc290ZyA9IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAot CS5zbGF2ZQkJPSAmb21hcDI0MzBfdXNiaHNvdGdfaHdtb2QsCi0JLmNsawkJPSAidXNiX2w0X2lj ayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVLAotfTsKLQotLyogTDQgQ09SRSAtPiBNTUMxIGlu dGVyZmFjZSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sNF9j b3JlX19tbWMxID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNs YXZlCQk9ICZvbWFwMjQzMF9tbWMxX2h3bW9kLAotCS5jbGsJCT0gIm1tY2hzMV9pY2siLAotCS51 c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBMNCBDT1JFIC0+ IE1NQzIgaW50ZXJmYWNlICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAy NDMwX2w0X2NvcmVfX21tYzIgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21v ZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDMwX21tYzJfaHdtb2QsCi0JLmNsawkJPSAibW1jaHMyX2lj ayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0 IGNvcmUgLT4gbWNzcGkzIGludGVyZmFjZSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29j cF9pZiBvbWFwMjQzMF9sNF9jb3JlX19tY3NwaTMgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhf bDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDMwX21jc3BpM19od21vZCwKLQkuY2xr CQk9ICJtY3NwaTNfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1B LAotfTsKLQotLyogSVZBMiA8LSBMMyBpbnRlcmZhY2UgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9o d21vZF9vY3BfaWYgb21hcDI0MzBfbDNfX2l2YSA9IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9s M19tYWluX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDI0MzBfaXZhX2h3bW9kLAotCS5jbGsJCT0g ImNvcmVfbDNfY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19 OwotCi0vKiBsNF93a3VwIC0+IHdkX3RpbWVyMiAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9k X29jcF9pZiBvbWFwMjQzMF9sNF93a3VwX193ZF90aW1lcjIgPSB7Ci0JLm1hc3RlcgkJPSAmb21h cDJ4eHhfbDRfd2t1cF9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X3dkX3RpbWVyMl9od21v ZCwKLQkuY2xrCQk9ICJtcHVfd2R0X2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQ X1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0X3drdXAgLT4gZ3BpbzEgKi8KLXN0YXRpYyBzdHJ1Y3Qg b21hcF9od21vZF9vY3BfaWYgb21hcDI0MzBfbDRfd2t1cF9fZ3BpbzEgPSB7Ci0JLm1hc3RlcgkJ PSAmb21hcDJ4eHhfbDRfd2t1cF9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X2dwaW8xX2h3 bW9kLAotCS5jbGsJCT0gImdwaW9zX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQ X1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0X3drdXAgLT4gZ3BpbzIgKi8KLXN0YXRpYyBzdHJ1Y3Qg b21hcF9od21vZF9vY3BfaWYgb21hcDI0MzBfbDRfd2t1cF9fZ3BpbzIgPSB7Ci0JLm1hc3RlcgkJ PSAmb21hcDJ4eHhfbDRfd2t1cF9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X2dwaW8yX2h3 bW9kLAotCS5jbGsJCT0gImdwaW9zX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQ X1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0X3drdXAgLT4gZ3BpbzMgKi8KLXN0YXRpYyBzdHJ1Y3Qg b21hcF9od21vZF9vY3BfaWYgb21hcDI0MzBfbDRfd2t1cF9fZ3BpbzMgPSB7Ci0JLm1hc3RlcgkJ PSAmb21hcDJ4eHhfbDRfd2t1cF9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X2dwaW8zX2h3 bW9kLAotCS5jbGsJCT0gImdwaW9zX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQ X1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0X3drdXAgLT4gZ3BpbzQgKi8KLXN0YXRpYyBzdHJ1Y3Qg b21hcF9od21vZF9vY3BfaWYgb21hcDI0MzBfbDRfd2t1cF9fZ3BpbzQgPSB7Ci0JLm1hc3RlcgkJ PSAmb21hcDJ4eHhfbDRfd2t1cF9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X2dwaW80X2h3 bW9kLAotCS5jbGsJCT0gImdwaW9zX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQ X1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0X2NvcmUgLT4gZ3BpbzUgKi8KLXN0YXRpYyBzdHJ1Y3Qg b21hcF9od21vZF9vY3BfaWYgb21hcDI0MzBfbDRfY29yZV9fZ3BpbzUgPSB7Ci0JLm1hc3RlcgkJ PSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDMwX2dwaW81X2h3 bW9kLAotCS5jbGsJCT0gImdwaW81X2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQ X1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0X2NvcmUgLT4gbWFpbGJveCAqLwotc3RhdGljIHN0cnVj dCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sNF9jb3JlX19tYWlsYm94ID0gewotCS5tYXN0 ZXIJCT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMjQzMF9tYWls Ym94X2h3bW9kLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19Owot Ci0vKiBsNF9jb3JlIC0+IG1jYnNwMSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9p ZiBvbWFwMjQzMF9sNF9jb3JlX19tY2JzcDEgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRf Y29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDMwX21jYnNwMV9od21vZCwKLQkuY2xrCQk9 ICJtY2JzcDFfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAot fTsKLQotLyogbDRfY29yZSAtPiBtY2JzcDIgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9v Y3BfaWYgb21hcDI0MzBfbDRfY29yZV9fbWNic3AyID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4 X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMjQzMF9tY2JzcDJfaHdtb2QsCi0JLmNs awkJPSAibWNic3AyX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RN QSwKLX07Ci0KLS8qIGw0X2NvcmUgLT4gbWNic3AzICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdt b2Rfb2NwX2lmIG9tYXAyNDMwX2w0X2NvcmVfX21jYnNwMyA9IHsKLQkubWFzdGVyCQk9ICZvbWFw Mnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDI0MzBfbWNic3AzX2h3bW9kLAot CS5jbGsJCT0gIm1jYnNwM19pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VS X1NETUEsCi19OwotCi0vKiBsNF9jb3JlIC0+IG1jYnNwNCAqLwotc3RhdGljIHN0cnVjdCBvbWFw X2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sNF9jb3JlX19tY2JzcDQgPSB7Ci0JLm1hc3RlcgkJPSAm b21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDMwX21jYnNwNF9od21v ZCwKLQkuY2xrCQk9ICJtY2JzcDRfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1Bf VVNFUl9TRE1BLAotfTsKLQotLyogbDRfY29yZSAtPiBtY2JzcDUgKi8KLXN0YXRpYyBzdHJ1Y3Qg b21hcF9od21vZF9vY3BfaWYgb21hcDI0MzBfbDRfY29yZV9fbWNic3A1ID0gewotCS5tYXN0ZXIJ CT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMjQzMF9tY2JzcDVf aHdtb2QsCi0JLmNsawkJPSAibWNic3A1X2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwg T0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0X2NvcmUgLT4gaGRxMXcgKi8KLXN0YXRpYyBzdHJ1 Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDI0MzBfbDRfY29yZV9faGRxMXcgPSB7Ci0JLm1hc3Rl cgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDMwX2hkcTF3 X2h3bW9kLAotCS5jbGsJCT0gImhkcV9pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9D UF9VU0VSX1NETUEsCi0JLmZsYWdzCQk9IE9NQVBfRklSRVdBTExfTDQgfCBPQ1BJRl9TV1NVUF9J RExFLAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sM19f Z3BtYyA9IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sM19tYWluX2h3bW9kLAotCS5zbGF2ZQkJ PSAmb21hcDJ4eHhfZ3BtY19od21vZCwKLQkuY2xrCQk9ICJjb3JlX2wzX2NrIiwKLQkudXNlcgkJ PSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFw X2h3bW9kX29jcF9pZiAqb21hcDI0MzBfaHdtb2Rfb2NwX2lmc1tdIF9faW5pdGRhdGEgPSB7Ci0J Jm9tYXAyeHh4X2wzX21haW5fX2w0X2NvcmUsCi0JJm9tYXAyeHh4X21wdV9fbDNfbWFpbiwKLQkm b21hcDJ4eHhfZHNzX19sMywKLQkmb21hcDI0MzBfdXNiaHNvdGdfX2wzLAotCSZvbWFwMjQzMF9s NF9jb3JlX19pMmMxLAotCSZvbWFwMjQzMF9sNF9jb3JlX19pMmMyLAotCSZvbWFwMnh4eF9sNF9j b3JlX19sNF93a3VwLAotCSZvbWFwMl9sNF9jb3JlX191YXJ0MSwKLQkmb21hcDJfbDRfY29yZV9f dWFydDIsCi0JJm9tYXAyX2w0X2NvcmVfX3VhcnQzLAotCSZvbWFwMjQzMF9sNF9jb3JlX191c2Jo c290ZywKLQkmb21hcDI0MzBfbDRfY29yZV9fbW1jMSwKLQkmb21hcDI0MzBfbDRfY29yZV9fbW1j MiwKLQkmb21hcDJ4eHhfbDRfY29yZV9fbWNzcGkxLAotCSZvbWFwMnh4eF9sNF9jb3JlX19tY3Nw aTIsCi0JJm9tYXAyNDMwX2w0X2NvcmVfX21jc3BpMywKLQkmb21hcDI0MzBfbDNfX2l2YSwKLQkm b21hcDJ4eHhfbDRfY29yZV9fdGltZXIzLAotCSZvbWFwMnh4eF9sNF9jb3JlX190aW1lcjQsCi0J Jm9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyNSwKLQkmb21hcDJ4eHhfbDRfY29yZV9fdGltZXI2LAot CSZvbWFwMnh4eF9sNF9jb3JlX190aW1lcjcsCi0JJm9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyOCwK LQkmb21hcDJ4eHhfbDRfY29yZV9fdGltZXI5LAotCSZvbWFwMnh4eF9sNF9jb3JlX190aW1lcjEw LAotCSZvbWFwMnh4eF9sNF9jb3JlX190aW1lcjExLAotCSZvbWFwMnh4eF9sNF9jb3JlX190aW1l cjEyLAotCSZvbWFwMjQzMF9sNF93a3VwX193ZF90aW1lcjIsCi0JJm9tYXAyeHh4X2w0X2NvcmVf X2RzcywKLQkmb21hcDJ4eHhfbDRfY29yZV9fZHNzX2Rpc3BjLAotCSZvbWFwMnh4eF9sNF9jb3Jl X19kc3NfcmZiaSwKLQkmb21hcDJ4eHhfbDRfY29yZV9fZHNzX3ZlbmMsCi0JJm9tYXAyNDMwX2w0 X3drdXBfX2dwaW8xLAotCSZvbWFwMjQzMF9sNF93a3VwX19ncGlvMiwKLQkmb21hcDI0MzBfbDRf d2t1cF9fZ3BpbzMsCi0JJm9tYXAyNDMwX2w0X3drdXBfX2dwaW80LAotCSZvbWFwMjQzMF9sNF9j b3JlX19ncGlvNSwKLQkmb21hcDI0MzBfbDRfY29yZV9fbWFpbGJveCwKLQkmb21hcDI0MzBfbDRf Y29yZV9fbWNic3AxLAotCSZvbWFwMjQzMF9sNF9jb3JlX19tY2JzcDIsCi0JJm9tYXAyNDMwX2w0 X2NvcmVfX21jYnNwMywKLQkmb21hcDI0MzBfbDRfY29yZV9fbWNic3A0LAotCSZvbWFwMjQzMF9s NF9jb3JlX19tY2JzcDUsCi0JJm9tYXAyNDMwX2w0X2NvcmVfX2hkcTF3LAotCSZvbWFwMnh4eF9s NF9jb3JlX19ybmcsCi0JJm9tYXAyeHh4X2w0X2NvcmVfX3NoYW0sCi0JJm9tYXAyeHh4X2w0X2Nv cmVfX2FlcywKLQkmb21hcDI0MzBfbDNfX2dwbWMsCi0JTlVMTCwKLX07Ci0KLWludCBfX2luaXQg b21hcDI0MzBfaHdtb2RfaW5pdCh2b2lkKQotewotCW9tYXBfaHdtb2RfaW5pdCgpOwotCXJldHVy biBvbWFwX2h3bW9kX3JlZ2lzdGVyX2xpbmtzKG9tYXAyNDMwX2h3bW9kX29jcF9pZnMpOwotfQpk aWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzJ4eHhfaW50ZXJjb25u ZWN0X2RhdGEuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF8yeHh4X2ludGVyY29u bmVjdF9kYXRhLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2MWQzNDkxNGVkOS4u MDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF8yeHh4X2lu dGVyY29ubmVjdF9kYXRhLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyNTYgKzAsMCBAQAotLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIG9tYXBfaHdtb2RfMnh4 eF9pbnRlcmNvbm5lY3RfZGF0YS5jIC0gY29tbW9uIGludGVyY29ubmVjdCBkYXRhIGZvciBPTUFQ Mnh4eAotICoKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDExIE5va2lhIENvcnBvcmF0aW9uCi0g KiBQYXVsIFdhbG1zbGV5Ci0gKgotICogWFhYIGhhbmRsZSBjcm9zc2Jhci9zaGFyZWQgbGluayBk aWZmZXJlbmNlIGZvciBMMz8KLSAqIFhYWCB0aGVzZSBzaG91bGQgYmUgbWFya2VkIGluaXRkYXRh IGZvciBtdWx0aS1PTUFQIGtlcm5lbHMKLSAqLwotI2luY2x1ZGUgPGxpbnV4L3NpemVzLmg+Ci0K LSNpbmNsdWRlICJvbWFwX2h3bW9kLmgiCi0jaW5jbHVkZSAibDNfMnh4eC5oIgotI2luY2x1ZGUg Imw0XzJ4eHguaCIKLQotI2luY2x1ZGUgIm9tYXBfaHdtb2RfY29tbW9uX2RhdGEuaCIKLQotLyoK LSAqIENvbW1vbiBpbnRlcmNvbm5lY3QgZGF0YQotICovCi0KLS8qIEwzIC0+IEw0X0NPUkUgaW50 ZXJmYWNlICovCi1zdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbDNfbWFpbl9fbDRf Y29yZSA9IHsKLQkubWFzdGVyCT0gJm9tYXAyeHh4X2wzX21haW5faHdtb2QsCi0JLnNsYXZlCT0g Jm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnVzZXIJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNF Ul9TRE1BLAotfTsKLQotLyogTVBVIC0+IEwzIGludGVyZmFjZSAqLwotc3RydWN0IG9tYXBfaHdt b2Rfb2NwX2lmIG9tYXAyeHh4X21wdV9fbDNfbWFpbiA9IHsKLQkubWFzdGVyID0gJm9tYXAyeHh4 X21wdV9od21vZCwKLQkuc2xhdmUJPSAmb21hcDJ4eHhfbDNfbWFpbl9od21vZCwKLQkudXNlcgk9 IE9DUF9VU0VSX01QVSwKLX07Ci0KLS8qIERTUyAtPiBsMyAqLwotc3RydWN0IG9tYXBfaHdtb2Rf b2NwX2lmIG9tYXAyeHh4X2Rzc19fbDMgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfZHNzX2Nv cmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMnh4eF9sM19tYWluX2h3bW9kLAotCS5mdyA9IHsK LQkJLm9tYXAyID0gewotCQkJLmwzX3Blcm1fYml0ICA9IE9NQVAyX0wzX0NPUkVfRldfQ09OTklE X0RTUywKLQkJCS5mbGFncwk9IE9NQVBfRklSRVdBTExfTDMsCi0JCX0sCi0JfSwKLQkudXNlcgkJ PSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogTDRfQ09SRSAtPiBMNF9X S1VQIGludGVyZmFjZSAqLwotc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2Nv cmVfX2w0X3drdXAgPSB7Ci0JLm1hc3Rlcgk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5z bGF2ZQk9ICZvbWFwMnh4eF9sNF93a3VwX2h3bW9kLAotCS51c2VyCT0gT0NQX1VTRVJfTVBVIHwg T0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIEw0IENPUkUgLT4gVUFSVDEgaW50ZXJmYWNlICovCi1z dHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJfbDRfY29yZV9fdWFydDEgPSB7Ci0JLm1hc3Rl cgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X3VhcnQx X2h3bW9kLAotCS5jbGsJCT0gInVhcnQxX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwg T0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIEw0IENPUkUgLT4gVUFSVDIgaW50ZXJmYWNlICovCi1z dHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJfbDRfY29yZV9fdWFydDIgPSB7Ci0JLm1hc3Rl cgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X3VhcnQy X2h3bW9kLAotCS5jbGsJCT0gInVhcnQyX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwg T0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIEw0IFBFUiAtPiBVQVJUMyBpbnRlcmZhY2UgKi8KLXN0 cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMl9sNF9jb3JlX191YXJ0MyA9IHsKLQkubWFzdGVy CQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfdWFydDNf aHdtb2QsCi0JLmNsawkJPSAidWFydDNfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBP Q1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDQgY29yZSAtPiBtY3NwaTEgaW50ZXJmYWNlICovCi1z dHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbDRfY29yZV9fbWNzcGkxID0gewotCS5t YXN0ZXIJCT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMnh4eF9t Y3NwaTFfaHdtb2QsCi0JLmNsawkJPSAibWNzcGkxX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJf TVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0IGNvcmUgLT4gbWNzcGkyIGludGVyZmFj ZSAqLwotc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX21jc3BpMiA9 IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21h cDJ4eHhfbWNzcGkyX2h3bW9kLAotCS5jbGsJCT0gIm1jc3BpMl9pY2siLAotCS51c2VyCQk9IE9D UF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsNF9jb3JlIC0+IHRpbWVyMyAq Lwotc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyMyA9IHsK LQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4 eHhfdGltZXIzX2h3bW9kLAotCS5jbGsJCT0gImdwdDNfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNF Ul9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfY29yZSAtPiB0aW1lcjQgKi8KLXN0 cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX190aW1lcjQgPSB7Ci0JLm1h c3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X3Rp bWVyNF9od21vZCwKLQkuY2xrCQk9ICJncHQ0X2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBV IHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0X2NvcmUgLT4gdGltZXI1ICovCi1zdHJ1Y3Qg b21hcF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbDRfY29yZV9fdGltZXI1ID0gewotCS5tYXN0ZXIJ CT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMnh4eF90aW1lcjVf aHdtb2QsCi0JLmNsawkJPSAiZ3B0NV9pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9D UF9VU0VSX1NETUEsCi19OwotCi0vKiBsNF9jb3JlIC0+IHRpbWVyNiAqLwotc3RydWN0IG9tYXBf aHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyNiA9IHsKLQkubWFzdGVyCQk9ICZv bWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfdGltZXI2X2h3bW9k LAotCS5jbGsJCT0gImdwdDZfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNF Ul9TRE1BLAotfTsKLQotLyogbDRfY29yZSAtPiB0aW1lcjcgKi8KLXN0cnVjdCBvbWFwX2h3bW9k X29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX190aW1lcjcgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4 eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X3RpbWVyN19od21vZCwKLQku Y2xrCQk9ICJncHQ3X2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RN QSwKLX07Ci0KLS8qIGw0X2NvcmUgLT4gdGltZXI4ICovCi1zdHJ1Y3Qgb21hcF9od21vZF9vY3Bf aWYgb21hcDJ4eHhfbDRfY29yZV9fdGltZXI4ID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2w0 X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMnh4eF90aW1lcjhfaHdtb2QsCi0JLmNsawkJ PSAiZ3B0OF9pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19 OwotCi0vKiBsNF9jb3JlIC0+IHRpbWVyOSAqLwotc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9t YXAyeHh4X2w0X2NvcmVfX3RpbWVyOSA9IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9jb3Jl X2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfdGltZXI5X2h3bW9kLAotCS5jbGsJCT0gImdw dDlfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQot LyogbDRfY29yZSAtPiB0aW1lcjEwICovCi1zdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4 eHhfbDRfY29yZV9fdGltZXIxMCA9IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3 bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfdGltZXIxMF9od21vZCwKLQkuY2xrCQk9ICJncHQx MF9pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0v KiBsNF9jb3JlIC0+IHRpbWVyMTEgKi8KLXN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4 eF9sNF9jb3JlX190aW1lcjExID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdt b2QsCi0JLnNsYXZlCQk9ICZvbWFwMnh4eF90aW1lcjExX2h3bW9kLAotCS5jbGsJCT0gImdwdDEx X2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8q IGw0X2NvcmUgLT4gdGltZXIxMiAqLwotc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4 X2w0X2NvcmVfX3RpbWVyMTIgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21v ZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X3RpbWVyMTJfaHdtb2QsCi0JLmNsawkJPSAiZ3B0MTJf aWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyog bDRfY29yZSAtPiBkc3MgKi8KLXN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9j b3JlX19kc3MgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xh dmUJCT0gJm9tYXAyeHh4X2Rzc19jb3JlX2h3bW9kLAotCS5jbGsJCT0gImRzc19pY2siLAotCS5m dyA9IHsKLQkJLm9tYXAyID0gewotCQkJLmw0X2Z3X3JlZ2lvbiAgPSBPTUFQMjQyMF9MNF9DT1JF X0ZXX0RTU19DT1JFX1JFR0lPTiwKLQkJCS5mbGFncwk9IE9NQVBfRklSRVdBTExfTDQsCi0JCX0s Ci0JfSwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyog bDRfY29yZSAtPiBkc3NfZGlzcGMgKi8KLXN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4 eF9sNF9jb3JlX19kc3NfZGlzcGMgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9o d21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X2Rzc19kaXNwY19od21vZCwKLQkuY2xrCQk9ICJk c3NfaWNrIiwKLQkuZncgPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5sNF9md19yZWdpb24gID0gT01B UDI0MjBfTDRfQ09SRV9GV19EU1NfRElTUENfUkVHSU9OLAotCQkJLmZsYWdzCT0gT01BUF9GSVJF V0FMTF9MNCwKLQkJfSwKLQl9LAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NE TUEsCi19OwotCi0vKiBsNF9jb3JlIC0+IGRzc19yZmJpICovCi1zdHJ1Y3Qgb21hcF9od21vZF9v Y3BfaWYgb21hcDJ4eHhfbDRfY29yZV9fZHNzX3JmYmkgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4 eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X2Rzc19yZmJpX2h3bW9kLAot CS5jbGsJCT0gImRzc19pY2siLAotCS5mdyA9IHsKLQkJLm9tYXAyID0gewotCQkJLmw0X2Z3X3Jl Z2lvbiAgPSBPTUFQMjQyMF9MNF9DT1JFX0ZXX0RTU19DT1JFX1JFR0lPTiwKLQkJCS5mbGFncwk9 IE9NQVBfRklSRVdBTExfTDQsCi0JCX0sCi0JfSwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBP Q1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfY29yZSAtPiBkc3NfdmVuYyAqLwotc3RydWN0IG9t YXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX2Rzc192ZW5jID0gewotCS5tYXN0ZXIJ CT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMnh4eF9kc3NfdmVu Y19od21vZCwKLQkuY2xrCQk9ICJkc3NfaWNrIiwKLQkuZncgPSB7Ci0JCS5vbWFwMiA9IHsKLQkJ CS5sNF9md19yZWdpb24gID0gT01BUDI0MjBfTDRfQ09SRV9GV19EU1NfVkVOQ19SRUdJT04sCi0J CQkuZmxhZ3MJPSBPTUFQX0ZJUkVXQUxMX0w0LAotCQl9LAotCX0sCi0JLmZsYWdzCQk9IE9DUElG X1NXU1VQX0lETEUsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07 Ci0KLS8qIGw0X2NvcmUgLT4gcm5nICovCi1zdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4 eHhfbDRfY29yZV9fcm5nID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2Qs Ci0JLnNsYXZlCQk9ICZvbWFwMnh4eF9ybmdfaHdtb2QsCi0JLmNsawkJPSAicm5nX2ljayIsCi0J LnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0IGNvcmUg LT4gc2hhbSBpbnRlcmZhY2UgKi8KLXN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9s NF9jb3JlX19zaGFtID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0J LnNsYXZlCQk9ICZvbWFwMnh4eF9zaGFtX2h3bW9kLAotCS5jbGsJCT0gInNoYV9pY2siLAotCS51 c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsNCBjb3JlIC0+ IGFlcyBpbnRlcmZhY2UgKi8KLXN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9j b3JlX19hZXMgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xh dmUJCT0gJm9tYXAyeHh4X2Flc19od21vZCwKLQkuY2xrCQk9ICJhZXNfaWNrIiwKLQkudXNlcgkJ PSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJt L21hY2gtb21hcDIvb21hcF9od21vZF8yeHh4X2lwYmxvY2tfZGF0YS5jIGIvYXJjaC9hcm0vbWFj aC1vbWFwMi9vbWFwX2h3bW9kXzJ4eHhfaXBibG9ja19kYXRhLmMKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDQ5ODJlMDRlYWQ1My4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21h Y2gtb21hcDIvb21hcF9od21vZF8yeHh4X2lwYmxvY2tfZGF0YS5jCisrKyAvZGV2L251bGwKQEAg LTEsNjY4ICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkK LS8qCi0gKiBvbWFwX2h3bW9kXzJ4eHhfaXBibG9ja19kYXRhLmMgLSBjb21tb24gSVAgYmxvY2sg ZGF0YSBmb3IgT01BUDJ4eHgKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9y YXRpb24KLSAqIFBhdWwgV2FsbXNsZXkKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4K LQotI2luY2x1ZGUgIm9tYXBfaHdtb2QuaCIKLSNpbmNsdWRlICJvbWFwX2h3bW9kX2NvbW1vbl9k YXRhLmgiCi0jaW5jbHVkZSAiY20tcmVnYml0cy0yNHh4LmgiCi0jaW5jbHVkZSAicHJtLXJlZ2Jp dHMtMjR4eC5oIgotI2luY2x1ZGUgIndkX3RpbWVyLmgiCi0KLS8qCi0gKiAnZGlzcGMnIGNsYXNz Ci0gKiBkaXNwbGF5IGNvbnRyb2xsZXIKLSAqLwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rf Y2xhc3Nfc3lzY29uZmlnIG9tYXAyX2Rpc3BjX3N5c2MgPSB7Ci0JLnJldl9vZmZzCT0gMHgwMDAw LAotCS5zeXNjX29mZnMJPSAweDAwMTAsCi0JLnN5c3Nfb2Zmcwk9IDB4MDAxNCwKLQkuc3lzY19m bGFncwk9IChTWVNDX0hBU19TSURMRU1PREUgfCBTWVNDX0hBU19NSURMRU1PREUgfAotCQkJICAg U1lTQ19IQVNfU09GVFJFU0VUIHwgU1lTQ19IQVNfQVVUT0lETEUpLAotCS5pZGxlbW9kZXMJPSAo U0lETEVfRk9SQ0UgfCBTSURMRV9OTyB8IFNJRExFX1NNQVJUIHwKLQkJCSAgIE1TVEFOREJZX0ZP UkNFIHwgTVNUQU5EQllfTk8gfCBNU1RBTkRCWV9TTUFSVCksCi0JLnN5c2NfZmllbGRzCT0gJm9t YXBfaHdtb2Rfc3lzY190eXBlMSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFz cyBvbWFwMl9kaXNwY19od21vZF9jbGFzcyA9IHsKLQkubmFtZQk9ICJkaXNwYyIsCi0JLnN5c2MJ PSAmb21hcDJfZGlzcGNfc3lzYywKLX07Ci0KLS8qIE9NQVAyeHh4IFRpbWVyIENvbW1vbiAqLwot c3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzX3N5c2NvbmZpZyBvbWFwMnh4eF90aW1lcl9z eXNjID0gewotCS5yZXZfb2Zmcwk9IDB4MDAwMCwKLQkuc3lzY19vZmZzCT0gMHgwMDEwLAotCS5z eXNzX29mZnMJPSAweDAwMTQsCi0JLnN5c2NfZmxhZ3MJPSAoU1lTQ19IQVNfU0lETEVNT0RFIHwg U1lTQ19IQVNfQ0xPQ0tBQ1RJVklUWSB8Ci0JCQkgICBTWVNDX0hBU19FTkFXQUtFVVAgfCBTWVND X0hBU19TT0ZUUkVTRVQgfAotCQkJICAgU1lTQ19IQVNfQVVUT0lETEUgfCBTWVNTX0hBU19SRVNF VF9TVEFUVVMpLAotCS5pZGxlbW9kZXMJPSAoU0lETEVfRk9SQ0UgfCBTSURMRV9OTyB8IFNJRExF X1NNQVJUKSwKLQkuc3lzY19maWVsZHMJPSAmb21hcF9od21vZF9zeXNjX3R5cGUxLAotfTsKLQot c3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIG9tYXAyeHh4X3RpbWVyX2h3bW9kX2NsYXNz ID0gewotCS5uYW1lCT0gInRpbWVyIiwKLQkuc3lzYwk9ICZvbWFwMnh4eF90aW1lcl9zeXNjLAot fTsKLQotLyoKLSAqICd3ZF90aW1lcicgY2xhc3MKLSAqIDMyLWJpdCB3YXRjaGRvZyB1cHdhcmQg Y291bnRlciB0aGF0IGdlbmVyYXRlcyBhIHB1bHNlIG9uIHRoZSByZXNldCBwaW4gb24KLSAqIG92 ZXJmbG93IGNvbmRpdGlvbgotICovCi0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzc19z eXNjb25maWcgb21hcDJ4eHhfd2RfdGltZXJfc3lzYyA9IHsKLQkucmV2X29mZnMJPSAweDAwMDAs Ci0JLnN5c2Nfb2Zmcwk9IDB4MDAxMCwKLQkuc3lzc19vZmZzCT0gMHgwMDE0LAotCS5zeXNjX2Zs YWdzCT0gKFNZU0NfSEFTX0VNVUZSRUUgfCBTWVNDX0hBU19TT0ZUUkVTRVQgfAotCQkJICAgU1lT Q19IQVNfQVVUT0lETEUgfCBTWVNTX0hBU19SRVNFVF9TVEFUVVMpLAotCS5zeXNjX2ZpZWxkcwk9 ICZvbWFwX2h3bW9kX3N5c2NfdHlwZTEsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rf Y2xhc3Mgb21hcDJ4eHhfd2RfdGltZXJfaHdtb2RfY2xhc3MgPSB7Ci0JLm5hbWUJCT0gIndkX3Rp bWVyIiwKLQkuc3lzYwkJPSAmb21hcDJ4eHhfd2RfdGltZXJfc3lzYywKLQkucHJlX3NodXRkb3du CT0gJm9tYXAyX3dkX3RpbWVyX2Rpc2FibGUsCi0JLnJlc2V0CQk9ICZvbWFwMl93ZF90aW1lcl9y ZXNldCwKLX07Ci0KLS8qCi0gKiAnZ3BpbycgY2xhc3MKLSAqIGdlbmVyYWwgcHVycG9zZSBpbyBt b2R1bGUKLSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzX3N5c2NvbmZpZyBvbWFw Mnh4eF9ncGlvX3N5c2MgPSB7Ci0JLnJldl9vZmZzCT0gMHgwMDAwLAotCS5zeXNjX29mZnMJPSAw eDAwMTAsCi0JLnN5c3Nfb2Zmcwk9IDB4MDAxNCwKLQkuc3lzY19mbGFncwk9IChTWVNDX0hBU19F TkFXQUtFVVAgfCBTWVNDX0hBU19TSURMRU1PREUgfAotCQkJICAgU1lTQ19IQVNfU09GVFJFU0VU IHwgU1lTQ19IQVNfQVVUT0lETEUgfAotCQkJICAgU1lTU19IQVNfUkVTRVRfU1RBVFVTKSwKLQku aWRsZW1vZGVzCT0gKFNJRExFX0ZPUkNFIHwgU0lETEVfTk8gfCBTSURMRV9TTUFSVCksCi0JLnN5 c2NfZmllbGRzCT0gJm9tYXBfaHdtb2Rfc3lzY190eXBlMSwKLX07Ci0KLXN0cnVjdCBvbWFwX2h3 bW9kX2NsYXNzIG9tYXAyeHh4X2dwaW9faHdtb2RfY2xhc3MgPSB7Ci0JLm5hbWUgPSAiZ3BpbyIs Ci0JLnN5c2MgPSAmb21hcDJ4eHhfZ3Bpb19zeXNjLAotfTsKLQotLyoKLSAqICdtYWlsYm94JyBj bGFzcwotICogbWFpbGJveCBtb2R1bGUgYWxsb3dpbmcgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHRo ZSBvbi1jaGlwIHByb2Nlc3NvcnMKLSAqIHVzaW5nIGEgcXVldWVkIG1haWxib3gtaW50ZXJydXB0 IG1lY2hhbmlzbS4KLSAqLwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Nfc3lzY29u ZmlnIG9tYXAyeHh4X21haWxib3hfc3lzYyA9IHsKLQkucmV2X29mZnMJPSAweDAwMCwKLQkuc3lz Y19vZmZzCT0gMHgwMTAsCi0JLnN5c3Nfb2Zmcwk9IDB4MDE0LAotCS5zeXNjX2ZsYWdzCT0gKFNZ U0NfSEFTX0NMT0NLQUNUSVZJVFkgfCBTWVNDX0hBU19TSURMRU1PREUgfAotCQkJICAgU1lTQ19I QVNfU09GVFJFU0VUIHwgU1lTQ19IQVNfQVVUT0lETEUpLAotCS5pZGxlbW9kZXMJPSAoU0lETEVf Rk9SQ0UgfCBTSURMRV9OTyB8IFNJRExFX1NNQVJUKSwKLQkuc3lzY19maWVsZHMJPSAmb21hcF9o d21vZF9zeXNjX3R5cGUxLAotfTsKLQotc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Mgb21hcDJ4eHhf bWFpbGJveF9od21vZF9jbGFzcyA9IHsKLQkubmFtZQk9ICJtYWlsYm94IiwKLQkuc3lzYwk9ICZv bWFwMnh4eF9tYWlsYm94X3N5c2MsCi19OwotCi0vKgotICogJ21jc3BpJyBjbGFzcwotICogbXVs dGljaGFubmVsIHNlcmlhbCBwb3J0IGludGVyZmFjZSAobWNzcGkpIC8gbWFzdGVyL3NsYXZlIHN5 bmNocm9ub3VzIHNlcmlhbAotICogYnVzCi0gKi8KLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9k X2NsYXNzX3N5c2NvbmZpZyBvbWFwMnh4eF9tY3NwaV9zeXNjID0gewotCS5yZXZfb2Zmcwk9IDB4 MDAwMCwKLQkuc3lzY19vZmZzCT0gMHgwMDEwLAotCS5zeXNzX29mZnMJPSAweDAwMTQsCi0JLnN5 c2NfZmxhZ3MJPSAoU1lTQ19IQVNfQ0xPQ0tBQ1RJVklUWSB8IFNZU0NfSEFTX1NJRExFTU9ERSB8 Ci0JCQkJU1lTQ19IQVNfRU5BV0FLRVVQIHwgU1lTQ19IQVNfU09GVFJFU0VUIHwKLQkJCQlTWVND X0hBU19BVVRPSURMRSB8IFNZU1NfSEFTX1JFU0VUX1NUQVRVUyksCi0JLmlkbGVtb2Rlcwk9IChT SURMRV9GT1JDRSB8IFNJRExFX05PIHwgU0lETEVfU01BUlQpLAotCS5zeXNjX2ZpZWxkcwk9ICZv bWFwX2h3bW9kX3N5c2NfdHlwZTEsCi19OwotCi1zdHJ1Y3Qgb21hcF9od21vZF9jbGFzcyBvbWFw Mnh4eF9tY3NwaV9jbGFzcyA9IHsKLQkubmFtZQk9ICJtY3NwaSIsCi0JLnN5c2MJPSAmb21hcDJ4 eHhfbWNzcGlfc3lzYywKLX07Ci0KLS8qCi0gKiAnZ3BtYycgY2xhc3MKLSAqIGdlbmVyYWwgcHVy cG9zZSBtZW1vcnkgY29udHJvbGxlcgotICovCi0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9j bGFzc19zeXNjb25maWcgb21hcDJ4eHhfZ3BtY19zeXNjID0gewotCS5yZXZfb2Zmcwk9IDB4MDAw MCwKLQkuc3lzY19vZmZzCT0gMHgwMDEwLAotCS5zeXNzX29mZnMJPSAweDAwMTQsCi0JLnN5c2Nf ZmxhZ3MJPSAoU1lTQ19IQVNfQVVUT0lETEUgfCBTWVNDX0hBU19TSURMRU1PREUgfAotCQkJICAg U1lTQ19IQVNfU09GVFJFU0VUIHwgU1lTU19IQVNfUkVTRVRfU1RBVFVTKSwKLQkuaWRsZW1vZGVz CT0gKFNJRExFX0ZPUkNFIHwgU0lETEVfTk8gfCBTSURMRV9TTUFSVCksCi0JLnN5c2NfZmllbGRz CT0gJm9tYXBfaHdtb2Rfc3lzY190eXBlMSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21v ZF9jbGFzcyBvbWFwMnh4eF9ncG1jX2h3bW9kX2NsYXNzID0gewotCS5uYW1lCT0gImdwbWMiLAot CS5zeXNjCT0gJm9tYXAyeHh4X2dwbWNfc3lzYywKLX07Ci0KLS8qCi0gKiBJUCBibG9ja3MKLSAq LwotCi0vKiBMMyAqLwotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfbDNfbWFpbl9od21vZCA9 IHsKLQkubmFtZQkJPSAibDNfbWFpbiIsCi0JLmNsYXNzCQk9ICZsM19od21vZF9jbGFzcywKLQku ZmxhZ3MJCT0gSFdNT0RfTk9fSURMRVNULAotfTsKLQotLyogTDQgQ09SRSAqLwotc3RydWN0IG9t YXBfaHdtb2Qgb21hcDJ4eHhfbDRfY29yZV9od21vZCA9IHsKLQkubmFtZQkJPSAibDRfY29yZSIs Ci0JLmNsYXNzCQk9ICZsNF9od21vZF9jbGFzcywKLQkuZmxhZ3MJCT0gSFdNT0RfTk9fSURMRVNU LAotfTsKLQotLyogTDQgV0tVUCAqLwotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfbDRfd2t1 cF9od21vZCA9IHsKLQkubmFtZQkJPSAibDRfd2t1cCIsCi0JLmNsYXNzCQk9ICZsNF9od21vZF9j bGFzcywKLQkuZmxhZ3MJCT0gSFdNT0RfTk9fSURMRVNULAotfTsKLQotLyogTVBVICovCi1zdHJ1 Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9tcHVfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gIm1wdSIsCi0J LmNsYXNzCQk9ICZtcHVfaHdtb2RfY2xhc3MsCi0JLm1haW5fY2xrCT0gIm1wdV9jayIsCi19Owot Ci0vKiB0aW1lcjMgKi8KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X3RpbWVyM19od21vZCA9 IHsKLQkubmFtZQkJPSAidGltZXIzIiwKLQkubWFpbl9jbGsJPSAiZ3B0M19mY2siLAotCS5wcmNt CQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRs ZXN0X3JlZ19pZCA9IDEsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0WFhfU1RfR1BUM19T SElGVCwKLQkJfSwKLQl9LAotCS5jbGFzcwkJPSAmb21hcDJ4eHhfdGltZXJfaHdtb2RfY2xhc3Ms Ci0JLmZsYWdzICAgICAgICAgID0gSFdNT0RfU0VUX0RFRkFVTFRfQ0xPQ0tBQ1QsCi19OwotCi0v KiB0aW1lcjQgKi8KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X3RpbWVyNF9od21vZCA9IHsK LQkubmFtZQkJPSAidGltZXI0IiwKLQkubWFpbl9jbGsJPSAiZ3B0NF9mY2siLAotCS5wcmNtCQk9 IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0 X3JlZ19pZCA9IDEsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0WFhfU1RfR1BUNF9TSElG VCwKLQkJfSwKLQl9LAotCS5jbGFzcwkJPSAmb21hcDJ4eHhfdGltZXJfaHdtb2RfY2xhc3MsCi0J LmZsYWdzICAgICAgICAgID0gSFdNT0RfU0VUX0RFRkFVTFRfQ0xPQ0tBQ1QsCi19OwotCi0vKiB0 aW1lcjUgKi8KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X3RpbWVyNV9od21vZCA9IHsKLQku bmFtZQkJPSAidGltZXI1IiwKLQkubWFpbl9jbGsJPSAiZ3B0NV9mY2siLAotCS5wcmNtCQk9IHsK LQkJLm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3Jl Z19pZCA9IDEsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0WFhfU1RfR1BUNV9TSElGVCwK LQkJfSwKLQl9LAotCS5jbGFzcwkJPSAmb21hcDJ4eHhfdGltZXJfaHdtb2RfY2xhc3MsCi0JLmZs YWdzICAgICAgICAgID0gSFdNT0RfU0VUX0RFRkFVTFRfQ0xPQ0tBQ1QsCi19OwotCi0vKiB0aW1l cjYgKi8KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X3RpbWVyNl9od21vZCA9IHsKLQkubmFt ZQkJPSAidGltZXI2IiwKLQkubWFpbl9jbGsJPSAiZ3B0Nl9mY2siLAotCS5wcmNtCQk9IHsKLQkJ Lm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19p ZCA9IDEsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0WFhfU1RfR1BUNl9TSElGVCwKLQkJ fSwKLQl9LAotCS5jbGFzcwkJPSAmb21hcDJ4eHhfdGltZXJfaHdtb2RfY2xhc3MsCi0JLmZsYWdz ICAgICAgICAgID0gSFdNT0RfU0VUX0RFRkFVTFRfQ0xPQ0tBQ1QsCi19OwotCi0vKiB0aW1lcjcg Ki8KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X3RpbWVyN19od21vZCA9IHsKLQkubmFtZQkJ PSAidGltZXI3IiwKLQkubWFpbl9jbGsJPSAiZ3B0N19mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9t YXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9 IDEsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0WFhfU1RfR1BUN19TSElGVCwKLQkJfSwK LQl9LAotCS5jbGFzcwkJPSAmb21hcDJ4eHhfdGltZXJfaHdtb2RfY2xhc3MsCi0JLmZsYWdzICAg ICAgICAgID0gSFdNT0RfU0VUX0RFRkFVTFRfQ0xPQ0tBQ1QsCi19OwotCi0vKiB0aW1lcjggKi8K LXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X3RpbWVyOF9od21vZCA9IHsKLQkubmFtZQkJPSAi dGltZXI4IiwKLQkubWFpbl9jbGsJPSAiZ3B0OF9mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAy ID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEs Ci0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0WFhfU1RfR1BUOF9TSElGVCwKLQkJfSwKLQl9 LAotCS5jbGFzcwkJPSAmb21hcDJ4eHhfdGltZXJfaHdtb2RfY2xhc3MsCi0JLmZsYWdzICAgICAg ICAgID0gSFdNT0RfU0VUX0RFRkFVTFRfQ0xPQ0tBQ1QsCi19OwotCi0vKiB0aW1lcjkgKi8KLXN0 cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X3RpbWVyOV9od21vZCA9IHsKLQkubmFtZQkJPSAidGlt ZXI5IiwKLQkubWFpbl9jbGsJPSAiZ3B0OV9mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0g ewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0J CQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0WFhfU1RfR1BUOV9TSElGVCwKLQkJfSwKLQl9LAot CS5jbGFzcwkJPSAmb21hcDJ4eHhfdGltZXJfaHdtb2RfY2xhc3MsCi0JLmZsYWdzICAgICAgICAg ID0gSFdNT0RfU0VUX0RFRkFVTFRfQ0xPQ0tBQ1QsCi19OwotCi0vKiB0aW1lcjEwICovCi1zdHJ1 Y3Qgb21hcF9od21vZCBvbWFwMnh4eF90aW1lcjEwX2h3bW9kID0gewotCS5uYW1lCQk9ICJ0aW1l cjEwIiwKLQkubWFpbl9jbGsJPSAiZ3B0MTBfZmNrIiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9 IHsKLQkJCS5tb2R1bGVfb2ZmcyA9IENPUkVfTU9ELAotCQkJLmlkbGVzdF9yZWdfaWQgPSAxLAot CQkJLmlkbGVzdF9pZGxlX2JpdCA9IE9NQVAyNFhYX1NUX0dQVDEwX1NISUZULAotCQl9LAotCX0s Ci0JLmNsYXNzCQk9ICZvbWFwMnh4eF90aW1lcl9od21vZF9jbGFzcywKLQkuZmxhZ3MgICAgICAg ICAgPSBIV01PRF9TRVRfREVGQVVMVF9DTE9DS0FDVCwKLX07Ci0KLS8qIHRpbWVyMTEgKi8KLXN0 cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X3RpbWVyMTFfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gInRp bWVyMTEiLAotCS5tYWluX2Nsawk9ICJncHQxMV9mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAy ID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEs Ci0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0WFhfU1RfR1BUMTFfU0hJRlQsCi0JCX0sCi0J fSwKLQkuY2xhc3MJCT0gJm9tYXAyeHh4X3RpbWVyX2h3bW9kX2NsYXNzLAotCS5mbGFncyAgICAg ICAgICA9IEhXTU9EX1NFVF9ERUZBVUxUX0NMT0NLQUNULAotfTsKLQotLyogdGltZXIxMiAqLwot c3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdGltZXIxMl9od21vZCA9IHsKLQkubmFtZQkJPSAi dGltZXIxMiIsCi0JLm1haW5fY2xrCT0gImdwdDEyX2ZjayIsCi0JLnByY20JCT0gewotCQkub21h cDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0g MSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9HUFQxMl9TSElGVCwKLQkJfSwK LQl9LAotCS5jbGFzcwkJPSAmb21hcDJ4eHhfdGltZXJfaHdtb2RfY2xhc3MsCi0JLmZsYWdzICAg ICAgICAgID0gSFdNT0RfU0VUX0RFRkFVTFRfQ0xPQ0tBQ1QsCi19OwotCi0vKiB3ZF90aW1lcjIg Ki8KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X3dkX3RpbWVyMl9od21vZCA9IHsKLQkubmFt ZQkJPSAid2RfdGltZXIyIiwKLQkuY2xhc3MJCT0gJm9tYXAyeHh4X3dkX3RpbWVyX2h3bW9kX2Ns YXNzLAotCS5tYWluX2Nsawk9ICJtcHVfd2R0X2ZjayIsCi0JLnByY20JCT0gewotCQkub21hcDIg PSB7Ci0JCQkubW9kdWxlX29mZnMgPSBXS1VQX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMSwK LQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9NUFVfV0RUX1NISUZULAotCQl9LAot CX0sCi19OwotCi0vKiBVQVJUMSAqLwotCi1zdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF91YXJ0 MV9od21vZCA9IHsKLQkubmFtZQkJPSAidWFydDEiLAotCS5tYWluX2Nsawk9ICJ1YXJ0MV9mY2si LAotCS5mbGFncwkJPSBERUJVR19PTUFQMlVBUlQxX0ZMQUdTIHwgSFdNT0RfU1dTVVBfU0lETEVf QUNULAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9N T0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0 WFhfRU5fVUFSVDFfU0hJRlQsCi0JCX0sCi0JfSwKLQkuY2xhc3MJCT0gJm9tYXAyX3VhcnRfY2xh c3MsCi19OwotCi0vKiBVQVJUMiAqLwotCi1zdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF91YXJ0 Ml9od21vZCA9IHsKLQkubmFtZQkJPSAidWFydDIiLAotCS5tYWluX2Nsawk9ICJ1YXJ0Ml9mY2si LAotCS5mbGFncwkJPSBERUJVR19PTUFQMlVBUlQyX0ZMQUdTIHwgSFdNT0RfU1dTVVBfU0lETEVf QUNULAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9N T0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0 WFhfRU5fVUFSVDJfU0hJRlQsCi0JCX0sCi0JfSwKLQkuY2xhc3MJCT0gJm9tYXAyX3VhcnRfY2xh c3MsCi19OwotCi0vKiBVQVJUMyAqLwotCi1zdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF91YXJ0 M19od21vZCA9IHsKLQkubmFtZQkJPSAidWFydDMiLAotCS5tYWluX2Nsawk9ICJ1YXJ0M19mY2si LAotCS5mbGFncwkJPSBERUJVR19PTUFQMlVBUlQzX0ZMQUdTIHwgSFdNT0RfU1dTVVBfU0lETEVf QUNULAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9N T0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDIsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0 WFhfRU5fVUFSVDNfU0hJRlQsCi0JCX0sCi0JfSwKLQkuY2xhc3MJCT0gJm9tYXAyX3VhcnRfY2xh c3MsCi19OwotCi0vKiBkc3MgKi8KLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29wdF9jbGsg ZHNzX29wdF9jbGtzW10gPSB7Ci0JLyoKLQkgKiBUaGUgRFNTIEhXIG5lZWRzIGFsbCBEU1MgY2xv Y2tzIGVuYWJsZWQgZHVyaW5nIHJlc2V0LiBUaGUgZHNzX2NvcmUKLQkgKiBkcml2ZXIgZG9lcyBu b3QgdXNlIHRoZXNlIGNsb2Nrcy4KLQkgKi8KLQl7IC5yb2xlID0gInR2X2NsayIsIC5jbGsgPSAi ZHNzXzU0bV9mY2siIH0sCi0JeyAucm9sZSA9ICJzeXNfY2xrIiwgLmNsayA9ICJkc3MyX2ZjayIg fSwKLX07Ci0KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X2Rzc19jb3JlX2h3bW9kID0gewot CS5uYW1lCQk9ICJkc3NfY29yZSIsCi0JLmNsYXNzCQk9ICZvbWFwMl9kc3NfaHdtb2RfY2xhc3Ms Ci0JLm1haW5fY2xrCT0gImRzczFfZmNrIiwgLyogaW5zdGVhZCBvZiBkc3NfZmNrICovCi0JLnBy Y20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5p ZGxlc3RfcmVnX2lkID0gMSwKLQkJfSwKLQl9LAotCS5vcHRfY2xrcwk9IGRzc19vcHRfY2xrcywK LQkub3B0X2Nsa3NfY250ID0gQVJSQVlfU0laRShkc3Nfb3B0X2Nsa3MpLAotCS5mbGFncwkJPSBI V01PRF9OT19JRExFU1QgfCBIV01PRF9DT05UUk9MX09QVF9DTEtTX0lOX1JFU0VULAotfTsKLQot c3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfZHNzX2Rpc3BjX2h3bW9kID0gewotCS5uYW1lCQk9 ICJkc3NfZGlzcGMiLAotCS5jbGFzcwkJPSAmb21hcDJfZGlzcGNfaHdtb2RfY2xhc3MsCi0JLm1h aW5fY2xrCT0gImRzczFfZmNrIiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1 bGVfb2ZmcyA9IENPUkVfTU9ELAotCQkJLmlkbGVzdF9yZWdfaWQgPSAxLAotCQl9LAotCX0sCi0J LmZsYWdzCQk9IEhXTU9EX05PX0lETEVTVCwKLQkuZGV2X2F0dHIJPSAmb21hcDJfM19kc3NfZGlz cGNfZGV2X2F0dHIsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb3B0X2NsayBkc3Nf cmZiaV9vcHRfY2xrc1tdID0gewotCXsgLnJvbGUgPSAiaWNrIiwgLmNsayA9ICJkc3NfaWNrIiB9 LAotfTsKLQotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfZHNzX3JmYmlfaHdtb2QgPSB7Ci0J Lm5hbWUJCT0gImRzc19yZmJpIiwKLQkuY2xhc3MJCT0gJm9tYXAyX3JmYmlfaHdtb2RfY2xhc3Ms Ci0JLm1haW5fY2xrCT0gImRzczFfZmNrIiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJ CS5tb2R1bGVfb2ZmcyA9IENPUkVfTU9ELAotCQl9LAotCX0sCi0JLm9wdF9jbGtzCT0gZHNzX3Jm Ymlfb3B0X2Nsa3MsCi0JLm9wdF9jbGtzX2NudAk9IEFSUkFZX1NJWkUoZHNzX3JmYmlfb3B0X2Ns a3MpLAotCS5mbGFncwkJPSBIV01PRF9OT19JRExFU1QsCi19OwotCi1zdHJ1Y3Qgb21hcF9od21v ZCBvbWFwMnh4eF9kc3NfdmVuY19od21vZCA9IHsKLQkubmFtZQkJPSAiZHNzX3ZlbmMiLAotCS5j bGFzcwkJPSAmb21hcDJfdmVuY19od21vZF9jbGFzcywKLQkubWFpbl9jbGsJPSAiZHNzXzU0bV9m Y2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9N T0QsCi0JCX0sCi0JfSwKLQkuZmxhZ3MJCT0gSFdNT0RfTk9fSURMRVNULAotfTsKLQotLyogZ3Bp bzEgKi8KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X2dwaW8xX2h3bW9kID0gewotCS5uYW1l CQk9ICJncGlvMSIsCi0JLmZsYWdzCQk9IEhXTU9EX0NPTlRST0xfT1BUX0NMS1NfSU5fUkVTRVQs Ci0JLm1haW5fY2xrCT0gImdwaW9zX2ZjayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0J CQkubW9kdWxlX29mZnMgPSBXS1VQX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMSwKLQkJCS5p ZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9HUElPU19TSElGVCwKLQkJfSwKLQl9LAotCS5j bGFzcwkJPSAmb21hcDJ4eHhfZ3Bpb19od21vZF9jbGFzcywKLX07Ci0KLS8qIGdwaW8yICovCi1z dHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9ncGlvMl9od21vZCA9IHsKLQkubmFtZQkJPSAiZ3Bp bzIiLAotCS5mbGFncwkJPSBIV01PRF9DT05UUk9MX09QVF9DTEtTX0lOX1JFU0VULAotCS5tYWlu X2Nsawk9ICJncGlvc19mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVs ZV9vZmZzID0gV0tVUF9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCQkuaWRsZXN0X2lk bGVfYml0ID0gT01BUDI0WFhfU1RfR1BJT1NfU0hJRlQsCi0JCX0sCi0JfSwKLQkuY2xhc3MJCT0g Jm9tYXAyeHh4X2dwaW9faHdtb2RfY2xhc3MsCi19OwotCi0vKiBncGlvMyAqLwotc3RydWN0IG9t YXBfaHdtb2Qgb21hcDJ4eHhfZ3BpbzNfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gImdwaW8zIiwKLQku ZmxhZ3MJCT0gSFdNT0RfQ09OVFJPTF9PUFRfQ0xLU19JTl9SRVNFVCwKLQkubWFpbl9jbGsJPSAi Z3Bpb3NfZmNrIiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9 IFdLVVBfTU9ELAotCQkJLmlkbGVzdF9yZWdfaWQgPSAxLAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9 IE9NQVAyNFhYX1NUX0dQSU9TX1NISUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZvbWFwMnh4 eF9ncGlvX2h3bW9kX2NsYXNzLAotfTsKLQotLyogZ3BpbzQgKi8KLXN0cnVjdCBvbWFwX2h3bW9k IG9tYXAyeHh4X2dwaW80X2h3bW9kID0gewotCS5uYW1lCQk9ICJncGlvNCIsCi0JLmZsYWdzCQk9 IEhXTU9EX0NPTlRST0xfT1BUX0NMS1NfSU5fUkVTRVQsCi0JLm1haW5fY2xrCT0gImdwaW9zX2Zj ayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBXS1VQX01P RCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRY WF9TVF9HUElPU19TSElGVCwKLQkJfSwKLQl9LAotCS5jbGFzcwkJPSAmb21hcDJ4eHhfZ3Bpb19o d21vZF9jbGFzcywKLX07Ci0KLS8qIG1jc3BpMSAqLwotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4 eHhfbWNzcGkxX2h3bW9kID0gewotCS5uYW1lCQk9ICJtY3NwaTEiLAotCS5tYWluX2Nsawk9ICJt Y3NwaTFfZmNrIiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9 IENPUkVfTU9ELAotCQkJLmlkbGVzdF9yZWdfaWQgPSAxLAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9 IE9NQVAyNFhYX1NUX01DU1BJMV9TSElGVCwKLQkJfSwKLQl9LAotCS5jbGFzcwkJPSAmb21hcDJ4 eHhfbWNzcGlfY2xhc3MsCi19OwotCi0vKiBtY3NwaTIgKi8KLXN0cnVjdCBvbWFwX2h3bW9kIG9t YXAyeHh4X21jc3BpMl9od21vZCA9IHsKLQkubmFtZQkJPSAibWNzcGkyIiwKLQkubWFpbl9jbGsJ PSAibWNzcGkyX2ZjayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29m ZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9i aXQgPSBPTUFQMjRYWF9TVF9NQ1NQSTJfU0hJRlQsCi0JCX0sCi0JfSwKLQkuY2xhc3MJCT0gJm9t YXAyeHh4X21jc3BpX2NsYXNzLAotfTsKLQotLyogZ3BtYyAqLwotc3RydWN0IG9tYXBfaHdtb2Qg b21hcDJ4eHhfZ3BtY19od21vZCA9IHsKLQkubmFtZQkJPSAiZ3BtYyIsCi0JLmNsYXNzCQk9ICZv bWFwMnh4eF9ncG1jX2h3bW9kX2NsYXNzLAotCS5tYWluX2Nsawk9ICJncG1jX2ZjayIsCi0JLyog U2tpcCByZXNldCBmb3IgQ09ORklHX09NQVBfR1BNQ19ERUJVRyBmb3IgYm9vdGxvYWRlciB0aW1p bmdzICovCi0JLmZsYWdzCQk9IEhXTU9EX05PX0lETEVTVCB8IERFQlVHX09NQVBfR1BNQ19IV01P RF9GTEFHUywKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMgk9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9IENP UkVfTU9ELAotCQl9LAotCX0sCi19OwotCi0vKiBSTkcgKi8KLQotc3RhdGljIHN0cnVjdCBvbWFw X2h3bW9kX2NsYXNzX3N5c2NvbmZpZyBvbWFwMl9ybmdfc3lzYyA9IHsKLQkucmV2X29mZnMJPSAw eDNjLAotCS5zeXNjX29mZnMJPSAweDQwLAotCS5zeXNzX29mZnMJPSAweDQ0LAotCS5zeXNjX2Zs YWdzCT0gKFNZU0NfSEFTX1NPRlRSRVNFVCB8IFNZU0NfSEFTX0FVVE9JRExFIHwKLQkJCSAgIFNZ U1NfSEFTX1JFU0VUX1NUQVRVUyksCi0JLnN5c2NfZmllbGRzCT0gJm9tYXBfaHdtb2Rfc3lzY190 eXBlMSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzcyBvbWFwMl9ybmdfaHdt b2RfY2xhc3MgPSB7Ci0JLm5hbWUJCT0gInJuZyIsCi0JLnN5c2MJCT0gJm9tYXAyX3JuZ19zeXNj LAotfTsKLQotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfcm5nX2h3bW9kID0gewotCS5uYW1l CQk9ICJybmciLAotCS5tYWluX2Nsawk9ICJsNF9jayIsCi0JLnByY20JCT0gewotCQkub21hcDIg PSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gNCwK LQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9STkdfU0hJRlQsCi0JCX0sCi0JfSwK LQkvKgotCSAqIFhYWCBUaGUgZmlyc3QgcmVhZCBmcm9tIHRoZSBTWVNTVEFUVVMgcmVnaXN0ZXIg b2YgdGhlIFJORwotCSAqIGFmdGVyIHRoZSBTWVNDT05GSUcgU09GVFJFU0VUIGJpdCBpcyBzZXQg dHJpZ2dlcnMgYW4KLQkgKiBpbXByZWNpc2UgZXh0ZXJuYWwgYWJvcnQuICBJdCdzIHVuY2xlYXIg d2h5IHRoaXMgaGFwcGVucy4KLQkgKiBVbnRpbCB0aGlzIGlzIGFuYWx5emVkLCBza2lwIHRoZSBJ UCBibG9jayByZXNldC4KLQkgKi8KLQkuZmxhZ3MJCT0gSFdNT0RfSU5JVF9OT19SRVNFVCwKLQku Y2xhc3MJCT0gJm9tYXAyX3JuZ19od21vZF9jbGFzcywKLX07Ci0KLS8qIFNIQU0gKi8KLQotc3Rh dGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzX3N5c2NvbmZpZyBvbWFwMl9zaGFtX3N5c2MgPSB7 Ci0JLnJldl9vZmZzCT0gMHg1YywKLQkuc3lzY19vZmZzCT0gMHg2MCwKLQkuc3lzc19vZmZzCT0g MHg2NCwKLQkuc3lzY19mbGFncwk9IChTWVNDX0hBU19TT0ZUUkVTRVQgfCBTWVNDX0hBU19BVVRP SURMRSB8Ci0JCQkgICBTWVNTX0hBU19SRVNFVF9TVEFUVVMpLAotCS5zeXNjX2ZpZWxkcwk9ICZv bWFwX2h3bW9kX3N5c2NfdHlwZTEsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xh c3Mgb21hcDJ4eHhfc2hhbV9jbGFzcyA9IHsKLQkubmFtZQk9ICJzaGFtIiwKLQkuc3lzYwk9ICZv bWFwMl9zaGFtX3N5c2MsCi19OwotCi1zdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9zaGFtX2h3 bW9kID0gewotCS5uYW1lCQk9ICJzaGFtIiwKLQkubWFpbl9jbGsJPSAibDRfY2siLAotCS5wcmNt CQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRs ZXN0X3JlZ19pZCA9IDQsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0WFhfU1RfU0hBX1NI SUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZvbWFwMnh4eF9zaGFtX2NsYXNzLAotfTsKLQot LyogQUVTICovCi0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzc19zeXNjb25maWcgb21h cDJfYWVzX3N5c2MgPSB7Ci0JLnJldl9vZmZzCT0gMHg0NCwKLQkuc3lzY19vZmZzCT0gMHg0OCwK LQkuc3lzc19vZmZzCT0gMHg0YywKLQkuc3lzY19mbGFncwk9IChTWVNDX0hBU19TT0ZUUkVTRVQg fCBTWVNDX0hBU19BVVRPSURMRSB8Ci0JCQkgICBTWVNTX0hBU19SRVNFVF9TVEFUVVMpLAotCS5z eXNjX2ZpZWxkcwk9ICZvbWFwX2h3bW9kX3N5c2NfdHlwZTEsCi19OwotCi1zdGF0aWMgc3RydWN0 IG9tYXBfaHdtb2RfY2xhc3Mgb21hcDJ4eHhfYWVzX2NsYXNzID0gewotCS5uYW1lCT0gImFlcyIs Ci0JLnN5c2MJPSAmb21hcDJfYWVzX3N5c2MsCi19OwotCi1zdHJ1Y3Qgb21hcF9od21vZCBvbWFw Mnh4eF9hZXNfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gImFlcyIsCi0JLm1haW5fY2xrCT0gImw0X2Nr IiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9IENPUkVfTU9E LAotCQkJLmlkbGVzdF9yZWdfaWQgPSA0LAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9IE9NQVAyNFhY X1NUX0FFU19TSElGVCwKLQkJfSwKLQl9LAotCS5jbGFzcwkJPSAmb21hcDJ4eHhfYWVzX2NsYXNz LAotfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF9jb21tb25f ZGF0YS5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kX2NvbW1vbl9kYXRhLmgKaW5k ZXggNjlkZGRjNTNlMWQ4Li44YjI3MGNiM2Y2NGIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gt b21hcDIvb21hcF9od21vZF9jb21tb25fZGF0YS5oCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIv b21hcF9od21vZF9jb21tb25fZGF0YS5oCkBAIC0xNSw2OCArMTUsNiBAQAogI2luY2x1ZGUgImNv bW1vbi5oIgogI2luY2x1ZGUgImRpc3BsYXkuaCIKIAotLyogQ29tbW9uIElQIGJsb2NrIGRhdGEg YWNyb3NzIE9NQVAyeHh4ICovCi1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfbDNf bWFpbl9od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9sNF9jb3JlX2h3 bW9kOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X2w0X3drdXBfaHdtb2Q7Ci1l eHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfbXB1X2h3bW9kOwotZXh0ZXJuIHN0cnVj dCBvbWFwX2h3bW9kIG9tYXAyeHh4X3RpbWVyM19od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9o d21vZCBvbWFwMnh4eF90aW1lcjRfaHdtb2Q7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21h cDJ4eHhfdGltZXI1X2h3bW9kOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X3Rp bWVyNl9od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF90aW1lcjdfaHdt b2Q7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdGltZXI4X2h3bW9kOwotZXh0 ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X3RpbWVyOV9od21vZDsKLWV4dGVybiBzdHJ1 Y3Qgb21hcF9od21vZCBvbWFwMnh4eF90aW1lcjEwX2h3bW9kOwotZXh0ZXJuIHN0cnVjdCBvbWFw X2h3bW9kIG9tYXAyeHh4X3RpbWVyMTFfaHdtb2Q7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qg b21hcDJ4eHhfdGltZXIxMl9od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4 eF93ZF90aW1lcjJfaHdtb2Q7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdWFy dDFfaHdtb2Q7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdWFydDJfaHdtb2Q7 Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdWFydDNfaHdtb2Q7Ci1leHRlcm4g c3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfZHNzX2NvcmVfaHdtb2Q7Ci1leHRlcm4gc3RydWN0 IG9tYXBfaHdtb2Qgb21hcDJ4eHhfZHNzX2Rpc3BjX2h3bW9kOwotZXh0ZXJuIHN0cnVjdCBvbWFw X2h3bW9kIG9tYXAyeHh4X2Rzc19yZmJpX2h3bW9kOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9k IG9tYXAyeHh4X2Rzc192ZW5jX2h3bW9kOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAy eHh4X2dwaW8xX2h3bW9kOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X2dwaW8y X2h3bW9kOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X2dwaW8zX2h3bW9kOwot ZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X2dwaW80X2h3bW9kOwotZXh0ZXJuIHN0 cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X21jc3BpMV9od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21h cF9od21vZCBvbWFwMnh4eF9tY3NwaTJfaHdtb2Q7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qg b21hcDJ4eHhfZ3BtY19od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9y bmdfaHdtb2Q7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfc2hhbV9od21vZDsK LWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9hZXNfaHdtb2Q7Ci0KLS8qIENvbW1v biBpbnRlcmZhY2UgZGF0YSBhY3Jvc3MgT01BUDJ4eHggKi8KLWV4dGVybiBzdHJ1Y3Qgb21hcF9o d21vZF9vY3BfaWYgb21hcDJ4eHhfbDNfbWFpbl9fbDRfY29yZTsKLWV4dGVybiBzdHJ1Y3Qgb21h cF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbXB1X19sM19tYWluOwotZXh0ZXJuIHN0cnVjdCBvbWFw X2h3bW9kX29jcF9pZiBvbWFwMnh4eF9kc3NfX2wzOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9k X29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX19sNF93a3VwOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3 bW9kX29jcF9pZiBvbWFwMl9sNF9jb3JlX191YXJ0MTsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21v ZF9vY3BfaWYgb21hcDJfbDRfY29yZV9fdWFydDI7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Rf b2NwX2lmIG9tYXAyX2w0X2NvcmVfX3VhcnQzOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX29j cF9pZiBvbWFwMnh4eF9sNF9jb3JlX19tY3NwaTE7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Rf b2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX21jc3BpMjsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21v ZF9vY3BfaWYgb21hcDJ4eHhfbDRfY29yZV9fdGltZXIzOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3 bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX190aW1lcjQ7Ci1leHRlcm4gc3RydWN0IG9tYXBf aHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyNTsKLWV4dGVybiBzdHJ1Y3Qgb21h cF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbDRfY29yZV9fdGltZXI2OwotZXh0ZXJuIHN0cnVjdCBv bWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX190aW1lcjc7Ci1leHRlcm4gc3RydWN0 IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyODsKLWV4dGVybiBzdHJ1 Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbDRfY29yZV9fdGltZXI5OwotZXh0ZXJuIHN0 cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX190aW1lcjEwOwotZXh0ZXJu IHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX190aW1lcjExOwotZXh0 ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX190aW1lcjEyOwot ZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX19kc3M7Ci1l eHRlcm4gc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX2Rzc19kaXNw YzsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbDRfY29yZV9fZHNz X3JmYmk7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVf X2Rzc192ZW5jOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9j b3JlX19ybmc7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2Nv cmVfX3NoYW07Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2Nv cmVfX2FlczsKLQogLyogT01BUCBod21vZCBjbGFzc2VzIC0gZm9yd2FyZCBkZWNsYXJhdGlvbnMg Ki8KIGV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzcyBsM19od21vZF9jbGFzczsKIGV4dGVy biBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzcyBsNF9od21vZF9jbGFzczsKQEAgLTg4LDEwICsyNiw2 IEBAIGV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzcyBvbWFwMl9yZmJpX2h3bW9kX2NsYXNz OwogZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIG9tYXAyX3ZlbmNfaHdtb2RfY2xhc3M7 CiBleHRlcm4gc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Mgb21hcDJfaGRxMXdfY2xhc3M7CiAKLWV4 dGVybiBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzcyBvbWFwMnh4eF9ncGlvX2h3bW9kX2NsYXNzOwot ZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIG9tYXAyeHh4X21haWxib3hfaHdtb2RfY2xh c3M7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Mgb21hcDJ4eHhfbWNzcGlfY2xhc3M7 Ci0KIGV4dGVybiBzdHJ1Y3Qgb21hcF9kc3NfZGlzcGNfZGV2X2F0dHIgb21hcDJfM19kc3NfZGlz cGNfZGV2X2F0dHI7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9v cHAyNDIwX2RhdGEuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvb3BwMjQyMF9kYXRhLmMKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4YTQ0OGY5MzhlYS4uMDAwMDAwMDAwMDAwCi0tLSBh L2FyY2gvYXJtL21hY2gtb21hcDIvb3BwMjQyMF9kYXRhLmMKKysrIC9kZXYvbnVsbApAQCAtMSwx MzEgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLS8qCi0gKiBv cHAyNDIwX2RhdGEuYyAtIG9sZC1zdHlsZSAiT1BQIiB0YWJsZSBmb3IgT01BUDI0MjAKLSAqCi0g KiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwOSBUZXhhcyBJbnN0cnVtZW50cywgSW5jLgotICogQ29w eXJpZ2h0IChDKSAyMDA0LTIwMDkgTm9raWEgQ29ycG9yYXRpb24KLSAqCi0gKiBSaWNoYXJkIFdv b2RydWZmIDxyLXdvb2RydWZmMkB0aS5jb20+Ci0gKgotICogVGhlIE9NQVAyIHByb2Nlc3NvciBj YW4gYmUgcnVuIGF0IHNldmVyYWwgZGlzY3JldGUgJ1BSQ00gY29uZmlndXJhdGlvbnMnLgotICog VGhlc2UgY29uZmlndXJhdGlvbnMgYXJlIGNoYXJhY3Rlcml6ZWQgYnkgdm9sdGFnZSBhbmQgc3Bl ZWQgZm9yIGNsb2Nrcy4KLSAqIFRoZSBkZXZpY2UgaXMgb25seSB2YWxpZGF0ZWQgZm9yIGNlcnRh aW4gY29tYmluYXRpb25zLiBPbmUgd2F5IHRvIGV4cHJlc3MKLSAqIHRoZXNlIGNvbWJpbmF0aW9u cyBpcyB2aWEgdGhlICdyYXRpb3MnIHdoaWNoIHRoZSBjbG9ja3Mgb3BlcmF0ZSB3aXRoCi0gKiBy ZXNwZWN0IHRvIGVhY2ggb3RoZXIuIFRoZXNlIHJhdGlvIHNldHMgYXJlIGZvciBhIGdpdmVuIHZv bHRhZ2UvRFBMTAotICogc2V0dGluZy4gQWxsIGNvbmZpZ3VyYXRpb25zIGNhbiBiZSBkZXNjcmli ZWQgYnkgYSBEUExMIHNldHRpbmcgYW5kIGEgcmF0aW8uCi0gKgotICogWFhYIE1pc3Npbmcgdm9s dGFnZSBkYXRhLgotICogWFhYIE1pc3NpbmcgMTkuMk1IeiBzeXNfY2xrIHJhdGUgc2V0cyAobmVl ZGVkIGZvciBOODAwL044MTApCi0gKgotICogVEhlIGZvcm1hdCBkZXNjcmliZWQgaW4gdGhpcyBm aWxlIGlzIGRlcHJlY2F0ZWQuICBPbmNlIGEgcmVhc29uYWJsZQotICogT1BQIEFQSSBleGlzdHMs IHRoZSBkYXRhIGluIHRoaXMgZmlsZSBzaG91bGQgYmUgY29udmVydGVkIHRvIHVzZSBpdC4KLSAq Ci0gKiBUaGlzIGlzIHRlY2huaWNhbGx5IHBhcnQgb2YgdGhlIE9NQVAyeHh4IGNsb2NrIGNvZGUu Ci0gKgotICogQ29uc2lkZXJhYmxlIHdvcmsgaXMgc3RpbGwgbmVlZGVkIHRvIGZ1bGx5IHN1cHBv cnQgZHluYW1pYyBmcmVxdWVuY3kKLSAqIGNoYW5nZXMgb24gT01BUDJ4eHgtc2VyaWVzIGNoaXBz LiAgUmVhZGVycyBpbnRlcmVzdGVkIGluIHN1Y2ggYQotICogcHJvamVjdCBhcmUgZW5jb3VyYWdl ZCB0byByZXZpZXcgdGhlIE1hZW1vIERpYWJsbyBSWC0zNCBhbmQgUlgtNDQKLSAqIGtlcm5lbCBz b3VyY2UgYXQ6Ci0gKiAgICAgaHR0cDovL3JlcG9zaXRvcnkubWFlbW8ub3JnL3Bvb2wvZGlhYmxv L2ZyZWUvay9rZXJuZWwtc291cmNlLWRpYWJsby8KLSAqLwotCi0jaW5jbHVkZSA8bGludXgva2Vy bmVsLmg+Ci0KLSNpbmNsdWRlICJvcHAyeHh4LmgiCi0jaW5jbHVkZSAic2RyYy5oIgotI2luY2x1 ZGUgImNsb2NrLmgiCi0KLS8qCi0gKiBLZXkgZGl2aWRlcnMgd2hpY2ggbWFrZSB1cCBhIFBSQ00g c2V0LiBSYXRpb3MgZm9yIGEgUFJDTSBhcmUgbWFuZGF0ZWQuCi0gKiB4dGFsX3NwZWVkLCBkcGxs X3NwZWVkLCBtcHVfc3BlZWQsIENNX0NMS1NFTF9NUFUsCi0gKiBDTV9DTEtTRUxfRFNQLCBDTV9D TEtTRUxfR0ZYLCBDTV9DTEtTRUwxX0NPUkUsIENNX0NMS1NFTDFfUExMLAotICogQ01fQ0xLU0VM Ml9QTEwsIENNX0NMS1NFTF9NRE0KLSAqCi0gKiBGaWxsaW5nIGluIHRhYmxlIGJhc2VkIG9uIEg0 IGJvYXJkcyBhdmFpbGFibGUuICBUaGVyZSBhcmUgcXVpdGUgYQotICogZmV3IG1vcmUgcmF0ZSBj b21iaW5hdGlvbnMgd2hpY2ggY291bGQgYmUgZGVmaW5lZC4KLSAqCi0gKiBXaGVuIG11bHRpcGxl IHZhbHVlcyBhcmUgZGVmaW5lZCB0aGUgc3RhcnQgdXAgd2lsbCB0cnkgYW5kIGNob29zZQotICog dGhlIGZhc3Rlc3Qgb25lLiBJZiBhICdmYXN0JyB2YWx1ZSBpcyBkZWZpbmVkLCB0aGVuIGF1dG9t YXRpY2FsbHksCi0gKiB0aGUgLzIgb25lIHNob3VsZCBiZSBpbmNsdWRlZCBhcyBpdCBjYW4gYmUg dXNlZC4gIEdlbmVyYWxseSBoYXZpbmcKLSAqIG1vcmUgdGhhbiBvbmUgZmFzdCBzZXQgZG9lcyBu b3QgbWFrZSBzZW5zZSwgYXMgc3RhdGljIHRpbWluZ3MgbmVlZAotICogdG8gYmUgY2hhbmdlZCB0 byBjaGFuZ2UgdGhlIHNldC4gIFRoZSBleGNlcHRpb24gaXMgdGhlIGJ5cGFzcwotICogc2V0dGlu ZyB3aGljaCBpcyBhdmFpbGFibGUgZm9yIGxvdyBwb3dlciBieXBhc3MuCi0gKgotICogTm90ZTog VGhpcyB0YWJsZSBuZWVkcyB0byBiZSBzb3J0ZWQsIGZhc3Rlc3QgdG8gc2xvd2VzdC4KLSAqKi8K LWNvbnN0IHN0cnVjdCBwcmNtX2NvbmZpZyBvbWFwMjQyMF9yYXRlX3RhYmxlW10gPSB7Ci0JLyog UFJDTSBJIC0gRkFTVCAqLwotCXtTMTJNLCBTNjYwTSwgUzMzME0sIFJJX0NNX0NMS1NFTF9NUFVf VkFMLAkJLyogMzMwTUh6IEFSTSAqLwotCQlSSV9DTV9DTEtTRUxfRFNQX1ZBTCwgUklfQ01fQ0xL U0VMX0dGWF9WQUwsCi0JCVJJX0NNX0NMS1NFTDFfQ09SRV9WQUwsIE1JX0NNX0NMS1NFTDFfUExM XzEyX1ZBTCwKLQkJTVhfQ0xLU0VMMl9QTExfMnhfVkFMLCAwLCBTRFJDX1JGUl9DVFJMXzE2NU1I eiwKLQkJUkFURV9JTl8yNDJYfSwKLQotCS8qIFBSQ00gSUkgLSBGQVNUICovCi0Je1MxMk0sIFM2 MDBNLCBTMzAwTSwgUklJX0NNX0NMS1NFTF9NUFVfVkFMLAkJLyogMzAwTUh6IEFSTSAqLwotCQlS SUlfQ01fQ0xLU0VMX0RTUF9WQUwsIFJJSV9DTV9DTEtTRUxfR0ZYX1ZBTCwKLQkJUklJX0NNX0NM S1NFTDFfQ09SRV9WQUwsIE1JSV9DTV9DTEtTRUwxX1BMTF8xMl9WQUwsCi0JCU1YX0NMS1NFTDJf UExMXzJ4X1ZBTCwgMCwgU0RSQ19SRlJfQ1RSTF8xMDBNSHosCi0JCVJBVEVfSU5fMjQyWH0sCi0K LQl7UzEzTSwgUzYwME0sIFMzMDBNLCBSSUlfQ01fQ0xLU0VMX01QVV9WQUwsCQkvKiAzMDBNSHog QVJNICovCi0JCVJJSV9DTV9DTEtTRUxfRFNQX1ZBTCwgUklJX0NNX0NMS1NFTF9HRlhfVkFMLAot CQlSSUlfQ01fQ0xLU0VMMV9DT1JFX1ZBTCwgTUlJX0NNX0NMS1NFTDFfUExMXzEzX1ZBTCwKLQkJ TVhfQ0xLU0VMMl9QTExfMnhfVkFMLCAwLCBTRFJDX1JGUl9DVFJMXzEwME1IeiwKLQkJUkFURV9J Tl8yNDJYfSwKLQotCS8qIFBSQ00gSUlJIC0gRkFTVCAqLwotCXtTMTJNLCBTNTMyTSwgUzI2Nk0s IFJJSUlfQ01fQ0xLU0VMX01QVV9WQUwsCQkvKiAyNjZNSHogQVJNICovCi0JCVJJSUlfQ01fQ0xL U0VMX0RTUF9WQUwsIFJJSUlfQ01fQ0xLU0VMX0dGWF9WQUwsCi0JCVJJSUlfQ01fQ0xLU0VMMV9D T1JFX1ZBTCwgTUlJSV9DTV9DTEtTRUwxX1BMTF8xMl9WQUwsCi0JCU1YX0NMS1NFTDJfUExMXzJ4 X1ZBTCwgMCwgU0RSQ19SRlJfQ1RSTF8xMzNNSHosCi0JCVJBVEVfSU5fMjQyWH0sCi0KLQl7UzEz TSwgUzUzMk0sIFMyNjZNLCBSSUlJX0NNX0NMS1NFTF9NUFVfVkFMLAkJLyogMjY2TUh6IEFSTSAq LwotCQlSSUlJX0NNX0NMS1NFTF9EU1BfVkFMLCBSSUlJX0NNX0NMS1NFTF9HRlhfVkFMLAotCQlS SUlJX0NNX0NMS1NFTDFfQ09SRV9WQUwsIE1JSUlfQ01fQ0xLU0VMMV9QTExfMTNfVkFMLAotCQlN WF9DTEtTRUwyX1BMTF8yeF9WQUwsIDAsIFNEUkNfUkZSX0NUUkxfMTMzTUh6LAotCQlSQVRFX0lO XzI0Mlh9LAotCi0JLyogUFJDTSBJSSAtIFNMT1cgKi8KLQl7UzEyTSwgUzMwME0sIFMxNTBNLCBS SUlfQ01fQ0xLU0VMX01QVV9WQUwsCQkvKiAxNTBNSHogQVJNICovCi0JCVJJSV9DTV9DTEtTRUxf RFNQX1ZBTCwgUklJX0NNX0NMS1NFTF9HRlhfVkFMLAotCQlSSUlfQ01fQ0xLU0VMMV9DT1JFX1ZB TCwgTUlJX0NNX0NMS1NFTDFfUExMXzEyX1ZBTCwKLQkJTVhfQ0xLU0VMMl9QTExfMnhfVkFMLCAw LCBTRFJDX1JGUl9DVFJMXzEwME1IeiwKLQkJUkFURV9JTl8yNDJYfSwKLQotCXtTMTNNLCBTMzAw TSwgUzE1ME0sIFJJSV9DTV9DTEtTRUxfTVBVX1ZBTCwJCS8qIDE1ME1IeiBBUk0gKi8KLQkJUklJ X0NNX0NMS1NFTF9EU1BfVkFMLCBSSUlfQ01fQ0xLU0VMX0dGWF9WQUwsCi0JCVJJSV9DTV9DTEtT RUwxX0NPUkVfVkFMLCBNSUlfQ01fQ0xLU0VMMV9QTExfMTNfVkFMLAotCQlNWF9DTEtTRUwyX1BM TF8yeF9WQUwsIDAsIFNEUkNfUkZSX0NUUkxfMTAwTUh6LAotCQlSQVRFX0lOXzI0Mlh9LAotCi0J LyogUFJDTSBJSUkgLSBTTE9XICovCi0Je1MxMk0sIFMyNjZNLCBTMTMzTSwgUklJSV9DTV9DTEtT RUxfTVBVX1ZBTCwJCS8qIDEzM01IeiBBUk0gKi8KLQkJUklJSV9DTV9DTEtTRUxfRFNQX1ZBTCwg UklJSV9DTV9DTEtTRUxfR0ZYX1ZBTCwKLQkJUklJSV9DTV9DTEtTRUwxX0NPUkVfVkFMLCBNSUlJ X0NNX0NMS1NFTDFfUExMXzEyX1ZBTCwKLQkJTVhfQ0xLU0VMMl9QTExfMnhfVkFMLCAwLCBTRFJD X1JGUl9DVFJMXzEzM01IeiwKLQkJUkFURV9JTl8yNDJYfSwKLQotCXtTMTNNLCBTMjY2TSwgUzEz M00sIFJJSUlfQ01fQ0xLU0VMX01QVV9WQUwsCQkvKiAxMzNNSHogQVJNICovCi0JCVJJSUlfQ01f Q0xLU0VMX0RTUF9WQUwsIFJJSUlfQ01fQ0xLU0VMX0dGWF9WQUwsCi0JCVJJSUlfQ01fQ0xLU0VM MV9DT1JFX1ZBTCwgTUlJSV9DTV9DTEtTRUwxX1BMTF8xM19WQUwsCi0JCU1YX0NMS1NFTDJfUExM XzJ4X1ZBTCwgMCwgU0RSQ19SRlJfQ1RSTF8xMzNNSHosCi0JCVJBVEVfSU5fMjQyWH0sCi0KLQkv KiBQUkNNLVZJSSAoYm9vdC1ieXBhc3MpICovCi0Je1MxMk0sIFMxMk0sIFMxMk0sIFJWSUlfQ01f Q0xLU0VMX01QVV9WQUwsCQkvKiAxMk1IeiBBUk0qLwotCQlSVklJX0NNX0NMS1NFTF9EU1BfVkFM LCBSVklJX0NNX0NMS1NFTF9HRlhfVkFMLAotCQlSVklJX0NNX0NMS1NFTDFfQ09SRV9WQUwsIE1W SUlfQ01fQ0xLU0VMMV9QTExfMTJfVkFMLAotCQlNWF9DTEtTRUwyX1BMTF8yeF9WQUwsIDAsIFNE UkNfUkZSX0NUUkxfQllQQVNTLAotCQlSQVRFX0lOXzI0Mlh9LAotCi0JLyogUFJDTS1WSUkgKGJv b3QtYnlwYXNzKSAqLwotCXtTMTNNLCBTMTNNLCBTMTNNLCBSVklJX0NNX0NMS1NFTF9NUFVfVkFM LAkJLyogMTNNSHogQVJNICovCi0JCVJWSUlfQ01fQ0xLU0VMX0RTUF9WQUwsIFJWSUlfQ01fQ0xL U0VMX0dGWF9WQUwsCi0JCVJWSUlfQ01fQ0xLU0VMMV9DT1JFX1ZBTCwgTVZJSV9DTV9DTEtTRUwx X1BMTF8xM19WQUwsCi0JCU1YX0NMS1NFTDJfUExMXzJ4X1ZBTCwgMCwgU0RSQ19SRlJfQ1RSTF9C WVBBU1MsCi0JCVJBVEVfSU5fMjQyWH0sCi0KLQl7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDB9LAotfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvb3BwMjQzMF9kYXRh LmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL29wcDI0MzBfZGF0YS5jCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBkZWQ4YjU2NmEyM2EuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9t YWNoLW9tYXAyL29wcDI0MzBfZGF0YS5jCisrKyAvZGV2L251bGwKQEAgLTEsMTM2ICswLDAgQEAK LS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCi0vKgotICogb3BwMjQzMF9kYXRh LmMgLSBvbGQtc3R5bGUgIk9QUCIgdGFibGUgZm9yIE9NQVAyNDMwCi0gKgotICogQ29weXJpZ2h0 IChDKSAyMDA1LTIwMDkgVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KLSAqIENvcHlyaWdodCAoQykg MjAwNC0yMDA5IE5va2lhIENvcnBvcmF0aW9uCi0gKgotICogUmljaGFyZCBXb29kcnVmZiA8ci13 b29kcnVmZjJAdGkuY29tPgotICoKLSAqIFRoZSBPTUFQMiBwcm9jZXNzb3IgY2FuIGJlIHJ1biBh dCBzZXZlcmFsIGRpc2NyZXRlICdQUkNNIGNvbmZpZ3VyYXRpb25zJy4KLSAqIFRoZXNlIGNvbmZp Z3VyYXRpb25zIGFyZSBjaGFyYWN0ZXJpemVkIGJ5IHZvbHRhZ2UgYW5kIHNwZWVkIGZvciBjbG9j a3MuCi0gKiBUaGUgZGV2aWNlIGlzIG9ubHkgdmFsaWRhdGVkIGZvciBjZXJ0YWluIGNvbWJpbmF0 aW9ucy4gT25lIHdheSB0byBleHByZXNzCi0gKiB0aGVzZSBjb21iaW5hdGlvbnMgaXMgdmlhIHRo ZSAncmF0aW9zJyB3aGljaCB0aGUgY2xvY2tzIG9wZXJhdGUgd2l0aAotICogcmVzcGVjdCB0byBl YWNoIG90aGVyLiBUaGVzZSByYXRpbyBzZXRzIGFyZSBmb3IgYSBnaXZlbiB2b2x0YWdlL0RQTEwK LSAqIHNldHRpbmcuIEFsbCBjb25maWd1cmF0aW9ucyBjYW4gYmUgZGVzY3JpYmVkIGJ5IGEgRFBM TCBzZXR0aW5nIGFuZCBhIHJhdGlvLgotICoKLSAqIDI0MzAgZGlmZmVycyBmcm9tIDI0MjAgaW4g dGhhdCB0aGVyZSBhcmUgbm8gbW9yZSBwaGFzZSBzeW5jaHJvbml6ZXJzIHVzZWQuCi0gKiBUaGV5 IGJvdGggaGF2ZSBhIHNsaWdodGx5IGRpZmZlcmVudCBjbG9jayBkb21haW4gc2V0dXAuIDI0MjAo aXZhMSxkc3ApIHZzCi0gKiAyNDMwIChpdmEyLjEsIE5PZHNwLCBtZG0pCi0gKgotICogWFhYIE1p c3Npbmcgdm9sdGFnZSBkYXRhLgotICogWFhYIE1pc3NpbmcgMTkuMk1IeiBzeXNfY2xrIHJhdGUg c2V0cy4KLSAqCi0gKiBUSGUgZm9ybWF0IGRlc2NyaWJlZCBpbiB0aGlzIGZpbGUgaXMgZGVwcmVj YXRlZC4gIE9uY2UgYSByZWFzb25hYmxlCi0gKiBPUFAgQVBJIGV4aXN0cywgdGhlIGRhdGEgaW4g dGhpcyBmaWxlIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8gdXNlIGl0LgotICoKLSAqIFRoaXMgaXMg dGVjaG5pY2FsbHkgcGFydCBvZiB0aGUgT01BUDJ4eHggY2xvY2sgY29kZS4KLSAqLwotCi0jaW5j bHVkZSA8bGludXgva2VybmVsLmg+Ci0KLSNpbmNsdWRlICJvcHAyeHh4LmgiCi0jaW5jbHVkZSAi c2RyYy5oIgotI2luY2x1ZGUgImNsb2NrLmgiCi0KLS8qCi0gKiBLZXkgZGl2aWRlcnMgd2hpY2gg bWFrZSB1cCBhIFBSQ00gc2V0LiBSYXRpb3MgZm9yIGEgUFJDTSBhcmUgbWFuZGF0ZWQuCi0gKiB4 dGFsX3NwZWVkLCBkcGxsX3NwZWVkLCBtcHVfc3BlZWQsIENNX0NMS1NFTF9NUFUsCi0gKiBDTV9D TEtTRUxfRFNQLCBDTV9DTEtTRUxfR0ZYLCBDTV9DTEtTRUwxX0NPUkUsIENNX0NMS1NFTDFfUExM LAotICogQ01fQ0xLU0VMMl9QTEwsIENNX0NMS1NFTF9NRE0KLSAqCi0gKiBGaWxsaW5nIGluIHRh YmxlIGJhc2VkIG9uIDI0MzAtU0RQcyB2YXJpYW50cyBhdmFpbGFibGUuICBUaGVyZSBhcmUKLSAq IHF1aXRlIGEgZmV3IG1vcmUgcmF0ZSBjb21iaW5hdGlvbnMgd2hpY2ggY291bGQgYmUgZGVmaW5l ZC4KLSAqCi0gKiBXaGVuIG11bHRpcGxlIHZhbHVlcyBhcmUgZGVmaW5lZCB0aGUgc3RhcnQgdXAg d2lsbCB0cnkgYW5kIGNob29zZQotICogdGhlIGZhc3Rlc3Qgb25lLiBJZiBhICdmYXN0JyB2YWx1 ZSBpcyBkZWZpbmVkLCB0aGVuIGF1dG9tYXRpY2FsbHksCi0gKiB0aGUgLzIgb25lIHNob3VsZCBi ZSBpbmNsdWRlZCBhcyBpdCBjYW4gYmUgdXNlZC4gIEdlbmVyYWxseSBoYXZpbmcKLSAqIG1vcmUg dGhhbiBvbmUgZmFzdCBzZXQgZG9lcyBub3QgbWFrZSBzZW5zZSwgYXMgc3RhdGljIHRpbWluZ3Mg bmVlZAotICogdG8gYmUgY2hhbmdlZCB0byBjaGFuZ2UgdGhlIHNldC4gIFRoZSBleGNlcHRpb24g aXMgdGhlIGJ5cGFzcwotICogc2V0dGluZyB3aGljaCBpcyBhdmFpbGFibGUgZm9yIGxvdyBwb3dl ciBieXBhc3MuCi0gKgotICogTm90ZTogVGhpcyB0YWJsZSBuZWVkcyB0byBiZSBzb3J0ZWQsIGZh c3Rlc3QgdG8gc2xvd2VzdC4KLSAqLwotY29uc3Qgc3RydWN0IHByY21fY29uZmlnIG9tYXAyNDMw X3JhdGVfdGFibGVbXSA9IHsKLQkvKiBQUkNNICM0IC0gcmF0aW8yIChFUzIuMSkgLSBGQVNUICov Ci0Je1MxM00sIFM3OThNLCBTMzk5TSwgUjJfQ01fQ0xLU0VMX01QVV9WQUwsCQkvKiAzOTlNSHog QVJNICovCi0JCVIyX0NNX0NMS1NFTF9EU1BfVkFMLCBSMl9DTV9DTEtTRUxfR0ZYX1ZBTCwKLQkJ UjJfQ01fQ0xLU0VMMV9DT1JFX1ZBTCwgTTRfQ01fQ0xLU0VMMV9QTExfMTNfVkFMLAotCQlNWF9D TEtTRUwyX1BMTF8yeF9WQUwsIFIyX0NNX0NMS1NFTF9NRE1fVkFMLAotCQlTRFJDX1JGUl9DVFJM XzEzM01IeiwKLQkJUkFURV9JTl8yNDNYfSwKLQotCS8qIFBSQ00gIzIgLSByYXRpbzEgKEVTMikg LSBGQVNUICovCi0Je1MxM00sIFM2NThNLCBTMzI5TSwgUjFfQ01fQ0xLU0VMX01QVV9WQUwsCQkv KiAzMzBNSHogQVJNICovCi0JCVIxX0NNX0NMS1NFTF9EU1BfVkFMLCBSMV9DTV9DTEtTRUxfR0ZY X1ZBTCwKLQkJUjFfQ01fQ0xLU0VMMV9DT1JFX1ZBTCwgTTJfQ01fQ0xLU0VMMV9QTExfMTNfVkFM LAotCQlNWF9DTEtTRUwyX1BMTF8yeF9WQUwsIFIxX0NNX0NMS1NFTF9NRE1fVkFMLAotCQlTRFJD X1JGUl9DVFJMXzE2NU1IeiwKLQkJUkFURV9JTl8yNDNYfSwKLQotCS8qIFBSQ00gIzVhIC0gcmF0 aW8xIC0gRkFTVCAqLwotCXtTMTNNLCBTNTMyTSwgUzI2Nk0sIFIxX0NNX0NMS1NFTF9NUFVfVkFM LAkJLyogMjY2TUh6IEFSTSAqLwotCQlSMV9DTV9DTEtTRUxfRFNQX1ZBTCwgUjFfQ01fQ0xLU0VM X0dGWF9WQUwsCi0JCVIxX0NNX0NMS1NFTDFfQ09SRV9WQUwsIE01QV9DTV9DTEtTRUwxX1BMTF8x M19WQUwsCi0JCU1YX0NMS1NFTDJfUExMXzJ4X1ZBTCwgUjFfQ01fQ0xLU0VMX01ETV9WQUwsCi0J CVNEUkNfUkZSX0NUUkxfMTMzTUh6LAotCQlSQVRFX0lOXzI0M1h9LAotCi0JLyogUFJDTSAjNWIg LSByYXRpbzEgLSBGQVNUICovCi0Je1MxM00sIFM0MDBNLCBTMjAwTSwgUjFfQ01fQ0xLU0VMX01Q VV9WQUwsCQkvKiAyMDBNSHogQVJNICovCi0JCVIxX0NNX0NMS1NFTF9EU1BfVkFMLCBSMV9DTV9D TEtTRUxfR0ZYX1ZBTCwKLQkJUjFfQ01fQ0xLU0VMMV9DT1JFX1ZBTCwgTTVCX0NNX0NMS1NFTDFf UExMXzEzX1ZBTCwKLQkJTVhfQ0xLU0VMMl9QTExfMnhfVkFMLCBSMV9DTV9DTEtTRUxfTURNX1ZB TCwKLQkJU0RSQ19SRlJfQ1RSTF8xMDBNSHosCi0JCVJBVEVfSU5fMjQzWH0sCi0KLQkvKiBQUkNN ICM0IC0gcmF0aW8xIChFUzIuMSkgLSBTTE9XICovCi0Je1MxM00sIFMzOTlNLCBTMTk5TSwgUjJf Q01fQ0xLU0VMX01QVV9WQUwsCQkvKiAyMDBNSHogQVJNICovCi0JCVIyX0NNX0NMS1NFTF9EU1Bf VkFMLCBSMl9DTV9DTEtTRUxfR0ZYX1ZBTCwKLQkJUjJfQ01fQ0xLU0VMMV9DT1JFX1ZBTCwgTTRf Q01fQ0xLU0VMMV9QTExfMTNfVkFMLAotCQlNWF9DTEtTRUwyX1BMTF8xeF9WQUwsIFIyX0NNX0NM S1NFTF9NRE1fVkFMLAotCQlTRFJDX1JGUl9DVFJMXzEzM01IeiwKLQkJUkFURV9JTl8yNDNYfSwK LQotCS8qIFBSQ00gIzIgLSByYXRpbzEgKEVTMikgLSBTTE9XICovCi0Je1MxM00sIFMzMjlNLCBT MTY0TSwgUjFfQ01fQ0xLU0VMX01QVV9WQUwsCQkvKiAxNjVNSHogQVJNICovCi0JCVIxX0NNX0NM S1NFTF9EU1BfVkFMLCBSMV9DTV9DTEtTRUxfR0ZYX1ZBTCwKLQkJUjFfQ01fQ0xLU0VMMV9DT1JF X1ZBTCwgTTJfQ01fQ0xLU0VMMV9QTExfMTNfVkFMLAotCQlNWF9DTEtTRUwyX1BMTF8xeF9WQUws IFIxX0NNX0NMS1NFTF9NRE1fVkFMLAotCQlTRFJDX1JGUl9DVFJMXzE2NU1IeiwKLQkJUkFURV9J Tl8yNDNYfSwKLQotCS8qIFBSQ00gIzVhIC0gcmF0aW8xIC0gU0xPVyAqLwotCXtTMTNNLCBTMjY2 TSwgUzEzM00sIFIxX0NNX0NMS1NFTF9NUFVfVkFMLAkJLyogMTMzTUh6IEFSTSAqLwotCQlSMV9D TV9DTEtTRUxfRFNQX1ZBTCwgUjFfQ01fQ0xLU0VMX0dGWF9WQUwsCi0JCVIxX0NNX0NMS1NFTDFf Q09SRV9WQUwsIE01QV9DTV9DTEtTRUwxX1BMTF8xM19WQUwsCi0JCU1YX0NMS1NFTDJfUExMXzF4 X1ZBTCwgUjFfQ01fQ0xLU0VMX01ETV9WQUwsCi0JCVNEUkNfUkZSX0NUUkxfMTMzTUh6LAotCQlS QVRFX0lOXzI0M1h9LAotCi0JLyogUFJDTSAjNWIgLSByYXRpbzEgLSBTTE9XKi8KLQl7UzEzTSwg UzIwME0sIFMxMDBNLCBSMV9DTV9DTEtTRUxfTVBVX1ZBTCwJCS8qIDEwME1IeiBBUk0gKi8KLQkJ UjFfQ01fQ0xLU0VMX0RTUF9WQUwsIFIxX0NNX0NMS1NFTF9HRlhfVkFMLAotCQlSMV9DTV9DTEtT RUwxX0NPUkVfVkFMLCBNNUJfQ01fQ0xLU0VMMV9QTExfMTNfVkFMLAotCQlNWF9DTEtTRUwyX1BM TF8xeF9WQUwsIFIxX0NNX0NMS1NFTF9NRE1fVkFMLAotCQlTRFJDX1JGUl9DVFJMXzEwME1IeiwK LQkJUkFURV9JTl8yNDNYfSwKLQotCS8qIFBSQ00tYm9vdC9ieXBhc3MgKi8KLQl7UzEzTSwgUzEz TSwgUzEzTSwgUkJfQ01fQ0xLU0VMX01QVV9WQUwsCQkvKiAxM01IeiAqLwotCQlSQl9DTV9DTEtT RUxfRFNQX1ZBTCwgUkJfQ01fQ0xLU0VMX0dGWF9WQUwsCi0JCVJCX0NNX0NMS1NFTDFfQ09SRV9W QUwsIE1CX0NNX0NMS1NFTDFfUExMXzEzX1ZBTCwKLQkJTVhfQ0xLU0VMMl9QTExfMnhfVkFMLCBS Ql9DTV9DTEtTRUxfTURNX1ZBTCwKLQkJU0RSQ19SRlJfQ1RSTF9CWVBBU1MsCi0JCVJBVEVfSU5f MjQzWH0sCi0KLQkvKiBQUkNNLWJvb3QvYnlwYXNzICovCi0Je1MxMk0sIFMxMk0sIFMxMk0sIFJC X0NNX0NMS1NFTF9NUFVfVkFMLAkJLyogMTJNSHogKi8KLQkJUkJfQ01fQ0xLU0VMX0RTUF9WQUws IFJCX0NNX0NMS1NFTF9HRlhfVkFMLAotCQlSQl9DTV9DTEtTRUwxX0NPUkVfVkFMLCBNQl9DTV9D TEtTRUwxX1BMTF8xMl9WQUwsCi0JCU1YX0NMS1NFTDJfUExMXzJ4X1ZBTCwgUkJfQ01fQ0xLU0VM X01ETV9WQUwsCi0JCVNEUkNfUkZSX0NUUkxfQllQQVNTLAotCQlSQVRFX0lOXzI0M1h9LAotCi0J eyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfSwKLX07CmRpZmYgLS1naXQgYS9hcmNo L2FybS9tYWNoLW9tYXAyL29wcDJ4eHguaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvb3BwMnh4eC5o CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDUxMTgyY2RjMDIuLjAwMDAwMDAwMDAw MAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL29wcDJ4eHguaAorKysgL2Rldi9udWxsCkBAIC0x LDQzMCArMCwwIEBACi0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwotLyoK LSAqIG9wcDJ4eHguaCAtIG1hY3JvcyBmb3Igb2xkLXN0eWxlIE9NQVAyeHh4ICJPUFAiIGRlZmlu aXRpb25zCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDkgVGV4YXMgSW5zdHJ1bWVudHMs IEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA5IE5va2lhIENvcnBvcmF0aW9uCi0gKgot ICogUmljaGFyZCBXb29kcnVmZiA8ci13b29kcnVmZjJAdGkuY29tPgotICoKLSAqIFRoZSBPTUFQ MiBwcm9jZXNzb3IgY2FuIGJlIHJ1biBhdCBzZXZlcmFsIGRpc2NyZXRlICdQUkNNIGNvbmZpZ3Vy YXRpb25zJy4KLSAqIFRoZXNlIGNvbmZpZ3VyYXRpb25zIGFyZSBjaGFyYWN0ZXJpemVkIGJ5IHZv bHRhZ2UgYW5kIHNwZWVkIGZvciBjbG9ja3MuCi0gKiBUaGUgZGV2aWNlIGlzIG9ubHkgdmFsaWRh dGVkIGZvciBjZXJ0YWluIGNvbWJpbmF0aW9ucy4gT25lIHdheSB0byBleHByZXNzCi0gKiB0aGVz ZSBjb21iaW5hdGlvbnMgaXMgdmlhIHRoZSAncmF0aW8ncycgd2hpY2ggdGhlIGNsb2NrcyBvcGVy YXRlIHdpdGgKLSAqIHJlc3BlY3QgdG8gZWFjaCBvdGhlci4gVGhlc2UgcmF0aW8gc2V0cyBhcmUg Zm9yIGEgZ2l2ZW4gdm9sdGFnZS9EUExMCi0gKiBzZXR0aW5nLiBBbGwgY29uZmlndXJhdGlvbnMg Y2FuIGJlIGRlc2NyaWJlZCBieSBhIERQTEwgc2V0dGluZyBhbmQgYSByYXRpbwotICogVGhlcmUg YXJlIDMgcmF0aW8gc2V0cyBmb3IgdGhlIDI0MzAgYW5kIFggcmF0aW8gc2V0cyBmb3IgMjQyMC4K LSAqCi0gKiAyNDMwIGRpZmZlcnMgZnJvbSAyNDIwIGluIHRoYXQgdGhlcmUgYXJlIG5vIG1vcmUg cGhhc2Ugc3luY2hyb25pemVycyB1c2VkLgotICogVGhleSBib3RoIGhhdmUgYSBzbGlnaHRseSBk aWZmZXJlbnQgY2xvY2sgZG9tYWluIHNldHVwLiAyNDIwKGl2YTEsZHNwKSB2cwotICogMjQzMCAo aXZhMi4xLCBOT2RzcCwgbWRtKQotICoKLSAqIFhYWCBNaXNzaW5nIHZvbHRhZ2UgZGF0YS4KLSAq Ci0gKiBUSGUgZm9ybWF0IGRlc2NyaWJlZCBpbiB0aGlzIGZpbGUgaXMgZGVwcmVjYXRlZC4gIE9u Y2UgYSByZWFzb25hYmxlCi0gKiBPUFAgQVBJIGV4aXN0cywgdGhlIGRhdGEgaW4gdGhpcyBmaWxl IHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8gdXNlIGl0LgotICoKLSAqIFRoaXMgaXMgdGVjaG5pY2Fs bHkgcGFydCBvZiB0aGUgT01BUDJ4eHggY2xvY2sgY29kZS4KLSAqLwotCi0jaWZuZGVmIF9fQVJD SF9BUk1fTUFDSF9PTUFQMl9PUFAyWFhYX0gKLSNkZWZpbmUgX19BUkNIX0FSTV9NQUNIX09NQVAy X09QUDJYWFhfSAotCi0vKioKLSAqIHN0cnVjdCBwcmNtX2NvbmZpZyAtIGRlZmluZSBjbG9jayBy YXRlcyBvbiBhIHBlci1PUFAgYmFzaXMgKDI0eHgpCi0gKgotICogS2V5IGRpdmlkZXJzIHdoaWNo IG1ha2UgdXAgYSBQUkNNIHNldC4gUmF0aW8ncyBmb3IgYSBQUkNNIGFyZSBtYW5kYXRlZC4KLSAq IHh0YWxfc3BlZWQsIGRwbGxfc3BlZWQsIG1wdV9zcGVlZCwgQ01fQ0xLU0VMX01QVSxDTV9DTEtT RUxfRFNQCi0gKiBDTV9DTEtTRUxfR0ZYLCBDTV9DTEtTRUwxX0NPUkUsIENNX0NMS1NFTDFfUExM IENNX0NMS1NFTDJfUExMLCBDTV9DTEtTRUxfTURNCi0gKgotICogVGhpcyBpcyBkZXByZWNhdGVk LiAgQXMgc29vbiBhcyB3ZSBoYXZlIGEgZGVjZW50IE9QUCBBUEksIHdlIHNob3VsZAotICogbW92 ZSBhbGwgdGhpcyBzdHVmZiB0byBpdC4KLSAqLwotc3RydWN0IHByY21fY29uZmlnIHsKLQl1bnNp Z25lZCBsb25nIHh0YWxfc3BlZWQ7CS8qIGNyeXN0YWwgcmF0ZSAqLwotCXVuc2lnbmVkIGxvbmcg ZHBsbF9zcGVlZDsJLyogZHBsbDogb3V0Knh0YWwqTS8oTi0xKXRhYmxlX3JlY2FsYyAqLwotCXVu c2lnbmVkIGxvbmcgbXB1X3NwZWVkOwkvKiBzcGVlZCBvZiBNUFUgKi8KLQl1bnNpZ25lZCBsb25n IGNtX2Nsa3NlbF9tcHU7CS8qIG1wdSBkaXZpZGVyICovCi0JdW5zaWduZWQgbG9uZyBjbV9jbGtz ZWxfZHNwOwkvKiBkc3AraXZhMSBkaXYoMjQyMCksIGl2YTIuMSgyNDMwKSAqLwotCXVuc2lnbmVk IGxvbmcgY21fY2xrc2VsX2dmeDsJLyogZ2Z4IGRpdmlkZXJzICovCi0JdW5zaWduZWQgbG9uZyBj bV9jbGtzZWwxX2NvcmU7CS8qIG1ham9yIHN1YnN5c3RlbSBkaXZpZGVycyAqLwotCXVuc2lnbmVk IGxvbmcgY21fY2xrc2VsMV9wbGw7CS8qIG0sbiAqLwotCXVuc2lnbmVkIGxvbmcgY21fY2xrc2Vs Ml9wbGw7CS8qIGRwbGx4MSBvciB4MiBvdXQgKi8KLQl1bnNpZ25lZCBsb25nIGNtX2Nsa3NlbF9t ZG07CS8qIG1vZGVtIGRpdmlkZXJzIDI0MzAgb25seSAqLwotCXVuc2lnbmVkIGxvbmcgYmFzZV9z ZHJjX3JmcjsJLyogYmFzZSByZWZyZXNoIHRpbWluZyBmb3IgYSBzZXQgKi8KLQl1bnNpZ25lZCBz aG9ydCBmbGFnczsKLX07Ci0KLQotLyogQ29yZSBmaWVsZHMgZm9yIGNtX2Nsa3NlbCwgbm90IHJh dGlvIGdvdmVybmVkICovCi0jZGVmaW5lIFJYX0NMS1NFTF9EU1MxCQkJKDB4MTAgPDwgOCkKLSNk ZWZpbmUgUlhfQ0xLU0VMX0RTUzIJCQkoMHgwIDw8IDEzKQotI2RlZmluZSBSWF9DTEtTRUxfU1NJ CQkJKDB4NSA8PCAyMCkKLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiBWb2x0YWdlL0RQTEwgcmF0 aW9zCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKiAyNDMwIFJhdGlvJ3MsIDI0MzAtUmF0aW8g Q29uZmlnIDEgKi8KLSNkZWZpbmUgUjFfQ0xLU0VMX0wzCQkJKDQgPDwgMCkKLSNkZWZpbmUgUjFf Q0xLU0VMX0w0CQkJKDIgPDwgNSkKLSNkZWZpbmUgUjFfQ0xLU0VMX1VTQgkJCSg0IDw8IDI1KQot I2RlZmluZSBSMV9DTV9DTEtTRUwxX0NPUkVfVkFMCQkoUjFfQ0xLU0VMX1VTQiB8IFJYX0NMS1NF TF9TU0kgfCBcCi0JCQkJCSBSWF9DTEtTRUxfRFNTMiB8IFJYX0NMS1NFTF9EU1MxIHwgXAotCQkJ CQkgUjFfQ0xLU0VMX0w0IHwgUjFfQ0xLU0VMX0wzKQotI2RlZmluZSBSMV9DTEtTRUxfTVBVCQkJ KDIgPDwgMCkKLSNkZWZpbmUgUjFfQ01fQ0xLU0VMX01QVV9WQUwJCVIxX0NMS1NFTF9NUFUKLSNk ZWZpbmUgUjFfQ0xLU0VMX0RTUAkJCSgyIDw8IDApCi0jZGVmaW5lIFIxX0NMS1NFTF9EU1BfSUYJ CSgyIDw8IDUpCi0jZGVmaW5lIFIxX0NNX0NMS1NFTF9EU1BfVkFMCQkoUjFfQ0xLU0VMX0RTUCB8 IFIxX0NMS1NFTF9EU1BfSUYpCi0jZGVmaW5lIFIxX0NMS1NFTF9HRlgJCQkoMiA8PCAwKQotI2Rl ZmluZSBSMV9DTV9DTEtTRUxfR0ZYX1ZBTAkJUjFfQ0xLU0VMX0dGWAotI2RlZmluZSBSMV9DTEtT RUxfTURNCQkJKDQgPDwgMCkKLSNkZWZpbmUgUjFfQ01fQ0xLU0VMX01ETV9WQUwJCVIxX0NMS1NF TF9NRE0KLQotLyogMjQzMC1SYXRpbyBDb25maWcgMiAqLwotI2RlZmluZSBSMl9DTEtTRUxfTDMJ CQkoNiA8PCAwKQotI2RlZmluZSBSMl9DTEtTRUxfTDQJCQkoMiA8PCA1KQotI2RlZmluZSBSMl9D TEtTRUxfVVNCCQkJKDIgPDwgMjUpCi0jZGVmaW5lIFIyX0NNX0NMS1NFTDFfQ09SRV9WQUwJCShS Ml9DTEtTRUxfVVNCIHwgUlhfQ0xLU0VMX1NTSSB8IFwKLQkJCQkJIFJYX0NMS1NFTF9EU1MyIHwg UlhfQ0xLU0VMX0RTUzEgfCBcCi0JCQkJCSBSMl9DTEtTRUxfTDQgfCBSMl9DTEtTRUxfTDMpCi0j ZGVmaW5lIFIyX0NMS1NFTF9NUFUJCQkoMiA8PCAwKQotI2RlZmluZSBSMl9DTV9DTEtTRUxfTVBV X1ZBTAkJUjJfQ0xLU0VMX01QVQotI2RlZmluZSBSMl9DTEtTRUxfRFNQCQkJKDIgPDwgMCkKLSNk ZWZpbmUgUjJfQ0xLU0VMX0RTUF9JRgkJKDMgPDwgNSkKLSNkZWZpbmUgUjJfQ01fQ0xLU0VMX0RT UF9WQUwJCShSMl9DTEtTRUxfRFNQIHwgUjJfQ0xLU0VMX0RTUF9JRikKLSNkZWZpbmUgUjJfQ0xL U0VMX0dGWAkJCSgyIDw8IDApCi0jZGVmaW5lIFIyX0NNX0NMS1NFTF9HRlhfVkFMCQlSMl9DTEtT RUxfR0ZYCi0jZGVmaW5lIFIyX0NMS1NFTF9NRE0JCQkoNiA8PCAwKQotI2RlZmluZSBSMl9DTV9D TEtTRUxfTURNX1ZBTAkJUjJfQ0xLU0VMX01ETQotCi0vKiAyNDMwLVJhdGlvIEJvb3RtIChCWVBB U1MpICovCi0jZGVmaW5lIFJCX0NMS1NFTF9MMwkJCSgxIDw8IDApCi0jZGVmaW5lIFJCX0NMS1NF TF9MNAkJCSgxIDw8IDUpCi0jZGVmaW5lIFJCX0NMS1NFTF9VU0IJCQkoMSA8PCAyNSkKLSNkZWZp bmUgUkJfQ01fQ0xLU0VMMV9DT1JFX1ZBTAkJKFJCX0NMS1NFTF9VU0IgfCBSWF9DTEtTRUxfU1NJ IHwgXAotCQkJCQkgUlhfQ0xLU0VMX0RTUzIgfCBSWF9DTEtTRUxfRFNTMSB8IFwKLQkJCQkJIFJC X0NMS1NFTF9MNCB8IFJCX0NMS1NFTF9MMykKLSNkZWZpbmUgUkJfQ0xLU0VMX01QVQkJCSgxIDw8 IDApCi0jZGVmaW5lIFJCX0NNX0NMS1NFTF9NUFVfVkFMCQlSQl9DTEtTRUxfTVBVCi0jZGVmaW5l IFJCX0NMS1NFTF9EU1AJCQkoMSA8PCAwKQotI2RlZmluZSBSQl9DTEtTRUxfRFNQX0lGCQkoMSA8 PCA1KQotI2RlZmluZSBSQl9DTV9DTEtTRUxfRFNQX1ZBTAkJKFJCX0NMS1NFTF9EU1AgfCBSQl9D TEtTRUxfRFNQX0lGKQotI2RlZmluZSBSQl9DTEtTRUxfR0ZYCQkJKDEgPDwgMCkKLSNkZWZpbmUg UkJfQ01fQ0xLU0VMX0dGWF9WQUwJCVJCX0NMS1NFTF9HRlgKLSNkZWZpbmUgUkJfQ0xLU0VMX01E TQkJCSgxIDw8IDApCi0jZGVmaW5lIFJCX0NNX0NMS1NFTF9NRE1fVkFMCQlSQl9DTEtTRUxfTURN Ci0KLS8qIDI0MjAgUmF0aW8gRXF1aXZhbGVudHMgKi8KLSNkZWZpbmUgUlhYX0NMS1NFTF9WTFlO UQkJKDB4MTIgPDwgMTUpCi0jZGVmaW5lIFJYWF9DTEtTRUxfU1NJCQkJKDB4OCA8PCAyMCkKLQot LyogMjQyMC1QUkNNIElJSSA1MzJNSHogY29yZSAqLwotI2RlZmluZSBSSUlJX0NMS1NFTF9MMwkJ CSg0IDw8IDApCS8qIDEzM01IeiAqLwotI2RlZmluZSBSSUlJX0NMS1NFTF9MNAkJCSgyIDw8IDUp CS8qIDY2LjVNSHogKi8KLSNkZWZpbmUgUklJSV9DTEtTRUxfVVNCCQkJKDQgPDwgMjUpCS8qIDMz LjI1TUh6ICovCi0jZGVmaW5lIFJJSUlfQ01fQ0xLU0VMMV9DT1JFX1ZBTAkoUklJSV9DTEtTRUxf VVNCIHwgUlhYX0NMS1NFTF9TU0kgfCBcCi0JCQkJCSBSWFhfQ0xLU0VMX1ZMWU5RIHwgUlhfQ0xL U0VMX0RTUzIgfCBcCi0JCQkJCSBSWF9DTEtTRUxfRFNTMSB8IFJJSUlfQ0xLU0VMX0w0IHwgXAot CQkJCQkgUklJSV9DTEtTRUxfTDMpCi0jZGVmaW5lIFJJSUlfQ0xLU0VMX01QVQkJCSgyIDw8IDAp CS8qIDI2Nk1IeiAqLwotI2RlZmluZSBSSUlJX0NNX0NMS1NFTF9NUFVfVkFMCQlSSUlJX0NMS1NF TF9NUFUKLSNkZWZpbmUgUklJSV9DTEtTRUxfRFNQCQkJKDMgPDwgMCkJLyogYzV4IC0gMTc3LjNN SHogKi8KLSNkZWZpbmUgUklJSV9DTEtTRUxfRFNQX0lGCQkoMiA8PCA1KQkvKiBjNXggLSA4OC42 N01IeiAqLwotI2RlZmluZSBSSUlJX1NZTkNfRFNQCQkJKDEgPDwgNykJLyogRW5hYmxlIHN5bmMg Ki8KLSNkZWZpbmUgUklJSV9DTEtTRUxfSVZBCQkJKDYgPDwgOCkJLyogaXZhMSAtIDg4LjY3TUh6 ICovCi0jZGVmaW5lIFJJSUlfU1lOQ19JVkEJCQkoMSA8PCAxMykJLyogRW5hYmxlIHN5bmMgKi8K LSNkZWZpbmUgUklJSV9DTV9DTEtTRUxfRFNQX1ZBTAkJKFJJSUlfU1lOQ19JVkEgfCBSSUlJX0NM S1NFTF9JVkEgfCBcCi0JCQkJCSBSSUlJX1NZTkNfRFNQIHwgUklJSV9DTEtTRUxfRFNQX0lGIHwg XAotCQkJCQkgUklJSV9DTEtTRUxfRFNQKQotI2RlZmluZSBSSUlJX0NMS1NFTF9HRlgJCQkoMiA8 PCAwKQkvKiA2Ni41TUh6ICovCi0jZGVmaW5lIFJJSUlfQ01fQ0xLU0VMX0dGWF9WQUwJCVJJSUlf Q0xLU0VMX0dGWAotCi0vKiAyNDIwLVBSQ00gSUkgNjAwTUh6IGNvcmUgKi8KLSNkZWZpbmUgUklJ X0NMS1NFTF9MMwkJCSg2IDw8IDApCS8qIDEwME1IeiAqLwotI2RlZmluZSBSSUlfQ0xLU0VMX0w0 CQkJKDIgPDwgNSkJLyogNTBNSHogKi8KLSNkZWZpbmUgUklJX0NMS1NFTF9VU0IJCQkoMiA8PCAy NSkJLyogNTBNSHogKi8KLSNkZWZpbmUgUklJX0NNX0NMS1NFTDFfQ09SRV9WQUwJCShSSUlfQ0xL U0VMX1VTQiB8IFJYWF9DTEtTRUxfU1NJIHwgXAotCQkJCQkgUlhYX0NMS1NFTF9WTFlOUSB8IFJY X0NMS1NFTF9EU1MyIHwgXAotCQkJCQkgUlhfQ0xLU0VMX0RTUzEgfCBSSUlfQ0xLU0VMX0w0IHwg XAotCQkJCQkgUklJX0NMS1NFTF9MMykKLSNkZWZpbmUgUklJX0NMS1NFTF9NUFUJCQkoMiA8PCAw KQkvKiAzMDBNSHogKi8KLSNkZWZpbmUgUklJX0NNX0NMS1NFTF9NUFVfVkFMCQlSSUlfQ0xLU0VM X01QVQotI2RlZmluZSBSSUlfQ0xLU0VMX0RTUAkJCSgzIDw8IDApCS8qIGM1eCAtIDIwME1IeiAq LwotI2RlZmluZSBSSUlfQ0xLU0VMX0RTUF9JRgkJKDIgPDwgNSkJLyogYzV4IC0gMTAwTUh6ICov Ci0jZGVmaW5lIFJJSV9TWU5DX0RTUAkJCSgwIDw8IDcpCS8qIEJ5cGFzcyBzeW5jICovCi0jZGVm aW5lIFJJSV9DTEtTRUxfSVZBCQkJKDMgPDwgOCkJLyogaXZhMSAtIDIwME1IeiAqLwotI2RlZmlu ZSBSSUlfU1lOQ19JVkEJCQkoMCA8PCAxMykJLyogQnlwYXNzIHN5bmMgKi8KLSNkZWZpbmUgUklJ X0NNX0NMS1NFTF9EU1BfVkFMCQkoUklJX1NZTkNfSVZBIHwgUklJX0NMS1NFTF9JVkEgfCBcCi0J CQkJCSBSSUlfU1lOQ19EU1AgfCBSSUlfQ0xLU0VMX0RTUF9JRiB8IFwKLQkJCQkJIFJJSV9DTEtT RUxfRFNQKQotI2RlZmluZSBSSUlfQ0xLU0VMX0dGWAkJCSgyIDw8IDApCS8qIDUwTUh6ICovCi0j ZGVmaW5lIFJJSV9DTV9DTEtTRUxfR0ZYX1ZBTAkJUklJX0NMS1NFTF9HRlgKLQotLyogMjQyMC1Q UkNNIEkgNjYwTUh6IGNvcmUgKi8KLSNkZWZpbmUgUklfQ0xLU0VMX0wzCQkJKDQgPDwgMCkJLyog MTY1TUh6ICovCi0jZGVmaW5lIFJJX0NMS1NFTF9MNAkJCSgyIDw8IDUpCS8qIDgyLjVNSHogKi8K LSNkZWZpbmUgUklfQ0xLU0VMX1VTQgkJCSg0IDw8IDI1KQkvKiA0MS4yNU1IeiAqLwotI2RlZmlu ZSBSSV9DTV9DTEtTRUwxX0NPUkVfVkFMCQkoUklfQ0xLU0VMX1VTQiB8CQlcCi0JCQkJCSBSWFhf Q0xLU0VMX1NTSSB8IFJYWF9DTEtTRUxfVkxZTlEgfCBcCi0JCQkJCSBSWF9DTEtTRUxfRFNTMiB8 IFJYX0NMS1NFTF9EU1MxIHwgXAotCQkJCQkgUklfQ0xLU0VMX0w0IHwgUklfQ0xLU0VMX0wzKQot I2RlZmluZSBSSV9DTEtTRUxfTVBVCQkJKDIgPDwgMCkJLyogMzMwTUh6ICovCi0jZGVmaW5lIFJJ X0NNX0NMS1NFTF9NUFVfVkFMCQlSSV9DTEtTRUxfTVBVCi0jZGVmaW5lIFJJX0NMS1NFTF9EU1AJ CQkoMyA8PCAwKQkvKiBjNXggLSAyMjBNSHogKi8KLSNkZWZpbmUgUklfQ0xLU0VMX0RTUF9JRgkJ KDIgPDwgNSkJLyogYzV4IC0gMTEwTUh6ICovCi0jZGVmaW5lIFJJX1NZTkNfRFNQCQkJKDEgPDwg NykJLyogQWN0aXZhdGUgc3luYyAqLwotI2RlZmluZSBSSV9DTEtTRUxfSVZBCQkJKDQgPDwgOCkJ LyogaXZhMSAtIDE2NU1IeiAqLwotI2RlZmluZSBSSV9TWU5DX0lWQQkJCSgwIDw8IDEzKQkvKiBC eXBhc3Mgc3luYyAqLwotI2RlZmluZSBSSV9DTV9DTEtTRUxfRFNQX1ZBTAkJKFJJX1NZTkNfSVZB IHwgUklfQ0xLU0VMX0lWQSB8CVwKLQkJCQkJIFJJX1NZTkNfRFNQIHwgUklfQ0xLU0VMX0RTUF9J RiB8IFwKLQkJCQkJIFJJX0NMS1NFTF9EU1ApCi0jZGVmaW5lIFJJX0NMS1NFTF9HRlgJCQkoMSA8 PCAwKQkvKiAxNjVNSHogKi8KLSNkZWZpbmUgUklfQ01fQ0xLU0VMX0dGWF9WQUwJCVJJX0NMS1NF TF9HRlgKLQotLyogMjQyMC1QUkNNIFZJSSAoYm9vdCkgKi8KLSNkZWZpbmUgUlZJSV9DTEtTRUxf TDMJCQkoMSA8PCAwKQotI2RlZmluZSBSVklJX0NMS1NFTF9MNAkJCSgxIDw8IDUpCi0jZGVmaW5l IFJWSUlfQ0xLU0VMX0RTUzEJCSgxIDw8IDgpCi0jZGVmaW5lIFJWSUlfQ0xLU0VMX0RTUzIJCSgw IDw8IDEzKQotI2RlZmluZSBSVklJX0NMS1NFTF9WTFlOUQkJKDEgPDwgMTUpCi0jZGVmaW5lIFJW SUlfQ0xLU0VMX1NTSQkJCSgxIDw8IDIwKQotI2RlZmluZSBSVklJX0NMS1NFTF9VU0IJCQkoMSA8 PCAyNSkKLQotI2RlZmluZSBSVklJX0NNX0NMS1NFTDFfQ09SRV9WQUwJKFJWSUlfQ0xLU0VMX1VT QiB8IFJWSUlfQ0xLU0VMX1NTSSB8IFwKLQkJCQkJIFJWSUlfQ0xLU0VMX1ZMWU5RIHwgXAotCQkJ CQkgUlZJSV9DTEtTRUxfRFNTMiB8IFJWSUlfQ0xLU0VMX0RTUzEgfCBcCi0JCQkJCSBSVklJX0NM S1NFTF9MNCB8IFJWSUlfQ0xLU0VMX0wzKQotCi0jZGVmaW5lIFJWSUlfQ0xLU0VMX01QVQkJCSgx IDw8IDApIC8qIGFsbCBkaXZpZGUgYnkgMSAqLwotI2RlZmluZSBSVklJX0NNX0NMS1NFTF9NUFVf VkFMCQlSVklJX0NMS1NFTF9NUFUKLQotI2RlZmluZSBSVklJX0NMS1NFTF9EU1AJCQkoMSA8PCAw KQotI2RlZmluZSBSVklJX0NMS1NFTF9EU1BfSUYJCSgxIDw8IDUpCi0jZGVmaW5lIFJWSUlfU1lO Q19EU1AJCQkoMCA8PCA3KQotI2RlZmluZSBSVklJX0NMS1NFTF9JVkEJCQkoMSA8PCA4KQotI2Rl ZmluZSBSVklJX1NZTkNfSVZBCQkJKDAgPDwgMTMpCi0jZGVmaW5lIFJWSUlfQ01fQ0xLU0VMX0RT UF9WQUwJCShSVklJX1NZTkNfSVZBIHwgUlZJSV9DTEtTRUxfSVZBIHwgXAotCQkJCQkgUlZJSV9T WU5DX0RTUCB8IFJWSUlfQ0xLU0VMX0RTUF9JRiB8IFwKLQkJCQkJIFJWSUlfQ0xLU0VMX0RTUCkK LQotI2RlZmluZSBSVklJX0NMS1NFTF9HRlgJCQkoMSA8PCAwKQotI2RlZmluZSBSVklJX0NNX0NM S1NFTF9HRlhfVkFMCQlSVklJX0NMS1NFTF9HRlgKLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiAy NDMwIFRhcmdldCBtb2RlczogQWxvbmcgd2l0aCBlYWNoIGNvbmZpZ3VyYXRpb24gdGhlIENQVSBo YXMgc2V2ZXJhbAotICogbW9kZXMgd2hpY2ggZ29lcyBhbG9uZyB3aXRoIHRoZW0uIE1vZGVzIG1h aW5seSBhcmUgdGhlIGFkZGl0aW9uIG9mCi0gKiBkZXNjcmliZSBEUExMIGNvbWJpbmF0aW9ucyB0 byBnbyBhbG9uZyB3aXRoIGEgcmF0aW8uCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKiBIYXJk d2FyZSBnb3Zlcm5lZCAqLwotI2RlZmluZSBNWF80OE1fU1JDCQkJKDAgPDwgMykKLSNkZWZpbmUg TVhfNTRNX1NSQwkJCSgwIDw8IDUpCi0jZGVmaW5lIE1YX0FQTExTX0NMSUtJTl8xMgkJKDMgPDwg MjMpCi0jZGVmaW5lIE1YX0FQTExTX0NMSUtJTl8xMwkJKDIgPDwgMjMpCi0jZGVmaW5lIE1YX0FQ TExTX0NMSUtJTl8xOV8yCQkoMCA8PCAyMykKLQotLyoKLSAqIDI0MzAgLSBzdGFuZGFsb25lLCAy KnJlZipNLyhuKzEpLCBNL04gaXMgZm9yIGV4YWN0bmVzcyBub3QgcmVsb2NrIHNwZWVkCi0gKiAj NWEJKHJhdGlvMSkgYmFzZXBvcnQtdGFyZ2V0LCB0YXJnZXQgRFBMTCA9IDI2NioyID0gNTMyTUh6 Ci0gKi8KLSNkZWZpbmUgTTVBX0RQTExfTVVMVF8xMgkJKDEzMyA8PCAxMikKLSNkZWZpbmUgTTVB X0RQTExfRElWXzEyCQkJKDUgPDwgOCkKLSNkZWZpbmUgTTVBX0NNX0NMS1NFTDFfUExMXzEyX1ZB TAkoTVhfNDhNX1NSQyB8IE1YXzU0TV9TUkMgfCBcCi0JCQkJCSBNNUFfRFBMTF9ESVZfMTIgfCBN NUFfRFBMTF9NVUxUXzEyIHwgXAotCQkJCQkgTVhfQVBMTFNfQ0xJS0lOXzEyKQotI2RlZmluZSBN NUFfRFBMTF9NVUxUXzEzCQkoNjEgPDwgMTIpCi0jZGVmaW5lIE01QV9EUExMX0RJVl8xMwkJCSgy IDw8IDgpCi0jZGVmaW5lIE01QV9DTV9DTEtTRUwxX1BMTF8xM19WQUwJKE1YXzQ4TV9TUkMgfCBN WF81NE1fU1JDIHwgXAotCQkJCQkgTTVBX0RQTExfRElWXzEzIHwgTTVBX0RQTExfTVVMVF8xMyB8 IFwKLQkJCQkJIE1YX0FQTExTX0NMSUtJTl8xMykKLSNkZWZpbmUgTTVBX0RQTExfTVVMVF8xOQkJ KDU1IDw8IDEyKQotI2RlZmluZSBNNUFfRFBMTF9ESVZfMTkJCQkoMyA8PCA4KQotI2RlZmluZSBN NUFfQ01fQ0xLU0VMMV9QTExfMTlfVkFMCShNWF80OE1fU1JDIHwgTVhfNTRNX1NSQyB8IFwKLQkJ CQkJIE01QV9EUExMX0RJVl8xOSB8IE01QV9EUExMX01VTFRfMTkgfCBcCi0JCQkJCSBNWF9BUExM U19DTElLSU5fMTlfMikKLS8qICM1YgkocmF0aW8xKSB0YXJnZXQgRFBMTCA9IDIwMCoyID0gNDAw TUh6ICovCi0jZGVmaW5lIE01Ql9EUExMX01VTFRfMTIJCSg1MCA8PCAxMikKLSNkZWZpbmUgTTVC X0RQTExfRElWXzEyCQkJKDIgPDwgOCkKLSNkZWZpbmUgTTVCX0NNX0NMS1NFTDFfUExMXzEyX1ZB TAkoTVhfNDhNX1NSQyB8IE1YXzU0TV9TUkMgfCBcCi0JCQkJCSBNNUJfRFBMTF9ESVZfMTIgfCBN NUJfRFBMTF9NVUxUXzEyIHwgXAotCQkJCQkgTVhfQVBMTFNfQ0xJS0lOXzEyKQotI2RlZmluZSBN NUJfRFBMTF9NVUxUXzEzCQkoMjAwIDw8IDEyKQotI2RlZmluZSBNNUJfRFBMTF9ESVZfMTMJCQko MTIgPDwgOCkKLQotI2RlZmluZSBNNUJfQ01fQ0xLU0VMMV9QTExfMTNfVkFMCShNWF80OE1fU1JD IHwgTVhfNTRNX1NSQyB8IFwKLQkJCQkJIE01Ql9EUExMX0RJVl8xMyB8IE01Ql9EUExMX01VTFRf MTMgfCBcCi0JCQkJCSBNWF9BUExMU19DTElLSU5fMTMpCi0jZGVmaW5lIE01Ql9EUExMX01VTFRf MTkJCSgxMjUgPDwgMTIpCi0jZGVmaW5lIE01Ql9EUExMX0RJVl8xOQkJCSgzMSA8PCA4KQotI2Rl ZmluZSBNNUJfQ01fQ0xLU0VMMV9QTExfMTlfVkFMCShNWF80OE1fU1JDIHwgTVhfNTRNX1NSQyB8 IFwKLQkJCQkJIE01Ql9EUExMX0RJVl8xOSB8IE01Ql9EUExMX01VTFRfMTkgfCBcCi0JCQkJCSBN WF9BUExMU19DTElLSU5fMTlfMikKLS8qCi0gKiAjNAkocmF0aW8yKSwgRFBMTCA9IDM5OSoyID0g Nzk4TUh6LCBMMz0xMzNNSHoKLSAqLwotI2RlZmluZSBNNF9EUExMX01VTFRfMTIJCQkoMTMzIDw8 IDEyKQotI2RlZmluZSBNNF9EUExMX0RJVl8xMgkJCSgzIDw8IDgpCi0jZGVmaW5lIE00X0NNX0NM S1NFTDFfUExMXzEyX1ZBTAkoTVhfNDhNX1NSQyB8IE1YXzU0TV9TUkMgfCBcCi0JCQkJCSBNNF9E UExMX0RJVl8xMiB8IE00X0RQTExfTVVMVF8xMiB8IFwKLQkJCQkJIE1YX0FQTExTX0NMSUtJTl8x MikKLQotI2RlZmluZSBNNF9EUExMX01VTFRfMTMJCQkoMzk5IDw8IDEyKQotI2RlZmluZSBNNF9E UExMX0RJVl8xMwkJCSgxMiA8PCA4KQotI2RlZmluZSBNNF9DTV9DTEtTRUwxX1BMTF8xM19WQUwJ KE1YXzQ4TV9TUkMgfCBNWF81NE1fU1JDIHwgXAotCQkJCQkgTTRfRFBMTF9ESVZfMTMgfCBNNF9E UExMX01VTFRfMTMgfCBcCi0JCQkJCSBNWF9BUExMU19DTElLSU5fMTMpCi0KLSNkZWZpbmUgTTRf RFBMTF9NVUxUXzE5CQkJKDE0NSA8PCAxMikKLSNkZWZpbmUgTTRfRFBMTF9ESVZfMTkJCQkoNiA8 PCA4KQotI2RlZmluZSBNNF9DTV9DTEtTRUwxX1BMTF8xOV9WQUwJKE1YXzQ4TV9TUkMgfCBNWF81 NE1fU1JDIHwgXAotCQkJCQkgTTRfRFBMTF9ESVZfMTkgfCBNNF9EUExMX01VTFRfMTkgfCBcCi0J CQkJCSBNWF9BUExMU19DTElLSU5fMTlfMikKLQotLyoKLSAqICMzCShyYXRpbzIpIGJhc2Vwb3J0 LXRhcmdldCwgdGFyZ2V0IERQTEwgPSAzMzAqMiA9IDY2ME1IegotICovCi0jZGVmaW5lIE0zX0RQ TExfTVVMVF8xMgkJCSg1NSA8PCAxMikKLSNkZWZpbmUgTTNfRFBMTF9ESVZfMTIJCQkoMSA8PCA4 KQotI2RlZmluZSBNM19DTV9DTEtTRUwxX1BMTF8xMl9WQUwJKE1YXzQ4TV9TUkMgfCBNWF81NE1f U1JDIHwgXAotCQkJCQkgTTNfRFBMTF9ESVZfMTIgfCBNM19EUExMX01VTFRfMTIgfCBcCi0JCQkJ CSBNWF9BUExMU19DTElLSU5fMTIpCi0jZGVmaW5lIE0zX0RQTExfTVVMVF8xMwkJCSg3NiA8PCAx MikKLSNkZWZpbmUgTTNfRFBMTF9ESVZfMTMJCQkoMiA8PCA4KQotI2RlZmluZSBNM19DTV9DTEtT RUwxX1BMTF8xM19WQUwJKE1YXzQ4TV9TUkMgfCBNWF81NE1fU1JDIHwgXAotCQkJCQkgTTNfRFBM TF9ESVZfMTMgfCBNM19EUExMX01VTFRfMTMgfCBcCi0JCQkJCSBNWF9BUExMU19DTElLSU5fMTMp Ci0jZGVmaW5lIE0zX0RQTExfTVVMVF8xOQkJCSgxNyA8PCAxMikKLSNkZWZpbmUgTTNfRFBMTF9E SVZfMTkJCQkoMCA8PCA4KQotI2RlZmluZSBNM19DTV9DTEtTRUwxX1BMTF8xOV9WQUwJKE1YXzQ4 TV9TUkMgfCBNWF81NE1fU1JDIHwgXAotCQkJCQkgTTNfRFBMTF9ESVZfMTkgfCBNM19EUExMX01V TFRfMTkgfCBcCi0JCQkJCSBNWF9BUExMU19DTElLSU5fMTlfMikKLQotLyoKLSAqICMyICAgKHJh dGlvMSkgRFBMTCA9IDMzMCoyID0gNjYwTUh6LCBMMz0xNjVNSHoKLSAqLwotI2RlZmluZSBNMl9E UExMX01VTFRfMTIJCSAgICAgICAgKDU1IDw8IDEyKQotI2RlZmluZSBNMl9EUExMX0RJVl8xMgkJ ICAgICAgICAoMSA8PCA4KQotI2RlZmluZSBNMl9DTV9DTEtTRUwxX1BMTF8xMl9WQUwJKE1YXzQ4 TV9TUkMgfCBNWF81NE1fU1JDIHwgXAotCQkJCQkgTTJfRFBMTF9ESVZfMTIgfCBNMl9EUExMX01V TFRfMTIgfCBcCi0JCQkJCSBNWF9BUExMU19DTElLSU5fMTIpCi0KLS8qIFNwZWVkIGNoYW5nZXMg LSBVc2VkIDY1OC43TUh6IGluc3RlYWQgb2YgNjYwTUh6IGZvciBMUC1SZWZyZXNoIE09NzYgTj0y LAotICogcmVsb2NrIHRpbWUgaXNzdWUgKi8KLS8qIENvcmUgZnJlcXVlbmN5IGNoYW5nZWQgZnJv bSAzMzAvMTY1IHRvIDMyOS8xNjQgTUh6Ki8KLSNkZWZpbmUgTTJfRFBMTF9NVUxUXzEzCQkgICAg ICAgICg3NiA8PCAxMikKLSNkZWZpbmUgTTJfRFBMTF9ESVZfMTMJCSAgICAgICAgKDIgPDwgOCkK LSNkZWZpbmUgTTJfQ01fQ0xLU0VMMV9QTExfMTNfVkFMCShNWF80OE1fU1JDIHwgTVhfNTRNX1NS QyB8IFwKLQkJCQkJIE0yX0RQTExfRElWXzEzIHwgTTJfRFBMTF9NVUxUXzEzIHwgXAotCQkJCQkg TVhfQVBMTFNfQ0xJS0lOXzEzKQotCi0jZGVmaW5lIE0yX0RQTExfTVVMVF8xOQkJICAgICAgICAo MTcgPDwgMTIpCi0jZGVmaW5lIE0yX0RQTExfRElWXzE5CQkgICAgICAgICgwIDw8IDgpCi0jZGVm aW5lIE0yX0NNX0NMS1NFTDFfUExMXzE5X1ZBTAkoTVhfNDhNX1NSQyB8IE1YXzU0TV9TUkMgfCBc Ci0JCQkJCSBNMl9EUExMX0RJVl8xOSB8IE0yX0RQTExfTVVMVF8xOSB8IFwKLQkJCQkJIE1YX0FQ TExTX0NMSUtJTl8xOV8yKQotCi0vKiBib290IChib290KSAqLwotI2RlZmluZSBNQl9EUExMX01V TFQJCQkoMSA8PCAxMikKLSNkZWZpbmUgTUJfRFBMTF9ESVYJCQkoMCA8PCA4KQotI2RlZmluZSBN Ql9DTV9DTEtTRUwxX1BMTF8xMl9WQUwJKE1YXzQ4TV9TUkMgfCBNWF81NE1fU1JDIHwgXAotCQkJ CQkgTUJfRFBMTF9ESVYgfCBNQl9EUExMX01VTFQgfCBcCi0JCQkJCSBNWF9BUExMU19DTElLSU5f MTIpCi0KLSNkZWZpbmUgTUJfQ01fQ0xLU0VMMV9QTExfMTNfVkFMCShNWF80OE1fU1JDIHwgTVhf NTRNX1NSQyB8IFwKLQkJCQkJIE1CX0RQTExfRElWIHwgTUJfRFBMTF9NVUxUIHwgXAotCQkJCQkg TVhfQVBMTFNfQ0xJS0lOXzEzKQotCi0jZGVmaW5lIE1CX0NNX0NMS1NFTDFfUExMXzE5X1ZBTAko TVhfNDhNX1NSQyB8IE1YXzU0TV9TUkMgfCBcCi0JCQkJCSBNQl9EUExMX0RJViB8IE1CX0RQTExf TVVMVCB8IFwKLQkJCQkJIE1YX0FQTExTX0NMSUtJTl8xOSkKLQotLyoKLSAqIDI0MzAgLSBjaGFz c2lzIChzZWRuYSkKLSAqIDE2NSAocmF0aW8xKSBzYW1lIGFzIGFib3ZlICMyCi0gKiAxNTAgKHJh dGlvMSkKLSAqIDEzMyAocmF0aW8yKSBzYW1lIGFzIGFib3ZlICM0Ci0gKiAxMTAgKHJhdGlvMikg c2FtZSBhcyBhYm92ZSAjMwotICogMTA0IChyYXRpbzIpCi0gKiBib290IChib290KQotICovCi0K LS8qIFBSQ00gSSB0YXJnZXQgRFBMTCA9IDIqMzMwTUh6ID0gNjYwTUh6ICovCi0jZGVmaW5lIE1J X0RQTExfTVVMVF8xMgkJCSg1NSA8PCAxMikKLSNkZWZpbmUgTUlfRFBMTF9ESVZfMTIJCQkoMSA8 PCA4KQotI2RlZmluZSBNSV9DTV9DTEtTRUwxX1BMTF8xMl9WQUwJKE1YXzQ4TV9TUkMgfCBNWF81 NE1fU1JDIHwgXAotCQkJCQkgTUlfRFBMTF9ESVZfMTIgfCBNSV9EUExMX01VTFRfMTIgfCBcCi0J CQkJCSBNWF9BUExMU19DTElLSU5fMTIpCi0KLS8qCi0gKiAyNDIwIEVxdWl2YWxlbnQgLSBtb2Rl IHJlZ2lzdGVycwotICogUFJDTSBJSSAsIHRhcmdldCBEUExMID0gMiozMDBNSHogPSA2MDBNSHoK LSAqLwotI2RlZmluZSBNSUlfRFBMTF9NVUxUXzEyCQkoNTAgPDwgMTIpCi0jZGVmaW5lIE1JSV9E UExMX0RJVl8xMgkJCSgxIDw8IDgpCi0jZGVmaW5lIE1JSV9DTV9DTEtTRUwxX1BMTF8xMl9WQUwJ KE1YXzQ4TV9TUkMgfCBNWF81NE1fU1JDIHwJXAotCQkJCQkgTUlJX0RQTExfRElWXzEyIHwgTUlJ X0RQTExfTVVMVF8xMiB8IFwKLQkJCQkJIE1YX0FQTExTX0NMSUtJTl8xMikKLSNkZWZpbmUgTUlJ X0RQTExfTVVMVF8xMwkJKDMwMCA8PCAxMikKLSNkZWZpbmUgTUlJX0RQTExfRElWXzEzCQkJKDEy IDw8IDgpCi0jZGVmaW5lIE1JSV9DTV9DTEtTRUwxX1BMTF8xM19WQUwJKE1YXzQ4TV9TUkMgfCBN WF81NE1fU1JDIHwJXAotCQkJCQkgTUlJX0RQTExfRElWXzEzIHwgTUlJX0RQTExfTVVMVF8xMyB8 IFwKLQkJCQkJIE1YX0FQTExTX0NMSUtJTl8xMykKLQotLyogUFJDTSBJSUkgdGFyZ2V0IERQTEwg PSAyKjI2NiA9IDUzMk1IeiovCi0jZGVmaW5lIE1JSUlfRFBMTF9NVUxUXzEyCQkoMTMzIDw8IDEy KQotI2RlZmluZSBNSUlJX0RQTExfRElWXzEyCQkoNSA8PCA4KQotI2RlZmluZSBNSUlJX0NNX0NM S1NFTDFfUExMXzEyX1ZBTAkoTVhfNDhNX1NSQyB8IE1YXzU0TV9TUkMgfAlcCi0JCQkJCSBNSUlJ X0RQTExfRElWXzEyIHwgXAotCQkJCQkgTUlJSV9EUExMX01VTFRfMTIgfCBNWF9BUExMU19DTElL SU5fMTIpCi0jZGVmaW5lIE1JSUlfRFBMTF9NVUxUXzEzCQkoMjY2IDw8IDEyKQotI2RlZmluZSBN SUlJX0RQTExfRElWXzEzCQkoMTIgPDwgOCkKLSNkZWZpbmUgTUlJSV9DTV9DTEtTRUwxX1BMTF8x M19WQUwJKE1YXzQ4TV9TUkMgfCBNWF81NE1fU1JDIHwJXAotCQkJCQkgTUlJSV9EUExMX0RJVl8x MyB8IFwKLQkJCQkJIE1JSUlfRFBMTF9NVUxUXzEzIHwgTVhfQVBMTFNfQ0xJS0lOXzEzKQotCi0v KiBQUkNNIFZJSSAoYm9vdCBieXBhc3MpICovCi0jZGVmaW5lIE1WSUlfQ01fQ0xLU0VMMV9QTExf MTJfVkFMCU1CX0NNX0NMS1NFTDFfUExMXzEyX1ZBTAotI2RlZmluZSBNVklJX0NNX0NMS1NFTDFf UExMXzEzX1ZBTAlNQl9DTV9DTEtTRUwxX1BMTF8xM19WQUwKLQotLyogSGlnaCBhbmQgbG93IG9w ZXJhdGlvbiB2YWx1ZSAqLwotI2RlZmluZSBNWF9DTEtTRUwyX1BMTF8yeF9WQUwJCSgyIDw8IDAp Ci0jZGVmaW5lIE1YX0NMS1NFTDJfUExMXzF4X1ZBTAkJKDEgPDwgMCkKLQotLyogTVBVIHNwZWVk IGRlZmluZXMgKi8KLSNkZWZpbmUgUzEyTQkxMjAwMDAwMAotI2RlZmluZSBTMTNNCTEzMDAwMDAw Ci0jZGVmaW5lIFMxOU0JMTkyMDAwMDAKLSNkZWZpbmUgUzI2TQkyNjAwMDAwMAotI2RlZmluZSBT MTAwTQkxMDAwMDAwMDAKLSNkZWZpbmUgUzEzM00JMTMzMDAwMDAwCi0jZGVmaW5lIFMxNTBNCTE1 MDAwMDAwMAotI2RlZmluZSBTMTY0TQkxNjQwMDAwMDAKLSNkZWZpbmUgUzE2NU0JMTY1MDAwMDAw Ci0jZGVmaW5lIFMxOTlNCTE5OTAwMDAwMAotI2RlZmluZSBTMjAwTQkyMDAwMDAwMDAKLSNkZWZp bmUgUzI2Nk0JMjY2MDAwMDAwCi0jZGVmaW5lIFMzMDBNCTMwMDAwMDAwMAotI2RlZmluZSBTMzI5 TQkzMjkwMDAwMDAKLSNkZWZpbmUgUzMzME0JMzMwMDAwMDAwCi0jZGVmaW5lIFMzOTlNCTM5OTAw MDAwMAotI2RlZmluZSBTNDAwTQk0MDAwMDAwMDAKLSNkZWZpbmUgUzUzMk0JNTMyMDAwMDAwCi0j ZGVmaW5lIFM2MDBNCTYwMDAwMDAwMAotI2RlZmluZSBTNjU4TQk2NTgwMDAwMDAKLSNkZWZpbmUg UzY2ME0JNjYwMDAwMDAwCi0jZGVmaW5lIFM3OThNCTc5ODAwMDAwMAotCi0KLWV4dGVybiBjb25z dCBzdHJ1Y3QgcHJjbV9jb25maWcgb21hcDI0MjBfcmF0ZV90YWJsZVtdOwotCi0jaWZkZWYgQ09O RklHX1NPQ19PTUFQMjQzMAotZXh0ZXJuIGNvbnN0IHN0cnVjdCBwcmNtX2NvbmZpZyBvbWFwMjQz MF9yYXRlX3RhYmxlW107Ci0jZWxzZQotI2RlZmluZSBvbWFwMjQzMF9yYXRlX3RhYmxlCU5VTEwK LSNlbmRpZgotZXh0ZXJuIGNvbnN0IHN0cnVjdCBwcmNtX2NvbmZpZyAqcmF0ZV90YWJsZTsKLWV4 dGVybiBjb25zdCBzdHJ1Y3QgcHJjbV9jb25maWcgKmN1cnJfcHJjbV9zZXQ7Ci0KLSNlbmRpZgpk aWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wZGF0YS1xdWlya3MuYyBiL2FyY2gvYXJt L21hY2gtb21hcDIvcGRhdGEtcXVpcmtzLmMKaW5kZXggYjk0N2JhY2YyM2EzLi41Y2JkMGEyOTk2 NmMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvcGRhdGEtcXVpcmtzLmMKKysrIGIv YXJjaC9hcm0vbWFjaC1vbWFwMi9wZGF0YS1xdWlya3MuYwpAQCAtMjcsNyArMjcsNiBAQAogCiAj aW5jbHVkZSAiY2xvY2tkb21haW4uaCIKICNpbmNsdWRlICJjb21tb24uaCIKLSNpbmNsdWRlICJj b21tb24tYm9hcmQtZGV2aWNlcy5oIgogI2luY2x1ZGUgImNvbnRyb2wuaCIKICNpbmNsdWRlICJv bWFwX2RldmljZS5oIgogI2luY2x1ZGUgIm9tYXAtc2VjdXJlLmgiCkBAIC00MiwxNSArNDEsNiBA QCBzdHJ1Y3QgcGRhdGFfaW5pdCB7CiAKIHN0YXRpYyBzdHJ1Y3Qgb2ZfZGV2X2F1eGRhdGEgb21h cF9hdXhkYXRhX2xvb2t1cFtdOwogCi0jaWZkZWYgQ09ORklHX01BQ0hfTk9LSUFfTjhYMAotc3Rh dGljIHZvaWQgX19pbml0IG9tYXAyNDIwX244eDBfbGVnYWN5X2luaXQodm9pZCkKLXsKLQlvbWFw X2F1eGRhdGFfbG9va3VwWzBdLnBsYXRmb3JtX2RhdGEgPSBuOHgwX2xlZ2FjeV9pbml0KCk7Ci19 Ci0jZWxzZQotI2RlZmluZSBvbWFwMjQyMF9uOHgwX2xlZ2FjeV9pbml0CU5VTEwKLSNlbmRpZgot CiAjaWZkZWYgQ09ORklHX0FSQ0hfT01BUDMKIC8qCiAgKiBDb25maWd1cmVzIEdQSU9zIDEyNiwg MTI3IGFuZCAxMjkgdG8gMS44ViBtb2RlIGluc3RlYWQgb2YgMy4wVgpAQCAtNDMxLDI2ICs0MjEs OSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb21hcDNfbWNic3BfaW5pdCh2b2lkKQogc3RhdGljIHZv aWQgX19pbml0IG9tYXAzX21jYnNwX2luaXQodm9pZCkge30KICNlbmRpZgogCi0vKgotICogRmV3 IGJvYXJkcyBzdGlsbCBuZWVkIGF1eGRhdGEgcG9wdWxhdGVkIGJlZm9yZSB3ZSBwb3B1bGF0ZQot ICogdGhlIGRldiBlbnRyaWVzIGluIG9mX3BsYXRmb3JtX3BvcHVsYXRlKCkuCi0gKi8KLXN0YXRp YyBzdHJ1Y3QgcGRhdGFfaW5pdCBhdXhkYXRhX3F1aXJrc1tdIF9faW5pdGRhdGEgPSB7Ci0jaWZk ZWYgQ09ORklHX1NPQ19PTUFQMjQyMAotCXsgIm5va2lhLG44MDAiLCBvbWFwMjQyMF9uOHgwX2xl Z2FjeV9pbml0LCB9LAotCXsgIm5va2lhLG44MTAiLCBvbWFwMjQyMF9uOHgwX2xlZ2FjeV9pbml0 LCB9LAotCXsgIm5va2lhLG44MTAtd2ltYXgiLCBvbWFwMjQyMF9uOHgwX2xlZ2FjeV9pbml0LCB9 LAotI2VuZGlmCi0JeyAvKiBzZW50aW5lbCAqLyB9LAotfTsKLQogc3RydWN0IG9tYXBfc3JfZGF0 YSBfX21heWJlX3VudXNlZCBvbWFwX3NyX3BkYXRhW09NQVBfU1JfTlJdOwogCiBzdGF0aWMgc3Ry dWN0IG9mX2Rldl9hdXhkYXRhIG9tYXBfYXV4ZGF0YV9sb29rdXBbXSA9IHsKLSNpZmRlZiBDT05G SUdfTUFDSF9OT0tJQV9OOFgwCi0JT0ZfREVWX0FVWERBVEEoInRpLG9tYXAyNDIwLW1tYyIsIDB4 NDgwOWMwMDAsICJtbWNpLW9tYXAuMCIsIE5VTEwpLAotCU9GX0RFVl9BVVhEQVRBKCJtZW5lbGF1 cyIsIDB4NzIsICIxLTAwNzIiLCAmbjh4MF9tZW5lbGF1c19wbGF0Zm9ybV9kYXRhKSwKLSNlbmRp ZgogI2lmZGVmIENPTkZJR19BUkNIX09NQVAzCiAJT0ZfREVWX0FVWERBVEEoInRpLG9tYXAyLWlv bW11IiwgMHg1ZDAwMDAwMCwgIjVkMDAwMDAwLm1tdSIsCiAJCSAgICAgICAmb21hcDNfaW9tbXVf cGRhdGEpLApAQCAtNTU3LDE2ICs1MzAsMTQgQEAgcGRhdGFfcXVpcmtzX2luaXRfY2xvY2tzKGNv bnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm9tYXBfZHRfbWF0Y2hfdGFibGUpCiB2b2lkIF9faW5p dCBwZGF0YV9xdWlya3NfaW5pdChjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICpvbWFwX2R0X21h dGNoX3RhYmxlKQogewogCS8qCi0JICogV2Ugc3RpbGwgbmVlZCB0aGlzIGZvciBvbWFwMjQyMCBh bmQgb21hcDMgUE0gdG8gd29yaywgb3RoZXJzIGFyZQorCSAqIFdlIHN0aWxsIG5lZWQgdGhpcyBm b3Igb21hcDMgUE0gdG8gd29yaywgb3RoZXJzIGFyZQogCSAqIHVzaW5nIGRyaXZlcnMvbWlzYy9z cmFtLmMgYWxyZWFkeS4KIAkgKi8KLQlpZiAob2ZfbWFjaGluZV9pc19jb21wYXRpYmxlKCJ0aSxv bWFwMjQyMCIpIHx8Ci0JICAgIG9mX21hY2hpbmVfaXNfY29tcGF0aWJsZSgidGksb21hcDMiKSkK KwlpZiAoSVNfRU5BQkxFRChDT05GSUdfQVJDSF9PTUFQMykgJiYKKwkgICAgb2ZfbWFjaGluZV9p c19jb21wYXRpYmxlKCJ0aSxvbWFwMyIpKSB7CiAJCW9tYXBfc2RyY19pbml0KE5VTEwsIE5VTEwp OwotCi0JaWYgKG9mX21hY2hpbmVfaXNfY29tcGF0aWJsZSgidGksb21hcDMiKSkKIAkJb21hcDNf bWNic3BfaW5pdCgpOwotCXBkYXRhX3F1aXJrc19jaGVjayhhdXhkYXRhX3F1aXJrcyk7CisJfQog CiAJcGRhdGFfcXVpcmtzX2luaXRfY2xvY2tzKG9tYXBfZHRfbWF0Y2hfdGFibGUpOwogCmRpZmYg LS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3BtLmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL3Bt LmgKaW5kZXggZjk3ZmY5M2YyZmI0Li41NzUxYjg1ZTlmZmIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJt L21hY2gtb21hcDIvcG0uaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3BtLmgKQEAgLTQzLDEx ICs0Myw2IEBAIGV4dGVybiB2b2lkIHBtX2RiZ191cGRhdGVfdGltZShzdHJ1Y3QgcG93ZXJkb21h aW4gKnB3cmRtLCBpbnQgcHJldik7CiAjZGVmaW5lIHBtX2RiZ191cGRhdGVfdGltZShwd3JkbSwg cHJldikgZG8ge30gd2hpbGUgKDApOwogI2VuZGlmIC8qIENPTkZJR19QTV9ERUJVRyAqLwogCi0v KiAyNHh4ICovCi1leHRlcm4gdm9pZCBvbWFwMjR4eF9jcHVfc3VzcGVuZCh1MzIgZGxsX2N0cmws IHZvaWQgX19pb21lbSAqc2RyY19kbGxhX2N0cmwsCi0JCQkJCXZvaWQgX19pb21lbSAqc2RyY19w b3dlcik7Ci1leHRlcm4gdW5zaWduZWQgaW50IG9tYXAyNHh4X2NwdV9zdXNwZW5kX3N6OwotCiAv KiAzeHh4ICovCiBleHRlcm4gdm9pZCBvbWFwMzR4eF9jcHVfc3VzcGVuZChpbnQgc2F2ZV9zdGF0 ZSk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvcG93ZXJkb21haW4uaCBiL2Fy Y2gvYXJtL21hY2gtb21hcDIvcG93ZXJkb21haW4uaAppbmRleCBmYmM4OTk5OTQ2MGIuLmVhZjZk MTEwNGRjMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wb3dlcmRvbWFpbi5oCisr KyBiL2FyY2gvYXJtL21hY2gtb21hcDIvcG93ZXJkb21haW4uaApAQCAtMjQ0LDggKzI0NCw2IEBA IGludCBwd3JkbV9wb3N0X3RyYW5zaXRpb24oc3RydWN0IHBvd2VyZG9tYWluICpwd3JkbSk7CiAK IGV4dGVybiBpbnQgb21hcF9zZXRfcHdyZG1fc3RhdGUoc3RydWN0IHBvd2VyZG9tYWluICpwd3Jk bSwgdTggc3RhdGUpOwogCi1leHRlcm4gdm9pZCBvbWFwMjQyeF9wb3dlcmRvbWFpbnNfaW5pdCh2 b2lkKTsKLWV4dGVybiB2b2lkIG9tYXAyNDN4X3Bvd2VyZG9tYWluc19pbml0KHZvaWQpOwogZXh0 ZXJuIHZvaWQgb21hcDN4eHhfcG93ZXJkb21haW5zX2luaXQodm9pZCk7CiBleHRlcm4gdm9pZCBh bTMzeHhfcG93ZXJkb21haW5zX2luaXQodm9pZCk7CiBleHRlcm4gdm9pZCBvbWFwNDR4eF9wb3dl cmRvbWFpbnNfaW5pdCh2b2lkKTsKQEAgLTI1Myw3ICsyNTEsNiBAQCBleHRlcm4gdm9pZCBvbWFw NTR4eF9wb3dlcmRvbWFpbnNfaW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIGRyYTd4eF9wb3dlcmRv bWFpbnNfaW5pdCh2b2lkKTsKIHZvaWQgYW00M3h4X3Bvd2VyZG9tYWluc19pbml0KHZvaWQpOwog Ci1leHRlcm4gc3RydWN0IHB3cmRtX29wcyBvbWFwMl9wd3JkbV9vcGVyYXRpb25zOwogZXh0ZXJu IHN0cnVjdCBwd3JkbV9vcHMgb21hcDNfcHdyZG1fb3BlcmF0aW9uczsKIGV4dGVybiBzdHJ1Y3Qg cHdyZG1fb3BzIGFtMzN4eF9wd3JkbV9vcGVyYXRpb25zOwogZXh0ZXJuIHN0cnVjdCBwd3JkbV9v cHMgb21hcDRfcHdyZG1fb3BlcmF0aW9uczsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21h cDIvcG93ZXJkb21haW5zMnh4eF9kYXRhLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3Bvd2VyZG9t YWluczJ4eHhfZGF0YS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYTI1OWFkYmRj NjEuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3Bvd2VyZG9tYWluczJ4 eHhfZGF0YS5jCisrKyAvZGV2L251bGwKQEAgLTEsMTM0ICswLDAgQEAKLS8vIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBPTUFQMlhYWCBwb3dlcmRvbWFpbiBk ZWZpbml0aW9ucwotICoKLSAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4LCAyMDExIFRleGFzIElu c3RydW1lbnRzLCBJbmMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxMSBOb2tpYSBDb3Jwb3Jh dGlvbgotICoKLSAqIFBhdWwgV2FsbXNsZXksIEpvdW5pIEjDtmdhbmRlcgotICovCi0KLSNpbmNs dWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0KLSNpbmNsdWRl ICJzb2MuaCIKLSNpbmNsdWRlICJwb3dlcmRvbWFpbi5oIgotI2luY2x1ZGUgInBvd2VyZG9tYWlu czJ4eHhfM3h4eF9kYXRhLmgiCi0KLSNpbmNsdWRlICJwcmNtLWNvbW1vbi5oIgotI2luY2x1ZGUg InBybTJ4eHhfM3h4eC5oIgotI2luY2x1ZGUgInBybS1yZWdiaXRzLTI0eHguaCIKLQotLyogMjRY WCBwb3dlcmRvbWFpbnMgYW5kIGRlcGVuZGVuY2llcyAqLwotCi0vKiBQb3dlcmRvbWFpbnMgKi8K LQotc3RhdGljIHN0cnVjdCBwb3dlcmRvbWFpbiBkc3BfcHdyZG0gPSB7Ci0JLm5hbWUJCSAgPSAi ZHNwX3B3cmRtIiwKLQkucHJjbV9vZmZzCSAgPSBPTUFQMjRYWF9EU1BfTU9ELAotCS5wd3JzdHMJ CSAgPSBQV1JTVFNfT0ZGX1JFVF9PTiwKLQkucHdyc3RzX2xvZ2ljX3JldCA9IFBXUlNUU19SRVQs Ci0JLmJhbmtzCQkgID0gMSwKLQkucHdyc3RzX21lbV9yZXQJICA9IHsKLQkJWzBdID0gUFdSU1RT X1JFVCwKLQl9LAotCS5wd3JzdHNfbWVtX29uCSAgPSB7Ci0JCVswXSA9IFBXUlNUU19PTiwKLQl9 LAotCS52b2x0ZG0JCSAgPSB7IC5uYW1lID0gImNvcmUiIH0sCi19OwotCi1zdGF0aWMgc3RydWN0 IHBvd2VyZG9tYWluIG1wdV8yNHh4X3B3cmRtID0gewotCS5uYW1lCQkgID0gIm1wdV9wd3JkbSIs Ci0JLnByY21fb2ZmcwkgID0gTVBVX01PRCwKLQkucHdyc3RzCQkgID0gUFdSU1RTX09GRl9SRVRf T04sCi0JLnB3cnN0c19sb2dpY19yZXQgPSBQV1JTVFNfT0ZGX1JFVCwKLQkuYmFua3MJCSAgPSAx LAotCS5wd3JzdHNfbWVtX3JldAkgID0gewotCQlbMF0gPSBQV1JTVFNfUkVULAotCX0sCi0JLnB3 cnN0c19tZW1fb24JICA9IHsKLQkJWzBdID0gUFdSU1RTX09OLAotCX0sCi0JLnZvbHRkbQkJICA9 IHsgLm5hbWUgPSAiY29yZSIgfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcG93ZXJkb21haW4gY29y ZV8yNHh4X3B3cmRtID0gewotCS5uYW1lCQkgID0gImNvcmVfcHdyZG0iLAotCS5wcmNtX29mZnMJ ICA9IENPUkVfTU9ELAotCS5wd3JzdHMJCSAgPSBQV1JTVFNfT0ZGX1JFVF9PTiwKLQkucHdyc3Rz X2xvZ2ljX3JldCA9IFBXUlNUU19SRVQsCi0JLmJhbmtzCQkgID0gMywKLQkucHdyc3RzX21lbV9y ZXQJICA9IHsKLQkJWzBdID0gUFdSU1RTX09GRl9SRVQsCSAvKiBNRU0xUkVUU1RBVEUgKi8KLQkJ WzFdID0gUFdSU1RTX09GRl9SRVQsCSAvKiBNRU0yUkVUU1RBVEUgKi8KLQkJWzJdID0gUFdSU1RT X09GRl9SRVQsCSAvKiBNRU0zUkVUU1RBVEUgKi8KLQl9LAotCS5wd3JzdHNfbWVtX29uCSAgPSB7 Ci0JCVswXSA9IFBXUlNUU19PRkZfUkVUX09OLCAvKiBNRU0xT05TVEFURSAqLwotCQlbMV0gPSBQ V1JTVFNfT0ZGX1JFVF9PTiwgLyogTUVNMk9OU1RBVEUgKi8KLQkJWzJdID0gUFdSU1RTX09GRl9S RVRfT04sIC8qIE1FTTNPTlNUQVRFICovCi0JfSwKLQkudm9sdGRtCQkgID0geyAubmFtZSA9ICJj b3JlIiB9LAotfTsKLQotCi0vKgotICogMjQzMC1zcGVjaWZpYyBwb3dlcmRvbWFpbnMKLSAqLwot Ci0vKiBYWFggMjQzMCBLSUxMRE9NQUlOV0tVUCBiaXQ/ICBObyBjdXJyZW50IHVzZXJzIGFwcGFy ZW50bHkgKi8KLQotc3RhdGljIHN0cnVjdCBwb3dlcmRvbWFpbiBtZG1fcHdyZG0gPSB7Ci0JLm5h bWUJCSAgPSAibWRtX3B3cmRtIiwKLQkucHJjbV9vZmZzCSAgPSBPTUFQMjQzMF9NRE1fTU9ELAot CS5wd3JzdHMJCSAgPSBQV1JTVFNfT0ZGX1JFVF9PTiwKLQkucHdyc3RzX2xvZ2ljX3JldCA9IFBX UlNUU19SRVQsCi0JLmJhbmtzCQkgID0gMSwKLQkucHdyc3RzX21lbV9yZXQJICA9IHsKLQkJWzBd ID0gUFdSU1RTX1JFVCwgLyogTUVNUkVUU1RBVEUgKi8KLQl9LAotCS5wd3JzdHNfbWVtX29uCSAg PSB7Ci0JCVswXSA9IFBXUlNUU19PTiwgIC8qIE1FTU9OU1RBVEUgKi8KLQl9LAotCS52b2x0ZG0J CSAgPSB7IC5uYW1lID0gImNvcmUiIH0sCi19OwotCi0vKgotICoKLSAqLwotCi1zdGF0aWMgc3Ry dWN0IHBvd2VyZG9tYWluICpwb3dlcmRvbWFpbnNfb21hcDI0eHhbXSBfX2luaXRkYXRhID0gewot CSZ3a3VwX29tYXAyX3B3cmRtLAotCSZnZnhfb21hcDJfcHdyZG0sCi0JJmRzcF9wd3JkbSwKLQkm bXB1XzI0eHhfcHdyZG0sCi0JJmNvcmVfMjR4eF9wd3JkbSwKLQlOVUxMCi19OwotCi1zdGF0aWMg c3RydWN0IHBvd2VyZG9tYWluICpwb3dlcmRvbWFpbnNfb21hcDI0MzBbXSBfX2luaXRkYXRhID0g ewotCSZtZG1fcHdyZG0sCi0JTlVMTAotfTsKLQotdm9pZCBfX2luaXQgb21hcDI0MnhfcG93ZXJk b21haW5zX2luaXQodm9pZCkKLXsKLQlpZiAoIWNwdV9pc19vbWFwMjQyMCgpKQotCQlyZXR1cm47 Ci0KLQlwd3JkbV9yZWdpc3Rlcl9wbGF0Zm9ybV9mdW5jcygmb21hcDJfcHdyZG1fb3BlcmF0aW9u cyk7Ci0JcHdyZG1fcmVnaXN0ZXJfcHdyZG1zKHBvd2VyZG9tYWluc19vbWFwMjR4eCk7Ci0JcHdy ZG1fY29tcGxldGVfaW5pdCgpOwotfQotCi12b2lkIF9faW5pdCBvbWFwMjQzeF9wb3dlcmRvbWFp bnNfaW5pdCh2b2lkKQotewotCWlmICghY3B1X2lzX29tYXAyNDMwKCkpCi0JCXJldHVybjsKLQot CXB3cmRtX3JlZ2lzdGVyX3BsYXRmb3JtX2Z1bmNzKCZvbWFwMl9wd3JkbV9vcGVyYXRpb25zKTsK LQlwd3JkbV9yZWdpc3Rlcl9wd3JkbXMocG93ZXJkb21haW5zX29tYXAyNHh4KTsKLQlwd3JkbV9y ZWdpc3Rlcl9wd3JkbXMocG93ZXJkb21haW5zX29tYXAyNDMwKTsKLQlwd3JkbV9jb21wbGV0ZV9p bml0KCk7Ci19CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3ByY20tY29tbW9uLmgg Yi9hcmNoL2FybS9tYWNoLW9tYXAyL3ByY20tY29tbW9uLmgKaW5kZXggNWUzNTQ0YTYzNTI2Li5l MzI2YmI2YTA5ZGIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvcHJjbS1jb21tb24u aAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3ByY20tY29tbW9uLmgKQEAgLTI3LDEyICsyNyw2 IEBACiAjZGVmaW5lIFBMTF9NT0QJCQkJCQkweDUwMAogCiAKLS8qIENoaXAtc3BlY2lmaWMgbW9k dWxlIG9mZnNldHMgKi8KLSNkZWZpbmUgT01BUDI0WFhfR1JfTU9ECQkJCQlPQ1BfTU9ECi0jZGVm aW5lIE9NQVAyNFhYX0RTUF9NT0QJCQkJMHg4MDAKLQotI2RlZmluZSBPTUFQMjQzMF9NRE1fTU9E CQkJCTB4YzAwCi0KIC8qIElWQTIgbW9kdWxlIGlzIDwgYmFzZSBvbiAzNDMwICovCiAjZGVmaW5l IE9NQVAzNDMwX0lWQTJfTU9ECQkJCS0weDgwMAogI2RlZmluZSBPTUFQMzQzMEVTMl9TR1hfTU9E CQkJCUdGWF9NT0QKQEAgLTYzLDE0NyArNTcsNiBAQAogI2RlZmluZSBUSTgxNlhfUFJNX1NHWF9N T0QJCQkJMHgwZjAwCiAjZGVmaW5lIFRJODFYWF9QUk1fQUxXT05fTU9ECQkJMHgxODAwCiAKLS8q IDI0WFggcmVnaXN0ZXIgYml0cyBzaGFyZWQgYmV0d2VlbiBDTSAmIFBSTSByZWdpc3RlcnMgKi8K LQotLyogQ01fRkNMS0VOMV9DT1JFLCBDTV9JQ0xLRU4xX0NPUkUsIFBNX1dLRU4xX0NPUkUgc2hh cmVkIGJpdHMgKi8KLSNkZWZpbmUgT01BUDI0MjBfRU5fTU1DX1NISUZUCQkJCTI2Ci0jZGVmaW5l IE9NQVAyNDIwX0VOX01NQ19NQVNLCQkJCSgxIDw8IDI2KQotI2RlZmluZSBPTUFQMjRYWF9FTl9V QVJUMl9TSElGVAkJCQkyMgotI2RlZmluZSBPTUFQMjRYWF9FTl9VQVJUMl9NQVNLCQkJCSgxIDw8 IDIyKQotI2RlZmluZSBPTUFQMjRYWF9FTl9VQVJUMV9TSElGVAkJCQkyMQotI2RlZmluZSBPTUFQ MjRYWF9FTl9VQVJUMV9NQVNLCQkJCSgxIDw8IDIxKQotI2RlZmluZSBPTUFQMjRYWF9FTl9NQ1NQ STJfU0hJRlQJCQkxOAotI2RlZmluZSBPTUFQMjRYWF9FTl9NQ1NQSTJfTUFTSwkJCQkoMSA8PCAx OCkKLSNkZWZpbmUgT01BUDI0WFhfRU5fTUNTUEkxX1NISUZUCQkJMTcKLSNkZWZpbmUgT01BUDI0 WFhfRU5fTUNTUEkxX01BU0sJCQkJKDEgPDwgMTcpCi0jZGVmaW5lIE9NQVAyNFhYX0VOX01DQlNQ Ml9TSElGVAkJCTE2Ci0jZGVmaW5lIE9NQVAyNFhYX0VOX01DQlNQMl9NQVNLCQkJCSgxIDw8IDE2 KQotI2RlZmluZSBPTUFQMjRYWF9FTl9NQ0JTUDFfU0hJRlQJCQkxNQotI2RlZmluZSBPTUFQMjRY WF9FTl9NQ0JTUDFfTUFTSwkJCQkoMSA8PCAxNSkKLSNkZWZpbmUgT01BUDI0WFhfRU5fR1BUMTJf U0hJRlQJCQkJMTQKLSNkZWZpbmUgT01BUDI0WFhfRU5fR1BUMTJfTUFTSwkJCQkoMSA8PCAxNCkK LSNkZWZpbmUgT01BUDI0WFhfRU5fR1BUMTFfU0hJRlQJCQkJMTMKLSNkZWZpbmUgT01BUDI0WFhf RU5fR1BUMTFfTUFTSwkJCQkoMSA8PCAxMykKLSNkZWZpbmUgT01BUDI0WFhfRU5fR1BUMTBfU0hJ RlQJCQkJMTIKLSNkZWZpbmUgT01BUDI0WFhfRU5fR1BUMTBfTUFTSwkJCQkoMSA8PCAxMikKLSNk ZWZpbmUgT01BUDI0WFhfRU5fR1BUOV9TSElGVAkJCQkxMQotI2RlZmluZSBPTUFQMjRYWF9FTl9H UFQ5X01BU0sJCQkJKDEgPDwgMTEpCi0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQVDhfU0hJRlQJCQkJ MTAKLSNkZWZpbmUgT01BUDI0WFhfRU5fR1BUOF9NQVNLCQkJCSgxIDw8IDEwKQotI2RlZmluZSBP TUFQMjRYWF9FTl9HUFQ3X1NISUZUCQkJCTkKLSNkZWZpbmUgT01BUDI0WFhfRU5fR1BUN19NQVNL CQkJCSgxIDw8IDkpCi0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQVDZfU0hJRlQJCQkJOAotI2RlZmlu ZSBPTUFQMjRYWF9FTl9HUFQ2X01BU0sJCQkJKDEgPDwgOCkKLSNkZWZpbmUgT01BUDI0WFhfRU5f R1BUNV9TSElGVAkJCQk3Ci0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQVDVfTUFTSwkJCQkoMSA8PCA3 KQotI2RlZmluZSBPTUFQMjRYWF9FTl9HUFQ0X1NISUZUCQkJCTYKLSNkZWZpbmUgT01BUDI0WFhf RU5fR1BUNF9NQVNLCQkJCSgxIDw8IDYpCi0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQVDNfU0hJRlQJ CQkJNQotI2RlZmluZSBPTUFQMjRYWF9FTl9HUFQzX01BU0sJCQkJKDEgPDwgNSkKLSNkZWZpbmUg T01BUDI0WFhfRU5fR1BUMl9TSElGVAkJCQk0Ci0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQVDJfTUFT SwkJCQkoMSA8PCA0KQotI2RlZmluZSBPTUFQMjQyMF9FTl9WTFlOUV9TSElGVAkJCQkzCi0jZGVm aW5lIE9NQVAyNDIwX0VOX1ZMWU5RX01BU0sJCQkJKDEgPDwgMykKLQotLyogQ01fRkNMS0VOMl9D T1JFLCBDTV9JQ0xLRU4yX0NPUkUsIFBNX1dLRU4yX0NPUkUgc2hhcmVkIGJpdHMgKi8KLSNkZWZp bmUgT01BUDI0MzBfRU5fR1BJTzVfU0hJRlQJCQkJMTAKLSNkZWZpbmUgT01BUDI0MzBfRU5fR1BJ TzVfTUFTSwkJCQkoMSA8PCAxMCkKLSNkZWZpbmUgT01BUDI0MzBfRU5fTUNTUEkzX1NISUZUCQkJ OQotI2RlZmluZSBPTUFQMjQzMF9FTl9NQ1NQSTNfTUFTSwkJCQkoMSA8PCA5KQotI2RlZmluZSBP TUFQMjQzMF9FTl9NTUNIUzJfU0hJRlQJCQk4Ci0jZGVmaW5lIE9NQVAyNDMwX0VOX01NQ0hTMl9N QVNLCQkJCSgxIDw8IDgpCi0jZGVmaW5lIE9NQVAyNDMwX0VOX01NQ0hTMV9TSElGVAkJCTcKLSNk ZWZpbmUgT01BUDI0MzBfRU5fTU1DSFMxX01BU0sJCQkJKDEgPDwgNykKLSNkZWZpbmUgT01BUDI0 WFhfRU5fVUFSVDNfU0hJRlQJCQkJMgotI2RlZmluZSBPTUFQMjRYWF9FTl9VQVJUM19NQVNLCQkJ CSgxIDw8IDIpCi0jZGVmaW5lIE9NQVAyNFhYX0VOX1VTQl9TSElGVAkJCQkwCi0jZGVmaW5lIE9N QVAyNFhYX0VOX1VTQl9NQVNLCQkJCSgxIDw8IDApCi0KLS8qIENNX0lDTEtFTjJfQ09SRSwgUE1f V0tFTjJfQ09SRSBzaGFyZWQgYml0cyAqLwotI2RlZmluZSBPTUFQMjQzMF9FTl9NRE1fSU5UQ19T SElGVAkJCTExCi0jZGVmaW5lIE9NQVAyNDMwX0VOX01ETV9JTlRDX01BU0sJCQkoMSA8PCAxMSkK LSNkZWZpbmUgT01BUDI0MzBfRU5fVVNCSFNfU0hJRlQJCQkJNgotI2RlZmluZSBPTUFQMjQzMF9F Tl9VU0JIU19NQVNLCQkJCSgxIDw8IDYpCi0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQTUNfU0hJRlQJ CQkJMQotI2RlZmluZSBPTUFQMjRYWF9FTl9HUE1DX01BU0sJCQkJKDEgPDwgMSkKLQotLyogQ01f SURMRVNUMV9DT1JFLCBQTV9XS1NUMV9DT1JFIHNoYXJlZCBiaXRzICovCi0jZGVmaW5lIE9NQVAy NDIwX1NUX01NQ19TSElGVAkJCQkyNgotI2RlZmluZSBPTUFQMjQyMF9TVF9NTUNfTUFTSwkJCQko MSA8PCAyNikKLSNkZWZpbmUgT01BUDI0WFhfU1RfVUFSVDJfU0hJRlQJCQkJMjIKLSNkZWZpbmUg T01BUDI0WFhfU1RfVUFSVDJfTUFTSwkJCQkoMSA8PCAyMikKLSNkZWZpbmUgT01BUDI0WFhfU1Rf VUFSVDFfU0hJRlQJCQkJMjEKLSNkZWZpbmUgT01BUDI0WFhfU1RfVUFSVDFfTUFTSwkJCQkoMSA8 PCAyMSkKLSNkZWZpbmUgT01BUDI0WFhfU1RfTUNTUEkyX1NISUZUCQkJMTgKLSNkZWZpbmUgT01B UDI0WFhfU1RfTUNTUEkyX01BU0sJCQkJKDEgPDwgMTgpCi0jZGVmaW5lIE9NQVAyNFhYX1NUX01D U1BJMV9TSElGVAkJCTE3Ci0jZGVmaW5lIE9NQVAyNFhYX1NUX01DU1BJMV9NQVNLCQkJCSgxIDw8 IDE3KQotI2RlZmluZSBPTUFQMjRYWF9TVF9NQ0JTUDJfU0hJRlQJCQkxNgotI2RlZmluZSBPTUFQ MjRYWF9TVF9NQ0JTUDJfTUFTSwkJCQkoMSA8PCAxNikKLSNkZWZpbmUgT01BUDI0WFhfU1RfTUNC U1AxX1NISUZUCQkJMTUKLSNkZWZpbmUgT01BUDI0WFhfU1RfTUNCU1AxX01BU0sJCQkJKDEgPDwg MTUpCi0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQVDEyX1NISUZUCQkJCTE0Ci0jZGVmaW5lIE9NQVAy NFhYX1NUX0dQVDEyX01BU0sJCQkJKDEgPDwgMTQpCi0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQVDEx X1NISUZUCQkJCTEzCi0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQVDExX01BU0sJCQkJKDEgPDwgMTMp Ci0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQVDEwX1NISUZUCQkJCTEyCi0jZGVmaW5lIE9NQVAyNFhY X1NUX0dQVDEwX01BU0sJCQkJKDEgPDwgMTIpCi0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQVDlfU0hJ RlQJCQkJMTEKLSNkZWZpbmUgT01BUDI0WFhfU1RfR1BUOV9NQVNLCQkJCSgxIDw8IDExKQotI2Rl ZmluZSBPTUFQMjRYWF9TVF9HUFQ4X1NISUZUCQkJCTEwCi0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQ VDhfTUFTSwkJCQkoMSA8PCAxMCkKLSNkZWZpbmUgT01BUDI0WFhfU1RfR1BUN19TSElGVAkJCQk5 Ci0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQVDdfTUFTSwkJCQkoMSA8PCA5KQotI2RlZmluZSBPTUFQ MjRYWF9TVF9HUFQ2X1NISUZUCQkJCTgKLSNkZWZpbmUgT01BUDI0WFhfU1RfR1BUNl9NQVNLCQkJ CSgxIDw8IDgpCi0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQVDVfU0hJRlQJCQkJNwotI2RlZmluZSBP TUFQMjRYWF9TVF9HUFQ1X01BU0sJCQkJKDEgPDwgNykKLSNkZWZpbmUgT01BUDI0WFhfU1RfR1BU NF9TSElGVAkJCQk2Ci0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQVDRfTUFTSwkJCQkoMSA8PCA2KQot I2RlZmluZSBPTUFQMjRYWF9TVF9HUFQzX1NISUZUCQkJCTUKLSNkZWZpbmUgT01BUDI0WFhfU1Rf R1BUM19NQVNLCQkJCSgxIDw8IDUpCi0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQVDJfU0hJRlQJCQkJ NAotI2RlZmluZSBPTUFQMjRYWF9TVF9HUFQyX01BU0sJCQkJKDEgPDwgNCkKLSNkZWZpbmUgT01B UDI0MjBfU1RfVkxZTlFfU0hJRlQJCQkJMwotI2RlZmluZSBPTUFQMjQyMF9TVF9WTFlOUV9NQVNL CQkJCSgxIDw8IDMpCi0KLS8qIENNX0lETEVTVDJfQ09SRSwgUE1fV0tTVDJfQ09SRSBzaGFyZWQg Yml0cyAqLwotI2RlZmluZSBPTUFQMjQzMF9TVF9NRE1fSU5UQ19TSElGVAkJCTExCi0jZGVmaW5l IE9NQVAyNDMwX1NUX01ETV9JTlRDX01BU0sJCQkoMSA8PCAxMSkKLSNkZWZpbmUgT01BUDI0MzBf U1RfR1BJTzVfU0hJRlQJCQkJMTAKLSNkZWZpbmUgT01BUDI0MzBfU1RfR1BJTzVfTUFTSwkJCQko MSA8PCAxMCkKLSNkZWZpbmUgT01BUDI0MzBfU1RfTUNTUEkzX1NISUZUCQkJOQotI2RlZmluZSBP TUFQMjQzMF9TVF9NQ1NQSTNfTUFTSwkJCQkoMSA8PCA5KQotI2RlZmluZSBPTUFQMjQzMF9TVF9N TUNIUzJfU0hJRlQJCQk4Ci0jZGVmaW5lIE9NQVAyNDMwX1NUX01NQ0hTMl9NQVNLCQkJCSgxIDw8 IDgpCi0jZGVmaW5lIE9NQVAyNDMwX1NUX01NQ0hTMV9TSElGVAkJCTcKLSNkZWZpbmUgT01BUDI0 MzBfU1RfTU1DSFMxX01BU0sJCQkJKDEgPDwgNykKLSNkZWZpbmUgT01BUDI0MzBfU1RfVVNCSFNf U0hJRlQJCQkJNgotI2RlZmluZSBPTUFQMjQzMF9TVF9VU0JIU19NQVNLCQkJCSgxIDw8IDYpCi0j ZGVmaW5lIE9NQVAyNFhYX1NUX1VBUlQzX1NISUZUCQkJCTIKLSNkZWZpbmUgT01BUDI0WFhfU1Rf VUFSVDNfTUFTSwkJCQkoMSA8PCAyKQotI2RlZmluZSBPTUFQMjRYWF9TVF9VU0JfU0hJRlQJCQkJ MAotI2RlZmluZSBPTUFQMjRYWF9TVF9VU0JfTUFTSwkJCQkoMSA8PCAwKQotCi0vKiBDTV9GQ0xL RU5fV0tVUCwgQ01fSUNMS0VOX1dLVVAsIFBNX1dLRU5fV0tVUCBzaGFyZWQgYml0cyAqLwotI2Rl ZmluZSBPTUFQMjRYWF9FTl9HUElPU19TSElGVAkJCQkyCi0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQ SU9TX01BU0sJCQkJKDEgPDwgMikKLSNkZWZpbmUgT01BUDI0WFhfRU5fR1BUMV9TSElGVAkJCQkw Ci0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQVDFfTUFTSwkJCQkoMSA8PCAwKQotCi0vKiBQTV9XS1NU X1dLVVAsIENNX0lETEVTVF9XS1VQIHNoYXJlZCBiaXRzICovCi0jZGVmaW5lIE9NQVAyNFhYX1NU X0dQSU9TX1NISUZUCQkJCTIKLSNkZWZpbmUgT01BUDI0WFhfU1RfR1BJT1NfTUFTSwkJCQkoMSA8 PCAyKQotI2RlZmluZSBPTUFQMjRYWF9TVF8zMktTWU5DX1NISUZUCQkJMQotI2RlZmluZSBPTUFQ MjRYWF9TVF8zMktTWU5DX01BU0sJCQkoMSA8PCAxKQotI2RlZmluZSBPTUFQMjRYWF9TVF9HUFQx X1NISUZUCQkJCTAKLSNkZWZpbmUgT01BUDI0WFhfU1RfR1BUMV9NQVNLCQkJCSgxIDw8IDApCi0K LS8qIENNX0lETEVTVF9NRE0gYW5kIFBNX1dLU1RfTURNIHNoYXJlZCBiaXRzICovCi0jZGVmaW5l IE9NQVAyNDMwX1NUX01ETV9TSElGVAkJCQkwCi0jZGVmaW5lIE9NQVAyNDMwX1NUX01ETV9NQVNL CQkJCSgxIDw8IDApCi0KLQogLyogMzQzMCByZWdpc3RlciBiaXRzIHNoYXJlZCBiZXR3ZWVuIENN ICYgUFJNIHJlZ2lzdGVycyAqLwogCiAvKiBDTV9SRVZJU0lPTiwgUFJNX1JFVklTSU9OIHNoYXJl ZCBiaXRzICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3BybS1yZWdiaXRzLTI0 eHguaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvcHJtLXJlZ2JpdHMtMjR4eC5oCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBmZjgzODAxZjY0MzkuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNo L2FybS9tYWNoLW9tYXAyL3BybS1yZWdiaXRzLTI0eHguaAorKysgL2Rldi9udWxsCkBAIC0xLDM5 ICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8KLSNp Zm5kZWYgX19BUkNIX0FSTV9NQUNIX09NQVAyX1BSTV9SRUdCSVRTXzI0WFhfSAotI2RlZmluZSBf X0FSQ0hfQVJNX01BQ0hfT01BUDJfUFJNX1JFR0JJVFNfMjRYWF9ICi0KLS8qCi0gKiBPTUFQMjRY WCBQb3dlci9SZXNldCBNYW5hZ2VtZW50IHJlZ2lzdGVyIGJpdHMKLSAqCi0gKiBDb3B5cmlnaHQg KEMpIDIwMDcgVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAwNyBO b2tpYSBDb3Jwb3JhdGlvbgotICoKLSAqIFdyaXR0ZW4gYnkgUGF1bCBXYWxtc2xleQotICovCi0K LSNpbmNsdWRlICJwcm0yeHh4LmgiCi0KLSNkZWZpbmUgT01BUDI0WFhfRU5fQ09SRV9TSElGVCAJ CQkJMAotI2RlZmluZSBPTUFQMjRYWF9GT1JDRVNUQVRFX01BU0sJCQkoMSA8PCAxOCkKLSNkZWZp bmUgT01BUDI0WFhfQVVUT0lETEVfTUFTSwkJCQkoMSA8PCAwKQotI2RlZmluZSBPTUFQMjRYWF9B VVRPX0VYVFZPTFRfTUFTSwkJCSgxIDw8IDE1KQotI2RlZmluZSBPTUFQMjRYWF9TRVRPRkZfTEVW RUxfU0hJRlQJCQkxMgotI2RlZmluZSBPTUFQMjRYWF9NRU1SRVRDVFJMX01BU0sJCQkoMSA8PCA4 KQotI2RlZmluZSBPTUFQMjRYWF9TRVRSRVRfTEVWRUxfU0hJRlQJCQk2Ci0jZGVmaW5lIE9NQVAy NFhYX1ZPTFRfTEVWRUxfU0hJRlQJCQkwCi0jZGVmaW5lIE9NQVAyNDIwX0NMS09VVDJfRU5fU0hJ RlQJCQkxNQotI2RlZmluZSBPTUFQMjQyMF9DTEtPVVQyX0RJVl9TSElGVAkJCTExCi0jZGVmaW5l IE9NQVAyNDIwX0NMS09VVDJfRElWX1dJRFRICQkJMwotI2RlZmluZSBPTUFQMjQyMF9DTEtPVVQy X1NPVVJDRV9NQVNLCQkJKDB4MyA8PCA4KQotI2RlZmluZSBPTUFQMjRYWF9DTEtPVVRfRU5fU0hJ RlQJCQk3Ci0jZGVmaW5lIE9NQVAyNFhYX0NMS09VVF9ESVZfU0hJRlQJCQkzCi0jZGVmaW5lIE9N QVAyNFhYX0NMS09VVF9ESVZfV0lEVEgJCQkzCi0jZGVmaW5lIE9NQVAyNFhYX0NMS09VVF9TT1VS Q0VfTUFTSwkJCSgweDMgPDwgMCkKLSNkZWZpbmUgT01BUDI0WFhfRU1VTEFUSU9OX0VOX1NISUZU CQkJMAotI2RlZmluZSBPTUFQMjQzMF9QTV9XS0RFUF9NUFVfRU5fTURNX1NISUZUCQk1Ci0jZGVm aW5lIE9NQVAyNFhYX1BNX1dLREVQX01QVV9FTl9EU1BfU0hJRlQJCTIKLSNkZWZpbmUgT01BUDI0 WFhfRVhUV01QVV9SU1RfU0hJRlQJCQk2Ci0jZGVmaW5lIE9NQVAyNFhYX1NFQ1VfV0RfUlNUX1NI SUZUCQkJNQotI2RlZmluZSBPTUFQMjRYWF9NUFVfV0RfUlNUX1NISUZUCQkJNAotI2RlZmluZSBP TUFQMjRYWF9TRUNVX1ZJT0xfUlNUX1NISUZUCQkJMwotI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNo L2FybS9tYWNoLW9tYXAyL3BybTJ4eHguYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvcHJtMnh4eC5j CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNWE1OGY1NGI1MjguLjAwMDAwMDAwMDAw MAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3BybTJ4eHguYworKysgL2Rldi9udWxsCkBAIC0x LDIyOSArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0v KgotICogT01BUDJ4eHggUFJNIG1vZHVsZSBmdW5jdGlvbnMKLSAqCi0gKiBDb3B5cmlnaHQgKEMp IDIwMTAtMjAxMiBUZXhhcyBJbnN0cnVtZW50cywgSW5jLgotICogQ29weXJpZ2h0IChDKSAyMDEw IE5va2lhIENvcnBvcmF0aW9uCi0gKiBCZW5vw650IENvdXNzb24KLSAqIFBhdWwgV2FsbXNsZXkK LSAqIFJhamVuZHJhIE5heWFrIDxybmF5YWtAdGkuY29tPgotICovCi0KLSNpbmNsdWRlIDxsaW51 eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgotI2luY2x1ZGUgPGxpbnV4L2Vy ci5oPgotI2luY2x1ZGUgPGxpbnV4L2lvLmg+Ci0jaW5jbHVkZSA8bGludXgvaXJxLmg+Ci0KLSNp bmNsdWRlICJwb3dlcmRvbWFpbi5oIgotI2luY2x1ZGUgImNsb2NrZG9tYWluLmgiCi0jaW5jbHVk ZSAicHJtMnh4eC5oIgotI2luY2x1ZGUgImNtMnh4eF8zeHh4LmgiCi0jaW5jbHVkZSAicHJtLXJl Z2JpdHMtMjR4eC5oIgotCi0vKgotICogT01BUDI0eHggUE1fUFdTVENUUkxfKi5QT1dFUlNUQVRF IGFuZCBQTV9QV1NUU1RfKi5MQVNUU1RBVEVFTlRFUkVEIGJpdHMgLQotICogdGhlc2UgYXJlIHJl dmVyc2VkIGZyb20gdGhlIGJpdHMgdXNlZCBvbiBPTUFQMysKLSAqLwotI2RlZmluZSBPTUFQMjRY WF9QV1JETV9QT1dFUl9PTgkJCTB4MAotI2RlZmluZSBPTUFQMjRYWF9QV1JETV9QT1dFUl9SRVQJ CTB4MQotI2RlZmluZSBPTUFQMjRYWF9QV1JETV9QT1dFUl9PRkYJCTB4MwotCi0vKgotICogb21h cDJ4eHhfcHJtX3Jlc2V0X3NyY19tYXAgLSBtYXAgZnJvbSBiaXRzIGluIHRoZSBQUk1fUlNUU1Rf V0tVUAotICogICBoYXJkd2FyZSByZWdpc3RlciAod2hpY2ggYXJlIHNwZWNpZmljIHRvIHRoZSBP TUFQMnh4eCBTb0NzKSB0bwotICogICByZXNldCBzb3VyY2UgSUQgYml0IHNoaWZ0cyAod2hpY2gg aXMgYW4gT01BUCBTb0MtaW5kZXBlbmRlbnQKLSAqICAgZW51bWVyYXRpb24pCi0gKi8KLXN0YXRp YyBzdHJ1Y3QgcHJtX3Jlc2V0X3NyY19tYXAgb21hcDJ4eHhfcHJtX3Jlc2V0X3NyY19tYXBbXSA9 IHsKLQl7IE9NQVBfR0xPQkFMQ09MRF9SU1RfU0hJRlQsIE9NQVBfR0xPQkFMX0NPTERfUlNUX1NS Q19JRF9TSElGVCB9LAotCXsgT01BUF9HTE9CQUxXQVJNX1JTVF9TSElGVCwgT01BUF9HTE9CQUxf V0FSTV9SU1RfU1JDX0lEX1NISUZUIH0sCi0JeyBPTUFQMjRYWF9TRUNVX1ZJT0xfUlNUX1NISUZU LCBPTUFQX1NFQ1VfVklPTF9SU1RfU1JDX0lEX1NISUZUIH0sCi0JeyBPTUFQMjRYWF9NUFVfV0Rf UlNUX1NISUZULCBPTUFQX01QVV9XRF9SU1RfU1JDX0lEX1NISUZUIH0sCi0JeyBPTUFQMjRYWF9T RUNVX1dEX1JTVF9TSElGVCwgT01BUF9TRUNVX1dEX1JTVF9TUkNfSURfU0hJRlQgfSwKLQl7IE9N QVAyNFhYX0VYVFdNUFVfUlNUX1NISUZULCBPTUFQX0VYVFdBUk1fUlNUX1NSQ19JRF9TSElGVCB9 LAotCXsgLTEsIC0xIH0sCi19OwotCi0vKioKLSAqIG9tYXAyeHh4X3BybV9yZWFkX3Jlc2V0X3Nv dXJjZXMgLSByZXR1cm4gdGhlIGxhc3QgU29DIHJlc2V0IHNvdXJjZQotICoKLSAqIFJldHVybiBh IHUzMiByZXByZXNlbnRpbmcgdGhlIGxhc3QgcmVzZXQgc291cmNlcyBvZiB0aGUgU29DLiAgVGhl Ci0gKiByZXR1cm5lZCByZXNldCBzb3VyY2UgYml0cyBhcmUgc3RhbmRhcmRpemVkIGFjcm9zcyBP TUFQIFNvQ3MuCi0gKi8KLXN0YXRpYyB1MzIgb21hcDJ4eHhfcHJtX3JlYWRfcmVzZXRfc291cmNl cyh2b2lkKQotewotCXN0cnVjdCBwcm1fcmVzZXRfc3JjX21hcCAqcDsKLQl1MzIgciA9IDA7Ci0J dTMyIHY7Ci0KLQl2ID0gb21hcDJfcHJtX3JlYWRfbW9kX3JlZyhXS1VQX01PRCwgT01BUDJfUk1f UlNUU1QpOwotCi0JcCA9IG9tYXAyeHh4X3BybV9yZXNldF9zcmNfbWFwOwotCXdoaWxlIChwLT5y ZWdfc2hpZnQgPj0gMCAmJiBwLT5zdGRfc2hpZnQgPj0gMCkgewotCQlpZiAodiAmICgxIDw8IHAt PnJlZ19zaGlmdCkpCi0JCQlyIHw9IDEgPDwgcC0+c3RkX3NoaWZ0OwotCQlwKys7Ci0JfQotCi0J cmV0dXJuIHI7Ci19Ci0KLS8qKgotICogb21hcDJ4eHhfcHdyc3RfdG9fY29tbW9uX3B3cnN0IC0g Y29udmVydCBPTUFQMnh4eCBwd3JzdCB0byBjb21tb24gcHdyc3QKLSAqIEBvbWFwMnh4eF9wd3Jz dDogT01BUDJ4eHggaGFyZHdhcmUgcG93ZXIgc3RhdGUgdG8gY29udmVydAotICoKLSAqIFJldHVy biB0aGUgY29tbW9uIHBvd2VyIHN0YXRlIGJpdHMgY29ycmVzcG9uZGluZyB0byB0aGUgT01BUDJ4 eHgKLSAqIGhhcmR3YXJlIHBvd2VyIHN0YXRlIGJpdHMgQG9tYXAyeHh4X3B3cnN0LCBvciAtRUlO VkFMIHVwb24gZXJyb3IuCi0gKi8KLXN0YXRpYyBpbnQgb21hcDJ4eHhfcHdyc3RfdG9fY29tbW9u X3B3cnN0KHU4IG9tYXAyeHh4X3B3cnN0KQotewotCXU4IHB3cnN0OwotCi0Jc3dpdGNoIChvbWFw Mnh4eF9wd3JzdCkgewotCWNhc2UgT01BUDI0WFhfUFdSRE1fUE9XRVJfT0ZGOgotCQlwd3JzdCA9 IFBXUkRNX1BPV0VSX09GRjsKLQkJYnJlYWs7Ci0JY2FzZSBPTUFQMjRYWF9QV1JETV9QT1dFUl9S RVQ6Ci0JCXB3cnN0ID0gUFdSRE1fUE9XRVJfUkVUOwotCQlicmVhazsKLQljYXNlIE9NQVAyNFhY X1BXUkRNX1BPV0VSX09OOgotCQlwd3JzdCA9IFBXUkRNX1BPV0VSX09OOwotCQlicmVhazsKLQlk ZWZhdWx0OgotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlyZXR1cm4gcHdyc3Q7Ci19Ci0KLS8q KgotICogb21hcDJ4eHhfcHJtX2RwbGxfcmVzZXQgLSB1c2UgRFBMTCByZXNldCB0byByZWJvb3Qg dGhlIE9NQVAgU29DCi0gKgotICogU2V0IHRoZSBEUExMIHJlc2V0IGJpdCwgd2hpY2ggc2hvdWxk IHJlYm9vdCB0aGUgU29DLiAgVGhpcyBpcyB0aGUKLSAqIHJlY29tbWVuZGVkIHdheSB0byByZXN0 YXJ0IHRoZSBTb0MuICBObyByZXR1cm4gdmFsdWUuCi0gKi8KLXN0YXRpYyB2b2lkIG9tYXAyeHh4 X3BybV9kcGxsX3Jlc2V0KHZvaWQpCi17Ci0Jb21hcDJfcHJtX3NldF9tb2RfcmVnX2JpdHMoT01B UF9SU1RfRFBMTDNfTUFTSywgV0tVUF9NT0QsCi0JCQkJICAgT01BUDJfUk1fUlNUQ1RSTCk7Ci0J LyogT0NQIGJhcnJpZXIgKi8KLQlvbWFwMl9wcm1fcmVhZF9tb2RfcmVnKFdLVVBfTU9ELCBPTUFQ Ml9STV9SU1RDVFJMKTsKLX0KLQotLyoqCi0gKiBvbWFwMnh4eF9wcm1fY2xlYXJfbW9kX2lycXMg LSBjbGVhciB3YWtldXAgc3RhdHVzIGJpdHMgZm9yIGEgbW9kdWxlCi0gKiBAbW9kdWxlOiBQUk0g bW9kdWxlIHRvIGNsZWFyIHdha2V1cHMgZnJvbQotICogQHJlZ3M6IHJlZ2lzdGVyIG9mZnNldCB0 byBjbGVhcgotICogQHdrc3RfbWFzazogd2FrZXVwIHN0YXR1cyBtYXNrIHRvIGNsZWFyCi0gKgot ICogQ2xlYXJzIHdha2V1cCBzdGF0dXMgYml0cyBmb3IgYSBnaXZlbiBtb2R1bGUsIHNvIHRoYXQg dGhlIGRldmljZSBjYW4KLSAqIHJlLWVudGVyIGlkbGUuCi0gKi8KLXN0YXRpYyBpbnQgb21hcDJ4 eHhfcHJtX2NsZWFyX21vZF9pcnFzKHMxNiBtb2R1bGUsIHU4IHJlZ3MsIHUzMiB3a3N0X21hc2sp Ci17Ci0JdTMyIHdrc3Q7Ci0KLQl3a3N0ID0gb21hcDJfcHJtX3JlYWRfbW9kX3JlZyhtb2R1bGUs IHJlZ3MpOwotCXdrc3QgJj0gd2tzdF9tYXNrOwotCW9tYXAyX3BybV93cml0ZV9tb2RfcmVnKHdr c3QsIG1vZHVsZSwgcmVncyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLWludCBvbWFwMnh4eF9jbGtkbV9z bGVlcChzdHJ1Y3QgY2xvY2tkb21haW4gKmNsa2RtKQotewotCW9tYXAyX3BybV9zZXRfbW9kX3Jl Z19iaXRzKE9NQVAyNFhYX0ZPUkNFU1RBVEVfTUFTSywKLQkJCQkgICBjbGtkbS0+cHdyZG0ucHRy LT5wcmNtX29mZnMsCi0JCQkJICAgT01BUDJfUE1fUFdTVENUUkwpOwotCXJldHVybiAwOwotfQot Ci1pbnQgb21hcDJ4eHhfY2xrZG1fd2FrZXVwKHN0cnVjdCBjbG9ja2RvbWFpbiAqY2xrZG0pCi17 Ci0Jb21hcDJfcHJtX2NsZWFyX21vZF9yZWdfYml0cyhPTUFQMjRYWF9GT1JDRVNUQVRFX01BU0ss Ci0JCQkJICAgICBjbGtkbS0+cHdyZG0ucHRyLT5wcmNtX29mZnMsCi0JCQkJICAgICBPTUFQMl9Q TV9QV1NUQ1RSTCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgb21hcDJ4eHhfcHdyZG1f c2V0X25leHRfcHdyc3Qoc3RydWN0IHBvd2VyZG9tYWluICpwd3JkbSwgdTggcHdyc3QpCi17Ci0J dTggb21hcDI0eHhfcHdyc3Q7Ci0KLQlzd2l0Y2ggKHB3cnN0KSB7Ci0JY2FzZSBQV1JETV9QT1dF Ul9PRkY6Ci0JCW9tYXAyNHh4X3B3cnN0ID0gT01BUDI0WFhfUFdSRE1fUE9XRVJfT0ZGOwotCQli cmVhazsKLQljYXNlIFBXUkRNX1BPV0VSX1JFVDoKLQkJb21hcDI0eHhfcHdyc3QgPSBPTUFQMjRY WF9QV1JETV9QT1dFUl9SRVQ7Ci0JCWJyZWFrOwotCWNhc2UgUFdSRE1fUE9XRVJfT046Ci0JCW9t YXAyNHh4X3B3cnN0ID0gT01BUDI0WFhfUFdSRE1fUE9XRVJfT047Ci0JCWJyZWFrOwotCWRlZmF1 bHQ6Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCW9tYXAyX3BybV9ybXdfbW9kX3JlZ19iaXRz KE9NQVBfUE9XRVJTVEFURV9NQVNLLAotCQkJCSAgIChvbWFwMjR4eF9wd3JzdCA8PCBPTUFQX1BP V0VSU1RBVEVfU0hJRlQpLAotCQkJCSAgIHB3cmRtLT5wcmNtX29mZnMsIE9NQVAyX1BNX1BXU1RD VFJMKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBvbWFwMnh4eF9wd3JkbV9yZWFkX25l eHRfcHdyc3Qoc3RydWN0IHBvd2VyZG9tYWluICpwd3JkbSkKLXsKLQl1OCBvbWFwMnh4eF9wd3Jz dDsKLQotCW9tYXAyeHh4X3B3cnN0ID0gb21hcDJfcHJtX3JlYWRfbW9kX2JpdHNfc2hpZnQocHdy ZG0tPnByY21fb2ZmcywKLQkJCQkJCSAgICAgICBPTUFQMl9QTV9QV1NUQ1RSTCwKLQkJCQkJCSAg ICAgICBPTUFQX1BPV0VSU1RBVEVfTUFTSyk7Ci0KLQlyZXR1cm4gb21hcDJ4eHhfcHdyc3RfdG9f Y29tbW9uX3B3cnN0KG9tYXAyeHh4X3B3cnN0KTsKLX0KLQotc3RhdGljIGludCBvbWFwMnh4eF9w d3JkbV9yZWFkX3B3cnN0KHN0cnVjdCBwb3dlcmRvbWFpbiAqcHdyZG0pCi17Ci0JdTggb21hcDJ4 eHhfcHdyc3Q7Ci0KLQlvbWFwMnh4eF9wd3JzdCA9IG9tYXAyX3BybV9yZWFkX21vZF9iaXRzX3No aWZ0KHB3cmRtLT5wcmNtX29mZnMsCi0JCQkJCQkgICAgICAgT01BUDJfUE1fUFdTVFNULAotCQkJ CQkJICAgICAgIE9NQVBfUE9XRVJTVEFURVNUX01BU0spOwotCi0JcmV0dXJuIG9tYXAyeHh4X3B3 cnN0X3RvX2NvbW1vbl9wd3JzdChvbWFwMnh4eF9wd3JzdCk7Ci19Ci0KLXN0cnVjdCBwd3JkbV9v cHMgb21hcDJfcHdyZG1fb3BlcmF0aW9ucyA9IHsKLQkucHdyZG1fc2V0X25leHRfcHdyc3QJPSBv bWFwMnh4eF9wd3JkbV9zZXRfbmV4dF9wd3JzdCwKLQkucHdyZG1fcmVhZF9uZXh0X3B3cnN0CT0g b21hcDJ4eHhfcHdyZG1fcmVhZF9uZXh0X3B3cnN0LAotCS5wd3JkbV9yZWFkX3B3cnN0CT0gb21h cDJ4eHhfcHdyZG1fcmVhZF9wd3JzdCwKLQkucHdyZG1fc2V0X2xvZ2ljX3JldHN0CT0gb21hcDJf cHdyZG1fc2V0X2xvZ2ljX3JldHN0LAotCS5wd3JkbV9zZXRfbWVtX29uc3QJPSBvbWFwMl9wd3Jk bV9zZXRfbWVtX29uc3QsCi0JLnB3cmRtX3NldF9tZW1fcmV0c3QJPSBvbWFwMl9wd3JkbV9zZXRf bWVtX3JldHN0LAotCS5wd3JkbV9yZWFkX21lbV9wd3JzdAk9IG9tYXAyX3B3cmRtX3JlYWRfbWVt X3B3cnN0LAotCS5wd3JkbV9yZWFkX21lbV9yZXRzdAk9IG9tYXAyX3B3cmRtX3JlYWRfbWVtX3Jl dHN0LAotCS5wd3JkbV93YWl0X3RyYW5zaXRpb24JPSBvbWFwMl9wd3JkbV93YWl0X3RyYW5zaXRp b24sCi19OwotCi0vKgotICoKLSAqLwotCi1zdGF0aWMgc3RydWN0IHBybV9sbF9kYXRhIG9tYXAy eHh4X3BybV9sbF9kYXRhID0gewotCS5yZWFkX3Jlc2V0X3NvdXJjZXMgPSAmb21hcDJ4eHhfcHJt X3JlYWRfcmVzZXRfc291cmNlcywKLQkuYXNzZXJ0X2hhcmRyZXNldCA9ICZvbWFwMl9wcm1fYXNz ZXJ0X2hhcmRyZXNldCwKLQkuZGVhc3NlcnRfaGFyZHJlc2V0ID0gJm9tYXAyX3BybV9kZWFzc2Vy dF9oYXJkcmVzZXQsCi0JLmlzX2hhcmRyZXNldF9hc3NlcnRlZCA9ICZvbWFwMl9wcm1faXNfaGFy ZHJlc2V0X2Fzc2VydGVkLAotCS5yZXNldF9zeXN0ZW0gPSAmb21hcDJ4eHhfcHJtX2RwbGxfcmVz ZXQsCi0JLmNsZWFyX21vZF9pcnFzID0gJm9tYXAyeHh4X3BybV9jbGVhcl9tb2RfaXJxcywKLX07 Ci0KLWludCBfX2luaXQgb21hcDJ4eHhfcHJtX2luaXQoY29uc3Qgc3RydWN0IG9tYXBfcHJjbV9p bml0X2RhdGEgKmRhdGEpCi17Ci0JcmV0dXJuIHBybV9yZWdpc3Rlcigmb21hcDJ4eHhfcHJtX2xs X2RhdGEpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgb21hcDJ4eHhfcHJtX2V4aXQodm9pZCkK LXsKLQlwcm1fdW5yZWdpc3Rlcigmb21hcDJ4eHhfcHJtX2xsX2RhdGEpOwotfQotX19leGl0Y2Fs bChvbWFwMnh4eF9wcm1fZXhpdCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3By bTJ4eHguaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvcHJtMnh4eC5oCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA2NTliOTE3MzQ4ZjguLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9t YWNoLW9tYXAyL3BybTJ4eHguaAorKysgL2Rldi9udWxsCkBAIC0xLDEyOCArMCwwIEBACi0vKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCi0vKgotICogT01BUDJ4eHgg UG93ZXIvUmVzZXQgTWFuYWdlbWVudCAoUFJNKSByZWdpc3RlciBkZWZpbml0aW9ucwotICoKLSAq IENvcHlyaWdodCAoQykgMjAwNy0yMDA5LCAyMDExLTIwMTIgVGV4YXMgSW5zdHJ1bWVudHMsIElu Yy4KLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIE5va2lhIENvcnBvcmF0aW9uCi0gKiBQYXVs IFdhbG1zbGV5Ci0gKgotICogVGhlIFBSTSBoYXJkd2FyZSBtb2R1bGVzIG9uIHRoZSBPTUFQMi8z IGFyZSBxdWl0ZSBzaW1pbGFyIHRvIGVhY2gKLSAqIG90aGVyLiAgVGhlIFBSTSBvbiBPTUFQNCBo YXMgYSBuZXcgcmVnaXN0ZXIgbGF5b3V0LCBhbmQgaXMgaGFuZGxlZAotICogaW4gYSBzZXBhcmF0 ZSBmaWxlLgotICovCi0jaWZuZGVmIF9fQVJDSF9BUk1fTUFDSF9PTUFQMl9QUk0yWFhYX0gKLSNk ZWZpbmUgX19BUkNIX0FSTV9NQUNIX09NQVAyX1BSTTJYWFhfSAotCi0jaW5jbHVkZSAicHJjbS1j b21tb24uaCIKLSNpbmNsdWRlICJwcm0uaCIKLSNpbmNsdWRlICJwcm0yeHh4XzN4eHguaCIKLQot I2RlZmluZSBPTUFQMjQyMF9QUk1fUkVHQUREUihtb2R1bGUsIHJlZykJCQkJXAotCQlPTUFQMl9M NF9JT19BRERSRVNTKE9NQVAyNDIwX1BSTV9CQVNFICsgKG1vZHVsZSkgKyAocmVnKSkKLSNkZWZp bmUgT01BUDI0MzBfUFJNX1JFR0FERFIobW9kdWxlLCByZWcpCQkJCVwKLQkJT01BUDJfTDRfSU9f QUREUkVTUyhPTUFQMjQzMF9QUk1fQkFTRSArIChtb2R1bGUpICsgKHJlZykpCi0KLS8qCi0gKiBP TUFQMi1zcGVjaWZpYyBnbG9iYWwgUFJNIHJlZ2lzdGVycwotICogVXNlIHtyZWFkLHdyaXRlfWxf cmVsYXhlZCgpIHdpdGggdGhlc2UgcmVnaXN0ZXJzLgotICoKLSAqIFdpdGggYSBmZXcgZXhjZXB0 aW9ucywgdGhlc2UgYXJlIHRoZSByZWdpc3RlciBuYW1lcyBiZWdpbm5pbmcgd2l0aAotICogUFJD TV8qIG9uIDI0eHguICAoVGhlIGV4Y2VwdGlvbnMgYXJlIHRoZSBJUlFTVEFUVVMgYW5kIElSUUVO QUJMRQotICogYml0cy4pCi0gKgotICovCi0KLSNkZWZpbmUgT01BUDJfUFJDTV9SRVZJU0lPTl9P RkZTRVQJMHgwMDAwCi0jZGVmaW5lIE9NQVAyNDIwX1BSQ01fUkVWSVNJT04JCU9NQVAyNDIwX1BS TV9SRUdBRERSKE9DUF9NT0QsIDB4MDAwMCkKLSNkZWZpbmUgT01BUDJfUFJDTV9TWVNDT05GSUdf T0ZGU0VUCTB4MDAxMAotI2RlZmluZSBPTUFQMjQyMF9QUkNNX1NZU0NPTkZJRwkJT01BUDI0MjBf UFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDEwKQotCi0jZGVmaW5lIE9NQVAyX1BSQ01fSVJRU1RB VFVTX01QVV9PRkZTRVQJMHgwMDE4Ci0jZGVmaW5lIE9NQVAyNDIwX1BSQ01fSVJRU1RBVFVTX01Q VQlPTUFQMjQyMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwMTgpCi0jZGVmaW5lIE9NQVAyX1BS Q01fSVJRRU5BQkxFX01QVV9PRkZTRVQJMHgwMDFjCi0jZGVmaW5lIE9NQVAyNDIwX1BSQ01fSVJR RU5BQkxFX01QVQlPTUFQMjQyMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwMWMpCi0KLSNkZWZp bmUgT01BUDJfUFJDTV9WT0xUQ1RSTF9PRkZTRVQJMHgwMDUwCi0jZGVmaW5lIE9NQVAyNDIwX1BS Q01fVk9MVENUUkwJCU9NQVAyNDIwX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDA1MCkKLSNkZWZp bmUgT01BUDJfUFJDTV9WT0xUU1RfT0ZGU0VUCTB4MDA1NAotI2RlZmluZSBPTUFQMjQyMF9QUkNN X1ZPTFRTVAkJT01BUDI0MjBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDU0KQotI2RlZmluZSBP TUFQMl9QUkNNX0NMS1NSQ19DVFJMX09GRlNFVAkweDAwNjAKLSNkZWZpbmUgT01BUDI0MjBfUFJD TV9DTEtTUkNfQ1RSTAlPTUFQMjQyMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwNjApCi0jZGVm aW5lIE9NQVAyX1BSQ01fQ0xLT1VUX0NUUkxfT0ZGU0VUCTB4MDA3MAotI2RlZmluZSBPTUFQMjQy MF9QUkNNX0NMS09VVF9DVFJMCU9NQVAyNDIwX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDA3MCkK LSNkZWZpbmUgT01BUDJfUFJDTV9DTEtFTVVMX0NUUkxfT0ZGU0VUCTB4MDA3OAotI2RlZmluZSBP TUFQMjQyMF9QUkNNX0NMS0VNVUxfQ1RSTAlPTUFQMjQyMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAw eDAwNzgpCi0jZGVmaW5lIE9NQVAyX1BSQ01fQ0xLQ0ZHX0NUUkxfT0ZGU0VUCTB4MDA4MAotI2Rl ZmluZSBPTUFQMjQyMF9QUkNNX0NMS0NGR19DVFJMCU9NQVAyNDIwX1BSTV9SRUdBRERSKE9DUF9N T0QsIDB4MDA4MCkKLSNkZWZpbmUgT01BUDJfUFJDTV9DTEtDRkdfU1RBVFVTX09GRlNFVAkweDAw ODQKLSNkZWZpbmUgT01BUDI0MjBfUFJDTV9DTEtDRkdfU1RBVFVTCU9NQVAyNDIwX1BSTV9SRUdB RERSKE9DUF9NT0QsIDB4MDA4NCkKLSNkZWZpbmUgT01BUDJfUFJDTV9WT0xUU0VUVVBfT0ZGU0VU CTB4MDA5MAotI2RlZmluZSBPTUFQMjQyMF9QUkNNX1ZPTFRTRVRVUAkJT01BUDI0MjBfUFJNX1JF R0FERFIoT0NQX01PRCwgMHgwMDkwKQotI2RlZmluZSBPTUFQMl9QUkNNX0NMS1NTRVRVUF9PRkZT RVQJMHgwMDk0Ci0jZGVmaW5lIE9NQVAyNDIwX1BSQ01fQ0xLU1NFVFVQCQlPTUFQMjQyMF9QUk1f UkVHQUREUihPQ1BfTU9ELCAweDAwOTQpCi0jZGVmaW5lIE9NQVAyX1BSQ01fUE9MQ1RSTF9PRkZT RVQJMHgwMDk4Ci0jZGVmaW5lIE9NQVAyNDIwX1BSQ01fUE9MQ1RSTAkJT01BUDI0MjBfUFJNX1JF R0FERFIoT0NQX01PRCwgMHgwMDk4KQotCi0jZGVmaW5lIE9NQVAyNDMwX1BSQ01fUkVWSVNJT04J CU9NQVAyNDMwX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDAwMCkKLSNkZWZpbmUgT01BUDI0MzBf UFJDTV9TWVNDT05GSUcJCU9NQVAyNDMwX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDAxMCkKLQot I2RlZmluZSBPTUFQMjQzMF9QUkNNX0lSUVNUQVRVU19NUFUJT01BUDI0MzBfUFJNX1JFR0FERFIo T0NQX01PRCwgMHgwMDE4KQotI2RlZmluZSBPTUFQMjQzMF9QUkNNX0lSUUVOQUJMRV9NUFUJT01B UDI0MzBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDFjKQotCi0jZGVmaW5lIE9NQVAyNDMwX1BS Q01fVk9MVENUUkwJCU9NQVAyNDMwX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDA1MCkKLSNkZWZp bmUgT01BUDI0MzBfUFJDTV9WT0xUU1QJCU9NQVAyNDMwX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4 MDA1NCkKLSNkZWZpbmUgT01BUDI0MzBfUFJDTV9DTEtTUkNfQ1RSTAlPTUFQMjQzMF9QUk1fUkVH QUREUihPQ1BfTU9ELCAweDAwNjApCi0jZGVmaW5lIE9NQVAyNDMwX1BSQ01fQ0xLT1VUX0NUUkwJ T01BUDI0MzBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDcwKQotI2RlZmluZSBPTUFQMjQzMF9Q UkNNX0NMS0VNVUxfQ1RSTAlPTUFQMjQzMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwNzgpCi0j ZGVmaW5lIE9NQVAyNDMwX1BSQ01fQ0xLQ0ZHX0NUUkwJT01BUDI0MzBfUFJNX1JFR0FERFIoT0NQ X01PRCwgMHgwMDgwKQotI2RlZmluZSBPTUFQMjQzMF9QUkNNX0NMS0NGR19TVEFUVVMJT01BUDI0 MzBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDg0KQotI2RlZmluZSBPTUFQMjQzMF9QUkNNX1ZP TFRTRVRVUAkJT01BUDI0MzBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDkwKQotI2RlZmluZSBP TUFQMjQzMF9QUkNNX0NMS1NTRVRVUAkJT01BUDI0MzBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgw MDk0KQotI2RlZmluZSBPTUFQMjQzMF9QUkNNX1BPTENUUkwJCU9NQVAyNDMwX1BSTV9SRUdBRERS KE9DUF9NT0QsIDB4MDA5OCkKLQotLyoKLSAqIE1vZHVsZSBzcGVjaWZpYyBQUk0gcmVnaXN0ZXIg b2Zmc2V0cyBmcm9tIFBSTV9CQVNFICsgZG9tYWluIG9mZnNldAotICoKLSAqIFVzZSBwcm1fe3Jl YWQsd3JpdGV9X21vZF9yZWcoKSB3aXRoIHRoZXNlIHJlZ2lzdGVycy4KLSAqCi0gKiBXaXRoIGEg ZmV3IGV4Y2VwdGlvbnMsIHRoZXNlIGFyZSB0aGUgcmVnaXN0ZXIgbmFtZXMgYmVnaW5uaW5nIHdp dGgKLSAqIHtQTSxSTX1fKiBvbiBib3RoIE9NQVAyLzMgU29DIGZhbWlsaWVzLi4gIChUaGUgZXhj ZXB0aW9ucyBhcmUgdGhlCi0gKiBJUlFTVEFUVVMgYW5kIElSUUVOQUJMRSBiaXRzLikKLSAqLwot Ci0vKiBSZWdpc3RlciBvZmZzZXRzIGFwcGVhcmluZyBvbiBib3RoIE9NQVAyIGFuZCBPTUFQMyAq LwotCi0jZGVmaW5lIE9NQVAyX1JNX1JTVENUUkwJCQkJMHgwMDUwCi0jZGVmaW5lIE9NQVAyX1JN X1JTVFRJTUUJCQkJMHgwMDU0Ci0jZGVmaW5lIE9NQVAyX1JNX1JTVFNUCQkJCQkweDAwNTgKLSNk ZWZpbmUgT01BUDJfUE1fUFdTVENUUkwJCQkJMHgwMGUwCi0jZGVmaW5lIE9NQVAyX1BNX1BXU1RT VAkJCQkJMHgwMGU0Ci0KLSNkZWZpbmUgUE1fV0tFTgkJCQkJCTB4MDBhMAotI2RlZmluZSBQTV9X S0VOMQkJCQkJUE1fV0tFTgotI2RlZmluZSBQTV9XS1NUCQkJCQkJMHgwMGIwCi0jZGVmaW5lIFBN X1dLU1QxCQkJCQlQTV9XS1NUCi0jZGVmaW5lIFBNX1dLREVQCQkJCQkweDAwYzgKLSNkZWZpbmUg UE1fRVZHRU5DVFJMCQkJCQkweDAwZDQKLSNkZWZpbmUgUE1fRVZHRU5PTlRJTQkJCQkJMHgwMGQ4 Ci0jZGVmaW5lIFBNX0VWR0VOT0ZGVElNCQkJCQkweDAwZGMKLQotLyogT01BUDJ4eHggc3BlY2lm aWMgcmVnaXN0ZXIgb2Zmc2V0cyAqLwotI2RlZmluZSBPTUFQMjRYWF9QTV9XS0VOMgkJCQkweDAw YTQKLSNkZWZpbmUgT01BUDI0WFhfUE1fV0tTVDIJCQkJMHgwMGI0Ci0KLSNkZWZpbmUgT01BUDI0 WFhfUFJDTV9JUlFTVEFUVVNfRFNQCQkJMHgwMGYwCS8qIElWQSBtb2QgKi8KLSNkZWZpbmUgT01B UDI0WFhfUFJDTV9JUlFFTkFCTEVfRFNQCQkJMHgwMGY0CS8qIElWQSBtb2QgKi8KLSNkZWZpbmUg T01BUDI0WFhfUFJDTV9JUlFTVEFUVVNfSVZBCQkJMHgwMGY4Ci0jZGVmaW5lIE9NQVAyNFhYX1BS Q01fSVJRRU5BQkxFX0lWQQkJCTB4MDBmYwotCi0jaWZuZGVmIF9fQVNTRU1CTEVSX18KLS8qIEZ1 bmN0aW9uIHByb3RvdHlwZXMgKi8KLWV4dGVybiBpbnQgb21hcDJ4eHhfY2xrZG1fc2xlZXAoc3Ry dWN0IGNsb2NrZG9tYWluICpjbGtkbSk7Ci1leHRlcm4gaW50IG9tYXAyeHh4X2Nsa2RtX3dha2V1 cChzdHJ1Y3QgY2xvY2tkb21haW4gKmNsa2RtKTsKLQotaW50IF9faW5pdCBvbWFwMnh4eF9wcm1f aW5pdChjb25zdCBzdHJ1Y3Qgb21hcF9wcmNtX2luaXRfZGF0YSAqZGF0YSk7Ci0KLSNlbmRpZgot Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvcHJtMnh4eF8zeHh4LmMg Yi9hcmNoL2FybS9tYWNoLW9tYXAyL3BybTJ4eHhfM3h4eC5jCmluZGV4IGQ5ODNlZmFjNmY0Zi4u YWZhYmE3MTUzZWNlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3BybTJ4eHhfM3h4 eC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvcHJtMnh4eF8zeHh4LmMKQEAgLTE1LDcgKzE1 LDYgQEAKIAogI2luY2x1ZGUgInBvd2VyZG9tYWluLmgiCiAjaW5jbHVkZSAicHJtMnh4eF8zeHh4 LmgiCi0jaW5jbHVkZSAicHJtLXJlZ2JpdHMtMjR4eC5oIgogI2luY2x1ZGUgImNsb2NrZG9tYWlu LmgiCiAKIC8qKgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm1fY29tbW9uLmMg Yi9hcmNoL2FybS9tYWNoLW9tYXAyL3BybV9jb21tb24uYwppbmRleCBlZTQ1ODhhY2RhNTAuLjM1 NDZlNzI5MmJmYiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm1fY29tbW9uLmMK KysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm1fY29tbW9uLmMKQEAgLTI2LDcgKzI2LDYgQEAK IAogI2luY2x1ZGUgInNvYy5oIgogI2luY2x1ZGUgInBybTJ4eHhfM3h4eC5oIgotI2luY2x1ZGUg InBybTJ4eHguaCIKICNpbmNsdWRlICJwcm0zeHh4LmgiCiAjaW5jbHVkZSAicHJtMzN4eC5oIgog I2luY2x1ZGUgInBybTQ0eHguaCIKQEAgLTU4MiwxMyArNTgxLDYgQEAgaW50IHBybV91bnJlZ2lz dGVyKHN0cnVjdCBwcm1fbGxfZGF0YSAqcGxkKQogCXJldHVybiAwOwogfQogCi0jaWZkZWYgQ09O RklHX0FSQ0hfT01BUDIKLXN0YXRpYyBzdHJ1Y3Qgb21hcF9wcmNtX2luaXRfZGF0YSBvbWFwMl9w cm1fZGF0YSBfX2luaXRkYXRhID0gewotCS5pbmRleCA9IFRJX0NMS01fUFJNLAotCS5pbml0ID0g b21hcDJ4eHhfcHJtX2luaXQsCi19OwotI2VuZGlmCi0KICNpZmRlZiBDT05GSUdfQVJDSF9PTUFQ Mwogc3RhdGljIHN0cnVjdCBvbWFwX3ByY21faW5pdF9kYXRhIG9tYXAzX3BybV9kYXRhIF9faW5p dGRhdGEgPSB7CiAJLmluZGV4ID0gVElfQ0xLTV9QUk0sCkBAIC02NzAsOSArNjYyLDYgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgb21hcF9wcmNtX2R0X21hdGNoX3RhYmxlW10g X19pbml0Y29uc3QgPSB7CiAJeyAuY29tcGF0aWJsZSA9ICJ0aSxkbTgxNC1wbGxzcyIsIC5kYXRh ID0gJmRtODE0X3BsbHNzX2RhdGEgfSwKIAl7IC5jb21wYXRpYmxlID0gInRpLGRtODE2LXByY20i LCAuZGF0YSA9ICZhbTNfcHJtX2RhdGEgfSwKICNlbmRpZgotI2lmZGVmIENPTkZJR19BUkNIX09N QVAyCi0JeyAuY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1wcmNtIiwgLmRhdGEgPSAmb21hcDJfcHJt X2RhdGEgfSwKLSNlbmRpZgogI2lmZGVmIENPTkZJR19BUkNIX09NQVAzCiAJeyAuY29tcGF0aWJs ZSA9ICJ0aSxvbWFwMy1wcm0iLCAuZGF0YSA9ICZvbWFwM19wcm1fZGF0YSB9LAogI2VuZGlmCmRp ZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3NkcmMuaCBiL2FyY2gvYXJtL21hY2gtb21h cDIvc2RyYy5oCmluZGV4IDQ1YjM1NDIyYjU4Ny4uYzM0ZmJhNGQyZjFhIDEwMDY0NAotLS0gYS9h cmNoL2FybS9tYWNoLW9tYXAyL3NkcmMuaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3NkcmMu aApAQCAtOTAsMTcgKzkwLDcgQEAgc3RydWN0IG1lbW9yeV90aW1pbmdzIHsKIAl1MzIgYmFzZV9j czsJCS8qIGJhc2UgY2hpcCBzZWxlY3QgdG8gdXNlIGZvciBjYWxjdWxhdGlvbnMgKi8KIH07CiAK LWV4dGVybiB2b2lkIG9tYXAyeHh4X3NkcmNfaW5pdF9wYXJhbXModTMyIGZvcmNlX2xvY2tfdG9f dW5sb2NrX21vZGUpOwotCi11MzIgb21hcDJ4eHhfc2RyY19kbGxfaXNfdW5sb2NrZWQodm9pZCk7 Ci11MzIgb21hcDJ4eHhfc2RyY19yZXByb2dyYW0odTMyIGxldmVsLCB1MzIgZm9yY2UpOwotCi0K ICNlbHNlCi0jZGVmaW5lIE9NQVAyNDJYX1NEUkNfUkVHQUREUihyZWcpCQkJCQlcCi0JCQlPTUFQ Ml9MM19JT19BRERSRVNTKE9NQVAyNDIwX1NEUkNfQkFTRSArIChyZWcpKQotI2RlZmluZSBPTUFQ MjQzWF9TRFJDX1JFR0FERFIocmVnKQkJCQkJXAotCQkJT01BUDJfTDNfSU9fQUREUkVTUyhPTUFQ MjQzWF9TRFJDX0JBU0UgKyAocmVnKSkKICNkZWZpbmUgT01BUDM0WFhfU0RSQ19SRUdBRERSKHJl ZykJCQkJCVwKIAkJCU9NQVAyX0wzX0lPX0FERFJFU1MoT01BUDM0M1hfU0RSQ19CQVNFICsgKHJl ZykpCiAKQEAgLTE4NCwxNyArMTc0LDYgQEAgdTMyIG9tYXAyeHh4X3NkcmNfcmVwcm9ncmFtKHUz MiBsZXZlbCwgdTMyIGZvcmNlKTsKICNkZWZpbmUgU0RSQ19SRlJfQ1RSTF9CWVBBU1MJKDB4MDAw MDUwMDAgfCAxKSAvKiBOZWVkIHRvIGNhbGMgKi8KIAogCi0vKgotICogU01TIHJlZ2lzdGVyIGFj Y2VzcwotICovCi0KLSNkZWZpbmUgT01BUDI0MlhfU01TX1JFR0FERFIocmVnKQkJCQkJXAotCQko dm9pZCBfX2lvbWVtICopT01BUDJfTDNfSU9fQUREUkVTUyhPTUFQMjQyMF9TTVNfQkFTRSArIHJl ZykKLSNkZWZpbmUgT01BUDI0M1hfU01TX1JFR0FERFIocmVnKQkJCQkJXAotCQkodm9pZCBfX2lv bWVtICopT01BUDJfTDNfSU9fQUREUkVTUyhPTUFQMjQzWF9TTVNfQkFTRSArIHJlZykKLSNkZWZp bmUgT01BUDM0M1hfU01TX1JFR0FERFIocmVnKQkJCQkJXAotCQkodm9pZCBfX2lvbWVtICopT01B UDJfTDNfSU9fQUREUkVTUyhPTUFQMzQzWF9TTVNfQkFTRSArIHJlZykKLQogLyogU01TIHJlZ2lz dGVyIG9mZnNldHMgLSByZWFkL3dyaXRlIHdpdGggc21zX3tyZWFkLHdyaXRlfV9yZWcoKSAqLwog CiAjZGVmaW5lIFNNU19TWVNDT05GSUcJCQkweDAxMApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFj aC1vbWFwMi9zZHJjMnh4eC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9zZHJjMnh4eC5jCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTI3NWI0ZmQ0MDQuLjAwMDAwMDAwMDAwMAotLS0g YS9hcmNoL2FybS9tYWNoLW9tYXAyL3NkcmMyeHh4LmMKKysrIC9kZXYvbnVsbApAQCAtMSwxNjQg KzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAq IFNEUkFNIHRpbWluZyByZWxhdGVkIGZ1bmN0aW9ucyBmb3IgT01BUDJ4eHgKLSAqCi0gKiBDb3B5 cmlnaHQgKEMpIDIwMDUsIDIwMDggVGV4YXMgSW5zdHJ1bWVudHMgSW5jLgotICogQ29weXJpZ2h0 IChDKSAyMDA1LCAyMDA4IE5va2lhIENvcnBvcmF0aW9uCi0gKgotICogVG9ueSBMaW5kZ3JlbiA8 dG9ueUBhdG9taWRlLmNvbT4KLSAqIFBhdWwgV2FsbXNsZXkKLSAqIFJpY2hhcmQgV29vZHJ1ZmYg PHItd29vZHJ1ZmYyQHRpLmNvbT4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0j aW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+Ci0jaW5j bHVkZSA8bGludXgvbGlzdC5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8 bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KLSNpbmNsdWRlIDxsaW51eC9p by5oPgotCi0jaW5jbHVkZSAic29jLmgiCi0jaW5jbHVkZSAiaW9tYXAuaCIKLSNpbmNsdWRlICJj b21tb24uaCIKLSNpbmNsdWRlICJwcm0yeHh4LmgiCi0jaW5jbHVkZSAiY2xvY2suaCIKLSNpbmNs dWRlICJzZHJjLmgiCi0jaW5jbHVkZSAic3JhbS5oIgotCi0vKiBNZW1vcnkgdGltaW5nLCBETEwg bW9kZSBmbGFncyAqLwotI2RlZmluZSBNX0REUgkJMQotI2RlZmluZSBNX0xPQ0tfQ1RSTAkoMSA8 PCAyKQotI2RlZmluZSBNX1VOTE9DSwkwCi0jZGVmaW5lIE1fTE9DSwkJMQotCi0KLXN0YXRpYyBz dHJ1Y3QgbWVtb3J5X3RpbWluZ3MgbWVtX3RpbWluZ3M7Ci1zdGF0aWMgdTMyIGN1cnJfcGVyZl9s ZXZlbCA9IENPUkVfQ0xLX1NSQ19EUExMX1gyOwotCi1zdGF0aWMgdTMyIG9tYXAyeHh4X3NkcmNf Z2V0X3Nsb3dfZGxsX2N0cmwodm9pZCkKLXsKLQlyZXR1cm4gbWVtX3RpbWluZ3Muc2xvd19kbGxf Y3RybDsKLX0KLQotc3RhdGljIHUzMiBvbWFwMnh4eF9zZHJjX2dldF9mYXN0X2RsbF9jdHJsKHZv aWQpCi17Ci0JcmV0dXJuIG1lbV90aW1pbmdzLmZhc3RfZGxsX2N0cmw7Ci19Ci0KLXN0YXRpYyB1 MzIgb21hcDJ4eHhfc2RyY19nZXRfdHlwZSh2b2lkKQotewotCXJldHVybiBtZW1fdGltaW5ncy5t X3R5cGU7Ci19Ci0KLS8qCi0gKiBDaGVjayB0aGUgRExMIGxvY2sgc3RhdGUsIGFuZCByZXR1cm4g dHVlIGlmIHJ1bm5pbmcgaW4gdW5sb2NrIG1vZGUuCi0gKiBUaGlzIGlzIG5lZWRlZCB0byBjb21w ZW5zYXRlIGZvciB0aGUgc2hpZnRlZCBETEwgdmFsdWUgaW4gdW5sb2NrIG1vZGUuCi0gKi8KLXUz MiBvbWFwMnh4eF9zZHJjX2RsbF9pc191bmxvY2tlZCh2b2lkKQotewotCS8qIGRsbGEgYW5kIGRs bGIgYXJlIGEgc2V0ICovCi0JdTMyIGRsbF9zdGF0ZSA9IHNkcmNfcmVhZF9yZWcoU0RSQ19ETExB X0NUUkwpOwotCi0JaWYgKChkbGxfc3RhdGUgJiAoMSA8PCAyKSkgPT0gKDEgPDwgMikpCi0JCXJl dHVybiAxOwotCWVsc2UKLQkJcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiAnbGV2ZWwnIGlzIHRoZSB2 YWx1ZSB0byBzdG9yZSB0byBDTV9DTEtTRUwyX1BMTC5DT1JFX0NMS19TUkMuCi0gKiBQcmFjdGlj YWwgdmFsdWVzIGFyZSBDT1JFX0NMS19TUkNfRFBMTCAoZm9yIENPUkVfQ0xLID0gRFBMTF9DTEsp IG9yCi0gKiBDT1JFX0NMS19TUkNfRFBMTF9YMiAoZm9yIENPUkVfQ0xLID0gKiBEUExMX0NMSyAq IDIpCi0gKgotICogVXNlZCBieSB0aGUgY2xvY2sgZnJhbWV3b3JrIGR1cmluZyBDT1JFIERQTEwg Y2hhbmdlcwotICovCi11MzIgb21hcDJ4eHhfc2RyY19yZXByb2dyYW0odTMyIGxldmVsLCB1MzIg Zm9yY2UpCi17Ci0JdTMyIGRsbF9jdHJsLCBtX3R5cGU7Ci0JdTMyIHByZXYgPSBjdXJyX3BlcmZf bGV2ZWw7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCWlmICgoY3Vycl9wZXJmX2xldmVsID09 IGxldmVsKSAmJiAhZm9yY2UpCi0JCXJldHVybiBwcmV2OwotCi0JaWYgKGxldmVsID09IENPUkVf Q0xLX1NSQ19EUExMKQotCQlkbGxfY3RybCA9IG9tYXAyeHh4X3NkcmNfZ2V0X3Nsb3dfZGxsX2N0 cmwoKTsKLQllbHNlIGlmIChsZXZlbCA9PSBDT1JFX0NMS19TUkNfRFBMTF9YMikKLQkJZGxsX2N0 cmwgPSBvbWFwMnh4eF9zZHJjX2dldF9mYXN0X2RsbF9jdHJsKCk7Ci0JZWxzZQotCQlyZXR1cm4g cHJldjsKLQotCW1fdHlwZSA9IG9tYXAyeHh4X3NkcmNfZ2V0X3R5cGUoKTsKLQotCWxvY2FsX2ly cV9zYXZlKGZsYWdzKTsKLQkvKgotCSAqIFhYWCBUaGVzZSBjYWxscyBzaG91bGQgYmUgYWJzdHJh Y3RlZCBvdXQgdGhyb3VnaCBhCi0JICogcHJtMnh4eC5jIGZ1bmN0aW9uCi0JICovCi0JaWYgKGNw dV9pc19vbWFwMjQyMCgpKQotCQl3cml0ZWxfcmVsYXhlZCgweGZmZmYsIE9NQVAyNDIwX1BSQ01f Vk9MVFNFVFVQKTsKLQllbHNlCi0JCXdyaXRlbF9yZWxheGVkKDB4ZmZmZiwgT01BUDI0MzBfUFJD TV9WT0xUU0VUVVApOwotCW9tYXAyX3NyYW1fcmVwcm9ncmFtX3NkcmMobGV2ZWwsIGRsbF9jdHJs LCBtX3R5cGUpOwotCWN1cnJfcGVyZl9sZXZlbCA9IGxldmVsOwotCWxvY2FsX2lycV9yZXN0b3Jl KGZsYWdzKTsKLQotCXJldHVybiBwcmV2OwotfQotCi0vKiBVc2VkIGJ5IHRoZSBjbG9jayBmcmFt ZXdvcmsgZHVyaW5nIENPUkUgRFBMTCBjaGFuZ2VzICovCi12b2lkIG9tYXAyeHh4X3NkcmNfaW5p dF9wYXJhbXModTMyIGZvcmNlX2xvY2tfdG9fdW5sb2NrX21vZGUpCi17Ci0JdW5zaWduZWQgbG9u ZyBkbGxfY250OwotCXUzMiBmYXN0X2RsbCA9IDA7Ci0KLQkvKiBERFIgPSAxLCBTRFIgPSAwICov Ci0JbWVtX3RpbWluZ3MubV90eXBlID0gISgoc2RyY19yZWFkX3JlZyhTRFJDX01SXzApICYgMHgz KSA9PSAweDEpOwotCi0JLyogMjQyMiBlczIuMDUgYW5kIGJleW9uZCBoYXMgYSBzaW5nbGUgU0lQ IEREUiBpbnN0ZWFkIG9mIDIgbGlrZSBvdGhlcnMuCi0JICogSW4gdGhlIGNhc2Ugb2YgMjQyMiwg aXRzIG9rIHRvIHVzZSBDUzEgaW5zdGVhZCBvZiBDUzAuCi0JICovCi0JaWYgKGNwdV9pc19vbWFw MjQyMigpKQotCQltZW1fdGltaW5ncy5iYXNlX2NzID0gMTsKLQllbHNlCi0JCW1lbV90aW1pbmdz LmJhc2VfY3MgPSAwOwotCi0JaWYgKG1lbV90aW1pbmdzLm1fdHlwZSAhPSBNX0REUikKLQkJcmV0 dXJuOwotCi0JLyogV2l0aCBERFIgd2UgbmVlZCB0byBkZXRlcm1pbmUgdGhlIGxvdyBmcmVxdWVu Y3kgRExMIHZhbHVlICovCi0JaWYgKCgobWVtX3RpbWluZ3MuZmFzdF9kbGxfY3RybCAmICgxIDw8 IDIpKSA9PSBNX0xPQ0tfQ1RSTCkpCi0JCW1lbV90aW1pbmdzLmRsbF9tb2RlID0gTV9VTkxPQ0s7 Ci0JZWxzZQotCQltZW1fdGltaW5ncy5kbGxfbW9kZSA9IE1fTE9DSzsKLQotCWlmIChtZW1fdGlt aW5ncy5iYXNlX2NzID09IDApIHsKLQkJZmFzdF9kbGwgPSBzZHJjX3JlYWRfcmVnKFNEUkNfRExM QV9DVFJMKTsKLQkJZGxsX2NudCA9IHNkcmNfcmVhZF9yZWcoU0RSQ19ETExBX1NUQVRVUykgJiAw eGZmMDA7Ci0JfSBlbHNlIHsKLQkJZmFzdF9kbGwgPSBzZHJjX3JlYWRfcmVnKFNEUkNfRExMQl9D VFJMKTsKLQkJZGxsX2NudCA9IHNkcmNfcmVhZF9yZWcoU0RSQ19ETExCX1NUQVRVUykgJiAweGZm MDA7Ci0JfQotCWlmIChmb3JjZV9sb2NrX3RvX3VubG9ja19tb2RlKSB7Ci0JCWZhc3RfZGxsICY9 IH4weGZmMDA7Ci0JCWZhc3RfZGxsIHw9IGRsbF9jbnQ7CQkvKiBDdXJyZW50IGxvY2sgbW9kZSAq LwotCX0KLQkvKiBzZXQgZmFzdCB0aW1pbmdzIHdpdGggRExMIGZpbHRlciBkaXNhYmxlZCAqLwot CW1lbV90aW1pbmdzLmZhc3RfZGxsX2N0cmwgPSAoZmFzdF9kbGwgfCAoMyA8PCA4KSk7Ci0KLQkv KiBObyBkaXNydXB0aW9ucywgRERSIHdpbGwgYmUgb2ZmbGluZSAmIEMtQUJJIG5vdCBmb2xsb3dl ZCAqLwotCW9tYXAyX3NyYW1fZGRyX2luaXQoJm1lbV90aW1pbmdzLnNsb3dfZGxsX2N0cmwsCi0J CQkgICAgbWVtX3RpbWluZ3MuZmFzdF9kbGxfY3RybCwKLQkJCSAgICBtZW1fdGltaW5ncy5iYXNl X2NzLAotCQkJICAgIGZvcmNlX2xvY2tfdG9fdW5sb2NrX21vZGUpOwotCW1lbV90aW1pbmdzLnNs b3dfZGxsX2N0cmwgJj0gMHhmZjAwOwkvKiBLZWVwIGxvY2sgdmFsdWUgKi8KLQotCS8qIFR1cm4g c3RhdHVzIGludG8gdW5sb2NrIGN0cmwgKi8KLQltZW1fdGltaW5ncy5zbG93X2RsbF9jdHJsIHw9 Ci0JCSgobWVtX3RpbWluZ3MuZmFzdF9kbGxfY3RybCAmIDB4RikgfCAoMSA8PCAyKSk7Ci0KLQkv KiA5MCBkZWdyZWUgcGhhc2UgZm9yIGFueXRoaW5nIGJlbG93IDEzM01IeiArIGRpc2FibGUgRExM IGZpbHRlciAqLwotCW1lbV90aW1pbmdzLnNsb3dfZGxsX2N0cmwgfD0gKCgxIDw8IDEpIHwgKDMg PDwgOCkpOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9zbGVlcDI0eHguUyBi L2FyY2gvYXJtL21hY2gtb21hcDIvc2xlZXAyNHh4LlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDg0ZDhjNDNhZDM4Mi4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtb21h cDIvc2xlZXAyNHh4LlMKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi0vKiBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlciAqLwotLyoKLSAqIGxpbnV4L2FyY2gv YXJtL21hY2gtb21hcDIvc2xlZXAuUwotICoKLSAqIChDKSBDb3B5cmlnaHQgMjAwNAotICogVGV4 YXMgSW5zdHJ1bWVudHMsIDx3d3cudGkuY29tPgotICogUmljaGFyZCBXb29kcnVmZiA8ci13b29k cnVmZjJAdGkuY29tPgotICoKLSAqIChDKSBDb3B5cmlnaHQgMjAwNiBOb2tpYSBDb3Jwb3JhdGlv bgotICogRml4ZWQgaWRsZSBsb29wIHNsZWVwCi0gKiBJZ29yIFN0b3BwYSA8aWdvci5zdG9wcGFA bm9raWEuY29tPgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0jaW5jbHVkZSA8 YXNtL2Fzc2VtYmxlci5oPgotCi0jaW5jbHVkZSAib21hcDI0eHguaCIKLSNpbmNsdWRlICJzZHJj LmgiCi0KLS8qIEZpcnN0IGFkZHJlc3Mgb2YgcmVzZXJ2ZWQgYWRkcmVzcyBzcGFjZT8gIGFwcGFy ZW50bHkgdmFsaWQgZm9yIE9NQVAyICYgMyAqLwotI2RlZmluZSBBX1NEUkMwX1YJCSgweEMwMDAw MDAwKQotCi0JLnRleHQKLQotLyoKLSAqIG9tYXAyNHh4X2NwdV9zdXNwZW5kKCkgLSBGb3JjZXMg T01BUCBpbnRvIGRlZXAgc2xlZXAgc3RhdGUgYnkgY29tcGxldGluZwotICogU0RSQyBzaHV0ZG93 biB0aGVuIEFSTSBzaHV0ZG93bi4gIFVwb24gd2FrZSBNUFUgaXMgYmFjayBvbiBzbyBqdXN0IHJl c3RvcmUKLSAqIFNEUkMuCi0gKgotICogSW5wdXQ6Ci0gKiBSMCA6CURMTCBjdHJsIHZhbHVlIHBy ZS1TbGVlcAotICogUjEgOiBTRFJDX0RMTEFfQ1RSTAotICogUjIgOiBTRFJDX1BPV0VSCi0gKgot ICogVGhlIGlmIHRoZSBEUExMIGlzIGdvaW5nIHRvIEF1dG9JZGxlLiBJdCBzZWVtcyBsaWtlIHRo ZSBEUExMIG1heSBiZSBiYWNrIG9uCi0gKiB3aGVuIHdlIGdldCBjYWxsZWQsIGJ1dCB0aGUgRExM IHByb2JhYmx5IGlzbid0LiAgV2Ugd2lsbCB3YWl0IGEgYml0IG1vcmUgaW4KLSAqIGNhc2UgdGhl IERQTEwgaXNuJ3QgcXVpdGUgdGhlcmUgeWV0LiBUaGUgY29kZSB3aWxsIHdhaXQgb24gRExMIGZv ciBERFIgZXZlbgotICogaWYgaW4gdW5sb2NrZWQgbW9kZS4KLSAqCi0gKiBGb3IgbGVzcyB0aGFu IDI0MngtRVMyLjIgdXBvbiB3YWtlIGZyb20gYSBzbGVlcCBtb2RlIHdoZXJlIHRoZSBleHRlcm5h bAotICogb3NjaWxsYXRvciB3YXMgc3RvcHBlZCwgYSB0aW1pbmcgYnVnIGV4aXN0cyB3aGVyZSBh IG5vbi1zdGFiaWxpemVkIDEyTUh6Ci0gKiBjbG9jayBjYW4gcGFzcyBpbnRvIHRoZSBQUkNNIGNh biBjYXVzZSBwcm9ibGVtcyBhdCBEU1AgYW5kIElWQS4KLSAqIFRvIHdvcmsgYXJvdW5kIHRoaXMg dGhlIGNvZGUgd2lsbCBzd2l0Y2ggdG8gdGhlIDMya0h6IHNvdXJjZSBwcmlvciB0byBzbGVlcC4K LSAqIFBvc3Qgc2xlZXAgd2Ugd2lsbCBzaGlmdCBiYWNrIHRvIHVzaW5nIHRoZSBEUExMLiAgQXBw YXJlbnRseSwKLSAqIENNX0lETEVTVF9DTEtHRU4gZG9lcyBub3QgcmVmbGVjdCB0aGUgZnVsbCBj bG9jayBjaGFuZ2Ugc28geW91IG5lZWQgdG8gd2FpdAotICogM3gxMk1IeiArIDN4MzJrSHogY2xv Y2tzIGZvciBhIGZ1bGwgc3dpdGNoLgotICoKLSAqIFRoZSBETEwgbG9hZCB2YWx1ZSBpcyBub3Qg a2VwdCBpbiBSRVRFTlRJT04gb3IgT0ZGLglJdCBuZWVkcyB0byBiZSByZXN0b3JlZAotICogYXQg d2FrZQotICovCi0JLmFsaWduCTMKLUVOVFJZKG9tYXAyNHh4X2NwdV9zdXNwZW5kKQotCXN0bWZk CXNwISwge3IwIC0gcjEyLCBscn0JQCBzYXZlIHJlZ2lzdGVycyBvbiBzdGFjawotCW1vdglyMywg IzB4MAkJQCBjbGVhciBmb3IgbWNyIGNhbGwKLQltY3IJcDE1LCAwLCByMywgYzcsIGMxMCwgNAlA IG1lbW9yeSBiYXJyaWVyLCBob3BlIFNEUi9ERFIgZmluaXNoZWQKLQlub3AKLQlub3AKLQlsZHIJ cjQsIFtyMl0JCUAgcmVhZCBTRFJDX1BPV0VSCi0Jb3JyCXI0LCByNCwgIzB4NDAJCUAgZW5hYmxl IHNlbGYgcmVmcmVzaCBvbiBpZGxlIHJlcQotCW1vdglyNSwgIzB4MjAwMAkJQCBzZXQgZGVsYXkg KERQTEwgcmVsb2NrICsgRExMIHJlbG9jaykKLQlzdHIJcjQsIFtyMl0JCUAgbWFrZSBpdCBzbwot CW5vcAotCW1jcglwMTUsIDAsIHIzLCBjNywgYzAsIDQJQCB3YWl0IGZvciBpbnRlcnJ1cHQKLQlu b3AKLWxvb3A6Ci0Jc3VicwlyNSwgcjUsICMweDEJCUAgYXdha2UsIHdhaXQganVzdCBhIGJpdAot CWJuZQlsb29wCi0KLQkvKiBUaGUgRFBMTCBoYXMgdG8gYmUgb24gYmVmb3JlIHdlIHRha2UgdGhl IEREUiBvdXQgb2Ygc2VsZiByZWZyZXNoICovCi0JYmljCXI0LCByNCwgIzB4NDAJCUAgbm93IGNs ZWFyIHNlbGYgcmVmcmVzaCBiaXQuCi0Jc3RyCXI0LCBbcjJdCQlAIHdyaXRlIHRvIFNEUkNfUE9X RVIKLQlsZHIJcjQsIEFfU0RSQzAJCUAgbWFrZSBhIGNsb2NrIGhhcHBlbgotCWxkcglyNCwgW3I0 XQkJQCByZWFkIEFfU0RSQzAKLQlub3AJCQkJQCBzdGFydCBhdXRvIHJlZnJlc2ggb25seSBhZnRl ciBjbGsgb2sKLQltb3ZzCXIwLCByMAkJCUAgc2VlIGlmIEREUiBvciBTRFIKLQlzdHJuZQlyMCwg W3IxXQkJQCByZXdyaXRlIERMTEEgdG8gZm9yY2UgRExMIHJlbG9hZAotCWFkZG5lCXIxLCByMSwg IzB4OAkJQCBtb3ZlIHRvIERMTEIKLQlzdHJuZQlyMCwgW3IxXQkJQCByZXdyaXRlIERMTEIgdG8g Zm9yY2UgRExMIHJlbG9hZAotCi0JbW92CXI1LCAjMHgxMDAwCi1sb29wMjoKLQlzdWJzCXI1LCBy NSwgIzB4MQotCWJuZQlsb29wMgotCS8qIHJlc3VtZSovCi0JbGRtZmQJc3AhLCB7cjAgLSByMTIs IHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCi0KLUFfU0RSQzA6Ci0JLndvcmQgQV9TRFJD MF9WCi0KLUVOVFJZKG9tYXAyNHh4X2NwdV9zdXNwZW5kX3N6KQotCS53b3JkCS4gLSBvbWFwMjR4 eF9jcHVfc3VzcGVuZApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9zb2MuaCBiL2Fy Y2gvYXJtL21hY2gtb21hcDIvc29jLmgKaW5kZXggOWUzZGJiNzQzZTVjLi45YzlmNTZjYTkxNDIg MTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvc29jLmgKKysrIGIvYXJjaC9hcm0vbWFj aC1vbWFwMi9zb2MuaApAQCAtMTIsNyArMTIsNiBAQAogICogQWRkZWQgRFJBN3h4eCBzcGVjaWZp YyBkZWZpbmVzIC0gU3JpY2hhcmFuIFI8ci5zcmljaGFyYW5AdGkuY29tPgogICovCiAKLSNpbmNs dWRlICJvbWFwMjR4eC5oIgogI2luY2x1ZGUgIm9tYXAzNHh4LmgiCiAjaW5jbHVkZSAib21hcDQ0 eHguaCIKICNpbmNsdWRlICJ0aTgxeHguaCIKQEAgLTYyLDkgKzYxLDYgQEAgc3RhdGljIGlubGlu ZSBpbnQgc29jX2lzX29tYXAodm9pZCkKIC8qCiAgKiBNYWNyb3MgdG8gZ3JvdXAgT01BUCBpbnRv IGNwdSBjbGFzc2VzLgogICogVGhlc2UgY2FuIGJlIHVzZWQgaW4gbW9zdCBwbGFjZXMuCi0gKiBz b2NfaXNfb21hcDI0eHgoKToJVHJ1ZSBmb3IgT01BUDI0MjAsIE9NQVAyNDIyLCBPTUFQMjQyMywg T01BUDI0MzAKLSAqIHNvY19pc19vbWFwMjQyeCgpOglUcnVlIGZvciBPTUFQMjQyMCwgT01BUDI0 MjIsIE9NQVAyNDIzCi0gKiBzb2NfaXNfb21hcDI0M3goKToJVHJ1ZSBmb3IgT01BUDI0MzAKICAq IHNvY19pc19vbWFwMzQzeCgpOglUcnVlIGZvciBPTUFQMzQzMAogICogc29jX2lzX29tYXA0NDN4 KCk6CVRydWUgZm9yIE9NQVA0NDMwCiAgKiBzb2NfaXNfb21hcDQ0NngoKToJVHJ1ZSBmb3IgT01B UDQ0NjAKQEAgLTEzNyw3ICsxMzMsNiBAQCBzdGF0aWMgaW5saW5lIGludCBpc19kcmEgIyNzdWJj bGFzcyAjI18gIyNwYWNrYWdlICh2b2lkKQkJXAogCXJldHVybiAoaXNfZHJhICMjc3ViY2xhc3Mg KCkgJiYgR0VUX0RSQV9QQUNLQUdFID09IGlkKSA/IDEgOiAwOwlcCiB9CiAKLUlTX09NQVBfQ0xB U1MoMjR4eCwgMHgyNCkKIElTX09NQVBfQ0xBU1MoMzR4eCwgMHgzNCkKIElTX09NQVBfQ0xBU1Mo NDR4eCwgMHg0NCkKIElTX0FNX0NMQVNTKDM1eHgsIDB4MzUpCkBAIC0xNDgsOCArMTQzLDYgQEAg SVNfQU1fQ0xBU1MoNDN4eCwgMHg0MykKIElTX1RJX0NMQVNTKDgxeHgsIDB4ODEpCiBJU19EUkFf Q0xBU1MoN3h4LCAweDcpCiAKLUlTX09NQVBfU1VCQ0xBU1MoMjQyeCwgMHgyNDIpCi1JU19PTUFQ X1NVQkNMQVNTKDI0M3gsIDB4MjQzKQogSVNfT01BUF9TVUJDTEFTUygzNDN4LCAweDM0MykKIElT X09NQVBfU1VCQ0xBU1MoMzYzeCwgMHgzNjMpCiBJU19PTUFQX1NVQkNMQVNTKDQ0M3gsIDB4NDQz KQpAQCAtMTg2LDIxICsxNzksNiBAQCBJU19EUkFfU1VCQ0xBU1MoNzJ4LCAweDcyKQogI2RlZmlu ZSBzb2NfaXNfZHJhNzR4KCkJCQkwCiAjZGVmaW5lIHNvY19pc19kcmE3MngoKQkJCTAKIAotI2lm IGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDIpCi0jIGRlZmluZSBzb2NfaXNfb21hcDI0eHgoKQkJ aXNfb21hcDI0eHgoKQotI2Vsc2UKLSMgZGVmaW5lIHNvY19pc19vbWFwMjR4eCgpCQkwCi0jZW5k aWYKLSNpZiBkZWZpbmVkKENPTkZJR19TT0NfT01BUDI0MjApCi0jIGRlZmluZSBzb2NfaXNfb21h cDI0MngoKQkJaXNfb21hcDI0MngoKQotI2Vsc2UKLSMgZGVmaW5lIHNvY19pc19vbWFwMjQyeCgp CQkwCi0jZW5kaWYKLSNpZiBkZWZpbmVkKENPTkZJR19TT0NfT01BUDI0MzApCi0jIGRlZmluZSBz b2NfaXNfb21hcDI0M3goKQkJaXNfb21hcDI0M3goKQotI2Vsc2UKLSMgZGVmaW5lIHNvY19pc19v bWFwMjQzeCgpCQkwCi0jZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzKQogIyBk ZWZpbmUgc29jX2lzX29tYXAzNHh4KCkJCWlzX29tYXAzNHh4KCkKICMgZGVmaW5lIHNvY19pc19v bWFwMzQzeCgpCQlpc19vbWFwMzQzeCgpCkBAIC0yMTIsMTAgKzE5MCw2IEBAIElTX0RSQV9TVUJD TEFTUyg3MngsIDB4NzIpCiAvKgogICogTWFjcm9zIHRvIGRldGVjdCBpbmRpdmlkdWFsIGNwdSB0 eXBlcy4KICAqIFRoZXNlIGFyZSBvbmx5IHJhcmVseSBuZWVkZWQuCi0gKiBzb2NfaXNfb21hcDI0 MjAoKToJVHJ1ZSBmb3IgT01BUDI0MjAKLSAqIHNvY19pc19vbWFwMjQyMigpOglUcnVlIGZvciBP TUFQMjQyMgotICogc29jX2lzX29tYXAyNDIzKCk6CVRydWUgZm9yIE9NQVAyNDIzCi0gKiBzb2Nf aXNfb21hcDI0MzAoKToJVHJ1ZSBmb3IgT01BUDI0MzAKICAqIHNvY19pc19vbWFwMzQzMCgpOglU cnVlIGZvciBPTUFQMzQzMAogICovCiAjZGVmaW5lIEdFVF9PTUFQX1RZUEUJKChvbWFwX3Jldigp ID4+IDE2KSAmIDB4ZmZmZikKQEAgLTIyNiwxNiArMjAwLDggQEAgc3RhdGljIGlubGluZSBpbnQg aXNfb21hcCAjI3R5cGUgKHZvaWQpCQkJXAogCXJldHVybiAoR0VUX09NQVBfVFlQRSA9PSAoaWQp KSA/IDEgOiAwOwkJXAogfQogCi1JU19PTUFQX1RZUEUoMjQyMCwgMHgyNDIwKQotSVNfT01BUF9U WVBFKDI0MjIsIDB4MjQyMikKLUlTX09NQVBfVFlQRSgyNDIzLCAweDI0MjMpCi1JU19PTUFQX1RZ UEUoMjQzMCwgMHgyNDMwKQogSVNfT01BUF9UWVBFKDM0MzAsIDB4MzQzMCkKIAotI2RlZmluZSBz b2NfaXNfb21hcDI0MjAoKQkJMAotI2RlZmluZSBzb2NfaXNfb21hcDI0MjIoKQkJMAotI2RlZmlu ZSBzb2NfaXNfb21hcDI0MjMoKQkJMAotI2RlZmluZSBzb2NfaXNfb21hcDI0MzAoKQkJMAogI2Rl ZmluZSBzb2NfaXNfb21hcDM0MzAoKQkJMAogI2RlZmluZSBzb2NfaXNfb21hcDM2MzAoKQkJMAog I2RlZmluZSBzb2NfaXNfb21hcDU0MzAoKQkJMApAQCAtMjUyLDE3ICsyMTgsNiBAQCBJU19PTUFQ X1RZUEUoMzQzMCwgMHgzNDMwKQogI2RlZmluZSBjcHVfY2xhc3NfaXNfb21hcDEoKQkJMAogI2Rl ZmluZSBjcHVfY2xhc3NfaXNfb21hcDIoKQkJMQogCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9P TUFQMikKLSMgdW5kZWYgIHNvY19pc19vbWFwMjQyMAotIyB1bmRlZiAgc29jX2lzX29tYXAyNDIy Ci0jIHVuZGVmICBzb2NfaXNfb21hcDI0MjMKLSMgdW5kZWYgIHNvY19pc19vbWFwMjQzMAotIyBk ZWZpbmUgc29jX2lzX29tYXAyNDIwKCkJCWlzX29tYXAyNDIwKCkKLSMgZGVmaW5lIHNvY19pc19v bWFwMjQyMigpCQlpc19vbWFwMjQyMigpCi0jIGRlZmluZSBzb2NfaXNfb21hcDI0MjMoKQkJaXNf b21hcDI0MjMoKQotIyBkZWZpbmUgc29jX2lzX29tYXAyNDMwKCkJCWlzX29tYXAyNDMwKCkKLSNl bmRpZgotCiAjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMykKICMgdW5kZWYgc29jX2lzX29t YXAzNDMwCiAjIHVuZGVmIHNvY19pc190aTgxeHgKQEAgLTMyNiwxMyArMjgxLDYgQEAgSVNfT01B UF9UWVBFKDM0MzAsIDB4MzQzMCkKICNlbmRpZgogCiAvKiBWYXJpb3VzIHNpbGljb24gcmV2aXNp b25zIGZvciBvbWFwMiAqLwotI2RlZmluZSBPTUFQMjQyWF9DTEFTUwkJMHgyNDIwMDAyNAotI2Rl ZmluZSBPTUFQMjQyMF9SRVZfRVMxXzAJT01BUDI0MlhfQ0xBU1MKLSNkZWZpbmUgT01BUDI0MjBf UkVWX0VTMl8wCShPTUFQMjQyWF9DTEFTUyB8ICgweDEgPDwgOCkpCi0KLSNkZWZpbmUgT01BUDI0 M1hfQ0xBU1MJCTB4MjQzMDAwMjQKLSNkZWZpbmUgT01BUDI0MzBfUkVWX0VTMV8wCU9NQVAyNDNY X0NMQVNTCi0KICNkZWZpbmUgT01BUDM0M1hfQ0xBU1MJCTB4MzQzMDAwMzQKICNkZWZpbmUgT01B UDM0MzBfUkVWX0VTMV8wCU9NQVAzNDNYX0NMQVNTCiAjZGVmaW5lIE9NQVAzNDMwX1JFVl9FUzJf MAkoT01BUDM0M1hfQ0xBU1MgfCAoMHgxIDw8IDgpKQpAQCAtNDAwLDcgKzM0OCw2IEBAIElTX09N QVBfVFlQRSgzNDMwLCAweDM0MzApCiAjZGVmaW5lIERSQTcyMl9SRVZfRVMyXzAJKERSQTdYWF9D TEFTUyB8ICgweDIyIDw8IDE2KSB8ICgweDIwIDw8IDgpKQogI2RlZmluZSBEUkE3MjJfUkVWX0VT Ml8xCShEUkE3WFhfQ0xBU1MgfCAoMHgyMiA8PCAxNikgfCAoMHgyMSA8PCA4KSkKIAotdm9pZCBv bWFwMnh4eF9jaGVja19yZXZpc2lvbih2b2lkKTsKIHZvaWQgb21hcDN4eHhfY2hlY2tfcmV2aXNp b24odm9pZCk7CiB2b2lkIG9tYXA0eHh4X2NoZWNrX3JldmlzaW9uKHZvaWQpOwogdm9pZCBvbWFw NXh4eF9jaGVja19yZXZpc2lvbih2b2lkKTsKQEAgLTQ4NCwxMiArNDMxLDYgQEAgbGV2ZWwoX18j I2ZuKTsKICNkZWZpbmUgb21hcF9sYXRlX2luaXRjYWxsX3N5bmMoZm4pCW9tYXBfaW5pdGNhbGwo bGF0ZV9pbml0Y2FsbF9zeW5jLCBmbikKIAogLyogTGVnYWN5IGRlZmluZXMsIHRoZXNlIGNhbiBi ZSByZW1vdmVkIHdoZW4gdXNlcnMgYXJlIHJlbW92ZWQgKi8KLSNkZWZpbmUgY3B1X2lzX29tYXAy NDIwKCkJc29jX2lzX29tYXAyNDIwKCkKLSNkZWZpbmUgY3B1X2lzX29tYXAyNDIyKCkJc29jX2lz X29tYXAyNDIyKCkKLSNkZWZpbmUgY3B1X2lzX29tYXAyNDJ4KCkJc29jX2lzX29tYXAyNDJ4KCkK LSNkZWZpbmUgY3B1X2lzX29tYXAyNDMwKCkJc29jX2lzX29tYXAyNDMwKCkKLSNkZWZpbmUgY3B1 X2lzX29tYXAyNDN4KCkJc29jX2lzX29tYXAyNDN4KCkKLSNkZWZpbmUgY3B1X2lzX29tYXAyNHh4 KCkJc29jX2lzX29tYXAyNHh4KCkKICNkZWZpbmUgY3B1X2lzX29tYXAzNDMwKCkJc29jX2lzX29t YXAzNDMwKCkKICNkZWZpbmUgY3B1X2lzX29tYXAzNDN4KCkJc29jX2lzX29tYXAzNDN4KCkKICNk ZWZpbmUgY3B1X2lzX29tYXAzNHh4KCkJc29jX2lzX29tYXAzNHh4KCkKZGlmZiAtLWdpdCBhL2Fy Y2gvYXJtL21hY2gtb21hcDIvc3JhbS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtLmMKaW5k ZXggODk4YjAxMWFlOGQ5Li44Zjk4MDg0OWYyMDEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gt b21hcDIvc3JhbS5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbS5jCkBAIC0yOCwxNSAr MjgsMTAgQEAKICNpbmNsdWRlICJzZHJjLmgiCiAjaW5jbHVkZSAic3JhbS5oIgogCi0jZGVmaW5l IE9NQVAyX1NSQU1fUFVCX1BBCShPTUFQMl9TUkFNX1BBICsgMHhmODAwKQogI2RlZmluZSBPTUFQ M19TUkFNX1BVQl9QQSAgICAgICAoT01BUDNfU1JBTV9QQSArIDB4ODAwMCkKIAogI2RlZmluZSBT UkFNX0JPT1RMT0FERVJfU1oJMHgwMAogCi0jZGVmaW5lIE9NQVAyNFhYX1ZBX1JFUUlORk9QRVJN MAlPTUFQMl9MM19JT19BRERSRVNTKDB4NjgwMDUwNDgpCi0jZGVmaW5lIE9NQVAyNFhYX1ZBX1JF QURQRVJNMAkJT01BUDJfTDNfSU9fQUREUkVTUygweDY4MDA1MDUwKQotI2RlZmluZSBPTUFQMjRY WF9WQV9XUklURVBFUk0wCQlPTUFQMl9MM19JT19BRERSRVNTKDB4NjgwMDUwNTgpCi0KICNkZWZp bmUgT01BUDM0WFhfVkFfUkVRSU5GT1BFUk0wCU9NQVAyX0wzX0lPX0FERFJFU1MoMHg2ODAxMjg0 OCkKICNkZWZpbmUgT01BUDM0WFhfVkFfUkVBRFBFUk0wCQlPTUFQMl9MM19JT19BRERSRVNTKDB4 NjgwMTI4NTApCiAjZGVmaW5lIE9NQVAzNFhYX1ZBX1dSSVRFUEVSTTAJCU9NQVAyX0wzX0lPX0FE RFJFU1MoMHg2ODAxMjg1OCkKQEAgLTEyMCwxOCArMTE1LDExIEBAIHN0YXRpYyBpbnQgaXNfc3Jh bV9sb2NrZWQodm9pZCkKIHsKIAlpZiAob21hcF90eXBlKCkgPT0gT01BUDJfREVWSUNFX1RZUEVf R1ApIHsKIAkJLyogUkFNRlc6IFIvVyBhY2Nlc3MgdG8gYWxsIGluaXRpYXRvcnMgZm9yIGFsbCBx dWFsaWZpZXIgc2V0cyAqLwotCQlpZiAoY3B1X2lzX29tYXAyNDJ4KCkpIHsKLQkJCXdyaXRlbF9y ZWxheGVkKDB4RkYsIE9NQVAyNFhYX1ZBX1JFUUlORk9QRVJNMCk7IC8qIGFsbCBxLXZlY3RzICov Ci0JCQl3cml0ZWxfcmVsYXhlZCgweENGREUsIE9NQVAyNFhYX1ZBX1JFQURQRVJNMCk7ICAvKiBh bGwgaS1yZWFkICovCi0JCQl3cml0ZWxfcmVsYXhlZCgweENGREUsIE9NQVAyNFhYX1ZBX1dSSVRF UEVSTTApOyAvKiBhbGwgaS13cml0ZSAqLwotCQl9Ci0JCWlmIChjcHVfaXNfb21hcDM0eHgoKSkg ewotCQkJd3JpdGVsX3JlbGF4ZWQoMHhGRkZGLCBPTUFQMzRYWF9WQV9SRVFJTkZPUEVSTTApOyAv KiBhbGwgcS12ZWN0cyAqLwotCQkJd3JpdGVsX3JlbGF4ZWQoMHhGRkZGLCBPTUFQMzRYWF9WQV9S RUFEUEVSTTApOyAgLyogYWxsIGktcmVhZCAqLwotCQkJd3JpdGVsX3JlbGF4ZWQoMHhGRkZGLCBP TUFQMzRYWF9WQV9XUklURVBFUk0wKTsgLyogYWxsIGktd3JpdGUgKi8KLQkJCXdyaXRlbF9yZWxh eGVkKDB4MCwgT01BUDM0WFhfVkFfQUREUl9NQVRDSDIpOwotCQkJd3JpdGVsX3JlbGF4ZWQoMHhG RkZGRkZGRiwgT01BUDM0WFhfVkFfU01TX1JHX0FUVDApOwotCQl9CisJCXdyaXRlbF9yZWxheGVk KDB4RkZGRiwgT01BUDM0WFhfVkFfUkVRSU5GT1BFUk0wKTsgLyogYWxsIHEtdmVjdHMgKi8KKwkJ d3JpdGVsX3JlbGF4ZWQoMHhGRkZGLCBPTUFQMzRYWF9WQV9SRUFEUEVSTTApOyAgLyogYWxsIGkt cmVhZCAqLworCQl3cml0ZWxfcmVsYXhlZCgweEZGRkYsIE9NQVAzNFhYX1ZBX1dSSVRFUEVSTTAp OyAvKiBhbGwgaS13cml0ZSAqLworCQl3cml0ZWxfcmVsYXhlZCgweDAsIE9NQVAzNFhYX1ZBX0FE RFJfTUFUQ0gyKTsKKwkJd3JpdGVsX3JlbGF4ZWQoMHhGRkZGRkZGRiwgT01BUDM0WFhfVkFfU01T X1JHX0FUVDApOwogCQlyZXR1cm4gMDsKIAl9IGVsc2UKIAkJcmV0dXJuIDE7IC8qIGFzc3VtZSBs b2NrZWQgd2l0aCBubyBQUEEgb3Igc2VjdXJpdHkgZHJpdmVyICovCkBAIC0xNDcsMzAgKzEzNSwx NyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb21hcF9kZXRlY3Rfc3JhbSh2b2lkKQogewogCW9tYXBf c3JhbV9za2lwID0gU1JBTV9CT09UTE9BREVSX1NaOwogCWlmIChpc19zcmFtX2xvY2tlZCgpKSB7 Ci0JCWlmIChjcHVfaXNfb21hcDM0eHgoKSkgewotCQkJb21hcF9zcmFtX3N0YXJ0ID0gT01BUDNf U1JBTV9QVUJfUEE7Ci0JCQlpZiAoKG9tYXBfdHlwZSgpID09IE9NQVAyX0RFVklDRV9UWVBFX0VN VSkgfHwKLQkJCSAgICAob21hcF90eXBlKCkgPT0gT01BUDJfREVWSUNFX1RZUEVfU0VDKSkgewot CQkJCW9tYXBfc3JhbV9zaXplID0gMHg3MDAwOyAvKiAyOEsgKi8KLQkJCQlvbWFwX3NyYW1fc2tp cCArPSBTWl8xNks7Ci0JCQl9IGVsc2UgewotCQkJCW9tYXBfc3JhbV9zaXplID0gMHg4MDAwOyAv KiAzMksgKi8KLQkJCX0KKwkJb21hcF9zcmFtX3N0YXJ0ID0gT01BUDNfU1JBTV9QVUJfUEE7CisJ CWlmICgob21hcF90eXBlKCkgPT0gT01BUDJfREVWSUNFX1RZUEVfRU1VKSB8fAorCQkgICAgKG9t YXBfdHlwZSgpID09IE9NQVAyX0RFVklDRV9UWVBFX1NFQykpIHsKKwkJCW9tYXBfc3JhbV9zaXpl ID0gMHg3MDAwOyAvKiAyOEsgKi8KKwkJCW9tYXBfc3JhbV9za2lwICs9IFNaXzE2SzsKIAkJfSBl bHNlIHsKLQkJCW9tYXBfc3JhbV9zdGFydCA9IE9NQVAyX1NSQU1fUFVCX1BBOwotCQkJb21hcF9z cmFtX3NpemUgPSAweDgwMDsgLyogMksgKi8KKwkJCW9tYXBfc3JhbV9zaXplID0gMHg4MDAwOyAv KiAzMksgKi8KIAkJfQogCX0gZWxzZSB7Ci0JCWlmIChjcHVfaXNfb21hcDM0eHgoKSkgewotCQkJ b21hcF9zcmFtX3N0YXJ0ID0gT01BUDNfU1JBTV9QQTsKLQkJCW9tYXBfc3JhbV9zaXplID0gMHgx MDAwMDsgLyogNjRLICovCi0JCX0gZWxzZSB7Ci0JCQlvbWFwX3NyYW1fc3RhcnQgPSBPTUFQMl9T UkFNX1BBOwotCQkJaWYgKGNwdV9pc19vbWFwMjQyeCgpKQotCQkJCW9tYXBfc3JhbV9zaXplID0g MHhhMDAwMDsgLyogNjQwSyAqLwotCQkJZWxzZSBpZiAoY3B1X2lzX29tYXAyNDN4KCkpCi0JCQkJ b21hcF9zcmFtX3NpemUgPSAweDEwMDAwOyAvKiA2NEsgKi8KLQkJfQorCQlvbWFwX3NyYW1fc3Rh cnQgPSBPTUFQM19TUkFNX1BBOworCQlvbWFwX3NyYW1fc2l6ZSA9IDB4MTAwMDA7IC8qIDY0SyAq LwogCX0KIH0KIApAQCAtMTgxLDI0ICsxNTYsMjAgQEAgc3RhdGljIHZvaWQgX19pbml0IG9tYXAy X21hcF9zcmFtKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBiYXNlOwogCWludCBwYWdlczsKLQlp bnQgY2FjaGVkID0gMTsKLQotCWlmIChjcHVfaXNfb21hcDM0eHgoKSkgewotCQkvKgotCQkgKiBT UkFNIG11c3QgYmUgbWFya2VkIGFzIG5vbi1jYWNoZWQgb24gT01BUDMgc2luY2UgdGhlCi0JCSAq IENPUkUgRFBMTCBNMiBkaXZpZGVyIGNoYW5nZSBjb2RlIChpbiBTUkFNKSBydW5zIHdpdGggdGhl Ci0JCSAqIFNEUkFNIGNvbnRyb2xsZXIgZGlzYWJsZWQsIGFuZCBpZiBpdCBpcyBtYXJrZWQgY2Fj aGVkLAotCQkgKiB0aGUgQVJNIG1heSBhdHRlbXB0IHRvIHdyaXRlIGNhY2hlIGxpbmVzIGJhY2sg dG8gU0RSQU0KLQkJICogd2hpY2ggd2lsbCBjYXVzZSB0aGUgc3lzdGVtIHRvIGhhbmcuCi0JCSAq LwotCQljYWNoZWQgPSAwOwotCX0KIAogCWlmIChvbWFwX3NyYW1fc2l6ZSA9PSAwKQogCQlyZXR1 cm47CiAKIAlvbWFwX3NyYW1fc3RhcnQgPSBST1VORF9ET1dOKG9tYXBfc3JhbV9zdGFydCwgUEFH RV9TSVpFKTsKLQlvbWFwX3NyYW1fYmFzZSA9IF9fYXJtX2lvcmVtYXBfZXhlYyhvbWFwX3NyYW1f c3RhcnQsIG9tYXBfc3JhbV9zaXplLCBjYWNoZWQpOworCS8qCisJICogU1JBTSBtdXN0IGJlIG1h cmtlZCBhcyBub24tY2FjaGVkIG9uIE9NQVAzIHNpbmNlIHRoZQorCSAqIENPUkUgRFBMTCBNMiBk aXZpZGVyIGNoYW5nZSBjb2RlIChpbiBTUkFNKSBydW5zIHdpdGggdGhlCisJICogU0RSQU0gY29u dHJvbGxlciBkaXNhYmxlZCwgYW5kIGlmIGl0IGlzIG1hcmtlZCBjYWNoZWQsCisJICogdGhlIEFS TSBtYXkgYXR0ZW1wdCB0byB3cml0ZSBjYWNoZSBsaW5lcyBiYWNrIHRvIFNEUkFNCisJICogd2hp Y2ggd2lsbCBjYXVzZSB0aGUgc3lzdGVtIHRvIGhhbmcuCisJICovCisKKwlvbWFwX3NyYW1fYmFz ZSA9IF9fYXJtX2lvcmVtYXBfZXhlYyhvbWFwX3NyYW1fc3RhcnQsIG9tYXBfc3JhbV9zaXplLCAw KTsKIAlpZiAoIW9tYXBfc3JhbV9iYXNlKSB7CiAJCXByX2VycigiU1JBTTogQ291bGQgbm90IG1h cFxuIik7CiAJCXJldHVybjsKQEAgLTIxOSw3OCArMTkwLDYgQEAgc3RhdGljIHZvaWQgX19pbml0 IG9tYXAyX21hcF9zcmFtKHZvaWQpCiAJc2V0X21lbW9yeV9yb3goYmFzZSwgcGFnZXMpOwogfQog Ci1zdGF0aWMgdm9pZCAoKl9vbWFwMl9zcmFtX2Rkcl9pbml0KSh1MzIgKnNsb3dfZGxsX2N0cmws IHUzMiBmYXN0X2RsbF9jdHJsLAotCQkJICAgICAgdTMyIGJhc2VfY3MsIHUzMiBmb3JjZV91bmxv Y2spOwotCi12b2lkIG9tYXAyX3NyYW1fZGRyX2luaXQodTMyICpzbG93X2RsbF9jdHJsLCB1MzIg ZmFzdF9kbGxfY3RybCwKLQkJICAgdTMyIGJhc2VfY3MsIHUzMiBmb3JjZV91bmxvY2spCi17Ci0J QlVHX09OKCFfb21hcDJfc3JhbV9kZHJfaW5pdCk7Ci0JX29tYXAyX3NyYW1fZGRyX2luaXQoc2xv d19kbGxfY3RybCwgZmFzdF9kbGxfY3RybCwKLQkJCSAgICAgYmFzZV9jcywgZm9yY2VfdW5sb2Nr KTsKLX0KLQotc3RhdGljIHZvaWQgKCpfb21hcDJfc3JhbV9yZXByb2dyYW1fc2RyYykodTMyIHBl cmZfbGV2ZWwsIHUzMiBkbGxfdmFsLAotCQkJCQkgIHUzMiBtZW1fdHlwZSk7Ci0KLXZvaWQgb21h cDJfc3JhbV9yZXByb2dyYW1fc2RyYyh1MzIgcGVyZl9sZXZlbCwgdTMyIGRsbF92YWwsIHUzMiBt ZW1fdHlwZSkKLXsKLQlCVUdfT04oIV9vbWFwMl9zcmFtX3JlcHJvZ3JhbV9zZHJjKTsKLQlfb21h cDJfc3JhbV9yZXByb2dyYW1fc2RyYyhwZXJmX2xldmVsLCBkbGxfdmFsLCBtZW1fdHlwZSk7Ci19 Ci0KLXN0YXRpYyB1MzIgKCpfb21hcDJfc2V0X3ByY20pKHUzMiBkcGxsX2N0cmxfdmFsLCB1MzIg c2RyY19yZnJfdmFsLCBpbnQgYnlwYXNzKTsKLQotdTMyIG9tYXAyX3NldF9wcmNtKHUzMiBkcGxs X2N0cmxfdmFsLCB1MzIgc2RyY19yZnJfdmFsLCBpbnQgYnlwYXNzKQotewotCUJVR19PTighX29t YXAyX3NldF9wcmNtKTsKLQlyZXR1cm4gX29tYXAyX3NldF9wcmNtKGRwbGxfY3RybF92YWwsIHNk cmNfcmZyX3ZhbCwgYnlwYXNzKTsKLX0KLQotI2lmZGVmIENPTkZJR19TT0NfT01BUDI0MjAKLXN0 YXRpYyBpbnQgX19pbml0IG9tYXAyNDJ4X3NyYW1faW5pdCh2b2lkKQotewotCV9vbWFwMl9zcmFt X2Rkcl9pbml0ID0gb21hcF9zcmFtX3B1c2gob21hcDI0Mnhfc3JhbV9kZHJfaW5pdCwKLQkJCQkJ b21hcDI0Mnhfc3JhbV9kZHJfaW5pdF9zeik7Ci0KLQlfb21hcDJfc3JhbV9yZXByb2dyYW1fc2Ry YyA9IG9tYXBfc3JhbV9wdXNoKG9tYXAyNDJ4X3NyYW1fcmVwcm9ncmFtX3NkcmMsCi0JCQkJCSAg ICBvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJjX3N6KTsKLQotCV9vbWFwMl9zZXRfcHJjbSA9 IG9tYXBfc3JhbV9wdXNoKG9tYXAyNDJ4X3NyYW1fc2V0X3ByY20sCi0JCQkJCSBvbWFwMjQyeF9z cmFtX3NldF9wcmNtX3N6KTsKLQotCXJldHVybiAwOwotfQotI2Vsc2UKLXN0YXRpYyBpbmxpbmUg aW50IG9tYXAyNDJ4X3NyYW1faW5pdCh2b2lkKQotewotCXJldHVybiAwOwotfQotI2VuZGlmCi0K LSNpZmRlZiBDT05GSUdfU09DX09NQVAyNDMwCi1zdGF0aWMgaW50IF9faW5pdCBvbWFwMjQzeF9z cmFtX2luaXQodm9pZCkKLXsKLQlfb21hcDJfc3JhbV9kZHJfaW5pdCA9IG9tYXBfc3JhbV9wdXNo KG9tYXAyNDN4X3NyYW1fZGRyX2luaXQsCi0JCQkJCW9tYXAyNDN4X3NyYW1fZGRyX2luaXRfc3op OwotCi0JX29tYXAyX3NyYW1fcmVwcm9ncmFtX3NkcmMgPSBvbWFwX3NyYW1fcHVzaChvbWFwMjQz eF9zcmFtX3JlcHJvZ3JhbV9zZHJjLAotCQkJCQkgICAgb21hcDI0M3hfc3JhbV9yZXByb2dyYW1f c2RyY19zeik7Ci0KLQlfb21hcDJfc2V0X3ByY20gPSBvbWFwX3NyYW1fcHVzaChvbWFwMjQzeF9z cmFtX3NldF9wcmNtLAotCQkJCQkgb21hcDI0M3hfc3JhbV9zZXRfcHJjbV9zeik7Ci0KLQlyZXR1 cm4gMDsKLX0KLSNlbHNlCi1zdGF0aWMgaW5saW5lIGludCBvbWFwMjQzeF9zcmFtX2luaXQodm9p ZCkKLXsKLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDMK LQogdm9pZCBvbWFwM19zcmFtX3Jlc3RvcmVfY29udGV4dCh2b2lkKQogewogCW9tYXBfc3JhbV9y ZXNldCgpOwpAQCAtMzAzLDI0ICsyMDIsMTIgQEAgc3RhdGljIGlubGluZSBpbnQgb21hcDM0eHhf c3JhbV9pbml0KHZvaWQpCiAJb21hcDNfc3JhbV9yZXN0b3JlX2NvbnRleHQoKTsKIAlyZXR1cm4g MDsKIH0KLSNlbHNlCi1zdGF0aWMgaW5saW5lIGludCBvbWFwMzR4eF9zcmFtX2luaXQodm9pZCkK LXsKLQlyZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBDT05GSUdfQVJDSF9PTUFQMyAqLwogCiBpbnQg X19pbml0IG9tYXBfc3JhbV9pbml0KHZvaWQpCiB7CiAJb21hcF9kZXRlY3Rfc3JhbSgpOwogCW9t YXAyX21hcF9zcmFtKCk7Ci0KLQlpZiAoY3B1X2lzX29tYXAyNDJ4KCkpCi0JCW9tYXAyNDJ4X3Ny YW1faW5pdCgpOwotCWVsc2UgaWYgKGNwdV9pc19vbWFwMjQzMCgpKQotCQlvbWFwMjQzeF9zcmFt X2luaXQoKTsKLQllbHNlIGlmIChjcHVfaXNfb21hcDM0eHgoKSkKLQkJb21hcDM0eHhfc3JhbV9p bml0KCk7CisJb21hcDM0eHhfc3JhbV9pbml0KCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdp dCBhL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbS5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFt LmgKaW5kZXggMDMwY2FiYzM5ODIxLi4yZGIyYzQ1OThjZGIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJt L21hY2gtb21hcDIvc3JhbS5oCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbS5oCkBAIC01 LDQzICs1LDEyIEBACiAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiAKLWV4dGVybiB2b2lkIG9tYXAy X3NyYW1fZGRyX2luaXQodTMyICpzbG93X2RsbF9jdHJsLCB1MzIgZmFzdF9kbGxfY3RybCwKLQkJ CQl1MzIgYmFzZV9jcywgdTMyIGZvcmNlX3VubG9jayk7Ci1leHRlcm4gdm9pZCBvbWFwMl9zcmFt X3JlcHJvZ3JhbV9zZHJjKHUzMiBwZXJmX2xldmVsLCB1MzIgZGxsX3ZhbCwKLQkJCQkgICAgICB1 MzIgbWVtX3R5cGUpOwotZXh0ZXJuIHUzMiBvbWFwMl9zZXRfcHJjbSh1MzIgZHBsbF9jdHJsX3Zh bCwgdTMyIHNkcmNfcmZyX3ZhbCwgaW50IGJ5cGFzcyk7Ci0KIGV4dGVybiB2b2lkIG9tYXAzX3Ny YW1fcmVzdG9yZV9jb250ZXh0KHZvaWQpOwogCiBleHRlcm4gaW50IF9faW5pdCBvbWFwX3NyYW1f aW5pdCh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgKm9tYXBfc3JhbV9wdXNoKHZvaWQgKmZ1bmNwLCB1 bnNpZ25lZCBsb25nIHNpemUpOwogCi1leHRlcm4gdm9pZCBvbWFwMjQyeF9zcmFtX2Rkcl9pbml0 KHUzMiAqc2xvd19kbGxfY3RybCwgdTMyIGZhc3RfZGxsX2N0cmwsCi0JCQkJCQl1MzIgYmFzZV9j cywgdTMyIGZvcmNlX3VubG9jayk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBvbWFwMjQyeF9zcmFt X2Rkcl9pbml0X3N6OwotCi1leHRlcm4gdTMyIG9tYXAyNDJ4X3NyYW1fc2V0X3ByY20odTMyIGRw bGxfY3RybF92YWwsIHUzMiBzZHJjX3Jmcl92YWwsCi0JCQkJCQlpbnQgYnlwYXNzKTsKLWV4dGVy biB1bnNpZ25lZCBsb25nIG9tYXAyNDJ4X3NyYW1fc2V0X3ByY21fc3o7Ci0KLWV4dGVybiB2b2lk IG9tYXAyNDJ4X3NyYW1fcmVwcm9ncmFtX3NkcmModTMyIHBlcmZfbGV2ZWwsIHUzMiBkbGxfdmFs LAotCQkJCQkJdTMyIG1lbV90eXBlKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nIG9tYXAyNDJ4X3Ny YW1fcmVwcm9ncmFtX3NkcmNfc3o7Ci0KLQotZXh0ZXJuIHZvaWQgb21hcDI0M3hfc3JhbV9kZHJf aW5pdCh1MzIgKnNsb3dfZGxsX2N0cmwsIHUzMiBmYXN0X2RsbF9jdHJsLAotCQkJCQkJdTMyIGJh c2VfY3MsIHUzMiBmb3JjZV91bmxvY2spOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDI0M3hf c3JhbV9kZHJfaW5pdF9zejsKLQotZXh0ZXJuIHUzMiBvbWFwMjQzeF9zcmFtX3NldF9wcmNtKHUz MiBkcGxsX2N0cmxfdmFsLCB1MzIgc2RyY19yZnJfdmFsLAotCQkJCQkJaW50IGJ5cGFzcyk7Ci1l eHRlcm4gdW5zaWduZWQgbG9uZyBvbWFwMjQzeF9zcmFtX3NldF9wcmNtX3N6OwotCi1leHRlcm4g dm9pZCBvbWFwMjQzeF9zcmFtX3JlcHJvZ3JhbV9zZHJjKHUzMiBwZXJmX2xldmVsLCB1MzIgZGxs X3ZhbCwKLQkJCQkJCXUzMiBtZW1fdHlwZSk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBvbWFwMjQz eF9zcmFtX3JlcHJvZ3JhbV9zZHJjX3N6OwotCiAjaWZkZWYgQ09ORklHX1BNCiBleHRlcm4gdm9p ZCBvbWFwX3B1c2hfc3JhbV9pZGxlKHZvaWQpOwogI2Vsc2UKQEAgLTU0LDUgKzIzLDQgQEAgc3Rh dGljIGlubGluZSB2b2lkIG9tYXBfcHVzaF9zcmFtX2lkbGUodm9pZCkge30KICAqIE9NQVAyKzog ZGVmaW5lIHRoZSBTUkFNIFBBIGFkZHJlc3Nlcy4KICAqIFVzZWQgYnkgdGhlIFNSQU0gbWFuYWdl bWVudCBjb2RlIGFuZCB0aGUgaWRsZSBzbGVlcCBjb2RlLgogICovCi0jZGVmaW5lIE9NQVAyX1NS QU1fUEEJCTB4NDAyMDAwMDAKICNkZWZpbmUgT01BUDNfU1JBTV9QQSAgICAgICAgICAgMHg0MDIw MDAwMApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQyeC5TIGIvYXJjaC9h cm0vbWFjaC1vbWFwMi9zcmFtMjQyeC5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5 MmVmMjFhYzJhYzEuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0y NDJ4LlMKKysrIC9kZXYvbnVsbApAQCAtMSwzMTcgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIgKi8KLS8qCi0gKiBsaW51eC9hcmNoL2FybS9tYWNo LW9tYXAyL3NyYW0yNDJ4LlMKLSAqCi0gKiBPbWFwMiBzcGVjaWZpYyBmdW5jdGlvbnMgdGhhdCBu ZWVkIHRvIGJlIHJ1biBpbiBpbnRlcm5hbCBTUkFNCi0gKgotICogKEMpIENvcHlyaWdodCAyMDA0 Ci0gKiBUZXhhcyBJbnN0cnVtZW50cywgPHd3dy50aS5jb20+Ci0gKiBSaWNoYXJkIFdvb2RydWZm IDxyLXdvb2RydWZmMkB0aS5jb20+Ci0gKgotICogUmljaGFyZCBXb29kcnVmZiBub3RlcyB0aGF0 IGFueSBjaGFuZ2VzIHRvIHRoaXMgY29kZSBtdXN0IGJlIGNhcmVmdWxseQotICogYXVkaXRlZCBh bmQgdGVzdGVkIHRvIGVuc3VyZSB0aGF0IHRoZXkgZG9uJ3QgY2F1c2UgYSBUTEIgbWlzcyB3aGls ZQotICogdGhlIFNEUkFNIGlzIGluYWNjZXNzaWJsZS4gIFN1Y2ggYSBzaXR1YXRpb24gd2lsbCBj cmFzaCB0aGUgc3lzdGVtCi0gKiBzaW5jZSBpdCB3aWxsIGNhdXNlIHRoZSBBUk0gTU1VIHRvIGF0 dGVtcHQgdG8gd2FsayB0aGUgcGFnZSB0YWJsZXMuCi0gKiBUaGVzZSBjcmFzaGVzIG1heSBiZSBp bnRlcm1pdHRlbnQuCi0gKi8KLSNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0KLSNpbmNsdWRl IDxhc20vYXNzZW1ibGVyLmg+Ci0KLSNpbmNsdWRlICJzb2MuaCIKLSNpbmNsdWRlICJpb21hcC5o IgotI2luY2x1ZGUgInBybTJ4eHguaCIKLSNpbmNsdWRlICJjbTJ4eHguaCIKLSNpbmNsdWRlICJz ZHJjLmgiCi0KLQkudGV4dAotCi0JLmFsaWduCTMKLUVOVFJZKG9tYXAyNDJ4X3NyYW1fZGRyX2lu aXQpCi0Jc3RtZmQJc3AhLCB7cjAgLSByMTIsIGxyfQlAIHNhdmUgcmVnaXN0ZXJzIG9uIHN0YWNr Ci0KLQltb3YJcjEyLCByMgkJCUAgY2FwdHVyZSBDUzEgdnMgQ1MwCi0JbW92CXI4LCByMwkJCUAg Y2FwdHVyZSBmb3JjZSBwYXJhbWV0ZXIKLQotCS8qIGZyZXF1ZW5jeSBzaGlmdCBkb3duICovCi0J bGRyCXIyLCBvbWFwMjQyeF9zZGlfY21fY2xrc2VsMl9wbGwJQCBnZXQgYWRkcmVzcyBvZiBkcGxs b3V0IHJlZwotCW1vdglyMywgIzB4MQkJQCB2YWx1ZSBmb3IgMXggb3BlcmF0aW9uCi0Jc3RyCXIz LCBbcjJdCQlAIGdvIHRvIEwxLWZyZXEgb3BlcmF0aW9uCi0KLQkvKiB2b2x0YWdlIHNoaWZ0IGRv d24gKi8KLQltb3YgcjksICMweDEJCQlAIHNldCB1cCBmb3IgTDEgdm9sdGFnZSBjYWxsCi0JYmwg dm9sdGFnZV9zaGlmdAkJQCBnbyBkcm9wIHZvbHRhZ2UKLQotCS8qIGRsbCBsb2NrIG1vZGUgKi8K LQlsZHIJcjExLCBvbWFwMjQyeF9zZGlfc2RyY19kbGxhX2N0cmwJQCBhZGRyIG9mIGRsbGEgY3Ry bAotCWxkcglyMTAsIFtyMTFdCQlAIGdldCBjdXJyZW50IHZhbAotCWNtcAlyMTIsICMweDEJCUAg Y3MxIGJhc2UgKDI0MjIgZXMyLjA1LzEpCi0JYWRkZXEJcjExLCByMTEsICMweDgJCUAgaWYgY3Mx IGJhc2UsIG1vdmUgdG8gRExMQgotCW12bglyOSwgIzB4NAkJQCBtYXNrIHRvIGdldCBjbGVhciBi aXQyCi0JYW5kCXIxMCwgcjEwLCByOQkJQCBjbGVhciBiaXQyIGZvciBsb2NrIG1vZGUuCi0Jb3Jy CXIxMCwgcjEwLCAjMHg4CQlAIG1ha2Ugc3VyZSBETEwgb24gKGVzMiBiaXQgcG9zKQotCW9ycgly MTAsIHIxMCwgIzB4MgkJQCA5MCBkZWdyZWUgcGhhc2UgZm9yIGFsbCBiZWxvdyAxMzNNSHoKLQlz dHIJcjEwLCBbcjExXQkJQCBjb21taXQgdG8gRExMQV9DVFJMCi0JYmwJaV9kbGxfd2FpdAkJQCB3 YWl0IGZvciBkbGwgdG8gbG9jawotCi0JLyogZ2V0IGRsbCB2YWx1ZSAqLwotCWFkZAlyMTEsIHIx MSwgIzB4NAkJQCBnZXQgYWRkciBvZiBzdGF0dXMgcmVnCi0JbGRyCXIxMCwgW3IxMV0JCUAgZ2V0 IGxvY2tlZCB2YWx1ZQotCi0JLyogdm9sdGFnZSBzaGlmdCB1cCAqLwotCW1vdiByOSwgIzB4MAkJ CUAgc2hpZnQgYmFjayB0byBMMC12b2x0YWdlCi0JYmwgdm9sdGFnZV9zaGlmdAkJQCBnbyByYWlz ZSB2b2x0YWdlCi0KLQkvKiBmcmVxdWVuY3kgc2hpZnQgdXAgKi8KLQltb3YJcjMsICMweDIJCUAg dmFsdWUgZm9yIDJ4IG9wZXJhdGlvbgotCXN0cglyMywgW3IyXQkJQCBnbyB0byBMMC1mcmVxIG9w ZXJhdGlvbgotCi0JLyogcmVzZXQgZW50cnkgbW9kZSBmb3IgZGxsY3RybCAqLwotCXN1YglyMTEs IHIxMSwgIzB4NAkJQCBtb3ZlIGZyb20gc3RhdHVzIHRvIGN0cmwKLQljbXAJcjEyLCAjMHgxCQlA IG5vcm1hbGl6ZSBpZiBjczEgYmFzZWQKLQlzdWJlcQlyMTEsIHIxMSwgIzB4OAkJQCBwb3NzaWJs eSBiYWNrIHRvIERMTEEKLQljbXAJcjgsICMweDEJCUAgaWYgZm9yY2VkIHVubG9jayBleGl0Ci0J b3JyZXEJcjEsIHIxLCAjMHg0CQlAIG1ha2Ugc3VyZSBleGl0IHdpdGggdW5sb2NrZWQgdmFsdWUK LQlzdHIJcjEsIFtyMTFdCQlAIHJlc3RvcmUgRExMQV9DVFJMIGhpZ2ggdmFsdWUKLQlhZGQJcjEx LCByMTEsICMweDgJCUAgbW92ZSB0byBETExCX0NUUkwgYWRkcgotCXN0cglyMSwgW3IxMV0JCUAg c2V0IHZhbHVlIERMTEJfQ1RSTAotCWJsCWlfZGxsX3dhaXQJCUAgd2FpdCBmb3IgcG9zc2libGUg bG9jawotCi0JLyogc2V0IHVwIGZvciByZXR1cm4sIEREUiBzaG91bGQgYmUgZ29vZCAqLwotCXN0 ciByMTAsIFtyMF0JCQlAIHdyaXRlIGRsbF9zdGF0dXMgYW5kIHJldHVybiBjb3VudGVyCi0JbGRt ZmQJc3AhLCB7cjAgLSByMTIsIHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCi0KLQkvKiBl bnN1cmUgdGhlIERMTCBoYXMgcmVsb2NrZWQgKi8KLWlfZGxsX3dhaXQ6Ci0JbW92CXI0LCAjMHg4 MDAJCUAgZGVsYXkgRExMIHJlbG9jaywgbWluIDB4NDAwIEwzIGNsb2NrcwotaV9kbGxfZGVsYXk6 Ci0Jc3VicwlyNCwgcjQsICMweDEKLQlibmUJaV9kbGxfZGVsYXkKLQlyZXQJbHIKLQotCS8qCi0J ICogc2hpZnQgdXAgb3IgZG93biB2b2x0YWdlLCB1c2UgUjkgYXMgaW5wdXQgdG8gdGVsbCBsZXZl bC4KLQkgKiB3YWl0IGZvciBpdCB0byBmaW5pc2gsIHVzZSAzMmsgc3luYyBjb3VudGVyLCAxdGlj az0zMXVTLgotCSAqLwotdm9sdGFnZV9zaGlmdDoKLQlsZHIJcjQsIG9tYXAyNDJ4X3NkaV9wcmNt X3ZvbHRjdHJsCUAgZ2V0IGFkZHIgb2Ygdm9sdCBjdHJsLgotCWxkcglyNSwgW3I0XQkJQCBnZXQg dmFsdWUuCi0JbGRyCXI2LCBwcmNtX21hc2tfdmFsCUAgZ2V0IHZhbHVlIG9mIG1hc2sKLQlhbmQJ cjUsIHI1LCByNgkJQCBhcHBseSBtYXNrIHRvIGNsZWFyIGJpdHMKLQlvcnIJcjUsIHI1LCByOQkJ QCBidWxsZCB2YWx1ZSBmb3IgTDAvTDEtdm9sdCBvcGVyYXRpb24uCi0Jc3RyCXI1LCBbcjRdCQlA IHNldCB1cCBmb3IgY2hhbmdlLgotCW1vdglyMywgIzB4NDAwMAkJQCBnZXQgdmFsIGZvciBmb3Jj ZQotCW9ycglyNSwgcjUsIHIzCQlAIGJ1aWxkIHZhbHVlIGZvciBmb3JjZQotCXN0cglyNSwgW3I0 XQkJQCBGb3JjZSB0cmFuc2l0aW9uIHRvIEwxCi0KLQlsZHIJcjMsIG9tYXAyNDJ4X3NkaV90aW1l cl8zMmtzeW5jdF9jcglAIGdldCBhZGRyIG9mIGNvdW50ZXIKLQlsZHIJcjUsIFtyM10JCUAgZ2V0 IHZhbHVlCi0JYWRkCXI1LCByNSwgIzB4MwkJQCBnaXZlIGl0IGF0IG1vc3QgOTN1Uwotdm9sdF9k ZWxheToKLQlsZHIJcjcsIFtyM10JCUAgZ2V0IHRpbWVyIHZhbHVlCi0JY21wCXI1LCByNwkJCUAg dGltZSB1cD8KLQliaGkJdm9sdF9kZWxheQkJQCBub3QgeWV0LT5icmFuY2gKLQlyZXQJbHIJCQlA IGJhY2sgdG8gY2FsbGVyLgotCi1vbWFwMjQyeF9zZGlfY21fY2xrc2VsMl9wbGw6Ci0JLndvcmQg T01BUDI0MjBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtTRUwyKQotb21hcDI0Mnhfc2RpX3Nk cmNfZGxsYV9jdHJsOgotCS53b3JkIE9NQVAyNDJYX1NEUkNfUkVHQUREUihTRFJDX0RMTEFfQ1RS TCkKLW9tYXAyNDJ4X3NkaV9wcmNtX3ZvbHRjdHJsOgotCS53b3JkIE9NQVAyNDIwX1BSQ01fVk9M VENUUkwKLXByY21fbWFza192YWw6Ci0JLndvcmQgMHhGRkZGM0ZGQwotb21hcDI0Mnhfc2RpX3Rp bWVyXzMya3N5bmN0X2NyOgotCS53b3JkIE9NQVAyX0w0X0lPX0FERFJFU1MoT01BUDI0MjBfMzJL U1lOQ1RfQkFTRSArIDB4MDEwKQotRU5UUlkob21hcDI0Mnhfc3JhbV9kZHJfaW5pdF9zeikKLQku d29yZAkuIC0gb21hcDI0Mnhfc3JhbV9kZHJfaW5pdAotCi0vKgotICogUmVwcm9ncmFtcyBtZW1v cnkgdGltaW5ncy4KLSAqIHIwID0gW1BSQ01fRlVMTCB8IFBSQ01fSEFMRl0gcjEgPSBTRFJDX0RM TEFfQ1RSTCB2YWx1ZSByMiA9IFtERFIgfCBTRFJdCi0gKiBQUkNNX0ZVTEwgPSAyLCBQUkNNX0hB TEYgPSAxLCBERFIgPSAxLCBTRFIgPSAwCi0gKi8KLQkuYWxpZ24JMwotRU5UUlkob21hcDI0Mnhf c3JhbV9yZXByb2dyYW1fc2RyYykKLQlzdG1mZAlzcCEsIHtyMCAtIHIxMCwgbHJ9CUAgc2F2ZSBy ZWdpc3RlcnMgb24gc3RhY2sKLQltb3YJcjMsICMweDAJCUAgY2xlYXIgZm9yIG1yYyBjYWxsCi0J bWNyCXAxNSwgMCwgcjMsIGM3LCBjMTAsIDQJQCBtZW1vcnkgYmFycmllciwgZmluaXNoIEFSTSBT RFIvRERSCi0Jbm9wCi0Jbm9wCi0JbGRyCXI2LCBvbWFwMjQyeF9zcnNfc2RyY19yZnJfY3RybAlA IGdldCBhZGRyIG9mIHJlZnJlc2ggcmVnCi0JbGRyCXI1LCBbcjZdCQlAIGdldCB2YWx1ZQotCW1v dglyNSwgcjUsIGxzciAjOAkJQCBpc29sYXRlIHJmciBmaWVsZCBhbmQgZHJvcCBidXJzdAotCi0J Y21wCXIwLCAjMHgxCQlAIGdvaW5nIHRvIGhhbGYgc3BlZWQ/Ci0JbW92bmUJcjksICMweDAJCUAg aWYgdXAgc2V0IGZsYWcgdXAgZm9yIHByZSB1cCwgaGkgdm9sdAotCi0JYmxuZQl2b2x0YWdlX3No aWZ0X2MJCUAgYWRqdXN0IHZvbHRhZ2UKLQotCWNtcAlyMCwgIzB4MQkJQCBnb2luZyB0byBoYWxm IHNwZWVkIChwb3N0IGJyYW5jaCBsaW5rKQotCW1vdmVxCXI1LCByNSwgbHNyICMxCQlAIGRpdmlk ZSBieSAyIGlmIHRvIGhhbGYKLQltb3ZuZQlyNSwgcjUsIGxzbCAjMQkJQCBtdWx0IGJ5IDIgaWYg dG8gZnVsbAotCW1vdglyNSwgcjUsIGxzbCAjOAkJQCBwdXQgcmZyIGZpZWxkIGJhY2sgaW50byBw bGFjZQotCWFkZAlyNSwgcjUsICMweDEJCUAgdHVybiBvbiBidXJzdCBvZiAxCi0JbGRyCXI0LCBv bWFwMjQyeF9zcnNfY21fY2xrc2VsMl9wbGwJQCBnZXQgYWRkcmVzcyBvZiBvdXQgcmVnCi0JbGRy CXIzLCBbcjRdCQlAIGdldCBjdXJyIHZhbHVlCi0Jb3JyCXIzLCByMywgIzB4MwotCWJpYwlyMywg cjMsICMweDMJCUAgY2xlYXIgbG93ZXIgYml0cwotCW9ycglyMywgcjMsIHIwCQlAIG5ldyBzdGF0 ZSB2YWx1ZQotCXN0cglyMywgW3I0XQkJQCBzZXQgbmV3IHN0YXRlIChwbGwveCwgeD0xIG9yIDIp Ci0Jbm9wCi0Jbm9wCi0KLQltb3ZlcQlyOSwgIzB4MQkJQCBpZiBzcGVlZCBkb3duLCBwb3N0IGRv d24sIGRyb3Agdm9sdAotCWJsZXEJdm9sdGFnZV9zaGlmdF9jCi0KLQltY3IJcDE1LCAwLCByMywg YzcsIGMxMCwgNAlAIG1lbW9yeSBiYXJyaWVyCi0Jc3RyCXI1LCBbcjZdCQlAIHNldCBuZXcgUkZS XzEgdmFsdWUKLQlhZGQJcjYsIHI2LCAjMHgzMAkJQCBnZXQgUkZSXzIgYWRkcgotCXN0cglyNSwg W3I2XQkJQCBzZXQgUkZSXzIKLQlub3AKLQljbXAJcjIsICMweDEJCUAgKFNEUiBvciBERFIpIGRv IHdlIG5lZWQgdG8gYWRqdXN0IERMTAotCWJuZQlmcmVxX291dAkJQCBsZWF2ZSBpZiBTRFIsIG5v IERMTCBmdW5jdGlvbgotCi0JLyogV2l0aCBERFIsIHdlIG5lZWQgdG8gdGFrZSBjYXJlIG9mIHRo ZSBETEwgZm9yIHRoZSBmcmVxdWVuY3kgY2hhbmdlICovCi0JbGRyCXIyLCBvbWFwMjQyeF9zcnNf c2RyY19kbGxhX2N0cmwJQCBhZGRyIG9mIGRsbGEgY3RybAotCXN0cglyMSwgW3IyXQkJQCB3cml0 ZSBvdXQgbmV3IFNEUkNfRExMQV9DVFJMCi0JYWRkCXIyLCByMiwgIzB4OAkJQCBhZGRyIHRvIFNE UkNfRExMQl9DVFJMCi0Jc3RyCXIxLCBbcjJdCQlAIGNvbW1pdCB0byBTRFJDX0RMTEJfQ1RSTAot CW1vdglyMSwgIzB4MjAwMAkJQCB3YWl0IERMTCByZWxvY2ssIG1pbiAweDQwMCBMMyBjbG9ja3MK LWRsbF93YWl0OgotCXN1YnMJcjEsIHIxLCAjMHgxCi0JYm5lCWRsbF93YWl0Ci1mcmVxX291dDoK LQlsZG1mZAlzcCEsIHtyMCAtIHIxMCwgcGN9CUAgcmVzdG9yZSByZWdzIGFuZCByZXR1cm4KLQot ICAgIC8qCi0gICAgICogc2hpZnQgdXAgb3IgZG93biB2b2x0YWdlLCB1c2UgUjkgYXMgaW5wdXQg dG8gdGVsbCBsZXZlbC4KLSAgICAgKgl3YWl0IGZvciBpdCB0byBmaW5pc2gsIHVzZSAzMmsgc3lu YyBjb3VudGVyLCAxdGljaz0zMXVTLgotICAgICAqLwotdm9sdGFnZV9zaGlmdF9jOgotCWxkcgly MTAsIG9tYXAyNDJ4X3Nyc19wcmNtX3ZvbHRjdHJsCUAgZ2V0IGFkZHIgb2Ygdm9sdCBjdHJsCi0J bGRyCXI4LCBbcjEwXQkJQCBnZXQgdmFsdWUKLQlsZHIJcjcsIGRkcl9wcmNtX21hc2tfdmFsCUAg Z2V0IHZhbHVlIG9mIG1hc2sKLQlhbmQJcjgsIHI4LCByNwkJQCBhcHBseSBtYXNrIHRvIGNsZWFy IGJpdHMKLQlvcnIJcjgsIHI4LCByOQkJQCBidWxsZCB2YWx1ZSBmb3IgTDAvTDEtdm9sdCBvcGVy YXRpb24uCi0Jc3RyCXI4LCBbcjEwXQkJQCBzZXQgdXAgZm9yIGNoYW5nZS4KLQltb3YJcjcsICMw eDQwMDAJCUAgZ2V0IHZhbCBmb3IgZm9yY2UKLQlvcnIJcjgsIHI4LCByNwkJQCBidWlsZCB2YWx1 ZSBmb3IgZm9yY2UKLQlzdHIJcjgsIFtyMTBdCQlAIEZvcmNlIHRyYW5zaXRpb24gdG8gTDEKLQot CWxkcglyMTAsIG9tYXAyNDJ4X3Nyc190aW1lcl8zMmtzeW5jdAlAIGdldCBhZGRyIG9mIGNvdW50 ZXIKLQlsZHIJcjgsIFtyMTBdCQlAIGdldCB2YWx1ZQotCWFkZAlyOCwgcjgsICMweDIJCUAgZ2l2 ZSBpdCBhdCBtb3N0IDYydVMgKG1pbiAzMSspCi12b2x0X2RlbGF5X2M6Ci0JbGRyCXI3LCBbcjEw XQkJQCBnZXQgdGltZXIgdmFsdWUKLQljbXAJcjgsIHI3CQkJQCB0aW1lIHVwPwotCWJoaQl2b2x0 X2RlbGF5X2MJCUAgbm90IHlldC0+YnJhbmNoCi0JcmV0CWxyCQkJQCBiYWNrIHRvIGNhbGxlcgot Ci1vbWFwMjQyeF9zcnNfY21fY2xrc2VsMl9wbGw6Ci0JLndvcmQgT01BUDI0MjBfQ01fUkVHQURE UihQTExfTU9ELCBDTV9DTEtTRUwyKQotb21hcDI0Mnhfc3JzX3NkcmNfZGxsYV9jdHJsOgotCS53 b3JkIE9NQVAyNDJYX1NEUkNfUkVHQUREUihTRFJDX0RMTEFfQ1RSTCkKLW9tYXAyNDJ4X3Nyc19z ZHJjX3Jmcl9jdHJsOgotCS53b3JkIE9NQVAyNDJYX1NEUkNfUkVHQUREUihTRFJDX1JGUl9DVFJM XzApCi1vbWFwMjQyeF9zcnNfcHJjbV92b2x0Y3RybDoKLQkud29yZCBPTUFQMjQyMF9QUkNNX1ZP TFRDVFJMCi1kZHJfcHJjbV9tYXNrX3ZhbDoKLQkud29yZCAweEZGRkYzRkZDCi1vbWFwMjQyeF9z cnNfdGltZXJfMzJrc3luY3Q6Ci0JLndvcmQgT01BUDJfTDRfSU9fQUREUkVTUyhPTUFQMjQyMF8z MktTWU5DVF9CQVNFICsgMHgwMTApCi0KLUVOVFJZKG9tYXAyNDJ4X3NyYW1fcmVwcm9ncmFtX3Nk cmNfc3opCi0JLndvcmQJLiAtIG9tYXAyNDJ4X3NyYW1fcmVwcm9ncmFtX3NkcmMKLQotLyoKLSAq IFNldCBkaXZpZGVycyBhbmQgcGxsLiBBbHNvIHJlY2FsY3VsYXRlIERMTCB2YWx1ZSBmb3IgRERS IGFuZCB1bmxvY2sgbW9kZS4KLSAqLwotCS5hbGlnbgkzCi1FTlRSWShvbWFwMjQyeF9zcmFtX3Nl dF9wcmNtKQotCXN0bWZkCXNwISwge3IwLXIxMiwgbHJ9CUAgcmVncyB0byBzdGFjawotCWFkcgly NCwgcGJlZ2luCQlAIGFkZHIgb2YgcHJlbG9hZCBzdGFydAotCWFkcglyOCwgcGVuZAkJQCBhZGRy IG9mIHByZWxvYWQgZW5kCi0JbWNycglwMTUsIDEsIHI4LCByNCwgYzEyCUAgcHJlbG9hZCBpbnRv IGljYWNoZQotcGJlZ2luOgotCS8qIG1vdmUgaW50byBmYXN0IHJlbG9jayBieXBhc3MgKi8KLQls ZHIJcjgsIG9tYXAyNDJ4X3NzcF9wbGxfY3RsCUAgZ2V0IGFkZHIKLQlsZHIJcjUsIFtyOF0JCUAg Z2V0IHZhbAotCW12bglyNiwgIzB4MwkJQCBjbGVhciBtYXNrCi0JYW5kCXI1LCByNSwgcjYJCUAg Y2xlYXIgZmllbGQKLQlvcnIJcjcsIHI1LCAjMHgyCQlAIGZhc3QgcmVsb2NrIHZhbAotCXN0cgly NywgW3I4XQkJQCBnbyB0byBmYXN0IHJlbG9jawotCWxkcglyNCwgb21hcDI0Mnhfc3NwX3BsbF9z dGF0CUAgYWRkciBvZiBzdGF0Ci1ibG9jazoKLQkvKiB3YWl0IGZvciBieXBhc3MgKi8KLQlsZHIJ cjgsIFtyNF0JCUAgc3RhdCB2YWx1ZQotCWFuZAlyOCwgcjgsICMweDMJCUAgbWFzayBmb3Igc3Rh dAotCWNtcAlyOCwgIzB4MQkJQCB0aGVyZSB5ZXQKLQlibmUJYmxvY2sJCQlAIGxvb3AgaWYgbm90 Ci0KLQkvKiBzZXQgbmV3IGRwbGwgZGl2aWRlcnMgX2FmdGVyXyBpbiBieXBhc3MgKi8KLQlsZHIJ cjQsIG9tYXAyNDJ4X3NzcF9wbGxfZGl2CUAgZ2V0IGFkZHIKLQlzdHIJcjAsIFtyNF0JCUAgc2V0 IGRwbGwgY3RybCB2YWwKLQotCWxkcglyNCwgb21hcDI0Mnhfc3NwX3NldF9jb25maWcJQCBnZXQg YWRkcgotCW1vdglyOCwgIzEJCQlAIHZhbGlkIGNmZyBtc2sKLQlzdHIJcjgsIFtyNF0JCUAgbWFr ZSBkaXZpZGVycyB0YWtlCi0KLQltb3YJcjQsICMxMDAJCUAgZGVhZCBzcGluIGEgYml0Ci13YWl0 X2FfYml0OgotCXN1YnMJcjQsIHI0LCAjMQkJQCBkZWMgbG9vcAotCWJuZQl3YWl0X2FfYml0CQlA IGRlbGF5IGRvbmU/Ci0KLQkvKiBjaGVjayBpZiBzdGF5aW5nIGluIGJ5cGFzcyAqLwotCWNtcAly MiwgIzB4MQkJQCBzdGF5IGluIGJ5cGFzcz8KLQliZXEJcGVuZAkJCUAganVtcCBvdmVyIGRwbGwg cmVsb2NrCi0KLQkvKiByZWxvY2sgRFBMTCB3aXRoIG5ldyB2YWxzICovCi0JbGRyCXI1LCBvbWFw MjQyeF9zc3BfcGxsX3N0YXQJQCBnZXQgYWRkcgotCWxkcglyNCwgb21hcDI0Mnhfc3NwX3BsbF9j dGwJQCBnZXQgYWRkcgotCW9ycglyOCwgcjcsICMweDMJCUAgdmFsIGZvciBsb2NrIGRwbGwKLQlz dHIJcjgsIFtyNF0JCUAgc2V0IHZhbAotCW1vdglyMCwgIzEwMDAJCUAgZGVhZCBzcGluIGEgYml0 Ci13YWl0X21vcmU6Ci0Jc3VicwlyMCwgcjAsICMxCQlAIGRlYyBsb29wCi0JYm5lCXdhaXRfbW9y ZQkJQCBkZWxheSBkb25lPwotd2FpdF9sb2NrOgotCWxkcglyOCwgW3I1XQkJQCBnZXQgbG9jayB2 YWwKLQlhbmQJcjgsIHI4LCAjMwkJQCBpc29sYXRlIGZpZWxkCi0JY21wCXI4LCAjMgkJCUAgbG9j a2VkPwotCWJuZQl3YWl0X2xvY2sJCUAgd2FpdCBpZiBub3QKLXBlbmQ6Ci0JLyogdXBkYXRlIG1l bW9yeSB0aW1pbmdzICYgYnJpZWZseSBsb2NrIGRsbCAqLwotCWxkcglyNCwgb21hcDI0Mnhfc3Nw X3NkcmNfcmZyCUAgZ2V0IGFkZHIKLQlzdHIJcjEsIFtyNF0JCUAgdXBkYXRlIHJlZnJlc2ggdGlt aW5nCi0JbGRyCXIxMSwgb21hcDI0Mnhfc3NwX2RsbGFfY3RybAlAIGdldCBhZGRyIG9mIERMTEEg Y3RybAotCWxkcglyMTAsIFtyMTFdCQlAIGdldCBjdXJyZW50IHZhbAotCW12bglyOSwgIzB4NAkJ QCBtYXNrIHRvIGdldCBjbGVhciBiaXQyCi0JYW5kCXIxMCwgcjEwLCByOQkJQCBjbGVhciBiaXQy IGZvciBsb2NrIG1vZGUKLQlvcnIJcjEwLCByMTAsICMweDgJCUAgbWFrZSBzdXJlIERMTCBvbiAo ZXMyIGJpdCBwb3MpCi0Jc3RyCXIxMCwgW3IxMV0JCUAgY29tbWl0IHRvIERMTEFfQ1RSTAotCWFk ZAlyMTEsIHIxMSwgIzB4OAkJQCBtb3ZlIHRvIGRsbGIKLQlzdHIJcjEwLCBbcjExXQkJQCBoaXQg RExMQiBhbHNvCi0KLQltb3YJcjQsICMweDgwMAkJQCByZWxvY2sgdGltZSAobWluIDB4NDAwIEwz IGNsb2NrcykKLXdhaXRfZGxsX2xvY2s6Ci0Jc3VicwlyNCwgcjQsICMweDEKLQlibmUJd2FpdF9k bGxfbG9jawotCW5vcAotCWxkbWZkCXNwISwge3IwLXIxMiwgcGN9CUAgcmVzdG9yZSByZWdzIGFu ZCByZXR1cm4KLQotb21hcDI0Mnhfc3NwX3NldF9jb25maWc6Ci0JLndvcmQgT01BUDI0MjBfUFJD TV9DTEtDRkdfQ1RSTAotb21hcDI0Mnhfc3NwX3BsbF9jdGw6Ci0JLndvcmQgT01BUDI0MjBfQ01f UkVHQUREUihQTExfTU9ELCBDTV9DTEtFTikKLW9tYXAyNDJ4X3NzcF9wbGxfc3RhdDoKLQkud29y ZCBPTUFQMjQyMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVCkKLW9tYXAyNDJ4X3NzcF9w bGxfZGl2OgotCS53b3JkIE9NQVAyNDIwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMSkK LW9tYXAyNDJ4X3NzcF9zZHJjX3JmcjoKLQkud29yZCBPTUFQMjQyWF9TRFJDX1JFR0FERFIoU0RS Q19SRlJfQ1RSTF8wKQotb21hcDI0Mnhfc3NwX2RsbGFfY3RybDoKLQkud29yZCBPTUFQMjQyWF9T RFJDX1JFR0FERFIoU0RSQ19ETExBX0NUUkwpCi0KLUVOVFJZKG9tYXAyNDJ4X3NyYW1fc2V0X3By Y21fc3opCi0JLndvcmQJLiAtIG9tYXAyNDJ4X3NyYW1fc2V0X3ByY20KZGlmZiAtLWdpdCBhL2Fy Y2gvYXJtL21hY2gtb21hcDIvc3JhbTI0M3guUyBiL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbTI0 M3guUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmFmMDNiN2YwOGY1Li4wMDAwMDAw MDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQzeC5TCisrKyAvZGV2L251bGwK QEAgLTEsMzE3ICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9y LWxhdGVyICovCi0vKgotICogbGludXgvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQzeC5TCi0g KgotICogT21hcDIgc3BlY2lmaWMgZnVuY3Rpb25zIHRoYXQgbmVlZCB0byBiZSBydW4gaW4gaW50 ZXJuYWwgU1JBTQotICoKLSAqIChDKSBDb3B5cmlnaHQgMjAwNAotICogVGV4YXMgSW5zdHJ1bWVu dHMsIDx3d3cudGkuY29tPgotICogUmljaGFyZCBXb29kcnVmZiA8ci13b29kcnVmZjJAdGkuY29t PgotICoKLSAqIFJpY2hhcmQgV29vZHJ1ZmYgbm90ZXMgdGhhdCBhbnkgY2hhbmdlcyB0byB0aGlz IGNvZGUgbXVzdCBiZSBjYXJlZnVsbHkKLSAqIGF1ZGl0ZWQgYW5kIHRlc3RlZCB0byBlbnN1cmUg dGhhdCB0aGV5IGRvbid0IGNhdXNlIGEgVExCIG1pc3Mgd2hpbGUKLSAqIHRoZSBTRFJBTSBpcyBp bmFjY2Vzc2libGUuICBTdWNoIGEgc2l0dWF0aW9uIHdpbGwgY3Jhc2ggdGhlIHN5c3RlbQotICog c2luY2UgaXQgd2lsbCBjYXVzZSB0aGUgQVJNIE1NVSB0byBhdHRlbXB0IHRvIHdhbGsgdGhlIHBh Z2UgdGFibGVzLgotICogVGhlc2UgY3Jhc2hlcyBtYXkgYmUgaW50ZXJtaXR0ZW50LgotICovCi0j aW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotCi0jaW5jbHVkZSA8YXNtL2Fzc2VtYmxlci5oPgot Ci0jaW5jbHVkZSAic29jLmgiCi0jaW5jbHVkZSAiaW9tYXAuaCIKLSNpbmNsdWRlICJwcm0yeHh4 LmgiCi0jaW5jbHVkZSAiY20yeHh4LmgiCi0jaW5jbHVkZSAic2RyYy5oIgotCi0JLnRleHQKLQot CS5hbGlnbgkzCi1FTlRSWShvbWFwMjQzeF9zcmFtX2Rkcl9pbml0KQotCXN0bWZkCXNwISwge3Iw IC0gcjEyLCBscn0JQCBzYXZlIHJlZ2lzdGVycyBvbiBzdGFjawotCi0JbW92CXIxMiwgcjIJCQlA IGNhcHR1cmUgQ1MxIHZzIENTMAotCW1vdglyOCwgcjMJCQlAIGNhcHR1cmUgZm9yY2UgcGFyYW1l dGVyCi0KLQkvKiBmcmVxdWVuY3kgc2hpZnQgZG93biAqLwotCWxkcglyMiwgb21hcDI0M3hfc2Rp X2NtX2Nsa3NlbDJfcGxsCUAgZ2V0IGFkZHJlc3Mgb2YgZHBsbG91dCByZWcKLQltb3YJcjMsICMw eDEJCUAgdmFsdWUgZm9yIDF4IG9wZXJhdGlvbgotCXN0cglyMywgW3IyXQkJQCBnbyB0byBMMS1m cmVxIG9wZXJhdGlvbgotCi0JLyogdm9sdGFnZSBzaGlmdCBkb3duICovCi0JbW92IHI5LCAjMHgx CQkJQCBzZXQgdXAgZm9yIEwxIHZvbHRhZ2UgY2FsbAotCWJsIHZvbHRhZ2Vfc2hpZnQJCUAgZ28g ZHJvcCB2b2x0YWdlCi0KLQkvKiBkbGwgbG9jayBtb2RlICovCi0JbGRyCXIxMSwgb21hcDI0M3hf c2RpX3NkcmNfZGxsYV9jdHJsCUAgYWRkciBvZiBkbGxhIGN0cmwKLQlsZHIJcjEwLCBbcjExXQkJ QCBnZXQgY3VycmVudCB2YWwKLQljbXAJcjEyLCAjMHgxCQlAIGNzMSBiYXNlICgyNDIyIGVzMi4w NS8xKQotCWFkZGVxCXIxMSwgcjExLCAjMHg4CQlAIGlmIGNzMSBiYXNlLCBtb3ZlIHRvIERMTEIK LQltdm4JcjksICMweDQJCUAgbWFzayB0byBnZXQgY2xlYXIgYml0MgotCWFuZAlyMTAsIHIxMCwg cjkJCUAgY2xlYXIgYml0MiBmb3IgbG9jayBtb2RlLgotCW9ycglyMTAsIHIxMCwgIzB4OAkJQCBt YWtlIHN1cmUgRExMIG9uIChlczIgYml0IHBvcykKLQlvcnIJcjEwLCByMTAsICMweDIJCUAgOTAg ZGVncmVlIHBoYXNlIGZvciBhbGwgYmVsb3cgMTMzTUh6Ci0Jc3RyCXIxMCwgW3IxMV0JCUAgY29t bWl0IHRvIERMTEFfQ1RSTAotCWJsCWlfZGxsX3dhaXQJCUAgd2FpdCBmb3IgZGxsIHRvIGxvY2sK LQotCS8qIGdldCBkbGwgdmFsdWUgKi8KLQlhZGQJcjExLCByMTEsICMweDQJCUAgZ2V0IGFkZHIg b2Ygc3RhdHVzIHJlZwotCWxkcglyMTAsIFtyMTFdCQlAIGdldCBsb2NrZWQgdmFsdWUKLQotCS8q IHZvbHRhZ2Ugc2hpZnQgdXAgKi8KLQltb3YgcjksICMweDAJCQlAIHNoaWZ0IGJhY2sgdG8gTDAt dm9sdGFnZQotCWJsIHZvbHRhZ2Vfc2hpZnQJCUAgZ28gcmFpc2Ugdm9sdGFnZQotCi0JLyogZnJl cXVlbmN5IHNoaWZ0IHVwICovCi0JbW92CXIzLCAjMHgyCQlAIHZhbHVlIGZvciAyeCBvcGVyYXRp b24KLQlzdHIJcjMsIFtyMl0JCUAgZ28gdG8gTDAtZnJlcSBvcGVyYXRpb24KLQotCS8qIHJlc2V0 IGVudHJ5IG1vZGUgZm9yIGRsbGN0cmwgKi8KLQlzdWIJcjExLCByMTEsICMweDQJCUAgbW92ZSBm cm9tIHN0YXR1cyB0byBjdHJsCi0JY21wCXIxMiwgIzB4MQkJQCBub3JtYWxpemUgaWYgY3MxIGJh c2VkCi0Jc3ViZXEJcjExLCByMTEsICMweDgJCUAgcG9zc2libHkgYmFjayB0byBETExBCi0JY21w CXI4LCAjMHgxCQlAIGlmIGZvcmNlZCB1bmxvY2sgZXhpdAotCW9ycmVxCXIxLCByMSwgIzB4NAkJ QCBtYWtlIHN1cmUgZXhpdCB3aXRoIHVubG9ja2VkIHZhbHVlCi0Jc3RyCXIxLCBbcjExXQkJQCBy ZXN0b3JlIERMTEFfQ1RSTCBoaWdoIHZhbHVlCi0JYWRkCXIxMSwgcjExLCAjMHg4CQlAIG1vdmUg dG8gRExMQl9DVFJMIGFkZHIKLQlzdHIJcjEsIFtyMTFdCQlAIHNldCB2YWx1ZSBETExCX0NUUkwK LQlibAlpX2RsbF93YWl0CQlAIHdhaXQgZm9yIHBvc3NpYmxlIGxvY2sKLQotCS8qIHNldCB1cCBm b3IgcmV0dXJuLCBERFIgc2hvdWxkIGJlIGdvb2QgKi8KLQlzdHIgcjEwLCBbcjBdCQkJQCB3cml0 ZSBkbGxfc3RhdHVzIGFuZCByZXR1cm4gY291bnRlcgotCWxkbWZkCXNwISwge3IwIC0gcjEyLCBw Y30JQCByZXN0b3JlIHJlZ3MgYW5kIHJldHVybgotCi0JLyogZW5zdXJlIHRoZSBETEwgaGFzIHJl bG9ja2VkICovCi1pX2RsbF93YWl0OgotCW1vdglyNCwgIzB4ODAwCQlAIGRlbGF5IERMTCByZWxv Y2ssIG1pbiAweDQwMCBMMyBjbG9ja3MKLWlfZGxsX2RlbGF5OgotCXN1YnMJcjQsIHI0LCAjMHgx Ci0JYm5lCWlfZGxsX2RlbGF5Ci0JcmV0CWxyCi0KLQkvKgotCSAqIHNoaWZ0IHVwIG9yIGRvd24g dm9sdGFnZSwgdXNlIFI5IGFzIGlucHV0IHRvIHRlbGwgbGV2ZWwuCi0JICogd2FpdCBmb3IgaXQg dG8gZmluaXNoLCB1c2UgMzJrIHN5bmMgY291bnRlciwgMXRpY2s9MzF1Uy4KLQkgKi8KLXZvbHRh Z2Vfc2hpZnQ6Ci0JbGRyCXI0LCBvbWFwMjQzeF9zZGlfcHJjbV92b2x0Y3RybAlAIGdldCBhZGRy IG9mIHZvbHQgY3RybC4KLQlsZHIJcjUsIFtyNF0JCUAgZ2V0IHZhbHVlLgotCWxkcglyNiwgcHJj bV9tYXNrX3ZhbAlAIGdldCB2YWx1ZSBvZiBtYXNrCi0JYW5kCXI1LCByNSwgcjYJCUAgYXBwbHkg bWFzayB0byBjbGVhciBiaXRzCi0Jb3JyCXI1LCByNSwgcjkJCUAgYnVsbGQgdmFsdWUgZm9yIEww L0wxLXZvbHQgb3BlcmF0aW9uLgotCXN0cglyNSwgW3I0XQkJQCBzZXQgdXAgZm9yIGNoYW5nZS4K LQltb3YJcjMsICMweDQwMDAJCUAgZ2V0IHZhbCBmb3IgZm9yY2UKLQlvcnIJcjUsIHI1LCByMwkJ QCBidWlsZCB2YWx1ZSBmb3IgZm9yY2UKLQlzdHIJcjUsIFtyNF0JCUAgRm9yY2UgdHJhbnNpdGlv biB0byBMMQotCi0JbGRyCXIzLCBvbWFwMjQzeF9zZGlfdGltZXJfMzJrc3luY3RfY3IJQCBnZXQg YWRkciBvZiBjb3VudGVyCi0JbGRyCXI1LCBbcjNdCQlAIGdldCB2YWx1ZQotCWFkZAlyNSwgcjUs ICMweDMJCUAgZ2l2ZSBpdCBhdCBtb3N0IDkzdVMKLXZvbHRfZGVsYXk6Ci0JbGRyCXI3LCBbcjNd CQlAIGdldCB0aW1lciB2YWx1ZQotCWNtcAlyNSwgcjcJCQlAIHRpbWUgdXA/Ci0JYmhpCXZvbHRf ZGVsYXkJCUAgbm90IHlldC0+YnJhbmNoCi0JcmV0CWxyCQkJQCBiYWNrIHRvIGNhbGxlci4KLQot b21hcDI0M3hfc2RpX2NtX2Nsa3NlbDJfcGxsOgotCS53b3JkIE9NQVAyNDMwX0NNX1JFR0FERFIo UExMX01PRCwgQ01fQ0xLU0VMMikKLW9tYXAyNDN4X3NkaV9zZHJjX2RsbGFfY3RybDoKLQkud29y ZCBPTUFQMjQzWF9TRFJDX1JFR0FERFIoU0RSQ19ETExBX0NUUkwpCi1vbWFwMjQzeF9zZGlfcHJj bV92b2x0Y3RybDoKLQkud29yZCBPTUFQMjQzMF9QUkNNX1ZPTFRDVFJMCi1wcmNtX21hc2tfdmFs OgotCS53b3JkIDB4RkZGRjNGRkMKLW9tYXAyNDN4X3NkaV90aW1lcl8zMmtzeW5jdF9jcjoKLQku d29yZCBPTUFQMl9MNF9JT19BRERSRVNTKE9NQVAyNDMwXzMyS1NZTkNUX0JBU0UgKyAweDAxMCkK LUVOVFJZKG9tYXAyNDN4X3NyYW1fZGRyX2luaXRfc3opCi0JLndvcmQJLiAtIG9tYXAyNDN4X3Ny YW1fZGRyX2luaXQKLQotLyoKLSAqIFJlcHJvZ3JhbXMgbWVtb3J5IHRpbWluZ3MuCi0gKiByMCA9 IFtQUkNNX0ZVTEwgfCBQUkNNX0hBTEZdIHIxID0gU0RSQ19ETExBX0NUUkwgdmFsdWUgcjIgPSBb RERSIHwgU0RSXQotICogUFJDTV9GVUxMID0gMiwgUFJDTV9IQUxGID0gMSwgRERSID0gMSwgU0RS ID0gMAotICovCi0JLmFsaWduCTMKLUVOVFJZKG9tYXAyNDN4X3NyYW1fcmVwcm9ncmFtX3NkcmMp Ci0Jc3RtZmQJc3AhLCB7cjAgLSByMTAsIGxyfQlAIHNhdmUgcmVnaXN0ZXJzIG9uIHN0YWNrCi0J bW92CXIzLCAjMHgwCQlAIGNsZWFyIGZvciBtcmMgY2FsbAotCW1jcglwMTUsIDAsIHIzLCBjNywg YzEwLCA0CUAgbWVtb3J5IGJhcnJpZXIsIGZpbmlzaCBBUk0gU0RSL0REUgotCW5vcAotCW5vcAot CWxkcglyNiwgb21hcDI0M3hfc3JzX3NkcmNfcmZyX2N0cmwJQCBnZXQgYWRkciBvZiByZWZyZXNo IHJlZwotCWxkcglyNSwgW3I2XQkJQCBnZXQgdmFsdWUKLQltb3YJcjUsIHI1LCBsc3IgIzgJCUAg aXNvbGF0ZSByZnIgZmllbGQgYW5kIGRyb3AgYnVyc3QKLQotCWNtcAlyMCwgIzB4MQkJQCBnb2lu ZyB0byBoYWxmIHNwZWVkPwotCW1vdm5lCXI5LCAjMHgwCQlAIGlmIHVwIHNldCBmbGFnIHVwIGZv ciBwcmUgdXAsIGhpIHZvbHQKLQotCWJsbmUJdm9sdGFnZV9zaGlmdF9jCQlAIGFkanVzdCB2b2x0 YWdlCi0KLQljbXAJcjAsICMweDEJCUAgZ29pbmcgdG8gaGFsZiBzcGVlZCAocG9zdCBicmFuY2gg bGluaykKLQltb3ZlcQlyNSwgcjUsIGxzciAjMQkJQCBkaXZpZGUgYnkgMiBpZiB0byBoYWxmCi0J bW92bmUJcjUsIHI1LCBsc2wgIzEJCUAgbXVsdCBieSAyIGlmIHRvIGZ1bGwKLQltb3YJcjUsIHI1 LCBsc2wgIzgJCUAgcHV0IHJmciBmaWVsZCBiYWNrIGludG8gcGxhY2UKLQlhZGQJcjUsIHI1LCAj MHgxCQlAIHR1cm4gb24gYnVyc3Qgb2YgMQotCWxkcglyNCwgb21hcDI0M3hfc3JzX2NtX2Nsa3Nl bDJfcGxsCUAgZ2V0IGFkZHJlc3Mgb2Ygb3V0IHJlZwotCWxkcglyMywgW3I0XQkJQCBnZXQgY3Vy ciB2YWx1ZQotCW9ycglyMywgcjMsICMweDMKLQliaWMJcjMsIHIzLCAjMHgzCQlAIGNsZWFyIGxv d2VyIGJpdHMKLQlvcnIJcjMsIHIzLCByMAkJQCBuZXcgc3RhdGUgdmFsdWUKLQlzdHIJcjMsIFty NF0JCUAgc2V0IG5ldyBzdGF0ZSAocGxsL3gsIHg9MSBvciAyKQotCW5vcAotCW5vcAotCi0JbW92 ZXEJcjksICMweDEJCUAgaWYgc3BlZWQgZG93biwgcG9zdCBkb3duLCBkcm9wIHZvbHQKLQlibGVx CXZvbHRhZ2Vfc2hpZnRfYwotCi0JbWNyCXAxNSwgMCwgcjMsIGM3LCBjMTAsIDQJQCBtZW1vcnkg YmFycmllcgotCXN0cglyNSwgW3I2XQkJQCBzZXQgbmV3IFJGUl8xIHZhbHVlCi0JYWRkCXI2LCBy NiwgIzB4MzAJCUAgZ2V0IFJGUl8yIGFkZHIKLQlzdHIJcjUsIFtyNl0JCUAgc2V0IFJGUl8yCi0J bm9wCi0JY21wCXIyLCAjMHgxCQlAIChTRFIgb3IgRERSKSBkbyB3ZSBuZWVkIHRvIGFkanVzdCBE TEwKLQlibmUJZnJlcV9vdXQJCUAgbGVhdmUgaWYgU0RSLCBubyBETEwgZnVuY3Rpb24KLQotCS8q IFdpdGggRERSLCB3ZSBuZWVkIHRvIHRha2UgY2FyZSBvZiB0aGUgRExMIGZvciB0aGUgZnJlcXVl bmN5IGNoYW5nZSAqLwotCWxkcglyMiwgb21hcDI0M3hfc3JzX3NkcmNfZGxsYV9jdHJsCUAgYWRk ciBvZiBkbGxhIGN0cmwKLQlzdHIJcjEsIFtyMl0JCUAgd3JpdGUgb3V0IG5ldyBTRFJDX0RMTEFf Q1RSTAotCWFkZAlyMiwgcjIsICMweDgJCUAgYWRkciB0byBTRFJDX0RMTEJfQ1RSTAotCXN0cgly MSwgW3IyXQkJQCBjb21taXQgdG8gU0RSQ19ETExCX0NUUkwKLQltb3YJcjEsICMweDIwMDAJCUAg d2FpdCBETEwgcmVsb2NrLCBtaW4gMHg0MDAgTDMgY2xvY2tzCi1kbGxfd2FpdDoKLQlzdWJzCXIx LCByMSwgIzB4MQotCWJuZQlkbGxfd2FpdAotZnJlcV9vdXQ6Ci0JbGRtZmQJc3AhLCB7cjAgLSBy MTAsIHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCi0KLSAgICAvKgotICAgICAqIHNoaWZ0 IHVwIG9yIGRvd24gdm9sdGFnZSwgdXNlIFI5IGFzIGlucHV0IHRvIHRlbGwgbGV2ZWwuCi0gICAg ICoJd2FpdCBmb3IgaXQgdG8gZmluaXNoLCB1c2UgMzJrIHN5bmMgY291bnRlciwgMXRpY2s9MzF1 Uy4KLSAgICAgKi8KLXZvbHRhZ2Vfc2hpZnRfYzoKLQlsZHIJcjEwLCBvbWFwMjQzeF9zcnNfcHJj bV92b2x0Y3RybAlAIGdldCBhZGRyIG9mIHZvbHQgY3RybAotCWxkcglyOCwgW3IxMF0JCUAgZ2V0 IHZhbHVlCi0JbGRyCXI3LCBkZHJfcHJjbV9tYXNrX3ZhbAlAIGdldCB2YWx1ZSBvZiBtYXNrCi0J YW5kCXI4LCByOCwgcjcJCUAgYXBwbHkgbWFzayB0byBjbGVhciBiaXRzCi0Jb3JyCXI4LCByOCwg cjkJCUAgYnVsbGQgdmFsdWUgZm9yIEwwL0wxLXZvbHQgb3BlcmF0aW9uLgotCXN0cglyOCwgW3Ix MF0JCUAgc2V0IHVwIGZvciBjaGFuZ2UuCi0JbW92CXI3LCAjMHg0MDAwCQlAIGdldCB2YWwgZm9y IGZvcmNlCi0Jb3JyCXI4LCByOCwgcjcJCUAgYnVpbGQgdmFsdWUgZm9yIGZvcmNlCi0Jc3RyCXI4 LCBbcjEwXQkJQCBGb3JjZSB0cmFuc2l0aW9uIHRvIEwxCi0KLQlsZHIJcjEwLCBvbWFwMjQzeF9z cnNfdGltZXJfMzJrc3luY3QJQCBnZXQgYWRkciBvZiBjb3VudGVyCi0JbGRyCXI4LCBbcjEwXQkJ QCBnZXQgdmFsdWUKLQlhZGQJcjgsIHI4LCAjMHgyCQlAIGdpdmUgaXQgYXQgbW9zdCA2MnVTICht aW4gMzErKQotdm9sdF9kZWxheV9jOgotCWxkcglyNywgW3IxMF0JCUAgZ2V0IHRpbWVyIHZhbHVl Ci0JY21wCXI4LCByNwkJCUAgdGltZSB1cD8KLQliaGkJdm9sdF9kZWxheV9jCQlAIG5vdCB5ZXQt PmJyYW5jaAotCXJldAlscgkJCUAgYmFjayB0byBjYWxsZXIKLQotb21hcDI0M3hfc3JzX2NtX2Ns a3NlbDJfcGxsOgotCS53b3JkIE9NQVAyNDMwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VM MikKLW9tYXAyNDN4X3Nyc19zZHJjX2RsbGFfY3RybDoKLQkud29yZCBPTUFQMjQzWF9TRFJDX1JF R0FERFIoU0RSQ19ETExBX0NUUkwpCi1vbWFwMjQzeF9zcnNfc2RyY19yZnJfY3RybDoKLQkud29y ZCBPTUFQMjQzWF9TRFJDX1JFR0FERFIoU0RSQ19SRlJfQ1RSTF8wKQotb21hcDI0M3hfc3JzX3By Y21fdm9sdGN0cmw6Ci0JLndvcmQgT01BUDI0MzBfUFJDTV9WT0xUQ1RSTAotZGRyX3ByY21fbWFz a192YWw6Ci0JLndvcmQgMHhGRkZGM0ZGQwotb21hcDI0M3hfc3JzX3RpbWVyXzMya3N5bmN0Ogot CS53b3JkIE9NQVAyX0w0X0lPX0FERFJFU1MoT01BUDI0MzBfMzJLU1lOQ1RfQkFTRSArIDB4MDEw KQotCi1FTlRSWShvbWFwMjQzeF9zcmFtX3JlcHJvZ3JhbV9zZHJjX3N6KQotCS53b3JkCS4gLSBv bWFwMjQzeF9zcmFtX3JlcHJvZ3JhbV9zZHJjCi0KLS8qCi0gKiBTZXQgZGl2aWRlcnMgYW5kIHBs bC4gQWxzbyByZWNhbGN1bGF0ZSBETEwgdmFsdWUgZm9yIEREUiBhbmQgdW5sb2NrIG1vZGUuCi0g Ki8KLQkuYWxpZ24JMwotRU5UUlkob21hcDI0M3hfc3JhbV9zZXRfcHJjbSkKLQlzdG1mZAlzcCEs IHtyMC1yMTIsIGxyfQlAIHJlZ3MgdG8gc3RhY2sKLQlhZHIJcjQsIHBiZWdpbgkJQCBhZGRyIG9m IHByZWxvYWQgc3RhcnQKLQlhZHIJcjgsIHBlbmQJCUAgYWRkciBvZiBwcmVsb2FkIGVuZAotCW1j cnIJcDE1LCAxLCByOCwgcjQsIGMxMglAIHByZWxvYWQgaW50byBpY2FjaGUKLXBiZWdpbjoKLQkv KiBtb3ZlIGludG8gZmFzdCByZWxvY2sgYnlwYXNzICovCi0JbGRyCXI4LCBvbWFwMjQzeF9zc3Bf cGxsX2N0bAlAIGdldCBhZGRyCi0JbGRyCXI1LCBbcjhdCQlAIGdldCB2YWwKLQltdm4JcjYsICMw eDMJCUAgY2xlYXIgbWFzawotCWFuZAlyNSwgcjUsIHI2CQlAIGNsZWFyIGZpZWxkCi0Jb3JyCXI3 LCByNSwgIzB4MgkJQCBmYXN0IHJlbG9jayB2YWwKLQlzdHIJcjcsIFtyOF0JCUAgZ28gdG8gZmFz dCByZWxvY2sKLQlsZHIJcjQsIG9tYXAyNDN4X3NzcF9wbGxfc3RhdAlAIGFkZHIgb2Ygc3RhdAot YmxvY2s6Ci0JLyogd2FpdCBmb3IgYnlwYXNzICovCi0JbGRyCXI4LCBbcjRdCQlAIHN0YXQgdmFs dWUKLQlhbmQJcjgsIHI4LCAjMHgzCQlAIG1hc2sgZm9yIHN0YXQKLQljbXAJcjgsICMweDEJCUAg dGhlcmUgeWV0Ci0JYm5lCWJsb2NrCQkJQCBsb29wIGlmIG5vdAotCi0JLyogc2V0IG5ldyBkcGxs IGRpdmlkZXJzIF9hZnRlcl8gaW4gYnlwYXNzICovCi0JbGRyCXI0LCBvbWFwMjQzeF9zc3BfcGxs X2RpdglAIGdldCBhZGRyCi0Jc3RyCXIwLCBbcjRdCQlAIHNldCBkcGxsIGN0cmwgdmFsCi0KLQls ZHIJcjQsIG9tYXAyNDN4X3NzcF9zZXRfY29uZmlnCUAgZ2V0IGFkZHIKLQltb3YJcjgsICMxCQkJ QCB2YWxpZCBjZmcgbXNrCi0Jc3RyCXI4LCBbcjRdCQlAIG1ha2UgZGl2aWRlcnMgdGFrZQotCi0J bW92CXI0LCAjMTAwCQlAIGRlYWQgc3BpbiBhIGJpdAotd2FpdF9hX2JpdDoKLQlzdWJzCXI0LCBy NCwgIzEJCUAgZGVjIGxvb3AKLQlibmUJd2FpdF9hX2JpdAkJQCBkZWxheSBkb25lPwotCi0JLyog Y2hlY2sgaWYgc3RheWluZyBpbiBieXBhc3MgKi8KLQljbXAJcjIsICMweDEJCUAgc3RheSBpbiBi eXBhc3M/Ci0JYmVxCXBlbmQJCQlAIGp1bXAgb3ZlciBkcGxsIHJlbG9jawotCi0JLyogcmVsb2Nr IERQTEwgd2l0aCBuZXcgdmFscyAqLwotCWxkcglyNSwgb21hcDI0M3hfc3NwX3BsbF9zdGF0CUAg Z2V0IGFkZHIKLQlsZHIJcjQsIG9tYXAyNDN4X3NzcF9wbGxfY3RsCUAgZ2V0IGFkZHIKLQlvcnIJ cjgsIHI3LCAjMHgzCQlAIHZhbCBmb3IgbG9jayBkcGxsCi0Jc3RyCXI4LCBbcjRdCQlAIHNldCB2 YWwKLQltb3YJcjAsICMxMDAwCQlAIGRlYWQgc3BpbiBhIGJpdAotd2FpdF9tb3JlOgotCXN1YnMJ cjAsIHIwLCAjMQkJQCBkZWMgbG9vcAotCWJuZQl3YWl0X21vcmUJCUAgZGVsYXkgZG9uZT8KLXdh aXRfbG9jazoKLQlsZHIJcjgsIFtyNV0JCUAgZ2V0IGxvY2sgdmFsCi0JYW5kCXI4LCByOCwgIzMJ CUAgaXNvbGF0ZSBmaWVsZAotCWNtcAlyOCwgIzIJCQlAIGxvY2tlZD8KLQlibmUJd2FpdF9sb2Nr CQlAIHdhaXQgaWYgbm90Ci1wZW5kOgotCS8qIHVwZGF0ZSBtZW1vcnkgdGltaW5ncyAmIGJyaWVm bHkgbG9jayBkbGwgKi8KLQlsZHIJcjQsIG9tYXAyNDN4X3NzcF9zZHJjX3JmcglAIGdldCBhZGRy Ci0Jc3RyCXIxLCBbcjRdCQlAIHVwZGF0ZSByZWZyZXNoIHRpbWluZwotCWxkcglyMTEsIG9tYXAy NDN4X3NzcF9kbGxhX2N0cmwJQCBnZXQgYWRkciBvZiBETExBIGN0cmwKLQlsZHIJcjEwLCBbcjEx XQkJQCBnZXQgY3VycmVudCB2YWwKLQltdm4JcjksICMweDQJCUAgbWFzayB0byBnZXQgY2xlYXIg Yml0MgotCWFuZAlyMTAsIHIxMCwgcjkJCUAgY2xlYXIgYml0MiBmb3IgbG9jayBtb2RlCi0Jb3Jy CXIxMCwgcjEwLCAjMHg4CQlAIG1ha2Ugc3VyZSBETEwgb24gKGVzMiBiaXQgcG9zKQotCXN0cgly MTAsIFtyMTFdCQlAIGNvbW1pdCB0byBETExBX0NUUkwKLQlhZGQJcjExLCByMTEsICMweDgJCUAg bW92ZSB0byBkbGxiCi0Jc3RyCXIxMCwgW3IxMV0JCUAgaGl0IERMTEIgYWxzbwotCi0JbW92CXI0 LCAjMHg4MDAJCUAgcmVsb2NrIHRpbWUgKG1pbiAweDQwMCBMMyBjbG9ja3MpCi13YWl0X2RsbF9s b2NrOgotCXN1YnMJcjQsIHI0LCAjMHgxCi0JYm5lCXdhaXRfZGxsX2xvY2sKLQlub3AKLQlsZG1m ZAlzcCEsIHtyMC1yMTIsIHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCi0KLW9tYXAyNDN4 X3NzcF9zZXRfY29uZmlnOgotCS53b3JkIE9NQVAyNDMwX1BSQ01fQ0xLQ0ZHX0NUUkwKLW9tYXAy NDN4X3NzcF9wbGxfY3RsOgotCS53b3JkIE9NQVAyNDMwX0NNX1JFR0FERFIoUExMX01PRCwgQ01f Q0xLRU4pCi1vbWFwMjQzeF9zc3BfcGxsX3N0YXQ6Ci0JLndvcmQgT01BUDI0MzBfQ01fUkVHQURE UihQTExfTU9ELCBDTV9JRExFU1QpCi1vbWFwMjQzeF9zc3BfcGxsX2RpdjoKLQkud29yZCBPTUFQ MjQzMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDEpCi1vbWFwMjQzeF9zc3Bfc2RyY19y ZnI6Ci0JLndvcmQgT01BUDI0M1hfU0RSQ19SRUdBRERSKFNEUkNfUkZSX0NUUkxfMCkKLW9tYXAy NDN4X3NzcF9kbGxhX2N0cmw6Ci0JLndvcmQgT01BUDI0M1hfU0RSQ19SRUdBRERSKFNEUkNfRExM QV9DVFJMKQotCi1FTlRSWShvbWFwMjQzeF9zcmFtX3NldF9wcmNtX3N6KQotCS53b3JkCS4gLSBv bWFwMjQzeF9zcmFtX3NldF9wcmNtCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3Vz Yi10dXNiNjAxMC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi91c2ItdHVzYjYwMTAuYwpkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjQ2YzI1NGMyYmM0Li4wMDAwMDAwMDAwMDAKLS0tIGEv YXJjaC9hcm0vbWFjaC1vbWFwMi91c2ItdHVzYjYwMTAuYworKysgL2Rldi9udWxsCkBAIC0xLDIx NyArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgot ICogbGludXgvYXJjaC9hcm0vbWFjaC1vbWFwMi91c2ItdHVzYjYwMTAuYwotICoKLSAqIENvcHly aWdodCAoQykgMjAwNiBOb2tpYSBDb3Jwb3JhdGlvbgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9l cnIuaD4KLSNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5o PgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNp bmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9leHBvcnQu aD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL3VzYi1vbWFwLmg+Ci0KLSNpbmNsdWRl IDxsaW51eC91c2IvbXVzYi5oPgotCi0jaW5jbHVkZSAidXNiLXR1c2I2MDEwLmgiCi0jaW5jbHVk ZSAiZ3BtYy5oIgotCi1zdGF0aWMgdTgJCWFzeW5jX2NzLCBzeW5jX2NzOwotc3RhdGljIHVuc2ln bmVkCQlyZWZjbGtfcHNlYzsKLQotc3RhdGljIHN0cnVjdCBncG1jX3NldHRpbmdzIHR1c2JfYXN5 bmMgPSB7Ci0JLndhaXRfb25fcmVhZAk9IHRydWUsCi0JLndhaXRfb25fd3JpdGUJPSB0cnVlLAot CS5kZXZpY2Vfd2lkdGgJPSBHUE1DX0RFVldJRFRIXzE2QklULAotCS5tdXhfYWRkX2RhdGEJPSBH UE1DX01VWF9BRCwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgZ3BtY19zZXR0aW5ncyB0dXNiX3N5bmMg PSB7Ci0JLmJ1cnN0X3JlYWQJPSB0cnVlLAotCS5idXJzdF93cml0ZQk9IHRydWUsCi0JLnN5bmNf cmVhZAk9IHRydWUsCi0JLnN5bmNfd3JpdGUJPSB0cnVlLAotCS53YWl0X29uX3JlYWQJPSB0cnVl LAotCS53YWl0X29uX3dyaXRlCT0gdHJ1ZSwKLQkuYnVyc3RfbGVuCT0gR1BNQ19CVVJTVF8xNiwK LQkuZGV2aWNlX3dpZHRoCT0gR1BNQ19ERVZXSURUSF8xNkJJVCwKLQkubXV4X2FkZF9kYXRhCT0g R1BNQ19NVVhfQUQsCi19OwotCi0vKiBOT1RFOiAgdGltaW5ncyBhcmUgZnJvbSB0dXNiIDYwMTAg ZGF0YXNoZWV0IFJldiAxLjgsIDEyLVNlcHQgMjAwNiAqLwotCi1zdGF0aWMgaW50IHR1c2Jfc2V0 X2FzeW5jX21vZGUodW5zaWduZWQgc3lzY2xrX3BzKQotewotCXN0cnVjdCBncG1jX2RldmljZV90 aW1pbmdzIGRldl90OwotCXN0cnVjdCBncG1jX3RpbWluZ3MJdDsKLQl1bnNpZ25lZAkJdF9hY3Nu aF9hZHZuaCA9IHN5c2Nsa19wcyArIDMwMDA7Ci0KLQltZW1zZXQoJmRldl90LCAwLCBzaXplb2Yo ZGV2X3QpKTsKLQotCWRldl90LnRfY2Vhc3UgPSA4ICogMTAwMDsKLQlkZXZfdC50X2F2ZGFzdSA9 IHRfYWNzbmhfYWR2bmggLSA3MDAwOwotCWRldl90LnRfY2VfYXZkID0gMTAwMDsKLQlkZXZfdC50 X2F2ZHBfciA9IHRfYWNzbmhfYWR2bmg7Ci0JZGV2X3QudF9vZWFzdSA9IHRfYWNzbmhfYWR2bmgg KyAxMDAwOwotCWRldl90LnRfb2UgPSAzMDA7Ci0JZGV2X3QudF9jZXpfciA9IDcwMDA7Ci0JZGV2 X3QudF9jZXpfdyA9IGRldl90LnRfY2V6X3I7Ci0JZGV2X3QudF9hdmRwX3cgPSB0X2Fjc25oX2Fk dm5oOwotCWRldl90LnRfd2Vhc3UgPSB0X2Fjc25oX2Fkdm5oICsgMTAwMDsKLQlkZXZfdC50X3dw bCA9IDMwMDsKLQlkZXZfdC5jeWNfYWF2ZGhfd2UgPSAxOwotCi0JZ3BtY19jYWxjX3RpbWluZ3Mo JnQsICZ0dXNiX2FzeW5jLCAmZGV2X3QpOwotCi0JcmV0dXJuIGdwbWNfY3Nfc2V0X3RpbWluZ3Mo YXN5bmNfY3MsICZ0LCAmdHVzYl9hc3luYyk7Ci19Ci0KLXN0YXRpYyBpbnQgdHVzYl9zZXRfc3lu Y19tb2RlKHVuc2lnbmVkIHN5c2Nsa19wcykKLXsKLQlzdHJ1Y3QgZ3BtY19kZXZpY2VfdGltaW5n cyBkZXZfdDsKLQlzdHJ1Y3QgZ3BtY190aW1pbmdzCXQ7Ci0JdW5zaWduZWQJCXRfc2NzbmhfYWR2 bmggPSBzeXNjbGtfcHMgKyAzMDAwOwotCi0JbWVtc2V0KCZkZXZfdCwgMCwgc2l6ZW9mKGRldl90 KSk7Ci0KLQlkZXZfdC5jbGsgPSAxMTEwMDsKLQlkZXZfdC50X2JhY2MgPSAxMDAwOwotCWRldl90 LnRfY2VzID0gMTAwMDsKLQlkZXZfdC50X2NlYXN1ID0gOCAqIDEwMDA7Ci0JZGV2X3QudF9hdmRh c3UgPSB0X3Njc25oX2Fkdm5oIC0gNzAwMDsKLQlkZXZfdC50X2NlX2F2ZCA9IDEwMDA7Ci0JZGV2 X3QudF9hdmRwX3IgPSB0X3Njc25oX2Fkdm5oOwotCWRldl90LmN5Y19hYXZkaF9vZSA9IDM7Ci0J ZGV2X3QuY3ljX29lID0gNTsKLQlkZXZfdC50X2NlX3JkeXogPSA3MDAwOwotCWRldl90LnRfYXZk cF93ID0gdF9zY3NuaF9hZHZuaDsKLQlkZXZfdC5jeWNfYWF2ZGhfd2UgPSAzOwotCWRldl90LmN5 Y193cGwgPSA2OwotCi0JZ3BtY19jYWxjX3RpbWluZ3MoJnQsICZ0dXNiX3N5bmMsICZkZXZfdCk7 Ci0KLQlyZXR1cm4gZ3BtY19jc19zZXRfdGltaW5ncyhzeW5jX2NzLCAmdCwgJnR1c2Jfc3luYyk7 Ci19Ci0KLS8qIHR1c2IgZHJpdmVyIGNhbGxzIHRoaXMgd2hlbiBpdCBjaGFuZ2VzIHRoZSBjaGlw J3MgY2xvY2tpbmcgKi8KLXN0YXRpYyBpbnQgdHVzYjYwMTBfcGxhdGZvcm1fcmV0aW1lKHVuc2ln bmVkIGlzX3JlZmNsaykKLXsKLQlzdGF0aWMgY29uc3QgY2hhcgllcnJvcltdID0KLQkJS0VSTl9F UlIgInR1c2I2MDEwICVzIHJldGltZSBlcnJvciAlZFxuIjsKLQotCXVuc2lnbmVkCXN5c2Nsa19w czsKLQlpbnQJCXN0YXR1czsKLQotCWlmICghcmVmY2xrX3BzZWMpCi0JCXJldHVybiAtRU5PREVW OwotCi0Jc3lzY2xrX3BzID0gaXNfcmVmY2xrID8gcmVmY2xrX3BzZWMgOiBUVVNCNjAxMF9PU0ND TEtfNjA7Ci0KLQlzdGF0dXMgPSB0dXNiX3NldF9hc3luY19tb2RlKHN5c2Nsa19wcyk7Ci0JaWYg KHN0YXR1cyA8IDApIHsKLQkJcHJpbnRrKGVycm9yLCAiYXN5bmMiLCBzdGF0dXMpOwotCQlnb3Rv IGRvbmU7Ci0JfQotCXN0YXR1cyA9IHR1c2Jfc2V0X3N5bmNfbW9kZShzeXNjbGtfcHMpOwotCWlm IChzdGF0dXMgPCAwKQotCQlwcmludGsoZXJyb3IsICJzeW5jIiwgc3RhdHVzKTsKLWRvbmU6Ci0J cmV0dXJuIHN0YXR1czsKLX0KLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSB0dXNiX3Jlc291cmNl c1tdID0gewotCS8qIE9yZGVyIGlzIHNpZ25pZmljYW50ISAgVGhlIHN0YXJ0L2VuZCBmaWVsZHMK LQkgKiBhcmUgdXBkYXRlZCBkdXJpbmcgc2V0dXAuLgotCSAqLwotCXsgLyogQXN5bmNocm9ub3Vz IGFjY2VzcyAqLwotCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCXsgLyogU3luY2hy b25vdXMgYWNjZXNzICovCi0JCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi19OwotCi1z dGF0aWMgdTY0IHR1c2JfZG1hbWFzayA9IH4odTMyKTA7Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlIHR1c2JfZGV2aWNlID0gewotCS5uYW1lCQk9ICJtdXNiLXR1c2IiLAotCS5pZAkJ PSAtMSwKLQkuZGV2ID0gewotCQkuZG1hX21hc2sJCT0gJnR1c2JfZG1hbWFzaywKLQkJLmNvaGVy ZW50X2RtYV9tYXNrCT0gMHhmZmZmZmZmZiwKLQl9LAotCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlf U0laRSh0dXNiX3Jlc291cmNlcyksCi0JLnJlc291cmNlCT0gdHVzYl9yZXNvdXJjZXMsCi19Owot Ci0KLS8qIHRoaXMgbWF5IGJlIGNhbGxlZCBvbmx5IGZyb20gYm9hcmQtKi5jIHNldHVwIGNvZGUg Ki8KLWludCBfX2luaXQgdHVzYjYwMTBfc2V0dXBfaW50ZXJmYWNlKHN0cnVjdCBtdXNiX2hkcmNf cGxhdGZvcm1fZGF0YSAqZGF0YSwKLQkJdW5zaWduZWQgaW50IHBzX3JlZmNsaywgdW5zaWduZWQg aW50IHdhaXRwaW4sCi0JCXVuc2lnbmVkIGludCBhc3luYywgdW5zaWduZWQgaW50IHN5bmMsCi0J CXVuc2lnbmVkIGludCBkbWFjaGFuKQotewotCWludAkJc3RhdHVzOwotCXN0YXRpYyBjaGFyCWVy cm9yW10gX19pbml0ZGF0YSA9Ci0JCUtFUk5fRVJSICJ0dXNiNjAxMCBpbml0IGVycm9yICVkLCAl ZFxuIjsKLQotCS8qIEFTWU5DIHJlZ2lvbiwgcHJpbWFyaWx5IGZvciBQSU8gKi8KLQlzdGF0dXMg PSBncG1jX2NzX3JlcXVlc3QoYXN5bmMsIFNaXzE2TSwgKHVuc2lnbmVkIGxvbmcgKikKLQkJCQkm dHVzYl9yZXNvdXJjZXNbMF0uc3RhcnQpOwotCWlmIChzdGF0dXMgPCAwKSB7Ci0JCXByaW50ayhl cnJvciwgMSwgc3RhdHVzKTsKLQkJcmV0dXJuIHN0YXR1czsKLQl9Ci0JdHVzYl9yZXNvdXJjZXNb MF0uZW5kID0gdHVzYl9yZXNvdXJjZXNbMF0uc3RhcnQgKyAweDlmZjsKLQl0dXNiX2FzeW5jLndh aXRfcGluID0gd2FpdHBpbjsKLQlhc3luY19jcyA9IGFzeW5jOwotCi0Jc3RhdHVzID0gZ3BtY19j c19wcm9ncmFtX3NldHRpbmdzKGFzeW5jX2NzLCAmdHVzYl9hc3luYyk7Ci0JaWYgKHN0YXR1cyA8 IDApCi0JCXJldHVybiBzdGF0dXM7Ci0KLQkvKiBTWU5DIHJlZ2lvbiwgcHJpbWFyaWx5IGZvciBE TUEgKi8KLQlzdGF0dXMgPSBncG1jX2NzX3JlcXVlc3Qoc3luYywgU1pfMTZNLCAodW5zaWduZWQg bG9uZyAqKQotCQkJCSZ0dXNiX3Jlc291cmNlc1sxXS5zdGFydCk7Ci0JaWYgKHN0YXR1cyA8IDAp IHsKLQkJcHJpbnRrKGVycm9yLCAyLCBzdGF0dXMpOwotCQlyZXR1cm4gc3RhdHVzOwotCX0KLQl0 dXNiX3Jlc291cmNlc1sxXS5lbmQgPSB0dXNiX3Jlc291cmNlc1sxXS5zdGFydCArIDB4OWZmOwot CXR1c2Jfc3luYy53YWl0X3BpbiA9IHdhaXRwaW47Ci0Jc3luY19jcyA9IHN5bmM7Ci0KLQlzdGF0 dXMgPSBncG1jX2NzX3Byb2dyYW1fc2V0dGluZ3Moc3luY19jcywgJnR1c2Jfc3luYyk7Ci0JaWYg KHN0YXR1cyA8IDApCi0JCXJldHVybiBzdGF0dXM7Ci0KLQkvKiBzZXQgdXAgbWVtb3J5IHRpbWlu Z3MgLi4uIGNhbiBzcGVlZCB0aGVtIHVwIGxhdGVyICovCi0JaWYgKCFwc19yZWZjbGspIHsKLQkJ cHJpbnRrKGVycm9yLCA0LCBzdGF0dXMpOwotCQlyZXR1cm4gLUVOT0RFVjsKLQl9Ci0JcmVmY2xr X3BzZWMgPSBwc19yZWZjbGs7Ci0Jc3RhdHVzID0gdHVzYjYwMTBfcGxhdGZvcm1fcmV0aW1lKDEp OwotCWlmIChzdGF0dXMgPCAwKSB7Ci0JCXByaW50ayhlcnJvciwgNSwgc3RhdHVzKTsKLQkJcmV0 dXJuIHN0YXR1czsKLQl9Ci0KLQkvKiBmaW5pc2ggZGV2aWNlIHNldHVwIC4uLiAqLwotCWlmICgh ZGF0YSkgewotCQlwcmludGsoZXJyb3IsIDYsIHN0YXR1cyk7Ci0JCXJldHVybiAtRU5PREVWOwot CX0KLQl0dXNiX2RldmljZS5kZXYucGxhdGZvcm1fZGF0YSA9IGRhdGE7Ci0KLQkvKiBzbyBmYXIg c28gZ29vZCAuLi4gcmVnaXN0ZXIgdGhlIGRldmljZSAqLwotCXN0YXR1cyA9IHBsYXRmb3JtX2Rl dmljZV9yZWdpc3RlcigmdHVzYl9kZXZpY2UpOwotCWlmIChzdGF0dXMgPCAwKSB7Ci0JCXByaW50 ayhlcnJvciwgNywgc3RhdHVzKTsKLQkJcmV0dXJuIHN0YXR1czsKLQl9Ci0JcmV0dXJuIDA7Ci19 CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3VzYi10dXNiNjAxMC5oIGIvYXJjaC9h cm0vbWFjaC1vbWFwMi91c2ItdHVzYjYwMTAuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggZDIxMGZmNjIzOGMyLi4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi91 c2ItdHVzYjYwMTAuaAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS8qIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCi0KLSNpZm5kZWYgX19VU0JfVFVTQjYwMTBfSAot I2RlZmluZSBfX1VTQl9UVVNCNjAxMF9ICi0KLWV4dGVybiBpbnQgX19pbml0IHR1c2I2MDEwX3Nl dHVwX2ludGVyZmFjZSgKLQkJc3RydWN0IG11c2JfaGRyY19wbGF0Zm9ybV9kYXRhICpkYXRhLAot CQl1bnNpZ25lZCBpbnQgcHNfcmVmY2xrLCB1bnNpZ25lZCBpbnQgd2FpdHBpbiwKLQkJdW5zaWdu ZWQgaW50IGFzeW5jX2NzLCB1bnNpZ25lZCBpbnQgc3luY19jcywKLQkJdW5zaWduZWQgaW50IGRt YWNoYW4pOwotCi0jZW5kaWYgLyogX19VU0JfVFVTQjYwMTBfSCAqLwpkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vbWFjaC1vbWFwMi92b2x0YWdlLmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL3ZvbHRhZ2Uu aAppbmRleCBlNjEwZjYzYTAyMGQuLmNiYWMzZjE1MTkwMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0v bWFjaC1vbWFwMi92b2x0YWdlLmgKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi92b2x0YWdlLmgK QEAgLTE1Niw3ICsxNTYsNiBAQCBpbnQgb21hcF92b2x0YWdlX3JlZ2lzdGVyX3BtaWMoc3RydWN0 IHZvbHRhZ2Vkb21haW4gKnZvbHRkbSwKIAkJCSAgICAgICBzdHJ1Y3Qgb21hcF92b2x0ZG1fcG1p YyAqcG1pYyk7CiBpbnQgb21hcF92b2x0YWdlX2xhdGVfaW5pdCh2b2lkKTsKIAotZXh0ZXJuIHZv aWQgb21hcDJ4eHhfdm9sdGFnZWRvbWFpbnNfaW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIG9tYXAz eHh4X3ZvbHRhZ2Vkb21haW5zX2luaXQodm9pZCk7CiBleHRlcm4gdm9pZCBvbWFwNDR4eF92b2x0 YWdlZG9tYWluc19pbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgb21hcDU0eHhfdm9sdGFnZWRvbWFp bnNfaW5pdCh2b2lkKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvdm9sdGFnZWRv bWFpbnMyeHh4X2RhdGEuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvdm9sdGFnZWRvbWFpbnMyeHh4 X2RhdGEuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWJjMTE2ZmUzYmE5Li4wMDAw MDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi92b2x0YWdlZG9tYWluczJ4eHhfZGF0 YS5jCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIE9NQVAzIHZvbHRhZ2UgZG9tYWluIGRhdGEKLSAq Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KLSAqLwotI2lu Y2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLQotI2luY2x1 ZGUgInZvbHRhZ2UuaCIKLQotc3RhdGljIHN0cnVjdCB2b2x0YWdlZG9tYWluIG9tYXAyX3ZvbHRk bV9jb3JlID0gewotCS5uYW1lID0gImNvcmUiLAotfTsKLQotc3RhdGljIHN0cnVjdCB2b2x0YWdl ZG9tYWluIG9tYXAyX3ZvbHRkbV93a3VwID0gewotCS5uYW1lID0gIndha2V1cCIsCi19OwotCi1z dGF0aWMgc3RydWN0IHZvbHRhZ2Vkb21haW4gKnZvbHRhZ2Vkb21haW5zX29tYXAyW10gX19pbml0 ZGF0YSA9IHsKLQkmb21hcDJfdm9sdGRtX2NvcmUsCi0JJm9tYXAyX3ZvbHRkbV93a3VwLAotCU5V TEwsCi19OwotCi12b2lkIF9faW5pdCBvbWFwMnh4eF92b2x0YWdlZG9tYWluc19pbml0KHZvaWQp Ci17Ci0Jdm9sdGRtX2luaXQodm9sdGFnZWRvbWFpbnNfb21hcDIpOwotfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9jcnlwdG8vS2NvbmZpZyBiL2RyaXZlcnMvY3J5cHRvL0tjb25maWcKaW5kZXggMDE4 OWRmZGNiYmUxLi5hMzgzZmY4ZjQ0NmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRvL0tjb25m aWcKKysrIGIvZHJpdmVycy9jcnlwdG8vS2NvbmZpZwpAQCAtMzM3LDcgKzMzNyw3IEBAIGNvbmZp ZyBDUllQVE9fREVWX09NQVBfU0hBTQogCiBjb25maWcgQ1JZUFRPX0RFVl9PTUFQX0FFUwogCXRy aXN0YXRlICJTdXBwb3J0IGZvciBPTUFQIEFFUyBodyBlbmdpbmUiCi0JZGVwZW5kcyBvbiBBUkNI X09NQVAyIHx8IEFSQ0hfT01BUDMgfHwgQVJDSF9PTUFQMlBMVVMKKwlkZXBlbmRzIG9uIEFSQ0hf T01BUDMgfHwgQVJDSF9PTUFQMlBMVVMKIAlzZWxlY3QgQ1JZUFRPX0FFUwogCXNlbGVjdCBDUllQ VE9fU0tDSVBIRVIKIAlzZWxlY3QgQ1JZUFRPX0VOR0lORQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS90aS9vbWFwL0tjb25maWcgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Rp L29tYXAvS2NvbmZpZwppbmRleCBhOWRiZTEwOTc3NzUuLmM0MTgxMmIzMjRhZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS90aS9vbWFwL0tjb25maWcKKysrIGIvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS90aS9vbWFwL0tjb25maWcKQEAgLTksOSArOSw5IEBAIGNvbmZpZyBWSURF T19PTUFQMl9WT1VUCiAJZGVwZW5kcyBvbiBWNExfUExBVEZPUk1fRFJJVkVSUwogCWRlcGVuZHMg b24gTU1VCiAJZGVwZW5kcyBvbiBGQl9PTUFQMiB8fCAoQ09NUElMRV9URVNUICYmIEZCX09NQVAy PW4pCi0JZGVwZW5kcyBvbiBBUkNIX09NQVAyIHx8IEFSQ0hfT01BUDMgfHwgQ09NUElMRV9URVNU CisJZGVwZW5kcyBvbiBBUkNIX09NQVAzIHx8IENPTVBJTEVfVEVTVAogCWRlcGVuZHMgb24gVklE RU9fREVWCiAJc2VsZWN0IFZJREVPQlVGMl9ETUFfQ09OVElHCi0Jc2VsZWN0IE9NQVAyX1ZSRkIg aWYgQVJDSF9PTUFQMiB8fCBBUkNIX09NQVAzCisJc2VsZWN0IE9NQVAyX1ZSRkIgaWYgQVJDSF9P TUFQMwogCWhlbHAKIAkgIFY0TDIgRGlzcGxheSBkcml2ZXIgc3VwcG9ydCBmb3IgT01BUDIvMyBi YXNlZCBib2FyZHMuCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL29uZW5hbmQvS2NvbmZp ZyBiL2RyaXZlcnMvbXRkL25hbmQvb25lbmFuZC9LY29uZmlnCmluZGV4IDdkNTc4MzZiZjMyZi4u OGEzNjJmZDViZmM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL29uZW5hbmQvS2NvbmZp ZworKysgYi9kcml2ZXJzL210ZC9uYW5kL29uZW5hbmQvS2NvbmZpZwpAQCAtMjMsOCArMjMsOCBA QCBjb25maWcgTVREX09ORU5BTkRfR0VORVJJQwogCSAgU3VwcG9ydCBmb3IgT25lTkFORCBmbGFz aCB2aWEgcGxhdGZvcm0gZGV2aWNlIGRyaXZlci4KIAogY29uZmlnIE1URF9PTkVOQU5EX09NQVAy Ci0JdHJpc3RhdGUgIk9uZU5BTkQgb24gT01BUDIvT01BUDMgc3VwcG9ydCIKLQlkZXBlbmRzIG9u IEFSQ0hfT01BUDIgfHwgQVJDSF9PTUFQMyB8fCAoQ09NUElMRV9URVNUICYmIEFSTSkKKwl0cmlz dGF0ZSAiT25lTkFORCBvbiBPTUFQMyBzdXBwb3J0IgorCWRlcGVuZHMgb24gQVJDSF9PTUFQMyB8 fCAoQ09NUElMRV9URVNUICYmIEFSTSkKIAlkZXBlbmRzIG9uIE9GCiAJZGVwZW5kcyBvbiBPTUFQ X0dQTUMKIAloZWxwCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBm Yi9LY29uZmlnIGIvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvS2NvbmZpZwppbmRl eCAyZDIwZTc5YWRlZmMuLmQ4MjI3ZjQzMjZiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9m YmRldi9vbWFwMi9vbWFwZmIvS2NvbmZpZworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAy L29tYXBmYi9LY29uZmlnCkBAIC04LDcgKzgsNyBAQCBtZW51Y29uZmlnIEZCX09NQVAyCiAJZGVw ZW5kcyBvbiBEUk1fT01BUCA9IG4KIAlkZXBlbmRzIG9uIEdQSU9MSUIKIAlzZWxlY3QgRkJfT01B UDJfRFNTCi0Jc2VsZWN0IE9NQVAyX1ZSRkIgaWYgQVJDSF9PTUFQMiB8fCBBUkNIX09NQVAzCisJ c2VsZWN0IE9NQVAyX1ZSRkIgaWYgQVJDSF9PTUFQMwogCXNlbGVjdCBGQl9JT01FTV9IRUxQRVJT CiAJaGVscAogCSAgRnJhbWUgYnVmZmVyIGRyaXZlciBmb3IgT01BUDIrIGJhc2VkIGJvYXJkcy4K ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2xrL3RpLmggYi9pbmNsdWRlL2xpbnV4L2Nsay90 aS5oCmluZGV4IDU0YTNmYTM3MDAwNC4uY2ExNTExNTJkYTE5IDEwMDY0NAotLS0gYS9pbmNsdWRl L2xpbnV4L2Nsay90aS5oCisrKyBiL2luY2x1ZGUvbGludXgvY2xrL3RpLmgKQEAgLTI2NSwxMiAr MjY1LDYgQEAgaW50IG9tYXAyX2Nsa19kaXNhYmxlX2F1dG9pZGxlX2FsbCh2b2lkKTsKIGludCBv bWFwMl9jbGtfZW5hYmxlX2F1dG9pZGxlX2FsbCh2b2lkKTsKIGludCBvbWFwMl9jbGtfYWxsb3df aWRsZShzdHJ1Y3QgY2xrICpjbGspOwogaW50IG9tYXAyX2Nsa19kZW55X2lkbGUoc3RydWN0IGNs ayAqY2xrKTsKLXVuc2lnbmVkIGxvbmcgb21hcDJfZHBsbGNvcmVfcmVjYWxjKHN0cnVjdCBjbGtf aHcgKmh3LAotCQkJCSAgICB1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlKTsKLWludCBvbWFwMl9y ZXByb2dyYW1fZHBsbGNvcmUoc3RydWN0IGNsa19odyAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUs Ci0JCQkgICAgIHVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGUpOwotdm9pZCBvbWFwMnh4eF9jbGt0 X2RwbGxjb3JlX2luaXQoc3RydWN0IGNsa19odyAqaHcpOwotdm9pZCBvbWFwMnh4eF9jbGt0X3Zw c19pbml0KHZvaWQpOwogdW5zaWduZWQgbG9uZyBvbWFwMl9nZXRfZHBsbF9yYXRlKHN0cnVjdCBj bGtfaHdfb21hcCAqY2xrKTsKIAogdm9pZCB0aV9kdF9jbGtfaW5pdF9yZXRyeV9jbGtzKHZvaWQp OwpAQCAtMzIyLDggKzMxNiw2IEBAIHZvaWQgb21hcDNfbm9uY29yZV9kcGxsX3Jlc3RvcmVfY29u dGV4dChzdHJ1Y3QgY2xrX2h3ICpodyk7CiBpbnQgb21hcDNfY29yZV9kcGxsX3NhdmVfY29udGV4 dChzdHJ1Y3QgY2xrX2h3ICpodyk7CiB2b2lkIG9tYXAzX2NvcmVfZHBsbF9yZXN0b3JlX2NvbnRl eHQoc3RydWN0IGNsa19odyAqaHcpOwogCi1leHRlcm4gY29uc3Qgc3RydWN0IGNsa19od19vbWFw X29wcyBjbGtod29wc19vbWFwMnh4eF9kcGxsOwotCiAjaWZkZWYgQ09ORklHX0FUQUdTCiBpbnQg b21hcDM0MzBfY2xrX2xlZ2FjeV9pbml0KHZvaWQpOwogaW50IG9tYXAzNDMwZXMxX2Nsa19sZWdh Y3lfaW5pdCh2b2lkKTsKLS0gCjIuNTMuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxp c3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQv Cg==