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 67FCDE98DE0 for ; Mon, 23 Feb 2026 05:34:15 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BC22910E21F; Mon, 23 Feb 2026 05:34:14 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="DX9BsNBd"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.16]) by gabe.freedesktop.org (Postfix) with ESMTPS id BBBD510E21F; Mon, 23 Feb 2026 05:34:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1771824853; x=1803360853; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=wsduJzHB1ty1bG5x3eYUIiyylTDLSHo1LYfaduPd5UQ=; b=DX9BsNBduBRdi5lf3F7ghkSCPvdn0jyg3Y3bKlq5PEkCXMeH9AuksmdT VkSk7U+iHFAwgd5XGl9pH4WCXK6rrKlbNYXYah8w/QDazcTXVplwfH+XQ kNMWiosWA3PInKozwI53WNU14q1VZUIVXwmJSpv2ovMIZ91aIPLGmebAc iKzKcEZBuTcau3KC/t7wOqZS/mtGSkObCMGPa699uXzIdzQ0MBIt4p74z nXZDMOjAF+xX5dSzCs8X4zK7kwrI9ZxktkDZ3xGosnWyaKHnd5XozMOBT yP9e5N4PCv0rhpZNJbWNhosPJt0Ef67evl0g/ZAXRRpzLjPJiBrX6LH33 A==; X-CSE-ConnectionGUID: R/eYGGIzQUOJU//k6CJvZg== X-CSE-MsgGUID: es7wMR4cSFmsBe052RVR4Q== X-IronPort-AV: E=McAfee;i="6800,10657,11709"; a="72991491" X-IronPort-AV: E=Sophos;i="6.21,306,1763452800"; d="scan'208";a="72991491" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by orvoesa108.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Feb 2026 21:34:11 -0800 X-CSE-ConnectionGUID: g7JMTplNRDCFzPEgfLPN7g== X-CSE-MsgGUID: eOp2hHwgRF+pTGyRVejNjg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,306,1763452800"; d="scan'208";a="253175112" Received: from rtauro-desk.iind.intel.com ([10.190.238.50]) by smtpauth.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Feb 2026 21:34:05 -0800 From: Riana Tauro To: intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: aravind.iddamsetty@linux.intel.com, anshuman.gupta@intel.com, rodrigo.vivi@intel.com, joonas.lahtinen@linux.intel.com, simona.vetter@ffwll.ch, airlied@gmail.com, pratik.bari@intel.com, joshua.santosh.ranjan@intel.com, ashwin.kumar.kulkarni@intel.com, shubham.kumar@intel.com, ravi.kishore.koppuravuri@intel.com, raag.jadav@intel.com, anvesh.bakwad@intel.com, Zack McKevitt , Lijo Lazar , Hawking Zhang , Jakub Kicinski , "David S. Miller" , Paolo Abeni , Eric Dumazet , netdev@vger.kernel.org, Riana Tauro Subject: [PATCH v8 1/5] drm/ras: Introduce the DRM RAS infrastructure over generic netlink Date: Mon, 23 Feb 2026 11:35:41 +0530 Message-ID: <20260223060541.526397-8-riana.tauro@intel.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20260223060541.526397-7-riana.tauro@intel.com> References: <20260223060541.526397-7-riana.tauro@intel.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" RnJvbTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgoKSW50cm9kdWNlcyB0 aGUgRFJNIFJBUyBpbmZyYXN0cnVjdHVyZSBvdmVyIGdlbmVyaWMgbmV0bGluay4KClRoZSBuZXcg aW50ZXJmYWNlIGFsbG93cyBkcml2ZXJzIHRvIGV4cG9zZSBSQVMgbm9kZXMgYW5kIHRoZWlyCmFz c29jaWF0ZWQgZXJyb3IgY291bnRlcnMgdG8gdXNlcnNwYWNlIGluIGEgc3RydWN0dXJlZCBhbmQg ZXh0ZW5zaWJsZQp3YXkuIEVhY2ggZHJtX3JhcyBub2RlIGNhbiByZWdpc3RlciBpdHMgb3duIHNl dCBvZiBlcnJvciBjb3VudGVycywgd2hpY2gKYXJlIHRoZW4gZGlzY292ZXJhYmxlIGFuZCBxdWVy eWFibGUgdGhyb3VnaCBuZXRsaW5rIG9wZXJhdGlvbnMuIFRoaXMKbGF5cyB0aGUgZ3JvdW5kd29y ayBmb3IgcmVwb3J0aW5nIGFuZCBtYW5hZ2luZyBoYXJkd2FyZSBlcnJvciBzdGF0ZXMKaW4gYSB1 bmlmaWVkIG1hbm5lciBhY3Jvc3MgZGlmZmVyZW50IERSTSBkcml2ZXJzLgoKQ3VycmVudGx5IGl0 IG9ubHkgc3VwcG9ydHMgZXJyb3ItY291bnRlciBub2Rlcy4gQnV0IGl0IGNhbiBiZQpleHRlbmRl ZCBsYXRlci4KClRoZSByZWdpc3RyYXRpb24gaXMgYWxzbyBub3QgdGllZCB0byBhbnkgZHJtIG5v ZGUsIHNvIGl0IGNhbiBiZQp1c2VkIGJ5IGFjY2VsIGRldmljZXMgYXMgd2VsbC4KCkl0IHVzZXMg dGhlIG5ldyBhbmQgbWFuZGF0b3J5IFlBTUwgZGVzY3JpcHRpb24gZm9ybWF0IHN0b3JlZCBpbgpE b2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvLiBUaGlzIGZvcmNlcyBhIHNpbmdsZSBnZW5lcmlj IG5ldGxpbmsKZmFtaWx5IG5hbWVzcGFjZSBmb3IgdGhlIGVudGlyZSBkcm06ICJkcm0tcmFzIi4K QnV0IG11bHRpcGxlLWVuZHBvaW50cyBhcmUgc3VwcG9ydGVkIHdpdGhpbiB0aGUgc2luZ2xlIGZh bWlseS4KCkFueSBtb2RpZmljYXRpb24gdG8gdGhpcyBBUEkgbmVlZHMgdG8gYmUgYXBwbGllZCB0 bwpEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHJtX3Jhcy55YW1sIGJlZm9yZSByZWdlbmVy YXRpbmcgdGhlCmNvZGU6CgokIHRvb2xzL25ldC95bmwvcHl5bmwveW5sX2dlbl9jLnB5IC0tc3Bl YyBcCiBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHJtX3Jhcy55YW1sIC0tbW9kZSB1YXBp IC0taGVhZGVyIFwKID4gaW5jbHVkZS91YXBpL2RybS9kcm1fcmFzLmgKCiQgdG9vbHMvbmV0L3lu bC9weXlubC95bmxfZ2VuX2MucHkgLS1zcGVjIFwKIERvY3VtZW50YXRpb24vbmV0bGluay9zcGVj cy9kcm1fcmFzLnlhbWwgLS1tb2RlIGtlcm5lbCAtLWhlYWRlciBcCiA+IGluY2x1ZGUvZHJtL2Ry bV9yYXNfbmwuaAoKJCB0b29scy9uZXQveW5sL3B5eW5sL3lubF9nZW5fYy5weSAtLXNwZWMgXAog RG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RybV9yYXMueWFtbCAtLW1vZGUga2VybmVsIC0t c291cmNlIFwKID4gZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfbmwuYwoKQ2M6IFphY2sgTWNLZXZp dHQgPHphY2hhcnkubWNrZXZpdHRAb3NzLnF1YWxjb21tLmNvbT4KQ2M6IExpam8gTGF6YXIgPGxp am8ubGF6YXJAYW1kLmNvbT4KQ2M6IEhhd2tpbmcgWmhhbmcgPEhhd2tpbmcuWmhhbmdAYW1kLmNv bT4KQ2M6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+CkNjOiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CkNjOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5j b20+CkNjOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBuZXRkZXZAdmdl ci5rZXJuZWwub3JnCkNvLWRldmVsb3BlZC1ieTogQXJhdmluZCBJZGRhbXNldHR5IDxhcmF2aW5k LmlkZGFtc2V0dHlAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBcmF2aW5kIElkZGFt c2V0dHkgPGFyYXZpbmQuaWRkYW1zZXR0eUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6 IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogUmlh bmEgVGF1cm8gPHJpYW5hLnRhdXJvQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFphY2sgTWNLZXZp dHQgPHphY2hhcnkubWNrZXZpdHRAb3NzLnF1YWxjb21tLmNvbT4KLS0tCnYyOiBmaXggZG9jIGFu ZCBtZW1vcnkgbGVhawogICAgdXNlIHhlX2Zvcl9lYWNoX3N0YXJ0CiAgICB1c2Ugc3RhbmRhcmQg Z2VubG1zZ19pcHV0IChKYWt1YiBLaWNpbnNraSkKCnYzOiBhZGQgZG9jdW1lbnRhdGlvbiB0byBp bmRleAogICAgbW9kaWZ5IGRvY3VtZW50YXRpb24gdG8gbWVudGlvbiB1QVBJIHJlcXVpcmVtZW50 cyAoUm9kcmlnbykKCnY0OiBmaXggdHlwbyAoWmFjaykKCnY1OiBmaXgga2VybmVsLXJvYm90IHJl cG9ydGVkIGh0bWxkb2NzIGVycm9yCiAgICBmaXgga2VybmVsLXJvYm90IHJlcG9ydGVkIGJ1aWxk IGVycm9yIG9uIGNza3kgYXJjaAoKdjY6IHJlZ2VuZXJhdGUgZmlsZXMKICAgIGZpeCB5YW1sbGlu dCB3YXJuaW5ncwogICAgdXNlIGdldC1lcnJvci1jb3VudGVyIGZvciBib3RoIGRvL2R1bXAgZnVu Y3Rpb24gY2FsbHMKICAgIGZpeCBrZXJuZWwtZG9jIChKYWt1YikKLS0tCiBEb2N1bWVudGF0aW9u L2dwdS9kcm0tcmFzLnJzdCAgICAgICAgICAgIHwgMTAzICsrKysrKysKIERvY3VtZW50YXRpb24v Z3B1L2luZGV4LnJzdCAgICAgICAgICAgICAgfCAgIDEgKwogRG9jdW1lbnRhdGlvbi9uZXRsaW5r L3NwZWNzL2RybV9yYXMueWFtbCB8IDExOCArKysrKysrKwogZHJpdmVycy9ncHUvZHJtL0tjb25m aWcgICAgICAgICAgICAgICAgICB8ICAxMCArCiBkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgICAg ICAgICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMgICAgICAgICAg ICAgICAgfCAgIDYgKwogZHJpdmVycy9ncHUvZHJtL2RybV9yYXMuYyAgICAgICAgICAgICAgICB8 IDM1MiArKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfZ2Vu bF9mYW1pbHkuYyAgICB8ICA0MiArKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1fcmFzX25sLmMgICAg ICAgICAgICAgfCAgNTUgKysrKwogaW5jbHVkZS9kcm0vZHJtX3Jhcy5oICAgICAgICAgICAgICAg ICAgICB8ICA3NSArKysrKwogaW5jbHVkZS9kcm0vZHJtX3Jhc19nZW5sX2ZhbWlseS5oICAgICAg ICB8ICAxNyArKwogaW5jbHVkZS9kcm0vZHJtX3Jhc19ubC5oICAgICAgICAgICAgICAgICB8ICAy NSArKwogaW5jbHVkZS91YXBpL2RybS9kcm1fcmFzLmggICAgICAgICAgICAgICB8ICA0OSArKysr CiAxMyBmaWxlcyBjaGFuZ2VkLCA4NTQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IERvY3VtZW50YXRpb24vZ3B1L2RybS1yYXMucnN0CiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1l bnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RybV9yYXMueWFtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9kcm1fcmFzLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0vZHJtX3Jhc19nZW5sX2ZhbWlseS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUv ZHJtL2RybV9yYXNfbmwuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJtL2RybV9yYXMu aAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJtL2RybV9yYXNfZ2VubF9mYW1pbHkuaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJtL2RybV9yYXNfbmwuaAogY3JlYXRlIG1vZGUg MTAwNjQ0IGluY2x1ZGUvdWFwaS9kcm0vZHJtX3Jhcy5oCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRh dGlvbi9ncHUvZHJtLXJhcy5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tcmFzLnJzdApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjcwYjI0NmE3OGZjOAotLS0gL2Rl di9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1yYXMucnN0CkBAIC0wLDAgKzEsMTAz IEBACisuLiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsKKworPT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorRFJNIFJBUyBvdmVyIEdlbmVyaWMgTmV0bGluaworPT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorCitUaGUgRFJNIFJBUyAoUmVsaWFiaWxpdHksIEF2YWlsYWJp bGl0eSwgU2VydmljZWFiaWxpdHkpIGludGVyZmFjZSBwcm92aWRlcyBhCitzdGFuZGFyZGl6ZWQg d2F5IGZvciBHUFUvYWNjZWxlcmF0b3IgZHJpdmVycyB0byBleHBvc2UgZXJyb3IgY291bnRlcnMg YW5kCitvdGhlciByZWxpYWJpbGl0eSBub2RlcyB0byB1c2VyIHNwYWNlIHZpYSBHZW5lcmljIE5l dGxpbmsuIFRoaXMgYWxsb3dzCitkaWFnbm9zdGljIHRvb2xzLCBtb25pdG9yaW5nIGRhZW1vbnMs IG9yIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcXVlcnkgaGFyZHdhcmUKK2hlYWx0aCBpbiBhIHVu aWZvcm0gd2F5IGFjcm9zcyBkaWZmZXJlbnQgRFJNIGRyaXZlcnMuCisKK0tleSBHb2FsczoKKwor KiBQcm92aWRlIGEgc3RhbmRhcmRpemVkIFJBUyBzb2x1dGlvbiBmb3IgR1BVIGFuZCBhY2NlbGVy YXRvciBkcml2ZXJzLCBlbmFibGluZworICBkYXRhIGNlbnRlciBtb25pdG9yaW5nIGFuZCByZWxp YWJpbGl0eSBvcGVyYXRpb25zLgorKiBJbXBsZW1lbnQgYSBzaW5nbGUgZHJtLXJhcyBHZW5lcmlj IE5ldGxpbmsgZmFtaWx5IHRvIG1lZXQgbW9kZXJuIE5ldGxpbmsgWUFNTAorICBzcGVjaWZpY2F0 aW9ucyBhbmQgY2VudHJhbGl6ZSBhbGwgUkFTLXJlbGF0ZWQgY29tbXVuaWNhdGlvbiBpbiBvbmUg bmFtZXNwYWNlLgorKiBTdXBwb3J0IGEgYmFzaWMgZXJyb3IgY291bnRlciBpbnRlcmZhY2UsIGFk ZHJlc3NpbmcgdGhlIGltbWVkaWF0ZSwgZXNzZW50aWFsCisgIG1vbml0b3JpbmcgbmVlZHMuCisq IE9mZmVyIGEgZmxleGlibGUsIGZ1dHVyZS1wcm9vZiBpbnRlcmZhY2UgdGhhdCBjYW4gYmUgZXh0 ZW5kZWQgdG8gc3VwcG9ydAorICBhZGRpdGlvbmFsIHR5cGVzIG9mIFJBUyBkYXRhIGluIHRoZSBm dXR1cmUuCisqIEFsbG93IG11bHRpcGxlIG5vZGVzIHBlciBkcml2ZXIsIGVuYWJsaW5nIGRyaXZl cnMgdG8gcmVnaXN0ZXIgc2VwYXJhdGUKKyAgbm9kZXMgZm9yIGRpZmZlcmVudCBJUCBibG9ja3Ms IHN1Yi1ibG9ja3MsIG9yIG90aGVyIGxvZ2ljYWwgc3ViZGl2aXNpb25zCisgIGFzIGFwcGxpY2Fi bGUuCisKK05vZGVzCis9PT09PQorCitOb2RlcyBhcmUgbG9naWNhbCBhYnN0cmFjdGlvbnMgcmVw cmVzZW50aW5nIGFuIGVycm9yIHR5cGUgb3IgZXJyb3Igc291cmNlIHdpdGhpbgordGhlIGRldmlj ZS4gQ3VycmVudGx5LCBvbmx5IGVycm9yIGNvdW50ZXIgbm9kZXMgaXMgc3VwcG9ydGVkLgorCitE cml2ZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgcmVnaXN0ZXJpbmcgYW5kIHVucmVnaXN0ZXJpbmcg bm9kZXMgdmlhIHRoZQorYGRybV9yYXNfbm9kZV9yZWdpc3RlcigpYCBhbmQgYGRybV9yYXNfbm9k ZV91bnJlZ2lzdGVyKClgIEFQSXMuCisKK05vZGUgTWFuYWdlbWVudAorLS0tLS0tLS0tLS0tLS0t LS0tLQorCisuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9yYXMuYworICAgOmRv YzogRFJNIFJBUyBOb2RlIE1hbmFnZW1lbnQKKy4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9k cm0vZHJtX3Jhcy5jCisgICA6aW50ZXJuYWw6CisKK0dlbmVyaWMgTmV0bGluayBVc2FnZQorPT09 PT09PT09PT09PT09PT09PT09CisKK1RoZSBpbnRlcmZhY2UgaXMgaW1wbGVtZW50ZWQgYXMgYSBH ZW5lcmljIE5ldGxpbmsgZmFtaWx5IG5hbWVkIGBgZHJtLXJhc2BgLgorVXNlciBzcGFjZSB0b29s cyBjYW46CisKKyogTGlzdCByZWdpc3RlcmVkIG5vZGVzIHdpdGggdGhlIGBgbGlzdC1ub2Rlc2Bg IGNvbW1hbmQuCisqIExpc3QgYWxsIGVycm9yIGNvdW50ZXJzIGluIGFuIG5vZGUgd2l0aCB0aGUg YGBnZXQtZXJyb3ItY291bnRlcmBgIGNvbW1hbmQgd2l0aCBgYG5vZGUtaWRgYAorICBhcyBhIHBh cmFtZXRlci4KKyogUXVlcnkgc3BlY2lmaWMgZXJyb3IgY291bnRlciB2YWx1ZXMgd2l0aCB0aGUg YGBnZXQtZXJyb3ItY291bnRlcmBgIGNvbW1hbmQsIHVzaW5nIGJvdGgKKyAgYGBub2RlLWlkYGAg YW5kIGBgZXJyb3ItaWRgYCBhcyBwYXJhbWV0ZXJzLgorCitZQU1MLWJhc2VkIEludGVyZmFjZQor LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIGludGVyZmFjZSBpcyBkZXNjcmliZWQgaW4gYSBZ QU1MIHNwZWNpZmljYXRpb24gYGBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHJtX3Jhcy55 YW1sYGAKKworVGhpcyBZQU1MIGlzIHVzZWQgdG8gYXV0by1nZW5lcmF0ZSB1c2VyIHNwYWNlIGJp bmRpbmdzIHZpYQorYGB0b29scy9uZXQveW5sL3B5eW5sL3lubF9nZW5fYy5weWBgLCBhbmQgZHJp dmVzIHRoZSBzdHJ1Y3R1cmUgb2YgbmV0bGluaworYXR0cmlidXRlcyBhbmQgb3BlcmF0aW9ucy4K KworVXNhZ2UgTm90ZXMKKy0tLS0tLS0tLS0tCisKKyogVXNlciBzcGFjZSBtdXN0IGZpcnN0IGVu dW1lcmF0ZSBub2RlcyB0byBvYnRhaW4gdGhlaXIgSURzLgorKiBOb2RlIElEcyBvciBOb2RlIG5h bWVzIGNhbiBiZSB1c2VkIGZvciBhbGwgZnVydGhlciBxdWVyaWVzLCBzdWNoIGFzIGVycm9yIGNv dW50ZXJzLgorKiBFcnJvciBjb3VudGVycyBjYW4gYmUgcXVlcmllZCBieSBlaXRoZXIgdGhlIEVy cm9yIElEIG9yIEVycm9yIG5hbWUuCisqIFF1ZXJ5IFBhcmFtZXRlcnMgc2hvdWxkIGJlIGRlZmlu ZWQgYXMgcGFydCBvZiB0aGUgdUFQSSB0byBlbnN1cmUgdXNlciBpbnRlcmZhY2Ugc3RhYmlsaXR5 LgorKiBUaGUgaW50ZXJmYWNlIHN1cHBvcnRzIGZ1dHVyZSBleHRlbnNpb24gYnkgYWRkaW5nIG5l dyBub2RlIHR5cGVzIGFuZAorICBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMuCisKK0V4YW1wbGU6IExp c3Qgbm9kZXMgdXNpbmcgeW5sCisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCisKKyAgICBzdWRvIHlu bCAtLWZhbWlseSBkcm1fcmFzIC0tZHVtcCBsaXN0LW5vZGVzCisgICAgW3snZGV2aWNlLW5hbWUn OiAnMDAwMDowMzowMC4wJywKKyAgICAnbm9kZS1pZCc6IDAsCisgICAgJ25vZGUtbmFtZSc6ICdj b3JyZWN0YWJsZS1lcnJvcnMnLAorICAgICdub2RlLXR5cGUnOiAnZXJyb3ItY291bnRlcid9LAor ICAgIHsnZGV2aWNlLW5hbWUnOiAnMDAwMDowMzowMC4wJywKKyAgICAgJ25vZGUtaWQnOiAxLAor ICAgICAnbm9kZS1uYW1lJzogJ3VuY29ycmVjdGFibGUtZXJyb3JzJywKKyAgICAgJ25vZGUtdHlw ZSc6ICdlcnJvci1jb3VudGVyJ31dCisKK0V4YW1wbGU6IExpc3QgYWxsIGVycm9yIGNvdW50ZXJz IHVzaW5nIHlubAorCisuLiBjb2RlLWJsb2NrOjogYmFzaAorCisgICAgc3VkbyB5bmwgLS1mYW1p bHkgZHJtX3JhcyAtLWR1bXAgZ2V0LWVycm9yLWNvdW50ZXIgLS1qc29uICd7Im5vZGUtaWQiOjB9 JworICAgIFt7J2Vycm9yLWlkJzogMSwgJ2Vycm9yLW5hbWUnOiAnZXJyb3JfbmFtZTEnLCAnZXJy b3ItdmFsdWUnOiAwfSwKKyAgICB7J2Vycm9yLWlkJzogMiwgJ2Vycm9yLW5hbWUnOiAnZXJyb3Jf bmFtZTInLCAnZXJyb3ItdmFsdWUnOiAwfV0KKworRXhhbXBsZTogUXVlcnkgYW4gZXJyb3IgY291 bnRlciBmb3IgYSBnaXZlbiBub2RlCisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCisKKyAgICBzdWRv IHlubCAtLWZhbWlseSBkcm1fcmFzIC0tZG8gZ2V0LWVycm9yLWNvdW50ZXIgLS1qc29uICd7Im5v ZGUtaWQiOjAsICJlcnJvci1pZCI6MX0nCisgICAgeydlcnJvci1pZCc6IDEsICdlcnJvci1uYW1l JzogJ2Vycm9yX25hbWUxJywgJ2Vycm9yLXZhbHVlJzogMH0KKwpkaWZmIC0tZ2l0IGEvRG9jdW1l bnRhdGlvbi9ncHUvaW5kZXgucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvaW5kZXgucnN0CmluZGV4 IDdkY2IxNTg1MGFmZC4uNjBjNzNmZGNmZWVkIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dw dS9pbmRleC5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9ncHUvaW5kZXgucnN0CkBAIC05LDYgKzks NyBAQCBHUFUgRHJpdmVyIERldmVsb3BlcidzIEd1aWRlCiAgICBkcm0tbW0KICAgIGRybS1rbXMK ICAgIGRybS1rbXMtaGVscGVycworICAgZHJtLXJhcwogICAgZHJtLXVhcGkKICAgIGRybS11c2Fn ZS1zdGF0cwogICAgZHJpdmVyLXVhcGkKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbmV0bGlu ay9zcGVjcy9kcm1fcmFzLnlhbWwgYi9Eb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHJtX3Jh cy55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjIzNjQzYzAy MWUyCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RybV9y YXMueWFtbApAQCAtMCwwICsxLDExOCBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKChH UEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlKSBPUiBCU0QtMy1DbGF1c2UpCistLS0KK25h bWU6IGRybS1yYXMKK3Byb3RvY29sOiBnZW5ldGxpbmsKK3VhcGktaGVhZGVyOiBkcm0vZHJtX3Jh cy5oCisKK2RvYzogPi0KKyAgRFJNIFJBUyAoUmVsaWFiaWxpdHksIEF2YWlsYWJpbGl0eSwgU2Vy dmljZWFiaWxpdHkpIG92ZXIgR2VuZXJpYyBOZXRsaW5rLgorICBQcm92aWRlcyBhIHN0YW5kYXJk aXplZCBtZWNoYW5pc20gZm9yIERSTSBkcml2ZXJzIHRvIHJlZ2lzdGVyICJub2RlcyIKKyAgcmVw cmVzZW50aW5nIGhhcmR3YXJlL3NvZnR3YXJlIGNvbXBvbmVudHMgY2FwYWJsZSBvZiByZXBvcnRp bmcgZXJyb3IgY291bnRlcnMuCisgIFVzZXJzcGFjZSB0b29scyBjYW4gcXVlcnkgdGhlIGxpc3Qg b2Ygbm9kZXMgb3IgaW5kaXZpZHVhbCBlcnJvciBjb3VudGVycworICB2aWEgdGhlIEdlbmVyaWMg TmV0bGluayBpbnRlcmZhY2UuCisKK2RlZmluaXRpb25zOgorICAtCisgICAgdHlwZTogZW51bQor ICAgIG5hbWU6IG5vZGUtdHlwZQorICAgIHZhbHVlLXN0YXJ0OiAxCisgICAgZW50cmllczogW2Vy cm9yLWNvdW50ZXJdCisgICAgZG9jOiA+LQorICAgICAgICAgVHlwZSBvZiB0aGUgbm9kZS4gQ3Vy cmVudGx5LCBvbmx5IGVycm9yLWNvdW50ZXIgbm9kZXMgYXJlCisgICAgICAgICBzdXBwb3J0ZWQs IHdoaWNoIGV4cG9zZSByZWxpYWJpbGl0eSBjb3VudGVycyBmb3IgYSBoYXJkd2FyZS9zb2Z0d2Fy ZQorICAgICAgICAgY29tcG9uZW50LgorCithdHRyaWJ1dGUtc2V0czoKKyAgLQorICAgIG5hbWU6 IG5vZGUtYXR0cnMKKyAgICBhdHRyaWJ1dGVzOgorICAgICAgLQorICAgICAgICBuYW1lOiBub2Rl LWlkCisgICAgICAgIHR5cGU6IHUzMgorICAgICAgICBkb2M6ID4tCisgICAgICAgICAgICAgVW5p cXVlIGlkZW50aWZpZXIgZm9yIHRoZSBub2RlLgorICAgICAgICAgICAgIEFzc2lnbmVkIGR5bmFt aWNhbGx5IGJ5IHRoZSBEUk0gUkFTIGNvcmUgdXBvbiByZWdpc3RyYXRpb24uCisgICAgICAtCisg ICAgICAgIG5hbWU6IGRldmljZS1uYW1lCisgICAgICAgIHR5cGU6IHN0cmluZworICAgICAgICBk b2M6ID4tCisgICAgICAgICAgICAgRGV2aWNlIG5hbWUgY2hvc2VuIGJ5IHRoZSBkcml2ZXIgYXQg cmVnaXN0cmF0aW9uLgorICAgICAgICAgICAgIENhbiBiZSBhIFBDSSBCREYsIFVVSUQsIG9yIG1v ZHVsZSBuYW1lIGlmIHVuaXF1ZS4KKyAgICAgIC0KKyAgICAgICAgbmFtZTogbm9kZS1uYW1lCisg ICAgICAgIHR5cGU6IHN0cmluZworICAgICAgICBkb2M6ID4tCisgICAgICAgICAgICAgTm9kZSBu YW1lIGNob3NlbiBieSB0aGUgZHJpdmVyIGF0IHJlZ2lzdHJhdGlvbi4KKyAgICAgICAgICAgICBD YW4gYmUgYW4gSVAgYmxvY2sgbmFtZSwgb3IgYW55IG5hbWUgdGhhdCBpZGVudGlmaWVzIHRoZQor ICAgICAgICAgICAgIFJBUyBub2RlIGluc2lkZSB0aGUgZGV2aWNlLgorICAgICAgLQorICAgICAg ICBuYW1lOiBub2RlLXR5cGUKKyAgICAgICAgdHlwZTogdTMyCisgICAgICAgIGRvYzogVHlwZSBv ZiB0aGlzIG5vZGUsIGlkZW50aWZ5aW5nIGl0cyBmdW5jdGlvbi4KKyAgICAgICAgZW51bTogbm9k ZS10eXBlCisgIC0KKyAgICBuYW1lOiBlcnJvci1jb3VudGVyLWF0dHJzCisgICAgYXR0cmlidXRl czoKKyAgICAgIC0KKyAgICAgICAgbmFtZTogbm9kZS1pZAorICAgICAgICB0eXBlOiB1MzIKKyAg ICAgICAgZG9jOiBOb2RlIElEIHRhcmdldGVkIGJ5IHRoaXMgZXJyb3IgY291bnRlciBvcGVyYXRp b24uCisgICAgICAtCisgICAgICAgIG5hbWU6IGVycm9yLWlkCisgICAgICAgIHR5cGU6IHUzMgor ICAgICAgICBkb2M6IFVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIHNwZWNpZmljIGVycm9yIGNvdW50 ZXIgd2l0aGluIGFuIG5vZGUuCisgICAgICAtCisgICAgICAgIG5hbWU6IGVycm9yLW5hbWUKKyAg ICAgICAgdHlwZTogc3RyaW5nCisgICAgICAgIGRvYzogTmFtZSBvZiB0aGUgZXJyb3IuCisgICAg ICAtCisgICAgICAgIG5hbWU6IGVycm9yLXZhbHVlCisgICAgICAgIHR5cGU6IHUzMgorICAgICAg ICBkb2M6IEN1cnJlbnQgdmFsdWUgb2YgdGhlIHJlcXVlc3RlZCBlcnJvciBjb3VudGVyLgorCitv cGVyYXRpb25zOgorICBsaXN0OgorICAgIC0KKyAgICAgIG5hbWU6IGxpc3Qtbm9kZXMKKyAgICAg IGRvYzogPi0KKyAgICAgICAgICAgUmV0cmlldmUgdGhlIGZ1bGwgbGlzdCBvZiBjdXJyZW50bHkg cmVnaXN0ZXJlZCBEUk0gUkFTIG5vZGVzLgorICAgICAgICAgICBFYWNoIG5vZGUgaW5jbHVkZXMg aXRzIGR5bmFtaWNhbGx5IGFzc2lnbmVkIElELCBuYW1lLCBhbmQgdHlwZS4KKyAgICAgICAgICAg KipJbXBvcnRhbnQ6KiogVXNlciBzcGFjZSBtdXN0IGNhbGwgdGhpcyBvcGVyYXRpb24gZmlyc3Qg dG8gb2J0YWluCisgICAgICAgICAgIHRoZSBub2RlIElEcy4gVGhlc2UgSURzIGFyZSByZXF1aXJl ZCBmb3IgYWxsIHN1YnNlcXVlbnQKKyAgICAgICAgICAgb3BlcmF0aW9ucyBvbiBub2Rlcywgc3Vj aCBhcyBxdWVyeWluZyBlcnJvciBjb3VudGVycy4KKyAgICAgIGF0dHJpYnV0ZS1zZXQ6IG5vZGUt YXR0cnMKKyAgICAgIGZsYWdzOiBbYWRtaW4tcGVybV0KKyAgICAgIGR1bXA6CisgICAgICAgIHJl cGx5OgorICAgICAgICAgIGF0dHJpYnV0ZXM6CisgICAgICAgICAgICAtIG5vZGUtaWQKKyAgICAg ICAgICAgIC0gZGV2aWNlLW5hbWUKKyAgICAgICAgICAgIC0gbm9kZS1uYW1lCisgICAgICAgICAg ICAtIG5vZGUtdHlwZQorICAgIC0KKyAgICAgIG5hbWU6IGdldC1lcnJvci1jb3VudGVyCisgICAg ICBkb2M6ID4tCisgICAgICAgICAgIFJldHJpZXZlIGVycm9yIGNvdW50ZXIgZm9yIGEgZ2l2ZW4g bm9kZS4KKyAgICAgICAgICAgVGhlIHJlc3BvbnNlIGluY2x1ZGVzIHRoZSBpZCwgdGhlIG5hbWUs IGFuZCBldmVuIHRoZSBjdXJyZW50CisgICAgICAgICAgIHZhbHVlIG9mIGVhY2ggY291bnRlci4K KyAgICAgIGF0dHJpYnV0ZS1zZXQ6IGVycm9yLWNvdW50ZXItYXR0cnMKKyAgICAgIGZsYWdzOiBb YWRtaW4tcGVybV0KKyAgICAgIGRvOgorICAgICAgICByZXF1ZXN0OgorICAgICAgICAgIGF0dHJp YnV0ZXM6CisgICAgICAgICAgICAtIG5vZGUtaWQKKyAgICAgICAgICAgIC0gZXJyb3ItaWQKKyAg ICAgICAgcmVwbHk6CisgICAgICAgICAgYXR0cmlidXRlczogJmVycm9yaW5mbworICAgICAgICAg ICAgLSBlcnJvci1pZAorICAgICAgICAgICAgLSBlcnJvci1uYW1lCisgICAgICAgICAgICAtIGVy cm9yLXZhbHVlCisgICAgICBkdW1wOgorICAgICAgICByZXF1ZXN0OgorICAgICAgICAgIGF0dHJp YnV0ZXM6CisgICAgICAgICAgICAtIG5vZGUtaWQKKyAgICAgICAgcmVwbHk6CisgICAgICAgICAg YXR0cmlidXRlczogKmVycm9yaW5mbworCitrZXJuZWwtZmFtaWx5OgorICBoZWFkZXJzOiBbImRy bS9kcm1fcmFzX25sLmgiXQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL0tjb25maWcgYi9k cml2ZXJzL2dwdS9kcm0vS2NvbmZpZwppbmRleCAwZDA2NTdkZDFiNDEuLjUzODYyNDhlNzViNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJt L0tjb25maWcKQEAgLTEzMCw2ICsxMzAsMTYgQEAgY29uZmlnIERSTV9QQU5JQ19TQ1JFRU5fUVJf VkVSU0lPTgogCSAgU21hbGxlciBRUiBjb2RlIGFyZSBlYXNpZXIgdG8gcmVhZCwgYnV0IHdpbGwg Y29udGFpbiBsZXNzIGRlYnVnZ2luZwogCSAgZGF0YS4gRGVmYXVsdCBpcyA0MC4KIAorY29uZmln IERSTV9SQVMKKwlib29sICJEUk0gUkFTIHN1cHBvcnQiCisJZGVwZW5kcyBvbiBEUk0KKwlkZXBl bmRzIG9uIE5FVAorCWhlbHAKKwkgIEVuYWJsZXMgdGhlIERSTSBSQVMgKFJlbGlhYmlsaXR5LCBB dmFpbGFiaWxpdHkgYW5kIFNlcnZpY2VhYmlsaXR5KQorCSAgc3VwcG9ydCBmb3IgRFJNIGRyaXZl cnMuIFRoaXMgcHJvdmlkZXMgYSBHZW5lcmljIE5ldGxpbmsgaW50ZXJmYWNlCisJICBmb3IgZXJy b3IgcmVwb3J0aW5nIGFuZCBxdWVyaWVzLgorCSAgSWYgaW4gZG91YnQsIHNheSAiTiIuCisKIGNv bmZpZyBEUk1fREVCVUdfRFBfTVNUX1RPUE9MT0dZX1JFRlMKICAgICAgICAgYm9vbCAiRW5hYmxl IHJlZmNvdW50IGJhY2t0cmFjZSBoaXN0b3J5IGluIHRoZSBEUCBNU1QgaGVscGVycyIKIAlkZXBl bmRzIG9uIFNUQUNLVFJBQ0VfU1VQUE9SVApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL01h a2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCmluZGV4IDA2MjE2MmQ4ZTE3OS4uYjJl MDMxYjhlYWFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKKysrIGIvZHJp dmVycy9ncHUvZHJtL01ha2VmaWxlCkBAIC05NCw2ICs5NCw3IEBAIGRybS0kKENPTkZJR19EUk1f QUNDRUwpICs9IC4uLy4uL2FjY2VsL2RybV9hY2NlbC5vCiBkcm0tJChDT05GSUdfRFJNX1BBTklD KSArPSBkcm1fcGFuaWMubwogZHJtLSQoQ09ORklHX0RSTV9EUkFXKSArPSBkcm1fZHJhdy5vCiBk cm0tJChDT05GSUdfRFJNX1BBTklDX1NDUkVFTl9RUl9DT0RFKSArPSBkcm1fcGFuaWNfcXIubwor ZHJtLSQoQ09ORklHX0RSTV9SQVMpICs9IGRybV9yYXMubyBkcm1fcmFzX25sLm8gZHJtX3Jhc19n ZW5sX2ZhbWlseS5vCiBvYmotJChDT05GSUdfRFJNKQkrPSBkcm0ubwogCiBvYmotJChDT05GSUdf RFJNX1BBTkVMX09SSUVOVEFUSU9OX1FVSVJLUykgKz0gZHJtX3BhbmVsX29yaWVudGF0aW9uX3F1 aXJrcy5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9kcnYuYwppbmRleCAyOTE1MTE4NDM2Y2UuLjZiOTY1YzNkMzMwNyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2Rydi5jCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9wYW5pYy5oPgogI2lu Y2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3ByaXZhY3lfc2NyZWVu X21hY2hpbmUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3Jhc19nZW5sX2ZhbWlseS5oPgogCiAjaW5j bHVkZSAiZHJtX2NydGNfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJkcm1faW50ZXJuYWwuaCIKQEAg LTEyMjMsNiArMTIyNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRy bV9zdHViX2ZvcHMgPSB7CiAKIHN0YXRpYyB2b2lkIGRybV9jb3JlX2V4aXQodm9pZCkKIHsKKwlk cm1fcmFzX2dlbmxfZmFtaWx5X3VucmVnaXN0ZXIoKTsKIAlkcm1fcHJpdmFjeV9zY3JlZW5fbG9v a3VwX2V4aXQoKTsKIAlkcm1fcGFuaWNfZXhpdCgpOwogCWFjY2VsX2NvcmVfZXhpdCgpOwpAQCAt MTI2MSw2ICsxMjYzLDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IGRybV9jb3JlX2luaXQodm9pZCkK IAogCWRybV9wcml2YWN5X3NjcmVlbl9sb29rdXBfaW5pdCgpOwogCisJcmV0ID0gZHJtX3Jhc19n ZW5sX2ZhbWlseV9yZWdpc3RlcigpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGVycm9yOworCiAJ ZHJtX2NvcmVfaW5pdF9jb21wbGV0ZSA9IHRydWU7CiAKIAlEUk1fREVCVUcoIkluaXRpYWxpemVk XG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcmFzLmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX3Jhcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u MmQ2ZGZjYjVlM2IyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9yYXMu YwpAQCAtMCwwICsxLDM1MiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoK KyAqIENvcHlyaWdodCDCqSAyMDI2IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUg PGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxp bnV4L25ldGRldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3hhcnJheS5oPgorI2luY2x1ZGUgPG5l dC9nZW5ldGxpbmsuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fcmFzLmg+CisKKy8qKgorICogRE9D OiBEUk0gUkFTIE5vZGUgTWFuYWdlbWVudAorICoKKyAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHRo ZSBpbmZyYXN0cnVjdHVyZSB0byBtYW5hZ2UgUkFTIChSZWxpYWJpbGl0eSwKKyAqIEF2YWlsYWJp bGl0eSwgYW5kIFNlcnZpY2VhYmlsaXR5KSBub2RlcyBmb3IgRFJNIGRyaXZlcnMuIEVhY2gKKyAq IERSTSBkcml2ZXIgbWF5IHJlZ2lzdGVyIG9uZSBvciBtb3JlIFJBUyBub2Rlcywgd2hpY2ggcmVw cmVzZW50CisgKiBsb2dpY2FsIGNvbXBvbmVudHMgY2FwYWJsZSBvZiByZXBvcnRpbmcgZXJyb3Ig Y291bnRlcnMgYW5kIG90aGVyCisgKiByZWxpYWJpbGl0eSBtZXRyaWNzLgorICoKKyAqIFRoZSBu b2RlcyBhcmUgc3RvcmVkIGluIGEgZ2xvYmFsIHhhcnJheSBgZHJtX3Jhc194YWAgdG8gYWxsb3cK KyAqIGVmZmljaWVudCBsb29rdXAgYnkgSUQuIE5vZGVzIGNhbiBiZSByZWdpc3RlcmVkIG9yIHVu cmVnaXN0ZXJlZAorICogZHluYW1pY2FsbHkgYXQgcnVudGltZS4KKyAqCisgKiBBIEdlbmVyaWMg TmV0bGluayBmYW1pbHkgYGRybV9yYXNgIGV4cG9zZXMgdHdvIG1haW4gb3BlcmF0aW9ucyB0bwor ICogdXNlcnNwYWNlOgorICoKKyAqIDEuIExJU1RfTk9ERVM6IER1bXAgYWxsIGN1cnJlbnRseSBy ZWdpc3RlcmVkIFJBUyBub2Rlcy4KKyAqICAgIFRoZSB1c2VyIHJlY2VpdmVzIGFuIGFycmF5IG9m IG5vZGUgSURzLCBuYW1lcywgYW5kIHR5cGVzLgorICoKKyAqIDIuIEdFVF9FUlJPUl9DT1VOVEVS OiBHZXQgZXJyb3IgY291bnRlcnMgb2YgYSBnaXZlbiBub2RlLgorICogICAgVXNlcnNwYWNlIG11 c3QgcHJvdmlkZSBOb2RlIElELCBFcnJvciBJRCAoT3B0aW9uYWwgZm9yIHNwZWNpZmljIGNvdW50 ZXIpLgorICogICAgUmV0dXJucyBhbGwgY291bnRlcnMgb2YgYSBub2RlIGlmIG9ubHkgTm9kZSBJ RCBpcyBwcm92aWRlZCBvciBzcGVjaWZpYworICogICAgZXJyb3IgY291bnRlcnMuCisgKgorICog Tm9kZSByZWdpc3RyYXRpb246CisgKgorICogLSBkcm1fcmFzX25vZGVfcmVnaXN0ZXIoKTogUmVn aXN0ZXJzIGEgbmV3IG5vZGUgYW5kIGFzc2lnbnMKKyAqICAgaXQgYSB1bmlxdWUgSUQgaW4gdGhl IHhhcnJheS4KKyAqIC0gZHJtX3Jhc19ub2RlX3VucmVnaXN0ZXIoKTogUmVtb3ZlcyBhIHByZXZp b3VzbHkgcmVnaXN0ZXJlZAorICogICBub2RlIGZyb20gdGhlIHhhcnJheS4KKyAqCisgKiBOb2Rl IHR5cGU6CisgKgorICogLSBFUlJPUl9DT1VOVEVSOgorICogICAgICsgQ3VycmVudGx5LCBvbmx5 IGVycm9yIGNvdW50ZXJzIGFyZSBzdXBwb3J0ZWQuCisgKiAgICAgKyBUaGUgZHJpdmVyIG11c3Qg aW1wbGVtZW50IHRoZSBxdWVyeV9lcnJvcl9jb3VudGVyKCkgY2FsbGJhY2sgdG8gcHJvdmlkZQor ICogICAgICAgdGhlIG5hbWUgYW5kIHRoZSB2YWx1ZSBvZiB0aGUgZXJyb3IgY291bnRlci4KKyAq ICAgICArIFRoZSBkcml2ZXIgbXVzdCBwcm92aWRlIGEgZXJyb3JfY291bnRlcl9yYW5nZS5sYXN0 IHZhbHVlIGluZm9ybWluZyB0aGUKKyAqICAgICAgIGxhc3QgdmFsaWQgZXJyb3IgSUQuCisgKiAg ICAgKyBUaGUgZHJpdmVyIGNhbiBwcm92aWRlIGEgZXJyb3JfY291bnRlcl9yYW5nZS5maXJzdCB2 YWx1ZSBpbmZvcm1pbmcgdGhlCisgKiAgICAgICBmaXJzdCB2YWxpZCBlcnJvciBJRC4KKyAqICAg ICArIFRoZSBlcnJvciBjb3VudGVycyBpbiB0aGUgZHJpdmVyIGRvZXNuJ3QgbmVlZCB0byBiZSBj b250aWd1b3VzLCBidXQgdGhlCisgKiAgICAgICBkcml2ZXIgbXVzdCByZXR1cm4gLUVOT0VOVCB0 byB0aGUgcXVlcnlfZXJyb3JfY291bnRlciBhcyBhbiBpbmRpY2F0aW9uCisgKiAgICAgICB0aGF0 IHRoZSBJRCBzaG91bGQgYmUgc2tpcHBlZCBhbmQgbm90IGxpc3RlZCBpbiB0aGUgbmV0bGluayBB UEkuCisgKgorICogTmV0bGluayBoYW5kbGVyczoKKyAqCisgKiAtIGRybV9yYXNfbmxfbGlzdF9u b2Rlc19kdW1waXQoKTogSW1wbGVtZW50cyB0aGUgTElTVF9OT0RFUworICogICBvcGVyYXRpb24s IGl0ZXJhdGluZyBvdmVyIHRoZSB4YXJyYXkuCisgKiAtIGRybV9yYXNfbmxfZ2V0X2Vycm9yX2Nv dW50ZXJfZHVtcGl0KCk6IEltcGxlbWVudHMgdGhlIEdFVF9FUlJPUl9DT1VOVEVSIGR1bXBpdAor ICogICBvcGVyYXRpb24sIGZldGNoaW5nIGFsbCBjb3VudGVycyBmcm9tIGEgc3BlY2lmaWMgbm9k ZS4KKyAqIC0gZHJtX3Jhc19ubF9nZXRfZXJyb3JfY291bnRlcl9kb2l0KCk6IEltcGxlbWVudHMg dGhlIEdFVF9FUlJPUl9DT1VOVEVSIGRvaXQKKyAqICAgb3BlcmF0aW9uLCBmZXRjaGluZyBhIGNv dW50ZXIgdmFsdWUgZnJvbSBhIHNwZWNpZmljIG5vZGUuCisgKi8KKworc3RhdGljIERFRklORV9Y QVJSQVlfQUxMT0MoZHJtX3Jhc194YSk7CisKKy8qCisgKiBUaGUgbmV0bGluayBjYWxsYmFjayBj b250ZXh0IGNhcnJpZXMgZHVtcCBzdGF0ZSBhY3Jvc3MgbXVsdGlwbGUgZHVtcGl0IGNhbGxzCisg Ki8KK3N0cnVjdCBkcm1fcmFzX2N0eCB7CisJLyogV2hpY2ggeGFycmF5IGlkIHRvIHJlc3RhcnQg dGhlIGR1bXAgZnJvbSAqLworCXVuc2lnbmVkIGxvbmcgcmVzdGFydDsKK307CisKKy8qKgorICog ZHJtX3Jhc19ubF9saXN0X25vZGVzX2R1bXBpdCgpIC0gRHVtcCBhbGwgcmVnaXN0ZXJlZCBSQVMg bm9kZXMKKyAqIEBza2I6IE5ldGxpbmsgbWVzc2FnZSBidWZmZXIKKyAqIEBjYjogQ2FsbGJhY2sg Y29udGV4dCBmb3IgbXVsdGktcGFydCBkdW1wcworICoKKyAqIEl0ZXJhdGVzIG92ZXIgYWxsIHJl Z2lzdGVyZWQgUkFTIG5vZGVzIGluIHRoZSBnbG9iYWwgeGFycmF5IGFuZCBhcHBlbmRzCisgKiB0 aGVpciBhdHRyaWJ1dGVzIChJRCwgbmFtZSwgdHlwZSkgdG8gdGhlIGdpdmVuIG5ldGxpbmsgbWVz c2FnZSBidWZmZXIuCisgKiBVc2VzIEBjYi0+Y3R4IHRvIHRyYWNrIHByb2dyZXNzIGluIGNhc2Ug dGhlIG1lc3NhZ2UgYnVmZmVyIGZpbGxzIHVwLCBhbGxvd2luZworICogbXVsdGktcGFydCBkdW1w IHN1cHBvcnQuIE9uIGJ1ZmZlciBvdmVyZmxvdywgdXBkYXRlcyB0aGUgY29udGV4dCB0byByZXN1 bWUKKyAqIGZyb20gdGhlIGxhc3Qgbm9kZSBvbiB0aGUgbmV4dCBpbnZvY2F0aW9uLgorICoKKyAq IFJldHVybjogMCBpZiBhbGwgbm9kZXMgZml0IGluIEBza2IsIG51bWJlciBvZiBieXRlcyBhZGRl ZCB0byBAc2tiIGlmCisgKiAgICAgICAgICB0aGUgYnVmZmVyIGZpbGxlZCB1cCAocmVxdWlyZXMg bXVsdGktcGFydCBjb250aW51YXRpb24pLCBvcgorICogICAgICAgICAgYSBuZWdhdGl2ZSBlcnJv ciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBkcm1fcmFzX25sX2xpc3Rfbm9kZXNfZHVtcGl0 KHN0cnVjdCBza19idWZmICpza2IsCisJCQkJIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikK K3sKKwljb25zdCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvID0gZ2VubF9pbmZvX2R1bXAoY2IpOwor CXN0cnVjdCBkcm1fcmFzX2N0eCAqY3R4ID0gKHZvaWQgKiljYi0+Y3R4OworCXN0cnVjdCBkcm1f cmFzX25vZGUgKm5vZGU7CisJc3RydWN0IG5sYXR0ciAqaGRyOworCXVuc2lnbmVkIGxvbmcgaWQ7 CisJaW50IHJldDsKKworCXhhX2Zvcl9lYWNoX3N0YXJ0KCZkcm1fcmFzX3hhLCBpZCwgbm9kZSwg Y3R4LT5yZXN0YXJ0KSB7CisJCWhkciA9IGdlbmxtc2dfaXB1dChza2IsIGluZm8pOworCQlpZiAo IWhkcikgeworCQkJcmV0ID0gLUVNU0dTSVpFOworCQkJYnJlYWs7CisJCX0KKworCQlyZXQgPSBu bGFfcHV0X3UzMihza2IsIERSTV9SQVNfQV9OT0RFX0FUVFJTX05PREVfSUQsIG5vZGUtPmlkKTsK KwkJaWYgKHJldCkgeworCQkJZ2VubG1zZ19jYW5jZWwoc2tiLCBoZHIpOworCQkJYnJlYWs7CisJ CX0KKworCQlyZXQgPSBubGFfcHV0X3N0cmluZyhza2IsIERSTV9SQVNfQV9OT0RFX0FUVFJTX0RF VklDRV9OQU1FLAorCQkJCSAgICAgbm9kZS0+ZGV2aWNlX25hbWUpOworCQlpZiAocmV0KSB7CisJ CQlnZW5sbXNnX2NhbmNlbChza2IsIGhkcik7CisJCQlicmVhazsKKwkJfQorCisJCXJldCA9IG5s YV9wdXRfc3RyaW5nKHNrYiwgRFJNX1JBU19BX05PREVfQVRUUlNfTk9ERV9OQU1FLAorCQkJCSAg ICAgbm9kZS0+bm9kZV9uYW1lKTsKKwkJaWYgKHJldCkgeworCQkJZ2VubG1zZ19jYW5jZWwoc2ti LCBoZHIpOworCQkJYnJlYWs7CisJCX0KKworCQlyZXQgPSBubGFfcHV0X3UzMihza2IsIERSTV9S QVNfQV9OT0RFX0FUVFJTX05PREVfVFlQRSwKKwkJCQkgIG5vZGUtPnR5cGUpOworCQlpZiAocmV0 KSB7CisJCQlnZW5sbXNnX2NhbmNlbChza2IsIGhkcik7CisJCQlicmVhazsKKwkJfQorCisJCWdl bmxtc2dfZW5kKHNrYiwgaGRyKTsKKwl9CisKKwlpZiAocmV0ID09IC1FTVNHU0laRSkKKwkJY3R4 LT5yZXN0YXJ0ID0gaWQ7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGdldF9ub2Rl X2Vycm9yX2NvdW50ZXIodTMyIG5vZGVfaWQsIHUzMiBlcnJvcl9pZCwKKwkJCQkgIGNvbnN0IGNo YXIgKipuYW1lLCB1MzIgKnZhbHVlKQoreworCXN0cnVjdCBkcm1fcmFzX25vZGUgKm5vZGU7CisK Kwlub2RlID0geGFfbG9hZCgmZHJtX3Jhc194YSwgbm9kZV9pZCk7CisJaWYgKCFub2RlIHx8ICFu b2RlLT5xdWVyeV9lcnJvcl9jb3VudGVyKQorCQlyZXR1cm4gLUVOT0VOVDsKKworCWlmIChlcnJv cl9pZCA8IG5vZGUtPmVycm9yX2NvdW50ZXJfcmFuZ2UuZmlyc3QgfHwKKwkgICAgZXJyb3JfaWQg PiBub2RlLT5lcnJvcl9jb3VudGVyX3JhbmdlLmxhc3QpCisJCXJldHVybiAtRUlOVkFMOworCisJ cmV0dXJuIG5vZGUtPnF1ZXJ5X2Vycm9yX2NvdW50ZXIobm9kZSwgZXJyb3JfaWQsIG5hbWUsIHZh bHVlKTsKK30KKworc3RhdGljIGludCBtc2dfcmVwbHlfdmFsdWUoc3RydWN0IHNrX2J1ZmYgKm1z ZywgdTMyIGVycm9yX2lkLAorCQkJICAgY29uc3QgY2hhciAqZXJyb3JfbmFtZSwgdTMyIHZhbHVl KQoreworCWludCByZXQ7CisKKwlyZXQgPSBubGFfcHV0X3UzMihtc2csIERSTV9SQVNfQV9FUlJP Ul9DT1VOVEVSX0FUVFJTX0VSUk9SX0lELCBlcnJvcl9pZCk7CisJaWYgKHJldCkKKwkJcmV0dXJu IHJldDsKKworCXJldCA9IG5sYV9wdXRfc3RyaW5nKG1zZywgRFJNX1JBU19BX0VSUk9SX0NPVU5U RVJfQVRUUlNfRVJST1JfTkFNRSwKKwkJCSAgICAgZXJyb3JfbmFtZSk7CisJaWYgKHJldCkKKwkJ cmV0dXJuIHJldDsKKworCXJldHVybiBubGFfcHV0X3UzMihtc2csIERSTV9SQVNfQV9FUlJPUl9D T1VOVEVSX0FUVFJTX0VSUk9SX1ZBTFVFLAorCQkJICAgdmFsdWUpOworfQorCitzdGF0aWMgaW50 IGRvaXRfcmVwbHlfdmFsdWUoc3RydWN0IGdlbmxfaW5mbyAqaW5mbywgdTMyIG5vZGVfaWQsCisJ CQkgICAgdTMyIGVycm9yX2lkKQoreworCXN0cnVjdCBza19idWZmICptc2c7CisJc3RydWN0IG5s YXR0ciAqaGRyOworCWNvbnN0IGNoYXIgKmVycm9yX25hbWU7CisJdTMyIHZhbHVlOworCWludCBy ZXQ7CisKKwltc2cgPSBnZW5sbXNnX25ldyhOTE1TR19HT09EU0laRSwgR0ZQX0tFUk5FTCk7CisJ aWYgKCFtc2cpCisJCXJldHVybiAtRU5PTUVNOworCisJaGRyID0gZ2VubG1zZ19pcHV0KG1zZywg aW5mbyk7CisJaWYgKCFoZHIpIHsKKwkJbmxtc2dfZnJlZShtc2cpOworCQlyZXR1cm4gLUVNU0dT SVpFOworCX0KKworCXJldCA9IGdldF9ub2RlX2Vycm9yX2NvdW50ZXIobm9kZV9pZCwgZXJyb3Jf aWQsCisJCQkJICAgICAmZXJyb3JfbmFtZSwgJnZhbHVlKTsKKwlpZiAocmV0KQorCQlyZXR1cm4g cmV0OworCisJcmV0ID0gbXNnX3JlcGx5X3ZhbHVlKG1zZywgZXJyb3JfaWQsIGVycm9yX25hbWUs IHZhbHVlKTsKKwlpZiAocmV0KSB7CisJCWdlbmxtc2dfY2FuY2VsKG1zZywgaGRyKTsKKwkJbmxt c2dfZnJlZShtc2cpOworCQlyZXR1cm4gcmV0OworCX0KKworCWdlbmxtc2dfZW5kKG1zZywgaGRy KTsKKworCXJldHVybiBnZW5sbXNnX3JlcGx5KG1zZywgaW5mbyk7Cit9CisKKy8qKgorICogZHJt X3Jhc19ubF9nZXRfZXJyb3JfY291bnRlcl9kdW1waXQoKSAtIER1bXAgYWxsIEVycm9yIENvdW50 ZXJzCisgKiBAc2tiOiBOZXRsaW5rIG1lc3NhZ2UgYnVmZmVyCisgKiBAY2I6IENhbGxiYWNrIGNv bnRleHQgZm9yIG11bHRpLXBhcnQgZHVtcHMKKyAqCisgKiBJdGVyYXRlcyBvdmVyIGFsbCBlcnJv ciBjb3VudGVycyBpbiBhIGdpdmVuIE5vZGUgYW5kIGFwcGVuZHMKKyAqIHRoZWlyIGF0dHJpYnV0 ZXMgKElELCBuYW1lLCB2YWx1ZSkgdG8gdGhlIGdpdmVuIG5ldGxpbmsgbWVzc2FnZSBidWZmZXIu CisgKiBVc2VzIEBjYi0+Y3R4IHRvIHRyYWNrIHByb2dyZXNzIGluIGNhc2UgdGhlIG1lc3NhZ2Ug YnVmZmVyIGZpbGxzIHVwLCBhbGxvd2luZworICogbXVsdGktcGFydCBkdW1wIHN1cHBvcnQuIE9u IGJ1ZmZlciBvdmVyZmxvdywgdXBkYXRlcyB0aGUgY29udGV4dCB0byByZXN1bWUKKyAqIGZyb20g dGhlIGxhc3Qgbm9kZSBvbiB0aGUgbmV4dCBpbnZvY2F0aW9uLgorICoKKyAqIFJldHVybjogMCBp ZiBhbGwgZXJyb3JzIGZpdCBpbiBAc2tiLCBudW1iZXIgb2YgYnl0ZXMgYWRkZWQgdG8gQHNrYiBp ZgorICogICAgICAgICAgdGhlIGJ1ZmZlciBmaWxsZWQgdXAgKHJlcXVpcmVzIG11bHRpLXBhcnQg Y29udGludWF0aW9uKSwgb3IKKyAqICAgICAgICAgIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBm YWlsdXJlLgorICovCitpbnQgZHJtX3Jhc19ubF9nZXRfZXJyb3JfY291bnRlcl9kdW1waXQoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwKKwkJCQkJc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKQorewor CWNvbnN0IHN0cnVjdCBnZW5sX2luZm8gKmluZm8gPSBnZW5sX2luZm9fZHVtcChjYik7CisJc3Ry dWN0IGRybV9yYXNfY3R4ICpjdHggPSAodm9pZCAqKWNiLT5jdHg7CisJc3RydWN0IGRybV9yYXNf bm9kZSAqbm9kZTsKKwlzdHJ1Y3QgbmxhdHRyICpoZHI7CisJY29uc3QgY2hhciAqZXJyb3JfbmFt ZTsKKwl1MzIgbm9kZV9pZCwgZXJyb3JfaWQsIHZhbHVlOworCWludCByZXQ7CisKKwlpZiAoIWlu Zm8tPmF0dHJzIHx8ICFpbmZvLT5hdHRyc1tEUk1fUkFTX0FfRVJST1JfQ09VTlRFUl9BVFRSU19O T0RFX0lEXSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlub2RlX2lkID0gbmxhX2dldF91MzIoaW5m by0+YXR0cnNbRFJNX1JBU19BX0VSUk9SX0NPVU5URVJfQVRUUlNfTk9ERV9JRF0pOworCisJbm9k ZSA9IHhhX2xvYWQoJmRybV9yYXNfeGEsIG5vZGVfaWQpOworCWlmICghbm9kZSkKKwkJcmV0dXJu IC1FTk9FTlQ7CisKKwlmb3IgKGVycm9yX2lkID0gbWF4KG5vZGUtPmVycm9yX2NvdW50ZXJfcmFu Z2UuZmlyc3QsIGN0eC0+cmVzdGFydCk7CisJICAgICBlcnJvcl9pZCA8PSBub2RlLT5lcnJvcl9j b3VudGVyX3JhbmdlLmxhc3Q7CisJICAgICBlcnJvcl9pZCsrKSB7CisJCXJldCA9IGdldF9ub2Rl X2Vycm9yX2NvdW50ZXIobm9kZV9pZCwgZXJyb3JfaWQsCisJCQkJCSAgICAgJmVycm9yX25hbWUs ICZ2YWx1ZSk7CisJCS8qCisJCSAqIEZvciBub24tY29udGlndW91cyByYW5nZSwgZHJpdmVyIHJl dHVybiAtRU5PRU5UIGFzIGluZGljYXRpb24KKwkJICogdG8gc2tpcCB0aGlzIElEIHdoZW4gbGlz dGluZyBhbGwgZXJyb3JzLgorCQkgKi8KKwkJaWYgKHJldCA9PSAtRU5PRU5UKQorCQkJY29udGlu dWU7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJCWhkciA9IGdlbmxtc2dfaXB1dChz a2IsIGluZm8pOworCisJCWlmICghaGRyKSB7CisJCQlyZXQgPSAtRU1TR1NJWkU7CisJCQlicmVh azsKKwkJfQorCisJCXJldCA9IG1zZ19yZXBseV92YWx1ZShza2IsIGVycm9yX2lkLCBlcnJvcl9u YW1lLCB2YWx1ZSk7CisJCWlmIChyZXQpIHsKKwkJCWdlbmxtc2dfY2FuY2VsKHNrYiwgaGRyKTsK KwkJCWJyZWFrOworCQl9CisKKwkJZ2VubG1zZ19lbmQoc2tiLCBoZHIpOworCX0KKworCWlmIChy ZXQgPT0gLUVNU0dTSVpFKQorCQljdHgtPnJlc3RhcnQgPSBlcnJvcl9pZDsKKworCXJldHVybiBy ZXQ7Cit9CisKKy8qKgorICogZHJtX3Jhc19ubF9nZXRfZXJyb3JfY291bnRlcl9kb2l0KCkgLSBR dWVyeSBhbiBlcnJvciBjb3VudGVyIG9mIGFuIG5vZGUKKyAqIEBza2I6IE5ldGxpbmsgbWVzc2Fn ZSBidWZmZXIKKyAqIEBpbmZvOiBHZW5lcmljIE5ldGxpbmsgaW5mbyBjb250YWluaW5nIGF0dHJp YnV0ZXMgb2YgdGhlIHJlcXVlc3QKKyAqCisgKiBFeHRyYWN0cyB0aGUgbm9kZSBJRCBhbmQgZXJy b3IgSUQgZnJvbSB0aGUgbmV0bGluayBhdHRyaWJ1dGVzIGFuZAorICogcmV0cmlldmVzIHRoZSBj dXJyZW50IHZhbHVlIG9mIHRoZSBjb3JyZXNwb25kaW5nIGVycm9yIGNvdW50ZXIuIFNlbmRzIHRo ZQorICogcmVzdWx0IGJhY2sgdG8gdGhlIHJlcXVlc3RpbmcgdXNlciB2aWEgdGhlIHN0YW5kYXJk IEdlbmwgcmVwbHkuCisgKgorICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIG9yIG5lZ2F0aXZlIGVy cm5vIG9uIGZhaWx1cmUuCisgKi8KK2ludCBkcm1fcmFzX25sX2dldF9lcnJvcl9jb3VudGVyX2Rv aXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJCQkgICAgICBzdHJ1Y3QgZ2VubF9pbmZvICppbmZv KQoreworCXUzMiBub2RlX2lkLCBlcnJvcl9pZDsKKworCWlmICghaW5mby0+YXR0cnMgfHwKKwkg ICAgIWluZm8tPmF0dHJzW0RSTV9SQVNfQV9FUlJPUl9DT1VOVEVSX0FUVFJTX05PREVfSURdIHx8 CisJICAgICFpbmZvLT5hdHRyc1tEUk1fUkFTX0FfRVJST1JfQ09VTlRFUl9BVFRSU19FUlJPUl9J RF0pCisJCXJldHVybiAtRUlOVkFMOworCisJbm9kZV9pZCA9IG5sYV9nZXRfdTMyKGluZm8tPmF0 dHJzW0RSTV9SQVNfQV9FUlJPUl9DT1VOVEVSX0FUVFJTX05PREVfSURdKTsKKwllcnJvcl9pZCA9 IG5sYV9nZXRfdTMyKGluZm8tPmF0dHJzW0RSTV9SQVNfQV9FUlJPUl9DT1VOVEVSX0FUVFJTX0VS Uk9SX0lEXSk7CisKKwlyZXR1cm4gZG9pdF9yZXBseV92YWx1ZShpbmZvLCBub2RlX2lkLCBlcnJv cl9pZCk7Cit9CisKKy8qKgorICogZHJtX3Jhc19ub2RlX3JlZ2lzdGVyKCkgLSBSZWdpc3RlciBh IG5ldyBSQVMgbm9kZQorICogQG5vZGU6IE5vZGUgc3RydWN0dXJlIHRvIHJlZ2lzdGVyCisgKgor ICogQWRkcyB0aGUgZ2l2ZW4gUkFTIG5vZGUgdG8gdGhlIGdsb2JhbCBub2RlIHhhcnJheSBhbmQg YXNzaWducyBpdAorICogYSB1bmlxdWUgSUQuIEJvdGggQG5vZGUtPm5hbWUgYW5kIEBub2RlLT50 eXBlIG11c3QgYmUgdmFsaWQuCisgKgorICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIG9yIG5lZ2F0 aXZlIGVycm5vIG9uIGZhaWx1cmU6CisgKi8KK2ludCBkcm1fcmFzX25vZGVfcmVnaXN0ZXIoc3Ry dWN0IGRybV9yYXNfbm9kZSAqbm9kZSkKK3sKKwlpZiAoIW5vZGUtPmRldmljZV9uYW1lIHx8ICFu b2RlLT5ub2RlX25hbWUpCisJCXJldHVybiAtRUlOVkFMOworCisJLyogQ3VycmVudGx5LCBvbmx5 IEVycm9yIENvdW50ZXIgRW5kcG9pbnRzIGFyZSBzdXBwb3J0ZWQgKi8KKwlpZiAobm9kZS0+dHlw ZSAhPSBEUk1fUkFTX05PREVfVFlQRV9FUlJPUl9DT1VOVEVSKQorCQlyZXR1cm4gLUVJTlZBTDsK KworCS8qIE1hbmRhdG9yeSBlbnRyaWVzIGZvciBFcnJvciBDb3VudGVyIE5vZGUgKi8KKwlpZiAo bm9kZS0+dHlwZSA9PSBEUk1fUkFTX05PREVfVFlQRV9FUlJPUl9DT1VOVEVSICYmCisJICAgICgh bm9kZS0+ZXJyb3JfY291bnRlcl9yYW5nZS5sYXN0IHx8ICFub2RlLT5xdWVyeV9lcnJvcl9jb3Vu dGVyKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4geGFfYWxsb2MoJmRybV9yYXNfeGEs ICZub2RlLT5pZCwgbm9kZSwgeGFfbGltaXRfMzJiLCBHRlBfS0VSTkVMKTsKK30KK0VYUE9SVF9T WU1CT0woZHJtX3Jhc19ub2RlX3JlZ2lzdGVyKTsKKworLyoqCisgKiBkcm1fcmFzX25vZGVfdW5y ZWdpc3RlcigpIC0gVW5yZWdpc3RlciBhIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBub2RlCisgKiBA bm9kZTogTm9kZSBzdHJ1Y3R1cmUgdG8gdW5yZWdpc3RlcgorICoKKyAqIFJlbW92ZXMgdGhlIGdp dmVuIG5vZGUgZnJvbSB0aGUgZ2xvYmFsIG5vZGUgeGFycmF5IHVzaW5nIGl0cyBJRC4KKyAqLwor dm9pZCBkcm1fcmFzX25vZGVfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX3Jhc19ub2RlICpub2RlKQor eworCXhhX2VyYXNlKCZkcm1fcmFzX3hhLCBub2RlLT5pZCk7Cit9CitFWFBPUlRfU1lNQk9MKGRy bV9yYXNfbm9kZV91bnJlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f cmFzX2dlbmxfZmFtaWx5LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3Jhc19nZW5sX2ZhbWlseS5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjc1YjVkZmQ1MjE2Ci0t LSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9yYXNfZ2VubF9mYW1pbHkuYwpA QCAtMCwwICsxLDQyIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICog Q29weXJpZ2h0IMKpIDIwMjYgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSA8ZHJt L2RybV9yYXNfZ2VubF9mYW1pbHkuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3Jhc19ubC5oPgorCisv KiBUcmFjayBmYW1pbHkgcmVnaXN0cmF0aW9uIHNvIHRoZSBkcm1fZXhpdCBjYW4gYmUgY2FsbGVk IGF0IGFueSB0aW1lICovCitzdGF0aWMgYm9vbCByZWdpc3RlcmVkOworCisvKioKKyAqIGRybV9y YXNfZ2VubF9mYW1pbHlfcmVnaXN0ZXIoKSAtIFJlZ2lzdGVyIGRybS1yYXMgZ2VubCBmYW1pbHkK KyAqCisgKiBPbmx5IHRvIGJlIGNhbGxlZCBvbmUgYXQgZHJtX2Rydl9pbml0KCkKKyAqLworaW50 IGRybV9yYXNfZ2VubF9mYW1pbHlfcmVnaXN0ZXIodm9pZCkKK3sKKwlpbnQgcmV0OworCisJcmVn aXN0ZXJlZCA9IGZhbHNlOworCisJcmV0ID0gZ2VubF9yZWdpc3Rlcl9mYW1pbHkoJmRybV9yYXNf bmxfZmFtaWx5KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmVnaXN0ZXJlZCA9IHRy dWU7CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogZHJtX3Jhc19nZW5sX2ZhbWlseV91bnJlZ2lz dGVyKCkgLSBVbnJlZ2lzdGVyIGRybS1yYXMgZ2VubCBmYW1pbHkKKyAqCisgKiBUbyBiZSBjYWxs ZWQgb25lIGF0IGRybV9kcnZfZXhpdCgpIGF0IGFueSBtb21lbnQsIGJ1dCBvbmx5IG9uY2UuCisg Ki8KK3ZvaWQgZHJtX3Jhc19nZW5sX2ZhbWlseV91bnJlZ2lzdGVyKHZvaWQpCit7CisJaWYgKHJl Z2lzdGVyZWQpIHsKKwkJZ2VubF91bnJlZ2lzdGVyX2ZhbWlseSgmZHJtX3Jhc19ubF9mYW1pbHkp OworCQlyZWdpc3RlcmVkID0gZmFsc2U7CisJfQorfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9yYXNfbmwuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcmFzX25sLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40NzE0YTU3NGExNDMKLS0tIC9kZXYvbnVs bAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3Jhc19ubC5jCkBAIC0wLDAgKzEsNTUgQEAKKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoKEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5v dGUpIE9SIEJTRC0zLUNsYXVzZSkKKy8qIERvIG5vdCBlZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVy YXRlZCBmcm9tOiAqLworLyoJRG9jdW1lbnRhdGlvbi9uZXRsaW5rL3NwZWNzL2RybV9yYXMueWFt bCAqLworLyogWU5MLUdFTiBrZXJuZWwgc291cmNlICovCisvKiBUbyByZWdlbmVyYXRlIHJ1bjog dG9vbHMvbmV0L3lubC95bmwtcmVnZW4uc2ggKi8KKworI2luY2x1ZGUgPG5ldC9uZXRsaW5rLmg+ CisjaW5jbHVkZSA8bmV0L2dlbmV0bGluay5oPgorCisjaW5jbHVkZSA8dWFwaS9kcm0vZHJtX3Jh cy5oPgorI2luY2x1ZGUgPGRybS9kcm1fcmFzX25sLmg+CisKKy8qIERSTV9SQVNfQ01EX0dFVF9F UlJPUl9DT1VOVEVSIC0gZG8gKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcm1f cmFzX2dldF9lcnJvcl9jb3VudGVyX2RvX25sX3BvbGljeVtEUk1fUkFTX0FfRVJST1JfQ09VTlRF Ul9BVFRSU19FUlJPUl9JRCArIDFdID0geworCVtEUk1fUkFTX0FfRVJST1JfQ09VTlRFUl9BVFRS U19OT0RFX0lEXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LAorCVtEUk1fUkFTX0FfRVJST1JfQ09V TlRFUl9BVFRSU19FUlJPUl9JRF0gPSB7IC50eXBlID0gTkxBX1UzMiwgfSwKK307CisKKy8qIERS TV9SQVNfQ01EX0dFVF9FUlJPUl9DT1VOVEVSIC0gZHVtcCAqLworc3RhdGljIGNvbnN0IHN0cnVj dCBubGFfcG9saWN5IGRybV9yYXNfZ2V0X2Vycm9yX2NvdW50ZXJfZHVtcF9ubF9wb2xpY3lbRFJN X1JBU19BX0VSUk9SX0NPVU5URVJfQVRUUlNfTk9ERV9JRCArIDFdID0geworCVtEUk1fUkFTX0Ff RVJST1JfQ09VTlRFUl9BVFRSU19OT0RFX0lEXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LAorfTsK KworLyogT3BzIHRhYmxlIGZvciBkcm1fcmFzICovCitzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmxf c3BsaXRfb3BzIGRybV9yYXNfbmxfb3BzW10gPSB7CisJeworCQkuY21kCT0gRFJNX1JBU19DTURf TElTVF9OT0RFUywKKwkJLmR1bXBpdAk9IGRybV9yYXNfbmxfbGlzdF9ub2Rlc19kdW1waXQsCisJ CS5mbGFncwk9IEdFTkxfQURNSU5fUEVSTSB8IEdFTkxfQ01EX0NBUF9EVU1QLAorCX0sCisJewor CQkuY21kCQk9IERSTV9SQVNfQ01EX0dFVF9FUlJPUl9DT1VOVEVSLAorCQkuZG9pdAkJPSBkcm1f cmFzX25sX2dldF9lcnJvcl9jb3VudGVyX2RvaXQsCisJCS5wb2xpY3kJCT0gZHJtX3Jhc19nZXRf ZXJyb3JfY291bnRlcl9kb19ubF9wb2xpY3ksCisJCS5tYXhhdHRyCT0gRFJNX1JBU19BX0VSUk9S X0NPVU5URVJfQVRUUlNfRVJST1JfSUQsCisJCS5mbGFncwkJPSBHRU5MX0FETUlOX1BFUk0gfCBH RU5MX0NNRF9DQVBfRE8sCisJfSwKKwl7CisJCS5jbWQJCT0gRFJNX1JBU19DTURfR0VUX0VSUk9S X0NPVU5URVIsCisJCS5kdW1waXQJCT0gZHJtX3Jhc19ubF9nZXRfZXJyb3JfY291bnRlcl9kdW1w aXQsCisJCS5wb2xpY3kJCT0gZHJtX3Jhc19nZXRfZXJyb3JfY291bnRlcl9kdW1wX25sX3BvbGlj eSwKKwkJLm1heGF0dHIJPSBEUk1fUkFTX0FfRVJST1JfQ09VTlRFUl9BVFRSU19OT0RFX0lELAor CQkuZmxhZ3MJCT0gR0VOTF9BRE1JTl9QRVJNIHwgR0VOTF9DTURfQ0FQX0RVTVAsCisJfSwKK307 CisKK3N0cnVjdCBnZW5sX2ZhbWlseSBkcm1fcmFzX25sX2ZhbWlseSBfX3JvX2FmdGVyX2luaXQg PSB7CisJLm5hbWUJCT0gRFJNX1JBU19GQU1JTFlfTkFNRSwKKwkudmVyc2lvbgk9IERSTV9SQVNf RkFNSUxZX1ZFUlNJT04sCisJLm5ldG5zb2sJPSB0cnVlLAorCS5wYXJhbGxlbF9vcHMJPSB0cnVl LAorCS5tb2R1bGUJCT0gVEhJU19NT0RVTEUsCisJLnNwbGl0X29wcwk9IGRybV9yYXNfbmxfb3Bz LAorCS5uX3NwbGl0X29wcwk9IEFSUkFZX1NJWkUoZHJtX3Jhc19ubF9vcHMpLAorfTsKZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtL2RybV9yYXMuaCBiL2luY2x1ZGUvZHJtL2RybV9yYXMuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFhNDgxMWM3NWI3OAotLS0gL2Rl di9udWxsCisrKyBiL2luY2x1ZGUvZHJtL2RybV9yYXMuaApAQCAtMCwwICsxLDc1IEBACisvKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMjYg SW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fRFJNX1JBU19IX18KKyNkZWZpbmUg X19EUk1fUkFTX0hfXworCisjaW5jbHVkZSAiZHJtX3Jhc19ubC5oIgorCisvKioKKyAqIHN0cnVj dCBkcm1fcmFzX25vZGUgLSBBIERSTSBSQVMgTm9kZQorICovCitzdHJ1Y3QgZHJtX3Jhc19ub2Rl IHsKKwkvKiogQGlkOiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG5vZGUuIER5bmFtaWNhbGx5 IGFzc2lnbmVkLiAqLworCXUzMiBpZDsKKwkvKioKKwkgKiBAZGV2aWNlX25hbWU6IEh1bWFuLXJl YWRhYmxlIG5hbWUgb2YgdGhlIGRldmljZS4gR2l2ZW4gYnkgdGhlIGRyaXZlci4KKwkgKi8KKwlj b25zdCBjaGFyICpkZXZpY2VfbmFtZTsKKwkvKiogQG5vZGVfbmFtZTogSHVtYW4tcmVhZGFibGUg bmFtZSBvZiB0aGUgbm9kZS4gR2l2ZW4gYnkgdGhlIGRyaXZlci4gKi8KKwljb25zdCBjaGFyICpu b2RlX25hbWU7CisJLyoqIEB0eXBlOiBUeXBlIG9mIHRoZSBub2RlIChlbnVtIGRybV9yYXNfbm9k ZV90eXBlKS4gKi8KKwllbnVtIGRybV9yYXNfbm9kZV90eXBlIHR5cGU7CisKKwkvKiBFcnJvci1D b3VudGVyIFJlbGF0ZWQgQ2FsbGJhY2sgYW5kIFZhcmlhYmxlcyAqLworCisJLyoqIEBlcnJvcl9j b3VudGVyX3JhbmdlOiBSYW5nZSBvZiB2YWxpZCBFcnJvciBJRHMgZm9yIHRoaXMgbm9kZS4gKi8K KwlzdHJ1Y3QgeworCQkvKiogQGZpcnN0OiBGaXJzdCB2YWxpZCBFcnJvciBJRC4gKi8KKwkJdTMy IGZpcnN0OworCQkvKiogQGxhc3Q6IExhc3QgdmFsaWQgRXJyb3IgSUQuIE1hbmRhdG9yeSBlbnRy eS4gKi8KKwkJdTMyIGxhc3Q7CisJfSBlcnJvcl9jb3VudGVyX3JhbmdlOworCisJLyoqCisJICog QHF1ZXJ5X2Vycm9yX2NvdW50ZXI6CisJICoKKwkgKiBUaGlzIGNhbGxiYWNrIGlzIHVzZWQgYnkg ZHJtLXJhcyB0byBxdWVyeSBhIHNwZWNpZmljIGVycm9yIGNvdW50ZXIuCisJICogVXNlZCBmb3Ig aW5wdXQgY2hlY2sgYW5kIHRvIGl0ZXJhdGUgYWxsIGVycm9yIGNvdW50ZXJzIGluIGEgbm9kZS4K KwkgKgorCSAqIERyaXZlciBzaG91bGQgZXhwZWN0IHF1ZXJ5X2Vycm9yX2NvdW50ZXIoKSB0byBi ZSBjYWxsZWQgd2l0aAorCSAqIGVycm9yX2lkIGZyb20gYGVycm9yX2NvdW50ZXJfcmFuZ2UuZmly c3RgIHRvCisJICogYGVycm9yX2NvdW50ZXJfcmFuZ2UubGFzdGAuCisJICoKKwkgKiBUaGUgQHF1 ZXJ5X2Vycm9yX2NvdW50ZXIgaXMgYSBtYW5kYXRvcnkgY2FsbGJhY2sgZm9yCisJICogZXJyb3Jf Y291bnRlcl9ub2RlLgorCSAqCisJICogUmV0dXJuczogMCBvbiBzdWNjZXNzLAorCSAqICAgICAg ICAgIC1FTk9FTlQgd2hlbiBlcnJvcl9pZCBpcyBub3Qgc3VwcG9ydGVkIGFzIGFuIGluZGljYXRp b24gdGhhdAorCSAqICAgICAgICAgICAgICAgICAgZHJtX3JhcyBzaG91bGQgc2lsZW50bHkgc2tp cCB0aGlzIGVudHJ5LiBVc2VkIGZvcgorCSAqICAgICAgICAgICAgICAgICAgc3VwcG9ydGluZyBu b24tY29udGlndW91cyBlcnJvciByYW5nZXMuCisJICogICAgICAgICAgICAgICAgICBEcml2ZXIg aXMgcmVzcG9uc2libGUgZm9yIG1haW50YWluaW5nIHRoZSBsaXN0IG9mCisJICogICAgICAgICAg ICAgICAgICBzdXBwb3J0ZWQgZXJyb3IgSURzIGluIHRoZSByYW5nZSBvZiBmaXJzdCB0byBsYXN0 LgorCSAqICAgICAgICAgIE90aGVyIG5lZ2F0aXZlIHZhbHVlcyBvbiBlcnJvcnMgdGhhdCBzaG91 bGQgdGVybWluYXRlIHRoZQorCSAqICAgICAgICAgIG5ldGxpbmsgcXVlcnkuCisJICovCisJaW50 ICgqcXVlcnlfZXJyb3JfY291bnRlcikoc3RydWN0IGRybV9yYXNfbm9kZSAqbm9kZSwgdTMyIGVy cm9yX2lkLAorCQkJCSAgIGNvbnN0IGNoYXIgKipuYW1lLCB1MzIgKnZhbCk7CisKKwkvKiogQHBy aXY6IERyaXZlciBwcml2YXRlIGRhdGEgKi8KKwl2b2lkICpwcml2OworfTsKKworc3RydWN0IGRy bV9kZXZpY2U7CisKKyNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fUkFTKQoraW50IGRybV9yYXNf bm9kZV9yZWdpc3RlcihzdHJ1Y3QgZHJtX3Jhc19ub2RlICpub2RlKTsKK3ZvaWQgZHJtX3Jhc19u b2RlX3VucmVnaXN0ZXIoc3RydWN0IGRybV9yYXNfbm9kZSAqbm9kZSk7CisjZWxzZQorc3RhdGlj IGlubGluZSBpbnQgZHJtX3Jhc19ub2RlX3JlZ2lzdGVyKHN0cnVjdCBkcm1fcmFzX25vZGUgKm5v ZGUpIHsgcmV0dXJuIDA7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBkcm1fcmFzX25vZGVfdW5yZWdp c3RlcihzdHJ1Y3QgZHJtX3Jhc19ub2RlICpub2RlKSB7IH0KKyNlbmRpZgorCisjZW5kaWYKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9yYXNfZ2VubF9mYW1pbHkuaCBiL2luY2x1ZGUvZHJt L2RybV9yYXNfZ2VubF9mYW1pbHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjkxMGZiMzk0M2E3NQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZHJtL2RybV9y YXNfZ2VubF9mYW1pbHkuaApAQCAtMCwwICsxLDE3IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMjYgSW50ZWwgQ29ycG9yYXRpb24K KyAqLworCisjaWZuZGVmIF9fRFJNX1JBU19HRU5MX0ZBTUlMWV9IX18KKyNkZWZpbmUgX19EUk1f UkFTX0dFTkxfRkFNSUxZX0hfXworCisjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX1JBUykKK2lu dCBkcm1fcmFzX2dlbmxfZmFtaWx5X3JlZ2lzdGVyKHZvaWQpOwordm9pZCBkcm1fcmFzX2dlbmxf ZmFtaWx5X3VucmVnaXN0ZXIodm9pZCk7CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgZHJtX3Jh c19nZW5sX2ZhbWlseV9yZWdpc3Rlcih2b2lkKSB7IHJldHVybiAwOyB9CitzdGF0aWMgaW5saW5l IHZvaWQgZHJtX3Jhc19nZW5sX2ZhbWlseV91bnJlZ2lzdGVyKHZvaWQpIHsgfQorI2VuZGlmCisK KyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3Jhc19ubC5oIGIvaW5jbHVkZS9k cm0vZHJtX3Jhc19ubC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u ZjExYTBjMDliZjUwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9kcm0vZHJtX3Jhc19ubC5o CkBAIC0wLDAgKzEsMjUgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoKEdQTC0yLjAg V0lUSCBMaW51eC1zeXNjYWxsLW5vdGUpIE9SIEJTRC0zLUNsYXVzZSkgKi8KKy8qIERvIG5vdCBl ZGl0IGRpcmVjdGx5LCBhdXRvLWdlbmVyYXRlZCBmcm9tOiAqLworLyoJRG9jdW1lbnRhdGlvbi9u ZXRsaW5rL3NwZWNzL2RybV9yYXMueWFtbCAqLworLyogWU5MLUdFTiBrZXJuZWwgaGVhZGVyICov CisvKiBUbyByZWdlbmVyYXRlIHJ1bjogdG9vbHMvbmV0L3lubC95bmwtcmVnZW4uc2ggKi8KKwor I2lmbmRlZiBfTElOVVhfRFJNX1JBU19HRU5fSAorI2RlZmluZSBfTElOVVhfRFJNX1JBU19HRU5f SAorCisjaW5jbHVkZSA8bmV0L25ldGxpbmsuaD4KKyNpbmNsdWRlIDxuZXQvZ2VuZXRsaW5rLmg+ CisKKyNpbmNsdWRlIDx1YXBpL2RybS9kcm1fcmFzLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9yYXNf bmwuaD4KKworaW50IGRybV9yYXNfbmxfbGlzdF9ub2Rlc19kdW1waXQoc3RydWN0IHNrX2J1ZmYg KnNrYiwKKwkJCQkgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKTsKK2ludCBkcm1fcmFzX25s X2dldF9lcnJvcl9jb3VudGVyX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJCQkgICAgICBz dHJ1Y3QgZ2VubF9pbmZvICppbmZvKTsKK2ludCBkcm1fcmFzX25sX2dldF9lcnJvcl9jb3VudGVy X2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJCQlzdHJ1Y3QgbmV0bGlua19jYWxsYmFj ayAqY2IpOworCitleHRlcm4gc3RydWN0IGdlbmxfZmFtaWx5IGRybV9yYXNfbmxfZmFtaWx5Owor CisjZW5kaWYgLyogX0xJTlVYX0RSTV9SQVNfR0VOX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUv dWFwaS9kcm0vZHJtX3Jhcy5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fcmFzLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41ZjQwZmE1Yjg2OWQKLS0tIC9kZXYvbnVs bAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2RybV9yYXMuaApAQCAtMCwwICsxLDQ5IEBACisvKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKChHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3Rl KSBPUiBCU0QtMy1DbGF1c2UpICovCisvKiBEbyBub3QgZWRpdCBkaXJlY3RseSwgYXV0by1nZW5l cmF0ZWQgZnJvbTogKi8KKy8qCURvY3VtZW50YXRpb24vbmV0bGluay9zcGVjcy9kcm1fcmFzLnlh bWwgKi8KKy8qIFlOTC1HRU4gdWFwaSBoZWFkZXIgKi8KKy8qIFRvIHJlZ2VuZXJhdGUgcnVuOiB0 b29scy9uZXQveW5sL3lubC1yZWdlbi5zaCAqLworCisjaWZuZGVmIF9VQVBJX0xJTlVYX0RSTV9S QVNfSAorI2RlZmluZSBfVUFQSV9MSU5VWF9EUk1fUkFTX0gKKworI2RlZmluZSBEUk1fUkFTX0ZB TUlMWV9OQU1FCSJkcm0tcmFzIgorI2RlZmluZSBEUk1fUkFTX0ZBTUlMWV9WRVJTSU9OCTEKKwor LyoKKyAqIFR5cGUgb2YgdGhlIG5vZGUuIEN1cnJlbnRseSwgb25seSBlcnJvci1jb3VudGVyIG5v ZGVzIGFyZSBzdXBwb3J0ZWQsIHdoaWNoCisgKiBleHBvc2UgcmVsaWFiaWxpdHkgY291bnRlcnMg Zm9yIGEgaGFyZHdhcmUvc29mdHdhcmUgY29tcG9uZW50LgorICovCitlbnVtIGRybV9yYXNfbm9k ZV90eXBlIHsKKwlEUk1fUkFTX05PREVfVFlQRV9FUlJPUl9DT1VOVEVSID0gMSwKK307CisKK2Vu dW0geworCURSTV9SQVNfQV9OT0RFX0FUVFJTX05PREVfSUQgPSAxLAorCURSTV9SQVNfQV9OT0RF X0FUVFJTX0RFVklDRV9OQU1FLAorCURSTV9SQVNfQV9OT0RFX0FUVFJTX05PREVfTkFNRSwKKwlE Uk1fUkFTX0FfTk9ERV9BVFRSU19OT0RFX1RZUEUsCisKKwlfX0RSTV9SQVNfQV9OT0RFX0FUVFJT X01BWCwKKwlEUk1fUkFTX0FfTk9ERV9BVFRSU19NQVggPSAoX19EUk1fUkFTX0FfTk9ERV9BVFRS U19NQVggLSAxKQorfTsKKworZW51bSB7CisJRFJNX1JBU19BX0VSUk9SX0NPVU5URVJfQVRUUlNf Tk9ERV9JRCA9IDEsCisJRFJNX1JBU19BX0VSUk9SX0NPVU5URVJfQVRUUlNfRVJST1JfSUQsCisJ RFJNX1JBU19BX0VSUk9SX0NPVU5URVJfQVRUUlNfRVJST1JfTkFNRSwKKwlEUk1fUkFTX0FfRVJS T1JfQ09VTlRFUl9BVFRSU19FUlJPUl9WQUxVRSwKKworCV9fRFJNX1JBU19BX0VSUk9SX0NPVU5U RVJfQVRUUlNfTUFYLAorCURSTV9SQVNfQV9FUlJPUl9DT1VOVEVSX0FUVFJTX01BWCA9IChfX0RS TV9SQVNfQV9FUlJPUl9DT1VOVEVSX0FUVFJTX01BWCAtIDEpCit9OworCitlbnVtIHsKKwlEUk1f UkFTX0NNRF9MSVNUX05PREVTID0gMSwKKwlEUk1fUkFTX0NNRF9HRVRfRVJST1JfQ09VTlRFUiwK KworCV9fRFJNX1JBU19DTURfTUFYLAorCURSTV9SQVNfQ01EX01BWCA9IChfX0RSTV9SQVNfQ01E X01BWCAtIDEpCit9OworCisjZW5kaWYgLyogX1VBUElfTElOVVhfRFJNX1JBU19IICovCi0tIAoy LjQ3LjEKCg==