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=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 EC4EAC4CEC4 for ; Wed, 18 Sep 2019 10:41:51 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B1227214AF for ; Wed, 18 Sep 2019 10:41:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="CC5iGQAE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B1227214AF Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iAXOp-0002fa-Lh; Wed, 18 Sep 2019 10:41:27 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iAXOo-0002ed-A8 for xen-devel@lists.xenproject.org; Wed, 18 Sep 2019 10:41:26 +0000 X-Inumbo-ID: da778918-da00-11e9-b76c-bc764e2007e4 Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id da778918-da00-11e9-b76c-bc764e2007e4; Wed, 18 Sep 2019 10:41:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1568803281; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=v/GU7thrLlwzngEtW/u2dr2QoLh+rIvN6Jr7AgE2RKQ=; b=CC5iGQAE6VOhQFUqt1snQX59AqzT4xmBfwxg0mDsv7Mq+lSP9XkzbKoi AylpIH+pWkuIvriuQE9Dg8dEfPE8W8sC1QxDJWOHtGZuEERkei+Gj5tEA oWYMrQcAaUT2BiKneMJrK45Rxvb5jlwVZC6suUIpy4Lq00hmgM++yept+ A=; Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=paul.durrant@citrix.com; spf=Pass smtp.mailfrom=Paul.Durrant@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of paul.durrant@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="Paul.Durrant@citrix.com"; x-sender="paul.durrant@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa1.hc3370-68.iphmx.com: domain of Paul.Durrant@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="Paul.Durrant@citrix.com"; x-sender="Paul.Durrant@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="Paul.Durrant@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: kDwKjn2bxN8pHrScwhFuKFCMj+vKzPhlGSbqhy3HUPtJO3lKvsxt4aCKncQKQOkkeVlvp5RBkJ h/zDNHtf/uCvKXhuGX2KdPC6uZz1qy+Mls6pEKU2MybTV4k93YO8xX60wNcdFpsQ3brx93gviS NZH4CxCN3iWm5TC19zy8DAzDk2x6IBwRh6gX4T06vm9Xao1+whHZLq5lfgYHeGBue4cr+Oqc2s A6Jnu6wqfw/6TZM2QUFa/5I6OV0uyZqrPLaCRos4G8DQOLwEfT3lu7ozCMYhQppJ/fd3ctJvgR ue8= X-SBRS: 2.7 X-MesageID: 5777374 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,520,1559534400"; d="scan'208";a="5777374" From: Paul Durrant To: Date: Wed, 18 Sep 2019 11:41:13 +0100 Message-ID: <20190918104113.3294-5-paul.durrant@citrix.com> X-Mailer: git-send-email 2.20.1.2.gb21ebb671 In-Reply-To: <20190918104113.3294-1-paul.durrant@citrix.com> References: <20190918104113.3294-1-paul.durrant@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v13 4/4] introduce a 'passthrough' configuration option to xl.cfg... X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Christian Lindig , Jan Beulich , David Scott , Anthony PERARD , Volodymyr Babchuk , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Li4uYW5kIGhlbmNlIHRoZSBhYmlsaXR5IHRvIGRpc2FibGUgSU9NTVUgbWFwcGluZ3MsIGFuZCBj b250cm9sIEVQVApzaGFyaW5nLgoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3ICdsaWJ4bF9w YXNzdGhyb3VnaCcgZW51bWVyYXRpb24gaW50bwpsaWJ4bF9kb21haW5fY3JlYXRlX2luZm8uIFRo ZSB2YWx1ZSB3aWxsIGJlIHNldCBieSB4bCBlaXRoZXIgd2hlbiBpdCBwYXJzZXMKYSBuZXcgJ3Bh c3N0aHJvdWdoJyBvcHRpb24gaW4geGwuY2ZnLCBvciBpbXBsaWNpdGx5IGlmIHRoZXJlIGlzIHBh c3N0aHJvdWdoCmhhcmR3YXJlIHNwZWNpZmllZCBmb3IgdGhlIGRvbWFpbi4KCklmIHRoZSB2YWx1 ZSBvZiB0aGUgcGFzc3Rocm91Z2ggY29uZmlndXJhdGlvbiBvcHRpb24gaXMgJ2Rpc2FibGVkJyB0 aGVuCnRoZSBYRU5fRE9NQ1RMX0NERl9pb21tdSBmbGFnIHdpbGwgYmUgY2xlYXIgaW4gdGhlIHhl bl9kb21jdGxfY3JlYXRlZG9tYWluCmZsYWdzLCB0aHVzIGFsbG93aW5nIHRoZSB0b29sc3RhY2sg dG8gY29udHJvbCB3aGV0aGVyIHRoZSBkb21haW4gZ2V0cwpJT01NVSBtYXBwaW5ncyBvciBub3Qg KHdoZXJlIHByZXZpb3VzbHkgdGhleSB3ZXJlIGdsb2JhbGx5IHNldCkuCgpJZiB0aGUgdmFsdWUg b2YgdGhlIHBhc3N0aHJvdWdoIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzICdzeW5jX3B0JyB0aGVu CmEgbmV3ICdpb21tdV9vcHRzJyBmaWVsZCBpbiB4ZW5fZG9tY3RsX2NyZWF0ZWRvbWFpbiB3aWxs IGJlIHNldCB3aXRoIHRoZQp2YWx1ZSBYRU5fRE9NQ1RMX0lPTU1VX25vX3NoYXJlcHQuIFRoaXMg d2lsbCBvdmVycmlkZSB0aGUgZ2xvYmFsIGRlZmF1bHQKc2V0IGluIGlvbW11X2hhcF9wdF9zaGFy ZSwgdGh1cyBhbGxvd2luZyB0aGUgdG9vbHN0YWNrIHRvIGNvbnRyb2wgd2hldGhlcgpFUFQgc2hh cmluZyBpcyB1c2VkIGZvciB0aGUgZG9tYWluLgoKSWYgdGhlIHZhbHVlIG9mIHBhc3N0aHJvdWdo IGlzICdlbmFibGVkJyB0aGVuIHhsIHdpbGwgY2hvb3NlIGFuIGFwcHJvcHJpYXRlCmRlZmF1bHQg YWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIGRvbWFpbiBhbmQgaGFyZHdhcmUgc3VwcG9ydC4KCk5P VEU6IFRoZSAnaW9tbXVfbWVta2InIG92ZXJoZWFkIGluIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZv IHdpbGwgbm93IG9ubHkKICAgICAgYmUgc2V0IGlmIHBhc3N0aHJvdWdoIGlzICdzeW5jX3B0JyAo b3IgeGwgaGFzIGNob3NlbiB0aGlzIG1vZGUgYXMKICAgICAgYSBkZWZhdWx0KS4KClNpZ25lZC1v ZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+ClJldmlld2VkLWJ5 OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkFja2VkLWJ5OiBDaHJpc3RpYW4gTGlu ZGlnIDxjaHJpc3RpYW4ubGluZGlnQGNpdHJpeC5jb20+CkFja2VkLWJ5OiBKdWxpZW4gR3JhbGwg PGp1bGllbi5ncmFsbEBhcm0uY29tPgotLS0KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBl dS5jaXRyaXguY29tPgpDYzogV2VpIExpdSA8d2xAeGVuLm9yZz4KQ2M6IEFuZHJldyBDb29wZXIg PGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxHZW9yZ2UuRHVu bGFwQGV1LmNpdHJpeC5jb20+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxr QG9yYWNsZS5jb20+CkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5v cmc+CkNjOiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQ2M6IEFudGhvbnkgUEVSQVJEIDxhbnRo b255LnBlcmFyZEBjaXRyaXguY29tPgpDYzogRGF2aWQgU2NvdHQgPGRhdmVAcmVjb2lsLm9yZz4K Q2M6IFZvbG9keW15ciBCYWJjaHVrIDxWb2xvZHlteXJfQmFiY2h1a0BlcGFtLmNvbT4KQ2M6ICJS b2dlciBQYXUgTW9ubsOpIiA8cm9nZXIucGF1QGNpdHJpeC5jb20+CgpQcmV2aW91c2x5IHBhcnQg b2Ygc2VyaWVzIGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4t ZGV2ZWwvMjAxOS0wNy9tc2cwMjI2Ny5odG1sCgp2MTM6CiAtIFNtYWxsIGRvY3VtZW50YXRpb24g YWRqdXN0bWVudHMgcmVxdWVzdGVkIGJ5IEdlb3JnZSBhbmQgSnVsaWVuCiAtIEZpeCBkZWZhdWx0 IHBhc3N0aHJvdWdoIG9wdGlvbgoKdjEyOgogLSBTZXQgcGFzc3Rocm91Z2ggZGVmYXVsdCBpbiBs aWJ4bAoKdjExOgogLSBGaXhlZCBhYmktY2hlY2sgcnVuZXMKCnYxMDoKIC0gQWRkZWQgYWJpLWNo ZWNrIHJ1bmVzCgp2OToKIC0gQWRkZWQgdGhlIHBhc3N0aHJvdWdoPSdlbmFibGVkJyBvcHRpb24g dG8geGwKIC0gT25lIGNvc21ldGljIGNoYW5nZSBpbiB4ZW4KIC0gQXNzdW1lIEphbidzIFItYiBz dGFuZHMgc2luY2Ugbm9uLWNvc21ldGljIGNoYW5nZXMgYXJlIG9ubHkgaW4gdGhlCiAgIHRvb2xz dGFjawoKdjc6CiAtIEFkZGVkIG1pc3NpbmcgYnJlYWtzCiAtIEFkZGVkIG1pc3Npbmcgb2NhbWwg YmluZGluZyBjaGFuZ2VzCgp2NjoKIC0gUmVtb3ZlIHRoZSBsaWJ4bF9waHlzaW5mbygpIGNhbGwg c2luY2UgaXQncyB1c2VmdWxuZXNzIGlzIGxpbWl0ZWQgdG8geDg2Cgp2NToKIC0gRXhwYW5kIHhl bl9kb21jdGxfY3JlYXRlZG9tYWluIGZsYWdzIGZpZWxkIGFuZCBoZW5jZSBidW1wIGludGVyZmFj ZQogICB2ZXJzaW9uCiAtIEZpeCBzcGVsbGluZyBtaXN0YWtlcyBpbiBjb250ZXh0IGxpbmUKLS0t CiBkb2NzL21hbi94bC5jZmcuNS5wb2QuaW4gICAgICAgICAgICB8ICA1NyArKysrKysrKysrCiB0 b29scy9saWJ4bC9saWJ4bC5oICAgICAgICAgICAgICAgICB8ICAgOSArKwogdG9vbHMvbGlieGwv bGlieGxfY3JlYXRlLmMgICAgICAgICAgfCAgMzAgKysrKy0KIHRvb2xzL2xpYnhsL2xpYnhsX3R5 cGVzLmlkbCAgICAgICAgIHwgICA4ICsrCiB0b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmwubWwg ICAgICB8ICAgNCArCiB0b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmwubWxpICAgICB8ICAgNSAr CiB0b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYyB8ICAxNyArKy0KIHRvb2xzL3hs L3hsX3BhcnNlLmMgICAgICAgICAgICAgICAgIHwgMTY0ICsrKysrKysrKysrKysrKysrKystLS0t LS0tLS0KIHhlbi9hcmNoL2FybS9kb21haW4uYyAgICAgICAgICAgICAgIHwgIDEwICstCiB4ZW4v YXJjaC94ODYvZG9tYWluLmMgICAgICAgICAgICAgICB8ICAgMiArLQogeGVuL2NvbW1vbi9kb21h aW4uYyAgICAgICAgICAgICAgICAgfCAgIDcgKysKIHhlbi9jb21tb24vZG9tY3RsLmMgICAgICAg ICAgICAgICAgIHwgIDEzIC0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyAgICAg fCAgMTMgKystCiB4ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggICAgICAgICB8ICAxMCArLQog eGVuL2luY2x1ZGUveGVuL2lvbW11LmggICAgICAgICAgICAgfCAgMTUgKystCiAxNSBmaWxlcyBj aGFuZ2VkLCAyNzcgaW5zZXJ0aW9ucygrKSwgODcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZG9jcy9tYW4veGwuY2ZnLjUucG9kLmluIGIvZG9jcy9tYW4veGwuY2ZnLjUucG9kLmluCmluZGV4 IGM5OWQ0MDMwN2UuLjc3OTVjNzM1NTYgMTAwNjQ0Ci0tLSBhL2RvY3MvbWFuL3hsLmNmZy41LnBv ZC5pbgorKysgYi9kb2NzL21hbi94bC5jZmcuNS5wb2QuaW4KQEAgLTYwNSw2ICs2MDUsNjMgQEAg b3B0aW9uIHNob3VsZCBvbmx5IGJlIHVzZWQgd2l0aCBhIHRydXN0ZWQgZGV2aWNlIHRyZWUuCiBO b3RlIHRoYXQgdGhlIHBhcnRpYWwgZGV2aWNlIHRyZWUgc2hvdWxkIGF2b2lkIHVzaW5nIHRoZSBw aGFuZGxlIDY1MDAwCiB3aGljaCBpcyByZXNlcnZlZCBieSB0aGUgdG9vbHN0YWNrLgogCis9aXRl bSBCPHBhc3N0aHJvdWdoPSJTVFJJTkciPgorCitTcGVjaWZ5IHdoZXRoZXIgSU9NTVUgbWFwcGlu Z3MgYXJlIGVuYWJsZWQgZm9yIHRoZSBkb21haW4gYW5kIGhlbmNlIHdoZXRoZXIKK2l0IHdpbGwg YmUgZW5hYmxlZCBmb3IgcGFzc3Rocm91Z2ggaGFyZHdhcmUuIFZhbGlkIHZhbHVlcyBmb3IgdGhp cyBvcHRpb24KK2FyZToKKworPW92ZXIgNAorCis9aXRlbSBCPGRpc2FibGVkPgorCitJT01NVSBt YXBwaW5ncyBhcmUgZGlzYWJsZWQgZm9yIHRoZSBkb21haW4gYW5kIHNvIGhhcmR3YXJlIG1heSBu b3QgYmUKK3Bhc3NlZCB0aHJvdWdoLgorCitUaGlzIG9wdGlvbiBpcyB0aGUgZGVmYXVsdCBpZiBu byBwYXNzdGhyb3VnaCBoYXJkd2FyZSBpcyBzcGVjaWZpZWQgaW4gdGhlCitkb21haW4ncyBjb25m aWd1cmF0aW9uLgorCis9aXRlbSBCPGVuYWJsZWQ+CisKK1RoaXMgb3B0aW9uIGVuYWJsZXMgSU9N TVUgbWFwcGluZ3MgYW5kIHNlbGVjdHMgYW4gYXBwcm9wcmlhdGUgZGVmYXVsdAorb3BlcmF0aW5n IG1vZGUgKHNlZSBiZWxvdyBmb3IgZGV0YWlscyBvZiB0aGUgb3BlcmF0aW5nIG1vZGVzKS4gRm9y IEhWTS9QVkgKK2RvbWFpbnMgcnVubmluZyBvbiBwbGF0Zm9ybXMgd2hlcmUgdGhlIG9wdGlvbiBp cyBhdmFpbGFibGUsIHRoaXMgaXMKK2VxdWl2YWxlbnQgdG8gQjxzaGFyZV9wdD4uIE90aGVyd2lz ZSwgYW5kIGFsc28gZm9yIFBWIGRvbWFpbnMsIHRoaXMKK29wdGlvbiBpcyBlcXVpdmFsZW50IHRv IEI8c3luY19wdD4uCisKK1RoaXMgb3B0aW9uIGlzIHRoZSBkZWZhdWx0IGlmIHBhc3N0aHJvdWdo IGhhcmR3YXJlIGlzIHNwZWNpZmllZCBpbiB0aGUKK2RvbWFpbidzIGNvbmZpZ3VyYXRpb24uCisK Kz1pdGVtIEI8c3luY19wdD4KKworVGhpcyBvcHRpb24gbWVhbnMgdGhhdCBJT01NVSBtYXBwaW5n cyB3aWxsIGJlIHN5bmNocm9uaXplZCB3aXRoIHRoZQorZG9tYWluJ3MgUDJNIHRhYmxlIGFzIGZv bGxvd3M6CisKK0ZvciBhIFBWIGRvbWFpbiwgYWxsIHdyaXRhYmxlIHBhZ2VzIGFzc2lnbmVkIHRv IHRoZSBkb21haW4gYXJlIGlkZW50aXR5CittYXBwZWQgYnkgTUZOIGluIHRoZSBJT01NVSBwYWdl IHRhYmxlLiBUaHVzIGEgZGV2aWNlIGRyaXZlciBydW5uaW5nIGluIHRoZQorZG9tYWluIG1heSBw cm9ncmFtIHBhc3N0aHJvdWdoIGhhcmR3YXJlIGZvciBETUEgdXNpbmcgTUZOIHZhbHVlcworKGku ZS4gaG9zdC9tYWNoaW5lIGZyYW1lIG51bWJlcnMpIGxvb2tlZCB1cCBpbiBpdHMgUDJNLgorCitG b3IgYW4gSFZNL1BWSCBkb21haW4sIGFsbCBub24tZm9yZWlnbiBSQU0gcGFnZXMgcHJlc2VudCBp biBpdHMgUDJNIHdpbGwgYmUKK21hcHBlZCBieSBHRk4gaW4gdGhlIElPTU1VIHBhZ2UgdGFibGUu IFRodXMgYSBkZXZpY2UgZHJpdmVyIHJ1bm5pbmcgaW4gdGhlCitkb21haW4gbWF5IHByb2dyYW0g cGFzc3Rocm91Z2ggaGFyZHdhcmUgdXNpbmcgR0ZOIHZhbHVlcyAoaS5lLiBndWVzdAorcGh5c2lj YWwgZnJhbWUgbnVtYmVycykgd2l0aG91dCBhbnkgZnVydGhlciB0cmFuc2xhdGlvbi4KKworVGhp cyBvcHRpb24gaXMgbm90IGN1cnJlbnRseSBhdmFpbGFibGUgb24gQXJtLgorCis9aXRlbSBCPHNo YXJlX3B0PgorCitUaGlzIG9wdGlvbiBpcyB1bmF2YWlsYWJsZSBmb3IgYSBQViBkb21haW4uIEZv ciBhbiBIVk0vUFZIIGRvbWFpbiwgdGhpcworb3B0aW9uIG1lYW5zIHRoYXQgdGhlIElPTU1VIHdp bGwgYmUgcHJvZ3JhbW1lZCB0byBkaXJlY3RseSByZWZlcmVuY2UgdGhlCitkb21haW4ncyBQMk0g dGFibGUgYXMgaXRzIHBhZ2UgdGFibGUuIEZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2YgYSBkZXZp Y2UKK2RyaXZlciBydW5uaW5nIGluIHRoZSBkb21haW4gdGhpcyBpcyBmdW5jdGlvbmFsbHkgZXF1 aXZhbGVudCB0byBCPHN5bmNfcHQ+CitidXQgcGxhY2VzIGxlc3MgbG9hZCBvbiB0aGUgaHlwZXJ2 aXNvciBhbmQgc28gc2hvdWxkIGdlbmVyYWxseSBiZSBzZWxlY3RlZAoraW4gcHJlZmVyZW5jZS4g SG93ZXZlciwgdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGlzIG9wdGlvbiBpcyBoYXJkd2FyZQorc3Bl Y2lmaWMuIElmIEI8eGwgaW5mbz4gcmVwb3J0cyBCPHZpcnRfY2Fwcz4gY29udGFpbmluZworQjxp b21tdV9oYXBfcHRfc2hhcmU+IHRoZW4gdGhpcyBvcHRpb24gbWF5IGJlIHVzZWQuCisKKz1iYWNr CisKID1iYWNrCiAKID1oZWFkMiBEZXZpY2VzCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4 bC5oIGIvdG9vbHMvbGlieGwvbGlieGwuaAppbmRleCAxMjU0NTEzMGRmLi5lNGI5YzUzOWI2IDEw MDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgK QEAgLTQxNSw2ICs0MTUsMTUgQEAKICAqLwogI2RlZmluZSBMSUJYTF9IQVZFX0JVSUxESU5GT19J T01NVV9NRU1LQiAxCiAKKy8qCisgKiBMSUJYTF9IQVZFX0NSRUFURUlORk9fUEFTU1RIUk9VR0gg aW5kaWNhdGVzIHRoYXQKKyAqIGxpYnhsX2RvbWFpbl9jcmVhdGVfaW5mbyBoYXMgYSBwYXNzdGhy b3VnaCBmaWVsZCAod2hpY2ggaXMgYQorICogbGlieGxfcGFzc3Rocm91Z2ggZW51bWVyYXRpb24p IHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgZGV2aWNlIHBhc3MtCisgKiB0aHJvdWdoIGlzIGVuYWJs ZWQgZm9yIHRoZSBkb21haW4gYW5kLCBpZiBzbywgd2hldGhlciB0aGUgSU9NTVUgYW5kCisgKiBI QVAgcGFnZSB0YWJsZXMgbWF5IGJlIHNoYXJlZCBvciBub3QuCisgKi8KKyNkZWZpbmUgTElCWExf SEFWRV9DUkVBVEVJTkZPX1BBU1NUSFJPVUdIIDEKKwogLyoKICAqIGxpYnhsIEFCSSBjb21wYXRp YmlsaXR5CiAgKgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgYi90b29s cy9saWJ4bC9saWJ4bF9jcmVhdGUuYwppbmRleCA1OWRiY2I1MGEwLi4zODc2YTcyYjc4IDEwMDY0 NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYworKysgYi90b29scy9saWJ4bC9saWJ4 bF9jcmVhdGUuYwpAQCAtMzAsNiArMzAsMTMgQEAKIGludCBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9p bmZvX3NldGRlZmF1bHQobGlieGxfX2djICpnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2NyZWF0ZV9pbmZvICpjX2luZm8pCiB7CisgICAg bGlieGxfcGh5c2luZm8gaW5mbzsKKyAgICBpbnQgcmM7CisKKyAgICByYyA9IGxpYnhsX2dldF9w aHlzaW5mbyhDVFgsICZpbmZvKTsKKyAgICBpZiAocmMpCisgICAgICAgIHJldHVybiByYzsKKwog ICAgIGlmICghY19pbmZvLT50eXBlKSB7CiAgICAgICAgIExPRyhFUlJPUiwgImRvbWFpbiB0eXBl IHVuc3BlY2lmaWVkIik7CiAgICAgICAgIHJldHVybiBFUlJPUl9JTlZBTDsKQEAgLTM4LDEyICs0 NSw2IEBAIGludCBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9pbmZvX3NldGRlZmF1bHQobGlieGxfX2dj ICpnYywKICAgICBsaWJ4bF9fYXJjaF9kb21haW5fY3JlYXRlX2luZm9fc2V0ZGVmYXVsdChnYywg Y19pbmZvKTsKIAogICAgIGlmIChjX2luZm8tPnR5cGUgIT0gTElCWExfRE9NQUlOX1RZUEVfUFYp IHsKLSAgICAgICAgbGlieGxfcGh5c2luZm8gaW5mbzsKLSAgICAgICAgaW50IHJjID0gbGlieGxf Z2V0X3BoeXNpbmZvKENUWCwgJmluZm8pOwotCi0gICAgICAgIGlmIChyYykKLSAgICAgICAgICAg IHJldHVybiByYzsKLQogICAgICAgICBpZiAoaW5mby5jYXBfaGFwKQogICAgICAgICAgICAgbGli eGxfZGVmYm9vbF9zZXRkZWZhdWx0KCZjX2luZm8tPmhhcCwgdHJ1ZSk7CiAgICAgICAgIGVsc2Ug aWYgKGluZm8uY2FwX3NoYWRvdykKQEAgLTYyLDYgKzYzLDEzIEBAIGludCBsaWJ4bF9fZG9tYWlu X2NyZWF0ZV9pbmZvX3NldGRlZmF1bHQobGlieGxfX2djICpnYywKICAgICBpZiAoIWNfaW5mby0+ c3NpZHJlZikKICAgICAgICAgY19pbmZvLT5zc2lkcmVmID0gU0VDSU5JVFNJRF9ET01VOwogCisg ICAgaWYgKGluZm8uY2FwX2h2bV9kaXJlY3RpbyAmJgorICAgICAgICAoY19pbmZvLT5wYXNzdGhy b3VnaCA9PSBMSUJYTF9QQVNTVEhST1VHSF9FTkFCTEVEKSkgeworICAgICAgICBjX2luZm8tPnBh c3N0aHJvdWdoID0gKChjX2luZm8tPnR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfUFYpIHx8Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWluZm8uY2FwX2lvbW11X2hhcF9wdF9zaGFy ZSkgPworICAgICAgICAgICAgTElCWExfUEFTU1RIUk9VR0hfU1lOQ19QVCA6IExJQlhMX1BBU1NU SFJPVUdIX1NIQVJFX1BUOworICAgIH0KKwogICAgIHJldHVybiAwOwogfQogCkBAIC01NzgsNiAr NTg2LDE2IEBAIGludCBsaWJ4bF9fZG9tYWluX21ha2UobGlieGxfX2djICpnYywgbGlieGxfZG9t YWluX2NvbmZpZyAqZF9jb25maWcsCiAgICAgICAgICAgICAgICAgbGlieGxfZGVmYm9vbF92YWwo aW5mby0+b29zKSA/IDAgOiBYRU5fRE9NQ1RMX0NERl9vb3Nfb2ZmOwogICAgICAgICB9CiAKKyAg ICAgICAgYXNzZXJ0KGluZm8tPnBhc3N0aHJvdWdoICE9IExJQlhMX1BBU1NUSFJPVUdIX0VOQUJM RUQpOworICAgICAgICBMT0coREVUQUlMLCAicGFzc3Rocm91Z2g6ICVzIiwKKyAgICAgICAgICAg IGxpYnhsX3Bhc3N0aHJvdWdoX3RvX3N0cmluZyhpbmZvLT5wYXNzdGhyb3VnaCkpOworCisgICAg ICAgIGlmIChpbmZvLT5wYXNzdGhyb3VnaCAhPSBMSUJYTF9QQVNTVEhST1VHSF9ESVNBQkxFRCkK KyAgICAgICAgICAgIGNyZWF0ZS5mbGFncyB8PSBYRU5fRE9NQ1RMX0NERl9pb21tdTsKKworICAg ICAgICBpZiAoaW5mby0+cGFzc3Rocm91Z2ggPT0gTElCWExfUEFTU1RIUk9VR0hfU1lOQ19QVCkK KyAgICAgICAgICAgIGNyZWF0ZS5pb21tdV9vcHRzIHw9IFhFTl9ET01DVExfSU9NTVVfbm9fc2hh cmVwdDsKKwogICAgICAgICAvKiBVbHRpbWF0ZWx5LCBoYW5kbGUgaXMgYW4gYXJyYXkgb2YgMTYg dWludDhfdCwgc2FtZSBhcyB1dWlkICovCiAgICAgICAgIGxpYnhsX3V1aWRfY29weShjdHgsIChs aWJ4bF91dWlkICopJmNyZWF0ZS5oYW5kbGUsICZpbmZvLT51dWlkKTsKIApkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRs CmluZGV4IGQ1MmM2M2I2YjAuLjc0OTg3ZjNmMzAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xp YnhsX3R5cGVzLmlkbAorKysgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKQEAgLTI2Myw2 ICsyNjMsMTMgQEAgbGlieGxfdmtiX2JhY2tlbmQgPSBFbnVtZXJhdGlvbigidmtiX2JhY2tlbmQi LCBbCiAgICAgKDIsICJMSU5VWCIpCiAgICAgXSkKIAorbGlieGxfcGFzc3Rocm91Z2ggPSBFbnVt ZXJhdGlvbigicGFzc3Rocm91Z2giLCBbCisgICAgKDAsICJlbmFibGVkIiksCisgICAgKDEsICJk aXNhYmxlZCIpLAorICAgICgyLCAic3luY19wdCIpLAorICAgICgzLCAic2hhcmVfcHQiKSwKKyAg ICBdKQorCiAjCiAjIENvbXBsZXggbGlieGwgdHlwZXMKICMKQEAgLTQwOCw2ICs0MTUsNyBAQCBs aWJ4bF9kb21haW5fY3JlYXRlX2luZm8gPSBTdHJ1Y3QoImRvbWFpbl9jcmVhdGVfaW5mbyIsWwog ICAgICgicG9vbF9uYW1lIiwgICAgc3RyaW5nKSwKICAgICAoInJ1bl9ob3RwbHVnX3NjcmlwdHMi LGxpYnhsX2RlZmJvb2wpLAogICAgICgiZHJpdmVyX2RvbWFpbiIsbGlieGxfZGVmYm9vbCksCisg ICAgKCJwYXNzdGhyb3VnaCIsICBsaWJ4bF9wYXNzdGhyb3VnaCksCiAgICAgXSwgZGlyPURJUl9J TikKIAogbGlieGxfZG9tYWluX3Jlc3RvcmVfcGFyYW1zID0gU3RydWN0KCJkb21haW5fcmVzdG9y ZV9wYXJhbXMiLCBbCmRpZmYgLS1naXQgYS90b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmwubWwg Yi90b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmwubWwKaW5kZXggZGU0YmFlNjAxMi4uZTAwYTc0 ZDQ4ZCAxMDA2NDQKLS0tIGEvdG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsLm1sCisrKyBiL3Rv b2xzL29jYW1sL2xpYnMveGMveGVuY3RybC5tbApAQCAtNjUsMTEgKzY1LDE1IEBAIHR5cGUgZG9t YWluX2NyZWF0ZV9mbGFnID0KIAl8IENERl9YU19ET01BSU4KIAl8IENERl9JT01NVQogCit0eXBl IGRvbWFpbl9jcmVhdGVfaW9tbXVfb3B0cyA9CisJfCBJT01NVV9OT19TSEFSRVBUCisKIHR5cGUg ZG9tY3RsX2NyZWF0ZV9jb25maWcgPQogewogCXNzaWRyZWY6IGludDMyOwogCWhhbmRsZTogc3Ry aW5nOwogCWZsYWdzOiBkb21haW5fY3JlYXRlX2ZsYWcgbGlzdDsKKwlpb21tdV9vcHRzOiBkb21h aW5fY3JlYXRlX2lvbW11X29wdHMgbGlzdDsKIAltYXhfdmNwdXM6IGludDsKIAltYXhfZXZ0Y2hu X3BvcnQ6IGludDsKIAltYXhfZ3JhbnRfZnJhbWVzOiBpbnQ7CmRpZmYgLS1naXQgYS90b29scy9v Y2FtbC9saWJzL3hjL3hlbmN0cmwubWxpIGIvdG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsLm1s aQppbmRleCBjODg1ZTc1ODk1Li4wZTcwNDlkNzA4IDEwMDY0NAotLS0gYS90b29scy9vY2FtbC9s aWJzL3hjL3hlbmN0cmwubWxpCisrKyBiL3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybC5tbGkK QEAgLTU3LDEwICs1NywxNSBAQCB0eXBlIGRvbWFpbl9jcmVhdGVfZmxhZyA9CiAgIHwgQ0RGX09P U19PRkYKICAgfCBDREZfWFNfRE9NQUlOCiAgIHwgQ0RGX0lPTU1VCisKK3R5cGUgZG9tYWluX2Ny ZWF0ZV9pb21tdV9vcHRzID0KKyAgfCBJT01NVV9OT19TSEFSRVBUCisKIHR5cGUgZG9tY3RsX2Ny ZWF0ZV9jb25maWcgPSB7CiAgIHNzaWRyZWY6IGludDMyOwogICBoYW5kbGU6IHN0cmluZzsKICAg ZmxhZ3M6IGRvbWFpbl9jcmVhdGVfZmxhZyBsaXN0OworICBpb21tdV9vcHRzOiBkb21haW5fY3Jl YXRlX2lvbW11X29wdHMgbGlzdDsKICAgbWF4X3ZjcHVzOiBpbnQ7CiAgIG1heF9ldnRjaG5fcG9y dDogaW50OwogICBtYXhfZ3JhbnRfZnJhbWVzOiBpbnQ7CmRpZmYgLS1naXQgYS90b29scy9vY2Ft bC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYyBiL3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybF9z dHVicy5jCmluZGV4IDBjZGQ4NzM1OTkuLjQ4ZjM5ZjgxZDUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL29j YW1sL2xpYnMveGMveGVuY3RybF9zdHVicy5jCisrKyBiL3Rvb2xzL29jYW1sL2xpYnMveGMveGVu Y3RybF9zdHVicy5jCkBAIC0xOTAsMTEgKzE5MCwxMiBAQCBDQU1McHJpbSB2YWx1ZSBzdHViX3hj X2RvbWFpbl9jcmVhdGUodmFsdWUgeGNoLCB2YWx1ZSBjb25maWcpCiAjZGVmaW5lIFZBTF9TU0lE UkVGICAgICAgICAgICAgIEZpZWxkKGNvbmZpZywgMCkKICNkZWZpbmUgVkFMX0hBTkRMRSAgICAg ICAgICAgICAgRmllbGQoY29uZmlnLCAxKQogI2RlZmluZSBWQUxfRkxBR1MgICAgICAgICAgICAg ICBGaWVsZChjb25maWcsIDIpCi0jZGVmaW5lIFZBTF9NQVhfVkNQVVMgICAgICAgICAgIEZpZWxk KGNvbmZpZywgMykKLSNkZWZpbmUgVkFMX01BWF9FVlRDSE5fUE9SVCAgICAgRmllbGQoY29uZmln LCA0KQotI2RlZmluZSBWQUxfTUFYX0dSQU5UX0ZSQU1FUyAgICBGaWVsZChjb25maWcsIDUpCi0j ZGVmaW5lIFZBTF9NQVhfTUFQVFJBQ0tfRlJBTUVTIEZpZWxkKGNvbmZpZywgNikKLSNkZWZpbmUg VkFMX0FSQ0ggICAgICAgICAgICAgICAgRmllbGQoY29uZmlnLCA3KQorI2RlZmluZSBWQUxfSU9N TVVfT1BUUyAgICAgICAgICBGaWVsZChjb25maWcsIDMpCisjZGVmaW5lIFZBTF9NQVhfVkNQVVMg ICAgICAgICAgIEZpZWxkKGNvbmZpZywgNCkKKyNkZWZpbmUgVkFMX01BWF9FVlRDSE5fUE9SVCAg ICAgRmllbGQoY29uZmlnLCA1KQorI2RlZmluZSBWQUxfTUFYX0dSQU5UX0ZSQU1FUyAgICBGaWVs ZChjb25maWcsIDYpCisjZGVmaW5lIFZBTF9NQVhfTUFQVFJBQ0tfRlJBTUVTIEZpZWxkKGNvbmZp ZywgNykKKyNkZWZpbmUgVkFMX0FSQ0ggICAgICAgICAgICAgICAgRmllbGQoY29uZmlnLCA4KQog CiAJdWludDMyX3QgZG9taWQgPSAwOwogCWludCByZXN1bHQ7CkBAIC0yMTMsNiArMjE0LDExIEBA IENBTUxwcmltIHZhbHVlIHN0dWJfeGNfZG9tYWluX2NyZWF0ZSh2YWx1ZSB4Y2gsIHZhbHVlIGNv bmZpZykKIAkJLyogISBYRU5fRE9NQ1RMX0NERl8gWEVOX0RPTUNUTF9DREZfTUFYIG1heCAqLwog CQkoVkFMX0ZMQUdTKTsKIAorCWNmZy5pb21tdV9vcHRzID0gb2NhbWxfbGlzdF90b19jX2JpdG1h cAorCQkvKiAhIGRvbWFpbl9jcmVhdGVfaW9tbXVfb3B0cyBJT01NVV8gbGMgKi8KKwkJLyogISBY RU5fRE9NQ1RMX0lPTU1VXyBYRU5fRE9NQ1RMX0lPTU1VX01BWCBtYXggKi8KKwkJKFZBTF9JT01N VV9PUFRTKTsKKwogCWFyY2hfZG9tY29uZmlnID0gRmllbGQoVkFMX0FSQ0gsIDApOwogCXN3aXRj aCAoIFRhZ192YWwoVkFMX0FSQ0gpICkKIAl7CkBAIC0yNDcsNiArMjUzLDcgQEAgQ0FNTHByaW0g dmFsdWUgc3R1Yl94Y19kb21haW5fY3JlYXRlKHZhbHVlIHhjaCwgdmFsdWUgY29uZmlnKQogI3Vu ZGVmIFZBTF9NQVhfR1JBTlRfRlJBTUVTCiAjdW5kZWYgVkFMX01BWF9FVlRDSE5fUE9SVAogI3Vu ZGVmIFZBTF9NQVhfVkNQVVMKKyN1bmRlZiBWQUxfSU9NTVVfT1BUUwogI3VuZGVmIFZBTF9GTEFH UwogI3VuZGVmIFZBTF9IQU5ETEUKICN1bmRlZiBWQUxfU1NJRFJFRgpkaWZmIC0tZ2l0IGEvdG9v bHMveGwveGxfcGFyc2UuYyBiL3Rvb2xzL3hsL3hsX3BhcnNlLmMKaW5kZXggMjkzZjVmNzMwZS4u MTdiNDU4ZTk0YyAxMDA2NDQKLS0tIGEvdG9vbHMveGwveGxfcGFyc2UuYworKysgYi90b29scy94 bC94bF9wYXJzZS5jCkBAIC0xNDYxLDYgKzE0NjEsMTEzIEBAIHZvaWQgcGFyc2VfY29uZmlnX2Rh dGEoY29uc3QgY2hhciAqY29uZmlnX3NvdXJjZSwKICAgICAgICAgZXhpdCgxKTsKICAgICB9CiAK KyAgICBpZiAoIXhsdV9jZmdfZ2V0X2xpc3QgKGNvbmZpZywgInBjaSIsICZwY2lzLCAwLCAwKSkg eworICAgICAgICBkX2NvbmZpZy0+bnVtX3BjaWRldnMgPSAwOworICAgICAgICBkX2NvbmZpZy0+ cGNpZGV2cyA9IE5VTEw7CisgICAgICAgIGZvcihpID0gMDsgKGJ1ZiA9IHhsdV9jZmdfZ2V0X2xp c3RpdGVtIChwY2lzLCBpKSkgIT0gTlVMTDsgaSsrKSB7CisgICAgICAgICAgICBsaWJ4bF9kZXZp Y2VfcGNpICpwY2lkZXY7CisKKyAgICAgICAgICAgIHBjaWRldiA9IEFSUkFZX0VYVEVORF9JTklU X05PREVWSUQoZF9jb25maWctPnBjaWRldnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRfY29uZmlnLT5udW1fcGNpZGV2cywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3BjaV9pbml0KTsK KyAgICAgICAgICAgIHBjaWRldi0+bXNpdHJhbnNsYXRlID0gcGNpX21zaXRyYW5zbGF0ZTsKKyAg ICAgICAgICAgIHBjaWRldi0+cG93ZXJfbWdtdCA9IHBjaV9wb3dlcl9tZ210OworICAgICAgICAg ICAgcGNpZGV2LT5wZXJtaXNzaXZlID0gcGNpX3Blcm1pc3NpdmU7CisgICAgICAgICAgICBwY2lk ZXYtPnNlaXplID0gcGNpX3NlaXplOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIExp a2Ugb3RoZXIgcGNpIG9wdGlvbiwgdGhlIHBlci1kZXZpY2UgcG9saWN5IGFsd2F5cyBmb2xsb3dz CisgICAgICAgICAgICAgKiB0aGUgZ2xvYmFsIHBvbGljeSBieSBkZWZhdWx0LgorICAgICAgICAg ICAgICovCisgICAgICAgICAgICBwY2lkZXYtPnJkbV9wb2xpY3kgPSBiX2luZm8tPnUuaHZtLnJk bS5wb2xpY3k7CisgICAgICAgICAgICBlID0geGx1X3BjaV9wYXJzZV9iZGYoY29uZmlnLCBwY2lk ZXYsIGJ1Zik7CisgICAgICAgICAgICBpZiAoZSkgeworICAgICAgICAgICAgICAgIGZwcmludGYo c3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAgICAgInVuYWJsZSB0byBwYXJzZSBQQ0kgQkRG IGAlcycgZm9yIHBhc3N0aHJvdWdoXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmKTsK KyAgICAgICAgICAgICAgICBleGl0KC1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg ICAgICBpZiAoZF9jb25maWctPm51bV9wY2lkZXZzICYmIGNfaW5mby0+dHlwZSA9PSBMSUJYTF9E T01BSU5fVFlQRV9QVikKKyAgICAgICAgICAgIGxpYnhsX2RlZmJvb2xfc2V0KCZiX2luZm8tPnUu cHYuZTgyMF9ob3N0LCB0cnVlKTsKKyAgICB9CisKKyAgICBpZiAoIXhsdV9jZmdfZ2V0X2xpc3Qg KGNvbmZpZywgImR0ZGV2IiwgJmR0ZGV2cywgMCwgMCkpIHsKKyAgICAgICAgZF9jb25maWctPm51 bV9kdGRldnMgPSAwOworICAgICAgICBkX2NvbmZpZy0+ZHRkZXZzID0gTlVMTDsKKyAgICAgICAg Zm9yIChpID0gMDsgKGJ1ZiA9IHhsdV9jZmdfZ2V0X2xpc3RpdGVtKGR0ZGV2cywgaSkpICE9IE5V TEw7IGkrKykgeworICAgICAgICAgICAgbGlieGxfZGV2aWNlX2R0ZGV2ICpkdGRldjsKKworICAg ICAgICAgICAgZHRkZXYgPSBBUlJBWV9FWFRFTkRfSU5JVF9OT0RFVklEKGRfY29uZmlnLT5kdGRl dnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZF9jb25m aWctPm51bV9kdGRldnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGlieGxfZGV2aWNlX2R0ZGV2X2luaXQpOworCisgICAgICAgICAgICBkdGRldi0+cGF0 aCA9IHN0cmR1cChidWYpOworICAgICAgICAgICAgaWYgKGR0ZGV2LT5wYXRoID09IE5VTEwpIHsK KyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInVuYWJsZSB0byBkdXBsaWNhdGUgc3Ry aW5nIGZvciBkdGRldnNcbiIpOworICAgICAgICAgICAgICAgIGV4aXQoLTEpOworICAgICAgICAg ICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHhsdV9jZmdfZ2V0X3N0cmluZyhjb25m aWcsICJwYXNzdGhyb3VnaCIsICZidWYsIDApKSB7CisgICAgICAgIGNfaW5mby0+cGFzc3Rocm91 Z2ggPQorICAgICAgICAgICAgKGRfY29uZmlnLT5udW1fcGNpZGV2cyB8fCBkX2NvbmZpZy0+bnVt X2R0ZGV2cykKKyAgICAgICAgICAgID8gTElCWExfUEFTU1RIUk9VR0hfRU5BQkxFRCA6IExJQlhM X1BBU1NUSFJPVUdIX0RJU0FCTEVEOworICAgIH0gZWxzZSB7CisgICAgICAgIGxpYnhsX3Bhc3N0 aHJvdWdoIG87CisKKyAgICAgICAgZSA9IGxpYnhsX3Bhc3N0aHJvdWdoX2Zyb21fc3RyaW5nKGJ1 ZiwgJm8pOworICAgICAgICBpZiAoZSkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisg ICAgICAgICAgICAgICAgICAgICJFUlJPUjogdW5rbm93biBwYXNzdGhyb3VnaCBvcHRpb24gJyVz J1xuIiwKKyAgICAgICAgICAgICAgICAgICAgYnVmKTsKKyAgICAgICAgICAgIGV4aXQoLUVSUk9S X0ZBSUwpOworICAgICAgICB9CisKKyAgICAgICAgY19pbmZvLT5wYXNzdGhyb3VnaCA9IG87Cisg ICAgfQorCisgICAgc3dpdGNoIChjX2luZm8tPnBhc3N0aHJvdWdoKSB7CisgICAgY2FzZSBMSUJY TF9QQVNTVEhST1VHSF9FTkFCTEVEOgorICAgICAgICAvKgorICAgICAgICAgKiBDaG9vc2UgYSBz dWl0YWJsZSBkZWZhdWx0LiBsaWJ4bCB3b3VsZCBhbHNvIGRvIHRoaXMgYnV0CisgICAgICAgICAq IGNob29zaW5nIGhlcmUgYWxsb3dzIHRoZSBjb2RlIGNhbGN1bGF0aW5nICdpb21tdV9tZW1rYicK KyAgICAgICAgICogYmVsb3cgbWFrZSBhbiBpbmZvcm1lZCBkZWNpc2lvbi4KKyAgICAgICAgICov CisgICAgICAgIGNfaW5mby0+cGFzc3Rocm91Z2ggPQorICAgICAgICAgICAgKGNfaW5mby0+dHlw ZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9QVikgfHwgIWlvbW11X2hhcF9wdF9zaGFyZQorICAgICAg ICAgICAgPyBMSUJYTF9QQVNTVEhST1VHSF9TWU5DX1BUIDogTElCWExfUEFTU1RIUk9VR0hfU0hB UkVfUFQ7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBMSUJYTF9QQVNTVEhST1VHSF9ESVNB QkxFRDoKKyAgICAgICAgaWYgKGRfY29uZmlnLT5udW1fcGNpZGV2cyB8fCBkX2NvbmZpZy0+bnVt X2R0ZGV2cykgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAg ICAgICJFUlJPUjogcGFzc3Rocm91Z2ggZGlzYWJsZWQgYnV0IGRldmljZXMgYXJlIHNwZWNpZmll ZFxuIik7CisgICAgICAgICAgICBleGl0KC1FUlJPUl9GQUlMKTsKKyAgICAgICAgfQorICAgICAg ICBicmVhazsKKyAgICBjYXNlIExJQlhMX1BBU1NUSFJPVUdIX1NIQVJFX1BUOgorICAgICAgICBp ZiAoY19pbmZvLT50eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX1BWKSB7CisgICAgICAgICAgICBm cHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgIkVSUk9SOiBwYXNzdGhyb3VnaD1c InNoYXJlX3B0XCIgbm90IHZhbGlkIGZvciBQViBkb21haW5cbiIpOworICAgICAgICAgICAgZXhp dCgtRVJST1JfRkFJTCk7CisgICAgICAgIH0gZWxzZSBpZiAoIWlvbW11X2hhcF9wdF9zaGFyZSkg eworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICJFUlJP UjogcGFzc3Rocm91Z2g9XCJzaGFyZV9wdFwiIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9y bVxuIik7CisgICAgICAgICAgICBleGl0KC1FUlJPUl9GQUlMKTsKKyAgICAgICAgfQorICAgICAg ICBicmVhazsKKyAgICBjYXNlIExJQlhMX1BBU1NUSFJPVUdIX1NZTkNfUFQ6CisgICAgICAgIGJy ZWFrOworICAgIH0KKworICAgIGlmICgoY19pbmZvLT5wYXNzdGhyb3VnaCAhPSBMSUJYTF9QQVNT VEhST1VHSF9ESVNBQkxFRCkgJiYKKyAgICAgICAgIWlvbW11X2VuYWJsZWQpIHsKKyAgICAgICAg ZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgIkVSUk9SOiBwYXNzdGhyb3VnaCBub3Qg c3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm1cbiIpOworICAgICAgICBleGl0KC1FUlJPUl9GQUlM KTsKKyAgICB9CisKICAgICAvKiBsaWJ4bF9nZXRfcmVxdWlyZWRfc2hhZG93X21lbW9yeSgpIGFu ZAogICAgICAqIGxpYnhsX2dldF9yZXF1aXJlZF9pb21tdV9tZW1vcnkoKSBtdXN0IGJlIGNhbGxl ZCBhZnRlciBmaW5hbCB2YWx1ZXMKICAgICAgKiAoZGVmYXVsdCBvciBzcGVjaWZpZWQpIGZvciB2 Y3B1cyBhbmQgbWVtb3J5IGFyZSBzZXQsIGJlY2F1c2UgdGhlCkBAIC0xNDcwLDExICsxNTc3LDEw IEBAIHZvaWQgcGFyc2VfY29uZmlnX2RhdGEoY29uc3QgY2hhciAqY29uZmlnX3NvdXJjZSwKICAg ICAgICAgOiBsaWJ4bF9nZXRfcmVxdWlyZWRfc2hhZG93X21lbW9yeShiX2luZm8tPm1heF9tZW1r YiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiX2luZm8tPm1h eF92Y3B1cyk7CiAKLSAgICAvKiBObyBJT01NVSByZXNlcnZhdGlvbiBpcyBuZWVkZWQgaWYgZWl0 aGVyIHRoZSBJT01NVSBpcyBkaXNhYmxlZCBvciBpdAotICAgICAqIGNhbiBzaGFyZSB0aGUgUDJN LiAqLwotICAgIGJfaW5mby0+aW9tbXVfbWVta2IgPSAoIWlvbW11X2VuYWJsZWQgfHwgaW9tbXVf aGFwX3B0X3NoYXJlKQotICAgICAgICA/IDAKLSAgICAgICAgOiBsaWJ4bF9nZXRfcmVxdWlyZWRf aW9tbXVfbWVtb3J5KGJfaW5mby0+bWF4X21lbWtiKTsKKyAgICAvKiBObyBJT01NVSByZXNlcnZh dGlvbiBpcyBuZWVkZWQgaWYgcGFzc3Rocm91Z2ggbW9kZSBpcyBub3QgJ3N5bmNfcHQnICovCisg ICAgYl9pbmZvLT5pb21tdV9tZW1rYiA9IChjX2luZm8tPnBhc3N0aHJvdWdoID09IExJQlhMX1BB U1NUSFJPVUdIX1NZTkNfUFQpCisgICAgICAgID8gbGlieGxfZ2V0X3JlcXVpcmVkX2lvbW11X21l bW9yeShiX2luZm8tPm1heF9tZW1rYikKKyAgICAgICAgOiAwOwogCiAgICAgeGx1X2NmZ19nZXRf ZGVmYm9vbChjb25maWcsICJub21pZ3JhdGUiLCAmYl9pbmZvLT5kaXNhYmxlX21pZ3JhdGUsIDAp OwogCkBAIC0yMjk4LDU0ICsyNDA0LDYgQEAgc2tpcF92ZmI6CiAgICAgICAgIH0KICAgICB9CiAK LSAgICBpZiAoIXhsdV9jZmdfZ2V0X2xpc3QgKGNvbmZpZywgInBjaSIsICZwY2lzLCAwLCAwKSkg ewotICAgICAgICBkX2NvbmZpZy0+bnVtX3BjaWRldnMgPSAwOwotICAgICAgICBkX2NvbmZpZy0+ cGNpZGV2cyA9IE5VTEw7Ci0gICAgICAgIGZvcihpID0gMDsgKGJ1ZiA9IHhsdV9jZmdfZ2V0X2xp c3RpdGVtIChwY2lzLCBpKSkgIT0gTlVMTDsgaSsrKSB7Ci0gICAgICAgICAgICBsaWJ4bF9kZXZp Y2VfcGNpICpwY2lkZXY7Ci0KLSAgICAgICAgICAgIHBjaWRldiA9IEFSUkFZX0VYVEVORF9JTklU X05PREVWSUQoZF9jb25maWctPnBjaWRldnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRfY29uZmlnLT5udW1fcGNpZGV2cywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3BjaV9pbml0KTsK LSAgICAgICAgICAgIHBjaWRldi0+bXNpdHJhbnNsYXRlID0gcGNpX21zaXRyYW5zbGF0ZTsKLSAg ICAgICAgICAgIHBjaWRldi0+cG93ZXJfbWdtdCA9IHBjaV9wb3dlcl9tZ210OwotICAgICAgICAg ICAgcGNpZGV2LT5wZXJtaXNzaXZlID0gcGNpX3Blcm1pc3NpdmU7Ci0gICAgICAgICAgICBwY2lk ZXYtPnNlaXplID0gcGNpX3NlaXplOwotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIExp a2Ugb3RoZXIgcGNpIG9wdGlvbiwgdGhlIHBlci1kZXZpY2UgcG9saWN5IGFsd2F5cyBmb2xsb3dz Ci0gICAgICAgICAgICAgKiB0aGUgZ2xvYmFsIHBvbGljeSBieSBkZWZhdWx0LgotICAgICAgICAg ICAgICovCi0gICAgICAgICAgICBwY2lkZXYtPnJkbV9wb2xpY3kgPSBiX2luZm8tPnUuaHZtLnJk bS5wb2xpY3k7Ci0gICAgICAgICAgICBlID0geGx1X3BjaV9wYXJzZV9iZGYoY29uZmlnLCBwY2lk ZXYsIGJ1Zik7Ci0gICAgICAgICAgICBpZiAoZSkgewotICAgICAgICAgICAgICAgIGZwcmludGYo c3RkZXJyLAotICAgICAgICAgICAgICAgICAgICAgICAgInVuYWJsZSB0byBwYXJzZSBQQ0kgQkRG IGAlcycgZm9yIHBhc3N0aHJvdWdoXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgYnVmKTsK LSAgICAgICAgICAgICAgICBleGl0KC1lKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAg ICAgICBpZiAoZF9jb25maWctPm51bV9wY2lkZXZzICYmIGNfaW5mby0+dHlwZSA9PSBMSUJYTF9E T01BSU5fVFlQRV9QVikKLSAgICAgICAgICAgIGxpYnhsX2RlZmJvb2xfc2V0KCZiX2luZm8tPnUu cHYuZTgyMF9ob3N0LCB0cnVlKTsKLSAgICB9Ci0KLSAgICBpZiAoIXhsdV9jZmdfZ2V0X2xpc3Qg KGNvbmZpZywgImR0ZGV2IiwgJmR0ZGV2cywgMCwgMCkpIHsKLSAgICAgICAgZF9jb25maWctPm51 bV9kdGRldnMgPSAwOwotICAgICAgICBkX2NvbmZpZy0+ZHRkZXZzID0gTlVMTDsKLSAgICAgICAg Zm9yIChpID0gMDsgKGJ1ZiA9IHhsdV9jZmdfZ2V0X2xpc3RpdGVtKGR0ZGV2cywgaSkpICE9IE5V TEw7IGkrKykgewotICAgICAgICAgICAgbGlieGxfZGV2aWNlX2R0ZGV2ICpkdGRldjsKLQotICAg ICAgICAgICAgZHRkZXYgPSBBUlJBWV9FWFRFTkRfSU5JVF9OT0RFVklEKGRfY29uZmlnLT5kdGRl dnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZF9jb25m aWctPm51bV9kdGRldnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGlieGxfZGV2aWNlX2R0ZGV2X2luaXQpOwotCi0gICAgICAgICAgICBkdGRldi0+cGF0 aCA9IHN0cmR1cChidWYpOwotICAgICAgICAgICAgaWYgKGR0ZGV2LT5wYXRoID09IE5VTEwpIHsK LSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInVuYWJsZSB0byBkdXBsaWNhdGUgc3Ry aW5nIGZvciBkdGRldnNcbiIpOwotICAgICAgICAgICAgICAgIGV4aXQoLTEpOwotICAgICAgICAg ICAgfQotICAgICAgICB9Ci0gICAgfQotCiAgICAgaWYgKCF4bHVfY2ZnX2dldF9saXN0KGNvbmZp ZywgInVzYmN0cmwiLCAmdXNiY3RybHMsIDAsIDApKSB7CiAgICAgICAgIGRfY29uZmlnLT5udW1f dXNiY3RybHMgPSAwOwogICAgICAgICBkX2NvbmZpZy0+dXNiY3RybHMgPSBOVUxMOwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbi5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbi5jCmluZGV4 IGFlMTNlNDdlODYuLjYxZDM1Y2QxMjAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9kb21haW4u YworKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluLmMKQEAgLTYxNyw2ICs2MTcsMTQgQEAgaW50IGFy Y2hfc2FuaXRpc2VfZG9tYWluX2NvbmZpZyhzdHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVkb21haW4g KmNvbmZpZykKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgfQogCisgICAgLyogVGhlIFAy TSB0YWJsZSBtdXN0IGFsd2F5cyBiZSBzaGFyZWQgYmV0d2VlbiB0aGUgQ1BVIGFuZCB0aGUgSU9N TVUgKi8KKyAgICBpZiAoIGNvbmZpZy0+aW9tbXVfb3B0cyAmIFhFTl9ET01DVExfSU9NTVVfbm9f c2hhcmVwdCApCisgICAgeworICAgICAgICBkcHJpbnRrKFhFTkxPR19JTkZPLAorICAgICAgICAg ICAgICAgICJVbnN1cHBvcnRlZCBpb21tdSBvcHRpb246IFhFTl9ET01DVExfSU9NTVVfbm9fc2hh cmVwdFxuIik7CisgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKwogICAgIC8qIEZpbGwg aW4gdGhlIG5hdGl2ZSBHSUMgdmVyc2lvbiwgcGFzc2VkIGJhY2sgdG8gdGhlIHRvb2xzdGFjay4g Ki8KICAgICBpZiAoIGNvbmZpZy0+YXJjaC5naWNfdmVyc2lvbiA9PSBYRU5fRE9NQ1RMX0NPTkZJ R19HSUNfTkFUSVZFICkKICAgICB7CkBAIC02NzcsNyArNjg1LDcgQEAgaW50IGFyY2hfZG9tYWlu X2NyZWF0ZShzdHJ1Y3QgZG9tYWluICpkLAogICAgIEFTU0VSVChjb25maWcgIT0gTlVMTCk7CiAK ICAgICAvKiBwMm1faW5pdCByZWxpZXMgb24gc29tZSB2YWx1ZSBpbml0aWFsaXplZCBieSB0aGUg SU9NTVUgc3Vic3lzdGVtICovCi0gICAgaWYgKCAocmMgPSBpb21tdV9kb21haW5faW5pdChkKSkg IT0gMCApCisgICAgaWYgKCAocmMgPSBpb21tdV9kb21haW5faW5pdChkLCBjb25maWctPmlvbW11 X29wdHMpKSAhPSAwICkKICAgICAgICAgZ290byBmYWlsOwogCiAgICAgaWYgKCAocmMgPSBwMm1f aW5pdChkKSkgIT0gMCApCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluLmMgYi94ZW4v YXJjaC94ODYvZG9tYWluLmMKaW5kZXggZGJkZjZiMWJjMi4uYzBmYWY2ODg1MiAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwpAQCAt NjExLDcgKzYxMSw3IEBAIGludCBhcmNoX2RvbWFpbl9jcmVhdGUoc3RydWN0IGRvbWFpbiAqZCwK ICAgICBpZiAoIChyYyA9IGluaXRfZG9tYWluX2lycV9tYXBwaW5nKGQpKSAhPSAwICkKICAgICAg ICAgZ290byBmYWlsOwogCi0gICAgaWYgKCAocmMgPSBpb21tdV9kb21haW5faW5pdChkKSkgIT0g MCApCisgICAgaWYgKCAocmMgPSBpb21tdV9kb21haW5faW5pdChkLCBjb25maWctPmlvbW11X29w dHMpKSAhPSAwICkKICAgICAgICAgZ290byBmYWlsOwogCiAgICAgcHNyX2RvbWFpbl9pbml0KGQp OwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9kb21haW4uYyBiL3hlbi9jb21tb24vZG9tYWluLmMK aW5kZXggNDY4MWYyOWM4Yi4uMDczM2VlOGIwYSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9kb21h aW4uYworKysgYi94ZW4vY29tbW9uL2RvbWFpbi5jCkBAIC0zMDgsNiArMzA4LDEzIEBAIHN0YXRp YyBpbnQgc2FuaXRpc2VfZG9tYWluX2NvbmZpZyhzdHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVkb21h aW4gKmNvbmZpZykKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgfQogCisgICAgaWYgKCAh KGNvbmZpZy0+ZmxhZ3MgJiBYRU5fRE9NQ1RMX0NERl9pb21tdSkgJiYgY29uZmlnLT5pb21tdV9v cHRzICkKKyAgICB7CisgICAgICAgIGRwcmludGsoWEVOTE9HX0lORk8sCisgICAgICAgICAgICAg ICAgIklPTU1VIG9wdGlvbnMgc3BlY2lmaWVkIGJ1dCBJT01NVSBub3QgZW5hYmxlZFxuIik7Cisg ICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKwogICAgIGlmICggY29uZmlnLT5tYXhfdmNw dXMgPCAxICkKICAgICB7CiAgICAgICAgIGRwcmludGsoWEVOTE9HX0lORk8sICJObyB2Q1BVU1xu Iik7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RvbWN0bC5jIGIveGVuL2NvbW1vbi9kb21jdGwu YwppbmRleCA1ZGNmZTNjOGY2Li42ZTZlOWI5ODY2IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2Rv bWN0bC5jCisrKyBiL3hlbi9jb21tb24vZG9tY3RsLmMKQEAgLTUxNSwxOSArNTE1LDYgQEAgbG9u ZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fZG9tY3RsX3QpIHVfZG9tY3Rs KQogICAgICAgICAgICAgcm92ZXIgPSBkb207CiAgICAgICAgIH0KIAotICAgICAgICAvKgotICAg ICAgICAgKiBGb3Igbm93LCBtYWtlIHN1cmUgdGhlIGNyZWF0ZWRvbWFpbiBJT01NVSBmbGFnIGlz IHNldCBpZiB0aGUKLSAgICAgICAgICogSU9NTVUgaXMgZW5hYmxlZC4gV2hlbiB0aGUgZmxhZyBj b21lcyB1bmRlciB0b29sc3RhY2sgY29udHJvbAotICAgICAgICAgKiB0aGlzIGNhbiBnbyBhd2F5 LgotICAgICAgICAgKi8KLSAgICAgICAgaWYgKCBvcC0+dS5jcmVhdGVkb21haW4uZmxhZ3MgJiBY RU5fRE9NQ1RMX0NERl9pb21tdSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVF9VTlJF QUNIQUJMRSgpOwotICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0gICAgICAgIH0KLSAgICAg ICAgaWYgKCBpb21tdV9lbmFibGVkICkKLSAgICAgICAgICAgIG9wLT51LmNyZWF0ZWRvbWFpbi5m bGFncyB8PSBYRU5fRE9NQ1RMX0NERl9pb21tdTsKLQogICAgICAgICBkID0gZG9tYWluX2NyZWF0 ZShkb20sICZvcC0+dS5jcmVhdGVkb21haW4sIGZhbHNlKTsKICAgICAgICAgaWYgKCBJU19FUlIo ZCkgKQogICAgICAgICB7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21t dS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwppbmRleCA3MWYxN2U3ZWRjLi5l OGZkZGMyZGM3IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCisr KyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTE2Myw3ICsxNjMsNyBAQCBz dGF0aWMgdm9pZCBfX2h3ZG9tX2luaXQgY2hlY2tfaHdkb21fcmVxcyhzdHJ1Y3QgZG9tYWluICpk KQogICAgIGlvbW11X2h3ZG9tX3N0cmljdCA9IHRydWU7CiB9CiAKLWludCBpb21tdV9kb21haW5f aW5pdChzdHJ1Y3QgZG9tYWluICpkKQoraW50IGlvbW11X2RvbWFpbl9pbml0KHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGludCBvcHRzKQogewogICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhk ID0gZG9tX2lvbW11KGQpOwogICAgIGludCByZXQgPSAwOwpAQCAtMTg3LDYgKzE4NywxNSBAQCBp bnQgaW9tbXVfZG9tYWluX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICBpZiAoIGlzX2hhcmR3 YXJlX2RvbWFpbihkKSApCiAgICAgICAgIGNoZWNrX2h3ZG9tX3JlcXMoZCk7IC8qIG1heSBtb2Rp ZnkgaW9tbXVfaHdkb21fc3RyaWN0ICovCiAKKyAgICAvKgorICAgICAqIFVzZSBzaGFyZWQgcGFn ZSB0YWJsZXMgZm9yIEhBUCBhbmQgSU9NTVUgaWYgdGhlIGdsb2JhbCBvcHRpb24KKyAgICAgKiBp cyBlbmFibGVkIChmcm9tIHdoaWNoIHdlIGNhbiBpbmZlciB0aGUgaC93IGlzIGNhcGFibGUpIGFu ZAorICAgICAqIHRoZSBkb21haW4gb3B0aW9ucyBkbyBub3QgZGlzYWxsb3cgaXQuIEhBUCBtdXN0 LCBvZiBjb3Vyc2UsIGFsc28KKyAgICAgKiBiZSBlbmFibGVkLgorICAgICAqLworICAgIGhkLT5o YXBfcHRfc2hhcmUgPSBoYXBfZW5hYmxlZChkKSAmJiBpb21tdV9oYXBfcHRfc2hhcmUgJiYKKyAg ICAgICAgIShvcHRzICYgWEVOX0RPTUNUTF9JT01NVV9ub19zaGFyZXB0KTsKKwogICAgIC8qCiAg ICAgICogTkI6ICdyZWxheGVkJyBoL3cgZG9tYWlucyBkb24ndCBuZWVkIHRoZSBJT01NVSBtYXBw aW5ncyB0byBiZSBrZXB0CiAgICAgICogICAgIGluLXN5bmMgd2l0aCB0aGVpciBhc3NpZ25lZCBw YWdlcyBiZWNhdXNlIGFsbCBob3N0IFJBTSB3aWxsIGJlCkBAIC0xOTUsNiArMjA0LDggQEAgaW50 IGlvbW11X2RvbWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgaWYgKCAhaXNfaGFyZHdh cmVfZG9tYWluKGQpIHx8IGlvbW11X2h3ZG9tX3N0cmljdCApCiAgICAgICAgIGhkLT5uZWVkX3N5 bmMgPSAhaW9tbXVfdXNlX2hhcF9wdChkKTsKIAorICAgIEFTU0VSVCghKGhkLT5uZWVkX3N5bmMg JiYgaGQtPmhhcF9wdF9zaGFyZSkpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwu aAppbmRleCAxYjMxNzZhZGI1Li5iYTg0YWVhNmFiIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9w dWJsaWMvZG9tY3RsLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCkBAIC0zOCw3 ICszOCw3IEBACiAjaW5jbHVkZSAiaHZtL3NhdmUuaCIKICNpbmNsdWRlICJtZW1vcnkuaCIKIAot I2RlZmluZSBYRU5fRE9NQ1RMX0lOVEVSRkFDRV9WRVJTSU9OIDB4MDAwMDAwMTEKKyNkZWZpbmUg WEVOX0RPTUNUTF9JTlRFUkZBQ0VfVkVSU0lPTiAweDAwMDAwMDEyCiAKIC8qCiAgKiBOQi4geGVu X2RvbWN0bC5kb21haW4gaXMgYW4gSU4vT1VUIHBhcmFtZXRlciBmb3IgdGhpcyBvcGVyYXRpb24u CkBAIC03Myw2ICs3MywxNCBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVkb21haW4gewogCiAg ICAgdWludDMyX3QgZmxhZ3M7CiAKKyNkZWZpbmUgX1hFTl9ET01DVExfSU9NTVVfbm9fc2hhcmVw dCAgMAorI2RlZmluZSBYRU5fRE9NQ1RMX0lPTU1VX25vX3NoYXJlcHQgICAoMVUgPDwgX1hFTl9E T01DVExfSU9NTVVfbm9fc2hhcmVwdCkKKworLyogTWF4IFhFTl9ET01DVExfSU9NTVVfKiBjb25z dGFudC4gIFVzZWQgZm9yIEFCSSBjaGVja2luZy4gKi8KKyNkZWZpbmUgWEVOX0RPTUNUTF9JT01N VV9NQVggWEVOX0RPTUNUTF9JT01NVV9ub19zaGFyZXB0CisKKyAgICB1aW50MzJfdCBpb21tdV9v cHRzOworCiAgICAgLyoKICAgICAgKiBWYXJpb3VzIGRvbWFpbiBsaW1pdHMsIHdoaWNoIGltcGFj dCB0aGUgcXVhbnRpdHkgb2YgcmVzb3VyY2VzIChnbG9iYWwKICAgICAgKiBtYXBwaW5nIHNwYWNl LCB4ZW5oZWFwLCBldGMpIGEgZ3Vlc3QgbWF5IGNvbnN1bWUuCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS94ZW4vaW9tbXUuaCBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCmluZGV4IDQyYTkyYTMz NzkuLjdjMzAwM2YzZjEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCisrKyBi L3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCkBAIC04NCw3ICs4NCw3IEBAIGV4dGVybiB1bnNpZ25l ZCBpbnQgaW9tbXVfZGV2X2lvdGxiX3RpbWVvdXQ7CiBpbnQgaW9tbXVfc2V0dXAodm9pZCk7CiBp bnQgaW9tbXVfaGFyZHdhcmVfc2V0dXAodm9pZCk7CiAKLWludCBpb21tdV9kb21haW5faW5pdChz dHJ1Y3QgZG9tYWluICpkKTsKK2ludCBpb21tdV9kb21haW5faW5pdChzdHJ1Y3QgZG9tYWluICpk LCB1bnNpZ25lZCBpbnQgb3B0cyk7CiB2b2lkIGlvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFp biAqZCk7CiB2b2lkIGlvbW11X2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpOwogCkBA IC0yNzgsMTAgKzI3OCwxNCBAQCBzdHJ1Y3QgZG9tYWluX2lvbW11IHsKICAgICAvKiBGZWF0dXJl cyBzdXBwb3J0ZWQgYnkgdGhlIElPTU1VICovCiAgICAgREVDTEFSRV9CSVRNQVAoZmVhdHVyZXMs IElPTU1VX0ZFQVRfY291bnQpOwogCisgICAgLyogRG9lcyB0aGUgZ3Vlc3Qgc2hhcmUgSEFQIG1h cHBpbmcgd2l0aCB0aGUgSU9NTVU/ICovCisgICAgYm9vbCBoYXBfcHRfc2hhcmU7CisKICAgICAv KgotICAgICAqIERvZXMgdGhlIGd1ZXN0IHJlcWlyZSBtYXBwaW5ncyB0byBiZSBzeW5jaG9uaXpl ZCwgdG8gbWFpbnRhaW4KLSAgICAgKiB0aGUgZGVmYXVsdCBkZm4gPT0gcGZuIG1hcC4gKFNlZSBj b21tZW50IG9uIGRmbiBhdCB0aGUgdG9wIG9mCi0gICAgICogaW5jbHVkZS94ZW4vbW0uaCkuCisg ICAgICogRG9lcyB0aGUgZ3Vlc3QgcmVxdWlyZSBtYXBwaW5ncyB0byBiZSBzeW5jaHJvbml6ZWQs IHRvIG1haW50YWluCisgICAgICogdGhlIGRlZmF1bHQgZGZuID09IHBmbiBtYXA/IChTZWUgY29t bWVudCBvbiBkZm4gYXQgdGhlIHRvcCBvZgorICAgICAqIGluY2x1ZGUveGVuL21tLmgpLiBOb3Rl IHRoYXQgaGFwX3B0X3NoYXJlID09IGZhbHNlIGRvZXMgbm90CisgICAgICogbmVjZXNzYXJpbHkg aW1wbHkgdGhpcyBpcyB0cnVlLgogICAgICAqLwogICAgIGJvb2wgbmVlZF9zeW5jOwogfTsKQEAg LTI5MSw4ICsyOTUsNyBAQCBzdHJ1Y3QgZG9tYWluX2lvbW11IHsKICNkZWZpbmUgaW9tbXVfY2xl YXJfZmVhdHVyZShkLCBmKSBjbGVhcl9iaXQoZiwgZG9tX2lvbW11KGQpLT5mZWF0dXJlcykKIAog LyogQXJlIHdlIHVzaW5nIHRoZSBkb21haW4gUDJNIHRhYmxlIGFzIGl0cyBJT01NVSBwYWdldGFi bGU/ICovCi0jZGVmaW5lIGlvbW11X3VzZV9oYXBfcHQoZCkgXAotICAgIChoYXBfZW5hYmxlZChk KSAmJiBpc19pb21tdV9lbmFibGVkKGQpICYmIGlvbW11X2hhcF9wdF9zaGFyZSkKKyNkZWZpbmUg aW9tbXVfdXNlX2hhcF9wdChkKSAgICAgICAoZG9tX2lvbW11KGQpLT5oYXBfcHRfc2hhcmUpCiAK IC8qIERvZXMgdGhlIElPTU1VIHBhZ2V0YWJsZSBuZWVkIHRvIGJlIGtlcHQgc3luY2hyb25pemVk IHdpdGggdGhlIFAyTSAqLwogI2lmZGVmIENPTkZJR19IQVNfUEFTU1RIUk9VR0gKLS0gCjIuMjAu MS4yLmdiMjFlYmI2NzEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0 Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRl dmVs