From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id uPEZLT2HvWJhfQEAbAwnHQ (envelope-from ) for ; Thu, 30 Jun 2022 13:21:33 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id WMS7LD2HvWK/PwEAauVa8A (envelope-from ) for ; Thu, 30 Jun 2022 13:21:33 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A794AF528 for ; Thu, 30 Jun 2022 13:21:28 +0200 (CEST) Received: from localhost ([::1]:39030 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o6sEh-0004ql-Nl for larch@yhetil.org; Thu, 30 Jun 2022 07:21:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60276) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o6sE5-0004q8-FB for help-guix@gnu.org; Thu, 30 Jun 2022 07:20:49 -0400 Received: from mail-40133.protonmail.ch ([185.70.40.133]:54552) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o6sDx-000170-Rk; Thu, 30 Jun 2022 07:20:48 -0400 Date: Thu, 30 Jun 2022 11:20:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1656588027; x=1656847227; bh=3XpChJiGUJQL7JXpxjCRc0reUFU+hSa3PMPGR4NwcMQ=; h=Date:To:From:Cc:Reply-To:Subject:Message-ID:Feedback-ID:From:To: Cc:Date:Subject:Reply-To:Feedback-ID:Message-ID; b=zU0/RwD9zjEeCysivjE2QXCm61EdYKuA1RcXVnh9nz6cNVtr96PCBJHfWVztydOc6 II0z5WZvzeOgTBI7DwVrXk5ZXcsd0VfMNvwZKyNSXpTLX/vYpoZTR1WaFEslqhcgqp o18A9GLtsMTbaCr46DS9xMZON5wL55yr8ktZSpDd5ADVmPL4dQ8OMuG/XtqBf7FyuY Yd4nXinabpEg2Omzj+K5m5yLkprgbbRdi3BBiYV/WTJCnCmpkdbEcCO8yfzMEDebEN GkA0Ku6lFDZzPHN1KAbuZs50BsvCB9ndAihhm+Xe8ORlWa0u+oNQulwHPci8CKiaoj JdZLRgLIsCLOA== To: help-guix Cc: Mathieu Othacehe , "janneke@gnu.org" Subject: Building linux and u-boot for aarch64 Message-ID: Feedback-ID: 14143818:user:proton MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_wLGjj3TpgmpXpbjXmCC5gK7zkHGQD3edHaBk1xUww" Received-SPF: pass client-ip=185.70.40.133; envelope-from=phodina@protonmail.com; helo=mail-40133.protonmail.ch X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: "Help-Guix" Reply-to: phodina X-ACL-Warn: , phodina From: phodina via X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1656588089; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=eUrBJDpIljLAJqjiQWoMXlhSmT1xfdEt9q5GwHRPqNA=; b=gc6ZVpdP6D5CF/HIqju3i4g866v4+xzII6KxC0x23jRMq0a/w7EguWOUf1op/6igR6QeAv f4V1pDeeDd6Vwhedtpa9JbmFqyiu2jiD3zBUOtBa9NYzYxLP/Jc6uxIC7zADGNTYxbpxZ4 VbnyTOtEJuObxo76ThFBU191Jh5Wku9AGX70FCeNvN4F99YMX4mUohISymq6/iPZqnZo4w IYgFA9RlJiPf//u3DQ2+lvQxvYeFQLd+9tPgduBsN0tdaVj1D80++kDgbrIr4UFF2R5/Bx +0TqZPPtNdr3BHidzojLpExedCgpX8obBbqWgsdn95dMr4MHYG0r01b4lCU83g== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1656588089; a=rsa-sha256; cv=none; b=aEacNGjJag2iGDM6gEvgl+AFly261gSb9HFNRj9ZWrvMGvRG6MLDPDG/35dC9UNGfXrCAV fqcFGeVyNzrf719svtmAwf6YVygQ47VEJEMVZnxI/2FBlrv6HJalSbuc4TgNI6a/F5cgYH bL1rUFkw5auM3TqG2CjrtOzBIdt+fPG7RljEZTIypNTsSQ1z/EzgxAt4GqFUPM73JwIqiw LPIYts4nUPKpMu8HWiLkk+UHMnUaztScUms4KQAK/5G2ZpS4D9dGwl6FEodqg4pLAVSxdw Z5mkuw6viA50sOyYb005mzgW0jkSHPa4pGQHasQHZJBlhIqpdTjO4auxfc+8Sg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=protonmail.com header.s=protonmail3 header.b="zU0/RwD9"; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -2.95 Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=protonmail.com header.s=protonmail3 header.b="zU0/RwD9"; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: A794AF528 X-Spam-Score: -2.95 X-Migadu-Scanner: scn0.migadu.com X-TUID: sZ7wTFyVkZAN This is a multi-part message in MIME format. --b1_wLGjj3TpgmpXpbjXmCC5gK7zkHGQD3edHaBk1xUww Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGksCgpJJ20gYXR0ZW1wdGluZyB0byBidWlsZCB0aGUgTGludXgga2VybmVsIGFuZCB1LWJvb3Qg Zm9yIEFSTTY0IHRhcmdldCAtIGVpbmsgdGFibGV0LgoKVW5mb3R1dG5hdGVseSB0aGUgcGF0Y2hl cyBhcmUgbm90IHlldCBpbiB0aGUgdXBzdHJlYW0gc28gSSBoYWQgdG8gdHdlYWsgbGl0dGxlIGJp dCBpbiB0aGUgZ251L3BhY2thZ2VzL2xpbnV4LnNjbSBhbmQgZ251L2Jvb3Rsb2FkZXIvYm9vdGxv YWRlcnMuc2NtIGZpbGVzLgoKSG93ZXZlciwgdGhlIGtlcm5lbCB3b24ndCBzdGlsbCBidWlsZC4g QW55IGlkZWFzIG9uIGhvdyB0byBmaXggdGhhdD8KClRoaXMgaXMgbXkgZmlyc3QgcG9ydGluZyBu ZXcgZW1iZWRkZWQgYm9hcmQgaW4gR3VpeCBhbmQgaXQncyBpdGVyZXN0aW5nIHRvIGxlYXJuIG1v cmUgb2Ygd2hhdCdzIGdvaW5nIHVuZGVyIHRoZSBsaWQuCgpGSVkgbXkgaW50ZXJlc3QgaW4gdGhp cyB0byBoYXZlIHNvbWUgbGlicmUgZWluayByZWFkZXIgYXMgd2VsbCBhcyBub3RlcGFkIGF2YWls YWJsZSBvbiB0aGUgbWFya2V0LgoKS2luZCByZWdhcmRzLApQZXRy --b1_wLGjj3TpgmpXpbjXmCC5gK7zkHGQD3edHaBk1xUww Content-Type: text/x-patch; name=0002-gnu-u-boot-Remove-input-labels.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0002-gnu-u-boot-Remove-input-labels.patch RnJvbSA3MGZlMDRhMTllNzZkMWRlZDc0MTQ4MGZjODkyMjYzNmRhYjk0MmY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRyIEhvZGluYSA8cGhvZGluYUBwcm90b25tYWlsLmNvbT4K RGF0ZTogVGh1LCAzMCBKdW4gMjAyMiAxMToxNDoyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi83 XSBnbnU6IHUtYm9vdDogUmVtb3ZlIGlucHV0IGxhYmVscy4KCiogcGFja2FnZXMvYm9vdGxvYWRl cnMuc2NtICh1LWJvb3QpOiBSZW1vdmUgaW5wdXQgbGFiZWxzLgoKZGlmZiAtLWdpdCBhL2dudS9w YWNrYWdlcy9ib290bG9hZGVycy5zY20gYi9nbnUvcGFja2FnZXMvYm9vdGxvYWRlcnMuc2NtCmlu ZGV4IDcxYTEwZjU0ZDUuLjlmNWUyNmZkMjggMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9ib290 bG9hZGVycy5zY20KKysrIGIvZ251L3BhY2thZ2VzL2Jvb3Rsb2FkZXJzLnNjbQpAQCAtMTYsNiAr MTYsNyBAQAogOzs7IENvcHlyaWdodCDCqSAyMDIxIFZpbmNlbnQgTGVnb2xsIDx2aW5jZW50Lmxl Z29sbEBnbWFpbC5jb20+CiA7OzsgQ29weXJpZ2h0IMKpIDIwMjEgQnJpY2UgV2FlZ2VuZWlyZSA8 YnJpY2VAd2FlZ2VuZWkucmU+CiA7OzsgQ29weXJpZ2h0IMKpIDIwMjIgRGVuaXMgJ0dOVXRvbycg Q2FyaWtsaSA8R05VdG9vQGN5YmVyZGltZW5zaW9uLm9yZz4KKzs7OyBDb3B5cmlnaHQgwqkgMjAy MiBQZXRyIEhvZGluYSA8cGhvZGluYUBwcm90b25tYWlsLmNvbT4KIDs7OwogOzs7IFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgogOzs7CkBAIC01NDUsMjAgKzU0NiwyMCBAQCAoZGVmaW5l IHUtYm9vdAogICAgICAgICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAgICAgICIxbDV3MTNk em5qMHoxaWJxdjJkNmxqeDJtYTFnbmY1eDVheTNkcWtxd3hyNjc1MG5icTM4IikpKSkKICAgICAo bmF0aXZlLWlucHV0cwotICAgICBgKCgiYmMiICxiYykKLSAgICAgICAoImJpc29uIiAsYmlzb24p Ci0gICAgICAgKCJkdGMiICxkdGMpCi0gICAgICAgKCJnbnV0bHMiICxnbnV0bHMpCi0gICAgICAg KCJmbGV4IiAsZmxleCkKLSAgICAgICAoImx6NCIgLGx6NCkKLSAgICAgICAoInRpbmZvIiAsbmN1 cnNlcy90aW5mbykKLSAgICAgICAoInBlcmwiICxwZXJsKQotICAgICAgICgicHl0aG9uIiAscHl0 aG9uKQotICAgICAgICgicHl0aG9uLWNvdmVyYWdlIiAscHl0aG9uLWNvdmVyYWdlKQotICAgICAg ICgicHl0aG9uLXB5Y3J5cHRvZG9tZXgiICxweXRob24tcHljcnlwdG9kb21leCkKLSAgICAgICAo InB5dGhvbi1weXRlc3QiICxweXRob24tcHl0ZXN0KQotICAgICAgICgic3dpZyIgLHN3aWcpCi0g ICAgICAgKCJsaWJ1dWlkIiAsdXRpbC1saW51eCAibGliIikpKQorICAgICAobGlzdCBiYworICAg ICAgICAgICBiaXNvbgorICAgICAgICAgICBkdGMKKyAgICAgICAgICAgZ251dGxzCisgICAgICAg ICAgIGZsZXgKKyAgICAgICAgICAgbHo0CisgICAgICAgICAgIG5jdXJzZXMvdGluZm8KKyAgICAg ICAgICAgcGVybAorICAgICAgICAgICBweXRob24KKyAgICAgICAgICAgcHl0aG9uLWNvdmVyYWdl CisgICAgICAgICAgIHB5dGhvbi1weWNyeXB0b2RvbWV4CisgICAgICAgICAgIHB5dGhvbi1weXRl c3QKKyAgICAgICAgICAgc3dpZworICAgICAgICAgICBgKCx1dGlsLWxpbnV4ICJsaWIiKSkpCiAg ICAgKGJ1aWxkLXN5c3RlbSAgZ251LWJ1aWxkLXN5c3RlbSkKICAgICAoaG9tZS1wYWdlICJodHRw czovL3d3dy5kZW54LmRlL3dpa2kvVS1Cb290LyIpCiAgICAgKHN5bm9wc2lzICJBUk0gYm9vdGxv YWRlciIpCi0tIAoyLjM2LjEKCg== --b1_wLGjj3TpgmpXpbjXmCC5gK7zkHGQD3edHaBk1xUww Content-Type: text/x-patch; name=0004-gnu-Provide-private-implementation-with-selection-of.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0004-gnu-Provide-private-implementation-with-selection-of.patch RnJvbSBiYThkMWYxNThjNjdhYWI5M2M0ZjUwZGFlY2E5MjBiOTU4MDI4OGI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRyIEhvZGluYSA8cGhvZGluYUBwcm90b25tYWlsLmNvbT4K RGF0ZTogVGh1LCAzMCBKdW4gMjAyMiAxMToxNjo0NiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNC83 XSBnbnU6IFByb3ZpZGUgcHJpdmF0ZSBpbXBsZW1lbnRhdGlvbiB3aXRoIHNlbGVjdGlvbiBvZiB0 aGUKIHUtYm9vdCBwYWNrYWdlLgoKKiBnbnUvcGFja2FnZXMvYm9vdGxvYWRlcnMuc2NtOiBQcm92 aWRlIHByaXZhdGUgaW1wbGVtZW50YXRpb24gb2YKICBtYWtlLXUtYm9vdC1wYWNrYWdlIGFuZCBt YWtlLXUtYm9vdC1zdW54aTY0LXBhY2thZ2Ugc28gdGhhdCB0aGUgcHVibGljIEFQSQogIGRvZXMg bm90IGNoYW5nZS4gVGhlIHByaXZhdGUgYWxsb3dzIHRvIHNwZWNpZnkgdGhlIHUtYm9vdCBwYWNr YWdlLgoKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9ib290bG9hZGVycy5zY20gYi9nbnUvcGFj a2FnZXMvYm9vdGxvYWRlcnMuc2NtCmluZGV4IGZjOGJlMzFmMzcuLmNhYjk3ODUyZjEgMTAwNjQ0 Ci0tLSBhL2dudS9wYWNrYWdlcy9ib290bG9hZGVycy5zY20KKysrIGIvZ251L3BhY2thZ2VzL2Jv b3Rsb2FkZXJzLnNjbQpAQCAtNjg0LDcgKzY4NCw3IEBAIChkZWZpbmUtcHVibGljIHUtYm9vdC10 b29scwogYWxzbyBpbml0aWFsaXplcyB0aGUgYm9hcmRzIChSQU0gZXRjKS4gIFRoaXMgcGFja2Fn ZSBwcm92aWRlcyBpdHMKIGJvYXJkLWluZGVwZW5kZW50IHRvb2xzLiIpKSkKIAotKGRlZmluZS1w dWJsaWMgKG1ha2UtdS1ib290LXBhY2thZ2UgYm9hcmQgdHJpcGxldCkKKyhkZWZpbmUqIChtYWtl LXUtYm9vdC1wYWNrYWdlLXByaXYgYm9hcmQgdHJpcGxldCAjOm9wdGlvbmFsICh1LWJvb3QgdS1i b290KSkKICAgIlJldHVybnMgYSB1LWJvb3QgcGFja2FnZSBmb3IgQk9BUkQgY3Jvc3MtY29tcGls ZWQgZm9yIFRSSVBMRVQuIgogICAobGV0ICgoc2FtZS1hcmNoPyAobGFtYmRhICgpCiAgICAgICAg ICAgICAgICAgICAgICAgKHN0cmluZz0/ICglY3VycmVudC1zeXN0ZW0pCkBAIC03NjcsNiArNzY3 LDkgQEAgKGRlZmluZS1wdWJsaWMgKG1ha2UtdS1ib290LXBhY2thZ2UgYm9hcmQgdHJpcGxldCkK ICAgICAgICAgICAgICAgICAgIHVib290LWZpbGVzKQogICAgICAgICAgICAgICAgICAjdCkpKSkp KSkpKQogCisoZGVmaW5lLXB1YmxpYyAobWFrZS11LWJvb3QtcGFja2FnZSBib2FyZCB0cmlwbGV0 KQorIChtYWtlLXUtYm9vdC1wYWNrYWdlLXByaXYgYm9hcmQgdHJpcGxldCkpCisKIChkZWZpbmUt cHVibGljIHUtYm9vdC1tYWx0YQogICAobWFrZS11LWJvb3QtcGFja2FnZSAibWFsdGEiICJtaXBz NjRlbC1saW51eC1nbnVhYmk2NCIpKQogCkBAIC03OTcsOCArODAwLDkgQEAgKGRlZmluZS1wdWJs aWMgdS1ib290LWFtMzM1eC1ib25lYmxhY2sKIChkZWZpbmUtcHVibGljIHUtYm9vdC1hbTMzNXgt ZXZtCiAgIChtYWtlLXUtYm9vdC1wYWNrYWdlICJhbTMzNXhfZXZtIiAiYXJtLWxpbnV4LWdudWVh YmloZiIpKQogCi0oZGVmaW5lLXB1YmxpYyAobWFrZS11LWJvb3Qtc3VueGk2NC1wYWNrYWdlIGJv YXJkIHRyaXBsZXQpCi0gIChsZXQgKChiYXNlIChtYWtlLXUtYm9vdC1wYWNrYWdlIGJvYXJkIHRy aXBsZXQpKSkKKyhkZWZpbmUqIChtYWtlLXUtYm9vdC1zdW54aTY0LXBhY2thZ2UtcHJpdiBib2Fy ZCB0cmlwbGV0ICM6b3B0aW9uYWwgKHUtYm9vdAordS1ib290KSkKKyAgKGxldCAoKGJhc2UgKG1h a2UtdS1ib290LXBhY2thZ2UtcHJpdiBib2FyZCB0cmlwbGV0IHUtYm9vdCkpKQogICAgIChwYWNr YWdlCiAgICAgICAoaW5oZXJpdCBiYXNlKQogICAgICAgKGFyZ3VtZW50cwpAQCAtODIxLDYgKzgy NSw5IEBAIChkZWZpbmUtcHVibGljIChtYWtlLXUtYm9vdC1zdW54aTY0LXBhY2thZ2UgYm9hcmQg dHJpcGxldCkKICAgICAgICBgKCgiZmlybXdhcmUiICxhcm0tdHJ1c3RlZC1maXJtd2FyZS1zdW41 MGktYTY0KQogICAgICAgICAgLEAocGFja2FnZS1uYXRpdmUtaW5wdXRzIGJhc2UpKSkpKSkKIAor KGRlZmluZS1wdWJsaWMgKG1ha2UtdS1ib290LXN1bnhpNjQtcGFja2FnZSBib2FyZCB0cmlwbGV0 KQorICAobWFrZS11LWJvb3Qtc3VueGk2NC1wYWNrYWdlLXByaXYgYm9hcmQgdHJpcGxldCkpCisK IChkZWZpbmUtcHVibGljIHUtYm9vdC1waW5lNjQtcGx1cwogICAobWFrZS11LWJvb3Qtc3VueGk2 NC1wYWNrYWdlICJwaW5lNjRfcGx1cyIgImFhcmNoNjQtbGludXgtZ251IikpCiAKLS0gCjIuMzYu MQoK --b1_wLGjj3TpgmpXpbjXmCC5gK7zkHGQD3edHaBk1xUww Content-Type: text/x-patch; name=0003-gnu-Add-u-boot-pinenote.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0003-gnu-Add-u-boot-pinenote.patch RnJvbSA1YzQ2ZjIyN2Q1YjZjZmQ0YTk4ZjYwMmQ2YjQxZmVkMWE4NWVlYTBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRyIEhvZGluYSA8cGhvZGluYUBwcm90b25tYWlsLmNvbT4K RGF0ZTogVGh1LCAzMCBKdW4gMjAyMiAxMToxNToxOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMy83 XSBnbnU6IEFkZCB1LWJvb3QtcGluZW5vdGUuCgoqIGdudS9wYWNrYWdlcy9ib290bG9hZGVycy5z Y20gKHUtYm9vdC1waW5lbm90ZSk6IE5ldyB2YXJpYWJsZS4KCmRpZmYgLS1naXQgYS9nbnUvcGFj a2FnZXMvYm9vdGxvYWRlcnMuc2NtIGIvZ251L3BhY2thZ2VzL2Jvb3Rsb2FkZXJzLnNjbQppbmRl eCA5ZjVlMjZmZDI4Li5mYzhiZTMxZjM3IDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvYm9vdGxv YWRlcnMuc2NtCisrKyBiL2dudS9wYWNrYWdlcy9ib290bG9hZGVycy5zY20KQEAgLTU2Nyw2ICs1 NjcsMTkgQEAgKGRlZmluZSB1LWJvb3QKIGFsc28gaW5pdGlhbGl6ZXMgdGhlIGJvYXJkcyAoUkFN IGV0YykuIikKICAgICAobGljZW5zZSBsaWNlbnNlOmdwbDIrKSkpCiAKKyhkZWZpbmUgdS1ib290 LXBpbmVub3RlCisgIChwYWNrYWdlCisgICAgKGluaGVyaXQgdS1ib290KQorICAgICh2ZXJzaW9u ICIyMDIyLjA3IikKKyAgICAoc291cmNlIChvcmlnaW4KKyAgICAgICAgICAgICAgKG1ldGhvZCBn aXQtZmV0Y2gpCisgICAgICAgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKwkJCSAgKHVybCAi aHR0cHM6Ly9naXRsYWIuY29tL3Bob2RpbmEvdS1ib290LXF1YXJ0ejY0IikKKwkJCSAgKGNvbW1p dCAicXVhcnR6NjQiKSkpCisgICAgICAgICAgICAgIChzaGEyNTYKKyAgICAgICAgICAgICAgIChi YXNlMzIKKyAgICAgICAgICAgICAgICAiMmwxdzEzZHpuajB6MWlicXYyZDZsangybWExZ25mNXg1 YXkzZHFrcXd4cjY3NTBuYnEzOCIpKSkpKSkKKwogKGRlZmluZS1wdWJsaWMgdS1ib290LXRvb2xz CiAgIChwYWNrYWdlCiAgICAgKGluaGVyaXQgdS1ib290KQotLSAKMi4zNi4xCgo= --b1_wLGjj3TpgmpXpbjXmCC5gK7zkHGQD3edHaBk1xUww Content-Type: text/x-patch; name=0006-gnu-Add-install-pinenote-rk3568-u-boot-and-u-boot-pi.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0006-gnu-Add-install-pinenote-rk3568-u-boot-and-u-boot-pi.patch RnJvbSA0NGIxMzg1ZTZkYmNjNzliYWZlYmRkYzc2OTllZDMwMmZjYjVmZTkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRyIEhvZGluYSA8cGhvZGluYUBwcm90b25tYWlsLmNvbT4K RGF0ZTogVGh1LCAzMCBKdW4gMjAyMiAxMToyMDo1NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNi83 XSBnbnU6IEFkZCBpbnN0YWxsLXBpbmVub3RlLXJrMzU2OC11LWJvb3QgYW5kCiB1LWJvb3QtcGlu ZW5vdGUtcmszNTY4LWJvb3Rsb2FkZXIuCgoqIGdudS9ib290bG9hZGVyL3UtYm9vdC5zY20gKGlu c3RhbGwtcGluZW5vdGUtcmszNTY4LXUtYm9vdCwKICB1LWJvb3QtcGluZW5vdGUtcmszNTY4LWJv b3Rsb2FkZXIpOiBOZXcgdmFyaWFibGVzLgoKZGlmZiAtLWdpdCBhL2dudS9ib290bG9hZGVyL3Ut Ym9vdC5zY20gYi9nbnUvYm9vdGxvYWRlci91LWJvb3Quc2NtCmluZGV4IDZjYWQzM2I3NDEuLjQ0 MTBjYzQ5N2EgMTAwNjQ0Ci0tLSBhL2dudS9ib290bG9hZGVyL3UtYm9vdC5zY20KKysrIGIvZ251 L2Jvb3Rsb2FkZXIvdS1ib290LnNjbQpAQCAtMyw2ICszLDcgQEAKIDs7OyBDb3B5cmlnaHQgwqkg MjAxNywgMjAxOSBNYXRoaWV1IE90aGFjZWhlIDxtLm90aGFjZWhlQGdtYWlsLmNvbT4KIDs7OyBD b3B5cmlnaHQgwqkgMjAyMCBKdWxpZW4gTGVwaWxsZXIgPGp1bGllbkBsZXBpbGxlci5ldT4KIDs7 OyBDb3B5cmlnaHQgwqkgMjAyMCBKYW4gKGphbm5la2UpIE5pZXV3ZW5odWl6ZW4gPGphbm5la2VA Z251Lm9yZz4KKzs7OyBDb3B5cmlnaHQgwqkgMjAyMiBQZXRyIEhvZGluYSA8cGhvZGluYUBwcm90 b25tYWlsLmNvbT4KIDs7OwogOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgogOzs7 CkBAIC0zNyw2ICszOCw3IEBAIChkZWZpbmUtbW9kdWxlIChnbnUgYm9vdGxvYWRlciB1LWJvb3Qp CiAgICAgICAgICAgICB1LWJvb3Qtbm92ZW5hLWJvb3Rsb2FkZXIKICAgICAgICAgICAgIHUtYm9v dC1waW5lNjQtcGx1cy1ib290bG9hZGVyCiAgICAgICAgICAgICB1LWJvb3QtcGluZTY0LWx0cy1i b290bG9hZGVyCisgICAgICAgICAgICB1LWJvb3QtcGluZW5vdGUtcmszNTY4LWJvb3Rsb2FkZXIK ICAgICAgICAgICAgIHUtYm9vdC1waW5lYm9vay1ib290bG9hZGVyCiAgICAgICAgICAgICB1LWJv b3QtcGluZWJvb2stcHJvLXJrMzM5OS1ib290bG9hZGVyCiAgICAgICAgICAgICB1LWJvb3QtcHVt YS1yazMzOTktYm9vdGxvYWRlcgpAQCAtMTI3LDYgKzEyOSwxNSBAQCAoZGVmaW5lIGluc3RhbGwt cm9ja3BybzY0LXJrMzM5OS11LWJvb3QKIAogKGRlZmluZSBpbnN0YWxsLXBpbmVib29rLXByby1y azMzOTktdS1ib290IGluc3RhbGwtcm9ja3BybzY0LXJrMzM5OS11LWJvb3QpCiAKKzs7IFRPRE86 IFN1cHBseSBjb3JyZWN0IG9mZnNldHMKKyhkZWZpbmUgaW5zdGFsbC1waW5lbm90ZS1yazM1Njgt dS1ib290CisgICN+KGxhbWJkYSAoYm9vdGxvYWRlciByb290LWluZGV4IGltYWdlKQorICAgICAg KGxldCAoKGlkYiAoc3RyaW5nLWFwcGVuZCBib290bG9hZGVyICIvbGliZXhlYy9pZGJsb2FkZXIu aW1nIikpCisgICAgICAgICAgICAodS1ib290IChzdHJpbmctYXBwZW5kIGJvb3Rsb2FkZXIgIi9s aWJleGVjL3UtYm9vdC5pdGIiKSkpCisgICAgICAgICh3cml0ZS1maWxlLW9uLWRldmljZSBpZGIg KHN0YXQ6c2l6ZSAoc3RhdCBpZGIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1h Z2UgKCogNjQgNTEyKSkKKyAgICAgICAgKHdyaXRlLWZpbGUtb24tZGV2aWNlIHUtYm9vdCAoc3Rh dDpzaXplIChzdGF0IHUtYm9vdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFn ZSAoKiAxNjM4NCA1MTIpKSkpKQogDAogCiA7OzsKQEAgLTI1NSwzICsyNjYsOSBAQCAoZGVmaW5l IHUtYm9vdC1waW5lYm9vay1wcm8tcmszMzk5LWJvb3Rsb2FkZXIKICAgIChpbmhlcml0IHUtYm9v dC1ib290bG9hZGVyKQogICAgKHBhY2thZ2UgdS1ib290LXBpbmVib29rLXByby1yazMzOTkpCiAg ICAoZGlzay1pbWFnZS1pbnN0YWxsZXIgaW5zdGFsbC1waW5lYm9vay1wcm8tcmszMzk5LXUtYm9v dCkpKQorCisoZGVmaW5lIHUtYm9vdC1waW5lbm90ZS1yazM1NjgtYm9vdGxvYWRlcgorICAoYm9v dGxvYWRlcgorICAgKGluaGVyaXQgdS1ib290LWJvb3Rsb2FkZXIpCisgICAocGFja2FnZSB1LWJv b3QtcGluZW5vdGUtcmszNTY4KQorICAgKGRpc2staW1hZ2UtaW5zdGFsbGVyIGluc3RhbGwtcGlu ZW5vdGUtcmszNTY4LXUtYm9vdCkpKQotLSAKMi4zNi4xCgo= --b1_wLGjj3TpgmpXpbjXmCC5gK7zkHGQD3edHaBk1xUww Content-Type: text/x-patch; name=0005-gnu-Add-u-boot-pinenote-rk3568.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0005-gnu-Add-u-boot-pinenote-rk3568.patch RnJvbSA0ZDUzZDJiZGI4NTI2ZjcyZWQ2Y2QzMTgzZmYyYTIxNDE5OTBjOTAwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRyIEhvZGluYSA8cGhvZGluYUBwcm90b25tYWlsLmNvbT4K RGF0ZTogVGh1LCAzMCBKdW4gMjAyMiAxMToxOTozMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNS83 XSBnbnU6IEFkZCB1LWJvb3QtcGluZW5vdGUtcmszNTY4LgoKKiBnbnUvcGFja2FnZXMvYm9vdGxv YWRlcnMuc2NtICh1LWJvb3QtcGluZW5vdGUtcmszNTY4KTogTmV3IHZhcmlhYmxlLgoKZGlmZiAt LWdpdCBhL2dudS9wYWNrYWdlcy9ib290bG9hZGVycy5zY20gYi9nbnUvcGFja2FnZXMvYm9vdGxv YWRlcnMuc2NtCmluZGV4IGNhYjk3ODUyZjEuLjljMjY2YjdiZWQgMTAwNjQ0Ci0tLSBhL2dudS9w YWNrYWdlcy9ib290bG9hZGVycy5zY20KKysrIGIvZ251L3BhY2thZ2VzL2Jvb3Rsb2FkZXJzLnNj bQpAQCAtODM0LDYgKzgzNCw5IEBAIChkZWZpbmUtcHVibGljIHUtYm9vdC1waW5lNjQtcGx1cwog KGRlZmluZS1wdWJsaWMgdS1ib290LXBpbmU2NC1sdHMKICAgKG1ha2UtdS1ib290LXN1bnhpNjQt cGFja2FnZSAicGluZTY0LWx0cyIgImFhcmNoNjQtbGludXgtZ251IikpCiAKKyhkZWZpbmUtcHVi bGljIHUtYm9vdC1waW5lbm90ZS1yazM1NjgKKyAgKG1ha2UtdS1ib290LXN1bnhpNjQtcGFja2Fn ZS1wcml2ICJwaW5lbm90ZSIgImFhcmNoNjQtbGludXgtZ251IiB1LWJvb3QtcGluZW5vdGUpKQor CiAoZGVmaW5lLXB1YmxpYyB1LWJvb3QtcGluZWJvb2sKICAgKGxldCAoKGJhc2UgKG1ha2UtdS1i b290LXN1bnhpNjQtcGFja2FnZSAicGluZWJvb2siICJhYXJjaDY0LWxpbnV4LWdudSIpKSkKICAg ICAocGFja2FnZQotLSAKMi4zNi4xCgo= --b1_wLGjj3TpgmpXpbjXmCC5gK7zkHGQD3edHaBk1xUww Content-Type: text/x-patch; name=0007-gnu-Add-image-for-pinenote.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0007-gnu-Add-image-for-pinenote.patch RnJvbSBiY2E2Zjg4NjIzMzYyZjAyNmJiMDA3ZGVkYTdkMDllNmVkOGMyZGZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRyIEhvZGluYSA8cGhvZGluYUBwcm90b25tYWlsLmNvbT4K RGF0ZTogVGh1LCAzMCBKdW4gMjAyMiAxMToyMjowNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNy83 XSBnbnU6IEFkZCBpbWFnZSBmb3IgcGluZW5vdGUuCgoqIGdudS9zeXN0ZW0vaW1hZ2VzL3BpbmVu b3RlLnNjbTogTmV3IGZpbGUuCgpkaWZmIC0tZ2l0IGEvZ251L3N5c3RlbS9pbWFnZXMvcGluZW5v dGUuc2NtIGIvZ251L3N5c3RlbS9pbWFnZXMvcGluZW5vdGUuc2NtCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAuLmZlMDIxZDk2OGUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnUv c3lzdGVtL2ltYWdlcy9waW5lbm90ZS5zY20KQEAgLTAsMCArMSw3NCBAQAorOzs7IEdOVSBHdWl4 IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCis7OzsgQ29weXJpZ2h0 IMKpIDIwMjIgUGV0ciBIb2RpbmEgPHBob2RpbmFAcHJvdG9ubWFpbC5jb20+Cis7OzsKKzs7OyBU aGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKzs7OyB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAorOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OzsgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7OworOzs7IFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7Ozsg YWxvbmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKworKGRlZmluZS1tb2R1bGUgKGdudSBzeXN0ZW0gaW1hZ2VzIHBpbmVub3RlKQor ICAjOnVzZS1tb2R1bGUgKGdudSBib290bG9hZGVyKQorICAjOnVzZS1tb2R1bGUgKGdudSBib290 bG9hZGVyIHUtYm9vdCkKKyAgIzp1c2UtbW9kdWxlIChnbnUgaW1hZ2UpCisgICM6dXNlLW1vZHVs ZSAoZ251IHBhY2thZ2VzIGxpbnV4KQorICAjOnVzZS1tb2R1bGUgKGd1aXggcGxhdGZvcm1zIGFy bSkKKyAgIzp1c2UtbW9kdWxlIChnbnUgc2VydmljZXMpCisgICM6dXNlLW1vZHVsZSAoZ251IHNl cnZpY2VzIGJhc2UpCisgICM6dXNlLW1vZHVsZSAoZ251IHN5c3RlbSkKKyAgIzp1c2UtbW9kdWxl IChnbnUgc3lzdGVtIGZpbGUtc3lzdGVtcykKKyAgIzp1c2UtbW9kdWxlIChnbnUgc3lzdGVtIGlt YWdlKQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0yNikKKyAgIzpleHBvcnQgKHBpbmVub3Rl LWJhcmVib25lcy1vcworICAgICAgICAgICAgcGluZW5vdGUtaW1hZ2UtdHlwZQorICAgICAgICAg ICAgcGluZW5vdGUtcmF3LWltYWdlKSkKKworKGRlZmluZSBwaW5lbm90ZS1iYXJlYm9uZXMtb3MK KyAgKG9wZXJhdGluZy1zeXN0ZW0KKyAgICAoaG9zdC1uYW1lICJlaW5rIikKKyAgICAodGltZXpv bmUgIkV1cm9wZS9QcmFndWUiKQorICAgIChsb2NhbGUgImVuX1VTLnV0ZjgiKQorICAgIChib290 bG9hZGVyIChib290bG9hZGVyLWNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgKGJvb3Rs b2FkZXIgdS1ib290LXBpbmVib29rLXByby1yazMzOTktYm9vdGxvYWRlcikKKzsgICAgICAgICAg ICAgICAgIChib290bG9hZGVyIHUtYm9vdC1waW5lbm90ZS1yazM1NjgtYm9vdGxvYWRlcikKKyAg ICAgICAgICAgICAgICAgKHRhcmdldHMgJygiL2Rldi92ZGEiKSkpKQorICAgIChpbml0cmQtbW9k dWxlcyAnKCkpCisgICAgKGtlcm5lbCBsaW51eC1saWJyZS1hcm02NC1waW5lbm90ZSkKKyAgICAo ZmlsZS1zeXN0ZW1zIChjb25zIChmaWxlLXN5c3RlbQorICAgICAgICAgICAgICAgICAgICAgICAg ICAoZGV2aWNlIChmaWxlLXN5c3RlbS1sYWJlbCAibXktcm9vdCIpKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAobW91bnQtcG9pbnQgIi8iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo dHlwZSAiZXh0NCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgJWJhc2UtZmlsZS1zeXN0ZW1z KSkKKyAgICAoc2VydmljZXMgKGNvbnMgKHNlcnZpY2UgYWdldHR5LXNlcnZpY2UtdHlwZQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoYWdldHR5LWNvbmZpZ3VyYXRpb24KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChleHRyYS1vcHRpb25zICcoIi1MIikpIDsgbm8gY2Fycmll ciBkZXRlY3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYXVkLXJhdGUgIjE1MDAw MDAiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRlcm0gInZ0MTAwIikKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICh0dHkgInR0eVMyIikpKQorICAgICAgICAgICAgICAg ICAgICAlYmFzZS1zZXJ2aWNlcykpKSkKKworKGRlZmluZSBwaW5lbm90ZS1pbWFnZS10eXBlCisg IChpbWFnZS10eXBlCisgICAobmFtZSAncGluZW5vdGUtcHJvLXJhdykKKyAgIChjb25zdHJ1Y3Rv ciAoY3V0IGltYWdlLXdpdGgtb3MKKyAgICAgICAgICAgICAgICAgICAgIChyYXctd2l0aC1vZmZz ZXQtZGlzay1pbWFnZSAoKiA5IChleHB0IDIgMjApKSkgOzlNaUIKKyAgICAgICAgICAgICAgICAg ICAgIDw+KSkpKQorCisoZGVmaW5lIHBpbmVub3RlLWJhcmVib25lcy1yYXctaW1hZ2UKKyAgKGlt YWdlCisgICAoaW5oZXJpdAorICAgIChvcytwbGF0Zm9ybS0+aW1hZ2UgcGluZW5vdGUtYmFyZWJv bmVzLW9zIGFhcmNoNjQtbGludXgKKyAgICAgICAgICAgICAgICAgICAgICAgICM6dHlwZSBwaW5l bm90ZS1pbWFnZS10eXBlKSkKKyAgIChuYW1lICdwaW5lbm90ZS1iYXJlYm9uZXMtcmF3LWltYWdl KSkpCisKKzs7IFJldHVybiB0aGUgZGVmYXVsdCBpbWFnZS4KK3BpbmVub3RlLWJhcmVib25lcy1y YXctaW1hZ2UKLS0gCjIuMzYuMQoK --b1_wLGjj3TpgmpXpbjXmCC5gK7zkHGQD3edHaBk1xUww Content-Type: text/x-patch; name=0001-gnu-Add-linux-libre-arm64-pinenote.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-gnu-Add-linux-libre-arm64-pinenote.patch RnJvbSBhNjQ5OWM0YzM4NGRkM2MwZTA2OTY4Y2M2OTg3ZGEwZTQ3YWY2MjkwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRyIEhvZGluYSA8cGhvZGluYUBwcm90b25tYWlsLmNvbT4K RGF0ZTogVGh1LCAzMCBKdW4gMjAyMiAxMDoxMjozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMS83 XSBnbnU6IEFkZCBsaW51eC1saWJyZS1hcm02NC1waW5lbm90ZS4KCiogZ251L3BhY2thZ2VzL2xp bnV4LnNjbSAobGludXgtbGlicmUtYXJtNjQtcGluZW5vdGUpOiBOZXcgdmFyaWFibGUuCiogZ251 L2xvY2FsLm1rOiBBZGQgcGF0Y2hlcy4KKiBsaW51eC1saWJyZS1hcm02NC1waW5lbm90ZS1iYXR0 ZXJ5LWxldmVsLnBhdGNoOiBOZXcgZmlsZS4KKiBsaW51eC1saWJyZS1hcm02NC1waW5lbm90ZS1k ZWZjb25maWcucGF0Y2g6IE5ldyBmaWxlLgoqIGxpbnV4LWxpYnJlLWFybTY0LXBpbmVub3RlLWR0 c2kucGF0Y2g6IE5ldyBmaWxlLgoqIGxpbnV4LWxpYnJlLWFybTY0LXBpbmVub3RlLWViYy1wYXRj aGVzLnBhdGNoOiBOZXcgZmlsZS4KKiBsaW51eC1saWJyZS1hcm02NC1waW5lbm90ZS10b3VjaHNj cmVlbi0xLnBhdGNoOiBOZXcgZmlsZS4KKiBsaW51eC1saWJyZS1hcm02NC1waW5lbm90ZS10b3Vj aHNjcmVlbi0yLnBhdGNoOiBOZXcgZmlsZS4KKiBsaW51eC1saWJyZS1hcm02NC1yb2NrY2hpcC1h ZGQtaGRtaS1zb3VuZC5wYXRjaDogTmV3IGZpbGUuCgpkaWZmIC0tZ2l0IGEvZ251L2xvY2FsLm1r IGIvZ251L2xvY2FsLm1rCmluZGV4IDM1M2I5MWNmZDIuLmMxOWYxZjQxOGIgMTAwNjQ0Ci0tLSBh L2dudS9sb2NhbC5taworKysgYi9nbnUvbG9jYWwubWsKQEAgLTE0NDQsNiArMTQ0NCwxMyBAQCBk aXN0X3BhdGNoX0RBVEEgPQkJCQkJCVwKICAgJUQlL3BhY2thZ2VzL3BhdGNoZXMvbGluYm94LWZp eC1wa2djb25maWcucGF0Y2gJCVwKICAgJUQlL3BhY2thZ2VzL3BhdGNoZXMvbGlucGhvbmUtZGVz a3RvcC13aXRob3V0LXNkay5wYXRjaCAgICAgICAgICAgXAogICAlRCUvcGFja2FnZXMvcGF0Y2hl cy9saW51eC1saWJyZS1zdXBwb3J0LWZvci1QaW5lYm9vay1Qcm8ucGF0Y2ggXAorICAlRCUvcGFj a2FnZXMvcGF0Y2hlcy9saW51eC1saWJyZS1hcm02NC1waW5lbm90ZS10b3VjaHNjcmVlbi0xLnBh dGNoIFwKKyAgJUQlL3BhY2thZ2VzL3BhdGNoZXMvbGludXgtbGlicmUtYXJtNjQtcGluZW5vdGUt dG91Y2hzY3JlZW4tMi5wYXRjaCBcCisgICAlRCUvcGFja2FnZXMvcGF0Y2hlcy9saW51eC1saWJy ZS1hcm02NC1waW5lbm90ZS1iYXR0ZXJ5LWxldmVsLnBhdGNoIFwKKyAgICVEJS9wYWNrYWdlcy9w YXRjaGVzL2xpbnV4LWxpYnJlLWFybTY0LXJvY2tjaGlwLWFkZC1oZG1pLXNvdW5kLnBhdGNoIFwK KyAgICAlRCUvcGFja2FnZXMvcGF0Y2hlcy9saW51eC1saWJyZS1hcm02NC1waW5lbm90ZS1kZWZj b25maWcucGF0Y2ggXAorICAgJUQlL3BhY2thZ2VzL3BhdGNoZXMvbGludXgtbGlicmUtYXJtNjQt cGluZW5vdGUtZHRzaS5wYXRjaCBcCisgICVEJS9wYWNrYWdlcy9wYXRjaGVzL2xpbnV4LWxpYnJl LWFybTY0LXBpbmVub3RlLWViYy1wYXRjaGVzLnBhdGNoIFwKICAgJUQlL3BhY2thZ2VzL3BhdGNo ZXMvbGludXgtcGFtLW5vLXNldGZzdWlkLnBhdGNoCQlcCiAgICVEJS9wYWNrYWdlcy9wYXRjaGVz L2xpbnV4ZGNwcC1vcGVuc3NsLTEuMS5wYXRjaAkJXAogICAlRCUvcGFja2FnZXMvcGF0Y2hlcy9s aXJjLWxvY2Fsc3RhdGVkaXIucGF0Y2gJCQlcCmRpZmYgLS1naXQgYS9nbnUvcGFja2FnZXMvbGlu dXguc2NtIGIvZ251L3BhY2thZ2VzL2xpbnV4LnNjbQppbmRleCA4ZjdiNGY0ZjViLi5iYWU4ZmZi OTU5IDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvbGludXguc2NtCisrKyBiL2dudS9wYWNrYWdl cy9saW51eC5zY20KQEAgLTYwLDcgKzYwLDcgQEAKIDs7OyBDb3B5cmlnaHQgwqkgMjAyMSBKb3Nz ZWxpbiBQb2lyZXQgPGpvc3NlbGluLnBvaXJldEBwcm90b25tYWlsLmNoPgogOzs7IENvcHlyaWdo dCDCqSAyMDIxIE9saXZpZXIgRGlvbiA8b2xpdmllci5kaW9uQHBvbHltdGwuY2E+CiA7OzsgQ29w eXJpZ2h0IMKpIDIwMjEgU29sZW5lIFJhcGVubmUgPHNvbGVuZUBwZXJzby5wdz4KLTs7OyBDb3B5 cmlnaHQgwqkgMjAyMSBQZXRyIEhvZGluYSA8cGhvZGluYUBwcm90b25tYWlsLmNvbT4KKzs7OyBD b3B5cmlnaHQgwqkgMjAyMSwgMjAyMiBQZXRyIEhvZGluYSA8cGhvZGluYUBwcm90b25tYWlsLmNv bT4KIDs7OyBDb3B5cmlnaHQgwqkgMjAyMiBBcnR5b20gVi4gUG9wdHNvdiA8cG9wdHNvdi5hcnR5 b21AZ21haWwuY29tPgogOzs7IENvcHlyaWdodCDCqSAyMDIyIFJlbmUgU2FhdmVkcmEgPG5hbnV1 aUBwcm90b25tYWlsLmNvbT4KIApAQCAtMzQ5LDYgKzM0OSwxMiBAQCAoZGVmaW5lICgldXBzdHJl YW0tbGludXgtc291cmNlIHZlcnNpb24gaGFzaCkKICAgICAgICAgICAgICAgICAgICAgICAgICJs aW51eC0iIHZlcnNpb24gIi50YXIueHoiKSkKICAgICAoc2hhMjU2IGhhc2gpKSkKIAorKGRlZmlu ZSAoJXBpbmVub3RlLWxpbnV4LXNvdXJjZSB2ZXJzaW9uIGhhc2gpCisgIChvcmlnaW4KKyAgICAo bWV0aG9kIHVybC1mZXRjaCkKKyAgICAodXJpIChzdHJpbmctYXBwZW5kICJodHRwczovL2dpdGh1 Yi5jb20vcGhvZGluYS9saW51eC1waW5lbm90ZS90YXJiYWxsLyIgdmVyc2lvbikpCisgICAgKHNo YTI1NiBoYXNoKSkpCisKIDs7IFRoZSBjdXJyZW50ICJzdGFibGUiIGtlcm5lbHMuIFRoYXQgaXMs IHRoZSBtb3N0IHJlY2VudGx5IHJlbGVhc2VkIG1ham9yCiA7OyB2ZXJzaW9ucyB0aGF0IGFyZSBz dGlsbCBzdXBwb3J0ZWQgdXBzdHJlYW0uCiAKQEAgLTM2Nyw2ICszNzMsMTQgQEAgKGRlZmluZS1w dWJsaWMgbGludXgtbGlicmUtNS4xNy1wcmlzdGluZS1zb3VyY2UKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoJXVwc3RyZWFtLWxpbnV4LXNvdXJjZSB2ZXJzaW9uIGhhc2gpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGVibG9iLXNjcmlwdHMtNS4xNykpKQogCisoZGVmaW5lLXB1 YmxpYyBsaW51eC1saWJyZS1hcm02NC1waW5lbm90ZS1wcmlzdGluZS1zb3VyY2UKKyAgKGxldCAo KHZlcnNpb24gbGludXgtbGlicmUtNS4xNy12ZXJzaW9uKQorICAgICAgICAoY29tbWl0ICJjOTFh NDhlMDI4ZmUxZjZhMGU1NzQ4ZmQ4N2M0NDZhYTdlMzE4MTFiIikKKyAgICAgICAgKGhhc2ggKGJh c2UzMiAiMXh3eXZ2cHMxcjN6bDFuOXN6bGdyajh5bHc1c2dqNmZyNTJmaWc5ZjJjYzZhaTMzMWJi biIpKSkKKyAgIChtYWtlLWxpbnV4LWxpYnJlLXNvdXJjZSB2ZXJzaW9uCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKCVwaW5lbm90ZS1saW51eC1zb3VyY2UgY29tbWl0IGhhc2gpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGVibG9iLXNjcmlwdHMtNS4xNykpKQorCiA7OyBUaGUg Imxvbmd0ZXJtIiBrZXJuZWxzIOKAlCB0aGUgb2xkZXIgcmVsZWFzZXMgd2l0aCBsb25nLXRlcm0g dXBzdHJlYW0gc3VwcG9ydC4KIDs7IEhlcmUgYXJlIHRoZSBzdXBwb3J0IHRpbWVsaW5lczoKIDs7 IDxodHRwczovL3d3dy5rZXJuZWwub3JnL2NhdGVnb3J5L3JlbGVhc2VzLmh0bWw+CkBAIC00ODgs NiArNTAyLDI1IEBAIChkZWZpbmUgKHNvdXJjZS13aXRoLXBhdGNoZXMgc291cmNlIHBhdGNoZXMp CiAgICAgKHBhdGNoZXMgKGFwcGVuZCAob3JpZ2luLXBhdGNoZXMgc291cmNlKQogICAgICAgICAg ICAgICAgICAgICAgcGF0Y2hlcykpKSkKIAorKGRlZmluZS1wdWJsaWMgbGludXgtbGlicmUtYXJt NjQtcGluZW5vdGUtc291cmNlCisgIChzb3VyY2Utd2l0aC1wYXRjaGVzIGxpbnV4LWxpYnJlLWFy bTY0LXBpbmVub3RlLXByaXN0aW5lLXNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgICAobGlz dCAlYm9vdC1sb2dvLXBhdGNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVsaW51eC1s aWJyZS1hcm0tZXhwb3J0LV9fc3luY19pY2FjaGVfZGNhY2hlLXBhdGNoCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzZWFyY2gtcGF0Y2gKKyJsaW51eC1saWJyZS1hcm02NC1waW5lbm90 ZS10b3VjaHNjcmVlbi0xLnBhdGNoIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNl YXJjaC1wYXRjaAorImxpbnV4LWxpYnJlLWFybTY0LXBpbmVub3RlLXRvdWNoc2NyZWVuLTIucGF0 Y2giKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VhcmNoLXBhdGNoCisibGludXgt bGlicmUtYXJtNjQtcGluZW5vdGUtYmF0dGVyeS1sZXZlbC5wYXRjaCIpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzZWFyY2gtcGF0Y2gKKyJsaW51eC1saWJyZS1hcm02NC1yb2NrY2hp cC1hZGQtaGRtaS1zb3VuZC5wYXRjaCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz ZWFyY2gtcGF0Y2gKKyJsaW51eC1saWJyZS1hcm02NC1waW5lbm90ZS1kZWZjb25maWcucGF0Y2gi KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VhcmNoLXBhdGNoCisibGludXgtbGli cmUtYXJtNjQtcGluZW5vdGUtZHRzaS5wYXRjaCIpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzZWFyY2gtcGF0Y2gKKyJsaW51eC1saWJyZS1hcm02NC1waW5lbm90ZS1lYmMtcGF0Y2hl cy5wYXRjaCIpKSkpCisKIChkZWZpbmUtcHVibGljIGxpbnV4LWxpYnJlLTUuMTctc291cmNlCiAg IChzb3VyY2Utd2l0aC1wYXRjaGVzIGxpbnV4LWxpYnJlLTUuMTctcHJpc3RpbmUtc291cmNlCiAg ICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICVib290LWxvZ28tcGF0Y2gKQEAgLTEwNzIsNiAr MTEwNSwxNSBAQCAoZGVmaW5lLXB1YmxpYyBsaW51eC1saWJyZS1hcm0tb21hcDJwbHVzLTQuMTQK ICAgICAgICAgICAgICAgICAgICAgICM6ZGVmY29uZmlnICJvbWFwMnBsdXNfZGVmY29uZmlnIgog ICAgICAgICAgICAgICAgICAgICAgIzpleHRyYS12ZXJzaW9uICJhcm0tb21hcDJwbHVzIikpCiAK KyhkZWZpbmUtcHVibGljIGxpbnV4LWxpYnJlLWFybTY0LXBpbmVub3RlCisgIChtYWtlLWxpbnV4 LWxpYnJlKiBsaW51eC1saWJyZS12ZXJzaW9uCisgICAgICAgICAgICAgICAgICAgICBsaW51eC1s aWJyZS1nbnUtcmV2aXNpb24KKyAgICAgICAgICAgICAgICAgICAgIGxpbnV4LWxpYnJlLWFybTY0 LXBpbmVub3RlLXNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgJygiYWFyY2g2NC1saW51eCIp CisgICAgICAgICAgICAgICAgICAgICAjOmRlZmNvbmZpZyAicGluZW5vdGVfZGVmY29uZmlnIgor ICAgICAgICAgICAgICAgICAgICAgIzpleHRyYS1vcHRpb25zCisgICAgICAgICAgICAgICAgICAg ICAgJWRlZmF1bHQtZXh0cmEtbGludXgtb3B0aW9ucykpCisKIChkZWZpbmUtcHVibGljIGxpbnV4 LWxpYnJlLWFybTY0LWdlbmVyaWMKICAgKG1ha2UtbGludXgtbGlicmUqIGxpbnV4LWxpYnJlLXZl cnNpb24KICAgICAgICAgICAgICAgICAgICAgIGxpbnV4LWxpYnJlLWdudS1yZXZpc2lvbgpkaWZm IC0tZ2l0IGEvZ251L3BhY2thZ2VzL3BhdGNoZXMvbGludXgtbGlicmUtYXJtNjQtcGluZW5vdGUt YmF0dGVyeS1sZXZlbC5wYXRjaCBiL2dudS9wYWNrYWdlcy9wYXRjaGVzL2xpbnV4LWxpYnJlLWFy bTY0LXBpbmVub3RlLWJhdHRlcnktbGV2ZWwucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uYTBkZjhjMzc2MwotLS0gL2Rldi9udWxsCisrKyBiL2dudS9wYWNrYWdl cy9wYXRjaGVzL2xpbnV4LWxpYnJlLWFybTY0LXBpbmVub3RlLWJhdHRlcnktbGV2ZWwucGF0Y2gK QEAgLTAsMCArMSw2MiBAQAorRnJvbSA4MjIyOTQ2NjQ5MDY0OTk2ODJiNTUyNjRhZTA1NTNlZTA1 Y2FhMzUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRG9yaWFuIFJ1ZG9scGggPG1h aWxAZG9yaWFucnVkb2xwaC5jb20+CitEYXRlOiBTYXQsIDE0IE1heSAyMDIyIDE0OjI4OjM3ICsw MjAwCitTdWJqZWN0OiBbUEFUQ0hdIGZpeCBwb3dlcl9zdXBwbHlfdGVtcDJyZXNpc3Rfc2ltcGxl IGFuZAorIHBvd2VyX3N1cHBseV9vY3YyY2FwX3NpbXBsZQorCistLS0KKyBkcml2ZXJzL3Bvd2Vy L3N1cHBseS9wb3dlcl9zdXBwbHlfY29yZS5jIHwgMjQgKysrKysrKysrKysrLS0tLS0tLS0tLS0t CisgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvZHJpdmVycy9wb3dlci9zdXBwbHkvcG93ZXJfc3VwcGx5X2NvcmUuYyBiL2Ry aXZlcnMvcG93ZXIvc3VwcGx5L3Bvd2VyX3N1cHBseV9jb3JlLmMKK2luZGV4IGVjODM4YzliY2Mw YTVlLi4zODI4YmE5ZDBlYWI5MCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvcG93ZXIvc3VwcGx5L3Bv d2VyX3N1cHBseV9jb3JlLmMKKysrKyBiL2RyaXZlcnMvcG93ZXIvc3VwcGx5L3Bvd2VyX3N1cHBs eV9jb3JlLmMKK0BAIC04MDEsMTcgKzgwMSwxNyBAQCBpbnQgcG93ZXJfc3VwcGx5X3RlbXAycmVz aXN0X3NpbXBsZShzdHJ1Y3QgcG93ZXJfc3VwcGx5X3Jlc2lzdGFuY2VfdGVtcF90YWJsZSAqdAor IHsKKyAJaW50IGksIGhpZ2gsIGxvdzsKKyAKKy0JLyogQnJlYWsgbG9vcCBhdCB0YWJsZV9sZW4g LSAxIGJlY2F1c2UgdGhhdCBpcyB0aGUgaGlnaGVzdCBpbmRleCAqLworLQlmb3IgKGkgPSAwOyBp IDwgdGFibGVfbGVuIC0gMTsgaSsrKQorKwlmb3IgKGkgPSAwOyBpIDwgdGFibGVfbGVuOyBpKysp CisgCQlpZiAodGVtcCA+IHRhYmxlW2ldLnRlbXApCisgCQkJYnJlYWs7CisgCisgCS8qIFRoZSBs aWJyYXJ5IGZ1bmN0aW9uIHdpbGwgZGVhbCB3aXRoIGhpZ2ggPT0gbG93ICovCistCWlmICgoaSA9 PSAwKSB8fCAoaSA9PSAodGFibGVfbGVuIC0gMSkpKQorLQkJaGlnaCA9IGk7CisrCWlmIChpID09 IDApCisrCQloaWdoID0gbG93ID0gaTsKKysJZWxzZSBpZiAoaSA9PSB0YWJsZV9sZW4pCisrCQlo aWdoID0gbG93ID0gaSAtIDE7CisgCWVsc2UKKy0JCWhpZ2ggPSBpIC0gMTsKKy0JbG93ID0gaTsK KysJCWhpZ2ggPSAobG93ID0gaSkgLSAxOworIAorIAlyZXR1cm4gZml4cF9saW5lYXJfaW50ZXJw b2xhdGUodGFibGVbbG93XS50ZW1wLAorIAkJCQkgICAgICAgdGFibGVbbG93XS5yZXNpc3RhbmNl LAorQEAgLTgzOCwxNyArODM4LDE3IEBAIGludCBwb3dlcl9zdXBwbHlfb2N2MmNhcF9zaW1wbGUo c3RydWN0IHBvd2VyX3N1cHBseV9iYXR0ZXJ5X29jdl90YWJsZSAqdGFibGUsCisgeworIAlpbnQg aSwgaGlnaCwgbG93OworIAorLQkvKiBCcmVhayBsb29wIGF0IHRhYmxlX2xlbiAtIDEgYmVjYXVz ZSB0aGF0IGlzIHRoZSBoaWdoZXN0IGluZGV4ICovCistCWZvciAoaSA9IDA7IGkgPCB0YWJsZV9s ZW4gLSAxOyBpKyspCisrCWZvciAoaSA9IDA7IGkgPCB0YWJsZV9sZW47IGkrKykKKyAJCWlmIChv Y3YgPiB0YWJsZVtpXS5vY3YpCisgCQkJYnJlYWs7CisgCisgCS8qIFRoZSBsaWJyYXJ5IGZ1bmN0 aW9uIHdpbGwgZGVhbCB3aXRoIGhpZ2ggPT0gbG93ICovCistCWlmICgoaSA9PSAwKSB8fCAoaSA9 PSAodGFibGVfbGVuIC0gMSkpKQorLQkJaGlnaCA9IGkgLSAxOworKwlpZiAoaSA9PSAwKQorKwkJ aGlnaCA9IGxvdyA9IGk7CisrCWVsc2UgaWYgKGkgPT0gdGFibGVfbGVuKQorKwkJaGlnaCA9IGxv dyA9IGkgLSAxOworIAllbHNlCistCQloaWdoID0gaTsgLyogaS5lLiBpID09IDAgKi8KKy0JbG93 ID0gaTsKKysJCWhpZ2ggPSAobG93ID0gaSkgLSAxOworIAorIAlyZXR1cm4gZml4cF9saW5lYXJf aW50ZXJwb2xhdGUodGFibGVbbG93XS5vY3YsCisgCQkJCSAgICAgICB0YWJsZVtsb3ddLmNhcGFj aXR5LApkaWZmIC0tZ2l0IGEvZ251L3BhY2thZ2VzL3BhdGNoZXMvbGludXgtbGlicmUtYXJtNjQt cGluZW5vdGUtZGVmY29uZmlnLnBhdGNoIGIvZ251L3BhY2thZ2VzL3BhdGNoZXMvbGludXgtbGli cmUtYXJtNjQtcGluZW5vdGUtZGVmY29uZmlnLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLjk3ODk4YTE0MWUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnUvcGFja2Fn ZXMvcGF0Y2hlcy9saW51eC1saWJyZS1hcm02NC1waW5lbm90ZS1kZWZjb25maWcucGF0Y2gKQEAg LTAsMCArMSw0OCBAQAorZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvY29uZmlncy9waW5lbm90ZV9k ZWZjb25maWcgYi9hcmNoL2FybTY0L2NvbmZpZ3MvcGluZW5vdGVfZGVmY29uZmlnCitpbmRleCBi ZWE0MzVkYzkyYzQuLjg2Y2RhYTkyY2MyZiAxMDA2NDQKKy0tLSBhL2FyY2gvYXJtNjQvY29uZmln cy9waW5lbm90ZV9kZWZjb25maWcKKysrKyBiL2FyY2gvYXJtNjQvY29uZmlncy9waW5lbm90ZV9k ZWZjb25maWcKK0BAIC04Niw2ICs4Niw3IEBAIENPTkZJR19BUkNIX1JPQ0tDSElQPXkKKyAjIENP TkZJR19OVklESUFfQ0FSTUVMX0NOUF9FUlJBVFVNIGlzIG5vdCBzZXQKKyAjIENPTkZJR19TT0NJ T05FWFRfU1lOUVVBQ0VSX1BSRUlUUyBpcyBub3Qgc2V0CisgQ09ORklHX1NDSEVEX01DPXkKKytD T05GSUdfU0NIRURfU01UPXkKKyBDT05GSUdfTlJfQ1BVUz00CisgQ09ORklHX0haXzEwMDA9eQor ICMgQ09ORklHX1VOTUFQX0tFUk5FTF9BVF9FTDAgaXMgbm90IHNldAorQEAgLTE1NSw3ICsxNTYs NyBAQCBDT05GSUdfQ0dST1VQX05FVF9QUklPPXkKKyBDT05GSUdfQlQ9bQorIENPTkZJR19CVF9S RkNPTU09eQorIENPTkZJR19CVF9SRkNPTU1fVFRZPXkKKy1DT05GSUdfQlRfSElEUD15CisrQ09O RklHX0JUX0hJRFA9bQorIENPTkZJR19CVF9IUz15CisgQ09ORklHX0JUX0xFRFM9eQorIENPTkZJ R19CVF9IQ0lVQVJUPW0KK0BAIC0yMjMsMTQgKzIyNCwxNiBAQCBDT05GSUdfQlJDTUZNQUM9bQor ICMgQ09ORklHX1dMQU5fVkVORE9SX1RJIGlzIG5vdCBzZXQKKyAjIENPTkZJR19XTEFOX1ZFTkRP Ul9aWURBUyBpcyBub3Qgc2V0CisgIyBDT05GSUdfV0xBTl9WRU5ET1JfUVVBTlRFTk5BIGlzIG5v dCBzZXQKKytDT05GSUdfSU5QVVRfTU9VU0VERVY9bQorIENPTkZJR19JTlBVVF9FVkRFVj15Cisg Q09ORklHX0tFWUJPQVJEX0FEQz1tCisgIyBDT05GSUdfS0VZQk9BUkRfQVRLQkQgaXMgbm90IHNl dAorIENPTkZJR19LRVlCT0FSRF9HUElPPXkKKy0jIENPTkZJR19JTlBVVF9NT1VTRSBpcyBub3Qg c2V0CisrQ09ORklHX0lOUFVUX01PVVNFPXkKKyBDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU49eQor IENPTkZJR19UT1VDSFNDUkVFTl9DWVRUU1A0X0NPUkU9bQorIENPTkZJR19UT1VDSFNDUkVFTl9D WVRUU1A0X0kyQz1tCisrQ09ORklHX1RPVUNIU0NSRUVOX0NZVFRTUDU9bQorIENPTkZJR19JTlBV VF9NSVNDPXkKKyBDT05GSUdfSU5QVVRfUks4MDVfUFdSS0VZPXkKKyBDT05GSUdfSU5QVVRfV1M4 MTAwX1BFTj1tCitAQCAtNDU5LDYgKzQ2Miw4IEBAIENPTkZJR19TTkRfU09DX1NJTVBMRV9BTVBM SUZJRVI9bQorIENPTkZJR19TTkRfU0lNUExFX0NBUkQ9bQorIENPTkZJR19ISURfQkFUVEVSWV9T VFJFTkdUSD15CisgQ09ORklHX0hJRFJBVz15CisrQ09ORklHX1VISUQ9bQorK0NPTkZJR19ISURf TUlDUk9TT0ZUPXkKKyBDT05GSUdfVVNCX0hJRERFVj15CisgQ09ORklHX0kyQ19ISURfT0Y9bQor IENPTkZJR19JMkNfSElEX09GX0dPT0RJWD1tCmRpZmYgLS1naXQgYS9nbnUvcGFja2FnZXMvcGF0 Y2hlcy9saW51eC1saWJyZS1hcm02NC1waW5lbm90ZS1kdHNpLnBhdGNoIGIvZ251L3BhY2thZ2Vz L3BhdGNoZXMvbGludXgtbGlicmUtYXJtNjQtcGluZW5vdGUtZHRzaS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5lMTJiODRhODZkCi0tLSAvZGV2L251bGwKKysr IGIvZ251L3BhY2thZ2VzL3BhdGNoZXMvbGludXgtbGlicmUtYXJtNjQtcGluZW5vdGUtZHRzaS5w YXRjaApAQCAtMCwwICsxLDE2NyBAQAorZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMv cm9ja2NoaXAvcmszNTY2LXBpbmVub3RlLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3JvY2tj aGlwL3JrMzU2Ni1waW5lbm90ZS5kdHNpCitpbmRleCA1OWFjMTc4ODgxYjMuLmVjNzE4MzMzMGI0 MCAxMDA2NDQKKy0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvcm9ja2NoaXAvcmszNTY2LXBpbmVu b3RlLmR0c2kKKysrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvcm9ja2NoaXAvcmszNTY2LXBpbmVu b3RlLmR0c2kKK0BAIC01MSwxMSArNTEsMTEgQEAgYmF0dGVyeV9jZWxsOiBiYXR0ZXJ5LWNlbGwg eworCisgCQlvY3YtY2FwYWNpdHktY2Vsc2l1cyA9IDwyMD47CisgCQlvY3YtY2FwYWNpdHktdGFi bGUtMCA9IDw0MTY4MDAwIDEwMD4sCistCQkJCSAgICAgICA8NDEwOTAwMCA5NT4sIDw0MDY2MDAw IDkwPiwgPDQwMjMwMDAgODU+LCA8Mzk4NTAwMCA4MD4sCistCQkJCSAgICAgICA8Mzk1NDAwMCA3 NT4sIDwzOTI0MDAwIDcwPiwgPDM4OTcwMDAgNjU+LCA8Mzg2NjAwMCA2MD4sCistCQkJCSAgICAg ICA8MzgyNjAwMCA1NT4sIDwzODA0MDAwIDUwPiwgPDM3ODkwMDAgNDU+LCA8Mzc3NzAwMCA0MD4s CistCQkJCSAgICAgICA8Mzc3MDAwMCAzNT4sIDwzNzYzMDAwIDMwPiwgPDM3NTAwMDAgMjU+LCA8 MzczMjAwMCAyMD4sCistCQkJCSAgICAgICA8MzcxMDAwMCAxNT4sIDwzNjgwMDAwIDEwPiwgPDM2 NzAwMDAgIDU+LCA8MzUwMDAwMCAgMD47CisrCQkJCQkgICA8NDEwOTAwMCA5NT4sIDw0MDY2MDAw IDkwPiwgPDQwMjMwMDAgODU+LCA8Mzk4NTAwMCA4MD4sCisrCQkJCQkgICA8Mzk1NDAwMCA3NT4s IDwzOTI0MDAwIDcwPiwgPDM4OTcwMDAgNjU+LCA8Mzg2NjAwMCA2MD4sCisrCQkJCQkgICA8Mzgy NjAwMCA1NT4sIDwzODA0MDAwIDUwPiwgPDM3ODkwMDAgNDU+LCA8Mzc3NzAwMCA0MD4sCisrCQkJ CQkgICA8Mzc3MDAwMCAzNT4sIDwzNzYzMDAwIDMwPiwgPDM3NTAwMDAgMjU+LCA8MzczMjAwMCAy MD4sCisrCQkJCQkgICA8MzcxMDAwMCAxNT4sIDwzNjgwMDAwIDEwPiwgPDM2NzAwMDAgIDU+LCA8 MzUwMDAwMCAgMD47CisgCX07CisKKyAJYnRfc2NvX2NvZGVjOiBidC1zY28tY29kZWMgeworQEAg LTYzLDI2ICs2MywyNiBAQCBidF9zY29fY29kZWM6IGJ0LXNjby1jb2RlYyB7CisgCQkjc291bmQt ZGFpLWNlbGxzID0gPDE+OworIAl9OworCistCWJ0LXNvdW5kIHsKKy0JCWNvbXBhdGlibGUgPSAi c2ltcGxlLWF1ZGlvLWNhcmQiOworLQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CistCQkjc2l6ZS1j ZWxscyA9IDwwPjsKKy0JCXNpbXBsZS1hdWRpby1jYXJkLG5hbWUgPSAiUGluZU5vdGUgQmx1ZXRv b3RoIjsKKy0KKy0JCXNpbXBsZS1hdWRpby1jYXJkLGRhaS1saW5rQDAgeworLQkJCWZvcm1hdCA9 ICJpMnMiOworLQkJCWZyYW1lLW1hc3RlciA9IDwmYnRfbGluazBfY3B1PjsKKy0JCQliaXRjbG9j ay1tYXN0ZXIgPSA8JmJ0X2xpbmswX2NwdT47CistCistCQkJYnRfbGluazBfY3B1OiBjcHUgewor LQkJCQlzb3VuZC1kYWkgPSA8JmkyczJfMmNoPjsKKy0JCQl9OworLQorLQkJCWJ0X2xpbmswX2Nv ZGVjOiBjb2RlYyB7CistCQkJCXNvdW5kLWRhaSA9IDwmYnRfc2NvX2NvZGVjIDA+OworLQkJCX07 CistCQl9OworLQl9OworKwkvLyBidC1zb3VuZCB7CisrCQkvLyBjb21wYXRpYmxlID0gInNpbXBs ZS1hdWRpby1jYXJkIjsKKysJCS8vICNhZGRyZXNzLWNlbGxzID0gPDE+OworKwkJLy8gI3NpemUt Y2VsbHMgPSA8MD47CisrCQkvLyBzaW1wbGUtYXVkaW8tY2FyZCxuYW1lID0gIlBpbmVOb3RlIEJs dWV0b290aCI7CisrLy8KKysJCS8vIHNpbXBsZS1hdWRpby1jYXJkLGRhaS1saW5rQDAgeworKwkJ CS8vIGZvcm1hdCA9ICJpMnMiOworKwkJCS8vIGZyYW1lLW1hc3RlciA9IDwmYnRfbGluazBfY3B1 PjsKKysJCQkvLyBiaXRjbG9jay1tYXN0ZXIgPSA8JmJ0X2xpbmswX2NwdT47CisrLy8KKysJCQkv LyBidF9saW5rMF9jcHU6IGNwdSB7CisrCQkJCS8vIHNvdW5kLWRhaSA9IDwmaTJzMl8yY2g+Owor KwkJCS8vIH07CisrLy8KKysJCQkvLyBidF9saW5rMF9jb2RlYzogY29kZWMgeworKwkJCQkvLyBz b3VuZC1kYWkgPSA8JmJ0X3Njb19jb2RlYyAwPjsKKysJCQkvLyB9OworKwkJLy8gfTsKKysJLy8g fTsKKworIAlkbWljX2NvZGVjOiBkbWljLWNvZGVjIHsKKyAJCWNvbXBhdGlibGUgPSAiZG1pYy1j b2RlYyI7CitAQCAtOTUsMTUgKzk1LDE1IEBAIGdwaW8ta2V5cyB7CisgCQlwaW5jdHJsLTAgPSA8 JmhhbGxfaW50X2w+OworIAkJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKworLQkJY292ZXIg eworLQkJCWxhYmVsID0gImNvdmVyIjsKKy0JCQlncGlvcyA9IDwmZ3BpbzAgUktfUEM3IEdQSU9f QUNUSVZFX0xPVz47CistCQkJbGludXgsaW5wdXQtdHlwZSA9IDxFVl9TVz47CistCQkJbGludXgs Y29kZSA9IDxTV19NQUNISU5FX0NPVkVSPjsKKy0JCQlsaW51eCxjYW4tZGlzYWJsZTsKKy0JCQl3 YWtldXAtZXZlbnQtYWN0aW9uID0gPEVWX0FDVF9ERUFTU0VSVEVEPjsKKy0JCQl3YWtldXAtc291 cmNlOworLQkJfTsKKysJCS8qIGNvdmVyIHsgKi8KKysJCS8qCWxhYmVsID0gImNvdmVyIjsgKi8K KysJCS8qCWdwaW9zID0gPCZncGlvMCBSS19QQzcgR1BJT19BQ1RJVkVfTE9XPjsgKi8KKysJCS8q CWxpbnV4LGlucHV0LXR5cGUgPSA8RVZfU1c+OyAqLworKwkJLyoJbGludXgsY29kZSA9IDxTV19N QUNISU5FX0NPVkVSPjsgKi8KKysJCS8qCWxpbnV4LGNhbi1kaXNhYmxlOyAqLworKwkJLyoJd2Fr ZXVwLWV2ZW50LWFjdGlvbiA9IDxFVl9BQ1RfREVBU1NFUlRFRD47ICovCisrCQkvKgl3YWtldXAt c291cmNlOyAqLworKwkJLyogfTsgKi8KKyAJfTsKKworIAlncGlvLWxlZHMgeworQEAgLTE2Niwx MyArMTY2LDEzIEBAIHNvdW5kIHsKKyAJCXNpbXBsZS1hdWRpby1jYXJkLG5hbWUgPSAiUGluZU5v dGUiOworIAkJc2ltcGxlLWF1ZGlvLWNhcmQsYXV4LWRldnMgPSA8JnNwa19hbXA+OworIAkJc2lt cGxlLWF1ZGlvLWNhcmQsd2lkZ2V0cyA9ICJIZWFkcGhvbmUiLCAiSGVhZHBob25lcyIsCistCQkJ CQkgICAgIlNwZWFrZXIiLCAiSW50ZXJuYWwgU3BlYWtlcnMiOworKwkJCQkJCSJTcGVha2VyIiwg IkludGVybmFsIFNwZWFrZXJzIjsKKyAJCXNpbXBsZS1hdWRpby1jYXJkLHJvdXRpbmcgPSAiSGVh ZHBob25lcyIsICJIUE9MIiwKKy0JCQkJCSAgICAiSGVhZHBob25lcyIsICJIUE9SIiwKKy0JCQkJ CSAgICAiSW50ZXJuYWwgU3BlYWtlcnMiLCAiU3BlYWtlciBBbXAgT1VUTCIsCistCQkJCQkgICAg IkludGVybmFsIFNwZWFrZXJzIiwgIlNwZWFrZXIgQW1wIE9VVFIiLAorLQkJCQkJICAgICJTcGVh a2VyIEFtcCBJTkwiLCAiSFBPTCIsCistCQkJCQkgICAgIlNwZWFrZXIgQW1wIElOUiIsICJIUE9S IjsKKysJCQkJCQkiSGVhZHBob25lcyIsICJIUE9SIiwKKysJCQkJCQkiSW50ZXJuYWwgU3BlYWtl cnMiLCAiU3BlYWtlciBBbXAgT1VUTCIsCisrCQkJCQkJIkludGVybmFsIFNwZWFrZXJzIiwgIlNw ZWFrZXIgQW1wIE9VVFIiLAorKwkJCQkJCSJTcGVha2VyIEFtcCBJTkwiLCAiSFBPTCIsCisrCQkJ CQkJIlNwZWFrZXIgQW1wIElOUiIsICJIUE9SIjsKKyAJCXNpbXBsZS1hdWRpby1jYXJkLHBpbi1z d2l0Y2hlcyA9ICJJbnRlcm5hbCBTcGVha2VycyI7CisgCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsK KyAJCSNzaXplLWNlbGxzID0gPDA+OworQEAgLTM0MCw3ICszNDAsNyBAQCAmZWluayB7CisKKyAm Z3B1IHsKKyAJbWFsaS1zdXBwbHkgPSA8JnZkZF9ncHVfbnB1PjsKKy0JLy8gc3RhdHVzID0gIm9r YXkiOworKwlzdGF0dXMgPSAib2theSI7CisgfTsKKworICZpMmMwIHsKK0BAIC02NjksMTkgKzY2 OSwzMSBAQCBhY2NlbGVyb21ldGVyQDE4IHsKKyAJCXN0LGRyZHktaW50LXBpbiA9IDwxPjsKKyAJ CXZkZC1zdXBwbHkgPSA8JnZjY18zdjM+OworIAkJdmRkaW8tc3VwcGx5ID0gPCZ2Y2NfM3YzPjsK Ky0JfTsKKy0KKy0JdG91Y2hzY3JlZW5AMjQgeworLQkJY29tcGF0aWJsZSA9ICJjeXByZXNzLHR0 MjEwMDAiOworLQkJaGlkLWRlc2NyLWFkZHIgPSA8MHgxPjsKKy0JCXJlZyA9IDwweDI0PjsKKy0J CWludGVycnVwdC1wYXJlbnQgPSA8JmdwaW8wPjsKKy0JCWludGVycnVwdHMgPSA8UktfUEE2IElS UV9UWVBFX0xFVkVMX0xPVz47CistCQlwaW5jdHJsLTAgPSA8JnRzX2ludF9sPiwgPCZ0c19yc3Rf bD47CistCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworLQkJcmVzZXQtZ3Bpb3MgPSA8Jmdw aW8wIFJLX1BBNSBHUElPX0FDVElWRV9MT1c+OworLQkJdmRkLXN1cHBseSA9IDwmdmNjXzN2M19w bXU+OworLQl9OworKwkJbW91bnQtbWF0cml4ID0gIi0xIiwgIjAiLCAiMCIsCisrCQkJCQkiMCIs ICIxIiwgIjAiLAorKwkJCQkJIjAiLCAiMCIsICIxIjsKKysJfTsKKysKKysJLy8gZnJvbSBwZ3dp cGVvdXRzIGR0c2kKKysgICAgdG91Y2hzY3JlZW5AMjQgeworKyAgICAgICAgY29tcGF0aWJsZSA9 ICJjeXByZXNzLHRtYTQ0OCI7CisrLy8gICAgICBjb21wYXRpYmxlID0gImN5cHJlc3MsdHQyMTAw MCI7CisrICAgICAgICBoaWQtZGVzY3ItYWRkciA9IDwweDE+OworKyAgICAgICAgcmVnID0gPDB4 MjQ+OworKyAgICAgICAgaW50ZXJydXB0LXBhcmVudCA9IDwmZ3BpbzA+OworKyAgICAgICAgaW50 ZXJydXB0cyA9IDxSS19QQTYgSVJRX1RZUEVfTEVWRUxfTE9XPjsKKysgICAgICAgIHBpbmN0cmwt MCA9IDwmdHNfaW50X2w+LCA8JnRzX3JzdF9sPjsKKysgICAgICAgIHBpbmN0cmwtbmFtZXMgPSAi ZGVmYXVsdCI7CisrICAgICAgICByZXNldC1ncGlvcyA9IDwmZ3BpbzAgUktfUEE1IEdQSU9fQUNU SVZFX0xPVz47CisrICAgICAgICB2ZGQtc3VwcGx5ID0gPCZ2Y2NfM3YzX3BtdT47CisrICAgICAg ICB0b3VjaHNjcmVlbi1tYXgtcHJlc3N1cmUgPSA8NDY+OworKyAgICAgICAgdG91Y2hzY3JlZW4t bWluLXggPSA8MTA+OworKyAgICAgICAgdG91Y2hzY3JlZW4tbWluLXkgPSA8NT47CisrICAgICAg ICB0b3VjaHNjcmVlbi1zaXplLXggPSA8MTg2Mz47CisrICAgICAgICB0b3VjaHNjcmVlbi1zaXpl LXkgPSA8MTM5OT47CisrICAgICAgICB0b3VjaHNjcmVlbi14LW1tID0gPDE4NjQ+OworKyAgICAg ICAgdG91Y2hzY3JlZW4teS1tbSA9IDwxNDAwPjsKKysgICAgfTsKKyB9OworCisgJmkyczFfOGNo IHsKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9wYXRjaGVzL2xpbnV4LWxpYnJlLWFybTY0LXBp bmVub3RlLWViYy1wYXRjaGVzLnBhdGNoIGIvZ251L3BhY2thZ2VzL3BhdGNoZXMvbGludXgtbGli cmUtYXJtNjQtcGluZW5vdGUtZWJjLXBhdGNoZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMC4uN2ZjZDUwODU4YgotLS0gL2Rldi9udWxsCisrKyBiL2dudS9wYWNr YWdlcy9wYXRjaGVzL2xpbnV4LWxpYnJlLWFybTY0LXBpbmVub3RlLWViYy1wYXRjaGVzLnBhdGNo CkBAIC0wLDAgKzEsMjg1MiBAQAorRnJvbSBjYjgwZDlmOTlmNzVlYTFlZDZjOGM2YjE5NDkxMGI2 YWU5NTc0YTA3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF4aW1pbGlhbiBXZWln YW5kIDxtd2VpZ2FuZEBtd2VpZ2FuZC5uZXQ+CitEYXRlOiBNb24sIDMwIE1heSAyMDIyIDIxOjA2 OjMxICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDEvMzddIFtyb2NrY2hpcF9lYmNdIHdoZW4gZG9p bmcgcGFydGlhbCByZWZyZXNoZXMsIHdhaXQgZm9yCisgZWFjaCBmcmFtZSB0byBmaW5pc2ggKGku ZS4gd2FpdCBmb3IgdGhlIGlyYyBmcm9tIHRoZSBlcGQgY29udHJvbGxlcikgYmVmb3JlCisgc3Rh cnRpbmcgdG8gZmlsbCBpbiB0aGUgYnVmZmVycyBmb3IgdGhlIG5leHQgZnJhbWUKKworLS0tCisg ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jIHwgMTUgKysrKysrKysrKy0t LS0tCisgMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisK K2RpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgYi9k cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKK2luZGV4IDI4NWY0M2JjNmQ5 MS4uZDdlZDk1NGUxNjE4IDEwMDY0NAorLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3Jv Y2tjaGlwX2ViYy5jCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJj LmMKK0BAIC01ODAsMTEgKzU4MCwxMSBAQCBzdGF0aWMgdm9pZCByb2NrY2hpcF9lYmNfcGFydGlh bF9yZWZyZXNoKHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywKKyAJCWRtYV9zeW5jX3NpbmdsZV9m b3JfZGV2aWNlKGRldiwgcGhhc2VfaGFuZGxlLAorIAkJCQkJICAgY3R4LT5waGFzZV9zaXplLCBE TUFfVE9fREVWSUNFKTsKKyAKKy0JCWlmIChmcmFtZSkgeworLQkJCWlmICghd2FpdF9mb3JfY29t cGxldGlvbl90aW1lb3V0KCZlYmMtPmRpc3BsYXlfZW5kLAorLQkJCQkJCQkgRUJDX0ZSQU1FX1RJ TUVPVVQpKQorLQkJCQlkcm1fZXJyKGRybSwgIkZyYW1lICVkIHRpbWVkIG91dCFcbiIsIGZyYW1l KTsKKy0JCX0KKysJCS8qIGlmIChmcmFtZSkgeyAqLworKwkJLyogCWlmICghd2FpdF9mb3JfY29t cGxldGlvbl90aW1lb3V0KCZlYmMtPmRpc3BsYXlfZW5kLCAqLworKwkJLyogCQkJCQkgRUJDX0ZS QU1FX1RJTUVPVVQpKSAqLworKwkJLyogCQlkcm1fZXJyKGRybSwgIkZyYW1lICVkIHRpbWVkIG91 dCFcbiIsIGZyYW1lKTsgKi8KKysJCS8qIH0gKi8KKyAKKyAJCWlmIChsaXN0X2VtcHR5KCZhcmVh cykpCisgCQkJYnJlYWs7CitAQCAtNTk3LDYgKzU5NywxMSBAQCBzdGF0aWMgdm9pZCByb2NrY2hp cF9lYmNfcGFydGlhbF9yZWZyZXNoKHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywKKyAJCXJlZ21h cF93cml0ZShlYmMtPnJlZ21hcCwgRUJDX0RTUF9TVEFSVCwKKyAJCQkgICAgIGViYy0+ZHNwX3N0 YXJ0IHwKKyAJCQkgICAgIEVCQ19EU1BfU1RBUlRfRFNQX0ZSTV9TVEFSVCk7CisrCQlpZiAoZnJh bWUpIHsKKysJCQlpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmZWJjLT5kaXNwbGF5 X2VuZCwKKysJCQkJCQkJIEVCQ19GUkFNRV9USU1FT1VUKSkKKysJCQkJZHJtX2Vycihkcm0sICJG cmFtZSAlZCB0aW1lZCBvdXQhXG4iLCBmcmFtZSk7CisrCQl9CisgCX0KKyB9CisgCistLSAKKzIu MzAuMgorCisKK0Zyb20gY2RiZmNlYzE4NGVkNTVkYTJkNTVhODYyMjI0MGU1YTMwYzAzZWIxZSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1heGltaWxpYW4gV2VpZ2FuZCA8bXdlaWdh bmRAbXdlaWdhbmQubmV0PgorRGF0ZTogTW9uLCAzMCBNYXkgMjAyMiAyMToxMzo1NyArMDIwMAor U3ViamVjdDogW1BBVENIIDAyLzM3XSBbcm9ja2NoaXBfZWJjXSBjaGFuZ2UgdGhlIGRtYSBtYXBw aW5ncyBpbgorIHJvY2tjaGlwX2ViY19wYXJ0aWFsX3JlZnJlc2ggYWNjb3JkaW5nIHRvIHRoZSBk b2N1bWVudGF0aW9uIGluCisgRG9jdW1lbnRhdGlvbi9jb3JlLWFwaS9kbWEtYXBpLnJzdCBhbmQg dXNlIGRtYV9tYXBfc2luZ2xlIHRvIGdldCBkbWEgYWRkcmVzcworCistLS0KKyBkcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgfCAxOSArKysrKysrKysrKysrKysrLS0tCisg MSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgYi9kcml2ZXJz L2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKK2luZGV4IGQ3ZWQ5NTRlMTYxOC4uYjBk ZmM0OTNjMDU5IDEwMDY0NAorLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlw X2ViYy5jCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKK0BA IC0xMyw2ICsxMyw3IEBACisgI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKyAjaW5jbHVk ZSA8bGludXgvcmVnbWFwLmg+CisgI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5o PgorKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorIAorICNpbmNsdWRlIDxkcm0vZHJt X2F0b21pYy5oPgorICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KK0BAIC00Nzks OCArNDgwLDggQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJjX2JsaXRfcGl4ZWxzKGNvbnN0IHN0 cnVjdCByb2NrY2hpcF9lYmNfY3R4ICpjdHgsCisgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJjX3Bh cnRpYWxfcmVmcmVzaChzdHJ1Y3Qgcm9ja2NoaXBfZWJjICplYmMsCisgCQkJCQkgc3RydWN0IHJv Y2tjaGlwX2ViY19jdHggKmN0eCkKKyB7CistCWRtYV9hZGRyX3QgbmV4dF9oYW5kbGUgPSB2aXJ0 X3RvX3BoeXMoY3R4LT5uZXh0KTsKKy0JZG1hX2FkZHJfdCBwcmV2X2hhbmRsZSA9IHZpcnRfdG9f cGh5cyhjdHgtPnByZXYpOworKwkvLyBkbWFfYWRkcl90IG5leHRfaGFuZGxlID0gdmlydF90b19w aHlzKGN0eC0+bmV4dCk7CisrCS8vIGRtYV9hZGRyX3QgcHJldl9oYW5kbGUgPSB2aXJ0X3RvX3Bo eXMoY3R4LT5wcmV2KTsKKyAJc3RydWN0IHJvY2tjaGlwX2ViY19hcmVhICphcmVhLCAqbmV4dF9h cmVhOworIAl1MzIgbGFzdF9waGFzZSA9IGViYy0+bHV0Lm51bV9waGFzZXMgLSAxOworIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZHJtID0gJmViYy0+ZHJtOworQEAgLTQ4OSwxMCArNDkwLDE4IEBAIHN0 YXRpYyB2b2lkIHJvY2tjaGlwX2ViY19wYXJ0aWFsX3JlZnJlc2goc3RydWN0IHJvY2tjaGlwX2Vi YyAqZWJjLAorIAlMSVNUX0hFQUQoYXJlYXMpOworIAl1MzIgZnJhbWU7CisgCisrCWRtYV9hZGRy X3QgbmV4dF9oYW5kbGUgPSBkbWFfbWFwX3NpbmdsZShkZXYsIGN0eC0+bmV4dCwgY3R4LT5ncmF5 NF9zaXplLCBETUFfVE9fREVWSUNFKTsKKysJZG1hX2FkZHJfdCBwcmV2X2hhbmRsZSA9IGRtYV9t YXBfc2luZ2xlKGRldiwgY3R4LT5wcmV2LCBjdHgtPmdyYXk0X3NpemUsIERNQV9UT19ERVZJQ0Up OworKworKwlkbWFfYWRkcl90IHBoYXNlX2hhbmRsZXNbMl07CisrCXBoYXNlX2hhbmRsZXNbMF0g PSBkbWFfbWFwX3NpbmdsZShkZXYsIGN0eC0+cGhhc2VbMF0sIGN0eC0+Z3JheTRfc2l6ZSwgRE1B X1RPX0RFVklDRSk7CisrCXBoYXNlX2hhbmRsZXNbMV0gPSBkbWFfbWFwX3NpbmdsZShkZXYsIGN0 eC0+cGhhc2VbMV0sIGN0eC0+Z3JheTRfc2l6ZSwgRE1BX1RPX0RFVklDRSk7CisrCisgCWZvciAo ZnJhbWUgPSAwOzsgZnJhbWUrKykgeworIAkJLyogU3dhcCBwaGFzZSBidWZmZXJzIHRvIG1pbmlt aXplIGxhdGVuY3kgYmV0d2VlbiBmcmFtZXMuICovCisgCQl1OCAqcGhhc2VfYnVmZmVyID0gY3R4 LT5waGFzZVtmcmFtZSAlIDJdOworLQkJZG1hX2FkZHJfdCBwaGFzZV9oYW5kbGUgPSB2aXJ0X3Rv X3BoeXMocGhhc2VfYnVmZmVyKTsKKysJCS8vIGRtYV9hZGRyX3QgcGhhc2VfaGFuZGxlID0gdmly dF90b19waHlzKHBoYXNlX2J1ZmZlcik7CisrCQlkbWFfYWRkcl90IHBoYXNlX2hhbmRsZSA9IHBo YXNlX2hhbmRsZXNbZnJhbWUgJSAyXTsKKyAJCWJvb2wgc3luY19uZXh0ID0gZmFsc2U7CisgCQli b29sIHN5bmNfcHJldiA9IGZhbHNlOworIAorQEAgLTYwMyw2ICs2MTIsMTAgQEAgc3RhdGljIHZv aWQgcm9ja2NoaXBfZWJjX3BhcnRpYWxfcmVmcmVzaChzdHJ1Y3Qgcm9ja2NoaXBfZWJjICplYmMs CisgCQkJCWRybV9lcnIoZHJtLCAiRnJhbWUgJWQgdGltZWQgb3V0IVxuIiwgZnJhbWUpOworIAkJ fQorIAl9CisrCWRtYV91bm1hcF9zaW5nbGUoZGV2LCBuZXh0X2hhbmRsZSwgY3R4LT5ncmF5NF9z aXplLCBETUFfVE9fREVWSUNFKTsKKysJZG1hX3VubWFwX3NpbmdsZShkZXYsIHByZXZfaGFuZGxl LCBjdHgtPmdyYXk0X3NpemUsIERNQV9UT19ERVZJQ0UpOworKwlkbWFfdW5tYXBfc2luZ2xlKGRl diwgcGhhc2VfaGFuZGxlc1swXSwgY3R4LT5ncmF5NF9zaXplLCBETUFfVE9fREVWSUNFKTsKKysJ ZG1hX3VubWFwX3NpbmdsZShkZXYsIHBoYXNlX2hhbmRsZXNbMV0sIGN0eC0+Z3JheTRfc2l6ZSwg RE1BX1RPX0RFVklDRSk7CisgfQorIAorIHN0YXRpYyB2b2lkIHJvY2tjaGlwX2ViY19yZWZyZXNo KHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywKKy0tIAorMi4zMC4yCisKKworRnJvbSBmNzllMTZk ZjlhOGY3ODUzZTIwNmQ1ZjRjYjEyMmNhMjMxYTBiMmFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogTWF4aW1pbGlhbiBXZWlnYW5kIDxtd2VpZ2FuZEBtd2VpZ2FuZC5uZXQ+CitEYXRl OiBNb24sIDMwIE1heSAyMDIyIDIxOjI1OjI5ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDMvMzdd IFtyb2NrY2hpcF9lYmNdIFNvbWUgcGVvcGxlIChpbmNsdWRpbmcgbWUgb24gYSBEZWJpYW4KKyBz aWQgaW5zdGFsbGF0aW9uKSBzZWUga2VybmVsIHBhbmljcy9oYW5ncyBvbiByZWJvb3Qvc2h1dGRv d24gKGFuZCBtb2R1bGUKKyB1bmxvYWQpIHdpdGggdGhlIG5ldyBkcml2ZXIuICBJbnZlc3RpZ2F0 aW9uIHNob3dzIHRoYXQgdGhlIHJlZnJlc2ggdGhyZWFkCisgaGFuZ3Mgb24gdGhlIHNjaGVkdWxl KCkgY29tbWFuZCwgd2hpY2ggbGVhZCBtZSB0byBiZWxpZXZlIHRoYXQgdGhlIHRocmVhZCBpcwor IG5vdCBwcm9wZXJseSBzaHV0IGRvd24gd2hlbiB0aGUga2VybmVsIG1vZHVsZSBpcyB0cmlnZ2Vy ZWQgdG8gc2h1dGRvd24uIFRoaXMKKyBwYXRjaCBhdHRlbXB0cyB0bworCistIGV4cGxpY2l0bHkg c2h1dCBkb3duIHRoZSByZWZyZXNoIHRocmVhZCBiZWZvcmUgdGVybWluYXRpb24KKy0gYWRkcyBz b21lIGNvbnRyb2wgY29tbWFuZHMgdG8gcXVpY2tseSBmaW5pc2ggZm9yIHZhcmlvdXMgcGFyay9z dG9wCisgIHN0YXRlcworLSBvbmx5IGF0dGVtcHRzIHRvIHBhcmsgdGhlIHJlZnJlc2ggdGhyZWFk IGlmIGl0IGlzIG5vdCBkZWFkIHlldCAod2hpY2gKKyAgY2F1c2VkIGEga2VybmVsIHBhbmljIG9u IHNodXRkb3duKQorLS0tCisgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5j IHwgMjQgKysrKysrKysrKysrKysrLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDE1IGluc2Vy dGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2No aXBfZWJjLmMKK2luZGV4IGIwZGZjNDkzYzA1OS4uNGRmNzM3OTQyODFiIDEwMDY0NAorLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCisrKysgYi9kcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKK0BAIC0xMyw2ICsxMyw3IEBACisgI2luY2x1 ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKyAjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisgI2lu Y2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgorKyNpbmNsdWRlIDxsaW51eC9zY2hl ZC5oPgorICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorIAorICNpbmNsdWRlIDxkcm0v ZHJtX2F0b21pYy5oPgorQEAgLTc2MCwxMiArNzYxLDEzIEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBf ZWJjX3JlZnJlc2hfdGhyZWFkKHZvaWQgKmRhdGEpCisgCQkJcm9ja2NoaXBfZWJjX3JlZnJlc2go ZWJjLCBjdHgsIHRydWUsIERSTV9FUERfV0ZfUkVTRVQpOworIAkJfQorIAorLQkJd2hpbGUgKCFr dGhyZWFkX3Nob3VsZF9wYXJrKCkpIHsKKysJCXdoaWxlICgoIWt0aHJlYWRfc2hvdWxkX3Bhcmso KSkgJiYgKCFrdGhyZWFkX3Nob3VsZF9zdG9wKCkpKSB7CisgCQkJcm9ja2NoaXBfZWJjX3JlZnJl c2goZWJjLCBjdHgsIGZhbHNlLCBkZWZhdWx0X3dhdmVmb3JtKTsKKyAKKyAJCQlzZXRfY3VycmVu dF9zdGF0ZShUQVNLX0lETEUpOworLQkJCWlmIChsaXN0X2VtcHR5KCZjdHgtPnF1ZXVlKSkKKysJ CQlpZiAobGlzdF9lbXB0eSgmY3R4LT5xdWV1ZSkgJiYgKCFrdGhyZWFkX3Nob3VsZF9zdG9wKCkp ICYmICgha3RocmVhZF9zaG91bGRfcGFyaygpKSl7CisgCQkJCXNjaGVkdWxlKCk7CisrCQkJfQor IAkJCV9fc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19SVU5OSU5HKTsKKyAJCX0KKyAKK0BAIC03NzUs OCArNzc3LDkgQEAgc3RhdGljIGludCByb2NrY2hpcF9lYmNfcmVmcmVzaF90aHJlYWQodm9pZCAq ZGF0YSkKKyAJCSAqLworIAkJbWVtc2V0KGN0eC0+bmV4dCwgMHhmZiwgY3R4LT5ncmF5NF9zaXpl KTsKKyAJCXJvY2tjaGlwX2ViY19yZWZyZXNoKGViYywgY3R4LCB0cnVlLCBEUk1fRVBEX1dGX0dD MTYpOworLQorLQkJa3RocmVhZF9wYXJrbWUoKTsKKysJCWlmICgha3RocmVhZF9zaG91bGRfc3Rv cCgpKXsKKysJCQlrdGhyZWFkX3BhcmttZSgpOworKwkJfQorIAl9CisgCisgCXJldHVybiAwOwor QEAgLTkyNSw3ICs5MjgsNyBAQCBzdGF0aWMgdm9pZCByb2NrY2hpcF9lYmNfY3J0Y19hdG9taWNf ZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKyAKKyAJY3J0Y19zdGF0ZSA9IGRybV9hdG9t aWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKyAJaWYgKGNydGNfc3RhdGUtPm1v ZGVfY2hhbmdlZCkKKy0JCWt0aHJlYWRfdW5wYXJrKGViYy0+cmVmcmVzaF90aHJlYWQpOworKwkJ CWt0aHJlYWRfdW5wYXJrKGViYy0+cmVmcmVzaF90aHJlYWQpOworIH0KKyAKKyBzdGF0aWMgdm9p ZCByb2NrY2hpcF9lYmNfY3J0Y19hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMs CitAQCAtOTM1LDggKzkzOCwxMSBAQCBzdGF0aWMgdm9pZCByb2NrY2hpcF9lYmNfY3J0Y19hdG9t aWNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisgCXN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZTsKKyAKKyAJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRj X3N0YXRlKHN0YXRlLCBjcnRjKTsKKy0JaWYgKGNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCkKKy0J CWt0aHJlYWRfcGFyayhlYmMtPnJlZnJlc2hfdGhyZWFkKTsKKysJaWYgKGNydGNfc3RhdGUtPm1v ZGVfY2hhbmdlZCl7CisrCQlpZiAoISAoKGViYy0+cmVmcmVzaF90aHJlYWQtPl9fc3RhdGUpICYg KFRBU0tfREVBRCkpKXsKKysJCQlrdGhyZWFkX3BhcmsoZWJjLT5yZWZyZXNoX3RocmVhZCk7Cisr CQl9CisrCX0KKyB9CisgCisgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVu Y3Mgcm9ja2NoaXBfZWJjX2NydGNfaGVscGVyX2Z1bmNzID0geworQEAgLTE1NzMsOSArMTU3OSw4 IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZWJjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQorIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworIAorIAlkcm1fZGV2 X3VucmVnaXN0ZXIoJmViYy0+ZHJtKTsKKy0JZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oJmVi Yy0+ZHJtKTsKKy0KKyAJa3RocmVhZF9zdG9wKGViYy0+cmVmcmVzaF90aHJlYWQpOworKwlkcm1f YXRvbWljX2hlbHBlcl9zaHV0ZG93bigmZWJjLT5kcm0pOworIAorIAlwbV9ydW50aW1lX2Rpc2Fi bGUoZGV2KTsKKyAJaWYgKCFwbV9ydW50aW1lX3N0YXR1c19zdXNwZW5kZWQoZGV2KSkKK0BAIC0x NTg5LDYgKzE1OTQsNyBAQCBzdGF0aWMgdm9pZCByb2NrY2hpcF9lYmNfc2h1dGRvd24oc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyAJc3RydWN0IHJvY2tjaGlwX2ViYyAqZWJjID0gcGxh dGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5k ZXY7CisgCisrCWt0aHJlYWRfc3RvcChlYmMtPnJlZnJlc2hfdGhyZWFkKTsKKyAJZHJtX2F0b21p Y19oZWxwZXJfc2h1dGRvd24oJmViYy0+ZHJtKTsKKyAKKyAJaWYgKCFwbV9ydW50aW1lX3N0YXR1 c19zdXNwZW5kZWQoZGV2KSkKKy0tIAorMi4zMC4yCisKKworRnJvbSA3NGU5ZDgxNGMyOThmMDY0 YTA3ZWJjNzdiMWU3ZWM0NDdjYzM0MGY2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog TWF4aW1pbGlhbiBXZWlnYW5kIDxtd2VpZ2FuZEBtd2VpZ2FuZC5uZXQ+CitEYXRlOiBNb24sIDMw IE1heSAyMDIyIDIyOjIwOjQxICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDQvMzddIFtyb2NrY2hp cF9lYmNdIHVzZSBkbWFfc3luY19zaW5nbGVfZm9yX2NwdSBiZWZvcmUKKyB3cml0aW5nIHRvIGRt YSBidWZmZXJzCisKKy0tLQorIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMu YyB8IDUgKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgYi9kcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKK2luZGV4IDRkZjczNzk0MjgxYi4uZDhhZjQz ZmU5ZjQyIDEwMDY0NAorLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2Vi Yy5jCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKK0BAIC01 MDYsNiArNTA2LDkgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJjX3BhcnRpYWxfcmVmcmVzaChz dHJ1Y3Qgcm9ja2NoaXBfZWJjICplYmMsCisgCQlib29sIHN5bmNfbmV4dCA9IGZhbHNlOworIAkJ Ym9vbCBzeW5jX3ByZXYgPSBmYWxzZTsKKyAKKysJCS8vIG5vdyB0aGUgQ1BVIGlzIGFsbG93ZWQg dG8gY2hhbmdlIHRoZSBwaGFzZSBidWZmZXIKKysJCWRtYV9zeW5jX3NpbmdsZV9mb3JfY3B1KGRl diwgcGhhc2VfaGFuZGxlLCBwaGFzZV9zaXplLCBETUFfVE9fREVWSUNFKTsKKysKKyAJCS8qIE1v dmUgdGhlIHF1ZXVlZCBkYW1hZ2UgYXJlYXMgdG8gdGhlIGxvY2FsIGxpc3QuICovCisgCQlzcGlu X2xvY2soJmN0eC0+cXVldWVfbG9jayk7CisgCQlsaXN0X3NwbGljZV90YWlsX2luaXQoJmN0eC0+ cXVldWUsICZhcmVhcyk7CitAQCAtNTMzLDYgKzUzNiw3IEBAIHN0YXRpYyB2b2lkIHJvY2tjaGlw X2ViY19wYXJ0aWFsX3JlZnJlc2goc3RydWN0IHJvY2tjaGlwX2ViYyAqZWJjLAorIAorIAkJCS8q IENvcHkgY3R4LT5maW5hbCB0byBjdHgtPm5leHQgb24gdGhlIGZpcnN0IGZyYW1lLiAqLworIAkJ CWlmIChmcmFtZV9kZWx0YSA9PSAwKSB7CisrCQkJCWRtYV9zeW5jX3NpbmdsZV9mb3JfY3B1KGRl diwgbmV4dF9oYW5kbGUsIGdyYXk0X3NpemUsIERNQV9UT19ERVZJQ0UpOworIAkJCQlyb2NrY2hp cF9lYmNfYmxpdF9waXhlbHMoY3R4LCBjdHgtPm5leHQsCisgCQkJCQkJCSBjdHgtPmZpbmFsLAor IAkJCQkJCQkgJmFyZWEtPmNsaXApOworQEAgLTU2OCw2ICs1NzIsNyBAQCBzdGF0aWMgdm9pZCBy b2NrY2hpcF9lYmNfcGFydGlhbF9yZWZyZXNoKHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywKKyAJ CQkgKiBhbHNvIGVuc3VyZXMgYm90aCBwaGFzZSBidWZmZXJzIGdldCBzZXQgdG8gMHhmZi4KKyAJ CQkgKi8KKyAJCQlpZiAoZnJhbWVfZGVsdGEgPiBsYXN0X3BoYXNlKSB7CisrCQkJCWRtYV9zeW5j X3NpbmdsZV9mb3JfY3B1KGRldiwgcHJldl9oYW5kbGUsIGdyYXk0X3NpemUsIERNQV9UT19ERVZJ Q0UpOworIAkJCQlyb2NrY2hpcF9lYmNfYmxpdF9waXhlbHMoY3R4LCBjdHgtPnByZXYsCisgCQkJ CQkJCSBjdHgtPm5leHQsCisgCQkJCQkJCSAmYXJlYS0+Y2xpcCk7CistLSAKKzIuMzAuMgorCisK K0Zyb20gMzk2ODZkMjdmMDE5M2E2MjViNmY1NjliOGRlODhlMWI4NWU5MjQ4MCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1heGltaWxpYW4gV2VpZ2FuZCA8bXdlaWdhbmRAbXdlaWdh bmQubmV0PgorRGF0ZTogTW9uLCAzMCBNYXkgMjAyMiAyMjozOTowMCArMDIwMAorU3ViamVjdDog W1BBVENIIDA1LzM3XSByb2NrY2hpcF9lYmMgZml4IHByZXZpb3VzIGNvbW1pdAorCistLS0KKyBk cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgfCAyICstCisgMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZWJjLmMKK2luZGV4IGQ4YWY0M2ZlOWY0Mi4uNmEwZjEyNTA0MGRmIDEw MDY0NAorLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCisrKysg Yi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKK0BAIC01MDcsNyArNTA3 LDcgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJjX3BhcnRpYWxfcmVmcmVzaChzdHJ1Y3Qgcm9j a2NoaXBfZWJjICplYmMsCisgCQlib29sIHN5bmNfcHJldiA9IGZhbHNlOworIAorIAkJLy8gbm93 IHRoZSBDUFUgaXMgYWxsb3dlZCB0byBjaGFuZ2UgdGhlIHBoYXNlIGJ1ZmZlcgorLQkJZG1hX3N5 bmNfc2luZ2xlX2Zvcl9jcHUoZGV2LCBwaGFzZV9oYW5kbGUsIHBoYXNlX3NpemUsIERNQV9UT19E RVZJQ0UpOworKwkJZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUoZGV2LCBwaGFzZV9oYW5kbGUsIGN0 eC0+cGhhc2Vfc2l6ZSwgRE1BX1RPX0RFVklDRSk7CisgCisgCQkvKiBNb3ZlIHRoZSBxdWV1ZWQg ZGFtYWdlIGFyZWFzIHRvIHRoZSBsb2NhbCBsaXN0LiAqLworIAkJc3Bpbl9sb2NrKCZjdHgtPnF1 ZXVlX2xvY2spOworLS0gCisyLjMwLjIKKworCitGcm9tIGEzNDdhMDkwOWJiN2JkZTczYmE1M2I5 ZWJhZTA0NGY3ZmQxNzQ2NmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXhpbWls aWFuIFdlaWdhbmQgPG13ZWlnYW5kQG13ZWlnYW5kLm5ldD4KK0RhdGU6IEZyaSwgMyBKdW4gMjAy MiAyMToxMzoyOCArMDIwMAorU3ViamVjdDogW1BBVENIIDA2LzM3XSBbcm9ja2NoaXBfZWJjXSBj b252ZXJ0IGFsbCByZW1haW5pbmcgdXNlcyBvZgorIHZpcnRfdG9fcGh5cyB0byB0aGUgZG1hIGFw aQorCistLS0KKyBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgfCAzNyAr KysrKysrKysrKysrKy0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMo KyksIDE2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL3JvY2tjaGlwX2ViYy5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2Vi Yy5jCitpbmRleCA2YTBmMTI1MDQwZGYuLjg3ZGViODA5OGQyZCAxMDA2NDQKKy0tLSBhL2RyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworKysrIGIvZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCitAQCAtMzA4LDE1ICszMDgsMTcgQEAgdG9fZWJjX2Ny dGNfc3RhdGUoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQorIH0KKyAKKyBzdGF0 aWMgdm9pZCByb2NrY2hpcF9lYmNfZ2xvYmFsX3JlZnJlc2goc3RydWN0IHJvY2tjaGlwX2ViYyAq ZWJjLAorLQkJCQkJY29uc3Qgc3RydWN0IHJvY2tjaGlwX2ViY19jdHggKmN0eCkKKysJCQkJCXN0 cnVjdCByb2NrY2hpcF9lYmNfY3R4ICpjdHgsCisrCQkJCQkgZG1hX2FkZHJfdCBuZXh0X2hhbmRs ZSwKKysJCQkJCSBkbWFfYWRkcl90IHByZXZfaGFuZGxlCisrCQkJCQkpCisgeworIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZHJtID0gJmViYy0+ZHJtOworIAl1MzIgZ3JheTRfc2l6ZSA9IGN0eC0+Z3Jh eTRfc2l6ZTsKKyAJc3RydWN0IGRldmljZSAqZGV2ID0gZHJtLT5kZXY7CisgCistCWRtYV9zeW5j X3NpbmdsZV9mb3JfZGV2aWNlKGRldiwgdmlydF90b19waHlzKGN0eC0+bmV4dCksCisgCQkJCSAg IGdyYXk0X3NpemUsIERNQV9UT19ERVZJQ0UpOworLQlkbWFfc3luY19zaW5nbGVfZm9yX2Rldmlj ZShkZXYsIHZpcnRfdG9fcGh5cyhjdHgtPnByZXYpLAorKwlkbWFfc3luY19zaW5nbGVfZm9yX2Rl dmljZShkZXYsIHByZXZfaGFuZGxlLAorIAkJCQkgICBncmF5NF9zaXplLCBETUFfVE9fREVWSUNF KTsKKyAKKyAJcmVpbml0X2NvbXBsZXRpb24oJmViYy0+ZGlzcGxheV9lbmQpOworQEAgLTQ3OSwx MCArNDgxLDExIEBAIHN0YXRpYyB2b2lkIHJvY2tjaGlwX2ViY19ibGl0X3BpeGVscyhjb25zdCBz dHJ1Y3Qgcm9ja2NoaXBfZWJjX2N0eCAqY3R4LAorIH0KKyAKKyBzdGF0aWMgdm9pZCByb2NrY2hp cF9lYmNfcGFydGlhbF9yZWZyZXNoKHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywKKy0JCQkJCSBz dHJ1Y3Qgcm9ja2NoaXBfZWJjX2N0eCAqY3R4KQorKwkJCQkJIHN0cnVjdCByb2NrY2hpcF9lYmNf Y3R4ICpjdHgsCisrCQkJCQkgZG1hX2FkZHJfdCBuZXh0X2hhbmRsZSwKKysJCQkJCSBkbWFfYWRk cl90IHByZXZfaGFuZGxlCisrCQkJCQkgKQorIHsKKy0JLy8gZG1hX2FkZHJfdCBuZXh0X2hhbmRs ZSA9IHZpcnRfdG9fcGh5cyhjdHgtPm5leHQpOworLQkvLyBkbWFfYWRkcl90IHByZXZfaGFuZGxl ID0gdmlydF90b19waHlzKGN0eC0+cHJldik7CisgCXN0cnVjdCByb2NrY2hpcF9lYmNfYXJlYSAq YXJlYSwgKm5leHRfYXJlYTsKKyAJdTMyIGxhc3RfcGhhc2UgPSBlYmMtPmx1dC5udW1fcGhhc2Vz IC0gMTsKKyAJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9ICZlYmMtPmRybTsKK0BAIC00OTEsOSAr NDk0LDYgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJjX3BhcnRpYWxfcmVmcmVzaChzdHJ1Y3Qg cm9ja2NoaXBfZWJjICplYmMsCisgCUxJU1RfSEVBRChhcmVhcyk7CisgCXUzMiBmcmFtZTsKKyAK Ky0JZG1hX2FkZHJfdCBuZXh0X2hhbmRsZSA9IGRtYV9tYXBfc2luZ2xlKGRldiwgY3R4LT5uZXh0 LCBjdHgtPmdyYXk0X3NpemUsIERNQV9UT19ERVZJQ0UpOworLQlkbWFfYWRkcl90IHByZXZfaGFu ZGxlID0gZG1hX21hcF9zaW5nbGUoZGV2LCBjdHgtPnByZXYsIGN0eC0+Z3JheTRfc2l6ZSwgRE1B X1RPX0RFVklDRSk7CistCisgCWRtYV9hZGRyX3QgcGhhc2VfaGFuZGxlc1syXTsKKyAJcGhhc2Vf aGFuZGxlc1swXSA9IGRtYV9tYXBfc2luZ2xlKGRldiwgY3R4LT5waGFzZVswXSwgY3R4LT5ncmF5 NF9zaXplLCBETUFfVE9fREVWSUNFKTsKKyAJcGhhc2VfaGFuZGxlc1sxXSA9IGRtYV9tYXBfc2lu Z2xlKGRldiwgY3R4LT5waGFzZVsxXSwgY3R4LT5ncmF5NF9zaXplLCBETUFfVE9fREVWSUNFKTsK K0BAIC01MDEsNyArNTAxLDYgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJjX3BhcnRpYWxfcmVm cmVzaChzdHJ1Y3Qgcm9ja2NoaXBfZWJjICplYmMsCisgCWZvciAoZnJhbWUgPSAwOzsgZnJhbWUr KykgeworIAkJLyogU3dhcCBwaGFzZSBidWZmZXJzIHRvIG1pbmltaXplIGxhdGVuY3kgYmV0d2Vl biBmcmFtZXMuICovCisgCQl1OCAqcGhhc2VfYnVmZmVyID0gY3R4LT5waGFzZVtmcmFtZSAlIDJd OworLQkJLy8gZG1hX2FkZHJfdCBwaGFzZV9oYW5kbGUgPSB2aXJ0X3RvX3BoeXMocGhhc2VfYnVm ZmVyKTsKKyAJCWRtYV9hZGRyX3QgcGhhc2VfaGFuZGxlID0gcGhhc2VfaGFuZGxlc1tmcmFtZSAl IDJdOworIAkJYm9vbCBzeW5jX25leHQgPSBmYWxzZTsKKyAJCWJvb2wgc3luY19wcmV2ID0gZmFs c2U7CitAQCAtNjE4LDggKzYxNyw2IEBAIHN0YXRpYyB2b2lkIHJvY2tjaGlwX2ViY19wYXJ0aWFs X3JlZnJlc2goc3RydWN0IHJvY2tjaGlwX2ViYyAqZWJjLAorIAkJCQlkcm1fZXJyKGRybSwgIkZy YW1lICVkIHRpbWVkIG91dCFcbiIsIGZyYW1lKTsKKyAJCX0KKyAJfQorLQlkbWFfdW5tYXBfc2lu Z2xlKGRldiwgbmV4dF9oYW5kbGUsIGN0eC0+Z3JheTRfc2l6ZSwgRE1BX1RPX0RFVklDRSk7Cist CWRtYV91bm1hcF9zaW5nbGUoZGV2LCBwcmV2X2hhbmRsZSwgY3R4LT5ncmF5NF9zaXplLCBETUFf VE9fREVWSUNFKTsKKyAJZG1hX3VubWFwX3NpbmdsZShkZXYsIHBoYXNlX2hhbmRsZXNbMF0sIGN0 eC0+Z3JheTRfc2l6ZSwgRE1BX1RPX0RFVklDRSk7CisgCWRtYV91bm1hcF9zaW5nbGUoZGV2LCBw aGFzZV9oYW5kbGVzWzFdLCBjdHgtPmdyYXk0X3NpemUsIERNQV9UT19ERVZJQ0UpOworIH0KK0BA IC02MzMsNiArNjMwLDggQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJjX3JlZnJlc2goc3RydWN0 IHJvY2tjaGlwX2ViYyAqZWJjLAorIAl1MzIgZHNwX2N0cmwgPSAwLCBlcGRfY3RybCA9IDA7Cisg CXN0cnVjdCBkZXZpY2UgKmRldiA9IGRybS0+ZGV2OworIAlpbnQgcmV0LCB0ZW1wZXJhdHVyZTsK KysJZG1hX2FkZHJfdCBuZXh0X2hhbmRsZTsKKysJZG1hX2FkZHJfdCBwcmV2X2hhbmRsZTsKKyAK KyAJLyogUmVzdW1lIGFzeW5jaHJvbm91c2x5IHdoaWxlIHByZXBhcmluZyB0byByZWZyZXNoLiAq LworIAlyZXQgPSBwbV9ydW50aW1lX2dldChkZXYpOworQEAgLTcwMCwxNSArNjk5LDIxIEBAIHN0 YXRpYyB2b2lkIHJvY2tjaGlwX2ViY19yZWZyZXNoKHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywK KyAJCQkgICBFQkNfRFNQX0NUUkxfRFNQX0xVVF9NT0RFLAorIAkJCSAgIGRzcF9jdHJsKTsKKyAK KysJbmV4dF9oYW5kbGUgPSBkbWFfbWFwX3NpbmdsZShkZXYsIGN0eC0+bmV4dCwgY3R4LT5ncmF5 NF9zaXplLCBETUFfVE9fREVWSUNFKTsKKysJcHJldl9oYW5kbGUgPSBkbWFfbWFwX3NpbmdsZShk ZXYsIGN0eC0+cHJldiwgY3R4LT5ncmF5NF9zaXplLCBETUFfVE9fREVWSUNFKTsKKysKKyAJcmVn bWFwX3dyaXRlKGViYy0+cmVnbWFwLCBFQkNfV0lOX01TVDAsCistCQkgICAgIHZpcnRfdG9fcGh5 cyhjdHgtPm5leHQpKTsKKysJCSAgICAgbmV4dF9oYW5kbGUpOworIAlyZWdtYXBfd3JpdGUoZWJj LT5yZWdtYXAsIEVCQ19XSU5fTVNUMSwKKy0JCSAgICAgdmlydF90b19waHlzKGN0eC0+cHJldikp OworKwkJICAgICBwcmV2X2hhbmRsZSk7CisgCisgCWlmIChnbG9iYWxfcmVmcmVzaCkKKy0JCXJv Y2tjaGlwX2ViY19nbG9iYWxfcmVmcmVzaChlYmMsIGN0eCk7CisrCQlyb2NrY2hpcF9lYmNfZ2xv YmFsX3JlZnJlc2goZWJjLCBjdHgsIG5leHRfaGFuZGxlLCBwcmV2X2hhbmRsZSk7CisgCWVsc2UK Ky0JCXJvY2tjaGlwX2ViY19wYXJ0aWFsX3JlZnJlc2goZWJjLCBjdHgpOworKwkJcm9ja2NoaXBf ZWJjX3BhcnRpYWxfcmVmcmVzaChlYmMsIGN0eCwgbmV4dF9oYW5kbGUsIHByZXZfaGFuZGxlKTsK KysKKysJZG1hX3VubWFwX3NpbmdsZShkZXYsIG5leHRfaGFuZGxlLCBjdHgtPmdyYXk0X3NpemUs IERNQV9UT19ERVZJQ0UpOworKwlkbWFfdW5tYXBfc2luZ2xlKGRldiwgcHJldl9oYW5kbGUsIGN0 eC0+Z3JheTRfc2l6ZSwgRE1BX1RPX0RFVklDRSk7CisgCisgCS8qIERyaXZlIHRoZSBvdXRwdXQg cGlucyBsb3cgb25jZSB0aGUgcmVmcmVzaCBpcyBjb21wbGV0ZS4gKi8KKyAJcmVnbWFwX3dyaXRl KGViYy0+cmVnbWFwLCBFQkNfRFNQX1NUQVJULAorLS0gCisyLjMwLjIKKworCitGcm9tIDI4YTAy NGVhMDc3MTA1YTU2N2Y4MTUxZjE4MmY5ZTI5YzE5MDI3ZTUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBNYXhpbWlsaWFuIFdlaWdhbmQgPG13ZWlnYW5kQG13ZWlnYW5kLm5ldD4KK0Rh dGU6IEZyaSwgMyBKdW4gMjAyMiAyMToxNjozNyArMDIwMAorU3ViamVjdDogW1BBVENIIDA3LzM3 XSBbcm9ja2NoaXBfZWJjXSBhZGQgbWlzc2luZyBkbWEgc2luYyBjYWxsCisKKy0tLQorIGRyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyB8IDEgKworIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX2ViYy5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5j CitpbmRleCA4N2RlYjgwOThkMmQuLjA2ODE1MDRmYzhkNyAxMDA2NDQKKy0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL3JvY2tjaGlwX2ViYy5jCitAQCAtMzE3LDYgKzMxNyw3IEBAIHN0YXRpYyB2b2lkIHJv Y2tjaGlwX2ViY19nbG9iYWxfcmVmcmVzaChzdHJ1Y3Qgcm9ja2NoaXBfZWJjICplYmMsCisgCXUz MiBncmF5NF9zaXplID0gY3R4LT5ncmF5NF9zaXplOworIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBk cm0tPmRldjsKKyAKKysJZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoZGV2LCBuZXh0X2hhbmRs ZSwKKyAJCQkJICAgZ3JheTRfc2l6ZSwgRE1BX1RPX0RFVklDRSk7CisgCWRtYV9zeW5jX3Npbmds ZV9mb3JfZGV2aWNlKGRldiwgcHJldl9oYW5kbGUsCisgCQkJCSAgIGdyYXk0X3NpemUsIERNQV9U T19ERVZJQ0UpOworLS0gCisyLjMwLjIKKworCitGcm9tIDdlOWUxOWQ1MzQyZjViOWJmNzlkMGRj ZGRlZTIxMDhkMTk5MWI3YmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXhpbWls aWFuIFdlaWdhbmQgPG13ZWlnYW5kQG13ZWlnYW5kLm5ldD4KK0RhdGU6IEZyaSwgMyBKdW4gMjAy MiAyMToxOToxNCArMDIwMAorU3ViamVjdDogW1BBVENIIDA4LzM3XSBbcm9ja2NoaXBfZWJjXSBn bG9iYWwgcmVmcmVzaCBzaG91bGQgdXNlIGN0eC0+ZmluYWwKKyBpbnN0ZWFkIG9mIGN0eC0+bmV4 dCB0byBnZXQgdGhlIGN1cnJlbnQgaW1hZ2UuIEFsc28sIGRlbGV0ZSBhbGwgcGVuZGluZyBhcmVh CisgdXBkYXRlcyB3aGVuIGRvaW5nIGEgZ2xvYmFsIHJlZnJlc2guCisKKy0tLQorIGRyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyB8IDE5ICsrKysrKysrKysrKysrKysrKy0K KyAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jIGIvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCitpbmRleCAwNjgxNTA0ZmM4ZDcuLjQ3 MDYzOGY1OWQ0MyAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hp cF9lYmMuYworKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCitA QCAtMzE3LDYgKzMxNywxNSBAQCBzdGF0aWMgdm9pZCByb2NrY2hpcF9lYmNfZ2xvYmFsX3JlZnJl c2goc3RydWN0IHJvY2tjaGlwX2ViYyAqZWJjLAorIAl1MzIgZ3JheTRfc2l6ZSA9IGN0eC0+Z3Jh eTRfc2l6ZTsKKyAJc3RydWN0IGRldmljZSAqZGV2ID0gZHJtLT5kZXY7CisgCisrCXN0cnVjdCBy b2NrY2hpcF9lYmNfYXJlYSAqYXJlYSwgKm5leHRfYXJlYTsKKysJTElTVF9IRUFEKGFyZWFzKTsK KysKKysJc3Bpbl9sb2NrKCZjdHgtPnF1ZXVlX2xvY2spOworKwlsaXN0X3NwbGljZV90YWlsX2lu aXQoJmN0eC0+cXVldWUsICZhcmVhcyk7CisrCXNwaW5fdW5sb2NrKCZjdHgtPnF1ZXVlX2xvY2sp OworKworKwltZW1jcHkoY3R4LT5uZXh0LCBjdHgtPmZpbmFsLCBncmF5NF9zaXplKTsKKysKKyAJ ZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoZGV2LCBuZXh0X2hhbmRsZSwKKyAJCQkJICAgZ3Jh eTRfc2l6ZSwgRE1BX1RPX0RFVklDRSk7CisgCWRtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKGRl diwgcHJldl9oYW5kbGUsCitAQCAtMzI5LDYgKzMzOCwxMiBAQCBzdGF0aWMgdm9pZCByb2NrY2hp cF9lYmNfZ2xvYmFsX3JlZnJlc2goc3RydWN0IHJvY2tjaGlwX2ViYyAqZWJjLAorIAkJICAgICBl YmMtPmRzcF9zdGFydCB8CisgCQkgICAgIEVCQ19EU1BfU1RBUlRfRFNQX0ZSTV9UT1RBTChlYmMt Pmx1dC5udW1fcGhhc2VzIC0gMSkgfAorIAkJICAgICBFQkNfRFNQX1NUQVJUX0RTUF9GUk1fU1RB UlQpOworKwkvLyB3aGlsZSB3ZSB3YWl0IGZvciB0aGUgcmVmcmVzaCwgZGVsZXRlIGFsbCBzY2hl ZHVsZWQgYXJlYXMKKysJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGFyZWEsIG5leHRfYXJlYSwg JmFyZWFzLCBsaXN0KSB7CisrCQlsaXN0X2RlbCgmYXJlYS0+bGlzdCk7CisrCQlrZnJlZShhcmVh KTsKKysJfQorKworIAlpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmZWJjLT5kaXNw bGF5X2VuZCwKKyAJCQkJCSBFQkNfUkVGUkVTSF9USU1FT1VUKSkKKyAJCWRybV9lcnIoZHJtLCAi UmVmcmVzaCB0aW1lZCBvdXQhXG4iKTsKK0BAIC03NTYsNiArNzcxLDcgQEAgc3RhdGljIGludCBy b2NrY2hpcF9lYmNfcmVmcmVzaF90aHJlYWQodm9pZCAqZGF0YSkKKyAJCSAqLworIAkJbWVtc2V0 KGN0eC0+cHJldiwgMHhmZiwgY3R4LT5ncmF5NF9zaXplKTsKKyAJCW1lbXNldChjdHgtPm5leHQs IDB4ZmYsIGN0eC0+Z3JheTRfc2l6ZSk7CisrCQltZW1zZXQoY3R4LT5maW5hbCwgMHhmZiwgY3R4 LT5ncmF5NF9zaXplKTsKKyAJCS8qIE5PVEU6IEluIGRpcmVjdCBtb2RlLCB0aGUgcGhhc2UgYnVm ZmVycyBhcmUgcmVwdXJwb3NlZCBmb3IKKyAJCSAqIHNvdXJjZSBkcml2ZXIgcG9sYXJpdHkgZGF0 YSwgd2hlcmUgdGhlIG5vLW9wIHZhbHVlIGlzIDAuICovCisgCQltZW1zZXQoY3R4LT5waGFzZVsw XSwgZGlyZWN0X21vZGUgPyAwIDogMHhmZiwgY3R4LT5waGFzZV9zaXplKTsKK0BAIC03ODYsNyAr ODAyLDggQEAgc3RhdGljIGludCByb2NrY2hpcF9lYmNfcmVmcmVzaF90aHJlYWQodm9pZCAqZGF0 YSkKKyAJCSAqIENsZWFyIHRoZSBkaXNwbGF5IGJlZm9yZSBkaXNhYmxpbmcgdGhlIENSVEMuIFVz ZSB0aGUKKyAJCSAqIGhpZ2hlc3QtcXVhbGl0eSB3YXZlZm9ybSB0byBtaW5pbWl6ZSB2aXNpYmxl IGFydGlmYWN0cy4KKyAJCSAqLworLQkJbWVtc2V0KGN0eC0+bmV4dCwgMHhmZiwgY3R4LT5ncmF5 NF9zaXplKTsKKysJCS8vIG1lbXNldChjdHgtPm5leHQsIDB4ZmYsIGN0eC0+Z3JheTRfc2l6ZSk7 CisrCQltZW1jcHkoY3R4LT5maW5hbCwgZWJjLT5vZmZfc2NyZWVuLCBjdHgtPmdyYXk0X3NpemUp OworIAkJcm9ja2NoaXBfZWJjX3JlZnJlc2goZWJjLCBjdHgsIHRydWUsIERSTV9FUERfV0ZfR0Mx Nik7CisgCQlpZiAoIWt0aHJlYWRfc2hvdWxkX3N0b3AoKSl7CisgCQkJa3RocmVhZF9wYXJrbWUo KTsKKy0tIAorMi4zMC4yCisKKworRnJvbSA1M2JmNDJjY2ExYWFhYmYxMGUwM2E4YzJlNDU1YmVh MTZiMmFjNTM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF4aW1pbGlhbiBXZWln YW5kIDxtd2VpZ2FuZEBtd2VpZ2FuZC5uZXQ+CitEYXRlOiBGcmksIDMgSnVuIDIwMjIgMjE6Mjc6 MzggKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAwOS8zN10gUmV2ZXJ0ICJbcm9ja2NoaXBfZWJjXSBn bG9iYWwgcmVmcmVzaCBzaG91bGQgdXNlCisgY3R4LT5maW5hbCBpbnN0ZWFkIG9mIGN0eC0+bmV4 dCIKKworVGhpcyByZXZlcnRzIGNvbW1pdCA1OTlhMzA1N2RmMDJhYjkxODhkM2Q2YzlkYjViNWQ2 ODQ2YTQ0NWM5LgorLS0tCisgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5j IHwgMTkgKy0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMTggZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZWJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJj LmMKK2luZGV4IDQ3MDYzOGY1OWQ0My4uMDY4MTUwNGZjOGQ3IDEwMDY0NAorLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCisrKysgYi9kcml2ZXJzL2dwdS9kcm0v cm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKK0BAIC0zMTcsMTUgKzMxNyw2IEBAIHN0YXRpYyB2b2lk IHJvY2tjaGlwX2ViY19nbG9iYWxfcmVmcmVzaChzdHJ1Y3Qgcm9ja2NoaXBfZWJjICplYmMsCisg CXUzMiBncmF5NF9zaXplID0gY3R4LT5ncmF5NF9zaXplOworIAlzdHJ1Y3QgZGV2aWNlICpkZXYg PSBkcm0tPmRldjsKKyAKKy0Jc3RydWN0IHJvY2tjaGlwX2ViY19hcmVhICphcmVhLCAqbmV4dF9h cmVhOworLQlMSVNUX0hFQUQoYXJlYXMpOworLQorLQlzcGluX2xvY2soJmN0eC0+cXVldWVfbG9j ayk7CistCWxpc3Rfc3BsaWNlX3RhaWxfaW5pdCgmY3R4LT5xdWV1ZSwgJmFyZWFzKTsKKy0Jc3Bp bl91bmxvY2soJmN0eC0+cXVldWVfbG9jayk7CistCistCW1lbWNweShjdHgtPm5leHQsIGN0eC0+ ZmluYWwsIGdyYXk0X3NpemUpOworLQorIAlkbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShkZXYs IG5leHRfaGFuZGxlLAorIAkJCQkgICBncmF5NF9zaXplLCBETUFfVE9fREVWSUNFKTsKKyAJZG1h X3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoZGV2LCBwcmV2X2hhbmRsZSwKK0BAIC0zMzgsMTIgKzMy OSw2IEBAIHN0YXRpYyB2b2lkIHJvY2tjaGlwX2ViY19nbG9iYWxfcmVmcmVzaChzdHJ1Y3Qgcm9j a2NoaXBfZWJjICplYmMsCisgCQkgICAgIGViYy0+ZHNwX3N0YXJ0IHwKKyAJCSAgICAgRUJDX0RT UF9TVEFSVF9EU1BfRlJNX1RPVEFMKGViYy0+bHV0Lm51bV9waGFzZXMgLSAxKSB8CisgCQkgICAg IEVCQ19EU1BfU1RBUlRfRFNQX0ZSTV9TVEFSVCk7CistCS8vIHdoaWxlIHdlIHdhaXQgZm9yIHRo ZSByZWZyZXNoLCBkZWxldGUgYWxsIHNjaGVkdWxlZCBhcmVhcworLQlsaXN0X2Zvcl9lYWNoX2Vu dHJ5X3NhZmUoYXJlYSwgbmV4dF9hcmVhLCAmYXJlYXMsIGxpc3QpIHsKKy0JCWxpc3RfZGVsKCZh cmVhLT5saXN0KTsKKy0JCWtmcmVlKGFyZWEpOworLQl9CistCisgCWlmICghd2FpdF9mb3JfY29t cGxldGlvbl90aW1lb3V0KCZlYmMtPmRpc3BsYXlfZW5kLAorIAkJCQkJIEVCQ19SRUZSRVNIX1RJ TUVPVVQpKQorIAkJZHJtX2Vycihkcm0sICJSZWZyZXNoIHRpbWVkIG91dCFcbiIpOworQEAgLTc3 MSw3ICs3NTYsNiBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX2ViY19yZWZyZXNoX3RocmVhZCh2b2lk ICpkYXRhKQorIAkJICovCisgCQltZW1zZXQoY3R4LT5wcmV2LCAweGZmLCBjdHgtPmdyYXk0X3Np emUpOworIAkJbWVtc2V0KGN0eC0+bmV4dCwgMHhmZiwgY3R4LT5ncmF5NF9zaXplKTsKKy0JCW1l bXNldChjdHgtPmZpbmFsLCAweGZmLCBjdHgtPmdyYXk0X3NpemUpOworIAkJLyogTk9URTogSW4g ZGlyZWN0IG1vZGUsIHRoZSBwaGFzZSBidWZmZXJzIGFyZSByZXB1cnBvc2VkIGZvcgorIAkJICog c291cmNlIGRyaXZlciBwb2xhcml0eSBkYXRhLCB3aGVyZSB0aGUgbm8tb3AgdmFsdWUgaXMgMC4g Ki8KKyAJCW1lbXNldChjdHgtPnBoYXNlWzBdLCBkaXJlY3RfbW9kZSA/IDAgOiAweGZmLCBjdHgt PnBoYXNlX3NpemUpOworQEAgLTgwMiw4ICs3ODYsNyBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX2Vi Y19yZWZyZXNoX3RocmVhZCh2b2lkICpkYXRhKQorIAkJICogQ2xlYXIgdGhlIGRpc3BsYXkgYmVm b3JlIGRpc2FibGluZyB0aGUgQ1JUQy4gVXNlIHRoZQorIAkJICogaGlnaGVzdC1xdWFsaXR5IHdh dmVmb3JtIHRvIG1pbmltaXplIHZpc2libGUgYXJ0aWZhY3RzLgorIAkJICovCistCQkvLyBtZW1z ZXQoY3R4LT5uZXh0LCAweGZmLCBjdHgtPmdyYXk0X3NpemUpOworLQkJbWVtY3B5KGN0eC0+Zmlu YWwsIGViYy0+b2ZmX3NjcmVlbiwgY3R4LT5ncmF5NF9zaXplKTsKKysJCW1lbXNldChjdHgtPm5l eHQsIDB4ZmYsIGN0eC0+Z3JheTRfc2l6ZSk7CisgCQlyb2NrY2hpcF9lYmNfcmVmcmVzaChlYmMs IGN0eCwgdHJ1ZSwgRFJNX0VQRF9XRl9HQzE2KTsKKyAJCWlmICgha3RocmVhZF9zaG91bGRfc3Rv cCgpKXsKKyAJCQlrdGhyZWFkX3BhcmttZSgpOworLS0gCisyLjMwLjIKKworCitGcm9tIGM0YmFi YzVhZTUyOGQzYzhjMjYwZmU2NTg0ZjBkMTgxMmRkYTY1ZWYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBNYXhpbWlsaWFuIFdlaWdhbmQgPG13ZWlnYW5kQG13ZWlnYW5kLm5ldD4KK0Rh dGU6IFNhdCwgNCBKdW4gMjAyMiAxOTozOTo0OCArMDIwMAorU3ViamVjdDogW1BBVENIIDEwLzM3 XSBbcm9ja2NoaXBfZWJjXSBnbG9iYWwgcmVmcmVzaCBzaG91bGQgdXNlIGN0eC0+ZmluYWwKKyBp bnN0ZWFkIG9mIGN0eC0+bmV4dCAgICAgdG8gZ2V0IHRoZSBjdXJyZW50IGltYWdlLiBBbHNvLCBk ZWxldGUgYWxsIHBlbmRpbmcKKyBhcmVhIHVwZGF0ZXMgd2hlbiAgICAgZG9pbmcgYSBnbG9iYWwg cmVmcmVzaC4KKworLS0tCisgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5j IHwgMTcgKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygr KQorCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5j IGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCitpbmRleCAwNjgxNTA0 ZmM4ZDcuLjQxODUyYzIzODAyZSAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9yb2NrY2hpcF9lYmMuYworKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlw X2ViYy5jCitAQCAtMzE3LDYgKzMxNywxNSBAQCBzdGF0aWMgdm9pZCByb2NrY2hpcF9lYmNfZ2xv YmFsX3JlZnJlc2goc3RydWN0IHJvY2tjaGlwX2ViYyAqZWJjLAorIAl1MzIgZ3JheTRfc2l6ZSA9 IGN0eC0+Z3JheTRfc2l6ZTsKKyAJc3RydWN0IGRldmljZSAqZGV2ID0gZHJtLT5kZXY7CisgCisr CXN0cnVjdCByb2NrY2hpcF9lYmNfYXJlYSAqYXJlYSwgKm5leHRfYXJlYTsKKysJTElTVF9IRUFE KGFyZWFzKTsKKysKKysJc3Bpbl9sb2NrKCZjdHgtPnF1ZXVlX2xvY2spOworKwlsaXN0X3NwbGlj ZV90YWlsX2luaXQoJmN0eC0+cXVldWUsICZhcmVhcyk7CisrCXNwaW5fdW5sb2NrKCZjdHgtPnF1 ZXVlX2xvY2spOworKworKwltZW1jcHkoY3R4LT5uZXh0LCBjdHgtPmZpbmFsLCBncmF5NF9zaXpl KTsKKysKKyAJZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoZGV2LCBuZXh0X2hhbmRsZSwKKyAJ CQkJICAgZ3JheTRfc2l6ZSwgRE1BX1RPX0RFVklDRSk7CisgCWRtYV9zeW5jX3NpbmdsZV9mb3Jf ZGV2aWNlKGRldiwgcHJldl9oYW5kbGUsCitAQCAtMzI5LDYgKzMzOCwxMiBAQCBzdGF0aWMgdm9p ZCByb2NrY2hpcF9lYmNfZ2xvYmFsX3JlZnJlc2goc3RydWN0IHJvY2tjaGlwX2ViYyAqZWJjLAor IAkJICAgICBlYmMtPmRzcF9zdGFydCB8CisgCQkgICAgIEVCQ19EU1BfU1RBUlRfRFNQX0ZSTV9U T1RBTChlYmMtPmx1dC5udW1fcGhhc2VzIC0gMSkgfAorIAkJICAgICBFQkNfRFNQX1NUQVJUX0RT UF9GUk1fU1RBUlQpOworKwkvLyB3aGlsZSB3ZSB3YWl0IGZvciB0aGUgcmVmcmVzaCwgZGVsZXRl IGFsbCBzY2hlZHVsZWQgYXJlYXMKKysJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGFyZWEsIG5l eHRfYXJlYSwgJmFyZWFzLCBsaXN0KSB7CisrCQlsaXN0X2RlbCgmYXJlYS0+bGlzdCk7CisrCQlr ZnJlZShhcmVhKTsKKysJfQorKworIAlpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgm ZWJjLT5kaXNwbGF5X2VuZCwKKyAJCQkJCSBFQkNfUkVGUkVTSF9USU1FT1VUKSkKKyAJCWRybV9l cnIoZHJtLCAiUmVmcmVzaCB0aW1lZCBvdXQhXG4iKTsKK0BAIC03NTYsNiArNzcxLDggQEAgc3Rh dGljIGludCByb2NrY2hpcF9lYmNfcmVmcmVzaF90aHJlYWQodm9pZCAqZGF0YSkKKyAJCSAqLwor IAkJbWVtc2V0KGN0eC0+cHJldiwgMHhmZiwgY3R4LT5ncmF5NF9zaXplKTsKKyAJCW1lbXNldChj dHgtPm5leHQsIDB4ZmYsIGN0eC0+Z3JheTRfc2l6ZSk7CisrCQltZW1zZXQoY3R4LT5maW5hbCwg MHhmZiwgY3R4LT5ncmF5NF9zaXplKTsKKysKKyAJCS8qIE5PVEU6IEluIGRpcmVjdCBtb2RlLCB0 aGUgcGhhc2UgYnVmZmVycyBhcmUgcmVwdXJwb3NlZCBmb3IKKyAJCSAqIHNvdXJjZSBkcml2ZXIg cG9sYXJpdHkgZGF0YSwgd2hlcmUgdGhlIG5vLW9wIHZhbHVlIGlzIDAuICovCisgCQltZW1zZXQo Y3R4LT5waGFzZVswXSwgZGlyZWN0X21vZGUgPyAwIDogMHhmZiwgY3R4LT5waGFzZV9zaXplKTsK Ky0tIAorMi4zMC4yCisKKworRnJvbSBiYjBlOTQ5MDRjOTE4ODY3NWJmYjZiM2UyNjRjYzQwOWM1 NThlYTcyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF4aW1pbGlhbiBXZWlnYW5k IDxtd2VpZ2FuZEBtd2VpZ2FuZC5uZXQ+CitEYXRlOiBTYXQsIDQgSnVuIDIwMjIgMTk6NDQ6MDAg KzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxMS8zN10gW3JvY2tjaGlwX2ViY10gYWRkIHRoZSBwb3Nz aWJpbGl0eSB0byB0cmlnZ2VyIG9uZQorIGdsb2JhbCByZWZyZXNoIHVzaW5nIGEgbW9kdWxlLWds b2JhbCB2YXJpYWJsZSBkb19vbmVfZnVsbF9yZWZyZXNoCisKKy0tLQorIGRyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyB8IDIwICsrKysrKysrKysrKysrKysrKystCisgMSBm aWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworaW5kZXggNDE4NTJjMjM4MDJlLi5iMWM4Zjk2 NzM1MGIgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJj LmMKKysrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworQEAgLTE1 NCw2ICsxNTQsOSBAQCBzdHJ1Y3Qgcm9ja2NoaXBfZWJjIHsKKyAJdTMyCQkJCWRzcF9zdGFydDsK KyAJYm9vbAkJCQlsdXRfY2hhbmdlZDsKKyAJYm9vbAkJCQlyZXNldF9jb21wbGV0ZTsKKysJc3Bp bmxvY2tfdAkJCXJlZnJlc2hfb25jZV9sb2NrOworKwkvLyBzaG91bGQgdGhpcyBnbyBpbnRvIHRo ZSBjdHg/CisrCWJvb2wgZG9fb25lX2Z1bGxfcmVmcmVzaDsKKyB9OworIAorIHN0YXRpYyBpbnQg ZGVmYXVsdF93YXZlZm9ybSA9IERSTV9FUERfV0ZfR0MxNjsKK0BAIC03NDQsNiArNzQ3LDcgQEAg c3RhdGljIGludCByb2NrY2hpcF9lYmNfcmVmcmVzaF90aHJlYWQodm9pZCAqZGF0YSkKKyB7Cisg CXN0cnVjdCByb2NrY2hpcF9lYmMgKmViYyA9IGRhdGE7CisgCXN0cnVjdCByb2NrY2hpcF9lYmNf Y3R4ICpjdHg7CisrCWJvb2wgb25lX2Z1bGxfcmVmcmVzaDsKKyAKKyAJd2hpbGUgKCFrdGhyZWFk X3Nob3VsZF9zdG9wKCkpIHsKKyAJCS8qIFRoZSBjb250ZXh0IHdpbGwgY2hhbmdlIGVhY2ggdGlt ZSB0aGUgdGhyZWFkIGlzIHVucGFya2VkLiAqLworQEAgLTc5MCw3ICs3OTQsMTggQEAgc3RhdGlj IGludCByb2NrY2hpcF9lYmNfcmVmcmVzaF90aHJlYWQodm9pZCAqZGF0YSkKKyAJCX0KKyAKKyAJ CXdoaWxlICgoIWt0aHJlYWRfc2hvdWxkX3BhcmsoKSkgJiYgKCFrdGhyZWFkX3Nob3VsZF9zdG9w KCkpKSB7CistCQkJcm9ja2NoaXBfZWJjX3JlZnJlc2goZWJjLCBjdHgsIGZhbHNlLCBkZWZhdWx0 X3dhdmVmb3JtKTsKKysJCQlzcGluX2xvY2soJmViYy0+cmVmcmVzaF9vbmNlX2xvY2spOworKwkJ CW9uZV9mdWxsX3JlZnJlc2ggPSBlYmMtPmRvX29uZV9mdWxsX3JlZnJlc2g7CisrCQkJc3Bpbl91 bmxvY2soJmViYy0+cmVmcmVzaF9vbmNlX2xvY2spOworKworKwkJCWlmIChvbmVfZnVsbF9yZWZy ZXNoKSB7CisrCQkJCXNwaW5fbG9jaygmZWJjLT5yZWZyZXNoX29uY2VfbG9jayk7CisrCQkJCWVi Yy0+ZG9fb25lX2Z1bGxfcmVmcmVzaCA9IGZhbHNlOworKwkJCQlzcGluX3VubG9jaygmZWJjLT5y ZWZyZXNoX29uY2VfbG9jayk7CisrCQkJCXJvY2tjaGlwX2ViY19yZWZyZXNoKGViYywgY3R4LCB0 cnVlLCBkZWZhdWx0X3dhdmVmb3JtKTsKKysJCQl9IGVsc2UgeworKwkJCQlyb2NrY2hpcF9lYmNf cmVmcmVzaChlYmMsIGN0eCwgZmFsc2UsIGRlZmF1bHRfd2F2ZWZvcm0pOworKwkJCX0KKyAKKyAJ CQlzZXRfY3VycmVudF9zdGF0ZShUQVNLX0lETEUpOworIAkJCWlmIChsaXN0X2VtcHR5KCZjdHgt PnF1ZXVlKSAmJiAoIWt0aHJlYWRfc2hvdWxkX3N0b3AoKSkgJiYgKCFrdGhyZWFkX3Nob3VsZF9w YXJrKCkpKXsKK0BAIC0xNTE5LDYgKzE1MzQsOSBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX2ViY19w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorIAorIAllYmMgPSBkZXZtX2RybV9k ZXZfYWxsb2MoZGV2LCAmcm9ja2NoaXBfZWJjX2RybV9kcml2ZXIsCisgCQkJCSBzdHJ1Y3Qgcm9j a2NoaXBfZWJjLCBkcm0pOworKworKwlzcGluX2xvY2tfaW5pdCgmZWJjLT5yZWZyZXNoX29uY2Vf bG9jayk7CisrCisgCWlmIChJU19FUlIoZWJjKSkKKyAJCXJldHVybiBQVFJfRVJSKGViYyk7Cisg CistLSAKKzIuMzAuMgorCisKK0Zyb20gMmI2MmI2YzU4NTMyMDBjZjFmMWY2MzAxMGQ4ZWRiNTZh OGEwOGNlYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1heGltaWxpYW4gV2VpZ2Fu ZCA8bXdlaWdhbmRAbXdlaWdhbmQubmV0PgorRGF0ZTogU2F0LCA0IEp1biAyMDIyIDE5OjQ2OjQ2 ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMTIvMzddIFtyb2NrY2hpcF9lYmNdIGFkZCBwb3NzaWJp bGl0eSB0byBjaGFuZ2UgdGhlCisgb2ZmLXNjcmVlbiwgaS5lLiB0aGUgY29udGVudCBvZiB0aGUg c2NyZWVuIHdoZW4gdGhlIG1vZHVsZSBpcyB1bmxvYWRlZC4gVGhlCisgY29udGVudCBpcyByZWFk IG9uIG1vZHVsZS1sb2FkIHRpbWUgZnJvbSB0aGUgZmlybXdhcmUgZmlsZQorIHJvY2tjaGlwL3Jv Y2tjaGlwX2ViY19kZWZhdWx0X3NjcmVlbi5iaW4uIFRoZSBmaWxlIG11c3QgYmUgb2Ygc2l6ZSAx MzE0MTQ0CisgYnl0ZXMgY29udGFpbmluZyB0aGUgNCBiaXQgZ3JheSB2YWx1ZXMgZm9yIGVhY2gg cGl4ZWwKKworLS0tCisgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jIHwg MjUgKysrKysrKysrKysrKysrKysrKysrKysrLQorIDEgZmlsZSBjaGFuZ2VkLCAyNCBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZWJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf ZWJjLmMKK2luZGV4IGIxYzhmOTY3MzUwYi4uZWRmOThiMDQ4YTA3IDEwMDY0NAorLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCisrKysgYi9kcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKK0BAIC0xNSw2ICsxNSw3IEBACisgI2luY2x1ZGUg PGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgorICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgor ICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorKyNpbmNsdWRlIDxsaW51eC9maXJtd2Fy ZS5oPgorIAorICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgorICNpbmNsdWRlIDxkcm0vZHJt X2F0b21pY19oZWxwZXIuaD4KK0BAIC0xNTQsNiArMTU1LDkgQEAgc3RydWN0IHJvY2tjaGlwX2Vi YyB7CisgCXUzMgkJCQlkc3Bfc3RhcnQ7CisgCWJvb2wJCQkJbHV0X2NoYW5nZWQ7CisgCWJvb2wJ CQkJcmVzZXRfY29tcGxldGU7CisrCS8vIG9uZSBzY3JlZW4gY29udGVudDogMTg3MiAqIDE0MDQg LyAyCisrCS8vIHRoZSBhcnJheSBzaXplIHNob3VsZCBwcm9iYWJseSBiZSBzZXQgZHluYW1pY2Fs bHkuLi4KKysJY2hhciBvZmZfc2NyZWVuWzEzMTQxNDRdOworIAlzcGlubG9ja190CQkJcmVmcmVz aF9vbmNlX2xvY2s7CisgCS8vIHNob3VsZCB0aGlzIGdvIGludG8gdGhlIGN0eD8KKyAJYm9vbCBk b19vbmVfZnVsbF9yZWZyZXNoOworQEAgLTgxOCw3ICs4MjIsNyBAQCBzdGF0aWMgaW50IHJvY2tj aGlwX2ViY19yZWZyZXNoX3RocmVhZCh2b2lkICpkYXRhKQorIAkJICogQ2xlYXIgdGhlIGRpc3Bs YXkgYmVmb3JlIGRpc2FibGluZyB0aGUgQ1JUQy4gVXNlIHRoZQorIAkJICogaGlnaGVzdC1xdWFs aXR5IHdhdmVmb3JtIHRvIG1pbmltaXplIHZpc2libGUgYXJ0aWZhY3RzLgorIAkJICovCistCQlt ZW1zZXQoY3R4LT5uZXh0LCAweGZmLCBjdHgtPmdyYXk0X3NpemUpOworKwkJbWVtY3B5KGN0eC0+ ZmluYWwsIGViYy0+b2ZmX3NjcmVlbiwgY3R4LT5ncmF5NF9zaXplKTsKKyAJCXJvY2tjaGlwX2Vi Y19yZWZyZXNoKGViYywgY3R4LCB0cnVlLCBEUk1fRVBEX1dGX0dDMTYpOworIAkJaWYgKCFrdGhy ZWFkX3Nob3VsZF9zdG9wKCkpeworIAkJCWt0aHJlYWRfcGFya21lKCk7CitAQCAtMTMzNCw2ICsx MzM4LDcgQEAgc3RhdGljIGludCByb2NrY2hpcF9lYmNfZHJtX2luaXQoc3RydWN0IHJvY2tjaGlw X2ViYyAqZWJjKQorIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gJmViYy0+ZHJtOworIAlzdHJ1 Y3QgZHJtX2JyaWRnZSAqYnJpZGdlOworIAlpbnQgcmV0OworKwljb25zdCBzdHJ1Y3QgZmlybXdh cmUgKiBkZWZhdWx0X29mZnNjcmVlbjsKKyAKKyAJcmV0ID0gZHJtbV9lcGRfbHV0X2ZpbGVfaW5p dChkcm0sICZlYmMtPmx1dF9maWxlLCAicm9ja2NoaXAvZWJjLndiZiIpOworIAlpZiAocmV0KQor QEAgLTEzOTIsNiArMTM5NywyNCBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX2ViY19kcm1faW5pdChz dHJ1Y3Qgcm9ja2NoaXBfZWJjICplYmMpCisgCisgCWRybV9mYmRldl9nZW5lcmljX3NldHVwKGRy bSwgMCk7CisgCisrCS8vIGNoZWNrIGlmIHRoZXJlIGlzIGEgZGVmYXVsdCBvZmYtc2NyZWVuCisr CWlmICghcmVxdWVzdF9maXJtd2FyZSgmZGVmYXVsdF9vZmZzY3JlZW4sICJyb2NrY2hpcC9yb2Nr Y2hpcF9lYmNfZGVmYXVsdF9zY3JlZW4uYmluIiwgZHJtLT5kZXYpKQorKwl7CisrCQlwcmludGso S0VSTl9JTkZPICJyb2NrY2hpcF9lYmM6IGRlZmF1bHQgb2ZmLXNjcmVlbiBmaWxlIGZvdW5kXG4i KTsKKysJCWlmIChkZWZhdWx0X29mZnNjcmVlbi0+c2l6ZSAhPSAxMzE0MTQ0KQorKwkJCWRybV9l cnIoZHJtLCAiU2l6ZSBvZiBkZWZhdWx0IG9mZnNjcmVlbiBkYXRhIGZpbGUgaXMgbm90IDEzMTQx NDRcbiIpOworKwkJZWxzZSB7CisrCQkJcHJpbnRrKEtFUk5fSU5GTyAicm9ja2NoaXBfZWJjOiBs b2FkaW5nIGRlZmF1bHQgb2ZmLXNjcmVlblxuIik7CisrCQkJbWVtY3B5KGViYy0+b2ZmX3NjcmVl biwgZGVmYXVsdF9vZmZzY3JlZW4tPmRhdGEsIDEzMTQxNDQpOworKwkJfQorKwl9IGVsc2Ugewor KwkJcHJpbnRrKEtFUk5fSU5GTyAicm9ja2NoaXBfZWJjOiBubyBkZWZhdWx0IG9mZi1zY3JlZW4g ZmlsZSBmb3VuZFxuIik7CisrCQkvLyBmaWxsIHRoZSBvZmYtc2NyZWVuIHdpdGggc29tZSB2YWx1 ZXMKKysJCW1lbXNldChlYmMtPm9mZl9zY3JlZW4sIDB4ZmYsIDEzMTQxNDQpOworKwkJLyogbWVt c2V0KGViYy0+b2ZmX3NjcmVlbiwgMHgwMCwgNTU2MTQ0KTsgKi8KKysJfQorKwlyZWxlYXNlX2Zp cm13YXJlKGRlZmF1bHRfb2Zmc2NyZWVuKTsKKysKKyAJcmV0dXJuIDA7CisgfQorIAorLS0gCisy LjMwLjIKKworCitGcm9tIGY3ZmIyMWUxNjQzOWM4ZTI3MTc4NmEyMDU0M2M3ZWQ3NGU4OTI3NTAg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXhpbWlsaWFuIFdlaWdhbmQgPG13ZWln YW5kQG13ZWlnYW5kLm5ldD4KK0RhdGU6IFNhdCwgNCBKdW4gMjAyMiAxOTo0OToxNCArMDIwMAor U3ViamVjdDogW1BBVENIIDEzLzM3XSBbcm9ja2NoaXBfZWJjXSBpbXBsZW1lbnQgYSBzaW1wbGUg YXV0b19yZWZyZXNoIHNjaGVtZQorIHdoaWNoIHRyaWdnZXJzIGEgZ2xvYmFsIHJlZnJlc2ggYWZ0 ZXIgYSBjZXJ0YWluIGFyZWEgaGFzIGJlZW4gZHJhd24gdXNpbmcgdGhlCisgcGFydGlhbCByZWZy ZXNoIHBhdGguIFRoZSB0aHJlc2hvbGQgb2YgZHJhd24gYXJlYSBhZnRlciB3aGljaCB0aGUgcmVm cmVzaCBpcworIHRyaWdnZXJlZCBjYW4gYmUgbW9kaWZpZWQgdXNpbmcgdGhlIHN5c2ZzIGZpbGUK KyAvc3lzL21vZHVsZS9yb2NrY2hpcF9lYmMvcGFyYW1ldGVycy9yZWZyZXNoX3RocmVzaG9sZC4g QSBkZWZhdWx0IHZhbHVlIG9mIDIwCisgKHNjcmVlbiBhcmVhcykgc2VlbXMgZ29vZCBlbm91Z2gg dG8gZ2V0IGEgcmVmcmVzaCBhZnRlciA1IHBhZ2VzIG9mIGVib29rCisgcmVhZGluZy4gVGhpcyBz ZWVtcyB0byBpbXBseSB0aGF0IHF1aXRlIGEgbG90IG9mIGR1cGxpY2F0ZSBkcmF3cyBhcmUgbWFk ZSBmb3IKKyBlYWNoIHBhZ2UgdHVybiAobm90IGludmVzdGlnYXRlZCBmdXJ0aGVyKS4gVGhlIGF1 dG8tcmVmcmVzaCBmZWF0dXJlIGlzCisgZGVhY3RpdmF0ZWQgYnkgZGVmYXVsdCBhbmQgY2FuIGJl IGFjdGl2YXRlZCB1c2luZyB0aGUgbW9kdWxlIHBhcmFtZXRlcgorIGF1dG9fcmVmcmVzaCBvciBi eSB3cml0aW5nIDEgdG8KKyAvc3lzL21vZHVsZS9yb2NrY2hpcF9lYmMvcGFyYW1ldGVycy9hdXRv X3JlZnJlc2gKKworLS0tCisgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5j IHwgMzMgKysrKysrKysrKysrKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAzMyBpbnNl cnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2No aXBfZWJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKK2luZGV4 IGVkZjk4YjA0OGEwNy4uNjllZjM0ZTg2YmE3IDEwMDY0NAorLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv cm9ja2NoaXBfZWJjLmMKK0BAIC0xODMsNiArMTgzLDE0IEBAIHN0YXRpYyBib29sIHNraXBfcmVz ZXQgPSBmYWxzZTsKKyBtb2R1bGVfcGFyYW0oc2tpcF9yZXNldCwgYm9vbCwgMDQ0NCk7CisgTU9E VUxFX1BBUk1fREVTQyhza2lwX3Jlc2V0LCAic2tpcCB0aGUgaW5pdGlhbCBkaXNwbGF5IHJlc2V0 Iik7CisgCisrc3RhdGljIGJvb2wgYXV0b19yZWZyZXNoID0gZmFsc2U7CisrbW9kdWxlX3BhcmFt KGF1dG9fcmVmcmVzaCwgYm9vbCwgU19JUlVHT3xTX0lXVVNSKTsKKytNT0RVTEVfUEFSTV9ERVND KGF1dG9fcmVmcmVzaCwgImF1dG8gcmVmcmVzaCB0aGUgc2NyZWVuIGJhc2VkIG9uIHBhcnRpYWwg cmVmcmVzaGVkIGFyZWEiKTsKKysKKytzdGF0aWMgaW50IHJlZnJlc2hfdGhyZXNob2xkID0gMjA7 CisrbW9kdWxlX3BhcmFtKHJlZnJlc2hfdGhyZXNob2xkLCBpbnQsIFNfSVJVR098U19JV1VTUik7 CisrTU9EVUxFX1BBUk1fREVTQyhyZWZyZXNoX3RocmVzaG9sZCwgInJlZnJlc2ggdGhyZXNob2xk IGluIHNjcmVlbiBhcmVhIG11bHRpcGxlcyIpOworKworIERFRklORV9EUk1fR0VNX0ZPUFMocm9j a2NoaXBfZWJjX2ZvcHMpOworIAorIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2RyaXZlciByb2Nr Y2hpcF9lYmNfZHJtX2RyaXZlciA9IHsKK0BAIC0yNDMsNiArMjUxLDcgQEAgc3RydWN0IHJvY2tj aGlwX2ViY19jdHggeworIAl1MzIJCQkJZ3JheTRfc2l6ZTsKKyAJdTMyCQkJCXBoYXNlX3BpdGNo OworIAl1MzIJCQkJcGhhc2Vfc2l6ZTsKKysJdTY0IGFyZWFfY291bnQ7CisgfTsKKyAKKyBzdGF0 aWMgdm9pZCByb2NrY2hpcF9lYmNfY3R4X2ZyZWUoc3RydWN0IHJvY2tjaGlwX2ViY19jdHggKmN0 eCkKK0BAIC0yODgsNiArMjk3LDEwIEBAIHN0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfZWJjX2N0eCAq cm9ja2NoaXBfZWJjX2N0eF9hbGxvYyh1MzIgd2lkdGgsIHUzMiBoZWlnaHQpCisgCWN0eC0+cGhh c2VfcGl0Y2ggPSB3aWR0aDsKKyAJY3R4LT5waGFzZV9zaXplICA9IHBoYXNlX3NpemU7CisgCisr CS8vIHdlIGtlZXAgdHJhY2sgb2YgdGhlIHVwZGF0ZWQgYXJlYSBhbmQgdXNlIHRoaXMgdmFsdWUg dG8gdHJpZ2dlciBnbG9iYWwKKysJLy8gcmVmcmVzaGVzIGlmIGF1dG9fcmVmcmVzaCBpcyBlbmFi bGVkCisrCWN0eC0+YXJlYV9jb3VudCA9IDA7CisrCisgCXJldHVybiBjdHg7CisgfQorIAorQEAg LTUxNiw2ICs1MjksNyBAQCBzdGF0aWMgdm9pZCByb2NrY2hpcF9lYmNfcGFydGlhbF9yZWZyZXNo KHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywKKyAJc3RydWN0IGRldmljZSAqZGV2ID0gZHJtLT5k ZXY7CisgCUxJU1RfSEVBRChhcmVhcyk7CisgCXUzMiBmcmFtZTsKKysJdTY0IGxvY2FsX2FyZWFf Y291bnQgPSAwOworIAorIAlkbWFfYWRkcl90IHBoYXNlX2hhbmRsZXNbMl07CisgCXBoYXNlX2hh bmRsZXNbMF0gPSBkbWFfbWFwX3NpbmdsZShkZXYsIGN0eC0+cGhhc2VbMF0sIGN0eC0+Z3JheTRf c2l6ZSwgRE1BX1RPX0RFVklDRSk7CitAQCAtNTU4LDYgKzU3Miw5IEBAIHN0YXRpYyB2b2lkIHJv Y2tjaGlwX2ViY19wYXJ0aWFsX3JlZnJlc2goc3RydWN0IHJvY2tjaGlwX2ViYyAqZWJjLAorIAor IAkJCS8qIENvcHkgY3R4LT5maW5hbCB0byBjdHgtPm5leHQgb24gdGhlIGZpcnN0IGZyYW1lLiAq LworIAkJCWlmIChmcmFtZV9kZWx0YSA9PSAwKSB7CisrCQkJCWxvY2FsX2FyZWFfY291bnQgKz0g KHU2NCkgKAorKwkJCQkJYXJlYS0+Y2xpcC54MiAtIGFyZWEtPmNsaXAueDEpICoKKysJCQkJCShh cmVhLT5jbGlwLnkyIC0gYXJlYS0+Y2xpcC55MSk7CisgCQkJCWRtYV9zeW5jX3NpbmdsZV9mb3Jf Y3B1KGRldiwgbmV4dF9oYW5kbGUsIGdyYXk0X3NpemUsIERNQV9UT19ERVZJQ0UpOworIAkJCQly b2NrY2hpcF9lYmNfYmxpdF9waXhlbHMoY3R4LCBjdHgtPm5leHQsCisgCQkJCQkJCSBjdHgtPmZp bmFsLAorQEAgLTY0Miw2ICs2NTksOCBAQCBzdGF0aWMgdm9pZCByb2NrY2hpcF9lYmNfcGFydGlh bF9yZWZyZXNoKHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywKKyAJfQorIAlkbWFfdW5tYXBfc2lu Z2xlKGRldiwgcGhhc2VfaGFuZGxlc1swXSwgY3R4LT5ncmF5NF9zaXplLCBETUFfVE9fREVWSUNF KTsKKyAJZG1hX3VubWFwX3NpbmdsZShkZXYsIHBoYXNlX2hhbmRsZXNbMV0sIGN0eC0+Z3JheTRf c2l6ZSwgRE1BX1RPX0RFVklDRSk7CisrCS8qIHByaW50ayhLRVJOX0lORk8gImxvY2EgYXJlYSBj b3VudDogJWxsdVxuIiwgbG9jYWxfYXJlYV9jb3VudCk7ICovCisrCWN0eC0+YXJlYV9jb3VudCAr PSBsb2NhbF9hcmVhX2NvdW50OworIH0KKyAKKyBzdGF0aWMgdm9pZCByb2NrY2hpcF9lYmNfcmVm cmVzaChzdHJ1Y3Qgcm9ja2NoaXBfZWJjICplYmMsCitAQCAtNjU1LDYgKzY3NCw3IEBAIHN0YXRp YyB2b2lkIHJvY2tjaGlwX2ViY19yZWZyZXNoKHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywKKyAJ aW50IHJldCwgdGVtcGVyYXR1cmU7CisgCWRtYV9hZGRyX3QgbmV4dF9oYW5kbGU7CisgCWRtYV9h ZGRyX3QgcHJldl9oYW5kbGU7CisrCWludCBvbmVfc2NyZWVuX2FyZWEgPSAxMzE0MTQ0OworIAor IAkvKiBSZXN1bWUgYXN5bmNocm9ub3VzbHkgd2hpbGUgcHJlcGFyaW5nIHRvIHJlZnJlc2guICov CisgCXJldCA9IHBtX3J1bnRpbWVfZ2V0KGRldik7CitAQCAtNzM4LDYgKzc1OCwxOSBAQCBzdGF0 aWMgdm9pZCByb2NrY2hpcF9lYmNfcmVmcmVzaChzdHJ1Y3Qgcm9ja2NoaXBfZWJjICplYmMsCisg CWRtYV91bm1hcF9zaW5nbGUoZGV2LCBuZXh0X2hhbmRsZSwgY3R4LT5ncmF5NF9zaXplLCBETUFf VE9fREVWSUNFKTsKKyAJZG1hX3VubWFwX3NpbmdsZShkZXYsIHByZXZfaGFuZGxlLCBjdHgtPmdy YXk0X3NpemUsIERNQV9UT19ERVZJQ0UpOworIAorKwkvLyBkbyB3ZSBuZWVkIGEgZnVsbCByZWZy ZXNoCisrCWlmIChhdXRvX3JlZnJlc2gpeworKwkJaWYgKGN0eC0+YXJlYV9jb3VudCA+PSByZWZy ZXNoX3RocmVzaG9sZCAqIG9uZV9zY3JlZW5fYXJlYSl7CisrCQkJcHJpbnRrKEtFUk5fSU5GTyAi cm9ja2NoaXA6IHRyaWdnZXJpbmcgZnVsbCByZWZyZXNoIGR1ZSB0byBkcmF3biBhcmVhIHRocmVz aG9sZFxuIik7CisrCQkJc3Bpbl9sb2NrKCZlYmMtPnJlZnJlc2hfb25jZV9sb2NrKTsKKysJCQll YmMtPmRvX29uZV9mdWxsX3JlZnJlc2ggPSB0cnVlOworKwkJCXNwaW5fdW5sb2NrKCZlYmMtPnJl ZnJlc2hfb25jZV9sb2NrKTsKKysJCQljdHgtPmFyZWFfY291bnQgPSAwOworKwkJfQorKwl9IGVs c2UgeworKwkJY3R4LT5hcmVhX2NvdW50ID0gMDsKKysJfQorKworIAkvKiBEcml2ZSB0aGUgb3V0 cHV0IHBpbnMgbG93IG9uY2UgdGhlIHJlZnJlc2ggaXMgY29tcGxldGUuICovCisgCXJlZ21hcF93 cml0ZShlYmMtPnJlZ21hcCwgRUJDX0RTUF9TVEFSVCwKKyAJCSAgICAgZWJjLT5kc3Bfc3RhcnQg fAorLS0gCisyLjMwLjIKKworCitGcm9tIGVlZjJhODIzYmY5NmY0OTJhNGQyOGZlMGY5MGVhOTFh M2MxYmI5MzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXhpbWlsaWFuIFdlaWdh bmQgPG13ZWlnYW5kQG13ZWlnYW5kLm5ldD4KK0RhdGU6IFNhdCwgNCBKdW4gMjAyMiAyMDowMjoy NiArMDIwMAorU3ViamVjdDogW1BBVENIIDE0LzM3XSBbcm9ja2NoaXBfZWJjXSBBZGQgdHdvIGlv Y3RscyB0byB0aGUgcm9ja2NoaXBfZWJjCisgbW9kdWxlOgorCitEUk1fSU9DVExfUk9DS0NISVBf RUJDX0dMT0JBTF9SRUZSRVNIIHRyaWdnZXJzIGEgZ2xvYmFsIGZyZXNoCisKK0RSTV9JT0NUTF9S T0NLQ0hJUF9FQkNfT0ZGX1NDUkVFTiBjYW4gYmUgdXNlZCB0byBzdXBwbHkgb2ZmLXNjcmVlbgor Y29udGVudCB0aGF0IGlzIGRpc3BsYXkgb24gc2h1dGRvd24vbW9kdWxlLXVubG9hZC4KKworQ29y cmVzcG9uZGluZyBpb2N0bCBzdHJ1Y3R1cmVzOgorCitzdHJ1Y3QgZHJtX3JvY2tjaGlwX2ViY190 cmlnZ2VyX2dsb2JhbF9yZWZyZXNoIHsKKyAgICAgICBib29sIHRyaWdnZXJfZ2xvYmFsX3JlZnJl c2g7Cit9OworCitzdHJ1Y3QgZHJtX3JvY2tjaGlwX2ViY19vZmZfc2NyZWVuIHsKKyAgICAgICBf X3U2NCBpbmZvMTsgLy8gPC0gbm90IHVzZWQKKyAgICAgICBjaGFyICogcHRyX3NjcmVlbl9jb250 ZW50OworfTsKKy0tLQorIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyB8 IDQxICsrKysrKysrKysrKysrKysrKysrKysrKysKKyBpbmNsdWRlL3VhcGkvZHJtL3JvY2tjaGlw X2ViY19kcm0uaCAgICAgfCAyNSArKysrKysrKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDY2 IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS91YXBpL2RybS9yb2Nr Y2hpcF9lYmNfZHJtLmgKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9lYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYwor aW5kZXggNjllZjM0ZTg2YmE3Li45YTBhMjM4ODI5YmIgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKKysrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF9lYmMuYworQEAgLTE1LDYgKzE1LDcgQEAKKyAjaW5jbHVkZSA8bGludXgv cmVndWxhdG9yL2NvbnN1bWVyLmg+CisgI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisgI2luY2x1 ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisrI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyAj aW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KKyAKKyAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMu aD4KK0BAIC0yOSw2ICszMCw3IEBACisgI2luY2x1ZGUgPGRybS9kcm1fZ2VtX3NobWVtX2hlbHBl ci5oPgorICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgorICNpbmNsdWRlIDxkcm0v ZHJtX3NpbXBsZV9rbXNfaGVscGVyLmg+CisrI2luY2x1ZGUgPGRybS9yb2NrY2hpcF9lYmNfZHJt Lmg+CisgCisgI2RlZmluZSBFQkNfRFNQX1NUQVJUCQkJMHgwMDAwCisgI2RlZmluZSBFQkNfRFNQ X1NUQVJUX0RTUF9PVVRfTE9XCQlCSVQoMzEpCitAQCAtMTkzLDYgKzE5NSw0MyBAQCBNT0RVTEVf UEFSTV9ERVNDKHJlZnJlc2hfdGhyZXNob2xkLCAicmVmcmVzaCB0aHJlc2hvbGQgaW4gc2NyZWVu IGFyZWEgbXVsdGlwbGVzIgorIAorIERFRklORV9EUk1fR0VNX0ZPUFMocm9ja2NoaXBfZWJjX2Zv cHMpOworIAorK3N0YXRpYyBpbnQgaW9jdGxfdHJpZ2dlcl9nbG9iYWxfcmVmcmVzaChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorKwkJc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpCisreworKwlzdHJ1Y3QgZHJtX3JvY2tjaGlwX2ViY190cmlnZ2VyX2dsb2JhbF9yZWZyZXNo ICphcmdzID0gZGF0YTsKKysJc3RydWN0IHJvY2tjaGlwX2ViYyAqZWJjID0gZGV2X2dldF9kcnZk YXRhKGRldi0+ZGV2KTsKKysKKysJaWYgKGFyZ3MtPnRyaWdnZXJfZ2xvYmFsX3JlZnJlc2gpewor KwkJcHJpbnRrKEtFUk5fSU5GTyAicm9ja2NoaXBfZWJjOiBpb2N0bCB3b3VsZCB0cmlnZ2VyIGZ1 bGwgcmVmcmVzaCBcbiIpOworKwkJc3Bpbl9sb2NrKCZlYmMtPnJlZnJlc2hfb25jZV9sb2NrKTsK KysJCWViYy0+ZG9fb25lX2Z1bGxfcmVmcmVzaCA9IHRydWU7CisrCQlzcGluX3VubG9jaygmZWJj LT5yZWZyZXNoX29uY2VfbG9jayk7CisrCQkvLyB0cnkgdG8gdHJpZ2dlciB0aGUgcmVmcmVzaCBp bW1lZGlhdGVseQorKwkJd2FrZV91cF9wcm9jZXNzKGViYy0+cmVmcmVzaF90aHJlYWQpOworKwl9 CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IGlvY3RsX3NldF9vZmZfc2NyZWVu KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisrCQlzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdikKKyt7CisrCXN0cnVjdCBkcm1fcm9ja2NoaXBfZWJjX29mZl9zY3JlZW4gKmFy Z3MgPSBkYXRhOworKwlzdHJ1Y3Qgcm9ja2NoaXBfZWJjICplYmMgPSBkZXZfZ2V0X2RydmRhdGEo ZGV2LT5kZXYpOworKwlpbnQgY29weV9yZXN1bHQ7CisrCisrCWNvcHlfcmVzdWx0ID0gY29weV9m cm9tX3VzZXIoJmViYy0+b2ZmX3NjcmVlbiwgYXJncy0+cHRyX3NjcmVlbl9jb250ZW50LCAxMzEz MTQ0KTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lv Y3RsX2Rlc2MgaW9jdGxzW0RSTV9DT01NQU5EX0VORCAtIERSTV9DT01NQU5EX0JBU0VdID0gewor KwlEUk1fSU9DVExfREVGX0RSVihST0NLQ0hJUF9FQkNfR0xPQkFMX1JFRlJFU0gsIGlvY3RsX3Ry aWdnZXJfZ2xvYmFsX3JlZnJlc2gsCisrCQkJICBEUk1fUkVOREVSX0FMTE9XKSwKKysJRFJNX0lP Q1RMX0RFRl9EUlYoUk9DS0NISVBfRUJDX09GRl9TQ1JFRU4sIGlvY3RsX3NldF9vZmZfc2NyZWVu LAorKwkJCSAgRFJNX1JFTkRFUl9BTExPVyksCisrfTsKKysKKyBzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9kcml2ZXIgcm9ja2NoaXBfZWJjX2RybV9kcml2ZXIgPSB7CisgCS5sYXN0Y2xvc2UJCT0g ZHJtX2ZiX2hlbHBlcl9sYXN0Y2xvc2UsCisgCURSTV9HRU1fU0hNRU1fRFJJVkVSX09QUywKK0BA IC0yMDMsNiArMjQyLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZHJpdmVyIHJvY2tjaGlw X2ViY19kcm1fZHJpdmVyID0geworIAkuZGF0ZQkJCT0gIjIwMjIwMzAzIiwKKyAJLmRyaXZlcl9m ZWF0dXJlcwk9IERSSVZFUl9BVE9NSUMgfCBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQsCisg CS5mb3BzCQkJPSAmcm9ja2NoaXBfZWJjX2ZvcHMsCisrCS5pb2N0bHMgPSBpb2N0bHMsCisrCS5u dW1faW9jdGxzID0gRFJNX1JPQ0tDSElQX0VCQ19OVU1fSU9DVExTLAorIH07CisgCisgc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3Mgcm9ja2NoaXBfZWJjX21vZGVfY29u ZmlnX2Z1bmNzID0geworZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vcm9ja2NoaXBfZWJj X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9yb2NrY2hpcF9lYmNfZHJtLmgKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLmJlZmE2MmE2OGJlMAorLS0tIC9kZXYvbnVs bAorKysrIGIvaW5jbHVkZS91YXBpL2RybS9yb2NrY2hpcF9lYmNfZHJtLmgKK0BAIC0wLDAgKzEs MjUgQEAKKysjaWZuZGVmIF9fUk9DS0NISVBfRUJDX0RSTV9IX18KKysjZGVmaW5lIF9fUk9DS0NI SVBfRUJDX0RSTV9IX18KKysKKysjaW5jbHVkZSAiZHJtLmgiCisrCisrI2lmIGRlZmluZWQoX19j cGx1c3BsdXMpCisrZXh0ZXJuICJDIiB7CisrI2VuZGlmCisrCisrCisrc3RydWN0IGRybV9yb2Nr Y2hpcF9lYmNfdHJpZ2dlcl9nbG9iYWxfcmVmcmVzaCB7CisrCWJvb2wgdHJpZ2dlcl9nbG9iYWxf cmVmcmVzaDsKKyt9OworKworK3N0cnVjdCBkcm1fcm9ja2NoaXBfZWJjX29mZl9zY3JlZW4gewor KwlfX3U2NCBpbmZvMTsKKysJY2hhciAqIHB0cl9zY3JlZW5fY29udGVudDsKKyt9OworKworKyNk ZWZpbmUgRFJNX1JPQ0tDSElQX0VCQ19OVU1fSU9DVExTCQkweDAyCisrCisrI2RlZmluZSBEUk1f SU9DVExfUk9DS0NISVBfRUJDX0dMT0JBTF9SRUZSRVNICURSTV9JT1dSKERSTV9DT01NQU5EX0JB U0UgKyAweDAwLCBzdHJ1Y3QgZHJtX3JvY2tjaGlwX2ViY190cmlnZ2VyX2dsb2JhbF9yZWZyZXNo KQorKyNkZWZpbmUgRFJNX0lPQ1RMX1JPQ0tDSElQX0VCQ19PRkZfU0NSRUVOCURSTV9JT1dSKERS TV9DT01NQU5EX0JBU0UgKyAweDAxLCBzdHJ1Y3QgZHJtX3JvY2tjaGlwX2ViY19vZmZfc2NyZWVu KQorKworKyNlbmRpZiAvKiBfX1JPQ0tDSElQX0VCQ19EUk1fSF9fKi8KKy0tIAorMi4zMC4yCisK KworRnJvbSAyODU1ZmI4Y2Y1ODI0YjlkMGQ2MmQxOTQ0NDBhNGQ3YWFkMzYwYzI4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF4aW1pbGlhbiBXZWlnYW5kIDxtd2VpZ2FuZEBtd2Vp Z2FuZC5uZXQ+CitEYXRlOiBUaHUsIDkgSnVuIDIwMjIgMDk6NTY6MTMgKzAyMDAKK1N1YmplY3Q6 IFtQQVRDSCAxNS8zN10gW3JvY2tjaGlwX2ViY10gdHJ5IHRvIHNwbGl0IG92ZXJsYXBwaW5nIGFy ZWFzIGludG8gZm91cgorIHN1YmFyZWFzIGR1cmluZyByZWZyZXNoIHNvIHRoYXQgdGhlIG5vbi1v dmVybGFwcGluZyBwYXJ0cyBjYW4gc3RhcnQgdG8KKyByZWZyZXNoIGFzIHNvb24gYXMgcG9zc2li bGUgYW5kIHdlIG9ubHkgbmVlZCB0byB3YWl0IGZvciB0aGUgb3ZlcmxhcHBpbmcKKyBwYXJ0Lgor CitUaGUgbnVtYmVyIG9mIGFyZWFzIHRvIHNwbGl0IHdoaWxlIHByZXBhcmluZyBlYWNoIGZyYW1l IGNhbiBiZSBsaW1pdGVkLgorSSdtIG5vdCBzdXJlIGlmIHRoaXMgaXMgcmVhbGx5IHJlcXVpcmVk LCBidXQgSSBmZWFyIHRoYXQgdG9vIG1hbnkgc3BsaXRzCitjb3VsZCBzbG93IGRvd24gdGhlIHJl ZnJlc2ggdGhyZWFkLgorCitTcGxpdHRpbmcgYXJlYXMgY2FuIHByb2R1Y2UgYXJlYXMgdGhhdCBk byBub3QgYWxpZ24gd2l0aCBmdWxsIGJ5dGVzICg0CitiaXQvYnl0ZSksIHNvIHdlIGFsc28gdHJ5 IHRvIGFjY291bnQgZm9yIG9kZCBzdGFydC9lbmQgY2xpcHMuCistLS0KKyBkcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgfCAxNzYgKysrKysrKysrKysrKysrKysrKysrKyst CisgMSBmaWxlIGNoYW5nZWQsIDE3MiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jIGIvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCitpbmRleCA5YTBhMjM4ODI5YmIu LjZmN2JiZTBiZDcwZiAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2Nr Y2hpcF9lYmMuYworKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5j CitAQCAtNDE1LDEwICs0MTUsMTUgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJjX2dsb2JhbF9y ZWZyZXNoKHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywKKyBzdGF0aWMgYm9vbCByb2NrY2hpcF9l YmNfc2NoZWR1bGVfYXJlYShzdHJ1Y3QgbGlzdF9oZWFkICphcmVhcywKKyAJCQkJICAgICAgIHN0 cnVjdCByb2NrY2hpcF9lYmNfYXJlYSAqYXJlYSwKKyAJCQkJICAgICAgIHN0cnVjdCBkcm1fZGV2 aWNlICpkcm0sCistCQkJCSAgICAgICB1MzIgY3VycmVudF9mcmFtZSwgdTMyIG51bV9waGFzZXMp CisrCQkJCSAgICAgICB1MzIgY3VycmVudF9mcmFtZSwgdTMyIG51bV9waGFzZXMsCisrCQkJCSAg ICAgICBzdHJ1Y3Qgcm9ja2NoaXBfZWJjX2FyZWEgKm5leHRfYXJlYSwKKysJCQkJCSAgIGludCAq IHNwbGl0X2NvdW50ZXIKKysJCQkJCSAgICkKKyB7CisgCXN0cnVjdCByb2NrY2hpcF9lYmNfYXJl YSAqb3RoZXI7CisrCS8vIGJ5IGRlZmF1bHQsIGJlZ2luIG5vdworIAl1MzIgZnJhbWVfYmVnaW4g PSBjdXJyZW50X2ZyYW1lOworKwkvKiBwcmludGsoS0VSTl9JTkZPICJzY2hlZHVsaW5nIGFyZWE6 ICVpLSVpICVpLSVpXG4iLCBhcmVhLT5jbGlwLngxLCBhcmVhLT5jbGlwLngyLCBhcmVhLT5jbGlw LnkxLCBhcmVhLT5jbGlwLnkyKTsgKi8KKyAKKyAJbGlzdF9mb3JfZWFjaF9lbnRyeShvdGhlciwg YXJlYXMsIGxpc3QpIHsKKyAJCXN0cnVjdCBkcm1fcmVjdCBpbnRlcnNlY3Rpb247CitAQCAtNDM3 LDExICs0NDIsMTI0IEBAIHN0YXRpYyBib29sIHJvY2tjaGlwX2ViY19zY2hlZHVsZV9hcmVhKHN0 cnVjdCBsaXN0X2hlYWQgKmFyZWFzLAorIAkJaW50ZXJzZWN0aW9uID0gYXJlYS0+Y2xpcDsKKyAJ CWlmICghZHJtX3JlY3RfaW50ZXJzZWN0KCZpbnRlcnNlY3Rpb24sICZvdGhlci0+Y2xpcCkpCisg CQkJY29udGludWU7CisrCQkvLyB3ZSBnb3QgaGVyZSwgc28gdGhlcmUgaXMgYSBjb2xsaXNpb24K KyAKKyAJCS8qIElmIHRoZSBvdGhlciBhcmVhIGFscmVhZHkgc3RhcnRlZCwgd2FpdCB1bnRpbCBp dCBmaW5pc2hlcy4gKi8KKyAJCWlmIChvdGhlci0+ZnJhbWVfYmVnaW4gPCBjdXJyZW50X2ZyYW1l KSB7CisgCQkJZnJhbWVfYmVnaW4gPSBvdGhlcl9lbmQ7CistCQkJY29udGludWU7CisrCisrCQkJ Ly8gc28gaGVyZSB3ZSB3b3VsZCBvcHRpbWFsbHkgd2FudCB0byBzcGxpdCB0aGUgbmV3IGFyZWEg aW50byB0aHJlZQorKwkJCS8vIHBhcnRzIHRoYXQgZG8gbm90IG92ZXJsYXAgd2l0aCB0aGUgYWxy ZWFkeS1zdGFydGVkIGFyZWEsIGFuZCBvbmUKKysJCQkvLyB3aGljaCBpcyBvdmVybGFwcGluZy4g VGhlIG92ZXJsYXBwaW5nIG9uZSB3aWxsIGJlIHNjaGVkdWxlZCBmb3IKKysJCQkvLyBsYXRlciwg YnV0IHRoZSBvdGhlciB0aHJlZSBzaG91bGQgc3RhcnQgaW1tZWRpYXRlbHkuCisrCisrCQkJLy8g aWYgdGhlIGFyZWEgaXMgZXF1YWwgdG8gdGhlIGNsaXAsIGNvbnRpbnVlCisrCQkJaWYgKGRybV9y ZWN0X2VxdWFscygmYXJlYS0+Y2xpcCwgJmludGVyc2VjdGlvbikpCisrCQkJCWNvbnRpbnVlOwor KworKwkJCS8vIGZvciBub3csIG1pbiBzaXplIGlmIDJ4MgorKwkJCWlmICgoYXJlYS0+Y2xpcC54 MiAtIGFyZWEtPmNsaXAueDEgPCAyKSB8IChhcmVhLT5jbGlwLnkyIC0gYXJlYS0+Y2xpcC55MSA8 IDIpKQorKwkJCQljb250aW51ZTsKKysKKysJCQkvLyBvaywgd2Ugd2FudCB0byBzcGxpdCB0aGlz IGFyZWEgYW5kIHN0YXJ0IHdpdGggYW55IHBhcnRpYWwgYXJlYXMKKysJCQkvLyB0aGF0IGFyZSBu b3Qgb3ZlcmxhcHBpbmcgKHdlbGwsIGxldCB0aGlzIGJlIGRlY2lkZWQgdXBvbiBhdCB0aGUKKysJ CQkvLyBuZXh0IG91dGVyIGxvb3AgLSB3ZSBkZWxldGUgdGhpcyBhcmVhIHNvIHdlIG5lZWQgbm90 IHRvIGp1Z2dsZQorKwkJCS8vIGFyb3VuZCB0aGUgZm91ciBhcmVhcyB1bnRpbCB3ZSBmb3VuZCB0 aGUgb25lIHRoYXQgaXMgYWN0dWFsbHkKKysJCQkvLyBvdmVybGFwcGluZykKKysJCQlpbnQgeG1p biwgeG1heCwgeW1pbiwgeW1heCwgeGNlbnRlciwgeWNlbnRlcjsKKysJCQl4bWluID0gYXJlYS0+ Y2xpcC54MTsKKysJCQlpZiAoaW50ZXJzZWN0aW9uLngxID4geG1pbikKKysJCQkJeGNlbnRlciA9 IGludGVyc2VjdGlvbi54MTsKKysJCQllbHNlCisrCQkJCXhjZW50ZXIgPSBpbnRlcnNlY3Rpb24u eDI7CisrCQkJeG1heCA9IGFyZWEtPmNsaXAueDI7CisrCisrCQkJeW1pbiA9IGFyZWEtPmNsaXAu eTE7CisrCQkJaWYgKGludGVyc2VjdGlvbi55MSA+IHltaW4pCisrCQkJCXljZW50ZXIgPSBpbnRl cnNlY3Rpb24ueTE7CisrCQkJZWxzZQorKwkJCQl5Y2VudGVyID0gaW50ZXJzZWN0aW9uLnkyOwor KwkJCXltYXggPSBhcmVhLT5jbGlwLnkyOworKworKwkJCWlmICgoeG1pbiA9PSB4Y2VudGVyKSB8 ICh4Y2VudGVyID09IHhtYXgpKQorKwkJCQljb250aW51ZTsKKysJCQlpZiAoKHltaW4gPT0geWNl bnRlcikgfCAoeWNlbnRlciA9PSB5bWF4KSkKKysJCQkJY29udGludWU7CisrCisrCQkJLy8gd2Ug ZG8gbm90IHdhbnQgdG8gb3ZlcmhlbG0gdGhlIHJlZnJlc2ggdGhyZWFkIGFuZCBsaW1pdCB1cyB0 byBhCisrCQkJLy8gY2VydGFpbiBudW1iZXIgb2Ygc3BsaXRzLiBUaGUgcmVzdCBuZWVkcyB0byB3 YWl0CisrCQkJaWYgKCpzcGxpdF9jb3VudGVyID49IDYpCisrCQkJCWNvbnRpbnVlOworKworKwkJ CS8vIHdlIG5lZWQgZm91ciBuZXcgcm9rY2hpcF9lYmNfYXJlYSBlbnRyaWVzIHRoYXQgd2Ugc3Bs aWNlIGludG8KKysJCQkvLyB0aGUgbGlzdC4gTm90ZSB0aGF0IHRoZSBjdXJyZW50bHkgbmV4dCBp dGVtIHNoYWxsIGJlIGNvcGllZAorKwkJCS8vIGJhY2t3YXJkcyBiZWNhdXNlIHRvIHByZXZlbnQg dGhlIG91dGVyIGxpc3QgaXRlcmF0aW9uIGZyb20KKysJCQkvLyBza2lwcGluZyBvdmVyIG91ciBu ZXdseSBjcmVhdGVkIGl0ZW1zLgorKworKwkJCXN0cnVjdCByb2NrY2hpcF9lYmNfYXJlYSAqIGl0 ZW0xOworKwkJCXN0cnVjdCByb2NrY2hpcF9lYmNfYXJlYSAqIGl0ZW0yOworKwkJCXN0cnVjdCBy b2NrY2hpcF9lYmNfYXJlYSAqIGl0ZW0zOworKwkJCXN0cnVjdCByb2NrY2hpcF9lYmNfYXJlYSAq IGl0ZW00OworKwkJCWl0ZW0xID0ga21hbGxvYyhzaXplb2YoKml0ZW0xKSwgR0ZQX0tFUk5FTCk7 CisrCQkJaXRlbTIgPSBrbWFsbG9jKHNpemVvZigqaXRlbTIpLCBHRlBfS0VSTkVMKTsKKysJCQlp dGVtMyA9IGttYWxsb2Moc2l6ZW9mKCppdGVtMyksIEdGUF9LRVJORUwpOworKwkJCWl0ZW00ID0g a21hbGxvYyhzaXplb2YoKml0ZW00KSwgR0ZQX0tFUk5FTCk7CisrCisrCQkJLy8gVE9ETzogRXJy b3IgY2hlY2tpbmchISEhCisrCQkJLyogaWYgKCFhcmVhKSAqLworKwkJCS8qIAlyZXR1cm4gLUVO T01FTTsgKi8KKysKKysJCQlpZiAobGlzdF9pc19sYXN0KCZhcmVhLT5saXN0LCBhcmVhcykpewor KwkJCQkvKiBwcmludGsoS0VSTl9JTkZPICJhZGRpbmcgdG8gZW5kIG9mIGxpc3RcbiIpOyAqLwor KwkJCQlsaXN0X2FkZF90YWlsKCZpdGVtMS0+bGlzdCwgYXJlYXMpOworKwkJCQlsaXN0X2FkZF90 YWlsKCZpdGVtMi0+bGlzdCwgYXJlYXMpOworKwkJCQlsaXN0X2FkZF90YWlsKCZpdGVtMy0+bGlz dCwgYXJlYXMpOworKwkJCQlsaXN0X2FkZF90YWlsKCZpdGVtNC0+bGlzdCwgYXJlYXMpOworKwkJ CX0KKysJCQllbHNleworKwkJCQkvKiBwcmludGsoS0VSTl9JTkZPICJzcGxpY2luZyBpbnRvIHRo ZSBtaWRkbGUgb2YgdGhlIGxpc3RcbiIpOyAqLworKwkJCQlfX2xpc3RfYWRkKCZpdGVtNC0+bGlz dCwgYXJlYXMsIGFyZWFzLT5uZXh0KTsKKysJCQkJX19saXN0X2FkZCgmaXRlbTMtPmxpc3QsIGFy ZWFzLCBhcmVhcy0+bmV4dCk7CisrCQkJCV9fbGlzdF9hZGQoJml0ZW0yLT5saXN0LCBhcmVhcywg YXJlYXMtPm5leHQpOworKwkJCQlfX2xpc3RfYWRkKCZpdGVtMS0+bGlzdCwgYXJlYXMsIGFyZWFz LT5uZXh0KTsKKysJCQl9CisrCQkJbmV4dF9hcmVhID0gaXRlbTE7CisrCisrCQkJLy8gbm93IGZp bGwgdGhlIGFyZWFzCisrCQkJLyogcHJpbnRrKEtFUk5fSU5GTyAiYXJlYTE6ICVpICVpICVpICVp XG4iLCB4bWluLCB4Y2VudGVyLCB5bWluLCB5Y2VudGVyKTsgKi8KKysJCQkvKiBwcmludGsoS0VS Tl9JTkZPICJhcmVhMjogJWkgJWkgJWkgJWlcbiIsIHhtaW4sIHhjZW50ZXIsIHljZW50ZXIsIHlt YXgpOyAqLworKwkJCS8qIHByaW50ayhLRVJOX0lORk8gImFyZWEzOiAlaSAlaSAlaSAlaVxuIiwg eGNlbnRlciwgeG1heCwgeW1pbiwgeWNlbnRlcik7ICovCisrCQkJLyogcHJpbnRrKEtFUk5fSU5G TyAiYXJlYTQ6ICVpICVpICVpICVpXG4iLCB4Y2VudGVyLCB4bWF4LCB5Y2VudGVyLCB5bWF4KTsg Ki8KKysKKysJCQlpdGVtMS0+ZnJhbWVfYmVnaW4gPSBFQkNfRlJBTUVfUEVORElORzsKKysJCQlp dGVtMS0+Y2xpcC54MSA9IHhtaW47CisrCQkJaXRlbTEtPmNsaXAueDIgPSB4Y2VudGVyOworKwkJ CWl0ZW0xLT5jbGlwLnkxID0geW1pbjsKKysJCQlpdGVtMS0+Y2xpcC55MiA9IHljZW50ZXI7Cisr CisrCQkJaXRlbTItPmZyYW1lX2JlZ2luID0gRUJDX0ZSQU1FX1BFTkRJTkc7CisrCQkJaXRlbTIt PmNsaXAueDEgPSB4bWluOworKwkJCWl0ZW0yLT5jbGlwLngyID0geGNlbnRlcjsKKysJCQlpdGVt Mi0+Y2xpcC55MSA9IHljZW50ZXIgKyAxOworKwkJCWl0ZW0yLT5jbGlwLnkyID0geW1heDsKKysK KysJCQlpdGVtMy0+ZnJhbWVfYmVnaW4gPSBFQkNfRlJBTUVfUEVORElORzsKKysJCQlpdGVtMy0+ Y2xpcC54MSA9IHhjZW50ZXIgKyAxOworKwkJCWl0ZW0zLT5jbGlwLngyID0geG1heDsKKysJCQlp dGVtMy0+Y2xpcC55MSA9IHltaW47CisrCQkJaXRlbTMtPmNsaXAueTIgPSB5Y2VudGVyOworKwor KwkJCWl0ZW00LT5mcmFtZV9iZWdpbiA9IEVCQ19GUkFNRV9QRU5ESU5HOworKwkJCWl0ZW00LT5j bGlwLngxID0geGNlbnRlciArIDE7CisrCQkJaXRlbTQtPmNsaXAueDIgPSB4bWF4OworKwkJCWl0 ZW00LT5jbGlwLnkxID0geWNlbnRlciArIDE7CisrCQkJaXRlbTQtPmNsaXAueTIgPSB5bWF4Owor KworKwkJCSpzcGxpdF9jb3VudGVyKys7CisrCisrCQkJLy8gbGV0IHRoZSBvdXRlciBsb29wIGRl bGV0ZSB0aGlzIGFyZWEKKysJCQlyZXR1cm4gZmFsc2U7CisrCQkJLyogY29udGludWU7ICovCisg CQl9CisgCisgCQkvKgorQEAgLTUzOCw4ICs2NTYsMTggQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBf ZWJjX2JsaXRfcGl4ZWxzKGNvbnN0IHN0cnVjdCByb2NrY2hpcF9lYmNfY3R4ICpjdHgsCisgCQkJ CSAgICAgdTggKmRzdCwgY29uc3QgdTggKnNyYywKKyAJCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJt X3JlY3QgKmNsaXApCisgeworKwlib29sIHN0YXJ0X3hfaXNfb2RkID0gY2xpcC0+eDEgJiAxOwor Kwlib29sIGVuZF94X2lzX29kZCA9IGNsaXAtPngyICYgMTsKKysJdTggZmlyc3Rfb2RkOworKwl1 OCBsYXN0X29kZDsKKysKKyAJdW5zaWduZWQgaW50IHgxX2J5dGVzID0gY2xpcC0+eDEgLyAyOwor IAl1bnNpZ25lZCBpbnQgeDJfYnl0ZXMgPSBjbGlwLT54MiAvIDI7CisrCS8vIHRoZSBpbnRlZ2Vy IGRpdmlzaW9uIGZsb29ycyBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0byBpbmNsdWRlIHRoZSBs YXN0CisrCS8vIGJ5dGUgKHBhcnRpYWxseSkKKysJaWYgKGVuZF94X2lzX29kZCkKKysJCXgyX2J5 dGVzKys7CisrCisgCXVuc2lnbmVkIGludCBwaXRjaCA9IGN0eC0+Z3JheTRfcGl0Y2g7CisgCXVu c2lnbmVkIGludCB3aWR0aCA9IHgyX2J5dGVzIC0geDFfYnl0ZXM7CisgCWNvbnN0IHU4ICpzcmNf bGluZTsKK0BAIC01NTAsOCArNjc4LDI5IEBAIHN0YXRpYyB2b2lkIHJvY2tjaGlwX2ViY19ibGl0 X3BpeGVscyhjb25zdCBzdHJ1Y3Qgcm9ja2NoaXBfZWJjX2N0eCAqY3R4LAorIAlzcmNfbGluZSA9 IHNyYyArIGNsaXAtPnkxICogcGl0Y2ggKyB4MV9ieXRlczsKKyAKKyAJZm9yICh5ID0gY2xpcC0+ eTE7IHkgPCBjbGlwLT55MjsgeSsrKSB7CisrCQlpZiAoc3RhcnRfeF9pc19vZGQpCisrCQkJLy8g a2VlcCBvbmx5IGxvd2VyIGJpdCB0byByZXN0b3JlIGl0IGFmdGVyIHRoZSBibGl0dGluZworKwkJ CWZpcnN0X29kZCA9ICpzcmNfbGluZSAmIDBiMDAwMDExMTE7CisrCQlpZiAoZW5kX3hfaXNfb2Rk KXsKKysJCQlkc3RfbGluZSArPSBwaXRjaCAtIDE7CisrCQkJLy8ga2VlcCBvbmx5IHRoZSB1cHBl ciBiaXQgZm9yIHJlc3RvcmluZyBsYXRlcgorKwkJCWxhc3Rfb2RkID0gKmRzdF9saW5lICYgMGIx MTExMDAwMDsKKysJCQlkc3RfbGluZSAtPSBwaXRjaCAtIDE7CisrCQl9CisrCisgCQltZW1jcHko ZHN0X2xpbmUsIHNyY19saW5lLCB3aWR0aCk7CisgCisrCQlpZiAoc3RhcnRfeF9pc19vZGQpewor KwkJCS8vIHdyaXRlIGJhY2sgdGhlIGZpcnN0IDQgc2F2ZWQgYml0cworKwkJCSpkc3RfbGluZSA9 IGZpcnN0X29kZCB8ICgqZHN0X2xpbmUgJiAwYjExMTEwMDAwKTsKKysJCX0KKysJCWlmIChlbmRf eF9pc19vZGQpeworKwkJCS8vIHdyaXRlIGJhY2sgdGhlIGxhc3QgNCBzYXZlZCBiaXRzCisrCQkJ ZHN0X2xpbmUgKz0gcGl0Y2ggLTE7CisrCQkJKmRzdF9saW5lID0gKCpkc3RfbGluZSAmIDBiMDAw MDExMTEpIHwgbGFzdF9vZGQ7CisrCQkJZHN0X2xpbmUgLT0gcGl0Y2ggLTE7CisrCQl9CisrCisg CQlkc3RfbGluZSArPSBwaXRjaDsKKyAJCXNyY19saW5lICs9IHBpdGNoOworIAl9CitAQCAtNTgy LDYgKzczMSw3IEBAIHN0YXRpYyB2b2lkIHJvY2tjaGlwX2ViY19wYXJ0aWFsX3JlZnJlc2goc3Ry dWN0IHJvY2tjaGlwX2ViYyAqZWJjLAorIAkJZG1hX2FkZHJfdCBwaGFzZV9oYW5kbGUgPSBwaGFz ZV9oYW5kbGVzW2ZyYW1lICUgMl07CisgCQlib29sIHN5bmNfbmV4dCA9IGZhbHNlOworIAkJYm9v bCBzeW5jX3ByZXYgPSBmYWxzZTsKKysJCWludCBzcGxpdF9jb3VudGVyID0gMDsKKyAKKyAJCS8v IG5vdyB0aGUgQ1BVIGlzIGFsbG93ZWQgdG8gY2hhbmdlIHRoZSBwaGFzZSBidWZmZXIKKyAJCWRt YV9zeW5jX3NpbmdsZV9mb3JfY3B1KGRldiwgcGhhc2VfaGFuZGxlLCBjdHgtPnBoYXNlX3NpemUs IERNQV9UT19ERVZJQ0UpOworQEAgLTYwMSwxOCArNzUxLDIwIEBAIHN0YXRpYyB2b2lkIHJvY2tj aGlwX2ViY19wYXJ0aWFsX3JlZnJlc2goc3RydWN0IHJvY2tjaGlwX2ViYyAqZWJjLAorIAkJCSAq LworIAkJCWlmIChhcmVhLT5mcmFtZV9iZWdpbiA9PSBFQkNfRlJBTUVfUEVORElORyAmJgorIAkJ CSAgICAhcm9ja2NoaXBfZWJjX3NjaGVkdWxlX2FyZWEoJmFyZWFzLCBhcmVhLCBkcm0sIGZyYW1l LAorLQkJCQkJCQllYmMtPmx1dC5udW1fcGhhc2VzKSkgeworKwkJCQkJCQllYmMtPmx1dC5udW1f cGhhc2VzLCBuZXh0X2FyZWEsICZzcGxpdF9jb3VudGVyKSkgeworIAkJCQlsaXN0X2RlbCgmYXJl YS0+bGlzdCk7CisgCQkJCWtmcmVlKGFyZWEpOworIAkJCQljb250aW51ZTsKKyAJCQl9CisgCisr CQkJLy8gd2Ugd2FpdCBhIGxpdHRsZSBiaXQgbG9uZ2VyIHRvIHN0YXJ0CisgCQkJZnJhbWVfZGVs dGEgPSBmcmFtZSAtIGFyZWEtPmZyYW1lX2JlZ2luOworIAkJCWlmIChmcmFtZV9kZWx0YSA8IDAp CisgCQkJCWNvbnRpbnVlOworIAorIAkJCS8qIENvcHkgY3R4LT5maW5hbCB0byBjdHgtPm5leHQg b24gdGhlIGZpcnN0IGZyYW1lLiAqLworIAkJCWlmIChmcmFtZV9kZWx0YSA9PSAwKSB7CisrCQkJ CXByaW50ayhLRVJOX0lORk8gInJvY2tjaGlwIHBhcnRpYWwgcmVmcmVzaCBzdGFydGluZyBhcmVh IG9uIGZyYW1lICVpICglaS8laSAlaS8laSlcbiIsIGZyYW1lLCBhcmVhLT5jbGlwLngxLCBhcmVh LT5jbGlwLngyLCBhcmVhLT5jbGlwLnkxLCBhcmVhLT5jbGlwLnkyKTsKKyAJCQkJbG9jYWxfYXJl YV9jb3VudCArPSAodTY0KSAoCisgCQkJCQlhcmVhLT5jbGlwLngyIC0gYXJlYS0+Y2xpcC54MSkg KgorIAkJCQkJKGFyZWEtPmNsaXAueTIgLSBhcmVhLT5jbGlwLnkxKTsKK0BAIC0xMjEyLDkgKzEz NjQsMTMgQEAgc3RhdGljIGJvb2wgcm9ja2NoaXBfZWJjX2JsaXRfZmIoY29uc3Qgc3RydWN0IHJv Y2tjaGlwX2ViY19jdHggKmN0eCwKKyAJaW50IGRlbHRhX3g7CisgCXZvaWQgKmRzdDsKKyAKKysJ Ym9vbCBzdGFydF94X2lzX29kZCA9IHNyY19jbGlwLT54MSAmIDE7CisrCWJvb2wgZW5kX3hfaXNf b2RkID0gc3JjX2NsaXAtPngyICYgMTsKKysKKyAJZGVsdGFfeCA9IHBhbmVsX3JlZmxlY3Rpb24g PyAtMSA6IDE7CisgCXN0YXJ0X3ggPSBwYW5lbF9yZWZsZWN0aW9uID8gc3JjX2NsaXAtPngyIC0g MSA6IHNyY19jbGlwLT54MTsKKyAKKysJLy8gSSB0aGluayB0aGlzIGFsc28gd29ya3MgaWYgZHN0 X2NsaXAtPngxIGlzIG9kZAorIAlkc3QgPSBjdHgtPmZpbmFsICsgZHN0X2NsaXAtPnkxICogZHN0 X3BpdGNoICsgZHN0X2NsaXAtPngxIC8gMjsKKyAJc3JjID0gdmFkZHIgKyBzcmNfY2xpcC0+eTEg KiBzcmNfcGl0Y2ggKyBzdGFydF94ICogZmItPmZvcm1hdC0+Y3BwWzBdOworIAorQEAgLTEyMzYs NyArMTM5MiwxOSBAQCBzdGF0aWMgYm9vbCByb2NrY2hpcF9lYmNfYmxpdF9mYihjb25zdCBzdHJ1 Y3Qgcm9ja2NoaXBfZWJjX2N0eCAqY3R4LAorIAkJCS8qIFVuYmlhcyB0aGUgdmFsdWUgZm9yIHJv dW5kaW5nIHRvIDQgYml0cy4gKi8KKyAJCQlyZ2IwICs9IDB4MDcwMDAwMDBVOyByZ2IxICs9IDB4 MDcwMDAwMDBVOworIAorLQkJCWdyYXkgPSByZ2IwID4+IDI4IHwgcmdiMSA+PiAyOCA8PCA0Owor KwkJCXJnYjAgPj49IDI4OworKwkJCXJnYjEgPj49IDI4OworKworKwkJCWlmICh4ID09IHNyY19j bGlwLT54MSAmJiBzdGFydF94X2lzX29kZCkgeworKwkJCQkvLyByZ2IwIHNob3VsZCBiZSBmaWxs ZWQgd2l0aCB0aGUgY29udGVudCBvZiB0aGUgc3JjIHBpeGVsIGhlcmUKKysJCQkJcmdiMCA9ICpk YnVmOworKwkJCX0KKysJCQlpZiAoeCA9PSBzcmNfY2xpcC0+eDIgJiYgZW5kX3hfaXNfb2RkKSB7 CisrCQkJCS8vIHJnYjEgc2hvdWxkIGJlIGZpbGxlZCB3aXRoIHRoZSBjb250ZW50IG9mIHRoZSBz cmMgcGl4ZWwgaGVyZQorKwkJCQlyZ2IxID0gKmRidWY7CisrCQkJfQorKworKwkJCWdyYXkgPSBy Z2IwIHwgcmdiMSA8PCA0OworIAkJCWNoYW5nZWQgfD0gZ3JheSBeICpkYnVmOworIAkJCSpkYnVm KysgPSBncmF5OworIAkJfQorLS0gCisyLjMwLjIKKworCitGcm9tIDU4Y2I4MTRmYTgzODlhMTU3 YzMwZDkwNTExYmUzM2I3NTA2NmE0MTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBN YXhpbWlsaWFuIFdlaWdhbmQgPG13ZWlnYW5kQG13ZWlnYW5kLm5ldD4KK0RhdGU6IFNhdCwgMTEg SnVuIDIwMjIgMjA6NTU6MzQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxNi8zN10gW3JvY2tjaGlw X2ViY10gYWRkIGEgc3lzIHBhcmFtZXRlciBzcGxpdF9hcmVhX2xpbWl0CisgKGRlZmF1bHQ6IDEy KSB0aGF0IGRldGVybWluZXMgaG93IG1hbnkgYXJlYXMgdG8gbWF4aW1hbGx5IHNwbGl0IGluIGVh Y2gKKyBzY2hlZHVsaW5nIHJ1bi4gU2V0IHRvIDAgdG8gZGlzYWJsZSBhcmVhIHNwbGl0dGluZy4K KworLS0tCisgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jIHwgNiArKysr Ky0KKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2Rp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKK2luZGV4IDZmN2JiZTBiZDcwZi4u YWU4ZjY3MjdkMDVjIDEwMDY0NAorLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2ViYy5jCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMK K0BAIC0xOTMsNiArMTkzLDEwIEBAIHN0YXRpYyBpbnQgcmVmcmVzaF90aHJlc2hvbGQgPSAyMDsK KyBtb2R1bGVfcGFyYW0ocmVmcmVzaF90aHJlc2hvbGQsIGludCwgU19JUlVHT3xTX0lXVVNSKTsK KyBNT0RVTEVfUEFSTV9ERVNDKHJlZnJlc2hfdGhyZXNob2xkLCAicmVmcmVzaCB0aHJlc2hvbGQg aW4gc2NyZWVuIGFyZWEgbXVsdGlwbGVzIik7CisgCisrc3RhdGljIGludCBzcGxpdF9hcmVhX2xp bWl0ID0gMTI7CisrbW9kdWxlX3BhcmFtKHNwbGl0X2FyZWFfbGltaXQsIGludCwgU19JUlVHT3xT X0lXVVNSKTsKKytNT0RVTEVfUEFSTV9ERVNDKHNwbGl0X2FyZWFfbGltaXQsICJob3cgbWFueSBh cmVhcyB0byBzcGxpdCBpbiBlYWNoIHNjaGVkdWxpbmcgY2FsbCIpOworKworIERFRklORV9EUk1f R0VNX0ZPUFMocm9ja2NoaXBfZWJjX2ZvcHMpOworIAorIHN0YXRpYyBpbnQgaW9jdGxfdHJpZ2dl cl9nbG9iYWxfcmVmcmVzaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorQEAg LTQ4OCw3ICs0OTIsNyBAQCBzdGF0aWMgYm9vbCByb2NrY2hpcF9lYmNfc2NoZWR1bGVfYXJlYShz dHJ1Y3QgbGlzdF9oZWFkICphcmVhcywKKyAKKyAJCQkvLyB3ZSBkbyBub3Qgd2FudCB0byBvdmVy aGVsbSB0aGUgcmVmcmVzaCB0aHJlYWQgYW5kIGxpbWl0IHVzIHRvIGEKKyAJCQkvLyBjZXJ0YWlu IG51bWJlciBvZiBzcGxpdHMuIFRoZSByZXN0IG5lZWRzIHRvIHdhaXQKKy0JCQlpZiAoKnNwbGl0 X2NvdW50ZXIgPj0gNikKKysJCQlpZiAoKnNwbGl0X2NvdW50ZXIgPj0gc3BsaXRfYXJlYV9saW1p dCkKKyAJCQkJY29udGludWU7CisgCisgCQkJLy8gd2UgbmVlZCBmb3VyIG5ldyByb2tjaGlwX2Vi Y19hcmVhIGVudHJpZXMgdGhhdCB3ZSBzcGxpY2UgaW50bworLS0gCisyLjMwLjIKKworCitGcm9t IDJiOTFjYzJkMTJkNzNlMjRiZmJmYWUzZmRjOWE3MWU4Mzg4NTA5MmQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBNYXhpbWlsaWFuIFdlaWdhbmQgPG13ZWlnYW5kQG13ZWlnYW5kLm5l dD4KK0RhdGU6IFNhdCwgMTEgSnVuIDIwMjIgMjA6NTY6MzYgKzAyMDAKK1N1YmplY3Q6IFtQQVRD SCAxNy8zN10gW3JvY2tjaGlwX2ViY10gZml4IGlvY3RsIHByaW50ayBtZXNzYWdlCisKKy0tLQor IGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyB8IDIgKy0KKyAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9y b2NrY2hpcC9yb2NrY2hpcF9lYmMuYworaW5kZXggYWU4ZjY3MjdkMDVjLi40ZDZhNzk5ZDdiYjQg MTAwNjQ0CistLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKKysr KyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworQEAgLTIwNiw3ICsy MDYsNyBAQCBzdGF0aWMgaW50IGlvY3RsX3RyaWdnZXJfZ2xvYmFsX3JlZnJlc2goc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKyAJc3RydWN0IHJvY2tjaGlwX2ViYyAqZWJjID0g ZGV2X2dldF9kcnZkYXRhKGRldi0+ZGV2KTsKKyAKKyAJaWYgKGFyZ3MtPnRyaWdnZXJfZ2xvYmFs X3JlZnJlc2gpeworLQkJcHJpbnRrKEtFUk5fSU5GTyAicm9ja2NoaXBfZWJjOiBpb2N0bCB3b3Vs ZCB0cmlnZ2VyIGZ1bGwgcmVmcmVzaCBcbiIpOworKwkJcHJpbnRrKEtFUk5fSU5GTyAicm9ja2No aXBfZWJjOiBpb2N0bCB0cmlnZ2VyZWQgZnVsbCByZWZyZXNoIFxuIik7CisgCQlzcGluX2xvY2so JmViYy0+cmVmcmVzaF9vbmNlX2xvY2spOworIAkJZWJjLT5kb19vbmVfZnVsbF9yZWZyZXNoID0g dHJ1ZTsKKyAJCXNwaW5fdW5sb2NrKCZlYmMtPnJlZnJlc2hfb25jZV9sb2NrKTsKKy0tIAorMi4z MC4yCisKKworRnJvbSAzMTRlYmFlNzIxMTYxM2NjZTkwODU4MDkxMTUyMTJmM2RjMTAwMmE4IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF4aW1pbGlhbiBXZWlnYW5kIDxtd2VpZ2Fu ZEBtd2VpZ2FuZC5uZXQ+CitEYXRlOiBTYXQsIDExIEp1biAyMDIyIDIwOjU3OjE0ICswMjAwCitT dWJqZWN0OiBbUEFUQ0ggMTgvMzddIFtyb2NrY2hpcF9lYmNdIGZpeCBjbGlwcyBvZiBzcGxpdCBh cmVhcworCistLS0KKyBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgfCA4 ICsrKystLS0tCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMu YyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworaW5kZXggNGQ2YTc5 OWQ3YmI0Li40ZWI2ZTFlMGYyNjEgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZWJjLmMKKysrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hp cF9lYmMuYworQEAgLTU0NCwxOSArNTQ0LDE5IEBAIHN0YXRpYyBib29sIHJvY2tjaGlwX2ViY19z Y2hlZHVsZV9hcmVhKHN0cnVjdCBsaXN0X2hlYWQgKmFyZWFzLAorIAkJCWl0ZW0yLT5mcmFtZV9i ZWdpbiA9IEVCQ19GUkFNRV9QRU5ESU5HOworIAkJCWl0ZW0yLT5jbGlwLngxID0geG1pbjsKKyAJ CQlpdGVtMi0+Y2xpcC54MiA9IHhjZW50ZXI7CistCQkJaXRlbTItPmNsaXAueTEgPSB5Y2VudGVy ICsgMTsKKysJCQlpdGVtMi0+Y2xpcC55MSA9IHljZW50ZXI7CisgCQkJaXRlbTItPmNsaXAueTIg PSB5bWF4OworIAorIAkJCWl0ZW0zLT5mcmFtZV9iZWdpbiA9IEVCQ19GUkFNRV9QRU5ESU5HOwor LQkJCWl0ZW0zLT5jbGlwLngxID0geGNlbnRlciArIDE7CisrCQkJaXRlbTMtPmNsaXAueDEgPSB4 Y2VudGVyOworIAkJCWl0ZW0zLT5jbGlwLngyID0geG1heDsKKyAJCQlpdGVtMy0+Y2xpcC55MSA9 IHltaW47CisgCQkJaXRlbTMtPmNsaXAueTIgPSB5Y2VudGVyOworIAorIAkJCWl0ZW00LT5mcmFt ZV9iZWdpbiA9IEVCQ19GUkFNRV9QRU5ESU5HOworLQkJCWl0ZW00LT5jbGlwLngxID0geGNlbnRl ciArIDE7CisrCQkJaXRlbTQtPmNsaXAueDEgPSB4Y2VudGVyOworIAkJCWl0ZW00LT5jbGlwLngy ID0geG1heDsKKy0JCQlpdGVtNC0+Y2xpcC55MSA9IHljZW50ZXIgKyAxOworKwkJCWl0ZW00LT5j bGlwLnkxID0geWNlbnRlcjsKKyAJCQlpdGVtNC0+Y2xpcC55MiA9IHltYXg7CisgCisgCQkJKnNw bGl0X2NvdW50ZXIrKzsKKy0tIAorMi4zMC4yCisKKworRnJvbSA1ODk0YTA4NjkzOWVjMmM4ZTg4 YmRiZTI1MDUwNTJkNmQ0ZmQ3ZGE0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF4 aW1pbGlhbiBXZWlnYW5kIDxtd2VpZ2FuZEBtd2VpZ2FuZC5uZXQ+CitEYXRlOiBTYXQsIDExIEp1 biAyMDIyIDIwOjU3OjQ0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMTkvMzddIFtyb2NrY2hpcF9l YmNdIGZpeCBpbmNyZW1lbnRpbmcgb2Ygc3BsaXR0aW5nIGNvdW50ZXIKKworLS0tCisgZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jIHwgMiArLQorIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX2ViYy5jCitpbmRleCA0ZWI2ZTFlMGYyNjEuLjdlMTU1ODQwMzk3MyAxMDA2NDQK Ky0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworKysrIGIvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCitAQCAtNTU5LDcgKzU1OSw3IEBA IHN0YXRpYyBib29sIHJvY2tjaGlwX2ViY19zY2hlZHVsZV9hcmVhKHN0cnVjdCBsaXN0X2hlYWQg KmFyZWFzLAorIAkJCWl0ZW00LT5jbGlwLnkxID0geWNlbnRlcjsKKyAJCQlpdGVtNC0+Y2xpcC55 MiA9IHltYXg7CisgCistCQkJKnNwbGl0X2NvdW50ZXIrKzsKKysJCQkoKnNwbGl0X2NvdW50ZXIp Kys7CisgCisgCQkJLy8gbGV0IHRoZSBvdXRlciBsb29wIGRlbGV0ZSB0aGlzIGFyZWEKKyAJCQly ZXR1cm4gZmFsc2U7CistLSAKKzIuMzAuMgorCisKK0Zyb20gMzI1Yjc3NzNjODliNDk4ZGUzNTdk Mjk1MmVkNDdiYTA1MjY1ODI5NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1heGlt aWxpYW4gV2VpZ2FuZCA8bXdlaWdhbmRAbXdlaWdhbmQubmV0PgorRGF0ZTogU2F0LCAxMSBKdW4g MjAyMiAyMDo1ODoxNyArMDIwMAorU3ViamVjdDogW1BBVENIIDIwLzM3XSBbcm9ja2NoaXBfZWJj XSBGaXggYSBidWcgaW4gdGhlIHNjaGVkdWxpbmcgZnVuY3Rpb24KKyB0aGF0IGNvdWxkIHNjaGVk dWxlIGFuIGFyZWEgdG9vIGVhcmx5OiBpZiB0aGUgYXJlYSBvdmVybGFwcyB3aXRoIGFuCisgYWxy ZWFkeS1zdGFydGVkIGFyZWEsIGl0cyBiZWdpbl9mcmFtZSB3aWxsIGJlIHNldCB0byB0aGUgZW5k IGZyYW1lIG9mIHRoZQorIG90aGVyIG9uZS4gSG93ZXZlciwgaWYgYW55IGZyYW1lIGluIHRoZSBs aXN0IGZvbGxvd3MgdGhhdCBjYW4gc3RhcnQgZWFybGllcgorIChiZWNhdXNlIGl0IGRvZXMgbm90 IG92ZXJsYXAgb3IgZmluaXNoZXMgYXQgYW4gZWFybGllciB0aW1lKSB0aGFuIHRoaXMKKyBlYXJs aWVyIGVuZCBmcmFtZSB3aWxsIGJlIHVzZWQgdG8gc2NoZWR1bGUgdGhlIG5ldyBhcmVhLgorCist LS0KKyBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgfCA1ICsrKy0tCisg MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyBiL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworaW5kZXggN2UxNTU4NDAzOTczLi45NzNk MTNmZmQwZDMgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf ZWJjLmMKKysrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworQEAg LTU3Niw4ICs1NzYsOSBAQCBzdGF0aWMgYm9vbCByb2NrY2hpcF9lYmNfc2NoZWR1bGVfYXJlYShz dHJ1Y3QgbGlzdF9oZWFkICphcmVhcywKKyAJCQlyZXR1cm4gZmFsc2U7CisgCQl9CisgCistCQkv KiBPdGhlcndpc2UsIHN0YXJ0IGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIG90aGVyIGFyZWEuICov CistCQlmcmFtZV9iZWdpbiA9IG90aGVyLT5mcmFtZV9iZWdpbjsKKysJCS8qIE90aGVyd2lzZSwg dGhlIGVhcmxpZXN0IHN0YXJ0IGlzIHRoZSBzYW1lIHRpbWUgYXMgdGhhdCBvZiB0aGUgb3RoZXIK KysJCSAqIGFyZWEuICovCisrCQlmcmFtZV9iZWdpbiA9IG1heChmcmFtZV9iZWdpbiwgb3RoZXIt PmZyYW1lX2JlZ2luKTsKKyAJfQorIAorIAlhcmVhLT5mcmFtZV9iZWdpbiA9IGZyYW1lX2JlZ2lu OworLS0gCisyLjMwLjIKKworCitGcm9tIDM1MGU0ZWMxZGE3Y2I0ZmU2N2NjYjZkNTRiOThjZmVh ZDAzMWM1MDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXhpbWlsaWFuIFdlaWdh bmQgPG13ZWlnYW5kQG13ZWlnYW5kLm5ldD4KK0RhdGU6IFNhdCwgMTEgSnVuIDIwMjIgMjE6MDg6 MTkgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAyMS8zN10gW3JvY2tjaGlwX2ViY10gVGhlIGN1cnJl bnQgZHJpdmVyIGl0ZXJhdGlvbiBkb2VzIG5vdAorIGd1YXJhbnRlZSBjb25zaXN0ZW5jeSBiZXR3 ZWVuIHRoZSBsaXN0IG9mIGN1cnJlbnRseS13b3JrZWQgb24gZGFtYWdlZCBhcmVhcworIChzbmFw c2hvdCBvZiBjdHgtPnF1ZXVlIHRha2VuIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBmcmFtZSkg YW5kIHRoZQorIGZyYW1lYnVmZmVyIGNvbnRlbnQgKGN0eC0+ZmluYWwpLiBBcyBzdWNoIGl0IGlz IHBvc3NpYmxlIHRoYXQgdGhlIGNvbnRlbnQgb2YKKyB0aGUgZnJhbWVidWZmZXIgY2hhbmdlcyBi ZWZvcmUgYSBnaXZlbiBhcmVhIGNhbiBiZSBkcmF3biwgcG90ZW50aWFsbHkgbGVhZGluZworIHRv IGdhcmJsZWQgc2NyZWVuIGNvbnRlbnQuIFRoaXMgZWZmZWN0cyBpcyBodWdlbHkgZGVwZW5kZW50 IG9uIHRoZSBuYXR1cmUgb2YKKyBkcmF3aW5nIGNhbGxzIGVtaXR0ZWQgYnkgaW5kaXZpZHVhbCBh cHBsaWNhdGlvbnMuIExhcmdlIHNjaGVkdWxlZCBhcmVhcyB0ZW5kCisgdG8gYmUgZ29vZCwgYnV0 IGlmIGFuIGFwcGxpY2F0aW9uIHNlbmRzIGxhcmdlIGJ1cnN0cyBvZgorIG92ZXJsYXBwaW5nL292 ZXJ3cml0aW5nIGFyZWFzIHRoZW4gYmFkIHRoaW5ncyBoYXBwZW4uIFRoZSBidWcvZWZmZWN0IGlz IGFsc28KKyB0cmlnZ2VyZWQgaWYgYXJlYSBzcGxpdHRpbmcgaXMgZG9uZSB0byBpbmNyZWFzZSBk cmF3aW5nIHBlcmZvcm1hbmNlLgorCitGb3IgZXhhbXBsZSwgdGhpcyBjYW4gYmUgbmljZWx5IHNl ZW4gdW5kZXIgR25vbWUgd2hlbgorY2hhb3RpY2FsbHkgbW92aW5nIHRoZSBuYXV0aWx1cyB3aW5k b3cuCisKK1RoaXMgcGF0Y2ggaXMgbm90IGEgZml4IGJ1dCBzb21ld2hhdCByZWR1Y2VzIHRoZSBp bXBhY3QgYnkgbW92aW5nIHRoZQorc3BsaW5sb2NrIGd1YXJkaW5nIHRoZSBjdHgtPnF1ZXVlIHNv IGl0IGd1YXJkcyBib3RoIHRoZSB3aG9sZQorZnJhbWUtcHJlcGFydGlvbiBwaGFzZSBvZiB0aGUg cGFydGlhbCByZWZyZXNoIGZ1bmN0aW9uIGFuZCB0aGUKK2ZyYW1lYnVmZmVyIGJsaXR0aW5nIGZ1 bmN0aW9uLgorCitBbiBhbHRlcm5hdGl2ZSB0aGF0IGFsc28gZ3JlYXRseSByZWR1Y2VzIHRoZSBl ZmZlY3QgaXMgdG8gY29weSB0aGUgd2hvbGUKK2ZyYW1lYnVmZmVyIGJlZm9yZSBwcmVwYXJpbmcg YSBnaXZlbiBmcmFtZS4gSG93ZXZlciwgdGhpcyBoYXMgYSBodWdlCitwZXJmb3JtYW5jZSBpbXBh Y3QgYW5kIHRodXMgaXMgbm90IGZlYXNpYmxlIGlmIHdlIHN0aWxsIHdhbnQgdG8gdG8KK3JlYWwt dGltZSBkcmF3aW5ncy4KKy0tLQorIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9l YmMuYyB8IDkgKysrKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2Nr Y2hpcF9lYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworaW5k ZXggOTczZDEzZmZkMGQzLi4zZWY4OTljNDc3OWYgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKKysrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9yb2NrY2hpcF9lYmMuYworQEAgLTc0NCw3ICs3NDQsNiBAQCBzdGF0aWMgdm9pZCByb2NrY2hp cF9lYmNfcGFydGlhbF9yZWZyZXNoKHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywKKyAJCS8qIE1v dmUgdGhlIHF1ZXVlZCBkYW1hZ2UgYXJlYXMgdG8gdGhlIGxvY2FsIGxpc3QuICovCisgCQlzcGlu X2xvY2soJmN0eC0+cXVldWVfbG9jayk7CisgCQlsaXN0X3NwbGljZV90YWlsX2luaXQoJmN0eC0+ cXVldWUsICZhcmVhcyk7CistCQlzcGluX3VubG9jaygmY3R4LT5xdWV1ZV9sb2NrKTsKKyAKKyAJ CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShhcmVhLCBuZXh0X2FyZWEsICZhcmVhcywgbGlzdCkg eworIAkJCXMzMiBmcmFtZV9kZWx0YTsKK0BAIC04MzIsNiArODMxLDggQEAgc3RhdGljIHZvaWQg cm9ja2NoaXBfZWJjX3BhcnRpYWxfcmVmcmVzaChzdHJ1Y3Qgcm9ja2NoaXBfZWJjICplYmMsCisg CQlkbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShkZXYsIHBoYXNlX2hhbmRsZSwKKyAJCQkJCSAg IGN0eC0+cGhhc2Vfc2l6ZSwgRE1BX1RPX0RFVklDRSk7CisgCisrCQlzcGluX3VubG9jaygmY3R4 LT5xdWV1ZV9sb2NrKTsKKysKKyAJCS8qIGlmIChmcmFtZSkgeyAqLworIAkJLyogCWlmICghd2Fp dF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZlYmMtPmRpc3BsYXlfZW5kLCAqLworIAkJLyogCQkJ CQkgRUJDX0ZSQU1FX1RJTUVPVVQpKSAqLworQEAgLTE0NDgsNiArMTQ0OSw3IEBAIHN0YXRpYyB2 b2lkIHJvY2tjaGlwX2ViY19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAorIAllYmNfcGxhbmVfc3RhdGUgPSB0b19lYmNfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUp OworIAl2YWRkciA9IGViY19wbGFuZV9zdGF0ZS0+YmFzZS5kYXRhWzBdLnZhZGRyOworIAorKwlz cGluX2xvY2soJmN0eC0+cXVldWVfbG9jayk7CisgCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShh cmVhLCBuZXh0X2FyZWEsICZlYmNfcGxhbmVfc3RhdGUtPmFyZWFzLCBsaXN0KSB7CisgCQlzdHJ1 Y3QgZHJtX3JlY3QgKmRzdF9jbGlwID0gJmFyZWEtPmNsaXA7CisgCQlzdHJ1Y3QgZHJtX3JlY3Qg c3JjX2NsaXAgPSBhcmVhLT5jbGlwOworQEAgLTE0OTMsMTAgKzE0OTUsMTEgQEAgc3RhdGljIHZv aWQgcm9ja2NoaXBfZWJjX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCisgCQl9CisgCX0KKyAKKy0JaWYgKGxpc3RfZW1wdHkoJmViY19wbGFuZV9zdGF0ZS0+YXJl YXMpKQorKwlpZiAobGlzdF9lbXB0eSgmZWJjX3BsYW5lX3N0YXRlLT5hcmVhcykpeworKwkJc3Bp bl91bmxvY2soJmN0eC0+cXVldWVfbG9jayk7CisgCQlyZXR1cm47CisrCX0KKyAKKy0Jc3Bpbl9s b2NrKCZjdHgtPnF1ZXVlX2xvY2spOworIAlsaXN0X3NwbGljZV90YWlsX2luaXQoJmViY19wbGFu ZV9zdGF0ZS0+YXJlYXMsICZjdHgtPnF1ZXVlKTsKKyAJc3Bpbl91bmxvY2soJmN0eC0+cXVldWVf bG9jayk7CisgCistLSAKKzIuMzAuMgorCisKK0Zyb20gYjM2MDg0YjdmNzc3ZGRhNjY5Y2Y4MTMy ZjUzOWMyZWJiODlkY2E0NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1heGltaWxp YW4gV2VpZ2FuZCA8bXdlaWdhbmRAbXdlaWdhbmQubmV0PgorRGF0ZTogRnJpLCAxNyBKdW4gMjAy MiAxMTowNTowNiArMDIwMAorU3ViamVjdDogW1BBVENIIDIyLzM3XSBbcm9ja2NoaXBfZWJjXSBy ZW1vdmUvY29tbWVudCBvdXQgZGVidWcgcHJpbnRrIG1lc3NhZ2VzCisKKy0tLQorIGRyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyB8IDExICsrKy0tLS0tLS0tCisgMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworaW5kZXggM2VmODk5YzQ3NzlmLi44MTllNGJmMjg1 OTUgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMK KysrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworQEAgLTIwNiw3 ICsyMDYsNiBAQCBzdGF0aWMgaW50IGlvY3RsX3RyaWdnZXJfZ2xvYmFsX3JlZnJlc2goc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKyAJc3RydWN0IHJvY2tjaGlwX2ViYyAqZWJj ID0gZGV2X2dldF9kcnZkYXRhKGRldi0+ZGV2KTsKKyAKKyAJaWYgKGFyZ3MtPnRyaWdnZXJfZ2xv YmFsX3JlZnJlc2gpeworLQkJcHJpbnRrKEtFUk5fSU5GTyAicm9ja2NoaXBfZWJjOiBpb2N0bCB0 cmlnZ2VyZWQgZnVsbCByZWZyZXNoIFxuIik7CisgCQlzcGluX2xvY2soJmViYy0+cmVmcmVzaF9v bmNlX2xvY2spOworIAkJZWJjLT5kb19vbmVfZnVsbF9yZWZyZXNoID0gdHJ1ZTsKKyAJCXNwaW5f dW5sb2NrKCZlYmMtPnJlZnJlc2hfb25jZV9sb2NrKTsKK0BAIC00MjcsNyArNDI2LDcgQEAgc3Rh dGljIGJvb2wgcm9ja2NoaXBfZWJjX3NjaGVkdWxlX2FyZWEoc3RydWN0IGxpc3RfaGVhZCAqYXJl YXMsCisgCXN0cnVjdCByb2NrY2hpcF9lYmNfYXJlYSAqb3RoZXI7CisgCS8vIGJ5IGRlZmF1bHQs IGJlZ2luIG5vdworIAl1MzIgZnJhbWVfYmVnaW4gPSBjdXJyZW50X2ZyYW1lOworLQkvKiBwcmlu dGsoS0VSTl9JTkZPICJzY2hlZHVsaW5nIGFyZWE6ICVpLSVpICVpLSVpXG4iLCBhcmVhLT5jbGlw LngxLCBhcmVhLT5jbGlwLngyLCBhcmVhLT5jbGlwLnkxLCBhcmVhLT5jbGlwLnkyKTsgKi8KKysJ Ly9wcmludGsoS0VSTl9JTkZPICJzY2hlZHVsaW5nIGFyZWE6ICVpLSVpICVpLSVpIChjdXJyZW50 IGZyYW1lOiAlaSlcbiIsIGFyZWEtPmNsaXAueDEsIGFyZWEtPmNsaXAueDIsIGFyZWEtPmNsaXAu eTEsIGFyZWEtPmNsaXAueTIsIGN1cnJlbnRfZnJhbWUpOworIAorIAlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KG90aGVyLCBhcmVhcywgbGlzdCkgeworIAkJc3RydWN0IGRybV9yZWN0IGludGVyc2VjdGlv bjsKK0BAIC03NjgsNyArNzY3LDcgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJjX3BhcnRpYWxf cmVmcmVzaChzdHJ1Y3Qgcm9ja2NoaXBfZWJjICplYmMsCisgCisgCQkJLyogQ29weSBjdHgtPmZp bmFsIHRvIGN0eC0+bmV4dCBvbiB0aGUgZmlyc3QgZnJhbWUuICovCisgCQkJaWYgKGZyYW1lX2Rl bHRhID09IDApIHsKKy0JCQkJcHJpbnRrKEtFUk5fSU5GTyAicm9ja2NoaXAgcGFydGlhbCByZWZy ZXNoIHN0YXJ0aW5nIGFyZWEgb24gZnJhbWUgJWkgKCVpLyVpICVpLyVpKVxuIiwgZnJhbWUsIGFy ZWEtPmNsaXAueDEsIGFyZWEtPmNsaXAueDIsIGFyZWEtPmNsaXAueTEsIGFyZWEtPmNsaXAueTIp OworKwkJCQkvL3ByaW50ayhLRVJOX0lORk8gInJvY2tjaGlwIHBhcnRpYWwgcmVmcmVzaCBzdGFy dGluZyBhcmVhIG9uIGZyYW1lICVpICglaS8laSAlaS8laSlcbiIsIGZyYW1lLCBhcmVhLT5jbGlw LngxLCBhcmVhLT5jbGlwLngyLCBhcmVhLT5jbGlwLnkxLCBhcmVhLT5jbGlwLnkyKTsKKyAJCQkJ bG9jYWxfYXJlYV9jb3VudCArPSAodTY0KSAoCisgCQkJCQlhcmVhLT5jbGlwLngyIC0gYXJlYS0+ Y2xpcC54MSkgKgorIAkJCQkJKGFyZWEtPmNsaXAueTIgLSBhcmVhLT5jbGlwLnkxKTsKK0BAIC04 MTcsNiArODE2LDcgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJjX3BhcnRpYWxfcmVmcmVzaChz dHJ1Y3Qgcm9ja2NoaXBfZWJjICplYmMsCisgCQkJCWRybV9kYmcoZHJtLCAiYXJlYSAlcCAoIiBE Uk1fUkVDVF9GTVQgIikgZmluaXNoZWQgb24gJXVcbiIsCisgCQkJCQlhcmVhLCBEUk1fUkVDVF9B UkcoJmFyZWEtPmNsaXApLCBmcmFtZSk7CisgCisrCQkJCS8vcHJpbnRrKEtFUk5fSU5GTyAicm9j a2NoaXAgcGFydGlhbCByZWZyZXNoIHN0b3BwaW5nIGFyZWEgb24gZnJhbWUgJWkgKCVpLyVpICVp LyVpKVxuIiwgZnJhbWUsIGFyZWEtPmNsaXAueDEsIGFyZWEtPmNsaXAueDIsIGFyZWEtPmNsaXAu eTEsIGFyZWEtPmNsaXAueTIpOworIAkJCQlsaXN0X2RlbCgmYXJlYS0+bGlzdCk7CisgCQkJCWtm cmVlKGFyZWEpOworIAkJCX0KK0BAIC04NTgsNyArODU4LDYgQEAgc3RhdGljIHZvaWQgcm9ja2No aXBfZWJjX3BhcnRpYWxfcmVmcmVzaChzdHJ1Y3Qgcm9ja2NoaXBfZWJjICplYmMsCisgCX0KKyAJ ZG1hX3VubWFwX3NpbmdsZShkZXYsIHBoYXNlX2hhbmRsZXNbMF0sIGN0eC0+Z3JheTRfc2l6ZSwg RE1BX1RPX0RFVklDRSk7CisgCWRtYV91bm1hcF9zaW5nbGUoZGV2LCBwaGFzZV9oYW5kbGVzWzFd LCBjdHgtPmdyYXk0X3NpemUsIERNQV9UT19ERVZJQ0UpOworLQkvKiBwcmludGsoS0VSTl9JTkZP ICJsb2NhIGFyZWEgY291bnQ6ICVsbHVcbiIsIGxvY2FsX2FyZWFfY291bnQpOyAqLworIAljdHgt PmFyZWFfY291bnQgKz0gbG9jYWxfYXJlYV9jb3VudDsKKyB9CisgCitAQCAtOTYwLDcgKzk1OSw2 IEBAIHN0YXRpYyB2b2lkIHJvY2tjaGlwX2ViY19yZWZyZXNoKHN0cnVjdCByb2NrY2hpcF9lYmMg KmViYywKKyAJLy8gZG8gd2UgbmVlZCBhIGZ1bGwgcmVmcmVzaAorIAlpZiAoYXV0b19yZWZyZXNo KXsKKyAJCWlmIChjdHgtPmFyZWFfY291bnQgPj0gcmVmcmVzaF90aHJlc2hvbGQgKiBvbmVfc2Ny ZWVuX2FyZWEpeworLQkJCXByaW50ayhLRVJOX0lORk8gInJvY2tjaGlwOiB0cmlnZ2VyaW5nIGZ1 bGwgcmVmcmVzaCBkdWUgdG8gZHJhd24gYXJlYSB0aHJlc2hvbGRcbiIpOworIAkJCXNwaW5fbG9j aygmZWJjLT5yZWZyZXNoX29uY2VfbG9jayk7CisgCQkJZWJjLT5kb19vbmVfZnVsbF9yZWZyZXNo ID0gdHJ1ZTsKKyAJCQlzcGluX3VubG9jaygmZWJjLT5yZWZyZXNoX29uY2VfbG9jayk7CitAQCAt MTY1MCwxNSArMTY0OCwxMiBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX2ViY19kcm1faW5pdChzdHJ1 Y3Qgcm9ja2NoaXBfZWJjICplYmMpCisgCS8vIGNoZWNrIGlmIHRoZXJlIGlzIGEgZGVmYXVsdCBv ZmYtc2NyZWVuCisgCWlmICghcmVxdWVzdF9maXJtd2FyZSgmZGVmYXVsdF9vZmZzY3JlZW4sICJy b2NrY2hpcC9yb2NrY2hpcF9lYmNfZGVmYXVsdF9zY3JlZW4uYmluIiwgZHJtLT5kZXYpKQorIAl7 CistCQlwcmludGsoS0VSTl9JTkZPICJyb2NrY2hpcF9lYmM6IGRlZmF1bHQgb2ZmLXNjcmVlbiBm aWxlIGZvdW5kXG4iKTsKKyAJCWlmIChkZWZhdWx0X29mZnNjcmVlbi0+c2l6ZSAhPSAxMzE0MTQ0 KQorIAkJCWRybV9lcnIoZHJtLCAiU2l6ZSBvZiBkZWZhdWx0IG9mZnNjcmVlbiBkYXRhIGZpbGUg aXMgbm90IDEzMTQxNDRcbiIpOworIAkJZWxzZSB7CistCQkJcHJpbnRrKEtFUk5fSU5GTyAicm9j a2NoaXBfZWJjOiBsb2FkaW5nIGRlZmF1bHQgb2ZmLXNjcmVlblxuIik7CisgCQkJbWVtY3B5KGVi Yy0+b2ZmX3NjcmVlbiwgZGVmYXVsdF9vZmZzY3JlZW4tPmRhdGEsIDEzMTQxNDQpOworIAkJfQor IAl9IGVsc2UgeworLQkJcHJpbnRrKEtFUk5fSU5GTyAicm9ja2NoaXBfZWJjOiBubyBkZWZhdWx0 IG9mZi1zY3JlZW4gZmlsZSBmb3VuZFxuIik7CisgCQkvLyBmaWxsIHRoZSBvZmYtc2NyZWVuIHdp dGggc29tZSB2YWx1ZXMKKyAJCW1lbXNldChlYmMtPm9mZl9zY3JlZW4sIDB4ZmYsIDEzMTQxNDQp OworIAkJLyogbWVtc2V0KGViYy0+b2ZmX3NjcmVlbiwgMHgwMCwgNTU2MTQ0KTsgKi8KKy0tIAor Mi4zMC4yCisKKworRnJvbSA3NGNmYTlhYWY4N2YyZjBiOTNhNjUwNTJjMjQ4ZjBiZDIxYjRiNDIy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF4aW1pbGlhbiBXZWlnYW5kIDxtd2Vp Z2FuZEBtd2VpZ2FuZC5uZXQ+CitEYXRlOiBGcmksIDE3IEp1biAyMDIyIDExOjA4OjA4ICswMjAw CitTdWJqZWN0OiBbUEFUQ0ggMjMvMzddIFtyb2NrY2hpcF9lYmNdIG1vdmUgdGhlIGFyZWEtc3Bs aXR0aW5nIGNvZGUgdG8gaXRzIG93bgorIGZ1bmN0aW9uIGFuZCBob3BlZnVsbHkgZml4IHRoZSBw b2ludGVyLXVzYWdlIGFuZCBsaXN0LWhhbmRsaW5ncyBidWdzLgorCitBbHNvLCB0cnkgdG8gc3Bs aXQgYXJlYXMgZXZlbiBpZiB0aGUgb3RoZXIgYXJlYSB3YXMgbm90IHN0YXJ0ZWQgeWV0LiBJJ20K K25vdCByZWFsbHkgc3VyZSBpZiB0aGlzIGJyaW5ncyBiZW5lZml0cywgYnV0IHRoZSBpZGVhIGlz IHRoYXQgaWYgd2UgaGF2ZQorc21hbGxlciBhcmVhcywgdGhlbiBmdXR1cmUgb3ZlcmxhcHMgd2ls bCBwcm9iYWJseSBoYXBwZW4gbGVzcy4KKy0tLQorIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9lYmMuYyB8IDI2NSArKysrKysrKysrKysrKystLS0tLS0tLS0KKyAxIGZpbGUgY2hh bmdlZCwgMTYyIGluc2VydGlvbnMoKyksIDEwMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworaW5kZXggODE5ZTRiZjI4NTk1Li41MmJmNWQxMWVj NTcgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMK KysrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworQEAgLTQxNSwx MSArNDE1LDE1NyBAQCBzdGF0aWMgdm9pZCByb2NrY2hpcF9lYmNfZ2xvYmFsX3JlZnJlc2goc3Ry dWN0IHJvY2tjaGlwX2ViYyAqZWJjLAorIAltZW1jcHkoY3R4LT5wcmV2LCBjdHgtPm5leHQsIGdy YXk0X3NpemUpOworIH0KKyAKKysvKgorKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgYXJlYSB3YXMg c3BsaXQsIGZhbHNlIG90aGVyd2lzZQorKyAqLworK3N0YXRpYyBpbnQgdHJ5X3RvX3NwbGl0X2Fy ZWEoCisrCQlzdHJ1Y3QgbGlzdF9oZWFkICphcmVhcywKKysJICAgIHN0cnVjdCByb2NrY2hpcF9l YmNfYXJlYSAqYXJlYSwKKysJICAgIHN0cnVjdCByb2NrY2hpcF9lYmNfYXJlYSAqb3RoZXIsCisr CSAgICBpbnQgKiBzcGxpdF9jb3VudGVyLAorKwkgICAgc3RydWN0IHJvY2tjaGlwX2ViY19hcmVh ICoqcF9uZXh0X2FyZWEsCisrCQlzdHJ1Y3QgZHJtX3JlY3QgKiBpbnRlcnNlY3Rpb24KKysJICAg ICl7CisrCisrCS8vIGZvciBub3csIG1pbiBzaXplIGlmIDJ4MgorKwlpZiAoKGFyZWEtPmNsaXAu eDIgLSBhcmVhLT5jbGlwLngxIDwgMikgfCAoYXJlYS0+Y2xpcC55MiAtIGFyZWEtPmNsaXAueTEg PCAyKSkKKysJCXJldHVybiAwOworKworKwkvLyBvaywgd2Ugd2FudCB0byBzcGxpdCB0aGlzIGFy ZWEgYW5kIHN0YXJ0IHdpdGggYW55IHBhcnRpYWwgYXJlYXMKKysJLy8gdGhhdCBhcmUgbm90IG92 ZXJsYXBwaW5nICh3ZWxsLCBsZXQgdGhpcyBiZSBkZWNpZGVkIHVwb24gYXQgdGhlCisrCS8vIG5l eHQgb3V0ZXIgbG9vcCAtIHdlIGRlbGV0ZSB0aGlzIGFyZWEgc28gd2UgbmVlZCBub3QgdG8ganVn Z2xlCisrCS8vIGFyb3VuZCB0aGUgZm91ciBhcmVhcyB1bnRpbCB3ZSBmb3VuZCB0aGUgb25lIHRo YXQgaXMgYWN0dWFsbHkKKysJLy8gb3ZlcmxhcHBpbmcpCisrCWludCB4bWluLCB4bWF4LCB5bWlu LCB5bWF4LCB4Y2VudGVyLCB5Y2VudGVyOworKworKwlib29sIG5vX3hzcGxpdCA9IGZhbHNlOwor Kwlib29sIG5vX3lzcGxpdCA9IGZhbHNlOworKwlib29sIHNwbGl0X2JvdGggPSB0cnVlOworKwor Kwl4bWluID0gYXJlYS0+Y2xpcC54MTsKKysJaWYgKGludGVyc2VjdGlvbi0+eDEgPiB4bWluKQor KwkJeGNlbnRlciA9IGludGVyc2VjdGlvbi0+eDE7CisrCWVsc2UKKysJCXhjZW50ZXIgPSBpbnRl cnNlY3Rpb24tPngyOworKwl4bWF4ID0gYXJlYS0+Y2xpcC54MjsKKysKKysJeW1pbiA9IGFyZWEt PmNsaXAueTE7CisrCWlmIChpbnRlcnNlY3Rpb24tPnkxID4geW1pbikKKysJCXljZW50ZXIgPSBp bnRlcnNlY3Rpb24tPnkxOworKwllbHNlCisrCQl5Y2VudGVyID0gaW50ZXJzZWN0aW9uLT55MjsK KysJeW1heCA9IGFyZWEtPmNsaXAueTI7CisrCisrCWlmICgoeG1pbiA9PSB4Y2VudGVyKSB8ICh4 Y2VudGVyID09IHhtYXgpKXsKKysJCW5vX3hzcGxpdCA9IHRydWU7CisrCQlzcGxpdF9ib3RoID0g ZmFsc2U7CisrCX0KKysJaWYgKCh5bWluID09IHljZW50ZXIpIHwgKHljZW50ZXIgPT0geW1heCkp eworKwkJbm9feXNwbGl0ID0gdHJ1ZTsKKysJCXNwbGl0X2JvdGggPSBmYWxzZTsKKysJfQorKwor KwkvLyBjYW4gd2UgbGFuZCBoZXJlIGF0IGFsbD8/PworKwlpZiAobm9feHNwbGl0ICYmIG5vX3lz cGxpdCkKKysJCXJldHVybiAwOworKworKwkvLyB3ZSBkbyBub3Qgd2FudCB0byBvdmVyaGVsbSB0 aGUgcmVmcmVzaCB0aHJlYWQgYW5kIGxpbWl0IHVzIHRvIGEKKysJLy8gY2VydGFpbiBudW1iZXIg b2Ygc3BsaXRzLiBUaGUgcmVzdCBuZWVkcyB0byB3YWl0CisrCWlmICgqc3BsaXRfY291bnRlciA+ PSBzcGxpdF9hcmVhX2xpbWl0KQorKwkJcmV0dXJuIDA7CisrCisrCS8vIHdlIG5lZWQgZm91ciBu ZXcgcm9rY2hpcF9lYmNfYXJlYSBlbnRyaWVzIHRoYXQgd2Ugc3BsaWNlIGludG8KKysJLy8gdGhl IGxpc3QuIE5vdGUgdGhhdCB0aGUgY3VycmVudGx5IG5leHQgaXRlbSBzaGFsbCBiZSBjb3BpZWQK KysJLy8gYmFja3dhcmRzIGJlY2F1c2UgdG8gcHJldmVudCB0aGUgb3V0ZXIgbGlzdCBpdGVyYXRp b24gZnJvbQorKwkvLyBza2lwcGluZyBvdmVyIG91ciBuZXdseSBjcmVhdGVkIGl0ZW1zLgorKwor KwlzdHJ1Y3Qgcm9ja2NoaXBfZWJjX2FyZWEgKiBpdGVtMTsKKysJc3RydWN0IHJvY2tjaGlwX2Vi Y19hcmVhICogaXRlbTI7CisrCXN0cnVjdCByb2NrY2hpcF9lYmNfYXJlYSAqIGl0ZW0zOworKwlz dHJ1Y3Qgcm9ja2NoaXBfZWJjX2FyZWEgKiBpdGVtNDsKKysJaXRlbTEgPSBrbWFsbG9jKHNpemVv ZigqaXRlbTEpLCBHRlBfS0VSTkVMKTsKKysJaWYgKHNwbGl0X2JvdGggfHwgbm9feHNwbGl0KQor KwkJaXRlbTIgPSBrbWFsbG9jKHNpemVvZigqaXRlbTIpLCBHRlBfS0VSTkVMKTsKKysJaWYgKHNw bGl0X2JvdGggfHwgbm9feXNwbGl0KQorKwkJaXRlbTMgPSBrbWFsbG9jKHNpemVvZigqaXRlbTMp LCBHRlBfS0VSTkVMKTsKKysJaWYgKHNwbGl0X2JvdGgpCisrCQlpdGVtNCA9IGttYWxsb2Moc2l6 ZW9mKCppdGVtNCksIEdGUF9LRVJORUwpOworKworKwkvLyBUT0RPOiBFcnJvciBjaGVja2luZyEh ISEKKysJLyogaWYgKCFhcmVhKSAqLworKwkvKiAJcmV0dXJuIC1FTk9NRU07ICovCisrCisrCWlm IChub194c3BsaXQpCisrCQl4Y2VudGVyID0geG1heDsKKysKKysJaWYgKG5vX3lzcGxpdCkKKysJ CXljZW50ZXIgPSB5bWF4OworKworKwlpZiAobGlzdF9pc19sYXN0KCZhcmVhLT5saXN0LCBhcmVh cykpeworKwkJbGlzdF9hZGRfdGFpbCgmaXRlbTEtPmxpc3QsIGFyZWFzKTsKKysJCWlmIChzcGxp dF9ib3RoIHx8IG5vX3hzcGxpdCkKKysJCQlsaXN0X2FkZF90YWlsKCZpdGVtMi0+bGlzdCwgYXJl YXMpOworKwkJaWYgKHNwbGl0X2JvdGggfHwgbm9feXNwbGl0KQorKwkJCWxpc3RfYWRkX3RhaWwo Jml0ZW0zLT5saXN0LCBhcmVhcyk7CisrCQlpZiAoc3BsaXRfYm90aCkKKysJCQlsaXN0X2FkZF90 YWlsKCZpdGVtNC0+bGlzdCwgYXJlYXMpOworKwl9CisrCWVsc2V7CisrCQlpZiAoc3BsaXRfYm90 aCkKKysJCQlfX2xpc3RfYWRkKCZpdGVtNC0+bGlzdCwgJmFyZWEtPmxpc3QsIGFyZWEtPmxpc3Qu bmV4dCk7CisrCQlpZiAoc3BsaXRfYm90aCB8fCBub195c3BsaXQpCisrCQkJX19saXN0X2FkZCgm aXRlbTMtPmxpc3QsICZhcmVhLT5saXN0LCBhcmVhLT5saXN0Lm5leHQpOworKwkJaWYgKHNwbGl0 X2JvdGggfHwgbm9feHNwbGl0KQorKwkJCV9fbGlzdF9hZGQoJml0ZW0yLT5saXN0LCAmYXJlYS0+ bGlzdCwgYXJlYS0+bGlzdC5uZXh0KTsKKysJCV9fbGlzdF9hZGQoJml0ZW0xLT5saXN0LCAmYXJl YS0+bGlzdCwgYXJlYS0+bGlzdC5uZXh0KTsKKysJfQorKwkqcF9uZXh0X2FyZWEgPSBpdGVtMTsK KysKKysJLy8gbm93IGZpbGwgdGhlIGFyZWFzCisrCisrCS8vIGFsd2F5cworKwlpdGVtMS0+ZnJh bWVfYmVnaW4gPSBFQkNfRlJBTUVfUEVORElORzsKKysJaXRlbTEtPmNsaXAueDEgPSB4bWluOwor KwlpdGVtMS0+Y2xpcC54MiA9IHhjZW50ZXI7CisrCWl0ZW0xLT5jbGlwLnkxID0geW1pbjsKKysJ aXRlbTEtPmNsaXAueTIgPSB5Y2VudGVyOworKworKwlpZiAoc3BsaXRfYm90aCB8fCBub194c3Bs aXQpeworKwkJLy8gbm8geHNwbGl0CisrCQlpdGVtMi0+ZnJhbWVfYmVnaW4gPSBFQkNfRlJBTUVf UEVORElORzsKKysJCWl0ZW0yLT5jbGlwLngxID0geG1pbjsKKysJCWl0ZW0yLT5jbGlwLngyID0g eGNlbnRlcjsKKysJCWl0ZW0yLT5jbGlwLnkxID0geWNlbnRlcjsKKysJCWl0ZW0yLT5jbGlwLnky ID0geW1heDsKKysJfQorKworKwlpZiAoc3BsaXRfYm90aCB8fCBub195c3BsaXQpeworKwkJLy8g bm8geXNwbGl0CisrCQlpdGVtMy0+ZnJhbWVfYmVnaW4gPSBFQkNfRlJBTUVfUEVORElORzsKKysJ CWl0ZW0zLT5jbGlwLngxID0geGNlbnRlcjsKKysJCWl0ZW0zLT5jbGlwLngyID0geG1heDsKKysJ CWl0ZW0zLT5jbGlwLnkxID0geW1pbjsKKysJCWl0ZW0zLT5jbGlwLnkyID0geWNlbnRlcjsKKysJ fQorKworKwlpZiAoc3BsaXRfYm90aCl7CisrCQkvLyBib3RoIHNwbGl0cworKwkJaXRlbTQtPmZy YW1lX2JlZ2luID0gRUJDX0ZSQU1FX1BFTkRJTkc7CisrCQlpdGVtNC0+Y2xpcC54MSA9IHhjZW50 ZXI7CisrCQlpdGVtNC0+Y2xpcC54MiA9IHhtYXg7CisrCQlpdGVtNC0+Y2xpcC55MSA9IHljZW50 ZXI7CisrCQlpdGVtNC0+Y2xpcC55MiA9IHltYXg7CisrCX0KKysKKysJKCpzcGxpdF9jb3VudGVy KSsrOworKwlyZXR1cm4gMTsKKyt9CisrCisgc3RhdGljIGJvb2wgcm9ja2NoaXBfZWJjX3NjaGVk dWxlX2FyZWEoc3RydWN0IGxpc3RfaGVhZCAqYXJlYXMsCisgCQkJCSAgICAgICBzdHJ1Y3Qgcm9j a2NoaXBfZWJjX2FyZWEgKmFyZWEsCisgCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZHJt LAorIAkJCQkgICAgICAgdTMyIGN1cnJlbnRfZnJhbWUsIHUzMiBudW1fcGhhc2VzLAorLQkJCQkg ICAgICAgc3RydWN0IHJvY2tjaGlwX2ViY19hcmVhICpuZXh0X2FyZWEsCisrCQkJCSAgICAgICBz dHJ1Y3Qgcm9ja2NoaXBfZWJjX2FyZWEgKipwX25leHRfYXJlYSwKKyAJCQkJCSAgIGludCAqIHNw bGl0X2NvdW50ZXIKKyAJCQkJCSAgICkKKyB7CitAQCAtNDYwLDEwOSArNjA2LDEzIEBAIHN0YXRp YyBib29sIHJvY2tjaGlwX2ViY19zY2hlZHVsZV9hcmVhKHN0cnVjdCBsaXN0X2hlYWQgKmFyZWFz LAorIAkJCWlmIChkcm1fcmVjdF9lcXVhbHMoJmFyZWEtPmNsaXAsICZpbnRlcnNlY3Rpb24pKQor IAkJCQljb250aW51ZTsKKyAKKy0JCQkvLyBmb3Igbm93LCBtaW4gc2l6ZSBpZiAyeDIKKy0JCQlp ZiAoKGFyZWEtPmNsaXAueDIgLSBhcmVhLT5jbGlwLngxIDwgMikgfCAoYXJlYS0+Y2xpcC55MiAt IGFyZWEtPmNsaXAueTEgPCAyKSkKKy0JCQkJY29udGludWU7CistCistCQkJLy8gb2ssIHdlIHdh bnQgdG8gc3BsaXQgdGhpcyBhcmVhIGFuZCBzdGFydCB3aXRoIGFueSBwYXJ0aWFsIGFyZWFzCist CQkJLy8gdGhhdCBhcmUgbm90IG92ZXJsYXBwaW5nICh3ZWxsLCBsZXQgdGhpcyBiZSBkZWNpZGVk IHVwb24gYXQgdGhlCistCQkJLy8gbmV4dCBvdXRlciBsb29wIC0gd2UgZGVsZXRlIHRoaXMgYXJl YSBzbyB3ZSBuZWVkIG5vdCB0byBqdWdnbGUKKy0JCQkvLyBhcm91bmQgdGhlIGZvdXIgYXJlYXMg dW50aWwgd2UgZm91bmQgdGhlIG9uZSB0aGF0IGlzIGFjdHVhbGx5CistCQkJLy8gb3ZlcmxhcHBp bmcpCistCQkJaW50IHhtaW4sIHhtYXgsIHltaW4sIHltYXgsIHhjZW50ZXIsIHljZW50ZXI7Cist CQkJeG1pbiA9IGFyZWEtPmNsaXAueDE7CistCQkJaWYgKGludGVyc2VjdGlvbi54MSA+IHhtaW4p CistCQkJCXhjZW50ZXIgPSBpbnRlcnNlY3Rpb24ueDE7CistCQkJZWxzZQorLQkJCQl4Y2VudGVy ID0gaW50ZXJzZWN0aW9uLngyOworLQkJCXhtYXggPSBhcmVhLT5jbGlwLngyOworLQorLQkJCXlt aW4gPSBhcmVhLT5jbGlwLnkxOworLQkJCWlmIChpbnRlcnNlY3Rpb24ueTEgPiB5bWluKQorLQkJ CQl5Y2VudGVyID0gaW50ZXJzZWN0aW9uLnkxOworLQkJCWVsc2UKKy0JCQkJeWNlbnRlciA9IGlu dGVyc2VjdGlvbi55MjsKKy0JCQl5bWF4ID0gYXJlYS0+Y2xpcC55MjsKKy0KKy0JCQlpZiAoKHht aW4gPT0geGNlbnRlcikgfCAoeGNlbnRlciA9PSB4bWF4KSkKKy0JCQkJY29udGludWU7CistCQkJ aWYgKCh5bWluID09IHljZW50ZXIpIHwgKHljZW50ZXIgPT0geW1heCkpCistCQkJCWNvbnRpbnVl OworLQorLQkJCS8vIHdlIGRvIG5vdCB3YW50IHRvIG92ZXJoZWxtIHRoZSByZWZyZXNoIHRocmVh ZCBhbmQgbGltaXQgdXMgdG8gYQorLQkJCS8vIGNlcnRhaW4gbnVtYmVyIG9mIHNwbGl0cy4gVGhl IHJlc3QgbmVlZHMgdG8gd2FpdAorLQkJCWlmICgqc3BsaXRfY291bnRlciA+PSBzcGxpdF9hcmVh X2xpbWl0KQorKwkJCWlmICh0cnlfdG9fc3BsaXRfYXJlYShhcmVhcywgYXJlYSwgb3RoZXIsIHNw bGl0X2NvdW50ZXIsIHBfbmV4dF9hcmVhLCAmaW50ZXJzZWN0aW9uKSkKKysJCQl7CisrCQkJCS8v IGxldCB0aGUgb3V0ZXIgbG9vcCBkZWxldGUgdGhpcyBhcmVhCisrCQkJCXJldHVybiBmYWxzZTsK KysJCQl9IGVsc2UgeworIAkJCQljb250aW51ZTsKKy0KKy0JCQkvLyB3ZSBuZWVkIGZvdXIgbmV3 IHJva2NoaXBfZWJjX2FyZWEgZW50cmllcyB0aGF0IHdlIHNwbGljZSBpbnRvCistCQkJLy8gdGhl IGxpc3QuIE5vdGUgdGhhdCB0aGUgY3VycmVudGx5IG5leHQgaXRlbSBzaGFsbCBiZSBjb3BpZWQK Ky0JCQkvLyBiYWNrd2FyZHMgYmVjYXVzZSB0byBwcmV2ZW50IHRoZSBvdXRlciBsaXN0IGl0ZXJh dGlvbiBmcm9tCistCQkJLy8gc2tpcHBpbmcgb3ZlciBvdXIgbmV3bHkgY3JlYXRlZCBpdGVtcy4K Ky0KKy0JCQlzdHJ1Y3Qgcm9ja2NoaXBfZWJjX2FyZWEgKiBpdGVtMTsKKy0JCQlzdHJ1Y3Qgcm9j a2NoaXBfZWJjX2FyZWEgKiBpdGVtMjsKKy0JCQlzdHJ1Y3Qgcm9ja2NoaXBfZWJjX2FyZWEgKiBp dGVtMzsKKy0JCQlzdHJ1Y3Qgcm9ja2NoaXBfZWJjX2FyZWEgKiBpdGVtNDsKKy0JCQlpdGVtMSA9 IGttYWxsb2Moc2l6ZW9mKCppdGVtMSksIEdGUF9LRVJORUwpOworLQkJCWl0ZW0yID0ga21hbGxv YyhzaXplb2YoKml0ZW0yKSwgR0ZQX0tFUk5FTCk7CistCQkJaXRlbTMgPSBrbWFsbG9jKHNpemVv ZigqaXRlbTMpLCBHRlBfS0VSTkVMKTsKKy0JCQlpdGVtNCA9IGttYWxsb2Moc2l6ZW9mKCppdGVt NCksIEdGUF9LRVJORUwpOworLQorLQkJCS8vIFRPRE86IEVycm9yIGNoZWNraW5nISEhIQorLQkJ CS8qIGlmICghYXJlYSkgKi8KKy0JCQkvKiAJcmV0dXJuIC1FTk9NRU07ICovCistCistCQkJaWYg KGxpc3RfaXNfbGFzdCgmYXJlYS0+bGlzdCwgYXJlYXMpKXsKKy0JCQkJLyogcHJpbnRrKEtFUk5f SU5GTyAiYWRkaW5nIHRvIGVuZCBvZiBsaXN0XG4iKTsgKi8KKy0JCQkJbGlzdF9hZGRfdGFpbCgm aXRlbTEtPmxpc3QsIGFyZWFzKTsKKy0JCQkJbGlzdF9hZGRfdGFpbCgmaXRlbTItPmxpc3QsIGFy ZWFzKTsKKy0JCQkJbGlzdF9hZGRfdGFpbCgmaXRlbTMtPmxpc3QsIGFyZWFzKTsKKy0JCQkJbGlz dF9hZGRfdGFpbCgmaXRlbTQtPmxpc3QsIGFyZWFzKTsKKy0JCQl9CistCQkJZWxzZXsKKy0JCQkJ LyogcHJpbnRrKEtFUk5fSU5GTyAic3BsaWNpbmcgaW50byB0aGUgbWlkZGxlIG9mIHRoZSBsaXN0 XG4iKTsgKi8KKy0JCQkJX19saXN0X2FkZCgmaXRlbTQtPmxpc3QsIGFyZWFzLCBhcmVhcy0+bmV4 dCk7CistCQkJCV9fbGlzdF9hZGQoJml0ZW0zLT5saXN0LCBhcmVhcywgYXJlYXMtPm5leHQpOwor LQkJCQlfX2xpc3RfYWRkKCZpdGVtMi0+bGlzdCwgYXJlYXMsIGFyZWFzLT5uZXh0KTsKKy0JCQkJ X19saXN0X2FkZCgmaXRlbTEtPmxpc3QsIGFyZWFzLCBhcmVhcy0+bmV4dCk7CisgCQkJfQorLQkJ CW5leHRfYXJlYSA9IGl0ZW0xOworLQorLQkJCS8vIG5vdyBmaWxsIHRoZSBhcmVhcworLQkJCS8q IHByaW50ayhLRVJOX0lORk8gImFyZWExOiAlaSAlaSAlaSAlaVxuIiwgeG1pbiwgeGNlbnRlciwg eW1pbiwgeWNlbnRlcik7ICovCistCQkJLyogcHJpbnRrKEtFUk5fSU5GTyAiYXJlYTI6ICVpICVp ICVpICVpXG4iLCB4bWluLCB4Y2VudGVyLCB5Y2VudGVyLCB5bWF4KTsgKi8KKy0JCQkvKiBwcmlu dGsoS0VSTl9JTkZPICJhcmVhMzogJWkgJWkgJWkgJWlcbiIsIHhjZW50ZXIsIHhtYXgsIHltaW4s IHljZW50ZXIpOyAqLworLQkJCS8qIHByaW50ayhLRVJOX0lORk8gImFyZWE0OiAlaSAlaSAlaSAl aVxuIiwgeGNlbnRlciwgeG1heCwgeWNlbnRlciwgeW1heCk7ICovCistCistCQkJaXRlbTEtPmZy YW1lX2JlZ2luID0gRUJDX0ZSQU1FX1BFTkRJTkc7CistCQkJaXRlbTEtPmNsaXAueDEgPSB4bWlu OworLQkJCWl0ZW0xLT5jbGlwLngyID0geGNlbnRlcjsKKy0JCQlpdGVtMS0+Y2xpcC55MSA9IHlt aW47CistCQkJaXRlbTEtPmNsaXAueTIgPSB5Y2VudGVyOworLQorLQkJCWl0ZW0yLT5mcmFtZV9i ZWdpbiA9IEVCQ19GUkFNRV9QRU5ESU5HOworLQkJCWl0ZW0yLT5jbGlwLngxID0geG1pbjsKKy0J CQlpdGVtMi0+Y2xpcC54MiA9IHhjZW50ZXI7CistCQkJaXRlbTItPmNsaXAueTEgPSB5Y2VudGVy OworLQkJCWl0ZW0yLT5jbGlwLnkyID0geW1heDsKKy0KKy0JCQlpdGVtMy0+ZnJhbWVfYmVnaW4g PSBFQkNfRlJBTUVfUEVORElORzsKKy0JCQlpdGVtMy0+Y2xpcC54MSA9IHhjZW50ZXI7CistCQkJ aXRlbTMtPmNsaXAueDIgPSB4bWF4OworLQkJCWl0ZW0zLT5jbGlwLnkxID0geW1pbjsKKy0JCQlp dGVtMy0+Y2xpcC55MiA9IHljZW50ZXI7CistCistCQkJaXRlbTQtPmZyYW1lX2JlZ2luID0gRUJD X0ZSQU1FX1BFTkRJTkc7CistCQkJaXRlbTQtPmNsaXAueDEgPSB4Y2VudGVyOworLQkJCWl0ZW00 LT5jbGlwLngyID0geG1heDsKKy0JCQlpdGVtNC0+Y2xpcC55MSA9IHljZW50ZXI7CistCQkJaXRl bTQtPmNsaXAueTIgPSB5bWF4OworLQorLQkJCSgqc3BsaXRfY291bnRlcikrKzsKKy0KKy0JCQkv LyBsZXQgdGhlIG91dGVyIGxvb3AgZGVsZXRlIHRoaXMgYXJlYQorLQkJCXJldHVybiBmYWxzZTsK Ky0JCQkvKiBjb250aW51ZTsgKi8KKyAJCX0KKyAKKyAJCS8qCitAQCAtNTc4LDYgKzYyOCwxNSBA QCBzdGF0aWMgYm9vbCByb2NrY2hpcF9lYmNfc2NoZWR1bGVfYXJlYShzdHJ1Y3QgbGlzdF9oZWFk ICphcmVhcywKKyAJCS8qIE90aGVyd2lzZSwgdGhlIGVhcmxpZXN0IHN0YXJ0IGlzIHRoZSBzYW1l IHRpbWUgYXMgdGhhdCBvZiB0aGUgb3RoZXIKKyAJCSAqIGFyZWEuICovCisgCQlmcmFtZV9iZWdp biA9IG1heChmcmFtZV9iZWdpbiwgb3RoZXItPmZyYW1lX2JlZ2luKTsKKysKKysJCS8vIHRyeSB0 byBzcGxpdCwgb3RoZXJ3aXNlIGNvbnRpbnVlCisrCQlpZiAodHJ5X3RvX3NwbGl0X2FyZWEoYXJl YXMsIGFyZWEsIG90aGVyLCBzcGxpdF9jb3VudGVyLCBwX25leHRfYXJlYSwgJmludGVyc2VjdGlv bikpCisrCQl7CisrCQkJLy8gbGV0IHRoZSBvdXRlciBsb29wIGRlbGV0ZSB0aGlzIGFyZWEKKysJ CQlyZXR1cm4gZmFsc2U7CisrCQl9IGVsc2UgeworKwkJCWNvbnRpbnVlOworKwkJfQorIAl9Cisg CisgCWFyZWEtPmZyYW1lX2JlZ2luID0gZnJhbWVfYmVnaW47CitAQCAtNzU0LDcgKzgxMyw3IEBA IHN0YXRpYyB2b2lkIHJvY2tjaGlwX2ViY19wYXJ0aWFsX3JlZnJlc2goc3RydWN0IHJvY2tjaGlw X2ViYyAqZWJjLAorIAkJCSAqLworIAkJCWlmIChhcmVhLT5mcmFtZV9iZWdpbiA9PSBFQkNfRlJB TUVfUEVORElORyAmJgorIAkJCSAgICAhcm9ja2NoaXBfZWJjX3NjaGVkdWxlX2FyZWEoJmFyZWFz LCBhcmVhLCBkcm0sIGZyYW1lLAorLQkJCQkJCQllYmMtPmx1dC5udW1fcGhhc2VzLCBuZXh0X2Fy ZWEsICZzcGxpdF9jb3VudGVyKSkgeworKwkJCQkJCQllYmMtPmx1dC5udW1fcGhhc2VzLCAmbmV4 dF9hcmVhLCAmc3BsaXRfY291bnRlcikpIHsKKyAJCQkJbGlzdF9kZWwoJmFyZWEtPmxpc3QpOwor IAkJCQlrZnJlZShhcmVhKTsKKyAJCQkJY29udGludWU7CistLSAKKzIuMzAuMgorCisKK0Zyb20g NDkxMzg4YTJmNTM4ZWY5N2M5Njk5YzcyM2IzYjU3NDA3MmIwZmQ4NSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IE1heGltaWxpYW4gV2VpZ2FuZCA8bXdlaWdhbmRAbXdlaWdhbmQubmV0 PgorRGF0ZTogRnJpLCAxNyBKdW4gMjAyMiAxMToxMDoyNCArMDIwMAorU3ViamVjdDogW1BBVENI IDI0LzM3XSBbcm9ja2NoaXBfZWJjXSByZW1vdmUgY29tbWVudAorCistLS0KKyBkcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgfCAxIC0KKyAxIGZpbGUgY2hhbmdlZCwgMSBk ZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2ViYy5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCitpbmRl eCA1MmJmNWQxMWVjNTcuLjVkNDJiNDVhYmI1YiAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX2ViYy5jCitAQCAtNTkxLDcgKzU5MSw2IEBAIHN0YXRpYyBib29sIHJvY2tjaGlw X2ViY19zY2hlZHVsZV9hcmVhKHN0cnVjdCBsaXN0X2hlYWQgKmFyZWFzLAorIAkJaW50ZXJzZWN0 aW9uID0gYXJlYS0+Y2xpcDsKKyAJCWlmICghZHJtX3JlY3RfaW50ZXJzZWN0KCZpbnRlcnNlY3Rp b24sICZvdGhlci0+Y2xpcCkpCisgCQkJY29udGludWU7CistCQkvLyB3ZSBnb3QgaGVyZSwgc28g dGhlcmUgaXMgYSBjb2xsaXNpb24KKyAKKyAJCS8qIElmIHRoZSBvdGhlciBhcmVhIGFscmVhZHkg c3RhcnRlZCwgd2FpdCB1bnRpbCBpdCBmaW5pc2hlcy4gKi8KKyAJCWlmIChvdGhlci0+ZnJhbWVf YmVnaW4gPCBjdXJyZW50X2ZyYW1lKSB7CistLSAKKzIuMzAuMgorCisKK0Zyb20gNWExNzdlZDNm NTgxM2QzMWI4ZDJhZWRhNDY4NjZhMDY3ZjI5NmZkZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IE1heGltaWxpYW4gV2VpZ2FuZCA8bXdlaWdhbmRAbXdlaWdhbmQubmV0PgorRGF0ZTog RnJpLCAxNyBKdW4gMjAyMiAxMToyNjoxMyArMDIwMAorU3ViamVjdDogW1BBVENIIDI1LzM3XSBb cm9ja2NoaXBfZWJjXSBmaXggYW5vdGhlciBzY2hlZHVsaW5nIGJ1Zzogb25seQorIGluY3JlYXNl LCBidXQgbmV2ZXIgZHJlY3JlYXNlIHRoZSBmcmFtZV9iZWdpbiBudW1iZXIKKworLS0tCisgZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jIHwgMiArLQorIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL3JvY2tjaGlwX2ViYy5jCitpbmRleCA1ZDQyYjQ1YWJiNWIuLjdmNWZlNzI1MmFjNCAxMDA2 NDQKKy0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworKysrIGIv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCitAQCAtNTk0LDcgKzU5NCw3 IEBAIHN0YXRpYyBib29sIHJvY2tjaGlwX2ViY19zY2hlZHVsZV9hcmVhKHN0cnVjdCBsaXN0X2hl YWQgKmFyZWFzLAorIAorIAkJLyogSWYgdGhlIG90aGVyIGFyZWEgYWxyZWFkeSBzdGFydGVkLCB3 YWl0IHVudGlsIGl0IGZpbmlzaGVzLiAqLworIAkJaWYgKG90aGVyLT5mcmFtZV9iZWdpbiA8IGN1 cnJlbnRfZnJhbWUpIHsKKy0JCQlmcmFtZV9iZWdpbiA9IG90aGVyX2VuZDsKKysJCQlmcmFtZV9i ZWdpbiA9IG1heChmcmFtZV9iZWdpbiwgb3RoZXJfZW5kKTsKKyAKKyAJCQkvLyBzbyBoZXJlIHdl IHdvdWxkIG9wdGltYWxseSB3YW50IHRvIHNwbGl0IHRoZSBuZXcgYXJlYSBpbnRvIHRocmVlCisg CQkJLy8gcGFydHMgdGhhdCBkbyBub3Qgb3ZlcmxhcCB3aXRoIHRoZSBhbHJlYWR5LXN0YXJ0ZWQg YXJlYSwgYW5kIG9uZQorLS0gCisyLjMwLjIKKworCitGcm9tIDM1ZjhmNjQ3YTNmN2JkNjhjZDk2 YWJlZTQxYzQ0MmFiZGVkN2MyYjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXhp bWlsaWFuIFdlaWdhbmQgPG13ZWlnYW5kQG13ZWlnYW5kLm5ldD4KK0RhdGU6IEZyaSwgMTcgSnVu IDIwMjIgMTE6MjY6MzIgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAyNi8zN10gW3JvY2tjaGlwX2Vi Y10gcmV3b3JrIGNvbW1lbnQKKworLS0tCisgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2ViYy5jIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2Nr Y2hpcF9lYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworaW5k ZXggN2Y1ZmU3MjUyYWM0Li45NzRlOWQyM2M2NDggMTAwNjQ0CistLS0gYS9kcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKKysrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9yb2NrY2hpcF9lYmMuYworQEAgLTYyNCw4ICs2MjQsOCBAQCBzdGF0aWMgYm9vbCByb2NrY2hp cF9lYmNfc2NoZWR1bGVfYXJlYShzdHJ1Y3QgbGlzdF9oZWFkICphcmVhcywKKyAJCQlyZXR1cm4g ZmFsc2U7CisgCQl9CisgCistCQkvKiBPdGhlcndpc2UsIHRoZSBlYXJsaWVzdCBzdGFydCBpcyB0 aGUgc2FtZSB0aW1lIGFzIHRoYXQgb2YgdGhlIG90aGVyCistCQkgKiBhcmVhLiAqLworKwkJLyog VGhleSBkbyBvdmVybGFwIGJ1dCBhcmUgYXJlIG5vdCBlcXVhbCBhbmQgYm90aCBub3Qgc3RhcnRl ZCB5ZXQsIHNvCisrCQkgKiB0aGV5IGNhbiBwb3RlbnRpYWxseSBzdGFydCB0b2dldGhlciAqLwor IAkJZnJhbWVfYmVnaW4gPSBtYXgoZnJhbWVfYmVnaW4sIG90aGVyLT5mcmFtZV9iZWdpbik7Cisg CisgCQkvLyB0cnkgdG8gc3BsaXQsIG90aGVyd2lzZSBjb250aW51ZQorLS0gCisyLjMwLjIKKwor CitGcm9tIGQ0ZTc4YzBlOTJiZWM3OWJhY2Q2ZTczZDRkZjVhNjYzZWIxYzJjYzQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXhpbWlsaWFuIFdlaWdhbmQgPG13ZWlnYW5kQG13ZWln YW5kLm5ldD4KK0RhdGU6IEZyaSwgMTcgSnVuIDIwMjIgMTE6Mjc6MzggKzAyMDAKK1N1YmplY3Q6 IFtQQVRDSCAyNy8zN10gW3JvY2tjaGlwX2ViY10gZXZlbiBpZiBpdHMgbm90IHJlYWxseSBjbGVh ciBpZiBpdCBpcworIHJlcXVpcmVkLCBhbHNvIHN5bmMgdGhlIG5leHQtYnVmZmVyIHRvIHRoZSBj cHUgYmVmb3JlIHVzaW5nIGl0CisKKy0tLQorIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2Nr Y2hpcF9lYmMuYyB8IDIgKysKKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCisKK2Rp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKK2luZGV4IDk3NGU5ZDIzYzY0OC4u OTcxNzNhZWVkNTNjIDEwMDY0NAorLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2ViYy5jCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMK K0BAIC04NjYsMTAgKzg2NiwxMiBAQCBzdGF0aWMgdm9pZCByb2NrY2hpcF9lYmNfcGFydGlhbF9y ZWZyZXNoKHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywKKyAJCQkgKi8KKyAJCQlpZiAoZnJhbWVf ZGVsdGEgPiBsYXN0X3BoYXNlKSB7CisgCQkJCWRtYV9zeW5jX3NpbmdsZV9mb3JfY3B1KGRldiwg cHJldl9oYW5kbGUsIGdyYXk0X3NpemUsIERNQV9UT19ERVZJQ0UpOworKwkJCQlkbWFfc3luY19z aW5nbGVfZm9yX2NwdShkZXYsIG5leHRfaGFuZGxlLCBncmF5NF9zaXplLCBETUFfVE9fREVWSUNF KTsKKyAJCQkJcm9ja2NoaXBfZWJjX2JsaXRfcGl4ZWxzKGN0eCwgY3R4LT5wcmV2LAorIAkJCQkJ CQkgY3R4LT5uZXh0LAorIAkJCQkJCQkgJmFyZWEtPmNsaXApOworIAkJCQlzeW5jX3ByZXYgPSB0 cnVlOworKwkJCQlzeW5jX3ByZXYgPSB0cnVlOworIAorIAkJCQlkcm1fZGJnKGRybSwgImFyZWEg JXAgKCIgRFJNX1JFQ1RfRk1UICIpIGZpbmlzaGVkIG9uICV1XG4iLAorIAkJCQkJYXJlYSwgRFJN X1JFQ1RfQVJHKCZhcmVhLT5jbGlwKSwgZnJhbWUpOworLS0gCisyLjMwLjIKKworCitGcm9tIGVj YmY5YTkzZmM4OWZhODEyOWJkZDZlZjBkYjRlMzk5ODhkNjVkM2QgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBNYXhpbWlsaWFuIFdlaWdhbmQgPG13ZWlnYW5kQG13ZWlnYW5kLm5ldD4K K0RhdGU6IEZyaSwgMTcgSnVuIDIwMjIgMTI6NDE6MTUgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAy OC8zN10gW3JvY2tjaGlwX2ViY10gZW5hYmxlIGRyYXdpbmcgb2YgY2xpcHMgbm90IGFsaWduZWQg dG8KKyBmdWxsIGJ5dGVzIChpLmUuIGV2ZW4gc3RhcnQvZW5kIGNvb3JkaW5hdGVzKS4KKworTmVl ZHMgbW9yZSB0ZXN0aW5nLgorLS0tCisgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlw X2ViYy5jIHwgNjIgKysrKysrKysrKysrKysrKy0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0 MSBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9yb2NrY2hpcF9lYmMuYworaW5kZXggOTcxNzNhZWVkNTNjLi40YmFlZmM4YjU0OTYgMTAwNjQ0 CistLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKKysrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworQEAgLTE0MTgsNyArMTQxOCwx MCBAQCBzdGF0aWMgYm9vbCByb2NrY2hpcF9lYmNfYmxpdF9mYihjb25zdCBzdHJ1Y3Qgcm9ja2No aXBfZWJjX2N0eCAqY3R4LAorIAkJCQkgY29uc3Qgc3RydWN0IGRybV9yZWN0ICpkc3RfY2xpcCwK KyAJCQkJIGNvbnN0IHZvaWQgKnZhZGRyLAorIAkJCQkgY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIsCistCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKnNyY19jbGlwKQorKwkJCQkg Y29uc3Qgc3RydWN0IGRybV9yZWN0ICpzcmNfY2xpcCwKKysJCQkJIGludCBhZGp1c3RfeDEsCisr CQkJCSBpbnQgYWRqdXN0X3gyCisrCQkJCSApCisgeworIAl1bnNpZ25lZCBpbnQgZHN0X3BpdGNo ID0gY3R4LT5ncmF5NF9waXRjaDsKKyAJdW5zaWduZWQgaW50IHNyY19waXRjaCA9IGZiLT5waXRj aGVzWzBdOworQEAgLTE0MjgsMTMgKzE0MzEsOSBAQCBzdGF0aWMgYm9vbCByb2NrY2hpcF9lYmNf YmxpdF9mYihjb25zdCBzdHJ1Y3Qgcm9ja2NoaXBfZWJjX2N0eCAqY3R4LAorIAlpbnQgZGVsdGFf eDsKKyAJdm9pZCAqZHN0OworIAorLQlib29sIHN0YXJ0X3hfaXNfb2RkID0gc3JjX2NsaXAtPngx ICYgMTsKKy0JYm9vbCBlbmRfeF9pc19vZGQgPSBzcmNfY2xpcC0+eDIgJiAxOworLQorIAlkZWx0 YV94ID0gcGFuZWxfcmVmbGVjdGlvbiA/IC0xIDogMTsKKyAJc3RhcnRfeCA9IHBhbmVsX3JlZmxl Y3Rpb24gPyBzcmNfY2xpcC0+eDIgLSAxIDogc3JjX2NsaXAtPngxOworIAorLQkvLyBJIHRoaW5r IHRoaXMgYWxzbyB3b3JrcyBpZiBkc3RfY2xpcC0+eDEgaXMgb2RkCisgCWRzdCA9IGN0eC0+Zmlu YWwgKyBkc3RfY2xpcC0+eTEgKiBkc3RfcGl0Y2ggKyBkc3RfY2xpcC0+eDEgLyAyOworIAlzcmMg PSB2YWRkciArIHNyY19jbGlwLT55MSAqIHNyY19waXRjaCArIHN0YXJ0X3ggKiBmYi0+Zm9ybWF0 LT5jcHBbMF07CisgCitAQCAtMTQ0NSw2ICsxNDQ0LDcgQEAgc3RhdGljIGJvb2wgcm9ja2NoaXBf ZWJjX2JsaXRfZmIoY29uc3Qgc3RydWN0IHJvY2tjaGlwX2ViY19jdHggKmN0eCwKKyAJCWZvciAo eCA9IHNyY19jbGlwLT54MTsgeCA8IHNyY19jbGlwLT54MjsgeCArPSAyKSB7CisgCQkJdTMyIHJn YjAsIHJnYjE7CisgCQkJdTggZ3JheTsKKysJCQl1OCB0bXBfcGl4ZWw7CisgCisgCQkJcmdiMCA9 ICpzYnVmOyBzYnVmICs9IGRlbHRhX3g7CisgCQkJcmdiMSA9ICpzYnVmOyBzYnVmICs9IGRlbHRh X3g7CitAQCAtMTQ1OSwxMyArMTQ1OSwyMSBAQCBzdGF0aWMgYm9vbCByb2NrY2hpcF9lYmNfYmxp dF9mYihjb25zdCBzdHJ1Y3Qgcm9ja2NoaXBfZWJjX2N0eCAqY3R4LAorIAkJCXJnYjAgPj49IDI4 OworIAkJCXJnYjEgPj49IDI4OworIAorLQkJCWlmICh4ID09IHNyY19jbGlwLT54MSAmJiBzdGFy dF94X2lzX29kZCkgeworKwkJCS8vIERvZXMgdGhpcyBhY2NvdW50IGZvciBwYW5lbCByZWZsZWN0 aW9uPworKwkJCWlmICh4ID09IHNyY19jbGlwLT54MSAmJiAoYWRqdXN0X3gxID09IDEpKSB7Cisg CQkJCS8vIHJnYjAgc2hvdWxkIGJlIGZpbGxlZCB3aXRoIHRoZSBjb250ZW50IG9mIHRoZSBzcmMg cGl4ZWwgaGVyZQorLQkJCQlyZ2IwID0gKmRidWY7CisrCQkJCS8vIGtlZXAgbG93ZXIgNCBiaXRz CisrCQkJCS8vIEknbSBub3Qgc3VyZSBob3cgdG8gZGlyZWN0bHkgcmVhZCBvbmx5IG9uZSBieXRl IGZyb20gdGhlIHUzMgorKwkJCQkvLyBwb2ludGVyIGRidWYgLi4uCisrCQkJCXRtcF9waXhlbCA9 ICpkYnVmICYgMGIwMDAwMTExMTsKKysJCQkJcmdiMCA9IHRtcF9waXhlbDsKKyAJCQl9CistCQkJ aWYgKHggPT0gc3JjX2NsaXAtPngyICYmIGVuZF94X2lzX29kZCkgeworLQkJCQkvLyByZ2IxIHNo b3VsZCBiZSBmaWxsZWQgd2l0aCB0aGUgY29udGVudCBvZiB0aGUgc3JjIHBpeGVsIGhlcmUKKy0J CQkJcmdiMSA9ICpkYnVmOworKwkJCWlmICh4ID09IHNyY19jbGlwLT54MiAmJiAoYWRqdXN0X3gy ID09IDEpKSB7CisrCQkJCS8vIHJnYjEgc2hvdWxkIGJlIGZpbGxlZCB3aXRoIHRoZSBjb250ZW50 IG9mIHRoZSBkc3QgcGl4ZWwgd2UKKysJCQkJLy8gd2FudCB0byBrZWVwIGhlcmUKKysJCQkJLy8g a2VlcCA0IGhpZ2hlciBiaXRzCisrCQkJCXRtcF9waXhlbCA9ICpkYnVmICYgMGIxMTExMDAwMDsK KysJCQkJcmdiMSA9IHRtcF9waXhlbDsKKyAJCQl9CisgCisgCQkJZ3JheSA9IHJnYjAgfCByZ2Ix IDw8IDQ7CitAQCAtMTUxMSw3ICsxNTE5LDkgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJjX3Bs YW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisgCWxpc3RfZm9yX2Vh Y2hfZW50cnlfc2FmZShhcmVhLCBuZXh0X2FyZWEsICZlYmNfcGxhbmVfc3RhdGUtPmFyZWFzLCBs aXN0KSB7CisgCQlzdHJ1Y3QgZHJtX3JlY3QgKmRzdF9jbGlwID0gJmFyZWEtPmNsaXA7CisgCQlz dHJ1Y3QgZHJtX3JlY3Qgc3JjX2NsaXAgPSBhcmVhLT5jbGlwOworLQkJaW50IGFkanVzdDsKKysJ CWludCBhZGp1c3RfeDE7CisrCQlpbnQgYWRqdXN0X3gyOworKwkJYm9vbCBjbGlwX2NoYW5nZWRf ZmI7CisgCisgCQkvKiBDb252ZXJ0IGZyb20gcGxhbmUgY29vcmRpbmF0ZXMgdG8gQ1JUQyBjb29y ZGluYXRlcy4gKi8KKyAJCWRybV9yZWN0X3RyYW5zbGF0ZShkc3RfY2xpcCwgdHJhbnNsYXRlX3gs IHRyYW5zbGF0ZV95KTsKK0BAIC0xNTE5LDE4ICsxNTI5LDIwIEBAIHN0YXRpYyB2b2lkIHJvY2tj aGlwX2ViY19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorIAkJ LyogQWRqdXN0IHRoZSBjbGlwcyB0byBhbHdheXMgcHJvY2VzcyBmdWxsIGJ5dGVzICgyIHBpeGVs cykuICovCisgCQkvKiBOT1RFOiBpbiBkaXJlY3QgbW9kZSwgdGhlIG1pbmltdW0gYmxvY2sgc2l6 ZSBpcyA0IHBpeGVscy4gKi8KKyAJCWlmIChkaXJlY3RfbW9kZSkKKy0JCQlhZGp1c3QgPSBkc3Rf Y2xpcC0+eDEgJiAzOworKwkJCWFkanVzdF94MSA9IGRzdF9jbGlwLT54MSAmIDM7CisgCQllbHNl CistCQkJYWRqdXN0ID0gZHN0X2NsaXAtPngxICYgMTsKKy0JCWRzdF9jbGlwLT54MSAtPSBhZGp1 c3Q7CistCQlzcmNfY2xpcC54MSAgLT0gYWRqdXN0OworKwkJCWFkanVzdF94MSA9IGRzdF9jbGlw LT54MSAmIDE7CisrCisrCQlkc3RfY2xpcC0+eDEgLT0gYWRqdXN0X3gxOworKwkJc3JjX2NsaXAu eDEgIC09IGFkanVzdF94MTsKKyAKKyAJCWlmIChkaXJlY3RfbW9kZSkKKy0JCQlhZGp1c3QgPSAo KGRzdF9jbGlwLT54MiArIDMpIF4gMykgJiAzOworKwkJCWFkanVzdF94MiA9ICgoZHN0X2NsaXAt PngyICsgMykgXiAzKSAmIDM7CisgCQllbHNlCistCQkJYWRqdXN0ID0gZHN0X2NsaXAtPngyICYg MTsKKy0JCWRzdF9jbGlwLT54MiArPSBhZGp1c3Q7CistCQlzcmNfY2xpcC54MiAgKz0gYWRqdXN0 OworKwkJCWFkanVzdF94MiA9IGRzdF9jbGlwLT54MiAmIDE7CisrCisrCQlkc3RfY2xpcC0+eDIg Kz0gYWRqdXN0X3gyOworKwkJc3JjX2NsaXAueDIgICs9IGFkanVzdF94MjsKKyAKKyAJCWlmIChw YW5lbF9yZWZsZWN0aW9uKSB7CisgCQkJaW50IHgxID0gZHN0X2NsaXAtPngxLCB4MiA9IGRzdF9j bGlwLT54MjsKK0BAIC0xNTM5LDggKzE1NTEsMTYgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJj X3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisgCQkJZHN0X2Ns aXAtPngyID0gcGxhbmVfc3RhdGUtPmRzdC54MiAtIHgxOworIAkJfQorIAorLQkJaWYgKCFyb2Nr Y2hpcF9lYmNfYmxpdF9mYihjdHgsIGRzdF9jbGlwLCB2YWRkciwKKy0JCQkJCSAgcGxhbmVfc3Rh dGUtPmZiLCAmc3JjX2NsaXApKSB7CisrCQljbGlwX2NoYW5nZWRfZmIgPSByb2NrY2hpcF9lYmNf YmxpdF9mYihjdHgsIGRzdF9jbGlwLCB2YWRkciwKKysJCQkJCSAgcGxhbmVfc3RhdGUtPmZiLCAm c3JjX2NsaXAsIGFkanVzdF94MSwgYWRqdXN0X3gyKTsKKysKKysJCS8vIHJldmVyc2UgY29vcmRp bmF0ZXMKKysJCWRzdF9jbGlwLT54MSArPSBhZGp1c3RfeDE7CisrCQlzcmNfY2xpcC54MSAgKz0g YWRqdXN0X3gxOworKwkJZHN0X2NsaXAtPngyIC09IGFkanVzdF94MjsKKysJCXNyY19jbGlwLngy ICAtPSBhZGp1c3RfeDI7CisrCisrCQlpZiAoIWNsaXBfY2hhbmdlZF9mYikgeworIAkJCWRybV9k YmcocGxhbmUtPmRldiwgImFyZWEgJXAgKCIgRFJNX1JFQ1RfRk1UICIpIDw9ICgiIERSTV9SRUNU X0ZNVCAiKSBza2lwcGVkXG4iLAorIAkJCQlhcmVhLCBEUk1fUkVDVF9BUkcoJmFyZWEtPmNsaXAp LCBEUk1fUkVDVF9BUkcoJnNyY19jbGlwKSk7CisgCistLSAKKzIuMzAuMgorCisKK0Zyb20gY2Jl MDliMWVmYTMwN2RiMGE1ZGQ5MjdjNzRmMjM2NjNjMjE1OTQ5NCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IE1heGltaWxpYW4gV2VpZ2FuZCA8bXdlaWdhbmRAbXdlaWdhbmQubmV0Pgor RGF0ZTogRnJpLCAxNyBKdW4gMjAyMiAxMjo0MTo1OCArMDIwMAorU3ViamVjdDogW1BBVENIIDI5 LzM3XSBbcm9ja2NoaXBfZWJjXSBtb3ZlIHRoZSBxdWV1ZV9sb2NrIGEgbGl0dGxlIGJpdCBmdXJ0 aGVyCisgdXAuIE5vdCBzdXJlIGlmIHRoaXMgaXMgcmVxdWlyZWQsIGJ1dCB0aGlzIHdheSB3ZSBs b2NrIGFzIHNvb24gYXMgcG9zc2libGUgaW4KKyB0aGUgdXBkYXRlIHJvdXRpbmUuCisKK05vdGUg dGhhdCB0aGlzIHN0aWxsIGRvZXMgbm90IHByZXZlbnQgdGhlIGRhbWFnZWQtYXJlYSBsaXN0IGFu ZCB0aGUKK2ZpbmFsIGZyYW1lYnVmZmVyIGNvbnRlbnQgdG8gZ2V0IG91dCBvZiBzeW5jIGR1cmlu ZyBlYmMgcmVmcmVzaGVzLgorSG93ZXZlciwgaXQgc2hvdWxkIHByZXZlbnQgYW55IGNvaGVyZW5j eSBpc3N1ZXMgYW5kIGVuc3VyZSBjb25zaXN0ZW50CitmcmFtZWJ1ZmZlciBjb250ZW50IGR1cmlu ZyBlYWNoIGZyYW1lIHVwZGF0ZS4KKy0tLQorIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2Nr Y2hpcF9lYmMuYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hp cF9lYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworaW5kZXgg NGJhZWZjOGI1NDk2Li4xNWIxNGFjYmZkMmIgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2dwdS9kcm0v cm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKKysrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9lYmMuYworQEAgLTE1MDgsNiArMTUwOCw3IEBAIHN0YXRpYyB2b2lkIHJvY2tjaGlw X2ViY19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorIAljcnRj X3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIHBsYW5lX3N0YXRl LT5jcnRjKTsKKyAJY3R4ID0gdG9fZWJjX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSktPmN0eDsKKyAK KysJc3Bpbl9sb2NrKCZjdHgtPnF1ZXVlX2xvY2spOworIAlkcm1fcmVjdF9mcF90b19pbnQoJnNy YywgJnBsYW5lX3N0YXRlLT5zcmMpOworIAl0cmFuc2xhdGVfeCA9IHBsYW5lX3N0YXRlLT5kc3Qu eDEgLSBzcmMueDE7CisgCXRyYW5zbGF0ZV95ID0gcGxhbmVfc3RhdGUtPmRzdC55MSAtIHNyYy55 MTsKK0BAIC0xNTE1LDcgKzE1MTYsNiBAQCBzdGF0aWMgdm9pZCByb2NrY2hpcF9lYmNfcGxhbmVf YXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKyAJZWJjX3BsYW5lX3N0YXRl ID0gdG9fZWJjX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKTsKKyAJdmFkZHIgPSBlYmNfcGxhbmVf c3RhdGUtPmJhc2UuZGF0YVswXS52YWRkcjsKKyAKKy0Jc3Bpbl9sb2NrKCZjdHgtPnF1ZXVlX2xv Y2spOworIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoYXJlYSwgbmV4dF9hcmVhLCAmZWJjX3Bs YW5lX3N0YXRlLT5hcmVhcywgbGlzdCkgeworIAkJc3RydWN0IGRybV9yZWN0ICpkc3RfY2xpcCA9 ICZhcmVhLT5jbGlwOworIAkJc3RydWN0IGRybV9yZWN0IHNyY19jbGlwID0gYXJlYS0+Y2xpcDsK Ky0tIAorMi4zMC4yCisKKworRnJvbSBhZjljNGQ4MDRjN2VmMmVmZGI1ZWUyNzMwYjJmZDlkNmM2 OTc0ZTYzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF4aW1pbGlhbiBXZWlnYW5k IDxtd2VpZ2FuZEBtd2VpZ2FuZC5uZXQ+CitEYXRlOiBNb24sIDIwIEp1biAyMDIyIDEzOjE5OjMx ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMzAvMzddIFtyb2NrY2hpcF9lYmNdIAkqIGFkZCBhIHN5 c2ZzIGhhbmRsZXIgCSAKKyAoL3N5cy9tb2R1bGUvcm9ja2NoaXBfZWJjL3BhcmFtZXRlcnMvbGlt aXRfZmJfYmxpdHMpIHRvIGxpbWl0IHRoZSBudW1iZXJzIG9mCisgZnJhbWVidWZmZXIgYmxpdHMu IFRoZSBkZWZhdWx0IHZhbHVlIG9mIC0xIGRvZXMgbm90IGxpbWl0IGJsaXRzIGF0IGFsbC4gQ2Fu CisgYmUgdXNlZCB0byBpbnZlc3RpZ2F0ZSB0aGUgYnVmZmVyIGNvbnRlbnRzIHdoaWxlIGRlYnVn Z2luZyBjb21wbGV4IGRyYXdpbmcKKyBjaGFpbnMuIAkqIGFkZCBhbiBpb2N0bCB0byByZXRyaWV2 ZSB0aGUgZmluYWwsIG5leHQsIHByZXYgYW5kCisgcGhhc2VbMCwxXSAJICBidWZmZXIgY29udGVu dHMgdG8gdXNlciBzcGFjZS4KKworLS0tCisgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2ViYy5jIHwgMTIzICsrKysrKysrKysrKysrKy0tLS0tLS0tLQorIGluY2x1ZGUvdWFwaS9k cm0vcm9ja2NoaXBfZWJjX2RybS5oICAgICB8ICAxMiArKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDkx IGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX2ViYy5jCitpbmRleCAxNWIxNGFjYmZkMmIuLjI3OGEzNTIwOTA0NCAxMDA2NDQK Ky0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworKysrIGIvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCitAQCAtMTk3LDYgKzE5NywxMCBA QCBzdGF0aWMgaW50IHNwbGl0X2FyZWFfbGltaXQgPSAxMjsKKyBtb2R1bGVfcGFyYW0oc3BsaXRf YXJlYV9saW1pdCwgaW50LCBTX0lSVUdPfFNfSVdVU1IpOworIE1PRFVMRV9QQVJNX0RFU0Moc3Bs aXRfYXJlYV9saW1pdCwgImhvdyBtYW55IGFyZWFzIHRvIHNwbGl0IGluIGVhY2ggc2NoZWR1bGlu ZyBjYWxsIik7CisgCisrc3RhdGljIGludCBsaW1pdF9mYl9ibGl0cyA9IC0xOworK21vZHVsZV9w YXJhbShsaW1pdF9mYl9ibGl0cywgaW50LCBTX0lSVUdPfFNfSVdVU1IpOworK01PRFVMRV9QQVJN X0RFU0Moc3BsaXRfYXJlYV9saW1pdCwgImhvdyBtYW55IGZiIGJsaXRzIHRvIGFsbG93LiAtMSBk b2VzIG5vdCBsaW1pdCIpOworKworIERFRklORV9EUk1fR0VNX0ZPUFMocm9ja2NoaXBfZWJjX2Zv cHMpOworIAorIHN0YXRpYyBpbnQgaW9jdGxfdHJpZ2dlcl9nbG9iYWxfcmVmcmVzaChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorQEAgLTIyOCwxMSArMjMyLDc1IEBAIHN0YXRp YyBpbnQgaW9jdGxfc2V0X29mZl9zY3JlZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAq ZGF0YSwKKyAJcmV0dXJuIDA7CisgfQorIAorKworKy8qKgorKyAqIHN0cnVjdCByb2NrY2hpcF9l YmNfY3R4IC0gY29udGV4dCBmb3IgcGVyZm9ybWluZyBkaXNwbGF5IHJlZnJlc2hlcworKyAqCisr ICogQGtyZWY6IFJlZmVyZW5jZSBjb3VudCwgbWFpbnRhaW5lZCBhcyBwYXJ0IG9mIHRoZSBDUlRD J3MgYXRvbWljIHN0YXRlCisrICogQHF1ZXVlOiBRdWV1ZSBvZiBkYW1hZ2VkIGFyZWFzIHRvIGJl IHJlZnJlc2hlZAorKyAqIEBxdWV1ZV9sb2NrOiBMb2NrIHByb3RlY3RpbmcgYWNjZXNzIHRvIEBx dWV1ZQorKyAqIEBwcmV2OiBEaXNwbGF5IGNvbnRlbnRzIChZNCkgYmVmb3JlIHRoaXMgcmVmcmVz aAorKyAqIEBuZXh0OiBEaXNwbGF5IGNvbnRlbnRzIChZNCkgYWZ0ZXIgdGhpcyByZWZyZXNoCisr ICogQGZpbmFsOiBEaXNwbGF5IGNvbnRlbnRzIChZNCkgYWZ0ZXIgYWxsIHBlbmRpbmcgcmVmcmVz aGVzCisrICogQHBoYXNlOiBCdWZmZXJzIGZvciBzZWxlY3RpbmcgYSBwaGFzZSBmcm9tIHRoZSBF QkMncyBMVVQsIDEgYnl0ZS9waXhlbAorKyAqIEBncmF5NF9waXRjaDogSG9yaXpvbnRhbCBsaW5l IGxlbmd0aCBvZiBhIFk0IHBpeGVsIGJ1ZmZlciBpbiBieXRlcworKyAqIEBncmF5NF9zaXplOiBT aXplIG9mIGEgWTQgcGl4ZWwgYnVmZmVyIGluIGJ5dGVzCisrICogQHBoYXNlX3BpdGNoOiBIb3Jp em9udGFsIGxpbmUgbGVuZ3RoIG9mIGEgcGhhc2UgYnVmZmVyIGluIGJ5dGVzCisrICogQHBoYXNl X3NpemU6IFNpemUgb2YgYSBwaGFzZSBidWZmZXIgaW4gYnl0ZXMKKysgKi8KKytzdHJ1Y3Qgcm9j a2NoaXBfZWJjX2N0eCB7CisrCXN0cnVjdCBrcmVmCQkJa3JlZjsKKysJc3RydWN0IGxpc3RfaGVh ZAkJcXVldWU7CisrCXNwaW5sb2NrX3QJCQlxdWV1ZV9sb2NrOworKwl1OAkJCQkqcHJldjsKKysJ dTgJCQkJKm5leHQ7CisrCXU4CQkJCSpmaW5hbDsKKysJdTgJCQkJKnBoYXNlWzJdOworKwl1MzIJ CQkJZ3JheTRfcGl0Y2g7CisrCXUzMgkJCQlncmF5NF9zaXplOworKwl1MzIJCQkJcGhhc2VfcGl0 Y2g7CisrCXUzMgkJCQlwaGFzZV9zaXplOworKwl1NjQgYXJlYV9jb3VudDsKKyt9OworKworK3N0 cnVjdCBlYmNfY3J0Y19zdGF0ZSB7CisrCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZQkJYmFzZTsKKysJ c3RydWN0IHJvY2tjaGlwX2ViY19jdHgJCSpjdHg7CisrfTsKKysKKytzdGF0aWMgaW5saW5lIHN0 cnVjdCBlYmNfY3J0Y19zdGF0ZSAqCisrdG9fZWJjX2NydGNfc3RhdGUoc3RydWN0IGRybV9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQorK3sKKysJcmV0dXJuIGNvbnRhaW5lcl9vZihjcnRjX3N0YXRl LCBzdHJ1Y3QgZWJjX2NydGNfc3RhdGUsIGJhc2UpOworK30KKytzdGF0aWMgaW50IGlvY3RsX2V4 dHJhY3RfZmJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisrCQlzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdikKKyt7CisrCXN0cnVjdCBkcm1fcm9ja2NoaXBfZWJjX2V4dHJh Y3RfZmJzICphcmdzID0gZGF0YTsKKysJc3RydWN0IHJvY2tjaGlwX2ViYyAqZWJjID0gZGV2X2dl dF9kcnZkYXRhKGRldi0+ZGV2KTsKKysJaW50IGNvcHlfcmVzdWx0ID0gMDsKKysJc3RydWN0IHJv Y2tjaGlwX2ViY19jdHggKiBjdHg7CisrCisrCS8vIHRvZG86IHVzZSBhY2Nlc3Nfb2sgaGVyZQor KwlhY2Nlc3Nfb2soYXJncy0+cHRyX25leHQsIDEzMTMxNDQpOworKwljdHggPSB0b19lYmNfY3J0 Y19zdGF0ZShSRUFEX09OQ0UoZWJjLT5jcnRjLnN0YXRlKSktPmN0eDsKKysJY29weV9yZXN1bHQg fD0gY29weV90b191c2VyKGFyZ3MtPnB0cl9wcmV2LCBjdHgtPnByZXYsIDEzMTMxNDQpOworKwlj b3B5X3Jlc3VsdCB8PSBjb3B5X3RvX3VzZXIoYXJncy0+cHRyX25leHQsIGN0eC0+bmV4dCwgMTMx MzE0NCk7CisrCWNvcHlfcmVzdWx0IHw9IGNvcHlfdG9fdXNlcihhcmdzLT5wdHJfZmluYWwsIGN0 eC0+ZmluYWwsIDEzMTMxNDQpOworKworKwljb3B5X3Jlc3VsdCB8PSBjb3B5X3RvX3VzZXIoYXJn cy0+cHRyX3BoYXNlMSwgY3R4LT5waGFzZVswXSwgMiAqIDEzMTMxNDQpOworKwljb3B5X3Jlc3Vs dCB8PSBjb3B5X3RvX3VzZXIoYXJncy0+cHRyX3BoYXNlMiwgY3R4LT5waGFzZVsxXSwgMiAqIDEz MTMxNDQpOworKworKwlyZXR1cm4gY29weV9yZXN1bHQ7CisrfQorKworIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgaW9jdGxzW0RSTV9DT01NQU5EX0VORCAtIERSTV9DT01NQU5E X0JBU0VdID0geworIAlEUk1fSU9DVExfREVGX0RSVihST0NLQ0hJUF9FQkNfR0xPQkFMX1JFRlJF U0gsIGlvY3RsX3RyaWdnZXJfZ2xvYmFsX3JlZnJlc2gsCisgCQkJICBEUk1fUkVOREVSX0FMTE9X KSwKKyAJRFJNX0lPQ1RMX0RFRl9EUlYoUk9DS0NISVBfRUJDX09GRl9TQ1JFRU4sIGlvY3RsX3Nl dF9vZmZfc2NyZWVuLAorIAkJCSAgRFJNX1JFTkRFUl9BTExPVyksCisrCURSTV9JT0NUTF9ERUZf RFJWKFJPQ0tDSElQX0VCQ19FWFRSQUNUX0ZCUywgaW9jdGxfZXh0cmFjdF9mYnMsCisrCQkJICBE Uk1fUkVOREVSX0FMTE9XKSwKKyB9OworIAorIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2RyaXZl ciByb2NrY2hpcF9lYmNfZHJtX2RyaXZlciA9IHsKK0BAIC0yNjgsMzYgKzMzNiw2IEBAIHN0cnVj dCByb2NrY2hpcF9lYmNfYXJlYSB7CisgCXUzMgkJCQlmcmFtZV9iZWdpbjsKKyB9OworIAorLS8q KgorLSAqIHN0cnVjdCByb2NrY2hpcF9lYmNfY3R4IC0gY29udGV4dCBmb3IgcGVyZm9ybWluZyBk aXNwbGF5IHJlZnJlc2hlcworLSAqCistICogQGtyZWY6IFJlZmVyZW5jZSBjb3VudCwgbWFpbnRh aW5lZCBhcyBwYXJ0IG9mIHRoZSBDUlRDJ3MgYXRvbWljIHN0YXRlCistICogQHF1ZXVlOiBRdWV1 ZSBvZiBkYW1hZ2VkIGFyZWFzIHRvIGJlIHJlZnJlc2hlZAorLSAqIEBxdWV1ZV9sb2NrOiBMb2Nr IHByb3RlY3RpbmcgYWNjZXNzIHRvIEBxdWV1ZQorLSAqIEBwcmV2OiBEaXNwbGF5IGNvbnRlbnRz IChZNCkgYmVmb3JlIHRoaXMgcmVmcmVzaAorLSAqIEBuZXh0OiBEaXNwbGF5IGNvbnRlbnRzIChZ NCkgYWZ0ZXIgdGhpcyByZWZyZXNoCistICogQGZpbmFsOiBEaXNwbGF5IGNvbnRlbnRzIChZNCkg YWZ0ZXIgYWxsIHBlbmRpbmcgcmVmcmVzaGVzCistICogQHBoYXNlOiBCdWZmZXJzIGZvciBzZWxl Y3RpbmcgYSBwaGFzZSBmcm9tIHRoZSBFQkMncyBMVVQsIDEgYnl0ZS9waXhlbAorLSAqIEBncmF5 NF9waXRjaDogSG9yaXpvbnRhbCBsaW5lIGxlbmd0aCBvZiBhIFk0IHBpeGVsIGJ1ZmZlciBpbiBi eXRlcworLSAqIEBncmF5NF9zaXplOiBTaXplIG9mIGEgWTQgcGl4ZWwgYnVmZmVyIGluIGJ5dGVz CistICogQHBoYXNlX3BpdGNoOiBIb3Jpem9udGFsIGxpbmUgbGVuZ3RoIG9mIGEgcGhhc2UgYnVm ZmVyIGluIGJ5dGVzCistICogQHBoYXNlX3NpemU6IFNpemUgb2YgYSBwaGFzZSBidWZmZXIgaW4g Ynl0ZXMKKy0gKi8KKy1zdHJ1Y3Qgcm9ja2NoaXBfZWJjX2N0eCB7CistCXN0cnVjdCBrcmVmCQkJ a3JlZjsKKy0Jc3RydWN0IGxpc3RfaGVhZAkJcXVldWU7CistCXNwaW5sb2NrX3QJCQlxdWV1ZV9s b2NrOworLQl1OAkJCQkqcHJldjsKKy0JdTgJCQkJKm5leHQ7CistCXU4CQkJCSpmaW5hbDsKKy0J dTgJCQkJKnBoYXNlWzJdOworLQl1MzIJCQkJZ3JheTRfcGl0Y2g7CistCXUzMgkJCQlncmF5NF9z aXplOworLQl1MzIJCQkJcGhhc2VfcGl0Y2g7CistCXUzMgkJCQlwaGFzZV9zaXplOworLQl1NjQg YXJlYV9jb3VudDsKKy19OworLQorIHN0YXRpYyB2b2lkIHJvY2tjaGlwX2ViY19jdHhfZnJlZShz dHJ1Y3Qgcm9ja2NoaXBfZWJjX2N0eCAqY3R4KQorIHsKKyAJc3RydWN0IHJvY2tjaGlwX2ViY19h cmVhICphcmVhOworQEAgLTM2MCwxNyArMzk4LDYgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJj X2N0eF9yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQorICAqIENSVEMKKyAgKi8KKyAKKy1zdHJ1 Y3QgZWJjX2NydGNfc3RhdGUgeworLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUJCWJhc2U7CistCXN0 cnVjdCByb2NrY2hpcF9lYmNfY3R4CQkqY3R4OworLX07CistCistc3RhdGljIGlubGluZSBzdHJ1 Y3QgZWJjX2NydGNfc3RhdGUgKgorLXRvX2ViY19jcnRjX3N0YXRlKHN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKKy17CistCXJldHVybiBjb250YWluZXJfb2YoY3J0Y19zdGF0ZSwg c3RydWN0IGViY19jcnRjX3N0YXRlLCBiYXNlKTsKKy19CistCisgc3RhdGljIHZvaWQgcm9ja2No aXBfZWJjX2dsb2JhbF9yZWZyZXNoKHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywKKyAJCQkJCXN0 cnVjdCByb2NrY2hpcF9lYmNfY3R4ICpjdHgsCisgCQkJCQkgZG1hX2FkZHJfdCBuZXh0X2hhbmRs ZSwKK0BAIC0xNTUxLDggKzE1NzgsMTggQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJjX3BsYW5l X2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisgCQkJZHN0X2NsaXAtPngy ID0gcGxhbmVfc3RhdGUtPmRzdC54MiAtIHgxOworIAkJfQorIAorLQkJY2xpcF9jaGFuZ2VkX2Zi ID0gcm9ja2NoaXBfZWJjX2JsaXRfZmIoY3R4LCBkc3RfY2xpcCwgdmFkZHIsCistCQkJCQkgIHBs YW5lX3N0YXRlLT5mYiwgJnNyY19jbGlwLCBhZGp1c3RfeDEsIGFkanVzdF94Mik7CisrCQlpZiAo bGltaXRfZmJfYmxpdHMgIT0gMCl7CisrCQkJcHJpbnRrKEtFUk5fSU5GTyAiYXRvbWljIHVwZGF0 ZTogYmxpdHRpbmc6ICVpXG4iLCBsaW1pdF9mYl9ibGl0cyk7CisrCQkJY2xpcF9jaGFuZ2VkX2Zi ID0gcm9ja2NoaXBfZWJjX2JsaXRfZmIoY3R4LCBkc3RfY2xpcCwgdmFkZHIsCisrCQkJCQkJICBw bGFuZV9zdGF0ZS0+ZmIsICZzcmNfY2xpcCwgYWRqdXN0X3gxLCBhZGp1c3RfeDIpOworKwkJCS8v IHRoZSBjb3VudGVyIHNob3VsZCBvbmx5IHJlYWNoIDAgaGVyZSwgLTEgY2FuIG9ubHkgYmUgZXh0 ZXJuYWxseSBzZXQKKysJCQlsaW1pdF9mYl9ibGl0cyAtPSAobGltaXRfZmJfYmxpdHMgPiAwKSA/ IDEgOiAwOworKwkJfSBlbHNlIHsKKysJCQkvLyB3ZSBkbyBub3Qgd2FudCB0byBibGl0IGFueXRo aW5nCisrCQkJcHJpbnRrKEtFUk5fSU5GTyAiYXRvbWljIHVwZGF0ZTogbm90IGJsaXR0aW5nOiAl aVxuIiwgbGltaXRfZmJfYmxpdHMpOworKwkJCWNsaXBfY2hhbmdlZF9mYiA9IGZhbHNlOworKwkJ fQorKworIAorIAkJLy8gcmV2ZXJzZSBjb29yZGluYXRlcworIAkJZHN0X2NsaXAtPngxICs9IGFk anVzdF94MTsKK2RpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL3JvY2tjaGlwX2ViY19kcm0u aCBiL2luY2x1ZGUvdWFwaS9kcm0vcm9ja2NoaXBfZWJjX2RybS5oCitpbmRleCBiZWZhNjJhNjhi ZTAuLjVlOGM4N2FlNmFmMiAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vcm9ja2NoaXBf ZWJjX2RybS5oCisrKysgYi9pbmNsdWRlL3VhcGkvZHJtL3JvY2tjaGlwX2ViY19kcm0uaAorQEAg LTE3LDkgKzE3LDE5IEBAIHN0cnVjdCBkcm1fcm9ja2NoaXBfZWJjX29mZl9zY3JlZW4geworIAlj aGFyICogcHRyX3NjcmVlbl9jb250ZW50OworIH07CisgCistI2RlZmluZSBEUk1fUk9DS0NISVBf RUJDX05VTV9JT0NUTFMJCTB4MDIKKytzdHJ1Y3QgZHJtX3JvY2tjaGlwX2ViY19leHRyYWN0X2Zi cyB7CisrCWNoYXIgKiBwdHJfcHJldjsKKysJY2hhciAqIHB0cl9uZXh0OworKwljaGFyICogcHRy X2ZpbmFsOworKwljaGFyICogcHRyX3BoYXNlMTsKKysJY2hhciAqIHB0cl9waGFzZTI7CisrfTsK KysKKysKKysjZGVmaW5lIERSTV9ST0NLQ0hJUF9FQkNfTlVNX0lPQ1RMUwkJMHgwMworIAorICNk ZWZpbmUgRFJNX0lPQ1RMX1JPQ0tDSElQX0VCQ19HTE9CQUxfUkVGUkVTSAlEUk1fSU9XUihEUk1f Q09NTUFORF9CQVNFICsgMHgwMCwgc3RydWN0IGRybV9yb2NrY2hpcF9lYmNfdHJpZ2dlcl9nbG9i YWxfcmVmcmVzaCkKKyAjZGVmaW5lIERSTV9JT0NUTF9ST0NLQ0hJUF9FQkNfT0ZGX1NDUkVFTglE Uk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgMHgwMSwgc3RydWN0IGRybV9yb2NrY2hpcF9lYmNf b2ZmX3NjcmVlbikKKysjZGVmaW5lIERSTV9JT0NUTF9ST0NLQ0hJUF9FQkNfRVhUUkFDVF9GQlMJ RFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIDB4MDIsIHN0cnVjdCBkcm1fcm9ja2NoaXBfZWJj X2V4dHJhY3RfZmJzKQorIAorICNlbmRpZiAvKiBfX1JPQ0tDSElQX0VCQ19EUk1fSF9fKi8KKy0t IAorMi4zMC4yCisKKworRnJvbSBkMjM4YTUwODUzYzMwYzY1YmVlNmU3YTZhMmQ1NTY1MjUwOTgw MjQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF4aW1pbGlhbiBXZWlnYW5kIDxt d2VpZ2FuZEBtd2VpZ2FuZC5uZXQ+CitEYXRlOiBXZWQsIDIyIEp1biAyMDIyIDEwOjE3OjEwICsw MjAwCitTdWJqZWN0OiBbUEFUQ0ggMzEvMzddIFtyb2NrY2hpcF9lYmNdIGZpeCBjb21waWxlciB3 YXJuaW5ncyBieSBtb3ZpbmcgdmFyaWFibGUKKyBkZWNsYXJhdGlvbiB0byB0aGUgdG9wIG9mIHRo ZSBmdW5jdGlvbnMKKworLS0tCisgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2Vi Yy5jIHwgNDQgKysrKysrKysrKysrKystLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAyNCBp bnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9lYmMuYworaW5kZXggMjc4YTM1MjA5MDQ0Li5kMDY3MGQ0ODI0MzIgMTAwNjQ0Cist LS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKKysrKyBiL2RyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworQEAgLTQ1Myw2ICs0NTMsMjIgQEAg c3RhdGljIGludCB0cnlfdG9fc3BsaXRfYXJlYSgKKyAJICAgIHN0cnVjdCByb2NrY2hpcF9lYmNf YXJlYSAqKnBfbmV4dF9hcmVhLAorIAkJc3RydWN0IGRybV9yZWN0ICogaW50ZXJzZWN0aW9uCisg CSAgICApeworKwlpbnQgeG1pbiwgeG1heCwgeW1pbiwgeW1heCwgeGNlbnRlciwgeWNlbnRlcjsK KysKKysJYm9vbCBub194c3BsaXQgPSBmYWxzZTsKKysJYm9vbCBub195c3BsaXQgPSBmYWxzZTsK KysJYm9vbCBzcGxpdF9ib3RoID0gdHJ1ZTsKKysKKysJc3RydWN0IHJvY2tjaGlwX2ViY19hcmVh ICogaXRlbTE7CisrCXN0cnVjdCByb2NrY2hpcF9lYmNfYXJlYSAqIGl0ZW0yOworKwlzdHJ1Y3Qg cm9ja2NoaXBfZWJjX2FyZWEgKiBpdGVtMzsKKysJc3RydWN0IHJvY2tjaGlwX2ViY19hcmVhICog aXRlbTQ7CisrCisrCS8vIHdlIGRvIG5vdCB3YW50IHRvIG92ZXJoZWxtIHRoZSByZWZyZXNoIHRo cmVhZCBhbmQgbGltaXQgdXMgdG8gYQorKwkvLyBjZXJ0YWluIG51bWJlciBvZiBzcGxpdHMuIFRo ZSByZXN0IG5lZWRzIHRvIHdhaXQKKysJaWYgKCpzcGxpdF9jb3VudGVyID49IHNwbGl0X2FyZWFf bGltaXQpCisrCQlyZXR1cm4gMDsKKysKKyAKKyAJLy8gZm9yIG5vdywgbWluIHNpemUgaWYgMngy CisgCWlmICgoYXJlYS0+Y2xpcC54MiAtIGFyZWEtPmNsaXAueDEgPCAyKSB8IChhcmVhLT5jbGlw LnkyIC0gYXJlYS0+Y2xpcC55MSA8IDIpKQorQEAgLTQ2MywxMiArNDc5LDYgQEAgc3RhdGljIGlu dCB0cnlfdG9fc3BsaXRfYXJlYSgKKyAJLy8gbmV4dCBvdXRlciBsb29wIC0gd2UgZGVsZXRlIHRo aXMgYXJlYSBzbyB3ZSBuZWVkIG5vdCB0byBqdWdnbGUKKyAJLy8gYXJvdW5kIHRoZSBmb3VyIGFy ZWFzIHVudGlsIHdlIGZvdW5kIHRoZSBvbmUgdGhhdCBpcyBhY3R1YWxseQorIAkvLyBvdmVybGFw cGluZykKKy0JaW50IHhtaW4sIHhtYXgsIHltaW4sIHltYXgsIHhjZW50ZXIsIHljZW50ZXI7Cist CistCWJvb2wgbm9feHNwbGl0ID0gZmFsc2U7CistCWJvb2wgbm9feXNwbGl0ID0gZmFsc2U7Cist CWJvb2wgc3BsaXRfYm90aCA9IHRydWU7CistCisgCXhtaW4gPSBhcmVhLT5jbGlwLngxOworIAlp ZiAoaW50ZXJzZWN0aW9uLT54MSA+IHhtaW4pCisgCQl4Y2VudGVyID0gaW50ZXJzZWN0aW9uLT54 MTsKK0BAIC00OTYsMjAgKzUwNiwxMSBAQCBzdGF0aWMgaW50IHRyeV90b19zcGxpdF9hcmVhKAor IAlpZiAobm9feHNwbGl0ICYmIG5vX3lzcGxpdCkKKyAJCXJldHVybiAwOworIAorLQkvLyB3ZSBk byBub3Qgd2FudCB0byBvdmVyaGVsbSB0aGUgcmVmcmVzaCB0aHJlYWQgYW5kIGxpbWl0IHVzIHRv IGEKKy0JLy8gY2VydGFpbiBudW1iZXIgb2Ygc3BsaXRzLiBUaGUgcmVzdCBuZWVkcyB0byB3YWl0 CistCWlmICgqc3BsaXRfY291bnRlciA+PSBzcGxpdF9hcmVhX2xpbWl0KQorLQkJcmV0dXJuIDA7 CistCisgCS8vIHdlIG5lZWQgZm91ciBuZXcgcm9rY2hpcF9lYmNfYXJlYSBlbnRyaWVzIHRoYXQg d2Ugc3BsaWNlIGludG8KKyAJLy8gdGhlIGxpc3QuIE5vdGUgdGhhdCB0aGUgY3VycmVudGx5IG5l eHQgaXRlbSBzaGFsbCBiZSBjb3BpZWQKKyAJLy8gYmFja3dhcmRzIGJlY2F1c2UgdG8gcHJldmVu dCB0aGUgb3V0ZXIgbGlzdCBpdGVyYXRpb24gZnJvbQorIAkvLyBza2lwcGluZyBvdmVyIG91ciBu ZXdseSBjcmVhdGVkIGl0ZW1zLgorIAorLQlzdHJ1Y3Qgcm9ja2NoaXBfZWJjX2FyZWEgKiBpdGVt MTsKKy0Jc3RydWN0IHJvY2tjaGlwX2ViY19hcmVhICogaXRlbTI7CistCXN0cnVjdCByb2NrY2hp cF9lYmNfYXJlYSAqIGl0ZW0zOworLQlzdHJ1Y3Qgcm9ja2NoaXBfZWJjX2FyZWEgKiBpdGVtNDsK KyAJaXRlbTEgPSBrbWFsbG9jKHNpemVvZigqaXRlbTEpLCBHRlBfS0VSTkVMKTsKKyAJaWYgKHNw bGl0X2JvdGggfHwgbm9feHNwbGl0KQorIAkJaXRlbTIgPSBrbWFsbG9jKHNpemVvZigqaXRlbTIp LCBHRlBfS0VSTkVMKTsKK0BAIC03NTIsMTcgKzc1MywyMCBAQCBzdGF0aWMgdm9pZCByb2NrY2hp cF9lYmNfYmxpdF9waXhlbHMoY29uc3Qgc3RydWN0IHJvY2tjaGlwX2ViY19jdHggKmN0eCwKKyAK KyAJdW5zaWduZWQgaW50IHgxX2J5dGVzID0gY2xpcC0+eDEgLyAyOworIAl1bnNpZ25lZCBpbnQg eDJfYnl0ZXMgPSBjbGlwLT54MiAvIDI7CistCS8vIHRoZSBpbnRlZ2VyIGRpdmlzaW9uIGZsb29y cyBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0byBpbmNsdWRlIHRoZSBsYXN0CistCS8vIGJ5dGUg KHBhcnRpYWxseSkKKy0JaWYgKGVuZF94X2lzX29kZCkKKy0JCXgyX2J5dGVzKys7CisgCisgCXVu c2lnbmVkIGludCBwaXRjaCA9IGN0eC0+Z3JheTRfcGl0Y2g7CistCXVuc2lnbmVkIGludCB3aWR0 aCA9IHgyX2J5dGVzIC0geDFfYnl0ZXM7CisrCXVuc2lnbmVkIGludCB3aWR0aDsKKyAJY29uc3Qg dTggKnNyY19saW5lOworIAl1bnNpZ25lZCBpbnQgeTsKKyAJdTggKmRzdF9saW5lOworIAorKwkv LyB0aGUgaW50ZWdlciBkaXZpc2lvbiBmbG9vcnMgYnkgZGVmYXVsdCwgYnV0IHdlIHdhbnQgdG8g aW5jbHVkZSB0aGUgbGFzdAorKwkvLyBieXRlIChwYXJ0aWFsbHkpCisrCWlmIChlbmRfeF9pc19v ZGQpCisrCQl4Ml9ieXRlcysrOworKworKwl3aWR0aCA9IHgyX2J5dGVzIC0geDFfYnl0ZXM7Cisr CisgCWRzdF9saW5lID0gZHN0ICsgY2xpcC0+eTEgKiBwaXRjaCArIHgxX2J5dGVzOworIAlzcmNf bGluZSA9IHNyYyArIGNsaXAtPnkxICogcGl0Y2ggKyB4MV9ieXRlczsKKyAKKy0tIAorMi4zMC4y CisKKworRnJvbSBlMDQzNDU4NmYzMWRiOWJlYjk2MmY4MTg1ZmQ1NjdhMWVhZTRhODc5IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF4aW1pbGlhbiBXZWlnYW5kIDxtd2VpZ2FuZEBt d2VpZ2FuZC5uZXQ+CitEYXRlOiBXZWQsIDIyIEp1biAyMDIyIDEwOjE5OjA2ICswMjAwCitTdWJq ZWN0OiBbUEFUQ0ggMzIvMzddIFtyb2NrY2hpcF9lYmNdIGFkZCBkZWJ1ZyBwcmludGsgc3RhdGVt ZW50cyBidXQgY29tbWVudAorIHRoZW0gb3V0CisKKy0tLQorIGRyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF9lYmMuYyB8IDI4ICsrKysrKysrKysrKysrKysrKysrKy0tLS0KKyAxIGZp bGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworaW5kZXggZDA2NzBkNDgyNDMyLi40OTFlZmQy MGYyZTkgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJj LmMKKysrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworQEAgLTYw NSwyNCArNjA1LDMyIEBAIHN0YXRpYyBib29sIHJvY2tjaGlwX2ViY19zY2hlZHVsZV9hcmVhKHN0 cnVjdCBsaXN0X2hlYWQgKmFyZWFzLAorIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG90aGVyLCBhcmVh cywgbGlzdCkgeworIAkJc3RydWN0IGRybV9yZWN0IGludGVyc2VjdGlvbjsKKyAJCXUzMiBvdGhl cl9lbmQ7CisrCQkvL3ByaW50ayhLRVJOX0lORk8gIiAgICB0ZXN0IG90aGVyIGFyZWE6ICVpLSVp ICVpLSVpXG4iLCBvdGhlci0+Y2xpcC54MSwgb3RoZXItPmNsaXAueDIsIG90aGVyLT5jbGlwLnkx LCBvdGhlci0+Y2xpcC55Mik7CisgCisgCQkvKiBPbmx5IGNvbnNpZGVyIGFyZWFzIGJlZm9yZSB0 aGlzIG9uZSBpbiB0aGUgbGlzdC4gKi8KKy0JCWlmIChvdGhlciA9PSBhcmVhKQorKwkJaWYgKG90 aGVyID09IGFyZWEpeworKwkJCS8vcHJpbnRrKEtFUk5fSU5GTyAiICAgICAgICBvdGhlcj09YXJl YVxuIik7CisgCQkJYnJlYWs7CisrCQl9CisgCisgCQkvKiBTa2lwIGFyZWFzIHRoYXQgZmluaXNo IHJlZnJlc2ggYmVmb3JlIHRoaXMgYXJlYSBiZWdpbnMuICovCisgCQlvdGhlcl9lbmQgPSBvdGhl ci0+ZnJhbWVfYmVnaW4gKyBudW1fcGhhc2VzOworLQkJaWYgKG90aGVyX2VuZCA8PSBmcmFtZV9i ZWdpbikKKysJCWlmIChvdGhlcl9lbmQgPD0gZnJhbWVfYmVnaW4peworKwkJCS8vcHJpbnRrKEtF Uk5fSU5GTyAiICAgICAgICBvdGhlciBmaW5pc2hlcyBiZWZvcmU6ICVpICVpXG4iLCBvdGhlcl9l bmQsIGZyYW1lX2JlZ2luKTsKKyAJCQljb250aW51ZTsKKysJCX0KKyAKKyAJCS8qIElmIHRoZXJl IGlzIG5vIGNvbGxpc2lvbiwgdGhlIGFyZWFzIGFyZSBpbmRlcGVuZGVudC4gKi8KKyAJCWludGVy c2VjdGlvbiA9IGFyZWEtPmNsaXA7CistCQlpZiAoIWRybV9yZWN0X2ludGVyc2VjdCgmaW50ZXJz ZWN0aW9uLCAmb3RoZXItPmNsaXApKQorKwkJaWYgKCFkcm1fcmVjdF9pbnRlcnNlY3QoJmludGVy c2VjdGlvbiwgJm90aGVyLT5jbGlwKSl7CisrCQkJLy9wcmludGsoS0VSTl9JTkZPICIgICAgICAg IG5vIGNvbGxpc2lvblxuIik7CisgCQkJY29udGludWU7CisrCQl9CisgCisgCQkvKiBJZiB0aGUg b3RoZXIgYXJlYSBhbHJlYWR5IHN0YXJ0ZWQsIHdhaXQgdW50aWwgaXQgZmluaXNoZXMuICovCisg CQlpZiAob3RoZXItPmZyYW1lX2JlZ2luIDwgY3VycmVudF9mcmFtZSkgeworIAkJCWZyYW1lX2Jl Z2luID0gbWF4KGZyYW1lX2JlZ2luLCBvdGhlcl9lbmQpOworKwkJCS8vcHJpbnRrKEtFUk5fSU5G TyAiICAgICAgICBvdGhlciBhbHJlYWR5IHN0YXJ0ZWQsIHNldHRpbmcgdG8gJWlcbiIsIGZyYW1l X2JlZ2luKTsKKyAKKyAJCQkvLyBzbyBoZXJlIHdlIHdvdWxkIG9wdGltYWxseSB3YW50IHRvIHNw bGl0IHRoZSBuZXcgYXJlYSBpbnRvIHRocmVlCisgCQkJLy8gcGFydHMgdGhhdCBkbyBub3Qgb3Zl cmxhcCB3aXRoIHRoZSBhbHJlYWR5LXN0YXJ0ZWQgYXJlYSwgYW5kIG9uZQorQEAgLTYzMCwxMiAr NjM4LDE1IEBAIHN0YXRpYyBib29sIHJvY2tjaGlwX2ViY19zY2hlZHVsZV9hcmVhKHN0cnVjdCBs aXN0X2hlYWQgKmFyZWFzLAorIAkJCS8vIGxhdGVyLCBidXQgdGhlIG90aGVyIHRocmVlIHNob3Vs ZCBzdGFydCBpbW1lZGlhdGVseS4KKyAKKyAJCQkvLyBpZiB0aGUgYXJlYSBpcyBlcXVhbCB0byB0 aGUgY2xpcCwgY29udGludWUKKy0JCQlpZiAoZHJtX3JlY3RfZXF1YWxzKCZhcmVhLT5jbGlwLCAm aW50ZXJzZWN0aW9uKSkKKysJCQlpZiAoZHJtX3JlY3RfZXF1YWxzKCZhcmVhLT5jbGlwLCAmaW50 ZXJzZWN0aW9uKSl7CisrCQkJCS8vcHJpbnRrKEtFUk5fSU5GTyAiICAgICAgICBpbnRlcnNlY3Rp b24gY29tcGxldGVseSBjb250YWlucyBhcmVhXG4iKTsKKyAJCQkJY29udGludWU7CisrCQkJfQor IAorIAkJCWlmICh0cnlfdG9fc3BsaXRfYXJlYShhcmVhcywgYXJlYSwgb3RoZXIsIHNwbGl0X2Nv dW50ZXIsIHBfbmV4dF9hcmVhLCAmaW50ZXJzZWN0aW9uKSkKKyAJCQl7CisgCQkJCS8vIGxldCB0 aGUgb3V0ZXIgbG9vcCBkZWxldGUgdGhpcyBhcmVhCisrCQkJCS8vcHJpbnRrKEtFUk5fSU5GTyAi ICAgICAgICBkcm9wcGluZyBhZnRlciB0cnlpbmcgdG8gc3BsaXRcbiIpOworIAkJCQlyZXR1cm4g ZmFsc2U7CisgCQkJfSBlbHNlIHsKKyAJCQkJY29udGludWU7CitAQCAtNjQ5LDE3ICs2NjAsMjAg QEAgc3RhdGljIGJvb2wgcm9ja2NoaXBfZWJjX3NjaGVkdWxlX2FyZWEoc3RydWN0IGxpc3RfaGVh ZCAqYXJlYXMsCisgCQlpZiAoZHJtX3JlY3RfZXF1YWxzKCZhcmVhLT5jbGlwLCAmaW50ZXJzZWN0 aW9uKSkgeworIAkJCWRybV9kYmcoZHJtLCAiYXJlYSAlcCAoIiBEUk1fUkVDVF9GTVQgIikgZHJv cHBlZCwgaW5zaWRlICIgRFJNX1JFQ1RfRk1UICJcbiIsCisgCQkJCWFyZWEsIERSTV9SRUNUX0FS RygmYXJlYS0+Y2xpcCksIERSTV9SRUNUX0FSRygmb3RoZXItPmNsaXApKTsKKysJCQkvL3ByaW50 ayhLRVJOX0lORk8gIiAgICBkcm9wcGluZ1xuIik7CisgCQkJcmV0dXJuIGZhbHNlOworIAkJfQor IAorIAkJLyogVGhleSBkbyBvdmVybGFwIGJ1dCBhcmUgYXJlIG5vdCBlcXVhbCBhbmQgYm90aCBu b3Qgc3RhcnRlZCB5ZXQsIHNvCisgCQkgKiB0aGV5IGNhbiBwb3RlbnRpYWxseSBzdGFydCB0b2dl dGhlciAqLworIAkJZnJhbWVfYmVnaW4gPSBtYXgoZnJhbWVfYmVnaW4sIG90aGVyLT5mcmFtZV9i ZWdpbik7CisrCQkvL3ByaW50ayhLRVJOX0lORk8gIiAgICBzZXR0aW5nIHRvOiAlaVxuIiwgZnJh bWVfYmVnaW4pOworIAorIAkJLy8gdHJ5IHRvIHNwbGl0LCBvdGhlcndpc2UgY29udGludWUKKyAJ CWlmICh0cnlfdG9fc3BsaXRfYXJlYShhcmVhcywgYXJlYSwgb3RoZXIsIHNwbGl0X2NvdW50ZXIs IHBfbmV4dF9hcmVhLCAmaW50ZXJzZWN0aW9uKSkKKyAJCXsKKyAJCQkvLyBsZXQgdGhlIG91dGVy IGxvb3AgZGVsZXRlIHRoaXMgYXJlYQorKwkJCS8vcHJpbnRrKEtFUk5fSU5GTyAiICAgIGRyb3Bw aW5nIGFmdGVyIHRyeWluZyB0byBzcGxpdFxuIik7CisgCQkJcmV0dXJuIGZhbHNlOworIAkJfSBl bHNlIHsKKyAJCQljb250aW51ZTsKK0BAIC02NjcsNiArNjgxLDcgQEAgc3RhdGljIGJvb2wgcm9j a2NoaXBfZWJjX3NjaGVkdWxlX2FyZWEoc3RydWN0IGxpc3RfaGVhZCAqYXJlYXMsCisgCX0KKyAK KyAJYXJlYS0+ZnJhbWVfYmVnaW4gPSBmcmFtZV9iZWdpbjsKKysJLy9wcmludGsoS0VSTl9JTkZP ICIgICAgYXJlYSBzY2hlZHVsZWQgdG8gc3RhcnQgYXQgZnJhbWU6ICVpIChjdXJyZW50OiAlaSlc biIsIGZyYW1lX2JlZ2luLCBjdXJyZW50X2ZyYW1lKTsKKyAKKyAJcmV0dXJuIHRydWU7CisgfQor QEAgLTE1NDcsMTIgKzE1NjIsMTUgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZWJjX3BsYW5lX2F0 b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisgCWViY19wbGFuZV9zdGF0ZSA9 IHRvX2ViY19wbGFuZV9zdGF0ZShwbGFuZV9zdGF0ZSk7CisgCXZhZGRyID0gZWJjX3BsYW5lX3N0 YXRlLT5iYXNlLmRhdGFbMF0udmFkZHI7CisgCisrCS8vcHJpbnRrKEtFUk5fSU5GTyAibmV3IGZi IGNsaXBzXG4iKTsKKyAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGFyZWEsIG5leHRfYXJlYSwg JmViY19wbGFuZV9zdGF0ZS0+YXJlYXMsIGxpc3QpIHsKKyAJCXN0cnVjdCBkcm1fcmVjdCAqZHN0 X2NsaXAgPSAmYXJlYS0+Y2xpcDsKKyAJCXN0cnVjdCBkcm1fcmVjdCBzcmNfY2xpcCA9IGFyZWEt PmNsaXA7CisgCQlpbnQgYWRqdXN0X3gxOworIAkJaW50IGFkanVzdF94MjsKKyAJCWJvb2wgY2xp cF9jaGFuZ2VkX2ZiOworKwkJLy9wcmludGsoS0VSTl9JTkZPICIgICAgY2hlY2tpbmcgZnJvbSBs aXN0OiAoIiBEUk1fUkVDVF9GTVQgIikgXG4iLAorKwkJCS8qIERSTV9SRUNUX0FSRygmYXJlYS0+ Y2xpcCkpOyAqLworIAorIAkJLyogQ29udmVydCBmcm9tIHBsYW5lIGNvb3JkaW5hdGVzIHRvIENS VEMgY29vcmRpbmF0ZXMuICovCisgCQlkcm1fcmVjdF90cmFuc2xhdGUoZHN0X2NsaXAsIHRyYW5z bGF0ZV94LCB0cmFuc2xhdGVfeSk7CitAQCAtMTYxMSw2ICsxNjI5LDggQEAgc3RhdGljIHZvaWQg cm9ja2NoaXBfZWJjX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs CisgCQl9IGVsc2UgeworIAkJCWRybV9kYmcocGxhbmUtPmRldiwgImFyZWEgJXAgKCIgRFJNX1JF Q1RfRk1UICIpIDw9ICgiIERSTV9SRUNUX0ZNVCAiKSBibGl0dGVkXG4iLAorIAkJCQlhcmVhLCBE Uk1fUkVDVF9BUkcoJmFyZWEtPmNsaXApLCBEUk1fUkVDVF9BUkcoJnNyY19jbGlwKSk7CisrCQkJ Ly9wcmludGsoS0VSTl9JTkZPICIgICAgYWRkaW5nIHRvIGxpc3Q6ICgiIERSTV9SRUNUX0ZNVCAi KSA8PSAoIiBEUk1fUkVDVF9GTVQgIikgYmxpdHRlZFxuIiwKKysJCQkJLyogRFJNX1JFQ1RfQVJH KCZhcmVhLT5jbGlwKSwgRFJNX1JFQ1RfQVJHKCZzcmNfY2xpcCkpOyAqLworIAkJfQorIAl9Cisg CistLSAKKzIuMzAuMgorCisKK0Zyb20gYmI0ZTEzNzc5ZGU4ZDQyNzg2OGRhMDI0ZTc4MWNmZjYy NWU4Mjg3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1heGltaWxpYW4gV2VpZ2Fu ZCA8bXdlaWdhbmRAbXdlaWdhbmQubmV0PgorRGF0ZTogV2VkLCAyMiBKdW4gMjAyMiAxMDoyMTo0 MiArMDIwMAorU3ViamVjdDogW1BBVENIIDMzLzM3XSBbcm9ja2NoaXBfZWJjXSBhZGQgY29tbWVu dGVkLW91dCBzcGluX3VubG9jayB0bworIGluZGljYXRlIG9sZCBwb3NpdGlvbgorCistLS0KKyBk cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgfCAxICsKKyAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKykKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF9lYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9l YmMuYworaW5kZXggNDkxZWZkMjBmMmU5Li4zNTFjYWUzNmJjNGQgMTAwNjQ0CistLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKKysrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworQEAgLTg0Nyw2ICs4NDcsNyBAQCBzdGF0aWMgdm9p ZCByb2NrY2hpcF9lYmNfcGFydGlhbF9yZWZyZXNoKHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywK KyAJCS8qIE1vdmUgdGhlIHF1ZXVlZCBkYW1hZ2UgYXJlYXMgdG8gdGhlIGxvY2FsIGxpc3QuICov CisgCQlzcGluX2xvY2soJmN0eC0+cXVldWVfbG9jayk7CisgCQlsaXN0X3NwbGljZV90YWlsX2lu aXQoJmN0eC0+cXVldWUsICZhcmVhcyk7CisrCQkvKiBzcGluX3VubG9jaygmY3R4LT5xdWV1ZV9s b2NrKTsgKi8KKyAKKyAJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShhcmVhLCBuZXh0X2FyZWEs ICZhcmVhcywgbGlzdCkgeworIAkJCXMzMiBmcmFtZV9kZWx0YTsKKy0tIAorMi4zMC4yCisKKwor RnJvbSAzNDBjNWVlYzk3MzA5NGY5MzdkNjc1MjdmODY4YTQ2ZTI3MjljYmJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogTWF4aW1pbGlhbiBXZWlnYW5kIDxtd2VpZ2FuZEBtd2VpZ2Fu ZC5uZXQ+CitEYXRlOiBXZWQsIDIyIEp1biAyMDIyIDEwOjIyOjE4ICswMjAwCitTdWJqZWN0OiBb UEFUQ0ggMzQvMzddIFtyb2NrY2hpcF9lYmNdIG5vdCBzdXJlIGlmIHRoaXMgaGFzIGFueSBiYWQK KyBjb25zZXF1ZW5jZXMsIGJ1dCBhbHNvIHdhaXQgb24gdGhlIGhhcmR3YXJlIHRvIGZpbmlzaCB0 aGUgZmlyc3QgZnJhbWUKKworLS0tCisgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlw X2ViYy5jIHwgMTMgKysrKysrKystLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMo KyksIDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZWJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJj LmMKK2luZGV4IDM1MWNhZTM2YmM0ZC4uZThkMTA4NzI3Yzc1IDEwMDY0NAorLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5jCisrKysgYi9kcml2ZXJzL2dwdS9kcm0v cm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKK0BAIC05NTcsMTEgKzk1NywxNCBAQCBzdGF0aWMgdm9p ZCByb2NrY2hpcF9lYmNfcGFydGlhbF9yZWZyZXNoKHN0cnVjdCByb2NrY2hpcF9lYmMgKmViYywK KyAJCXJlZ21hcF93cml0ZShlYmMtPnJlZ21hcCwgRUJDX0RTUF9TVEFSVCwKKyAJCQkgICAgIGVi Yy0+ZHNwX3N0YXJ0IHwKKyAJCQkgICAgIEVCQ19EU1BfU1RBUlRfRFNQX0ZSTV9TVEFSVCk7Cist CQlpZiAoZnJhbWUpIHsKKy0JCQlpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmZWJj LT5kaXNwbGF5X2VuZCwKKy0JCQkJCQkJIEVCQ19GUkFNRV9USU1FT1VUKSkKKy0JCQkJZHJtX2Vy cihkcm0sICJGcmFtZSAlZCB0aW1lZCBvdXQhXG4iLCBmcmFtZSk7CistCQl9CisrCQkvKiBpZiAo ZnJhbWUpIHsgKi8KKysJCS8qIAlpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmZWJj LT5kaXNwbGF5X2VuZCwgKi8KKysJCS8qIAkJCQkJIEVCQ19GUkFNRV9USU1FT1VUKSkgKi8KKysJ CS8qIAkJZHJtX2Vycihkcm0sICJGcmFtZSAlZCB0aW1lZCBvdXQhXG4iLCBmcmFtZSk7ICovCisr CQkvKiB9ICovCisrCQlpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmZWJjLT5kaXNw bGF5X2VuZCwKKysJCQkJCQkgRUJDX0ZSQU1FX1RJTUVPVVQpKQorKwkJCWRybV9lcnIoZHJtLCAi RnJhbWUgJWQgdGltZWQgb3V0IVxuIiwgZnJhbWUpOworIAl9CisgCWRtYV91bm1hcF9zaW5nbGUo ZGV2LCBwaGFzZV9oYW5kbGVzWzBdLCBjdHgtPmdyYXk0X3NpemUsIERNQV9UT19ERVZJQ0UpOwor IAlkbWFfdW5tYXBfc2luZ2xlKGRldiwgcGhhc2VfaGFuZGxlc1sxXSwgY3R4LT5ncmF5NF9zaXpl LCBETUFfVE9fREVWSUNFKTsKKy0tIAorMi4zMC4yCisKKworRnJvbSAzMjQyZDNkNzhiZGM2ODM2 MWMxNjU4MzhmNTk3MjQ3MzJjZGJiMGUzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog TWF4aW1pbGlhbiBXZWlnYW5kIDxtd2VpZ2FuZEBtd2VpZ2FuZC5uZXQ+CitEYXRlOiBXZWQsIDIy IEp1biAyMDIyIDEwOjIzOjAzICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMzUvMzddIFtyb2NrY2hp cF9lYmNdIGhvcGVmdWxseSBmaXggdGhlIGJsaXR0aW5nIHJvdXRpbmUgZm9yCisgb2RkIHN0YXJ0 L2VuZCBjb29yZGluYXRlcyBhbmQgcGFuZWxfcmVmbGVjdGlvbj0xCisKKy0tLQorIGRyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyB8IDkgKysrKysrLS0tCisgMSBmaWxlIGNo YW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9y b2NrY2hpcC9yb2NrY2hpcF9lYmMuYworaW5kZXggZThkMTA4NzI3Yzc1Li5mMzAwMTAxNTFjMDIg MTAwNjQ0CistLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKKysr KyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworQEAgLTE0ODAsOSAr MTQ4MCwxMyBAQCBzdGF0aWMgYm9vbCByb2NrY2hpcF9lYmNfYmxpdF9mYihjb25zdCBzdHJ1Y3Qg cm9ja2NoaXBfZWJjX2N0eCAqY3R4LAorIAl1OCBjaGFuZ2VkID0gMDsKKyAJaW50IGRlbHRhX3g7 CisgCXZvaWQgKmRzdDsKKysJaW50IHRlc3QxLCB0ZXN0MjsKKyAKKyAJZGVsdGFfeCA9IHBhbmVs X3JlZmxlY3Rpb24gPyAtMSA6IDE7CisgCXN0YXJ0X3ggPSBwYW5lbF9yZWZsZWN0aW9uID8gc3Jj X2NsaXAtPngyIC0gMSA6IHNyY19jbGlwLT54MTsKKysJLy8gZGVwZW5kaW5nIG9uIHRoZSBkaXJl Y3Rpb24gd2UgbXVzdCBlaXRoZXIgc2F2ZSB0aGUgZmlyc3Qgb3IgdGhlIGxhc3QgYml0CisrCXRl c3QxID0gcGFuZWxfcmVmbGVjdGlvbiA/IGFkanVzdF94MSA6IGFkanVzdF94MjsKKysJdGVzdDIg PSBwYW5lbF9yZWZsZWN0aW9uID8gYWRqdXN0X3gyIDogYWRqdXN0X3gxOworIAorIAlkc3QgPSBj dHgtPmZpbmFsICsgZHN0X2NsaXAtPnkxICogZHN0X3BpdGNoICsgZHN0X2NsaXAtPngxIC8gMjsK KyAJc3JjID0gdmFkZHIgKyBzcmNfY2xpcC0+eTEgKiBzcmNfcGl0Y2ggKyBzdGFydF94ICogZmIt PmZvcm1hdC0+Y3BwWzBdOworQEAgLTE1MDksOCArMTUxMyw3IEBAIHN0YXRpYyBib29sIHJvY2tj aGlwX2ViY19ibGl0X2ZiKGNvbnN0IHN0cnVjdCByb2NrY2hpcF9lYmNfY3R4ICpjdHgsCisgCQkJ cmdiMCA+Pj0gMjg7CisgCQkJcmdiMSA+Pj0gMjg7CisgCistCQkJLy8gRG9lcyB0aGlzIGFjY291 bnQgZm9yIHBhbmVsIHJlZmxlY3Rpb24/CistCQkJaWYgKHggPT0gc3JjX2NsaXAtPngxICYmIChh ZGp1c3RfeDEgPT0gMSkpIHsKKysJCQlpZiAoeCA9PSBzcmNfY2xpcC0+eDEgJiYgKHRlc3QxID09 IDEpKSB7CisgCQkJCS8vIHJnYjAgc2hvdWxkIGJlIGZpbGxlZCB3aXRoIHRoZSBjb250ZW50IG9m IHRoZSBzcmMgcGl4ZWwgaGVyZQorIAkJCQkvLyBrZWVwIGxvd2VyIDQgYml0cworIAkJCQkvLyBJ J20gbm90IHN1cmUgaG93IHRvIGRpcmVjdGx5IHJlYWQgb25seSBvbmUgYnl0ZSBmcm9tIHRoZSB1 MzIKK0BAIC0xNTE4LDcgKzE1MjEsNyBAQCBzdGF0aWMgYm9vbCByb2NrY2hpcF9lYmNfYmxpdF9m Yihjb25zdCBzdHJ1Y3Qgcm9ja2NoaXBfZWJjX2N0eCAqY3R4LAorIAkJCQl0bXBfcGl4ZWwgPSAq ZGJ1ZiAmIDBiMDAwMDExMTE7CisgCQkJCXJnYjAgPSB0bXBfcGl4ZWw7CisgCQkJfQorLQkJCWlm ICh4ID09IHNyY19jbGlwLT54MiAmJiAoYWRqdXN0X3gyID09IDEpKSB7CisrCQkJaWYgKHggPT0g c3JjX2NsaXAtPngyICYmICh0ZXN0MiA9PSAxKSkgeworIAkJCQkvLyByZ2IxIHNob3VsZCBiZSBm aWxsZWQgd2l0aCB0aGUgY29udGVudCBvZiB0aGUgZHN0IHBpeGVsIHdlCisgCQkJCS8vIHdhbnQg dG8ga2VlcCBoZXJlCisgCQkJCS8vIGtlZXAgNCBoaWdoZXIgYml0cworLS0gCisyLjMwLjIKKwor CitGcm9tIDJiNDE1NjNlMjAyYTVkNTVlMTlmYWQxMTY0ZWNmYzg5YjFlNDMyMTAgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXhpbWlsaWFuIFdlaWdhbmQgPG13ZWlnYW5kQG13ZWln YW5kLm5ldD4KK0RhdGU6IFdlZCwgMjIgSnVuIDIwMjIgMTA6MjQ6MDcgKzAyMDAKK1N1YmplY3Q6 IFtQQVRDSCAzNi8zN10gW3JvY2tjaGlwX2ViY10gYWRkIGNvbW1lbnRlZC1vdXQgcHJpbnRrIHN0 YXRlbWVudHMKKworLS0tCisgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2ViYy5j IHwgNSArKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJj LmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKK2luZGV4IGYzMDAx MDE1MWMwMi4uYTcyZDFlMjE5NjkxIDEwMDY0NAorLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL3JvY2tjaGlwX2ViYy5jCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2No aXBfZWJjLmMKK0BAIC0xNjA4LDE4ICsxNjA4LDE3IEBAIHN0YXRpYyB2b2lkIHJvY2tjaGlwX2Vi Y19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorIAkJfQorIAor IAkJaWYgKGxpbWl0X2ZiX2JsaXRzICE9IDApeworLQkJCXByaW50ayhLRVJOX0lORk8gImF0b21p YyB1cGRhdGU6IGJsaXR0aW5nOiAlaVxuIiwgbGltaXRfZmJfYmxpdHMpOworKwkJCS8vcHJpbnRr KEtFUk5fSU5GTyAiYXRvbWljIHVwZGF0ZTogYmxpdHRpbmc6ICVpXG4iLCBsaW1pdF9mYl9ibGl0 cyk7CisgCQkJY2xpcF9jaGFuZ2VkX2ZiID0gcm9ja2NoaXBfZWJjX2JsaXRfZmIoY3R4LCBkc3Rf Y2xpcCwgdmFkZHIsCisgCQkJCQkJICBwbGFuZV9zdGF0ZS0+ZmIsICZzcmNfY2xpcCwgYWRqdXN0 X3gxLCBhZGp1c3RfeDIpOworIAkJCS8vIHRoZSBjb3VudGVyIHNob3VsZCBvbmx5IHJlYWNoIDAg aGVyZSwgLTEgY2FuIG9ubHkgYmUgZXh0ZXJuYWxseSBzZXQKKyAJCQlsaW1pdF9mYl9ibGl0cyAt PSAobGltaXRfZmJfYmxpdHMgPiAwKSA/IDEgOiAwOworIAkJfSBlbHNlIHsKKyAJCQkvLyB3ZSBk byBub3Qgd2FudCB0byBibGl0IGFueXRoaW5nCistCQkJcHJpbnRrKEtFUk5fSU5GTyAiYXRvbWlj IHVwZGF0ZTogbm90IGJsaXR0aW5nOiAlaVxuIiwgbGltaXRfZmJfYmxpdHMpOworKwkJCS8vcHJp bnRrKEtFUk5fSU5GTyAiYXRvbWljIHVwZGF0ZTogbm90IGJsaXR0aW5nOiAlaVxuIiwgbGltaXRf ZmJfYmxpdHMpOworIAkJCWNsaXBfY2hhbmdlZF9mYiA9IGZhbHNlOworIAkJfQorIAorLQorIAkJ Ly8gcmV2ZXJzZSBjb29yZGluYXRlcworIAkJZHN0X2NsaXAtPngxICs9IGFkanVzdF94MTsKKyAJ CXNyY19jbGlwLngxICArPSBhZGp1c3RfeDE7CistLSAKKzIuMzAuMgorCisKK0Zyb20gOTE3YTMx YmIxYWMyZWIzYWRiZTI3MmZkNzlkNDBhYzhiMjExNjlkOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IE1heGltaWxpYW4gV2VpZ2FuZCA8bXdlaWdhbmRAbXdlaWdhbmQubmV0PgorRGF0 ZTogV2VkLCAyMiBKdW4gMjAyMiAxMDoyNTowNCArMDIwMAorU3ViamVjdDogW1BBVENIIDM3LzM3 XSBbcm9ja2NoaXBfZWJjXSBhZGQgY29tbWVudGVkLW91dCBvbGQgcG9zaXRpb24gb2YgbG9jawor CistLS0KKyBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMgfCAxICsKKyAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9lYmMuYworaW5kZXggYTcyZDFlMjE5NjkxLi42MmRhZjVjMTA3YzQgMTAwNjQ0Cist LS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZWJjLmMKKysrKyBiL2RyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9lYmMuYworQEAgLTE2NDUsNiArMTY0NSw3IEBA IHN0YXRpYyB2b2lkIHJvY2tjaGlwX2ViY19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAorIAkJcmV0dXJuOworIAl9CisgCisrCS8qIHNwaW5fbG9jaygmY3R4LT5x dWV1ZV9sb2NrKTsgKi8KKyAJbGlzdF9zcGxpY2VfdGFpbF9pbml0KCZlYmNfcGxhbmVfc3RhdGUt PmFyZWFzLCAmY3R4LT5xdWV1ZSk7CisgCXNwaW5fdW5sb2NrKCZjdHgtPnF1ZXVlX2xvY2spOwor IAorLS0gCisyLjMwLjIKKwpkaWZmIC0tZ2l0IGEvZ251L3BhY2thZ2VzL3BhdGNoZXMvbGludXgt bGlicmUtYXJtNjQtcGluZW5vdGUtdG91Y2hzY3JlZW4tMS5wYXRjaCBiL2dudS9wYWNrYWdlcy9w YXRjaGVzL2xpbnV4LWxpYnJlLWFybTY0LXBpbmVub3RlLXRvdWNoc2NyZWVuLTEucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMjAwMjZiNGRkNQotLS0gL2Rldi9u dWxsCisrKyBiL2dudS9wYWNrYWdlcy9wYXRjaGVzL2xpbnV4LWxpYnJlLWFybTY0LXBpbmVub3Rl LXRvdWNoc2NyZWVuLTEucGF0Y2gKQEAgLTAsMCArMSw5NzYgQEAKK0Zyb20gYTI0Y2IyOWVjYTFh NzJhZmIxMDM3ZjU0NjhkMzAzNmIzNGVhMWI2NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206ID0/VVRGLTg/cT9NeWw9QzM9QThuZT0yMEpvc3NlcmFuZD89IDxteWxlbmUuam9zc2VyYW5k QGJvb3RsaW4uY29tPgorRGF0ZTogU3VuLCA5IEphbiAyMDIyIDIxOjUzOjI4ICsxMDAwCitTdWJq ZWN0OiBbUEFUQ0hdIElucHV0OiBBZGQgZHJpdmVyIGZvciBDeXByZXNzIEdlbmVyYXRpb24gNSB0 b3VjaHNjcmVlbgorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsg Y2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitUaGlzIGlz IHRoZSBiYXNpYyBkcml2ZXIgZm9yIHRoZSBDeXByZXNzIFRydWVUb3VjaCBHZW41IHRvdWNoc2Ny ZWVuCitjb250cm9sbGVycy4gVGhpcyBkcml2ZXIgc3VwcG9ydHMgb25seSB0aGUgSTJDIGJ1cyBi dXQgaXQgdXNlcyByZWdtYXAKK3NvIFNQSSBzdXBwb3J0IGNvdWxkIGJlIGFkZGVkIGxhdGVyLgor VGhlIHRvdWNoc2NyZWVuIGNhbiByZXRyaWV2ZSBzb21lIGRlZmluZWQgem9uZSB0aGF0IGFyZSBo YW5kbGVkIGFzCitidXR0b25zIChhY2NvcmRpbmcgdG8gdGhlIGhhcmR3YXJlKS4gVGhhdCBpcyB3 aHkgaXQgaGFuZGxlcworYnV0dG9uIGFuZCBtdWx0aXRvdWNoIGV2ZW50cy4KKworUmV2aWV3ZWQt Ynk6IE1heGltZSBSaXBhcmQgPG1heGltZS5yaXBhcmRAYm9vdGxpbi5jb20+CitTaWduZWQtb2Zm LWJ5OiBNeWzDqG5lIEpvc3NlcmFuZCA8bXlsZW5lLmpvc3NlcmFuZEBib290bGluLmNvbT4KK1Np Z25lZC1vZmYtYnk6IEFsaXN0YWlyIEZyYW5jaXMgPGFsaXN0YWlyQGFsaXN0YWlyMjMubWU+CitU ZXN0ZWQtYnk6IEFuZHJlYXMgS2VtbmFkZSA8YW5kcmVhc0BrZW1uYWRlLmluZm8+ICMgS29ibyBD bGFyYSBIRAorLS0tCisgZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9LY29uZmlnICAgfCAgMTYg KworIGRyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vTWFrZWZpbGUgIHwgICAxICsKKyBkcml2ZXJz L2lucHV0L3RvdWNoc2NyZWVuL2N5dHRzcDUuYyB8IDkwMiArKysrKysrKysrKysrKysrKysrKysr KysrKysrCisgMyBmaWxlcyBjaGFuZ2VkLCA5MTkgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL2N5dHRzcDUuYworCitkaWZmIC0tZ2l0 IGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9LY29uZmlnIGIvZHJpdmVycy9pbnB1dC90b3Vj aHNjcmVlbi9LY29uZmlnCitpbmRleCAyZjZhZGZiN2I5MzguLmViNGUxYjE1NjY4MyAxMDA2NDQK Ky0tLSBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vS2NvbmZpZworKysrIGIvZHJpdmVycy9p bnB1dC90b3VjaHNjcmVlbi9LY29uZmlnCitAQCAtMjg0LDYgKzI4NCwyMiBAQCBjb25maWcgVE9V Q0hTQ1JFRU5fQ1lUVFNQNF9TUEkKKyAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9k dWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKyAJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgY3l0dHNw NF9zcGkuCisgCisrY29uZmlnIFRPVUNIU0NSRUVOX0NZVFRTUDUKKysJdHJpc3RhdGUgIkN5cHJl c3MgVHJ1ZVRvdWNoIEdlbjUgVG91Y2hzY3JlZW4gRHJpdmVyIgorKwlkZXBlbmRzIG9uIEkyQwor KwlzZWxlY3QgUkVHTUFQX0kyQworKwlzZWxlY3QgQ1JDX0lUVV9UCisrCWhlbHAKKysJICBEcml2 ZXIgZm9yIFBhcmFkZSBUcnVlVG91Y2ggU3RhbmRhcmQgUHJvZHVjdCBHZW5lcmF0aW9uIDUKKysJ ICB0b3VjaHNjcmVlbiBjb250cm9sbGVycy4gSTJDIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBvbmx5 LgorKworKwkgIFNheSBZIGhlcmUgaWYgeW91IGhhdmUgYSBDeXByZXNzIEdlbjUgdG91Y2hzY3Jl ZW4uCisrCisrCSAgSWYgdW5zdXJlLCBzYXkgTi4KKysKKysJICBUbyBjb21waWxlIHRoaXMgZHJp dmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKysJICBtb2R1bGUgd2lsbCBiZSBj YWxsZWQgY3l0dHNwNS4KKysKKyBjb25maWcgVE9VQ0hTQ1JFRU5fREE5MDM0CisgCXRyaXN0YXRl ICJUb3VjaHNjcmVlbiBzdXBwb3J0IGZvciBEaWFsb2cgU2VtaWNvbmR1Y3RvciBEQTkwMzQiCisg CWRlcGVuZHMgb24gUE1JQ19EQTkwM1gKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L3RvdWNo c2NyZWVuL01ha2VmaWxlIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9NYWtlZmlsZQoraW5k ZXggMzlhODEyN2NmNmE1Li4wZWE1YzQ3ZjdmZDkgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2lucHV0 L3RvdWNoc2NyZWVuL01ha2VmaWxlCisrKysgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL01h a2VmaWxlCitAQCAtMzAsNiArMzAsNyBAQCBvYmotJChDT05GSUdfVE9VQ0hTQ1JFRU5fQ1lUVFNQ X1NQSSkJKz0gY3l0dHNwX3NwaS5vCisgb2JqLSQoQ09ORklHX1RPVUNIU0NSRUVOX0NZVFRTUDRf Q09SRSkJKz0gY3l0dHNwNF9jb3JlLm8KKyBvYmotJChDT05GSUdfVE9VQ0hTQ1JFRU5fQ1lUVFNQ NF9JMkMpCSs9IGN5dHRzcDRfaTJjLm8gY3l0dHNwX2kyY19jb21tb24ubworIG9iai0kKENPTkZJ R19UT1VDSFNDUkVFTl9DWVRUU1A0X1NQSSkJKz0gY3l0dHNwNF9zcGkubworK29iai0kKENPTkZJ R19UT1VDSFNDUkVFTl9DWVRUU1A1KQkrPSBjeXR0c3A1Lm8KKyBvYmotJChDT05GSUdfVE9VQ0hT Q1JFRU5fREE5MDM0KQkrPSBkYTkwMzQtdHMubworIG9iai0kKENPTkZJR19UT1VDSFNDUkVFTl9E QTkwNTIpCSs9IGRhOTA1Ml90c2kubworIG9iai0kKENPTkZJR19UT1VDSFNDUkVFTl9EWU5BUFJP KQkrPSBkeW5hcHJvLm8KK2RpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL2N5 dHRzcDUuYyBiL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vY3l0dHNwNS5jCituZXcgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi4zYWM0NTEwODA5MGMKKy0tLSAvZGV2L251 bGwKKysrKyBiL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vY3l0dHNwNS5jCitAQCAtMCwwICsx LDkwMiBAQAorKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisrLyoKKysgKiBQ YXJhZGUgVHJ1ZVRvdWNoKFRNKSBTdGFuZGFyZCBQcm9kdWN0IFY1IE1vZHVsZS4KKysgKgorKyAq IENvcHlyaWdodCAoQykgMjAxNSBQYXJhZGUgVGVjaG5vbG9naWVzCisrICogQ29weXJpZ2h0IChD KSAyMDEyLTIwMTUgQ3lwcmVzcyBTZW1pY29uZHVjdG9yCisrICogQ29weXJpZ2h0IChDKSAyMDE4 IEJvb3RsaW4KKysgKgorKyAqIEF1dGhvcnM6IE15bMOobmUgSm9zc2VyYW5kIDxteWxlbmUuam9z c2VyYW5kQGJvb3RsaW4uY29tPgorKyAqICAgICAgICAgICAgICAgIEFsaXN0YWlyIEZyYW5jaXMg PGFsaXN0YWlyQGFsaXN0YWlyMjMubWU+CisrICovCisrCisrI2luY2x1ZGUgPGxpbnV4L2NyYy1p dHUtdC5oPgorKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorKyNpbmNsdWRlIDxsaW51eC9kZXZp Y2UuaD4KKysjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgorKyNpbmNsdWRlIDxsaW51 eC9pbnB1dC9tdC5oPgorKyNpbmNsdWRlIDxsaW51eC9pbnB1dC90b3VjaHNjcmVlbi5oPgorKyNp bmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKysjaW5jbHVkZSA8bGludXgvaTJjLmg+CisrI2lu Y2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KKysj aW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisrI2luY2x1ZGUgPGFzbS91bmFsaWduZWQuaD4KKysK KysjZGVmaW5lIENZVFRTUDVfTkFNRQkJCQkiY3l0dHNwNSIKKysjZGVmaW5lIENZX0kyQ19EQVRB X1NJWkUJCQkoMiAqIDI1NikKKysjZGVmaW5lIEhJRF9WRVJTSU9OCQkJCTB4MDEwMAorKyNkZWZp bmUgQ1lfTUFYX0lOUFVUCQkJCTUxMgorKyNkZWZpbmUgQ1lUVFNQNV9QUkVBTExPQ0FURURfQ01E X0JVRkZFUgkzMgorKyNkZWZpbmUgQ1lfQklUU19QRVJfQlROCQkJMQorKyNkZWZpbmUgQ1lfTlVN X0JUTl9FVkVOVF9JRAkJCUdFTk1BU0soQ1lfQklUU19QRVJfQlROLCAwKQorKworKyNkZWZpbmUg TUFYX0FSRUEJCQkJMjU1CisrI2RlZmluZSBISURfT1VUUFVUX0JMX1NPUAkJCTB4MQorKyNkZWZp bmUgSElEX09VVFBVVF9CTF9FT1AJCQkweDE3CisrI2RlZmluZSBISURfT1VUUFVUX0JMX0xBVU5D SF9BUFAJCTB4M0IKKysjZGVmaW5lIEhJRF9PVVRQVVRfQkxfTEFVTkNIX0FQUF9TSVpFCQkxMQor KyNkZWZpbmUgSElEX09VVFBVVF9HRVRfU1lTSU5GTwkJCTB4MgorKyNkZWZpbmUgSElEX09VVFBV VF9HRVRfU1lTSU5GT19TSVpFCQk1CisrI2RlZmluZSBISURfT1VUUFVUX01BWF9DTURfU0laRQkJ MTIKKysKKysjZGVmaW5lIEhJRF9ERVNDX1JFRwkJCQkweDEKKysjZGVmaW5lIEhJRF9JTlBVVF9S RUcJCQkJMHgzCisrI2RlZmluZSBISURfT1VUUFVUX1JFRwkJCQkweDQKKysKKysjZGVmaW5lIFJF UE9SVF9JRF9UT1VDSAkJCTB4MQorKyNkZWZpbmUgUkVQT1JUX0lEX0JUTgkJCQkweDMKKysjZGVm aW5lIFJFUE9SVF9TSVpFXzUJCQkJNQorKyNkZWZpbmUgUkVQT1JUX1NJWkVfOAkJCQk4CisrI2Rl ZmluZSBSRVBPUlRfU0laRV8xNgkJCQkxNgorKworKy8qIFRvdWNoIHJlcG9ydHMgb2Zmc2V0cyAq LworKy8qIEhlYWRlciBvZmZzZXRzICovCisrI2RlZmluZSBUT1VDSF9SRVBPUlRfREVTQ19IRFJf Q09OVEFDVENPVU5UCTE2CisrLyogUmVjb3JkIG9mZnNldHMgKi8KKysjZGVmaW5lIFRPVUNIX1JF UE9SVF9ERVNDX0NPTlRBQ1RJRAkJOAorKyNkZWZpbmUgVE9VQ0hfUkVQT1JUX0RFU0NfWAkJCTE2 CisrI2RlZmluZSBUT1VDSF9SRVBPUlRfREVTQ19ZCQkJMzIKKysjZGVmaW5lIFRPVUNIX1JFUE9S VF9ERVNDX1AJCQk0OAorKyNkZWZpbmUgVE9VQ0hfUkVQT1JUX0RFU0NfTUFKCQkJNTYKKysjZGVm aW5lIFRPVUNIX1JFUE9SVF9ERVNDX01JTgkJCTY0CisrCisrLyogSElEICovCisrI2RlZmluZSBI SURfVE9VQ0hfUkVQT1JUX0lECQkJMHgxCisrI2RlZmluZSBISURfQlROX1JFUE9SVF9JRAkJCTB4 MworKyNkZWZpbmUgSElEX0FQUF9SRVNQT05TRV9SRVBPUlRfSUQJCTB4MUYKKysjZGVmaW5lIEhJ RF9BUFBfT1VUUFVUX1JFUE9SVF9JRAkJMHgyRgorKyNkZWZpbmUgSElEX0JMX1JFU1BPTlNFX1JF UE9SVF9JRAkJMHgzMAorKyNkZWZpbmUgSElEX0JMX09VVFBVVF9SRVBPUlRfSUQJCTB4NDAKKysK KysjZGVmaW5lIEhJRF9PVVRQVVRfUkVTUE9OU0VfUkVQT1JUX09GRlNFVAkyCisrI2RlZmluZSBI SURfT1VUUFVUX1JFU1BPTlNFX0NNRF9PRkZTRVQJCTQKKysjZGVmaW5lIEhJRF9PVVRQVVRfUkVT UE9OU0VfQ01EX01BU0sJCUdFTk1BU0soNiwgMCkKKysKKysjZGVmaW5lIEhJRF9TWVNJTkZPX1NF TlNJTkdfT0ZGU0VUCQkzMworKyNkZWZpbmUgSElEX1NZU0lORk9fQlROX09GRlNFVAkJCTQ4Cisr I2RlZmluZSBISURfU1lTSU5GT19CVE5fTUFTSwkJCUdFTk1BU0soNywgMCkKKysjZGVmaW5lIEhJ RF9TWVNJTkZPX01BWF9CVE4JCQk4CisrCisrI2RlZmluZSBDWV9ISURfT1VUUFVUX1RJTUVPVVRf TVMJCQkyMDAKKysjZGVmaW5lIENZX0hJRF9PVVRQVVRfR0VUX1NZU0lORk9fVElNRU9VVF9NUwkz MDAwCisrI2RlZmluZSBDWV9ISURfR0VUX0hJRF9ERVNDUklQVE9SX1RJTUVPVVRfTVMJNDAwMAor KworKy8qIG1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgdHJhY2tzICovCisrI2RlZmluZSBU T1VDSF9SRVBPUlRfU0laRQkJCTEwCisrI2RlZmluZSBUT1VDSF9JTlBVVF9IRUFERVJfU0laRQkJ NworKyNkZWZpbmUgQlROX1JFUE9SVF9TSVpFCQkJOQorKyNkZWZpbmUgQlROX0lOUFVUX0hFQURF Ul9TSVpFCQkJNQorKworKyNkZWZpbmUgTUFYX0NZX1RDSF9UX0lEUwkzMgorKworKy8qIEFsbCB1 c2FnZSBwYWdlcyBmb3IgVG91Y2ggUmVwb3J0ICovCisrI2RlZmluZSBUT1VDSF9SRVBPUlRfVVNB R0VfUEdfWAkJMHgwMDAxMDAzMAorKyNkZWZpbmUgVE9VQ0hfUkVQT1JUX1VTQUdFX1BHX1kJCTB4 MDAwMTAwMzEKKysjZGVmaW5lIFRPVUNIX1JFUE9SVF9VU0FHRV9QR19QCQkweDAwMEQwMDMwCisr I2RlZmluZSBUT1VDSF9SRVBPUlRfVVNBR0VfUEdfQ09OVEFDVElECTB4MDAwRDAwNTEKKysjZGVm aW5lIFRPVUNIX1JFUE9SVF9VU0FHRV9QR19DT05UQUNUQ09VTlQJMHgwMDBEMDA1NAorKyNkZWZp bmUgVE9VQ0hfUkVQT1JUX1VTQUdFX1BHX01BSgkJMHhGRjAxMDA2MgorKyNkZWZpbmUgVE9VQ0hf UkVQT1JUX1VTQUdFX1BHX01JTgkJMHhGRjAxMDA2MworKyNkZWZpbmUgVE9VQ0hfQ09MX1VTQUdF X1BHCQkJMHgwMDBEMDAyMgorKworKy8qIFN5c3RlbSBJbmZvcm1hdGlvbiBpbnRlcmZhY2UgZGVm aW5pdGlvbnMgKi8KKytzdHJ1Y3QgY3l0dHNwNV9zZW5zaW5nX2NvbmZfZGF0YV9kZXYgeworKwl1 OCBlbGVjdHJvZGVzX3g7CisrCXU4IGVsZWN0cm9kZXNfeTsKKysJX19sZTE2IGxlbl94OworKwlf X2xlMTYgbGVuX3k7CisrCV9fbGUxNiByZXNfeDsKKysJX19sZTE2IHJlc195OworKwlfX2xlMTYg bWF4X3o7CisrCXU4IG9yaWdpbl94OworKwl1OCBvcmlnaW5feTsKKysJdTggYnRuOworKwl1OCBz Y2FuX21vZGU7CisrCXU4IG1heF9udW1fb2ZfdGNoX3Blcl9yZWZyZXNoX2N5Y2xlOworK30gX19w YWNrZWQ7CisrCisrc3RydWN0IGN5dHRzcDVfc2Vuc2luZ19jb25mX2RhdGEgeworKwl1MTYgcmVz X3g7CisrCXUxNiByZXNfeTsKKysJdTE2IG1heF96OworKwl1MTYgbGVuX3g7CisrCXUxNiBsZW5f eTsKKysJdTggb3JpZ2luX3g7CisrCXU4IG9yaWdpbl95OworKwl1OCBtYXhfdGNoOworK307Cisr CisrZW51bSBjeXR0c3A1X3RjaF9hYnMgewkvKiBmb3Igb3JkZXJpbmcgd2l0aGluIHRoZSBleHRy YWN0ZWQgdG91Y2ggZGF0YSBhcnJheSAqLworKwlDWV9UQ0hfWCwJLyogWCAqLworKwlDWV9UQ0hf WSwJLyogWSAqLworKwlDWV9UQ0hfUCwJLyogUCAoWikgKi8KKysJQ1lfVENIX1QsCS8qIFRPVUNI IElEICovCisrCUNZX1RDSF9NQUosCS8qIFRPVUNIX01BSk9SICovCisrCUNZX1RDSF9NSU4sCS8q IFRPVUNIX01JTk9SICovCisrCUNZX1RDSF9OVU1fQUJTCisrfTsKKysKKytzdHJ1Y3QgY3l0dHNw NV90Y2hfYWJzX3BhcmFtcyB7CisrCXNpemVfdCBvZnM7CS8qIGFicyBieXRlIG9mZnNldCAqLwor KwlzaXplX3Qgc2l6ZTsJLyogc2l6ZSBpbiBiaXRzICovCisrCXNpemVfdCBtaW47CS8qIG1pbiB2 YWx1ZSAqLworKwlzaXplX3QgbWF4OwkvKiBtYXggdmFsdWUgKi8KKysJc2l6ZV90IGJvZnM7CS8q IGJpdCBvZmZzZXQgKi8KKyt9OworKworK3N0cnVjdCBjeXR0c3A1X3RvdWNoIHsKKysJaW50IGFi c1tDWV9UQ0hfTlVNX0FCU107CisrfTsKKysKKytzdHJ1Y3QgY3l0dHNwNV9zeXNpbmZvIHsKKysJ c3RydWN0IGN5dHRzcDVfc2Vuc2luZ19jb25mX2RhdGEgc2Vuc2luZ19jb25mX2RhdGE7CisrCWlu dCBudW1fYnRuczsKKysJc3RydWN0IGN5dHRzcDVfdGNoX2Fic19wYXJhbXMgdGNoX2hkcjsKKysJ c3RydWN0IGN5dHRzcDVfdGNoX2Fic19wYXJhbXMgdGNoX2Fic1tDWV9UQ0hfTlVNX0FCU107Cisr CXUzMiBrZXlfY29kZVtISURfU1lTSU5GT19NQVhfQlROXTsKKyt9OworKworK3N0cnVjdCBjeXR0 c3A1X2hpZF9kZXNjIHsKKysJX19sZTE2IGhpZF9kZXNjX2xlbjsKKysJdTggcGFja2V0X2lkOwor Kwl1OCByZXNlcnZlZF9ieXRlOworKwlfX2xlMTYgYmNkX3ZlcnNpb247CisrCV9fbGUxNiByZXBv cnRfZGVzY19sZW47CisrCV9fbGUxNiByZXBvcnRfZGVzY19yZWdpc3RlcjsKKysJX19sZTE2IGlu cHV0X3JlZ2lzdGVyOworKwlfX2xlMTYgbWF4X2lucHV0X2xlbjsKKysJX19sZTE2IG91dHB1dF9y ZWdpc3RlcjsKKysJX19sZTE2IG1heF9vdXRwdXRfbGVuOworKwlfX2xlMTYgY29tbWFuZF9yZWdp c3RlcjsKKysJX19sZTE2IGRhdGFfcmVnaXN0ZXI7CisrCV9fbGUxNiB2ZW5kb3JfaWQ7CisrCV9f bGUxNiBwcm9kdWN0X2lkOworKwlfX2xlMTYgdmVyc2lvbl9pZDsKKysJdTggcmVzZXJ2ZWRbNF07 CisrfSBfX3BhY2tlZDsKKysKKytzdHJ1Y3QgY3l0dHNwNSB7CisrCXN0cnVjdCBkZXZpY2UgKmRl djsKKysJc3RydWN0IGNvbXBsZXRpb24gY21kX2RvbmU7CisrCXN0cnVjdCBjeXR0c3A1X3N5c2lu Zm8gc3lzaW5mbzsKKysJc3RydWN0IGN5dHRzcDVfaGlkX2Rlc2MgaGlkX2Rlc2M7CisrCXU4IGNt ZF9idWZbQ1lUVFNQNV9QUkVBTExPQ0FURURfQ01EX0JVRkZFUl07CisrCXU4IGlucHV0X2J1ZltD WV9NQVhfSU5QVVRdOworKwl1OCByZXNwb25zZV9idWZbQ1lfTUFYX0lOUFVUXTsKKysJc3RydWN0 IGdwaW9fZGVzYyAqcmVzZXRfZ3BpbzsKKysJc3RydWN0IGlucHV0X2RldiAqaW5wdXQ7CisrCWNo YXIgcGh5c1tOQU1FX01BWF07CisrCWludCBudW1fcHJ2X3JlYzsKKysJc3RydWN0IHJlZ21hcCAq cmVnbWFwOworKwlzdHJ1Y3QgdG91Y2hzY3JlZW5fcHJvcGVydGllcyBwcm9wOworKwlzdHJ1Y3Qg cmVndWxhdG9yICp2ZGQ7CisrfTsKKysKKysvKgorKyAqIEZvciB3aGF0IGlzIHVuZGVyc3Rvb2Qg aW4gdGhlIGRhdGFzaGVldCwgdGhlIHJlZ2lzdGVyIGRvZXMgbm90CisrICogbWF0dGVyLiBGb3Ig Y29uc2lzdGVuY3ksIHVzZSB0aGUgSW5wdXQgUmVnaXN0ZXIgYWRkcmVzcworKyAqIGJ1dCBpdCBk b2VzIG1lYW4gYW55dGhpbmcgdG8gdGhlIGRldmljZS4gVGhlIGltcG9ydGFudCBkYXRhCisrICog dG8gc2VuZCBpcyB0aGUgSTJDIGFkZHJlc3MKKysgKi8KKytzdGF0aWMgaW50IGN5dHRzcDVfcmVh ZChzdHJ1Y3QgY3l0dHNwNSAqdHMsIHU4ICpidWYsIHUzMiBtYXgpCisreworKwlpbnQgZXJyb3I7 CisrCXUzMiBzaXplOworKwl1OCB0ZW1wWzJdOworKworKwkvKiBSZWFkIHRoZSBmcmFtZSB0byBy ZXRyaWV2ZSB0aGUgc2l6ZSAqLworKwllcnJvciA9IHJlZ21hcF9idWxrX3JlYWQodHMtPnJlZ21h cCwgSElEX0lOUFVUX1JFRywgdGVtcCwgc2l6ZW9mKHRlbXApKTsKKysJaWYgKGVycm9yKQorKwkJ cmV0dXJuIGVycm9yOworKworKwlzaXplID0gZ2V0X3VuYWxpZ25lZF9sZTE2KHRlbXApOworKwlp ZiAoIXNpemUgfHwgc2l6ZSA9PSAyKQorKwkJcmV0dXJuIDA7CisrCisrCWlmIChzaXplID4gbWF4 KQorKwkJcmV0dXJuIC1FSU5WQUw7CisrCisrCS8qIEdldCB0aGUgcmVhbCB2YWx1ZSAqLworKwly ZXR1cm4gcmVnbWFwX2J1bGtfcmVhZCh0cy0+cmVnbWFwLCBISURfSU5QVVRfUkVHLCBidWYsIHNp emUpOworK30KKysKKytzdGF0aWMgaW50IGN5dHRzcDVfd3JpdGUoc3RydWN0IGN5dHRzcDUgKnRz LCB1bnNpZ25lZCBpbnQgcmVnLCB1OCAqZGF0YSwKKysJCQkgc2l6ZV90IHNpemUpCisreworKwl1 OCBjbWRbSElEX09VVFBVVF9NQVhfQ01EX1NJWkVdOworKworKwlpZiAoc2l6ZSArIDEgPiBISURf T1VUUFVUX01BWF9DTURfU0laRSkKKysJCXJldHVybiAtRTJCSUc7CisrCisrCS8qIEhpZ2ggYnl0 ZXMgb2YgcmVnaXN0ZXIgYWRkcmVzcyBuZWVkZWQgYXMgZmlyc3QgYnl0ZSBvZiBjbWQgKi8KKysJ Y21kWzBdID0gKHJlZyA+PiA4KSAmIDB4RkYgOworKworKwkvKiBDb3B5IHRoZSByZXN0IG9mIHRo ZSBkYXRhICovCisrCWlmIChkYXRhKQorKwkJbWVtY3B5KCZjbWRbMV0sIGRhdGEsIHNpemUpOwor KworKwkvKgorKwkgKiBUaGUgaGFyZHdhcmUgd2FudHMgdG8gcmVjZWl2ZSBhIGZyYW1lIHdpdGgg dGhlIGFkZHJlc3MgcmVnaXN0ZXIKKysJICogY29udGFpbmVkIGluIHRoZSBmaXJzdCB0d28gYnl0 ZXMuIEFzIHRoZSByZWdtYXBfd3JpdGUgZnVuY3Rpb24KKysJICogYWRkIHRoZSByZWdpc3RlciBh ZHJlc3NlIGluIHRoZSBmcmFtZSwgd2UgdXNlIHRoZSBsb3cgYnl0ZSBhcworKwkgKiBmaXJzdCBm cmFtZSBieXRlIGZvciB0aGUgYWRkcmVzcyByZWdpc3RlciBhbmQgdGhlIGZpcnN0CisrCSAqIGRh dGEgYnl0ZSBpcyB0aGUgaGlnaCByZWdpc3RlciArIGxlZnQgb2YgdGhlIGNtZCB0byBzZW5kCisr CSAqLworKwlyZXR1cm4gcmVnbWFwX2J1bGtfd3JpdGUodHMtPnJlZ21hcCwgcmVnICYgMHhGRiwg Y21kLCBzaXplICsgMSk7CisrfQorKworK3N0YXRpYyB2b2lkIGN5dHRzcDVfZ2V0X3RvdWNoX2F4 aXMoaW50ICpheGlzLCBpbnQgc2l6ZSwgaW50IG1heCwgdTggKnh5X2RhdGEsCisrCQkJCSAgIGlu dCBib2ZzKQorK3sKKysJaW50IG5ieXRlOworKworKwlmb3IgKG5ieXRlID0gMCwgKmF4aXMgPSAw OyBuYnl0ZSA8IHNpemU7IG5ieXRlKyspCisrCQkqYXhpcyArPSAoKHh5X2RhdGFbbmJ5dGVdID4+ IGJvZnMpIDw8IChuYnl0ZSAqIDgpKTsKKysKKysJKmF4aXMgJj0gbWF4IC0gMTsKKyt9CisrCisr c3RhdGljIHZvaWQgY3l0dHNwNV9nZXRfdG91Y2hfcmVjb3JkKHN0cnVjdCBjeXR0c3A1ICp0cywK KysJCQkJICAgICBzdHJ1Y3QgY3l0dHNwNV90b3VjaCAqdG91Y2gsIHU4ICp4eV9kYXRhKQorK3sK KysJc3RydWN0IGN5dHRzcDVfc3lzaW5mbyAqc2kgPSAmdHMtPnN5c2luZm87CisrCWVudW0gY3l0 dHNwNV90Y2hfYWJzIGFiczsKKysKKysJZm9yIChhYnMgPSBDWV9UQ0hfWDsgYWJzIDwgQ1lfVENI X05VTV9BQlM7IGFicysrKQorKwkJY3l0dHNwNV9nZXRfdG91Y2hfYXhpcygmdG91Y2gtPmFic1th YnNdLAorKwkJCQkgICAgICAgc2ktPnRjaF9hYnNbYWJzXS5zaXplLAorKwkJCQkgICAgICAgc2kt PnRjaF9hYnNbYWJzXS5tYXgsCisrCQkJCSAgICAgICB4eV9kYXRhICsgc2ktPnRjaF9hYnNbYWJz XS5vZnMsCisrCQkJCSAgICAgICBzaS0+dGNoX2Fic1thYnNdLmJvZnMpOworK30KKysKKytzdGF0 aWMgdm9pZCBjeXR0c3A1X2dldF9tdF90b3VjaGVzKHN0cnVjdCBjeXR0c3A1ICp0cywKKysJCQkJ ICAgc3RydWN0IGN5dHRzcDVfdG91Y2ggKnRjaCwgaW50IG51bV9jdXJfdGNoKQorK3sKKysJc3Ry dWN0IGN5dHRzcDVfc3lzaW5mbyAqc2kgPSAmdHMtPnN5c2luZm87CisrCWludCBpLCB0ID0gMCwg b2Zmc2V0ID0gMDsKKysJREVDTEFSRV9CSVRNQVAoaWRzLCBNQVhfQ1lfVENIX1RfSURTKTsKKysJ dTggKnRjaF9hZGRyOworKwlpbnQgdG1wOworKworKwliaXRtYXBfemVybyhpZHMsIE1BWF9DWV9U Q0hfVF9JRFMpOworKwltZW1zZXQodGNoLT5hYnMsIDAsIHNpemVvZih0Y2gtPmFicykpOworKwor Kwlzd2l0Y2ggKHRzLT5pbnB1dF9idWZbMl0pIHsKKysJY2FzZSBISURfVE9VQ0hfUkVQT1JUX0lE OgorKwkJb2Zmc2V0ID0gVE9VQ0hfSU5QVVRfSEVBREVSX1NJWkU7CisrCQlicmVhazsKKysJY2Fz ZSBISURfQlROX1JFUE9SVF9JRDoKKysJCW9mZnNldCA9IEJUTl9JTlBVVF9IRUFERVJfU0laRTsK KysJCWJyZWFrOworKwl9CisrCisrCWZvciAoaSA9IDA7IGkgPCBudW1fY3VyX3RjaDsgaSsrKSB7 CisrCQl0Y2hfYWRkciA9IHRzLT5pbnB1dF9idWYgKyBvZmZzZXQgKyAoaSAqIFRPVUNIX1JFUE9S VF9TSVpFKTsKKysJCWN5dHRzcDVfZ2V0X3RvdWNoX3JlY29yZCh0cywgdGNoLCB0Y2hfYWRkcik7 CisrCisrCQkvKiBDb252ZXJ0IE1BSk9SL01JTk9SIGZyb20gbW0gdG8gcmVzb2x1dGlvbiAqLwor KwkJdG1wID0gdGNoLT5hYnNbQ1lfVENIX01BSl0gKiAxMDAgKiBzaS0+c2Vuc2luZ19jb25mX2Rh dGEucmVzX3g7CisrCQl0Y2gtPmFic1tDWV9UQ0hfTUFKXSA9IHRtcCAvIHNpLT5zZW5zaW5nX2Nv bmZfZGF0YS5sZW5feDsKKysJCXRtcCA9IHRjaC0+YWJzW0NZX1RDSF9NSU5dICogMTAwICogc2kt PnNlbnNpbmdfY29uZl9kYXRhLnJlc194OworKwkJdGNoLT5hYnNbQ1lfVENIX01JTl0gPSB0bXAg LyBzaS0+c2Vuc2luZ19jb25mX2RhdGEubGVuX3g7CisrCisrCQl0ID0gdGNoLT5hYnNbQ1lfVENI X1RdOworKwkJaW5wdXRfbXRfc2xvdCh0cy0+aW5wdXQsIHQpOworKwkJaW5wdXRfbXRfcmVwb3J0 X3Nsb3Rfc3RhdGUodHMtPmlucHV0LCBNVF9UT09MX0ZJTkdFUiwgdHJ1ZSk7CisrCQlfX3NldF9i aXQodCwgaWRzKTsKKysKKysJCS8qIHBvc2l0aW9uIGFuZCBwcmVzc3VyZSBmaWVsZHMgKi8KKysJ CXRvdWNoc2NyZWVuX3JlcG9ydF9wb3ModHMtPmlucHV0LCAmdHMtPnByb3AsCisrCQkJCSAgICAg ICB0Y2gtPmFic1tDWV9UQ0hfWF0sIHRjaC0+YWJzW0NZX1RDSF9ZXSwKKysJCQkJICAgICAgIHRy dWUpOworKwkJaW5wdXRfcmVwb3J0X2Ficyh0cy0+aW5wdXQsIEFCU19NVF9QUkVTU1VSRSwKKysJ CQkJIHRjaC0+YWJzW0NZX1RDSF9QXSk7CisrCisrCQkvKiBHZXQgdGhlIGV4dGVuZGVkIHRvdWNo IGZpZWxkcyAqLworKwkJaW5wdXRfcmVwb3J0X2Ficyh0cy0+aW5wdXQsIEFCU19NVF9UT1VDSF9N QUpPUiwKKysJCQkJIHRjaC0+YWJzW0NZX1RDSF9NQUpdKTsKKysJCWlucHV0X3JlcG9ydF9hYnMo dHMtPmlucHV0LCBBQlNfTVRfVE9VQ0hfTUlOT1IsCisrCQkJCSB0Y2gtPmFic1tDWV9UQ0hfTUlO XSk7CisrCX0KKysKKysJdHMtPm51bV9wcnZfcmVjID0gbnVtX2N1cl90Y2g7CisrfQorKworK3N0 YXRpYyBpbnQgY3l0dHNwNV9tdF9hdHRlbnRpb24oc3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJ c3RydWN0IGN5dHRzcDUgKnRzID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisrCXN0cnVjdCBjeXR0 c3A1X3N5c2luZm8gKnNpID0gJnRzLT5zeXNpbmZvOworKwlpbnQgbWF4X3RjaCA9IHNpLT5zZW5z aW5nX2NvbmZfZGF0YS5tYXhfdGNoOworKwlzdHJ1Y3QgY3l0dHNwNV90b3VjaCB0Y2g7CisrCXU4 IG51bV9jdXJfdGNoOworKworKwljeXR0c3A1X2dldF90b3VjaF9heGlzKChpbnQgKikgJm51bV9j dXJfdGNoLCBzaS0+dGNoX2hkci5zaXplLAorKwkJCSAgICAgICBzaS0+dGNoX2hkci5tYXgsCisr CQkJICAgICAgIHRzLT5pbnB1dF9idWYgKyAzICsgc2ktPnRjaF9oZHIub2ZzLAorKwkJCSAgICAg ICBzaS0+dGNoX2hkci5ib2ZzKTsKKysKKysJaWYgKG51bV9jdXJfdGNoID4gbWF4X3RjaCkgewor KwkJZGV2X2VycihkZXYsICJOdW0gdG91Y2ggZXJyIGRldGVjdGVkIChuPSVkKVxuIiwgbnVtX2N1 cl90Y2gpOworKwkJbnVtX2N1cl90Y2ggPSBtYXhfdGNoOworKwl9CisrCisrCWlmIChudW1fY3Vy X3RjaCA9PSAwICYmIHRzLT5udW1fcHJ2X3JlYyA9PSAwKQorKwkJcmV0dXJuIDA7CisrCisrCS8q IGV4dHJhY3QgeHlfZGF0YSBmb3IgYWxsIGN1cnJlbnRseSByZXBvcnRlZCB0b3VjaGVzICovCisr CWlmIChudW1fY3VyX3RjaCkKKysJCWN5dHRzcDVfZ2V0X210X3RvdWNoZXModHMsICZ0Y2gsIG51 bV9jdXJfdGNoKTsKKysKKysJaW5wdXRfbXRfc3luY19mcmFtZSh0cy0+aW5wdXQpOworKwlpbnB1 dF9zeW5jKHRzLT5pbnB1dCk7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IGN5 dHRzcDVfc2V0dXBfaW5wdXRfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKKyt7CisrCXN0cnVj dCBjeXR0c3A1ICp0cyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKwlzdHJ1Y3QgY3l0dHNwNV9z eXNpbmZvICpzaSA9ICZ0cy0+c3lzaW5mbzsKKysJaW50IG1heF94LCBtYXhfeSwgbWF4X3A7Cisr CWludCBtYXhfeF90bXAsIG1heF95X3RtcDsKKysJaW50IGVycm9yOworKworKwltYXhfeF90bXAg PSBzaS0+c2Vuc2luZ19jb25mX2RhdGEucmVzX3g7CisrCW1heF95X3RtcCA9IHNpLT5zZW5zaW5n X2NvbmZfZGF0YS5yZXNfeTsKKysJbWF4X3ggPSBtYXhfeF90bXAgLSAxOworKwltYXhfeSA9IG1h eF95X3RtcCAtIDE7CisrCW1heF9wID0gc2ktPnNlbnNpbmdfY29uZl9kYXRhLm1heF96OworKwor KwlpbnB1dF9zZXRfYWJzX3BhcmFtcyh0cy0+aW5wdXQsIEFCU19NVF9QT1NJVElPTl9YLCAwLCBt YXhfeCwgMCwgMCk7CisrCWlucHV0X3NldF9hYnNfcGFyYW1zKHRzLT5pbnB1dCwgQUJTX01UX1BP U0lUSU9OX1ksIDAsIG1heF95LCAwLCAwKTsKKysJaW5wdXRfc2V0X2Fic19wYXJhbXModHMtPmlu cHV0LCBBQlNfTVRfUFJFU1NVUkUsIDAsIG1heF9wLCAwLCAwKTsKKysKKysJaW5wdXRfc2V0X2Fi c19wYXJhbXModHMtPmlucHV0LCBBQlNfTVRfVE9VQ0hfTUFKT1IsIDAsIE1BWF9BUkVBLCAwLCAw KTsKKysJaW5wdXRfc2V0X2Fic19wYXJhbXModHMtPmlucHV0LCBBQlNfTVRfVE9VQ0hfTUlOT1Is IDAsIE1BWF9BUkVBLCAwLCAwKTsKKysKKysJZXJyb3IgPSBpbnB1dF9tdF9pbml0X3Nsb3RzKHRz LT5pbnB1dCwgc2ktPnRjaF9hYnNbQ1lfVENIX1RdLm1heCwKKysJCUlOUFVUX01UX0RST1BfVU5V U0VEIHwgSU5QVVRfTVRfRElSRUNUKTsKKysJaWYgKGVycm9yIDwgMCkKKysJCXJldHVybiBlcnJv cjsKKysKKysJZXJyb3IgPSBpbnB1dF9yZWdpc3Rlcl9kZXZpY2UodHMtPmlucHV0KTsKKysJaWYg KGVycm9yIDwgMCkKKysJCWRldl9lcnIoZGV2LCAiRXJyb3IsIGZhaWxlZCByZWdpc3RlciBpbnB1 dCBkZXZpY2Ugcj0lZFxuIiwgZXJyb3IpOworKworKwlyZXR1cm4gZXJyb3I7CisrfQorKworK3N0 YXRpYyBpbnQgY3l0dHNwNV9wYXJzZV9kdF9rZXlfY29kZShzdHJ1Y3QgZGV2aWNlICpkZXYpCisr eworKwlzdHJ1Y3QgY3l0dHNwNSAqdHMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysJc3RydWN0 IGN5dHRzcDVfc3lzaW5mbyAqc2kgPSAmdHMtPnN5c2luZm87CisrCisrCWlmICghc2ktPm51bV9i dG5zKQorKwkJcmV0dXJuIDA7CisrCisrCS8qIEluaXRpYWxpemUgdGhlIGJ1dHRvbiB0byBSRVNF UlZFRCAqLworKwltZW1zZXQzMihzaS0+a2V5X2NvZGUsIEtFWV9SRVNFUlZFRCwgIHNpLT5udW1f YnRucyk7CisrCisrCXJldHVybiBkZXZpY2VfcHJvcGVydHlfcmVhZF91MzJfYXJyYXkoZGV2LCAi bGludXgsa2V5Y29kZXMiLAorKwkJCQkgICBzaS0+a2V5X2NvZGUsIHNpLT5udW1fYnRucyk7Cisr fQorKworK3N0YXRpYyBpbnQgY3l0dHNwNV9idG5fYXR0ZW50aW9uKHN0cnVjdCBkZXZpY2UgKmRl dikKKyt7CisrCXN0cnVjdCBjeXR0c3A1ICp0cyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKwlz dHJ1Y3QgY3l0dHNwNV9zeXNpbmZvICpzaSA9ICZ0cy0+c3lzaW5mbzsKKysJaW50IGN1cl9idG4s IG9mZnNldCA9IDA7CisrCWludCBjdXJfYnRuX3N0YXRlOworKworKwlzd2l0Y2ggKHRzLT5pbnB1 dF9idWZbMl0pIHsKKysJY2FzZSBISURfVE9VQ0hfUkVQT1JUX0lEOgorKwkJb2Zmc2V0ID0gVE9V Q0hfSU5QVVRfSEVBREVSX1NJWkU7CisrCQlicmVhazsKKysJY2FzZSBISURfQlROX1JFUE9SVF9J RDoKKysJCW9mZnNldCA9IEJUTl9JTlBVVF9IRUFERVJfU0laRTsKKysJCWJyZWFrOworKwl9Cisr CisrCWlmICh0cy0+aW5wdXRfYnVmWzJdICE9IEhJRF9CVE5fUkVQT1JUX0lEIHx8ICFzaS0+bnVt X2J0bnMpCisrCQlyZXR1cm4gMDsKKysKKysJLyogZXh0cmFjdCBidXR0b24gcHJlc3MvcmVsZWFz ZSB0b3VjaCBpbmZvcm1hdGlvbiAqLworKwlmb3IgKGN1cl9idG4gPSAwOyBjdXJfYnRuIDwgc2kt Pm51bV9idG5zOyBjdXJfYnRuKyspIHsKKysJCS8qIEdldCBjdXJyZW50IGJ1dHRvbiBzdGF0ZSAq LworKwkJY3VyX2J0bl9zdGF0ZSA9ICh0cy0+aW5wdXRfYnVmW29mZnNldF0gPj4gKGN1cl9idG4g KiBDWV9CSVRTX1BFUl9CVE4pKQorKwkJCSYgQ1lfTlVNX0JUTl9FVkVOVF9JRDsKKysKKysJCWlu cHV0X3JlcG9ydF9rZXkodHMtPmlucHV0LCBzaS0+a2V5X2NvZGVbY3VyX2J0bl0sCisrCQkJCSBj dXJfYnRuX3N0YXRlKTsKKysJCWlucHV0X3N5bmModHMtPmlucHV0KTsKKysJfQorKworKwlyZXR1 cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBjeXR0c3A1X3ZhbGlkYXRlX2NtZF9yZXNwb25zZShz dHJ1Y3QgY3l0dHNwNSAqdHMsIHU4IGNvZGUpCisreworKwl1MTYgc2l6ZSwgY3JjOworKwl1OCBz dGF0dXMsIHJlcG9ydF9pZDsKKysJaW50IGNvbW1hbmRfY29kZTsKKysKKysJc2l6ZSA9IGdldF91 bmFsaWduZWRfbGUxNigmdHMtPnJlc3BvbnNlX2J1ZlswXSk7CisrCisrCWlmICghc2l6ZSkKKysJ CXJldHVybiAwOworKworKwlyZXBvcnRfaWQgPSB0cy0+cmVzcG9uc2VfYnVmW0hJRF9PVVRQVVRf UkVTUE9OU0VfUkVQT1JUX09GRlNFVF07CisrCisrCXN3aXRjaCAocmVwb3J0X2lkKSB7CisrCWNh c2UgSElEX0JMX1JFU1BPTlNFX1JFUE9SVF9JRDogeworKwkJaWYgKHRzLT5yZXNwb25zZV9idWZb NF0gIT0gSElEX09VVFBVVF9CTF9TT1ApIHsKKysJCQlkZXZfZXJyKHRzLT5kZXYsICJISUQgb3V0 cHV0IHJlc3BvbnNlLCB3cm9uZyBTT1BcbiIpOworKwkJCXJldHVybiAtRVBST1RPOworKwkJfQor KworKwkJaWYgKHRzLT5yZXNwb25zZV9idWZbc2l6ZSAtIDFdICE9IEhJRF9PVVRQVVRfQkxfRU9Q KSB7CisrCQkJZGV2X2Vycih0cy0+ZGV2LCAiSElEIG91dHB1dCByZXNwb25zZSwgd3JvbmcgRU9Q XG4iKTsKKysJCQlyZXR1cm4gLUVQUk9UTzsKKysJCX0KKysKKysJCWNyYyA9IGNyY19pdHVfdCgw eEZGRkYsICZ0cy0+cmVzcG9uc2VfYnVmWzRdLCBzaXplIC0gNyk7CisrCQlpZiAoZ2V0X3VuYWxp Z25lZF9sZTE2KCZ0cy0+cmVzcG9uc2VfYnVmW3NpemUgLSAzXSkgIT0gY3JjKSB7CisrCQkJZGV2 X2Vycih0cy0+ZGV2LCAiSElEIG91dHB1dCByZXNwb25zZSwgd3JvbmcgQ1JDIDB4JVhcbiIsCisr CQkJCWNyYyk7CisrCQkJcmV0dXJuIC1FUFJPVE87CisrCQl9CisrCisrCQlzdGF0dXMgPSB0cy0+ cmVzcG9uc2VfYnVmWzVdOworKwkJaWYgKHN0YXR1cykgeworKwkJCWRldl9lcnIodHMtPmRldiwg IkhJRCBvdXRwdXQgcmVzcG9uc2UsIEVSUk9SOiVkXG4iLAorKwkJCQlzdGF0dXMpOworKwkJCXJl dHVybiAtRVBST1RPOworKwkJfQorKwkJYnJlYWs7CisrCX0KKysJY2FzZSBISURfQVBQX1JFU1BP TlNFX1JFUE9SVF9JRDogeworKwkJY29tbWFuZF9jb2RlID0gdHMtPnJlc3BvbnNlX2J1ZltISURf T1VUUFVUX1JFU1BPTlNFX0NNRF9PRkZTRVRdCisrCQkJJiBISURfT1VUUFVUX1JFU1BPTlNFX0NN RF9NQVNLOworKwkJaWYgKGNvbW1hbmRfY29kZSAhPSBjb2RlKSB7CisrCQkJZGV2X2Vycih0cy0+ ZGV2LAorKwkJCQkiSElEIG91dHB1dCByZXNwb25zZSwgd3JvbmcgY29tbWFuZF9jb2RlOiVYXG4i LAorKwkJCQljb21tYW5kX2NvZGUpOworKwkJCXJldHVybiAtRVBST1RPOworKwkJfQorKwkJYnJl YWs7CisrCX0KKysJfQorKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIHZvaWQgY3l0dHNw NV9zaV9nZXRfYnRuX2RhdGEoc3RydWN0IGN5dHRzcDUgKnRzKQorK3sKKysJc3RydWN0IGN5dHRz cDVfc3lzaW5mbyAqc2kgPSAmdHMtPnN5c2luZm87CisrCXVuc2lnbmVkIGludCBidG5zID0gdHMt PnJlc3BvbnNlX2J1ZltISURfU1lTSU5GT19CVE5fT0ZGU0VUXQorKwkJJiBISURfU1lTSU5GT19C VE5fTUFTSzsKKysKKysJc2ktPm51bV9idG5zID0gaHdlaWdodDgoYnRucyk7CisrfQorKworK3N0 YXRpYyBpbnQgY3l0dHNwNV9nZXRfc3lzaW5mb19yZWdzKHN0cnVjdCBjeXR0c3A1ICp0cykKKyt7 CisrCXN0cnVjdCBjeXR0c3A1X3NlbnNpbmdfY29uZl9kYXRhICpzY2QgPSAmdHMtPnN5c2luZm8u c2Vuc2luZ19jb25mX2RhdGE7CisrCXN0cnVjdCBjeXR0c3A1X3NlbnNpbmdfY29uZl9kYXRhX2Rl diAqc2NkX2RldiA9CisrCQkoc3RydWN0IGN5dHRzcDVfc2Vuc2luZ19jb25mX2RhdGFfZGV2ICop CisrCQkmdHMtPnJlc3BvbnNlX2J1ZltISURfU1lTSU5GT19TRU5TSU5HX09GRlNFVF07CisrCisr CWN5dHRzcDVfc2lfZ2V0X2J0bl9kYXRhKHRzKTsKKysKKysJc2NkLT5tYXhfdGNoID0gc2NkX2Rl di0+bWF4X251bV9vZl90Y2hfcGVyX3JlZnJlc2hfY3ljbGU7CisrCXNjZC0+cmVzX3ggPSBnZXRf dW5hbGlnbmVkX2xlMTYoJnNjZF9kZXYtPnJlc194KTsKKysJc2NkLT5yZXNfeSA9IGdldF91bmFs aWduZWRfbGUxNigmc2NkX2Rldi0+cmVzX3kpOworKwlzY2QtPm1heF96ID0gZ2V0X3VuYWxpZ25l ZF9sZTE2KCZzY2RfZGV2LT5tYXhfeik7CisrCXNjZC0+bGVuX3ggPSBnZXRfdW5hbGlnbmVkX2xl MTYoJnNjZF9kZXYtPmxlbl94KTsKKysJc2NkLT5sZW5feSA9IGdldF91bmFsaWduZWRfbGUxNigm c2NkX2Rldi0+bGVuX3kpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBjeXR0 c3A1X2hpZF9vdXRwdXRfZ2V0X3N5c2luZm8oc3RydWN0IGN5dHRzcDUgKnRzKQorK3sKKysJaW50 IHJjOworKwl1OCBjbWRbSElEX09VVFBVVF9HRVRfU1lTSU5GT19TSVpFXTsKKysKKysJLyogSEkg Ynl0ZXMgb2YgT3V0cHV0IHJlZ2lzdGVyIGFkZHJlc3MgKi8KKysJcHV0X3VuYWxpZ25lZF9sZTE2 KEhJRF9PVVRQVVRfR0VUX1NZU0lORk9fU0laRSwgY21kKTsKKysJY21kWzJdID0gSElEX0FQUF9P VVRQVVRfUkVQT1JUX0lEOworKwljbWRbM10gPSAweDA7IC8qIFJlc2VydmVkICovCisrCWNtZFs0 XSA9IEhJRF9PVVRQVVRfR0VUX1NZU0lORk87CisrCisrCXJjID0gY3l0dHNwNV93cml0ZSh0cywg SElEX09VVFBVVF9SRUcsIGNtZCwKKysJCQkgICBISURfT1VUUFVUX0dFVF9TWVNJTkZPX1NJWkUp OworKwlpZiAocmMpIHsKKysJCWRldl9lcnIodHMtPmRldiwgIkZhaWxlZCB0byB3cml0ZSBjb21t YW5kICVkIiwgcmMpOworKwkJcmV0dXJuIHJjOworKwl9CisrCisrCXJjID0gd2FpdF9mb3JfY29t cGxldGlvbl9pbnRlcnJ1cHRpYmxlX3RpbWVvdXQoJnRzLT5jbWRfZG9uZSwKKysJCQkJCQltc2Vj c190b19qaWZmaWVzKENZX0hJRF9PVVRQVVRfR0VUX1NZU0lORk9fVElNRU9VVF9NUykpOworKwlp ZiAocmMgPD0gMCkgeworKwkJZGV2X2Vycih0cy0+ZGV2LCAiSElEIG91dHB1dCBjbWQgZXhlY3V0 aW9uIHRpbWVkIG91dFxuIik7CisrCQlyYyA9IC1FVElNRURPVVQ7CisrCQlyZXR1cm4gcmM7Cisr CX0KKysKKysJcmMgPSBjeXR0c3A1X3ZhbGlkYXRlX2NtZF9yZXNwb25zZSh0cywgSElEX09VVFBV VF9HRVRfU1lTSU5GTyk7CisrCWlmIChyYykgeworKwkJZGV2X2Vycih0cy0+ZGV2LCAiVmFsaWRh dGlvbiBvZiB0aGUgcmVzcG9uc2UgZmFpbGVkXG4iKTsKKysJCXJldHVybiByYzsKKysJfQorKwor KwlyZXR1cm4gY3l0dHNwNV9nZXRfc3lzaW5mb19yZWdzKHRzKTsKKyt9CisrCisrc3RhdGljIGlu dCBjeXR0c3A1X2hpZF9vdXRwdXRfYmxfbGF1bmNoX2FwcChzdHJ1Y3QgY3l0dHNwNSAqdHMpCisr eworKwlpbnQgcmM7CisrCXU4IGNtZFtISURfT1VUUFVUX0JMX0xBVU5DSF9BUFBdOworKwl1MTYg Y3JjOworKworKwlwdXRfdW5hbGlnbmVkX2xlMTYoSElEX09VVFBVVF9CTF9MQVVOQ0hfQVBQX1NJ WkUsIGNtZCk7CisrCWNtZFsyXSA9IEhJRF9CTF9PVVRQVVRfUkVQT1JUX0lEOworKwljbWRbM10g PSAweDA7IC8qIFJlc2VydmVkICovCisrCWNtZFs0XSA9IEhJRF9PVVRQVVRfQkxfU09QOworKwlj bWRbNV0gPSBISURfT1VUUFVUX0JMX0xBVU5DSF9BUFA7CisrCXB1dF91bmFsaWduZWRfbGUxNigw eDAwLCAmY21kWzZdKTsKKysJY3JjID0gY3JjX2l0dV90KDB4RkZGRiwgJmNtZFs0XSwgNCk7Cisr CXB1dF91bmFsaWduZWRfbGUxNihjcmMsICZjbWRbOF0pOworKwljbWRbMTBdID0gSElEX09VVFBV VF9CTF9FT1A7CisrCisrCXJjID0gY3l0dHNwNV93cml0ZSh0cywgSElEX09VVFBVVF9SRUcsIGNt ZCwKKysJCQkgICBISURfT1VUUFVUX0JMX0xBVU5DSF9BUFBfU0laRSk7CisrCWlmIChyYykgewor KwkJZGV2X2Vycih0cy0+ZGV2LCAiRmFpbGVkIHRvIHdyaXRlIGNvbW1hbmQgJWQiLCByYyk7Cisr CQlyZXR1cm4gcmM7CisrCX0KKysKKysJcmMgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVw dGlibGVfdGltZW91dCgmdHMtPmNtZF9kb25lLAorKwkJCQkJCW1zZWNzX3RvX2ppZmZpZXMoQ1lf SElEX09VVFBVVF9USU1FT1VUX01TKSk7CisrCWlmIChyYyA8PSAwKSB7CisrCQlkZXZfZXJyKHRz LT5kZXYsICJISUQgb3V0cHV0IGNtZCBleGVjdXRpb24gdGltZWQgb3V0XG4iKTsKKysJCXJjID0g LUVUSU1FRE9VVDsKKysJCXJldHVybiByYzsKKysJfQorKworKwlyYyA9IGN5dHRzcDVfdmFsaWRh dGVfY21kX3Jlc3BvbnNlKHRzLCBISURfT1VUUFVUX0JMX0xBVU5DSF9BUFApOworKwlpZiAocmMp IHsKKysJCWRldl9lcnIodHMtPmRldiwgIlZhbGlkYXRpb24gb2YgdGhlIHJlc3BvbnNlIGZhaWxl ZFxuIik7CisrCQlyZXR1cm4gcmM7CisrCX0KKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRp YyBpbnQgY3l0dHNwNV9nZXRfaGlkX2Rlc2NyaXB0b3Ioc3RydWN0IGN5dHRzcDUgKnRzLAorKwkJ CQkgICAgICBzdHJ1Y3QgY3l0dHNwNV9oaWRfZGVzYyAqZGVzYykKKyt7CisrCXN0cnVjdCBkZXZp Y2UgKmRldiA9IHRzLT5kZXY7CisrCV9fbGUxNiBoaWRfZGVzY19yZWdpc3RlciA9IEhJRF9ERVND X1JFRzsKKysJaW50IHJjOworKwl1OCBjbWRbMl07CisrCisrCS8qIFNldCBISUQgZGVzY3JpcHRv ciByZWdpc3RlciAqLworKwltZW1jcHkoY21kLCAmaGlkX2Rlc2NfcmVnaXN0ZXIsIHNpemVvZiho aWRfZGVzY19yZWdpc3RlcikpOworKworKwlyYyA9IGN5dHRzcDVfd3JpdGUodHMsIEhJRF9ERVND X1JFRywgTlVMTCwgMCk7CisrCWlmIChyYykgeworKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8g Z2V0IEhJRCBkZXNjcmlwdG9yLCByYz0lZFxuIiwgcmMpOworKwkJcmV0dXJuIHJjOworKwl9Cisr CisrCXJjID0gd2FpdF9mb3JfY29tcGxldGlvbl9pbnRlcnJ1cHRpYmxlX3RpbWVvdXQoJnRzLT5j bWRfZG9uZSwKKysJCQkJCQltc2Vjc190b19qaWZmaWVzKENZX0hJRF9HRVRfSElEX0RFU0NSSVBU T1JfVElNRU9VVF9NUykpOworKwlpZiAocmMgPD0gMCkgeworKwkJZGV2X2Vycih0cy0+ZGV2LCAi SElEIGdldCBkZXNjcmlwdG9yIHRpbWVkIG91dFxuIik7CisrCQlyYyA9IC1FVElNRURPVVQ7Cisr CQlyZXR1cm4gcmM7CisrCX0KKysKKysJbWVtY3B5KGRlc2MsIHRzLT5yZXNwb25zZV9idWYsIHNp emVvZigqZGVzYykpOworKworKwkvKiBDaGVjayBISUQgZGVzY3JpcHRvciBsZW5ndGggYW5kIHZl cnNpb24gKi8KKysJaWYgKGxlMTZfdG9fY3B1KGRlc2MtPmhpZF9kZXNjX2xlbikgIT0gc2l6ZW9m KCpkZXNjKSB8fAorKwkgICAgbGUxNl90b19jcHUoZGVzYy0+YmNkX3ZlcnNpb24pICE9IEhJRF9W RVJTSU9OKSB7CisrCQlkZXZfZXJyKGRldiwgIlVuc3VwcG9ydGVkIEhJRCB2ZXJzaW9uXG4iKTsK KysJCXJldHVybiAtRU5PREVWOworKwl9CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMg aW50IGZpbGxfdGNoX2FicyhzdHJ1Y3QgY3l0dHNwNV90Y2hfYWJzX3BhcmFtcyAqdGNoX2Ficywg aW50IHJlcG9ydF9zaXplLAorKwkJCWludCBvZmZzZXQpCisreworKwl0Y2hfYWJzLT5vZnMgPSBv ZmZzZXQgLyA4OworKwl0Y2hfYWJzLT5zaXplID0gcmVwb3J0X3NpemUgLyA4OworKwlpZiAocmVw b3J0X3NpemUgJSA4KQorKwkJdGNoX2Ficy0+c2l6ZSArPSAxOworKwl0Y2hfYWJzLT5taW4gPSAw OworKwl0Y2hfYWJzLT5tYXggPSAxIDw8IHJlcG9ydF9zaXplOworKwl0Y2hfYWJzLT5ib2ZzID0g b2Zmc2V0IC0gKHRjaF9hYnMtPm9mcyA8PCAzKTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0 YXRpYyBpcnFyZXR1cm5fdCBjeXR0c3A1X2hhbmRsZV9pcnEoaW50IGlycSwgdm9pZCAqaGFuZGxl KQorK3sKKysJc3RydWN0IGN5dHRzcDUgKnRzID0gaGFuZGxlOworKwlpbnQgcmVwb3J0X2lkOwor KwlpbnQgc2l6ZTsKKysJaW50IGVycm9yOworKworKwllcnJvciA9IGN5dHRzcDVfcmVhZCh0cywg dHMtPmlucHV0X2J1ZiwgQ1lfTUFYX0lOUFVUKTsKKysJaWYgKGVycm9yKQorKwkJcmV0dXJuIElS UV9IQU5ETEVEOworKworKwlzaXplID0gZ2V0X3VuYWxpZ25lZF9sZTE2KCZ0cy0+aW5wdXRfYnVm WzBdKTsKKysJaWYgKHNpemUgPT0gMCkgeworKwkJLyogcmVzZXQgKi8KKysJCXJlcG9ydF9pZCA9 IDA7CisrCQlzaXplID0gMjsKKysJfSBlbHNlIHsKKysJCXJlcG9ydF9pZCA9IHRzLT5pbnB1dF9i dWZbMl07CisrCX0KKysKKysJc3dpdGNoIChyZXBvcnRfaWQpIHsKKysJY2FzZSBISURfVE9VQ0hf UkVQT1JUX0lEOgorKwkJY3l0dHNwNV9tdF9hdHRlbnRpb24odHMtPmRldik7CisrCQlicmVhazsK KysJY2FzZSBISURfQlROX1JFUE9SVF9JRDoKKysJCWN5dHRzcDVfYnRuX2F0dGVudGlvbih0cy0+ ZGV2KTsKKysJCWJyZWFrOworKwlkZWZhdWx0OgorKwkJLyogSXQgaXMgbm90IGFuIGlucHV0IGJ1 dCBhIGNvbW1hbmQgcmVzcG9uc2UgKi8KKysJCW1lbWNweSh0cy0+cmVzcG9uc2VfYnVmLCB0cy0+ aW5wdXRfYnVmLCBzaXplKTsKKysJCWNvbXBsZXRlKCZ0cy0+Y21kX2RvbmUpOworKwl9CisrCisr CXJldHVybiBJUlFfSEFORExFRDsKKyt9CisrCisrc3RhdGljIGludCBjeXR0c3A1X2RlYXNzZXJ0 X2ludChzdHJ1Y3QgY3l0dHNwNSAqdHMpCisreworKwl1MTYgc2l6ZTsKKysJdTggYnVmWzJdOwor KwlpbnQgZXJyb3I7CisrCisrCWVycm9yID0gcmVnbWFwX2J1bGtfcmVhZCh0cy0+cmVnbWFwLCBI SURfSU5QVVRfUkVHLCBidWYsIHNpemVvZihidWYpKTsKKysJaWYgKGVycm9yIDwgMCkKKysJCXJl dHVybiBlcnJvcjsKKysKKysJc2l6ZSA9IGdldF91bmFsaWduZWRfbGUxNigmYnVmWzBdKTsKKysJ aWYgKHNpemUgPT0gMiB8fCBzaXplID09IDApCisrCQlyZXR1cm4gMDsKKysKKysJcmV0dXJuIC1F SU5WQUw7CisrfQorKworK3N0YXRpYyBpbnQgY3l0dHNwNV9maWxsX2FsbF90b3VjaChzdHJ1Y3Qg Y3l0dHNwNSAqdHMpCisreworKwlzdHJ1Y3QgY3l0dHNwNV9zeXNpbmZvICpzaSA9ICZ0cy0+c3lz aW5mbzsKKysKKysJZmlsbF90Y2hfYWJzKCZzaS0+dGNoX2Fic1tDWV9UQ0hfWF0sIFJFUE9SVF9T SVpFXzE2LAorKwkJICAgICBUT1VDSF9SRVBPUlRfREVTQ19YKTsKKysJZmlsbF90Y2hfYWJzKCZz aS0+dGNoX2Fic1tDWV9UQ0hfWV0sIFJFUE9SVF9TSVpFXzE2LAorKwkJICAgICBUT1VDSF9SRVBP UlRfREVTQ19ZKTsKKysJZmlsbF90Y2hfYWJzKCZzaS0+dGNoX2Fic1tDWV9UQ0hfUF0sIFJFUE9S VF9TSVpFXzgsCisrCQkgICAgIFRPVUNIX1JFUE9SVF9ERVNDX1ApOworKwlmaWxsX3RjaF9hYnMo JnNpLT50Y2hfYWJzW0NZX1RDSF9UXSwgUkVQT1JUX1NJWkVfNSwKKysJCSAgICAgVE9VQ0hfUkVQ T1JUX0RFU0NfQ09OVEFDVElEKTsKKysJZmlsbF90Y2hfYWJzKCZzaS0+dGNoX2hkciwgUkVQT1JU X1NJWkVfNSwKKysJCSAgICAgVE9VQ0hfUkVQT1JUX0RFU0NfSERSX0NPTlRBQ1RDT1VOVCk7Cisr CWZpbGxfdGNoX2Ficygmc2ktPnRjaF9hYnNbQ1lfVENIX01BSl0sIFJFUE9SVF9TSVpFXzgsCisr CQkgICAgIFRPVUNIX1JFUE9SVF9ERVNDX01BSik7CisrCWZpbGxfdGNoX2Ficygmc2ktPnRjaF9h YnNbQ1lfVENIX01JTl0sIFJFUE9SVF9TSVpFXzgsCisrCQkgICAgIFRPVUNIX1JFUE9SVF9ERVND X01JTik7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IGN5dHRzcDVfc3RhcnR1 cChzdHJ1Y3QgY3l0dHNwNSAqdHMpCisreworKwlpbnQgZXJyb3I7CisrCisrCWVycm9yID0gY3l0 dHNwNV9kZWFzc2VydF9pbnQodHMpOworKwlpZiAoZXJyb3IpIHsKKysJCWRldl9lcnIodHMtPmRl diwgIkVycm9yIG9uIGRlYXNzZXJ0IGludCByPSVkXG4iLCBlcnJvcik7CisrCQlyZXR1cm4gLUVO T0RFVjsKKysJfQorKworKwkvKgorKwkgKiBMYXVuY2ggdGhlIGFwcGxpY2F0aW9uIGFzIHRoZSBk ZXZpY2Ugc3RhcnRzIGluIGJvb3Rsb2FkZXIgbW9kZQorKwkgKiBiZWNhdXNlIG9mIGEgcG93ZXIt b24tcmVzZXQKKysJICovCisrCWVycm9yID0gY3l0dHNwNV9oaWRfb3V0cHV0X2JsX2xhdW5jaF9h cHAodHMpOworKwlpZiAoZXJyb3IgPCAwKSB7CisrCQlkZXZfZXJyKHRzLT5kZXYsICJFcnJvciBv biBsYXVuY2ggYXBwIHI9JWRcbiIsIGVycm9yKTsKKysJCXJldHVybiBlcnJvcjsKKysJfQorKwor KwllcnJvciA9IGN5dHRzcDVfZ2V0X2hpZF9kZXNjcmlwdG9yKHRzLCAmdHMtPmhpZF9kZXNjKTsK KysJaWYgKGVycm9yIDwgMCkgeworKwkJZGV2X2Vycih0cy0+ZGV2LCAiRXJyb3Igb24gZ2V0dGlu ZyBISUQgZGVzY3JpcHRvciByPSVkXG4iLCBlcnJvcik7CisrCQlyZXR1cm4gZXJyb3I7CisrCX0K KysKKysJZXJyb3IgPSBjeXR0c3A1X2ZpbGxfYWxsX3RvdWNoKHRzKTsKKysJaWYgKGVycm9yIDwg MCkgeworKwkJZGV2X2Vycih0cy0+ZGV2LCAiRXJyb3Igb24gcmVwb3J0IGRlc2NyaXB0b3Igcj0l ZFxuIiwgZXJyb3IpOworKwkJcmV0dXJuIGVycm9yOworKwl9CisrCisrCWVycm9yID0gY3l0dHNw NV9oaWRfb3V0cHV0X2dldF9zeXNpbmZvKHRzKTsKKysJaWYgKGVycm9yKSB7CisrCQlkZXZfZXJy KHRzLT5kZXYsICJFcnJvciBvbiBnZXR0aW5nIHN5c2luZm8gcj0lZFxuIiwgZXJyb3IpOworKwkJ cmV0dXJuIGVycm9yOworKwl9CisrCisrCXJldHVybiBlcnJvcjsKKyt9CisrCisrc3RhdGljIHZv aWQgY3l0dHNwNV9jbGVhbnVwKHZvaWQgKmRhdGEpCisreworKwlzdHJ1Y3QgY3l0dHNwNSAqdHMg PSBkYXRhOworKworKwlyZWd1bGF0b3JfZGlzYWJsZSh0cy0+dmRkKTsKKyt9CisrCisrc3RhdGlj IGludCBjeXR0c3A1X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJlZ21hcCAqcmVn bWFwLCBpbnQgaXJxLAorKwkJCSBjb25zdCBjaGFyICpuYW1lKQorK3sKKysJc3RydWN0IGN5dHRz cDUgKnRzOworKwlzdHJ1Y3QgY3l0dHNwNV9zeXNpbmZvICpzaTsKKysJaW50IGVycm9yLCBpOwor KworKwl0cyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqdHMpLCBHRlBfS0VSTkVMKTsKKysJ aWYgKCF0cykKKysJCXJldHVybiAtRU5PTUVNOworKworKwkvKiBJbml0aWFsaXplIGRldmljZSBp bmZvICovCisrCXRzLT5yZWdtYXAgPSByZWdtYXA7CisrCXRzLT5kZXYgPSBkZXY7CisrCXNpID0g JnRzLT5zeXNpbmZvOworKwlkZXZfc2V0X2RydmRhdGEoZGV2LCB0cyk7CisrCisrCWluaXRfY29t cGxldGlvbigmdHMtPmNtZF9kb25lKTsKKysKKysJLyogUG93ZXIgdXAgdGhlIGRldmljZSAqLwor Kwl0cy0+dmRkID0gZGV2bV9yZWd1bGF0b3JfZ2V0KGRldiwgInZkZCIpOworKwlpZiAoSVNfRVJS KHRzLT52ZGQpKSB7CisrCQllcnJvciA9IFBUUl9FUlIodHMtPnZkZCk7CisrCQlyZXR1cm4gZXJy b3I7CisrCX0KKysKKysJZXJyb3IgPSBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoZGV2LCBjeXR0 c3A1X2NsZWFudXAsIHRzKTsKKysJaWYgKGVycm9yKSB7CisrCQlyZXR1cm4gZXJyb3I7CisrCX0K KysKKysJZXJyb3IgPSByZWd1bGF0b3JfZW5hYmxlKHRzLT52ZGQpOworKwlpZiAoZXJyb3IpIHsK KysJCXJldHVybiBlcnJvcjsKKysJfQorKworKwl0cy0+aW5wdXQgPSBkZXZtX2lucHV0X2FsbG9j YXRlX2RldmljZShkZXYpOworKwlpZiAoIXRzLT5pbnB1dCkgeworKwkJZGV2X2VycihkZXYsICJF cnJvciwgZmFpbGVkIHRvIGFsbG9jYXRlIGlucHV0IGRldmljZVxuIik7CisrCQlyZXR1cm4gLUVO T0RFVjsKKysJfQorKworKwl0cy0+aW5wdXQtPm5hbWUgPSAiY3l0dHNwNSI7CisrCXNjbnByaW50 Zih0cy0+cGh5cywgc2l6ZW9mKHRzLT5waHlzKSwgIiVzL2lucHV0MCIsIGRldl9uYW1lKGRldikp OworKwl0cy0+aW5wdXQtPnBoeXMgPSB0cy0+cGh5czsKKysJaW5wdXRfc2V0X2RydmRhdGEodHMt PmlucHV0LCB0cyk7CisrCisrCS8qIFJlc2V0IHRoZSBncGlvIHRvIGJlIGluIGEgcmVzZXQgc3Rh dGUgKi8KKysJdHMtPnJlc2V0X2dwaW8gPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbChkZXYsICJy ZXNldCIsIEdQSU9EX09VVF9ISUdIKTsKKysJaWYgKElTX0VSUih0cy0+cmVzZXRfZ3BpbykpIHsK KysJCWVycm9yID0gUFRSX0VSUih0cy0+cmVzZXRfZ3Bpbyk7CisrCQlkZXZfZXJyKGRldiwgIkZh aWxlZCB0byByZXF1ZXN0IHJlc2V0IGdwaW8sIGVycm9yICVkXG4iLCBlcnJvcik7CisrCQlyZXR1 cm4gZXJyb3I7CisrCX0KKysJZ3Bpb2Rfc2V0X3ZhbHVlKHRzLT5yZXNldF9ncGlvLCAwKTsKKysK KysJLyogTmVlZCBhIGRlbGF5IHRvIGhhdmUgZGV2aWNlIHVwICovCisrCW1zbGVlcCgyMCk7Cisr CisrCWVycm9yID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycShkZXYsIGlycSwgTlVMTCwgY3l0 dHNwNV9oYW5kbGVfaXJxLAorKwkJCQkgICAgICAgSVJRRl9PTkVTSE9ULCBuYW1lLCB0cyk7Cisr CWlmIChlcnJvcikgeworKwkJZGV2X2VycihkZXYsICJ1bmFibGUgdG8gcmVxdWVzdCBJUlFcbiIp OworKwkJcmV0dXJuIGVycm9yOworKwl9CisrCisrCWVycm9yID0gY3l0dHNwNV9zdGFydHVwKHRz KTsKKysJaWYgKGVycm9yKSB7CisrCQlkZXZfZXJyKHRzLT5kZXYsICJGYWlsIGluaXRpYWwgc3Rh cnR1cCByPSVkXG4iLCBlcnJvcik7CisrCQlyZXR1cm4gZXJyb3I7CisrCX0KKysKKysJZXJyb3Ig PSBjeXR0c3A1X3BhcnNlX2R0X2tleV9jb2RlKGRldik7CisrCWlmIChlcnJvciA8IDApIHsKKysJ CWRldl9lcnIodHMtPmRldiwgIkVycm9yIHdoaWxlIHBhcnNpbmcgZHRzICVkXG4iLCBlcnJvcik7 CisrCQlyZXR1cm4gZXJyb3I7CisrCX0KKysKKysJdG91Y2hzY3JlZW5fcGFyc2VfcHJvcGVydGll cyh0cy0+aW5wdXQsIHRydWUsICZ0cy0+cHJvcCk7CisrCisrCV9fc2V0X2JpdChFVl9LRVksIHRz LT5pbnB1dC0+ZXZiaXQpOworKwlmb3IgKGkgPSAwOyBpIDwgc2ktPm51bV9idG5zOyBpKyspCisr CQlfX3NldF9iaXQoc2ktPmtleV9jb2RlW2ldLCB0cy0+aW5wdXQtPmtleWJpdCk7CisrCisrCXJl dHVybiBjeXR0c3A1X3NldHVwX2lucHV0X2RldmljZShkZXYpOworK30KKysKKytzdGF0aWMgaW50 IGN5dHRzcDVfaTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCisrCQkJICAgICBj b25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCisreworKwlzdHJ1Y3QgcmVnbWFwICpyZWdt YXA7CisrCXN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBjb25maWcgPSB7CisrCQku cmVnX2JpdHMgPSA4LAorKwkJLnZhbF9iaXRzID0gOCwKKysJfTsKKysKKysJcmVnbWFwID0gZGV2 bV9yZWdtYXBfaW5pdF9pMmMoY2xpZW50LCAmY29uZmlnKTsKKysJaWYgKElTX0VSUihyZWdtYXAp KSB7CisrCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgInJlZ21hcCBhbGxvY2F0aW9uIGZhaWxlZDog JWxkXG4iLAorKwkJCVBUUl9FUlIocmVnbWFwKSk7CisrCQlyZXR1cm4gUFRSX0VSUihyZWdtYXAp OworKwl9CisrCisrCXJldHVybiBjeXR0c3A1X3Byb2JlKCZjbGllbnQtPmRldiwgcmVnbWFwLCBj bGllbnQtPmlycSwgY2xpZW50LT5uYW1lKTsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBv Zl9kZXZpY2VfaWQgY3l0dHNwNV9vZl9tYXRjaFtdID0geworKwl7IC5jb21wYXRpYmxlID0gImN5 cHJlc3MsdHQyMTAwMCIsIH0sCisrCXsgfQorK307CisrTU9EVUxFX0RFVklDRV9UQUJMRShvZiwg Y3l0dHNwNV9vZl9tYXRjaCk7CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lk IGN5dHRzcDVfaTJjX2lkW10gPSB7CisrCXsgQ1lUVFNQNV9OQU1FLCAwLCB9LAorKwl7IH0KKyt9 OworK01PRFVMRV9ERVZJQ0VfVEFCTEUoaTJjLCBjeXR0c3A1X2kyY19pZCk7CisrCisrc3RhdGlj IHN0cnVjdCBpMmNfZHJpdmVyIGN5dHRzcDVfaTJjX2RyaXZlciA9IHsKKysJLmRyaXZlciA9IHsK KysJCS5uYW1lID0gQ1lUVFNQNV9OQU1FLAorKwkJLm9mX21hdGNoX3RhYmxlID0gY3l0dHNwNV9v Zl9tYXRjaCwKKysJfSwKKysJLnByb2JlID0gY3l0dHNwNV9pMmNfcHJvYmUsCisrCS5pZF90YWJs ZSA9IGN5dHRzcDVfaTJjX2lkLAorK307CisrbW9kdWxlX2kyY19kcml2ZXIoY3l0dHNwNV9pMmNf ZHJpdmVyKTsKKysKKytNT0RVTEVfTElDRU5TRSgiR1BMIik7CisrTU9EVUxFX0RFU0NSSVBUSU9O KCJUb3VjaHNjcmVlbiBkcml2ZXIgZm9yIEN5cHJlc3MgVHJ1ZVRvdWNoIEdlbiA1IFByb2R1Y3Qi KTsKKytNT0RVTEVfQVVUSE9SKCJNeWzDqG5lIEpvc3NlcmFuZCA8bXlsZW5lLmpvc3NlcmFuZEBi b290bGluLmNvbT4iKTsKKy0tIAorR2l0TGFiCisKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9w YXRjaGVzL2xpbnV4LWxpYnJlLWFybTY0LXBpbmVub3RlLXRvdWNoc2NyZWVuLTIucGF0Y2ggYi9n bnUvcGFja2FnZXMvcGF0Y2hlcy9saW51eC1saWJyZS1hcm02NC1waW5lbm90ZS10b3VjaHNjcmVl bi0yLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjljY2VmOTJh ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9nbnUvcGFja2FnZXMvcGF0Y2hlcy9saW51eC1saWJyZS1h cm02NC1waW5lbm90ZS10b3VjaHNjcmVlbi0yLnBhdGNoCkBAIC0wLDAgKzEsMTA4IEBACitGcm9t IGQ2YmI4YTZiNWE1MjEwZmVhNzBiYzU5MDM1MGJmY2EzYTllM2E3YTIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBQZXRlciBHZWlzIDxwZ3dpcGVvdXRAZ21haWwuY29tPgorRGF0ZTog U2F0LCAxNSBKYW4gMjAyMiAyMTo1MDo0NSAtMDUwMAorU3ViamVjdDogW1BBVENIXSBJbnB1dDog Y3l0dHNwNTogc3VwcG9ydCB0b3VjaHNjcmVlbiBkZXZpY2UgdHJlZSBvdmVycmlkZXMKKworSXQg aXMgcG9zc2libGUgZm9yIHRoZSBjeXR0c3A1IGNoaXAgdG8gbm90IGhhdmUgYSBjb25maWd1cmF0 aW9uIGJ1cm5lZAordG8gaXQuCitUaGlzIGxlYWRzIHRvIGEgc2l0YXR1aW9uIHdoZXJlIGFsbCBj YWxpYnJhdGlvbiB2YWx1ZXMgcmV0dXJuIHplcm8sCitsZWFkaW5nIHRvIGEgYnJva2VuIHRvdWNo c2NyZWVuIGNvbmZpZ3VyYXRpb24uCisKK1RoZSBjdXJyZW50IGRyaXZlciBkb2VzIG5vdCBzdXBw b3J0IHV0aWxpemluZyBvdmVycmlkZXMgZnJvbSB0aGUgZGV2aWNlCit0cmVlLgorRXh0ZW5kIHRo ZSBkcml2ZXIgdG8gc3VwcG9ydCB0aGlzLCBhbmQgcGVybWl0IGl0IHRvIGRvIHNvbWUgYmFzaWMg c2FuaXR5CitjaGVja2luZyBvZiB0aGUgdmFsdWVzIGZvciB0aGUgdG91Y2hzY3JlZW4gYW5kIGFi b3J0IGlmIHRoZXkgYXJlCitpbnZhbGlkLgorCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBHZWlzIDxw Z3dpcGVvdXRAZ21haWwuY29tPgorLS0tCisgZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9jeXR0 c3A1LmMgfCA2MiArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQorIDEgZmlsZSBjaGFuZ2Vk LCA1NyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZHJpdmVy cy9pbnB1dC90b3VjaHNjcmVlbi9jeXR0c3A1LmMgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVu L2N5dHRzcDUuYworaW5kZXggM2FjNDUxMDgwOTBjLi5lODM3OTg1ZDE5OWEgMTAwNjQ0CistLS0g YS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL2N5dHRzcDUuYworKysrIGIvZHJpdmVycy9pbnB1 dC90b3VjaHNjcmVlbi9jeXR0c3A1LmMKK0BAIC01MDcsMTUgKzUwNyw2NiBAQCBzdGF0aWMgaW50 IGN5dHRzcDVfZ2V0X3N5c2luZm9fcmVncyhzdHJ1Y3QgY3l0dHNwNSAqdHMpCisgCXN0cnVjdCBj eXR0c3A1X3NlbnNpbmdfY29uZl9kYXRhX2RldiAqc2NkX2RldiA9CisgCQkoc3RydWN0IGN5dHRz cDVfc2Vuc2luZ19jb25mX2RhdGFfZGV2ICopCisgCQkmdHMtPnJlc3BvbnNlX2J1ZltISURfU1lT SU5GT19TRU5TSU5HX09GRlNFVF07CisrCXUzMiB0bXA7CisgCisgCWN5dHRzcDVfc2lfZ2V0X2J0 bl9kYXRhKHRzKTsKKyAKKyAJc2NkLT5tYXhfdGNoID0gc2NkX2Rldi0+bWF4X251bV9vZl90Y2hf cGVyX3JlZnJlc2hfY3ljbGU7CistCXNjZC0+cmVzX3ggPSBnZXRfdW5hbGlnbmVkX2xlMTYoJnNj ZF9kZXYtPnJlc194KTsKKy0Jc2NkLT5yZXNfeSA9IGdldF91bmFsaWduZWRfbGUxNigmc2NkX2Rl di0+cmVzX3kpOworLQlzY2QtPm1heF96ID0gZ2V0X3VuYWxpZ25lZF9sZTE2KCZzY2RfZGV2LT5t YXhfeik7CistCXNjZC0+bGVuX3ggPSBnZXRfdW5hbGlnbmVkX2xlMTYoJnNjZF9kZXYtPmxlbl94 KTsKKy0Jc2NkLT5sZW5feSA9IGdldF91bmFsaWduZWRfbGUxNigmc2NkX2Rldi0+bGVuX3kpOwor KworKwlpZiAoc2NkLT5tYXhfdGNoID09IDApIHsKKysJCWRldl9kYmcodHMtPmRldiwgIk1heCB0 b3VjaCBwb2ludHMgY2Fubm90IGJlIHplcm9cbiIpOworKwkJc2NkLT5tYXhfdGNoID0gMjsKKysJ fQorKworKwlpZihkZXZpY2VfcHJvcGVydHlfcmVhZF91MzIodHMtPmRldiwgInRvdWNoc2NyZWVu LXNpemUteCIsICZ0bXApKQorKwkJc2NkLT5yZXNfeCA9IGdldF91bmFsaWduZWRfbGUxNigmc2Nk X2Rldi0+cmVzX3gpOworKwllbHNlCisrCQlzY2QtPnJlc194ID0gdG1wOworKworKwlpZiAoc2Nk LT5yZXNfeCA9PSAwKSB7CisrCQlkZXZfZXJyKHRzLT5kZXYsICJBQlNfWCBjYW5ub3QgYmUgemVy b1xuIik7CisrCQlyZXR1cm4gLUVOT0RBVEE7CisrCX0KKysKKysJaWYoZGV2aWNlX3Byb3BlcnR5 X3JlYWRfdTMyKHRzLT5kZXYsICJ0b3VjaHNjcmVlbi1zaXplLXkiLCAmdG1wKSkKKysJCXNjZC0+ cmVzX3kgPSBnZXRfdW5hbGlnbmVkX2xlMTYoJnNjZF9kZXYtPnJlc195KTsKKysJZWxzZQorKwkJ c2NkLT5yZXNfeSA9IHRtcDsKKysKKysJaWYgKHNjZC0+cmVzX3kgPT0gMCkgeworKwkJZGV2X2Vy cih0cy0+ZGV2LCAiQUJTX1kgY2Fubm90IGJlIHplcm9cbiIpOworKwkJcmV0dXJuIC1FTk9EQVRB OworKwl9CisrCisrCWlmKGRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMih0cy0+ZGV2LCAidG91Y2hz Y3JlZW4tbWF4LXByZXNzdXJlIiwgJnRtcCkpCisrCQlzY2QtPm1heF96ID0gZ2V0X3VuYWxpZ25l ZF9sZTE2KCZzY2RfZGV2LT5tYXhfeik7CisrCWVsc2UKKysJCXNjZC0+bWF4X3ogPSB0bXA7Cisr CisrCWlmIChzY2QtPm1heF96ID09IDApIHsKKysJCWRldl9lcnIodHMtPmRldiwgIkFCU19QUkVT U1VSRSBjYW5ub3QgYmUgemVyb1xuIik7CisrCQlyZXR1cm4gLUVOT0RBVEE7CisrCX0KKysKKysJ aWYoZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyKHRzLT5kZXYsICJ0b3VjaHNjcmVlbi14LW1tIiwg JnRtcCkpCisrCQlzY2QtPmxlbl94ID0gZ2V0X3VuYWxpZ25lZF9sZTE2KCZzY2RfZGV2LT5sZW5f eCk7CisrCWVsc2UKKysJCXNjZC0+bGVuX3ggPSB0bXA7CisrCisrCWlmIChzY2QtPmxlbl94ID09 IDApIHsKKysJCWRldl9kYmcodHMtPmRldiwgIlRvdWNoc2NyZWVuIHNpemUgeCBjYW5ub3QgYmUg emVyb1xuIik7CisrCQlzY2QtPmxlbl94ID0gc2NkLT5yZXNfeCArIDE7CisrCX0KKysKKysJaWYo ZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyKHRzLT5kZXYsICJ0b3VjaHNjcmVlbi15LW1tIiwgJnRt cCkpCisrCQlzY2QtPmxlbl95ID0gZ2V0X3VuYWxpZ25lZF9sZTE2KCZzY2RfZGV2LT5sZW5feSk7 CisrCWVsc2UKKysJCXNjZC0+bGVuX3kgPSB0bXA7CisrCisrCWlmIChzY2QtPmxlbl95ID09IDAp IHsKKysJCWRldl9kYmcodHMtPmRldiwgIlRvdWNoc2NyZWVuIHNpemUgeSBjYW5ub3QgYmUgemVy b1xuIik7CisrCQlzY2QtPmxlbl95ID0gc2NkLT5yZXNfeSArIDE7CisrCX0KKyAKKyAJcmV0dXJu IDA7CisgfQorQEAgLTg3Nyw2ICs5MjgsNyBAQCBzdGF0aWMgaW50IGN5dHRzcDVfaTJjX3Byb2Jl KHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCisgCisgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9k ZXZpY2VfaWQgY3l0dHNwNV9vZl9tYXRjaFtdID0geworIAl7IC5jb21wYXRpYmxlID0gImN5cHJl c3MsdHQyMTAwMCIsIH0sCisrCXsgLmNvbXBhdGlibGUgPSAiY3lwcmVzcyx0bWE0NDgiLCB9LAor IAl7IH0KKyB9OworIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGN5dHRzcDVfb2ZfbWF0Y2gpOwor LS0gCitHaXRMYWIKKwpkaWZmIC0tZ2l0IGEvZ251L3BhY2thZ2VzL3BhdGNoZXMvbGludXgtbGli cmUtYXJtNjQtcm9ja2NoaXAtYWRkLWhkbWktc291bmQucGF0Y2ggYi9nbnUvcGFja2FnZXMvcGF0 Y2hlcy9saW51eC1saWJyZS1hcm02NC1yb2NrY2hpcC1hZGQtaGRtaS1zb3VuZC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44NDc5YzFlZTExCi0tLSAvZGV2L251 bGwKKysrIGIvZ251L3BhY2thZ2VzL3BhdGNoZXMvbGludXgtbGlicmUtYXJtNjQtcm9ja2NoaXAt YWRkLWhkbWktc291bmQucGF0Y2gKQEAgLTAsMCArMSw0MCBAQAorRnJvbSA0MWIyMjRiOTI3YmU0 MWFjYjE5YjFhZjg2OTM5NGE2MmJjNjg2YjkyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogRGFuIEpvaGFuc2VuIDxzdHJpdEBtYW5qYXJvLm9yZz4KK0RhdGU6IEZyaSwgMTAgSnVuIDIw MjIgMTY6MTM6MjMgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxLzJdIGFybTY0OiBkdHM6IHJvY2tj aGlwOiBBZGQgSERNSSBzb3VuZCBub2RlIHRvIFF1YXJ0ejY0LUIKKworU2lnbmVkLW9mZi1ieTog RGFuIEpvaGFuc2VuIDxzdHJpdEBtYW5qYXJvLm9yZz4KKy0tLQorIGFyY2gvYXJtNjQvYm9vdC9k dHMvcm9ja2NoaXAvcmszNTY2LXF1YXJ0ejY0LWIuZHRzIHwgOCArKysrKysrKworIDEgZmlsZSBj aGFuZ2VkLCA4IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9k dHMvcm9ja2NoaXAvcmszNTY2LXF1YXJ0ejY0LWIuZHRzIGIvYXJjaC9hcm02NC9ib290L2R0cy9y b2NrY2hpcC9yazM1NjYtcXVhcnR6NjQtYi5kdHMKK2luZGV4IDhkMDVkOGE0NDY5OS4uZjdhNzA0 NzBhOTBlIDEwMDY0NAorLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9yazM1NjYt cXVhcnR6NjQtYi5kdHMKKysrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvcm9ja2NoaXAvcmszNTY2 LXF1YXJ0ejY0LWIuZHRzCitAQCAtMjAzLDYgKzIwMywxMCBAQCBoZG1pX291dF9jb246IGVuZHBv aW50IHsKKyAJfTsKKyB9OworIAorKyZoZG1pX3NvdW5kIHsKKysJc3RhdHVzID0gIm9rYXkiOwor K307CisrCisgJmkyYzAgeworIAlzdGF0dXMgPSAib2theSI7CisgCitAQCAtNDc4LDYgKzQ4Miwx MCBAQCAmaTJjNSB7CisgCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisgfTsKKyAKKysmaTJzMF84Y2gg eworKwlzdGF0dXMgPSAib2theSI7CisrfTsKKysKKyAmbWRpbzEgeworIAlyZ21paV9waHkxOiBl dGhlcm5ldC1waHlAMSB7CisgCQljb21wYXRpYmxlID0gImV0aGVybmV0LXBoeS1pZWVlODAyLjMt YzIyIjsKKy0tIAorMi4zNi4xCisKKwotLSAKMi4zNi4xCgo= --b1_wLGjj3TpgmpXpbjXmCC5gK7zkHGQD3edHaBk1xUww--