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 7B9DEFCB622 for ; Fri, 6 Mar 2026 16:35:02 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1D0F710ED8B; Fri, 6 Mar 2026 16:34:58 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=igalia.com header.i=@igalia.com header.b="l7xCgYVt"; dkim-atps=neutral Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0ACDE10E088; Fri, 6 Mar 2026 16:34:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID: Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=HLNZUFCy6FrfzEoqc5VD9cX0Pinhx5t8G21uC9/OrNU=; b=l7xCgYVtjTwrPYw62p8qedMOoq aXHQY7gUb0TrOWKlYus8VCaU4fNRdarf2CpjK6kUoZxOlOqPOW/OWx3OLeWmu5BoC5mg1feKJgiof JFNENExjgj0VqMu9X5KzuAGmC6ylqTnrfCrTOYc9X96QKcjHQ0pYJDKNcCOThffAJHAeyoZVSWTgt 4bX8rSf9gM2pPZKaxxGztmL4zEkIMO5WDR6ZbHOWtFciGgaI8lN+ESKX3fR6HzMoiFeRHDc946ezx cQyWbywskpgHnJocN86Z41X6tCgPtlC00BG0SZC3Sd2bGyBLtAcdJm6ECsR0p3Tgh6Lpv9POBNYcq tHqUjihA==; Received: from [90.240.106.137] (helo=localhost) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1vyY8X-00APRL-Uc; Fri, 06 Mar 2026 17:34:50 +0100 From: Tvrtko Ursulin To: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: kernel-dev@igalia.com, intel-xe@lists.freedesktop.org, Danilo Krummrich , Philipp Stanner , Tvrtko Ursulin , =?UTF-8?q?Christian=20K=C3=B6nig?= , Leo Liu , Lucas Stach , Matthew Brost , Pierre-Eric Pelloux-Prayer , =?UTF-8?q?Michel=20D=C3=A4nzer?= Subject: [PATCH v7 00/29] Fair(er) DRM scheduler Date: Fri, 6 Mar 2026 16:34:16 +0000 Message-ID: <20260306163445.97243-1-tvrtko.ursulin@igalia.com> X-Mailer: git-send-email 2.52.0 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" W2Rpc2NsYWltZXJdClBsZWFzZSBub3RlIHRoYXQgYXMgdGhpcyBzZXJpZXMgaW5jbHVkZXMgcGF0 Y2hlcyB3aGljaCB0b3VjaCBhIGdvb2QgbnVtYmVyIG9mCmRyaXZlcnMsIEkgZGlkIG5vdCBjb3B5 IGV2ZXJ5b25lIG9uIGV2ZXJ5dGhpbmcuIEFzc3VtcHRpb24gaXMgcGVvcGxlIGFyZQpzdWJzY3Jp YmVkIHRvIGRyaS1kZXZlbCBhbmQgZm9yIGNvbnRleHQgY2FuIGxvb2sgYXQgdGhlIHdob2xlIHNl cmllcyB0aGVyZS4KWy9kaXNjbGFpbWVyXQoKQXMgYSBzdW1tYXJ5LCB0aGUgbmV3IHNjaGVkdWxp bmcgYWxnb3JpdGhtIGlzIGluc2lwaXJlZCBieSB0aGUgb3JpZ2luYWwgTGludXgKQ0ZTIGFuZCBz byBmYXIgbm8gc2NoZWR1bGluZyByZWdyZXNzaW9ucyBoYXZlIGJlZW4gZm91bmQgcmVsYXRpdmUg dG8gRklGTy4KVGhlcmUgYXJlIGltcHJvdmVtZW50cyBpbiBmYWlybmVzcyBhbmQgc2NoZWR1bGlu ZyBvZiBpbnRlcmFjdGl2ZSBjbGllbnRzIHdoZW4KcnVubmluZyBpbiBwYXJhbGxlbCB3aXRoIGEg aGVhdnkgR1BVIGxvYWQgKGZvciBleGFtcGxlIFBpZXJyZS1FcmljIGhhcyBvbmUKdmlld3BlcmYg bWVkaWNhbCB0ZXN0IHdoaWNoIHNob3dzIGEgbmljZSBpbXByb3ZlbWVudCB3aXRoIGFtZGdwdSku CgpPbiB0aGUgaGlnaCBsZXZlbCBtYWluIGFkdmFudGFnZXMgb2YgdGhlIHNlcmllcyBhcmU6Cgog MS4gU2NoZWR1bGluZyBxdWFsaXR5IC0gc2NoZWR1bGVzIGJldHRlciB0aGFuIEZJRk8sIHNvbHZl cyBwcmlvcml0eSBzdGFydmF0aW9uLgogMi4gQ29kZSBzaW1wbGlmaWNhdGlvbiAtIG5vIG1vcmUg bXVsdGlwbGUgcnVuIHF1ZXVlcyBhbmQgbXVsdGlwbGUgYWxnb3JpdGhtcy4KIDMuIFZpcnR1YWwg R1BVIHRpbWUgYmFzZWQgc2NoZWR1bGluZyBlbmFibGVzIHJlbGF0aXZlbHkgc2ltcGxlIGFkZGl0 aW9uCiAgICBvZiBhIHNjaGVkdWxpbmcgY2dyb3VwIGNvbnRyb2xsZXIgaW4gdGhlIGZ1dHVyZS4K ClRoZXJlIGlzIGEgbGl0dGxlIGJpdCBtb3JlIGRldGFpbGVkIHdyaXRlIHVwIG9uIHRoZSBtb3Rp dmF0aW9uIGFuZCByZXN1bHRzIGluCnRoZSBmb3JtIG9mIGEgYmxvZyBwb3N0IHdoaWNoIG1heSBi ZSBlYXNpZXIgdG8gcmVhZDoKaHR0cHM6Ly9ibG9ncy5pZ2FsaWEuY29tL3R1cnN1bGluL2ZhaXIt ZXItZHJtLWdwdS1zY2hlZHVsZXIvCgpGaXJzdCBwYXRjaGVzIGFkZCBzb21lIHVuaXQgdGVzdHMg d2hpY2ggYWxsb3cgZm9yIGVhc3kgZXZhbHVhdGlvbiBvZiBzY2hlZHVsaW5nCmJlaGF2aW91ciBh Z2FpbnN0IGRpZmZlcmVudCBjbGllbnQgc3VibWlzc2lvbiBwYXR0ZXJucy4gRnJvbSB0aGVyZSBv bndhcmRzIGl0IGlzCmhvcGVmdWxseSBhIG5hdHVyYWwgcHJvZ3Jlc3Npb24gb2YgY2xlYW51cHMs IGVuYWJsZXJzLCBhZGRpbmcgdGhlIGZhaXIgcG9saWN5LAphbmQgZmluYWxseSByZW1vdmluZyBG SUZPIGFuZCBSUiBhbmQgc2ltcGxpZnlpbmcgdGhlIGNvZGUgYmFzZSBkdWUgbm8gbW9yZSBuZWVk CmZvciBtdWx0aXBsZSBydW4gcXVldWVzLgoKU2VyaWVzIGlzIHN0cnVjdHVyZWQgaW4gYSB3YXkg d2hlcmUgd2UgY291bGQgYXBwbHkgdGhlIGZpcnN0IDEyIHBhdGNoZXMgKHVwIHRvCmFuZCBpbmNs dWRpbmcgImRybS9zY2hlZDogU3dpdGNoIGRlZmF1bHQgcG9saWN5IHRvIGZhaXIiKSBpbiBvbmUg a2VybmVsIHJlbGVhc2UKYW5kIHRoZW4gZm9sbG93IHVwIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGNs ZWFudXBzIGFmdGVyIGEgcmVsZWFzZSBvciB0d28gaWYKdGhpbmdzIHdpbGwgYmUgbG9va2luZyBm aW5lLiBVbnRpbCB0aGUgcmVtYWluZGVyIG9mIHRoZSBzZXJpZXMgd291bGQgYmUgbWVyZ2VkCml0 IHdvdWxkIGJlIGVhc3kgdG8gZmxpcCB0aGUgZGVmYXVsdCBhbGdvcml0aG0gYmFjay4KCk9udG8g dGhlIHBlcmZvcm1hbmNlIGV2YWx1YXRpb24uIEFzIGEgaGVhZGxpbmUgcmVzdWx0IEkgaGF2ZSB0 ZXN0ZWQgdGhyZWUKc2ltdWx0YW5lb3VzIGNsaWVudHMgb24gdGhlIFN0ZWFtIERlY2s6CgpPbmUg aW5zdGFuY2Ugb2YgYSBkZWZlcnJlZG11bHRpc2FtcGxpbmcgVnVsa2FuIGRlbW8gcnVubmluZyB3 aXRoIGxvdyBwcmlvcml0eSwKb25lIG5vcm1hbCBwcmlvcml0eSBpbnN0YW5jZSBvZiB0aGUgc2Ft ZSBkZW1vLCBhbmQgdGhlIFVuaWdpbmUgSGVhdmVuIGJlbmNobWFyay4KCldpdGggdGhlIEZJRk8g c2NoZWR1bGVyIHdlIGNhbiBzZWUgdGhhdCB0aGUgbG93IHByaW9yaXR5IGNsaWVudCBpcyBjb21w bGV0ZWx5CnN0YXJ2ZWQgYW5kIHRoZSBHUFUgdGltZSBkaXN0cmlidXRpb24gYmV0d2VlbiB0aGUg b3RoZXIgdHdvIGNsaWVudHMgaXMgdW5ldmVuOgoKaHR0cHM6Ly9wZW9wbGUuaWdhbGlhLmNvbS90 dXJzdWxpbi9kcm0tc2NoZWQtZmFpci9maWZvLXN0YXJ2YXRpb24ucG5nCgpTd2l0Y2hpbmcgdG8g dGhlIGZhaXIgc2NoZWR1bGVyLCBHUFUgdGltZSBkaXN0cmlidXRpb24gaXMgYWxtb3N0IGVxdWFs IGFuZCB0aGUKbG93IHByaW9yaXR5IGNsaWVudCBkb2VzIGdldCBhIHNtYWxsIHNoYXJlIG9mIHRo ZSBHUFU6CgpodHRwczovL3Blb3BsZS5pZ2FsaWEuY29tL3R1cnN1bGluL2RybS1zY2hlZC1mYWly L2ZhaXItbm8tc3RhcnZhdGlvbi5wbmcKCk1vdmluZyBvbnRvIHRoZSBzeW50aGV0aWMgc3VibWlz c2lvbiBwYXR0ZXJucywgdGhleSBhcmUgYWJvdXQgdHdvIHNpbXVsdGFuZW91cwpjbGllbnRzIHdo aWNoIGJyb2FkbHkgY292ZXIgdGhlIGZvbGxvd2luZyBjYXRlZ29yaWVzOgoKICogRGVlcCBxdWV1 ZSBjbGllbnRzCiAqIEhvZ3MgdmVyc3VzIGludGVyYWN0aXZlCiAqIFByaW9yaXR5IGhhbmRsaW5n CgpMZXRzIGxvb2sgYXQgdGhlIHJlc3VsdHM6CgoxLiBUd28gbm9ybWFsIHByaW9yaXR5IGRlZXAg cXVldWUgY2xpZW50cy4KClRoZXNlIG9uZXMgc3VibWl0IG9uZSBzZWNvbmQgd29ydGggb2YgOG1z IGpvYnMuIEFzIGZhc3QgYXMgdGhleSBjYW4sIG5vCmRlcGVuZGVuY2llcyBldGMuIFRoZXJlIGlz IG5vIGRpZmZlcmVuY2UgaW4gcnVudGltZSBiZXR3ZWVuIEZJRk8gYW5kIGZhaXIgYnV0CnRoZSBs YXR0ZXIgYWxsb3dzIGJvdGggY2xpZW50cyB0byBwcm9ncmVzcyB3aXRoIHdvcmsgbW9yZSBldmVu bHk6CgpodHRwczovL3Blb3BsZS5pZ2FsaWEuY29tL3R1cnN1bGluL2RybS1zY2hlZC1mYWlyL25v cm1hbC1ub3JtYWwucG5nCgooWCBheGlzIGlzIHRpbWUsIFkgaXMgc3VibWl0dGVkIHF1ZXVlLWRl cHRoLCBoZW5jZSBsb3dlcmluZyBvZiBxZCBjb3JyZXNwb25kcwogIHdpdGggd29yayBwcm9ncmVz cyBmb3IgYm90aCBjbGllbnRzLCB0ZXN0ZWQgd2l0aCBib3RoIHNjaGVkdWxlcnMgc2VwYXJhdGVs eS4pCgpSb3VuZC1yb2JpbiBpcyB0aGUgc2FtZSBhcyBmYWlyIGhlcmUuCgoyLiBTYW1lIHR3byBj bGllbnRzIGJ1dCBvbmUgaXMgbm93IGxvdyBwcmlvcml0eS4KCmh0dHBzOi8vcGVvcGxlLmlnYWxp YS5jb20vdHVyc3VsaW4vZHJtLXNjaGVkLWZhaXIvbm9ybWFsLWxvdy5wbmcKCk5vcm1hbCBwcmlv cml0eSBjbGllbnQgaXMgYSBzb2xpZCBsaW5lLCBsb3cgcHJpb3JpdHkgZG90dGVkLiBXZSBjYW4g c2VlIGhvdyBGSUZPCmNvbXBsZXRlbHkgc3RhcnZlcyB0aGUgbG93IHByaW9yaXR5IGNsaWVudCB1 bnRpbCB0aGUgbm9ybWFsIHByaW9yaXR5IGlzIGZ1bGx5CmRvbmUuIE9ubHkgdGhlbiB0aGUgbG93 IHByaW9yaXR5IGNsaWVudCBnZXRzIGFueSBHUFUgdGltZS4KCkluIGNvbnN0cmFzdCwgZmFpciBz Y2hlZHVsZXIgYWxsb3dzIHNvbWUgR1BVIHRpbWUgdG8gdGhlIGxvdyBwcmlvcml0eSBjbGllbnQu CgpIZXJlIHJvdW5kLXJvYmluIGZsYXZvdXJzIGFyZSB0aGUgc2FtZSBhcyBGSUZPIChzYW1lIHN0 YXJ2YXRpb24gaXNzdWUpLgoKMy4gU2FtZSBjbGllbnRzIGJ1dCBub3cgaGlnaCB2ZXJzdXMgbm9y bWFsIHByaW9yaXR5LgoKU2ltaWxhciBiZWhhdmlvdXIgYXMgaW4gdGhlIHByZXZpb3VzIG9uZSB3 aXRoIG5vcm1hbCBhIGJpdCBsZXNzIGRlLXByaW9yaXRpc2VkCnJlbGF0aXZlIHRvIGhpZ2gsIHRo YW4gbG93IHdhcyBhZ2FpbnN0IG5vcm1hbC4KCmh0dHBzOi8vcGVvcGxlLmlnYWxpYS5jb20vdHVy c3VsaW4vZHJtLXNjaGVkLWZhaXIvaGlnaC1ub3JtYWwucG5nCgpBbmQgYWdhaW4gcm91bmQtcm9i aW4gZmxhdm91cnMgYXJlIHRoZSBzYW1lIGFzIEZJRk8uCgo0LiBIZWF2eSBsb2FkIHZzIGludGVy YWN0aXZlIGNsaWVudC4KCkhlYXZ5IGNsaWVudCBlbWl0cyBhIDc1JSBHUFUgbG9hZCBpbiB0aGUg Zm9ybWF0IG9mIDN4IDIuNW1zIGpvYnMgZm9sbG93ZWQgYnkgYQoyLjVtcyB3YWl0LiBJbnRlcmFj dGl2ZSBjbGllbnQgZW1pdHMgYSAxMCUgR1BVIGxvYWQgaW4gdGhlIGZvcm1hdCBvZiAxeCAxbXMg am9iCmZvbGxvd2VkIGJ5IGEgOW1zIHdhaXQuCgpUaGlzIHNpbXVsYXRlcyBhbiBpbnRlcmFjdGl2 ZSBncmFwaGljYWwgY2xpZW50IHVzZWQgb24gdG9wIG9mIGEgcmVsYXRpdmVseSBoZWF2eQpiYWNr Z3JvdW5kIGxvYWQgYnV0IG5vIEdQVSBvdmVyc3Vic2NyaXB0aW9uLgoKR3JhcGhzIHNob3cgdGhl IGludGVyYWN0aXZlIGNsaWVudCBvbmx5IGFuZCBmcm9tIG5vdyBvbiwgaW5zdGVhZCBvZiBsb29r aW5nIGF0CnRoZSBjbGllbnQncyBxdWV1ZSBkZXB0aCwgd2UgbG9vayBhdCBpdHMgImZwcyIuCgpo dHRwczovL3Blb3BsZS5pZ2FsaWEuY29tL3R1cnN1bGluL2RybS1zY2hlZC1mYWlyLzI1MTAwOC80 LWhlYXZ5LXZzLWludGVyYWN0aXZlLnBuZwoKSGVyZSByb3VuZC1yb2JpbiBhbmQgcm91bmQtcm9i aW4gcmV3cml0dGVuIG9uIHRvcCBvZiBGSUZPIGFyZSBiZXN0LCB3aXRoIHRoZQpmYWlyIGFsZ29y aXRobSBiZWluZyB2ZXJ5IGNsb3NlLiBGSUZPIGlzIGNsZWFybHkgdGhlIHdvcnN0LgoKNS4gQW4g ZXZlbiBoZWF2aWVyIGxvYWQgdnMgaW50ZXJhY3RpdmUgY2xpZW50LgoKVGhpcyBvbmUgaXMgb3Zl cnN1YnNjcmliaW5nIHRoZSBHUFUgYnkgc3VibWl0dGluZyA0eCA1MG1zIGpvYnMgYW5kIHdhaXRp bmcgZm9yCm9ubHkgb25lIG1pY3Jvc2Vjb25kIGJlZm9yZSByZXBlYXRpbmcgdGhlIGN5Y2xlLiBJ bnRlcmFjdGl2ZSBjbGllbnQgaXMgdGhlIHNhbWUKMTAlIGFzIGFib3ZlLgoKaHR0cHM6Ly9wZW9w bGUuaWdhbGlhLmNvbS90dXJzdWxpbi9kcm0tc2NoZWQtZmFpci8yNTEwMDgvNC12ZXJ5LWhlYXZ5 LXZzLWludGVyYWN0aXZlLnBuZwoKSGVyZSBGSUZPIGlzIGV2ZW4gd29yc2UgYW5kIGZhaXIgaXMg YWdhaW4gYWxtb3N0IGFzIGdvb2QgYXMgdGhlIHR3byByb3VuZC1yb2JpbgpmbGF2b3Vycy4KCjYu IExvdyBwcmlvcml0eSBHUFUgaG9nIHZlcnN1cyBoZWF2eS1pbnRlcmFjdGl2ZS4KCkxvdyBwcmlv cml0eSBjbGllbnQ6IDN4IDIuNW1zIGpvYnMgY2xpZW50IGZvbGxvd2VkIGJ5IGEgMC41bXMgd2Fp dC4KSW50ZXJhY3RpdmUgY2xpZW50OiAxeCAwLjVtcyBqb2IgZm9sbG93ZWQgYnkgYSAxMG1zIHdh aXQuCgpodHRwczovL3Blb3BsZS5pZ2FsaWEuY29tL3R1cnN1bGluL2RybS1zY2hlZC1mYWlyLzI1 MTAwOC80LWxvdy1ob2ctdnMtaW50ZXJhY3RpdmUucG5nCgpBbGwgc2NoZWR1bGVycyBhcHBlYXIg dG8gaGFuZGxlIHRoaXMgYWxtb3N0IGVxdWFsbHkgd2VsbCBidXQgRklGTyBjb3VsZCBzdGlsbCBi ZQp0aGUgbGFzdCB3aGlsZSBmYWlyIGhhcyBhIHNsaWdodCBsZWFkLgoKQXMgYmVmb3JlLCBJIGFt IGxvb2tpbmcgZm9yIGZlZWRiYWNrLCBpZGVhcyBmb3Igd2hhdCBvdGhlciBraW5kcyBvZiBzdWJt aXNzaW9uCnNjZW5hcmlvcyB0byB0ZXN0LCB0ZXN0aW5nIG9uIGRpZmZlcmVudCBHUFVzIGFuZCBv ZiBjb3Vyc2UgcmV2aWV3cy4KCnYyOgogKiBGaXhlZCBtYW55IHJlYmFzZSBlcnJvcnMuCiAqIEFk ZGVkIHNvbWUgbmV3IHBhdGNoZXMuCiAqIERyb3BwZWQgc2luZ2xlIHNob3QgZGVwZW5kZWN5IGhh bmRsaW5nLgoKdjM6CiAqIEFkZGVkIHNjaGVkdWxpbmcgcXVhbGl0eSB1bml0IHRlc3RzLgogKiBS ZWZpbmVkIGEgdGlueSBiaXQgYnkgYWRkaW5nIHNvbWUgZmFpcm5lc3MuCiAqIERyb3BwZWQgYSBm ZXcgcGF0Y2hlcyBmb3Igbm93LgoKdjQ6CiAqIFJlcGxhY2VkIGRlYWRsaW5lIHdpdGggZmFpciEK ICogUmVmaW5lZCBzY2hlZHVsaW5nIHF1YWxpdHkgdW5pdCB0ZXN0cy4KICogUHVsbGVkIG9uZSBj bGVhbnVwIHBhdGNoIGVhcmxpZXIuCiAqIEZpeGVkICJkcm0vc2NoZWQ6IEF2b2lkIGRvdWJsZSBy ZS1sb2NrIG9uIHRoZSBqb2IgZnJlZSBwYXRoIi4KCnY1OgogKiBSZWJhc2Ugb24gdG9wIG9mIGxh dGVzdCB1cHN0cmVhbSBEUk0gc2NoZWR1bGVyIGNoYW5nZXMuCiAqIEtlcm5lbGRvYyBmaXh1cC4K ICogSW1wcm92ZSBjb21taXQgbWVzc2FnZSBqdXN0aWZpY2F0aW9uIGZvciBvbmUgcGF0Y2guIChQ aGlsaXBwKQogKiBBZGQgY29tbWVudCBpbiBkcm1fc2NoZWRfYWxsb2Nfd3EuIChDaHJpc3RpYW4p Cgp2NjoKICogUmViYXNlIGZvciAiZHJtL3NjaGVkOiBEZS1jbHV0dGVyIGRybV9zY2hlZF9pbml0 IiBnZXR0aW5nIG1lcmdlZC4KICogQXZvaWQgTlVMTCBycSBkZXJlZmVyZW5jZSBmcm9tIGEgYmFk IHJlYmFzZS4gKE1haXJhKQogKiBBZGRlZCBzb21lIGtlcm5lbGRvYyB0aHJvdWdob3V0LiAoTWFp cmEpCiAqIFJlbW92ZWQgc29tZSBsb2NrZGVwIGFubm90YXRpb25zIG5vdCBiZWxvbmdpbmcgdG8g b25lIHBhdGNoLiAoTWFpcmEpCiAqIFVzZSBkbWFfZmVuY2VfaXNfc2lnbmFsZWQgaW4gImRybS9z Y2hlZDogQXZvaWQgZG91YmxlIHJlLWxvY2sgb24gdGhlIGpvYiBmcmVlIHBhdGgiLiAoTWFpcmEs IFBoaWxpcHApCgp2NzoKICogUmViYXNlIGZvciBzb21lIHByZXAgcGF0Y2hlcyBnZXR0aW5nIG1l cmdlZC4KICogRHJvcHBlZCBzdWJtaXQgYWxsIHJlYWR5IGpvYnMgcGF0Y2guCiAqIEZpeGVkIDY0 LWJpdCBkaXZpc2lvbiBpbiB1bml0IHRlc3RzLgogKiBGaXhlZCBzb21lIG1vcmUgcmViYXNlIGFu ZCBwYXRjaCByZS1vcmRlcmluZyBtaXN0YWtlcy4KICogUHJlc2VydmUgZW50aXR5IFJSIG9yZGVy IHdoZW4gcmUtZW50ZXJpbmcgdGhlIHF1ZXVlLgogKiBGaW5lIHR1bmVkIHRoZSBxdWV1ZSByZS1l bnRlciBsb2dpYyBmb3IgYmV0dGVyIGJlaGF2aW91ciB3aXRoIGludGVyYWN0aXZlCiAgIGNsaWVu dHMuCiAqIFJlbW92ZWQgc29tZSBzdGF0aWMgaW5saW5lcy4KICogQWRkZWQgbW9yZSBrZXJuZWxk b2MuCiAqIERvbmUgc29tZSBiZW5jaG1hcmtzIGluIHRoZSByb3VuZC1yb2JpbiBzY2hlZHVsaW5n IG1vZGVzLgoKdjg6CiAqIFJlYmFzZWQgZm9yIHVwc3RyZWFtIGNoYW5nZXMuCiAqIEFkZGVkIGFz c2VydCBmb3IgcmV2ZXJzZSBudW1lcmljYWwgb3JkZXIgb2YgRFJNX1NDSEVEX1BSSU9SSVRZIGVu dW1zLgogKiBGaXhlZCBoZWFkIG9mIHJxIHByaW9yaXR5IHVwZGF0ZXMuCgoqKiogUkZDIC0+IFBB VENIIGNoYW5nZSBsb2cgdmVyc2lvbiByZXNldC4gKioqCgp2OSAvIHYxOgogKiBSRkMgLT4gUEFU Q0ggZm9yIHRoZSBzZXJpZXMgYXMgYWdyZWVkIGR1cmluZyB0aGUgWERDLgogKiBVcGRhdGVkIGlu dGVyYWN0aXZlIGJlbmNobWFyayBncmFwaHMuCiAqIEltcHJvdmVkIGhhbmRsaW5nIG9mIGludGVy YWN0aXZlIGNsaWVudHMgYnkgcmVwbGFjaW5nIHRoZSByYW5kb20gbm9pc2Ugb24gdGllCiAgIGFw cHJvYWNoIHdpdGggdGhlIGF2ZXJhZ2Ugam9iIGR1cmF0aW9uIHN0YXRpc3RpY3MuCiAqIERvY3Vt ZW50IGluIGNvZGUgd2h5IHdlIHRyYWNrIGVudGl0eSBHUFUgc3RhdHMgaW4gYSByZWZlcmVuY2Ug Y291bnRlZCBzdHJ1Y3R1cmVzLgogKiBEb2N1bWVudCB0aGUgbmV3IHN0cnVjdHVyZSBmaWVsZHMg YWRkZWQgYnkgdGhlIGZhaXIgcG9saWN5LgogKiBVbmRvIHNvbWUgdGFiIHZzIHNwYWNlcyBkYW1h Z2UuCiAqIE1vcmUgYWNjdXJhdGUgd29yZGluZyBpbiB0aGUgZmFpciBwb2xpY3kgY29tbWl0IG1l c3NhZ2UuCiAqIERlZmF1bHQgdG8gZmFpciBwb2xpY3kgaW4gYSBzZXBhcmF0ZSBwYXRjaC4KICog UmVuYW1lZCBkcm1fc2NoZWRfcnFfc2VsZWN0X2VudGl0eSB0byBkcm1fc2NoZWRfc2VsZWN0X2Vu dGl0eSBhbmQgbWFrZSBpdCBvbmx5IHRha2Ugc2NoZWQuCiAqIEZpeGVkIGtlcm5lbGRvYyBhZnRl ciByZW1vdmluZyBzY2hlZHVsaW5nIHBvbGljaWVzIGFuZCByZW5hbWluZyB0aGUgcnEuCiAqIFJl dmVyc2VkIGFyZ3VtZW50cyBvZiBkcm1fc2NoZWRfcnFfaW5pdCBhbmQgY2xlYW51cCBjYWxsZXJz LiAoTmV3IHBhdGNoKQogKiBSZW1vdmVkIHVudXNlZCBudW1fcnFzIGZyb20gc3RydWN0IGRybV9z Y2hlZF9hcmdzLiAoTmV3IHBhdGNoZXMpCiAqIFVuaXQgdGVzdHM6CiAgICogQWRkZWQgd2FpdCBk dXJhdGlvbiBjb21tZW50cy4KICAgKiBEYXRhIHN0cnVjdHVyZSBjb21tZW50cy4KICAgKiBCZXR0 ZXIgbmFtZSBmb3IgYSBsb2NhbCB2YXJpYWJsZS4KICAgKiBBZGRlZCBjb21tZW50IHRvIHRoZSBz aG9ydCBqb2IgZHVyYXRpb24gYXNzZXJ0LgogICAqIEFkZGVkIGNvbW1lbnQgZm9yIGNvbmRfcmVz Y2hlZCgpLgogICAqIFR3ZWFrZWQgc29tZSBjb21tZW50cwogICAqIEFkZGVkIGNsaWVudF9kb25l KCkgaGVscGVyIGFuZCBkb2N1bWVudGVkIHRoZSBSRUFEX09OQ0UuCiAgICogQ2xhcmlmaWVkIGN5 Y2xlcyBwZXIgc2Vjb25kIGNhbGN1bGF0aW9uLgoKdjI6CiAqIERyb3BwZWQgdGhlIHNjaGVkX3Jx X2luaXQoKSBhcmd1bWVudCByZS1vcmRlciBwYXRjaC4KICogUHVsbGVkIHJ1biBxdWV1ZSBtYW5h Z2VtZW50IGNvbnNvbGlkYXRpb24gcGF0Y2hlcyB0byBzdGFydCBvZiB0aGUgc2VyaWVzLgogKiBE cm1fc2NoZWRfcnFfZ2V0X3JyX3RzKCkgcmVuYW1lZCB0byBkcm1fc2NoZWRfcnFfbmV4dF9ycl90 cygpLgogKiBBZGRlZCBEUk1fU0NIRURfUFJJT1JJVFlfSU5WQUxJRCBsb2NhbCBkZWZpbmUuCiAq IEFkZGVkIGxvY2tpbmcgYXJvdW5kIHRoZSBrdGltZV90IHZydW50aW1lIHJlYWQuCiAqIEV4cGFu ZGVkIGNvbW1lbnQgcmVsYXRpbmcgdG8gdGhlIHVubG9ja2VkIGVudGl0eS0+cHJpb3JpdHkgcmVh ZC4KICogRXhwYW5kZWQgY29tbWVudCByZWxhdGluZyB0byB0aGUgdW5sb2NrZWQgc2NoZWR1bGVy IGF2ZXJhZ2Ugam9iIGR1cmF0aW9uIHJlYWQuCiAqIFZhcmlvdXMga2VybmVsZG9jIHR3ZWFrcy4K ICogVW5kbyBzb21lIHRhYiB2cyBzcGFjZXMgZGFtYWdlIGhhcmRlci4KICogVW5kbyBvbmUgZW1w dHkgbGluZSByZWJhc2UgZGFtYWdlLgogKiBSZXdvcmRlZCBjb21taXQgbWVzc2FnZSBmb3IgdGhl IEZJRk8gYW5kIFJSIHJlbW92YWwgcGF0Y2guCiAqIFZhcmlvdXMgY29tbWl0IG1lc3NhZ2Ugc3Bl bGxpbmcsIGdyYW1tYXIgYW5kIHR5cG8gZml4ZXMuCiAqIFVuaXQgdGVzdHM6CiAgICogVmFyaW91 cyBzdHlsZSBjaGFuZ2VzLgogICAqIE1vcmUgZGVzY3JpcHRpdmUgdGVzdCBuYW1lcy4KICAgKiBQ cmludCBsZWdlbmQgZm9yIG1lYXN1cmVkIG1ldHJpY3MuCiAgICogQ2hlY2sgZm9yIG1lbW9yeSBh bGxvY2F0aW9uIGZhaWx1cmVzLgoKdjM6CiAqIE1hcmtlZCBmYWlyIHBvbGljeSBhcyBkZWZhdWx0 IGluIHRoZSBjb3JyZWN0IHBhdGNoLgogKiBGdXJ0aGVyIGltcHJvdmVkIGNvbW1lbnQgaW4gZHJt X3NjaGVkX3JxX3VwZGF0ZV9wcmlvKCkuCiAqIE1vdmVkIERSTV9TQ0hFRF9QUklPUklUWV9JTlZB TElEIHRvIGdwdV9zY2hlZHVsZXIuaC4KICogQWRkZWQgZGVzY3JpcHRpb24gb2YgdGhlIEdQVSB0 aW1lIHRvIHZydW50aW1lIHNjYWxpbmcgZmFjdG9ycy4KICogUmVjb3JkZWQgbW9yZSBjb2xsZWN0 ZWQgYWNrcy4KCnY0OgogKiBSZWJhc2VkLCBjb2xsZWN0IGFja2VzIGFuZCByLWItcyByZWNlaXZl cyBzbyBmYXIuCiAqIE5ldyBwYXRjaCBpbiB0aGUgc2VyaWVzIGZvciBoYW5kbGluZyB0aGUgbmV3 IGV0aG9zdSBhY2NlbCBkcml2ZXIuCiAqIEJ1bXAgbG93ZXIgcHJpb3JpdGllcyBsb3dlciBkb3du IGluIHRoZSBydW4gcXVldWUgd2hlbiB0aGV5IHJlLWpvaW4sIGluIG9yZGVyCiAgIHRvIHBlbmFs aXplIHRoZW0gYSBiaXQgbW9yZSB0aGFuIHNpbXBseSBtYWtpbmcgdGhlbSBzZWNvbmQgaW4gdGhl IGxpbmUgdG8KICAgcnVuIGFzIGl0IHdhcyBpbiB2My4KCnY1OgogKiBSZWJhc2VkLCBjb2xsZWN0 IGFja2VzIGFuZCByLWItcyByZWNlaXZlZCBzbyBmYXIuCiAqIEZpeCBsb3N0IHJldHVybiBzdGF0 ZW1lbnQgaW50cm9kdWNlZCBpbiB2MiByZWZhY3RvcmluZy4KICogVXNlIHZpcnR1YWwgcnVudGlt ZSBiYXNlZCBvbiBhdmVyYWdlIGpvYiBkdXJhdGlvbnMgd2hlbiBwbGFjaW5nIHRoZSByZS0KICAg am9pbmluZyBsb3dlciBwcmlvcml0eSBlbnRpdHkgaW4gdGhlIHJ1bi1xdWV1ZS4KCnY2OgogKiBS ZW5hbWVkIGRybV9zY2hlZF9lbnRpdHlfc3RhdHNfYWxsb2MgdG8gZHJtX3NjaGVkX2VudGl0eV9z dGF0c19uZXcuCiAqIE1vdmVkIGRybV9zY2hlZF9lbnRpdHlfc3RhdHNfam9iX2FkZF9ncHVfdGlt ZSB0byBzY2hlZF9lbnRpdHkuYy4KICogSW1wcm92ZWQga2VybmVsZG9jIGZvciBzdHJ1Y3QgZHJt X3NjaGVkX2VudGl0eV9zdGF0cy4KICogRXhwbGFpbmVkIEdQVSBhY2NvdW50aW5nIHBsYWNlbWVu dCBpbiB0aGUgcmVzcGVjdGl2ZSBjb21taXQgdGV4dC4KICogUmVtb3ZlZCBkdXBsaWNhdGVkIHNj aGVkIGxpc3QgYXNzaWdubWVudCBpbnQgdGhlIGVtYmVkZGluZyB0aGUgcnVuLXF1ZXVlCiAgIHBh dGNoLgoKdjc6CiAqIFJlYmFzZWQgdG8gY2F0Y2h1cCB3aXRoIHVwc3RyZWFtIGNoYW5nZXMuCiAq IERyb3BwZWQgdGhlIHR3byBhbWRncHUgZGVwZW5kZW5jaWVzIGZyb20gdGhlIHNlcmllcyAtIHRo ZXkgaGF2ZSBiZWVuIG1lcmdlZAogICBhbmQgaGF2ZSBwcm9wYWdhdGVkIHRvIGRybS1uZXh0IGFu ZCBkcm0tdGlwLgogKiBBcHBsaWVkIGFja3MvcmV2aWV3cyByZWNlaXZlZCBzaW5jZSB2Ni4KCkNj OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+CkNjOiBEYW5pbG8g S3J1bW1yaWNoIDxkYWtyQGtlcm5lbC5vcmc+CkNDOiBMZW8gTGl1IDxMZW8uTGl1QGFtZC5jb20+ CkNjOiBMdWNhcyBTdGFjaCA8bC5zdGFjaEBwZW5ndXRyb25peC5kZT4KQ2M6IE1hdHRoZXcgQnJv c3QgPG1hdHRoZXcuYnJvc3RAaW50ZWwuY29tPgpDYzogUGhpbGlwcCBTdGFubmVyIDxwaGFzdGFA a2VybmVsLm9yZz4KQ2M6IFBpZXJyZS1FcmljIFBlbGxvdXgtUHJheWVyIDxwaWVycmUtZXJpYy5w ZWxsb3V4LXByYXllckBhbWQuY29tPgpDYzogTWljaGVsIETDpG56ZXIgPG1pY2hlbC5kYWVuemVy QG1haWxib3gub3JnPgoKVHZydGtvIFVyc3VsaW4gKDI5KToKICBkcm0vc2NoZWQ6IERpc2FsbG93 IGluaXRpYWxpemluZyBlbnRpdGllcyB3aXRoIG5vIHNjaGVkdWxlcnMKICBkcm0vc2NoZWQ6IENv bnNvbGlkYXRlIGVudGl0eSBydW4gcXVldWUgbWFuYWdlbWVudAogIGRybS9zY2hlZDogTW92ZSBy dW4gcXVldWUgcmVsYXRlZCBjb2RlIGludG8gYSBzZXBhcmF0ZSBmaWxlCiAgZHJtL3NjaGVkOiBB ZGQgc29tZSBzY2hlZHVsaW5nIHF1YWxpdHkgdW5pdCB0ZXN0cwogIGRybS9zY2hlZDogQWRkIHNv bWUgbW9yZSBzY2hlZHVsaW5nIHF1YWxpdHkgdW5pdCB0ZXN0cwogIGRybS9zY2hlZDogSW1wbGVt ZW50IFJSIHZpYSBGSUZPCiAgZHJtL3NjaGVkOiBGcmVlIGFsbCBmaW5pc2hlZCBqb2JzIGF0IG9u Y2UKICBkcm0vc2NoZWQ6IEFjY291bnQgZW50aXR5IEdQVSB0aW1lCiAgZHJtL3NjaGVkOiBSZW1v dmUgaWRsZSBlbnRpdHkgZnJvbSB0cmVlCiAgZHJtL3NjaGVkOiBBZGQgZmFpciBzY2hlZHVsaW5n IHBvbGljeQogIGRybS9zY2hlZDogRmF2b3VyIGludGVyYWN0aXZlIGNsaWVudHMgc2xpZ2h0bHkK ICBkcm0vc2NoZWQ6IFN3aXRjaCBkZWZhdWx0IHBvbGljeSB0byBmYWlyCiAgZHJtL3NjaGVkOiBS ZW1vdmUgRklGTyBhbmQgUlIgYW5kIHNpbXBsaWZ5IHRvIGEgc2luZ2xlIHJ1biBxdWV1ZQogIGRy bS9zY2hlZDogRW1iZWQgcnVuIHF1ZXVlIHNpbmdsZXRvbiBpbnRvIHRoZSBzY2hlZHVsZXIKICBh Y2NlbC9hbWR4ZG5hOiBSZW1vdmUgZHJtX3NjaGVkX2luaXRfYXJncy0+bnVtX3JxcyB1c2FnZQog IGFjY2VsL3JvY2tldDogUmVtb3ZlIGRybV9zY2hlZF9pbml0X2FyZ3MtPm51bV9ycXMgdXNhZ2UK ICBhY2NlbC9ldGhvc3U6IFJlbW92ZSBkcm1fc2NoZWRfaW5pdF9hcmdzLT5udW1fcnFzIHVzYWdl CiAgZHJtL2FtZGdwdTogUmVtb3ZlIGRybV9zY2hlZF9pbml0X2FyZ3MtPm51bV9ycXMgdXNhZ2UK ICBkcm0vZXRuYXZpdjogUmVtb3ZlIGRybV9zY2hlZF9pbml0X2FyZ3MtPm51bV9ycXMgdXNhZ2UK ICBkcm0vaW1hZ2luYXRpb246IFJlbW92ZSBkcm1fc2NoZWRfaW5pdF9hcmdzLT5udW1fcnFzIHVz YWdlCiAgZHJtL2xpbWE6IFJlbW92ZSBkcm1fc2NoZWRfaW5pdF9hcmdzLT5udW1fcnFzIHVzYWdl CiAgZHJtL21zbTogUmVtb3ZlIGRybV9zY2hlZF9pbml0X2FyZ3MtPm51bV9ycXMgdXNhZ2UKICBk cm0vbm91dmVhdTogUmVtb3ZlIGRybV9zY2hlZF9pbml0X2FyZ3MtPm51bV9ycXMgdXNhZ2UKICBk cm0vcGFuZnJvc3Q6IFJlbW92ZSBkcm1fc2NoZWRfaW5pdF9hcmdzLT5udW1fcnFzIHVzYWdlCiAg ZHJtL3BhbnRob3I6IFJlbW92ZSBkcm1fc2NoZWRfaW5pdF9hcmdzLT5udW1fcnFzIHVzYWdlCiAg ZHJtL3NjaGVkOiBSZW1vdmUgZHJtX3NjaGVkX2luaXRfYXJncy0+bnVtX3JxcyB1c2FnZQogIGRy bS92M2Q6IFJlbW92ZSBkcm1fc2NoZWRfaW5pdF9hcmdzLT5udW1fcnFzIHVzYWdlCiAgZHJtL3hl OiBSZW1vdmUgZHJtX3NjaGVkX2luaXRfYXJncy0+bnVtX3JxcyB1c2FnZQogIGRybS9zY2hlZDog UmVtb3ZlIGRybV9zY2hlZF9pbml0X2FyZ3MtPm51bV9ycXMKCiBkcml2ZXJzL2FjY2VsL2FtZHhk bmEvYWllMl9jdHguYyAgICAgICAgICAgICAgfCAgIDEgLQogZHJpdmVycy9hY2NlbC9ldGhvc3Uv ZXRob3N1X2pvYi5jICAgICAgICAgICAgIHwgICAxIC0KIGRyaXZlcnMvYWNjZWwvcm9ja2V0L3Jv Y2tldF9qb2IuYyAgICAgICAgICAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfY3MuYyAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9kZXZpY2UuYyAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfam9iLmMgICAgICAgfCAgMjcgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9qb2IuaCAgICAgICB8ICAgNSArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3RyYWNlLmggICAgIHwgICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdm1fc2RtYS5jICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV94Y3AuYyAgICAgICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9z Y2hlZC5jICAgICAgIHwgICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9pbWFnaW5hdGlvbi9wdnJfcXVl dWUuYyAgICAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX3NjaGVkLmMgICAg ICAgICAgICAgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3ZtYS5jICAgICAg ICAgICAgIHwgICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX3JpbmdidWZmZXIuYyAgICAg ICAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3NjaGVkLmMgICAg ICAgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2pvYi5jICAgICAg IHwgICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9wYW50aG9yL3BhbnRob3JfbW11LmMgICAgICAgICB8 ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vcGFudGhvci9wYW50aG9yX3NjaGVkLmMgICAgICAgfCAg IDEgLQogZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9NYWtlZmlsZSAgICAgICAgICAgIHwgICAy ICstCiBkcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX2VudGl0eS5jICAgICAgfCAxNjMg KystLQogZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9mZW5jZS5jICAgICAgIHwgICAy ICstCiBkcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX2ludGVybmFsLmggICAgfCAgNzAg Ky0KIGRyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jICAgICAgICB8IDM1MSAr LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX3JxLmMgICAgICAgICAgfCAz NzkgKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvdGVzdHMvTWFrZWZpbGUgICAg ICB8ICAgMyArLQogLi4uL2dwdS9kcm0vc2NoZWR1bGVyL3Rlc3RzL21vY2tfc2NoZWR1bGVyLmMg IHwgICAxIC0KIC4uLi9ncHUvZHJtL3NjaGVkdWxlci90ZXN0cy90ZXN0c19zY2hlZHVsZXIuYyB8 IDg4NCArKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS92M2QvdjNkX3NjaGVkLmMg ICAgICAgICAgICAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0veGUveGVfZGVwX3NjaGVkdWxl ci5jICAgICAgICAgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL3hlL3hlX2V4ZWNsaXN0LmMgICAg ICAgICAgICAgIHwgICAxIC0KIGRyaXZlcnMvZ3B1L2RybS94ZS94ZV9ncHVfc2NoZWR1bGVyLmMg ICAgICAgICB8ICAgMSAtCiBpbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmggICAgICAgICAgICAg ICAgICAgfCAgNDQgKy0KIDMzIGZpbGVzIGNoYW5nZWQsIDE0OTcgaW5zZXJ0aW9ucygrKSwgNDgx IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9zY2hlZHVs ZXIvc2NoZWRfcnEuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9zY2hlZHVs ZXIvdGVzdHMvdGVzdHNfc2NoZWR1bGVyLmMKCi0tIAoyLjUyLjAKCg==