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 B4BA4104BECB for ; Wed, 11 Mar 2026 10:15:18 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C094210E88B; Wed, 11 Mar 2026 10:15:17 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.b="J61HW3gd"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="b0DQSE50"; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b="J61HW3gd"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="b0DQSE50"; dkim-atps=neutral Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by gabe.freedesktop.org (Postfix) with ESMTPS id 395D610E889 for ; Wed, 11 Mar 2026 10:15:14 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 2C9675BE09; Wed, 11 Mar 2026 10:14:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1773224090; h=from:from:reply-to: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=Ei/+24hoJB5Rk9GQ5ELC4ZgwT5ZjlqslxP6Vg6sXMcg=; b=J61HW3gdgZOv8yYfJJJy8UdFnmB1Q9kka0vK7bX9dGWuY1MvERqOMRZr9QfhIDQg/FXtvN uD/BDWIWk60kbP5A13xqmSOi2zKblKsiBTqjbTwXIVqBvQyX2fg6aUQlXFeHwdY/i5ZYm1 mUJ81VqICrOoQALkA8aoFANjBKNLxC0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1773224090; h=from:from:reply-to: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=Ei/+24hoJB5Rk9GQ5ELC4ZgwT5ZjlqslxP6Vg6sXMcg=; b=b0DQSE50Rx6Vq1eUZGFD9XzWuj3tzmRIsmuNrwNEqTODDGwMkgz82KQqhuWBbpsaUObbrh DFm/V4J4HWLvqlDQ== Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1773224090; h=from:from:reply-to: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=Ei/+24hoJB5Rk9GQ5ELC4ZgwT5ZjlqslxP6Vg6sXMcg=; b=J61HW3gdgZOv8yYfJJJy8UdFnmB1Q9kka0vK7bX9dGWuY1MvERqOMRZr9QfhIDQg/FXtvN uD/BDWIWk60kbP5A13xqmSOi2zKblKsiBTqjbTwXIVqBvQyX2fg6aUQlXFeHwdY/i5ZYm1 mUJ81VqICrOoQALkA8aoFANjBKNLxC0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1773224090; h=from:from:reply-to: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=Ei/+24hoJB5Rk9GQ5ELC4ZgwT5ZjlqslxP6Vg6sXMcg=; b=b0DQSE50Rx6Vq1eUZGFD9XzWuj3tzmRIsmuNrwNEqTODDGwMkgz82KQqhuWBbpsaUObbrh DFm/V4J4HWLvqlDQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id A2A213F978; Wed, 11 Mar 2026 10:14:49 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id oEM3JplAsWliBwAAD6G6ig (envelope-from ); Wed, 11 Mar 2026 10:14:49 +0000 From: Thomas Zimmermann To: javierm@redhat.com, lanzano.alex@gmail.com, kamlesh.gurudasani@gmail.com, david@lechnology.com, architanant5@gmail.com, wens@kernel.org, mripard@kernel.org, maarten.lankhorst@linux.intel.com, simona@ffwll.ch, airlied@gmail.com Cc: dri-devel@lists.freedesktop.org, Thomas Zimmermann Subject: [PATCH v2 16/16] drm/simple-kms: Deprecate simple-kms helpers Date: Wed, 11 Mar 2026 11:10:39 +0100 Message-ID: <20260311101438.365997-17-tzimmermann@suse.de> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260311101438.365997-1-tzimmermann@suse.de> References: <20260311101438.365997-1-tzimmermann@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Spamd-Result: default: False [-1.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; FUZZY_RATELIMITED(0.00)[rspamd.com]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEMAIL_ENVRCPT(0.00)[gmail.com]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; TO_DN_SOME(0.00)[]; RCPT_COUNT_TWELVE(0.00)[12]; TAGGED_RCPT(0.00)[]; FREEMAIL_TO(0.00)[redhat.com,gmail.com,lechnology.com,kernel.org,linux.intel.com,ffwll.ch]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; R_RATELIMIT(0.00)[to_ip_from(RLqirfcw6gnbcr9a9yhi49fhi6)]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo, suse.de:mid, suse.de:email] 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" RGVwcmVjYXRlIHNpbXBsZS1lbmNvZGVyIGFuZCBzaW1wbGUtZGlzcGxheS1waXBlIGhlbHBlcnMg aW4gZmF2b3Igb2YKcmVndWxhciBhdG9taWMgaGVscGVycy4gUmVtb3ZlIHRoZSByZWxhdGVkIGRv Y3VtZW50YXRpb24uIEFkZCBUT0RPCml0ZW0gZm9yIGNvbnZlcnRpbmcgdGhlIHJlbWFpbmluZyBk cml2ZXJzLgoKVGhlc2UgaGVscGVycyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBmb3IgeWVhcnMgYW5k IG1hbnkgZHJpdmVycyBoYXZlCmJlZW4gdXBkYXRlZCB0byBub3QgdXNlIHRoZW0uIFN0aWxsIHRo ZXJlIGFyZSBhIGZldyBsZWZ0IGFuZCB3ZQpvY2Nhc2lvbmFsbHkgcmVjZWl2ZSBuZXcgZHJpdmVy cyBidWlsZCB1cG9uIHRoZW0uIE1hcmtpbmcgdGhlbSBhcwpkZXByZWNhdGVkIHdpbGwgaG9wZWZ1 bGx5IHJlc29sdmUgdGhlc2UgcHJvYmxlbXMuIFRoZSBUT0RPIGl0ZW1zCnNob3VsZCBiZSBlYXN5 IGVub3VnaCBmb3IgZ2V0dGluZyBuZXcgdm9sdXRlZXJzIHN0YXJ0ZWQgb24gRFJNIGRyaXZlcgpk ZXZlbG9wbWVudC4KClNpZ25lZC1vZmYtYnk6IFRob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFu bkBzdXNlLmRlPgotLS0KIERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QgICB8 ICAxMiAtLQogRG9jdW1lbnRhdGlvbi9ncHUvaW50cm9kdWN0aW9uLnJzdCAgICAgIHwgICA2IC0K IERvY3VtZW50YXRpb24vZ3B1L3RvZG8ucnN0ICAgICAgICAgICAgICB8ICAzMiArKysrCiBkcml2 ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyAgICAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1 L2RybS9kcm1fZ2VtX2F0b21pY19oZWxwZXIuYyB8ICAyMiAtLS0KIGRyaXZlcnMvZ3B1L2RybS9k cm1fbW9kZXNldF9oZWxwZXIuYyAgICB8ICAgMyAtCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3NpbXBs ZV9rbXNfaGVscGVyLmMgfCAgODMgLS0tLS0tLS0tCiBpbmNsdWRlL2RybS9kcm1fc2ltcGxlX2tt c19oZWxwZXIuaCAgICAgfCAyMTYgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA4IGZpbGVzIGNo YW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDM0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUv ZHJtLWttcy1oZWxwZXJzLnJzdAppbmRleCA3ODExMjlmNzhiMDYuLmI0YTllNWFlODFmNiAxMDA2 NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdAorKysgYi9Eb2N1 bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0CkBAIC0xMDQsMTggKzEwNCw2IEBAIFZC TEFOSyBIZWxwZXIgUmVmZXJlbmNlCiAuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2Ry bV92YmxhbmtfaGVscGVyLmMKICAgIDpleHBvcnQ6CiAKLVNpbXBsZSBLTVMgSGVscGVyIFJlZmVy ZW5jZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLS4uIGtlcm5lbC1kb2M6OiBkcml2 ZXJzL2dwdS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmMKLSAgIDpkb2M6IG92ZXJ2aWV3Ci0K LS4uIGtlcm5lbC1kb2M6OiBpbmNsdWRlL2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaAotICAg OmludGVybmFsOgotCi0uLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9zaW1wbGVf a21zX2hlbHBlci5jCi0gICA6ZXhwb3J0OgotCiBmYmRldiBIZWxwZXIgRnVuY3Rpb25zIFJlZmVy ZW5jZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIApkaWZmIC0tZ2l0IGEvRG9j dW1lbnRhdGlvbi9ncHUvaW50cm9kdWN0aW9uLnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L2ludHJv ZHVjdGlvbi5yc3QKaW5kZXggM2NkMGM4ODYwYjk0Li5kOGY1MTk2OTNmYzIgMTAwNjQ0Ci0tLSBh L0RvY3VtZW50YXRpb24vZ3B1L2ludHJvZHVjdGlvbi5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9n cHUvaW50cm9kdWN0aW9uLnJzdApAQCAtMTE5LDEyICsxMTksNiBAQCBTaW1wbGUgRFJNIGRyaXZl cnMgdG8gdXNlIGFzIGV4YW1wbGVzCiBUaGUgRFJNIHN1YnN5c3RlbSBjb250YWlucyBhIGxvdCBv ZiBoZWxwZXIgZnVuY3Rpb25zIHRvIGVhc2Ugd3JpdGluZyBkcml2ZXJzIGZvcgogc2ltcGxlIGdy YXBoaWMgZGV2aWNlcy4gRm9yIGV4YW1wbGUsIHRoZSBgZHJpdmVycy9ncHUvZHJtL3RpbnkvYCBk aXJlY3RvcnkgaGFzIGEKIHNldCBvZiBkcml2ZXJzIHRoYXQgYXJlIHNpbXBsZSBlbm91Z2ggdG8g YmUgaW1wbGVtZW50ZWQgaW4gYSBzaW5nbGUgc291cmNlIGZpbGUuCi0KLVRoZXNlIGRyaXZlcnMg bWFrZSB1c2Ugb2YgdGhlIGBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3NgLCB0 aGF0IGhpZGVzCi1hbnkgY29tcGxleGl0eSBvZiB0aGUgRFJNIHN1YnN5c3RlbSBhbmQganVzdCBy ZXF1aXJlcyBkcml2ZXJzIHRvIGltcGxlbWVudCBhIGZldwotZnVuY3Rpb25zIG5lZWRlZCB0byBv cGVyYXRlIHRoZSBkZXZpY2UuIFRoaXMgY291bGQgYmUgdXNlZCBmb3IgZGV2aWNlcyB0aGF0IGp1 c3QKLW5lZWQgYSBkaXNwbGF5IHBpcGVsaW5lIHdpdGggb25lIGZ1bGwtc2NyZWVuIHNjYW5vdXQg YnVmZmVyIGZlZWRpbmcgb25lIG91dHB1dC4KLQogVGhlIHRpbnkgRFJNIGRyaXZlcnMgYXJlIGdv b2QgZXhhbXBsZXMgdG8gdW5kZXJzdGFuZCBob3cgRFJNIGRyaXZlcnMgc2hvdWxkIGxvb2sKIGxp a2UuIFNpbmNlIGFyZSBqdXN0IGEgZmV3IGh1bmRyZWRzIGxpbmVzIG9mIGNvZGUsIHRoZXkgYXJl IHF1aXRlIGVhc3kgdG8gcmVhZC4KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvdG9k by5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS90b2RvLnJzdAppbmRleCA1MjBkYTQ0YTA0YTYuLmJj OWYxNGM4YTJlYyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9ncHUvdG9kby5yc3QKKysrIGIv RG9jdW1lbnRhdGlvbi9ncHUvdG9kby5yc3QKQEAgLTI5LDYgKzI5LDM4IEBAIHJlZmFjdG9yaW5n cyBhbHJlYWR5IGFuZCBhcmUgYW4gZXhwZXJ0IGluIHRoZSBzcGVjaWZpYyBhcmVhCiBTdWJzeXN0 ZW0td2lkZSByZWZhY3RvcmluZ3MKID09PT09PT09PT09PT09PT09PT09PT09PT09PQogCitPcGVu LWNvZGUgZHJtX3NpbXBsZV9lbmNvZGVyX2luaXQoKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKworVGhlIGhlbHBlciBkcm1fc2ltcGxlX2VuY29kZXJfaW5pdCgpIHdhcyBz dXBwb3NlZCB0byBzaW1wbGlmeSBlbmNvZGVyCitpbml0aWFsaXphdGlvbi4gSW5zdGVhZCBpdCBv bmx5IGFkZGVkIGFuIGludGVybWVkaWF0ZSBsYXllciBiZXR3ZWVuIGF0b21pYworbW9kZXNldHRp bmcgYW5kIHRoZSBEUk0gZHJpdmVyLgorCitUaGUgdGFzayBoZXJlIGlzIHRvIHJlbW92ZSBkcm1f c2ltcGxlX2VuY29kZXJfaW5pdCgpLiBTZWFyY2ggZm9yIGEgZHJpdmVyCit0aGF0IGNhbGxzIGRy bV9zaW1wbGVfZW5jb2Rlcl9pbml0KCkgYW5kIGlubGluZSB0aGUgaGVscGVyLiBUaGUgZHJpdmVy IHdpbGwKK2Fsc28gbmVlZCBpdHMgb3duIGluc3RhbmNlIG9mIGRybV9lbmNvZGVyX2Z1bmNzLgor CitDb250YWN0OiBUaG9tYXMgWmltbWVybWFubiwgcmVzcGVjdGl2ZSBkcml2ZXIgbWFpbnRhaW5l cgorCitMZXZlbDogRWFzeQorCitSZXBsYWNlIHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlw ZSB3aXRoIHJlZ3VsYXIgYXRvbWljIGhlbHBlcnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgZGF0YSB0eXBl IHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSBhbmQgaXRzIGhlbHBlcnMgd2VyZSBzdXBw b3NlZAordG8gc2ltcGxpZnkgZHJpdmVyIGRldmVsb3BtZW50LiBJbnN0ZWFkIHRoZXkgb25seSBh ZGRlZCBhbiBpbnRlcm1lZGlhdGUgbGF5ZXIKK2JldHdlZW4gYXRvbWljIG1vZGVzZXR0aW5nIGFu ZCB0aGUgRFJNIGRyaXZlci4KKworVGhlcmUgYXJlIHN0aWxsIGRyaXZlcnMgdGhhdCB1c2UgZHJt X3NpbXBsZV9kaXNwbGF5X3BpcGUuIFRoZSB0YXNrIGhlcmUgaXMgdG8KK2NvbnZlcnQgdGhlbSB0 byB1c2UgcmVndWxhciBhdG9taWMgaGVscGVycy4gU2VhcmNoIGZvciBhIGRyaXZlciB0aGF0IGNh bGxzCitkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9pbml0KCkgYW5kIGlubGluZSBhbGwgaGVscGVy cyBmcm9tIGRybV9zaW1wbGVfa21zX2hlbHBlci5jCitpbnRvIHRoZSBkcml2ZXIsIHN1Y2ggdGhh dCBubyBzaW1wbGUtS01TIGludGVyZmFjZXMgYXJlIHJlcXVpcmVkLiBQbGVhc2UgYWxzbworcmVu YW1lIGFsbCBpbmxpbmVkIGZ1Y250aW9ucyBhY2NvcmRpbmcgdG8gZHJpdmVyIGNvbnZlbnRpb25z LgorCitDb250YWN0OiBUaG9tYXMgWmltbWVybWFubiwgcmVzcGVjdGl2ZSBkcml2ZXIgbWFpbnRh aW5lcgorCitMZXZlbDogRWFzeQorCiBSZW1vdmUgY3VzdG9tIGR1bWJfbWFwX29mZnNldCBpbXBs ZW1lbnRhdGlvbnMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fY3J0Yy5jCmluZGV4IDhkNmY3MjFjMmM5YS4uNjNlYWQ4YmE2NzU2IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2NydGMuYwpAQCAtMzQwLDggKzM0MCw3IEBAIHN0YXRpYyBpbnQgX19kcm1fY3J0Y19pbml0X3dp dGhfcGxhbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fY3J0YyAqCiAgKiBJ bml0cyBhIG5ldyBvYmplY3QgY3JlYXRlZCBhcyBiYXNlIHBhcnQgb2YgYSBkcml2ZXIgY3J0YyBv YmplY3QuIERyaXZlcnMKICAqIHNob3VsZCB1c2UgdGhpcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGRy bV9jcnRjX2luaXQoKSwgd2hpY2ggaXMgb25seSBwcm92aWRlZAogICogZm9yIGJhY2t3YXJkcyBj b21wYXRpYmlsaXR5IHdpdGggZHJpdmVycyB3aGljaCBkbyBub3QgeWV0IHN1cHBvcnQgdW5pdmVy c2FsCi0gKiBwbGFuZXMpLiBGb3IgcmVhbGx5IHNpbXBsZSBoYXJkd2FyZSB3aGljaCBoYXMgb25s eSAxIHBsYW5lIGxvb2sgYXQKLSAqIGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2luaXQoKSBpbnN0 ZWFkLgorICogcGxhbmVzKS4KICAqIFRoZSAmZHJtX2NydGNfZnVuY3MuZGVzdHJveSBob29rIHNo b3VsZCBjYWxsIGRybV9jcnRjX2NsZWFudXAoKSBhbmQga2ZyZWUoKQogICogdGhlIGNydGMgc3Ry dWN0dXJlLiBUaGUgY3J0YyBzdHJ1Y3R1cmUgc2hvdWxkIG5vdCBiZSBhbGxvY2F0ZWQgd2l0aAog ICogZGV2bV9remFsbG9jKCkuCkBAIC00MjQsOCArNDIzLDcgQEAgc3RhdGljIGludCBfX2RybW1f Y3J0Y19pbml0X3dpdGhfcGxhbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAgKiBJbml0cyBh IG5ldyBvYmplY3QgY3JlYXRlZCBhcyBiYXNlIHBhcnQgb2YgYSBkcml2ZXIgY3J0YyBvYmplY3Qu IERyaXZlcnMKICAqIHNob3VsZCB1c2UgdGhpcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGRybV9jcnRj X2luaXQoKSwgd2hpY2ggaXMgb25seSBwcm92aWRlZAogICogZm9yIGJhY2t3YXJkcyBjb21wYXRp YmlsaXR5IHdpdGggZHJpdmVycyB3aGljaCBkbyBub3QgeWV0IHN1cHBvcnQgdW5pdmVyc2FsCi0g KiBwbGFuZXMpLiBGb3IgcmVhbGx5IHNpbXBsZSBoYXJkd2FyZSB3aGljaCBoYXMgb25seSAxIHBs YW5lIGxvb2sgYXQKLSAqIGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2luaXQoKSBpbnN0ZWFkLgor ICogcGxhbmVzKS4KICAqCiAgKiBDbGVhbnVwIGlzIGF1dG9tYXRpY2FsbHkgaGFuZGxlZCB0aHJv dWdoIHJlZ2lzdGVyaW5nCiAgKiBkcm1tX2NydGNfY2xlYW51cCgpIHdpdGggZHJtbV9hZGRfYWN0 aW9uKCkuIFRoZSBjcnRjIHN0cnVjdHVyZSBzaG91bGQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZ2VtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX2F0 b21pY19oZWxwZXIuYwppbmRleCA0MjFjNDYwYWM5NzIuLmFiZWY4NjVjNWYyYyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fYXRvbWljX2hlbHBlci5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fZ2VtX2F0b21pY19oZWxwZXIuYwpAQCAtODcsMjggKzg3LDYgQEAKICAqIEEg bWFwcGluZyBhZGRyZXNzIGZvciBlYWNoIG9mIHRoZSBmcmFtZWJ1ZmZlcidzIGJ1ZmZlciBvYmpl Y3QgaXMgc3RvcmVkIGluCiAgKiBzdHJ1Y3QgJmRybV9zaGFkb3dfcGxhbmVfc3RhdGUubWFwLiBU aGUgbWFwcGluZ3MgYXJlIHZhbGlkIHdoaWxlIHRoZSBzdGF0ZQogICogaXMgYmVpbmcgdXNlZC4K LSAqCi0gKiBEcml2ZXJzIHRoYXQgdXNlIHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSBj YW4gdXNlCi0gKiAlRFJNX0dFTV9TSU1QTEVfRElTUExBWV9QSVBFX1NIQURPV19QTEFORV9GVU5D UyB0byBpbml0aWFsaXplIHRoZSByc3AKLSAqIGNhbGxiYWNrcy4gQWNjZXNzIHRvIHNoYWRvdy1i dWZmZXIgbWFwcGluZ3MgaXMgc2ltaWxhciB0byByZWd1bGFyCi0gKiBhdG9taWNfdXBkYXRlLgot ICoKLSAqIC4uIGNvZGUtYmxvY2s6OiBjCi0gKgotICoJc3RydWN0IGRybV9zaW1wbGVfZGlzcGxh eV9waXBlX2Z1bmNzIGRyaXZlcl9waXBlX2Z1bmNzID0gewotICoJCS4uLiwKLSAqCQlEUk1fR0VN X1NJTVBMRV9ESVNQTEFZX1BJUEVfU0hBRE9XX1BMQU5FX0ZVTkNTLAotICoJfTsKLSAqCi0gKgl2 b2lkIGRyaXZlcl9waXBlX2VuYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBp cGUsCi0gKgkJCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0gKgkJCQlzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKLSAqCXsKLSAqCQlzdHJ1Y3QgZHJtX3No YWRvd19wbGFuZV9zdGF0ZSAqc2hhZG93X3BsYW5lX3N0YXRlID0KLSAqCQkJdG9fZHJtX3NoYWRv d19wbGFuZV9zdGF0ZShwbGFuZV9zdGF0ZSk7Ci0gKgotICoJCS8vIGFjY2VzcyBzaGFkb3cgYnVm ZmVyIHZpYSBzaGFkb3dfcGxhbmVfc3RhdGUtPm1hcAotICoJfQogICovCiAKIC8qCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzZXRfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX21vZGVzZXRfaGVscGVyLmMKaW5kZXggYTU3ZjZhMTBhZGE0Li5kNzcyMWRmNzQ0ZTcg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXNldF9oZWxwZXIuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzZXRfaGVscGVyLmMKQEAgLTEzNSw5ICsxMzUsNiBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBwcmltYXJ5X3BsYW5lX2Z1bmNzID0g ewogICoKICAqIFRoaXMgaXMgcHVyZWx5IGEgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaGVscGVy IGZvciBvbGQgZHJpdmVycy4gRHJpdmVycwogICogc2hvdWxkIGluc3RlYWQgaW1wbGVtZW50IHRo ZWlyIG93biBwcmltYXJ5IHBsYW5lLiBBdG9taWMgZHJpdmVycyBtdXN0IGRvIHNvLgotICogRHJp dmVycyB3aXRoIHRoZSBhYm92ZSBoYXJkd2FyZSByZXN0cmljdGlvbiBjYW4gbG9vayBpbnRvIHVz aW5nICZzdHJ1Y3QKLSAqIGRybV9zaW1wbGVfZGlzcGxheV9waXBlLCB3aGljaCBlbmNhcHN1bGF0 ZXMgdGhlIGFib3ZlIGxpbWl0YXRpb25zIGludG8gYSBuaWNlCi0gKiBpbnRlcmZhY2UuCiAgKgog ICogUmV0dXJuczoKICAqIFplcm8gb24gc3VjY2VzcywgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5jCmluZGV4IGZjYmNhYWEzNmI1Zi4u NGQ5MTUxM2ExZTM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3NpbXBsZV9rbXNf aGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5jCkBA IC0xNiw1NSArMTYsMTAgQEAKICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgogI2lu Y2x1ZGUgPGRybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaD4KIAotLyoqCi0gKiBET0M6IG92ZXJ2 aWV3Ci0gKgotICogVGhpcyBoZWxwZXIgbGlicmFyeSBwcm92aWRlcyBoZWxwZXJzIGZvciBkcml2 ZXJzIGZvciBzaW1wbGUgZGlzcGxheQotICogaGFyZHdhcmUuCi0gKgotICogZHJtX3NpbXBsZV9k aXNwbGF5X3BpcGVfaW5pdCgpIGluaXRpYWxpemVzIGEgc2ltcGxlIGRpc3BsYXkgcGlwZWxpbmUK LSAqIHdoaWNoIGhhcyBvbmx5IG9uZSBmdWxsLXNjcmVlbiBzY2Fub3V0IGJ1ZmZlciBmZWVkaW5n IG9uZSBvdXRwdXQuIFRoZQotICogcGlwZWxpbmUgaXMgcmVwcmVzZW50ZWQgYnkgJnN0cnVjdCBk cm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSBhbmQgYmluZHMKLSAqIHRvZ2V0aGVyICZkcm1fcGxhbmUs ICZkcm1fY3J0YyBhbmQgJmRybV9lbmNvZGVyIHN0cnVjdHVyZXMgaW50byBvbmUgZml4ZWQKLSAq IGVudGl0eS4gU29tZSBmbGV4aWJpbGl0eSBmb3IgY29kZSByZXVzZSBpcyBwcm92aWRlZCB0aHJv dWdoIGEgc2VwYXJhdGVseQotICogYWxsb2NhdGVkICZkcm1fY29ubmVjdG9yIG9iamVjdCBhbmQg c3VwcG9ydGluZyBvcHRpb25hbCAmZHJtX2JyaWRnZQotICogZW5jb2RlciBkcml2ZXJzLgotICoK LSAqIE1hbnkgZHJpdmVycyByZXF1aXJlIG9ubHkgYSB2ZXJ5IHNpbXBsZSBlbmNvZGVyIHRoYXQg ZnVsZmlsbHMgdGhlIG1pbmltdW0KLSAqIHJlcXVpcmVtZW50cyBvZiB0aGUgZGlzcGxheSBwaXBl bGluZSBhbmQgZG9lcyBub3QgYWRkIGFkZGl0aW9uYWwKLSAqIGZ1bmN0aW9uYWxpdHkuIFRoZSBm dW5jdGlvbiBkcm1fc2ltcGxlX2VuY29kZXJfaW5pdCgpIHByb3ZpZGVzIGFuCi0gKiBpbXBsZW1l bnRhdGlvbiBvZiBzdWNoIGFuIGVuY29kZXIuCi0gKi8KLQogc3RhdGljIGNvbnN0IHN0cnVjdCBk cm1fZW5jb2Rlcl9mdW5jcyBkcm1fc2ltcGxlX2VuY29kZXJfZnVuY3NfY2xlYW51cCA9IHsKIAku ZGVzdHJveSA9IGRybV9lbmNvZGVyX2NsZWFudXAsCiB9OwogCi0vKioKLSAqIGRybV9zaW1wbGVf ZW5jb2Rlcl9pbml0IC0gSW5pdGlhbGl6ZSBhIHByZWFsbG9jYXRlZCBlbmNvZGVyIHdpdGgKLSAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzaWMgZnVuY3Rpb25hbGl0eS4KLSAqIEBkZXY6 IGRybSBkZXZpY2UKLSAqIEBlbmNvZGVyOiB0aGUgZW5jb2RlciB0byBpbml0aWFsaXplCi0gKiBA ZW5jb2Rlcl90eXBlOiB1c2VyIHZpc2libGUgdHlwZSBvZiB0aGUgZW5jb2RlcgotICoKLSAqIElu aXRpYWxpc2VzIGEgcHJlYWxsb2NhdGVkIGVuY29kZXIgdGhhdCBoYXMgbm8gZnVydGhlciBmdW5j dGlvbmFsaXR5LgotICogU2V0dGluZ3MgZm9yIHBvc3NpYmxlIENSVEMgYW5kIGNsb25lcyBhcmUg bGVmdCB0byB0aGVpciBpbml0aWFsIHZhbHVlcy4KLSAqIFRoZSBlbmNvZGVyIHdpbGwgYmUgY2xl YW5lZCB1cCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIG1vZGUtc2V0dGluZwotICogY2xl YW51cC4KLSAqCi0gKiBUaGUgY2FsbGVyIG9mIGRybV9zaW1wbGVfZW5jb2Rlcl9pbml0KCkgaXMg cmVzcG9uc2libGUgZm9yIGZyZWVpbmcKLSAqIHRoZSBlbmNvZGVyJ3MgbWVtb3J5IGFmdGVyIHRo ZSBlbmNvZGVyIGhhcyBiZWVuIGNsZWFuZWQgdXAuIEF0IHRoZQotICogbW9tZW50IHRoaXMgb25s eSB3b3JrcyByZWxpYWJseSBpZiB0aGUgZW5jb2RlciBkYXRhIHN0cnVjdHVyZSBpcwotICogc3Rv cmVkIGluIHRoZSBkZXZpY2Ugc3RydWN0dXJlLiBGcmVlIHRoZSBlbmNvZGVyJ3MgbWVtb3J5IGFz IHBhcnQgb2YKLSAqIHRoZSBkZXZpY2UgcmVsZWFzZSBmdW5jdGlvbi4KLSAqCi0gKiBOb3RlOiBj b25zaWRlciB1c2luZyBkcm1tX3NpbXBsZV9lbmNvZGVyX2FsbG9jKCkgaW5zdGVhZCBvZgotICog ZHJtX3NpbXBsZV9lbmNvZGVyX2luaXQoKSB0byBsZXQgdGhlIERSTSBtYW5hZ2VkIHJlc291cmNl IGluZnJhc3RydWN0dXJlCi0gKiB0YWtlIGNhcmUgb2YgY2xlYW51cCBhbmQgZGVhbGxvY2F0aW9u LgotICoKLSAqIFJldHVybnM6Ci0gKiBaZXJvIG9uIHN1Y2Nlc3MsIGVycm9yIGNvZGUgb24gZmFp bHVyZS4KLSAqLwogaW50IGRybV9zaW1wbGVfZW5jb2Rlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJCQkgICAgc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgIGludCBl bmNvZGVyX3R5cGUpCkBAIC0zNzAsMjAgKzMyNSw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X3BsYW5lX2Z1bmNzIGRybV9zaW1wbGVfa21zX3BsYW5lX2Z1bmNzID0gewogCS5mb3JtYXRfbW9k X3N1cHBvcnRlZCAgID0gZHJtX3NpbXBsZV9rbXNfZm9ybWF0X21vZF9zdXBwb3J0ZWQsCiB9Owog Ci0vKioKLSAqIGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2F0dGFjaF9icmlkZ2UgLSBBdHRhY2gg YSBicmlkZ2UgdG8gdGhlIGRpc3BsYXkgcGlwZQotICogQHBpcGU6IHNpbXBsZSBkaXNwbGF5IHBp cGUgb2JqZWN0Ci0gKiBAYnJpZGdlOiBicmlkZ2UgdG8gYXR0YWNoCi0gKgotICogTWFrZXMgaXQg cG9zc2libGUgdG8gc3RpbGwgdXNlIHRoZSBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSBoZWxwZXJz IHdoZW4KLSAqIGEgRFJNIGJyaWRnZSBoYXMgdG8gYmUgdXNlZC4KLSAqCi0gKiBOb3RlIHRoYXQg eW91IHByb2JhYmx5IHdhbnQgdG8gaW5pdGlhbGl6ZSB0aGUgcGlwZSBieSBwYXNzaW5nIGEgTlVM TAotICogY29ubmVjdG9yIHRvIGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2luaXQoKS4KLSAqCi0g KiBSZXR1cm5zOgotICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZh aWx1cmUuCi0gKi8KIGludCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9hdHRhY2hfYnJpZGdlKHN0 cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKIAkJCQkJICBzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlKQogewpAQCAtMzkxLDMwICszMzIsNiBAQCBpbnQgZHJtX3NpbXBsZV9kaXNw bGF5X3BpcGVfYXR0YWNoX2JyaWRnZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBp cGUsCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2F0dGFjaF9icmlk Z2UpOwogCi0vKioKLSAqIGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2luaXQgLSBJbml0aWFsaXpl IGEgc2ltcGxlIGRpc3BsYXkgcGlwZWxpbmUKLSAqIEBkZXY6IERSTSBkZXZpY2UKLSAqIEBwaXBl OiBzaW1wbGUgZGlzcGxheSBwaXBlIG9iamVjdCB0byBpbml0aWFsaXplCi0gKiBAZnVuY3M6IGNh bGxiYWNrcyBmb3IgdGhlIGRpc3BsYXkgcGlwZSAob3B0aW9uYWwpCi0gKiBAZm9ybWF0czogYXJy YXkgb2Ygc3VwcG9ydGVkIGZvcm1hdHMgKERSTV9GT1JNQVRcX1wqKQotICogQGZvcm1hdF9jb3Vu dDogbnVtYmVyIG9mIGVsZW1lbnRzIGluIEBmb3JtYXRzCi0gKiBAZm9ybWF0X21vZGlmaWVyczog YXJyYXkgb2YgZm9ybWF0cyBtb2RpZmllcnMKLSAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciB0byBh dHRhY2ggYW5kIHJlZ2lzdGVyIChvcHRpb25hbCkKLSAqCi0gKiBTZXRzIHVwIGEgZGlzcGxheSBw aXBlbGluZSB3aGljaCBjb25zaXN0IG9mIGEgcmVhbGx5IHNpbXBsZQotICogcGxhbmUtY3J0Yy1l bmNvZGVyIHBpcGUuCi0gKgotICogSWYgYSBjb25uZWN0b3IgaXMgc3VwcGxpZWQsIHRoZSBwaXBl IHdpbGwgYmUgY291cGxlZCB3aXRoIHRoZSBwcm92aWRlZAotICogY29ubmVjdG9yLiBZb3UgbWF5 IHN1cHBseSBhIE5VTEwgY29ubmVjdG9yIHdoZW4gdXNpbmcgZHJtIGJyaWRnZXMsIHRoYXQKLSAq IGhhbmRsZSBjb25uZWN0b3JzIHRoZW1zZWx2ZXMgKHNlZSBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlw ZV9hdHRhY2hfYnJpZGdlKCkpLgotICoKLSAqIFRlYXJkb3duIG9mIGEgc2ltcGxlIGRpc3BsYXkg cGlwZSBpcyBhbGwgaGFuZGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBkcm0KLSAqIGNvcmUgdGhy b3VnaCBjYWxsaW5nIGRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKCkuIERyaXZlcnMgYWZ0ZXJ3YXJk cyBuZWVkIHRvCi0gKiByZWxlYXNlIHRoZSBtZW1vcnkgZm9yIHRoZSBzdHJ1Y3R1cmUgdGhlbXNl bHZlcy4KLSAqCi0gKiBSZXR1cm5zOgotICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJv ciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KIGludCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQlzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3Bp cGUgKnBpcGUsCiAJCQljb25zdCBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3Mg KmZ1bmNzLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmgg Yi9pbmNsdWRlL2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaAppbmRleCBiMjQ4NmQwNzM3NjMu LmNiNjcyY2UwZTg1NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVs cGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmgKQEAgLTMsNiAr MywxMSBAQAogICogQ29weXJpZ2h0IChDKSAyMDE2IE5vcmFsZiBUcsO4bm5lcwogICovCiAKKy8q CisgKiBTaW1wbGUgS01TIGhlbHBlcnMgYXJlIGRlcHJlY3RlZCBpbiBmYXZvciBvZiByZWd1bGFy IGF0b21pYyBoZWxwZXJzLiBEbyBub3QKKyAqIHVzZSB0aGUgbWluIG5ldyBjb2RlLgorICovCisK ICNpZm5kZWYgX19MSU5VWF9EUk1fU0lNUExFX0tNU19IRUxQRVJfSAogI2RlZmluZSBfX0xJTlVY X0RSTV9TSU1QTEVfS01TX0hFTFBFUl9ICiAKQEAgLTEyLDIzMyArMTcsMzggQEAKIAogc3RydWN0 IGRybV9zaW1wbGVfZGlzcGxheV9waXBlOwogCi0vKioKLSAqIHN0cnVjdCBkcm1fc2ltcGxlX2Rp c3BsYXlfcGlwZV9mdW5jcyAtIGhlbHBlciBvcGVyYXRpb25zIGZvciBhIHNpbXBsZQotICogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBwaXBlbGluZQotICov CiBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3MgewotCS8qKgotCSAqIEBtb2Rl X3ZhbGlkOgotCSAqCi0JICogVGhpcyBjYWxsYmFjayBpcyB1c2VkIHRvIGNoZWNrIGlmIGEgc3Bl Y2lmaWMgbW9kZSBpcyB2YWxpZCBpbiB0aGUKLQkgKiBjcnRjIHVzZWQgaW4gdGhpcyBzaW1wbGUg ZGlzcGxheSBwaXBlLiBUaGlzIHNob3VsZCBiZSBpbXBsZW1lbnRlZAotCSAqIGlmIHRoZSBkaXNw bGF5IHBpcGUgaGFzIHNvbWUgc29ydCBvZiByZXN0cmljdGlvbiBpbiB0aGUgbW9kZXMKLQkgKiBp dCBjYW4gZGlzcGxheS4gRm9yIGV4YW1wbGUsIGEgZ2l2ZW4gZGlzcGxheSBwaXBlIG1heSBiZSBy ZXNwb25zaWJsZQotCSAqIHRvIHNldCBhIGNsb2NrIHZhbHVlLiBJZiB0aGUgY2xvY2sgY2FuIG5v dCBwcm9kdWNlIGFsbCB0aGUgdmFsdWVzCi0JICogZm9yIHRoZSBhdmFpbGFibGUgbW9kZXMgdGhl biB0aGlzIGNhbGxiYWNrIGNhbiBiZSB1c2VkIHRvIHJlc3RyaWN0Ci0JICogdGhlIG51bWJlciBv ZiBtb2RlcyB0byBvbmx5IHRoZSBvbmVzIHRoYXQgY2FuIGJlIGRpc3BsYXllZC4gQW5vdGhlcgot CSAqIHJlYXNvbiBjYW4gYmUgYmFuZHdpZHRoIG1pdGlnYXRpb246IHRoZSBtZW1vcnkgcG9ydCBv biB0aGUgZGlzcGxheQotCSAqIGNvbnRyb2xsZXIgY2FuIGhhdmUgYmFuZHdpZHRoIGxpbWl0YXRp b25zIG5vdCBhbGxvd2luZyBwaXhlbCBkYXRhCi0JICogdG8gYmUgZmV0Y2hlZCBhdCBhbnkgcmF0 ZS4KLQkgKgotCSAqIFRoaXMgaG9vayBpcyB1c2VkIGJ5IHRoZSBwcm9iZSBoZWxwZXJzIHRvIGZp bHRlciB0aGUgbW9kZSBsaXN0IGluCi0JICogZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVj dG9yX21vZGVzKCksIGFuZCBpdCBpcyB1c2VkIGJ5IHRoZQotCSAqIGF0b21pYyBoZWxwZXJzIHRv IHZhbGlkYXRlIG1vZGVzIHN1cHBsaWVkIGJ5IHVzZXJzcGFjZSBpbgotCSAqIGRybV9hdG9taWNf aGVscGVyX2NoZWNrX21vZGVzZXQoKS4KLQkgKgotCSAqIFRoaXMgZnVuY3Rpb24gaXMgb3B0aW9u YWwuCi0JICoKLQkgKiBOT1RFOgotCSAqCi0JICogU2luY2UgdGhpcyBmdW5jdGlvbiBpcyBib3Ro IGNhbGxlZCBmcm9tIHRoZSBjaGVjayBwaGFzZSBvZiBhbiBhdG9taWMKLQkgKiBjb21taXQsIGFu ZCB0aGUgbW9kZSB2YWxpZGF0aW9uIGluIHRoZSBwcm9iZSBwYXRocyBpdCBpcyBub3QgYWxsb3dl ZAotCSAqIHRvIGxvb2sgYXQgYW55dGhpbmcgZWxzZSBidXQgdGhlIHBhc3NlZC1pbiBtb2RlLCBh bmQgdmFsaWRhdGUgaXQKLQkgKiBhZ2FpbnN0IGNvbmZpZ3VyYXRpb24taW52YXJpYW50IGhhcmR3 YXJlIGNvbnN0cmFpbnRzLgotCSAqCi0JICogUkVUVVJOUzoKLQkgKgotCSAqIGRybV9tb2RlX3N0 YXR1cyBFbnVtCi0JICovCiAJZW51bSBkcm1fbW9kZV9zdGF0dXMgKCptb2RlX3ZhbGlkKShzdHJ1 Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCiAJCQkJCSAgIGNvbnN0IHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlKTsKLQotCS8qKgotCSAqIEBlbmFibGU6Ci0JICoKLQkgKiBU aGlzIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIHRvIGVuYWJsZSB0aGUgcGlwZWxpbmUuCi0JICog SXQgaXMgY2FsbGVkIHdoZW4gdGhlIHVuZGVybHlpbmcgY3J0YyBpcyBlbmFibGVkLgotCSAqIFRo aXMgaG9vayBpcyBvcHRpb25hbC4KLQkgKi8KIAl2b2lkICgqZW5hYmxlKShzdHJ1Y3QgZHJtX3Np bXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCiAJCSAgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJCSAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZSk7Ci0JLyoqCi0JICogQGRpc2FibGU6Ci0JICoKLQkgKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBi ZSB1c2VkIHRvIGRpc2FibGUgdGhlIHBpcGVsaW5lLgotCSAqIEl0IGlzIGNhbGxlZCB3aGVuIHRo ZSB1bmRlcmx5aW5nIGNydGMgaXMgZGlzYWJsZWQuCi0JICogVGhpcyBob29rIGlzIG9wdGlvbmFs LgotCSAqLwogCXZvaWQgKCpkaXNhYmxlKShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUg KnBpcGUpOwotCi0JLyoqCi0JICogQGNoZWNrOgotCSAqCi0JICogVGhpcyBmdW5jdGlvbiBpcyBj YWxsZWQgaW4gdGhlIGNoZWNrIHBoYXNlIG9mIGFuIGF0b21pYyB1cGRhdGUsCi0JICogc3BlY2lm aWNhbGx5IHdoZW4gdGhlIHVuZGVybHlpbmcgcGxhbmUgaXMgY2hlY2tlZC4KLQkgKiBUaGUgc2lt cGxlIGRpc3BsYXkgcGlwZWxpbmUgaGVscGVycyBhbHJlYWR5IGNoZWNrIHRoYXQgdGhlIHBsYW5l IGlzCi0JICogbm90IHNjYWxlZCwgZmlsbHMgdGhlIGVudGlyZSB2aXNpYmxlIGFyZWEgYW5kIGlz IGFsd2F5cyBlbmFibGVkCi0JICogd2hlbiB0aGUgY3J0YyBpcyBhbHNvIGVuYWJsZWQuCi0JICog VGhpcyBob29rIGlzIG9wdGlvbmFsLgotCSAqCi0JICogUkVUVVJOUzoKLQkgKgotCSAqIDAgb24g c3VjY2VzcywgLUVJTlZBTCBpZiB0aGUgc3RhdGUgb3IgdGhlIHRyYW5zaXRpb24gY2FuJ3QgYmUK LQkgKiBzdXBwb3J0ZWQsIC1FTk9NRU0gb24gbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZSBhbmQg LUVERUFETEsgaWYgYW4KLQkgKiBhdHRlbXB0IHRvIG9idGFpbiBhbm90aGVyIHN0YXRlIG9iamVj dCByYW4gaW50byBhICZkcm1fbW9kZXNldF9sb2NrCi0JICogZGVhZGxvY2suCi0JICovCiAJaW50 ICgqY2hlY2spKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKIAkJICAgICBz dHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKIAkJICAgICBzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpOwotCS8qKgotCSAqIEB1cGRhdGU6Ci0JICoKLQkgKiBUaGlz IGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB1bmRlcmx5aW5nIHBsYW5lIHN0YXRlIGlzIHVw ZGF0ZWQuCi0JICogVGhpcyBob29rIGlzIG9wdGlvbmFsLgotCSAqCi0JICogVGhpcyBpcyB0aGUg ZnVuY3Rpb24gZHJpdmVycyBzaG91bGQgc3VibWl0IHRoZQotCSAqICZkcm1fcGVuZGluZ192Ymxh bmtfZXZlbnQgZnJvbS4gVXNpbmcgZWl0aGVyCi0JICogZHJtX2NydGNfYXJtX3ZibGFua19ldmVu dCgpLCB3aGVuIHRoZSBkcml2ZXIgc3VwcG9ydHMgdmJsYW5rCi0JICogaW50ZXJydXB0IGhhbmRs aW5nLCBvciBkcm1fY3J0Y19zZW5kX3ZibGFua19ldmVudCgpIGZvciBtb3JlCi0JICogY29tcGxl eCBjYXNlLiBJbiBjYXNlIHRoZSBoYXJkd2FyZSBsYWNrcyB2Ymxhbmsgc3VwcG9ydCBlbnRpcmVs eSwKLQkgKiBkcml2ZXJzIGNhbiBzZXQgJnN0cnVjdCBkcm1fY3J0Y19zdGF0ZS5ub192Ymxhbmsg aW4KLQkgKiAmc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzLmNoZWNrIGFuZCBs ZXQgRFJNJ3MKLQkgKiBhdG9taWMgaGVscGVyIGZha2UgYSB2YmxhbmsgZXZlbnQuCi0JICovCiAJ dm9pZCAoKnVwZGF0ZSkoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAogCQkg ICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlKTsKLQotCS8qKgot CSAqIEBwcmVwYXJlX2ZiOgotCSAqCi0JICogT3B0aW9uYWwsIGNhbGxlZCBieSAmZHJtX3BsYW5l X2hlbHBlcl9mdW5jcy5wcmVwYXJlX2ZiLiAgUGxlYXNlIHJlYWQKLQkgKiB0aGUgZG9jdW1lbnRh dGlvbiBmb3IgdGhlICZkcm1fcGxhbmVfaGVscGVyX2Z1bmNzLnByZXBhcmVfZmIgaG9vayBmb3IK LQkgKiBtb3JlIGRldGFpbHMuCi0JICoKLQkgKiBGb3IgR0VNIGRyaXZlcnMgd2hvIG5laXRoZXIg aGF2ZSBhIEBwcmVwYXJlX2ZiIG5vciBAY2xlYW51cF9mYiBob29rCi0JICogc2V0LCBkcm1fZ2Vt X3BsYW5lX2hlbHBlcl9wcmVwYXJlX2ZiKCkgaXMgY2FsbGVkIGF1dG9tYXRpY2FsbHkKLQkgKiB0 byBpbXBsZW1lbnQgdGhpcy4gT3RoZXIgZHJpdmVycyB3aGljaCBuZWVkIGFkZGl0aW9uYWwgcGxh bmUKLQkgKiBwcm9jZXNzaW5nIGNhbiBjYWxsIGRybV9nZW1fcGxhbmVfaGVscGVyX3ByZXBhcmVf ZmIoKSBmcm9tCi0JICogdGhlaXIgQHByZXBhcmVfZmIgaG9vay4KLQkgKi8KIAlpbnQgKCpwcmVw YXJlX2ZiKShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCiAJCQkgIHN0cnVj dCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKLQotCS8qKgotCSAqIEBjbGVhbnVwX2Zi OgotCSAqCi0JICogT3B0aW9uYWwsIGNhbGxlZCBieSAmZHJtX3BsYW5lX2hlbHBlcl9mdW5jcy5j bGVhbnVwX2ZiLiAgUGxlYXNlIHJlYWQKLQkgKiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlICZk cm1fcGxhbmVfaGVscGVyX2Z1bmNzLmNsZWFudXBfZmIgaG9vayBmb3IKLQkgKiBtb3JlIGRldGFp bHMuCi0JICovCiAJdm9pZCAoKmNsZWFudXBfZmIpKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlf cGlwZSAqcGlwZSwKIAkJCSAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsK LQotCS8qKgotCSAqIEBiZWdpbl9mYl9hY2Nlc3M6Ci0JICoKLQkgKiBPcHRpb25hbCwgY2FsbGVk IGJ5ICZkcm1fcGxhbmVfaGVscGVyX2Z1bmNzLmJlZ2luX2ZiX2FjY2Vzcy4gUGxlYXNlIHJlYWQK LQkgKiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlICZkcm1fcGxhbmVfaGVscGVyX2Z1bmNzLmJl Z2luX2ZiX2FjY2VzcyBob29rIGZvcgotCSAqIG1vcmUgZGV0YWlscy4KLQkgKi8KIAlpbnQgKCpi ZWdpbl9mYl9hY2Nlc3MpKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKIAkJ CSAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3RhdGUpOwotCi0JLyoq Ci0JICogQGVuZF9mYl9hY2Nlc3M6Ci0JICoKLQkgKiBPcHRpb25hbCwgY2FsbGVkIGJ5ICZkcm1f cGxhbmVfaGVscGVyX2Z1bmNzLmVuZF9mYl9hY2Nlc3MuIFBsZWFzZSByZWFkCi0JICogdGhlIGRv Y3VtZW50YXRpb24gZm9yIHRoZSAmZHJtX3BsYW5lX2hlbHBlcl9mdW5jcy5lbmRfZmJfYWNjZXNz IGhvb2sgZm9yCi0JICogbW9yZSBkZXRhaWxzLgotCSAqLwogCXZvaWQgKCplbmRfZmJfYWNjZXNz KShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCiAJCQkgICAgICBzdHJ1Y3Qg ZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Ci0KLQkvKioKLQkgKiBAZW5hYmxlX3ZibGFu azoKLQkgKgotCSAqIE9wdGlvbmFsLCBjYWxsZWQgYnkgJmRybV9jcnRjX2Z1bmNzLmVuYWJsZV92 YmxhbmsuIFBsZWFzZSByZWFkCi0JICogdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSAmZHJtX2Ny dGNfZnVuY3MuZW5hYmxlX3ZibGFuayBob29rIGZvcgotCSAqIG1vcmUgZGV0YWlscy4KLQkgKi8K IAlpbnQgKCplbmFibGVfdmJsYW5rKShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBp cGUpOwotCi0JLyoqCi0JICogQGRpc2FibGVfdmJsYW5rOgotCSAqCi0JICogT3B0aW9uYWwsIGNh bGxlZCBieSAmZHJtX2NydGNfZnVuY3MuZGlzYWJsZV92YmxhbmsuIFBsZWFzZSByZWFkCi0JICog dGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSAmZHJtX2NydGNfZnVuY3MuZGlzYWJsZV92Ymxhbmsg aG9vayBmb3IKLQkgKiBtb3JlIGRldGFpbHMuCi0JICovCiAJdm9pZCAoKmRpc2FibGVfdmJsYW5r KShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpOwotCi0JLyoqCi0JICogQHJl c2V0X2NydGM6Ci0JICoKLQkgKiBPcHRpb25hbCwgY2FsbGVkIGJ5ICZkcm1fY3J0Y19mdW5jcy5y ZXNldC4gUGxlYXNlIHJlYWQgdGhlCi0JICogZG9jdW1lbnRhdGlvbiBmb3IgdGhlICZkcm1fY3J0 Y19mdW5jcy5yZXNldCBob29rIGZvciBtb3JlIGRldGFpbHMuCi0JICovCiAJdm9pZCAoKnJlc2V0 X2NydGMpKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSk7Ci0KLQkvKioKLQkg KiBAZHVwbGljYXRlX2NydGNfc3RhdGU6Ci0JICoKLQkgKiBPcHRpb25hbCwgY2FsbGVkIGJ5ICZk cm1fY3J0Y19mdW5jcy5hdG9taWNfZHVwbGljYXRlX3N0YXRlLiBQbGVhc2UKLQkgKiByZWFkIHRo ZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgJmRybV9jcnRjX2Z1bmNzLmF0b21pY19kdXBsaWNhdGVf c3RhdGUKLQkgKiBob29rIGZvciBtb3JlIGRldGFpbHMuCi0JICovCiAJc3RydWN0IGRybV9jcnRj X3N0YXRlICogKCpkdXBsaWNhdGVfY3J0Y19zdGF0ZSkoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxh eV9waXBlICpwaXBlKTsKLQotCS8qKgotCSAqIEBkZXN0cm95X2NydGNfc3RhdGU6Ci0JICoKLQkg KiBPcHRpb25hbCwgY2FsbGVkIGJ5ICZkcm1fY3J0Y19mdW5jcy5hdG9taWNfZGVzdHJveV9zdGF0 ZS4gUGxlYXNlCi0JICogcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlICZkcm1fY3J0Y19m dW5jcy5hdG9taWNfZGVzdHJveV9zdGF0ZQotCSAqIGhvb2sgZm9yIG1vcmUgZGV0YWlscy4KLQkg Ki8KIAl2b2lkICgqZGVzdHJveV9jcnRjX3N0YXRlKShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5 X3BpcGUgKnBpcGUsCiAJCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsK LQotCS8qKgotCSAqIEByZXNldF9wbGFuZToKLQkgKgotCSAqIE9wdGlvbmFsLCBjYWxsZWQgYnkg JmRybV9wbGFuZV9mdW5jcy5yZXNldC4gUGxlYXNlIHJlYWQgdGhlCi0JICogZG9jdW1lbnRhdGlv biBmb3IgdGhlICZkcm1fcGxhbmVfZnVuY3MucmVzZXQgaG9vayBmb3IgbW9yZSBkZXRhaWxzLgot CSAqLwogCXZvaWQgKCpyZXNldF9wbGFuZSkoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBl ICpwaXBlKTsKLQotCS8qKgotCSAqIEBkdXBsaWNhdGVfcGxhbmVfc3RhdGU6Ci0JICoKLQkgKiBP cHRpb25hbCwgY2FsbGVkIGJ5ICZkcm1fcGxhbmVfZnVuY3MuYXRvbWljX2R1cGxpY2F0ZV9zdGF0 ZS4gIFBsZWFzZQotCSAqIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSAmZHJtX3BsYW5l X2Z1bmNzLmF0b21pY19kdXBsaWNhdGVfc3RhdGUKLQkgKiBob29rIGZvciBtb3JlIGRldGFpbHMu Ci0JICovCiAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqICgqZHVwbGljYXRlX3BsYW5lX3N0YXRl KShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpOwotCi0JLyoqCi0JICogQGRl c3Ryb3lfcGxhbmVfc3RhdGU6Ci0JICoKLQkgKiBPcHRpb25hbCwgY2FsbGVkIGJ5ICZkcm1fcGxh bmVfZnVuY3MuYXRvbWljX2Rlc3Ryb3lfc3RhdGUuICBQbGVhc2UKLQkgKiByZWFkIHRoZSBkb2N1 bWVudGF0aW9uIGZvciB0aGUgJmRybV9wbGFuZV9mdW5jcy5hdG9taWNfZGVzdHJveV9zdGF0ZQot CSAqIGhvb2sgZm9yIG1vcmUgZGV0YWlscy4KLQkgKi8KIAl2b2lkICgqZGVzdHJveV9wbGFuZV9z dGF0ZSkoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAogCQkJCSAgICBzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7CiB9OwogCi0vKioKLSAqIHN0cnVjdCBk cm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAtIHNpbXBsZSBkaXNwbGF5IHBpcGVsaW5lCi0gKiBAY3J0 YzogQ1JUQyBjb250cm9sIHN0cnVjdHVyZQotICogQHBsYW5lOiBQbGFuZSBjb250cm9sIHN0cnVj dHVyZQotICogQGVuY29kZXI6IEVuY29kZXIgY29udHJvbCBzdHJ1Y3R1cmUKLSAqIEBjb25uZWN0 b3I6IENvbm5lY3RvciBjb250cm9sIHN0cnVjdHVyZQotICogQGZ1bmNzOiBQaXBlbGluZSBjb250 cm9sIGZ1bmN0aW9ucyAob3B0aW9uYWwpCi0gKgotICogU2ltcGxlIGRpc3BsYXkgcGlwZWxpbmUg d2l0aCBwbGFuZSwgY3J0YyBhbmQgZW5jb2RlciBjb2xsYXBzZWQgaW50byBvbmUKLSAqIGVudGl0 eS4gSXQgc2hvdWxkIGJlIGluaXRpYWxpemVkIGJ5IGNhbGxpbmcgZHJtX3NpbXBsZV9kaXNwbGF5 X3BpcGVfaW5pdCgpLgotICovCiBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgewogCXN0 cnVjdCBkcm1fY3J0YyBjcnRjOwogCXN0cnVjdCBkcm1fcGxhbmUgcGxhbmU7CkBAIC0yNjUsMjIg Kzc1LDYgQEAgaW50IGRybV9zaW1wbGVfZW5jb2Rlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiB2b2lkICpfX2RybW1fc2ltcGxlX2VuY29kZXJfYWxsb2Moc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc2l6ZV90IHNpemUsCiAJCQkJICBzaXplX3Qgb2Zmc2V0LCBpbnQgZW5jb2Rlcl90eXBl KTsKIAotLyoqCi0gKiBkcm1tX3NpbXBsZV9lbmNvZGVyX2FsbG9jIC0gQWxsb2NhdGUgYW5kIGlu aXRpYWxpemUgYW4gZW5jb2RlciB3aXRoIGJhc2ljCi0gKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZnVuY3Rpb25hbGl0eS4KLSAqIEBkZXY6IGRybSBkZXZpY2UKLSAqIEB0eXBlOiB0aGUg dHlwZSBvZiB0aGUgc3RydWN0IHdoaWNoIGNvbnRhaW5zIHN0cnVjdCAmZHJtX2VuY29kZXIKLSAq IEBtZW1iZXI6IHRoZSBuYW1lIG9mIHRoZSAmZHJtX2VuY29kZXIgd2l0aGluIEB0eXBlLgotICog QGVuY29kZXJfdHlwZTogdXNlciB2aXNpYmxlIHR5cGUgb2YgdGhlIGVuY29kZXIKLSAqCi0gKiBB bGxvY2F0ZXMgYW5kIGluaXRpYWxpemVzIGFuIGVuY29kZXIgdGhhdCBoYXMgbm8gZnVydGhlciBm dW5jdGlvbmFsaXR5LgotICogU2V0dGluZ3MgZm9yIHBvc3NpYmxlIENSVEMgYW5kIGNsb25lcyBh cmUgbGVmdCB0byB0aGVpciBpbml0aWFsIHZhbHVlcy4KLSAqIENsZWFudXAgaXMgYXV0b21hdGlj YWxseSBoYW5kbGVkIHRocm91Z2ggcmVnaXN0ZXJpbmcgZHJtX2VuY29kZXJfY2xlYW51cCgpCi0g KiB3aXRoIGRybW1fYWRkX2FjdGlvbigpLgotICoKLSAqIFJldHVybnM6Ci0gKiBQb2ludGVyIHRv IG5ldyBlbmNvZGVyLCBvciBFUlJfUFRSIG9uIGZhaWx1cmUuCi0gKi8KICNkZWZpbmUgZHJtbV9z aW1wbGVfZW5jb2Rlcl9hbGxvYyhkZXYsIHR5cGUsIG1lbWJlciwgZW5jb2Rlcl90eXBlKSBcCiAJ KCh0eXBlICopX19kcm1tX3NpbXBsZV9lbmNvZGVyX2FsbG9jKGRldiwgc2l6ZW9mKHR5cGUpLCBc CiAJCQkJCSAgICAgb2Zmc2V0b2YodHlwZSwgbWVtYmVyKSwgXAotLSAKMi41My4wCgo=