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=-7.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS 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 0F35EC282C4 for ; Sat, 9 Feb 2019 23:53:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A3B7D20874 for ; Sat, 9 Feb 2019 23:53:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=fb.com header.i=@fb.com header.b="jzMy9W6V"; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.i=@fb.onmicrosoft.com header.b="hUoz4dEJ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727012AbfBIXxA (ORCPT ); Sat, 9 Feb 2019 18:53:00 -0500 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:60634 "EHLO mx0b-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726940AbfBIXw7 (ORCPT ); Sat, 9 Feb 2019 18:52:59 -0500 Received: from pps.filterd (m0109332.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x19NmfTL008042; Sat, 9 Feb 2019 15:52:42 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=facebook; bh=/9hgGlF7R5Lspm4E7ofy+bWkvnJreCqyOgIfKW6CUq4=; b=jzMy9W6VeELfoh2vrN3slUJPH3m6iGCZuv8jUVtTYr+Sssz0Kwuieqsck6NqK0qonN0O N4jgGo+9EyMRAlp0ETDyuYxoxYvh784cpb68038z6FNNVuo9b66kvq/S8cbg5zhfWjXP er5wVuoQURtbyvwsfI/lId0oWP9+4id0ebw= Received: from maileast.thefacebook.com ([199.201.65.23]) by mx0a-00082601.pphosted.com with ESMTP id 2qhwfs98ry-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 09 Feb 2019 15:52:42 -0800 Received: from frc-mbx05.TheFacebook.com (2620:10d:c0a1:f82::29) by frc-hub03.TheFacebook.com (2620:10d:c021:18::173) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1531.3; Sat, 9 Feb 2019 15:52:41 -0800 Received: from frc-hub05.TheFacebook.com (2620:10d:c021:18::175) by frc-mbx05.TheFacebook.com (2620:10d:c0a1:f82::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1531.3; Sat, 9 Feb 2019 15:52:41 -0800 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (192.168.183.28) by o365-in.thefacebook.com (192.168.177.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1531.3 via Frontend Transport; Sat, 9 Feb 2019 15:52:40 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/9hgGlF7R5Lspm4E7ofy+bWkvnJreCqyOgIfKW6CUq4=; b=hUoz4dEJaVFjeqr8KqHQoBXs9ltDl1TvuzpMShurmCWNgTMNi778zWDwzVegp9dP7ENzpay0lmvcrfvePeNKhwbTvBefAgevLgcWXNzHu/YUzPu0PSrFQIqqDSL6CheMyFMKZcm1sWysoDB2kVPYmgjS518djz8WPedZxYyft84= Received: from MWHPR15MB1262.namprd15.prod.outlook.com (10.175.3.12) by MWHPR15MB1662.namprd15.prod.outlook.com (10.175.140.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1601.22; Sat, 9 Feb 2019 23:52:24 +0000 Received: from MWHPR15MB1262.namprd15.prod.outlook.com ([fe80::703f:eaff:db39:8917]) by MWHPR15MB1262.namprd15.prod.outlook.com ([fe80::703f:eaff:db39:8917%12]) with mapi id 15.20.1580.019; Sat, 9 Feb 2019 23:52:24 +0000 From: Matt Mullins To: "linux-block@vger.kernel.org" , "linux-aio@kvack.org" , "linux-api@vger.kernel.org" , "axboe@kernel.dk" CC: "hch@lst.de" , "jannh@google.com" , "viro@ZenIV.linux.org.uk" , "avi@scylladb.com" , "jmoyer@redhat.com" Subject: Re: [PATCH 14/19] io_uring: add file set registration Thread-Topic: [PATCH 14/19] io_uring: add file set registration Thread-Index: AQHUwM/0fh2Z921lO06WBDHNTwaP2aXYI18A Date: Sat, 9 Feb 2019 23:52:24 +0000 Message-ID: References: <20190209211346.26060-1-axboe@kernel.dk> <20190209211346.26060-15-axboe@kernel.dk> In-Reply-To: <20190209211346.26060-15-axboe@kernel.dk> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Evolution 3.28.5-0ubuntu0.18.04.1 x-originating-ip: [2620:10d:c090:180::1:9ce8] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;MWHPR15MB1662;20:uXMR03enScJMmC/FVfCXn4HaPdxyjCKUzmAmDhgJoxEf091oQD8PpOxovREDUomh/jKxUNE4Q1xbvXEC8UPHz86snIhyck0UzdkyUoqllgXM9uyBjNmY34r9dEYCtFfZxq5wO0PWm5p/NGNjViE+s38B6fu07aZcYY0IvMgIm8Q= x-ms-office365-filtering-correlation-id: 37ae59e3-f6a0-4081-5125-08d68ee9a3fb x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605077)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);SRVR:MWHPR15MB1662; x-ms-traffictypediagnostic: MWHPR15MB1662: x-microsoft-antispam-prvs: x-forefront-prvs: 09435FCA72 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(396003)(366004)(39860400002)(346002)(376002)(136003)(189003)(199004)(43544003)(105586002)(81156014)(8676002)(81166006)(8936002)(36756003)(2906002)(7736002)(305945005)(86362001)(71200400001)(71190400001)(50226002)(106356001)(476003)(30864003)(2616005)(6116002)(46003)(486006)(102836004)(6506007)(186003)(2201001)(11346002)(446003)(4326008)(229853002)(76176011)(68736007)(6486002)(14444005)(6436002)(14454004)(25786009)(256004)(6246003)(97736004)(53946003)(54906003)(118296001)(110136005)(53936002)(6512007)(2501003)(316002)(99286004)(478600001)(45080400002)(99106002)(579004);DIR:OUT;SFP:1102;SCL:1;SRVR:MWHPR15MB1662;H:MWHPR15MB1262.namprd15.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: fb.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: yOJVbj+o9yOi8/AAcnoYA8244K8B7q8ZsMv6ZF/mqAnM27DwNIfEAPO0c76pVah89ShWF7gjmbYLWOxjpX+4h9U759qrF1CqOREppzCW/QzMJo34J2Tc68hsUkcjnGyjAxC6WIboTWWkT4Kdzib0E+vTHj5XShwXj3UBDQu3e/amPfqSupC7PwezSvJHyxPb9N2UUYp/2vdaskc+KPkrfTFXUBupURk9aAGf8j82peZtgBgf2D8Ecfkx8ufFZGHisW8VktY7bTMwLcMjulInd29A42sWsUoPZov0SUfE0twZXd+7vfOt4I1EkXWJ6W1c4TGN6qIGU6TsYciRiNyD4DFEYrAcQKa4K8IkW/NUjCJV/ezR3y0CI4CBznZT/ehiPUYk+6985shqLGh24PWqpStwcd5A5NAZHHUiAi9vJCQ= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 37ae59e3-f6a0-4081-5125-08d68ee9a3fb X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2019 23:52:24.7523 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR15MB1662 X-OriginatorOrg: fb.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-02-09_21:,, signatures=0 X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org T24gU2F0LCAyMDE5LTAyLTA5IGF0IDE0OjEzIC0wNzAwLCBKZW5zIEF4Ym9lIHdyb3RlOg0KPiBX ZSBub3JtYWxseSBoYXZlIHRvIGZnZXQvZnB1dCBmb3IgZWFjaCBJTyB3ZSBkbyBvbiBhIGZpbGUu IEV2ZW4gd2l0aA0KPiB0aGUgYmF0Y2hpbmcgd2UgZG8sIHRoZSBjb3N0IG9mIHRoZSBhdG9taWMg aW5jL2RlYyBvZiB0aGUgZmlsZSB1c2FnZQ0KPiBjb3VudCBhZGRzIHVwLg0KPiANCj4gVGhpcyBh ZGRzIElPUklOR19SRUdJU1RFUl9GSUxFUywgYW5kIElPUklOR19VTlJFR0lTVEVSX0ZJTEVTIG9w Y29kZXMNCj4gZm9yIHRoZSBpb191cmluZ19yZWdpc3RlcigyKSBzeXN0ZW0gY2FsbC4gVGhlIGFy Z3VtZW50cyBwYXNzZWQgaW4gbXVzdA0KPiBiZSBhbiBhcnJheSBvZiBfX3MzMiBob2xkaW5nIGZp bGUgZGVzY3JpcHRvcnMsIGFuZCBucl9hcmdzIHNob3VsZCBob2xkDQo+IHRoZSBudW1iZXIgb2Yg ZmlsZSBkZXNjcmlwdG9ycyB0aGUgYXBwbGljYXRpb24gd2lzaGVzIHRvIHBpbiBmb3IgdGhlDQo+ IGR1cmF0aW9uIG9mIHRoZSBpb191cmluZyBpbnN0YW5jZSAob3IgdW50aWwgSU9SSU5HX1VOUkVH SVNURVJfRklMRVMgaXMNCj4gY2FsbGVkKS4NCj4gDQo+IFdoZW4gdXNlZCwgdGhlIGFwcGxpY2F0 aW9uIG11c3Qgc2V0IElPU1FFX0ZJWEVEX0ZJTEUgaW4gdGhlIHNxZS0+ZmxhZ3MNCj4gbWVtYmVy LiBUaGVuLCBpbnN0ZWFkIG9mIHNldHRpbmcgc3FlLT5mZCB0byB0aGUgcmVhbCBmZCwgaXQgc2V0 cyBzcWUtPmZkDQo+IHRvIHRoZSBpbmRleCBpbiB0aGUgYXJyYXkgcGFzc2VkIGluIHRvIElPUklO R19SRUdJU1RFUl9GSUxFUy4NCj4gDQo+IEZpbGVzIGFyZSBhdXRvbWF0aWNhbGx5IHVucmVnaXN0 ZXJlZCB3aGVuIHRoZSBpb191cmluZyBpbnN0YW5jZSBpcyB0b3JuDQo+IGRvd24uIEFuIGFwcGxp Y2F0aW9uIG5lZWQgb25seSB1bnJlZ2lzdGVyIGlmIGl0IHdpc2hlcyB0byByZWdpc3RlciBhIG5l dw0KPiBzZXQgb2YgZmRzLg0KPiANCj4gUmV2aWV3ZWQtYnk6IEhhbm5lcyBSZWluZWNrZSA8aGFy ZUBzdXNlLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogSmVucyBBeGJvZSA8YXhib2VAa2VybmVsLmRr Pg0KPiAtLS0NCj4gIGZzL2lvX3VyaW5nLmMgICAgICAgICAgICAgICAgIHwgMjY5ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0NCj4gIGluY2x1ZGUvdWFwaS9saW51eC9pb191cmlu Zy5oIHwgICA5ICstDQo+ICAyIGZpbGVzIGNoYW5nZWQsIDI0NSBpbnNlcnRpb25zKCspLCAzMyBk ZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9mcy9pb191cmluZy5jIGIvZnMvaW9fdXJp bmcuYw0KPiBpbmRleCAwOWEzMTIyYjNiNmMuLmM0MGE3ZWQyZWRkNSAxMDA2NDQNCj4gLS0tIGEv ZnMvaW9fdXJpbmcuYw0KPiArKysgYi9mcy9pb191cmluZy5jDQo+IEBAIC0yOSw2ICsyOSw3IEBA DQo+ICAjaW5jbHVkZSA8bGludXgvbmV0Lmg+DQo+ICAjaW5jbHVkZSA8bmV0L3NvY2suaD4NCj4g ICNpbmNsdWRlIDxuZXQvYWZfdW5peC5oPg0KPiArI2luY2x1ZGUgPG5ldC9zY20uaD4NCj4gICNp bmNsdWRlIDxsaW51eC9hbm9uX2lub2Rlcy5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4L3NjaGVkL21t Lmg+DQo+ICAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPg0KPiBAQCAtNDEsNiArNDIsNyBAQA0K PiAgI2luY2x1ZGUgImludGVybmFsLmgiDQo+ICANCj4gICNkZWZpbmUgSU9SSU5HX01BWF9FTlRS SUVTCTQwOTYNCj4gKyNkZWZpbmUgSU9SSU5HX01BWF9GSVhFRF9GSUxFUwkxMDI0DQo+ICANCj4g IHN0cnVjdCBpb191cmluZyB7DQo+ICAJdTMyIGhlYWQgX19fX2NhY2hlbGluZV9hbGlnbmVkX2lu X3NtcDsNCj4gQEAgLTEwMyw2ICsxMDUsMTQgQEAgc3RydWN0IGlvX3JpbmdfY3R4IHsNCj4gIAkJ c3RydWN0IGZhc3luY19zdHJ1Y3QJKmNxX2Zhc3luYzsNCj4gIAl9IF9fX19jYWNoZWxpbmVfYWxp Z25lZF9pbl9zbXA7DQo+ICANCj4gKwkvKg0KPiArCSAqIElmIHVzZWQsIGZpeGVkIGZpbGUgc2V0 LiBXcml0ZXJzIG11c3QgZW5zdXJlIHRoYXQgLT5yZWZzIGlzIGRlYWQsDQo+ICsJICogcmVhZGVy cyBtdXN0IGVuc3VyZSB0aGF0IC0+cmVmcyBpcyBhbGl2ZSBhcyBsb25nIGFzIHRoZSBmaWxlKiBp cw0KPiArCSAqIHVzZWQuIE9ubHkgdXBkYXRlZCB0aHJvdWdoIGlvX3VyaW5nX3JlZ2lzdGVyKDIp Lg0KPiArCSAqLw0KPiArCXN0cnVjdCBmaWxlCQkqKnVzZXJfZmlsZXM7DQo+ICsJdW5zaWduZWQJ CW5yX3VzZXJfZmlsZXM7DQo+ICsNCj4gIAkvKiBpZiB1c2VkLCBmaXhlZCBtYXBwZWQgdXNlciBi dWZmZXJzICovDQo+ICAJdW5zaWduZWQJCW5yX3VzZXJfYnVmczsNCj4gIAlzdHJ1Y3QgaW9fbWFw cGVkX3VidWYJKnVzZXJfYnVmczsNCj4gQEAgLTE1MCw2ICsxNjAsNyBAQCBzdHJ1Y3QgaW9fa2lv Y2Igew0KPiAgCXVuc2lnbmVkIGludAkJZmxhZ3M7DQo+ICAjZGVmaW5lIFJFUV9GX0ZPUkNFX05P TkJMT0NLCTEJLyogaW5saW5lIHN1Ym1pc3Npb24gYXR0ZW1wdCAqLw0KPiAgI2RlZmluZSBSRVFf Rl9JT1BPTExfQ09NUExFVEVECTIJLyogcG9sbGVkIElPIGhhcyBjb21wbGV0ZWQgKi8NCj4gKyNk ZWZpbmUgUkVRX0ZfRklYRURfRklMRQk0CS8qIGN0eCBvd25zIGZpbGUgKi8NCj4gIAl1NjQJCQl1 c2VyX2RhdGE7DQo+ICAJdTY0CQkJZXJyb3I7DQo+ICANCj4gQEAgLTM4MCwxNSArMzkxLDE3IEBA IHN0YXRpYyB2b2lkIGlvX2lvcG9sbF9jb21wbGV0ZShzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCwg dW5zaWduZWQgaW50ICpucl9ldmVudHMsDQo+ICAJCSAqIEJhdGNoZWQgcHV0cyBvZiB0aGUgc2Ft ZSBmaWxlLCB0byBhdm9pZCBkaXJ0eWluZyB0aGUNCj4gIAkJICogZmlsZSB1c2FnZSBjb3VudCBt dWx0aXBsZSB0aW1lcywgaWYgYXZvaWRhYmxlLg0KPiAgCQkgKi8NCj4gLQkJaWYgKCFmaWxlKSB7 DQo+IC0JCQlmaWxlID0gcmVxLT5ydy5raV9maWxwOw0KPiAtCQkJZmlsZV9jb3VudCA9IDE7DQo+ IC0JCX0gZWxzZSBpZiAoZmlsZSA9PSByZXEtPnJ3LmtpX2ZpbHApIHsNCj4gLQkJCWZpbGVfY291 bnQrKzsNCj4gLQkJfSBlbHNlIHsNCj4gLQkJCWZwdXRfbWFueShmaWxlLCBmaWxlX2NvdW50KTsN Cj4gLQkJCWZpbGUgPSByZXEtPnJ3LmtpX2ZpbHA7DQo+IC0JCQlmaWxlX2NvdW50ID0gMTsNCj4g KwkJaWYgKCEocmVxLT5mbGFncyAmIFJFUV9GX0ZJWEVEX0ZJTEUpKSB7DQo+ICsJCQlpZiAoIWZp bGUpIHsNCj4gKwkJCQlmaWxlID0gcmVxLT5ydy5raV9maWxwOw0KPiArCQkJCWZpbGVfY291bnQg PSAxOw0KPiArCQkJfSBlbHNlIGlmIChmaWxlID09IHJlcS0+cncua2lfZmlscCkgew0KPiArCQkJ CWZpbGVfY291bnQrKzsNCj4gKwkJCX0gZWxzZSB7DQo+ICsJCQkJZnB1dF9tYW55KGZpbGUsIGZp bGVfY291bnQpOw0KPiArCQkJCWZpbGUgPSByZXEtPnJ3LmtpX2ZpbHA7DQo+ICsJCQkJZmlsZV9j b3VudCA9IDE7DQo+ICsJCQl9DQo+ICAJCX0NCj4gIA0KPiAgCQlpZiAodG9fZnJlZSA9PSBBUlJB WV9TSVpFKHJlcXMpKQ0KPiBAQCAtNTIwLDEzICs1MzMsMTkgQEAgc3RhdGljIHZvaWQga2lvY2Jf ZW5kX3dyaXRlKHN0cnVjdCBraW9jYiAqa2lvY2IpDQo+ICAJfQ0KPiAgfQ0KPiAgDQo+ICtzdGF0 aWMgdm9pZCBpb19mcHV0KHN0cnVjdCBpb19raW9jYiAqcmVxKQ0KPiArew0KPiArCWlmICghKHJl cS0+ZmxhZ3MgJiBSRVFfRl9GSVhFRF9GSUxFKSkNCj4gKwkJZnB1dChyZXEtPnJ3LmtpX2ZpbHAp Ow0KPiArfQ0KPiArDQo+ICBzdGF0aWMgdm9pZCBpb19jb21wbGV0ZV9ydyhzdHJ1Y3Qga2lvY2Ig Kmtpb2NiLCBsb25nIHJlcywgbG9uZyByZXMyKQ0KPiAgew0KPiAgCXN0cnVjdCBpb19raW9jYiAq cmVxID0gY29udGFpbmVyX29mKGtpb2NiLCBzdHJ1Y3QgaW9fa2lvY2IsIHJ3KTsNCj4gIA0KPiAg CWtpb2NiX2VuZF93cml0ZShraW9jYik7DQo+ICANCj4gLQlmcHV0KGtpb2NiLT5raV9maWxwKTsN Cj4gKwlpb19mcHV0KHJlcSk7DQo+ICAJaW9fY3FyaW5nX2FkZF9ldmVudChyZXEtPmN0eCwgcmVx LT51c2VyX2RhdGEsIHJlcywgMCk7DQo+ICAJaW9fZnJlZV9yZXEocmVxKTsNCj4gIH0NCj4gQEAg LTY0MiwxOSArNjYxLDI5IEBAIHN0YXRpYyBpbnQgaW9fcHJlcF9ydyhzdHJ1Y3QgaW9fa2lvY2Ig KnJlcSwgY29uc3Qgc3RydWN0IGlvX3VyaW5nX3NxZSAqc3FlLA0KPiAgew0KPiAgCXN0cnVjdCBp b19yaW5nX2N0eCAqY3R4ID0gcmVxLT5jdHg7DQo+ICAJc3RydWN0IGtpb2NiICpraW9jYiA9ICZy ZXEtPnJ3Ow0KPiAtCXVuc2lnbmVkIGlvcHJpbzsNCj4gKwl1bnNpZ25lZCBpb3ByaW8sIGZsYWdz Ow0KPiAgCWludCBmZCwgcmV0Ow0KPiAgDQo+ICAJLyogRm9yIC1FQUdBSU4gcmV0cnksIGV2ZXJ5 dGhpbmcgaXMgYWxyZWFkeSBwcmVwcGVkICovDQo+ICAJaWYgKGtpb2NiLT5raV9maWxwKQ0KPiAg CQlyZXR1cm4gMDsNCj4gIA0KPiArCWZsYWdzID0gUkVBRF9PTkNFKHNxZS0+ZmxhZ3MpOw0KPiAg CWZkID0gUkVBRF9PTkNFKHNxZS0+ZmQpOw0KPiAtCWtpb2NiLT5raV9maWxwID0gaW9fZmlsZV9n ZXQoc3RhdGUsIGZkKTsNCj4gLQlpZiAodW5saWtlbHkoIWtpb2NiLT5raV9maWxwKSkNCj4gLQkJ cmV0dXJuIC1FQkFERjsNCj4gLQlpZiAoZm9yY2Vfbm9uYmxvY2sgJiYgIWlvX2ZpbGVfc3VwcG9y dHNfYXN5bmMoa2lvY2ItPmtpX2ZpbHApKQ0KPiAtCQlmb3JjZV9ub25ibG9jayA9IGZhbHNlOw0K PiArDQo+ICsJaWYgKGZsYWdzICYgSU9TUUVfRklYRURfRklMRSkgew0KPiArCQlpZiAodW5saWtl bHkoIWN0eC0+dXNlcl9maWxlcyB8fA0KPiArCQkgICAgKHVuc2lnbmVkKSBmZCA+PSBjdHgtPm5y X3VzZXJfZmlsZXMpKQ0KPiArCQkJcmV0dXJuIC1FQkFERjsNCj4gKwkJa2lvY2ItPmtpX2ZpbHAg PSBjdHgtPnVzZXJfZmlsZXNbZmRdOw0KPiArCQlyZXEtPmZsYWdzIHw9IFJFUV9GX0ZJWEVEX0ZJ TEU7DQo+ICsJfSBlbHNlIHsNCj4gKwkJa2lvY2ItPmtpX2ZpbHAgPSBpb19maWxlX2dldChzdGF0 ZSwgZmQpOw0KPiArCQlpZiAodW5saWtlbHkoIWtpb2NiLT5raV9maWxwKSkNCj4gKwkJCXJldHVy biAtRUJBREY7DQo+ICsJCWlmIChmb3JjZV9ub25ibG9jayAmJiAhaW9fZmlsZV9zdXBwb3J0c19h c3luYyhraW9jYi0+a2lfZmlscCkpDQo+ICsJCQlmb3JjZV9ub25ibG9jayA9IGZhbHNlOw0KPiAr CX0NCj4gIAlraW9jYi0+a2lfcG9zID0gUkVBRF9PTkNFKHNxZS0+b2ZmKTsNCj4gIAlraW9jYi0+ a2lfZmxhZ3MgPSBpb2NiX2ZsYWdzKGtpb2NiLT5raV9maWxwKTsNCj4gIAlraW9jYi0+a2lfaGlu dCA9IGtpX2hpbnRfdmFsaWRhdGUoZmlsZV93cml0ZV9oaW50KGtpb2NiLT5raV9maWxwKSk7DQo+ IEBAIC02OTQsMTAgKzcyMywxNCBAQCBzdGF0aWMgaW50IGlvX3ByZXBfcncoc3RydWN0IGlvX2tp b2NiICpyZXEsIGNvbnN0IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSwNCj4gIAl9DQo+ICAJcmV0 dXJuIDA7DQo+ICBvdXRfZnB1dDoNCj4gLQkvKiBpbiBjYXNlIG9mIGVycm9yLCB3ZSBkaWRuJ3Qg dXNlIHRoaXMgZmlsZSByZWZlcmVuY2UuIGRyb3AgaXQuICovDQo+IC0JaWYgKHN0YXRlKQ0KPiAt CQlzdGF0ZS0+dXNlZF9yZWZzLS07DQo+IC0JaW9fZmlsZV9wdXQoc3RhdGUsIGtpb2NiLT5raV9m aWxwKTsNCj4gKwlpZiAoIShmbGFncyAmIElPU1FFX0ZJWEVEX0ZJTEUpKSB7DQo+ICsJCS8qDQo+ ICsJCSAqIGluIGNhc2Ugb2YgZXJyb3IsIHdlIGRpZG4ndCB1c2UgdGhpcyBmaWxlIHJlZmVyZW5j ZS4gZHJvcCBpdC4NCj4gKwkJICovDQo+ICsJCWlmIChzdGF0ZSkNCj4gKwkJCXN0YXRlLT51c2Vk X3JlZnMtLTsNCj4gKwkJaW9fZmlsZV9wdXQoc3RhdGUsIGtpb2NiLT5raV9maWxwKTsNCj4gKwl9 DQo+ICAJcmV0dXJuIHJldDsNCj4gIH0NCj4gIA0KPiBAQCAtODM3LDcgKzg3MCw3IEBAIHN0YXRp YyBzc2l6ZV90IGlvX3JlYWQoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0IHN0cnVjdCBzcWVf c3VibWl0ICpzLA0KPiAgb3V0X2ZwdXQ6DQo+ICAJLyogSG9sZCBvbiB0byB0aGUgZmlsZSBmb3Ig LUVBR0FJTiAqLw0KPiAgCWlmICh1bmxpa2VseShyZXQgJiYgcmV0ICE9IC1FQUdBSU4pKQ0KPiAt CQlmcHV0KGZpbGUpOw0KPiArCQlpb19mcHV0KHJlcSk7DQo+ICAJcmV0dXJuIHJldDsNCj4gIH0N Cj4gIA0KPiBAQCAtODkxLDcgKzkyNCw3IEBAIHN0YXRpYyBzc2l6ZV90IGlvX3dyaXRlKHN0cnVj dCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3Qgc3FlX3N1Ym1pdCAqcywNCj4gIAlrZnJlZShp b3ZlYyk7DQo+ICBvdXRfZnB1dDoNCj4gIAlpZiAodW5saWtlbHkocmV0KSkNCj4gLQkJZnB1dChm aWxlKTsNCj4gKwkJaW9fZnB1dChyZXEpOw0KPiAgCXJldHVybiByZXQ7DQo+ICB9DQo+ICANCj4g QEAgLTkxNCw3ICs5NDcsOCBAQCBzdGF0aWMgaW50IGlvX25vcChzdHJ1Y3QgaW9fa2lvY2IgKnJl cSwgdTY0IHVzZXJfZGF0YSkNCj4gIAkgKi8NCj4gIAlpZiAocmVxLT5ydy5raV9maWxwKSB7DQo+ ICAJCWVyciA9IC1FQkFERjsNCj4gLQkJZnB1dChyZXEtPnJ3LmtpX2ZpbHApOw0KPiArCQlpZiAo IShyZXEtPmZsYWdzICYgUkVRX0ZfRklYRURfRklMRSkpDQo+ICsJCQlmcHV0KHJlcS0+cncua2lf ZmlscCk7DQo+ICAJfQ0KPiAgCWlvX2NxcmluZ19hZGRfZXZlbnQoY3R4LCB1c2VyX2RhdGEsIGVy ciwgMCk7DQo+ICAJaW9fZnJlZV9yZXEocmVxKTsNCj4gQEAgLTkyMywyMSArOTU3LDMyIEBAIHN0 YXRpYyBpbnQgaW9fbm9wKHN0cnVjdCBpb19raW9jYiAqcmVxLCB1NjQgdXNlcl9kYXRhKQ0KPiAg DQo+ICBzdGF0aWMgaW50IGlvX3ByZXBfZnN5bmMoc3RydWN0IGlvX2tpb2NiICpyZXEsIGNvbnN0 IHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSkNCj4gIHsNCj4gKwlzdHJ1Y3QgaW9fcmluZ19jdHgg KmN0eCA9IHJlcS0+Y3R4Ow0KPiArCXVuc2lnbmVkIGZsYWdzOw0KPiAgCWludCBmZDsNCj4gIA0K PiAgCS8qIFByZXAgYWxyZWFkeSBkb25lICovDQo+ICAJaWYgKHJlcS0+cncua2lfZmlscCkNCj4g IAkJcmV0dXJuIDA7DQo+ICANCj4gLQlpZiAodW5saWtlbHkocmVxLT5jdHgtPmZsYWdzICYgSU9S SU5HX1NFVFVQX0lPUE9MTCkpDQo+ICsJaWYgKHVubGlrZWx5KGN0eC0+ZmxhZ3MgJiBJT1JJTkdf U0VUVVBfSU9QT0xMKSkNCj4gIAkJcmV0dXJuIC1FSU5WQUw7DQo+ICAJaWYgKHVubGlrZWx5KHNx ZS0+YWRkciB8fCBzcWUtPmlvcHJpbyB8fCBzcWUtPmJ1Zl9pbmRleCkpDQo+ICAJCXJldHVybiAt RUlOVkFMOw0KPiAgDQo+ICAJZmQgPSBSRUFEX09OQ0Uoc3FlLT5mZCk7DQo+IC0JcmVxLT5ydy5r aV9maWxwID0gZmdldChmZCk7DQo+IC0JaWYgKHVubGlrZWx5KCFyZXEtPnJ3LmtpX2ZpbHApKQ0K PiAtCQlyZXR1cm4gLUVCQURGOw0KPiArCWZsYWdzID0gUkVBRF9PTkNFKHNxZS0+ZmxhZ3MpOw0K PiArDQo+ICsJaWYgKGZsYWdzICYgSU9TUUVfRklYRURfRklMRSkgew0KPiArCQlpZiAodW5saWtl bHkoIWN0eC0+dXNlcl9maWxlcyB8fCBmZCA+PSBjdHgtPm5yX3VzZXJfZmlsZXMpKQ0KPiArCQkJ cmV0dXJuIC1FQkFERjsNCj4gKwkJcmVxLT5ydy5raV9maWxwID0gY3R4LT51c2VyX2ZpbGVzW2Zk XTsNCj4gKwkJcmVxLT5mbGFncyB8PSBSRVFfRl9GSVhFRF9GSUxFOw0KPiArCX0gZWxzZSB7DQo+ ICsJCXJlcS0+cncua2lfZmlscCA9IGZnZXQoZmQpOw0KPiArCQlpZiAodW5saWtlbHkoIXJlcS0+ cncua2lfZmlscCkpDQo+ICsJCQlyZXR1cm4gLUVCQURGOw0KPiArCX0NCj4gIA0KPiAgCXJldHVy biAwOw0KPiAgfQ0KPiBAQCAtOTY3LDcgKzEwMTIsOCBAQCBzdGF0aWMgaW50IGlvX2ZzeW5jKHN0 cnVjdCBpb19raW9jYiAqcmVxLCBjb25zdCBzdHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUsDQo+ICAJ CQkJZW5kID4gMCA/IGVuZCA6IExMT05HX01BWCwNCj4gIAkJCQlmc3luY19mbGFncyAmIElPUklO R19GU1lOQ19EQVRBU1lOQyk7DQo+ICANCj4gLQlmcHV0KHJlcS0+cncua2lfZmlscCk7DQo+ICsJ aWYgKCEocmVxLT5mbGFncyAmIFJFUV9GX0ZJWEVEX0ZJTEUpKQ0KPiArCQlmcHV0KHJlcS0+cncu a2lfZmlscCk7DQo+ICAJaW9fY3FyaW5nX2FkZF9ldmVudChyZXEtPmN0eCwgc3FlLT51c2VyX2Rh dGEsIHJldCwgMCk7DQo+ICAJaW9fZnJlZV9yZXEocmVxKTsNCj4gIAlyZXR1cm4gMDsNCj4gQEAg LTExMDQsNyArMTE1MCw3IEBAIHN0YXRpYyBpbnQgaW9fc3VibWl0X3NxZShzdHJ1Y3QgaW9fcmlu Z19jdHggKmN0eCwgY29uc3Qgc3RydWN0IHNxZV9zdWJtaXQgKnMsDQo+ICAJc3NpemVfdCByZXQ7 DQo+ICANCj4gIAkvKiBlbmZvcmNlIGZvcndhcmRzIGNvbXBhdGliaWxpdHkgb24gdXNlcnMgKi8N Cj4gLQlpZiAodW5saWtlbHkocy0+c3FlLT5mbGFncykpDQo+ICsJaWYgKHVubGlrZWx5KHMtPnNx ZS0+ZmxhZ3MgJiB+SU9TUUVfRklYRURfRklMRSkpDQo+ICAJCXJldHVybiAtRUlOVkFMOw0KPiAg DQo+ICAJcmVxID0gaW9fZ2V0X3JlcShjdHgsIHN0YXRlKTsNCj4gQEAgLTEyOTIsNiArMTMzOCwx NTQgQEAgc3RhdGljIGludCBpb19jcXJpbmdfd2FpdChzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCwg aW50IG1pbl9ldmVudHMsDQo+ICAJcmV0dXJuIFJFQURfT05DRShyaW5nLT5yLmhlYWQpID09IFJF QURfT05DRShyaW5nLT5yLnRhaWwpID8gcmV0IDogMDsNCj4gIH0NCj4gIA0KPiArc3RhdGljIHZv aWQgX19pb19zcWVfZmlsZXNfdW5yZWdpc3RlcihzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCkNCj4g K3sNCj4gKyNpZiBkZWZpbmVkKENPTkZJR19VTklYKQ0KPiArCWlmIChjdHgtPnJpbmdfc29jaykg ew0KPiArCQlzdHJ1Y3Qgc29jayAqc29jayA9IGN0eC0+cmluZ19zb2NrLT5zazsNCj4gKwkJc3Ry dWN0IHNrX2J1ZmYgKnNrYjsNCj4gKw0KPiArCQl3aGlsZSAoKHNrYiA9IHNrYl9kZXF1ZXVlKCZz b2NrLT5za19yZWNlaXZlX3F1ZXVlKSkgIT0gTlVMTCkNCg0KU29tZXRoaW5nJ3Mgc3RpbGwgYSBi aXQgbWVzc3kgd2l0aCBkZXN0cnVjdGlvbi4gIEkgZ2V0IGEgdHJhY2ViYWNrIGhlcmUNCndoaWxl IHJ1bm5pbmcNCg0KICBpbnQgbWFpbigpIHsNCiAgICBzdHJ1Y3QgaW9fdXJpbmdfcGFyYW1zIHVy aW5nX3BhcmFtcyA9IHsNCiAgICAgICAgLmZsYWdzID0gSU9SSU5HX1NFVFVQX1NRUE9MTCB8IElP UklOR19TRVRVUF9JT1BPTEwsDQogICAgfTsNCiAgICBpbnQgdXJpbmdfZmQgPSANCiAgICAgICAg c3lzY2FsbCg0MjUgLyogaW9fdXJpbmdfc2V0dXAgKi8sIDE2LCAmdXJpbmdfcGFyYW1zKTsNCiAg ICANCiAgICBjb25zdCBfX3MzMiBmZHNbXSA9IHsxfTsNCiAgICANCiAgICBzeXNjYWxsKDQyNyAv KiBpb191cmluZ19yZWdpc3RlciAqLywgdXJpbmdfZmQsDQogICAgICAgICAgICBJT1JJTkdfUkVH SVNURVJfRklMRVMsIGZkcywgc2l6ZW9mKGZkcykgLyBzaXplb2YoKmZkcykpOw0KICB9DQoNCkkg ZW5kIHVwIHdpdGggdGhlIGZvbGxvd2luZyBzcGV3Og0KDQpbICAxOTUuOTgzMzIyXSBXQVJOSU5H OiBDUFU6IDEgUElEOiAxOTM4IGF0IC4uL25ldC91bml4L2FmX3VuaXguYzo1MDAgdW5peF9zb2Nr X2Rlc3RydWN0b3IrMHg5Ny8weGMwDQpbICAxOTUuOTg5NTU2XSBNb2R1bGVzIGxpbmtlZCBpbjoN ClsgIDE5NS45OTI3MzhdIENQVTogMSBQSUQ6IDE5MzggQ29tbTogYWlvX2J1ZmZlcmVkIFRhaW50 ZWQ6IEcgICAgICAgIFcgICAgICAgICA1LjAuMC1yYzUrICMzNzkNClsgIDE5Ni4wMDA5MjZdIEhh cmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9T IDEuMTAuMi0xdWJ1bnR1MSAwNC8wMS8yMDE0DQpbICAxOTYuMDA4MzE2XSBSSVA6IDAwMTA6dW5p eF9zb2NrX2Rlc3RydWN0b3IrMHg5Ny8weGMwDQpbICAxOTYuMDEwOTEyXSBDb2RlOiAzZiAzNyBm MyBmZiA1YiA1ZCBiZSAwMCAwMiAwMCAwMCA0OCBjNyBjNyA2YyA1YiA5YSA4MSBlOSA4YyAyYSA3 MSBmZiA0OCA4OSBlZiBlOCBjNCBkYyA4NyBmZiBlYiBiZSAwZiAwYiA0OCA4MyA3YiA3MCAwMCA3 NCA4YiA8MGY+IDBiIDQ4IDgzIGJiIDY4IDAyIDAwIDAwIDAwIDc0IDg5IDBmIDBiIGViIDg1IDQ4 IDg5IGRlIDQ4IGM3IGM3DQpbICAxOTYuMDE4ODg3XSBSU1A6IDAwMTg6ZmZmZmM5MDAwMDhhN2Q0 MCBFRkxBR1M6IDAwMDEwMjgyDQpbICAxOTYuMDIwNzU0XSBSQVg6IDAwMDAwMDAwMDAwMDAwMDAg UkJYOiBmZmZmODg4MTM1MWRkMDAwIFJDWDogMDAwMDAwMDAwMDAwMDAwMA0KWyAgMTk2LjAyMjgx MV0gUkRYOiAwMDAwMDAwMDAwMDAwMDAxIFJTSTogMDAwMDAwMDAwMDAwMDI4MiBSREk6IDAwMDAw MDAwZmZmZmZmZmYNClsgIDE5Ni4wMjQ5MDFdIFJCUDogZmZmZjg4ODEzNTFkZDAwMCBSMDg6IDAw MDAwMDAwMDAwMjQxMjAgUjA5OiBmZmZmZmZmZjgxOWE5N2ZlDQpbICAxOTYuMDI2OTc3XSBSMTA6 IGZmZmZlYTAwMDRjZjY4MDAgUjExOiAwMDAwMDAwMDAwNWI4ZDgwIFIxMjogZmZmZmZmZmY4MTI5 NGVjMg0KWyAgMTk2LjAyOTExOV0gUjEzOiBmZmZmODg4MTM0ZTI3YjQwIFIxNDogZmZmZjg4ODEz YmIzMDdhMCBSMTU6IGZmZmY4ODgxMzNkNTk5MTANClsgIDE5Ni4wMzEwNzFdIEZTOiAgMDAwMDdm MWE4YThjMzc0MCgwMDAwKSBHUzpmZmZmODg4MTNiYjAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAw MDAwMDAwMDANClsgIDE5Ni4wMzMwNjldIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6 IDAwMDAwMDAwODAwNTAwMzMNClsgIDE5Ni4wMzQ0MzhdIENSMjogMDAwMDdmMWE4YWJhNTkyMCBD UjM6IDAwMDAwMDAwMDI2MGUwMDQgQ1I0OiAwMDAwMDAwMDAwMzYwNmEwDQpbICAxOTYuMDM2MzEw XSBEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAw MDAwMDAwMDAwMA0KWyAgMTk2LjAzODM5OV0gRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERSNjogMDAw MDAwMDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDANClsgIDE5Ni4wMzk3OTRdIENhbGwg VHJhY2U6DQpbICAxOTYuMDQwMjU5XSAgX19za19kZXN0cnVjdCsweDFjLzB4MTUwDQpbICAxOTYu MDQwOTY0XSAgPyBpb19zcWVfZmlsZXNfdW5yZWdpc3RlcisweDMyLzB4NzANClsgIDE5Ni4wNDE4 NDFdICB1bml4X2Rlc3RydWN0X3NjbSsweDc2LzB4YTANClsgIDE5Ni4wNDI1ODddICBza2JfcmVs ZWFzZV9oZWFkX3N0YXRlKzB4MzgvMHg2MA0KWyAgMTk2LjA0MzQwMV0gIHNrYl9yZWxlYXNlX2Fs bCsweDkvMHgyMA0KWyAgMTk2LjA0NDAzNF0gIGtmcmVlX3NrYisweDJkLzB4YjANClsgIDE5Ni4w NDQ2MDNdICBpb19zcWVfZmlsZXNfdW5yZWdpc3RlcisweDMyLzB4NzANClsgIDE5Ni4wNDUzODVd ICBpb19yaW5nX2N0eF93YWl0X2FuZF9raWxsKzB4ZjYvMHgxYTANClsgIDE5Ni4wNDYyMjBdICBp b191cmluZ19yZWxlYXNlKzB4MTcvMHgyMA0KWyAgMTk2LjA0Njg4MV0gIF9fZnB1dCsweDlkLzB4 MWQwDQpbICAxOTYuMDQ3NDIxXSAgdGFza193b3JrX3J1bisweDdhLzB4OTANClsgIDE5Ni4wNDgw NDVdICBkb19leGl0KzB4MzAxLzB4YzIwDQpbICAxOTYuMDQ4NjI2XSAgPyBoYW5kbGVfbW1fZmF1 bHQrMHhmMy8weDIzMA0KWyAgMTk2LjA0OTMyMV0gIGRvX2dyb3VwX2V4aXQrMHgzNS8weGEwDQpb ICAxOTYuMDQ5OTQ0XSAgX194NjRfc3lzX2V4aXRfZ3JvdXArMHhmLzB4MTANClsgIDE5Ni4wNTA2 NThdICBkb19zeXNjYWxsXzY0KzB4M2QvMHhmMA0KWyAgMTk2LjA1MTMxN10gIGVudHJ5X1NZU0NB TExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkNClsgIDE5Ni4wNTIyMTddIFJJUDogMDAzMzow eDdmMWE4YWJhNTk1Ng0KWyAgMTk2LjA1Mjg1OV0gQ29kZTogQmFkIFJJUCB2YWx1ZS4NClsgIDE5 Ni4wNTM0ODhdIFJTUDogMDAyYjowMDAwN2ZmZmJkYmNhZDM4IEVGTEFHUzogMDAwMDAyNDYgT1JJ R19SQVg6IDAwMDAwMDAwMDAwMDAwZTcNClsgIDE5Ni4wNTQ5MDJdIFJBWDogZmZmZmZmZmZmZmZm ZmZkYSBSQlg6IDAwMDA3ZjFhOGFjOTc1YzAgUkNYOiAwMDAwN2YxYThhYmE1OTU2DQpbICAxOTYu MDU2MTI0XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAwMDAwMDAwMDAwMDNjIFJESTog MDAwMDAwMDAwMDAwMDAwMA0KWyAgMTk2LjA1NzM0OF0gUkJQOiAwMDAwMDAwMDAwMDAwMDAwIFIw ODogMDAwMDAwMDAwMDAwMDBlNyBSMDk6IGZmZmZmZmZmZmZmZmZmNzgNClsgIDE5Ni4wNTg1NzNd IFIxMDogMDAwMDdmZmZiZGJjYWJmOCBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwN2Yx YThhYzk3NWMwDQpbICAxOTYuMDU5NDU5XSBSMTM6IDAwMDAwMDAwMDAwMDAwMDEgUjE0OiAwMDAw N2YxYThhY2EwMjg4IFIxNTogMDAwMDAwMDAwMDAwMDAwMA0KWyAgMTk2LjA2MDczMV0gLS0tWyBl bmQgdHJhY2UgOGE3ZTQyZjkxOTllNWY5MiBdLS0tDQpbICAxOTYuMDYyNjcxXSBXQVJOSU5HOiBD UFU6IDEgUElEOiAxOTM4IGF0IC4uL25ldC91bml4L2FmX3VuaXguYzo1MDEgdW5peF9zb2NrX2Rl c3RydWN0b3IrMHhhMy8weGMwDQpbICAxOTYuMDY0MzcyXSBNb2R1bGVzIGxpbmtlZCBpbjoNClsg IDE5Ni4wNjQ5NjZdIENQVTogMSBQSUQ6IDE5MzggQ29tbTogYWlvX2J1ZmZlcmVkIFRhaW50ZWQ6 IEcgICAgICAgIFcgICAgICAgICA1LjAuMC1yYzUrICMzNzkNClsgIDE5Ni4wNjY1NDZdIEhhcmR3 YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIDEu MTAuMi0xdWJ1bnR1MSAwNC8wMS8yMDE0DQpbICAxOTYuMDY4MjM0XSBSSVA6IDAwMTA6dW5peF9z b2NrX2Rlc3RydWN0b3IrMHhhMy8weGMwDQpbICAxOTYuMDY4OTk5XSBDb2RlOiBjNyBjNyA2YyA1 YiA5YSA4MSBlOSA4YyAyYSA3MSBmZiA0OCA4OSBlZiBlOCBjNCBkYyA4NyBmZiBlYiBiZSAwZiAw YiA0OCA4MyA3YiA3MCAwMCA3NCA4YiAwZiAwYiA0OCA4MyBiYiA2OCAwMiAwMCAwMCAwMCA3NCA4 OSA8MGY+IDBiIGViIDg1IDQ4IDg5IGRlIDQ4IGM3IGM3IGEwIGM4IDQyIDgyIDViIDVkIGU5IDMx IDhjIDc1IGZmIDBmDQpbICAxOTYuMDcyNTc3XSBSU1A6IDAwMTg6ZmZmZmM5MDAwMDhhN2Q0MCBF RkxBR1M6IDAwMDEwMjgyDQpbICAxOTYuMDczNTk1XSBSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJY OiBmZmZmODg4MTM1MWRkMDAwIFJDWDogMDAwMDAwMDAwMDAwMDAwMA0KWyAgMTk2LjA3NDk3M10g UkRYOiAwMDAwMDAwMDAwMDAwMDAxIFJTSTogMDAwMDAwMDAwMDAwMDI4MiBSREk6IDAwMDAwMDAw ZmZmZmZmZmYNClsgIDE5Ni4wNzYzNDhdIFJCUDogZmZmZjg4ODEzNTFkZDAwMCBSMDg6IDAwMDAw MDAwMDAwMjQxMjAgUjA5OiBmZmZmZmZmZjgxOWE5N2ZlDQpbICAxOTYuMDc3NzA5XSBSMTA6IGZm ZmZlYTAwMDRjZjY4MDAgUjExOiAwMDAwMDAwMDAwNWI4ZDgwIFIxMjogZmZmZmZmZmY4MTI5NGVj Mg0KWyAgMTk2LjA3OTA3Ml0gUjEzOiBmZmZmODg4MTM0ZTI3YjQwIFIxNDogZmZmZjg4ODEzYmIz MDdhMCBSMTU6IGZmZmY4ODgxMzNkNTk5MTANClsgIDE5Ni4wODA0NDFdIEZTOiAgMDAwMDdmMWE4 YThjMzc0MCgwMDAwKSBHUzpmZmZmODg4MTNiYjAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAw MDAwMDANClsgIDE5Ni4wODIwMjZdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAw MDAwMDAwODAwNTAwMzMNClsgIDE5Ni4wODMxMzFdIENSMjogMDAwMDdmYmMxOWY5NjU1MCBDUjM6 IDAwMDAwMDAxMzhkMWUwMDMgQ1I0OiAwMDAwMDAwMDAwMzYwNmEwDQpbICAxOTYuMDg0NTA1XSBE UjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAw MDAwMDAwMA0KWyAgMTk2LjA4NTgyM10gRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERSNjogMDAwMDAw MDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDANClsgIDE5Ni4wODcxODVdIENhbGwgVHJh Y2U6DQpbICAxOTYuMDg3NjYyXSAgX19za19kZXN0cnVjdCsweDFjLzB4MTUwDQpbICAxOTYuMDg4 Mzc2XSAgPyBpb19zcWVfZmlsZXNfdW5yZWdpc3RlcisweDMyLzB4NzANClsgIDE5Ni4wODkyOTld ICB1bml4X2Rlc3RydWN0X3NjbSsweDc2LzB4YTANClsgIDE5Ni4wOTAwNTldICBza2JfcmVsZWFz ZV9oZWFkX3N0YXRlKzB4MzgvMHg2MA0KWyAgMTk2LjA5MDkyOV0gIHNrYl9yZWxlYXNlX2FsbCsw eDkvMHgyMA0KWyAgMTk2LjA5MTU1MF0gIGtmcmVlX3NrYisweDJkLzB4YjANClsgIDE5Ni4wOTI3 NDVdICBpb19zcWVfZmlsZXNfdW5yZWdpc3RlcisweDMyLzB4NzANClsgIDE5Ni4wOTM1MzVdICBp b19yaW5nX2N0eF93YWl0X2FuZF9raWxsKzB4ZjYvMHgxYTANClsgIDE5Ni4wOTQzNThdICBpb191 cmluZ19yZWxlYXNlKzB4MTcvMHgyMA0KWyAgMTk2LjA5NTAyOV0gIF9fZnB1dCsweDlkLzB4MWQw DQpbICAxOTYuMDk1NjYwXSAgdGFza193b3JrX3J1bisweDdhLzB4OTANClsgIDE5Ni4wOTYzMDdd ICBkb19leGl0KzB4MzAxLzB4YzIwDQpbICAxOTYuMDk2ODA4XSAgPyBoYW5kbGVfbW1fZmF1bHQr MHhmMy8weDIzMA0KWyAgMTk2LjA5NzUwNF0gIGRvX2dyb3VwX2V4aXQrMHgzNS8weGEwDQpbICAx OTYuMDk4MTI2XSAgX194NjRfc3lzX2V4aXRfZ3JvdXArMHhmLzB4MTANClsgIDE5Ni4wOTg4MzZd ICBkb19zeXNjYWxsXzY0KzB4M2QvMHhmMA0KWyAgMTk2LjA5OTQ2MF0gIGVudHJ5X1NZU0NBTExf NjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkNClsgIDE5Ni4xMDAzMzRdIFJJUDogMDAzMzoweDdm MWE4YWJhNTk1Ng0KWyAgMTk2LjEwMDk1OF0gQ29kZTogQmFkIFJJUCB2YWx1ZS4NClsgIDE5Ni4x MDEyOTNdIFJTUDogMDAyYjowMDAwN2ZmZmJkYmNhZDM4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19S QVg6IDAwMDAwMDAwMDAwMDAwZTcNClsgIDE5Ni4xMDE5MzNdIFJBWDogZmZmZmZmZmZmZmZmZmZk YSBSQlg6IDAwMDA3ZjFhOGFjOTc1YzAgUkNYOiAwMDAwN2YxYThhYmE1OTU2DQpbICAxOTYuMTAy NTM1XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAwMDAwMDAwMDAwMDNjIFJESTogMDAw MDAwMDAwMDAwMDAwMA0KWyAgMTk2LjEwMzEzN10gUkJQOiAwMDAwMDAwMDAwMDAwMDAwIFIwODog MDAwMDAwMDAwMDAwMDBlNyBSMDk6IGZmZmZmZmZmZmZmZmZmNzgNClsgIDE5Ni4xMDM3MzldIFIx MDogMDAwMDdmZmZiZGJjYWJmOCBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwN2YxYThh Yzk3NWMwDQpbICAxOTYuMTA0NTI2XSBSMTM6IDAwMDAwMDAwMDAwMDAwMDEgUjE0OiAwMDAwN2Yx YThhY2EwMjg4IFIxNTogMDAwMDAwMDAwMDAwMDAwMA0KWyAgMTk2LjEwNTc3N10gLS0tWyBlbmQg dHJhY2UgOGE3ZTQyZjkxOTllNWY5MyBdLS0tDQpbICAxOTYuMTA3NTM1XSB1bml4OiBBdHRlbXB0 IHRvIHJlbGVhc2UgYWxpdmUgdW5peCBzb2NrZXQ6IDAwMDAwMDAwM2IzYzFhMzQNCg0Kd2hpY2gg Y29ycmVzcG9uZHMgdG8gdGhlIFdBUk5fT05zOg0KDQoJV0FSTl9PTighc2tfdW5oYXNoZWQoc2sp KTsNCglXQVJOX09OKHNrLT5za19zb2NrZXQpOw0KDQpUaGlzIGRvZXNuJ3Qgc2VlbSB0byBoYXBw ZW4gaWYgSSBvbWl0IHRoZSBjYWxsIHRvIGlvX3VyaW5nX3JlZ2lzdGVyLg0KDQo+ICsJCQlrZnJl ZV9za2Ioc2tiKTsNCj4gKwl9DQo+ICsjZWxzZQ0KPiArCWludCBpOw0KPiArDQo+ICsJZm9yIChp ID0gMDsgaSA8IGN0eC0+bnJfdXNlcl9maWxlczsgaSsrKQ0KPiArCQlmcHV0KGN0eC0+dXNlcl9m aWxlc1tpXSk7DQo+ICsjZW5kaWYNCj4gK30NCj4gKw0KPiArc3RhdGljIGludCBpb19zcWVfZmls ZXNfdW5yZWdpc3RlcihzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCkNCj4gK3sNCj4gKwlpZiAoIWN0 eC0+dXNlcl9maWxlcykNCj4gKwkJcmV0dXJuIC1FTlhJTzsNCj4gKw0KPiArCV9faW9fc3FlX2Zp bGVzX3VucmVnaXN0ZXIoY3R4KTsNCj4gKwlrZnJlZShjdHgtPnVzZXJfZmlsZXMpOw0KPiArCWN0 eC0+dXNlcl9maWxlcyA9IE5VTEw7DQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gKyNpZiBk ZWZpbmVkKENPTkZJR19VTklYKQ0KPiArc3RhdGljIGludCBfX2lvX3NxZV9maWxlc19zY20oc3Ry dWN0IGlvX3JpbmdfY3R4ICpjdHgsIGludCBuciwgaW50IG9mZnNldCkNCj4gK3sNCj4gKwlzdHJ1 Y3Qgc2NtX2ZwX2xpc3QgKmZwbDsNCj4gKwlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOw0KPiArCWludCBp Ow0KPiArDQo+ICsJZnBsID0ga3phbGxvYyhzaXplb2YoKmZwbCksIEdGUF9LRVJORUwpOw0KPiAr CWlmICghZnBsKQ0KPiArCQlyZXR1cm4gLUVOT01FTTsNCj4gKw0KPiArCXNrYiA9IGFsbG9jX3Nr YigwLCBHRlBfS0VSTkVMKTsNCj4gKwlpZiAoIXNrYikgew0KPiArCQlrZnJlZShmcGwpOw0KPiAr CQlyZXR1cm4gLUVOT01FTTsNCj4gKwl9DQo+ICsNCj4gKwlza2ItPnNrID0gY3R4LT5yaW5nX3Nv Y2stPnNrOw0KPiArCXNrYi0+ZGVzdHJ1Y3RvciA9IHVuaXhfZGVzdHJ1Y3Rfc2NtOw0KPiArDQo+ ICsJZnBsLT51c2VyID0gZ2V0X3VpZChjdHgtPnVzZXIpOw0KPiArCWZvciAoaSA9IDA7IGkgPCBu cjsgaSsrKSB7DQo+ICsJCWZwbC0+ZnBbaV0gPSBnZXRfZmlsZShjdHgtPnVzZXJfZmlsZXNbaSAr IG9mZnNldF0pOw0KPiArCQl1bml4X2luZmxpZ2h0KGZwbC0+dXNlciwgZnBsLT5mcFtpXSk7DQo+ ICsJfQ0KPiArDQo+ICsJZnBsLT5tYXggPSBmcGwtPmNvdW50ID0gbnI7DQo+ICsJVU5JWENCKHNr YikuZnAgPSBmcGw7DQo+ICsJc2tiX3F1ZXVlX2hlYWQoJmN0eC0+cmluZ19zb2NrLT5zay0+c2tf cmVjZWl2ZV9xdWV1ZSwgc2tiKTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBucjsgaSsrKQ0K PiArCQlmcHV0KGZwbC0+ZnBbaV0pOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4g Ky8qDQo+ICsgKiBJZiBVTklYIHNvY2tldHMgYXJlIGVuYWJsZWQsIGZkIHBhc3NpbmcgY2FuIGNh dXNlIGEgcmVmZXJlbmNlIGN5Y2xlIHdoaWNoDQo+ICsgKiBjYXVzZXMgcmVndWxhciByZWZlcmVu Y2UgY291bnRpbmcgdG8gYnJlYWsgZG93bi4gV2UgcmVseSBvbiB0aGUgVU5JWA0KPiArICogZ2Fy YmFnZSBjb2xsZWN0aW9uIHRvIHRha2UgY2FyZSBvZiB0aGlzIHByb2JsZW0gZm9yIHVzLg0KPiAr ICovDQo+ICtzdGF0aWMgaW50IGlvX3NxZV9maWxlc19zY20oc3RydWN0IGlvX3JpbmdfY3R4ICpj dHgpDQo+ICt7DQo+ICsJdW5zaWduZWQgbGVmdCwgdG90YWw7DQo+ICsJaW50IHJldCA9IDA7DQo+ ICsNCj4gKwl0b3RhbCA9IDA7DQo+ICsJbGVmdCA9IGN0eC0+bnJfdXNlcl9maWxlczsNCj4gKwl3 aGlsZSAobGVmdCkgew0KPiArCQl1bnNpZ25lZCB0aGlzX2ZpbGVzID0gbWluX3QodW5zaWduZWQs IGxlZnQsIFNDTV9NQVhfRkQpOw0KPiArCQlpbnQgcmV0Ow0KPiArDQo+ICsJCXJldCA9IF9faW9f c3FlX2ZpbGVzX3NjbShjdHgsIHRoaXNfZmlsZXMsIHRvdGFsKTsNCj4gKwkJaWYgKHJldCkNCj4g KwkJCWJyZWFrOw0KPiArCQlsZWZ0IC09IHRoaXNfZmlsZXM7DQo+ICsJCXRvdGFsICs9IHRoaXNf ZmlsZXM7DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIHJldDsNCj4gK30NCj4gKyNlbHNlDQo+ICtz dGF0aWMgaW50IGlvX3NxZV9maWxlc19zY20oc3RydWN0IGlvX3JpbmdfY3R4ICpjdHgpDQo+ICt7 DQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsjZW5kaWYNCj4gKw0KPiArc3RhdGljIGludCBpb19z cWVfZmlsZXNfcmVnaXN0ZXIoc3RydWN0IGlvX3JpbmdfY3R4ICpjdHgsIHZvaWQgX191c2VyICph cmcsDQo+ICsJCQkJIHVuc2lnbmVkIG5yX2FyZ3MpDQo+ICt7DQo+ICsJX19zMzIgX191c2VyICpm ZHMgPSAoX19zMzIgX191c2VyICopIGFyZzsNCj4gKwlpbnQgZmQsIHJldCA9IDA7DQo+ICsJdW5z aWduZWQgaTsNCj4gKw0KPiArCWlmIChjdHgtPnVzZXJfZmlsZXMpDQo+ICsJCXJldHVybiAtRUJV U1k7DQo+ICsJaWYgKCFucl9hcmdzKQ0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKwlpZiAobnJf YXJncyA+IElPUklOR19NQVhfRklYRURfRklMRVMpDQo+ICsJCXJldHVybiAtRU1GSUxFOw0KPiAr DQo+ICsJY3R4LT51c2VyX2ZpbGVzID0ga2NhbGxvYyhucl9hcmdzLCBzaXplb2Yoc3RydWN0IGZp bGUgKiksIEdGUF9LRVJORUwpOw0KPiArCWlmICghY3R4LT51c2VyX2ZpbGVzKQ0KPiArCQlyZXR1 cm4gLUVOT01FTTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBucl9hcmdzOyBpKyspIHsNCj4g KwkJcmV0ID0gLUVGQVVMVDsNCj4gKwkJaWYgKGNvcHlfZnJvbV91c2VyKCZmZCwgJmZkc1tpXSwg c2l6ZW9mKGZkKSkpDQo+ICsJCQlicmVhazsNCj4gKw0KPiArCQljdHgtPnVzZXJfZmlsZXNbaV0g PSBmZ2V0KGZkKTsNCj4gKw0KPiArCQlyZXQgPSAtRUJBREY7DQo+ICsJCWlmICghY3R4LT51c2Vy X2ZpbGVzW2ldKQ0KPiArCQkJYnJlYWs7DQo+ICsJCS8qDQo+ICsJCSAqIERvbid0IGFsbG93IGlv X3VyaW5nIGluc3RhbmNlcyB0byBiZSByZWdpc3RlcmVkLiBJZiBVTklYDQo+ICsJCSAqIGlzbid0 IGVuYWJsZWQsIHRoZW4gdGhpcyBjYXVzZXMgYSByZWZlcmVuY2UgY3ljbGUgYW5kIHRoaXMNCj4g KwkJICogaW5zdGFuY2UgY2FuIG5ldmVyIGdldCBmcmVlZC4gSWYgVU5JWCBpcyBlbmFibGVkIHdl J2xsDQo+ICsJCSAqIGhhbmRsZSBpdCBqdXN0IGZpbmUsIGJ1dCB0aGVyZSdzIHN0aWxsIG5vIHBv aW50IGluIGFsbG93aW5nDQo+ICsJCSAqIGEgcmluZyBmZCBhcyBpdCBkb2Vzbid0IHN1cHBvcnQg cmVndWxhciByZWFkL3dyaXRlIGFueXdheS4NCj4gKwkJICovDQo+ICsJCWlmIChjdHgtPnVzZXJf ZmlsZXNbaV0tPmZfb3AgPT0gJmlvX3VyaW5nX2ZvcHMpIHsNCj4gKwkJCWZwdXQoY3R4LT51c2Vy X2ZpbGVzW2ldKTsNCj4gKwkJCWJyZWFrOw0KPiArCQl9DQo+ICsJCWN0eC0+bnJfdXNlcl9maWxl cysrOw0KPiArCQlyZXQgPSAwOw0KPiArCX0NCj4gKw0KPiArCWlmICghcmV0KQ0KPiArCQlyZXQg PSBpb19zcWVfZmlsZXNfc2NtKGN0eCk7DQo+ICsJaWYgKHJldCkNCj4gKwkJaW9fc3FlX2ZpbGVz X3VucmVnaXN0ZXIoY3R4KTsNCj4gKw0KPiArCXJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gIHN0 YXRpYyBpbnQgaW9fc3Ffb2ZmbG9hZF9zdGFydChzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCkNCj4g IHsNCj4gIAlpbnQgcmV0Ow0KPiBAQCAtMTU2MCwxNCArMTc1NCwxNiBAQCBzdGF0aWMgdm9pZCBp b19yaW5nX2N0eF9mcmVlKHN0cnVjdCBpb19yaW5nX2N0eCAqY3R4KQ0KPiAgCQlkZXN0cm95X3dv cmtxdWV1ZShjdHgtPnNxb193cSk7DQo+ICAJaWYgKGN0eC0+c3FvX21tKQ0KPiAgCQltbWRyb3Ao Y3R4LT5zcW9fbW0pOw0KPiArDQo+ICsJaW9faW9wb2xsX3JlYXBfZXZlbnRzKGN0eCk7DQo+ICsJ aW9fc3FlX2J1ZmZlcl91bnJlZ2lzdGVyKGN0eCk7DQo+ICsJaW9fc3FlX2ZpbGVzX3VucmVnaXN0 ZXIoY3R4KTsNCj4gKw0KPiAgI2lmIGRlZmluZWQoQ09ORklHX1VOSVgpDQo+ICAJaWYgKGN0eC0+ cmluZ19zb2NrKQ0KPiAgCQlzb2NrX3JlbGVhc2UoY3R4LT5yaW5nX3NvY2spOw0KPiAgI2VuZGlm DQo+ICANCj4gLQlpb19pb3BvbGxfcmVhcF9ldmVudHMoY3R4KTsNCj4gLQlpb19zcWVfYnVmZmVy X3VucmVnaXN0ZXIoY3R4KTsNCj4gLQ0KPiAgCWlvX21lbV9mcmVlKGN0eC0+c3FfcmluZyk7DQo+ ICAJaW9fbWVtX2ZyZWUoY3R4LT5zcV9zcWVzKTsNCj4gIAlpb19tZW1fZnJlZShjdHgtPmNxX3Jp bmcpOw0KPiBAQCAtMTkzNCw2ICsyMTMwLDE1IEBAIHN0YXRpYyBpbnQgX19pb191cmluZ19yZWdp c3RlcihzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCwgdW5zaWduZWQgb3Bjb2RlLA0KPiAgCQkJYnJl YWs7DQo+ICAJCXJldCA9IGlvX3NxZV9idWZmZXJfdW5yZWdpc3RlcihjdHgpOw0KPiAgCQlicmVh azsNCj4gKwljYXNlIElPUklOR19SRUdJU1RFUl9GSUxFUzoNCj4gKwkJcmV0ID0gaW9fc3FlX2Zp bGVzX3JlZ2lzdGVyKGN0eCwgYXJnLCBucl9hcmdzKTsNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSBJ T1JJTkdfVU5SRUdJU1RFUl9GSUxFUzoNCj4gKwkJcmV0ID0gLUVJTlZBTDsNCj4gKwkJaWYgKGFy ZyB8fCBucl9hcmdzKQ0KPiArCQkJYnJlYWs7DQo+ICsJCXJldCA9IGlvX3NxZV9maWxlc191bnJl Z2lzdGVyKGN0eCk7DQo+ICsJCWJyZWFrOw0KPiAgCWRlZmF1bHQ6DQo+ICAJCXJldCA9IC1FSU5W QUw7DQo+ICAJCWJyZWFrOw0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3Vy aW5nLmggYi9pbmNsdWRlL3VhcGkvbGludXgvaW9fdXJpbmcuaA0KPiBpbmRleCBjZjI4ZjdhMTFm MTIuLjYyNTc0NzhkNTVlOSAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3Vy aW5nLmgNCj4gKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lvX3VyaW5nLmgNCj4gQEAgLTE2LDcg KzE2LDcgQEANCj4gICAqLw0KPiAgc3RydWN0IGlvX3VyaW5nX3NxZSB7DQo+ICAJX191OAlvcGNv ZGU7CQkvKiB0eXBlIG9mIG9wZXJhdGlvbiBmb3IgdGhpcyBzcWUgKi8NCj4gLQlfX3U4CWZsYWdz OwkJLyogYXMgb2Ygbm93IHVudXNlZCAqLw0KPiArCV9fdTgJZmxhZ3M7CQkvKiBJT1NRRV8gZmxh Z3MgKi8NCj4gIAlfX3UxNglpb3ByaW87CQkvKiBpb3ByaW8gZm9yIHRoZSByZXF1ZXN0ICovDQo+ ICAJX19zMzIJZmQ7CQkvKiBmaWxlIGRlc2NyaXB0b3IgdG8gZG8gSU8gb24gKi8NCj4gIAlfX3U2 NAlvZmY7CQkvKiBvZmZzZXQgaW50byBmaWxlICovDQo+IEBAIC0zMyw2ICszMywxMSBAQCBzdHJ1 Y3QgaW9fdXJpbmdfc3FlIHsNCj4gIAl9Ow0KPiAgfTsNCj4gIA0KPiArLyoNCj4gKyAqIHNxZS0+ ZmxhZ3MNCj4gKyAqLw0KPiArI2RlZmluZSBJT1NRRV9GSVhFRF9GSUxFCSgxVSA8PCAwKQkvKiB1 c2UgZml4ZWQgZmlsZXNldCAqLw0KPiArDQo+ICAvKg0KPiAgICogaW9fdXJpbmdfc2V0dXAoKSBm bGFncw0KPiAgICovDQo+IEBAIC0xMTMsNSArMTE4LDcgQEAgc3RydWN0IGlvX3VyaW5nX3BhcmFt cyB7DQo+ICAgKi8NCj4gICNkZWZpbmUgSU9SSU5HX1JFR0lTVEVSX0JVRkZFUlMJCTANCj4gICNk ZWZpbmUgSU9SSU5HX1VOUkVHSVNURVJfQlVGRkVSUwkxDQo+ICsjZGVmaW5lIElPUklOR19SRUdJ U1RFUl9GSUxFUwkJMg0KPiArI2RlZmluZSBJT1JJTkdfVU5SRUdJU1RFUl9GSUxFUwkJMw0KPiAg DQo+ICAjZW5kaWYNCg==