From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [BUG] pci-passthrough generates "xen:events: Failed to obtain physical IRQ" for some devices Date: Mon, 1 Feb 2016 10:43:46 +0000 Message-ID: <1454323426.28781.73.camel@citrix.com> References: <20160127183005.GB3134@char.us.oracle.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-idNaPvjzTZpw/MiwQnc2" Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Tommi Airikka , Konrad Rzeszutek Wilk Cc: 810379@bugs.debian.org, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org --=-idNaPvjzTZpw/MiwQnc2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, 2016-01-30 at 14:18 +0100, Tommi Airikka wrote: >=20 >=20 > On Wed, Jan 27, 2016 at 7:30 PM, Konrad Rzeszutek Wilk e.com> wrote: > > On Sat, Jan 23, 2016 at 05:12:04PM +0100, Tommi Airikka wrote: > > > Xen developers, > > > > > > After an upgrade of my Debian Jessie dom0 and domUs, my passthroughed > > > NIC stopped working. > > > This bug was probably introduced in Debian Jessie sometime > > > between 2015-12-30 and 2016-01-08 as 2015-12-30 as 2015-12-30 was the > > > last time I upgraded without any problems according to my dpkg.log. > >=20 > > This upgrade looks to only have upgraded the hypervisor? > >=20 > > As in I see: > >=20 > > domU "bug" "uname -a": > > Linux bug 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u2 (2016-01- > > 02) > > x86_64 GNU/Linux > >=20 > > domU "working" "uname -a": > > Linux working 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u2 > > (2016-01-02) x86_64 GNU/Linux > >=20 > > So same version? What was the earlier version of the hypervisor? > I forgot to mention that I use apt-dater to upgrade both dom0 and domUs > at the same time. domU "bug" was created for debugging purposes just a > couple of hours after I used apt-dater and realized that there's > something wrong with the pci passthrough. domU "bug" and domU "working" > should have relatively similar software state. >=20 > According to dom0 dpkg.log, the xen-hypervisor-4.4-amd64 (version "4.4.1- > 9+deb8u3") has been untouched since 2015-12-21. > linux-image-3.16.0-4-amd64 was upgraded from "3.16.7-ckt20-1+deb8u1" to > "3.16.7-ckt20-1+deb8u2" at the point of time when pci passthrough stopped > working. > =C2=A0 > > =C2=A0 > > The Xen version you have says: > > > (XEN) I/O virtualisation disabled > >=20 > > Which is not very healthy for PCI passthrough. Albeit you can do > > it with PV without IOMMU. Did the previous version of Xen have the same > > message? > I downgraded linux-image on dom0: > dpkg -i linux-image-3.16.0-4-amd64_3.16.7-ckt20-1+deb8u1_amd64.deb >=20 > and now the pci passthrough seems to work! The Debian changelog entry for the update says: linux (3.16.7-ckt20-1+deb8u2) jessie-security; urgency=3Dmedium =C2=A0=C2=A0* [xen] Fix race conditions in back-end drivers (CVE-2015-8550,= XSA-155) =C2=A0=C2=A0* [xen] pciback: Fix state validation in MSI control operations =C2=A0=C2=A0=C2=A0=C2=A0(CVE-2015-8551, CVE-2015-8852, XSA-157) =C2=A0=C2=A0* pptp: verify sockaddr_len in pptp_bind() and pptp_connect() (= CVE-2015-8569) =C2=A0=C2=A0* bluetooth: Validate socket address length in sco_sock_bind() = (CVE-2015-8575) =C2=A0=C2=A0* ptrace: being capable wrt a process requires mapped uids/gids =C2=A0=C2=A0=C2=A0=C2=A0(CVE-2015-8709) =C2=A0=C2=A0* KEYS: Fix race between read and revoke (CVE-2015-7550) =C2=A0=C2=A0* [x86] KVM: Reload pit counters for all channels when restorin= g state =C2=A0=C2=A0=C2=A0=C2=A0(CVE-2015-7513) =C2=A0=C2=A0* udp: properly support MSG_PEEK with truncated buffers =C2=A0=C2=A0=C2=A0=C2=A0(Closes: #808293, regression in 3.16.7-ckt17) =C2=A0=C2=A0* Revert "xhci: don't finish a TD if we get a short transfer ev= ent mid TD" =C2=A0=C2=A0=C2=A0=C2=A0(Closes: #808602, #808953, regression in 3.16.7-ckt= 20) The second bullet looks at first pretty interesting from this PoV, see=C2=A0http://xenbits.xen.org/xsa/advisory-157.html=C2=A0for info on the = XSA and the various patches. Konrad is on the CC already so hopefully he has some ideas. I've attached the full Debian package diff from deb8u1 to u2, which has the backported patches in it. Most of them (and all the Xen ones) have an Origin header pointing to the upstream commit, looks like all of XSA-157 was applied and all but one (scsiback, not in this kernel) of XSA-155: +Subject: [1/7] xen: Add RING_COPY_REQUEST() +Origin: https://git.kernel.org/linus/454d5d882c7e412b840e3c99010fe81a9862f= 6fb +Subject: [2/7] xen-netback: don't use last request to determine minimum Tx +Origin: https://git.kernel.org/linus/0f589967a73f1f30ab4ac4dd9ce0bb399b4d6= 357 +Subject: [3/7] xen-netback: use RING_COPY_REQUEST() throughout +Origin: https://git.kernel.org/linus/68a33bfd8403e4e22847165d149823a2e0e67= c9c +Subject: [4/7] xen-blkback: only read request operation from shared ring o= nce +Origin: https://git.kernel.org/linus/1f13d75ccb806260079e0679d55d9253e370e= c8a +Subject: [5/7] xen-blkback: read from indirect descriptors only once +Origin: https://git.kernel.org/linus/18779149101c0dd43ded43669ae2a92d21b6f= 9cb +Subject: [7/7] xen/pciback: Save xen_pci_op commands before processing it +Origin: https://git.kernel.org/linus/8135cf8b092723dbfcc611fe6fdcb3a36c995= 1c5 +Subject: [1/5] xen/pciback: Return error on XEN_PCI_OP_enable_msi when dev= ice +Origin: https://git.kernel.org/linus/56441f3c8e5bd45aab10dd9f8c505dd4bec03= b0d +Subject: [2/5] xen/pciback: Return error on XEN_PCI_OP_enable_msix when de= vice +Origin: https://git.kernel.org/linus/5e0ce1455c09dd61d029b8ad45d82e1ac0b6c= 4c9 +Subject: [3/5] xen/pciback: Do not install an IRQ handler for MSI interrup= ts. +Origin: https://git.kernel.org/linus/a396f3a210c3a61e94d6b87ec05a75d0be2a6= 0d0 +Subject: [4/5] xen/pciback: For XEN_PCI_OP_disable_msi[|x] only disable if +Origin: https://git.kernel.org/linus/7cfb905b9638982862f0331b36ccaaca5d383= b49 +Subject: [5/5] xen/pciback: Don't allow MSI-X ops if PCI_COMMAND_MEMORY is= not +Origin: https://git.kernel.org/linus/408fb0e5aa7fda0059db282ff58c3b2a4278b= aa0 Ian. --=-idNaPvjzTZpw/MiwQnc2 Content-Disposition: attachment; filename="3.16.7-ckt20-1+deb8u1-to-3.16.7-ckt20-1+deb8u2.diff" Content-Type: text/x-patch; name="3.16.7-ckt20-1+deb8u1-to-3.16.7-ckt20-1+deb8u2.diff"; charset="UTF-8" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RlYmlhbi9jaGFuZ2Vsb2cgYi9kZWJpYW4vY2hhbmdlbG9nCmluZGV4IDA0 NWY0MmIuLmVmZmI5NGIgMTAwNjQ0Ci0tLSBhL2RlYmlhbi9jaGFuZ2Vsb2cKKysrIGIvZGViaWFu L2NoYW5nZWxvZwpAQCAtMSwzICsxLDIyIEBACitsaW51eCAoMy4xNi43LWNrdDIwLTErZGViOHUy KSBqZXNzaWUtc2VjdXJpdHk7IHVyZ2VuY3k9bWVkaXVtCisKKyAgKiBbeGVuXSBGaXggcmFjZSBj b25kaXRpb25zIGluIGJhY2stZW5kIGRyaXZlcnMgKENWRS0yMDE1LTg1NTAsIFhTQS0xNTUpCisg ICogW3hlbl0gcGNpYmFjazogRml4IHN0YXRlIHZhbGlkYXRpb24gaW4gTVNJIGNvbnRyb2wgb3Bl cmF0aW9ucworICAgIChDVkUtMjAxNS04NTUxLCBDVkUtMjAxNS04ODUyLCBYU0EtMTU3KQorICAq IHBwdHA6IHZlcmlmeSBzb2NrYWRkcl9sZW4gaW4gcHB0cF9iaW5kKCkgYW5kIHBwdHBfY29ubmVj dCgpIChDVkUtMjAxNS04NTY5KQorICAqIGJsdWV0b290aDogVmFsaWRhdGUgc29ja2V0IGFkZHJl c3MgbGVuZ3RoIGluIHNjb19zb2NrX2JpbmQoKSAoQ1ZFLTIwMTUtODU3NSkKKyAgKiBwdHJhY2U6 IGJlaW5nIGNhcGFibGUgd3J0IGEgcHJvY2VzcyByZXF1aXJlcyBtYXBwZWQgdWlkcy9naWRzCisg ICAgKENWRS0yMDE1LTg3MDkpCisgICogS0VZUzogRml4IHJhY2UgYmV0d2VlbiByZWFkIGFuZCBy ZXZva2UgKENWRS0yMDE1LTc1NTApCisgICogW3g4Nl0gS1ZNOiBSZWxvYWQgcGl0IGNvdW50ZXJz IGZvciBhbGwgY2hhbm5lbHMgd2hlbiByZXN0b3Jpbmcgc3RhdGUKKyAgICAoQ1ZFLTIwMTUtNzUx MykKKyAgKiB1ZHA6IHByb3Blcmx5IHN1cHBvcnQgTVNHX1BFRUsgd2l0aCB0cnVuY2F0ZWQgYnVm ZmVycworICAgIChDbG9zZXM6ICM4MDgyOTMsIHJlZ3Jlc3Npb24gaW4gMy4xNi43LWNrdDE3KQor ICAqIFJldmVydCAieGhjaTogZG9uJ3QgZmluaXNoIGEgVEQgaWYgd2UgZ2V0IGEgc2hvcnQgdHJh bnNmZXIgZXZlbnQgbWlkIFREIgorICAgIChDbG9zZXM6ICM4MDg2MDIsICM4MDg5NTMsIHJlZ3Jl c3Npb24gaW4gMy4xNi43LWNrdDIwKQorCisgLS0gQmVuIEh1dGNoaW5ncyA8YmVuQGRlY2FkZW50 Lm9yZy51az4gIFNhdCwgMDIgSmFuIDIwMTYgMDM6MzE6MzkgKzAwMDAKKwogbGludXggKDMuMTYu Ny1ja3QyMC0xK2RlYjh1MSkgamVzc2llLXNlY3VyaXR5OyB1cmdlbmN5PW1lZGl1bQogCiAgIFsg U2FsdmF0b3JlIEJvbmFjY29yc28gXQpkaWZmIC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvYnVnZml4 L2FsbC9ibHVldG9vdGgtdmFsaWRhdGUtc29ja2V0LWFkZHJlc3MtbGVuZ3RoLWluLXNjb19zb2Nr LnBhdGNoIGIvZGViaWFuL3BhdGNoZXMvYnVnZml4L2FsbC9ibHVldG9vdGgtdmFsaWRhdGUtc29j a2V0LWFkZHJlc3MtbGVuZ3RoLWluLXNjb19zb2NrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjVkODNlZmMKLS0tIC9kZXYvbnVsbAorKysgYi9kZWJpYW4vcGF0Y2hl cy9idWdmaXgvYWxsL2JsdWV0b290aC12YWxpZGF0ZS1zb2NrZXQtYWRkcmVzcy1sZW5ndGgtaW4t c2NvX3NvY2sucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorRnJvbTogIkRhdmlkIFMuIE1pbGxlciIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+CitEYXRlOiBUdWUsIDE1IERlYyAyMDE1IDE1OjM5OjA4IC0w NTAwCitTdWJqZWN0OiBibHVldG9vdGg6IFZhbGlkYXRlIHNvY2tldCBhZGRyZXNzIGxlbmd0aCBp biBzY29fc29ja19iaW5kKCkuCitPcmlnaW46IGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvbGludXMv NTIzMzI1MmZjZTcxNDA1M2YwMTUxNjgwOTMzNTcxYTJkYTljYmZiNAorCitTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CistLS0KKyBuZXQvYmx1ZXRv b3RoL3Njby5jIHwgMyArKysKKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCisKKy0t LSBhL25ldC9ibHVldG9vdGgvc2NvLmMKKysrKyBiL25ldC9ibHVldG9vdGgvc2NvLmMKK0BAIC00 NTksNiArNDU5LDkgQEAgc3RhdGljIGludCBzY29fc29ja19iaW5kKHN0cnVjdCBzb2NrZXQgKgor IAlpZiAoIWFkZHIgfHwgYWRkci0+c2FfZmFtaWx5ICE9IEFGX0JMVUVUT09USCkKKyAJCXJldHVy biAtRUlOVkFMOworIAorKwlpZiAoYWRkcl9sZW4gPCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX3Nj bykpCisrCQlyZXR1cm4gLUVJTlZBTDsKKysKKyAJbG9ja19zb2NrKHNrKTsKKyAKKyAJaWYgKHNr LT5za19zdGF0ZSAhPSBCVF9PUEVOKSB7CmRpZmYgLS1naXQgYS9kZWJpYW4vcGF0Y2hlcy9idWdm aXgvYWxsL2tleXMtZml4LXJhY2UtYmV0d2Vlbi1yZWFkLWFuZC1yZXZva2UucGF0Y2ggYi9kZWJp YW4vcGF0Y2hlcy9idWdmaXgvYWxsL2tleXMtZml4LXJhY2UtYmV0d2Vlbi1yZWFkLWFuZC1yZXZv a2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdmZTUyMgotLS0g L2Rldi9udWxsCisrKyBiL2RlYmlhbi9wYXRjaGVzL2J1Z2ZpeC9hbGwva2V5cy1maXgtcmFjZS1i ZXR3ZWVuLXJlYWQtYW5kLXJldm9rZS5wYXRjaApAQCAtMCwwICsxLDExMCBAQAorRnJvbTogRGF2 aWQgSG93ZWxscyA8ZGhvd2VsbHNAcmVkaGF0LmNvbT4KK0RhdGU6IEZyaSwgMTggRGVjIDIwMTUg MDE6MzQ6MjYgKzAwMDAKK1N1YmplY3Q6IEtFWVM6IEZpeCByYWNlIGJldHdlZW4gcmVhZCBhbmQg cmV2b2tlCitPcmlnaW46IGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvbGludXMvYjRhMWI0ZjUwNDdl NGY1NGUxOTQ2ODExMjVjNzRjMGFhNjRkNjM3ZAorCitUaGlzIGZpeGVzIENWRS0yMDE1LTc1NTAu CisKK1RoZXJlJ3MgYSByYWNlIGJldHdlZW4ga2V5Y3RsX3JlYWQoKSBhbmQga2V5Y3RsX3Jldm9r ZSgpLiAgSWYgdGhlIHJldm9rZQoraGFwcGVucyBiZXR3ZWVuIGtleWN0bF9yZWFkKCkgY2hlY2tp bmcgdGhlIHZhbGlkaXR5IG9mIGEga2V5IGFuZCB0aGUga2V5J3MKK3NlbWFwaG9yZSBiZWluZyB0 YWtlbiwgdGhlbiB0aGUga2V5IHR5cGUgcmVhZCBtZXRob2Qgd2lsbCBzZWUgYSByZXZva2VkIGtl eS4KKworVGhpcyBjYXVzZXMgYSBwcm9ibGVtIGZvciB0aGUgdXNlci1kZWZpbmVkIGtleSB0eXBl IGJlY2F1c2UgaXQgYXNzdW1lcyBpbgoraXRzIHJlYWQgbWV0aG9kIHRoYXQgdGhlcmUgd2lsbCBh bHdheXMgYmUgYSBwYXlsb2FkIGluIGEgbm9uLXJldm9rZWQga2V5CithbmQgZG9lc24ndCBjaGVj ayBmb3IgYSBOVUxMIHBvaW50ZXIuCisKK0ZpeCB0aGlzIGJ5IG1ha2luZyBrZXljdGxfcmVhZCgp IGNoZWNrIHRoZSB2YWxpZGl0eSBvZiBhIGtleSBhZnRlciB0YWtpbmcKK3NlbWFwaG9yZSBpbnN0 ZWFkIG9mIGJlZm9yZS4KKworSSB0aGluayB0aGUgYnVnIHdhcyBpbnRyb2R1Y2VkIHdpdGggdGhl IG9yaWdpbmFsIGtleXJpbmdzIGNvZGUuCisKK1RoaXMgd2FzIGRpc2NvdmVyZWQgYnkgYSBtdWx0 aXRocmVhZGVkIHRlc3QgcHJvZ3JhbSBnZW5lcmF0ZWQgYnkgc3l6a2FsbGVyCisoaHR0cDovL2dp dGh1Yi5jb20vZ29vZ2xlL3N5emthbGxlcikuICBIZXJlJ3MgYSBjbGVhbmVkIHVwIHZlcnNpb246 CisKKwkjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisJI2luY2x1ZGUgPGtleXV0aWxzLmg+CisJI2lu Y2x1ZGUgPHB0aHJlYWQuaD4KKwl2b2lkICp0aHIwKHZvaWQgKmFyZykKKwl7CisJCWtleV9zZXJp YWxfdCBrZXkgPSAodW5zaWduZWQgbG9uZylhcmc7CisJCWtleWN0bF9yZXZva2Uoa2V5KTsKKwkJ cmV0dXJuIDA7CisJfQorCXZvaWQgKnRocjEodm9pZCAqYXJnKQorCXsKKwkJa2V5X3NlcmlhbF90 IGtleSA9ICh1bnNpZ25lZCBsb25nKWFyZzsKKwkJY2hhciBidWZmZXJbMTZdOworCQlrZXljdGxf cmVhZChrZXksIGJ1ZmZlciwgMTYpOworCQlyZXR1cm4gMDsKKwl9CisJaW50IG1haW4oKQorCXsK KwkJa2V5X3NlcmlhbF90IGtleSA9IGFkZF9rZXkoInVzZXIiLCAiJSIsICJmb28iLCAzLCBLRVlf U1BFQ19VU0VSX0tFWVJJTkcpOworCQlwdGhyZWFkX3QgdGhbNV07CisJCXB0aHJlYWRfY3JlYXRl KCZ0aFswXSwgMCwgdGhyMCwgKHZvaWQgKikodW5zaWduZWQgbG9uZylrZXkpOworCQlwdGhyZWFk X2NyZWF0ZSgmdGhbMV0sIDAsIHRocjEsICh2b2lkICopKHVuc2lnbmVkIGxvbmcpa2V5KTsKKwkJ cHRocmVhZF9jcmVhdGUoJnRoWzJdLCAwLCB0aHIwLCAodm9pZCAqKSh1bnNpZ25lZCBsb25nKWtl eSk7CisJCXB0aHJlYWRfY3JlYXRlKCZ0aFszXSwgMCwgdGhyMSwgKHZvaWQgKikodW5zaWduZWQg bG9uZylrZXkpOworCQlwdGhyZWFkX2pvaW4odGhbMF0sIDApOworCQlwdGhyZWFkX2pvaW4odGhb MV0sIDApOworCQlwdGhyZWFkX2pvaW4odGhbMl0sIDApOworCQlwdGhyZWFkX2pvaW4odGhbM10s IDApOworCQlyZXR1cm4gMDsKKwl9CisKK0J1aWxkIGFzOgorCisJY2MgLW8ga2V5Y3RsLXJhY2Ug a2V5Y3RsLXJhY2UuYyAtbGtleXV0aWxzIC1scHRocmVhZAorCitSdW4gYXM6CisKKwl3aGlsZSBr ZXljdGwtcmFjZTsgZG8gOjsgZG9uZQorCithcyBpdCBtYXkgbmVlZCBzZXZlcmFsIGl0ZXJhdGlv bnMgdG8gY3Jhc2ggdGhlIGtlcm5lbC4gIFRoZSBjcmFzaCBjYW4gYmUKK3N1bW1hcmlzZWQgYXM6 CisKKwlCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5j ZSBhdCAwMDAwMDAwMDAwMDAwMDEwCisJSVA6IFs8ZmZmZmZmZmY4MTI3OWIwOD5dIHVzZXJfcmVh ZCsweDU2LzB4YTMKKwkuLi4KKwlDYWxsIFRyYWNlOgorCSBbPGZmZmZmZmZmODEyNzZhYTk+XSBr ZXljdGxfcmVhZF9rZXkrMHhiNi8weGQ3CisJIFs8ZmZmZmZmZmY4MTI3NzgxNT5dIFN5U19rZXlj dGwrMHg4My8weGUwCisJIFs8ZmZmZmZmZmY4MTVkYmI5Nz5dIGVudHJ5X1NZU0NBTExfNjRfZmFz dHBhdGgrMHgxMi8weDZmCisKK1JlcG9ydGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdv b2dsZS5jb20+CitTaWduZWQtb2ZmLWJ5OiBEYXZpZCBIb3dlbGxzIDxkaG93ZWxsc0ByZWRoYXQu Y29tPgorVGVzdGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+CitDYzog c3RhYmxlQHZnZXIua2VybmVsLm9yZworU2lnbmVkLW9mZi1ieTogSmFtZXMgTW9ycmlzIDxqYW1l cy5sLm1vcnJpc0BvcmFjbGUuY29tPgorLS0tCisgc2VjdXJpdHkva2V5cy9rZXljdGwuYyB8IDE4 ICsrKysrKysrKy0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDkg ZGVsZXRpb25zKC0pCisKKy0tLSBhL3NlY3VyaXR5L2tleXMva2V5Y3RsLmMKKysrKyBiL3NlY3Vy aXR5L2tleXMva2V5Y3RsLmMKK0BAIC03NDQsMTYgKzc0NCwxNiBAQCBsb25nIGtleWN0bF9yZWFk X2tleShrZXlfc2VyaWFsX3Qga2V5aWQsCisgCisgCS8qIHRoZSBrZXkgaXMgcHJvYmFibHkgcmVh ZGFibGUgLSBub3cgdHJ5IHRvIHJlYWQgaXQgKi8KKyBjYW5fcmVhZF9rZXk6CistCXJldCA9IGtl eV92YWxpZGF0ZShrZXkpOworLQlpZiAocmV0ID09IDApIHsKKy0JCXJldCA9IC1FT1BOT1RTVVBQ OworLQkJaWYgKGtleS0+dHlwZS0+cmVhZCkgeworLQkJCS8qIHJlYWQgdGhlIGRhdGEgd2l0aCB0 aGUgc2VtYXBob3JlIGhlbGQgKHNpbmNlIHdlCistCQkJICogbWlnaHQgc2xlZXApICovCistCQkJ ZG93bl9yZWFkKCZrZXktPnNlbSk7CisrCXJldCA9IC1FT1BOT1RTVVBQOworKwlpZiAoa2V5LT50 eXBlLT5yZWFkKSB7CisrCQkvKiBSZWFkIHRoZSBkYXRhIHdpdGggdGhlIHNlbWFwaG9yZSBoZWxk IChzaW5jZSB3ZSBtaWdodCBzbGVlcCkKKysJCSAqIHRvIHByb3RlY3QgYWdhaW5zdCB0aGUga2V5 IGJlaW5nIHVwZGF0ZWQgb3IgcmV2b2tlZC4KKysJCSAqLworKwkJZG93bl9yZWFkKCZrZXktPnNl bSk7CisrCQlyZXQgPSBrZXlfdmFsaWRhdGUoa2V5KTsKKysJCWlmIChyZXQgPT0gMCkKKyAJCQly ZXQgPSBrZXktPnR5cGUtPnJlYWQoa2V5LCBidWZmZXIsIGJ1Zmxlbik7CistCQkJdXBfcmVhZCgm a2V5LT5zZW0pOworLQkJfQorKwkJdXBfcmVhZCgma2V5LT5zZW0pOworIAl9CisgCisgZXJyb3Iy OgpkaWZmIC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvYnVnZml4L2FsbC9wcHRwLXZlcmlmeS1zb2Nr YWRkcl9sZW4taW4tcHB0cF9iaW5kLWFuZC1wcHRwX2Nvbm5lLnBhdGNoIGIvZGViaWFuL3BhdGNo ZXMvYnVnZml4L2FsbC9wcHRwLXZlcmlmeS1zb2NrYWRkcl9sZW4taW4tcHB0cF9iaW5kLWFuZC1w cHRwX2Nvbm5lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjOGI3 YmYKLS0tIC9kZXYvbnVsbAorKysgYi9kZWJpYW4vcGF0Y2hlcy9idWdmaXgvYWxsL3BwdHAtdmVy aWZ5LXNvY2thZGRyX2xlbi1pbi1wcHRwX2JpbmQtYW5kLXBwdHBfY29ubmUucGF0Y2gKQEAgLTAs MCArMSwzNCBAQAorRnJvbTogV0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CitE YXRlOiBNb24sIDE0IERlYyAyMDE1IDEzOjQ4OjM2IC0wODAwCitTdWJqZWN0OiBwcHRwOiB2ZXJp Znkgc29ja2FkZHJfbGVuIGluIHBwdHBfYmluZCgpIGFuZCBwcHRwX2Nvbm5lY3QoKQorT3JpZ2lu OiBodHRwczovL2dpdC5rZXJuZWwub3JnL2xpbnVzLzA5Y2NmZDIzOGU1YTBlNjcwZDgxNzhjZjUw MTgwZWE4MWFlMDlhZTEKKworUmVwb3J0ZWQtYnk6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ21h aWwuY29tPgorU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5j b20+CitTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ CistLS0KKyBkcml2ZXJzL25ldC9wcHAvcHB0cC5jIHwgNiArKysrKysKKyAxIGZpbGUgY2hhbmdl ZCwgNiBpbnNlcnRpb25zKCspCisKKy0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHRwLmMKKysrKyBi L2RyaXZlcnMvbmV0L3BwcC9wcHRwLmMKK0BAIC00MjAsNiArNDIwLDkgQEAgc3RhdGljIGludCBw cHRwX2JpbmQoc3RydWN0IHNvY2tldCAqc29jaworIAlzdHJ1Y3QgcHB0cF9vcHQgKm9wdCA9ICZw by0+cHJvdG8ucHB0cDsKKyAJaW50IGVycm9yID0gMDsKKyAKKysJaWYgKHNvY2thZGRyX2xlbiA8 IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfcHBwb3gpKQorKwkJcmV0dXJuIC1FSU5WQUw7CisrCisg CWxvY2tfc29jayhzayk7CisgCisgCW9wdC0+c3JjX2FkZHIgPSBzcC0+c2FfYWRkci5wcHRwOwor QEAgLTQ0MSw2ICs0NDQsOSBAQCBzdGF0aWMgaW50IHBwdHBfY29ubmVjdChzdHJ1Y3Qgc29ja2V0 ICpzCisgCXN0cnVjdCBmbG93aTQgZmw0OworIAlpbnQgZXJyb3IgPSAwOworIAorKwlpZiAoc29j a2FkZHJfbGVuIDwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9wcHBveCkpCisrCQlyZXR1cm4gLUVJ TlZBTDsKKysKKyAJaWYgKHNwLT5zYV9wcm90b2NvbCAhPSBQWF9QUk9UT19QUFRQKQorIAkJcmV0 dXJuIC1FSU5WQUw7CisgCmRpZmYgLS1naXQgYS9kZWJpYW4vcGF0Y2hlcy9idWdmaXgvYWxsL3B0 cmFjZS1iZWluZy1jYXBhYmxlLXdydC1hLXByb2Nlc3MtcmVxdWlyZXMtbWFwcGVkLXVpZHMtZ2lk cy5wYXRjaCBiL2RlYmlhbi9wYXRjaGVzL2J1Z2ZpeC9hbGwvcHRyYWNlLWJlaW5nLWNhcGFibGUt d3J0LWEtcHJvY2Vzcy1yZXF1aXJlcy1tYXBwZWQtdWlkcy1naWRzLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5YzljOTIKLS0tIC9kZXYvbnVsbAorKysgYi9kZWJp YW4vcGF0Y2hlcy9idWdmaXgvYWxsL3B0cmFjZS1iZWluZy1jYXBhYmxlLXdydC1hLXByb2Nlc3Mt cmVxdWlyZXMtbWFwcGVkLXVpZHMtZ2lkcy5wYXRjaApAQCAtMCwwICsxLDEwMiBAQAorRnJvbTog SmFubiBIb3JuIDxqYW5uQHRoZWpoLm5ldD4KK1N1YmplY3Q6IHB0cmFjZTogYmVpbmcgY2FwYWJs ZSB3cnQgYSBwcm9jZXNzIHJlcXVpcmVzIG1hcHBlZCB1aWRzL2dpZHMKK0RhdGU6IFNhdCwgMjYg RGVjIDIwMTUgMDM6NTI6MzEgKzAxMDAKK09yaWdpbjogaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIw MTUvMTIvMjUvNzEKKworcHRyYWNlX2hhc19jYXAoKSBjaGVja3Mgd2hldGhlciB0aGUgY3VycmVu dCBwcm9jZXNzIHNob3VsZCBiZQordHJlYXRlZCBhcyBoYXZpbmcgYSBjZXJ0YWluIGNhcGFiaWxp dHkgZm9yIHB0cmFjZSBjaGVja3MKK2FnYWluc3QgYW5vdGhlciBwcm9jZXNzLiBVbnRpbCBub3cs IHRoaXMgd2FzIGVxdWl2YWxlbnQgdG8KK2hhc19uc19jYXBhYmlsaXR5KGN1cnJlbnQsIHRhcmdl dF9ucywgQ0FQX1NZU19QVFJBQ0UpLgorCitIb3dldmVyLCBpZiBhIHJvb3Qtb3duZWQgcHJvY2Vz cyB3YW50cyB0byBlbnRlciBhIHVzZXIKK25hbWVzcGFjZSBmb3Igc29tZSByZWFzb24gd2l0aG91 dCBrbm93aW5nIHdobyBvd25zIGl0IGFuZAordGhlcmVmb3JlIGNhbid0IGNoYW5nZSB0byB0aGUg bmFtZXNwYWNlIG93bmVyJ3MgdWlkIGFuZCBnaWQKK2JlZm9yZSBlbnRlcmluZywgYXMgc29vbiBh cyBpdCBoYXMgZW50ZXJlZCB0aGUgbmFtZXNwYWNlLAordGhlIG5hbWVzcGFjZSBvd25lciBjYW4g YXR0YWNoIHRvIGl0IHZpYSBwdHJhY2UgYW5kIHRoZXJlYnkKK2dhaW4gYWNjZXNzIHRvIGl0cyB1 aWQgYW5kIGdpZC4KKworV2hpbGUgaXQgaXMgcG9zc2libGUgZm9yIHRoZSBlbnRlcmluZyBwcm9j ZXNzIHRvIHN3aXRjaCB0bwordGhlIHVpZCBvZiBhIGNsYWltZWQgbmFtZXNwYWNlIG93bmVyIGJl Zm9yZSBlbnRlcmluZywKK2NhdXNpbmcgdGhlIGF0dGVtcHQgdG8gZW50ZXIgdG8gZmFpbCBpZiB0 aGUgY2xhaW1lZCB1aWQgaXMKK3dyb25nLCB0aGlzIGRvZXNuJ3Qgc29sdmUgdGhlIHByb2JsZW0g b2YgZGV0ZXJtaW5pbmcgYW4KK2FwcHJvcHJpYXRlIGdpZC4KKworV2l0aCB0aGlzIGNoYW5nZSwg dGhlIGVudGVyaW5nIHByb2Nlc3MgY2FuIGZpcnN0IGVudGVyIHRoZQorbmFtZXNwYWNlIGFuZCB0 aGVuIHNhZmVseSBpbnNwZWN0IHRoZSBuYW1lc3BhY2UncworcHJvcGVydGllcywgZS5nLiB0aHJv dWdoIC9wcm9jL3NlbGYve3VpZF9tYXAsZ2lkX21hcH0sCithc3N1bWluZyB0aGF0IHRoZSBuYW1l c3BhY2Ugb3duZXIgZG9lc24ndCBoYXZlIGFjY2VzcyB0bwordWlkIDAuCitDaGFuZ2VkIGluIHYy OiBUaGUgY2FsbGVyIG5lZWRzIHRvIGJlIGNhcGFibGUgaW4gdGhlCituYW1lc3BhY2UgaW50byB3 aGljaCB0Y3JlZCdzIHVpZHMvZ2lkcyBjYW4gYmUgbWFwcGVkLgorCitTaWduZWQtb2ZmLWJ5OiBK YW5uIEhvcm4gPGphbm5AdGhlamgubmV0PgorLS0tCisga2VybmVsL3B0cmFjZS5jIHwgMzMgKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDI4IGluc2Vy dGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisKKy0tLSBhL2tlcm5lbC9wdHJhY2UuYworKysrIGIv a2VybmVsL3B0cmFjZS5jCitAQCAtMjAsNiArMjAsNyBAQAorICNpbmNsdWRlIDxsaW51eC91aW8u aD4KKyAjaW5jbHVkZSA8bGludXgvYXVkaXQuaD4KKyAjaW5jbHVkZSA8bGludXgvcGlkX25hbWVz cGFjZS5oPgorKyNpbmNsdWRlIDxsaW51eC91c2VyX25hbWVzcGFjZS5oPgorICNpbmNsdWRlIDxs aW51eC9zeXNjYWxscy5oPgorICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisgI2luY2x1ZGUg PGxpbnV4L3JlZ3NldC5oPgorQEAgLTIxMywxMiArMjE0LDM0IEBAIHN0YXRpYyBpbnQgcHRyYWNl X2NoZWNrX2F0dGFjaChzdHJ1Y3QgdGEKKyAJcmV0dXJuIHJldDsKKyB9CisgCistc3RhdGljIGlu dCBwdHJhY2VfaGFzX2NhcChzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKm5zLCB1bnNpZ25lZCBpbnQg bW9kZSkKKytzdGF0aWMgYm9vbCBwdHJhY2VfaGFzX2NhcChjb25zdCBzdHJ1Y3QgY3JlZCAqdGNy ZWQsIHVuc2lnbmVkIGludCBtb2RlKQorIHsKKysJc3RydWN0IHVzZXJfbmFtZXNwYWNlICp0bnMg PSB0Y3JlZC0+dXNlcl9uczsKKysKKysJLyogV2hlbiBhIHJvb3Qtb3duZWQgcHJvY2VzcyBlbnRl cnMgYSB1c2VyIG5hbWVzcGFjZSBjcmVhdGVkIGJ5IGEKKysJICogbWFsaWNpb3VzIHVzZXIsIHRo ZSB1c2VyIHNob3VsZG4ndCBiZSBhYmxlIHRvIGV4ZWN1dGUgY29kZSB1bmRlcgorKwkgKiB1aWQg MCBieSBhdHRhY2hpbmcgdG8gdGhlIHJvb3Qtb3duZWQgcHJvY2VzcyB2aWEgcHRyYWNlLgorKwkg KiBUaGVyZWZvcmUsIHNpbWlsYXIgdG8gdGhlIGNhcGFibGVfd3J0X2lub2RlX3VpZGdpZCgpIGNo ZWNrLAorKwkgKiB2ZXJpZnkgdGhhdCBhbGwgdGhlIHVpZHMgYW5kIGdpZHMgb2YgdGhlIHRhcmdl dCBwcm9jZXNzIGFyZQorKwkgKiBtYXBwZWQgaW50byBhIG5hbWVzcGFjZSBiZWxvdyB0aGUgY3Vy cmVudCBvbmUgaW4gd2hpY2ggdGhlIGNhbGxlcgorKwkgKiBpcyBjYXBhYmxlLgorKwkgKiBObyBm c3VpZC9mc2dpZCBjaGVjayBiZWNhdXNlIF9fcHRyYWNlX21heV9hY2Nlc3MgZG9lc24ndCBkbyBp dAorKwkgKiBlaXRoZXIuCisrCSAqLworKwl3aGlsZSAoCisrCSAgICAha3VpZF9oYXNfbWFwcGlu Zyh0bnMsIHRjcmVkLT5ldWlkKSB8fAorKwkgICAgIWt1aWRfaGFzX21hcHBpbmcodG5zLCB0Y3Jl ZC0+c3VpZCkgfHwKKysJICAgICFrdWlkX2hhc19tYXBwaW5nKHRucywgdGNyZWQtPnVpZCkgIHx8 CisrCSAgICAha2dpZF9oYXNfbWFwcGluZyh0bnMsIHRjcmVkLT5lZ2lkKSB8fAorKwkgICAgIWtn aWRfaGFzX21hcHBpbmcodG5zLCB0Y3JlZC0+c2dpZCkgfHwKKysJICAgICFrZ2lkX2hhc19tYXBw aW5nKHRucywgdGNyZWQtPmdpZCkpIHsKKysJCXRucyA9IHRucy0+cGFyZW50OworKwl9CisrCisg CWlmIChtb2RlICYgUFRSQUNFX01PREVfTk9BVURJVCkKKy0JCXJldHVybiBoYXNfbnNfY2FwYWJp bGl0eV9ub2F1ZGl0KGN1cnJlbnQsIG5zLCBDQVBfU1lTX1BUUkFDRSk7CisrCQlyZXR1cm4gaGFz X25zX2NhcGFiaWxpdHlfbm9hdWRpdChjdXJyZW50LCB0bnMsIENBUF9TWVNfUFRSQUNFKTsKKyAJ ZWxzZQorLQkJcmV0dXJuIGhhc19uc19jYXBhYmlsaXR5KGN1cnJlbnQsIG5zLCBDQVBfU1lTX1BU UkFDRSk7CisrCQlyZXR1cm4gaGFzX25zX2NhcGFiaWxpdHkoY3VycmVudCwgdG5zLCBDQVBfU1lT X1BUUkFDRSk7CisgfQorIAorIC8qIFJldHVybnMgMCBvbiBzdWNjZXNzLCAtZXJybm8gb24gZGVu aWFsLiAqLworQEAgLTI0Nyw3ICsyNzAsNyBAQCBzdGF0aWMgaW50IF9fcHRyYWNlX21heV9hY2Nl c3Moc3RydWN0IHRhCisgCSAgICBnaWRfZXEoY3JlZC0+Z2lkLCB0Y3JlZC0+c2dpZCkgJiYKKyAJ ICAgIGdpZF9lcShjcmVkLT5naWQsIHRjcmVkLT5naWQpKQorIAkJZ290byBvazsKKy0JaWYgKHB0 cmFjZV9oYXNfY2FwKHRjcmVkLT51c2VyX25zLCBtb2RlKSkKKysJaWYgKHB0cmFjZV9oYXNfY2Fw KHRjcmVkLCBtb2RlKSkKKyAJCWdvdG8gb2s7CisgCXJjdV9yZWFkX3VubG9jaygpOworIAlyZXR1 cm4gLUVQRVJNOworQEAgLTI1OCw3ICsyODEsNyBAQCBvazoKKyAJCWR1bXBhYmxlID0gZ2V0X2R1 bXBhYmxlKHRhc2stPm1tKTsKKyAJcmN1X3JlYWRfbG9jaygpOworIAlpZiAoZHVtcGFibGUgIT0g U1VJRF9EVU1QX1VTRVIgJiYKKy0JICAgICFwdHJhY2VfaGFzX2NhcChfX3Rhc2tfY3JlZCh0YXNr KS0+dXNlcl9ucywgbW9kZSkpIHsKKysJICAgICFwdHJhY2VfaGFzX2NhcChfX3Rhc2tfY3JlZCh0 YXNrKSwgbW9kZSkpIHsKKyAJCXJjdV9yZWFkX3VubG9jaygpOworIAkJcmV0dXJuIC1FUEVSTTsK KyAJfQpkaWZmIC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvYnVnZml4L2FsbC9yZXZlcnQtbmV0LWFk ZC1sZW5ndGgtYXJndW1lbnQtdG8tc2tiX2NvcHlfYW5kX2NzdW1fZGF0YWdyYW1faW92ZWMucGF0 Y2ggYi9kZWJpYW4vcGF0Y2hlcy9idWdmaXgvYWxsL3JldmVydC1uZXQtYWRkLWxlbmd0aC1hcmd1 bWVudC10by1za2JfY29weV9hbmRfY3N1bV9kYXRhZ3JhbV9pb3ZlYy5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNWQxYTY0Ci0tLSAvZGV2L251bGwKKysrIGIvZGVi aWFuL3BhdGNoZXMvYnVnZml4L2FsbC9yZXZlcnQtbmV0LWFkZC1sZW5ndGgtYXJndW1lbnQtdG8t c2tiX2NvcHlfYW5kX2NzdW1fZGF0YWdyYW1faW92ZWMucGF0Y2gKQEAgLTAsMCArMSw5NSBAQAor RnJvbTogQmVuIEh1dGNoaW5ncyA8YmVuQGRlY2FkZW50Lm9yZy51az4KK0RhdGU6IFNhdCwgMDIg SmFuIDIwMTYgMDE6MTE6NTUgKzAwMDAKK1N1YmplY3Q6IFJldmVydCAibmV0OiBhZGQgbGVuZ3Ro IGFyZ3VtZW50IHRvIHNrYl9jb3B5X2FuZF9jc3VtX2RhdGFncmFtX2lvdmVjIgorQnVnLURlYmlh bjogaHR0cHM6Ly9idWdzLmRlYmlhbi5vcmcvODA4MjkzCisKK1RoaXMgcmV2ZXJ0cyBjb21taXQg ZmE4OWFlNTU0OGVkMjgyZjBjZWI0NjYwYjNiOTNlNGUyZWU4NzVmMy4gIFRoYXQgZml4ZWQKK3Ro ZSBwcm9ibGVtIG9mIGJ1ZmZlciBvdmVyLXJlYWRzIGludHJvZHVjZWQgYnkgYmFja3BvcnRpbmcg Y29tbWl0Cis4OWMyMmQ4YzNiMjcgKCJuZXQ6IEZpeCBza2IgY3N1bSByYWNlcyB3aGVuIHBlZWtp bmciKSwgYnV0IHJlc3VsdGVkIGluCitpbmNvcnJlY3QgY2hlY2tzdW1taW5nIGZvciBzaG9ydCBy ZWFkcy4gIEl0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBhCitjb21wbGV0ZSBmaXguCisKK1NpZ25l ZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbkBkZWNhZGVudC5vcmcudWs+CistLS0KKy0tLSBh L2luY2x1ZGUvbGludXgvc2tidWZmLmgKKysrKyBiL2luY2x1ZGUvbGludXgvc2tidWZmLmgKK0BA IC0yNTI1LDcgKzI1MjUsNyBAQAorIGludCBza2JfY29weV9kYXRhZ3JhbV9pb3ZlYyhjb25zdCBz dHJ1Y3Qgc2tfYnVmZiAqZnJvbSwgaW50IG9mZnNldCwKKyAJCQkgICAgc3RydWN0IGlvdmVjICp0 bywgaW50IHNpemUpOworIGludCBza2JfY29weV9hbmRfY3N1bV9kYXRhZ3JhbV9pb3ZlYyhzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgaGxlbiwKKy0JCQkJICAgICBzdHJ1Y3QgaW92ZWMgKmlvdiwg aW50IGxlbik7CisrCQkJCSAgICAgc3RydWN0IGlvdmVjICppb3YpOworIGludCBza2JfY29weV9k YXRhZ3JhbV9mcm9tX2lvdmVjKHN0cnVjdCBza19idWZmICpza2IsIGludCBvZmZzZXQsCisgCQkJ CSBjb25zdCBzdHJ1Y3QgaW92ZWMgKmZyb20sIGludCBmcm9tX29mZnNldCwKKyAJCQkJIGludCBs ZW4pOworLS0tIGEvbmV0L2NvcmUvZGF0YWdyYW0uYworKysrIGIvbmV0L2NvcmUvZGF0YWdyYW0u YworQEAgLTgxOCw3ICs4MTgsNiBAQAorICAqCUBza2I6IHNrYnVmZgorICAqCUBobGVuOiBoYXJk d2FyZSBsZW5ndGgKKyAgKglAaW92OiBpbyB2ZWN0b3IKKy0gKglAbGVuOiBhbW91bnQgb2YgZGF0 YSB0byBjb3B5IGZyb20gc2tiIHRvIGlvdgorICAqCisgICoJQ2FsbGVyIF9tdXN0XyBjaGVjayB0 aGF0IHNrYiB3aWxsIGZpdCB0byB0aGlzIGlvdmVjLgorICAqCitAQCAtODI4LDE0ICs4MjcsMTEg QEAKKyAgKgkJCSAgIGNhbiBiZSBtb2RpZmllZCEKKyAgKi8KKyBpbnQgc2tiX2NvcHlfYW5kX2Nz dW1fZGF0YWdyYW1faW92ZWMoc3RydWN0IHNrX2J1ZmYgKnNrYiwKKy0JCQkJICAgICBpbnQgaGxl biwgc3RydWN0IGlvdmVjICppb3YsIGludCBsZW4pCisrCQkJCSAgICAgaW50IGhsZW4sIHN0cnVj dCBpb3ZlYyAqaW92KQorIHsKKyAJX193c3VtIGNzdW07CisgCWludCBjaHVuayA9IHNrYi0+bGVu IC0gaGxlbjsKKyAKKy0JaWYgKGNodW5rID4gbGVuKQorLQkJY2h1bmsgPSBsZW47CistCisgCWlm ICghY2h1bmspCisgCQlyZXR1cm4gMDsKKyAKKy0tLSBhL25ldC9pcHY0L3RjcF9pbnB1dC5jCisr KysgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYworQEAgLTQ5MDYsNyArNDkwNiw3IEBACisgCQllcnIg PSBza2JfY29weV9kYXRhZ3JhbV9pb3ZlYyhza2IsIGhsZW4sIHRwLT51Y29weS5pb3YsIGNodW5r KTsKKyAJZWxzZQorIAkJZXJyID0gc2tiX2NvcHlfYW5kX2NzdW1fZGF0YWdyYW1faW92ZWMoc2ti LCBobGVuLAorLQkJCQkJCSAgICAgICB0cC0+dWNvcHkuaW92LCBjaHVuayk7CisrCQkJCQkJICAg ICAgIHRwLT51Y29weS5pb3YpOworIAorIAlpZiAoIWVycikgeworIAkJdHAtPnVjb3B5LmxlbiAt PSBjaHVuazsKKy0tLSBhL25ldC9pcHY0L3VkcC5jCisrKysgYi9uZXQvaXB2NC91ZHAuYworQEAg LTEzMDcsNyArMTMwNyw3IEBACisgCWVsc2UgeworIAkJZXJyID0gc2tiX2NvcHlfYW5kX2NzdW1f ZGF0YWdyYW1faW92ZWMoc2tiLAorIAkJCQkJCSAgICAgICBzaXplb2Yoc3RydWN0IHVkcGhkciks CistCQkJCQkJICAgICAgIG1zZy0+bXNnX2lvdiwgY29waWVkKTsKKysJCQkJCQkgICAgICAgbXNn LT5tc2dfaW92KTsKKyAKKyAJCWlmIChlcnIgPT0gLUVJTlZBTCkKKyAJCQlnb3RvIGNzdW1fY29w eV9lcnI7CistLS0gYS9uZXQvaXB2Ni9yYXcuYworKysrIGIvbmV0L2lwdjYvcmF3LmMKK0BAIC00 OTIsNyArNDkyLDcgQEAKKyAJCQlnb3RvIGNzdW1fY29weV9lcnI7CisgCQllcnIgPSBza2JfY29w eV9kYXRhZ3JhbV9pb3ZlYyhza2IsIDAsIG1zZy0+bXNnX2lvdiwgY29waWVkKTsKKyAJfSBlbHNl IHsKKy0JCWVyciA9IHNrYl9jb3B5X2FuZF9jc3VtX2RhdGFncmFtX2lvdmVjKHNrYiwgMCwgbXNn LT5tc2dfaW92LCBjb3BpZWQpOworKwkJZXJyID0gc2tiX2NvcHlfYW5kX2NzdW1fZGF0YWdyYW1f aW92ZWMoc2tiLCAwLCBtc2ctPm1zZ19pb3YpOworIAkJaWYgKGVyciA9PSAtRUlOVkFMKQorIAkJ CWdvdG8gY3N1bV9jb3B5X2VycjsKKyAJfQorLS0tIGEvbmV0L2lwdjYvdWRwLmMKKysrKyBiL25l dC9pcHY2L3VkcC5jCitAQCAtNDI4LDggKzQyOCw3IEBACisgCQllcnIgPSBza2JfY29weV9kYXRh Z3JhbV9pb3ZlYyhza2IsIHNpemVvZihzdHJ1Y3QgdWRwaGRyKSwKKyAJCQkJCSAgICAgIG1zZy0+ bXNnX2lvdiwgY29waWVkKTsKKyAJZWxzZSB7CistCQllcnIgPSBza2JfY29weV9hbmRfY3N1bV9k YXRhZ3JhbV9pb3ZlYyhza2IsIHNpemVvZihzdHJ1Y3QgdWRwaGRyKSwKKy0JCQkJCQkgICAgICAg bXNnLT5tc2dfaW92LCBjb3BpZWQpOworKwkJZXJyID0gc2tiX2NvcHlfYW5kX2NzdW1fZGF0YWdy YW1faW92ZWMoc2tiLCBzaXplb2Yoc3RydWN0IHVkcGhkciksIG1zZy0+bXNnX2lvdik7CisgCQlp ZiAoZXJyID09IC1FSU5WQUwpCisgCQkJZ290byBjc3VtX2NvcHlfZXJyOworIAl9CmRpZmYgLS1n aXQgYS9kZWJpYW4vcGF0Y2hlcy9idWdmaXgvYWxsL3JldmVydC14aGNpLWRvbi10LWZpbmlzaC1h LXRkLWlmLXdlLWdldC1hLXNob3J0LXRyYW5zZmVyLnBhdGNoIGIvZGViaWFuL3BhdGNoZXMvYnVn Zml4L2FsbC9yZXZlcnQteGhjaS1kb24tdC1maW5pc2gtYS10ZC1pZi13ZS1nZXQtYS1zaG9ydC10 cmFuc2Zlci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGZlNmFl Ci0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL3BhdGNoZXMvYnVnZml4L2FsbC9yZXZlcnQteGhj aS1kb24tdC1maW5pc2gtYS10ZC1pZi13ZS1nZXQtYS1zaG9ydC10cmFuc2Zlci5wYXRjaApAQCAt MCwwICsxLDM3IEBACitGcm9tOiBCZW4gSHV0Y2hpbmdzIDxiZW5AZGVjYWRlbnQub3JnLnVrPgor RGF0ZTogU2F0LCAwMiBKYW4gMjAxNiAwMzowMzoyNyArMDAwMAorU3ViamVjdDogUmV2ZXJ0ICJ4 aGNpOiBkb24ndCBmaW5pc2ggYSBURCBpZiB3ZSBnZXQgYSBzaG9ydCB0cmFuc2ZlciBldmVudCBt aWQgVEQiCitCdWctRGViaWFuOiBodHRwczovL2J1Z3MuZGViaWFuLm9yZy84MDg2MDIKK0J1Zy1E ZWJpYW46IGh0dHBzOi8vYnVncy5kZWJpYW4ub3JnLzgwODk1MworCitUaGlzIHJldmVydHMgY29t bWl0IGRiZDgxZjc1Yjk5MWM5NzI5NzA3NjRiYTc1Mjg3Y2JiYzhmMDY2YmUsIHdoaWNoCit3YXMg Y29tbWl0IGUyMTBjNDIyYjZmZGQyZGMxMjNiZWRjNTg4ZjM5OWFlZmQ4YmY5ZGUgdXBzdHJlYW0u ICBJdAorY2F1c2VkIHNlcmlvdXMgcmVncmVzc2lvbnMgYXMgcmVmZXJlbmNlZCBhYm92ZS4KKwor LS0tCistLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jCisrKysgYi9kcml2ZXJzL3Vz Yi9ob3N0L3hoY2ktcmluZy5jCitAQCAtMjE5MSwxMCArMjE5MSw2IEBAIHN0YXRpYyBpbnQgcHJv Y2Vzc19idWxrX2ludHJfdGQoc3RydWN0IHgKKyAJCQkJRVZFTlRfVFJCX0xFTihsZTMyX3RvX2Nw dShldmVudC0+dHJhbnNmZXJfbGVuKSkpOworIAkvKiBGYXN0IHBhdGggLSB3YXMgdGhpcyB0aGUg bGFzdCBUUkIgaW4gdGhlIFREIGZvciB0aGlzIFVSQj8gKi8KKyAJaWYgKGV2ZW50X3RyYiA9PSB0 ZC0+bGFzdF90cmIpIHsKKy0JCWlmICh0ZC0+dXJiX2xlbmd0aF9zZXQgJiYgdHJiX2NvbXBfY29k ZSA9PSBDT01QX1NIT1JUX1RYKQorLQkJCXJldHVybiBmaW5pc2hfdGQoeGhjaSwgdGQsIGV2ZW50 X3RyYiwgZXZlbnQsIGVwLAorLQkJCQkJIHN0YXR1cywgZmFsc2UpOworLQorIAkJaWYgKEVWRU5U X1RSQl9MRU4obGUzMl90b19jcHUoZXZlbnQtPnRyYW5zZmVyX2xlbikpICE9IDApIHsKKyAJCQl0 ZC0+dXJiLT5hY3R1YWxfbGVuZ3RoID0KKyAJCQkJdGQtPnVyYi0+dHJhbnNmZXJfYnVmZmVyX2xl bmd0aCAtCitAQCAtMjI0NiwxMiArMjI0Miw2IEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19idWxrX2lu dHJfdGQoc3RydWN0IHgKKyAJCQl0ZC0+dXJiLT5hY3R1YWxfbGVuZ3RoICs9CisgCQkJCVRSQl9M RU4obGUzMl90b19jcHUoY3VyX3RyYi0+Z2VuZXJpYy5maWVsZFsyXSkpIC0KKyAJCQkJRVZFTlRf VFJCX0xFTihsZTMyX3RvX2NwdShldmVudC0+dHJhbnNmZXJfbGVuKSk7CistCistCQlpZiAodHJi X2NvbXBfY29kZSA9PSBDT01QX1NIT1JUX1RYKSB7CistCQkJeGhjaV9kYmcoeGhjaSwgIm1pZCBi dWxrL2ludHIgU1AsIHdhaXQgZm9yIGxhc3QgVFJCIGV2ZW50XG4iKTsKKy0JCQl0ZC0+dXJiX2xl bmd0aF9zZXQgPSB0cnVlOworLQkJCXJldHVybiAwOworLQkJfQorIAl9CisgCisgCXJldHVybiBm aW5pc2hfdGQoeGhjaSwgdGQsIGV2ZW50X3RyYiwgZXZlbnQsIGVwLCBzdGF0dXMsIGZhbHNlKTsK ZGlmZiAtLWdpdCBhL2RlYmlhbi9wYXRjaGVzL2J1Z2ZpeC9hbGwvdWRwLXByb3Blcmx5LXN1cHBv cnQtbXNnX3BlZWstd2l0aC10cnVuY2F0ZWQtYnVmZmVycy5wYXRjaCBiL2RlYmlhbi9wYXRjaGVz L2J1Z2ZpeC9hbGwvdWRwLXByb3Blcmx5LXN1cHBvcnQtbXNnX3BlZWstd2l0aC10cnVuY2F0ZWQt YnVmZmVycy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzRkODZm Ci0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL3BhdGNoZXMvYnVnZml4L2FsbC91ZHAtcHJvcGVy bHktc3VwcG9ydC1tc2dfcGVlay13aXRoLXRydW5jYXRlZC1idWZmZXJzLnBhdGNoCkBAIC0wLDAg KzEsODggQEAKK0Zyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KK0RhdGU6 IFdlZCwgMzAgRGVjIDIwMTUgMDg6NTE6MTIgLTA1MDAKK1N1YmplY3Q6IHVkcDogcHJvcGVybHkg c3VwcG9ydCBNU0dfUEVFSyB3aXRoIHRydW5jYXRlZCAgYnVmZmVycworQnVnLURlYmlhbjogaHR0 cHM6Ly9idWdzLmRlYmlhbi5vcmcvODA4MjkzCitPcmlnaW46IGh0dHA6Ly9hcnRpY2xlLmdtYW5l Lm9yZy9nbWFuZS5saW51eC5rZXJuZWwuc3RhYmxlLzE1OTEzMgorCitCYWNrcG9ydCBvZiB0aGlz IHVwc3RyZWFtIGNvbW1pdCBpbnRvIHN0YWJsZSBrZXJuZWxzIDoKKzg5YzIyZDhjM2IyNyAoIm5l dDogRml4IHNrYiBjc3VtIHJhY2VzIHdoZW4gcGVla2luZyIpCitleHBvc2VkIGEgYnVnIGluIHVk cCBzdGFjayB2cyBNU0dfUEVFSyBzdXBwb3J0LCB3aGVuIHVzZXIgcHJvdmlkZXMKK2EgYnVmZmVy IHNtYWxsZXIgdGhhbiBza2IgcGF5bG9hZC4KKyAgICAKK0luIHRoaXMgY2FzZSwKK3NrYl9jb3B5 X2FuZF9jc3VtX2RhdGFncmFtX2lvdmVjKHNrYiwgc2l6ZW9mKHN0cnVjdCB1ZHBoZHIpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnLT5tc2dfaW92KTsKK3JldHVybnMgLUVG QVVMVC4KKyAgICAKK1RoaXMgYnVnIGRvZXMgbm90IGhhcHBlbiBpbiB1cHN0cmVhbSBrZXJuZWxz IHNpbmNlIEFsIFZpcm8gZGlkIGEgZ3JlYXQKK2pvYiB0byByZXBsYWNlIHRoaXMgaW50byA6Citz a2JfY29weV9hbmRfY3N1bV9kYXRhZ3JhbV9tc2coc2tiLCBzaXplb2Yoc3RydWN0IHVkcGhkciks IG1zZyk7CitUaGlzIHZhcmlhbnQgaXMgc2FmZSB2cyBzaG9ydCBidWZmZXJzLgorICAgIAorRm9y IHRoZSB0aW1lIGJlaW5nLCBpbnN0ZWFkIHJldmVydGluZyBIZXJiZXJ0IFh1IHBhdGNoIGFuZCBh ZGQgYmFjaworc2tiLT5pcF9zdW1tZWQgaW52YWxpZCBjaGFuZ2VzLCBzaW1wbHkgc3RvcmUgdGhl IHJlc3VsdCBvZgordWRwX2xpYl9jaGVja3N1bV9jb21wbGV0ZSgpIHNvIHRoYXQgd2UgYXZvaWQg Y29tcHV0aW5nIHRoZSBjaGVja3N1bSBhCitzZWNvbmQgdGltZSwgYW5kIGF2b2lkIHRoZSBwcm9i bGVtYXRpYworc2tiX2NvcHlfYW5kX2NzdW1fZGF0YWdyYW1faW92ZWMoKSBjYWxsLgorCitUaGlz IHBhdGNoIGNhbiBiZSBhcHBsaWVkIG9uIHJlY2VudCBrZXJuZWxzIGFzIGl0IGF2b2lkcyBhIGRv dWJsZQorY2hlY2tzdW1taW5nLCB0aGVuIGJhY2twb3J0ZWQgdG8gc3RhYmxlIGtlcm5lbHMgYXMg YSBidWcgZml4LgorCitTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+CitbYndoOiBCYWNrcG9ydGVkIHRvIDMuMTY6IGFkanVzdCBjb250ZXh0XQorU2lnbmVk LW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuQGRlY2FkZW50Lm9yZy51az4KKy0tLQorIG5ldC9p cHY0L3VkcC5jIHwgICAgNiArKysrLS0KKyBuZXQvaXB2Ni91ZHAuYyB8ICAgIDYgKysrKy0tCisg MiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKKy0tLSBh L25ldC9pcHY0L3VkcC5jCisrKysgYi9uZXQvaXB2NC91ZHAuYworQEAgLTEyNzQsNiArMTI3NCw3 IEBAIGludCB1ZHBfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnUKKyAJaW50IHBlZWtl ZCwgb2ZmID0gMDsKKyAJaW50IGVycjsKKyAJaW50IGlzX3VkcGxpdGUgPSBJU19VRFBMSVRFKHNr KTsKKysJYm9vbCBjaGVja3N1bV92YWxpZCA9IGZhbHNlOworIAlib29sIHNsb3c7CisgCisgCWlm IChmbGFncyAmIE1TR19FUlJRVUVVRSkKK0BAIC0xMjk5LDExICsxMzAwLDEyIEBAIHRyeV9hZ2Fp bjoKKyAJICovCisgCisgCWlmIChjb3BpZWQgPCB1bGVuIHx8IFVEUF9TS0JfQ0Ioc2tiKS0+cGFy dGlhbF9jb3YpIHsKKy0JCWlmICh1ZHBfbGliX2NoZWNrc3VtX2NvbXBsZXRlKHNrYikpCisrCQlj aGVja3N1bV92YWxpZCA9ICF1ZHBfbGliX2NoZWNrc3VtX2NvbXBsZXRlKHNrYik7CisrCQlpZiAo IWNoZWNrc3VtX3ZhbGlkKQorIAkJCWdvdG8gY3N1bV9jb3B5X2VycjsKKyAJfQorIAorLQlpZiAo c2tiX2NzdW1fdW5uZWNlc3Nhcnkoc2tiKSkKKysJaWYgKGNoZWNrc3VtX3ZhbGlkIHx8IHNrYl9j c3VtX3VubmVjZXNzYXJ5KHNrYikpCisgCQllcnIgPSBza2JfY29weV9kYXRhZ3JhbV9pb3ZlYyhz a2IsIHNpemVvZihzdHJ1Y3QgdWRwaGRyKSwKKyAJCQkJCSAgICAgIG1zZy0+bXNnX2lvdiwgY29w aWVkKTsKKyAJZWxzZSB7CistLS0gYS9uZXQvaXB2Ni91ZHAuYworKysrIGIvbmV0L2lwdjYvdWRw LmMKK0BAIC0zODksNiArMzg5LDcgQEAgaW50IHVkcHY2X3JlY3Ztc2coc3RydWN0IGtpb2NiICpp b2NiLCBzdAorIAlpbnQgcGVla2VkLCBvZmYgPSAwOworIAlpbnQgZXJyOworIAlpbnQgaXNfdWRw bGl0ZSA9IElTX1VEUExJVEUoc2spOworKwlib29sIGNoZWNrc3VtX3ZhbGlkID0gZmFsc2U7Cisg CWludCBpc191ZHA0OworIAlib29sIHNsb3c7CisgCitAQCAtNDIwLDExICs0MjEsMTIgQEAgdHJ5 X2FnYWluOgorIAkgKi8KKyAKKyAJaWYgKGNvcGllZCA8IHVsZW4gfHwgVURQX1NLQl9DQihza2Ip LT5wYXJ0aWFsX2NvdikgeworLQkJaWYgKHVkcF9saWJfY2hlY2tzdW1fY29tcGxldGUoc2tiKSkK KysJCWNoZWNrc3VtX3ZhbGlkID0gIXVkcF9saWJfY2hlY2tzdW1fY29tcGxldGUoc2tiKTsKKysJ CWlmICghY2hlY2tzdW1fdmFsaWQpCisgCQkJZ290byBjc3VtX2NvcHlfZXJyOworIAl9CisgCist CWlmIChza2JfY3N1bV91bm5lY2Vzc2FyeShza2IpKQorKwlpZiAoY2hlY2tzdW1fdmFsaWQgfHwg c2tiX2NzdW1fdW5uZWNlc3Nhcnkoc2tiKSkKKyAJCWVyciA9IHNrYl9jb3B5X2RhdGFncmFtX2lv dmVjKHNrYiwgc2l6ZW9mKHN0cnVjdCB1ZHBoZHIpLAorIAkJCQkJICAgICAgbXNnLT5tc2dfaW92 LCBjb3BpZWQpOworIAllbHNlIHsKZGlmZiAtLWdpdCBhL2RlYmlhbi9wYXRjaGVzL2J1Z2ZpeC9h bGwveGVuLWFkZC1yaW5nX2NvcHlfcmVxdWVzdC5wYXRjaCBiL2RlYmlhbi9wYXRjaGVzL2J1Z2Zp eC9hbGwveGVuLWFkZC1yaW5nX2NvcHlfcmVxdWVzdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi41MWU5NTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL3BhdGNo ZXMvYnVnZml4L2FsbC94ZW4tYWRkLXJpbmdfY29weV9yZXF1ZXN0LnBhdGNoCkBAIC0wLDAgKzEs NTIgQEAKK0Zyb206IERhdmlkIFZyYWJlbCA8ZGF2aWQudnJhYmVsQGNpdHJpeC5jb20+CitEYXRl OiBGcmksIDMwIE9jdCAyMDE1IDE0OjU4OjA4ICswMDAwCitTdWJqZWN0OiBbMS83XSB4ZW46IEFk ZCBSSU5HX0NPUFlfUkVRVUVTVCgpCitPcmlnaW46IGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvbGlu dXMvNDU0ZDVkODgyYzdlNDEyYjg0MGUzYzk5MDEwZmU4MWE5ODYyZjZmYgorCitVc2luZyBSSU5H X0dFVF9SRVFVRVNUKCkgb24gYSBzaGFyZWQgcmluZyBpcyBlYXN5IHRvIHVzZSBpbmNvcnJlY3Rs eQorKGkuZS4sIGJ5IG5vdCBjb25zaWRlcmluZyB0aGF0IHRoZSBvdGhlciBlbmQgbWF5IGFsdGVy IHRoZSBkYXRhIGluIHRoZQorc2hhcmVkIHJpbmcgd2hpbGUgaXQgaXMgYmVpbmcgaW5zcGVjdGVk KS4gIFNhZmUgdXNhZ2Ugb2YgYSByZXF1ZXN0CitnZW5lcmFsbHkgcmVxdWlyZXMgdGFraW5nIGEg bG9jYWwgY29weS4KKworUHJvdmlkZSBhIFJJTkdfQ09QWV9SRVFVRVNUKCkgbWFjcm8gdG8gdXNl IGluc3RlYWQgb2YKK1JJTkdfR0VUX1JFUVVFU1QoKSBhbmQgYW4gb3Blbi1jb2RlZCBtZW1jcHko KS4gIFRoaXMgdGFrZXMgY2FyZSBvZgorZW5zdXJpbmcgdGhhdCB0aGUgY29weSBpcyBkb25lIGNv cnJlY3RseSByZWdhcmRsZXNzIG9mIGFueSBwb3NzaWJsZQorY29tcGlsZXIgb3B0aW1pemF0aW9u cy4KKworVXNlIGEgdm9sYXRpbGUgc291cmNlIHRvIHByZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20g cmVvcmRlcmluZyBvcgorb21pdHRpbmcgdGhlIGNvcHkuCisKK1RoaXMgaXMgcGFydCBvZiBYU0Ex NTUuCisKK0NDOiBzdGFibGVAdmdlci5rZXJuZWwub3JnCitTaWduZWQtb2ZmLWJ5OiBEYXZpZCBW cmFiZWwgPGRhdmlkLnZyYWJlbEBjaXRyaXguY29tPgorU2lnbmVkLW9mZi1ieTogS29ucmFkIFJ6 ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgorLS0tCisgaW5jbHVkZS94ZW4v aW50ZXJmYWNlL2lvL3JpbmcuaCB8IDE0ICsrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQs IDE0IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS9p by9yaW5nLmggYi9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8vcmluZy5oCitpbmRleCA3ZDI4YWZm Li43ZGM2ODViNCAxMDA2NDQKKy0tLSBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS9pby9yaW5nLmgK KysrKyBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS9pby9yaW5nLmgKK0BAIC0xODEsNiArMTgxLDIw IEBAIHN0cnVjdCBfX25hbWUjI19iYWNrX3JpbmcgewkJCQkJCVwKKyAjZGVmaW5lIFJJTkdfR0VU X1JFUVVFU1QoX3IsIF9pZHgpCQkJCQlcCisgICAgICgmKChfciktPnNyaW5nLT5yaW5nWygoX2lk eCkgJiAoUklOR19TSVpFKF9yKSAtIDEpKV0ucmVxKSkKKyAKKysvKgorKyAqIEdldCBhIGxvY2Fs IGNvcHkgb2YgYSByZXF1ZXN0LgorKyAqCisrICogVXNlIHRoaXMgaW4gcHJlZmVyZW5jZSB0byBS SU5HX0dFVF9SRVFVRVNUKCkgc28gYWxsIHByb2Nlc3NpbmcgaXMKKysgKiBkb25lIG9uIGEgbG9j YWwgY29weSB0aGF0IGNhbm5vdCBiZSBtb2RpZmllZCBieSB0aGUgb3RoZXIgZW5kLgorKyAqCisr ICogTm90ZSB0aGF0IGh0dHBzOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lk PTU4MTQ1IG1heSBjYXVzZSB0aGlzCisrICogdG8gYmUgaW5lZmZlY3RpdmUgd2hlcmUgX3JlcSBp cyBhIHN0cnVjdCB3aGljaCBjb25zaXN0cyBvZiBvbmx5IGJpdGZpZWxkcy4KKysgKi8KKysjZGVm aW5lIFJJTkdfQ09QWV9SRVFVRVNUKF9yLCBfaWR4LCBfcmVxKSBkbyB7CQkJCVwKKysJLyogVXNl IHZvbGF0aWxlIHRvIGZvcmNlIHRoZSBjb3B5IGludG8gX3JlcS4gKi8JCQlcCisrCSooX3JlcSkg PSAqKHZvbGF0aWxlIHR5cGVvZihfcmVxKSlSSU5HX0dFVF9SRVFVRVNUKF9yLCBfaWR4KTsJXAor K30gd2hpbGUgKDApCisrCisgI2RlZmluZSBSSU5HX0dFVF9SRVNQT05TRShfciwgX2lkeCkJCQkJ CVwKKyAgICAgKCYoKF9yKS0+c3JpbmctPnJpbmdbKChfaWR4KSAmIChSSU5HX1NJWkUoX3IpIC0g MSkpXS5yc3ApKQorIApkaWZmIC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvYnVnZml4L2FsbC94ZW4t YmxrYmFjay1vbmx5LXJlYWQtcmVxdWVzdC1vcGVyYXRpb24tZnJvbS1zaGFyZWQtLnBhdGNoIGIv ZGViaWFuL3BhdGNoZXMvYnVnZml4L2FsbC94ZW4tYmxrYmFjay1vbmx5LXJlYWQtcmVxdWVzdC1v cGVyYXRpb24tZnJvbS1zaGFyZWQtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmM3YjEyY2UKLS0tIC9kZXYvbnVsbAorKysgYi9kZWJpYW4vcGF0Y2hlcy9idWdmaXgv YWxsL3hlbi1ibGtiYWNrLW9ubHktcmVhZC1yZXF1ZXN0LW9wZXJhdGlvbi1mcm9tLXNoYXJlZC0u cGF0Y2gKQEAgLTAsMCArMSw0OCBAQAorRnJvbTogPT9VVEYtOD9xP1JvZ2VyPTIwUGF1PTIwTW9u bj1DMz1BOT89IDxyb2dlci5wYXVAY2l0cml4LmNvbT4KK0RhdGU6IFR1ZSwgMyBOb3YgMjAxNSAx NjozNDowOSArMDAwMAorU3ViamVjdDogWzQvN10geGVuLWJsa2JhY2s6IG9ubHkgcmVhZCByZXF1 ZXN0IG9wZXJhdGlvbiBmcm9tIHNoYXJlZCByaW5nIG9uY2UKK01JTUUtVmVyc2lvbjogMS4wCitD b250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXIt RW5jb2Rpbmc6IDhiaXQKK09yaWdpbjogaHR0cHM6Ly9naXQua2VybmVsLm9yZy9saW51cy8xZjEz ZDc1Y2NiODA2MjYwMDc5ZTA2NzlkNTVkOTI1M2UzNzBlYzhhCisKK0EgY29tcGlsZXIgbWF5IGxv YWQgYSBzd2l0Y2ggc3RhdGVtZW50IHZhbHVlIG11bHRpcGxlIHRpbWVzLCB3aGljaCBjb3VsZAor YmUgYmFkIHdoZW4gdGhlIHZhbHVlIGlzIGluIG1lbW9yeSBzaGFyZWQgd2l0aCB0aGUgZnJvbnRl bmQuCisKK1doZW4gY29udmVydGluZyBhIG5vbi1uYXRpdmUgcmVxdWVzdCB0byBhIG5hdGl2ZSBv bmUsIGVuc3VyZSB0aGF0CitzcmMtPm9wZXJhdGlvbiBpcyBvbmx5IGxvYWRlZCBvbmNlIGJ5IHVz aW5nIFJFQURfT05DRSgpLgorCitUaGlzIGlzIHBhcnQgb2YgWFNBMTU1LgorCitDQzogc3RhYmxl QHZnZXIua2VybmVsLm9yZworU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIu cGF1QGNpdHJpeC5jb20+CitTaWduZWQtb2ZmLWJ5OiBEYXZpZCBWcmFiZWwgPGRhdmlkLnZyYWJl bEBjaXRyaXguY29tPgorU2lnbmVkLW9mZi1ieTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25y YWQud2lsa0BvcmFjbGUuY29tPgorLS0tCisgZHJpdmVycy9ibG9jay94ZW4tYmxrYmFjay9jb21t b24uaCB8IDggKysrKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQorCistLS0gYS9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtiYWNrL2NvbW1vbi5oCisr KysgYi9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtiYWNrL2NvbW1vbi5oCitAQCAtMzkxLDggKzM5MSw4 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBibGtpZl9nZXRfeDg2XzMyX3JlcSgKKyAJCQkJCXN0cnVj dCBibGtpZl94ODZfMzJfcmVxdWVzdCAqc3JjKQorIHsKKyAJaW50IGksIG4gPSBCTEtJRl9NQVhf U0VHTUVOVFNfUEVSX1JFUVVFU1QsIGo7CistCWRzdC0+b3BlcmF0aW9uID0gc3JjLT5vcGVyYXRp b247CistCXN3aXRjaCAoc3JjLT5vcGVyYXRpb24pIHsKKysJZHN0LT5vcGVyYXRpb24gPSBSRUFE X09OQ0Uoc3JjLT5vcGVyYXRpb24pOworKwlzd2l0Y2ggKGRzdC0+b3BlcmF0aW9uKSB7CisgCWNh c2UgQkxLSUZfT1BfUkVBRDoKKyAJY2FzZSBCTEtJRl9PUF9XUklURToKKyAJY2FzZSBCTEtJRl9P UF9XUklURV9CQVJSSUVSOgorQEAgLTQzOSw4ICs0MzksOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQg YmxraWZfZ2V0X3g4Nl82NF9yZXEoCisgCQkJCQlzdHJ1Y3QgYmxraWZfeDg2XzY0X3JlcXVlc3Qg KnNyYykKKyB7CisgCWludCBpLCBuID0gQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNULCBq OworLQlkc3QtPm9wZXJhdGlvbiA9IHNyYy0+b3BlcmF0aW9uOworLQlzd2l0Y2ggKHNyYy0+b3Bl cmF0aW9uKSB7CisrCWRzdC0+b3BlcmF0aW9uID0gUkVBRF9PTkNFKHNyYy0+b3BlcmF0aW9uKTsK KysJc3dpdGNoIChkc3QtPm9wZXJhdGlvbikgeworIAljYXNlIEJMS0lGX09QX1JFQUQ6CisgCWNh c2UgQkxLSUZfT1BfV1JJVEU6CisgCWNhc2UgQkxLSUZfT1BfV1JJVEVfQkFSUklFUjoKZGlmZiAt LWdpdCBhL2RlYmlhbi9wYXRjaGVzL2J1Z2ZpeC9hbGwveGVuLWJsa2JhY2stcmVhZC1mcm9tLWlu ZGlyZWN0LWRlc2NyaXB0b3JzLW9ubHktb25jZS5wYXRjaCBiL2RlYmlhbi9wYXRjaGVzL2J1Z2Zp eC9hbGwveGVuLWJsa2JhY2stcmVhZC1mcm9tLWluZGlyZWN0LWRlc2NyaXB0b3JzLW9ubHktb25j ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTc0NzA3Ci0tLSAv ZGV2L251bGwKKysrIGIvZGViaWFuL3BhdGNoZXMvYnVnZml4L2FsbC94ZW4tYmxrYmFjay1yZWFk LWZyb20taW5kaXJlY3QtZGVzY3JpcHRvcnMtb25seS1vbmNlLnBhdGNoCkBAIC0wLDAgKzEsNjMg QEAKK0Zyb206ID0/VVRGLTg/cT9Sb2dlcj0yMFBhdT0yME1vbm49QzM9QTk/PSA8cm9nZXIucGF1 QGNpdHJpeC5jb20+CitEYXRlOiBUdWUsIDMgTm92IDIwMTUgMTY6NDA6NDMgKzAwMDAKK1N1Ympl Y3Q6IFs1LzddIHhlbi1ibGtiYWNrOiByZWFkIGZyb20gaW5kaXJlY3QgZGVzY3JpcHRvcnMgb25s eSBvbmNlCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CitPcmlnaW46IGh0dHBz Oi8vZ2l0Lmtlcm5lbC5vcmcvbGludXMvMTg3NzkxNDkxMDFjMGRkNDNkZWQ0MzY2OWFlMmE5MmQy MWI2ZjljYgorCitTaW5jZSBpbmRpcmVjdCBkZXNjcmlwdG9ycyBhcmUgaW4gbWVtb3J5IHNoYXJl ZCB3aXRoIHRoZSBmcm9udGVuZCwgdGhlCitmcm9udGVuZCBjb3VsZCBhbHRlciB0aGUgZmlyc3Rf c2VjdCBhbmQgbGFzdF9zZWN0IHZhbHVlcyBhZnRlciB0aGV5IGhhdmUKK2JlZW4gdmFsaWRhdGVk IGJ1dCBiZWZvcmUgdGhleSBhcmUgcmVjb3JkZWQgaW4gdGhlIHJlcXVlc3QuICBUaGlzIG1heQor cmVzdWx0IGluIEkvTyByZXF1ZXN0cyB0aGF0IG92ZXJmbG93IHRoZSBmb3JlaWduIHBhZ2UsIHBv c3NpYmx5CitvdmVyd3JpdGluZyBsb2NhbCBwYWdlcyB3aGVuIHRoZSBJL08gcmVxdWVzdCBpcyBl eGVjdXRlZC4KKworV2hlbiBwYXJzaW5nIGluZGlyZWN0IGRlc2NyaXB0b3JzLCBvbmx5IHJlYWQg Zmlyc3Rfc2VjdCBhbmQgbGFzdF9zZWN0CitvbmNlLgorCitUaGlzIGlzIHBhcnQgb2YgWFNBMTU1 LgorCitDQzogc3RhYmxlQHZnZXIua2VybmVsLm9yZworU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1 IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CitTaWduZWQtb2ZmLWJ5OiBEYXZpZCBWcmFi ZWwgPGRhdmlkLnZyYWJlbEBjaXRyaXguY29tPgorU2lnbmVkLW9mZi1ieTogS29ucmFkIFJ6ZXN6 dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgorW2J3aDogRm9yIDQuMywgcy9YRU5f UEFHRV9TSVpFL1BBR0VfU0laRS9dCistLS0KKyBkcml2ZXJzL2Jsb2NrL3hlbi1ibGtiYWNrL2Js a2JhY2suYyB8IDE1ICsrKysrKysrKystLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRp b25zKCspLCA1IGRlbGV0aW9ucygtKQorCistLS0gYS9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtiYWNr L2Jsa2JhY2suYworKysrIGIvZHJpdmVycy9ibG9jay94ZW4tYmxrYmFjay9ibGtiYWNrLmMKK0BA IC04NjEsNiArODYxLDggQEAgc3RhdGljIGludCB4ZW5fYmxrYmtfcGFyc2VfaW5kaXJlY3Qoc3Ry dQorIAkJZ290byB1bm1hcDsKKyAKKyAJZm9yIChuID0gMCwgaSA9IDA7IG4gPCBuc2VnOyBuKysp IHsKKysJCXVpbnQ4X3QgZmlyc3Rfc2VjdCwgbGFzdF9zZWN0OworKworIAkJaWYgKChuICUgU0VH U19QRVJfSU5ESVJFQ1RfRlJBTUUpID09IDApIHsKKyAJCQkvKiBNYXAgaW5kaXJlY3Qgc2VnbWVu dHMgKi8KKyAJCQlpZiAoc2VnbWVudHMpCitAQCAtODY4LDE1ICs4NzAsMTggQEAgc3RhdGljIGlu dCB4ZW5fYmxrYmtfcGFyc2VfaW5kaXJlY3Qoc3RydQorIAkJCXNlZ21lbnRzID0ga21hcF9hdG9t aWMocGFnZXNbbi9TRUdTX1BFUl9JTkRJUkVDVF9GUkFNRV0tPnBhZ2UpOworIAkJfQorIAkJaSA9 IG4gJSBTRUdTX1BFUl9JTkRJUkVDVF9GUkFNRTsKKysKKyAJCXBlbmRpbmdfcmVxLT5zZWdtZW50 c1tuXS0+Z3JlZiA9IHNlZ21lbnRzW2ldLmdyZWY7CistCQlzZWdbbl0ubnNlYyA9IHNlZ21lbnRz W2ldLmxhc3Rfc2VjdCAtCistCQkJc2VnbWVudHNbaV0uZmlyc3Rfc2VjdCArIDE7CistCQlzZWdb bl0ub2Zmc2V0ID0gKHNlZ21lbnRzW2ldLmZpcnN0X3NlY3QgPDwgOSk7CistCQlpZiAoKHNlZ21l bnRzW2ldLmxhc3Rfc2VjdCA+PSAoUEFHRV9TSVpFID4+IDkpKSB8fAorLQkJICAgIChzZWdtZW50 c1tpXS5sYXN0X3NlY3QgPCBzZWdtZW50c1tpXS5maXJzdF9zZWN0KSkgeworKworKwkJZmlyc3Rf c2VjdCA9IFJFQURfT05DRShzZWdtZW50c1tpXS5maXJzdF9zZWN0KTsKKysJCWxhc3Rfc2VjdCA9 IFJFQURfT05DRShzZWdtZW50c1tpXS5sYXN0X3NlY3QpOworKwkJaWYgKGxhc3Rfc2VjdCA+PSAo UEFHRV9TSVpFID4+IDkpIHx8IGxhc3Rfc2VjdCA8IGZpcnN0X3NlY3QpIHsKKyAJCQlyYyA9IC1F SU5WQUw7CisgCQkJZ290byB1bm1hcDsKKyAJCX0KKysKKysJCXNlZ1tuXS5uc2VjID0gbGFzdF9z ZWN0IC0gZmlyc3Rfc2VjdCArIDE7CisrCQlzZWdbbl0ub2Zmc2V0ID0gZmlyc3Rfc2VjdCA8PCA5 OworIAkJcHJlcS0+bnJfc2VjdHMgKz0gc2VnW25dLm5zZWM7CisgCX0KKyAKZGlmZiAtLWdpdCBh L2RlYmlhbi9wYXRjaGVzL2J1Z2ZpeC9hbGwveGVuLW5ldGJhY2stZG9uLXQtdXNlLWxhc3QtcmVx dWVzdC10by1kZXRlcm1pbmUtbWluaS5wYXRjaCBiL2RlYmlhbi9wYXRjaGVzL2J1Z2ZpeC9hbGwv eGVuLW5ldGJhY2stZG9uLXQtdXNlLWxhc3QtcmVxdWVzdC10by1kZXRlcm1pbmUtbWluaS5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzIyMzk5Ci0tLSAvZGV2L251 bGwKKysrIGIvZGViaWFuL3BhdGNoZXMvYnVnZml4L2FsbC94ZW4tbmV0YmFjay1kb24tdC11c2Ut bGFzdC1yZXF1ZXN0LXRvLWRldGVybWluZS1taW5pLnBhdGNoCkBAIC0wLDAgKzEsMzUgQEAKK0Zy b206IERhdmlkIFZyYWJlbCA8ZGF2aWQudnJhYmVsQGNpdHJpeC5jb20+CitEYXRlOiBGcmksIDMw IE9jdCAyMDE1IDE1OjE2OjAxICswMDAwCitTdWJqZWN0OiBbMi83XSB4ZW4tbmV0YmFjazogZG9u J3QgdXNlIGxhc3QgcmVxdWVzdCB0byBkZXRlcm1pbmUgbWluaW11bSBUeAorIGNyZWRpdAorT3Jp Z2luOiBodHRwczovL2dpdC5rZXJuZWwub3JnL2xpbnVzLzBmNTg5OTY3YTczZjFmMzBhYjRhYzRk ZDljZTBiYjM5OWI0ZDYzNTcKKworVGhlIGxhc3QgZnJvbSBndWVzdCB0cmFuc21pdHRlZCByZXF1 ZXN0IGdpdmVzIG5vIGluZGljYXRpb24gYWJvdXQgdGhlCittaW5pbXVtIGFtb3VudCBvZiBjcmVk aXQgdGhhdCB0aGUgZ3Vlc3QgbWlnaHQgbmVlZCB0byBzZW5kIGEgcGFja2V0CitzaW5jZSB0aGUg bGFzdCBwYWNrZXQgbWlnaHQgaGF2ZSBiZWVuIGEgc21hbGwgb25lLgorCitJbnN0ZWFkIGFsbG93 IGZvciB0aGUgd29yc3QgY2FzZSAxMjggS2lCIHBhY2tldC4KKworVGhpcyBpcyBwYXJ0IG9mIFhT QTE1NS4KKworQ0M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKK1Jldmlld2VkLWJ5OiBXZWkgTGl1 IDx3ZWkubGl1MkBjaXRyaXguY29tPgorU2lnbmVkLW9mZi1ieTogRGF2aWQgVnJhYmVsIDxkYXZp ZC52cmFiZWxAY2l0cml4LmNvbT4KK1NpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2ls ayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KKy0tLQorIGRyaXZlcnMvbmV0L3hlbi1uZXRiYWNr L25ldGJhY2suYyB8IDQgKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMyBk ZWxldGlvbnMoLSkKKworLS0tIGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svbmV0YmFjay5jCisr KysgYi9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay9uZXRiYWNrLmMKK0BAIC04MDksOSArODA5LDcg QEAgc3RhdGljIHZvaWQgdHhfYWRkX2NyZWRpdChzdHJ1Y3QgeGVudmlmXworIAkgKiBBbGxvdyBh IGJ1cnN0IGJpZyBlbm91Z2ggdG8gdHJhbnNtaXQgYSBqdW1ibyBwYWNrZXQgb2YgdXAgdG8gMTI4 a0IuCisgCSAqIE90aGVyd2lzZSB0aGUgaW50ZXJmYWNlIGNhbiBzZWl6ZSB1cCBkdWUgdG8gaW5z dWZmaWNpZW50IGNyZWRpdC4KKyAJICovCistCW1heF9idXJzdCA9IFJJTkdfR0VUX1JFUVVFU1Qo JnF1ZXVlLT50eCwgcXVldWUtPnR4LnJlcV9jb25zKS0+c2l6ZTsKKy0JbWF4X2J1cnN0ID0gbWlu KG1heF9idXJzdCwgMTMxMDcyVUwpOworLQltYXhfYnVyc3QgPSBtYXgobWF4X2J1cnN0LCBxdWV1 ZS0+Y3JlZGl0X2J5dGVzKTsKKysJbWF4X2J1cnN0ID0gbWF4KDEzMTA3MlVMLCBxdWV1ZS0+Y3Jl ZGl0X2J5dGVzKTsKKyAKKyAJLyogVGFrZSBjYXJlIHRoYXQgYWRkaW5nIGEgbmV3IGNodW5rIG9m IGNyZWRpdCBkb2Vzbid0IHdyYXAgdG8gemVyby4gKi8KKyAJbWF4X2NyZWRpdCA9IHF1ZXVlLT5y ZW1haW5pbmdfY3JlZGl0ICsgcXVldWUtPmNyZWRpdF9ieXRlczsKZGlmZiAtLWdpdCBhL2RlYmlh bi9wYXRjaGVzL2J1Z2ZpeC9hbGwveGVuLW5ldGJhY2stdXNlLXJpbmdfY29weV9yZXF1ZXN0LXRo cm91Z2hvdXQucGF0Y2ggYi9kZWJpYW4vcGF0Y2hlcy9idWdmaXgvYWxsL3hlbi1uZXRiYWNrLXVz ZS1yaW5nX2NvcHlfcmVxdWVzdC10aHJvdWdob3V0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmQ0YmI3ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9kZWJpYW4vcGF0Y2hl cy9idWdmaXgvYWxsL3hlbi1uZXRiYWNrLXVzZS1yaW5nX2NvcHlfcmVxdWVzdC10aHJvdWdob3V0 LnBhdGNoCkBAIC0wLDAgKzEsMTI2IEBACitGcm9tOiBEYXZpZCBWcmFiZWwgPGRhdmlkLnZyYWJl bEBjaXRyaXguY29tPgorRGF0ZTogRnJpLCAzMCBPY3QgMjAxNSAxNToxNzowNiArMDAwMAorU3Vi amVjdDogWzMvN10geGVuLW5ldGJhY2s6IHVzZSBSSU5HX0NPUFlfUkVRVUVTVCgpIHRocm91Z2hv dXQKK09yaWdpbjogaHR0cHM6Ly9naXQua2VybmVsLm9yZy9saW51cy82OGEzM2JmZDg0MDNlNGUy Mjg0NzE2NWQxNDk4MjNhMmUwZTY3YzljCisKK0luc3RlYWQgb2Ygb3Blbi1jb2RpbmcgbWVtY3B5 KClzIGFuZCBkaXJlY3RseSBhY2Nlc3NpbmcgVHggYW5kIFJ4CityZXF1ZXN0cywgdXNlIHRoZSBu ZXcgUklOR19DT1BZX1JFUVVFU1QoKSB0aGF0IGVuc3VyZXMgdGhlIGxvY2FsIGNvcHkKK2lzIGNv cnJlY3QuCisKK1RoaXMgaXMgbW9yZSB0aGFuIGlzIHN0cmljdGx5IG5lY2Vzc2FyeSBmb3IgZ3Vl c3QgUnggcmVxdWVzdHMgc2luY2UKK29ubHkgdGhlIGlkIGFuZCBncmVmIGZpZWxkcyBhcmUgdXNl ZCBhbmQgaXQgaXMgaGFybWxlc3MgaWYgdGhlCitmcm9udGVuZCBtb2RpZmllcyB0aGVzZS4KKwor VGhpcyBpcyBwYXJ0IG9mIFhTQTE1NS4KKworQ0M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKK1Jl dmlld2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgorU2lnbmVkLW9mZi1ieTog RGF2aWQgVnJhYmVsIDxkYXZpZC52cmFiZWxAY2l0cml4LmNvbT4KK1NpZ25lZC1vZmYtYnk6IEtv bnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KKy0tLQorIGRyaXZl cnMvbmV0L3hlbi1uZXRiYWNrL25ldGJhY2suYyB8IDMwICsrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMo LSkKKworLS0tIGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svbmV0YmFjay5jCisrKysgYi9kcml2 ZXJzL25ldC94ZW4tbmV0YmFjay9uZXRiYWNrLmMKK0BAIC0yODgsMTggKzI4OCwxOCBAQCBzdGF0 aWMgc3RydWN0IHhlbnZpZl9yeF9tZXRhICpnZXRfbmV4dF9yCisgCQkJCQkJIHN0cnVjdCBuZXRy eF9wZW5kaW5nX29wZXJhdGlvbnMgKm5wbykKKyB7CisgCXN0cnVjdCB4ZW52aWZfcnhfbWV0YSAq bWV0YTsKKy0Jc3RydWN0IHhlbl9uZXRpZl9yeF9yZXF1ZXN0ICpyZXE7CisrCXN0cnVjdCB4ZW5f bmV0aWZfcnhfcmVxdWVzdCByZXE7CisgCistCXJlcSA9IFJJTkdfR0VUX1JFUVVFU1QoJnF1ZXVl LT5yeCwgcXVldWUtPnJ4LnJlcV9jb25zKyspOworKwlSSU5HX0NPUFlfUkVRVUVTVCgmcXVldWUt PnJ4LCBxdWV1ZS0+cngucmVxX2NvbnMrKywgJnJlcSk7CisgCisgCW1ldGEgPSBucG8tPm1ldGEg KyBucG8tPm1ldGFfcHJvZCsrOworIAltZXRhLT5nc29fdHlwZSA9IFhFTl9ORVRJRl9HU09fVFlQ RV9OT05FOworIAltZXRhLT5nc29fc2l6ZSA9IDA7CisgCW1ldGEtPnNpemUgPSAwOworLQltZXRh LT5pZCA9IHJlcS0+aWQ7CisrCW1ldGEtPmlkID0gcmVxLmlkOworIAorIAlucG8tPmNvcHlfb2Zm ID0gMDsKKy0JbnBvLT5jb3B5X2dyZWYgPSByZXEtPmdyZWY7CisrCW5wby0+Y29weV9ncmVmID0g cmVxLmdyZWY7CisgCisgCXJldHVybiBtZXRhOworIH0KK0BAIC00NTAsNyArNDUwLDcgQEAgc3Rh dGljIGludCB4ZW52aWZfZ29wX3NrYihzdHJ1Y3Qgc2tfYnVmZgorIAlzdHJ1Y3QgeGVudmlmICp2 aWYgPSBuZXRkZXZfcHJpdihza2ItPmRldik7CisgCWludCBucl9mcmFncyA9IHNrYl9zaGluZm8o c2tiKS0+bnJfZnJhZ3M7CisgCWludCBpOworLQlzdHJ1Y3QgeGVuX25ldGlmX3J4X3JlcXVlc3Qg KnJlcTsKKysJc3RydWN0IHhlbl9uZXRpZl9yeF9yZXF1ZXN0IHJlcTsKKyAJc3RydWN0IHhlbnZp Zl9yeF9tZXRhICptZXRhOworIAl1bnNpZ25lZCBjaGFyICpkYXRhOworIAlpbnQgaGVhZCA9IDE7 CitAQCAtNDcxLDE1ICs0NzEsMTUgQEAgc3RhdGljIGludCB4ZW52aWZfZ29wX3NrYihzdHJ1Y3Qg c2tfYnVmZgorIAorIAkvKiBTZXQgdXAgYSBHU08gcHJlZml4IGRlc2NyaXB0b3IsIGlmIG5lY2Vz c2FyeSAqLworIAlpZiAoKDEgPDwgZ3NvX3R5cGUpICYgdmlmLT5nc29fcHJlZml4X21hc2spIHsK Ky0JCXJlcSA9IFJJTkdfR0VUX1JFUVVFU1QoJnF1ZXVlLT5yeCwgcXVldWUtPnJ4LnJlcV9jb25z KyspOworKwkJUklOR19DT1BZX1JFUVVFU1QoJnF1ZXVlLT5yeCwgcXVldWUtPnJ4LnJlcV9jb25z KyssICZyZXEpOworIAkJbWV0YSA9IG5wby0+bWV0YSArIG5wby0+bWV0YV9wcm9kKys7CisgCQlt ZXRhLT5nc29fdHlwZSA9IGdzb190eXBlOworIAkJbWV0YS0+Z3NvX3NpemUgPSBza2Jfc2hpbmZv KHNrYiktPmdzb19zaXplOworIAkJbWV0YS0+c2l6ZSA9IDA7CistCQltZXRhLT5pZCA9IHJlcS0+ aWQ7CisrCQltZXRhLT5pZCA9IHJlcS5pZDsKKyAJfQorIAorLQlyZXEgPSBSSU5HX0dFVF9SRVFV RVNUKCZxdWV1ZS0+cngsIHF1ZXVlLT5yeC5yZXFfY29ucysrKTsKKysJUklOR19DT1BZX1JFUVVF U1QoJnF1ZXVlLT5yeCwgcXVldWUtPnJ4LnJlcV9jb25zKyssICZyZXEpOworIAltZXRhID0gbnBv LT5tZXRhICsgbnBvLT5tZXRhX3Byb2QrKzsKKyAKKyAJaWYgKCgxIDw8IGdzb190eXBlKSAmIHZp Zi0+Z3NvX21hc2spIHsKK0BAIC00OTEsOSArNDkxLDkgQEAgc3RhdGljIGludCB4ZW52aWZfZ29w X3NrYihzdHJ1Y3Qgc2tfYnVmZgorIAl9CisgCisgCW1ldGEtPnNpemUgPSAwOworLQltZXRhLT5p ZCA9IHJlcS0+aWQ7CisrCW1ldGEtPmlkID0gcmVxLmlkOworIAlucG8tPmNvcHlfb2ZmID0gMDsK Ky0JbnBvLT5jb3B5X2dyZWYgPSByZXEtPmdyZWY7CisrCW5wby0+Y29weV9ncmVmID0gcmVxLmdy ZWY7CisgCisgCWRhdGEgPSBza2ItPmRhdGE7CisgCXdoaWxlIChkYXRhIDwgc2tiX3RhaWxfcG9p bnRlcihza2IpKSB7CitAQCAtODM4LDcgKzgzOCw3IEBAIHN0YXRpYyB2b2lkIHhlbnZpZl90eF9l cnIoc3RydWN0IHhlbnZpZl8KKyAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnF1ZXVlLT5yZXNw b25zZV9sb2NrLCBmbGFncyk7CisgCQlpZiAoY29ucyA9PSBlbmQpCisgCQkJYnJlYWs7CistCQl0 eHAgPSBSSU5HX0dFVF9SRVFVRVNUKCZxdWV1ZS0+dHgsIGNvbnMrKyk7CisrCQlSSU5HX0NPUFlf UkVRVUVTVCgmcXVldWUtPnR4LCBjb25zKyssIHR4cCk7CisgCX0gd2hpbGUgKDEpOworIAlxdWV1 ZS0+dHgucmVxX2NvbnMgPSBjb25zOworIH0KK0BAIC05MDUsOCArOTA1LDcgQEAgc3RhdGljIGlu dCB4ZW52aWZfY291bnRfcmVxdWVzdHMoc3RydWN0CisgCQlpZiAoZHJvcF9lcnIpCisgCQkJdHhw ID0gJmRyb3BwZWRfdHg7CisgCistCQltZW1jcHkodHhwLCBSSU5HX0dFVF9SRVFVRVNUKCZxdWV1 ZS0+dHgsIGNvbnMgKyBzbG90cyksCistCQkgICAgICAgc2l6ZW9mKCp0eHApKTsKKysJCVJJTkdf Q09QWV9SRVFVRVNUKCZxdWV1ZS0+dHgsIGNvbnMgKyBzbG90cywgdHhwKTsKKyAKKyAJCS8qIElm IHRoZSBndWVzdCBzdWJtaXR0ZWQgYSBmcmFtZSA+PSA2NCBLaUIgdGhlbgorIAkJICogZmlyc3Qt PnNpemUgb3ZlcmZsb3dlZCBhbmQgZm9sbG93aW5nIHNsb3RzIHdpbGwKK0BAIC0xMjU4LDggKzEy NTcsNyBAQCBzdGF0aWMgaW50IHhlbnZpZl9nZXRfZXh0cmFzKHN0cnVjdCB4ZW52CisgCQkJcmV0 dXJuIC1FQkFEUjsKKyAJCX0KKyAKKy0JCW1lbWNweSgmZXh0cmEsIFJJTkdfR0VUX1JFUVVFU1Qo JnF1ZXVlLT50eCwgY29ucyksCistCQkgICAgICAgc2l6ZW9mKGV4dHJhKSk7CisrCQlSSU5HX0NP UFlfUkVRVUVTVCgmcXVldWUtPnR4LCBjb25zLCAmZXh0cmEpOworIAkJaWYgKHVubGlrZWx5KCFl eHRyYS50eXBlIHx8CisgCQkJICAgICBleHRyYS50eXBlID49IFhFTl9ORVRJRl9FWFRSQV9UWVBF X01BWCkpIHsKKyAJCQlxdWV1ZS0+dHgucmVxX2NvbnMgPSArK2NvbnM7CitAQCAtMTM5NSw3ICsx MzkzLDcgQEAgc3RhdGljIHZvaWQgeGVudmlmX3R4X2J1aWxkX2dvcHMoc3RydWN0CisgCisgCQlp ZHggPSBxdWV1ZS0+dHgucmVxX2NvbnM7CisgCQlybWIoKTsgLyogRW5zdXJlIHRoYXQgd2Ugc2Vl IHRoZSByZXF1ZXN0IGJlZm9yZSB3ZSBjb3B5IGl0LiAqLworLQkJbWVtY3B5KCZ0eHJlcSwgUklO R19HRVRfUkVRVUVTVCgmcXVldWUtPnR4LCBpZHgpLCBzaXplb2YodHhyZXEpKTsKKysJCVJJTkdf Q09QWV9SRVFVRVNUKCZxdWV1ZS0+dHgsIGlkeCwgJnR4cmVxKTsKKyAKKyAJCS8qIENyZWRpdC1i YXNlZCBzY2hlZHVsaW5nLiAqLworIAkJaWYgKHR4cmVxLnNpemUgPiBxdWV1ZS0+cmVtYWluaW5n X2NyZWRpdCAmJgpkaWZmIC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvYnVnZml4L2FsbC94ZW4tcGNp YmFjay1kby1ub3QtaW5zdGFsbC1hbi1pcnEtaGFuZGxlci1mb3ItbXNpLWluLnBhdGNoIGIvZGVi aWFuL3BhdGNoZXMvYnVnZml4L2FsbC94ZW4tcGNpYmFjay1kby1ub3QtaW5zdGFsbC1hbi1pcnEt aGFuZGxlci1mb3ItbXNpLWluLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmRlOTNjZmEKLS0tIC9kZXYvbnVsbAorKysgYi9kZWJpYW4vcGF0Y2hlcy9idWdmaXgvYWxs L3hlbi1wY2liYWNrLWRvLW5vdC1pbnN0YWxsLWFuLWlycS1oYW5kbGVyLWZvci1tc2ktaW4ucGF0 Y2gKQEAgLTAsMCArMSw3NyBAQAorRnJvbTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQu d2lsa0BvcmFjbGUuY29tPgorRGF0ZTogTW9uLCAyIE5vdiAyMDE1IDE3OjI0OjA4IC0wNTAwCitT dWJqZWN0OiBbMy81XSB4ZW4vcGNpYmFjazogRG8gbm90IGluc3RhbGwgYW4gSVJRIGhhbmRsZXIg Zm9yIE1TSSBpbnRlcnJ1cHRzLgorT3JpZ2luOiBodHRwczovL2dpdC5rZXJuZWwub3JnL2xpbnVz L2EzOTZmM2EyMTBjM2E2MWU5NGQ2Yjg3ZWMwNWE3NWQwYmUyYTYwZDAKKworT3RoZXJ3aXNlIGFu IGd1ZXN0IGNhbiBzdWJ2ZXJ0IHRoZSBnZW5lcmljIE1TSSBjb2RlIHRvIHRyaWdnZXIKK2FuIEJV R19PTiBjb25kaXRpb24gZHVyaW5nIE1TSSBpbnRlcnJ1cHQgZnJlZWluZzoKKworIGZvciAoaSA9 IDA7IGkgPCBlbnRyeS0+bnZlY191c2VkOyBpKyspCisgICAgICAgIEJVR19PTihpcnFfaGFzX2Fj dGlvbihlbnRyeS0+aXJxICsgaSkpOworCitYZW4gUENJIGJhY2tlZCBpbnN0YWxscyBhbiBJUlEg aGFuZGxlciAocmVxdWVzdF9pcnEpIGZvcgordGhlIGRldi0+aXJxIHdoZW5ldmVyIHRoZSBndWVz dCB3cml0ZXMgUENJX0NPTU1BTkRfTUVNT1JZCisob3IgUENJX0NPTU1BTkRfSU8pIHRvIHRoZSBQ Q0lfQ09NTUFORCByZWdpc3Rlci4gVGhpcyBpcworZG9uZSBpbiBjYXNlIHRoZSBkZXZpY2UgaGFz IGxlZ2FjeSBpbnRlcnJ1cHRzIHRoZSBHU0kgbGluZQoraXMgc2hhcmVkIGJ5IHRoZSBiYWNrZW5k IGRldmljZXMuCisKK1RvIHN1YnZlcnQgdGhlIGJhY2tlbmQgdGhlIGd1ZXN0IG5lZWRzIHRvIG1h a2UgdGhlIGJhY2tlbmQKK3RvIGNoYW5nZSB0aGUgZGV2LT5pcnEgZnJvbSB0aGUgR1NJIHRvIHRo ZSBNU0kgaW50ZXJydXB0IGxpbmUsCittYWtlIHRoZSBiYWNrZW5kIGFsbG9jYXRlIGFuIGludGVy cnVwdCBoYW5kbGVyLCBhbmQgdGhlbiBjb21tYW5kCit0aGUgYmFja2VuZCB0byBmcmVlIHRoZSBN U0kgaW50ZXJydXB0IGFuZCBoaXQgdGhlIEJVR19PTi4KKworU2luY2UgdGhlIGJhY2tlbmQgb25s eSBjYWxscyAncmVxdWVzdF9pcnEnIHdoZW4gdGhlIGd1ZXN0Cit3cml0ZXMgdG8gdGhlIFBDSV9D T01NQU5EIHJlZ2lzdGVyIHRoZSBndWVzdCBuZWVkcyB0byBjYWxsCitYRU5fUENJX09QX2VuYWJs ZV9tc2kgYmVmb3JlIGFueSBvdGhlciBvcGVyYXRpb24uIFRoaXMgd2lsbAorY2F1c2UgdGhlIGdl bmVyaWMgTVNJIGNvZGUgdG8gc2V0dXAgYW4gTVNJIGVudHJ5IGFuZAorcG9wdWxhdGUgZGV2LT5p cnEgd2l0aCB0aGUgbmV3IFBJUlEgdmFsdWUuCisKK1RoZW4gdGhlIGd1ZXN0IGNhbiB3cml0ZSB0 byBQQ0lfQ09NTUFORCBQQ0lfQ09NTUFORF9NRU1PUlkKK2FuZCBjYXVzZSB0aGUgYmFja2VuZCB0 byBzZXR1cCBhbiBJUlEgaGFuZGxlciBmb3IgZGV2LT5pcnEKKyh3aGljaCBpbnN0ZWFkIG9mIHRo ZSBHU0kgdmFsdWUgaGFzIHRoZSBNU0kgcGlycSkuIFNlZQorJ3hlbl9wY2lia19jb250cm9sX2lz cicuCisKK1RoZW4gdGhlIGd1ZXN0IGRpc2FibGVzIHRoZSBNU0k6IFhFTl9QQ0lfT1BfZGlzYWJs ZV9tc2kKK3doaWNoIGVuZHMgdXAgdHJpZ2dlcmluZyB0aGUgQlVHX09OIGNvbmRpdGlvbiBpbiAn ZnJlZV9tc2lfaXJxcycKK2FzIHRoZXJlIGlzIGFuIElSUSBoYW5kbGVyIGZvciB0aGUgZW50cnkt PmlycSAoZGV2LT5pcnEpLgorCitOb3RlIHRoYXQgdGhpcyBjYW5ub3QgYmUgZG9uZSB1c2luZyBN U0ktWCBhcyB0aGUgZ2VuZXJpYworY29kZSBkb2VzIG5vdCBvdmVyLXdyaXRlIGRldi0+aXJxIHdp dGggdGhlIE1TSS1YIFBJUlEgdmFsdWVzLgorCitUaGUgcGF0Y2ggaW5oaWJpdHMgc2V0dGluZyB1 cCB0aGUgSVJRIGhhbmRsZXIgaWYgTVNJIG9yCitNU0ktWCAoZm9yIHN5bW1ldHJ5IHJlYXNvbnMp IGNvZGUgaGFkIGJlZW4gY2FsbGVkIHN1Y2Nlc3NmdWxseS4KKworUC5TLgorWGVuIFBDSUJhY2sg d2hlbiBpdCBzZXRzIHVwIHRoZSBkZXZpY2UgZm9yIHRoZSBndWVzdCBjb25zdW1wdGlvbgorZW5k cyB1cCB3cml0dGluZyAwIHRvIHRoZSBQQ0lfQ09NTUFORCAoc2VlIHhlbl9wY2lia19yZXNldF9k ZXZpY2UpLgorWFNBLTEyMCBhZGRlbmR1bSBwYXRjaCByZW1vdmVkIHRoYXQgLSBob3dldmVyIHdo ZW4gdXBzdHJlYW1pbmcgc2FpZAorYWRkZW5kdW0gd2UgZm91bmQgdGhhdCBpdCBjYXVzZWQgaXNz dWVzIHdpdGggcWVtdSB1cHN0cmVhbS4gVGhhdAoraGFzIG5vdyBiZWVuIGZpeGVkIGluIHFlbXUg dXBzdHJlYW0uCisKK1RoaXMgaXMgcGFydCBvZiBYU0EtMTU3CisKK0NDOiBzdGFibGVAdmdlci5r ZXJuZWwub3JnCitSZXZpZXdlZC1ieTogRGF2aWQgVnJhYmVsIDxkYXZpZC52cmFiZWxAY2l0cml4 LmNvbT4KK1NpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtA b3JhY2xlLmNvbT4KKy0tLQorIGRyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaWJhY2tfb3BzLmMg fCA3ICsrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1n aXQgYS9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2liYWNrX29wcy5jIGIvZHJpdmVycy94ZW4v eGVuLXBjaWJhY2svcGNpYmFja19vcHMuYworaW5kZXggMDI5ZjMzZC4uZDA2OTZjZSAxMDA2NDQK Ky0tLSBhL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaWJhY2tfb3BzLmMKKysrKyBiL2RyaXZl cnMveGVuL3hlbi1wY2liYWNrL3BjaWJhY2tfb3BzLmMKK0BAIC03MCw2ICs3MCwxMyBAQCBzdGF0 aWMgdm9pZCB4ZW5fcGNpYmtfY29udHJvbF9pc3Ioc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IHJl c2V0KQorIAkJZW5hYmxlID8gImVuYWJsZSIgOiAiZGlzYWJsZSIpOworIAorIAlpZiAoZW5hYmxl KSB7CisrCQkvKgorKwkJICogVGhlIE1TSSBvciBNU0ktWCBzaG91bGQgbm90IGhhdmUgYW4gSVJR IGhhbmRsZXIuIE90aGVyd2lzZQorKwkJICogaWYgdGhlIGd1ZXN0IHRlcm1pbmF0ZXMgd2UgQlVH X09OIGluIGZyZWVfbXNpX2lycXMuCisrCQkgKi8KKysJCWlmIChkZXYtPm1zaV9lbmFibGVkIHx8 IGRldi0+bXNpeF9lbmFibGVkKQorKwkJCWdvdG8gb3V0OworKworIAkJcmMgPSByZXF1ZXN0X2ly cShkZXZfZGF0YS0+aXJxLAorIAkJCQl4ZW5fcGNpYmtfZ3Vlc3RfaW50ZXJydXB0LCBJUlFGX1NI QVJFRCwKKyAJCQkJZGV2X2RhdGEtPmlycV9uYW1lLCBkZXYpOwpkaWZmIC0tZ2l0IGEvZGViaWFu L3BhdGNoZXMvYnVnZml4L2FsbC94ZW4tcGNpYmFjay1kb24tdC1hbGxvdy1tc2kteC1vcHMtaWYt cGNpX2NvbW1hbmRfbWVtLnBhdGNoIGIvZGViaWFuL3BhdGNoZXMvYnVnZml4L2FsbC94ZW4tcGNp YmFjay1kb24tdC1hbGxvdy1tc2kteC1vcHMtaWYtcGNpX2NvbW1hbmRfbWVtLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2NzkyYjkKLS0tIC9kZXYvbnVsbAorKysg Yi9kZWJpYW4vcGF0Y2hlcy9idWdmaXgvYWxsL3hlbi1wY2liYWNrLWRvbi10LWFsbG93LW1zaS14 LW9wcy1pZi1wY2lfY29tbWFuZF9tZW0ucGF0Y2gKQEAgLTAsMCArMSw2MSBAQAorRnJvbTogS29u cmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgorRGF0ZTogTW9uLCAy IE5vdiAyMDE1IDE4OjEzOjI3IC0wNTAwCitTdWJqZWN0OiBbNS81XSB4ZW4vcGNpYmFjazogRG9u J3QgYWxsb3cgTVNJLVggb3BzIGlmIFBDSV9DT01NQU5EX01FTU9SWSBpcyBub3QKKyBzZXQuCitP cmlnaW46IGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvbGludXMvNDA4ZmIwZTVhYTdmZGEwMDU5ZGIy ODJmZjU4YzNiMmE0Mjc4YmFhMAorCitjb21taXQgZjU5ODI4MmY1MSAoIlBDSTogRml4IHRoZSBO SVUgTVNJLVggcHJvYmxlbSBpbiBhIGJldHRlciB3YXkiKQordGVhY2hlcyB1cyB0aGF0IGRlYWxp bmcgd2l0aCBNU0ktWCBjYW4gYmUgdHJvdWJsZXNvbWUuCisKK0Z1cnRoZXIgY2hlY2tzIGluIHRo ZSBNU0ktWCBhcmNoaXRlY3R1cmUgc2hvd3MgdGhhdCBpZiB0aGUKK1BDSV9DT01NQU5EX01FTU9S WSBiaXQgaXMgdHVybmVkIG9mIGluIHRoZSBQQ0lfQ09NTUFORCB3ZQorbWF5IG5vdCBiZSBhYmxl IHRvIGFjY2VzcyB0aGUgQkFSIChzaW5jZSB0aGV5IGFyZSBtZW1vcnkgcmVnaW9ucykuCisKK1Np bmNlIHRoZSBNU0ktWCB0YWJsZXMgYXJlIGxvY2F0ZWQgaW4gdGhlcmUuLiB0aGF0IGNhbiBsZWFk Cit0byB1cyBjYXVzaW5nIFBDSWUgZXJyb3JzLiBJbmhpYml0IHVzIHBlcmZvcm1pbmcgYW55Citv cGVyYXRpb24gb24gdGhlIE1TSS1YIHVubGVzcyB0aGUgTUVNT1JZIGJpdCBpcyBzZXQuCisKK05v dGUgdGhhdCBYZW4gaHlwZXJ2aXNvciB3aXRoOgorIng4Ni9NU0ktWDogYWNjZXNzIE1TSS1YIHRh YmxlIG9ubHkgYWZ0ZXIgaGF2aW5nIGVuYWJsZWQgTVNJLVgiCit3aWxsIHJldHVybjoKK3hlbl9w Y2liYWNrOiAwMDAwOjBhOjAwLjE6IGVycm9yIC02IGVuYWJsaW5nIE1TSS1YIGZvciBndWVzdCAz IQorCitXaGVuIHRoZSBnZW5lcmljIE1TSSBjb2RlIHRyaWVzIHRvIHNldHVwIHRoZSBQSVJRIHdp dGhvdXQKK01FTU9SWSBiaXQgc2V0LiBXaGljaCBtZWFucyB3aXRoIGxhdGVyIHZlcnNpb25zIG9m IFhlbgorKDQuNikgdGhpcyBwYXRjaCBpcyBub3QgbmVjY2Vzc2FyeS4KKworVGhpcyBpcyBwYXJ0 IG9mIFhTQS0xNTcKKworQ0M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKK1Jldmlld2VkLWJ5OiBK YW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitTaWduZWQtb2ZmLWJ5OiBLb25yYWQgUnpl c3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CistLS0KKyBkcml2ZXJzL3hlbi94 ZW4tcGNpYmFjay9wY2liYWNrX29wcy5jIHwgOCArKysrKysrLQorIDEgZmlsZSBjaGFuZ2VkLCA3 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVu L3hlbi1wY2liYWNrL3BjaWJhY2tfb3BzLmMgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2li YWNrX29wcy5jCitpbmRleCA0ZWU1ZmMwLi43M2RhZmRjIDEwMDY0NAorLS0tIGEvZHJpdmVycy94 ZW4veGVuLXBjaWJhY2svcGNpYmFja19vcHMuYworKysrIGIvZHJpdmVycy94ZW4veGVuLXBjaWJh Y2svcGNpYmFja19vcHMuYworQEAgLTIxMiw2ICsyMTIsNyBAQCBpbnQgeGVuX3BjaWJrX2VuYWJs ZV9tc2l4KHN0cnVjdCB4ZW5fcGNpYmtfZGV2aWNlICpwZGV2LAorIAlzdHJ1Y3QgeGVuX3BjaWJr X2Rldl9kYXRhICpkZXZfZGF0YTsKKyAJaW50IGksIHJlc3VsdDsKKyAJc3RydWN0IG1zaXhfZW50 cnkgKmVudHJpZXM7CisrCXUxNiBjbWQ7CisgCisgCWlmICh1bmxpa2VseSh2ZXJib3NlX3JlcXVl c3QpKQorIAkJcHJpbnRrKEtFUk5fREVCVUcgRFJWX05BTUUgIjogJXM6IGVuYWJsZSBNU0ktWFxu IiwKK0BAIC0yMjMsNyArMjI0LDEyIEBAIGludCB4ZW5fcGNpYmtfZW5hYmxlX21zaXgoc3RydWN0 IHhlbl9wY2lia19kZXZpY2UgKnBkZXYsCisgCWlmIChkZXYtPm1zaXhfZW5hYmxlZCkKKyAJCXJl dHVybiAtRUFMUkVBRFk7CisgCistCWlmIChkZXYtPm1zaV9lbmFibGVkKQorKwkvKgorKwkgKiBQ Q0lfQ09NTUFORF9NRU1PUlkgbXVzdCBiZSBlbmFibGVkLCBvdGhlcndpc2Ugd2UgbWF5IG5vdCBi ZSBhYmxlCisrCSAqIHRvIGFjY2VzcyB0aGUgQkFScyB3aGVyZSB0aGUgTVNJLVggZW50cmllcyBy ZXNpZGUuCisrCSAqLworKwlwY2lfcmVhZF9jb25maWdfd29yZChkZXYsIFBDSV9DT01NQU5ELCAm Y21kKTsKKysJaWYgKGRldi0+bXNpX2VuYWJsZWQgfHwgIShjbWQgJiBQQ0lfQ09NTUFORF9NRU1P UlkpKQorIAkJcmV0dXJuIC1FTlhJTzsKKyAKKyAJZW50cmllcyA9IGttYWxsb2Mob3AtPnZhbHVl ICogc2l6ZW9mKCplbnRyaWVzKSwgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9kZWJpYW4vcGF0 Y2hlcy9idWdmaXgvYWxsL3hlbi1wY2liYWNrLWZvci14ZW5fcGNpX29wX2Rpc2FibGVfbXNpLXgt b25seS1kaXNhYmwucGF0Y2ggYi9kZWJpYW4vcGF0Y2hlcy9idWdmaXgvYWxsL3hlbi1wY2liYWNr LWZvci14ZW5fcGNpX29wX2Rpc2FibGVfbXNpLXgtb25seS1kaXNhYmwucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2IwNTFkMQotLS0gL2Rldi9udWxsCisrKyBiL2Rl Ymlhbi9wYXRjaGVzL2J1Z2ZpeC9hbGwveGVuLXBjaWJhY2stZm9yLXhlbl9wY2lfb3BfZGlzYWJs ZV9tc2kteC1vbmx5LWRpc2FibC5wYXRjaApAQCAtMCwwICsxLDEwMiBAQAorRnJvbTogS29ucmFk IFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgorRGF0ZTogV2VkLCAxIEFw ciAyMDE1IDEwOjQ5OjQ3IC0wNDAwCitTdWJqZWN0OiBbNC81XSB4ZW4vcGNpYmFjazogRm9yIFhF Tl9QQ0lfT1BfZGlzYWJsZV9tc2lbfHhdIG9ubHkgZGlzYWJsZSBpZgorIGRldmljZSBoYXMgTVNJ KFgpIGVuYWJsZWQuCitPcmlnaW46IGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvbGludXMvN2NmYjkw NWI5NjM4OTgyODYyZjAzMzFiMzZjY2FhY2E1ZDM4M2I0OQorCitPdGhlcndpc2UganVzdCBjb250 aW51ZSBvbiwgcmV0dXJuaW5nIHRoZSBzYW1lIHZhbHVlcyBhcworcHJldmlvdXNseSAocmV0dXJu IG9mIDAsIGFuZCBvcC0+cmVzdWx0IGhhcyB0aGUgUElSUSB2YWx1ZSkuCisKK1RoaXMgZG9lcyBu b3QgY2hhbmdlIHRoZSBiZWhhdmlvciBvZiBYRU5fUENJX09QX2Rpc2FibGVfbXNpW3x4XS4KKwor VGhlIHBjaV9kaXNhYmxlX21zaSBvciBwY2lfZGlzYWJsZV9tc2l4IGhhdmUgdGhlIGNoZWNrcyBm b3IKK21zaV9lbmFibGVkIG9yIG1zaXhfZW5hYmxlZCBzbyB0aGV5IHdpbGwgZXJyb3Igb3V0IGlt bWVkaWF0ZWx5LgorCitIb3dldmVyIHRoZSBndWVzdCBjYW4gc3RpbGwgY2FsbCB0aGVzZSBvcGVy YXRpb25zIGFuZCBjYXVzZQordXMgdG8gZGlzYWJsZSB0aGUgJ2Fja19pbnRyJy4gVGhhdCBtZWFu cyB0aGUgYmFja2VuZCBJUlEgaGFuZGxlcgorZm9yIHRoZSBsZWdhY3kgaW50ZXJydXB0IHdpbGwg bm90IHJlc3BvbmQgdG8gaW50ZXJydXB0cyBhbnltb3JlLgorCitUaGlzIHdpbGwgbGVhZCB0byAo aWYgdGhlIGRldmljZSBpcyBjYXVzaW5nIGFuIGludGVycnVwdCBzdG9ybSkKK2ZvciB0aGUgTGlu dXggZ2VuZXJpYyBjb2RlIHRvIGRpc2FibGUgdGhlIGludGVycnVwdCBsaW5lLgorCitOYXR1cmFs bHkgdGhpcyB3aWxsIG9ubHkgaGFwcGVuIGlmIHRoZSBkZXZpY2UgaW4gcXVlc3Rpb24KK2lzIHBs dWdnZWQgaW4gb24gdGhlIG1vdGhlcmJvYXJkIG9uIHNoYXJlZCBsZXZlbCBpbnRlcnJ1cHQgR1NJ LgorCitUaGlzIGlzIHBhcnQgb2YgWFNBLTE1NworCitDQzogc3RhYmxlQHZnZXIua2VybmVsLm9y ZworUmV2aWV3ZWQtYnk6IERhdmlkIFZyYWJlbCA8ZGF2aWQudnJhYmVsQGNpdHJpeC5jb20+CitT aWduZWQtb2ZmLWJ5OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5j b20+CistLS0KKyBkcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2liYWNrX29wcy5jIHwgMzMgKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDIwIGluc2Vy dGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4veGVu LXBjaWJhY2svcGNpYmFja19vcHMuYyBiL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaWJhY2tf b3BzLmMKK2luZGV4IGQwNjk2Y2UuLjRlZTVmYzAgMTAwNjQ0CistLS0gYS9kcml2ZXJzL3hlbi94 ZW4tcGNpYmFjay9wY2liYWNrX29wcy5jCisrKysgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9w Y2liYWNrX29wcy5jCitAQCAtMTg1LDIwICsxODUsMjMgQEAgc3RhdGljCisgaW50IHhlbl9wY2li a19kaXNhYmxlX21zaShzdHJ1Y3QgeGVuX3BjaWJrX2RldmljZSAqcGRldiwKKyAJCQkgIHN0cnVj dCBwY2lfZGV2ICpkZXYsIHN0cnVjdCB4ZW5fcGNpX29wICpvcCkKKyB7CistCXN0cnVjdCB4ZW5f cGNpYmtfZGV2X2RhdGEgKmRldl9kYXRhOworLQorIAlpZiAodW5saWtlbHkodmVyYm9zZV9yZXF1 ZXN0KSkKKyAJCXByaW50ayhLRVJOX0RFQlVHIERSVl9OQU1FICI6ICVzOiBkaXNhYmxlIE1TSVxu IiwKKyAJCSAgICAgICBwY2lfbmFtZShkZXYpKTsKKy0JcGNpX2Rpc2FibGVfbXNpKGRldik7Cisg CisrCWlmIChkZXYtPm1zaV9lbmFibGVkKSB7CisrCQlzdHJ1Y3QgeGVuX3BjaWJrX2Rldl9kYXRh ICpkZXZfZGF0YTsKKysKKysJCXBjaV9kaXNhYmxlX21zaShkZXYpOworKworKwkJZGV2X2RhdGEg PSBwY2lfZ2V0X2RydmRhdGEoZGV2KTsKKysJCWlmIChkZXZfZGF0YSkKKysJCQlkZXZfZGF0YS0+ YWNrX2ludHIgPSAxOworKwl9CisgCW9wLT52YWx1ZSA9IGRldi0+aXJxID8geGVuX3BpcnFfZnJv bV9pcnEoZGV2LT5pcnEpIDogMDsKKyAJaWYgKHVubGlrZWx5KHZlcmJvc2VfcmVxdWVzdCkpCisg CQlwcmludGsoS0VSTl9ERUJVRyBEUlZfTkFNRSAiOiAlczogTVNJOiAlZFxuIiwgcGNpX25hbWUo ZGV2KSwKKyAJCQlvcC0+dmFsdWUpOworLQlkZXZfZGF0YSA9IHBjaV9nZXRfZHJ2ZGF0YShkZXYp OworLQlpZiAoZGV2X2RhdGEpCistCQlkZXZfZGF0YS0+YWNrX2ludHIgPSAxOworIAlyZXR1cm4g MDsKKyB9CisgCitAQCAtMjY0LDIzICsyNjcsMjcgQEAgc3RhdGljCisgaW50IHhlbl9wY2lia19k aXNhYmxlX21zaXgoc3RydWN0IHhlbl9wY2lia19kZXZpY2UgKnBkZXYsCisgCQkJICAgc3RydWN0 IHBjaV9kZXYgKmRldiwgc3RydWN0IHhlbl9wY2lfb3AgKm9wKQorIHsKKy0Jc3RydWN0IHhlbl9w Y2lia19kZXZfZGF0YSAqZGV2X2RhdGE7CisgCWlmICh1bmxpa2VseSh2ZXJib3NlX3JlcXVlc3Qp KQorIAkJcHJpbnRrKEtFUk5fREVCVUcgRFJWX05BTUUgIjogJXM6IGRpc2FibGUgTVNJLVhcbiIs CisgCQkJcGNpX25hbWUoZGV2KSk7CistCXBjaV9kaXNhYmxlX21zaXgoZGV2KTsKKyAKKysJaWYg KGRldi0+bXNpeF9lbmFibGVkKSB7CisrCQlzdHJ1Y3QgeGVuX3BjaWJrX2Rldl9kYXRhICpkZXZf ZGF0YTsKKysKKysJCXBjaV9kaXNhYmxlX21zaXgoZGV2KTsKKysKKysJCWRldl9kYXRhID0gcGNp X2dldF9kcnZkYXRhKGRldik7CisrCQlpZiAoZGV2X2RhdGEpCisrCQkJZGV2X2RhdGEtPmFja19p bnRyID0gMTsKKysJfQorIAkvKgorIAkgKiBTUi1JT1YgZGV2aWNlcyAod2hpY2ggZG9uJ3QgaGF2 ZSBhbnkgbGVnYWN5IElSUSkgaGF2ZQorIAkgKiBhbiB1bmRlZmluZWQgSVJRIHZhbHVlIG9mIHpl cm8uCisgCSAqLworIAlvcC0+dmFsdWUgPSBkZXYtPmlycSA/IHhlbl9waXJxX2Zyb21faXJxKGRl di0+aXJxKSA6IDA7CisgCWlmICh1bmxpa2VseSh2ZXJib3NlX3JlcXVlc3QpKQorLQkJcHJpbnRr KEtFUk5fREVCVUcgRFJWX05BTUUgIjogJXM6IE1TSS1YOiAlZFxuIiwgcGNpX25hbWUoZGV2KSwK Ky0JCQlvcC0+dmFsdWUpOworLQlkZXZfZGF0YSA9IHBjaV9nZXRfZHJ2ZGF0YShkZXYpOworLQlp ZiAoZGV2X2RhdGEpCistCQlkZXZfZGF0YS0+YWNrX2ludHIgPSAxOworKwkJcHJpbnRrKEtFUk5f REVCVUcgRFJWX05BTUUgIjogJXM6IE1TSS1YOiAlZFxuIiwKKysJCSAgICAgICBwY2lfbmFtZShk ZXYpLCBvcC0+dmFsdWUpOworIAlyZXR1cm4gMDsKKyB9CisgI2VuZGlmCmRpZmYgLS1naXQgYS9k ZWJpYW4vcGF0Y2hlcy9idWdmaXgvYWxsL3hlbi1wY2liYWNrLXJldHVybi1lcnJvci1vbi14ZW5f cGNpX29wX2VuYWJsZV9tc2ktd2gucGF0Y2ggYi9kZWJpYW4vcGF0Y2hlcy9idWdmaXgvYWxsL3hl bi1wY2liYWNrLXJldHVybi1lcnJvci1vbi14ZW5fcGNpX29wX2VuYWJsZV9tc2ktd2gucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdjYjc0NwotLS0gL2Rldi9udWxs CisrKyBiL2RlYmlhbi9wYXRjaGVzL2J1Z2ZpeC9hbGwveGVuLXBjaWJhY2stcmV0dXJuLWVycm9y LW9uLXhlbl9wY2lfb3BfZW5hYmxlX21zaS13aC5wYXRjaApAQCAtMCwwICsxLDU4IEBACitGcm9t OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CitEYXRlOiBG cmksIDMgQXByIDIwMTUgMTE6MDg6MjIgLTA0MDAKK1N1YmplY3Q6IFsxLzVdIHhlbi9wY2liYWNr OiBSZXR1cm4gZXJyb3Igb24gWEVOX1BDSV9PUF9lbmFibGVfbXNpIHdoZW4gZGV2aWNlCisgaGFz IE1TSSBvciBNU0ktWCBlbmFibGVkCitPcmlnaW46IGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvbGlu dXMvNTY0NDFmM2M4ZTViZDQ1YWFiMTBkZDlmOGM1MDVkZDRiZWMwM2IwZAorCitUaGUgZ3Vlc3Qg c2VxdWVuY2Ugb2Y6CisKKyBhKSBYRU5fUENJX09QX2VuYWJsZV9tc2kKKyBiKSBYRU5fUENJX09Q X2VuYWJsZV9tc2kKKyBjKSBYRU5fUENJX09QX2Rpc2FibGVfbXNpCisKK3Jlc3VsdHMgaW4gaGl0 dGluZyBhbiBCVUdfT04gY29uZGl0aW9uIGluIHRoZSBtc2kuYyBjb2RlLgorCitUaGUgTVNJIGNv ZGUgdXNlcyBhbiBkZXYtPm1zaV9saXN0IHRvIHdoaWNoIGl0IGFkZHMgTVNJIGVudHJpZXMuCitV bmRlciB0aGUgYWJvdmUgY29uZGl0aW9ucyBhbiBCVUdfT04oKSBjYW4gYmUgaGl0LiBUaGUgZGV2 aWNlCitwYXNzZWQgaW4gdGhlIGd1ZXN0IE1VU1QgaGF2ZSBNU0kgY2FwYWJpbGl0eS4KKworVGhl IGEpIGFkZHMgdGhlIGVudHJ5IHRvIHRoZSBkZXYtPm1zaV9saXN0IGFuZCBzZXRzIG1zaV9lbmFi bGVkLgorVGhlIGIpIGFkZHMgYSBzZWNvbmQgZW50cnkgYnV0IGFkZGluZyBpbiB0byBTeXNGUyBm YWlscyAoZHVwbGljYXRlIGVudHJ5KQorYW5kIGRlbGV0ZXMgYWxsIG9mIHRoZSBlbnRyaWVzIGZy b20gbXNpX2xpc3QgYW5kIHJldHVybnMgKHdpdGggbXNpX2VuYWJsZWQKK2lzIHN0aWxsIHNldCku ICBjKSBwY2lfZGlzYWJsZV9tc2kgcGFzc2VzIHRoZSBtc2lfZW5hYmxlZCBjaGVja3MgYW5kIGhp dHM6CisKK0JVR19PTihsaXN0X2VtcHR5KGRldl90b19tc2lfbGlzdCgmZGV2LT5kZXYpKSk7CisK K2FuZCBibG93cyB1cC4KKworVGhlIHBhdGNoIGFkZHMgYSBzaW1wbGUgY2hlY2sgaW4gdGhlIFhF Tl9QQ0lfT1BfZW5hYmxlX21zaSB0byBndWFyZAorYWdhaW5zdCB0aGF0LiBUaGUgY2hlY2sgZm9y IG1zaXhfZW5hYmxlZCBpcyBub3Qgc3RyaWNseSBuZWNjZXNzYXJ5LgorCitUaGlzIGlzIHBhcnQg b2YgWFNBLTE1Ny4KKworQ0M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKK1Jldmlld2VkLWJ5OiBE YXZpZCBWcmFiZWwgPGRhdmlkLnZyYWJlbEBjaXRyaXguY29tPgorUmV2aWV3ZWQtYnk6IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0 ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KKy0tLQorIGRyaXZlcnMveGVuL3hlbi1w Y2liYWNrL3BjaWJhY2tfb3BzLmMgfCA3ICsrKysrKy0KKyAxIGZpbGUgY2hhbmdlZCwgNiBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi94ZW4t cGNpYmFjay9wY2liYWNrX29wcy5jIGIvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpYmFja19v cHMuYworaW5kZXggYTBlMGUzZS4uOGJmYjg3YyAxMDA2NDQKKy0tLSBhL2RyaXZlcnMveGVuL3hl bi1wY2liYWNrL3BjaWJhY2tfb3BzLmMKKysrKyBiL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3Bj aWJhY2tfb3BzLmMKK0BAIC0xNDQsNyArMTQ0LDEyIEBAIGludCB4ZW5fcGNpYmtfZW5hYmxlX21z aShzdHJ1Y3QgeGVuX3BjaWJrX2RldmljZSAqcGRldiwKKyAJaWYgKHVubGlrZWx5KHZlcmJvc2Vf cmVxdWVzdCkpCisgCQlwcmludGsoS0VSTl9ERUJVRyBEUlZfTkFNRSAiOiAlczogZW5hYmxlIE1T SVxuIiwgcGNpX25hbWUoZGV2KSk7CisgCistCXN0YXR1cyA9IHBjaV9lbmFibGVfbXNpKGRldik7 CisrCWlmIChkZXYtPm1zaV9lbmFibGVkKQorKwkJc3RhdHVzID0gLUVBTFJFQURZOworKwllbHNl IGlmIChkZXYtPm1zaXhfZW5hYmxlZCkKKysJCXN0YXR1cyA9IC1FTlhJTzsKKysJZWxzZQorKwkJ c3RhdHVzID0gcGNpX2VuYWJsZV9tc2koZGV2KTsKKyAKKyAJaWYgKHN0YXR1cykgeworIAkJcHJf d2Fybl9yYXRlbGltaXRlZCgiJXM6IGVycm9yIGVuYWJsaW5nIE1TSSBmb3IgZ3Vlc3QgJXU6IGVy ciAlZFxuIiwKZGlmZiAtLWdpdCBhL2RlYmlhbi9wYXRjaGVzL2J1Z2ZpeC9hbGwveGVuLXBjaWJh Y2stcmV0dXJuLWVycm9yLW9uLXhlbl9wY2lfb3BfZW5hYmxlX21zaXgtdy5wYXRjaCBiL2RlYmlh bi9wYXRjaGVzL2J1Z2ZpeC9hbGwveGVuLXBjaWJhY2stcmV0dXJuLWVycm9yLW9uLXhlbl9wY2lf b3BfZW5hYmxlX21zaXgtdy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4wZDM3YTRjCi0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL3BhdGNoZXMvYnVnZml4L2FsbC94 ZW4tcGNpYmFjay1yZXR1cm4tZXJyb3Itb24teGVuX3BjaV9vcF9lbmFibGVfbXNpeC13LnBhdGNo CkBAIC0wLDAgKzEsNjAgQEAKK0Zyb206IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndp bGtAb3JhY2xlLmNvbT4KK0RhdGU6IE1vbiwgMiBOb3YgMjAxNSAxODowNzo0NCAtMDUwMAorU3Vi amVjdDogWzIvNV0geGVuL3BjaWJhY2s6IFJldHVybiBlcnJvciBvbiBYRU5fUENJX09QX2VuYWJs ZV9tc2l4IHdoZW4gZGV2aWNlCisgaGFzIE1TSSBvciBNU0ktWCBlbmFibGVkCitPcmlnaW46IGh0 dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvbGludXMvNWUwY2UxNDU1YzA5ZGQ2MWQwMjliOGFkNDVkODJl MWFjMGI2YzRjOQorCitUaGUgZ3Vlc3Qgc2VxdWVuY2Ugb2Y6CisKKyAgYSkgWEVOX1BDSV9PUF9l bmFibGVfbXNpeAorICBiKSBYRU5fUENJX09QX2VuYWJsZV9tc2l4CisKK3Jlc3VsdHMgaW4gaGl0 dGluZyBhbiBOVUxMIHBvaW50ZXIgZHVlIHRvIHVzaW5nIGZyZWVkIHBvaW50ZXJzLgorCitUaGUg ZGV2aWNlIHBhc3NlZCBpbiB0aGUgZ3Vlc3QgTVVTVCBoYXZlIE1TSS1YIGNhcGFiaWxpdHkuCisK K1RoZSBhKSBjb25zdHJ1Y3RzIGFuZCBTeXNGUyByZXByZXNlbnRhdGlvbiBvZiBNU0kgYW5kIE1T SSBncm91cHMuCitUaGUgYikgYWRkcyBhIHNlY29uZCBzZXQgb2YgdGhlbSBidXQgYWRkaW5nIGlu IHRvIFN5c0ZTIGZhaWxzIChkdXBsaWNhdGUgZW50cnkpLgorJ3BvcHVsYXRlX21zaV9zeXNmcycg ZnJlZXMgdGhlIG5ld2x5IGFsbG9jYXRlZCBtc2lfaXJxX2dyb3VwcyAobm90ZSB0aGF0CitpbiBh KSBwZGV2LT5tc2lfaXJxX2dyb3VwcyBpcyBzdGlsbCBzZXQpIGFuZCBhbHNvIGZyZWUncyBBTEwg b2YgdGhlCitNU0ktWCBlbnRyaWVzIG9mIHRoZSBkZXZpY2UgKHRoZSBvbmVzIGFsbG9jYXRlZCBp biBzdGVwIGEpIGFuZCBiKSkuCisKK1RoZSB1bndpbmQgY29kZTogJ2ZyZWVfbXNpX2lycXMnIGRl bGV0ZXMgYWxsIHRoZSBlbnRyaWVzIGFuZCB0cmllcyB0bworZGVsZXRlIHRoZSBwZGV2LT5tc2lf aXJxX2dyb3VwcyAod2hpY2ggaGFzbid0IGJlZW4gc2V0IHRvIE5VTEwpLgorSG93ZXZlciB0aGUg cG9pbnRlcnMgaW4gdGhlIFN5c0ZTIGFyZSBhbHJlYWR5IGZyZWVkIGFuZCB3ZSBoaXQgYW4KK05V TEwgcG9pbnRlciBmdXJ0aGVyIG9uIHdoZW4gJ3N0cmxlbicgaXMgYXR0ZW1wdGVkIG9uIGEgZnJl ZWQgcG9pbnRlci4KKworVGhlIHBhdGNoIGFkZHMgYSBzaW1wbGUgY2hlY2sgaW4gdGhlIFhFTl9Q Q0lfT1BfZW5hYmxlX21zaXggdG8gZ3VhcmQKK2FnYWluc3QgdGhhdC4gVGhlIGNoZWNrIGZvciBt c2lfZW5hYmxlZCBpcyBub3Qgc3RyaWNseSBuZWNjZXNzYXJ5LgorCitUaGlzIGlzIHBhcnQgb2Yg WFNBLTE1NworCitDQzogc3RhYmxlQHZnZXIua2VybmVsLm9yZworUmV2aWV3ZWQtYnk6IERhdmlk IFZyYWJlbCA8ZGF2aWQudnJhYmVsQGNpdHJpeC5jb20+CitSZXZpZXdlZC1ieTogSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPgorU2lnbmVkLW9mZi1ieTogS29ucmFkIFJ6ZXN6dXRlayBX aWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgorLS0tCisgZHJpdmVycy94ZW4veGVuLXBjaWJh Y2svcGNpYmFja19vcHMuYyB8IDcgKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlv bnMoKykKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaWJhY2tfb3Bz LmMgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2liYWNrX29wcy5jCitpbmRleCA4YmZiODdj Li4wMjlmMzNkIDEwMDY0NAorLS0tIGEvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpYmFja19v cHMuYworKysrIGIvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpYmFja19vcHMuYworQEAgLTIw Niw5ICsyMDYsMTYgQEAgaW50IHhlbl9wY2lia19lbmFibGVfbXNpeChzdHJ1Y3QgeGVuX3BjaWJr X2RldmljZSAqcGRldiwKKyAJaWYgKHVubGlrZWx5KHZlcmJvc2VfcmVxdWVzdCkpCisgCQlwcmlu dGsoS0VSTl9ERUJVRyBEUlZfTkFNRSAiOiAlczogZW5hYmxlIE1TSS1YXG4iLAorIAkJICAgICAg IHBjaV9uYW1lKGRldikpOworKworIAlpZiAob3AtPnZhbHVlID4gU0hfSU5GT19NQVhfVkVDKQor IAkJcmV0dXJuIC1FSU5WQUw7CisgCisrCWlmIChkZXYtPm1zaXhfZW5hYmxlZCkKKysJCXJldHVy biAtRUFMUkVBRFk7CisrCisrCWlmIChkZXYtPm1zaV9lbmFibGVkKQorKwkJcmV0dXJuIC1FTlhJ TzsKKysKKyAJZW50cmllcyA9IGttYWxsb2Mob3AtPnZhbHVlICogc2l6ZW9mKCplbnRyaWVzKSwg R0ZQX0tFUk5FTCk7CisgCWlmIChlbnRyaWVzID09IE5VTEwpCisgCQlyZXR1cm4gLUVOT01FTTsK ZGlmZiAtLWdpdCBhL2RlYmlhbi9wYXRjaGVzL2J1Z2ZpeC9hbGwveGVuLXBjaWJhY2stc2F2ZS14 ZW5fcGNpX29wLWNvbW1hbmRzLWJlZm9yZS1wcm9jZXNzaS5wYXRjaCBiL2RlYmlhbi9wYXRjaGVz L2J1Z2ZpeC9hbGwveGVuLXBjaWJhY2stc2F2ZS14ZW5fcGNpX29wLWNvbW1hbmRzLWJlZm9yZS1w cm9jZXNzaS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDFhZmU4 Ci0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL3BhdGNoZXMvYnVnZml4L2FsbC94ZW4tcGNpYmFj ay1zYXZlLXhlbl9wY2lfb3AtY29tbWFuZHMtYmVmb3JlLXByb2Nlc3NpLnBhdGNoCkBAIC0wLDAg KzEsNzcgQEAKK0Zyb206IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xl LmNvbT4KK0RhdGU6IE1vbiwgMTYgTm92IDIwMTUgMTI6NDA6NDggLTA1MDAKK1N1YmplY3Q6IFs3 LzddIHhlbi9wY2liYWNrOiBTYXZlIHhlbl9wY2lfb3AgY29tbWFuZHMgYmVmb3JlIHByb2Nlc3Np bmcgaXQKK09yaWdpbjogaHR0cHM6Ly9naXQua2VybmVsLm9yZy9saW51cy84MTM1Y2Y4YjA5Mjcy M2RiZmNjNjExZmU2ZmRjYjNhMzZjOTk1MWM1CisKK0RvdWJsZSBmZXRjaCB2dWxuZXJhYmlsaXRp ZXMgdGhhdCBoYXBwZW4gd2hlbiBhIHZhcmlhYmxlIGlzCitmZXRjaGVkIHR3aWNlIGZyb20gc2hh cmVkIG1lbW9yeSBidXQgYSBzZWN1cml0eSBjaGVjayBpcyBvbmx5CitwZXJmb3JtZWQgdGhlIGZp cnN0IHRpbWUuCisKK1RoZSB4ZW5fcGNpYmtfZG9fb3AgZnVuY3Rpb24gcGVyZm9ybXMgYSBzd2l0 Y2ggc3RhdGVtZW50cyBvbiB0aGUgb3AtPmNtZAordmFsdWUgd2hpY2ggaXMgc3RvcmVkIGluIHNo YXJlZCBtZW1vcnkuIEludGVyZXN0aW5nbHkgdGhpcyBjYW4gcmVzdWx0CitpbiBhIGRvdWJsZSBm ZXRjaCB2dWxuZXJhYmlsaXR5IGRlcGVuZGluZyBvbiB0aGUgcGVyZm9ybWVkIGNvbXBpbGVyCitv cHRpbWl6YXRpb24uCisKK1RoaXMgcGF0Y2ggZml4ZXMgaXQgYnkgc2F2aW5nIHRoZSB4ZW5fcGNp X29wIGNvbW1hbmQgYmVmb3JlCitwcm9jZXNzaW5nIGl0LiBXZSBhbHNvIHVzZSAnYmFycmllcicg dG8gbWFrZSBzdXJlIHRoYXQgdGhlCitjb21waWxlciBkb2VzIG5vdCBwZXJmb3JtIGFueSBvcHRp bWl6YXRpb24uCisKK1RoaXMgaXMgcGFydCBvZiBYU0ExNTUuCisKK0NDOiBzdGFibGVAdmdlci5r ZXJuZWwub3JnCitSZXZpZXdlZC1ieTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2ls a0BvcmFjbGUuY29tPgorU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2Uu Y29tPgorU2lnbmVkLW9mZi1ieTogRGF2aWQgVnJhYmVsIDxkYXZpZC52cmFiZWxAY2l0cml4LmNv bT4KK1NpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3Jh Y2xlLmNvbT4KKy0tLQorIGRyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaWJhY2suaCAgICAgfCAg MSArCisgZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpYmFja19vcHMuYyB8IDE1ICsrKysrKysr KysrKysrLQorIDIgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQorCitkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpYmFjay5oIGIvZHJp dmVycy94ZW4veGVuLXBjaWJhY2svcGNpYmFjay5oCitpbmRleCA1OGUzOGQ1Li40ZDUyOWYzIDEw MDY0NAorLS0tIGEvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpYmFjay5oCisrKysgYi9kcml2 ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2liYWNrLmgKK0BAIC0zNyw2ICszNyw3IEBAIHN0cnVjdCB4 ZW5fcGNpYmtfZGV2aWNlIHsKKyAJc3RydWN0IHhlbl9wY2lfc2hhcmVkaW5mbyAqc2hfaW5mbzsK KyAJdW5zaWduZWQgbG9uZyBmbGFnczsKKyAJc3RydWN0IHdvcmtfc3RydWN0IG9wX3dvcms7Cisr CXN0cnVjdCB4ZW5fcGNpX29wIG9wOworIH07CisgCisgc3RydWN0IHhlbl9wY2lia19kZXZfZGF0 YSB7CitkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpYmFja19vcHMuYyBi L2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaWJhY2tfb3BzLmMKK2luZGV4IGM0YTA2NjYuLmEw ZTBlM2UgMTAwNjQ0CistLS0gYS9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2liYWNrX29wcy5j CisrKysgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2liYWNrX29wcy5jCitAQCAtMjk4LDkg KzI5OCwxMSBAQCB2b2lkIHhlbl9wY2lia19kb19vcChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKmRhdGEp CisgCQljb250YWluZXJfb2YoZGF0YSwgc3RydWN0IHhlbl9wY2lia19kZXZpY2UsIG9wX3dvcmsp OworIAlzdHJ1Y3QgcGNpX2RldiAqZGV2OworIAlzdHJ1Y3QgeGVuX3BjaWJrX2Rldl9kYXRhICpk ZXZfZGF0YSA9IE5VTEw7CistCXN0cnVjdCB4ZW5fcGNpX29wICpvcCA9ICZwZGV2LT5zaF9pbmZv LT5vcDsKKysJc3RydWN0IHhlbl9wY2lfb3AgKm9wID0gJnBkZXYtPm9wOworIAlpbnQgdGVzdF9p bnR4ID0gMDsKKyAKKysJKm9wID0gcGRldi0+c2hfaW5mby0+b3A7CisrCWJhcnJpZXIoKTsKKyAJ ZGV2ID0geGVuX3BjaWJrX2dldF9wY2lfZGV2KHBkZXYsIG9wLT5kb21haW4sIG9wLT5idXMsIG9w LT5kZXZmbik7CisgCisgCWlmIChkZXYgPT0gTlVMTCkKK0BAIC0zNDIsNiArMzQ0LDE3IEBAIHZv aWQgeGVuX3BjaWJrX2RvX29wKHN0cnVjdCB3b3JrX3N0cnVjdCAqZGF0YSkKKyAJCWlmICgoZGV2 X2RhdGEtPmVuYWJsZV9pbnR4ICE9IHRlc3RfaW50eCkpCisgCQkJeGVuX3BjaWJrX2NvbnRyb2xf aXNyKGRldiwgMCAvKiBubyByZXNldCAqLyk7CisgCX0KKysJcGRldi0+c2hfaW5mby0+b3AuZXJy ID0gb3AtPmVycjsKKysJcGRldi0+c2hfaW5mby0+b3AudmFsdWUgPSBvcC0+dmFsdWU7CisrI2lm ZGVmIENPTkZJR19QQ0lfTVNJCisrCWlmIChvcC0+Y21kID09IFhFTl9QQ0lfT1BfZW5hYmxlX21z aXggJiYgb3AtPmVyciA9PSAwKSB7CisrCQl1bnNpZ25lZCBpbnQgaTsKKysKKysJCWZvciAoaSA9 IDA7IGkgPCBvcC0+dmFsdWU7IGkrKykKKysJCQlwZGV2LT5zaF9pbmZvLT5vcC5tc2l4X2VudHJp ZXNbaV0udmVjdG9yID0KKysJCQkJb3AtPm1zaXhfZW50cmllc1tpXS52ZWN0b3I7CisrCX0KKysj ZW5kaWYKKyAJLyogVGVsbCB0aGUgZHJpdmVyIGRvbWFpbiB0aGF0IHdlJ3JlIGRvbmUuICovCisg CXdtYigpOworIAljbGVhcl9iaXQoX1hFTl9QQ0lGX2FjdGl2ZSwgKHVuc2lnbmVkIGxvbmcgKikm cGRldi0+c2hfaW5mby0+ZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvYnVnZml4 L3g4Ni9LVk0teDg2LVJlbG9hZC1waXQtY291bnRlcnMtZm9yLWFsbC1jaGFubmVscy13aGVuLXJl LnBhdGNoIGIvZGViaWFuL3BhdGNoZXMvYnVnZml4L3g4Ni9LVk0teDg2LVJlbG9hZC1waXQtY291 bnRlcnMtZm9yLWFsbC1jaGFubmVscy13aGVuLXJlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjEyYzI5NjgKLS0tIC9kZXYvbnVsbAorKysgYi9kZWJpYW4vcGF0Y2hl cy9idWdmaXgveDg2L0tWTS14ODYtUmVsb2FkLXBpdC1jb3VudGVycy1mb3ItYWxsLWNoYW5uZWxz LXdoZW4tcmUucGF0Y2gKQEAgLTAsMCArMSw1MyBAQAorRnJvbTogQW5kcmV3IEhvbmlnIDxhaG9u aWdAZ29vZ2xlLmNvbT4KK0RhdGU6IFdlZCwgMTggTm92IDIwMTUgMTQ6NTA6MjMgLTA4MDAKK1N1 YmplY3Q6IEtWTTogeDg2OiBSZWxvYWQgcGl0IGNvdW50ZXJzIGZvciBhbGwgY2hhbm5lbHMgd2hl biByZXN0b3Jpbmcgc3RhdGUKK09yaWdpbjogaHR0cHM6Ly9naXQua2VybmVsLm9yZy9saW51cy8w MTg1NjA0YzJkODJjNTYwZGFiMmYyOTMzYTE4Zjc5N2U3NGFiNWE4CisKK0N1cnJlbnRseSBpZiB1 c2Vyc3BhY2UgcmVzdG9yZXMgdGhlIHBpdCBjb3VudGVycyB3aXRoIGEgY291bnQgb2YgMAorb24g Y2hhbm5lbHMgMSBvciAyIGFuZCB0aGUgZ3Vlc3QgYXR0ZW1wdHMgdG8gcmVhZCB0aGUgY291bnQg b24gdGhvc2UKK2NoYW5uZWxzLCB0aGVuIEtWTSB3aWxsIHBlcmZvcm0gYSBtb2Qgb2YgMCBhbmQg Y3Jhc2guICBUaGlzIHdpbGwgZW5zdXJlCit0aGF0IDAgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8g NjU1MzYgYXMgcGVyIHRoZSBzcGVjLgorCitUaGlzIGlzIENWRS0yMDE1LTc1MTMuCisKK1NpZ25l ZC1vZmYtYnk6IEFuZHkgSG9uaWcgPGFob25pZ0Bnb29nbGUuY29tPgorU2lnbmVkLW9mZi1ieTog UGFvbG8gQm9uemluaSA8cGJvbnppbmlAcmVkaGF0LmNvbT4KK1tjYXJuaWw6IEJhY2twb3J0IHRv IDQuMy4zOiBjb250ZXh0XQorLS0tCisgYXJjaC94ODYva3ZtL3g4Ni5jIHwgOCArKysrKystLQor IDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKKy0tLSBh L2FyY2gveDg2L2t2bS94ODYuYworKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jCitAQCAtMzU1OSwx MCArMzU1OSwxMSBAQCBzdGF0aWMgaW50IGt2bV92bV9pb2N0bF9nZXRfcGl0KHN0cnVjdCBrCisg c3RhdGljIGludCBrdm1fdm1faW9jdGxfc2V0X3BpdChzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBr dm1fcGl0X3N0YXRlICpwcykKKyB7CisgCWludCByID0gMDsKKy0KKysJaW50IGk7CisgCW11dGV4 X2xvY2soJmt2bS0+YXJjaC52cGl0LT5waXRfc3RhdGUubG9jayk7CisgCW1lbWNweSgma3ZtLT5h cmNoLnZwaXQtPnBpdF9zdGF0ZSwgcHMsIHNpemVvZihzdHJ1Y3Qga3ZtX3BpdF9zdGF0ZSkpOwor LQlrdm1fcGl0X2xvYWRfY291bnQoa3ZtLCAwLCBwcy0+Y2hhbm5lbHNbMF0uY291bnQsIDApOwor Kwlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKQorKwkJa3ZtX3BpdF9sb2FkX2NvdW50KGt2bSwgaSwg cHMtPmNoYW5uZWxzW2ldLmNvdW50LCAwKTsKKyAJbXV0ZXhfdW5sb2NrKCZrdm0tPmFyY2gudnBp dC0+cGl0X3N0YXRlLmxvY2spOworIAlyZXR1cm4gcjsKKyB9CitAQCAtMzU4Myw2ICszNTg0LDcg QEAgc3RhdGljIGludCBrdm1fdm1faW9jdGxfZ2V0X3BpdDIoc3RydWN0Cisgc3RhdGljIGludCBr dm1fdm1faW9jdGxfc2V0X3BpdDIoc3RydWN0IGt2bSAqa3ZtLCBzdHJ1Y3Qga3ZtX3BpdF9zdGF0 ZTIgKnBzKQorIHsKKyAJaW50IHIgPSAwLCBzdGFydCA9IDA7CisrCWludCBpOworIAl1MzIgcHJl dl9sZWdhY3ksIGN1cl9sZWdhY3k7CisgCW11dGV4X2xvY2soJmt2bS0+YXJjaC52cGl0LT5waXRf c3RhdGUubG9jayk7CisgCXByZXZfbGVnYWN5ID0ga3ZtLT5hcmNoLnZwaXQtPnBpdF9zdGF0ZS5m bGFncyAmIEtWTV9QSVRfRkxBR1NfSFBFVF9MRUdBQ1k7CitAQCAtMzU5Miw3ICszNTk0LDggQEAg c3RhdGljIGludCBrdm1fdm1faW9jdGxfc2V0X3BpdDIoc3RydWN0CisgCW1lbWNweSgma3ZtLT5h cmNoLnZwaXQtPnBpdF9zdGF0ZS5jaGFubmVscywgJnBzLT5jaGFubmVscywKKyAJICAgICAgIHNp emVvZihrdm0tPmFyY2gudnBpdC0+cGl0X3N0YXRlLmNoYW5uZWxzKSk7CisgCWt2bS0+YXJjaC52 cGl0LT5waXRfc3RhdGUuZmxhZ3MgPSBwcy0+ZmxhZ3M7CistCWt2bV9waXRfbG9hZF9jb3VudChr dm0sIDAsIGt2bS0+YXJjaC52cGl0LT5waXRfc3RhdGUuY2hhbm5lbHNbMF0uY291bnQsIHN0YXJ0 KTsKKysJZm9yIChpID0gMDsgaSA8IDM7IGkrKykKKysJCWt2bV9waXRfbG9hZF9jb3VudChrdm0s IGksIGt2bS0+YXJjaC52cGl0LT5waXRfc3RhdGUuY2hhbm5lbHNbaV0uY291bnQsIHN0YXJ0KTsK KyAJbXV0ZXhfdW5sb2NrKCZrdm0tPmFyY2gudnBpdC0+cGl0X3N0YXRlLmxvY2spOworIAlyZXR1 cm4gcjsKKyB9CmRpZmYgLS1naXQgYS9kZWJpYW4vcGF0Y2hlcy9kZWJpYW4vcHRyYWNlLWZpeC1h YmktY2hhbmdlLWZvci1wcml2LWVzYy1maXgucGF0Y2ggYi9kZWJpYW4vcGF0Y2hlcy9kZWJpYW4v cHRyYWNlLWZpeC1hYmktY2hhbmdlLWZvci1wcml2LWVzYy1maXgucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI0M2MzZQotLS0gL2Rldi9udWxsCisrKyBiL2RlYmlh bi9wYXRjaGVzL2RlYmlhbi9wdHJhY2UtZml4LWFiaS1jaGFuZ2UtZm9yLXByaXYtZXNjLWZpeC5w YXRjaApAQCAtMCwwICsxLDE5IEBACitGcm9tOiBCZW4gSHV0Y2hpbmdzIDxiZW5AZGVjYWRlbnQu b3JnLnVrPgorRGF0ZTogU3VuLCAyNyBEZWMgMjAxNSAyMToxMTowOSArMDAwMAorU3ViamVjdDog cHRyYWNlOiBGaXggQUJJIGNoYW5nZSBmb3IgcHJpdi1lc2MgZml4CitGb3J3YXJkZWQ6IG5vdC1u ZWVkZWQKKworSGlkZSB0aGUgbmV3ICNpbmNsdWRlIGZyb20gZ2Vua3N5bXMuCistLS0KKy0tLSBh L2tlcm5lbC9wdHJhY2UuYworKysrIGIva2VybmVsL3B0cmFjZS5jCitAQCAtMjAsNyArMjAsOSBA QAorICNpbmNsdWRlIDxsaW51eC91aW8uaD4KKyAjaW5jbHVkZSA8bGludXgvYXVkaXQuaD4KKyAj aW5jbHVkZSA8bGludXgvcGlkX25hbWVzcGFjZS5oPgorKyNpZm5kZWYgX19HRU5LU1lNU19fCisg I2luY2x1ZGUgPGxpbnV4L3VzZXJfbmFtZXNwYWNlLmg+CisrI2VuZGlmCisgI2luY2x1ZGUgPGxp bnV4L3N5c2NhbGxzLmg+CisgI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyAjaW5jbHVkZSA8 bGludXgvcmVnc2V0Lmg+CmRpZmYgLS1naXQgYS9kZWJpYW4vcGF0Y2hlcy9zZXJpZXMgYi9kZWJp YW4vcGF0Y2hlcy9zZXJpZXMKaW5kZXggYWFmYjM5Mi4uZjIyYzNmMiAxMDA2NDQKLS0tIGEvZGVi aWFuL3BhdGNoZXMvc2VyaWVzCisrKyBiL2RlYmlhbi9wYXRjaGVzL3NlcmllcwpAQCAtNjUwLDMg KzY1MCwyMyBAQCBidWdmaXgvYWxsL3VuaXgtYXZvaWQtdXNlLWFmdGVyLWZyZWUtaW4tZXBfcmVt b3ZlX3dhaXRfcXVldWUucGF0Y2gKIGRlYmlhbi9hZl91bml4LWF2b2lkLWFiaS1jaGFuZ2VzLnBh dGNoCiBidWdmaXgvYWxsL2J0cmZzLWZpeC10cnVuY2F0aW9uLW9mLWNvbXByZXNzZWQtYW5kLWlu bGluZWQtZXh0ZW4ucGF0Y2gKIGJ1Z2ZpeC9hbGwvbmV0LWFkZC12YWxpZGF0aW9uLWZvci10aGUt c29ja2V0LXN5c2NhbGwtcHJvdG9jb2wucGF0Y2gKK2J1Z2ZpeC9hbGwveGVuLWFkZC1yaW5nX2Nv cHlfcmVxdWVzdC5wYXRjaAorYnVnZml4L2FsbC94ZW4tbmV0YmFjay1kb24tdC11c2UtbGFzdC1y ZXF1ZXN0LXRvLWRldGVybWluZS1taW5pLnBhdGNoCitidWdmaXgvYWxsL3hlbi1uZXRiYWNrLXVz ZS1yaW5nX2NvcHlfcmVxdWVzdC10aHJvdWdob3V0LnBhdGNoCitidWdmaXgvYWxsL3hlbi1ibGti YWNrLW9ubHktcmVhZC1yZXF1ZXN0LW9wZXJhdGlvbi1mcm9tLXNoYXJlZC0ucGF0Y2gKK2J1Z2Zp eC9hbGwveGVuLWJsa2JhY2stcmVhZC1mcm9tLWluZGlyZWN0LWRlc2NyaXB0b3JzLW9ubHktb25j ZS5wYXRjaAorYnVnZml4L2FsbC94ZW4tcGNpYmFjay1zYXZlLXhlbl9wY2lfb3AtY29tbWFuZHMt YmVmb3JlLXByb2Nlc3NpLnBhdGNoCitidWdmaXgvYWxsL3hlbi1wY2liYWNrLXJldHVybi1lcnJv ci1vbi14ZW5fcGNpX29wX2VuYWJsZV9tc2ktd2gucGF0Y2gKK2J1Z2ZpeC9hbGwveGVuLXBjaWJh Y2stcmV0dXJuLWVycm9yLW9uLXhlbl9wY2lfb3BfZW5hYmxlX21zaXgtdy5wYXRjaAorYnVnZml4 L2FsbC94ZW4tcGNpYmFjay1kby1ub3QtaW5zdGFsbC1hbi1pcnEtaGFuZGxlci1mb3ItbXNpLWlu LnBhdGNoCitidWdmaXgvYWxsL3hlbi1wY2liYWNrLWZvci14ZW5fcGNpX29wX2Rpc2FibGVfbXNp LXgtb25seS1kaXNhYmwucGF0Y2gKK2J1Z2ZpeC9hbGwveGVuLXBjaWJhY2stZG9uLXQtYWxsb3ct bXNpLXgtb3BzLWlmLXBjaV9jb21tYW5kX21lbS5wYXRjaAorYnVnZml4L2FsbC9wcHRwLXZlcmlm eS1zb2NrYWRkcl9sZW4taW4tcHB0cF9iaW5kLWFuZC1wcHRwX2Nvbm5lLnBhdGNoCitidWdmaXgv YWxsL2JsdWV0b290aC12YWxpZGF0ZS1zb2NrZXQtYWRkcmVzcy1sZW5ndGgtaW4tc2NvX3NvY2su cGF0Y2gKK2J1Z2ZpeC9hbGwvcHRyYWNlLWJlaW5nLWNhcGFibGUtd3J0LWEtcHJvY2Vzcy1yZXF1 aXJlcy1tYXBwZWQtdWlkcy1naWRzLnBhdGNoCitkZWJpYW4vcHRyYWNlLWZpeC1hYmktY2hhbmdl LWZvci1wcml2LWVzYy1maXgucGF0Y2gKK2J1Z2ZpeC9hbGwva2V5cy1maXgtcmFjZS1iZXR3ZWVu LXJlYWQtYW5kLXJldm9rZS5wYXRjaAorYnVnZml4L3g4Ni9LVk0teDg2LVJlbG9hZC1waXQtY291 bnRlcnMtZm9yLWFsbC1jaGFubmVscy13aGVuLXJlLnBhdGNoCitidWdmaXgvYWxsL3JldmVydC1u ZXQtYWRkLWxlbmd0aC1hcmd1bWVudC10by1za2JfY29weV9hbmRfY3N1bV9kYXRhZ3JhbV9pb3Zl Yy5wYXRjaAorYnVnZml4L2FsbC91ZHAtcHJvcGVybHktc3VwcG9ydC1tc2dfcGVlay13aXRoLXRy dW5jYXRlZC1idWZmZXJzLnBhdGNoCitidWdmaXgvYWxsL3JldmVydC14aGNpLWRvbi10LWZpbmlz aC1hLXRkLWlmLXdlLWdldC1hLXNob3J0LXRyYW5zZmVyLnBhdGNoCk== --=-idNaPvjzTZpw/MiwQnc2 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --=-idNaPvjzTZpw/MiwQnc2--