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 3A630C0218A for ; Sun, 19 Jan 2025 15:00:04 +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:From:References:Cc:To: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=puH20jTZLGRg5GJvn0B8x7RIwFOYeFTEY8n33bbgZVE=; b=HWL+usXtL4Eqgr IVSR4Nf1YCCuV+aJ+xVngnRAAoAvS2cZU0K3VPeaKJp87QYNBY10UQfOpbEElJWwmQjhrykIOEazc xA+9mLeT5R3vpHTb4msxhmvcEgO6VpNW9oqDQSltc8HOJCH1NKmU9KWQoeh/DFUs2KAGxqkLEObt+ IXuDdmT0tbKqPB4MipeLNHzA2+fJebtemRtu/Nh9iVtILvAH+rRZPB2BmTmx983VRDYw4L0a3NHBv eGWJLnC3bUPJiUvhVJnPmue+bVGDjxCIWf08iCOm0PkGb/upZ0tDHdz4aCZhFwuxKAqUZ0Dr2T8Ng q9J/gYHt7MTYho7KAiww==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tZWmJ-0000000413C-4B76; Sun, 19 Jan 2025 14:59:55 +0000 Received: from out-175.mta1.migadu.com ([95.215.58.175]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tZWmG-00000004125-3xlo; Sun, 19 Jan 2025 14:59:54 +0000 Message-ID: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1737298788; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zNY9fo693oU2B1dKi7Yad0MtryDjxzNQa/7Ip1S7xnQ=; b=heGdHto3F+5K7JCqIvHDGXf1N0wnwZf1k6Vn1a+AfaN8emD7p116EZNmNhdoe3qOiN8MSL BAskCcm13dLRGLlnl2OBU60SLqXM+CELdtyiknyOyqOXKvH7THRFFzoAh4sZgSEp9q/ASO MFarzvKjz35Ws/S8kauuETysIOP9JiM= Date: Sun, 19 Jan 2025 22:59:36 +0800 MIME-Version: 1.0 Subject: Re: [PATCH v2 25/25] drm/xlnx: Compute dumb-buffer sizes with drm_mode_size_dumb() To: Tomi Valkeinen , Dmitry Baryshkov , Geert Uytterhoeven Cc: Thomas Zimmermann , maarten.lankhorst@linux.intel.com, mripard@kernel.org, airlied@gmail.com, simona@ffwll.ch, dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, imx@lists.linux.dev, linux-samsung-soc@vger.kernel.org, nouveau@lists.freedesktop.org, virtualization@lists.linux.dev, spice-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-tegra@vger.kernel.org, intel-xe@lists.freedesktop.org, xen-devel@lists.xenproject.org, Laurent Pinchart , Andy Yan , Daniel Stone References: <0ea6be58-0e04-4172-87cd-064a3e4a43bc@suse.de> <4af0b6a7-c16a-4187-bbf5-365a9c86de21@suse.de> Content-Language: en-US X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Sui Jingfeng In-Reply-To: X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250119_065953_295823_D1EE348C X-CRM114-Status: GOOD ( 30.56 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms 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-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org SGksCgpPbiAyMDI1LzEvMTkgMjA6MTgsIFRvbWkgVmFsa2VpbmVuIHdyb3RlOgo+IEhpLAo+Cj4g T24gMTkvMDEvMjAyNSAxMzoyOSwgU3VpIEppbmdmZW5nIHdyb3RlOgo+PiBIaSwKPj4KPj4gT24g MjAyNS8xLzE2IDE4OjM1LCBEbWl0cnkgQmFyeXNoa292IHdyb3RlOgo+Pj4gT24gVGh1LCBKYW4g MTYsIDIwMjUgYXQgMTE6MTc6NTBBTSArMDEwMCwgR2VlcnQgVXl0dGVyaG9ldmVuIHdyb3RlOgo+ Pj4+IE9uIFRodSwgSmFuIDE2LCAyMDI1IGF0IDExOjAz4oCvQU0gVG9taSBWYWxrZWluZW4KPj4+ PiA8dG9taS52YWxrZWluZW5AaWRlYXNvbmJvYXJkLmNvbT4gd3JvdGU6Cj4+Pj4+IE9uIDE2LzAx LzIwMjUgMTA6MDksIFRob21hcyBaaW1tZXJtYW5uIHdyb3RlOgo+Pj4+Pj4gQW0gMTUuMDEuMjUg dW0gMTU6MjAgc2NocmllYiBUb21pIFZhbGtlaW5lbjoKPj4+Pj4+IFsuLi5dCj4+Pj4+Pj4gTXkg cG9pbnQgaXMgdGhhdCB3ZSBoYXZlIHRoZSBjdXJyZW50IFVBUEksIGFuZCB3ZSBoYXZlIHVzZXJz cGFjZSAKPj4+Pj4+PiB1c2luZwo+Pj4+Pj4+IGl0LCBidXQgd2UgZG9uJ3QgaGF2ZSBjbGVhciBy dWxlcyB3aGF0IHRoZSBpb2N0bCBkb2VzIHdpdGggc3BlY2lmaWMKPj4+Pj4+PiBwYXJhbWV0ZXJz LCBhbmQgd2UgZG9uJ3QgZG9jdW1lbnQgaG93IGl0IGhhcyB0byBiZSB1c2VkLgo+Pj4+Pj4+Cj4+ Pj4+Pj4gUGVyaGFwcyB0aGUgc2l0dWF0aW9uIGlzIGJhZCwgYW5kIGFsbCB3ZSBjYW4gcmVhbGx5 IHNheSBpcyB0aGF0Cj4+Pj4+Pj4gQ1JFQVRFX0RVTUIgb25seSB3b3JrcyBmb3IgdXNlIHdpdGgg c2ltcGxlIFJHQiBmb3JtYXRzLCBhbmQgdGhlCj4+Pj4+Pj4gYmVoYXZpb3IgZm9yIGFsbCBvdGhl ciBmb3JtYXRzIGlzIHBsYXRmb3JtIHNwZWNpZmljLiBCdXQgSSB0aGluayAKPj4+Pj4+PiBldmVu Cj4+Pj4+Pj4gdGhhdCB3b3VsZCBiZSB2YWx1YWJsZSBpbiB0aGUgVUFQSSBkb2NzLgo+Pj4+Pj4g VG8gYmUgaG9uZXN0LCBJIHdvdWxkIG5vdCB3YW50IHRvIHNwZWNpZnkgYmVoYXZpb3IgZm9yIGFu eXRoaW5nIAo+Pj4+Pj4gYnV0IHRoZQo+Pj4+Pj4gbGluZWFyIFJHQiBmb3JtYXRzLiBJZiBhbnl0 aGluZywgSSdkIHRha2UgRGFuaWVsJ3MgcmVwbHkgbWFpbCBmb3IKPj4+Pj4+IGRvY3VtZW50YXRp b24gYXMtaXMuIEFueW9uZSBzdHJldGNoaW5nIHRoZSBVQVBJIGJleW9uZCBSR0IgaXMgb24gCj4+ Pj4+PiB0aGVpciBvd24uCj4+Pj4+Pgo+Pj4+Pj4+IFRoaW5raW5nIGFib3V0IHRoaXMsIEkgd29u ZGVyIGlmIHRoaXMgY2hhbmdlIGlzIGdvb2QgZm9yIG9tYXBkcm0gb3IKPj4+Pj4+PiB4aWxpbngg KHByb2JhYmx5IG90aGVyIHBsYXRmb3JtcyB0b28gdGhhdCBzdXBwb3J0IG5vbi1zaW1wbGUgCj4+ Pj4+Pj4gbm9uLVJHQgo+Pj4+Pj4+IGZvcm1hdHMgdmlhIGR1bWIgYnVmZmVycyk6IHdpdGhvdXQg dGhpcyBwYXRjaCwgaW4gYm90aCBkcml2ZXJzLCB0aGUKPj4+Pj4+PiBwaXRjaCBjYWxjdWxhdGlv bnMganVzdCB0YWtlIHRoZSBicHAgYXMgYml0LXBlci1waXhlbHMsIGFsaWduIGl0IAo+Pj4+Pj4+ IHVwLAo+Pj4+Pj4+IGFuZCB0aGF0J3MgaXQuCj4+Pj4+Pj4KPj4+Pj4+PiBXaXRoIHRoaXMgcGF0 Y2ggd2UgZW5kIHVwIHVzaW5nIGRybV9kcml2ZXJfY29sb3JfbW9kZV9mb3JtYXQoKSwgYW5kCj4+ Pj4+Pj4gYWxpZ25pbmcgYnVmZmVycyBhY2NvcmRpbmcgdG8gUkdCIGZvcm1hdHMgZmlndXJlZCBv dXQgdmlhIAo+Pj4+Pj4+IGhldXJpc3RpY3MuCj4+Pj4+Pj4gSXQgZG9lcyBoYXBwZW4gdG8gd29y aywgZm9yIHRoZSBmb3JtYXRzIEkgdGVzdGVkLCBidXQgaXQgc291bmRzIAo+Pj4+Pj4+IGxpa2UK Pj4+Pj4+PiBzb21ldGhpbmcgdGhhdCBtaWdodCBlYXNpbHkgbm90IHdvcmssIGFzIGl0J3MgZG9p bmcgYWRqdXN0bWVudHMgCj4+Pj4+Pj4gYmFzZWQKPj4+Pj4+PiBvbiB3cm9uZyBmb3JtYXQuCj4+ Pj4+Pj4KPj4+Pj4+PiBTaG91bGQgd2UgaGF2ZSBhbm90aGVyIHZlcnNpb24gb2YgZHJtX21vZGVf c2l6ZV9kdW1iKCkgd2hpY2gganVzdAo+Pj4+Pj4+IGNhbGN1bGF0ZXMgdXNpbmcgdGhlIGJwcCwg d2l0aG91dCB0aGUgCj4+Pj4+Pj4gZHJtX2RyaXZlcl9jb2xvcl9tb2RlX2Zvcm1hdCgpCj4+Pj4+ Pj4gcGF0aD8gT3IgZG9lcyB0aGUgZHJtX2RyaXZlcl9jb2xvcl9tb2RlX2Zvcm1hdCgpIHBhdGgg cHJvdmlkZSBzb21lCj4+Pj4+Pj4gdmFsdWUgZm9yIHRoZSBkcml2ZXJzIHRoYXQgZG8gbm90IGN1 cnJlbnRseSBkbyBhbnl0aGluZyBzaW1pbGFyPwo+Pj4+Pj4gV2l0aCB0aGUgUkdCLW9ubHkgcnVs ZSwgdXNpbmcgZHJtX2RyaXZlcl9jb2xvcl9tb2RlX2Zvcm1hdCgpIG1ha2VzCj4+Pj4+PiBzZW5z ZS4gSXQgYWxpZ25zIGR1bWIgYnVmZmVycyBhbmQgdmlkZW89LCBwcm92aWRlcyBlcnJvciAKPj4+ Pj4+IGNoZWNraW5nLCBhbmQKPj4+Pj4+IG92ZXJhbGwgaGFybW9uaXplcyBjb2RlLiBUaGUgZmFs bGJhY2sgaXMgb25seSByZXF1aXJlZCBiZWNhdXNlIG9mIAo+Pj4+Pj4gdGhlCj4+Pj4+PiBleGlz dGluZyBvZGQgY2FzZXMgdGhhdCBhbHJlYWR5IGJlbmQgdGhlIFVBUEkncyBydWxlcy4KPj4+Pj4g SSBoYXZlIHRvIGRpc2FncmVlIGhlcmUuCj4+Pj4+Cj4+Pj4+IE9uIHRoZSBwbGF0Zm9ybXMgSSBo YXZlIGJlZW4gdXNpbmcgKG9tYXAsIHRpZHNzLCB4aWxpbngsIHJjYXIpIHRoZSAKPj4+Pj4gZHVt Ygo+Pj4+PiBidWZmZXJzIGFyZSB0aGUgb25seSBidWZmZXJzIHlvdSBjYW4gZ2V0IGZyb20gdGhl IERSTSBkcml2ZXIuIFRoZSAKPj4+Pj4gZHVtYgo+Pj4+PiBidWZmZXJzIGhhdmUgYmVlbiB1c2Vk IHRvIGFsbG9jYXRlIGxpbmVhciBhbmQgbXVsdGlwbGFuYXIgWVVWIGJ1ZmZlcnMKPj4+Pj4gZm9y IGEgdmVyeSBsb25nIHRpbWUgb24gdGhvc2UgcGxhdGZvcm1zLgo+Pj4+Pgo+Pj4+PiBJIHRyaWVk IHRvIGxvb2sgYXJvdW5kLCBidXQgSSBkaWQgbm90IGZpbmQgYW55IG1lbnRpb25zIHRoYXQgCj4+ Pj4+IENSRUFURV9EVU1CCj4+Pj4+IHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIFJHQiBidWZmZXJz LiBJcyBhbnlvbmUgb3V0c2lkZSB0aGUgY29yZQo+Pj4+PiBkZXZlbG9wZXJzIGV2ZW4gYXdhcmUg b2YgaXQ/Cj4+Pj4+Cj4+Pj4+IElmIHdlIGRvbid0IHVzZSBkdW1iIGJ1ZmZlcnMgdGhlcmUsIHdo ZXJlIGRvIHdlIGdldCB0aGUgYnVmZmVycz8gCj4+Pj4+IE1heWJlCj4+Pj4+IGZyb20gYSB2NGwy IGRldmljZSBvciBmcm9tIGEgZ3B1IGRldmljZSwgYnV0IG9mdGVuIHlvdSBkb24ndCBoYXZlIAo+ Pj4+PiB0aG9zZS4KPj4+Pj4gRE1BX0hFQVAgaXMgdGhlcmUsIG9mIGNvdXJzZS4KPj4+PiBXaHkg Y2FuJ3QgdGhlcmUgYmUgYSB2YXJpYW50IHRoYXQgdGFrZXMgYSBwcm9wZXIgZm91cmNjIGZvcm1h dCAKPj4+PiBpbnN0ZWFkIG9mCj4+Pj4gYW4gaW1wcmVjaXNlIGJwcCB2YWx1ZT8KPj4+IEJhY2t3 YXJkcyBjb21wYXRpYmlsaXR5LiBXZSBjYW4gYWRkIGFuIElPQ1RMIGZvciBZVVYgLyBldGMuCj4+ Cj4+IFsuLi5dCj4+Cj4+PiBCdXQgdXNlcnNwYWNlIG11c3QgYmUgYWJsZSB0byBjb250aW51ZSBh bGxvY2F0aW5nIFlVViBidWZmZXJzIHRocm91Z2gKPj4+IENSRUFURV9EVU1CLgo+Pgo+PiBJIHRo aW5rLCBhbGxvY2F0aW5nIFlVViBidWZmZXJzIHRocm91Z2ggQ1JFQVRFX0RVTUIgaW50ZXJmYWNl IGlzIGp1c3QKPj4gYW4gKmFidXNlKiBhbmQgKm1pc3VzZSogb2YgdGhpcyBBUEkgZm9yIG5vdy4K Pj4KPj4gVGFrZSB0aGUgTlYxMiBmb3JtYXQgYXMgYW4gZXhhbXBsZSwgTlYxMiBpcyBZVVY0MjAg cGxhbmFyIGZvcm1hdCwgaGF2ZQo+PiB0d28gcGxhbmFyOiB0aGUgWS1wbGFuYXIgYW5kIHRoZSBV Vi1wbGFuYXIuIFRoZSBZLXBsYW5hciBhcHBlYXIgZmlyc3QKPj4gaW4gbWVtb3J5IGFzIGFuIGFy cmF5IG9mIHVuc2lnbmVkIGNoYXIgdmFsdWVzLiBUaGUgWS1wbGFuYXIgaXMgZm9sbG93ZWQKPj4g aW1tZWRpYXRlbHkgYnkgdGhlIFVWLXBsYW5hciwgd2hpY2ggaXMgYWxzbyBhbiBhcnJheSBvZiB1 bnNpZ25lZCBjaGFyCj4+IHZhbHVlcyB0aGF0IGNvbnRhaW5zIHBhY2tlZCBVIChDYikgYW5kIFYg KENyKSBzYW1wbGVzLgo+Pgo+PiBCdXQgdGhlICdkcm1fbW9kZV9jcmVhdGVfZHVtYicgc3RydWN0 dXJlIGlzIG9ubHkgaW50ZW5kIHRvIHByb3ZpZGUKPj4gZGVzY3JpcHRpb25zIGZvciAqb25lKiBw bGFuYXIuCj4+Cj4+IHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiB7Cj4+IMKgwqDCoMKgIF9f dTMyIGhlaWdodDsKPj4gwqDCoMKgwqAgX191MzIgd2lkdGg7Cj4+IMKgwqDCoMKgIF9fdTMyIGJw cDsKPj4gwqDCoMKgwqAgX191MzIgZmxhZ3M7Cj4+IMKgwqDCoMKgIF9fdTMyIGhhbmRsZTsKPj4g wqDCoMKgwqAgX191MzIgcGl0Y2g7Cj4+IMKgwqDCoMKgIF9fdTY0IHNpemU7Cj4+IH07Cj4+Cj4+ IEFuIHdpZHRoIHggaGVpZ2h0IE5WMTIgaW1hZ2UgdGFrZXMgdXAgd2lkdGgqaGVpZ2h0KigxICsg MS80ICsgMS80KSAKPj4gYnl0ZXMuCj4+Cj4+IFNvIHdlIGNhbiBhbGxvY2F0ZSBhbiAqZXF1aXZh bGVudCogc2l6ZWQgYnVmZmVyIHRvIHN0b3JlIHRoZSBOVjEyIHJhdyAKPj4gZGF0YS4KPj4KPj4g RWl0aGVyICd3aWR0aCAqIChoZWlnaHQgKiAzLzIpJyB3aGVyZSBlYWNoIHBpeGVsIHRha2UgdXAg OCBiaXRzLAo+PiBvciBqdXN0ICd3aXRoICogaGVpZ2h0JyB3aGVyZSBlYWNoIHBpeGVscyB0YWtl IHVwIDEyIGJpdHMuCj4+Cj4+IEhvd2V2ZXIsIGFsbCB0aG9zZSBtYXRoIGFyZSBqdXN0IGVxdWl2 YWxlbnRzIGRlc2NyaXB0aW9uIHRvIHRoZSBvcmlnaW5hbAo+PiBOVjEyIGZvcm1hdCwgbmVpdGhl ciBhcmUgY29uY3JldGUgY29ycmVjdCBwaHlzaWNhbCBkZXNjcmlwdGlvbi4KPgo+IEkgZG9uJ3Qg c2VlIHRoZSBwcm9ibGVtLiBBbGxvY2F0aW5nIGR1bWIgYnVmZmVycywgaWYgd2UgZG9uJ3QgaGF2 ZSBhbnkgCj4gaGV1cmlzdGljcyByZWxhdGVkIHRvIFJHQiBiZWhpbmQgaXQsIGlzIGVzc2VudGlh bGx5IGp1c3QgYWxsb2NhdGluZyBhIAo+IHNwZWNpZmljIGFtb3VudCBvZiBtZW1vcnksIGRlZmlu ZWQgYnkgd2lkdGgsIGhlaWdodCBhbmQgYml0c3BlcnBpeGVsLgo+CkkgdGhpbmssIHRoZSBwcm9i bGVtIHdpbGwgYmUgdGhhdCB0aGUgJ3dpZHRoJywgJ2hlaWdodCcgYW5kICdicHAnCmFyZSBvcmln aW5hbGx5IHVzZWQgdG8gZGVzY3JpYmUgb25lIHBsYW5lLiBUaG9zZSB0aHJlZSBwYXJhbWV0ZXJz CmhhcyBwZXJmZWN0bHkgZGVmaW5lZCBwaHlzaWNhbCBzZW1hbnRpY3MuCgpCdXQgd2l0aCBtdWx0 aSBwbGFuYXIgZm9ybWF0cywgdGFrZSBOVjEyIGltYWdlIGFzIGFuIGV4YW1wbGUsCmZvciBhIDLD lzIgc3F1YXJlIG9mIHBpeGVscywgdGhlcmUgYXJlIDQgWSBzYW1wbGVzIGJ1dCBvbmx5IDEgVQpz YW1wbGUgYW5kIDEgViBzYW1wbGUuIFRoaXMgZm9ybWF0IHJlcXVpcmVzIDR4OCsxeDgrMXg4PTQ4 IGJpdHMKdG8gc3RvcmUgdGhlIDJ4MiBzcXVhcmUuCgpTbyBpdHMgZGVwdGggaXMgMTIgYml0cyBw ZXIgcGl4ZWwgKDQ4IC8gKDIgKiAyKSkuCgpzbyBteSBwcm9ibGVtIGlzIHRoYXQgdGhlIG1lbnRp b25lZCAxMmJwcCBpbiB0aGlzIGV4YW1wbGUgb25seQptYWtlIHNlbnNlIGluIG1hdGhlbWF0aWNz LCBpdCBkb2Vzbid0IGhhcyBhIGdvb2QgcGh5c2ljYWwKaW50ZXJwcmV0LiBEbyB5b3UgYWdyZWUg d2l0aCBtZSBvbiB0aGlzIHRlY2huaXF1ZSBwb2ludD8KICAgICAKCj4gSWYgSSB3YW50IHRvIGNy ZWF0ZSBhbiBOVjEyIGZyYW1lYnVmZmVyLCBJIGFsbG9jYXRlIHR3byBkdW1iIGJ1ZmZlcnMsIAo+ IG9uZSBmb3IgWSBhbmQgb25lIGZvciBVViBwbGFuZXMsIGFuZCBzaXplIHRoZW0gYWNjb3JkaW5n bHkuIEFuZCB0aGVuIAo+IGNyZWF0ZSB0aGUgRFJNIGZyYW1lYnVmZmVyIHdpdGggdGhvc2UuCj4K VGhlbiBob3cgeW91IGZpbGwgdGhlIHZhbHVlIG9mIHRoZSAnd2lkdGgnLCAnaGVpZ2h0JyBhbmQg J2JwcCcgb2YgZWFjaCBkdW1iIGJ1ZmZlcnM/CgpXaHkgbm90IGFsbG9jYXRlIHN0b3JhZ2UgZm9y IHRoZSB3aG9sZSBvbiBvbmUgc2hvb3Q/CgpUaGUgbW9kZXRlc3QgaW4gbGliZHJtIGNhbiBiZSBh biBnb29kIGV4YW1wbGUsIHNlbmQgaXRbMV0gdG8geW91IGFzIGFuIHJlZmVyZW5jZS4KClsxXSBo dHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvbWVzYS9kcm0vLS9ibG9iL21haW4vdGVzdHMv bW9kZXRlc3QvYnVmZmVycy5jP3JlZl90eXBlPWhlYWRzI0wxMTQKCi0tIAoKQmVzdCByZWdhcmRz LApTdWkKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpM aW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJv Y2tjaGlwCg==