From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Klaus Zeitler Newsgroups: gmane.emacs.bugs Subject: bug#16825: 24.3: conflicting types for `rpl_readlink' on powerpc-apple-darwin Date: Mon, 24 Feb 2014 16:37:03 +0100 Message-ID: References: <53071431.5040201@cs.ucla.edu> Reply-To: Klaus.Zeitler@alcatel-lucent.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1393256300 3898 80.91.229.3 (24 Feb 2014 15:38:20 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 24 Feb 2014 15:38:20 +0000 (UTC) Cc: 16825@debbugs.gnu.org To: Paul Eggert Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Feb 24 16:38:27 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WHxbs-0008CQ-G3 for geb-bug-gnu-emacs@m.gmane.org; Mon, 24 Feb 2014 16:38:25 +0100 Original-Received: from localhost ([::1]:58349 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WHxbs-0000kD-1J for geb-bug-gnu-emacs@m.gmane.org; Mon, 24 Feb 2014 10:38:24 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47789) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WHxbe-0000ZZ-6u for bug-gnu-emacs@gnu.org; Mon, 24 Feb 2014 10:38:16 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WHxbX-00047X-MQ for bug-gnu-emacs@gnu.org; Mon, 24 Feb 2014 10:38:10 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:36776) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WHxbX-00047P-AH for bug-gnu-emacs@gnu.org; Mon, 24 Feb 2014 10:38:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1WHxbW-0003mV-JI for bug-gnu-emacs@gnu.org; Mon, 24 Feb 2014 10:38:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Klaus Zeitler Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 24 Feb 2014 15:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16825 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 16825-submit@debbugs.gnu.org id=B16825.139325624514473 (code B ref 16825); Mon, 24 Feb 2014 15:38:02 +0000 Original-Received: (at 16825) by debbugs.gnu.org; 24 Feb 2014 15:37:25 +0000 Original-Received: from localhost ([127.0.0.1]:37959 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WHxav-0003lN-AE for submit@debbugs.gnu.org; Mon, 24 Feb 2014 10:37:25 -0500 Original-Received: from hoemail1.alcatel.com ([192.160.6.148]:56497) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WHxar-0003lA-5D for 16825@debbugs.gnu.org; Mon, 24 Feb 2014 10:37:22 -0500 Original-Received: from fr711usmtp1.zeu.alcatel-lucent.com (h135-239-2-122.lucent.com [135.239.2.122]) by hoemail1.alcatel.com (8.13.8/IER-o) with ESMTP id s1OFb8Gf019538 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Mon, 24 Feb 2014 09:37:10 -0600 (CST) Original-Received: from FR712WXCHHUB03.zeu.alcatel-lucent.com (fr712wxchhub03.zeu.alcatel-lucent.com [135.239.2.74]) by fr711usmtp1.zeu.alcatel-lucent.com (GMO) with ESMTP id s1OFb5rC026996 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Mon, 24 Feb 2014 16:37:08 +0100 Original-Received: from destgd0h411156.de.alcatel-lucent.com (135.239.27.39) by FR712WXCHHUB03.zeu.alcatel-lucent.com (135.239.2.74) with Microsoft SMTP Server (TLS) id 14.2.247.3; Mon, 24 Feb 2014 16:37:04 +0100 Emacs: a real time environment for simulating molasses-based life forms. In-Reply-To: <53071431.5040201@cs.ucla.edu> (Paul Eggert's message of "Fri, 21 Feb 2014 00:54:09 -0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux) X-Originating-IP: [135.239.27.39] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:86130 Archived-At: --=-=-= Content-Type: text/plain >>>>> "Paul" == Paul Eggert writes: Paul> Paul> Just to confirm, are you running Mac OS X 10.3.9 ("Panther")? "uname -a" says: Darwin osxexp2 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power Macintosh powerpc Paul> Could you please the output of gcc -E on that file? Something Paul> like this: Paul> Paul> gcc -E -std=gnu99 -DHAVE_CONFIG_H -I. \ Paul> -I/Volumes/UFS_exp2/exptools/expmake/build/gnuemacs2src/emacs-24.3/lib \ Paul> -I../src \ Paul> -I/Volumes/UFS_exp2/exptools/expmake/build/gnuemacs2src/emacs-24.3/src \ Paul> -I/opt/exp/gnu/include -g3 -O2 careadlinkat.c here's the preprocessor output: --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename="careadlinkat.i" Content-Transfer-Encoding: base64 IyAxICJjYXJlYWRsaW5rYXQuYyIKI3ByYWdtYSBHQ0Mgc2V0X2RlYnVnX3B3ZCAiL1ZvbHVtZXMv VUZTX2V4cDIvZXhwdG9vbHMvZXhwbWFrZS9idWlsZC9nbnVlbWFjczJzcmMvZW1hY3MtMjQuMy9s aWIiCiMgMSAiPGJ1aWx0LWluPiIKI2RlZmluZSBfX1NURENfVkVSU0lPTl9fIDE5OTkwMUwKI2Rl ZmluZSBfX0dYWF9BQklfVkVSU0lPTiAxMDIKI2RlZmluZSBfX1NJWkVfVFlQRV9fIGxvbmcgdW5z aWduZWQgaW50CiNkZWZpbmUgX19QVFJESUZGX1RZUEVfXyBpbnQKI2RlZmluZSBfX1dDSEFSX1RZ UEVfXyBpbnQKI2RlZmluZSBfX1dJTlRfVFlQRV9fIHVuc2lnbmVkIGludAojZGVmaW5lIF9fU0NI QVJfTUFYX18gMTI3CiNkZWZpbmUgX19TSFJUX01BWF9fIDMyNzY3CiNkZWZpbmUgX19JTlRfTUFY X18gMjE0NzQ4MzY0NwojZGVmaW5lIF9fTE9OR19NQVhfXyAyMTQ3NDgzNjQ3TAojZGVmaW5lIF9f TE9OR19MT05HX01BWF9fIDkyMjMzNzIwMzY4NTQ3NzU4MDdMTAojZGVmaW5lIF9fV0NIQVJfTUFY X18gMjE0NzQ4MzY0NwojZGVmaW5lIF9fQ0hBUl9CSVRfXyA4CiNkZWZpbmUgX19GTFRfRVZBTF9N RVRIT0RfXyAwCiNkZWZpbmUgX19GTFRfUkFESVhfXyAyCiNkZWZpbmUgX19GTFRfTUFOVF9ESUdf XyAyNAojZGVmaW5lIF9fRkxUX0RJR19fIDYKI2RlZmluZSBfX0ZMVF9NSU5fRVhQX18gKC0xMjUp CiNkZWZpbmUgX19GTFRfTUlOXzEwX0VYUF9fICgtMzcpCiNkZWZpbmUgX19GTFRfTUFYX0VYUF9f IDEyOAojZGVmaW5lIF9fRkxUX01BWF8xMF9FWFBfXyAzOAojZGVmaW5lIF9fRkxUX01BWF9fIDMu NDAyODIzNDdlKzM4RgojZGVmaW5lIF9fRkxUX01JTl9fIDEuMTc1NDk0MzVlLTM4RgojZGVmaW5l IF9fRkxUX0VQU0lMT05fXyAxLjE5MjA5MjkwZS03RgojZGVmaW5lIF9fRkxUX0RFTk9STV9NSU5f XyAxLjQwMTI5ODQ2ZS00NUYKI2RlZmluZSBfX0RCTF9NQU5UX0RJR19fIDUzCiNkZWZpbmUgX19E QkxfRElHX18gMTUKI2RlZmluZSBfX0RCTF9NSU5fRVhQX18gKC0xMDIxKQojZGVmaW5lIF9fREJM X01JTl8xMF9FWFBfXyAoLTMwNykKI2RlZmluZSBfX0RCTF9NQVhfRVhQX18gMTAyNAojZGVmaW5l IF9fREJMX01BWF8xMF9FWFBfXyAzMDgKI2RlZmluZSBfX0RCTF9NQVhfXyAxLjc5NzY5MzEzNDg2 MjMxNTdlKzMwOAojZGVmaW5lIF9fREJMX01JTl9fIDIuMjI1MDczODU4NTA3MjAxNGUtMzA4CiNk ZWZpbmUgX19EQkxfRVBTSUxPTl9fIDIuMjIwNDQ2MDQ5MjUwMzEzMWUtMTYKI2RlZmluZSBfX0RC TF9ERU5PUk1fTUlOX18gNC45NDA2NTY0NTg0MTI0NjU0ZS0zMjQKI2RlZmluZSBfX0xEQkxfTUFO VF9ESUdfXyA1MwojZGVmaW5lIF9fTERCTF9ESUdfXyAxNQojZGVmaW5lIF9fTERCTF9NSU5fRVhQ X18gKC0xMDIxKQojZGVmaW5lIF9fTERCTF9NSU5fMTBfRVhQX18gKC0zMDcpCiNkZWZpbmUgX19M REJMX01BWF9FWFBfXyAxMDI0CiNkZWZpbmUgX19MREJMX01BWF8xMF9FWFBfXyAzMDgKI2RlZmlu ZSBfX0RFQ0lNQUxfRElHX18gMTcKI2RlZmluZSBfX0xEQkxfTUFYX18gMS43OTc2OTMxMzQ4NjIz MTU3ZSszMDhMCiNkZWZpbmUgX19MREJMX01JTl9fIDIuMjI1MDczODU4NTA3MjAxNGUtMzA4TAoj ZGVmaW5lIF9fTERCTF9FUFNJTE9OX18gMi4yMjA0NDYwNDkyNTAzMTMxZS0xNkwKI2RlZmluZSBf X0xEQkxfREVOT1JNX01JTl9fIDQuOTQwNjU2NDU4NDEyNDY1NGUtMzI0TAojZGVmaW5lIF9fUkVH SVNURVJfUFJFRklYX18gCiNkZWZpbmUgX19VU0VSX0xBQkVMX1BSRUZJWF9fIF8KI2RlZmluZSBf X1ZFUlNJT05fXyAiMy4zIDIwMDMwMzA0IChBcHBsZSBDb21wdXRlciwgSW5jLiBidWlsZCAxNDk1 KSIKI2RlZmluZSBfX09QVElNSVpFX18gMQojZGVmaW5lIF9fU1REQ19IT1NURURfXyAxCiNkZWZp bmUgX19GSU5JVEVfTUFUSF9PTkxZX18gMAojZGVmaW5lIF9BUkNIX1BQQyAxCiNkZWZpbmUgX19C SUdfRU5ESUFOX18gMQojZGVmaW5lIF9CSUdfRU5ESUFOIDEKCiNkZWZpbmUgX19wcGNfXyAxCiNk ZWZpbmUgX19QT1dFUlBDX18gMQojZGVmaW5lIF9fTkFUVVJBTF9BTElHTk1FTlRfXyAxCiNkZWZp bmUgX19NQUNIX18gMQojZGVmaW5lIF9fQVBQTEVfXyAxCiMgMSAiPGNvbW1hbmQgbGluZT4iCiNk ZWZpbmUgX19HTlVDX18gMwojZGVmaW5lIF9fR05VQ19NSU5PUl9fIDMKI2RlZmluZSBfX0dOVUNf UEFUQ0hMRVZFTF9fIDAKI2RlZmluZSBfX0FQUExFX0NDX18gMTQ5NQojZGVmaW5lIF9fRFlOQU1J Q19fIDEKI2RlZmluZSBIQVZFX0NPTkZJR19IIDEKIyAxICJjYXJlYWRsaW5rYXQuYyIKIyAyMSAi Y2FyZWFkbGlua2F0LmMiCiMgMSAiLi4vc3JjL2NvbmZpZy5oIiAxCiMgMjkgIi4uL3NyYy9jb25m aWcuaCIKI2RlZmluZSBFTUFDU19DT05GSUdfSCAKCgoKCgoKCiNkZWZpbmUgQU1QRVJTQU5EX0ZV TExfTkFNRSAxCgoKI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDMyCgoKI2RlZmluZSBCSVRT SVpFT0ZfU0lHX0FUT01JQ19UIDMyCgoKI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDMyCgoKI2Rl ZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAzMgoKCiNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAzMgoj IDY0ICIuLi9zcmMvY29uZmlnLmgiCiNkZWZpbmUgQlNENF8yIAoKCiNkZWZpbmUgQlNEX1NZU1RF TSAKIyA4MSAiLi4vc3JjL2NvbmZpZy5oIgojZGVmaW5lIENMQVNIX0RFVEVDVElPTiAxCgoKI2Rl ZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4iCiMgOTggIi4uL3NyYy9jb25maWcuaCIKI2RlZmluZSBEQVJXSU5fT1MgCiMgMTA3 ICIuLi9zcmMvY29uZmlnLmgiCiNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNw IgojIDExNiAiLi4vc3JjL2NvbmZpZy5oIgojZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCgoKCgoK CgojZGVmaW5lIERPTlRfUkVPUEVOX1BUWSAxCiMgMTMzICIuLi9zcmMvY29uZmlnLmgiCiNkZWZp bmUgRU1BQ1NfQ09ORklHVVJBVElPTiAicG93ZXJwYy1hcHBsZS1kYXJ3aW43LjkuMCIKCgojZGVm aW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICIgJy0tcHJlZml4PS9vcHQvZXhwL2xpYi9nbnVlbWFj czInICctLXdpdGgteC10b29sa2l0PWd0azInICdDQz1nY2MnICdMREZMQUdTPS1ML29wdC9leHAv Z251L2xpYmInICdDUFBGTEFHUz0tSS9vcHQvZXhwL2dudS9pbmNsdWRlJyIKCgoKCgoKCiNkZWZp bmUgRklSU1RfUFRZX0xFVFRFUiAncCcKCgoKCiNkZWZpbmUgX0ZPUlRJRllfU09VUkNFIDIKIyAx NzkgIi4uL3NyYy9jb25maWcuaCIKI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQoKCiNkZWZpbmUg R0VUUEdSUF9WT0lEIDEKCgoKCgoKI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgc3RydWN0 IHRpbWV6b25lCgoKCgoKCiNkZWZpbmUgR05VTElCX0ZTQ0FORiAxCgoKCgoKCiNkZWZpbmUgR05V TElCX1NDQU5GIDEKIyAyMTkgIi4uL3NyYy9jb25maWcuaCIKI2RlZmluZSBIQVZFX0FMQVJNIDEK CgoKI2RlZmluZSBIQVZFX0FMTE9DQSAxCgoKCiNkZWZpbmUgSEFWRV9BTExPQ0FfSCAxCgoKCgoK I2RlZmluZSBIQVZFX0M5OV9TVFJUT0xEIDEKCgojZGVmaW5lIEhBVkVfQ0ZNQUtFUkFXIDEKCgoj ZGVmaW5lIEhBVkVfQ0ZTRVRTUEVFRCAxCiMgMjQ4ICIuLi9zcmMvY29uZmlnLmgiCiNkZWZpbmUg SEFWRV9DTE9TRURJUiAxCiMgMjU3ICIuLi9zcmMvY29uZmlnLmgiCiNkZWZpbmUgSEFWRV9DT1BZ U0lHTiAxCiMgMjgyICIuLi9zcmMvY29uZmlnLmgiCiNkZWZpbmUgSEFWRV9ERUNMX0dFVEVOViAx CgoKCiNkZWZpbmUgSEFWRV9ERUNMX0xPQ0FMVElNRV9SIDEKCgoKI2RlZmluZSBIQVZFX0RFQ0xf U1RSTU9ERSAxCgoKCiNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCiMgMzA2ICIuLi9zcmMv Y29uZmlnLmgiCiNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPVU1BWCAxCgoKCiNkZWZpbmUgSEFWRV9E RUNMX1NZU19TSUdMSVNUIDEKIyAzMjcgIi4uL3NyYy9jb25maWcuaCIKI2RlZmluZSBIQVZFX0RJ RkZUSU1FIDEKCgojZGVmaW5lIEhBVkVfRElSRU5UX0ggMQoKCiNkZWZpbmUgSEFWRV9EVVAyIDEK CgojZGVmaW5lIEhBVkVfRU5ER1JFTlQgMQoKCiNkZWZpbmUgSEFWRV9FTkRQV0VOVCAxCiMgMzUx ICIuLi9zcmMvY29uZmlnLmgiCiNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKCgojZGVmaW5lIEhBVkVf Rk9SSyAxCgoKI2RlZmluZSBIQVZFX0ZQQVRIQ09ORiAxCgoKI2RlZmluZSBIQVZFX0ZSRUVJRkFE RFJTIDEKCgoKCgojZGVmaW5lIEhBVkVfRlNFRUtPIDEKCgojZGVmaW5lIEhBVkVfRlNZTkMgMQoK CgoKCiNkZWZpbmUgSEFWRV9GVVRJTUVTIDEKCgoKCgojZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9S IDEKCgoKCgojZGVmaW5lIEhBVkVfR0VUQUREUklORk8gMQoKCiNkZWZpbmUgSEFWRV9HRVRDV0Qg MQoKCgoKCiNkZWZpbmUgSEFWRV9HRVRHUkVOVCAxCgoKI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1F IDEKCgojZGVmaW5lIEhBVkVfR0VUSUZBRERSUyAxCgoKCgoKI2RlZmluZSBIQVZFX0dFVE9QVF9I IDEKCgoKCgojZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQoKCiNkZWZpbmUgSEFWRV9HRVRQRUVS TkFNRSAxCgoKCgoKI2RlZmluZSBIQVZFX0dFVFBXRU5UIDEKCgojZGVmaW5lIEhBVkVfR0VUUkxJ TUlUIDEKCgojZGVmaW5lIEhBVkVfR0VUUlVTQUdFIDEKCgojZGVmaW5lIEhBVkVfR0VUU09DS05B TUUgMQoKCiNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQoKCiNkZWZpbmUgSEFWRV9HRVRXRCAx CgoKCgoKI2RlZmluZSBIQVZFX0dJRiAxCiMgNDY5ICIuLi9zcmMvY29uZmlnLmgiCiNkZWZpbmUg SEFWRV9HVEtfQURKVVNUTUVOVF9HRVRfUEFHRV9TSVpFIDEKCgojZGVmaW5lIEhBVkVfR1RLX0RJ QUxPR19HRVRfQUNUSU9OX0FSRUEgMQoKCiNkZWZpbmUgSEFWRV9HVEtfRklMRV9TRUxFQ1RJT05f TkVXIDEKCgojZGVmaW5lIEhBVkVfR1RLX01BSU4gMQoKCiNkZWZpbmUgSEFWRV9HVEtfT1JJRU5U QUJMRV9TRVRfT1JJRU5UQVRJT04gMQojIDQ5MCAiLi4vc3JjL2NvbmZpZy5oIgojZGVmaW5lIEhB VkVfR1RLX1dJREdFVF9HRVRfV0lORE9XIDEKIyA1MDIgIi4uL3NyYy9jb25maWcuaCIKI2RlZmlu ZSBIQVZFX0hfRVJSTk8gMQoKCiNkZWZpbmUgSEFWRV9JRkFERFJTX0ggMQoKCgoKCiNkZWZpbmUg SEFWRV9JTkVUX1NPQ0tFVFMgMQoKCiNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKCgojZGVmaW5l IEhBVkVfSlBFRyAxCiMgNTQ0ICIuLi9zcmMvY29uZmlnLmgiCiNkZWZpbmUgSEFWRV9MQU5HSU5G T19DT0RFU0VUIDEKIyA1ODYgIi4uL3NyYy9jb25maWcuaCIKI2RlZmluZSBIQVZFX0xJQk0gMQoj IDYxMyAiLi4vc3JjL2NvbmZpZy5oIgojZGVmaW5lIEhBVkVfTElCWE1MMiAxCiMgNjIyICIuLi9z cmMvY29uZmlnLmgiCiNkZWZpbmUgSEFWRV9MT0NBTFRJTUVfUiAxCgoKI2RlZmluZSBIQVZFX0xP TkdfRklMRV9OQU1FUyAxCgoKI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQoKCiNkZWZpbmUg SEFWRV9MUkFORDQ4IDEKCgojZGVmaW5lIEhBVkVfTFNUQVQgMQojIDY1OCAiLi4vc3JjL2NvbmZp Zy5oIgojZGVmaW5lIEhBVkVfTUFMTE9DX01BTExPQ19IIDEKCgojZGVmaW5lIEhBVkVfTUJTVEFU RV9UIDEKCgojZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQoKCgoKI2RlZmluZSBIQVZFX01FTlVTIDEK CgojZGVmaW5lIEhBVkVfTUtTVEVNUCAxCgoKI2RlZmluZSBIQVZFX01NQVAgMQoKCiNkZWZpbmUg SEFWRV9NT1VTRSAxCgoKCgoKI2RlZmluZSBIQVZFX05FVF9JRl9ETF9IIDEKCgojZGVmaW5lIEhB VkVfTkVUX0lGX0ggMQojIDcwNiAiLi4vc3JjL2NvbmZpZy5oIgojZGVmaW5lIEhBVkVfUE5HIDEK CgojZGVmaW5lIEhBVkVfUE5HX0ggMQojIDcyMSAiLi4vc3JjL2NvbmZpZy5oIgojZGVmaW5lIEhB VkVfUFNFTEVDVCAxCgoKCgoKI2RlZmluZSBIQVZFX1BUSFJFQUQgMQoKCiNkZWZpbmUgSEFWRV9Q VEhSRUFEX0ggMQoKCiNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQoKCiNkZWZpbmUgSEFW RV9QVFlTIDEKCgoKCgojZGVmaW5lIEhBVkVfUFdEX0ggMQoKCiNkZWZpbmUgSEFWRV9SQU5ET00g MQoKCiNkZWZpbmUgSEFWRV9SRUFETElOSyAxCgoKCgoKI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEK CgoKCgojZGVmaW5lIEhBVkVfUklOVCAxCgoKCgoKI2RlZmluZSBIQVZFX1NFTEVDVCAxCgoKI2Rl ZmluZSBIQVZFX1NFTkRUTyAxCgoKI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCgoKI2RlZmluZSBI QVZFX1NFVExPQ0FMRSAxCgoKI2RlZmluZSBIQVZFX1NFVFBHSUQgMQoKCiNkZWZpbmUgSEFWRV9T RVRSTElNSVQgMQoKCiNkZWZpbmUgSEFWRV9TRVRTSUQgMQoKCiNkZWZpbmUgSEFWRV9TSFVURE9X TiAxCgoKI2RlZmluZSBIQVZFX1NJR05FRF9TSUdfQVRPTUlDX1QgMQoKCiNkZWZpbmUgSEFWRV9T SUdORURfV0NIQVJfVCAxCgoKI2RlZmluZSBIQVZFX1NJR05FRF9XSU5UX1QgMQoKCgoKCgojZGVm aW5lIEhBVkVfU0lHU0VUX1QgMQoKCiNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCgoKI2RlZmluZSBI QVZFX1NPQ0tFVFMgMQojIDgxOCAiLi4vc3JjL2NvbmZpZy5oIgojZGVmaW5lIEhBVkVfU1BFRURf VCAxCgoKI2RlZmluZSBIQVZFX1NURElOVF9IIDEKCgoKCgojZGVmaW5lIEhBVkVfU1RETElCX0gg MQoKCiNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQoKCiNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCgoK I2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCgoKI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCiMgODQ4 ICIuLi9zcmMvY29uZmlnLmgiCiNkZWZpbmUgSEFWRV9TVFJUT1VNQVggMQoKCiNkZWZpbmUgSEFW RV9TVFJVQ1RfSUZSRVFfSUZSX0FERFIgMQoKCiNkZWZpbmUgSEFWRV9TVFJVQ1RfSUZSRVFfSUZS X0FERFJfU0FfTEVOIDEKCgojZGVmaW5lIEhBVkVfU1RSVUNUX0lGUkVRX0lGUl9CUk9BREFERFIg MQoKCiNkZWZpbmUgSEFWRV9TVFJVQ1RfSUZSRVFfSUZSX0ZMQUdTIDEKIyA4NzUgIi4uL3NyYy9j b25maWcuaCIKI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0FUSU1FU1BFQ19UVl9OU0VDIDEK IyA4OTMgIi4uL3NyYy9jb25maWcuaCIKI2RlZmluZSBIQVZFX1NUUlVDVF9UTV9UTV9aT05FIDEK CgoKI2RlZmluZSBIQVZFX1NUUlVDVF9VVElNQlVGIDEKCgoKCgojZGVmaW5lIEhBVkVfU1lNTElO SyAxCgoKI2RlZmluZSBIQVZFX1NZTkMgMQojIDkxOCAiLi4vc3JjL2NvbmZpZy5oIgojZGVmaW5l IEhBVkVfU1lTX1BBUkFNX0ggMQoKCiNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCgoKI2Rl ZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCgoKI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCgoK CgoKI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQojIDk0MiAiLi4vc3JjL2NvbmZpZy5oIgojZGVm aW5lIEhBVkVfU1lTX1RJTUVfSCAxCgoKI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKCgojZGVm aW5lIEhBVkVfU1lTX1VOX0ggMQoKCiNkZWZpbmUgSEFWRV9TWVNfVVRTTkFNRV9IIDEKCgoKCgoj ZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCgoKI2RlZmluZSBIQVZFX1RFUk1fSCAxCgoKI2RlZmlu ZSBIQVZFX1RJRkYgMQoKCgoKCiNkZWZpbmUgSEFWRV9UTV9HTVRPRkYgMQoKCgojZGVmaW5lIEhB VkVfVE1fWk9ORSAxCiMgOTgzICIuLi9zcmMvY29uZmlnLmgiCiNkZWZpbmUgSEFWRV9UWlNFVCAx CgoKI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKCgojZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19M T05HX0lOVCAxCgoKI2RlZmluZSBIQVZFX1VUSUxfSCAxCgoKCgoKI2RlZmluZSBIQVZFX1VUSU1F UyAxCgoKI2RlZmluZSBIQVZFX1VUSU1FX0ggMQoKCiNkZWZpbmUgSEFWRV9VVE1QX0ggMQoKCiNk ZWZpbmUgSEFWRV9WRk9SSyAxCgoKCgoKI2RlZmluZSBIQVZFX1dDSEFSX0ggMQoKCiNkZWZpbmUg SEFWRV9XQ0hBUl9UIDEKCgojZGVmaW5lIEhBVkVfV0lORE9XX1NZU1RFTSAxCgoKCgoKI2RlZmlu ZSBIQVZFX1dPUktJTkdfRk9SSyAxCgoKI2RlZmluZSBIQVZFX1dPUktJTkdfVVRJTUVTIDEKCgoj ZGVmaW5lIEhBVkVfV09SS0lOR19WRk9SSyAxCgoKCgoKCiNkZWZpbmUgSEFWRV9YMTEgMQoKCiNk ZWZpbmUgSEFWRV9YMTFSNiAxCgoKI2RlZmluZSBIQVZFX1gxMVI2X1hJTSAxCiMgMTA1NiAiLi4v c3JjL2NvbmZpZy5oIgojZGVmaW5lIEhBVkVfWElNIDEKCgojZGVmaW5lIEhBVkVfWEtCR0VUS0VZ Qk9BUkQgMQoKCiNkZWZpbmUgSEFWRV9YUE0gMQoKCiNkZWZpbmUgSEFWRV9YUk1TRVREQVRBQkFT RSAxCgoKI2RlZmluZSBIQVZFX1hTQ1JFRU5OVU1CRVJPRlNDUkVFTiAxCgoKI2RlZmluZSBIQVZF X1hTQ1JFRU5SRVNPVVJDRVNUUklORyAxCgoKI2RlZmluZSBIQVZFX1hfSTE4TiAxCgoKI2RlZmlu ZSBIQVZFX1hfU00gMQoKCiNkZWZpbmUgSEFWRV9YX1dJTkRPV1MgMQoKCiNkZWZpbmUgSEFWRV9f Qk9PTCAxCgoKCgoKI2RlZmluZSBIQVZFX19TRVRKTVAgMQoKCiNkZWZpbmUgSEFWRV9fX0JVSUxU SU5fVU5XSU5EX0lOSVQgMQojIDExMTAgIi4uL3NyYy9jb25maWcuaCIKI2RlZmluZSBJTlRFUlJV UFRfSU5QVVQgMQoKCgoKCiNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQ IChfY18pKQoKCiNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pIDAKCgojZGVmaW5lIElTX0RJUkVD VE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gRElSRUNUT1JZX1NFUCkKIyAxMTQ0ICIuLi9zcmMvY29u ZmlnLmgiCiNkZWZpbmUgTUFJTF9VU0VfRkxPQ0sgMQojIDExNTMgIi4uL3NyYy9jb25maWcuaCIK I2RlZmluZSBNQUlMX1VTRV9QT1AgMQojIDExODEgIi4uL3NyYy9jb25maWcuaCIKI2RlZmluZSBO VUxMX0RFVklDRSAiL2Rldi9udWxsIgoKCgoKCiNkZWZpbmUgT1JESU5BUllfTElOSyAxCgoKI2Rl ZmluZSBQQUNLQUdFICJlbWFjcyIKCgojZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCgoKI2Rl ZmluZSBQQUNLQUdFX05BTUUgImVtYWNzIgoKCiNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImVtYWNz IDI0LjMiCgoKI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgoKCiNkZWZpbmUgUEFDS0FH RV9VUkwgIiIKCgojZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjQuMyIKCgojZGVmaW5lIFBFTkRJ TkdfT1VUUFVUX0NPVU5UKEZJTEUpICgoRklMRSktPl9wIC0gKEZJTEUpLT5fYmYuX2Jhc2UpCgoK CgojZGVmaW5lIFBOR19ERVBTVFJVQ1QgCgoKCgoKCiNkZWZpbmUgUFRIUkVBRF9TSUdNQVNLX0ZB SUxTX1dJVEhfRVJSTk8gMQojIDEyMzMgIi4uL3NyYy9jb25maWcuaCIKI2RlZmluZSBQVFJESUZG X1RfU1VGRklYIAoKCiNkZWZpbmUgUFRZX0lURVJBVElPTiBpbnQgaTsgZm9yIChpID0gMDsgaSA8 IDE7IGkrKykKCgojZGVmaW5lIFBUWV9OQU1FX1NQUklOVEYgCgoKI2RlZmluZSBQVFlfT1BFTiBk byB7IGludCBzbGF2ZTsgaWYgKG9wZW5wdHkgKCZmZCwgJnNsYXZlLCBwdHlfbmFtZSwgTlVMTCwg TlVMTCkgPT0gLTEpIGZkID0gLTE7IGVsc2UgZW1hY3NfY2xvc2UgKHNsYXZlKTsgfSB3aGlsZSAo MCkKCgojZGVmaW5lIFBUWV9UVFlfTkFNRV9TUFJJTlRGIAoKCiNkZWZpbmUgUkVBRExJTktfVFJB SUxJTkdfU0xBU0hfQlVHIDEKIyAxMjYwICIuLi9zcmMvY29uZmlnLmgiCiNkZWZpbmUgUkVQTEFD RV9GVU5DX1NUQVRfRklMRSAxCgoKCgoKI2RlZmluZSBTRVBDSEFSICc6JwojIDEyNzUgIi4uL3Ny Yy9jb25maWcuaCIKI2RlZmluZSBTSUdOQUxTX1ZJQV9DSEFSQUNURVJTIDEKCgoKI2RlZmluZSBT SUdfQVRPTUlDX1RfU1VGRklYIAoKCgojZGVmaW5lIFNJWkVfVF9TVUZGSVggdWwKIyAxMzAwICIu Li9zcmMvY29uZmlnLmgiCiNkZWZpbmUgU1REQ19IRUFERVJTIDEKCgoKCgojZGVmaW5lIFNZU1RF TV9NQUxMT0MgMQoKCiNkZWZpbmUgU1lTVEVNX1RZUEUgImRhcndpbiIKCgojZGVmaW5lIFRBQjMg T1hUQUJTCgoKCgoKI2RlZmluZSBURVJNSU5GTyAxCgoKI2RlZmluZSBURVJNX0hFQURFUiAiZ3Rr dXRpbC5oIgoKCiNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKIyAxMzUwICIuLi9zcmMvY29u ZmlnLmgiCiNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKCgojZGVmaW5lIFVTQUJMRV9TSUdJTyAx CgoKI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKCgojZGVmaW5lIFVTRV9HVEsg MQojIDEzNzEgIi4uL3NyYy9jb25maWcuaCIKI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFS UyAxCgoKI2RlZmluZSBVU0VfWElNIDEKIyAxMzkzICIuLi9zcmMvY29uZmlnLmgiCiNkZWZpbmUg VkVSU0lPTiAiMjQuMyIKCgoKI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKCgoKCgoKI2RlZmluZSBX SU5UX1RfU1VGRklYIAojIDE0MTQgIi4uL3NyYy9jb25maWcuaCIKI2RlZmluZSBXT1JEU19CSUdF TkRJQU4gMQojIDE0MjYgIi4uL3NyYy9jb25maWcuaCIKI2RlZmluZSBYUmVnaXN0ZXJJTUluc3Rh bnRpYXRlQ2FsbGJhY2tfYXJnNiBYUG9pbnRlcgoKCgoKCgojZGVmaW5lIF9EQVJXSU5fVVNFXzY0 X0JJVF9JTk9ERSAxCiMgMTQ2MCAiLi4vc3JjL2NvbmZpZy5oIgojZGVmaW5lIF9Ob3JldHVybiBf X2F0dHJpYnV0ZV9fICgoX19ub3JldHVybl9fKSkKIyAxNDg0ICIuLi9zcmMvY29uZmlnLmgiCiNk ZWZpbmUgX0FMTF9TT1VSQ0UgMQoKCgojZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQoKCgojZGVm aW5lIF9HTlVfU09VUkNFIDEKCgoKI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQoK CgojZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKCgoKI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCgoK CgoKI2RlZmluZSBfX0dFVE9QVF9QUkVGSVggcnBsXwoKCgojZGVmaW5lIF9fcmVzdHJpY3RfYXJy IF9fcmVzdHJpY3QKIyAxNTM5ICIuLi9zcmMvY29uZmlnLmgiCiNkZWZpbmUgX0dMX0lOTElORSBl eHRlcm4gaW5saW5lCgojZGVmaW5lIF9HTF9FWFRFUk5fSU5MSU5FIGV4dGVybgojIDE1NjIgIi4u L3NyYy9jb25maWcuaCIKI2RlZmluZSBfR0xfSU5MSU5FX0hFQURFUl9CRUdJTiAKI2RlZmluZSBf R0xfSU5MSU5FX0hFQURFUl9FTkQgCgoKCiNkZWZpbmUgZ2xfdmFfY29weShhLGIpICgoYSkgPSAo YikpCiMgMTYwMSAiLi4vc3JjL2NvbmZpZy5oIgojZGVmaW5lIG15X3N0cmZ0aW1lIG5zdHJmdGlt ZQojIDE2MTIgIi4uL3NyYy9jb25maWcuaCIKI2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CiMg MTYzMCAiLi4vc3JjL2NvbmZpZy5oIgojZGVmaW5lIHN1YnByb2Nlc3NlcyAxCiMgMTYzOSAiLi4v c3JjL2NvbmZpZy5oIgojZGVmaW5lIF9HTF9VTlVTRUQgX19hdHRyaWJ1dGVfXyAoKF9fdW51c2Vk X18pKQoKCgoKCiNkZWZpbmUgX1VOVVNFRF9QQVJBTUVURVJfIF9HTF9VTlVTRUQKCgoKI2RlZmlu ZSBfR0xfQVRUUklCVVRFX1BVUkUgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkKCgoKCgoKI2Rl ZmluZSBfR0xfQVRUUklCVVRFX0NPTlNUIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKQojIDE2 NjggIi4uL3NyYy9jb25maWcuaCIKIyAxICIuLi9zcmMvY29uZl9wb3N0LmgiIDEKIyAzNyAiLi4v c3JjL2NvbmZfcG9zdC5oIgojIDEgImFsbG9jYS5oIiAxCiMgMjUgImFsbG9jYS5oIgojZGVmaW5l IF9HTF9BTExPQ0FfSCAKIyA0MCAiYWxsb2NhLmgiCiNkZWZpbmUgYWxsb2NhIF9fYnVpbHRpbl9h bGxvY2EKIyAzOCAiLi4vc3JjL2NvbmZfcG9zdC5oIiAyCiMgNjggIi4uL3NyYy9jb25mX3Bvc3Qu aCIKI3VuZGVmIEhBVkVfV09SS0lOR19WRk9SSwojZGVmaW5lIHZmb3JrIGZvcmsKIyAxODkgIi4u L3NyYy9jb25mX3Bvc3QuaCIKIyAxICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDEgMyA0CiMgNTkg Ii91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0CiNkZWZpbmUgX1NUUklOR19IXyAKIyAxICIvdXNy L2luY2x1ZGUvbWFjaGluZS9hbnNpLmgiIDEgMyA0CiMgMzAgIi91c3IvaW5jbHVkZS9tYWNoaW5l L2Fuc2kuaCIgMyA0CiNkZWZpbmUgX01BQ0hJTkVfQU5TSV9IXyAKCgojIDEgIi91c3IvaW5jbHVk ZS9wcGMvYW5zaS5oIiAxIDMgNAojIDM3ICIvdXNyL2luY2x1ZGUvcHBjL2Fuc2kuaCIgMyA0CiNk ZWZpbmUgX0FOU0lfSF8gCiMgNDggIi91c3IvaW5jbHVkZS9wcGMvYW5zaS5oIiAzIDQKI2RlZmlu ZSBfQlNEX0NMT0NLX1RfIHVuc2lnbmVkIGxvbmcKCiNkZWZpbmUgX0JTRF9QVFJESUZGX1RfIF9f UFRSRElGRl9UWVBFX18KI2RlZmluZSBfQlNEX1NJWkVfVF8gX19TSVpFX1RZUEVfXwoKCgoKI2Rl ZmluZSBfQlNEX1NTSVpFX1RfIGludAojZGVmaW5lIF9CU0RfVElNRV9UXyBsb25nCgojZGVmaW5l IF9CU0RfVkFfTElTVF8gX19idWlsdGluX3ZhX2xpc3QKCgoKI2RlZmluZSBfQlNEX1JVTkVfVF8g X0JTRF9DVF9SVU5FX1RfCiNkZWZpbmUgX0JTRF9XQ0hBUl9UXyBfQlNEX0NUX1JVTkVfVF8KI2Rl ZmluZSBfQlNEX1dJTlRfVF8gX0JTRF9DVF9SVU5FX1RfCiNkZWZpbmUgX0JTRF9NQlNUQVRFX1Rf IF9fbWJzdGF0ZV90CiNkZWZpbmUgX0JTRF9TT0NLTEVOX1RfIGludDMyX3QKIyA4NyAiL3Vzci9p bmNsdWRlL3BwYy9hbnNpLmgiIDMgNAojZGVmaW5lIF9CU0RfQ1RfUlVORV9UXyBpbnQKCgoKCgp0 eXBlZGVmIHVuaW9uIHsKICAgICAgICBjaGFyIF9fbWJzdGF0ZThbMTI4XTsKICAgICAgICBsb25n IGxvbmcgX21ic3RhdGVMOwp9IF9fbWJzdGF0ZV90OwojIDM0ICIvdXNyL2luY2x1ZGUvbWFjaGlu ZS9hbnNpLmgiIDIgMyA0CiMgNjEgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMiAzIDQKCgojZGVm aW5lIF9CU0RfU0laRV9UX0RFRklORURfIAp0eXBlZGVmIGxvbmcgdW5zaWduZWQgaW50IHNpemVf dDsKCgoKI2RlZmluZSBOVUxMIDAKCgojIDEgIi91c3IvaW5jbHVkZS9zeXMvY2RlZnMuaCIgMSAz IDQKIyA2MiAiL3Vzci9pbmNsdWRlL3N5cy9jZGVmcy5oIiAzIDQKI2RlZmluZSBfQ0RFRlNfSF8g CgoKCgoKI2RlZmluZSBfX0JFR0lOX0RFQ0xTIAojZGVmaW5lIF9fRU5EX0RFQ0xTIAojIDgwICIv dXNyL2luY2x1ZGUvc3lzL2NkZWZzLmgiIDMgNAojZGVmaW5lIF9fUChwcm90b3MpIHByb3Rvcwoj ZGVmaW5lIF9fQ09OQ0FUKHgseSkgeCAjIyB5CiNkZWZpbmUgX19TVFJJTkcoeCkgI3gKCiNkZWZp bmUgX19jb25zdCBjb25zdAojZGVmaW5lIF9fc2lnbmVkIHNpZ25lZAojZGVmaW5lIF9fdm9sYXRp bGUgdm9sYXRpbGUKIyAxMzQgIi91c3IvaW5jbHVkZS9zeXMvY2RlZnMuaCIgMyA0CiNkZWZpbmUg X19kZWFkMiBfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKQojZGVmaW5lIF9fcHVyZTIgX19h dHRyaWJ1dGVfXygoX19jb25zdF9fKSkKCgoKI2RlZmluZSBfX3VudXNlZCBfX2F0dHJpYnV0ZV9f KChfX3VudXNlZF9fKSkKIyAxNTIgIi91c3IvaW5jbHVkZS9zeXMvY2RlZnMuaCIgMyA0CiNkZWZp bmUgX19kZWFkIAojZGVmaW5lIF9fcHVyZSAKCgoKCgoKCiNkZWZpbmUgX19JRFNUUklORyhuYW1l LHN0cmluZykgc3RhdGljIGNvbnN0IGNoYXIgbmFtZVtdIF9fdW51c2VkID0gc3RyaW5nCgoKI2Rl ZmluZSBfX0NPUFlSSUdIVChzKSBfX0lEU1RSSU5HKGNvcHlyaWdodCxzKQoKCgojZGVmaW5lIF9f UkNTSUQocykgX19JRFNUUklORyhyY3NpZCxzKQoKCgojZGVmaW5lIF9fU0NDU0lEKHMpIF9fSURT VFJJTkcoc2Njc2lkLHMpCgoKCiNkZWZpbmUgX19QUk9KRUNUX1ZFUlNJT04ocykgX19JRFNUUklO Ryhwcm9qZWN0X3ZlcnNpb24scykKIyA3MiAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAyIDMgNAoK CnZvaWQgKm1lbWNocihjb25zdCB2b2lkICosIGludCwgc2l6ZV90KTsKaW50IG1lbWNtcChjb25z dCB2b2lkICosIGNvbnN0IHZvaWQgKiwgc2l6ZV90KTsKdm9pZCAqbWVtY3B5KHZvaWQgKiwgY29u c3Qgdm9pZCAqLCBzaXplX3QpOwp2b2lkICptZW1tb3ZlKHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBz aXplX3QpOwp2b2lkICptZW1zZXQodm9pZCAqLCBpbnQsIHNpemVfdCk7CmNoYXIgKnN0cGNweShj aGFyICosIGNvbnN0IGNoYXIgKik7CmNoYXIgKnN0cmNhc2VzdHIoY29uc3QgY2hhciAqLCBjb25z dCBjaGFyICopOwpjaGFyICpzdHJjYXQoY2hhciAqLCBjb25zdCBjaGFyICopOwpjaGFyICpzdHJj aHIoY29uc3QgY2hhciAqLCBpbnQpOwppbnQgc3RyY21wKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hh ciAqKTsKaW50IHN0cmNvbGwoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwpjaGFyICpzdHJj cHkoY2hhciAqLCBjb25zdCBjaGFyICopOwpzaXplX3Qgc3RyY3Nwbihjb25zdCBjaGFyICosIGNv bnN0IGNoYXIgKik7CmNoYXIgKnN0cmVycm9yKGludCk7CmludCBzdHJlcnJvcl9yKGludCwgY2hh ciAqLCBzaXplX3QpOwpzaXplX3Qgc3RybGVuKGNvbnN0IGNoYXIgKik7CmNoYXIgKnN0cm5jYXQo Y2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7CmludCBzdHJuY21wKGNvbnN0IGNoYXIgKiwg Y29uc3QgY2hhciAqLCBzaXplX3QpOwpjaGFyICpzdHJuY3B5KGNoYXIgKiwgY29uc3QgY2hhciAq LCBzaXplX3QpOwpjaGFyICpzdHJuc3RyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBzaXpl X3QpOwpjaGFyICpzdHJwYnJrKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKY2hhciAqc3Ry cmNocihjb25zdCBjaGFyICosIGludCk7CnNpemVfdCBzdHJzcG4oY29uc3QgY2hhciAqLCBjb25z dCBjaGFyICopOwpjaGFyICpzdHJzdHIoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwpjaGFy ICpzdHJ0b2soY2hhciAqLCBjb25zdCBjaGFyICopOwpzaXplX3Qgc3RyeGZybShjaGFyICosIGNv bnN0IGNoYXIgKiwgc2l6ZV90KTsKCgoKaW50IGJjbXAoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lk ICosIHNpemVfdCk7CnZvaWQgYmNvcHkoY29uc3Qgdm9pZCAqLCB2b2lkICosIHNpemVfdCk7CnZv aWQgYnplcm8odm9pZCAqLCBzaXplX3QpOwppbnQgZmZzKGludCk7CmNoYXIgKmluZGV4KGNvbnN0 IGNoYXIgKiwgaW50KTsKdm9pZCAqbWVtY2NweSh2b2lkICosIGNvbnN0IHZvaWQgKiwgaW50LCBz aXplX3QpOwpjaGFyICpyaW5kZXgoY29uc3QgY2hhciAqLCBpbnQpOwppbnQgc3RyY2FzZWNtcChj b25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CmNoYXIgKnN0cmR1cChjb25zdCBjaGFyICopOwpz aXplX3Qgc3RybGNhdChjaGFyICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsKc2l6ZV90IHN0cmxj cHkoY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7CnZvaWQgc3RybW9kZShpbnQsIGNoYXIg Kik7CmludCBzdHJuY2FzZWNtcChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsK Y2hhciAqc3Ryc2VwKGNoYXIgKiosIGNvbnN0IGNoYXIgKik7CmNoYXIgKnN0cnNpZ25hbChpbnQg c2lnKTsKY2hhciAqc3RydG9rX3IoY2hhciAqLCBjb25zdCBjaGFyICosIGNoYXIgKiopOwp2b2lk IHN3YWIoY29uc3Qgdm9pZCAqLCB2b2lkICosIHNpemVfdCk7CgoKIyAxOTAgIi4uL3NyYy9jb25m X3Bvc3QuaCIgMgojIDEgInN0ZGxpYi5oIiAxCiMgMjEgInN0ZGxpYi5oIiAzCiMgMzUgInN0ZGxp Yi5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAxIDMgNAojIDU5ICIvdXNyL2luY2x1 ZGUvc3RkbGliLmgiIDMgNAojZGVmaW5lIF9TVERMSUJfSF8gCgoKIyAxICIvdXNyL2luY2x1ZGUv bWFjaGluZS90eXBlcy5oIiAxIDMgNAojIDI2ICIvdXNyL2luY2x1ZGUvbWFjaGluZS90eXBlcy5o IiAzIDQKI2RlZmluZSBfQlNEX01BQ0hJTkVfVFlQRVNfSF8gCgoKCiMgMSAiL3Vzci9pbmNsdWRl L3BwYy90eXBlcy5oIiAxIDMgNAojIDYxICIvdXNyL2luY2x1ZGUvcHBjL3R5cGVzLmgiIDMgNAoj ZGVmaW5lIF9NQUNIVFlQRVNfSF8gCgoKCgoKCgp0eXBlZGVmIHNpZ25lZCBjaGFyIGludDhfdDsK dHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVfaW50OF90Owp0eXBlZGVmIHNob3J0IGludDE2X3Q7CnR5 cGVkZWYgdW5zaWduZWQgc2hvcnQgdV9pbnQxNl90Owp0eXBlZGVmIGludCBpbnQzMl90Owp0eXBl ZGVmIHVuc2lnbmVkIGludCB1X2ludDMyX3Q7CnR5cGVkZWYgbG9uZyBsb25nIGludDY0X3Q7CnR5 cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVfaW50NjRfdDsKCnR5cGVkZWYgaW50MzJfdCByZWdp c3Rlcl90OwoKdHlwZWRlZiBsb25nIGludCBpbnRwdHJfdDsKdHlwZWRlZiB1bnNpZ25lZCBsb25n IGludCB1aW50cHRyX3Q7CgojZGVmaW5lIF9fb2Zmc2V0b2YodHlwZSxmaWVsZCkgKChzaXplX3Qp KCYoKHR5cGUgKikwKS0+ZmllbGQpKQojIDMxICIvdXNyL2luY2x1ZGUvbWFjaGluZS90eXBlcy5o IiAyIDMgNAojIDYzICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDIgMyA0CiMgNzQgIi91c3IvaW5j bHVkZS9zdGRsaWIuaCIgMyA0CiNkZWZpbmUgX0JTRF9DVF9SVU5FX1RfREVGSU5FRF8gCnR5cGVk ZWYgaW50IGN0X3J1bmVfdDsKCgoKI2RlZmluZSBfQlNEX1JVTkVfVF9ERUZJTkVEXyAKdHlwZWRl ZiBpbnQgcnVuZV90OwoKCgoKCiNkZWZpbmUgX0JTRF9XQ0hBUl9UX0RFRklORURfIAoKdHlwZWRl ZiBpbnQgd2NoYXJfdDsKCgoKCgoKCiNkZWZpbmUgX0JTRF9XSU5UX1RfREVGSU5FRF8gCnR5cGVk ZWYgaW50IHdpbnRfdDsKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgaW50IHF1b3Q7CiAgICAg ICAgaW50IHJlbTsKfSBkaXZfdDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBsb25nIHF1b3Q7 CiAgICAgICAgbG9uZyByZW07Cn0gbGRpdl90OwoKCgoKCiNkZWZpbmUgRVhJVF9GQUlMVVJFIDEK I2RlZmluZSBFWElUX1NVQ0NFU1MgMAoKI2RlZmluZSBSQU5EX01BWCAweDdmZmZmZmZmCgpleHRl cm4gaW50IF9fbWJfY3VyX21heDsKI2RlZmluZSBNQl9DVVJfTUFYIF9fbWJfY3VyX21heAoKCgoK dm9pZCBhYm9ydCh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKTsKaW50IGFicyhp bnQpIF9fYXR0cmlidXRlX18oKF9fY29uc3RfXykpOwppbnQgYXRleGl0KHZvaWQgKCopKHZvaWQp KTsKZG91YmxlIGF0b2YoY29uc3QgY2hhciAqKTsKaW50IGF0b2koY29uc3QgY2hhciAqKTsKbG9u ZyBhdG9sKGNvbnN0IGNoYXIgKik7CnZvaWQgKmJzZWFyY2goY29uc3Qgdm9pZCAqLCBjb25zdCB2 b2lkICosIHNpemVfdCwKICAgICAgICAgICAgc2l6ZV90LCBpbnQgKCopKGNvbnN0IHZvaWQgKiwg Y29uc3Qgdm9pZCAqKSk7CnZvaWQgKmNhbGxvYyhzaXplX3QsIHNpemVfdCk7CmRpdl90IGRpdihp bnQsIGludCkgX19hdHRyaWJ1dGVfXygoX19jb25zdF9fKSk7CnZvaWQgZXhpdChpbnQpIF9fYXR0 cmlidXRlX18oKF9fbm9yZXR1cm5fXykpOwp2b2lkIGZyZWUodm9pZCAqKTsKY2hhciAqZ2V0ZW52 KGNvbnN0IGNoYXIgKik7CmxvbmcgbGFicyhsb25nKSBfX2F0dHJpYnV0ZV9fKChfX2NvbnN0X18p KTsKbGRpdl90IGxkaXYobG9uZywgbG9uZykgX19hdHRyaWJ1dGVfXygoX19jb25zdF9fKSk7CnZv aWQgKm1hbGxvYyhzaXplX3QpOwppbnQgbWJsZW4oY29uc3QgY2hhciAqLCBzaXplX3QpOwpzaXpl X3QgbWJzdG93Y3Mod2NoYXJfdCAqIF9fcmVzdHJpY3QgLCBjb25zdCBjaGFyICogX19yZXN0cmlj dCwgc2l6ZV90KTsKaW50IG1idG93Yyh3Y2hhcl90ICogX19yZXN0cmljdCwgY29uc3QgY2hhciAq IF9fcmVzdHJpY3QsIHNpemVfdCk7CnZvaWQgcXNvcnQodm9pZCAqLCBzaXplX3QsIHNpemVfdCwK ICAgICAgICAgICAgaW50ICgqKShjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKikpOwppbnQgcmFu ZCh2b2lkKTsKdm9pZCAqcmVhbGxvYyh2b2lkICosIHNpemVfdCk7CnZvaWQgc3JhbmQodW5zaWdu ZWQpOwpkb3VibGUgc3RydG9kKGNvbnN0IGNoYXIgKiwgY2hhciAqKik7CmZsb2F0IHN0cnRvZihj b25zdCBjaGFyICosIGNoYXIgKiopOwpsb25nIHN0cnRvbChjb25zdCBjaGFyICosIGNoYXIgKios IGludCk7CmxvbmcgZG91YmxlCiAgICAgICAgIHN0cnRvbGQoY29uc3QgY2hhciAqLCBjaGFyICoq KTsKdW5zaWduZWQgbG9uZwogICAgICAgICBzdHJ0b3VsKGNvbnN0IGNoYXIgKiwgY2hhciAqKiwg aW50KTsKaW50IHN5c3RlbShjb25zdCBjaGFyICopOwp2b2lkICp2YWxsb2Moc2l6ZV90KTsKaW50 IHdjdG9tYihjaGFyICosIHdjaGFyX3QpOwpzaXplX3Qgd2NzdG9tYnMoY2hhciAqIF9fcmVzdHJp Y3QsIGNvbnN0IHdjaGFyX3QgKiBfX3Jlc3RyaWN0LCBzaXplX3QpOwoKCmludCBwdXRlbnYoY29u c3QgY2hhciAqKTsKaW50IHNldGVudihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgaW50KTsK CgoKdV9pbnQzMl90CiAgICAgICAgIGFyYzRyYW5kb20odm9pZCk7CnZvaWQgYXJjNHJhbmRvbV9h ZGRyYW5kb20odW5zaWduZWQgY2hhciAqZGF0LCBpbnQgZGF0bGVuKTsKdm9pZCBhcmM0cmFuZG9t X3N0aXIodm9pZCk7CmRvdWJsZSBkcmFuZDQ4KHZvaWQpOwpkb3VibGUgZXJhbmQ0OCh1bnNpZ25l ZCBzaG9ydFszXSk7CmxvbmcganJhbmQ0OCh1bnNpZ25lZCBzaG9ydFszXSk7CnZvaWQgbGNvbmc0 OCh1bnNpZ25lZCBzaG9ydFs3XSk7CmxvbmcgbHJhbmQ0OCh2b2lkKTsKbG9uZyBtcmFuZDQ4KHZv aWQpOwpsb25nIG5yYW5kNDgodW5zaWduZWQgc2hvcnRbM10pOwp1bnNpZ25lZCBzaG9ydAogICAg ICAgICpzZWVkNDgodW5zaWduZWQgc2hvcnRbM10pOwp2b2lkIHNyYW5kNDgobG9uZyk7CgoKY2hh ciAqY2dldGNhcChjaGFyICosIGNvbnN0IGNoYXIgKiwgaW50KTsKaW50IGNnZXRjbG9zZSh2b2lk KTsKaW50IGNnZXRlbnQoY2hhciAqKiwgY2hhciAqKiwgY29uc3QgY2hhciAqKTsKaW50IGNnZXRm aXJzdChjaGFyICoqLCBjaGFyICoqKTsKaW50IGNnZXRtYXRjaChjb25zdCBjaGFyICosIGNvbnN0 IGNoYXIgKik7CmludCBjZ2V0bmV4dChjaGFyICoqLCBjaGFyICoqKTsKaW50IGNnZXRudW0oY2hh ciAqLCBjb25zdCBjaGFyICosIGxvbmcgKik7CmludCBjZ2V0c2V0KGNvbnN0IGNoYXIgKik7Cmlu dCBjZ2V0c3RyKGNoYXIgKiwgY29uc3QgY2hhciAqLCBjaGFyICoqKTsKaW50IGNnZXR1c3RyKGNo YXIgKiwgY29uc3QgY2hhciAqLCBjaGFyICoqKTsKCmludCBkYWVtb24oaW50LCBpbnQpOwpjaGFy ICpkZXZuYW1lKGludCwgaW50KTsKY2hhciAqZ2V0YnNpemUoaW50ICosIGxvbmcgKik7CmludCBn ZXRsb2FkYXZnKGRvdWJsZSBbXSwgaW50KTsKY29uc3QgY2hhcgogICAgICAgICpnZXRwcm9nbmFt ZSh2b2lkKTsKCmxvbmcgYTY0bChjb25zdCBjaGFyICopOwpjaGFyICpsNjRhKGxvbmcpOwoKCmlu dCBoZWFwc29ydCh2b2lkICosIHNpemVfdCwgc2l6ZV90LAogICAgICAgICAgICBpbnQgKCopKGNv bnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqKSk7CmNoYXIgKmluaXRzdGF0ZSh1bnNpZ25lZCBsb25n LCBjaGFyICosIGxvbmcpOwppbnQgbWVyZ2Vzb3J0KHZvaWQgKiwgc2l6ZV90LCBzaXplX3QsCiAg ICAgICAgICAgIGludCAoKikoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopKTsKCgp2b2lkIHFz b3J0X3Iodm9pZCAqLCBzaXplX3QsIHNpemVfdCwgdm9pZCAqLAogICAgICAgICAgICBpbnQgKCop KHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopKTsKaW50IHJhZGl4c29ydChjb25z dCB1bnNpZ25lZCBjaGFyICoqLCBpbnQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiwKICAgICAgICAg ICAgdW5zaWduZWQpOwp2b2lkIHNldHByb2duYW1lKGNvbnN0IGNoYXIgKik7CmludCBzcmFkaXhz b3J0KGNvbnN0IHVuc2lnbmVkIGNoYXIgKiosIGludCwgY29uc3QgdW5zaWduZWQgY2hhciAqLAog ICAgICAgICAgICB1bnNpZ25lZCk7CnZvaWQgc3JhbmRkZXYodm9pZCk7CnZvaWQgc3JhbmRvbWRl dih2b2lkKTsKaW50IHJhbmRfcih1bnNpZ25lZCAqKTsKbG9uZyByYW5kb20odm9pZCk7CnZvaWQg KnJlYWxsb2NmKHZvaWQgKiwgc2l6ZV90KTsKY2hhciAqcmVhbHBhdGgoY29uc3QgY2hhciAqLCBj aGFyIHJlc29sdmVkX3BhdGhbXSk7CmNoYXIgKnNldHN0YXRlKGNoYXIgKik7CnZvaWQgc3JhbmRv bSh1bnNpZ25lZCBsb25nKTsKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgbG9uZyBsb25nIHF1 b3Q7CiAgICAgICAgbG9uZyBsb25nIHJlbTsKfSBsbGRpdl90OwoKbG9uZyBsb25nCiAgICAgICAg IGF0b2xsKGNvbnN0IGNoYXIgKik7CmxvbmcgbG9uZwogICAgICAgICBsbGFicyhsb25nIGxvbmcp OwpsbGRpdl90IGxsZGl2KGxvbmcgbG9uZywgbG9uZyBsb25nKTsKbG9uZyBsb25nCiAgICAgICAg IHN0cnRvbGwoY29uc3QgY2hhciAqLCBjaGFyICoqLCBpbnQpOwp1bnNpZ25lZCBsb25nIGxvbmcK ICAgICAgICAgc3RydG91bGwoY29uc3QgY2hhciAqLCBjaGFyICoqLCBpbnQpOwpsb25nIGxvbmcK ICAgICAgICAgc3RydG9xKGNvbnN0IGNoYXIgKiwgY2hhciAqKiwgaW50KTsKdW5zaWduZWQgbG9u ZyBsb25nCiAgICAgICAgIHN0cnRvdXEoY29uc3QgY2hhciAqLCBjaGFyICoqLCBpbnQpOwoKdm9p ZCB1bnNldGVudihjb25zdCBjaGFyICopOwoKCiMgMzYgInN0ZGxpYi5oIiAyIDMKCgojZGVmaW5l IF9HTF9TVERMSUJfSCAKCgojIDEgIi91c3IvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKIyA2MiAi L3Vzci9pbmNsdWRlL3N0ZGRlZi5oIiAzIDQKI2RlZmluZSBfX1NURERFRl9IX18gCgoKCgp0eXBl ZGVmIGludCBwdHJkaWZmX3Q7CiMgMTA0ICIvdXNyL2luY2x1ZGUvc3RkZGVmLmgiIDMgNAojZGVm aW5lIG9mZnNldG9mKHR5cGUsbWVtYmVyKSBfX29mZnNldG9mKHR5cGUsIG1lbWJlcikKIyA0MiAi c3RkbGliLmgiIDIgMwojIDEwMSAic3RkbGliLmgiIDMKI2RlZmluZSBfR0xfQVRUUklCVVRFX1BV UkUgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkKIyAxMjAgInN0ZGxpYi5oIiAzCiNkZWZpbmUg X0dMX0NYWERFRlNfSCAKIyAxODYgInN0ZGxpYi5oIiAzCiNkZWZpbmUgX0dMX0VYVEVSTl9DIGV4 dGVybgojIDE5NiAic3RkbGliLmgiIDMKI2RlZmluZSBfR0xfRlVOQ0RFQ0xfUlBMKGZ1bmMscmV0 dHlwZSxwYXJhbWV0ZXJzX2FuZF9hdHRyaWJ1dGVzKSBfR0xfRlVOQ0RFQ0xfUlBMXzEgKHJwbF8g IyNmdW5jLCByZXR0eXBlLCBwYXJhbWV0ZXJzX2FuZF9hdHRyaWJ1dGVzKQoKI2RlZmluZSBfR0xf RlVOQ0RFQ0xfUlBMXzEocnBsX2Z1bmMscmV0dHlwZSxwYXJhbWV0ZXJzX2FuZF9hdHRyaWJ1dGVz KSBfR0xfRVhURVJOX0MgcmV0dHlwZSBycGxfZnVuYyBwYXJhbWV0ZXJzX2FuZF9hdHRyaWJ1dGVz CiMgMjA4ICJzdGRsaWIuaCIgMwojZGVmaW5lIF9HTF9GVU5DREVDTF9TWVMoZnVuYyxyZXR0eXBl LHBhcmFtZXRlcnNfYW5kX2F0dHJpYnV0ZXMpIF9HTF9FWFRFUk5fQyByZXR0eXBlIGZ1bmMgcGFy YW1ldGVyc19hbmRfYXR0cmlidXRlcwojIDIxNyAic3RkbGliLmgiIDMKI2RlZmluZSBfR0xfQ1hY QUxJQVNfUlBMKGZ1bmMscmV0dHlwZSxwYXJhbWV0ZXJzKSBfR0xfQ1hYQUxJQVNfUlBMXzEgKGZ1 bmMsIHJwbF8gIyNmdW5jLCByZXR0eXBlLCBwYXJhbWV0ZXJzKQojIDIyNyAic3RkbGliLmgiIDMK I2RlZmluZSBfR0xfQ1hYQUxJQVNfUlBMXzEoZnVuYyxycGxfZnVuYyxyZXR0eXBlLHBhcmFtZXRl cnMpIF9HTF9FWFRFUk5fQyBpbnQgX2dsX2N4eGFsaWFzX2R1bW15CiMgMjQ1ICJzdGRsaWIuaCIg MwojZGVmaW5lIF9HTF9DWFhBTElBU19SUExfQ0FTVF8xKGZ1bmMscnBsX2Z1bmMscmV0dHlwZSxw YXJhbWV0ZXJzKSBfR0xfRVhURVJOX0MgaW50IF9nbF9jeHhhbGlhc19kdW1teQojIDI3MCAic3Rk bGliLmgiIDMKI2RlZmluZSBfR0xfQ1hYQUxJQVNfU1lTKGZ1bmMscmV0dHlwZSxwYXJhbWV0ZXJz KSBfR0xfRVhURVJOX0MgaW50IF9nbF9jeHhhbGlhc19kdW1teQojIDI4OCAic3RkbGliLmgiIDMK I2RlZmluZSBfR0xfQ1hYQUxJQVNfU1lTX0NBU1QoZnVuYyxyZXR0eXBlLHBhcmFtZXRlcnMpIF9H TF9FWFRFUk5fQyBpbnQgX2dsX2N4eGFsaWFzX2R1bW15CiMgMzEzICJzdGRsaWIuaCIgMwojZGVm aW5lIF9HTF9DWFhBTElBU19TWVNfQ0FTVDIoZnVuYyxyZXR0eXBlLHBhcmFtZXRlcnMscmV0dHlw ZTIscGFyYW1ldGVyczIpIF9HTF9FWFRFUk5fQyBpbnQgX2dsX2N4eGFsaWFzX2R1bW15CiMgMzQx ICJzdGRsaWIuaCIgMwojZGVmaW5lIF9HTF9DWFhBTElBU1dBUk4oZnVuYykgX0dMX0VYVEVSTl9D IGludCBfZ2xfY3h4YWxpYXNfZHVtbXkKIyAzNjkgInN0ZGxpYi5oIiAzCiNkZWZpbmUgX0dMX0NY WEFMSUFTV0FSTjEoZnVuYyxyZXR0eXBlLHBhcmFtZXRlcnNfYW5kX2F0dHJpYnV0ZXMpIF9HTF9F WFRFUk5fQyBpbnQgX2dsX2N4eGFsaWFzX2R1bW15CiMgMzgxICJzdGRsaWIuaCIgMwojZGVmaW5l IF9HTF9BUkdfTk9OTlVMTChwYXJhbXMpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyBwYXJh bXMpKQojIDM5OSAic3RkbGliLmgiIDMKI2RlZmluZSBfR0xfV0FSTl9PTl9VU0UoZnVuY3Rpb24s bWVzc2FnZSkgX0dMX1dBUk5fRVhURVJOX0MgaW50IF9nbF93YXJuX29uX3VzZQojIDQyMCAic3Rk bGliLmgiIDMKI2RlZmluZSBfR0xfV0FSTl9PTl9VU0VfQ1hYKGZ1bmN0aW9uLHJldHR5cGUscGFy YW1ldGVyc19hbmRfYXR0cmlidXRlcyxtc2cpIF9HTF9XQVJOX0VYVEVSTl9DIGludCBfZ2xfd2Fy bl9vbl91c2UKIyA0MzEgInN0ZGxpYi5oIiAzCiNkZWZpbmUgX0dMX1dBUk5fRVhURVJOX0MgZXh0 ZXJuCiMgNTM4ICJzdGRsaWIuaCIgMwpleHRlcm4gaW50IF9nbF9jeHhhbGlhc19kdW1teTsKZXh0 ZXJuIGludCBfZ2xfY3h4YWxpYXNfZHVtbXk7CiMgMTkxICIuLi9zcmMvY29uZl9wb3N0LmgiIDIK CgojZGVmaW5lIE5PX0lOTElORSBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCgoKCgoKCgojZGVm aW5lIEVYVEVSTkFMTFlfVklTSUJMRSAKCgoKI2RlZmluZSBBVFRSSUJVVEVfRk9STUFUKHNwZWMp IF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIHNwZWMpKQojIDIxNCAiLi4vc3JjL2NvbmZfcG9z dC5oIgojZGVmaW5lIEFUVFJJQlVURV9GT1JNQVRfUFJJTlRGKGZvcm1hdHN0cmluZ19wYXJhbWV0 ZXIsZmlyc3RfYXJndW1lbnQpIEFUVFJJQlVURV9GT1JNQVQgKChfX3ByaW50Zl9fLCBmb3JtYXRz dHJpbmdfcGFyYW1ldGVyLCBmaXJzdF9hcmd1bWVudCkpCgoKCiNkZWZpbmUgQVRUUklCVVRFX0NP TlNUIF9HTF9BVFRSSUJVVEVfQ09OU1QKCgoKCgoKI2RlZmluZSBJTkxJTkUgX0dMX0lOTElORQoj ZGVmaW5lIEVYVEVSTl9JTkxJTkUgX0dMX0VYVEVSTl9JTkxJTkUKI2RlZmluZSBJTkxJTkVfSEVB REVSX0JFR0lOIF9HTF9JTkxJTkVfSEVBREVSX0JFR0lOCiNkZWZpbmUgSU5MSU5FX0hFQURFUl9F TkQgX0dMX0lOTElORV9IRUFERVJfRU5ECiMgMjM4ICIuLi9zcmMvY29uZl9wb3N0LmgiCiNkZWZp bmUgSUZfTElOVChDb2RlKSAKI2RlZmluZSBsaW50X2Fzc3VtZShjb25kKSAoKHZvaWQpICgwICYm IChjb25kKSkpCiMgMTY2OSAiLi4vc3JjL2NvbmZpZy5oIiAyCiMgMjIgImNhcmVhZGxpbmthdC5j IiAyCgojIDEgImNhcmVhZGxpbmthdC5oIiAxCiMgMjEgImNhcmVhZGxpbmthdC5oIgojZGVmaW5l IF9HTF9DQVJFQURMSU5LQVRfSCAKCiMgMSAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDEgMyA0CiMg MjMgIi91c3IvaW5jbHVkZS9mY250bC5oIiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvc3lzL2ZjbnRs LmgiIDEgMyA0CiMgNjUgIi91c3IvaW5jbHVkZS9zeXMvZmNudGwuaCIgMyA0CiNkZWZpbmUgX1NZ U19GQ05UTF9IXyAKIyA3NCAiL3Vzci9pbmNsdWRlL3N5cy9mY250bC5oIiAzIDQKIyAxICIvdXNy L2luY2x1ZGUvc3lzL3R5cGVzLmgiIDEgMyA0CiMgNjQgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMu aCIgMyA0CiNkZWZpbmUgX1NZU19UWVBFU19IXyAKCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9hcHBs ZWFwaW9wdHMuaCIgMSAzIDQKIyAyNCAiL3Vzci9pbmNsdWRlL3N5cy9hcHBsZWFwaW9wdHMuaCIg MyA0CiNkZWZpbmUgX19TWVNfQVBQTEVBUElPUFRTX0hfXyAKCgoKI2RlZmluZSBfX0FQUExFX0FQ SV9TVEFOREFSRCAKCgoKI2RlZmluZSBfX0FQUExFX0FQSV9TVEFCTEUgCgoKCgoKI2RlZmluZSBf X0FQUExFX0FQSV9FVk9MVklORyAKCgoKI2RlZmluZSBfX0FQUExFX0FQSV9VTlNUQUJMRSAKCgoK I2RlZmluZSBfX0FQUExFX0FQSV9QUklWQVRFIAoKCgojZGVmaW5lIF9fQVBQTEVfQVBJX09CU09M RVRFIAojIDY3ICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMyA0CiMgNzUgIi91c3IvaW5j bHVkZS9zeXMvdHlwZXMuaCIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL21hY2hpbmUvZW5kaWFuLmgi IDEgMyA0CiMgMjYgIi91c3IvaW5jbHVkZS9tYWNoaW5lL2VuZGlhbi5oIiAzIDQKI2RlZmluZSBf QlNEX01BQ0hJTkVfRU5ESUFOX0hfIAoKCgojIDEgIi91c3IvaW5jbHVkZS9wcGMvZW5kaWFuLmgi IDEgMyA0CiMgNTkgIi91c3IvaW5jbHVkZS9wcGMvZW5kaWFuLmgiIDMgNAojZGVmaW5lIF9QUENf RU5ESUFOX0hfIAoKCgoKI2RlZmluZSBfUVVBRF9ISUdIV09SRCAwCiNkZWZpbmUgX1FVQURfTE9X V09SRCAxCgoKCgoKCiNkZWZpbmUgTElUVExFX0VORElBTiAxMjM0CiNkZWZpbmUgQklHX0VORElB TiA0MzIxCiNkZWZpbmUgUERQX0VORElBTiAzNDEyCgojZGVmaW5lIEJZVEVfT1JERVIgQklHX0VO RElBTgoKCgoKCnVuc2lnbmVkIGxvbmcgaHRvbmwgKHVuc2lnbmVkIGxvbmcpOwp1bnNpZ25lZCBz aG9ydCBodG9ucyAodW5zaWduZWQgc2hvcnQpOwp1bnNpZ25lZCBsb25nIG50b2hsICh1bnNpZ25l ZCBsb25nKTsKdW5zaWduZWQgc2hvcnQgbnRvaHMgKHVuc2lnbmVkIHNob3J0KTsKCgoKCgoKCiNk ZWZpbmUgbnRvaGwoeCkgKHgpCiNkZWZpbmUgbnRvaHMoeCkgKHgpCiNkZWZpbmUgaHRvbmwoeCkg KHgpCiNkZWZpbmUgaHRvbnMoeCkgKHgpCgojZGVmaW5lIE5UT0hMKHgpICh4KQojZGVmaW5lIE5U T0hTKHgpICh4KQojZGVmaW5lIEhUT05MKHgpICh4KQojZGVmaW5lIEhUT05TKHgpICh4KQojIDMx ICIvdXNyL2luY2x1ZGUvbWFjaGluZS9lbmRpYW4uaCIgMiAzIDQKIyA3NiAiL3Vzci9pbmNsdWRl L3N5cy90eXBlcy5oIiAyIDMgNAoKCnR5cGVkZWYgdW5zaWduZWQgY2hhciB1X2NoYXI7CnR5cGVk ZWYgdW5zaWduZWQgc2hvcnQgdV9zaG9ydDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdV9pbnQ7CnR5 cGVkZWYgdW5zaWduZWQgbG9uZyB1X2xvbmc7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdXNob3J0 Owp0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50OwoKCnR5cGVkZWYgdV9pbnQ2NF90IHVfcXVhZF90 Owp0eXBlZGVmIGludDY0X3QgcXVhZF90Owp0eXBlZGVmIHF1YWRfdCAqIHFhZGRyX3Q7Cgp0eXBl ZGVmIGNoYXIgKiBjYWRkcl90Owp0eXBlZGVmIGludDMyX3QgZGFkZHJfdDsKdHlwZWRlZiBpbnQz Ml90IGRldl90Owp0eXBlZGVmIHVfaW50MzJfdCBmaXhwdF90Owp0eXBlZGVmIHVfaW50MzJfdCBn aWRfdDsKdHlwZWRlZiB1X2ludDMyX3QgaW5fYWRkcl90Owp0eXBlZGVmIHVfaW50MTZfdCBpbl9w b3J0X3Q7CnR5cGVkZWYgdV9pbnQzMl90IGlub190Owp0eXBlZGVmIGxvbmcga2V5X3Q7CnR5cGVk ZWYgdV9pbnQxNl90IG1vZGVfdDsKdHlwZWRlZiB1X2ludDE2X3QgbmxpbmtfdDsKdHlwZWRlZiBx dWFkX3Qgb2ZmX3Q7CnR5cGVkZWYgaW50MzJfdCBwaWRfdDsKdHlwZWRlZiBxdWFkX3QgcmxpbV90 Owp0eXBlZGVmIGludDMyX3Qgc2Vnc3pfdDsKdHlwZWRlZiBpbnQzMl90IHN3YmxrX3Q7CnR5cGVk ZWYgdV9pbnQzMl90IHVpZF90Owp0eXBlZGVmIHVfaW50MzJfdCB1c2Vjb25kc190OwoKCgojZGVm aW5lIG1ham9yKHgpICgoaW50MzJfdCkoKCh1X2ludDMyX3QpKHgpID4+IDI0KSAmIDB4ZmYpKQoj ZGVmaW5lIG1pbm9yKHgpICgoaW50MzJfdCkoKHgpICYgMHhmZmZmZmYpKQojZGVmaW5lIG1ha2Vk ZXYoeCx5KSAoKGRldl90KSgoKHgpIDw8IDI0KSB8ICh5KSkpCgoKCiNkZWZpbmUgX0JTRF9DTE9D S19UX0RFRklORURfIAp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgY2xvY2tfdDsKIyAxMjcgIi91c3Iv aW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0CiNkZWZpbmUgX0JTRF9TU0laRV9UX0RFRklORURfIAp0 eXBlZGVmIGludCBzc2l6ZV90OwoKCgojZGVmaW5lIF9CU0RfVElNRV9UX0RFRklORURfIAp0eXBl ZGVmIGxvbmcgdGltZV90OwoKCgojZGVmaW5lIE5CQlkgOAoKCgoKCgojZGVmaW5lIEZEX1NFVFNJ WkUgMTAyNAoKCnR5cGVkZWYgaW50MzJfdCBmZF9tYXNrOwojZGVmaW5lIE5GREJJVFMgKHNpemVv ZihmZF9tYXNrKSAqIE5CQlkpCgoKI2RlZmluZSBob3dtYW55KHgseSkgKCgoeCkgKyAoKHkpIC0g MSkpIC8gKHkpKQoKCnR5cGVkZWYgc3RydWN0IGZkX3NldCB7CiAgICAgICAgZmRfbWFzayBmZHNf Yml0c1soKCgxMDI0KSArICgoKHNpemVvZihmZF9tYXNrKSAqIDgpKSAtIDEpKSAvICgoc2l6ZW9m KGZkX21hc2spICogOCkpKV07Cn0gZmRfc2V0OwoKI2RlZmluZSBGRF9TRVQobixwKSAoKHApLT5m ZHNfYml0c1sobikvTkZEQklUU10gfD0gKDEgPDwgKChuKSAlIE5GREJJVFMpKSkKI2RlZmluZSBG RF9DTFIobixwKSAoKHApLT5mZHNfYml0c1sobikvTkZEQklUU10gJj0gfigxIDw8ICgobikgJSBO RkRCSVRTKSkpCiNkZWZpbmUgRkRfSVNTRVQobixwKSAoKHApLT5mZHNfYml0c1sobikvTkZEQklU U10gJiAoMSA8PCAoKG4pICUgTkZEQklUUykpKQojZGVmaW5lIEZEX0NPUFkoZix0KSBiY29weShm LCB0LCBzaXplb2YoKihmKSkpCiNkZWZpbmUgRkRfWkVSTyhwKSBiemVybyhwLCBzaXplb2YoKihw KSkpCiMgMTgzICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNApzdHJ1Y3QgX3B0aHJlYWRf aGFuZGxlcl9yZWMKewogICAgICAgIHZvaWQgKCpyb3V0aW5lKSh2b2lkICopOwogICAgICAgIHZv aWQgKmFyZzsKICAgICAgICBzdHJ1Y3QgX3B0aHJlYWRfaGFuZGxlcl9yZWMgKm5leHQ7Cn07CgoK CiNkZWZpbmUgX19QVEhSRUFEX1NJWkVfXyA1OTYKI2RlZmluZSBfX1BUSFJFQURfQVRUUl9TSVpF X18gMzYKI2RlZmluZSBfX1BUSFJFQURfTVVURVhBVFRSX1NJWkVfXyA4CiNkZWZpbmUgX19QVEhS RUFEX01VVEVYX1NJWkVfXyA0MAojZGVmaW5lIF9fUFRIUkVBRF9DT05EQVRUUl9TSVpFX18gNAoj ZGVmaW5lIF9fUFRIUkVBRF9DT05EX1NJWkVfXyAyNAojZGVmaW5lIF9fUFRIUkVBRF9PTkNFX1NJ WkVfXyA0CiNkZWZpbmUgX19QVEhSRUFEX1JXTE9DS19TSVpFX18gMTI0CiNkZWZpbmUgX19QVEhS RUFEX1JXTE9DS0FUVFJfU0laRV9fIDEyCgoKdHlwZWRlZiBzdHJ1Y3QgX29wYXF1ZV9wdGhyZWFk X3QgeyBsb25nIHNpZzsgc3RydWN0IF9wdGhyZWFkX2hhbmRsZXJfcmVjICpjbGVhbnVwX3N0YWNr OyBjaGFyIG9wYXF1ZVs1OTZdO30gKnB0aHJlYWRfdDsKCnR5cGVkZWYgc3RydWN0IF9vcGFxdWVf cHRocmVhZF9hdHRyX3QgeyBsb25nIHNpZzsgY2hhciBvcGFxdWVbMzZdOyB9IHB0aHJlYWRfYXR0 cl90OwoKdHlwZWRlZiBzdHJ1Y3QgX29wYXF1ZV9wdGhyZWFkX211dGV4YXR0cl90IHsgbG9uZyBz aWc7IGNoYXIgb3BhcXVlWzhdOyB9IHB0aHJlYWRfbXV0ZXhhdHRyX3Q7Cgp0eXBlZGVmIHN0cnVj dCBfb3BhcXVlX3B0aHJlYWRfbXV0ZXhfdCB7IGxvbmcgc2lnOyBjaGFyIG9wYXF1ZVs0MF07IH0g cHRocmVhZF9tdXRleF90OwoKdHlwZWRlZiBzdHJ1Y3QgX29wYXF1ZV9wdGhyZWFkX2NvbmRhdHRy X3QgeyBsb25nIHNpZzsgY2hhciBvcGFxdWVbNF07IH0gcHRocmVhZF9jb25kYXR0cl90OwoKdHlw ZWRlZiBzdHJ1Y3QgX29wYXF1ZV9wdGhyZWFkX2NvbmRfdCB7IGxvbmcgc2lnOyBjaGFyIG9wYXF1 ZVsyNF07IH0gcHRocmVhZF9jb25kX3Q7Cgp0eXBlZGVmIHN0cnVjdCBfb3BhcXVlX3B0aHJlYWRf cndsb2NrYXR0cl90IHsgbG9uZyBzaWc7IGNoYXIgb3BhcXVlWzEyXTsgfSBwdGhyZWFkX3J3bG9j a2F0dHJfdDsKCnR5cGVkZWYgc3RydWN0IF9vcGFxdWVfcHRocmVhZF9yd2xvY2tfdCB7IGxvbmcg c2lnOyBjaGFyIG9wYXF1ZVsxMjRdOyB9IHB0aHJlYWRfcndsb2NrX3Q7Cgp0eXBlZGVmIHN0cnVj dCB7IGxvbmcgc2lnOyBjaGFyIG9wYXF1ZVs0XTsgfSBwdGhyZWFkX29uY2VfdDsKCgoKdHlwZWRl ZiB1bnNpZ25lZCBsb25nIHB0aHJlYWRfa2V5X3Q7CiMgNzUgIi91c3IvaW5jbHVkZS9zeXMvZmNu dGwuaCIgMiAzIDQKIyA4NSAiL3Vzci9pbmNsdWRlL3N5cy9mY250bC5oIiAzIDQKI2RlZmluZSBP X1JET05MWSAweDAwMDAKI2RlZmluZSBPX1dST05MWSAweDAwMDEKI2RlZmluZSBPX1JEV1IgMHgw MDAyCiNkZWZpbmUgT19BQ0NNT0RFIDB4MDAwMwojIDk5ICIvdXNyL2luY2x1ZGUvc3lzL2ZjbnRs LmgiIDMgNAojZGVmaW5lIEZSRUFEIDB4MDAwMQojZGVmaW5lIEZXUklURSAweDAwMDIKCiNkZWZp bmUgT19OT05CTE9DSyAweDAwMDQKI2RlZmluZSBPX0FQUEVORCAweDAwMDgKCiNkZWZpbmUgT19T SExPQ0sgMHgwMDEwCiNkZWZpbmUgT19FWExPQ0sgMHgwMDIwCiNkZWZpbmUgT19BU1lOQyAweDAw NDAKI2RlZmluZSBPX0ZTWU5DIDB4MDA4MAojZGVmaW5lIE9fTk9GT0xMT1cgMHgwMTAwCgojZGVm aW5lIE9fQ1JFQVQgMHgwMjAwCiNkZWZpbmUgT19UUlVOQyAweDA0MDAKI2RlZmluZSBPX0VYQ0wg MHgwODAwCgoKCgoKCiNkZWZpbmUgT19FVlRPTkxZIDB4ODAwMAoKCgojZGVmaW5lIE9fTk9DVFRZ IDAKIyAxNDMgIi91c3IvaW5jbHVkZS9zeXMvZmNudGwuaCIgMyA0CiNkZWZpbmUgRkFQUEVORCBP X0FQUEVORAojZGVmaW5lIEZBU1lOQyBPX0FTWU5DCiNkZWZpbmUgRkZTWU5DIE9fRlNZTkMKI2Rl ZmluZSBGTk9OQkxPQ0sgT19OT05CTE9DSwojZGVmaW5lIEZOREVMQVkgT19OT05CTE9DSwojZGVm aW5lIE9fTkRFTEFZIE9fTk9OQkxPQ0sKCgoKCgoKCiNkZWZpbmUgQ1BGX09WRVJXUklURSAxCiNk ZWZpbmUgQ1BGX0lHTk9SRV9NT0RFIDIKI2RlZmluZSBDUEZfTUFTSyAoQ1BGX09WRVJXUklURXxD UEZfSUdOT1JFX01PREUpCgoKCgoKCgojZGVmaW5lIEZfRFVQRkQgMAojZGVmaW5lIEZfR0VURkQg MQojZGVmaW5lIEZfU0VURkQgMgojZGVmaW5lIEZfR0VURkwgMwojZGVmaW5lIEZfU0VURkwgNAoK I2RlZmluZSBGX0dFVE9XTiA1CiNkZWZpbmUgRl9TRVRPV04gNgoKI2RlZmluZSBGX0dFVExLIDcK I2RlZmluZSBGX1NFVExLIDgKI2RlZmluZSBGX1NFVExLVyA5CiNkZWZpbmUgRl9DSEtDTEVBTiA0 MQojZGVmaW5lIEZfUFJFQUxMT0NBVEUgNDIKI2RlZmluZSBGX1NFVFNJWkUgNDMKI2RlZmluZSBG X1JEQURWSVNFIDQ0CiNkZWZpbmUgRl9SREFIRUFEIDQ1CiNkZWZpbmUgRl9SRUFEQk9PVFNUUkFQ IDQ2CiNkZWZpbmUgRl9XUklURUJPT1RTVFJBUCA0NwojZGVmaW5lIEZfTk9DQUNIRSA0OAojZGVm aW5lIEZfTE9HMlBIWVMgNDkKI2RlZmluZSBGX0dFVFBBVEggNTAKI2RlZmluZSBGX0ZVTExGU1lO QyA1MQoKCiNkZWZpbmUgRkRfQ0xPRVhFQyAxCgoKI2RlZmluZSBGX1JETENLIDEKI2RlZmluZSBG X1VOTENLIDIKI2RlZmluZSBGX1dSTENLIDMKIyAyMDUgIi91c3IvaW5jbHVkZS9zeXMvZmNudGwu aCIgMyA0CiNkZWZpbmUgRl9BTExPQ0FURUNPTlRJRyAweDAwMDAwMDAyCiNkZWZpbmUgRl9BTExP Q0FURUFMTCAweDAwMDAwMDA0CgoKCiNkZWZpbmUgRl9QRU9GUE9TTU9ERSAzCgojZGVmaW5lIEZf Vk9MUE9TTU9ERSA0CgoKCgoKc3RydWN0IGZsb2NrIHsKICAgICAgICBvZmZfdCBsX3N0YXJ0Owog ICAgICAgIG9mZl90IGxfbGVuOwogICAgICAgIHBpZF90IGxfcGlkOwogICAgICAgIHNob3J0IGxf dHlwZTsKICAgICAgICBzaG9ydCBsX3doZW5jZTsKfTsKCgoKCgoKc3RydWN0IHJhZHZpc29yeSB7 CiAgICAgICBvZmZfdCByYV9vZmZzZXQ7CiAgICAgICBpbnQgcmFfY291bnQ7Cn07CgoKCgojZGVm aW5lIExPQ0tfU0ggMHgwMQojZGVmaW5lIExPQ0tfRVggMHgwMgojZGVmaW5lIExPQ0tfTkIgMHgw NAojZGVmaW5lIExPQ0tfVU4gMHgwOAoKCgoKdHlwZWRlZiBzdHJ1Y3QgZnN0b3JlIHsKICAgICAg ICB1X2ludDMyX3QgZnN0X2ZsYWdzOwogICAgICAgIGludCBmc3RfcG9zbW9kZTsKICAgICAgICBv ZmZfdCBmc3Rfb2Zmc2V0OwogICAgICAgIG9mZl90IGZzdF9sZW5ndGg7CiAgICAgICAgb2ZmX3Qg ZnN0X2J5dGVzYWxsb2M7Cn0gZnN0b3JlX3Q7CgoKCnR5cGVkZWYgc3RydWN0IGZib290c3RyYXB0 cmFuc2ZlciB7CiAgb2ZmX3QgZmJ0X29mZnNldDsKICBzaXplX3QgZmJ0X2xlbmd0aDsKICB2b2lk ICpmYnRfYnVmZmVyOwp9IGZib290c3RyYXB0cmFuc2Zlcl90OwojIDI3OSAiL3Vzci9pbmNsdWRl L3N5cy9mY250bC5oIiAzIDQKc3RydWN0IGxvZzJwaHlzIHsKICAgICAgICB1X2ludDMyX3QgbDJw X2ZsYWdzOwogICAgICAgIG9mZl90IGwycF9jb250aWdieXRlczsKICAgICAgICBvZmZfdCBsMnBf ZGV2b2Zmc2V0Owp9OwoKCiNkZWZpbmUgT19QT1BVUCAweDgwMDAwMDAwCiNkZWZpbmUgT19BTEVS VCAweDIwMDAwMDAwCgoKCgoKCmludCBvcGVuIChjb25zdCBjaGFyICosIGludCwgLi4uKTsKaW50 IGNyZWF0IChjb25zdCBjaGFyICosIG1vZGVfdCk7CmludCBmY250bCAoaW50LCBpbnQsIC4uLik7 CgppbnQgZmxvY2sgKGludCwgaW50KTsKCgojIDI0ICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMiAz IDQKIyAyNCAiY2FyZWFkbGlua2F0LmgiIDIKIyAxICJ1bmlzdGQuaCIgMQojIDIwICJ1bmlzdGQu aCIgMwojIDQzICJ1bmlzdGQuaCIgMwojIDEgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMSAzIDQK IyA2OSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKI2RlZmluZSBfVU5JU1REX0hfIAoKCgoj IDEgIi91c3IvaW5jbHVkZS9zeXMvdW5pc3RkLmgiIDEgMyA0CiMgNTkgIi91c3IvaW5jbHVkZS9z eXMvdW5pc3RkLmgiIDMgNAojZGVmaW5lIF9TWVNfVU5JU1REX0hfIAoKCiNkZWZpbmUgX1BPU0lY X0pPQl9DT05UUk9MIAojIDc0ICIvdXNyL2luY2x1ZGUvc3lzL3VuaXN0ZC5oIiAzIDQKI2RlZmlu ZSBfUE9TSVhfVkVSU0lPTiAxOTg4MDhMCiNkZWZpbmUgX1BPU0lYMl9WRVJTSU9OIDE5OTIxMkwK CgoKI2RlZmluZSBfUE9TSVhfQ0hPV05fUkVTVFJJQ1RFRCAxCgojZGVmaW5lIF9QT1NJWF9OT19U UlVOQyAxCgoKI2RlZmluZSBfUE9TSVhfVkRJU0FCTEUgKCh1bnNpZ25lZCBjaGFyKSdcMzc3JykK CgojZGVmaW5lIF9QT1NJWF9USFJFQURTIAojZGVmaW5lIF9QT1NJWF9USFJFQURfQVRUUl9TVEFD S0FERFIgCiNkZWZpbmUgX1BPU0lYX1RIUkVBRF9BVFRSX1NUQUNLU0laRSAKI2RlZmluZSBfUE9T SVhfVEhSRUFEX1BSSU9SSVRZX1NDSEVEVUxJTkcgCiNkZWZpbmUgX1BPU0lYX1RIUkVBRF9QUklP X0lOSEVSSVQgCiNkZWZpbmUgX1BPU0lYX1RIUkVBRF9QUklPX1BST1RFQ1QgCgojZGVmaW5lIF9Q T1NJWF9USFJFQURfS0VZU19NQVggMTI4CgoKI2RlZmluZSBGX09LIDAKI2RlZmluZSBYX09LIDB4 MDEKI2RlZmluZSBXX09LIDB4MDIKI2RlZmluZSBSX09LIDB4MDQKCgojZGVmaW5lIFNFRUtfU0VU IDAKI2RlZmluZSBTRUVLX0NVUiAxCiNkZWZpbmUgU0VFS19FTkQgMgoKCgojZGVmaW5lIExfU0VU IFNFRUtfU0VUCiNkZWZpbmUgTF9JTkNSIFNFRUtfQ1VSCiNkZWZpbmUgTF9YVE5EIFNFRUtfRU5E CgoKCiNkZWZpbmUgX1BDX0xJTktfTUFYIDEKI2RlZmluZSBfUENfTUFYX0NBTk9OIDIKI2RlZmlu ZSBfUENfTUFYX0lOUFVUIDMKI2RlZmluZSBfUENfTkFNRV9NQVggNAojZGVmaW5lIF9QQ19QQVRI X01BWCA1CiNkZWZpbmUgX1BDX1BJUEVfQlVGIDYKI2RlZmluZSBfUENfQ0hPV05fUkVTVFJJQ1RF RCA3CiNkZWZpbmUgX1BDX05PX1RSVU5DIDgKI2RlZmluZSBfUENfVkRJU0FCTEUgOQoKCiNkZWZp bmUgX1BDX05BTUVfQ0hBUlNfTUFYIDEwCiNkZWZpbmUgX1BDX0NBU0VfU0VOU0lUSVZFIDExCiNk ZWZpbmUgX1BDX0NBU0VfUFJFU0VSVklORyAxMgoKCgojZGVmaW5lIF9DU19QQVRIIDEKCgojZGVm aW5lIF9QT1NJWF9BU1lOQ0hST05PVVNfSU8gCiMgNzQgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIg MiAzIDQKCiNkZWZpbmUgU1RESU5fRklMRU5PIDAKI2RlZmluZSBTVERPVVRfRklMRU5PIDEKI2Rl ZmluZSBTVERFUlJfRklMRU5PIDIKCgoKCgojZGVmaW5lIF9QT1NJWF9USFJFQURTIAoKCiNkZWZp bmUgRl9VTE9DSyAwCiNkZWZpbmUgRl9MT0NLIDEKI2RlZmluZSBGX1RMT0NLIDIKI2RlZmluZSBG X1RFU1QgMwoKCgojZGVmaW5lIF9TQ19BUkdfTUFYIDEKI2RlZmluZSBfU0NfQ0hJTERfTUFYIDIK I2RlZmluZSBfU0NfQ0xLX1RDSyAzCiNkZWZpbmUgX1NDX05HUk9VUFNfTUFYIDQKI2RlZmluZSBf U0NfT1BFTl9NQVggNQojZGVmaW5lIF9TQ19KT0JfQ09OVFJPTCA2CiNkZWZpbmUgX1NDX1NBVkVE X0lEUyA3CiNkZWZpbmUgX1NDX1ZFUlNJT04gOAojZGVmaW5lIF9TQ19CQ19CQVNFX01BWCA5CiNk ZWZpbmUgX1NDX0JDX0RJTV9NQVggMTAKI2RlZmluZSBfU0NfQkNfU0NBTEVfTUFYIDExCiNkZWZp bmUgX1NDX0JDX1NUUklOR19NQVggMTIKI2RlZmluZSBfU0NfQ09MTF9XRUlHSFRTX01BWCAxMwoj ZGVmaW5lIF9TQ19FWFBSX05FU1RfTUFYIDE0CiNkZWZpbmUgX1NDX0xJTkVfTUFYIDE1CiNkZWZp bmUgX1NDX1JFX0RVUF9NQVggMTYKI2RlZmluZSBfU0NfMl9WRVJTSU9OIDE3CiNkZWZpbmUgX1ND XzJfQ19CSU5EIDE4CiNkZWZpbmUgX1NDXzJfQ19ERVYgMTkKI2RlZmluZSBfU0NfMl9DSEFSX1RF Uk0gMjAKI2RlZmluZSBfU0NfMl9GT1JUX0RFViAyMQojZGVmaW5lIF9TQ18yX0ZPUlRfUlVOIDIy CiNkZWZpbmUgX1NDXzJfTE9DQUxFREVGIDIzCiNkZWZpbmUgX1NDXzJfU1dfREVWIDI0CiNkZWZp bmUgX1NDXzJfVVBFIDI1CiNkZWZpbmUgX1NDX1NUUkVBTV9NQVggMjYKI2RlZmluZSBfU0NfVFpO QU1FX01BWCAyNwoKI2RlZmluZSBfU0NfQVNZTkNIUk9OT1VTX0lPIDI4CiNkZWZpbmUgX1NDX1BB R0VTSVpFIDI5CiNkZWZpbmUgX1NDX0FJT19MSVNUSU9fTUFYIDQyCiNkZWZpbmUgX1NDX0FJT19N QVggNDMKI2RlZmluZSBfU0NfQUlPX1BSSU9fREVMVEFfTUFYIDQ0CgoKCnZvaWQgX0V4aXQoaW50 KSBfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKTsKdm9pZCBfZXhpdChpbnQpIF9fYXR0cmli dXRlX18oKF9fbm9yZXR1cm5fXykpOwppbnQgYWNjZXNzKGNvbnN0IGNoYXIgKiwgaW50KTsKdW5z aWduZWQgaW50IGFsYXJtKHVuc2lnbmVkIGludCk7CmludCBjaGRpcihjb25zdCBjaGFyICopOwpp bnQgY2hvd24oY29uc3QgY2hhciAqLCB1aWRfdCwgZ2lkX3QpOwppbnQgY2xvc2UoaW50KTsKc2l6 ZV90IGNvbmZzdHIoaW50LCBjaGFyICosIHNpemVfdCk7CmludCBkdXAoaW50KTsKaW50IGR1cDIo aW50LCBpbnQpOwppbnQgZXhlY2woY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7Cmlu dCBleGVjbGUoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7CmludCBleGVjbHAoY29u c3QgY2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7CmludCBleGVjdihjb25zdCBjaGFyICosIGNo YXIgKiBjb25zdCAqKTsKaW50IGV4ZWN2ZShjb25zdCBjaGFyICosIGNoYXIgKiBjb25zdCAqLCBj aGFyICogY29uc3QgKik7CmludCBleGVjdnAoY29uc3QgY2hhciAqLCBjaGFyICogY29uc3QgKik7 CnBpZF90IGZvcmsodm9pZCk7CmxvbmcgZnBhdGhjb25mKGludCwgaW50KTsKY2hhciAqZ2V0Y3dk KGNoYXIgKiwgc2l6ZV90KTsKaW50IGdldGRvbWFpbm5hbWUoY2hhciAqLCBpbnQpOwpnaWRfdCBn ZXRlZ2lkKHZvaWQpOwp1aWRfdCBnZXRldWlkKHZvaWQpOwpnaWRfdCBnZXRnaWQodm9pZCk7Cmlu dCBnZXRncm91cHMoaW50LCBnaWRfdCBbXSk7CmNoYXIgKmdldGxvZ2luKHZvaWQpOwppbnQgZ2V0 bG9naW5fcihjaGFyICosIGludCk7CnBpZF90IGdldHBncnAodm9pZCk7CnBpZF90IGdldHBpZCh2 b2lkKTsKcGlkX3QgZ2V0cHBpZCh2b2lkKTsKdWlkX3QgZ2V0dWlkKHZvaWQpOwppbnQgaXNhdHR5 KGludCk7CmludCBsaW5rKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKb2ZmX3QgbHNlZWso aW50LCBvZmZfdCwgaW50KTsKbG9uZyBwYXRoY29uZihjb25zdCBjaGFyICosIGludCk7CmludCBw YXVzZSh2b2lkKTsKaW50IHBpcGUoaW50ICopOwpzc2l6ZV90IHJlYWQoaW50LCB2b2lkICosIHNp emVfdCk7CmludCBybWRpcihjb25zdCBjaGFyICopOwppbnQgc2V0ZG9tYWlubmFtZShjb25zdCBj aGFyICosIGludCk7CmludCBzZXRnaWQoZ2lkX3QpOwppbnQgc2V0cGdpZChwaWRfdCwgcGlkX3Qp OwpwaWRfdCBzZXRzaWQodm9pZCk7CmludCBzZXR1aWQodWlkX3QpOwp1bnNpZ25lZCBpbnQgc2xl ZXAodW5zaWduZWQgaW50KTsKbG9uZyBzeXNjb25mKGludCk7CnBpZF90IHRjZ2V0cGdycChpbnQp OwppbnQgdGNzZXRwZ3JwKGludCwgcGlkX3QpOwpjaGFyICp0dHluYW1lKGludCk7CmNoYXIgKnR0 eW5hbWVfcihpbnQsIGNoYXIgKiwgc2l6ZV90KTsKaW50IHVubGluayhjb25zdCBjaGFyICopOwpz c2l6ZV90IHdyaXRlKGludCwgY29uc3Qgdm9pZCAqLCBzaXplX3QpOwoKZXh0ZXJuIGNoYXIgKm9w dGFyZzsKZXh0ZXJuIGludCBvcHRpbmQsIG9wdGVyciwgb3B0b3B0LCBvcHRyZXNldDsKaW50IGdl dG9wdChpbnQsIGNoYXIgKiBjb25zdCBbXSwgY29uc3QgY2hhciAqKTsKCgoKc3RydWN0IHRpbWVz cGVjOwpzdHJ1Y3QgdGltZXZhbDsKCmludCBhY2N0KGNvbnN0IGNoYXIgKik7CmludCBhc3luY19k YWVtb24odm9pZCk7CmNoYXIgKmJyayhjb25zdCBjaGFyICopOwppbnQgY2hyb290KGNvbnN0IGNo YXIgKik7CmNoYXIgKmNyeXB0KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKaW50IGRlc19j aXBoZXIoY29uc3QgY2hhciAqLCBjaGFyICosIGxvbmcsIGludCk7CmludCBkZXNfc2V0a2V5KGNv bnN0IGNoYXIgKmtleSk7CmludCBlbmNyeXB0KGNoYXIgKiwgaW50KTsKdm9pZCBlbmR1c2Vyc2hl bGwodm9pZCk7CmludCBmY2hkaXIoaW50KTsKaW50IGZjaG93bihpbnQsIGludCwgaW50KTsKY2hh ciAqZmZsYWdzdG9zdHIodV9sb25nKTsKaW50IGZzeW5jKGludCk7CmludCBmdHJ1bmNhdGUoaW50 LCBvZmZfdCk7CmludCBnZXRkdGFibGVzaXplKHZvaWQpOwppbnQgZ2V0Z3JvdXBsaXN0KGNvbnN0 IGNoYXIgKiwgaW50LCBpbnQgKiwgaW50ICopOwpsb25nIGdldGhvc3RpZCh2b2lkKTsKaW50IGdl dGhvc3RuYW1lKGNoYXIgKiwgaW50KTsKbW9kZV90IGdldG1vZGUoY29uc3Qgdm9pZCAqLCBtb2Rl X3QpOwppbnQgZ2V0cGFnZXNpemUodm9pZCkgX19hdHRyaWJ1dGVfXygoX19jb25zdF9fKSk7CmNo YXIgKmdldHBhc3MoY29uc3QgY2hhciAqKTsKaW50IGdldHBnaWQocGlkX3QgX3BpZCk7CmludCBn ZXRzaWQocGlkX3QgX3BpZCk7CmNoYXIgKmdldHVzZXJzaGVsbCh2b2lkKTsKY2hhciAqZ2V0d2Qo Y2hhciAqKTsKaW50IGxvY2tmKGludCwgaW50LCBvZmZfdCk7CmludCBpbml0Z3JvdXBzKGNvbnN0 IGNoYXIgKiwgaW50KTsKaW50IGlydXNlcm9rKHVuc2lnbmVkIGxvbmcsIGludCwgY29uc3QgY2hh ciAqLCBjb25zdCBjaGFyICopOwppbnQgaXNzZXR1Z2lkKHZvaWQpOwpjaGFyICpta2R0ZW1wKGNo YXIgKik7CmludCBta25vZChjb25zdCBjaGFyICosIG1vZGVfdCwgZGV2X3QpOwppbnQgbWtzdGVt cChjaGFyICopOwppbnQgbWtzdGVtcHMoY2hhciAqLCBpbnQpOwpjaGFyICpta3RlbXAoY2hhciAq KTsKaW50IG5mc3N2YyhpbnQsIHZvaWQgKik7CmludCBuaWNlKGludCk7CnNzaXplX3QgcHJlYWQo aW50LCB2b2lkICosIHNpemVfdCwgb2ZmX3QpOwoKCgoKIyAxICJzaWduYWwuaCIgMSAzIDQKIyAy MSAic2lnbmFsLmgiIDMKIyA0MyAic2lnbmFsLmgiIDMKI2RlZmluZSBfR0xfQUxSRUFEWV9JTkNM VURJTkdfU0lHTkFMX0ggCiMgNTIgInNpZ25hbC5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL3NpZ25h bC5oIiAxIDMgNAojIDU5ICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDMgNAojZGVmaW5lIF9VU0VS X1NJR05BTF9IIAoKCgojIDEgIi91c3IvaW5jbHVkZS9zeXMvc2lnbmFsLmgiIDEgMyA0CiMgNjQg Ii91c3IvaW5jbHVkZS9zeXMvc2lnbmFsLmgiIDMgNAojZGVmaW5lIF9TWVNfU0lHTkFMX0hfIAoK CgoKI2RlZmluZSBOU0lHIDMyCgoKIyAxICIvdXNyL2luY2x1ZGUvbWFjaGluZS9zaWduYWwuaCIg MSAzIDQKIyAyMyAiL3Vzci9pbmNsdWRlL21hY2hpbmUvc2lnbmFsLmgiIDMgNAojZGVmaW5lIF9C U0RfTUFDSElORV9TSUdOQUxfSF8gCgoKCiMgMSAiL3Vzci9pbmNsdWRlL3BwYy9zaWduYWwuaCIg MSAzIDQKIyAyNyAiL3Vzci9pbmNsdWRlL3BwYy9zaWduYWwuaCIgMyA0CiNkZWZpbmUgX1BQQ19T SUdOQUxfIDEKCgoKCnR5cGVkZWYgaW50IHNpZ19hdG9taWNfdDsKCgoKCiNkZWZpbmUgU1ZfU0FW RV9SRUdTIDB4MTAwMAojIDUwICIvdXNyL2luY2x1ZGUvcHBjL3NpZ25hbC5oIiAzIDQKdHlwZWRl ZiBlbnVtIHsKICAgICAgICBSRUdTX1NBVkVEX05PTkUsCiAgICAgICAgUkVHU19TQVZFRF9DQUxM RVIsCgoKICAgICAgICBSRUdTX1NBVkVEX0FMTAp9IHJlZ3Nfc2F2ZWRfdDsKIyA2NiAiL3Vzci9p bmNsdWRlL3BwYy9zaWduYWwuaCIgMyA0CnN0cnVjdCBzaWdjb250ZXh0IHsKICAgIGludCBzY19v bnN0YWNrOwogICAgaW50IHNjX21hc2s7CiAgICAgICAgaW50IHNjX2lyOwogICAgaW50IHNjX3Bz dzsKICAgIGludCBzY19zcDsKICAgICAgICB2b2lkICpzY19yZWdzOwp9OwojIDI4ICIvdXNyL2lu Y2x1ZGUvbWFjaGluZS9zaWduYWwuaCIgMiAzIDQKIyA3MyAiL3Vzci9pbmNsdWRlL3N5cy9zaWdu YWwuaCIgMiAzIDQKCiNkZWZpbmUgU0lHSFVQIDEKI2RlZmluZSBTSUdJTlQgMgojZGVmaW5lIFNJ R1FVSVQgMwojZGVmaW5lIFNJR0lMTCA0CgojZGVmaW5lIFNJR1RSQVAgNQoKI2RlZmluZSBTSUdB QlJUIDYKCiNkZWZpbmUgU0lHSU9UIFNJR0FCUlQKI2RlZmluZSBTSUdFTVQgNwoKI2RlZmluZSBT SUdGUEUgOAojZGVmaW5lIFNJR0tJTEwgOQoKI2RlZmluZSBTSUdCVVMgMTAKCiNkZWZpbmUgU0lH U0VHViAxMQoKI2RlZmluZSBTSUdTWVMgMTIKCiNkZWZpbmUgU0lHUElQRSAxMwojZGVmaW5lIFNJ R0FMUk0gMTQKI2RlZmluZSBTSUdURVJNIDE1CgojZGVmaW5lIFNJR1VSRyAxNgoKI2RlZmluZSBT SUdTVE9QIDE3CiNkZWZpbmUgU0lHVFNUUCAxOAojZGVmaW5lIFNJR0NPTlQgMTkKI2RlZmluZSBT SUdDSExEIDIwCiNkZWZpbmUgU0lHVFRJTiAyMQojZGVmaW5lIFNJR1RUT1UgMjIKCiNkZWZpbmUg U0lHSU8gMjMKI2RlZmluZSBTSUdYQ1BVIDI0CiNkZWZpbmUgU0lHWEZTWiAyNQojZGVmaW5lIFNJ R1ZUQUxSTSAyNgojZGVmaW5lIFNJR1BST0YgMjcKI2RlZmluZSBTSUdXSU5DSCAyOAojZGVmaW5l IFNJR0lORk8gMjkKCiNkZWZpbmUgU0lHVVNSMSAzMAojZGVmaW5lIFNJR1VTUjIgMzEKIyAxMjgg Ii91c3IvaW5jbHVkZS9zeXMvc2lnbmFsLmgiIDMgNAojZGVmaW5lIFNJR19ERkwgKHZvaWQgKCop KCkpMAojZGVmaW5lIFNJR19JR04gKHZvaWQgKCopKCkpMQojZGVmaW5lIFNJR19FUlIgKHZvaWQg KCopKCkpLTEKCgoKCgp0eXBlZGVmIHVuc2lnbmVkIGludCBzaWdzZXRfdDsKCnVuaW9uIHNpZ3Zh bCB7CgogICAgICAgIGludCBzaWd2YWxfaW50OwogICAgICAgIHZvaWQgKnNpZ3ZhbF9wdHI7Cn07 CgojZGVmaW5lIFNJR0VWX05PTkUgMAojZGVmaW5lIFNJR0VWX1NJR05BTCAxCgojZGVmaW5lIFNJ R0VWX1RIUkVBRCAzCgoKc3RydWN0IHNpZ2V2ZW50IHsKICAgICAgICBpbnQgc2lnZXZfbm90aWZ5 OwogICAgICAgIGludCBzaWdldl9zaWdubzsKICAgICAgICB1bmlvbiBzaWd2YWwgc2lnZXZfdmFs dWU7CiAgICAgICAgdm9pZCAoKnNpZ2V2X25vdGlmeV9mdW5jdGlvbikodW5pb24gc2lndmFsKTsK ICAgICAgICBwdGhyZWFkX2F0dHJfdCAqc2lnZXZfbm90aWZ5X2F0dHJpYnV0ZXM7Cn07Cgp0eXBl ZGVmIHN0cnVjdCBfX3NpZ2luZm8gewogICAgICAgIGludCBzaV9zaWdubzsKICAgICAgICBpbnQg c2lfZXJybm87CiAgICAgICAgaW50IHNpX2NvZGU7CiAgICAgICAgaW50IHNpX3BpZDsKICAgICAg ICB1bnNpZ25lZCBpbnQgc2lfdWlkOwogICAgICAgIGludCBzaV9zdGF0dXM7CiAgICAgICAgdm9p ZCAqc2lfYWRkcjsKICAgICAgICB1bmlvbiBzaWd2YWwgc2lfdmFsdWU7CiAgICAgICAgbG9uZyBz aV9iYW5kOwogICAgICAgIHVuc2lnbmVkIGludCBwYWRbN107Cn0gc2lnaW5mb190OwojIDE4NCAi L3Vzci9pbmNsdWRlL3N5cy9zaWduYWwuaCIgMyA0CiNkZWZpbmUgSUxMX05PT1AgMAojZGVmaW5l IElMTF9JTExPUEMgMQojZGVmaW5lIElMTF9JTExUUlAgMgojZGVmaW5lIElMTF9QUlZPUEMgMwoK CiNkZWZpbmUgRlBFX05PT1AgMAojZGVmaW5lIEZQRV9GTFRESVYgMQojZGVmaW5lIEZQRV9GTFRP VkYgMgojZGVmaW5lIEZQRV9GTFRVTkQgMwojZGVmaW5lIEZQRV9GTFRSRVMgNAojZGVmaW5lIEZQ RV9GTFRJTlYgNQoKCiNkZWZpbmUgU0VHVl9OT09QIDAKI2RlZmluZSBTRUdWX01BUEVSUiAxCiNk ZWZpbmUgU0VHVl9BQ0NFUlIgMgoKCiNkZWZpbmUgQlVTX05PT1AgMAojZGVmaW5lIEJVU19BRFJB TE4gMQoKCiNkZWZpbmUgQ0xEX05PT1AgMAojZGVmaW5lIENMRF9FWElURUQgMQojZGVmaW5lIENM RF9LSUxMRUQgMgoKI2RlZmluZSBDTERfRFVNUEVEIDMKCiNkZWZpbmUgQ0xEX1RSQVBQRUQgNAoj ZGVmaW5lIENMRF9TVE9QUEVEIDUKI2RlZmluZSBDTERfQ09OVElOVUVEIDYKCgp1bmlvbiBfX3Np Z2FjdGlvbl91IHsKICAgICAgICB2b2lkICgqX19zYV9oYW5kbGVyKShpbnQpOwogICAgICAgIHZv aWQgKCpfX3NhX3NpZ2FjdGlvbikoaW50LCBzdHJ1Y3QgX19zaWdpbmZvICosCiAgICAgICAgICAg ICAgICAgICAgICAgdm9pZCAqKTsKfTsKCgpzdHJ1Y3QgX19zaWdhY3Rpb24gewogICAgICAgIHVu aW9uIF9fc2lnYWN0aW9uX3UgX19zaWdhY3Rpb25fdTsKICAgICAgICB2b2lkICgqc2FfdHJhbXAp KHZvaWQgKiwgaW50LCBpbnQsIHNpZ2luZm9fdCAqLCB2b2lkICopOwogICAgICAgIHNpZ3NldF90 IHNhX21hc2s7CiAgICAgICAgaW50IHNhX2ZsYWdzOwp9OwoKCgoKc3RydWN0IHNpZ2FjdGlvbiB7 CiAgICAgICAgdW5pb24gX19zaWdhY3Rpb25fdSBfX3NpZ2FjdGlvbl91OwogICAgICAgIHNpZ3Nl dF90IHNhX21hc2s7CiAgICAgICAgaW50IHNhX2ZsYWdzOwp9OwoKI2RlZmluZSBzYV9oYW5kbGVy IF9fc2lnYWN0aW9uX3UuX19zYV9oYW5kbGVyCiNkZWZpbmUgc2Ffc2lnYWN0aW9uIF9fc2lnYWN0 aW9uX3UuX19zYV9zaWdhY3Rpb24KCgoKI2RlZmluZSBTQV9PTlNUQUNLIDB4MDAwMQojZGVmaW5l IFNBX1JFU1RBUlQgMHgwMDAyCiNkZWZpbmUgU0FfRElTQUJMRSAweDAwMDQKI2RlZmluZSBTQV9S RVNFVEhBTkQgMHgwMDA0CiNkZWZpbmUgU0FfTk9ERUZFUiAweDAwMTAKI2RlZmluZSBTQV9OT0NM RFdBSVQgMHgwMDIwCiNkZWZpbmUgU0FfU0lHSU5GTyAweDAwNDAKI2RlZmluZSBTQV9VU0VSVFJB TVAgMHgwMTAwCgojZGVmaW5lIFNBXzY0UkVHU0VUIDB4MDIwMAoKI2RlZmluZSBTQV9OT0NMRFNU T1AgMHgwMDA4CgoKCgojZGVmaW5lIFNJR19CTE9DSyAxCiNkZWZpbmUgU0lHX1VOQkxPQ0sgMgoj ZGVmaW5lIFNJR19TRVRNQVNLIDMKCgojZGVmaW5lIFNJX1VTRVIgMHgxMDAwMQojZGVmaW5lIFNJ X1FVRVVFIDB4MTAwMDIKI2RlZmluZSBTSV9USU1FUiAweDEwMDAzCiNkZWZpbmUgU0lfQVNZTkNJ TyAweDEwMDA0CiNkZWZpbmUgU0lfTUVTR1EgMHgxMDAwNQoKCgp0eXBlZGVmIHZvaWQgKCpzaWdf dCkgKGludCk7CgoKCgpzdHJ1Y3Qgc2lnYWx0c3RhY2sgewogICAgICAgIGNoYXIgKnNzX3NwOwog ICAgICAgIGludCBzc19zaXplOwogICAgICAgIGludCBzc19mbGFnczsKfTsKCnR5cGVkZWYgc3Ry dWN0IHNpZ2FsdHN0YWNrIHN0YWNrX3Q7CgojZGVmaW5lIFNTX09OU1RBQ0sgMHgwMDAxCiNkZWZp bmUgU1NfRElTQUJMRSAweDAwMDQKI2RlZmluZSBNSU5TSUdTVEtTWiAzMjc2OAojZGVmaW5lIFNJ R1NUS1NaIDEzMTA3MgoKCgoKCnN0cnVjdCBzaWd2ZWMgewogICAgICAgIHZvaWQgKCpzdl9oYW5k bGVyKShpbnQpOwogICAgICAgIGludCBzdl9tYXNrOwogICAgICAgIGludCBzdl9mbGFnczsKfTsK CiNkZWZpbmUgU1ZfT05TVEFDSyBTQV9PTlNUQUNLCiNkZWZpbmUgU1ZfSU5URVJSVVBUIFNBX1JF U1RBUlQKI2RlZmluZSBTVl9SRVNFVEhBTkQgU0FfUkVTRVRIQU5ECiNkZWZpbmUgU1ZfTk9ERUZF UiBTQV9OT0RFRkVSCiNkZWZpbmUgU1ZfTk9DTERTVE9QIFNBX05PQ0xEU1RPUAojZGVmaW5lIFNW X1NJR0lORk8gU0FfU0lHSU5GTwoKI2RlZmluZSBzdl9vbnN0YWNrIHN2X2ZsYWdzCgoKCgpzdHJ1 Y3Qgc2lnc3RhY2sgewogICAgICAgIGNoYXIgKnNzX3NwOwogICAgICAgIGludCBzc19vbnN0YWNr Owp9OwoKCgoKCiNkZWZpbmUgc2lnbWFzayhtKSAoMSA8PCAoKG0pLTEpKQojIDMzOSAiL3Vzci9p bmNsdWRlL3N5cy9zaWduYWwuaCIgMyA0CiNkZWZpbmUgQkFEU0lHIFNJR19FUlIKIyAzNDggIi91 c3IvaW5jbHVkZS9zeXMvc2lnbmFsLmgiIDMgNAoKdm9pZCAoKnNpZ25hbCAoaW50LCB2b2lkICgq KSAoaW50KSkpIChpbnQpOwoKIyA2NCAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAyIDMgNAoKCmV4 dGVybiBjb25zdCBjaGFyICpjb25zdCBzeXNfc2lnbmFtZVszMl07CmV4dGVybiBjb25zdCBjaGFy ICpjb25zdCBzeXNfc2lnbGlzdFszMl07CgoKCmludCByYWlzZShpbnQpOwoKaW50IGtpbGwocGlk X3QsIGludCk7CmludCBzaWdhY3Rpb24oaW50LCBjb25zdCBzdHJ1Y3Qgc2lnYWN0aW9uICosIHN0 cnVjdCBzaWdhY3Rpb24gKik7CmludCBzaWdhZGRzZXQoc2lnc2V0X3QgKiwgaW50KTsKaW50IHNp Z2FsdHN0YWNrKGNvbnN0IHN0cnVjdCBzaWdhbHRzdGFjayAqLCBzdHJ1Y3Qgc2lnYWx0c3RhY2sg Kik7CmludCBzaWdkZWxzZXQoc2lnc2V0X3QgKiwgaW50KTsKaW50IHNpZ2VtcHR5c2V0KHNpZ3Nl dF90ICopOwppbnQgc2lnZmlsbHNldChzaWdzZXRfdCAqKTsKaW50IHNpZ2lzbWVtYmVyKGNvbnN0 IHNpZ3NldF90ICosIGludCk7CmludCBzaWdwZW5kaW5nKHNpZ3NldF90ICopOwppbnQgc2lncHJv Y21hc2soaW50LCBjb25zdCBzaWdzZXRfdCAqLCBzaWdzZXRfdCAqKTsKaW50IHNpZ3N1c3BlbmQo Y29uc3Qgc2lnc2V0X3QgKik7CmludCBzaWd3YWl0KGNvbnN0IHNpZ3NldF90ICosIGludCAqKTsK CmludCBraWxscGcocGlkX3QsIGludCk7CmludCBzaWdibG9jayhpbnQpOwppbnQgc2lnaW50ZXJy dXB0KGludCwgaW50KTsKaW50IHNpZ2hvbGQoaW50KTsKaW50IHNpZ3JlbHNlKGludCk7CmludCBz aWdwYXVzZShpbnQpOwppbnQgc2lncmV0dXJuKHN0cnVjdCBzaWdjb250ZXh0ICopOwppbnQgc2ln c2V0bWFzayhpbnQpOwppbnQgc2lndmVjKGludCwgc3RydWN0IHNpZ3ZlYyAqLCBzdHJ1Y3Qgc2ln dmVjICopOwp2b2lkIHBzaWduYWwodW5zaWduZWQgaW50LCBjb25zdCBjaGFyICopOwoKCgoKCgoj ZGVmaW5lIHNpZ2FkZHNldChzZXQsc2lnbm8pICgqKHNldCkgfD0gMSA8PCAoKHNpZ25vKSAtIDEp LCAwKQojZGVmaW5lIHNpZ2RlbHNldChzZXQsc2lnbm8pICgqKHNldCkgJj0gfigxIDw8ICgoc2ln bm8pIC0gMSkpLCAwKQojZGVmaW5lIHNpZ2VtcHR5c2V0KHNldCkgKCooc2V0KSA9IDAsIDApCiNk ZWZpbmUgc2lnZmlsbHNldChzZXQpICgqKHNldCkgPSB+KHNpZ3NldF90KTAsIDApCiNkZWZpbmUg c2lnaXNtZW1iZXIoc2V0LHNpZ25vKSAoKCooc2V0KSAmICgxIDw8ICgoc2lnbm8pIC0gMSkpKSAh PSAwKQojIDUzICJzaWduYWwuaCIgMiAzCgojdW5kZWYgX0dMX0FMUkVBRFlfSU5DTFVESU5HX1NJ R05BTF9ICgoKI2RlZmluZSBfR0xfU0lHTkFMX0ggCgoKCgoKCgojIDEgIi91c3IvaW5jbHVkZS9w dGhyZWFkLmgiIDEgMyA0CiMgNTMgIi91c3IvaW5jbHVkZS9wdGhyZWFkLmgiIDMgNAojZGVmaW5l IF9QT1NJWF9QVEhSRUFEX0ggCgoKIyAxICIvdXNyL2luY2x1ZGUvcHRocmVhZF9pbXBsLmgiIDEg MyA0CiMgMjUgIi91c3IvaW5jbHVkZS9wdGhyZWFkX2ltcGwuaCIgMyA0CiNkZWZpbmUgX1BUSFJF QURfSU1QTF9IXyAKIyAzNyAiL3Vzci9pbmNsdWRlL3B0aHJlYWRfaW1wbC5oIiAzIDQKI2RlZmlu ZSBfUFRIUkVBRF9NVVRFWF9TSUdfaW5pdCAweDMyQUFBQkE3CiNkZWZpbmUgX1BUSFJFQURfQ09O RF9TSUdfaW5pdCAweDNDQjBCMUJCCiNkZWZpbmUgX1BUSFJFQURfT05DRV9TSUdfaW5pdCAweDMw QjFCQ0JBCgoKCiNkZWZpbmUgU0NIRURfT1RIRVIgMQojZGVmaW5lIFNDSEVEX0ZJRk8gNAojZGVm aW5lIFNDSEVEX1JSIDIKCiNkZWZpbmUgX19TQ0hFRF9QQVJBTV9TSVpFX18gNAojIDU3ICIvdXNy L2luY2x1ZGUvcHRocmVhZC5oIiAyIDMgNAoKIyAxICIvdXNyL2luY2x1ZGUvZXJybm8uaCIgMSAz IDQKIyAyMyAiL3Vzci9pbmNsdWRlL2Vycm5vLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9zeXMv ZXJybm8uaCIgMSAzIDQKIyA2NCAiL3Vzci9pbmNsdWRlL3N5cy9lcnJuby5oIiAzIDQKI2RlZmlu ZSBfU1lTX0VSUk5PX0hfIAoKCgoKZXh0ZXJuIGludCAqIF9fZXJyb3IgKHZvaWQpOwojZGVmaW5l IGVycm5vICgqX19lcnJvcigpKQoKCgoKCgoKI2RlZmluZSBFUEVSTSAxCiNkZWZpbmUgRU5PRU5U IDIKI2RlZmluZSBFU1JDSCAzCiNkZWZpbmUgRUlOVFIgNAojZGVmaW5lIEVJTyA1CiNkZWZpbmUg RU5YSU8gNgojZGVmaW5lIEUyQklHIDcKI2RlZmluZSBFTk9FWEVDIDgKI2RlZmluZSBFQkFERiA5 CiNkZWZpbmUgRUNISUxEIDEwCiNkZWZpbmUgRURFQURMSyAxMQoKI2RlZmluZSBFTk9NRU0gMTIK I2RlZmluZSBFQUNDRVMgMTMKI2RlZmluZSBFRkFVTFQgMTQKCiNkZWZpbmUgRU5PVEJMSyAxNQoK I2RlZmluZSBFQlVTWSAxNgojZGVmaW5lIEVFWElTVCAxNwojZGVmaW5lIEVYREVWIDE4CiNkZWZp bmUgRU5PREVWIDE5CiNkZWZpbmUgRU5PVERJUiAyMAojZGVmaW5lIEVJU0RJUiAyMQojZGVmaW5l IEVJTlZBTCAyMgojZGVmaW5lIEVORklMRSAyMwojZGVmaW5lIEVNRklMRSAyNAojZGVmaW5lIEVO T1RUWSAyNQoKI2RlZmluZSBFVFhUQlNZIDI2CgojZGVmaW5lIEVGQklHIDI3CiNkZWZpbmUgRU5P U1BDIDI4CiNkZWZpbmUgRVNQSVBFIDI5CiNkZWZpbmUgRVJPRlMgMzAKI2RlZmluZSBFTUxJTksg MzEKI2RlZmluZSBFUElQRSAzMgoKCiNkZWZpbmUgRURPTSAzMwojZGVmaW5lIEVSQU5HRSAzNAoK CiNkZWZpbmUgRUFHQUlOIDM1CgojZGVmaW5lIEVXT1VMREJMT0NLIEVBR0FJTgojZGVmaW5lIEVJ TlBST0dSRVNTIDM2CiNkZWZpbmUgRUFMUkVBRFkgMzcKCgojZGVmaW5lIEVOT1RTT0NLIDM4CiNk ZWZpbmUgRURFU1RBRERSUkVRIDM5CiNkZWZpbmUgRU1TR1NJWkUgNDAKI2RlZmluZSBFUFJPVE9U WVBFIDQxCiNkZWZpbmUgRU5PUFJPVE9PUFQgNDIKI2RlZmluZSBFUFJPVE9OT1NVUFBPUlQgNDMK I2RlZmluZSBFU09DS1ROT1NVUFBPUlQgNDQKCiNkZWZpbmUgRU5PVFNVUCA0NQoKI2RlZmluZSBF T1BOT1RTVVBQIEVOT1RTVVAKI2RlZmluZSBFUEZOT1NVUFBPUlQgNDYKI2RlZmluZSBFQUZOT1NV UFBPUlQgNDcKI2RlZmluZSBFQUREUklOVVNFIDQ4CiNkZWZpbmUgRUFERFJOT1RBVkFJTCA0OQoK CiNkZWZpbmUgRU5FVERPV04gNTAKI2RlZmluZSBFTkVUVU5SRUFDSCA1MQojZGVmaW5lIEVORVRS RVNFVCA1MgojZGVmaW5lIEVDT05OQUJPUlRFRCA1MwojZGVmaW5lIEVDT05OUkVTRVQgNTQKI2Rl ZmluZSBFTk9CVUZTIDU1CiNkZWZpbmUgRUlTQ09OTiA1NgojZGVmaW5lIEVOT1RDT05OIDU3CiNk ZWZpbmUgRVNIVVRET1dOIDU4CiNkZWZpbmUgRVRPT01BTllSRUZTIDU5CiNkZWZpbmUgRVRJTUVE T1VUIDYwCiNkZWZpbmUgRUNPTk5SRUZVU0VEIDYxCgojZGVmaW5lIEVMT09QIDYyCgojZGVmaW5l IEVOQU1FVE9PTE9ORyA2MwoKCgojZGVmaW5lIEVIT1NURE9XTiA2NAojZGVmaW5lIEVIT1NUVU5S RUFDSCA2NQoKI2RlZmluZSBFTk9URU1QVFkgNjYKCgoKI2RlZmluZSBFUFJPQ0xJTSA2NwojZGVm aW5lIEVVU0VSUyA2OAojZGVmaW5lIEVEUVVPVCA2OQoKCiNkZWZpbmUgRVNUQUxFIDcwCiNkZWZp bmUgRVJFTU9URSA3MQojZGVmaW5lIEVCQURSUEMgNzIKI2RlZmluZSBFUlBDTUlTTUFUQ0ggNzMK I2RlZmluZSBFUFJPR1VOQVZBSUwgNzQKI2RlZmluZSBFUFJPR01JU01BVENIIDc1CiNkZWZpbmUg RVBST0NVTkFWQUlMIDc2CgoKI2RlZmluZSBFTk9MQ0sgNzcKI2RlZmluZSBFTk9TWVMgNzgKCgoj ZGVmaW5lIEVGVFlQRSA3OQojZGVmaW5lIEVBVVRIIDgwCiNkZWZpbmUgRU5FRURBVVRIIDgxCgoK CiNkZWZpbmUgRVBXUk9GRiA4MgojZGVmaW5lIEVERVZFUlIgODMKCgojZGVmaW5lIEVPVkVSRkxP VyA4NAoKCiNkZWZpbmUgRUJBREVYRUMgODUKI2RlZmluZSBFQkFEQVJDSCA4NgojZGVmaW5lIEVT SExJQlZFUlMgODcKI2RlZmluZSBFQkFETUFDSE8gODgKCiNkZWZpbmUgRUNBTkNFTEVEIDg5Cgoj ZGVmaW5lIEVJRFJNIDkwCiNkZWZpbmUgRU5PTVNHIDkxCiNkZWZpbmUgRUlMU0VRIDkyCiNkZWZp bmUgRU5PQVRUUiA5MwoKI2RlZmluZSBFTEFTVCA5MwojIDI0ICIvdXNyL2luY2x1ZGUvZXJybm8u aCIgMiAzIDQKIyA1OSAiL3Vzci9pbmNsdWRlL3B0aHJlYWQuaCIgMiAzIDQKIyAxICIvdXNyL2lu Y2x1ZGUvc2NoZWQuaCIgMSAzIDQKIyAyNSAiL3Vzci9pbmNsdWRlL3NjaGVkLmgiIDMgNAojZGVm aW5lIF9TQ0hFRF9IXyAKCgoKCgoKCgoKc3RydWN0IHNjaGVkX3BhcmFtIHsgaW50IHNjaGVkX3By aW9yaXR5OyBjaGFyIG9wYXF1ZVs0XTsgfTsKCgpleHRlcm4gaW50IHNjaGVkX3lpZWxkKHZvaWQp OwpleHRlcm4gaW50IHNjaGVkX2dldF9wcmlvcml0eV9taW4oaW50KTsKZXh0ZXJuIGludCBzY2hl ZF9nZXRfcHJpb3JpdHlfbWF4KGludCk7CgojIDYwICIvdXNyL2luY2x1ZGUvcHRocmVhZC5oIiAy IDMgNAojIDEgInRpbWUuaCIgMSAzIDQKIyAyMSAidGltZS5oIiAzCiMgMzcgInRpbWUuaCIgMwoj ZGVmaW5lIF9HTF9USU1FX0ggCgojIDEgIi91c3IvaW5jbHVkZS90aW1lLmgiIDEgMyA0CiMgNjQg Ii91c3IvaW5jbHVkZS90aW1lLmgiIDMgNAojZGVmaW5lIF9USU1FX0hfIAojIDg4ICIvdXNyL2lu Y2x1ZGUvdGltZS5oIiAzIDQKI2RlZmluZSBfVElNRVNQRUNfREVDTEFSRUQgCnN0cnVjdCB0aW1l c3BlYyB7CiAgICAgICAgdGltZV90IHR2X3NlYzsKICAgICAgICBsb25nIHR2X25zZWM7Cn07CgoK c3RydWN0IHRtIHsKICAgICAgICBpbnQgdG1fc2VjOwogICAgICAgIGludCB0bV9taW47CiAgICAg ICAgaW50IHRtX2hvdXI7CiAgICAgICAgaW50IHRtX21kYXk7CiAgICAgICAgaW50IHRtX21vbjsK ICAgICAgICBpbnQgdG1feWVhcjsKICAgICAgICBpbnQgdG1fd2RheTsKICAgICAgICBpbnQgdG1f eWRheTsKICAgICAgICBpbnQgdG1faXNkc3Q7CiAgICAgICAgbG9uZyB0bV9nbXRvZmY7CiAgICAg ICAgY2hhciAqdG1fem9uZTsKfTsKCiMgMSAiL3Vzci9pbmNsdWRlL2djYy9kYXJ3aW4vMy4zL21h Y2hpbmUvbGltaXRzLmgiIDEgMyA0CgoKI2RlZmluZSBfTElNSVRTX0hfX18gCiMgMjQgIi91c3Iv aW5jbHVkZS9nY2MvZGFyd2luLzMuMy9tYWNoaW5lL2xpbWl0cy5oIiAzIDQKIyAxICIvdXNyL2lu Y2x1ZGUvcHBjL2xpbWl0cy5oIiAxIDMgNAojIDQzICIvdXNyL2luY2x1ZGUvcHBjL2xpbWl0cy5o IiAzIDQKI2RlZmluZSBfUFBDX0xJTUlUU19IXyAKCiNkZWZpbmUgQ0hBUl9CSVQgOAojZGVmaW5l IE1CX0xFTl9NQVggNgoKI2RlZmluZSBDTEtfVENLIDEwMAojIDYwICIvdXNyL2luY2x1ZGUvcHBj L2xpbWl0cy5oIiAzIDQKI2RlZmluZSBTQ0hBUl9NQVggMTI3CiNkZWZpbmUgU0NIQVJfTUlOICgt MTI4KQoKI2RlZmluZSBVQ0hBUl9NQVggMjU1CiNkZWZpbmUgQ0hBUl9NQVggMTI3CiNkZWZpbmUg Q0hBUl9NSU4gKC0xMjgpCgojZGVmaW5lIFVTSFJUX01BWCA2NTUzNQojZGVmaW5lIFNIUlRfTUFY IDMyNzY3CiNkZWZpbmUgU0hSVF9NSU4gKC0zMjc2OCkKCiNkZWZpbmUgVUlOVF9NQVggMHhmZmZm ZmZmZgojZGVmaW5lIElOVF9NQVggMjE0NzQ4MzY0NwojZGVmaW5lIElOVF9NSU4gKC0yMTQ3NDgz NjQ3LTEpCgojZGVmaW5lIFVMT05HX01BWCAweGZmZmZmZmZmCiNkZWZpbmUgTE9OR19NQVggMjE0 NzQ4MzY0NwojZGVmaW5lIExPTkdfTUlOICgtMjE0NzQ4MzY0Ny0xKQoKI2RlZmluZSBVTExPTkdf TUFYIDB4ZmZmZmZmZmZmZmZmZmZmZlVMTAojZGVmaW5lIExMT05HX01BWCAweDdmZmZmZmZmZmZm ZmZmZmZMTAojZGVmaW5lIExMT05HX01JTiAoLTB4N2ZmZmZmZmZmZmZmZmZmZkxMLTEpCgoKI2Rl ZmluZSBTU0laRV9NQVggSU5UX01BWAoKCiNkZWZpbmUgU0laRV9UX01BWCBVSU5UX01BWAoKI2Rl ZmluZSBVUVVBRF9NQVggVUxMT05HX01BWAojZGVmaW5lIFFVQURfTUFYIExMT05HX01BWAojZGVm aW5lIFFVQURfTUlOIExMT05HX01JTgoKCgoKCiNkZWZpbmUgTE9OR19CSVQgMzIKI2RlZmluZSBX T1JEX0JJVCAzMgojIDI1ICIvdXNyL2luY2x1ZGUvZ2NjL2Rhcndpbi8zLjMvbWFjaGluZS9saW1p dHMuaCIgMiAzIDQKCgoKCgoKI3VuZGVmIE1CX0xFTl9NQVgKI2RlZmluZSBNQl9MRU5fTUFYIDYK CgoKI3VuZGVmIENIQVJfQklUCiNkZWZpbmUgQ0hBUl9CSVQgX19DSEFSX0JJVF9fCgoKCgoKCgoj dW5kZWYgU0NIQVJfTUlOCiNkZWZpbmUgU0NIQVJfTUlOICgtU0NIQVJfTUFYIC0gMSkKI3VuZGVm IFNDSEFSX01BWAojZGVmaW5lIFNDSEFSX01BWCBfX1NDSEFSX01BWF9fCgoKI3VuZGVmIFVDSEFS X01BWAoKCgojZGVmaW5lIFVDSEFSX01BWCAoU0NIQVJfTUFYICogMiArIDEpCiMgNjkgIi91c3Iv aW5jbHVkZS9nY2MvZGFyd2luLzMuMy9tYWNoaW5lL2xpbWl0cy5oIiAzIDQKI3VuZGVmIENIQVJf TUlOCiNkZWZpbmUgQ0hBUl9NSU4gU0NIQVJfTUlOCiN1bmRlZiBDSEFSX01BWAojZGVmaW5lIENI QVJfTUFYIFNDSEFSX01BWAoKCgojdW5kZWYgU0hSVF9NSU4KI2RlZmluZSBTSFJUX01JTiAoLVNI UlRfTUFYIC0gMSkKI3VuZGVmIFNIUlRfTUFYCiNkZWZpbmUgU0hSVF9NQVggX19TSFJUX01BWF9f CgoKI3VuZGVmIFVTSFJUX01BWAoKCgojZGVmaW5lIFVTSFJUX01BWCAoU0hSVF9NQVggKiAyICsg MSkKCgoKI3VuZGVmIElOVF9NSU4KI2RlZmluZSBJTlRfTUlOICgtSU5UX01BWCAtIDEpCiN1bmRl ZiBJTlRfTUFYCiNkZWZpbmUgSU5UX01BWCBfX0lOVF9NQVhfXwoKCiN1bmRlZiBVSU5UX01BWAoj ZGVmaW5lIFVJTlRfTUFYIChJTlRfTUFYICogMlUgKyAxVSkKCgoKI3VuZGVmIExPTkdfTUlOCiNk ZWZpbmUgTE9OR19NSU4gKC1MT05HX01BWCAtIDFMKQojdW5kZWYgTE9OR19NQVgKI2RlZmluZSBM T05HX01BWCBfX0xPTkdfTUFYX18KCgojdW5kZWYgVUxPTkdfTUFYCiNkZWZpbmUgVUxPTkdfTUFY IChMT05HX01BWCAqIDJVTCArIDFVTCkKCgoKI3VuZGVmIExMT05HX01JTgojZGVmaW5lIExMT05H X01JTiAoLUxMT05HX01BWCAtIDFMTCkKI3VuZGVmIExMT05HX01BWAojZGVmaW5lIExMT05HX01B WCBfX0xPTkdfTE9OR19NQVhfXwoKCiN1bmRlZiBVTExPTkdfTUFYCiNkZWZpbmUgVUxMT05HX01B WCAoTExPTkdfTUFYICogMlVMTCArIDFVTEwpCgoKCgoKI2RlZmluZSBMT05HX0xPTkdfTUlOICgt TE9OR19MT05HX01BWCAtIDFMTCkKCiNkZWZpbmUgTE9OR19MT05HX01BWCBfX0xPTkdfTE9OR19N QVhfXwoKCgojZGVmaW5lIFVMT05HX0xPTkdfTUFYIChMT05HX0xPTkdfTUFYICogMlVMTCArIDFV TEwpCiMgMTEwICIvdXNyL2luY2x1ZGUvdGltZS5oIiAyIDMgNAoKI2RlZmluZSBDTE9DS1NfUEVS X1NFQyAoQ0xLX1RDSykKCgoKCmV4dGVybiBjaGFyICp0em5hbWVbXTsKCgoKY2hhciAqYXNjdGlt ZShjb25zdCBzdHJ1Y3QgdG0gKik7CmNsb2NrX3QgY2xvY2sodm9pZCk7CmNoYXIgKmN0aW1lKGNv bnN0IHRpbWVfdCAqKTsKZG91YmxlIGRpZmZ0aW1lKHRpbWVfdCwgdGltZV90KTsKc3RydWN0IHRt ICpnbXRpbWUoY29uc3QgdGltZV90ICopOwpzdHJ1Y3QgdG0gKmxvY2FsdGltZShjb25zdCB0aW1l X3QgKik7CnRpbWVfdCBta3RpbWUoc3RydWN0IHRtICopOwpzaXplX3Qgc3RyZnRpbWUoY2hhciAq LCBzaXplX3QsIGNvbnN0IGNoYXIgKiwgY29uc3Qgc3RydWN0IHRtICopOwp0aW1lX3QgdGltZSh0 aW1lX3QgKik7CgoKdm9pZCB0enNldCh2b2lkKTsKCgoKY2hhciAqYXNjdGltZV9yKGNvbnN0IHN0 cnVjdCB0bSAqLCBjaGFyICopOwpjaGFyICpjdGltZV9yKGNvbnN0IHRpbWVfdCAqLCBjaGFyICop OwpzdHJ1Y3QgdG0gKmdtdGltZV9yKGNvbnN0IHRpbWVfdCAqLCBzdHJ1Y3QgdG0gKik7CnN0cnVj dCB0bSAqbG9jYWx0aW1lX3IoY29uc3QgdGltZV90ICosIHN0cnVjdCB0bSAqKTsKdGltZV90IHBv c2l4MnRpbWUodGltZV90KTsKY2hhciAqc3RycHRpbWUoY29uc3QgY2hhciAqLCBjb25zdCBjaGFy ICosIHN0cnVjdCB0bSAqKTsKY2hhciAqdGltZXpvbmUoaW50LCBpbnQpOwp2b2lkIHR6c2V0d2Fs bCh2b2lkKTsKdGltZV90IHRpbWUycG9zaXgodGltZV90KTsKdGltZV90IHRpbWVsb2NhbChzdHJ1 Y3QgdG0gKiBjb25zdCk7CnRpbWVfdCB0aW1lZ20oc3RydWN0IHRtICogY29uc3QpOwoKCgppbnQg bmFub3NsZWVwKGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqLCBzdHJ1Y3QgdGltZXNwZWMgKik7CgoK IyA0MCAidGltZS5oIiAyIDMKIyA0MDcgInRpbWUuaCIgMwpzdHJ1Y3QgX190aW1lX3RfbXVzdF9i ZV9pbnRlZ3JhbCB7CiAgdW5zaWduZWQgaW50IF9fZmxvYXRpbmdfdGltZV90X3Vuc3VwcG9ydGVk IDogKHRpbWVfdCkgMTsKfTsKI2RlZmluZSBHTlVMSUJfZGVmaW5lZF9zdHJ1Y3RfdGltZV90X211 c3RfYmVfaW50ZWdyYWwgMQojIDQ0MiAidGltZS5oIiAzCiNkZWZpbmUgbWt0aW1lIHJwbF9ta3Rp bWUKCmV4dGVybiB0aW1lX3QgcnBsX21rdGltZSAoc3RydWN0IHRtICpfX3RwKSBfX2F0dHJpYnV0 ZV9fICgoX19ub25udWxsX18gKDEpKSk7CmV4dGVybiBpbnQgX2dsX2N4eGFsaWFzX2R1bW15OwoK CgpleHRlcm4gaW50IF9nbF9jeHhhbGlhc19kdW1teTsKIyA0NzIgInRpbWUuaCIgMwpleHRlcm4g aW50IF9nbF9jeHhhbGlhc19kdW1teTsKCgoKZXh0ZXJuIGludCBfZ2xfY3h4YWxpYXNfZHVtbXk7 CiMgNDk0ICJ0aW1lLmgiIDMKZXh0ZXJuIGludCBfZ2xfY3h4YWxpYXNfZHVtbXk7CgoKCmV4dGVy biBpbnQgX2dsX2N4eGFsaWFzX2R1bW15OwojIDYxICIvdXNyL2luY2x1ZGUvcHRocmVhZC5oIiAy IDMgNAojIDEgInVuaXN0ZC5oIiAxIDMgNAojIDIwICJ1bmlzdGQuaCIgMwojIDQzICJ1bmlzdGQu aCIgMwojIDEgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMSAzIDQKIyA0NCAidW5pc3RkLmgiIDIg MwojIDU1ICJ1bmlzdGQuaCIgMwojZGVmaW5lIF9HTF9VTklTVERfSCAKIyA4MyAidW5pc3RkLmgi IDMKIyAxICJzdGRsaWIuaCIgMSAzCiMgMjEgInN0ZGxpYi5oIiAzCiMgODQgInVuaXN0ZC5oIiAy IDMKIyAxMjggInVuaXN0ZC5oIiAzCiMgMSAiZ2V0b3B0LmgiIDEgMwojIDI0ICJnZXRvcHQuaCIg MwoKCgoKCgoKI2RlZmluZSBfR0xfU1lTVEVNX0dFVE9QVCAKIyAxICIvdXNyL2luY2x1ZGUvZ2V0 b3B0LmgiIDEgMyA0CiMgNjIgIi91c3IvaW5jbHVkZS9nZXRvcHQuaCIgMyA0CiNkZWZpbmUgX0dF VE9QVF9IXyAKCgojIDEgInVuaXN0ZC5oIiAxIDMgNAojIDIwICJ1bmlzdGQuaCIgMwojIDY2ICIv dXNyL2luY2x1ZGUvZ2V0b3B0LmgiIDIgMyA0CgoKCgoKI2RlZmluZSBub19hcmd1bWVudCAwCiNk ZWZpbmUgcmVxdWlyZWRfYXJndW1lbnQgMQojZGVmaW5lIG9wdGlvbmFsX2FyZ3VtZW50IDIKCnN0 cnVjdCBvcHRpb24gewoKICAgICAgICBjb25zdCBjaGFyICpuYW1lOwoKCgoKICAgICAgICBpbnQg aGFzX2FyZzsKCiAgICAgICAgaW50ICpmbGFnOwoKICAgICAgICBpbnQgdmFsOwp9OwoKCmludCBn ZXRvcHRfbG9uZyhpbnQsIGNoYXIgKiBjb25zdCAqLCBjb25zdCBjaGFyICosIGNvbnN0IHN0cnVj dCBvcHRpb24gKiwgaW50ICopOwoKIyAzMyAiZ2V0b3B0LmgiIDIgMwojdW5kZWYgX0dMX1NZU1RF TV9HRVRPUFQKCgoKCgojZGVmaW5lIF9HTF9HRVRPUFRfSCAxCiMgNjYgImdldG9wdC5oIiAzCiNk ZWZpbmUgX19HRVRPUFRfQ09OQ0FUKHgseSkgeCAjIyB5CiNkZWZpbmUgX19HRVRPUFRfWENPTkNB VCh4LHkpIF9fR0VUT1BUX0NPTkNBVCAoeCwgeSkKI2RlZmluZSBfX0dFVE9QVF9JRCh5KSBfX0dF VE9QVF9YQ09OQ0FUIChfX0dFVE9QVF9QUkVGSVgsIHkpCiNkZWZpbmUgZ2V0b3B0IF9fR0VUT1BU X0lEIChnZXRvcHQpCiNkZWZpbmUgZ2V0b3B0X2xvbmcgX19HRVRPUFRfSUQgKGdldG9wdF9sb25n KQojZGVmaW5lIGdldG9wdF9sb25nX29ubHkgX19HRVRPUFRfSUQgKGdldG9wdF9sb25nX29ubHkp CiNkZWZpbmUgb3B0YXJnIF9fR0VUT1BUX0lEIChvcHRhcmcpCiNkZWZpbmUgb3B0ZXJyIF9fR0VU T1BUX0lEIChvcHRlcnIpCiNkZWZpbmUgb3B0aW5kIF9fR0VUT1BUX0lEIChvcHRpbmQpCiNkZWZp bmUgb3B0b3B0IF9fR0VUT1BUX0lEIChvcHRvcHQpCiNkZWZpbmUgb3B0aW9uIF9fR0VUT1BUX0lE IChvcHRpb24pCiNkZWZpbmUgX2dldG9wdF9pbnRlcm5hbCBfX0dFVE9QVF9JRCAoZ2V0b3B0X2lu dGVybmFsKQojIDk4ICJnZXRvcHQuaCIgMwojZGVmaW5lIF9fZ2V0b3B0X2FyZ3ZfY29uc3QgCiMg MTEyICJnZXRvcHQuaCIgMwojIDEgIi91c3IvaW5jbHVkZS9jdHlwZS5oIiAxIDMgNAojIDY3ICIv dXNyL2luY2x1ZGUvY3R5cGUuaCIgMyA0CiNkZWZpbmUgX0NUWVBFX0hfIAoKIyAxICIvdXNyL2lu Y2x1ZGUvcnVuZXR5cGUuaCIgMSAzIDQKIyA2MiAiL3Vzci9pbmNsdWRlL3J1bmV0eXBlLmgiIDMg NAojZGVmaW5lIF9SVU5FVFlQRV9IXyAKIyA5OCAiL3Vzci9pbmNsdWRlL3J1bmV0eXBlLmgiIDMg NAojZGVmaW5lIF9DQUNIRURfUlVORVMgKDEgPDw4ICkKI2RlZmluZSBfQ1JNQVNLICh+KF9DQUNI RURfUlVORVMgLSAxKSkKCgoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBydW5lX3QgbWluOwog ICAgICAgIHJ1bmVfdCBtYXg7CiAgICAgICAgcnVuZV90IG1hcDsKICAgICAgICB1bnNpZ25lZCBs b25nICp0eXBlczsKfSBfUnVuZUVudHJ5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGludCBu cmFuZ2VzOwogICAgICAgIF9SdW5lRW50cnkgKnJhbmdlczsKfSBfUnVuZVJhbmdlOwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgICAgIGNoYXIgbWFnaWNbOF07CiAgICAgICAgY2hhciBlbmNvZGluZ1sz Ml07CgogICAgICAgIHJ1bmVfdCAoKnNnZXRydW5lKQogICAgICAgICAgIChjb25zdCBjaGFyICos IHNpemVfdCwgY2hhciBjb25zdCAqKik7CiAgICAgICAgaW50ICgqc3B1dHJ1bmUpCiAgICAgICAg ICAgKHJ1bmVfdCwgY2hhciAqLCBzaXplX3QsIGNoYXIgKiopOwogICAgICAgIHJ1bmVfdCBpbnZh bGlkX3J1bmU7CgogICAgICAgIHVuc2lnbmVkIGxvbmcgcnVuZXR5cGVbKDEgPDw4ICldOwogICAg ICAgIHJ1bmVfdCBtYXBsb3dlclsoMSA8PDggKV07CiAgICAgICAgcnVuZV90IG1hcHVwcGVyWygx IDw8OCApXTsKCgoKCgoKICAgICAgICBfUnVuZVJhbmdlIHJ1bmV0eXBlX2V4dDsKICAgICAgICBf UnVuZVJhbmdlIG1hcGxvd2VyX2V4dDsKICAgICAgICBfUnVuZVJhbmdlIG1hcHVwcGVyX2V4dDsK CiAgICAgICAgdm9pZCAqdmFyaWFibGU7CiAgICAgICAgaW50IHZhcmlhYmxlX2xlbjsKfSBfUnVu ZUxvY2FsZTsKCiNkZWZpbmUgX1JVTkVfTUFHSUNfMSAiUnVuZU1hZ2kiCgoKZXh0ZXJuIF9SdW5l TG9jYWxlIF9EZWZhdWx0UnVuZUxvY2FsZTsKZXh0ZXJuIF9SdW5lTG9jYWxlICpfQ3VycmVudFJ1 bmVMb2NhbGU7CgojIDcwICIvdXNyL2luY2x1ZGUvY3R5cGUuaCIgMiAzIDQKCiNkZWZpbmUgX0NU WVBFX0EgMHgwMDAwMDEwMEwKI2RlZmluZSBfQ1RZUEVfQyAweDAwMDAwMjAwTAojZGVmaW5lIF9D VFlQRV9EIDB4MDAwMDA0MDBMCiNkZWZpbmUgX0NUWVBFX0cgMHgwMDAwMDgwMEwKI2RlZmluZSBf Q1RZUEVfTCAweDAwMDAxMDAwTAojZGVmaW5lIF9DVFlQRV9QIDB4MDAwMDIwMDBMCiNkZWZpbmUg X0NUWVBFX1MgMHgwMDAwNDAwMEwKI2RlZmluZSBfQ1RZUEVfVSAweDAwMDA4MDAwTAojZGVmaW5l IF9DVFlQRV9YIDB4MDAwMTAwMDBMCiNkZWZpbmUgX0NUWVBFX0IgMHgwMDAyMDAwMEwKI2RlZmlu ZSBfQ1RZUEVfUiAweDAwMDQwMDAwTAojZGVmaW5lIF9DVFlQRV9JIDB4MDAwODAwMDBMCiNkZWZp bmUgX0NUWVBFX1QgMHgwMDEwMDAwMEwKI2RlZmluZSBfQ1RZUEVfUSAweDAwMjAwMDAwTAojZGVm aW5lIF9DVFlQRV9TVzAgMHgyMDAwMDAwMEwKI2RlZmluZSBfQ1RZUEVfU1cxIDB4NDAwMDAwMDBM CiNkZWZpbmUgX0NUWVBFX1NXMiAweDgwMDAwMDAwTAojZGVmaW5lIF9DVFlQRV9TVzMgMHhjMDAw MDAwMEwKCgoKCiNkZWZpbmUgX0EgX0NUWVBFX0EKI2RlZmluZSBfQyBfQ1RZUEVfQwojZGVmaW5l IF9EIF9DVFlQRV9ECiNkZWZpbmUgX0cgX0NUWVBFX0cKI2RlZmluZSBfTCBfQ1RZUEVfTAojZGVm aW5lIF9QIF9DVFlQRV9QCiNkZWZpbmUgX1MgX0NUWVBFX1MKI2RlZmluZSBfVSBfQ1RZUEVfVQoj ZGVmaW5lIF9YIF9DVFlQRV9YCiNkZWZpbmUgX0IgX0NUWVBFX0IKI2RlZmluZSBfUiBfQ1RZUEVf UgojZGVmaW5lIF9JIF9DVFlQRV9JCiNkZWZpbmUgX1QgX0NUWVBFX1QKI2RlZmluZSBfUSBfQ1RZ UEVfUQojZGVmaW5lIF9TVzAgX0NUWVBFX1NXMAojZGVmaW5lIF9TVzEgX0NUWVBFX1NXMQojZGVm aW5lIF9TVzIgX0NUWVBFX1NXMgojZGVmaW5lIF9TVzMgX0NUWVBFX1NXMwoKCmludCBpc2FsbnVt KGludCk7CmludCBpc2FscGhhKGludCk7CmludCBpc2NudHJsKGludCk7CmludCBpc2RpZ2l0KGlu dCk7CmludCBpc2dyYXBoKGludCk7CmludCBpc2xvd2VyKGludCk7CmludCBpc3ByaW50KGludCk7 CmludCBpc3B1bmN0KGludCk7CmludCBpc3NwYWNlKGludCk7CmludCBpc3VwcGVyKGludCk7Cmlu dCBpc3hkaWdpdChpbnQpOwppbnQgdG9sb3dlcihpbnQpOwppbnQgdG91cHBlcihpbnQpOwoKCmlu dCBkaWdpdHRvaW50KGludCk7CmludCBpc2FzY2lpKGludCk7CmludCBpc2JsYW5rKGludCk7Cmlu dCBpc2hleG51bWJlcihpbnQpOwppbnQgaXNpZGVvZ3JhbShpbnQpOwppbnQgaXNudW1iZXIoaW50 KTsKaW50IGlzcGhvbm9ncmFtKGludCk7CmludCBpc3J1bmUoaW50KTsKaW50IGlzc3BlY2lhbChp bnQpOwppbnQgdG9hc2NpaShpbnQpOwoKCgoKI2RlZmluZSBpc2FsbnVtKGMpIF9faXN0eXBlKChj KSwgKF9DVFlQRV9BfF9DVFlQRV9EKSkKI2RlZmluZSBpc2FscGhhKGMpIF9faXN0eXBlKChjKSwg X0NUWVBFX0EpCiNkZWZpbmUgaXNjbnRybChjKSBfX2lzdHlwZSgoYyksIF9DVFlQRV9DKQojZGVm aW5lIGlzZGlnaXQoYykgX19pc2N0eXBlKChjKSwgX0NUWVBFX0QpCiNkZWZpbmUgaXNncmFwaChj KSBfX2lzdHlwZSgoYyksIF9DVFlQRV9HKQojZGVmaW5lIGlzbG93ZXIoYykgX19pc3R5cGUoKGMp LCBfQ1RZUEVfTCkKI2RlZmluZSBpc3ByaW50KGMpIF9faXN0eXBlKChjKSwgX0NUWVBFX1IpCiNk ZWZpbmUgaXNwdW5jdChjKSBfX2lzdHlwZSgoYyksIF9DVFlQRV9QKQojZGVmaW5lIGlzc3BhY2Uo YykgX19pc3R5cGUoKGMpLCBfQ1RZUEVfUykKI2RlZmluZSBpc3VwcGVyKGMpIF9faXN0eXBlKChj KSwgX0NUWVBFX1UpCiNkZWZpbmUgaXN4ZGlnaXQoYykgX19pc2N0eXBlKChjKSwgX0NUWVBFX1gp CiNkZWZpbmUgdG9sb3dlcihjKSBfX3RvbG93ZXIoYykKI2RlZmluZSB0b3VwcGVyKGMpIF9fdG91 cHBlcihjKQoKCiNkZWZpbmUgZGlnaXR0b2ludChjKSBfX21hc2tydW5lKChjKSwgMHhGRikKI2Rl ZmluZSBpc2FzY2lpKGMpICgoYyAmIH4weDdGKSA9PSAwKQojZGVmaW5lIGlzYmxhbmsoYykgX19p c3R5cGUoKGMpLCBfQ1RZUEVfQikKI2RlZmluZSBpc2hleG51bWJlcihjKSBfX2lzdHlwZSgoYyks IF9DVFlQRV9YKQojZGVmaW5lIGlzaWRlb2dyYW0oYykgX19pc3R5cGUoKGMpLCBfQ1RZUEVfSSkK I2RlZmluZSBpc251bWJlcihjKSBfX2lzdHlwZSgoYyksIF9DVFlQRV9EKQojZGVmaW5lIGlzcGhv bm9ncmFtKGMpIF9faXN0eXBlKChjKSwgX0NUWVBFX1EpCiNkZWZpbmUgaXNydW5lKGMpIF9faXN0 eXBlKChjKSwgMHhGRkZGRkYwMEwpCiNkZWZpbmUgaXNzcGVjaWFsKGMpIF9faXN0eXBlKChjKSwg X0NUWVBFX1QpCiNkZWZpbmUgdG9hc2NpaShjKSAoKGMpICYgMHg3RikKCgoKCnVuc2lnbmVkIGxv bmcgX19fcnVuZXR5cGUoaW50KTsKaW50IF9fX3RvbG93ZXIoaW50KTsKaW50IF9fX3RvdXBwZXIo aW50KTsKCiMgMTkyICIvdXNyL2luY2x1ZGUvY3R5cGUuaCIgMyA0CnN0YXRpYyBfX2lubGluZSBp bnQKX19tYXNrcnVuZShpbnQgX2MsIHVuc2lnbmVkIGxvbmcgX2YpCnsKICAgICAgICByZXR1cm4g KChfYyA8IDAgfHwgX2MgPj0gKDEgPDw4ICkpID8gX19fcnVuZXR5cGUoX2MpIDoKICAgICAgICAg ICAgICAgIF9DdXJyZW50UnVuZUxvY2FsZS0+cnVuZXR5cGVbX2NdKSAmIF9mOwp9CgpzdGF0aWMg X19pbmxpbmUgaW50Cl9faXN0eXBlKGludCBjLCB1bnNpZ25lZCBsb25nIGYpCnsKICAgICAgICBy ZXR1cm4gISEoX19tYXNrcnVuZShjLCBmKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBpbnQKX19pc2N0 eXBlKGludCBfYywgdW5zaWduZWQgbG9uZyBfZikKewogICAgICAgIHJldHVybiAoX2MgPCAwIHx8 IF9jID49ICgxIDw8OCApKSA/IDAgOgogICAgICAgICAgICAgICAgISEoX0RlZmF1bHRSdW5lTG9j YWxlLnJ1bmV0eXBlW19jXSAmIF9mKTsKfQoKc3RhdGljIF9faW5saW5lIGludApfX3RvdXBwZXIo aW50IF9jKQp7CiAgICAgICAgcmV0dXJuIChfYyA8IDAgfHwgX2MgPj0gKDEgPDw4ICkpID8gX19f dG91cHBlcihfYykgOgogICAgICAgICAgICAgICAgX0N1cnJlbnRSdW5lTG9jYWxlLT5tYXB1cHBl cltfY107Cn0KCnN0YXRpYyBfX2lubGluZSBpbnQKX190b2xvd2VyKGludCBfYykKewogICAgICAg IHJldHVybiAoX2MgPCAwIHx8IF9jID49ICgxIDw8OCApKSA/IF9fX3RvbG93ZXIoX2MpIDoKICAg ICAgICAgICAgICAgIF9DdXJyZW50UnVuZUxvY2FsZS0+bWFwbG93ZXJbX2NdOwp9CiMgMTEzICJn ZXRvcHQuaCIgMiAzCgoKCgojZGVmaW5lIF9fR05VQ19QUkVSRVEobWFqLG1pbikgKDApCgoKCgoj ZGVmaW5lIF9fVEhST1cgCiMgMTQ4ICJnZXRvcHQuaCIgMwpleHRlcm4gY2hhciAqcnBsX29wdGFy ZzsKIyAxNjIgImdldG9wdC5oIiAzCmV4dGVybiBpbnQgcnBsX29wdGluZDsKCgoKCmV4dGVybiBp bnQgcnBsX29wdGVycjsKCgoKZXh0ZXJuIGludCBycGxfb3B0b3B0OwojIDE5NiAiZ2V0b3B0Lmgi IDMKc3RydWN0IHJwbF9vcHRpb24KewogIGNvbnN0IGNoYXIgKm5hbWU7CgoKICBpbnQgaGFzX2Fy ZzsKICBpbnQgKmZsYWc7CiAgaW50IHZhbDsKfTsKI2RlZmluZSBHTlVMSUJfZGVmaW5lZF9zdHJ1 Y3Rfb3B0aW9uIDEKCgoKCiNkZWZpbmUgbm9fYXJndW1lbnQgMAojZGVmaW5lIHJlcXVpcmVkX2Fy Z3VtZW50IDEKI2RlZmluZSBvcHRpb25hbF9hcmd1bWVudCAyCiMgMjQxICJnZXRvcHQuaCIgMwpl eHRlcm4gaW50IHJwbF9nZXRvcHQgKGludCBfX19hcmdjLCBjaGFyICpjb25zdCAqX19fYXJndiwg Y29uc3QgY2hhciAqX19zaG9ydG9wdHMpCiAgICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxs X18gKDIsIDMpKSk7CgoKZXh0ZXJuIGludCBycGxfZ2V0b3B0X2xvbmcgKGludCBfX19hcmdjLCBj aGFyICogKl9fX2FyZ3YsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKl9fc2hv cnRvcHRzLAogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcnBsX29wdGlvbiAq X19sb25nb3B0cywgaW50ICpfX2xvbmdpbmQpCiAgICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub25u dWxsX18gKDIsIDMpKSk7CmV4dGVybiBpbnQgcnBsX2dldG9wdF9sb25nX29ubHkgKGludCBfX19h cmdjLCBjaGFyICogKl9fX2FyZ3YsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Y2hhciAqX19zaG9ydG9wdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Ry dWN0IHJwbF9vcHRpb24gKl9fbG9uZ29wdHMsIGludCAqX19sb25naW5kKQogICAgICAgX19hdHRy aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyLCAzKSkpOwojIDEyOSAidW5pc3RkLmgiIDIgMwojIDY1 OSAidW5pc3RkLmgiIDMKZXh0ZXJuIGludCBfZ2xfY3h4YWxpYXNfZHVtbXk7CgpleHRlcm4gaW50 IF9nbF9jeHhhbGlhc19kdW1teTsKIyA3MDUgInVuaXN0ZC5oIiAzCiMgMSAiL3Vzci9pbmNsdWRl L2NydF9leHRlcm5zLmgiIDEgMyA0CiMgMzYgIi91c3IvaW5jbHVkZS9jcnRfZXh0ZXJucy5oIiAz IDQKCmV4dGVybiBjaGFyICoqKl9OU0dldEFyZ3Yodm9pZCk7CmV4dGVybiBpbnQgKl9OU0dldEFy Z2Modm9pZCk7CmV4dGVybiBjaGFyICoqKl9OU0dldEVudmlyb24odm9pZCk7CmV4dGVybiBjaGFy ICoqX05TR2V0UHJvZ25hbWUodm9pZCk7CmV4dGVybiBzdHJ1Y3QgbWFjaF9oZWFkZXIgKl9OU0dl dE1hY2hFeGVjdXRlSGVhZGVyKHZvaWQpOwoKIyA3MDYgInVuaXN0ZC5oIiAyIDMKI2RlZmluZSBl bnZpcm9uICgqX05TR2V0RW52aXJvbiAoKSkKIyAxNTU1ICJ1bmlzdGQuaCIgMwojZGVmaW5lIHJl YWRsaW5rIHJwbF9yZWFkbGluawoKZXh0ZXJuIHNzaXplX3QgcnBsX3JlYWRsaW5rIChjb25zdCBj aGFyICpmaWxlLCBjaGFyICpidWYsIHNpemVfdCBidWZzaXplKSBfX2F0dHJpYnV0ZV9fICgoX19u b25udWxsX18gKDEsIDIpKSk7CgoKZXh0ZXJuIGludCBfZ2xfY3h4YWxpYXNfZHVtbXk7CiMgMTU3 MSAidW5pc3RkLmgiIDMKZXh0ZXJuIGludCBfZ2xfY3h4YWxpYXNfZHVtbXk7CiMgMTY3OSAidW5p c3RkLmgiIDMKI2RlZmluZSBzeW1saW5rIHJwbF9zeW1saW5rCgpleHRlcm4gaW50IHJwbF9zeW1s aW5rIChjaGFyIGNvbnN0ICpjb250ZW50cywgY2hhciBjb25zdCAqZmlsZSkgX19hdHRyaWJ1dGVf XyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwoKZXh0ZXJuIGludCBfZ2xfY3h4YWxpYXNfZHVtbXk7 CgoKCgoKCgpleHRlcm4gaW50IF9nbF9jeHhhbGlhc19kdW1teTsKIyA2MiAiL3Vzci9pbmNsdWRl L3B0aHJlYWQuaCIgMiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvbGltaXRzLmgiIDEgMyA0CiMgNjEg Ii91c3IvaW5jbHVkZS9saW1pdHMuaCIgMyA0CiNkZWZpbmUgX0xJTUlUU19IXyAKCgojIDEgIi91 c3IvaW5jbHVkZS9zeXMvc3lzbGltaXRzLmgiIDEgMyA0CiMgNjAgIi91c3IvaW5jbHVkZS9zeXMv c3lzbGltaXRzLmgiIDMgNAojZGVmaW5lIF9TWVNfU1lTTElNSVRTX0hfIAoKCgoKCgojZGVmaW5l IEFSR19NQVggKDI1NiAqIDEwMjQpCiNkZWZpbmUgQ0hJTERfTUFYIDEwMAojZGVmaW5lIEdJRF9N QVggMjE0NzQ4MzY0N1UKI2RlZmluZSBMSU5LX01BWCAzMjc2NwojZGVmaW5lIE1BWF9DQU5PTiAy NTUKI2RlZmluZSBNQVhfSU5QVVQgMjU1CiNkZWZpbmUgTkFNRV9NQVggMjU1CiNkZWZpbmUgTkdS T1VQU19NQVggMTYKI2RlZmluZSBVSURfTUFYIDIxNDc0ODM2NDdVCiNkZWZpbmUgT1BFTl9NQVgg MTAyNDAKI2RlZmluZSBQQVRIX01BWCAxMDI0CiNkZWZpbmUgUElQRV9CVUYgNTEyCgojZGVmaW5l IEJDX0JBU0VfTUFYIElOVF9NQVgKI2RlZmluZSBCQ19ESU1fTUFYIDY1NTM1CiNkZWZpbmUgQkNf U0NBTEVfTUFYIElOVF9NQVgKI2RlZmluZSBCQ19TVFJJTkdfTUFYIElOVF9NQVgKI2RlZmluZSBD T0xMX1dFSUdIVFNfTUFYIDIKI2RlZmluZSBFUVVJVl9DTEFTU19NQVggMgojZGVmaW5lIEVYUFJf TkVTVF9NQVggMzIKI2RlZmluZSBMSU5FX01BWCAyMDQ4CiNkZWZpbmUgUkVfRFVQX01BWCAyNTUK IyA2NSAiL3Vzci9pbmNsdWRlL2xpbWl0cy5oIiAyIDMgNAoKCiNkZWZpbmUgX1BPU0lYX0FSR19N QVggNDA5NgojZGVmaW5lIF9QT1NJWF9DSElMRF9NQVggNgojZGVmaW5lIF9QT1NJWF9MSU5LX01B WCA4CiNkZWZpbmUgX1BPU0lYX01BWF9DQU5PTiAyNTUKI2RlZmluZSBfUE9TSVhfTUFYX0lOUFVU IDI1NQojZGVmaW5lIF9QT1NJWF9OQU1FX01BWCAxNAojZGVmaW5lIF9QT1NJWF9OR1JPVVBTX01B WCAwCiNkZWZpbmUgX1BPU0lYX09QRU5fTUFYIDE2CiNkZWZpbmUgX1BPU0lYX1BBVEhfTUFYIDI1 NQojZGVmaW5lIF9QT1NJWF9QSVBFX0JVRiA1MTIKI2RlZmluZSBfUE9TSVhfU1NJWkVfTUFYIDMy NzY3CiNkZWZpbmUgX1BPU0lYX1NUUkVBTV9NQVggOAojZGVmaW5lIF9QT1NJWF9UWk5BTUVfTUFY IDMKCiNkZWZpbmUgX1BPU0lYMl9CQ19CQVNFX01BWCA5OQojZGVmaW5lIF9QT1NJWDJfQkNfRElN X01BWCAyMDQ4CiNkZWZpbmUgX1BPU0lYMl9CQ19TQ0FMRV9NQVggOTkKI2RlZmluZSBfUE9TSVgy X0JDX1NUUklOR19NQVggMTAwMAojZGVmaW5lIF9QT1NJWDJfQ09MTF9XRUlHSFRTX01BWCAyCiNk ZWZpbmUgX1BPU0lYMl9FUVVJVl9DTEFTU19NQVggMgojZGVmaW5lIF9QT1NJWDJfRVhQUl9ORVNU X01BWCAzMgojZGVmaW5lIF9QT1NJWDJfTElORV9NQVggMjA0OAojZGVmaW5lIF9QT1NJWDJfUkVf RFVQX01BWCAyNTUKCiNkZWZpbmUgUFRIUkVBRF9TVEFDS19NSU4gODE5MgojZGVmaW5lIFBUSFJF QURfREVTVFJVQ1RPUl9JVEVSQVRJT05TIDQKI2RlZmluZSBQVEhSRUFEX0tFWVNfTUFYIDEyOAoK CgoKI2RlZmluZSBQQVNTX01BWCAxMjgKCiNkZWZpbmUgTkxfQVJHTUFYIDkKI2RlZmluZSBOTF9M QU5HTUFYIDE0CiNkZWZpbmUgTkxfTVNHTUFYIDMyNzY3CiNkZWZpbmUgTkxfTk1BWCAxCiNkZWZp bmUgTkxfU0VUTUFYIDI1NQojZGVmaW5lIE5MX1RFWFRNQVggMjU1CiMgNjMgIi91c3IvaW5jbHVk ZS9wdGhyZWFkLmgiIDIgMyA0CiMgMSAic2lnbmFsLmgiIDEgMyA0CiMgMjEgInNpZ25hbC5oIiAz CiMgNjQgIi91c3IvaW5jbHVkZS9wdGhyZWFkLmgiIDIgMyA0CgoKIyAxICIvdXNyL2luY2x1ZGUv bWFjaC9tYWNoX3R5cGVzLmgiIDEgMyA0CiMgNjIgIi91c3IvaW5jbHVkZS9tYWNoL21hY2hfdHlw ZXMuaCIgMyA0CiNkZWZpbmUgX01BQ0hfTUFDSF9UWVBFU19IXyAKCiMgMSAic3RkaW50LmgiIDEg MyA0CiMgMjggInN0ZGludC5oIiAzCgoKCgoKCgojZGVmaW5lIF9HTF9KVVNUX0lOQ0xVREVfU1lT VEVNX0lOVFRZUEVTX0ggCiMgNzggInN0ZGludC5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL2djYy9k YXJ3aW4vMy4zL3N0ZGludC5oIiAxIDMgNAojIDIyICIvdXNyL2luY2x1ZGUvZ2NjL2Rhcndpbi8z LjMvc3RkaW50LmgiIDMgNAojZGVmaW5lIF9TVERJTlRfSF8gCiMgMzQgIi91c3IvaW5jbHVkZS9n Y2MvZGFyd2luLzMuMy9zdGRpbnQuaCIgMyA0CnR5cGVkZWYgdV9pbnQ4X3QgdWludDhfdDsKdHlw ZWRlZiB1X2ludDE2X3QgdWludDE2X3Q7CnR5cGVkZWYgdV9pbnQzMl90IHVpbnQzMl90Owp0eXBl ZGVmIHVfaW50NjRfdCB1aW50NjRfdDsKCgoKdHlwZWRlZiBpbnQ4X3QgaW50X2xlYXN0OF90Owp0 eXBlZGVmIGludDE2X3QgaW50X2xlYXN0MTZfdDsKdHlwZWRlZiBpbnQzMl90IGludF9sZWFzdDMy X3Q7CnR5cGVkZWYgaW50NjRfdCBpbnRfbGVhc3Q2NF90Owp0eXBlZGVmIHVpbnQ4X3QgdWludF9s ZWFzdDhfdDsKdHlwZWRlZiB1aW50MTZfdCB1aW50X2xlYXN0MTZfdDsKdHlwZWRlZiB1aW50MzJf dCB1aW50X2xlYXN0MzJfdDsKdHlwZWRlZiB1aW50NjRfdCB1aW50X2xlYXN0NjRfdDsKCgoKdHlw ZWRlZiBpbnQ4X3QgaW50X2Zhc3Q4X3Q7CnR5cGVkZWYgaW50MTZfdCBpbnRfZmFzdDE2X3Q7CnR5 cGVkZWYgaW50MzJfdCBpbnRfZmFzdDMyX3Q7CnR5cGVkZWYgaW50NjRfdCBpbnRfZmFzdDY0X3Q7 CnR5cGVkZWYgdWludDhfdCB1aW50X2Zhc3Q4X3Q7CnR5cGVkZWYgdWludDE2X3QgdWludF9mYXN0 MTZfdDsKdHlwZWRlZiB1aW50MzJfdCB1aW50X2Zhc3QzMl90Owp0eXBlZGVmIHVpbnQ2NF90IHVp bnRfZmFzdDY0X3Q7CiMgNjggIi91c3IvaW5jbHVkZS9nY2MvZGFyd2luLzMuMy9zdGRpbnQuaCIg MyA0CnR5cGVkZWYgbG9uZyBsb25nIGludG1heF90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9u ZyB1aW50bWF4X3Q7CiMgODggIi91c3IvaW5jbHVkZS9nY2MvZGFyd2luLzMuMy9zdGRpbnQuaCIg MyA0CiNkZWZpbmUgSU5UOF9NQVggMTI3CiNkZWZpbmUgSU5UMTZfTUFYIDMyNzY3CiNkZWZpbmUg SU5UMzJfTUFYIDIxNDc0ODM2NDcKI2RlZmluZSBJTlQ2NF9NQVggOTIyMzM3MjAzNjg1NDc3NTgw N0xMCgojZGVmaW5lIElOVDhfTUlOIC0xMjgKI2RlZmluZSBJTlQxNl9NSU4gLTMyNzY4CgoKCgoK CiNkZWZpbmUgSU5UMzJfTUlOICgtSU5UMzJfTUFYLTEpCiNkZWZpbmUgSU5UNjRfTUlOICgtSU5U NjRfTUFYLTEpCgojZGVmaW5lIFVJTlQ4X01BWCAyNTUKI2RlZmluZSBVSU5UMTZfTUFYIDY1NTM1 CiNkZWZpbmUgVUlOVDMyX01BWCA0Mjk0OTY3Mjk1VQojZGVmaW5lIFVJTlQ2NF9NQVggMTg0NDY3 NDQwNzM3MDk1NTE2MTVVTEwKCgojZGVmaW5lIElOVF9MRUFTVDhfTUlOIElOVDhfTUlOCiNkZWZp bmUgSU5UX0xFQVNUMTZfTUlOIElOVDE2X01JTgojZGVmaW5lIElOVF9MRUFTVDMyX01JTiBJTlQz Ml9NSU4KI2RlZmluZSBJTlRfTEVBU1Q2NF9NSU4gSU5UNjRfTUlOCgojZGVmaW5lIElOVF9MRUFT VDhfTUFYIElOVDhfTUFYCiNkZWZpbmUgSU5UX0xFQVNUMTZfTUFYIElOVDE2X01BWAojZGVmaW5l IElOVF9MRUFTVDMyX01BWCBJTlQzMl9NQVgKI2RlZmluZSBJTlRfTEVBU1Q2NF9NQVggSU5UNjRf TUFYCgojZGVmaW5lIFVJTlRfTEVBU1Q4X01BWCBVSU5UOF9NQVgKI2RlZmluZSBVSU5UX0xFQVNU MTZfTUFYIFVJTlQxNl9NQVgKI2RlZmluZSBVSU5UX0xFQVNUMzJfTUFYIFVJTlQzMl9NQVgKI2Rl ZmluZSBVSU5UX0xFQVNUNjRfTUFYIFVJTlQ2NF9NQVgKCgojZGVmaW5lIElOVF9GQVNUOF9NSU4g SU5UOF9NSU4KI2RlZmluZSBJTlRfRkFTVDE2X01JTiBJTlQxNl9NSU4KI2RlZmluZSBJTlRfRkFT VDMyX01JTiBJTlQzMl9NSU4KI2RlZmluZSBJTlRfRkFTVDY0X01JTiBJTlQ2NF9NSU4KCiNkZWZp bmUgSU5UX0ZBU1Q4X01BWCBJTlQ4X01BWAojZGVmaW5lIElOVF9GQVNUMTZfTUFYIElOVDE2X01B WAojZGVmaW5lIElOVF9GQVNUMzJfTUFYIElOVDMyX01BWAojZGVmaW5lIElOVF9GQVNUNjRfTUFY IElOVDY0X01BWAoKI2RlZmluZSBVSU5UX0ZBU1Q4X01BWCBVSU5UOF9NQVgKI2RlZmluZSBVSU5U X0ZBU1QxNl9NQVggVUlOVDE2X01BWAojZGVmaW5lIFVJTlRfRkFTVDMyX01BWCBVSU5UMzJfTUFY CiNkZWZpbmUgVUlOVF9GQVNUNjRfTUFYIFVJTlQ2NF9NQVgKCgoKI2RlZmluZSBJTlRQVFJfTUlO IElOVDMyX01JTgojZGVmaW5lIElOVFBUUl9NQVggSU5UMzJfTUFYCgojZGVmaW5lIFVJTlRQVFJf TUFYIFVJTlQzMl9NQVgKCgojZGVmaW5lIElOVE1BWF9NSU4gSU5UNjRfTUlOCiNkZWZpbmUgSU5U TUFYX01BWCBJTlQ2NF9NQVgKCiNkZWZpbmUgVUlOVE1BWF9NQVggVUlOVDY0X01BWAoKCiNkZWZp bmUgUFRSRElGRl9NSU4gSU5UMzJfTUlOCiNkZWZpbmUgUFRSRElGRl9NQVggSU5UMzJfTUFYCgoK CgoKI2RlZmluZSBTSVpFX01BWCBVSU5UMzJfTUFYCgoKI2RlZmluZSBXQ0hBUl9NSU4gMAoKCgoK I2RlZmluZSBXQ0hBUl9NQVggX19XQ0hBUl9NQVhfXwojIDE4OCAiL3Vzci9pbmNsdWRlL2djYy9k YXJ3aW4vMy4zL3N0ZGludC5oIiAzIDQKI2RlZmluZSBJTlQ4X0ModikgKChpbnQ4X3QpdikKI2Rl ZmluZSBJTlQxNl9DKHYpICgoaW50MTZfdCl2KQojZGVmaW5lIElOVDMyX0ModikgKHYgIyMgTCkK I2RlZmluZSBJTlQ2NF9DKHYpICh2ICMjIExMKQoKI2RlZmluZSBVSU5UOF9DKHYpICgodWludDhf dCl2KQojZGVmaW5lIFVJTlQxNl9DKHYpICgodWludDE2X3QpdikKI2RlZmluZSBVSU5UMzJfQyh2 KSAodiAjIyBVTCkKI2RlZmluZSBVSU5UNjRfQyh2KSAodiAjIyBVTEwpCgojZGVmaW5lIElOVE1B WF9DKHYpICh2ICMjIExMKQojZGVmaW5lIFVJTlRNQVhfQyh2KSAodiAjIyBVTEwpCiMgNzkgInN0 ZGludC5oIiAyIDMKCgoKI2RlZmluZSBfR0xfU1RESU5UX0ggCiMgMTAyICJzdGRpbnQuaCIgMwoj IDEgImludHR5cGVzLmgiIDEgMwojIDI2ICJpbnR0eXBlcy5oIiAzCiMgNDEgImludHR5cGVzLmgi IDMKIyAxICIvdXNyL2luY2x1ZGUvZ2NjL2Rhcndpbi8zLjMvaW50dHlwZXMuaCIgMSAzIDQKIyAz MSAiL3Vzci9pbmNsdWRlL2djYy9kYXJ3aW4vMy4zL2ludHR5cGVzLmgiIDMgNAojZGVmaW5lIF9J TlRUWVBFU19IXyAKCgoKIyAxICJzdGRpbnQuaCIgMSAzIDQKIyAzNiAiL3Vzci9pbmNsdWRlL2dj Yy9kYXJ3aW4vMy4zL2ludHR5cGVzLmgiIDIgMyA0CiMgNjEgIi91c3IvaW5jbHVkZS9nY2MvZGFy d2luLzMuMy9pbnR0eXBlcy5oIiAzIDQKI2RlZmluZSBfX1BSSV84X0xFTkdUSF9NT0RJRklFUl9f ICIiCiNkZWZpbmUgX19QUklfNjRfTEVOR1RIX01PRElGSUVSX18gInEiCgoKI2RlZmluZSBQUklk OCBfX1BSSV84X0xFTkdUSF9NT0RJRklFUl9fICJkIgojZGVmaW5lIFBSSWk4IF9fUFJJXzhfTEVO R1RIX01PRElGSUVSX18gImkiCiNkZWZpbmUgUFJJbzggX19QUklfOF9MRU5HVEhfTU9ESUZJRVJf XyAibyIKI2RlZmluZSBQUkl1OCBfX1BSSV84X0xFTkdUSF9NT0RJRklFUl9fICJ1IgojZGVmaW5l IFBSSXg4IF9fUFJJXzhfTEVOR1RIX01PRElGSUVSX18gIngiCiNkZWZpbmUgUFJJWDggX19QUklf OF9MRU5HVEhfTU9ESUZJRVJfXyAiWCIKCiNkZWZpbmUgUFJJZDE2ICJoZCIKI2RlZmluZSBQUklp MTYgImhpIgojZGVmaW5lIFBSSW8xNiAiaG8iCiNkZWZpbmUgUFJJdTE2ICJodSIKI2RlZmluZSBQ Ukl4MTYgImh4IgojZGVmaW5lIFBSSVgxNiAiaFgiCgojZGVmaW5lIFBSSWQzMiAiZCIKI2RlZmlu ZSBQUklpMzIgImkiCiNkZWZpbmUgUFJJbzMyICJvIgojZGVmaW5lIFBSSXUzMiAidSIKI2RlZmlu ZSBQUkl4MzIgIngiCiNkZWZpbmUgUFJJWDMyICJYIgoKI2RlZmluZSBQUklkNjQgX19QUklfNjRf TEVOR1RIX01PRElGSUVSX18gImQiCiNkZWZpbmUgUFJJaTY0IF9fUFJJXzY0X0xFTkdUSF9NT0RJ RklFUl9fICJpIgojZGVmaW5lIFBSSW82NCBfX1BSSV82NF9MRU5HVEhfTU9ESUZJRVJfXyAibyIK I2RlZmluZSBQUkl1NjQgX19QUklfNjRfTEVOR1RIX01PRElGSUVSX18gInUiCiNkZWZpbmUgUFJJ eDY0IF9fUFJJXzY0X0xFTkdUSF9NT0RJRklFUl9fICJ4IgojZGVmaW5lIFBSSVg2NCBfX1BSSV82 NF9MRU5HVEhfTU9ESUZJRVJfXyAiWCIKCiNkZWZpbmUgUFJJZExFQVNUOCBQUklkOAojZGVmaW5l IFBSSWlMRUFTVDggUFJJaTgKI2RlZmluZSBQUklvTEVBU1Q4IFBSSW84CiNkZWZpbmUgUFJJdUxF QVNUOCBQUkl1OAojZGVmaW5lIFBSSXhMRUFTVDggUFJJeDgKI2RlZmluZSBQUklYTEVBU1Q4IFBS SVg4CgojZGVmaW5lIFBSSWRMRUFTVDE2IFBSSWQxNgojZGVmaW5lIFBSSWlMRUFTVDE2IFBSSWkx NgojZGVmaW5lIFBSSW9MRUFTVDE2IFBSSW8xNgojZGVmaW5lIFBSSXVMRUFTVDE2IFBSSXUxNgoj ZGVmaW5lIFBSSXhMRUFTVDE2IFBSSXgxNgojZGVmaW5lIFBSSVhMRUFTVDE2IFBSSVgxNgoKI2Rl ZmluZSBQUklkTEVBU1QzMiBQUklkMzIKI2RlZmluZSBQUklpTEVBU1QzMiBQUklpMzIKI2RlZmlu ZSBQUklvTEVBU1QzMiBQUklvMzIKI2RlZmluZSBQUkl1TEVBU1QzMiBQUkl1MzIKI2RlZmluZSBQ Ukl4TEVBU1QzMiBQUkl4MzIKI2RlZmluZSBQUklYTEVBU1QzMiBQUklYMzIKCiNkZWZpbmUgUFJJ ZExFQVNUNjQgUFJJZDY0CiNkZWZpbmUgUFJJaUxFQVNUNjQgUFJJaTY0CiNkZWZpbmUgUFJJb0xF QVNUNjQgUFJJbzY0CiNkZWZpbmUgUFJJdUxFQVNUNjQgUFJJdTY0CiNkZWZpbmUgUFJJeExFQVNU NjQgUFJJeDY0CiNkZWZpbmUgUFJJWExFQVNUNjQgUFJJWDY0CgojZGVmaW5lIFBSSWRGQVNUOCBQ UklkMzIKI2RlZmluZSBQUklpRkFTVDggUFJJaTMyCiNkZWZpbmUgUFJJb0ZBU1Q4IFBSSW8zMgoj ZGVmaW5lIFBSSXVGQVNUOCBQUkl1MzIKI2RlZmluZSBQUkl4RkFTVDggUFJJeDMyCiNkZWZpbmUg UFJJWEZBU1Q4IFBSSVgzMgoKI2RlZmluZSBQUklkRkFTVDE2IFBSSWQzMgojZGVmaW5lIFBSSWlG QVNUMTYgUFJJaTMyCiNkZWZpbmUgUFJJb0ZBU1QxNiBQUklvMzIKI2RlZmluZSBQUkl1RkFTVDE2 IFBSSXUzMgojZGVmaW5lIFBSSXhGQVNUMTYgUFJJeDMyCiNkZWZpbmUgUFJJWEZBU1QxNiBQUklY MzIKCiNkZWZpbmUgUFJJZEZBU1QzMiBQUklkMzIKI2RlZmluZSBQUklpRkFTVDMyIFBSSWkzMgoj ZGVmaW5lIFBSSW9GQVNUMzIgUFJJbzMyCiNkZWZpbmUgUFJJdUZBU1QzMiBQUkl1MzIKI2RlZmlu ZSBQUkl4RkFTVDMyIFBSSXgzMgojZGVmaW5lIFBSSVhGQVNUMzIgUFJJWDMyCgojZGVmaW5lIFBS SWRGQVNUNjQgUFJJZDY0CiNkZWZpbmUgUFJJaUZBU1Q2NCBQUklpNjQKI2RlZmluZSBQUklvRkFT VDY0IFBSSW82NAojZGVmaW5lIFBSSXVGQVNUNjQgUFJJdTY0CiNkZWZpbmUgUFJJeEZBU1Q2NCBQ Ukl4NjQKI2RlZmluZSBQUklYRkFTVDY0IFBSSVg2NAoKI2RlZmluZSBQUklkUFRSIFBSSWQzMgoj ZGVmaW5lIFBSSWlQVFIgUFJJaTMyCiNkZWZpbmUgUFJJb1BUUiBQUklvMzIKI2RlZmluZSBQUkl1 UFRSIFBSSXUzMgojZGVmaW5lIFBSSXhQVFIgUFJJeDMyCiNkZWZpbmUgUFJJWFBUUiBQUklYMzIK CiNkZWZpbmUgUFJJZE1BWCBQUklkNjQKI2RlZmluZSBQUklpTUFYIFBSSWk2NAojZGVmaW5lIFBS SW9NQVggUFJJbzY0CiNkZWZpbmUgUFJJdU1BWCBQUkl1NjQKI2RlZmluZSBQUkl4TUFYIFBSSXg2 NAojZGVmaW5lIFBSSVhNQVggUFJJWDY0CiMgMTcxICIvdXNyL2luY2x1ZGUvZ2NjL2Rhcndpbi8z LjMvaW50dHlwZXMuaCIgMyA0CiNkZWZpbmUgU0NOZDE2ICJoZCIKI2RlZmluZSBTQ05pMTYgImhp IgojZGVmaW5lIFNDTm8xNiAiaG8iCiNkZWZpbmUgU0NOdTE2ICJodSIKI2RlZmluZSBTQ054MTYg Imh4IgoKI2RlZmluZSBTQ05kMzIgImxkIgojZGVmaW5lIFNDTmkzMiAibGkiCiNkZWZpbmUgU0NO bzMyICJsbyIKI2RlZmluZSBTQ051MzIgImx1IgojZGVmaW5lIFNDTngzMiAibHgiCiMgMTk5ICIv dXNyL2luY2x1ZGUvZ2NjL2Rhcndpbi8zLjMvaW50dHlwZXMuaCIgMyA0CiNkZWZpbmUgU0NOZExF QVNUMTYgU0NOZDE2CiNkZWZpbmUgU0NOaUxFQVNUMTYgU0NOaTE2CiNkZWZpbmUgU0NOb0xFQVNU MTYgU0NObzE2CiNkZWZpbmUgU0NOdUxFQVNUMTYgU0NOdTE2CiNkZWZpbmUgU0NOeExFQVNUMTYg U0NOeDE2CgojZGVmaW5lIFNDTmRMRUFTVDMyIFNDTmQzMgojZGVmaW5lIFNDTmlMRUFTVDMyIFND TmkzMgojZGVmaW5lIFNDTm9MRUFTVDMyIFNDTm8zMgojZGVmaW5lIFNDTnVMRUFTVDMyIFNDTnUz MgojZGVmaW5lIFNDTnhMRUFTVDMyIFNDTngzMgojIDIxOSAiL3Vzci9pbmNsdWRlL2djYy9kYXJ3 aW4vMy4zL2ludHR5cGVzLmgiIDMgNAojZGVmaW5lIFNDTmRGQVNUOCBTQ05kMzIKI2RlZmluZSBT Q05pRkFTVDggU0NOaTMyCiNkZWZpbmUgU0NOb0ZBU1Q4IFNDTm8zMgojZGVmaW5lIFNDTnVGQVNU OCBTQ051MzIKI2RlZmluZSBTQ054RkFTVDggU0NOeDMyCgojZGVmaW5lIFNDTmRGQVNUMTYgU0NO ZDMyCiNkZWZpbmUgU0NOaUZBU1QxNiBTQ05pMzIKI2RlZmluZSBTQ05vRkFTVDE2IFNDTm8zMgoj ZGVmaW5lIFNDTnVGQVNUMTYgU0NOdTMyCiNkZWZpbmUgU0NOeEZBU1QxNiBTQ054MzIKCiNkZWZp bmUgU0NOZEZBU1QzMiBTQ05kMzIKI2RlZmluZSBTQ05pRkFTVDMyIFNDTmkzMgojZGVmaW5lIFND Tm9GQVNUMzIgU0NObzMyCiNkZWZpbmUgU0NOdUZBU1QzMiBTQ051MzIKI2RlZmluZSBTQ054RkFT VDMyIFNDTngzMgojIDI0NSAiL3Vzci9pbmNsdWRlL2djYy9kYXJ3aW4vMy4zL2ludHR5cGVzLmgi IDMgNAojZGVmaW5lIFNDTmRQVFIgU0NOZDMyCiNkZWZpbmUgU0NOaVBUUiBTQ05pMzIKI2RlZmlu ZSBTQ05vUFRSIFNDTm8zMgojZGVmaW5lIFNDTnVQVFIgU0NOdTMyCiNkZWZpbmUgU0NOeFBUUiBT Q054MzIKIyAyNjEgIi91c3IvaW5jbHVkZS9nY2MvZGFyd2luLzMuMy9pbnR0eXBlcy5oIiAzIDQK CgoKICBleHRlcm4gaW50bWF4X3QgaW1heGFicyhpbnRtYXhfdCBqKTsKCgogIHR5cGVkZWYgc3Ry dWN0IHsKICAgICAgICBpbnRtYXhfdCBxdW90OwogICAgICAgIGludG1heF90IHJlbTsKICB9IGlt YXhkaXZfdDsKCiAgZXh0ZXJuIGltYXhkaXZfdCBpbWF4ZGl2KGludG1heF90IG51bWVyLCBpbnRt YXhfdCBkZW5vbSk7CgoKICBleHRlcm4gaW50bWF4X3Qgc3RydG9pbWF4KGNvbnN0IGNoYXIgKiBf X3Jlc3RyaWN0IG5wdHIsIGNoYXIgKiogX19yZXN0cmljdCBlbmRwdHIsIGludCBiYXNlKTsKICBl eHRlcm4gdWludG1heF90IHN0cnRvdW1heChjb25zdCBjaGFyICogX19yZXN0cmljdCBucHRyLCBj aGFyICoqIF9fcmVzdHJpY3QgZW5kcHRyLCBpbnQgYmFzZSk7CiMgMjg2ICIvdXNyL2luY2x1ZGUv Z2NjL2Rhcndpbi8zLjMvaW50dHlwZXMuaCIgMyA0CiAgZXh0ZXJuIGludG1heF90IHdjc3RvaW1h eChjb25zdCB3Y2hhcl90ICogX19yZXN0cmljdCBucHRyLCB3Y2hhcl90ICoqIF9fcmVzdHJpY3Qg ZW5kcHRyLCBpbnQgYmFzZSk7CiAgZXh0ZXJuIHVpbnRtYXhfdCB3Y3N0b3VtYXgoY29uc3Qgd2No YXJfdCAqIF9fcmVzdHJpY3QgbnB0ciwgd2NoYXJfdCAqKiBfX3Jlc3RyaWN0IGVuZHB0ciwgaW50 IGJhc2UpOwoKCiMgNDIgImludHR5cGVzLmgiIDIgMwojIDEwMyAic3RkaW50LmgiIDIgMwojIDEx NiAic3RkaW50LmgiIDMKI3VuZGVmIF9HTF9KVVNUX0lOQ0xVREVfU1lTVEVNX0lOVFRZUEVTX0gK CgoKCgojZGVmaW5lIF9TVERJTlRfTUlOKHNpZ25lZCxiaXRzLHplcm8pICgoc2lnbmVkKSA/ICgt ICgoemVybykgKyAxKSA8PCAoKGJpdHMpID8gKGJpdHMpIC0gMSA6IDApKSA6ICh6ZXJvKSkKCgoj ZGVmaW5lIF9TVERJTlRfTUFYKHNpZ25lZCxiaXRzLHplcm8pICgoc2lnbmVkKSA/IH4gX1NURElO VF9NSU4gKHNpZ25lZCwgYml0cywgemVybykgOiAoKCgoemVybykgKyAxKSA8PCAoKGJpdHMpID8g KGJpdHMpIC0gMSAtIChzaWduZWQpIDogMCkpIC0gMSkgKiAyICsgMSkKIyAxNDIgInN0ZGludC5o IiAzCnR5cGVkZWYgc2lnbmVkIGNoYXIgZ2xfaW50OF90Owp0eXBlZGVmIHVuc2lnbmVkIGNoYXIg Z2xfdWludDhfdDsKI2RlZmluZSBpbnQ4X3QgZ2xfaW50OF90CiNkZWZpbmUgdWludDhfdCBnbF91 aW50OF90CgoKCnR5cGVkZWYgc2hvcnQgaW50IGdsX2ludDE2X3Q7CnR5cGVkZWYgdW5zaWduZWQg c2hvcnQgaW50IGdsX3VpbnQxNl90OwojZGVmaW5lIGludDE2X3QgZ2xfaW50MTZfdAojZGVmaW5l IHVpbnQxNl90IGdsX3VpbnQxNl90CgoKCnR5cGVkZWYgaW50IGdsX2ludDMyX3Q7CnR5cGVkZWYg dW5zaWduZWQgaW50IGdsX3VpbnQzMl90OwojZGVmaW5lIGludDMyX3QgZ2xfaW50MzJfdAojZGVm aW5lIHVpbnQzMl90IGdsX3VpbnQzMl90CiMgMTY4ICJzdGRpbnQuaCIgMwojZGVmaW5lIEdMX0lO VDY0X1QgCiMgMTkxICJzdGRpbnQuaCIgMwojZGVmaW5lIEdMX1VJTlQ2NF9UIAojIDIxMiAic3Rk aW50LmgiIDMKI2RlZmluZSBfVUlOVDhfVCAKI2RlZmluZSBfVUlOVDMyX1QgCiNkZWZpbmUgX1VJ TlQ2NF9UIAojIDIzMSAic3RkaW50LmgiIDMKI2RlZmluZSBpbnRfbGVhc3Q4X3QgaW50OF90CiNk ZWZpbmUgdWludF9sZWFzdDhfdCB1aW50OF90CiNkZWZpbmUgaW50X2xlYXN0MTZfdCBpbnQxNl90 CiNkZWZpbmUgdWludF9sZWFzdDE2X3QgdWludDE2X3QKI2RlZmluZSBpbnRfbGVhc3QzMl90IGlu dDMyX3QKI2RlZmluZSB1aW50X2xlYXN0MzJfdCB1aW50MzJfdAoKI2RlZmluZSBpbnRfbGVhc3Q2 NF90IGludDY0X3QKCgojZGVmaW5lIHVpbnRfbGVhc3Q2NF90IHVpbnQ2NF90CiMgMjYzICJzdGRp bnQuaCIgMwp0eXBlZGVmIHNpZ25lZCBjaGFyIGdsX2ludF9mYXN0OF90Owp0eXBlZGVmIHVuc2ln bmVkIGNoYXIgZ2xfdWludF9mYXN0OF90OwoKCgoKCgoKdHlwZWRlZiBsb25nIGludCBnbF9pbnRf ZmFzdDMyX3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgZ2xfdWludF9mYXN0MzJfdDsKCnR5 cGVkZWYgZ2xfaW50X2Zhc3QzMl90IGdsX2ludF9mYXN0MTZfdDsKdHlwZWRlZiBnbF91aW50X2Zh c3QzMl90IGdsX3VpbnRfZmFzdDE2X3Q7CgojZGVmaW5lIGludF9mYXN0OF90IGdsX2ludF9mYXN0 OF90CiNkZWZpbmUgdWludF9mYXN0OF90IGdsX3VpbnRfZmFzdDhfdAojZGVmaW5lIGludF9mYXN0 MTZfdCBnbF9pbnRfZmFzdDE2X3QKI2RlZmluZSB1aW50X2Zhc3QxNl90IGdsX3VpbnRfZmFzdDE2 X3QKI2RlZmluZSBpbnRfZmFzdDMyX3QgZ2xfaW50X2Zhc3QzMl90CiNkZWZpbmUgdWludF9mYXN0 MzJfdCBnbF91aW50X2Zhc3QzMl90CgojZGVmaW5lIGludF9mYXN0NjRfdCBpbnQ2NF90CgoKI2Rl ZmluZSB1aW50X2Zhc3Q2NF90IHVpbnQ2NF90CgoKCgoKCnR5cGVkZWYgbG9uZyBpbnQgZ2xfaW50 cHRyX3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgZ2xfdWludHB0cl90OwojZGVmaW5lIGlu dHB0cl90IGdsX2ludHB0cl90CiNkZWZpbmUgdWludHB0cl90IGdsX3VpbnRwdHJfdAojIDM0MCAi c3RkaW50LmgiIDMKdHlwZWRlZiBpbnQgX3ZlcmlmeV9pbnRtYXhfc2l6ZVtzaXplb2YgKGludG1h eF90KSA9PSBzaXplb2YgKHVpbnRtYXhfdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA/IDEgOiAtMV07CgojZGVmaW5lIEdOVUxJQl9kZWZpbmVkX3N0ZGludF90eXBlcyAxCiMgMzUz ICJzdGRpbnQuaCIgMwojdW5kZWYgSU5UOF9NSU4KI3VuZGVmIElOVDhfTUFYCiN1bmRlZiBVSU5U OF9NQVgKI2RlZmluZSBJTlQ4X01JTiAofiBJTlQ4X01BWCkKI2RlZmluZSBJTlQ4X01BWCAxMjcK I2RlZmluZSBVSU5UOF9NQVggMjU1CgojdW5kZWYgSU5UMTZfTUlOCiN1bmRlZiBJTlQxNl9NQVgK I3VuZGVmIFVJTlQxNl9NQVgKI2RlZmluZSBJTlQxNl9NSU4gKH4gSU5UMTZfTUFYKQojZGVmaW5l IElOVDE2X01BWCAzMjc2NwojZGVmaW5lIFVJTlQxNl9NQVggNjU1MzUKCiN1bmRlZiBJTlQzMl9N SU4KI3VuZGVmIElOVDMyX01BWAojdW5kZWYgVUlOVDMyX01BWAojZGVmaW5lIElOVDMyX01JTiAo fiBJTlQzMl9NQVgpCiNkZWZpbmUgSU5UMzJfTUFYIDIxNDc0ODM2NDcKI2RlZmluZSBVSU5UMzJf TUFYIDQyOTQ5NjcyOTVVCiMgMzkxICJzdGRpbnQuaCIgMwojdW5kZWYgSU5UX0xFQVNUOF9NSU4K I3VuZGVmIElOVF9MRUFTVDhfTUFYCiN1bmRlZiBVSU5UX0xFQVNUOF9NQVgKI2RlZmluZSBJTlRf TEVBU1Q4X01JTiBJTlQ4X01JTgojZGVmaW5lIElOVF9MRUFTVDhfTUFYIElOVDhfTUFYCiNkZWZp bmUgVUlOVF9MRUFTVDhfTUFYIFVJTlQ4X01BWAoKI3VuZGVmIElOVF9MRUFTVDE2X01JTgojdW5k ZWYgSU5UX0xFQVNUMTZfTUFYCiN1bmRlZiBVSU5UX0xFQVNUMTZfTUFYCiNkZWZpbmUgSU5UX0xF QVNUMTZfTUlOIElOVDE2X01JTgojZGVmaW5lIElOVF9MRUFTVDE2X01BWCBJTlQxNl9NQVgKI2Rl ZmluZSBVSU5UX0xFQVNUMTZfTUFYIFVJTlQxNl9NQVgKCiN1bmRlZiBJTlRfTEVBU1QzMl9NSU4K I3VuZGVmIElOVF9MRUFTVDMyX01BWAojdW5kZWYgVUlOVF9MRUFTVDMyX01BWAojZGVmaW5lIElO VF9MRUFTVDMyX01JTiBJTlQzMl9NSU4KI2RlZmluZSBJTlRfTEVBU1QzMl9NQVggSU5UMzJfTUFY CiNkZWZpbmUgVUlOVF9MRUFTVDMyX01BWCBVSU5UMzJfTUFYCgojdW5kZWYgSU5UX0xFQVNUNjRf TUlOCiN1bmRlZiBJTlRfTEVBU1Q2NF9NQVgKCiNkZWZpbmUgSU5UX0xFQVNUNjRfTUlOIElOVDY0 X01JTgojZGVmaW5lIElOVF9MRUFTVDY0X01BWCBJTlQ2NF9NQVgKCgojdW5kZWYgVUlOVF9MRUFT VDY0X01BWAoKI2RlZmluZSBVSU5UX0xFQVNUNjRfTUFYIFVJTlQ2NF9NQVgKIyA0MzAgInN0ZGlu dC5oIiAzCiN1bmRlZiBJTlRfRkFTVDhfTUlOCiN1bmRlZiBJTlRfRkFTVDhfTUFYCiN1bmRlZiBV SU5UX0ZBU1Q4X01BWAojZGVmaW5lIElOVF9GQVNUOF9NSU4gU0NIQVJfTUlOCiNkZWZpbmUgSU5U X0ZBU1Q4X01BWCBTQ0hBUl9NQVgKI2RlZmluZSBVSU5UX0ZBU1Q4X01BWCBVQ0hBUl9NQVgKCiN1 bmRlZiBJTlRfRkFTVDE2X01JTgojdW5kZWYgSU5UX0ZBU1QxNl9NQVgKI3VuZGVmIFVJTlRfRkFT VDE2X01BWAojZGVmaW5lIElOVF9GQVNUMTZfTUlOIElOVF9GQVNUMzJfTUlOCiNkZWZpbmUgSU5U X0ZBU1QxNl9NQVggSU5UX0ZBU1QzMl9NQVgKI2RlZmluZSBVSU5UX0ZBU1QxNl9NQVggVUlOVF9G QVNUMzJfTUFYCgojdW5kZWYgSU5UX0ZBU1QzMl9NSU4KI3VuZGVmIElOVF9GQVNUMzJfTUFYCiN1 bmRlZiBVSU5UX0ZBU1QzMl9NQVgKCgoKCgojZGVmaW5lIElOVF9GQVNUMzJfTUlOIExPTkdfTUlO CiNkZWZpbmUgSU5UX0ZBU1QzMl9NQVggTE9OR19NQVgKI2RlZmluZSBVSU5UX0ZBU1QzMl9NQVgg VUxPTkdfTUFYCgoKI3VuZGVmIElOVF9GQVNUNjRfTUlOCiN1bmRlZiBJTlRfRkFTVDY0X01BWAoK I2RlZmluZSBJTlRfRkFTVDY0X01JTiBJTlQ2NF9NSU4KI2RlZmluZSBJTlRfRkFTVDY0X01BWCBJ TlQ2NF9NQVgKCgojdW5kZWYgVUlOVF9GQVNUNjRfTUFYCgojZGVmaW5lIFVJTlRfRkFTVDY0X01B WCBVSU5UNjRfTUFYCgoKCgojdW5kZWYgSU5UUFRSX01JTgojdW5kZWYgSU5UUFRSX01BWAojdW5k ZWYgVUlOVFBUUl9NQVgKI2RlZmluZSBJTlRQVFJfTUlOIExPTkdfTUlOCiNkZWZpbmUgSU5UUFRS X01BWCBMT05HX01BWAojZGVmaW5lIFVJTlRQVFJfTUFYIFVMT05HX01BWAojIDUwMiAic3RkaW50 LmgiIDMKI3VuZGVmIFBUUkRJRkZfTUlOCiN1bmRlZiBQVFJESUZGX01BWAojIDUxMyAic3RkaW50 LmgiIDMKI2RlZmluZSBQVFJESUZGX01JTiBfU1RESU5UX01JTiAoMSwgMzIsIDApCgojZGVmaW5l IFBUUkRJRkZfTUFYIF9TVERJTlRfTUFYICgxLCAzMiwgMCkKCgoKCgoKI2RlZmluZSBTSUdfQVRP TUlDX01JTiBfU1RESU5UX01JTiAoMSwgMzIsIDApCgoKI2RlZmluZSBTSUdfQVRPTUlDX01BWCBf U1RESU5UX01BWCAoMSwgMzIsIDApCgoKCgoKI3VuZGVmIFNJWkVfTUFYCgoKCgoKCgojZGVmaW5l IFNJWkVfTUFYIF9TVERJTlRfTUFYICgwLCAzMiwgMHVsKQojIDU1OCAic3RkaW50LmgiIDMKI3Vu ZGVmIFdDSEFSX01JTgojdW5kZWYgV0NIQVJfTUFYCiNkZWZpbmUgV0NIQVJfTUlOIF9TVERJTlRf TUlOICgxLCAzMiwgMCkKCiNkZWZpbmUgV0NIQVJfTUFYIF9TVERJTlRfTUFYICgxLCAzMiwgMCkK CgoKCgojZGVmaW5lIFdJTlRfTUlOIF9TVERJTlRfTUlOICgxLCAzMiwgMCkKCiNkZWZpbmUgV0lO VF9NQVggX1NURElOVF9NQVggKDEsIDMyLCAwKQojIDU4MSAic3RkaW50LmgiIDMKI3VuZGVmIElO VDhfQwojdW5kZWYgVUlOVDhfQwojZGVmaW5lIElOVDhfQyh4KSB4CiNkZWZpbmUgVUlOVDhfQyh4 KSB4CgojdW5kZWYgSU5UMTZfQwojdW5kZWYgVUlOVDE2X0MKI2RlZmluZSBJTlQxNl9DKHgpIHgK I2RlZmluZSBVSU5UMTZfQyh4KSB4CgojdW5kZWYgSU5UMzJfQwojdW5kZWYgVUlOVDMyX0MKI2Rl ZmluZSBJTlQzMl9DKHgpIHgKI2RlZmluZSBVSU5UMzJfQyh4KSB4ICMjIFUKCiN1bmRlZiBJTlQ2 NF9DCiN1bmRlZiBVSU5UNjRfQwoKCgoKCiNkZWZpbmUgSU5UNjRfQyh4KSB4ICMjTEwKCgoKCgoK I2RlZmluZSBVSU5UNjRfQyh4KSB4ICMjVUxMCiMgNjUgIi91c3IvaW5jbHVkZS9tYWNoL21hY2hf dHlwZXMuaCIgMiAzIDQKCiMgMSAiL3Vzci9pbmNsdWRlL21hY2gvaG9zdF9pbmZvLmgiIDEgMyA0 CiMgNjAgIi91c3IvaW5jbHVkZS9tYWNoL2hvc3RfaW5mby5oIiAzIDQKI2RlZmluZSBfTUFDSF9I T1NUX0lORk9fSF8gCgojIDEgIi91c3IvaW5jbHVkZS9tYWNoL3ZtX3N0YXRpc3RpY3MuaCIgMSAz IDQKIyA2MSAiL3Vzci9pbmNsdWRlL21hY2gvdm1fc3RhdGlzdGljcy5oIiAzIDQKI2RlZmluZSBW TV9TVEFUSVNUSUNTX0hfIAoKIyAxICIvdXNyL2luY2x1ZGUvbWFjaC9tYWNoaW5lL3ZtX3R5cGVz LmgiIDEgMyA0CiMgMjMgIi91c3IvaW5jbHVkZS9tYWNoL21hY2hpbmUvdm1fdHlwZXMuaCIgMyA0 CiNkZWZpbmUgX01BQ0hfTUFDSElORV9WTV9UWVBFU19IXyAKCgoKIyAxICIvdXNyL2luY2x1ZGUv bWFjaC9wcGMvdm1fdHlwZXMuaCIgMSAzIDQKIyA2MiAiL3Vzci9pbmNsdWRlL21hY2gvcHBjL3Zt X3R5cGVzLmgiIDMgNAojZGVmaW5lIF9NQUNIX1BQQ19WTV9UWVBFU19IXyAKIyA3NyAiL3Vzci9p bmNsdWRlL21hY2gvcHBjL3ZtX3R5cGVzLmgiIDMgNAp0eXBlZGVmIHVuc2lnbmVkIGludCBuYXR1 cmFsX3Q7CiMgODYgIi91c3IvaW5jbHVkZS9tYWNoL3BwYy92bV90eXBlcy5oIiAzIDQKdHlwZWRl ZiBpbnQgaW50ZWdlcl90OwoKCgoKCnR5cGVkZWYgbmF0dXJhbF90IHZtX29mZnNldF90OwoKCgoK Cgp0eXBlZGVmIG5hdHVyYWxfdCB2bV9zaXplX3Q7CgoKCgoKCgojZGVmaW5lIE1BQ0hfTVNHX1RZ UEVfSU5URUdFUl9UIE1BQ0hfTVNHX1RZUEVfSU5URUdFUl8zMgojIDI4ICIvdXNyL2luY2x1ZGUv bWFjaC9tYWNoaW5lL3ZtX3R5cGVzLmgiIDIgMyA0CiMgNjQgIi91c3IvaW5jbHVkZS9tYWNoL3Zt X3N0YXRpc3RpY3MuaCIgMiAzIDQKCnN0cnVjdCB2bV9zdGF0aXN0aWNzIHsKICAgICAgICBpbnRl Z2VyX3QgZnJlZV9jb3VudDsKICAgICAgICBpbnRlZ2VyX3QgYWN0aXZlX2NvdW50OwogICAgICAg IGludGVnZXJfdCBpbmFjdGl2ZV9jb3VudDsKICAgICAgICBpbnRlZ2VyX3Qgd2lyZV9jb3VudDsK ICAgICAgICBpbnRlZ2VyX3QgemVyb19maWxsX2NvdW50OwogICAgICAgIGludGVnZXJfdCByZWFj dGl2YXRpb25zOwogICAgICAgIGludGVnZXJfdCBwYWdlaW5zOwogICAgICAgIGludGVnZXJfdCBw YWdlb3V0czsKICAgICAgICBpbnRlZ2VyX3QgZmF1bHRzOwogICAgICAgIGludGVnZXJfdCBjb3df ZmF1bHRzOwogICAgICAgIGludGVnZXJfdCBsb29rdXBzOwogICAgICAgIGludGVnZXJfdCBoaXRz Owp9OwoKdHlwZWRlZiBzdHJ1Y3Qgdm1fc3RhdGlzdGljcyAqdm1fc3RhdGlzdGljc190Owp0eXBl ZGVmIHN0cnVjdCB2bV9zdGF0aXN0aWNzIHZtX3N0YXRpc3RpY3NfZGF0YV90OwoKCgoKI2RlZmlu ZSBWTV9QQUdFX1FVRVJZX1BBR0VfUFJFU0VOVCAweDEKI2RlZmluZSBWTV9QQUdFX1FVRVJZX1BB R0VfRklDVElUSU9VUyAweDIKI2RlZmluZSBWTV9QQUdFX1FVRVJZX1BBR0VfUkVGIDB4NAojZGVm aW5lIFZNX1BBR0VfUVVFUllfUEFHRV9ESVJUWSAweDgKIyA5OSAiL3Vzci9pbmNsdWRlL21hY2gv dm1fc3RhdGlzdGljcy5oIiAzIDQKc3RydWN0IHBtYXBfc3RhdGlzdGljcyB7CiAgICAgICAgaW50 ZWdlcl90IHJlc2lkZW50X2NvdW50OwogICAgICAgIGludGVnZXJfdCB3aXJlZF9jb3VudDsKfTsK CnR5cGVkZWYgc3RydWN0IHBtYXBfc3RhdGlzdGljcyAqcG1hcF9zdGF0aXN0aWNzX3Q7CgojZGVm aW5lIFZNX0ZMQUdTX0ZJWEVEIDB4MAojZGVmaW5lIFZNX0ZMQUdTX0FOWVdIRVJFIDB4MQojZGVm aW5lIFZNX0ZMQUdTX0FMSUFTX01BU0sgMHhGRjAwMDAwMAojZGVmaW5lIFZNX0dFVF9GTEFHU19B TElBUyhmbGFncyxhbGlhcykgKGFsaWFzKSA9ICgoZmxhZ3MpICYgVk1fRkxBR1NfQUxJQVNfTUFT SykgPj4gMjQKCiNkZWZpbmUgVk1fU0VUX0ZMQUdTX0FMSUFTKGZsYWdzLGFsaWFzKSAoZmxhZ3Mp ID0gKCgoZmxhZ3MpICYgflZNX0ZMQUdTX0FMSUFTX01BU0spIHwgKCgoYWxpYXMpICYgflZNX0ZM QUdTX0FMSUFTX01BU0spIDw8IDI0KSkKCgoKI2RlZmluZSBWTV9NRU1PUllfTUFMTE9DIDEKI2Rl ZmluZSBWTV9NRU1PUllfTUFMTE9DX1NNQUxMIDIKI2RlZmluZSBWTV9NRU1PUllfTUFMTE9DX0xB UkdFIDMKI2RlZmluZSBWTV9NRU1PUllfTUFMTE9DX0hVR0UgNAojZGVmaW5lIFZNX01FTU9SWV9T QlJLIDUKI2RlZmluZSBWTV9NRU1PUllfUkVBTExPQyA2CiNkZWZpbmUgVk1fTUVNT1JZX01BTExP Q19USU5ZIDcKCiNkZWZpbmUgVk1fTUVNT1JZX0FOQUxZU0lTX1RPT0wgMTAKCiNkZWZpbmUgVk1f TUVNT1JZX01BQ0hfTVNHIDIwCiNkZWZpbmUgVk1fTUVNT1JZX0lPS0lUIDIxCiNkZWZpbmUgVk1f TUVNT1JZX1NUQUNLIDMwCiNkZWZpbmUgVk1fTUVNT1JZX0dVQVJEIDMxCiNkZWZpbmUgVk1fTUVN T1JZX1NIQVJFRF9QTUFQIDMyCgojZGVmaW5lIFZNX01FTU9SWV9EWUxJQiAzMwoKCgojZGVmaW5l IFZNX01FTU9SWV9BUFBLSVQgNDAKI2RlZmluZSBWTV9NRU1PUllfRk9VTkRBVElPTiA0MQojZGVm aW5lIFZNX01FTU9SWV9DT1JFR1JBUEhJQ1MgNDIKI2RlZmluZSBWTV9NRU1PUllfQ0FSQk9OIDQz CiNkZWZpbmUgVk1fTUVNT1JZX0pBVkEgNDQKI2RlZmluZSBWTV9NRU1PUllfQVRTIDUwCgoKCiNk ZWZpbmUgVk1fTUVNT1JZX0RZTEQgNjAKCiNkZWZpbmUgVk1fTUVNT1JZX0RZTERfTUFMTE9DIDYx CgoKI2RlZmluZSBWTV9NRU1PUllfQVBQTElDQVRJT05fU1BFQ0lGSUNfMSAyNDAKI2RlZmluZSBW TV9NRU1PUllfQVBQTElDQVRJT05fU1BFQ0lGSUNfMTYgMjU1CgojZGVmaW5lIFZNX01BS0VfVEFH KHRhZykgKHRhZzw8MjQpCiMgNjMgIi91c3IvaW5jbHVkZS9tYWNoL2hvc3RfaW5mby5oIiAyIDMg NAojIDEgIi91c3IvaW5jbHVkZS9tYWNoL21hY2hpbmUuaCIgMSAzIDQKIyA1NSAiL3Vzci9pbmNs dWRlL21hY2gvbWFjaGluZS5oIiAzIDQKI2RlZmluZSBfTUFDSF9NQUNISU5FX0hfIAoKCgoKIyAx ICIvdXNyL2luY2x1ZGUvbWFjaC9ib29sZWFuLmgiIDEgMyA0CiMgMTIwICIvdXNyL2luY2x1ZGUv bWFjaC9ib29sZWFuLmgiIDMgNAojZGVmaW5lIEJPT0xFQU5fSF8gCgoKCgoKCiMgMSAiL3Vzci9p bmNsdWRlL21hY2gvbWFjaGluZS9ib29sZWFuLmgiIDEgMyA0CiMgMjMgIi91c3IvaW5jbHVkZS9t YWNoL21hY2hpbmUvYm9vbGVhbi5oIiAzIDQKI2RlZmluZSBfTUFDSF9NQUNISU5FX0JPT0xFQU5f SF8gCgoKCiMgMSAiL3Vzci9pbmNsdWRlL21hY2gvcHBjL2Jvb2xlYW4uaCIgMSAzIDQKIyAxMjcg Ii91c3IvaW5jbHVkZS9tYWNoL3BwYy9ib29sZWFuLmgiIDMgNAojZGVmaW5lIF9NQUNIX1BQQ19C T09MRUFOX0hfIAoKdHlwZWRlZiBpbnQgYm9vbGVhbl90OwojIDI4ICIvdXNyL2luY2x1ZGUvbWFj aC9tYWNoaW5lL2Jvb2xlYW4uaCIgMiAzIDQKIyAxMjggIi91c3IvaW5jbHVkZS9tYWNoL2Jvb2xl YW4uaCIgMiAzIDQKIyAxMzggIi91c3IvaW5jbHVkZS9tYWNoL2Jvb2xlYW4uaCIgMyA0CiNkZWZp bmUgVFJVRSAxCgoKCiNkZWZpbmUgRkFMU0UgMAojIDYxICIvdXNyL2luY2x1ZGUvbWFjaC9tYWNo aW5lLmgiIDIgMyA0CiMgNzEgIi91c3IvaW5jbHVkZS9tYWNoL21hY2hpbmUuaCIgMyA0CnN0cnVj dCBtYWNoaW5lX2luZm8gewogICAgICAgIGludGVnZXJfdCBtYWpvcl92ZXJzaW9uOwogICAgICAg IGludGVnZXJfdCBtaW5vcl92ZXJzaW9uOwogICAgICAgIGludGVnZXJfdCBtYXhfY3B1czsKICAg ICAgICBpbnRlZ2VyX3QgYXZhaWxfY3B1czsKICAgICAgICB2bV9zaXplX3QgbWVtb3J5X3NpemU7 Cn07Cgp0eXBlZGVmIHN0cnVjdCBtYWNoaW5lX2luZm8gKm1hY2hpbmVfaW5mb190Owp0eXBlZGVm IHN0cnVjdCBtYWNoaW5lX2luZm8gbWFjaGluZV9pbmZvX2RhdGFfdDsKCnR5cGVkZWYgaW50ZWdl cl90IGNwdV90eXBlX3Q7CnR5cGVkZWYgaW50ZWdlcl90IGNwdV9zdWJ0eXBlX3Q7CgojZGVmaW5l IENQVV9TVEFURV9NQVggNAoKI2RlZmluZSBDUFVfU1RBVEVfVVNFUiAwCiNkZWZpbmUgQ1BVX1NU QVRFX1NZU1RFTSAxCiNkZWZpbmUgQ1BVX1NUQVRFX0lETEUgMgojZGVmaW5lIENQVV9TVEFURV9O SUNFIDMKCgoKCgoKI2RlZmluZSBDUFVfVFlQRV9BTlkgKChjcHVfdHlwZV90KSAtMSkKCiNkZWZp bmUgQ1BVX1RZUEVfVkFYICgoY3B1X3R5cGVfdCkgMSkKCgoKCiNkZWZpbmUgQ1BVX1RZUEVfTUM2 ODB4MCAoKGNwdV90eXBlX3QpIDYpCiNkZWZpbmUgQ1BVX1RZUEVfSTM4NiAoKGNwdV90eXBlX3Qp IDcpCgoKI2RlZmluZSBDUFVfVFlQRV9NQzk4MDAwICgoY3B1X3R5cGVfdCkgMTApCiNkZWZpbmUg Q1BVX1RZUEVfSFBQQSAoKGNwdV90eXBlX3QpIDExKQoKI2RlZmluZSBDUFVfVFlQRV9NQzg4MDAw ICgoY3B1X3R5cGVfdCkgMTMpCiNkZWZpbmUgQ1BVX1RZUEVfU1BBUkMgKChjcHVfdHlwZV90KSAx NCkKI2RlZmluZSBDUFVfVFlQRV9JODYwICgoY3B1X3R5cGVfdCkgMTUpCgoKI2RlZmluZSBDUFVf VFlQRV9QT1dFUlBDICgoY3B1X3R5cGVfdCkgMTgpCiMgMTM2ICIvdXNyL2luY2x1ZGUvbWFjaC9t YWNoaW5lLmgiIDMgNAojZGVmaW5lIENQVV9TVUJUWVBFX01VTFRJUExFICgoY3B1X3N1YnR5cGVf dCkgLTEpCiNkZWZpbmUgQ1BVX1NVQlRZUEVfTElUVExFX0VORElBTiAoKGNwdV9zdWJ0eXBlX3Qp IDApCiNkZWZpbmUgQ1BVX1NVQlRZUEVfQklHX0VORElBTiAoKGNwdV9zdWJ0eXBlX3QpIDEpCgoK CgoKCiNkZWZpbmUgQ1BVX1NVQlRZUEVfVkFYX0FMTCAoKGNwdV9zdWJ0eXBlX3QpIDApCiNkZWZp bmUgQ1BVX1NVQlRZUEVfVkFYNzgwICgoY3B1X3N1YnR5cGVfdCkgMSkKI2RlZmluZSBDUFVfU1VC VFlQRV9WQVg3ODUgKChjcHVfc3VidHlwZV90KSAyKQojZGVmaW5lIENQVV9TVUJUWVBFX1ZBWDc1 MCAoKGNwdV9zdWJ0eXBlX3QpIDMpCiNkZWZpbmUgQ1BVX1NVQlRZUEVfVkFYNzMwICgoY3B1X3N1 YnR5cGVfdCkgNCkKI2RlZmluZSBDUFVfU1VCVFlQRV9VVkFYSSAoKGNwdV9zdWJ0eXBlX3QpIDUp CiNkZWZpbmUgQ1BVX1NVQlRZUEVfVVZBWElJICgoY3B1X3N1YnR5cGVfdCkgNikKI2RlZmluZSBD UFVfU1VCVFlQRV9WQVg4MjAwICgoY3B1X3N1YnR5cGVfdCkgNykKI2RlZmluZSBDUFVfU1VCVFlQ RV9WQVg4NTAwICgoY3B1X3N1YnR5cGVfdCkgOCkKI2RlZmluZSBDUFVfU1VCVFlQRV9WQVg4NjAw ICgoY3B1X3N1YnR5cGVfdCkgOSkKI2RlZmluZSBDUFVfU1VCVFlQRV9WQVg4NjUwICgoY3B1X3N1 YnR5cGVfdCkgMTApCiNkZWZpbmUgQ1BVX1NVQlRZUEVfVkFYODgwMCAoKGNwdV9zdWJ0eXBlX3Qp IDExKQojZGVmaW5lIENQVV9TVUJUWVBFX1VWQVhJSUkgKChjcHVfc3VidHlwZV90KSAxMikKIyAx NzYgIi91c3IvaW5jbHVkZS9tYWNoL21hY2hpbmUuaCIgMyA0CiNkZWZpbmUgQ1BVX1NVQlRZUEVf TUM2ODB4MF9BTEwgKChjcHVfc3VidHlwZV90KSAxKQojZGVmaW5lIENQVV9TVUJUWVBFX01DNjgw MzAgKChjcHVfc3VidHlwZV90KSAxKQojZGVmaW5lIENQVV9TVUJUWVBFX01DNjgwNDAgKChjcHVf c3VidHlwZV90KSAyKQojZGVmaW5lIENQVV9TVUJUWVBFX01DNjgwMzBfT05MWSAoKGNwdV9zdWJ0 eXBlX3QpIDMpCgoKCgoKI2RlZmluZSBDUFVfU1VCVFlQRV9JMzg2X0FMTCAoKGNwdV9zdWJ0eXBl X3QpIDMpCiNkZWZpbmUgQ1BVX1NVQlRZUEVfMzg2ICgoY3B1X3N1YnR5cGVfdCkgMykKI2RlZmlu ZSBDUFVfU1VCVFlQRV80ODYgKChjcHVfc3VidHlwZV90KSA0KQojZGVmaW5lIENQVV9TVUJUWVBF XzQ4NlNYICgoY3B1X3N1YnR5cGVfdCkgNCArIDEyOCkKI2RlZmluZSBDUFVfU1VCVFlQRV81ODYg KChjcHVfc3VidHlwZV90KSA1KQojZGVmaW5lIENQVV9TVUJUWVBFX0lOVEVMKGYsbSkgKChjcHVf c3VidHlwZV90KSAoZikgKyAoKG0pIDw8IDQpKQojZGVmaW5lIENQVV9TVUJUWVBFX1BFTlQgQ1BV X1NVQlRZUEVfSU5URUwoNSwgMCkKI2RlZmluZSBDUFVfU1VCVFlQRV9QRU5UUFJPIENQVV9TVUJU WVBFX0lOVEVMKDYsIDEpCiNkZWZpbmUgQ1BVX1NVQlRZUEVfUEVOVElJX00zIENQVV9TVUJUWVBF X0lOVEVMKDYsIDMpCiNkZWZpbmUgQ1BVX1NVQlRZUEVfUEVOVElJX001IENQVV9TVUJUWVBFX0lO VEVMKDYsIDUpCgojZGVmaW5lIENQVV9TVUJUWVBFX0lOVEVMX0ZBTUlMWSh4KSAoKHgpICYgMTUp CiNkZWZpbmUgQ1BVX1NVQlRZUEVfSU5URUxfRkFNSUxZX01BWCAxNQoKI2RlZmluZSBDUFVfU1VC VFlQRV9JTlRFTF9NT0RFTCh4KSAoKHgpID4+IDQpCiNkZWZpbmUgQ1BVX1NVQlRZUEVfSU5URUxf TU9ERUxfQUxMIDAKCgoKCgojZGVmaW5lIENQVV9TVUJUWVBFX01JUFNfQUxMICgoY3B1X3N1YnR5 cGVfdCkgMCkKI2RlZmluZSBDUFVfU1VCVFlQRV9NSVBTX1IyMzAwICgoY3B1X3N1YnR5cGVfdCkg MSkKI2RlZmluZSBDUFVfU1VCVFlQRV9NSVBTX1IyNjAwICgoY3B1X3N1YnR5cGVfdCkgMikKI2Rl ZmluZSBDUFVfU1VCVFlQRV9NSVBTX1IyODAwICgoY3B1X3N1YnR5cGVfdCkgMykKI2RlZmluZSBD UFVfU1VCVFlQRV9NSVBTX1IyMDAwYSAoKGNwdV9zdWJ0eXBlX3QpIDQpCiNkZWZpbmUgQ1BVX1NV QlRZUEVfTUlQU19SMjAwMCAoKGNwdV9zdWJ0eXBlX3QpIDUpCiNkZWZpbmUgQ1BVX1NVQlRZUEVf TUlQU19SMzAwMGEgKChjcHVfc3VidHlwZV90KSA2KQojZGVmaW5lIENQVV9TVUJUWVBFX01JUFNf UjMwMDAgKChjcHVfc3VidHlwZV90KSA3KQoKCgoKI2RlZmluZSBDUFVfU1VCVFlQRV9NQzk4MDAw X0FMTCAoKGNwdV9zdWJ0eXBlX3QpIDApCiNkZWZpbmUgQ1BVX1NVQlRZUEVfTUM5ODYwMSAoKGNw dV9zdWJ0eXBlX3QpIDEpCgoKCgoKCiNkZWZpbmUgQ1BVX1NVQlRZUEVfSFBQQV9BTEwgKChjcHVf c3VidHlwZV90KSAwKQojZGVmaW5lIENQVV9TVUJUWVBFX0hQUEFfNzEwMCAoKGNwdV9zdWJ0eXBl X3QpIDApCiNkZWZpbmUgQ1BVX1NVQlRZUEVfSFBQQV83MTAwTEMgKChjcHVfc3VidHlwZV90KSAx KQoKCgoKI2RlZmluZSBDUFVfU1VCVFlQRV9NQzg4MDAwX0FMTCAoKGNwdV9zdWJ0eXBlX3QpIDAp CiNkZWZpbmUgQ1BVX1NVQlRZUEVfTUM4ODEwMCAoKGNwdV9zdWJ0eXBlX3QpIDEpCiNkZWZpbmUg Q1BVX1NVQlRZUEVfTUM4ODExMCAoKGNwdV9zdWJ0eXBlX3QpIDIpCgoKCgojZGVmaW5lIENQVV9T VUJUWVBFX1NQQVJDX0FMTCAoKGNwdV9zdWJ0eXBlX3QpIDApCgoKCgojZGVmaW5lIENQVV9TVUJU WVBFX0k4NjBfQUxMICgoY3B1X3N1YnR5cGVfdCkgMCkKI2RlZmluZSBDUFVfU1VCVFlQRV9JODYw Xzg2MCAoKGNwdV9zdWJ0eXBlX3QpIDEpCgoKCgojZGVmaW5lIENQVV9TVUJUWVBFX1BPV0VSUENf QUxMICgoY3B1X3N1YnR5cGVfdCkgMCkKI2RlZmluZSBDUFVfU1VCVFlQRV9QT1dFUlBDXzYwMSAo KGNwdV9zdWJ0eXBlX3QpIDEpCiNkZWZpbmUgQ1BVX1NVQlRZUEVfUE9XRVJQQ182MDIgKChjcHVf c3VidHlwZV90KSAyKQojZGVmaW5lIENQVV9TVUJUWVBFX1BPV0VSUENfNjAzICgoY3B1X3N1YnR5 cGVfdCkgMykKI2RlZmluZSBDUFVfU1VCVFlQRV9QT1dFUlBDXzYwM2UgKChjcHVfc3VidHlwZV90 KSA0KQojZGVmaW5lIENQVV9TVUJUWVBFX1BPV0VSUENfNjAzZXYgKChjcHVfc3VidHlwZV90KSA1 KQojZGVmaW5lIENQVV9TVUJUWVBFX1BPV0VSUENfNjA0ICgoY3B1X3N1YnR5cGVfdCkgNikKI2Rl ZmluZSBDUFVfU1VCVFlQRV9QT1dFUlBDXzYwNGUgKChjcHVfc3VidHlwZV90KSA3KQojZGVmaW5l IENQVV9TVUJUWVBFX1BPV0VSUENfNjIwICgoY3B1X3N1YnR5cGVfdCkgOCkKI2RlZmluZSBDUFVf U1VCVFlQRV9QT1dFUlBDXzc1MCAoKGNwdV9zdWJ0eXBlX3QpIDkpCiNkZWZpbmUgQ1BVX1NVQlRZ UEVfUE9XRVJQQ183NDAwICgoY3B1X3N1YnR5cGVfdCkgMTApCiNkZWZpbmUgQ1BVX1NVQlRZUEVf UE9XRVJQQ183NDUwICgoY3B1X3N1YnR5cGVfdCkgMTEpCgojZGVmaW5lIENQVV9TVUJUWVBFX1BP V0VSUENfTWF4ICgoY3B1X3N1YnR5cGVfdCkgMTApCiNkZWZpbmUgQ1BVX1NVQlRZUEVfUE9XRVJQ Q19TQ1ZnZXIgKChjcHVfc3VidHlwZV90KSAxMSkKCiNkZWZpbmUgQ1BVX1NVQlRZUEVfUE9XRVJQ Q185NzAgKChjcHVfc3VidHlwZV90KSAxMDApCiMgNjQgIi91c3IvaW5jbHVkZS9tYWNoL2hvc3Rf aW5mby5oIiAyIDMgNAoKIyAxICIvdXNyL2luY2x1ZGUvbWFjaC90aW1lX3ZhbHVlLmgiIDEgMyA0 CiMgNTIgIi91c3IvaW5jbHVkZS9tYWNoL3RpbWVfdmFsdWUuaCIgMyA0CiNkZWZpbmUgVElNRV9W QUxVRV9IXyAKIyA2MiAiL3Vzci9pbmNsdWRlL21hY2gvdGltZV92YWx1ZS5oIiAzIDQKc3RydWN0 IHRpbWVfdmFsdWUgewogICAgICAgIGludGVnZXJfdCBzZWNvbmRzOwogICAgICAgIGludGVnZXJf dCBtaWNyb3NlY29uZHM7Cn07CnR5cGVkZWYgc3RydWN0IHRpbWVfdmFsdWUgdGltZV92YWx1ZV90 OwoKCgoKCgoKI2RlZmluZSBUSU1FX01JQ1JPU19NQVggKDEwMDAwMDApCgojZGVmaW5lIHRpbWVf dmFsdWVfYWRkX3VzZWModmFsLG1pY3JvcykgeyBpZiAoKCh2YWwpLT5taWNyb3NlY29uZHMgKz0g KG1pY3JvcykpID49IFRJTUVfTUlDUk9TX01BWCkgeyAodmFsKS0+bWljcm9zZWNvbmRzIC09IFRJ TUVfTUlDUk9TX01BWDsgKHZhbCktPnNlY29uZHMrKzsgfSB9CgoKCgoKCgojZGVmaW5lIHRpbWVf dmFsdWVfYWRkKHJlc3VsdCxhZGRlbmQpIHsgKHJlc3VsdCktPm1pY3Jvc2Vjb25kcyArPSAoYWRk ZW5kKS0+bWljcm9zZWNvbmRzOyAocmVzdWx0KS0+c2Vjb25kcyArPSAoYWRkZW5kKS0+c2Vjb25k czsgaWYgKChyZXN1bHQpLT5taWNyb3NlY29uZHMgPj0gVElNRV9NSUNST1NfTUFYKSB7IChyZXN1 bHQpLT5taWNyb3NlY29uZHMgLT0gVElNRV9NSUNST1NfTUFYOyAocmVzdWx0KS0+c2Vjb25kcysr OyB9IH0KIyAxMDYgIi91c3IvaW5jbHVkZS9tYWNoL3RpbWVfdmFsdWUuaCIgMyA0CnR5cGVkZWYg c3RydWN0IG1hcHBlZF90aW1lX3ZhbHVlIHsKICAgICAgICBpbnRlZ2VyX3Qgc2Vjb25kczsKICAg ICAgICBpbnRlZ2VyX3QgbWljcm9zZWNvbmRzOwogICAgICAgIGludGVnZXJfdCBjaGVja19zZWNv bmRzOwp9IG1hcHBlZF90aW1lX3ZhbHVlX3Q7CiMgNjYgIi91c3IvaW5jbHVkZS9tYWNoL2hvc3Rf aW5mby5oIiAyIDMgNAoKCgoKdHlwZWRlZiBpbnRlZ2VyX3QgKmhvc3RfaW5mb190OwoKI2RlZmlu ZSBIT1NUX0lORk9fTUFYICgxMDI0KQp0eXBlZGVmIGludGVnZXJfdCBob3N0X2luZm9fZGF0YV90 WygxMDI0KV07CgojZGVmaW5lIEtFUk5FTF9WRVJTSU9OX01BWCAoNTEyKQp0eXBlZGVmIGNoYXIg a2VybmVsX3ZlcnNpb25fdFsoNTEyKV07CgojZGVmaW5lIEtFUk5FTF9CT09UX0lORk9fTUFYICg0 MDk2KQp0eXBlZGVmIGNoYXIga2VybmVsX2Jvb3RfaW5mb190Wyg0MDk2KV07CgojZGVmaW5lIEtF Uk5FTF9CT09UTUFHSUNfTUFYICg4MTkyKQoKCgoKCnR5cGVkZWYgaW50ZWdlcl90IGhvc3RfZmxh dm9yX3Q7CiNkZWZpbmUgSE9TVF9CQVNJQ19JTkZPIDEKI2RlZmluZSBIT1NUX1NDSEVEX0lORk8g MwojZGVmaW5lIEhPU1RfUkVTT1VSQ0VfU0laRVMgNAojZGVmaW5lIEhPU1RfUFJJT1JJVFlfSU5G TyA1CiNkZWZpbmUgSE9TVF9TRU1BUEhPUkVfVFJBUFMgNwojZGVmaW5lIEhPU1RfTUFDSF9NU0df VFJBUCA4CgpzdHJ1Y3QgaG9zdF9iYXNpY19pbmZvIHsKICAgICAgICBpbnRlZ2VyX3QgbWF4X2Nw dXM7CiAgICAgICAgaW50ZWdlcl90IGF2YWlsX2NwdXM7CiAgICAgICAgdm1fc2l6ZV90IG1lbW9y eV9zaXplOwogICAgICAgIGNwdV90eXBlX3QgY3B1X3R5cGU7CiAgICAgICAgY3B1X3N1YnR5cGVf dCBjcHVfc3VidHlwZTsKfTsKCnR5cGVkZWYgc3RydWN0IGhvc3RfYmFzaWNfaW5mbyBob3N0X2Jh c2ljX2luZm9fZGF0YV90Owp0eXBlZGVmIHN0cnVjdCBob3N0X2Jhc2ljX2luZm8gKmhvc3RfYmFz aWNfaW5mb190OwojZGVmaW5lIEhPU1RfQkFTSUNfSU5GT19DT1VOVCAoc2l6ZW9mKGhvc3RfYmFz aWNfaW5mb19kYXRhX3QpL3NpemVvZihpbnRlZ2VyX3QpKQoKCnN0cnVjdCBob3N0X3NjaGVkX2lu Zm8gewogICAgICAgIGludGVnZXJfdCBtaW5fdGltZW91dDsKICAgICAgICBpbnRlZ2VyX3QgbWlu X3F1YW50dW07Cn07Cgp0eXBlZGVmIHN0cnVjdCBob3N0X3NjaGVkX2luZm8gaG9zdF9zY2hlZF9p bmZvX2RhdGFfdDsKdHlwZWRlZiBzdHJ1Y3QgaG9zdF9zY2hlZF9pbmZvICpob3N0X3NjaGVkX2lu Zm9fdDsKI2RlZmluZSBIT1NUX1NDSEVEX0lORk9fQ09VTlQgKHNpemVvZihob3N0X3NjaGVkX2lu Zm9fZGF0YV90KS9zaXplb2YoaW50ZWdlcl90KSkKCgpzdHJ1Y3Qga2VybmVsX3Jlc291cmNlX3Np emVzIHsKICAgICAgICB2bV9zaXplX3QgdGFzazsKICAgICAgICB2bV9zaXplX3QgdGhyZWFkOwog ICAgICAgIHZtX3NpemVfdCBwb3J0OwogICAgICAgIHZtX3NpemVfdCBtZW1vcnlfcmVnaW9uOwog ICAgICAgIHZtX3NpemVfdCBtZW1vcnlfb2JqZWN0Owp9OwoKdHlwZWRlZiBzdHJ1Y3Qga2VybmVs X3Jlc291cmNlX3NpemVzIGtlcm5lbF9yZXNvdXJjZV9zaXplc19kYXRhX3Q7CnR5cGVkZWYgc3Ry dWN0IGtlcm5lbF9yZXNvdXJjZV9zaXplcyAqa2VybmVsX3Jlc291cmNlX3NpemVzX3Q7CiNkZWZp bmUgSE9TVF9SRVNPVVJDRV9TSVpFU19DT1VOVCAoc2l6ZW9mKGtlcm5lbF9yZXNvdXJjZV9zaXpl c19kYXRhX3QpL3NpemVvZihpbnRlZ2VyX3QpKQoKCnN0cnVjdCBob3N0X3ByaW9yaXR5X2luZm8g ewogICAgICAgIGludGVnZXJfdCBrZXJuZWxfcHJpb3JpdHk7CiAgICAgICAgaW50ZWdlcl90IHN5 c3RlbV9wcmlvcml0eTsKICAgICAgICBpbnRlZ2VyX3Qgc2VydmVyX3ByaW9yaXR5OwogICAgICAg IGludGVnZXJfdCB1c2VyX3ByaW9yaXR5OwogICAgICAgIGludGVnZXJfdCBkZXByZXNzX3ByaW9y aXR5OwogICAgICAgIGludGVnZXJfdCBpZGxlX3ByaW9yaXR5OwogICAgICAgIGludGVnZXJfdCBt aW5pbXVtX3ByaW9yaXR5OwogICAgICAgIGludGVnZXJfdCBtYXhpbXVtX3ByaW9yaXR5Owp9OwoK dHlwZWRlZiBzdHJ1Y3QgaG9zdF9wcmlvcml0eV9pbmZvIGhvc3RfcHJpb3JpdHlfaW5mb19kYXRh X3Q7CnR5cGVkZWYgc3RydWN0IGhvc3RfcHJpb3JpdHlfaW5mbyAqaG9zdF9wcmlvcml0eV9pbmZv X3Q7CiNkZWZpbmUgSE9TVF9QUklPUklUWV9JTkZPX0NPVU5UIChzaXplb2YoaG9zdF9wcmlvcml0 eV9pbmZvX2RhdGFfdCkvc2l6ZW9mKGludGVnZXJfdCkpCgoKCiNkZWZpbmUgSE9TVF9MT0FEX0lO Rk8gMQojZGVmaW5lIEhPU1RfVk1fSU5GTyAyCiNkZWZpbmUgSE9TVF9DUFVfTE9BRF9JTkZPIDMK CnN0cnVjdCBob3N0X2xvYWRfaW5mbyB7CiAgICAgICAgaW50ZWdlcl90IGF2ZW5ydW5bM107CiAg ICAgICAgaW50ZWdlcl90IG1hY2hfZmFjdG9yWzNdOwp9OwoKdHlwZWRlZiBzdHJ1Y3QgaG9zdF9s b2FkX2luZm8gaG9zdF9sb2FkX2luZm9fZGF0YV90Owp0eXBlZGVmIHN0cnVjdCBob3N0X2xvYWRf aW5mbyAqaG9zdF9sb2FkX2luZm9fdDsKI2RlZmluZSBIT1NUX0xPQURfSU5GT19DT1VOVCAoc2l6 ZW9mKGhvc3RfbG9hZF9pbmZvX2RhdGFfdCkvc2l6ZW9mKGludGVnZXJfdCkpCgoKCiNkZWZpbmUg SE9TVF9WTV9JTkZPX0NPVU5UIChzaXplb2Yodm1fc3RhdGlzdGljc19kYXRhX3QpL3NpemVvZihp bnRlZ2VyX3QpKQoKCnN0cnVjdCBob3N0X2NwdV9sb2FkX2luZm8gewogICAgICAgIHVuc2lnbmVk IGxvbmcgY3B1X3RpY2tzWzRdOwp9Owp0eXBlZGVmIHN0cnVjdCBob3N0X2NwdV9sb2FkX2luZm8g aG9zdF9jcHVfbG9hZF9pbmZvX2RhdGFfdDsKdHlwZWRlZiBzdHJ1Y3QgaG9zdF9jcHVfbG9hZF9p bmZvICpob3N0X2NwdV9sb2FkX2luZm9fdDsKI2RlZmluZSBIT1NUX0NQVV9MT0FEX0lORk9fQ09V TlQgKHNpemVvZiAoaG9zdF9jcHVfbG9hZF9pbmZvX2RhdGFfdCkgLyBzaXplb2YgKGludGVnZXJf dCkpCiMgNjcgIi91c3IvaW5jbHVkZS9tYWNoL21hY2hfdHlwZXMuaCIgMiAzIDQKIyAxICIvdXNy L2luY2x1ZGUvbWFjaC9ob3N0X25vdGlmeS5oIiAxIDMgNAojIDMyICIvdXNyL2luY2x1ZGUvbWFj aC9ob3N0X25vdGlmeS5oIiAzIDQKI2RlZmluZSBfTUFDSF9IT1NUX05PVElGWV9IXyAKCiNkZWZp bmUgSE9TVF9OT1RJRllfQ0FMRU5EQVJfQ0hBTkdFIDAKI2RlZmluZSBIT1NUX05PVElGWV9UWVBF X01BWCAwCgojZGVmaW5lIEhPU1RfQ0FMRU5EQVJfQ0hBTkdFRF9SRVBMWUlEIDk1MAojIDY4ICIv dXNyL2luY2x1ZGUvbWFjaC9tYWNoX3R5cGVzLmgiIDIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL21h Y2gvaG9zdF9zcGVjaWFsX3BvcnRzLmgiIDEgMyA0CiMgNTkgIi91c3IvaW5jbHVkZS9tYWNoL2hv c3Rfc3BlY2lhbF9wb3J0cy5oIiAzIDQKI2RlZmluZSBfTUFDSF9IT1NUX1NQRUNJQUxfUE9SVFNf SF8gCgoKCgojZGVmaW5lIEhPU1RfU0VDVVJJVFlfUE9SVCAwCgoKCgojZGVmaW5lIEhPU1RfUE9S VCAxCiNkZWZpbmUgSE9TVF9QUklWX1BPUlQgMgojZGVmaW5lIEhPU1RfSU9fTUFTVEVSX1BPUlQg MwojZGVmaW5lIEhPU1RfTUFYX1NQRUNJQUxfS0VSTkVMX1BPUlQgNwoKCgoKI2RlZmluZSBIT1NU X0RZTkFNSUNfUEFHRVJfUE9SVCAoMSArIEhPU1RfTUFYX1NQRUNJQUxfS0VSTkVMX1BPUlQpCiNk ZWZpbmUgSE9TVF9BVURJVF9DT05UUk9MX1BPUlQgKDIgKyBIT1NUX01BWF9TUEVDSUFMX0tFUk5F TF9QT1JUKQojZGVmaW5lIEhPU1RfVVNFUl9OT1RJRklDQVRJT05fUE9SVCAoMyArIEhPU1RfTUFY X1NQRUNJQUxfS0VSTkVMX1BPUlQpCiNkZWZpbmUgSE9TVF9NQVhfU1BFQ0lBTF9QT1JUICg4ICsg SE9TVF9NQVhfU1BFQ0lBTF9LRVJORUxfUE9SVCkKCgoKCgojZGVmaW5lIEhPU1RfTE9DQUxfTk9E RSAtMQojIDk1ICIvdXNyL2luY2x1ZGUvbWFjaC9ob3N0X3NwZWNpYWxfcG9ydHMuaCIgMyA0CiNk ZWZpbmUgaG9zdF9nZXRfaG9zdF9wb3J0KGhvc3QscG9ydCkgKGhvc3RfZ2V0X3NwZWNpYWxfcG9y dCgoaG9zdCksIEhPU1RfTE9DQUxfTk9ERSwgSE9TVF9QT1JULCAocG9ydCkpKQoKCiNkZWZpbmUg aG9zdF9zZXRfaG9zdF9wb3J0KGhvc3QscG9ydCkgKEtFUk5fSU5WQUxJRF9BUkdVTUVOVCkKCiNk ZWZpbmUgaG9zdF9nZXRfaG9zdF9wcml2X3BvcnQoaG9zdCxwb3J0KSAoaG9zdF9nZXRfc3BlY2lh bF9wb3J0KChob3N0KSwgSE9TVF9MT0NBTF9OT0RFLCBIT1NUX1BSSVZfUE9SVCwgKHBvcnQpKSkK CgojZGVmaW5lIGhvc3Rfc2V0X2hvc3RfcHJpdl9wb3J0KGhvc3QscG9ydCkgKEtFUk5fSU5WQUxJ RF9BUkdVTUVOVCkKCiNkZWZpbmUgaG9zdF9nZXRfaW9fbWFzdGVyX3BvcnQoaG9zdCxwb3J0KSAo aG9zdF9nZXRfc3BlY2lhbF9wb3J0KChob3N0KSwgSE9TVF9MT0NBTF9OT0RFLCBIT1NUX0lPX01B U1RFUl9QT1JULCAocG9ydCkpKQoKCiNkZWZpbmUgaG9zdF9zZXRfaW9fbWFzdGVyX3BvcnQoaG9z dCxwb3J0KSAoS0VSTl9JTlZBTElEX0FSR1VNRU5UKQoKCgoKI2RlZmluZSBob3N0X2dldF9keW5h bWljX3BhZ2VyX3BvcnQoaG9zdCxwb3J0KSAoaG9zdF9nZXRfc3BlY2lhbF9wb3J0KChob3N0KSwg SE9TVF9MT0NBTF9OT0RFLCBIT1NUX0RZTkFNSUNfUEFHRVJfUE9SVCwgKHBvcnQpKSkKCgojZGVm aW5lIGhvc3Rfc2V0X2R5bmFtaWNfcGFnZXJfcG9ydChob3N0LHBvcnQpIChob3N0X3NldF9zcGVj aWFsX3BvcnQoKGhvc3QpLCBIT1NUX0RZTkFNSUNfUEFHRVJfUE9SVCwgKHBvcnQpKSkKCgojZGVm aW5lIGhvc3RfZ2V0X2F1ZGl0X2NvbnRyb2xfcG9ydChob3N0LHBvcnQpIChob3N0X2dldF9zcGVj aWFsX3BvcnQoKGhvc3QpLCBIT1NUX0xPQ0FMX05PREUsIEhPU1RfQVVESVRfQ09OVFJPTF9QT1JU LCAocG9ydCkpKQoKCiNkZWZpbmUgaG9zdF9zZXRfYXVkaXRfY29udHJvbF9wb3J0KGhvc3QscG9y dCkgKGhvc3Rfc2V0X3NwZWNpYWxfcG9ydCgoaG9zdCksIEhPU1RfQVVESVRfQ09OVFJPTF9QT1JU LCAocG9ydCkpKQoKCiNkZWZpbmUgaG9zdF9nZXRfdXNlcl9ub3RpZmljYXRpb25fcG9ydChob3N0 LHBvcnQpIChob3N0X2dldF9zcGVjaWFsX3BvcnQoKGhvc3QpLCBIT1NUX0xPQ0FMX05PREUsIEhP U1RfVVNFUl9OT1RJRklDQVRJT05fUE9SVCwgKHBvcnQpKSkKCgojZGVmaW5lIGhvc3Rfc2V0X3Vz ZXJfbm90aWZpY2F0aW9uX3BvcnQoaG9zdCxwb3J0KSAoaG9zdF9zZXRfc3BlY2lhbF9wb3J0KCho b3N0KSwgSE9TVF9VU0VSX05PVElGSUNBVElPTl9QT1JULCAocG9ydCkpKQojIDY5ICIvdXNyL2lu Y2x1ZGUvbWFjaC9tYWNoX3R5cGVzLmgiIDIgMyA0CgoKIyAxICIvdXNyL2luY2x1ZGUvbWFjaC9t ZW1vcnlfb2JqZWN0X3R5cGVzLmgiIDEgMyA0CiMgNjAgIi91c3IvaW5jbHVkZS9tYWNoL21lbW9y eV9vYmplY3RfdHlwZXMuaCIgMyA0CiNkZWZpbmUgX01BQ0hfTUVNT1JZX09CSkVDVF9UWVBFU19I XyAKCgoKCgoKIyAxICIvdXNyL2luY2x1ZGUvbWFjaC9wb3J0LmgiIDEgMyA0CiMgNjIgIi91c3Iv aW5jbHVkZS9tYWNoL3BvcnQuaCIgMyA0CiNkZWZpbmUgX01BQ0hfUE9SVF9IXyAKIyA5MSAiL3Vz ci9pbmNsdWRlL21hY2gvcG9ydC5oIiAzIDQKdHlwZWRlZiBuYXR1cmFsX3QgcG9ydF9uYW1lX3Q7 CnR5cGVkZWYgcG9ydF9uYW1lX3QgKnBvcnRfbmFtZV9hcnJheV90OwoKCnR5cGVkZWYgcG9ydF9u YW1lX3QgcG9ydF90OwojIDEwNiAiL3Vzci9pbmNsdWRlL21hY2gvcG9ydC5oIiAzIDQKI2RlZmlu ZSBQT1JUX05VTEwgKChwb3J0X3QpIDApCiNkZWZpbmUgUE9SVF9ERUFEICgocG9ydF90KSB+MCkK I2RlZmluZSBQT1JUX1ZBTElEKG5hbWUpICgoKHBvcnRfdCkobmFtZSkgIT0gUE9SVF9OVUxMKSAm JiAoKHBvcnRfdCkobmFtZSkgIT0gUE9SVF9ERUFEKSkKIyAxMTcgIi91c3IvaW5jbHVkZS9tYWNo L3BvcnQuaCIgMyA0CnR5cGVkZWYgcG9ydF90IG1hY2hfcG9ydF90Owp0eXBlZGVmIHBvcnRfdCAq bWFjaF9wb3J0X2FycmF5X3Q7CnR5cGVkZWYgcG9ydF9uYW1lX3QgbWFjaF9wb3J0X25hbWVfdDsK dHlwZWRlZiBtYWNoX3BvcnRfbmFtZV90ICptYWNoX3BvcnRfbmFtZV9hcnJheV90OwoKI2RlZmlu ZSBNQUNIX1BPUlRfTlVMTCAwCiNkZWZpbmUgTUFDSF9QT1JUX0RFQUQgKChtYWNoX3BvcnRfbmFt ZV90KSB+MCkKI2RlZmluZSBNQUNIX1BPUlRfVkFMSUQobmFtZSkgKCgobmFtZSkgIT0gTUFDSF9Q T1JUX05VTEwpICYmICgobmFtZSkgIT0gTUFDSF9QT1JUX0RFQUQpKQojIDE0NSAiL3Vzci9pbmNs dWRlL21hY2gvcG9ydC5oIiAzIDQKI2RlZmluZSBNQUNIX1BPUlRfSU5ERVgobmFtZSkgKChuYW1l KSA+PiA4KQojZGVmaW5lIE1BQ0hfUE9SVF9HRU4obmFtZSkgKCgobmFtZSkgJiAweGZmKSA8PCAy NCkKI2RlZmluZSBNQUNIX1BPUlRfTUFLRShpbmRleCxnZW4pICgoKGluZGV4KSA8PCA4KSB8IChn ZW4pID4+IDI0KQojIDE2NSAiL3Vzci9pbmNsdWRlL21hY2gvcG9ydC5oIiAzIDQKdHlwZWRlZiBu YXR1cmFsX3QgbWFjaF9wb3J0X3JpZ2h0X3Q7CgojZGVmaW5lIE1BQ0hfUE9SVF9SSUdIVF9TRU5E ICgobWFjaF9wb3J0X3JpZ2h0X3QpIDApCiNkZWZpbmUgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUg KChtYWNoX3BvcnRfcmlnaHRfdCkgMSkKI2RlZmluZSBNQUNIX1BPUlRfUklHSFRfU0VORF9PTkNF ICgobWFjaF9wb3J0X3JpZ2h0X3QpIDIpCiNkZWZpbmUgTUFDSF9QT1JUX1JJR0hUX1BPUlRfU0VU ICgobWFjaF9wb3J0X3JpZ2h0X3QpIDMpCiNkZWZpbmUgTUFDSF9QT1JUX1JJR0hUX0RFQURfTkFN RSAoKG1hY2hfcG9ydF9yaWdodF90KSA0KQojZGVmaW5lIE1BQ0hfUE9SVF9SSUdIVF9OVU1CRVIg KChtYWNoX3BvcnRfcmlnaHRfdCkgNSkKCnR5cGVkZWYgbmF0dXJhbF90IG1hY2hfcG9ydF90eXBl X3Q7CnR5cGVkZWYgbWFjaF9wb3J0X3R5cGVfdCAqbWFjaF9wb3J0X3R5cGVfYXJyYXlfdDsKCiNk ZWZpbmUgTUFDSF9QT1JUX1RZUEUocmlnaHQpICgobWFjaF9wb3J0X3R5cGVfdCkoKChtYWNoX3Bv cnRfdHlwZV90KSAxKSA8PCAoKHJpZ2h0KSArICgobWFjaF9wb3J0X3JpZ2h0X3QpIDE2KSkpKQoK CiNkZWZpbmUgTUFDSF9QT1JUX1RZUEVfTk9ORSAoKG1hY2hfcG9ydF90eXBlX3QpIDBMKQojZGVm aW5lIE1BQ0hfUE9SVF9UWVBFX1NFTkQgTUFDSF9QT1JUX1RZUEUoTUFDSF9QT1JUX1JJR0hUX1NF TkQpCiNkZWZpbmUgTUFDSF9QT1JUX1RZUEVfUkVDRUlWRSBNQUNIX1BPUlRfVFlQRShNQUNIX1BP UlRfUklHSFRfUkVDRUlWRSkKI2RlZmluZSBNQUNIX1BPUlRfVFlQRV9TRU5EX09OQ0UgTUFDSF9Q T1JUX1RZUEUoTUFDSF9QT1JUX1JJR0hUX1NFTkRfT05DRSkKI2RlZmluZSBNQUNIX1BPUlRfVFlQ RV9QT1JUX1NFVCBNQUNIX1BPUlRfVFlQRShNQUNIX1BPUlRfUklHSFRfUE9SVF9TRVQpCiNkZWZp bmUgTUFDSF9QT1JUX1RZUEVfREVBRF9OQU1FIE1BQ0hfUE9SVF9UWVBFKE1BQ0hfUE9SVF9SSUdI VF9ERUFEX05BTUUpCgoKCiNkZWZpbmUgTUFDSF9QT1JUX1RZUEVfU0VORF9SRUNFSVZFIChNQUNI X1BPUlRfVFlQRV9TRU5EfE1BQ0hfUE9SVF9UWVBFX1JFQ0VJVkUpCgojZGVmaW5lIE1BQ0hfUE9S VF9UWVBFX1NFTkRfUklHSFRTIChNQUNIX1BPUlRfVFlQRV9TRU5EfE1BQ0hfUE9SVF9UWVBFX1NF TkRfT05DRSkKCiNkZWZpbmUgTUFDSF9QT1JUX1RZUEVfUE9SVF9SSUdIVFMgKE1BQ0hfUE9SVF9U WVBFX1NFTkRfUklHSFRTfE1BQ0hfUE9SVF9UWVBFX1JFQ0VJVkUpCgojZGVmaW5lIE1BQ0hfUE9S VF9UWVBFX1BPUlRfT1JfREVBRCAoTUFDSF9QT1JUX1RZUEVfUE9SVF9SSUdIVFN8TUFDSF9QT1JU X1RZUEVfREVBRF9OQU1FKQoKI2RlZmluZSBNQUNIX1BPUlRfVFlQRV9BTExfUklHSFRTIChNQUNI X1BPUlRfVFlQRV9QT1JUX09SX0RFQUR8TUFDSF9QT1JUX1RZUEVfUE9SVF9TRVQpCgoKCgojZGVm aW5lIE1BQ0hfUE9SVF9UWVBFX0ROUkVRVUVTVCAweDgwMDAwMDAwCgoKCnR5cGVkZWYgbmF0dXJh bF90IG1hY2hfcG9ydF91cmVmc190Owp0eXBlZGVmIGludGVnZXJfdCBtYWNoX3BvcnRfZGVsdGFf dDsKCgoKdHlwZWRlZiBuYXR1cmFsX3QgbWFjaF9wb3J0X3NlcW5vX3Q7CnR5cGVkZWYgbmF0dXJh bF90IG1hY2hfcG9ydF9tc2NvdW50X3Q7CnR5cGVkZWYgbmF0dXJhbF90IG1hY2hfcG9ydF9tc2dj b3VudF90Owp0eXBlZGVmIG5hdHVyYWxfdCBtYWNoX3BvcnRfcmlnaHRzX3Q7CgoKCgojZGVmaW5l IE1BQ0hfUE9SVF9TUklHSFRTX05PTkUgMAojZGVmaW5lIE1BQ0hfUE9SVF9TUklHSFRTX1BSRVNF TlQgMQp0eXBlZGVmIHVuc2lnbmVkIGludCBtYWNoX3BvcnRfc3JpZ2h0c190OwoKdHlwZWRlZiBz dHJ1Y3QgbWFjaF9wb3J0X3N0YXR1cyB7CiAgICAgICAgbWFjaF9wb3J0X25hbWVfdCBtcHNfcHNl dDsKICAgICAgICBtYWNoX3BvcnRfc2Vxbm9fdCBtcHNfc2Vxbm87CiAgICAgICAgbWFjaF9wb3J0 X21zY291bnRfdCBtcHNfbXNjb3VudDsKICAgICAgICBtYWNoX3BvcnRfbXNnY291bnRfdCBtcHNf cWxpbWl0OwogICAgICAgIG1hY2hfcG9ydF9tc2djb3VudF90IG1wc19tc2djb3VudDsKICAgICAg ICBtYWNoX3BvcnRfcmlnaHRzX3QgbXBzX3NvcmlnaHRzOwogICAgICAgIGJvb2xlYW5fdCBtcHNf c3JpZ2h0czsKICAgICAgICBib29sZWFuX3QgbXBzX3BkcmVxdWVzdDsKICAgICAgICBib29sZWFu X3QgbXBzX25zcmVxdWVzdDsKICAgICAgICB1bnNpZ25lZCBpbnQgbXBzX2ZsYWdzOwp9IG1hY2hf cG9ydF9zdGF0dXNfdDsKCiNkZWZpbmUgTUFDSF9QT1JUX1FMSU1JVF9ERUZBVUxUICgobWFjaF9w b3J0X21zZ2NvdW50X3QpIDUpCiNkZWZpbmUgTUFDSF9QT1JUX1FMSU1JVF9NQVggKChtYWNoX3Bv cnRfbXNnY291bnRfdCkgMTYpCgp0eXBlZGVmIHN0cnVjdCBtYWNoX3BvcnRfbGltaXRzIHsKICAg ICAgICBtYWNoX3BvcnRfbXNnY291bnRfdCBtcGxfcWxpbWl0Owp9IG1hY2hfcG9ydF9saW1pdHNf dDsKCnR5cGVkZWYgaW50ZWdlcl90ICptYWNoX3BvcnRfaW5mb190OwoKCnR5cGVkZWYgaW50IG1h Y2hfcG9ydF9mbGF2b3JfdDsKI2RlZmluZSBNQUNIX1BPUlRfTElNSVRTX0lORk8gMQojZGVmaW5l IE1BQ0hfUE9SVF9SRUNFSVZFX1NUQVRVUyAyCiNkZWZpbmUgTUFDSF9QT1JUX0ROUkVRVUVTVFNf U0laRSAzCgojZGVmaW5lIE1BQ0hfUE9SVF9MSU1JVFNfSU5GT19DT1VOVCAoc2l6ZW9mKG1hY2hf cG9ydF9saW1pdHNfdCkvc2l6ZW9mKG5hdHVyYWxfdCkpCgojZGVmaW5lIE1BQ0hfUE9SVF9SRUNF SVZFX1NUQVRVU19DT1VOVCAoc2l6ZW9mKG1hY2hfcG9ydF9zdGF0dXNfdCkvc2l6ZW9mKG5hdHVy YWxfdCkpCgojZGVmaW5lIE1BQ0hfUE9SVF9ETlJFUVVFU1RTX1NJWkVfQ09VTlQgMQoKCgoKCgp0 eXBlZGVmIHN0cnVjdCBtYWNoX3BvcnRfcW9zIHsKICAgICAgICBib29sZWFuX3QgbmFtZToxOwog ICAgICAgIGJvb2xlYW5fdCBwcmVhbGxvYzoxOwogICAgICAgIGJvb2xlYW5fdCBwYWQxOjMwOwog ICAgICAgIG5hdHVyYWxfdCBsZW47Cn0gbWFjaF9wb3J0X3Fvc190OwojIDY4ICIvdXNyL2luY2x1 ZGUvbWFjaC9tZW1vcnlfb2JqZWN0X3R5cGVzLmgiIDIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL21h Y2gvdm1fdHlwZXMuaCIgMSAzIDQKIyAyNyAiL3Vzci9pbmNsdWRlL21hY2gvdm1fdHlwZXMuaCIg MyA0CiNkZWZpbmUgTUFDSF9WTV9UWVBFU19IXyAKCgoKCgoKCnR5cGVkZWYgdm1fb2Zmc2V0X3Qg cG9pbnRlcl90Owp0eXBlZGVmIHZtX29mZnNldF90IHZtX2FkZHJlc3NfdDsKdHlwZWRlZiB1aW50 NjRfdCB2bV9vYmplY3Rfb2Zmc2V0X3Q7CgoKCgoKCgp0eXBlZGVmIHVpbnQ2NF90IGFkZHI2NF90 OwojIDU3ICIvdXNyL2luY2x1ZGUvbWFjaC92bV90eXBlcy5oIiAzIDQKdHlwZWRlZiBnbF91aW50 MzJfdCByZWc2NF90OwoKCgoKCgp0eXBlZGVmIGdsX3VpbnQzMl90IHBwbnVtX3Q7CgoKCnR5cGVk ZWYgbWFjaF9wb3J0X3Qgdm1fbWFwX3Q7CgoKI2RlZmluZSBWTV9NQVBfTlVMTCAoKHZtX21hcF90 KSAwKQoKCgoKCnR5cGVkZWYgbWFjaF9wb3J0X3QgdXBsX3Q7CnR5cGVkZWYgbWFjaF9wb3J0X3Qg dm1fbmFtZWRfZW50cnlfdDsKCgojZGVmaW5lIFVQTF9OVUxMICgodXBsX3QpIDApCiNkZWZpbmUg Vk1fTkFNRURfRU5UUllfTlVMTCAoKHZtX25hbWVkX2VudHJ5X3QpIDApCiMgNjkgIi91c3IvaW5j bHVkZS9tYWNoL21lbW9yeV9vYmplY3RfdHlwZXMuaCIgMiAzIDQKCgoKCiNkZWZpbmUgVk1fNjRf QklUX0RBVEFfT0JKRUNUUyAKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIG1lbW9yeV9vYmpl Y3Rfb2Zmc2V0X3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIG1lbW9yeV9vYmplY3Rfc2l6 ZV90OwoKCgoKCgp0eXBlZGVmIG1hY2hfcG9ydF90IG1lbW9yeV9vYmplY3RfdDsKdHlwZWRlZiBt YWNoX3BvcnRfdCBtZW1vcnlfb2JqZWN0X2NvbnRyb2xfdDsKCgp0eXBlZGVmIG1lbW9yeV9vYmpl Y3RfdCAqbWVtb3J5X29iamVjdF9hcnJheV90OwoKCgoKdHlwZWRlZiBtYWNoX3BvcnRfdCBtZW1v cnlfb2JqZWN0X25hbWVfdDsKCgoKdHlwZWRlZiBtYWNoX3BvcnRfdCBtZW1vcnlfb2JqZWN0X2Rl ZmF1bHRfdDsKCgoKI2RlZmluZSBNRU1PUllfT0JKRUNUX05VTEwgKChtZW1vcnlfb2JqZWN0X3Qp IDApCiNkZWZpbmUgTUVNT1JZX09CSkVDVF9DT05UUk9MX05VTEwgKChtZW1vcnlfb2JqZWN0X2Nv bnRyb2xfdCkgMCkKI2RlZmluZSBNRU1PUllfT0JKRUNUX05BTUVfTlVMTCAoKG1lbW9yeV9vYmpl Y3RfbmFtZV90KSAwKQojZGVmaW5lIE1FTU9SWV9PQkpFQ1RfREVGQVVMVF9OVUxMICgobWVtb3J5 X29iamVjdF9kZWZhdWx0X3QpIDApCgoKdHlwZWRlZiBpbnQgbWVtb3J5X29iamVjdF9jb3B5X3N0 cmF0ZWd5X3Q7CgojZGVmaW5lIE1FTU9SWV9PQkpFQ1RfQ09QWV9OT05FIDAKCiNkZWZpbmUgTUVN T1JZX09CSkVDVF9DT1BZX0NBTEwgMQoKI2RlZmluZSBNRU1PUllfT0JKRUNUX0NPUFlfREVMQVkg MgoKCgojZGVmaW5lIE1FTU9SWV9PQkpFQ1RfQ09QWV9URU1QT1JBUlkgMwoKCgoKI2RlZmluZSBN RU1PUllfT0JKRUNUX0NPUFlfU1lNTUVUUklDIDQKIyAxMzIgIi91c3IvaW5jbHVkZS9tYWNoL21l bW9yeV9vYmplY3RfdHlwZXMuaCIgMyA0CiNkZWZpbmUgTUVNT1JZX09CSkVDVF9DT1BZX0lOVkFM SUQgNQojIDE0MiAiL3Vzci9pbmNsdWRlL21hY2gvbWVtb3J5X29iamVjdF90eXBlcy5oIiAzIDQK dHlwZWRlZiBpbnQgbWVtb3J5X29iamVjdF9yZXR1cm5fdDsKCgojZGVmaW5lIE1FTU9SWV9PQkpF Q1RfUkVUVVJOX05PTkUgMAoKI2RlZmluZSBNRU1PUllfT0JKRUNUX1JFVFVSTl9ESVJUWSAxCgoj ZGVmaW5lIE1FTU9SWV9PQkpFQ1RfUkVUVVJOX0FMTCAyCgojZGVmaW5lIE1FTU9SWV9PQkpFQ1Rf UkVUVVJOX0FOWVRISU5HIDMKCgoKCgoKI2RlZmluZSBNRU1PUllfT0JKRUNUX0RBVEFfRkxVU0gg MHgxCiNkZWZpbmUgTUVNT1JZX09CSkVDVF9EQVRBX05PX0NIQU5HRSAweDIKI2RlZmluZSBNRU1P UllfT0JKRUNUX0RBVEFfUFVSR0UgMHg0CiNkZWZpbmUgTUVNT1JZX09CSkVDVF9DT1BZX1NZTkMg MHg4CiNkZWZpbmUgTUVNT1JZX09CSkVDVF9EQVRBX1NZTkMgMHgxMAoKCgoKCiNkZWZpbmUgTUVN T1JZX09CSkVDVF9JTkZPX01BWCAoMTAyNCkKdHlwZWRlZiBpbnQgKm1lbW9yeV9vYmplY3RfaW5m b190Owp0eXBlZGVmIGludCBtZW1vcnlfb2JqZWN0X2ZsYXZvcl90Owp0eXBlZGVmIGludCBtZW1v cnlfb2JqZWN0X2luZm9fZGF0YV90WygxMDI0KV07CgoKI2RlZmluZSBNRU1PUllfT0JKRUNUX1BF UkZPUk1BTkNFX0lORk8gMTEKI2RlZmluZSBNRU1PUllfT0JKRUNUX0FUVFJJQlVURV9JTkZPIDE0 CiNkZWZpbmUgTUVNT1JZX09CSkVDVF9CRUhBVklPUl9JTkZPIDE1CgoKI2RlZmluZSBPTERfTUVN T1JZX09CSkVDVF9CRUhBVklPUl9JTkZPIDEwCiNkZWZpbmUgT0xEX01FTU9SWV9PQkpFQ1RfQVRU UklCVVRFX0lORk8gMTIKCnN0cnVjdCBvbGRfbWVtb3J5X29iamVjdF9iZWhhdmVfaW5mbyB7CiAg ICAgICAgbWVtb3J5X29iamVjdF9jb3B5X3N0cmF0ZWd5X3QgY29weV9zdHJhdGVneTsKICAgICAg ICBib29sZWFuX3QgdGVtcG9yYXJ5OwogICAgICAgIGJvb2xlYW5fdCBpbnZhbGlkYXRlOwp9OwoK c3RydWN0IG9sZF9tZW1vcnlfb2JqZWN0X2F0dHJfaW5mbyB7CiAgICAgICAgYm9vbGVhbl90IG9i amVjdF9yZWFkeTsKICAgICAgICBib29sZWFuX3QgbWF5X2NhY2hlOwogICAgICAgIG1lbW9yeV9v YmplY3RfY29weV9zdHJhdGVneV90IGNvcHlfc3RyYXRlZ3k7Cn07Cgp0eXBlZGVmIHN0cnVjdCBv bGRfbWVtb3J5X29iamVjdF9iZWhhdmVfaW5mbyAqb2xkX21lbW9yeV9vYmplY3RfYmVoYXZlX2lu Zm9fdDsKdHlwZWRlZiBzdHJ1Y3Qgb2xkX21lbW9yeV9vYmplY3RfYmVoYXZlX2luZm8gb2xkX21l bW9yeV9vYmplY3RfYmVoYXZlX2luZm9fZGF0YV90Owp0eXBlZGVmIHN0cnVjdCBvbGRfbWVtb3J5 X29iamVjdF9hdHRyX2luZm8gKm9sZF9tZW1vcnlfb2JqZWN0X2F0dHJfaW5mb190Owp0eXBlZGVm IHN0cnVjdCBvbGRfbWVtb3J5X29iamVjdF9hdHRyX2luZm8gb2xkX21lbW9yeV9vYmplY3RfYXR0 cl9pbmZvX2RhdGFfdDsKCiNkZWZpbmUgT0xEX01FTU9SWV9PQkpFQ1RfQkVIQVZFX0lORk9fQ09V TlQgKHNpemVvZihvbGRfbWVtb3J5X29iamVjdF9iZWhhdmVfaW5mb19kYXRhX3QpL3NpemVvZihp bnQpKQoKI2RlZmluZSBPTERfTUVNT1JZX09CSkVDVF9BVFRSX0lORk9fQ09VTlQgKHNpemVvZihv bGRfbWVtb3J5X29iamVjdF9hdHRyX2luZm9fZGF0YV90KS9zaXplb2YoaW50KSkKCgoKc3RydWN0 IG1lbW9yeV9vYmplY3RfcGVyZl9pbmZvIHsKICAgICAgICB2bV9zaXplX3QgY2x1c3Rlcl9zaXpl OwogICAgICAgIGJvb2xlYW5fdCBtYXlfY2FjaGU7Cn07CgpzdHJ1Y3QgbWVtb3J5X29iamVjdF9h dHRyX2luZm8gewogICAgICAgIG1lbW9yeV9vYmplY3RfY29weV9zdHJhdGVneV90IGNvcHlfc3Ry YXRlZ3k7CiAgICAgICAgdm1fb2Zmc2V0X3QgY2x1c3Rlcl9zaXplOwogICAgICAgIGJvb2xlYW5f dCBtYXlfY2FjaGVfb2JqZWN0OwogICAgICAgIGJvb2xlYW5fdCB0ZW1wb3Jhcnk7Cn07CgpzdHJ1 Y3QgbWVtb3J5X29iamVjdF9iZWhhdmVfaW5mbyB7CiAgICAgICAgbWVtb3J5X29iamVjdF9jb3B5 X3N0cmF0ZWd5X3QgY29weV9zdHJhdGVneTsKICAgICAgICBib29sZWFuX3QgdGVtcG9yYXJ5Owog ICAgICAgIGJvb2xlYW5fdCBpbnZhbGlkYXRlOwogICAgICAgIGJvb2xlYW5fdCBzaWxlbnRfb3Zl cndyaXRlOwogICAgICAgIGJvb2xlYW5fdCBhZHZpc29yeV9wYWdlb3V0Owp9OwoKCnR5cGVkZWYg c3RydWN0IG1lbW9yeV9vYmplY3RfYmVoYXZlX2luZm8gKm1lbW9yeV9vYmplY3RfYmVoYXZlX2lu Zm9fdDsKdHlwZWRlZiBzdHJ1Y3QgbWVtb3J5X29iamVjdF9iZWhhdmVfaW5mbyBtZW1vcnlfb2Jq ZWN0X2JlaGF2ZV9pbmZvX2RhdGFfdDsKCnR5cGVkZWYgc3RydWN0IG1lbW9yeV9vYmplY3RfcGVy Zl9pbmZvICptZW1vcnlfb2JqZWN0X3BlcmZfaW5mb190Owp0eXBlZGVmIHN0cnVjdCBtZW1vcnlf b2JqZWN0X3BlcmZfaW5mbyBtZW1vcnlfb2JqZWN0X3BlcmZfaW5mb19kYXRhX3Q7Cgp0eXBlZGVm IHN0cnVjdCBtZW1vcnlfb2JqZWN0X2F0dHJfaW5mbyAqbWVtb3J5X29iamVjdF9hdHRyX2luZm9f dDsKdHlwZWRlZiBzdHJ1Y3QgbWVtb3J5X29iamVjdF9hdHRyX2luZm8gbWVtb3J5X29iamVjdF9h dHRyX2luZm9fZGF0YV90OwoKI2RlZmluZSBNRU1PUllfT0JKRUNUX0JFSEFWRV9JTkZPX0NPVU5U IChzaXplb2YobWVtb3J5X29iamVjdF9iZWhhdmVfaW5mb19kYXRhX3QpL3NpemVvZihpbnQpKQoK I2RlZmluZSBNRU1PUllfT0JKRUNUX1BFUkZfSU5GT19DT1VOVCAoc2l6ZW9mKG1lbW9yeV9vYmpl Y3RfcGVyZl9pbmZvX2RhdGFfdCkvc2l6ZW9mKGludCkpCgojZGVmaW5lIE1FTU9SWV9PQkpFQ1Rf QVRUUl9JTkZPX0NPVU5UIChzaXplb2YobWVtb3J5X29iamVjdF9hdHRyX2luZm9fZGF0YV90KS9z aXplb2YoaW50KSkKCgojZGVmaW5lIGludmFsaWRfbWVtb3J5X29iamVjdF9mbGF2b3IoZikgKGYg IT0gTUVNT1JZX09CSkVDVF9BVFRSSUJVVEVfSU5GTyAmJiBmICE9IE1FTU9SWV9PQkpFQ1RfUEVS Rk9STUFOQ0VfSU5GTyAmJiBmICE9IE9MRF9NRU1PUllfT0JKRUNUX0JFSEFWSU9SX0lORk8gJiYg ZiAhPSBNRU1PUllfT0JKRUNUX0JFSEFWSU9SX0lORk8gJiYgZiAhPSBPTERfTUVNT1JZX09CSkVD VF9BVFRSSUJVVEVfSU5GTykKIyAyNTMgIi91c3IvaW5jbHVkZS9tYWNoL21lbW9yeV9vYmplY3Rf dHlwZXMuaCIgMyA0CiNkZWZpbmUgTUVNT1JZX09CSkVDVF9URVJNSU5BVEVfSURMRSAweDEKI2Rl ZmluZSBNRU1PUllfT0JKRUNUX1JFU1BFQ1RfQ0FDSEUgMHgyCiNkZWZpbmUgTUVNT1JZX09CSkVD VF9SRUxFQVNFX05PX09QIDB4NAoKCgoKCgojZGVmaW5lIE1BWF9VUExfVFJBTlNGRVIgMjU2Cgpz dHJ1Y3QgdXBsX3BhZ2VfaW5mbyB7CiAgICAgICAgdm1fb2Zmc2V0X3QgcGh5c19hZGRyOwogICAg ICAgIHVuc2lnbmVkIGludAogICAgICAgICAgICAgICAgICAgICAgICBwYWdlb3V0OjEsCiAgICAg ICAgICAgICAgICAgICAgICAgIGFic2VudDoxLAogICAgICAgICAgICAgICAgICAgICAgICBkaXJ0 eToxLAogICAgICAgICAgICAgICAgICAgICAgICBwcmVjaW91czoxLAogICAgICAgICAgICAgICAg ICAgICAgICBkZXZpY2U6MSwKICAgICAgICAgICAgICAgICAgICAgICAgOjA7Cn07Cgp0eXBlZGVm IHN0cnVjdCB1cGxfcGFnZV9pbmZvIHVwbF9wYWdlX2luZm9fdDsKdHlwZWRlZiB1cGxfcGFnZV9p bmZvX3QgKnVwbF9wYWdlX2luZm9fYXJyYXlfdDsKdHlwZWRlZiB1cGxfcGFnZV9pbmZvX2FycmF5 X3QgdXBsX3BhZ2VfbGlzdF9wdHJfdDsKCgoKI2RlZmluZSBNQVBfTUVNX05PT1AgMAojZGVmaW5l IE1BUF9NRU1fQ09QWUJBQ0sgMQojZGVmaW5lIE1BUF9NRU1fSU8gMgojZGVmaW5lIE1BUF9NRU1f V1RIUlUgMwojZGVmaW5lIE1BUF9NRU1fV0NPTUIgNAoKCiNkZWZpbmUgR0VUX01BUF9NRU0oZmxh Z3MpICgoKCh1bnNpZ25lZCBpbnQpKGZsYWdzKSkgPj4gMjQpICYgMHhGRikKCgojZGVmaW5lIFNF VF9NQVBfTUVNKGNhY2hpbmcsZmxhZ3MpICgoZmxhZ3MpID0gKCgoKHVuc2lnbmVkIGludCkoY2Fj aGluZykpIDw8IDI0KSAmIDB4RkYwMDAwMDApIHwgKChmbGFncykgJiAweEZGRkZGRikpOwoKCgoK I2RlZmluZSBNQVBfTUVNX09OTFkgMHgxMDAwMAojZGVmaW5lIE1BUF9NRU1fTkFNRURfQ1JFQVRF IDB4MjAwMDAKCgoKCiNkZWZpbmUgVVBMX0ZMQUdTX05PTkUgMHgwCiNkZWZpbmUgVVBMX0NPUFlP VVRfRlJPTSAweDEKI2RlZmluZSBVUExfUFJFQ0lPVVMgMHgyCiNkZWZpbmUgVVBMX05PX1NZTkMg MHg0CiNkZWZpbmUgVVBMX0NMRUFOX0lOX1BMQUNFIDB4OAojZGVmaW5lIFVQTF9OT0JMT0NLIDB4 MTAKI2RlZmluZSBVUExfUkVUX09OTFlfRElSVFkgMHgyMAojZGVmaW5lIFVQTF9TRVRfSU5URVJO QUwgMHg0MAojZGVmaW5lIFVQTF9RVUVSWV9PQkpFQ1RfVFlQRSAweDgwCiNkZWZpbmUgVVBMX1JF VF9PTkxZX0FCU0VOVCAweDEwMAojZGVmaW5lIFVQTF9GSUxFX0lPIDB4MjAwCiNkZWZpbmUgVVBM X1NFVF9MSVRFIDB4NDAwCiNkZWZpbmUgVVBMX1NFVF9JTlRFUlJVUFRJQkxFIDB4ODAwCiNkZWZp bmUgVVBMX1NFVF9JT19XSVJFIDB4MTAwMAojZGVmaW5lIFVQTF9GT1JfUEFHRU9VVCAweDIwMDAK I2RlZmluZSBVUExfV0lMTF9CRV9EVU1QRUQgMHg0MDAwCgoKCiNkZWZpbmUgVVBMX0FCT1JUX1JF U1RBUlQgMHgxCiNkZWZpbmUgVVBMX0FCT1JUX1VOQVZBSUxBQkxFIDB4MgojZGVmaW5lIFVQTF9B Qk9SVF9FUlJPUiAweDQKI2RlZmluZSBVUExfQUJPUlRfRlJFRV9PTl9FTVBUWSAweDgKI2RlZmlu ZSBVUExfQUJPUlRfRFVNUF9QQUdFUyAweDEwCiNkZWZpbmUgVVBMX0FCT1JUX05PVElGWV9FTVBU WSAweDIwCgoKI2RlZmluZSBVUExfQ0hFQ0tfRElSVFkgMHgxCgoKI2RlZmluZSBVUExfSU9TWU5D IDB4MQojZGVmaW5lIFVQTF9OT0NPTU1JVCAweDIKI2RlZmluZSBVUExfTk9SREFIRUFEIDB4NAoK CiNkZWZpbmUgVVBMX0NPTU1JVF9GUkVFX09OX0VNUFRZIDB4MQojZGVmaW5lIFVQTF9DT01NSVRf Q0xFQVJfRElSVFkgMHgyCiNkZWZpbmUgVVBMX0NPTU1JVF9TRVRfRElSVFkgMHg0CiNkZWZpbmUg VVBMX0NPTU1JVF9JTkFDVElWQVRFIDB4OAojZGVmaW5lIFVQTF9DT01NSVRfTk9USUZZX0VNUFRZ IDB4MTAKCgoKI2RlZmluZSBVUExfREVWX01FTU9SWSAweDEKI2RlZmluZSBVUExfUEhZU19DT05U SUcgMHgyCgoKCgojZGVmaW5lIFVQTF9ERVZJQ0VfUEFHRSh1cGwpICgoKHVwbClbKGluZGV4KV0u cGh5c19hZGRyICE9IDApID8gKCEoKHVwbClbMF0uZGV2aWNlKSkgOiBGQUxTRSkKCgojZGVmaW5l IFVQTF9QQUdFX1BSRVNFTlQodXBsLGluZGV4KSAoKHVwbClbKGluZGV4KV0ucGh5c19hZGRyICE9 IDApCgoKI2RlZmluZSBVUExfUEhZU19QQUdFKHVwbCxpbmRleCkgKCgodXBsKVsoaW5kZXgpXS5w aHlzX2FkZHIgIT0gMCkgPyAoKHVwbClbKGluZGV4KV0ucGh5c19hZGRyKSA6ICh2bV9vZmZzZXRf dClOVUxMKQoKCgojZGVmaW5lIFVQTF9ESVJUWV9QQUdFKHVwbCxpbmRleCkgKCgodXBsKVsoaW5k ZXgpXS5waHlzX2FkZHIgIT0gMCkgPyAoKHVwbClbKGluZGV4KV0uZGlydHkpIDogRkFMU0UpCgoK I2RlZmluZSBVUExfUFJFQ0lPVVNfUEFHRSh1cGwsaW5kZXgpICgoKHVwbClbKGluZGV4KV0ucGh5 c19hZGRyICE9IDApID8gKCh1cGwpWyhpbmRleCldLnByZWNpb3VzKSA6IEZBTFNFKQoKCiNkZWZp bmUgVVBMX1ZBTElEX1BBR0UodXBsLGluZGV4KSAoKCh1cGwpWyhpbmRleCldLnBoeXNfYWRkciAh PSAwKSA/ICghKCh1cGwpWyhpbmRleCldLmFic2VudCkpIDogRkFMU0UpCgoKI2RlZmluZSBVUExf UEFHRU9VVF9QQUdFKHVwbCxpbmRleCkgKCgodXBsKVsoaW5kZXgpXS5waHlzX2FkZHIgIT0gMCkg PyAoKHVwbClbKGluZGV4KV0ucGFnZW91dCkgOiBGQUxTRSkKCgojZGVmaW5lIFVQTF9TRVRfUEFH RV9GUkVFX09OX0NPTU1JVCh1cGwsaW5kZXgpIGlmICgodXBsKVsoaW5kZXgpXS5waHlzX2FkZHIg IT0gMCkgKCh1cGwpWyhpbmRleCldLnBhZ2VvdXQpID0gVFJVRQoKCgojZGVmaW5lIFVQTF9DTFJf UEFHRV9GUkVFX09OX0NPTU1JVCh1cGwsaW5kZXgpIGlmICgodXBsKVsoaW5kZXgpXS5waHlzX2Fk ZHIgIT0gMCkgKCh1cGwpWyhpbmRleCldLnBhZ2VvdXQpID0gRkFMU0UKIyAzODYgIi91c3IvaW5j bHVkZS9tYWNoL21lbW9yeV9vYmplY3RfdHlwZXMuaCIgMyA0CiNkZWZpbmUgVVBMX1BPUF9ESVJU WSAweDEKI2RlZmluZSBVUExfUE9QX1BBR0VPVVQgMHgyCiNkZWZpbmUgVVBMX1BPUF9QUkVDSU9V UyAweDQKI2RlZmluZSBVUExfUE9QX0FCU0VOVCAweDgKI2RlZmluZSBVUExfUE9QX0JVU1kgMHgx MAoKI2RlZmluZSBVUExfUE9QX1BIWVNJQ0FMIDB4MTAwMDAwMDAKI2RlZmluZSBVUExfUE9QX0RV TVAgMHgyMDAwMDAwMAojZGVmaW5lIFVQTF9QT1BfU0VUIDB4NDAwMDAwMDAKI2RlZmluZSBVUExf UE9QX0NMUiAweDgwMDAwMDAwCiMgNDA1ICIvdXNyL2luY2x1ZGUvbWFjaC9tZW1vcnlfb2JqZWN0 X3R5cGVzLmgiIDMgNAojZGVmaW5lIFVQTF9ST1BfQUJTRU5UIDB4MDEKCgoKCiNkZWZpbmUgVVBM X1JPUF9QUkVTRU5UIDB4MDIKCgoKCiNkZWZpbmUgVVBMX1JPUF9EVU1QIDB4MDQKIyA3MiAiL3Vz ci9pbmNsdWRlL21hY2gvbWFjaF90eXBlcy5oIiAyIDMgNAojIDEgIi91c3IvaW5jbHVkZS9tYWNo L2V4Y2VwdGlvbl90eXBlcy5oIiAxIDMgNAojIDU0ICIvdXNyL2luY2x1ZGUvbWFjaC9leGNlcHRp b25fdHlwZXMuaCIgMyA0CiNkZWZpbmUgX01BQ0hfRVhDRVBUSU9OX1RZUEVTX0hfIAoKIyAxICIv dXNyL2luY2x1ZGUvbWFjaC9tYWNoaW5lL2V4Y2VwdGlvbi5oIiAxIDMgNAojIDIzICIvdXNyL2lu Y2x1ZGUvbWFjaC9tYWNoaW5lL2V4Y2VwdGlvbi5oIiAzIDQKI2RlZmluZSBfTUFDSF9NQUNISU5F X0VYQ0VQVElPTl9IXyAKCgoKIyAxICIvdXNyL2luY2x1ZGUvbWFjaC9wcGMvZXhjZXB0aW9uLmgi IDEgMyA0CiMgNDkgIi91c3IvaW5jbHVkZS9tYWNoL3BwYy9leGNlcHRpb24uaCIgMyA0CiNkZWZp bmUgX01BQ0hfUFBDX0VYQ0VQVElPTl9IXyAKCgoKCiNkZWZpbmUgRVhDX1RZUEVTX0NPVU5UIDEw CgojZGVmaW5lIEVYQ0VQVElPTl9DT0RFX01BWCAyCgoKCgojZGVmaW5lIEVYQ19QUENfSU5WQUxJ RF9TWVNDQUxMIDEKI2RlZmluZSBFWENfUFBDX1VOSVBMX0lOU1QgMgojZGVmaW5lIEVYQ19QUENf UFJJVklOU1QgMwojZGVmaW5lIEVYQ19QUENfUFJJVlJFRyA0CiNkZWZpbmUgRVhDX1BQQ19UUkFD RSA1CiNkZWZpbmUgRVhDX1BQQ19QRVJGTU9OIDYKCgoKCgoKI2RlZmluZSBFWENfUFBDX1ZNX1BS T1RfUkVBRCAweDEwMQojZGVmaW5lIEVYQ19QUENfQkFEU1BBQ0UgMHgxMDIKI2RlZmluZSBFWENf UFBDX1VOQUxJR05FRCAweDEwMwoKCgoKCiNkZWZpbmUgRVhDX1BQQ19PVkVSRkxPVyAxCiNkZWZp bmUgRVhDX1BQQ19aRVJPX0RJVklERSAyCiNkZWZpbmUgRVhDX1BQQ19GTFRfSU5FWEFDVCAzCiNk ZWZpbmUgRVhDX1BQQ19GTFRfWkVST19ESVZJREUgNAojZGVmaW5lIEVYQ19QUENfRkxUX1VOREVS RkxPVyA1CiNkZWZpbmUgRVhDX1BQQ19GTFRfT1ZFUkZMT1cgNgojZGVmaW5lIEVYQ19QUENfRkxU X05PVF9BX05VTUJFUiA3CgoKCgoKCiNkZWZpbmUgRVhDX1BQQ19OT0VNVUxBVElPTiA4CiNkZWZp bmUgRVhDX1BQQ19BTFRJVkVDQVNTSVNUIDkKCgoKCgojZGVmaW5lIEVYQ19QUENfVFJBUCAxCiNk ZWZpbmUgRVhDX1BQQ19NSUdSQVRFIDB4MTAxMDAKCgoKCgoKI2RlZmluZSBFWENfUFBDX0JSRUFL UE9JTlQgRVhDX1BQQ19UUkFQCgoKCgojZGVmaW5lIEVYQ19NQVNLX01BQ0hJTkUgMAojIDI4ICIv dXNyL2luY2x1ZGUvbWFjaC9tYWNoaW5lL2V4Y2VwdGlvbi5oIiAyIDMgNAojIDU3ICIvdXNyL2lu Y2x1ZGUvbWFjaC9leGNlcHRpb25fdHlwZXMuaCIgMiAzIDQKCgoKCgoKI2RlZmluZSBFWENfQkFE X0FDQ0VTUyAxCgoKCiNkZWZpbmUgRVhDX0JBRF9JTlNUUlVDVElPTiAyCgoKI2RlZmluZSBFWENf QVJJVEhNRVRJQyAzCgoKI2RlZmluZSBFWENfRU1VTEFUSU9OIDQKCgoKI2RlZmluZSBFWENfU09G VFdBUkUgNQoKCgoKI2RlZmluZSBFWENfQlJFQUtQT0lOVCA2CgoKI2RlZmluZSBFWENfU1lTQ0FM TCA3CgojZGVmaW5lIEVYQ19NQUNIX1NZU0NBTEwgOAoKI2RlZmluZSBFWENfUlBDX0FMRVJUIDkK CgoKCgojZGVmaW5lIEVYQ0VQVElPTl9ERUZBVUxUIDEKCgoKI2RlZmluZSBFWENFUFRJT05fU1RB VEUgMgoKCgoKI2RlZmluZSBFWENFUFRJT05fU1RBVEVfSURFTlRJVFkgMwojIDExNCAiL3Vzci9p bmNsdWRlL21hY2gvZXhjZXB0aW9uX3R5cGVzLmgiIDMgNAojZGVmaW5lIEVYQ19NQVNLX0JBRF9B Q0NFU1MgKDEgPDwgRVhDX0JBRF9BQ0NFU1MpCiNkZWZpbmUgRVhDX01BU0tfQkFEX0lOU1RSVUNU SU9OICgxIDw8IEVYQ19CQURfSU5TVFJVQ1RJT04pCiNkZWZpbmUgRVhDX01BU0tfQVJJVEhNRVRJ QyAoMSA8PCBFWENfQVJJVEhNRVRJQykKI2RlZmluZSBFWENfTUFTS19FTVVMQVRJT04gKDEgPDwg RVhDX0VNVUxBVElPTikKI2RlZmluZSBFWENfTUFTS19TT0ZUV0FSRSAoMSA8PCBFWENfU09GVFdB UkUpCiNkZWZpbmUgRVhDX01BU0tfQlJFQUtQT0lOVCAoMSA8PCBFWENfQlJFQUtQT0lOVCkKI2Rl ZmluZSBFWENfTUFTS19TWVNDQUxMICgxIDw8IEVYQ19TWVNDQUxMKQojZGVmaW5lIEVYQ19NQVNL X01BQ0hfU1lTQ0FMTCAoMSA8PCBFWENfTUFDSF9TWVNDQUxMKQojZGVmaW5lIEVYQ19NQVNLX1JQ Q19BTEVSVCAoMSA8PCBFWENfUlBDX0FMRVJUKQoKI2RlZmluZSBFWENfTUFTS19BTEwgKEVYQ19N QVNLX0JBRF9BQ0NFU1MgfCBFWENfTUFTS19CQURfSU5TVFJVQ1RJT04gfCBFWENfTUFTS19BUklU SE1FVElDIHwgRVhDX01BU0tfRU1VTEFUSU9OIHwgRVhDX01BU0tfU09GVFdBUkUgfCBFWENfTUFT S19CUkVBS1BPSU5UIHwgRVhDX01BU0tfU1lTQ0FMTCB8IEVYQ19NQVNLX01BQ0hfU1lTQ0FMTCB8 IEVYQ19NQVNLX1JQQ19BTEVSVCB8IEVYQ19NQVNLX01BQ0hJTkUpCiMgMTM2ICIvdXNyL2luY2x1 ZGUvbWFjaC9leGNlcHRpb25fdHlwZXMuaCIgMyA0CiNkZWZpbmUgRklSU1RfRVhDRVBUSU9OIDEK CgoKCgoKI2RlZmluZSBFWENfU09GVF9TSUdOQUwgMHgxMDAwMwoKCgojIDEgIi91c3IvaW5jbHVk ZS9tYWNoL3RocmVhZF9zdGF0dXMuaCIgMSAzIDQKIyA2MyAiL3Vzci9pbmNsdWRlL21hY2gvdGhy ZWFkX3N0YXR1cy5oIiAzIDQKI2RlZmluZSBUSFJFQURfU1RBVFVTX0hfIAoKCgoKCgojIDEgIi91 c3IvaW5jbHVkZS9tYWNoL21hY2hpbmUvdGhyZWFkX3N0YXR1cy5oIiAxIDMgNAojIDIzICIvdXNy L2luY2x1ZGUvbWFjaC9tYWNoaW5lL3RocmVhZF9zdGF0dXMuaCIgMyA0CiNkZWZpbmUgX01BQ0hf TUFDSElORV9USFJFQURfU1RBVFVTX0hfIAoKCgojIDEgIi91c3IvaW5jbHVkZS9tYWNoL3BwYy90 aHJlYWRfc3RhdHVzLmgiIDEgMyA0CiMgMjcgIi91c3IvaW5jbHVkZS9tYWNoL3BwYy90aHJlYWRf c3RhdHVzLmgiIDMgNAojZGVmaW5lIF9NQUNIX1BQQ19USFJFQURfU1RBVFVTX0hfIAojIDQwICIv dXNyL2luY2x1ZGUvbWFjaC9wcGMvdGhyZWFkX3N0YXR1cy5oIiAzIDQKI2RlZmluZSBQUENfVEhS RUFEX1NUQVRFIDEKI2RlZmluZSBQUENfRkxPQVRfU1RBVEUgMgojZGVmaW5lIFBQQ19FWENFUFRJ T05fU1RBVEUgMwojZGVmaW5lIFBQQ19WRUNUT1JfU1RBVEUgNAojZGVmaW5lIFBQQ19USFJFQURf U1RBVEU2NCA1CiNkZWZpbmUgUFBDX0VYQ0VQVElPTl9TVEFURTY0IDYKI2RlZmluZSBUSFJFQURf U1RBVEVfTk9ORSA3CiMgNTUgIi91c3IvaW5jbHVkZS9tYWNoL3BwYy90aHJlYWRfc3RhdHVzLmgi IDMgNAojZGVmaW5lIFZBTElEX1RIUkVBRF9TVEFURV9GTEFWT1IoeCkgKCh4ID09IFBQQ19USFJF QURfU1RBVEUpIHx8ICh4ID09IFBQQ19GTE9BVF9TVEFURSkgfHwgKHggPT0gUFBDX0VYQ0VQVElP Tl9TVEFURSkgfHwgKHggPT0gUFBDX1ZFQ1RPUl9TVEFURSkgfHwgKHggPT0gUFBDX1RIUkVBRF9T VEFURTY0KSB8fCAoeCA9PSBQUENfRVhDRVBUSU9OX1NUQVRFNjQpIHx8ICh4ID09IFRIUkVBRF9T VEFURV9OT05FKSkKIyA2NCAiL3Vzci9pbmNsdWRlL21hY2gvcHBjL3RocmVhZF9zdGF0dXMuaCIg MyA0CnR5cGVkZWYgc3RydWN0IHBwY190aHJlYWRfc3RhdGUgewogICAgICAgIHVuc2lnbmVkIGlu dCBzcnIwOwogICAgICAgIHVuc2lnbmVkIGludCBzcnIxOwogICAgICAgIHVuc2lnbmVkIGludCBy MDsKICAgICAgICB1bnNpZ25lZCBpbnQgcjE7CiAgICAgICAgdW5zaWduZWQgaW50IHIyOwogICAg ICAgIHVuc2lnbmVkIGludCByMzsKICAgICAgICB1bnNpZ25lZCBpbnQgcjQ7CiAgICAgICAgdW5z aWduZWQgaW50IHI1OwogICAgICAgIHVuc2lnbmVkIGludCByNjsKICAgICAgICB1bnNpZ25lZCBp bnQgcjc7CiAgICAgICAgdW5zaWduZWQgaW50IHI4OwogICAgICAgIHVuc2lnbmVkIGludCByOTsK ICAgICAgICB1bnNpZ25lZCBpbnQgcjEwOwogICAgICAgIHVuc2lnbmVkIGludCByMTE7CiAgICAg ICAgdW5zaWduZWQgaW50IHIxMjsKICAgICAgICB1bnNpZ25lZCBpbnQgcjEzOwogICAgICAgIHVu c2lnbmVkIGludCByMTQ7CiAgICAgICAgdW5zaWduZWQgaW50IHIxNTsKICAgICAgICB1bnNpZ25l ZCBpbnQgcjE2OwogICAgICAgIHVuc2lnbmVkIGludCByMTc7CiAgICAgICAgdW5zaWduZWQgaW50 IHIxODsKICAgICAgICB1bnNpZ25lZCBpbnQgcjE5OwogICAgICAgIHVuc2lnbmVkIGludCByMjA7 CiAgICAgICAgdW5zaWduZWQgaW50IHIyMTsKICAgICAgICB1bnNpZ25lZCBpbnQgcjIyOwogICAg ICAgIHVuc2lnbmVkIGludCByMjM7CiAgICAgICAgdW5zaWduZWQgaW50IHIyNDsKICAgICAgICB1 bnNpZ25lZCBpbnQgcjI1OwogICAgICAgIHVuc2lnbmVkIGludCByMjY7CiAgICAgICAgdW5zaWdu ZWQgaW50IHIyNzsKICAgICAgICB1bnNpZ25lZCBpbnQgcjI4OwogICAgICAgIHVuc2lnbmVkIGlu dCByMjk7CiAgICAgICAgdW5zaWduZWQgaW50IHIzMDsKICAgICAgICB1bnNpZ25lZCBpbnQgcjMx OwoKICAgICAgICB1bnNpZ25lZCBpbnQgY3I7CiAgICAgICAgdW5zaWduZWQgaW50IHhlcjsKICAg ICAgICB1bnNpZ25lZCBpbnQgbHI7CiAgICAgICAgdW5zaWduZWQgaW50IGN0cjsKICAgICAgICB1 bnNpZ25lZCBpbnQgbXE7CgogICAgICAgIHVuc2lnbmVkIGludCB2cnNhdmU7Cn0gcHBjX3RocmVh ZF9zdGF0ZV90OwoKI3ByYWdtYSBwYWNrKDQpIAp0eXBlZGVmIHN0cnVjdCBwcGNfdGhyZWFkX3N0 YXRlNjQgewogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBzcnIwOwogICAgICAgIHVuc2lnbmVk IGxvbmcgbG9uZyBzcnIxOwogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByMDsKICAgICAgICB1 bnNpZ25lZCBsb25nIGxvbmcgcjE7CiAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHIyOwogICAg ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByMzsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgcjQ7 CiAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHI1OwogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9u ZyByNjsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgcjc7CiAgICAgICAgdW5zaWduZWQgbG9u ZyBsb25nIHI4OwogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByOTsKICAgICAgICB1bnNpZ25l ZCBsb25nIGxvbmcgcjEwOwogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByMTE7CiAgICAgICAg dW5zaWduZWQgbG9uZyBsb25nIHIxMjsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgcjEzOwog ICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByMTQ7CiAgICAgICAgdW5zaWduZWQgbG9uZyBsb25n IHIxNTsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgcjE2OwogICAgICAgIHVuc2lnbmVkIGxv bmcgbG9uZyByMTc7CiAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHIxODsKICAgICAgICB1bnNp Z25lZCBsb25nIGxvbmcgcjE5OwogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByMjA7CiAgICAg ICAgdW5zaWduZWQgbG9uZyBsb25nIHIyMTsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgcjIy OwogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByMjM7CiAgICAgICAgdW5zaWduZWQgbG9uZyBs b25nIHIyNDsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgcjI1OwogICAgICAgIHVuc2lnbmVk IGxvbmcgbG9uZyByMjY7CiAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHIyNzsKICAgICAgICB1 bnNpZ25lZCBsb25nIGxvbmcgcjI4OwogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByMjk7CiAg ICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHIzMDsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcg cjMxOwoKICAgICAgICB1bnNpZ25lZCBpbnQgY3I7CiAgICAgICAgdW5zaWduZWQgbG9uZyBsb25n IHhlcjsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbHI7CiAgICAgICAgdW5zaWduZWQgbG9u ZyBsb25nIGN0cjsKCiAgICAgICAgdW5zaWduZWQgaW50IHZyc2F2ZTsKfSBwcGNfdGhyZWFkX3N0 YXRlNjRfdDsKI3ByYWdtYSBwYWNrKCkKCgoKdHlwZWRlZiBzdHJ1Y3QgcHBjX2Zsb2F0X3N0YXRl IHsKICAgICAgICBkb3VibGUgZnByZWdzWzMyXTsKCiAgICAgICAgdW5zaWduZWQgaW50IGZwc2Ny X3BhZDsKICAgICAgICB1bnNpZ25lZCBpbnQgZnBzY3I7Cn0gcHBjX2Zsb2F0X3N0YXRlX3Q7Cgp0 eXBlZGVmIHN0cnVjdCBwcGNfdmVjdG9yX3N0YXRlIHsKICAgICAgICB1bnNpZ25lZCBsb25nIHNh dmVfdnJbMzJdWzRdOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc2F2ZV92c2NyWzRdOwogICAgICAg IHVuc2lnbmVkIGludCBzYXZlX3BhZDVbNF07CiAgICAgICAgdW5zaWduZWQgaW50IHNhdmVfdnJ2 YWxpZDsKICAgICAgICB1bnNpZ25lZCBpbnQgc2F2ZV9wYWQ2WzddOwp9IHBwY192ZWN0b3Jfc3Rh dGVfdDsKIyAxODIgIi91c3IvaW5jbHVkZS9tYWNoL3BwYy90aHJlYWRfc3RhdHVzLmgiIDMgNAp0 eXBlZGVmIHN0cnVjdCBwcGNfdGhyZWFkX3N0YXRlIHBwY19zYXZlZF9zdGF0ZV90OwojIDE5OCAi L3Vzci9pbmNsdWRlL21hY2gvcHBjL3RocmVhZF9zdGF0dXMuaCIgMyA0CnR5cGVkZWYgc3RydWN0 IHBwY19leGNlcHRpb25fc3RhdGUgewogICAgICAgIHVuc2lnbmVkIGxvbmcgZGFyOwogICAgICAg IHVuc2lnbmVkIGxvbmcgZHNpc3I7CiAgICAgICAgdW5zaWduZWQgbG9uZyBleGNlcHRpb247CiAg ICAgICAgdW5zaWduZWQgbG9uZyBwYWQwOwoKICAgICAgICB1bnNpZ25lZCBsb25nIHBhZDFbNF07 Cn0gcHBjX2V4Y2VwdGlvbl9zdGF0ZV90OwoKI3ByYWdtYSBwYWNrKDQpIAp0eXBlZGVmIHN0cnVj dCBwcGNfZXhjZXB0aW9uX3N0YXRlNjQgewogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBkYXI7 CiAgICAgICAgdW5zaWduZWQgbG9uZyBkc2lzcjsKICAgICAgICB1bnNpZ25lZCBsb25nIGV4Y2Vw dGlvbjsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBwYWQxWzRdOwp9IHBwY19leGNlcHRpb25fc3Rh dGU2NF90OwojcHJhZ21hIHBhY2soKQoKCgoKCiNkZWZpbmUgUFBDX1RIUkVBRF9TVEFURV9DT1VO VCAoc2l6ZW9mKHN0cnVjdCBwcGNfdGhyZWFkX3N0YXRlKSAvIHNpemVvZihpbnQpKQoKCiNkZWZp bmUgUFBDX1RIUkVBRF9TVEFURTY0X0NPVU5UIChzaXplb2Yoc3RydWN0IHBwY190aHJlYWRfc3Rh dGU2NCkgLyBzaXplb2YoaW50KSkKCgojZGVmaW5lIFBQQ19FWENFUFRJT05fU1RBVEVfQ09VTlQg KHNpemVvZihzdHJ1Y3QgcHBjX2V4Y2VwdGlvbl9zdGF0ZSkgLyBzaXplb2YoaW50KSkKCgojZGVm aW5lIFBQQ19FWENFUFRJT05fU1RBVEU2NF9DT1VOVCAoc2l6ZW9mKHN0cnVjdCBwcGNfZXhjZXB0 aW9uX3N0YXRlNjQpIC8gc2l6ZW9mKGludCkpCgoKI2RlZmluZSBQUENfRkxPQVRfU1RBVEVfQ09V TlQgKHNpemVvZihzdHJ1Y3QgcHBjX2Zsb2F0X3N0YXRlKSAvIHNpemVvZihpbnQpKQoKCiNkZWZp bmUgUFBDX1ZFQ1RPUl9TVEFURV9DT1VOVCAoc2l6ZW9mKHN0cnVjdCBwcGNfdmVjdG9yX3N0YXRl KSAvIHNpemVvZihpbnQpKQoKCgoKCgojZGVmaW5lIE1BQ0hJTkVfVEhSRUFEX1NUQVRFIFBQQ19U SFJFQURfU1RBVEUKI2RlZmluZSBNQUNISU5FX1RIUkVBRF9TVEFURV9DT1VOVCBQUENfVEhSRUFE X1NUQVRFX0NPVU5UCgoKCgojZGVmaW5lIFRIUkVBRF9NQUNISU5FX1NUQVRFX01BWCBUSFJFQURf U1RBVEVfTUFYCiMgMjggIi91c3IvaW5jbHVkZS9tYWNoL21hY2hpbmUvdGhyZWFkX3N0YXR1cy5o IiAyIDMgNAojIDcxICIvdXNyL2luY2x1ZGUvbWFjaC90aHJlYWRfc3RhdHVzLmgiIDIgMyA0CiMg MSAiL3Vzci9pbmNsdWRlL21hY2gvbWFjaGluZS90aHJlYWRfc3RhdGUuaCIgMSAzIDQKIyAyMyAi L3Vzci9pbmNsdWRlL21hY2gvbWFjaGluZS90aHJlYWRfc3RhdGUuaCIgMyA0CiNkZWZpbmUgX01B Q0hfTUFDSElORV9USFJFQURfU1RBVEVfSF8gCgoKCiMgMSAiL3Vzci9pbmNsdWRlL21hY2gvcHBj L3RocmVhZF9zdGF0ZS5oIiAxIDMgNAojIDI2ICIvdXNyL2luY2x1ZGUvbWFjaC9wcGMvdGhyZWFk X3N0YXRlLmgiIDMgNAojZGVmaW5lIF9NQUNIX1BQQ19USFJFQURfU1RBVEVfSF8gCgoKI2RlZmlu ZSBQUENfVEhSRUFEX1NUQVRFX01BWCAoMTQ0KQoKCiNkZWZpbmUgVEhSRUFEX1NUQVRFX01BWCBQ UENfVEhSRUFEX1NUQVRFX01BWAojIDI4ICIvdXNyL2luY2x1ZGUvbWFjaC9tYWNoaW5lL3RocmVh ZF9zdGF0ZS5oIiAyIDMgNAojIDcyICIvdXNyL2luY2x1ZGUvbWFjaC90aHJlYWRfc3RhdHVzLmgi IDIgMyA0CgoKCgoKdHlwZWRlZiBuYXR1cmFsX3QgKnRocmVhZF9zdGF0ZV90OwoKCnR5cGVkZWYg aW50IHRocmVhZF9zdGF0ZV9kYXRhX3RbKDE0NCldOwoKI2RlZmluZSBUSFJFQURfU1RBVEVfRkxB Vk9SX0xJU1QgMAoKdHlwZWRlZiBpbnQgdGhyZWFkX3N0YXRlX2ZsYXZvcl90Owp0eXBlZGVmIHRo cmVhZF9zdGF0ZV9mbGF2b3JfdCAqdGhyZWFkX3N0YXRlX2ZsYXZvcl9hcnJheV90OwojIDE0OCAi L3Vzci9pbmNsdWRlL21hY2gvZXhjZXB0aW9uX3R5cGVzLmgiIDIgMyA0CgoKCgoKdHlwZWRlZiBp bnQgZXhjZXB0aW9uX3R5cGVfdDsKdHlwZWRlZiBpbnRlZ2VyX3QgZXhjZXB0aW9uX2RhdGFfdHlw ZV90Owp0eXBlZGVmIGludCBleGNlcHRpb25fYmVoYXZpb3JfdDsKdHlwZWRlZiBpbnRlZ2VyX3Qg KmV4Y2VwdGlvbl9kYXRhX3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IGV4Y2VwdGlvbl9tYXNrX3Q7 CnR5cGVkZWYgZXhjZXB0aW9uX21hc2tfdCAqZXhjZXB0aW9uX21hc2tfYXJyYXlfdDsKdHlwZWRl ZiBleGNlcHRpb25fYmVoYXZpb3JfdCAqZXhjZXB0aW9uX2JlaGF2aW9yX2FycmF5X3Q7CnR5cGVk ZWYgdGhyZWFkX3N0YXRlX2ZsYXZvcl90ICpleGNlcHRpb25fZmxhdm9yX2FycmF5X3Q7CnR5cGVk ZWYgbWFjaF9wb3J0X3QgKmV4Y2VwdGlvbl9wb3J0X2FycmF5X3Q7CiMgNzMgIi91c3IvaW5jbHVk ZS9tYWNoL21hY2hfdHlwZXMuaCIgMiAzIDQKCiMgMSAiL3Vzci9pbmNsdWRlL21hY2gvcHJvY2Vz c29yX2luZm8uaCIgMSAzIDQKIyA2MiAiL3Vzci9pbmNsdWRlL21hY2gvcHJvY2Vzc29yX2luZm8u aCIgMyA0CiNkZWZpbmUgX01BQ0hfUFJPQ0VTU09SX0lORk9fSF8gCgoKIyAxICIvdXNyL2luY2x1 ZGUvbWFjaC9tYWNoaW5lL3Byb2Nlc3Nvcl9pbmZvLmgiIDEgMyA0CiMgMjMgIi91c3IvaW5jbHVk ZS9tYWNoL21hY2hpbmUvcHJvY2Vzc29yX2luZm8uaCIgMyA0CiNkZWZpbmUgX01BQ0hfTUFDSElO RV9QUk9DRVNTT1JfSU5GT19IXyAKCgoKIyAxICIvdXNyL2luY2x1ZGUvbWFjaC9wcGMvcHJvY2Vz c29yX2luZm8uaCIgMSAzIDQKIyAzMCAiL3Vzci9pbmNsdWRlL21hY2gvcHBjL3Byb2Nlc3Nvcl9p bmZvLmgiIDMgNAojZGVmaW5lIF9NQUNIX1BQQ19QUk9DRVNTT1JfSU5GT19IXyAKCgoKCiNkZWZp bmUgUFJPQ0VTU09SX1BNX1NFVF9SRUdTIDEKI2RlZmluZSBQUk9DRVNTT1JfUE1fU0VUX01NQ1Ig MgojZGVmaW5lIFBST0NFU1NPUl9QTV9DTFJfUE1DIDMKCgoKCgp0eXBlZGVmIHVuaW9uIHsKICAg ICAgICB1bnNpZ25lZCBpbnQgd29yZDsKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IGRpcyA6IDE7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZHAgOiAx OwogICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGR1IDogMTsKICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCBkbXMgOiAxOwogICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGRtciA6IDE7 CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQzIDogMTsKICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCByZXNlcnZlZDQgOiAxOwogICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IHJlc2VydmVkNSA6IDI7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQ2 IDogMTsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB0aHJlc2hvbGQgOiA2OwogICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IHJlc2VydmVkNyA6IDE7CiAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgcmVzZXJ2ZWQ4IDogMTsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCByZXNl cnZlZDkgOiAxOwogICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBtYzFzZWxlY3QgOiA3Owog ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBtYzJzZWxlY3QgOiA2OwogICAgICAgIH1iaXRz Owp9bW1jcjBfdDsKCnR5cGVkZWYgdW5pb24gewogICAgICAgIHVuc2lnbmVkIGludCB3b3JkOwog ICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcG1jM3NlbGVjdCA6 IDU7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcG1jNHNlbGVjdCA6IDU7CiAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQgOiAyMjsKICAgICAgICB9Yml0czsKfW1tY3Ix X3Q7Cgp0eXBlZGVmIHVuaW9uIHsKICAgICAgICB1bnNpZ25lZCBpbnQgd29yZDsKICAgICAgICBz dHJ1Y3QgewogICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHRocmVzaG11bHQgOiAxOwogICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IHJlc2VydmVkIDogMzE7CiAgICAgICAgfWJpdHM7Cn1t bWNyMl90OwoKdHlwZWRlZiB1bmlvbiB7CiAgICAgICAgdW5zaWduZWQgaW50IHdvcmQ7CiAgICAg ICAgc3RydWN0IHsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvdiA6IDE7CiAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgY3YgOiAzMTsKICAgICAgICB9Yml0czsKfXBtY25fdDsKCgoK CgpzdHJ1Y3QgcHJvY2Vzc29yX3BtX3JlZ3MgewogICAgICB1bmlvbiB7CiAgICAgICAgbW1jcjBf dCBtbWNyMDsKICAgICAgICBtbWNyMV90IG1tY3IxOwogICAgICAgIG1tY3IyX3QgbW1jcjI7CiAg ICAgIH11OwogICAgICBwbWNuX3QgcG1jWzJdOwp9OwoKdHlwZWRlZiBzdHJ1Y3QgcHJvY2Vzc29y X3BtX3JlZ3MgcHJvY2Vzc29yX3BtX3JlZ3NfZGF0YV90Owp0eXBlZGVmIHN0cnVjdCBwcm9jZXNz b3JfcG1fcmVncyAqcHJvY2Vzc29yX3BtX3JlZ3NfdDsKI2RlZmluZSBQUk9DRVNTT1JfUE1fUkVH U19DT1VOVCAoc2l6ZW9mKHByb2Nlc3Nvcl9wbV9yZWdzX2RhdGFfdCkgLyBzaXplb2YgKHVuc2ln bmVkIGludCkpCgoKI2RlZmluZSBQUk9DRVNTT1JfUE1fUkVHU19DT1VOVF9QT1dFUlBDXzc1MCAo UFJPQ0VTU09SX1BNX1JFR1NfQ09VTlQgKiAyICkKCgojZGVmaW5lIFBST0NFU1NPUl9QTV9SRUdT X0NPVU5UX1BPV0VSUENfNzQwMCAoUFJPQ0VTU09SX1BNX1JFR1NfQ09VTlQgKiAzICkKCgp0eXBl ZGVmIHVuc2lnbmVkIGludCBwcm9jZXNzb3JfdGVtcGVyYXR1cmVfZGF0YV90Owp0eXBlZGVmIHVu c2lnbmVkIGludCAqcHJvY2Vzc29yX3RlbXBlcmF0dXJlX3Q7CgojZGVmaW5lIFBST0NFU1NPUl9U RU1QRVJBVFVSRV9DT1VOVCAxCgp1bmlvbiBwcm9jZXNzb3JfY29udHJvbF9kYXRhIHsKICAgICAg ICBwcm9jZXNzb3JfcG1fcmVnc19kYXRhX3QgY21kX3BtX3JlZ3NbM107Cn07CgpzdHJ1Y3QgcHJv Y2Vzc29yX2NvbnRyb2xfY21kIHsKICAgIGludGVnZXJfdCBjbWRfb3A7CiAgICBjcHVfdHlwZV90 IGNtZF9jcHVfdHlwZTsKICAgIGNwdV9zdWJ0eXBlX3QgY21kX2NwdV9zdWJ0eXBlOwogICAgdW5p b24gcHJvY2Vzc29yX2NvbnRyb2xfZGF0YSB1Owp9OwoKdHlwZWRlZiBzdHJ1Y3QgcHJvY2Vzc29y X2NvbnRyb2xfY21kIHByb2Nlc3Nvcl9jb250cm9sX2NtZF9kYXRhX3Q7CnR5cGVkZWYgc3RydWN0 IHByb2Nlc3Nvcl9jb250cm9sX2NtZCAqcHJvY2Vzc29yX2NvbnRyb2xfY21kX3Q7CiNkZWZpbmUg Y21kX3BtX3JlZ3MgdS5jbWRfcG1fcmVnczsKI2RlZmluZSBjbWRfcG1fY3RscyB1LmNtZF9wbV9j dGxzOwoKI2RlZmluZSBQUk9DRVNTT1JfQ09OVFJPTF9DTURfQ09VTlQgKCgoc2l6ZW9mKHByb2Nl c3Nvcl9jb250cm9sX2NtZF9kYXRhX3QpKSAtIChzaXplb2YodW5pb24gcHJvY2Vzc29yX2NvbnRy b2xfZGF0YSkpKSAvIHNpemVvZiAoaW50ZWdlcl90KSkKCgoKCiNkZWZpbmUgUEVSRk1PTl9NTUNS MCh4KSAoKHgpWzBdLnUubW1jcjAud29yZCkKI2RlZmluZSBQRVJGTU9OX1BNQzEoeCkgKCh4KVsw XS5wbWNbMF0ud29yZCkKI2RlZmluZSBQRVJGTU9OX1BNQzIoeCkgKCh4KVswXS5wbWNbMV0ud29y ZCkKI2RlZmluZSBQRVJGTU9OX01NQ1IxKHgpICgoeClbMV0udS5tbWNyMS53b3JkKQojZGVmaW5l IFBFUkZNT05fUE1DMyh4KSAoKHgpWzFdLnBtY1swXS53b3JkKQojZGVmaW5lIFBFUkZNT05fUE1D NCh4KSAoKHgpWzFdLnBtY1sxXS53b3JkKQojZGVmaW5lIFBFUkZNT05fTU1DUjIoeCkgKCh4KVsy XS51Lm1tY3IyLndvcmQpCgojZGVmaW5lIFBFUkZNT05fRElTKHgpICgoeClbMF0udS5tbWNyMC5i aXRzLmRpcykKI2RlZmluZSBQRVJGTU9OX0RQKHgpICgoeClbMF0udS5tbWNyMC5iaXRzLmRwKQoj ZGVmaW5lIFBFUkZNT05fRFUoeCkgKCh4KVswXS51Lm1tY3IwLmJpdHMuZHUpCiNkZWZpbmUgUEVS Rk1PTl9ETVMoeCkgKCh4KVswXS51Lm1tY3IwLmJpdHMuZG1zKQojZGVmaW5lIFBFUkZNT05fRE1S KHgpICgoeClbMF0udS5tbWNyMC5iaXRzLmRtcikKI2RlZmluZSBQRVJGTU9OX1RIUkVTSE9MRCh4 KSAoKHgpWzBdLnUubW1jcjAuYml0cy50aHJlc2hvbGQpCiNkZWZpbmUgUEVSRk1PTl9QTUMxU0VM RUNUKHgpICgoeClbMF0udS5tbWNyMC5iaXRzLnBtYzFzZWxlY3QpCiNkZWZpbmUgUEVSRk1PTl9Q TUMyU0VMRUNUKHgpICgoeClbMF0udS5tbWNyMC5iaXRzLnBtYzJzZWxlY3QpCiNkZWZpbmUgUEVS Rk1PTl9QTUMzU0VMRUNUKHgpICgoeClbMV0udS5tbWNyMS5iaXRzLnBtYzNzZWxlY3QpCiNkZWZp bmUgUEVSRk1PTl9QTUM0U0VMRUNUKHgpICgoeClbMV0udS5tbWNyMS5iaXRzLnBtYzRzZWxlY3Qp CiNkZWZpbmUgUEVSRk1PTl9USFJFU0hNVUxUKHgpICgoeClbMl0udS5tbWNyMi5iaXRzLnRocmVz aG11bHQpCiNkZWZpbmUgUEVSRk1PTl9QTUMxX0NWKHgpICgoeClbMF0udS5wbWNbMF0uYml0cy5j dikKI2RlZmluZSBQRVJGTU9OX1BNQzJfQ1YoeCkgKCh4KVswXS51LnBtY1sxXS5iaXRzLmN2KQoj ZGVmaW5lIFBFUkZNT05fUE1DM19DVih4KSAoKHgpWzFdLnUucG1jWzBdLmJpdHMuY3YpCiNkZWZp bmUgUEVSRk1PTl9QTUM0X0NWKHgpICgoeClbMV0udS5wbWNbMV0uYml0cy5jdikKIyAyOCAiL3Vz ci9pbmNsdWRlL21hY2gvbWFjaGluZS9wcm9jZXNzb3JfaW5mby5oIiAyIDMgNAojIDY2ICIvdXNy L2luY2x1ZGUvbWFjaC9wcm9jZXNzb3JfaW5mby5oIiAyIDMgNAoKCgoKdHlwZWRlZiBpbnRlZ2Vy X3QgKnByb2Nlc3Nvcl9pbmZvX3Q7CnR5cGVkZWYgaW50ZWdlcl90ICpwcm9jZXNzb3JfaW5mb19h cnJheV90OwoKI2RlZmluZSBQUk9DRVNTT1JfSU5GT19NQVggKDEwMjQpCnR5cGVkZWYgaW50ZWdl cl90IHByb2Nlc3Nvcl9pbmZvX2RhdGFfdFsoMTAyNCldOwoKCnR5cGVkZWYgaW50ZWdlcl90ICpw cm9jZXNzb3Jfc2V0X2luZm9fdDsKCiNkZWZpbmUgUFJPQ0VTU09SX1NFVF9JTkZPX01BWCAoMTAy NCkKdHlwZWRlZiBpbnRlZ2VyX3QgcHJvY2Vzc29yX3NldF9pbmZvX2RhdGFfdFsoMTAyNCldOwoK CgoKdHlwZWRlZiBpbnQgcHJvY2Vzc29yX2ZsYXZvcl90OwojZGVmaW5lIFBST0NFU1NPUl9CQVNJ Q19JTkZPIDEKI2RlZmluZSBQUk9DRVNTT1JfQ1BVX0xPQURfSU5GTyAyCiNkZWZpbmUgUFJPQ0VT U09SX1BNX1JFR1NfSU5GTyAweDEwMDAwMDAxCiNkZWZpbmUgUFJPQ0VTU09SX1RFTVBFUkFUVVJF IDB4MTAwMDAwMDIKCnN0cnVjdCBwcm9jZXNzb3JfYmFzaWNfaW5mbyB7CiAgICAgICAgY3B1X3R5 cGVfdCBjcHVfdHlwZTsKICAgICAgICBjcHVfc3VidHlwZV90IGNwdV9zdWJ0eXBlOwogICAgICAg IGJvb2xlYW5fdCBydW5uaW5nOwogICAgICAgIGludCBzbG90X251bTsKICAgICAgICBib29sZWFu X3QgaXNfbWFzdGVyOwp9OwoKdHlwZWRlZiBzdHJ1Y3QgcHJvY2Vzc29yX2Jhc2ljX2luZm8gcHJv Y2Vzc29yX2Jhc2ljX2luZm9fZGF0YV90Owp0eXBlZGVmIHN0cnVjdCBwcm9jZXNzb3JfYmFzaWNf aW5mbyAqcHJvY2Vzc29yX2Jhc2ljX2luZm9fdDsKI2RlZmluZSBQUk9DRVNTT1JfQkFTSUNfSU5G T19DT1VOVCAoc2l6ZW9mKHByb2Nlc3Nvcl9iYXNpY19pbmZvX2RhdGFfdCkvc2l6ZW9mKG5hdHVy YWxfdCkpCgoKc3RydWN0IHByb2Nlc3Nvcl9jcHVfbG9hZF9pbmZvIHsKICAgICAgICB1bnNpZ25l ZCBsb25nIGNwdV90aWNrc1s0XTsKfTsKCnR5cGVkZWYgc3RydWN0IHByb2Nlc3Nvcl9jcHVfbG9h ZF9pbmZvIHByb2Nlc3Nvcl9jcHVfbG9hZF9pbmZvX2RhdGFfdDsKdHlwZWRlZiBzdHJ1Y3QgcHJv Y2Vzc29yX2NwdV9sb2FkX2luZm8gKnByb2Nlc3Nvcl9jcHVfbG9hZF9pbmZvX3Q7CiNkZWZpbmUg UFJPQ0VTU09SX0NQVV9MT0FEX0lORk9fQ09VTlQgKHNpemVvZihwcm9jZXNzb3JfY3B1X2xvYWRf aW5mb19kYXRhX3QpL3NpemVvZihuYXR1cmFsX3QpKQoKCgoKCiNkZWZpbmUgTE9BRF9TQ0FMRSAx MDAwCgp0eXBlZGVmIGludCBwcm9jZXNzb3Jfc2V0X2ZsYXZvcl90OwojZGVmaW5lIFBST0NFU1NP Ul9TRVRfQkFTSUNfSU5GTyA1CgpzdHJ1Y3QgcHJvY2Vzc29yX3NldF9iYXNpY19pbmZvIHsKICAg ICAgICBpbnQgcHJvY2Vzc29yX2NvdW50OwogICAgICAgIGludCBkZWZhdWx0X3BvbGljeTsKfTsK CnR5cGVkZWYgc3RydWN0IHByb2Nlc3Nvcl9zZXRfYmFzaWNfaW5mbyBwcm9jZXNzb3Jfc2V0X2Jh c2ljX2luZm9fZGF0YV90Owp0eXBlZGVmIHN0cnVjdCBwcm9jZXNzb3Jfc2V0X2Jhc2ljX2luZm8g KnByb2Nlc3Nvcl9zZXRfYmFzaWNfaW5mb190OwojZGVmaW5lIFBST0NFU1NPUl9TRVRfQkFTSUNf SU5GT19DT1VOVCAoc2l6ZW9mKHByb2Nlc3Nvcl9zZXRfYmFzaWNfaW5mb19kYXRhX3QpL3NpemVv ZihuYXR1cmFsX3QpKQoKCiNkZWZpbmUgUFJPQ0VTU09SX1NFVF9MT0FEX0lORk8gNAoKc3RydWN0 IHByb2Nlc3Nvcl9zZXRfbG9hZF9pbmZvIHsKICAgICAgICBpbnQgdGFza19jb3VudDsKICAgICAg ICBpbnQgdGhyZWFkX2NvdW50OwogICAgICAgIGludGVnZXJfdCBsb2FkX2F2ZXJhZ2U7CiAgICAg ICAgaW50ZWdlcl90IG1hY2hfZmFjdG9yOwp9OwoKdHlwZWRlZiBzdHJ1Y3QgcHJvY2Vzc29yX3Nl dF9sb2FkX2luZm8gcHJvY2Vzc29yX3NldF9sb2FkX2luZm9fZGF0YV90Owp0eXBlZGVmIHN0cnVj dCBwcm9jZXNzb3Jfc2V0X2xvYWRfaW5mbyAqcHJvY2Vzc29yX3NldF9sb2FkX2luZm9fdDsKI2Rl ZmluZSBQUk9DRVNTT1JfU0VUX0xPQURfSU5GT19DT1VOVCAoc2l6ZW9mKHByb2Nlc3Nvcl9zZXRf bG9hZF9pbmZvX2RhdGFfdCkvc2l6ZW9mKG5hdHVyYWxfdCkpCgoKCgoKCiNkZWZpbmUgUFJPQ0VT U09SX1NFVF9FTkFCTEVEX1BPTElDSUVTIDMKI2RlZmluZSBQUk9DRVNTT1JfU0VUX0VOQUJMRURf UE9MSUNJRVNfQ09VTlQgKHNpemVvZihwb2xpY3lfdCkvc2l6ZW9mKG5hdHVyYWxfdCkpCgoKI2Rl ZmluZSBQUk9DRVNTT1JfU0VUX1RJTUVTSEFSRV9ERUZBVUxUIDEwCiNkZWZpbmUgUFJPQ0VTU09S X1NFVF9USU1FU0hBUkVfTElNSVRTIDExCgojZGVmaW5lIFBST0NFU1NPUl9TRVRfUlJfREVGQVVM VCAyMAojZGVmaW5lIFBST0NFU1NPUl9TRVRfUlJfTElNSVRTIDIxCgojZGVmaW5lIFBST0NFU1NP Ul9TRVRfRklGT19ERUZBVUxUIDMwCiNkZWZpbmUgUFJPQ0VTU09SX1NFVF9GSUZPX0xJTUlUUyAz MQojIDc1ICIvdXNyL2luY2x1ZGUvbWFjaC9tYWNoX3R5cGVzLmgiIDIgMyA0CiMgMSAiL3Vzci9p bmNsdWRlL21hY2gvdGFza19pbmZvLmgiIDEgMyA0CiMgNjIgIi91c3IvaW5jbHVkZS9tYWNoL3Rh c2tfaW5mby5oIiAzIDQKI2RlZmluZSBUQVNLX0lORk9fSF8gCgoKCiMgMSAiL3Vzci9pbmNsdWRl L21hY2gvcG9saWN5LmgiIDEgMyA0CiMgNTQgIi91c3IvaW5jbHVkZS9tYWNoL3BvbGljeS5oIiAz IDQKI2RlZmluZSBfTUFDSF9QT0xJQ1lfSF8gCiMgNzIgIi91c3IvaW5jbHVkZS9tYWNoL3BvbGlj eS5oIiAzIDQKdHlwZWRlZiBpbnQgcG9saWN5X3Q7CnR5cGVkZWYgaW50ZWdlcl90ICpwb2xpY3lf aW5mb190Owp0eXBlZGVmIGludGVnZXJfdCAqcG9saWN5X2Jhc2VfdDsKdHlwZWRlZiBpbnRlZ2Vy X3QgKnBvbGljeV9saW1pdF90OwojIDg0ICIvdXNyL2luY2x1ZGUvbWFjaC9wb2xpY3kuaCIgMyA0 CiNkZWZpbmUgUE9MSUNZX05VTEwgMAojZGVmaW5lIFBPTElDWV9USU1FU0hBUkUgMQojZGVmaW5l IFBPTElDWV9SUiAyCiNkZWZpbmUgUE9MSUNZX0ZJRk8gNAoKI2RlZmluZSBfX05FV19TQ0hFRFVM SU5HX0ZSQU1FV09SS19fIAoKCgoKI2RlZmluZSBQT0xJQ1lDTEFTU19GSVhFRFBSSSAoUE9MSUNZ X1JSIHwgUE9MSUNZX0ZJRk8pCgoKCgojZGVmaW5lIGludmFsaWRfcG9saWN5KHBvbGljeSkgKChw b2xpY3kpICE9IFBPTElDWV9USU1FU0hBUkUgJiYgKHBvbGljeSkgIT0gUE9MSUNZX1JSICYmIChw b2xpY3kpICE9IFBPTElDWV9GSUZPKQojIDEwOCAiL3Vzci9pbmNsdWRlL21hY2gvcG9saWN5Lmgi IDMgNApzdHJ1Y3QgcG9saWN5X3RpbWVzaGFyZV9iYXNlIHsKICAgICAgICBpbnRlZ2VyX3QgYmFz ZV9wcmlvcml0eTsKfTsKc3RydWN0IHBvbGljeV90aW1lc2hhcmVfbGltaXQgewogICAgICAgIGlu dGVnZXJfdCBtYXhfcHJpb3JpdHk7Cn07CnN0cnVjdCBwb2xpY3lfdGltZXNoYXJlX2luZm8gewog ICAgICAgIGludGVnZXJfdCBtYXhfcHJpb3JpdHk7CiAgICAgICAgaW50ZWdlcl90IGJhc2VfcHJp b3JpdHk7CiAgICAgICAgaW50ZWdlcl90IGN1cl9wcmlvcml0eTsKICAgICAgICBib29sZWFuX3Qg ZGVwcmVzc2VkOwogICAgICAgIGludGVnZXJfdCBkZXByZXNzX3ByaW9yaXR5Owp9OwoKdHlwZWRl ZiBzdHJ1Y3QgcG9saWN5X3RpbWVzaGFyZV9iYXNlICpwb2xpY3lfdGltZXNoYXJlX2Jhc2VfdDsK dHlwZWRlZiBzdHJ1Y3QgcG9saWN5X3RpbWVzaGFyZV9saW1pdCAqcG9saWN5X3RpbWVzaGFyZV9s aW1pdF90Owp0eXBlZGVmIHN0cnVjdCBwb2xpY3lfdGltZXNoYXJlX2luZm8gKnBvbGljeV90aW1l c2hhcmVfaW5mb190OwoKdHlwZWRlZiBzdHJ1Y3QgcG9saWN5X3RpbWVzaGFyZV9iYXNlIHBvbGlj eV90aW1lc2hhcmVfYmFzZV9kYXRhX3Q7CnR5cGVkZWYgc3RydWN0IHBvbGljeV90aW1lc2hhcmVf bGltaXQgcG9saWN5X3RpbWVzaGFyZV9saW1pdF9kYXRhX3Q7CnR5cGVkZWYgc3RydWN0IHBvbGlj eV90aW1lc2hhcmVfaW5mbyBwb2xpY3lfdGltZXNoYXJlX2luZm9fZGF0YV90OwoKCiNkZWZpbmUg UE9MSUNZX1RJTUVTSEFSRV9CQVNFX0NPVU5UIChzaXplb2Yoc3RydWN0IHBvbGljeV90aW1lc2hh cmVfYmFzZSkvc2l6ZW9mKGludGVnZXJfdCkpCgojZGVmaW5lIFBPTElDWV9USU1FU0hBUkVfTElN SVRfQ09VTlQgKHNpemVvZihzdHJ1Y3QgcG9saWN5X3RpbWVzaGFyZV9saW1pdCkvc2l6ZW9mKGlu dGVnZXJfdCkpCgojZGVmaW5lIFBPTElDWV9USU1FU0hBUkVfSU5GT19DT1VOVCAoc2l6ZW9mKHN0 cnVjdCBwb2xpY3lfdGltZXNoYXJlX2luZm8pL3NpemVvZihpbnRlZ2VyX3QpKQoKCgoKCgpzdHJ1 Y3QgcG9saWN5X3JyX2Jhc2UgewogICAgICAgIGludGVnZXJfdCBiYXNlX3ByaW9yaXR5OwogICAg ICAgIGludGVnZXJfdCBxdWFudHVtOwp9OwpzdHJ1Y3QgcG9saWN5X3JyX2xpbWl0IHsKICAgICAg ICBpbnRlZ2VyX3QgbWF4X3ByaW9yaXR5Owp9OwpzdHJ1Y3QgcG9saWN5X3JyX2luZm8gewogICAg ICAgIGludGVnZXJfdCBtYXhfcHJpb3JpdHk7CiAgICAgICAgaW50ZWdlcl90IGJhc2VfcHJpb3Jp dHk7CiAgICAgICAgaW50ZWdlcl90IHF1YW50dW07CiAgICAgICAgYm9vbGVhbl90IGRlcHJlc3Nl ZDsKICAgICAgICBpbnRlZ2VyX3QgZGVwcmVzc19wcmlvcml0eTsKfTsKCnR5cGVkZWYgc3RydWN0 IHBvbGljeV9ycl9iYXNlICpwb2xpY3lfcnJfYmFzZV90Owp0eXBlZGVmIHN0cnVjdCBwb2xpY3lf cnJfbGltaXQgKnBvbGljeV9ycl9saW1pdF90Owp0eXBlZGVmIHN0cnVjdCBwb2xpY3lfcnJfaW5m byAqcG9saWN5X3JyX2luZm9fdDsKCnR5cGVkZWYgc3RydWN0IHBvbGljeV9ycl9iYXNlIHBvbGlj eV9ycl9iYXNlX2RhdGFfdDsKdHlwZWRlZiBzdHJ1Y3QgcG9saWN5X3JyX2xpbWl0IHBvbGljeV9y cl9saW1pdF9kYXRhX3Q7CnR5cGVkZWYgc3RydWN0IHBvbGljeV9ycl9pbmZvIHBvbGljeV9ycl9p bmZvX2RhdGFfdDsKCiNkZWZpbmUgUE9MSUNZX1JSX0JBU0VfQ09VTlQgKHNpemVvZihzdHJ1Y3Qg cG9saWN5X3JyX2Jhc2UpL3NpemVvZihpbnRlZ2VyX3QpKQoKI2RlZmluZSBQT0xJQ1lfUlJfTElN SVRfQ09VTlQgKHNpemVvZihzdHJ1Y3QgcG9saWN5X3JyX2xpbWl0KS9zaXplb2YoaW50ZWdlcl90 KSkKCiNkZWZpbmUgUE9MSUNZX1JSX0lORk9fQ09VTlQgKHNpemVvZihzdHJ1Y3QgcG9saWN5X3Jy X2luZm8pL3NpemVvZihpbnRlZ2VyX3QpKQoKCgoKCgpzdHJ1Y3QgcG9saWN5X2ZpZm9fYmFzZSB7 CiAgICAgICAgaW50ZWdlcl90IGJhc2VfcHJpb3JpdHk7Cn07CnN0cnVjdCBwb2xpY3lfZmlmb19s aW1pdCB7CiAgICAgICAgaW50ZWdlcl90IG1heF9wcmlvcml0eTsKfTsKc3RydWN0IHBvbGljeV9m aWZvX2luZm8gewogICAgICAgIGludGVnZXJfdCBtYXhfcHJpb3JpdHk7CiAgICAgICAgaW50ZWdl cl90IGJhc2VfcHJpb3JpdHk7CiAgICAgICAgYm9vbGVhbl90IGRlcHJlc3NlZDsKICAgICAgICBp bnRlZ2VyX3QgZGVwcmVzc19wcmlvcml0eTsKfTsKCnR5cGVkZWYgc3RydWN0IHBvbGljeV9maWZv X2Jhc2UgKnBvbGljeV9maWZvX2Jhc2VfdDsKdHlwZWRlZiBzdHJ1Y3QgcG9saWN5X2ZpZm9fbGlt aXQgKnBvbGljeV9maWZvX2xpbWl0X3Q7CnR5cGVkZWYgc3RydWN0IHBvbGljeV9maWZvX2luZm8g KnBvbGljeV9maWZvX2luZm9fdDsKCnR5cGVkZWYgc3RydWN0IHBvbGljeV9maWZvX2Jhc2UgcG9s aWN5X2ZpZm9fYmFzZV9kYXRhX3Q7CnR5cGVkZWYgc3RydWN0IHBvbGljeV9maWZvX2xpbWl0IHBv bGljeV9maWZvX2xpbWl0X2RhdGFfdDsKdHlwZWRlZiBzdHJ1Y3QgcG9saWN5X2ZpZm9faW5mbyBw b2xpY3lfZmlmb19pbmZvX2RhdGFfdDsKCiNkZWZpbmUgUE9MSUNZX0ZJRk9fQkFTRV9DT1VOVCAo c2l6ZW9mKHN0cnVjdCBwb2xpY3lfZmlmb19iYXNlKS9zaXplb2YoaW50ZWdlcl90KSkKCiNkZWZp bmUgUE9MSUNZX0ZJRk9fTElNSVRfQ09VTlQgKHNpemVvZihzdHJ1Y3QgcG9saWN5X2ZpZm9fbGlt aXQpL3NpemVvZihpbnRlZ2VyX3QpKQoKI2RlZmluZSBQT0xJQ1lfRklGT19JTkZPX0NPVU5UIChz aXplb2Yoc3RydWN0IHBvbGljeV9maWZvX2luZm8pL3NpemVvZihpbnRlZ2VyX3QpKQoKCgoKCgpz dHJ1Y3QgcG9saWN5X2Jhc2VzIHsKICAgICAgICBwb2xpY3lfdGltZXNoYXJlX2Jhc2VfZGF0YV90 IHRzOwogICAgICAgIHBvbGljeV9ycl9iYXNlX2RhdGFfdCBycjsKICAgICAgICBwb2xpY3lfZmlm b19iYXNlX2RhdGFfdCBmaWZvOwp9OwoKc3RydWN0IHBvbGljeV9saW1pdHMgewogICAgICAgIHBv bGljeV90aW1lc2hhcmVfbGltaXRfZGF0YV90IHRzOwogICAgICAgIHBvbGljeV9ycl9saW1pdF9k YXRhX3QgcnI7CiAgICAgICAgcG9saWN5X2ZpZm9fbGltaXRfZGF0YV90IGZpZm87Cn07CgpzdHJ1 Y3QgcG9saWN5X2luZm9zIHsKICAgICAgICBwb2xpY3lfdGltZXNoYXJlX2luZm9fZGF0YV90IHRz OwogICAgICAgIHBvbGljeV9ycl9pbmZvX2RhdGFfdCBycjsKICAgICAgICBwb2xpY3lfZmlmb19p bmZvX2RhdGFfdCBmaWZvOwp9OwoKdHlwZWRlZiBzdHJ1Y3QgcG9saWN5X2Jhc2VzIHBvbGljeV9i YXNlX2RhdGFfdDsKdHlwZWRlZiBzdHJ1Y3QgcG9saWN5X2xpbWl0cyBwb2xpY3lfbGltaXRfZGF0 YV90Owp0eXBlZGVmIHN0cnVjdCBwb2xpY3lfaW5mb3MgcG9saWN5X2luZm9fZGF0YV90OwojIDY3 ICIvdXNyL2luY2x1ZGUvbWFjaC90YXNrX2luZm8uaCIgMiAzIDQKCgoKCgoKdHlwZWRlZiBuYXR1 cmFsX3QgdGFza19mbGF2b3JfdDsKdHlwZWRlZiBpbnRlZ2VyX3QgKnRhc2tfaW5mb190OwoKI2Rl ZmluZSBUQVNLX0lORk9fTUFYICgxMDI0KQp0eXBlZGVmIGludGVnZXJfdCB0YXNrX2luZm9fZGF0 YV90WygxMDI0KV07CgoKCgoKI2RlZmluZSBUQVNLX0JBU0lDX0lORk8gNAoKc3RydWN0IHRhc2tf YmFzaWNfaW5mbyB7CiAgICAgICAgaW50ZWdlcl90IHN1c3BlbmRfY291bnQ7CiAgICAgICAgdm1f c2l6ZV90IHZpcnR1YWxfc2l6ZTsKICAgICAgICB2bV9zaXplX3QgcmVzaWRlbnRfc2l6ZTsKICAg ICAgICB0aW1lX3ZhbHVlX3QgdXNlcl90aW1lOwoKICAgICAgICB0aW1lX3ZhbHVlX3Qgc3lzdGVt X3RpbWU7CgogICAgICAgIHBvbGljeV90IHBvbGljeTsKfTsKCnR5cGVkZWYgc3RydWN0IHRhc2tf YmFzaWNfaW5mbyB0YXNrX2Jhc2ljX2luZm9fZGF0YV90Owp0eXBlZGVmIHN0cnVjdCB0YXNrX2Jh c2ljX2luZm8gKnRhc2tfYmFzaWNfaW5mb190OwojZGVmaW5lIFRBU0tfQkFTSUNfSU5GT19DT1VO VCAoc2l6ZW9mKHRhc2tfYmFzaWNfaW5mb19kYXRhX3QpIC8gc2l6ZW9mKG5hdHVyYWxfdCkpCgoK CiNkZWZpbmUgVEFTS19FVkVOVFNfSU5GTyAyCgpzdHJ1Y3QgdGFza19ldmVudHNfaW5mbyB7CiAg ICAgICAgaW50ZWdlcl90IGZhdWx0czsKICAgICAgICBpbnRlZ2VyX3QgcGFnZWluczsKICAgICAg ICBpbnRlZ2VyX3QgY293X2ZhdWx0czsKICAgICAgICBpbnRlZ2VyX3QgbWVzc2FnZXNfc2VudDsK ICAgICAgICBpbnRlZ2VyX3QgbWVzc2FnZXNfcmVjZWl2ZWQ7CiAgICAgICAgaW50ZWdlcl90IHN5 c2NhbGxzX21hY2g7CiAgICAgICAgaW50ZWdlcl90IHN5c2NhbGxzX3VuaXg7CiAgICAgICAgaW50 ZWdlcl90IGNzdzsKfTsKdHlwZWRlZiBzdHJ1Y3QgdGFza19ldmVudHNfaW5mbyB0YXNrX2V2ZW50 c19pbmZvX2RhdGFfdDsKdHlwZWRlZiBzdHJ1Y3QgdGFza19ldmVudHNfaW5mbyAqdGFza19ldmVu dHNfaW5mb190OwojZGVmaW5lIFRBU0tfRVZFTlRTX0lORk9fQ09VTlQgKHNpemVvZih0YXNrX2V2 ZW50c19pbmZvX2RhdGFfdCkgLyBzaXplb2YobmF0dXJhbF90KSkKCgojZGVmaW5lIFRBU0tfVEhS RUFEX1RJTUVTX0lORk8gMwoKCnN0cnVjdCB0YXNrX3RocmVhZF90aW1lc19pbmZvIHsKICAgICAg ICB0aW1lX3ZhbHVlX3QgdXNlcl90aW1lOwoKICAgICAgICB0aW1lX3ZhbHVlX3Qgc3lzdGVtX3Rp bWU7Cgp9OwoKdHlwZWRlZiBzdHJ1Y3QgdGFza190aHJlYWRfdGltZXNfaW5mbyB0YXNrX3RocmVh ZF90aW1lc19pbmZvX2RhdGFfdDsKdHlwZWRlZiBzdHJ1Y3QgdGFza190aHJlYWRfdGltZXNfaW5m byAqdGFza190aHJlYWRfdGltZXNfaW5mb190OwojZGVmaW5lIFRBU0tfVEhSRUFEX1RJTUVTX0lO Rk9fQ09VTlQgKHNpemVvZih0YXNrX3RocmVhZF90aW1lc19pbmZvX2RhdGFfdCkgLyBzaXplb2Yo bmF0dXJhbF90KSkKCgoKCiNkZWZpbmUgVEFTS19TQ0hFRF9USU1FU0hBUkVfSU5GTyAxMAojZGVm aW5lIFRBU0tfU0NIRURfUlJfSU5GTyAxMQojZGVmaW5lIFRBU0tfU0NIRURfRklGT19JTkZPIDEy CgojZGVmaW5lIFRBU0tfU0NIRURfSU5GTyAxNAoKCgojZGVmaW5lIFRBU0tfU0VDVVJJVFlfVE9L RU4gMTMKI2RlZmluZSBUQVNLX1NFQ1VSSVRZX1RPS0VOX0NPVU5UIChzaXplb2Yoc2VjdXJpdHlf dG9rZW5fdCkgLyBzaXplb2YobmF0dXJhbF90KSkKCgojZGVmaW5lIFRBU0tfQVVESVRfVE9LRU4g MTUKI2RlZmluZSBUQVNLX0FVRElUX1RPS0VOX0NPVU5UIChzaXplb2YoYXVkaXRfdG9rZW5fdCkg LyBzaXplb2YobmF0dXJhbF90KSkKIyA3NiAiL3Vzci9pbmNsdWRlL21hY2gvbWFjaF90eXBlcy5o IiAyIDMgNAojIDEgIi91c3IvaW5jbHVkZS9tYWNoL3Rhc2tfcG9saWN5LmgiIDEgMyA0CiMgMzUg Ii91c3IvaW5jbHVkZS9tYWNoL3Rhc2tfcG9saWN5LmgiIDMgNAojZGVmaW5lIF9NQUNIX1RBU0tf UE9MSUNZX0hfIAoKIyAxICIvdXNyL2luY2x1ZGUvbWFjaC9tYWNoX3R5cGVzLmgiIDEgMyA0CiMg MzggIi91c3IvaW5jbHVkZS9tYWNoL3Rhc2tfcG9saWN5LmgiIDIgMyA0CiMgNTYgIi91c3IvaW5j bHVkZS9tYWNoL3Rhc2tfcG9saWN5LmgiIDMgNAp0eXBlZGVmIG5hdHVyYWxfdCB0YXNrX3BvbGlj eV9mbGF2b3JfdDsKdHlwZWRlZiBpbnRlZ2VyX3QgKnRhc2tfcG9saWN5X3Q7CiMgMTA5ICIvdXNy L2luY2x1ZGUvbWFjaC90YXNrX3BvbGljeS5oIiAzIDQKI2RlZmluZSBUQVNLX0NBVEVHT1JZX1BP TElDWSAxCgplbnVtIHRhc2tfcm9sZSB7CiAgICAgICAgVEFTS19SRU5JQ0VEID0gLTEsCiAgICAg ICAgVEFTS19VTlNQRUNJRklFRCA9IDAsCiAgICAgICAgVEFTS19GT1JFR1JPVU5EX0FQUExJQ0FU SU9OLAogICAgICAgIFRBU0tfQkFDS0dST1VORF9BUFBMSUNBVElPTiwKICAgICAgICBUQVNLX0NP TlRST0xfQVBQTElDQVRJT04sCiAgICAgICAgVEFTS19HUkFQSElDU19TRVJWRVIKfTsKCnR5cGVk ZWYgZW51bSB0YXNrX3JvbGUgdGFza19yb2xlX3Q7CgpzdHJ1Y3QgdGFza19jYXRlZ29yeV9wb2xp Y3kgewogICAgICAgIHRhc2tfcm9sZV90IHJvbGU7Cn07Cgp0eXBlZGVmIHN0cnVjdCB0YXNrX2Nh dGVnb3J5X3BvbGljeSB0YXNrX2NhdGVnb3J5X3BvbGljeV9kYXRhX3Q7CnR5cGVkZWYgc3RydWN0 IHRhc2tfY2F0ZWdvcnlfcG9saWN5ICp0YXNrX2NhdGVnb3J5X3BvbGljeV90OwoKI2RlZmluZSBU QVNLX0NBVEVHT1JZX1BPTElDWV9DT1VOVCAoc2l6ZW9mICh0YXNrX2NhdGVnb3J5X3BvbGljeV9k YXRhX3QpIC8gc2l6ZW9mIChpbnRlZ2VyX3QpKQojIDc3ICIvdXNyL2luY2x1ZGUvbWFjaC9tYWNo X3R5cGVzLmgiIDIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL21hY2gvdGFza19zcGVjaWFsX3BvcnRz LmgiIDEgMyA0CiMgNjIgIi91c3IvaW5jbHVkZS9tYWNoL3Rhc2tfc3BlY2lhbF9wb3J0cy5oIiAz IDQKI2RlZmluZSBfTUFDSF9UQVNLX1NQRUNJQUxfUE9SVFNfSF8gCgoKCnR5cGVkZWYgaW50IHRh c2tfc3BlY2lhbF9wb3J0X3Q7CgojZGVmaW5lIFRBU0tfS0VSTkVMX1BPUlQgMQoKCiNkZWZpbmUg VEFTS19IT1NUX1BPUlQgMgoKI2RlZmluZSBUQVNLX0JPT1RTVFJBUF9QT1JUIDQKCgoKI2RlZmlu ZSBUQVNLX1dJUkVEX0xFREdFUl9QT1JUIDUKCiNkZWZpbmUgVEFTS19QQUdFRF9MRURHRVJfUE9S VCA2CgojZGVmaW5lIHRhc2tfZ2V0X3dpcmVkX2xlZGdlcl9wb3J0KHRhc2sscG9ydCkgKHRhc2tf Z2V0X3NwZWNpYWxfcG9ydCgodGFzayksIFRBU0tfV0lSRURfTEVER0VSX1BPUlQsIChwb3J0KSkp CgoKI2RlZmluZSB0YXNrX3NldF93aXJlZF9sZWRnZXJfcG9ydCh0YXNrLHBvcnQpICh0YXNrX3Nl dF9zcGVjaWFsX3BvcnQoKHRhc2spLCBUQVNLX1dJUkVEX0xFREdFUl9QT1JULCAocG9ydCkpKQoK CiNkZWZpbmUgdGFza19nZXRfcGFnZWRfbGVkZ2VyX3BvcnQodGFzayxwb3J0KSAodGFza19nZXRf c3BlY2lhbF9wb3J0KCh0YXNrKSwgVEFTS19QQUdFRF9MRURHRVJfUE9SVCwgKHBvcnQpKSkKCgoj ZGVmaW5lIHRhc2tfc2V0X3BhZ2VkX2xlZGdlcl9wb3J0KHRhc2sscG9ydCkgKHRhc2tfc2V0X3Nw ZWNpYWxfcG9ydCgodGFzayksIFRBU0tfUEFHRURfTEVER0VSX1BPUlQsIChwb3J0KSkpCiMgOTkg Ii91c3IvaW5jbHVkZS9tYWNoL3Rhc2tfc3BlY2lhbF9wb3J0cy5oIiAzIDQKI2RlZmluZSB0YXNr X2dldF9rZXJuZWxfcG9ydCh0YXNrLHBvcnQpICh0YXNrX2dldF9zcGVjaWFsX3BvcnQoKHRhc2sp LCBUQVNLX0tFUk5FTF9QT1JULCAocG9ydCkpKQoKCiNkZWZpbmUgdGFza19zZXRfa2VybmVsX3Bv cnQodGFzayxwb3J0KSAodGFza19zZXRfc3BlY2lhbF9wb3J0KCh0YXNrKSwgVEFTS19LRVJORUxf UE9SVCwgKHBvcnQpKSkKCgojZGVmaW5lIHRhc2tfZ2V0X2hvc3RfcG9ydCh0YXNrLHBvcnQpICh0 YXNrX2dldF9zcGVjaWFsX3BvcnQoKHRhc2spLCBUQVNLX0hPU1RfUE9SVCwgKHBvcnQpKSkKCgoj ZGVmaW5lIHRhc2tfc2V0X2hvc3RfcG9ydCh0YXNrLHBvcnQpICh0YXNrX3NldF9zcGVjaWFsX3Bv cnQoKHRhc2spLCBUQVNLX0hPU1RfUE9SVCwgKHBvcnQpKSkKCgojZGVmaW5lIHRhc2tfZ2V0X2Jv b3RzdHJhcF9wb3J0KHRhc2sscG9ydCkgKHRhc2tfZ2V0X3NwZWNpYWxfcG9ydCgodGFzayksIFRB U0tfQk9PVFNUUkFQX1BPUlQsIChwb3J0KSkpCgoKI2RlZmluZSB0YXNrX3NldF9ib290c3RyYXBf cG9ydCh0YXNrLHBvcnQpICh0YXNrX3NldF9zcGVjaWFsX3BvcnQoKHRhc2spLCBUQVNLX0JPT1RT VFJBUF9QT1JULCAocG9ydCkpKQojIDc4ICIvdXNyL2luY2x1ZGUvbWFjaC9tYWNoX3R5cGVzLmgi IDIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL21hY2gvdGhyZWFkX2luZm8uaCIgMSAzIDQKIyA2NCAi L3Vzci9pbmNsdWRlL21hY2gvdGhyZWFkX2luZm8uaCIgMyA0CiNkZWZpbmUgX01BQ0hfVEhSRUFE X0lORk9fSF8gCiMgNzYgIi91c3IvaW5jbHVkZS9tYWNoL3RocmVhZF9pbmZvLmgiIDMgNAp0eXBl ZGVmIG5hdHVyYWxfdCB0aHJlYWRfZmxhdm9yX3Q7CnR5cGVkZWYgaW50ZWdlcl90ICp0aHJlYWRf aW5mb190OwoKI2RlZmluZSBUSFJFQURfSU5GT19NQVggKDEwMjQpCnR5cGVkZWYgaW50ZWdlcl90 IHRocmVhZF9pbmZvX2RhdGFfdFsoMTAyNCldOwoKCgoKI2RlZmluZSBUSFJFQURfQkFTSUNfSU5G TyAzCgpzdHJ1Y3QgdGhyZWFkX2Jhc2ljX2luZm8gewogICAgICAgIHRpbWVfdmFsdWVfdCB1c2Vy X3RpbWU7CiAgICAgICAgdGltZV92YWx1ZV90IHN5c3RlbV90aW1lOwogICAgICAgIGludGVnZXJf dCBjcHVfdXNhZ2U7CiAgICAgICAgcG9saWN5X3QgcG9saWN5OwogICAgICAgIGludGVnZXJfdCBy dW5fc3RhdGU7CiAgICAgICAgaW50ZWdlcl90IGZsYWdzOwogICAgICAgIGludGVnZXJfdCBzdXNw ZW5kX2NvdW50OwogICAgICAgIGludGVnZXJfdCBzbGVlcF90aW1lOwoKfTsKCnR5cGVkZWYgc3Ry dWN0IHRocmVhZF9iYXNpY19pbmZvIHRocmVhZF9iYXNpY19pbmZvX2RhdGFfdDsKdHlwZWRlZiBz dHJ1Y3QgdGhyZWFkX2Jhc2ljX2luZm8gKnRocmVhZF9iYXNpY19pbmZvX3Q7CiNkZWZpbmUgVEhS RUFEX0JBU0lDX0lORk9fQ09VTlQgKHNpemVvZih0aHJlYWRfYmFzaWNfaW5mb19kYXRhX3QpIC8g c2l6ZW9mKG5hdHVyYWxfdCkpCgoKCgoKCiNkZWZpbmUgVEhfVVNBR0VfU0NBTEUgMTAwMAoKCgoK CiNkZWZpbmUgVEhfU1RBVEVfUlVOTklORyAxCiNkZWZpbmUgVEhfU1RBVEVfU1RPUFBFRCAyCiNk ZWZpbmUgVEhfU1RBVEVfV0FJVElORyAzCiNkZWZpbmUgVEhfU1RBVEVfVU5JTlRFUlJVUFRJQkxF IDQKCiNkZWZpbmUgVEhfU1RBVEVfSEFMVEVEIDUKCgoKCgojZGVmaW5lIFRIX0ZMQUdTX1NXQVBQ RUQgMHgxCiNkZWZpbmUgVEhfRkxBR1NfSURMRSAweDIKCgoKI2RlZmluZSBUSFJFQURfU0NIRURf VElNRVNIQVJFX0lORk8gMTAKI2RlZmluZSBUSFJFQURfU0NIRURfUlJfSU5GTyAxMQojZGVmaW5l IFRIUkVBRF9TQ0hFRF9GSUZPX0lORk8gMTIKIyA3OSAiL3Vzci9pbmNsdWRlL21hY2gvbWFjaF90 eXBlcy5oIiAyIDMgNAojIDEgIi91c3IvaW5jbHVkZS9tYWNoL3RocmVhZF9wb2xpY3kuaCIgMSAz IDQKIyAzNSAiL3Vzci9pbmNsdWRlL21hY2gvdGhyZWFkX3BvbGljeS5oIiAzIDQKI2RlZmluZSBf TUFDSF9USFJFQURfUE9MSUNZX0hfIAojIDU2ICIvdXNyL2luY2x1ZGUvbWFjaC90aHJlYWRfcG9s aWN5LmgiIDMgNAp0eXBlZGVmIG5hdHVyYWxfdCB0aHJlYWRfcG9saWN5X2ZsYXZvcl90Owp0eXBl ZGVmIGludGVnZXJfdCAqdGhyZWFkX3BvbGljeV90OwojIDg5ICIvdXNyL2luY2x1ZGUvbWFjaC90 aHJlYWRfcG9saWN5LmgiIDMgNAojZGVmaW5lIFRIUkVBRF9TVEFOREFSRF9QT0xJQ1kgMQoKc3Ry dWN0IHRocmVhZF9zdGFuZGFyZF9wb2xpY3kgewogICAgICAgIG5hdHVyYWxfdCBub19kYXRhOwp9 OwoKdHlwZWRlZiBzdHJ1Y3QgdGhyZWFkX3N0YW5kYXJkX3BvbGljeSB0aHJlYWRfc3RhbmRhcmRf cG9saWN5X2RhdGFfdDsKdHlwZWRlZiBzdHJ1Y3QgdGhyZWFkX3N0YW5kYXJkX3BvbGljeSAqdGhy ZWFkX3N0YW5kYXJkX3BvbGljeV90OwoKI2RlZmluZSBUSFJFQURfU1RBTkRBUkRfUE9MSUNZX0NP VU5UIDAKIyAxMTIgIi91c3IvaW5jbHVkZS9tYWNoL3RocmVhZF9wb2xpY3kuaCIgMyA0CiNkZWZp bmUgVEhSRUFEX0VYVEVOREVEX1BPTElDWSAxCgpzdHJ1Y3QgdGhyZWFkX2V4dGVuZGVkX3BvbGlj eSB7CiAgICAgICAgYm9vbGVhbl90IHRpbWVzaGFyZTsKfTsKCnR5cGVkZWYgc3RydWN0IHRocmVh ZF9leHRlbmRlZF9wb2xpY3kgdGhyZWFkX2V4dGVuZGVkX3BvbGljeV9kYXRhX3Q7CnR5cGVkZWYg c3RydWN0IHRocmVhZF9leHRlbmRlZF9wb2xpY3kgKnRocmVhZF9leHRlbmRlZF9wb2xpY3lfdDsK CiNkZWZpbmUgVEhSRUFEX0VYVEVOREVEX1BPTElDWV9DT1VOVCAoc2l6ZW9mICh0aHJlYWRfZXh0 ZW5kZWRfcG9saWN5X2RhdGFfdCkgLyBzaXplb2YgKGludGVnZXJfdCkpCiMgMTUxICIvdXNyL2lu Y2x1ZGUvbWFjaC90aHJlYWRfcG9saWN5LmgiIDMgNAojZGVmaW5lIFRIUkVBRF9USU1FX0NPTlNU UkFJTlRfUE9MSUNZIDIKCnN0cnVjdCB0aHJlYWRfdGltZV9jb25zdHJhaW50X3BvbGljeSB7CiAg ICAgICAgZ2xfdWludDMyX3QgcGVyaW9kOwogICAgICAgIGdsX3VpbnQzMl90IGNvbXB1dGF0aW9u OwogICAgICAgIGdsX3VpbnQzMl90IGNvbnN0cmFpbnQ7CiAgICAgICAgYm9vbGVhbl90IHByZWVt cHRpYmxlOwp9OwoKdHlwZWRlZiBzdHJ1Y3QgdGhyZWFkX3RpbWVfY29uc3RyYWludF9wb2xpY3kg dGhyZWFkX3RpbWVfY29uc3RyYWludF9wb2xpY3lfZGF0YV90OwoKdHlwZWRlZiBzdHJ1Y3QgdGhy ZWFkX3RpbWVfY29uc3RyYWludF9wb2xpY3kgKnRocmVhZF90aW1lX2NvbnN0cmFpbnRfcG9saWN5 X3Q7CgoKI2RlZmluZSBUSFJFQURfVElNRV9DT05TVFJBSU5UX1BPTElDWV9DT1VOVCAoc2l6ZW9m ICh0aHJlYWRfdGltZV9jb25zdHJhaW50X3BvbGljeV9kYXRhX3QpIC8gc2l6ZW9mIChpbnRlZ2Vy X3QpKQojIDE3OSAiL3Vzci9pbmNsdWRlL21hY2gvdGhyZWFkX3BvbGljeS5oIiAzIDQKI2RlZmlu ZSBUSFJFQURfUFJFQ0VERU5DRV9QT0xJQ1kgMwoKc3RydWN0IHRocmVhZF9wcmVjZWRlbmNlX3Bv bGljeSB7CiAgICAgICAgaW50ZWdlcl90IGltcG9ydGFuY2U7Cn07Cgp0eXBlZGVmIHN0cnVjdCB0 aHJlYWRfcHJlY2VkZW5jZV9wb2xpY3kgdGhyZWFkX3ByZWNlZGVuY2VfcG9saWN5X2RhdGFfdDsK dHlwZWRlZiBzdHJ1Y3QgdGhyZWFkX3ByZWNlZGVuY2VfcG9saWN5ICp0aHJlYWRfcHJlY2VkZW5j ZV9wb2xpY3lfdDsKCiNkZWZpbmUgVEhSRUFEX1BSRUNFREVOQ0VfUE9MSUNZX0NPVU5UIChzaXpl b2YgKHRocmVhZF9wcmVjZWRlbmNlX3BvbGljeV9kYXRhX3QpIC8gc2l6ZW9mIChpbnRlZ2VyX3Qp KQojIDgwICIvdXNyL2luY2x1ZGUvbWFjaC9tYWNoX3R5cGVzLmgiIDIgMyA0CiMgMSAiL3Vzci9p bmNsdWRlL21hY2gvdGhyZWFkX3NwZWNpYWxfcG9ydHMuaCIgMSAzIDQKIyA2MiAiL3Vzci9pbmNs dWRlL21hY2gvdGhyZWFkX3NwZWNpYWxfcG9ydHMuaCIgMyA0CiNkZWZpbmUgX01BQ0hfVEhSRUFE X1NQRUNJQUxfUE9SVFNfSF8gCgojZGVmaW5lIFRIUkVBRF9LRVJORUxfUE9SVCAxCgoKCgoKCiNk ZWZpbmUgdGhyZWFkX2dldF9rZXJuZWxfcG9ydCh0aHJlYWQscG9ydCkgKHRocmVhZF9nZXRfc3Bl Y2lhbF9wb3J0KCh0aHJlYWQpLCBUSFJFQURfS0VSTkVMX1BPUlQsIChwb3J0KSkpCgoKI2RlZmlu ZSB0aHJlYWRfc2V0X2tlcm5lbF9wb3J0KHRocmVhZCxwb3J0KSAodGhyZWFkX3NldF9zcGVjaWFs X3BvcnQoKHRocmVhZCksIFRIUkVBRF9LRVJORUxfUE9SVCwgKHBvcnQpKSkKIyA4MSAiL3Vzci9p bmNsdWRlL21hY2gvbWFjaF90eXBlcy5oIiAyIDMgNAoKCiMgMSAiL3Vzci9pbmNsdWRlL21hY2gv Y2xvY2tfdHlwZXMuaCIgMSAzIDQKIyAzOCAiL3Vzci9pbmNsdWRlL21hY2gvY2xvY2tfdHlwZXMu aCIgMyA0CiNkZWZpbmUgX01BQ0hfQ0xPQ0tfVFlQRVNfSF8gCgoKCgoKCgp0eXBlZGVmIGludCBh bGFybV90eXBlX3Q7CnR5cGVkZWYgaW50IHNsZWVwX3R5cGVfdDsKdHlwZWRlZiBpbnQgY2xvY2tf aWRfdDsKdHlwZWRlZiBpbnQgY2xvY2tfZmxhdm9yX3Q7CnR5cGVkZWYgaW50ICpjbG9ja19hdHRy X3Q7CnR5cGVkZWYgaW50IGNsb2NrX3Jlc190OwoKCgoKc3RydWN0IG1hY2hfdGltZXNwZWMgewog ICAgICAgIHVuc2lnbmVkIGludCB0dl9zZWM7CiAgICAgICAgY2xvY2tfcmVzX3QgdHZfbnNlYzsK fTsKdHlwZWRlZiBzdHJ1Y3QgbWFjaF90aW1lc3BlYyBtYWNoX3RpbWVzcGVjX3Q7CgoKCgoKCiNk ZWZpbmUgU1lTVEVNX0NMT0NLIDAKCiNkZWZpbmUgQ0FMRU5EQVJfQ0xPQ0sgMQoKCiNkZWZpbmUg UkVBTFRJTUVfQ0xPQ0sgMAoKCgoKCgojZGVmaW5lIENMT0NLX0dFVF9USU1FX1JFUyAxCgojZGVm aW5lIENMT0NLX0FMQVJNX0NVUlJFUyAzCiNkZWZpbmUgQ0xPQ0tfQUxBUk1fTUlOUkVTIDQKI2Rl ZmluZSBDTE9DS19BTEFSTV9NQVhSRVMgNQoKI2RlZmluZSBOU0VDX1BFUl9VU0VDIDEwMDAKI2Rl ZmluZSBVU0VDX1BFUl9TRUMgMTAwMDAwMAojZGVmaW5lIE5TRUNfUEVSX1NFQyAxMDAwMDAwMDAw CgojZGVmaW5lIEJBRF9NQUNIX1RJTUVTUEVDKHQpICgodCktPnR2X25zZWMgPCAwIHx8ICh0KS0+ dHZfbnNlYyA+PSBOU0VDX1BFUl9TRUMpCgoKCiNkZWZpbmUgQ01QX01BQ0hfVElNRVNQRUModDEs dDIpICgodDEpLT50dl9zZWMgPiAodDIpLT50dl9zZWMgPyArTlNFQ19QRVJfU0VDIDogKCh0MSkt PnR2X3NlYyA8ICh0MiktPnR2X3NlYyA/IC1OU0VDX1BFUl9TRUMgOiAodDEpLT50dl9uc2VjIC0g KHQyKS0+dHZfbnNlYykpCgoKCgoKI2RlZmluZSBBRERfTUFDSF9USU1FU1BFQyh0MSx0MikgZG8g eyBpZiAoKCh0MSktPnR2X25zZWMgKz0gKHQyKS0+dHZfbnNlYykgPj0gTlNFQ19QRVJfU0VDKSB7 ICh0MSktPnR2X25zZWMgLT0gTlNFQ19QRVJfU0VDOyAodDEpLT50dl9zZWMgKz0gMTsgfSAodDEp LT50dl9zZWMgKz0gKHQyKS0+dHZfc2VjOyB9IHdoaWxlICgwKQojIDEwOSAiL3Vzci9pbmNsdWRl L21hY2gvY2xvY2tfdHlwZXMuaCIgMyA0CiNkZWZpbmUgU1VCX01BQ0hfVElNRVNQRUModDEsdDIp IGRvIHsgaWYgKCgodDEpLT50dl9uc2VjIC09ICh0MiktPnR2X25zZWMpIDwgMCkgeyAodDEpLT50 dl9uc2VjICs9IE5TRUNfUEVSX1NFQzsgKHQxKS0+dHZfc2VjIC09IDE7IH0gKHQxKS0+dHZfc2Vj IC09ICh0MiktPnR2X3NlYzsgfSB3aGlsZSAoMCkKIyAxMjEgIi91c3IvaW5jbHVkZS9tYWNoL2Ns b2NrX3R5cGVzLmgiIDMgNAojZGVmaW5lIEFMUk1UWVBFIDB4ZmYKI2RlZmluZSBUSU1FX0FCU09M VVRFIDB4MDAKI2RlZmluZSBUSU1FX1JFTEFUSVZFIDB4MDEKCiNkZWZpbmUgQkFEX0FMUk1UWVBF KHQpICgoKHQpICZ+IFRJTUVfUkVMQVRJVkUpICE9IDApCiMgODQgIi91c3IvaW5jbHVkZS9tYWNo L21hY2hfdHlwZXMuaCIgMiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvbWFjaC92bV9hdHRyaWJ1dGVz LmgiIDEgMyA0CiMgNjUgIi91c3IvaW5jbHVkZS9tYWNoL3ZtX2F0dHJpYnV0ZXMuaCIgMyA0CiNk ZWZpbmUgVk1fQVRUUklCVVRFU19IXyAKCgoKCnR5cGVkZWYgdW5zaWduZWQgaW50IHZtX21hY2hp bmVfYXR0cmlidXRlX3Q7CgojZGVmaW5lIE1BVFRSX0NBQ0hFIDEKI2RlZmluZSBNQVRUUl9NSUdS QVRFIDIKI2RlZmluZSBNQVRUUl9SRVBMSUNBVEUgNAoKCgoKdHlwZWRlZiBpbnQgdm1fbWFjaGlu ZV9hdHRyaWJ1dGVfdmFsX3Q7CgojZGVmaW5lIE1BVFRSX1ZBTF9PRkYgMAojZGVmaW5lIE1BVFRS X1ZBTF9PTiAxCiNkZWZpbmUgTUFUVFJfVkFMX0dFVCAyCgojZGVmaW5lIE1BVFRSX1ZBTF9DQUNI RV9GTFVTSCA2CiNkZWZpbmUgTUFUVFJfVkFMX0RDQUNIRV9GTFVTSCA3CiNkZWZpbmUgTUFUVFJf VkFMX0lDQUNIRV9GTFVTSCA4CiNkZWZpbmUgTUFUVFJfVkFMX0NBQ0hFX1NZTkMgOQojZGVmaW5l IE1BVFRSX1ZBTF9DQUNIRV9TWU5DIDkKCiNkZWZpbmUgTUFUVFJfVkFMX0dFVF9JTkZPIDEwCiMg ODUgIi91c3IvaW5jbHVkZS9tYWNoL21hY2hfdHlwZXMuaCIgMiAzIDQKIyAxICIvdXNyL2luY2x1 ZGUvbWFjaC92bV9pbmhlcml0LmgiIDEgMyA0CiMgNjEgIi91c3IvaW5jbHVkZS9tYWNoL3ZtX2lu aGVyaXQuaCIgMyA0CiNkZWZpbmUgVk1fSU5IRVJJVF9IXyAKCgoKCgoKCnR5cGVkZWYgdW5zaWdu ZWQgaW50IHZtX2luaGVyaXRfdDsKCgoKCgojZGVmaW5lIFZNX0lOSEVSSVRfU0hBUkUgKCh2bV9p bmhlcml0X3QpIDApCiNkZWZpbmUgVk1fSU5IRVJJVF9DT1BZICgodm1faW5oZXJpdF90KSAxKQoj ZGVmaW5lIFZNX0lOSEVSSVRfTk9ORSAoKHZtX2luaGVyaXRfdCkgMikKI2RlZmluZSBWTV9JTkhF UklUX0RPTkFURV9DT1BZICgodm1faW5oZXJpdF90KSAzKQoKI2RlZmluZSBWTV9JTkhFUklUX0RF RkFVTFQgVk1fSU5IRVJJVF9DT1BZCiNkZWZpbmUgVk1fSU5IRVJJVF9MQVNUX1ZBTElEIFZNX0lO SEVSSVRfTk9ORQojIDg2ICIvdXNyL2luY2x1ZGUvbWFjaC9tYWNoX3R5cGVzLmgiIDIgMyA0CiMg MSAiL3Vzci9pbmNsdWRlL21hY2gvdm1fYmVoYXZpb3IuaCIgMSAzIDQKIyAzMyAiL3Vzci9pbmNs dWRlL21hY2gvdm1fYmVoYXZpb3IuaCIgMyA0CiNkZWZpbmUgX01BQ0hfVk1fQkVIQVZJT1JfSF8g CgoKCgoKCgp0eXBlZGVmIGludCB2bV9iZWhhdmlvcl90OwojIDUxICIvdXNyL2luY2x1ZGUvbWFj aC92bV9iZWhhdmlvci5oIiAzIDQKI2RlZmluZSBWTV9CRUhBVklPUl9ERUZBVUxUICgodm1fYmVo YXZpb3JfdCkgMCkKI2RlZmluZSBWTV9CRUhBVklPUl9SQU5ET00gKCh2bV9iZWhhdmlvcl90KSAx KQojZGVmaW5lIFZNX0JFSEFWSU9SX1NFUVVFTlRJQUwgKCh2bV9iZWhhdmlvcl90KSAyKQojZGVm aW5lIFZNX0JFSEFWSU9SX1JTRVFOVEwgKCh2bV9iZWhhdmlvcl90KSAzKQojZGVmaW5lIFZNX0JF SEFWSU9SX1dJTExORUVEICgodm1fYmVoYXZpb3JfdCkgNCkKI2RlZmluZSBWTV9CRUhBVklPUl9E T05UTkVFRCAoKHZtX2JlaGF2aW9yX3QpIDUpCiMgODcgIi91c3IvaW5jbHVkZS9tYWNoL21hY2hf dHlwZXMuaCIgMiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvbWFjaC92bV9wcm90LmgiIDEgMyA0CiMg NjEgIi91c3IvaW5jbHVkZS9tYWNoL3ZtX3Byb3QuaCIgMyA0CiNkZWZpbmUgVk1fUFJPVF9IXyAK CgoKCgoKCnR5cGVkZWYgaW50IHZtX3Byb3RfdDsKCgoKCgojZGVmaW5lIFZNX1BST1RfTk9ORSAo KHZtX3Byb3RfdCkgMHgwMCkKCiNkZWZpbmUgVk1fUFJPVF9SRUFEICgodm1fcHJvdF90KSAweDAx KQojZGVmaW5lIFZNX1BST1RfV1JJVEUgKCh2bV9wcm90X3QpIDB4MDIpCiNkZWZpbmUgVk1fUFJP VF9FWEVDVVRFICgodm1fcHJvdF90KSAweDA0KQoKCgoKCiNkZWZpbmUgVk1fUFJPVF9ERUZBVUxU IChWTV9QUk9UX1JFQUR8Vk1fUFJPVF9XUklURSkKCgoKCgojZGVmaW5lIFZNX1BST1RfQUxMIChW TV9QUk9UX1JFQUR8Vk1fUFJPVF9XUklURXxWTV9QUk9UX0VYRUNVVEUpCgoKCgoKCgojZGVmaW5l IFZNX1BST1RfTk9fQ0hBTkdFICgodm1fcHJvdF90KSAweDA4KQojIDEwOCAiL3Vzci9pbmNsdWRl L21hY2gvdm1fcHJvdC5oIiAzIDQKI2RlZmluZSBWTV9QUk9UX0NPUFkgKCh2bV9wcm90X3QpIDB4 MTApCiMgMTIxICIvdXNyL2luY2x1ZGUvbWFjaC92bV9wcm90LmgiIDMgNAojZGVmaW5lIFZNX1BS T1RfV0FOVFNfQ09QWSAoKHZtX3Byb3RfdCkgMHgxMCkKIyA4OCAiL3Vzci9pbmNsdWRlL21hY2gv bWFjaF90eXBlcy5oIiAyIDMgNAoKIyAxICIvdXNyL2luY2x1ZGUvbWFjaC92bV9zeW5jLmgiIDEg MyA0CiMgNTggIi91c3IvaW5jbHVkZS9tYWNoL3ZtX3N5bmMuaCIgMyA0CiNkZWZpbmUgVk1fU1lO Q19IXyAKCnR5cGVkZWYgdW5zaWduZWQgdm1fc3luY190OwoKCgoKCiNkZWZpbmUgVk1fU1lOQ19B U1lOQ0hST05PVVMgKCh2bV9zeW5jX3QpIDB4MDEpCiNkZWZpbmUgVk1fU1lOQ19TWU5DSFJPTk9V UyAoKHZtX3N5bmNfdCkgMHgwMikKI2RlZmluZSBWTV9TWU5DX0lOVkFMSURBVEUgKCh2bV9zeW5j X3QpIDB4MDQpCiNkZWZpbmUgVk1fU1lOQ19LSUxMUEFHRVMgKCh2bV9zeW5jX3QpIDB4MDgpCiNk ZWZpbmUgVk1fU1lOQ19ERUFDVElWQVRFICgodm1fc3luY190KSAweDEwKQojIDkwICIvdXNyL2lu Y2x1ZGUvbWFjaC9tYWNoX3R5cGVzLmgiIDIgMyA0CgojIDEgIi91c3IvaW5jbHVkZS9tYWNoL3Zt X3JlZ2lvbi5oIiAxIDMgNAojIDMzICIvdXNyL2luY2x1ZGUvbWFjaC92bV9yZWdpb24uaCIgMyA0 CiNkZWZpbmUgX01BQ0hfVk1fUkVHSU9OX0hfIAojIDQ2ICIvdXNyL2luY2x1ZGUvbWFjaC92bV9y ZWdpb24uaCIgMyA0CiNkZWZpbmUgVk1fUkVHSU9OX0lORk9fTUFYICgxMDI0KQp0eXBlZGVmIGlu dCAqdm1fcmVnaW9uX2luZm9fdDsKdHlwZWRlZiBpbnQgKnZtX3JlZ2lvbl9pbmZvXzY0X3Q7CnR5 cGVkZWYgaW50ICp2bV9yZWdpb25fcmVjdXJzZV9pbmZvX3Q7CnR5cGVkZWYgaW50ICp2bV9yZWdp b25fcmVjdXJzZV9pbmZvXzY0X3Q7CnR5cGVkZWYgaW50IHZtX3JlZ2lvbl9mbGF2b3JfdDsKdHlw ZWRlZiBpbnQgdm1fcmVnaW9uX2luZm9fZGF0YV90WygxMDI0KV07CgojZGVmaW5lIFZNX1JFR0lP Tl9CQVNJQ19JTkZPIDEwCgpzdHJ1Y3Qgdm1fcmVnaW9uX2Jhc2ljX2luZm9fNjQgewogICAgICAg IHZtX3Byb3RfdCBwcm90ZWN0aW9uOwogICAgICAgIHZtX3Byb3RfdCBtYXhfcHJvdGVjdGlvbjsK ICAgICAgICB2bV9pbmhlcml0X3QgaW5oZXJpdGFuY2U7CiAgICAgICAgYm9vbGVhbl90IHNoYXJl ZDsKICAgICAgICBib29sZWFuX3QgcmVzZXJ2ZWQ7CiAgICAgICAgdm1fb2JqZWN0X29mZnNldF90 IG9mZnNldDsKICAgICAgICB2bV9iZWhhdmlvcl90IGJlaGF2aW9yOwogICAgICAgIHVuc2lnbmVk IHNob3J0IHVzZXJfd2lyZWRfY291bnQ7Cn07Cgp0eXBlZGVmIHN0cnVjdCB2bV9yZWdpb25fYmFz aWNfaW5mb182NCAqdm1fcmVnaW9uX2Jhc2ljX2luZm9fNjRfdDsKdHlwZWRlZiBzdHJ1Y3Qgdm1f cmVnaW9uX2Jhc2ljX2luZm9fNjQgdm1fcmVnaW9uX2Jhc2ljX2luZm9fZGF0YV82NF90OwoKI2Rl ZmluZSBWTV9SRUdJT05fQkFTSUNfSU5GT19DT1VOVF82NCAoc2l6ZW9mKHZtX3JlZ2lvbl9iYXNp Y19pbmZvX2RhdGFfNjRfdCkvc2l6ZW9mKGludCkpCgoKCnN0cnVjdCB2bV9yZWdpb25fYmFzaWNf aW5mbyB7CiAgICAgICAgdm1fcHJvdF90IHByb3RlY3Rpb247CiAgICAgICAgdm1fcHJvdF90IG1h eF9wcm90ZWN0aW9uOwogICAgICAgIHZtX2luaGVyaXRfdCBpbmhlcml0YW5jZTsKICAgICAgICBi b29sZWFuX3Qgc2hhcmVkOwogICAgICAgIGJvb2xlYW5fdCByZXNlcnZlZDsKCgoKICAgICAgICB2 bV9vZmZzZXRfdCBvZmZzZXQ7CgogICAgICAgIHZtX2JlaGF2aW9yX3QgYmVoYXZpb3I7CiAgICAg ICAgdW5zaWduZWQgc2hvcnQgdXNlcl93aXJlZF9jb3VudDsKfTsKCnR5cGVkZWYgc3RydWN0IHZt X3JlZ2lvbl9iYXNpY19pbmZvICp2bV9yZWdpb25fYmFzaWNfaW5mb190Owp0eXBlZGVmIHN0cnVj dCB2bV9yZWdpb25fYmFzaWNfaW5mbyB2bV9yZWdpb25fYmFzaWNfaW5mb19kYXRhX3Q7CgojZGVm aW5lIFZNX1JFR0lPTl9CQVNJQ19JTkZPX0NPVU5UIChzaXplb2Yodm1fcmVnaW9uX2Jhc2ljX2lu Zm9fZGF0YV90KS9zaXplb2YoaW50KSkKCgoKCiNkZWZpbmUgVk1fUkVHSU9OX0VYVEVOREVEX0lO Rk8gMTEKCiNkZWZpbmUgU01fQ09XIDEKI2RlZmluZSBTTV9QUklWQVRFIDIKI2RlZmluZSBTTV9F TVBUWSAzCiNkZWZpbmUgU01fU0hBUkVEIDQKI2RlZmluZSBTTV9UUlVFU0hBUkVEIDUKI2RlZmlu ZSBTTV9QUklWQVRFX0FMSUFTRUQgNgojZGVmaW5lIFNNX1NIQVJFRF9BTElBU0VEIDcKIyAxMTYg Ii91c3IvaW5jbHVkZS9tYWNoL3ZtX3JlZ2lvbi5oIiAzIDQKc3RydWN0IHZtX3JlZ2lvbl9leHRl bmRlZF9pbmZvIHsKICAgICAgICB2bV9wcm90X3QgcHJvdGVjdGlvbjsKICAgICAgICB1bnNpZ25l ZCBpbnQgdXNlcl90YWc7CiAgICAgICAgdW5zaWduZWQgaW50IHBhZ2VzX3Jlc2lkZW50OwogICAg ICAgIHVuc2lnbmVkIGludCBwYWdlc19zaGFyZWRfbm93X3ByaXZhdGU7CiAgICAgICAgdW5zaWdu ZWQgaW50IHBhZ2VzX3N3YXBwZWRfb3V0OwogICAgICAgIHVuc2lnbmVkIGludCBwYWdlc19kaXJ0 aWVkOwogICAgICAgIHVuc2lnbmVkIGludCByZWZfY291bnQ7CiAgICAgICAgdW5zaWduZWQgc2hv cnQgc2hhZG93X2RlcHRoOwogICAgICAgIHVuc2lnbmVkIGNoYXIgZXh0ZXJuYWxfcGFnZXI7CiAg ICAgICAgdW5zaWduZWQgY2hhciBzaGFyZV9tb2RlOwp9OwoKdHlwZWRlZiBzdHJ1Y3Qgdm1fcmVn aW9uX2V4dGVuZGVkX2luZm8gKnZtX3JlZ2lvbl9leHRlbmRlZF9pbmZvX3Q7CnR5cGVkZWYgc3Ry dWN0IHZtX3JlZ2lvbl9leHRlbmRlZF9pbmZvIHZtX3JlZ2lvbl9leHRlbmRlZF9pbmZvX2RhdGFf dDsKCiNkZWZpbmUgVk1fUkVHSU9OX0VYVEVOREVEX0lORk9fQ09VTlQgKHNpemVvZih2bV9yZWdp b25fZXh0ZW5kZWRfaW5mb19kYXRhX3QpL3NpemVvZihpbnQpKQoKCgojZGVmaW5lIFZNX1JFR0lP Tl9UT1BfSU5GTyAxMgoKc3RydWN0IHZtX3JlZ2lvbl90b3BfaW5mbyB7CiAgICAgICAgdW5zaWdu ZWQgaW50IG9ial9pZDsKICAgICAgICB1bnNpZ25lZCBpbnQgcmVmX2NvdW50OwogICAgICAgIHVu c2lnbmVkIGludCBwcml2YXRlX3BhZ2VzX3Jlc2lkZW50OwogICAgICAgIHVuc2lnbmVkIGludCBz aGFyZWRfcGFnZXNfcmVzaWRlbnQ7CiAgICAgICAgdW5zaWduZWQgY2hhciBzaGFyZV9tb2RlOwp9 OwoKdHlwZWRlZiBzdHJ1Y3Qgdm1fcmVnaW9uX3RvcF9pbmZvICp2bV9yZWdpb25fdG9wX2luZm9f dDsKdHlwZWRlZiBzdHJ1Y3Qgdm1fcmVnaW9uX3RvcF9pbmZvIHZtX3JlZ2lvbl90b3BfaW5mb19k YXRhX3Q7CgojZGVmaW5lIFZNX1JFR0lPTl9UT1BfSU5GT19DT1VOVCAoc2l6ZW9mKHZtX3JlZ2lv bl90b3BfaW5mb19kYXRhX3QpL3NpemVvZihpbnQpKQojIDE3MyAiL3Vzci9pbmNsdWRlL21hY2gv dm1fcmVnaW9uLmgiIDMgNApzdHJ1Y3Qgdm1fcmVnaW9uX3N1Ym1hcF9pbmZvIHsKICAgICAgICB2 bV9wcm90X3QgcHJvdGVjdGlvbjsKICAgICAgICB2bV9wcm90X3QgbWF4X3Byb3RlY3Rpb247CiAg ICAgICAgdm1faW5oZXJpdF90IGluaGVyaXRhbmNlOwoKCgogICAgICAgIHZtX29mZnNldF90IG9m ZnNldDsKCiAgICAgICAgdW5zaWduZWQgaW50IHVzZXJfdGFnOwogICAgICAgIHVuc2lnbmVkIGlu dCBwYWdlc19yZXNpZGVudDsKICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZXNfc2hhcmVkX25vd19w cml2YXRlOwogICAgICAgIHVuc2lnbmVkIGludCBwYWdlc19zd2FwcGVkX291dDsKICAgICAgICB1 bnNpZ25lZCBpbnQgcGFnZXNfZGlydGllZDsKICAgICAgICB1bnNpZ25lZCBpbnQgcmVmX2NvdW50 OwogICAgICAgIHVuc2lnbmVkIHNob3J0IHNoYWRvd19kZXB0aDsKICAgICAgICB1bnNpZ25lZCBj aGFyIGV4dGVybmFsX3BhZ2VyOwogICAgICAgIHVuc2lnbmVkIGNoYXIgc2hhcmVfbW9kZTsKICAg ICAgICBib29sZWFuX3QgaXNfc3VibWFwOwogICAgICAgIHZtX2JlaGF2aW9yX3QgYmVoYXZpb3I7 CiAgICAgICAgdm1fb2Zmc2V0X3Qgb2JqZWN0X2lkOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHVz ZXJfd2lyZWRfY291bnQ7Cn07Cgp0eXBlZGVmIHN0cnVjdCB2bV9yZWdpb25fc3VibWFwX2luZm8g KnZtX3JlZ2lvbl9zdWJtYXBfaW5mb190Owp0eXBlZGVmIHN0cnVjdCB2bV9yZWdpb25fc3VibWFw X2luZm8gdm1fcmVnaW9uX3N1Ym1hcF9pbmZvX2RhdGFfdDsKCiNkZWZpbmUgVk1fUkVHSU9OX1NV Qk1BUF9JTkZPX0NPVU5UIChzaXplb2Yodm1fcmVnaW9uX3N1Ym1hcF9pbmZvX2RhdGFfdCkvc2l6 ZW9mKGludCkpCgoKCgpzdHJ1Y3Qgdm1fcmVnaW9uX3N1Ym1hcF9pbmZvXzY0IHsKICAgICAgICB2 bV9wcm90X3QgcHJvdGVjdGlvbjsKICAgICAgICB2bV9wcm90X3QgbWF4X3Byb3RlY3Rpb247CiAg ICAgICAgdm1faW5oZXJpdF90IGluaGVyaXRhbmNlOwogICAgICAgIHZtX29iamVjdF9vZmZzZXRf dCBvZmZzZXQ7CiAgICAgICAgdW5zaWduZWQgaW50IHVzZXJfdGFnOwogICAgICAgIHVuc2lnbmVk IGludCBwYWdlc19yZXNpZGVudDsKICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZXNfc2hhcmVkX25v d19wcml2YXRlOwogICAgICAgIHVuc2lnbmVkIGludCBwYWdlc19zd2FwcGVkX291dDsKICAgICAg ICB1bnNpZ25lZCBpbnQgcGFnZXNfZGlydGllZDsKICAgICAgICB1bnNpZ25lZCBpbnQgcmVmX2Nv dW50OwogICAgICAgIHVuc2lnbmVkIHNob3J0IHNoYWRvd19kZXB0aDsKICAgICAgICB1bnNpZ25l ZCBjaGFyIGV4dGVybmFsX3BhZ2VyOwogICAgICAgIHVuc2lnbmVkIGNoYXIgc2hhcmVfbW9kZTsK ICAgICAgICBib29sZWFuX3QgaXNfc3VibWFwOwogICAgICAgIHZtX2JlaGF2aW9yX3QgYmVoYXZp b3I7CiAgICAgICAgdm1fb2Zmc2V0X3Qgb2JqZWN0X2lkOwogICAgICAgIHVuc2lnbmVkIHNob3J0 IHVzZXJfd2lyZWRfY291bnQ7Cn07Cgp0eXBlZGVmIHN0cnVjdCB2bV9yZWdpb25fc3VibWFwX2lu Zm9fNjQgKnZtX3JlZ2lvbl9zdWJtYXBfaW5mb182NF90Owp0eXBlZGVmIHN0cnVjdCB2bV9yZWdp b25fc3VibWFwX2luZm9fNjQgdm1fcmVnaW9uX3N1Ym1hcF9pbmZvX2RhdGFfNjRfdDsKCiNkZWZp bmUgVk1fUkVHSU9OX1NVQk1BUF9JTkZPX0NPVU5UXzY0IChzaXplb2Yodm1fcmVnaW9uX3N1Ym1h cF9pbmZvX2RhdGFfNjRfdCkvc2l6ZW9mKGludCkpCgoKCnN0cnVjdCB2bV9yZWFkX2VudHJ5IHsK ICAgICAgICB2bV9hZGRyZXNzX3QgYWRkcmVzczsKICAgICAgICB2bV9zaXplX3Qgc2l6ZTsKfTsK CiNkZWZpbmUgVk1fTUFQX0VOVFJZX01BWCAoMjU2KQoKdHlwZWRlZiBzdHJ1Y3Qgdm1fcmVhZF9l bnRyeSB2bV9yZWFkX2VudHJ5X3RbKDI1NildOwojIDkyICIvdXNyL2luY2x1ZGUvbWFjaC9tYWNo X3R5cGVzLmgiIDIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL21hY2gva21vZC5oIiAxIDMgNAojIDMx ICIvdXNyL2luY2x1ZGUvbWFjaC9rbW9kLmgiIDMgNAojZGVmaW5lIF9NQUNIX0tNT0RfSF8gCgoK IyAxICIvdXNyL2luY2x1ZGUvbWFjaC9rZXJuX3JldHVybi5oIiAxIDMgNAojIDYyICIvdXNyL2lu Y2x1ZGUvbWFjaC9rZXJuX3JldHVybi5oIiAzIDQKI2RlZmluZSBfTUFDSF9LRVJOX1JFVFVSTl9I XyAKCiMgMSAiL3Vzci9pbmNsdWRlL21hY2gvbWFjaGluZS9rZXJuX3JldHVybi5oIiAxIDMgNAoj IDIzICIvdXNyL2luY2x1ZGUvbWFjaC9tYWNoaW5lL2tlcm5fcmV0dXJuLmgiIDMgNAojZGVmaW5l IF9NQUNIX01BQ0hJTkVfS0VSTl9SRVRVUk5fSF8gCgoKCiMgMSAiL3Vzci9pbmNsdWRlL21hY2gv cHBjL2tlcm5fcmV0dXJuLmgiIDEgMyA0CiMgMTMyICIvdXNyL2luY2x1ZGUvbWFjaC9wcGMva2Vy bl9yZXR1cm4uaCIgMyA0CiNkZWZpbmUgX01BQ0hfUFBDX0tFUk5fUkVUVVJOX0hfIAoKCnR5cGVk ZWYgaW50IGtlcm5fcmV0dXJuX3Q7CiMgMjggIi91c3IvaW5jbHVkZS9tYWNoL21hY2hpbmUva2Vy bl9yZXR1cm4uaCIgMiAzIDQKIyA2NSAiL3Vzci9pbmNsdWRlL21hY2gva2Vybl9yZXR1cm4uaCIg MiAzIDQKCgoKCgoKI2RlZmluZSBLRVJOX1NVQ0NFU1MgMAoKI2RlZmluZSBLRVJOX0lOVkFMSURf QUREUkVTUyAxCgoKCiNkZWZpbmUgS0VSTl9QUk9URUNUSU9OX0ZBSUxVUkUgMgoKCgoKI2RlZmlu ZSBLRVJOX05PX1NQQUNFIDMKCgoKCgojZGVmaW5lIEtFUk5fSU5WQUxJRF9BUkdVTUVOVCA0CgoK CgojZGVmaW5lIEtFUk5fRkFJTFVSRSA1CgoKCiNkZWZpbmUgS0VSTl9SRVNPVVJDRV9TSE9SVEFH RSA2CgoKCgojZGVmaW5lIEtFUk5fTk9UX1JFQ0VJVkVSIDcKCgoKCiNkZWZpbmUgS0VSTl9OT19B Q0NFU1MgOAoKCgojZGVmaW5lIEtFUk5fTUVNT1JZX0ZBSUxVUkUgOQoKCgoKCiNkZWZpbmUgS0VS Tl9NRU1PUllfRVJST1IgMTAKCgoKCgoKCiNkZWZpbmUgS0VSTl9BTFJFQURZX0lOX1NFVCAxMQoK CgojZGVmaW5lIEtFUk5fTk9UX0lOX1NFVCAxMgoKCgojZGVmaW5lIEtFUk5fTkFNRV9FWElTVFMg MTMKCgoKI2RlZmluZSBLRVJOX0FCT1JURUQgMTQKCgoKCiNkZWZpbmUgS0VSTl9JTlZBTElEX05B TUUgMTUKCgoKI2RlZmluZSBLRVJOX0lOVkFMSURfVEFTSyAxNgoKCgojZGVmaW5lIEtFUk5fSU5W QUxJRF9SSUdIVCAxNwoKCgojZGVmaW5lIEtFUk5fSU5WQUxJRF9WQUxVRSAxOAoKCgojZGVmaW5l IEtFUk5fVVJFRlNfT1ZFUkZMT1cgMTkKCgoKI2RlZmluZSBLRVJOX0lOVkFMSURfQ0FQQUJJTElU WSAyMAoKCgojZGVmaW5lIEtFUk5fUklHSFRfRVhJU1RTIDIxCgoKCgojZGVmaW5lIEtFUk5fSU5W QUxJRF9IT1NUIDIyCgoKCiNkZWZpbmUgS0VSTl9NRU1PUllfUFJFU0VOVCAyMwoKCgoKCiNkZWZp bmUgS0VSTl9NRU1PUllfREFUQV9NT1ZFRCAyNAojIDE5NyAiL3Vzci9pbmNsdWRlL21hY2gva2Vy bl9yZXR1cm4uaCIgMyA0CiNkZWZpbmUgS0VSTl9NRU1PUllfUkVTVEFSVF9DT1BZIDI1CgoKCgoK CgojZGVmaW5lIEtFUk5fSU5WQUxJRF9QUk9DRVNTT1JfU0VUIDI2CgoKCgojZGVmaW5lIEtFUk5f UE9MSUNZX0xJTUlUIDI3CgoKCgojZGVmaW5lIEtFUk5fSU5WQUxJRF9QT0xJQ1kgMjgKCgoKCiNk ZWZpbmUgS0VSTl9JTlZBTElEX09CSkVDVCAyOQoKCgoKI2RlZmluZSBLRVJOX0FMUkVBRFlfV0FJ VElORyAzMAoKCgoKI2RlZmluZSBLRVJOX0RFRkFVTFRfU0VUIDMxCgoKCgojZGVmaW5lIEtFUk5f RVhDRVBUSU9OX1BST1RFQ1RFRCAzMgoKCgoKCiNkZWZpbmUgS0VSTl9JTlZBTElEX0xFREdFUiAz MwoKCgojZGVmaW5lIEtFUk5fSU5WQUxJRF9NRU1PUllfQ09OVFJPTCAzNAoKCgojZGVmaW5lIEtF Uk5fSU5WQUxJRF9TRUNVUklUWSAzNQoKCgoKI2RlZmluZSBLRVJOX05PVF9ERVBSRVNTRUQgMzYK CgoKCiNkZWZpbmUgS0VSTl9URVJNSU5BVEVEIDM3CgoKCiNkZWZpbmUgS0VSTl9MT0NLX1NFVF9E RVNUUk9ZRUQgMzgKCgoKI2RlZmluZSBLRVJOX0xPQ0tfVU5TVEFCTEUgMzkKCgoKCiNkZWZpbmUg S0VSTl9MT0NLX09XTkVEIDQwCgoKCiNkZWZpbmUgS0VSTl9MT0NLX09XTkVEX1NFTEYgNDEKCgoK I2RlZmluZSBLRVJOX1NFTUFQSE9SRV9ERVNUUk9ZRUQgNDIKCgoKI2RlZmluZSBLRVJOX1JQQ19T RVJWRVJfVEVSTUlOQVRFRCA0MwoKCgoKI2RlZmluZSBLRVJOX1JQQ19URVJNSU5BVEVfT1JQSEFO IDQ0CgoKCiNkZWZpbmUgS0VSTl9SUENfQ09OVElOVUVfT1JQSEFOIDQ1CgoKCiNkZWZpbmUgS0VS Tl9OT1RfU1VQUE9SVEVEIDQ2CgoKCiNkZWZpbmUgS0VSTl9OT0RFX0RPV04gNDcKCgoKI2RlZmlu ZSBLRVJOX05PVF9XQUlUSU5HIDQ4CgoKI2RlZmluZSBLRVJOX09QRVJBVElPTl9USU1FRF9PVVQg NDkKCgoKI2RlZmluZSBLRVJOX1JFVFVSTl9NQVggMHgxMDAKIyAzNSAiL3Vzci9pbmNsdWRlL21h Y2gva21vZC5oIiAyIDMgNAoKCgojZGVmaW5lIEtNT0RfQ05UTF9TVEFSVCAxCiNkZWZpbmUgS01P RF9DTlRMX1NUT1AgMgojZGVmaW5lIEtNT0RfQ05UTF9SRVRBSU4gMwojZGVmaW5lIEtNT0RfQ05U TF9SRUxFQVNFIDQKI2RlZmluZSBLTU9EX0NOVExfR0VUX0NNRCA1CgojZGVmaW5lIEtNT0RfUEFD S19JRFMoZnJvbSx0bykgKCgodW5zaWduZWQgbG9uZylmcm9tIDw8IDE2KSB8ICh1bnNpZ25lZCBs b25nKXRvKQojZGVmaW5lIEtNT0RfVU5QQUNLX0ZST01fSUQoaSkgKCh1bnNpZ25lZCBsb25nKWkg Pj4gMTYpCiNkZWZpbmUgS01PRF9VTlBBQ0tfVE9fSUQoaSkgKCh1bnNpZ25lZCBsb25nKWkgJiAw eGZmZmYpCgoKCiNkZWZpbmUgS01PRF9NQVhfTkFNRSA2NAoKCgp0eXBlZGVmIGludCBrbW9kX3Q7 CnR5cGVkZWYgaW50IGttb2RfY29udHJvbF9mbGF2b3JfdDsKdHlwZWRlZiB2b2lkKiBrbW9kX2Fy Z3NfdDsKCgoKdHlwZWRlZiBzdHJ1Y3Qga21vZF9yZWZlcmVuY2UgewogICAgICAgIHN0cnVjdCBr bW9kX3JlZmVyZW5jZSAqbmV4dDsKICAgICAgICBzdHJ1Y3Qga21vZF9pbmZvICppbmZvOwp9IGtt b2RfcmVmZXJlbmNlX3Q7CgoKCgoKCiNkZWZpbmUgS01PRF9SRVRVUk5fU1VDQ0VTUyBLRVJOX1NV Q0NFU1MKI2RlZmluZSBLTU9EX1JFVFVSTl9GQUlMVVJFIEtFUk5fRkFJTFVSRQoKdHlwZWRlZiBr ZXJuX3JldHVybl90IGttb2Rfc3RhcnRfZnVuY190KHN0cnVjdCBrbW9kX2luZm8gKmtpLCB2b2lk ICpkYXRhKTsKdHlwZWRlZiBrZXJuX3JldHVybl90IGttb2Rfc3RvcF9mdW5jX3Qoc3RydWN0IGtt b2RfaW5mbyAqa2ksIHZvaWQgKmRhdGEpOwoKdHlwZWRlZiBzdHJ1Y3Qga21vZF9pbmZvIHsKICAg ICAgICBzdHJ1Y3Qga21vZF9pbmZvICpuZXh0OwogICAgICAgIGludCBpbmZvX3ZlcnNpb247CiAg ICAgICAgaW50IGlkOwogICAgICAgIGNoYXIgbmFtZVs2NF07CiAgICAgICAgY2hhciB2ZXJzaW9u WzY0XTsKICAgICAgICBpbnQgcmVmZXJlbmNlX2NvdW50OwogICAgICAgIGttb2RfcmVmZXJlbmNl X3QgKnJlZmVyZW5jZV9saXN0OwogICAgICAgIHZtX2FkZHJlc3NfdCBhZGRyZXNzOwogICAgICAg IHZtX3NpemVfdCBzaXplOwogICAgICAgIHZtX3NpemVfdCBoZHJfc2l6ZTsKICAgICAgICBrbW9k X3N0YXJ0X2Z1bmNfdCAqc3RhcnQ7CiAgICAgICAga21vZF9zdG9wX2Z1bmNfdCAqc3RvcDsKfSBr bW9kX2luZm9fdDsKCgoKdHlwZWRlZiBrbW9kX2luZm9fdCAqa21vZF9pbmZvX2FycmF5X3Q7CgoK CiNkZWZpbmUgS01PRF9JTkZPX05BTUUga21vZF9pbmZvCiNkZWZpbmUgS01PRF9JTkZPX1ZFUlNJ T04gMQoKI2RlZmluZSBLTU9EX0RFQ0wobmFtZSx2ZXJzaW9uKSBzdGF0aWMga21vZF9zdGFydF9m dW5jX3QgbmFtZSAjIyBfbW9kdWxlX3N0YXJ0OyBzdGF0aWMga21vZF9zdG9wX2Z1bmNfdCBuYW1l ICMjIF9tb2R1bGVfc3RvcDsga21vZF9pbmZvX3QgS01PRF9JTkZPX05BTUUgPSB7IDAsIEtNT0Rf SU5GT19WRVJTSU9OLCAtMSwgeyAjbmFtZSB9LCB7IHZlcnNpb24gfSwgLTEsIDAsIDAsIDAsIDAs IG5hbWUgIyMgX21vZHVsZV9zdGFydCwgbmFtZSAjIyBfbW9kdWxlX3N0b3AgfTsKCgoKCgoKCiNk ZWZpbmUgS01PRF9FWFBMSUNJVF9ERUNMKG5hbWUsdmVyc2lvbixzdGFydCxzdG9wKSBrbW9kX2lu Zm9fdCBLTU9EX0lORk9fTkFNRSA9IHsgMCwgS01PRF9JTkZPX1ZFUlNJT04sIC0xLCB7ICNuYW1l IH0sIHsgdmVyc2lvbiB9LCAtMSwgMCwgMCwgMCwgMCwgc3RhcnQsIHN0b3AgfTsKCgoKCgojZGVm aW5lIEtNT0RfTElCX0RFQ0wobmFtZSx2ZXJzaW9uKSBrbW9kX2luZm9fdCBLTU9EX0lORk9fTkFN RSA9IHsgMCwgS01PRF9JTkZPX1ZFUlNJT04sIC0xLCB7ICNuYW1lIH0sIHsgdmVyc2lvbiB9LCAt MSwgMCwgMCwgMCwgMCwga21vZF9kZWZhdWx0X3N0YXJ0LCBrbW9kX2RlZmF1bHRfc3RvcCB9Owoj IDEyNyAiL3Vzci9pbmNsdWRlL21hY2gva21vZC5oIiAzIDQKI2RlZmluZSBLTU9EX0xPQURfRVhU RU5TSU9OX1BBQ0tFVCAxCiNkZWZpbmUgS01PRF9MT0FEX1dJVEhfREVQRU5ERU5DSUVTX1BBQ0tF VCAyCgoKI2RlZmluZSBLTU9EX0lPS0lUX1NUQVJUX1JBTkdFX1BBQ0tFVCAweDEwMDAKI2RlZmlu ZSBLTU9EX0lPS0lUX0VORF9SQU5HRV9QQUNLRVQgMHgxZmZmCgp0eXBlZGVmIHN0cnVjdCBrbW9k X2xvYWRfZXh0ZW5zaW9uX2NtZCB7CiAgICAgICAgaW50IHR5cGU7CiAgICAgICAgY2hhciBuYW1l WzY0XTsKfSBrbW9kX2xvYWRfZXh0ZW5zaW9uX2NtZF90OwoKdHlwZWRlZiBzdHJ1Y3Qga21vZF9s b2FkX3dpdGhfZGVwZW5kZW5jaWVzX2NtZCB7CiAgICAgICAgaW50IHR5cGU7CiAgICAgICAgY2hh ciBuYW1lWzY0XTsKICAgICAgICBjaGFyIGRlcGVuZGVuY2llc1sxXVs2NF07Cn0ga21vZF9sb2Fk X3dpdGhfZGVwZW5kZW5jaWVzX2NtZF90OwoKdHlwZWRlZiBzdHJ1Y3Qga21vZF9nZW5lcmljX2Nt ZCB7CiAgICAgICAgaW50IHR5cGU7CiAgICAgICAgY2hhciBkYXRhWzFdOwp9IGttb2RfZ2VuZXJp Y19jbWRfdDsKIyA5MyAiL3Vzci9pbmNsdWRlL21hY2gvbWFjaF90eXBlcy5oIiAyIDMgNAoKCgoK Cgp0eXBlZGVmIG1hY2hfcG9ydF90IHRhc2tfdDsKdHlwZWRlZiBtYWNoX3BvcnRfdCB0aHJlYWRf dDsKdHlwZWRlZiBtYWNoX3BvcnRfdCB0aHJlYWRfYWN0X3Q7CnR5cGVkZWYgbWFjaF9wb3J0X3Qg aXBjX3NwYWNlX3Q7CnR5cGVkZWYgbWFjaF9wb3J0X3QgaG9zdF90Owp0eXBlZGVmIG1hY2hfcG9y dF90IGhvc3RfcHJpdl90Owp0eXBlZGVmIG1hY2hfcG9ydF90IGhvc3Rfc2VjdXJpdHlfdDsKdHlw ZWRlZiBtYWNoX3BvcnRfdCBwcm9jZXNzb3JfdDsKdHlwZWRlZiBtYWNoX3BvcnRfdCBwcm9jZXNz b3Jfc2V0X3Q7CnR5cGVkZWYgbWFjaF9wb3J0X3QgcHJvY2Vzc29yX3NldF9jb250cm9sX3Q7CnR5 cGVkZWYgbWFjaF9wb3J0X3Qgc2VtYXBob3JlX3Q7CnR5cGVkZWYgbWFjaF9wb3J0X3QgbG9ja19z ZXRfdDsKdHlwZWRlZiBtYWNoX3BvcnRfdCBsZWRnZXJfdDsKdHlwZWRlZiBtYWNoX3BvcnRfdCBh bGFybV90Owp0eXBlZGVmIG1hY2hfcG9ydF90IGNsb2NrX3NlcnZfdDsKdHlwZWRlZiBtYWNoX3Bv cnRfdCBjbG9ja19jdHJsX3Q7CgoKCgoKCgp0eXBlZGVmIHByb2Nlc3Nvcl9zZXRfdCBwcm9jZXNz b3Jfc2V0X25hbWVfdDsKCgoKCnR5cGVkZWYgbWFjaF9wb3J0X3QgY2xvY2tfcmVwbHlfdDsKdHlw ZWRlZiBtYWNoX3BvcnRfdCBib290c3RyYXBfdDsKdHlwZWRlZiBtYWNoX3BvcnRfdCBtZW1fZW50 cnlfbmFtZV9wb3J0X3Q7CnR5cGVkZWYgbWFjaF9wb3J0X3QgZXhjZXB0aW9uX2hhbmRsZXJfdDsK dHlwZWRlZiBleGNlcHRpb25faGFuZGxlcl90ICpleGNlcHRpb25faGFuZGxlcl9hcnJheV90Owp0 eXBlZGVmIG1hY2hfcG9ydF90IHZtX3Rhc2tfZW50cnlfdDsKdHlwZWRlZiBtYWNoX3BvcnRfdCBp b19tYXN0ZXJfdDsKdHlwZWRlZiBtYWNoX3BvcnRfdCBVTkRTZXJ2ZXJSZWY7CiMgMTQzICIvdXNy L2luY2x1ZGUvbWFjaC9tYWNoX3R5cGVzLmgiIDMgNAp0eXBlZGVmIHRhc2tfdCAqdGFza19hcnJh eV90Owp0eXBlZGVmIHRocmVhZF90ICp0aHJlYWRfYXJyYXlfdDsKdHlwZWRlZiBwcm9jZXNzb3Jf c2V0X3QgKnByb2Nlc3Nvcl9zZXRfYXJyYXlfdDsKdHlwZWRlZiBwcm9jZXNzb3Jfc2V0X3QgKnBy b2Nlc3Nvcl9zZXRfbmFtZV9hcnJheV90Owp0eXBlZGVmIHByb2Nlc3Nvcl90ICpwcm9jZXNzb3Jf YXJyYXlfdDsKdHlwZWRlZiB0aHJlYWRfYWN0X3QgKnRocmVhZF9hY3RfYXJyYXlfdDsKdHlwZWRl ZiBsZWRnZXJfdCAqbGVkZ2VyX2FycmF5X3Q7CiMgMTU4ICIvdXNyL2luY2x1ZGUvbWFjaC9tYWNo X3R5cGVzLmgiIDMgNAp0eXBlZGVmIHRhc2tfdCB0YXNrX3BvcnRfdDsKdHlwZWRlZiB0YXNrX2Fy cmF5X3QgdGFza19wb3J0X2FycmF5X3Q7CnR5cGVkZWYgdGhyZWFkX3QgdGhyZWFkX3BvcnRfdDsK dHlwZWRlZiB0aHJlYWRfYXJyYXlfdCB0aHJlYWRfcG9ydF9hcnJheV90Owp0eXBlZGVmIGlwY19z cGFjZV90IGlwY19zcGFjZV9wb3J0X3Q7CnR5cGVkZWYgaG9zdF90IGhvc3RfbmFtZV90Owp0eXBl ZGVmIGhvc3RfdCBob3N0X25hbWVfcG9ydF90Owp0eXBlZGVmIHByb2Nlc3Nvcl9zZXRfdCBwcm9j ZXNzb3Jfc2V0X3BvcnRfdDsKdHlwZWRlZiBwcm9jZXNzb3Jfc2V0X3QgcHJvY2Vzc29yX3NldF9u YW1lX3BvcnRfdDsKdHlwZWRlZiBwcm9jZXNzb3Jfc2V0X2FycmF5X3QgcHJvY2Vzc29yX3NldF9u YW1lX3BvcnRfYXJyYXlfdDsKdHlwZWRlZiBwcm9jZXNzb3Jfc2V0X3QgcHJvY2Vzc29yX3NldF9j b250cm9sX3BvcnRfdDsKdHlwZWRlZiBwcm9jZXNzb3JfdCBwcm9jZXNzb3JfcG9ydF90Owp0eXBl ZGVmIHByb2Nlc3Nvcl9hcnJheV90IHByb2Nlc3Nvcl9wb3J0X2FycmF5X3Q7CnR5cGVkZWYgdGhy ZWFkX2FjdF90IHRocmVhZF9hY3RfcG9ydF90Owp0eXBlZGVmIHRocmVhZF9hY3RfYXJyYXlfdCB0 aHJlYWRfYWN0X3BvcnRfYXJyYXlfdDsKdHlwZWRlZiBzZW1hcGhvcmVfdCBzZW1hcGhvcmVfcG9y dF90Owp0eXBlZGVmIGxvY2tfc2V0X3QgbG9ja19zZXRfcG9ydF90Owp0eXBlZGVmIGxlZGdlcl90 IGxlZGdlcl9wb3J0X3Q7CnR5cGVkZWYgbGVkZ2VyX2FycmF5X3QgbGVkZ2VyX3BvcnRfYXJyYXlf dDsKdHlwZWRlZiBhbGFybV90IGFsYXJtX3BvcnRfdDsKdHlwZWRlZiBjbG9ja19zZXJ2X3QgY2xv Y2tfc2Vydl9wb3J0X3Q7CnR5cGVkZWYgY2xvY2tfY3RybF90IGNsb2NrX2N0cmxfcG9ydF90Owp0 eXBlZGVmIGV4Y2VwdGlvbl9oYW5kbGVyX3QgZXhjZXB0aW9uX3BvcnRfdDsKdHlwZWRlZiBleGNl cHRpb25faGFuZGxlcl9hcnJheV90IGV4Y2VwdGlvbl9wb3J0X2FycmFyeV90OwoKCiNkZWZpbmUg VEFTS19OVUxMICgodGFza190KSAwKQojZGVmaW5lIFRIUkVBRF9OVUxMICgodGhyZWFkX3QpIDAp CiNkZWZpbmUgVEhSX0FDVF9OVUxMICgodGhyZWFkX2FjdF90KSAwKQojZGVmaW5lIElQQ19TUEFD RV9OVUxMICgoaXBjX3NwYWNlX3QpIDApCiNkZWZpbmUgSE9TVF9OVUxMICgoaG9zdF90KSAwKQoj ZGVmaW5lIEhPU1RfUFJJVl9OVUxMICgoaG9zdF9wcml2X3QpMCkKI2RlZmluZSBIT1NUX1NFQ1VS SVRZX05VTEwgKChob3N0X3NlY3VyaXR5X3QpMCkKI2RlZmluZSBQUk9DRVNTT1JfU0VUX05VTEwg KChwcm9jZXNzb3Jfc2V0X3QpIDApCiNkZWZpbmUgUFJPQ0VTU09SX05VTEwgKChwcm9jZXNzb3Jf dCkgMCkKI2RlZmluZSBTRU1BUEhPUkVfTlVMTCAoKHNlbWFwaG9yZV90KSAwKQojZGVmaW5lIExP Q0tfU0VUX05VTEwgKChsb2NrX3NldF90KSAwKQojZGVmaW5lIExFREdFUl9OVUxMICgobGVkZ2Vy X3QpIDApCiNkZWZpbmUgQUxBUk1fTlVMTCAoKGFsYXJtX3QpIDApCiNkZWZpbmUgQ0xPQ0tfTlVM TCAoKGNsb2NrX3QpIDApCiNkZWZpbmUgVU5EX1NFUlZFUl9OVUxMICgoVU5EU2VydmVyUmVmKSAw KQoKdHlwZWRlZiBpbnRlZ2VyX3QgbGVkZ2VyX2l0ZW1fdDsKdHlwZWRlZiB2bV9vZmZzZXRfdCAq ZW11bGF0aW9uX3ZlY3Rvcl90Owp0eXBlZGVmIGNoYXIgKnVzZXJfc3Vic3lzdGVtX3Q7CgoKCgoK IyAxICIvdXNyL2luY2x1ZGUvbWFjaC9zdGRfdHlwZXMuaCIgMSAzIDQKIyA1OCAiL3Vzci9pbmNs dWRlL21hY2gvc3RkX3R5cGVzLmgiIDMgNAojZGVmaW5lIFNURF9UWVBFU19IXyAKIyAyMDkgIi91 c3IvaW5jbHVkZS9tYWNoL21hY2hfdHlwZXMuaCIgMiAzIDQKIyA2NyAiL3Vzci9pbmNsdWRlL3B0 aHJlYWQuaCIgMiAzIDQKIyA5NiAiL3Vzci9pbmNsdWRlL3B0aHJlYWQuaCIgMyA0CgojIDEwNyAi L3Vzci9pbmNsdWRlL3B0aHJlYWQuaCIgMyA0CiNkZWZpbmUgcHRocmVhZF9jbGVhbnVwX3B1c2go ZnVuYyx2YWwpIHsgc3RydWN0IF9wdGhyZWFkX2hhbmRsZXJfcmVjIF9faGFuZGxlcjsgcHRocmVh ZF90IF9fc2VsZiA9IHB0aHJlYWRfc2VsZigpOyBfX2hhbmRsZXIucm91dGluZSA9IGZ1bmM7IF9f aGFuZGxlci5hcmcgPSB2YWw7IF9faGFuZGxlci5uZXh0ID0gX19zZWxmLT5jbGVhbnVwX3N0YWNr OyBfX3NlbGYtPmNsZWFudXBfc3RhY2sgPSAmX19oYW5kbGVyOwojIDExNiAiL3Vzci9pbmNsdWRl L3B0aHJlYWQuaCIgMyA0CiNkZWZpbmUgcHRocmVhZF9jbGVhbnVwX3BvcChleGVjdXRlKSBfX3Nl bGYtPmNsZWFudXBfc3RhY2sgPSBfX2hhbmRsZXIubmV4dDsgaWYgKGV4ZWN1dGUpIChfX2hhbmRs ZXIucm91dGluZSkoX19oYW5kbGVyLmFyZyk7IH0KIyAxMjYgIi91c3IvaW5jbHVkZS9wdGhyZWFk LmgiIDMgNAojZGVmaW5lIFBUSFJFQURfQ1JFQVRFX0pPSU5BQkxFIDEKI2RlZmluZSBQVEhSRUFE X0NSRUFURV9ERVRBQ0hFRCAyCgojZGVmaW5lIFBUSFJFQURfSU5IRVJJVF9TQ0hFRCAxCiNkZWZp bmUgUFRIUkVBRF9FWFBMSUNJVF9TQ0hFRCAyCgojZGVmaW5lIFBUSFJFQURfQ0FOQ0VMX0VOQUJM RSAweDAxCiNkZWZpbmUgUFRIUkVBRF9DQU5DRUxfRElTQUJMRSAweDAwCiNkZWZpbmUgUFRIUkVB RF9DQU5DRUxfREVGRVJSRUQgMHgwMgojZGVmaW5lIFBUSFJFQURfQ0FOQ0VMX0FTWU5DSFJPTk9V UyAweDAwCgoKI2RlZmluZSBQVEhSRUFEX1NDT1BFX1NZU1RFTSAxCiNkZWZpbmUgUFRIUkVBRF9T Q09QRV9QUk9DRVNTIDIKCgojZGVmaW5lIFBUSFJFQURfUFJPQ0VTU19TSEFSRUQgMQojZGVmaW5l IFBUSFJFQURfUFJPQ0VTU19QUklWQVRFIDIKIyAxNTMgIi91c3IvaW5jbHVkZS9wdGhyZWFkLmgi IDMgNAojZGVmaW5lIFBUSFJFQURfUFJJT19OT05FIDAKI2RlZmluZSBQVEhSRUFEX1BSSU9fSU5I RVJJVCAxCiNkZWZpbmUgUFRIUkVBRF9QUklPX1BST1RFQ1QgMgoKCgoKI2RlZmluZSBQVEhSRUFE X01VVEVYX05PUk1BTCAwCiNkZWZpbmUgUFRIUkVBRF9NVVRFWF9FUlJPUkNIRUNLIDEKI2RlZmlu ZSBQVEhSRUFEX01VVEVYX1JFQ1VSU0lWRSAyCiNkZWZpbmUgUFRIUkVBRF9NVVRFWF9ERUZBVUxU IFBUSFJFQURfTVVURVhfTk9STUFMCgoKCgojZGVmaW5lIFBUSFJFQURfTVVURVhfSU5JVElBTEla RVIge19QVEhSRUFEX01VVEVYX1NJR19pbml0LCB7MH19CiMgMTc4ICIvdXNyL2luY2x1ZGUvcHRo cmVhZC5oIiAzIDQKI2RlZmluZSBQVEhSRUFEX0NPTkRfSU5JVElBTElaRVIge19QVEhSRUFEX0NP TkRfU0lHX2luaXQsIHswfX0KCgoKCgojZGVmaW5lIFBUSFJFQURfT05DRV9JTklUIHtfUFRIUkVB RF9PTkNFX1NJR19pbml0LCB7MH19CgoKCgoKIyAxICJzeXMvdGltZS5oIiAxIDMgNAojIDIzICJz eXMvdGltZS5oIiAzCiMgMzUgInN5cy90aW1lLmgiIDMKI2RlZmluZSBfR0xfU1lTX1RJTUVfSCAK CgojIDEgIi91c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAxIDMgNAojIDU5ICIvdXNyL2luY2x1ZGUv c3lzL3RpbWUuaCIgMyA0CiNkZWZpbmUgX1NZU19USU1FX0hfIAojIDY4ICIvdXNyL2luY2x1ZGUv c3lzL3RpbWUuaCIgMyA0CnN0cnVjdCB0aW1ldmFsIHsKICAgICAgICBnbF9pbnQzMl90IHR2X3Nl YzsKICAgICAgICBnbF9pbnQzMl90IHR2X3VzZWM7Cn07CiMgODQgIi91c3IvaW5jbHVkZS9zeXMv dGltZS5oIiAzIDQKI2RlZmluZSBUSU1FVkFMX1RPX1RJTUVTUEVDKHR2LHRzKSB7ICh0cyktPnR2 X3NlYyA9ICh0diktPnR2X3NlYzsgKHRzKS0+dHZfbnNlYyA9ICh0diktPnR2X3VzZWMgKiAxMDAw OyB9CgoKCiNkZWZpbmUgVElNRVNQRUNfVE9fVElNRVZBTCh0dix0cykgeyAodHYpLT50dl9zZWMg PSAodHMpLT50dl9zZWM7ICh0diktPnR2X3VzZWMgPSAodHMpLT50dl9uc2VjIC8gMTAwMDsgfQoK CgoKc3RydWN0IHRpbWV6b25lIHsKICAgICAgICBpbnQgdHpfbWludXRlc3dlc3Q7CiAgICAgICAg aW50IHR6X2RzdHRpbWU7Cn07CiNkZWZpbmUgRFNUX05PTkUgMAojZGVmaW5lIERTVF9VU0EgMQoj ZGVmaW5lIERTVF9BVVNUIDIKI2RlZmluZSBEU1RfV0VUIDMKI2RlZmluZSBEU1RfTUVUIDQKI2Rl ZmluZSBEU1RfRUVUIDUKI2RlZmluZSBEU1RfQ0FOIDYKCiNkZWZpbmUgdGltZV9zZWNvbmQgdGlt ZS50dl9zZWMKCgojZGVmaW5lIHRpbWVyY2xlYXIodHZwKSAodHZwKS0+dHZfc2VjID0gKHR2cCkt PnR2X3VzZWMgPSAwCiNkZWZpbmUgdGltZXJpc3NldCh0dnApICgodHZwKS0+dHZfc2VjIHx8ICh0 dnApLT50dl91c2VjKQojZGVmaW5lIHRpbWVyY21wKHR2cCx1dnAsY21wKSAoKCh0dnApLT50dl9z ZWMgPT0gKHV2cCktPnR2X3NlYykgPyAoKHR2cCktPnR2X3VzZWMgY21wICh1dnApLT50dl91c2Vj KSA6ICgodHZwKS0+dHZfc2VjIGNtcCAodXZwKS0+dHZfc2VjKSkKCgoKI2RlZmluZSB0aW1lcmFk ZCh0dnAsdXZwLHZ2cCkgZG8geyAodnZwKS0+dHZfc2VjID0gKHR2cCktPnR2X3NlYyArICh1dnAp LT50dl9zZWM7ICh2dnApLT50dl91c2VjID0gKHR2cCktPnR2X3VzZWMgKyAodXZwKS0+dHZfdXNl YzsgaWYgKCh2dnApLT50dl91c2VjID49IDEwMDAwMDApIHsgKHZ2cCktPnR2X3NlYysrOyAodnZw KS0+dHZfdXNlYyAtPSAxMDAwMDAwOyB9IH0gd2hpbGUgKDApCiMgMTIzICIvdXNyL2luY2x1ZGUv c3lzL3RpbWUuaCIgMyA0CiNkZWZpbmUgdGltZXJzdWIodHZwLHV2cCx2dnApIGRvIHsgKHZ2cCkt PnR2X3NlYyA9ICh0dnApLT50dl9zZWMgLSAodXZwKS0+dHZfc2VjOyAodnZwKS0+dHZfdXNlYyA9 ICh0dnApLT50dl91c2VjIC0gKHV2cCktPnR2X3VzZWM7IGlmICgodnZwKS0+dHZfdXNlYyA8IDAp IHsgKHZ2cCktPnR2X3NlYy0tOyAodnZwKS0+dHZfdXNlYyArPSAxMDAwMDAwOyB9IH0gd2hpbGUg KDApCiMgMTMzICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMyA0CiNkZWZpbmUgdGltZXZhbGNt cChsLHIsY21wKSB0aW1lcmNtcChsLCByLCBjbXApCgoKCgoKI2RlZmluZSBJVElNRVJfUkVBTCAw CiNkZWZpbmUgSVRJTUVSX1ZJUlRVQUwgMQojZGVmaW5lIElUSU1FUl9QUk9GIDIKCnN0cnVjdCBp dGltZXJ2YWwgewogICAgICAgIHN0cnVjdCB0aW1ldmFsIGl0X2ludGVydmFsOwogICAgICAgIHN0 cnVjdCB0aW1ldmFsIGl0X3ZhbHVlOwp9OwoKCgoKc3RydWN0IGNsb2NraW5mbyB7CiAgICAgICAg aW50IGh6OwogICAgICAgIGludCB0aWNrOwogICAgICAgIGludCB0aWNrYWRqOwogICAgICAgIGlu dCBzdGF0aHo7CiAgICAgICAgaW50IHByb2ZoejsKfTsKIyAxNzYgIi91c3IvaW5jbHVkZS9zeXMv dGltZS5oIiAzIDQKIyAxICJ0aW1lLmgiIDEgMyA0CiMgMjEgInRpbWUuaCIgMwojIDE3NyAiL3Vz ci9pbmNsdWRlL3N5cy90aW1lLmgiIDIgMyA0CgoKCgoKaW50IGFkanRpbWUgKGNvbnN0IHN0cnVj dCB0aW1ldmFsICosIHN0cnVjdCB0aW1ldmFsICopOwppbnQgZnV0aW1lcyAoaW50LCBjb25zdCBz dHJ1Y3QgdGltZXZhbCAqKTsKaW50IGdldGl0aW1lciAoaW50LCBzdHJ1Y3QgaXRpbWVydmFsICop OwppbnQgZ2V0dGltZW9mZGF5IChzdHJ1Y3QgdGltZXZhbCAqLCBzdHJ1Y3QgdGltZXpvbmUgKik7 CmludCBzZXRpdGltZXIgKGludCwgY29uc3Qgc3RydWN0IGl0aW1lcnZhbCAqLCBzdHJ1Y3QgaXRp bWVydmFsICopOwppbnQgc2V0dGltZW9mZGF5IChjb25zdCBzdHJ1Y3QgdGltZXZhbCAqLCBjb25z dCBzdHJ1Y3QgdGltZXpvbmUgKik7CmludCB1dGltZXMgKGNvbnN0IGNoYXIgKiwgY29uc3Qgc3Ry dWN0IHRpbWV2YWwgKik7CgojIDM5ICJzeXMvdGltZS5oIiAyIDMKIyA0MTQgInN5cy90aW1lLmgi IDMKZXh0ZXJuIGludCBfZ2xfY3h4YWxpYXNfZHVtbXk7CgoKZXh0ZXJuIGludCBfZ2xfY3h4YWxp YXNfZHVtbXk7CiMgMTkxICIvdXNyL2luY2x1ZGUvcHRocmVhZC5oIiAyIDMgNAoKCgoKaW50IHB0 aHJlYWRfYXR0cl9kZXN0cm95KHB0aHJlYWRfYXR0cl90ICphdHRyKTsKaW50IHB0aHJlYWRfYXR0 cl9nZXRkZXRhY2hzdGF0ZShjb25zdCBwdGhyZWFkX2F0dHJfdCAqYXR0ciwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmRldGFjaHN0YXRlKTsKaW50IHB0aHJlYWRf YXR0cl9nZXRpbmhlcml0c2NoZWQoY29uc3QgcHRocmVhZF9hdHRyX3QgKmF0dHIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqaW5oZXJpdHNjaGVkKTsKaW50IHB0 aHJlYWRfYXR0cl9nZXRzY2hlZHBhcmFtKGNvbnN0IHB0aHJlYWRfYXR0cl90ICphdHRyLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNjaGVkX3BhcmFtICpwYXJh bSk7CmludCBwdGhyZWFkX2F0dHJfZ2V0c2NoZWRwb2xpY3koY29uc3QgcHRocmVhZF9hdHRyX3Qg KmF0dHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpwb2xpY3kp OwppbnQgcHRocmVhZF9hdHRyX2dldHN0YWNrYWRkcihjb25zdCBwdGhyZWFkX2F0dHJfdCAqYXR0 ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoqc3RhY2thZGRy KTsKaW50IHB0aHJlYWRfYXR0cl9nZXRzdGFja3NpemUoY29uc3QgcHRocmVhZF9hdHRyX3QgKmF0 dHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpzdGFja3Np emUpOwppbnQgcHRocmVhZF9hdHRyX2dldHN0YWNrKGNvbnN0IHB0aHJlYWRfYXR0cl90ICphdHRy LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKipzdGFja2FkZHIs IHNpemVfdCAqc3RhY2tzaXplKTsKaW50IHB0aHJlYWRfYXR0cl9nZXRndWFyZHNpemUoY29uc3Qg cHRocmVhZF9hdHRyX3QgKmF0dHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2l6ZV90ICpndWFyZHNpemUpOwppbnQgcHRocmVhZF9hdHRyX2luaXQocHRocmVhZF9hdHRy X3QgKmF0dHIpOwppbnQgcHRocmVhZF9hdHRyX3NldGRldGFjaHN0YXRlKHB0aHJlYWRfYXR0cl90 ICphdHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXRhY2hz dGF0ZSk7CmludCBwdGhyZWFkX2F0dHJfc2V0aW5oZXJpdHNjaGVkKHB0aHJlYWRfYXR0cl90ICph dHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5oZXJpdHNj aGVkKTsKaW50IHB0aHJlYWRfYXR0cl9zZXRzY2hlZHBhcmFtKHB0aHJlYWRfYXR0cl90ICphdHRy LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNjaGVk X3BhcmFtICpwYXJhbSk7CmludCBwdGhyZWFkX2F0dHJfc2V0c2NoZWRwb2xpY3kocHRocmVhZF9h dHRyX3QgKmF0dHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBv bGljeSk7CmludCBwdGhyZWFkX2F0dHJfc2V0c3RhY2thZGRyKHB0aHJlYWRfYXR0cl90ICphdHRy LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnN0YWNrYWRkcik7 CmludCBwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXplKHB0aHJlYWRfYXR0cl90ICphdHRyLCBzaXpl X3Qgc3RhY2tzaXplKTsKaW50IHB0aHJlYWRfYXR0cl9zZXRndWFyZHNpemUocHRocmVhZF9hdHRy X3QgKmF0dHIsIHNpemVfdCBndWFyZHNpemUpOwppbnQgcHRocmVhZF9hdHRyX3NldHN0YWNrKHB0 aHJlYWRfYXR0cl90ICphdHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZvaWQgKnN0YWNrYWRkciwgc2l6ZV90IHN0YWNrc2l6ZSk7CmludCBwdGhyZWFkX2NhbmNlbChw dGhyZWFkX3QgdGhyZWFkKTsKaW50IHB0aHJlYWRfc2V0Y2FuY2Vsc3RhdGUoaW50IHN0YXRlLCBp bnQgKm9sZHN0YXRlKTsKaW50IHB0aHJlYWRfc2V0Y2FuY2VsdHlwZShpbnQgdHlwZSwgaW50ICpv bGR0eXBlKTsKdm9pZCBwdGhyZWFkX3Rlc3RjYW5jZWwodm9pZCk7CmludCBwdGhyZWFkX2NvbmRf YnJvYWRjYXN0KHB0aHJlYWRfY29uZF90ICpjb25kKTsKaW50IHB0aHJlYWRfY29uZF9kZXN0cm95 KHB0aHJlYWRfY29uZF90ICpjb25kKTsKaW50IHB0aHJlYWRfY29uZF9pbml0KHB0aHJlYWRfY29u ZF90ICpjb25kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHRocmVhZF9jb25k YXR0cl90ICphdHRyKTsKaW50IHB0aHJlYWRfY29uZF9zaWduYWwocHRocmVhZF9jb25kX3QgKmNv bmQpOwppbnQgcHRocmVhZF9jb25kX3dhaXQocHRocmVhZF9jb25kX3QgKmNvbmQsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwdGhyZWFkX211dGV4X3QgKm11dGV4KTsKaW50IHB0aHJlYWRf Y29uZF90aW1lZHdhaXQocHRocmVhZF9jb25kX3QgKmNvbmQsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqYWJzdGltZSk7CmludCBwdGhyZWFk X2NvbmRhdHRyX2luaXQocHRocmVhZF9jb25kYXR0cl90ICphdHRyKTsKaW50IHB0aHJlYWRfY29u ZGF0dHJfZGVzdHJveShwdGhyZWFkX2NvbmRhdHRyX3QgKmF0dHIpOwppbnQgcHRocmVhZF9jb25k YXR0cl9nZXRwc2hhcmVkKGNvbnN0IHB0aHJlYWRfY29uZGF0dHJfdCAqYXR0ciwKICAgICAgICAg ICAgICAgICAgICAgICAgaW50ICpwc2hhcmVkKTsKaW50IHB0aHJlYWRfY29uZGF0dHJfc2V0cHNo YXJlZChwdGhyZWFkX2NvbmRhdHRyX3QgKmF0dHIsCiAgICAgICAgICAgICAgICAgICAgICAgIGlu dCBwc2hhcmVkKTsKaW50IHB0aHJlYWRfY3JlYXRlKHB0aHJlYWRfdCAqdGhyZWFkLAogICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgcHRocmVhZF9hdHRyX3QgKmF0dHIsCiAgICAgICAgICAg ICAgICAgICAgICAgICB2b2lkICooKnN0YXJ0X3JvdXRpbmUpKHZvaWQgKiksCiAgICAgICAgICAg ICAgICAgICAgICAgICB2b2lkICphcmcpOwppbnQgcHRocmVhZF9kZXRhY2gocHRocmVhZF90IHRo cmVhZCk7CmludCBwdGhyZWFkX2VxdWFsKHB0aHJlYWRfdCB0MSwKICAgICAgICAgICAgICAgICAg ICAgICAgcHRocmVhZF90IHQyKTsKdm9pZCBwdGhyZWFkX2V4aXQodm9pZCAqdmFsdWVfcHRyKSBf X2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKTsKaW50IHB0aHJlYWRfa2lsbChwdGhyZWFkX3Qs IGludCk7CmludCBwdGhyZWFkX3NpZ21hc2soaW50LCBjb25zdCBzaWdzZXRfdCAqLCBzaWdzZXRf dCAqKTsKaW50IHB0aHJlYWRfZ2V0c2NoZWRwYXJhbShwdGhyZWFkX3QgdGhyZWFkLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqcG9saWN5LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBzY2hlZF9wYXJhbSAqcGFyYW0pOwppbnQgcHRocmVhZF9qb2lu KHB0aHJlYWRfdCB0aHJlYWQsCiAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqKnZhbHVlX3B0 cik7CmludCBwdGhyZWFkX211dGV4X2Rlc3Ryb3kocHRocmVhZF9tdXRleF90ICptdXRleCk7Cmlu dCBwdGhyZWFkX211dGV4X2dldHByaW9jZWlsaW5nKGNvbnN0IHB0aHJlYWRfbXV0ZXhfdCAqbXV0 ZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqcHJpb2NlaWxp bmcpOwppbnQgcHRocmVhZF9tdXRleF9pbml0KHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHRocmVhZF9tdXRleGF0dHJfdCAqYXR0cik7 CmludCBwdGhyZWFkX211dGV4X2xvY2socHRocmVhZF9tdXRleF90ICptdXRleCk7CmludCBwdGhy ZWFkX211dGV4X3NldHByaW9jZWlsaW5nKHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmlvY2VpbGluZywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpvbGRfcHJpb2NlaWxpbmcpOwppbnQg cHRocmVhZF9tdXRleF90cnlsb2NrKHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgpOwppbnQgcHRocmVh ZF9tdXRleF91bmxvY2socHRocmVhZF9tdXRleF90ICptdXRleCk7CmludCBwdGhyZWFkX211dGV4 YXR0cl9kZXN0cm95KHB0aHJlYWRfbXV0ZXhhdHRyX3QgKmF0dHIpOwppbnQgcHRocmVhZF9tdXRl eGF0dHJfZ2V0cHJpb2NlaWxpbmcoY29uc3QgcHRocmVhZF9tdXRleGF0dHJfdCAqYXR0ciwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqcHJpb2NlaWxpbmcp OwppbnQgcHRocmVhZF9tdXRleGF0dHJfZ2V0cHJvdG9jb2woY29uc3QgcHRocmVhZF9tdXRleGF0 dHJfdCAqYXR0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAq cHJvdG9jb2wpOwppbnQgcHRocmVhZF9tdXRleGF0dHJfZ2V0cHNoYXJlZChjb25zdCBwdGhyZWFk X211dGV4YXR0cl90ICphdHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50ICpwc2hhcmVkKTsKaW50IHB0aHJlYWRfbXV0ZXhhdHRyX2dldHR5cGUoY29uc3QgcHRo cmVhZF9tdXRleGF0dHJfdCAqYXR0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludCAqdHlwZSk7CmludCBwdGhyZWFkX211dGV4YXR0cl9pbml0KHB0aHJlYWRfbXV0 ZXhhdHRyX3QgKmF0dHIpOwppbnQgcHRocmVhZF9tdXRleGF0dHJfc2V0cHJpb2NlaWxpbmcocHRo cmVhZF9tdXRleGF0dHJfdCAqYXR0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCBwcmlvY2VpbGluZyk7CmludCBwdGhyZWFkX211dGV4YXR0cl9zZXRwcm90 b2NvbChwdGhyZWFkX211dGV4YXR0cl90ICphdHRyLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IHByb3RvY29sKTsKaW50IHB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5 cGUocHRocmVhZF9tdXRleGF0dHJfdCAqYXR0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCB0eXBlKTsKaW50IHB0aHJlYWRfbXV0ZXhhdHRyX3NldHBzaGFyZWQo cHRocmVhZF9tdXRleGF0dHJfdCAqYXR0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCBwc2hhcmVkKTsKaW50IHB0aHJlYWRfb25jZShwdGhyZWFkX29uY2VfdCAq b25jZV9jb250cm9sLAogICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCppbml0X3JvdXRpbmUp KHZvaWQpKTsKcHRocmVhZF90IHB0aHJlYWRfc2VsZih2b2lkKTsKaW50IHB0aHJlYWRfc2V0c2No ZWRwYXJhbShwdGhyZWFkX3QgdGhyZWFkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCBwb2xpY3ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0 IHNjaGVkX3BhcmFtICpwYXJhbSk7CmludCBwdGhyZWFkX2tleV9jcmVhdGUocHRocmVhZF9rZXlf dCAqa2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpkZXN0cnVjdG9yKSh2 b2lkICopKTsKaW50IHB0aHJlYWRfa2V5X2RlbGV0ZShwdGhyZWFkX2tleV90IGtleSk7CmludCBw dGhyZWFkX3NldHNwZWNpZmljKHB0aHJlYWRfa2V5X3Qga2V5LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCB2b2lkICp2YWx1ZSk7CnZvaWQgKnB0aHJlYWRfZ2V0c3BlY2lmaWMo cHRocmVhZF9rZXlfdCBrZXkpOwppbnQgcHRocmVhZF9hdHRyX2dldHNjb3BlKHB0aHJlYWRfYXR0 cl90ICosIGludCAqKTsKaW50IHB0aHJlYWRfYXR0cl9zZXRzY29wZShwdGhyZWFkX2F0dHJfdCAq LCBpbnQpOwppbnQgcHRocmVhZF9nZXRjb25jdXJyZW5jeSh2b2lkKTsKaW50IHB0aHJlYWRfc2V0 Y29uY3VycmVuY3koaW50KTsKaW50IHB0aHJlYWRfcndsb2NrX2Rlc3Ryb3kocHRocmVhZF9yd2xv Y2tfdCAqIHJ3bG9jayk7CmludCBwdGhyZWFkX3J3bG9ja19pbml0KHB0aHJlYWRfcndsb2NrX3Qg KiByd2xvY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHRocmVhZF9yd2xv Y2thdHRyX3QgKmF0dHIpOwppbnQgcHRocmVhZF9yd2xvY2tfcmRsb2NrKHB0aHJlYWRfcndsb2Nr X3QgKnJ3bG9jayk7CmludCBwdGhyZWFkX3J3bG9ja190cnlyZGxvY2socHRocmVhZF9yd2xvY2tf dCAqcndsb2NrKTsKaW50IHB0aHJlYWRfcndsb2NrX3dybG9jayhwdGhyZWFkX3J3bG9ja190ICpy d2xvY2spOwppbnQgcHRocmVhZF9yd2xvY2tfdHJ5d3Jsb2NrKHB0aHJlYWRfcndsb2NrX3QgKnJ3 bG9jayk7CmludCBwdGhyZWFkX3J3bG9ja191bmxvY2socHRocmVhZF9yd2xvY2tfdCAqcndsb2Nr KTsKaW50IHB0aHJlYWRfcndsb2NrYXR0cl9pbml0KHB0aHJlYWRfcndsb2NrYXR0cl90ICphdHRy KTsKaW50IHB0aHJlYWRfcndsb2NrYXR0cl9kZXN0cm95KHB0aHJlYWRfcndsb2NrYXR0cl90ICph dHRyKTsKaW50IHB0aHJlYWRfcndsb2NrYXR0cl9nZXRwc2hhcmVkKGNvbnN0IHB0aHJlYWRfcnds b2NrYXR0cl90ICphdHRyLAogICAgICAgICAgICAgICAgICAgICAgICBpbnQgKnBzaGFyZWQpOwpp bnQgcHRocmVhZF9yd2xvY2thdHRyX3NldHBzaGFyZWQocHRocmVhZF9yd2xvY2thdHRyX3QgKmF0 dHIsCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBwc2hhcmVkKTsKCgoKaW50IHB0aHJlYWRf aXNfdGhyZWFkZWRfbnAodm9pZCk7CgoKaW50IHB0aHJlYWRfbWFpbl9ucCh2b2lkKTsKCgptYWNo X3BvcnRfdCBwdGhyZWFkX21hY2hfdGhyZWFkX25wKHB0aHJlYWRfdCk7CnNpemVfdCBwdGhyZWFk X2dldF9zdGFja3NpemVfbnAocHRocmVhZF90KTsKdm9pZCAqIHB0aHJlYWRfZ2V0X3N0YWNrYWRk cl9ucChwdGhyZWFkX3QpOwoKCmludCBwdGhyZWFkX2NvbmRfc2lnbmFsX3RocmVhZF9ucChwdGhy ZWFkX2NvbmRfdCAqLCBwdGhyZWFkX3QpOwoKCmludCBwdGhyZWFkX2NvbmRfdGltZWR3YWl0X3Jl bGF0aXZlX25wKHB0aHJlYWRfY29uZF90ICpjb25kLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwdGhyZWFkX211dGV4X3QgKm11dGV4LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnJlbHRpbWUpOwoKCmludCBwdGhyZWFkX2Ny ZWF0ZV9zdXNwZW5kZWRfbnAocHRocmVhZF90ICp0aHJlYWQsCiAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBwdGhyZWFkX2F0dHJfdCAqYXR0ciwKICAgICAgICAgICAgICAgICAgICAgICAg IHZvaWQgKigqc3RhcnRfcm91dGluZSkodm9pZCAqKSwKICAgICAgICAgICAgICAgICAgICAgICAg IHZvaWQgKmFyZyk7CnZvaWQgcHRocmVhZF95aWVsZF9ucCh2b2lkKTsKCgojIDY2ICJzaWduYWwu aCIgMiAzCiMgNDExICJzaWduYWwuaCIgMwp0eXBlZGVmIHZvaWQgKCpzaWdoYW5kbGVyX3QpIChp bnQpOwojZGVmaW5lIEdOVUxJQl9kZWZpbmVkX3NpZ2hhbmRsZXJfdCAxCiMgNDQzICJzaWduYWwu aCIgMwojZGVmaW5lIHB0aHJlYWRfc2lnbWFzayBycGxfcHRocmVhZF9zaWdtYXNrCgpleHRlcm4g aW50IHJwbF9wdGhyZWFkX3NpZ21hc2sgKGludCBob3csIGNvbnN0IHNpZ3NldF90ICpuZXdfbWFz aywgc2lnc2V0X3QgKm9sZF9tYXNrKTsKCmV4dGVybiBpbnQgX2dsX2N4eGFsaWFzX2R1bW15Owoj IDQ1NyAic2lnbmFsLmgiIDMKZXh0ZXJuIGludCBfZ2xfY3h4YWxpYXNfZHVtbXk7CiMgMjMyICIv dXNyL2luY2x1ZGUvdW5pc3RkLmgiIDIgMyA0CgppbnQgcHJvZmlsKGNoYXIgKiwgaW50LCBpbnQs IGludCk7CgppbnQgcHNlbGVjdChpbnQsIGZkX3NldCAqLCBmZF9zZXQgKiwgZmRfc2V0ICosCiAg ICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqLCBjb25zdCBzaWdzZXRfdCAqKTsKCnNz aXplX3QgcHdyaXRlKGludCwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIG9mZl90KTsKaW50IHJjbWQo Y2hhciAqKiwgaW50LCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBp bnQgKik7CmludCBycGxfcmVhZGxpbmsoY29uc3QgY2hhciAqLCBjaGFyICosIGludCk7CmludCBy ZWJvb3QoaW50KTsKaW50IHJldm9rZShjb25zdCBjaGFyICopOwppbnQgcnJlc3Zwb3J0KGludCAq KTsKaW50IHJyZXN2cG9ydF9hZihpbnQgKiwgaW50KTsKaW50IHJ1c2Vyb2soY29uc3QgY2hhciAq LCBpbnQsIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKY2hhciAqc2JyayhpbnQpOwppbnQg c2VsZWN0KGludCwgZmRfc2V0ICosIGZkX3NldCAqLCBmZF9zZXQgKiwgc3RydWN0IHRpbWV2YWwg Kik7CmludCBzZXRlZ2lkKGdpZF90KTsKaW50IHNldGV1aWQodWlkX3QpOwppbnQgc2V0Z3JvdXBz KGludCwgY29uc3QgZ2lkX3QgKik7CnZvaWQgc2V0aG9zdGlkKGxvbmcpOwppbnQgc2V0aG9zdG5h bWUoY29uc3QgY2hhciAqLCBpbnQpOwppbnQgc2V0a2V5KGNvbnN0IGNoYXIgKik7CmludCBzZXRs b2dpbihjb25zdCBjaGFyICopOwp2b2lkICpzZXRtb2RlKGNvbnN0IGNoYXIgKik7CmludCBzZXRw Z3JwKHBpZF90IHBpZCwgcGlkX3QgcGdycCk7CmludCBzZXRyZWdpZChnaWRfdCwgZ2lkX3QpOwpp bnQgc2V0cmV1aWQodWlkX3QsIHVpZF90KTsKaW50IHNldHJnaWQoZ2lkX3QpOwppbnQgc2V0cnVp ZCh1aWRfdCk7CnZvaWQgc2V0dXNlcnNoZWxsKHZvaWQpOwppbnQgc3RydG9mZmxhZ3MoY2hhciAq KiwgdV9sb25nICosIHVfbG9uZyAqKTsKaW50IHN3YXBvbihjb25zdCBjaGFyICopOwppbnQgcnBs X3N5bWxpbmsoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwp2b2lkIHN5bmModm9pZCk7Cmlu dCBzeXNjYWxsKGludCwgLi4uKTsKaW50IHRydW5jYXRlKGNvbnN0IGNoYXIgKiwgb2ZmX3QpOwpp bnQgdHR5c2xvdCh2b2lkKTsKdW5zaWduZWQgaW50IHVhbGFybSh1bnNpZ25lZCBpbnQsIHVuc2ln bmVkIGludCk7CmludCB1bmRlbGV0ZShjb25zdCBjaGFyICopOwppbnQgdW53aGl0ZW91dChjb25z dCBjaGFyICopOwppbnQgdXNsZWVwKHVuc2lnbmVkIGludCk7CnZvaWQgKnZhbGxvYyhzaXplX3Qp OwpwaWRfdCBmb3JrKHZvaWQpOwoKZXh0ZXJuIGNoYXIgKnN1Ym9wdGFyZzsKaW50IGdldHN1Ym9w dChjaGFyICoqLCBjaGFyICogY29uc3QgKiwgY2hhciAqKik7CgoKaW50IGdldGF0dHJsaXN0KGNv bnN0IGNoYXIqLHZvaWQqLHZvaWQqLHNpemVfdCx1bnNpZ25lZCBsb25nKTsKaW50IHNldGF0dHJs aXN0KGNvbnN0IGNoYXIqLHZvaWQqLHZvaWQqLHNpemVfdCx1bnNpZ25lZCBsb25nKTsKaW50IGV4 Y2hhbmdlZGF0YShjb25zdCBjaGFyKixjb25zdCBjaGFyKix1bnNpZ25lZCBsb25nKTsKaW50IGNo ZWNrdXNlcmFjY2Vzcyhjb25zdCBjaGFyKix1aWRfdCxnaWRfdCosaW50LGludCx1bnNpZ25lZCBs b25nKTsKaW50IGdldGRpcmVudHJpZXNhdHRyKGludCx2b2lkKix2b2lkKixzaXplX3QsdW5zaWdu ZWQgbG9uZyosdW5zaWduZWQgbG9uZyosdW5zaWduZWQgbG9uZyosdW5zaWduZWQgbG9uZyk7Cmlu dCBzZWFyY2hmcyhjb25zdCBjaGFyKix2b2lkKix2b2lkKix1bnNpZ25lZCBsb25nLHVuc2lnbmVk IGxvbmcsdm9pZCopOwoKaW50IGZzY3RsKGNvbnN0IGNoYXIgKix1bnNpZ25lZCBsb25nLHZvaWQq LHVuc2lnbmVkIGxvbmcpOwoKCgoKIyA0NCAidW5pc3RkLmgiIDIgMwojIDI1ICJjYXJlYWRsaW5r YXQuaCIgMgoKc3RydWN0IGFsbG9jYXRvcjsKIyA0OSAiY2FyZWFkbGlua2F0LmgiCmNoYXIgKmNh cmVhZGxpbmthdCAoaW50IGZkLCBjaGFyIGNvbnN0ICpmaWxlbmFtZSwKICAgICAgICAgICAgICAg ICAgICBjaGFyICpidWZmZXIsIHNpemVfdCBidWZmZXJfc2l6ZSwKICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgYWxsb2NhdG9yIGNvbnN0ICphbGxvYywKICAgICAgICAgICAgICAgICAgICBzc2l6 ZV90ICgqcHJlYWRsaW5rYXQpIChpbnQsIGNoYXIgY29uc3QgKiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICosIHNpemVfdCkpOwojIDY2ICJjYXJlYWRs aW5rYXQuaCIKI2RlZmluZSBBVF9GRENXRCAoLTMwNDE5NjUpCgoKc3NpemVfdCBjYXJlYWRsaW5r YXRjd2QgKGludCBmZCwgY2hhciBjb25zdCAqZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAg ICAgICBjaGFyICpidWZmZXIsIHNpemVfdCBidWZmZXJfc2l6ZSk7CiMgMjQgImNhcmVhZGxpbmth dC5jIiAyCgojIDEgIi91c3IvaW5jbHVkZS9lcnJuby5oIiAxIDMgNAojIDI2ICJjYXJlYWRsaW5r YXQuYyIgMgoKIyAxICJzdGRsaWIuaCIgMQojIDIxICJzdGRsaWIuaCIgMwojIDI4ICJjYXJlYWRs aW5rYXQuYyIgMgoKIyAxICJ1bmlzdGQuaCIgMQojIDIwICJ1bmlzdGQuaCIgMwojIDMwICJjYXJl YWRsaW5rYXQuYyIgMgojIDQwICJjYXJlYWRsaW5rYXQuYyIKIyAxICJhbGxvY2F0b3IuaCIgMQoj IDIxICJhbGxvY2F0b3IuaCIKI2RlZmluZSBfR0xfQUxMT0NBVE9SX0ggCgoKCgoKc3RydWN0IGFs bG9jYXRvcgp7CiMgMzcgImFsbG9jYXRvci5oIgogIHZvaWQgKigqYWxsb2NhdGUpIChzaXplX3Qp OwoKCgoKCiAgdm9pZCAqKCpyZWFsbG9jYXRlKSAodm9pZCAqLCBzaXplX3QpOwoKCiAgdm9pZCAo KmZyZWUpICh2b2lkICopOwoKCgoKCiAgdm9pZCAoKmRpZSkgKHNpemVfdCk7Cn07CgoKZXh0ZXJu IHN0cnVjdCBhbGxvY2F0b3IgY29uc3Qgc3RkbGliX2FsbG9jYXRvcjsKIyA0MSAiY2FyZWFkbGlu a2F0LmMiIDIKCgoKCnNzaXplX3QKY2FyZWFkbGlua2F0Y3dkIChpbnQgZmQsIGNoYXIgY29uc3Qg KmZpbGVuYW1lLCBjaGFyICpidWZmZXIsCiAgICAgICAgICAgICAgICAgc2l6ZV90IGJ1ZmZlcl9z aXplKQp7CgoKICBpZiAoZmQgIT0gKC0zMDQxOTY1KSkKICAgIGFib3J0ICgpOwogIHJldHVybiBy cGxfcmVhZGxpbmsgKGZpbGVuYW1lLCBidWZmZXIsIGJ1ZmZlcl9zaXplKTsKfQojIDc4ICJjYXJl YWRsaW5rYXQuYyIKY2hhciAqCmNhcmVhZGxpbmthdCAoaW50IGZkLCBjaGFyIGNvbnN0ICpmaWxl bmFtZSwKICAgICAgICAgICAgICBjaGFyICpidWZmZXIsIHNpemVfdCBidWZmZXJfc2l6ZSwKICAg ICAgICAgICAgICBzdHJ1Y3QgYWxsb2NhdG9yIGNvbnN0ICphbGxvYywKICAgICAgICAgICAgICBz c2l6ZV90ICgqcHJlYWRsaW5rYXQpIChpbnQsIGNoYXIgY29uc3QgKiwgY2hhciAqLCBzaXplX3Qp KQp7CiAgY2hhciAqYnVmOwogIHNpemVfdCBidWZfc2l6ZTsKICBzaXplX3QgYnVmX3NpemVfbWF4 ID0KICAgIDIxNDc0ODM2NDcgPCAoKDApID8gfiAoKDApID8gKC0gKCgwdWwpICsgMSkgPDwgKCgz MikgPyAoMzIpIC0gMSA6IDApKSA6ICgwdWwpKSA6ICgoKCgwdWwpICsgMSkgPDwgKCgzMikgPyAo MzIpIC0gMSAtICgwKSA6IDApKSAtIDEpICogMiArIDEpID8gKHNpemVfdCkgMjE0NzQ4MzY0NyAr IDEgOiAoKDApID8gfiAoKDApID8gKC0gKCgwdWwpICsgMSkgPDwgKCgzMikgPyAoMzIpIC0gMSA6 IDApKSA6ICgwdWwpKSA6ICgoKCgwdWwpICsgMSkgPDwgKCgzMikgPyAoMzIpIC0gMSAtICgwKSA6 IDApKSAtIDEpICogMiArIDEpOwogIGNoYXIgc3RhY2tfYnVmWzEwMjRdOwoKICBpZiAoISBhbGxv YykKICAgIGFsbG9jID0gJnN0ZGxpYl9hbGxvY2F0b3I7CgogIGlmICghIGJ1ZmZlcl9zaXplKQog ICAgewoKCgoKICAgICAgYnVmZmVyID0gc3RhY2tfYnVmOwogICAgICBidWZmZXJfc2l6ZSA9IHNp emVvZiBzdGFja19idWY7CiAgICB9CgogIGJ1ZiA9IGJ1ZmZlcjsKICBidWZfc2l6ZSA9IGJ1ZmZl cl9zaXplOwoKICBkbwogICAgewoKICAgICAgc3NpemVfdCBsaW5rX2xlbmd0aCA9IHByZWFkbGlu a2F0IChmZCwgZmlsZW5hbWUsIGJ1ZiwgYnVmX3NpemUpOwogICAgICBzaXplX3QgbGlua19zaXpl OwogICAgICBpZiAobGlua19sZW5ndGggPCAwKQogICAgICAgIHsKCgogICAgICAgICAgaW50IHJl YWRsaW5rYXRfZXJybm8gPSAoKl9fZXJyb3IoKSk7CiAgICAgICAgICBpZiAocmVhZGxpbmthdF9l cnJubyAhPSAzNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgIGlmIChidWYgIT0gYnVmZmVy KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBhbGxvYy0+ZnJlZSAoYnVmKTsK ICAgICAgICAgICAgICAgICAgKCpfX2Vycm9yKCkpID0gcmVhZGxpbmthdF9lcnJubzsKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgfQogICAgICAg IH0KCiAgICAgIGxpbmtfc2l6ZSA9IGxpbmtfbGVuZ3RoOwoKICAgICAgaWYgKGxpbmtfc2l6ZSA8 IGJ1Zl9zaXplKQogICAgICAgIHsKICAgICAgICAgIGJ1ZltsaW5rX3NpemUrK10gPSAnXDAnOwoK ICAgICAgICAgIGlmIChidWYgPT0gc3RhY2tfYnVmKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgY2hhciAqYiA9IChjaGFyICopIGFsbG9jLT5hbGxvY2F0ZSAobGlua19zaXplKTsKICAgICAg ICAgICAgICBidWZfc2l6ZSA9IGxpbmtfc2l6ZTsKICAgICAgICAgICAgICBpZiAoISBiKQogICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgbWVtY3B5IChiLCBidWYsIGxpbmtfc2l6 ZSk7CiAgICAgICAgICAgICAgYnVmID0gYjsKICAgICAgICAgICAgfQogICAgICAgICAgZWxzZSBp ZiAobGlua19zaXplIDwgYnVmX3NpemUgJiYgYnVmICE9IGJ1ZmZlciAmJiBhbGxvYy0+cmVhbGxv Y2F0ZSkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICBjaGFyICpiID0gKGNoYXIgKikgYWxs b2MtPnJlYWxsb2NhdGUgKGJ1ZiwgbGlua19zaXplKTsKICAgICAgICAgICAgICBpZiAoYikKICAg ICAgICAgICAgICAgIGJ1ZiA9IGI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gYnVm OwogICAgICAgIH0KCiAgICAgIGlmIChidWYgIT0gYnVmZmVyKQogICAgICAgIGFsbG9jLT5mcmVl IChidWYpOwoKICAgICAgaWYgKGJ1Zl9zaXplIDw9IGJ1Zl9zaXplX21heCAvIDIpCiAgICAgICAg YnVmX3NpemUgKj0gMjsKICAgICAgZWxzZSBpZiAoYnVmX3NpemUgPCBidWZfc2l6ZV9tYXgpCiAg ICAgICAgYnVmX3NpemUgPSBidWZfc2l6ZV9tYXg7CiAgICAgIGVsc2UgaWYgKGJ1Zl9zaXplX21h eCA8ICgoMCkgPyB+ICgoMCkgPyAoLSAoKDB1bCkgKyAxKSA8PCAoKDMyKSA/ICgzMikgLSAxIDog MCkpIDogKDB1bCkpIDogKCgoKDB1bCkgKyAxKSA8PCAoKDMyKSA/ICgzMikgLSAxIC0gKDApIDog MCkpIC0gMSkgKiAyICsgMSkpCiAgICAgICAgewogICAgICAgICAgKCpfX2Vycm9yKCkpID0gNjM7 CiAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CiAgICAgIGVsc2UKICAgICAgICBicmVhazsK ICAgICAgYnVmID0gKGNoYXIgKikgYWxsb2MtPmFsbG9jYXRlIChidWZfc2l6ZSk7CiAgICB9CiAg d2hpbGUgKGJ1Zik7CgogIGlmIChhbGxvYy0+ZGllKQogICAgYWxsb2MtPmRpZSAoYnVmX3NpemUp OwogICgqX19lcnJvcigpKSA9IDEyOwogIHJldHVybiAwOwp9Cg== --=-=-= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable --=20 ------------------------------------------------------------------- | Klaus Zeitler Alcatel-Lucent | | Lorenzstrasse 10 D-70435 Stuttgart, Germany | | Department: MS/E Building: 004 Office: 1/62 | | Telefon: +49 711 821 43898 | | Email: klaus.zeitler@alcatel-lucent.com | | | | Alcatel-Lucent Deutschland AG | | Sitz der Gesellschaft: Stuttgart =C2=B7 Amtsgericht Stuttgart HRB 4026 | | Vorsitzender des Aufsichtsrates: Michael Oppenhoff | | Vorstand: Wilhelm Dresselhaus (Chairman) =C2=B7 Hans-J=C3=B6rg Daub =C2= =B7 | | Andreas Gehe | ------------------------------------------------------------------- --- The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents. -- Nathaniel Borenstein --=-=-=--