From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750985AbVKIOTq (ORCPT ); Wed, 9 Nov 2005 09:19:46 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750961AbVKIOTh (ORCPT ); Wed, 9 Nov 2005 09:19:37 -0500 Received: from public.id2-vpn.continvity.gns.novell.com ([195.33.99.129]:7474 "EHLO emea1-mh.id2.novell.com") by vger.kernel.org with ESMTP id S1750866AbVKIOTP (ORCPT ); Wed, 9 Nov 2005 09:19:15 -0500 Message-Id: <437213AB.76F0.0078.0@novell.com> X-Mailer: Novell GroupWise Internet Agent 7.0 Date: Wed, 09 Nov 2005 15:20:11 +0100 From: "Jan Beulich" To: Subject: [PATCH 24/39] NLKD/i386 - core References: <43720DAE.76F0.0078.0@novell.com> <43720E2E.76F0.0078.0@novell.com> <43720E72.76F0.0078.0@novell.com> <43720EAF.76F0.0078.0@novell.com> <43720F5E.76F0.0078.0@novell.com> <43720F95.76F0.0078.0@novell.com> <43720FBA.76F0.0078.0@novell.com> <43720FF6.76F0.0078.0@novell.com> <43721024.76F0.0078.0@novell.com> <4372105B.76F0.0078.0@novell.com> <43721119.76F0.0078.0@novell.com> <43721142.76F0.0078.0@novell.com> <43721184.76F0.0078.0@novell.com> <4372135F.76F0.0078.0@novell.com> <4372138D.76F0.0078.0@novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__PartD7F5EB8B.0__=" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This is a MIME message. If you are reading this text, you may want to consider changing to a mail reader or gateway that understands how to properly handle MIME multipart messages. --=__PartD7F5EB8B.0__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline The core i386 NLKD additions. Signed-Off-By: Jan Beulich (actual patch attached) --=__PartD7F5EB8B.0__= Content-Type: application/octet-stream; name="nlkd-i386.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="nlkd-i386.patch" VGhlIGNvcmUgaTM4NiBOTEtEIGFkZGl0aW9ucy4KClNpZ25lZC1PZmYtQnk6IEphbiBCZXVsaWNo IDxqYmV1bGljaEBub3ZlbGwuY29tPgoKSW5kZXg6IDIuNi4xNC1ubGtkL2FyY2gvaTM4Ni9LY29u ZmlnLmRlYnVnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIDIuNi4xNC1ubGtkLm9yaWcvYXJjaC9pMzg2L0tjb25m aWcuZGVidWcJMjAwNS0xMS0wOSAxMToxMjo0MC4wMDAwMDAwMDAgKzAxMDAKKysrIDIuNi4xNC1u bGtkL2FyY2gvaTM4Ni9LY29uZmlnLmRlYnVnCTIwMDUtMTEtMDQgMTY6MTk6MzIuMDAwMDAwMDAw ICswMTAwCkBAIC0xLDYgKzEsNyBAQAogbWVudSAiS2VybmVsIGhhY2tpbmciCiAKIHNvdXJjZSAi bGliL0tjb25maWcuZGVidWciCitzb3VyY2UgImRlYnVnL0tjb25maWciCiAKIGNvbmZpZyBFQVJM WV9QUklOVEsKIAlib29sICJFYXJseSBwcmludGsiIGlmIEVNQkVEREVEICYmIERFQlVHX0tFUk5F TApJbmRleDogMi42LjE0LW5sa2QvYXJjaC9pMzg2L2tlcm5lbC9hc20tb2Zmc2V0cy5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIDIuNi4xNC1ubGtkLm9yaWcvYXJjaC9pMzg2L2tlcm5lbC9hc20tb2Zmc2V0cy5j CTIwMDUtMTEtMDkgMTE6MTI6NDAuMDAwMDAwMDAwICswMTAwCisrKyAyLjYuMTQtbmxrZC9hcmNo L2kzODYva2VybmVsL2FzbS1vZmZzZXRzLmMJMjAwNS0xMS0wNCAxNjoxOTozMi4wMDAwMDAwMDAg KzAxMDAKQEAgLTQsNiArNCw3IEBACiAgKiB0byBleHRyYWN0IGFuZCBmb3JtYXQgdGhlIHJlcXVp cmVkIGRhdGEuCiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgogI2luY2x1ZGUgPGxp bnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvc2lnbmFsLmg+CiAjaW5jbHVkZSA8bGludXgv cGVyc29uYWxpdHkuaD4KQEAgLTEzLDYgKzE0LDEzIEBACiAjaW5jbHVkZSA8YXNtL2ZpeG1hcC5o PgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNpbmNsdWRlIDxhc20vdGhyZWFkX2luZm8u aD4KKyNpZmRlZiBDT05GSUdfTkxLRAorIyBpbmNsdWRlIDxhc20vZnRhLWZyYW1lLmg+CisjIGlu Y2x1ZGUgPGFzbS9mdGEtdHlwZS5oPgorI2VuZGlmCisjaWYgZGVmaW5lZChDT05GSUdfQ0RFKSB8 fCBkZWZpbmVkKENPTkZJR19DREVfTU9EVUxFKQorIyBpbmNsdWRlIDwuLi9kZWJ1Zy9ubGtkL2Nk ZWxvY2suaD4KKyNlbmRpZgogCiAjZGVmaW5lIERFRklORShzeW0sIHZhbCkgXAogICAgICAgICBh c20gdm9sYXRpbGUoIlxuLT4iICNzeW0gIiAlMCAiICN2YWwgOiA6ICJpIiAodmFsKSkKQEAgLTcw LDQgKzc4LDg4IEBAIHZvaWQgZm9vKHZvaWQpCiAJREVGSU5FKFBBR0VfU0laRV9hc20sIFBBR0Vf U0laRSk7CiAJREVGSU5FKFRIUkVBRF9TSVpFX2FzbSwgVEhSRUFEX1NJWkUpOwogCURFRklORShW U1lTQ0FMTF9CQVNFLCBfX2ZpeF90b192aXJ0KEZJWF9WU1lTQ0FMTCkpOworCisjaWZkZWYgQ09O RklHX05MS0QKKwlCTEFOSygpOworIyBkZWZpbmUgVFNTX0RFRihmKSBERUZJTkUoVFNTXyMjZiwg b2Zmc2V0b2YgKHN0cnVjdCB0c3Nfc3RydWN0LCBmKSkKKwlUU1NfREVGKGJhY2tfbGluayk7CisJ VFNTX0RFRihlc3AwKTsKKwlUU1NfREVGKHNzMCk7CisJVFNTX0RFRihlc3AxKTsKKwlUU1NfREVG KHNzMSk7CisJVFNTX0RFRihlc3AyKTsKKwlUU1NfREVGKHNzMik7CisJVFNTX0RFRihfX2NyMyk7 CisJVFNTX0RFRihlaXApOworCVRTU19ERUYoZWZsYWdzKTsKKwlUU1NfREVGKGVheCk7CisJVFNT X0RFRihlY3gpOworCVRTU19ERUYoZWR4KTsKKwlUU1NfREVGKGVieCk7CisJVFNTX0RFRihlc3Ap OworCVRTU19ERUYoZWJwKTsKKwlUU1NfREVGKGVzaSk7CisJVFNTX0RFRihlZGkpOworCVRTU19E RUYoZXMpOworCVRTU19ERUYoY3MpOworCVRTU19ERUYoc3MpOworCVRTU19ERUYoZHMpOworCVRT U19ERUYoZnMpOworCVRTU19ERUYoZ3MpOworCVRTU19ERUYobGR0KTsKKyMgdW5kZWYgVFNTX0RF RgorCisJQkxBTksoKTsKKyMgZGVmaW5lIEZSQU1FX1RZUEUodCkgREVGSU5FKElBMzJfIyN0LCBJ QTMyXyMjdCkKKwlGUkFNRV9UWVBFKERJVklERV9FUlJPUik7CisJRlJBTUVfVFlQRShERUJVRyk7 CisJRlJBTUVfVFlQRShOTUkpOworCUZSQU1FX1RZUEUoQlJFQUtQT0lOVCk7CisJRlJBTUVfVFlQ RShPVkVSRkxPVyk7CisJRlJBTUVfVFlQRShCT1VORFNfQ0hFQ0spOworCUZSQU1FX1RZUEUoSUxM RUdBTF9PUENPREUpOworCUZSQU1FX1RZUEUoREVWSUNFX05PVF9BVkFJTEFCTEUpOworCUZSQU1F X1RZUEUoRE9VQkxFX0ZBVUxUKTsKKwlGUkFNRV9UWVBFKENPUFJPQ0VTU09SX1NFR01FTlRfT1ZF UlJVTik7CisJRlJBTUVfVFlQRShJTlZBTElEX1RTUyk7CisJRlJBTUVfVFlQRShTRUdNRU5UX05P VF9QUkVTRU5UKTsKKwlGUkFNRV9UWVBFKFNUQUNLX0ZBVUxUKTsKKwlGUkFNRV9UWVBFKEdFTkVS QUxfUFJPVEVDVElPTl9GQVVMVCk7CisJRlJBTUVfVFlQRShQQUdFX0ZBVUxUKTsKKwlGUkFNRV9U WVBFKEZQX0VSUk9SKTsKKwlGUkFNRV9UWVBFKEFMSUdOTUVOVF9DSEVDSyk7CisJRlJBTUVfVFlQ RShNQUNISU5FX0NIRUNLKTsKKwlGUkFNRV9UWVBFKFNJTURfRlBfRVJST1IpOworIyB1bmRlZiBG UkFNRV9UWVBFCisJQkxBTksoKTsKKyMgZGVmaW5lIEZSQU1FX0RFRihmKSBERUZJTkUoRlJBTUVf IyNmLCBvZmZzZXRvZiAoc3RydWN0IGZ0YUludGVycnVwdGlvbkN0eF9zLCBmKSkKKwlGUkFNRV9E RUYodHlwZSk7CisJRlJBTUVfREVGKHN1Yl90eXBlKTsKKwlGUkFNRV9ERUYoc3RhdGUpOworCUZS QU1FX0RFRihlc3ApOworCUZSQU1FX0RFRihzcyk7CisJRlJBTUVfREVGKGZzKTsKKwlGUkFNRV9E RUYoZ3MpOworCUZSQU1FX0RFRihsZHRyKTsKKwlGUkFNRV9ERUYodHIpOworCUZSQU1FX0RFRihj cjApOworCUZSQU1FX0RFRihjcjIpOworCUZSQU1FX0RFRihjcjMpOworCUZSQU1FX0RFRihjcjQp OworCUZSQU1FX0RFRihkcjcpOworCUZSQU1FX0RFRihkZWJ1Z0N0bCk7CisJRlJBTUVfREVGKGVj KTsKKwlGUkFNRV9ERUYocHRfcmVncyk7CisJRlJBTUVfREVGKGZwX21teF94bW0pOworIyB1bmRl ZiBGUkFNRV9ERUYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChDT05GSUdfQ0RFKSB8fCBkZWZpbmVk KENPTkZJR19DREVfTU9EVUxFKQorCUJMQU5LKCk7CisJREVGSU5FKENERVNQSU5MT0NLX3NpZ25h dHVyZSwgb2Zmc2V0b2YgKGNkZVNwaW5Mb2NrX3QsIGNkZVNwaW5Mb2NrU2lnbmF0dXJlKSk7CisJ REVGSU5FKENERVNQSU5MT0NLX2NwdSwgICAgICAgb2Zmc2V0b2YgKGNkZVNwaW5Mb2NrX3QsIGNk ZVNwaW5Mb2NrQ3B1KSk7CisJREVGSU5FKENERV9WQUxJRF9TUElOTE9DS19TSUdOQVRVUkVfTE8s ICh1aW50MzJfdClDREVfVkFMSURfU1BJTkxPQ0tfU0lHTkFUVVJFKTsKKwlERUZJTkUoQ0RFX1ZB TElEX1NQSU5MT0NLX1NJR05BVFVSRV9ISSwgQ0RFX1ZBTElEX1NQSU5MT0NLX1NJR05BVFVSRSA+ PiAzMik7CisJREVGSU5FKENERV9TUElOTE9DS19OT1RfT1dORUQsICAgICAgICAgIENERV9TUElO TE9DS19OT1RfT1dORUQpOworI2VuZGlmCiB9CkluZGV4OiAyLjYuMTQtbmxrZC9kZWJ1Zy9ubGtk L2FzbS1pYTMyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCisrKyAyLjYuMTQtbmxrZC9kZWJ1Zy9ubGtkL2FzbS1pYTMyLmgJMjAw NS0xMS0wNyAxMjoxMTozMi4wMDAwMDAwMDAgKzAxMDAKQEAgLTAsMCArMSwxMjEgQEAKKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorICoKKyAqICAgRmlsZSBOYW1lOiAgICAgIGFzbS1pYTMyLmgKKyAq ICAgQ3JlYXRlZCBieTogICAgIEphbiBCZXVsaWNoCisgKiAgICV2ZXJzaW9uOiAgICAgICA3ICUK KyAqICAgJWRlcml2ZWRfYnk6ICAgIGpiZXVsaWNoICUKKyAqICAgJWRhdGVfbW9kaWZpZWQ6IFRo dSBOb3YgMDMgMDQ6MTM6NTAgMjAwNSAlCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIENvcHlyaWdodCAo YykgMjAwMi0yMDA1IE5vdmVsbCwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAg ICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yICAgICAgICAgICAgICoKKyAq IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdmVyc2lvbiAyIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSAgKgorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLCAgICAgICAgICAgKgorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgICAgICAgICAqCisg KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNl ZSB0aGUgICAgICAgICAgICAgICoKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSAgICAgICAgICoKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtOyBpZiBub3QsIGNvbnRhY3QgTm92ZWxsLCBJbmMuICAgICAgICAgICAgICAgICAgICAgKgor ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqCisgKiBUbyBjb250YWN0IE5vdmVsbCBhYm91dCB0aGlzIGZp bGUgYnkgcGh5c2ljYWwgb3IgZWxlY3Ryb25pYyBtYWlsLCAgICAgICAgICoKKyAqIHlvdSBtYXkg ZmluZCBjdXJyZW50IGNvbnRhY3QgaW5mb3JtYXRpb24gYXQgd3d3Lm5vdmVsbC5jb20uICAgICAg ICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKglGaWxlIERlc2NyaXB0aW9uOgorICoKKyAq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKworI2lmIGRlZmluZWQoX19BU1NFTUJMWV9fKSAmJiAhZGVm aW5lZChBU01fSUEzMl9IKQorI2RlZmluZSBBU01fSUEzMl9ICisKKyNpbmNsdWRlIDxsaW51eC9j b25maWcuaD4KKyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisKKyNpZmRlZiBDT05GSUdfVU5X SU5EX0lORk8KKy5lcXVpdiBlaC5lYXgsIDAKKy5lcXVpdiBlaC5lY3gsIDEKKy5lcXVpdiBlaC5l ZHgsIDIKKy5lcXVpdiBlaC5lYngsIDMKKy5lcXVpdiBlaC5lc3AsIDQKKy5lcXVpdiBlaC5lYnAs IDUKKy5lcXVpdiBlaC5lc2ksIDYKKy5lcXVpdiBlaC5lZGksIDcKKy5lcXVpdiBlaC5lcywgOAor LmVxdWl2IGVoLmNzLCA5CisuZXF1aXYgZWguc3MsIDEwCisuZXF1aXYgZWguZHMsIDExCisuZXF1 aXYgZWguZnMsIDEyCisuZXF1aXYgZWguZ3MsIDEzCisKKyMgZGVmaW5lIFNQIGVzcAorIyBkZWZp bmUgQlAgZWJwCisjIGRlZmluZSBGTEFHUyBlZmxhZ3MKKy5lcXVpdiAuZWguc3Rrd29yZCwgZHdv cmQKKy5lcXVpdiAuZWgucHJlc2VydmVkLCAoMSA8PCBlaC5lYngpIHwgKDEgPDwgZWguZWJwKSB8 ICgxIDw8IGVoLmVzaSkgfCAoMSA8PCBlaC5lZGkpIFwKKyAgICAgICAgICAgICAgICAgICAgICB8 ICgxIDw8IGVoLmVzKSB8ICgxIDw8IGVoLmNzKSB8ICgxIDw8IGVoLmRzKSB8ICgxIDw8IGVoLnNz KSB8ICgxIDw8IGVoLmZzKSB8ICgxIDw8IGVoLmdzKQorI2VuZGlmCisKKyNpbmNsdWRlICJhc20t eDg2LmgiCisKKy5pZm5kZWYgUFJPQ0VEVVJFX0FMSUdOCisgLmVxdWl2IFBST0NFRFVSRV9BTElH TiwgMHgxMAorLmVuZGlmCisKKy5tYWNybyBsb2FkIHNyZWc6cmVxLCBsb2M6cmVxLCBhdXg6cmVx CisJTE9DQUwgc2V0LCBhZGosIHNraXAKK3NldDoKKwltb3YJc3JlZywgbG9jCitza2lwOgorIC5z ZWN0aW9uIC5maXh1cCwgImF4IgorYWRqOgorCXhvcglhdXgsIGF1eAorCW1vdglzcmVnLCBhdXgK KwlqbXAJc2tpcAorIC5wcmV2aW91cworIC5zZWN0aW9uIF9fZXhfdGFibGUsICJhIgorIC5hbGln bglkd29yZAorIC5sb25nCXNldCwgYWRqCisgLnByZXZpb3VzCisuZW5kbQorCisubWFjcm8gZm5y c3RvciBsb2M6cmVxCisJZnJzdG9yCWxvYworLmVuZG0KKworLm1hY3JvIGZ4c3Igd2hhdDpyZXEs IGxvYzpyZXEKKwlMT0NBTCB3aGVyZSwgZml4LCBkb25lCit3aGVyZToKKwlmeCZ3aGF0CWxvYwor ZG9uZToKKyAuc2VjdGlvbiAuZml4dXAsICJheCIKK2ZpeDoKKwlmbiZ3aGF0CWxvYworCWptcAlk b25lCisgLnByZXZpb3VzCisgLnNlY3Rpb24gX19leF90YWJsZSwgImEiCisgLmFsaWduIGR3b3Jk CisgLmxvbmcgd2hlcmUsIGZpeAorIC5wcmV2aW91cworLmVuZG0KKworLm1hY3JvIGZ4aW5pdCBt eGNzcjpyZXEKKwlMT0NBTCB3aGVyZSwgZml4Cit3aGVyZToKKwlsZG14Y3NyCW14Y3NyCitmaXg6 CisJZm5pbml0CisgLnNlY3Rpb24gX19leF90YWJsZSwgImEiCisgLmFsaWduIGR3b3JkCisgLmxv bmcgd2hlcmUsIGZpeAorIC5wcmV2aW91cworLmVuZG0KKworI2VuZGlmIC8qIEFTTV9JQTMyX0gg Ki8KSW5kZXg6IDIuNi4xNC1ubGtkL2RlYnVnL25sa2QvbmxrZElBMzIuUwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrIDIuNi4x NC1ubGtkL2RlYnVnL25sa2QvbmxrZElBMzIuUwkyMDA1LTEwLTA3IDE3OjE5OjA2LjAwMDAwMDAw MCArMDIwMApAQCAtMCwwICsxLDg2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAg IEZpbGUgTmFtZTogICAgICBubGtkSUEzMi5TCisgKiAgIENyZWF0ZWQgYnk6ICAgICBqYmV1bGlj aAorICogICAldmVyc2lvbjogICAgICAgMiAlCisgKiAgICVkZXJpdmVkX2J5OiAgICBqYmV1bGlj aCAlCisgKiAgICVkYXRlX21vZGlmaWVkOiBGcmkgT2N0IDA3IDA5OjE4OjU2IDIwMDUgJQorICoK KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA1IE5vdmVsbCwgSW5jLiBBbGwg UmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq CisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yICAgICAgICAgICAgICoKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dmVyc2lvbiAyIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAgKgorICogYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgICAgICAgICAg KgorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YgICAgICAgICAgICAqCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgICAgICAgICAgICAgICoKKyAqIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAgICAgICAg ICoKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIGNvbnRhY3QgTm92ZWxsLCBJ bmMuICAgICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBUbyBj b250YWN0IE5vdmVsbCBhYm91dCB0aGlzIGZpbGUgYnkgcGh5c2ljYWwgb3IgZWxlY3Ryb25pYyBt YWlsLCAgICAgICAgICoKKyAqIHlvdSBtYXkgZmluZCBjdXJyZW50IGNvbnRhY3QgaW5mb3JtYXRp b24gYXQgd3d3Lm5vdmVsbC5jb20uICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisg KgkgRmlsZSBEZXNjcmlwdGlvbjoKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLmVxdWl2 IFBST0NFRFVSRV9BTElHTiwgMQorI2luY2x1ZGUgImFzbS1pYTMyLmgiCisjaW5jbHVkZSA8bGlu dXgvbmxrZC5oPgorCisvL3RvZG8gLmZpbGUgIm5sa2QiCisudGV4dAorCisvLyB2b2lkIG5sa2RE ZWJ1Z0V2ZW50KG5pbnRfdCBldmVudENvZGUsIC4uLik7CisucHVicHJvYyBubGtkRGVidWdFdmVu dAorCWNtcAlkd29yZCBwdHIgW25sa2RBZ2VudENvdW50XSwgMAorCW1vdnN4CWVheCwgYnl0ZSBw dHIgW2VzcCtkd29yZF0KKwlqZwlfbmxrZEVudGVyRGVidWdnZXJJbnN0cnVjdGlvbl8KKwl0ZXN0 CWVheCwgZWF4CisJamcJMGYKKyAuaGlkZW50cnkgX25sa2RFbnRlckRlYnVnZ2VySW5zdHJ1Y3Rp b25fCisJaW50CTMKKzA6CisJamMJMWYKKwlyZXQKKzE6CisjaWZkZWYgQ09ORklHX1VOV0lORF9J TkZPCisvLyBPbmNlIHdlIGdldCBoZXJlLCB0aGUgZHVhbCBmcmFtZSBsYXlvdXQgY2Vhc2VzIHRv IGV4aXN0LAorLy8gYW5kIGhlbmNlIHdlIGNhbiBub3cgZXhwcmVzcyB0aGUgKGFsdGVybmF0ZSkg ZnJhbWUgc3RhdGUuCisgLmNmaV9kZWZfY2ZhIGVzcCwgMipkd29yZAorIC5jZmlfb2Zmc2V0IGVp cCwgLTIqZHdvcmQKKyNlbmRpZgorCXJldAlkd29yZAkJCQkvLyBkaXNjYXJkIGV2ZW50Q29kZSBm b3Igc3BlY2lhbCBjYXNlIGVudHJpZXMKKy5lbmRwIG5sa2REZWJ1Z0V2ZW50CisvLyB2b2lkIG5s a2RFbnRlckRlYnVnZ2VyKHZvaWQpOworLnB1YnByb2MgbmxrZEVudGVyRGVidWdnZXIKKwltb3YJ ZWF4LCBERUJVR19FVkVOVF9FTlRFUl9ERUJVR0dFUgorMjoKKwlwdXNoCWR3b3JkIHB0ciBbZXNw XQkJCS8vIG1ha2Ugc3RhY2sgZnJhbWUgY29uc2lzdGVudCB3aXRoIG5sa2REZWJ1Z0V2ZW50CisJ CQkJCQkvLyAobm90ZSB0aGF0IHRoZXJlJ3Mgbm8gcG9pbnQgaW4gdXNpbmcgRUhwdXNoIGhlcmUK KwkJCQkJCS8vIGJlY2F1c2UgdGhlIC5laF9mcmFtZSB1bndpbmQgaW5mb3JtYXRpb24gY2FuJ3QK KwkJCQkJCS8vIGV4cHJlc3MgdGhlIGR1YWwgKGNvbmRpdGlvbmFsIHVwb24gRUZMQUdTLkNGKQor CQkJCQkJLy8gZnJhbWUgbGF5b3V0IGF0IF9ubGtkRW50ZXJEZWJ1Z2dlckluc3RydWN0aW9uXy4K KwlzdGMKKwltb3YJW2VzcCtkd29yZF0sIGVheAkJCS8vIHN0b3JlIGV2ZW50Q29kZQorCWptcAlf bmxrZEVudGVyRGVidWdnZXJJbnN0cnVjdGlvbl8KKy5lbmRwIG5sa2RFbnRlckRlYnVnZ2VyCisv LyB2b2lkIG5sa2RQYW5pYyhjb25zdCBjaGFyKnN0cmluZywgLi4uKTsKKy5wdWJwcm9jIG5sa2RQ YW5pYworCW1vdgllYXgsIERFQlVHX0VWRU5UX1BBTklDCisJam1wCTJiCisuZW5kcCBubGtkUGFu aWMKKy8vIHZvaWQgbmxrZEFzc2VydChjb25zdCBjaGFyKnN0cmluZywgY29uc3QgY2hhcipmaWxl LCBjb25zdCBjaGFyKmZ1bmMsIG51aW50X3QgbGluZSk7CisucHVicHJvYyBubGtkQXNzZXJ0CisJ bW92CWVheCwgREVCVUdfRVZFTlRfQVNTRVJUCisJam1wCTJiCisuZW5kcCBubGtkQXNzZXJ0Cklu ZGV4OiAyLjYuMTQtbmxrZC9kZWJ1Zy9ubGtkL25sa2RJQTMyLmgKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKyAyLjYuMTQtbmxr ZC9kZWJ1Zy9ubGtkL25sa2RJQTMyLmgJMjAwNS0xMC0xMCAxNDo1Mjo0MC4wMDAwMDAwMDAgKzAy MDAKQEAgLTAsMCArMSw1NSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICBGaWxl IE5hbWU6ICAgICAgbmxrZElBMzIuaAorICogICBDcmVhdGVkIGJ5OiAgICAgSmFuIEJldWxpY2gK KyAqICAgJXZlcnNpb246ICAgICAgIDEgJQorICogICAlZGVyaXZlZF9ieTogICAgamJldWxpY2gg JQorICogICAlZGF0ZV9tb2RpZmllZDogTW9uIE9jdCAxMCAwNjo1MjozMyAyMDA1ICUKKyAqCisg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKgorICogQ29weXJpZ2h0IChjKSAxOTk5LTIwMDUgTm92ZWxsLCBJbmMuIEFsbCBS aWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoK KyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgICAgICAgICAgICAgKgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB2 ZXJzaW9uIDIgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICAqCisgKiBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgICAgICAgICAq CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZiAgICAgICAgICAgICoKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSAgICAgICAgICAgICAgKgorICogR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICAgICAgICAg KgorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgY29udGFjdCBOb3ZlbGwsIElu Yy4gICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFRvIGNv bnRhY3QgTm92ZWxsIGFib3V0IHRoaXMgZmlsZSBieSBwaHlzaWNhbCBvciBlbGVjdHJvbmljIG1h aWwsICAgICAgICAgKgorICogeW91IG1heSBmaW5kIGN1cnJlbnQgY29udGFjdCBpbmZvcm1hdGlv biBhdCB3d3cubm92ZWxsLmNvbS4gICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAq CUZpbGUgRGVzY3JpcHRpb246CisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVm IENPTkZJR19DREUKK3N0YXRpYyB2b2lkIF9zZXRfZGVidWdyZWcodWludHB0cl90IHZhbHVlLCBu dWludF90IHJlZ251bSkgeworCXN3aXRjaChyZWdudW0pIHsKKwljYXNlIDA6IF9fYXNtX18oIm1v dmwgJTAsJSVkYjAiIDogOiAiciIgKHZhbHVlKSk7IGJyZWFrOworCWNhc2UgMTogX19hc21fXygi bW92bCAlMCwlJWRiMSIgOiA6ICJyIiAodmFsdWUpKTsgYnJlYWs7CisJY2FzZSAyOiBfX2FzbV9f KCJtb3ZsICUwLCUlZGIyIiA6IDogInIiICh2YWx1ZSkpOyBicmVhazsKKwljYXNlIDM6IF9fYXNt X18oIm1vdmwgJTAsJSVkYjMiIDogOiAiciIgKHZhbHVlKSk7IGJyZWFrOworCWNhc2UgNjogX19h c21fXygibW92bCAlMCwlJWRiNiIgOiA6ICJyIiAodmFsdWUpKTsgYnJlYWs7CisJY2FzZSA3OiBf X2FzbV9fKCJtb3ZsICUwLCUlZGI3IiA6IDogInIiICh2YWx1ZSkpOyBicmVhazsKKwl9Cit9Citz dGF0aWMgaW50IF9kaXNhYmxlX2RlYnVncmVnKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBudWludF90 IHJlZ251bSkKK3sKKwlfc2V0X2RlYnVncmVnKDAsIDcpOworfQorc3RhdGljIGludCBfcmVzdG9y ZV9kZWJ1Z3JlZyh2b2lkKQoreworCV9zZXRfZGVidWdyZWcoY3VycmVudC0+dGhyZWFkLmRlYnVn cmVnWzddLCA3KTsKK30KKyNlbmRpZgpJbmRleDogMi42LjE0LW5sa2QvaW5jbHVkZS9hc20taTM4 Ni9mdGEtZnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKKysrIDIuNi4xNC1ubGtkL2luY2x1ZGUvYXNtLWkzODYvZnRhLWZy YW1lLmgJMjAwNS0xMS0wMyAxMTo0OTowNi4wMDAwMDAwMDAgKzAxMDAKQEAgLTAsMCArMSwxNzcg QEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgRmlsZSBOYW1lOiAgICAgIGZ0YS1m cmFtZS5oCisgKiAgIENyZWF0ZWQgYnk6ICAgICBDbHlkZSBHcmlmZmluCisgKiAgIERhdGUgY3Jl YXRlZDogICAxLzEvMTk5OQorICoKKyAqICAgJXZlcnNpb246ICAgICAgIDcgJQorICogICAlZGVy aXZlZF9ieTogICAgamJldWxpY2ggJQorICogICAlZGF0ZV9tb2RpZmllZDogVGh1IE5vdiAwMyAw Mzo0ODo1NCAyMDA1ICUKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogQ29weXJpZ2h0IChjKSAxOTk5LTIw MDUgTm92ZWxsLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAqCisg KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgICAgICAgICAgKgorICogbW9kaWZ5IGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB2ZXJzaW9uIDIgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlICAqCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgor ICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsICAgICAgICAgICAqCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgICAgICAgICAgICoKKyAqIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSAgICAg ICAgICAgICAgKgorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoK KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlICAgICAgICAgKgorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5v dCwgY29udGFjdCBOb3ZlbGwsIEluYy4gICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICoKKyAqIFRvIGNvbnRhY3QgTm92ZWxsIGFib3V0IHRoaXMgZmlsZSBieSBwaHlz aWNhbCBvciBlbGVjdHJvbmljIG1haWwsICAgICAgICAgKgorICogeW91IG1heSBmaW5kIGN1cnJl bnQgY29udGFjdCBpbmZvcm1hdGlvbiBhdCB3d3cubm92ZWxsLmNvbS4gICAgICAgICAgICAgICAq CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorICoKKyAqCUZpbGUgRGVzY3JpcHRpb246CisgKiAgVGhpcyBtb2R1bGUg Y29udGFpbnMgdGhlIGRlZmluaXRpb24gb2YgYSB0cmFwIGZyYW1lLgorICoKKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KKworI2lmbmRlZiBfQVNNX0kzODZfRlRBX0ZSQU1FX0gKKyNkZWZpbmUgX0FT TV9JMzg2X0ZUQV9GUkFNRV9ICisKKy8qIHZhbHVlcyBmb3IgZnRhSW50ZXJydXB0aW9uQ3R4X3Mu c3RhdGUgKi8KKyNpZmRlZiBDT05GSUdfTkxLRF9GVEEKKyMgZGVmaW5lIEZSQU1FX0NPTVBMRVRF X0JJVCAwCisjIGRlZmluZSBGUkFNRV9DT01QTEVURSAoMSA8PCBGUkFNRV9DT01QTEVURV9CSVQp CisjZW5kaWYKKworIyBpZm5kZWYgX19BU1NFTUJMWV9fCisjICBpbmNsdWRlIDxhc20vaWFfMzIu aD4KKyMgIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKworc3RydWN0IGZ0YUludGVycnVwdGlvbkN0 eF9zIHsKKwl1aW50MTZfdAl0eXBlOwkJLyogVHJhcCB0eXBlICovCisJIGludDhfdAlzdWJfdHlw ZTsJCS8qIEV4dGVuZGVkIHR5cGUgKi8KKwl1aW50OF90CXN0YXRlOwkJLyogRnJhbWV3b3JrL0Rl YnVnZ2VyIG9ubHkgKi8KKwl1aW50MzJfdAllYzsJCQkvKiBFcnJvciBjb2RlICovCisJdWludDMy X3QJY3IwOworCXVpbnQzMl90CWNyNDsKKwl1aW50MzJfdAljcjI7CisJdWludDMyX3QJY3IzOwor CXVpbnQ2NF90CWRlYnVnQ3RsOworCXVpbnQzMl90CWRyNzsKKwl1bmlvbiB7CisJCS8vIGZwL21t eC9zc2Ugc3RhdGUgKHdoaWNoIHJlcXVpcmVzIDE2LWJ5dGUgYWxpZ25tZW50IGFuZCB0aHVzIG5l ZWRzIHRvIGJlIHJlZmVyZW5jZWQgaW5kaXJlY3RseSkKKwkJZnhzYXZlX3QJKmZwX21teF94bW07 CisJCS8vIGZwL21teCBzdGF0ZQorCQlmc2F2ZV90CSpmcF9tbXg7CisJfTsKKwl1aW50MTZfdAls ZHRyOworCXVpbnQxNl90CXRyOworCXVpbnQxNl90CWZzOworCXVpbnQxNl90CWdzOworCXVuaW9u IHsKKwkJdWludDMyX3QJZXNwOworCQl1aW50MTZfdAlzcDsKKwl9OworCXVpbnQxNl90CXNzLCBf c3NfcGFkOworCXVuaW9uIHsKKwkJc3RydWN0IHB0X3JlZ3MgcHRfcmVnczsKKwkJc3RydWN0IHsK KwkJCXVuaW9uIHsKKwkJCQl1aW50MzJfdAllYng7CisJCQkJdWludDE2X3QJYng7CisJCQkJc3Ry dWN0IHsKKwkJCQkJdWludDhfdAlibDsKKwkJCQkJdWludDhfdAliaDsKKwkJCQl9OworCQkJfTsK KwkJCXVuaW9uIHsKKwkJCQl1aW50MzJfdAllY3g7CisJCQkJdWludDE2X3QJY3g7CisJCQkJc3Ry dWN0IHsKKwkJCQkJdWludDhfdAljbDsKKwkJCQkJdWludDhfdAljaDsKKwkJCQl9OworCQkJfTsK KwkJCXVuaW9uIHsKKwkJCQl1aW50MzJfdAllZHg7CisJCQkJdWludDE2X3QJZHg7CisJCQkJc3Ry dWN0IHsKKwkJCQkJdWludDhfdAlkbDsKKwkJCQkJdWludDhfdAlkaDsKKwkJCQl9OworCQkJfTsK KwkJCXVuaW9uIHsKKwkJCQl1aW50MzJfdAllc2k7CisJCQkJdWludDE2X3QJc2k7CisJCQl9Owor CQkJdW5pb24geworCQkJCXVpbnQzMl90CWVkaTsKKwkJCQl1aW50MTZfdAlkaTsKKwkJCX07CisJ CQl1bmlvbiB7CisJCQkJdWludDMyX3QJZWJwOworCQkJCXVpbnQxNl90CWJwOworCQkJfTsKKwkJ CXVuaW9uIHsKKwkJCQl1aW50MzJfdAllYXg7CisJCQkJdWludDE2X3QJYXg7CisJCQkJc3RydWN0 IHsKKwkJCQkJdWludDhfdAlhbDsKKwkJCQkJdWludDhfdAlhaDsKKwkJCQl9OworCQkJfTsKKwkJ CXVuaW9uIHsKKwkJCQlzdHJ1Y3QgeworCQkJCQl1aW50MTZfdAlkcywgX2RzX3BhZDsKKwkJCQl9 OworIyAgaWZkZWYgQ09ORklHX05MS0RfRlRBCisJCQkJdWludDMyX3QJX3R5cGVfcmF3OworIyAg ZW5kaWYKKwkJCX07CisJCQl1bmlvbiB7CisJCQkJc3RydWN0IHsKKwkJCQkJdWludDE2X3QJZXMs IF9lc19wYWQ7CisJCQkJfTsKKyMgIGlmZGVmIENPTkZJR19OTEtEX0ZUQQorCQkJCXVpbnQzMl90 CV9lYnhfcmF3OworIyAgZW5kaWYKKwkJCX07CisJCQl1bmlvbiB7CisJCQkJdWludDMyX3QJb3Jp Z19lYXg7CisjICBpZmRlZiBDT05GSUdfTkxLRF9GVEEKKwkJCQl1aW50MzJfdAlfZWNfcmF3Owor IyAgZW5kaWYKKwkJCX07CisJCQl1bmlvbiB7CisJCQkJdWludDMyX3QJZWlwOworCQkJCXVpbnQx Nl90CWlwOworCQkJfTsKKwkJCXVpbnQxNl90CWNzLCBfY3NfcGFkOworCQkJdW5pb24geworCQkJ CXVpbnQzMl90CWVmbGFnczsKKwkJCQl1aW50MTZfdAlmbGFnczsKKwkJCX07CisJCQkvKgorCQkJ ICogRnJvbSBoZXJlIG9uIGZpZWxkIHByZXNlbmNlIGRlcGVuZGVudCBvbiB0aGUgdmFsdWUgaW4g ZWZsYWdzCisJCQkgKi8KKwkJCXVuaW9uIHsKKwkJCQl1aW50MzJfdAlyM19lc3A7CisJCQkJdWlu dDE2X3QJcjNfc3A7CisJCQl9OworCQkJdWludDE2X3QJcjNfc3MsIF9yM19zc19wYWQ7CisJCX07 CisjICBpZmRlZiBDT05GSUdfTkxLRF9GVEEKKwl9OworIyAgIGRlZmluZSBGUkFNRV9QVFJFR1Mo ZnJhbWUsIGZpZWxkKSAoZnJhbWUpLT5maWVsZAorIyAgZWxzZQorCX0gKnB0X3JlZ3M7CisjICAg ZGVmaW5lIEZSQU1FX1BUUkVHUyhmcmFtZSwgZmllbGQpIChmcmFtZSktPnB0X3JlZ3MtPmZpZWxk CisjICBlbmRpZgorCS8qIFRoaXMgaXMgb25seSB1c2VkIGluIGNsb25lZCBmcmFtZXMuICovCisJ dWludDMyX3QJX2ZwX21teF94bW1fYXJlYV9bKHNpemVvZihmeHNhdmVfdCkgKyAweGYpIC8gc2l6 ZW9mKHVpbnQzMl90KV07Cit9OworIyBlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KKworI2VuZGlm IC8qIF9BU01fSTM4Nl9GVEFfRlJBTUVfSCAqLwpJbmRleDogMi42LjE0LW5sa2QvaW5jbHVkZS9h c20taTM4Ni9mdGEtdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysgMi42LjE0LW5sa2QvaW5jbHVkZS9hc20taTM4Ni9m dGEtdHlwZS5oCTIwMDUtMDYtMjcgMTM6NTY6NTAuMDAwMDAwMDAwICswMjAwCkBAIC0wLDAgKzEs ODkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgRmlsZSBOYW1lOiAgICAgIGZ0 YS10eXBlLmgKKyAqICAgQ3JlYXRlZCBieTogICAgIENseWRlIEdyaWZmaW4KKyAqICAgRGF0ZSBj cmVhdGVkOiAgIDEvMS8xOTk5CisgKgorICogICAldmVyc2lvbjogICAgICAgNSAlCisgKiAgICVk ZXJpdmVkX2J5OiAgICBqYmV1bGljaCAlCisgKiAgICVkYXRlX21vZGlmaWVkOiBNb24gSnVuIDI3 IDA1OjIxOjI2IDIwMDUgJQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBDb3B5cmlnaHQgKGMpIDE5OTkt MjAwNSBOb3ZlbGwsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICoK KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAgICAgICAgICAqCisgKiBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHZlcnNpb24gMiBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgICoKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq CisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwgICAgICAgICAgICoKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgICAgICAgICAgKgorICogTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlICAg ICAgICAgICAgICAqCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgICAgICAgICAqCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYg bm90LCBjb250YWN0IE5vdmVsbCwgSW5jLiAgICAgICAgICAgICAgICAgICAgICoKKyAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKgorICogVG8gY29udGFjdCBOb3ZlbGwgYWJvdXQgdGhpcyBmaWxlIGJ5IHBo eXNpY2FsIG9yIGVsZWN0cm9uaWMgbWFpbCwgICAgICAgICAqCisgKiB5b3UgbWF5IGZpbmQgY3Vy cmVudCBjb250YWN0IGluZm9ybWF0aW9uIGF0IHd3dy5ub3ZlbGwuY29tLiAgICAgICAgICAgICAg ICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCisgKgorICoJRmlsZSBEZXNjcmlwdGlvbjoKKyAqICBUaGlzIG1vZHVs ZSBjb250YWlucyB0aGUgZGVmaW5pdGlvbiBvZiBhIHRyYXAgZnJhbWUuCisgKgorICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworCisjaWZuZGVmIF9BU01fSTM4Nl9GVEFfVFlQRV9ICisjZGVmaW5lIF9B U01fSTM4Nl9GVEFfVFlQRV9ICisKKy8qCisgKiBmdGFJbnRlcnJ1cHRpb25JZF90CisgKgorICog ZnRhSW50ZXJydXB0aW9uSWRfdCB1bmlxdWVseSBpZGVudGlmaWVzIGVhY2ggdHlwZSBvZiBpbnRl cnJ1cHRpb24uCisgKgorICogTk9URToKKyAqICAgIEludGVycnVwdGlvbiBmcmFtZXMgbWF5IGJl IGRpZmZlcmVudCBmb3IgZmF1bHRzLCB0cmFwcywgZXh0ZXJuYWwKKyAqICAgIGludGVycnVwdHMg YW5kIGFib3J0cy4gIFRoZSBjb25zdW1lciBvZiBhbiBpbnRlcnJ1cHRpb24gZnJhbWUKKyAqICAg IG5lZWRzIHRvIGJlIGF3YXJlIG9mIHdoaWNoIGludGVycnVwdGlvbiB0eXBlcyBhcmUgYXNzb2Np YXRlZCB3aXRoCisgKiAgICB3aXRoIGludGVycnVwdGlvbiBmcmFtZSB0eXBlcy4KKyAqLworZW51 bSBmdGFJbnRlcnJ1cHRpb25JZF9lCit7CisJSUEzMl9ESVZJREVfRVJST1IsCisJSUEzMl9ERUJV RywKKwlJQTMyX05NSSwKKwlJQTMyX0JSRUFLUE9JTlQsCisJSUEzMl9PVkVSRkxPVywKKwlJQTMy X0JPVU5EU19DSEVDSywKKwlJQTMyX0lMTEVHQUxfT1BDT0RFLAorCUlBMzJfREVWSUNFX05PVF9B VkFJTEFCTEUsCisJSUEzMl9ET1VCTEVfRkFVTFQsCisJSUEzMl9DT1BST0NFU1NPUl9TRUdNRU5U X09WRVJSVU4sCisJSUEzMl9JTlZBTElEX1RTUywKKwlJQTMyX1NFR01FTlRfTk9UX1BSRVNFTlQs CisJSUEzMl9TVEFDS19GQVVMVCwKKwlJQTMyX0dFTkVSQUxfUFJPVEVDVElPTl9GQVVMVCwKKwlJ QTMyX1BBR0VfRkFVTFQsCisJSUEzMl9SU1ZEXzBGLAorCUlBMzJfRlBfRVJST1IsCisJSUEzMl9B TElHTk1FTlRfQ0hFQ0ssCisJSUEzMl9NQUNISU5FX0NIRUNLLAorCUlBMzJfU0lNRF9GUF9FUlJP UiwKKwlJQTMyX1JTVkRfMTQsCisJSUEzMl9SU1ZEXzE1LAorCUlBMzJfUlNWRF8xNiwKKwlJQTMy X1JTVkRfMTcsCisJSUEzMl9SU1ZEXzE4LAorCUlBMzJfUlNWRF8xOSwKKwlJQTMyX1JTVkRfMUEs CisJSUEzMl9SU1ZEXzFCLAorCUlBMzJfUlNWRF8xQywKKwlJQTMyX1JTVkRfMUQsCisJSUEzMl9S U1ZEXzFFLAorCUlBMzJfUlNWRF8xRgorfTsKKworI2VuZGlmIC8qIF9BU01fSTM4Nl9GVEFfVFlQ RV9IICovCkluZGV4OiAyLjYuMTQtbmxrZC9pbmNsdWRlL2FzbS1pMzg2L2lhXzMyLmgKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisr KyAyLjYuMTQtbmxrZC9pbmNsdWRlL2FzbS1pMzg2L2lhXzMyLmgJMjAwNS0wNi0zMCAxNTo1NDoz NS4wMDAwMDAwMDAgKzAyMDAKQEAgLTAsMCArMSw5MDcgQEAKKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorICoKKyAqICAgRmlsZSBOYW1lOiAgICAgIGlhXzMyLmgKKyAqICAgQ3JlYXRlZCBieTogICAg IENseWRlIEdyaWZmaW4sIEphbiBCZXVsaWNoCisgKiAgIERhdGUgY3JlYXRlZDogICAyMUZlYjIw MDEKKyAqCisgKiAgICV2ZXJzaW9uOiAgICAgICA5ICUKKyAqICAgJWRlcml2ZWRfYnk6ICAgIGpi ZXVsaWNoICUKKyAqICAgJWRhdGVfbW9kaWZpZWQ6IFRodSBKdW4gMzAgMDc6NTQ6MjAgMjAwNSAl CisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA1IE5vdmVsbCwgSW5j LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yICAgICAgICAgICAgICoKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdmVyc2lvbiAyIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAgKgorICog YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgICAg ICAgICAgKgorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YgICAgICAgICAgICAqCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgICAgICAgICAgICAgICoKKyAq IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAg ICAgICAgICoKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIGNvbnRhY3QgTm92 ZWxsLCBJbmMuICAgICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisg KiBUbyBjb250YWN0IE5vdmVsbCBhYm91dCB0aGlzIGZpbGUgYnkgcGh5c2ljYWwgb3IgZWxlY3Ry b25pYyBtYWlsLCAgICAgICAgICoKKyAqIHlvdSBtYXkgZmluZCBjdXJyZW50IGNvbnRhY3QgaW5m b3JtYXRpb24gYXQgd3d3Lm5vdmVsbC5jb20uICAgICAgICAgICAgICAgKgorICogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK KyAqCisgKglGaWxlIERlc2NyaXB0aW9uOgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwor I2lmbmRlZiBfQVNNX0lBXzMyX0gKKyNkZWZpbmUgX0FTTV9JQV8zMl9ICisKKyNpZmRlZiBfX0FT U0VNQkxZX18KKyMgZGVmaW5lIFVJTlQ2NF9DKHYpICh2KQorI2Vsc2UKKyMgaW5jbHVkZSA8bGlu dXgvdHlwZXMuaD4KKyNlbmRpZgorCisvKgorICogRUZMQUdTCisgKi8KKyNkZWZpbmUgRUZMQUdT X01CWgkJCTB4ZmZjMDgwMjgKKyNkZWZpbmUgRUZMQUdTX01CUwkJCTB4MDAwMDAwMDIKKyNkZWZp bmUgRUZMQUdTX0NGCQkJMAorI2RlZmluZSBFRkxBR1NfUEYJCQkyCisjZGVmaW5lIEVGTEFHU19B RgkJCTQKKyNkZWZpbmUgRUZMQUdTX1pGCQkJNgorI2RlZmluZSBFRkxBR1NfU0YJCQk3CisjZGVm aW5lIEVGTEFHU19URgkJCTgKKyNkZWZpbmUgRUZMQUdTX0lGCQkJOQorI2RlZmluZSBFRkxBR1Nf REYJCQkxMAorI2RlZmluZSBFRkxBR1NfT0YJCQkxMQorI2RlZmluZSBFRkxBR1NfSU9QTAkJCTEy CisjZGVmaW5lIEVGTEFHU19JT1BMX0xFTgkJMgorI2RlZmluZSBFRkxBR1NfTlQJCQkxNAorI2Rl ZmluZSBFRkxBR1NfUkYJCQkxNgorI2RlZmluZSBFRkxBR1NfVk0JCQkxNworI2RlZmluZSBFRkxB R1NfQUMJCQkxOAorI2RlZmluZSBFRkxBR1NfVklGCQkJMTkKKyNkZWZpbmUgRUZMQUdTX1ZJUAkJ CTIwCisjZGVmaW5lIEVGTEFHU19JRAkJCTIxCisKKy8qCisgKiBQcml2aWxlZ2UgbGV2ZWxzCisg Ki8KKyNkZWZpbmUgUExfS0VSTkVMCQkJMAorI2RlZmluZSBQTF9VU0VSCQkJMworCisvKgorICog U2VsZWN0b3IgbGF5b3V0CisgKi8KKyNkZWZpbmUgU0VMRUNUT1JfUlBMCQkwCisjZGVmaW5lIFNF TEVDVE9SX1JQTF9MRU4JCTIKKyNkZWZpbmUgU0VMRUNUT1JfVEkJCQkyCisjZGVmaW5lIFNFTEVD VE9SX0lOREVYCQkzCisjZGVmaW5lIFNFTEVDVE9SX0lOREVYX0xFTgkxMworCisvKgorICogRGVz Y3JpcHRvciBBdHRyaWJ1dGVzCisgKi8KKyNkZWZpbmUgREVTQ1JJUFRPUl9UWVBFCQkwCisjZGVm aW5lIERFU0NSSVBUT1JfVFlQRV9MRU4JNQorIwlkZWZpbmUgREVTQ1JJUFRPUl9JTlZBTElECTB4 MDAKKyMJZGVmaW5lIERFU0NSSVBUT1JfQVZBSUxUU1MxNgkweDAxCisjCWRlZmluZSBERVNDUklQ VE9SX0xEVAkJMHgwMgorIwlkZWZpbmUgREVTQ1JJUFRPUl9CVVNZVFNTMTYJMHgwMworIwlkZWZp bmUgREVTQ1JJUFRPUl9DQUxMR0FURTE2CTB4MDQKKyMJZGVmaW5lIERFU0NSSVBUT1JfVEFTS0dB VEUJMHgwNQorIwlkZWZpbmUgREVTQ1JJUFRPUl9JTlRHQVRFMTYJMHgwNgorIwlkZWZpbmUgREVT Q1JJUFRPUl9UUkFQR0FURTE2CTB4MDcKKyMJZGVmaW5lIERFU0NSSVBUT1JfQVZBSUxUU1MzMgkw eDA5CisjCWRlZmluZSBERVNDUklQVE9SX0JVU1lUU1MzMgkweDBiCisjCWRlZmluZSBERVNDUklQ VE9SX0NBTExHQVRFMzIJMHgwYworIwlkZWZpbmUgREVTQ1JJUFRPUl9JTlRHQVRFMzIJMHgwZQor IwlkZWZpbmUgREVTQ1JJUFRPUl9UUkFQR0FURTMyCTB4MGYKKyMJZGVmaW5lIERFU0NSSVBUT1Jf REFUQV9STwkweDEwCisjCWRlZmluZSBERVNDUklQVE9SX0RBVEFfUk9fQUNDCTB4MTEKKyMJZGVm aW5lIERFU0NSSVBUT1JfREFUQV9SVwkweDEyCisjCWRlZmluZSBERVNDUklQVE9SX0RBVEFfUldf QUNDCTB4MTMKKyMJZGVmaW5lIERFU0NSSVBUT1JfRE9XTl9STwkweDE0CisjCWRlZmluZSBERVND UklQVE9SX0RPV05fUk9fQUNDCTB4MTUKKyMJZGVmaW5lIERFU0NSSVBUT1JfRE9XTl9SVwkweDE2 CisjCWRlZmluZSBERVNDUklQVE9SX0RPV05fUldfQUNDCTB4MTcKKyMJZGVmaW5lIERFU0NSSVBU T1JfQ09ERV9YTwkweDE4CisjCWRlZmluZSBERVNDUklQVE9SX0NPREVfWE9fQUNDCTB4MTkKKyMJ ZGVmaW5lIERFU0NSSVBUT1JfQ09ERV9YUgkweDFhCisjCWRlZmluZSBERVNDUklQVE9SX0NPREVf WFJfQUNDCTB4MWIKKyMJZGVmaW5lIERFU0NSSVBUT1JfQ09ORl9YTwkweDFjCisjCWRlZmluZSBE RVNDUklQVE9SX0NPTkZfWE9fQUNDCTB4MWQKKyMJZGVmaW5lIERFU0NSSVBUT1JfQ09ORl9YUgkw eDFlCisjCWRlZmluZSBERVNDUklQVE9SX0NPTkZfWFJfQUNDCTB4MWYKKyNkZWZpbmUgREVTQ1JJ UFRPUl9BCQkwCisjZGVmaW5lIERFU0NSSVBUT1JfVwkJMQorI2RlZmluZSBERVNDUklQVE9SX1IJ CTEKKyNkZWZpbmUgREVTQ1JJUFRPUl9FCQkyCisjZGVmaW5lIERFU0NSSVBUT1JfQwkJMgorI2Rl ZmluZSBERVNDUklQVE9SX0NPREUJCTMKKyNkZWZpbmUgREVTQ1JJUFRPUl9TCQk0CisjZGVmaW5l IERFU0NSSVBUT1JfRFBMCQk1CisjZGVmaW5lIERFU0NSSVBUT1JfRFBMX0xFTgkyCisjZGVmaW5l IERFU0NSSVBUT1JfUAkJNworCisjZGVmaW5lIERFU0NSSVBUT1JfQVZMCQkxMgorI2RlZmluZSBE RVNDUklQVE9SX0QJCTE0CisjZGVmaW5lIERFU0NSSVBUT1JfQgkJMTQKKyNkZWZpbmUgREVTQ1JJ UFRPUl9HCQkxNQorCisvKgorICogRXJyb3IgY29kZSBsYXlvdXQgKGRpZmZlcmVudCBmb3IgUGFn ZSBGYXVsdCkKKyAqLworI2RlZmluZSBFQ19FWFQJCQkJMAorI2RlZmluZSBFQ19JRFQJCQkJMQor I2RlZmluZSBFQ19USQkJCQkyCisjZGVmaW5lIEVDX1NFTEVDVE9SX0lOREVYCTMKKyNkZWZpbmUg RUNfU0VMRUNUT1JfSU5ERVhfTEVOCTEzCisKKy8qCisgKiBDb250cm9sIFJlZ2lzdGVyIDAKKyAq LworI2RlZmluZSBDUjBfTUJaCQkJMHgxZmZhZmZjMAorI2RlZmluZSBDUjBfUEUJCQkJMAorI2Rl ZmluZSBDUjBfTVAJCQkJMQorI2RlZmluZSBDUjBfRU0JCQkJMgorI2RlZmluZSBDUjBfVFMJCQkJ MworI2RlZmluZSBDUjBfRVQJCQkJNAorI2RlZmluZSBDUjBfTkUJCQkJNQorI2RlZmluZSBDUjBf V1AJCQkJMTYKKyNkZWZpbmUgQ1IwX0FNCQkJCTE4CisjZGVmaW5lIENSMF9OVwkJCQkyOQorI2Rl ZmluZSBDUjBfQ0QJCQkJMzAKKyNkZWZpbmUgQ1IwX1BHCQkJCTMxCisKKy8qCisgKiBDb250cm9s IFJlZ2lzdGVyIDMKKyAqLworI2RlZmluZSBDUjNfTUJaCQkJMHgwMDAwMGZlNworI2RlZmluZSBD UjNfUFdUCQkJMworI2RlZmluZSBDUjNfUENECQkJNAorI2RlZmluZSBDUjNfUEhZUwkJCTEyCisj ZGVmaW5lIENSM19QSFlTX0xFTgkJMjAKKworI2RlZmluZSBQREJSX01CWgkJCUNSM19NQloKKyNk ZWZpbmUgUERCUl9QV1QJCQlDUjNfUFdUCisjZGVmaW5lIFBEQlJfUENECQkJQ1IzX1BDRAorI2Rl ZmluZSBQREJSX1BIWVMJCQlDUjNfUEhZUworI2RlZmluZSBQREJSX1BIWVNfTEVOCQlDUjNfUEhZ U19MRU4KKworI2RlZmluZSBQRFBUUl9NQloJCQkweDAwMDAwMDA3CisjZGVmaW5lIFBEUFRSX1BX VAkJCUNSM19QV1QKKyNkZWZpbmUgUERQVFJfUENECQkJQ1IzX1BDRAorI2RlZmluZSBQRFBUUl9Q SFlTCQkJNQorI2RlZmluZSBQRFBUUl9QSFlTX0xFTgkJMjcKKworLyoKKyAqIENvbnRyb2wgUmVn aXN0ZXIgNAorICovCisjZGVmaW5lIENSNF9NQloJCQkweGZmZmZmODAwCisjZGVmaW5lIENSNF9W TUUJCQkwCisjZGVmaW5lIENSNF9QVkkJCQkxCisjZGVmaW5lIENSNF9UU0QJCQkyCisjZGVmaW5l IENSNF9ERQkJCQkzCisjZGVmaW5lIENSNF9QU0UJCQk0CisjZGVmaW5lIENSNF9QQUUJCQk1Cisj ZGVmaW5lIENSNF9NQ0UJCQk2CisjZGVmaW5lIENSNF9QR0UJCQk3CisjZGVmaW5lIENSNF9QQ0UJ CQk4CisjZGVmaW5lIENSNF9PU0ZYU1IJCQk5CisjZGVmaW5lIENSNF9PU1hNTUVYQ1BUCQkxMAor CisvKgorICogUGFnZSBEaXJlY3RvcnkgUG9pbnRlciBUYWJsZSBFbnRyeQorICovCisjZGVmaW5l IFBEUFRFX01CWgkJCTB4MDAwMDAxZTYKKyNkZWZpbmUgUERQVEVfTUJTCQkJMHgwMDAwMDAwMQor I2RlZmluZSBQRFBURV9QV1QJCQkzCisjZGVmaW5lIFBEUFRFX1BDRAkJCTQKKyNkZWZpbmUgUERQ VEVfQVZMCQkJOQorI2RlZmluZSBQRFBURV9BVkxfTEVOCQkzCisjZGVmaW5lIFBEUFRFX1BIWVMJ CQkxMgorI2RlZmluZSBQRFBURV9QSFlTX0xFTgkJNDAKKworLyoKKyAqIFBhZ2UgRGlyZWN0b3J5 IEVudHJ5CisgKi8KKyNkZWZpbmUgUERFX01CWgkJCTB4MDAwMDAxYzAKKyNkZWZpbmUgUERFX1AJ CQkJMAorI2RlZmluZSBQREVfVwkJCQkxCisjZGVmaW5lIFBERV9VCQkJCTIKKyNkZWZpbmUgUERF X1BXVAkJCTMKKyNkZWZpbmUgUERFX1BDRAkJCTQKKyNkZWZpbmUgUERFX0EJCQkJNQorI2RlZmlu ZSBQREVfTEFSR0VfUFRFCQk3CisjZGVmaW5lIFBERV9BVkwJCQk5CisjZGVmaW5lIFBERV9BVkxf TEVOCQkJMworI2RlZmluZSBQREVfUEhZUwkJCTEyCisjZGVmaW5lIFBERV9QSFlTX0xFTgkJNDAK KyNkZWZpbmUgUERFX05YCQkJCTYzCisKKy8qCisgKiBQYWdlIFRhYmxlIEVudHJ5CisgKi8KKyNk ZWZpbmUgUFRFNEtfTUJaCQkJMHgwMDAwMDA4MAorI2RlZmluZSBQVEUyTV9NQloJCQkweDAwMWZl MDAwCisjZGVmaW5lIFBURTJNX01CUwkJCSgxVSA8PCBQREVfTEFSR0VfUFRFKQorI2RlZmluZSBQ VEU0TV9NQloJCQkweDAwMDAwMDAwCisjZGVmaW5lIFBURTRNX01CUwkJCSgxVSA8PCBQREVfTEFS R0VfUFRFKQorI2RlZmluZSBQVEVfUAkJCQkwCisjZGVmaW5lIFBURV9XCQkJCTEKKyNkZWZpbmUg UFRFX1UJCQkJMgorI2RlZmluZSBQVEVfUFdUCQkJMworI2RlZmluZSBQVEVfUENECQkJNAorI2Rl ZmluZSBQVEVfQQkJCQk1CisjZGVmaW5lIFBURV9ECQkJCTYKKyNkZWZpbmUgUFRFNEtfUEFUCQkJ NworI2RlZmluZSBQVEVfRwkJCQk4CisjZGVmaW5lIFBURV9BVkwJCQk5CisjZGVmaW5lIFBURV9B VkxfTEVOCQkJMworI2RlZmluZSBQVEUyTV9QQVQJCQkxMgorI2RlZmluZSBQVEU0TV9QQVQJCQkx MgorI2RlZmluZSBQVEU0S19QSFlTCQkJMTIKKyNkZWZpbmUgUFRFNEtfUEhZU19MRU4JCTQwCisj ZGVmaW5lIFBURTJNX1BIWVMJCQkyMQorI2RlZmluZSBQVEUyTV9QSFlTX0xFTgkJMzEKKyNkZWZp bmUgUFRFNE1fUEhZUzEJCQkxMworI2RlZmluZSBQVEU0TV9QSFlTMV9MRU4JCQk5CisjZGVmaW5l IFBURTRNX1BIWVMJCQkyMgorI2RlZmluZSBQVEU0TV9QSFlTX0xFTgkJCTEwCisjZGVmaW5lIFBU RV9OWAkJCQk2MworCisvKgorICogRGVidWcgUmVnaXN0ZXIgNgorICovCisjZGVmaW5lIERSNl9C MAkJCQkwCisjZGVmaW5lIERSNl9CMQkJCQkxCisjZGVmaW5lIERSNl9CMgkJCQkyCisjZGVmaW5l IERSNl9CMwkJCQkzCisjZGVmaW5lIERSNl9CRAkJCQkxMworI2RlZmluZSBEUjZfQlMJCQkJMTQK KyNkZWZpbmUgRFI2X0JUCQkJCTE1CisKKy8qCisgKiBEZWJ1ZyBSZWdpc3RlciA3CisgKi8KKyNk ZWZpbmUgRFI3X1JXX0xFTgkJCTIKKyMJZGVmaW5lIERSN19SV19YCQkJMFUKKyMJZGVmaW5lIERS N19SV19XCQkJMVUKKyMJZGVmaW5lIERSN19SV19JTwkJCTJVCisjCWRlZmluZSBEUjdfUldfUlcJ CQkzVQorI2RlZmluZSBEUjdfTEVOX0xFTgkJCTIKKyMJZGVmaW5lIERSN19MRU5fMQkJCTBVCisj CWRlZmluZSBEUjdfTEVOXzIJCQkxVQorIwlkZWZpbmUgRFI3X0xFTl80CQkJM1UKKyNkZWZpbmUg RFI3X0wwCQkJCTAKKyNkZWZpbmUgRFI3X0cwCQkJCTEKKyNkZWZpbmUgRFI3X0wxCQkJCTIKKyNk ZWZpbmUgRFI3X0cxCQkJCTMKKyNkZWZpbmUgRFI3X0wyCQkJCTQKKyNkZWZpbmUgRFI3X0cyCQkJ CTUKKyNkZWZpbmUgRFI3X0wzCQkJCTYKKyNkZWZpbmUgRFI3X0czCQkJCTcKKyNkZWZpbmUgRFI3 X0xFCQkJCTgKKyNkZWZpbmUgRFI3X0dFCQkJCTkKKyNkZWZpbmUgRFI3X0dECQkJCTEzCisjZGVm aW5lIERSN19SVzAJCQkxNgorI2RlZmluZSBEUjdfUlcwX0xFTgkJCURSN19SV19MRU4KKyNkZWZp bmUgRFI3X0xFTjAJCQkxOAorI2RlZmluZSBEUjdfTEVOMF9MRU4JCURSN19MRU5fTEVOCisjZGVm aW5lIERSN19SVzEJCQkyMAorI2RlZmluZSBEUjdfUlcxX0xFTgkJCURSN19SV19MRU4KKyNkZWZp bmUgRFI3X0xFTjEJCQkyMgorI2RlZmluZSBEUjdfTEVOMV9MRU4JCURSN19MRU5fTEVOCisjZGVm aW5lIERSN19SVzIJCQkyNAorI2RlZmluZSBEUjdfUlcyX0xFTgkJCURSN19SV19MRU4KKyNkZWZp bmUgRFI3X0xFTjIJCQkyNgorI2RlZmluZSBEUjdfTEVOMl9MRU4JCURSN19MRU5fTEVOCisjZGVm aW5lIERSN19SVzMJCQkyOAorI2RlZmluZSBEUjdfUlczX0xFTgkJCURSN19SV19MRU4KKyNkZWZp bmUgRFI3X0xFTjMJCQkzMAorI2RlZmluZSBEUjdfTEVOM19MRU4JCURSN19MRU5fTEVOCisKKy8q CisgKiBDUFVJRCByZXR1cm4gdmFsdWVzCisgKi8KKyNkZWZpbmUgQ1BVSUQxX0VBWF9TVEVQUElO RwkJMAorI2RlZmluZSBDUFVJRDFfRUFYX1NURVBQSU5HX0xFTgk0CisjZGVmaW5lIENQVUlEMV9F QVhfTU9ERUwJCQk0CisjZGVmaW5lIENQVUlEMV9FQVhfTU9ERUxfTEVOCQk0CisjZGVmaW5lIENQ VUlEMV9FQVhfRkFNSUxZCQk4CisjZGVmaW5lIENQVUlEMV9FQVhfRkFNSUxZX0xFTgkJNAorI2Rl ZmluZSBDUFVJRDFfRUFYX1RZUEUJCQkxMgorI2RlZmluZSBDUFVJRDFfRUFYX1RZUEVfTEVOCQky CisjZGVmaW5lIENQVUlEMV9FQVhfWE1PREVMCQkxNgorI2RlZmluZSBDUFVJRDFfRUFYX1hNT0RF TF9MRU4JCTQKKyNkZWZpbmUgQ1BVSUQxX0VBWF9YRkFNSUxZCQkyMAorI2RlZmluZSBDUFVJRDFf RUFYX1hGQU1JTFlfTEVOCTQKKyNkZWZpbmUgQ1BVSUQxX0VCWF9CUkFORAkJCTAKKyNkZWZpbmUg Q1BVSUQxX0VCWF9CUkFORF9MRU4JCTgKKyNkZWZpbmUgQ1BVSUQxX0VCWF9DTEZMU0hTWgkJOAor I2RlZmluZSBDUFVJRDFfRUJYX0NMRkxTSFNaX0xFTgk4CisjZGVmaW5lIENQVUlEMV9FQlhfTFBQ UAkJCTE2CisjZGVmaW5lIENQVUlEMV9FQlhfTFBQUF9MRU4JCTgKKyNkZWZpbmUgQ1BVSUQxX0VC WF9MQVBJQ19JRAkJMjQKKyNkZWZpbmUgQ1BVSUQxX0VCWF9MQVBJQ19JRF9MRU4JOAorI2RlZmlu ZSBDUFVJRDFfRUNYX1NTRTMJCQkwCisjZGVmaW5lIENQVUlEMV9FQ1hfTU9OSVRPUgkJMworI2Rl ZmluZSBDUFVJRDFfRUNYX0RTQ1BMCQkJNAorI2RlZmluZSBDUFVJRDFfRUNYX0VJU1QJCQk3Cisj ZGVmaW5lIENQVUlEMV9FQ1hfVE0yCQkJOAorI2RlZmluZSBDUFVJRDFfRUNYX0NJRAkJCTEwCisj ZGVmaW5lIENQVUlEMV9FQ1hfQ1gxNgkJCTEzCisjZGVmaW5lIENQVUlEMV9FQ1hfeFRQUgkJCTE0 CisjZGVmaW5lIENQVUlEMV9FRFhfRlBVCQkJMAorI2RlZmluZSBDUFVJRDFfRURYX1ZNRQkJCTEK KyNkZWZpbmUgQ1BVSUQxX0VEWF9ERQkJCTIKKyNkZWZpbmUgQ1BVSUQxX0VEWF9QU0UJCQkzCisj ZGVmaW5lIENQVUlEMV9FRFhfVFNDCQkJNAorI2RlZmluZSBDUFVJRDFfRURYX01TUgkJCTUKKyNk ZWZpbmUgQ1BVSUQxX0VEWF9QQUUJCQk2CisjZGVmaW5lIENQVUlEMV9FRFhfTUNFCQkJNworI2Rl ZmluZSBDUFVJRDFfRURYX0NYOAkJCTgKKyNkZWZpbmUgQ1BVSUQxX0VEWF9BUElDCQkJOQorI2Rl ZmluZSBDUFVJRDFfRURYX1NFUAkJCTExCisjZGVmaW5lIENQVUlEMV9FRFhfTVRSUgkJCTEyCisj ZGVmaW5lIENQVUlEMV9FRFhfUEdFCQkJMTMKKyNkZWZpbmUgQ1BVSUQxX0VEWF9NQ0EJCQkxNAor I2RlZmluZSBDUFVJRDFfRURYX0NNT1YJCQkxNQorI2RlZmluZSBDUFVJRDFfRURYX1BBVAkJCTE2 CisjZGVmaW5lIENQVUlEMV9FRFhfUFNFMzYJCQkxNworI2RlZmluZSBDUFVJRDFfRURYX1BTTgkJ CTE4CisjZGVmaW5lIENQVUlEMV9FRFhfQ0xGU0gJCQkxOQorI2RlZmluZSBDUFVJRDFfRURYX0RT CQkJMjEKKyNkZWZpbmUgQ1BVSUQxX0VEWF9BQ1BJCQkJMjIKKyNkZWZpbmUgQ1BVSUQxX0VEWF9N TVgJCQkyMworI2RlZmluZSBDUFVJRDFfRURYX0ZYU1IJCQkyNAorI2RlZmluZSBDUFVJRDFfRURY X1NTRQkJCTI1CisjZGVmaW5lIENQVUlEMV9FRFhfU1NFMgkJCTI2CisjZGVmaW5lIENQVUlEMV9F RFhfU1MJCQkyNworI2RlZmluZSBDUFVJRDFfRURYX0hUVAkJCTI4CisjZGVmaW5lIENQVUlEMV9F RFhfVE0JCQkyOQorI2RlZmluZSBDUFVJRDFfRURYX0lBNjQJCQkzMAorI2RlZmluZSBDUFVJRDFf RURYX1BCRQkJCTMxCisKKyNkZWZpbmUgQ1BVSUQyX1JFU0VSVkVECQkJMzEKKworI2RlZmluZSBD UFVJRHgxX0FNRF9FQVhfU1RFUFBJTkcJCUNQVUlEMV9FQVhfU1RFUFBJTkcKKyNkZWZpbmUgQ1BV SUR4MV9BTURfRUFYX1NURVBQSU5HX0xFTglDUFVJRDFfRUFYX1NURVBQSU5HX0xFTgorI2RlZmlu ZSBDUFVJRHgxX0FNRF9FQVhfTU9ERUwJCQlDUFVJRDFfRUFYX01PREVMCisjZGVmaW5lIENQVUlE eDFfQU1EX0VBWF9NT0RFTF9MRU4JCUNQVUlEMV9FQVhfTU9ERUxfTEVOCisjZGVmaW5lIENQVUlE eDFfQU1EX0VBWF9GQU1JTFkJCUNQVUlEMV9FQVhfRkFNSUxZCisjZGVmaW5lIENQVUlEeDFfQU1E X0VBWF9GQU1JTFlfTEVOCQlDUFVJRDFfRUFYX0ZBTUlMWV9MRU4KKyNkZWZpbmUgQ1BVSUR4MV9B TURfRUFYX1RZUEUJCQlDUFVJRDFfRUFYX1RZUEUKKyNkZWZpbmUgQ1BVSUR4MV9BTURfRUFYX1RZ UEVfTEVOCQlDUFVJRDFfRUFYX1RZUEVfTEVOCisjZGVmaW5lIENQVUlEeDFfQU1EX0VBWF9YTU9E RUwJCUNQVUlEMV9FQVhfWE1PREVMCisjZGVmaW5lIENQVUlEeDFfQU1EX0VBWF9YTU9ERUxfTEVO CQlDUFVJRDFfRUFYX1hNT0RFTF9MRU4KKyNkZWZpbmUgQ1BVSUR4MV9BTURfRUFYX1hGQU1JTFkJ CUNQVUlEMV9FQVhfWEZBTUlMWQorI2RlZmluZSBDUFVJRHgxX0FNRF9FQVhfWEZBTUlMWV9MRU4J Q1BVSUQxX0VBWF9YRkFNSUxZX0xFTgorI2RlZmluZSBDUFVJRHgxX0FNRF9FQlhfQlJBTkQJCQkw CisjZGVmaW5lIENQVUlEeDFfQU1EX0VCWF9CUkFORF9MRU4JCTE2CisjZGVmaW5lIENQVUlEeDFf RUNYX0xBSEYJCQkwCisjZGVmaW5lIENQVUlEeDFfRUNYX0NNUF9MRUdBQ1kJMQorI2RlZmluZSBD UFVJRHgxX0VDWF9TVk0JCTIKKyNkZWZpbmUgQ1BVSUR4MV9FQ1hfRVhUX0FQSUMJCTMKKyNkZWZp bmUgQ1BVSUR4MV9FQ1hfTE9DS19NT1ZfQ1IJCTQKKyNkZWZpbmUgQ1BVSUR4MV9FQ1hfM0ROT1df UFJFRkVUQ0gJOAorI2RlZmluZSBDUFVJRHgxX0VEWF9GUFUJCQkwCisjZGVmaW5lIENQVUlEeDFf RURYX1ZNRQkJCTEKKyNkZWZpbmUgQ1BVSUR4MV9FRFhfREUJCQkyCisjZGVmaW5lIENQVUlEeDFf RURYX1BTRQkJCTMKKyNkZWZpbmUgQ1BVSUR4MV9FRFhfVFNDCQkJNAorI2RlZmluZSBDUFVJRHgx X0VEWF9NU1IJCQk1CisjZGVmaW5lIENQVUlEeDFfRURYX1BBRQkJCTYKKyNkZWZpbmUgQ1BVSUR4 MV9FRFhfTUNFCQkJNworI2RlZmluZSBDUFVJRHgxX0VEWF9DWDgJCQk4CisjZGVmaW5lIENQVUlE eDFfRURYX0FQSUMJCQk5CisjZGVmaW5lIENQVUlEeDFfRURYX1NDUgkJCTExCisjZGVmaW5lIENQ VUlEeDFfRURYX01UUlIJCQkxMgorI2RlZmluZSBDUFVJRHgxX0VEWF9QR0UJCQkxMworI2RlZmlu ZSBDUFVJRHgxX0VEWF9NQ0EJCQkxNAorI2RlZmluZSBDUFVJRHgxX0VEWF9DTU9WCQkJMTUKKyNk ZWZpbmUgQ1BVSUR4MV9FRFhfUEFUCQkJMTYKKyNkZWZpbmUgQ1BVSUR4MV9FRFhfUFNFMzYJCTE3 CisjZGVmaW5lIENQVUlEeDFfRURYX05YCQkJMjAKKyNkZWZpbmUgQ1BVSUR4MV9FRFhfTU1YCQkJ MjIKKyNkZWZpbmUgQ1BVSUR4MV9FRFhfQU1ETU1YCQkyMworI2RlZmluZSBDUFVJRHgxX0VEWF9G WFNSCQkJMjQKKyNkZWZpbmUgQ1BVSUR4MV9FRFhfRlhTUk9QVAkJMjUKKyNkZWZpbmUgQ1BVSUR4 MV9FRFhfUkRUU0NQCQkyNworI2RlZmluZSBDUFVJRHgxX0VEWF9MTQkJCTI5CisjZGVmaW5lIENQ VUlEeDFfRURYX0FNRDNETk9XCQkzMAorI2RlZmluZSBDUFVJRHgxX0VEWF8zRE5PVwkJMzEKKwor I2RlZmluZSBDUFVJRHg1X0FNRF9FQVhfTDFJVExCXzJNX05VTQkJMAorI2RlZmluZSBDUFVJRHg1 X0FNRF9FQVhfTDFJVExCXzJNX05VTV9MRU4JOAorI2RlZmluZSBDUFVJRHg1X0FNRF9FQVhfTDFJ VExCXzJNX0FTU09DCQk4CisjZGVmaW5lIENQVUlEeDVfQU1EX0VBWF9MMUlUTEJfMk1fQVNTT0Nf TEVOCTgKKyNkZWZpbmUgQ1BVSUR4NV9BTURfRUFYX0wxRFRMQl8yTV9OVU0JCTE2CisjZGVmaW5l IENQVUlEeDVfQU1EX0VBWF9MMURUTEJfMk1fTlVNX0xFTgk4CisjZGVmaW5lIENQVUlEeDVfQU1E X0VBWF9MMURUTEJfMk1fQVNTT0MJCTI0CisjZGVmaW5lIENQVUlEeDVfQU1EX0VBWF9MMURUTEJf Mk1fQVNTT0NfTEVOCTgKKyNkZWZpbmUgQ1BVSUR4NV9BTURfRUJYX0wxSVRMQl80S19OVU0JCTAK KyNkZWZpbmUgQ1BVSUR4NV9BTURfRUJYX0wxSVRMQl80S19OVU1fTEVOCTgKKyNkZWZpbmUgQ1BV SUR4NV9BTURfRUJYX0wxSVRMQl80S19BU1NPQwkJOAorI2RlZmluZSBDUFVJRHg1X0FNRF9FQlhf TDFJVExCXzRLX0FTU09DX0xFTgk4CisjZGVmaW5lIENQVUlEeDVfQU1EX0VCWF9MMURUTEJfNEtf TlVNCQkxNgorI2RlZmluZSBDUFVJRHg1X0FNRF9FQlhfTDFEVExCXzRLX05VTV9MRU4JOAorI2Rl ZmluZSBDUFVJRHg1X0FNRF9FQlhfTDFEVExCXzRLX0FTU09DCQkyNAorI2RlZmluZSBDUFVJRHg1 X0FNRF9FQlhfTDFEVExCXzRLX0FTU09DX0xFTgk4CisjZGVmaW5lIENQVUlEeDVfQU1EX0VDWF9M MUlDX0xJTkVTSVpFCQkwCisjZGVmaW5lIENQVUlEeDVfQU1EX0VDWF9MMUlDX0xJTkVTSVpFX0xF Tgk4CisjZGVmaW5lIENQVUlEeDVfQU1EX0VDWF9MMUlDX0FTU09DCQkJOAorI2RlZmluZSBDUFVJ RHg1X0FNRF9FQ1hfTDFJQ19BU1NPQ19MRU4JCTgKKyNkZWZpbmUgQ1BVSUR4NV9BTURfRUNYX0wx SUNfTFBUCQkJMTYKKyNkZWZpbmUgQ1BVSUR4NV9BTURfRUNYX0wxSUNfTFBUX0xFTgkJOAorI2Rl ZmluZSBDUFVJRHg1X0FNRF9FQ1hfTDFJQ19TSVpFCQkJMjQKKyNkZWZpbmUgQ1BVSUR4NV9BTURf RUNYX0wxSUNfU0laRV9MRU4JCTgKKyNkZWZpbmUgQ1BVSUR4NV9BTURfRURYX0wxRENfTElORVNJ WkUJCTAKKyNkZWZpbmUgQ1BVSUR4NV9BTURfRURYX0wxRENfTElORVNJWkVfTEVOCTgKKyNkZWZp bmUgQ1BVSUR4NV9BTURfRURYX0wxRENfQVNTT0MJCQk4CisjZGVmaW5lIENQVUlEeDVfQU1EX0VE WF9MMURDX0FTU09DX0xFTgkJOAorI2RlZmluZSBDUFVJRHg1X0FNRF9FRFhfTDFEQ19MUFQJCQkx NgorI2RlZmluZSBDUFVJRHg1X0FNRF9FRFhfTDFEQ19MUFRfTEVOCQk4CisjZGVmaW5lIENQVUlE eDVfQU1EX0VEWF9MMURDX1NJWkUJCQkyNAorI2RlZmluZSBDUFVJRHg1X0FNRF9FRFhfTDFEQ19T SVpFX0xFTgkJOAorCisjZGVmaW5lIENQVUlEeDZfQU1EX0VBWF9MMklUTEJfMk1fTlVNCQkwCisj ZGVmaW5lIENQVUlEeDZfQU1EX0VBWF9MMklUTEJfMk1fTlVNX0xFTgkxMgorI2RlZmluZSBDUFVJ RHg2X0FNRF9FQVhfTDJJVExCXzJNX0FTU09DCQkxMgorI2RlZmluZSBDUFVJRHg2X0FNRF9FQVhf TDJJVExCXzJNX0FTU09DX0xFTgk0CisjZGVmaW5lIENQVUlEeDZfQU1EX0VBWF9MMkRUTEJfMk1f TlVNCQkxNgorI2RlZmluZSBDUFVJRHg2X0FNRF9FQVhfTDJEVExCXzJNX05VTV9MRU4JMTIKKyNk ZWZpbmUgQ1BVSUR4Nl9BTURfRUFYX0wyRFRMQl8yTV9BU1NPQwkJMjgKKyNkZWZpbmUgQ1BVSUR4 Nl9BTURfRUFYX0wyRFRMQl8yTV9BU1NPQ19MRU4JNAorI2RlZmluZSBDUFVJRHg2X0FNRF9FQlhf TDJJVExCXzRLX05VTQkJMAorI2RlZmluZSBDUFVJRHg2X0FNRF9FQlhfTDJJVExCXzRLX05VTV9M RU4JMTIKKyNkZWZpbmUgQ1BVSUR4Nl9BTURfRUJYX0wySVRMQl80S19BU1NPQwkJMTIKKyNkZWZp bmUgQ1BVSUR4Nl9BTURfRUJYX0wySVRMQl80S19BU1NPQ19MRU4JNAorI2RlZmluZSBDUFVJRHg2 X0FNRF9FQlhfTDJEVExCXzRLX05VTQkJMTYKKyNkZWZpbmUgQ1BVSUR4Nl9BTURfRUJYX0wyRFRM Ql80S19OVU1fTEVOCTEyCisjZGVmaW5lIENQVUlEeDZfQU1EX0VCWF9MMkRUTEJfNEtfQVNTT0MJ CTI4CisjZGVmaW5lIENQVUlEeDZfQU1EX0VCWF9MMkRUTEJfNEtfQVNTT0NfTEVOCTQKKyNkZWZp bmUgQ1BVSUR4Nl9BTURfRUNYX0wyVUNfTElORVNJWkUJCTAKKyNkZWZpbmUgQ1BVSUR4Nl9BTURf RUNYX0wyVUNfTElORVNJWkVfTEVOCTgKKyNkZWZpbmUgQ1BVSUR4Nl9BTURfRUNYX0wyVUNfQVNT T0MJCQk4CisjZGVmaW5lIENQVUlEeDZfQU1EX0VDWF9MMlVDX0FTU09DX0xFTgkJNAorI2RlZmlu ZSBDUFVJRHg2X0FNRF9FQ1hfTDJVQ19MUFQJCQkxMgorI2RlZmluZSBDUFVJRHg2X0FNRF9FQ1hf TDJVQ19MUFRfTEVOCQk0CisjZGVmaW5lIENQVUlEeDZfQU1EX0VDWF9MMlVDX1NJWkUJCQkxNgor I2RlZmluZSBDUFVJRHg2X0FNRF9FQ1hfTDJVQ19TSVpFX0xFTgkJMTYKKworI2RlZmluZSBDUFVJ RHg3X0FNRF9FRFhfVFMJCQkwCisjZGVmaW5lIENQVUlEeDdfQU1EX0VEWF9GSUQJCQkxCisjZGVm aW5lIENQVUlEeDdfQU1EX0VEWF9WSUQJCQkyCisjZGVmaW5lIENQVUlEeDdfQU1EX0VEWF9UVFAJ CQkzCisjZGVmaW5lIENQVUlEeDdfQU1EX0VEWF9UTQkJCTQKKyNkZWZpbmUgQ1BVSUR4N19BTURf RURYX1NUQwkJCTUKKyNkZWZpbmUgQ1BVSUR4N19BTURfRURYXzEwME1IWgkJCTYKKworI2RlZmlu ZSBDUFVJRHg4X0VBWF9QQV9CSVRTCQkJMAorI2RlZmluZSBDUFVJRHg4X0VBWF9QQV9CSVRTX0xF TgkJOAorI2RlZmluZSBDUFVJRHg4X0VBWF9WQV9CSVRTCQkJOAorI2RlZmluZSBDUFVJRHg4X0VB WF9WQV9CSVRTX0xFTgkJMTYKKyNkZWZpbmUgQ1BVSUR4OF9FQ1hfTUFYX0NPUkUJCQkwCisjZGVm aW5lIENQVUlEeDhfRUNYX01BWF9DT1JFX0xFTgkJOAorCisjZGVmaW5lIENQVUlEeEFfRUFYX1NW TVJFVgkJMAorI2RlZmluZSBDUFVJRHhBX0VBWF9TVk1SRVZfTEVOCQk4CisjZGVmaW5lIENQVUlE eEFfRUFYXzAJCQk4CisjZGVmaW5lIENQVUlEeEFfRURYX05QCQkJMAorCisjaWZuZGVmIF9fQVNT RU1CTFlfXworCit0eXBlZGVmIHVuaW9uIHsKKwl1aW50NjRfdAlxOworCXVpbnQzMl90CWRbMl07 CisJdWludDE2X3QJd1s0XTsKKwl1aW50OF90CWJbOF07Cit9IG1teHJlZ190OworCit0eXBlZGVm IHVuaW9uIHsKKwlkb3VibGUJZGJsWzJdOworCWZsb2F0CWZsdFs0XTsKKwl1aW50NjRfdAlxWzJd OworCXVpbnQzMl90CWRbNF07CisJdWludDE2X3QJd1s4XTsKKwl1aW50OF90CWJbMTZdOworfSB4 bW1yZWdfdDsKKworLyoKKyAqIEZYU0FWRSAvIEZYUlNUT1IgbGF5b3V0CisgKi8KK3R5cGVkZWYg c3RydWN0IHsKKwl1aW50MTZfdAlmY3c7CisJdWludDE2X3QJZnN3OworCXVpbnQ4X3QJZnR3Owor CXVpbnQ4X3QJX3JzcnZkMV87CisJdWludDE2X3QJZm9wOworCXVpbnQzMl90CWZpcDsKKwl1aW50 MTZfdAlmY3M7CisJdWludDE2X3QJX3JzcnZkMl87CisJdWludDMyX3QJZmRwOworCXVpbnQxNl90 CWZkczsKKwl1aW50MTZfdAlfcnNydmQzXzsKKwl1aW50MzJfdAlteGNzcjsKKwl1aW50MzJfdAlt eGNzcl9tYXNrOworCXVuaW9uIHsKKwkJc3RydWN0IHsKKwkJCXVpbnQ2NF90CW1hbnQ7CisJCQl1 aW50MzJfdAlleHA6MTU7CisJCQlpbnQzMl90CXNpZ246MTsKKwkJCXVpbnQzMl90CV9wYWRfOwor CQl9CQlmcDsKKwkJbW14cmVnX3QJbW14OworCX0JCXJlZ1s4XTsKKwl4bW1yZWdfdAl4bW1bOF07 CisJdWludDhfdAlfcnNydmQ1X1sxNCoxNl07Cit9IGZ4c2F2ZV90IF9fYXR0cmlidXRlX18oKF9f YWxpZ25lZF9fKDE2KSkpOworCisjcHJhZ21hIHBhY2socHVzaCwgMikKKworLyoKKyAqIEZTQVZF IC8gRlJTVE9SIGxheW91dAorICovCit0eXBlZGVmIHN0cnVjdCB7CisJdWludDE2X3QJZmN3Owor CXVpbnQxNl90CV9yc3J2ZDFfOworCXVpbnQxNl90CWZzdzsKKwl1aW50MTZfdAlfcnNydmQyXzsK Kwl1aW50MTZfdAlmdHc7CisJdWludDE2X3QJX3JzcnZkM187CisJdWludDMyX3QJZmlwOworCXVp bnQxNl90CWZjczsKKwl1aW50MTZfdAlmb3A6MTE7CisJdWludDE2X3QJOjU7CisJdWludDMyX3QJ ZmRwOworCXVpbnQxNl90CWZkczsKKwl1aW50MTZfdAlfcnNydmQ0XzsKKwl1bmlvbiB7CisJCXN0 cnVjdCB7CisJCQl1aW50NjRfdAltYW50OworCQkJdWludDE2X3QJZXhwOjE1OworCQkJaW50MTZf dAlzaWduOjE7CisJCX0JCWZwOworCQltbXhyZWdfdAltbXg7CisJfQkJcmVnWzhdOworfSBmc2F2 ZV90OworCisvKgorICogRGVzY3JpcHRvciBBdHRyaWJ1dGVzCisgKi8KK3R5cGVkZWYgc3RydWN0 IHsKKwl1aW50OF90CXR5cGU6NTsKKwl1aW50OF90CWRwbDoyOworCXVpbnQ4X3QJcDoxOworfSBE ZXNjcmlwdG9yQXR0cmlidXRlc190OworCisvKgorICogRGVzY3JpcHRvciBUYWJsZSBFbnRyeQor ICovCit0eXBlZGVmIHVuaW9uIHsKKwlzdHJ1Y3QgeworCQl1aW50MTZfdAlsaW1pdExvdzsKKwkJ dWludDE2X3QJYmFzZUxvdzsKKwkJdWludDhfdAliYXNlTWlkOworCQl1bmlvbiB7CisJCQl1aW50 OF90CWF0dHJMb3c7CisJCQlEZXNjcmlwdG9yQXR0cmlidXRlc190IGF0dHI7CisJCX07CisJCXVu aW9uIHsKKwkJCXVpbnQ4X3QJYXR0ckhpZ2g7CisJCQlzdHJ1Y3QgeworCQkJCXVpbnQ4X3QJbGlt aXRIaWdoOjQ7CisJCQkJdWludDhfdAlhdmw6MTsKKwkJCQl1aW50OF90CToxOworCQkJCXVpbnQ4 X3QJZDoxOworCQkJCXVpbnQ4X3QJZzoxOworCQkJfTsKKwkJfTsKKwkJdWludDhfdAliYXNlSGln aDsKKwl9CQlzZWdtZW50OworCXN0cnVjdCB7CisJCXVpbnQxNl90CW9mZnNldExvdzsKKwkJdWlu dDE2X3QJc2VsZWN0b3I7CisJCXVuaW9uIHsKKwkJCXVpbnQxNl90CWNvbnRyb2w7CisJCQlzdHJ1 Y3QgeworCQkJCXVpbnQ4X3QJbnVtUGFybXM6NTsKKwkJCQl1aW50OF90CTozOworCQkJCURlc2Ny aXB0b3JBdHRyaWJ1dGVzX3QgYXR0cjsKKwkJCX07CisJCX07CisJCXVpbnQxNl90CW9mZnNldEhp Z2g7CisJfQkJZ2F0ZTsKK30gRGVzY3JpcHRvclRhYmxlRW50cnlfdDsKKworI2RlZmluZSBJU19T RUdNRU5UKGQpCQkoKChkKS5zZWdtZW50LmF0dHJMb3cgJiAweDE0KSAhPSAweDA0KQorI2RlZmlu ZSBJU19TRUdNRU5UX0VYRUMoZCkJKCgoZCkuc2VnbWVudC5hdHRyTG93ICYgKCgxVSA8PCBERVND UklQVE9SX1MpIHwgKDFVIDw8IERFU0NSSVBUT1JfQ09ERSkpKSBcCisJCQkJCQkJPT0gKCgxVSA8 PCBERVNDUklQVE9SX1MpIHwgKDFVIDw8IERFU0NSSVBUT1JfQ09ERSkpKQorI2RlZmluZSBJU19T RUdNRU5UX1JFQUQoZCkJKCgoZCkuc2VnbWVudC5hdHRyTG93ICYgKCgxVSA8PCBERVNDUklQVE9S X1MpIHwgKDFVIDw8IERFU0NSSVBUT1JfQ09ERSkpKSBcCisJCQkJCQkJPT0gKDFVIDw8IERFU0NS SVBUT1JfUykgXAorCQkJCQkJICAgfHwgKChkKS5zZWdtZW50LmF0dHJMb3cgJiAoKDFVIDw8IERF U0NSSVBUT1JfUykgfCAoMVUgPDwgREVTQ1JJUFRPUl9DT0RFKSB8ICgxVSA8PCBERVNDUklQVE9S X1IpKSkgXAorCQkJCQkJCT09ICgoMVUgPDwgREVTQ1JJUFRPUl9TKSB8ICgxVSA8PCBERVNDUklQ VE9SX0NPREUpIHwgKDFVIDw8IERFU0NSSVBUT1JfUikpKQorI2RlZmluZSBJU19TRUdNRU5UX1dS SVRFKGQpCSgoKGQpLnNlZ21lbnQuYXR0ckxvdyAmICgoMVUgPDwgREVTQ1JJUFRPUl9TKSB8ICgx VSA8PCBERVNDUklQVE9SX0NPREUpIHwgKDFVIDw8IERFU0NSSVBUT1JfVykpKSBcCisJCQkJCQkJ PT0gKCgxVSA8PCBERVNDUklQVE9SX1MpIHwgKDFVIDw8IERFU0NSSVBUT1JfVykpKQorI2RlZmlu ZSBTRUdNRU5UX0JBU0UoZCkJCSgoZCkuc2VnbWVudC5iYXNlTG93IHwgKCh1aW50MzJfdCkoZCku c2VnbWVudC5iYXNlTWlkIDw8IDE2KSB8ICgodWludDMyX3QpKGQpLnNlZ21lbnQuYmFzZUhpZ2gg PDwgMjQpKQorI2RlZmluZSBTRUdNRU5UX0xJTUlUKGQpCQkoKGQpLnNlZ21lbnQuZyBcCisJCQkJ CQkJPyAoKHVpbnQzMl90KShkKS5zZWdtZW50LmxpbWl0TG93IDw8IDEyKSB8ICgodWludDMyX3Qp KGQpLnNlZ21lbnQubGltaXRIaWdoIDw8IDI4KSB8IDB4ZmZmIFwKKwkJCQkJCQk6IChkKS5zZWdt ZW50LmxpbWl0TG93IHwgKCh1aW50MzJfdCkoZCkuc2VnbWVudC5saW1pdEhpZ2ggPDwgMTYpKQor CisjZGVmaW5lIElTX0dBVEUoZCkJCQkoKChkKS5nYXRlLmNvbnRyb2wgJiAweDE0MDApID09IDB4 MDQwMCkKKyNkZWZpbmUgR0FURV9TRUxFQ1RPUihkKQkJKChkKS5nYXRlLnNlbGVjdG9yKQorI2Rl ZmluZSBHQVRFX09GRlNFVChkKQkJKChkKS5nYXRlLm9mZnNldExvdyB8ICgodWludDMyX3QpKGQp LmdhdGUub2Zmc2V0SGlnaCA8PCAxNikpCisKKy8qCisgKiBHRFRSL0lEVFIgbWVtb3J5IGZvcm1h dAorICovCit0eXBlZGVmIHN0cnVjdCB7CisJdWludDE2X3QgbGltaXQ7CisJdWludDMyX3QgYmFz ZTsKK30gUHNldWRvRGVzY3JpcHRvcl90OworCisjcHJhZ21hIHBhY2socG9wKQorCisjZW5kaWYg LyogX19BU1NFTUJMWV9fICovCisKKy8qCisgKiBGUFUgQ29udHJvbCBXb3JkCisgKi8KKyNkZWZp bmUgRkNXX01CWgkJCQkJMHhlMGMwCisjZGVmaW5lIEZDV19JTQkJCQkJMAorI2RlZmluZSBGQ1df RE0JCQkJCTEKKyNkZWZpbmUgRkNXX1pNCQkJCQkyCisjZGVmaW5lIEZDV19PTQkJCQkJMworI2Rl ZmluZSBGQ1dfVU0JCQkJCTQKKyNkZWZpbmUgRkNXX1BNCQkJCQk1CisjZGVmaW5lIEZDV19QQwkJ CQkJOAorI2RlZmluZSBGQ1dfUENfTEVOCQkJCTIKKyMJZGVmaW5lIEZDV19QQ19TSU5HTEUJCQkw VQorIwlkZWZpbmUgRkNXX1BDX0RPVUJMRQkJCTJVCisjCWRlZmluZSBGQ1dfUENfRVhURU5ERUQJ CQkzVQorI2RlZmluZSBGQ1dfUkMJCQkJCTEwCisjZGVmaW5lIEZDV19SQ19MRU4JCQkJMgorLyog VGhlIHJvdW5kaW5nIGNvbnRyb2wgdmFsdWVzIGFyZSB1c2VkIGZvciBib3RoIEZDVyBhbmQgTVhD U1IuICovCisjCWRlZmluZSBSQ19ORUFSRVNUCQkJCTBVCisjCWRlZmluZSBSQ19ET1dOCQkJCQkx VQorIwlkZWZpbmUgUkNfVVAJCQkJCTJVCisjCWRlZmluZSBSQ19DSE9QCQkJCQkzVQorIwlkZWZp bmUgUkNfVFJVTkNBVEUJCQkJUkNfQ0hPUAorI2RlZmluZSBGQ1dfWAkJCQkJMTIKKworLyoKKyAq IEZQVSBTdGF0dXMgV29yZAorICovCisjZGVmaW5lIEZTV19JRQkJCQkJMAorI2RlZmluZSBGU1df REUJCQkJCTEKKyNkZWZpbmUgRlNXX1pFCQkJCQkyCisjZGVmaW5lIEZTV19PRQkJCQkJMworI2Rl ZmluZSBGU1dfVUUJCQkJCTQKKyNkZWZpbmUgRlNXX1BFCQkJCQk1CisjZGVmaW5lIEZTV19TRgkJ CQkJNgorI2RlZmluZSBGU1dfRVMJCQkJCTcKKyNkZWZpbmUgRlNXX0MwCQkJCQk4CisjZGVmaW5l IEZTV19DMQkJCQkJOQorI2RlZmluZSBGU1dfQzIJCQkJCTEwCisjZGVmaW5lIEZTV19UT1AJCQkJ MTEKKyNkZWZpbmUgRlNXX1RPUF9MRU4JCQkJMworI2RlZmluZSBGU1dfQzMJCQkJCTE0CisjZGVm aW5lIEZTV19CCQkJCQkxNQorCisvKgorICogRlBVIFRhZyBXb3JkCisgKi8KKyNkZWZpbmUgRlRX X1RBR19MRU4JCQkJMgorIwlkZWZpbmUgRlRXX1ZBTElECQkJCTBVCisjCWRlZmluZSBGVFdfWkVS TwkJCQkxVQorIwlkZWZpbmUgRlRXX1NQRUNJQUwJCQkJMlUKKyMJZGVmaW5lIEZUV19FTVBUWQkJ CQkzVQorCisvKgorICogTU1YIENvbnRyb2wgYW5kIFN0YXR1cyBSZWdpc3RlcgorICovCisjZGVm aW5lIE1YQ1NSX0lFCQkJCTAKKyNkZWZpbmUgTVhDU1JfREUJCQkJMQorI2RlZmluZSBNWENTUl9a RQkJCQkyCisjZGVmaW5lIE1YQ1NSX09FCQkJCTMKKyNkZWZpbmUgTVhDU1JfVUUJCQkJNAorI2Rl ZmluZSBNWENTUl9QRQkJCQk1CisjZGVmaW5lIE1YQ1NSX0RBWgkJCQk2CisjZGVmaW5lIE1YQ1NS X0lNCQkJCTcKKyNkZWZpbmUgTVhDU1JfRE0JCQkJOAorI2RlZmluZSBNWENTUl9aTQkJCQk5Cisj ZGVmaW5lIE1YQ1NSX09NCQkJCTEwCisjZGVmaW5lIE1YQ1NSX1VNCQkJCTExCisjZGVmaW5lIE1Y Q1NSX1BNCQkJCTEyCisjZGVmaW5lIE1YQ1NSX1JDCQkJCTEzCisjZGVmaW5lIE1YQ1NSX1JDX0xF TgkJCTIKKyNkZWZpbmUgTVhDU1JfRloJCQkJMTUKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKwor LyoKKyAqIDMyLWJpdCBUYXNrIFN0YXRlIFNlZ21lbnQgbGF5b3V0CisgKi8KK3R5cGVkZWYgc3Ry dWN0IHsKKwl1aW50MTZfdAliYWNrbGluaywgX2JhY2tsaW5rX3BhZDsKKwl1aW50MzJfdAllc3Aw OworCXVpbnQxNl90CXNzMCwgX3NzMF9wYWQ7CisJdWludDMyX3QJZXNwMTsKKwl1aW50MTZfdAlz czEsIF9zczFfcGFkOworCXVpbnQzMl90CWVzcDI7CisJdWludDE2X3QJc3MyLCBfc3MyX3BhZDsK Kwl1bmlvbiB7CisJCXVpbnQzMl90CWNyMzsKKwkJdWludDMyX3QJcGRicjsKKwkJdWludDMyX3QJ cGRwdHI7CisJfTsKKwl1aW50MzJfdAllaXA7CisJdWludDMyX3QJZWZsYWdzOworCXVpbnQzMl90 CWVheDsKKwl1aW50MzJfdAllY3g7CisJdWludDMyX3QJZWR4OworCXVpbnQzMl90CWVieDsKKwl1 aW50MzJfdAllc3A7CisJdWludDMyX3QJZWJwOworCXVpbnQzMl90CWVzaTsKKwl1aW50MzJfdAll ZGk7CisJdWludDE2X3QJZXMsIF9lc19wYWQ7CisJdWludDE2X3QJY3MsIF9jc19wYWQ7CisJdWlu dDE2X3QJc3MsIF9zc19wYWQ7CisJdWludDE2X3QJZHMsIF9kc19wYWQ7CisJdWludDE2X3QJZnMs IF9mc19wYWQ7CisJdWludDE2X3QJZ3MsIF9nc19wYWQ7CisJdWludDE2X3QJbGR0ciwgX2xkdHJf cGFkOworCXVpbnQxNl90CXQ6MTsKKwl1aW50MTZfdAlpb2Jhc2U7Cit9IHRzczMyX3Q7CisKKyNl bmRpZgorCisvKgorICogTVNSIGluZGV4ZXMKKyAqLworI2RlZmluZSBJQTMyX1RJTUVTVEFNUF9D T1VOVEVSCTB4MTAKKyNkZWZpbmUgSUEzMl9QTEFURk9STV9JRAkJCTB4MTcKKyNkZWZpbmUgSUEz Ml9BUElDX0JBU0UJCQkweDFiCisjZGVmaW5lIElBMzJfQklPU19VUERBVEVfVFJJRwkJMHg3OQor I2RlZmluZSBJQTMyX0JJT1NfU0lHTl9JRAkJMHg4YgorI2RlZmluZSBJQTMyX01UUlJDQVAJCQkw eGZlCisjZGVmaW5lIElBMzJfTUlTQ19DVEwJCQkweDExOQorI2RlZmluZSBJQTMyX1NZU0VOVEVS X0NTCQkJMHgxNzQKKyNkZWZpbmUgSUEzMl9TWVNFTlRFUl9FU1AJCTB4MTc1CisjZGVmaW5lIElB MzJfU1lTRU5URVJfRUlQCQkweDE3NgorI2RlZmluZSBJQTMyX01DR19DQVAJCQkweDE3OQorI2Rl ZmluZSBJQTMyX01DR19TVEFUVVMJCQkweDE3YQorI2RlZmluZSBJQTMyX01DR19DVEwJCQkweDE3 YgorI2RlZmluZSBJQTMyX01DR19FQVgJCQkweDE4MAorI2RlZmluZSBJQTMyX01DR19FQlgJCQkw eDE4MQorI2RlZmluZSBJQTMyX01DR19FQ1gJCQkweDE4MgorI2RlZmluZSBJQTMyX01DR19FRFgJ CQkweDE4MworI2RlZmluZSBJQTMyX01DR19FU0kJCQkweDE4NAorI2RlZmluZSBJQTMyX01DR19F REkJCQkweDE4NQorI2RlZmluZSBJQTMyX01DR19FQlAJCQkweDE4NgorI2RlZmluZSBJQTMyX01D R19FU1AJCQkweDE4NworI2RlZmluZSBJQTMyX01DR19FRkxBR1MJCQkweDE4OAorI2RlZmluZSBJ QTMyX01DR19FSVAJCQkweDE4OQorI2RlZmluZSBJQTMyX01DR19NSVNDCQkJMHgxOGEKKyNkZWZp bmUgSUEzMl9URVJNX0NPTlRST0wJCTB4MTlhCisjZGVmaW5lIElBMzJfVEVSTV9JTlRFUlJVUFQJ CTB4MTliCisjZGVmaW5lIElBMzJfVEVSTV9TVEFUVVMJCQkweDE5YworI2RlZmluZSBJQTMyX01J U0NfRU5BQgkJCTB4MWEwCisjZGVmaW5lIElBMzJfREVCVUdDVEwJCQkweDFkOQorI2RlZmluZSBJ QTMyX01UUlJfUEhZU0JBU0UwCQkweDIwMAorI2RlZmluZSBJQTMyX01UUlJfUEhZU01BU0swCQkw eDIwMQorI2RlZmluZSBJQTMyX01UUlJfRklYNjRLXzAwMDAwCTB4MjUwCisjZGVmaW5lIElBMzJf TVRSUl9GSVgxNktfODAwMDAJMHgyNTgKKyNkZWZpbmUgSUEzMl9NVFJSX0ZJWDE2S19BMDAwMAkw eDI1OQorI2RlZmluZSBJQTMyX01UUlJfRklYNEtfQzAwMDAJCTB4MjY4CisjZGVmaW5lIElBMzJf TVRSUl9GSVg0S19DODAwMAkJMHgyNjkKKyNkZWZpbmUgSUEzMl9NVFJSX0ZJWDRLX0QwMDAwCQkw eDI2YQorI2RlZmluZSBJQTMyX01UUlJfRklYNEtfRDgwMDAJCTB4MjZiCisjZGVmaW5lIElBMzJf TVRSUl9GSVg0S19FMDAwMAkJMHgyNmMKKyNkZWZpbmUgSUEzMl9NVFJSX0ZJWDRLX0U4MDAwCQkw eDI2ZAorI2RlZmluZSBJQTMyX01UUlJfRklYNEtfRjAwMDAJCTB4MjZlCisjZGVmaW5lIElBMzJf TVRSUl9GSVg0S19GODAwMAkJMHgyNmYKKyNkZWZpbmUgSUEzMl9DUl9QQVQJCQkJMHgyNzcKKyNk ZWZpbmUgSUEzMl9NVFJSX0RFRlRZUEUJCTB4MmZmCisjZGVmaW5lIElBMzJfUEVCU19FTkFCTEUJ CQkweDNmMQorI2RlZmluZSBJQTMyX01DaV9TVEFSVAkJCTB4NDAwCisjCWRlZmluZSBJQTMyX01D aV9TVEVQCQkJNAorIwlkZWZpbmUgSUEzMl9NQ2lfQ1RMX09GRlNFVAkJMAorIwlkZWZpbmUgSUEz Ml9NQ2lfU1RBVFVTX09GRlNFVAkJMQorIwlkZWZpbmUgSUEzMl9NQ2lfQUREUl9PRkZTRVQJCTIK KyMJZGVmaW5lIElBMzJfTUNpX01JU0NfT0ZGU0VUCQkzCisjZGVmaW5lIElBMzJfRFRFU19BUkVB CQkJMHg2MDAKKworLyoKKyAqIElBMzJfQVBJQ19CQVNFCisgKi8KKyNkZWZpbmUgQVBJQ19CQVNF X0JTUAkJCTgKKyNkZWZpbmUgQVBJQ19CQVNFX0VOQUJMRQkJCTExCisjZGVmaW5lIEFQSUNfQkFT RV9CQVNFCQkJMTIKKyNkZWZpbmUgQVBJQ19CQVNFX0JBU0VfTEVOCQkyNAorCisvKgorICogSUEz Ml9NVFJSQ0FQCisgKi8KKyNkZWZpbmUgTVRSUkNBUF9WQ05UCQkJMAorI2RlZmluZSBNVFJSQ0FQ X1ZDTlRfTEVOCQkJOAorI2RlZmluZSBNVFJSQ0FQX0ZJWAkJCQk4CisjZGVmaW5lIE1UUlJDQVBf V0MJCQkJMTAKKworLyoKKyAqIElBMzJfREVCVUdDVEwKKyAqLworI2RlZmluZSBERUJVR0NUTF9M QlIJCQkwCisjZGVmaW5lIERFQlVHQ1RMX0JURgkJCTEKKworLyoKKyAqIElBMzJfTVRSUl9ERUZU WVBFCisgKi8KKyNkZWZpbmUgTVRSUl9ERUZUWVBFX1RZUEUJCTAKKyNkZWZpbmUgTVRSUl9ERUZU WVBFX1RZUEVfTEVOCQk4CisjZGVmaW5lIE1UUlJfREVGVFlQRV9GRQkJCTEwCisjZGVmaW5lIE1U UlJfREVGVFlQRV9FCQkJMTEKKworLyoKKyAqIElBMzJfTVRSUl9QSFlTQkFTRXgKKyAqLworI2Rl ZmluZSBNVFJSX1BIWVNCQVNFX1RZUEUJCTAKKyNkZWZpbmUgTVRSUl9QSFlTQkFTRV9UWVBFX0xF Tgk4CisjZGVmaW5lIE1UUlJfUEhZU0JBU0VfQkFTRQkJMTIKKyNkZWZpbmUgTVRSUl9QSFlTQkFT RV9CQVNFX0xFTgkyNAorCisvKgorICogSUEzMl9NVFJSX1BIWVNNQVNLeAorICovCisjZGVmaW5l IE1UUlJfUEhZU01BU0tfVgkJCTExCisjZGVmaW5lIE1UUlJfUEhZU01BU0tfTUFTSwkJMTIKKyNk ZWZpbmUgTVRSUl9QSFlTTUFTS19NQVNLX0xFTgkyNAorCisvKgorICogTWVtb3J5IEF0dHJpYnV0 ZXMgKE1UUlJzICYgUEFUKQorICovCisjZGVmaW5lIElBMzJfTUFfVUMJCQkJMHgwMAorI2RlZmlu ZSBJQTMyX01BX1dDCQkJCTB4MDEKKyNkZWZpbmUgSUEzMl9NQV9XVAkJCQkweDA0CisjZGVmaW5l IElBMzJfTUFfV1AJCQkJMHgwNQorI2RlZmluZSBJQTMyX01BX1dCCQkJCTB4MDYKKyNkZWZpbmUg SUEzMl9NQV9VQ19NSU5VUwkJCTB4MDcJCS8qIFBBVCBvbmx5ICovCisKKy8qCisgKiBJQTMyX01D R19DQVAKKyAqLworI2RlZmluZSBJQTMyX01DR19DQVBfQ09VTlQJCTAKKyNkZWZpbmUgSUEzMl9N Q0dfQ0FQX0NPVU5UX0xFTgk4CisjZGVmaW5lIElBMzJfTUNHX0NUTF9QCQkJOAorCisvKgorICog SUEzMl9NQ0dfU1RBVFVTCisgKi8KKyNkZWZpbmUgSUEzMl9NQ0dfU1RBVFVTX1JJUFYJCTAKKyNk ZWZpbmUgSUEzMl9NQ0dfU1RBVFVTX0VJUFYJCTEKKyNkZWZpbmUgSUEzMl9NQ0dfU1RBVFVTX01D SVAJCTIKKworLyoKKyAqIElBMzJfTUNpCisgKi8KKyNkZWZpbmUgSUEzMl9NQ2lfU1RBVFVTX01D QV9FQwkwCisjZGVmaW5lIElBMzJfTUNpX1NUQVRVU19NQ0FfRUNfTEVOCTE2CisjZGVmaW5lIElB MzJfTUNpX1NUQVRVU19NT0RfRUMJMTYKKyNkZWZpbmUgSUEzMl9NQ2lfU1RBVFVTX01PRF9FQ19M RU4JMTYKKyNkZWZpbmUgSUEzMl9NQ2lfU1RBVFVTX1BDQwkJNTcKKyNkZWZpbmUgSUEzMl9NQ2lf U1RBVFVTX0FERFJWCQk1OAorI2RlZmluZSBJQTMyX01DaV9TVEFUVVNfTUlTQ1YJCTU5CisjZGVm aW5lIElBMzJfTUNpX1NUQVRVU19FTgkJNjAKKyNkZWZpbmUgSUEzMl9NQ2lfU1RBVFVTX1VDCQk2 MQorI2RlZmluZSBJQTMyX01DaV9TVEFUVVNfT1ZFUgkJNjIKKyNkZWZpbmUgSUEzMl9NQ2lfU1RB VFVTX1ZBTAkJNjMKKworI2VuZGlmIC8qIF9BU01fSUFfMzJfSCAqLwo= --=__PartD7F5EB8B.0__=--