From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v2 01/18] OvmfPkg: Add public headers from Xen Project. Date: Wed, 10 Sep 2014 15:43:36 -0400 Message-ID: <20140910194336.GB3556@laptop.dumpdata.com> References: <1409849473-9268-1-git-send-email-anthony.perard@citrix.com> <1409849473-9268-2-git-send-email-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1409849473-9268-2-git-send-email-anthony.perard@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Anthony PERARD Cc: EDK2 devel , Xen Devel List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBTZXAgMDQsIDIwMTQgYXQgMDU6NTA6NTZQTSArMDEwMCwgQW50aG9ueSBQRVJBUkQg d3JvdGU6Cj4gVGhpcyBwYXRjaCBpbXBvcnRzIHB1YmxpY3MgaGVhZGVycyBpbiBvcmRlciB0byB1 c2UgZmVhdHVyZXMgZnJvbSBYZW4KPiBsaWtlIFhlblN0b3JlLCBQViBCbG9jay4uLiBUaGVyZSBp cyBvbmx5IHRoZSBuZWNlc3NhcnkgaGVhZGVyIGZpbGVzIGFuZAo+IHRoZXJlIGFyZSBvbmx5IGEg ZmV3IG1vZGlmaWNhdGlvbnMgaW4gb3JkZXIgdG8gZmFjaWxpdGF0ZSBmdXR1cmUgbWVyZ2Ugb2YK PiBtb3JlIHJlY2VudCBoZWFkZXIgKHRoYXQgd291bGQgYmUgbmVjZXNzYXJ5IHRvIGFjY2VzcyBu ZXcgZmVhdHVyZXMpLgoKSSBhbSBub3QgZXhhY3RseSBzdXJlIHdoeSBjb3BpZWQgdGhlIGZ1bGwg aGVhZGVycyBpbnN0ZWFkIG9mIApqdXN0IGNvcHlpbmcgd2hhdCBpcyBuZWVkZWQ/CgpBcyBpbiwg eW91IGhhdmUgZGVmaW5lcyBmb3Igc2VnbWVudHMsIGNwdV91c2VyX3JlZ3MsIGZ1bGwgcmFuZ2UK b2YgaHlwZXJjYWxscyB0aGF0IHlvdSBhcmUgbm90IHVzaW5nLAoKV2h5IG5vdCB0cmltIHRoaXMg ZG93biB0byBqdXN0IHdoYXQgeW91IG5lZWQgYW5kIHJpcCB0aGUgcmVzdCBvdXQ/CgpUaGlzIGxp bms6IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTMwMTg1MC90b29scy10by1m aW5kLWluY2x1ZGVkLWhlYWRlcnMtd2hpY2gtYXJlLXVudXNlZApoYXMgYW4gZXhhbXBsZSBvZiBh IHRvb2wgdGhhdCBjYW4gYXV0b21hdGljYWxseSBoZWxwIHdpdGggdGhhdC4KCj4gCj4gVGhlcmUg aXMgbGl0dGxlIG1vZGlmaWNhdGlvbiBjb21wYXJlZCB0byB0aGUgb3JpZ2luYWwgZmlsZXM6Cj4g LSBVc2Ugb2YgWmVyb01lbSgpIGluc3RlYWQgb2YgbWVtc2V0KCkKPiAtIFJlcGxhY2UgdHlwZXMg dG8gYmUgbW9yZSBVRUZJIGNvbXBsaWFudCB1c2luZyBhIHNjcmlwdC4KPiAKPiBDb21tYW5kIHRv IHJ1biB0byBjaGFuZ2UgdHlwZXM6Cj4gZmluZCBPdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFu ZGFyZC9YZW4gLXR5cGUgZiAtbmFtZSAnKi5oJyAtZXhlYyBzZWQKPiAgIC0tcmVnZXhwLWV4dGVu ZGVkIC0tZmlsZT1maXhfdHlwZV9pbl94ZW5faW5jbHVkZXMuc2VkIC0taW4tcGxhY2Uge30gXDsK PiAKPiBUaGlzIGxpbmUgaXMgY29tbWVudGVkIGluc3RlYWQgb2YgYmVlbiBjaGFuZ2UgYXMgSSdt IG5vdCBzdXJlIHdoeSBpdAo+IGRvZXMgbm90IGNvbXBpbGUgKHdoZW4gcy9jaGFyL0NIQVI4Lyks IGFuZCBpdCBkb2VzIG5vdCBzZWVtcyBuZWNlc3NhcnkKPiBzbyBmYXIuCj4gICAvKiBfX0RFRklO RV9YRU5fR1VFU1RfSEFORExFKHVjaGFyLCB1bnNpZ25lZCBjaGFyKTsgKi8KPiAgIGluIE92bWZQ a2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9hcmNoLXg4Ni94ZW4uaAo+IAo+IEF2b2lk IGNoYW5naW5nIHRoZSAnbG9uZycgdGhhdCBpcyBub3QgYSB0eXBlICh3aXRoIHRoZSBmaXJzdCBs aW5lKS4KPiAkIGNhdCBmaXhfdHlwZV9pbl94ZW5faW5jbHVkZXMuc2VkCj4gL2FzIGxvbmcgYXMv Ygo+IAo+IHMvKFteYS16QS1aMC05X118Xil1aW50OF90KFteYS16QS1aMC05X118JCkvXDFVSU5U OFwyL2cKPiBzLyhbXmEtekEtWjAtOV9dfF4pdWludDE2X3QoW15hLXpBLVowLTlfXXwkKS9cMVVJ TlQxNlwyL2cKPiBzLyhbXmEtekEtWjAtOV9dfF4pdWludDMyX3QoW15hLXpBLVowLTlfXXwkKS9c MVVJTlQzMlwyL2cKPiBzLyhbXmEtekEtWjAtOV9dfF4pdWludDY0X3QoW15hLXpBLVowLTlfXXwk KS9cMVVJTlQ2NFwyL2cKPiAKPiBzLyhbXmEtekEtWjAtOV9dfF4paW50OF90KFteYS16QS1aMC05 X118JCkvXDFJTlQ4XDIvZwo+IHMvKFteYS16QS1aMC05X118XilpbnQxNl90KFteYS16QS1aMC05 X118JCkvXDFJTlQxNlwyL2cKPiBzLyhbXmEtekEtWjAtOV9dfF4paW50MzJfdChbXmEtekEtWjAt OV9dfCQpL1wxSU5UMzJcMi9nCj4gcy8oW15hLXpBLVowLTlfXXxeKWludDY0X3QoW15hLXpBLVow LTlfXXwkKS9cMUlOVDY0XDIvZwo+IAo+IHMvKFteYS16QS1aMC05X118Xil2b2lkKFteYS16QS1a MC05X118JCkvXDFWT0lEXDIvZwo+IHMvKFteYS16QS1aMC05X118Xil1bnNpZ25lZCBpbnQoW15h LXpBLVowLTlfXXwkKS9cMVVJTlQzMlwyL2cKPiBzLyhbXmEtekEtWjAtOV9dfF4paW50KFteYS16 QS1aMC05X118JCkvXDFJTlQzMlwyL2cKPiBzLyhbXmEtekEtWjAtOV9dfF4pY2hhcihbXmEtekEt WjAtOV9dfCQpL1wxQ0hBUjhcMi9nCj4gcy8oW15hLXpBLVowLTlfXXxeKXVuc2lnbmVkIGxvbmco W15hLXpBLVowLTlfXXwkKS9cMVVJTlROXDIvZwo+IHMvKFteYS16QS1aMC05X118Xilsb25nKFte YS16QS1aMC05X118JCkvXDFJTlROXDIvZwo+IAo+IENvbnRyaWJ1dGVkLXVuZGVyOiBUaWFub0Nv cmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjAKPiBTaWduZWQtb2ZmLWJ5OiBBbnRob255IFBF UkFSRCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4KPiAtLS0KPiAgLi4uL0luZHVzdHJ5U3Rh bmRhcmQvWGVuL2FyY2gteDg2L3hlbi14ODZfMzIuaCAgICAgfCAxNzEgKysrKwo+ICAuLi4vSW5k dXN0cnlTdGFuZGFyZC9YZW4vYXJjaC14ODYveGVuLXg4Nl82NC5oICAgICB8IDIwMiArKysrKwo+ ICAuLi4vSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9hcmNoLXg4Ni94ZW4uaCAgICB8IDI3 MyArKysrKysrCj4gIC4uLi9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvWGVuL2V2ZW50X2NoYW5u ZWwuaCAgIHwgMzgxICsrKysrKysrKwo+ICBPdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFy ZC9YZW4vZ3JhbnRfdGFibGUuaCB8IDY2MiArKysrKysrKysrKysrKysKPiAgT3ZtZlBrZy9JbmNs dWRlL0luZHVzdHJ5U3RhbmRhcmQvWGVuL2h2bS9odm1fb3AuaCAgfCAyNzUgKysrKysrKwo+ICBP dm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vaHZtL3BhcmFtcy5oICB8IDE1MCAr KysrCj4gIE92bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9pby9ibGtpZi5oICAg IHwgNjA4ICsrKysrKysrKysrKysrCj4gIC4uLi9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvWGVu L2lvL3Byb3RvY29scy5oICAgIHwgIDQwICsKPiAgT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3Rh bmRhcmQvWGVuL2lvL3JpbmcuaCAgICAgfCAzMTIgKysrKysrKwo+ICBPdm1mUGtnL0luY2x1ZGUv SW5kdXN0cnlTdGFuZGFyZC9YZW4vaW8veGVuYnVzLmggICB8ICA4MCArKwo+ICBPdm1mUGtnL0lu Y2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vaW8veHNfd2lyZS5oICB8IDEzOCArKysrCj4gIE92 bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9tZW1vcnkuaCAgICAgIHwgNDgwICsr KysrKysrKysrCj4gIE92bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9zY2hlZC5o ICAgICAgIHwgMTc0ICsrKysKPiAgT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvWGVu L3RyYWNlLmggICAgICAgfCAzMTAgKysrKysrKwo+ICBPdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlT dGFuZGFyZC9YZW4veGVuLWNvbXBhdC5oICB8ICA0NCArCj4gIE92bWZQa2cvSW5jbHVkZS9JbmR1 c3RyeVN0YW5kYXJkL1hlbi94ZW4uaCAgICAgICAgIHwgODk3ICsrKysrKysrKysrKysrKysrKysr Kwo+ICAxNyBmaWxlcyBjaGFuZ2VkLCA1MTk3IGluc2VydGlvbnMoKykKPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IE92bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9hcmNoLXg4Ni94ZW4t eDg2XzMyLmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE92bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0 YW5kYXJkL1hlbi9hcmNoLXg4Ni94ZW4teDg2XzY0LmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE92 bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9hcmNoLXg4Ni94ZW4uaAo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvWGVuL2V2ZW50 X2NoYW5uZWwuaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5 U3RhbmRhcmQvWGVuL2dyYW50X3RhYmxlLmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE92bWZQa2cv SW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9odm0vaHZtX29wLmgKPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IE92bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9odm0vcGFyYW1zLmgK PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE92bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hl bi9pby9ibGtpZi5oCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBPdm1mUGtnL0luY2x1ZGUvSW5kdXN0 cnlTdGFuZGFyZC9YZW4vaW8vcHJvdG9jb2xzLmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE92bWZQ a2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9pby9yaW5nLmgKPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IE92bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9pby94ZW5idXMuaAo+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvWGVu L2lvL3hzX3dpcmUuaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgT3ZtZlBrZy9JbmNsdWRlL0luZHVz dHJ5U3RhbmRhcmQvWGVuL21lbW9yeS5oCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBPdm1mUGtnL0lu Y2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vc2NoZWQuaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQg T3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvWGVuL3RyYWNlLmgKPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IE92bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi94ZW4tY29tcGF0 LmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE92bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJk L1hlbi94ZW4uaAo+IAo+IGRpZmYgLS1naXQgYS9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFu ZGFyZC9YZW4vYXJjaC14ODYveGVuLXg4Nl8zMi5oIGIvT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5 U3RhbmRhcmQvWGVuL2FyY2gteDg2L3hlbi14ODZfMzIuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4gaW5kZXggMDAwMDAwMC4uOThmMmYwMwo+IC0tLSAvZGV2L251bGwKPiArKysgYi9Pdm1mUGtn L0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vYXJjaC14ODYveGVuLXg4Nl8zMi5oCj4gQEAg LTAsMCArMSwxNzEgQEAKPiArLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiB4ZW4teDg2XzMy LmgKPiArICogCj4gKyAqIEd1ZXN0IE9TIGludGVyZmFjZSB0byB4ODYgMzItYml0IFhlbi4KPiAr ICogCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0 byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKPiArICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQg YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCj4gKyAq IGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRo b3V0IGxpbWl0YXRpb24gdGhlCj4gKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgo+ICsgKiBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBT b2Z0d2FyZSBpcwo+ICsgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv d2luZyBjb25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+ICsgKiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPiArICoKPiAr ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5U IFNIQUxMIFRIRQo+ICsgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJ TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAq IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IgT1RIRVIKPiArICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBD b3B5cmlnaHQgKGMpIDIwMDQtMjAwNywgSyBBIEZyYXNlcgo+ICsgKi8KPiArCj4gKyNpZm5kZWYg X19YRU5fUFVCTElDX0FSQ0hfWDg2X1hFTl9YODZfMzJfSF9fCj4gKyNkZWZpbmUgX19YRU5fUFVC TElDX0FSQ0hfWDg2X1hFTl9YODZfMzJfSF9fCj4gKwo+ICsvKgo+ICsgKiBIeXBlcmNhbGwgaW50 ZXJmYWNlOgo+ICsgKiAgSW5wdXQ6ICAlZWJ4LCAlZWN4LCAlZWR4LCAlZXNpLCAlZWRpLCAlZWJw IChhcmd1bWVudHMgMS02KQo+ICsgKiAgT3V0cHV0OiAlZWF4Cj4gKyAqIEFjY2VzcyBpcyB2aWEg aHlwZXJjYWxsIHBhZ2UgKHNldCB1cCBieSBndWVzdCBsb2FkZXIgb3IgdmlhIGEgWGVuIE1TUik6 Cj4gKyAqICBjYWxsIGh5cGVyY2FsbF9wYWdlICsgaHlwZXJjYWxsLW51bWJlciAqIDMyCj4gKyAq IENsb2JiZXJlZDogQXJndW1lbnQgcmVnaXN0ZXJzIChlLmcuLCAyLWFyZyBoeXBlcmNhbGwgY2xv YmJlcnMgJWVieCwlZWN4KQo+ICsgKi8KPiArCj4gKy8qCj4gKyAqIFRoZXNlIGZsYXQgc2VnbWVu dHMgYXJlIGluIHRoZSBYZW4tcHJpdmF0ZSBzZWN0aW9uIG9mIGV2ZXJ5IEdEVC4gU2luY2UgdGhl c2UKPiArICogYXJlIGFsc28gcHJlc2VudCBpbiB0aGUgaW5pdGlhbCBHRFQsIG1hbnkgT1NlcyB3 aWxsIGJlIGFibGUgdG8gYXZvaWQKPiArICogaW5zdGFsbGluZyB0aGVpciBvd24gR0RULgo+ICsg Ki8KPiArI2RlZmluZSBGTEFUX1JJTkcxX0NTIDB4ZTAxOSAgICAvKiBHRFQgaW5kZXggMjU5ICov Cj4gKyNkZWZpbmUgRkxBVF9SSU5HMV9EUyAweGUwMjEgICAgLyogR0RUIGluZGV4IDI2MCAqLwo+ ICsjZGVmaW5lIEZMQVRfUklORzFfU1MgMHhlMDIxICAgIC8qIEdEVCBpbmRleCAyNjAgKi8KPiAr I2RlZmluZSBGTEFUX1JJTkczX0NTIDB4ZTAyYiAgICAvKiBHRFQgaW5kZXggMjYxICovCj4gKyNk ZWZpbmUgRkxBVF9SSU5HM19EUyAweGUwMzMgICAgLyogR0RUIGluZGV4IDI2MiAqLwo+ICsjZGVm aW5lIEZMQVRfUklORzNfU1MgMHhlMDMzICAgIC8qIEdEVCBpbmRleCAyNjIgKi8KPiArCj4gKyNk ZWZpbmUgRkxBVF9LRVJORUxfQ1MgRkxBVF9SSU5HMV9DUwo+ICsjZGVmaW5lIEZMQVRfS0VSTkVM X0RTIEZMQVRfUklORzFfRFMKPiArI2RlZmluZSBGTEFUX0tFUk5FTF9TUyBGTEFUX1JJTkcxX1NT Cj4gKyNkZWZpbmUgRkxBVF9VU0VSX0NTICAgIEZMQVRfUklORzNfQ1MKPiArI2RlZmluZSBGTEFU X1VTRVJfRFMgICAgRkxBVF9SSU5HM19EUwo+ICsjZGVmaW5lIEZMQVRfVVNFUl9TUyAgICBGTEFU X1JJTkczX1NTCj4gKwo+ICsjZGVmaW5lIF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRSAgICAw eEY1ODAwMDAwCj4gKyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9TVEFSVF9QQUUgICAgIDB4RjU4 MDAwMDAKPiArI2RlZmluZSBfX01BQ0gyUEhZU19WSVJUX0VORF9QQUUgICAgICAgMHhGNjgwMDAw MAo+ICsjZGVmaW5lIEhZUEVSVklTT1JfVklSVF9TVEFSVF9QQUUgICAgICBcCj4gKyAgICBta191 bnNpZ25lZF9sb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRSkKPiArI2RlZmluZSBNQUNI MlBIWVNfVklSVF9TVEFSVF9QQUUgICAgICAgXAo+ICsgICAgbWtfdW5zaWduZWRfbG9uZyhfX01B Q0gyUEhZU19WSVJUX1NUQVJUX1BBRSkKPiArI2RlZmluZSBNQUNIMlBIWVNfVklSVF9FTkRfUEFF ICAgICAgICAgXAo+ICsgICAgbWtfdW5zaWduZWRfbG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORF9Q QUUpCj4gKwo+ICsvKiBOb24tUEFFIGJvdW5kcyBhcmUgb2Jzb2xldGUuICovCj4gKyNkZWZpbmUg X19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfTk9OUEFFIDB4RkMwMDAwMDAKPiArI2RlZmluZSBfX01B Q0gyUEhZU19WSVJUX1NUQVJUX05PTlBBRSAgMHhGQzAwMDAwMAo+ICsjZGVmaW5lIF9fTUFDSDJQ SFlTX1ZJUlRfRU5EX05PTlBBRSAgICAweEZDNDAwMDAwCj4gKyNkZWZpbmUgSFlQRVJWSVNPUl9W SVJUX1NUQVJUX05PTlBBRSAgIFwKPiArICAgIG1rX3Vuc2lnbmVkX2xvbmcoX19IWVBFUlZJU09S X1ZJUlRfU1RBUlRfTk9OUEFFKQo+ICsjZGVmaW5lIE1BQ0gyUEhZU19WSVJUX1NUQVJUX05PTlBB RSAgICBcCj4gKyAgICBta191bnNpZ25lZF9sb25nKF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlRfTk9O UEFFKQo+ICsjZGVmaW5lIE1BQ0gyUEhZU19WSVJUX0VORF9OT05QQUUgICAgICBcCj4gKyAgICBt a191bnNpZ25lZF9sb25nKF9fTUFDSDJQSFlTX1ZJUlRfRU5EX05PTlBBRSkKPiArCj4gKyNkZWZp bmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlQgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfUEFFCj4g KyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9TVEFSVCAgX19NQUNIMlBIWVNfVklSVF9TVEFSVF9Q QUUKPiArI2RlZmluZSBfX01BQ0gyUEhZU19WSVJUX0VORCAgICBfX01BQ0gyUEhZU19WSVJUX0VO RF9QQUUKPiArCj4gKyNpZm5kZWYgSFlQRVJWSVNPUl9WSVJUX1NUQVJUCj4gKyNkZWZpbmUgSFlQ RVJWSVNPUl9WSVJUX1NUQVJUIG1rX3Vuc2lnbmVkX2xvbmcoX19IWVBFUlZJU09SX1ZJUlRfU1RB UlQpCj4gKyNlbmRpZgo+ICsKPiArI2RlZmluZSBNQUNIMlBIWVNfVklSVF9TVEFSVCAgbWtfdW5z aWduZWRfbG9uZyhfX01BQ0gyUEhZU19WSVJUX1NUQVJUKQo+ICsjZGVmaW5lIE1BQ0gyUEhZU19W SVJUX0VORCAgICBta191bnNpZ25lZF9sb25nKF9fTUFDSDJQSFlTX1ZJUlRfRU5EKQo+ICsjZGVm aW5lIE1BQ0gyUEhZU19OUl9FTlRSSUVTICAoKE1BQ0gyUEhZU19WSVJUX0VORC1NQUNIMlBIWVNf VklSVF9TVEFSVCk+PjIpCj4gKyNpZm5kZWYgbWFjaGluZV90b19waHlzX21hcHBpbmcKPiArI2Rl ZmluZSBtYWNoaW5lX3RvX3BoeXNfbWFwcGluZyAoKFVJTlROICopTUFDSDJQSFlTX1ZJUlRfU1RB UlQpCj4gKyNlbmRpZgo+ICsKPiArLyogMzItLzY0LWJpdCBpbnZhcmlhYmlsaXR5IGZvciBjb250 cm9sIGludGVyZmFjZXMgKGRvbWN0bC9zeXNjdGwpLiAqLwo+ICsjaWYgZGVmaW5lZChfX1hFTl9f KSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCj4gKyN1bmRlZiBfX19ERUZJTkVfWEVOX0dVRVNU X0hBTkRMRQo+ICsjZGVmaW5lIF9fX0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUsIHR5cGUp ICAgICAgICAgICAgICAgICAgXAo+ICsgICAgdHlwZWRlZiBzdHJ1Y3QgeyB0eXBlICpwOyB9ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgIF9fZ3Vlc3RfaGFuZGxl XyAjIyBuYW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgdHlwZWRl ZiBzdHJ1Y3QgeyB1bmlvbiB7IHR5cGUgKnA7IHVpbnQ2NF9hbGlnbmVkX3QgcTsgfTsgfSAgXAo+ ICsgICAgICAgIF9fZ3Vlc3RfaGFuZGxlXzY0XyAjIyBuYW1lCj4gKyN1bmRlZiBzZXRfeGVuX2d1 ZXN0X2hhbmRsZV9yYXcKPiArI2RlZmluZSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcoaG5kLCB2 YWwpICAgICAgICAgICAgICAgICAgXAo+ICsgICAgZG8geyBpZiAoIHNpemVvZihobmQpID09IDgg KSAqKFVJTlQ2NCAqKSYoaG5kKSA9IDA7ICAgXAo+ICsgICAgICAgICAoaG5kKS5wID0gdmFsOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICB9IHdoaWxlICggMCAp Cj4gKyNkZWZpbmUgdWludDY0X2FsaWduZWRfdCBVSU5UNjQgX19hdHRyaWJ1dGVfXygoYWxpZ25l ZCg4KSkpCj4gKyNkZWZpbmUgX19YRU5fR1VFU1RfSEFORExFXzY0KG5hbWUpIF9fZ3Vlc3RfaGFu ZGxlXzY0XyAjIyBuYW1lCj4gKyNkZWZpbmUgWEVOX0dVRVNUX0hBTkRMRV82NChuYW1lKSBfX1hF Tl9HVUVTVF9IQU5ETEVfNjQobmFtZSkKPiArI2VuZGlmCj4gKwo+ICsjaWZuZGVmIF9fQVNTRU1C TFlfXwo+ICsKPiArc3RydWN0IGNwdV91c2VyX3JlZ3Mgewo+ICsgICAgVUlOVDMyIGVieDsKPiAr ICAgIFVJTlQzMiBlY3g7Cj4gKyAgICBVSU5UMzIgZWR4Owo+ICsgICAgVUlOVDMyIGVzaTsKPiAr ICAgIFVJTlQzMiBlZGk7Cj4gKyAgICBVSU5UMzIgZWJwOwo+ICsgICAgVUlOVDMyIGVheDsKPiAr ICAgIFVJTlQxNiBlcnJvcl9jb2RlOyAgICAvKiBwcml2YXRlICovCj4gKyAgICBVSU5UMTYgZW50 cnlfdmVjdG9yOyAgLyogcHJpdmF0ZSAqLwo+ICsgICAgVUlOVDMyIGVpcDsKPiArICAgIFVJTlQx NiBjczsKPiArICAgIFVJTlQ4ICBzYXZlZF91cGNhbGxfbWFzazsKPiArICAgIFVJTlQ4ICBfcGFk MDsKPiArICAgIFVJTlQzMiBlZmxhZ3M7ICAgICAgICAvKiBlZmxhZ3MuSUYgPT0gIXNhdmVkX3Vw Y2FsbF9tYXNrICovCj4gKyAgICBVSU5UMzIgZXNwOwo+ICsgICAgVUlOVDE2IHNzLCBfcGFkMTsK PiArICAgIFVJTlQxNiBlcywgX3BhZDI7Cj4gKyAgICBVSU5UMTYgZHMsIF9wYWQzOwo+ICsgICAg VUlOVDE2IGZzLCBfcGFkNDsKPiArICAgIFVJTlQxNiBncywgX3BhZDU7Cj4gK307Cj4gK3R5cGVk ZWYgc3RydWN0IGNwdV91c2VyX3JlZ3MgY3B1X3VzZXJfcmVnc190Owo+ICtERUZJTkVfWEVOX0dV RVNUX0hBTkRMRShjcHVfdXNlcl9yZWdzX3QpOwo+ICsKPiArLyoKPiArICogUGFnZS1kaXJlY3Rv cnkgYWRkcmVzc2VzIGFib3ZlIDRHQiBkbyBub3QgZml0IGludG8gYXJjaGl0ZWN0dXJhbCAlY3Iz Lgo+ICsgKiBXaGVuIGFjY2Vzc2luZyAlY3IzLCBvciBlcXVpdmFsZW50IGZpZWxkIGluIHZjcHVf Z3Vlc3RfY29udGV4dCwgZ3Vlc3RzCj4gKyAqIG11c3QgdXNlIHRoZSBmb2xsb3dpbmcgYWNjZXNz b3IgbWFjcm9zIHRvIHBhY2svdW5wYWNrIHZhbGlkIE1GTnMuCj4gKyAqLwo+ICsjZGVmaW5lIHhl bl9wZm5fdG9fY3IzKHBmbikgKCgodW5zaWduZWQpKHBmbikgPDwgMTIpIHwgKCh1bnNpZ25lZCko cGZuKSA+PiAyMCkpCj4gKyNkZWZpbmUgeGVuX2NyM190b19wZm4oY3IzKSAoKCh1bnNpZ25lZCko Y3IzKSA+PiAxMikgfCAoKHVuc2lnbmVkKShjcjMpIDw8IDIwKSkKPiArCj4gK3N0cnVjdCBhcmNo X3ZjcHVfaW5mbyB7Cj4gKyAgICBVSU5UTiBjcjI7Cj4gKyAgICBVSU5UTiBwYWRbNV07IC8qIHNp emVvZih2Y3B1X2luZm9fdCkgPT0gNjQgKi8KPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgYXJjaF92 Y3B1X2luZm8gYXJjaF92Y3B1X2luZm9fdDsKPiArCj4gK3N0cnVjdCB4ZW5fY2FsbGJhY2sgewo+ ICsgICAgVUlOVE4gY3M7Cj4gKyAgICBVSU5UTiBlaXA7Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0 IHhlbl9jYWxsYmFjayB4ZW5fY2FsbGJhY2tfdDsKPiArCj4gKyNlbmRpZiAvKiAhX19BU1NFTUJM WV9fICovCj4gKwo+ICsjZW5kaWYgLyogX19YRU5fUFVCTElDX0FSQ0hfWDg2X1hFTl9YODZfMzJf SF9fICovCj4gKwo+ICsvKgo+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4gKyAqIG1vZGU6IEMKPiAr ICogYy1maWxlLXN0eWxlOiAiQlNEIgo+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+ICsgKiB0YWIt d2lkdGg6IDQKPiArICogaW5kZW50LXRhYnMtbW9kZTogbmlsCj4gKyAqIEVuZDoKPiArICovCj4g ZGlmZiAtLWdpdCBhL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9hcmNoLXg4 Ni94ZW4teDg2XzY0LmggYi9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vYXJj aC14ODYveGVuLXg4Nl82NC5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAw Li43ZmNmNjhkCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL092bWZQa2cvSW5jbHVkZS9JbmR1c3Ry eVN0YW5kYXJkL1hlbi9hcmNoLXg4Ni94ZW4teDg2XzY0LmgKPiBAQCAtMCwwICsxLDIwMiBAQAo+ ICsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqIHhlbi14ODZfNjQuaAo+ICsgKiAKPiArICog R3Vlc3QgT1MgaW50ZXJmYWNlIHRvIHg4NiA2NC1iaXQgWGVuLgo+ICsgKiAKPiArICogUGVybWlz c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0 YWluaW5nIGEgY29weQo+ICsgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPiArICogZGVhbCBpbiB0aGUgU29m dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0 aGUKPiArICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlz dHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCj4gKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0 d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCj4gKyAq IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3Rh bnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUg SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVT UyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCj4gKyAq IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB TUFHRVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD T05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9S IElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgo+ICsg KiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIENvcHlyaWdodCAoYykgMjAw NC0yMDA2LCBLIEEgRnJhc2VyCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBfX1hFTl9QVUJMSUNfQVJD SF9YODZfWEVOX1g4Nl82NF9IX18KPiArI2RlZmluZSBfX1hFTl9QVUJMSUNfQVJDSF9YODZfWEVO X1g4Nl82NF9IX18KPiArCj4gKy8qCj4gKyAqIEh5cGVyY2FsbCBpbnRlcmZhY2U6Cj4gKyAqICBJ bnB1dDogICVyZGksICVyc2ksICVyZHgsICVyMTAsICVyOCwgJXI5IChhcmd1bWVudHMgMS02KQo+ ICsgKiAgT3V0cHV0OiAlcmF4Cj4gKyAqIEFjY2VzcyBpcyB2aWEgaHlwZXJjYWxsIHBhZ2UgKHNl dCB1cCBieSBndWVzdCBsb2FkZXIgb3IgdmlhIGEgWGVuIE1TUik6Cj4gKyAqICBjYWxsIGh5cGVy Y2FsbF9wYWdlICsgaHlwZXJjYWxsLW51bWJlciAqIDMyCj4gKyAqIENsb2JiZXJlZDogYXJndW1l bnQgcmVnaXN0ZXJzIChlLmcuLCAyLWFyZyBoeXBlcmNhbGwgY2xvYmJlcnMgJXJkaSwlcnNpKQo+ ICsgKi8KPiArCj4gKy8qCj4gKyAqIDY0LWJpdCBzZWdtZW50IHNlbGVjdG9ycwo+ICsgKiBUaGVz ZSBmbGF0IHNlZ21lbnRzIGFyZSBpbiB0aGUgWGVuLXByaXZhdGUgc2VjdGlvbiBvZiBldmVyeSBH RFQuIFNpbmNlIHRoZXNlCj4gKyAqIGFyZSBhbHNvIHByZXNlbnQgaW4gdGhlIGluaXRpYWwgR0RU LCBtYW55IE9TZXMgd2lsbCBiZSBhYmxlIHRvIGF2b2lkCj4gKyAqIGluc3RhbGxpbmcgdGhlaXIg b3duIEdEVC4KPiArICovCj4gKwo+ICsjZGVmaW5lIEZMQVRfUklORzNfQ1MzMiAweGUwMjMgIC8q IEdEVCBpbmRleCAyNjAgKi8KPiArI2RlZmluZSBGTEFUX1JJTkczX0NTNjQgMHhlMDMzICAvKiBH RFQgaW5kZXggMjYxICovCj4gKyNkZWZpbmUgRkxBVF9SSU5HM19EUzMyIDB4ZTAyYiAgLyogR0RU IGluZGV4IDI2MiAqLwo+ICsjZGVmaW5lIEZMQVRfUklORzNfRFM2NCAweDAwMDAgIC8qIE5VTEwg c2VsZWN0b3IgKi8KPiArI2RlZmluZSBGTEFUX1JJTkczX1NTMzIgMHhlMDJiICAvKiBHRFQgaW5k ZXggMjYyICovCj4gKyNkZWZpbmUgRkxBVF9SSU5HM19TUzY0IDB4ZTAyYiAgLyogR0RUIGluZGV4 IDI2MiAqLwo+ICsKPiArI2RlZmluZSBGTEFUX0tFUk5FTF9EUzY0IEZMQVRfUklORzNfRFM2NAo+ ICsjZGVmaW5lIEZMQVRfS0VSTkVMX0RTMzIgRkxBVF9SSU5HM19EUzMyCj4gKyNkZWZpbmUgRkxB VF9LRVJORUxfRFMgICBGTEFUX0tFUk5FTF9EUzY0Cj4gKyNkZWZpbmUgRkxBVF9LRVJORUxfQ1M2 NCBGTEFUX1JJTkczX0NTNjQKPiArI2RlZmluZSBGTEFUX0tFUk5FTF9DUzMyIEZMQVRfUklORzNf Q1MzMgo+ICsjZGVmaW5lIEZMQVRfS0VSTkVMX0NTICAgRkxBVF9LRVJORUxfQ1M2NAo+ICsjZGVm aW5lIEZMQVRfS0VSTkVMX1NTNjQgRkxBVF9SSU5HM19TUzY0Cj4gKyNkZWZpbmUgRkxBVF9LRVJO RUxfU1MzMiBGTEFUX1JJTkczX1NTMzIKPiArI2RlZmluZSBGTEFUX0tFUk5FTF9TUyAgIEZMQVRf S0VSTkVMX1NTNjQKPiArCj4gKyNkZWZpbmUgRkxBVF9VU0VSX0RTNjQgRkxBVF9SSU5HM19EUzY0 Cj4gKyNkZWZpbmUgRkxBVF9VU0VSX0RTMzIgRkxBVF9SSU5HM19EUzMyCj4gKyNkZWZpbmUgRkxB VF9VU0VSX0RTICAgRkxBVF9VU0VSX0RTNjQKPiArI2RlZmluZSBGTEFUX1VTRVJfQ1M2NCBGTEFU X1JJTkczX0NTNjQKPiArI2RlZmluZSBGTEFUX1VTRVJfQ1MzMiBGTEFUX1JJTkczX0NTMzIKPiAr I2RlZmluZSBGTEFUX1VTRVJfQ1MgICBGTEFUX1VTRVJfQ1M2NAo+ICsjZGVmaW5lIEZMQVRfVVNF Ul9TUzY0IEZMQVRfUklORzNfU1M2NAo+ICsjZGVmaW5lIEZMQVRfVVNFUl9TUzMyIEZMQVRfUklO RzNfU1MzMgo+ICsjZGVmaW5lIEZMQVRfVVNFUl9TUyAgIEZMQVRfVVNFUl9TUzY0Cj4gKwo+ICsj ZGVmaW5lIF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUIDB4RkZGRjgwMDAwMDAwMDAwMAo+ICsjZGVm aW5lIF9fSFlQRVJWSVNPUl9WSVJUX0VORCAgIDB4RkZGRjg4MDAwMDAwMDAwMAo+ICsjZGVmaW5l IF9fTUFDSDJQSFlTX1ZJUlRfU1RBUlQgIDB4RkZGRjgwMDAwMDAwMDAwMAo+ICsjZGVmaW5lIF9f TUFDSDJQSFlTX1ZJUlRfRU5EICAgIDB4RkZGRjgwNDAwMDAwMDAwMAo+ICsKPiArI2lmbmRlZiBI WVBFUlZJU09SX1ZJUlRfU1RBUlQKPiArI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfU1RBUlQgbWtf dW5zaWduZWRfbG9uZyhfX0hZUEVSVklTT1JfVklSVF9TVEFSVCkKPiArI2RlZmluZSBIWVBFUlZJ U09SX1ZJUlRfRU5EICAgbWtfdW5zaWduZWRfbG9uZyhfX0hZUEVSVklTT1JfVklSVF9FTkQpCj4g KyNlbmRpZgo+ICsKPiArI2RlZmluZSBNQUNIMlBIWVNfVklSVF9TVEFSVCAgbWtfdW5zaWduZWRf bG9uZyhfX01BQ0gyUEhZU19WSVJUX1NUQVJUKQo+ICsjZGVmaW5lIE1BQ0gyUEhZU19WSVJUX0VO RCAgICBta191bnNpZ25lZF9sb25nKF9fTUFDSDJQSFlTX1ZJUlRfRU5EKQo+ICsjZGVmaW5lIE1B Q0gyUEhZU19OUl9FTlRSSUVTICAoKE1BQ0gyUEhZU19WSVJUX0VORC1NQUNIMlBIWVNfVklSVF9T VEFSVCk+PjMpCj4gKyNpZm5kZWYgbWFjaGluZV90b19waHlzX21hcHBpbmcKPiArI2RlZmluZSBt YWNoaW5lX3RvX3BoeXNfbWFwcGluZyAoKFVJTlROICopSFlQRVJWSVNPUl9WSVJUX1NUQVJUKQo+ ICsjZW5kaWYKPiArCj4gKy8qCj4gKyAqIElOVDMyIEhZUEVSVklTT1Jfc2V0X3NlZ21lbnRfYmFz ZShVSU5UMzIgd2hpY2gsIFVJTlROIGJhc2UpCj4gKyAqICBAd2hpY2ggPT0gU0VHQkFTRV8qICA7 ICBAYmFzZSA9PSA2NC1iaXQgYmFzZSBhZGRyZXNzCj4gKyAqIFJldHVybnMgMCBvbiBzdWNjZXNz Lgo+ICsgKi8KPiArI2RlZmluZSBTRUdCQVNFX0ZTICAgICAgICAgIDAKPiArI2RlZmluZSBTRUdC QVNFX0dTX1VTRVIgICAgIDEKPiArI2RlZmluZSBTRUdCQVNFX0dTX0tFUk5FTCAgIDIKPiArI2Rl ZmluZSBTRUdCQVNFX0dTX1VTRVJfU0VMIDMgLyogU2V0IHVzZXIgJWdzIHNwZWNpZmllZCBpbiBi YXNlWzE1OjBdICovCj4gKwo+ICsvKgo+ICsgKiBJTlQzMiBIWVBFUlZJU09SX2lyZXQoVk9JRCkK PiArICogQWxsIGFyZ3VtZW50cyBhcmUgb24gdGhlIGtlcm5lbCBzdGFjaywgaW4gdGhlIGZvbGxv d2luZyBmb3JtYXQuCj4gKyAqIE5ldmVyIHJldHVybnMgaWYgc3VjY2Vzc2Z1bC4gQ3VycmVudCBr ZXJuZWwgY29udGV4dCBpcyBsb3N0Lgo+ICsgKiBUaGUgc2F2ZWQgQ1MgaXMgbWFwcGVkIGFzIGZv bGxvd3M6Cj4gKyAqICAgUklORzAgLT4gUklORzMga2VybmVsIG1vZGUuCj4gKyAqICAgUklORzEg LT4gUklORzMga2VybmVsIG1vZGUuCj4gKyAqICAgUklORzIgLT4gUklORzMga2VybmVsIG1vZGUu Cj4gKyAqICAgUklORzMgLT4gUklORzMgdXNlciBtb2RlLgo+ICsgKiBIb3dldmVyIFJJTkcwIGlu ZGljYXRlcyB0aGF0IHRoZSBndWVzdCBrZXJuZWwgc2hvdWxkIHJldHVybiB0byBpdGVzZWxmCj4g KyAqIGRpcmVjdGx5IHdpdGgKPiArICogICAgICBvcmIgICAkMywxKjgoJXJzcCkKPiArICogICAg ICBpcmV0cQo+ICsgKiBJZiBmbGFncyBjb250YWlucyBWR0NGX2luX3N5c2NhbGw6Cj4gKyAqICAg UmVzdG9yZSBSQVgsIFJJUCwgUkZMQUdTLCBSU1AuCj4gKyAqICAgRGlzY2FyZCBSMTEsIFJDWCwg Q1MsIFNTLgo+ICsgKiBPdGhlcndpc2U6Cj4gKyAqICAgUmVzdG9yZSBSQVgsIFIxMSwgUkNYLCBD UzpSSVAsIFJGTEFHUywgU1M6UlNQLgo+ICsgKiBBbGwgb3RoZXIgcmVnaXN0ZXJzIGFyZSBzYXZl ZCBvbiBoeXBlcmNhbGwgZW50cnkgYW5kIHJlc3RvcmVkIHRvIHVzZXIuCj4gKyAqLwo+ICsvKiBH dWVzdCBleGl0ZWQgaW4gU1lTQ0FMTCBjb250ZXh0PyBSZXR1cm4gdG8gZ3Vlc3Qgd2l0aCBTWVNS RVQ/ICovCj4gKyNkZWZpbmUgX1ZHQ0ZfaW5fc3lzY2FsbCA4Cj4gKyNkZWZpbmUgVkdDRl9pbl9z eXNjYWxsICAoMTw8X1ZHQ0ZfaW5fc3lzY2FsbCkKPiArI2RlZmluZSBWR0NGX0lOX1NZU0NBTEwg IFZHQ0ZfaW5fc3lzY2FsbAo+ICsKPiArI2lmbmRlZiBfX0FTU0VNQkxZX18KPiArCj4gK3N0cnVj dCBpcmV0X2NvbnRleHQgewo+ICsgICAgLyogVG9wIG9mIHN0YWNrICglcnNwIGF0IHBvaW50IG9m IGh5cGVyY2FsbCkuICovCj4gKyAgICBVSU5UNjQgcmF4LCByMTEsIHJjeCwgZmxhZ3MsIHJpcCwg Y3MsIHJmbGFncywgcnNwLCBzczsKPiArICAgIC8qIEJvdHRvbSBvZiBpcmV0IHN0YWNrIGZyYW1l LiAqLwo+ICt9Owo+ICsKPiArI2lmIGRlZmluZWQoX19HTlVDX18pICYmICFkZWZpbmVkKF9fU1RS SUNUX0FOU0lfXykKPiArLyogQW5vbnltb3VzIHVuaW9uIGluY2x1ZGVzIGJvdGggMzItIGFuZCA2 NC1iaXQgbmFtZXMgKGUuZy4sIGVheC9yYXgpLiAqLwo+ICsjZGVmaW5lIF9fREVDTF9SRUcobmFt ZSkgdW5pb24geyBcCj4gKyAgICBVSU5UNjQgciAjIyBuYW1lLCBlICMjIG5hbWU7IFwKPiArICAg IFVJTlQzMiBfZSAjIyBuYW1lOyBcCj4gK30KPiArI2Vsc2UKPiArLyogTm9uLWdjYyBzb3VyY2Vz IG11c3QgYWx3YXlzIHVzZSB0aGUgcHJvcGVyIDY0LWJpdCBuYW1lIChlLmcuLCByYXgpLiAqLwo+ ICsjZGVmaW5lIF9fREVDTF9SRUcobmFtZSkgVUlOVDY0IHIgIyMgbmFtZQo+ICsjZW5kaWYKPiAr Cj4gK3N0cnVjdCBjcHVfdXNlcl9yZWdzIHsKPiArICAgIFVJTlQ2NCByMTU7Cj4gKyAgICBVSU5U NjQgcjE0Owo+ICsgICAgVUlOVDY0IHIxMzsKPiArICAgIFVJTlQ2NCByMTI7Cj4gKyAgICBfX0RF Q0xfUkVHKGJwKTsKPiArICAgIF9fREVDTF9SRUcoYngpOwo+ICsgICAgVUlOVDY0IHIxMTsKPiAr ICAgIFVJTlQ2NCByMTA7Cj4gKyAgICBVSU5UNjQgcjk7Cj4gKyAgICBVSU5UNjQgcjg7Cj4gKyAg ICBfX0RFQ0xfUkVHKGF4KTsKPiArICAgIF9fREVDTF9SRUcoY3gpOwo+ICsgICAgX19ERUNMX1JF RyhkeCk7Cj4gKyAgICBfX0RFQ0xfUkVHKHNpKTsKPiArICAgIF9fREVDTF9SRUcoZGkpOwo+ICsg ICAgVUlOVDMyIGVycm9yX2NvZGU7ICAgIC8qIHByaXZhdGUgKi8KPiArICAgIFVJTlQzMiBlbnRy eV92ZWN0b3I7ICAvKiBwcml2YXRlICovCj4gKyAgICBfX0RFQ0xfUkVHKGlwKTsKPiArICAgIFVJ TlQxNiBjcywgX3BhZDBbMV07Cj4gKyAgICBVSU5UOCAgc2F2ZWRfdXBjYWxsX21hc2s7Cj4gKyAg ICBVSU5UOCAgX3BhZDFbM107Cj4gKyAgICBfX0RFQ0xfUkVHKGZsYWdzKTsgICAgICAvKiByZmxh Z3MuSUYgPT0gIXNhdmVkX3VwY2FsbF9tYXNrICovCj4gKyAgICBfX0RFQ0xfUkVHKHNwKTsKPiAr ICAgIFVJTlQxNiBzcywgX3BhZDJbM107Cj4gKyAgICBVSU5UMTYgZXMsIF9wYWQzWzNdOwo+ICsg ICAgVUlOVDE2IGRzLCBfcGFkNFszXTsKPiArICAgIFVJTlQxNiBmcywgX3BhZDVbM107IC8qIE5v bi16ZXJvID0+IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBmc19iYXNlLiAgICAgKi8KPiArICAgIFVJ TlQxNiBncywgX3BhZDZbM107IC8qIE5vbi16ZXJvID0+IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBn c19iYXNlX3Vzci4gKi8KPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgY3B1X3VzZXJfcmVncyBjcHVf dXNlcl9yZWdzX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKGNwdV91c2VyX3JlZ3NfdCk7 Cj4gKwo+ICsjdW5kZWYgX19ERUNMX1JFRwo+ICsKPiArI2RlZmluZSB4ZW5fcGZuX3RvX2NyMyhw Zm4pICgoVUlOVE4pKHBmbikgPDwgMTIpCj4gKyNkZWZpbmUgeGVuX2NyM190b19wZm4oY3IzKSAo KFVJTlROKShjcjMpID4+IDEyKQo+ICsKPiArc3RydWN0IGFyY2hfdmNwdV9pbmZvIHsKPiArICAg IFVJTlROIGNyMjsKPiArICAgIFVJTlROIHBhZDsgLyogc2l6ZW9mKHZjcHVfaW5mb190KSA9PSA2 NCAqLwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCBhcmNoX3ZjcHVfaW5mbyBhcmNoX3ZjcHVfaW5m b190Owo+ICsKPiArdHlwZWRlZiBVSU5UTiB4ZW5fY2FsbGJhY2tfdDsKPiArCj4gKyNlbmRpZiAv KiAhX19BU1NFTUJMWV9fICovCj4gKwo+ICsjZW5kaWYgLyogX19YRU5fUFVCTElDX0FSQ0hfWDg2 X1hFTl9YODZfNjRfSF9fICovCj4gKwo+ICsvKgo+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4gKyAq IG1vZGU6IEMKPiArICogYy1maWxlLXN0eWxlOiAiQlNEIgo+ICsgKiBjLWJhc2ljLW9mZnNldDog NAo+ICsgKiB0YWItd2lkdGg6IDQKPiArICogaW5kZW50LXRhYnMtbW9kZTogbmlsCj4gKyAqIEVu ZDoKPiArICovCj4gZGlmZiAtLWdpdCBhL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJk L1hlbi9hcmNoLXg4Ni94ZW4uaCBiL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hl bi9hcmNoLXg4Ni94ZW4uaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4u ZTI5MDZmMAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlT dGFuZGFyZC9YZW4vYXJjaC14ODYveGVuLmgKPiBAQCAtMCwwICsxLDI3MyBAQAo+ICsvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCj4gKyAqIGFyY2gteDg2L3hlbi5oCj4gKyAqIAo+ICsgKiBHdWVzdCBP UyBpbnRlcmZhY2UgdG8geDg2IFhlbi4KPiArICogCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5 IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkK PiArICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksIHRvCj4gKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCj4gKyAqIHJpZ2h0 cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsIGFuZC9vcgo+ICsgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBw ZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwo+ICsgKiBmdXJuaXNoZWQgdG8g ZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ICsgKgo+ICsgKiBU aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFs bCBiZSBpbmNsdWRlZCBpbgo+ICsgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z IG9mIHRoZSBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJB UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1Q TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO T05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQo+ICsgKiBBVVRIT1JTIE9SIENP UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVS Cj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg T1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiArICogREVBTElOR1MgSU4g VEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMDQtMjAwNiwgSyBBIEZy YXNlcgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlICIuLi94ZW4uaCIKPiArCj4gKyNpZm5kZWYgX19Y RU5fUFVCTElDX0FSQ0hfWDg2X1hFTl9IX18KPiArI2RlZmluZSBfX1hFTl9QVUJMSUNfQVJDSF9Y ODZfWEVOX0hfXwo+ICsKPiArLyogU3RydWN0dXJhbCBndWVzdCBoYW5kbGVzIGludHJvZHVjZWQg aW4gMHgwMDAzMDIwMS4gKi8KPiArI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPj0gMHgw MDAzMDIwMQo+ICsjZGVmaW5lIF9fX0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUsIHR5cGUp IFwKPiArICAgIHR5cGVkZWYgc3RydWN0IHsgdHlwZSAqcDsgfSBfX2d1ZXN0X2hhbmRsZV8gIyMg bmFtZQo+ICsjZWxzZQo+ICsjZGVmaW5lIF9fX0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUs IHR5cGUpIFwKPiArICAgIHR5cGVkZWYgdHlwZSAqIF9fZ3Vlc3RfaGFuZGxlXyAjIyBuYW1lCj4g KyNlbmRpZgo+ICsKPiArLyoKPiArICogWEVOX0dVRVNUX0hBTkRMRSByZXByZXNlbnRzIGEgZ3Vl c3QgcG9pbnRlciwgd2hlbiBwYXNzZWQgYXMgYSBmaWVsZAo+ICsgKiBpbiBhIHN0cnVjdCBpbiBt ZW1vcnkuCj4gKyAqIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0gcmVwcmVzZW50IGEgZ3Vlc3QgcG9p bnRlciwgd2hlbiBwYXNzZWQgYXMgYW4KPiArICogaHlwZXJjYWxsIGFyZ3VtZW50Lgo+ICsgKiBY RU5fR1VFU1RfSEFORExFX1BBUkFNIGFuZCBYRU5fR1VFU1RfSEFORExFIGFyZSB0aGUgc2FtZSBv biBYODYgYnV0Cj4gKyAqIHRoZXkgbWlnaHQgbm90IGJlIG9uIG90aGVyIGFyY2hpdGVjdHVyZXMu Cj4gKyAqLwo+ICsjZGVmaW5lIF9fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUobmFtZSwgdHlwZSkg XAo+ICsgICAgX19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUobmFtZSwgdHlwZSk7ICAgXAo+ICsg ICAgX19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoY29uc3RfIyNuYW1lLCBjb25zdCB0eXBlKQo+ ICsjZGVmaW5lIERFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUpICAgX19ERUZJTkVfWEVOX0dV RVNUX0hBTkRMRShuYW1lLCBuYW1lKQo+ICsjZGVmaW5lIF9fWEVOX0dVRVNUX0hBTkRMRShuYW1l KSAgICAgICAgX19ndWVzdF9oYW5kbGVfICMjIG5hbWUKPiArI2RlZmluZSBYRU5fR1VFU1RfSEFO RExFKG5hbWUpICAgICAgICAgIF9fWEVOX0dVRVNUX0hBTkRMRShuYW1lKQo+ICsjZGVmaW5lIFhF Tl9HVUVTVF9IQU5ETEVfUEFSQU0obmFtZSkgICAgWEVOX0dVRVNUX0hBTkRMRShuYW1lKQo+ICsj ZGVmaW5lIHNldF94ZW5fZ3Vlc3RfaGFuZGxlX3JhdyhobmQsIHZhbCkgIGRvIHsgKGhuZCkucCA9 IHZhbDsgfSB3aGlsZSAoMCkKPiArI2lmZGVmIF9fWEVOX1RPT0xTX18KPiArI2RlZmluZSBnZXRf eGVuX2d1ZXN0X2hhbmRsZSh2YWwsIGhuZCkgIGRvIHsgdmFsID0gKGhuZCkucDsgfSB3aGlsZSAo MCkKPiArI2VuZGlmCj4gKyNkZWZpbmUgc2V0X3hlbl9ndWVzdF9oYW5kbGUoaG5kLCB2YWwpIHNl dF94ZW5fZ3Vlc3RfaGFuZGxlX3JhdyhobmQsIHZhbCkKPiArCj4gKyNpZiBkZWZpbmVkKF9faTM4 Nl9fKQo+ICsjaW5jbHVkZSAieGVuLXg4Nl8zMi5oIgo+ICsjZWxpZiBkZWZpbmVkKF9feDg2XzY0 X18pCj4gKyNpbmNsdWRlICJ4ZW4teDg2XzY0LmgiCj4gKyNlbmRpZgo+ICsKPiArI2lmbmRlZiBf X0FTU0VNQkxZX18KPiArdHlwZWRlZiBVSU5UTiB4ZW5fcGZuX3Q7Cj4gKyNkZWZpbmUgUFJJX3hl bl9wZm4gImx4Igo+ICsjZW5kaWYKPiArCj4gKyNkZWZpbmUgWEVOX0hBVkVfUFZfR1VFU1RfRU5U UlkgMQo+ICsKPiArI2RlZmluZSBYRU5fSEFWRV9QVl9VUENBTExfTUFTSyAxCj4gKwo+ICsvKgo+ ICsgKiBgaW5jb250ZW50cyAyMDAgc2VnZGVzYyBTZWdtZW50IERlc2NyaXB0b3IgVGFibGVzCj4g KyAqLwo+ICsvKgo+ICsgKiBgIGVudW0gbmVnX2Vycm5vdmFsCj4gKyAqIGAgSFlQRVJWSVNPUl9z ZXRfZ2R0KGNvbnN0IHhlbl9wZm5fdCBmcmFtZXNbXSwgVUlOVDMyIGVudHJpZXMpOwo+ICsgKiBg Cj4gKyAqLwo+ICsvKgo+ICsgKiBBIG51bWJlciBvZiBHRFQgZW50cmllcyBhcmUgcmVzZXJ2ZWQg YnkgWGVuLiBUaGVzZSBhcmUgbm90IHNpdHVhdGVkIGF0IHRoZQo+ICsgKiBzdGFydCBvZiB0aGUg R0RUIGJlY2F1c2Ugc29tZSBzdHVwaWQgT1NlcyBleHBvcnQgaGFyZC1jb2RlZCBzZWxlY3RvciB2 YWx1ZXMKPiArICogaW4gdGhlaXIgQUJJLiBUaGVzZSBoYXJkLWNvZGVkIHZhbHVlcyBhcmUgYWx3 YXlzIG5lYXIgdGhlIHN0YXJ0IG9mIHRoZSBHRFQsCj4gKyAqIHNvIFhlbiBwbGFjZXMgaXRzZWxm IG91dCBvZiB0aGUgd2F5LCBhdCB0aGUgZmFyIGVuZCBvZiB0aGUgR0RULgo+ICsgKgo+ICsgKiBO QiBUaGUgTERUIGlzIHNldCB1c2luZyB0aGUgTU1VRVhUX1NFVF9MRFQgb3Agb2YgSFlQRVJWSVNP Ul9tbXVleHRfb3AKPiArICovCj4gKyNkZWZpbmUgRklSU1RfUkVTRVJWRURfR0RUX1BBR0UgIDE0 Cj4gKyNkZWZpbmUgRklSU1RfUkVTRVJWRURfR0RUX0JZVEUgIChGSVJTVF9SRVNFUlZFRF9HRFRf UEFHRSAqIDQwOTYpCj4gKyNkZWZpbmUgRklSU1RfUkVTRVJWRURfR0RUX0VOVFJZIChGSVJTVF9S RVNFUlZFRF9HRFRfQllURSAvIDgpCj4gKwo+ICsKPiArLyoKPiArICogYCBlbnVtIG5lZ19lcnJu b3ZhbAo+ICsgKiBgIEhZUEVSVklTT1JfdXBkYXRlX2Rlc2NyaXB0b3IodTY0IHBhLCB1NjQgZGVz Yyk7Cj4gKyAqIGAKPiArICogYCBAcGEgICBUaGUgbWFjaGluZSBwaHlzaWNhbCBhZGRyZXNzIG9m IHRoZSBkZXNjcmlwdG9yIHRvCj4gKyAqIGAgICAgICAgdXBkYXRlLiBNdXN0IGJlIGVpdGhlciBh IGRlc2NyaXB0b3IgcGFnZSBvciB3cml0YWJsZS4KPiArICogYCBAZGVzYyBUaGUgZGVzY3JpcHRv ciB2YWx1ZSB0byB1cGRhdGUsIGluIHRoZSBzYW1lIGZvcm1hdCBhcyBhCj4gKyAqIGAgICAgICAg bmF0aXZlIGRlc2NyaXB0b3IgdGFibGUgZW50cnkuCj4gKyAqLwo+ICsKPiArLyogTWF4aW11bSBu dW1iZXIgb2YgdmlydHVhbCBDUFVzIGluIGxlZ2FjeSBtdWx0aS1wcm9jZXNzb3IgZ3Vlc3RzLiAq Lwo+ICsjZGVmaW5lIFhFTl9MRUdBQ1lfTUFYX1ZDUFVTIDMyCj4gKwo+ICsjaWZuZGVmIF9fQVNT RU1CTFlfXwo+ICsKPiArdHlwZWRlZiBVSU5UTiB4ZW5fdWxvbmdfdDsKPiArI2RlZmluZSBQUklf eGVuX3Vsb25nICJseCIKPiArCj4gKy8qCj4gKyAqIGAgZW51bSBuZWdfZXJybm92YWwKPiArICog YCBIWVBFUlZJU09SX3N0YWNrX3N3aXRjaChVSU5UTiBzcywgVUlOVE4gZXNwKTsKPiArICogYAo+ ICsgKiBTZXRzIHRoZSBzdGFjayBzZWdtZW50IGFuZCBwb2ludGVyIGZvciB0aGUgY3VycmVudCB2 Y3B1Lgo+ICsgKi8KPiArCj4gKy8qCj4gKyAqIGAgZW51bSBuZWdfZXJybm92YWwKPiArICogYCBI WVBFUlZJU09SX3NldF90cmFwX3RhYmxlKGNvbnN0IHN0cnVjdCB0cmFwX2luZm8gdHJhcHNbXSk7 Cj4gKyAqIGAKPiArICovCj4gKy8qCj4gKyAqIFNlbmQgYW4gYXJyYXkgb2YgdGhlc2UgdG8gSFlQ RVJWSVNPUl9zZXRfdHJhcF90YWJsZSgpLgo+ICsgKiBUZXJtaW5hdGUgdGhlIGFycmF5IHdpdGgg YSBzZW50aW5lbCBlbnRyeSwgd2l0aCB0cmFwc1tdLmFkZHJlc3M9PTAuCj4gKyAqIFRoZSBwcml2 aWxlZ2UgbGV2ZWwgc3BlY2lmaWVzIHdoaWNoIG1vZGVzIG1heSBlbnRlciBhIHRyYXAgdmlhIGEg c29mdHdhcmUKPiArICogaW50ZXJydXB0LiBPbiB4ODYvNjQsIHNpbmNlIHJpbmdzIDEgYW5kIDIg YXJlIHVuYXZhaWxhYmxlLCB3ZSBhbGxvY2F0ZQo+ICsgKiBwcml2aWxlZ2UgbGV2ZWxzIGFzIGZv bGxvd3M6Cj4gKyAqICBMZXZlbCA9PSAwOiBOb29uZSBtYXkgZW50ZXIKPiArICogIExldmVsID09 IDE6IEtlcm5lbCBtYXkgZW50ZXIKPiArICogIExldmVsID09IDI6IEtlcm5lbCBtYXkgZW50ZXIK PiArICogIExldmVsID09IDM6IEV2ZXJ5b25lIG1heSBlbnRlcgo+ICsgKi8KPiArI2RlZmluZSBU SV9HRVRfRFBMKF90aSkgICAgICAoKF90aSktPmZsYWdzICYgMykKPiArI2RlZmluZSBUSV9HRVRf SUYoX3RpKSAgICAgICAoKF90aSktPmZsYWdzICYgNCkKPiArI2RlZmluZSBUSV9TRVRfRFBMKF90 aSxfZHBsKSAoKF90aSktPmZsYWdzIHw9IChfZHBsKSkKPiArI2RlZmluZSBUSV9TRVRfSUYoX3Rp LF9pZikgICAoKF90aSktPmZsYWdzIHw9ICgoISEoX2lmKSk8PDIpKQo+ICtzdHJ1Y3QgdHJhcF9p bmZvIHsKPiArICAgIFVJTlQ4ICAgICAgIHZlY3RvcjsgIC8qIGV4Y2VwdGlvbiB2ZWN0b3IgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqLwo+ICsgICAgVUlOVDggICAgICAgZmxhZ3M7ICAg LyogMC0zOiBwcml2aWxlZ2UgbGV2ZWw7IDQ6IGNsZWFyIGV2ZW50IGVuYWJsZT8gICovCj4gKyAg ICBVSU5UMTYgICAgICBjczsgICAgICAvKiBjb2RlIHNlbGVjdG9yICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKi8KPiArICAgIFVJTlROIGFkZHJlc3M7IC8qIGNvZGUgb2Zmc2V0ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVj dCB0cmFwX2luZm8gdHJhcF9pbmZvX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHRyYXBf aW5mb190KTsKPiArCj4gK3R5cGVkZWYgVUlOVDY0IHRzY190aW1lc3RhbXBfdDsgLyogUkRUU0Mg dGltZXN0YW1wICovCj4gKwo+ICsvKgo+ICsgKiBUaGUgZm9sbG93aW5nIGlzIGFsbCBDUFUgY29u dGV4dC4gTm90ZSB0aGF0IHRoZSBmcHVfY3R4dCBibG9jayBpcyBmaWxsZWQgCj4gKyAqIGluIGJ5 IEZYU0FWRSBpZiB0aGUgQ1BVIGhhcyBmZWF0dXJlIEZYU1I7IG90aGVyd2lzZSBGU0FWRSBpcyB1 c2VkLgo+ICsgKgo+ICsgKiBBbHNvIG5vdGUgdGhhdCB3aGVuIGNhbGxpbmcgRE9NQ1RMX3NldHZj cHVjb250ZXh0IGFuZCBWQ1BVX2luaXRpYWxpc2UKPiArICogZm9yIEhWTSBhbmQgUFZIIGd1ZXN0 cywgbm90IGFsbCBpbmZvcm1hdGlvbiBpbiB0aGlzIHN0cnVjdHVyZSBpcyB1cGRhdGVkOgo+ICsg Kgo+ICsgKiAtIEZvciBIVk0gZ3Vlc3RzLCB0aGUgc3RydWN0dXJlcyByZWFkIGluY2x1ZGU6IGZw dV9jdHh0IChpZgo+ICsgKiBWR0NUX0kzODdfVkFMSUQgaXMgc2V0KSwgZmxhZ3MsIHVzZXJfcmVn cywgZGVidWdyZWdbKl0KPiArICoKPiArICogLSBQVkggZ3Vlc3RzIGFyZSB0aGUgc2FtZSBhcyBI Vk0gZ3Vlc3RzLCBidXQgYWRkaXRpb25hbGx5IHVzZSBjdHJscmVnWzNdIHRvCj4gKyAqIHNldCBj cjMuIEFsbCBvdGhlciBmaWVsZHMgbm90IHVzZWQgc2hvdWxkIGJlIHNldCB0byAwLgo+ICsgKi8K PiArc3RydWN0IHZjcHVfZ3Vlc3RfY29udGV4dCB7Cj4gKyAgICAvKiBGUFUgcmVnaXN0ZXJzIGNv bWUgZmlyc3Qgc28gdGhleSBjYW4gYmUgYWxpZ25lZCBmb3IgRlhTQVZFL0ZYUlNUT1IuICovCj4g KyAgICBzdHJ1Y3QgeyBDSEFSOCB4WzUxMl07IH0gZnB1X2N0eHQ7ICAgICAgIC8qIFVzZXItbGV2 ZWwgRlBVIHJlZ2lzdGVycyAgICAgKi8KPiArI2RlZmluZSBWR0NGX0kzODdfVkFMSUQgICAgICAg ICAgICAgICAgKDE8PDApCj4gKyNkZWZpbmUgVkdDRl9JTl9LRVJORUwgICAgICAgICAgICAgICAg ICgxPDwyKQo+ICsjZGVmaW5lIF9WR0NGX2kzODdfdmFsaWQgICAgICAgICAgICAgICAwCj4gKyNk ZWZpbmUgVkdDRl9pMzg3X3ZhbGlkICAgICAgICAgICAgICAgICgxPDxfVkdDRl9pMzg3X3ZhbGlk KQo+ICsjZGVmaW5lIF9WR0NGX2luX2tlcm5lbCAgICAgICAgICAgICAgICAyCj4gKyNkZWZpbmUg VkdDRl9pbl9rZXJuZWwgICAgICAgICAgICAgICAgICgxPDxfVkdDRl9pbl9rZXJuZWwpCj4gKyNk ZWZpbmUgX1ZHQ0ZfZmFpbHNhZmVfZGlzYWJsZXNfZXZlbnRzIDMKPiArI2RlZmluZSBWR0NGX2Zh aWxzYWZlX2Rpc2FibGVzX2V2ZW50cyAgKDE8PF9WR0NGX2ZhaWxzYWZlX2Rpc2FibGVzX2V2ZW50 cykKPiArI2RlZmluZSBfVkdDRl9zeXNjYWxsX2Rpc2FibGVzX2V2ZW50cyAgNAo+ICsjZGVmaW5l IFZHQ0Zfc3lzY2FsbF9kaXNhYmxlc19ldmVudHMgICAoMTw8X1ZHQ0Zfc3lzY2FsbF9kaXNhYmxl c19ldmVudHMpCj4gKyNkZWZpbmUgX1ZHQ0Zfb25saW5lICAgICAgICAgICAgICAgICAgIDUKPiAr I2RlZmluZSBWR0NGX29ubGluZSAgICAgICAgICAgICAgICAgICAgKDE8PF9WR0NGX29ubGluZSkK PiArICAgIFVJTlROIGZsYWdzOyAgICAgICAgICAgICAgICAgICAgLyogVkdDRl8qIGZsYWdzICAg ICAgICAgICAgICAgICAqLwo+ICsgICAgc3RydWN0IGNwdV91c2VyX3JlZ3MgdXNlcl9yZWdzOyAg ICAgICAgIC8qIFVzZXItbGV2ZWwgQ1BVIHJlZ2lzdGVycyAgICAgKi8KPiArICAgIHN0cnVjdCB0 cmFwX2luZm8gdHJhcF9jdHh0WzI1Nl07ICAgICAgICAvKiBWaXJ0dWFsIElEVCAgICAgICAgICAg ICAgICAgICovCj4gKyAgICBVSU5UTiBsZHRfYmFzZSwgbGR0X2VudHM7ICAgICAgIC8qIExEVCAo bGluZWFyIGFkZHJlc3MsICMgZW50cykgKi8KPiArICAgIFVJTlROIGdkdF9mcmFtZXNbMTZdLCBn ZHRfZW50czsgLyogR0RUIChtYWNoaW5lIGZyYW1lcywgIyBlbnRzKSAqLwo+ICsgICAgVUlOVE4g a2VybmVsX3NzLCBrZXJuZWxfc3A7ICAgICAvKiBWaXJ0dWFsIFRTUyAob25seSBTUzEvU1AxKSAg ICovCj4gKyAgICAvKiBOQi4gVXNlciBwYWdldGFibGUgb24geDg2LzY0IGlzIHBsYWNlZCBpbiBj dHJscmVnWzFdLiAqLwo+ICsgICAgVUlOVE4gY3RybHJlZ1s4XTsgICAgICAgICAgICAgICAvKiBD UjAtQ1I3IChjb250cm9sIHJlZ2lzdGVycykgICovCj4gKyAgICBVSU5UTiBkZWJ1Z3JlZ1s4XTsg ICAgICAgICAgICAgIC8qIERCMC1EQjcgKGRlYnVnIHJlZ2lzdGVycykgICAgKi8KPiArI2lmZGVm IF9faTM4Nl9fCj4gKyAgICBVSU5UTiBldmVudF9jYWxsYmFja19jczsgICAgICAgIC8qIENTOkVJ UCBvZiBldmVudCBjYWxsYmFjayAgICAgKi8KPiArICAgIFVJTlROIGV2ZW50X2NhbGxiYWNrX2Vp cDsKPiArICAgIFVJTlROIGZhaWxzYWZlX2NhbGxiYWNrX2NzOyAgICAgLyogQ1M6RUlQIG9mIGZh aWxzYWZlIGNhbGxiYWNrICAqLwo+ICsgICAgVUlOVE4gZmFpbHNhZmVfY2FsbGJhY2tfZWlwOwo+ ICsjZWxzZQo+ICsgICAgVUlOVE4gZXZlbnRfY2FsbGJhY2tfZWlwOwo+ICsgICAgVUlOVE4gZmFp bHNhZmVfY2FsbGJhY2tfZWlwOwo+ICsjaWZkZWYgX19YRU5fXwo+ICsgICAgdW5pb24gewo+ICsg ICAgICAgIFVJTlROIHN5c2NhbGxfY2FsbGJhY2tfZWlwOwo+ICsgICAgICAgIHN0cnVjdCB7Cj4g KyAgICAgICAgICAgIFVJTlQzMiBldmVudF9jYWxsYmFja19jczsgICAgLyogY29tcGF0IENTIG9m IGV2ZW50IGNiICAgICAqLwo+ICsgICAgICAgICAgICBVSU5UMzIgZmFpbHNhZmVfY2FsbGJhY2tf Y3M7IC8qIGNvbXBhdCBDUyBvZiBmYWlsc2FmZSBjYiAgKi8KPiArICAgICAgICB9Owo+ICsgICAg fTsKPiArI2Vsc2UKPiArICAgIFVJTlROIHN5c2NhbGxfY2FsbGJhY2tfZWlwOwo+ICsjZW5kaWYK PiArI2VuZGlmCj4gKyAgICBVSU5UTiB2bV9hc3Npc3Q7ICAgICAgICAgICAgICAgIC8qIFZNQVNT VF9UWVBFXyogYml0bWFwICovCj4gKyNpZmRlZiBfX3g4Nl82NF9fCj4gKyAgICAvKiBTZWdtZW50 IGJhc2UgYWRkcmVzc2VzLiAqLwo+ICsgICAgVUlOVDY0ICAgICAgZnNfYmFzZTsKPiArICAgIFVJ TlQ2NCAgICAgIGdzX2Jhc2Vfa2VybmVsOwo+ICsgICAgVUlOVDY0ICAgICAgZ3NfYmFzZV91c2Vy Owo+ICsjZW5kaWYKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgdmNwdV9ndWVzdF9jb250ZXh0IHZj cHVfZ3Vlc3RfY29udGV4dF90Owo+ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh2Y3B1X2d1ZXN0 X2NvbnRleHRfdCk7Cj4gKwo+ICtzdHJ1Y3QgYXJjaF9zaGFyZWRfaW5mbyB7Cj4gKyAgICBVSU5U TiBtYXhfcGZuOyAgICAgICAgICAgICAgICAgIC8qIG1heCBwZm4gdGhhdCBhcHBlYXJzIGluIHRh YmxlICovCj4gKyAgICAvKiBGcmFtZSBjb250YWluaW5nIGxpc3Qgb2YgbWZucyBjb250YWluaW5n IGxpc3Qgb2YgbWZucyBjb250YWluaW5nIHAybS4gKi8KPiArICAgIHhlbl9wZm5fdCAgICAgcGZu X3RvX21mbl9mcmFtZV9saXN0X2xpc3Q7Cj4gKyAgICBVSU5UTiBubWlfcmVhc29uOwo+ICsgICAg VUlOVDY0IHBhZFszMl07Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IGFyY2hfc2hhcmVkX2luZm8g YXJjaF9zaGFyZWRfaW5mb190Owo+ICsKPiArI2VuZGlmIC8qICFfX0FTU0VNQkxZX18gKi8KPiAr Cj4gKy8qCj4gKyAqIGAgZW51bSBuZWdfZXJybm92YWwKPiArICogYCBIWVBFUlZJU09SX2ZwdV90 YXNrc3dpdGNoKElOVDMyIHNldCk7Cj4gKyAqIGAKPiArICogU2V0cyAoaWYgc2V0IT0wKSBvciBj bGVhcnMgKGlmIHNldD09MCkgQ1IwLlRTLgo+ICsgKi8KPiArCj4gKy8qCj4gKyAqIGAgZW51bSBu ZWdfZXJybm92YWwKPiArICogYCBIWVBFUlZJU09SX3NldF9kZWJ1Z3JlZyhJTlQzMiByZWdubywg VUlOVE4gdmFsdWUpOwo+ICsgKgo+ICsgKiBgIFVJTlROCj4gKyAqIGAgSFlQRVJWSVNPUl9nZXRf ZGVidWdyZWcoSU5UMzIgcmVnbm8pOwo+ICsgKiBGb3IgMDw9cmVnPD03LCByZXR1cm5zIHRoZSBk ZWJ1ZyByZWdpc3RlciB2YWx1ZS4KPiArICogRm9yIG90aGVyIHZhbHVlcyBvZiByZWcsIHJldHVy bnMgKChVSU5UTiktRUlOVkFMKS4KPiArICogKFVuZm9ydHVuYXRlbHksIHRoaXMgaW50ZXJmYWNl IGlzIGRlZmVjdGl2ZS4pCj4gKyAqLwo+ICsKPiArLyoKPiArICogUHJlZml4IGZvcmNlcyBlbXVs YXRpb24gb2Ygc29tZSBub24tdHJhcHBpbmcgaW5zdHJ1Y3Rpb25zLgo+ICsgKiBDdXJyZW50bHkg b25seSBDUFVJRC4KPiArICovCj4gKyNpZmRlZiBfX0FTU0VNQkxZX18KPiArI2RlZmluZSBYRU5f RU1VTEFURV9QUkVGSVggLmJ5dGUgMHgwZiwweDBiLDB4NzgsMHg2NSwweDZlIDsKPiArI2RlZmlu ZSBYRU5fQ1BVSUQgICAgICAgICAgWEVOX0VNVUxBVEVfUFJFRklYIGNwdWlkCj4gKyNlbHNlCj4g KyNkZWZpbmUgWEVOX0VNVUxBVEVfUFJFRklYICIuYnl0ZSAweDBmLDB4MGIsMHg3OCwweDY1LDB4 NmUgOyAiCj4gKyNkZWZpbmUgWEVOX0NQVUlEICAgICAgICAgIFhFTl9FTVVMQVRFX1BSRUZJWCAi Y3B1aWQiCj4gKyNlbmRpZgo+ICsKPiArI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9Y RU5fSF9fICovCj4gKwo+ICsvKgo+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4gKyAqIG1vZGU6IEMK PiArICogYy1maWxlLXN0eWxlOiAiQlNEIgo+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+ICsgKiB0 YWItd2lkdGg6IDQKPiArICogaW5kZW50LXRhYnMtbW9kZTogbmlsCj4gKyAqIEVuZDoKPiArICov Cj4gZGlmZiAtLWdpdCBhL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9ldmVu dF9jaGFubmVsLmggYi9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vZXZlbnRf Y2hhbm5lbC5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5hNDVjNjVj Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJk L1hlbi9ldmVudF9jaGFubmVsLmgKPiBAQCAtMCwwICsxLDM4MSBAQAo+ICsvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCj4gKyAqIGV2ZW50X2NoYW5uZWwuaAo+ICsgKgo+ICsgKiBFdmVudCBjaGFubmVs cyBiZXR3ZWVuIGRvbWFpbnMuCj4gKyAqCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50 ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKPiArICog b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg IlNvZnR3YXJlIiksIHRvCj4gKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp Y3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCj4gKyAqIHJpZ2h0cyB0byB1 c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2Us IGFuZC9vcgo+ICsgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg cGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwo+ICsgKiBmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJv dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBp bmNsdWRlZCBpbgo+ICsgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRo ZSBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwg SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC SUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS SU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQo+ICsgKiBBVVRIT1JTIE9SIENPUFlSSUdI VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAq IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiArICogREVBTElOR1MgSU4gVEhFIFNP RlRXQVJFLgo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNCwgSyBBIEZyYXNlci4K PiArICovCj4gKwo+ICsjaWZuZGVmIF9fWEVOX1BVQkxJQ19FVkVOVF9DSEFOTkVMX0hfXwo+ICsj ZGVmaW5lIF9fWEVOX1BVQkxJQ19FVkVOVF9DSEFOTkVMX0hfXwo+ICsKPiArI2luY2x1ZGUgInhl bi5oIgo+ICsKPiArLyoKPiArICogYGluY29udGVudHMgMTUwIGV2dGNobiBFdmVudCBDaGFubmVs cwo+ICsgKgo+ICsgKiBFdmVudCBjaGFubmVscyBhcmUgdGhlIGJhc2ljIHByaW1pdGl2ZSBwcm92 aWRlZCBieSBYZW4gZm9yIGV2ZW50Cj4gKyAqIG5vdGlmaWNhdGlvbnMuIEFuIGV2ZW50IGlzIHRo ZSBYZW4gZXF1aXZhbGVudCBvZiBhIGhhcmR3YXJlCj4gKyAqIGludGVycnVwdC4gVGhleSBlc3Nl bnRpYWxseSBzdG9yZSBvbmUgYml0IG9mIGluZm9ybWF0aW9uLCB0aGUgZXZlbnQKPiArICogb2Yg aW50ZXJlc3QgaXMgc2lnbmFsbGVkIGJ5IHRyYW5zaXRpb25pbmcgdGhpcyBiaXQgZnJvbSAwIHRv IDEuCj4gKyAqCj4gKyAqIE5vdGlmaWNhdGlvbnMgYXJlIHJlY2VpdmVkIGJ5IGEgZ3Vlc3Qgdmlh IGFuIHVwY2FsbCBmcm9tIFhlbiwKPiArICogaW5kaWNhdGluZyB3aGVuIGFuIGV2ZW50IGFycml2 ZXMgKHNldHRpbmcgdGhlIGJpdCkuIEZ1cnRoZXIKPiArICogbm90aWZpY2F0aW9ucyBhcmUgbWFz a2VkIHVudGlsIHRoZSBiaXQgaXMgY2xlYXJlZCBhZ2FpbiAodGhlcmVmb3JlLAo+ICsgKiBndWVz dHMgbXVzdCBjaGVjayB0aGUgdmFsdWUgb2YgdGhlIGJpdCBhZnRlciByZS1lbmFibGluZyBldmVu dAo+ICsgKiBkZWxpdmVyeSB0byBlbnN1cmUgbm8gbWlzc2VkIG5vdGlmaWNhdGlvbnMpLgo+ICsg Kgo+ICsgKiBFdmVudCBub3RpZmljYXRpb25zIGNhbiBiZSBtYXNrZWQgYnkgc2V0dGluZyBhIGZs YWc7IHRoaXMgaXMKPiArICogZXF1aXZhbGVudCB0byBkaXNhYmxpbmcgaW50ZXJydXB0cyBhbmQg Y2FuIGJlIHVzZWQgdG8gZW5zdXJlCj4gKyAqIGF0b21pY2l0eSBvZiBjZXJ0YWluIG9wZXJhdGlv bnMgaW4gdGhlIGd1ZXN0IGtlcm5lbC4KPiArICoKPiArICogRXZlbnQgY2hhbm5lbHMgYXJlIHJl cHJlc2VudGVkIGJ5IHRoZSBldnRjaG5fKiBmaWVsZHMgaW4KPiArICogc3RydWN0IHNoYXJlZF9p bmZvIGFuZCBzdHJ1Y3QgdmNwdV9pbmZvLgo+ICsgKi8KPiArCj4gKy8qCj4gKyAqIGAgZW51bSBu ZWdfZXJybm92YWwKPiArICogYCBIWVBFUlZJU09SX2V2ZW50X2NoYW5uZWxfb3AoZW51bSBldmVu dF9jaGFubmVsX29wIGNtZCwgVk9JRCAqYXJncykKPiArICogYAo+ICsgKiBAY21kICA9PSBFVlRD SE5PUF8qIChldmVudC1jaGFubmVsIG9wZXJhdGlvbikuCj4gKyAqIEBhcmdzID09IHN0cnVjdCBl dnRjaG5fKiBPcGVyYXRpb24tc3BlY2lmaWMgZXh0cmEgYXJndW1lbnRzIChOVUxMIGlmIG5vbmUp Lgo+ICsgKi8KPiArCj4gKy8qIGAgZW51bSBldmVudF9jaGFubmVsX29wIHsgLy8gRVZUQ0hOT1Bf KiA9PiBzdHJ1Y3QgZXZ0Y2huXyogKi8KPiArI2RlZmluZSBFVlRDSE5PUF9iaW5kX2ludGVyZG9t YWluIDAKPiArI2RlZmluZSBFVlRDSE5PUF9iaW5kX3ZpcnEgICAgICAgIDEKPiArI2RlZmluZSBF VlRDSE5PUF9iaW5kX3BpcnEgICAgICAgIDIKPiArI2RlZmluZSBFVlRDSE5PUF9jbG9zZSAgICAg ICAgICAgIDMKPiArI2RlZmluZSBFVlRDSE5PUF9zZW5kICAgICAgICAgICAgIDQKPiArI2RlZmlu ZSBFVlRDSE5PUF9zdGF0dXMgICAgICAgICAgIDUKPiArI2RlZmluZSBFVlRDSE5PUF9hbGxvY191 bmJvdW5kICAgIDYKPiArI2RlZmluZSBFVlRDSE5PUF9iaW5kX2lwaSAgICAgICAgIDcKPiArI2Rl ZmluZSBFVlRDSE5PUF9iaW5kX3ZjcHUgICAgICAgIDgKPiArI2RlZmluZSBFVlRDSE5PUF91bm1h c2sgICAgICAgICAgIDkKPiArI2RlZmluZSBFVlRDSE5PUF9yZXNldCAgICAgICAgICAgMTAKPiAr I2RlZmluZSBFVlRDSE5PUF9pbml0X2NvbnRyb2wgICAgMTEKPiArI2RlZmluZSBFVlRDSE5PUF9l eHBhbmRfYXJyYXkgICAgMTIKPiArI2RlZmluZSBFVlRDSE5PUF9zZXRfcHJpb3JpdHkgICAgMTMK PiArLyogYCB9ICovCj4gKwo+ICt0eXBlZGVmIFVJTlQzMiBldnRjaG5fcG9ydF90Owo+ICtERUZJ TkVfWEVOX0dVRVNUX0hBTkRMRShldnRjaG5fcG9ydF90KTsKPiArCj4gKy8qCj4gKyAqIEVWVENI Tk9QX2FsbG9jX3VuYm91bmQ6IEFsbG9jYXRlIGEgcG9ydCBpbiBkb21haW4gPGRvbT4gYW5kIG1h cmsgYXMKPiArICogYWNjZXB0aW5nIGludGVyZG9tYWluIGJpbmRpbmdzIGZyb20gZG9tYWluIDxy ZW1vdGVfZG9tPi4gQSBmcmVzaCBwb3J0Cj4gKyAqIGlzIGFsbG9jYXRlZCBpbiA8ZG9tPiBhbmQg cmV0dXJuZWQgYXMgPHBvcnQ+Lgo+ICsgKiBOT1RFUzoKPiArICogIDEuIElmIHRoZSBjYWxsZXIg aXMgdW5wcml2aWxlZ2VkIHRoZW4gPGRvbT4gbXVzdCBiZSBET01JRF9TRUxGLgo+ICsgKiAgMi4g PHJkb20+IG1heSBiZSBET01JRF9TRUxGLCBhbGxvd2luZyBsb29wYmFjayBjb25uZWN0aW9ucy4K PiArICovCj4gK3N0cnVjdCBldnRjaG5fYWxsb2NfdW5ib3VuZCB7Cj4gKyAgICAvKiBJTiBwYXJh bWV0ZXJzICovCj4gKyAgICBkb21pZF90IGRvbSwgcmVtb3RlX2RvbTsKPiArICAgIC8qIE9VVCBw YXJhbWV0ZXJzICovCj4gKyAgICBldnRjaG5fcG9ydF90IHBvcnQ7Cj4gK307Cj4gK3R5cGVkZWYg c3RydWN0IGV2dGNobl9hbGxvY191bmJvdW5kIGV2dGNobl9hbGxvY191bmJvdW5kX3Q7Cj4gKwo+ ICsvKgo+ICsgKiBFVlRDSE5PUF9iaW5kX2ludGVyZG9tYWluOiBDb25zdHJ1Y3QgYW4gaW50ZXJk b21haW4gZXZlbnQgY2hhbm5lbCBiZXR3ZWVuCj4gKyAqIHRoZSBjYWxsaW5nIGRvbWFpbiBhbmQg PHJlbW90ZV9kb20+LiA8cmVtb3RlX2RvbSxyZW1vdGVfcG9ydD4gbXVzdCBpZGVudGlmeQo+ICsg KiBhIHBvcnQgdGhhdCBpcyB1bmJvdW5kIGFuZCBtYXJrZWQgYXMgYWNjZXB0aW5nIGJpbmRpbmdz IGZyb20gdGhlIGNhbGxpbmcKPiArICogZG9tYWluLiBBIGZyZXNoIHBvcnQgaXMgYWxsb2NhdGVk IGluIHRoZSBjYWxsaW5nIGRvbWFpbiBhbmQgcmV0dXJuZWQgYXMKPiArICogPGxvY2FsX3BvcnQ+ Lgo+ICsgKgo+ICsgKiBJbiBjYXNlIHRoZSBwZWVyIGRvbWFpbiBoYXMgYWxyZWFkeSB0cmllZCB0 byBzZXQgb3VyIGV2ZW50IGNoYW5uZWwKPiArICogcGVuZGluZywgYmVmb3JlIGl0IHdhcyBib3Vu ZCwgRVZUQ0hOT1BfYmluZF9pbnRlcmRvbWFpbiBhbHdheXMgc2V0cwo+ICsgKiB0aGUgbG9jYWwg ZXZlbnQgY2hhbm5lbCBwZW5kaW5nLgo+ICsgKgo+ICsgKiBUaGUgdXN1YWwgcGF0dGVybiBvZiB1 c2UsIGluIHRoZSBndWVzdCdzIHVwY2FsbCAob3Igc3Vic2VxdWVudAo+ICsgKiBoYW5kbGVyKSBp cyBhcyBmb2xsb3dzOiAoUmUtZW5hYmxlIHRoZSBldmVudCBjaGFubmVsIGZvciBzdWJzZXF1ZW50 Cj4gKyAqIHNpZ25hbGxpbmcgYW5kIHRoZW4pIGNoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIHdo YXRldmVyIGNvbmRpdGlvbgo+ICsgKiBpcyBiZWluZyB3YWl0ZWQgZm9yIGJ5IG90aGVyIG1lYW5z LCBhbmQgdGFrZSB3aGF0ZXZlciBhY3Rpb24gaXMKPiArICogbmVlZGVkIChpZiBhbnkpLgo+ICsg Kgo+ICsgKiBOT1RFUzoKPiArICogIDEuIDxyZW1vdGVfZG9tPiBtYXkgYmUgRE9NSURfU0VMRiwg YWxsb3dpbmcgbG9vcGJhY2sgY29ubmVjdGlvbnMuCj4gKyAqLwo+ICtzdHJ1Y3QgZXZ0Y2huX2Jp bmRfaW50ZXJkb21haW4gewo+ICsgICAgLyogSU4gcGFyYW1ldGVycy4gKi8KPiArICAgIGRvbWlk X3QgcmVtb3RlX2RvbTsKPiArICAgIGV2dGNobl9wb3J0X3QgcmVtb3RlX3BvcnQ7Cj4gKyAgICAv KiBPVVQgcGFyYW1ldGVycy4gKi8KPiArICAgIGV2dGNobl9wb3J0X3QgbG9jYWxfcG9ydDsKPiAr fTsKPiArdHlwZWRlZiBzdHJ1Y3QgZXZ0Y2huX2JpbmRfaW50ZXJkb21haW4gZXZ0Y2huX2JpbmRf aW50ZXJkb21haW5fdDsKPiArCj4gKy8qCj4gKyAqIEVWVENITk9QX2JpbmRfdmlycTogQmluZCBh IGxvY2FsIGV2ZW50IGNoYW5uZWwgdG8gVklSUSA8aXJxPiBvbiBzcGVjaWZpZWQKPiArICogdmNw dS4KPiArICogTk9URVM6Cj4gKyAqICAxLiBWaXJ0dWFsIElSUXMgYXJlIGNsYXNzaWZpZWQgYXMg cGVyLXZjcHUgb3IgZ2xvYmFsLiBTZWUgdGhlIFZJUlEgbGlzdAo+ICsgKiAgICAgaW4geGVuLmgg Zm9yIHRoZSBjbGFzc2lmaWNhdGlvbiBvZiBlYWNoIFZJUlEuCj4gKyAqICAyLiBHbG9iYWwgVklS UXMgbXVzdCBiZSBhbGxvY2F0ZWQgb24gVkNQVTAgYnV0IGNhbiBzdWJzZXF1ZW50bHkgYmUKPiAr ICogICAgIHJlLWJvdW5kIHZpYSBFVlRDSE5PUF9iaW5kX3ZjcHUuCj4gKyAqICAzLiBQZXItdmNw dSBWSVJRcyBtYXkgYmUgYm91bmQgdG8gYXQgbW9zdCBvbmUgZXZlbnQgY2hhbm5lbCBwZXIgdmNw dS4KPiArICogICAgIFRoZSBhbGxvY2F0ZWQgZXZlbnQgY2hhbm5lbCBpcyBib3VuZCB0byB0aGUg c3BlY2lmaWVkIHZjcHUgYW5kIHRoZQo+ICsgKiAgICAgYmluZGluZyBjYW5ub3QgYmUgY2hhbmdl ZC4KPiArICovCj4gK3N0cnVjdCBldnRjaG5fYmluZF92aXJxIHsKPiArICAgIC8qIElOIHBhcmFt ZXRlcnMuICovCj4gKyAgICBVSU5UMzIgdmlycTsgLyogZW51bSB2aXJxICovCj4gKyAgICBVSU5U MzIgdmNwdTsKPiArICAgIC8qIE9VVCBwYXJhbWV0ZXJzLiAqLwo+ICsgICAgZXZ0Y2huX3BvcnRf dCBwb3J0Owo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCBldnRjaG5fYmluZF92aXJxIGV2dGNobl9i aW5kX3ZpcnFfdDsKPiArCj4gKy8qCj4gKyAqIEVWVENITk9QX2JpbmRfcGlycTogQmluZCBhIGxv Y2FsIGV2ZW50IGNoYW5uZWwgdG8gYSByZWFsIElSUSAoUElSUSA8aXJxPikuCj4gKyAqIE5PVEVT Ogo+ICsgKiAgMS4gQSBwaHlzaWNhbCBJUlEgbWF5IGJlIGJvdW5kIHRvIGF0IG1vc3Qgb25lIGV2 ZW50IGNoYW5uZWwgcGVyIGRvbWFpbi4KPiArICogIDIuIE9ubHkgYSBzdWZmaWNpZW50bHktcHJp dmlsZWdlZCBkb21haW4gbWF5IGJpbmQgdG8gYSBwaHlzaWNhbCBJUlEuCj4gKyAqLwo+ICtzdHJ1 Y3QgZXZ0Y2huX2JpbmRfcGlycSB7Cj4gKyAgICAvKiBJTiBwYXJhbWV0ZXJzLiAqLwo+ICsgICAg VUlOVDMyIHBpcnE7Cj4gKyNkZWZpbmUgQklORF9QSVJRX19XSUxMX1NIQVJFIDEKPiArICAgIFVJ TlQzMiBmbGFnczsgLyogQklORF9QSVJRX18qICovCj4gKyAgICAvKiBPVVQgcGFyYW1ldGVycy4g Ki8KPiArICAgIGV2dGNobl9wb3J0X3QgcG9ydDsKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgZXZ0 Y2huX2JpbmRfcGlycSBldnRjaG5fYmluZF9waXJxX3Q7Cj4gKwo+ICsvKgo+ICsgKiBFVlRDSE5P UF9iaW5kX2lwaTogQmluZCBhIGxvY2FsIGV2ZW50IGNoYW5uZWwgdG8gcmVjZWl2ZSBldmVudHMu Cj4gKyAqIE5PVEVTOgo+ICsgKiAgMS4gVGhlIGFsbG9jYXRlZCBldmVudCBjaGFubmVsIGlzIGJv dW5kIHRvIHRoZSBzcGVjaWZpZWQgdmNwdS4gVGhlIGJpbmRpbmcKPiArICogICAgIG1heSBub3Qg YmUgY2hhbmdlZC4KPiArICovCj4gK3N0cnVjdCBldnRjaG5fYmluZF9pcGkgewo+ICsgICAgVUlO VDMyIHZjcHU7Cj4gKyAgICAvKiBPVVQgcGFyYW1ldGVycy4gKi8KPiArICAgIGV2dGNobl9wb3J0 X3QgcG9ydDsKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgZXZ0Y2huX2JpbmRfaXBpIGV2dGNobl9i aW5kX2lwaV90Owo+ICsKPiArLyoKPiArICogRVZUQ0hOT1BfY2xvc2U6IENsb3NlIGEgbG9jYWwg ZXZlbnQgY2hhbm5lbCA8cG9ydD4uIElmIHRoZSBjaGFubmVsIGlzCj4gKyAqIGludGVyZG9tYWlu IHRoZW4gdGhlIHJlbW90ZSBlbmQgaXMgcGxhY2VkIGluIHRoZSB1bmJvdW5kIHN0YXRlCj4gKyAq IChFVlRDSE5TVEFUX3VuYm91bmQpLCBhd2FpdGluZyBhIG5ldyBjb25uZWN0aW9uLgo+ICsgKi8K PiArc3RydWN0IGV2dGNobl9jbG9zZSB7Cj4gKyAgICAvKiBJTiBwYXJhbWV0ZXJzLiAqLwo+ICsg ICAgZXZ0Y2huX3BvcnRfdCBwb3J0Owo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCBldnRjaG5fY2xv c2UgZXZ0Y2huX2Nsb3NlX3Q7Cj4gKwo+ICsvKgo+ICsgKiBFVlRDSE5PUF9zZW5kOiBTZW5kIGFu IGV2ZW50IHRvIHRoZSByZW1vdGUgZW5kIG9mIHRoZSBjaGFubmVsIHdob3NlIGxvY2FsCj4gKyAq IGVuZHBvaW50IGlzIDxwb3J0Pi4KPiArICovCj4gK3N0cnVjdCBldnRjaG5fc2VuZCB7Cj4gKyAg ICAvKiBJTiBwYXJhbWV0ZXJzLiAqLwo+ICsgICAgZXZ0Y2huX3BvcnRfdCBwb3J0Owo+ICt9Owo+ ICt0eXBlZGVmIHN0cnVjdCBldnRjaG5fc2VuZCBldnRjaG5fc2VuZF90Owo+ICsKPiArLyoKPiAr ICogRVZUQ0hOT1Bfc3RhdHVzOiBHZXQgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBjb21tdW5p Y2F0aW9uIGNoYW5uZWwgd2hpY2gKPiArICogaGFzIGFuIGVuZHBvaW50IGF0IDxkb20sIHBvcnQ+ Lgo+ICsgKiBOT1RFUzoKPiArICogIDEuIDxkb20+IG1heSBiZSBzcGVjaWZpZWQgYXMgRE9NSURf U0VMRi4KPiArICogIDIuIE9ubHkgYSBzdWZmaWNpZW50bHktcHJpdmlsZWdlZCBkb21haW4gbWF5 IG9idGFpbiB0aGUgc3RhdHVzIG9mIGFuIGV2ZW50Cj4gKyAqICAgICBjaGFubmVsIGZvciB3aGlj aCA8ZG9tPiBpcyBub3QgRE9NSURfU0VMRi4KPiArICovCj4gK3N0cnVjdCBldnRjaG5fc3RhdHVz IHsKPiArICAgIC8qIElOIHBhcmFtZXRlcnMgKi8KPiArICAgIGRvbWlkX3QgIGRvbTsKPiArICAg IGV2dGNobl9wb3J0X3QgcG9ydDsKPiArICAgIC8qIE9VVCBwYXJhbWV0ZXJzICovCj4gKyNkZWZp bmUgRVZUQ0hOU1RBVF9jbG9zZWQgICAgICAgMCAgLyogQ2hhbm5lbCBpcyBub3QgaW4gdXNlLiAg ICAgICAgICAgICAgICAgKi8KPiArI2RlZmluZSBFVlRDSE5TVEFUX3VuYm91bmQgICAgICAxICAv KiBDaGFubmVsIGlzIHdhaXRpbmcgaW50ZXJkb20gY29ubmVjdGlvbi4qLwo+ICsjZGVmaW5lIEVW VENITlNUQVRfaW50ZXJkb21haW4gIDIgIC8qIENoYW5uZWwgaXMgY29ubmVjdGVkIHRvIHJlbW90 ZSBkb21haW4uICovCj4gKyNkZWZpbmUgRVZUQ0hOU1RBVF9waXJxICAgICAgICAgMyAgLyogQ2hh bm5lbCBpcyBib3VuZCB0byBhIHBoeXMgSVJRIGxpbmUuICAgKi8KPiArI2RlZmluZSBFVlRDSE5T VEFUX3ZpcnEgICAgICAgICA0ICAvKiBDaGFubmVsIGlzIGJvdW5kIHRvIGEgdmlydHVhbCBJUlEg bGluZSAqLwo+ICsjZGVmaW5lIEVWVENITlNUQVRfaXBpICAgICAgICAgIDUgIC8qIENoYW5uZWwg aXMgYm91bmQgdG8gYSB2aXJ0dWFsIElQSSBsaW5lICovCj4gKyAgICBVSU5UMzIgc3RhdHVzOwo+ ICsgICAgVUlOVDMyIHZjcHU7ICAgICAgICAgICAgICAgICAvKiBWQ1BVIHRvIHdoaWNoIHRoaXMg Y2hhbm5lbCBpcyBib3VuZC4gICAqLwo+ICsgICAgdW5pb24gewo+ICsgICAgICAgIHN0cnVjdCB7 Cj4gKyAgICAgICAgICAgIGRvbWlkX3QgZG9tOwo+ICsgICAgICAgIH0gdW5ib3VuZDsgICAgICAg ICAgICAgICAgIC8qIEVWVENITlNUQVRfdW5ib3VuZCAqLwo+ICsgICAgICAgIHN0cnVjdCB7Cj4g KyAgICAgICAgICAgIGRvbWlkX3QgZG9tOwo+ICsgICAgICAgICAgICBldnRjaG5fcG9ydF90IHBv cnQ7Cj4gKyAgICAgICAgfSBpbnRlcmRvbWFpbjsgICAgICAgICAgICAgLyogRVZUQ0hOU1RBVF9p bnRlcmRvbWFpbiAqLwo+ICsgICAgICAgIFVJTlQzMiBwaXJxOyAgICAgICAgICAgICAvKiBFVlRD SE5TVEFUX3BpcnEgICAgICAgICovCj4gKyAgICAgICAgVUlOVDMyIHZpcnE7ICAgICAgICAgICAg IC8qIEVWVENITlNUQVRfdmlycSAgICAgICAgKi8KPiArICAgIH0gdTsKPiArfTsKPiArdHlwZWRl ZiBzdHJ1Y3QgZXZ0Y2huX3N0YXR1cyBldnRjaG5fc3RhdHVzX3Q7Cj4gKwo+ICsvKgo+ICsgKiBF VlRDSE5PUF9iaW5kX3ZjcHU6IFNwZWNpZnkgd2hpY2ggdmNwdSBhIGNoYW5uZWwgc2hvdWxkIG5v dGlmeSB3aGVuIGFuCj4gKyAqIGV2ZW50IGlzIHBlbmRpbmcuCj4gKyAqIE5PVEVTOgo+ICsgKiAg MS4gSVBJLWJvdW5kIGNoYW5uZWxzIGFsd2F5cyBub3RpZnkgdGhlIHZjcHUgc3BlY2lmaWVkIGF0 IGJpbmQgdGltZS4KPiArICogICAgIFRoaXMgYmluZGluZyBjYW5ub3QgYmUgY2hhbmdlZC4KPiAr ICogIDIuIFBlci1WQ1BVIFZJUlEgY2hhbm5lbHMgYWx3YXlzIG5vdGlmeSB0aGUgdmNwdSBzcGVj aWZpZWQgYXQgYmluZCB0aW1lLgo+ICsgKiAgICAgVGhpcyBiaW5kaW5nIGNhbm5vdCBiZSBjaGFu Z2VkLgo+ICsgKiAgMy4gQWxsIG90aGVyIGNoYW5uZWxzIG5vdGlmeSB2Y3B1MCBieSBkZWZhdWx0 LiBUaGlzIGRlZmF1bHQgaXMgc2V0IHdoZW4KPiArICogICAgIHRoZSBjaGFubmVsIGlzIGFsbG9j YXRlZCAoYSBwb3J0IHRoYXQgaXMgZnJlZWQgYW5kIHN1YnNlcXVlbnRseSByZXVzZWQKPiArICog ICAgIGhhcyBpdHMgYmluZGluZyByZXNldCB0byB2Y3B1MCkuCj4gKyAqLwo+ICtzdHJ1Y3QgZXZ0 Y2huX2JpbmRfdmNwdSB7Cj4gKyAgICAvKiBJTiBwYXJhbWV0ZXJzLiAqLwo+ICsgICAgZXZ0Y2hu X3BvcnRfdCBwb3J0Owo+ICsgICAgVUlOVDMyIHZjcHU7Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0 IGV2dGNobl9iaW5kX3ZjcHUgZXZ0Y2huX2JpbmRfdmNwdV90Owo+ICsKPiArLyoKPiArICogRVZU Q0hOT1BfdW5tYXNrOiBVbm1hc2sgdGhlIHNwZWNpZmllZCBsb2NhbCBldmVudC1jaGFubmVsIHBv cnQgYW5kIGRlbGl2ZXIKPiArICogYSBub3RpZmljYXRpb24gdG8gdGhlIGFwcHJvcHJpYXRlIFZD UFUgaWYgYW4gZXZlbnQgaXMgcGVuZGluZy4KPiArICovCj4gK3N0cnVjdCBldnRjaG5fdW5tYXNr IHsKPiArICAgIC8qIElOIHBhcmFtZXRlcnMuICovCj4gKyAgICBldnRjaG5fcG9ydF90IHBvcnQ7 Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IGV2dGNobl91bm1hc2sgZXZ0Y2huX3VubWFza190Owo+ ICsKPiArLyoKPiArICogRVZUQ0hOT1BfcmVzZXQ6IENsb3NlIGFsbCBldmVudCBjaGFubmVscyBh c3NvY2lhdGVkIHdpdGggc3BlY2lmaWVkIGRvbWFpbi4KPiArICogTk9URVM6Cj4gKyAqICAxLiA8 ZG9tPiBtYXkgYmUgc3BlY2lmaWVkIGFzIERPTUlEX1NFTEYuCj4gKyAqICAyLiBPbmx5IGEgc3Vm ZmljaWVudGx5LXByaXZpbGVnZWQgZG9tYWluIG1heSBzcGVjaWZ5IG90aGVyIHRoYW4gRE9NSURf U0VMRi4KPiArICovCj4gK3N0cnVjdCBldnRjaG5fcmVzZXQgewo+ICsgICAgLyogSU4gcGFyYW1l dGVycy4gKi8KPiArICAgIGRvbWlkX3QgZG9tOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCBldnRj aG5fcmVzZXQgZXZ0Y2huX3Jlc2V0X3Q7Cj4gKwo+ICsvKgo+ICsgKiBFVlRDSE5PUF9pbml0X2Nv bnRyb2w6IGluaXRpYWxpemUgdGhlIGNvbnRyb2wgYmxvY2sgZm9yIHRoZSBGSUZPIEFCSS4KPiAr ICoKPiArICogTm90ZTogYW55IGV2ZW50cyB0aGF0IGFyZSBjdXJyZW50bHkgcGVuZGluZyB3aWxs IG5vdCBiZSByZXNlbnQgYW5kCj4gKyAqIHdpbGwgYmUgbG9zdC4gIEd1ZXN0cyBzaG91bGQgY2Fs bCB0aGlzIGJlZm9yZSBiaW5kaW5nIGFueSBldmVudCB0bwo+ICsgKiBhdm9pZCBsb3NpbmcgYW55 IGV2ZW50cy4KPiArICovCj4gK3N0cnVjdCBldnRjaG5faW5pdF9jb250cm9sIHsKPiArICAgIC8q IElOIHBhcmFtZXRlcnMuICovCj4gKyAgICBVSU5UNjQgY29udHJvbF9nZm47Cj4gKyAgICBVSU5U MzIgb2Zmc2V0Owo+ICsgICAgVUlOVDMyIHZjcHU7Cj4gKyAgICAvKiBPVVQgcGFyYW1ldGVycy4g Ki8KPiArICAgIFVJTlQ4IGxpbmtfYml0czsKPiArICAgIFVJTlQ4IF9wYWRbN107Cj4gK307Cj4g K3R5cGVkZWYgc3RydWN0IGV2dGNobl9pbml0X2NvbnRyb2wgZXZ0Y2huX2luaXRfY29udHJvbF90 Owo+ICsKPiArLyoKPiArICogRVZUQ0hOT1BfZXhwYW5kX2FycmF5OiBhZGQgYW4gYWRkaXRpb25h bCBwYWdlIHRvIHRoZSBldmVudCBhcnJheS4KPiArICovCj4gK3N0cnVjdCBldnRjaG5fZXhwYW5k X2FycmF5IHsKPiArICAgIC8qIElOIHBhcmFtZXRlcnMuICovCj4gKyAgICBVSU5UNjQgYXJyYXlf Z2ZuOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCBldnRjaG5fZXhwYW5kX2FycmF5IGV2dGNobl9l eHBhbmRfYXJyYXlfdDsKPiArCj4gKy8qCj4gKyAqIEVWVENITk9QX3NldF9wcmlvcml0eTogc2V0 IHRoZSBwcmlvcml0eSBmb3IgYW4gZXZlbnQgY2hhbm5lbC4KPiArICovCj4gK3N0cnVjdCBldnRj aG5fc2V0X3ByaW9yaXR5IHsKPiArICAgIC8qIElOIHBhcmFtZXRlcnMuICovCj4gKyAgICBVSU5U MzIgcG9ydDsKPiArICAgIFVJTlQzMiBwcmlvcml0eTsKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3Qg ZXZ0Y2huX3NldF9wcmlvcml0eSBldnRjaG5fc2V0X3ByaW9yaXR5X3Q7Cj4gKwo+ICsvKgo+ICsg KiBgIGVudW0gbmVnX2Vycm5vdmFsCj4gKyAqIGAgSFlQRVJWSVNPUl9ldmVudF9jaGFubmVsX29w X2NvbXBhdChzdHJ1Y3QgZXZ0Y2huX29wICpvcCkKPiArICogYAo+ICsgKiBTdXBlcmNlZGVkIGJ5 IG5ldyBldmVudF9jaGFubmVsX29wKCkgaHlwZXJjYWxsIHNpbmNlIDB4MDAwMzAyMDIuCj4gKyAq Lwo+ICtzdHJ1Y3QgZXZ0Y2huX29wIHsKPiArICAgIFVJTlQzMiBjbWQ7IC8qIGVudW0gZXZlbnRf Y2hhbm5lbF9vcCAqLwo+ICsgICAgdW5pb24gewo+ICsgICAgICAgIHN0cnVjdCBldnRjaG5fYWxs b2NfdW5ib3VuZCAgICBhbGxvY191bmJvdW5kOwo+ICsgICAgICAgIHN0cnVjdCBldnRjaG5fYmlu ZF9pbnRlcmRvbWFpbiBiaW5kX2ludGVyZG9tYWluOwo+ICsgICAgICAgIHN0cnVjdCBldnRjaG5f YmluZF92aXJxICAgICAgICBiaW5kX3ZpcnE7Cj4gKyAgICAgICAgc3RydWN0IGV2dGNobl9iaW5k X3BpcnEgICAgICAgIGJpbmRfcGlycTsKPiArICAgICAgICBzdHJ1Y3QgZXZ0Y2huX2JpbmRfaXBp ICAgICAgICAgYmluZF9pcGk7Cj4gKyAgICAgICAgc3RydWN0IGV2dGNobl9jbG9zZSAgICAgICAg ICAgIGNsb3NlOwo+ICsgICAgICAgIHN0cnVjdCBldnRjaG5fc2VuZCAgICAgICAgICAgICBzZW5k Owo+ICsgICAgICAgIHN0cnVjdCBldnRjaG5fc3RhdHVzICAgICAgICAgICBzdGF0dXM7Cj4gKyAg ICAgICAgc3RydWN0IGV2dGNobl9iaW5kX3ZjcHUgICAgICAgIGJpbmRfdmNwdTsKPiArICAgICAg ICBzdHJ1Y3QgZXZ0Y2huX3VubWFzayAgICAgICAgICAgdW5tYXNrOwo+ICsgICAgfSB1Owo+ICt9 Owo+ICt0eXBlZGVmIHN0cnVjdCBldnRjaG5fb3AgZXZ0Y2huX29wX3Q7Cj4gK0RFRklORV9YRU5f R1VFU1RfSEFORExFKGV2dGNobl9vcF90KTsKPiArCj4gKy8qCj4gKyAqIDItbGV2ZWwgQUJJCj4g KyAqLwo+ICsKPiArI2RlZmluZSBFVlRDSE5fMkxfTlJfQ0hBTk5FTFMgKHNpemVvZih4ZW5fdWxv bmdfdCkgKiBzaXplb2YoeGVuX3Vsb25nX3QpICogNjQpCj4gKwo+ICsvKgo+ICsgKiBGSUZPIEFC SQo+ICsgKi8KPiArCj4gKy8qIEV2ZW50cyBtYXkgaGF2ZSBwcmlvcml0aWVzIGZyb20gMCAoaGln aGVzdCkgdG8gMTUgKGxvd2VzdCkuICovCj4gKyNkZWZpbmUgRVZUQ0hOX0ZJRk9fUFJJT1JJVFlf TUFYICAgICAwCj4gKyNkZWZpbmUgRVZUQ0hOX0ZJRk9fUFJJT1JJVFlfREVGQVVMVCA3Cj4gKyNk ZWZpbmUgRVZUQ0hOX0ZJRk9fUFJJT1JJVFlfTUlOICAgICAxNQo+ICsKPiArI2RlZmluZSBFVlRD SE5fRklGT19NQVhfUVVFVUVTIChFVlRDSE5fRklGT19QUklPUklUWV9NSU4gKyAxKQo+ICsKPiAr dHlwZWRlZiBVSU5UMzIgZXZlbnRfd29yZF90Owo+ICsKPiArI2RlZmluZSBFVlRDSE5fRklGT19Q RU5ESU5HIDMxCj4gKyNkZWZpbmUgRVZUQ0hOX0ZJRk9fTUFTS0VEICAzMAo+ICsjZGVmaW5lIEVW VENITl9GSUZPX0xJTktFRCAgMjkKPiArI2RlZmluZSBFVlRDSE5fRklGT19CVVNZICAgIDI4Cj4g Kwo+ICsjZGVmaW5lIEVWVENITl9GSUZPX0xJTktfQklUUyAxNwo+ICsjZGVmaW5lIEVWVENITl9G SUZPX0xJTktfTUFTSyAoKDEgPDwgRVZUQ0hOX0ZJRk9fTElOS19CSVRTKSAtIDEpCj4gKwo+ICsj ZGVmaW5lIEVWVENITl9GSUZPX05SX0NIQU5ORUxTICgxIDw8IEVWVENITl9GSUZPX0xJTktfQklU UykKPiArCj4gK3N0cnVjdCBldnRjaG5fZmlmb19jb250cm9sX2Jsb2NrIHsKPiArICAgIFVJTlQz MiByZWFkeTsKPiArICAgIFVJTlQzMiBfcnN2ZDsKPiArICAgIFVJTlQzMiBoZWFkW0VWVENITl9G SUZPX01BWF9RVUVVRVNdOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCBldnRjaG5fZmlmb19jb250 cm9sX2Jsb2NrIGV2dGNobl9maWZvX2NvbnRyb2xfYmxvY2tfdDsKPiArCj4gKyNlbmRpZiAvKiBf X1hFTl9QVUJMSUNfRVZFTlRfQ0hBTk5FTF9IX18gKi8KPiArCj4gKy8qCj4gKyAqIExvY2FsIHZh cmlhYmxlczoKPiArICogbW9kZTogQwo+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCj4gKyAqIGMt YmFzaWMtb2Zmc2V0OiA0Cj4gKyAqIHRhYi13aWR0aDogNAo+ICsgKiBpbmRlbnQtdGFicy1tb2Rl OiBuaWwKPiArICogRW5kOgo+ICsgKi8KPiBkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9JbmNsdWRlL0lu ZHVzdHJ5U3RhbmRhcmQvWGVuL2dyYW50X3RhYmxlLmggYi9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0 cnlTdGFuZGFyZC9YZW4vZ3JhbnRfdGFibGUuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5k ZXggMDAwMDAwMC4uZjQ2YjQ4ZAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9Pdm1mUGtnL0luY2x1 ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vZ3JhbnRfdGFibGUuaAo+IEBAIC0wLDAgKzEsNjYyIEBA Cj4gKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICogZ3JhbnRfdGFibGUuaAo+ICsgKgo+ICsg KiBJbnRlcmZhY2UgZm9yIGdyYW50aW5nIGZvcmVpZ24gYWNjZXNzIHRvIHBhZ2UgZnJhbWVzLCBh bmQgcmVjZWl2aW5nCj4gKyAqIHBhZ2Utb3duZXJzaGlwIHRyYW5zZmVycy4KPiArICoKPiArICog UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz b24gb2J0YWluaW5nIGEgY29weQo+ICsgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPiArICogZGVhbCBpbiB0 aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh dGlvbiB0aGUKPiArICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCj4gKyAqIHNlbGwgY29waWVzIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlz Cj4gKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRp dGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gKyAqIGFsbCBjb3BpZXMgb3Ig c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09G VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwg RVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI RSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF Cj4gKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xB SU0sIERBTUFHRVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VU IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhF Ugo+ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIENvcHlyaWdodCAo YykgMjAwNCwgSyBBIEZyYXNlcgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX19YRU5fUFVCTElDX0dS QU5UX1RBQkxFX0hfXwo+ICsjZGVmaW5lIF9fWEVOX1BVQkxJQ19HUkFOVF9UQUJMRV9IX18KPiAr Cj4gKyNpbmNsdWRlICJ4ZW4uaCIKPiArCj4gKy8qCj4gKyAqIGBpbmNvbnRlbnRzIDE1MCBnbnR0 YWIgR3JhbnQgVGFibGVzCj4gKyAqCj4gKyAqIFhlbidzIGdyYW50IHRhYmxlcyBwcm92aWRlIGEg Z2VuZXJpYyBtZWNoYW5pc20gdG8gbWVtb3J5IHNoYXJpbmcKPiArICogYmV0d2VlbiBkb21haW5z LiBUaGlzIHNoYXJlZCBtZW1vcnkgaW50ZXJmYWNlIHVuZGVycGlucyB0aGUgc3BsaXQKPiArICog ZGV2aWNlIGRyaXZlcnMgZm9yIGJsb2NrIGFuZCBuZXR3b3JrIElPLgo+ICsgKgo+ICsgKiBFYWNo IGRvbWFpbiBoYXMgaXRzIG93biBncmFudCB0YWJsZS4gVGhpcyBpcyBhIGRhdGEgc3RydWN0dXJl IHRoYXQKPiArICogaXMgc2hhcmVkIHdpdGggWGVuOyBpdCBhbGxvd3MgdGhlIGRvbWFpbiB0byB0 ZWxsIFhlbiB3aGF0IGtpbmQgb2YKPiArICogcGVybWlzc2lvbnMgb3RoZXIgZG9tYWlucyBoYXZl IG9uIGl0cyBwYWdlcy4gRW50cmllcyBpbiB0aGUgZ3JhbnQKPiArICogdGFibGUgYXJlIGlkZW50 aWZpZWQgYnkgZ3JhbnQgcmVmZXJlbmNlcy4gQSBncmFudCByZWZlcmVuY2UgaXMgYW4KPiArICog aW50ZWdlciwgd2hpY2ggaW5kZXhlcyBpbnRvIHRoZSBncmFudCB0YWJsZS4gSXQgYWN0cyBhcyBh Cj4gKyAqIGNhcGFiaWxpdHkgd2hpY2ggdGhlIGdyYW50ZWUgY2FuIHVzZSB0byBwZXJmb3JtIG9w ZXJhdGlvbnMgb24gdGhlCj4gKyAqIGdyYW50ZXLigJlzIG1lbW9yeS4KPiArICoKPiArICogVGhp cyBjYXBhYmlsaXR5LWJhc2VkIHN5c3RlbSBhbGxvd3Mgc2hhcmVkLW1lbW9yeSBjb21tdW5pY2F0 aW9ucwo+ICsgKiBiZXR3ZWVuIHVucHJpdmlsZWdlZCBkb21haW5zLiBBIGdyYW50IHJlZmVyZW5j ZSBhbHNvIGVuY2Fwc3VsYXRlcwo+ICsgKiB0aGUgZGV0YWlscyBvZiBhIHNoYXJlZCBwYWdlLCBy ZW1vdmluZyB0aGUgbmVlZCBmb3IgYSBkb21haW4gdG8KPiArICoga25vdyB0aGUgcmVhbCBtYWNo aW5lIGFkZHJlc3Mgb2YgYSBwYWdlIGl0IGlzIHNoYXJpbmcuIFRoaXMgbWFrZXMKPiArICogaXQg cG9zc2libGUgdG8gc2hhcmUgbWVtb3J5IGNvcnJlY3RseSB3aXRoIGRvbWFpbnMgcnVubmluZyBp bgo+ICsgKiBmdWxseSB2aXJ0dWFsaXNlZCBtZW1vcnkuCj4gKyAqLwo+ICsKPiArLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqIEdSQU5UIFRBQkxFIFJFUFJFU0VOVEFU SU9OCj4gKyAqLwo+ICsKPiArLyogU29tZSByb3VnaCBndWlkZWxpbmVzIG9uIGFjY2Vzc2luZyBh bmQgdXBkYXRpbmcgZ3JhbnQtdGFibGUgZW50cmllcwo+ICsgKiBpbiBhIGNvbmN1cnJlbmN5LXNh ZmUgbWFubmVyLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgTGludXggY29udGFpbnMgYQo+ICsgKiBy ZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gZm9yIGd1ZXN0IE9TZXMgKGRyaXZlcnMveGVuL2dyYW50 X3RhYmxlLmMsIHNlZQo+ICsgKiBodHRwOi8vZ2l0Lmtlcm5lbC5vcmcvP3A9bGludXgva2VybmVs L2dpdC90b3J2YWxkcy9saW51eC5naXQ7YT1ibG9iO2Y9ZHJpdmVycy94ZW4vZ3JhbnQtdGFibGUu YztoYj1IRUFECj4gKyAqCj4gKyAqIE5CLiBXTUIgaXMgYSBuby1vcCBvbiBjdXJyZW50LWdlbmVy YXRpb24geDg2IHByb2Nlc3NvcnMuIEhvd2V2ZXIsIGEKPiArICogICAgIGNvbXBpbGVyIGJhcnJp ZXIgd2lsbCBzdGlsbCBiZSByZXF1aXJlZC4KPiArICoKPiArICogSW50cm9kdWNpbmcgYSB2YWxp ZCBlbnRyeSBpbnRvIHRoZSBncmFudCB0YWJsZToKPiArICogIDEuIFdyaXRlIGVudC0+ZG9taWQu Cj4gKyAqICAyLiBXcml0ZSBlbnQtPmZyYW1lOgo+ICsgKiAgICAgIEdURl9wZXJtaXRfYWNjZXNz OiAgIEZyYW1lIHRvIHdoaWNoIGFjY2VzcyBpcyBwZXJtaXR0ZWQuCj4gKyAqICAgICAgR1RGX2Fj Y2VwdF90cmFuc2ZlcjogUHNldWRvLXBoeXMgZnJhbWUgc2xvdCBiZWluZyBmaWxsZWQgYnkgbmV3 Cj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUsIG9yIHplcm8gaWYgbm9uZS4K PiArICogIDMuIFdyaXRlIG1lbW9yeSBiYXJyaWVyIChXTUIpLgo+ICsgKiAgNC4gV3JpdGUgZW50 LT5mbGFncywgaW5jLiB2YWxpZCB0eXBlLgo+ICsgKgo+ICsgKiBJbnZhbGlkYXRpbmcgYW4gdW51 c2VkIEdURl9wZXJtaXRfYWNjZXNzIGVudHJ5Ogo+ICsgKiAgMS4gZmxhZ3MgPSBlbnQtPmZsYWdz Lgo+ICsgKiAgMi4gT2JzZXJ2ZSB0aGF0ICEoZmxhZ3MgJiAoR1RGX3JlYWRpbmd8R1RGX3dyaXRp bmcpKS4KPiArICogIDMuIENoZWNrIHJlc3VsdCBvZiBTTVAtc2FmZSBDTVBYQ0hHKCZlbnQtPmZs YWdzLCBmbGFncywgMCkuCj4gKyAqICBOQi4gTm8gbmVlZCBmb3IgV01CIGFzIHJldXNlIG9mIGVu dHJ5IGlzIGNvbnRyb2wtZGVwZW5kZW50IG9uIHN1Y2Nlc3Mgb2YKPiArICogICAgICBzdGVwIDMs IGFuZCBhbGwgYXJjaGl0ZWN0dXJlcyBndWFyYW50ZWUgb3JkZXJpbmcgb2YgY3RybC1kZXAgd3Jp dGVzLgo+ICsgKgo+ICsgKiBJbnZhbGlkYXRpbmcgYW4gaW4tdXNlIEdURl9wZXJtaXRfYWNjZXNz IGVudHJ5Ogo+ICsgKiAgVGhpcyBjYW5ub3QgYmUgZG9uZSBkaXJlY3RseS4gUmVxdWVzdCBhc3Np c3RhbmNlIGZyb20gdGhlIGRvbWFpbiBjb250cm9sbGVyCj4gKyAqICB3aGljaCBjYW4gc2V0IGEg dGltZW91dCBvbiB0aGUgdXNlIG9mIGEgZ3JhbnQgZW50cnkgYW5kIHRha2UgbmVjZXNzYXJ5Cj4g KyAqICBhY3Rpb24uIChOQi4gVGhpcyBpcyBub3QgeWV0IGltcGxlbWVudGVkISkuCj4gKyAqCj4g KyAqIEludmFsaWRhdGluZyBhbiB1bnVzZWQgR1RGX2FjY2VwdF90cmFuc2ZlciBlbnRyeToKPiAr ICogIDEuIGZsYWdzID0gZW50LT5mbGFncy4KPiArICogIDIuIE9ic2VydmUgdGhhdCAhKGZsYWdz ICYgR1RGX3RyYW5zZmVyX2NvbW1pdHRlZCkuIFsqXQo+ICsgKiAgMy4gQ2hlY2sgcmVzdWx0IG9m IFNNUC1zYWZlIENNUFhDSEcoJmVudC0+ZmxhZ3MsIGZsYWdzLCAwKS4KPiArICogIE5CLiBObyBu ZWVkIGZvciBXTUIgYXMgcmV1c2Ugb2YgZW50cnkgaXMgY29udHJvbC1kZXBlbmRlbnQgb24gc3Vj Y2VzcyBvZgo+ICsgKiAgICAgIHN0ZXAgMywgYW5kIGFsbCBhcmNoaXRlY3R1cmVzIGd1YXJhbnRl ZSBvcmRlcmluZyBvZiBjdHJsLWRlcCB3cml0ZXMuCj4gKyAqICBbKl0gSWYgR1RGX3RyYW5zZmVy X2NvbW1pdHRlZCBpcyBzZXQgdGhlbiB0aGUgZ3JhbnQgZW50cnkgaXMgJ2NvbW1pdHRlZCcuCj4g KyAqICAgICAgVGhlIGd1ZXN0IG11c3QgL25vdC8gbW9kaWZ5IHRoZSBncmFudCBlbnRyeSB1bnRp bCB0aGUgYWRkcmVzcyBvZiB0aGUKPiArICogICAgICB0cmFuc2ZlcnJlZCBmcmFtZSBpcyB3cml0 dGVuLiBJdCBpcyBzYWZlIGZvciB0aGUgZ3Vlc3QgdG8gc3BpbiB3YWl0aW5nCj4gKyAqICAgICAg Zm9yIHRoaXMgdG8gb2NjdXIgKGRldGVjdCBieSBvYnNlcnZpbmcgR1RGX3RyYW5zZmVyX2NvbXBs ZXRlZCBpbgo+ICsgKiAgICAgIGVudC0+ZmxhZ3MpLgo+ICsgKgo+ICsgKiBJbnZhbGlkYXRpbmcg YSBjb21taXR0ZWQgR1RGX2FjY2VwdF90cmFuc2ZlciBlbnRyeToKPiArICogIDEuIFdhaXQgZm9y IChlbnQtPmZsYWdzICYgR1RGX3RyYW5zZmVyX2NvbXBsZXRlZCkuCj4gKyAqCj4gKyAqIENoYW5n aW5nIGEgR1RGX3Blcm1pdF9hY2Nlc3MgZnJvbSB3cml0YWJsZSB0byByZWFkLW9ubHk6Cj4gKyAq ICBVc2UgU01QLXNhZmUgQ01QWENIRyB0byBzZXQgR1RGX3JlYWRvbmx5LCB3aGlsZSBjaGVja2lu ZyAhR1RGX3dyaXRpbmcuCj4gKyAqCj4gKyAqIENoYW5naW5nIGEgR1RGX3Blcm1pdF9hY2Nlc3Mg ZnJvbSByZWFkLW9ubHkgdG8gd3JpdGFibGU6Cj4gKyAqICBVc2UgU01QLXNhZmUgYml0LXNldHRp bmcgaW5zdHJ1Y3Rpb24uCj4gKyAqLwo+ICsKPiArLyoKPiArICogUmVmZXJlbmNlIHRvIGEgZ3Jh bnQgZW50cnkgaW4gYSBzcGVjaWZpZWQgZG9tYWluJ3MgZ3JhbnQgdGFibGUuCj4gKyAqLwo+ICt0 eXBlZGVmIFVJTlQzMiBncmFudF9yZWZfdDsKPiArCj4gKy8qCj4gKyAqIEEgZ3JhbnQgdGFibGUg Y29tcHJpc2VzIGEgcGFja2VkIGFycmF5IG9mIGdyYW50IGVudHJpZXMgaW4gb25lIG9yIG1vcmUK PiArICogcGFnZSBmcmFtZXMgc2hhcmVkIGJldHdlZW4gWGVuIGFuZCBhIGd1ZXN0Lgo+ICsgKiBb WEVOXTogVGhpcyBmaWVsZCBpcyB3cml0dGVuIGJ5IFhlbiBhbmQgcmVhZCBieSB0aGUgc2hhcmlu ZyBndWVzdC4KPiArICogW0dTVF06IFRoaXMgZmllbGQgaXMgd3JpdHRlbiBieSB0aGUgZ3Vlc3Qg YW5kIHJlYWQgYnkgWGVuLgo+ICsgKi8KPiArCj4gKy8qCj4gKyAqIFZlcnNpb24gMSBvZiB0aGUg Z3JhbnQgdGFibGUgZW50cnkgc3RydWN0dXJlIGlzIG1haW50YWluZWQgcHVyZWx5Cj4gKyAqIGZv ciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4gIE5ldyBndWVzdHMgc2hvdWxkIHVzZSB2ZXJzaW9u IDIuCj4gKyAqLwo+ICsjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwMzAyMGEK PiArI2RlZmluZSBncmFudF9lbnRyeV92MSBncmFudF9lbnRyeQo+ICsjZGVmaW5lIGdyYW50X2Vu dHJ5X3YxX3QgZ3JhbnRfZW50cnlfdAo+ICsjZW5kaWYKPiArc3RydWN0IGdyYW50X2VudHJ5X3Yx IHsKPiArICAgIC8qIEdURl94eHg6IHZhcmlvdXMgdHlwZSBhbmQgZmxhZyBpbmZvcm1hdGlvbi4g IFtYRU4sR1NUXSAqLwo+ICsgICAgVUlOVDE2IGZsYWdzOwo+ICsgICAgLyogVGhlIGRvbWFpbiBi ZWluZyBncmFudGVkIGZvcmVpZ24gcHJpdmlsZWdlcy4gW0dTVF0gKi8KPiArICAgIGRvbWlkX3Qg IGRvbWlkOwo+ICsgICAgLyoKPiArICAgICAqIEdURl9wZXJtaXRfYWNjZXNzOiBGcmFtZSB0aGF0 IEBkb21pZCBpcyBhbGxvd2VkIHRvIG1hcCBhbmQgYWNjZXNzLiBbR1NUXQo+ICsgICAgICogR1RG X2FjY2VwdF90cmFuc2ZlcjogRnJhbWUgd2hvc2Ugb3duZXJzaGlwIHRyYW5zZmVycmVkIGJ5IEBk b21pZC4gW1hFTl0KPiArICAgICAqLwo+ICsgICAgVUlOVDMyIGZyYW1lOwo+ICt9Owo+ICt0eXBl ZGVmIHN0cnVjdCBncmFudF9lbnRyeV92MSBncmFudF9lbnRyeV92MV90Owo+ICsKPiArLyogVGhl IGZpcnN0IGZldyBncmFudCB0YWJsZSBlbnRyaWVzIHdpbGwgYmUgcHJlc2VydmVkIGFjcm9zcyBn cmFudCB0YWJsZQo+ICsgKiB2ZXJzaW9uIGNoYW5nZXMgYW5kIG1heSBiZSBwcmUtcG9wdWxhdGVk IGF0IGRvbWFpbiBjcmVhdGlvbiBieSB0b29scy4KPiArICovCj4gKyNkZWZpbmUgR05UVEFCX05S X1JFU0VSVkVEX0VOVFJJRVMgICAgIDgKPiArI2RlZmluZSBHTlRUQUJfUkVTRVJWRURfQ09OU09M RSAgICAgICAgMAo+ICsjZGVmaW5lIEdOVFRBQl9SRVNFUlZFRF9YRU5TVE9SRSAgICAgICAxCj4g Kwo+ICsvKgo+ICsgKiBUeXBlIG9mIGdyYW50IGVudHJ5Lgo+ICsgKiAgR1RGX2ludmFsaWQ6IFRo aXMgZ3JhbnQgZW50cnkgZ3JhbnRzIG5vIHByaXZpbGVnZXMuCj4gKyAqICBHVEZfcGVybWl0X2Fj Y2VzczogQWxsb3cgQGRvbWlkIHRvIG1hcC9hY2Nlc3MgQGZyYW1lLgo+ICsgKiAgR1RGX2FjY2Vw dF90cmFuc2ZlcjogQWxsb3cgQGRvbWlkIHRvIHRyYW5zZmVyIG93bmVyc2hpcCBvZiBvbmUgcGFn ZSBmcmFtZQo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhpcyBndWVzdC4gWGVuIHdy aXRlcyB0aGUgcGFnZSBudW1iZXIgdG8gQGZyYW1lLgo+ICsgKiAgR1RGX3RyYW5zaXRpdmU6IEFs bG93IEBkb21pZCB0byB0cmFuc2l0aXZlbHkgYWNjZXNzIGEgc3VicmFuZ2Ugb2YKPiArICogICAg ICAgICAgICAgICAgICBAdHJhbnNfZ3JhbnQgaW4gQHRyYW5zX2RvbWlkLiAgTm8gbWFwcGluZ3Mg YXJlIGFsbG93ZWQuCj4gKyAqLwo+ICsjZGVmaW5lIEdURl9pbnZhbGlkICAgICAgICAgKDBVPDww KQo+ICsjZGVmaW5lIEdURl9wZXJtaXRfYWNjZXNzICAgKDFVPDwwKQo+ICsjZGVmaW5lIEdURl9h Y2NlcHRfdHJhbnNmZXIgKDJVPDwwKQo+ICsjZGVmaW5lIEdURl90cmFuc2l0aXZlICAgICAgKDNV PDwwKQo+ICsjZGVmaW5lIEdURl90eXBlX21hc2sgICAgICAgKDNVPDwwKQo+ICsKPiArLyoKPiAr ICogU3ViZmxhZ3MgZm9yIEdURl9wZXJtaXRfYWNjZXNzLgo+ICsgKiAgR1RGX3JlYWRvbmx5OiBS ZXN0cmljdCBAZG9taWQgdG8gcmVhZC1vbmx5IG1hcHBpbmdzIGFuZCBhY2Nlc3Nlcy4gW0dTVF0K PiArICogIEdURl9yZWFkaW5nOiBHcmFudCBlbnRyeSBpcyBjdXJyZW50bHkgbWFwcGVkIGZvciBy ZWFkaW5nIGJ5IEBkb21pZC4gW1hFTl0KPiArICogIEdURl93cml0aW5nOiBHcmFudCBlbnRyeSBp cyBjdXJyZW50bHkgbWFwcGVkIGZvciB3cml0aW5nIGJ5IEBkb21pZC4gW1hFTl0KPiArICogIEdU Rl9QQVQsIEdURl9QV1QsIEdURl9QQ0Q6ICh4ODYpIGNhY2hlIGF0dHJpYnV0ZSBmbGFncyBmb3Ig dGhlIGdyYW50IFtHU1RdCj4gKyAqICBHVEZfc3ViX3BhZ2U6IEdyYW50IGFjY2VzcyB0byBvbmx5 IGEgc3VicmFuZ2Ugb2YgdGhlIHBhZ2UuICBAZG9taWQKPiArICogICAgICAgICAgICAgICAgd2ls bCBvbmx5IGJlIGFsbG93ZWQgdG8gY29weSBmcm9tIHRoZSBncmFudCwgYW5kIG5vdAo+ICsgKiAg ICAgICAgICAgICAgICBtYXAgaXQuIFtHU1RdCj4gKyAqLwo+ICsjZGVmaW5lIF9HVEZfcmVhZG9u bHkgICAgICAgKDIpCj4gKyNkZWZpbmUgR1RGX3JlYWRvbmx5ICAgICAgICAoMVU8PF9HVEZfcmVh ZG9ubHkpCj4gKyNkZWZpbmUgX0dURl9yZWFkaW5nICAgICAgICAoMykKPiArI2RlZmluZSBHVEZf cmVhZGluZyAgICAgICAgICgxVTw8X0dURl9yZWFkaW5nKQo+ICsjZGVmaW5lIF9HVEZfd3JpdGlu ZyAgICAgICAgKDQpCj4gKyNkZWZpbmUgR1RGX3dyaXRpbmcgICAgICAgICAoMVU8PF9HVEZfd3Jp dGluZykKPiArI2RlZmluZSBfR1RGX1BXVCAgICAgICAgICAgICg1KQo+ICsjZGVmaW5lIEdURl9Q V1QgICAgICAgICAgICAgKDFVPDxfR1RGX1BXVCkKPiArI2RlZmluZSBfR1RGX1BDRCAgICAgICAg ICAgICg2KQo+ICsjZGVmaW5lIEdURl9QQ0QgICAgICAgICAgICAgKDFVPDxfR1RGX1BDRCkKPiAr I2RlZmluZSBfR1RGX1BBVCAgICAgICAgICAgICg3KQo+ICsjZGVmaW5lIEdURl9QQVQgICAgICAg ICAgICAgKDFVPDxfR1RGX1BBVCkKPiArI2RlZmluZSBfR1RGX3N1Yl9wYWdlICAgICAgICg4KQo+ ICsjZGVmaW5lIEdURl9zdWJfcGFnZSAgICAgICAgKDFVPDxfR1RGX3N1Yl9wYWdlKQo+ICsKPiAr LyoKPiArICogU3ViZmxhZ3MgZm9yIEdURl9hY2NlcHRfdHJhbnNmZXI6Cj4gKyAqICBHVEZfdHJh bnNmZXJfY29tbWl0dGVkOiBYZW4gc2V0cyB0aGlzIGZsYWcgdG8gaW5kaWNhdGUgdGhhdCBpdCBp cyBjb21taXR0ZWQKPiArICogICAgICB0byB0cmFuc2ZlcnJpbmcgb3duZXJzaGlwIG9mIGEgcGFn ZSBmcmFtZS4gV2hlbiBhIGd1ZXN0IHNlZXMgdGhpcyBmbGFnCj4gKyAqICAgICAgaXQgbXVzdCAv bm90LyBtb2RpZnkgdGhlIGdyYW50IGVudHJ5IHVudGlsIEdURl90cmFuc2Zlcl9jb21wbGV0ZWQg aXMKPiArICogICAgICBzZXQgYnkgWGVuLgo+ICsgKiAgR1RGX3RyYW5zZmVyX2NvbXBsZXRlZDog SXQgaXMgc2FmZSBmb3IgdGhlIGd1ZXN0IHRvIHNwaW4td2FpdCBvbiB0aGlzIGZsYWcKPiArICog ICAgICBhZnRlciByZWFkaW5nIEdURl90cmFuc2Zlcl9jb21taXR0ZWQuIFhlbiB3aWxsIGFsd2F5 cyB3cml0ZSB0aGUgZnJhbWUKPiArICogICAgICBhZGRyZXNzLCBmb2xsb3dlZCBieSBPUmluZyB0 aGlzIGZsYWcsIGluIGEgdGltZWx5IG1hbm5lci4KPiArICovCj4gKyNkZWZpbmUgX0dURl90cmFu c2Zlcl9jb21taXR0ZWQgKDIpCj4gKyNkZWZpbmUgR1RGX3RyYW5zZmVyX2NvbW1pdHRlZCAgKDFV PDxfR1RGX3RyYW5zZmVyX2NvbW1pdHRlZCkKPiArI2RlZmluZSBfR1RGX3RyYW5zZmVyX2NvbXBs ZXRlZCAoMykKPiArI2RlZmluZSBHVEZfdHJhbnNmZXJfY29tcGxldGVkICAoMVU8PF9HVEZfdHJh bnNmZXJfY29tcGxldGVkKQo+ICsKPiArLyoKPiArICogVmVyc2lvbiAyIGdyYW50IHRhYmxlIGVu dHJpZXMuICBUaGVzZSBmdWxmaWwgdGhlIHNhbWUgcm9sZSBhcwo+ICsgKiB2ZXJzaW9uIDEgZW50 cmllcywgYnV0IGNhbiByZXByZXNlbnQgbW9yZSBjb21wbGljYXRlZCBvcGVyYXRpb25zLgo+ICsg KiBBbnkgZ2l2ZW4gZG9tYWluIHdpbGwgaGF2ZSBlaXRoZXIgYSB2ZXJzaW9uIDEgb3IgYSB2ZXJz aW9uIDIgdGFibGUsCj4gKyAqIGFuZCBldmVyeSBlbnRyeSBpbiB0aGUgdGFibGUgd2lsbCBiZSB0 aGUgc2FtZSB2ZXJzaW9uLgo+ICsgKgo+ICsgKiBUaGUgaW50ZXJmYWNlIGJ5IHdoaWNoIGRvbWFp bnMgdXNlIGdyYW50IHJlZmVyZW5jZXMgZG9lcyBub3QgZGVwZW5kCj4gKyAqIG9uIHRoZSBncmFu dCB0YWJsZSB2ZXJzaW9uIGluIHVzZSBieSB0aGUgb3RoZXIgZG9tYWluLgo+ICsgKi8KPiArI2lm IF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPj0gMHgwMDAzMDIwYQo+ICsvKgo+ICsgKiBWZXJz aW9uIDEgYW5kIHZlcnNpb24gMiBncmFudCBlbnRyaWVzIHNoYXJlIGEgY29tbW9uIHByZWZpeC4g IFRoZQo+ICsgKiBmaWVsZHMgb2YgdGhlIHByZWZpeCBhcmUgZG9jdW1lbnRlZCBhcyBwYXJ0IG9m IHN0cnVjdAo+ICsgKiBncmFudF9lbnRyeV92MS4KPiArICovCj4gK3N0cnVjdCBncmFudF9lbnRy eV9oZWFkZXIgewo+ICsgICAgVUlOVDE2IGZsYWdzOwo+ICsgICAgZG9taWRfdCAgZG9taWQ7Cj4g K307Cj4gK3R5cGVkZWYgc3RydWN0IGdyYW50X2VudHJ5X2hlYWRlciBncmFudF9lbnRyeV9oZWFk ZXJfdDsKPiArCj4gKy8qCj4gKyAqIFZlcnNpb24gMiBvZiB0aGUgZ3JhbnQgZW50cnkgc3RydWN0 dXJlLgo+ICsgKi8KPiArdW5pb24gZ3JhbnRfZW50cnlfdjIgewo+ICsgICAgZ3JhbnRfZW50cnlf aGVhZGVyX3QgaGRyOwo+ICsKPiArICAgIC8qCj4gKyAgICAgKiBUaGlzIG1lbWJlciBpcyB1c2Vk IGZvciBWMS1zdHlsZSBmdWxsIHBhZ2UgZ3JhbnRzLCB3aGVyZSBlaXRoZXI6Cj4gKyAgICAgKgo+ ICsgICAgICogLS0gaGRyLnR5cGUgaXMgR1RGX2FjY2VwdF90cmFuc2Zlciwgb3IKPiArICAgICAq IC0tIGhkci50eXBlIGlzIEdURl9wZXJtaXRfYWNjZXNzIGFuZCBHVEZfc3ViX3BhZ2UgaXMgbm90 IHNldC4KPiArICAgICAqCj4gKyAgICAgKiBJbiB0aGF0IGNhc2UsIHRoZSBmcmFtZSBmaWVsZCBo YXMgdGhlIHNhbWUgc2VtYW50aWNzIGFzIHRoZQo+ICsgICAgICogZmllbGQgb2YgdGhlIHNhbWUg bmFtZSBpbiB0aGUgVjEgZW50cnkgc3RydWN0dXJlLgo+ICsgICAgICovCj4gKyAgICBzdHJ1Y3Qg ewo+ICsgICAgICAgIGdyYW50X2VudHJ5X2hlYWRlcl90IGhkcjsKPiArICAgICAgICBVSU5UMzIg cGFkMDsKPiArICAgICAgICBVSU5UNjQgZnJhbWU7Cj4gKyAgICB9IGZ1bGxfcGFnZTsKPiArCj4g KyAgICAvKgo+ICsgICAgICogSWYgdGhlIGdyYW50IHR5cGUgaXMgR1RGX2dyYW50X2FjY2VzcyBh bmQgR1RGX3N1Yl9wYWdlIGlzIHNldCwKPiArICAgICAqIEBkb21pZCBpcyBhbGxvd2VkIHRvIGFj Y2VzcyBieXRlcyBbQHBhZ2Vfb2ZmLEBwYWdlX29mZitAbGVuZ3RoKQo+ICsgICAgICogaW4gZnJh bWUgQGZyYW1lLgo+ICsgICAgICovCj4gKyAgICBzdHJ1Y3Qgewo+ICsgICAgICAgIGdyYW50X2Vu dHJ5X2hlYWRlcl90IGhkcjsKPiArICAgICAgICBVSU5UMTYgcGFnZV9vZmY7Cj4gKyAgICAgICAg VUlOVDE2IGxlbmd0aDsKPiArICAgICAgICBVSU5UNjQgZnJhbWU7Cj4gKyAgICB9IHN1Yl9wYWdl Owo+ICsKPiArICAgIC8qCj4gKyAgICAgKiBJZiB0aGUgZ3JhbnQgaXMgR1RGX3RyYW5zaXRpdmUs IEBkb21pZCBpcyBhbGxvd2VkIHRvIHVzZSB0aGUKPiArICAgICAqIGdyYW50IEBncmVmIGluIGRv bWFpbiBAdHJhbnNfZG9taWQsIGFzIGlmIGl0IHdhcyB0aGUgbG9jYWwKPiArICAgICAqIGRvbWFp bi4gIE9idmlvdXNseSwgdGhlIHRyYW5zaXRpdmUgYWNjZXNzIG11c3QgYmUgY29tcGF0aWJsZQo+ ICsgICAgICogd2l0aCB0aGUgb3JpZ2luYWwgZ3JhbnQuCj4gKyAgICAgKgo+ICsgICAgICogVGhl IGN1cnJlbnQgdmVyc2lvbiBvZiBYZW4gZG9lcyBub3QgYWxsb3cgdHJhbnNpdGl2ZSBncmFudHMK PiArICAgICAqIHRvIGJlIG1hcHBlZC4KPiArICAgICAqLwo+ICsgICAgc3RydWN0IHsKPiArICAg ICAgICBncmFudF9lbnRyeV9oZWFkZXJfdCBoZHI7Cj4gKyAgICAgICAgZG9taWRfdCB0cmFuc19k b21pZDsKPiArICAgICAgICBVSU5UMTYgcGFkMDsKPiArICAgICAgICBncmFudF9yZWZfdCBncmVm Owo+ICsgICAgfSB0cmFuc2l0aXZlOwo+ICsKPiArICAgIFVJTlQzMiBfX3NwYWNlcls0XTsgLyog UGFkIHRvIGEgcG93ZXIgb2YgdHdvICovCj4gK307Cj4gK3R5cGVkZWYgdW5pb24gZ3JhbnRfZW50 cnlfdjIgZ3JhbnRfZW50cnlfdjJfdDsKPiArCj4gK3R5cGVkZWYgVUlOVDE2IGdyYW50X3N0YXR1 c190Owo+ICsKPiArI2VuZGlmIC8qIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gKi8KPiArCj4g Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiBHUkFOVCBUQUJMRSBR VUVSSUVTIEFORCBVU0VTCj4gKyAqLwo+ICsKPiArLyogYCBlbnVtIG5lZ19lcnJub3ZhbAo+ICsg KiBgIEhZUEVSVklTT1JfZ3JhbnRfdGFibGVfb3AoZW51bSBncmFudF90YWJsZV9vcCBjbWQsCj4g KyAqIGAgICAgICAgICAgICAgICAgICAgICAgICAgICBWT0lEICphcmdzLAo+ICsgKiBgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVUlOVDMyIGNvdW50KQo+ICsgKiBgCj4gKyAqCj4gKyAqIEBh cmdzIHBvaW50cyB0byBhbiBhcnJheSBvZiBhIHBlci1jb21tYW5kIGRhdGEgc3RydWN0dXJlLiBU aGUgYXJyYXkKPiArICogaGFzIEBjb3VudCBtZW1iZXJzCj4gKyAqLwo+ICsKPiArLyogYCBlbnVt IGdyYW50X3RhYmxlX29wIHsgLy8gR05UVEFCT1BfKiA9PiBzdHJ1Y3QgZ250dGFiXyogKi8KPiAr I2RlZmluZSBHTlRUQUJPUF9tYXBfZ3JhbnRfcmVmICAgICAgICAwCj4gKyNkZWZpbmUgR05UVEFC T1BfdW5tYXBfZ3JhbnRfcmVmICAgICAgMQo+ICsjZGVmaW5lIEdOVFRBQk9QX3NldHVwX3RhYmxl ICAgICAgICAgIDIKPiArI2RlZmluZSBHTlRUQUJPUF9kdW1wX3RhYmxlICAgICAgICAgICAzCj4g KyNkZWZpbmUgR05UVEFCT1BfdHJhbnNmZXIgICAgICAgICAgICAgNAo+ICsjZGVmaW5lIEdOVFRB Qk9QX2NvcHkgICAgICAgICAgICAgICAgIDUKPiArI2RlZmluZSBHTlRUQUJPUF9xdWVyeV9zaXpl ICAgICAgICAgICA2Cj4gKyNkZWZpbmUgR05UVEFCT1BfdW5tYXBfYW5kX3JlcGxhY2UgICAgNwo+ ICsjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA+PSAweDAwMDMwMjBhCj4gKyNkZWZpbmUg R05UVEFCT1Bfc2V0X3ZlcnNpb24gICAgICAgICAgOAo+ICsjZGVmaW5lIEdOVFRBQk9QX2dldF9z dGF0dXNfZnJhbWVzICAgIDkKPiArI2RlZmluZSBHTlRUQUJPUF9nZXRfdmVyc2lvbiAgICAgICAg ICAxMAo+ICsjZGVmaW5lIEdOVFRBQk9QX3N3YXBfZ3JhbnRfcmVmCSAgICAgIDExCj4gKyNlbmRp ZiAvKiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fICovCj4gKy8qIGAgfSAqLwo+ICsKPiArLyoK PiArICogSGFuZGxlIHRvIHRyYWNrIGEgbWFwcGluZyBjcmVhdGVkIHZpYSBhIGdyYW50IHJlZmVy ZW5jZS4KPiArICovCj4gK3R5cGVkZWYgVUlOVDMyIGdyYW50X2hhbmRsZV90Owo+ICsKPiArLyoK PiArICogR05UVEFCT1BfbWFwX2dyYW50X3JlZjogTWFwIHRoZSBncmFudCBlbnRyeSAoPGRvbT4s PHJlZj4pIGZvciBhY2Nlc3MKPiArICogYnkgZGV2aWNlcyBhbmQvb3IgaG9zdCBDUFVzLiBJZiBz dWNjZXNzZnVsLCA8aGFuZGxlPiBpcyBhIHRyYWNraW5nIG51bWJlcgo+ICsgKiB0aGF0IG11c3Qg YmUgcHJlc2VudGVkIGxhdGVyIHRvIGRlc3Ryb3kgdGhlIG1hcHBpbmcocykuIE9uIGVycm9yLCA8 aGFuZGxlPgo+ICsgKiBpcyBhIG5lZ2F0aXZlIHN0YXR1cyBjb2RlLgo+ICsgKiBOT1RFUzoKPiAr ICogIDEuIElmIEdOVE1BUF9kZXZpY2VfbWFwIGlzIHNwZWNpZmllZCB0aGVuIDxkZXZfYnVzX2Fk ZHI+IGlzIHRoZSBhZGRyZXNzCj4gKyAqICAgICB2aWEgd2hpY2ggSS9PIGRldmljZXMgbWF5IGFj Y2VzcyB0aGUgZ3JhbnRlZCBmcmFtZS4KPiArICogIDIuIElmIEdOVE1BUF9ob3N0X21hcCBpcyBz cGVjaWZpZWQgdGhlbiBhIG1hcHBpbmcgd2lsbCBiZSBhZGRlZCBhdAo+ICsgKiAgICAgZWl0aGVy IGEgaG9zdCB2aXJ0dWFsIGFkZHJlc3MgaW4gdGhlIGN1cnJlbnQgYWRkcmVzcyBzcGFjZSwgb3Ig YXQKPiArICogICAgIGEgUFRFIGF0IHRoZSBzcGVjaWZpZWQgbWFjaGluZSBhZGRyZXNzLiAgVGhl IHR5cGUgb2YgbWFwcGluZyB0bwo+ICsgKiAgICAgcGVyZm9ybSBpcyBzZWxlY3RlZCB0aHJvdWdo IHRoZSBHTlRNQVBfY29udGFpbnNfcHRlIGZsYWcsIGFuZCB0aGUKPiArICogICAgIGFkZHJlc3Mg aXMgc3BlY2lmaWVkIGluIDxob3N0X2FkZHI+Lgo+ICsgKiAgMy4gTWFwcGluZ3Mgc2hvdWxkIG9u bHkgYmUgZGVzdHJveWVkIHZpYSBHTlRUQUJPUF91bm1hcF9ncmFudF9yZWYuIElmIGEKPiArICog ICAgIGhvc3QgbWFwcGluZyBpcyBkZXN0cm95ZWQgYnkgb3RoZXIgbWVhbnMgdGhlbiBpdCBpcyAq Tk9UKiBndWFyYW50ZWVkCj4gKyAqICAgICB0byBiZSBhY2NvdW50ZWQgdG8gdGhlIGNvcnJlY3Qg Z3JhbnQgcmVmZXJlbmNlIQo+ICsgKi8KPiArc3RydWN0IGdudHRhYl9tYXBfZ3JhbnRfcmVmIHsK PiArICAgIC8qIElOIHBhcmFtZXRlcnMuICovCj4gKyAgICBVSU5UNjQgaG9zdF9hZGRyOwo+ICsg ICAgVUlOVDMyIGZsYWdzOyAgICAgICAgICAgICAgIC8qIEdOVE1BUF8qICovCj4gKyAgICBncmFu dF9yZWZfdCByZWY7Cj4gKyAgICBkb21pZF90ICBkb207Cj4gKyAgICAvKiBPVVQgcGFyYW1ldGVy cy4gKi8KPiArICAgIElOVDE2ICBzdGF0dXM7ICAgICAgICAgICAgICAvKiA9PiBlbnVtIGdyYW50 X3N0YXR1cyAqLwo+ICsgICAgZ3JhbnRfaGFuZGxlX3QgaGFuZGxlOwo+ICsgICAgVUlOVDY0IGRl dl9idXNfYWRkcjsKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgZ250dGFiX21hcF9ncmFudF9yZWYg Z250dGFiX21hcF9ncmFudF9yZWZfdDsKPiArREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoZ250dGFi X21hcF9ncmFudF9yZWZfdCk7Cj4gKwo+ICsvKgo+ICsgKiBHTlRUQUJPUF91bm1hcF9ncmFudF9y ZWY6IERlc3Ryb3kgb25lIG9yIG1vcmUgZ3JhbnQtcmVmZXJlbmNlIG1hcHBpbmdzCj4gKyAqIHRy YWNrZWQgYnkgPGhhbmRsZT4uIElmIDxob3N0X2FkZHI+IG9yIDxkZXZfYnVzX2FkZHI+IGlzIHpl cm8sIHRoYXQKPiArICogZmllbGQgaXMgaWdub3JlZC4gSWYgbm9uLXplcm8sIHRoZXkgbXVzdCBy ZWZlciB0byBhIGRldmljZS9ob3N0IG1hcHBpbmcKPiArICogdGhhdCBpcyB0cmFja2VkIGJ5IDxo YW5kbGU+Cj4gKyAqIE5PVEVTOgo+ICsgKiAgMS4gVGhlIGNhbGwgbWF5IGZhaWwgaW4gYW4gdW5k ZWZpbmVkIG1hbm5lciBpZiBlaXRoZXIgbWFwcGluZyBpcyBub3QKPiArICogICAgIHRyYWNrZWQg YnkgPGhhbmRsZT4uCj4gKyAqICAzLiBBZnRlciBleGVjdXRpbmcgYSBiYXRjaCBvZiB1bm1hcHMs IGl0IGlzIGd1YXJhbnRlZWQgdGhhdCBubyBzdGFsZQo+ICsgKiAgICAgbWFwcGluZ3Mgd2lsbCBy ZW1haW4gaW4gdGhlIGRldmljZSBvciBob3N0IFRMQnMuCj4gKyAqLwo+ICtzdHJ1Y3QgZ250dGFi X3VubWFwX2dyYW50X3JlZiB7Cj4gKyAgICAvKiBJTiBwYXJhbWV0ZXJzLiAqLwo+ICsgICAgVUlO VDY0IGhvc3RfYWRkcjsKPiArICAgIFVJTlQ2NCBkZXZfYnVzX2FkZHI7Cj4gKyAgICBncmFudF9o YW5kbGVfdCBoYW5kbGU7Cj4gKyAgICAvKiBPVVQgcGFyYW1ldGVycy4gKi8KPiArICAgIElOVDE2 ICBzdGF0dXM7ICAgICAgICAgICAgICAvKiA9PiBlbnVtIGdyYW50X3N0YXR1cyAqLwo+ICt9Owo+ ICt0eXBlZGVmIHN0cnVjdCBnbnR0YWJfdW5tYXBfZ3JhbnRfcmVmIGdudHRhYl91bm1hcF9ncmFu dF9yZWZfdDsKPiArREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoZ250dGFiX3VubWFwX2dyYW50X3Jl Zl90KTsKPiArCj4gKy8qCj4gKyAqIEdOVFRBQk9QX3NldHVwX3RhYmxlOiBTZXQgdXAgYSBncmFu dCB0YWJsZSBmb3IgPGRvbT4gY29tcHJpc2luZyBhdCBsZWFzdAo+ICsgKiA8bnJfZnJhbWVzPiBw YWdlcy4gVGhlIGZyYW1lIGFkZHJlc3NlcyBhcmUgd3JpdHRlbiB0byB0aGUgPGZyYW1lX2xpc3Q+ Lgo+ICsgKiBPbmx5IDxucl9mcmFtZXM+IGFkZHJlc3NlcyBhcmUgd3JpdHRlbiwgZXZlbiBpZiB0 aGUgdGFibGUgaXMgbGFyZ2VyLgo+ICsgKiBOT1RFUzoKPiArICogIDEuIDxkb20+IG1heSBiZSBz cGVjaWZpZWQgYXMgRE9NSURfU0VMRi4KPiArICogIDIuIE9ubHkgYSBzdWZmaWNpZW50bHktcHJp dmlsZWdlZCBkb21haW4gbWF5IHNwZWNpZnkgPGRvbT4gIT0gRE9NSURfU0VMRi4KPiArICogIDMu IFhlbiBtYXkgbm90IHN1cHBvcnQgbW9yZSB0aGFuIGEgc2luZ2xlIGdyYW50LXRhYmxlIHBhZ2Ug cGVyIGRvbWFpbi4KPiArICovCj4gK3N0cnVjdCBnbnR0YWJfc2V0dXBfdGFibGUgewo+ICsgICAg LyogSU4gcGFyYW1ldGVycy4gKi8KPiArICAgIGRvbWlkX3QgIGRvbTsKPiArICAgIFVJTlQzMiBu cl9mcmFtZXM7Cj4gKyAgICAvKiBPVVQgcGFyYW1ldGVycy4gKi8KPiArICAgIElOVDE2ICBzdGF0 dXM7ICAgICAgICAgICAgICAvKiA9PiBlbnVtIGdyYW50X3N0YXR1cyAqLwo+ICsjaWYgX19YRU5f SU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDAzMDAKPiArICAgIFhFTl9HVUVTVF9IQU5ETEUo dWxvbmcpIGZyYW1lX2xpc3Q7Cj4gKyNlbHNlCj4gKyAgICBYRU5fR1VFU1RfSEFORExFKHhlbl9w Zm5fdCkgZnJhbWVfbGlzdDsKPiArI2VuZGlmCj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IGdudHRh Yl9zZXR1cF90YWJsZSBnbnR0YWJfc2V0dXBfdGFibGVfdDsKPiArREVGSU5FX1hFTl9HVUVTVF9I QU5ETEUoZ250dGFiX3NldHVwX3RhYmxlX3QpOwo+ICsKPiArLyoKPiArICogR05UVEFCT1BfZHVt cF90YWJsZTogRHVtcCB0aGUgY29udGVudHMgb2YgdGhlIGdyYW50IHRhYmxlIHRvIHRoZQo+ICsg KiB4ZW4gY29uc29sZS4gRGVidWdnaW5nIHVzZSBvbmx5Lgo+ICsgKi8KPiArc3RydWN0IGdudHRh Yl9kdW1wX3RhYmxlIHsKPiArICAgIC8qIElOIHBhcmFtZXRlcnMuICovCj4gKyAgICBkb21pZF90 IGRvbTsKPiArICAgIC8qIE9VVCBwYXJhbWV0ZXJzLiAqLwo+ICsgICAgSU5UMTYgc3RhdHVzOyAg ICAgICAgICAgICAgIC8qID0+IGVudW0gZ3JhbnRfc3RhdHVzICovCj4gK307Cj4gK3R5cGVkZWYg c3RydWN0IGdudHRhYl9kdW1wX3RhYmxlIGdudHRhYl9kdW1wX3RhYmxlX3Q7Cj4gK0RFRklORV9Y RU5fR1VFU1RfSEFORExFKGdudHRhYl9kdW1wX3RhYmxlX3QpOwo+ICsKPiArLyoKPiArICogR05U VEFCT1BfdHJhbnNmZXJfZ3JhbnRfcmVmOiBUcmFuc2ZlciA8ZnJhbWU+IHRvIGEgZm9yZWlnbiBk b21haW4uIFRoZQo+ICsgKiBmb3JlaWduIGRvbWFpbiBoYXMgcHJldmlvdXNseSByZWdpc3RlcmVk IGl0cyBpbnRlcmVzdCBpbiB0aGUgdHJhbnNmZXIgdmlhCj4gKyAqIDxkb21pZCwgcmVmPi4KPiAr ICoKPiArICogTm90ZSB0aGF0LCBldmVuIGlmIHRoZSB0cmFuc2ZlciBmYWlscywgdGhlIHNwZWNp ZmllZCBwYWdlIG5vIGxvbmdlciBiZWxvbmdzCj4gKyAqIHRvIHRoZSBjYWxsaW5nIGRvbWFpbiAq dW5sZXNzKiB0aGUgZXJyb3IgaXMgR05UU1RfYmFkX3BhZ2UuCj4gKyAqLwo+ICtzdHJ1Y3QgZ250 dGFiX3RyYW5zZmVyIHsKPiArICAgIC8qIElOIHBhcmFtZXRlcnMuICovCj4gKyAgICB4ZW5fcGZu X3QgICAgIG1mbjsKPiArICAgIGRvbWlkX3QgICAgICAgZG9taWQ7Cj4gKyAgICBncmFudF9yZWZf dCAgIHJlZjsKPiArICAgIC8qIE9VVCBwYXJhbWV0ZXJzLiAqLwo+ICsgICAgSU5UMTYgICAgICAg c3RhdHVzOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCBnbnR0YWJfdHJhbnNmZXIgZ250dGFiX3Ry YW5zZmVyX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKGdudHRhYl90cmFuc2Zlcl90KTsK PiArCj4gKwo+ICsvKgo+ICsgKiBHTlRUQUJPUF9jb3B5OiBIeXBlcnZpc29yIGJhc2VkIGNvcHkK PiArICogc291cmNlIGFuZCBkZXN0aW5hdGlvbnMgY2FuIGJlIGVpdGhlcnMgTUZOcyBvciwgZm9y IGZvcmVpZ24gZG9tYWlucywKPiArICogZ3JhbnQgcmVmZXJlbmNlcy4gdGhlIGZvcmVpZ24gZG9t YWluIGhhcyB0byBncmFudCByZWFkL3dyaXRlIGFjY2Vzcwo+ICsgKiBpbiBpdHMgZ3JhbnQgdGFi bGUuCj4gKyAqCj4gKyAqIFRoZSBmbGFncyBzcGVjaWZ5IHdoYXQgdHlwZSBzb3VyY2UgYW5kIGRl c3RpbmF0aW9ucyBhcmUgKGVpdGhlciBNRk4KPiArICogb3IgZ3JhbnQgcmVmZXJlbmNlKS4KPiAr ICoKPiArICogTm90ZSB0aGF0IHRoaXMgY2FuIGFsc28gYmUgdXNlZCB0byBjb3B5IGRhdGEgYmV0 d2VlbiB0d28gZG9tYWlucwo+ICsgKiB2aWEgYSB0aGlyZCBwYXJ0eSBpZiB0aGUgc291cmNlIGFu ZCBkZXN0aW5hdGlvbiBkb21haW5zIGhhZCBwcmV2aW91c2x5Cj4gKyAqIGdyYW50IGFwcHJvcHJp YXRlIGFjY2VzcyB0byB0aGVpciBwYWdlcyB0byB0aGUgdGhpcmQgcGFydHkuCj4gKyAqCj4gKyAq IHNvdXJjZV9vZmZzZXQgc3BlY2lmaWVzIGFuIG9mZnNldCBpbiB0aGUgc291cmNlIGZyYW1lLCBk ZXN0X29mZnNldAo+ICsgKiB0aGUgb2Zmc2V0IGluIHRoZSB0YXJnZXQgZnJhbWUgYW5kICBsZW4g c3BlY2lmaWVzIHRoZSBudW1iZXIgb2YKPiArICogYnl0ZXMgdG8gYmUgY29waWVkLgo+ICsgKi8K PiArCj4gKyNkZWZpbmUgX0dOVENPUFlfc291cmNlX2dyZWYgICAgICAoMCkKPiArI2RlZmluZSBH TlRDT1BZX3NvdXJjZV9ncmVmICAgICAgICgxPDxfR05UQ09QWV9zb3VyY2VfZ3JlZikKPiArI2Rl ZmluZSBfR05UQ09QWV9kZXN0X2dyZWYgICAgICAgICgxKQo+ICsjZGVmaW5lIEdOVENPUFlfZGVz dF9ncmVmICAgICAgICAgKDE8PF9HTlRDT1BZX2Rlc3RfZ3JlZikKPiArCj4gK3N0cnVjdCBnbnR0 YWJfY29weSB7Cj4gKyAgICAvKiBJTiBwYXJhbWV0ZXJzLiAqLwo+ICsgICAgc3RydWN0IHsKPiAr ICAgICAgICB1bmlvbiB7Cj4gKyAgICAgICAgICAgIGdyYW50X3JlZl90IHJlZjsKPiArICAgICAg ICAgICAgeGVuX3Bmbl90ICAgZ21mbjsKPiArICAgICAgICB9IHU7Cj4gKyAgICAgICAgZG9taWRf dCAgZG9taWQ7Cj4gKyAgICAgICAgVUlOVDE2IG9mZnNldDsKPiArICAgIH0gc291cmNlLCBkZXN0 Owo+ICsgICAgVUlOVDE2ICAgICAgbGVuOwo+ICsgICAgVUlOVDE2ICAgICAgZmxhZ3M7ICAgICAg ICAgIC8qIEdOVENPUFlfKiAqLwo+ICsgICAgLyogT1VUIHBhcmFtZXRlcnMuICovCj4gKyAgICBJ TlQxNiAgICAgICBzdGF0dXM7Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IGdudHRhYl9jb3B5ICBn bnR0YWJfY29weV90Owo+ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShnbnR0YWJfY29weV90KTsK PiArCj4gKy8qCj4gKyAqIEdOVFRBQk9QX3F1ZXJ5X3NpemU6IFF1ZXJ5IHRoZSBjdXJyZW50IGFu ZCBtYXhpbXVtIHNpemVzIG9mIHRoZSBzaGFyZWQKPiArICogZ3JhbnQgdGFibGUuCj4gKyAqIE5P VEVTOgo+ICsgKiAgMS4gPGRvbT4gbWF5IGJlIHNwZWNpZmllZCBhcyBET01JRF9TRUxGLgo+ICsg KiAgMi4gT25seSBhIHN1ZmZpY2llbnRseS1wcml2aWxlZ2VkIGRvbWFpbiBtYXkgc3BlY2lmeSA8 ZG9tPiAhPSBET01JRF9TRUxGLgo+ICsgKi8KPiArc3RydWN0IGdudHRhYl9xdWVyeV9zaXplIHsK PiArICAgIC8qIElOIHBhcmFtZXRlcnMuICovCj4gKyAgICBkb21pZF90ICBkb207Cj4gKyAgICAv KiBPVVQgcGFyYW1ldGVycy4gKi8KPiArICAgIFVJTlQzMiBucl9mcmFtZXM7Cj4gKyAgICBVSU5U MzIgbWF4X25yX2ZyYW1lczsKPiArICAgIElOVDE2ICBzdGF0dXM7ICAgICAgICAgICAgICAvKiA9 PiBlbnVtIGdyYW50X3N0YXR1cyAqLwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCBnbnR0YWJfcXVl cnlfc2l6ZSBnbnR0YWJfcXVlcnlfc2l6ZV90Owo+ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShn bnR0YWJfcXVlcnlfc2l6ZV90KTsKPiArCj4gKy8qCj4gKyAqIEdOVFRBQk9QX3VubWFwX2FuZF9y ZXBsYWNlOiBEZXN0cm95IG9uZSBvciBtb3JlIGdyYW50LXJlZmVyZW5jZSBtYXBwaW5ncwo+ICsg KiB0cmFja2VkIGJ5IDxoYW5kbGU+IGJ1dCBhdG9taWNhbGx5IHJlcGxhY2UgdGhlIHBhZ2UgdGFi bGUgZW50cnkgd2l0aCBvbmUKPiArICogcG9pbnRpbmcgdG8gdGhlIG1hY2hpbmUgYWRkcmVzcyB1 bmRlciA8bmV3X2FkZHI+LiAgPG5ld19hZGRyPiB3aWxsIGJlCj4gKyAqIHJlZGlyZWN0ZWQgdG8g dGhlIG51bGwgZW50cnkuCj4gKyAqIE5PVEVTOgo+ICsgKiAgMS4gVGhlIGNhbGwgbWF5IGZhaWwg aW4gYW4gdW5kZWZpbmVkIG1hbm5lciBpZiBlaXRoZXIgbWFwcGluZyBpcyBub3QKPiArICogICAg IHRyYWNrZWQgYnkgPGhhbmRsZT4uCj4gKyAqICAyLiBBZnRlciBleGVjdXRpbmcgYSBiYXRjaCBv ZiB1bm1hcHMsIGl0IGlzIGd1YXJhbnRlZWQgdGhhdCBubyBzdGFsZQo+ICsgKiAgICAgbWFwcGlu Z3Mgd2lsbCByZW1haW4gaW4gdGhlIGRldmljZSBvciBob3N0IFRMQnMuCj4gKyAqLwo+ICtzdHJ1 Y3QgZ250dGFiX3VubWFwX2FuZF9yZXBsYWNlIHsKPiArICAgIC8qIElOIHBhcmFtZXRlcnMuICov Cj4gKyAgICBVSU5UNjQgaG9zdF9hZGRyOwo+ICsgICAgVUlOVDY0IG5ld19hZGRyOwo+ICsgICAg Z3JhbnRfaGFuZGxlX3QgaGFuZGxlOwo+ICsgICAgLyogT1VUIHBhcmFtZXRlcnMuICovCj4gKyAg ICBJTlQxNiAgc3RhdHVzOyAgICAgICAgICAgICAgLyogPT4gZW51bSBncmFudF9zdGF0dXMgKi8K PiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgZ250dGFiX3VubWFwX2FuZF9yZXBsYWNlIGdudHRhYl91 bm1hcF9hbmRfcmVwbGFjZV90Owo+ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShnbnR0YWJfdW5t YXBfYW5kX3JlcGxhY2VfdCk7Cj4gKwo+ICsjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA+ PSAweDAwMDMwMjBhCj4gKy8qCj4gKyAqIEdOVFRBQk9QX3NldF92ZXJzaW9uOiBSZXF1ZXN0IGEg cGFydGljdWxhciB2ZXJzaW9uIG9mIHRoZSBncmFudAo+ICsgKiB0YWJsZSBzaGFyZWQgdGFibGUg c3RydWN0dXJlLiAgVGhpcyBvcGVyYXRpb24gY2FuIG9ubHkgYmUgcGVyZm9ybWVkCj4gKyAqIG9u Y2UgaW4gYW55IGdpdmVuIGRvbWFpbi4gIEl0IG11c3QgYmUgcGVyZm9ybWVkIGJlZm9yZSBhbnkg Z3JhbnRzCj4gKyAqIGFyZSBhY3RpdmF0ZWQ7IG90aGVyd2lzZSwgdGhlIGRvbWFpbiB3aWxsIGJl IHN0dWNrIHdpdGggdmVyc2lvbiAxLgo+ICsgKiBUaGUgb25seSBkZWZpbmVkIHZlcnNpb25zIGFy ZSAxIGFuZCAyLgo+ICsgKi8KPiArc3RydWN0IGdudHRhYl9zZXRfdmVyc2lvbiB7Cj4gKyAgICAv KiBJTi9PVVQgcGFyYW1ldGVycyAqLwo+ICsgICAgVUlOVDMyIHZlcnNpb247Cj4gK307Cj4gK3R5 cGVkZWYgc3RydWN0IGdudHRhYl9zZXRfdmVyc2lvbiBnbnR0YWJfc2V0X3ZlcnNpb25fdDsKPiAr REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoZ250dGFiX3NldF92ZXJzaW9uX3QpOwo+ICsKPiArCj4g Ky8qCj4gKyAqIEdOVFRBQk9QX2dldF9zdGF0dXNfZnJhbWVzOiBHZXQgdGhlIGxpc3Qgb2YgZnJh bWVzIHVzZWQgdG8gc3RvcmUgZ3JhbnQKPiArICogc3RhdHVzIGZvciA8ZG9tPi4gSW4gZ3JhbnQg Zm9ybWF0IHZlcnNpb24gMiwgdGhlIHN0YXR1cyBpcyBzZXBhcmF0ZWQKPiArICogZnJvbSB0aGUg b3RoZXIgc2hhcmVkIGdyYW50IGZpZWxkcyB0byBhbGxvdyBtb3JlIGVmZmljaWVudCBzeW5jaHJv bml6YXRpb24KPiArICogdXNpbmcgYmFycmllcnMgaW5zdGVhZCBvZiBhdG9taWMgY21wZXhjaCBv cGVyYXRpb25zLgo+ICsgKiA8bnJfZnJhbWVzPiBzcGVjaWZ5IHRoZSBzaXplIG9mIHZlY3RvciA8 ZnJhbWVfbGlzdD4uCj4gKyAqIFRoZSBmcmFtZSBhZGRyZXNzZXMgYXJlIHJldHVybmVkIGluIHRo ZSA8ZnJhbWVfbGlzdD4uCj4gKyAqIE9ubHkgPG5yX2ZyYW1lcz4gYWRkcmVzc2VzIGFyZSByZXR1 cm5lZCwgZXZlbiBpZiB0aGUgdGFibGUgaXMgbGFyZ2VyLgo+ICsgKiBOT1RFUzoKPiArICogIDEu IDxkb20+IG1heSBiZSBzcGVjaWZpZWQgYXMgRE9NSURfU0VMRi4KPiArICogIDIuIE9ubHkgYSBz dWZmaWNpZW50bHktcHJpdmlsZWdlZCBkb21haW4gbWF5IHNwZWNpZnkgPGRvbT4gIT0gRE9NSURf U0VMRi4KPiArICovCj4gK3N0cnVjdCBnbnR0YWJfZ2V0X3N0YXR1c19mcmFtZXMgewo+ICsgICAg LyogSU4gcGFyYW1ldGVycy4gKi8KPiArICAgIFVJTlQzMiBucl9mcmFtZXM7Cj4gKyAgICBkb21p ZF90ICBkb207Cj4gKyAgICAvKiBPVVQgcGFyYW1ldGVycy4gKi8KPiArICAgIElOVDE2ICBzdGF0 dXM7ICAgICAgICAgICAgICAvKiA9PiBlbnVtIGdyYW50X3N0YXR1cyAqLwo+ICsgICAgWEVOX0dV RVNUX0hBTkRMRShVSU5UNjQpIGZyYW1lX2xpc3Q7Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IGdu dHRhYl9nZXRfc3RhdHVzX2ZyYW1lcyBnbnR0YWJfZ2V0X3N0YXR1c19mcmFtZXNfdDsKPiArREVG SU5FX1hFTl9HVUVTVF9IQU5ETEUoZ250dGFiX2dldF9zdGF0dXNfZnJhbWVzX3QpOwo+ICsKPiAr LyoKPiArICogR05UVEFCT1BfZ2V0X3ZlcnNpb246IEdldCB0aGUgZ3JhbnQgdGFibGUgdmVyc2lv biB3aGljaCBpcyBpbgo+ICsgKiBlZmZlY3QgZm9yIGRvbWFpbiA8ZG9tPi4KPiArICovCj4gK3N0 cnVjdCBnbnR0YWJfZ2V0X3ZlcnNpb24gewo+ICsgICAgLyogSU4gcGFyYW1ldGVycyAqLwo+ICsg ICAgZG9taWRfdCBkb207Cj4gKyAgICBVSU5UMTYgcGFkOwo+ICsgICAgLyogT1VUIHBhcmFtZXRl cnMgKi8KPiArICAgIFVJTlQzMiB2ZXJzaW9uOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCBnbnR0 YWJfZ2V0X3ZlcnNpb24gZ250dGFiX2dldF92ZXJzaW9uX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1Rf SEFORExFKGdudHRhYl9nZXRfdmVyc2lvbl90KTsKPiArCj4gKy8qCj4gKyAqIEdOVFRBQk9QX3N3 YXBfZ3JhbnRfcmVmOiBTd2FwIHRoZSBjb250ZW50cyBvZiB0d28gZ3JhbnQgZW50cmllcy4KPiAr ICovCj4gK3N0cnVjdCBnbnR0YWJfc3dhcF9ncmFudF9yZWYgewo+ICsgICAgLyogSU4gcGFyYW1l dGVycyAqLwo+ICsgICAgZ3JhbnRfcmVmX3QgcmVmX2E7Cj4gKyAgICBncmFudF9yZWZfdCByZWZf YjsKPiArICAgIC8qIE9VVCBwYXJhbWV0ZXJzICovCj4gKyAgICBJTlQxNiBzdGF0dXM7ICAgICAg ICAgICAgIC8qID0+IGVudW0gZ3JhbnRfc3RhdHVzICovCj4gK307Cj4gK3R5cGVkZWYgc3RydWN0 IGdudHRhYl9zd2FwX2dyYW50X3JlZiBnbnR0YWJfc3dhcF9ncmFudF9yZWZfdDsKPiArREVGSU5F X1hFTl9HVUVTVF9IQU5ETEUoZ250dGFiX3N3YXBfZ3JhbnRfcmVmX3QpOwo+ICsKPiArI2VuZGlm IC8qIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gKi8KPiArCj4gKy8qCj4gKyAqIEJpdGZpZWxk IHZhbHVlcyBmb3IgZ250dGFiX21hcF9ncmFudF9yZWYuZmxhZ3MuCj4gKyAqLwo+ICsgLyogTWFw IHRoZSBncmFudCBlbnRyeSBmb3IgYWNjZXNzIGJ5IEkvTyBkZXZpY2VzLiAqLwo+ICsjZGVmaW5l IF9HTlRNQVBfZGV2aWNlX21hcCAgICAgICgwKQo+ICsjZGVmaW5lIEdOVE1BUF9kZXZpY2VfbWFw ICAgICAgICgxPDxfR05UTUFQX2RldmljZV9tYXApCj4gKyAvKiBNYXAgdGhlIGdyYW50IGVudHJ5 IGZvciBhY2Nlc3MgYnkgaG9zdCBDUFVzLiAqLwo+ICsjZGVmaW5lIF9HTlRNQVBfaG9zdF9tYXAg ICAgICAgICgxKQo+ICsjZGVmaW5lIEdOVE1BUF9ob3N0X21hcCAgICAgICAgICgxPDxfR05UTUFQ X2hvc3RfbWFwKQo+ICsgLyogQWNjZXNzZXMgdG8gdGhlIGdyYW50ZWQgZnJhbWUgd2lsbCBiZSBy ZXN0cmljdGVkIHRvIHJlYWQtb25seSBhY2Nlc3MuICovCj4gKyNkZWZpbmUgX0dOVE1BUF9yZWFk b25seSAgICAgICAgKDIpCj4gKyNkZWZpbmUgR05UTUFQX3JlYWRvbmx5ICAgICAgICAgKDE8PF9H TlRNQVBfcmVhZG9ubHkpCj4gKyAvKgo+ICsgICogR05UTUFQX2hvc3RfbWFwIHN1YmZsYWc6Cj4g KyAgKiAgMCA9PiBUaGUgaG9zdCBtYXBwaW5nIGlzIHVzYWJsZSBvbmx5IGJ5IHRoZSBndWVzdCBP Uy4KPiArICAqICAxID0+IFRoZSBob3N0IG1hcHBpbmcgaXMgdXNhYmxlIGJ5IGd1ZXN0IE9TICsg Y3VycmVudCBhcHBsaWNhdGlvbi4KPiArICAqLwo+ICsjZGVmaW5lIF9HTlRNQVBfYXBwbGljYXRp b25fbWFwICgzKQo+ICsjZGVmaW5lIEdOVE1BUF9hcHBsaWNhdGlvbl9tYXAgICgxPDxfR05UTUFQ X2FwcGxpY2F0aW9uX21hcCkKPiArCj4gKyAvKgo+ICsgICogR05UTUFQX2NvbnRhaW5zX3B0ZSBz dWJmbGFnOgo+ICsgICogIDAgPT4gVGhpcyBtYXAgcmVxdWVzdCBjb250YWlucyBhIGhvc3Qgdmly dHVhbCBhZGRyZXNzLgo+ICsgICogIDEgPT4gVGhpcyBtYXAgcmVxdWVzdCBjb250YWlucyB0aGUg bWFjaGluZSBhZGRlc3Mgb2YgdGhlIFBURSB0byB1cGRhdGUuCj4gKyAgKi8KPiArI2RlZmluZSBf R05UTUFQX2NvbnRhaW5zX3B0ZSAgICAoNCkKPiArI2RlZmluZSBHTlRNQVBfY29udGFpbnNfcHRl ICAgICAoMTw8X0dOVE1BUF9jb250YWluc19wdGUpCj4gKwo+ICsjZGVmaW5lIF9HTlRNQVBfY2Fu X2ZhaWwgICAgICAgICg1KQo+ICsjZGVmaW5lIEdOVE1BUF9jYW5fZmFpbCAgICAgICAgICgxPDxf R05UTUFQX2Nhbl9mYWlsKQo+ICsKPiArLyoKPiArICogQml0cyB0byBiZSBwbGFjZWQgaW4gZ3Vl c3Qga2VybmVsIGF2YWlsYWJsZSBQVEUgYml0cyAoYXJjaGl0ZWN0dXJlCj4gKyAqIGRlcGVuZGVu dDsgb25seSBzdXBwb3J0ZWQgd2hlbiBYRU5GRUFUX2dudHRhYl9tYXBfYXZhaWxfYml0cyBpcyBz ZXQpLgo+ICsgKi8KPiArI2RlZmluZSBfR05UTUFQX2d1ZXN0X2F2YWlsMCAgICAoMTYpCj4gKyNk ZWZpbmUgR05UTUFQX2d1ZXN0X2F2YWlsX21hc2sgKChVSU5UMzIpfjAgPDwgX0dOVE1BUF9ndWVz dF9hdmFpbDApCj4gKwo+ICsvKgo+ICsgKiBWYWx1ZXMgZm9yIGVycm9yIHN0YXR1cyByZXR1cm5z LiBBbGwgZXJyb3JzIGFyZSAtdmUuCj4gKyAqLwo+ICsvKiBgIGVudW0gZ3JhbnRfc3RhdHVzIHsg Ki8KPiArI2RlZmluZSBHTlRTVF9va2F5ICAgICAgICAgICAgICgwKSAgLyogTm9ybWFsIHJldHVy bi4gICAgICAgICAgICAgICAgICAgICAgICAqLwo+ICsjZGVmaW5lIEdOVFNUX2dlbmVyYWxfZXJy b3IgICAgKC0xKSAvKiBHZW5lcmFsIHVuZGVmaW5lZCBlcnJvci4gICAgICAgICAgICAgICovCj4g KyNkZWZpbmUgR05UU1RfYmFkX2RvbWFpbiAgICAgICAoLTIpIC8qIFVucmVjb2duc2VkIGRvbWFp biBpZC4gICAgICAgICAgICAgICAgKi8KPiArI2RlZmluZSBHTlRTVF9iYWRfZ250cmVmICAgICAg ICgtMykgLyogVW5yZWNvZ25pc2VkIG9yIGluYXBwcm9wcmlhdGUgZ250cmVmLiAqLwo+ICsjZGVm aW5lIEdOVFNUX2JhZF9oYW5kbGUgICAgICAgKC00KSAvKiBVbnJlY29nbmlzZWQgb3IgaW5hcHBy b3ByaWF0ZSBoYW5kbGUuICovCj4gKyNkZWZpbmUgR05UU1RfYmFkX3ZpcnRfYWRkciAgICAoLTUp IC8qIEluYXBwcm9wcmlhdGUgdmlydHVhbCBhZGRyZXNzIHRvIG1hcC4gKi8KPiArI2RlZmluZSBH TlRTVF9iYWRfZGV2X2FkZHIgICAgICgtNikgLyogSW5hcHByb3ByaWF0ZSBkZXZpY2UgYWRkcmVz cyB0byB1bm1hcC4qLwo+ICsjZGVmaW5lIEdOVFNUX25vX2RldmljZV9zcGFjZSAgKC03KSAvKiBP dXQgb2Ygc3BhY2UgaW4gSS9PIE1NVS4gICAgICAgICAgICAgICovCj4gKyNkZWZpbmUgR05UU1Rf cGVybWlzc2lvbl9kZW5pZWQgKC04KSAvKiBOb3QgZW5vdWdoIHByaXZpbGVnZSBmb3Igb3BlcmF0 aW9uLiAgKi8KPiArI2RlZmluZSBHTlRTVF9iYWRfcGFnZSAgICAgICAgICgtOSkgLyogU3BlY2lm aWVkIHBhZ2Ugd2FzIGludmFsaWQgZm9yIG9wLiAgICAqLwo+ICsjZGVmaW5lIEdOVFNUX2JhZF9j b3B5X2FyZyAgICAoLTEwKSAvKiBjb3B5IGFyZ3VtZW50cyBjcm9zcyBwYWdlIGJvdW5kYXJ5LiAg ICovCj4gKyNkZWZpbmUgR05UU1RfYWRkcmVzc190b29fYmlnICgtMTEpIC8qIHRyYW5zZmVyIHBh Z2UgYWRkcmVzcyB0b28gbGFyZ2UuICAgICAgKi8KPiArI2RlZmluZSBHTlRTVF9lYWdhaW4gICAg ICAgICAgKC0xMikgLyogT3BlcmF0aW9uIG5vdCBkb25lOyB0cnkgYWdhaW4uICAgICAgICAqLwo+ ICsvKiBgIH0gKi8KPiArCj4gKyNkZWZpbmUgR05UVEFCT1BfZXJyb3JfbXNncyB7ICAgICAgICAg ICAgICAgICAgIFwKPiArICAgICJva2F5IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAo+ICsgICAgInVuZGVmaW5lZCBlcnJvciIsICAgICAgICAgICAgICAgICAgICAgICAg ICBcCj4gKyAgICAidW5yZWNvZ25pc2VkIGRvbWFpbiBpZCIsICAgICAgICAgICAgICAgICAgIFwK PiArICAgICJpbnZhbGlkIGdyYW50IHJlZmVyZW5jZSIsICAgICAgICAgICAgICAgICAgXAo+ICsg ICAgImludmFsaWQgbWFwcGluZyBoYW5kbGUiLCAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAi aW52YWxpZCB2aXJ0dWFsIGFkZHJlc3MiLCAgICAgICAgICAgICAgICAgIFwKPiArICAgICJpbnZh bGlkIGRldmljZSBhZGRyZXNzIiwgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgIm5vIHNwYXJl IHRyYW5zbGF0aW9uIHNsb3QgaW4gdGhlIEkvTyBNTVUiLCBcCj4gKyAgICAicGVybWlzc2lvbiBk ZW5pZWQiLCAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICJiYWQgcGFnZSIsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgImNvcHkgYXJndW1lbnRzIGNyb3Nz IHBhZ2UgYm91bmRhcnkiLCAgICAgICBcCj4gKyAgICAicGFnZSBhZGRyZXNzIHNpemUgdG9vIGxh cmdlIiwgICAgICAgICAgICAgIFwKPiArICAgICJvcGVyYXRpb24gbm90IGRvbmU7IHRyeSBhZ2Fp biIgICAgICAgICAgICAgXAo+ICt9Cj4gKwo+ICsjZW5kaWYgLyogX19YRU5fUFVCTElDX0dSQU5U X1RBQkxFX0hfXyAqLwo+ICsKPiArLyoKPiArICogTG9jYWwgdmFyaWFibGVzOgo+ICsgKiBtb2Rl OiBDCj4gKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKPiArICogYy1iYXNpYy1vZmZzZXQ6IDQKPiAr ICogdGFiLXdpZHRoOiA0Cj4gKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAo+ICsgKiBFbmQ6Cj4g KyAqLwo+IGRpZmYgLS1naXQgYS9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4v aHZtL2h2bV9vcC5oIGIvT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvWGVuL2h2bS9o dm1fb3AuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uNmJmZTExNQo+ IC0tLSAvZGV2L251bGwKPiArKysgYi9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9Y ZW4vaHZtL2h2bV9vcC5oCj4gQEAgLTAsMCArMSwyNzUgQEAKPiArLyoKPiArICogUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIGEgY29weQo+ICsgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50 YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPiArICogZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUK PiArICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJp YnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCj4gKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2Fy ZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCj4gKyAqIGZ1 cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4g KyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g bm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp YWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP Ugo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCj4gKyAqIEFV VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFH RVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9SIElO IENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgo+ICsgKiBE RUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBfX1hFTl9QVUJM SUNfSFZNX0hWTV9PUF9IX18KPiArI2RlZmluZSBfX1hFTl9QVUJMSUNfSFZNX0hWTV9PUF9IX18K PiArCj4gKyNpbmNsdWRlICIuLi94ZW4uaCIKPiArI2luY2x1ZGUgIi4uL3RyYWNlLmgiCj4gKwo+ ICsvKiBHZXQvc2V0IHN1YmNvbW1hbmRzOiBleHRyYSBhcmd1bWVudCA9PSBwb2ludGVyIHRvIHhl bl9odm1fcGFyYW0gc3RydWN0LiAqLwo+ICsjZGVmaW5lIEhWTU9QX3NldF9wYXJhbSAgICAgICAg ICAgMAo+ICsjZGVmaW5lIEhWTU9QX2dldF9wYXJhbSAgICAgICAgICAgMQo+ICtzdHJ1Y3QgeGVu X2h2bV9wYXJhbSB7Cj4gKyAgICBkb21pZF90ICBkb21pZDsgICAgLyogSU4gKi8KPiArICAgIFVJ TlQzMiBpbmRleDsgICAgLyogSU4gKi8KPiArICAgIFVJTlQ2NCB2YWx1ZTsgICAgLyogSU4vT1VU ICovCj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9odm1fcGFyYW0geGVuX2h2bV9wYXJhbV90 Owo+ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX3BhcmFtX3QpOwo+ICsKPiArLyog U2V0IHRoZSBsb2dpY2FsIGxldmVsIG9mIG9uZSBvZiBhIGRvbWFpbidzIFBDSSBJTlR4IHdpcmVz LiAqLwo+ICsjZGVmaW5lIEhWTU9QX3NldF9wY2lfaW50eF9sZXZlbCAgMgo+ICtzdHJ1Y3QgeGVu X2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwgewo+ICsgICAgLyogRG9tYWluIHRvIGJlIHVwZGF0ZWQu ICovCj4gKyAgICBkb21pZF90ICBkb21pZDsKPiArICAgIC8qIFBDSSBJTlR4IGlkZW50aWZpY2F0 aW9uIGluIFBDSSB0b3BvbG9neSAoZG9tYWluOmJ1czpkZXZpY2U6aW50eCkuICovCj4gKyAgICBV SU5UOCAgZG9tYWluLCBidXMsIGRldmljZSwgaW50eDsKPiArICAgIC8qIEFzc2VydGlvbiBsZXZl bCAoMCA9IHVuYXNzZXJ0ZWQsIDEgPSBhc3NlcnRlZCkuICovCj4gKyAgICBVSU5UOCAgbGV2ZWw7 Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9odm1fc2V0X3BjaV9pbnR4X2xldmVsIHhlbl9o dm1fc2V0X3BjaV9pbnR4X2xldmVsX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9o dm1fc2V0X3BjaV9pbnR4X2xldmVsX3QpOwo+ICsKPiArLyogU2V0IHRoZSBsb2dpY2FsIGxldmVs IG9mIG9uZSBvZiBhIGRvbWFpbidzIElTQSBJUlEgd2lyZXMuICovCj4gKyNkZWZpbmUgSFZNT1Bf c2V0X2lzYV9pcnFfbGV2ZWwgICAzCj4gK3N0cnVjdCB4ZW5faHZtX3NldF9pc2FfaXJxX2xldmVs IHsKPiArICAgIC8qIERvbWFpbiB0byBiZSB1cGRhdGVkLiAqLwo+ICsgICAgZG9taWRfdCAgZG9t aWQ7Cj4gKyAgICAvKiBJU0EgZGV2aWNlIGlkZW50aWZpY2F0aW9uLCBieSBJU0EgSVJRICgwLTE1 KS4gKi8KPiArICAgIFVJTlQ4ICBpc2FfaXJxOwo+ICsgICAgLyogQXNzZXJ0aW9uIGxldmVsICgw ID0gdW5hc3NlcnRlZCwgMSA9IGFzc2VydGVkKS4gKi8KPiArICAgIFVJTlQ4ICBsZXZlbDsKPiAr fTsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9zZXRfaXNhX2lycV9sZXZlbCB4ZW5faHZtX3Nl dF9pc2FfaXJxX2xldmVsX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fc2V0 X2lzYV9pcnFfbGV2ZWxfdCk7Cj4gKwo+ICsjZGVmaW5lIEhWTU9QX3NldF9wY2lfbGlua19yb3V0 ZSAgNAo+ICtzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUgewo+ICsgICAgLyogRG9t YWluIHRvIGJlIHVwZGF0ZWQuICovCj4gKyAgICBkb21pZF90ICBkb21pZDsKPiArICAgIC8qIFBD SSBsaW5rIGlkZW50aWZpZXIgKDAtMykuICovCj4gKyAgICBVSU5UOCAgbGluazsKPiArICAgIC8q IElTQSBJUlEgKDEtMTUpLCBvciAwIChkaXNhYmxlIGxpbmspLiAqLwo+ICsgICAgVUlOVDggIGlz YV9pcnE7Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRl IHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRlX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExF KHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRlX3QpOwo+ICsKPiArLyogRmx1c2hlcyBhbGwgVkNQ VSBUTEJzOiBAYXJnIG11c3QgYmUgTlVMTC4gKi8KPiArI2RlZmluZSBIVk1PUF9mbHVzaF90bGJz ICAgICAgICAgIDUKPiArCj4gK3R5cGVkZWYgZW51bSB7Cj4gKyAgICBIVk1NRU1fcmFtX3J3LCAg ICAgICAgICAgICAvKiBOb3JtYWwgcmVhZC93cml0ZSBndWVzdCBSQU0gKi8KPiArICAgIEhWTU1F TV9yYW1fcm8sICAgICAgICAgICAgIC8qIFJlYWQtb25seTsgd3JpdGVzIGFyZSBkaXNjYXJkZWQg Ki8KPiArICAgIEhWTU1FTV9tbWlvX2RtLCAgICAgICAgICAgIC8qIFJlYWRzIGFuZCB3cml0ZSBn byB0byB0aGUgZGV2aWNlIG1vZGVsICovCj4gK30gaHZtbWVtX3R5cGVfdDsKPiArCj4gKy8qIEZv bGxvd2luZyB0b29scy1vbmx5IGludGVyZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuICovCj4g KyNpZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykKPiArCj4gKy8q IFRyYWNrIGRpcnR5IFZSQU0uICovCj4gKyNkZWZpbmUgSFZNT1BfdHJhY2tfZGlydHlfdnJhbSAg ICA2Cj4gK3N0cnVjdCB4ZW5faHZtX3RyYWNrX2RpcnR5X3ZyYW0gewo+ICsgICAgLyogRG9tYWlu IHRvIGJlIHRyYWNrZWQuICovCj4gKyAgICBkb21pZF90ICBkb21pZDsKPiArICAgIC8qIEZpcnN0 IHBmbiB0byB0cmFjay4gKi8KPiArICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOwo+ICsg ICAgLyogTnVtYmVyIG9mIHBhZ2VzIHRvIHRyYWNrLiAqLwo+ICsgICAgdWludDY0X2FsaWduZWRf dCBucjsKPiArICAgIC8qIE9VVCB2YXJpYWJsZS4gKi8KPiArICAgIC8qIERpcnR5IGJpdG1hcCBi dWZmZXIuICovCj4gKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBkaXJ0eV9iaXRtYXA7 Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9odm1fdHJhY2tfZGlydHlfdnJhbSB4ZW5faHZt X3RyYWNrX2RpcnR5X3ZyYW1fdDsKPiArREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV90 cmFja19kaXJ0eV92cmFtX3QpOwo+ICsKPiArLyogTm90aWZ5IHRoYXQgc29tZSBwYWdlcyBnb3Qg bW9kaWZpZWQgYnkgdGhlIERldmljZSBNb2RlbC4gKi8KPiArI2RlZmluZSBIVk1PUF9tb2RpZmll ZF9tZW1vcnkgICAgNwo+ICtzdHJ1Y3QgeGVuX2h2bV9tb2RpZmllZF9tZW1vcnkgewo+ICsgICAg LyogRG9tYWluIHRvIGJlIHVwZGF0ZWQuICovCj4gKyAgICBkb21pZF90ICBkb21pZDsKPiArICAg IC8qIEZpcnN0IHBmbi4gKi8KPiArICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOwo+ICsg ICAgLyogTnVtYmVyIG9mIHBhZ2VzLiAqLwo+ICsgICAgdWludDY0X2FsaWduZWRfdCBucjsKPiAr fTsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9tb2RpZmllZF9tZW1vcnkgeGVuX2h2bV9tb2Rp ZmllZF9tZW1vcnlfdDsKPiArREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9tb2RpZmll ZF9tZW1vcnlfdCk7Cj4gKwo+ICsjZGVmaW5lIEhWTU9QX3NldF9tZW1fdHlwZSAgICA4Cj4gKy8q IE5vdGlmeSB0aGF0IGEgcmVnaW9uIG9mIG1lbW9yeSBpcyB0byBiZSB0cmVhdGVkIGluIGEgc3Bl Y2lmaWMgd2F5LiAqLwo+ICtzdHJ1Y3QgeGVuX2h2bV9zZXRfbWVtX3R5cGUgewo+ICsgICAgLyog RG9tYWluIHRvIGJlIHVwZGF0ZWQuICovCj4gKyAgICBkb21pZF90IGRvbWlkOwo+ICsgICAgLyog TWVtb3J5IHR5cGUgKi8KPiArICAgIFVJTlQxNiBodm1tZW1fdHlwZTsKPiArICAgIC8qIE51bWJl ciBvZiBwYWdlcy4gKi8KPiArICAgIFVJTlQzMiBucjsKPiArICAgIC8qIEZpcnN0IHBmbi4gKi8K PiArICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVj dCB4ZW5faHZtX3NldF9tZW1fdHlwZSB4ZW5faHZtX3NldF9tZW1fdHlwZV90Owo+ICtERUZJTkVf WEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX3NldF9tZW1fdHlwZV90KTsKPiArCj4gKyNlbmRpZiAv KiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykgKi8KPiArCj4gKy8q IEhpbnQgZnJvbSBQViBkcml2ZXJzIGZvciBwYWdldGFibGUgZGVzdHJ1Y3Rpb24uICovCj4gKyNk ZWZpbmUgSFZNT1BfcGFnZXRhYmxlX2R5aW5nICAgICAgICA5Cj4gK3N0cnVjdCB4ZW5faHZtX3Bh Z2V0YWJsZV9keWluZyB7Cj4gKyAgICAvKiBEb21haW4gd2l0aCBhIHBhZ2V0YWJsZSBhYm91dCB0 byBiZSBkZXN0cm95ZWQuICovCj4gKyAgICBkb21pZF90ICBkb21pZDsKPiArICAgIFVJTlQxNiBw YWRbM107IC8qIGFsaWduIG5leHQgZmllbGQgb24gOC1ieXRlIGJvdW5kYXJ5ICovCj4gKyAgICAv KiBndWVzdCBwaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSB0b3BsZXZlbCBwYWdldGFibGUgZHlpbmcg Ki8KPiArICAgIFVJTlQ2NCBncGE7Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9odm1fcGFn ZXRhYmxlX2R5aW5nIHhlbl9odm1fcGFnZXRhYmxlX2R5aW5nX3Q7Cj4gK0RFRklORV9YRU5fR1VF U1RfSEFORExFKHhlbl9odm1fcGFnZXRhYmxlX2R5aW5nX3QpOwo+ICsKPiArLyogR2V0IHRoZSBj dXJyZW50IFhlbiB0aW1lLCBpbiBuYW5vc2Vjb25kcyBzaW5jZSBzeXN0ZW0gYm9vdC4gKi8KPiAr I2RlZmluZSBIVk1PUF9nZXRfdGltZSAgICAgICAgICAgICAgMTAKPiArc3RydWN0IHhlbl9odm1f Z2V0X3RpbWUgewo+ICsgICAgVUlOVDY0IG5vdzsgICAgICAvKiBPVVQgKi8KPiArfTsKPiArdHlw ZWRlZiBzdHJ1Y3QgeGVuX2h2bV9nZXRfdGltZSB4ZW5faHZtX2dldF90aW1lX3Q7Cj4gK0RFRklO RV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fZ2V0X3RpbWVfdCk7Cj4gKwo+ICsjZGVmaW5lIEhW TU9QX3hlbnRyYWNlICAgICAgICAgICAgICAxMQo+ICtzdHJ1Y3QgeGVuX2h2bV94ZW50cmFjZSB7 Cj4gKyAgICBVSU5UMTYgZXZlbnQsIGV4dHJhX2J5dGVzOwo+ICsgICAgVUlOVDggZXh0cmFbVFJB Q0VfRVhUUkFfTUFYICogc2l6ZW9mKFVJTlQzMildOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4 ZW5faHZtX3hlbnRyYWNlIHhlbl9odm1feGVudHJhY2VfdDsKPiArREVGSU5FX1hFTl9HVUVTVF9I QU5ETEUoeGVuX2h2bV94ZW50cmFjZV90KTsKPiArCj4gKy8qIEZvbGxvd2luZyB0b29scy1vbmx5 IGludGVyZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuICovCj4gKyNpZiBkZWZpbmVkKF9fWEVO X18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykKPiArCj4gKyNkZWZpbmUgSFZNT1Bfc2V0X21l bV9hY2Nlc3MgICAgICAgIDEyCj4gK3R5cGVkZWYgZW51bSB7Cj4gKyAgICBIVk1NRU1fYWNjZXNz X24sCj4gKyAgICBIVk1NRU1fYWNjZXNzX3IsCj4gKyAgICBIVk1NRU1fYWNjZXNzX3csCj4gKyAg ICBIVk1NRU1fYWNjZXNzX3J3LAo+ICsgICAgSFZNTUVNX2FjY2Vzc194LAo+ICsgICAgSFZNTUVN X2FjY2Vzc19yeCwKPiArICAgIEhWTU1FTV9hY2Nlc3Nfd3gsCj4gKyAgICBIVk1NRU1fYWNjZXNz X3J3eCwKPiArICAgIEhWTU1FTV9hY2Nlc3NfcngycncsICAgICAgIC8qIFBhZ2Ugc3RhcnRzIG9m ZiBhcyByLXgsIGJ1dCBhdXRvbWF0aWNhbGx5Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKiBjaGFuZ2UgdG8gci13IG9uIGEgd3JpdGUgKi8KPiArICAgIEhWTU1FTV9hY2Nlc3Nf bjJyd3gsICAgICAgIC8qIExvZyBhY2Nlc3M6IHN0YXJ0cyBvZmYgYXMgbiwgYXV0b21hdGljYWxs eSAKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGdvZXMgdG8gcnd4LCBnZW5l cmF0aW5nIGFuIGV2ZW50IHdpdGhvdXQKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqIHBhdXNpbmcgdGhlIHZjcHUgKi8KPiArICAgIEhWTU1FTV9hY2Nlc3NfZGVmYXVsdCAgICAg IC8qIFRha2UgdGhlIGRvbWFpbiBkZWZhdWx0ICovCj4gK30gaHZtbWVtX2FjY2Vzc190Owo+ICsv KiBOb3RpZnkgdGhhdCBhIHJlZ2lvbiBvZiBtZW1vcnkgaXMgdG8gaGF2ZSBzcGVjaWZpYyBhY2Nl c3MgdHlwZXMgKi8KPiArc3RydWN0IHhlbl9odm1fc2V0X21lbV9hY2Nlc3Mgewo+ICsgICAgLyog RG9tYWluIHRvIGJlIHVwZGF0ZWQuICovCj4gKyAgICBkb21pZF90IGRvbWlkOwo+ICsgICAgLyog TWVtb3J5IHR5cGUgKi8KPiArICAgIFVJTlQxNiBodm1tZW1fYWNjZXNzOyAvKiBodm1fYWNjZXNz X3QgKi8KPiArICAgIC8qIE51bWJlciBvZiBwYWdlcywgaWdub3JlZCBvbiBzZXR0aW5nIGRlZmF1 bHQgYWNjZXNzICovCj4gKyAgICBVSU5UMzIgbnI7Cj4gKyAgICAvKiBGaXJzdCBwZm4sIG9yIH4w dWxsIHRvIHNldCB0aGUgZGVmYXVsdCBhY2Nlc3MgZm9yIG5ldyBwYWdlcyAqLwo+ICsgICAgdWlu dDY0X2FsaWduZWRfdCBmaXJzdF9wZm47Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9odm1f c2V0X21lbV9hY2Nlc3MgeGVuX2h2bV9zZXRfbWVtX2FjY2Vzc190Owo+ICtERUZJTkVfWEVOX0dV RVNUX0hBTkRMRSh4ZW5faHZtX3NldF9tZW1fYWNjZXNzX3QpOwo+ICsKPiArI2RlZmluZSBIVk1P UF9nZXRfbWVtX2FjY2VzcyAgICAgICAgMTMKPiArLyogR2V0IHRoZSBzcGVjaWZpYyBhY2Nlc3Mg dHlwZSBmb3IgdGhhdCByZWdpb24gb2YgbWVtb3J5ICovCj4gK3N0cnVjdCB4ZW5faHZtX2dldF9t ZW1fYWNjZXNzIHsKPiArICAgIC8qIERvbWFpbiB0byBiZSBxdWVyaWVkLiAqLwo+ICsgICAgZG9t aWRfdCBkb21pZDsKPiArICAgIC8qIE1lbW9yeSB0eXBlOiBPVVQgKi8KPiArICAgIFVJTlQxNiBo dm1tZW1fYWNjZXNzOyAvKiBodm1fYWNjZXNzX3QgKi8KPiArICAgIC8qIHBmbiwgb3IgfjB1bGwg Zm9yIGRlZmF1bHQgYWNjZXNzIGZvciBuZXcgcGFnZXMuICBJTiAqLwo+ICsgICAgdWludDY0X2Fs aWduZWRfdCBwZm47Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9odm1fZ2V0X21lbV9hY2Nl c3MgeGVuX2h2bV9nZXRfbWVtX2FjY2Vzc190Owo+ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4 ZW5faHZtX2dldF9tZW1fYWNjZXNzX3QpOwo+ICsKPiArI2RlZmluZSBIVk1PUF9pbmplY3RfdHJh cCAgICAgICAgICAgIDE0Cj4gKy8qIEluamVjdCBhIHRyYXAgaW50byBhIFZDUFUsIHdoaWNoIHdp bGwgZ2V0IHRha2VuIHVwIG9uIHRoZSBuZXh0Cj4gKyAqIHNjaGVkdWxpbmcgb2YgaXQuIE5vdGUg dGhhdCB0aGUgY2FsbGVyIHNob3VsZCBrbm93IGVub3VnaCBvZiB0aGUKPiArICogc3RhdGUgb2Yg dGhlIENQVSBiZWZvcmUgaW5qZWN0aW5nLCB0byBrbm93IHdoYXQgdGhlIGVmZmVjdCBvZgo+ICsg KiBpbmplY3RpbmcgdGhlIHRyYXAgd2lsbCBiZS4KPiArICovCj4gK3N0cnVjdCB4ZW5faHZtX2lu amVjdF90cmFwIHsKPiArICAgIC8qIERvbWFpbiB0byBiZSBxdWVyaWVkLiAqLwo+ICsgICAgZG9t aWRfdCBkb21pZDsKPiArICAgIC8qIFZDUFUgKi8KPiArICAgIFVJTlQzMiB2Y3B1aWQ7Cj4gKyAg ICAvKiBWZWN0b3IgbnVtYmVyICovCj4gKyAgICBVSU5UMzIgdmVjdG9yOwo+ICsgICAgLyogVHJh cCB0eXBlIChIVk1PUF9UUkFQXyopICovCj4gKyAgICBVSU5UMzIgdHlwZTsKPiArLyogTkIuIFRo aXMgZW51bWVyYXRpb24gcHJlY2lzZWx5IG1hdGNoZXMgaHZtLmg6WDg2X0VWRU5UVFlQRV8qICov Cj4gKyMgZGVmaW5lIEhWTU9QX1RSQVBfZXh0X2ludCAgICAwIC8qIGV4dGVybmFsIGludGVycnVw dCAqLwo+ICsjIGRlZmluZSBIVk1PUF9UUkFQX25taSAgICAgICAgMiAvKiBubWkgKi8KPiArIyBk ZWZpbmUgSFZNT1BfVFJBUF9od19leGMgICAgIDMgLyogaGFyZHdhcmUgZXhjZXB0aW9uICovCj4g KyMgZGVmaW5lIEhWTU9QX1RSQVBfc3dfaW50ICAgICA0IC8qIHNvZnR3YXJlIGludGVycnVwdCAo Q0Qgbm4pICovCj4gKyMgZGVmaW5lIEhWTU9QX1RSQVBfcHJpX3N3X2V4YyA1IC8qIElDRUJQIChG MSkgKi8KPiArIyBkZWZpbmUgSFZNT1BfVFJBUF9zd19leGMgICAgIDYgLyogSU5UMyAoQ0MpLCBJ TlRPIChDRSkgKi8KPiArICAgIC8qIEVycm9yIGNvZGUsIG9yIH4wdSB0byBza2lwICovCj4gKyAg ICBVSU5UMzIgZXJyb3JfY29kZTsKPiArICAgIC8qIEludHJ1Y3Rpb24gbGVuZ3RoICovCj4gKyAg ICBVSU5UMzIgaW5zbl9sZW47Cj4gKyAgICAvKiBDUjIgZm9yIHBhZ2UgZmF1bHRzICovCj4gKyAg ICB1aW50NjRfYWxpZ25lZF90IGNyMjsKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9p bmplY3RfdHJhcCB4ZW5faHZtX2luamVjdF90cmFwX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFO RExFKHhlbl9odm1faW5qZWN0X3RyYXBfdCk7Cj4gKwo+ICsjZW5kaWYgLyogZGVmaW5lZChfX1hF Tl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pICovCj4gKwo+ICsjZGVmaW5lIEhWTU9QX2dl dF9tZW1fdHlwZSAgICAxNQo+ICsvKiBSZXR1cm4gaHZtbWVtX3R5cGVfdCBmb3IgdGhlIHNwZWNp ZmllZCBwZm4uICovCj4gK3N0cnVjdCB4ZW5faHZtX2dldF9tZW1fdHlwZSB7Cj4gKyAgICAvKiBE b21haW4gdG8gYmUgcXVlcmllZC4gKi8KPiArICAgIGRvbWlkX3QgZG9taWQ7Cj4gKyAgICAvKiBP VVQgdmFyaWFibGUuICovCj4gKyAgICBVSU5UMTYgbWVtX3R5cGU7Cj4gKyAgICBVSU5UMTYgcGFk WzJdOyAvKiBhbGlnbiBuZXh0IGZpZWxkIG9uIDgtYnl0ZSBib3VuZGFyeSAqLwo+ICsgICAgLyog SU4gdmFyaWFibGUuICovCj4gKyAgICBVSU5UNjQgcGZuOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVj dCB4ZW5faHZtX2dldF9tZW1fdHlwZSB4ZW5faHZtX2dldF9tZW1fdHlwZV90Owo+ICtERUZJTkVf WEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2dldF9tZW1fdHlwZV90KTsKPiArCj4gKy8qIEZvbGxv d2luZyB0b29scy1vbmx5IGludGVyZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuICovCj4gKyNp ZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykKPiArCj4gKy8qIE1T SSBpbmplY3Rpb24gZm9yIGVtdWxhdGVkIGRldmljZXMgKi8KPiArI2RlZmluZSBIVk1PUF9pbmpl Y3RfbXNpICAgICAgICAgMTYKPiArc3RydWN0IHhlbl9odm1faW5qZWN0X21zaSB7Cj4gKyAgICAv KiBEb21haW4gdG8gYmUgaW5qZWN0ZWQgKi8KPiArICAgIGRvbWlkX3QgICBkb21pZDsKPiArICAg IC8qIERhdGEgLS0gbG93ZXIgMzIgYml0cyAqLwo+ICsgICAgVUlOVDMyICBkYXRhOwo+ICsgICAg LyogQWRkcmVzcyAoMHhmZWV4eHh4eCkgKi8KPiArICAgIFVJTlQ2NCAgYWRkcjsKPiArfTsKPiAr dHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9pbmplY3RfbXNpIHhlbl9odm1faW5qZWN0X21zaV90Owo+ ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2luamVjdF9tc2lfdCk7Cj4gKwo+ICsj ZW5kaWYgLyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pICovCj4g Kwo+ICsjZW5kaWYgLyogX19YRU5fUFVCTElDX0hWTV9IVk1fT1BfSF9fICovCj4gZGlmZiAtLWdp dCBhL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9odm0vcGFyYW1zLmggYi9P dm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vaHZtL3BhcmFtcy5oCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi41MTdhMTg0Cj4gLS0tIC9kZXYvbnVsbAo+ ICsrKyBiL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9odm0vcGFyYW1zLmgK PiBAQCAtMCwwICsxLDE1MCBAQAo+ICsvKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cj4gKyAq IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl ICJTb2Z0d2FyZSIpLCB0bwo+ICsgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQo+ICsgKiByaWdodHMgdG8g dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNl LCBhbmQvb3IKPiArICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0 IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKPiArICogZnVybmlzaGVkIHRvIGRvIHNv LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg aW5jbHVkZWQgaW4KPiArICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUgU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMi LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAqIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G UklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKPiArICogQVVUSE9SUyBPUiBDT1BZUklH SFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ICsg KiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9U SEVSV0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI IFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCj4gKyAqIERFQUxJTkdTIElOIFRIRSBT T0ZUV0FSRS4KPiArICovCj4gKwo+ICsjaWZuZGVmIF9fWEVOX1BVQkxJQ19IVk1fUEFSQU1TX0hf Xwo+ICsjZGVmaW5lIF9fWEVOX1BVQkxJQ19IVk1fUEFSQU1TX0hfXwo+ICsKPiArI2luY2x1ZGUg Imh2bV9vcC5oIgo+ICsKPiArLyoKPiArICogUGFyYW1ldGVyIHNwYWNlIGZvciBIVk1PUF97c2V0 LGdldH1fcGFyYW0uCj4gKyAqLwo+ICsKPiArLyoKPiArICogSG93IHNob3VsZCBDUFUwIGV2ZW50 LWNoYW5uZWwgbm90aWZpY2F0aW9ucyBiZSBkZWxpdmVyZWQ/Cj4gKyAqIHZhbFs2Mzo1Nl0gPT0g MDogdmFsWzU1OjBdIGlzIGEgZGVsaXZlcnkgR1NJIChHbG9iYWwgU3lzdGVtIEludGVycnVwdCku Cj4gKyAqIHZhbFs2Mzo1Nl0gPT0gMTogdmFsWzU1OjBdIGlzIGEgZGVsaXZlcnkgUENJIElOVHgg bGluZSwgYXMgZm9sbG93czoKPiArICogICAgICAgICAgICAgICAgICBEb21haW4gPSB2YWxbNDc6 MzJdLCBCdXMgID0gdmFsWzMxOjE2XSwKPiArICogICAgICAgICAgICAgICAgICBEZXZGbiAgPSB2 YWxbMTU6IDhdLCBJbnRYID0gdmFsWyAxOiAwXQo+ICsgKiB2YWxbNjM6NTZdID09IDI6IHZhbFs3 OjBdIGlzIGEgdmVjdG9yIG51bWJlciwgY2hlY2sgZm9yCj4gKyAqICAgICAgICAgICAgICAgICAg WEVORkVBVF9odm1fY2FsbGJhY2tfdmVjdG9yIHRvIGtub3cgaWYgdGhpcyBkZWxpdmVyeQo+ICsg KiAgICAgICAgICAgICAgICAgIG1ldGhvZCBpcyBhdmFpbGFibGUuCj4gKyAqIElmIHZhbCA9PSAw IHRoZW4gQ1BVMCBldmVudC1jaGFubmVsIG5vdGlmaWNhdGlvbnMgYXJlIG5vdCBkZWxpdmVyZWQu Cj4gKyAqLwo+ICsjZGVmaW5lIEhWTV9QQVJBTV9DQUxMQkFDS19JUlEgMAo+ICsKPiArLyoKPiAr ICogVGhlc2UgYXJlIG5vdCB1c2VkIGJ5IFhlbi4gVGhleSBhcmUgaGVyZSBmb3IgY29udmVuaWVu Y2Ugb2YgSFZNLWd1ZXN0Cj4gKyAqIHhlbmJ1cyBpbXBsZW1lbnRhdGlvbnMuCj4gKyAqLwo+ICsj ZGVmaW5lIEhWTV9QQVJBTV9TVE9SRV9QRk4gICAgMQo+ICsjZGVmaW5lIEhWTV9QQVJBTV9TVE9S RV9FVlRDSE4gMgo+ICsKPiArI2RlZmluZSBIVk1fUEFSQU1fUEFFX0VOQUJMRUQgIDQKPiArCj4g KyNkZWZpbmUgSFZNX1BBUkFNX0lPUkVRX1BGTiAgICA1Cj4gKwo+ICsjZGVmaW5lIEhWTV9QQVJB TV9CVUZJT1JFUV9QRk4gNgo+ICsjZGVmaW5lIEhWTV9QQVJBTV9CVUZJT1JFUV9FVlRDSE4gMjYK PiArCj4gKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCj4gKwo+ ICsvKiBFeHBvc2UgVmlyaWRpYW4gaW50ZXJmYWNlcyB0byB0aGlzIEhWTSBndWVzdD8gKi8KPiAr I2RlZmluZSBIVk1fUEFSQU1fVklSSURJQU4gICAgIDkKPiArCj4gKyNlbmRpZgo+ICsKPiArLyoK PiArICogU2V0IG1vZGUgZm9yIHZpcnR1YWwgdGltZXJzIChjdXJyZW50bHkgeDg2IG9ubHkpOgo+ ICsgKiAgZGVsYXlfZm9yX21pc3NlZF90aWNrcyAoZGVmYXVsdCk6Cj4gKyAqICAgRG8gbm90IGFk dmFuY2UgYSB2Y3B1J3MgdGltZSBiZXlvbmQgdGhlIGNvcnJlY3QgZGVsaXZlcnkgdGltZSBmb3IK PiArICogICBpbnRlcnJ1cHRzIHRoYXQgaGF2ZSBiZWVuIG1pc3NlZCBkdWUgdG8gcHJlZW1wdGlv bi4gRGVsaXZlciBtaXNzZWQKPiArICogICBpbnRlcnJ1cHRzIHdoZW4gdGhlIHZjcHUgaXMgcmVz Y2hlZHVsZWQgYW5kIGFkdmFuY2UgdGhlIHZjcHUncyB2aXJ0dWFsCj4gKyAqICAgdGltZSBzdGVw d2lzZSBmb3IgZWFjaCBvbmUuCj4gKyAqICBub19kZWxheV9mb3JfbWlzc2VkX3RpY2tzOgo+ICsg KiAgIEFzIGFib3ZlLCBtaXNzZWQgaW50ZXJydXB0cyBhcmUgZGVsaXZlcmVkLCBidXQgZ3Vlc3Qg dGltZSBhbHdheXMgdHJhY2tzCj4gKyAqICAgd2FsbGNsb2NrIChpLmUuLCByZWFsKSB0aW1lIHdo aWxlIGRvaW5nIHNvLgo+ICsgKiAgbm9fbWlzc2VkX3RpY2tzX3BlbmRpbmc6Cj4gKyAqICAgTm8g bWlzc2VkIGludGVycnVwdHMgYXJlIGhlbGQgcGVuZGluZy4gSW5zdGVhZCwgdG8gZW5zdXJlIHRp Y2tzIGFyZQo+ICsgKiAgIGRlbGl2ZXJlZCBhdCBzb21lIG5vbi16ZXJvIHJhdGUsIGlmIHdlIGRl dGVjdCBtaXNzZWQgdGlja3MgdGhlbiB0aGUKPiArICogICBpbnRlcm5hbCB0aWNrIGFsYXJtIGlz IG5vdCBkaXNhYmxlZCBpZiB0aGUgVkNQVSBpcyBwcmVlbXB0ZWQgZHVyaW5nIHRoZQo+ICsgKiAg IG5leHQgdGljayBwZXJpb2QuCj4gKyAqICBvbmVfbWlzc2VkX3RpY2tfcGVuZGluZzoKPiArICog ICBNaXNzZWQgaW50ZXJydXB0cyBhcmUgY29sbGFwc2VkIHRvZ2V0aGVyIGFuZCBkZWxpdmVyZWQg YXMgb25lICdsYXRlIHRpY2snLgo+ICsgKiAgIEd1ZXN0IHRpbWUgYWx3YXlzIHRyYWNrcyB3YWxs Y2xvY2sgKGkuZS4sIHJlYWwpIHRpbWUuCj4gKyAqLwo+ICsjZGVmaW5lIEhWTV9QQVJBTV9USU1F Ul9NT0RFICAgMTAKPiArI2RlZmluZSBIVk1QVE1fZGVsYXlfZm9yX21pc3NlZF90aWNrcyAgICAw Cj4gKyNkZWZpbmUgSFZNUFRNX25vX2RlbGF5X2Zvcl9taXNzZWRfdGlja3MgMQo+ICsjZGVmaW5l IEhWTVBUTV9ub19taXNzZWRfdGlja3NfcGVuZGluZyAgIDIKPiArI2RlZmluZSBIVk1QVE1fb25l X21pc3NlZF90aWNrX3BlbmRpbmcgICAzCj4gKwo+ICsvKiBCb29sZWFuOiBFbmFibGUgdmlydHVh bCBIUEVUIChoaWdoLXByZWNpc2lvbiBldmVudCB0aW1lcik/ICh4ODYtb25seSkgKi8KPiArI2Rl ZmluZSBIVk1fUEFSQU1fSFBFVF9FTkFCTEVEIDExCj4gKwo+ICsvKiBJZGVudGl0eS1tYXAgcGFn ZSBkaXJlY3RvcnkgdXNlZCBieSBJbnRlbCBFUFQgd2hlbiBDUjAuUEc9MC4gKi8KPiArI2RlZmlu ZSBIVk1fUEFSQU1fSURFTlRfUFQgICAgIDEyCj4gKwo+ICsvKiBEZXZpY2UgTW9kZWwgZG9tYWlu LCBkZWZhdWx0cyB0byAwLiAqLwo+ICsjZGVmaW5lIEhWTV9QQVJBTV9ETV9ET01BSU4gICAgMTMK PiArCj4gKy8qIEFDUEkgUyBzdGF0ZTogY3VycmVudGx5IHN1cHBvcnQgUzAgYW5kIFMzIG9uIHg4 Ni4gKi8KPiArI2RlZmluZSBIVk1fUEFSQU1fQUNQSV9TX1NUQVRFIDE0Cj4gKwo+ICsvKiBUU1Mg dXNlZCBvbiBJbnRlbCB3aGVuIENSMC5QRT0wLiAqLwo+ICsjZGVmaW5lIEhWTV9QQVJBTV9WTTg2 X1RTUyAgICAgMTUKPiArCj4gKy8qIEJvb2xlYW46IEVuYWJsZSBhbGlnbmluZyBhbGwgcGVyaW9k aWMgdnB0cyB0byByZWR1Y2UgaW50ZXJydXB0cyAqLwo+ICsjZGVmaW5lIEhWTV9QQVJBTV9WUFRf QUxJR04gICAgMTYKPiArCj4gKy8qIENvbnNvbGUgZGVidWcgc2hhcmVkIG1lbW9yeSByaW5nIGFu ZCBldmVudCBjaGFubmVsICovCj4gKyNkZWZpbmUgSFZNX1BBUkFNX0NPTlNPTEVfUEZOICAgIDE3 Cj4gKyNkZWZpbmUgSFZNX1BBUkFNX0NPTlNPTEVfRVZUQ0hOIDE4Cj4gKwo+ICsvKgo+ICsgKiBT ZWxlY3QgbG9jYXRpb24gb2YgQUNQSSBQTTFhIGFuZCBUTVIgY29udHJvbCBibG9ja3MuIEN1cnJl bnRseSB0d28gbG9jYXRpb25zCj4gKyAqIGFyZSBzdXBwb3J0ZWQsIHNwZWNpZmllZCBieSB2ZXJz aW9uIDAgb3IgMSBpbiB0aGlzIHBhcmFtZXRlcjoKPiArICogICAtIDA6IGRlZmF1bHQsIHVzZSB0 aGUgb2xkIGFkZHJlc3Nlcwo+ICsgKiAgICAgICAgUE0xQV9FVlQgPT0gMHgxZjQwOyBQTTFBX0NO VCA9PSAweDFmNDQ7IFBNX1RNUiA9PSAweDFmNDgKPiArICogICAtIDE6IHVzZSB0aGUgbmV3IGRl ZmF1bHQgcWVtdSBhZGRyZXNzZXMKPiArICogICAgICAgIFBNMUFfRVZUID09IDB4YjAwMDsgUE0x QV9DTlQgPT0gMHhiMDA0OyBQTV9UTVIgPT0gMHhiMDA4Cj4gKyAqIFlvdSBjYW4gZmluZCB0aGVz ZSBhZGRyZXNzIGRlZmluaXRpb25zIGluIDxodm0vaW9yZXEuaD4KPiArICovCj4gKyNkZWZpbmUg SFZNX1BBUkFNX0FDUElfSU9QT1JUU19MT0NBVElPTiAxOQo+ICsKPiArLyogRW5hYmxlIGJsb2Nr aW5nIG1lbW9yeSBldmVudHMsIGFzeW5jIG9yIHN5bmMgKHBhdXNlIHZjcHUgdW50aWwgcmVzcG9u c2UpIAo+ICsgKiBvbmNoYW5nZW9ubHkgaW5kaWNhdGVzIG1lc3NhZ2VzIG9ubHkgb24gYSBjaGFu Z2Ugb2YgdmFsdWUgKi8KPiArI2RlZmluZSBIVk1fUEFSQU1fTUVNT1JZX0VWRU5UX0NSMCAgICAg ICAgICAyMAo+ICsjZGVmaW5lIEhWTV9QQVJBTV9NRU1PUllfRVZFTlRfQ1IzICAgICAgICAgIDIx Cj4gKyNkZWZpbmUgSFZNX1BBUkFNX01FTU9SWV9FVkVOVF9DUjQgICAgICAgICAgMjIKPiArI2Rl ZmluZSBIVk1fUEFSQU1fTUVNT1JZX0VWRU5UX0lOVDMgICAgICAgICAyMwo+ICsjZGVmaW5lIEhW TV9QQVJBTV9NRU1PUllfRVZFTlRfU0lOR0xFX1NURVAgIDI1Cj4gKyNkZWZpbmUgSFZNX1BBUkFN X01FTU9SWV9FVkVOVF9NU1IgICAgICAgICAgMzAKPiArCj4gKyNkZWZpbmUgSFZNUE1FX01PREVf TUFTSyAgICAgICAoMyA8PCAwKQo+ICsjZGVmaW5lIEhWTVBNRV9tb2RlX2Rpc2FibGVkICAgMAo+ ICsjZGVmaW5lIEhWTVBNRV9tb2RlX2FzeW5jICAgICAgMQo+ICsjZGVmaW5lIEhWTVBNRV9tb2Rl X3N5bmMgICAgICAgMgo+ICsjZGVmaW5lIEhWTVBNRV9vbmNoYW5nZW9ubHkgICAgKDEgPDwgMikK PiArCj4gKy8qIEJvb2xlYW46IEVuYWJsZSBuZXN0ZWRodm0gKGh2bSBvbmx5KSAqLwo+ICsjZGVm aW5lIEhWTV9QQVJBTV9ORVNURURIVk0gICAgMjQKPiArCj4gKy8qIFBhcmFtcyBmb3IgdGhlIG1l bSBldmVudCByaW5ncyAqLwo+ICsjZGVmaW5lIEhWTV9QQVJBTV9QQUdJTkdfUklOR19QRk4gICAy Nwo+ICsjZGVmaW5lIEhWTV9QQVJBTV9BQ0NFU1NfUklOR19QRk4gICAyOAo+ICsjZGVmaW5lIEhW TV9QQVJBTV9TSEFSSU5HX1JJTkdfUEZOICAyOQo+ICsKPiArLyogU0hVVERPV05fKiBhY3Rpb24g aW4gY2FzZSBvZiBhIHRyaXBsZSBmYXVsdCAqLwo+ICsjZGVmaW5lIEhWTV9QQVJBTV9UUklQTEVf RkFVTFRfUkVBU09OIDMxCj4gKwo+ICsjZGVmaW5lIEhWTV9OUl9QQVJBTVMgICAgICAgICAgMzIK PiArCj4gKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfSFZNX1BBUkFNU19IX18gKi8KPiBkaWZmIC0t Z2l0IGEvT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvWGVuL2lvL2Jsa2lmLmggYi9P dm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vaW8vYmxraWYuaAo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uMmYwYmI4Ygo+IC0tLSAvZGV2L251bGwKPiAr KysgYi9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vaW8vYmxraWYuaAo+IEBA IC0wLDAgKzEsNjA4IEBACj4gKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICogYmxraWYuaAo+ ICsgKgo+ICsgKiBVbmlmaWVkIGJsb2NrLWRldmljZSBJL08gaW50ZXJmYWNlIGZvciBYZW4gZ3Vl c3QgT1Nlcy4KPiArICoKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQo+ICsgKiBvZiB0aGlzIHNv ZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUi KSwgdG8KPiArICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5j bHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKPiArICogcmlnaHRzIHRvIHVzZSwgY29weSwg bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCj4g KyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv IHdob20gdGhlIFNvZnR3YXJlIGlzCj4gKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0 byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmln aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGlu Cj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJl Lgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiAr ICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4g SU4gTk8gRVZFTlQgU0hBTEwgVEhFCj4gKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdB UkUgT1IgVEhFIFVTRSBPUiBPVEhFUgo+ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4g KyAqCj4gKyAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA0LCBLZWlyIEZyYXNlcgo+ICsgKiBDb3B5 cmlnaHQgKGMpIDIwMTIsIFNwZWN0cmEgTG9naWMgQ29ycG9yYXRpb24KPiArICovCj4gKwo+ICsj aWZuZGVmIF9fWEVOX1BVQkxJQ19JT19CTEtJRl9IX18KPiArI2RlZmluZSBfX1hFTl9QVUJMSUNf SU9fQkxLSUZfSF9fCj4gKwo+ICsjaW5jbHVkZSAicmluZy5oIgo+ICsjaW5jbHVkZSAiLi4vZ3Jh bnRfdGFibGUuaCIKPiArCj4gKy8qCj4gKyAqIEZyb250LT5iYWNrIG5vdGlmaWNhdGlvbnM6IFdo ZW4gZW5xdWV1aW5nIGEgbmV3IHJlcXVlc3QsIHNlbmRpbmcgYQo+ICsgKiBub3RpZmljYXRpb24g Y2FuIGJlIG1hZGUgY29uZGl0aW9uYWwgb24gcmVxX2V2ZW50IChpLmUuLCB0aGUgZ2VuZXJpYwo+ ICsgKiBob2xkLW9mZiBtZWNoYW5pc20gcHJvdmlkZWQgYnkgdGhlIHJpbmcgbWFjcm9zKS4gQmFj a2VuZHMgbXVzdCBzZXQKPiArICogcmVxX2V2ZW50IGFwcHJvcHJpYXRlbHkgKGUuZy4sIHVzaW5n IFJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JFUVVFU1RTKCkpLgo+ICsgKgo+ICsgKiBCYWNrLT5mcm9u dCBub3RpZmljYXRpb25zOiBXaGVuIGVucXVldWluZyBhIG5ldyByZXNwb25zZSwgc2VuZGluZyBh Cj4gKyAqIG5vdGlmaWNhdGlvbiBjYW4gYmUgbWFkZSBjb25kaXRpb25hbCBvbiByc3BfZXZlbnQg KGkuZS4sIHRoZSBnZW5lcmljCj4gKyAqIGhvbGQtb2ZmIG1lY2hhbmlzbSBwcm92aWRlZCBieSB0 aGUgcmluZyBtYWNyb3MpLiBGcm9udGVuZHMgbXVzdCBzZXQKPiArICogcnNwX2V2ZW50IGFwcHJv cHJpYXRlbHkgKGUuZy4sIHVzaW5nIFJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JFU1BPTlNFUygpKS4K PiArICovCj4gKwo+ICsjaWZuZGVmIGJsa2lmX3ZkZXZfdAo+ICsjZGVmaW5lIGJsa2lmX3ZkZXZf dCAgIFVJTlQxNgo+ICsjZW5kaWYKPiArI2RlZmluZSBibGtpZl9zZWN0b3JfdCBVSU5UNjQKPiAr Cj4gKy8qCj4gKyAqIEZlYXR1cmUgYW5kIFBhcmFtZXRlciBOZWdvdGlhdGlvbgo+ICsgKiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiArICogVGhlIHR3byBoYWx2ZXMgb2YgYSBY ZW4gYmxvY2sgZHJpdmVyIHV0aWxpemUgbm9kZXMgd2l0aGluIHRoZSBYZW5TdG9yZSB0bwo+ICsg KiBjb21tdW5pY2F0ZSBjYXBhYmlsaXRpZXMgYW5kIHRvIG5lZ290aWF0ZSBvcGVyYXRpbmcgcGFy YW1ldGVycy4gIFRoaXMKPiArICogc2VjdGlvbiBlbnVtZXJhdGVzIHRoZXNlIG5vZGVzIHdoaWNo IHJlc2lkZSBpbiB0aGUgcmVzcGVjdGl2ZSBmcm9udCBhbmQKPiArICogYmFja2VuZCBwb3J0aW9u cyBvZiB0aGUgWGVuU3RvcmUsIGZvbGxvd2luZyB0aGUgWGVuQnVzIGNvbnZlbnRpb24uCj4gKyAq Cj4gKyAqIEFsbCBkYXRhIGluIHRoZSBYZW5TdG9yZSBpcyBzdG9yZWQgYXMgc3RyaW5ncy4gIE5v ZGVzIHNwZWNpZnlpbmcgbnVtZXJpYwo+ICsgKiB2YWx1ZXMgYXJlIGVuY29kZWQgaW4gZGVjaW1h bC4gIEludGVnZXIgdmFsdWUgcmFuZ2VzIGxpc3RlZCBiZWxvdyBhcmUKPiArICogZXhwcmVzc2Vk IGFzIGZpeGVkIHNpemVkIGludGVnZXIgdHlwZXMgY2FwYWJsZSBvZiBzdG9yaW5nIHRoZSBjb252 ZXJzaW9uCj4gKyAqIG9mIGEgcHJvcGVybHkgZm9ybWF0ZWQgbm9kZSBzdHJpbmcsIHdpdGhvdXQg bG9zcyBvZiBpbmZvcm1hdGlvbi4KPiArICoKPiArICogQW55IHNwZWNpZmllZCBkZWZhdWx0IHZh bHVlIGlzIGluIGVmZmVjdCBpZiB0aGUgY29ycmVzcG9uZGluZyBYZW5CdXMgbm9kZQo+ICsgKiBp cyBub3QgcHJlc2VudCBpbiB0aGUgWGVuU3RvcmUuCj4gKyAqCj4gKyAqIFhlblN0b3JlIG5vZGVz IGluIHNlY3Rpb25zIG1hcmtlZCAiUFJJVkFURSIgYXJlIHNvbGVseSBmb3IgdXNlIGJ5IHRoZQo+ ICsgKiBkcml2ZXIgc2lkZSB3aG9zZSBYZW5CdXMgdHJlZSBjb250YWlucyB0aGVtLgo+ICsgKgo+ ICsgKiBYZW5TdG9yZSBub2RlcyBtYXJrZWQgIkRFUFJFQ0FURUQiIGluIHRoZWlyIG5vdGVzIHNl Y3Rpb24gc2hvdWxkIG9ubHkgYmUKPiArICogdXNlZCB0byBwcm92aWRlIGludGVyb3BlcmFiaWxp dHkgd2l0aCBsZWdhY3kgaW1wbGVtZW50YXRpb25zLgo+ICsgKgo+ICsgKiBTZWUgdGhlIFhlbkJ1 cyBzdGF0ZSB0cmFuc2l0aW9uIGRpYWdyYW0gYmVsb3cgZm9yIGRldGFpbHMgb24gd2hlbiBYZW5C dXMKPiArICogbm9kZXMgbXVzdCBiZSBwdWJsaXNoZWQgYW5kIHdoZW4gdGhleSBjYW4gYmUgcXVl cmllZC4KPiArICoKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJhY2tlbmQgWGVuQnVzIE5vZGVzCj4gKyAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Kgo+ICsgKgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLSBCYWNrZW5kIERldmljZSBJZGVudGlmaWNh dGlvbiAoUFJJVkFURSkgLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIG1vZGUKPiArICog ICAgICBWYWx1ZXM6ICAgICAgICAgInIiIChyZWFkIG9ubHkpLCAidyIgKHdyaXRhYmxlKQo+ICsg Kgo+ICsgKiAgICAgIFRoZSByZWFkIG9yIHdyaXRlIGFjY2VzcyBwZXJtaXNzaW9ucyB0byB0aGUg YmFja2luZyBzdG9yZSB0byBiZQo+ICsgKiAgICAgIGdyYW50ZWQgdG8gdGhlIGZyb250ZW5kLgo+ ICsgKgo+ICsgKiBwYXJhbXMKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgc3RyaW5nCj4gKyAq Cj4gKyAqICAgICAgQSBmcmVlIGZvcm1hdHRlZCBzdHJpbmcgcHJvdmlkaW5nIHN1ZmZpY2llbnQg aW5mb3JtYXRpb24gZm9yIHRoZQo+ICsgKiAgICAgIGJhY2tlbmQgZHJpdmVyIHRvIG9wZW4gdGhl IGJhY2tpbmcgZGV2aWNlLiAgKGUuZy4gdGhlIHBhdGggdG8gdGhlCj4gKyAqICAgICAgZmlsZSBv ciBibG9jayBkZXZpY2UgcmVwcmVzZW50aW5nIHRoZSBiYWNraW5nIHN0b3JlLikKPiArICoKPiAr ICogdHlwZQo+ICsgKiAgICAgIFZhbHVlczogICAgICAgICAiZmlsZSIsICJwaHkiLCAidGFwIgo+ ICsgKgo+ICsgKiAgICAgIFRoZSB0eXBlIG9mIHRoZSBiYWNraW5nIGRldmljZS9vYmplY3QuCj4g KyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZlYXR1cmVzIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgKgo+ICsgKiBmZWF0dXJlLWJhcnJpZXIK PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgMC8xIChib29sZWFuKQo+ICsgKiAgICAgIERlZmF1 bHQgVmFsdWU6ICAwCj4gKyAqCj4gKyAqICAgICAgQSB2YWx1ZSBvZiAiMSIgaW5kaWNhdGVzIHRo YXQgdGhlIGJhY2tlbmQgY2FuIHByb2Nlc3MgcmVxdWVzdHMKPiArICogICAgICBjb250YWluaW5n IHRoZSBCTEtJRl9PUF9XUklURV9CQVJSSUVSIHJlcXVlc3Qgb3Bjb2RlLiAgUmVxdWVzdHMKPiAr ICogICAgICBvZiB0aGlzIHR5cGUgbWF5IHN0aWxsIGJlIHJldHVybmVkIGF0IGFueSB0aW1lIHdp dGggdGhlCj4gKyAqICAgICAgQkxLSUZfUlNQX0VPUE5PVFNVUFAgcmVzdWx0IGNvZGUuCj4gKyAq Cj4gKyAqIGZlYXR1cmUtZmx1c2gtY2FjaGUKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgMC8x IChib29sZWFuKQo+ICsgKiAgICAgIERlZmF1bHQgVmFsdWU6ICAwCj4gKyAqCj4gKyAqICAgICAg QSB2YWx1ZSBvZiAiMSIgaW5kaWNhdGVzIHRoYXQgdGhlIGJhY2tlbmQgY2FuIHByb2Nlc3MgcmVx dWVzdHMKPiArICogICAgICBjb250YWluaW5nIHRoZSBCTEtJRl9PUF9GTFVTSF9ESVNLQ0FDSEUg cmVxdWVzdCBvcGNvZGUuICBSZXF1ZXN0cwo+ICsgKiAgICAgIG9mIHRoaXMgdHlwZSBtYXkgc3Rp bGwgYmUgcmV0dXJuZWQgYXQgYW55IHRpbWUgd2l0aCB0aGUKPiArICogICAgICBCTEtJRl9SU1Bf RU9QTk9UU1VQUCByZXN1bHQgY29kZS4KPiArICoKPiArICogZmVhdHVyZS1kaXNjYXJkCj4gKyAq ICAgICAgVmFsdWVzOiAgICAgICAgIDAvMSAoYm9vbGVhbikKPiArICogICAgICBEZWZhdWx0IFZh bHVlOiAgMAo+ICsgKgo+ICsgKiAgICAgIEEgdmFsdWUgb2YgIjEiIGluZGljYXRlcyB0aGF0IHRo ZSBiYWNrZW5kIGNhbiBwcm9jZXNzIHJlcXVlc3RzCj4gKyAqICAgICAgY29udGFpbmluZyB0aGUg QkxLSUZfT1BfRElTQ0FSRCByZXF1ZXN0IG9wY29kZS4gIFJlcXVlc3RzCj4gKyAqICAgICAgb2Yg dGhpcyB0eXBlIG1heSBzdGlsbCBiZSByZXR1cm5lZCBhdCBhbnkgdGltZSB3aXRoIHRoZQo+ICsg KiAgICAgIEJMS0lGX1JTUF9FT1BOT1RTVVBQIHJlc3VsdCBjb2RlLgo+ICsgKgo+ICsgKiBmZWF0 dXJlLXBlcnNpc3RlbnQKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgMC8xIChib29sZWFuKQo+ ICsgKiAgICAgIERlZmF1bHQgVmFsdWU6ICAwCj4gKyAqICAgICAgTm90ZXM6IDcKPiArICoKPiAr ICogICAgICBBIHZhbHVlIG9mICIxIiBpbmRpY2F0ZXMgdGhhdCB0aGUgYmFja2VuZCBjYW4ga2Vl cCB0aGUgZ3JhbnRzIHVzZWQKPiArICogICAgICBieSB0aGUgZnJvbnRlbmQgZHJpdmVyIG1hcHBl ZCwgc28gdGhlIHNhbWUgc2V0IG9mIGdyYW50cyBzaG91bGQgYmUKPiArICogICAgICB1c2VkIGlu IGFsbCB0cmFuc2FjdGlvbnMuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBncmFudHMgdGhlIGJhY2tl bmQKPiArICogICAgICBjYW4gbWFwIHBlcnNpc3RlbnRseSBkZXBlbmRzIG9uIHRoZSBpbXBsZW1l bnRhdGlvbiwgYnV0IGlkZWFsbHkgaXQKPiArICogICAgICBzaG91bGQgYmUgUklOR19TSVpFICog QkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNULiBVc2luZyB0aGlzCj4gKyAqICAgICAgZmVh dHVyZSB0aGUgYmFja2VuZCBkb2Vzbid0IG5lZWQgdG8gdW5tYXAgZWFjaCBncmFudCwgcHJldmVu dGluZwo+ICsgKiAgICAgIGNvc3RseSBUTEIgZmx1c2hlcy4gVGhlIGJhY2tlbmQgZHJpdmVyIHNo b3VsZCBvbmx5IG1hcCBncmFudHMKPiArICogICAgICBwZXJzaXN0ZW50bHkgaWYgdGhlIGZyb250 ZW5kIHN1cHBvcnRzIGl0LiBJZiBhIGJhY2tlbmQgZHJpdmVyIGNob29zZXMKPiArICogICAgICB0 byB1c2UgdGhlIHBlcnNpc3RlbnQgcHJvdG9jb2wgd2hlbiB0aGUgZnJvbnRlbmQgZG9lc24ndCBz dXBwb3J0IGl0LAo+ICsgKiAgICAgIGl0IHdpbGwgcHJvYmFibHkgaGl0IHRoZSBtYXhpbXVtIG51 bWJlciBvZiBwZXJzaXN0ZW50bHkgbWFwcGVkIGdyYW50cwo+ICsgKiAgICAgIChkdWUgdG8gdGhl IGZhY3QgdGhhdCB0aGUgZnJvbnRlbmQgd29uJ3QgYmUgcmV1c2luZyB0aGUgc2FtZSBncmFudHMp LAo+ICsgKiAgICAgIGFuZCBmYWxsIGJhY2sgdG8gbm9uLXBlcnNpc3RlbnQgbW9kZS4gQmFja2Vu ZCBpbXBsZW1lbnRhdGlvbnMgbWF5Cj4gKyAqICAgICAgc2hyaW5rIG9yIGV4cGFuZCB0aGUgbnVt YmVyIG9mIHBlcnNpc3RlbnRseSBtYXBwZWQgZ3JhbnRzIHdpdGhvdXQKPiArICogICAgICBub3Rp ZnlpbmcgdGhlIGZyb250ZW5kIGRlcGVuZGluZyBvbiBtZW1vcnkgY29uc3RyYWludHMgKHRoaXMg bWlnaHQKPiArICogICAgICBjYXVzZSBhIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uKS4KPiArICoK PiArICogICAgICBJZiBhIGJhY2tlbmQgZHJpdmVyIHdhbnRzIHRvIGxpbWl0IHRoZSBtYXhpbXVt IG51bWJlciBvZiBwZXJzaXN0ZW50bHkKPiArICogICAgICBtYXBwZWQgZ3JhbnRzIHRvIGEgdmFs dWUgbGVzcyB0aGFuIFJJTkdfU0laRSAqCj4gKyAqICAgICAgQkxLSUZfTUFYX1NFR01FTlRTX1BF Ul9SRVFVRVNUIGEgTFJVIHN0cmF0ZWd5IHNob3VsZCBiZSB1c2VkIHRvCj4gKyAqICAgICAgZGlz Y2FyZCB0aGUgZ3JhbnRzIHRoYXQgYXJlIGxlc3MgY29tbW9ubHkgdXNlZC4gVXNpbmcgYSBMUlUg aW4gdGhlCj4gKyAqICAgICAgYmFja2VuZCBkcml2ZXIgcGFpcmVkIHdpdGggYSBMSUZPIHF1ZXVl IGluIHRoZSBmcm9udGVuZCB3aWxsCj4gKyAqICAgICAgYWxsb3cgdXMgdG8gaGF2ZSBiZXR0ZXIg cGVyZm9ybWFuY2UgaW4gdGhpcyBzY2VuYXJpby4KPiArICoKPiArICotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSBSZXF1ZXN0IFRyYW5zcG9ydCBQYXJhbWV0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICsgKgo+ICsgKiBtYXgtcmluZy1wYWdlLW9yZGVyCj4gKyAqICAgICAgVmFsdWVzOiAg ICAgICAgIDxVSU5UMzI+Cj4gKyAqICAgICAgRGVmYXVsdCBWYWx1ZTogIDAKPiArICogICAgICBO b3RlczogICAgICAgICAgMSwgMwo+ICsgKgo+ICsgKiAgICAgIFRoZSBtYXhpbXVtIHN1cHBvcnRl ZCBzaXplIG9mIHRoZSByZXF1ZXN0IHJpbmcgYnVmZmVyIGluIHVuaXRzIG9mCj4gKyAqICAgICAg bGIobWFjaGluZSBwYWdlcykuIChlLmcuIDAgPT0gMSBwYWdlLCAgMSA9IDIgcGFnZXMsIDIgPT0g NCBwYWdlcywKPiArICogICAgICBldGMuKS4KPiArICoKPiArICogbWF4LXJpbmctcGFnZXMKPiAr ICogICAgICBWYWx1ZXM6ICAgICAgICAgPFVJTlQzMj4KPiArICogICAgICBEZWZhdWx0IFZhbHVl OiAgMQo+ICsgKiAgICAgIE5vdGVzOiAgICAgICAgICBERVBSRUNBVEVELCAyLCAzCj4gKyAqCj4g KyAqICAgICAgVGhlIG1heGltdW0gc3VwcG9ydGVkIHNpemUgb2YgdGhlIHJlcXVlc3QgcmluZyBi dWZmZXIgaW4gdW5pdHMgb2YKPiArICogICAgICBtYWNoaW5lIHBhZ2VzLiAgVGhlIHZhbHVlIG11 c3QgYmUgYSBwb3dlciBvZiAyLgo+ICsgKgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g QmFja2VuZCBEZXZpY2UgUHJvcGVydGllcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAq Cj4gKyAqIGRpc2NhcmQtYWxpZ25tZW50Cj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxVSU5U MzI+Cj4gKyAqICAgICAgRGVmYXVsdCBWYWx1ZTogIDAKPiArICogICAgICBOb3RlczogICAgICAg ICAgNCwgNQo+ICsgKgo+ICsgKiAgICAgIFRoZSBvZmZzZXQsIGluIGJ5dGVzIGZyb20gdGhlIGJl Z2lubmluZyBvZiB0aGUgdmlydHVhbCBibG9jayBkZXZpY2UsCj4gKyAqICAgICAgdG8gdGhlIGZp cnN0LCBhZGRyZXNzYWJsZSwgZGlzY2FyZCBleHRlbnQgb24gdGhlIHVuZGVybHlpbmcgZGV2aWNl Lgo+ICsgKgo+ICsgKiBkaXNjYXJkLWdyYW51bGFyaXR5Cj4gKyAqICAgICAgVmFsdWVzOiAgICAg ICAgIDxVSU5UMzI+Cj4gKyAqICAgICAgRGVmYXVsdCBWYWx1ZTogIDwic2VjdG9yLXNpemUiPgo+ ICsgKiAgICAgIE5vdGVzOiAgICAgICAgICA0Cj4gKyAqCj4gKyAqICAgICAgVGhlIHNpemUsIGlu IGJ5dGVzLCBvZiB0aGUgaW5kaXZpZHVhbGx5IGFkZHJlc3NhYmxlIGRpc2NhcmQgZXh0ZW50cwo+ ICsgKiAgICAgIG9mIHRoZSB1bmRlcmx5aW5nIGRldmljZS4KPiArICoKPiArICogZGlzY2FyZC1z ZWN1cmUKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgMC8xIChib29sZWFuKQo+ICsgKiAgICAg IERlZmF1bHQgVmFsdWU6ICAwCj4gKyAqICAgICAgTm90ZXM6ICAgICAgICAgIDEwCj4gKyAqCj4g KyAqICAgICAgQSB2YWx1ZSBvZiAiMSIgaW5kaWNhdGVzIHRoYXQgdGhlIGJhY2tlbmQgY2FuIHBy b2Nlc3MgQkxLSUZfT1BfRElTQ0FSRAo+ICsgKiAgICAgIHJlcXVlc3RzIHdpdGggdGhlIEJMS0lG X0RJU0NBUkRfU0VDVVJFIGZsYWcgc2V0Lgo+ICsgKgo+ICsgKiBpbmZvCj4gKyAqICAgICAgVmFs dWVzOiAgICAgICAgIDxVSU5UMzI+IChiaXRtYXApCj4gKyAqCj4gKyAqICAgICAgQSBjb2xsZWN0 aW9uIG9mIGJpdCBmbGFncyBkZXNjcmliaW5nIGF0dHJpYnV0ZXMgb2YgdGhlIGJhY2tpbmcKPiAr ICogICAgICBkZXZpY2UuICBUaGUgVkRJU0tfKiBtYWNyb3MgZGVmaW5lIHRoZSBtZWFuaW5nIG9m IGVhY2ggYml0Cj4gKyAqICAgICAgbG9jYXRpb24uCj4gKyAqCj4gKyAqIHNlY3Rvci1zaXplCj4g KyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxVSU5UMzI+Cj4gKyAqCj4gKyAqICAgICAgVGhlIGxv Z2ljYWwgc2VjdG9yIHNpemUsIGluIGJ5dGVzLCBvZiB0aGUgYmFja2VuZCBkZXZpY2UuCj4gKyAq Cj4gKyAqIHBoeXNpY2FsLXNlY3Rvci1zaXplCj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxV SU5UMzI+Cj4gKyAqCj4gKyAqICAgICAgVGhlIHBoeXNpY2FsIHNlY3RvciBzaXplLCBpbiBieXRl cywgb2YgdGhlIGJhY2tlbmQgZGV2aWNlLgo+ICsgKgo+ICsgKiBzZWN0b3JzCj4gKyAqICAgICAg VmFsdWVzOiAgICAgICAgIDxVSU5UNjQ+Cj4gKyAqCj4gKyAqICAgICAgVGhlIHNpemUgb2YgdGhl IGJhY2tlbmQgZGV2aWNlLCBleHByZXNzZWQgaW4gdW5pdHMgb2YgaXRzIGxvZ2ljYWwKPiArICog ICAgICBzZWN0b3Igc2l6ZSAoInNlY3Rvci1zaXplIikuCj4gKyAqCj4gKyAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZCBYZW5CdXMg Tm9kZXMKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gUmVxdWVzdCBUcmFuc3BvcnQgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICsgKgo+ICsgKiBldmVudC1jaGFubmVsCj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAg IDxVSU5UMzI+Cj4gKyAqCj4gKyAqICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIFhlbiBldmVu dCBjaGFubmVsIHVzZWQgdG8gc2lnbmFsIGFjdGl2aXR5Cj4gKyAqICAgICAgaW4gdGhlIHJpbmcg YnVmZmVyLgo+ICsgKgo+ICsgKiByaW5nLXJlZgo+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8 VUlOVDMyPgo+ICsgKiAgICAgIE5vdGVzOiAgICAgICAgICA2Cj4gKyAqCj4gKyAqICAgICAgVGhl IFhlbiBncmFudCByZWZlcmVuY2UgZ3JhbnRpbmcgcGVybWlzc2lvbiBmb3IgdGhlIGJhY2tlbmQg dG8gbWFwCj4gKyAqICAgICAgdGhlIHNvbGUgcGFnZSBpbiBhIHNpbmdsZSBwYWdlIHNpemVkIHJp bmcgYnVmZmVyLgo+ICsgKgo+ICsgKiByaW5nLXJlZiV1Cj4gKyAqICAgICAgVmFsdWVzOiAgICAg ICAgIDxVSU5UMzI+Cj4gKyAqICAgICAgTm90ZXM6ICAgICAgICAgIDYKPiArICoKPiArICogICAg ICBGb3IgYSBmcm9udGVuZCBwcm92aWRpbmcgYSBtdWx0aS1wYWdlIHJpbmcsIGEgIm51bWJlciBv ZiByaW5nIHBhZ2VzIgo+ICsgKiAgICAgIHNpemVkIGxpc3Qgb2Ygbm9kZXMsIGVhY2ggY29udGFp bmluZyBhIFhlbiBncmFudCByZWZlcmVuY2UgZ3JhbnRpbmcKPiArICogICAgICBwZXJtaXNzaW9u IGZvciB0aGUgYmFja2VuZCB0byBtYXAgdGhlIHBhZ2Ugb2YgdGhlIHJpbmcgbG9jYXRlZAo+ICsg KiAgICAgIGF0IHBhZ2UgaW5kZXggIiV1Ii4gIFBhZ2UgaW5kZXhlcyBhcmUgemVybyBiYXNlZC4K PiArICoKPiArICogcHJvdG9jb2wKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgc3RyaW5nIChY RU5fSU9fUFJPVE9fQUJJXyopCj4gKyAqICAgICAgRGVmYXVsdCBWYWx1ZTogIFhFTl9JT19QUk9U T19BQklfTkFUSVZFCj4gKyAqCj4gKyAqICAgICAgVGhlIG1hY2hpbmUgQUJJIHJ1bGVzIGdvdmVy bmluZyB0aGUgZm9ybWF0IG9mIGFsbCByaW5nIHJlcXVlc3QgYW5kCj4gKyAqICAgICAgcmVzcG9u c2Ugc3RydWN0dXJlcy4KPiArICoKPiArICogcmluZy1wYWdlLW9yZGVyCj4gKyAqICAgICAgVmFs dWVzOiAgICAgICAgIDxVSU5UMzI+Cj4gKyAqICAgICAgRGVmYXVsdCBWYWx1ZTogIDAKPiArICog ICAgICBNYXhpbXVtIFZhbHVlOiAgTUFYKGZmcyhtYXgtcmluZy1wYWdlcykgLSAxLCBtYXgtcmlu Zy1wYWdlLW9yZGVyKQo+ICsgKiAgICAgIE5vdGVzOiAgICAgICAgICAxLCAzCj4gKyAqCj4gKyAq ICAgICAgVGhlIHNpemUgb2YgdGhlIGZyb250ZW5kIGFsbG9jYXRlZCByZXF1ZXN0IHJpbmcgYnVm ZmVyIGluIHVuaXRzCj4gKyAqICAgICAgb2YgbGIobWFjaGluZSBwYWdlcykuIChlLmcuIDAgPT0g MSBwYWdlLCAxID0gMiBwYWdlcywgMiA9PSA0IHBhZ2VzLAo+ICsgKiAgICAgIGV0Yy4pLgo+ICsg Kgo+ICsgKiBudW0tcmluZy1wYWdlcwo+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8VUlOVDMy Pgo+ICsgKiAgICAgIERlZmF1bHQgVmFsdWU6ICAxCj4gKyAqICAgICAgTWF4aW11bSBWYWx1ZTog IE1BWChtYXgtcmluZy1wYWdlcywoMHgxIDw8IG1heC1yaW5nLXBhZ2Utb3JkZXIpKQo+ICsgKiAg ICAgIE5vdGVzOiAgICAgICAgICBERVBSRUNBVEVELCAyLCAzCj4gKyAqCj4gKyAqICAgICAgVGhl IHNpemUgb2YgdGhlIGZyb250ZW5kIGFsbG9jYXRlZCByZXF1ZXN0IHJpbmcgYnVmZmVyIGluIHVu aXRzIG9mCj4gKyAqICAgICAgbWFjaGluZSBwYWdlcy4gIFRoZSB2YWx1ZSBtdXN0IGJlIGEgcG93 ZXIgb2YgMi4KPiArICoKPiArICogZmVhdHVyZS1wZXJzaXN0ZW50Cj4gKyAqICAgICAgVmFsdWVz OiAgICAgICAgIDAvMSAoYm9vbGVhbikKPiArICogICAgICBEZWZhdWx0IFZhbHVlOiAgMAo+ICsg KiAgICAgIE5vdGVzOiA3LCA4LCA5Cj4gKyAqCj4gKyAqICAgICAgQSB2YWx1ZSBvZiAiMSIgaW5k aWNhdGVzIHRoYXQgdGhlIGZyb250ZW5kIHdpbGwgcmV1c2UgdGhlIHNhbWUgZ3JhbnRzCj4gKyAq ICAgICAgZm9yIGFsbCB0cmFuc2FjdGlvbnMsIGFsbG93aW5nIHRoZSBiYWNrZW5kIHRvIG1hcCB0 aGVtIHdpdGggd3JpdGUKPiArICogICAgICBhY2Nlc3MgKGV2ZW4gd2hlbiBpdCBzaG91bGQgYmUg cmVhZC1vbmx5KS4gSWYgdGhlIGZyb250ZW5kIGhpdHMgdGhlCj4gKyAqICAgICAgbWF4aW11bSBu dW1iZXIgb2YgYWxsb3dlZCBwZXJzaXN0ZW50bHkgbWFwcGVkIGdyYW50cywgaXQgY2FuIGZhbGxi YWNrCj4gKyAqICAgICAgdG8gbm9uIHBlcnNpc3RlbnQgbW9kZS4gVGhpcyB3aWxsIGNhdXNlIGEg cGVyZm9ybWFuY2UgZGVncmFkYXRpb24sCj4gKyAqICAgICAgc2luY2UgdGhlIHRoZSBiYWNrZW5k IGRyaXZlciB3aWxsIHN0aWxsIHRyeSB0byBtYXAgdGhvc2UgZ3JhbnRzCj4gKyAqICAgICAgcGVy c2lzdGVudGx5LiBTaW5jZSB0aGUgcGVyc2lzdGVudCBncmFudHMgcHJvdG9jb2wgaXMgY29tcGF0 aWJsZSB3aXRoCj4gKyAqICAgICAgdGhlIHByZXZpb3VzIHByb3RvY29sLCBhIGZyb250ZW5kIGRy aXZlciBjYW4gY2hvb3NlIHRvIHdvcmsgaW4KPiArICogICAgICBwZXJzaXN0ZW50IG1vZGUgZXZl biB3aGVuIHRoZSBiYWNrZW5kIGRvZXNuJ3Qgc3VwcG9ydCBpdC4KPiArICoKPiArICogICAgICBJ dCBpcyByZWNvbW1lbmRlZCB0aGF0IHRoZSBmcm9udGVuZCBkcml2ZXIgc3RvcmVzIHRoZSBwZXJz aXN0ZW50bHkKPiArICogICAgICBtYXBwZWQgZ3JhbnRzIGluIGEgTElGTyBxdWV1ZSwgc28gYSBz dWJzZXQgb2YgYWxsIHBlcnNpc3RlbnRseSBtYXBwZWQKPiArICogICAgICBncmFudHMgZ2V0cyB1 c2VkIGNvbW1vbmx5LiBUaGlzIGlzIGRvbmUgaW4gY2FzZSB0aGUgYmFja2VuZCBkcml2ZXIKPiAr ICogICAgICBkZWNpZGVzIHRvIGxpbWl0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBwZXJzaXN0ZW50 bHkgbWFwcGVkIGdyYW50cwo+ICsgKiAgICAgIHRvIGEgdmFsdWUgbGVzcyB0aGFuIFJJTkdfU0la RSAqIEJMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVC4KPiArICoKPiArICotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tIFZpcnR1YWwgRGV2aWNlIFByb3BlcnRpZXMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ICsgKgo+ICsgKiBkZXZpY2UtdHlwZQo+ICsgKiAgICAgIFZhbHVlczogICAg ICAgICAiZGlzayIsICJjZHJvbSIsICJmbG9wcHkiLCBldGMuCj4gKyAqCj4gKyAqIHZpcnR1YWwt ZGV2aWNlCj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxVSU5UMzI+Cj4gKyAqCj4gKyAqICAg ICAgQSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSBwaHlzaWNhbCBkZXZpY2UgdG8gdmlydHVhbGl6ZSB3 aXRoaW4gdGhlCj4gKyAqICAgICAgZnJvbnRlbmQncyBkb21haW4uICAoZS5nLiAiVGhlIGZpcnN0 IEFUQSBkaXNrIiwgIlRoZSB0aGlyZCBTQ1NJCj4gKyAqICAgICAgZGlzayIsIGV0Yy4pCj4gKyAq Cj4gKyAqICAgICAgU2VlIGRvY3MvbWlzYy92YmQtaW50ZXJmYWNlLnR4dCBmb3IgZGV0YWlscyBv biB0aGUgZm9ybWF0IG9mIHRoaXMKPiArICogICAgICB2YWx1ZS4KPiArICoKPiArICogTm90ZXMK PiArICogLS0tLS0KPiArICogKDEpIE11bHRpLXBhZ2UgcmluZyBidWZmZXIgc2NoZW1lIGZpcnN0 IGRldmVsb3BlZCBpbiB0aGUgQ2l0cml4IFhlblNlcnZlcgo+ICsgKiAgICAgUFYgZHJpdmVycy4K PiArICogKDIpIE11bHRpLXBhZ2UgcmluZyBidWZmZXIgc2NoZW1lIGZpcnN0IHVzZWQgaW4gc29t ZSBSZWRIYXQgZGlzdHJpYnV0aW9ucwo+ICsgKiAgICAgaW5jbHVkaW5nIGEgZGlzdHJpYnV0aW9u IGRlcGxveWVkIG9uIGNlcnRhaW4gbm9kZXMgb2YgdGhlIEFtYXpvbgo+ICsgKiAgICAgRUMyIGNs dXN0ZXIuCj4gKyAqICgzKSBTdXBwb3J0IGZvciBtdWx0aS1wYWdlIHJpbmcgYnVmZmVycyB3YXMg aW1wbGVtZW50ZWQgaW5kZXBlbmRlbnRseSwKPiArICogICAgIGluIHNsaWdodGx5IGRpZmZlcmVu dCBmb3JtcywgYnkgYm90aCBDaXRyaXggYW5kIFJlZEhhdC9BbWF6b24uCj4gKyAqICAgICBGb3Ig ZnVsbCBpbnRlcm9wZXJhYmlsaXR5LCBibG9jayBmcm9udCBhbmQgYmFja2VuZHMgc2hvdWxkIHB1 Ymxpc2gKPiArICogICAgIGlkZW50aWNhbCByaW5nIHBhcmFtZXRlcnMsIGFkanVzdGVkIGZvciB1 bml0IGRpZmZlcmVuY2VzLCB0byB0aGUKPiArICogICAgIFhlblN0b3JlIG5vZGVzIHVzZWQgaW4g Ym90aCBzY2hlbWVzLgo+ICsgKiAoNCkgRGV2aWNlcyB0aGF0IHN1cHBvcnQgZGlzY2FyZCBmdW5j dGlvbmFsaXR5IG1heSBpbnRlcm5hbGx5IGFsbG9jYXRlIHNwYWNlCj4gKyAqICAgICAoZGlzY2Fy ZGFibGUgZXh0ZW50cykgaW4gdW5pdHMgdGhhdCBhcmUgbGFyZ2VyIHRoYW4gdGhlIGV4cG9ydGVk IGxvZ2ljYWwKPiArICogICAgIGJsb2NrIHNpemUuIElmIHRoZSBiYWNraW5nIGRldmljZSBoYXMg c3VjaCBkaXNjYXJkYWJsZSBleHRlbnRzIHRoZQo+ICsgKiAgICAgYmFja2VuZCBzaG91bGQgcHJv dmlkZSBib3RoIGRpc2NhcmQtZ3JhbnVsYXJpdHkgYW5kIGRpc2NhcmQtYWxpZ25tZW50Lgo+ICsg KiAgICAgUHJvdmlkaW5nIGp1c3Qgb25lIG9mIHRoZSB0d28gbWF5IGJlIGNvbnNpZGVyZWQgYW4g ZXJyb3IgYnkgdGhlIGZyb250ZW5kLgo+ICsgKiAgICAgQmFja2VuZHMgc3VwcG9ydGluZyBkaXNj YXJkIHNob3VsZCBpbmNsdWRlIGRpc2NhcmQtZ3JhbnVsYXJpdHkgYW5kCj4gKyAqICAgICBkaXNj YXJkLWFsaWdubWVudCBldmVuIGlmIGl0IHN1cHBvcnRzIGRpc2NhcmRpbmcgaW5kaXZpZHVhbCBz ZWN0b3JzLgo+ICsgKiAgICAgRnJvbnRlbmRzIHNob3VsZCBhc3N1bWUgZGlzY2FyZC1hbGlnbm1l bnQgPT0gMCBhbmQgZGlzY2FyZC1ncmFudWxhcml0eQo+ICsgKiAgICAgPT0gc2VjdG9yIHNpemUg aWYgdGhlc2Uga2V5cyBhcmUgbWlzc2luZy4KPiArICogKDUpIFRoZSBkaXNjYXJkLWFsaWdubWVu dCBwYXJhbWV0ZXIgYWxsb3dzIGEgcGh5c2ljYWwgZGV2aWNlIHRvIGJlCj4gKyAqICAgICBwYXJ0 aXRpb25lZCBpbnRvIHZpcnR1YWwgZGV2aWNlcyB0aGF0IGRvIG5vdCBuZWNlc3NhcmlseSBiZWdp biBvcgo+ICsgKiAgICAgZW5kIG9uIGEgZGlzY2FyZGFibGUgZXh0ZW50IGJvdW5kYXJ5Lgo+ICsg KiAoNikgV2hlbiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHBhZ2UgYWxsb2NhdGVkIHRvIHRoZSBy ZXF1ZXN0IHJpbmcsCj4gKyAqICAgICAncmluZy1yZWYnIGlzIHVzZWQgdG8gY29tbXVuaWNhdGUg dGhlIGdyYW50IHJlZmVyZW5jZSBmb3IgdGhpcwo+ICsgKiAgICAgcGFnZSB0byB0aGUgYmFja2Vu ZC4gIFdoZW4gdXNpbmcgYSBtdWx0aS1wYWdlIHJpbmcsIHRoZSAncmluZy1yZWYnCj4gKyAqICAg ICBub2RlIGlzIG5vdCBjcmVhdGVkLiAgSW5zdGVhZCAncmluZy1yZWYwJyAtICdyaW5nLXJlZk4n IGFyZSB1c2VkLgo+ICsgKiAoNykgV2hlbiB1c2luZyBwZXJzaXN0ZW50IGdyYW50cyBkYXRhIGhh cyB0byBiZSBjb3BpZWQgZnJvbS90byB0aGUgcGFnZQo+ICsgKiAgICAgd2hlcmUgdGhlIGdyYW50 IGlzIGN1cnJlbnRseSBtYXBwZWQuIFRoZSBvdmVyaGVhZCBvZiBkb2luZyB0aGlzIGNvcHkKPiAr ICogICAgIGhvd2V2ZXIgZG9lc24ndCBzdXBwcmVzcyB0aGUgc3BlZWQgaW1wcm92ZW1lbnQgb2Yg bm90IGhhdmluZyB0byB1bm1hcAo+ICsgKiAgICAgdGhlIGdyYW50cy4KPiArICogKDgpIFRoZSBm cm9udGVuZCBkcml2ZXIgaGFzIHRvIGFsbG93IHRoZSBiYWNrZW5kIGRyaXZlciB0byBtYXAgYWxs IGdyYW50cwo+ICsgKiAgICAgd2l0aCB3cml0ZSBhY2Nlc3MsIGV2ZW4gd2hlbiB0aGV5IHNob3Vs ZCBiZSBtYXBwZWQgcmVhZC1vbmx5LCBzaW5jZQo+ICsgKiAgICAgZnVydGhlciByZXF1ZXN0cyBt YXkgcmV1c2UgdGhlc2UgZ3JhbnRzIGFuZCByZXF1aXJlIHdyaXRlIHBlcm1pc3Npb25zLgo+ICsg KiAoOSkgTGludXggaW1wbGVtZW50YXRpb24gZG9lc24ndCBoYXZlIGEgbGltaXQgb24gdGhlIG1h eGltdW0gbnVtYmVyIG9mCj4gKyAqICAgICBncmFudHMgdGhhdCBjYW4gYmUgcGVyc2lzdGVudGx5 IG1hcHBlZCBpbiB0aGUgZnJvbnRlbmQgZHJpdmVyLCBidXQKPiArICogICAgIGR1ZSB0byB0aGUg ZnJvbnRlbnQgZHJpdmVyIGltcGxlbWVudGF0aW9uIGl0IHNob3VsZCBuZXZlciBiZSBiaWdnZXIK PiArICogICAgIHRoYW4gUklOR19TSVpFICogQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNU Lgo+ICsgKigxMCkgVGhlIGRpc2NhcmQtc2VjdXJlIHByb3BlcnR5IG1heSBiZSBwcmVzZW50IGFu ZCB3aWxsIGJlIHNldCB0byAxIGlmIHRoZQo+ICsgKiAgICAgYmFja2luZyBkZXZpY2Ugc3VwcG9y dHMgc2VjdXJlIGRpc2NhcmQuCj4gKyAqLwo+ICsKPiArLyoKPiArICogU1RBVEUgRElBR1JBTVMK PiArICoKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdGFydHVwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgo+ ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKPiArICoKPiArICogVG9vbCBzdGFjayBjcmVhdGVzIGZy b250IGFuZCBiYWNrIG5vZGVzIHdpdGggc3RhdGUgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcuCj4g KyAqCj4gKyAqIEZyb250ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrCj4gKyAq ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgICA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Cj4gKyAqIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nICAgICAgICAg ICAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2luZwo+ICsgKiAgbyBRdWVyeSB2aXJ0dWFsIGRldmlj ZSAgICAgICAgICAgICAgIG8gUXVlcnkgYmFja2VuZCBkZXZpY2UgaWRlbnRpZmljYXRpb24KPiAr ICogICAgcHJvcGVydGllcy4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuCj4gKyAqICBv IFNldHVwIE9TIGRldmljZSBpbnN0YW5jZS4gICAgICAgICAgbyBPcGVuIGFuZCB2YWxpZGF0ZSBi YWNrZW5kIGRldmljZS4KPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvIFB1Ymxpc2ggYmFja2VuZCBmZWF0dXJlcyBhbmQKPiArICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcG9ydCBwYXJhbWV0ZXJzLgo+ICsgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiArICogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gKyAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVgo+ ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVJbml0 V2FpdAo+ICsgKgo+ICsgKiBvIFF1ZXJ5IGJhY2tlbmQgZmVhdHVyZXMgYW5kCj4gKyAqICAgdHJh bnNwb3J0IHBhcmFtZXRlcnMuCj4gKyAqIG8gQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgdGhlCj4g KyAqICAgcmVxdWVzdCByaW5nLgo+ICsgKiBvIFB1Ymxpc2ggdHJhbnNwb3J0IHBhcmFtZXRlcnMK PiArICogICB0aGF0IHdpbGwgYmUgaW4gZWZmZWN0IGR1cmluZwo+ICsgKiAgIHRoaXMgY29ubmVj dGlvbi4KPiArICogICAgICAgICAgICAgIHwKPiArICogICAgICAgICAgICAgIHwKPiArICogICAg ICAgICAgICAgIFYKPiArICogWGVuYnVzU3RhdGVJbml0aWFsaXNlZAo+ICsgKgo+ICsgKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gUXVlcnkgZnJvbnRlbmQgdHJhbnNw b3J0IHBhcmFtZXRlcnMuCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbyBDb25uZWN0IHRvIHRoZSByZXF1ZXN0IHJpbmcgYW5kCj4gKyAqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudCBjaGFubmVsLgo+ICsgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gUHVibGlzaCBiYWNrZW5kIGRldmljZSBwcm9w ZXJ0aWVzLgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8Cj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWGVuYnVzU3RhdGVDb25uZWN0ZWQKPiArICoKPiArICogIG8gUXVlcnkgYmFja2VuZCBk ZXZpY2UgcHJvcGVydGllcy4KPiArICogIG8gRmluYWxpemUgT1MgdmlydHVhbCBkZXZpY2UKPiAr ICogICAgaW5zdGFuY2UuCj4gKyAqICAgICAgICAgICAgICB8Cj4gKyAqICAgICAgICAgICAgICB8 Cj4gKyAqICAgICAgICAgICAgICBWCj4gKyAqIFhlbmJ1c1N0YXRlQ29ubmVjdGVkCj4gKyAqCj4g KyAqIE5vdGU6IERyaXZlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBhbnkgb3B0aW9uYWwgZmVhdHVy ZXMsIG9yIHRoZSBuZWdvdGlhdGlvbgo+ICsgKiAgICAgICBvZiB0cmFuc3BvcnQgcGFyYW1ldGVy cywgY2FuIHNraXAgY2VydGFpbiBzdGF0ZXMgaW4gdGhlIHN0YXRlIG1hY2hpbmU6Cj4gKyAqCj4g KyAqICAgICAgIG8gQSBmcm9udGVuZCBtYXkgdHJhbnNpdGlvbiB0byBYZW5idXNTdGF0ZUluaXRp YWxpc2VkIHdpdGhvdXQKPiArICogICAgICAgICB3YWl0aW5nIGZvciB0aGUgYmFja2VuZCB0byBl bnRlciBYZW5idXNTdGF0ZUluaXRXYWl0LiAgSW4gdGhpcwo+ICsgKiAgICAgICAgIGNhc2UsIGRl ZmF1bHQgdHJhbnNwb3J0IHBhcmFtZXRlcnMgYXJlIGluIGVmZmVjdCBhbmQgYW55Cj4gKyAqICAg ICAgICAgdHJhbnNwb3J0IHBhcmFtZXRlcnMgcHVibGlzaGVkIGJ5IHRoZSBmcm9udGVuZCBtdXN0 IGNvbnRhaW4KPiArICogICAgICAgICB0aGVpciBkZWZhdWx0IHZhbHVlcy4KPiArICoKPiArICog ICAgICAgbyBBIGJhY2tlbmQgbWF5IHRyYW5zaXRpb24gdG8gWGVuYnVzU3RhdGVJbml0aWFsaXNl ZCwgYnlwYXNzaW5nCj4gKyAqICAgICAgICAgWGVuYnVzU3RhdGVJbml0V2FpdCwgd2l0aG91dCB3 YWl0aW5nIGZvciB0aGUgZnJvbnRlbmQgdG8gZmlyc3QKPiArICogICAgICAgICBlbnRlciB0aGUg WGVuYnVzU3RhdGVJbml0aWFsaXNlZCBzdGF0ZS4gIEluIHRoaXMgY2FzZSwgZGVmYXVsdAo+ICsg KiAgICAgICAgIHRyYW5zcG9ydCBwYXJhbWV0ZXJzIGFyZSBpbiBlZmZlY3QgYW5kIGFueSB0cmFu c3BvcnQgcGFyYW1ldGVycwo+ICsgKiAgICAgICAgIHB1Ymxpc2hlZCBieSB0aGUgYmFja2VuZCBt dXN0IGNvbnRhaW4gdGhlaXIgZGVmYXVsdCB2YWx1ZXMuCj4gKyAqCj4gKyAqICAgICAgIERyaXZl cnMgdGhhdCBzdXBwb3J0IG9wdGlvbmFsIGZlYXR1cmVzIGFuZC9vciB0cmFuc3BvcnQgcGFyYW1l dGVyCj4gKyAqICAgICAgIG5lZ290aWF0aW9uIG11c3QgdG9sZXJhdGUgdGhlc2UgYWRkaXRpb25h bCBzdGF0ZSB0cmFuc2l0aW9uIHBhdGhzLgo+ICsgKiAgICAgICBJbiBnZW5lcmFsIHRoaXMgbWVh bnMgcGVyZm9ybWluZyB0aGUgd29yayBvZiBhbnkgc2tpcHBlZCBzdGF0ZQo+ICsgKiAgICAgICB0 cmFuc2l0aW9uLCBpZiBpdCBoYXMgbm90IGFscmVhZHkgYmVlbiBwZXJmb3JtZWQsIGluIGFkZGl0 aW9uIHRvIHRoZQo+ICsgKiAgICAgICB3b3JrIGFzc29jaWF0ZWQgd2l0aCBlbnRyeSBpbnRvIHRo ZSBjdXJyZW50IHN0YXRlLgo+ICsgKi8KPiArCj4gKy8qCj4gKyAqIFJFUVVFU1QgQ09ERVMuCj4g KyAqLwo+ICsjZGVmaW5lIEJMS0lGX09QX1JFQUQgICAgICAgICAgICAgIDAKPiArI2RlZmluZSBC TEtJRl9PUF9XUklURSAgICAgICAgICAgICAxCj4gKy8qCj4gKyAqIEFsbCB3cml0ZXMgaXNzdWVk IHByaW9yIHRvIGEgcmVxdWVzdCB3aXRoIHRoZSBCTEtJRl9PUF9XUklURV9CQVJSSUVSCj4gKyAq IG9wZXJhdGlvbiBjb2RlICgiYmFycmllciByZXF1ZXN0IikgbXVzdCBiZSBjb21wbGV0ZWQgcHJp b3IgdG8gdGhlCj4gKyAqIGV4ZWN1dGlvbiBvZiB0aGUgYmFycmllciByZXF1ZXN0LiAgQWxsIHdy aXRlcyBpc3N1ZWQgYWZ0ZXIgdGhlIGJhcnJpZXIKPiArICogcmVxdWVzdCBtdXN0IG5vdCBleGVj dXRlIHVudGlsIGFmdGVyIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBiYXJyaWVyIHJlcXVlc3QuCj4g KyAqCj4gKyAqIE9wdGlvbmFsLiAgU2VlICJmZWF0dXJlLWJhcnJpZXIiIFhlbkJ1cyBub2RlIGRv Y3VtZW50YXRpb24gYWJvdmUuCj4gKyAqLwo+ICsjZGVmaW5lIEJMS0lGX09QX1dSSVRFX0JBUlJJ RVIgICAgIDIKPiArLyoKPiArICogQ29tbWl0IGFueSB1bmNvbW1pdHRlZCBjb250ZW50cyBvZiB0 aGUgYmFja2luZyBkZXZpY2UncyB2b2xhdGlsZSBjYWNoZQo+ICsgKiB0byBzdGFibGUgc3RvcmFn ZS4KPiArICoKPiArICogT3B0aW9uYWwuICBTZWUgImZlYXR1cmUtZmx1c2gtY2FjaGUiIFhlbkJ1 cyBub2RlIGRvY3VtZW50YXRpb24gYWJvdmUuCj4gKyAqLwo+ICsjZGVmaW5lIEJMS0lGX09QX0ZM VVNIX0RJU0tDQUNIRSAgIDMKPiArLyoKPiArICogVXNlZCBpbiBTTEVTIHNvdXJjZXMgZm9yIGRl dmljZSBzcGVjaWZpYyBjb21tYW5kIHBhY2tldAo+ICsgKiBjb250YWluZWQgd2l0aGluIHRoZSBy ZXF1ZXN0LiBSZXNlcnZlZCBmb3IgdGhhdCBwdXJwb3NlLgo+ICsgKi8KPiArI2RlZmluZSBCTEtJ Rl9PUF9SRVNFUlZFRF8xICAgICAgICA0Cj4gKy8qCj4gKyAqIEluZGljYXRlIHRvIHRoZSBiYWNr ZW5kIGRldmljZSB0aGF0IGEgcmVnaW9uIG9mIHN0b3JhZ2UgaXMgbm8gbG9uZ2VyIGluCj4gKyAq IHVzZSwgYW5kIG1heSBiZSBkaXNjYXJkZWQgYXQgYW55IHRpbWUgd2l0aG91dCBpbXBhY3QgdG8g dGhlIGNsaWVudC4gIElmCj4gKyAqIHRoZSBCTEtJRl9ESVNDQVJEX1NFQ1VSRSBmbGFnIGlzIHNl dCBvbiB0aGUgcmVxdWVzdCwgYWxsIGNvcGllcyBvZiB0aGUKPiArICogZGlzY2FyZGVkIHJlZ2lv biBvbiB0aGUgZGV2aWNlIG11c3QgYmUgcmVuZGVyZWQgdW5yZWNvdmVyYWJsZSBiZWZvcmUgdGhl Cj4gKyAqIGNvbW1hbmQgcmV0dXJucy4KPiArICoKPiArICogVGhpcyBvcGVyYXRpb24gaXMgYW5h bG9nb3VzIHRvIHBlcmZvcm1pbmcgYSB0cmltIChBVEEpIG9yIHVuYW1wIChTQ1NJKSwKPiArICog Y29tbWFuZCBvbiBhIG5hdGl2ZSBkZXZpY2UuCj4gKyAqCj4gKyAqIE1vcmUgaW5mb3JtYXRpb24g YWJvdXQgdHJpbS91bm1hcCBvcGVyYXRpb25zIGNhbiBiZSBmb3VuZCBhdDoKPiArICogaHR0cDov L3QxMy5vcmcvRG9jdW1lbnRzL1VwbG9hZGVkRG9jdW1lbnRzL2RvY3MyMDA4Lwo+ICsgKiAgICAg ZTA3MTU0cjYtRGF0YV9TZXRfTWFuYWdlbWVudF9Qcm9wb3NhbF9mb3JfQVRBLUFDUzIuZG9jCj4g KyAqIGh0dHA6Ly93d3cuc2VhZ2F0ZS5jb20vc3RhdGljZmlsZXMvc3VwcG9ydC9kaXNjL21hbnVh bHMvCj4gKyAqICAgICBJbnRlcmZhY2UlMjBtYW51YWxzLzEwMDI5MzA2OGMucGRmCj4gKyAqCj4g KyAqIE9wdGlvbmFsLiAgU2VlICJmZWF0dXJlLWRpc2NhcmQiLCAiZGlzY2FyZC1hbGlnbm1lbnQi LAo+ICsgKiAiZGlzY2FyZC1ncmFudWxhcml0eSIsIGFuZCAiZGlzY2FyZC1zZWN1cmUiIGluIHRo ZSBYZW5CdXMgbm9kZQo+ICsgKiBkb2N1bWVudGF0aW9uIGFib3ZlLgo+ICsgKi8KPiArI2RlZmlu ZSBCTEtJRl9PUF9ESVNDQVJEICAgICAgICAgICA1Cj4gKwo+ICsvKgo+ICsgKiBSZWNvZ25pemVk IGlmICJmZWF0dXJlLW1heC1pbmRpcmVjdC1zZWdtZW50cyIgaW4gcHJlc2VudCBpbiB0aGUgYmFj a2VuZAo+ICsgKiB4ZW5idXMgaW5mby4gVGhlICJmZWF0dXJlLW1heC1pbmRpcmVjdC1zZWdtZW50 cyIgbm9kZSBjb250YWlucyB0aGUgbWF4aW11bQo+ICsgKiBudW1iZXIgb2Ygc2VnbWVudHMgYWxs b3dlZCBieSB0aGUgYmFja2VuZCBwZXIgcmVxdWVzdC4gSWYgdGhlIG5vZGUgaXMKPiArICogcHJl c2VudCwgdGhlIGZyb250ZW5kIG1pZ2h0IHVzZSBibGtpZl9yZXF1ZXN0X2luZGlyZWN0IHN0cnVj dHMgaW4gb3JkZXIgdG8KPiArICogaXNzdWUgcmVxdWVzdHMgd2l0aCBtb3JlIHRoYW4gQkxLSUZf TUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUICgxMSkuIFRoZQo+ICsgKiBtYXhpbXVtIG51bWJlciBv ZiBpbmRpcmVjdCBzZWdtZW50cyBpcyBmaXhlZCBieSB0aGUgYmFja2VuZCwgYnV0IHRoZQo+ICsg KiBmcm9udGVuZCBjYW4gaXNzdWUgcmVxdWVzdHMgd2l0aCBhbnkgbnVtYmVyIG9mIGluZGlyZWN0 IHNlZ21lbnRzIGFzIGxvbmcgYXMKPiArICogaXQncyBsZXNzIHRoYW4gdGhlIG51bWJlciBwcm92 aWRlZCBieSB0aGUgYmFja2VuZC4gVGhlIGluZGlyZWN0X2dyZWZzIGZpZWxkCj4gKyAqIGluIGJs a2lmX3JlcXVlc3RfaW5kaXJlY3Qgc2hvdWxkIGJlIGZpbGxlZCBieSB0aGUgZnJvbnRlbmQgd2l0 aCB0aGUKPiArICogZ3JhbnQgcmVmZXJlbmNlcyBvZiB0aGUgcGFnZXMgdGhhdCBhcmUgaG9sZGlu ZyB0aGUgaW5kaXJlY3Qgc2VnbWVudHMuCj4gKyAqIFRoZXNlIHBhZ2VzIGFyZSBmaWxsZWQgd2l0 aCBhbiBhcnJheSBvZiBibGtpZl9yZXF1ZXN0X3NlZ21lbnQgdGhhdCBob2xkIHRoZQo+ICsgKiBp bmZvcm1hdGlvbiBhYm91dCB0aGUgc2VnbWVudHMuIFRoZSBudW1iZXIgb2YgaW5kaXJlY3QgcGFn ZXMgdG8gdXNlIGlzCj4gKyAqIGRldGVybWluZWQgYnkgdGhlIG51bWJlciBvZiBzZWdtZW50cyBh biBpbmRpcmVjdCByZXF1ZXN0IGNvbnRhaW5zLiBFdmVyeQo+ICsgKiBpbmRpcmVjdCBwYWdlIGNh biBjb250YWluIGEgbWF4aW11bSBvZgo+ICsgKiAoUEFHRV9TSVpFIC8gc2l6ZW9mKHN0cnVjdCBi bGtpZl9yZXF1ZXN0X3NlZ21lbnQpKSBzZWdtZW50cywgc28gdG8KPiArICogY2FsY3VsYXRlIHRo ZSBudW1iZXIgb2YgaW5kaXJlY3QgcGFnZXMgdG8gdXNlIHdlIGhhdmUgdG8gZG8KPiArICogY2Vp bChpbmRpcmVjdF9zZWdtZW50cyAvIChQQUdFX1NJWkUgLyBzaXplb2Yoc3RydWN0IGJsa2lmX3Jl cXVlc3Rfc2VnbWVudCkpKS4KPiArICoKPiArICogSWYgYSBiYWNrZW5kIGRvZXMgbm90IHJlY29n bml6ZSBCTEtJRl9PUF9JTkRJUkVDVCwgaXQgc2hvdWxkICpub3QqCj4gKyAqIGNyZWF0ZSB0aGUg ImZlYXR1cmUtbWF4LWluZGlyZWN0LXNlZ21lbnRzIiBub2RlIQo+ICsgKi8KPiArI2RlZmluZSBC TEtJRl9PUF9JTkRJUkVDVCAgICAgICAgICA2Cj4gKwo+ICsvKgo+ICsgKiBNYXhpbXVtIHNjYXR0 ZXIvZ2F0aGVyIHNlZ21lbnRzIHBlciByZXF1ZXN0Lgo+ICsgKiBUaGlzIGlzIGNhcmVmdWxseSBj aG9zZW4gc28gdGhhdCBzaXplb2YoYmxraWZfcmluZ190KSA8PSBQQUdFX1NJWkUuCj4gKyAqIE5C LiBUaGlzIGNvdWxkIGJlIDEyIGlmIHRoZSByaW5nIGluZGV4ZXMgd2VyZW4ndCBzdG9yZWQgaW4g dGhlIHNhbWUgcGFnZS4KPiArICovCj4gKyNkZWZpbmUgQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9S RVFVRVNUIDExCj4gKwo+ICsvKgo+ICsgKiBNYXhpbXVtIG51bWJlciBvZiBpbmRpcmVjdCBwYWdl cyB0byB1c2UgcGVyIHJlcXVlc3QuCj4gKyAqLwo+ICsjZGVmaW5lIEJMS0lGX01BWF9JTkRJUkVD VF9QQUdFU19QRVJfUkVRVUVTVCA4Cj4gKwo+ICsvKgo+ICsgKiBOQi4gZmlyc3Rfc2VjdCBhbmQg bGFzdF9zZWN0IGluIGJsa2lmX3JlcXVlc3Rfc2VnbWVudCwgYXMgd2VsbCBhcwo+ICsgKiBzZWN0 b3JfbnVtYmVyIGluIGJsa2lmX3JlcXVlc3QsIGFyZSBhbHdheXMgZXhwcmVzc2VkIGluIDUxMi1i eXRlIHVuaXRzLgo+ICsgKiBIb3dldmVyIHRoZXkgbXVzdCBiZSBwcm9wZXJseSBhbGlnbmVkIHRv IHRoZSByZWFsIHNlY3RvciBzaXplIG9mIHRoZQo+ICsgKiBwaHlzaWNhbCBkaXNrLCB3aGljaCBp cyByZXBvcnRlZCBpbiB0aGUgInBoeXNpY2FsLXNlY3Rvci1zaXplIiBub2RlIGluCj4gKyAqIHRo ZSBiYWNrZW5kIHhlbmJ1cyBpbmZvLiBBbHNvIHRoZSB4ZW5idXMgInNlY3RvcnMiIG5vZGUgaXMg ZXhwcmVzc2VkIGluCj4gKyAqIDUxMi1ieXRlIHVuaXRzLgo+ICsgKi8KPiArc3RydWN0IGJsa2lm X3JlcXVlc3Rfc2VnbWVudCB7Cj4gKyAgICBncmFudF9yZWZfdCBncmVmOyAgICAgICAgLyogcmVm ZXJlbmNlIHRvIEkvTyBidWZmZXIgZnJhbWUgICAgICAgICovCj4gKyAgICAvKiBAZmlyc3Rfc2Vj dDogZmlyc3Qgc2VjdG9yIGluIGZyYW1lIHRvIHRyYW5zZmVyIChpbmNsdXNpdmUpLiAgICovCj4g KyAgICAvKiBAbGFzdF9zZWN0OiBsYXN0IHNlY3RvciBpbiBmcmFtZSB0byB0cmFuc2ZlciAoaW5j bHVzaXZlKS4gICAgICovCj4gKyAgICBVSU5UOCAgICAgZmlyc3Rfc2VjdCwgbGFzdF9zZWN0Owo+ ICt9Owo+ICsKPiArLyoKPiArICogU3RhcnRpbmcgcmluZyBlbGVtZW50IGZvciBhbnkgSS9PIHJl cXVlc3QuCj4gKyAqLwo+ICtzdHJ1Y3QgYmxraWZfcmVxdWVzdCB7Cj4gKyAgICBVSU5UOCAgICAg ICAgb3BlcmF0aW9uOyAgICAvKiBCTEtJRl9PUF8/Pz8gICAgICAgICAgICAgICAgICAgICAgICAg Ki8KPiArICAgIFVJTlQ4ICAgICAgICBucl9zZWdtZW50czsgIC8qIG51bWJlciBvZiBzZWdtZW50 cyAgICAgICAgICAgICAgICAgICAqLwo+ICsgICAgYmxraWZfdmRldl90ICAgaGFuZGxlOyAgICAg ICAvKiBvbmx5IGZvciByZWFkL3dyaXRlIHJlcXVlc3RzICAgICAgICAgKi8KPiArICAgIFVJTlQ2 NCAgICAgICBpZDsgICAgICAgICAgIC8qIHByaXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBpbiBy ZXNwICAqLwo+ICsgICAgYmxraWZfc2VjdG9yX3Qgc2VjdG9yX251bWJlcjsvKiBzdGFydCBzZWN0 b3IgaWR4IG9uIGRpc2sgKHIvdyBvbmx5KSAgKi8KPiArICAgIHN0cnVjdCBibGtpZl9yZXF1ZXN0 X3NlZ21lbnQgc2VnW0JMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVF07Cj4gK307Cj4gK3R5 cGVkZWYgc3RydWN0IGJsa2lmX3JlcXVlc3QgYmxraWZfcmVxdWVzdF90Owo+ICsKPiArLyoKPiAr ICogQ2FzdCB0byB0aGlzIHN0cnVjdHVyZSB3aGVuIGJsa2lmX3JlcXVlc3Qub3BlcmF0aW9uID09 IEJMS0lGX09QX0RJU0NBUkQKPiArICogc2l6ZW9mKHN0cnVjdCBibGtpZl9yZXF1ZXN0X2Rpc2Nh cmQpIDw9IHNpemVvZihzdHJ1Y3QgYmxraWZfcmVxdWVzdCkKPiArICovCj4gK3N0cnVjdCBibGtp Zl9yZXF1ZXN0X2Rpc2NhcmQgewo+ICsgICAgVUlOVDggICAgICAgIG9wZXJhdGlvbjsgICAgLyog QkxLSUZfT1BfRElTQ0FSRCAgICAgICAgICAgICAgICAgICAgICovCj4gKyAgICBVSU5UOCAgICAg ICAgZmxhZzsgICAgICAgICAvKiBCTEtJRl9ESVNDQVJEX1NFQ1VSRSBvciB6ZXJvICAgICAgICAg Ki8KPiArI2RlZmluZSBCTEtJRl9ESVNDQVJEX1NFQ1VSRSAoMTw8MCkgIC8qIGlnbm9yZWQgaWYg ZGlzY2FyZC1zZWN1cmU9MCAgICAgICovCj4gKyAgICBibGtpZl92ZGV2X3QgICBoYW5kbGU7ICAg ICAgIC8qIHNhbWUgYXMgZm9yIHJlYWQvd3JpdGUgcmVxdWVzdHMgICAgICAqLwo+ICsgICAgVUlO VDY0ICAgICAgIGlkOyAgICAgICAgICAgLyogcHJpdmF0ZSBndWVzdCB2YWx1ZSwgZWNob2VkIGlu IHJlc3AgICovCj4gKyAgICBibGtpZl9zZWN0b3JfdCBzZWN0b3JfbnVtYmVyOy8qIHN0YXJ0IHNl Y3RvciBpZHggb24gZGlzayAgICAgICAgICAgICAqLwo+ICsgICAgVUlOVDY0ICAgICAgIG5yX3Nl Y3RvcnM7ICAgLyogbnVtYmVyIG9mIGNvbnRpZ3VvdXMgc2VjdG9ycyB0byBkaXNjYXJkKi8KPiAr fTsKPiArdHlwZWRlZiBzdHJ1Y3QgYmxraWZfcmVxdWVzdF9kaXNjYXJkIGJsa2lmX3JlcXVlc3Rf ZGlzY2FyZF90Owo+ICsKPiArc3RydWN0IGJsa2lmX3JlcXVlc3RfaW5kaXJlY3Qgewo+ICsgICAg VUlOVDggICAgICAgIG9wZXJhdGlvbjsgICAgLyogQkxLSUZfT1BfSU5ESVJFQ1QgICAgICAgICAg ICAgICAgICAgICovCj4gKyAgICBVSU5UOCAgICAgICAgaW5kaXJlY3Rfb3A7ICAvKiBCTEtJRl9P UF97UkVBRC9XUklURX0gICAgICAgICAgICAgICAgKi8KPiArICAgIFVJTlQxNiAgICAgICBucl9z ZWdtZW50czsgIC8qIG51bWJlciBvZiBzZWdtZW50cyAgICAgICAgICAgICAgICAgICAqLwo+ICsg ICAgVUlOVDY0ICAgICAgIGlkOyAgICAgICAgICAgLyogcHJpdmF0ZSBndWVzdCB2YWx1ZSwgZWNo b2VkIGluIHJlc3AgICovCj4gKyAgICBibGtpZl9zZWN0b3JfdCBzZWN0b3JfbnVtYmVyOy8qIHN0 YXJ0IHNlY3RvciBpZHggb24gZGlzayAoci93IG9ubHkpICAqLwo+ICsgICAgYmxraWZfdmRldl90 ICAgaGFuZGxlOyAgICAgICAvKiBzYW1lIGFzIGZvciByZWFkL3dyaXRlIHJlcXVlc3RzICAgICAg Ki8KPiArICAgIGdyYW50X3JlZl90ICAgIGluZGlyZWN0X2dyZWZzW0JMS0lGX01BWF9JTkRJUkVD VF9QQUdFU19QRVJfUkVRVUVTVF07Cj4gKyNpZmRlZiBfX2kzODZfXwo+ICsgICAgVUlOVDY0ICAg ICAgIHBhZDsgICAgICAgICAgLyogTWFrZSBpdCA2NCBieXRlIGFsaWduZWQgb24gaTM4NiAgICAg ICovCj4gKyNlbmRpZgo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCBibGtpZl9yZXF1ZXN0X2luZGly ZWN0IGJsa2lmX3JlcXVlc3RfaW5kaXJlY3RfdDsKPiArCj4gK3N0cnVjdCBibGtpZl9yZXNwb25z ZSB7Cj4gKyAgICBVSU5UNjQgICAgICAgIGlkOyAgICAgICAgICAgICAgLyogY29waWVkIGZyb20g cmVxdWVzdCAqLwo+ICsgICAgVUlOVDggICAgICAgICBvcGVyYXRpb247ICAgICAgIC8qIGNvcGll ZCBmcm9tIHJlcXVlc3QgKi8KPiArICAgIElOVDE2ICAgICAgICAgc3RhdHVzOyAgICAgICAgICAv KiBCTEtJRl9SU1BfPz8/ICAgICAgICovCj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IGJsa2lmX3Jl c3BvbnNlIGJsa2lmX3Jlc3BvbnNlX3Q7Cj4gKwo+ICsvKgo+ICsgKiBTVEFUVVMgUkVUVVJOIENP REVTLgo+ICsgKi8KPiArIC8qIE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIChvbmx5IGhhcHBlbnMg b24gYmFycmllciB3cml0ZXMpLiAqLwo+ICsjZGVmaW5lIEJMS0lGX1JTUF9FT1BOT1RTVVBQICAt Mgo+ICsgLyogT3BlcmF0aW9uIGZhaWxlZCBmb3Igc29tZSB1bnNwZWNpZmllZCByZWFzb24gKC1F SU8pLiAqLwo+ICsjZGVmaW5lIEJMS0lGX1JTUF9FUlJPUiAgICAgICAtMQo+ICsgLyogT3BlcmF0 aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuICovCj4gKyNkZWZpbmUgQkxLSUZfUlNQX09LQVkg ICAgICAgICAwCj4gKwo+ICsvKgo+ICsgKiBHZW5lcmF0ZSBibGtpZiByaW5nIHN0cnVjdHVyZXMg YW5kIHR5cGVzLgo+ICsgKi8KPiArREVGSU5FX1JJTkdfVFlQRVMoYmxraWYsIHN0cnVjdCBibGtp Zl9yZXF1ZXN0LCBzdHJ1Y3QgYmxraWZfcmVzcG9uc2UpOwo+ICsKPiArI2RlZmluZSBWRElTS19D RFJPTSAgICAgICAgMHgxCj4gKyNkZWZpbmUgVkRJU0tfUkVNT1ZBQkxFICAgIDB4Mgo+ICsjZGVm aW5lIFZESVNLX1JFQURPTkxZICAgICAweDQKPiArCj4gKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNf SU9fQkxLSUZfSF9fICovCj4gKwo+ICsvKgo+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4gKyAqIG1v ZGU6IEMKPiArICogYy1maWxlLXN0eWxlOiAiQlNEIgo+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+ ICsgKiB0YWItd2lkdGg6IDQKPiArICogaW5kZW50LXRhYnMtbW9kZTogbmlsCj4gKyAqIEVuZDoK PiArICovCj4gZGlmZiAtLWdpdCBhL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hl bi9pby9wcm90b2NvbHMuaCBiL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9p by9wcm90b2NvbHMuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uODBi MTk2Ygo+IC0tLSAvZGV2L251bGwKPiArKysgYi9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFu ZGFyZC9YZW4vaW8vcHJvdG9jb2xzLmgKPiBAQCAtMCwwICsxLDQwIEBACj4gKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKPiArICogcHJvdG9jb2xzLmgKPiArICogCj4gKyAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh IGNvcHkKPiArICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u IGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCj4gKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdp dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCj4gKyAq IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsIGFuZC9vcgo+ICsgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFu ZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwo+ICsgKiBmdXJuaXNo ZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ICsgKgo+ ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj ZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+ICsgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv cnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiAr ICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF IEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQo+ICsgKiBBVVRIT1JT IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S IE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05O RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiArICogREVBTElO R1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX19YRU5fUFJPVE9DT0xT X0hfXwo+ICsjZGVmaW5lIF9fWEVOX1BST1RPQ09MU19IX18KPiArCj4gKyNkZWZpbmUgWEVOX0lP X1BST1RPX0FCSV9YODZfMzIgICAgICJ4ODZfMzItYWJpIgo+ICsjZGVmaW5lIFhFTl9JT19QUk9U T19BQklfWDg2XzY0ICAgICAieDg2XzY0LWFiaSIKPiArI2RlZmluZSBYRU5fSU9fUFJPVE9fQUJJ X0FSTSAgICAgICAgImFybS1hYmkiCj4gKwo+ICsjaWYgZGVmaW5lZChfX2kzODZfXykKPiArIyBk ZWZpbmUgWEVOX0lPX1BST1RPX0FCSV9OQVRJVkUgWEVOX0lPX1BST1RPX0FCSV9YODZfMzIKPiAr I2VsaWYgZGVmaW5lZChfX3g4Nl82NF9fKQo+ICsjIGRlZmluZSBYRU5fSU9fUFJPVE9fQUJJX05B VElWRSBYRU5fSU9fUFJPVE9fQUJJX1g4Nl82NAo+ICsjZWxpZiBkZWZpbmVkKF9fYXJtX18pIHx8 IGRlZmluZWQoX19hYXJjaDY0X18pCj4gKyMgZGVmaW5lIFhFTl9JT19QUk9UT19BQklfTkFUSVZF IFhFTl9JT19QUk9UT19BQklfQVJNCj4gKyNlbHNlCj4gKyMgZXJyb3IgYXJjaCBmaXh1cCBuZWVk ZWQgaGVyZQo+ICsjZW5kaWYKPiArCj4gKyNlbmRpZgo+IGRpZmYgLS1naXQgYS9Pdm1mUGtnL0lu Y2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vaW8vcmluZy5oIGIvT3ZtZlBrZy9JbmNsdWRlL0lu ZHVzdHJ5U3RhbmRhcmQvWGVuL2lvL3JpbmcuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5k ZXggMDAwMDAwMC4uYThlOWVhMAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9Pdm1mUGtnL0luY2x1 ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vaW8vcmluZy5oCj4gQEAgLTAsMCArMSwzMTIgQEAKPiAr LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiByaW5nLmgKPiArICogCj4gKyAqIFNoYXJlZCBw cm9kdWNlci1jb25zdW1lciByaW5nIG1hY3Jvcy4KPiArICoKPiArICogUGVybWlzc2lvbiBpcyBo ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEg Y29weQo+ICsgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPiArICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKPiArICog cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg c3VibGljZW5zZSwgYW5kL29yCj4gKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCj4gKyAqIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4g KyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl IHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y dGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsg KiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G IE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug QU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCj4gKyAqIEFVVEhPUlMg T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig T1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgo+ICsgKiBERUFMSU5H UyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIFRpbSBEZWVnYW4gYW5kIEFuZHJldyBXYXJm aWVsZCBOb3ZlbWJlciAyMDA0Lgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX19YRU5fUFVCTElDX0lP X1JJTkdfSF9fCj4gKyNkZWZpbmUgX19YRU5fUFVCTElDX0lPX1JJTkdfSF9fCj4gKwo+ICsjaW5j bHVkZSAiLi4veGVuLWNvbXBhdC5oIgo+ICsKPiArI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9O X18gPCAweDAwMDMwMjA4Cj4gKyNkZWZpbmUgeGVuX21iKCkgIG1iKCkKPiArI2RlZmluZSB4ZW5f cm1iKCkgcm1iKCkKPiArI2RlZmluZSB4ZW5fd21iKCkgd21iKCkKPiArI2VuZGlmCj4gKwo+ICt0 eXBlZGVmIFVJTlQzMiBSSU5HX0lEWDsKPiArCj4gKy8qIFJvdW5kIGEgMzItYml0IHVuc2lnbmVk IGNvbnN0YW50IGRvd24gdG8gdGhlIG5lYXJlc3QgcG93ZXIgb2YgdHdvLiAqLwo+ICsjZGVmaW5l IF9fUkQyKF94KSAgKCgoX3gpICYgMHgwMDAwMDAwMikgPyAweDIgICAgICAgICAgICAgICAgICA6 ICgoX3gpICYgMHgxKSkKPiArI2RlZmluZSBfX1JENChfeCkgICgoKF94KSAmIDB4MDAwMDAwMGMp ID8gX19SRDIoKF94KT4+Mik8PDIgICAgOiBfX1JEMihfeCkpCj4gKyNkZWZpbmUgX19SRDgoX3gp ICAoKChfeCkgJiAweDAwMDAwMGYwKSA/IF9fUkQ0KChfeCk+PjQpPDw0ICAgIDogX19SRDQoX3gp KQo+ICsjZGVmaW5lIF9fUkQxNihfeCkgKCgoX3gpICYgMHgwMDAwZmYwMCkgPyBfX1JEOCgoX3gp Pj44KTw8OCAgICA6IF9fUkQ4KF94KSkKPiArI2RlZmluZSBfX1JEMzIoX3gpICgoKF94KSAmIDB4 ZmZmZjAwMDApID8gX19SRDE2KChfeCk+PjE2KTw8MTYgOiBfX1JEMTYoX3gpKQo+ICsKPiArLyoK PiArICogQ2FsY3VsYXRlIHNpemUgb2YgYSBzaGFyZWQgcmluZywgZ2l2ZW4gdGhlIHRvdGFsIGF2 YWlsYWJsZSBzcGFjZSBmb3IgdGhlCj4gKyAqIHJpbmcgYW5kIGluZGV4ZXMgKF9zeiksIGFuZCB0 aGUgbmFtZSB0YWcgb2YgdGhlIHJlcXVlc3QvcmVzcG9uc2Ugc3RydWN0dXJlLgo+ICsgKiBBIHJp bmcgY29udGFpbnMgYXMgbWFueSBlbnRyaWVzIGFzIHdpbGwgZml0LCByb3VuZGVkIGRvd24gdG8g dGhlIG5lYXJlc3QgCj4gKyAqIHBvd2VyIG9mIHR3byAoc28gd2UgY2FuIG1hc2sgd2l0aCAoc2l6 ZS0xKSB0byBsb29wIGFyb3VuZCkuCj4gKyAqLwo+ICsjZGVmaW5lIF9fQ09OU1RfUklOR19TSVpF KF9zLCBfc3opIFwKPiArICAgIChfX1JEMzIoKChfc3opIC0gb2Zmc2V0b2Yoc3RydWN0IF9zIyNf c3JpbmcsIHJpbmcpKSAvIFwKPiArCSAgICBzaXplb2YoKChzdHJ1Y3QgX3MjI19zcmluZyAqKTAp LT5yaW5nWzBdKSkpCj4gKy8qCj4gKyAqIFRoZSBzYW1lIGZvciBwYXNzaW5nIGluIGFuIGFjdHVh bCBwb2ludGVyIGluc3RlYWQgb2YgYSBuYW1lIHRhZy4KPiArICovCj4gKyNkZWZpbmUgX19SSU5H X1NJWkUoX3MsIF9zeikgXAo+ICsgICAgKF9fUkQzMigoKF9zeikgLSAoSU5UTikoX3MpLT5yaW5n ICsgKElOVE4pKF9zKSkgLyBzaXplb2YoKF9zKS0+cmluZ1swXSkpKQo+ICsKPiArLyoKPiArICog TWFjcm9zIHRvIG1ha2UgdGhlIGNvcnJlY3QgQyBkYXRhdHlwZXMgZm9yIGEgbmV3IGtpbmQgb2Yg cmluZy4KPiArICogCj4gKyAqIFRvIG1ha2UgYSBuZXcgcmluZyBkYXRhdHlwZSwgeW91IG5lZWQg dG8gaGF2ZSB0d28gbWVzc2FnZSBzdHJ1Y3R1cmVzLAo+ICsgKiBsZXQncyBzYXkgcmVxdWVzdF90 LCBhbmQgcmVzcG9uc2VfdCBhbHJlYWR5IGRlZmluZWQuCj4gKyAqCj4gKyAqIEluIGEgaGVhZGVy IHdoZXJlIHlvdSB3YW50IHRoZSByaW5nIGRhdGF0eXBlIGRlY2xhcmVkLCB5b3UgdGhlbiBkbzoK PiArICoKPiArICogICAgIERFRklORV9SSU5HX1RZUEVTKG15dGFnLCByZXF1ZXN0X3QsIHJlc3Bv bnNlX3QpOwo+ICsgKgo+ICsgKiBUaGVzZSBleHBhbmQgb3V0IHRvIGdpdmUgeW91IGEgc2V0IG9m IHR5cGVzLCBhcyB5b3UgY2FuIHNlZSBiZWxvdy4KPiArICogVGhlIG1vc3QgaW1wb3J0YW50IG9m IHRoZXNlIGFyZToKPiArICogCj4gKyAqICAgICBteXRhZ19zcmluZ190ICAgICAgLSBUaGUgc2hh cmVkIHJpbmcuCj4gKyAqICAgICBteXRhZ19mcm9udF9yaW5nX3QgLSBUaGUgJ2Zyb250JyBoYWxm IG9mIHRoZSByaW5nLgo+ICsgKiAgICAgbXl0YWdfYmFja19yaW5nX3QgIC0gVGhlICdiYWNrJyBo YWxmIG9mIHRoZSByaW5nLgo+ICsgKgo+ICsgKiBUbyBpbml0aWFsaXplIGEgcmluZyBpbiB5b3Vy IGNvZGUgeW91IG5lZWQgdG8ga25vdyB0aGUgbG9jYXRpb24gYW5kIHNpemUKPiArICogb2YgdGhl IHNoYXJlZCBtZW1vcnkgYXJlYSAoUEFHRV9TSVpFLCBmb3IgaW5zdGFuY2UpLiBUbyBpbml0aWFs aXNlCj4gKyAqIHRoZSBmcm9udCBoYWxmOgo+ICsgKgo+ICsgKiAgICAgbXl0YWdfZnJvbnRfcmlu Z190IGZyb250X3Jpbmc7Cj4gKyAqICAgICBTSEFSRURfUklOR19JTklUKChteXRhZ19zcmluZ190 ICopc2hhcmVkX3BhZ2UpOwo+ICsgKiAgICAgRlJPTlRfUklOR19JTklUKCZmcm9udF9yaW5nLCAo bXl0YWdfc3JpbmdfdCAqKXNoYXJlZF9wYWdlLCBQQUdFX1NJWkUpOwo+ICsgKgo+ICsgKiBJbml0 aWFsaXppbmcgdGhlIGJhY2sgZm9sbG93cyBzaW1pbGFybHkgKG5vdGUgdGhhdCBvbmx5IHRoZSBm cm9udAo+ICsgKiBpbml0aWFsaXplcyB0aGUgc2hhcmVkIHJpbmcpOgo+ICsgKgo+ICsgKiAgICAg bXl0YWdfYmFja19yaW5nX3QgYmFja19yaW5nOwo+ICsgKiAgICAgQkFDS19SSU5HX0lOSVQoJmJh Y2tfcmluZywgKG15dGFnX3NyaW5nX3QgKilzaGFyZWRfcGFnZSwgUEFHRV9TSVpFKTsKPiArICov Cj4gKwo+ICsjZGVmaW5lIERFRklORV9SSU5HX1RZUEVTKF9fbmFtZSwgX19yZXFfdCwgX19yc3Bf dCkgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArLyogU2hhcmVk IHJpbmcgZW50cnkgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAo+ICt1bmlvbiBfX25hbWUjI19zcmluZ19lbnRyeSB7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICBfX3JlcV90IHJlcTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIF9f cnNwX3QgcnNwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAo+ICt9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArLyog U2hhcmVkIHJpbmcgcGFnZSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAo+ICtzdHJ1Y3QgX19uYW1lIyNfc3JpbmcgeyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICBSSU5HX0lEWCByZXFfcHJv ZCwgcmVxX2V2ZW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAr ICAgIFJJTkdfSURYIHJzcF9wcm9kLCByc3BfZXZlbnQ7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAo+ICsgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgc3RydWN0IHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK PiArICAgICAgICAgICAgVUlOVDggc21hcnRwb2xsX2FjdGl2ZTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKPiArICAgICAgICB9IG5ldGlmOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgIHN0cnVjdCB7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Cj4gKyAgICAgICAgICAgIFVJTlQ4IG1zZzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgfSB0YXBpZl91c2VyOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAgICBVSU5UOCBw dnRfcGFkWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK PiArICAgIH0gcHJpdmF0ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAo+ICsgICAgVUlOVDggX19wYWRbNDRdOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgdW5pb24gX19uYW1l IyNfc3JpbmdfZW50cnkgcmluZ1sxXTsgLyogdmFyaWFibGUtbGVuZ3RoICovICAgICAgICAgICBc Cj4gK307ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsvKiAiRnJvbnQiIGVu ZCdzIHByaXZhdGUgdmFyaWFibGVzICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCj4gK3N0cnVjdCBfX25hbWUjI19mcm9udF9yaW5nIHsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIFJJTkdfSURYIHJlcV9wcm9kX3B2dDsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgUklOR19J RFggcnNwX2NvbnM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCj4gKyAgICBVSU5UMzIgbnJfZW50czsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHN0cnVjdCBfX25hbWUjI19zcmluZyAqc3Jpbmc7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICt9OyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKPiArLyogIkJhY2siIGVuZCdzIHByaXZhdGUgdmFyaWFi bGVzICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICtzdHJ1Y3QgX19u YW1lIyNfYmFja19yaW5nIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCj4gKyAgICBSSU5HX0lEWCByc3BfcHJvZF9wdnQ7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIFJJTkdfSURYIHJlcV9jb25zOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgVUlO VDMyIG5yX2VudHM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCj4gKyAgICBzdHJ1Y3QgX19uYW1lIyNfc3JpbmcgKnNyaW5nOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKPiArfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCj4gKy8qIFN5bnRhY3RpYyBzdWdhciAqLyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArdHlwZWRlZiBzdHJ1Y3QgX19uYW1lIyNfc3Jp bmcgX19uYW1lIyNfc3JpbmdfdDsgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICt0eXBlZGVm IHN0cnVjdCBfX25hbWUjI19mcm9udF9yaW5nIF9fbmFtZSMjX2Zyb250X3JpbmdfdDsgICAgICAg ICAgICAgICBcCj4gK3R5cGVkZWYgc3RydWN0IF9fbmFtZSMjX2JhY2tfcmluZyBfX25hbWUjI19i YWNrX3JpbmdfdAo+ICsKPiArLyoKPiArICogTWFjcm9zIGZvciBtYW5pcHVsYXRpbmcgcmluZ3Mu Cj4gKyAqIAo+ICsgKiBGUk9OVF9SSU5HX3doYXRldmVyIHdvcmtzIG9uIHRoZSAiZnJvbnQgZW5k IiBvZiBhIHJpbmc6IGhlcmUgCj4gKyAqIHJlcXVlc3RzIGFyZSBwdXNoZWQgb24gdG8gdGhlIHJp bmcgYW5kIHJlc3BvbnNlcyB0YWtlbiBvZmYgaXQuCj4gKyAqIAo+ICsgKiBCQUNLX1JJTkdfd2hh dGV2ZXIgd29ya3Mgb24gdGhlICJiYWNrIGVuZCIgb2YgYSByaW5nOiBoZXJlIAo+ICsgKiByZXF1 ZXN0cyBhcmUgdGFrZW4gb2ZmIHRoZSByaW5nIGFuZCByZXNwb25zZXMgcHV0IG9uLgo+ICsgKiAK PiArICogTi5CLiB0aGVzZSBtYWNyb3MgZG8gTk8gSU5URVJMT0NLUyBPUiBGTE9XIENPTlRST0wu IAo+ICsgKiBUaGlzIGlzIE9LIGluIDEtZm9yLTEgcmVxdWVzdC1yZXNwb25zZSBzaXR1YXRpb25z IHdoZXJlIHRoZSAKPiArICogcmVxdWVzdG9yIChmcm9udCBlbmQpIG5ldmVyIGhhcyBtb3JlIHRo YW4gUklOR19TSVpFKCktMQo+ICsgKiBvdXRzdGFuZGluZyByZXF1ZXN0cy4KPiArICovCj4gKwo+ ICsvKiBJbml0aWFsaXNpbmcgZW1wdHkgcmluZ3MgKi8KPiArI2RlZmluZSBTSEFSRURfUklOR19J TklUKF9zKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsg ICAgKF9zKS0+cmVxX3Byb2QgID0gKF9zKS0+cnNwX3Byb2QgID0gMDsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCj4gKyAgICAoX3MpLT5yZXFfZXZlbnQgPSAoX3MpLT5yc3BfZXZlbnQg PSAxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIChWT0lEKVplcm9NZW0o KF9zKS0+cHJpdmF0ZS5wdnRfcGFkLCBzaXplb2YoKF9zKS0+cHJpdmF0ZS5wdnRfcGFkKSk7IFwK PiArICAgIChWT0lEKVplcm9NZW0oKF9zKS0+X19wYWQsIHNpemVvZigoX3MpLT5fX3BhZCkpOyAg ICAgICAgICAgICAgICAgIFwKPiArfSB3aGlsZSgwKQo+ICsKPiArI2RlZmluZSBGUk9OVF9SSU5H X0lOSVQoX3IsIF9zLCBfX3NpemUpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ ICsgICAgKF9yKS0+cmVxX3Byb2RfcHZ0ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCj4gKyAgICAoX3IpLT5yc3BfY29ucyA9IDA7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIChfciktPm5yX2Vu dHMgPSBfX1JJTkdfU0laRShfcywgX19zaXplKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAo+ICsgICAgKF9yKS0+c3JpbmcgPSAoX3MpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCj4gK30gd2hpbGUgKDApCj4gKwo+ICsjZGVmaW5lIEJBQ0tf UklOR19JTklUKF9yLCBfcywgX19zaXplKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCj4gKyAgICAoX3IpLT5yc3BfcHJvZF9wdnQgPSAwOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIChfciktPnJlcV9jb25zID0gMDsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgKF9yKS0+ bnJfZW50cyA9IF9fUklOR19TSVpFKF9zLCBfX3NpemUpOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCj4gKyAgICAoX3IpLT5zcmluZyA9IChfcyk7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArfSB3aGlsZSAoMCkKPiArCj4gKy8qIEhvdyBi aWcgaXMgdGhpcyByaW5nPyAqLwo+ICsjZGVmaW5lIFJJTkdfU0laRShfcikgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAoKF9yKS0+bnJf ZW50cykKPiArCj4gKy8qIE51bWJlciBvZiBmcmVlIHJlcXVlc3RzIChmb3IgdXNlIG9uIGZyb250 IHNpZGUgb25seSkuICovCj4gKyNkZWZpbmUgUklOR19GUkVFX1JFUVVFU1RTKF9yKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIChSSU5HX1NJWkUoX3Ip IC0gKChfciktPnJlcV9wcm9kX3B2dCAtIChfciktPnJzcF9jb25zKSkKPiArCj4gKy8qIFRlc3Qg aWYgdGhlcmUgaXMgYW4gZW1wdHkgc2xvdCBhdmFpbGFibGUgb24gdGhlIGZyb250IHJpbmcuCj4g KyAqIChUaGlzIGlzIG9ubHkgbWVhbmluZ2Z1bCBmcm9tIHRoZSBmcm9udC4gKQo+ICsgKi8KPiAr I2RlZmluZSBSSU5HX0ZVTEwoX3IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAo+ICsgICAgKFJJTkdfRlJFRV9SRVFVRVNUUyhfcikgPT0gMCkKPiAr Cj4gKy8qIFRlc3QgaWYgdGhlcmUgYXJlIG91dHN0YW5kaW5nIG1lc3NhZ2VzIHRvIGJlIHByb2Nl c3NlZCBvbiBhIHJpbmcuICovCj4gKyNkZWZpbmUgUklOR19IQVNfVU5DT05TVU1FRF9SRVNQT05T RVMoX3IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICgoX3IpLT5zcmlu Zy0+cnNwX3Byb2QgLSAoX3IpLT5yc3BfY29ucykKPiArCj4gKyNpZmRlZiBfX0dOVUNfXwo+ICsj ZGVmaW5lIFJJTkdfSEFTX1VOQ09OU1VNRURfUkVRVUVTVFMoX3IpICh7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCj4gKyAgICBVSU5UMzIgcmVxID0gKF9yKS0+c3JpbmctPnJlcV9wcm9k IC0gKF9yKS0+cmVxX2NvbnM7ICAgICAgICAgIFwKPiArICAgIFVJTlQzMiByc3AgPSBSSU5HX1NJ WkUoX3IpIC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgICgo X3IpLT5yZXFfY29ucyAtIChfciktPnJzcF9wcm9kX3B2dCk7ICAgICAgICAgICAgICAgICAgICAg ICAgICBcCj4gKyAgICByZXEgPCByc3AgPyByZXEgOiByc3A7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArfSkKPiArI2Vsc2UKPiArLyogU2FtZSBhcyBh Ym92ZSwgYnV0IHdpdGhvdXQgdGhlIG5pY2UgR0NDICh7IC4uLiB9KSBzeW50YXguICovCj4gKyNk ZWZpbmUgUklOR19IQVNfVU5DT05TVU1FRF9SRVFVRVNUUyhfcikgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKPiArICAgICgoKChfciktPnNyaW5nLT5yZXFfcHJvZCAtIChfciktPnJl cV9jb25zKSA8ICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAoUklOR19TSVpFKF9y KSAtICgoX3IpLT5yZXFfY29ucyAtIChfciktPnJzcF9wcm9kX3B2dCkpKSA/ICAgICAgICBcCj4g KyAgICAgKChfciktPnNyaW5nLT5yZXFfcHJvZCAtIChfciktPnJlcV9jb25zKSA6ICAgICAgICAg ICAgICAgICAgICAgICAgIFwKPiArICAgICAoUklOR19TSVpFKF9yKSAtICgoX3IpLT5yZXFfY29u cyAtIChfciktPnJzcF9wcm9kX3B2dCkpKQo+ICsjZW5kaWYKPiArCj4gKy8qIERpcmVjdCBhY2Nl c3MgdG8gaW5kaXZpZHVhbCByaW5nIGVsZW1lbnRzLCBieSBpbmRleC4gKi8KPiArI2RlZmluZSBS SU5HX0dFVF9SRVFVRVNUKF9yLCBfaWR4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAo+ICsgICAgKCYoKF9yKS0+c3JpbmctPnJpbmdbKChfaWR4KSAmIChSSU5HX1NJWkUo X3IpIC0gMSkpXS5yZXEpKQo+ICsKPiArI2RlZmluZSBSSU5HX0dFVF9SRVNQT05TRShfciwgX2lk eCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgKCYoKF9yKS0+ c3JpbmctPnJpbmdbKChfaWR4KSAmIChSSU5HX1NJWkUoX3IpIC0gMSkpXS5yc3ApKQo+ICsKPiAr LyogTG9vcCB0ZXJtaW5hdGlvbiBjb25kaXRpb246IFdvdWxkIHRoZSBzcGVjaWZpZWQgaW5kZXgg b3ZlcmZsb3cgdGhlIHJpbmc/ICovCj4gKyNkZWZpbmUgUklOR19SRVFVRVNUX0NPTlNfT1ZFUkZM T1coX3IsIF9jb25zKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICgoKF9jb25z KSAtIChfciktPnJzcF9wcm9kX3B2dCkgPj0gUklOR19TSVpFKF9yKSkKPiArCj4gKy8qIElsbC1i ZWhhdmVkIGZyb250ZW5kIGRldGVybWluYXRpb246IENhbiB0aGVyZSBiZSB0aGlzIG1hbnkgcmVx dWVzdHM/ICovCj4gKyNkZWZpbmUgUklOR19SRVFVRVNUX1BST0RfT1ZFUkZMT1coX3IsIF9wcm9k KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICgoKF9wcm9kKSAtIChfciktPnJz cF9wcm9kX3B2dCkgPiBSSU5HX1NJWkUoX3IpKQo+ICsKPiArI2RlZmluZSBSSU5HX1BVU0hfUkVR VUVTVFMoX3IpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsg ICAgeGVuX3dtYigpOyAvKiBiYWNrIHNlZXMgcmVxdWVzdHMgL2JlZm9yZS8gdXBkYXRlZCBwcm9k dWNlciBpbmRleCAqLyBcCj4gKyAgICAoX3IpLT5zcmluZy0+cmVxX3Byb2QgPSAoX3IpLT5yZXFf cHJvZF9wdnQ7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArfSB3aGlsZSAoMCkKPiArCj4g KyNkZWZpbmUgUklOR19QVVNIX1JFU1BPTlNFUyhfcikgZG8geyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKPiArICAgIHhlbl93bWIoKTsgLyogZnJvbnQgc2VlcyByZXNwcyAv YmVmb3JlLyB1cGRhdGVkIHByb2R1Y2VyIGluZGV4ICovICAgXAo+ICsgICAgKF9yKS0+c3Jpbmct PnJzcF9wcm9kID0gKF9yKS0+cnNwX3Byb2RfcHZ0OyAgICAgICAgICAgICAgICAgICAgICAgICBc Cj4gK30gd2hpbGUgKDApCj4gKwo+ICsvKgo+ICsgKiBOb3RpZmljYXRpb24gaG9sZC1vZmYgKHJl cV9ldmVudCBhbmQgcnNwX2V2ZW50KToKPiArICogCj4gKyAqIFdoZW4gcXVldWVpbmcgcmVxdWVz dHMgb3IgcmVzcG9uc2VzIG9uIGEgc2hhcmVkIHJpbmcsIGl0IG1heSBub3QgYWx3YXlzIGJlCj4g KyAqIG5lY2Vzc2FyeSB0byBub3RpZnkgdGhlIHJlbW90ZSBlbmQuIEZvciBleGFtcGxlLCBpZiBy ZXF1ZXN0cyBhcmUgaW4gZmxpZ2h0Cj4gKyAqIGluIGEgYmFja2VuZCwgdGhlIGZyb250IG1heSBi ZSBhYmxlIHRvIHF1ZXVlIGZ1cnRoZXIgcmVxdWVzdHMgd2l0aG91dAo+ICsgKiBub3RpZnlpbmcg dGhlIGJhY2sgKGlmIHRoZSBiYWNrIGNoZWNrcyBmb3IgbmV3IHJlcXVlc3RzIHdoZW4gaXQgcXVl dWVzCj4gKyAqIHJlc3BvbnNlcykuCj4gKyAqIAo+ICsgKiBXaGVuIGVucXVldWluZyByZXF1ZXN0 cyBvciByZXNwb25zZXM6Cj4gKyAqIAo+ICsgKiAgVXNlIFJJTkdfUFVTSF97UkVRVUVTVFMsUkVT UE9OU0VTfV9BTkRfQ0hFQ0tfTk9USUZZKCkuIFRoZSBzZWNvbmQgYXJndW1lbnQKPiArICogIGlz IGEgYm9vbGVhbiByZXR1cm4gdmFsdWUuIFRydWUgaW5kaWNhdGVzIHRoYXQgdGhlIHJlY2VpdmVy IHJlcXVpcmVzIGFuCj4gKyAqICBhc3luY2hyb25vdXMgbm90aWZpY2F0aW9uLgo+ICsgKiAKPiAr ICogQWZ0ZXIgZGVxdWV1aW5nIHJlcXVlc3RzIG9yIHJlc3BvbnNlcyAoYmVmb3JlIHNsZWVwaW5n IHRoZSBjb25uZWN0aW9uKToKPiArICogCj4gKyAqICBVc2UgUklOR19GSU5BTF9DSEVDS19GT1Jf UkVRVUVTVFMoKSBvciBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9SRVNQT05TRVMoKS4KPiArICogIFRo ZSBzZWNvbmQgYXJndW1lbnQgaXMgYSBib29sZWFuIHJldHVybiB2YWx1ZS4gVHJ1ZSBpbmRpY2F0 ZXMgdGhhdCB0aGVyZQo+ICsgKiAgYXJlIHBlbmRpbmcgbWVzc2FnZXMgb24gdGhlIHJpbmcgKGku ZS4sIHRoZSBjb25uZWN0aW9uIHNob3VsZCBub3QgYmUgcHV0Cj4gKyAqICB0byBzbGVlcCkuCj4g KyAqIAo+ICsgKiAgVGhlc2UgbWFjcm9zIHdpbGwgc2V0IHRoZSByZXFfZXZlbnQvcnNwX2V2ZW50 IGZpZWxkIHRvIHRyaWdnZXIgYQo+ICsgKiAgbm90aWZpY2F0aW9uIG9uIHRoZSB2ZXJ5IG5leHQg bWVzc2FnZSB0aGF0IGlzIGVucXVldWVkLiBJZiB5b3Ugd2FudCB0bwo+ICsgKiAgY3JlYXRlIGJh dGNoZXMgb2Ygd29yayAoaS5lLiwgb25seSByZWNlaXZlIGEgbm90aWZpY2F0aW9uIGFmdGVyIHNl dmVyYWwKPiArICogIG1lc3NhZ2VzIGhhdmUgYmVlbiBlbnF1ZXVlZCkgdGhlbiB5b3Ugd2lsbCBu ZWVkIHRvIGNyZWF0ZSBhIGN1c3RvbWlzZWQKPiArICogIHZlcnNpb24gb2YgdGhlIEZJTkFMX0NI RUNLIG1hY3JvIGluIHlvdXIgb3duIGNvZGUsIHdoaWNoIHNldHMgdGhlIGV2ZW50Cj4gKyAqICBm aWVsZCBhcHByb3ByaWF0ZWx5Lgo+ICsgKi8KPiArCj4gKyNkZWZpbmUgUklOR19QVVNIX1JFUVVF U1RTX0FORF9DSEVDS19OT1RJRlkoX3IsIF9ub3RpZnkpIGRvIHsgICAgICAgICAgIFwKPiArICAg IFJJTkdfSURYIF9fb2xkID0gKF9yKS0+c3JpbmctPnJlcV9wcm9kOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAo+ICsgICAgUklOR19JRFggX19uZXcgPSAoX3IpLT5yZXFfcHJvZF9wdnQ7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICB4ZW5fd21iKCk7IC8qIGJh Y2sgc2VlcyByZXF1ZXN0cyAvYmVmb3JlLyB1cGRhdGVkIHByb2R1Y2VyIGluZGV4ICovIFwKPiAr ICAgIChfciktPnNyaW5nLT5yZXFfcHJvZCA9IF9fbmV3OyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAo+ICsgICAgeGVuX21iKCk7IC8qIGJhY2sgc2VlcyBuZXcgcmVxdWVz dHMgL2JlZm9yZS8gd2UgY2hlY2sgcmVxX2V2ZW50ICovICBcCj4gKyAgICAoX25vdGlmeSkgPSAo KFJJTkdfSURYKShfX25ldyAtIChfciktPnNyaW5nLT5yZXFfZXZlbnQpIDwgICAgICAgICAgIFwK PiArICAgICAgICAgICAgICAgICAoUklOR19JRFgpKF9fbmV3IC0gX19vbGQpKTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAo+ICt9IHdoaWxlICgwKQo+ICsKPiArI2RlZmluZSBSSU5HX1BV U0hfUkVTUE9OU0VTX0FORF9DSEVDS19OT1RJRlkoX3IsIF9ub3RpZnkpIGRvIHsgICAgICAgICAg XAo+ICsgICAgUklOR19JRFggX19vbGQgPSAoX3IpLT5zcmluZy0+cnNwX3Byb2Q7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICBSSU5HX0lEWCBfX25ldyA9IChfciktPnJzcF9w cm9kX3B2dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHhlbl93bWIo KTsgLyogZnJvbnQgc2VlcyByZXNwcyAvYmVmb3JlLyB1cGRhdGVkIHByb2R1Y2VyIGluZGV4ICov ICAgXAo+ICsgICAgKF9yKS0+c3JpbmctPnJzcF9wcm9kID0gX19uZXc7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICB4ZW5fbWIoKTsgLyogZnJvbnQgc2VlcyBu ZXcgcmVzcHMgL2JlZm9yZS8gd2UgY2hlY2sgcnNwX2V2ZW50ICovICAgIFwKPiArICAgIChfbm90 aWZ5KSA9ICgoUklOR19JRFgpKF9fbmV3IC0gKF9yKS0+c3JpbmctPnJzcF9ldmVudCkgPCAgICAg ICAgICAgXAo+ICsgICAgICAgICAgICAgICAgIChSSU5HX0lEWCkoX19uZXcgLSBfX29sZCkpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gK30gd2hpbGUgKDApCj4gKwo+ICsjZGVmaW5l IFJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JFUVVFU1RTKF9yLCBfd29ya190b19kbykgZG8geyAgICAg ICAgICAgICBcCj4gKyAgICAoX3dvcmtfdG9fZG8pID0gUklOR19IQVNfVU5DT05TVU1FRF9SRVFV RVNUUyhfcik7ICAgICAgICAgICAgICAgICAgIFwKPiArICAgIGlmIChfd29ya190b19kbykgYnJl YWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAg KF9yKS0+c3JpbmctPnJlcV9ldmVudCA9IChfciktPnJlcV9jb25zICsgMTsgICAgICAgICAgICAg ICAgICAgICAgICBcCj4gKyAgICB4ZW5fbWIoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIChfd29ya190b19kbykgPSBS SU5HX0hBU19VTkNPTlNVTUVEX1JFUVVFU1RTKF9yKTsgICAgICAgICAgICAgICAgICAgXAo+ICt9 IHdoaWxlICgwKQo+ICsKPiArI2RlZmluZSBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9SRVNQT05TRVMo X3IsIF93b3JrX3RvX2RvKSBkbyB7ICAgICAgICAgICAgXAo+ICsgICAgKF93b3JrX3RvX2RvKSA9 IFJJTkdfSEFTX1VOQ09OU1VNRURfUkVTUE9OU0VTKF9yKTsgICAgICAgICAgICAgICAgICBcCj4g KyAgICBpZiAoX3dvcmtfdG9fZG8pIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKPiArICAgIChfciktPnNyaW5nLT5yc3BfZXZlbnQgPSAoX3IpLT5y c3BfY29ucyArIDE7ICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgeGVuX21iKCk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Cj4gKyAgICAoX3dvcmtfdG9fZG8pID0gUklOR19IQVNfVU5DT05TVU1FRF9SRVNQT05TRVMoX3Ip OyAgICAgICAgICAgICAgICAgIFwKPiArfSB3aGlsZSAoMCkKPiArCj4gKyNlbmRpZiAvKiBfX1hF Tl9QVUJMSUNfSU9fUklOR19IX18gKi8KPiArCj4gKy8qCj4gKyAqIExvY2FsIHZhcmlhYmxlczoK PiArICogbW9kZTogQwo+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCj4gKyAqIGMtYmFzaWMtb2Zm c2V0OiA0Cj4gKyAqIHRhYi13aWR0aDogNAo+ICsgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKPiAr ICogRW5kOgo+ICsgKi8KPiBkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3Rh bmRhcmQvWGVuL2lvL3hlbmJ1cy5oIGIvT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQv WGVuL2lvL3hlbmJ1cy5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi45 MjdmOWRiCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0 YW5kYXJkL1hlbi9pby94ZW5idXMuaAo+IEBAIC0wLDAgKzEsODAgQEAKPiArLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCj4gKyAqIHhlbmJ1cy5oCj4gKyAqCj4gKyAqIFhlbmJ1cyBwcm90b2NvbCBkZXRh aWxzLgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cj4gKyAqIG9mIHRoaXMgc29mdHdh cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0 bwo+ICsgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRp bmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQo+ICsgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp ZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKPiArICog c2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hv bSB0aGUgU29mdHdhcmUgaXMKPiArICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KPiAr ICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4g KyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQg Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBO TyBFVkVOVCBTSEFMTCBUSEUKPiArICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBM SUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ICsgKiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO Rwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBP UiBUSEUgVVNFIE9SIE9USEVSCj4gKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiArICoK PiArICogQ29weXJpZ2h0IChDKSAyMDA1IFhlblNvdXJjZSBMdGQuCj4gKyAqLwo+ICsKPiArI2lm bmRlZiBfWEVOX1BVQkxJQ19JT19YRU5CVVNfSAo+ICsjZGVmaW5lIF9YRU5fUFVCTElDX0lPX1hF TkJVU19ICj4gKwo+ICsvKgo+ICsgKiBUaGUgc3RhdGUgb2YgZWl0aGVyIGVuZCBvZiB0aGUgWGVu YnVzLCBpLmUuIHRoZSBjdXJyZW50IGNvbW11bmljYXRpb24KPiArICogc3RhdHVzIG9mIGluaXRp YWxpc2F0aW9uIGFjcm9zcyB0aGUgYnVzLiAgU3RhdGVzIGhlcmUgaW1wbHkgbm90aGluZyBhYm91 dAo+ICsgKiB0aGUgc3RhdGUgb2YgdGhlIGNvbm5lY3Rpb24gYmV0d2VlbiB0aGUgZHJpdmVyIGFu ZCB0aGUga2VybmVsJ3MgZGV2aWNlCj4gKyAqIGxheWVycy4KPiArICovCj4gK2VudW0geGVuYnVz X3N0YXRlIHsKPiArICAgIFhlbmJ1c1N0YXRlVW5rbm93biAgICAgICA9IDAsCj4gKwo+ICsgICAg WGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgID0gMSwKPiArCj4gKyAgICAvKgo+ICsgICAgICogSW5p dFdhaXQ6IEZpbmlzaGVkIGVhcmx5IGluaXRpYWxpc2F0aW9uIGJ1dCB3YWl0aW5nIGZvciBpbmZv cm1hdGlvbgo+ICsgICAgICogZnJvbSB0aGUgcGVlciBvciBob3RwbHVnIHNjcmlwdHMuCj4gKyAg ICAgKi8KPiArICAgIFhlbmJ1c1N0YXRlSW5pdFdhaXQgICAgICA9IDIsCj4gKwo+ICsgICAgLyoK PiArICAgICAqIEluaXRpYWxpc2VkOiBXYWl0aW5nIGZvciBhIGNvbm5lY3Rpb24gZnJvbSB0aGUg cGVlci4KPiArICAgICAqLwo+ICsgICAgWGVuYnVzU3RhdGVJbml0aWFsaXNlZCAgID0gMywKPiAr Cj4gKyAgICBYZW5idXNTdGF0ZUNvbm5lY3RlZCAgICAgPSA0LAo+ICsKPiArICAgIC8qCj4gKyAg ICAgKiBDbG9zaW5nOiBUaGUgZGV2aWNlIGlzIGJlaW5nIGNsb3NlZCBkdWUgdG8gYW4gZXJyb3Ig b3IgYW4gdW5wbHVnIGV2ZW50Lgo+ICsgICAgICovCj4gKyAgICBYZW5idXNTdGF0ZUNsb3Npbmcg ICAgICAgPSA1LAo+ICsKPiArICAgIFhlbmJ1c1N0YXRlQ2xvc2VkICAgICAgICA9IDYsCj4gKwo+ ICsgICAgLyoKPiArICAgICAqIFJlY29uZmlndXJpbmc6IFRoZSBkZXZpY2UgaXMgYmVpbmcgcmVj b25maWd1cmVkLgo+ICsgICAgICovCj4gKyAgICBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmcgPSA3 LAo+ICsKPiArICAgIFhlbmJ1c1N0YXRlUmVjb25maWd1cmVkICA9IDgKPiArfTsKPiArdHlwZWRl ZiBlbnVtIHhlbmJ1c19zdGF0ZSBYZW5idXNTdGF0ZTsKPiArCj4gKyNlbmRpZiAvKiBfWEVOX1BV QkxJQ19JT19YRU5CVVNfSCAqLwo+ICsKPiArLyoKPiArICogTG9jYWwgdmFyaWFibGVzOgo+ICsg KiBtb2RlOiBDCj4gKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKPiArICogYy1iYXNpYy1vZmZzZXQ6 IDQKPiArICogdGFiLXdpZHRoOiA0Cj4gKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAo+ICsgKiBF bmQ6Cj4gKyAqLwo+IGRpZmYgLS1naXQgYS9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFy ZC9YZW4vaW8veHNfd2lyZS5oIGIvT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvWGVu L2lvL3hzX3dpcmUuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uNGE5 ZTY2Nwo+IC0tLSAvZGV2L251bGwKPiArKysgYi9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFu ZGFyZC9YZW4vaW8veHNfd2lyZS5oCj4gQEAgLTAsMCArMSwxMzggQEAKPiArLyoKPiArICogRGV0 YWlscyBvZiB0aGUgIndpcmUiIHByb3RvY29sIGJldHdlZW4gWGVuIFN0b3JlIERhZW1vbiBhbmQg Y2xpZW50Cj4gKyAqIGxpYnJhcnkgb3IgZ3Vlc3Qga2VybmVsLgo+ICsgKgo+ICsgKiBQZXJtaXNz aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh aW5pbmcgYSBjb3B5Cj4gKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bwo+ICsgKiBkZWFsIGluIHRoZSBTb2Z0 d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRo ZQo+ICsgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0 cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKPiArICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3 YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKPiArICog ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK PiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KPiArICogYWxsIGNvcGllcyBvciBzdWJzdGFu dGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNT IE9SCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKPiArICog QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFN QUdFUyBPUiBPVEhFUgo+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCj4gKyAq IERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiArICoKPiArICogQ29weXJpZ2h0IChDKSAyMDA1 IFJ1c3R5IFJ1c3NlbGwgSUJNIENvcnBvcmF0aW9uCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBfWFNf V0lSRV9ICj4gKyNkZWZpbmUgX1hTX1dJUkVfSAo+ICsKPiArZW51bSB4c2Rfc29ja21zZ190eXBl Cj4gK3sKPiArICAgIFhTX0RFQlVHLAo+ICsgICAgWFNfRElSRUNUT1JZLAo+ICsgICAgWFNfUkVB RCwKPiArICAgIFhTX0dFVF9QRVJNUywKPiArICAgIFhTX1dBVENILAo+ICsgICAgWFNfVU5XQVRD SCwKPiArICAgIFhTX1RSQU5TQUNUSU9OX1NUQVJULAo+ICsgICAgWFNfVFJBTlNBQ1RJT05fRU5E LAo+ICsgICAgWFNfSU5UUk9EVUNFLAo+ICsgICAgWFNfUkVMRUFTRSwKPiArICAgIFhTX0dFVF9E T01BSU5fUEFUSCwKPiArICAgIFhTX1dSSVRFLAo+ICsgICAgWFNfTUtESVIsCj4gKyAgICBYU19S TSwKPiArICAgIFhTX1NFVF9QRVJNUywKPiArICAgIFhTX1dBVENIX0VWRU5ULAo+ICsgICAgWFNf RVJST1IsCj4gKyAgICBYU19JU19ET01BSU5fSU5UUk9EVUNFRCwKPiArICAgIFhTX1JFU1VNRSwK PiArICAgIFhTX1NFVF9UQVJHRVQsCj4gKyAgICBYU19SRVNUUklDVCwKPiArICAgIFhTX1JFU0VU X1dBVENIRVMKPiArfTsKPiArCj4gKyNkZWZpbmUgWFNfV1JJVEVfTk9ORSAiTk9ORSIKPiArI2Rl ZmluZSBYU19XUklURV9DUkVBVEUgIkNSRUFURSIKPiArI2RlZmluZSBYU19XUklURV9DUkVBVEVf RVhDTCAiQ1JFQVRFfEVYQ0wiCj4gKwo+ICsvKiBXZSBoYW5kIGVycm9ycyBhcyBzdHJpbmdzLCBm b3IgcG9ydGFiaWxpdHkuICovCj4gK3N0cnVjdCB4c2RfZXJyb3JzCj4gK3sKPiArICAgIElOVDMy IGVycm51bTsKPiArICAgIGNvbnN0IENIQVI4ICplcnJzdHJpbmc7Cj4gK307Cj4gKyNpZmRlZiBF SU5WQUwKPiArI2RlZmluZSBYU0RfRVJST1IoeCkgeyB4LCAjeCB9Cj4gKy8qIExJTlRFRDogc3Rh dGljIHVudXNlZCAqLwo+ICtzdGF0aWMgc3RydWN0IHhzZF9lcnJvcnMgeHNkX2Vycm9yc1tdCj4g KyNpZiBkZWZpbmVkKF9fR05VQ19fKQo+ICtfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQo+ICsjZW5k aWYKPiArICAgID0gewo+ICsgICAgWFNEX0VSUk9SKEVJTlZBTCksCj4gKyAgICBYU0RfRVJST1Io RUFDQ0VTKSwKPiArICAgIFhTRF9FUlJPUihFRVhJU1QpLAo+ICsgICAgWFNEX0VSUk9SKEVJU0RJ UiksCj4gKyAgICBYU0RfRVJST1IoRU5PRU5UKSwKPiArICAgIFhTRF9FUlJPUihFTk9NRU0pLAo+ ICsgICAgWFNEX0VSUk9SKEVOT1NQQyksCj4gKyAgICBYU0RfRVJST1IoRUlPKSwKPiArICAgIFhT RF9FUlJPUihFTk9URU1QVFkpLAo+ICsgICAgWFNEX0VSUk9SKEVOT1NZUyksCj4gKyAgICBYU0Rf RVJST1IoRVJPRlMpLAo+ICsgICAgWFNEX0VSUk9SKEVCVVNZKSwKPiArICAgIFhTRF9FUlJPUihF QUdBSU4pLAo+ICsgICAgWFNEX0VSUk9SKEVJU0NPTk4pLAo+ICsgICAgWFNEX0VSUk9SKEUyQklH KQo+ICt9Owo+ICsjZW5kaWYKPiArCj4gK3N0cnVjdCB4c2Rfc29ja21zZwo+ICt7Cj4gKyAgICBV SU5UMzIgdHlwZTsgIC8qIFhTXz8/PyAqLwo+ICsgICAgVUlOVDMyIHJlcV9pZDsvKiBSZXF1ZXN0 IGlkZW50aWZpZXIsIGVjaG9lZCBpbiBkYWVtb24ncyByZXNwb25zZS4gICovCj4gKyAgICBVSU5U MzIgdHhfaWQ7IC8qIFRyYW5zYWN0aW9uIGlkICgwIGlmIG5vdCByZWxhdGVkIHRvIGEgdHJhbnNh Y3Rpb24pLiAqLwo+ICsgICAgVUlOVDMyIGxlbjsgICAvKiBMZW5ndGggb2YgZGF0YSBmb2xsb3dp bmcgdGhpcy4gKi8KPiArCj4gKyAgICAvKiBHZW5lcmFsbHkgZm9sbG93ZWQgYnkgbnVsLXRlcm1p bmF0ZWQgc3RyaW5nKHMpLiAqLwo+ICt9Owo+ICsKPiArZW51bSB4c193YXRjaF90eXBlCj4gK3sK PiArICAgIFhTX1dBVENIX1BBVEggPSAwLAo+ICsgICAgWFNfV0FUQ0hfVE9LRU4KPiArfTsKPiAr Cj4gKy8qCj4gKyAqIGBpbmNvbnRlbnRzIDE1MCB4ZW5zdG9yZV9zdHJ1Y3QgWGVuU3RvcmUgd2ly ZSBwcm90b2NvbC4KPiArICoKPiArICogSW50ZXItZG9tYWluIHNoYXJlZCBtZW1vcnkgY29tbXVu aWNhdGlvbnMuICovCj4gKyNkZWZpbmUgWEVOU1RPUkVfUklOR19TSVpFIDEwMjQKPiArdHlwZWRl ZiBVSU5UMzIgWEVOU1RPUkVfUklOR19JRFg7Cj4gKyNkZWZpbmUgTUFTS19YRU5TVE9SRV9JRFgo aWR4KSAoKGlkeCkgJiAoWEVOU1RPUkVfUklOR19TSVpFLTEpKQo+ICtzdHJ1Y3QgeGVuc3RvcmVf ZG9tYWluX2ludGVyZmFjZSB7Cj4gKyAgICBDSEFSOCByZXFbWEVOU1RPUkVfUklOR19TSVpFXTsg LyogUmVxdWVzdHMgdG8geGVuc3RvcmUgZGFlbW9uLiAqLwo+ICsgICAgQ0hBUjggcnNwW1hFTlNU T1JFX1JJTkdfU0laRV07IC8qIFJlcGxpZXMgYW5kIGFzeW5jIHdhdGNoIGV2ZW50cy4gKi8KPiAr ICAgIFhFTlNUT1JFX1JJTkdfSURYIHJlcV9jb25zLCByZXFfcHJvZDsKPiArICAgIFhFTlNUT1JF X1JJTkdfSURYIHJzcF9jb25zLCByc3BfcHJvZDsKPiArfTsKPiArCj4gKy8qIFZpb2xhdGluZyB0 aGlzIGlzIHZlcnkgYmFkLiAgU2VlIGRvY3MvbWlzYy94ZW5zdG9yZS50eHQuICovCj4gKyNkZWZp bmUgWEVOU1RPUkVfUEFZTE9BRF9NQVggNDA5Ngo+ICsKPiArLyogVmlvbGF0aW5nIHRoZXNlIGp1 c3QgZ2V0cyB5b3UgYW4gZXJyb3IgYmFjayAqLwo+ICsjZGVmaW5lIFhFTlNUT1JFX0FCU19QQVRI X01BWCAzMDcyCj4gKyNkZWZpbmUgWEVOU1RPUkVfUkVMX1BBVEhfTUFYIDIwNDgKPiArCj4gKyNl bmRpZiAvKiBfWFNfV0lSRV9IICovCj4gKwo+ICsvKgo+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4g KyAqIG1vZGU6IEMKPiArICogYy1maWxlLXN0eWxlOiAiQlNEIgo+ICsgKiBjLWJhc2ljLW9mZnNl dDogNAo+ICsgKiB0YWItd2lkdGg6IDQKPiArICogaW5kZW50LXRhYnMtbW9kZTogbmlsCj4gKyAq IEVuZDoKPiArICovCj4gZGlmZiAtLWdpdCBhL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5k YXJkL1hlbi9tZW1vcnkuaCBiL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9t ZW1vcnkuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uOTNiNzNiNQo+ IC0tLSAvZGV2L251bGwKPiArKysgYi9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9Y ZW4vbWVtb3J5LmgKPiBAQCAtMCwwICsxLDQ4MCBAQAo+ICsvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Cj4gKyAqIG1lbW9yeS5oCj4gKyAqIAo+ICsgKiBNZW1vcnkgcmVzZXJ2YXRpb24gYW5kIGluZm9y bWF0aW9uLgo+ICsgKiAKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQo+ICsgKiBvZiB0aGlzIHNv ZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUi KSwgdG8KPiArICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5j bHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKPiArICogcmlnaHRzIHRvIHVzZSwgY29weSwg bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCj4g KyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv IHdob20gdGhlIFNvZnR3YXJlIGlzCj4gKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0 byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmln aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGlu Cj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJl Lgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiAr ICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4g SU4gTk8gRVZFTlQgU0hBTEwgVEhFCj4gKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdB UkUgT1IgVEhFIFVTRSBPUiBPVEhFUgo+ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4g KyAqCj4gKyAqIENvcHlyaWdodCAoYykgMjAwNSwgS2VpciBGcmFzZXIgPGtlaXJAeGVuc291cmNl LmNvbT4KPiArICovCj4gKwo+ICsjaWZuZGVmIF9fWEVOX1BVQkxJQ19NRU1PUllfSF9fCj4gKyNk ZWZpbmUgX19YRU5fUFVCTElDX01FTU9SWV9IX18KPiArCj4gKyNpbmNsdWRlICJ4ZW4uaCIKPiAr Cj4gKy8qCj4gKyAqIEluY3JlYXNlIG9yIGRlY3JlYXNlIHRoZSBzcGVjaWZpZWQgZG9tYWluJ3Mg bWVtb3J5IHJlc2VydmF0aW9uLiBSZXR1cm5zIHRoZQo+ICsgKiBudW1iZXIgb2YgZXh0ZW50cyBz dWNjZXNzZnVsbHkgYWxsb2NhdGVkIG9yIGZyZWVkLgo+ICsgKiBhcmcgPT0gYWRkciBvZiBzdHJ1 Y3QgeGVuX21lbW9yeV9yZXNlcnZhdGlvbi4KPiArICovCj4gKyNkZWZpbmUgWEVOTUVNX2luY3Jl YXNlX3Jlc2VydmF0aW9uIDAKPiArI2RlZmluZSBYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24g MQo+ICsjZGVmaW5lIFhFTk1FTV9wb3B1bGF0ZV9waHlzbWFwICAgICA2Cj4gKwo+ICsjaWYgX19Y RU5fSU5URVJGQUNFX1ZFUlNJT05fXyA+PSAweDAwMDMwMjA5Cj4gKy8qCj4gKyAqIE1heGltdW0g IyBiaXRzIGFkZHJlc3NhYmxlIGJ5IHRoZSB1c2VyIG9mIHRoZSBhbGxvY2F0ZWQgcmVnaW9uIChl LmcuLCBJL08gCj4gKyAqIGRldmljZXMgb2Z0ZW4gaGF2ZSBhIDMyLWJpdCBsaW1pdGF0aW9uIGV2 ZW4gaW4gNjQtYml0IHN5c3RlbXMpLiBJZiB6ZXJvIAo+ICsgKiB0aGVuIHRoZSB1c2VyIGhhcyBu byBhZGRyZXNzaW5nIHJlc3RyaWN0aW9uLiBUaGlzIGZpZWxkIGlzIG5vdCB1c2VkIGJ5IAo+ICsg KiBYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24uCj4gKyAqLwo+ICsjZGVmaW5lIFhFTk1FTUZf YWRkcmVzc19iaXRzKHgpICAgICAoeCkKPiArI2RlZmluZSBYRU5NRU1GX2dldF9hZGRyZXNzX2Jp dHMoeCkgKCh4KSAmIDB4ZmZ1KQo+ICsvKiBOVU1BIG5vZGUgdG8gYWxsb2NhdGUgZnJvbS4gKi8K PiArI2RlZmluZSBYRU5NRU1GX25vZGUoeCkgICAgICgoKHgpICsgMSkgPDwgOCkKPiArI2RlZmlu ZSBYRU5NRU1GX2dldF9ub2RlKHgpICgoKCh4KSA+PiA4KSAtIDEpICYgMHhmZnUpCj4gKy8qIEZs YWcgdG8gcG9wdWxhdGUgcGh5c21hcCB3aXRoIHBvcHVsYXRlLW9uLWRlbWFuZCBlbnRyaWVzICov Cj4gKyNkZWZpbmUgWEVOTUVNRl9wb3B1bGF0ZV9vbl9kZW1hbmQgKDE8PDE2KQo+ICsvKiBGbGFn IHRvIHJlcXVlc3QgYWxsb2NhdGlvbiBvbmx5IGZyb20gdGhlIG5vZGUgc3BlY2lmaWVkICovCj4g KyNkZWZpbmUgWEVOTUVNRl9leGFjdF9ub2RlX3JlcXVlc3QgICgxPDwxNykKPiArI2RlZmluZSBY RU5NRU1GX2V4YWN0X25vZGUobikgKFhFTk1FTUZfbm9kZShuKSB8IFhFTk1FTUZfZXhhY3Rfbm9k ZV9yZXF1ZXN0KQo+ICsjZW5kaWYKPiArCj4gK3N0cnVjdCB4ZW5fbWVtb3J5X3Jlc2VydmF0aW9u IHsKPiArCj4gKyAgICAvKgo+ICsgICAgICogWEVOTUVNX2luY3JlYXNlX3Jlc2VydmF0aW9uOgo+ ICsgICAgICogICBPVVQ6IE1GTiAoKm5vdCogR01GTikgYmFzZXMgb2YgZXh0ZW50cyB0aGF0IHdl cmUgYWxsb2NhdGVkCj4gKyAgICAgKiBYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb246Cj4gKyAg ICAgKiAgIElOOiAgR01GTiBiYXNlcyBvZiBleHRlbnRzIHRvIGZyZWUKPiArICAgICAqIFhFTk1F TV9wb3B1bGF0ZV9waHlzbWFwOgo+ICsgICAgICogICBJTjogIEdQRk4gYmFzZXMgb2YgZXh0ZW50 cyB0byBwb3B1bGF0ZSB3aXRoIG1lbW9yeQo+ICsgICAgICogICBPVVQ6IEdNRk4gYmFzZXMgb2Yg ZXh0ZW50cyB0aGF0IHdlcmUgYWxsb2NhdGVkCj4gKyAgICAgKiAgIChOQi4gVGhpcyBjb21tYW5k IGFsc28gdXBkYXRlcyB0aGUgbWFjaF90b19waHlzIHRyYW5zbGF0aW9uIHRhYmxlKQo+ICsgICAg ICogWEVOTUVNX2NsYWltX3BhZ2VzOgo+ICsgICAgICogICBJTjogbXVzdCBiZSB6ZXJvCj4gKyAg ICAgKi8KPiArICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX3Bmbl90KSBleHRlbnRfc3RhcnQ7Cj4g Kwo+ICsgICAgLyogTnVtYmVyIG9mIGV4dGVudHMsIGFuZCBzaXplL2FsaWdubWVudCBvZiBlYWNo ICgyXmV4dGVudF9vcmRlciBwYWdlcykuICovCj4gKyAgICB4ZW5fdWxvbmdfdCAgICBucl9leHRl bnRzOwo+ICsgICAgVUlOVDMyICAgZXh0ZW50X29yZGVyOwo+ICsKPiArI2lmIF9fWEVOX0lOVEVS RkFDRV9WRVJTSU9OX18gPj0gMHgwMDAzMDIwOQo+ICsgICAgLyogWEVOTUVNRiBmbGFncy4gKi8K PiArICAgIFVJTlQzMiAgIG1lbV9mbGFnczsKPiArI2Vsc2UKPiArICAgIFVJTlQzMiAgIGFkZHJl c3NfYml0czsKPiArI2VuZGlmCj4gKwo+ICsgICAgLyoKPiArICAgICAqIERvbWFpbiB3aG9zZSBy ZXNlcnZhdGlvbiBpcyBiZWluZyBjaGFuZ2VkLgo+ICsgICAgICogVW5wcml2aWxlZ2VkIGRvbWFp bnMgY2FuIHNwZWNpZnkgb25seSBET01JRF9TRUxGLgo+ICsgICAgICovCj4gKyAgICBkb21pZF90 ICAgICAgICBkb21pZDsKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX21lbW9yeV9yZXNlcnZh dGlvbiB4ZW5fbWVtb3J5X3Jlc2VydmF0aW9uX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExF KHhlbl9tZW1vcnlfcmVzZXJ2YXRpb25fdCk7Cj4gKwo+ICsvKgo+ICsgKiBBbiBhdG9taWMgZXhj aGFuZ2Ugb2YgbWVtb3J5IHBhZ2VzLiBJZiByZXR1cm4gY29kZSBpcyB6ZXJvIHRoZW4KPiArICog QG91dC5leHRlbnRfbGlzdCBwcm92aWRlcyBHTUZOcyBvZiB0aGUgbmV3bHktYWxsb2NhdGVkIG1l bW9yeS4KPiArICogUmV0dXJucyB6ZXJvIG9uIGNvbXBsZXRlIHN1Y2Nlc3MsIG90aGVyd2lzZSBh IG5lZ2F0aXZlIGVycm9yIGNvZGUuCj4gKyAqIE9uIGNvbXBsZXRlIHN1Y2Nlc3MgdGhlbiBhbHdh eXMgQG5yX2V4Y2hhbmdlZCA9PSBAaW4ubnJfZXh0ZW50cy4KPiArICogT24gcGFydGlhbCBzdWNj ZXNzIEBucl9leGNoYW5nZWQgaW5kaWNhdGVzIGhvdyBtdWNoIHdvcmsgd2FzIGRvbmUuCj4gKyAq Lwo+ICsjZGVmaW5lIFhFTk1FTV9leGNoYW5nZSAgICAgICAgICAgICAxMQo+ICtzdHJ1Y3QgeGVu X21lbW9yeV9leGNoYW5nZSB7Cj4gKyAgICAvKgo+ICsgICAgICogW0lOXSBEZXRhaWxzIG9mIG1l bW9yeSBleHRlbnRzIHRvIGJlIGV4Y2hhbmdlZCAoR01GTiBiYXNlcykuCj4gKyAgICAgKiBOb3Rl IHRoYXQgQGluLmFkZHJlc3NfYml0cyBpcyBpZ25vcmVkIGFuZCB1bnVzZWQuCj4gKyAgICAgKi8K PiArICAgIHN0cnVjdCB4ZW5fbWVtb3J5X3Jlc2VydmF0aW9uIGluOwo+ICsKPiArICAgIC8qCj4g KyAgICAgKiBbSU4vT1VUXSBEZXRhaWxzIG9mIG5ldyBtZW1vcnkgZXh0ZW50cy4KPiArICAgICAq IFdlIHJlcXVpcmUgdGhhdDoKPiArICAgICAqICAxLiBAaW4uZG9taWQgPT0gQG91dC5kb21pZAo+ ICsgICAgICogIDIuIEBpbi5ucl9leHRlbnRzICA8PCBAaW4uZXh0ZW50X29yZGVyID09IAo+ICsg ICAgICogICAgIEBvdXQubnJfZXh0ZW50cyA8PCBAb3V0LmV4dGVudF9vcmRlcgo+ICsgICAgICog IDMuIEBpbi5leHRlbnRfc3RhcnQgYW5kIEBvdXQuZXh0ZW50X3N0YXJ0IGxpc3RzIG11c3Qgbm90 IG92ZXJsYXAKPiArICAgICAqICA0LiBAb3V0LmV4dGVudF9zdGFydCBsaXN0cyBHUEZOIGJhc2Vz IHRvIGJlIHBvcHVsYXRlZAo+ICsgICAgICogIDUuIEBvdXQuZXh0ZW50X3N0YXJ0IGlzIG92ZXJ3 cml0dGVuIHdpdGggYWxsb2NhdGVkIEdNRk4gYmFzZXMKPiArICAgICAqLwo+ICsgICAgc3RydWN0 IHhlbl9tZW1vcnlfcmVzZXJ2YXRpb24gb3V0Owo+ICsKPiArICAgIC8qCj4gKyAgICAgKiBbT1VU XSBOdW1iZXIgb2YgaW5wdXQgZXh0ZW50cyB0aGF0IHdlcmUgc3VjY2Vzc2Z1bGx5IGV4Y2hhbmdl ZDoKPiArICAgICAqICAxLiBUaGUgZmlyc3QgQG5yX2V4Y2hhbmdlZCBpbnB1dCBleHRlbnRzIHdl cmUgc3VjY2Vzc2Z1bGx5Cj4gKyAgICAgKiAgICAgZGVhbGxvY2F0ZWQuCj4gKyAgICAgKiAgMi4g VGhlIGNvcnJlc3BvbmRpbmcgZmlyc3QgZW50cmllcyBpbiB0aGUgb3V0cHV0IGV4dGVudCBsaXN0 IGNvcnJlY3RseQo+ICsgICAgICogICAgIGluZGljYXRlIHRoZSBHTUZOcyB0aGF0IHdlcmUgc3Vj Y2Vzc2Z1bGx5IGV4Y2hhbmdlZC4KPiArICAgICAqICAzLiBBbGwgb3RoZXIgaW5wdXQgYW5kIG91 dHB1dCBleHRlbnRzIGFyZSB1bnRvdWNoZWQuCj4gKyAgICAgKiAgNC4gSWYgbm90IGFsbCBpbnB1 dCBleGVudHMgYXJlIGV4Y2hhbmdlZCB0aGVuIHRoZSByZXR1cm4gY29kZSBvZiB0aGlzCj4gKyAg ICAgKiAgICAgY29tbWFuZCB3aWxsIGJlIG5vbi16ZXJvLgo+ICsgICAgICogIDUuIFRISVMgRklF TEQgTVVTVCBCRSBJTklUSUFMSVNFRCBUTyBaRVJPIEJZIFRIRSBDQUxMRVIhCj4gKyAgICAgKi8K PiArICAgIHhlbl91bG9uZ190IG5yX2V4Y2hhbmdlZDsKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3Qg eGVuX21lbW9yeV9leGNoYW5nZSB4ZW5fbWVtb3J5X2V4Y2hhbmdlX3Q7Cj4gK0RFRklORV9YRU5f R1VFU1RfSEFORExFKHhlbl9tZW1vcnlfZXhjaGFuZ2VfdCk7Cj4gKwo+ICsvKgo+ICsgKiBSZXR1 cm5zIHRoZSBtYXhpbXVtIG1hY2hpbmUgZnJhbWUgbnVtYmVyIG9mIG1hcHBlZCBSQU0gaW4gdGhp cyBzeXN0ZW0uCj4gKyAqIFRoaXMgY29tbWFuZCBhbHdheXMgc3VjY2VlZHMgKGl0IG5ldmVyIHJl dHVybnMgYW4gZXJyb3IgY29kZSkuCj4gKyAqIGFyZyA9PSBOVUxMLgo+ICsgKi8KPiArI2RlZmlu ZSBYRU5NRU1fbWF4aW11bV9yYW1fcGFnZSAgICAgMgo+ICsKPiArLyoKPiArICogUmV0dXJucyB0 aGUgY3VycmVudCBvciBtYXhpbXVtIG1lbW9yeSByZXNlcnZhdGlvbiwgaW4gcGFnZXMsIG9mIHRo ZQo+ICsgKiBzcGVjaWZpZWQgZG9tYWluIChtYXkgYmUgRE9NSURfU0VMRikuIFJldHVybnMgLXZl IGVycmNvZGUgb24gZmFpbHVyZS4KPiArICogYXJnID09IGFkZHIgb2YgZG9taWRfdC4KPiArICov Cj4gKyNkZWZpbmUgWEVOTUVNX2N1cnJlbnRfcmVzZXJ2YXRpb24gIDMKPiArI2RlZmluZSBYRU5N RU1fbWF4aW11bV9yZXNlcnZhdGlvbiAgNAo+ICsKPiArLyoKPiArICogUmV0dXJucyB0aGUgbWF4 aW11bSBHUEZOIGluIHVzZSBieSB0aGUgZ3Vlc3QsIG9yIC12ZSBlcnJjb2RlIG9uIGZhaWx1cmUu Cj4gKyAqLwo+ICsjZGVmaW5lIFhFTk1FTV9tYXhpbXVtX2dwZm4gICAgICAgICAxNAo+ICsKPiAr LyoKPiArICogUmV0dXJucyBhIGxpc3Qgb2YgTUZOIGJhc2VzIG9mIDJNQiBleHRlbnRzIGNvbXBy aXNpbmcgdGhlIG1hY2hpbmVfdG9fcGh5cwo+ICsgKiBtYXBwaW5nIHRhYmxlLiBBcmNoaXRlY3R1 cmVzIHdoaWNoIGRvIG5vdCBoYXZlIGEgbTJwIHRhYmxlIGRvIG5vdCBpbXBsZW1lbnQKPiArICog dGhpcyBjb21tYW5kLgo+ICsgKiBhcmcgPT0gYWRkciBvZiB4ZW5fbWFjaHBoeXNfbWZuX2xpc3Rf dC4KPiArICovCj4gKyNkZWZpbmUgWEVOTUVNX21hY2hwaHlzX21mbl9saXN0ICAgIDUKPiArc3Ry dWN0IHhlbl9tYWNocGh5c19tZm5fbGlzdCB7Cj4gKyAgICAvKgo+ICsgICAgICogU2l6ZSBvZiB0 aGUgJ2V4dGVudF9zdGFydCcgYXJyYXkuIEZld2VyIGVudHJpZXMgd2lsbCBiZSBmaWxsZWQgaWYg dGhlCj4gKyAgICAgKiBtYWNocGh5cyB0YWJsZSBpcyBzbWFsbGVyIHRoYW4gbWF4X2V4dGVudHMg KiAyTUIuCj4gKyAgICAgKi8KPiArICAgIFVJTlQzMiBtYXhfZXh0ZW50czsKPiArCj4gKyAgICAv Kgo+ICsgICAgICogUG9pbnRlciB0byBidWZmZXIgdG8gZmlsbCB3aXRoIGxpc3Qgb2YgZXh0ZW50 IHN0YXJ0cy4gSWYgdGhlcmUgYXJlCj4gKyAgICAgKiBhbnkgbGFyZ2UgZGlzY29udGlndWl0aWVz IGluIHRoZSBtYWNoaW5lIGFkZHJlc3Mgc3BhY2UsIDJNQiBnYXBzIGluCj4gKyAgICAgKiB0aGUg bWFjaHBoeXMgdGFibGUgd2lsbCBiZSByZXByZXNlbnRlZCBieSBhbiBNRk4gYmFzZSBvZiB6ZXJv Lgo+ICsgICAgICovCj4gKyAgICBYRU5fR1VFU1RfSEFORExFKHhlbl9wZm5fdCkgZXh0ZW50X3N0 YXJ0Owo+ICsKPiArICAgIC8qCj4gKyAgICAgKiBOdW1iZXIgb2YgZXh0ZW50cyB3cml0dGVuIHRv IHRoZSBhYm92ZSBhcnJheS4gVGhpcyB3aWxsIGJlIHNtYWxsZXIKPiArICAgICAqIHRoYW4gJ21h eF9leHRlbnRzJyBpZiB0aGUgbWFjaHBoeXMgdGFibGUgaXMgc21hbGxlciB0aGFuIG1heF9lICog Mk1CLgo+ICsgICAgICovCj4gKyAgICBVSU5UMzIgbnJfZXh0ZW50czsKPiArfTsKPiArdHlwZWRl ZiBzdHJ1Y3QgeGVuX21hY2hwaHlzX21mbl9saXN0IHhlbl9tYWNocGh5c19tZm5fbGlzdF90Owo+ ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWFjaHBoeXNfbWZuX2xpc3RfdCk7Cj4gKwo+ ICsvKgo+ICsgKiBSZXR1cm5zIHRoZSBsb2NhdGlvbiBpbiB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2Ug b2YgdGhlIG1hY2hpbmVfdG9fcGh5cwo+ICsgKiBtYXBwaW5nIHRhYmxlLiBBcmNoaXRlY3R1cmVz IHdoaWNoIGRvIG5vdCBoYXZlIGEgbTJwIHRhYmxlLCBvciB3aGljaCBkbyBub3QKPiArICogbWFw IGl0IGJ5IGRlZmF1bHQgaW50byBndWVzdCBhZGRyZXNzIHNwYWNlLCBkbyBub3QgaW1wbGVtZW50 IHRoaXMgY29tbWFuZC4KPiArICogYXJnID09IGFkZHIgb2YgeGVuX21hY2hwaHlzX21hcHBpbmdf dC4KPiArICovCj4gKyNkZWZpbmUgWEVOTUVNX21hY2hwaHlzX21hcHBpbmcgICAgIDEyCj4gK3N0 cnVjdCB4ZW5fbWFjaHBoeXNfbWFwcGluZyB7Cj4gKyAgICB4ZW5fdWxvbmdfdCB2X3N0YXJ0LCB2 X2VuZDsgLyogU3RhcnQgYW5kIGVuZCB2aXJ0dWFsIGFkZHJlc3Nlcy4gICAqLwo+ICsgICAgeGVu X3Vsb25nX3QgbWF4X21mbjsgICAgICAgIC8qIE1heGltdW0gTUZOIHRoYXQgY2FuIGJlIGxvb2tl ZCB1cC4gKi8KPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX21hY2hwaHlzX21hcHBpbmcgeGVu X21hY2hwaHlzX21hcHBpbmdfdDsKPiArREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21hY2hw aHlzX21hcHBpbmdfdCk7Cj4gKwo+ICsvKiBTb3VyY2UgbWFwcGluZyBzcGFjZS4gKi8KPiArLyog YCBlbnVtIHBoeXNfbWFwX3NwYWNlIHsgKi8KPiArI2RlZmluZSBYRU5NQVBTUEFDRV9zaGFyZWRf aW5mbyAgMCAvKiBzaGFyZWQgaW5mbyBwYWdlICovCj4gKyNkZWZpbmUgWEVOTUFQU1BBQ0VfZ3Jh bnRfdGFibGUgIDEgLyogZ3JhbnQgdGFibGUgcGFnZSAqLwo+ICsjZGVmaW5lIFhFTk1BUFNQQUNF X2dtZm4gICAgICAgICAyIC8qIEdNRk4gKi8KPiArI2RlZmluZSBYRU5NQVBTUEFDRV9nbWZuX3Jh bmdlICAgMyAvKiBHTUZOIHJhbmdlLCBYRU5NRU1fYWRkX3RvX3BoeXNtYXAgb25seS4gKi8KPiAr I2RlZmluZSBYRU5NQVBTUEFDRV9nbWZuX2ZvcmVpZ24gNCAvKiBHTUZOIGZyb20gYW5vdGhlciBk b20sCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogWEVOTUVNX2FkZF90 b19waHlzbWFwX2JhdGNoIG9ubHkuICovCj4gKy8qIGAgfSAqLwo+ICsKPiArLyoKPiArICogU2V0 cyB0aGUgR1BGTiBhdCB3aGljaCBhIHBhcnRpY3VsYXIgcGFnZSBhcHBlYXJzIGluIHRoZSBzcGVj aWZpZWQgZ3Vlc3Qncwo+ICsgKiBwc2V1ZG9waHlzaWNhbCBhZGRyZXNzIHNwYWNlLgo+ICsgKiBh cmcgPT0gYWRkciBvZiB4ZW5fYWRkX3RvX3BoeXNtYXBfdC4KPiArICovCj4gKyNkZWZpbmUgWEVO TUVNX2FkZF90b19waHlzbWFwICAgICAgNwo+ICtzdHJ1Y3QgeGVuX2FkZF90b19waHlzbWFwIHsK PiArICAgIC8qIFdoaWNoIGRvbWFpbiB0byBjaGFuZ2UgdGhlIG1hcHBpbmcgZm9yLiAqLwo+ICsg ICAgZG9taWRfdCBkb21pZDsKPiArCj4gKyAgICAvKiBOdW1iZXIgb2YgcGFnZXMgdG8gZ28gdGhy b3VnaCBmb3IgZ21mbl9yYW5nZSAqLwo+ICsgICAgVUlOVDE2ICAgIHNpemU7Cj4gKwo+ICsgICAg VUlOVDMyIHNwYWNlOyAvKiA9PiBlbnVtIHBoeXNfbWFwX3NwYWNlICovCj4gKwo+ICsjZGVmaW5l IFhFTk1BUElEWF9ncmFudF90YWJsZV9zdGF0dXMgMHg4MDAwMDAwMAo+ICsKPiArICAgIC8qIElu ZGV4IGludG8gc3BhY2UgYmVpbmcgbWFwcGVkLiAqLwo+ICsgICAgeGVuX3Vsb25nX3QgaWR4Owo+ ICsKPiArICAgIC8qIEdQRk4gaW4gZG9taWQgd2hlcmUgdGhlIHNvdXJjZSBtYXBwaW5nIHBhZ2Ug c2hvdWxkIGFwcGVhci4gKi8KPiArICAgIHhlbl9wZm5fdCAgICAgZ3BmbjsKPiArfTsKPiArdHlw ZWRlZiBzdHJ1Y3QgeGVuX2FkZF90b19waHlzbWFwIHhlbl9hZGRfdG9fcGh5c21hcF90Owo+ICtE RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fYWRkX3RvX3BoeXNtYXBfdCk7Cj4gKwo+ICsvKiBB IGJhdGNoZWQgdmVyc2lvbiBvZiBhZGRfdG9fcGh5c21hcC4gKi8KPiArI2RlZmluZSBYRU5NRU1f YWRkX3RvX3BoeXNtYXBfYmF0Y2ggMjMKPiArc3RydWN0IHhlbl9hZGRfdG9fcGh5c21hcF9iYXRj aCB7Cj4gKyAgICAvKiBJTiAqLwo+ICsgICAgLyogV2hpY2ggZG9tYWluIHRvIGNoYW5nZSB0aGUg bWFwcGluZyBmb3IuICovCj4gKyAgICBkb21pZF90IGRvbWlkOwo+ICsgICAgVUlOVDE2IHNwYWNl OyAvKiA9PiBlbnVtIHBoeXNfbWFwX3NwYWNlICovCj4gKwo+ICsgICAgLyogTnVtYmVyIG9mIHBh Z2VzIHRvIGdvIHRocm91Z2ggKi8KPiArICAgIFVJTlQxNiBzaXplOwo+ICsgICAgZG9taWRfdCBm b3JlaWduX2RvbWlkOyAvKiBJRkYgZ21mbl9mb3JlaWduICovCj4gKwo+ICsgICAgLyogSW5kZXhl cyBpbnRvIHNwYWNlIGJlaW5nIG1hcHBlZC4gKi8KPiArICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVu X3Vsb25nX3QpIGlkeHM7Cj4gKwo+ICsgICAgLyogR1BGTiBpbiBkb21pZCB3aGVyZSB0aGUgc291 cmNlIG1hcHBpbmcgcGFnZSBzaG91bGQgYXBwZWFyLiAqLwo+ICsgICAgWEVOX0dVRVNUX0hBTkRM RSh4ZW5fcGZuX3QpIGdwZm5zOwo+ICsKPiArICAgIC8qIE9VVCAqLwo+ICsKPiArICAgIC8qIFBl ciBpbmRleCBlcnJvciBjb2RlLiAqLwo+ICsgICAgWEVOX0dVRVNUX0hBTkRMRShJTlQzMikgZXJy czsKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX2FkZF90b19waHlzbWFwX2JhdGNoIHhlbl9h ZGRfdG9fcGh5c21hcF9iYXRjaF90Owo+ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fYWRk X3RvX3BoeXNtYXBfYmF0Y2hfdCk7Cj4gKwo+ICsjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05f XyA8IDB4MDAwNDA0MDAKPiArI2RlZmluZSBYRU5NRU1fYWRkX3RvX3BoeXNtYXBfcmFuZ2UgWEVO TUVNX2FkZF90b19waHlzbWFwX2JhdGNoCj4gKyNkZWZpbmUgeGVuX2FkZF90b19waHlzbWFwX3Jh bmdlIHhlbl9hZGRfdG9fcGh5c21hcF9iYXRjaAo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fYWRkX3Rv X3BoeXNtYXBfYmF0Y2ggeGVuX2FkZF90b19waHlzbWFwX3JhbmdlX3Q7Cj4gK0RFRklORV9YRU5f R1VFU1RfSEFORExFKHhlbl9hZGRfdG9fcGh5c21hcF9yYW5nZV90KTsKPiArI2VuZGlmCj4gKwo+ ICsvKgo+ICsgKiBVbm1hcHMgdGhlIHBhZ2UgYXBwZWFyaW5nIGF0IGEgcGFydGljdWxhciBHUEZO IGZyb20gdGhlIHNwZWNpZmllZCBndWVzdCdzCj4gKyAqIHBzZXVkb3BoeXNpY2FsIGFkZHJlc3Mg c3BhY2UuCj4gKyAqIGFyZyA9PSBhZGRyIG9mIHhlbl9yZW1vdmVfZnJvbV9waHlzbWFwX3QuCj4g KyAqLwo+ICsjZGVmaW5lIFhFTk1FTV9yZW1vdmVfZnJvbV9waHlzbWFwICAgICAgMTUKPiArc3Ry dWN0IHhlbl9yZW1vdmVfZnJvbV9waHlzbWFwIHsKPiArICAgIC8qIFdoaWNoIGRvbWFpbiB0byBj aGFuZ2UgdGhlIG1hcHBpbmcgZm9yLiAqLwo+ICsgICAgZG9taWRfdCBkb21pZDsKPiArCj4gKyAg ICAvKiBHUEZOIG9mIHRoZSBjdXJyZW50IG1hcHBpbmcgb2YgdGhlIHBhZ2UuICovCj4gKyAgICB4 ZW5fcGZuX3QgICAgIGdwZm47Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9yZW1vdmVfZnJv bV9waHlzbWFwIHhlbl9yZW1vdmVfZnJvbV9waHlzbWFwX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1Rf SEFORExFKHhlbl9yZW1vdmVfZnJvbV9waHlzbWFwX3QpOwo+ICsKPiArLyoqKiBSRU1PVkVEICoq Ki8KPiArLyojZGVmaW5lIFhFTk1FTV90cmFuc2xhdGVfZ3Bmbl9saXN0ICA4Ki8KPiArCj4gKy8q Cj4gKyAqIFJldHVybnMgdGhlIHBzZXVkby1waHlzaWNhbCBtZW1vcnkgbWFwIGFzIGl0IHdhcyB3 aGVuIHRoZSBkb21haW4KPiArICogd2FzIHN0YXJ0ZWQgKHNwZWNpZmllZCBieSBYRU5NRU1fc2V0 X21lbW9yeV9tYXApLgo+ICsgKiBhcmcgPT0gYWRkciBvZiB4ZW5fbWVtb3J5X21hcF90Lgo+ICsg Ki8KPiArI2RlZmluZSBYRU5NRU1fbWVtb3J5X21hcCAgICAgICAgICAgOQo+ICtzdHJ1Y3QgeGVu X21lbW9yeV9tYXAgewo+ICsgICAgLyoKPiArICAgICAqIE9uIGNhbGwgdGhlIG51bWJlciBvZiBl bnRyaWVzIHdoaWNoIGNhbiBiZSBzdG9yZWQgaW4gYnVmZmVyLiBPbgo+ICsgICAgICogcmV0dXJu IHRoZSBudW1iZXIgb2YgZW50cmllcyB3aGljaCBoYXZlIGJlZW4gc3RvcmVkIGluCj4gKyAgICAg KiBidWZmZXIuCj4gKyAgICAgKi8KPiArICAgIFVJTlQzMiBucl9lbnRyaWVzOwo+ICsKPiArICAg IC8qCj4gKyAgICAgKiBFbnRyaWVzIGluIHRoZSBidWZmZXIgYXJlIGluIHRoZSBzYW1lIGZvcm1h dCBhcyByZXR1cm5lZCBieSB0aGUKPiArICAgICAqIEJJT1MgSU5UIDB4MTUgRUFYPTB4RTgyMCBj YWxsLgo+ICsgICAgICovCj4gKyAgICBYRU5fR1VFU1RfSEFORExFKFZPSUQpIGJ1ZmZlcjsKPiAr fTsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX21lbW9yeV9tYXAgeGVuX21lbW9yeV9tYXBfdDsKPiAr REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbW9yeV9tYXBfdCk7Cj4gKwo+ICsvKgo+ICsg KiBSZXR1cm5zIHRoZSByZWFsIHBoeXNpY2FsIG1lbW9yeSBtYXAuIFBhc3NlcyB0aGUgc2FtZSBz dHJ1Y3R1cmUgYXMKPiArICogWEVOTUVNX21lbW9yeV9tYXAuCj4gKyAqIGFyZyA9PSBhZGRyIG9m IHhlbl9tZW1vcnlfbWFwX3QuCj4gKyAqLwo+ICsjZGVmaW5lIFhFTk1FTV9tYWNoaW5lX21lbW9y eV9tYXAgICAxMAo+ICsKPiArLyoKPiArICogU2V0IHRoZSBwc2V1ZG8tcGh5c2ljYWwgbWVtb3J5 IG1hcCBvZiBhIGRvbWFpbiwgYXMgcmV0dXJuZWQgYnkKPiArICogWEVOTUVNX21lbW9yeV9tYXAu Cj4gKyAqIGFyZyA9PSBhZGRyIG9mIHhlbl9mb3JlaWduX21lbW9yeV9tYXBfdC4KPiArICovCj4g KyNkZWZpbmUgWEVOTUVNX3NldF9tZW1vcnlfbWFwICAgICAgIDEzCj4gK3N0cnVjdCB4ZW5fZm9y ZWlnbl9tZW1vcnlfbWFwIHsKPiArICAgIGRvbWlkX3QgZG9taWQ7Cj4gKyAgICBzdHJ1Y3QgeGVu X21lbW9yeV9tYXAgbWFwOwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fZm9yZWlnbl9tZW1v cnlfbWFwIHhlbl9mb3JlaWduX21lbW9yeV9tYXBfdDsKPiArREVGSU5FX1hFTl9HVUVTVF9IQU5E TEUoeGVuX2ZvcmVpZ25fbWVtb3J5X21hcF90KTsKPiArCj4gKyNkZWZpbmUgWEVOTUVNX3NldF9w b2RfdGFyZ2V0ICAgICAgIDE2Cj4gKyNkZWZpbmUgWEVOTUVNX2dldF9wb2RfdGFyZ2V0ICAgICAg IDE3Cj4gK3N0cnVjdCB4ZW5fcG9kX3RhcmdldCB7Cj4gKyAgICAvKiBJTiAqLwo+ICsgICAgVUlO VDY0IHRhcmdldF9wYWdlczsKPiArICAgIC8qIE9VVCAqLwo+ICsgICAgVUlOVDY0IHRvdF9wYWdl czsKPiArICAgIFVJTlQ2NCBwb2RfY2FjaGVfcGFnZXM7Cj4gKyAgICBVSU5UNjQgcG9kX2VudHJp ZXM7Cj4gKyAgICAvKiBJTiAqLwo+ICsgICAgZG9taWRfdCBkb21pZDsKPiArfTsKPiArdHlwZWRl ZiBzdHJ1Y3QgeGVuX3BvZF90YXJnZXQgeGVuX3BvZF90YXJnZXRfdDsKPiArCj4gKyNpZiBkZWZp bmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykKPiArCj4gKyNpZm5kZWYgdWlu dDY0X2FsaWduZWRfdAo+ICsjZGVmaW5lIHVpbnQ2NF9hbGlnbmVkX3QgVUlOVDY0Cj4gKyNlbmRp Zgo+ICsKPiArLyoKPiArICogR2V0IHRoZSBudW1iZXIgb2YgTUZOcyBzYXZlZCB0aHJvdWdoIG1l bW9yeSBzaGFyaW5nLgo+ICsgKiBUaGUgY2FsbCBuZXZlciBmYWlscy4gCj4gKyAqLwo+ICsjZGVm aW5lIFhFTk1FTV9nZXRfc2hhcmluZ19mcmVlZF9wYWdlcyAgICAxOAo+ICsjZGVmaW5lIFhFTk1F TV9nZXRfc2hhcmluZ19zaGFyZWRfcGFnZXMgICAxOQo+ICsKPiArI2RlZmluZSBYRU5NRU1fcGFn aW5nX29wICAgICAgICAgICAgICAgICAgICAyMAo+ICsjZGVmaW5lIFhFTk1FTV9wYWdpbmdfb3Bf bm9taW5hdGUgICAgICAgICAgIDAKPiArI2RlZmluZSBYRU5NRU1fcGFnaW5nX29wX2V2aWN0ICAg ICAgICAgICAgICAxCj4gKyNkZWZpbmUgWEVOTUVNX3BhZ2luZ19vcF9wcmVwICAgICAgICAgICAg ICAgMgo+ICsKPiArI2RlZmluZSBYRU5NRU1fYWNjZXNzX29wICAgICAgICAgICAgICAgICAgICAy MQo+ICsjZGVmaW5lIFhFTk1FTV9hY2Nlc3Nfb3BfcmVzdW1lICAgICAgICAgICAgIDAKPiArCj4g K3N0cnVjdCB4ZW5fbWVtX2V2ZW50X29wIHsKPiArICAgIFVJTlQ4ICAgICBvcDsgICAgICAgICAv KiBYRU5NRU1fKl9vcF8qICovCj4gKyAgICBkb21pZF90ICAgICBkb21haW47Cj4gKyAgICAKPiAr Cj4gKyAgICAvKiBQQUdJTkdfUFJFUCBJTjogYnVmZmVyIHRvIGltbWVkaWF0ZWx5IGZpbGwgcGFn ZSBpbiAqLwo+ICsgICAgdWludDY0X2FsaWduZWRfdCAgICBidWZmZXI7Cj4gKyAgICAvKiBPdGhl ciBPUHMgKi8KPiArICAgIHVpbnQ2NF9hbGlnbmVkX3QgICAgZ2ZuOyAgICAgICAgICAgLyogSU46 ICBnZm4gb2YgcGFnZSBiZWluZyBvcGVyYXRlZCBvbiAqLwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVj dCB4ZW5fbWVtX2V2ZW50X29wIHhlbl9tZW1fZXZlbnRfb3BfdDsKPiArREVGSU5FX1hFTl9HVUVT VF9IQU5ETEUoeGVuX21lbV9ldmVudF9vcF90KTsKPiArCj4gKyNkZWZpbmUgWEVOTUVNX3NoYXJp bmdfb3AgICAgICAgICAgICAgICAgICAgMjIKPiArI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9u b21pbmF0ZV9nZm4gICAgICAwCj4gKyNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3Bfbm9taW5hdGVf Z3JlZiAgICAgMQo+ICsjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX3NoYXJlICAgICAgICAgICAg IDIKPiArI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9yZXN1bWUgICAgICAgICAgICAzCj4gKyNk ZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3BfZGVidWdfZ2ZuICAgICAgICAgNAo+ICsjZGVmaW5lIFhF Tk1FTV9zaGFyaW5nX29wX2RlYnVnX21mbiAgICAgICAgIDUKPiArI2RlZmluZSBYRU5NRU1fc2hh cmluZ19vcF9kZWJ1Z19ncmVmICAgICAgICA2Cj4gKyNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3Bf YWRkX3BoeXNtYXAgICAgICAgNwo+ICsjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX2F1ZGl0ICAg ICAgICAgICAgIDgKPiArCj4gKyNkZWZpbmUgWEVOTUVNX1NIQVJJTkdfT1BfU19IQU5ETEVfSU5W QUxJRCAgKC0xMCkKPiArI2RlZmluZSBYRU5NRU1fU0hBUklOR19PUF9DX0hBTkRMRV9JTlZBTElE ICAoLTkpCj4gKwo+ICsvKiBUaGUgZm9sbG93aW5nIGFsbG93cyBzaGFyaW5nIG9mIGdyYW50IHJl ZnMuIFRoaXMgaXMgdXNlZnVsCj4gKyAqIGZvciBzaGFyaW5nIHV0aWxpdGllcyBzaXR0aW5nIGFz ICJmaWx0ZXJzIiBpbiBJTyBiYWNrZW5kcwo+ICsgKiAoZS5nLiBtZW1zaHIgKyBibGt0YXAoMikp LiBUaGUgSU8gYmFja2VuZCBpcyBvbmx5IGV4cG9zZWQgCj4gKyAqIHRvIGdyYW50IHJlZmVyZW5j ZXMsIGFuZCB0aGlzIGFsbG93cyBzaGFyaW5nIG9mIHRoZSBncmVmcyAqLwo+ICsjZGVmaW5lIFhF Tk1FTV9TSEFSSU5HX09QX0ZJRUxEX0lTX0dSRUZfRkxBRyAgICgxVUxMIDw8IDYyKQo+ICsKPiAr I2RlZmluZSBYRU5NRU1fU0hBUklOR19PUF9GSUVMRF9NQUtFX0dSRUYoZmllbGQsIHZhbCkgIFwK PiArICAgIChmaWVsZCkgPSAoWEVOTUVNX1NIQVJJTkdfT1BfRklFTERfSVNfR1JFRl9GTEFHIHwg dmFsKQo+ICsjZGVmaW5lIFhFTk1FTV9TSEFSSU5HX09QX0ZJRUxEX0lTX0dSRUYoZmllbGQpICAg ICAgICAgXAo+ICsgICAgKChmaWVsZCkgJiBYRU5NRU1fU0hBUklOR19PUF9GSUVMRF9JU19HUkVG X0ZMQUcpCj4gKyNkZWZpbmUgWEVOTUVNX1NIQVJJTkdfT1BfRklFTERfR0VUX0dSRUYoZmllbGQp ICAgICAgICBcCj4gKyAgICAoKGZpZWxkKSAmICh+WEVOTUVNX1NIQVJJTkdfT1BfRklFTERfSVNf R1JFRl9GTEFHKSkKPiArCj4gK3N0cnVjdCB4ZW5fbWVtX3NoYXJpbmdfb3Agewo+ICsgICAgVUlO VDggICAgIG9wOyAgICAgLyogWEVOTUVNX3NoYXJpbmdfb3BfKiAqLwo+ICsgICAgZG9taWRfdCAg ICAgZG9tYWluOwo+ICsKPiArICAgIHVuaW9uIHsKPiArICAgICAgICBzdHJ1Y3QgbWVtX3NoYXJp bmdfb3Bfbm9taW5hdGUgeyAgLyogT1BfTk9NSU5BVEVfeHh4ICAgICAgICAgICAqLwo+ICsgICAg ICAgICAgICB1bmlvbiB7Cj4gKyAgICAgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90IGdmbjsg ICAgIC8qIElOOiBnZm4gdG8gbm9taW5hdGUgICAgICAgKi8KPiArICAgICAgICAgICAgICAgIFVJ TlQzMiAgICAgIGdyYW50X3JlZjsgIC8qIElOOiBncmFudCByZWYgdG8gbm9taW5hdGUgKi8KPiAr ICAgICAgICAgICAgfSB1Owo+ICsgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90ICBoYW5kbGU7 ICAgICAvKiBPVVQ6IHRoZSBoYW5kbGUgICAgICAgICAgICovCj4gKyAgICAgICAgfSBub21pbmF0 ZTsKPiArICAgICAgICBzdHJ1Y3QgbWVtX3NoYXJpbmdfb3Bfc2hhcmUgeyAgICAgLyogT1BfU0hB UkUvQUREX1BIWVNNQVAgKi8KPiArICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCBzb3VyY2Vf Z2ZuOyAgICAvKiBJTjogdGhlIGdmbiBvZiB0aGUgc291cmNlIHBhZ2UgKi8KPiArICAgICAgICAg ICAgdWludDY0X2FsaWduZWRfdCBzb3VyY2VfaGFuZGxlOyAvKiBJTjogaGFuZGxlIHRvIHRoZSBz b3VyY2UgcGFnZSAqLwo+ICsgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90IGNsaWVudF9nZm47 ICAgIC8qIElOOiB0aGUgY2xpZW50IGdmbiAqLwo+ICsgICAgICAgICAgICB1aW50NjRfYWxpZ25l ZF90IGNsaWVudF9oYW5kbGU7IC8qIElOOiBoYW5kbGUgdG8gdGhlIGNsaWVudCBwYWdlICovCj4g KyAgICAgICAgICAgIGRvbWlkX3QgIGNsaWVudF9kb21haW47IC8qIElOOiB0aGUgY2xpZW50IGRv bWFpbiBpZCAqLwo+ICsgICAgICAgIH0gc2hhcmU7IAo+ICsgICAgICAgIHN0cnVjdCBtZW1fc2hh cmluZ19vcF9kZWJ1ZyB7ICAgICAvKiBPUF9ERUJVR194eHggKi8KPiArICAgICAgICAgICAgdW5p b24gewo+ICsgICAgICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCBnZm47ICAgICAgLyogSU46 IGdmbiB0byBkZWJ1ZyAgICAgICAgICAqLwo+ICsgICAgICAgICAgICAgICAgdWludDY0X2FsaWdu ZWRfdCBtZm47ICAgICAgLyogSU46IG1mbiB0byBkZWJ1ZyAgICAgICAgICAqLwo+ICsgICAgICAg ICAgICAgICAgVUlOVDMyIGdyZWY7ICAgICAvKiBJTjogZ3JlZiB0byBkZWJ1ZyAgICAgICAgICov Cj4gKyAgICAgICAgICAgIH0gdTsKPiArICAgICAgICB9IGRlYnVnOwo+ICsgICAgfSB1Owo+ICt9 Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fbWVtX3NoYXJpbmdfb3AgeGVuX21lbV9zaGFyaW5nX29w X3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9tZW1fc2hhcmluZ19vcF90KTsKPiAr Cj4gKy8qCj4gKyAqIEF0dGVtcHQgdG8gc3Rha2UgYSBjbGFpbSBmb3IgYSBkb21haW4gb24gYSBx dWFudGl0eSBvZiBwYWdlcwo+ICsgKiBvZiBzeXN0ZW0gUkFNLCBidXQgX25vdF8gYXNzaWduIHNw ZWNpZmljIHBhZ2VmcmFtZXMuICBPbmx5Cj4gKyAqIGFyaXRobWV0aWMgaXMgcGVyZm9ybWVkIHNv IHRoZSBoeXBlcmNhbGwgaXMgdmVyeSBmYXN0IGFuZCBuZWVkCj4gKyAqIG5vdCBiZSBwcmVlbXB0 aWJsZSwgdGh1cyBzaWRlc3RlcHBpbmcgdGltZS1vZi1jaGVjay10aW1lLW9mLXVzZQo+ICsgKiBy YWNlcyBmb3IgbWVtb3J5IGFsbG9jYXRpb24uICBSZXR1cm5zIDAgaWYgdGhlIGh5cGVydmlzb3Ig cGFnZQo+ICsgKiBhbGxvY2F0b3IgaGFzIGF0b21pY2FsbHkgYW5kIHN1Y2Nlc3NmdWxseSBjbGFp bWVkIHRoZSByZXF1ZXN0ZWQKPiArICogbnVtYmVyIG9mIHBhZ2VzLCBlbHNlIG5vbi16ZXJvLgo+ ICsgKgo+ICsgKiBBbnkgZG9tYWluIG1heSBoYXZlIG9ubHkgb25lIGFjdGl2ZSBjbGFpbS4gIFdo ZW4gc3VmZmljaWVudCBtZW1vcnkKPiArICogaGFzIGJlZW4gYWxsb2NhdGVkIHRvIHJlc29sdmUg dGhlIGNsYWltLCB0aGUgY2xhaW0gc2lsZW50bHkgZXhwaXJlcy4KPiArICogQ2xhaW1pbmcgemVy byBwYWdlcyBlZmZlY3RpdmVseSByZXNldHMgYW55IG91dHN0YW5kaW5nIGNsYWltIGFuZAo+ICsg KiBpcyBhbHdheXMgc3VjY2Vzc2Z1bC4KPiArICoKPiArICogTm90ZSB0aGF0IGEgdmFsaWQgY2xh aW0gbWF5IGJlIHN0YWtlZCBldmVuIGFmdGVyIG1lbW9yeSBoYXMgYmVlbgo+ICsgKiBhbGxvY2F0 ZWQgZm9yIGEgZG9tYWluLiAgSW4gdGhpcyBjYXNlLCB0aGUgY2xhaW0gaXMgbm90IGluY3JlbWVu dGFsLAo+ICsgKiBpLmUuIGlmIHRoZSBkb21haW4ncyB0b3RfcGFnZXMgaXMgMywgYW5kIGEgY2xh aW0gaXMgc3Rha2VkIGZvciAxMCwKPiArICogb25seSA3IGFkZGl0aW9uYWwgcGFnZXMgYXJlIGNs YWltZWQuCj4gKyAqCj4gKyAqIENhbGxlciBtdXN0IGJlIHByaXZpbGVnZWQgb3IgdGhlIGh5cGVy Y2FsbCBmYWlscy4KPiArICovCj4gKyNkZWZpbmUgWEVOTUVNX2NsYWltX3BhZ2VzICAgICAgICAg ICAgICAgICAgMjQKPiArCj4gKy8qCj4gKyAqIFhFTk1FTV9jbGFpbV9wYWdlcyBmbGFncyAtIHRo ZSBhcmUgbm8gZmxhZ3MgYXQgdGhpcyB0aW1lLgo+ICsgKiBUaGUgemVybyB2YWx1ZSBpcyBhcHBy b3BpYXRlLgo+ICsgKi8KPiArCj4gKyNlbmRpZiAvKiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmlu ZWQoX19YRU5fVE9PTFNfXykgKi8KPiArCj4gKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfTUVNT1JZ X0hfXyAqLwo+ICsKPiArLyoKPiArICogTG9jYWwgdmFyaWFibGVzOgo+ICsgKiBtb2RlOiBDCj4g KyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKPiArICogYy1iYXNpYy1vZmZzZXQ6IDQKPiArICogdGFi LXdpZHRoOiA0Cj4gKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAo+ICsgKiBFbmQ6Cj4gKyAqLwo+ IGRpZmYgLS1naXQgYS9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vc2NoZWQu aCBiL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9zY2hlZC5oCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5iOTMxMjNmCj4gLS0tIC9kZXYvbnVsbAo+ ICsrKyBiL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1hlbi9zY2hlZC5oCj4gQEAg LTAsMCArMSwxNzQgQEAKPiArLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiBzY2hlZC5oCj4g KyAqCj4gKyAqIFNjaGVkdWxlciBzdGF0ZSBpbnRlcmFjdGlvbnMKPiArICoKPiArICogUGVybWlz c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0 YWluaW5nIGEgY29weQo+ICsgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPiArICogZGVhbCBpbiB0aGUgU29m dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0 aGUKPiArICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlz dHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCj4gKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0 d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCj4gKyAq IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3Rh bnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUg SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVT UyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCj4gKyAq IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB TUFHRVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD T05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9S IElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgo+ICsg KiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIENvcHlyaWdodCAoYykgMjAw NSwgS2VpciBGcmFzZXIgPGtlaXJAeGVuc291cmNlLmNvbT4KPiArICovCj4gKwo+ICsjaWZuZGVm IF9fWEVOX1BVQkxJQ19TQ0hFRF9IX18KPiArI2RlZmluZSBfX1hFTl9QVUJMSUNfU0NIRURfSF9f Cj4gKwo+ICsjaW5jbHVkZSAiZXZlbnRfY2hhbm5lbC5oIgo+ICsKPiArLyoKPiArICogYGluY29u dGVudHMgMTUwIHNjaGVkIEd1ZXN0IFNjaGVkdWxlciBPcGVyYXRpb25zCj4gKyAqCj4gKyAqIFRo ZSBTQ0hFRE9QIGludGVyZmFjZSBwcm92aWRlcyBtZWNoYW5pc21zIGZvciBhIGd1ZXN0IHRvIGlu dGVyYWN0Cj4gKyAqIHdpdGggdGhlIHNjaGVkdWxlciwgaW5jbHVkaW5nIHlpZWxkLCBibG9ja2lu ZyBhbmQgc2h1dHRpbmcgaXRzZWxmCj4gKyAqIGRvd24uCj4gKyAqLwo+ICsKPiArLyoKPiArICog VGhlIHByb3RvdHlwZSBmb3IgdGhpcyBoeXBlcmNhbGwgaXM6Cj4gKyAqIGAgSU5UTiBIWVBFUlZJ U09SX3NjaGVkX29wKGVudW0gc2NoZWRfb3AgY21kLCBWT0lEICphcmcsIC4uLikKPiArICoKPiAr ICogQGNtZCA9PSBTQ0hFRE9QXz8/PyAoc2NoZWR1bGVyIG9wZXJhdGlvbikuCj4gKyAqIEBhcmcg PT0gT3BlcmF0aW9uLXNwZWNpZmljIGV4dHJhIGFyZ3VtZW50KHMpLCBhcyBkZXNjcmliZWQgYmVs b3cuCj4gKyAqIC4uLiAgPT0gQWRkaXRpb25hbCBPcGVyYXRpb24tc3BlY2lmaWMgZXh0cmEgYXJn dW1lbnRzLCBkZXNjcmliZWQgYmVsb3cuCj4gKyAqCj4gKyAqIFZlcnNpb25zIG9mIFhlbiBwcmlv ciB0byAzLjAuMiBwcm92aWRlZCBvbmx5IHRoZSBmb2xsb3dpbmcgbGVnYWN5IHZlcnNpb24KPiAr ICogb2YgdGhpcyBoeXBlcmNhbGwsIHN1cHBvcnRpbmcgb25seSB0aGUgY29tbWFuZHMgeWllbGQs IGJsb2NrIGFuZCBzaHV0ZG93bjoKPiArICogIElOVE4gc2NoZWRfb3AoSU5UMzIgY21kLCBVSU5U TiBhcmcpCj4gKyAqIEBjbWQgPT0gU0NIRURPUF8/Pz8gKHNjaGVkdWxlciBvcGVyYXRpb24pLgo+ ICsgKiBAYXJnID09IDAgICAgICAgICAgICAgICAoU0NIRURPUF95aWVsZCBhbmQgU0NIRURPUF9i bG9jaykKPiArICogICAgICA9PSBTSFVURE9XTl8qIGNvZGUgKFNDSEVET1Bfc2h1dGRvd24pCj4g KyAqCj4gKyAqIFRoaXMgbGVnYWN5IHZlcnNpb24gaXMgYXZhaWxhYmxlIHRvIG5ldyBndWVzdHMg YXM6Cj4gKyAqIGAgSU5UTiBIWVBFUlZJU09SX3NjaGVkX29wX2NvbXBhdChlbnVtIHNjaGVkX29w IGNtZCwgVUlOVE4gYXJnKQo+ICsgKi8KPiArCj4gKy8qIGAgZW51bSBzY2hlZF9vcCB7IC8vIFND SEVET1BfKiA9PiBzdHJ1Y3Qgc2NoZWRfKiAqLwo+ICsvKgo+ICsgKiBWb2x1bnRhcmlseSB5aWVs ZCB0aGUgQ1BVLgo+ICsgKiBAYXJnID09IE5VTEwuCj4gKyAqLwo+ICsjZGVmaW5lIFNDSEVET1Bf eWllbGQgICAgICAgMAo+ICsKPiArLyoKPiArICogQmxvY2sgZXhlY3V0aW9uIG9mIHRoaXMgVkNQ VSB1bnRpbCBhbiBldmVudCBpcyByZWNlaXZlZCBmb3IgcHJvY2Vzc2luZy4KPiArICogSWYgY2Fs bGVkIHdpdGggZXZlbnQgdXBjYWxscyBtYXNrZWQsIHRoaXMgb3BlcmF0aW9uIHdpbGwgYXRvbWlj YWxseQo+ICsgKiByZWVuYWJsZSBldmVudCBkZWxpdmVyeSBhbmQgY2hlY2sgZm9yIHBlbmRpbmcg ZXZlbnRzIGJlZm9yZSBibG9ja2luZyB0aGUKPiArICogVkNQVS4gVGhpcyBhdm9pZHMgYSAid2Fr ZXVwIHdhaXRpbmciIHJhY2UuCj4gKyAqIEBhcmcgPT0gTlVMTC4KPiArICovCj4gKyNkZWZpbmUg U0NIRURPUF9ibG9jayAgICAgICAxCj4gKwo+ICsvKgo+ICsgKiBIYWx0IGV4ZWN1dGlvbiBvZiB0 aGlzIGRvbWFpbiAoYWxsIFZDUFVzKSBhbmQgbm90aWZ5IHRoZSBzeXN0ZW0gY29udHJvbGxlci4K PiArICogQGFyZyA9PSBwb2ludGVyIHRvIHNjaGVkX3NodXRkb3duX3Qgc3RydWN0dXJlLgo+ICsg Kgo+ICsgKiBJZiB0aGUgc2NoZWRfc2h1dGRvd25fdCByZWFzb24gaXMgU0hVVERPV05fc3VzcGVu ZCB0aGVuIHRoaXMKPiArICogaHlwZXJjYWxsIHRha2VzIGFuIGFkZGl0aW9uYWwgZXh0cmEgYXJn dW1lbnQgd2hpY2ggc2hvdWxkIGJlIHRoZQo+ICsgKiBNRk4gb2YgdGhlIGd1ZXN0J3Mgc3RhcnRf aW5mb190Lgo+ICsgKgo+ICsgKiBJbiBhZGRpdGlvbiwgd2hpY2ggcmVhc29uIGlzIFNIVVRET1dO X3N1c3BlbmQgdGhpcyBoeXBlcmNhbGwKPiArICogcmV0dXJucyAxIGlmIHN1c3BlbmQgd2FzIGNh bmNlbGxlZCBvciB0aGUgZG9tYWluIHdhcyBtZXJlbHkKPiArICogY2hlY2twb2ludGVkLCBhbmQg MCBpZiBpdCBpcyByZXN1bWluZyBpbiBhIG5ldyBkb21haW4uCj4gKyAqLwo+ICsjZGVmaW5lIFND SEVET1Bfc2h1dGRvd24gICAgMgo+ICsKPiArLyoKPiArICogUG9sbCBhIHNldCBvZiBldmVudC1j aGFubmVsIHBvcnRzLiBSZXR1cm4gd2hlbiBvbmUgb3IgbW9yZSBhcmUgcGVuZGluZy4gQW4KPiAr ICogb3B0aW9uYWwgdGltZW91dCBtYXkgYmUgc3BlY2lmaWVkLgo+ICsgKiBAYXJnID09IHBvaW50 ZXIgdG8gc2NoZWRfcG9sbF90IHN0cnVjdHVyZS4KPiArICovCj4gKyNkZWZpbmUgU0NIRURPUF9w b2xsICAgICAgICAzCj4gKwo+ICsvKgo+ICsgKiBEZWNsYXJlIGEgc2h1dGRvd24gZm9yIGFub3Ro ZXIgZG9tYWluLiBUaGUgbWFpbiB1c2Ugb2YgdGhpcyBmdW5jdGlvbiBpcwo+ICsgKiBpbiBpbnRl cnByZXRpbmcgc2h1dGRvd24gcmVxdWVzdHMgYW5kIHJlYXNvbnMgZm9yIGZ1bGx5LXZpcnR1YWxp emVkCj4gKyAqIGRvbWFpbnMuICBBIHBhcmEtdmlydHVhbGl6ZWQgZG9tYWluIG1heSB1c2UgU0NI RURPUF9zaHV0ZG93biBkaXJlY3RseS4KPiArICogQGFyZyA9PSBwb2ludGVyIHRvIHNjaGVkX3Jl bW90ZV9zaHV0ZG93bl90IHN0cnVjdHVyZS4KPiArICovCj4gKyNkZWZpbmUgU0NIRURPUF9yZW1v dGVfc2h1dGRvd24gICAgICAgIDQKPiArCj4gKy8qCj4gKyAqIExhdGNoIGEgc2h1dGRvd24gY29k ZSwgc28gdGhhdCB3aGVuIHRoZSBkb21haW4gbGF0ZXIgc2h1dHMgZG93biBpdAo+ICsgKiByZXBv cnRzIHRoaXMgY29kZSB0byB0aGUgY29udHJvbCB0b29scy4KPiArICogQGFyZyA9PSBzY2hlZF9z aHV0ZG93bl90LCBhcyBmb3IgU0NIRURPUF9zaHV0ZG93bi4KPiArICovCj4gKyNkZWZpbmUgU0NI RURPUF9zaHV0ZG93bl9jb2RlIDUKPiArCj4gKy8qCj4gKyAqIFNldHVwLCBwb2tlIGFuZCBkZXN0 cm95IGEgZG9tYWluIHdhdGNoZG9nIHRpbWVyLgo+ICsgKiBAYXJnID09IHBvaW50ZXIgdG8gc2No ZWRfd2F0Y2hkb2dfdCBzdHJ1Y3R1cmUuCj4gKyAqIFdpdGggaWQgPT0gMCwgc2V0dXAgYSBkb21h aW4gd2F0Y2hkb2cgdGltZXIgdG8gY2F1c2UgZG9tYWluIHNodXRkb3duCj4gKyAqICAgICAgICAg ICAgICAgYWZ0ZXIgdGltZW91dCwgcmV0dXJucyB3YXRjaGRvZyBpZC4KPiArICogV2l0aCBpZCAh PSAwIGFuZCB0aW1lb3V0ID09IDAsIGRlc3Ryb3kgZG9tYWluIHdhdGNoZG9nIHRpbWVyLgo+ICsg KiBXaXRoIGlkICE9IDAgYW5kIHRpbWVvdXQgIT0gMCwgcG9rZSB3YXRjaGRvZyB0aW1lciBhbmQg c2V0IG5ldyB0aW1lb3V0Lgo+ICsgKi8KPiArI2RlZmluZSBTQ0hFRE9QX3dhdGNoZG9nICAgIDYK PiArLyogYCB9ICovCj4gKwo+ICtzdHJ1Y3Qgc2NoZWRfc2h1dGRvd24gewo+ICsgICAgVUlOVDMy IHJlYXNvbjsgLyogU0hVVERPV05fKiA9PiBlbnVtIHNjaGVkX3NodXRkb3duX3JlYXNvbiAqLwo+ ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCBzY2hlZF9zaHV0ZG93biBzY2hlZF9zaHV0ZG93bl90Owo+ ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShzY2hlZF9zaHV0ZG93bl90KTsKPiArCj4gK3N0cnVj dCBzY2hlZF9wb2xsIHsKPiArICAgIFhFTl9HVUVTVF9IQU5ETEUoZXZ0Y2huX3BvcnRfdCkgcG9y dHM7Cj4gKyAgICBVSU5UMzIgbnJfcG9ydHM7Cj4gKyAgICBVSU5UNjQgdGltZW91dDsKPiArfTsK PiArdHlwZWRlZiBzdHJ1Y3Qgc2NoZWRfcG9sbCBzY2hlZF9wb2xsX3Q7Cj4gK0RFRklORV9YRU5f R1VFU1RfSEFORExFKHNjaGVkX3BvbGxfdCk7Cj4gKwo+ICtzdHJ1Y3Qgc2NoZWRfcmVtb3RlX3No dXRkb3duIHsKPiArICAgIGRvbWlkX3QgZG9tYWluX2lkOyAgICAgICAgIC8qIFJlbW90ZSBkb21h aW4gSUQgKi8KPiArICAgIFVJTlQzMiByZWFzb247ICAgICAgIC8qIFNIVVRET1dOXyogPT4gZW51 bSBzY2hlZF9zaHV0ZG93bl9yZWFzb24gKi8KPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3Qgc2NoZWRf cmVtb3RlX3NodXRkb3duIHNjaGVkX3JlbW90ZV9zaHV0ZG93bl90Owo+ICtERUZJTkVfWEVOX0dV RVNUX0hBTkRMRShzY2hlZF9yZW1vdGVfc2h1dGRvd25fdCk7Cj4gKwo+ICtzdHJ1Y3Qgc2NoZWRf d2F0Y2hkb2cgewo+ICsgICAgVUlOVDMyIGlkOyAgICAgICAgICAgICAgICAvKiB3YXRjaGRvZyBJ RCAqLwo+ICsgICAgVUlOVDMyIHRpbWVvdXQ7ICAgICAgICAgICAvKiB0aW1lb3V0ICovCj4gK307 Cj4gK3R5cGVkZWYgc3RydWN0IHNjaGVkX3dhdGNoZG9nIHNjaGVkX3dhdGNoZG9nX3Q7Cj4gK0RF RklORV9YRU5fR1VFU1RfSEFORExFKHNjaGVkX3dhdGNoZG9nX3QpOwo+ICsKPiArLyoKPiArICog UmVhc29uIGNvZGVzIGZvciBTQ0hFRE9QX3NodXRkb3duLiBUaGVzZSBtYXkgYmUgaW50ZXJwcmV0 ZWQgYnkgY29udHJvbAo+ICsgKiBzb2Z0d2FyZSB0byBkZXRlcm1pbmUgdGhlIGFwcHJvcHJpYXRl IGFjdGlvbi4gRm9yIHRoZSBtb3N0IHBhcnQsIFhlbiBkb2VzCj4gKyAqIG5vdCBjYXJlIGFib3V0 IHRoZSBzaHV0ZG93biBjb2RlLgo+ICsgKi8KPiArLyogYCBlbnVtIHNjaGVkX3NodXRkb3duX3Jl YXNvbiB7ICovCj4gKyNkZWZpbmUgU0hVVERPV05fcG93ZXJvZmYgICAwICAvKiBEb21haW4gZXhp dGVkIG5vcm1hbGx5LiBDbGVhbiB1cCBhbmQga2lsbC4gKi8KPiArI2RlZmluZSBTSFVURE9XTl9y ZWJvb3QgICAgIDEgIC8qIENsZWFuIHVwLCBraWxsLCBhbmQgdGhlbiByZXN0YXJ0LiAgICAgICAg ICAqLwo+ICsjZGVmaW5lIFNIVVRET1dOX3N1c3BlbmQgICAgMiAgLyogQ2xlYW4gdXAsIHNhdmUg c3VzcGVuZCBpbmZvLCBraWxsLiAgICAgICAgICovCj4gKyNkZWZpbmUgU0hVVERPV05fY3Jhc2gg ICAgICAzICAvKiBUZWxsIGNvbnRyb2xsZXIgd2UndmUgY3Jhc2hlZC4gICAgICAgICAgICAgKi8K PiArI2RlZmluZSBTSFVURE9XTl93YXRjaGRvZyAgIDQgIC8qIFJlc3RhcnQgYmVjYXVzZSB3YXRj aGRvZyB0aW1lIGV4cGlyZWQuICAgICAqLwo+ICsjZGVmaW5lIFNIVVRET1dOX01BWCAgICAgICAg NCAgLyogTWF4aW11bSB2YWxpZCBzaHV0ZG93biByZWFzb24uICAgICAgICAgICAgICovCj4gKy8q IGAgfSAqLwo+ICsKPiArI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19TQ0hFRF9IX18gKi8KPiArCj4g Ky8qCj4gKyAqIExvY2FsIHZhcmlhYmxlczoKPiArICogbW9kZTogQwo+ICsgKiBjLWZpbGUtc3R5 bGU6ICJCU0QiCj4gKyAqIGMtYmFzaWMtb2Zmc2V0OiA0Cj4gKyAqIHRhYi13aWR0aDogNAo+ICsg KiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKPiArICogRW5kOgo+ICsgKi8KPiBkaWZmIC0tZ2l0IGEv T3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvWGVuL3RyYWNlLmggYi9Pdm1mUGtnL0lu Y2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vdHJhY2UuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4gaW5kZXggMDAwMDAwMC4uZjczMzRjZQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9Pdm1mUGtn L0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9YZW4vdHJhY2UuaAo+IEBAIC0wLDAgKzEsMzEwIEBA Cj4gKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICogaW5jbHVkZS9wdWJsaWMvdHJhY2UuaAo+ ICsgKiAKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQo+ICsgKiBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPiAr ICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp dGhvdXQgbGltaXRhdGlvbiB0aGUKPiArICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCj4gKyAqIHNlbGwg Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl IFNvZnR3YXJlIGlzCj4gKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gKyAqIGFs bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZF TlQgU0hBTEwgVEhFCj4gKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiAr ICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhF IFVTRSBPUiBPVEhFUgo+ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAq IE1hcmsgV2lsbGlhbXNvbiwgKEMpIDIwMDQgSW50ZWwgUmVzZWFyY2ggQ2FtYnJpZGdlCj4gKyAq IENvcHlyaWdodCAoQykgMjAwNSBCaW4gUmVuCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBfX1hFTl9Q VUJMSUNfVFJBQ0VfSF9fCj4gKyNkZWZpbmUgX19YRU5fUFVCTElDX1RSQUNFX0hfXwo+ICsKPiAr I2RlZmluZSBUUkFDRV9FWFRSQV9NQVggICAgNwo+ICsjZGVmaW5lIFRSQUNFX0VYVFJBX1NISUZU IDI4Cj4gKwo+ICsvKiBUcmFjZSBjbGFzc2VzICovCj4gKyNkZWZpbmUgVFJDX0NMU19TSElGVCAx Ngo+ICsjZGVmaW5lIFRSQ19HRU4gICAgICAweDAwMDFmMDAwICAgIC8qIEdlbmVyYWwgdHJhY2Ug ICAgICAgICAgICAqLwo+ICsjZGVmaW5lIFRSQ19TQ0hFRCAgICAweDAwMDJmMDAwICAgIC8qIFhl biBTY2hlZHVsZXIgdHJhY2UgICAgICAqLwo+ICsjZGVmaW5lIFRSQ19ET00wT1AgICAweDAwMDRm MDAwICAgIC8qIFhlbiBET00wIG9wZXJhdGlvbiB0cmFjZSAqLwo+ICsjZGVmaW5lIFRSQ19IVk0g ICAgICAweDAwMDhmMDAwICAgIC8qIFhlbiBIVk0gdHJhY2UgICAgICAgICAgICAqLwo+ICsjZGVm aW5lIFRSQ19NRU0gICAgICAweDAwMTBmMDAwICAgIC8qIFhlbiBtZW1vcnkgdHJhY2UgICAgICAg ICAqLwo+ICsjZGVmaW5lIFRSQ19QViAgICAgICAweDAwMjBmMDAwICAgIC8qIFhlbiBQViB0cmFj ZXMgICAgICAgICAgICAqLwo+ICsjZGVmaW5lIFRSQ19TSEFET1cgICAweDAwNDBmMDAwICAgIC8q IFhlbiBzaGFkb3cgdHJhY2luZyAgICAgICAqLwo+ICsjZGVmaW5lIFRSQ19IVyAgICAgICAweDAw ODBmMDAwICAgIC8qIFhlbiBoYXJkd2FyZS1yZWxhdGVkIHRyYWNlcyAqLwo+ICsjZGVmaW5lIFRS Q19HVUVTVCAgICAweDA4MDBmMDAwICAgIC8qIEd1ZXN0LWdlbmVyYXRlZCB0cmFjZXMgICAqLwo+ ICsjZGVmaW5lIFRSQ19BTEwgICAgICAweDBmZmZmMDAwCj4gKyNkZWZpbmUgVFJDX0hEX1RPX0VW RU5UKHgpICgoeCkmMHgwZmZmZmZmZikKPiArI2RlZmluZSBUUkNfSERfQ1lDTEVfRkxBRyAoMVVM PDwzMSkKPiArI2RlZmluZSBUUkNfSERfSU5DTFVERVNfQ1lDTEVfQ09VTlQoeCkgKCAhISggKHgp ICYgVFJDX0hEX0NZQ0xFX0ZMQUcgKSApCj4gKyNkZWZpbmUgVFJDX0hEX0VYVFJBKHgpICAgICgo KHgpPj5UUkFDRV9FWFRSQV9TSElGVCkmVFJBQ0VfRVhUUkFfTUFYKQo+ICsKPiArLyogVHJhY2Ug c3ViY2xhc3NlcyAqLwo+ICsjZGVmaW5lIFRSQ19TVUJDTFNfU0hJRlQgMTIKPiArCj4gKy8qIHRy YWNlIHN1YmNsYXNzZXMgZm9yIFNWTSAqLwo+ICsjZGVmaW5lIFRSQ19IVk1fRU5UUllFWElUIDB4 MDAwODEwMDAgICAvKiBWTUVOVFJZIGFuZCAjVk1FWElUICAgICAgICovCj4gKyNkZWZpbmUgVFJD X0hWTV9IQU5ETEVSICAgMHgwMDA4MjAwMCAgIC8qIHZhcmlvdXMgSFZNIGhhbmRsZXJzICAgICAg Ki8KPiArCj4gKyNkZWZpbmUgVFJDX1NDSEVEX01JTiAgICAgICAweDAwMDIxMDAwICAgLyogSnVz dCBydW5zdGF0ZSBjaGFuZ2VzICovCj4gKyNkZWZpbmUgVFJDX1NDSEVEX0NMQVNTICAgICAweDAw MDIyMDAwICAgLyogU2NoZWR1bGVyLXNwZWNpZmljICAgICovCj4gKyNkZWZpbmUgVFJDX1NDSEVE X1ZFUkJPU0UgICAweDAwMDI4MDAwICAgLyogTW9yZSBpbmNsdXNpdmUgc2NoZWR1bGluZyAqLwo+ ICsKPiArLyoKPiArICogVGhlIGhpZ2hlc3QgMyBiaXRzIG9mIHRoZSBsYXN0IDEyIGJpdHMgb2Yg VFJDX1NDSEVEX0NMQVNTIGFib3ZlIGFyZQo+ICsgKiByZXNlcnZlZCBmb3IgZW5jb2Rpbmcgd2hh dCBzY2hlZHVsZXIgcHJvZHVjZWQgdGhlIGluZm9ybWF0aW9uLiBUaGUKPiArICogYWN0dWFsIGV2 ZW50IGlzIGVuY29kZWQgaW4gdGhlIGxhc3QgOSBiaXRzLgo+ICsgKgo+ICsgKiBUaGlzIG1lYW5z IHdlIGhhdmUgOCBzY2hlZHVsaW5nIElEcyBhdmFpbGFibGUgKHdoaWNoIG1lYW5zIGF0IG1vc3Qg OAo+ICsgKiBzY2hlZHVsZXJzIGdlbmVyYXRpbmcgZXZlbnRzKSBhbmQsIGluIGVhY2ggc2NoZWR1 bGVyLCB1cCB0byA1MTIKPiArICogZGlmZmVyZW50IGV2ZW50cy4KPiArICovCj4gKyNkZWZpbmUg VFJDX1NDSEVEX0lEX0JJVFMgMwo+ICsjZGVmaW5lIFRSQ19TQ0hFRF9JRF9TSElGVCAoVFJDX1NV QkNMU19TSElGVCAtIFRSQ19TQ0hFRF9JRF9CSVRTKQo+ICsjZGVmaW5lIFRSQ19TQ0hFRF9JRF9N QVNLICgoKDFVTDw8VFJDX1NDSEVEX0lEX0JJVFMpIC0gMSkgPDwgVFJDX1NDSEVEX0lEX1NISUZU KQo+ICsjZGVmaW5lIFRSQ19TQ0hFRF9FVlRfTUFTSyAofihUUkNfU0NIRURfSURfTUFTSykpCj4g Kwo+ICsvKiBQZXItc2NoZWR1bGVyIElEcywgdG8gaWRlbnRpZnkgc2NoZWR1bGVyIHNwZWNpZmlj IGV2ZW50cyAqLwo+ICsjZGVmaW5lIFRSQ19TQ0hFRF9DU0NIRUQgICAwCj4gKyNkZWZpbmUgVFJD X1NDSEVEX0NTQ0hFRDIgIDEKPiArI2RlZmluZSBUUkNfU0NIRURfU0VERiAgICAgMgo+ICsjZGVm aW5lIFRSQ19TQ0hFRF9BUklOQzY1MyAzCj4gKwo+ICsvKiBQZXItc2NoZWR1bGVyIHRyYWNpbmcg Ki8KPiArI2RlZmluZSBUUkNfU0NIRURfQ0xBU1NfRVZUKF9jLCBfZSkgXAo+ICsgICggKCBUUkNf U0NIRURfQ0xBU1MgfCBcCj4gKyAgICAgICgoVFJDX1NDSEVEXyMjX2MgPDwgVFJDX1NDSEVEX0lE X1NISUZUKSAmIFRSQ19TQ0hFRF9JRF9NQVNLKSApICsgXAo+ICsgICAgKF9lICYgVFJDX1NDSEVE X0VWVF9NQVNLKSApCj4gKwo+ICsvKiBUcmFjZSBjbGFzc2VzIGZvciBIYXJkd2FyZSAqLwo+ICsj ZGVmaW5lIFRSQ19IV19QTSAgICAgICAgICAgMHgwMDgwMTAwMCAgIC8qIFBvd2VyIG1hbmFnZW1l bnQgdHJhY2VzICovCj4gKyNkZWZpbmUgVFJDX0hXX0lSUSAgICAgICAgICAweDAwODAyMDAwICAg LyogVHJhY2VzIHJlbGF0aW5nIHRvIHRoZSBoYW5kbGluZyBvZiBJUlFzICovCj4gKwo+ICsvKiBU cmFjZSBldmVudHMgcGVyIGNsYXNzICovCj4gKyNkZWZpbmUgVFJDX0xPU1RfUkVDT1JEUyAgICAg ICAgKFRSQ19HRU4gKyAxKQo+ICsjZGVmaW5lIFRSQ19UUkFDRV9XUkFQX0JVRkZFUiAgKFRSQ19H RU4gKyAyKQo+ICsjZGVmaW5lIFRSQ19UUkFDRV9DUFVfQ0hBTkdFICAgIChUUkNfR0VOICsgMykK PiArCj4gKyNkZWZpbmUgVFJDX1NDSEVEX1JVTlNUQVRFX0NIQU5HRSAgIChUUkNfU0NIRURfTUlO ICsgMSkKPiArI2RlZmluZSBUUkNfU0NIRURfQ09OVElOVUVfUlVOTklORyAgKFRSQ19TQ0hFRF9N SU4gKyAyKQo+ICsjZGVmaW5lIFRSQ19TQ0hFRF9ET01fQUREICAgICAgICAoVFJDX1NDSEVEX1ZF UkJPU0UgKyAgMSkKPiArI2RlZmluZSBUUkNfU0NIRURfRE9NX1JFTSAgICAgICAgKFRSQ19TQ0hF RF9WRVJCT1NFICsgIDIpCj4gKyNkZWZpbmUgVFJDX1NDSEVEX1NMRUVQICAgICAgICAgIChUUkNf U0NIRURfVkVSQk9TRSArICAzKQo+ICsjZGVmaW5lIFRSQ19TQ0hFRF9XQUtFICAgICAgICAgICAo VFJDX1NDSEVEX1ZFUkJPU0UgKyAgNCkKPiArI2RlZmluZSBUUkNfU0NIRURfWUlFTEQgICAgICAg ICAgKFRSQ19TQ0hFRF9WRVJCT1NFICsgIDUpCj4gKyNkZWZpbmUgVFJDX1NDSEVEX0JMT0NLICAg ICAgICAgIChUUkNfU0NIRURfVkVSQk9TRSArICA2KQo+ICsjZGVmaW5lIFRSQ19TQ0hFRF9TSFVU RE9XTiAgICAgICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAgNykKPiArI2RlZmluZSBUUkNfU0NIRURf Q1RMICAgICAgICAgICAgKFRSQ19TQ0hFRF9WRVJCT1NFICsgIDgpCj4gKyNkZWZpbmUgVFJDX1ND SEVEX0FESkRPTSAgICAgICAgIChUUkNfU0NIRURfVkVSQk9TRSArICA5KQo+ICsjZGVmaW5lIFRS Q19TQ0hFRF9TV0lUQ0ggICAgICAgICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAxMCkKPiArI2RlZmlu ZSBUUkNfU0NIRURfU19USU1FUl9GTiAgICAgKFRSQ19TQ0hFRF9WRVJCT1NFICsgMTEpCj4gKyNk ZWZpbmUgVFJDX1NDSEVEX1RfVElNRVJfRk4gICAgIChUUkNfU0NIRURfVkVSQk9TRSArIDEyKQo+ ICsjZGVmaW5lIFRSQ19TQ0hFRF9ET01fVElNRVJfRk4gICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAx MykKPiArI2RlZmluZSBUUkNfU0NIRURfU1dJVENIX0lORlBSRVYgKFRSQ19TQ0hFRF9WRVJCT1NF ICsgMTQpCj4gKyNkZWZpbmUgVFJDX1NDSEVEX1NXSVRDSF9JTkZORVhUIChUUkNfU0NIRURfVkVS Qk9TRSArIDE1KQo+ICsjZGVmaW5lIFRSQ19TQ0hFRF9TSFVURE9XTl9DT0RFICAoVFJDX1NDSEVE X1ZFUkJPU0UgKyAxNikKPiArCj4gKyNkZWZpbmUgVFJDX01FTV9QQUdFX0dSQU5UX01BUCAgICAg IChUUkNfTUVNICsgMSkKPiArI2RlZmluZSBUUkNfTUVNX1BBR0VfR1JBTlRfVU5NQVAgICAgKFRS Q19NRU0gKyAyKQo+ICsjZGVmaW5lIFRSQ19NRU1fUEFHRV9HUkFOVF9UUkFOU0ZFUiAoVFJDX01F TSArIDMpCj4gKyNkZWZpbmUgVFJDX01FTV9TRVRfUDJNX0VOVFJZICAgICAgIChUUkNfTUVNICsg NCkKPiArI2RlZmluZSBUUkNfTUVNX0RFQ1JFQVNFX1JFU0VSVkFUSU9OIChUUkNfTUVNICsgNSkK PiArI2RlZmluZSBUUkNfTUVNX1BPRF9QT1BVTEFURSAgICAgICAgKFRSQ19NRU0gKyAxNikKPiAr I2RlZmluZSBUUkNfTUVNX1BPRF9aRVJPX1JFQ0xBSU0gICAgKFRSQ19NRU0gKyAxNykKPiArI2Rl ZmluZSBUUkNfTUVNX1BPRF9TVVBFUlBBR0VfU1BMSU5URVIgKFRSQ19NRU0gKyAxOCkKPiArCj4g KyNkZWZpbmUgVFJDX1BWX0VOVFJZICAgMHgwMDIwMTAwMCAvKiBIeXBlcnZpc29yIGVudHJ5IHBv aW50cyBmb3IgUFYgZ3Vlc3RzLiAqLwo+ICsjZGVmaW5lIFRSQ19QVl9TVUJDQUxMIDB4MDAyMDIw MDAgLyogU3ViLWNhbGwgaW4gYSBtdWx0aWNhbGwgaHlwZXJjYWxsICovCj4gKwo+ICsjZGVmaW5l IFRSQ19QVl9IWVBFUkNBTEwgICAgICAgICAgICAgKFRSQ19QVl9FTlRSWSArICAxKQo+ICsjZGVm aW5lIFRSQ19QVl9UUkFQICAgICAgICAgICAgICAgICAgKFRSQ19QVl9FTlRSWSArICAzKQo+ICsj ZGVmaW5lIFRSQ19QVl9QQUdFX0ZBVUxUICAgICAgICAgICAgKFRSQ19QVl9FTlRSWSArICA0KQo+ ICsjZGVmaW5lIFRSQ19QVl9GT1JDRURfSU5WQUxJRF9PUCAgICAgKFRSQ19QVl9FTlRSWSArICA1 KQo+ICsjZGVmaW5lIFRSQ19QVl9FTVVMQVRFX1BSSVZPUCAgICAgICAgKFRSQ19QVl9FTlRSWSAr ICA2KQo+ICsjZGVmaW5lIFRSQ19QVl9FTVVMQVRFXzRHQiAgICAgICAgICAgKFRSQ19QVl9FTlRS WSArICA3KQo+ICsjZGVmaW5lIFRSQ19QVl9NQVRIX1NUQVRFX1JFU1RPUkUgICAgKFRSQ19QVl9F TlRSWSArICA4KQo+ICsjZGVmaW5lIFRSQ19QVl9QQUdJTkdfRklYVVAgICAgICAgICAgKFRSQ19Q Vl9FTlRSWSArICA5KQo+ICsjZGVmaW5lIFRSQ19QVl9HRFRfTERUX01BUFBJTkdfRkFVTFQgKFRS Q19QVl9FTlRSWSArIDEwKQo+ICsjZGVmaW5lIFRSQ19QVl9QVFdSX0VNVUxBVElPTiAgICAgICAg KFRSQ19QVl9FTlRSWSArIDExKQo+ICsjZGVmaW5lIFRSQ19QVl9QVFdSX0VNVUxBVElPTl9QQUUg ICAgKFRSQ19QVl9FTlRSWSArIDEyKQo+ICsjZGVmaW5lIFRSQ19QVl9IWVBFUkNBTExfVjIgICAg ICAgICAgKFRSQ19QVl9FTlRSWSArIDEzKQo+ICsjZGVmaW5lIFRSQ19QVl9IWVBFUkNBTExfU1VC Q0FMTCAgICAgKFRSQ19QVl9TVUJDQUxMICsgMTQpCj4gKwo+ICsvKgo+ICsgKiBUUkNfUFZfSFlQ RVJDQUxMX1YyIGZvcm1hdAo+ICsgKgo+ICsgKiBPbmx5IHNvbWUgb2YgdGhlIGh5cGVyY2FsbCBh cmd1bWVudCBhcmUgcmVjb3JkZWQuIEJpdCBmaWVsZHMgQTAgdG8KPiArICogQTUgaW4gdGhlIGZp cnN0IGV4dHJhIHdvcmQgYXJlIHNldCBpZiB0aGUgYXJndW1lbnQgaXMgcHJlc2VudCBhbmQKPiAr ICogdGhlIGFyZ3VtZW50cyB0aGVtc2VsdmVzIGFyZSBwYWNrZWQgc2VxdWVudGlhbGx5IGluIHRo ZSBmb2xsb3dpbmcKPiArICogd29yZHMuCj4gKyAqCj4gKyAqIFRoZSBUUkNfNjRfRkxBRyBiaXQg aXMgbm90IHNldCBmb3IgdGhlc2UgZXZlbnRzIChldmVuIGlmIHRoZXJlIGFyZQo+ICsgKiA2NC1i aXQgYXJndW1lbnRzIGluIHRoZSByZWNvcmQpLgo+ICsgKgo+ICsgKiBXb3JkCj4gKyAqIDAgICAg Yml0IDMxIDMwfDI5IDI4fDI3IDI2fDI1IDI0fDIzIDIyfDIxIDIwfDE5IC4uLiAwCj4gKyAqICAg ICAgICAgIEE1ICAgfEE0ICAgfEEzICAgfEEyICAgfEExICAgfEEwICAgfEh5cGVyY2FsbCBvcAo+ ICsgKiAxICAgIEZpcnN0IDMyIGJpdCAob3IgbG93IHdvcmQgb2YgZmlyc3QgNjQgYml0KSBhcmcg aW4gcmVjb3JkCj4gKyAqIDIgICAgU2Vjb25kIDMyIGJpdCAob3IgaGlnaCB3b3JkIG9mIGZpcnN0 IDY0IGJpdCkgYXJnIGluIHJlY29yZAo+ICsgKiAuLi4KPiArICoKPiArICogQTAtQTUgYml0Zmll bGQgdmFsdWVzOgo+ICsgKgo+ICsgKiAgIDAwYiAgQXJndW1lbnQgbm90IHByZXNlbnQKPiArICog ICAwMWIgIDMyLWJpdCBhcmd1bWVudCBwcmVzZW50Cj4gKyAqICAgMTBiICA2NC1iaXQgYXJndW1l bnQgcHJlc2VudAo+ICsgKiAgIDExYiAgUmVzZXJ2ZWQKPiArICovCj4gKyNkZWZpbmUgVFJDX1BW X0hZUEVSQ0FMTF9WMl9BUkdfMzIoaSkgKDB4MSA8PCAoMjAgKyAyKihpKSkpCj4gKyNkZWZpbmUg VFJDX1BWX0hZUEVSQ0FMTF9WMl9BUkdfNjQoaSkgKDB4MiA8PCAoMjAgKyAyKihpKSkpCj4gKyNk ZWZpbmUgVFJDX1BWX0hZUEVSQ0FMTF9WMl9BUkdfTUFTSyAgKDB4ZmZmMDAwMDApCj4gKwo+ICsj ZGVmaW5lIFRSQ19TSEFET1dfTk9UX1NIQURPVyAgICAgICAgICAgICAgICAgKFRSQ19TSEFET1cg KyAgMSkKPiArI2RlZmluZSBUUkNfU0hBRE9XX0ZBU1RfUFJPUEFHQVRFICAgICAgICAgICAgIChU UkNfU0hBRE9XICsgIDIpCj4gKyNkZWZpbmUgVFJDX1NIQURPV19GQVNUX01NSU8gICAgICAgICAg ICAgICAgICAoVFJDX1NIQURPVyArICAzKQo+ICsjZGVmaW5lIFRSQ19TSEFET1dfRkFMU0VfRkFT VF9QQVRIICAgICAgICAgICAgKFRSQ19TSEFET1cgKyAgNCkKPiArI2RlZmluZSBUUkNfU0hBRE9X X01NSU8gICAgICAgICAgICAgICAgICAgICAgIChUUkNfU0hBRE9XICsgIDUpCj4gKyNkZWZpbmUg VFJDX1NIQURPV19GSVhVUCAgICAgICAgICAgICAgICAgICAgICAoVFJDX1NIQURPVyArICA2KQo+ ICsjZGVmaW5lIFRSQ19TSEFET1dfRE9NRl9EWUlORyAgICAgICAgICAgICAgICAgKFRSQ19TSEFE T1cgKyAgNykKPiArI2RlZmluZSBUUkNfU0hBRE9XX0VNVUxBVEUgICAgICAgICAgICAgICAgICAg IChUUkNfU0hBRE9XICsgIDgpCj4gKyNkZWZpbmUgVFJDX1NIQURPV19FTVVMQVRFX1VOU0hBRE9X X1VTRVIgICAgICAoVFJDX1NIQURPVyArICA5KQo+ICsjZGVmaW5lIFRSQ19TSEFET1dfRU1VTEFU RV9VTlNIQURPV19FVlRJTkogICAgKFRSQ19TSEFET1cgKyAxMCkKPiArI2RlZmluZSBUUkNfU0hB RE9XX0VNVUxBVEVfVU5TSEFET1dfVU5IQU5ETEVEIChUUkNfU0hBRE9XICsgMTEpCj4gKyNkZWZp bmUgVFJDX1NIQURPV19XUk1BUF9CRiAgICAgICAgICAgICAgICAgICAoVFJDX1NIQURPVyArIDEy KQo+ICsjZGVmaW5lIFRSQ19TSEFET1dfUFJFQUxMT0NfVU5QSU4gICAgICAgICAgICAgKFRSQ19T SEFET1cgKyAxMykKPiArI2RlZmluZSBUUkNfU0hBRE9XX1JFU1lOQ19GVUxMICAgICAgICAgICAg ICAgIChUUkNfU0hBRE9XICsgMTQpCj4gKyNkZWZpbmUgVFJDX1NIQURPV19SRVNZTkNfT05MWSAg ICAgICAgICAgICAgICAoVFJDX1NIQURPVyArIDE1KQo+ICsKPiArLyogdHJhY2UgZXZlbnRzIHBl ciBzdWJjbGFzcyAqLwo+ICsjZGVmaW5lIFRSQ19IVk1fTkVTVEVERkxBRyAgICAgICgweDQwMCkK PiArI2RlZmluZSBUUkNfSFZNX1ZNRU5UUlkgICAgICAgICAoVFJDX0hWTV9FTlRSWUVYSVQgKyAw eDAxKQo+ICsjZGVmaW5lIFRSQ19IVk1fVk1FWElUICAgICAgICAgIChUUkNfSFZNX0VOVFJZRVhJ VCArIDB4MDIpCj4gKyNkZWZpbmUgVFJDX0hWTV9WTUVYSVQ2NCAgICAgICAgKFRSQ19IVk1fRU5U UllFWElUICsgVFJDXzY0X0ZMQUcgKyAweDAyKQo+ICsjZGVmaW5lIFRSQ19IVk1fUEZfWEVOICAg ICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDAxKQo+ICsjZGVmaW5lIFRSQ19IVk1fUEZfWEVO NjQgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyBUUkNfNjRfRkxBRyArIDB4MDEpCj4gKyNkZWZp bmUgVFJDX0hWTV9QRl9JTkpFQ1QgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MDIpCj4gKyNk ZWZpbmUgVFJDX0hWTV9QRl9JTkpFQ1Q2NCAgICAgKFRSQ19IVk1fSEFORExFUiArIFRSQ182NF9G TEFHICsgMHgwMikKPiArI2RlZmluZSBUUkNfSFZNX0lOSl9FWEMgICAgICAgICAoVFJDX0hWTV9I QU5ETEVSICsgMHgwMykKPiArI2RlZmluZSBUUkNfSFZNX0lOSl9WSVJRICAgICAgICAoVFJDX0hW TV9IQU5ETEVSICsgMHgwNCkKPiArI2RlZmluZSBUUkNfSFZNX1JFSU5KX1ZJUlEgICAgICAoVFJD X0hWTV9IQU5ETEVSICsgMHgwNSkKPiArI2RlZmluZSBUUkNfSFZNX0lPX1JFQUQgICAgICAgICAo VFJDX0hWTV9IQU5ETEVSICsgMHgwNikKPiArI2RlZmluZSBUUkNfSFZNX0lPX1dSSVRFICAgICAg ICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwNykKPiArI2RlZmluZSBUUkNfSFZNX0NSX1JFQUQgICAg ICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwOCkKPiArI2RlZmluZSBUUkNfSFZNX0NSX1JFQUQ2 NCAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgVFJDXzY0X0ZMQUcgKyAweDA4KQo+ICsjZGVmaW5l IFRSQ19IVk1fQ1JfV1JJVEUgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDA5KQo+ICsjZGVm aW5lIFRSQ19IVk1fQ1JfV1JJVEU2NCAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyBUUkNfNjRfRkxB RyArIDB4MDkpCj4gKyNkZWZpbmUgVFJDX0hWTV9EUl9SRUFEICAgICAgICAgKFRSQ19IVk1fSEFO RExFUiArIDB4MEEpCj4gKyNkZWZpbmUgVFJDX0hWTV9EUl9XUklURSAgICAgICAgKFRSQ19IVk1f SEFORExFUiArIDB4MEIpCj4gKyNkZWZpbmUgVFJDX0hWTV9NU1JfUkVBRCAgICAgICAgKFRSQ19I Vk1fSEFORExFUiArIDB4MEMpCj4gKyNkZWZpbmUgVFJDX0hWTV9NU1JfV1JJVEUgICAgICAgKFRS Q19IVk1fSEFORExFUiArIDB4MEQpCj4gKyNkZWZpbmUgVFJDX0hWTV9DUFVJRCAgICAgICAgICAg KFRSQ19IVk1fSEFORExFUiArIDB4MEUpCj4gKyNkZWZpbmUgVFJDX0hWTV9JTlRSICAgICAgICAg ICAgKFRSQ19IVk1fSEFORExFUiArIDB4MEYpCj4gKyNkZWZpbmUgVFJDX0hWTV9OTUkgICAgICAg ICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTApCj4gKyNkZWZpbmUgVFJDX0hWTV9TTUkgICAg ICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTEpCj4gKyNkZWZpbmUgVFJDX0hWTV9WTU1D QUxMICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTIpCj4gKyNkZWZpbmUgVFJDX0hWTV9I TFQgICAgICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTMpCj4gKyNkZWZpbmUgVFJDX0hW TV9JTlZMUEcgICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTQpCj4gKyNkZWZpbmUgVFJD X0hWTV9JTlZMUEc2NCAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIFRSQ182NF9GTEFHICsgMHgx NCkKPiArI2RlZmluZSBUUkNfSFZNX01DRSAgICAgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsg MHgxNSkKPiArI2RlZmluZSBUUkNfSFZNX0lPUE9SVF9SRUFEICAgICAoVFJDX0hWTV9IQU5ETEVS ICsgMHgxNikKPiArI2RlZmluZSBUUkNfSFZNX0lPTUVNX1JFQUQgICAgICAoVFJDX0hWTV9IQU5E TEVSICsgMHgxNykKPiArI2RlZmluZSBUUkNfSFZNX0NMVFMgICAgICAgICAgICAoVFJDX0hWTV9I QU5ETEVSICsgMHgxOCkKPiArI2RlZmluZSBUUkNfSFZNX0xNU1cgICAgICAgICAgICAoVFJDX0hW TV9IQU5ETEVSICsgMHgxOSkKPiArI2RlZmluZSBUUkNfSFZNX0xNU1c2NCAgICAgICAgICAoVFJD X0hWTV9IQU5ETEVSICsgVFJDXzY0X0ZMQUcgKyAweDE5KQo+ICsjZGVmaW5lIFRSQ19IVk1fUkRU U0MgICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDFhKQo+ICsjZGVmaW5lIFRSQ19IVk1f SU5UUl9XSU5ET1cgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDIwKQo+ICsjZGVmaW5lIFRSQ19I Vk1fTlBGICAgICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDIxKQo+ICsjZGVmaW5lIFRS Q19IVk1fUkVBTE1PREVfRU1VTEFURSAoVFJDX0hWTV9IQU5ETEVSICsgMHgyMikKPiArI2RlZmlu ZSBUUkNfSFZNX1RSQVAgICAgICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MjMpCj4gKyNk ZWZpbmUgVFJDX0hWTV9UUkFQX0RFQlVHICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDI0KQo+ ICsjZGVmaW5lIFRSQ19IVk1fVkxBUElDICAgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgy NSkKPiArCj4gKyNkZWZpbmUgVFJDX0hWTV9JT1BPUlRfV1JJVEUgICAgKFRSQ19IVk1fSEFORExF UiArIDB4MjE2KQo+ICsjZGVmaW5lIFRSQ19IVk1fSU9NRU1fV1JJVEUgICAgIChUUkNfSFZNX0hB TkRMRVIgKyAweDIxNykKPiArCj4gKy8qIHRyYWNlIGV2ZW50cyBmb3IgcGVyIGNsYXNzICovCj4g KyNkZWZpbmUgVFJDX1BNX0ZSRVFfQ0hBTkdFICAgICAgKFRSQ19IV19QTSArIDB4MDEpCj4gKyNk ZWZpbmUgVFJDX1BNX0lETEVfRU5UUlkgICAgICAgKFRSQ19IV19QTSArIDB4MDIpCj4gKyNkZWZp bmUgVFJDX1BNX0lETEVfRVhJVCAgICAgICAgKFRSQ19IV19QTSArIDB4MDMpCj4gKwo+ICsvKiBU cmFjZSBldmVudHMgZm9yIElSUXMgKi8KPiArI2RlZmluZSBUUkNfSFdfSVJRX01PVkVfQ0xFQU5V UF9ERUxBWSAoVFJDX0hXX0lSUSArIDB4MSkKPiArI2RlZmluZSBUUkNfSFdfSVJRX01PVkVfQ0xF QU5VUCAgICAgICAoVFJDX0hXX0lSUSArIDB4MikKPiArI2RlZmluZSBUUkNfSFdfSVJRX0JJTkRf VkVDVE9SICAgICAgICAoVFJDX0hXX0lSUSArIDB4MykKPiArI2RlZmluZSBUUkNfSFdfSVJRX0NM RUFSX1ZFQ1RPUiAgICAgICAoVFJDX0hXX0lSUSArIDB4NCkKPiArI2RlZmluZSBUUkNfSFdfSVJR X01PVkVfRklOSVNIICAgICAgICAoVFJDX0hXX0lSUSArIDB4NSkKPiArI2RlZmluZSBUUkNfSFdf SVJRX0FTU0lHTl9WRUNUT1IgICAgICAoVFJDX0hXX0lSUSArIDB4NikKPiArI2RlZmluZSBUUkNf SFdfSVJRX1VOTUFQUEVEX1ZFQ1RPUiAgICAoVFJDX0hXX0lSUSArIDB4NykKPiArI2RlZmluZSBU UkNfSFdfSVJRX0hBTkRMRUQgICAgICAgICAgICAoVFJDX0hXX0lSUSArIDB4OCkKPiArCj4gKy8q Cj4gKyAqIEV2ZW50IEZsYWdzCj4gKyAqCj4gKyAqIFNvbWUgZXZlbnRzIChlLmcsIFRSQ19QVl9U UkFQIGFuZCBUUkNfSFZNX0lPTUVNX1JFQUQpIGhhdmUgbXVsdGlwbGUKPiArICogcmVjb3JkIGZv cm1hdHMuICBUaGVzZSBldmVudCBmbGFncyBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZQo+ICsgKiBk aWZmZXJlbnQgZm9ybWF0cy4KPiArICovCj4gKyNkZWZpbmUgVFJDXzY0X0ZMQUcgMHgxMDAgLyog QWRkcmVzc2VzIGFyZSA2NCBiaXRzIChpbnN0ZWFkIG9mIDMyIGJpdHMpICovCj4gKwo+ICsvKiBU aGlzIHN0cnVjdHVyZSByZXByZXNlbnRzIGEgc2luZ2xlIHRyYWNlIGJ1ZmZlciByZWNvcmQuICov Cj4gK3N0cnVjdCB0X3JlYyB7Cj4gKyAgICBVSU5UMzIgZXZlbnQ6Mjg7Cj4gKyAgICBVSU5UMzIg ZXh0cmFfdTMyOjM7ICAgICAgICAgLyogIyBlbnRyaWVzIGluIHRyYWlsaW5nIGV4dHJhX3UzMltd IGFycmF5ICovCj4gKyAgICBVSU5UMzIgY3ljbGVzX2luY2x1ZGVkOjE7ICAgLyogdS5jeWNsZXMg b3IgdS5ub19jeWNsZXM/ICovCj4gKyAgICB1bmlvbiB7Cj4gKyAgICAgICAgc3RydWN0IHsKPiAr ICAgICAgICAgICAgVUlOVDMyIGN5Y2xlc19sbywgY3ljbGVzX2hpOyAvKiBjeWNsZSBjb3VudGVy IHRpbWVzdGFtcCAqLwo+ICsgICAgICAgICAgICBVSU5UMzIgZXh0cmFfdTMyWzddOyAgICAgICAg IC8qIGV2ZW50IGRhdGEgaXRlbXMgKi8KPiArICAgICAgICB9IGN5Y2xlczsKPiArICAgICAgICBz dHJ1Y3Qgewo+ICsgICAgICAgICAgICBVSU5UMzIgZXh0cmFfdTMyWzddOyAgICAgICAgIC8qIGV2 ZW50IGRhdGEgaXRlbXMgKi8KPiArICAgICAgICB9IG5vY3ljbGVzOwo+ICsgICAgfSB1Owo+ICt9 Owo+ICsKPiArLyoKPiArICogVGhpcyBzdHJ1Y3R1cmUgY29udGFpbnMgdGhlIG1ldGFkYXRhIGZv ciBhIHNpbmdsZSB0cmFjZSBidWZmZXIuICBUaGUgaGVhZAo+ICsgKiBmaWVsZCwgaW5kZXhlcyBp bnRvIGFuIGFycmF5IG9mIHN0cnVjdCB0X3JlYydzLgo+ICsgKi8KPiArc3RydWN0IHRfYnVmIHsK PiArICAgIC8qIEFzc3VtZSB0aGUgZGF0YSBidWZmZXIgc2l6ZSBpcyBYLiAgWCBpcyBnZW5lcmFs bHkgbm90IGEgcG93ZXIgb2YgMi4KPiArICAgICAqIENPTlMgYW5kIFBST0QgYXJlIGluY3JlbWVu dGVkIG1vZHVsbyAoMipYKToKPiArICAgICAqICAgICAwIDw9IGNvbnMgPCAyKlgKPiArICAgICAq ICAgICAwIDw9IHByb2QgPCAyKlgKPiArICAgICAqIFRoaXMgaXMgZG9uZSBiZWNhdXNlIGFkZGl0 aW9uIG1vZHVsbyBYIGJyZWFrcyBhdCAyXjMyIHdoZW4gWCBpcyBub3QgYQo+ICsgICAgICogcG93 ZXIgb2YgMjoKPiArICAgICAqICAgICAoKCgyXjMyIC0gMSkgJSBYKSArIDEpICUgWCAhPSAoMl4z MikgJSBYCj4gKyAgICAgKi8KPiArICAgIFVJTlQzMiBjb25zOyAgIC8qIE9mZnNldCBvZiBuZXh0 IGl0ZW0gdG8gYmUgY29uc3VtZWQgYnkgY29udHJvbCB0b29scy4gKi8KPiArICAgIFVJTlQzMiBw cm9kOyAgIC8qIE9mZnNldCBvZiBuZXh0IGl0ZW0gdG8gYmUgcHJvZHVjZWQgYnkgWGVuLiAgICAg ICAgICAgKi8KPiArICAgIC8qICBSZWNvcmRzIGZvbGxvdyBpbW1lZGlhdGVseSBhZnRlciB0aGUg bWV0YS1kYXRhIGhlYWRlci4gICAgKi8KPiArfTsKPiArCj4gKy8qIFN0cnVjdHVyZSB1c2VkIHRv IHBhc3MgTUZOcyB0byB0aGUgdHJhY2UgYnVmZmVycyBiYWNrIHRvIHRyYWNlIGNvbnN1bWVycy4K PiArICogT2Zmc2V0IGlzIGFuIG9mZnNldCBpbnRvIHRoZSBtYXBwZWQgc3RydWN0dXJlIHdoZXJl IHRoZSBtZm4gbGlzdCB3aWxsIGJlIGhlbGQuCj4gKyAqIE1GTnMgd2lsbCBiZSBhdCAoKFVJTlRO ICopKHRfaW5mbykpKyh0X2luZm8tPmNwdV9vZmZzZXRbY3B1XSkuCj4gKyAqLwo+ICtzdHJ1Y3Qg dF9pbmZvIHsKPiArICAgIFVJTlQxNiB0YnVmX3NpemU7IC8qIFNpemUgaW4gcGFnZXMgb2YgZWFj aCB0cmFjZSBidWZmZXIgKi8KPiArICAgIFVJTlQxNiBtZm5fb2Zmc2V0W107ICAvKiBPZmZzZXQg d2l0aGluIHRfaW5mbyBzdHJ1Y3R1cmUgb2YgdGhlIHBhZ2UgbGlzdCBwZXIgY3B1ICovCj4gKyAg ICAvKiBNRk4gbGlzdHMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGhlYWRlciAqLwo+ICt9Owo+ICsK PiArI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19UUkFDRV9IX18gKi8KPiArCj4gKy8qCj4gKyAqIExv Y2FsIHZhcmlhYmxlczoKPiArICogbW9kZTogQwo+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCj4g KyAqIGMtYmFzaWMtb2Zmc2V0OiA0Cj4gKyAqIHRhYi13aWR0aDogNAo+ICsgKiBpbmRlbnQtdGFi cy1tb2RlOiBuaWwKPiArICogRW5kOgo+ICsgKi8KPiBkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9JbmNs dWRlL0luZHVzdHJ5U3RhbmRhcmQvWGVuL3hlbi1jb21wYXQuaCBiL092bWZQa2cvSW5jbHVkZS9J bmR1c3RyeVN0YW5kYXJkL1hlbi94ZW4tY29tcGF0LmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ IGluZGV4IDAwMDAwMDAuLjNlYjgwYTAKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvT3ZtZlBrZy9J bmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvWGVuL3hlbi1jb21wYXQuaAo+IEBAIC0wLDAgKzEsNDQg QEAKPiArLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiB4ZW4tY29tcGF0LmgKPiArICogCj4g KyAqIEd1ZXN0IE9TIGludGVyZmFjZSB0byBYZW4uICBDb21wYXRpYmlsaXR5IGxheWVyLgo+ICsg KiAKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv IGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQo+ICsgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPiArICog ZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv dXQgbGltaXRhdGlvbiB0aGUKPiArICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCj4gKyAqIHNlbGwgY29w aWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNv ZnR3YXJlIGlzCj4gKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gKyAqIGFsbCBj b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ICsg KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB TlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQg U0hBTEwgVEhFCj4gKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICog RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVT RSBPUiBPVEhFUgo+ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIENv cHlyaWdodCAoYykgMjAwNiwgQ2hyaXN0aWFuIExpbXBhY2gKPiArICovCj4gKwo+ICsjaWZuZGVm IF9fWEVOX1BVQkxJQ19YRU5fQ09NUEFUX0hfXwo+ICsjZGVmaW5lIF9fWEVOX1BVQkxJQ19YRU5f Q09NUEFUX0hfXwo+ICsKPiArI2RlZmluZSBfX1hFTl9MQVRFU1RfSU5URVJGQUNFX1ZFUlNJT05f XyAweDAwMDQwNDAwCj4gKwo+ICsjaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVO X1RPT0xTX18pCj4gKy8qIFhlbiBpcyBidWlsdCB3aXRoIG1hdGNoaW5nIGhlYWRlcnMgYW5kIGlt cGxlbWVudHMgdGhlIGxhdGVzdCBpbnRlcmZhY2UuICovCj4gKyNkZWZpbmUgX19YRU5fSU5URVJG QUNFX1ZFUlNJT05fXyBfX1hFTl9MQVRFU1RfSU5URVJGQUNFX1ZFUlNJT05fXwo+ICsjZWxpZiAh ZGVmaW5lZChfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fKQo+ICsvKiBHdWVzdHMgd2hpY2ggZG8g bm90IHNwZWNpZnkgYSB2ZXJzaW9uIGdldCB0aGUgbGVnYWN5IGludGVyZmFjZS4gKi8KPiArI2Rl ZmluZSBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDB4MDAwMDAwMDAKPiArI2VuZGlmCj4gKwo+ ICsjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA+IF9fWEVOX0xBVEVTVF9JTlRFUkZBQ0Vf VkVSU0lPTl9fCj4gKyNlcnJvciAiVGhlc2UgaGVhZGVyIGZpbGVzIGRvIG5vdCBzdXBwb3J0IHRo ZSByZXF1ZXN0ZWQgaW50ZXJmYWNlIHZlcnNpb24uIgo+ICsjZW5kaWYKPiArCj4gKyNlbmRpZiAv KiBfX1hFTl9QVUJMSUNfWEVOX0NPTVBBVF9IX18gKi8KPiBkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9J bmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvWGVuL3hlbi5oIGIvT3ZtZlBrZy9JbmNsdWRlL0luZHVz dHJ5U3RhbmRhcmQvWGVuL3hlbi5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAw MDAwLi5lMTlmMzBjCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL092bWZQa2cvSW5jbHVkZS9JbmR1 c3RyeVN0YW5kYXJkL1hlbi94ZW4uaAo+IEBAIC0wLDAgKzEsODk3IEBACj4gKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKPiArICogeGVuLmgKPiArICogCj4gKyAqIEd1ZXN0IE9TIGludGVyZmFjZSB0 byBYZW4uCj4gKyAqIAo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cj4gKyAqIG9mIHRoaXMgc29m dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp LCB0bwo+ICsgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs dWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQo+ICsgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBt b2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKPiAr ICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g d2hvbSB0aGUgU29mdHdhcmUgaXMKPiArICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdo dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4K PiArICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUu Cj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB UlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBC VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsg KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJ TiBOTyBFVkVOVCBTSEFMTCBUSEUKPiArICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBC RSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ICsgKiBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ U0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS RSBPUiBUSEUgVVNFIE9SIE9USEVSCj4gKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiAr ICoKPiArICogQ29weXJpZ2h0IChjKSAyMDA0LCBLIEEgRnJhc2VyCj4gKyAqLwo+ICsKPiArI2lm bmRlZiBfX1hFTl9QVUJMSUNfWEVOX0hfXwo+ICsjZGVmaW5lIF9fWEVOX1BVQkxJQ19YRU5fSF9f Cj4gKwo+ICsjaW5jbHVkZSAieGVuLWNvbXBhdC5oIgo+ICsKPiArI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKPiArI2luY2x1ZGUgImFyY2gteDg2L3hlbi5oIgo+ ICsjZWxpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQgKF9fYWFyY2g2NF9fKQo+ICsjaW5j bHVkZSAiYXJjaC1hcm0uaCIKPiArI2Vsc2UKPiArI2Vycm9yICJVbnN1cHBvcnRlZCBhcmNoaXRl Y3R1cmUiCj4gKyNlbmRpZgo+ICsKPiArI2lmbmRlZiBfX0FTU0VNQkxZX18KPiArLyogR3Vlc3Qg aGFuZGxlcyBmb3IgcHJpbWl0aXZlIEMgdHlwZXMuICovCj4gK0RFRklORV9YRU5fR1VFU1RfSEFO RExFKENIQVI4KTsKPiArLyogX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1Y2hhciwgdW5zaWdu ZWQgY2hhcik7ICovCj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKElOVDMyKTsKPiArX19ERUZJ TkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50LCAgVUlOVDMyKTsKPiArI2lmIF9fWEVOX0lOVEVSRkFD RV9WRVJTSU9OX18gPCAweDAwMDQwMzAwCj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKElOVE4p Owo+ICtfX0RFRklORV9YRU5fR1VFU1RfSEFORExFKHVsb25nLCBVSU5UTik7Cj4gKyNlbmRpZgo+ ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShWT0lEKTsKPiArCj4gK0RFRklORV9YRU5fR1VFU1Rf SEFORExFKFVJTlQ2NCk7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9wZm5fdCk7Cj4g K0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl91bG9uZ190KTsKPiArI2VuZGlmCj4gKwo+ICsv Kgo+ICsgKiBIWVBFUkNBTExTCj4gKyAqLwo+ICsKPiArLyogYGluY29udGVudHMgMTAwIGhjYWxs cyBMaXN0IG9mIGh5cGVyY2FsbHMKPiArICogYCBlbnVtIGh5cGVyY2FsbF9udW0geyAvLyBfX0hZ UEVSVklTT1JfKiA9PiBIWVBFUlZJU09SXyooKQo+ICsgKi8KPiArCj4gKyNkZWZpbmUgX19IWVBF UlZJU09SX3NldF90cmFwX3RhYmxlICAgICAgICAwCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX21t dV91cGRhdGUgICAgICAgICAgICAxCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF9nZHQgICAg ICAgICAgICAgICAyCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3N0YWNrX3N3aXRjaCAgICAgICAg ICAzCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF9jYWxsYmFja3MgICAgICAgICA0Cj4gKyNk ZWZpbmUgX19IWVBFUlZJU09SX2ZwdV90YXNrc3dpdGNoICAgICAgICA1Cj4gKyNkZWZpbmUgX19I WVBFUlZJU09SX3NjaGVkX29wX2NvbXBhdCAgICAgICA2IC8qIGNvbXBhdCBzaW5jZSAweDAwMDMw MTAxICovCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3BsYXRmb3JtX29wICAgICAgICAgICA3Cj4g KyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF9kZWJ1Z3JlZyAgICAgICAgICA4Cj4gKyNkZWZpbmUg X19IWVBFUlZJU09SX2dldF9kZWJ1Z3JlZyAgICAgICAgICA5Cj4gKyNkZWZpbmUgX19IWVBFUlZJ U09SX3VwZGF0ZV9kZXNjcmlwdG9yICAgIDEwCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX21lbW9y eV9vcCAgICAgICAgICAgIDEyCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX211bHRpY2FsbCAgICAg ICAgICAgIDEzCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3VwZGF0ZV92YV9tYXBwaW5nICAgIDE0 Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF90aW1lcl9vcCAgICAgICAgIDE1Cj4gKyNkZWZp bmUgX19IWVBFUlZJU09SX2V2ZW50X2NoYW5uZWxfb3BfY29tcGF0IDE2IC8qIGNvbXBhdCBzaW5j ZSAweDAwMDMwMjAyICovCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3hlbl92ZXJzaW9uICAgICAg ICAgIDE3Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX2NvbnNvbGVfaW8gICAgICAgICAgIDE4Cj4g KyNkZWZpbmUgX19IWVBFUlZJU09SX3BoeXNkZXZfb3BfY29tcGF0ICAgIDE5IC8qIGNvbXBhdCBz aW5jZSAweDAwMDMwMjAyICovCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX2dyYW50X3RhYmxlX29w ICAgICAgIDIwCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3ZtX2Fzc2lzdCAgICAgICAgICAgIDIx Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3VwZGF0ZV92YV9tYXBwaW5nX290aGVyZG9tYWluIDIy Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX2lyZXQgICAgICAgICAgICAgICAgIDIzIC8qIHg4NiBv bmx5ICovCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3ZjcHVfb3AgICAgICAgICAgICAgIDI0Cj4g KyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF9zZWdtZW50X2Jhc2UgICAgIDI1IC8qIHg4Ni82NCBv bmx5ICovCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX21tdWV4dF9vcCAgICAgICAgICAgIDI2Cj4g KyNkZWZpbmUgX19IWVBFUlZJU09SX3hzbV9vcCAgICAgICAgICAgICAgIDI3Cj4gKyNkZWZpbmUg X19IWVBFUlZJU09SX25taV9vcCAgICAgICAgICAgICAgIDI4Cj4gKyNkZWZpbmUgX19IWVBFUlZJ U09SX3NjaGVkX29wICAgICAgICAgICAgIDI5Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX2NhbGxi YWNrX29wICAgICAgICAgIDMwCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3hlbm9wcm9mX29wICAg ICAgICAgIDMxCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX2V2ZW50X2NoYW5uZWxfb3AgICAgIDMy Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3BoeXNkZXZfb3AgICAgICAgICAgIDMzCj4gKyNkZWZp bmUgX19IWVBFUlZJU09SX2h2bV9vcCAgICAgICAgICAgICAgIDM0Cj4gKyNkZWZpbmUgX19IWVBF UlZJU09SX3N5c2N0bCAgICAgICAgICAgICAgIDM1Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX2Rv bWN0bCAgICAgICAgICAgICAgIDM2Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX2tleGVjX29wICAg ICAgICAgICAgIDM3Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3RtZW1fb3AgICAgICAgICAgICAg IDM4Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3hjX3Jlc2VydmVkX29wICAgICAgIDM5IC8qIHJl c2VydmVkIGZvciBYZW5DbGllbnQgKi8KPiArCj4gKy8qIEFyY2hpdGVjdHVyZS1zcGVjaWZpYyBo eXBlcmNhbGwgZGVmaW5pdGlvbnMuICovCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfMCAg ICAgICAgICAgICAgIDQ4Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfMSAgICAgICAgICAg ICAgIDQ5Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfMiAgICAgICAgICAgICAgIDUwCj4g KyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfMyAgICAgICAgICAgICAgIDUxCj4gKyNkZWZpbmUg X19IWVBFUlZJU09SX2FyY2hfNCAgICAgICAgICAgICAgIDUyCj4gKyNkZWZpbmUgX19IWVBFUlZJ U09SX2FyY2hfNSAgICAgICAgICAgICAgIDUzCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hf NiAgICAgICAgICAgICAgIDU0Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfNyAgICAgICAg ICAgICAgIDU1Cj4gKwo+ICsvKiBgIH0gKi8KPiArCj4gKy8qCj4gKyAqIEhZUEVSQ0FMTCBDT01Q QVRJQklMSVRZLgo+ICsgKi8KPiArCj4gKy8qIE5ldyBzY2hlZF9vcCBoeXBlcmNhbGwgaW50cm9k dWNlZCBpbiAweDAwMDMwMTAxLiAqLwo+ICsjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8 IDB4MDAwMzAxMDEKPiArI3VuZGVmIF9fSFlQRVJWSVNPUl9zY2hlZF9vcAo+ICsjZGVmaW5lIF9f SFlQRVJWSVNPUl9zY2hlZF9vcCBfX0hZUEVSVklTT1Jfc2NoZWRfb3BfY29tcGF0Cj4gKyNlbmRp Zgo+ICsKPiArLyogTmV3IGV2ZW50LWNoYW5uZWwgYW5kIHBoeXNkZXYgaHlwZXJjYWxscyBpbnRy b2R1Y2VkIGluIDB4MDAwMzAyMDIuICovCj4gKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9f IDwgMHgwMDAzMDIwMgo+ICsjdW5kZWYgX19IWVBFUlZJU09SX2V2ZW50X2NoYW5uZWxfb3AKPiAr I2RlZmluZSBfX0hZUEVSVklTT1JfZXZlbnRfY2hhbm5lbF9vcCBfX0hZUEVSVklTT1JfZXZlbnRf Y2hhbm5lbF9vcF9jb21wYXQKPiArI3VuZGVmIF9fSFlQRVJWSVNPUl9waHlzZGV2X29wCj4gKyNk ZWZpbmUgX19IWVBFUlZJU09SX3BoeXNkZXZfb3AgX19IWVBFUlZJU09SX3BoeXNkZXZfb3BfY29t cGF0Cj4gKyNlbmRpZgo+ICsKPiArLyogTmV3IHBsYXRmb3JtX29wIGh5cGVyY2FsbCBpbnRyb2R1 Y2VkIGluIDB4MDAwMzAyMDQuICovCj4gKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwg MHgwMDAzMDIwNAo+ICsjZGVmaW5lIF9fSFlQRVJWSVNPUl9kb20wX29wIF9fSFlQRVJWSVNPUl9w bGF0Zm9ybV9vcAo+ICsjZW5kaWYKPiArCj4gKy8qIAo+ICsgKiBWSVJUVUFMIElOVEVSUlVQVFMK PiArICogCj4gKyAqIFZpcnR1YWwgaW50ZXJydXB0cyB0aGF0IGEgZ3Vlc3QgT1MgbWF5IHJlY2Vp dmUgZnJvbSBYZW4uCj4gKyAqIAo+ICsgKiBJbiB0aGUgc2lkZSBjb21tZW50cywgJ1YuJyBkZW5v dGVzIGEgcGVyLVZDUFUgVklSUSB3aGlsZSAnRy4nIGRlbm90ZXMgYQo+ICsgKiBnbG9iYWwgVklS US4gVGhlIGZvcm1lciBjYW4gYmUgYm91bmQgb25jZSBwZXIgVkNQVSBhbmQgY2Fubm90IGJlIHJl LWJvdW5kLgo+ICsgKiBUaGUgbGF0dGVyIGNhbiBiZSBhbGxvY2F0ZWQgb25seSBvbmNlIHBlciBn dWVzdDogdGhleSBtdXN0IGluaXRpYWxseSBiZQo+ICsgKiBhbGxvY2F0ZWQgdG8gVkNQVTAgYnV0 IGNhbiBzdWJzZXF1ZW50bHkgYmUgcmUtYm91bmQuCj4gKyAqLwo+ICsvKiBgIGVudW0gdmlycSB7 ICovCj4gKyNkZWZpbmUgVklSUV9USU1FUiAgICAgIDAgIC8qIFYuIFRpbWViYXNlIHVwZGF0ZSwg YW5kL29yIHJlcXVlc3RlZCB0aW1lb3V0LiAgKi8KPiArI2RlZmluZSBWSVJRX0RFQlVHICAgICAg MSAgLyogVi4gUmVxdWVzdCBndWVzdCB0byBkdW1wIGRlYnVnIGluZm8uICAgICAgICAgICAqLwo+ ICsjZGVmaW5lIFZJUlFfQ09OU09MRSAgICAyICAvKiBHLiAoRE9NMCkgQnl0ZXMgcmVjZWl2ZWQg b24gZW1lcmdlbmN5IGNvbnNvbGUuICovCj4gKyNkZWZpbmUgVklSUV9ET01fRVhDICAgIDMgIC8q IEcuIChET00wKSBFeGNlcHRpb25hbCBldmVudCBmb3Igc29tZSBkb21haW4uICAgKi8KPiArI2Rl ZmluZSBWSVJRX1RCVUYgICAgICAgNCAgLyogRy4gKERPTTApIFRyYWNlIGJ1ZmZlciBoYXMgcmVj b3JkcyBhdmFpbGFibGUuICAqLwo+ICsjZGVmaW5lIFZJUlFfREVCVUdHRVIgICA2ICAvKiBHLiAo RE9NMCkgQSBkb21haW4gaGFzIHBhdXNlZCBmb3IgZGVidWdnaW5nLiAgICovCj4gKyNkZWZpbmUg VklSUV9YRU5PUFJPRiAgIDcgIC8qIFYuIFhlbk9wcm9maWxlIGludGVycnVwdDogbmV3IHNhbXBs ZSBhdmFpbGFibGUgKi8KPiArI2RlZmluZSBWSVJRX0NPTl9SSU5HICAgOCAgLyogRy4gKERPTTAp IEJ5dGVzIHJlY2VpdmVkIG9uIGNvbnNvbGUgICAgICAgICAgICAqLwo+ICsjZGVmaW5lIFZJUlFf UENQVV9TVEFURSA5ICAvKiBHLiAoRE9NMCkgUENQVSBzdGF0ZSBjaGFuZ2VkICAgICAgICAgICAg ICAgICAgICovCj4gKyNkZWZpbmUgVklSUV9NRU1fRVZFTlQgIDEwIC8qIEcuIChET00wKSBBIG1l bW9yeSBldmVudCBoYXMgb2NjdXJlZCAgICAgICAgICAgKi8KPiArI2RlZmluZSBWSVJRX1hDX1JF U0VSVkVEIDExIC8qIEcuIFJlc2VydmVkIGZvciBYZW5DbGllbnQgICAgICAgICAgICAgICAgICAg ICAqLwo+ICsjZGVmaW5lIFZJUlFfRU5PTUVNICAgICAxMiAvKiBHLiAoRE9NMCkgTG93IG9uIGhl YXAgbWVtb3J5ICAgICAgICovCj4gKwo+ICsvKiBBcmNoaXRlY3R1cmUtc3BlY2lmaWMgVklSUSBk ZWZpbml0aW9ucy4gKi8KPiArI2RlZmluZSBWSVJRX0FSQ0hfMCAgICAxNgo+ICsjZGVmaW5lIFZJ UlFfQVJDSF8xICAgIDE3Cj4gKyNkZWZpbmUgVklSUV9BUkNIXzIgICAgMTgKPiArI2RlZmluZSBW SVJRX0FSQ0hfMyAgICAxOQo+ICsjZGVmaW5lIFZJUlFfQVJDSF80ICAgIDIwCj4gKyNkZWZpbmUg VklSUV9BUkNIXzUgICAgMjEKPiArI2RlZmluZSBWSVJRX0FSQ0hfNiAgICAyMgo+ICsjZGVmaW5l IFZJUlFfQVJDSF83ICAgIDIzCj4gKy8qIGAgfSAqLwo+ICsKPiArI2RlZmluZSBOUl9WSVJRUyAg ICAgICAyNAo+ICsKPiArLyoKPiArICogYCBlbnVtIG5lZ19lcnJub3ZhbAo+ICsgKiBgIEhZUEVS VklTT1JfbW11X3VwZGF0ZShjb25zdCBzdHJ1Y3QgbW11X3VwZGF0ZSByZXFzW10sCj4gKyAqIGAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNvdW50LCB1bnNpZ25lZCAqZG9uZV9vdXQs Cj4gKyAqIGAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcmVpZ25kb20pCj4gKyAq IGAKPiArICogQHJlcXMgaXMgYW4gYXJyYXkgb2YgbW11X3VwZGF0ZV90IHN0cnVjdHVyZXMgKChw dHIsIHZhbCkgcGFpcnMpLgo+ICsgKiBAY291bnQgaXMgdGhlIGxlbmd0aCBvZiB0aGUgYWJvdmUg YXJyYXkuCj4gKyAqIEBwZG9uZSBpcyBhbiBvdXRwdXQgcGFyYW1ldGVyIGluZGljYXRpbmcgbnVt YmVyIG9mIGNvbXBsZXRlZCBvcGVyYXRpb25zCj4gKyAqIEBmb3JlaWduZG9tWzE1OjBdOiBGRCwg dGhlIGV4cGVjdGVkIG93bmVyIG9mIGRhdGEgcGFnZXMgcmVmZXJlbmNlZCBpbiB0aGlzCj4gKyAq ICAgICAgICAgICAgICAgICAgICBoeXBlcmNhbGwgaW52b2NhdGlvbi4gQ2FuIGJlIERPTUlEX1NF TEYuCj4gKyAqIEBmb3JlaWduZG9tWzMxOjE2XTogUEZELCB0aGUgZXhwZWN0ZWQgb3duZXIgb2Yg cGFnZXRhYmxlIHBhZ2VzIHJlZmVyZW5jZWQKPiArICogICAgICAgICAgICAgICAgICAgICBpbiB0 aGlzIGh5cGVyY2FsbCBpbnZvY2F0aW9uLiBUaGUgdmFsdWUgb2YgdGhpcyBmaWVsZAo+ICsgKiAg ICAgICAgICAgICAgICAgICAgICh4KSBlbmNvZGVzIHRoZSBQRkQgYXMgZm9sbG93czoKPiArICog ICAgICAgICAgICAgICAgICAgICB4ID09IDAgPT4gUEZEID09IERPTUlEX1NFTEYKPiArICogICAg ICAgICAgICAgICAgICAgICB4ICE9IDAgPT4gUEZEID09IHggLSAxCj4gKyAqIAo+ICsgKiBTdWIt Y29tbWFuZHM6IHB0clsxOjBdIHNwZWNpZmllcyB0aGUgYXBwcm9wcmlhdGUgTU1VXyogY29tbWFu ZC4KPiArICogLS0tLS0tLS0tLS0tLQo+ICsgKiBwdHJbMTowXSA9PSBNTVVfTk9STUFMX1BUX1VQ REFURToKPiArICogVXBkYXRlcyBhbiBlbnRyeSBpbiBhIHBhZ2UgdGFibGUgYmVsb25naW5nIHRv IFBGRC4gSWYgdXBkYXRpbmcgYW4gTDEgdGFibGUsCj4gKyAqIGFuZCB0aGUgbmV3IHRhYmxlIGVu dHJ5IGlzIHZhbGlkL3ByZXNlbnQsIHRoZSBtYXBwZWQgZnJhbWUgbXVzdCBiZWxvbmcgdG8KPiAr ICogRkQuIElmIGF0dGVtcHRpbmcgdG8gbWFwIGFuIEkvTyBwYWdlIHRoZW4gdGhlIGNhbGxlciBh c3N1bWVzIHRoZSBwcml2aWxlZ2UKPiArICogb2YgdGhlIEZELgo+ICsgKiBGRCA9PSBET01JRF9J TzogUGVybWl0IC9vbmx5LyBJL08gbWFwcGluZ3MsIGF0IHRoZSBwcml2IGxldmVsIG9mIHRoZSBj YWxsZXIuCj4gKyAqIEZEID09IERPTUlEX1hFTjogTWFwIHJlc3RyaWN0ZWQgYXJlYXMgb2YgWGVu J3MgaGVhcCBzcGFjZS4KPiArICogcHRyWzoyXSAgLS0gTWFjaGluZSBhZGRyZXNzIG9mIHRoZSBw YWdlLXRhYmxlIGVudHJ5IHRvIG1vZGlmeS4KPiArICogdmFsICAgICAgLS0gVmFsdWUgdG8gd3Jp dGUuCj4gKyAqCj4gKyAqIFRoZXJlIGFsc28gY2VydGFpbiBpbXBsaWNpdCByZXF1aXJlbWVudHMg d2hlbiB1c2luZyB0aGlzIGh5cGVyY2FsbC4gVGhlCj4gKyAqIHBhZ2VzIHRoYXQgbWFrZSB1cCBh IHBhZ2V0YWJsZSBtdXN0IGJlIG1hcHBlZCByZWFkLW9ubHkgaW4gdGhlIGd1ZXN0Lgo+ICsgKiBU aGlzIHByZXZlbnRzIHVuY29udHJvbGxlZCBndWVzdCB1cGRhdGVzIHRvIHRoZSBwYWdldGFibGUu IFhlbiBzdHJpY3RseQo+ICsgKiBlbmZvcmNlcyB0aGlzLCBhbmQgd2lsbCBkaXNhbGxvdyBhbnkg cGFnZXRhYmxlIHVwZGF0ZSB3aGljaCB3aWxsIGVuZCB1cAo+ICsgKiBtYXBwaW5nIHBhZ2V0YWJs ZSBwYWdlIFJXLCBhbmQgd2lsbCBkaXNhbGxvdyB1c2luZyBhbnkgd3JpdGFibGUgcGFnZSBhcyBh Cj4gKyAqIHBhZ2V0YWJsZS4gSW4gcHJhY3RpY2UgaXQgbWVhbnMgdGhhdCB3aGVuIGNvbnN0cnVj dGluZyBhIHBhZ2UgdGFibGUgZm9yIGEKPiArICogcHJvY2VzcywgdGhyZWFkLCBldGMsIHdlIE1V U1QgYmUgdmVyeSBkaWxsaWdpZW50IGluIGZvbGxvd2luZyB0aGVzZSBydWxlczoKPiArICogIDEp LiBTdGFydCB3aXRoIHRvcC1sZXZlbCBwYWdlIChQR0Qgb3IgaW4gWGVuIGxhbmd1YWdlOiBMNCku IEZpbGwgb3V0Cj4gKyAqICAgICAgdGhlIGVudHJpZXMuCj4gKyAqICAyKS4gS2VlcCBvbiBnb2lu ZywgZmlsbGluZyBvdXQgdGhlIHVwcGVyIChQVUQgb3IgTDMpLCBhbmQgbWlkZGxlIChQTUQKPiAr ICogICAgICBvciBMMikuCj4gKyAqICAzKS4gU3RhcnQgZmlsbGluZyBvdXQgdGhlIFBURSB0YWJs ZSAoTDEpIHdpdGggdGhlIFBURSBlbnRyaWVzLiBPbmNlCj4gKyAqICAJZG9uZSwgbWFrZSBzdXJl IHRvIHNldCBlYWNoIG9mIHRob3NlIGVudHJpZXMgdG8gUk8gKHNvIHdyaXRlYWJsZSBiaXQKPiAr ICogIAlpcyB1bnNldCkuIE9uY2UgdGhhdCBoYXMgYmVlbiBjb21wbGV0ZWQsIHNldCB0aGUgUE1E IChMMikgZm9yIHRoaXMKPiArICogIAlQVEUgdGFibGUgYXMgUk8uCj4gKyAqICA0KS4gV2hlbiBj b21wbGV0ZWQgd2l0aCBhbGwgb2YgdGhlIFBNRCAoTDIpIGVudHJpZXMsIGFuZCBhbGwgb2YgdGhl bSBoYXZlCj4gKyAqICAJYmVlbiBzZXQgdG8gUk8sIG1ha2Ugc3VyZSB0byBzZXQgUk8gdGhlIFBV RCAoTDMpLiBEbyB0aGUgc2FtZQo+ICsgKiAgCW9wZXJhdGlvbiBvbiBQR0QgKEw0KSBwYWdldGFi bGUgZW50cmllcyB0aGF0IGhhdmUgYSBQVUQgKEwzKSBlbnRyeS4KPiArICogIDUpLiBOb3cgYmVm b3JlIHlvdSBjYW4gdXNlIHRob3NlIHBhZ2VzIChzbyBzZXR0aW5nIHRoZSBjcjMpLCB5b3UgTVVT VCBhbHNvCj4gKyAqICAgICAgcGluIHRoZW0gc28gdGhhdCB0aGUgaHlwZXJ2aXNvciBjYW4gdmVy aWZ5IHRoZSBlbnRyaWVzLiBUaGlzIGlzIGRvbmUKPiArICogICAgICB2aWEgdGhlIEhZUEVSVklT T1JfbW11ZXh0X29wKE1NVUVYVF9QSU5fTDRfVEFCTEUsIGd1ZXN0IHBoeXNpY2FsIGZyYW1lCj4g KyAqICAgICAgbnVtYmVyIG9mIHRoZSBQR0QgKEw0KSkuIEFuZCB0aGlzIHBvaW50IHRoZSBIWVBF UlZJU09SX21tdWV4dF9vcCgKPiArICogICAgICBNTVVFWFRfTkVXX0JBU0VQVFIsIGd1ZXN0IHBo eXNpY2FsIGZyYW1lIG51bWJlciBvZiB0aGUgUEdEIChMNCkpIGNhbiBiZQo+ICsgKiAgICAgIGlz c3VlZC4KPiArICogRm9yIDMyLWJpdCBndWVzdHMsIHRoZSBMNCBpcyBub3QgdXNlZCAoYXMgdGhl cmUgaXMgbGVzcyBwYWdldGFibGVzKSwgc28KPiArICogaW5zdGVhZCB1c2UgTDMuCj4gKyAqIEF0 IHRoaXMgcG9pbnQgdGhlIHBhZ2V0YWJsZXMgY2FuIGJlIG1vZGlmaWVkIHVzaW5nIHRoZSBNTVVf Tk9STUFMX1BUX1VQREFURQo+ICsgKiBoeXBlcmNhbGwuIEFsc28gaWYgc28gZGVzaXJlZCB0aGUg T1MgY2FuIGFsc28gdHJ5IHRvIHdyaXRlIHRvIHRoZSBQVEUKPiArICogYW5kIGJlIHRyYXBwZWQg YnkgdGhlIGh5cGVydmlzb3IgKGFzIHRoZSBQVEUgZW50cnkgaXMgUk8pLgo+ICsgKgo+ICsgKiBU byBkZWFsbG9jYXRlIHRoZSBwYWdlcywgdGhlIG9wZXJhdGlvbnMgYXJlIHRoZSByZXZlcnNlIG9m IHRoZSBzdGVwcwo+ICsgKiBtZW50aW9uZWQgYWJvdmUuIFRoZSBhcmd1bWVudCBpcyBNTVVFWFRf VU5QSU5fVEFCTEUgZm9yIGFsbCBsZXZlbHMgYW5kIHRoZQo+ICsgKiBwYWdldGFibGUgTVVTVCBu b3QgYmUgaW4gdXNlIChtZWFuaW5nIHRoYXQgdGhlIGNyMyBpcyBub3Qgc2V0IHRvIGl0KS4KPiAr ICogCj4gKyAqIHB0clsxOjBdID09IE1NVV9NQUNIUEhZU19VUERBVEU6Cj4gKyAqIFVwZGF0ZXMg YW4gZW50cnkgaW4gdGhlIG1hY2hpbmUtPnBzZXVkby1waHlzaWNhbCBtYXBwaW5nIHRhYmxlLgo+ ICsgKiBwdHJbOjJdICAtLSBNYWNoaW5lIGFkZHJlc3Mgd2l0aGluIHRoZSBmcmFtZSB3aG9zZSBt YXBwaW5nIHRvIG1vZGlmeS4KPiArICogICAgICAgICAgICAgVGhlIGZyYW1lIG11c3QgYmVsb25n IHRvIHRoZSBGRCwgaWYgb25lIGlzIHNwZWNpZmllZC4KPiArICogdmFsICAgICAgLS0gVmFsdWUg dG8gd3JpdGUgaW50byB0aGUgbWFwcGluZyBlbnRyeS4KPiArICogCj4gKyAqIHB0clsxOjBdID09 IE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQ6Cj4gKyAqIEFzIE1NVV9OT1JNQUxfUFRfVVBEQVRF IGFib3ZlLCBidXQgQS9EIGJpdHMgY3VycmVudGx5IGluIHRoZSBQVEUgYXJlIE9SZWQKPiArICog d2l0aCB0aG9zZSBpbiBAdmFsLgo+ICsgKgo+ICsgKiBAdmFsIGlzIHVzdWFsbHkgdGhlIG1hY2hp bmUgZnJhbWUgbnVtYmVyIGFsb25nIHdpdGggc29tZSBhdHRyaWJ1dGVzLgo+ICsgKiBUaGUgYXR0 cmlidXRlcyBieSBkZWZhdWx0IGZvbGxvdyB0aGUgYXJjaGl0ZWN0dXJlIGRlZmluZWQgYml0cy4g TWVhbmluZyB0aGF0Cj4gKyAqIGlmIHRoaXMgaXMgYSBYODZfNjQgbWFjaGluZSBhbmQgZm91ciBw YWdlIHRhYmxlIGxheW91dCBpcyB1c2VkLCB0aGUgbGF5b3V0Cj4gKyAqIG9mIHZhbCBpczoKPiAr ICogIC0gNjMgaWYgc2V0IG1lYW5zIE5vIGV4ZWN1dGUgKE5YKQo+ICsgKiAgLSA0Ni0xMyB0aGUg bWFjaGluZSBmcmFtZSBudW1iZXIKPiArICogIC0gMTIgYXZhaWxhYmxlIGZvciBndWVzdAo+ICsg KiAgLSAxMSBhdmFpbGFibGUgZm9yIGd1ZXN0Cj4gKyAqICAtIDEwIGF2YWlsYWJsZSBmb3IgZ3Vl c3QKPiArICogIC0gOSBhdmFpbGFibGUgZm9yIGd1ZXN0Cj4gKyAqICAtIDggZ2xvYmFsCj4gKyAq ICAtIDcgUEFUIChQU0UgaXMgZGlzYWJsZWQsIG11c3QgdXNlIGh5cGVyY2FsbCB0byBtYWtlIDRN QiBvciAyTUIgcGFnZXMpCj4gKyAqICAtIDYgZGlydHkKPiArICogIC0gNSBhY2Nlc3NlZAo+ICsg KiAgLSA0IHBhZ2UgY2FjaGVkIGRpc2FibGVkCj4gKyAqICAtIDMgcGFnZSB3cml0ZSB0aHJvdWdo Cj4gKyAqICAtIDIgdXNlcnNwYWNlIGFjY2Vzc2libGUKPiArICogIC0gMSB3cml0ZWFibGUKPiAr ICogIC0gMCBwcmVzZW50Cj4gKyAqCj4gKyAqICBUaGUgb25lIGJpdHMgdGhhdCBkb2VzIG5vdCBm aXQgd2l0aCB0aGUgZGVmYXVsdCBsYXlvdXQgaXMgdGhlIFBBR0VfUFNFCj4gKyAqICBhbHNvIGNh bGxlZCBQQUdFX1BBVCkuIFRoZSBNTVVFWFRfW1VOXU1BUktfU1VQRVIgYXJndW1lbnRzIHRvIHRo ZQo+ICsgKiAgSFlQRVJWSVNPUl9tbXVleHRfb3Agc2VydmUgYXMgbWVjaGFuaXNtIHRvIHNldCBh IHBhZ2V0YWJsZSB0byBiZSA0TUIKPiArICogIChvciAyTUIpIGluc3RlYWQgb2YgdXNpbmcgdGhl IFBBR0VfUFNFIGJpdC4KPiArICoKPiArICogIFRoZSByZWFzb24gdGhhdCB0aGUgUEFHRV9QU0Ug KGJpdCA3KSBpcyBub3QgYmVpbmcgdXRpbGl6ZWQgaXMgZHVlIHRvIFhlbgo+ICsgKiAgdXNpbmcg aXQgYXMgdGhlIFBhZ2UgQXR0cmlidXRlIFRhYmxlIChQQVQpIGJpdCAtIGZvciBkZXRhaWxzIG9u IGl0IHBsZWFzZQo+ICsgKiAgcmVmZXIgdG8gSW50ZWwgU0RNIDEwLjEyLiBUaGUgUEFUIGFsbG93 cyB0byBzZXQgdGhlIGNhY2hpbmcgYXR0cmlidXRlcyBvZgo+ICsgKiAgcGFnZXMgaW5zdGVhZCBv ZiB1c2luZyBNVFJScy4KPiArICoKPiArICogIFRoZSBQQVQgTVNSIGlzIGFzIGZvbGxvd3MgKGl0 IGlzIGEgNjQtYml0IHZhbHVlLCBlYWNoIGVudHJ5IGlzIDggYml0cyk6Cj4gKyAqICAgICAgICAg ICAgICAgICAgICBQQVQ0ICAgICAgICAgICAgICAgICBQQVQwCj4gKyAqICArLS0tLS0rLS0tLS0r LS0tLSstLS0tKy0tLS0rLS0tLS0rLS0tLSstLS0tKwo+ICsgKiAgfCBVQyAgfCBVQy0gfCBXQyB8 IFdCIHwgVUMgfCBVQy0gfCBXQyB8IFdCIHwgIDw9IExpbnV4Cj4gKyAqICArLS0tLS0rLS0tLS0r LS0tLSstLS0tKy0tLS0rLS0tLS0rLS0tLSstLS0tKwo+ICsgKiAgfCBVQyAgfCBVQy0gfCBXVCB8 IFdCIHwgVUMgfCBVQy0gfCBXVCB8IFdCIHwgIDw9IEJJT1MgKGRlZmF1bHQgd2hlbiBtYWNoaW5l IGJvb3RzKQo+ICsgKiAgKy0tLS0tKy0tLS0tKy0tLS0rLS0tLSstLS0tKy0tLS0tKy0tLS0rLS0t LSsKPiArICogIHwgcnN2IHwgcnN2IHwgV1AgfCBXQyB8IFVDIHwgVUMtIHwgV1QgfCBXQiB8ICA8 PSBYZW4KPiArICogICstLS0tLSstLS0tLSstLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tKy0tLS0r Cj4gKyAqCj4gKyAqICBUaGUgbG9va3VwIG9mIHRoaXMgaW5kZXggdGFibGUgdHJhbnNsYXRlcyB0 byBsb29raW5nIHVwCj4gKyAqICBCaXQgNywgQml0IDQsIGFuZCBCaXQgMyBvZiB2YWwgZW50cnk6 Cj4gKyAqCj4gKyAqICBQQVQvUFNFIChiaXQgNykgLi4uIFBDRCAoYml0IDQpIC4uIFBXVCAoYml0 IDMpLgo+ICsgKgo+ICsgKiAgSWYgYWxsIGJpdHMgYXJlIG9mZiwgdGhlbiB3ZSBhcmUgdXNpbmcg UEFUMC4gSWYgYml0IDMgdHVybmVkIG9uLAo+ICsgKiAgdGhlbiB3ZSBhcmUgdXNpbmcgUEFUMSwg aWYgYml0IDMgYW5kIGJpdCA0LCB0aGVuIFBBVDIuLgo+ICsgKgo+ICsgKiAgQXMgeW91IGNhbiBz ZWUsIHRoZSBMaW51eCBQQVQxIHRyYW5zbGF0ZXMgdG8gUEFUNCB1bmRlciBYZW4uIFdoaWNoIG1l YW5zCj4gKyAqICB0aGF0IGlmIGEgZ3Vlc3QgdGhhdCBmb2xsb3dzIExpbnV4J3MgUEFUIHNldHVw IGFuZCB3b3VsZCBsaWtlIHRvIHNldCBXcml0ZQo+ICsgKiAgQ29tYmluZWQgb24gcGFnZXMgaXQg TVVTVCB1c2UgUEFUNCBlbnRyeS4gTWVhbmluZyB0aGF0IEJpdCA3IChQQUdFX1BBVCkgaXMKPiAr ICogIHNldC4gRm9yIGV4YW1wbGUsIHVuZGVyIExpbnV4IGl0IG9ubHkgdXNlcyBQQVQwLCBQQVQx LCBhbmQgUEFUMiBmb3IgdGhlCj4gKyAqICBjYWNoaW5nIGFzOgo+ICsgKgo+ICsgKiAgIFdCID0g bm9uZSAoc28gUEFUMCkKPiArICogICBXQyA9IFBXVCAoYml0IDMgb24pCj4gKyAqICAgVUMgPSBQ V1QgfCBQQ0QgKGJpdCAzIGFuZCA0IGFyZSBvbikuCj4gKyAqCj4gKyAqIFRvIG1ha2UgaXQgd29y ayB3aXRoIFhlbiwgaXQgbmVlZHMgdG8gdHJhbnNsYXRlIHRoZSBXQyBiaXQgYXMgc286Cj4gKyAq Cj4gKyAqICBQV1QgKHNvIGJpdCAzIG9uKSAtLT4gUEFUIChzbyBiaXQgNyBpcyBvbikgYW5kIGNs ZWFyIGJpdCAzCj4gKyAqCj4gKyAqIEFuZCB0byB0cmFuc2xhdGUgYmFjayBpdCB3b3VsZDoKPiAr ICoKPiArICogUEFUIChiaXQgNyBvbikgLS0+IFBXVCAoYml0IDMgb24pIGFuZCBjbGVhciBiaXQg Ny4KPiArICovCj4gKyNkZWZpbmUgTU1VX05PUk1BTF9QVF9VUERBVEUgICAgICAwIC8qIGNoZWNr ZWQgJypwdHIgPSB2YWwnLiBwdHIgaXMgTUEuICAgICAgKi8KPiArI2RlZmluZSBNTVVfTUFDSFBI WVNfVVBEQVRFICAgICAgIDEgLyogcHRyID0gTUEgb2YgZnJhbWUgdG8gbW9kaWZ5IGVudHJ5IGZv ciAqLwo+ICsjZGVmaW5lIE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQgMiAvKiBhdG9taWNhbGx5 OiAqcHRyID0gdmFsIHwgKCpwdHImKEF8RCkpICovCj4gKwo+ICsvKgo+ICsgKiBNTVUgRVhURU5E RUQgT1BFUkFUSU9OUwo+ICsgKgo+ICsgKiBgIGVudW0gbmVnX2Vycm5vdmFsCj4gKyAqIGAgSFlQ RVJWSVNPUl9tbXVleHRfb3AobW11ZXh0X29wX3QgdW9wc1tdLAo+ICsgKiBgICAgICAgICAgICAg ICAgICAgICAgIFVJTlQzMiBjb3VudCwKPiArICogYCAgICAgICAgICAgICAgICAgICAgICBVSU5U MzIgKnBkb25lLAo+ICsgKiBgICAgICAgICAgICAgICAgICAgICAgIFVJTlQzMiBmb3JlaWduZG9t KQo+ICsgKi8KPiArLyogSFlQRVJWSVNPUl9tbXVleHRfb3AoKSBhY2NlcHRzIGEgbGlzdCBvZiBt bXVleHRfb3Agc3RydWN0dXJlcy4KPiArICogQSBmb3JlaWduZG9tIChGRCkgY2FuIGJlIHNwZWNp ZmllZCAob3IgRE9NSURfU0VMRiBmb3Igbm9uZSkuCj4gKyAqIFdoZXJlIHRoZSBGRCBoYXMgc29t ZSBlZmZlY3QsIGl0IGlzIGRlc2NyaWJlZCBiZWxvdy4KPiArICoKPiArICogY21kOiBNTVVFWFRf KFVOKVBJTl8qX1RBQkxFCj4gKyAqIG1mbjogTWFjaGluZSBmcmFtZSBudW1iZXIgdG8gYmUgKHVu KXBpbm5lZCBhcyBhIHAudC4gcGFnZS4KPiArICogICAgICBUaGUgZnJhbWUgbXVzdCBiZWxvbmcg dG8gdGhlIEZELCBpZiBvbmUgaXMgc3BlY2lmaWVkLgo+ICsgKgo+ICsgKiBjbWQ6IE1NVUVYVF9O RVdfQkFTRVBUUgo+ICsgKiBtZm46IE1hY2hpbmUgZnJhbWUgbnVtYmVyIG9mIG5ldyBwYWdlLXRh YmxlIGJhc2UgdG8gaW5zdGFsbCBpbiBNTVUuCj4gKyAqCj4gKyAqIGNtZDogTU1VRVhUX05FV19V U0VSX0JBU0VQVFIgW3g4Ni82NCBvbmx5XQo+ICsgKiBtZm46IE1hY2hpbmUgZnJhbWUgbnVtYmVy IG9mIG5ldyBwYWdlLXRhYmxlIGJhc2UgdG8gaW5zdGFsbCBpbiBNTVUKPiArICogICAgICB3aGVu IGluIHVzZXIgc3BhY2UuCj4gKyAqCj4gKyAqIGNtZDogTU1VRVhUX1RMQl9GTFVTSF9MT0NBTAo+ ICsgKiBObyBhZGRpdGlvbmFsIGFyZ3VtZW50cy4gRmx1c2hlcyBsb2NhbCBUTEIuCj4gKyAqCj4g KyAqIGNtZDogTU1VRVhUX0lOVkxQR19MT0NBTAo+ICsgKiBsaW5lYXJfYWRkcjogTGluZWFyIGFk ZHJlc3MgdG8gYmUgZmx1c2hlZCBmcm9tIHRoZSBsb2NhbCBUTEIuCj4gKyAqCj4gKyAqIGNtZDog TU1VRVhUX1RMQl9GTFVTSF9NVUxUSQo+ICsgKiB2Y3B1bWFzazogUG9pbnRlciB0byBiaXRtYXAg b2YgVkNQVXMgdG8gYmUgZmx1c2hlZC4KPiArICoKPiArICogY21kOiBNTVVFWFRfSU5WTFBHX01V TFRJCj4gKyAqIGxpbmVhcl9hZGRyOiBMaW5lYXIgYWRkcmVzcyB0byBiZSBmbHVzaGVkLgo+ICsg KiB2Y3B1bWFzazogUG9pbnRlciB0byBiaXRtYXAgb2YgVkNQVXMgdG8gYmUgZmx1c2hlZC4KPiAr ICoKPiArICogY21kOiBNTVVFWFRfVExCX0ZMVVNIX0FMTAo+ICsgKiBObyBhZGRpdGlvbmFsIGFy Z3VtZW50cy4gRmx1c2hlcyBhbGwgVkNQVXMnIFRMQnMuCj4gKyAqCj4gKyAqIGNtZDogTU1VRVhU X0lOVkxQR19BTEwKPiArICogbGluZWFyX2FkZHI6IExpbmVhciBhZGRyZXNzIHRvIGJlIGZsdXNo ZWQgZnJvbSBhbGwgVkNQVXMnIFRMQnMuCj4gKyAqCj4gKyAqIGNtZDogTU1VRVhUX0ZMVVNIX0NB Q0hFCj4gKyAqIE5vIGFkZGl0aW9uYWwgYXJndW1lbnRzLiBXcml0ZXMgYmFjayBhbmQgZmx1c2hl cyBjYWNoZSBjb250ZW50cy4KPiArICoKPiArICogY21kOiBNTVVFWFRfRkxVU0hfQ0FDSEVfR0xP QkFMCj4gKyAqIE5vIGFkZGl0aW9uYWwgYXJndW1lbnRzLiBXcml0ZXMgYmFjayBhbmQgZmx1c2hl cyBjYWNoZSBjb250ZW50cwo+ICsgKiBvbiBhbGwgQ1BVcyBpbiB0aGUgc3lzdGVtLgo+ICsgKgo+ ICsgKiBjbWQ6IE1NVUVYVF9TRVRfTERUCj4gKyAqIGxpbmVhcl9hZGRyOiBMaW5lYXIgYWRkcmVz cyBvZiBMRFQgYmFzZSAoTkIuIG11c3QgYmUgcGFnZS1hbGlnbmVkKS4KPiArICogbnJfZW50czog TnVtYmVyIG9mIGVudHJpZXMgaW4gTERULgo+ICsgKgo+ICsgKiBjbWQ6IE1NVUVYVF9DTEVBUl9Q QUdFCj4gKyAqIG1mbjogTWFjaGluZSBmcmFtZSBudW1iZXIgdG8gYmUgY2xlYXJlZC4KPiArICoK PiArICogY21kOiBNTVVFWFRfQ09QWV9QQUdFCj4gKyAqIG1mbjogTWFjaGluZSBmcmFtZSBudW1i ZXIgb2YgdGhlIGRlc3RpbmF0aW9uIHBhZ2UuCj4gKyAqIHNyY19tZm46IE1hY2hpbmUgZnJhbWUg bnVtYmVyIG9mIHRoZSBzb3VyY2UgcGFnZS4KPiArICoKPiArICogY21kOiBNTVVFWFRfW1VOXU1B UktfU1VQRVIKPiArICogbWZuOiBNYWNoaW5lIGZyYW1lIG51bWJlciBvZiBoZWFkIG9mIHN1cGVy cGFnZSB0byBiZSBbdW5dbWFya2VkLgo+ICsgKi8KPiArLyogYCBlbnVtIG1tdWV4dF9jbWQgeyAq Lwo+ICsjZGVmaW5lIE1NVUVYVF9QSU5fTDFfVEFCTEUgICAgICAwCj4gKyNkZWZpbmUgTU1VRVhU X1BJTl9MMl9UQUJMRSAgICAgIDEKPiArI2RlZmluZSBNTVVFWFRfUElOX0wzX1RBQkxFICAgICAg Mgo+ICsjZGVmaW5lIE1NVUVYVF9QSU5fTDRfVEFCTEUgICAgICAzCj4gKyNkZWZpbmUgTU1VRVhU X1VOUElOX1RBQkxFICAgICAgIDQKPiArI2RlZmluZSBNTVVFWFRfTkVXX0JBU0VQVFIgICAgICAg NQo+ICsjZGVmaW5lIE1NVUVYVF9UTEJfRkxVU0hfTE9DQUwgICA2Cj4gKyNkZWZpbmUgTU1VRVhU X0lOVkxQR19MT0NBTCAgICAgIDcKPiArI2RlZmluZSBNTVVFWFRfVExCX0ZMVVNIX01VTFRJICAg OAo+ICsjZGVmaW5lIE1NVUVYVF9JTlZMUEdfTVVMVEkgICAgICA5Cj4gKyNkZWZpbmUgTU1VRVhU X1RMQl9GTFVTSF9BTEwgICAgMTAKPiArI2RlZmluZSBNTVVFWFRfSU5WTFBHX0FMTCAgICAgICAx MQo+ICsjZGVmaW5lIE1NVUVYVF9GTFVTSF9DQUNIRSAgICAgIDEyCj4gKyNkZWZpbmUgTU1VRVhU X1NFVF9MRFQgICAgICAgICAgMTMKPiArI2RlZmluZSBNTVVFWFRfTkVXX1VTRVJfQkFTRVBUUiAx NQo+ICsjZGVmaW5lIE1NVUVYVF9DTEVBUl9QQUdFICAgICAgIDE2Cj4gKyNkZWZpbmUgTU1VRVhU X0NPUFlfUEFHRSAgICAgICAgMTcKPiArI2RlZmluZSBNTVVFWFRfRkxVU0hfQ0FDSEVfR0xPQkFM IDE4Cj4gKyNkZWZpbmUgTU1VRVhUX01BUktfU1VQRVIgICAgICAgMTkKPiArI2RlZmluZSBNTVVF WFRfVU5NQVJLX1NVUEVSICAgICAyMAo+ICsvKiBgIH0gKi8KPiArCj4gKyNpZm5kZWYgX19BU1NF TUJMWV9fCj4gK3N0cnVjdCBtbXVleHRfb3Agewo+ICsgICAgVUlOVDMyIGNtZDsgLyogPT4gZW51 bSBtbXVleHRfY21kICovCj4gKyAgICB1bmlvbiB7Cj4gKyAgICAgICAgLyogW1VOXVBJTl9UQUJM RSwgTkVXX0JBU0VQVFIsIE5FV19VU0VSX0JBU0VQVFIKPiArICAgICAgICAgKiBDTEVBUl9QQUdF LCBDT1BZX1BBR0UsIFtVTl1NQVJLX1NVUEVSICovCj4gKyAgICAgICAgeGVuX3Bmbl90ICAgICBt Zm47Cj4gKyAgICAgICAgLyogSU5WTFBHX0xPQ0FMLCBJTlZMUEdfQUxMLCBTRVRfTERUICovCj4g KyAgICAgICAgVUlOVE4gbGluZWFyX2FkZHI7Cj4gKyAgICB9IGFyZzE7Cj4gKyAgICB1bmlvbiB7 Cj4gKyAgICAgICAgLyogU0VUX0xEVCAqLwo+ICsgICAgICAgIFVJTlQzMiBucl9lbnRzOwo+ICsg ICAgICAgIC8qIFRMQl9GTFVTSF9NVUxUSSwgSU5WTFBHX01VTFRJICovCj4gKyNpZiBfX1hFTl9J TlRFUkZBQ0VfVkVSU0lPTl9fID49IDB4MDAwMzAyMDUKPiArICAgICAgICBYRU5fR1VFU1RfSEFO RExFKGNvbnN0X3ZvaWQpIHZjcHVtYXNrOwo+ICsjZWxzZQo+ICsgICAgICAgIGNvbnN0IFZPSUQg KnZjcHVtYXNrOwo+ICsjZW5kaWYKPiArICAgICAgICAvKiBDT1BZX1BBR0UgKi8KPiArICAgICAg ICB4ZW5fcGZuX3Qgc3JjX21mbjsKPiArICAgIH0gYXJnMjsKPiArfTsKPiArdHlwZWRlZiBzdHJ1 Y3QgbW11ZXh0X29wIG1tdWV4dF9vcF90Owo+ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtbXVl eHRfb3BfdCk7Cj4gKyNlbmRpZgo+ICsKPiArLyoKPiArICogYCBlbnVtIG5lZ19lcnJub3ZhbAo+ ICsgKiBgIEhZUEVSVklTT1JfdXBkYXRlX3ZhX21hcHBpbmcoVUlOVE4gdmEsIHU2NCB2YWwsCj4g KyAqIGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHV2bV9mbGFncyBmbGFncykK PiArICogYAo+ICsgKiBgIGVudW0gbmVnX2Vycm5vdmFsCj4gKyAqIGAgSFlQRVJWSVNPUl91cGRh dGVfdmFfbWFwcGluZ19vdGhlcmRvbWFpbihVSU5UTiB2YSwgdTY0IHZhbCwKPiArICogYCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gdXZtX2ZsYWdzIGZsYWdz LAo+ICsgKiBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWRf dCBkb21pZCkKPiArICogYAo+ICsgKiBgIEB2YTogVGhlIHZpcnR1YWwgYWRkcmVzcyB3aG9zZSBt YXBwaW5nIHdlIHdhbnQgdG8gY2hhbmdlCj4gKyAqIGAgQHZhbDogVGhlIG5ldyBwYWdlIHRhYmxl IGVudHJ5LCBtdXN0IGNvbnRhaW4gYSBtYWNoaW5lIGFkZHJlc3MKPiArICogYCBAZmxhZ3M6IENv bnRyb2wgVExCIGZsdXNoZXMKPiArICovCj4gKy8qIFRoZXNlIGFyZSBwYXNzZWQgYXMgJ2ZsYWdz JyB0byB1cGRhdGVfdmFfbWFwcGluZy4gVGhleSBjYW4gYmUgT1JlZC4gKi8KPiArLyogV2hlbiBz cGVjaWZ5aW5nIFVWTUZfTVVMVEksIGFsc28gT1IgaW4gYSBwb2ludGVyIHRvIGEgQ1BVIGJpdG1h cC4gICAqLwo+ICsvKiBVVk1GX0xPQ0FMIGlzIG1lcmVseSBVVk1GX01VTFRJIHdpdGggYSBOVUxM IGJpdG1hcCBwb2ludGVyLiAgICAgICAgICovCj4gKy8qIGAgZW51bSB1dm1fZmxhZ3MgeyAqLwo+ ICsjZGVmaW5lIFVWTUZfTk9ORSAgICAgICAgICAgICAgICgwVUw8PDApIC8qIE5vIGZsdXNoaW5n IGF0IGFsbC4gICAqLwo+ICsjZGVmaW5lIFVWTUZfVExCX0ZMVVNIICAgICAgICAgICgxVUw8PDAp IC8qIEZsdXNoIGVudGlyZSBUTEIocykuICAqLwo+ICsjZGVmaW5lIFVWTUZfSU5WTFBHICAgICAg ICAgICAgICgyVUw8PDApIC8qIEZsdXNoIG9ubHkgb25lIGVudHJ5LiAqLwo+ICsjZGVmaW5lIFVW TUZfRkxVU0hUWVBFX01BU0sgICAgICgzVUw8PDApCj4gKyNkZWZpbmUgVVZNRl9NVUxUSSAgICAg ICAgICAgICAgKDBVTDw8MikgLyogRmx1c2ggc3Vic2V0IG9mIFRMQnMuICovCj4gKyNkZWZpbmUg VVZNRl9MT0NBTCAgICAgICAgICAgICAgKDBVTDw8MikgLyogRmx1c2ggbG9jYWwgVExCLiAgICAg ICovCj4gKyNkZWZpbmUgVVZNRl9BTEwgICAgICAgICAgICAgICAgKDFVTDw8MikgLyogRmx1c2gg YWxsIFRMQnMuICAgICAgICovCj4gKy8qIGAgfSAqLwo+ICsKPiArLyoKPiArICogQ29tbWFuZHMg dG8gSFlQRVJWSVNPUl9jb25zb2xlX2lvKCkuCj4gKyAqLwo+ICsjZGVmaW5lIENPTlNPTEVJT193 cml0ZSAgICAgICAgIDAKPiArI2RlZmluZSBDT05TT0xFSU9fcmVhZCAgICAgICAgICAxCj4gKwo+ ICsvKgo+ICsgKiBDb21tYW5kcyB0byBIWVBFUlZJU09SX3ZtX2Fzc2lzdCgpLgo+ICsgKi8KPiAr I2RlZmluZSBWTUFTU1RfQ01EX2VuYWJsZSAgICAgICAgICAgICAgICAwCj4gKyNkZWZpbmUgVk1B U1NUX0NNRF9kaXNhYmxlICAgICAgICAgICAgICAgMQo+ICsKPiArLyogeDg2LzMyIGd1ZXN0czog c2ltdWxhdGUgZnVsbCA0R0Igc2VnbWVudCBsaW1pdHMuICovCj4gKyNkZWZpbmUgVk1BU1NUX1RZ UEVfNGdiX3NlZ21lbnRzICAgICAgICAgMAo+ICsKPiArLyogeDg2LzMyIGd1ZXN0czogdHJhcCAo dmVjdG9yIDE1KSB3aGVuZXZlciBhYm92ZSB2bWFzc2lzdCBpcyB1c2VkLiAqLwo+ICsjZGVmaW5l IFZNQVNTVF9UWVBFXzRnYl9zZWdtZW50c19ub3RpZnkgIDEKPiArCj4gKy8qCj4gKyAqIHg4NiBn dWVzdHM6IHN1cHBvcnQgd3JpdGVzIHRvIGJvdHRvbS1sZXZlbCBQVEVzLgo+ICsgKiBOQjEuIFBh Z2UtZGlyZWN0b3J5IGVudHJpZXMgY2Fubm90IGJlIHdyaXR0ZW4uCj4gKyAqIE5CMi4gR3Vlc3Qg bXVzdCBjb250aW51ZSB0byByZW1vdmUgYWxsIHdyaXRhYmxlIG1hcHBpbmdzIG9mIFBURXMuCj4g KyAqLwo+ICsjZGVmaW5lIFZNQVNTVF9UWVBFX3dyaXRhYmxlX3BhZ2V0YWJsZXMgIDIKPiArCj4g Ky8qIHg4Ni9QQUUgZ3Vlc3RzOiBzdXBwb3J0IFBEUFRzIGFib3ZlIDRHQi4gKi8KPiArI2RlZmlu ZSBWTUFTU1RfVFlQRV9wYWVfZXh0ZW5kZWRfY3IzICAgICAzCj4gKwo+ICsjZGVmaW5lIE1BWF9W TUFTU1RfVFlQRSAgICAgICAgICAgICAgICAgIDMKPiArCj4gKyNpZm5kZWYgX19BU1NFTUJMWV9f Cj4gKwo+ICt0eXBlZGVmIFVJTlQxNiBkb21pZF90Owo+ICsKPiArLyogRG9tYWluIGlkcyA+PSBE T01JRF9GSVJTVF9SRVNFUlZFRCBjYW5ub3QgYmUgdXNlZCBmb3Igb3JkaW5hcnkgZG9tYWlucy4g Ki8KPiArI2RlZmluZSBET01JRF9GSVJTVF9SRVNFUlZFRCAoMHg3RkYwVSkKPiArCj4gKy8qIERP TUlEX1NFTEYgaXMgdXNlZCBpbiBjZXJ0YWluIGNvbnRleHRzIHRvIHJlZmVyIHRvIG9uZXNlbGYu ICovCj4gKyNkZWZpbmUgRE9NSURfU0VMRiAoMHg3RkYwVSkKPiArCj4gKy8qCj4gKyAqIERPTUlE X0lPIGlzIHVzZWQgdG8gcmVzdHJpY3QgcGFnZS10YWJsZSB1cGRhdGVzIHRvIG1hcHBpbmcgSS9P IG1lbW9yeS4KPiArICogQWx0aG91Z2ggbm8gRm9yZWlnbiBEb21haW4gbmVlZCBiZSBzcGVjaWZp ZWQgdG8gbWFwIEkvTyBwYWdlcywgRE9NSURfSU8KPiArICogaXMgdXNlZnVsIHRvIGVuc3VyZSB0 aGF0IG5vIG1hcHBpbmdzIHRvIHRoZSBPUydzIG93biBoZWFwIGFyZSBhY2NpZGVudGFsbHkKPiAr ICogaW5zdGFsbGVkLiAoZS5nLiwgaW4gTGludXggdGhpcyBjb3VsZCBjYXVzZSBoYXZvYyBhcyBy ZWZlcmVuY2UgY291bnRzCj4gKyAqIGFyZW4ndCBhZGp1c3RlZCBvbiB0aGUgSS9PLW1hcHBpbmcg Y29kZSBwYXRoKS4KPiArICogVGhpcyBvbmx5IG1ha2VzIHNlbnNlIGluIE1NVUVYVF9TRVRfRk9S RUlHTkRPTSwgYnV0IGluIHRoYXQgY29udGV4dCBjYW4KPiArICogYmUgc3BlY2lmaWVkIGJ5IGFu eSBjYWxsaW5nIGRvbWFpbi4KPiArICovCj4gKyNkZWZpbmUgRE9NSURfSU8gICAoMHg3RkYxVSkK PiArCj4gKy8qCj4gKyAqIERPTUlEX1hFTiBpcyB1c2VkIHRvIGFsbG93IHByaXZpbGVnZWQgZG9t YWlucyB0byBtYXAgcmVzdHJpY3RlZCBwYXJ0cyBvZgo+ICsgKiBYZW4ncyBoZWFwIHNwYWNlIChl LmcuLCB0aGUgbWFjaGluZV90b19waHlzIHRhYmxlKS4KPiArICogVGhpcyBvbmx5IG1ha2VzIHNl bnNlIGluIE1NVUVYVF9TRVRfRk9SRUlHTkRPTSwgYW5kIGlzIG9ubHkgcGVybWl0dGVkIGlmCj4g KyAqIHRoZSBjYWxsZXIgaXMgcHJpdmlsZWdlZC4KPiArICovCj4gKyNkZWZpbmUgRE9NSURfWEVO ICAoMHg3RkYyVSkKPiArCj4gKy8qCj4gKyAqIERPTUlEX0NPVyBpcyB1c2VkIGFzIHRoZSBvd25l ciBvZiBzaGFyYWJsZSBwYWdlcyAqLwo+ICsjZGVmaW5lIERPTUlEX0NPVyAgKDB4N0ZGM1UpCj4g Kwo+ICsvKiBET01JRF9JTlZBTElEIGlzIHVzZWQgdG8gaWRlbnRpZnkgcGFnZXMgd2l0aCB1bmtu b3duIG93bmVyLiAqLwo+ICsjZGVmaW5lIERPTUlEX0lOVkFMSUQgKDB4N0ZGNFUpCj4gKwo+ICsv KiBJZGxlIGRvbWFpbi4gKi8KPiArI2RlZmluZSBET01JRF9JRExFICgweDdGRkZVKQo+ICsKPiAr LyoKPiArICogU2VuZCBhbiBhcnJheSBvZiB0aGVzZSB0byBIWVBFUlZJU09SX21tdV91cGRhdGUo KS4KPiArICogTkIuIFRoZSBmaWVsZHMgYXJlIG5hdHVyYWwgcG9pbnRlci9hZGRyZXNzIHNpemUg Zm9yIHRoaXMgYXJjaGl0ZWN0dXJlLgo+ICsgKi8KPiArc3RydWN0IG1tdV91cGRhdGUgewo+ICsg ICAgVUlOVDY0IHB0cjsgICAgICAgLyogTWFjaGluZSBhZGRyZXNzIG9mIFBURS4gKi8KPiArICAg IFVJTlQ2NCB2YWw7ICAgICAgIC8qIE5ldyBjb250ZW50cyBvZiBQVEUuICAgICovCj4gK307Cj4g K3R5cGVkZWYgc3RydWN0IG1tdV91cGRhdGUgbW11X3VwZGF0ZV90Owo+ICtERUZJTkVfWEVOX0dV RVNUX0hBTkRMRShtbXVfdXBkYXRlX3QpOwo+ICsKPiArLyoKPiArICogYCBlbnVtIG5lZ19lcnJu b3ZhbAo+ICsgKiBgIEhZUEVSVklTT1JfbXVsdGljYWxsKG11bHRpY2FsbF9lbnRyeV90IGNhbGxf bGlzdFtdLAo+ICsgKiBgICAgICAgICAgICAgICAgICAgICAgIFVJTlQzMiBucl9jYWxscyk7Cj4g KyAqCj4gKyAqIE5CLiBUaGUgZmllbGRzIGFyZSBuYXR1cmFsIHJlZ2lzdGVyIHNpemUgZm9yIHRo aXMgYXJjaGl0ZWN0dXJlLgo+ICsgKi8KPiArc3RydWN0IG11bHRpY2FsbF9lbnRyeSB7Cj4gKyAg ICBVSU5UTiBvcCwgcmVzdWx0Owo+ICsgICAgVUlOVE4gYXJnc1s2XTsKPiArfTsKPiArdHlwZWRl ZiBzdHJ1Y3QgbXVsdGljYWxsX2VudHJ5IG11bHRpY2FsbF9lbnRyeV90Owo+ICtERUZJTkVfWEVO X0dVRVNUX0hBTkRMRShtdWx0aWNhbGxfZW50cnlfdCk7Cj4gKwo+ICsjaWYgX19YRU5fSU5URVJG QUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA0MDAKPiArLyoKPiArICogRXZlbnQgY2hhbm5lbCBlbmRw b2ludHMgcGVyIGRvbWFpbiAod2hlbiB1c2luZyB0aGUgMi1sZXZlbCBBQkkpOgo+ICsgKiAgMTAy NCBpZiBhIElOVE4gaXMgMzIgYml0czsgNDA5NiBpZiBhIElOVE4gaXMgNjQgYml0cy4KPiArICov Cj4gKyNkZWZpbmUgTlJfRVZFTlRfQ0hBTk5FTFMgRVZUQ0hOXzJMX05SX0NIQU5ORUxTCj4gKyNl bmRpZgo+ICsKPiArc3RydWN0IHZjcHVfdGltZV9pbmZvIHsKPiArICAgIC8qCj4gKyAgICAgKiBV cGRhdGVzIHRvIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSBwcmVjZWRlZCBhbmQgZm9sbG93ZWQg YnkgYW4KPiArICAgICAqIGluY3JlbWVudCBvZiAndmVyc2lvbicuIFRoZSBndWVzdCBjYW4gdGhl cmVmb3JlIGRldGVjdCB1cGRhdGVzIGJ5Cj4gKyAgICAgKiBsb29raW5nIGZvciBjaGFuZ2VzIHRv ICd2ZXJzaW9uJy4gSWYgdGhlIGxlYXN0LXNpZ25pZmljYW50IGJpdCBvZgo+ICsgICAgICogdGhl IHZlcnNpb24gbnVtYmVyIGlzIHNldCB0aGVuIGFuIHVwZGF0ZSBpcyBpbiBwcm9ncmVzcyBhbmQg dGhlIGd1ZXN0Cj4gKyAgICAgKiBtdXN0IHdhaXQgdG8gcmVhZCBhIGNvbnNpc3RlbnQgc2V0IG9m IHZhbHVlcy4KPiArICAgICAqIFRoZSBjb3JyZWN0IHdheSB0byBpbnRlcmFjdCB3aXRoIHRoZSB2 ZXJzaW9uIG51bWJlciBpcyBzaW1pbGFyIHRvCj4gKyAgICAgKiBMaW51eCdzIHNlcWxvY2s6IHNl ZSB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHJlYWRfc2VxYmVnaW4vcmVhZF9zZXFyZXRyeS4KPiAr ICAgICAqLwo+ICsgICAgVUlOVDMyIHZlcnNpb247Cj4gKyAgICBVSU5UMzIgcGFkMDsKPiArICAg IFVJTlQ2NCB0c2NfdGltZXN0YW1wOyAgIC8qIFRTQyBhdCBsYXN0IHVwZGF0ZSBvZiB0aW1lIHZh bHMuICAqLwo+ICsgICAgVUlOVDY0IHN5c3RlbV90aW1lOyAgICAgLyogVGltZSwgaW4gbmFub3Nl Y3MsIHNpbmNlIGJvb3QuICAgICovCj4gKyAgICAvKgo+ICsgICAgICogQ3VycmVudCBzeXN0ZW0g dGltZToKPiArICAgICAqICAgc3lzdGVtX3RpbWUgKwo+ICsgICAgICogICAoKCgodHNjIC0gdHNj X3RpbWVzdGFtcCkgPDwgdHNjX3NoaWZ0KSAqIHRzY190b19zeXN0ZW1fbXVsKSA+PiAzMikKPiAr ICAgICAqIENQVSBmcmVxdWVuY3kgKEh6KToKPiArICAgICAqICAgKCgxMF45IDw8IDMyKSAvIHRz Y190b19zeXN0ZW1fbXVsKSA+PiB0c2Nfc2hpZnQKPiArICAgICAqLwo+ICsgICAgVUlOVDMyIHRz Y190b19zeXN0ZW1fbXVsOwo+ICsgICAgSU5UOCAgIHRzY19zaGlmdDsKPiArICAgIElOVDggICBw YWQxWzNdOwo+ICt9OyAvKiAzMiBieXRlcyAqLwo+ICt0eXBlZGVmIHN0cnVjdCB2Y3B1X3RpbWVf aW5mbyB2Y3B1X3RpbWVfaW5mb190Owo+ICsKPiArc3RydWN0IHZjcHVfaW5mbyB7Cj4gKyAgICAv Kgo+ICsgICAgICogJ2V2dGNobl91cGNhbGxfcGVuZGluZycgaXMgd3JpdHRlbiBub24temVybyBi eSBYZW4gdG8gaW5kaWNhdGUKPiArICAgICAqIGEgcGVuZGluZyBub3RpZmljYXRpb24gZm9yIGEg cGFydGljdWxhciBWQ1BVLiBJdCBpcyB0aGVuIGNsZWFyZWQgCj4gKyAgICAgKiBieSB0aGUgZ3Vl c3QgT1MgL2JlZm9yZS8gY2hlY2tpbmcgZm9yIHBlbmRpbmcgd29yaywgdGh1cyBhdm9pZGluZwo+ ICsgICAgICogYSBzZXQtYW5kLWNoZWNrIHJhY2UuIE5vdGUgdGhhdCB0aGUgbWFzayBpcyBvbmx5 IGFjY2Vzc2VkIGJ5IFhlbgo+ICsgICAgICogb24gdGhlIENQVSB0aGF0IGlzIGN1cnJlbnRseSBo b3N0aW5nIHRoZSBWQ1BVLiBUaGlzIG1lYW5zIHRoYXQgdGhlCj4gKyAgICAgKiBwZW5kaW5nIGFu ZCBtYXNrIGZsYWdzIGNhbiBiZSB1cGRhdGVkIGJ5IHRoZSBndWVzdCB3aXRob3V0IHNwZWNpYWwK PiArICAgICAqIHN5bmNocm9uaXNhdGlvbiAoaS5lLiwgbm8gbmVlZCBmb3IgdGhlIHg4NiBMT0NL IHByZWZpeCkuCj4gKyAgICAgKiBUaGlzIG1heSBzZWVtIHN1Ym9wdGltYWwgYmVjYXVzZSBpZiB0 aGUgcGVuZGluZyBmbGFnIGlzIHNldCBieQo+ICsgICAgICogYSBkaWZmZXJlbnQgQ1BVIHRoZW4g YW4gSVBJIG1heSBiZSBzY2hlZHVsZWQgZXZlbiB3aGVuIHRoZSBtYXNrCj4gKyAgICAgKiBpcyBz ZXQuIEhvd2V2ZXIsIG5vdGU6Cj4gKyAgICAgKiAgMS4gVGhlIHRhc2sgb2YgJ2ludGVycnVwdCBo b2xkb2ZmJyBpcyBjb3ZlcmVkIGJ5IHRoZSBwZXItZXZlbnQtCj4gKyAgICAgKiAgICAgY2hhbm5l bCBtYXNrIGJpdHMuIEEgJ25vaXN5JyBldmVudCB0aGF0IGlzIGNvbnRpbnVhbGx5IGJlaW5nCj4g KyAgICAgKiAgICAgdHJpZ2dlcmVkIGNhbiBiZSBtYXNrZWQgYXQgc291cmNlIGF0IHRoaXMgdmVy eSBwcmVjaXNlCj4gKyAgICAgKiAgICAgZ3JhbnVsYXJpdHkuCj4gKyAgICAgKiAgMi4gVGhlIG1h aW4gcHVycG9zZSBvZiB0aGUgcGVyLVZDUFUgbWFzayBpcyB0aGVyZWZvcmUgdG8gcmVzdHJpY3QK PiArICAgICAqICAgICByZWVudHJhbnQgZXhlY3V0aW9uOiB3aGV0aGVyIGZvciBjb25jdXJyZW5j eSBjb250cm9sLCBvciB0bwo+ICsgICAgICogICAgIHByZXZlbnQgdW5ib3VuZGVkIHN0YWNrIHVz YWdlLiBXaGF0ZXZlciB0aGUgcHVycG9zZSwgd2UgZXhwZWN0Cj4gKyAgICAgKiAgICAgdGhhdCB0 aGUgbWFzayB3aWxsIGJlIGFzc2VydGVkIG9ubHkgZm9yIHNob3J0IHBlcmlvZHMgYXQgYSB0aW1l LAo+ICsgICAgICogICAgIGFuZCBzbyB0aGUgbGlrZWxpaG9vZCBvZiBhICdzcHVyaW91cycgSVBJ IGlzIHN1aXRhYmx5IHNtYWxsLgo+ICsgICAgICogVGhlIG1hc2sgaXMgcmVhZCBiZWZvcmUgbWFr aW5nIGFuIGV2ZW50IHVwY2FsbCB0byB0aGUgZ3Vlc3Q6IGEKPiArICAgICAqIG5vbi16ZXJvIG1h c2sgdGhlcmVmb3JlIGd1YXJhbnRlZXMgdGhhdCB0aGUgVkNQVSB3aWxsIG5vdCByZWNlaXZlCj4g KyAgICAgKiBhbiB1cGNhbGwgYWN0aXZhdGlvbi4gVGhlIG1hc2sgaXMgY2xlYXJlZCB3aGVuIHRo ZSBWQ1BVIHJlcXVlc3RzCj4gKyAgICAgKiB0byBibG9jazogdGhpcyBhdm9pZHMgd2FrZXVwLXdh aXRpbmcgcmFjZXMuCj4gKyAgICAgKi8KPiArICAgIFVJTlQ4IGV2dGNobl91cGNhbGxfcGVuZGlu ZzsKPiArI2lmZGVmIFhFTl9IQVZFX1BWX1VQQ0FMTF9NQVNLCj4gKyAgICBVSU5UOCBldnRjaG5f dXBjYWxsX21hc2s7Cj4gKyNlbHNlIC8qIFhFTl9IQVZFX1BWX1VQQ0FMTF9NQVNLICovCj4gKyAg ICBVSU5UOCBwYWQwOwo+ICsjZW5kaWYgLyogWEVOX0hBVkVfUFZfVVBDQUxMX01BU0sgKi8KPiAr ICAgIHhlbl91bG9uZ190IGV2dGNobl9wZW5kaW5nX3NlbDsKPiArICAgIHN0cnVjdCBhcmNoX3Zj cHVfaW5mbyBhcmNoOwo+ICsgICAgc3RydWN0IHZjcHVfdGltZV9pbmZvIHRpbWU7Cj4gK307IC8q IDY0IGJ5dGVzICh4ODYpICovCj4gKyNpZm5kZWYgX19YRU5fXwo+ICt0eXBlZGVmIHN0cnVjdCB2 Y3B1X2luZm8gdmNwdV9pbmZvX3Q7Cj4gKyNlbmRpZgo+ICsKPiArLyoKPiArICogYGluY29udGVu dHMgMjAwIHN0YXJ0b2ZkYXlfc2hhcmVkIFN0YXJ0LW9mLWRheSBzaGFyZWQgZGF0YSBzdHJ1Y3R1 cmUKPiArICogWGVuL2tlcm5lbCBzaGFyZWQgZGF0YSAtLSBwb2ludGVyIHByb3ZpZGVkIGluIHN0 YXJ0X2luZm8uCj4gKyAqCj4gKyAqIFRoaXMgc3RydWN0dXJlIGlzIGRlZmluZWQgdG8gYmUgYm90 aCBzbWFsbGVyIHRoYW4gYSBwYWdlLCBhbmQgdGhlCj4gKyAqIG9ubHkgZGF0YSBvbiB0aGUgc2hh cmVkIHBhZ2UsIGJ1dCBtYXkgdmFyeSBpbiBhY3R1YWwgc2l6ZSBldmVuIHdpdGhpbgo+ICsgKiBj b21wYXRpYmxlIFhlbiB2ZXJzaW9uczsgZ3Vlc3RzIHNob3VsZCBub3QgcmVseSBvbiB0aGUgc2l6 ZQo+ICsgKiBvZiB0aGlzIHN0cnVjdHVyZSByZW1haW5pbmcgY29uc3RhbnQuCj4gKyAqLwo+ICtz dHJ1Y3Qgc2hhcmVkX2luZm8gewo+ICsgICAgc3RydWN0IHZjcHVfaW5mbyB2Y3B1X2luZm9bWEVO X0xFR0FDWV9NQVhfVkNQVVNdOwo+ICsKPiArICAgIC8qCj4gKyAgICAgKiBBIGRvbWFpbiBjYW4g Y3JlYXRlICJldmVudCBjaGFubmVscyIgb24gd2hpY2ggaXQgY2FuIHNlbmQgYW5kIHJlY2VpdmUK PiArICAgICAqIGFzeW5jaHJvbm91cyBldmVudCBub3RpZmljYXRpb25zLiBUaGVyZSBhcmUgdGhy ZWUgY2xhc3NlcyBvZiBldmVudCB0aGF0Cj4gKyAgICAgKiBhcmUgZGVsaXZlcmVkIGJ5IHRoaXMg bWVjaGFuaXNtOgo+ICsgICAgICogIDEuIEJpLWRpcmVjdGlvbmFsIGludGVyLSBhbmQgaW50cmEt ZG9tYWluIGNvbm5lY3Rpb25zLiBEb21haW5zIG11c3QKPiArICAgICAqICAgICBhcnJhbmdlIG91 dC1vZi1iYW5kIHRvIHNldCB1cCBhIGNvbm5lY3Rpb24gKHVzdWFsbHkgYnkgYWxsb2NhdGluZwo+ ICsgICAgICogICAgIGFuIHVuYm91bmQgJ2xpc3RlbmVyJyBwb3J0IGFuZCBhdmVydGlzaW5nIHRo YXQgdmlhIGEgc3RvcmFnZSBzZXJ2aWNlCj4gKyAgICAgKiAgICAgc3VjaCBhcyB4ZW5zdG9yZSku Cj4gKyAgICAgKiAgMi4gUGh5c2ljYWwgaW50ZXJydXB0cy4gQSBkb21haW4gd2l0aCBzdWl0YWJs ZSBoYXJkd2FyZS1hY2Nlc3MKPiArICAgICAqICAgICBwcml2aWxlZ2VzIGNhbiBiaW5kIGFuIGV2 ZW50LWNoYW5uZWwgcG9ydCB0byBhIHBoeXNpY2FsIGludGVycnVwdAo+ICsgICAgICogICAgIHNv dXJjZS4KPiArICAgICAqICAzLiBWaXJ0dWFsIGludGVycnVwdHMgKCdldmVudHMnKS4gQSBkb21h aW4gY2FuIGJpbmQgYW4gZXZlbnQtY2hhbm5lbAo+ICsgICAgICogICAgIHBvcnQgdG8gYSB2aXJ0 dWFsIGludGVycnVwdCBzb3VyY2UsIHN1Y2ggYXMgdGhlIHZpcnR1YWwtdGltZXIKPiArICAgICAq ICAgICBkZXZpY2Ugb3IgdGhlIGVtZXJnZW5jeSBjb25zb2xlLgo+ICsgICAgICogCj4gKyAgICAg KiBFdmVudCBjaGFubmVscyBhcmUgYWRkcmVzc2VkIGJ5IGEgInBvcnQgaW5kZXgiLiBFYWNoIGNo YW5uZWwgaXMKPiArICAgICAqIGFzc29jaWF0ZWQgd2l0aCB0d28gYml0cyBvZiBpbmZvcm1hdGlv bjoKPiArICAgICAqICAxLiBQRU5ESU5HIC0tIG5vdGlmaWVzIHRoZSBkb21haW4gdGhhdCB0aGVy ZSBpcyBhIHBlbmRpbmcgbm90aWZpY2F0aW9uCj4gKyAgICAgKiAgICAgdG8gYmUgcHJvY2Vzc2Vk LiBUaGlzIGJpdCBpcyBjbGVhcmVkIGJ5IHRoZSBndWVzdC4KPiArICAgICAqICAyLiBNQVNLIC0t IGlmIHRoaXMgYml0IGlzIGNsZWFyIHRoZW4gYSAwLT4xIHRyYW5zaXRpb24gb2YgUEVORElORwo+ ICsgICAgICogICAgIHdpbGwgY2F1c2UgYW4gYXN5bmNocm9ub3VzIHVwY2FsbCB0byBiZSBzY2hl ZHVsZWQuIFRoaXMgYml0IGlzIG9ubHkKPiArICAgICAqICAgICB1cGRhdGVkIGJ5IHRoZSBndWVz dC4gSXQgaXMgcmVhZC1vbmx5IHdpdGhpbiBYZW4uIElmIGEgY2hhbm5lbAo+ICsgICAgICogICAg IGJlY29tZXMgcGVuZGluZyB3aGlsZSB0aGUgY2hhbm5lbCBpcyBtYXNrZWQgdGhlbiB0aGUgJ2Vk Z2UnIGlzIGxvc3QKPiArICAgICAqICAgICAoaS5lLiwgd2hlbiB0aGUgY2hhbm5lbCBpcyB1bm1h c2tlZCwgdGhlIGd1ZXN0IG11c3QgbWFudWFsbHkgaGFuZGxlCj4gKyAgICAgKiAgICAgcGVuZGlu ZyBub3RpZmljYXRpb25zIGFzIG5vIHVwY2FsbCB3aWxsIGJlIHNjaGVkdWxlZCBieSBYZW4pLgo+ ICsgICAgICogCj4gKyAgICAgKiBUbyBleHBlZGl0ZSBzY2FubmluZyBvZiBwZW5kaW5nIG5vdGlm aWNhdGlvbnMsIGFueSAwLT4xIHBlbmRpbmcKPiArICAgICAqIHRyYW5zaXRpb24gb24gYW4gdW5t YXNrZWQgY2hhbm5lbCBjYXVzZXMgYSBjb3JyZXNwb25kaW5nIGJpdCBpbiBhCj4gKyAgICAgKiBw ZXItdmNwdSBzZWxlY3RvciB3b3JkIHRvIGJlIHNldC4gRWFjaCBiaXQgaW4gdGhlIHNlbGVjdG9y IGNvdmVycyBhCj4gKyAgICAgKiAnQyBJTlROJyBpbiB0aGUgUEVORElORyBiaXRmaWVsZCBhcnJh eS4KPiArICAgICAqLwo+ICsgICAgeGVuX3Vsb25nX3QgZXZ0Y2huX3BlbmRpbmdbc2l6ZW9mKHhl bl91bG9uZ190KSAqIDhdOwo+ICsgICAgeGVuX3Vsb25nX3QgZXZ0Y2huX21hc2tbc2l6ZW9mKHhl bl91bG9uZ190KSAqIDhdOwo+ICsKPiArICAgIC8qCj4gKyAgICAgKiBXYWxsY2xvY2sgdGltZTog dXBkYXRlZCBvbmx5IGJ5IGNvbnRyb2wgc29mdHdhcmUuIEd1ZXN0cyBzaG91bGQgYmFzZQo+ICsg ICAgICogdGhlaXIgZ2V0dGltZW9mZGF5KCkgc3lzY2FsbCBvbiB0aGlzIHdhbGxjbG9jay1iYXNl IHZhbHVlLgo+ICsgICAgICovCj4gKyAgICBVSU5UMzIgd2NfdmVyc2lvbjsgICAgICAvKiBWZXJz aW9uIGNvdW50ZXI6IHNlZSB2Y3B1X3RpbWVfaW5mb190LiAqLwo+ICsgICAgVUlOVDMyIHdjX3Nl YzsgICAgICAgICAgLyogU2VjcyAgMDA6MDA6MDAgVVRDLCBKYW4gMSwgMTk3MC4gICovCj4gKyAg ICBVSU5UMzIgd2NfbnNlYzsgICAgICAgICAvKiBOc2VjcyAwMDowMDowMCBVVEMsIEphbiAxLCAx OTcwLiAgKi8KPiArCj4gKyAgICBzdHJ1Y3QgYXJjaF9zaGFyZWRfaW5mbyBhcmNoOwo+ICsKPiAr fTsKPiArI2lmbmRlZiBfX1hFTl9fCj4gK3R5cGVkZWYgc3RydWN0IHNoYXJlZF9pbmZvIHNoYXJl ZF9pbmZvX3Q7Cj4gKyNlbmRpZgo+ICsKPiArLyoKPiArICogYGluY29udGVudHMgMjAwIHN0YXJ0 b2ZkYXkgU3RhcnQtb2YtZGF5IG1lbW9yeSBsYXlvdXQKPiArICoKPiArICogIDEuIFRoZSBkb21h aW4gaXMgc3RhcnRlZCB3aXRoaW4gY29udGlndW91cyB2aXJ0dWFsLW1lbW9yeSByZWdpb24uCj4g KyAqICAyLiBUaGUgY29udGlndW91cyByZWdpb24gZW5kcyBvbiBhbiBhbGlnbmVkIDRNQiBib3Vu ZGFyeS4KPiArICogIDMuIFRoaXMgdGhlIG9yZGVyIG9mIGJvb3RzdHJhcCBlbGVtZW50cyBpbiB0 aGUgaW5pdGlhbCB2aXJ0dWFsIHJlZ2lvbjoKPiArICogICAgICBhLiByZWxvY2F0ZWQga2VybmVs IGltYWdlCj4gKyAqICAgICAgYi4gaW5pdGlhbCByYW0gZGlzayAgICAgICAgICAgICAgW21vZF9z dGFydCwgbW9kX2xlbl0KPiArICogICAgICBjLiBsaXN0IG9mIGFsbG9jYXRlZCBwYWdlIGZyYW1l cyBbbWZuX2xpc3QsIG5yX3BhZ2VzXQo+ICsgKiAgICAgICAgICh1bmxlc3MgcmVsb2NhdGVkIGR1 ZSB0byBYRU5fRUxGTk9URV9JTklUX1AyTSkKPiArICogICAgICBkLiBzdGFydF9pbmZvX3Qgc3Ry dWN0dXJlICAgICAgICBbcmVnaXN0ZXIgRVNJICh4ODYpXQo+ICsgKiAgICAgIGUuIGJvb3RzdHJh cCBwYWdlIHRhYmxlcyAgICAgICAgIFtwdF9iYXNlIGFuZCBDUjMgKHg4NildCj4gKyAqICAgICAg Zi4gYm9vdHN0cmFwIHN0YWNrICAgICAgICAgICAgICAgW3JlZ2lzdGVyIEVTUCAoeDg2KV0KPiAr ICogIDQuIEJvb3RzdHJhcCBlbGVtZW50cyBhcmUgcGFja2VkIHRvZ2V0aGVyLCBidXQgZWFjaCBp cyA0a0ItYWxpZ25lZC4KPiArICogIDUuIFRoZSBpbml0aWFsIHJhbSBkaXNrIG1heSBiZSBvbWl0 dGVkLgo+ICsgKiAgNi4gVGhlIGxpc3Qgb2YgcGFnZSBmcmFtZXMgZm9ybXMgYSBjb250aWd1b3Vz ICdwc2V1ZG8tcGh5c2ljYWwnIG1lbW9yeQo+ICsgKiAgICAgbGF5b3V0IGZvciB0aGUgZG9tYWlu LiBJbiBwYXJ0aWN1bGFyLCB0aGUgYm9vdHN0cmFwIHZpcnR1YWwtbWVtb3J5Cj4gKyAqICAgICBy ZWdpb24gaXMgYSAxOjEgbWFwcGluZyB0byB0aGUgZmlyc3Qgc2VjdGlvbiBvZiB0aGUgcHNldWRv LXBoeXNpY2FsIG1hcC4KPiArICogIDcuIEFsbCBib290c3RyYXAgZWxlbWVudHMgYXJlIG1hcHBl ZCByZWFkLXdyaXRhYmxlIGZvciB0aGUgZ3Vlc3QgT1MuIFRoZQo+ICsgKiAgICAgb25seSBleGNl cHRpb24gaXMgdGhlIGJvb3RzdHJhcCBwYWdlIHRhYmxlLCB3aGljaCBpcyBtYXBwZWQgcmVhZC1v bmx5Lgo+ICsgKiAgOC4gVGhlcmUgaXMgZ3VhcmFudGVlZCB0byBiZSBhdCBsZWFzdCA1MTJrQiBw YWRkaW5nIGFmdGVyIHRoZSBmaW5hbAo+ICsgKiAgICAgYm9vdHN0cmFwIGVsZW1lbnQuIElmIG5l Y2Vzc2FyeSwgdGhlIGJvb3RzdHJhcCB2aXJ0dWFsIHJlZ2lvbiBpcwo+ICsgKiAgICAgZXh0ZW5k ZWQgYnkgYW4gZXh0cmEgNE1CIHRvIGVuc3VyZSB0aGlzLgo+ICsgKgo+ICsgKiBOb3RlOiBQcmlv ciB0byAyNTgzMzpiYjg1YmJjY2IxYzkuICgieDg2LzMyLW9uLTY0IGFkanVzdCBEb20wIGluaXRp YWwgcGFnZQo+ICsgKiB0YWJsZSBsYXlvdXQiKSBhIGJ1ZyBjYXVzZWQgdGhlIHB0X2Jhc2UgKDMu ZSBhYm92ZSkgYW5kIGNyMyB0byBub3QgcG9pbnQKPiArICogdG8gdGhlIHN0YXJ0IG9mIHRoZSBn dWVzdCBwYWdlIHRhYmxlcyAoaXQgd2FzIG9mZnNldCBieSB0d28gcGFnZXMpLgo+ICsgKiBUaGlz IG9ubHkgbWFuaWZlc3RlZCBpdHNlbGYgb24gMzItb24tNjQgZG9tMCBrZXJuZWxzIGFuZCBub3Qg MzItb24tNjQgZG9tVQo+ICsgKiBvciA2NC1iaXQga2VybmVscyBvZiBhbnkgY29sb3VyLiBUaGUg cGFnZSB0YWJsZXMgZm9yIGEgMzItb24tNjQgZG9tMCBnb3QKPiArICogYWxsb2NhdGVkIGluIHRo ZSBvcmRlcjogJ2ZpcnN0IEwxJywnZmlyc3QgTDInLCAnZmlyc3QgTDMnLCBzbyB0aGUgb2Zmc2V0 Cj4gKyAqIHRvIHRoZSBwYWdlIHRhYmxlIGJhc2UgaXMgYnkgdHdvIHBhZ2VzIGJhY2suIFRoZSBp bml0aWFsIGRvbWFpbiBpZiBpdCBpcwo+ICsgKiAzMi1iaXQgYW5kIHJ1bnMgdW5kZXIgYSA2NC1i aXQgaHlwZXJ2aXNvciBzaG91bGQgX05PVF8gdXNlIHR3byBvZiB0aGUKPiArICogcGFnZXMgcHJl Y2VkaW5nIHB0X2Jhc2UgYW5kIG1hcmsgdGhlbSBhcyByZXNlcnZlZC91bnVzZWQuCj4gKyAqLwo+ ICsjaWZkZWYgWEVOX0hBVkVfUFZfR1VFU1RfRU5UUlkKPiArc3RydWN0IHN0YXJ0X2luZm8gewo+ ICsgICAgLyogVEhFIEZPTExPV0lORyBBUkUgRklMTEVEIElOIEJPVEggT04gSU5JVElBTCBCT09U IEFORCBPTiBSRVNVTUUuICAgICovCj4gKyAgICBDSEFSOCBtYWdpY1szMl07ICAgICAgICAgICAg IC8qICJ4ZW4tPHZlcnNpb24+LTxwbGF0Zm9ybT4iLiAgICAgICAgICAgICovCj4gKyAgICBVSU5U TiBucl9wYWdlczsgICAgIC8qIFRvdGFsIHBhZ2VzIGFsbG9jYXRlZCB0byB0aGlzIGRvbWFpbi4g ICovCj4gKyAgICBVSU5UTiBzaGFyZWRfaW5mbzsgIC8qIE1BQ0hJTkUgYWRkcmVzcyBvZiBzaGFy ZWQgaW5mbyBzdHJ1Y3QuICovCj4gKyAgICBVSU5UMzIgZmxhZ3M7ICAgICAgICAgICAgIC8qIFNJ Rl94eHggZmxhZ3MuICAgICAgICAgICAgICAgICAgICAgICAgICovCj4gKyAgICB4ZW5fcGZuX3Qg c3RvcmVfbWZuOyAgICAgICAgLyogTUFDSElORSBwYWdlIG51bWJlciBvZiBzaGFyZWQgcGFnZS4g ICAgKi8KPiArICAgIFVJTlQzMiBzdG9yZV9ldnRjaG47ICAgICAgLyogRXZlbnQgY2hhbm5lbCBm b3Igc3RvcmUgY29tbXVuaWNhdGlvbi4gKi8KPiArICAgIHVuaW9uIHsKPiArICAgICAgICBzdHJ1 Y3Qgewo+ICsgICAgICAgICAgICB4ZW5fcGZuX3QgbWZuOyAgICAgIC8qIE1BQ0hJTkUgcGFnZSBu dW1iZXIgb2YgY29uc29sZSBwYWdlLiAgICovCj4gKyAgICAgICAgICAgIFVJTlQzMiAgZXZ0Y2hu OyAgIC8qIEV2ZW50IGNoYW5uZWwgZm9yIGNvbnNvbGUgcGFnZS4gICAgICAgICovCj4gKyAgICAg ICAgfSBkb21VOwo+ICsgICAgICAgIHN0cnVjdCB7Cj4gKyAgICAgICAgICAgIFVJTlQzMiBpbmZv X29mZjsgIC8qIE9mZnNldCBvZiBjb25zb2xlX2luZm8gc3RydWN0LiAgICAgICAgICovCj4gKyAg ICAgICAgICAgIFVJTlQzMiBpbmZvX3NpemU7IC8qIFNpemUgb2YgY29uc29sZV9pbmZvIHN0cnVj dCBmcm9tIHN0YXJ0LiovCj4gKyAgICAgICAgfSBkb20wOwo+ICsgICAgfSBjb25zb2xlOwo+ICsg ICAgLyogVEhFIEZPTExPV0lORyBBUkUgT05MWSBGSUxMRUQgSU4gT04gSU5JVElBTCBCT09UIChO T1QgUkVTVU1FKS4gICAgICovCj4gKyAgICBVSU5UTiBwdF9iYXNlOyAgICAgIC8qIFZJUlRVQUwg YWRkcmVzcyBvZiBwYWdlIGRpcmVjdG9yeS4gICAgICovCj4gKyAgICBVSU5UTiBucl9wdF9mcmFt ZXM7IC8qIE51bWJlciBvZiBib290c3RyYXAgcC50LiBmcmFtZXMuICAgICAgICovCj4gKyAgICBV SU5UTiBtZm5fbGlzdDsgICAgIC8qIFZJUlRVQUwgYWRkcmVzcyBvZiBwYWdlLWZyYW1lIGxpc3Qu ICAgICovCj4gKyAgICBVSU5UTiBtb2Rfc3RhcnQ7ICAgIC8qIFZJUlRVQUwgYWRkcmVzcyBvZiBw cmUtbG9hZGVkIG1vZHVsZSAgICovCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogKFBGTiBvZiBwcmUtbG9hZGVkIG1vZHVsZSBpZiAgICAgICAgICAgKi8KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiAgU0lGX01PRF9TVEFSVF9QRk4gc2V0IGluIGZsYWdz KS4gICAgICAqLwo+ICsgICAgVUlOVE4gbW9kX2xlbjsgICAgICAvKiBTaXplIChieXRlcykgb2Yg cHJlLWxvYWRlZCBtb2R1bGUuICAgICAqLwo+ICsjZGVmaW5lIE1BWF9HVUVTVF9DTURMSU5FIDEw MjQKPiArICAgIElOVDggY21kX2xpbmVbTUFYX0dVRVNUX0NNRExJTkVdOwo+ICsgICAgLyogVGhl IHBmbiByYW5nZSBoZXJlIGNvdmVycyBib3RoIHBhZ2UgdGFibGUgYW5kIHAtPm0gdGFibGUgZnJh bWVzLiAgICovCj4gKyAgICBVSU5UTiBmaXJzdF9wMm1fcGZuOy8qIDFzdCBwZm4gZm9ybWluZyBp bml0aWFsIFAtPk0gdGFibGUuICAgICovCj4gKyAgICBVSU5UTiBucl9wMm1fZnJhbWVzOy8qICMg b2YgcGZucyBmb3JtaW5nIGluaXRpYWwgUC0+TSB0YWJsZS4gICovCj4gK307Cj4gK3R5cGVkZWYg c3RydWN0IHN0YXJ0X2luZm8gc3RhcnRfaW5mb190Owo+ICsKPiArLyogTmV3IGNvbnNvbGUgdW5p b24gZm9yIGRvbTAgaW50cm9kdWNlZCBpbiAweDAwMDMwMjAzLiAqLwo+ICsjaWYgX19YRU5fSU5U RVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwMzAyMDMKPiArI2RlZmluZSBjb25zb2xlX21mbiAgICBj b25zb2xlLmRvbVUubWZuCj4gKyNkZWZpbmUgY29uc29sZV9ldnRjaG4gY29uc29sZS5kb21VLmV2 dGNobgo+ICsjZW5kaWYKPiArI2VuZGlmIC8qIFhFTl9IQVZFX1BWX0dVRVNUX0VOVFJZICovCj4g Kwo+ICsvKiBUaGVzZSBmbGFncyBhcmUgcGFzc2VkIGluIHRoZSAnZmxhZ3MnIGZpZWxkIG9mIHN0 YXJ0X2luZm9fdC4gKi8KPiArI2RlZmluZSBTSUZfUFJJVklMRUdFRCAgICAoMTw8MCkgIC8qIElz IHRoZSBkb21haW4gcHJpdmlsZWdlZD8gKi8KPiArI2RlZmluZSBTSUZfSU5JVERPTUFJTiAgICAo MTw8MSkgIC8qIElzIHRoaXMgdGhlIGluaXRpYWwgY29udHJvbCBkb21haW4/ICovCj4gKyNkZWZp bmUgU0lGX01VTFRJQk9PVF9NT0QgKDE8PDIpICAvKiBJcyBtb2Rfc3RhcnQgYSBtdWx0aWJvb3Qg bW9kdWxlPyAqLwo+ICsjZGVmaW5lIFNJRl9NT0RfU1RBUlRfUEZOICgxPDwzKSAgLyogSXMgbW9k X3N0YXJ0IGEgUEZOPyAqLwo+ICsjZGVmaW5lIFNJRl9QTV9NQVNLICAgICAgICgweEZGPDw4KSAv KiByZXNlcnZlIDEgYnl0ZSBmb3IgeGVuLXBtIG9wdGlvbnMgKi8KPiArCj4gKy8qCj4gKyAqIEEg bXVsdGlib290IG1vZHVsZSBpcyBhIHBhY2thZ2UgY29udGFpbmluZyBtb2R1bGVzIHZlcnkgc2lt aWxhciB0byBhCj4gKyAqIG11bHRpYm9vdCBtb2R1bGUgYXJyYXkuIFRoZSBvbmx5IGRpZmZlcmVu Y2VzIGFyZToKPiArICogLSB0aGUgYXJyYXkgb2YgbW9kdWxlIGRlc2NyaXB0b3JzIGlzIGJ5IGNv bnZlbnRpb24gc2ltcGx5IGF0IHRoZSBiZWdpbm5pbmcKPiArICogICBvZiB0aGUgbXVsdGlib290 IG1vZHVsZSwKPiArICogLSBhZGRyZXNzZXMgaW4gdGhlIG1vZHVsZSBkZXNjcmlwdG9ycyBhcmUg YmFzZWQgb24gdGhlIGJlZ2lubmluZyBvZiB0aGUKPiArICogICBtdWx0aWJvb3QgbW9kdWxlLAo+ ICsgKiAtIHRoZSBudW1iZXIgb2YgbW9kdWxlcyBpcyBkZXRlcm1pbmVkIGJ5IGEgdGVybWluYXRp b24gZGVzY3JpcHRvciB0aGF0IGhhcwo+ICsgKiAgIG1vZF9zdGFydCA9PSAwLgo+ICsgKgo+ICsg KiBUaGlzIHBlcm1pdHMgdG8gYm90aCBidWlsZCBpdCBzdGF0aWNhbGx5IGFuZCByZWZlcmVuY2Ug aXQgaW4gYSBjb25maWd1cmF0aW9uCj4gKyAqIGZpbGUsIGFuZCBsZXQgdGhlIFBWIGd1ZXN0IGVh c2lseSByZWJhc2UgdGhlIGFkZHJlc3NlcyB0byB2aXJ0dWFsIGFkZHJlc3Nlcwo+ICsgKiBhbmQg YXQgdGhlIHNhbWUgdGltZSBjb3VudCB0aGUgbnVtYmVyIG9mIG1vZHVsZXMuCj4gKyAqLwo+ICtz dHJ1Y3QgeGVuX211bHRpYm9vdF9tb2RfbGlzdAo+ICt7Cj4gKyAgICAvKiBBZGRyZXNzIG9mIGZp cnN0IGJ5dGUgb2YgdGhlIG1vZHVsZSAqLwo+ICsgICAgVUlOVDMyIG1vZF9zdGFydDsKPiArICAg IC8qIEFkZHJlc3Mgb2YgbGFzdCBieXRlIG9mIHRoZSBtb2R1bGUgKGluY2x1c2l2ZSkgKi8KPiAr ICAgIFVJTlQzMiBtb2RfZW5kOwo+ICsgICAgLyogQWRkcmVzcyBvZiB6ZXJvLXRlcm1pbmF0ZWQg Y29tbWFuZCBsaW5lICovCj4gKyAgICBVSU5UMzIgY21kbGluZTsKPiArICAgIC8qIFVudXNlZCwg bXVzdCBiZSB6ZXJvICovCj4gKyAgICBVSU5UMzIgcGFkOwo+ICt9Owo+ICsvKgo+ICsgKiBgaW5j b250ZW50cyAyMDAgc3RhcnRvZmRheV9kb20wX2NvbnNvbGUgRG9tMF9jb25zb2xlCj4gKyAqCj4g KyAqIFRoZSBjb25zb2xlIHN0cnVjdHVyZSBpbiBzdGFydF9pbmZvLmNvbnNvbGUuZG9tMAo+ICsg Kgo+ICsgKiBUaGlzIHN0cnVjdHVyZSBpbmNsdWRlcyBhIHZhcmlldHkgb2YgaW5mb3JtYXRpb24g cmVxdWlyZWQgdG8KPiArICogaGF2ZSBhIHdvcmtpbmcgVkdBL1ZFU0EgY29uc29sZS4KPiArICov Cj4gK3R5cGVkZWYgc3RydWN0IGRvbTBfdmdhX2NvbnNvbGVfaW5mbyB7Cj4gKyAgICBVSU5UOCB2 aWRlb190eXBlOyAvKiBET00wX1ZHQV9DT05TT0xFXz8/PyAqLwo+ICsjZGVmaW5lIFhFTl9WR0FU WVBFX1RFWFRfTU9ERV8zIDB4MDMKPiArI2RlZmluZSBYRU5fVkdBVFlQRV9WRVNBX0xGQiAgICAw eDIzCj4gKyNkZWZpbmUgWEVOX1ZHQVRZUEVfRUZJX0xGQiAgICAgMHg3MAo+ICsKPiArICAgIHVu aW9uIHsKPiArICAgICAgICBzdHJ1Y3Qgewo+ICsgICAgICAgICAgICAvKiBGb250IGhlaWdodCwg aW4gcGl4ZWxzLiAqLwo+ICsgICAgICAgICAgICBVSU5UMTYgZm9udF9oZWlnaHQ7Cj4gKyAgICAg ICAgICAgIC8qIEN1cnNvciBsb2NhdGlvbiAoY29sdW1uLCByb3cpLiAqLwo+ICsgICAgICAgICAg ICBVSU5UMTYgY3Vyc29yX3gsIGN1cnNvcl95Owo+ICsgICAgICAgICAgICAvKiBOdW1iZXIgb2Yg cm93cyBhbmQgY29sdW1ucyAoZGltZW5zaW9ucyBpbiBjaGFyYWN0ZXJzKS4gKi8KPiArICAgICAg ICAgICAgVUlOVDE2IHJvd3MsIGNvbHVtbnM7Cj4gKyAgICAgICAgfSB0ZXh0X21vZGVfMzsKPiAr Cj4gKyAgICAgICAgc3RydWN0IHsKPiArICAgICAgICAgICAgLyogV2lkdGggYW5kIGhlaWdodCwg aW4gcGl4ZWxzLiAqLwo+ICsgICAgICAgICAgICBVSU5UMTYgd2lkdGgsIGhlaWdodDsKPiArICAg ICAgICAgICAgLyogQnl0ZXMgcGVyIHNjYW4gbGluZS4gKi8KPiArICAgICAgICAgICAgVUlOVDE2 IGJ5dGVzX3Blcl9saW5lOwo+ICsgICAgICAgICAgICAvKiBCaXRzIHBlciBwaXhlbC4gKi8KPiAr ICAgICAgICAgICAgVUlOVDE2IGJpdHNfcGVyX3BpeGVsOwo+ICsgICAgICAgICAgICAvKiBMRkIg cGh5c2ljYWwgYWRkcmVzcywgYW5kIHNpemUgKGluIHVuaXRzIG9mIDY0a0IpLiAqLwo+ICsgICAg ICAgICAgICBVSU5UMzIgbGZiX2Jhc2U7Cj4gKyAgICAgICAgICAgIFVJTlQzMiBsZmJfc2l6ZTsK PiArICAgICAgICAgICAgLyogUkdCIG1hc2sgb2Zmc2V0cyBhbmQgc2l6ZXMsIGFzIGRlZmluZWQg YnkgVkJFIDEuMisgKi8KPiArICAgICAgICAgICAgVUlOVDggIHJlZF9wb3MsIHJlZF9zaXplOwo+ ICsgICAgICAgICAgICBVSU5UOCAgZ3JlZW5fcG9zLCBncmVlbl9zaXplOwo+ICsgICAgICAgICAg ICBVSU5UOCAgYmx1ZV9wb3MsIGJsdWVfc2l6ZTsKPiArICAgICAgICAgICAgVUlOVDggIHJzdmRf cG9zLCByc3ZkX3NpemU7Cj4gKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fID49IDB4MDAw MzAyMDYKPiArICAgICAgICAgICAgLyogVkVTQSBjYXBhYmlsaXRpZXMgKG9mZnNldCAweGEsIFZF U0EgY29tbWFuZCAweDRmMDApLiAqLwo+ICsgICAgICAgICAgICBVSU5UMzIgZ2JsX2NhcHM7Cj4g KyAgICAgICAgICAgIC8qIE1vZGUgYXR0cmlidXRlcyAob2Zmc2V0IDB4MCwgVkVTQSBjb21tYW5k IDB4NGYwMSkuICovCj4gKyAgICAgICAgICAgIFVJTlQxNiBtb2RlX2F0dHJzOwo+ICsjZW5kaWYK PiArICAgICAgICB9IHZlc2FfbGZiOwo+ICsgICAgfSB1Owo+ICt9IGRvbTBfdmdhX2NvbnNvbGVf aW5mb190Owo+ICsjZGVmaW5lIHhlbl92Z2FfY29uc29sZV9pbmZvIGRvbTBfdmdhX2NvbnNvbGVf aW5mbwo+ICsjZGVmaW5lIHhlbl92Z2FfY29uc29sZV9pbmZvX3QgZG9tMF92Z2FfY29uc29sZV9p bmZvX3QKPiArCj4gK3R5cGVkZWYgVUlOVDggeGVuX2RvbWFpbl9oYW5kbGVfdFsxNl07Cj4gKwo+ ICsvKiBUdXJuIGEgcGxhaW4gbnVtYmVyIGludG8gYSBDIFVJTlROIGNvbnN0YW50LiAqLwo+ICsj ZGVmaW5lIF9fbWtfdW5zaWduZWRfbG9uZyh4KSB4ICMjIFVMCj4gKyNkZWZpbmUgbWtfdW5zaWdu ZWRfbG9uZyh4KSBfX21rX3Vuc2lnbmVkX2xvbmcoeCkKPiArCj4gK19fREVGSU5FX1hFTl9HVUVT VF9IQU5ETEUodWludDgsICBVSU5UOCk7Cj4gK19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWlu dDE2LCBVSU5UMTYpOwo+ICtfX0RFRklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQzMiwgVUlOVDMy KTsKPiArX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50NjQsIFVJTlQ2NCk7Cj4gKwo+ICsj ZWxzZSAvKiBfX0FTU0VNQkxZX18gKi8KPiArCj4gKy8qIEluIGFzc2VtYmx5IGNvZGUgd2UgY2Fu bm90IHVzZSBDIG51bWVyaWMgY29uc3RhbnQgc3VmZml4ZXMuICovCj4gKyNkZWZpbmUgbWtfdW5z aWduZWRfbG9uZyh4KSB4Cj4gKwo+ICsjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLwo+ICsKPiAr LyogRGVmYXVsdCBkZWZpbml0aW9ucyBmb3IgbWFjcm9zIHVzZWQgYnkgZG9tY3RsL3N5c2N0bC4g Ki8KPiArI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQo+ICsK PiArI2lmbmRlZiB1aW50NjRfYWxpZ25lZF90Cj4gKyNkZWZpbmUgdWludDY0X2FsaWduZWRfdCBV SU5UNjQKPiArI2VuZGlmCj4gKyNpZm5kZWYgWEVOX0dVRVNUX0hBTkRMRV82NAo+ICsjZGVmaW5l IFhFTl9HVUVTVF9IQU5ETEVfNjQobmFtZSkgWEVOX0dVRVNUX0hBTkRMRShuYW1lKQo+ICsjZW5k aWYKPiArCj4gKyNpZm5kZWYgX19BU1NFTUJMWV9fCj4gK3N0cnVjdCB4ZW5jdGxfYml0bWFwIHsK PiArICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDgpIGJpdG1hcDsKPiArICAgIFVJTlQzMiBu cl9iaXRzOwo+ICt9Owo+ICsjZW5kaWYKPiArCj4gKyNlbmRpZiAvKiBkZWZpbmVkKF9fWEVOX18p IHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykgKi8KPiArCj4gKyNlbmRpZiAvKiBfX1hFTl9QVUJM SUNfWEVOX0hfXyAqLwo+ICsKPiArLyoKPiArICogTG9jYWwgdmFyaWFibGVzOgo+ICsgKiBtb2Rl OiBDCj4gKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKPiArICogYy1iYXNpYy1vZmZzZXQ6IDQKPiAr ICogdGFiLXdpZHRoOiA0Cj4gKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAo+ICsgKiBFbmQ6Cj4g KyAqLwo+IC0tIAo+IEFudGhvbnkgUEVSQVJECj4gCj4gCj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiBYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Cj4gWGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKPiBodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==