From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D028ECCFA04 for ; Tue, 4 Nov 2025 10:43:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=YUiTBlQEcWQxLDCApdEg938XOxOSC+umOpFrxNprhN8=; b=UIsePocgaDyq+w zRtFpfmR5+N3p7bcDXF+IHc/X5SR0cvYUc6DF04Xo+0NYhR15ZJc2Vo8bu9q0lRRMesKYtKcAom6H hmPBTDSei12azSjcN23g6HQ4FMIQaiw6GYVhJhQ1NDZ7z98tefYVTPAjLqVls7EbAEtQx/klgx60I QI5I0OitlyrwqObK/9O9gt5J3XivPOTEV+p6zYNhQ7yHoxbj3TcP0rS0UQiK/w/p43aVjsHtwlsM9 sUlFE3TKbiShntKu14GJJIopBHHRjbVUGX6r3jSajHaG4QK9iX/mZnj50q/RBKljXlCs29DoFO689 BXP9tnNlq2sYivs3Le7w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vGEVn-0000000BdO4-1NtY; Tue, 04 Nov 2025 10:43:39 +0000 Received: from gloria.sntech.de ([185.11.138.130]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vGEVk-0000000BdMY-0R5y; Tue, 04 Nov 2025 10:43:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sntech.de; s=gloria202408; h=Content-Type:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Reply-To; bh=NPr5PM9Tq20IPqTjYDds8eM1A/B5CK6SotofCUZn9ik=; b=gZKYfj/MlqZ4RVwK7M0D2fojSy mZgcZjXsKR9A5kztK5L1JR5F8VStKSokQ6q+diYF0m2/V0ljfVCPi3RU95g8aOZqkCUGMk2NAjBjW QuHFotAKUj3Dmhk3s9iqM2jXrImdbbqfYHOPgah4EmZu4yoZOzLEQ6iSpRF+4oIKtbJ/4lh7ZqgOs 0EsU7nmN3zpgWr7ZnyxR2c+3JgmjHM3xiVqyO327E6VBuSiOuvqNHH3lcHElgRqjsBsfaEpOfZSLR huRDuD2iNmzERerkho4/7pva/5G1AaOvwvxaQSIt5/qvYrT8drOl5adduDmuWySb8faFWQy+p7/GE j5cGLA3Q==; Received: from i53875aae.versanet.de ([83.135.90.174] helo=diego.localnet) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vGEVh-00040r-PL; Tue, 04 Nov 2025 11:43:33 +0100 From: Heiko =?UTF-8?B?U3TDvGJuZXI=?= To: Ye Zhang , Linus Walleij , Ye Zhang Cc: Rob Herring , Krzysztof Kozlowski , Conor Dooley , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, tao.huang@rock-chips.com Subject: Re: [PATCH v1 2/3] pinctrl: rockchip: Add rk3506 pinctrl support Date: Tue, 04 Nov 2025 11:43:32 +0100 Message-ID: <1797465.QkHrqEjB74@diego> In-Reply-To: <20251104021223.2375116-3-ye.zhang@rock-chips.com> References: <20251104021223.2375116-1-ye.zhang@rock-chips.com> <20251104021223.2375116-3-ye.zhang@rock-chips.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251104_024336_431698_06F6F019 X-CRM114-Status: GOOD ( 28.19 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org QW0gRGllbnN0YWcsIDQuIE5vdmVtYmVyIDIwMjUsIDAzOjEyOjIyIE1pdHRlbGV1cm9ww6Rpc2No ZSBOb3JtYWx6ZWl0IHNjaHJpZWIgWWUgWmhhbmc6Cj4gQWRkIHN1cHBvcnQgZm9yIHRoZSA1IHJr MzUwNiBHUElPIGJhbmtzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFllIFpoYW5nIDx5ZS56aGFuZ0By b2NrLWNoaXBzLmNvbT4KClJldmlld2VkLWJ5OiBIZWlrbyBTdHVlYm5lciA8aGVpa29Ac250ZWNo LmRlPgoKPiAtLS0KPiAgZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtcm9ja2NoaXAuYyB8IDQ0MiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICBkcml2ZXJzL3BpbmN0cmwvcGluY3RybC1y b2NrY2hpcC5oIHwgICA0ICsKPiAgMiBmaWxlcyBjaGFuZ2VkLCA0MzggaW5zZXJ0aW9ucygrKSwg OCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwt cm9ja2NoaXAuYyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXJvY2tjaGlwLmMKPiBpbmRleCA3 YTY4YTYyMzc2NDkuLmU0NGVmMjYyYmVlYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BpbmN0cmwv cGluY3RybC1yb2NrY2hpcC5jCj4gKysrIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtcm9ja2No aXAuYwo+IEBAIC0xMDUsNiArMTA1LDI5IEBACj4gIAkJLnB1bGxfdHlwZVszXSA9IHB1bGwzLAkJ CQkJXAo+ICAJfQo+ICAKPiArI2RlZmluZSBQSU5fQkFOS19JT01VWF9GTEFHU19PRkZTRVRfRFJW X0ZMQUdTKGlkLCBwaW5zLCBsYWJlbCwgaW9tMCwJXAo+ICsJCQkJCSAgICAgICBpb20xLCBpb20y LCBpb20zLAlcCj4gKwkJCQkJICAgICAgIG9mZnNldDAsIG9mZnNldDEsCVwKPiArCQkJCQkgICAg ICAgb2Zmc2V0Miwgb2Zmc2V0MywgZHJ2MCwJXAo+ICsJCQkJCSAgICAgICBkcnYxLCBkcnYyLCBk cnYzKQlcCj4gKwl7CQkJCQkJCQlcCj4gKwkJLmJhbmtfbnVtCT0gaWQsCQkJCQlcCj4gKwkJLm5y X3BpbnMJPSBwaW5zLAkJCQkJXAo+ICsJCS5uYW1lCQk9IGxhYmVsLAkJCQlcCj4gKwkJLmlvbXV4 CQk9IHsJCQkJCVwKPiArCQkJeyAudHlwZSA9IGlvbTAsIC5vZmZzZXQgPSBvZmZzZXQwIH0sCQlc Cj4gKwkJCXsgLnR5cGUgPSBpb20xLCAub2Zmc2V0ID0gb2Zmc2V0MSB9LAkJXAo+ICsJCQl7IC50 eXBlID0gaW9tMiwgLm9mZnNldCA9IG9mZnNldDIgfSwJCVwKPiArCQkJeyAudHlwZSA9IGlvbTMs IC5vZmZzZXQgPSBvZmZzZXQzIH0sCQlcCj4gKwkJfSwJCQkJCQkJXAo+ICsJCS5kcnYJCT0gewkJ CQkJXAo+ICsJCQl7IC5kcnZfdHlwZSA9IGRydjAsIC5vZmZzZXQgPSAtMSB9LAkJXAo+ICsJCQl7 IC5kcnZfdHlwZSA9IGRydjEsIC5vZmZzZXQgPSAtMSB9LAkJXAo+ICsJCQl7IC5kcnZfdHlwZSA9 IGRydjIsIC5vZmZzZXQgPSAtMSB9LAkJXAo+ICsJCQl7IC5kcnZfdHlwZSA9IGRydjMsIC5vZmZz ZXQgPSAtMSB9LAkJXAo+ICsJCX0sCQkJCQkJCVwKPiArCX0KPiArCj4gICNkZWZpbmUgUElOX0JB TktfRFJWX0ZMQUdTKGlkLCBwaW5zLCBsYWJlbCwgdHlwZTAsIHR5cGUxLCB0eXBlMiwgdHlwZTMp IFwKPiAgCXsJCQkJCQkJCVwKPiAgCQkuYmFua19udW0JPSBpZCwJCQkJCVwKPiBAQCAtMjMzLDYg KzI1NiwzNSBAQAo+ICAJCS5wdWxsX3R5cGVbM10gPSBwdWxsMywJCQkJCVwKPiAgCX0KPiAgCj4g KyNkZWZpbmUgUElOX0JBTktfSU9NVVhfRkxBR1NfT0ZGU0VUX0RSVl9GTEFHU19QVUxMX0ZMQUdT KGlkLCBwaW5zLAlcCj4gKwkJCQkJCWxhYmVsLCBpb20wLCBpb20xLAlcCj4gKwkJCQkJCWlvbTIs IGlvbTMsIG9mZnNldDAsCVwKPiArCQkJCQkJb2Zmc2V0MSwgb2Zmc2V0MiwJXAo+ICsJCQkJCQlv ZmZzZXQzLCBkcnYwLCBkcnYxLAlcCj4gKwkJCQkJCWRydjIsIGRydjMsIHB1bGwwLAlcCj4gKwkJ CQkJCXB1bGwxLCBwdWxsMiwgcHVsbDMpCVwKPiArCXsJCQkJCQkJCVwKPiArCQkuYmFua19udW0J PSBpZCwJCQkJCVwKPiArCQkubnJfcGlucwk9IHBpbnMsCQkJCQlcCj4gKwkJLm5hbWUJCT0gbGFi ZWwsCQkJCVwKPiArCQkuaW9tdXgJCT0gewkJCQkJXAo+ICsJCQl7IC50eXBlID0gaW9tMCwgLm9m ZnNldCA9IG9mZnNldDAgfSwJCVwKPiArCQkJeyAudHlwZSA9IGlvbTEsIC5vZmZzZXQgPSBvZmZz ZXQxIH0sCQlcCj4gKwkJCXsgLnR5cGUgPSBpb20yLCAub2Zmc2V0ID0gb2Zmc2V0MiB9LAkJXAo+ ICsJCQl7IC50eXBlID0gaW9tMywgLm9mZnNldCA9IG9mZnNldDMgfSwJCVwKPiArCQl9LAkJCQkJ CQlcCj4gKwkJLmRydgkJPSB7CQkJCQlcCj4gKwkJCXsgLmRydl90eXBlID0gZHJ2MCwgLm9mZnNl dCA9IC0xIH0sCQlcCj4gKwkJCXsgLmRydl90eXBlID0gZHJ2MSwgLm9mZnNldCA9IC0xIH0sCQlc Cj4gKwkJCXsgLmRydl90eXBlID0gZHJ2MiwgLm9mZnNldCA9IC0xIH0sCQlcCj4gKwkJCXsgLmRy dl90eXBlID0gZHJ2MywgLm9mZnNldCA9IC0xIH0sCQlcCj4gKwkJfSwJCQkJCQkJXAo+ICsJCS5w dWxsX3R5cGVbMF0gPSBwdWxsMCwJCQkJCVwKPiArCQkucHVsbF90eXBlWzFdID0gcHVsbDEsCQkJ CQlcCj4gKwkJLnB1bGxfdHlwZVsyXSA9IHB1bGwyLAkJCQkJXAo+ICsJCS5wdWxsX3R5cGVbM10g PSBwdWxsMywJCQkJCVwKPiArCX0KPiArCj4gICNkZWZpbmUgUElOX0JBTktfTVVYX1JPVVRFX0ZM QUdTKElELCBQSU4sIEZVTkMsIFJFRywgVkFMLCBGTEFHKQkJXAo+ICAJewkJCQkJCQkJXAo+ICAJ CS5iYW5rX251bQk9IElELAkJCQkJXAo+IEBAIC0xMTIwLDYgKzExNzIsMTMgQEAgc3RhdGljIGlu dCByb2NrY2hpcF9nZXRfbXV4KHN0cnVjdCByb2NrY2hpcF9waW5fYmFuayAqYmFuaywgaW50IHBp bikKPiAgCWVsc2UKPiAgCQlyZWdtYXAgPSBpbmZvLT5yZWdtYXBfYmFzZTsKPiAgCj4gKwlpZiAo Y3RybC0+dHlwZSA9PSBSSzM1MDYpIHsKPiArCQlpZiAoYmFuay0+YmFua19udW0gPT0gMSkKPiAr CQkJcmVnbWFwID0gaW5mby0+cmVnbWFwX2lvYzE7Cj4gKwkJZWxzZSBpZiAoYmFuay0+YmFua19u dW0gPT0gNCkKPiArCQkJcmV0dXJuIDA7Cj4gKwl9Cj4gKwo+ICAJLyogZ2V0IGJhc2ljIHF1YWRy dXBlbCBvZiBtdXggcmVnaXN0ZXJzIGFuZCB0aGUgY29ycmVjdCByZWcgaW5zaWRlICovCj4gIAlt dXhfdHlwZSA9IGJhbmstPmlvbXV4W2lvbXV4X251bV0udHlwZTsKPiAgCXJlZyA9IGJhbmstPmlv bXV4W2lvbXV4X251bV0ub2Zmc2V0Owo+IEBAIC0xMjM5LDYgKzEyOTgsMTMgQEAgc3RhdGljIGlu dCByb2NrY2hpcF9zZXRfbXV4KHN0cnVjdCByb2NrY2hpcF9waW5fYmFuayAqYmFuaywgaW50IHBp biwgaW50IG11eCkKPiAgCWVsc2UKPiAgCQlyZWdtYXAgPSBpbmZvLT5yZWdtYXBfYmFzZTsKPiAg Cj4gKwlpZiAoY3RybC0+dHlwZSA9PSBSSzM1MDYpIHsKPiArCQlpZiAoYmFuay0+YmFua19udW0g PT0gMSkKPiArCQkJcmVnbWFwID0gaW5mby0+cmVnbWFwX2lvYzE7Cj4gKwkJZWxzZSBpZiAoYmFu ay0+YmFua19udW0gPT0gNCkKPiArCQkJcmV0dXJuIDA7Cj4gKwl9Cj4gKwo+ICAJLyogZ2V0IGJh c2ljIHF1YWRydXBlbCBvZiBtdXggcmVnaXN0ZXJzIGFuZCB0aGUgY29ycmVjdCByZWcgaW5zaWRl ICovCj4gIAltdXhfdHlwZSA9IGJhbmstPmlvbXV4W2lvbXV4X251bV0udHlwZTsKPiAgCXJlZyA9 IGJhbmstPmlvbXV4W2lvbXV4X251bV0ub2Zmc2V0Owo+IEBAIC0yMDAzLDYgKzIwNjksMjYyIEBA IHN0YXRpYyBpbnQgcmszMzk5X2NhbGNfZHJ2X3JlZ19hbmRfYml0KHN0cnVjdCByb2NrY2hpcF9w aW5fYmFuayAqYmFuaywKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICsjZGVmaW5lIFJLMzUwNl9E UlZfQklUU19QRVJfUElOCQk4Cj4gKyNkZWZpbmUgUkszNTA2X0RSVl9QSU5TX1BFUl9SRUcJCTIK PiArI2RlZmluZSBSSzM1MDZfRFJWX0dQSU8wX0FfT0ZGU0VUCTB4MTAwCj4gKyNkZWZpbmUgUksz NTA2X0RSVl9HUElPMF9EX09GRlNFVAkweDgzMAo+ICsjZGVmaW5lIFJLMzUwNl9EUlZfR1BJTzFf T0ZGU0VUCQkweDE0MAo+ICsjZGVmaW5lIFJLMzUwNl9EUlZfR1BJTzJfT0ZGU0VUCQkweDE4MAo+ ICsjZGVmaW5lIFJLMzUwNl9EUlZfR1BJTzNfT0ZGU0VUCQkweDFjMAo+ICsjZGVmaW5lIFJLMzUw Nl9EUlZfR1BJTzRfT0ZGU0VUCQkweDg0MAo+ICsKPiArc3RhdGljIGludCByazM1MDZfY2FsY19k cnZfcmVnX2FuZF9iaXQoc3RydWN0IHJvY2tjaGlwX3Bpbl9iYW5rICpiYW5rLAo+ICsJCQkJCWlu dCBwaW5fbnVtLCBzdHJ1Y3QgcmVnbWFwICoqcmVnbWFwLAo+ICsJCQkJCWludCAqcmVnLCB1OCAq Yml0KQo+ICt7Cj4gKwlzdHJ1Y3Qgcm9ja2NoaXBfcGluY3RybCAqaW5mbyA9IGJhbmstPmRydmRh dGE7Cj4gKwlpbnQgcmV0ID0gMDsKPiArCj4gKwlzd2l0Y2ggKGJhbmstPmJhbmtfbnVtKSB7Cj4g KwljYXNlIDA6Cj4gKwkJKnJlZ21hcCA9IGluZm8tPnJlZ21hcF9wbXU7Cj4gKwkJaWYgKHBpbl9u dW0gPiAyNCkgewo+ICsJCQlyZXQgPSAtRUlOVkFMOwo+ICsJCX0gZWxzZSBpZiAocGluX251bSA8 IDI0KSB7Cj4gKwkJCSpyZWcgPSBSSzM1MDZfRFJWX0dQSU8wX0FfT0ZGU0VUOwo+ICsJCX0gZWxz ZSB7Cj4gKwkJCSpyZWcgPSBSSzM1MDZfRFJWX0dQSU8wX0RfT0ZGU0VUOwo+ICsJCQkqYml0ID0g MzsKPiArCj4gKwkJCXJldHVybiAwOwo+ICsJCX0KPiArCQlicmVhazsKPiArCj4gKwljYXNlIDE6 Cj4gKwkJKnJlZ21hcCA9IGluZm8tPnJlZ21hcF9pb2MxOwo+ICsJCWlmIChwaW5fbnVtIDwgMjgp Cj4gKwkJCSpyZWcgPSBSSzM1MDZfRFJWX0dQSU8xX09GRlNFVDsKPiArCQllbHNlCj4gKwkJCXJl dCA9IC1FSU5WQUw7Cj4gKwkJYnJlYWs7Cj4gKwo+ICsJY2FzZSAyOgo+ICsJCSpyZWdtYXAgPSBp bmZvLT5yZWdtYXBfYmFzZTsKPiArCQlpZiAocGluX251bSA8IDE3KQo+ICsJCQkqcmVnID0gUksz NTA2X0RSVl9HUElPMl9PRkZTRVQ7Cj4gKwkJZWxzZQo+ICsJCQlyZXQgPSAtRUlOVkFMOwo+ICsJ CWJyZWFrOwo+ICsKPiArCWNhc2UgMzoKPiArCQkqcmVnbWFwID0gaW5mby0+cmVnbWFwX2Jhc2U7 Cj4gKwkJaWYgKHBpbl9udW0gPCAxNSkKPiArCQkJKnJlZyA9IFJLMzUwNl9EUlZfR1BJTzNfT0ZG U0VUOwo+ICsJCWVsc2UKPiArCQkJcmV0ID0gLUVJTlZBTDsKPiArCQlicmVhazsKPiArCj4gKwlj YXNlIDQ6Cj4gKwkJKnJlZ21hcCA9IGluZm8tPnJlZ21hcF9iYXNlOwo+ICsJCWlmIChwaW5fbnVt IDwgOCB8fCBwaW5fbnVtID4gMTEpIHsKPiArCQkJcmV0ID0gLUVJTlZBTDsKPiArCQl9IGVsc2Ug ewo+ICsJCQkqcmVnID0gUkszNTA2X0RSVl9HUElPNF9PRkZTRVQ7Cj4gKwkJCSpiaXQgPSAxMDsK PiArCj4gKwkJCXJldHVybiAwOwo+ICsJCX0KPiArCQlicmVhazsKPiArCj4gKwlkZWZhdWx0Ogo+ ICsJCXJldCA9IC1FSU5WQUw7Cj4gKwkJYnJlYWs7Cj4gKwl9Cj4gKwo+ICsJaWYgKHJldCkgewo+ ICsJCWRldl9lcnIoaW5mby0+ZGV2LCAidW5zdXBwb3J0ZWQgYmFua19udW0gJWQgcGluX251bSAl ZFxuIiwgYmFuay0+YmFua19udW0sIHBpbl9udW0pOwo+ICsKPiArCQlyZXR1cm4gcmV0Owo+ICsJ fQo+ICsKPiArCSpyZWcgKz0gKChwaW5fbnVtIC8gUkszNTA2X0RSVl9QSU5TX1BFUl9SRUcpICog NCk7Cj4gKwkqYml0ID0gcGluX251bSAlIFJLMzUwNl9EUlZfUElOU19QRVJfUkVHOwo+ICsJKmJp dCAqPSBSSzM1MDZfRFJWX0JJVFNfUEVSX1BJTjsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsK PiArI2RlZmluZSBSSzM1MDZfUFVMTF9CSVRTX1BFUl9QSU4JMgo+ICsjZGVmaW5lIFJLMzUwNl9Q VUxMX1BJTlNfUEVSX1JFRwk4Cj4gKyNkZWZpbmUgUkszNTA2X1BVTExfR1BJTzBfQV9PRkZTRVQJ MHgyMDAKPiArI2RlZmluZSBSSzM1MDZfUFVMTF9HUElPMF9EX09GRlNFVAkweDgzMAo+ICsjZGVm aW5lIFJLMzUwNl9QVUxMX0dQSU8xX09GRlNFVAkweDIxMAo+ICsjZGVmaW5lIFJLMzUwNl9QVUxM X0dQSU8yX09GRlNFVAkweDIyMAo+ICsjZGVmaW5lIFJLMzUwNl9QVUxMX0dQSU8zX09GRlNFVAkw eDIzMAo+ICsjZGVmaW5lIFJLMzUwNl9QVUxMX0dQSU80X09GRlNFVAkweDg0MAo+ICsKPiArc3Rh dGljIGludCByazM1MDZfY2FsY19wdWxsX3JlZ19hbmRfYml0KHN0cnVjdCByb2NrY2hpcF9waW5f YmFuayAqYmFuaywKPiArCQkJCQkgaW50IHBpbl9udW0sIHN0cnVjdCByZWdtYXAgKipyZWdtYXAs Cj4gKwkJCQkJIGludCAqcmVnLCB1OCAqYml0KQo+ICt7Cj4gKwlzdHJ1Y3Qgcm9ja2NoaXBfcGlu Y3RybCAqaW5mbyA9IGJhbmstPmRydmRhdGE7Cj4gKwlpbnQgcmV0ID0gMDsKPiArCj4gKwlzd2l0 Y2ggKGJhbmstPmJhbmtfbnVtKSB7Cj4gKwljYXNlIDA6Cj4gKwkJKnJlZ21hcCA9IGluZm8tPnJl Z21hcF9wbXU7Cj4gKwkJaWYgKHBpbl9udW0gPiAyNCkgewo+ICsJCQlyZXQgPSAtRUlOVkFMOwo+ ICsJCX0gZWxzZSBpZiAocGluX251bSA8IDI0KSB7Cj4gKwkJCSpyZWcgPSBSSzM1MDZfUFVMTF9H UElPMF9BX09GRlNFVDsKPiArCQl9IGVsc2Ugewo+ICsJCQkqcmVnID0gUkszNTA2X1BVTExfR1BJ TzBfRF9PRkZTRVQ7Cj4gKwkJCSpiaXQgPSA1Owo+ICsKPiArCQkJcmV0dXJuIDA7Cj4gKwkJfQo+ ICsJCWJyZWFrOwo+ICsKPiArCWNhc2UgMToKPiArCQkqcmVnbWFwID0gaW5mby0+cmVnbWFwX2lv YzE7Cj4gKwkJaWYgKHBpbl9udW0gPCAyOCkKPiArCQkJKnJlZyA9IFJLMzUwNl9QVUxMX0dQSU8x X09GRlNFVDsKPiArCQllbHNlCj4gKwkJCXJldCA9IC1FSU5WQUw7Cj4gKwkJYnJlYWs7Cj4gKwo+ ICsJY2FzZSAyOgo+ICsJCSpyZWdtYXAgPSBpbmZvLT5yZWdtYXBfYmFzZTsKPiArCQlpZiAocGlu X251bSA8IDE3KQo+ICsJCQkqcmVnID0gUkszNTA2X1BVTExfR1BJTzJfT0ZGU0VUOwo+ICsJCWVs c2UKPiArCQkJcmV0ID0gLUVJTlZBTDsKPiArCQlicmVhazsKPiArCj4gKwljYXNlIDM6Cj4gKwkJ KnJlZ21hcCA9IGluZm8tPnJlZ21hcF9iYXNlOwo+ICsJCWlmIChwaW5fbnVtIDwgMTUpCj4gKwkJ CSpyZWcgPSBSSzM1MDZfUFVMTF9HUElPM19PRkZTRVQ7Cj4gKwkJZWxzZQo+ICsJCQlyZXQgPSAt RUlOVkFMOwo+ICsJCWJyZWFrOwo+ICsKPiArCWNhc2UgNDoKPiArCQkqcmVnbWFwID0gaW5mby0+ cmVnbWFwX2Jhc2U7Cj4gKwkJaWYgKHBpbl9udW0gPCA4IHx8IHBpbl9udW0gPiAxMSkgewo+ICsJ CQlyZXQgPSAtRUlOVkFMOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCSpyZWcgPSBSSzM1MDZfUFVMTF9H UElPNF9PRkZTRVQ7Cj4gKwkJCSpiaXQgPSAxMzsKPiArCj4gKwkJCXJldHVybiAwOwo+ICsJCX0K PiArCQlicmVhazsKPiArCj4gKwlkZWZhdWx0Ogo+ICsJCXJldCA9IC1FSU5WQUw7Cj4gKwkJYnJl YWs7Cj4gKwl9Cj4gKwo+ICsJaWYgKHJldCkgewo+ICsJCWRldl9lcnIoaW5mby0+ZGV2LCAidW5z dXBwb3J0ZWQgYmFua19udW0gJWQgcGluX251bSAlZFxuIiwgYmFuay0+YmFua19udW0sIHBpbl9u dW0pOwo+ICsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCSpyZWcgKz0gKChwaW5fbnVt IC8gUkszNTA2X1BVTExfUElOU19QRVJfUkVHKSAqIDQpOwo+ICsJKmJpdCA9IHBpbl9udW0gJSBS SzM1MDZfUFVMTF9QSU5TX1BFUl9SRUc7Cj4gKwkqYml0ICo9IFJLMzUwNl9QVUxMX0JJVFNfUEVS X1BJTjsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArI2RlZmluZSBSSzM1MDZfU01UX0JJ VFNfUEVSX1BJTgkJMQo+ICsjZGVmaW5lIFJLMzUwNl9TTVRfUElOU19QRVJfUkVHCQk4Cj4gKyNk ZWZpbmUgUkszNTA2X1NNVF9HUElPMF9BX09GRlNFVAkweDQwMAo+ICsjZGVmaW5lIFJLMzUwNl9T TVRfR1BJTzBfRF9PRkZTRVQJMHg4MzAKPiArI2RlZmluZSBSSzM1MDZfU01UX0dQSU8xX09GRlNF VAkJMHg0MTAKPiArI2RlZmluZSBSSzM1MDZfU01UX0dQSU8yX09GRlNFVAkJMHg0MjAKPiArI2Rl ZmluZSBSSzM1MDZfU01UX0dQSU8zX09GRlNFVAkJMHg0MzAKPiArI2RlZmluZSBSSzM1MDZfU01U X0dQSU80X09GRlNFVAkJMHg4NDAKPiArCj4gK3N0YXRpYyBpbnQgcmszNTA2X2NhbGNfc2NobWl0 dF9yZWdfYW5kX2JpdChzdHJ1Y3Qgcm9ja2NoaXBfcGluX2JhbmsgKmJhbmssCj4gKwkJCQkJICAg aW50IHBpbl9udW0sCj4gKwkJCQkJICAgc3RydWN0IHJlZ21hcCAqKnJlZ21hcCwKPiArCQkJCQkg ICBpbnQgKnJlZywgdTggKmJpdCkKPiArewo+ICsJc3RydWN0IHJvY2tjaGlwX3BpbmN0cmwgKmlu Zm8gPSBiYW5rLT5kcnZkYXRhOwo+ICsJaW50IHJldCA9IDA7Cj4gKwo+ICsJc3dpdGNoIChiYW5r LT5iYW5rX251bSkgewo+ICsJY2FzZSAwOgo+ICsJCSpyZWdtYXAgPSBpbmZvLT5yZWdtYXBfcG11 Owo+ICsJCWlmIChwaW5fbnVtID4gMjQpIHsKPiArCQkJcmV0ID0gLUVJTlZBTDsKPiArCQl9IGVs c2UgaWYgKHBpbl9udW0gPCAyNCkgewo+ICsJCQkqcmVnID0gUkszNTA2X1NNVF9HUElPMF9BX09G RlNFVDsKPiArCQl9IGVsc2Ugewo+ICsJCQkqcmVnID0gUkszNTA2X1NNVF9HUElPMF9EX09GRlNF VDsKPiArCQkJKmJpdCA9IDk7Cj4gKwo+ICsJCQlyZXR1cm4gMDsKPiArCQl9Cj4gKwkJYnJlYWs7 Cj4gKwo+ICsJY2FzZSAxOgo+ICsJCSpyZWdtYXAgPSBpbmZvLT5yZWdtYXBfaW9jMTsKPiArCQlp ZiAocGluX251bSA8IDI4KQo+ICsJCQkqcmVnID0gUkszNTA2X1NNVF9HUElPMV9PRkZTRVQ7Cj4g KwkJZWxzZQo+ICsJCQlyZXQgPSAtRUlOVkFMOwo+ICsJCWJyZWFrOwo+ICsKPiArCWNhc2UgMjoK PiArCQkqcmVnbWFwID0gaW5mby0+cmVnbWFwX2Jhc2U7Cj4gKwkJaWYgKHBpbl9udW0gPCAxNykK PiArCQkJKnJlZyA9IFJLMzUwNl9TTVRfR1BJTzJfT0ZGU0VUOwo+ICsJCWVsc2UKPiArCQkJcmV0 ID0gLUVJTlZBTDsKPiArCQlicmVhazsKPiArCj4gKwljYXNlIDM6Cj4gKwkJKnJlZ21hcCA9IGlu Zm8tPnJlZ21hcF9iYXNlOwo+ICsJCWlmIChwaW5fbnVtIDwgMTUpCj4gKwkJCSpyZWcgPSBSSzM1 MDZfU01UX0dQSU8zX09GRlNFVDsKPiArCQllbHNlCj4gKwkJCXJldCA9IC1FSU5WQUw7Cj4gKwkJ YnJlYWs7Cj4gKwo+ICsJY2FzZSA0Ogo+ICsJCSpyZWdtYXAgPSBpbmZvLT5yZWdtYXBfYmFzZTsK PiArCQlpZiAocGluX251bSA8IDggfHwgcGluX251bSA+IDExKSB7Cj4gKwkJCXJldCA9IC1FSU5W QUw7Cj4gKwkJfSBlbHNlIHsKPiArCQkJKnJlZyA9IFJLMzUwNl9TTVRfR1BJTzRfT0ZGU0VUOwo+ ICsJCQkqYml0ID0gODsKPiArCj4gKwkJCXJldHVybiAwOwo+ICsJCX0KPiArCQlicmVhazsKPiAr Cj4gKwlkZWZhdWx0Ogo+ICsJCXJldCA9IC1FSU5WQUw7Cj4gKwkJYnJlYWs7Cj4gKwl9Cj4gKwo+ ICsJaWYgKHJldCkgewo+ICsJCWRldl9lcnIoaW5mby0+ZGV2LCAidW5zdXBwb3J0ZWQgYmFua19u dW0gJWQgcGluX251bSAlZFxuIiwgYmFuay0+YmFua19udW0sIHBpbl9udW0pOwo+ICsKPiArCQly ZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCSpyZWcgKz0gKChwaW5fbnVtIC8gUkszNTA2X1NNVF9Q SU5TX1BFUl9SRUcpICogNCk7Cj4gKwkqYml0ID0gcGluX251bSAlIFJLMzUwNl9TTVRfUElOU19Q RVJfUkVHOwo+ICsJKmJpdCAqPSBSSzM1MDZfU01UX0JJVFNfUEVSX1BJTjsKPiArCj4gKwlyZXR1 cm4gMDsKPiArfQo+ICsKPiAgI2RlZmluZSBSSzM1MjhfRFJWX0JJVFNfUEVSX1BJTgkJOAo+ICAj ZGVmaW5lIFJLMzUyOF9EUlZfUElOU19QRVJfUkVHCQkyCj4gICNkZWZpbmUgUkszNTI4X0RSVl9H UElPMF9PRkZTRVQJCTB4MTAwCj4gQEAgLTI3NDksNyArMzA3MSw4IEBAIHN0YXRpYyBpbnQgcm9j a2NoaXBfc2V0X2RyaXZlX3BlcnBpbihzdHJ1Y3Qgcm9ja2NoaXBfcGluX2JhbmsgKmJhbmssCj4g IAkJcm1hc2tfYml0cyA9IFJLMzU4OF9EUlZfQklUU19QRVJfUElOOwo+ICAJCXJldCA9IHN0cmVu Z3RoOwo+ICAJCWdvdG8gY29uZmlnOwo+IC0JfSBlbHNlIGlmIChjdHJsLT50eXBlID09IFJLMzUy OCB8fAo+ICsJfSBlbHNlIGlmIChjdHJsLT50eXBlID09IFJLMzUwNiB8fAo+ICsJCSAgIGN0cmwt PnR5cGUgPT0gUkszNTI4IHx8Cj4gIAkJICAgY3RybC0+dHlwZSA9PSBSSzM1NjIgfHwKPiAgCQkg ICBjdHJsLT50eXBlID09IFJLMzU2OCkgewo+ICAJCXJtYXNrX2JpdHMgPSBSSzM1NjhfRFJWX0JJ VFNfUEVSX1BJTjsKPiBAQCAtMjgyOCwxMiArMzE1MSwzNyBAQCBzdGF0aWMgaW50IHJvY2tjaGlw X3NldF9kcml2ZV9wZXJwaW4oc3RydWN0IHJvY2tjaGlwX3Bpbl9iYW5rICpiYW5rLAo+ICAJY2Fz ZSBEUlZfVFlQRV9JT18xVjhfT05MWToKPiAgCQlybWFza19iaXRzID0gUkszMjg4X0RSVl9CSVRT X1BFUl9QSU47Cj4gIAkJYnJlYWs7Cj4gKwljYXNlIERSVl9UWVBFX0lPX0xFVkVMXzJfQklUOgo+ ICsJCXJldCA9IHJlZ21hcF9yZWFkKHJlZ21hcCwgcmVnLCAmZGF0YSk7Cj4gKwkJaWYgKHJldCkK PiArCQkJcmV0dXJuIHJldDsKPiArCQlkYXRhID4+PSBiaXQ7Cj4gKwo+ICsJCXJldHVybiBkYXRh ICYgMHgzOwo+ICsJY2FzZSBEUlZfVFlQRV9JT19MRVZFTF84X0JJVDoKPiArCQlyZXQgPSByZWdt YXBfcmVhZChyZWdtYXAsIHJlZywgJmRhdGEpOwo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybiBy ZXQ7Cj4gKwkJZGF0YSA+Pj0gYml0Owo+ICsJCWRhdGEgJj0gKDEgPDwgOCkgLSAxOwo+ICsKPiAr CQlyZXQgPSBod2VpZ2h0OChkYXRhKTsKPiArCQlpZiAocmV0ID4gMCkKPiArCQkJcmV0dXJuIHJl dCAtIDE7Cj4gKwkJZWxzZQo+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiAgCWRlZmF1bHQ6Cj4gIAkJ ZGV2X2VycihkZXYsICJ1bnN1cHBvcnRlZCBwaW5jdHJsIGRyaXZlIHR5cGU6ICVkXG4iLCBkcnZf dHlwZSk7Cj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+ICBjb25maWc6Cj4gKwlpZiAo Y3RybC0+dHlwZSA9PSBSSzM1MDYpIHsKPiArCQlpZiAoKGJhbmstPmJhbmtfbnVtID09IDAgJiYg cGluX251bSA9PSAyNCkgfHwgYmFuay0+YmFua19udW0gPT0gNCkgewo+ICsJCQlybWFza19iaXRz ID0gMjsKPiArCQkJcmV0ID0gc3RyZW5ndGg7Cj4gKwkJfQo+ICsJfQo+ICAJLyogZW5hYmxlIHRo ZSB3cml0ZSB0byB0aGUgZXF1aXZhbGVudCBsb3dlciBiaXRzICovCj4gIAlkYXRhID0gKCgxIDw8 IHJtYXNrX2JpdHMpIC0gMSkgPDwgKGJpdCArIDE2KTsKPiAgCXJtYXNrID0gZGF0YSB8IChkYXRh ID4+IDE2KTsKPiBAQCAtMjk1Nyw2ICszMzA1LDcgQEAgc3RhdGljIGludCByb2NrY2hpcF9zZXRf cHVsbChzdHJ1Y3Qgcm9ja2NoaXBfcGluX2JhbmsgKmJhbmssCj4gIAljYXNlIFJLMzMyODoKPiAg CWNhc2UgUkszMzY4Ogo+ICAJY2FzZSBSSzMzOTk6Cj4gKwljYXNlIFJLMzUwNjoKPiAgCWNhc2Ug UkszNTI4Ogo+ICAJY2FzZSBSSzM1NjI6Cj4gIAljYXNlIFJLMzU2ODoKPiBAQCAtMzA3Nyw2ICsz NDI2LDEwIEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZ2V0X3NjaG1pdHQoc3RydWN0IHJvY2tjaGlw X3Bpbl9iYW5rICpiYW5rLCBpbnQgcGluX251bSkKPiAgCQlicmVhazsKPiAgCX0KPiAgCj4gKwlp ZiAoY3RybC0+dHlwZSA9PSBSSzM1MDYpCj4gKwkJaWYgKChiYW5rLT5iYW5rX251bSA9PSAwICYm IHBpbl9udW0gPT0gMjQpIHx8ICBiYW5rLT5iYW5rX251bSA9PSA0KQo+ICsJCQlyZXR1cm4gZGF0 YSAmIDB4MzsKPiArCj4gIAlyZXR1cm4gZGF0YSAmIDB4MTsKPiAgfQo+ICAKPiBAQCAtMzExMiw2 ICszNDY1LDE0IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfc2V0X3NjaG1pdHQoc3RydWN0IHJvY2tj aGlwX3Bpbl9iYW5rICpiYW5rLAo+ICAJCWJyZWFrOwo+ICAJfQo+ICAKPiArCWlmIChjdHJsLT50 eXBlID09IFJLMzUwNikgewo+ICsJCWlmICgoYmFuay0+YmFua19udW0gPT0gMCAmJiBwaW5fbnVt ID09IDI0KSB8fCBiYW5rLT5iYW5rX251bSA9PSA0KSB7Cj4gKwkJCWRhdGEgPSAweDMgPDwgKGJp dCArIDE2KTsKPiArCQkJcm1hc2sgPSBkYXRhIHwgKGRhdGEgPj4gMTYpOwo+ICsJCQlkYXRhIHw9 ICgoZW5hYmxlID8gMHgzIDogMCkgPDwgYml0KTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICAJcmV0dXJu IHJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIHJlZywgcm1hc2ssIGRhdGEpOwo+ICB9Cj4gIAo+ IEBAIC0zMjI3LDYgKzM1ODgsNyBAQCBzdGF0aWMgYm9vbCByb2NrY2hpcF9waW5jb25mX3B1bGxf dmFsaWQoc3RydWN0IHJvY2tjaGlwX3Bpbl9jdHJsICpjdHJsLAo+ICAJY2FzZSBSSzMzMjg6Cj4g IAljYXNlIFJLMzM2ODoKPiAgCWNhc2UgUkszMzk5Ogo+ICsJY2FzZSBSSzM1MDY6Cj4gIAljYXNl IFJLMzUyODoKPiAgCWNhc2UgUkszNTYyOgo+ICAJY2FzZSBSSzM1Njg6Cj4gQEAgLTM4ODAsMTMg KzQyNDIsMTAgQEAgc3RhdGljIGludCByb2NrY2hpcF9waW5jdHJsX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAl9Cj4gIAo+ICAJLyogdHJ5IHRvIGZpbmQgdGhlIG9wdGlv bmFsIHJlZmVyZW5jZSB0byB0aGUgcG11IHN5c2NvbiAqLwo+IC0Jbm9kZSA9IG9mX3BhcnNlX3Bo YW5kbGUobnAsICJyb2NrY2hpcCxwbXUiLCAwKTsKPiAtCWlmIChub2RlKSB7Cj4gLQkJaW5mby0+ cmVnbWFwX3BtdSA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcChub2RlKTsKPiAtCQlvZl9ub2RlX3B1 dChub2RlKTsKPiAtCQlpZiAoSVNfRVJSKGluZm8tPnJlZ21hcF9wbXUpKQo+IC0JCQlyZXR1cm4g UFRSX0VSUihpbmZvLT5yZWdtYXBfcG11KTsKPiAtCX0KPiArCWluZm8tPnJlZ21hcF9wbXUgPSBz eXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlX29wdGlvbmFsKG5wLCAicm9ja2NoaXAscG11 Iik7Cj4gKwo+ICsJLyogdHJ5IHRvIGZpbmQgdGhlIG9wdGlvbmFsIHJlZmVyZW5jZSB0byB0aGUg aW9jMSBzeXNjb24gKi8KPiArCWluZm8tPnJlZ21hcF9pb2MxID0gc3lzY29uX3JlZ21hcF9sb29r dXBfYnlfcGhhbmRsZV9vcHRpb25hbChucCwgInJvY2tjaGlwLGlvYzEiKTsKPiAgCj4gIAlyZXQg PSByb2NrY2hpcF9waW5jdHJsX3JlZ2lzdGVyKHBkZXYsIGluZm8pOwo+ICAJaWYgKHJldCkKPiBA QCAtNDM1MCw2ICs0NzA5LDcxIEBAIHN0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfcGluX2N0cmwgcmsz Mzk5X3Bpbl9jdHJsID0gewo+ICAJCS5kcnZfY2FsY19yZWcJCT0gcmszMzk5X2NhbGNfZHJ2X3Jl Z19hbmRfYml0LAo+ICB9Owo+ICAKPiArc3RhdGljIHN0cnVjdCByb2NrY2hpcF9waW5fYmFuayBy azM1MDZfcGluX2JhbmtzW10gPSB7Cj4gKwlQSU5fQkFOS19JT01VWF9GTEFHU19PRkZTRVRfRFJW X0ZMQUdTX1BVTExfRkxBR1MoMCwgMzIsICJncGlvMCIsCj4gKwkJCQkgICAgSU9NVVhfV0lEVEhf NEJJVCB8IElPTVVYX1NPVVJDRV9QTVUsCj4gKwkJCQkgICAgSU9NVVhfV0lEVEhfNEJJVCB8IElP TVVYX1NPVVJDRV9QTVUsCj4gKwkJCQkgICAgSU9NVVhfV0lEVEhfNEJJVCB8IElPTVVYX1NPVVJD RV9QTVUsCj4gKwkJCQkgICAgSU9NVVhfV0lEVEhfMkJJVCB8IElPTVVYX1NPVVJDRV9QTVUsCj4g KwkJCQkgICAgMHgwLCAweDgsIDB4MTAsIDB4ODMwLAo+ICsJCQkJICAgIERSVl9UWVBFX0lPX0xF VkVMXzhfQklULAo+ICsJCQkJICAgIERSVl9UWVBFX0lPX0xFVkVMXzhfQklULAo+ICsJCQkJICAg IERSVl9UWVBFX0lPX0xFVkVMXzhfQklULAo+ICsJCQkJICAgIERSVl9UWVBFX0lPX0xFVkVMXzJf QklULAo+ICsJCQkJICAgIDAsIDAsIDAsIDEpLAo+ICsJUElOX0JBTktfSU9NVVhfRkxBR1NfT0ZG U0VUX0RSVl9GTEFHUygxLCAzMiwgImdwaW8xIiwKPiArCQkJCSAgICBJT01VWF9XSURUSF80QklU LAo+ICsJCQkJICAgIElPTVVYX1dJRFRIXzRCSVQsCj4gKwkJCQkgICAgSU9NVVhfV0lEVEhfNEJJ VCwKPiArCQkJCSAgICBJT01VWF9XSURUSF80QklULAo+ICsJCQkJICAgIDB4MjAsIDB4MjgsIDB4 MzAsIDB4MzgsCj4gKwkJCQkgICAgRFJWX1RZUEVfSU9fTEVWRUxfOF9CSVQsCj4gKwkJCQkgICAg RFJWX1RZUEVfSU9fTEVWRUxfOF9CSVQsCj4gKwkJCQkgICAgRFJWX1RZUEVfSU9fTEVWRUxfOF9C SVQsCj4gKwkJCQkgICAgRFJWX1RZUEVfSU9fTEVWRUxfOF9CSVQpLAo+ICsJUElOX0JBTktfSU9N VVhfRkxBR1NfT0ZGU0VUX0RSVl9GTEFHUygyLCAzMiwgImdwaW8yIiwKPiArCQkJCSAgICBJT01V WF9XSURUSF80QklULAo+ICsJCQkJICAgIElPTVVYX1dJRFRIXzRCSVQsCj4gKwkJCQkgICAgSU9N VVhfV0lEVEhfNEJJVCwKPiArCQkJCSAgICBJT01VWF9XSURUSF80QklULAo+ICsJCQkJICAgIDB4 NDAsIDB4NDgsIDB4NTAsIDB4NTgsCj4gKwkJCQkgICAgRFJWX1RZUEVfSU9fTEVWRUxfOF9CSVQs Cj4gKwkJCQkgICAgRFJWX1RZUEVfSU9fTEVWRUxfOF9CSVQsCj4gKwkJCQkgICAgRFJWX1RZUEVf SU9fTEVWRUxfOF9CSVQsCj4gKwkJCQkgICAgRFJWX1RZUEVfSU9fTEVWRUxfOF9CSVQpLAo+ICsJ UElOX0JBTktfSU9NVVhfRkxBR1NfT0ZGU0VUX0RSVl9GTEFHUygzLCAzMiwgImdwaW8zIiwKPiAr CQkJCSAgICBJT01VWF9XSURUSF80QklULAo+ICsJCQkJICAgIElPTVVYX1dJRFRIXzRCSVQsCj4g KwkJCQkgICAgSU9NVVhfV0lEVEhfNEJJVCwKPiArCQkJCSAgICBJT01VWF9XSURUSF80QklULAo+ ICsJCQkJICAgIDB4NjAsIDB4NjgsIDB4NzAsIDB4NzgsCj4gKwkJCQkgICAgRFJWX1RZUEVfSU9f TEVWRUxfOF9CSVQsCj4gKwkJCQkgICAgRFJWX1RZUEVfSU9fTEVWRUxfOF9CSVQsCj4gKwkJCQkg ICAgRFJWX1RZUEVfSU9fTEVWRUxfOF9CSVQsCj4gKwkJCQkgICAgRFJWX1RZUEVfSU9fTEVWRUxf OF9CSVQpLAo+ICsJUElOX0JBTktfSU9NVVhfRkxBR1NfT0ZGU0VUX0RSVl9GTEFHU19QVUxMX0ZM QUdTKDQsIDMyLCAiZ3BpbzQiLAo+ICsJCQkJICAgIElPTVVYX1dJRFRIXzRCSVQsCj4gKwkJCQkg ICAgSU9NVVhfV0lEVEhfNEJJVCwKPiArCQkJCSAgICBJT01VWF9XSURUSF80QklULAo+ICsJCQkJ ICAgIElPTVVYX1dJRFRIXzRCSVQsCj4gKwkJCQkgICAgMHg4MCwgMHg4OCwgMHg5MCwgMHg5OCwK PiArCQkJCSAgICBEUlZfVFlQRV9JT19MRVZFTF8yX0JJVCwKPiArCQkJCSAgICBEUlZfVFlQRV9J T19MRVZFTF8yX0JJVCwKPiArCQkJCSAgICBEUlZfVFlQRV9JT19MRVZFTF8yX0JJVCwKPiArCQkJ CSAgICBEUlZfVFlQRV9JT19MRVZFTF8yX0JJVCwKPiArCQkJCSAgICAxLCAxLCAxLCAxKSwKPiAr fTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBfcGluX2N0cmwgcmszNTA2X3Bpbl9jdHJs IF9fbWF5YmVfdW51c2VkID0gewo+ICsJLnBpbl9iYW5rcwkJPSByazM1MDZfcGluX2JhbmtzLAo+ ICsJLm5yX2JhbmtzCQk9IEFSUkFZX1NJWkUocmszNTA2X3Bpbl9iYW5rcyksCj4gKwkubGFiZWwJ CQk9ICJSSzM1MDYtR1BJTyIsCj4gKwkudHlwZQkJCT0gUkszNTA2LAo+ICsJLnB1bGxfY2FsY19y ZWcJCT0gcmszNTA2X2NhbGNfcHVsbF9yZWdfYW5kX2JpdCwKPiArCS5kcnZfY2FsY19yZWcJCT0g cmszNTA2X2NhbGNfZHJ2X3JlZ19hbmRfYml0LAo+ICsJLnNjaG1pdHRfY2FsY19yZWcJPSByazM1 MDZfY2FsY19zY2htaXR0X3JlZ19hbmRfYml0LAo+ICt9Owo+ICsKPiAgc3RhdGljIHN0cnVjdCBy b2NrY2hpcF9waW5fYmFuayByazM1MjhfcGluX2JhbmtzW10gPSB7Cj4gIAlQSU5fQkFOS19JT01V WF9GTEFHU19PRkZTRVQoMCwgMzIsICJncGlvMCIsCj4gIAkJCQkgICAgSU9NVVhfV0lEVEhfNEJJ VCwKPiBAQCAtNDU2MCw2ICs0OTg0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2Vf aWQgcm9ja2NoaXBfcGluY3RybF9kdF9tYXRjaFtdID0gewo+ICAJCS5kYXRhID0gJnJrMzM2OF9w aW5fY3RybCB9LAo+ICAJeyAuY29tcGF0aWJsZSA9ICJyb2NrY2hpcCxyazMzOTktcGluY3RybCIs Cj4gIAkJLmRhdGEgPSAmcmszMzk5X3Bpbl9jdHJsIH0sCj4gKwl7IC5jb21wYXRpYmxlID0gInJv Y2tjaGlwLHJrMzUwNi1waW5jdHJsIiwKPiArCQkuZGF0YSA9ICZyazM1MDZfcGluX2N0cmwgfSwK PiAgCXsgLmNvbXBhdGlibGUgPSAicm9ja2NoaXAscmszNTI4LXBpbmN0cmwiLAo+ICAJCS5kYXRh ID0gJnJrMzUyOF9waW5fY3RybCB9LAo+ICAJeyAuY29tcGF0aWJsZSA9ICJyb2NrY2hpcCxyazM1 NjItcGluY3RybCIsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXJvY2tj aGlwLmggYi9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1yb2NrY2hpcC5oCj4gaW5kZXggMzVjZDM4 MDc5ZDFlLi40ZjRhZmY0MmE4MGEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9waW5jdHJsL3BpbmN0 cmwtcm9ja2NoaXAuaAo+ICsrKyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXJvY2tjaGlwLmgK PiBAQCAtMTk2LDYgKzE5Niw3IEBAIGVudW0gcm9ja2NoaXBfcGluY3RybF90eXBlIHsKPiAgCVJL MzMyOCwKPiAgCVJLMzM2OCwKPiAgCVJLMzM5OSwKPiArCVJLMzUwNiwKPiAgCVJLMzUyOCwKPiAg CVJLMzU2MiwKPiAgCVJLMzU2OCwKPiBAQCAtMjYwLDYgKzI2MSw4IEBAIGVudW0gcm9ja2NoaXBf cGluX2Rydl90eXBlIHsKPiAgCURSVl9UWVBFX0lPXzFWOF9PTkxZLAo+ICAJRFJWX1RZUEVfSU9f MVY4XzNWMF9BVVRPLAo+ICAJRFJWX1RZUEVfSU9fM1YzX09OTFksCj4gKwlEUlZfVFlQRV9JT19M RVZFTF8yX0JJVCwKPiArCURSVl9UWVBFX0lPX0xFVkVMXzhfQklULAo+ICAJRFJWX1RZUEVfTUFY Cj4gIH07Cj4gIAo+IEBAIC00NTgsNiArNDYxLDcgQEAgc3RydWN0IHJvY2tjaGlwX3BpbmN0cmwg ewo+ICAJaW50CQkJCXJlZ19zaXplOwo+ICAJc3RydWN0IHJlZ21hcAkJCSpyZWdtYXBfcHVsbDsK PiAgCXN0cnVjdCByZWdtYXAJCQkqcmVnbWFwX3BtdTsKPiArCXN0cnVjdCByZWdtYXAJCQkqcmVn bWFwX2lvYzE7Cj4gIAlzdHJ1Y3QgZGV2aWNlCQkJKmRldjsKPiAgCXN0cnVjdCByb2NrY2hpcF9w aW5fY3RybAkqY3RybDsKPiAgCXN0cnVjdCBwaW5jdHJsX2Rlc2MJCXBjdGw7Cj4gCgoKCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtcm9ja2No aXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yb2NrY2hpcAo=