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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7F2A9C433EF for ; Wed, 1 Jun 2022 09:21:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351010AbiFAJVa (ORCPT ); Wed, 1 Jun 2022 05:21:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44162 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1350194AbiFAJVZ (ORCPT ); Wed, 1 Jun 2022 05:21:25 -0400 Received: from alexa-out.qualcomm.com (alexa-out.qualcomm.com [129.46.98.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C2F1C580E2; Wed, 1 Jun 2022 02:21:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1654075285; x=1685611285; h=message-id:date:mime-version:subject:from:to:cc: references:in-reply-to:content-transfer-encoding; bh=yMzSNegJTY36Tsg8xrGuN/+TPtYGTwZt2sCHlutuh6Q=; b=WFj0GdFDnpqY09BwdHRkG4vKdTDUL+YUwI9BTjg+4phJFthH7QGYS7TP Rt+Q7En4edn5WgKCwL7XLV9kwl5wk2HYUDDAtyQdYBCg1NNJaaaG2fUy6 UpK8qcvltX0oIG4tc0s5oEy+UDYx4fl95vZ8rL40imQrGthCgdtwWvJoq I=; Received: from ironmsg07-lv.qualcomm.com ([10.47.202.151]) by alexa-out.qualcomm.com with ESMTP; 01 Jun 2022 02:21:24 -0700 X-QCInternal: smtphost Received: from nasanex01c.na.qualcomm.com ([10.47.97.222]) by ironmsg07-lv.qualcomm.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Jun 2022 02:21:23 -0700 Received: from nalasex01a.na.qualcomm.com (10.47.209.196) by nasanex01c.na.qualcomm.com (10.47.97.222) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Wed, 1 Jun 2022 02:21:23 -0700 Received: from [10.253.36.238] (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Wed, 1 Jun 2022 02:21:19 -0700 Message-ID: <7d6b2e24-21f4-eef1-a722-23cdcd1d8a88@quicinc.com> Date: Wed, 1 Jun 2022 17:21:16 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [PATCH v7 02/10] Coresight: Add coresight TPDM source driver Content-Language: en-US From: Jinlong Mao To: Suzuki K Poulose , Mathieu Poirier , Alexander Shishkin , Konrad Dybcio , Mike Leach CC: Greg Kroah-Hartman , , , , Tingwei Zhang , Yuanfang Zhang , Tao Zhang , Trilok Soni , Hao Zhang , , Bjorn Andersson References: <20220509133947.20987-1-quic_jinlmao@quicinc.com> <20220509133947.20987-3-quic_jinlmao@quicinc.com> <38bb1ec9-56bc-0cdf-6c46-d448a46ec886@arm.com> In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01a.na.qualcomm.com (10.47.209.196) Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Hi Suzuki, On 5/24/2022 3:00 PM, Jinlong Mao wrote: > Hi Suzuki, > > Thank you for the review. > > On 5/23/2022 4:57 PM, Suzuki K Poulose wrote: >> Hi >> >> On 09/05/2022 14:39, Mao Jinlong wrote: >>> Add driver to support Coresight device TPDM (Trace, Profiling and >>> Diagnostics Monitor). TPDM is a monitor to collect data from >>> different datasets. This change is to add probe/enable/disable >>> functions for tpdm source. >>> >>> Signed-off-by: Tao Zhang >>> Signed-off-by: Mao Jinlong >>> --- >>>   drivers/hwtracing/coresight/Kconfig          |  13 ++ >>>   drivers/hwtracing/coresight/Makefile         |   1 + >>>   drivers/hwtracing/coresight/coresight-core.c |   5 +- >>>   drivers/hwtracing/coresight/coresight-tpdm.c | 146 >>> +++++++++++++++++++ >>>   drivers/hwtracing/coresight/coresight-tpdm.h |  26 ++++ >>>   include/linux/coresight.h                    |   1 + >>>   6 files changed, 191 insertions(+), 1 deletion(-) >>>   create mode 100644 drivers/hwtracing/coresight/coresight-tpdm.c >>>   create mode 100644 drivers/hwtracing/coresight/coresight-tpdm.h >>> >>> +/** >>> + * struct tpdm_drvdata - specifics associated to an TPDM component >>> + * @base:       memory mapped base address for this component. >>> + * @dev:        The device entity associated to this component. >>> + * @csdev:      component vitals needed by the framework. >>> + * @lock:       lock for the enable value. >>> + * @enable:     enable status of the component. >>> + */ >>> + >>> +struct tpdm_drvdata { >>> +    void __iomem        *base; >>> +    struct device        *dev; >>> +    struct coresight_device    *csdev; >>> +    struct mutex        lock; >> >> Why mutex lock ? Couldn't this be a spinlock ? > 1. There is no irq for TPDM > 2. As there are 7 dataset types, there will be some FOR loop to configure > tpdm registers which may cause some time. > I think we can use mutex lock here. Do you have any more comments for this ? Thanks Jinlong Mao >> >>> +    bool            enable; >>> +}; >>> + >>> +#endif  /* _CORESIGHT_CORESIGHT_TPDM_H */ >>> diff --git a/include/linux/coresight.h b/include/linux/coresight.h >>> index 247147c11231..a9efac55029d 100644 >>> --- a/include/linux/coresight.h >>> +++ b/include/linux/coresight.h >>> @@ -61,6 +61,7 @@ enum coresight_dev_subtype_source { >>>       CORESIGHT_DEV_SUBTYPE_SOURCE_PROC, >>>       CORESIGHT_DEV_SUBTYPE_SOURCE_BUS, >>>       CORESIGHT_DEV_SUBTYPE_SOURCE_SOFTWARE, >>> +    CORESIGHT_DEV_SUBTYPE_SOURCE_DATA_ONLY, >> >> super minor nit: I find the choice of name a bit odd. >> We could simply make it something like : >> >>     CORESIGHT_DEV_SUBTYPE_SOURCE_OTHERS: >> >> Suzuki > I will check and update. >> >>>   }; >>>     enum coresight_dev_subtype_helper { >> >> _______________________________________________ >> CoreSight mailing list -- coresight@lists.linaro.org >> To unsubscribe send an email to coresight-leave@lists.linaro.org > _______________________________________________ > CoreSight mailing list -- coresight@lists.linaro.org > To unsubscribe send an email to coresight-leave@lists.linaro.org 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 9B856C433F5 for ; Wed, 1 Jun 2022 09:22:54 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:References:CC:To:From:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=AL7sFbGJ4WGZ8xlc+x21r+f29Eri9X8/DBfdv9RBFBU=; b=JnBzF2fGKLvgTV ohLcY+QDA7MUBttfbxCVmKxWwDsC/GaSbkqby6EWIr7KVABEnbLAJs9OzxaOS3yU71b3sAjEa5gDq Uitj7ZHfED2nYXOaBICKjpne7ab8Qv1gbUhq3iKmgyAh9NDhH/nWGkCJR9mLYGG6HUce2mvmkcMpt ZI7/HYCY+x3zT0fb57fKcXQXinLvw2hmosKOi5ynNDQ0rdfAAzGlq9jIZ06DFlrLfCGvVy0Nb+rci Lm301QsbD4tmxL8XCFfJKzSDVAbT7eMefjaWS39Elm9KFgdU238/GX72k63VWQN8iry5CnI6XX+gk rPeDCGDagOSNkhakNbww==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nwKXi-00Etpc-Dr; Wed, 01 Jun 2022 09:21:30 +0000 Received: from alexa-out.qualcomm.com ([129.46.98.28]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nwKXf-00Etnv-73 for linux-arm-kernel@lists.infradead.org; Wed, 01 Jun 2022 09:21:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1654075287; x=1685611287; h=message-id:date:mime-version:subject:from:to:cc: references:in-reply-to:content-transfer-encoding; bh=yMzSNegJTY36Tsg8xrGuN/+TPtYGTwZt2sCHlutuh6Q=; b=VpYas/YbEzM72vgAWyDRYg0v95ZBHmkazLXP7l320Sxtf09pQbBhYsC+ xfGzdqOIw/P2VcmshLEV+kNbUq45vwr0iNpcX0Mmrlrq9LDYKqwd7DP/h wSxFTcMec/0L8nIrcWdZpGMQiN+vNBzYnIP30zwBAj8UBbaLfODzGGAgf k=; Received: from ironmsg07-lv.qualcomm.com ([10.47.202.151]) by alexa-out.qualcomm.com with ESMTP; 01 Jun 2022 02:21:24 -0700 X-QCInternal: smtphost Received: from nasanex01c.na.qualcomm.com ([10.47.97.222]) by ironmsg07-lv.qualcomm.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Jun 2022 02:21:23 -0700 Received: from nalasex01a.na.qualcomm.com (10.47.209.196) by nasanex01c.na.qualcomm.com (10.47.97.222) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Wed, 1 Jun 2022 02:21:23 -0700 Received: from [10.253.36.238] (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Wed, 1 Jun 2022 02:21:19 -0700 Message-ID: <7d6b2e24-21f4-eef1-a722-23cdcd1d8a88@quicinc.com> Date: Wed, 1 Jun 2022 17:21:16 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [PATCH v7 02/10] Coresight: Add coresight TPDM source driver Content-Language: en-US From: Jinlong Mao To: Suzuki K Poulose , Mathieu Poirier , Alexander Shishkin , Konrad Dybcio , Mike Leach CC: Greg Kroah-Hartman , , , , Tingwei Zhang , Yuanfang Zhang , Tao Zhang , Trilok Soni , Hao Zhang , , Bjorn Andersson References: <20220509133947.20987-1-quic_jinlmao@quicinc.com> <20220509133947.20987-3-quic_jinlmao@quicinc.com> <38bb1ec9-56bc-0cdf-6c46-d448a46ec886@arm.com> In-Reply-To: X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01a.na.qualcomm.com (10.47.209.196) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220601_022127_359149_762FDB04 X-CRM114-Status: GOOD ( 24.26 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgU3V6dWtpLAoKT24gNS8yNC8yMDIyIDM6MDAgUE0sIEppbmxvbmcgTWFvIHdyb3RlOgo+IEhp IFN1enVraSwKPgo+IFRoYW5rIHlvdSBmb3IgdGhlIHJldmlldy4KPgo+IE9uIDUvMjMvMjAyMiA0 OjU3IFBNLCBTdXp1a2kgSyBQb3Vsb3NlIHdyb3RlOgo+PiBIaQo+Pgo+PiBPbiAwOS8wNS8yMDIy IDE0OjM5LCBNYW8gSmlubG9uZyB3cm90ZToKPj4+IEFkZCBkcml2ZXIgdG8gc3VwcG9ydCBDb3Jl c2lnaHQgZGV2aWNlIFRQRE0gKFRyYWNlLCBQcm9maWxpbmcgYW5kCj4+PiBEaWFnbm9zdGljcyBN b25pdG9yKS4gVFBETSBpcyBhIG1vbml0b3IgdG8gY29sbGVjdCBkYXRhIGZyb20KPj4+IGRpZmZl cmVudCBkYXRhc2V0cy4gVGhpcyBjaGFuZ2UgaXMgdG8gYWRkIHByb2JlL2VuYWJsZS9kaXNhYmxl Cj4+PiBmdW5jdGlvbnMgZm9yIHRwZG0gc291cmNlLgo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IFRh byBaaGFuZyA8cXVpY190YW96aGFAcXVpY2luYy5jb20+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBNYW8g SmlubG9uZyA8cXVpY19qaW5sbWFvQHF1aWNpbmMuY29tPgo+Pj4gLS0tCj4+PiDCoCBkcml2ZXJz L2h3dHJhY2luZy9jb3Jlc2lnaHQvS2NvbmZpZ8KgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMTMgKysK Pj4+IMKgIGRyaXZlcnMvaHd0cmFjaW5nL2NvcmVzaWdodC9NYWtlZmlsZcKgwqDCoMKgwqDCoMKg wqAgfMKgwqAgMSArCj4+PiDCoCBkcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0 LWNvcmUuYyB8wqDCoCA1ICstCj4+PiDCoCBkcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29y ZXNpZ2h0LXRwZG0uYyB8IDE0NiAKPj4+ICsrKysrKysrKysrKysrKysrKysKPj4+IMKgIGRyaXZl cnMvaHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtdHBkbS5oIHzCoCAyNiArKysrCj4+PiDC oCBpbmNsdWRlL2xpbnV4L2NvcmVzaWdodC5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfMKgwqAgMSArCj4+PiDCoCA2IGZpbGVzIGNoYW5nZWQsIDE5MSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCj4+PiDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9od3Ry YWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC10cGRtLmMKPj4+IMKgIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LXRwZG0uaAo+Pj4KCj4+PiAr LyoqCj4+PiArICogc3RydWN0IHRwZG1fZHJ2ZGF0YSAtIHNwZWNpZmljcyBhc3NvY2lhdGVkIHRv IGFuIFRQRE0gY29tcG9uZW50Cj4+PiArICogQGJhc2U6wqDCoMKgwqDCoMKgIG1lbW9yeSBtYXBw ZWQgYmFzZSBhZGRyZXNzIGZvciB0aGlzIGNvbXBvbmVudC4KPj4+ICsgKiBAZGV2OsKgwqDCoMKg wqDCoMKgIFRoZSBkZXZpY2UgZW50aXR5IGFzc29jaWF0ZWQgdG8gdGhpcyBjb21wb25lbnQuCj4+ PiArICogQGNzZGV2OsKgwqDCoMKgwqAgY29tcG9uZW50IHZpdGFscyBuZWVkZWQgYnkgdGhlIGZy YW1ld29yay4KPj4+ICsgKiBAbG9jazrCoMKgwqDCoMKgwqAgbG9jayBmb3IgdGhlIGVuYWJsZSB2 YWx1ZS4KPj4+ICsgKiBAZW5hYmxlOsKgwqDCoMKgIGVuYWJsZSBzdGF0dXMgb2YgdGhlIGNvbXBv bmVudC4KPj4+ICsgKi8KPj4+ICsKPj4+ICtzdHJ1Y3QgdHBkbV9kcnZkYXRhIHsKPj4+ICvCoMKg wqAgdm9pZCBfX2lvbWVtwqDCoMKgwqDCoMKgwqAgKmJhc2U7Cj4+PiArwqDCoMKgIHN0cnVjdCBk ZXZpY2XCoMKgwqDCoMKgwqDCoCAqZGV2Owo+Pj4gK8KgwqDCoCBzdHJ1Y3QgY29yZXNpZ2h0X2Rl dmljZcKgwqDCoCAqY3NkZXY7Cj4+PiArwqDCoMKgIHN0cnVjdCBtdXRleMKgwqDCoMKgwqDCoMKg IGxvY2s7Cj4+Cj4+IFdoeSBtdXRleCBsb2NrID8gQ291bGRuJ3QgdGhpcyBiZSBhIHNwaW5sb2Nr ID8KPiAxLiBUaGVyZSBpcyBubyBpcnEgZm9yIFRQRE0KPiAyLiBBcyB0aGVyZSBhcmUgNyBkYXRh c2V0IHR5cGVzLCB0aGVyZSB3aWxsIGJlIHNvbWUgRk9SIGxvb3AgdG8gY29uZmlndXJlCj4gdHBk bSByZWdpc3RlcnMgd2hpY2ggbWF5IGNhdXNlIHNvbWUgdGltZS4KPgpJIHRoaW5rIHdlIGNhbiB1 c2UgbXV0ZXggbG9jayBoZXJlLiBEbyB5b3UgaGF2ZSBhbnkgbW9yZSBjb21tZW50cyBmb3IgdGhp cyA/CgpUaGFua3MKSmlubG9uZyBNYW8KPj4KPj4+ICvCoMKgwqAgYm9vbMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgZW5hYmxlOwo+Pj4gK307Cj4+PiArCj4+PiArI2VuZGlmwqAgLyogX0NPUkVTSUdI VF9DT1JFU0lHSFRfVFBETV9IICovCj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jb3Jl c2lnaHQuaCBiL2luY2x1ZGUvbGludXgvY29yZXNpZ2h0LmgKPj4+IGluZGV4IDI0NzE0N2MxMTIz MS4uYTllZmFjNTUwMjlkIDEwMDY0NAo+Pj4gLS0tIGEvaW5jbHVkZS9saW51eC9jb3Jlc2lnaHQu aAo+Pj4gKysrIGIvaW5jbHVkZS9saW51eC9jb3Jlc2lnaHQuaAo+Pj4gQEAgLTYxLDYgKzYxLDcg QEAgZW51bSBjb3Jlc2lnaHRfZGV2X3N1YnR5cGVfc291cmNlIHsKPj4+IMKgwqDCoMKgwqAgQ09S RVNJR0hUX0RFVl9TVUJUWVBFX1NPVVJDRV9QUk9DLAo+Pj4gwqDCoMKgwqDCoCBDT1JFU0lHSFRf REVWX1NVQlRZUEVfU09VUkNFX0JVUywKPj4+IMKgwqDCoMKgwqAgQ09SRVNJR0hUX0RFVl9TVUJU WVBFX1NPVVJDRV9TT0ZUV0FSRSwKPj4+ICvCoMKgwqAgQ09SRVNJR0hUX0RFVl9TVUJUWVBFX1NP VVJDRV9EQVRBX09OTFksCj4+Cj4+IHN1cGVyIG1pbm9yIG5pdDogSSBmaW5kIHRoZSBjaG9pY2Ug b2YgbmFtZSBhIGJpdCBvZGQuCj4+IFdlIGNvdWxkIHNpbXBseSBtYWtlIGl0IHNvbWV0aGluZyBs aWtlIDoKPj4KPj4gwqDCoMKgwqBDT1JFU0lHSFRfREVWX1NVQlRZUEVfU09VUkNFX09USEVSUzoK Pj4KPj4gU3V6dWtpCj4gSSB3aWxsIGNoZWNrIGFuZCB1cGRhdGUuCj4+Cj4+PiDCoCB9Owo+Pj4g wqAgwqAgZW51bSBjb3Jlc2lnaHRfZGV2X3N1YnR5cGVfaGVscGVyIHsKPj4KPj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gQ29yZVNpZ2h0IG1haWxp bmcgbGlzdCAtLSBjb3Jlc2lnaHRAbGlzdHMubGluYXJvLm9yZwo+PiBUbyB1bnN1YnNjcmliZSBz ZW5kIGFuIGVtYWlsIHRvIGNvcmVzaWdodC1sZWF2ZUBsaXN0cy5saW5hcm8ub3JnCj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBDb3JlU2lnaHQgbWFp bGluZyBsaXN0IC0tIGNvcmVzaWdodEBsaXN0cy5saW5hcm8ub3JnCj4gVG8gdW5zdWJzY3JpYmUg c2VuZCBhbiBlbWFpbCB0byBjb3Jlc2lnaHQtbGVhdmVAbGlzdHMubGluYXJvLm9yZwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=