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 0A951C4345F for ; Sat, 27 Apr 2024 11:48:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=RqP7aIC7WFV7eEnVmLl9PWEa7Au5ncaqhOlL1CWrdTw=; b=aY0mjyiF/Hd4DN yyUnXTfcjUhp7yS6l6VFfLxZPyKGEvD60neGI+XlzkTgOGLVHHmMvA77g/7aQtEf+OAKA9hkpZ57o 5U+HQ2GWzRRFogbZr5OePSNgXEHuTmNLwQfU7JPoTtvjPWx7fuhfh6Mc8ajFXBV3NqLmnBMC9j+l3 Og7tM5BtXPZq67Qy3zvr8rFp41mFpM49kyHeiyUquXwmecU7GsyRCFqJ83r4w6GLja9qPeHc0pppW li0vkexWKeFRZYmBzmK0ynrDHQvEf7IddtKwJ/24ciZgAEUGCd5h80PyaeWErJ/lwxZKjqMPbN0ij xNZDQbmy1s7je0yusnNA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s0gX2-0000000FTOP-2KVQ; Sat, 27 Apr 2024 11:47:52 +0000 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s0gWz-0000000FTNX-0P8X for linux-arm-kernel@lists.infradead.org; Sat, 27 Apr 2024 11:47:50 +0000 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-2a484f772e2so2067435a91.3 for ; Sat, 27 Apr 2024 04:47:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1714218467; x=1714823267; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=HcfbaR8kZq8OLnUAT2pXDqoM8fNnWHLJf3IpXP9uecY=; b=PznOAdUv4S6iWTNDP1BNVubvwsNwEW/xHhQptajP7SCGv54WgCxfBRWh5l3lwekYat 4xqSyvEP+fEnV5iazrYkKITm6ua2cMtzIYDvlQZD/g2D6fekU4lnv6Wc9LAbkRZhezib 1yKoWu1n4CLkmo7n7xP4tLtX29NshVQf2xBhF4A+BYKJ6YzQoLZkdYgZ1owCTw3VLZb9 FybzLIIo4BHeO6u2w2Qcgj4mnaCR3xxKRreW0o3RAEMt+PbEsCN22pAH/mXlP/p8WGa+ DUhP7Qb0jsh2t6QK2qtlQWynA1nIhZbTXn2GwKz8zf8ozXVDCPLM5t4sJiazySl3otLe VV9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714218467; x=1714823267; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=HcfbaR8kZq8OLnUAT2pXDqoM8fNnWHLJf3IpXP9uecY=; b=sR063v2QdqUqjcoUN6cItSW10rGmc8Zh1LSQzuyA9x5ljLrLmRLsLIBl5b4Dk1/TOM 74avT0u9EFpTrG2KLtqoQ+BnqcDjGfhFonrdvwqsBukvb3QG9AUgYznIU/igNJ420G+C Hm3KG6KEjTTXae8vp5l1drA+/2h4t00sXUckk79b6qctZpSuxM5v+Y+T+1VjwHM2ts0K +bmKseXo+kpVwCXzpAkJ31DDl84wMA4VXFfrNxYLH0iCPZYkASOsykKM6zb1J4er7MKY 8vxHDV0dNdRSAWn1Z6qkwcFF4c9czWnSbG+UuIKWsJM6tzDGL6WIWOpaM8IDdcZ85uJx mciQ== X-Forwarded-Encrypted: i=1; AJvYcCVAv1UsLNM8KYzJ9jy6O+w4rKMgAjKLX+2E7/rFSxe06mg8Nl9xOmzIbje5zhE8L09WaDzJGPXs81PT9Dq6YKOutPvOdZHHtQUh04MbSUUqFMOTyaA= X-Gm-Message-State: AOJu0Ywv8y8jIzgd4bjmo/QfpSrkpDycirHAMruD29wrwFhtICLDtpu4 9PIje6CGVU7WVGHRVEW0osVjgfTtnlq2qdiJT64qdlJbhUlJ1KMIHg0XJaYTtg== X-Google-Smtp-Source: AGHT+IGeS2NJ9XxwhqftWfQ5PmQrFQpYK3kdhK248fghwiiRxIGhENovfD8acLiKv+RBllo0edUJtw== X-Received: by 2002:a17:90a:5d0e:b0:2af:f382:158b with SMTP id s14-20020a17090a5d0e00b002aff382158bmr4524138pji.49.1714218466853; Sat, 27 Apr 2024 04:47:46 -0700 (PDT) Received: from thinkpad ([117.213.97.210]) by smtp.gmail.com with ESMTPSA id l9-20020a17090a070900b002a528a1f907sm19257945pjl.56.2024.04.27.04.47.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Apr 2024 04:47:46 -0700 (PDT) Date: Sat, 27 Apr 2024 17:17:36 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Rob Herring , Bjorn Helgaas , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Philipp Zabel , Liam Girdwood , Mark Brown , Krzysztof Kozlowski , Conor Dooley , linux-pci@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org, devicetree@vger.kernel.org Subject: Re: [PATCH v3 11/11] PCI: imx6: Add i.MX8Q PCIe support Message-ID: <20240427114736.GO1981@thinkpad> References: <20240402-pci2_upstream-v3-0-803414bdb430@nxp.com> <20240402-pci2_upstream-v3-11-803414bdb430@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240402-pci2_upstream-v3-11-803414bdb430@nxp.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240427_044749_192550_12134F99 X-CRM114-Status: GOOD ( 29.35 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVHVlLCBBcHIgMDIsIDIwMjQgYXQgMTA6MzM6NDdBTSAtMDQwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4gRnJvbTogUmljaGFyZCBaaHUgPGhvbmd4aW5nLnpodUBueHAuY29tPgo+IAo+IEFkZCBpLk1Y OFEgKGkuTVg4UU0sIGkuTVg4UVhQIGFuZCBpLk1YOERYTCkgUENJZSBzdXBwb3J0Lgo+IAoKQWRk IHNvbWUgaW5mbyBsaWtlIElQIHZlcnNpb24sIFBDSWUgR2VuLCBob3cgZGlmZmVyZW50IHRoZSBj b2RlIHN1cHBvcnQKY29tcGFydGVkIHRvIHByZXZpb3VzIFNvQ3MgZXRjLi4uCgo+IFNpZ25lZC1v ZmYtYnk6IFJpY2hhcmQgWmh1IDxob25neGluZy56aHVAbnhwLmNvbT4KPiBTaWduZWQtb2ZmLWJ5 OiBGcmFuayBMaSA8RnJhbmsuTGlAbnhwLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9wY2kvY29udHJv bGxlci9kd2MvcGNpZS1pbXguYyB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCj4gIDEgZmlsZSBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaW14LmMgYi9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL2R3Yy9wY2llLWlteC5jCj4gaW5kZXggMzc4ODA4MjYyZDE2Yi4uYWY3Yzc5ZTg2OWU3 MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWlteC5jCj4g KysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1pbXguYwo+IEBAIC0zMCw2ICsz MCw3IEBACj4gICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4 L3Jlc2V0Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+Cj4gKyNpbmNsdWRlIDxsaW51 eC9waHkvcGNpZS5oPgo+ICAjaW5jbHVkZSA8bGludXgvcG1fZG9tYWluLmg+Cj4gICNpbmNsdWRl IDxsaW51eC9wbV9ydW50aW1lLmg+Cj4gIAo+IEBAIC04MSw2ICs4Miw3IEBAIGVudW0gaW14X3Bj aWVfdmFyaWFudHMgewo+ICAJSU1YOE1RLAo+ICAJSU1YOE1NLAo+ICAJSU1YOE1QLAo+ICsJSU1Y OFEsCj4gIAlJTVg5NSwKPiAgCUlNWDhNUV9FUCwKPiAgCUlNWDhNTV9FUCwKPiBAQCAtOTYsNiAr OTgsNyBAQCBlbnVtIGlteF9wY2llX3ZhcmlhbnRzIHsKPiAgI2RlZmluZSBJTVhfUENJRV9GTEFH X0hBU19QSFlfUkVTRVQJCUJJVCg1KQo+ICAjZGVmaW5lIElNWF9QQ0lFX0ZMQUdfSEFTX1NFUkRF UwkJQklUKDYpCj4gICNkZWZpbmUgSU1YX1BDSUVfRkxBR19TVVBQT1JUXzY0QklUCQlCSVQoNykK PiArI2RlZmluZSBJTVhfUENJRV9GTEFHX0NQVV9BRERSX0ZJWFVQCQlCSVQoOCkKPiAgCj4gICNk ZWZpbmUgaW14X2NoZWNrX2ZsYWcocGNpLCB2YWwpICAgICAocGNpLT5kcnZkYXRhLT5mbGFncyAm IHZhbCkKPiAgCj4gQEAgLTEzMiw2ICsxMzUsNyBAQCBzdHJ1Y3QgaW14X3BjaWUgewo+ICAJc3Ry dWN0IHJlZ21hcAkJKmlvbXV4Y19ncHI7Cj4gIAl1MTYJCQltc2lfY3RybDsKPiAgCXUzMgkJCWNv bnRyb2xsZXJfaWQ7Cj4gKwl1MzIJCQlsb2NhbF9hZGRyOwo+ICAJc3RydWN0IHJlc2V0X2NvbnRy b2wJKnBjaWVwaHlfcmVzZXQ7Cj4gIAlzdHJ1Y3QgcmVzZXRfY29udHJvbAkqYXBwc19yZXNldDsK PiAgCXN0cnVjdCByZXNldF9jb250cm9sCSp0dXJub2ZmX3Jlc2V0Owo+IEBAIC00MDIsNiArNDA2 LDEwIEBAIHN0YXRpYyB2b2lkIGlteF9wY2llX2NvbmZpZ3VyZV90eXBlKHN0cnVjdCBpbXhfcGNp ZSAqaW14X3BjaWUpCj4gIAlpZiAoIWRydmRhdGEtPm1vZGVfbWFza1tpZF0pCj4gIAkJaWQgPSAw Owo+ICAKPiArCS8qIElmIG1vZGVfbWFzayBpcyAwLCBtZWFucyB1c2UgcGh5IGRyaXZlciB0byBz ZXQgbW9kZSAqLwo+ICsJaWYgKCFkcnZkYXRhLT5tb2RlX21hc2tbaWRdKQo+ICsJCXJldHVybjsK ClRoZXJlIGlzIGFscmVhZHkgYSBjaGVjayBhYm92ZSBmb3IgMCBtb2RlX21hc2suIFBsZWFzZSBj b25zb2xpZGF0ZS4KCj4gKwo+ICAJbWFzayA9IGRydmRhdGEtPm1vZGVfbWFza1tpZF07Cj4gIAl2 YWwgPSBtb2RlIDw8IChmZnMobWFzaykgLSAxKTsKPiAgCj4gQEAgLTk1Nyw2ICs5NjUsNyBAQCBz dGF0aWMgdm9pZCBpbXhfcGNpZV9sdHNzbV9lbmFibGUoc3RydWN0IGRldmljZSAqZGV2KQo+ICAJ c3RydWN0IGlteF9wY2llICppbXhfcGNpZSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICAJY29u c3Qgc3RydWN0IGlteF9wY2llX2RydmRhdGEgKmRydmRhdGEgPSBpbXhfcGNpZS0+ZHJ2ZGF0YTsK PiAgCj4gKwlwaHlfc2V0X3NwZWVkKGlteF9wY2llLT5waHksIFBDSV9FWFBfTE5LQ0FQX1NMU18y XzVHQik7Cj4gIAlpZiAoZHJ2ZGF0YS0+bHRzc21fbWFzaykKPiAgCQlyZWdtYXBfdXBkYXRlX2Jp dHMoaW14X3BjaWUtPmlvbXV4Y19ncHIsIGRydmRhdGEtPmx0c3NtX29mZiwgZHJ2ZGF0YS0+bHRz c21fbWFzaywKPiAgCQkJCSAgIGRydmRhdGEtPmx0c3NtX21hc2spOwo+IEBAIC05NjksNiArOTc4 LDcgQEAgc3RhdGljIHZvaWQgaW14X3BjaWVfbHRzc21fZGlzYWJsZShzdHJ1Y3QgZGV2aWNlICpk ZXYpCj4gIAlzdHJ1Y3QgaW14X3BjaWUgKmlteF9wY2llID0gZGV2X2dldF9kcnZkYXRhKGRldik7 Cj4gIAljb25zdCBzdHJ1Y3QgaW14X3BjaWVfZHJ2ZGF0YSAqZHJ2ZGF0YSA9IGlteF9wY2llLT5k cnZkYXRhOwo+ICAKPiArCXBoeV9zZXRfc3BlZWQoaW14X3BjaWUtPnBoeSwgMCk7Cj4gIAlpZiAo ZHJ2ZGF0YS0+bHRzc21fbWFzaykKPiAgCQlyZWdtYXBfdXBkYXRlX2JpdHMoaW14X3BjaWUtPmlv bXV4Y19ncHIsIGRydmRhdGEtPmx0c3NtX29mZiwKPiAgCQkJCSAgIGRydmRhdGEtPmx0c3NtX21h c2ssIDApOwo+IEBAIC0xMTA0LDYgKzExMTQsMTIgQEAgc3RhdGljIGludCBpbXhfcGNpZV9ob3N0 X2luaXQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICAJCQlnb3RvIGVycl9jbGtfZGlzYWJsZTsK PiAgCQl9Cj4gIAo+ICsJCXJldCA9IHBoeV9zZXRfbW9kZV9leHQoaW14X3BjaWUtPnBoeSwgUEhZ X01PREVfUENJRSwgUEhZX01PREVfUENJRV9SQyk7Cj4gKwkJaWYgKHJldCkgewo+ICsJCQlkZXZf ZXJyKGRldiwgInVuYWJsZSB0byBzZXQgcGNpZSBQSFkgbW9kZVxuIik7Cj4gKwkJCWdvdG8gZXJy X3BoeV9vZmY7Cj4gKwkJfQoKVGhpcyBpcyBub3QgaS5NWDhRIHNwZWNpZmljLiBQbGVhc2UgYWRk IGl0IGluIGEgc2VwYXJhdGUgcGF0Y2guCgo+ICsKPiAgCQlyZXQgPSBwaHlfcG93ZXJfb24oaW14 X3BjaWUtPnBoeSk7Cj4gIAkJaWYgKHJldCkgewo+ICAJCQlkZXZfZXJyKGRldiwgIndhaXRpbmcg Zm9yIFBIWSByZWFkeSB0aW1lb3V0IVxuIik7Cj4gQEAgLTExNTQsNiArMTE3MCwyOCBAQCBzdGF0 aWMgdm9pZCBpbXhfcGNpZV9ob3N0X2V4aXQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICAJCXJl Z3VsYXRvcl9kaXNhYmxlKGlteF9wY2llLT52cGNpZSk7Cj4gIH0KPiAgCj4gK3N0YXRpYyB1NjQg aW14X3BjaWVfY3B1X2FkZHJfZml4dXAoc3RydWN0IGR3X3BjaWUgKnBjaWUsIHU2NCBjcHVfYWRk cikKPiArewo+ICsJc3RydWN0IGlteF9wY2llICppbXhfcGNpZSA9IHRvX2lteF9wY2llKHBjaWUp Owo+ICsJc3RydWN0IGR3X3BjaWVfZXAgKmVwID0gJnBjaWUtPmVwOwo+ICsJc3RydWN0IGR3X3Bj aWVfcnAgKnBwID0gJnBjaWUtPnBwOwo+ICsJc3RydWN0IHJlc291cmNlX2VudHJ5ICplbnRyeTsK PiArCXVuc2lnbmVkIGludCBvZmZzZXQ7Cj4gKwo+ICsJaWYgKCEoaW14X3BjaWUtPmRydmRhdGEt PmZsYWdzICYgSU1YX1BDSUVfRkxBR19DUFVfQUREUl9GSVhVUCkpCgpUaGlzIGZsYWcgc2hvdWxk IGJlIGRvY3VtZW50ZWQgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLgoKPiArCQlyZXR1cm4gY3B1X2Fk ZHI7Cj4gKwo+ICsJaWYgKGlteF9wY2llLT5kcnZkYXRhLT5tb2RlID09IERXX1BDSUVfRVBfVFlQ RSkgewo+ICsJCW9mZnNldCA9IGVwLT5waHlzX2Jhc2U7Cj4gKwl9IGVsc2Ugewo+ICsJCWVudHJ5 ID0gcmVzb3VyY2VfbGlzdF9maXJzdF90eXBlKCZwcC0+YnJpZGdlLT53aW5kb3dzLAo+ICsJCQkJ CQkgSU9SRVNPVVJDRV9NRU0pOwoKQ2hlY2sgZm9yIE5VTEwgZW50cnkuCgo+ICsJCW9mZnNldCA9 IGVudHJ5LT5yZXMtPnN0YXJ0Owo+ICsJfQo+ICsKPiArCXJldHVybiAoY3B1X2FkZHIgKyBpbXhf cGNpZS0+bG9jYWxfYWRkciAtIG9mZnNldCk7Cj4gK30KPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHdfcGNpZV9ob3N0X29wcyBpbXhfcGNpZV9ob3N0X29wcyA9IHsKPiAgCS5pbml0ID0gaW14 X3BjaWVfaG9zdF9pbml0LAo+ICAJLmRlaW5pdCA9IGlteF9wY2llX2hvc3RfZXhpdCwKPiBAQCAt MTE2Miw2ICsxMjAwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkd19wY2llX2hvc3Rfb3BzIGlt eF9wY2llX2hvc3Rfb3BzID0gewo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGR3X3BjaWVfb3BzIGR3 X3BjaWVfb3BzID0gewo+ICAJLnN0YXJ0X2xpbmsgPSBpbXhfcGNpZV9zdGFydF9saW5rLAo+ICAJ LnN0b3BfbGluayA9IGlteF9wY2llX3N0b3BfbGluaywKPiArCS5jcHVfYWRkcl9maXh1cCA9IGlt eF9wY2llX2NwdV9hZGRyX2ZpeHVwLAo+ICB9Owo+ICAKPiAgc3RhdGljIHZvaWQgaW14X3BjaWVf ZXBfaW5pdChzdHJ1Y3QgZHdfcGNpZV9lcCAqZXApCj4gQEAgLTE0ODEsNiArMTUyMCwxMiBAQCBz dGF0aWMgaW50IGlteF9wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4g IAkJCQkJICAgICAiRmFpbGVkIHRvIGdldCBQQ0lFUEhZIHJlc2V0IGNvbnRyb2xcbiIpOwo+ICAJ fQo+ICAKPiArCWlmIChpbXhfY2hlY2tfZmxhZyhpbXhfcGNpZSwgSU1YX1BDSUVfRkxBR19DUFVf QUREUl9GSVhVUCkpIHsKPiArCQlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihub2RlLCAiZnNs LGxvY2FsLWFkZHJlc3MiLCAmaW14X3BjaWUtPmxvY2FsX2FkZHIpOwo+ICsJCWlmIChyZXQpCj4g KwkJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiRmFpbGVkIHRvIGdldCBsb2NhbC1h ZGRyZXNzIik7CgpJcyBpdCBPSyB0byBjb250aW51ZT8KCi0gTWFuaQoKLS0gCuCuruCuo+Cuv+Cu teCuo+CvjeCuo+CuqeCvjSDgrprgrqTgrr7grprgrr/grrXgrq7gr40KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK