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 59688CFC51E for ; Sat, 22 Nov 2025 09:38:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Subject:Cc:To:From: 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=Bvp3ywi9lhdI/Xf4lqizcKjRt46VWyjXdWJlRwnRuQ0=; b=389q+Yex5R7n5GzRta1rn+canH ypuam2C+Wws3HCAH989iEeS9KV7FNrxpNCBlPI27TMTkR2JmPMJCnEB29ZNoYRB/IqRWYGyqkn4Dm CIUxfF02KDM4/lWy7PXeHYuN3W2tua/8JwnozoLfbBgioVLDio1QByqcnLzIFRF42RoUEEtvAGI5T F7wZJKPV480L+N630u8nfI2G4rbI93dlUby1uYDshRjXC66diUhZhOdghyzgEG+2kgmtLUqzuSy20 i03zPn5xSZ+uBNO/3gmwJCDGPehJ1hEnXfUcmC7vdXk+/i6J5XK9GPwDcvRGcKeYpLdba50S/IKLG 6lvbPiwQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vMk4G-00000009Qos-09Mm; Sat, 22 Nov 2025 09:38:08 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vMk4D-00000009QoQ-1wOK; Sat, 22 Nov 2025 09:38:06 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id C281B404C1; Sat, 22 Nov 2025 09:38:02 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 94781C4CEF5; Sat, 22 Nov 2025 09:38:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763804282; bh=XYJsNNEAFKWw+GFpRdXSFOCFfouPlV2hU/sp7ovg0ng=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=RUJRkzdtRToNgW4Uy5JkI2e2Dch22SVdb2x7yUV/20KlwHeEDQYiSywUzeq4rdC9c J2o4aQPO2LfK812kH5eHQbekl/XxEw804txakvdVtSwu5CC4pgcZXgxnyrvBBuQt4x kD/cv+zr7+zndCu5SLbt0RiIooG1/OS1c5EeXeiUxJSDxoMnTJ8yz7WiPFMigPpTdo vPPZ2DYCyk+ERCfCqbChitSkEMcbzeZ6Ftlit0wZ9i0twkG9n6+wfmZ947yNpHrNK0 cW2JGAgWULrKcLZ2Eds3zl3uAjiktb41EaEJswDtO0LMU3NY7oCIC35o+2S+x85v0R 8e36id9jvF0/A== Received: from sofa.misterjones.org ([185.219.108.64] helo=lobster-girl.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vMk47-00000007SZ3-3Ecj; Sat, 22 Nov 2025 09:37:59 +0000 Date: Sat, 22 Nov 2025 09:37:58 +0000 Message-ID: <87ms4eflvt.wl-maz@kernel.org> From: Marc Zyngier To: niliqiang Cc: sunilvl@ventanamicro.com, ajones@ventanamicro.com, anup@brainfault.org, apatel@ventanamicro.com, atishp@atishpatra.org, bjorn@kernel.org, conor+dt@kernel.org, deng.weixian@zte.com.cn, devicetree@vger.kernel.org, frowand.list@gmail.com, hu.yuye@zte.com.cn, krzysztof.kozlowski+dt@linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, ni.liqiang@zte.com.cn, palmer@dabbelt.com, paul.walmsley@sifive.com, robh+dt@kernel.org, saravanak@google.com, tglx@linutronix.de, dai.hualiang@zte.com.cn, liu.qingtao2@zte.com.cn, guo.chang2@zte.com.cn, wu.jiabao@zte.com.cn, liu.wenhong35@zte.com.cn Subject: Re: [PATCH v16 6/9] irqchip: Add RISC-V advanced PLIC driver for direct-mode In-Reply-To: <20251121135407.53372-1-ni_liqiang@126.com> References: <20251121135407.53372-1-ni_liqiang@126.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.1 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: ni_liqiang@126.com, sunilvl@ventanamicro.com, ajones@ventanamicro.com, anup@brainfault.org, apatel@ventanamicro.com, atishp@atishpatra.org, bjorn@kernel.org, conor+dt@kernel.org, deng.weixian@zte.com.cn, devicetree@vger.kernel.org, frowand.list@gmail.com, hu.yuye@zte.com.cn, krzysztof.kozlowski+dt@linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, ni.liqiang@zte.com.cn, palmer@dabbelt.com, paul.walmsley@sifive.com, robh+dt@kernel.org, saravanak@google.com, tglx@linutronix.de, dai.hualiang@zte.com.cn, liu.qingtao2@zte.com.cn, guo.chang2@zte.com.cn, wu.jiabao@zte.com.cn, liu.wenhong35@zte.com.cn X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251122_013805_557591_DB72627F X-CRM114-Status: GOOD ( 12.12 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Fri, 21 Nov 2025 13:54:07 +0000, niliqiang wrote: > [...] > 2. But the OS enumerates them in random order upon each boot (first boot = sequence =E2=89=A0 second boot sequence) > first boot sequence ~ # dmesg |grep -i "PCI Root" > [ 8794.588531] ACPI: PCI Root Bridge [PC08] (domain 0006 [bus 80-ff]) > [ 8794.624478] ACPI: PCI Root Bridge [PC06] (domain 0005 [bus 00-ff]) > [ 8794.672741] ACPI: PCI Root Bridge [PC10] (domain 0008 [bus 00-ff]) > [ 8794.696680] ACPI: PCI Root Bridge [PC07] (domain 0006 [bus 00-7f]) > [ 8794.728234] ACPI: PCI Root Bridge [PC11] (domain 0009 [bus 00-ff]) > [ 8794.755098] ACPI: PCI Root Bridge [PC09] (domain 0007 [bus 00-ff]) > second boot sequence ~ # dmesg |grep -i "PCI Root" > [ 8794.588531] ACPI: PCI Root Bridge [PC09] (domain 0007 [bus 00-ff]) > [ 8794.624478] ACPI: PCI Root Bridge [PC06] (domain 0005 [bus 00-ff]) > [ 8794.672741] ACPI: PCI Root Bridge [PC08] (domain 0006 [bus 80-ff]) > [ 8794.696680] ACPI: PCI Root Bridge [PC11] (domain 0009 [bus 00-ff]) > [ 8794.728234] ACPI: PCI Root Bridge [PC07] (domain 0006 [bus 00-7f]) > [ 8794.755098] ACPI: PCI Root Bridge [PC10] (domain 0008 [bus 00-ff]) >=20 > This creates a critical issue: when NVMe devices are connected to > these host bridges, the unpredictable kernel scanning sequence > causes device identifiers (e.g., /dev/nvme0n1, /dev/nvme1n1) to > change across reboots. In server environments, such device naming > instability is unacceptable as it breaks storage configuration > reliability and consistency. You're barking up the wrong tree. It is *userspace*'s job to ensure this consistency. That's why udev exists. That's why device and partition UUIDs exist. In short, this isn't the kernel's job. The kernel gives you all the tools you need already. Thanks, M. --=20 Jazz isn't dead. It just smells funny. 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 6BCF8CFC521 for ; Sat, 22 Nov 2025 09:38:27 +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:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Subject:To:From: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=by3TSIrzU4zZhCRtuhBcY8lADgeuR6t9X5i9yDPCxEE=; b=ecURzydEQw6SX5 naqVhhtbfOzOWeMIx+hj5v6C4nPM38JrYCA+KnDlc7skj7eSsY1bbOgVU0i4LCjoIFrsz1UuX2rdh stlyUj5s9Oh8AkH5xQQJfGv4X1DDmzBWMD09kxnwxiLm1b+hzqeDl3ttg5wl9JDW5IsBNJifYlwIX tiPTT1kkrn8OHpVfBhQnO8M949A2Xp3bWBueT/hfnEWxOuCRnHNuFLm4ItSVQny2pjVox8OQSS0O7 /NU6B7QWzx50wpR5bzJMeuV+bzskVX2bj6ksS6frq1C9D+gxzqHSIj+EsHsdVGT+Jc5NKkJQ0MmNz x0GLPsuXcXGe7H9DGJRQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vMk4G-00000009Qp8-1KyW; Sat, 22 Nov 2025 09:38:08 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vMk4D-00000009QoQ-1wOK; Sat, 22 Nov 2025 09:38:06 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id C281B404C1; Sat, 22 Nov 2025 09:38:02 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 94781C4CEF5; Sat, 22 Nov 2025 09:38:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763804282; bh=XYJsNNEAFKWw+GFpRdXSFOCFfouPlV2hU/sp7ovg0ng=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=RUJRkzdtRToNgW4Uy5JkI2e2Dch22SVdb2x7yUV/20KlwHeEDQYiSywUzeq4rdC9c J2o4aQPO2LfK812kH5eHQbekl/XxEw804txakvdVtSwu5CC4pgcZXgxnyrvBBuQt4x kD/cv+zr7+zndCu5SLbt0RiIooG1/OS1c5EeXeiUxJSDxoMnTJ8yz7WiPFMigPpTdo vPPZ2DYCyk+ERCfCqbChitSkEMcbzeZ6Ftlit0wZ9i0twkG9n6+wfmZ947yNpHrNK0 cW2JGAgWULrKcLZ2Eds3zl3uAjiktb41EaEJswDtO0LMU3NY7oCIC35o+2S+x85v0R 8e36id9jvF0/A== Received: from sofa.misterjones.org ([185.219.108.64] helo=lobster-girl.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vMk47-00000007SZ3-3Ecj; Sat, 22 Nov 2025 09:37:59 +0000 Date: Sat, 22 Nov 2025 09:37:58 +0000 Message-ID: <87ms4eflvt.wl-maz@kernel.org> From: Marc Zyngier To: niliqiang Subject: Re: [PATCH v16 6/9] irqchip: Add RISC-V advanced PLIC driver for direct-mode In-Reply-To: <20251121135407.53372-1-ni_liqiang@126.com> References: <20251121135407.53372-1-ni_liqiang@126.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.1 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: ni_liqiang@126.com, sunilvl@ventanamicro.com, ajones@ventanamicro.com, anup@brainfault.org, apatel@ventanamicro.com, atishp@atishpatra.org, bjorn@kernel.org, conor+dt@kernel.org, deng.weixian@zte.com.cn, devicetree@vger.kernel.org, frowand.list@gmail.com, hu.yuye@zte.com.cn, krzysztof.kozlowski+dt@linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, ni.liqiang@zte.com.cn, palmer@dabbelt.com, paul.walmsley@sifive.com, robh+dt@kernel.org, saravanak@google.com, tglx@linutronix.de, dai.hualiang@zte.com.cn, liu.qingtao2@zte.com.cn, guo.chang2@zte.com.cn, wu.jiabao@zte.com.cn, liu.wenhong35@zte.com.cn X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251122_013805_557591_DB72627F X-CRM114-Status: GOOD ( 12.12 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dai.hualiang@zte.com.cn, atishp@atishpatra.org, krzysztof.kozlowski+dt@linaro.org, linux-riscv@lists.infradead.org, frowand.list@gmail.com, hu.yuye@zte.com.cn, saravanak@google.com, anup@brainfault.org, liu.qingtao2@zte.com.cn, wu.jiabao@zte.com.cn, ajones@ventanamicro.com, devicetree@vger.kernel.org, conor+dt@kernel.org, robh+dt@kernel.org, paul.walmsley@sifive.com, tglx@linutronix.de, linux-arm-kernel@lists.infradead.org, apatel@ventanamicro.com, guo.chang2@zte.com.cn, ni.liqiang@zte.com.cn, linux-kernel@vger.kernel.org, bjorn@kernel.org, liu.wenhong35@zte.com.cn, palmer@dabbelt.com, deng.weixian@zte.com.cn Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gRnJpLCAyMSBOb3YgMjAyNSAxMzo1NDowNyArMDAwMCwKbmlsaXFpYW5nIDxuaV9saXFpYW5n QDEyNi5jb20+IHdyb3RlOgo+CgpbLi4uXQoKPiAyLiBCdXQgdGhlIE9TIGVudW1lcmF0ZXMgdGhl bSBpbiByYW5kb20gb3JkZXIgdXBvbiBlYWNoIGJvb3QgKGZpcnN0IGJvb3Qgc2VxdWVuY2Ug4omg IHNlY29uZCBib290IHNlcXVlbmNlKQo+IGZpcnN0IGJvb3Qgc2VxdWVuY2UgfiAjIGRtZXNnIHxn cmVwIC1pICJQQ0kgUm9vdCIKPiBbIDg3OTQuNTg4NTMxXSBBQ1BJOiBQQ0kgUm9vdCBCcmlkZ2Ug W1BDMDhdIChkb21haW4gMDAwNiBbYnVzIDgwLWZmXSkKPiBbIDg3OTQuNjI0NDc4XSBBQ1BJOiBQ Q0kgUm9vdCBCcmlkZ2UgW1BDMDZdIChkb21haW4gMDAwNSBbYnVzIDAwLWZmXSkKPiBbIDg3OTQu NjcyNzQxXSBBQ1BJOiBQQ0kgUm9vdCBCcmlkZ2UgW1BDMTBdIChkb21haW4gMDAwOCBbYnVzIDAw LWZmXSkKPiBbIDg3OTQuNjk2NjgwXSBBQ1BJOiBQQ0kgUm9vdCBCcmlkZ2UgW1BDMDddIChkb21h aW4gMDAwNiBbYnVzIDAwLTdmXSkKPiBbIDg3OTQuNzI4MjM0XSBBQ1BJOiBQQ0kgUm9vdCBCcmlk Z2UgW1BDMTFdIChkb21haW4gMDAwOSBbYnVzIDAwLWZmXSkKPiBbIDg3OTQuNzU1MDk4XSBBQ1BJ OiBQQ0kgUm9vdCBCcmlkZ2UgW1BDMDldIChkb21haW4gMDAwNyBbYnVzIDAwLWZmXSkKPiBzZWNv bmQgYm9vdCBzZXF1ZW5jZSB+ICMgZG1lc2cgfGdyZXAgLWkgIlBDSSBSb290Igo+IFsgODc5NC41 ODg1MzFdIEFDUEk6IFBDSSBSb290IEJyaWRnZSBbUEMwOV0gKGRvbWFpbiAwMDA3IFtidXMgMDAt ZmZdKQo+IFsgODc5NC42MjQ0NzhdIEFDUEk6IFBDSSBSb290IEJyaWRnZSBbUEMwNl0gKGRvbWFp biAwMDA1IFtidXMgMDAtZmZdKQo+IFsgODc5NC42NzI3NDFdIEFDUEk6IFBDSSBSb290IEJyaWRn ZSBbUEMwOF0gKGRvbWFpbiAwMDA2IFtidXMgODAtZmZdKQo+IFsgODc5NC42OTY2ODBdIEFDUEk6 IFBDSSBSb290IEJyaWRnZSBbUEMxMV0gKGRvbWFpbiAwMDA5IFtidXMgMDAtZmZdKQo+IFsgODc5 NC43MjgyMzRdIEFDUEk6IFBDSSBSb290IEJyaWRnZSBbUEMwN10gKGRvbWFpbiAwMDA2IFtidXMg MDAtN2ZdKQo+IFsgODc5NC43NTUwOThdIEFDUEk6IFBDSSBSb290IEJyaWRnZSBbUEMxMF0gKGRv bWFpbiAwMDA4IFtidXMgMDAtZmZdKQo+IAo+IFRoaXMgY3JlYXRlcyBhIGNyaXRpY2FsIGlzc3Vl OiB3aGVuIE5WTWUgZGV2aWNlcyBhcmUgY29ubmVjdGVkIHRvCj4gdGhlc2UgaG9zdCBicmlkZ2Vz LCB0aGUgdW5wcmVkaWN0YWJsZSBrZXJuZWwgc2Nhbm5pbmcgc2VxdWVuY2UKPiBjYXVzZXMgZGV2 aWNlIGlkZW50aWZpZXJzIChlLmcuLCAvZGV2L252bWUwbjEsIC9kZXYvbnZtZTFuMSkgdG8KPiBj aGFuZ2UgYWNyb3NzIHJlYm9vdHMuIEluIHNlcnZlciBlbnZpcm9ubWVudHMsIHN1Y2ggZGV2aWNl IG5hbWluZwo+IGluc3RhYmlsaXR5IGlzIHVuYWNjZXB0YWJsZSBhcyBpdCBicmVha3Mgc3RvcmFn ZSBjb25maWd1cmF0aW9uCj4gcmVsaWFiaWxpdHkgYW5kIGNvbnNpc3RlbmN5LgoKWW91J3JlIGJh cmtpbmcgdXAgdGhlIHdyb25nIHRyZWUuIEl0IGlzICp1c2Vyc3BhY2UqJ3Mgam9iIHRvIGVuc3Vy ZQp0aGlzIGNvbnNpc3RlbmN5LiBUaGF0J3Mgd2h5IHVkZXYgZXhpc3RzLiBUaGF0J3Mgd2h5IGRl dmljZSBhbmQKcGFydGl0aW9uIFVVSURzIGV4aXN0LiBJbiBzaG9ydCwgdGhpcyBpc24ndCB0aGUg a2VybmVsJ3Mgam9iLiBUaGUKa2VybmVsIGdpdmVzIHlvdSBhbGwgdGhlIHRvb2xzIHlvdSBuZWVk IGFscmVhZHkuCgpUaGFua3MsCgoJTS4KCi0tIApKYXp6IGlzbid0IGRlYWQuIEl0IGp1c3Qgc21l bGxzIGZ1bm55LgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5v cmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNj dgo=