From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.7 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_ADSP_ALL, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A2A41C3A5A1 for ; Sun, 25 Aug 2019 12:18:09 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 746382173E for ; Sun, 25 Aug 2019 12:18:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="gukweJda"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=rere.qmqm.pl header.i=@rere.qmqm.pl header.b="ExzvFECv" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 746382173E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=rere.qmqm.pl Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:To:MIME-Version:Subject:From:References :In-Reply-To:Message-Id:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Vs6kCXvKH06DSMRRtMHeTLmDGywi94OsDbst1v7uvsc=; b=gukweJdaayTi71 UI0OE/0cFXWXXdrpyHqt5Ba7aN2RjwwegCnTGGVGOrHn0dxRAAG+E2xkftlMxU6cMkiYjVCbaPDYM /zk544ZgDi2pZF38oaK+Szd8qqqohs0L6FIot5mW6iGHvV2g9JzPnaKbx19+3C6z+rvbErV3GxA4+ Q+xoo7lPdjUoZ4JxZosC/cy2qaDiGyYW/XPmJMEsdiAkWeWmVmy6fPSiQX36hPTKXgrj2gemnGTRX CvHbuT8SZZtd0rHiooPbgWIcFGpyVnO2dZe0r65emyo3TU+zHe9XffMW/BD5kwH0CV+kz1vExBPZ0 7S7U+xjTwPn/FabDuI4g==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1i1rT7-0003r3-7v; Sun, 25 Aug 2019 12:18:01 +0000 Received: from rere.qmqm.pl ([91.227.64.183]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1i1rSp-0003f4-2A for linux-arm-kernel@lists.infradead.org; Sun, 25 Aug 2019 12:17:45 +0000 Received: from remote.user (localhost [127.0.0.1]) by rere.qmqm.pl (Postfix) with ESMTPSA id 46GYyC0MrHzMK; Sun, 25 Aug 2019 14:16:03 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rere.qmqm.pl; s=1; t=1566735363; bh=gDXuzaQsy05jFmx1JaMN1xelDgVOPOeqv3Tv+dwhC3Y=; h=Date:In-Reply-To:References:From:Subject:To:Cc:From; b=ExzvFECvHk3XkEZHQQAIFjtv+q2HSZhPD8FHfTbLCWyo3NfSuP7OlQo2NPSM/hLZF Qx2+4eVudsYY1BvPTSm9Wi3CDLTRDhqOrWKj0SsQrMYH77li4uZUtwXOFUwa4NHTSN OuIgF3qPoZqJ/70ZOMiPcfNLF/1ydo6tXm0JhKaYY7F8g1H0nXti7SzP0oRnEyiCI5 BbMoJXWjlvFC7720ec7IY/dOFTonWSFT1yIrYn/STUQl5p5C9vsQhpOOAIzozEH/c7 Ojv+82i9e9bdxZs6RA6H88XtRGrTMfg3nVPtKgFZ7ZYNKTcsAaLIptdvWs3Aseki4X 6eAu4O8bgv87A== X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.101.2 at mail Date: Sun, 25 Aug 2019 14:17:38 +0200 Message-Id: In-Reply-To: References: From: =?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?= Subject: [PATCH v2 4/4] [RFT] ASoC: wm8994: use common FLL code MIME-Version: 1.0 To: alsa-devel@alsa-project.org, patches@opensource.cirrus.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190825_051743_437896_74395FEC X-CRM114-Status: GOOD ( 19.55 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Maxime Jourdan , Kate Stewart , Alexandre Belloni , Kuninori Morimoto , Kirill Marinushkin , Liam Girdwood , Paul Cercueil , Srinivas Kandagatla , Jerome Brunet , Anders Roxell , Ludovic Desroches , linux-arm-kernel@lists.infradead.org, Codrin Ciubotariu , Charles Keepax , Piotr Stankiewicz , Nariman Poushin , Richard Fitzgerald , Mark Brown , Annaliese McDermond , Thomas Gleixner , Jaroslav Kysela , zhong jiang , Allison Randal , Greg Kroah-Hartman , Randy Dunlap , Nikesh Oswal , Takashi Iwai , linux-kernel@vger.kernel.org, Enrico Weigelt Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org UmV3b3JrIEZMTCBoYW5kbGluZyB0byB1c2UgY29tbW9uIGNvZGUuClRoaXMgdXNlcyBwb2xsaW5n IGZvciBub3cgdG8gd2FpdCBmb3IgRkxMIGxvY2suCgpTaWduZWQtb2ZmLWJ5OiBNaWNoYcWCIE1p cm9zxYJhdyA8bWlycS1saW51eEByZXJlLnFtcW0ucGw+Ci0tLQogc291bmQvc29jL2NvZGVjcy9L Y29uZmlnICB8ICAgMiArCiBzb3VuZC9zb2MvY29kZWNzL3dtODk5NC5jIHwgMjgxICsrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzb3VuZC9zb2MvY29kZWNzL3dtODk5NC5o IHwgICA0ICstCiAzIGZpbGVzIGNoYW5nZWQsIDg0IGluc2VydGlvbnMoKyksIDIwMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL0tjb25maWcgYi9zb3VuZC9zb2Mv Y29kZWNzL0tjb25maWcKaW5kZXggMWE2ODAwMjNhZjdkLi4xZmY2MjkwY2UxOGQgMTAwNjQ0Ci0t LSBhL3NvdW5kL3NvYy9jb2RlY3MvS2NvbmZpZworKysgYi9zb3VuZC9zb2MvY29kZWNzL0tjb25m aWcKQEAgLTEzODIsNiArMTM4Miw4IEBAIGNvbmZpZyBTTkRfU09DX1dNODk5MwogCiBjb25maWcg U05EX1NPQ19XTTg5OTQKIAl0cmlzdGF0ZQorCXNlbGVjdCBTTkRfU09DX1dNX0ZMTAorCXNlbGVj dCBTTkRfU09DX1dNX0ZMTF9FRlMKIAogY29uZmlnIFNORF9TT0NfV004OTk1CiAJdHJpc3RhdGUK ZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204OTk0LmMgYi9zb3VuZC9zb2MvY29kZWNz L3dtODk5NC5jCmluZGV4IGMzZDA2ZThiYzU0Zi4uZDBkYmMzNTIzMDNiIDEwMDY0NAotLS0gYS9z b3VuZC9zb2MvY29kZWNzL3dtODk5NC5jCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204OTk0LmMK QEAgLTIwMzAsMTAxICsyMDMwLDU3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBt X3JvdXRlIHdtODk1OF9pbnRlcmNvbltdID0gewogCXsgIkFJRjNBREMgTXV4IiwgIk1vbm8gUENN IiwgIk1vbm8gUENNIE91dCBNdXgiIH0sCiB9OwogCi0vKiBUaGUgc2l6ZSBpbiBiaXRzIG9mIHRo ZSBGTEwgZGl2aWRlIG11bHRpcGxpZWQgYnkgMTAKLSAqIHRvIGFsbG93IHJvdW5kaW5nIGxhdGVy ICovCi0jZGVmaW5lIEZJWEVEX0ZMTF9TSVpFICgoMSA8PCAxNikgKiAxMCkKLQotc3RydWN0IGZs bF9kaXYgewotCXUxNiBvdXRkaXY7Ci0JdTE2IG47Ci0JdTE2IGs7Ci0JdTE2IGxhbWJkYTsKLQl1 MTYgY2xrX3JlZl9kaXY7Ci0JdTE2IGZsbF9mcmF0aW87CitzdGF0aWMgY29uc3Qgc3RydWN0IHdt X2ZsbF9kZXNjIHdtODk5NF9mbGxfZGVzY1syXSA9IHsKKwkvKiBGTEwxICovCisJeworCQkuY3Rs X29mZnNldCA9IFdNODk5NF9GTEwxX0NPTlRST0xfMSwKKwkJLmludF9vZmZzZXQgPSBXTTg5OTRf SU5URVJSVVBUX1JBV19TVEFUVVNfMiwKKwkJLmludF9tYXNrID0gV004OTk0X0lNX0ZMTDFfTE9D S19FSU5UX01BU0ssCisJCS5uY29fcmVnMCA9IFdNODk5NF9GTEwxX0NPTlRST0xfNSwKKwkJLmZy Y19uY29fc2hpZnQgPSA2LAorCQkubmNvX3JlZzEgPSBXTTg5OTRfRkxMMV9DT05UUk9MXzUsCisJ CS5mcmNfbmNvX3ZhbF9zaGlmdCA9IDcsCisJCS5jbGtfcmVmX21hcCA9IHsgRkxMX1JFRl9NQ0xL LCBGTExfUkVGX01DTEsyLCBGTExfUkVGX0ZTQ0xLLCBGTExfUkVGX0JDTEsgfSwKKwl9LAorCS8q IEZMTDIgKi8KKwl7CisJCS5jdGxfb2Zmc2V0ID0gV004OTk0X0ZMTDJfQ09OVFJPTF8xLAorCQku aW50X29mZnNldCA9IFdNODk5NF9JTlRFUlJVUFRfUkFXX1NUQVRVU18yLAorCQkuaW50X21hc2sg PSBXTTg5OTRfSU1fRkxMMl9MT0NLX0VJTlRfTUFTSywKKwkJLm5jb19yZWcwID0gV004OTk0X0ZM TDJfQ09OVFJPTF81LAorCQkuZnJjX25jb19zaGlmdCA9IDYsCisJCS5uY29fcmVnMSA9IFdNODk5 NF9GTEwyX0NPTlRST0xfNSwKKwkJLmZyY19uY29fdmFsX3NoaWZ0ID0gNywKKwkJLmNsa19yZWZf bWFwID0geyBGTExfUkVGX01DTEssIEZMTF9SRUZfTUNMSzIsIEZMTF9SRUZfRlNDTEssIEZMTF9S RUZfQkNMSyB9LAorCX0sCiB9OwogCi1zdGF0aWMgaW50IHdtODk5NF9nZXRfZmxsX2NvbmZpZyhz dHJ1Y3Qgd204OTk0ICpjb250cm9sLCBzdHJ1Y3QgZmxsX2RpdiAqZmxsLAotCQkJCSBpbnQgZnJl cV9pbiwgaW50IGZyZXFfb3V0KQotewotCXU2NCBLcGFydDsKLQl1bnNpZ25lZCBpbnQgSywgTmRp diwgTm1vZCwgZ2NkX2ZsbDsKLQotCXByX2RlYnVnKCJGTEwgaW5wdXQ9JWRIeiwgb3V0cHV0PSVk SHpcbiIsIGZyZXFfaW4sIGZyZXFfb3V0KTsKLQotCS8qIFNjYWxlIHRoZSBpbnB1dCBmcmVxdWVu Y3kgZG93biB0byA8PSAxMy41TUh6ICovCi0JZmxsLT5jbGtfcmVmX2RpdiA9IDA7Ci0Jd2hpbGUg KGZyZXFfaW4gPiAxMzUwMDAwMCkgewotCQlmbGwtPmNsa19yZWZfZGl2Kys7Ci0JCWZyZXFfaW4g Lz0gMjsKLQotCQlpZiAoZmxsLT5jbGtfcmVmX2RpdiA+IDMpCi0JCQlyZXR1cm4gLUVJTlZBTDsK LQl9Ci0JcHJfZGVidWcoIkNMS19SRUZfRElWPSVkLCBGcmVmPSVkSHpcbiIsIGZsbC0+Y2xrX3Jl Zl9kaXYsIGZyZXFfaW4pOwotCi0JLyogU2NhbGUgdGhlIG91dHB1dCB0byBnaXZlIDkwTUh6PD1G dmNvPD0xMDBNSHogKi8KLQlmbGwtPm91dGRpdiA9IDM7Ci0Jd2hpbGUgKGZyZXFfb3V0ICogKGZs bC0+b3V0ZGl2ICsgMSkgPCA5MDAwMDAwMCkgewotCQlmbGwtPm91dGRpdisrOwotCQlpZiAoZmxs LT5vdXRkaXYgPiA2MykKLQkJCXJldHVybiAtRUlOVkFMOwotCX0KLQlmcmVxX291dCAqPSBmbGwt Pm91dGRpdiArIDE7Ci0JcHJfZGVidWcoIk9VVERJVj0lZCwgRnZjbz0lZEh6XG4iLCBmbGwtPm91 dGRpdiwgZnJlcV9vdXQpOwotCi0JaWYgKGZyZXFfaW4gPiAxMDAwMDAwKSB7Ci0JCWZsbC0+Zmxs X2ZyYXRpbyA9IDA7Ci0JfSBlbHNlIGlmIChmcmVxX2luID4gMjU2MDAwKSB7Ci0JCWZsbC0+Zmxs X2ZyYXRpbyA9IDE7Ci0JCWZyZXFfaW4gKj0gMjsKLQl9IGVsc2UgaWYgKGZyZXFfaW4gPiAxMjgw MDApIHsKLQkJZmxsLT5mbGxfZnJhdGlvID0gMjsKLQkJZnJlcV9pbiAqPSA0OwotCX0gZWxzZSBp ZiAoZnJlcV9pbiA+IDY0MDAwKSB7Ci0JCWZsbC0+ZmxsX2ZyYXRpbyA9IDM7Ci0JCWZyZXFfaW4g Kj0gODsKLQl9IGVsc2UgewotCQlmbGwtPmZsbF9mcmF0aW8gPSA0OwotCQlmcmVxX2luICo9IDE2 OwotCX0KLQlwcl9kZWJ1ZygiRkxMX0ZSQVRJTz0lZCwgRnJlZj0lZEh6XG4iLCBmbGwtPmZsbF9m cmF0aW8sIGZyZXFfaW4pOwotCi0JLyogTm93LCBjYWxjdWxhdGUgTi5LICovCi0JTmRpdiA9IGZy ZXFfb3V0IC8gZnJlcV9pbjsKLQotCWZsbC0+biA9IE5kaXY7Ci0JTm1vZCA9IGZyZXFfb3V0ICUg ZnJlcV9pbjsKLQlwcl9kZWJ1ZygiTm1vZD0lZFxuIiwgTm1vZCk7Ci0KLQlzd2l0Y2ggKGNvbnRy b2wtPnR5cGUpIHsKLQljYXNlIFdNODk5NDoKLQkJLyogQ2FsY3VsYXRlIGZyYWN0aW9uYWwgcGFy dCAtIHNjYWxlIHVwIHNvIHdlIGNhbiByb3VuZC4gKi8KLQkJS3BhcnQgPSBGSVhFRF9GTExfU0la RSAqIChsb25nIGxvbmcpTm1vZDsKLQotCQlkb19kaXYoS3BhcnQsIGZyZXFfaW4pOwotCi0JCUsg PSBLcGFydCAmIDB4RkZGRkZGRkY7Ci0KLQkJaWYgKChLICUgMTApID49IDUpCi0JCQlLICs9IDU7 Ci0KLQkJLyogTW92ZSBkb3duIHRvIHByb3BlciByYW5nZSBub3cgcm91bmRpbmcgaXMgZG9uZSAq LwotCQlmbGwtPmsgPSBLIC8gMTA7Ci0JCWZsbC0+bGFtYmRhID0gMDsKLQotCQlwcl9kZWJ1Zygi Tj0leCBLPSV4XG4iLCBmbGwtPm4sIGZsbC0+ayk7Ci0JCWJyZWFrOwotCi0JZGVmYXVsdDoKLQkJ Z2NkX2ZsbCA9IGdjZChmcmVxX291dCwgZnJlcV9pbik7Ci0KLQkJZmxsLT5rID0gKGZyZXFfb3V0 IC0gKGZyZXFfaW4gKiBmbGwtPm4pKSAvIGdjZF9mbGw7Ci0JCWZsbC0+bGFtYmRhID0gZnJlcV9p biAvIGdjZF9mbGw7Ci0JCQotCX0KLQotCXJldHVybiAwOwotfQorc3RhdGljIGNvbnN0IHN0cnVj dCB3bV9mbGxfZGVzYyB3bTg5NThfZmxsX2Rlc2NbMl0gPSB7CisJLyogRkxMMSAqLworCXsKKwkJ LmN0bF9vZmZzZXQgPSBXTTg5OTRfRkxMMV9DT05UUk9MXzEsCisJCS5pbnRfb2Zmc2V0ID0gV004 OTk0X0lOVEVSUlVQVF9SQVdfU1RBVFVTXzIsCisJCS5pbnRfbWFzayA9IFdNODk5NF9JTV9GTEwx X0xPQ0tfRUlOVF9NQVNLLAorCQkubmNvX3JlZzAgPSBXTTg5OTRfRkxMMV9DT05UUk9MXzUsCisJ CS5mcmNfbmNvX3NoaWZ0ID0gNiwKKwkJLm5jb19yZWcxID0gV004OTk0X0ZMTDFfQ09OVFJPTF81 LAorCQkuZnJjX25jb192YWxfc2hpZnQgPSA3LAorCQkuZWZzX29mZnNldCA9IFdNODk1OF9GTEwx X0VGU18xLAorCQkuY2xrX3JlZl9tYXAgPSB7IEZMTF9SRUZfTUNMSywgRkxMX1JFRl9NQ0xLMiwg RkxMX1JFRl9GU0NMSywgRkxMX1JFRl9CQ0xLIH0sCisJfSwKKwkvKiBGTEwyICovCisJeworCQku Y3RsX29mZnNldCA9IFdNODk5NF9GTEwyX0NPTlRST0xfMSwKKwkJLmludF9vZmZzZXQgPSBXTTg5 OTRfSU5URVJSVVBUX1JBV19TVEFUVVNfMiwKKwkJLmludF9tYXNrID0gV004OTk0X0lNX0ZMTDJf TE9DS19FSU5UX01BU0ssCisJCS5uY29fcmVnMCA9IFdNODk5NF9GTEwyX0NPTlRST0xfNSwKKwkJ LmZyY19uY29fc2hpZnQgPSA2LAorCQkubmNvX3JlZzEgPSBXTTg5OTRfRkxMMl9DT05UUk9MXzUs CisJCS5mcmNfbmNvX3ZhbF9zaGlmdCA9IDcsCisJCS5lZnNfb2Zmc2V0ID0gV004OTU4X0ZMTDFf RUZTXzEsCisJCS5jbGtfcmVmX21hcCA9IHsgRkxMX1JFRl9NQ0xLLCBGTExfUkVGX01DTEsyLCBG TExfUkVGX0ZTQ0xLLCBGTExfUkVGX0JDTEsgfSwKKwl9LAorfTsKIAogc3RhdGljIGludCBfd204 OTk0X3NldF9mbGwoc3RydWN0IHNuZF9zb2NfY29tcG9uZW50ICpjb21wb25lbnQsIGludCBpZCwg aW50IHNyYywKIAkJCSAgdW5zaWduZWQgaW50IGZyZXFfaW4sIHVuc2lnbmVkIGludCBmcmVxX291 dCkKQEAgLTIxMzIsOSArMjA4OCw3IEBAIHN0YXRpYyBpbnQgX3dtODk5NF9zZXRfZmxsKHN0cnVj dCBzbmRfc29jX2NvbXBvbmVudCAqY29tcG9uZW50LCBpbnQgaWQsIGludCBzcmMsCiAJc3RydWN0 IHdtODk5NF9wcml2ICp3bTg5OTQgPSBzbmRfc29jX2NvbXBvbmVudF9nZXRfZHJ2ZGF0YShjb21w b25lbnQpOwogCXN0cnVjdCB3bTg5OTQgKmNvbnRyb2wgPSB3bTg5OTQtPndtODk5NDsKIAlpbnQg cmVnX29mZnNldCwgcmV0OwotCXN0cnVjdCBmbGxfZGl2IGZsbDsKIAl1MTYgcmVnLCBjbGsxLCBh aWZfcmVnLCBhaWZfc3JjOwotCXVuc2lnbmVkIGxvbmcgdGltZW91dDsKIAlib29sIHdhc19lbmFi bGVkOwogCiAJc3dpdGNoIChpZCkgewpAQCAtMjE1Miw5ICsyMTA2LDYgQEAgc3RhdGljIGludCBf d204OTk0X3NldF9mbGwoc3RydWN0IHNuZF9zb2NfY29tcG9uZW50ICpjb21wb25lbnQsIGludCBp ZCwgaW50IHNyYywKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JcmVnID0gc25kX3NvY19jb21w b25lbnRfcmVhZDMyKGNvbXBvbmVudCwgV004OTk0X0ZMTDFfQ09OVFJPTF8xICsgcmVnX29mZnNl dCk7Ci0Jd2FzX2VuYWJsZWQgPSByZWcgJiBXTTg5OTRfRkxMMV9FTkE7Ci0KIAlzd2l0Y2ggKHNy YykgewogCWNhc2UgMDoKIAkJLyogQWxsb3cgbm8gc291cmNlIHNwZWNpZmljYXRpb24gd2hlbiBz dG9wcGluZyAqLwpAQCAtMjE2NiwxMCArMjExNywxMiBAQCBzdGF0aWMgaW50IF93bTg5OTRfc2V0 X2ZsbChzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVudCwgaW50IGlkLCBpbnQgc3Jj LAogCWNhc2UgV004OTk0X0ZMTF9TUkNfTUNMSzI6CiAJY2FzZSBXTTg5OTRfRkxMX1NSQ19MUkNM SzoKIAljYXNlIFdNODk5NF9GTExfU1JDX0JDTEs6CisJCXNyYyA9IHdtODk5NF9mbGxfZGVzY1sw XS5jbGtfcmVmX21hcFtzcmMgLSBXTTg5OTRfRkxMX1NSQ19NQ0xLMV07CiAJCWJyZWFrOwogCWNh c2UgV004OTk0X0ZMTF9TUkNfSU5URVJOQUw6CiAJCWZyZXFfaW4gPSAxMjAwMDAwMDsKIAkJZnJl cV9vdXQgPSAxMjAwMDAwMDsKKwkJc3JjID0gRkxMX1JFRl9PU0M7CiAJCWJyZWFrOwogCWRlZmF1 bHQ6CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMjE4MCwxOCArMjEzMyw2IEBAIHN0YXRpYyBpbnQg X3dtODk5NF9zZXRfZmxsKHN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAqY29tcG9uZW50LCBpbnQg aWQsIGludCBzcmMsCiAJICAgIHdtODk5NC0+ZmxsW2lkXS5pbiA9PSBmcmVxX2luICYmIHdtODk5 NC0+ZmxsW2lkXS5vdXQgPT0gZnJlcV9vdXQpCiAJCXJldHVybiAwOwogCi0JLyogSWYgd2UncmUg c3RvcHBpbmcgdGhlIEZMTCByZWRvIHRoZSBvbGQgY29uZmlnIC0gbm8KLQkgKiByZWdpc3RlcnMg d2lsbCBhY3R1YWxseSBiZSB3cml0dGVuIGJ1dCB3ZSBhdm9pZCBHQ0MgZmxvdwotCSAqIGFuYWx5 c2lzIGJ1Z3Mgc3Bld2luZyB3YXJuaW5ncy4KLQkgKi8KLQlpZiAoZnJlcV9vdXQpCi0JCXJldCA9 IHdtODk5NF9nZXRfZmxsX2NvbmZpZyhjb250cm9sLCAmZmxsLCBmcmVxX2luLCBmcmVxX291dCk7 Ci0JZWxzZQotCQlyZXQgPSB3bTg5OTRfZ2V0X2ZsbF9jb25maWcoY29udHJvbCwgJmZsbCwgd204 OTk0LT5mbGxbaWRdLmluLAotCQkJCQkgICAgd204OTk0LT5mbGxbaWRdLm91dCk7Ci0JaWYgKHJl dCA8IDApCi0JCXJldHVybiByZXQ7Ci0KIAkvKiBNYWtlIHN1cmUgdGhhdCB3ZSdyZSBub3QgcHJv dmlkaW5nIFNZU0NMSyByaWdodCBub3cgKi8KIAljbGsxID0gc25kX3NvY19jb21wb25lbnRfcmVh ZDMyKGNvbXBvbmVudCwgV004OTk0X0NMT0NLSU5HXzEpOwogCWlmIChjbGsxICYgV004OTk0X1NZ U0NMS19TUkMpCkBAIC0yMjA3LDkgKzIxNDgsMTEgQEAgc3RhdGljIGludCBfd204OTk0X3NldF9m bGwoc3RydWN0IHNuZF9zb2NfY29tcG9uZW50ICpjb21wb25lbnQsIGludCBpZCwgaW50IHNyYywK IAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAKLQkvKiBXZSBhbHdheXMgbmVlZCB0byBkaXNhYmxlIHRo ZSBGTEwgd2hpbGUgcmVjb25maWd1cmluZyAqLwotCXNuZF9zb2NfY29tcG9uZW50X3VwZGF0ZV9i aXRzKGNvbXBvbmVudCwgV004OTk0X0ZMTDFfQ09OVFJPTF8xICsgcmVnX29mZnNldCwKLQkJCSAg ICBXTTg5OTRfRkxMMV9FTkEsIDApOworCXdhc19lbmFibGVkID0gd21fZmxsX2lzX2VuYWJsZWQo JndtODk5NC0+ZmxsX2h3W2lkXSkgPiAwOworCisJcmV0ID0gd21fZmxsX2Rpc2FibGUoJndtODk5 NC0+ZmxsX2h3W2lkXSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAogCWlmICh3bTg5OTQt PmZsbF9ieXAgJiYgc3JjID09IFdNODk5NF9GTExfU1JDX0JDTEsgJiYKIAkgICAgZnJlcV9pbiA9 PSBmcmVxX291dCAmJiBmcmVxX291dCkgewpAQCAtMjIxNyw0NiArMjE2MCwyMSBAQCBzdGF0aWMg aW50IF93bTg5OTRfc2V0X2ZsbChzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVudCwg aW50IGlkLCBpbnQgc3JjLAogCQlzbmRfc29jX2NvbXBvbmVudF91cGRhdGVfYml0cyhjb21wb25l bnQsIFdNODk5NF9GTEwxX0NPTlRST0xfNSArIHJlZ19vZmZzZXQsCiAJCQkJICAgIFdNODk1OF9G TEwxX0JZUCwgV004OTU4X0ZMTDFfQllQKTsKIAkJZ290byBvdXQ7CisJfSBlbHNlIGlmICh3bTg5 OTQtPmZsbF9ieXApIHsKKwkJc25kX3NvY19jb21wb25lbnRfdXBkYXRlX2JpdHMoY29tcG9uZW50 LCBXTTg5OTRfRkxMMV9DT05UUk9MXzUgKyByZWdfb2Zmc2V0LAorCQkJCSAgICBXTTg5NThfRkxM MV9CWVAsIDApOwogCX0KIAotCXJlZyA9IChmbGwub3V0ZGl2IDw8IFdNODk5NF9GTEwxX09VVERJ Vl9TSElGVCkgfAotCQkoZmxsLmZsbF9mcmF0aW8gPDwgV004OTk0X0ZMTDFfRlJBVElPX1NISUZU KTsKLQlzbmRfc29jX2NvbXBvbmVudF91cGRhdGVfYml0cyhjb21wb25lbnQsIFdNODk5NF9GTEwx X0NPTlRST0xfMiArIHJlZ19vZmZzZXQsCi0JCQkgICAgV004OTk0X0ZMTDFfT1VURElWX01BU0sg fAotCQkJICAgIFdNODk5NF9GTEwxX0ZSQVRJT19NQVNLLCByZWcpOwotCi0Jc25kX3NvY19jb21w b25lbnRfdXBkYXRlX2JpdHMoY29tcG9uZW50LCBXTTg5OTRfRkxMMV9DT05UUk9MXzMgKyByZWdf b2Zmc2V0LAotCQkJICAgIFdNODk5NF9GTEwxX0tfTUFTSywgZmxsLmspOwotCi0Jc25kX3NvY19j b21wb25lbnRfdXBkYXRlX2JpdHMoY29tcG9uZW50LCBXTTg5OTRfRkxMMV9DT05UUk9MXzQgKyBy ZWdfb2Zmc2V0LAotCQkJICAgIFdNODk5NF9GTEwxX05fTUFTSywKLQkJCSAgICBmbGwubiA8PCBX TTg5OTRfRkxMMV9OX1NISUZUKTsKLQotCWlmIChmbGwubGFtYmRhKSB7Ci0JCXNuZF9zb2NfY29t cG9uZW50X3VwZGF0ZV9iaXRzKGNvbXBvbmVudCwgV004OTU4X0ZMTDFfRUZTXzEgKyByZWdfb2Zm c2V0LAotCQkJCSAgICBXTTg5NThfRkxMMV9MQU1CREFfTUFTSywKLQkJCQkgICAgZmxsLmxhbWJk YSk7Ci0JCXNuZF9zb2NfY29tcG9uZW50X3VwZGF0ZV9iaXRzKGNvbXBvbmVudCwgV004OTU4X0ZM TDFfRUZTXzIgKyByZWdfb2Zmc2V0LAotCQkJCSAgICBXTTg5NThfRkxMMV9FRlNfRU5BLCBXTTg5 NThfRkxMMV9FRlNfRU5BKTsKLQl9IGVsc2UgewotCQlzbmRfc29jX2NvbXBvbmVudF91cGRhdGVf Yml0cyhjb21wb25lbnQsIFdNODk1OF9GTEwxX0VGU18yICsgcmVnX29mZnNldCwKLQkJCQkgICAg V004OTU4X0ZMTDFfRUZTX0VOQSwgMCk7Ci0JfQotCi0Jc25kX3NvY19jb21wb25lbnRfdXBkYXRl X2JpdHMoY29tcG9uZW50LCBXTTg5OTRfRkxMMV9DT05UUk9MXzUgKyByZWdfb2Zmc2V0LAotCQkJ ICAgIFdNODk5NF9GTEwxX0ZSQ19OQ08gfCBXTTg5NThfRkxMMV9CWVAgfAotCQkJICAgIFdNODk5 NF9GTEwxX1JFRkNMS19ESVZfTUFTSyB8Ci0JCQkgICAgV004OTk0X0ZMTDFfUkVGQ0xLX1NSQ19N QVNLLAotCQkJICAgICgoc3JjID09IFdNODk5NF9GTExfU1JDX0lOVEVSTkFMKQotCQkJICAgICA8 PCBXTTg5OTRfRkxMMV9GUkNfTkNPX1NISUZUKSB8Ci0JCQkgICAgKGZsbC5jbGtfcmVmX2RpdiA8 PCBXTTg5OTRfRkxMMV9SRUZDTEtfRElWX1NISUZUKSB8Ci0JCQkgICAgKHNyYyAtIDEpKTsKLQot CS8qIENsZWFyIGFueSBwZW5kaW5nIGNvbXBsZXRpb24gZnJvbSBhIHByZXZpb3VzIGZhaWx1cmUg Ki8KLQl0cnlfd2FpdF9mb3JfY29tcGxldGlvbigmd204OTk0LT5mbGxfbG9ja2VkW2lkXSk7Ci0K LQkvKiBFbmFibGUgKHdpdGggZnJhY3Rpb25hbCBtb2RlIGlmIHJlcXVpcmVkKSAqLwogCWlmIChm cmVxX291dCkgeworCQl3bTg5OTQtPmZsbF9od1tpZF0uZnJlcV9pbiA9IGZyZXFfaW47CisJCXJl dCA9IHdtX2ZsbF9zZXRfcGFyZW50KCZ3bTg5OTQtPmZsbF9od1tpZF0sIHNyYyk7CisJCWlmICgh cmV0KQorCQkJcmV0ID0gd21fZmxsX3NldF9yYXRlKCZ3bTg5OTQtPmZsbF9od1tpZF0sIGZyZXFf b3V0KTsKKwkJaWYgKCFyZXQpCisJCQlyZXQgPSB3bV9mbGxfZW5hYmxlKCZ3bTg5OTQtPmZsbF9o d1tpZF0pOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisKIAkJLyogRW5hYmxlIFZN SUQgaWYgd2UgbmVlZCBpdCAqLwogCQlpZiAoIXdhc19lbmFibGVkKSB7CiAJCQlhY3RpdmVfcmVm ZXJlbmNlKGNvbXBvbmVudCk7CkBAIC0yMjczLDI3ICsyMTkxLDYgQEAgc3RhdGljIGludCBfd204 OTk0X3NldF9mbGwoc3RydWN0IHNuZF9zb2NfY29tcG9uZW50ICpjb21wb25lbnQsIGludCBpZCwg aW50IHNyYywKIAkJCQlicmVhazsKIAkJCX0KIAkJfQotCi0JCXJlZyA9IFdNODk5NF9GTEwxX0VO QTsKLQotCQlpZiAoZmxsLmspCi0JCQlyZWcgfD0gV004OTk0X0ZMTDFfRlJBQzsKLQkJaWYgKHNy YyA9PSBXTTg5OTRfRkxMX1NSQ19JTlRFUk5BTCkKLQkJCXJlZyB8PSBXTTg5OTRfRkxMMV9PU0Nf RU5BOwotCi0JCXNuZF9zb2NfY29tcG9uZW50X3VwZGF0ZV9iaXRzKGNvbXBvbmVudCwgV004OTk0 X0ZMTDFfQ09OVFJPTF8xICsgcmVnX29mZnNldCwKLQkJCQkgICAgV004OTk0X0ZMTDFfRU5BIHwg V004OTk0X0ZMTDFfT1NDX0VOQSB8Ci0JCQkJICAgIFdNODk5NF9GTEwxX0ZSQUMsIHJlZyk7Ci0K LQkJaWYgKHdtODk5NC0+ZmxsX2xvY2tlZF9pcnEpIHsKLQkJCXRpbWVvdXQgPSB3YWl0X2Zvcl9j b21wbGV0aW9uX3RpbWVvdXQoJndtODk5NC0+ZmxsX2xvY2tlZFtpZF0sCi0JCQkJCQkJICAgICAg bXNlY3NfdG9famlmZmllcygxMCkpOwotCQkJaWYgKHRpbWVvdXQgPT0gMCkKLQkJCQlkZXZfd2Fy bihjb21wb25lbnQtPmRldiwKLQkJCQkJICJUaW1lZCBvdXQgd2FpdGluZyBmb3IgRkxMIGxvY2tc biIpOwotCQl9IGVsc2UgewotCQkJbXNsZWVwKDUpOwotCQl9CiAJfSBlbHNlIHsKIAkJaWYgKHdh c19lbmFibGVkKSB7CiAJCQlzd2l0Y2ggKGNvbnRyb2wtPnR5cGUpIHsKQEAgLTIzNTAsMTUgKzIy NDcsNiBAQCBzdGF0aWMgaW50IF93bTg5OTRfc2V0X2ZsbChzdHJ1Y3Qgc25kX3NvY19jb21wb25l bnQgKmNvbXBvbmVudCwgaW50IGlkLCBpbnQgc3JjLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMg aXJxcmV0dXJuX3Qgd204OTk0X2ZsbF9sb2NrZWRfaXJxKGludCBpcnEsIHZvaWQgKmRhdGEpCi17 Ci0Jc3RydWN0IGNvbXBsZXRpb24gKmNvbXBsZXRpb24gPSBkYXRhOwotCi0JY29tcGxldGUoY29t cGxldGlvbik7Ci0KLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KIHN0YXRpYyBpbnQgb3BjbGtf ZGl2c1tdID0geyAxMCwgMjAsIDMwLCA0MCwgNTUsIDYwLCA4MCwgMTIwLCAxNjAgfTsKIAogc3Rh dGljIGludCB3bTg5OTRfc2V0X2ZsbChzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IGlkLCBp bnQgc3JjLApAQCAtMzk5Miw2ICszODgwLDE4IEBAIHN0YXRpYyBpbnQgd204OTk0X2NvbXBvbmVu dF9wcm9iZShzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVudCkKIAogCXNuZF9zb2Nf Y29tcG9uZW50X2luaXRfcmVnbWFwKGNvbXBvbmVudCwgY29udHJvbC0+cmVnbWFwKTsKIAorCWZv ciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODk5NC0+ZmxsX2h3KTsgKytpKSB7CisJCXdtODk5 NC0+ZmxsX2h3W2ldLnJlZ21hcCA9IGNvbnRyb2wtPnJlZ21hcDsKKwkJaWYgKGNvbnRyb2wtPnR5 cGUgPT0gV004OTk0KQorCQkJd204OTk0LT5mbGxfaHdbaV0uZGVzYyA9IHdtODk5NF9mbGxfZGVz YzsKKwkJZWxzZQorCQkJd204OTk0LT5mbGxfaHdbaV0uZGVzYyA9IHdtODk1OF9mbGxfZGVzYzsK KworCQlyZXQgPSB3bV9mbGxfaW5pdCgmd204OTk0LT5mbGxfaHdbaV0pOworCQlpZiAocmV0KQor CQkJcmV0dXJuIHJldDsKKwl9CisKIAl3bTg5OTQtPmh1YnMuY29tcG9uZW50ID0gY29tcG9uZW50 OwogCiAJbXV0ZXhfaW5pdCgmd204OTk0LT5hY2NkZXRfbG9jayk7CkBAIC00MDEzLDkgKzM5MTMs NiBAQCBzdGF0aWMgaW50IHdtODk5NF9jb21wb25lbnRfcHJvYmUoc3RydWN0IHNuZF9zb2NfY29t cG9uZW50ICpjb21wb25lbnQpCiAKIAlJTklUX0RFTEFZRURfV09SSygmd204OTk0LT5taWNfY29t cGxldGVfd29yaywgd204OTU4X21pY193b3JrKTsKIAotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9T SVpFKHdtODk5NC0+ZmxsX2xvY2tlZCk7IGkrKykKLQkJaW5pdF9jb21wbGV0aW9uKCZ3bTg5OTQt PmZsbF9sb2NrZWRbaV0pOwotCiAJd204OTk0LT5taWNkZXRfaXJxID0gY29udHJvbC0+cGRhdGEu bWljZGV0X2lycTsKIAogCS8qIEJ5IGRlZmF1bHQgdXNlIGlkbGVfYmlhc19vZmYsIHdpbGwgb3Zl cnJpZGUgZm9yIFdNODk5NCAqLwpAQCAtNDE2NiwxNiArNDA2Myw2IEBAIHN0YXRpYyBpbnQgd204 OTk0X2NvbXBvbmVudF9wcm9iZShzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVudCkK IAkJYnJlYWs7CiAJfQogCi0Jd204OTk0LT5mbGxfbG9ja2VkX2lycSA9IHRydWU7Ci0JZm9yIChp ID0gMDsgaSA8IEFSUkFZX1NJWkUod204OTk0LT5mbGxfbG9ja2VkKTsgaSsrKSB7Ci0JCXJldCA9 IHdtODk5NF9yZXF1ZXN0X2lycSh3bTg5OTQtPndtODk5NCwKLQkJCQkJIFdNODk5NF9JUlFfRkxM MV9MT0NLICsgaSwKLQkJCQkJIHdtODk5NF9mbGxfbG9ja2VkX2lycSwgIkZMTCBsb2NrIiwKLQkJ CQkJICZ3bTg5OTQtPmZsbF9sb2NrZWRbaV0pOwotCQlpZiAocmV0ICE9IDApCi0JCQl3bTg5OTQt PmZsbF9sb2NrZWRfaXJxID0gZmFsc2U7Ci0JfQotCiAJLyogTWFrZSBzdXJlIHdlIGNhbiByZWFk IGZyb20gdGhlIEdQSU9zIGlmIHRoZXkncmUgaW5wdXRzICovCiAJcG1fcnVudGltZV9nZXRfc3lu Yyhjb21wb25lbnQtPmRldik7CiAKQEAgLTQzNzcsOSArNDI2NCw2IEBAIHN0YXRpYyBpbnQgd204 OTk0X2NvbXBvbmVudF9wcm9iZShzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVudCkK IAl3bTg5OTRfZnJlZV9pcnEod204OTk0LT53bTg5OTQsIFdNODk5NF9JUlFfTUlDMV9TSFJULCB3 bTg5OTQpOwogCWlmICh3bTg5OTQtPm1pY2RldF9pcnEpCiAJCWZyZWVfaXJxKHdtODk5NC0+bWlj ZGV0X2lycSwgd204OTk0KTsKLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg5OTQtPmZs bF9sb2NrZWQpOyBpKyspCi0JCXdtODk5NF9mcmVlX2lycSh3bTg5OTQtPndtODk5NCwgV004OTk0 X0lSUV9GTEwxX0xPQ0sgKyBpLAotCQkJCSZ3bTg5OTQtPmZsbF9sb2NrZWRbaV0pOwogCXdtODk5 NF9mcmVlX2lycSh3bTg5OTQtPndtODk5NCwgV004OTk0X0lSUV9EQ1NfRE9ORSwKIAkJCSZ3bTg5 OTQtPmh1YnMpOwogCXdtODk5NF9mcmVlX2lycSh3bTg5OTQtPndtODk5NCwgV004OTk0X0lSUV9G SUZPU19FUlIsIGNvbXBvbmVudCk7CkBAIC00MzkzLDExICs0Mjc3LDYgQEAgc3RhdGljIHZvaWQg d204OTk0X2NvbXBvbmVudF9yZW1vdmUoc3RydWN0IHNuZF9zb2NfY29tcG9uZW50ICpjb21wb25l bnQpCiB7CiAJc3RydWN0IHdtODk5NF9wcml2ICp3bTg5OTQgPSBzbmRfc29jX2NvbXBvbmVudF9n ZXRfZHJ2ZGF0YShjb21wb25lbnQpOwogCXN0cnVjdCB3bTg5OTQgKmNvbnRyb2wgPSB3bTg5OTQt PndtODk5NDsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODk5NC0+ ZmxsX2xvY2tlZCk7IGkrKykKLQkJd204OTk0X2ZyZWVfaXJxKHdtODk5NC0+d204OTk0LCBXTTg5 OTRfSVJRX0ZMTDFfTE9DSyArIGksCi0JCQkJJndtODk5NC0+ZmxsX2xvY2tlZFtpXSk7CiAKIAl3 bTg5OTRfZnJlZV9pcnEod204OTk0LT53bTg5OTQsIFdNODk5NF9JUlFfRENTX0RPTkUsCiAJCQkm d204OTk0LT5odWJzKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204OTk0LmggYi9z b3VuZC9zb2MvY29kZWNzL3dtODk5NC5oCmluZGV4IDFkNmYyYWJlMWMxMS4uOWM2MWQ5NWM5MDUz IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtODk5NC5oCisrKyBiL3NvdW5kL3NvYy9j b2RlY3Mvd204OTk0LmgKQEAgLTEzLDYgKzEzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tdXRleC5o PgogCiAjaW5jbHVkZSAid21faHVicy5oIgorI2luY2x1ZGUgIndtX2ZsbC5oIgogCiAvKiBTb3Vy Y2VzIGZvciBBSUYxLzIgU1lTQ0xLIC0gdXNlIHdpdGggc2V0X2RhaV9zeXNjbGsoKSAqLwogI2Rl ZmluZSBXTTg5OTRfU1lTQ0xLX01DTEsxIDEKQEAgLTgwLDggKzgxLDcgQEAgc3RydWN0IHdtODk5 NF9wcml2IHsKIAlpbnQgYWlmZGl2WzJdOwogCWludCBjaGFubmVsc1syXTsKIAlzdHJ1Y3Qgd204 OTk0X2ZsbF9jb25maWcgZmxsWzJdLCBmbGxfc3VzcGVuZFsyXTsKLQlzdHJ1Y3QgY29tcGxldGlv biBmbGxfbG9ja2VkWzJdOwotCWJvb2wgZmxsX2xvY2tlZF9pcnE7CisJc3RydWN0IHdtX2ZsbF9k YXRhIGZsbF9od1syXTsKIAlib29sIGZsbF9ieXA7CiAJYm9vbCBjbGtfaGFzX3J1bjsKIAotLSAK Mi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo=