From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EFD42C433ED for ; Thu, 1 Apr 2021 20:45:31 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 97E8E61001 for ; Thu, 1 Apr 2021 20:45:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 97E8E61001 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3E0F96ED6B; Thu, 1 Apr 2021 20:45:31 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id D48F36ED6B for ; Thu, 1 Apr 2021 20:45:29 +0000 (UTC) IronPort-SDR: F5MiXY7vrMfqbCsI/sqimamVS8O5dCXaYcepE/bQp6i561uaDUrT9WiptAuQGiZzrs/foOQQhd hqobUdwzlg+A== X-IronPort-AV: E=McAfee;i="6000,8403,9941"; a="212600720" X-IronPort-AV: E=Sophos;i="5.81,296,1610438400"; d="scan'208";a="212600720" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Apr 2021 13:45:29 -0700 IronPort-SDR: 60/kBUqyIIidPlBzcRByzYJSsLWqu4lzi9tIao6MIOhqbrj+8ZNKP0NqcECZ+KDgNbgBxaUSF4 YfSGBIeR1FWQ== X-IronPort-AV: E=Sophos;i="5.81,296,1610438400"; d="scan'208";a="419357600" Received: from dceraolo-mobl.amr.corp.intel.com (HELO [10.209.74.190]) ([10.209.74.190]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Apr 2021 13:45:28 -0700 To: Lionel Landwerlin , intel-gfx@lists.freedesktop.org References: <20210328225709.18541-1-daniele.ceraolospurio@intel.com> <20210328225709.18541-14-daniele.ceraolospurio@intel.com> From: Daniele Ceraolo Spurio Message-ID: Date: Thu, 1 Apr 2021 13:45:20 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.9.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH v3 13/16] drm/i915/pxp: User interface for Protected buffer X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Bommu Krishnaiah , Huang Sean Z , Chris Wilson Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" CgpPbiA0LzEvMjAyMSA1OjA1IEFNLCBMaW9uZWwgTGFuZHdlcmxpbiB3cm90ZToKPiBPbiAyOS8w My8yMDIxIDAxOjU3LCBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIHdyb3RlOgo+PiBGcm9tOiBCb21t dSBLcmlzaG5haWFoIDxrcmlzaG5haWFoLmJvbW11QGludGVsLmNvbT4KPj4KPj4gVGhpcyBhcGkg YWxsb3cgdXNlciBtb2RlIHRvIGNyZWF0ZSBQcm90ZWN0ZWQgYnVmZmVycy4gT25seSBjb250ZXh0 cwo+PiBtYXJrZWQgYXMgcHJvdGVjdGVkIGFyZSBhbGxvd2VkIHRvIG9wZXJhdGUgb24gcHJvdGVj dGVkIGJ1ZmZlcnMuCj4+Cj4+IFdlIG9ubHkgYWxsb3cgc2V0dGluZyB0aGUgZmxhZ3MgYXQgY3Jl YXRpb24gdGltZS4KPj4KPj4gQWxsIHByb3RlY3RlZCBvYmplY3RzIHRoYXQgaGF2ZSBiYWNraW5n IHN0b3JhZ2Ugd2lsbCBiZSBjb25zaWRlcmVkCj4+IGludmFsaWQgd2hlbiB0aGUgc2Vzc2lvbiBp cyBkZXN0cm95ZWQgYW5kIHRoZXkgd29uJ3QgYmUgdXNhYmxlIGFueW1vcmUuCj4+Cj4+IFRoaXMg aXMgYSByZXdvcmsgb2YgdGhlIG9yaWdpbmFsIGNvZGUgYnkgQm9tbXUgS3Jpc2huYWlhaC4gSSd2 ZQo+PiBhdXRob3JzaGlwIHVuY2hhbmdlZCBzaW5jZSBzaWduaWZpY2FudCBjaHVua3MgaGF2ZSBu b3QgYmVlbiBtb2RpZmllZC4KPj4KPj4gdjI6IHNwbGl0IGNvbnRleHQgY2hhbmdlcywgZml4IGRl ZmluZXMgYW5kIGltcHJvdmUgZG9jdW1lbnRhdGlvbiAKPj4gKENocmlzKSwKPj4gwqDCoMKgwqAg YWRkIG9iamVjdCBpbnZhbGlkYXRpb24gbG9naWMKPj4gdjM6IGZpeCBzcGlubG9jayBkZWZpbml0 aW9uIGFuZCB1c2FnZSwgb25seSB2YWxpZGF0ZSBvYmplY3RzIHdoZW4KPj4gwqDCoMKgwqAgdGhl eSdyZSBmaXJzdCBhZGRlZCB0byBhIGNvbnRleHQgbHV0LCBvbmx5IHJlbW92ZSB0aGVtIG9uY2Ug Cj4+IChDaHJpcyksCj4+IMKgwqDCoMKgIG1ha2UgcHJvdGVjdGVkIGNvbnRleHQgZmxhZyBub3Qg bWFuZGF0b3J5IGluIHByb3RlY3RlZCBvYmplY3QgCj4+IGV4ZWNidWYKPj4gwqDCoMKgwqAgdG8g YXZvaWQgYWJ1c2UgKExpb25lbCkKPj4KPj4gU2lnbmVkLW9mZi1ieTogQm9tbXUgS3Jpc2huYWlh aCA8a3Jpc2huYWlhaC5ib21tdUBpbnRlbC5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IERhbmllbGUg Q2VyYW9sbyBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+Cj4+IENjOiBU ZWx1a3VudGxhIFNyZWVkaGFyIDxzcmVlZGhhci50ZWx1a3VudGxhQGludGVsLmNvbT4KPj4gQ2M6 IEtvbmRhcGFsbHkgS2FseWFuIDxrYWx5YW4ua29uZGFwYWxseUBpbnRlbC5jb20+Cj4+IENjOiBH dXB0YSBBbnNodW1hbiA8QW5zaHVtYW4uR3VwdGFAaW50ZWwuY29tPgo+PiBDYzogSHVhbmcgU2Vh biBaIDxzZWFuLnouaHVhbmdAaW50ZWwuY29tPgo+PiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0Bj aHJpcy13aWxzb24uY28udWs+Cj4+IENjOiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFu ZHdlcmxpbkBpbnRlbC5jb20+Cj4+IC0tLQo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fY3JlYXRlLmPCoMKgwqAgfCAyNyArKysrKysrKysrLS0KPj4gwqAgLi4uL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jwqDCoMKgIHwgMTYgKysrKysrKysKPj4g wqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jwqDCoMKgIHzCoCA2 ICsrKwo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmjCoMKg wqAgfCAxMiArKysrKysKPj4gwqAgLi4uL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0 X3R5cGVzLmjCoCB8IDEzICsrKysrKwo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50 ZWxfcHhwLmPCoMKgwqDCoMKgwqDCoMKgwqAgfCA0MSArKysrKysrKysrKysrKysrKysrCj4+IMKg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9weHAuaMKgwqDCoMKgwqDCoMKgwqDCoCB8 IDEzICsrKysrKwo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwX3R5cGVz LmjCoMKgwqAgfMKgIDUgKysrCj4+IMKgIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDIwICsrKysrKysrKwo+PiDCoCA5IGZp bGVzIGNoYW5nZWQsIDE1MCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NyZWF0ZS5jIAo+PiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jcmVhdGUuYwo+PiBpbmRleCAzYWQz NDEzYzQ1OWYuLmQwMmU1OTM4YWZiZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX2NyZWF0ZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9jcmVhdGUuYwo+PiBAQCAtNSw2ICs1LDcgQEAKPj4gwqAgwqAgI2luY2x1ZGUg ImdlbS9pOTE1X2dlbV9pb2N0bHMuaCIKPj4gwqAgI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9yZWdp b24uaCIKPj4gKyNpbmNsdWRlICJweHAvaW50ZWxfcHhwLmgiCj4+IMKgIMKgICNpbmNsdWRlICJp OTE1X2Rydi5oIgo+PiDCoCAjaW5jbHVkZSAiaTkxNV91c2VyX2V4dGVuc2lvbnMuaCIKPj4gQEAg LTEzLDcgKzE0LDggQEAgc3RhdGljIGludAo+PiDCoCBpOTE1X2dlbV9jcmVhdGUoc3RydWN0IGRy bV9maWxlICpmaWxlLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGludGVsX21lbW9yeV9y ZWdpb24gKm1yLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgdTY0ICpzaXplX3AsCj4+IC3CoMKgwqDC oMKgwqDCoCB1MzIgKmhhbmRsZV9wKQo+PiArwqDCoMKgwqDCoMKgwqAgdTMyICpoYW5kbGVfcCwK Pj4gK8KgwqDCoMKgwqDCoMKgIHU2NCB1c2VyX2ZsYWdzKQo+PiDCoCB7Cj4+IMKgwqDCoMKgwqAg c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPj4gwqDCoMKgwqDCoCB1MzIgaGFuZGxl Owo+PiBAQCAtMzUsMTIgKzM3LDE3IEBAIGk5MTVfZ2VtX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGUsCj4+IMKgIMKgwqDCoMKgwqAgR0VNX0JVR19PTihzaXplICE9IG9iai0+YmFzZS5zaXpl KTsKPj4gwqAgK8KgwqDCoCBvYmotPnVzZXJfZmxhZ3MgPSB1c2VyX2ZsYWdzOwo+PiArCj4+IMKg wqDCoMKgwqAgcmV0ID0gZHJtX2dlbV9oYW5kbGVfY3JlYXRlKGZpbGUsICZvYmotPmJhc2UsICZo YW5kbGUpOwo+PiDCoMKgwqDCoMKgIC8qIGRyb3AgcmVmZXJlbmNlIGZyb20gYWxsb2NhdGUgLSBo YW5kbGUgaG9sZHMgaXQgbm93ICovCj4+IMKgwqDCoMKgwqAgaTkxNV9nZW1fb2JqZWN0X3B1dChv YmopOwo+PiDCoMKgwqDCoMKgIGlmIChyZXQpCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4g cmV0Owo+PiDCoCArwqDCoMKgIGlmICh1c2VyX2ZsYWdzICYgSTkxNV9HRU1fT0JKRUNUX1BST1RF Q1RFRCkKPj4gK8KgwqDCoMKgwqDCoMKgIGludGVsX3B4cF9vYmplY3RfYWRkKG9iaik7Cj4+ICsK Pj4gwqDCoMKgwqDCoCAqaGFuZGxlX3AgPSBoYW5kbGU7Cj4+IMKgwqDCoMKgwqAgKnNpemVfcCA9 IHNpemU7Cj4+IMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+IEBAIC04OSwxMSArOTYsMTIgQEAgaTkx NV9nZW1fZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAo+PiDCoMKgwqDCoMKgIHJl dHVybiBpOTE1X2dlbV9jcmVhdGUoZmlsZSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBpbnRlbF9tZW1vcnlfcmVnaW9uX2J5X3R5cGUodG9faTkxNShkZXYpLAo+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIG1lbV90eXBlKSwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAmYXJncy0+c2l6ZSwgJmFyZ3MtPmhhbmRsZSk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgJmFyZ3MtPnNpemUsICZhcmdzLT5oYW5kbGUsIDApOwo+PiDCoCB9 Cj4+IMKgIMKgIHN0cnVjdCBjcmVhdGVfZXh0IHsKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNTsKPj4gK8KgwqDCoCB1bnNpZ25lZCBsb25nIHVzZXJfZmxhZ3M7Cj4+ IMKgIH07Cj4+IMKgIMKgIHN0YXRpYyBpbnQgX19jcmVhdGVfc2V0cGFyYW0oc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3RfcGFyYW0gKmFyZ3MsCj4+IEBAIC0xMDQsNiArMTEyLDE5IEBAIHN0YXRp YyBpbnQgX19jcmVhdGVfc2V0cGFyYW0oc3RydWN0IAo+PiBkcm1faTkxNV9nZW1fb2JqZWN0X3Bh cmFtICphcmdzLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+IMKgwqDC oMKgwqAgfQo+PiDCoCArwqDCoMKgIHN3aXRjaCAobG93ZXJfMzJfYml0cyhhcmdzLT5wYXJhbSkp IHsKPj4gK8KgwqDCoCBjYXNlIEk5MTVfT0JKRUNUX1BBUkFNX1BST1RFQ1RFRF9DT05URU5UOgo+ PiArwqDCoMKgwqDCoMKgwqAgaWYgKCFpbnRlbF9weHBfaXNfZW5hYmxlZCgmZXh0X2RhdGEtPmk5 MTUtPmd0LnB4cCkpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PREVWOwo+ PiArwqDCoMKgwqDCoMKgwqAgaWYgKGFyZ3MtPnNpemUpIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9IGVsc2UgaWYgKGFyZ3Mt PmRhdGEpIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZXh0X2RhdGEtPnVzZXJfZmxhZ3Mg fD0gSTkxNV9HRU1fT0JKRUNUX1BST1RFQ1RFRDsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cmV0dXJuIDA7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqAgYnJlYWs7Cj4+ICvCoMKg wqAgfQo+PiArCj4+IMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+IMKgIH0KPj4gwqAgQEAg LTE0OCw1ICsxNjksNSBAQCBpOTE1X2dlbV9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgCj4+IHZvaWQgKmRhdGEsCj4+IMKgwqDCoMKgwqAgcmV0dXJuIGk5MTVfZ2VtX2NyZWF0 ZShmaWxlLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludGVs X21lbW9yeV9yZWdpb25fYnlfdHlwZShpOTE1LAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIElOVEVMX01FTU9SWV9TWVNU RU0pLAo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZhcmdzLT5zaXpl LCAmYXJncy0+aGFuZGxlKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAmYXJncy0+c2l6ZSwgJmFyZ3MtPmhhbmRsZSwgZXh0X2RhdGEudXNlcl9mbGFncyk7Cj4+IMKg IH0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9leGVj YnVmZmVyLmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYwo+PiBpbmRleCA3MmMyNDcwZmNmZTYuLjJmYjY1NzlhZDMwMSAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4+IEBAIC0yMCw2 ICsyMCw3IEBACj4+IMKgICNpbmNsdWRlICJndC9pbnRlbF9ndF9idWZmZXJfcG9vbC5oIgo+PiDC oCAjaW5jbHVkZSAiZ3QvaW50ZWxfZ3RfcG0uaCIKPj4gwqAgI2luY2x1ZGUgImd0L2ludGVsX3Jp bmcuaCIKPj4gKyNpbmNsdWRlICJweHAvaW50ZWxfcHhwLmgiCj4+IMKgIMKgICNpbmNsdWRlICJw eHAvaW50ZWxfcHhwLmgiCj4+IMKgIEBAIC04MzksNiArODQwLDIxIEBAIHN0YXRpYyBzdHJ1Y3Qg aTkxNV92bWEgKmViX2xvb2t1cF92bWEoc3RydWN0IAo+PiBpOTE1X2V4ZWNidWZmZXIgKmViLCB1 MzIgaGFuZGxlKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHVubGlrZWx5KCFvYmopKQo+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gRVJSX1BUUigtRU5PRU5UKTsKPj4gwqAg K8KgwqDCoMKgwqDCoMKgIC8qCj4+ICvCoMKgwqDCoMKgwqDCoMKgICogSWYgdGhlIHVzZXIgaGFz IG9wdGVkLWluIGZvciBwcm90ZWN0ZWQtb2JqZWN0IHRyYWNraW5nLCBtYWtlCj4+ICvCoMKgwqDC oMKgwqDCoMKgICogc3VyZSB0aGUgb2JqZWN0IGVuY3J5cHRpb24gY2FuIGJlIHVzZWQuCj4+ICvC oMKgwqDCoMKgwqDCoMKgICogV2Ugb25seSBuZWVkIHRvIGRvIHRoaXMgd2hlbiB0aGUgb2JqZWN0 IGlzIGZpcnN0IHVzZWQgd2l0aAo+PiArwqDCoMKgwqDCoMKgwqDCoCAqIHRoaXMgY29udGV4dCwg YmVjYXVzZSB0aGUgY29udGV4dCBpdHNlbGYgd2lsbCBiZSBiYW5uZWQgd2hlbgo+PiArwqDCoMKg wqDCoMKgwqDCoCAqIHRoZSBwcm90ZWN0ZWQgb2JqZWN0cyBiZWNvbWUgaW52YWxpZC4KPj4gK8Kg wqDCoMKgwqDCoMKgwqAgKi8KPj4gK8KgwqDCoMKgwqDCoMKgIGlmIChpOTE1X2dlbV9jb250ZXh0 X3VzZXNfcHJvdGVjdGVkX2NvbnRlbnQoZWItPmdlbV9jb250ZXh0KSAmJgo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBpOTE1X2dlbV9vYmplY3RfaXNfcHJvdGVjdGVkKG9iaikpIHsKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFpbnRlbF9weHBfaXNfYWN0aXZlKCZ2bS0+Z3QtPnB4 cCkpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIEVSUl9QVFIoLUVO T0RFVik7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICghaTkxNV9nZW1fb2JqZWN0X2hh c192YWxpZF9wcm90ZWN0aW9uKG9iaikpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgcmV0dXJuIEVSUl9QVFIoLUVJTyk7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICsKPj4gwqDC oMKgwqDCoMKgwqDCoMKgIHZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9iaiwgdm0sIE5VTEwpOwo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKElTX0VSUih2bWEpKSB7Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYyAKPj4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmMKPj4gaW5kZXggZWE3NGNiY2E5NWJlLi44 MGNjZWZkNjQxZTggMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9vYmplY3QuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f b2JqZWN0LmMKPj4gQEAgLTI1LDYgKzI1LDcgQEAKPj4gwqAgI2luY2x1ZGUgPGxpbnV4L3NjaGVk L21tLmg+Cj4+IMKgIMKgICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2Zyb250YnVmZmVyLmgiCj4+ ICsjaW5jbHVkZSAicHhwL2ludGVsX3B4cC5oIgo+PiDCoCAjaW5jbHVkZSAiaTkxNV9kcnYuaCIK Pj4gwqAgI2luY2x1ZGUgImk5MTVfZ2VtX2NsZmx1c2guaCIKPj4gwqAgI2luY2x1ZGUgImk5MTVf Z2VtX2NvbnRleHQuaCIKPj4gQEAgLTcwLDYgKzcxLDggQEAgdm9pZCBpOTE1X2dlbV9vYmplY3Rf aW5pdChzdHJ1Y3QgCj4+IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPj4gwqDCoMKgwqDCoCBJ TklUX0xJU1RfSEVBRCgmb2JqLT5sdXRfbGlzdCk7Cj4+IMKgwqDCoMKgwqAgc3Bpbl9sb2NrX2lu aXQoJm9iai0+bHV0X2xvY2spOwo+PiDCoCArwqDCoMKgIElOSVRfTElTVF9IRUFEKCZvYmotPnB4 cF9saW5rKTsKPj4gKwo+PiDCoMKgwqDCoMKgIHNwaW5fbG9ja19pbml0KCZvYmotPm1tby5sb2Nr KTsKPj4gwqDCoMKgwqDCoCBvYmotPm1tby5vZmZzZXRzID0gUkJfUk9PVDsKPj4gwqAgQEAgLTIz Miw2ICsyMzUsOSBAQCBzdGF0aWMgdm9pZCBfX2k5MTVfZ2VtX2ZyZWVfb2JqZWN0cyhzdHJ1Y3Qg Cj4+IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHNwaW5fdW5sb2NrKCZvYmotPnZtYS5sb2NrKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4g wqAgK8KgwqDCoMKgwqDCoMKgIGlmIChpOTE1X2dlbV9vYmplY3RfaGFzX3ZhbGlkX3Byb3RlY3Rp b24ob2JqKSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50ZWxfcHhwX29iamVjdF9yZW1v dmUob2JqKTsKPj4gKwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgX19pOTE1X2dlbV9vYmplY3RfZnJl ZV9tbWFwcyhvYmopOwo+PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqAgR0VNX0JVR19PTighbGlzdF9l bXB0eSgmb2JqLT5sdXRfbGlzdCkpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9vYmplY3QuaAo+PiBpbmRleCAyZWJkNzk1MzdhZWEuLjYxYjEwMTU2MDM1MiAxMDA2 NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuaAo+PiBAQCAt Mjg4LDYgKzI4OCwxOCBAQCBpOTE1X2dlbV9vYmplY3RfbmV2ZXJfbW1hcChjb25zdCBzdHJ1Y3Qg Cj4+IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPj4gwqDCoMKgwqDCoCByZXR1cm4gaTkxNV9n ZW1fb2JqZWN0X3R5cGVfaGFzKG9iaiwgSTkxNV9HRU1fT0JKRUNUX05PX01NQVApOwo+PiDCoCB9 Cj4+IMKgICtzdGF0aWMgaW5saW5lIGJvb2wKPj4gK2k5MTVfZ2VtX29iamVjdF9pc19wcm90ZWN0 ZWQoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPj4gK3sKPj4gK8KgwqDC oCByZXR1cm4gb2JqLT51c2VyX2ZsYWdzICYgSTkxNV9HRU1fT0JKRUNUX1BST1RFQ1RFRDsKPj4g K30KPj4gKwo+PiArc3RhdGljIGlubGluZSBib29sCj4+ICtpOTE1X2dlbV9vYmplY3RfaGFzX3Zh bGlkX3Byb3RlY3Rpb24oY29uc3Qgc3RydWN0IAo+PiBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmop Cj4+ICt7Cj4+ICvCoMKgwqAgcmV0dXJuIGk5MTVfZ2VtX29iamVjdF9pc19wcm90ZWN0ZWQob2Jq KSAmJiAKPj4gIWxpc3RfZW1wdHkoJm9iai0+cHhwX2xpbmspOwo+PiArfQo+PiArCj4+IMKgIHN0 YXRpYyBpbmxpbmUgYm9vbAo+PiDCoCBpOTE1X2dlbV9vYmplY3RfaXNfZnJhbWVidWZmZXIoY29u c3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPj4gwqAgewo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oIAo+PiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAo+PiBpbmRl eCA4ZTQ4NWNiMzM0M2MuLjBkNGJkMjc0NzM3NSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAo+PiBAQCAtMTY3LDYgKzE2Nywx MSBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCB7Cj4+IMKgwqDCoMKgwqAgfSBtbW87Cj4+ IMKgIMKgwqDCoMKgwqAgSTkxNV9TRUxGVEVTVF9ERUNMQVJFKHN0cnVjdCBsaXN0X2hlYWQgc3Rf bGluayk7Cj4+ICvCoMKgwqAgLyoqCj4+ICvCoMKgwqDCoCAqIEB1c2VyX2ZsYWdzOiBzbWFsbCBz ZXQgb2YgYm9vbGVhbnMgc2V0IGJ5IHRoZSB1c2VyCj4+ICvCoMKgwqDCoCAqLwo+PiArwqDCoMKg IHVuc2lnbmVkIGxvbmcgdXNlcl9mbGFnczsKPj4gKyNkZWZpbmUgSTkxNV9HRU1fT0JKRUNUX1BS T1RFQ1RFRCBCSVQoMCkKPj4gwqAgwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIGZsYWdzOwo+PiDC oCAjZGVmaW5lIEk5MTVfQk9fQUxMT0NfQ09OVElHVU9VUyBCSVQoMCkKPj4gQEAgLTI4Niw2ICsy OTEsMTQgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qgewo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgYm9vbCBkaXJ0eToxOwo+PiDCoMKgwqDCoMKgIH0gbW07Cj4+IMKgICvCoMKgwqAgLyoKPj4g K8KgwqDCoMKgICogV2hlbiB0aGUgUFhQIHNlc3Npb24gaXMgaW52YWxpZGF0ZWQsIHdlIG5lZWQg dG8gbWFyayBhbGwgCj4+IHByb3RlY3RlZAo+PiArwqDCoMKgwqAgKiBvYmplY3RzIGFzIGludmFs aWQuIFRvIGVhc2lseSBkbyBzbyB3ZSBhZGQgdGhlbSBhbGwgdG8gYSAKPj4gbGlzdC4gVGhlCj4+ ICvCoMKgwqDCoCAqIHByZXNlbmNlIG9uIHRoZSBsaXN0IGlzIHVzZWQgdG8gY2hlY2sgaWYgdGhl IGVuY3J5cHRpb24gaXMgCj4+IHZhbGlkIG9yCj4+ICvCoMKgwqDCoCAqIG5vdC4KPj4gK8KgwqDC oMKgICovCj4+ICvCoMKgwqAgc3RydWN0IGxpc3RfaGVhZCBweHBfbGluazsKPj4gKwo+PiDCoMKg wqDCoMKgIC8qKiBSZWNvcmQgb2YgYWRkcmVzcyBiaXQgMTcgb2YgZWFjaCBwYWdlIGF0IGxhc3Qg dW5iaW5kLiAqLwo+PiDCoMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcgKmJpdF8xNzsKPj4gwqAgZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9weHAuYyAKPj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwLmMKPj4gaW5kZXggY2JjNTI0OWExYmY5Li43 Zjk5MDJlYWM3ZWMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRl bF9weHAuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwLmMKPj4g QEAgLTY5LDYgKzY5LDkgQEAgdm9pZCBpbnRlbF9weHBfaW5pdChzdHJ1Y3QgaW50ZWxfcHhwICpw eHApCj4+IMKgwqDCoMKgwqAgaWYgKCFIQVNfUFhQKGd0LT5pOTE1KSkKPj4gwqDCoMKgwqDCoMKg wqDCoMKgIHJldHVybjsKPj4gwqAgK8KgwqDCoCBzcGluX2xvY2tfaW5pdCgmcHhwLT5sb2NrKTsK Pj4gK8KgwqDCoCBJTklUX0xJU1RfSEVBRCgmcHhwLT5wcm90ZWN0ZWRfb2JqZWN0cyk7Cj4+ICsK Pj4gwqDCoMKgwqDCoCAvKgo+PiDCoMKgwqDCoMKgwqAgKiB3ZSdsbCB1c2UgdGhlIGNvbXBsZXRp b24gdG8gY2hlY2sgaWYgdGhlcmUgaXMgYSB0ZXJtaW5hdGlvbiAKPj4gcGVuZGluZywKPj4gwqDC oMKgwqDCoMKgICogc28gd2Ugc3RhcnQgaXQgYXMgY29tcGxldGVkIGFuZCB3ZSByZWluaXQgaXQg d2hlbiBhIHRlcm1pbmF0aW9uCj4+IEBAIC0xNzMsMTEgKzE3Niw0OSBAQCB2b2lkIGludGVsX3B4 cF9maW5pX2h3KHN0cnVjdCBpbnRlbF9weHAgKnB4cCkKPj4gwqDCoMKgwqDCoCBpbnRlbF9weHBf aXJxX2Rpc2FibGUocHhwKTsKPj4gwqAgfQo+PiDCoCAraW50IGludGVsX3B4cF9vYmplY3RfYWRk KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4+ICt7Cj4+ICvCoMKgwqAgc3RydWN0 IGludGVsX3B4cCAqcHhwID0gJnRvX2k5MTUob2JqLT5iYXNlLmRldiktPmd0LnB4cDsKPj4gKwo+ PiArwqDCoMKgIGlmICghaW50ZWxfcHhwX2lzX2VuYWJsZWQocHhwKSkKPj4gK8KgwqDCoMKgwqDC oMKgIHJldHVybiAtRU5PREVWOwo+PiArCj4+ICvCoMKgwqAgaWYgKCFsaXN0X2VtcHR5KCZvYmot PnB4cF9saW5rKSkKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAtRUVYSVNUOwo+PiArCj4+ICvC oMKgwqAgc3Bpbl9sb2NrX2lycSgmcHhwLT5sb2NrKTsKPj4gK8KgwqDCoCBsaXN0X2FkZCgmb2Jq LT5weHBfbGluaywgJnB4cC0+cHJvdGVjdGVkX29iamVjdHMpOwo+PiArwqDCoMKgIHNwaW5fdW5s b2NrX2lycSgmcHhwLT5sb2NrKTsKPj4gKwo+PiArwqDCoMKgIHJldHVybiAwOwo+PiArfQo+PiAr Cj4+ICt2b2lkIGludGVsX3B4cF9vYmplY3RfcmVtb3ZlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopCj4+ICt7Cj4+ICvCoMKgwqAgc3RydWN0IGludGVsX3B4cCAqcHhwID0gJnRvX2k5 MTUob2JqLT5iYXNlLmRldiktPmd0LnB4cDsKPj4gKwo+PiArwqDCoMKgIGlmICghaW50ZWxfcHhw X2lzX2VuYWJsZWQocHhwKSkKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybjsKPj4gKwo+PiArwqDC oMKgIHNwaW5fbG9ja19pcnEoJnB4cC0+bG9jayk7Cj4+ICvCoMKgwqAgbGlzdF9kZWxfaW5pdCgm b2JqLT5weHBfbGluayk7Cj4+ICvCoMKgwqAgc3Bpbl91bmxvY2tfaXJxKCZweHAtPmxvY2spOwo+ PiArfQo+PiArCj4+IMKgIHZvaWQgaW50ZWxfcHhwX2ludmFsaWRhdGUoc3RydWN0IGludGVsX3B4 cCAqcHhwKQo+PiDCoCB7Cj4+IMKgwqDCoMKgwqAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUgPSBweHBfdG9fZ3QocHhwKS0+aTkxNTsKPj4gK8KgwqDCoCBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLCAqdG1wOwo+PiDCoMKgwqDCoMKgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICpjdHgsICpjbjsKPj4gwqAgK8KgwqDCoCAvKiBkZWxldGUgb2JqZWN0cyB0aGF0IGhhdmUgYmVl biB1c2VkIHdpdGggdGhlIGludmFsaWRhdGVkIAo+PiBzZXNzaW9uICovCj4+ICvCoMKgwqAgc3Bp bl9sb2NrX2lycSgmcHhwLT5sb2NrKTsKPj4gK8KgwqDCoCBsaXN0X2Zvcl9lYWNoX2VudHJ5X3Nh ZmUob2JqLCB0bXAsICZweHAtPnByb3RlY3RlZF9vYmplY3RzLCAKPj4gcHhwX2xpbmspIHsKPj4g K8KgwqDCoMKgwqDCoMKgIGlmIChpOTE1X2dlbV9vYmplY3RfaGFzX3BhZ2VzKG9iaikpCj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxpc3RfZGVsX2luaXQoJm9iai0+cHhwX2xpbmspOwo+PiAr wqDCoMKgIH0KPj4gK8KgwqDCoCBzcGluX3VubG9ja19pcnEoJnB4cC0+bG9jayk7Cj4+ICsKPj4g wqDCoMKgwqDCoCAvKiBiYW4gYWxsIGNvbnRleHRzIG1hcmtlZCBhcyBwcm90ZWN0ZWQgKi8KPj4g wqDCoMKgwqDCoCBzcGluX2xvY2tfaXJxKCZpOTE1LT5nZW0uY29udGV4dHMubG9jayk7Cj4+IMKg wqDCoMKgwqAgbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGN0eCwgY24sICZpOTE1LT5nZW0uY29u dGV4dHMubGlzdCwgCj4+IGxpbmspIHsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3B4cC9pbnRlbF9weHAuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxf cHhwLmgKPj4gaW5kZXggOTFjMWEyMDU2MzA5Li4xOTRiMDAxNDkyNDcgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9weHAuaAo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwLmgKPj4gQEAgLTksNiArOSw4IEBACj4+IMKgICNpbmNs dWRlICJndC9pbnRlbF9ndF90eXBlcy5oIgo+PiDCoCAjaW5jbHVkZSAiaW50ZWxfcHhwX3R5cGVz LmgiCj4+IMKgICtzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKPj4gKwo+PiDCoCBzdGF0aWMg aW5saW5lIHN0cnVjdCBpbnRlbF9ndCAqcHhwX3RvX2d0KGNvbnN0IHN0cnVjdCBpbnRlbF9weHAg KnB4cCkKPj4gwqAgewo+PiDCoMKgwqDCoMKgIHJldHVybiBjb250YWluZXJfb2YocHhwLCBzdHJ1 Y3QgaW50ZWxfZ3QsIHB4cCk7Cj4+IEBAIC0zMyw2ICszNSw5IEBAIHZvaWQgaW50ZWxfcHhwX2Zp bmlfaHcoc3RydWN0IGludGVsX3B4cCAqcHhwKTsKPj4gwqAgwqAgdm9pZCBpbnRlbF9weHBfbWFy a190ZXJtaW5hdGlvbl9pbl9wcm9ncmVzcyhzdHJ1Y3QgaW50ZWxfcHhwICpweHApOwo+PiDCoCBp bnQgaW50ZWxfcHhwX3dhaXRfZm9yX2FyYl9zdGFydChzdHJ1Y3QgaW50ZWxfcHhwICpweHApOwo+ PiArCj4+ICtpbnQgaW50ZWxfcHhwX29iamVjdF9hZGQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaik7Cj4+ICt2b2lkIGludGVsX3B4cF9vYmplY3RfcmVtb3ZlKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmopOwo+PiDCoCB2b2lkIGludGVsX3B4cF9pbnZhbGlkYXRlKHN0cnVj dCBpbnRlbF9weHAgKnB4cCk7Cj4+IMKgICNlbHNlCj4+IMKgIHN0YXRpYyBpbmxpbmUgdm9pZCBp bnRlbF9weHBfaW5pdChzdHJ1Y3QgaW50ZWxfcHhwICpweHApCj4+IEBAIC00Nyw2ICs1MiwxNCBA QCBzdGF0aWMgaW5saW5lIGludCAKPj4gaW50ZWxfcHhwX3dhaXRfZm9yX2FyYl9zdGFydChzdHJ1 Y3QgaW50ZWxfcHhwICpweHApCj4+IMKgIHsKPj4gwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4gwqAg fQo+PiArCj4+ICtzdGF0aWMgaW5saW5lIGludCBpbnRlbF9weHBfb2JqZWN0X2FkZChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+PiArewo+PiArwqDCoMKgIHJldHVybiAwOwo+PiAr fQo+PiArc3RhdGljIGlubGluZSB2b2lkIGludGVsX3B4cF9vYmplY3RfcmVtb3ZlKHN0cnVjdCAK Pj4gZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+PiArewo+PiArfQo+PiDCoCAjZW5kaWYKPj4g wqAgwqAgI2VuZGlmIC8qIF9fSU5URUxfUFhQX0hfXyAqLwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cF90eXBlcy5oIAo+PiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3B4cC9pbnRlbF9weHBfdHlwZXMuaAo+PiBpbmRleCA2YzkyNjVmYjhlNGIuLjY2NTcw NGQ3NzkzZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4 cF90eXBlcy5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9weHBfdHlw ZXMuaAo+PiBAQCAtNyw4ICs3LDEwIEBACj4+IMKgICNkZWZpbmUgX19JTlRFTF9QWFBfVFlQRVNf SF9fCj4+IMKgIMKgICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+Cj4+ICsjaW5jbHVkZSA8 bGludXgvbGlzdC5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KPj4gwqAgI2luY2x1 ZGUgPGxpbnV4L211dGV4Lmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KPj4gwqAg I2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgo+PiDCoCDCoCBzdHJ1Y3QgaW50ZWxfY29udGV4 dDsKPj4gQEAgLTMzLDYgKzM1LDkgQEAgc3RydWN0IGludGVsX3B4cCB7Cj4+IMKgwqDCoMKgwqAg dTMyIHNlc3Npb25fZXZlbnRzOyAvKiBwcm90ZWN0ZWQgd2l0aCBndC0+aXJxX2xvY2sgKi8KPj4g wqAgI2RlZmluZSBQWFBfVEVSTUlOQVRJT05fUkVRVUVTVMKgIEJJVCgwKQo+PiDCoCAjZGVmaW5l IFBYUF9URVJNSU5BVElPTl9DT01QTEVURSBCSVQoMSkKPj4gKwo+PiArwqDCoMKgIHNwaW5sb2Nr X3QgbG9jazsgLyogcHJvdGVjdHMgdGhlIG9iamVjdHMgbGlzdCAqLwo+PiArwqDCoMKgIHN0cnVj dCBsaXN0X2hlYWQgcHJvdGVjdGVkX29iamVjdHM7Cj4+IMKgIH07Cj4+IMKgIMKgICNlbmRpZiAv KiBfX0lOVEVMX1BYUF9UWVBFU19IX18gKi8KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9k cm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+PiBpbmRleCBkNWU1 MDIyNjlhNTUuLjQyMDQxMmMwODc0NSAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9p OTE1X2RybS5oCj4+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+PiBAQCAtMTc1 Niw2ICsxNzU2LDI2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X3BhcmFtIHsKPj4gwqDC oCAqLwo+PiDCoCAjZGVmaW5lIEk5MTVfT0JKRUNUX1BBUkFNwqAgKDF1bGwgPDwgMzIpCj4+IMKg ICsvKgo+PiArICogSTkxNV9PQkpFQ1RfUEFSQU1fUFJPVEVDVEVEX0NPTlRFTlQ6Cj4+ICsgKgo+ PiArICogSWYgc2V0IHRvIHRydWUsIGJ1ZmZlciBjb250ZW50cyBpcyBleHBlY3RlZCB0byBiZSBw cm90ZWN0ZWQgYnkgUFhQCj4+ICsgKiBlbmNyeXB0aW9uIGFuZCByZXF1aXJlcyBkZWNyeXB0aW9u IGZvciBzY2FuIG91dCBhbmQgcHJvY2Vzc2luZy4gCj4+IFRoaXMgaXMKPj4gKyAqIG9ubHkgcG9z c2libGUgb24gcGxhdGZvcm1zIHRoYXQgaGF2ZSBQWFAgZW5hYmxlZCwgb24gYWxsIG90aGVyIAo+ PiBzY2VuYXJpb3MKPj4gKyAqIHNldHRpbmcgdGhpcyBmbGFnIHdpbGwgY2F1c2UgdGhlIGlvY3Rs IHRvIGZhaWwgYW5kIHJldHVybiAtRU5PREVWLgo+PiArICoKPj4gKyAqIFRoZSBidWZmZXIgY29u dGVudHMgYXJlIGNvbnNpZGVyZWQgaW52YWxpZCBhZnRlciBhIFBYUCBzZXNzaW9uIAo+PiB0ZWFy ZG93bi4KPj4gKyAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBwcm90ZWN0ZWQgYnVmZmVycyBv bmx5IHdpdGggY29udGV4dHMgCj4+IGNyZWF0ZWQKPj4gKyAqIHVzaW5nIHRoZSBJOTE1X0NPTlRF WFRfUEFSQU1fUFJPVEVDVEVEX0NPTlRFTlQgZmxhZywgYXMgdGhhdCB3aWxsIAo+PiBlbmFibGUK Pj4gKyAqIGV4dHJhIGNoZWNrcyBhdCBzdWJtaXNzaW9uIHRpbWUgb24gdGhlIHZhbGlkaXR5IG9m IHRoZSBvYmplY3RzIAo+PiBpbnZvbHZlZCwKPj4gKyAqIHdoaWNoIGNhbiBsZWFkIHRvIHRoZSBm b2xsb3dpbmcgZXJyb3JzOgo+PiArICoKPj4gKyAqIC1FTk9ERVY6IFBYUCBzZXNzaW9uIG5vdCBj dXJyZW50bHkgYWN0aXZlCj4+ICsgKiAtRUlPOiBidWZmZXIgaGFzIGJlY29tZSBpbnZhbGlkIGFm dGVyIGEgdGVhcmRvd24gZXZlbnQKPgo+Cj4gSSB3YXMgYSBiaXQgY29uZnVzZWQgb24gcmVhZGlu ZyB0aG9zZSBjb21tZW50cy4gTWF5YmUgd2Ugc2hvdWxkIAo+IHNwZWNpZnkgd2hlbiB0aGV5IGFw cGx5Lgo+Cj4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IHlvdSBjYW4gZ2V0IC1FTk9ERVYgb24g b2JqZWN0IGNyZWF0aW9uLCB3aGlsZSAKPiAtRUlPIGhhcHBlbnMgYXQgZXhlY2J1ZmZlciB0aW1l Lgo+Cj4gRGlkIEkgZ2V0IHRoaXMgcmlnaHQ/Cj4KCkJvdGggb2YgdGhlbSBhcHBseSB0byBleGVj YnVmLiAtRU5PREVWIGNvdmVycyB0aGUgY2FzZSB3aGVyZSB0aGUgc2Vzc2lvbiAKaGFzIGJlZW4g aW52YWxpZGF0ZWQgKGkuZS4gUFhQIG5vdCBjb25zaWRlcmVkIGN1cnJlbnRseSBhY3RpdmUpIGJ1 dCB3ZSAKYXJlIHN0aWxsIHByb2Nlc3NpbmcgdGhlIGV2ZW50LCBzbyB0aGUgb2JqZWN0IGhhc24n dCBiZWVuIG1hcmtlZCBhcyAKaW52YWxpZCB5ZXQuCkl0IGlzIHRydWUgaG93ZXZlciB0aGF0IC1F Tk9ERVYgY2FuIGNvbWUgZnJvbSBvYmplY3QgY3JlYXRpb24gYXMgd2VsbCBpZiAKdGhlIHBsYXRm b3JtIGRvZXMgbm90IHN1cHBvcnQgUFhQLCBzbyBJJ2xsIG1ha2UgdGhlIGRpc3RpbmN0aW9uIGNs ZWFyLgoKRGFuaWVsZQoKPgo+IC1MaW9uZWwKPgo+Cj4+ICsgKi8KPj4gKyNkZWZpbmUgSTkxNV9P QkpFQ1RfUEFSQU1fUFJPVEVDVEVEX0NPTlRFTlTCoCAweDAKPj4gKy8qIE11c3QgYmUga2VwdCBj b21wYWN0IC0tIG5vIGhvbGVzIGFuZCB3ZWxsIGRvY3VtZW50ZWQgKi8KPj4gKwo+PiDCoMKgwqDC oMKgIF9fdTY0IHBhcmFtOwo+PiDCoCDCoMKgwqDCoMKgIC8qIERhdGEgdmFsdWUgb3IgcG9pbnRl ciAqLwo+Cj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=