From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ACD3C30FB9 for ; Mon, 16 Oct 2023 17:16:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="eP7384q/" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-1ca3a54d2c4so16459705ad.3 for ; Mon, 16 Oct 2023 10:16:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1697476607; x=1698081407; darn=lists.linux.dev; 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=oOnkKW9E33HHzsaH2XgU+G+2xfhOZYjGYZoXUL8UE40=; b=eP7384q/9p5PiG7REcuBoh0M/Ew5Hs3w5s/49NKes/y0BV5HlWCh5cZ1xA9AV57I++ m2magfxj/NfOh3bbigW0ceTDKimIJqguGdJNElkrGTrRqcwq66gzay+UarjlmK1U+rLk lX6sN+Ss6Hg0rViXJD/2C28zXyj41MI3i1gxvOU2/PHlw/JqL80Pwt1g4b+2KkTd2HlR QnsFSSpDXsOAUJmst0OgFTbgzpf6UOhK5td1oD1EUl8C9HGLQBVF2gT7w5/dxdSlWrZs rW74Xo5V9XmFeqypmbd2D2C3bXHizJj2h9tbjiNQjc4Tdpf30h+JW013l0e/R2J1NDTH Oy8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697476607; x=1698081407; 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=oOnkKW9E33HHzsaH2XgU+G+2xfhOZYjGYZoXUL8UE40=; b=i33xomRpxbIi2Vk9k+uRXysnbNGHZAQsTMqU/p7qeMbDzS1EqnUzYcLXzibv9T/fTe 5TJLNFzrv8EoZYJ2iEeqatSlQp6LWNK09+RanyeK5tuiadZYYH3R6XMBLcKW/DFMCo52 zygr5HED7kW+dSRzRnLhKAsXAqPLV3vrWPsyEhc9P99V14HPM8YEY5aH2//fsN08jjhV DyYN/GuOsU5U2vLSBUZw0Whnqom5bu2MJpQbR4WamNi4rsNLJLzxPb9QvRuZq69Ko+vG EVuS4J2CKUeWMFsXQXWVTQppWmGT24dM7X28uSpb3UXsXpbBexah9K/jwM4P1p4fQxtx IqKQ== X-Gm-Message-State: AOJu0Yz0V1AR2Lse5Oi/T4B7MP3eg5qSXfJCzog2vXoHFIfTvafHsnzd mxylKwXc9qZNKp/VWn4xZdl9 X-Google-Smtp-Source: AGHT+IFho1tjm5iK0/PdZpwOJVLlzh60B+Z1CzCZJ5QivVrZEGbF5FhDL6PPek4KbSf6TWQbtLGYZw== X-Received: by 2002:a17:903:22c9:b0:1ca:8b74:17ff with SMTP id y9-20020a17090322c900b001ca8b7417ffmr1919597plg.26.1697476606907; Mon, 16 Oct 2023 10:16:46 -0700 (PDT) Received: from thinkpad ([117.207.31.199]) by smtp.gmail.com with ESMTPSA id c15-20020a170903234f00b001c62b9a51c0sm8698818plh.103.2023.10.16.10.16.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Oct 2023 10:16:46 -0700 (PDT) Date: Mon, 16 Oct 2023 22:46:37 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: aisheng.dong@nxp.com, bhelgaas@google.com, devicetree@vger.kernel.org, festevam@gmail.com, imx@lists.linux.dev, jdmason@kudzu.us, kernel@pengutronix.de, kishon@kernel.org, kw@linux.com, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lorenzo.pieralisi@arm.com, lpieralisi@kernel.org, maz@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org, tglx@linutronix.de Subject: Re: [PATCH v2 0/5] Add RC-to-EP doorbell with platform MSI controller Message-ID: <20231016171637.GJ39962@thinkpad> References: <20230911220920.1817033-1-Frank.Li@nxp.com> <20230930090249.GB3564@thinkpad> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Mon, Oct 16, 2023 at 10:50:58AM -0400, Frank Li wrote: > On Tue, Oct 10, 2023 at 10:21:24AM -0400, Frank Li wrote: > > On Sat, Sep 30, 2023 at 11:02:49AM +0200, Manivannan Sadhasivam wrote: > > > On Wed, Sep 20, 2023 at 05:39:48PM -0400, Frank Li wrote: > > > > On Mon, Sep 11, 2023 at 06:09:15PM -0400, Frank Li wrote: > > > > > ┌────────────┐ ┌───────────────────────────────────┐ ┌────────────────┐ > > > > > │ │ │ │ │ │ > > > > > │ │ │ PCI Endpoint │ │ PCI Host │ > > > > > │ │ │ │ │ │ > > > > > │ │◄──┤ 1.platform_msi_domain_alloc_irqs()│ │ │ > > > > > │ │ │ │ │ │ > > > > > │ MSI ├──►│ 2.write_msi_msg() ├──►├─BAR │ > > > > > │ Controller │ │ update doorbell register address│ │ │ > > > > > │ │ │ for BAR │ │ │ > > > > > │ │ │ │ │ 3. Write BAR│ > > > > > │ │◄──┼───────────────────────────────────┼───┤ │ > > > > > │ │ │ │ │ │ > > > > > │ ├──►│ 4.Irq Handle │ │ │ > > > > > │ │ │ │ │ │ > > > > > │ │ │ │ │ │ > > > > > └────────────┘ └───────────────────────────────────┘ └────────────────┘ > > > > > > > > @mani: > > > > Do you have chance to review this patch again? > > > > > > I was on vacation for past few weeks. Will take a look in the coming week. > > > > Ping? > > > > Frank > > @mani: did you have chance to look at this? > Sorry for the long delay. I will take a look tomorrow. - Mani > > > > > > > > - Mani > > > > > > > > > > > Frank > > > > > > > > > > > > > > This patches based on old https://lore.kernel.org/imx/20221124055036.1630573-1-Frank.Li@nxp.com/ > > > > > > > > > > Original patch only target to vntb driver. But actually it is common > > > > > method. > > > > > > > > > > This patches add new API to pci-epf-core, so any EP driver can use it. > > > > > > > > > > The key point is comments from Thomas Gleixner, who suggest use new > > > > > PCI/IMS. But arm platform change still not be merged yet. > > > > > > > > > > git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git devmsi-v2-arm > > > > > > > > > > So I still use existed method implement RC to EP doorbell. > > > > > > > > > > If Thomas Gleixner want to continue work on devmsi-v2-arm, I can help test > > > > > and update this patch. > > > > > > > > > > Change from v1 to v2 > > > > > - Add missed patch for endpont/pci-epf-test.c > > > > > - Move alloc and free to epc driver from epf. > > > > > - Provide general help function for EPC driver to alloc platform msi irq. > > > > > - Fixed manivannan's comments. > > > > > > > > > > Frank Li (5): > > > > > PCI: endpoint: Add RC-to-EP doorbell support using platform MSI > > > > > controller > > > > > PCI: dwc: add doorbell support by use MSI controller > > > > > PCI: endpoint: pci-epf-test: add doorbell test > > > > > misc: pci_endpoint_test: Add doorbell test case > > > > > tools: PCI: Add 'B' option for test doorbell > > > > > > > > > > drivers/misc/pci_endpoint_test.c | 48 +++++ > > > > > .../pci/controller/dwc/pcie-designware-ep.c | 2 + > > > > > drivers/pci/endpoint/functions/pci-epf-test.c | 59 +++++- > > > > > drivers/pci/endpoint/pci-epc-core.c | 192 ++++++++++++++++++ > > > > > drivers/pci/endpoint/pci-epf-core.c | 44 ++++ > > > > > include/linux/pci-epc.h | 6 + > > > > > include/linux/pci-epf.h | 7 + > > > > > include/uapi/linux/pcitest.h | 1 + > > > > > tools/pci/pcitest.c | 16 +- > > > > > 9 files changed, 373 insertions(+), 2 deletions(-) > > > > > > > > > > -- > > > > > 2.34.1 > > > > > > > > > > > -- > > > மணிவண்ணன் சதாசிவம் -- மணிவண்ணன் சதாசிவம் 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 31E61CDB474 for ; Mon, 16 Oct 2023 17:17:21 +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=dWoh1UZjqUgjwRNgd9/OoAh/dIcaWIL7OUNQN59ARMA=; b=03eQu4kxmEVYd/ /V8YVhNv03cJQFgzB++dtWV1HhZhA24bx6oRWJYgzlYZe+z8Iam5PPfOb6q5B87ZHvM1QoFfBopQB 7Y/ZUfkDyIWY8Obnq4olWCzmM+v7Eob3ZYWabiPAtxv65tqRRIPcz4XVhwb55WN/MmxHIm8Bdx6vb JCMc8LPOsUHFP25juA9DoaqDJuTklO6RTQhQJdQgMEuIA8Tff9Va+I89lAcYuohdk3GDjGylPqFgA TR5RGy8HXficetvnkcymLdbvHIKVdeBApcFXfSK33KJYdtnz450gHprxdouPs2ySLpEjlzoFnegIn KGRGNX/b1KInOw4jJKeQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qsRD1-00ADhL-11; Mon, 16 Oct 2023 17:16:51 +0000 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qsRCy-00ADg7-0b for linux-arm-kernel@lists.infradead.org; Mon, 16 Oct 2023 17:16:49 +0000 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-1c9d407bb15so39969155ad.0 for ; Mon, 16 Oct 2023 10:16:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1697476607; x=1698081407; 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=oOnkKW9E33HHzsaH2XgU+G+2xfhOZYjGYZoXUL8UE40=; b=epznB3YTf3o/OliFwDXyMikRAWxz4GlgJsvxnEXUWOJlaHS+93QM5lHyeDURKdhR4f eFofmViStrioT268gGIkEcJcdO/XMANs+vV/gW4lJ+0zETLLbvsYLIiEx0f5DL3Kh57F UR/2eo7Et+IZx4NbyNHhKu1kU3K5R/v44SQHSX0ajVnCnNeEgu6U6yvJLtktnXPrVX56 AgOO9Oc0a+SEtrU7LPv3HcGVv+pMiRLlsO3p7v3NRSj56Lhcxm7L15XWf7eDrZTTZRhp x9Jh1PsaWsCgj2tgdQesPYfMrcyI52riWHlZ732DDnmHFYEn+kRSXP+f0mBIE7N6gMbJ cidA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697476607; x=1698081407; 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=oOnkKW9E33HHzsaH2XgU+G+2xfhOZYjGYZoXUL8UE40=; b=FJYQfzTAna6K4LoXmvKgIDCeN3gA1mB/QuFRSjz+K8UL4bYkuWyrt7lXBV7W7BBh1r VP0EJCnKFsxKd2RHfYq4HLoyA7pC7JNcKG246tOYZzHBBSHto6cJOy1i1GGYP23Nc47F 6zckNxgHlxnRfYgX505HSsqRk52M786sLVu045/COp4ysXK4f1ZM+9zdzWcc/tdJp1bj 4qDHt2Q6OoY0nho7hxs/3m5mIT1kD9Aer40Vun+h5H0aS3V67UrgnytKsHpcK89UKo98 pnZn0UJ8HlvfX45D1Z2X4GB/hFG+tzYzgieyBOdkoym053ttLX0EgVkBHKy/Z/oixUj8 l+Uw== X-Gm-Message-State: AOJu0YxTugWhBd7g8SoBpC0KkFLyN+o+X1EdHBfcVxDUtSpgKxdcQsjO 0YP4CeJhBZIt8ZDBfXQvNGce X-Google-Smtp-Source: AGHT+IFho1tjm5iK0/PdZpwOJVLlzh60B+Z1CzCZJ5QivVrZEGbF5FhDL6PPek4KbSf6TWQbtLGYZw== X-Received: by 2002:a17:903:22c9:b0:1ca:8b74:17ff with SMTP id y9-20020a17090322c900b001ca8b7417ffmr1919597plg.26.1697476606907; Mon, 16 Oct 2023 10:16:46 -0700 (PDT) Received: from thinkpad ([117.207.31.199]) by smtp.gmail.com with ESMTPSA id c15-20020a170903234f00b001c62b9a51c0sm8698818plh.103.2023.10.16.10.16.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Oct 2023 10:16:46 -0700 (PDT) Date: Mon, 16 Oct 2023 22:46:37 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: aisheng.dong@nxp.com, bhelgaas@google.com, devicetree@vger.kernel.org, festevam@gmail.com, imx@lists.linux.dev, jdmason@kudzu.us, kernel@pengutronix.de, kishon@kernel.org, kw@linux.com, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lorenzo.pieralisi@arm.com, lpieralisi@kernel.org, maz@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org, tglx@linutronix.de Subject: Re: [PATCH v2 0/5] Add RC-to-EP doorbell with platform MSI controller Message-ID: <20231016171637.GJ39962@thinkpad> References: <20230911220920.1817033-1-Frank.Li@nxp.com> <20230930090249.GB3564@thinkpad> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231016_101648_230854_75C66BA0 X-CRM114-Status: GOOD ( 31.04 ) 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 T24gTW9uLCBPY3QgMTYsIDIwMjMgYXQgMTA6NTA6NThBTSAtMDQwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4gT24gVHVlLCBPY3QgMTAsIDIwMjMgYXQgMTA6MjE6MjRBTSAtMDQwMCwgRnJhbmsgTGkgd3Jv dGU6Cj4gPiBPbiBTYXQsIFNlcCAzMCwgMjAyMyBhdCAxMTowMjo0OUFNICswMjAwLCBNYW5pdmFu bmFuIFNhZGhhc2l2YW0gd3JvdGU6Cj4gPiA+IE9uIFdlZCwgU2VwIDIwLCAyMDIzIGF0IDA1OjM5 OjQ4UE0gLTA0MDAsIEZyYW5rIExpIHdyb3RlOgo+ID4gPiA+IE9uIE1vbiwgU2VwIDExLCAyMDIz IGF0IDA2OjA5OjE1UE0gLTA0MDAsIEZyYW5rIExpIHdyb3RlOgo+ID4gPiA+ID4g4pSM4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCj4gPiA+ID4gPiDilIIgICAgICAgICAg ICDilIIgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgIOKUgiAg ICAgICAgICAgICAgICDilIIKPiA+ID4gPiA+IOKUgiAgICAgICAgICAgIOKUgiAgIOKUgiBQQ0kg RW5kcG9pbnQgICAgICAgICAgICAgICAgICAgICAg4pSCICAg4pSCIFBDSSBIb3N0ICAgICAgIOKU ggo+ID4gPiA+ID4g4pSCICAgICAgICAgICAg4pSCICAg4pSCICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICDilIIgICDilIIgICAgICAgICAgICAgICAg4pSCCj4gPiA+ID4gPiDilIIg ICAgICAgICAgICDilILil4TilIDilIDilKQgMS5wbGF0Zm9ybV9tc2lfZG9tYWluX2FsbG9jX2ly cXMoKeKUgiAgIOKUgiAgICAgICAgICAgICAgICDilIIKPiA+ID4gPiA+IOKUgiAgICAgICAgICAg IOKUgiAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAg4pSCICAg ICAgICAgICAgICAgIOKUggo+ID4gPiA+ID4g4pSCIE1TSSAgICAgICAg4pSc4pSA4pSA4pa64pSC IDIud3JpdGVfbXNpX21zZygpICAgICAgICAgICAgICAgICDilJzilIDilIDilrrilJzilIBCQVI8 bj4gICAgICAgICDilIIKPiA+ID4gPiA+IOKUgiBDb250cm9sbGVyIOKUgiAgIOKUgiAgIHVwZGF0 ZSBkb29yYmVsbCByZWdpc3RlciBhZGRyZXNz4pSCICAg4pSCICAgICAgICAgICAgICAgIOKUggo+ ID4gPiA+ID4g4pSCICAgICAgICAgICAg4pSCICAg4pSCICAgZm9yIEJBUiAgICAgICAgICAgICAg ICAgICAgICAgICDilIIgICDilIIgICAgICAgICAgICAgICAg4pSCCj4gPiA+ID4gPiDilIIgICAg ICAgICAgICDilIIgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAg IOKUgiAzLiBXcml0ZSBCQVI8bj7ilIIKPiA+ID4gPiA+IOKUgiAgICAgICAgICAgIOKUguKXhOKU gOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU vOKUgOKUgOKUgOKUpCAgICAgICAgICAgICAgICDilIIKPiA+ID4gPiA+IOKUgiAgICAgICAgICAg IOKUgiAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAg4pSCICAg ICAgICAgICAgICAgIOKUggo+ID4gPiA+ID4g4pSCICAgICAgICAgICAg4pSc4pSA4pSA4pa64pSC IDQuSXJxIEhhbmRsZSAgICAgICAgICAgICAgICAgICAgICDilIIgICDilIIgICAgICAgICAgICAg ICAg4pSCCj4gPiA+ID4gPiDilIIgICAgICAgICAgICDilIIgICDilIIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIOKUgiAgIOKUgiAgICAgICAgICAgICAgICDilIIKPiA+ID4gPiA+ IOKUgiAgICAgICAgICAgIOKUgiAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAg4pSCICAg4pSCICAgICAgICAgICAgICAgIOKUggo+ID4gPiA+ID4g4pSU4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYCj4gPiA+ID4gCj4gPiA+ID4gQG1hbmk6Cj4gPiA+ ID4gCURvIHlvdSBoYXZlIGNoYW5jZSB0byByZXZpZXcgdGhpcyBwYXRjaCBhZ2Fpbj8KPiA+ID4g Cj4gPiA+IEkgd2FzIG9uIHZhY2F0aW9uIGZvciBwYXN0IGZldyB3ZWVrcy4gV2lsbCB0YWtlIGEg bG9vayBpbiB0aGUgY29taW5nIHdlZWsuCj4gPiAKPiA+IFBpbmc/Cj4gPiAKPiA+IEZyYW5rCj4g Cj4gQG1hbmk6IGRpZCB5b3UgaGF2ZSBjaGFuY2UgdG8gbG9vayBhdCB0aGlzPwo+IAoKU29ycnkg Zm9yIHRoZSBsb25nIGRlbGF5LiBJIHdpbGwgdGFrZSBhIGxvb2sgdG9tb3Jyb3cuCgotIE1hbmkK Cj4gPiAKPiA+ID4gCj4gPiA+IC0gTWFuaQo+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiBGcmFuawo+ ID4gPiA+IAo+ID4gPiA+ID4gCj4gPiA+ID4gPiBUaGlzIHBhdGNoZXMgYmFzZWQgb24gb2xkIGh0 dHBzOi8vbG9yZS5rZXJuZWwub3JnL2lteC8yMDIyMTEyNDA1NTAzNi4xNjMwNTczLTEtRnJhbmsu TGlAbnhwLmNvbS8KPiA+ID4gPiA+IAo+ID4gPiA+ID4gT3JpZ2luYWwgcGF0Y2ggb25seSB0YXJn ZXQgdG8gdm50YiBkcml2ZXIuIEJ1dCBhY3R1YWxseSBpdCBpcyBjb21tb24KPiA+ID4gPiA+IG1l dGhvZC4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gVGhpcyBwYXRjaGVzIGFkZCBuZXcgQVBJIHRvIHBj aS1lcGYtY29yZSwgc28gYW55IEVQIGRyaXZlciBjYW4gdXNlIGl0Lgo+ID4gPiA+ID4gCj4gPiA+ ID4gPiBUaGUga2V5IHBvaW50IGlzIGNvbW1lbnRzIGZyb20gVGhvbWFzIEdsZWl4bmVyLCB3aG8g c3VnZ2VzdCB1c2UgbmV3Cj4gPiA+ID4gPiBQQ0kvSU1TLiBCdXQgYXJtIHBsYXRmb3JtIGNoYW5n ZSBzdGlsbCBub3QgYmUgbWVyZ2VkIHlldC4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gZ2l0Oi8vZ2l0 Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RnbHgvZGV2ZWwuZ2l0IGRldm1z aS12Mi1hcm0KPiA+ID4gPiA+IAo+ID4gPiA+ID4gU28gSSBzdGlsbCB1c2UgZXhpc3RlZCBtZXRo b2QgaW1wbGVtZW50IFJDIHRvIEVQIGRvb3JiZWxsLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBJZiBU aG9tYXMgR2xlaXhuZXIgd2FudCB0byBjb250aW51ZSB3b3JrIG9uIGRldm1zaS12Mi1hcm0sIEkg Y2FuIGhlbHAgdGVzdAo+ID4gPiA+ID4gYW5kIHVwZGF0ZSB0aGlzIHBhdGNoLgo+ID4gPiA+ID4g Cj4gPiA+ID4gPiBDaGFuZ2UgZnJvbSB2MSB0byB2Mgo+ID4gPiA+ID4gLSBBZGQgbWlzc2VkIHBh dGNoIGZvciBlbmRwb250L3BjaS1lcGYtdGVzdC5jCj4gPiA+ID4gPiAtIE1vdmUgYWxsb2MgYW5k IGZyZWUgdG8gZXBjIGRyaXZlciBmcm9tIGVwZi4KPiA+ID4gPiA+IC0gUHJvdmlkZSBnZW5lcmFs IGhlbHAgZnVuY3Rpb24gZm9yIEVQQyBkcml2ZXIgdG8gYWxsb2MgcGxhdGZvcm0gbXNpIGlycS4K PiA+ID4gPiA+IC0gRml4ZWQgbWFuaXZhbm5hbidzIGNvbW1lbnRzLgo+ID4gPiA+ID4gCj4gPiA+ ID4gPiBGcmFuayBMaSAoNSk6Cj4gPiA+ID4gPiAgIFBDSTogZW5kcG9pbnQ6IEFkZCBSQy10by1F UCBkb29yYmVsbCBzdXBwb3J0IHVzaW5nIHBsYXRmb3JtIE1TSQo+ID4gPiA+ID4gICAgIGNvbnRy b2xsZXIKPiA+ID4gPiA+ICAgUENJOiBkd2M6IGFkZCBkb29yYmVsbCBzdXBwb3J0IGJ5IHVzZSBN U0kgY29udHJvbGxlcgo+ID4gPiA+ID4gICBQQ0k6IGVuZHBvaW50OiBwY2ktZXBmLXRlc3Q6IGFk ZCBkb29yYmVsbCB0ZXN0Cj4gPiA+ID4gPiAgIG1pc2M6IHBjaV9lbmRwb2ludF90ZXN0OiBBZGQg ZG9vcmJlbGwgdGVzdCBjYXNlCj4gPiA+ID4gPiAgIHRvb2xzOiBQQ0k6IEFkZCAnQicgb3B0aW9u IGZvciB0ZXN0IGRvb3JiZWxsCj4gPiA+ID4gPiAKPiA+ID4gPiA+ICBkcml2ZXJzL21pc2MvcGNp X2VuZHBvaW50X3Rlc3QuYyAgICAgICAgICAgICAgfCAgNDggKysrKysKPiA+ID4gPiA+ICAuLi4v cGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS1lcC5jICAgfCAgIDIgKwo+ID4gPiA+ ID4gIGRyaXZlcnMvcGNpL2VuZHBvaW50L2Z1bmN0aW9ucy9wY2ktZXBmLXRlc3QuYyB8ICA1OSAr KysrKy0KPiA+ID4gPiA+ICBkcml2ZXJzL3BjaS9lbmRwb2ludC9wY2ktZXBjLWNvcmUuYyAgICAg ICAgICAgfCAxOTIgKysrKysrKysrKysrKysrKysrCj4gPiA+ID4gPiAgZHJpdmVycy9wY2kvZW5k cG9pbnQvcGNpLWVwZi1jb3JlLmMgICAgICAgICAgIHwgIDQ0ICsrKysKPiA+ID4gPiA+ICBpbmNs dWRlL2xpbnV4L3BjaS1lcGMuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKwo+ID4gPiA+ ID4gIGluY2x1ZGUvbGludXgvcGNpLWVwZi5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyAr Cj4gPiA+ID4gPiAgaW5jbHVkZS91YXBpL2xpbnV4L3BjaXRlc3QuaCAgICAgICAgICAgICAgICAg IHwgICAxICsKPiA+ID4gPiA+ICB0b29scy9wY2kvcGNpdGVzdC5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgMTYgKy0KPiA+ID4gPiA+ICA5IGZpbGVzIGNoYW5nZWQsIDM3MyBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQo+ID4gPiA+ID4gCj4gPiA+ID4gPiAtLSAKPiA+ID4gPiA+ IDIuMzQuMQo+ID4gPiA+ID4gCj4gPiA+IAo+ID4gPiAtLSAKPiA+ID4g4K6u4K6j4K6/4K614K6j 4K+N4K6j4K6p4K+NIOCumuCupOCuvuCumuCuv+CuteCuruCvjQoKLS0gCuCuruCuo+Cuv+CuteCu o+CvjeCuo+CuqeCvjSDgrprgrqTgrr7grprgrr/grrXgrq7gr40KCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBs aXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK