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=-5.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, USER_AGENT_SANE_2 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 89C19C47255 for ; Mon, 11 May 2020 13:29:43 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id E8B66206B8 for ; Mon, 11 May 2020 13:29:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="Gzet0xTw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E8B66206B8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 54D1C900050; Mon, 11 May 2020 09:29:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4D83A900036; Mon, 11 May 2020 09:29:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3C530900050; Mon, 11 May 2020 09:29:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0183.hostedemail.com [216.40.44.183]) by kanga.kvack.org (Postfix) with ESMTP id 15358900036 for ; Mon, 11 May 2020 09:29:42 -0400 (EDT) Received: from smtpin28.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id C9E7E2491 for ; Mon, 11 May 2020 13:29:41 +0000 (UTC) X-FDA: 76804520562.28.tiger35_717a006226a22 X-HE-Tag: tiger35_717a006226a22 X-Filterd-Recvd-Size: 41217 Received: from mailgw01.mediatek.com (unknown [210.61.82.183]) by imf46.hostedemail.com (Postfix) with ESMTP for ; Mon, 11 May 2020 13:29:39 +0000 (UTC) X-UUID: 850bb01fb8084c60a3342a2de9f0ec53-20200511 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=zx/FT5efn+A50fIfzwFNm4qZkei5t6eHZUidE0t98+I=; b=Gzet0xTwy6NtS+N7vJOy7mgZVfhdK2LYgPNLZshKcaewLrbKVTWrXJWIcDX4r7KKh4qQv2WQju/oqL2QHjlCM9tB88ycI56NVxuJOCKVT1mJXXFQuehjZHs2e/0MbrAagDzCvFhf+JbzeJJ2UOdq2LGA+94x9KEjp+5eQF5+IlY=; X-UUID: 850bb01fb8084c60a3342a2de9f0ec53-20200511 Received: from mtkcas07.mediatek.inc [(172.21.101.84)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1314611580; Mon, 11 May 2020 21:29:33 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs06n2.mediatek.inc (172.21.101.130) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 11 May 2020 21:29:28 +0800 Received: from [172.21.84.99] (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 11 May 2020 21:29:29 +0800 Message-ID: <1589203771.21284.22.camel@mtksdccf07> Subject: Re: [PATCH v2 1/3] rcu/kasan: record and print call_rcu() call stack From: Walter Wu To: Dmitry Vyukov CC: Andrey Ryabinin , Alexander Potapenko , Matthias Brugger , "Paul E . McKenney" , Josh Triplett , Mathieu Desnoyers , Lai Jiangshan , Joel Fernandes , "Andrew Morton" , kasan-dev , Linux-MM , LKML , "Linux ARM" Date: Mon, 11 May 2020 21:29:31 +0800 In-Reply-To: References: <20200511023111.15310-1-walter-zh.wu@mediatek.com> Content-Type: multipart/alternative; boundary="=-zzz+4sJh7De0VKt8SICN" X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-TM-SNTS-SMTP: 906183CA6AFD033DC37498D65AFF5A25F5E0B404E04664A58508061213F02C112000:8 X-MTK: N X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: --=-zzz+4sJh7De0VKt8SICN Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 T24gTW9uLCAyMDIwLTA1LTExIGF0IDE0OjQzICswMjAwLCBEbWl0cnkgVnl1a292IHdyb3RlOg0K DQo+IE9uIE1vbiwgTWF5IDExLCAyMDIwIGF0IDI6MzEgUE0gRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtv dkBnb29nbGUuY29tPiB3cm90ZToNCj4gPg0KPiA+IE9uIE1vbiwgTWF5IDExLCAyMDIwIGF0IDQ6 MzEgQU0gV2FsdGVyIFd1IDx3YWx0ZXItemgud3VAbWVkaWF0ZWsuY29tPiB3cm90ZToNCj4gPiA+ DQo+ID4gPiBUaGlzIGZlYXR1cmUgd2lsbCByZWNvcmQgZmlyc3QgYW5kIGxhc3QgY2FsbF9yY3Uo KSBjYWxsIHN0YWNrIGFuZA0KPiA+ID4gcHJpbnQgdHdvIGNhbGxfcmN1KCkgY2FsbCBzdGFjayBp biBLQVNBTiByZXBvcnQuDQo+ID4gPg0KPiA+ID4gV2hlbiBjYWxsX3JjdSgpIGlzIGNhbGxlZCwg d2Ugc3RvcmUgdGhlIGNhbGxfcmN1KCkgY2FsbCBzdGFjayBpbnRvDQo+ID4gPiBzbHViIGFsbG9j IG1ldGEtZGF0YSwgc28gdGhhdCBLQVNBTiByZXBvcnQgY2FuIHByaW50IHJjdSBzdGFjay4NCj4g PiA+DQo+ID4gPiBJdCBkb2Vzbid0IGluY3JlYXNlIHRoZSBjb3N0IG9mIG1lbW9yeSBjb25zdW1w dGlvbi4gQmVjYXVzZSB3ZSBkb24ndA0KPiA+ID4gZW5sYXJnZSBzdHJ1Y3Qga2FzYW5fYWxsb2Nf bWV0YSBzaXplLg0KPiA+ID4gLSBhZGQgdHdvIGNhbGxfcmN1KCkgY2FsbCBzdGFjayBpbnRvIGth c2FuX2FsbG9jX21ldGEsIHNpemUgaXMgOCBieXRlcy4NCj4gPiA+IC0gcmVtb3ZlIGZyZWUgdHJh Y2sgZnJvbSBrYXNhbl9hbGxvY19tZXRhLCBzaXplIGlzIDggYnl0ZXMuDQo+ID4gPg0KPiA+ID4g WzFdaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg0MzcNCj4g PiA+IFsyXWh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZm9ydW0vIyFzZWFyY2hpbi9rYXNhbi1k ZXYvYmV0dGVyJDIwc3RhY2skMjB0cmFjZXMkMjBmb3IkMjByY3UlN0Nzb3J0OmRhdGUva2FzYW4t ZGV2L0tRc2pUXzg4aERFLzdyTlVacHJSQmdBSg0KPiA+ID4NCj4gPiA+IFNpZ25lZC1vZmYtYnk6 IFdhbHRlciBXdSA8d2FsdGVyLXpoLnd1QG1lZGlhdGVrLmNvbT4NCj4gPiA+IFN1Z2dlc3RlZC1i eTogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBnb29nbGUuY29tPg0KPiA+ID4gQ2M6IEFuZHJleSBS eWFiaW5pbiA8YXJ5YWJpbmluQHZpcnR1b3p6by5jb20+DQo+ID4gPiBDYzogRG1pdHJ5IFZ5dWtv diA8ZHZ5dWtvdkBnb29nbGUuY29tPg0KPiA+ID4gQ2M6IEFsZXhhbmRlciBQb3RhcGVua28gPGds aWRlckBnb29nbGUuY29tPg0KPiA+ID4gQ2M6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91 bmRhdGlvbi5vcmc+DQo+ID4gPiBDYzogUGF1bCBFLiBNY0tlbm5leSA8cGF1bG1ja0BrZXJuZWwu b3JnPg0KPiA+ID4gQ2M6IEpvc2ggVHJpcGxldHQgPGpvc2hAam9zaHRyaXBsZXR0Lm9yZz4NCj4g PiA+IENjOiBNYXRoaWV1IERlc25veWVycyA8bWF0aGlldS5kZXNub3llcnNAZWZmaWNpb3MuY29t Pg0KPiA+ID4gQ2M6IExhaSBKaWFuZ3NoYW4gPGppYW5nc2hhbmxhaUBnbWFpbC5jb20+DQo+ID4g PiBDYzogSm9lbCBGZXJuYW5kZXMgPGpvZWxAam9lbGZlcm5hbmRlcy5vcmc+DQo+ID4gPiAtLS0N Cj4gPiA+ICBpbmNsdWRlL2xpbnV4L2thc2FuLmggfCAgMiArKw0KPiA+ID4gIGtlcm5lbC9yY3Uv dHJlZS5jICAgICB8ICAzICsrKw0KPiA+ID4gIGxpYi9LY29uZmlnLmthc2FuICAgICB8ICAyICsr DQo+ID4gPiAgbW0va2FzYW4vY29tbW9uLmMgICAgIHwgIDQgKystLQ0KPiA+ID4gIG1tL2thc2Fu L2dlbmVyaWMuYyAgICB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gPiAg bW0va2FzYW4va2FzYW4uaCAgICAgIHwgMTkgKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gIG1t L2thc2FuL3JlcG9ydC5jICAgICB8IDIxICsrKysrKysrKysrKysrKysrLS0tLQ0KPiA+ID4gIDcg ZmlsZXMgY2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkNCj4gPiA+DQo+ ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9rYXNhbi5oIGIvaW5jbHVkZS9saW51eC9r YXNhbi5oDQo+ID4gPiBpbmRleCAzMTMxNGNhN2M2MzUuLjIzYjdlZTAwNTcyZCAxMDA2NDQNCj4g PiA+IC0tLSBhL2luY2x1ZGUvbGludXgva2FzYW4uaA0KPiA+ID4gKysrIGIvaW5jbHVkZS9saW51 eC9rYXNhbi5oDQo+ID4gPiBAQCAtMTc0LDExICsxNzQsMTMgQEAgc3RhdGljIGlubGluZSBzaXpl X3Qga2FzYW5fbWV0YWRhdGFfc2l6ZShzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUpIHsgcmV0dXJu IDA7IH0NCj4gPiA+DQo+ID4gPiAgdm9pZCBrYXNhbl9jYWNoZV9zaHJpbmsoc3RydWN0IGttZW1f Y2FjaGUgKmNhY2hlKTsNCj4gPiA+ICB2b2lkIGthc2FuX2NhY2hlX3NodXRkb3duKHN0cnVjdCBr bWVtX2NhY2hlICpjYWNoZSk7DQo+ID4gPiArdm9pZCBrYXNhbl9yZWNvcmRfYXV4X3N0YWNrKHZv aWQgKnB0cik7DQo+ID4gPg0KPiA+ID4gICNlbHNlIC8qIENPTkZJR19LQVNBTl9HRU5FUklDICov DQo+ID4gPg0KPiA+ID4gIHN0YXRpYyBpbmxpbmUgdm9pZCBrYXNhbl9jYWNoZV9zaHJpbmsoc3Ry dWN0IGttZW1fY2FjaGUgKmNhY2hlKSB7fQ0KPiA+ID4gIHN0YXRpYyBpbmxpbmUgdm9pZCBrYXNh bl9jYWNoZV9zaHV0ZG93bihzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUpIHt9DQo+ID4gPiArc3Rh dGljIGlubGluZSB2b2lkIGthc2FuX3JlY29yZF9hdXhfc3RhY2sodm9pZCAqcHRyKSB7fQ0KPiA+ ID4NCj4gPiA+ICAjZW5kaWYgLyogQ09ORklHX0tBU0FOX0dFTkVSSUMgKi8NCj4gPiA+DQo+ID4g PiBkaWZmIC0tZ2l0IGEva2VybmVsL3JjdS90cmVlLmMgYi9rZXJuZWwvcmN1L3RyZWUuYw0KPiA+ ID4gaW5kZXggMDY1NDhlMmViYjcyLi5kZTg3MmI2Y2MyNjEgMTAwNjQ0DQo+ID4gPiAtLS0gYS9r ZXJuZWwvcmN1L3RyZWUuYw0KPiA+ID4gKysrIGIva2VybmVsL3JjdS90cmVlLmMNCj4gPiA+IEBA IC01Nyw2ICs1Nyw3IEBADQo+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4NCj4gPiA+ICAj aW5jbHVkZSA8bGludXgvc2NoZWQvaXNvbGF0aW9uLmg+DQo+ID4gPiAgI2luY2x1ZGUgPGxpbnV4 L3NjaGVkL2Nsb2NrLmg+DQo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2thc2FuLmg+DQo+ID4gPiAg I2luY2x1ZGUgIi4uL3RpbWUvdGljay1pbnRlcm5hbC5oIg0KPiA+ID4NCj4gPiA+ICAjaW5jbHVk ZSAidHJlZS5oIg0KPiA+ID4gQEAgLTI2OTQsNiArMjY5NSw4IEBAIF9fY2FsbF9yY3Uoc3RydWN0 IHJjdV9oZWFkICpoZWFkLCByY3VfY2FsbGJhY2tfdCBmdW5jKQ0KPiA+ID4gICAgICAgICAgICAg ICAgIHRyYWNlX3JjdV9jYWxsYmFjayhyY3Vfc3RhdGUubmFtZSwgaGVhZCwNCj4gPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmN1X3NlZ2NibGlzdF9uX2NicygmcmRwLT5j Ymxpc3QpKTsNCj4gPiA+DQo+ID4gPiArICAgICAgIGthc2FuX3JlY29yZF9hdXhfc3RhY2soaGVh ZCk7DQo+ID4gPiArDQo+ID4gPiAgICAgICAgIC8qIEdvIGhhbmRsZSBhbnkgUkNVIGNvcmUgcHJv Y2Vzc2luZyByZXF1aXJlZC4gKi8NCj4gPiA+ICAgICAgICAgaWYgKElTX0VOQUJMRUQoQ09ORklH X1JDVV9OT0NCX0NQVSkgJiYNCj4gPiA+ICAgICAgICAgICAgIHVubGlrZWx5KHJjdV9zZWdjYmxp c3RfaXNfb2ZmbG9hZGVkKCZyZHAtPmNibGlzdCkpKSB7DQo+ID4gPiBkaWZmIC0tZ2l0IGEvbGli L0tjb25maWcua2FzYW4gYi9saWIvS2NvbmZpZy5rYXNhbg0KPiA+ID4gaW5kZXggODFmNTQ2NGVh OWUxLi41NmE4OTI5MWYxY2MgMTAwNjQ0DQo+ID4gPiAtLS0gYS9saWIvS2NvbmZpZy5rYXNhbg0K PiA+ID4gKysrIGIvbGliL0tjb25maWcua2FzYW4NCj4gPiA+IEBAIC01OCw2ICs1OCw4IEBAIGNv bmZpZyBLQVNBTl9HRU5FUklDDQo+ID4gPiAgICAgICAgICAgRm9yIGJldHRlciBlcnJvciBkZXRl Y3Rpb24gZW5hYmxlIENPTkZJR19TVEFDS1RSQUNFLg0KPiA+ID4gICAgICAgICAgIEN1cnJlbnRs eSBDT05GSUdfS0FTQU5fR0VORVJJQyBkb2Vzbid0IHdvcmsgd2l0aCBDT05GSUdfREVCVUdfU0xB Qg0KPiA+ID4gICAgICAgICAgICh0aGUgcmVzdWx0aW5nIGtlcm5lbCBkb2VzIG5vdCBib290KS4N Cj4gPiA+ICsgICAgICAgICBDdXJyZW50bHkgQ09ORklHX0tBU0FOX0dFTkVSSUMgd2lsbCBwcmlu dCBmaXJzdCBhbmQgbGFzdCBjYWxsX3JjdSgpDQo+ID4gPiArICAgICAgICAgY2FsbCBzdGFjay4g SXQgZG9lc24ndCBpbmNyZWFzZSB0aGUgY29zdCBvZiBtZW1vcnkgY29uc3VtcHRpb24uDQo+ID4g Pg0KPiA+ID4gIGNvbmZpZyBLQVNBTl9TV19UQUdTDQo+ID4gPiAgICAgICAgIGJvb2wgIlNvZnR3 YXJlIHRhZy1iYXNlZCBtb2RlIg0KPiA+ID4gZGlmZiAtLWdpdCBhL21tL2thc2FuL2NvbW1vbi5j IGIvbW0va2FzYW4vY29tbW9uLmMNCj4gPiA+IGluZGV4IDI5MDYzNThlNDJmMC4uOGJjNjE4Mjg5 YmIxIDEwMDY0NA0KPiA+ID4gLS0tIGEvbW0va2FzYW4vY29tbW9uLmMNCj4gPiA+ICsrKyBiL21t L2thc2FuL2NvbW1vbi5jDQo+ID4gPiBAQCAtNDEsNyArNDEsNyBAQA0KPiA+ID4gICNpbmNsdWRl ICJrYXNhbi5oIg0KPiA+ID4gICNpbmNsdWRlICIuLi9zbGFiLmgiDQo+ID4gPg0KPiA+ID4gLXN0 YXRpYyBpbmxpbmUgZGVwb3Rfc3RhY2tfaGFuZGxlX3Qgc2F2ZV9zdGFjayhnZnBfdCBmbGFncykN Cj4gPiA+ICtkZXBvdF9zdGFja19oYW5kbGVfdCBrYXNhbl9zYXZlX3N0YWNrKGdmcF90IGZsYWdz KQ0KPiA+ID4gIHsNCj4gPiA+ICAgICAgICAgdW5zaWduZWQgbG9uZyBlbnRyaWVzW0tBU0FOX1NU QUNLX0RFUFRIXTsNCj4gPiA+ICAgICAgICAgdW5zaWduZWQgaW50IG5yX2VudHJpZXM7DQo+ID4g PiBAQCAtNTQsNyArNTQsNyBAQCBzdGF0aWMgaW5saW5lIGRlcG90X3N0YWNrX2hhbmRsZV90IHNh dmVfc3RhY2soZ2ZwX3QgZmxhZ3MpDQo+ID4gPiAgc3RhdGljIGlubGluZSB2b2lkIHNldF90cmFj ayhzdHJ1Y3Qga2FzYW5fdHJhY2sgKnRyYWNrLCBnZnBfdCBmbGFncykNCj4gPiA+ICB7DQo+ID4g PiAgICAgICAgIHRyYWNrLT5waWQgPSBjdXJyZW50LT5waWQ7DQo+ID4gPiAtICAgICAgIHRyYWNr LT5zdGFjayA9IHNhdmVfc3RhY2soZmxhZ3MpOw0KPiA+ID4gKyAgICAgICB0cmFjay0+c3RhY2sg PSBrYXNhbl9zYXZlX3N0YWNrKGZsYWdzKTsNCj4gPiA+ICB9DQo+ID4gPg0KPiA+ID4gIHZvaWQg a2FzYW5fZW5hYmxlX2N1cnJlbnQodm9pZCkNCj4gPiA+IGRpZmYgLS1naXQgYS9tbS9rYXNhbi9n ZW5lcmljLmMgYi9tbS9rYXNhbi9nZW5lcmljLmMNCj4gPiA+IGluZGV4IDU2ZmY4ODg1ZmUyZS4u Yjg2ODgwYzMzOGUyIDEwMDY0NA0KPiA+ID4gLS0tIGEvbW0va2FzYW4vZ2VuZXJpYy5jDQo+ID4g PiArKysgYi9tbS9rYXNhbi9nZW5lcmljLmMNCj4gPiA+IEBAIC0zMjUsMyArMzI1LDMyIEBAIERF RklORV9BU0FOX1NFVF9TSEFET1coZjIpOw0KPiA+ID4gIERFRklORV9BU0FOX1NFVF9TSEFET1co ZjMpOw0KPiA+ID4gIERFRklORV9BU0FOX1NFVF9TSEFET1coZjUpOw0KPiA+ID4gIERFRklORV9B U0FOX1NFVF9TSEFET1coZjgpOw0KPiA+ID4gKw0KPiA+ID4gK3ZvaWQga2FzYW5fcmVjb3JkX2F1 eF9zdGFjayh2b2lkICphZGRyKQ0KPiA+ID4gK3sNCj4gPiA+ICsgICAgICAgc3RydWN0IHBhZ2Ug KnBhZ2UgPSBrYXNhbl9hZGRyX3RvX3BhZ2UoYWRkcik7DQo+ID4gPiArICAgICAgIHN0cnVjdCBr bWVtX2NhY2hlICpjYWNoZTsNCj4gPiA+ICsgICAgICAgc3RydWN0IGthc2FuX2FsbG9jX21ldGEg KmFsbG9jX2luZm87DQo+ID4gPiArICAgICAgIHZvaWQgKm9iamVjdDsNCj4gPiA+ICsNCj4gPiA+ ICsgICAgICAgaWYgKCEocGFnZSAmJiBQYWdlU2xhYihwYWdlKSkpDQo+ID4gPiArICAgICAgICAg ICAgICAgcmV0dXJuOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICBjYWNoZSA9IHBhZ2UtPnNsYWJf Y2FjaGU7DQo+ID4gPiArICAgICAgIG9iamVjdCA9IG5lYXJlc3Rfb2JqKGNhY2hlLCBwYWdlLCBh ZGRyKTsNCj4gPiA+ICsgICAgICAgYWxsb2NfaW5mbyA9IGdldF9hbGxvY19pbmZvKGNhY2hlLCBv YmplY3QpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICBpZiAoIWFsbG9jX2luZm8tPnJjdV9zdGFj a1swXSkNCj4gPiA+ICsgICAgICAgICAgICAgICAvKiByZWNvcmQgZmlyc3QgY2FsbF9yY3UoKSBj YWxsIHN0YWNrICovDQo+ID4gPiArICAgICAgICAgICAgICAgYWxsb2NfaW5mby0+cmN1X3N0YWNr WzBdID0ga2FzYW5fc2F2ZV9zdGFjayhHRlBfTk9XQUlUKTsNCj4gPiA+ICsgICAgICAgZWxzZQ0K PiA+ID4gKyAgICAgICAgICAgICAgIC8qIHJlY29yZCBsYXN0IGNhbGxfcmN1KCkgY2FsbCBzdGFj ayAqLw0KPiA+ID4gKyAgICAgICAgICAgICAgIGFsbG9jX2luZm8tPnJjdV9zdGFja1sxXSA9IGth c2FuX3NhdmVfc3RhY2soR0ZQX05PV0FJVCk7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gK3N0 cnVjdCBrYXNhbl90cmFjayAqa2FzYW5fZ2V0X2F1eF9zdGFjayhzdHJ1Y3Qga2FzYW5fYWxsb2Nf bWV0YSAqYWxsb2NfaW5mbywNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHU4IGlkeCkNCj4gPiA+ICt7DQo+ID4gPiArICAgICAgIHJldHVybiBj b250YWluZXJfb2YoJmFsbG9jX2luZm8tPnJjdV9zdGFja1tpZHhdLA0KPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGthc2FuX3RyYWNr LCBzdGFjayk7DQo+ID4gPiArfQ0KPiA+ID4gZGlmZiAtLWdpdCBhL21tL2thc2FuL2thc2FuLmgg Yi9tbS9rYXNhbi9rYXNhbi5oDQo+ID4gPiBpbmRleCBlOGYzNzE5OWQ4ODUuLjFjYzFmYjdiMGRl MyAxMDA2NDQNCj4gPiA+IC0tLSBhL21tL2thc2FuL2thc2FuLmgNCj4gPiA+ICsrKyBiL21tL2th c2FuL2thc2FuLmgNCj4gPiA+IEBAIC05NiwxNSArOTYsMjggQEAgc3RydWN0IGthc2FuX3RyYWNr IHsNCj4gPiA+ICAgICAgICAgZGVwb3Rfc3RhY2tfaGFuZGxlX3Qgc3RhY2s7DQo+ID4gPiAgfTsN Cj4gPiA+DQo+ID4gPiArI2lmZGVmIENPTkZJR19LQVNBTl9HRU5FUklDDQo+ID4gPiArI2RlZmlu ZSBTSVpFT0ZfUFRSIHNpemVvZih2b2lkICopDQo+ID4NCj4gPiBQbGVhc2UgbW92ZSB0aGlzIHRv IGdlbmVyaWMuYyBjbG9zZXIgdG8ga2FzYW5fc2V0X2ZyZWVfaW5mby4NCj4gPiBVbm5lY2Vzc2Fy eSBpbiB0aGUgaGVhZGVyLg0KPiA+DQo+ID4gPiArI2RlZmluZSBLQVNBTl9OUl9SQ1VfQ0FMTF9T VEFDS1MgMg0KPiA+DQo+ID4gU2luY2UgS0FTQU5fTlJfUkNVX0NBTExfU1RBQ0tTIGlzIG9ubHkg dXNlZCBvbmNlIGJlbG93LCB5b3UgY291bGQgYXMNCj4gPiB3ZWxsIHVzZSAyIGluc3RlYWQgb2Yg aXQuDQo+ID4gUmVkdWNlcyBsZXZlbCBvZiBpbmRpcmVjdGlvbiBhbmQgY29nbml0aXZlIGxvYWQu DQo+ID4NCj4gPiA+ICsjZWxzZSAvKiBDT05GSUdfS0FTQU5fR0VORVJJQyAqLw0KPiA+ID4gICNp ZmRlZiBDT05GSUdfS0FTQU5fU1dfVEFHU19JREVOVElGWQ0KPiA+ID4gICNkZWZpbmUgS0FTQU5f TlJfRlJFRV9TVEFDS1MgNQ0KPiA+ID4gICNlbHNlDQo+ID4gPiAgI2RlZmluZSBLQVNBTl9OUl9G UkVFX1NUQUNLUyAxDQo+ID4gPiAgI2VuZGlmDQo+ID4gPiArI2VuZGlmIC8qIENPTkZJR19LQVNB Tl9HRU5FUklDICovDQo+ID4gPg0KPiA+ID4gIHN0cnVjdCBrYXNhbl9hbGxvY19tZXRhIHsNCj4g PiA+ICAgICAgICAgc3RydWN0IGthc2FuX3RyYWNrIGFsbG9jX3RyYWNrOw0KPiA+ID4gKyNpZmRl ZiBDT05GSUdfS0FTQU5fR0VORVJJQw0KPiA+ID4gKyAgICAgICAvKg0KPiA+ID4gKyAgICAgICAg KiBjYWxsX3JjdSgpIGNhbGwgc3RhY2sgaXMgc3RvcmVkIGludG8gc3RydWN0IGthc2FuX2FsbG9j X21ldGEuDQo+ID4gPiArICAgICAgICAqIFRoZSBmcmVlIHN0YWNrIGlzIHN0b3JlZCBpbnRvIGZy ZWVkIG9iamVjdC4NCj4gPiA+ICsgICAgICAgICovDQo+ID4gPiArICAgICAgIGRlcG90X3N0YWNr X2hhbmRsZV90IHJjdV9zdGFja1tLQVNBTl9OUl9SQ1VfQ0FMTF9TVEFDS1NdOw0KPiA+ID4gKyNl bHNlDQo+ID4gPiAgICAgICAgIHN0cnVjdCBrYXNhbl90cmFjayBmcmVlX3RyYWNrW0tBU0FOX05S X0ZSRUVfU1RBQ0tTXTsNCj4gPiA+ICsjZW5kaWYNCj4gPiA+ICAjaWZkZWYgQ09ORklHX0tBU0FO X1NXX1RBR1NfSURFTlRJRlkNCj4gPiA+ICAgICAgICAgdTggZnJlZV9wb2ludGVyX3RhZ1tLQVNB Tl9OUl9GUkVFX1NUQUNLU107DQo+ID4gPiAgICAgICAgIHU4IGZyZWVfdHJhY2tfaWR4Ow0KPiA+ ID4gQEAgLTE1OSwxNiArMTcyLDIyIEBAIHZvaWQga2FzYW5fcmVwb3J0X2ludmFsaWRfZnJlZSh2 b2lkICpvYmplY3QsIHVuc2lnbmVkIGxvbmcgaXApOw0KPiA+ID4NCj4gPiA+ICBzdHJ1Y3QgcGFn ZSAqa2FzYW5fYWRkcl90b19wYWdlKGNvbnN0IHZvaWQgKmFkZHIpOw0KPiA+ID4NCj4gPiA+ICtk ZXBvdF9zdGFja19oYW5kbGVfdCBrYXNhbl9zYXZlX3N0YWNrKGdmcF90IGZsYWdzKTsNCj4gPiA+ ICsNCj4gPiA+ICAjaWYgZGVmaW5lZChDT05GSUdfS0FTQU5fR0VORVJJQykgJiYgXA0KPiA+ID4g ICAgICAgICAoZGVmaW5lZChDT05GSUdfU0xBQikgfHwgZGVmaW5lZChDT05GSUdfU0xVQikpDQo+ ID4gPiAgdm9pZCBxdWFyYW50aW5lX3B1dChzdHJ1Y3Qga2FzYW5fZnJlZV9tZXRhICppbmZvLCBz dHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUpOw0KPiA+ID4gIHZvaWQgcXVhcmFudGluZV9yZWR1Y2Uo dm9pZCk7DQo+ID4gPiAgdm9pZCBxdWFyYW50aW5lX3JlbW92ZV9jYWNoZShzdHJ1Y3Qga21lbV9j YWNoZSAqY2FjaGUpOw0KPiA+ID4gK3N0cnVjdCBrYXNhbl90cmFjayAqa2FzYW5fZ2V0X2F1eF9z dGFjayhzdHJ1Y3Qga2FzYW5fYWxsb2NfbWV0YSAqYWxsb2NfaW5mbywNCj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIHU4IGlkeCk7DQo+ID4gPiAgI2Vsc2UNCj4gPiA+ICBzdGF0aWMgaW5s aW5lIHZvaWQgcXVhcmFudGluZV9wdXQoc3RydWN0IGthc2FuX2ZyZWVfbWV0YSAqaW5mbywNCj4g PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGttZW1fY2FjaGUgKmNh Y2hlKSB7IH0NCj4gPiA+ICBzdGF0aWMgaW5saW5lIHZvaWQgcXVhcmFudGluZV9yZWR1Y2Uodm9p ZCkgeyB9DQo+ID4gPiAgc3RhdGljIGlubGluZSB2b2lkIHF1YXJhbnRpbmVfcmVtb3ZlX2NhY2hl KHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZSkgeyB9DQo+ID4gPiArc3RhdGljIGlubGluZSBzdHJ1 Y3Qga2FzYW5fdHJhY2sgKmthc2FuX2dldF9hdXhfc3RhY2soDQo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3Qga2FzYW5fYWxsb2NfbWV0YSAqYWxsb2NfaW5mbywgdTggaWR4KSB7 IHJldHVybiBOVUxMOyB9DQo+ID4gPiAgI2VuZGlmDQo+ID4gPg0KPiA+ID4gICNpZmRlZiBDT05G SUdfS0FTQU5fU1dfVEFHUw0KPiA+ID4gZGlmZiAtLWdpdCBhL21tL2thc2FuL3JlcG9ydC5jIGIv bW0va2FzYW4vcmVwb3J0LmMNCj4gPiA+IGluZGV4IDgwZjIzYzlkYTZiMC4uZjE2YTFhMjEwODE1 IDEwMDY0NA0KPiA+ID4gLS0tIGEvbW0va2FzYW4vcmVwb3J0LmMNCj4gPiA+ICsrKyBiL21tL2th c2FuL3JlcG9ydC5jDQo+ID4gPiBAQCAtMTA1LDkgKzEwNSwxMyBAQCBzdGF0aWMgdm9pZCBlbmRf cmVwb3J0KHVuc2lnbmVkIGxvbmcgKmZsYWdzKQ0KPiA+ID4gICAgICAgICBrYXNhbl9lbmFibGVf Y3VycmVudCgpOw0KPiA+ID4gIH0NCj4gPiA+DQo+ID4gPiAtc3RhdGljIHZvaWQgcHJpbnRfdHJh Y2soc3RydWN0IGthc2FuX3RyYWNrICp0cmFjaywgY29uc3QgY2hhciAqcHJlZml4KQ0KPiA+ID4g K3N0YXRpYyB2b2lkIHByaW50X3RyYWNrKHN0cnVjdCBrYXNhbl90cmFjayAqdHJhY2ssIGNvbnN0 IGNoYXIgKnByZWZpeCwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb2wgaXNfY2FsbHJjdSkNCj4gPiA+ICB7DQo+ID4gPiAtICAgICAgIHBy X2VycigiJXMgYnkgdGFzayAldTpcbiIsIHByZWZpeCwgdHJhY2stPnBpZCk7DQo+ID4gPiArICAg ICAgIGlmIChpc19jYWxscmN1KQ0KPiA+ID4gKyAgICAgICAgICAgICAgIHByX2VycigiJXM6XG4i LCBwcmVmaXgpOw0KPiA+ID4gKyAgICAgICBlbHNlDQo+ID4gPiArICAgICAgICAgICAgICAgcHJf ZXJyKCIlcyBieSB0YXNrICV1OlxuIiwgcHJlZml4LCB0cmFjay0+cGlkKTsNCj4gPiA+ICAgICAg ICAgaWYgKHRyYWNrLT5zdGFjaykgew0KPiA+ID4gICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgKmVudHJpZXM7DQo+ID4gPiAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yX2VudHJp ZXM7DQo+ID4gPiBAQCAtMTg3LDExICsxOTEsMjAgQEAgc3RhdGljIHZvaWQgZGVzY3JpYmVfb2Jq ZWN0KHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZSwgdm9pZCAqb2JqZWN0LA0KPiA+ID4gICAgICAg ICBpZiAoY2FjaGUtPmZsYWdzICYgU0xBQl9LQVNBTikgew0KPiA+ID4gICAgICAgICAgICAgICAg IHN0cnVjdCBrYXNhbl90cmFjayAqZnJlZV90cmFjazsNCj4gPiA+DQo+ID4gPiAtICAgICAgICAg ICAgICAgcHJpbnRfdHJhY2soJmFsbG9jX2luZm8tPmFsbG9jX3RyYWNrLCAiQWxsb2NhdGVkIik7 DQo+ID4gPiArICAgICAgICAgICAgICAgcHJpbnRfdHJhY2soJmFsbG9jX2luZm8tPmFsbG9jX3Ry YWNrLCAiQWxsb2NhdGVkIiwgZmFsc2UpOw0KPiA+ID4gICAgICAgICAgICAgICAgIHByX2Vycigi XG4iKTsNCj4gPiA+ICAgICAgICAgICAgICAgICBmcmVlX3RyYWNrID0ga2FzYW5fZ2V0X2ZyZWVf dHJhY2soY2FjaGUsIG9iamVjdCwgdGFnKTsNCj4gPiA+IC0gICAgICAgICAgICAgICBwcmludF90 cmFjayhmcmVlX3RyYWNrLCAiRnJlZWQiKTsNCj4gPiA+ICsgICAgICAgICAgICAgICBwcmludF90 cmFjayhmcmVlX3RyYWNrLCAiRnJlZWQiLCBmYWxzZSk7DQo+ID4gPiAgICAgICAgICAgICAgICAg cHJfZXJyKCJcbiIpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAgICAgICAgIGlmIChJU19FTkFC TEVEKENPTkZJR19LQVNBTl9HRU5FUklDKSkgew0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgZnJlZV90cmFjayA9IGthc2FuX2dldF9hdXhfc3RhY2soYWxsb2NfaW5mbywgMCk7DQo+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICBwcmludF90cmFjayhmcmVlX3RyYWNrLCAiRmlyc3Qg Y2FsbF9yY3UoKSBjYWxsIHN0YWNrIiwgdHJ1ZSk7DQo+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICBwcl9lcnIoIlxuIik7DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBmcmVlX3Ry YWNrID0ga2FzYW5fZ2V0X2F1eF9zdGFjayhhbGxvY19pbmZvLCAxKTsNCj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIHByaW50X3RyYWNrKGZyZWVfdHJhY2ssICJMYXN0IGNhbGxfcmN1KCkg Y2FsbCBzdGFjayIsIHRydWUpOw0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcHJfZXJy KCJcbiIpOw0KPiA+ID4gKyAgICAgICAgICAgICAgIH0NCj4gPiA+ICAgICAgICAgfQ0KPiA+ID4N Cj4gPiA+ICAgICAgICAgZGVzY3JpYmVfb2JqZWN0X2FkZHIoY2FjaGUsIG9iamVjdCwgYWRkcik7 DQo+IA0KPiBTb21lIGhpZ2hlciBsZXZlbCBjb21tZW50cy4NCj4gDQo+IDEuIEkgdGhpbmsgd2Ug bmVlZCB0byBwdXQgdGhlIGZyZWUgdHJhY2sgaW50byBrYXNhbl9mcmVlX21ldGEgYXMgaXQNCj4g d2FzIGJlZm9yZS4gSXQgbG9va3MgbGlrZSBleGFjdGx5IHRoZSBwbGFjZSBmb3IgaXQuIFdlIGhh dmUgbG9naWMgdG8NCj4gcHJvcGVybHkgcGxhY2UgaXQgYW5kIHRvIGRvIHRoZSBjYXN0cy4NCj4g DQoNCg0KSWYgdGhlIGZyZWUgdHJhY2sgcHV0IGthc2FuX2ZyZWVfbWV0YSwgdGhlbiBpdCBpbmNy ZWFzZSBzbGFiIG1ldGEgc2l6ZT8NCk91ciBvcmlnaW5hbCBnb2FsIGRvZXMgbm90IGVubGFyZ2Ug aXQuDQoNCg0KPiAyLiBXZSBuZWVkIHRvIHplcm8gYXV4IHN0YWNrcyB3aGVuIHdlIHJlYWxsb2Nh dGUgdGhlIG9iamVjdC4gT3RoZXJ3aXNlDQo+IHdlIHByaW50IGNvbmZ1c2luZyBnYXJiYWdlLg0K PiANCg0KDQpNeSBsb2NhbCBoYXMgYW4gVVQgYWJvdXQgdXNlLWFmdGVyLWZyZWUgYW5kIHJjdSwg YnV0IGl0IGlzIGhhcmQgdG8gdGVzdA0KdGhlIHByaW50aW5nIGNvbmZ1c2luZyBnYXJiYWdlLCBi ZWNhdXNlIHdlIG1heSBuZWVkIHRvIGdldCB0aGUgc2FtZQ0Kb2JqZWN0KG9sZCBwb2ludGVyIGFu ZCBuZXcgcG9pbnRlcikuIEluIGdlbmVyaWMgS0FTQU4gaXMgbm90IGVhc3kgdG8gZ2V0DQppdC4N Cg0KDQo+IDMuIF9fa2FzYW5fc2xhYl9mcmVlIG5vdyBjb250YWlucyBhIHdpbmRvdyBvZiBpbmNv bnNpc3RlbmN5IHdoZW4gaXQNCj4gbWFya2VkIHRoZSBvYmplY3QgYXMgS0FTQU5fS01BTExPQ19G UkVFLCBidXQgZGlkIG5vdCBzdG9yZSB0aGUgZnJlZQ0KPiB0cmFjayB5ZXQuIElmIGFub3RoZXIg dGhyZWFkIHByaW50cyBhIHJlcG9ydCBub3csIGl0IHdpbGwgcHJpbnQgcmFuZG9tDQo+IGdhcmJh Z2UuDQo+IA0KDQoNCkl0IGlzIHBvc3NpYmxlLCBidXQgdGhlIHdpbmRvdyBpcyBzbyB0aW55LiBJ dCBzZXRzIGZyZWUgdHJhY2sNCmltbWVkaWF0ZWx5IGFmdGVyIHdyaXRlIHRoZSBLQVNBTl9LTUFM TE9DX0ZSRUUuDQoNCg0KPiA0LiBXZSBuZWVkIHNvbWUgdGVzdHMuIEF0IGxlYXN0ICgyKSBzaG91 bGQgYmUgdmlzaWJsZSBvbiB0ZXN0cy4NCg0KDQpPay4NCg== --=-zzz+4sJh7De0VKt8SICN Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUUkFOU0lUSU9OQUwv L0VOIj4NCjxIVE1MPg0KPEhFQUQ+DQogIDxNRVRBIEhUVFAtRVFVSVY9IkNvbnRlbnQtVHlwZSIg Q09OVEVOVD0idGV4dC9odG1sOyBDSEFSU0VUPVVURi04Ij4NCiAgPE1FVEEgTkFNRT0iR0VORVJB VE9SIiBDT05URU5UPSJHdGtIVE1MLzQuMi4yIj4NCjwvSEVBRD4NCjxCT0RZPg0KT24gTW9uLCAy MDIwLTA1LTExIGF0IDE0OjQzICswMjAwLCBEbWl0cnkgVnl1a292IHdyb3RlOg0KPEJMT0NLUVVP VEUgVFlQRT1DSVRFPg0KPFBSRT4NCk9uIE1vbiwgTWF5IDExLCAyMDIwIGF0IDI6MzEgUE0gRG1p dHJ5IFZ5dWtvdiAmbHQ7PEEgSFJFRj0ibWFpbHRvOmR2eXVrb3ZAZ29vZ2xlLmNvbSI+ZHZ5dWtv dkBnb29nbGUuY29tPC9BPiZndDsgd3JvdGU6DQomZ3Q7DQomZ3Q7IE9uIE1vbiwgTWF5IDExLCAy MDIwIGF0IDQ6MzEgQU0gV2FsdGVyIFd1ICZsdDs8QSBIUkVGPSJtYWlsdG86d2FsdGVyLXpoLnd1 QG1lZGlhdGVrLmNvbSI+d2FsdGVyLXpoLnd1QG1lZGlhdGVrLmNvbTwvQT4mZ3Q7IHdyb3RlOg0K Jmd0OyAmZ3Q7DQomZ3Q7ICZndDsgVGhpcyBmZWF0dXJlIHdpbGwgcmVjb3JkIGZpcnN0IGFuZCBs YXN0IGNhbGxfcmN1KCkgY2FsbCBzdGFjayBhbmQNCiZndDsgJmd0OyBwcmludCB0d28gY2FsbF9y Y3UoKSBjYWxsIHN0YWNrIGluIEtBU0FOIHJlcG9ydC4NCiZndDsgJmd0Ow0KJmd0OyAmZ3Q7IFdo ZW4gY2FsbF9yY3UoKSBpcyBjYWxsZWQsIHdlIHN0b3JlIHRoZSBjYWxsX3JjdSgpIGNhbGwgc3Rh Y2sgaW50bw0KJmd0OyAmZ3Q7IHNsdWIgYWxsb2MgbWV0YS1kYXRhLCBzbyB0aGF0IEtBU0FOIHJl cG9ydCBjYW4gcHJpbnQgcmN1IHN0YWNrLg0KJmd0OyAmZ3Q7DQomZ3Q7ICZndDsgSXQgZG9lc24n dCBpbmNyZWFzZSB0aGUgY29zdCBvZiBtZW1vcnkgY29uc3VtcHRpb24uIEJlY2F1c2Ugd2UgZG9u J3QNCiZndDsgJmd0OyBlbmxhcmdlIHN0cnVjdCBrYXNhbl9hbGxvY19tZXRhIHNpemUuDQomZ3Q7 ICZndDsgLSBhZGQgdHdvIGNhbGxfcmN1KCkgY2FsbCBzdGFjayBpbnRvIGthc2FuX2FsbG9jX21l dGEsIHNpemUgaXMgOCBieXRlcy4NCiZndDsgJmd0OyAtIHJlbW92ZSBmcmVlIHRyYWNrIGZyb20g a2FzYW5fYWxsb2NfbWV0YSwgc2l6ZSBpcyA4IGJ5dGVzLg0KJmd0OyAmZ3Q7DQomZ3Q7ICZndDsg WzFdPEEgSFJFRj0iaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0x OTg0MzciPmh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NDM3 PC9BPg0KJmd0OyAmZ3Q7IFsyXTxBIEhSRUY9Imh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZm9y dW0vIyFzZWFyY2hpbi9rYXNhbi1kZXYvYmV0dGVyJDIwc3RhY2skMjB0cmFjZXMkMjBmb3IkMjBy Y3UlN0Nzb3J0OmRhdGUva2FzYW4tZGV2L0tRc2pUXzg4aERFLzdyTlVacHJSQmdBSiI+aHR0cHM6 Ly9ncm91cHMuZ29vZ2xlLmNvbS9mb3J1bS8jIXNlYXJjaGluL2thc2FuLWRldi9iZXR0ZXIkMjBz dGFjayQyMHRyYWNlcyQyMGZvciQyMHJjdSU3Q3NvcnQ6ZGF0ZS9rYXNhbi1kZXYvS1FzalRfODho REUvN3JOVVpwclJCZ0FKPC9BPg0KJmd0OyAmZ3Q7DQomZ3Q7ICZndDsgU2lnbmVkLW9mZi1ieTog V2FsdGVyIFd1ICZsdDs8QSBIUkVGPSJtYWlsdG86d2FsdGVyLXpoLnd1QG1lZGlhdGVrLmNvbSI+ d2FsdGVyLXpoLnd1QG1lZGlhdGVrLmNvbTwvQT4mZ3Q7DQomZ3Q7ICZndDsgU3VnZ2VzdGVkLWJ5 OiBEbWl0cnkgVnl1a292ICZsdDs8QSBIUkVGPSJtYWlsdG86ZHZ5dWtvdkBnb29nbGUuY29tIj5k dnl1a292QGdvb2dsZS5jb208L0E+Jmd0Ow0KJmd0OyAmZ3Q7IENjOiBBbmRyZXkgUnlhYmluaW4g Jmx0OzxBIEhSRUY9Im1haWx0bzphcnlhYmluaW5AdmlydHVvenpvLmNvbSI+YXJ5YWJpbmluQHZp cnR1b3p6by5jb208L0E+Jmd0Ow0KJmd0OyAmZ3Q7IENjOiBEbWl0cnkgVnl1a292ICZsdDs8QSBI UkVGPSJtYWlsdG86ZHZ5dWtvdkBnb29nbGUuY29tIj5kdnl1a292QGdvb2dsZS5jb208L0E+Jmd0 Ow0KJmd0OyAmZ3Q7IENjOiBBbGV4YW5kZXIgUG90YXBlbmtvICZsdDs8QSBIUkVGPSJtYWlsdG86 Z2xpZGVyQGdvb2dsZS5jb20iPmdsaWRlckBnb29nbGUuY29tPC9BPiZndDsNCiZndDsgJmd0OyBD YzogQW5kcmV3IE1vcnRvbiAmbHQ7PEEgSFJFRj0ibWFpbHRvOmFrcG1AbGludXgtZm91bmRhdGlv bi5vcmciPmFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc8L0E+Jmd0Ow0KJmd0OyAmZ3Q7IENjOiBQ YXVsIEUuIE1jS2VubmV5ICZsdDs8QSBIUkVGPSJtYWlsdG86cGF1bG1ja0BrZXJuZWwub3JnIj5w YXVsbWNrQGtlcm5lbC5vcmc8L0E+Jmd0Ow0KJmd0OyAmZ3Q7IENjOiBKb3NoIFRyaXBsZXR0ICZs dDs8QSBIUkVGPSJtYWlsdG86am9zaEBqb3NodHJpcGxldHQub3JnIj5qb3NoQGpvc2h0cmlwbGV0 dC5vcmc8L0E+Jmd0Ow0KJmd0OyAmZ3Q7IENjOiBNYXRoaWV1IERlc25veWVycyAmbHQ7PEEgSFJF Rj0ibWFpbHRvOm1hdGhpZXUuZGVzbm95ZXJzQGVmZmljaW9zLmNvbSI+bWF0aGlldS5kZXNub3ll cnNAZWZmaWNpb3MuY29tPC9BPiZndDsNCiZndDsgJmd0OyBDYzogTGFpIEppYW5nc2hhbiAmbHQ7 PEEgSFJFRj0ibWFpbHRvOmppYW5nc2hhbmxhaUBnbWFpbC5jb20iPmppYW5nc2hhbmxhaUBnbWFp bC5jb208L0E+Jmd0Ow0KJmd0OyAmZ3Q7IENjOiBKb2VsIEZlcm5hbmRlcyAmbHQ7PEEgSFJFRj0i bWFpbHRvOmpvZWxAam9lbGZlcm5hbmRlcy5vcmciPmpvZWxAam9lbGZlcm5hbmRlcy5vcmc8L0E+ Jmd0Ow0KJmd0OyAmZ3Q7IC0tLQ0KJmd0OyAmZ3Q7ICBpbmNsdWRlL2xpbnV4L2thc2FuLmggfCAg MiArKw0KJmd0OyAmZ3Q7ICBrZXJuZWwvcmN1L3RyZWUuYyAgICAgfCAgMyArKysNCiZndDsgJmd0 OyAgbGliL0tjb25maWcua2FzYW4gICAgIHwgIDIgKysNCiZndDsgJmd0OyAgbW0va2FzYW4vY29t bW9uLmMgICAgIHwgIDQgKystLQ0KJmd0OyAmZ3Q7ICBtbS9rYXNhbi9nZW5lcmljLmMgICAgfCAy OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KJmd0OyAmZ3Q7ICBtbS9rYXNhbi9rYXNh bi5oICAgICAgfCAxOSArKysrKysrKysrKysrKysrKysrDQomZ3Q7ICZndDsgIG1tL2thc2FuL3Jl cG9ydC5jICAgICB8IDIxICsrKysrKysrKysrKysrKysrLS0tLQ0KJmd0OyAmZ3Q7ICA3IGZpbGVz IGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pDQomZ3Q7ICZndDsNCiZn dDsgJmd0OyBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9rYXNhbi5oIGIvaW5jbHVkZS9saW51 eC9rYXNhbi5oDQomZ3Q7ICZndDsgaW5kZXggMzEzMTRjYTdjNjM1Li4yM2I3ZWUwMDU3MmQgMTAw NjQ0DQomZ3Q7ICZndDsgLS0tIGEvaW5jbHVkZS9saW51eC9rYXNhbi5oDQomZ3Q7ICZndDsgKysr IGIvaW5jbHVkZS9saW51eC9rYXNhbi5oDQomZ3Q7ICZndDsgQEAgLTE3NCwxMSArMTc0LDEzIEBA IHN0YXRpYyBpbmxpbmUgc2l6ZV90IGthc2FuX21ldGFkYXRhX3NpemUoc3RydWN0IGttZW1fY2Fj aGUgKmNhY2hlKSB7IHJldHVybiAwOyB9DQomZ3Q7ICZndDsNCiZndDsgJmd0OyAgdm9pZCBrYXNh bl9jYWNoZV9zaHJpbmsoc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlKTsNCiZndDsgJmd0OyAgdm9p ZCBrYXNhbl9jYWNoZV9zaHV0ZG93bihzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUpOw0KJmd0OyAm Z3Q7ICt2b2lkIGthc2FuX3JlY29yZF9hdXhfc3RhY2sodm9pZCAqcHRyKTsNCiZndDsgJmd0Ow0K Jmd0OyAmZ3Q7ICAjZWxzZSAvKiBDT05GSUdfS0FTQU5fR0VORVJJQyAqLw0KJmd0OyAmZ3Q7DQom Z3Q7ICZndDsgIHN0YXRpYyBpbmxpbmUgdm9pZCBrYXNhbl9jYWNoZV9zaHJpbmsoc3RydWN0IGtt ZW1fY2FjaGUgKmNhY2hlKSB7fQ0KJmd0OyAmZ3Q7ICBzdGF0aWMgaW5saW5lIHZvaWQga2FzYW5f Y2FjaGVfc2h1dGRvd24oc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlKSB7fQ0KJmd0OyAmZ3Q7ICtz dGF0aWMgaW5saW5lIHZvaWQga2FzYW5fcmVjb3JkX2F1eF9zdGFjayh2b2lkICpwdHIpIHt9DQom Z3Q7ICZndDsNCiZndDsgJmd0OyAgI2VuZGlmIC8qIENPTkZJR19LQVNBTl9HRU5FUklDICovDQom Z3Q7ICZndDsNCiZndDsgJmd0OyBkaWZmIC0tZ2l0IGEva2VybmVsL3JjdS90cmVlLmMgYi9rZXJu ZWwvcmN1L3RyZWUuYw0KJmd0OyAmZ3Q7IGluZGV4IDA2NTQ4ZTJlYmI3Mi4uZGU4NzJiNmNjMjYx IDEwMDY0NA0KJmd0OyAmZ3Q7IC0tLSBhL2tlcm5lbC9yY3UvdHJlZS5jDQomZ3Q7ICZndDsgKysr IGIva2VybmVsL3JjdS90cmVlLmMNCiZndDsgJmd0OyBAQCAtNTcsNiArNTcsNyBAQA0KJmd0OyAm Z3Q7ICAjaW5jbHVkZSAmbHQ7bGludXgvc2xhYi5oJmd0Ow0KJmd0OyAmZ3Q7ICAjaW5jbHVkZSAm bHQ7bGludXgvc2NoZWQvaXNvbGF0aW9uLmgmZ3Q7DQomZ3Q7ICZndDsgICNpbmNsdWRlICZsdDts aW51eC9zY2hlZC9jbG9jay5oJmd0Ow0KJmd0OyAmZ3Q7ICsjaW5jbHVkZSAmbHQ7bGludXgva2Fz YW4uaCZndDsNCiZndDsgJmd0OyAgI2luY2x1ZGUgJnF1b3Q7Li4vdGltZS90aWNrLWludGVybmFs LmgmcXVvdDsNCiZndDsgJmd0Ow0KJmd0OyAmZ3Q7ICAjaW5jbHVkZSAmcXVvdDt0cmVlLmgmcXVv dDsNCiZndDsgJmd0OyBAQCAtMjY5NCw2ICsyNjk1LDggQEAgX19jYWxsX3JjdShzdHJ1Y3QgcmN1 X2hlYWQgKmhlYWQsIHJjdV9jYWxsYmFja190IGZ1bmMpDQomZ3Q7ICZndDsgICAgICAgICAgICAg ICAgIHRyYWNlX3JjdV9jYWxsYmFjayhyY3Vfc3RhdGUubmFtZSwgaGVhZCwNCiZndDsgJmd0OyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJjdV9zZWdjYmxpc3Rfbl9jYnMoJmFt cDtyZHAtJmd0O2NibGlzdCkpOw0KJmd0OyAmZ3Q7DQomZ3Q7ICZndDsgKyAgICAgICBrYXNhbl9y ZWNvcmRfYXV4X3N0YWNrKGhlYWQpOw0KJmd0OyAmZ3Q7ICsNCiZndDsgJmd0OyAgICAgICAgIC8q IEdvIGhhbmRsZSBhbnkgUkNVIGNvcmUgcHJvY2Vzc2luZyByZXF1aXJlZC4gKi8NCiZndDsgJmd0 OyAgICAgICAgIGlmIChJU19FTkFCTEVEKENPTkZJR19SQ1VfTk9DQl9DUFUpICZhbXA7JmFtcDsN CiZndDsgJmd0OyAgICAgICAgICAgICB1bmxpa2VseShyY3Vfc2VnY2JsaXN0X2lzX29mZmxvYWRl ZCgmYW1wO3JkcC0mZ3Q7Y2JsaXN0KSkpIHsNCiZndDsgJmd0OyBkaWZmIC0tZ2l0IGEvbGliL0tj b25maWcua2FzYW4gYi9saWIvS2NvbmZpZy5rYXNhbg0KJmd0OyAmZ3Q7IGluZGV4IDgxZjU0NjRl YTllMS4uNTZhODkyOTFmMWNjIDEwMDY0NA0KJmd0OyAmZ3Q7IC0tLSBhL2xpYi9LY29uZmlnLmth c2FuDQomZ3Q7ICZndDsgKysrIGIvbGliL0tjb25maWcua2FzYW4NCiZndDsgJmd0OyBAQCAtNTgs NiArNTgsOCBAQCBjb25maWcgS0FTQU5fR0VORVJJQw0KJmd0OyAmZ3Q7ICAgICAgICAgICBGb3Ig YmV0dGVyIGVycm9yIGRldGVjdGlvbiBlbmFibGUgQ09ORklHX1NUQUNLVFJBQ0UuDQomZ3Q7ICZn dDsgICAgICAgICAgIEN1cnJlbnRseSBDT05GSUdfS0FTQU5fR0VORVJJQyBkb2Vzbid0IHdvcmsg d2l0aCBDT05GSUdfREVCVUdfU0xBQg0KJmd0OyAmZ3Q7ICAgICAgICAgICAodGhlIHJlc3VsdGlu ZyBrZXJuZWwgZG9lcyBub3QgYm9vdCkuDQomZ3Q7ICZndDsgKyAgICAgICAgIEN1cnJlbnRseSBD T05GSUdfS0FTQU5fR0VORVJJQyB3aWxsIHByaW50IGZpcnN0IGFuZCBsYXN0IGNhbGxfcmN1KCkN CiZndDsgJmd0OyArICAgICAgICAgY2FsbCBzdGFjay4gSXQgZG9lc24ndCBpbmNyZWFzZSB0aGUg Y29zdCBvZiBtZW1vcnkgY29uc3VtcHRpb24uDQomZ3Q7ICZndDsNCiZndDsgJmd0OyAgY29uZmln IEtBU0FOX1NXX1RBR1MNCiZndDsgJmd0OyAgICAgICAgIGJvb2wgJnF1b3Q7U29mdHdhcmUgdGFn LWJhc2VkIG1vZGUmcXVvdDsNCiZndDsgJmd0OyBkaWZmIC0tZ2l0IGEvbW0va2FzYW4vY29tbW9u LmMgYi9tbS9rYXNhbi9jb21tb24uYw0KJmd0OyAmZ3Q7IGluZGV4IDI5MDYzNThlNDJmMC4uOGJj NjE4Mjg5YmIxIDEwMDY0NA0KJmd0OyAmZ3Q7IC0tLSBhL21tL2thc2FuL2NvbW1vbi5jDQomZ3Q7 ICZndDsgKysrIGIvbW0va2FzYW4vY29tbW9uLmMNCiZndDsgJmd0OyBAQCAtNDEsNyArNDEsNyBA QA0KJmd0OyAmZ3Q7ICAjaW5jbHVkZSAmcXVvdDtrYXNhbi5oJnF1b3Q7DQomZ3Q7ICZndDsgICNp bmNsdWRlICZxdW90Oy4uL3NsYWIuaCZxdW90Ow0KJmd0OyAmZ3Q7DQomZ3Q7ICZndDsgLXN0YXRp YyBpbmxpbmUgZGVwb3Rfc3RhY2tfaGFuZGxlX3Qgc2F2ZV9zdGFjayhnZnBfdCBmbGFncykNCiZn dDsgJmd0OyArZGVwb3Rfc3RhY2tfaGFuZGxlX3Qga2FzYW5fc2F2ZV9zdGFjayhnZnBfdCBmbGFn cykNCiZndDsgJmd0OyAgew0KJmd0OyAmZ3Q7ICAgICAgICAgdW5zaWduZWQgbG9uZyBlbnRyaWVz W0tBU0FOX1NUQUNLX0RFUFRIXTsNCiZndDsgJmd0OyAgICAgICAgIHVuc2lnbmVkIGludCBucl9l bnRyaWVzOw0KJmd0OyAmZ3Q7IEBAIC01NCw3ICs1NCw3IEBAIHN0YXRpYyBpbmxpbmUgZGVwb3Rf c3RhY2tfaGFuZGxlX3Qgc2F2ZV9zdGFjayhnZnBfdCBmbGFncykNCiZndDsgJmd0OyAgc3RhdGlj IGlubGluZSB2b2lkIHNldF90cmFjayhzdHJ1Y3Qga2FzYW5fdHJhY2sgKnRyYWNrLCBnZnBfdCBm bGFncykNCiZndDsgJmd0OyAgew0KJmd0OyAmZ3Q7ICAgICAgICAgdHJhY2stJmd0O3BpZCA9IGN1 cnJlbnQtJmd0O3BpZDsNCiZndDsgJmd0OyAtICAgICAgIHRyYWNrLSZndDtzdGFjayA9IHNhdmVf c3RhY2soZmxhZ3MpOw0KJmd0OyAmZ3Q7ICsgICAgICAgdHJhY2stJmd0O3N0YWNrID0ga2FzYW5f c2F2ZV9zdGFjayhmbGFncyk7DQomZ3Q7ICZndDsgIH0NCiZndDsgJmd0Ow0KJmd0OyAmZ3Q7ICB2 b2lkIGthc2FuX2VuYWJsZV9jdXJyZW50KHZvaWQpDQomZ3Q7ICZndDsgZGlmZiAtLWdpdCBhL21t L2thc2FuL2dlbmVyaWMuYyBiL21tL2thc2FuL2dlbmVyaWMuYw0KJmd0OyAmZ3Q7IGluZGV4IDU2 ZmY4ODg1ZmUyZS4uYjg2ODgwYzMzOGUyIDEwMDY0NA0KJmd0OyAmZ3Q7IC0tLSBhL21tL2thc2Fu L2dlbmVyaWMuYw0KJmd0OyAmZ3Q7ICsrKyBiL21tL2thc2FuL2dlbmVyaWMuYw0KJmd0OyAmZ3Q7 IEBAIC0zMjUsMyArMzI1LDMyIEBAIERFRklORV9BU0FOX1NFVF9TSEFET1coZjIpOw0KJmd0OyAm Z3Q7ICBERUZJTkVfQVNBTl9TRVRfU0hBRE9XKGYzKTsNCiZndDsgJmd0OyAgREVGSU5FX0FTQU5f U0VUX1NIQURPVyhmNSk7DQomZ3Q7ICZndDsgIERFRklORV9BU0FOX1NFVF9TSEFET1coZjgpOw0K Jmd0OyAmZ3Q7ICsNCiZndDsgJmd0OyArdm9pZCBrYXNhbl9yZWNvcmRfYXV4X3N0YWNrKHZvaWQg KmFkZHIpDQomZ3Q7ICZndDsgK3sNCiZndDsgJmd0OyArICAgICAgIHN0cnVjdCBwYWdlICpwYWdl ID0ga2FzYW5fYWRkcl90b19wYWdlKGFkZHIpOw0KJmd0OyAmZ3Q7ICsgICAgICAgc3RydWN0IGtt ZW1fY2FjaGUgKmNhY2hlOw0KJmd0OyAmZ3Q7ICsgICAgICAgc3RydWN0IGthc2FuX2FsbG9jX21l dGEgKmFsbG9jX2luZm87DQomZ3Q7ICZndDsgKyAgICAgICB2b2lkICpvYmplY3Q7DQomZ3Q7ICZn dDsgKw0KJmd0OyAmZ3Q7ICsgICAgICAgaWYgKCEocGFnZSAmYW1wOyZhbXA7IFBhZ2VTbGFiKHBh Z2UpKSkNCiZndDsgJmd0OyArICAgICAgICAgICAgICAgcmV0dXJuOw0KJmd0OyAmZ3Q7ICsNCiZn dDsgJmd0OyArICAgICAgIGNhY2hlID0gcGFnZS0mZ3Q7c2xhYl9jYWNoZTsNCiZndDsgJmd0OyAr ICAgICAgIG9iamVjdCA9IG5lYXJlc3Rfb2JqKGNhY2hlLCBwYWdlLCBhZGRyKTsNCiZndDsgJmd0 OyArICAgICAgIGFsbG9jX2luZm8gPSBnZXRfYWxsb2NfaW5mbyhjYWNoZSwgb2JqZWN0KTsNCiZn dDsgJmd0OyArDQomZ3Q7ICZndDsgKyAgICAgICBpZiAoIWFsbG9jX2luZm8tJmd0O3JjdV9zdGFj a1swXSkNCiZndDsgJmd0OyArICAgICAgICAgICAgICAgLyogcmVjb3JkIGZpcnN0IGNhbGxfcmN1 KCkgY2FsbCBzdGFjayAqLw0KJmd0OyAmZ3Q7ICsgICAgICAgICAgICAgICBhbGxvY19pbmZvLSZn dDtyY3Vfc3RhY2tbMF0gPSBrYXNhbl9zYXZlX3N0YWNrKEdGUF9OT1dBSVQpOw0KJmd0OyAmZ3Q7 ICsgICAgICAgZWxzZQ0KJmd0OyAmZ3Q7ICsgICAgICAgICAgICAgICAvKiByZWNvcmQgbGFzdCBj YWxsX3JjdSgpIGNhbGwgc3RhY2sgKi8NCiZndDsgJmd0OyArICAgICAgICAgICAgICAgYWxsb2Nf aW5mby0mZ3Q7cmN1X3N0YWNrWzFdID0ga2FzYW5fc2F2ZV9zdGFjayhHRlBfTk9XQUlUKTsNCiZn dDsgJmd0OyArfQ0KJmd0OyAmZ3Q7ICsNCiZndDsgJmd0OyArc3RydWN0IGthc2FuX3RyYWNrICpr YXNhbl9nZXRfYXV4X3N0YWNrKHN0cnVjdCBrYXNhbl9hbGxvY19tZXRhICphbGxvY19pbmZvLA0K Jmd0OyAmZ3Q7ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHU4IGlkeCkNCiZndDsgJmd0OyArew0KJmd0OyAmZ3Q7ICsgICAgICAgcmV0dXJuIGNvbnRhaW5l cl9vZigmYW1wO2FsbG9jX2luZm8tJmd0O3JjdV9zdGFja1tpZHhdLA0KJmd0OyAmZ3Q7ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBrYXNhbl90 cmFjaywgc3RhY2spOw0KJmd0OyAmZ3Q7ICt9DQomZ3Q7ICZndDsgZGlmZiAtLWdpdCBhL21tL2th c2FuL2thc2FuLmggYi9tbS9rYXNhbi9rYXNhbi5oDQomZ3Q7ICZndDsgaW5kZXggZThmMzcxOTlk ODg1Li4xY2MxZmI3YjBkZTMgMTAwNjQ0DQomZ3Q7ICZndDsgLS0tIGEvbW0va2FzYW4va2FzYW4u aA0KJmd0OyAmZ3Q7ICsrKyBiL21tL2thc2FuL2thc2FuLmgNCiZndDsgJmd0OyBAQCAtOTYsMTUg Kzk2LDI4IEBAIHN0cnVjdCBrYXNhbl90cmFjayB7DQomZ3Q7ICZndDsgICAgICAgICBkZXBvdF9z dGFja19oYW5kbGVfdCBzdGFjazsNCiZndDsgJmd0OyAgfTsNCiZndDsgJmd0Ow0KJmd0OyAmZ3Q7 ICsjaWZkZWYgQ09ORklHX0tBU0FOX0dFTkVSSUMNCiZndDsgJmd0OyArI2RlZmluZSBTSVpFT0Zf UFRSIHNpemVvZih2b2lkICopDQomZ3Q7DQomZ3Q7IFBsZWFzZSBtb3ZlIHRoaXMgdG8gZ2VuZXJp Yy5jIGNsb3NlciB0byBrYXNhbl9zZXRfZnJlZV9pbmZvLg0KJmd0OyBVbm5lY2Vzc2FyeSBpbiB0 aGUgaGVhZGVyLg0KJmd0Ow0KJmd0OyAmZ3Q7ICsjZGVmaW5lIEtBU0FOX05SX1JDVV9DQUxMX1NU QUNLUyAyDQomZ3Q7DQomZ3Q7IFNpbmNlIEtBU0FOX05SX1JDVV9DQUxMX1NUQUNLUyBpcyBvbmx5 IHVzZWQgb25jZSBiZWxvdywgeW91IGNvdWxkIGFzDQomZ3Q7IHdlbGwgdXNlIDIgaW5zdGVhZCBv ZiBpdC4NCiZndDsgUmVkdWNlcyBsZXZlbCBvZiBpbmRpcmVjdGlvbiBhbmQgY29nbml0aXZlIGxv YWQuDQomZ3Q7DQomZ3Q7ICZndDsgKyNlbHNlIC8qIENPTkZJR19LQVNBTl9HRU5FUklDICovDQom Z3Q7ICZndDsgICNpZmRlZiBDT05GSUdfS0FTQU5fU1dfVEFHU19JREVOVElGWQ0KJmd0OyAmZ3Q7 ICAjZGVmaW5lIEtBU0FOX05SX0ZSRUVfU1RBQ0tTIDUNCiZndDsgJmd0OyAgI2Vsc2UNCiZndDsg Jmd0OyAgI2RlZmluZSBLQVNBTl9OUl9GUkVFX1NUQUNLUyAxDQomZ3Q7ICZndDsgICNlbmRpZg0K Jmd0OyAmZ3Q7ICsjZW5kaWYgLyogQ09ORklHX0tBU0FOX0dFTkVSSUMgKi8NCiZndDsgJmd0Ow0K Jmd0OyAmZ3Q7ICBzdHJ1Y3Qga2FzYW5fYWxsb2NfbWV0YSB7DQomZ3Q7ICZndDsgICAgICAgICBz dHJ1Y3Qga2FzYW5fdHJhY2sgYWxsb2NfdHJhY2s7DQomZ3Q7ICZndDsgKyNpZmRlZiBDT05GSUdf S0FTQU5fR0VORVJJQw0KJmd0OyAmZ3Q7ICsgICAgICAgLyoNCiZndDsgJmd0OyArICAgICAgICAq IGNhbGxfcmN1KCkgY2FsbCBzdGFjayBpcyBzdG9yZWQgaW50byBzdHJ1Y3Qga2FzYW5fYWxsb2Nf bWV0YS4NCiZndDsgJmd0OyArICAgICAgICAqIFRoZSBmcmVlIHN0YWNrIGlzIHN0b3JlZCBpbnRv IGZyZWVkIG9iamVjdC4NCiZndDsgJmd0OyArICAgICAgICAqLw0KJmd0OyAmZ3Q7ICsgICAgICAg ZGVwb3Rfc3RhY2tfaGFuZGxlX3QgcmN1X3N0YWNrW0tBU0FOX05SX1JDVV9DQUxMX1NUQUNLU107 DQomZ3Q7ICZndDsgKyNlbHNlDQomZ3Q7ICZndDsgICAgICAgICBzdHJ1Y3Qga2FzYW5fdHJhY2sg ZnJlZV90cmFja1tLQVNBTl9OUl9GUkVFX1NUQUNLU107DQomZ3Q7ICZndDsgKyNlbmRpZg0KJmd0 OyAmZ3Q7ICAjaWZkZWYgQ09ORklHX0tBU0FOX1NXX1RBR1NfSURFTlRJRlkNCiZndDsgJmd0OyAg ICAgICAgIHU4IGZyZWVfcG9pbnRlcl90YWdbS0FTQU5fTlJfRlJFRV9TVEFDS1NdOw0KJmd0OyAm Z3Q7ICAgICAgICAgdTggZnJlZV90cmFja19pZHg7DQomZ3Q7ICZndDsgQEAgLTE1OSwxNiArMTcy LDIyIEBAIHZvaWQga2FzYW5fcmVwb3J0X2ludmFsaWRfZnJlZSh2b2lkICpvYmplY3QsIHVuc2ln bmVkIGxvbmcgaXApOw0KJmd0OyAmZ3Q7DQomZ3Q7ICZndDsgIHN0cnVjdCBwYWdlICprYXNhbl9h ZGRyX3RvX3BhZ2UoY29uc3Qgdm9pZCAqYWRkcik7DQomZ3Q7ICZndDsNCiZndDsgJmd0OyArZGVw b3Rfc3RhY2tfaGFuZGxlX3Qga2FzYW5fc2F2ZV9zdGFjayhnZnBfdCBmbGFncyk7DQomZ3Q7ICZn dDsgKw0KJmd0OyAmZ3Q7ICAjaWYgZGVmaW5lZChDT05GSUdfS0FTQU5fR0VORVJJQykgJmFtcDsm YW1wOyBcDQomZ3Q7ICZndDsgICAgICAgICAoZGVmaW5lZChDT05GSUdfU0xBQikgfHwgZGVmaW5l ZChDT05GSUdfU0xVQikpDQomZ3Q7ICZndDsgIHZvaWQgcXVhcmFudGluZV9wdXQoc3RydWN0IGth c2FuX2ZyZWVfbWV0YSAqaW5mbywgc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlKTsNCiZndDsgJmd0 OyAgdm9pZCBxdWFyYW50aW5lX3JlZHVjZSh2b2lkKTsNCiZndDsgJmd0OyAgdm9pZCBxdWFyYW50 aW5lX3JlbW92ZV9jYWNoZShzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUpOw0KJmd0OyAmZ3Q7ICtz dHJ1Y3Qga2FzYW5fdHJhY2sgKmthc2FuX2dldF9hdXhfc3RhY2soc3RydWN0IGthc2FuX2FsbG9j X21ldGEgKmFsbG9jX2luZm8sDQomZ3Q7ICZndDsgKyAgICAgICAgICAgICAgICAgICAgICAgdTgg aWR4KTsNCiZndDsgJmd0OyAgI2Vsc2UNCiZndDsgJmd0OyAgc3RhdGljIGlubGluZSB2b2lkIHF1 YXJhbnRpbmVfcHV0KHN0cnVjdCBrYXNhbl9mcmVlX21ldGEgKmluZm8sDQomZ3Q7ICZndDsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUpIHsg fQ0KJmd0OyAmZ3Q7ICBzdGF0aWMgaW5saW5lIHZvaWQgcXVhcmFudGluZV9yZWR1Y2Uodm9pZCkg eyB9DQomZ3Q7ICZndDsgIHN0YXRpYyBpbmxpbmUgdm9pZCBxdWFyYW50aW5lX3JlbW92ZV9jYWNo ZShzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUpIHsgfQ0KJmd0OyAmZ3Q7ICtzdGF0aWMgaW5saW5l IHN0cnVjdCBrYXNhbl90cmFjayAqa2FzYW5fZ2V0X2F1eF9zdGFjaygNCiZndDsgJmd0OyArICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qga2FzYW5fYWxsb2NfbWV0YSAqYWxsb2NfaW5mbywg dTggaWR4KSB7IHJldHVybiBOVUxMOyB9DQomZ3Q7ICZndDsgICNlbmRpZg0KJmd0OyAmZ3Q7DQom Z3Q7ICZndDsgICNpZmRlZiBDT05GSUdfS0FTQU5fU1dfVEFHUw0KJmd0OyAmZ3Q7IGRpZmYgLS1n aXQgYS9tbS9rYXNhbi9yZXBvcnQuYyBiL21tL2thc2FuL3JlcG9ydC5jDQomZ3Q7ICZndDsgaW5k ZXggODBmMjNjOWRhNmIwLi5mMTZhMWEyMTA4MTUgMTAwNjQ0DQomZ3Q7ICZndDsgLS0tIGEvbW0v a2FzYW4vcmVwb3J0LmMNCiZndDsgJmd0OyArKysgYi9tbS9rYXNhbi9yZXBvcnQuYw0KJmd0OyAm Z3Q7IEBAIC0xMDUsOSArMTA1LDEzIEBAIHN0YXRpYyB2b2lkIGVuZF9yZXBvcnQodW5zaWduZWQg bG9uZyAqZmxhZ3MpDQomZ3Q7ICZndDsgICAgICAgICBrYXNhbl9lbmFibGVfY3VycmVudCgpOw0K Jmd0OyAmZ3Q7ICB9DQomZ3Q7ICZndDsNCiZndDsgJmd0OyAtc3RhdGljIHZvaWQgcHJpbnRfdHJh Y2soc3RydWN0IGthc2FuX3RyYWNrICp0cmFjaywgY29uc3QgY2hhciAqcHJlZml4KQ0KJmd0OyAm Z3Q7ICtzdGF0aWMgdm9pZCBwcmludF90cmFjayhzdHJ1Y3Qga2FzYW5fdHJhY2sgKnRyYWNrLCBj b25zdCBjaGFyICpwcmVmaXgsDQomZ3Q7ICZndDsgKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc19jYWxscmN1KQ0KJmd0OyAmZ3Q7ICB7DQomZ3Q7 ICZndDsgLSAgICAgICBwcl9lcnIoJnF1b3Q7JXMgYnkgdGFzayAldTpcbiZxdW90OywgcHJlZml4 LCB0cmFjay0mZ3Q7cGlkKTsNCiZndDsgJmd0OyArICAgICAgIGlmIChpc19jYWxscmN1KQ0KJmd0 OyAmZ3Q7ICsgICAgICAgICAgICAgICBwcl9lcnIoJnF1b3Q7JXM6XG4mcXVvdDssIHByZWZpeCk7 DQomZ3Q7ICZndDsgKyAgICAgICBlbHNlDQomZ3Q7ICZndDsgKyAgICAgICAgICAgICAgIHByX2Vy cigmcXVvdDslcyBieSB0YXNrICV1OlxuJnF1b3Q7LCBwcmVmaXgsIHRyYWNrLSZndDtwaWQpOw0K Jmd0OyAmZ3Q7ICAgICAgICAgaWYgKHRyYWNrLSZndDtzdGFjaykgew0KJmd0OyAmZ3Q7ICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nICplbnRyaWVzOw0KJmd0OyAmZ3Q7ICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgbnJfZW50cmllczsNCiZndDsgJmd0OyBAQCAtMTg3LDExICsxOTEs MjAgQEAgc3RhdGljIHZvaWQgZGVzY3JpYmVfb2JqZWN0KHN0cnVjdCBrbWVtX2NhY2hlICpjYWNo ZSwgdm9pZCAqb2JqZWN0LA0KJmd0OyAmZ3Q7ICAgICAgICAgaWYgKGNhY2hlLSZndDtmbGFncyAm YW1wOyBTTEFCX0tBU0FOKSB7DQomZ3Q7ICZndDsgICAgICAgICAgICAgICAgIHN0cnVjdCBrYXNh bl90cmFjayAqZnJlZV90cmFjazsNCiZndDsgJmd0Ow0KJmd0OyAmZ3Q7IC0gICAgICAgICAgICAg ICBwcmludF90cmFjaygmYW1wO2FsbG9jX2luZm8tJmd0O2FsbG9jX3RyYWNrLCAmcXVvdDtBbGxv Y2F0ZWQmcXVvdDspOw0KJmd0OyAmZ3Q7ICsgICAgICAgICAgICAgICBwcmludF90cmFjaygmYW1w O2FsbG9jX2luZm8tJmd0O2FsbG9jX3RyYWNrLCAmcXVvdDtBbGxvY2F0ZWQmcXVvdDssIGZhbHNl KTsNCiZndDsgJmd0OyAgICAgICAgICAgICAgICAgcHJfZXJyKCZxdW90O1xuJnF1b3Q7KTsNCiZn dDsgJmd0OyAgICAgICAgICAgICAgICAgZnJlZV90cmFjayA9IGthc2FuX2dldF9mcmVlX3RyYWNr KGNhY2hlLCBvYmplY3QsIHRhZyk7DQomZ3Q7ICZndDsgLSAgICAgICAgICAgICAgIHByaW50X3Ry YWNrKGZyZWVfdHJhY2ssICZxdW90O0ZyZWVkJnF1b3Q7KTsNCiZndDsgJmd0OyArICAgICAgICAg ICAgICAgcHJpbnRfdHJhY2soZnJlZV90cmFjaywgJnF1b3Q7RnJlZWQmcXVvdDssIGZhbHNlKTsN CiZndDsgJmd0OyAgICAgICAgICAgICAgICAgcHJfZXJyKCZxdW90O1xuJnF1b3Q7KTsNCiZndDsg Jmd0OyArDQomZ3Q7ICZndDsgKyAgICAgICAgICAgICAgIGlmIChJU19FTkFCTEVEKENPTkZJR19L QVNBTl9HRU5FUklDKSkgew0KJmd0OyAmZ3Q7ICsgICAgICAgICAgICAgICAgICAgICAgIGZyZWVf dHJhY2sgPSBrYXNhbl9nZXRfYXV4X3N0YWNrKGFsbG9jX2luZm8sIDApOw0KJmd0OyAmZ3Q7ICsg ICAgICAgICAgICAgICAgICAgICAgIHByaW50X3RyYWNrKGZyZWVfdHJhY2ssICZxdW90O0ZpcnN0 IGNhbGxfcmN1KCkgY2FsbCBzdGFjayZxdW90OywgdHJ1ZSk7DQomZ3Q7ICZndDsgKyAgICAgICAg ICAgICAgICAgICAgICAgcHJfZXJyKCZxdW90O1xuJnF1b3Q7KTsNCiZndDsgJmd0OyArICAgICAg ICAgICAgICAgICAgICAgICBmcmVlX3RyYWNrID0ga2FzYW5fZ2V0X2F1eF9zdGFjayhhbGxvY19p bmZvLCAxKTsNCiZndDsgJmd0OyArICAgICAgICAgICAgICAgICAgICAgICBwcmludF90cmFjayhm cmVlX3RyYWNrLCAmcXVvdDtMYXN0IGNhbGxfcmN1KCkgY2FsbCBzdGFjayZxdW90OywgdHJ1ZSk7 DQomZ3Q7ICZndDsgKyAgICAgICAgICAgICAgICAgICAgICAgcHJfZXJyKCZxdW90O1xuJnF1b3Q7 KTsNCiZndDsgJmd0OyArICAgICAgICAgICAgICAgfQ0KJmd0OyAmZ3Q7ICAgICAgICAgfQ0KJmd0 OyAmZ3Q7DQomZ3Q7ICZndDsgICAgICAgICBkZXNjcmliZV9vYmplY3RfYWRkcihjYWNoZSwgb2Jq ZWN0LCBhZGRyKTsNCg0KU29tZSBoaWdoZXIgbGV2ZWwgY29tbWVudHMuDQoNCjEuIEkgdGhpbmsg d2UgbmVlZCB0byBwdXQgdGhlIGZyZWUgdHJhY2sgaW50byBrYXNhbl9mcmVlX21ldGEgYXMgaXQN CndhcyBiZWZvcmUuIEl0IGxvb2tzIGxpa2UgZXhhY3RseSB0aGUgcGxhY2UgZm9yIGl0LiBXZSBo YXZlIGxvZ2ljIHRvDQpwcm9wZXJseSBwbGFjZSBpdCBhbmQgdG8gZG8gdGhlIGNhc3RzLg0KDQo8 L1BSRT4NCjwvQkxPQ0tRVU9URT4NCjxCUj4NCklmIHRoZSBmcmVlIHRyYWNrIHB1dCBrYXNhbl9m cmVlX21ldGEsIHRoZW4gaXQgaW5jcmVhc2Ugc2xhYiBtZXRhIHNpemU/PEJSPg0KT3VyIG9yaWdp bmFsIGdvYWwgZG9lcyBub3QgZW5sYXJnZSBpdC48QlI+DQo8QlI+DQo8QkxPQ0tRVU9URSBUWVBF PUNJVEU+DQo8UFJFPg0KMi4gV2UgbmVlZCB0byB6ZXJvIGF1eCBzdGFja3Mgd2hlbiB3ZSByZWFs bG9jYXRlIHRoZSBvYmplY3QuIE90aGVyd2lzZQ0Kd2UgcHJpbnQgY29uZnVzaW5nIGdhcmJhZ2Uu DQoNCjwvUFJFPg0KPC9CTE9DS1FVT1RFPg0KPEJSPg0KTXkgbG9jYWwgaGFzIGFuIFVUIGFib3V0 IHVzZS1hZnRlci1mcmVlIGFuZCByY3UsIGJ1dCBpdCBpcyBoYXJkIHRvIHRlc3QgdGhlIHByaW50 aW5nIGNvbmZ1c2luZyBnYXJiYWdlLCBiZWNhdXNlIHdlIG1heSBuZWVkIHRvIGdldCB0aGUgc2Ft ZSBvYmplY3Qob2xkIHBvaW50ZXIgYW5kIG5ldyBwb2ludGVyKS4gSW4gZ2VuZXJpYyBLQVNBTiBp cyBub3QgZWFzeSB0byBnZXQgaXQuPEJSPg0KPEJSPg0KPEJMT0NLUVVPVEUgVFlQRT1DSVRFPg0K PFBSRT4NCjMuIF9fa2FzYW5fc2xhYl9mcmVlIG5vdyBjb250YWlucyBhIHdpbmRvdyBvZiBpbmNv bnNpc3RlbmN5IHdoZW4gaXQNCm1hcmtlZCB0aGUgb2JqZWN0IGFzIEtBU0FOX0tNQUxMT0NfRlJF RSwgYnV0IGRpZCBub3Qgc3RvcmUgdGhlIGZyZWUNCnRyYWNrIHlldC4gSWYgYW5vdGhlciB0aHJl YWQgcHJpbnRzIGEgcmVwb3J0IG5vdywgaXQgd2lsbCBwcmludCByYW5kb20NCmdhcmJhZ2UuDQoN CjwvUFJFPg0KPC9CTE9DS1FVT1RFPg0KPEJSPg0KSXQgaXMgcG9zc2libGUsIGJ1dCB0aGUgd2lu ZG93IGlzIHNvIHRpbnkuIEl0IHNldHMgZnJlZSB0cmFjayBpbW1lZGlhdGVseSBhZnRlciB3cml0 ZSB0aGUgS0FTQU5fS01BTExPQ19GUkVFLjxCUj4NCjxCUj4NCjxCTE9DS1FVT1RFIFRZUEU9Q0lU RT4NCjxQUkU+DQo0LiBXZSBuZWVkIHNvbWUgdGVzdHMuIEF0IGxlYXN0ICgyKSBzaG91bGQgYmUg dmlzaWJsZSBvbiB0ZXN0cy4NCjwvUFJFPg0KPC9CTE9DS1FVT1RFPg0KPEJSPg0KT2suDQo8L0JP RFk+DQo8L0hUTUw+DQo= --=-zzz+4sJh7De0VKt8SICN--