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 X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 353CFC43331 for ; Thu, 7 Nov 2019 19:39:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0B63E2166E for ; Thu, 7 Nov 2019 19:39:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="cvQV0+EM"; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="cvQV0+EM" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726295AbfKGTjt (ORCPT ); Thu, 7 Nov 2019 14:39:49 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:38156 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725818AbfKGTjt (ORCPT ); Thu, 7 Nov 2019 14:39:49 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id A8B0D60D88; Thu, 7 Nov 2019 19:39:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1573155588; bh=31/b4Xs9G9WqSr6r3aTPk2Jthp+uBa6h73JY5NDZ6Bk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cvQV0+EMWyS8SxUON+6k9M++S2pEZOqW0G7a4mVVRNI2O2rykk5gsNBmjs6+sQdr/ fFYkVRRPrKh/fIw0y3TcvLjzs141l3qjOWQ9H3tZLj1bH6baBeGIoL19xE89Qi4BQd UvXnpxJCCE4hJH9gkDy8n3uYHbcUc0tPX627p0xA= Received: from cohens-linux.qualcomm.com (global_nat1_iad_fw.qualcomm.com [129.46.232.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: cohens@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 0692E602DD; Thu, 7 Nov 2019 19:39:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1573155588; bh=31/b4Xs9G9WqSr6r3aTPk2Jthp+uBa6h73JY5NDZ6Bk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cvQV0+EMWyS8SxUON+6k9M++S2pEZOqW0G7a4mVVRNI2O2rykk5gsNBmjs6+sQdr/ fFYkVRRPrKh/fIw0y3TcvLjzs141l3qjOWQ9H3tZLj1bH6baBeGIoL19xE89Qi4BQd UvXnpxJCCE4hJH9gkDy8n3uYHbcUc0tPX627p0xA= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 0692E602DD Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=cohens@codeaurora.org From: Steve Cohen To: dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Cc: pdhaval@codeaurora.org, seanpaul@chromium.org, adelva@google.com, Steve Cohen Subject: [PATCH 1/3] drm: add driver hook for create blob limitations Date: Thu, 7 Nov 2019 14:39:12 -0500 Message-Id: <1573155554-16248-2-git-send-email-cohens@codeaurora.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1573155554-16248-1-git-send-email-cohens@codeaurora.org> References: <1573155554-16248-1-git-send-email-cohens@codeaurora.org> Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Allow drivers with blob limitations to run checks before blobs are created. This can be used to limit how much memory can be allocated based on driver requirements. Signed-off-by: Steve Cohen --- drivers/gpu/drm/drm_property.c | 7 +++++++ include/drm/drm_drv.h | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/drivers/gpu/drm/drm_property.c b/drivers/gpu/drm/drm_property.c index 892ce63..507a8a1 100644 --- a/drivers/gpu/drm/drm_property.c +++ b/drivers/gpu/drm/drm_property.c @@ -793,6 +793,13 @@ int drm_mode_createblob_ioctl(struct drm_device *dev, if (!drm_core_check_feature(dev, DRIVER_MODESET)) return -EOPNOTSUPP; + if (dev->driver->createblob_check) { + ret = dev->driver->createblob_check( + dev, out_resp->length, file_priv); + if (ret) + return ret; + } + blob = drm_property_create_blob(dev, out_resp->length, NULL); if (IS_ERR(blob)) return PTR_ERR(blob); diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h index 8976afe..73b39b89 100644 --- a/include/drm/drm_drv.h +++ b/include/drm/drm_drv.h @@ -776,6 +776,15 @@ struct drm_driver { int (*dma_quiescent) (struct drm_device *); int (*context_dtor) (struct drm_device *dev, int context); int dev_priv_size; + + /** + * @createblob_check: driver check for creating blob properties + * + * Hook for checking blob limitations imposed by drivers + */ + int (*createblob_check) (struct drm_device *dev, + size_t length, + struct drm_file *file_priv); }; extern unsigned int drm_debug; -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steve Cohen Subject: [PATCH 1/3] drm: add driver hook for create blob limitations Date: Thu, 7 Nov 2019 14:39:12 -0500 Message-ID: <1573155554-16248-2-git-send-email-cohens@codeaurora.org> References: <1573155554-16248-1-git-send-email-cohens@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1573155554-16248-1-git-send-email-cohens-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: adelva-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, Steve Cohen , pdhaval-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org List-Id: dri-devel@lists.freedesktop.org QWxsb3cgZHJpdmVycyB3aXRoIGJsb2IgbGltaXRhdGlvbnMgdG8gcnVuIGNoZWNrcyBiZWZvcmUg YmxvYnMKYXJlIGNyZWF0ZWQuIFRoaXMgY2FuIGJlIHVzZWQgdG8gbGltaXQgaG93IG11Y2ggbWVt b3J5IGNhbiBiZQphbGxvY2F0ZWQgYmFzZWQgb24gZHJpdmVyIHJlcXVpcmVtZW50cy4KClNpZ25l ZC1vZmYtYnk6IFN0ZXZlIENvaGVuIDxjb2hlbnNAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jIHwgNyArKysrKysrCiBpbmNsdWRlL2RybS9kcm1fZHJ2 LmggICAgICAgICAgfCA5ICsrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jCmluZGV4IDg5MmNlNjMuLjUwN2E4YTEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvcGVydHkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX3Byb3BlcnR5LmMKQEAgLTc5Myw2ICs3OTMsMTMgQEAgaW50IGRybV9tb2RlX2NyZWF0ZWJs b2JfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoIWRybV9jb3JlX2NoZWNrX2Zl YXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAorCWlm IChkZXYtPmRyaXZlci0+Y3JlYXRlYmxvYl9jaGVjaykgeworCQlyZXQgPSBkZXYtPmRyaXZlci0+ Y3JlYXRlYmxvYl9jaGVjaygKKwkJCQlkZXYsIG91dF9yZXNwLT5sZW5ndGgsIGZpbGVfcHJpdik7 CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKwogCWJsb2IgPSBkcm1fcHJvcGVydHlf Y3JlYXRlX2Jsb2IoZGV2LCBvdXRfcmVzcC0+bGVuZ3RoLCBOVUxMKTsKIAlpZiAoSVNfRVJSKGJs b2IpKQogCQlyZXR1cm4gUFRSX0VSUihibG9iKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bV9kcnYuaCBiL2luY2x1ZGUvZHJtL2RybV9kcnYuaAppbmRleCA4OTc2YWZlLi43M2IzOWI4OSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Rydi5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9k cnYuaApAQCAtNzc2LDYgKzc3NiwxNSBAQCBzdHJ1Y3QgZHJtX2RyaXZlciB7CiAJaW50ICgqZG1h X3F1aWVzY2VudCkgKHN0cnVjdCBkcm1fZGV2aWNlICopOwogCWludCAoKmNvbnRleHRfZHRvcikg KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjb250ZXh0KTsKIAlpbnQgZGV2X3ByaXZfc2l6 ZTsKKworCS8qKgorCSAqIEBjcmVhdGVibG9iX2NoZWNrOiBkcml2ZXIgY2hlY2sgZm9yIGNyZWF0 aW5nIGJsb2IgcHJvcGVydGllcworCSAqCisJICogSG9vayBmb3IgY2hlY2tpbmcgYmxvYiBsaW1p dGF0aW9ucyBpbXBvc2VkIGJ5IGRyaXZlcnMKKwkgKi8KKwlpbnQgKCpjcmVhdGVibG9iX2NoZWNr KSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgc2l6ZV90IGxlbmd0aCwKKwkJCQkgc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwogfTsKIAogZXh0ZXJuIHVuc2lnbmVkIGludCBkcm1f ZGVidWc7Ci0tIApUaGUgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSBtZW1i ZXIgb2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLAphIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3Jh dGl2ZSBQcm9qZWN0CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJl bm8= 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 X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C6832FA372C for ; Fri, 8 Nov 2019 08:12:51 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A5FEC21D7B for ; Fri, 8 Nov 2019 08:12:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A5FEC21D7B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 48AA96F863; Fri, 8 Nov 2019 08:12:33 +0000 (UTC) Received: from smtp.codeaurora.org (smtp.codeaurora.org [198.145.29.96]) by gabe.freedesktop.org (Postfix) with ESMTPS id 906266E4FF; Thu, 7 Nov 2019 19:39:48 +0000 (UTC) Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 6E11460D7E; Thu, 7 Nov 2019 19:39:48 +0000 (UTC) Received: from cohens-linux.qualcomm.com (global_nat1_iad_fw.qualcomm.com [129.46.232.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: cohens@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 0692E602DD; Thu, 7 Nov 2019 19:39:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 0692E602DD From: Steve Cohen To: dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Subject: [PATCH 1/3] drm: add driver hook for create blob limitations Date: Thu, 7 Nov 2019 14:39:12 -0500 Message-Id: <1573155554-16248-2-git-send-email-cohens@codeaurora.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1573155554-16248-1-git-send-email-cohens@codeaurora.org> References: <1573155554-16248-1-git-send-email-cohens@codeaurora.org> X-Mailman-Approved-At: Fri, 08 Nov 2019 08:12:31 +0000 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1573155588; bh=31/b4Xs9G9WqSr6r3aTPk2Jthp+uBa6h73JY5NDZ6Bk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cvQV0+EMWyS8SxUON+6k9M++S2pEZOqW0G7a4mVVRNI2O2rykk5gsNBmjs6+sQdr/ fFYkVRRPrKh/fIw0y3TcvLjzs141l3qjOWQ9H3tZLj1bH6baBeGIoL19xE89Qi4BQd UvXnpxJCCE4hJH9gkDy8n3uYHbcUc0tPX627p0xA= X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1573155588; bh=31/b4Xs9G9WqSr6r3aTPk2Jthp+uBa6h73JY5NDZ6Bk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cvQV0+EMWyS8SxUON+6k9M++S2pEZOqW0G7a4mVVRNI2O2rykk5gsNBmjs6+sQdr/ fFYkVRRPrKh/fIw0y3TcvLjzs141l3qjOWQ9H3tZLj1bH6baBeGIoL19xE89Qi4BQd UvXnpxJCCE4hJH9gkDy8n3uYHbcUc0tPX627p0xA= X-Mailman-Original-Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org X-Mailman-Original-Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=cohens@codeaurora.org X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: adelva@google.com, Steve Cohen , pdhaval@codeaurora.org, seanpaul@chromium.org MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191107193912.Cje_i0dps6-f3zlq3ZQygN5IzELS1kwVmv851n4fx4E@z> QWxsb3cgZHJpdmVycyB3aXRoIGJsb2IgbGltaXRhdGlvbnMgdG8gcnVuIGNoZWNrcyBiZWZvcmUg YmxvYnMKYXJlIGNyZWF0ZWQuIFRoaXMgY2FuIGJlIHVzZWQgdG8gbGltaXQgaG93IG11Y2ggbWVt b3J5IGNhbiBiZQphbGxvY2F0ZWQgYmFzZWQgb24gZHJpdmVyIHJlcXVpcmVtZW50cy4KClNpZ25l ZC1vZmYtYnk6IFN0ZXZlIENvaGVuIDxjb2hlbnNAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jIHwgNyArKysrKysrCiBpbmNsdWRlL2RybS9kcm1fZHJ2 LmggICAgICAgICAgfCA5ICsrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jCmluZGV4IDg5MmNlNjMuLjUwN2E4YTEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvcGVydHkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX3Byb3BlcnR5LmMKQEAgLTc5Myw2ICs3OTMsMTMgQEAgaW50IGRybV9tb2RlX2NyZWF0ZWJs b2JfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoIWRybV9jb3JlX2NoZWNrX2Zl YXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAorCWlm IChkZXYtPmRyaXZlci0+Y3JlYXRlYmxvYl9jaGVjaykgeworCQlyZXQgPSBkZXYtPmRyaXZlci0+ Y3JlYXRlYmxvYl9jaGVjaygKKwkJCQlkZXYsIG91dF9yZXNwLT5sZW5ndGgsIGZpbGVfcHJpdik7 CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKwogCWJsb2IgPSBkcm1fcHJvcGVydHlf Y3JlYXRlX2Jsb2IoZGV2LCBvdXRfcmVzcC0+bGVuZ3RoLCBOVUxMKTsKIAlpZiAoSVNfRVJSKGJs b2IpKQogCQlyZXR1cm4gUFRSX0VSUihibG9iKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bV9kcnYuaCBiL2luY2x1ZGUvZHJtL2RybV9kcnYuaAppbmRleCA4OTc2YWZlLi43M2IzOWI4OSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Rydi5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9k cnYuaApAQCAtNzc2LDYgKzc3NiwxNSBAQCBzdHJ1Y3QgZHJtX2RyaXZlciB7CiAJaW50ICgqZG1h X3F1aWVzY2VudCkgKHN0cnVjdCBkcm1fZGV2aWNlICopOwogCWludCAoKmNvbnRleHRfZHRvcikg KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjb250ZXh0KTsKIAlpbnQgZGV2X3ByaXZfc2l6 ZTsKKworCS8qKgorCSAqIEBjcmVhdGVibG9iX2NoZWNrOiBkcml2ZXIgY2hlY2sgZm9yIGNyZWF0 aW5nIGJsb2IgcHJvcGVydGllcworCSAqCisJICogSG9vayBmb3IgY2hlY2tpbmcgYmxvYiBsaW1p dGF0aW9ucyBpbXBvc2VkIGJ5IGRyaXZlcnMKKwkgKi8KKwlpbnQgKCpjcmVhdGVibG9iX2NoZWNr KSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgc2l6ZV90IGxlbmd0aCwKKwkJCQkgc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwogfTsKIAogZXh0ZXJuIHVuc2lnbmVkIGludCBkcm1f ZGVidWc7Ci0tIApUaGUgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSBtZW1i ZXIgb2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLAphIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3Jh dGl2ZSBQcm9qZWN0CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWw=