This message generated a parse failure. Raw output follows here. Please use 'back' to navigate. From devnull@lkml.org Thu Apr 25 11:47:57 2024 >From mailfetcher Fri Nov 4 05:00:27 2016 Envelope-to: lkml@grols.ch Delivery-date: Fri, 04 Nov 2016 05:00:27 +0100 Received: from srv.grols.ch [5.172.41.101] by 7a0960bb2a7f with IMAP (fetchmail-6.3.26) for (single-drop); Fri, 04 Nov 2016 05:00:27 +0100 (CET) Received: from vger.kernel.org ([209.132.180.67]) by home.grols.ch with esmtp (Exim 4.87) (envelope-from ) id 1c2Vg2-0002WG-7i for lkml@grols.ch; Fri, 04 Nov 2016 05:00:27 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750879AbcKDEAX (ORCPT ); Fri, 4 Nov 2016 00:00:23 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:34301 "EHLO out2-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750719AbcKDEAW (ORCPT ); Fri, 4 Nov Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 6ABBF2075A; Fri, 4 Nov 2016 00:00:20 -0400 (EDT) Received: from frontend1 ([10.202.2.160]) by compute7.internal (MEProxy); Fri, 04 Nov 2016 00:00:20 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=aj.id.au; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=UblP0qMWuk097197oS9wfuLo77k=; b=EiAf DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=smtpout; bh=UblP0qMWuk0971 97 X-ME-Sender: X-Sasl-enc: z0KSu3I0Vve3TxDwW9b72yJciI/BnOhA6rcT5MjV/9g2 1478232015 Received: from keelia (unknown [203.0.153.9]) by mail.messagingengine.com (Postfix) with ESMTPA id 48872F29D4; Fri, 4 Nov 2016 00:00:05 -0400 (EDT) Message-Id: <1478231992.27396.79.camel@aj.id.au> Subject: Re: [PATCH v2 4/6] pinctrl: aspeed: Read and write bits in LPCHC and GFX controllers From: Andrew Jeffery To: Joel Stanley Cc: Lee Jones , Linus Walleij , Mark Rutland , Rob Herring , linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-ker Date: Fri, 04 Nov 2016 14:29:52 +1030 In-Reply-To: References: <1478097481-14895-1-git-send-email-andrew@aj.id.au> <1478097481-14895-5-git-send-email-andrew@aj.id.au> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-+TMxMvOqGiI+odZ5dhyi" X-Mailer: Evolution 3.18.5.2-0ubuntu3 Mime-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-Id: X-Mailing-List: linux-kernel@vger.kernel.org Received-SPF: none client-ip=209.132.180.67; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org X-Spam-Score: 4.8 X-Spam-Score-Bar: ++++ X-Spam-Action: greylist X-Spam-Report: Action: greylist Symbol: SUSPICIOUS_RECIPS(1.50) Symbol: DMARC_NA(0.00) Symbol: R_SPF_NA(0.00) Symbol: FORGED_SENDER(0.30) Symbol: PRECEDENCE_BULK(0.00) Symbol: MIME_GOOD(-0.20) Symbol: FORGED_RECIPIENTS(2.00) Symbol: BAYES_SPAM(1.36) Symbol: R_DKIM_ALLO --=-+TMxMvOqGiI+odZ5dhyi Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 T24gRnJpLCAyMDE2LTExLTA0IGF0IDA5OjU0ICsxMDMwLCBKb2VsIFN0YW5sZXkgd3JvdGU6Cj4g T24gVGh1LCBOb3YgMywgMjAxNiBhdCAxOjA3IEFNLCBBbmRyZXcgSmVmZmVyeSA8YW5kcmV3QGFq LmlkLmF1PiB3cm90ZToKPiA+IAo+ID4gVGhlIFN5c3RlbSBDb250cm9sIFVuaXQgSVAgYmxvY2sg aW4gdGhlIEFzcGVlZCBTb0NzIGlzIHR5cGljYWxseSB3aGVyZQo+ID4gdGhlIHBpbm11eCBjb25m aWd1cmF0aW9uIGlzIGZvdW5kLCBidXQgbm90IGFsd2F5cy4gQSBudW1iZXIgb2YgcGlucwo+ID4g ZGVwZW5kIG9uIHN0YXRlIGluIG9uZSBvZiBMUEMgSG9zdCBDb250cm9sIChMUENIQykgb3IgU29D IERpc3BsYXkKPiA+IENvbnRyb2xsZXIgKEdGWCkgSVAgYmxvY2tzLCBzbyB0aGUgQXNwZWVkIHBp bm11eCBkcml2ZXJzIHNob3VsZCBoYXZlIHRoZQo+ID4gbWVhbnMgdG8gYWRqdXN0IHRoZXNlIGFz IG5lY2Vzc2FyeS4KPiA+IAo+ID4gV2UgdXNlIHN5c2NvbiB0byBjYXN0IGEgcmVnbWFwIG92ZXIg dGhlIEdGWCBhbmQgTFBDSENSIGJsb2Nrcywgd2hpY2ggaXMKPiA+IHVzZWQgYXMgYW4gYXJiaXRy YXRpb24gbGF5ZXIgYmV0d2VlbiB0aGUgcmVsZXZhbnQgZHJpdmVyIGFuZCB0aGUgcGluY3RybAo+ ID4gc3Vic3lzdGVtLiBUaGUgcmVnbWFwcyBhcmUgdGhlbiBleHBvc2VkIHRvIHRoZSBTb0Mtc3Bl Y2lmaWMgcGluY3RybAo+ID4gZHJpdmVycyBieSBwaGFuZGxlcyBpbiB0aGUgZGV2aWNldHJlZSwg YW5kIGFyZSBzZWxlY3RlZCBkdXJpbmcgYSBtdXgKPiA+IHJlcXVlc3QgYnkgcXVlcnlpbmcgYSBu ZXcgJ2lwJyBtZW1iZXIgaW4gc3RydWN0IGFzcGVlZF9zaWdfZGVzYy4KPiA+IAo+ID4gU2lnbmVk LW9mZi1ieTogQW5kcmV3IEplZmZlcnkgPGFuZHJld0Bhai5pZC5hdT4KPiBJIGxpa2UgdGhpcyBh IGxvdCBtb3JlIHRoYW4gdGhlIGZpcnN0IGdvLiBHb29kIHdvcmsuCj4gCj4gU29tZSBtaW5vciBj b21tZW50cyBiZWxvdy4KPiAKPiA+IAo+ID4gLS0tCj4gPiBTaW5jZSB2MToKPiA+IAo+ID4gVGhl IGNoYW5nZSBpcyBub3cgcHJvYWN0aXZlOiBpbnN0ZWFkIG9mIHJlcG9ydGluZyB0aGF0IHdlIG5l ZWQgdG8gZmxpcCBiaXRzIGluCj4gPiBjb250cm9sbGVycyB3ZSBjYW4ndCBhY2Nlc3MsIHRoZSBw YXRjaCBwcm92aWRlcyBhY2Nlc3MgdmlhIHJlZ21hcHMgZm9yIHRoZQo+ID4gcmVsZXZhbnQgY29u dHJvbGxlcnMuIFRoZSBpbXBsZW1lbnRhdGlvbiBhbHNvIHNwbGl0cyBvdXQgdGhlIElQIGJsb2Nr IElEIGludG8KPiA+IGl0cyBvd24gdmFyaWFibGUgcmF0aGVyIHRoYW4gcGFja2luZyB0aGUgdmFs dWUgaW50byB0aGUgdXBwZXIgYml0cyBvZiB0aGUgcmVnCj4gPiBtZW1iZXIgb2Ygc3RydWN0IGFz cGVlZF9zaWdfZGVzYy4gVGhpcyBkcml2ZXMgc29tZSBjaHVybiBpbiB0aGUgZGlmZiwgYnV0IEkn dmUKPiA+IHRyaWVkIHRvIG1pbmltaXNlIGl0Lgo+ID4gCj4gPiDCoC4uLi9kZXZpY2V0cmVlL2Jp bmRpbmdzL3BpbmN0cmwvcGluY3RybC1hc3BlZWQudHh0IHwgNTAgKysrKysrKysrKysrKy0tLQo+ ID4gwqBkcml2ZXJzL3BpbmN0cmwvYXNwZWVkL3BpbmN0cmwtYXNwZWVkLWc0LmPCoMKgwqDCoMKg wqDCoMKgwqB8IDE4ICsrKy0tLQo+ID4gwqBkcml2ZXJzL3BpbmN0cmwvYXNwZWVkL3BpbmN0cmwt YXNwZWVkLWc1LmPCoMKgwqDCoMKgwqDCoMKgwqB8IDM5ICsrKysrKysrKystLS0KPiA+IMKgZHJp dmVycy9waW5jdHJsL2FzcGVlZC9waW5jdHJsLWFzcGVlZC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgfCA2NiArKysrKysrKysrKysrLS0tLS0tLS0tCj4gPiDCoGRyaXZlcnMvcGluY3RybC9hc3Bl ZWQvcGluY3RybC1hc3BlZWQuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHwgMzIgKysrKysrKyst LS0KPiA+IMKgNSBmaWxlcyBjaGFuZ2VkLCAxNDQgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25z KC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGlu Z3MvcGluY3RybC9waW5jdHJsLWFzcGVlZC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUv YmluZGluZ3MvcGluY3RybC9waW5jdHJsLWFzcGVlZC50eHQKPiA+IGluZGV4IDJhZDE4YzRlYTU1 Yy4uMTE1YjBjY2U2YzFjIDEwMDY0NAo+ID4gLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL3BpbmN0cmwvcGluY3RybC1hc3BlZWQudHh0Cj4gPiArKysgYi9Eb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9waW5jdHJsLWFzcGVlZC50eHQKPiA+IEBA IC00LDEyICs0LDE5IEBAIEFzcGVlZCBQaW4gQ29udHJvbGxlcnMKPiA+IMKgVGhlIEFzcGVlZCBT b0NzIHZhcnkgaW4gZnVuY3Rpb25hbGl0eSBpbnNpZGUgYSBnZW5lcmF0aW9uIGJ1dCBoYXZlIGEg Y29tbW9uIG11eAo+ID4gwqBkZXZpY2UgcmVnaXN0ZXIgbGF5b3V0Lgo+ID4gCj4gPiAtUmVxdWly ZWQgcHJvcGVydGllczoKPiA+IC0tIGNvbXBhdGlibGUgOiBTaG91bGQgYmUgYW55IG9uZSBvZiB0 aGUgZm9sbG93aW5nOgo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCJhc3BlZWQs YXN0MjQwMC1waW5jdHJsIgo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCJhc3Bl ZWQsZzQtcGluY3RybCIKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAiYXNwZWVk LGFzdDI1MDAtcGluY3RybCIKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAiYXNw ZWVkLGc1LXBpbmN0cmwiCj4gPiArUmVxdWlyZWQgcHJvcGVydGllcyBmb3IgZzQ6Cj4gPiArLSBj b21wYXRpYmxlIDrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoFNob3VsZCBiZSBhbnkgb25lIG9mIHRoZSBmb2xsb3dpbmc6Cj4gPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAiYXNwZWVk LGFzdDI0MDAtcGluY3RybCIKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCJhc3BlZWQsZzQtcGluY3RybCIKPiA+ICsKPiA+ ICtSZXF1aXJlZCBwcm9wZXJ0aWVzIGZvciBnNToKPiA+ICstIGNvbXBhdGlibGUgOsKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgU2hvdWxkIGJlIGFueSBv bmUgb2YgdGhlIGZvbGxvd2luZzoKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCJhc3BlZWQsYXN0MjUwMC1waW5jdHJsIgo+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgImFzcGVlZCxnNS1waW5jdHJsIgo+ID4gKwo+ID4gKy0gYXNwZWVkLGV4dGVybmFs LW5vZGVzOsKgwqDCoMKgwqDCoMKgQSBjZWxsIG9mIHBoYW5kbGVzIHRvIGV4dGVybmFsIGNvbnRy b2xsZXIgbm9kZXM6Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAwOiBjb21wYXRpYmxlIHdpdGggImFzcGVlZCxhc3QyNTAw LWdmeCIsICJzeXNjb24iCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAxOiBjb21wYXRpYmxlIHdpdGggImFzcGVlZCxhc3Qy NTAwLWxwY2hjIiwgInN5c2NvbiIKPiA+IAo+ID4gwqBUaGUgcGluIGNvbnRyb2xsZXIgbm9kZSBz aG91bGQgYmUgYSBjaGlsZCBvZiBhIHN5c2NvbiBub2RlIHdpdGggdGhlIHJlcXVpcmVkCj4gPiDC oHByb3BlcnR5Ogo+ID4gQEAgLTQ3LDcgKzU0LDcgQEAgUkdNSUkxIFJHTUlJMiBSTUlJMSBSTUlJ MiBTRDEgU1BJMSBTUEkxREVCVUcgU1BJMVBBU1NUSFJVIFRJTUVSNCBUSU1FUjUgVElNRVI2Cj4g PiDCoFRJTUVSNyBUSU1FUjggVkdBQklPU1JPTQo+ID4gCj4gPiAKPiA+IC1FeGFtcGxlczoKPiA+ ICtnNCBFeGFtcGxlOgo+ID4gCj4gPiDCoHN5c2Nvbjogc2N1QDFlNmUyMDAwIHsKPiA+IMKgwqDC oMKgwqDCoMKgwqBjb21wYXRpYmxlID0gInN5c2NvbiIsICJzaW1wbGUtbWZkIjsKPiA+IEBAIC02 Myw1ICs3MCwzNCBAQCBzeXNjb246IHNjdUAxZTZlMjAwMCB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKg fTsKPiA+IMKgfTsKPiA+IAo+ID4gK2c1IEV4YW1wbGU6Cj4gPiArCj4gPiArYXBiIHsKPiA+ICvC oMKgwqDCoMKgwqDCoGdmeDogZGlzcGxheUAxZTZlNjAwMCB7Cj4gPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgY29tcGF0aWJsZSA9ICJhc3BlZWQsYXN0MjUwMC1nZngiLCAic3lzY29u IjsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZWcgPSA8MHgxZTZlNjAwMCAw eDEwMDA+Owo+ID4gK8KgwqDCoMKgwqDCoMKgfTsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoGxw Y2hjOiBscGNoY0AxZTc4OTBhMCB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg Y29tcGF0aWJsZSA9ICJhc3BlZWQsYXN0MjUwMC1scGNoYyIsICJzeXNjb24iOwo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJlZyA9IDwweDFlNzg5MGEwIDB4YzQ+Owo+ID4gK8Kg wqDCoMKgwqDCoMKgfTsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoHN5c2Nvbjogc2N1QDFlNmUy MDAwIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb21wYXRpYmxlID0gInN5 c2NvbiIsICJzaW1wbGUtbWZkIjsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBy ZWcgPSA8MHgxZTZlMjAwMCAweDFhOD47Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgcGluY3RybDogcGluY3RybCB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbXBhdGlibGUgPSAiYXNwZWVkLGc1LXBpbmN0cmwiOwo+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhc3BlZWQs ZXh0ZXJuYWwtbm9kZXMgPSA8JmdmeCwgJmxwY2hjPjsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcGluY3RybF9pMmMzX2RlZmF1bHQ6IGky YzNfZGVmYXVsdCB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmdW5jdGlvbiA9ICJJMkMzIjsKPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdyb3Vw cyA9ICJJMkMzIjsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgfTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9Owo+ID4gK8KgwqDC oMKgwqDCoMKgfTsKPiA+ICt9Owo+ID4gKwo+ID4gwqBQbGVhc2UgcmVmZXIgdG8gcGluY3RybC1i aW5kaW5ncy50eHQgaW4gdGhpcyBkaXJlY3RvcnkgZm9yIGRldGFpbHMgb2YgdGhlCj4gPiDCoGNv bW1vbiBwaW5jdHJsIGJpbmRpbmdzIHVzZWQgYnkgY2xpZW50IGRldmljZXMuCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9waW5jdHJsL2FzcGVlZC9waW5jdHJsLWFzcGVlZC1nNC5jIGIvZHJpdmVy cy9waW5jdHJsL2FzcGVlZC9waW5jdHJsLWFzcGVlZC1nNC5jCj4gPiBpbmRleCBhMjFiMDcxZmYy OTAuLjU1OGJkMTAyNDE2YyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvcGluY3RybC9hc3BlZWQv cGluY3RybC1hc3BlZWQtZzQuYwo+ID4gKysrIGIvZHJpdmVycy9waW5jdHJsL2FzcGVlZC9waW5j dHJsLWFzcGVlZC1nNC5jCj4gPiBAQCAtMjkyLDcgKzI5Miw3IEBAIFNTU0ZfUElOX0RFQ0woVTE4 LCBHUElPRzcsIEZMV1AsIFNJR19ERVNDX1NFVChTQ1U4NCwgNykpOwo+ID4gwqAjZGVmaW5lIFVB UlQ2X0RFU0PCoMKgwqDCoMKgU0lHX0RFU0NfU0VUKFNDVTkwLCA3KQo+ID4gwqAjZGVmaW5lIFJP TTE2X0RFU0PCoMKgwqDCoMKgU0lHX0RFU0NfU0VUKFNDVTkwLCA2KQo+ID4gwqAjZGVmaW5lIEZM QVNIX1dJREXCoMKgwqDCoMKgU0lHX0RFU0NfU0VUKEhXX1NUUkFQMSwgNCkKPiA+IC0jZGVmaW5l IEJPT1RfU1JDX05PUsKgwqDCoHsgSFdfU1RSQVAxLCBHRU5NQVNLKDEsIDApLCAwLCAwIH0KPiA+ ICsjZGVmaW5lIEJPT1RfU1JDX05PUsKgwqDCoHsgQVNQRUVEX0lQX1NDVSwgSFdfU1RSQVAxLCBH RU5NQVNLKDEsIDApLCAwLCAwIH0KPiA+IAo+ID4gwqAjZGVmaW5lIEE4IDU2Cj4gPiDCoFNJR19F WFBSX0RFQ0woUk9NRDgsIFJPTTE2LCBST00xNl9ERVNDKTsKPiA+IEBAIC00MTgsOSArNDE4LDkg QEAgRlVOQ19HUk9VUF9ERUNMKEkyQzgsIEc1LCBGMyk7Cj4gPiDCoCNkZWZpbmUgVTEgODgKPiA+ IMKgU1NTRl9QSU5fREVDTChVMSwgR1BJT0wwLCBOQ1RTMSwgU0lHX0RFU0NfU0VUKFNDVTg0LCAx NikpOwo+ID4gCj4gPiAtI2RlZmluZSBWUEkxOF9ERVNDwqDCoMKgwqDCoHsgU0NVOTAsIEdFTk1B U0soNSwgNCksIDEsIDAgfQo+ID4gLSNkZWZpbmUgVlBJMjRfREVTQ8KgwqDCoMKgwqB7IFNDVTkw LCBHRU5NQVNLKDUsIDQpLCAyLCAwIH0KPiA+IC0jZGVmaW5lIFZQSTMwX0RFU0PCoMKgwqDCoMKg eyBTQ1U5MCwgR0VOTUFTSyg1LCA0KSwgMywgMCB9Cj4gPiArI2RlZmluZSBWUEkxOF9ERVNDwqDC oMKgwqDCoHsgQVNQRUVEX0lQX1NDVSwgU0NVOTAsIEdFTk1BU0soNSwgNCksIDEsIDAgfQo+ID4g KyNkZWZpbmUgVlBJMjRfREVTQ8KgwqDCoMKgwqB7IEFTUEVFRF9JUF9TQ1UsIFNDVTkwLCBHRU5N QVNLKDUsIDQpLCAyLCAwIH0KPiA+ICsjZGVmaW5lIFZQSTMwX0RFU0PCoMKgwqDCoMKgeyBBU1BF RURfSVBfU0NVLCBTQ1U5MCwgR0VOTUFTSyg1LCA0KSwgMywgMCB9Cj4gPiAKPiA+IMKgI2RlZmlu ZSBUNSA4OQo+ID4gwqAjZGVmaW5lIFQ1X0RFU0PCoMKgwqDCoMKgwqDCoMKgwqBTSUdfREVTQ19T RVQoU0NVODQsIDE3KQo+ID4gQEAgLTY0MSwxMSArNjQxLDExIEBAIFNTU0ZfUElOX0RFQ0woWTIy LCBHUElPUjIsIFJPTUNTMywgU0lHX0RFU0NfU0VUKFNDVTg4LCAyNikpOwo+ID4gwqAjZGVmaW5l IFUxOSAxMzkKPiA+IMKgU1NTRl9QSU5fREVDTChVMTksIEdQSU9SMywgUk9NQ1M0LCBTSUdfREVT Q19TRVQoU0NVODgsIDI3KSk7Cj4gPiAKPiA+IC0jZGVmaW5lIFZQT09GRjBfREVTQ8KgwqDCoHsg U0NVOTQsIEdFTk1BU0soMSwgMCksIDAsIDAgfQo+ID4gLSNkZWZpbmUgVlBPMTJfREVTQ8KgwqDC oMKgwqB7IFNDVTk0LCBHRU5NQVNLKDEsIDApLCAxLCAwIH0KPiA+IC0jZGVmaW5lIFZQTzI0X0RF U0PCoMKgwqDCoMKgeyBTQ1U5NCwgR0VOTUFTSygxLCAwKSwgMiwgMCB9Cj4gPiAtI2RlZmluZSBW UE9PRkYxX0RFU0PCoMKgwqB7IFNDVTk0LCBHRU5NQVNLKDEsIDApLCAzLCAwIH0KPiA+IC0jZGVm aW5lIFZQT19PRkZfMTLCoMKgwqDCoMKgwqB7IFNDVTk0LCAweDIsIDAsIDAgfQo+ID4gKyNkZWZp bmUgVlBPT0ZGMF9ERVNDwqDCoMKgeyBBU1BFRURfSVBfU0NVLCBTQ1U5NCwgR0VOTUFTSygxLCAw KSwgMCwgMCB9Cj4gPiArI2RlZmluZSBWUE8xMl9ERVNDwqDCoMKgwqDCoHsgQVNQRUVEX0lQX1ND VSwgU0NVOTQsIEdFTk1BU0soMSwgMCksIDEsIDAgfQo+ID4gKyNkZWZpbmUgVlBPMjRfREVTQ8Kg wqDCoMKgwqB7IEFTUEVFRF9JUF9TQ1UsIFNDVTk0LCBHRU5NQVNLKDEsIDApLCAyLCAwIH0KPiA+ ICsjZGVmaW5lIFZQT09GRjFfREVTQ8KgwqDCoHsgQVNQRUVEX0lQX1NDVSwgU0NVOTQsIEdFTk1B U0soMSwgMCksIDMsIDAgfQo+ID4gKyNkZWZpbmUgVlBPX09GRl8xMsKgwqDCoMKgwqDCoHsgQVNQ RUVEX0lQX1NDVSwgU0NVOTQsIDB4MiwgMCwgMCB9Cj4gPiDCoCNkZWZpbmUgVlBPXzI0X09GRsKg wqDCoMKgwqDCoFNJR19ERVNDX1NFVChTQ1U5NCwgMSkKPiA+IAo+ID4gwqAjZGVmaW5lIFYyMSAx NDAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYXNwZWVkL3BpbmN0cmwtYXNwZWVk LWc1LmMgYi9kcml2ZXJzL3BpbmN0cmwvYXNwZWVkL3BpbmN0cmwtYXNwZWVkLWc1LmMKPiA+IGlu ZGV4IDg3YjQ2MzkwYjY5NS4uOTljNGZhOWJmODYxIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9w aW5jdHJsL2FzcGVlZC9waW5jdHJsLWFzcGVlZC1nNS5jCj4gPiArKysgYi9kcml2ZXJzL3BpbmN0 cmwvYXNwZWVkL3BpbmN0cmwtYXNwZWVkLWc1LmMKPiA+IEBAIC0xMCw2ICsxMCw3IEBACj4gPiDC oCNpbmNsdWRlIAo+ID4gwqAjaW5jbHVkZSAKPiA+IMKgI2luY2x1ZGUgCj4gPiArI2luY2x1ZGUg Cj4gPiDCoCNpbmNsdWRlIAo+ID4gwqAjaW5jbHVkZSAKPiA+IMKgI2luY2x1ZGUgCj4gPiBAQCAt MjYsOCArMjcsOCBAQAo+ID4gCj4gPiDCoCNkZWZpbmUgQVNQRUVEX0c1X05SX1BJTlMgMjI4Cj4g PiAKPiA+IC0jZGVmaW5lIENPTkQxwqDCoMKgwqDCoMKgwqDCoMKgwqB7IFNDVTkwLCBCSVQoNiks IDAsIDAgfQo+ID4gLSNkZWZpbmUgQ09ORDLCoMKgwqDCoMKgwqDCoMKgwqDCoHsgU0NVOTQsIEdF Tk1BU0soMSwgMCksIDAsIDAgfQo+ID4gKyNkZWZpbmUgQ09ORDHCoMKgwqDCoMKgwqDCoMKgwqDC oHsgQVNQRUVEX0lQX1NDVSwgU0NVOTAsIEJJVCg2KSwgMCwgMCB9Cj4gPiArI2RlZmluZSBDT05E MsKgwqDCoMKgwqDCoMKgwqDCoMKgeyBBU1BFRURfSVBfU0NVLCBTQ1U5NCwgR0VOTUFTSygxLCAw KSwgMCwgMCB9Cj4gPiAKPiA+IMKgI2RlZmluZSBCMTQgMAo+ID4gwqBTU1NGX1BJTl9ERUNMKEIx NCwgR1BJT0EwLCBNQUMxTElOSywgU0lHX0RFU0NfU0VUKFNDVTgwLCAwKSk7Cj4gPiBAQCAtMTg2 LDkgKzE4NywxMiBAQCBNU19QSU5fREVDTChDMjAsIEdQSU9FMSwgTkRDRDMsIEdQSUUwT1VUKTsK PiA+IAo+ID4gwqBGVU5DX0dST1VQX0RFQ0woR1BJRTAsIEIyMCwgQzIwKTsKPiA+IAo+ID4gLSNk ZWZpbmUgU1BJMV9ERVNDwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHsgSFdfU1RSQVAxLCBH RU5NQVNLKDEzLCAxMiksIDEsIDAgfQo+ID4gLSNkZWZpbmUgU1BJMURFQlVHX0RFU0PCoMKgwqDC oMKgwqDCoMKgwqB7IEhXX1NUUkFQMSwgR0VOTUFTSygxMywgMTIpLCAyLCAwIH0KPiA+IC0jZGVm aW5lIFNQSTFQQVNTVEhSVV9ERVNDwqDCoMKgwqDCoMKgeyBIV19TVFJBUDEsIEdFTk1BU0soMTMs IDEyKSwgMywgMCB9Cj4gPiArI2RlZmluZSBTUEkxX0RFU0MgXAo+ID4gK8KgwqDCoMKgwqDCoMKg eyBBU1BFRURfSVBfU0NVLCBIV19TVFJBUDEsIEdFTk1BU0soMTMsIDEyKSwgMSwgMCB9Cj4gPiAr I2RlZmluZSBTUEkxREVCVUdfREVTQyBcCj4gPiArwqDCoMKgwqDCoMKgwqB7IEFTUEVFRF9JUF9T Q1UsIEhXX1NUUkFQMSwgR0VOTUFTSygxMywgMTIpLCAyLCAwIH0KPiA+ICsjZGVmaW5lIFNQSTFQ QVNTVEhSVV9ERVNDIFwKPiA+ICvCoMKgwqDCoMKgwqDCoHsgQVNQRUVEX0lQX1NDVSwgSFdfU1RS QVAxLCBHRU5NQVNLKDEzLCAxMiksIDMsIDAgfQo+ID4gCj4gPiDCoCNkZWZpbmUgQzE4IDY0Cj4g PiDCoFNJR19FWFBSX0RFQ0woU1lTQ1MsIFNQSTFERUJVRywgQ09ORDEsIFNQSTFERUJVR19ERVND KTsKPiA+IEBAIC0zMjUsMTAgKzMyOSwxMSBAQCBTU19QSU5fREVDTChSMSwgR1BJT0s3LCBTREE4 KTsKPiA+IAo+ID4gwqBGVU5DX0dST1VQX0RFQ0woSTJDOCwgUDIsIFIxKTsKPiA+IAo+ID4gLSNk ZWZpbmUgVlBJT0ZGMF9ERVNDwqDCoMKgwqB7IFNDVTkwLCBHRU5NQVNLKDUsIDQpLCAwLCAwIH0K PiA+IC0jZGVmaW5lIFZQSU9GRjFfREVTQ8KgwqDCoMKgeyBTQ1U5MCwgR0VOTUFTSyg1LCA0KSwg MSwgMCB9Cj4gPiAtI2RlZmluZSBWUEkyNF9ERVNDwqDCoMKgwqDCoMKgeyBTQ1U5MCwgR0VOTUFT Syg1LCA0KSwgMiwgMCB9Cj4gPiAtI2RlZmluZSBWUElSU1ZEX0RFU0PCoMKgwqDCoHsgU0NVOTAs IEdFTk1BU0soNSwgNCksIDMsIDAgfQo+ID4gKyNkZWZpbmUgVlBJT0ZGMF9ERVNDwqDCoMKgwqB7 IEFTUEVFRF9JUF9TQ1UsIFNDVTkwLCBHRU5NQVNLKDUsIDQpLCAwLCAwIH0KPiA+ICsjZGVmaW5l IFZQSU9GRjFfREVTQ8KgwqDCoMKgeyBBU1BFRURfSVBfU0NVLCBTQ1U5MCwgR0VOTUFTSyg1LCA0 KSwgMSwgMCB9Cj4gPiArI2RlZmluZSBWUEkyNF9ERVNDwqDCoMKgwqDCoMKgeyBBU1BFRURfSVBf U0NVLCBTQ1U5MCwgR0VOTUFTSyg1LCA0KSwgMiwgMCB9Cj4gPiArI2RlZmluZSBWUElSU1ZEX0RF U0PCoMKgwqDCoHsgQVNQRUVEX0lQX1NDVSwgU0NVOTAsIEdFTk1BU0soNSwgNCksIDMsIDAgfQo+ ID4gKwo+ID4gCj4gPiDCoCNkZWZpbmUgVjIgMTA0Cj4gPiDCoCNkZWZpbmUgVjJfREVTQ8KgwqDC oMKgwqDCoMKgwqDCoFNJR19ERVNDX1NFVChTQ1U4OCwgMCkKPiA+IEBAIC04NDgsMTAgKzg1Mywy NiBAQCBzdGF0aWMgc3RydWN0IHBpbmN0cmxfZGVzYyBhc3BlZWRfZzVfcGluY3RybF9kZXNjID0g ewo+ID4gwqBzdGF0aWMgaW50IGFzcGVlZF9nNV9waW5jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCj4gPiDCoHsKPiA+IMKgwqDCoMKgwqDCoMKgwqBpbnQgaTsKPiA+ICvC oMKgwqDCoMKgwqDCoHN0cnVjdCByZWdtYXAgKiptYXA7Cj4gPiArwqDCoMKgwqDCoMKgwqBzdHJ1 Y3QgZGV2aWNlX25vZGUgKm5vZGU7Cj4gPiAKPiA+IMKgwqDCoMKgwqDCoMKgwqBmb3IgKGkgPSAw OyBpIDwgQVJSQVlfU0laRShhc3BlZWRfZzVfcGlucyk7IGkrKykKPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgYXNwZWVkX2c1X3BpbnNbaV0ubnVtYmVyID0gaTsKPiA+IAo+ID4g K8KgwqDCoMKgwqDCoMKgbWFwID0gJmFzcGVlZF9nNV9waW5jdHJsX2RhdGEubWFwc1tBU1BFRURf SVBfR0ZYXTsKPiA+ICvCoMKgwqDCoMKgwqDCoG5vZGUgPSBvZl9wYXJzZV9waGFuZGxlKHBkZXYt PmRldi5vZl9ub2RlLCAiYXNwZWVkLGV4dGVybmFsLW5vZGVzIiwgMCk7Cj4gPiArwqDCoMKgwqDC oMKgwqAqbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKG5vZGUpOwo+IEkgdGhpbmsgeW91IGNh biB1c2Ugc3lzY29uX3JlZ21hcF9sb29rdXBfYnlfcGhhbmRsZSB0byByZXBsYWNlIGJvdGggb2YK PiB0aGVzZSBsaW5lcy4KCkdvb2QgY2FsbCwgd2lsbCBkby4KCj4gCj4gPiAKPiA+ICvCoMKgwqDC oMKgwqDCoG9mX25vZGVfcHV0KG5vZGUpOwo+ID4gK8KgwqDCoMKgwqDCoMKgaWYgKElTX0VSUigq bWFwKSkKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gUFRSX0VSUigq bWFwKTsKPiBEbyB3ZSB3YW50IHRvIGZhaWwsIG9yIHdhcm4gYW5kIGNvbnRpbnVlPwoKV2Ugd291 bGQgbmVlZCB0byBhZGQgZnVydGhlciBjaGVja3MgdG8gZGVmZW5kIGFnYWluc3QgbnVsbCBkZXJl ZmVyZW5jZXMKaWYgd2Ugd2VyZSB0byBjb250aW51ZS4gSSB0aGluayB0aGUgYnJva2VuIGRldmlj ZXRyZWUgc2hvdWxkIGJlIGZpeGVkLgoKPiAKPiBUaGUgc2VxdWVuY2UgaXMgYSBiaXQgbWVzc3ku IEhvdyBhYm91dDoKPiAKPiBzdHJ1Y3QgcmVnbWFwICptYXA7Cj4gCj4gbWFwID0gc3lzY29uX3Jl Z21hcF9sb29rdXBfYnlfcGhhbmRsZShwZGV2LT5kZXYub2Zfbm9kZSwKPiAiYXNwZWVkLGV4dGVy bmFsLW5vZGVzIik7Cj4gaWYgKElTX0VSUihtYXApKQo+IMKgwqDCoHJldHVybiBQVFJfRVJSKG1h cCk7Cj4gCj4gYXNwZWVkX2c1X3BpbmN0cmxfZGF0YS5tYXBzW0FTUEVFRF9JUF9HRlhdID0gbWFw OwoKVGhhdCBsb29rcyBuZWF0ZXIsIEkgd2lsbCBzd2l0Y2guCgo+IAo+IAo+ID4gCj4gPiArCj4g PiArwqDCoMKgwqDCoMKgwqBtYXAgPSAmYXNwZWVkX2c1X3BpbmN0cmxfZGF0YS5tYXBzW0FTUEVF RF9JUF9MUENIQ107Cj4gPiArwqDCoMKgwqDCoMKgwqBub2RlID0gb2ZfcGFyc2VfcGhhbmRsZShw ZGV2LT5kZXYub2Zfbm9kZSwgImFzcGVlZCxleHRlcm5hbC1ub2RlcyIsIDEpOwo+ID4gK8KgwqDC oMKgwqDCoMKgKm1hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcChub2RlKTsKPiA+ICvCoMKgwqDC oMKgwqDCoG9mX25vZGVfcHV0KG5vZGUpOwo+ID4gK8KgwqDCoMKgwqDCoMKgaWYgKElTX0VSUigq bWFwKSkKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gUFRSX0VSUigq bWFwKTsKPiA+ICsKPiBTYW1lIGNvbW1lbnRzIGFzIGFib3ZlLgoKQWNrLgoKPiAKPiA+IAo+ID4g wqDCoMKgwqDCoMKgwqDCoHJldHVybiBhc3BlZWRfcGluY3RybF9wcm9iZShwZGV2LCAmYXNwZWVk X2c1X3BpbmN0cmxfZGVzYywKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCZhc3BlZWRfZzVfcGluY3RybF9kYXRhKTsKPiA+IMKgfQo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvcGluY3RybC9hc3BlZWQvcGluY3RybC1hc3BlZWQuYyBiL2RyaXZlcnMv cGluY3RybC9hc3BlZWQvcGluY3RybC1hc3BlZWQuYwo+ID4gaW5kZXggNDlhZWJhOTEyNTMxLi4y MzU4NmFhYzdhNWEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3BpbmN0cmwvYXNwZWVkL3BpbmN0 cmwtYXNwZWVkLmMKPiA+ICsrKyBiL2RyaXZlcnMvcGluY3RybC9hc3BlZWQvcGluY3RybC1hc3Bl ZWQuYwo+ID4gQEAgLTE0LDYgKzE0LDEyIEBACj4gPiDCoCNpbmNsdWRlICIuLi9jb3JlLmgiCj4g PiDCoCNpbmNsdWRlICJwaW5jdHJsLWFzcGVlZC5oIgo+ID4gCj4gPiArc3RhdGljIGNvbnN0IGNo YXIgKmNvbnN0IGFzcGVlZF9waW5tdXhfaXBzW10gPSB7Cj4gPiArwqDCoMKgwqDCoMKgwqBbQVNQ RUVEX0lQX1NDVV0gPSAiU0NVIiwKPiA+ICvCoMKgwqDCoMKgwqDCoFtBU1BFRURfSVBfR0ZYXSA9 ICJHRlgiLAo+ID4gK8KgwqDCoMKgwqDCoMKgW0FTUEVFRF9JUF9MUENIQ10gPSAiTEhDUiIsCj4g V2UndmUgZ290IGJvdGggTFBDSEMgYW5kIExIQ1IgaGVyZS4gQXMgSSBzYWlkIHdoZW4gY29tbWVu dGluZyBvbiB0aGUKPiByZWdtYXAgYmluZGluZ3MsIEkgbGlrZSBMSEMoUikgYmV0dGVyLgo+IAo+ ID4gCj4gPiArfTsKPiA+ICsKPiA+IMKgaW50IGFzcGVlZF9waW5jdHJsX2dldF9ncm91cHNfY291 bnQoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2KQo+ID4gwqB7Cj4gPiDCoMKgwqDCoMKgwqDC oMKgc3RydWN0IGFzcGVlZF9waW5jdHJsX2RhdGEgKnBkYXRhID0gcGluY3RybF9kZXZfZ2V0X2Ry dmRhdGEocGN0bGRldik7Cj4gPiBAQCAtNzgsNyArODQsOCBAQCBpbnQgYXNwZWVkX3Bpbm11eF9n ZXRfZm5fZ3JvdXBzKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKPiA+IMKgc3RhdGljIGlu bGluZSB2b2lkIGFzcGVlZF9zaWdfZGVzY19wcmludF92YWwoCj4gPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGNvbnN0IHN0cnVjdCBhc3BlZWRfc2lnX2Rlc2MgKmRlc2MsIGJvb2wg ZW5hYmxlLCB1MzIgcnYpCj4gV2hhdCdzIGEgcnY/IFBlcmhhcHMgInJlZyIgb3IgInZhbHVlIj8K PiAKPiA+IAo+ID4gwqB7Cj4gPiAtwqDCoMKgwqDCoMKgwqBwcl9kZWJ1ZygiU0NVJXhbMHglMDh4 XT0weCV4LCBnb3QgMHgleCBmcm9tIDB4JTA4eFxuIiwgZGVzYy0+cmVnLAo+ID4gK8KgwqDCoMKg wqDCoMKgcHJfZGVidWcoIldhbnQgJXMlWFsweCUwOFhdPTB4JVgsIGdvdCAweCVYIGZyb20gMHgl MDhYXG4iLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBhc3BlZWRfcGlubXV4X2lwc1tkZXNjLT5pcF0sIGRlc2MtPnJlZywKPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRlc2MtPm1hc2ssIGVuYWJsZSA/ IGRlc2MtPmVuYWJsZSA6IGRlc2MtPmRpc2FibGUsCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAocnYgJiBkZXNjLT5tYXNrKSA+PiBfX2ZmcyhkZXNj LT5tYXNrKSwgcnYpOwo+ID4gwqB9Cj4gPiBAQCAtODgsNyArOTUsNyBAQCBzdGF0aWMgaW5saW5l IHZvaWQgYXNwZWVkX3NpZ19kZXNjX3ByaW50X3ZhbCgKPiA+IMKgICoKPiA+IMKgICogQGRlc2M6 IFRoZSBzaWduYWwgZGVzY3JpcHRvciBvZiBpbnRlcmVzdAo+ID4gwqAgKiBAZW5hYmxlZDogVHJ1 ZSB0byBxdWVyeSB0aGUgZW5hYmxlZCBzdGF0ZSwgZmFsc2UgdG8gcXVlcnkgZGlzYWJsZWQgc3Rh dGUKPiA+IC0gKiBAcmVnbWFwOiBUaGUgU0NVIHJlZ21hcCBpbnN0YW5jZQo+ID4gKyAqIEByZWdt YXA6IFRoZSBJUCBibG9jaydzIHJlZ21hcCBpbnN0YW5jZQo+ID4gwqAgKgo+ID4gwqAgKiBAcmV0 dXJuIFRydWUgaWYgdGhlIGRlc2NyaXB0b3IncyBiaXRmaWVsZCBpcyBjb25maWd1cmVkIHRvIHRo ZSBzdGF0ZQo+ID4gwqAgKiBzZWxlY3RlZCBieSBAZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlCj4g PiBAQCAtMTE5LDcgKzEyNiw3IEBAIHN0YXRpYyBib29sIGFzcGVlZF9zaWdfZGVzY19ldmFsKGNv bnN0IHN0cnVjdCBhc3BlZWRfc2lnX2Rlc2MgKmRlc2MsCj4gPiDCoCAqCj4gPiDCoCAqIEBleHBy OiBBbiBleHByZXNzaW9uIGNvbnRyb2xsaW5nIHRoZSBzaWduYWwgZm9yIGEgbXV4IGZ1bmN0aW9u IG9uIGEgcGluCj4gPiDCoCAqIEBlbmFibGVkOiBUcnVlIHRvIHF1ZXJ5IHRoZSBlbmFibGVkIHN0 YXRlLCBmYWxzZSB0byBxdWVyeSBkaXNhYmxlZCBzdGF0ZQo+ID4gLSAqIEByZWdtYXA6IFRoZSBT Q1UgcmVnbWFwIGluc3RhbmNlCj4gPiArICogQG1hcHM6IFRoZSBsaXN0IG9mIHJlZ21hcCBpbnN0 YW5jZXMKPiA+IMKgICoKPiA+IMKgICogQHJldHVybiBUcnVlIGlmIHRoZSBleHByZXNzaW9uIGNv bXBvc2VkIGJ5IEBlbmFibGVkIGV2YWx1YXRlcyB0cnVlLCBmYWxzZQo+ID4gwqAgKiBvdGhlcndp c2UKPiA+IEBAIC0xMzYsMTUgKzE0MywxNiBAQCBzdGF0aWMgYm9vbCBhc3BlZWRfc2lnX2Rlc2Nf ZXZhbChjb25zdCBzdHJ1Y3QgYXNwZWVkX3NpZ19kZXNjICpkZXNjLAo+ID4gwqAgKiBlaXRoZXIg Y29uZGl0aW9uIGFzIHJlcXVpcmVkLgo+ID4gwqAgKi8KPiA+IMKgc3RhdGljIGJvb2wgYXNwZWVk X3NpZ19leHByX2V2YWwoY29uc3Qgc3RydWN0IGFzcGVlZF9zaWdfZXhwciAqZXhwciwKPiA+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgYm9vbCBlbmFibGVkLCBzdHJ1Y3QgcmVnbWFwICptYXApCj4gPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJvb2wg ZW5hYmxlZCwgc3RydWN0IHJlZ21hcCAqIGNvbnN0ICptYXBzKQo+ID4gwqB7Cj4gPiDCoMKgwqDC oMKgwqDCoMKgaW50IGk7Cj4gPiAKPiA+IMKgwqDCoMKgwqDCoMKgwqBmb3IgKGkgPSAwOyBpIDwg ZXhwci0+bmRlc2NzOyBpKyspIHsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg Y29uc3Qgc3RydWN0IGFzcGVlZF9zaWdfZGVzYyAqZGVzYyA9ICZleHByLT5kZXNjc1tpXTsKPiA+ IAo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICghYXNwZWVkX3NpZ19kZXNj X2V2YWwoZGVzYywgZW5hYmxlZCwgbWFwKSkKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpZiAoIWFzcGVlZF9zaWdfZGVzY19ldmFsKGRlc2MsIGVuYWJsZWQsIG1hcHNbZGVzYy0+ aXBdKSkKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHJldHVybiBmYWxzZTsKPiA+ICsKPiA+IMKgwqDCoMKgwqDCoMKgwqB9Cj4gPiAKPiA+IMKgwqDC oMKgwqDCoMKgwqByZXR1cm4gdHJ1ZTsKPiA+IEBAIC0xNTgsMTIgKzE2NiwxMiBAQCBzdGF0aWMg Ym9vbCBhc3BlZWRfc2lnX2V4cHJfZXZhbChjb25zdCBzdHJ1Y3QgYXNwZWVkX3NpZ19leHByICpl eHByLAo+ID4gwqAgKsKgwqDCoMKgwqDCoMKgwqBjb25maWd1cmVkCj4gPiDCoCAqIEBlbmFibGU6 IHRydWUgdG8gZW5hYmxlIGFuIGZ1bmN0aW9uJ3Mgc2lnbmFsIHRocm91Z2ggYSBwaW4ncyBzaWdu YWwKPiA+IMKgICrCoMKgwqDCoMKgwqDCoMKgwqDCoGV4cHJlc3Npb24sIGZhbHNlIHRvIGRpc2Fi bGUgdGhlIGZ1bmN0aW9uJ3Mgc2lnbmFsCj4gPiAtICogQG1hcDogVGhlIFNDVSdzIHJlZ21hcCBp bnN0YW5jZSBmb3IgcGlubXV4IHJlZ2lzdGVyIGFjY2Vzcy4KPiA+ICsgKiBAbWFwczogVGhlIGxp c3Qgb2YgcmVnbWFwIGluc3RhbmNlcyBmb3IgcGlubXV4IHJlZ2lzdGVyIGFjY2Vzcy4KPiA+IMKg ICoKPiA+IMKgICogQHJldHVybiB0cnVlIGlmIHRoZSBleHByZXNzaW9uIGlzIGNvbmZpZ3VyZWQg YXMgcmVxdWVzdGVkLCBmYWxzZSBvdGhlcndpc2UKPiA+IMKgICovCj4gPiDCoHN0YXRpYyBib29s IGFzcGVlZF9zaWdfZXhwcl9zZXQoY29uc3Qgc3RydWN0IGFzcGVlZF9zaWdfZXhwciAqZXhwciwK PiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGJvb2wgZW5hYmxlLCBzdHJ1Y3QgcmVnbWFwICptYXApCj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBib29s IGVuYWJsZSwgc3RydWN0IHJlZ21hcCAqIGNvbnN0ICptYXBzKQo+ID4gwqB7Cj4gPiDCoMKgwqDC oMKgwqDCoMKgaW50IGk7Cj4gPiAKPiA+IEBAIC0xNzEsNiArMTc5LDcgQEAgc3RhdGljIGJvb2wg YXNwZWVkX3NpZ19leHByX3NldChjb25zdCBzdHJ1Y3QgYXNwZWVkX3NpZ19leHByICpleHByLAo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBib29sIHJldDsKPiA+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29uc3Qgc3RydWN0IGFzcGVlZF9zaWdfZGVzYyAqZGVz YyA9ICZleHByLT5kZXNjc1tpXTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg dTMyIHBhdHRlcm4gPSBlbmFibGUgPyBkZXNjLT5lbmFibGUgOiBkZXNjLT5kaXNhYmxlOwo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHUzMiB2YWwgPSAocGF0dGVybiA8PCBfX2Zm cyhkZXNjLT5tYXNrKSk7Cj4gPiAKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg LyoKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqIFN0cmFwIHJlZ2lzdGVy cyBhcmUgY29uZmlndXJlZCBpbiBoYXJkd2FyZSBvciBieSBlYXJseS1ib290Cj4gPiBAQCAtMTc5 LDQ4ICsxODgsNDkgQEAgc3RhdGljIGJvb2wgYXNwZWVkX3NpZ19leHByX3NldChjb25zdCBzdHJ1 Y3QgYXNwZWVkX3NpZ19leHByICpleHByLAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCogZGVjb25maWd1cmVkIGFuZCBpcyB0aGUgcmVhc29uIHdlIHJlLWV2YWx1YXRlIGFm dGVyIHdyaXRpbmcKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqIGFsbCBk ZXNjcmlwdG9yIGJpdHMuCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKi8K PiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoZGVzYy0+cmVnID09IEhXX1NU UkFQMSB8fCBkZXNjLT5yZWcgPT0gSFdfU1RSQVAyKQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGlmICgoZGVzYy0+cmVnID09IEhXX1NUUkFQMSB8fCBkZXNjLT5yZWcgPT0gSFdf U1RSQVAyKSAmJgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgZGVzYy0+aXAgPT0gQVNQRUVEX0lQX1NDVSkKPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbnRpbnVlOwo+ID4g Cj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gcmVnbWFwX3VwZGF0ZV9i aXRzKG1hcCwgZGVzYy0+cmVnLCBkZXNjLT5tYXNrLAo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcGF0dGVybiA8PCBfX2Zm cyhkZXNjLT5tYXNrKSkgPT0gMDsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBy ZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMobWFwc1tkZXNjLT5pcF0sIGRlc2MtPnJlZywKPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRlc2MtPm1hc2ssIHZhbCkgPT0gMDsKPiA+IAo+ID4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoIXJldCkKPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiByZXQ7Cj4gPiDCoMKgwqDC oMKgwqDCoMKgfQo+ID4gCj4gPiAtwqDCoMKgwqDCoMKgwqByZXR1cm4gYXNwZWVkX3NpZ19leHBy X2V2YWwoZXhwciwgZW5hYmxlLCBtYXApOwo+ID4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIGFzcGVl ZF9zaWdfZXhwcl9ldmFsKGV4cHIsIGVuYWJsZSwgbWFwcyk7Cj4gPiDCoH0KPiA+IAo+ID4gwqBz dGF0aWMgYm9vbCBhc3BlZWRfc2lnX2V4cHJfZW5hYmxlKGNvbnN0IHN0cnVjdCBhc3BlZWRfc2ln X2V4cHIgKmV4cHIsCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgcmVnbWFwICptYXApCj4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBzdHJ1Y3QgcmVnbWFwICogY29uc3QgKm1hcHMpCj4gPiDCoHsKPiA+IC3CoMKgwqDC oMKgwqDCoGlmIChhc3BlZWRfc2lnX2V4cHJfZXZhbChleHByLCB0cnVlLCBtYXApKQo+ID4gK8Kg wqDCoMKgwqDCoMKgaWYgKGFzcGVlZF9zaWdfZXhwcl9ldmFsKGV4cHIsIHRydWUsIG1hcHMpKQo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gdHJ1ZTsKPiA+IAo+ID4g LcKgwqDCoMKgwqDCoMKgcmV0dXJuIGFzcGVlZF9zaWdfZXhwcl9zZXQoZXhwciwgdHJ1ZSwgbWFw KTsKPiA+ICvCoMKgwqDCoMKgwqDCoHJldHVybiBhc3BlZWRfc2lnX2V4cHJfc2V0KGV4cHIsIHRy dWUsIG1hcHMpOwo+ID4gwqB9Cj4gPiAKPiA+IMKgc3RhdGljIGJvb2wgYXNwZWVkX3NpZ19leHBy X2Rpc2FibGUoY29uc3Qgc3RydWN0IGFzcGVlZF9zaWdfZXhwciAqZXhwciwKPiA+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgc3RydWN0IHJlZ21hcCAqbWFwKQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgcmVnbWFw ICogY29uc3QgKm1hcHMpCj4gPiDCoHsKPiA+IC3CoMKgwqDCoMKgwqDCoGlmICghYXNwZWVkX3Np Z19leHByX2V2YWwoZXhwciwgdHJ1ZSwgbWFwKSkKPiA+ICvCoMKgwqDCoMKgwqDCoGlmICghYXNw ZWVkX3NpZ19leHByX2V2YWwoZXhwciwgdHJ1ZSwgbWFwcykpCj4gPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHJldHVybiB0cnVlOwo+ID4gCj4gPiAtwqDCoMKgwqDCoMKgwqByZXR1 cm4gYXNwZWVkX3NpZ19leHByX3NldChleHByLCBmYWxzZSwgbWFwKTsKPiA+ICvCoMKgwqDCoMKg wqDCoHJldHVybiBhc3BlZWRfc2lnX2V4cHJfc2V0KGV4cHIsIGZhbHNlLCBtYXBzKTsKPiA+IMKg fQo+ID4gCj4gPiDCoC8qKgo+ID4gwqAgKiBEaXNhYmxlIGEgc2lnbmFsIG9uIGEgcGluIGJ5IGRp c2FibGluZyBhbGwgcHJvdmlkZWQgc2lnbmFsIGV4cHJlc3Npb25zLgo+ID4gwqAgKgo+ID4gwqAg KiBAZXhwcnM6IFRoZSBsaXN0IG9mIHNpZ25hbCBleHByZXNzaW9ucyAoZnJvbSBhIHByaW9yaXR5 IGxldmVsIG9uIGEgcGluKQo+ID4gLSAqIEBtYXA6IFRoZSBTQ1UncyByZWdtYXAgaW5zdGFuY2Ug Zm9yIHBpbm11eCByZWdpc3RlciBhY2Nlc3MuCj4gPiArICogQG1hcHM6IFRoZSBsaXN0IG9mIHJl Z21hcCBpbnN0YW5jZXMgZm9yIHBpbm11eCByZWdpc3RlciBhY2Nlc3MuCj4gPiDCoCAqCj4gPiDC oCAqIEByZXR1cm4gdHJ1ZSBpZiBhbGwgZXhwcmVzc2lvbnMgaW4gdGhlIGxpc3QgYXJlIHN1Y2Nl c3NmdWxseSBkaXNhYmxlZCwgZmFsc2UKPiA+IMKgICogb3RoZXJ3aXNlCj4gPiDCoCAqLwo+ID4g wqBzdGF0aWMgYm9vbCBhc3BlZWRfZGlzYWJsZV9zaWcoY29uc3Qgc3RydWN0IGFzcGVlZF9zaWdf ZXhwciAqKmV4cHJzLAo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCByZWdtYXAgKm1hcCkKPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qg cmVnbWFwICogY29uc3QgKm1hcHMpCj4gPiDCoHsKPiA+IMKgwqDCoMKgwqDCoMKgwqBib29sIGRp c2FibGVkID0gdHJ1ZTsKPiA+IAo+ID4gQEAgLTIzMCw3ICsyNDAsNyBAQCBzdGF0aWMgYm9vbCBh c3BlZWRfZGlzYWJsZV9zaWcoY29uc3Qgc3RydWN0IGFzcGVlZF9zaWdfZXhwciAqKmV4cHJzLAo+ ID4gwqDCoMKgwqDCoMKgwqDCoHdoaWxlICgqZXhwcnMpIHsKPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgYm9vbCByZXQ7Cj4gPiAKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqByZXQgPSBhc3BlZWRfc2lnX2V4cHJfZGlzYWJsZSgqZXhwcnMsIG1hcCk7Cj4gPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gYXNwZWVkX3NpZ19leHByX2Rpc2Fi bGUoKmV4cHJzLCBtYXBzKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGlz YWJsZWQgPSBkaXNhYmxlZCAmJiByZXQ7Cj4gPiAKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgZXhwcnMrKzsKPiA+IEBAIC0zNDMsNiArMzUzLDggQEAgaW50IGFzcGVlZF9waW5t dXhfc2V0X211eChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVkIGludCBmdW5j dGlvbiwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29uc3Qgc3RydWN0IGFz cGVlZF9zaWdfZXhwciAqKmZ1bmNzOwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBjb25zdCBzdHJ1Y3QgYXNwZWVkX3NpZ19leHByICoqKnByaW9zOwo+ID4gCj4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHJfZGVidWcoIk11eGluZyBwaW4gJWQgZm9yICVzXG4i LCBwaW4sIHBmdW5jLT5uYW1lKTsKPiA+ICsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgaWYgKCFwZGVzYykKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHJldHVybiAtRUlOVkFMOwo+ID4gCj4gPiBAQCAtMzU4LDcgKzM3MCw3IEBA IGludCBhc3BlZWRfcGlubXV4X3NldF9tdXgoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LCB1 bnNpZ25lZCBpbnQgZnVuY3Rpb24sCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBpZiAoZXhwcikKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsKPiA+IAo+ID4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoIWFzcGVlZF9k aXNhYmxlX3NpZyhmdW5jcywgcGRhdGEtPm1hcCkpCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICghYXNwZWVkX2Rpc2FibGVfc2lnKGZ1bmNzLCBw ZGF0YS0+bWFwcykpCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FUEVSTTsKPiA+IAo+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHJpb3MrKzsKPiA+IEBAIC0z NzcsNyArMzg5LDcgQEAgaW50IGFzcGVlZF9waW5tdXhfc2V0X211eChzdHJ1Y3QgcGluY3RybF9k ZXYgKnBjdGxkZXYsIHVuc2lnbmVkIGludCBmdW5jdGlvbiwKPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAtRU5YSU87Cj4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiA+IAo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGlmICghYXNwZWVkX3NpZ19leHByX2VuYWJsZShleHByLCBwZGF0YS0+bWFwKSkK PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoIWFzcGVlZF9zaWdfZXhwcl9l bmFibGUoZXhwciwgcGRhdGEtPm1hcHMpKQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FUEVSTTsKPiA+IMKgwqDCoMKgwqDCoMKgwqB9 Cj4gPiAKPiA+IEBAIC00MzIsNyArNDQ0LDcgQEAgaW50IGFzcGVlZF9ncGlvX3JlcXVlc3RfZW5h YmxlKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgaWYgKGFzcGVlZF9ncGlvX2luX2V4cHJzKGZ1bmNzKSkKPiA+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJyZWFrOwo+ID4gCj4gPiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKCFhc3BlZWRfZGlzYWJsZV9zaWcoZnVu Y3MsIHBkYXRhLT5tYXApKQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICgh YXNwZWVkX2Rpc2FibGVfc2lnKGZ1bmNzLCBwZGF0YS0+bWFwcykpCj4gPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLUVQRVJNOwo+ID4gCj4g PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHByaW9zKys7Cj4gPiBAQCAtNDYyLDcg KzQ3NCw3IEBAIGludCBhc3BlZWRfZ3Bpb19yZXF1ZXN0X2VuYWJsZShzdHJ1Y3QgcGluY3RybF9k ZXYgKnBjdGxkZXYsCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqAqIElmIEdQSU8gaXMgbm90IHRoZSBs b3dlc3QgcHJpb3JpdHkgc2lnbmFsIHR5cGUsIGFzc3VtZSB0aGVyZSBpcyBvbmx5Cj4gPiDCoMKg wqDCoMKgwqDCoMKgwqAqIG9uZSBleHByZXNzaW9uIGRlZmluZWQgdG8gZW5hYmxlIHRoZSBHUElP IGZ1bmN0aW9uCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqAqLwo+ID4gLcKgwqDCoMKgwqDCoMKgaWYg KCFhc3BlZWRfc2lnX2V4cHJfZW5hYmxlKGV4cHIsIHBkYXRhLT5tYXApKQo+ID4gK8KgwqDCoMKg wqDCoMKgaWYgKCFhc3BlZWRfc2lnX2V4cHJfZW5hYmxlKGV4cHIsIHBkYXRhLT5tYXBzKSkKPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FUEVSTTsKPiA+IAo+ID4g wqDCoMKgwqDCoMKgwqDCoHJldHVybiAwOwo+ID4gQEAgLTQ4MSwxMCArNDkzLDEwIEBAIGludCBh c3BlZWRfcGluY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ID4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLUVOT0RFVjsKPiA+IMKgwqDCoMKg wqDCoMKgwqB9Cj4gPiAKPiA+IC3CoMKgwqDCoMKgwqDCoHBkYXRhLT5tYXAgPSBzeXNjb25fbm9k ZV90b19yZWdtYXAocGFyZW50LT5vZl9ub2RlKTsKPiA+IC3CoMKgwqDCoMKgwqDCoGlmIChJU19F UlIocGRhdGEtPm1hcCkpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoHBkYXRhLT5tYXBzW0FTUEVFRF9J UF9TQ1VdID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKHBhcmVudC0+b2Zfbm9kZSk7Cj4gPiArwqDC oMKgwqDCoMKgwqBpZiAoSVNfRVJSKHBkYXRhLT5tYXBzW0FTUEVFRF9JUF9TQ1VdKSkgewo+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkZXZfZXJyKCZwZGV2LT5kZXYsICJObyBy ZWdtYXAgZm9yIHN5c2NvbiBwaW5jb250cm9sbGVyIHBhcmVudFxuIik7Cj4gPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIFBUUl9FUlIocGRhdGEtPm1hcCk7Cj4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIFBUUl9FUlIocGRhdGEtPm1hcHNbQVNQ RUVEX0lQX1NDVV0pOwo+ID4gwqDCoMKgwqDCoMKgwqDCoH0KPiA+IAo+ID4gwqDCoMKgwqDCoMKg wqDCoHBjdGwgPSBwaW5jdHJsX3JlZ2lzdGVyKHBkZXNjLCAmcGRldi0+ZGV2LCBwZGF0YSk7Cj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2FzcGVlZC9waW5jdHJsLWFzcGVlZC5oIGIv ZHJpdmVycy9waW5jdHJsL2FzcGVlZC9waW5jdHJsLWFzcGVlZC5oCj4gPiBpbmRleCAzZTcyZWY4 YzU0YmYuLjcyNzcyOGI4NmMwNyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvcGluY3RybC9hc3Bl ZWQvcGluY3RybC1hc3BlZWQuaAo+ID4gKysrIGIvZHJpdmVycy9waW5jdHJsL2FzcGVlZC9waW5j dHJsLWFzcGVlZC5oCj4gPiBAQCAtMjMyLDYgKzIzMiwxMSBAQAo+ID4gwqAgKiBncm91cC4KPiA+ IMKgICovCj4gPiAKPiA+ICsjZGVmaW5lIEFTUEVFRF9JUF9TQ1XCoMKgMAo+ID4gKyNkZWZpbmUg QVNQRUVEX0lQX0dGWMKgwqAxCj4gPiArI2RlZmluZSBBU1BFRURfSVBfTFBDSEPCoMKgwqDCoMKg wqDCoMKgMgo+ID4gKyNkZWZpbmUgQVNQRUVEX05SX1BJTk1VWF9JUFPCoMKgwqAzCj4gPiArCj4g PiDCoC8qCj4gPiDCoCAqIFRoZSAiTXVsdGktZnVuY3Rpb24gUGlucyBNYXBwaW5nIGFuZCBDb250 cm9sIiB0YWJsZSBpbiB0aGUgU29DIGRhdGFzaGVldAo+ID4gwqAgKiByZWZlcmVuY2VzIHJlZ2lz dGVycyBieSB0aGUgZGV2aWNlL29mZnNldCBtbmVtb25pYy4gVGhlIHJlZ2lzdGVyIG1hY3Jvcwo+ ID4gQEAgLTI2MSw3ICsyNjYsOSBAQAo+ID4gwqDCoMKgKiBBIHNpZ25hbCBkZXNjcmlwdG9yLCB3 aGljaCBkZXNjcmliZXMgdGhlIHJlZ2lzdGVyLCBiaXRzIGFuZCB0aGUKPiA+IMKgwqDCoCogZW5h YmxlL2Rpc2FibGUgdmFsdWVzIHRoYXQgc2hvdWxkIGJlIGNvbXBhcmVkIG9yIHdyaXR0ZW4uCj4g PiDCoMKgwqAqCj4gPiAtwqDCoCogQHJlZzogVGhlIHJlZ2lzdGVyIG9mZnNldCBmcm9tIGJhc2Ug aW4gYnl0ZXMKPiA+ICvCoMKgKiBAaXA6IFRoZSBJUCBibG9jayBpZGVudGlmaWVyLCB1c2VkIGFz IGFuIGluZGV4IGludG8gdGhlIHJlZ21hcCBhcnJheSBpbgo+ID4gK8KgwqAqwqDCoMKgwqDCoMKg c3RydWN0IGFzcGVlZF9waW5jdHJsX2RhdGEKPiA+ICvCoMKgKiBAcmVnOiBUaGUgcmVnaXN0ZXIg b2Zmc2V0IHdpdGggcmVzcGVjdCB0byB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBJUCBibG9jawo+ ID4gwqDCoMKgKiBAbWFzazogVGhlIG1hc2sgdG8gYXBwbHkgdG8gdGhlIHJlZ2lzdGVyLiBUaGUg bG93ZXN0IHNldCBiaXQgb2YgdGhlIG1hc2sgaXMKPiA+IMKgwqDCoCrCoMKgwqDCoMKgwqDCoMKg dXNlZCB0byBkZXJpdmUgdGhlIHNoaWZ0IHZhbHVlLgo+ID4gwqDCoMKgKiBAZW5hYmxlOiBUaGUg dmFsdWUgdGhhdCBlbmFibGVzIHRoZSBmdW5jdGlvbi4gVmFsdWUgc2hvdWxkIGJlIGluIHRoZSBM U0JzLAo+ID4gQEAgLTI3MCw2ICsyNzcsNyBAQAo+ID4gwqDCoMKgKsKgwqDCoMKgwqDCoMKgwqDC oMKgwqBMU0JzLCBub3QgYXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBtYXNrLgo+ID4gwqDCoMKgKi8K PiA+IMKgc3RydWN0IGFzcGVlZF9zaWdfZGVzYyB7Cj4gPiArwqDCoMKgwqDCoMKgwqB1bnNpZ25l ZCBpbnQgaXA7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgdW5zaWduZWQgaW50IHJlZzsKPiA+IMKgwqDC oMKgwqDCoMKgwqB1MzIgbWFzazsKPiA+IMKgwqDCoMKgwqDCoMKgwqB1MzIgZW5hYmxlOwo+ID4g QEAgLTMxMywyNCArMzIxLDMwIEBAIHN0cnVjdCBhc3BlZWRfcGluX2Rlc2Mgewo+ID4gCj4gPiDC oC8qIE1hY3JvIGhlbGwgKi8KPiA+IAo+ID4gKyNkZWZpbmUgU0lHX0RFU0NfSVBfQklUKGlwLCBy ZWcsIGlkeCwgdmFsKSBcCj4gPiArwqDCoMKgwqDCoMKgwqB7IGlwLCByZWcsIEJJVF9NQVNLKGlk eCksIHZhbCwgKCgodmFsKSArIDEpICYgMSkgfQo+ID4gKwo+ID4gwqAvKioKPiA+IC0gKiBTaG9y dC1oYW5kIG1hY3JvIGZvciBkZXNjcmliaW5nIGEgY29uZmlndXJhdGlvbiBlbmFibGVkIGJ5IHRo ZSBzdGF0ZSBvZiBvbmUKPiA+IC0gKiBiaXQuIFRoZSBkaXNhYmxlIHZhbHVlIGlzIGRlcml2ZWQu Cj4gPiArICogU2hvcnQtaGFuZCBtYWNybyBmb3IgZGVzY3JpYmluZyBhbiBTQ1UgZGVzY3JpcHRv ciBlbmFibGVkIGJ5IHRoZSBzdGF0ZSBvZgo+ID4gKyAqIG9uZSBiaXQuIFRoZSBkaXNhYmxlIHZh bHVlIGlzIGRlcml2ZWQuCj4gPiDCoCAqCj4gPiDCoCAqIEByZWc6IFRoZSBzaWduYWwncyBhc3Nv Y2lhdGVkIHJlZ2lzdGVyLCBvZmZzZXQgZnJvbSBiYXNlCj4gPiDCoCAqIEBpZHg6IFRoZSBzaWdu YWwncyBiaXQgaW5kZXggaW4gdGhlIHJlZ2lzdGVyCj4gPiDCoCAqIEB2YWw6IFRoZSB2YWx1ZSAo MCBvciAxKSB0aGF0IGVuYWJsZXMgdGhlIGZ1bmN0aW9uCj4gPiDCoCAqLwo+ID4gwqAjZGVmaW5l IFNJR19ERVNDX0JJVChyZWcsIGlkeCwgdmFsKSBcCj4gPiAtwqDCoMKgwqDCoMKgwqB7IHJlZywg QklUX01BU0soaWR4KSwgdmFsLCAoKCh2YWwpICsgMSkgJiAxKSB9Cj4gPiArwqDCoMKgwqDCoMKg wqBTSUdfREVTQ19JUF9CSVQoQVNQRUVEX0lQX1NDVSwgcmVnLCBpZHgsIHZhbCkKPiA+ICsKPiA+ ICsjZGVmaW5lIFNJR19ERVNDX0lQX1NFVChpcCwgcmVnLCBpZHgpIFNJR19ERVNDX0lQX0JJVChp cCwgcmVnLCBpZHgsIDEpCj4gPiAKPiA+IMKgLyoqCj4gPiAtICogQSBmdXJ0aGVyIHNob3J0LWhh bmQgbWFjcm8gZGVzY3JpYmluZyBhIGNvbmZpZ3VyYXRpb24gZW5hYmxlZCB3aXRoIGEgc2V0IGJp dC4KPiA+ICsgKiBBIGZ1cnRoZXIgc2hvcnQtaGFuZCBtYWNybyBleHBhbmRpbmcgdG8gYW4gU0NV IGRlc2NyaXB0b3IgZW5hYmxlZCBieSBhIHNldAo+ID4gKyAqIGJpdC4KPiA+IMKgICoKPiA+IC0g KiBAcmVnOiBUaGUgY29uZmlndXJhdGlvbidzIGFzc29jaWF0ZWQgcmVnaXN0ZXIsIG9mZnNldCBm cm9tIGJhc2UKPiA+IC0gKiBAaWR4OiBUaGUgY29uZmlndXJhdGlvbidzIGJpdCBpbmRleCBpbiB0 aGUgcmVnaXN0ZXIKPiA+ICsgKiBAcmVnOiBUaGUgcmVnaXN0ZXIsIG9mZnNldCBmcm9tIGJhc2UK PiA+ICsgKiBAaWR4OiBUaGUgYml0IGluZGV4IGluIHRoZSByZWdpc3Rlcgo+ID4gwqAgKi8KPiA+ IC0jZGVmaW5lIFNJR19ERVNDX1NFVChyZWcsIGlkeCkgU0lHX0RFU0NfQklUKHJlZywgaWR4LCAx KQo+ID4gKyNkZWZpbmUgU0lHX0RFU0NfU0VUKHJlZywgaWR4KSBTSUdfREVTQ19JUF9CSVQoQVNQ RUVEX0lQX1NDVSwgcmVnLCBpZHgsIDEpCj4gPiAKPiA+IMKgI2RlZmluZSBTSUdfREVTQ19MSVNU X1NZTShzaWcsIGZ1bmMpIHNpZ19kZXNjc18gIyMgc2lnICMjIF8gIyMgZnVuYwo+ID4gwqAjZGVm aW5lIFNJR19ERVNDX0xJU1RfREVDTChzaWcsIGZ1bmMsIC4uLikgXAo+ID4gQEAgLTUwMCw3ICs1 MTQsNyBAQCBzdHJ1Y3QgYXNwZWVkX3Bpbl9kZXNjIHsKPiA+IMKgwqDCoMKgwqDCoMKgwqBNU19Q SU5fREVDTF8ocGluLCBTSUdfRVhQUl9MSVNUX1BUUihncGlvKSkKPiA+IAo+ID4gwqBzdHJ1Y3Qg YXNwZWVkX3BpbmN0cmxfZGF0YSB7Cj4gPiAtwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgcmVnbWFwICpt YXA7Cj4gPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgcmVnbWFwICptYXBzW0FTUEVFRF9OUl9QSU5N VVhfSVBTXTsKPiA+IAo+ID4gwqDCoMKgwqDCoMKgwqDCoGNvbnN0IHN0cnVjdCBwaW5jdHJsX3Bp bl9kZXNjICpwaW5zOwo+ID4gwqDCoMKgwqDCoMKgwqDCoGNvbnN0IHVuc2lnbmVkIGludCBucGlu czsKPiA+IC0tCj4gPiAyLjcuNAo+ID4g --=-+TMxMvOqGiI+odZ5dhyi Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABCgAGBQJYHAe4AAoJEJ0dnzgO5LT5beMP/2r0zc2YTIfcL9SWo8lbACCv YTa4ThQxYzD/0BdGSJlVpCFoHjsKanehg2mbMailGuHlgJqF7IboeMvfMol5/iW6 /sXrD+K+M0DnXLmIEbBwRcr196Y7Q3+rEkJ+XUVo26B8jmdnT6VdKjxEzrnV6H5B jeAGv3suurLb06k6N9r/yK1zB88V6n8DNUf0fk2YjVJccCvygxSZrnAjJyd6QNMH secUkK2iZcLleJlJfn/KksZrntZmY/qX+bINflsCcxJIdR+pdXNaNNh38BxHEhrc FfmZKzLmH3qv5wQk7TGfBxJn9O1qHVm4t9ChSaru4nEmHlnGCZjUOyO4FpmkcstK y2LW2xyCXXcaF9DfzEa09QsLqIe8VSM59qCuc/1UFToJN9d0JLwyEZbyXorL/j2Z VoLY/vJ/xC81Ir4ltkAqgb2Hs/2dQdLsgLHtabIKiCJt2aA27jbhuipkh7GyMSgc 2V/b4LTdKAsahQnL6NrAoTUNsh3n5UPOmdpsl844Ll40n3tM6xp8WYiBt8Aqj5aL FSjkkt6HlnsYOcyZTwsl8FrvAbE8tCxTO4NrJb480zx8PiKgLJH/wq26WNZyUCo5 c/fRwqfeW35u/qfw2Y7TKhqHKwpQirjjjArXfF2zTWY7Y+KxMtvH6pmYC8FiNOBX KmW3+zjy9vGcSyYXuhy1 =Dcm/ -----END PGP SIGNATURE----- --=-+TMxMvOqGiI+odZ5dhyi--