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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 1C5E6105F7AC for ; Fri, 13 Mar 2026 13:23:57 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 68F0710EBF8; Fri, 13 Mar 2026 13:23:56 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="imsx2qSd"; dkim-atps=neutral Received: from mail-oi1-f173.google.com (mail-oi1-f173.google.com [209.85.167.173]) by gabe.freedesktop.org (Postfix) with ESMTPS id 23F0710EBF7 for ; Fri, 13 Mar 2026 13:23:39 +0000 (UTC) Received: by mail-oi1-f173.google.com with SMTP id 5614622812f47-467161c4a1cso841589b6e.3 for ; Fri, 13 Mar 2026 06:23:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773408218; x=1774013018; darn=lists.freedesktop.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+SnZ0lMlFR/eDwLoN2XrBemykJ/zr01c3NEwcnjvW9Y=; b=imsx2qSddA5yQ/4jywePgu9aJWpm/joS+9+hBPQK7lJN3NydDHu6yldsJy0yQwa8LS 3V6zBC+BMQKxe+UFL8RtTQ5G9Mbu7lZyzlvtFCNcASw1Eu+HZgmc8TcUk338mVL3dElH 75YpGQQeSkP6q8vy7kscYj1ZL6Eu5DXGEmjnaP5Ntixu5Bdsw1GaL2eZ+j40QoludBSG wBzBGQ/lFDHALNZ5bBlgcu5MfyIikEp48VT97UQfUCfa1o2nGawcLKu3Q1ZO5xBnYUG7 UsLNl2xhm5eFplyPsEYyKwwUZOjg3lerJBsqF3MRVzyTSZYjBFkiyWK6rpa4oJyJ+f9c iqdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773408218; x=1774013018; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+SnZ0lMlFR/eDwLoN2XrBemykJ/zr01c3NEwcnjvW9Y=; b=C+a+3N4D6JBaJl9TAY4TUFBGm/i1TIOf83KaQFvW27lljPSpuCWqB2cv2lCvi1ShB1 oRUeBD5jYJhrouVCHi7MjxLSTXyUOv9HnYE0x6zpgGouq4PTxuKhUZTZXJST5G2HR8Fh FYH8SHbDfhhYh4BcLZMiIqQZmOH1d2EJ8189OLk86YVn1sZplEW5UtSyTLoCMISkVTE5 O/idu5mfejN9BNkEcdkUhnn7oDw/7a9ynlO5TuMuh2KvqnIBZZ1alQ8ptxi1EBa+0sbh +ZI7Kx6BIfWhU80hWDr3IoTTei9Blqu9c8A/06kpln9A3o/E1MxblvaEFSbyqY6gkGqX EgqQ== X-Forwarded-Encrypted: i=1; AJvYcCXSP1QlcFKn/QM6b1xk+r+cD8KwgU8tMxbgIbNqhybYAGW9gJ8jCd93bH4XwMdR2YErPKqg/pzzmD4=@lists.freedesktop.org X-Gm-Message-State: AOJu0YwNx7sgI4J7YEmRoAyc3W94Giw/8uLYHiWA54voMBNerA3izVMd X+Vit2W1DvPewbsJByBNbe6LHGvnI8Tvcs68+mE64SFDhXkJFWg+UWoH X-Gm-Gg: ATEYQzyFdJ2gEO0VztBVzMD5YAKc1NIKNkE0gqbGmIEEMTltxps3MYcOfD0Pdp/u5jE asrpneKsE76wrJIhNjRn1noy37Rk6rNBcFCVTxMVBmA+jZe8DPSBeWnA/GeZahGjZnydQpOuly9 yIlbsdBN6V31eqlIpmkn2D5fGNg0QTV2GQXcEsFcnUT9h8SErjeuOXVjdsElonjWgGBvEw2jV/0 IQ3JPHyG/7XSdrP17hcWZPBkgltI6nAPGx0ZRMpeIXx6pDbSdE7zg74UBxoHzzYuhXwaMmisLiu t4sJhP6/6NI+VjLdv3PGzxgFvAl4NA0HY/gq0XcFaZa0HL8I90r0S0L+H215MvEEtXZrtRi2gXG 7lMb7Jo8InuAWTwiOeiLeJXicrBSrjYsbkGJjla2upqw9VxxlBHWMsoV5DNficoRXMlbiTFTDa6 RGjeCEKDtuoRQ/72CAk+kq+hm1sDpnLSmGRzXia3OwppZXsuXN X-Received: by 2002:a05:6808:1508:b0:450:5e3a:6f20 with SMTP id 5614622812f47-467570a474fmr1594354b6e.10.1773408218179; Fri, 13 Mar 2026 06:23:38 -0700 (PDT) Received: from frodo (c-98-38-17-99.hsd1.co.comcast.net. [98.38.17.99]) by smtp.googlemail.com with ESMTPSA id 5614622812f47-4673434a35csm4795987b6e.20.2026.03.13.06.23.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2026 06:23:37 -0700 (PDT) From: Jim Cromie To: airlied@gmail.com, simona@ffwll.ch, jbaron@akamai.com, gregkh@linuxfoundation.org, Shuah Khan , Jim Cromie , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org Cc: mripard@kernel.org, tzimmermann@suse.de, maarten.lankhorst@linux.intel.com, jani.nikula@intel.com, ville.syrjala@linux.intel.com, christian.koenig@amd.com, matthew.auld@intel.com, arunpravin.paneerselvam@amd.com, louis.chauvet@bootlin.com, skhan@linuxfoundation.org, pmladek@suse.com, ukaszb@chromium.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, amd-gfx@lists.freedesktop.org Subject: [PATCH v11 20/65] selftests-dyndbg: add a dynamic_debug run_tests target Date: Fri, 13 Mar 2026 07:19:45 -0600 Message-ID: <20260313132103.2529746-21-jim.cromie@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260313132103.2529746-1-jim.cromie@gmail.com> References: <20260313132103.2529746-1-jim.cromie@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QWRkIGEgc2VsZnRlc3Qgc2NyaXB0IGZvciBkeW5hbWljLWRlYnVnLiAgVGhlIGNvbmZpZyByZXF1 aXJlcwpDT05GSUdfVEVTVF9EWU5BTUlDX0RFQlVHPW0gYW5kIENPTkZJR19URVNUX0RZTkFNSUNf REVCVUdfU1VCTU9EPW0sCndoaWNoIHRhY2l0bHkgcmVxdWlyZXMgZWl0aGVyIENPTkZJR19EWU5B TUlDX0RFQlVHPXkgb3IKQ09ORklHX0RZTkFNSUNfREVCVUdfQ09SRT15CgpBVE0gdGhpcyBoYXMg anVzdCBiYXNpY190ZXN0cygpLCB3aGljaCBtb2RpZnkgcHJfZGVidWcoKSBmbGFncyBpbiB0aGUK YnVpbHRpbiBwYXJhbXMgbW9kdWxlLiAgVGhpcyBtZWFucyB0aGV5J3JlIGF2YWlsYWJsZSB0byBt YW5pcHVsYXRlIGFuZApvYnNlcnZlIHRoZSBlZmZlY3RzIGluICJjYXQgY29udHJvbCIuCgpUaGlz IGlzIGJhY2twb3J0ZWQgZnJvbSBhbm90aGVyIGZlYXR1cmUgYnJhbmNoOyB0aGUgc3VwcG9ydC1m bnMgKHRoeApMdWthcykgaGF2ZSB1bnVzZWQgZmVhdHVyZXMgYXQgdGhlIG1vbWVudCwgdGhleSds bCBnZXQgdXNlZCBzaG9ydGx5LgoKVGhlIHNjcmlwdCBlbmFibGVzIHNpbXBsZSB2aXJ0bWUtbmcg dGVzdGluZzoKCiAgIFtqaW1jQGdhbmRhbGYgYjAtZnRyYWNlXSQgdnJ1bl90CiAgIHZpcnRtZS1u ZyAxLjMyKzExNS5nMDdiMTA5ZAogICBkb2luZzogdm5nIC0tbmFtZSB2Ni4xNC1yYzQtNjAtZ2Q1 ZjQ4NDI3ZGUwYyBcCgkgIC0tdXNlciByb290IC12IC1wIDQgLWEgZHluYW1pY19kZWJ1Zy52ZXJi b3NlPTMgVj0xIFwKCSAgLS0gLi4vdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHluYW1pY19kZWJ1 Zy9keW5kYmdfc2VsZnRlc3Quc2gKICAgdmlydG1lOiB3YWl0aW5nIGZvciB2aXJ0aW9mc2QgdG8g c3RhcnQKICAgLi4KCkFuZCBhZGQgZHluYW1pY19kZWJ1ZyB0byBUQVJHRVRTLCBzbyBgbWFrZSBy dW5fdGVzdHNgIHNlZXMgaXQgcHJvcGVybHkKRm9yIHRoZSBpbXBhdGllbnQsIHNldCBUQVJHRVRT IGV4cGxpY2l0bHk6CgogIFtyb290QHY2IHNlbGZ0ZXN0c10jIG1ha2UgVEFSR0VUUz1keW5hbWlj X2RlYnVnIHJ1bl90ZXN0cwogIG1ha2VbMV06IE5vdGhpbmcgdG8gYmUgZG9uZSBmb3IgJ2FsbCcu CiAgVEFQIHZlcnNpb24gMTMKICAxLi4xCiAgIyB0aW1lb3V0IHNldCB0byA0NQogICMgc2VsZnRl c3RzOiBkeW5hbWljX2RlYnVnOiBkeW5kYmdfc2VsZnRlc3Quc2gKICAjICMgQkFTSUNfVEVTVFMg ICAgOTUuNDIyMTIyXSBkeW5kYmc6IHF1ZXJ5IDA6IDAiPV8iIG1vZDoqCiAgLi4uCgpOT1RFUwoK Y2hlY2sgS0NPTkZJR19DT05GSUcgdG8gYXZvaWQgc2lsbHkgZmFpbHMKClNldmVyYWwgdGVzdHMg YXJlIGRlcGVuZGVudCB1cG9uIGNvbmZpZyBjaG9pY2VzLiBMZXRzIGF2b2lkIGZhaWxpbmcKd2hl cmUgdGhhdCBpcyBub2lzZS4KClRoZSBLQ09ORklHX0NPTkZJRyB2YXIgZXhpc3RzIHRvIGNvbnZl eSB0aGUgY29uZmlnLWZpbGUgYXJvdW5kLiAgSWYKdGhlIHZhciBuYW1lcyBhIGZpbGUsIHJlYWQg aXQgYW5kIGV4dHJhY3QgdGhlIHJlbGV2YW50IENPTkZJRyBpdGVtcywKYW5kIHVzZSB0aGVtIHRv IHNraXAgdGhlIGRlcGVuZGVudCB0ZXN0cywgdGh1cyBhdm9pZGluZyB0aGUgZmFpbHMgdGhhdAp3 b3VsZCBmb2xsb3csIGFuZCB0aGUgZGlzcnVwdGlvbiB0byB3aGF0ZXZlciBDSSBpcyBydW5uaW5n IHRoZXNlCnNlbGZ0ZXN0cy4KCklmIHRoZSBlbnZhciBkb2Vzbid0IG5hbWUgYSBjb25maWctZmls ZSwgIi5jb25maWciIGlzIGFzc3VtZWQuCgpDT05GSUdfRFlOQU1JQ19ERUJVRz15OgoKYmFzaWMt dGVzdHMoKSBhbmQgY29tbWEtdGVybWluYXRvci10ZXN0cygpIHRlc3QgZm9yIHRoZSBwcmVzZW5j ZSBvZgp0aGUgYnVpbHRpbiBwcl9kZWJ1Z3MgaW4gbW9kdWxlL21haW4uYywgd2hpY2ggSSBkZWVt ZWQgc3RhYmxlIGFuZAp0aGVyZWZvcmUgc2FmZSB0byBjb3VudC4gIFRoYXQgc2FpZCwgdGhlIHRl c3QgZmFpbHMgaWYgb25seQpDT05GSUdfRFlOQU1JQ19ERUJVR19DT1JFPXkgaXMgc2V0LiAgSXQg Y291bGQgYmUgcmV3cml0dGVuIHRvIHRlc3QKYWdhaW5zdCB0ZXN0LWR5bmFtaWMtZGVidWcua28s IGJ1dCB0aGF0IGp1c3QgdHJhZGVzIG9uZSBjb25maWcKZGVwZW5kZW5jZSBmb3IgYW5vdGhlci4K CkNPTkZJR19URVNUX0RZTkFNSUNfREVCVUc9bQoKQXMgd3JpdHRlbiwgdGVzdF9wZXJjZW50X3Nw bGl0dGluZygpIG1vZHByb2JlcyB0ZXN0X2R5bmFtaWNfZGVidWcsCmVuYWJsZXMgc2V2ZXJhbCBj bGFzc2VzLCBhbmQgY291bnRzIHRoZW0uICBJdCBjb3VsZCBiZSByZS13cml0dGVuIHRvCndvcmsg Zm9yIHRoZSBidWlsdGluIG1vZHVsZSBhbHNvLCBidXQgYnVpbHRpbiB0ZXN0IG1vZHVsZXMgYXJl IG5vdCBhCmNvbW1vbiBvciBkZXNpcmFibGUgYnVpbGQvY29uZmlnLgoKQ28tZGV2ZWxvcGVkLWJ5 OiDFgXVrYXN6IEJhcnRvc2lrIDx1a2FzemJAY2hyb21pdW0ub3JnPgpTaWduZWQtb2ZmLWJ5OiDF gXVrYXN6IEJhcnRvc2lrIDx1a2FzemJAY2hyb21pdW0ub3JnPgpTaWduZWQtb2ZmLWJ5OiBKaW0g Q3JvbWllIDxqaW0uY3JvbWllQGdtYWlsLmNvbT4KLS0tCiBNQUlOVEFJTkVSUyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMv TWFrZWZpbGUgICAgICAgICAgICAgIHwgICAxICsKIC4uLi90ZXN0aW5nL3NlbGZ0ZXN0cy9keW5h bWljX2RlYnVnL01ha2VmaWxlICB8ICAgOSArCiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9keW5h bWljX2RlYnVnL2NvbmZpZyAgfCAgIDcgKwogLi4uL2R5bmFtaWNfZGVidWcvZHluZGJnX3NlbGZ0 ZXN0LnNoICAgICAgICAgIHwgMjU3ICsrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2Vk LCAyNzUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL3Rlc3Rpbmcvc2Vs ZnRlc3RzL2R5bmFtaWNfZGVidWcvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy90 ZXN0aW5nL3NlbGZ0ZXN0cy9keW5hbWljX2RlYnVnL2NvbmZpZwogY3JlYXRlIG1vZGUgMTAwNzU1 IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2R5bmFtaWNfZGVidWcvZHluZGJnX3NlbGZ0ZXN0LnNo CgpkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUwppbmRleCAzNWMxZWRiNjc1 NTEuLmFmMWQzZjI0Njk2MiAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRBSU5F UlMKQEAgLTkwNDcsNiArOTA0Nyw3IEBAIFM6CU1haW50YWluZWQKIEY6CWluY2x1ZGUvbGludXgv ZHluYW1pY19kZWJ1Zy5oCiBGOglsaWIvZHluYW1pY19kZWJ1Zy5jCiBGOglsaWIvdGVzdF9keW5h bWljX2RlYnVnLmMKK0Y6CXRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2R5bmFtaWNfZGVidWcvKgog CiBEWU5BTUlDIElOVEVSUlVQVCBNT0RFUkFUSU9OCiBNOglUYWwgR2lsYm9hIDx0YWxnaUBudmlk aWEuY29tPgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvTWFrZWZpbGUgYi90 b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9NYWtlZmlsZQppbmRleCA0NTBmMTNiYTRjY2EuLmU0ZmM0 ZGQ4MGNmOSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvTWFrZWZpbGUKKysr IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvTWFrZWZpbGUKQEAgLTI3LDYgKzI3LDcgQEAgVEFS R0VUUyArPSBkcml2ZXJzL25ldC90ZWFtCiBUQVJHRVRTICs9IGRyaXZlcnMvbmV0L3ZpcnRpb19u ZXQKIFRBUkdFVFMgKz0gZHJpdmVycy9wbGF0Zm9ybS94ODYvaW50ZWwvaWZzCiBUQVJHRVRTICs9 IGR0CitUQVJHRVRTICs9IGR5bmFtaWNfZGVidWcKIFRBUkdFVFMgKz0gZWZpdmFyZnMKIFRBUkdF VFMgKz0gZXhlYwogVEFSR0VUUyArPSBmY2htb2RhdDIKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL2R5bmFtaWNfZGVidWcvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0 ZXN0cy9keW5hbWljX2RlYnVnL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNmQwNmZhN2YxMDQwCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvdGVzdGlu Zy9zZWxmdGVzdHMvZHluYW1pY19kZWJ1Zy9NYWtlZmlsZQpAQCAtMCwwICsxLDkgQEAKKyMgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorIyBib3Jyb3dlZCBmcm9tIE1ha2Vm aWxlIGZvciB1c2VyIG1lbW9yeSBzZWxmdGVzdHMKKworIyBObyBiaW5hcmllcywgYnV0IG1ha2Ug c3VyZSBhcmctbGVzcyAibWFrZSIgZG9lc24ndCB0cmlnZ2VyICJydW5fdGVzdHMiCithbGw6CisK K1RFU1RfUFJPR1MgOj0gZHluZGJnX3NlbGZ0ZXN0LnNoCisKK2luY2x1ZGUgLi4vbGliLm1rCmRp ZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9keW5hbWljX2RlYnVnL2NvbmZpZyBi L3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2R5bmFtaWNfZGVidWcvY29uZmlnCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMGY5MDZmZjUzOTA4Ci0tLSAvZGV2L251bGwK KysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHluYW1pY19kZWJ1Zy9jb25maWcKQEAgLTAs MCArMSw3IEBACisKKyMgYmFzaWMgdGVzdHMgcmVmIHRoZSBidWlsdGluIHBhcmFtcyBtb2R1bGUK K0NPTkZJR19EWU5BTUlDX0RFQlVHPW0KKworIyBtb3JlIHRlc3RpbmcgaXMgcG9zc2libGUgd2l0 aCB0aGVzZQorIyBDT05GSUdfVEVTVF9EWU5BTUlDX0RFQlVHPW0KKyMgQ09ORklHX1RFU1RfRFlO QU1JQ19ERUJVR19TVUJNT0Q9bQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMv ZHluYW1pY19kZWJ1Zy9keW5kYmdfc2VsZnRlc3Quc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0 cy9keW5hbWljX2RlYnVnL2R5bmRiZ19zZWxmdGVzdC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQpp bmRleCAwMDAwMDAwMDAwMDAuLjQ2NWZhZDNmMzkyYwotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xz L3Rlc3Rpbmcvc2VsZnRlc3RzL2R5bmFtaWNfZGVidWcvZHluZGJnX3NlbGZ0ZXN0LnNoCkBAIC0w LDAgKzEsMjU3IEBACisjIS9iaW4vYmFzaAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMC1vbmx5CisKK1Y9JHtWOj0wfSAgIyBpbnZva2UgYXMgVj0xICQwICBmb3IgZ2xvYmFsIHZl cmJvc2UKK1JFRD0iXDAzM1swOzMxbSIKK0dSRUVOPSJcMDMzWzA7MzJtIgorWUVMTE9XPSJcMDMz WzA7MzNtIgorQkxVRT0iXDAzM1swOzM0bSIKK01BR0VOVEE9IlwwMzNbMDszNW0iCitDWUFOPSJc MDMzWzA7MzZtIgorTkM9IlwwMzNbMDswbSIKK2Vycm9yX21zZz0iIgorCitbIC1lIC9wcm9jL2R5 bmFtaWNfZGVidWcvY29udHJvbCBdIHx8IHsKKyAgICBlY2hvIC1lICIke1JFRH06IHRoaXMgdGVz dCByZXF1aXJlcyBDT05GSUdfRFlOQU1JQ19ERUJVRz15ICR7TkN9IgorICAgIGV4aXQgMCAjIG5v dGhpbmcgdG8gdGVzdCBoZXJlLCBubyBnb29kIHJlYXNvbiB0byBmYWlsLgorfQorCisjIG5lZWQg aW5mbyB0byBhdm9pZCBmYWlsdXJlcyBkdWUgdG8gdW50ZXN0YWJsZSBjb25maWdzCisKK1sgLWYg IiRLQ09ORklHX0NPTkZJRyIgXSB8fCBLQ09ORklHX0NPTkZJRz0iLmNvbmZpZyIKK2lmIFsgLWYg IiRLQ09ORklHX0NPTkZJRyIgXTsgdGhlbgorICAgIGVjaG8gIiMgY29uc3VsdGluZyBLQ09ORklH X0NPTkZJRzogJEtDT05GSUdfQ09ORklHIgorICAgIGdyZXAgLXEgIkNPTkZJR19EWU5BTUlDX0RF QlVHPXkiICRLQ09ORklHX0NPTkZJRyA7IExBQ0tfRERfQlVJTFRJTj0kPworICAgIGdyZXAgLXEg IkNPTkZJR19URVNUX0RZTkFNSUNfREVCVUc9bSIgJEtDT05GSUdfQ09ORklHIDsgTEFDS19UTU9E PSQ/CisgICAgZ3JlcCAtcSAiQ09ORklHX1RFU1RfRFlOQU1JQ19ERUJVR19TVUJNT0Q9bSIgJEtD T05GSUdfQ09ORklHIDsgTEFDS19UTU9EX1NVQk1PRD0kPworICAgIGlmIFsgJFYgLWVxIDEgXTsg dGhlbgorCWVjaG8gTEFDS19ERF9CVUlMVElOOiAkTEFDS19ERF9CVUlMVElOCisJZWNobyBMQUNL X1RNT0Q6ICRMQUNLX1RNT0QKKwllY2hvIExBQ0tfVE1PRF9TVUJNT0Q6ICRMQUNLX1RNT0RfU1VC TU9ECisgICAgZmkKK2Vsc2UKKyAgICBMQUNLX0REX0JVSUxUSU49MAorICAgIExBQ0tfVE1PRD0w CisgICAgTEFDS19UTU9EX1NVQk1PRD0wCitmaQorCitmdW5jdGlvbiB2eCAoKSB7CisgICAgZWNo byAkMSA+IC9zeXMvbW9kdWxlL2R5bmFtaWNfZGVidWcvcGFyYW1ldGVycy92ZXJib3NlCit9CisK K2Z1bmN0aW9uIGRkZ3JlcCAoKSB7CisgICAgZ3JlcCAkMSAvcHJvYy9keW5hbWljX2RlYnVnL2Nv bnRyb2wKK30KKworZnVuY3Rpb24gZG9wcmludHMgKCkgeworICAgIGNhdCAvc3lzL21vZHVsZS90 ZXN0X2R5bmFtaWNfZGVidWcvcGFyYW1ldGVycy9kb19wcmludHMKK30KKworZnVuY3Rpb24gZGRj bWQgKCkgeworICAgIGV4cF9leGl0X2NvZGU9MAorICAgIG51bV9hcmdzPSQjCisgICAgaWYgWyAi JHtAOiQjfSIgPSAicGFzcyIgXTsgdGhlbgorCW51bV9hcmdzPSQjLTEKKyAgICBlbGlmIFsgIiR7 QDokI30iID0gImZhaWwiIF07IHRoZW4KKyAgICAgICAgbnVtX2FyZ3M9JCMtMQorCWV4cF9leGl0 X2NvZGU9MQorICAgIGZpCisgICAgYXJncz0ke0A6MTokbnVtX2FyZ3N9CisgICAgb3V0cHV0PSQo KGVjaG8gIiRhcmdzIiA+IC9wcm9jL2R5bmFtaWNfZGVidWcvY29udHJvbCkgMj4mMSkKKyAgICBl eGl0X2NvZGU9JD8KKyAgICBlcnJvcl9tc2c9JChlY2hvICRvdXRwdXQgfCBjdXQgLWQgIjoiIC1m IDUgfCBzZWQgLWUgJ3MvXltbOnNwYWNlOl1dKi8vJykKKyAgICBoYW5kbGVfZXhpdF9jb2RlICRC QVNIX0xJTkVOTyAkRlVOQ05BTUUgJGV4aXRfY29kZSAkZXhwX2V4aXRfY29kZQorfQorCitmdW5j dGlvbiBoYW5kbGVfZXhpdF9jb2RlKCkgeworICAgIGxvY2FsIGV4cF9leGl0X2NvZGU9MAorICAg IFsgJCMgPT0gNCBdICYmIGV4cF9leGl0X2NvZGU9JDQKKyAgICBpZiBbICQzIC1uZSAkZXhwX2V4 aXRfY29kZSBdOyB0aGVuCisgICAgICAgIGVjaG8gLWUgIiR7UkVEfTogJEJBU0hfU09VUkNFOiQx ICQyKCkgZXhwZWN0ZWQgdG8gZXhpdCB3aXRoIGNvZGUgJGV4cF9leGl0X2NvZGUiCisJWyAkMyA9 PSAxIF0gJiYgZWNobyAiRXJyb3I6ICckZXJyb3JfbXNnJyIKKyAgICAgICAgZXhpdAorICAgIGZp Cit9CisKKyMgJDEgLSBwYXR0ZXJuIHRvIG1hdGNoLCBwYXR0ZXJuIGluICQxIGlzIGVuY2xvc2Vk IGJ5IHNwYWNlcyBmb3IgYSBtYXRjaCAiIlxzJDFccyIKKyMgJDIgLSBudW1iZXIgb2YgdGltZXMg dGhlIHBhdHRlcm4gcGFzc2VkIGluICQxIGlzIGV4cGVjdGVkIHRvIG1hdGNoCisjICQzIC0gb3B0 aW9uYWwgY2FuIGJlIHNldCBlaXRoZXIgdG8gIi1yIiBvciAiLXYiCisjICAgICAgICItciIgbWVh bnMgcmVsYXhlZCBtYXRjaGluZyBpbiB0aGlzIGNhc2UgcGF0dGVybiBwcm92aWRlZCBpbiAkMSBp cyBwYXNzZWQKKyMgICAgICAgYXMgaXMgd2l0aG91dCBlbmNsb3NpbmcgaXQgd2l0aCBzcGFjZXMK KyMgICAgICAgIi12IiBwcmludHMgbWF0Y2hpbmcgbGluZXMKKyMgJDQgLSBvcHRpb25hbCB3aGVu ICQzIGlzIHNldCB0byAiLXIiIHRoZW4gJDQgY2FuIGJlIHVzZWQgdG8gcGFzcyAiLXYiCitmdW5j dGlvbiBjaGVja19tYXRjaF9jdCB7CisgICAgcGF0dGVybj0iXHMkMVxzIgorICAgIGV4cF9jbnQ9 MAorCisgICAgWyAiJDMiID09ICItciIgXSAmJiBwYXR0ZXJuPSIkMSIKKyAgICBsZXQgY250PSQo ZGRncmVwICIkcGF0dGVybiIgfCB3YyAtbCkKKyAgICBpZiBbICRWIC1lcSAxIF0gfHwgWyAiJDMi ID09ICItdiIgXSB8fCBbICIkNCIgPT0gIi12IiBdOyB0aGVuCisgICAgICAgIGVjaG8gLW5lICIk e0JMVUV9IiAmJiBkZGdyZXAgJHBhdHRlcm4gJiYgZWNobyAtbmUgIiR7TkN9IgorICAgIGZpCisg ICAgWyAkIyAtZ3QgMSBdICYmIGV4cF9jbnQ9JDIKKyAgICBpZiBbICRjbnQgLW5lICRleHBfY250 IF07IHRoZW4KKyAgICAgICAgZWNobyAtZSAiJHtSRUR9OiAkQkFTSF9TT1VSQ0U6JEJBU0hfTElO RU5PIGNoZWNrIGZhaWxlZCBleHBlY3RlZCAkZXhwX2NudCBvbiAkMSwgZ290ICRjbnQiCisgICAg ICAgIGV4aXQKKyAgICBlbHNlCisgICAgICAgIGVjaG8gIjogJGNudCBtYXRjaGVzIG9uICQxIgor ICAgIGZpCit9CisKKyMgJDEgLSB0cmFjZSBpbnN0YW5jZSBuYW1lCisjICMyIC0gaWYgPiAwIHRo ZW4gZGlyZWN0b3J5IGlzIGV4cGVjdGVkIHRvIGV4aXN0LCBpZiA8PSAwIHRoZW4gb3RoZXJ3aXNl CisjICQzIC0gIi12IiBmb3IgdmVyYm9zZQorZnVuY3Rpb24gY2hlY2tfdHJhY2VfaW5zdGFuY2Vf ZGlyIHsKKyAgICBpZiBbIC1lIC9zeXMva2VybmVsL3RyYWNpbmcvaW5zdGFuY2VzLyQxIF07IHRo ZW4KKyAgICAgICAgaWYgWyAiJDMiID09ICItdiIgXSA7IHRoZW4KKyAgICAgICAgICAgIGVjaG8g ImxzIC1sIC9zeXMva2VybmVsL3RyYWNpbmcvaW5zdGFuY2VzLyQxOiAiCisgICAgICAgICAgICBs cyAtbCAvc3lzL2tlcm5lbC90cmFjaW5nL2luc3RhbmNlcy8kMQorICAgICAgICBmaQorCWlmIFsg JDIgLWxlIDAgXTsgdGhlbgorICAgICAgICAgICAgZWNobyAtZSAiJHtSRUR9OiAkQkFTSF9TT1VS Q0U6JEJBU0hfTElORU5PIGVycm9yIHRyYWNlIGluc3RhbmNlIFwKKwkJICAgICcvc3lzL2tlcm5l bC90cmFjaW5nL2luc3RhbmNlcy8kMScgZG9lcyBleGlzdCIKKwkgICAgZXhpdAorCWZpCisgICAg ZWxzZQorCWlmIFsgJDIgLWd0IDAgXTsgdGhlbgorICAgICAgICAgICAgZWNobyAtZSAiJHtSRUR9 OiAkQkFTSF9TT1VSQ0U6JEJBU0hfTElORU5PIGVycm9yIHRyYWNlIGluc3RhbmNlIFwKKwkJICAg ICcvc3lzL2tlcm5lbC90cmFjaW5nL2luc3RhbmNlcy8kMScgZG9lcyBub3QgZXhpc3QiCisJICAg IGV4aXQKKyAgICAgICAgZmkKKyAgICBmaQorfQorCitmdW5jdGlvbiB0bWFyayB7CisgICAgZWNo byAkKiA+IC9zeXMva2VybmVsL3RyYWNpbmcvdHJhY2VfbWFya2VyCit9CisKKyMgJDEgLSB0cmFj ZSBpbnN0YW5jZSBuYW1lCisjICQyIC0gbGluZSBudW1iZXIKKyMgJDMgLSBpZiA+IDAgdGhlbiB0 aGUgaW5zdGFuY2UgaXMgZXhwZWN0ZWQgdG8gYmUgb3BlbmVkLCBvdGhlcndpc2UKKyMgdGhlIGlu c3RhbmNlIGlzIGV4cGVjdGVkIHRvIGJlIGNsb3NlZAorZnVuY3Rpb24gY2hlY2tfdHJhY2VfaW5z dGFuY2UgeworICAgIG91dHB1dD0kKHRhaWwgLW45IC9wcm9jL2R5bmFtaWNfZGVidWcvY29udHJv bCB8IGdyZXAgIjogT3BlbmVkIHRyYWNlIGluc3RhbmNlcyIgXAorCSAgICB8IHhhcmdzIC1uMSB8 IGdyZXAgJDEpCisgICAgaWYgWyAiJG91dHB1dCIgIT0gJDEgXSAmJiBbICQzIC1ndCAwIF07IHRo ZW4KKyAgICAgICAgZWNobyAtZSAiJHtSRUR9OiAkQkFTSF9TT1VSQ0U6JDIgdHJhY2UgaW5zdGFu Y2UgJDEgaXMgbm90IG9wZW5lZCIKKyAgICAgICAgZXhpdAorICAgIGZpCisgICAgaWYgWyAiJG91 dHB1dCIgPT0gJDEgXSAmJiBbICQzIC1sZSAwIF07IHRoZW4KKyAgICAgICAgZWNobyAtZSAiJHtS RUR9OiAkQkFTSF9TT1VSQ0U6JDIgdHJhY2UgaW5zdGFuY2UgJDEgaXMgbm90IGNsb3NlZCIKKyAg ICAgICAgZXhpdAorICAgIGZpCit9CisKK2Z1bmN0aW9uIGlzX3RyYWNlX2luc3RhbmNlX29wZW5l ZCB7CisgICAgY2hlY2tfdHJhY2VfaW5zdGFuY2UgJDEgJEJBU0hfTElORU5PIDEKK30KKworZnVu Y3Rpb24gaXNfdHJhY2VfaW5zdGFuY2VfY2xvc2VkIHsKKyAgICBjaGVja190cmFjZV9pbnN0YW5j ZSAkMSAkQkFTSF9MSU5FTk8gMAorfQorCisjICQxIC0gdHJhY2UgaW5zdGFuY2UgZGlyZWN0b3J5 IHRvIGRlbGV0ZQorIyAkMiAtIGlmID4gMCB0aGVuIGRpcmVjdG9yeSBpcyBleHBlY3RlZCB0byBi ZSBkZWxldGVkIHN1Y2Nlc3NmdWxseSwgaWYgPD0gMCB0aGVuIG90aGVyd2lzZQorZnVuY3Rpb24g ZGVsX3RyYWNlX2luc3RhbmNlX2RpcigpIHsKKyAgICBleHBfZXhpdF9jb2RlPTEKKyAgICBbICQy IC1ndCAwIF0gJiYgZXhwX2V4aXRfY29kZT0wCisgICAgb3V0cHV0PSQoKHJtZGlyIC9zeXMva2Vy bmVsL2RlYnVnL3RyYWNpbmcvaW5zdGFuY2VzLyQxKSAyPiYxKQorICAgIGV4aXRfY29kZT0kPwor ICAgIGVycm9yX21zZz0kKGVjaG8gJG91dHB1dCB8IGN1dCAtZCAiOiIgLWYgMyB8IHNlZCAtZSAn cy9eW1s6c3BhY2U6XV0qLy8nKQorICAgIGhhbmRsZV9leGl0X2NvZGUgJEJBU0hfTElORU5PICRG VU5DTkFNRSAkZXhpdF9jb2RlICRleHBfZXhpdF9jb2RlCit9CisKK2Z1bmN0aW9uIGVycm9yX2xv Z19yZWYgeworICAgICMgdG8gc2hvdyB3aGF0IEkgZ290CisgICAgOiBlY2hvICIjIGVycm9yLWxv Zy1yZWY6ICQxIgorICAgIDogZWNobyBjYXQgXCQyCit9CisKK2Z1bmN0aW9uIGlmcm1tb2Qgewor ICAgIGxzbW9kIHwgZ3JlcCAkMSAyPiYxPi9kZXYvbnVsbCAmJiBybW1vZCAkMQorfQorCisjICQx IC0gdGV4dCB0byBzZWFyY2ggZm9yCitmdW5jdGlvbiBzZWFyY2hfdHJhY2UoKSB7CisgICAgc2Vh cmNoX3RyYWNlX25hbWUgMCAxICQxCit9CisKKyMgJDEgLSB0cmFjZSBpbnN0YW5jZSBuYW1lLCAw IGZvciBnbG9iYWwgZXZlbnQgdHJhY2UKKyMgJDIgLSBsaW5lIG51bWJlciBjb3VudGluZyBmcm9t IHRoZSBib3R0b20KKyMgJDMgLSB0ZXh0IHRvIHNlYXJjaCBmb3IKK2Z1bmN0aW9uIHNlYXJjaF90 cmFjZV9uYW1lKCkgeworCWlmIFsgIiQxIiA9ICIwIiBdOyB0aGVuCisJICAgIGJ1Zj0kKGNhdCAv c3lzL2tlcm5lbC9kZWJ1Zy90cmFjaW5nL3RyYWNlKQorCSAgICBsaW5lPSQodGFpbCAtJDIgL3N5 cy9rZXJuZWwvZGVidWcvdHJhY2luZy90cmFjZSB8IGhlYWQgLTEgfCBzZWQgLWUgJ3MvXltbOnNw YWNlOl1dKi8vJykKKwllbHNlCisJICAgIGJ1Zj0kKGNhdCAvc3lzL2tlcm5lbC9kZWJ1Zy90cmFj aW5nL2luc3RhbmNlcy8kMS90cmFjZSkKKwkgICAgbGluZT0kKHRhaWwgLSQyIC9zeXMva2VybmVs L2RlYnVnL3RyYWNpbmcvaW5zdGFuY2VzLyQxL3RyYWNlIHwgaGVhZCAtMSB8IFwKKwkJICAgc2Vk IC1lICdzL15bWzpzcGFjZTpdXSovLycpCisJZmkKKwlpZiBbICQyID0gMCBdOyB0aGVuCisJICAg ICMgd2hvbGUtYnVmIGNoZWNrCisJICAgIG91dHB1dD0kKGVjaG8gJGJ1ZiB8IGdyZXAgIiQzIikK KwllbHNlCisJICAgIG91dHB1dD0kKGVjaG8gJGxpbmUgfCBncmVwICIkMyIpCisJZmkKKwlpZiBb ICIkb3V0cHV0IiA9ICIiIF07IHRoZW4KKyAgICAgICAgICAgIGVjaG8gLWUgIiR7UkVEfTogJEJB U0hfU09VUkNFOiRCQVNIX0xJTkVOTyBzZWFyY2ggZm9yICckMycgZmFpbGVkIFwKKwkJICAgIGlu IGxpbmUgJyRsaW5lJyBvciAnJGJ1ZiciCisJICAgIGV4aXQKKwlmaQorCWlmIFsgJFYgPSAxIF07 IHRoZW4KKwkgICAgZWNobyAtZSAiJHtNQUdFTlRBfTogc2VhcmNoX3RyYWNlX25hbWUgaW4gJDEg Zm91bmQ6IFxuJG91dHB1dCBcbmluOiR7QkxVRX0gJGJ1ZiAke05DfSIKKyAgICAgICAgZmkKK30K KworIyAkMSAtIGVycm9yIG1lc3NhZ2UgdG8gY2hlY2sKK2Z1bmN0aW9uIGNoZWNrX2Vycl9tc2co KSB7CisgICAgaWYgWyAiJGVycm9yX21zZyIgIT0gIiQxIiBdOyB0aGVuCisgICAgICAgIGVjaG8g LWUgIiR7UkVEfTogJEJBU0hfU09VUkNFOiRCQVNIX0xJTkVOTyBlcnJvciBtZXNzYWdlICckZXJy b3JfbXNnJyBcCisJCWRvZXMgbm90IG1hdGNoIHdpdGggJyQxJyIKKyAgICAgICAgZXhpdAorICAg IGZpCit9CisKK2Z1bmN0aW9uIGJhc2ljX3Rlc3RzIHsKKyAgICBlY2hvIC1lICIke0dSRUVOfSMg QkFTSUNfVEVTVFMgJHtOQ30iCisgICAgaWYgWyAkTEFDS19ERF9CVUlMVElOIC1lcSAxIF07IHRo ZW4KKwllY2hvICJTS0lQIgorCXJldHVybgorICAgIGZpCisgICAgZGRjbWQgPV8gIyB6ZXJvIGV2 ZXJ5dGhpbmcKKyAgICBjaGVja19tYXRjaF9jdCA9cCAwCisKKyAgICAjIG1vZHVsZSBwYXJhbXMg YXJlIGJ1aWx0aW4gdG8gaGFuZGxlIGJvb3QgYXJncworICAgIGNoZWNrX21hdGNoX2N0ICdcW3Bh cmFtc1xdJyA0IC1yCisgICAgZGRjbWQgbW9kdWxlIHBhcmFtcyArbXBmCisgICAgY2hlY2tfbWF0 Y2hfY3QgPXBtZiA0CisKKyAgICAjIG11bHRpLWNtZCBpbnB1dCwgbmV3bGluZSBzZXBhcmF0ZWQs IHdpdGggZW1iZWRkZWQgY29tbWVudHMKKyAgICBjYXQgPDwiRU9GIiA+IC9wcm9jL2R5bmFtaWNf ZGVidWcvY29udHJvbAorICAgICAgbW9kdWxlIHBhcmFtcyA9XwkJCQkjIGNsZWFyIHBhcmFtcwor ICAgICAgbW9kdWxlIHBhcmFtcyArbWYJCQkJIyBzZXQgZmxhZ3MKKyAgICAgIG1vZHVsZSBwYXJh bXMgZnVuYyBwYXJzZV9hcmdzICtzbAkJIyBvdGhlciBmbGFncworRU9GCisgICAgY2hlY2tfbWF0 Y2hfY3QgPW1mIDMKKyAgICBjaGVja19tYXRjaF9jdCA9bWZzbCAxCisgICAgZGRjbWQgPV8KK30K KwordGVzdHNfbGlzdD0oCisgICAgYmFzaWNfdGVzdHMKKykKKworIyBSdW4gdGVzdHMKKworaWZy bW1vZCB0ZXN0X2R5bmFtaWNfZGVidWdfc3VibW9kCitpZnJtbW9kIHRlc3RfZHluYW1pY19kZWJ1 ZworCitmb3IgdGVzdCBpbiAiJHt0ZXN0c19saXN0W0BdfSIKK2RvCisgICAgJHRlc3QKKyAgICBl Y2hvICIiCitkb25lCitlY2hvIC1lbiAiJHtHUkVFTn0jIERvbmUgb246ICIKK2RhdGUKK2VjaG8g LWVuICIke05DfSIKLS0gCjIuNTMuMAoK