From mboxrd@z Thu Jan 1 00:00:00 1970 From: davidm@hpl.hp.com Date: Tue, 24 Jul 2001 00:03:41 +0000 Subject: [Linux-ia64] gcc3.0/ia64 ICE on linux kernel file fs/ufs/super.c Message-Id: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-ia64@vger.kernel.org >Category: optimization >Synopsis: gcc3.0/ia64 ICE on linux kernel file fs/ufs/super.c >Confidential: no >Severity: serious >Priority: high >Class: ice-on-legal-code >Submitter-Id: net >Originator: davidm@hpl.hp.com >Release: gcc-3.0 >Environment: - IA-64 Linux - gcc -v: Reading specs from /opt/gcc3/lib/gcc-lib/ia64-hp-linux/3.0/specs Configured with: ../gcc-3.0/configure --host=ia64-hp-linux --enable-threads=posix --prefix=/opt/gcc3 Thread model: posix gcc version 3.0 >Description: gcc3.0 crashes with an internal compiler error on the attached file if -O2 is turned on. With -O, the file compiles fine. >How-To-Repeat: $ gcc -O2 -c super.i gcc: Internal error: Segmentation fault (program cc1) Please submit a full bug report. See for instructions. >Fix: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="super.i" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="super.i" IyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX1ZFUlNJT05fXyAiMy4wIgojIDEgImZzL3Vk Zi9zdXBlci5jIgojZGVmaW5lIF9fVVNFUl9MQUJFTF9QUkVGSVhfXwojIDEgImZzL3VkZi9zdXBl ci5jIgojZGVmaW5lIF9fUkVHSVNURVJfUFJFRklYX18KIyAxICJmcy91ZGYvc3VwZXIuYyIKI2Rl ZmluZSBfX0hBVkVfQlVJTFRJTl9TRVRKTVBfXyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZp bmUgX19TSVpFX1RZUEVfXyBsb25nIHVuc2lnbmVkIGludAojIDEgImZzL3VkZi9zdXBlci5jIgoj ZGVmaW5lIF9fUFRSRElGRl9UWVBFX18gbG9uZyBpbnQKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2Rl ZmluZSBfX1dDSEFSX1RZUEVfXyBpbnQKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX1dJ TlRfVFlQRV9fIHVuc2lnbmVkIGludAojIDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5lIF9fU1RE Q19fIDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX0dOVUNfXyAzCiMgMSAiZnMvdWRm L3N1cGVyLmMiCiNkZWZpbmUgX19HTlVDX01JTk9SX18gMAojIDEgImZzL3VkZi9zdXBlci5jIgoj ZGVmaW5lIF9fR05VQ19QQVRDSExFVkVMX18gMAojIDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5l IF9faWE2NCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19pYTY0X18gMQojIDEgImZz L3VkZi9zdXBlci5jIgojZGVmaW5lIF9fbGludXggMQojIDEgImZzL3VkZi9zdXBlci5jIgojZGVm aW5lIF9fbGludXhfXyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX0xPTkdMT05HIDEK IyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBsaW51eCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMi CiNkZWZpbmUgdW5peCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19MUDY0X18gMQoj IDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5lIF9fRUxGX18gMQojIDEgImZzL3VkZi9zdXBlci5j IgojZGVmaW5lIF9faWE2NCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19pYTY0X18g MQojIDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5lIF9fbGludXggMQojIDEgImZzL3VkZi9zdXBl ci5jIgojZGVmaW5lIF9fbGludXhfXyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX0xP TkdMT05HIDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX2xpbnV4X18gMQojIDEgImZz L3VkZi9zdXBlci5jIgojZGVmaW5lIF9fdW5peF9fIDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2Rl ZmluZSBfX0xQNjRfXyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19FTEZfXyAxCiMg MSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19saW51eCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMi CiNkZWZpbmUgX191bml4IDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX09QVElNSVpF X18gMQojIDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5lIF9fU1REQ19IT1NURURfXyAxCiMgMSAi ZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19MT05HX01BWF9fIDkyMjMzNzIwMzY4NTQ3NzU4MDdM CiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19LRVJORUxfXyAxCiMgMSAiZnMvdWRmL3N1 cGVyLmMiCiNkZWZpbmUgTU9EVUxFIDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBNT0RW RVJTSU9OUyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAxCgojZGVmaW5lIF9MSU5VWF9NT0RWRVJTSU9O U19ICiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2RzZXR2ZXIuaCIg MQoKCiNkZWZpbmUgX19TWU1CT0xfVkVSU0lPTih4KSBfX3Zlcl8gIyMgeAojZGVmaW5lIF9fVkVS U0lPTkVEX1NZTUJPTDIoeCwgdikgeCAjIyBfUiAjIyB2CiNkZWZpbmUgX19WRVJTSU9ORURfU1lN Qk9MMSh4LCB2KSBfX1ZFUlNJT05FRF9TWU1CT0wyKHgsdikKI2RlZmluZSBfX1ZFUlNJT05FRF9T WU1CT0woeCkgX19WRVJTSU9ORURfU1lNQk9MMSh4LF9fU1lNQk9MX1ZFUlNJT04oeCkpCgoKI2Rl ZmluZSBfc2V0X3Zlcih4KSBfX1ZFUlNJT05FRF9TWU1CT0woeCkKIyA0ICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvODM5MC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9l aV9vcGVuIHNtcF9jNjMxYjU1ZAojZGVmaW5lIGVpX29wZW4gX3NldF92ZXIoZWlfb3BlbikKI2Rl ZmluZSBfX3Zlcl9laV9jbG9zZSBzbXBfM2M0Y2VhMTYKI2RlZmluZSBlaV9jbG9zZSBfc2V0X3Zl cihlaV9jbG9zZSkKI2RlZmluZSBfX3Zlcl9laV9pbnRlcnJ1cHQgc21wXzMyNjUxOTcxCiNkZWZp bmUgZWlfaW50ZXJydXB0IF9zZXRfdmVyKGVpX2ludGVycnVwdCkKI2RlZmluZSBfX3Zlcl9laV90 eF90aW1lb3V0IHNtcF85N2ZmMGE5OAojZGVmaW5lIGVpX3R4X3RpbWVvdXQgX3NldF92ZXIoZWlf dHhfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9ldGhkZXZfaW5pdCBzbXBfMjViOWQ0YTYKI2RlZmlu ZSBldGhkZXZfaW5pdCBfc2V0X3ZlcihldGhkZXZfaW5pdCkKI2RlZmluZSBfX3Zlcl9OUzgzOTBf aW5pdCBzbXBfNjMxYzZiZTMKI2RlZmluZSBOUzgzOTBfaW5pdCBfc2V0X3ZlcihOUzgzOTBfaW5p dCkKIyA1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgi IDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYWM5N19j b2RlYy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hYzk3X3JlYWRfcHJvYyBzbXBfYmFlNGRhNzIKI2Rl ZmluZSBhYzk3X3JlYWRfcHJvYyBfc2V0X3ZlcihhYzk3X3JlYWRfcHJvYykKI2RlZmluZSBfX3Zl cl9hYzk3X3Byb2JlX2NvZGVjIHNtcF84MjIzZmU1NgojZGVmaW5lIGFjOTdfcHJvYmVfY29kZWMg X3NldF92ZXIoYWM5N19wcm9iZV9jb2RlYykKIyA2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L21vZHVsZXMvYWM5Ny52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hYzk3X2luaXQgc21w XzI2Y2Y3YzMyCiNkZWZpbmUgYWM5N19pbml0IF9zZXRfdmVyKGFjOTdfaW5pdCkKI2RlZmluZSBf X3Zlcl9hYzk3X3NldF92YWx1ZXMgc21wXzhmODA1OGYxCiNkZWZpbmUgYWM5N19zZXRfdmFsdWVz IF9zZXRfdmVyKGFjOTdfc2V0X3ZhbHVlcykKI2RlZmluZSBfX3Zlcl9hYzk3X3NldF9taXhlciBz bXBfYjA4NzZhZDgKI2RlZmluZSBhYzk3X3NldF9taXhlciBfc2V0X3ZlcihhYzk3X3NldF9taXhl cikKI2RlZmluZSBfX3Zlcl9hYzk3X2dldF9yZWdpc3RlciBzbXBfNDc1ZWRlOWMKI2RlZmluZSBh Yzk3X2dldF9yZWdpc3RlciBfc2V0X3ZlcihhYzk3X2dldF9yZWdpc3RlcikKI2RlZmluZSBfX3Zl cl9hYzk3X3B1dF9yZWdpc3RlciBzbXBfYzViN2MwMjcKI2RlZmluZSBhYzk3X3B1dF9yZWdpc3Rl ciBfc2V0X3ZlcihhYzk3X3B1dF9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9hYzk3X2dldF9taXhl cl9zY2FsZWQgc21wXzIwYmE0MmZiCiNkZWZpbmUgYWM5N19nZXRfbWl4ZXJfc2NhbGVkIF9zZXRf dmVyKGFjOTdfZ2V0X21peGVyX3NjYWxlZCkKI2RlZmluZSBfX3Zlcl9hYzk3X21peGVyX2lvY3Rs IHNtcF80ODFmOTJlOAojZGVmaW5lIGFjOTdfbWl4ZXJfaW9jdGwgX3NldF92ZXIoYWM5N19taXhl cl9pb2N0bCkKI2RlZmluZSBfX3Zlcl9hYzk3X3Jlc2V0IHNtcF84NThlMzVkYQojZGVmaW5lIGFj OTdfcmVzZXQgX3NldF92ZXIoYWM5N19yZXNldCkKIyA3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L21vZHVsZXMvYWNpLnZlciIgMQojZGVmaW5lIF9fdmVyX2FjaV9wb3J0IHNt cF8wZDgyYWRiNgojZGVmaW5lIGFjaV9wb3J0IF9zZXRfdmVyKGFjaV9wb3J0KQojZGVmaW5lIF9f dmVyX2FjaV9pZGNvZGUgc21wXzJmNGRjZGNlCiNkZWZpbmUgYWNpX2lkY29kZSBfc2V0X3Zlcihh Y2lfaWRjb2RlKQojZGVmaW5lIF9fdmVyX2FjaV92ZXJzaW9uIHNtcF85MzM1MGM4NwojZGVmaW5l IGFjaV92ZXJzaW9uIF9zZXRfdmVyKGFjaV92ZXJzaW9uKQojZGVmaW5lIF9fdmVyX2FjaV9yd19j bWQgc21wX2NjN2M0Y2Q4CiNkZWZpbmUgYWNpX3J3X2NtZCBfc2V0X3ZlcihhY2lfcndfY21kKQoj IDggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hY3BpX2tzeW1z LnZlciIgMQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfZnJlZSBzbXBfNDNiOWJiYjQKI2RlZmluZSBh Y3BpX29zX2ZyZWUgX3NldF92ZXIoYWNwaV9vc19mcmVlKQojZGVmaW5lIF9fdmVyX2FjcGlfb3Nf YnJlYWtwb2ludCBzbXBfNDQ4NDJkOWQKI2RlZmluZSBhY3BpX29zX2JyZWFrcG9pbnQgX3NldF92 ZXIoYWNwaV9vc19icmVha3BvaW50KQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfcHJpbnRmIHNtcF82 ZjU2MTVhZgojZGVmaW5lIGFjcGlfb3NfcHJpbnRmIF9zZXRfdmVyKGFjcGlfb3NfcHJpbnRmKQoj ZGVmaW5lIF9fdmVyX2FjcGlfb3NfY2FsbG9jYXRlIHNtcF8wYjNhMWUyMQojZGVmaW5lIGFjcGlf b3NfY2FsbG9jYXRlIF9zZXRfdmVyKGFjcGlfb3NfY2FsbG9jYXRlKQojZGVmaW5lIF9fdmVyX2Fj cGlfb3Nfc2xlZXAgc21wXzA4MDgwM2M4CiNkZWZpbmUgYWNwaV9vc19zbGVlcCBfc2V0X3Zlcihh Y3BpX29zX3NsZWVwKQojZGVmaW5lIF9fdmVyX2FjcGlfb3Nfc2xlZXBfdXNlYyBzbXBfZTQwODU2 NjQKI2RlZmluZSBhY3BpX29zX3NsZWVwX3VzZWMgX3NldF92ZXIoYWNwaV9vc19zbGVlcF91c2Vj KQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfaW44IHNtcF8wYWJjYzU0ZQojZGVmaW5lIGFjcGlfb3Nf aW44IF9zZXRfdmVyKGFjcGlfb3NfaW44KQojZGVmaW5lIF9fdmVyX2FjcGlfb3Nfb3V0OCBzbXBf ZDc4MWIyNDIKI2RlZmluZSBhY3BpX29zX291dDggX3NldF92ZXIoYWNwaV9vc19vdXQ4KQojZGVm aW5lIF9fdmVyX2FjcGlfb3NfcXVldWVfZm9yX2V4ZWN1dGlvbiBzbXBfOGQ1ZmY3MTYKI2RlZmlu ZSBhY3BpX29zX3F1ZXVlX2Zvcl9leGVjdXRpb24gX3NldF92ZXIoYWNwaV9vc19xdWV1ZV9mb3Jf ZXhlY3V0aW9uKQojZGVmaW5lIF9fdmVyX2FjcGlfZGJnX2xheWVyIHNtcF9hNDBmZjAxYgojZGVm aW5lIGFjcGlfZGJnX2xheWVyIF9zZXRfdmVyKGFjcGlfZGJnX2xheWVyKQojZGVmaW5lIF9fdmVy X2FjcGlfZGJnX2xldmVsIHNtcF9kZGFkNzk1MgojZGVmaW5lIGFjcGlfZGJnX2xldmVsIF9zZXRf dmVyKGFjcGlfZGJnX2xldmVsKQojZGVmaW5lIF9fdmVyX2Z1bmN0aW9uX2V4aXQgc21wXzQxNThk MDNjCiNkZWZpbmUgZnVuY3Rpb25fZXhpdCBfc2V0X3ZlcihmdW5jdGlvbl9leGl0KQojZGVmaW5l IF9fdmVyX2Z1bmN0aW9uX3RyYWNlIHNtcF8xMzE2ZDhhNwojZGVmaW5lIGZ1bmN0aW9uX3RyYWNl IF9zZXRfdmVyKGZ1bmN0aW9uX3RyYWNlKQojZGVmaW5lIF9fdmVyX2Z1bmN0aW9uX3N0YXR1c19l eGl0IHNtcF84YmVjYjVlZQojZGVmaW5lIGZ1bmN0aW9uX3N0YXR1c19leGl0IF9zZXRfdmVyKGZ1 bmN0aW9uX3N0YXR1c19leGl0KQojZGVmaW5lIF9fdmVyX2Z1bmN0aW9uX3ZhbHVlX2V4aXQgc21w XzVmNWQ2OWU1CiNkZWZpbmUgZnVuY3Rpb25fdmFsdWVfZXhpdCBfc2V0X3ZlcihmdW5jdGlvbl92 YWx1ZV9leGl0KQojZGVmaW5lIF9fdmVyX2RlYnVnX3ByaW50X3JhdyBzbXBfNDQ3MzMyYjIKI2Rl ZmluZSBkZWJ1Z19wcmludF9yYXcgX3NldF92ZXIoZGVidWdfcHJpbnRfcmF3KQojZGVmaW5lIF9f dmVyX2RlYnVnX3ByaW50X3ByZWZpeCBzbXBfNzlmNjQ4MjIKI2RlZmluZSBkZWJ1Z19wcmludF9w cmVmaXggX3NldF92ZXIoZGVidWdfcHJpbnRfcHJlZml4KQojZGVmaW5lIF9fdmVyX2FjcGlfdXRf Zm9ybWF0X2V4Y2VwdGlvbiBzbXBfODAwNzlmZjUKI2RlZmluZSBhY3BpX3V0X2Zvcm1hdF9leGNl cHRpb24gX3NldF92ZXIoYWNwaV91dF9mb3JtYXRfZXhjZXB0aW9uKQojZGVmaW5lIF9fdmVyX2Fj cGlfZ2V0X2hhbmRsZSBzbXBfNjc2ZjM5Y2MKI2RlZmluZSBhY3BpX2dldF9oYW5kbGUgX3NldF92 ZXIoYWNwaV9nZXRfaGFuZGxlKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3BhcmVudCBzbXBfNWMz MDg2ODAKI2RlZmluZSBhY3BpX2dldF9wYXJlbnQgX3NldF92ZXIoYWNwaV9nZXRfcGFyZW50KQoj ZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3R5cGUgc21wX2JmY2NmMzM0CiNkZWZpbmUgYWNwaV9nZXRf dHlwZSBfc2V0X3ZlcihhY3BpX2dldF90eXBlKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X25hbWUg c21wX2Q5MTNkY2M4CiNkZWZpbmUgYWNwaV9nZXRfbmFtZSBfc2V0X3ZlcihhY3BpX2dldF9uYW1l KQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X29iamVjdF9pbmZvIHNtcF9jZGEwYjg3ZQojZGVmaW5l IGFjcGlfZ2V0X29iamVjdF9pbmZvIF9zZXRfdmVyKGFjcGlfZ2V0X29iamVjdF9pbmZvKQojZGVm aW5lIF9fdmVyX2FjcGlfZ2V0X25leHRfb2JqZWN0IHNtcF8xZGMzYjBmNgojZGVmaW5lIGFjcGlf Z2V0X25leHRfb2JqZWN0IF9zZXRfdmVyKGFjcGlfZ2V0X25leHRfb2JqZWN0KQojZGVmaW5lIF9f dmVyX2FjcGlfZXZhbHVhdGVfb2JqZWN0IHNtcF8zZjMwMGYwNAojZGVmaW5lIGFjcGlfZXZhbHVh dGVfb2JqZWN0IF9zZXRfdmVyKGFjcGlfZXZhbHVhdGVfb2JqZWN0KQojZGVmaW5lIF9fdmVyX2Fj cGlfZ2V0X3RhYmxlIHNtcF8wYjU5NTEyMwojZGVmaW5lIGFjcGlfZ2V0X3RhYmxlIF9zZXRfdmVy KGFjcGlfZ2V0X3RhYmxlKQojZGVmaW5lIF9fdmVyX2FjcGlfaW5zdGFsbF9ub3RpZnlfaGFuZGxl ciBzbXBfY2RhZWMwNWYKI2RlZmluZSBhY3BpX2luc3RhbGxfbm90aWZ5X2hhbmRsZXIgX3NldF92 ZXIoYWNwaV9pbnN0YWxsX25vdGlmeV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlfcmVtb3Zl X25vdGlmeV9oYW5kbGVyIHNtcF9lMWE3Y2U4YwojZGVmaW5lIGFjcGlfcmVtb3ZlX25vdGlmeV9o YW5kbGVyIF9zZXRfdmVyKGFjcGlfcmVtb3ZlX25vdGlmeV9oYW5kbGVyKQojZGVmaW5lIF9fdmVy X2FjcGlfaW5zdGFsbF9ncGVfaGFuZGxlciBzbXBfMDU3ZjkyNGYKI2RlZmluZSBhY3BpX2luc3Rh bGxfZ3BlX2hhbmRsZXIgX3NldF92ZXIoYWNwaV9pbnN0YWxsX2dwZV9oYW5kbGVyKQojZGVmaW5l IF9fdmVyX2FjcGlfcmVtb3ZlX2dwZV9oYW5kbGVyIHNtcF81YTc1MGEwNAojZGVmaW5lIGFjcGlf cmVtb3ZlX2dwZV9oYW5kbGVyIF9zZXRfdmVyKGFjcGlfcmVtb3ZlX2dwZV9oYW5kbGVyKQojZGVm aW5lIF9fdmVyX2FjcGlfaW5zdGFsbF9hZGRyZXNzX3NwYWNlX2hhbmRsZXIgc21wX2ZjMzdlNjRl CiNkZWZpbmUgYWNwaV9pbnN0YWxsX2FkZHJlc3Nfc3BhY2VfaGFuZGxlciBfc2V0X3ZlcihhY3Bp X2luc3RhbGxfYWRkcmVzc19zcGFjZV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlfcmVtb3Zl X2FkZHJlc3Nfc3BhY2VfaGFuZGxlciBzbXBfN2Y0OTVlM2YKI2RlZmluZSBhY3BpX3JlbW92ZV9h ZGRyZXNzX3NwYWNlX2hhbmRsZXIgX3NldF92ZXIoYWNwaV9yZW1vdmVfYWRkcmVzc19zcGFjZV9o YW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlfaW5zdGFsbF9maXhlZF9ldmVudF9oYW5kbGVyIHNt cF81ODVjMzlhMAojZGVmaW5lIGFjcGlfaW5zdGFsbF9maXhlZF9ldmVudF9oYW5kbGVyIF9zZXRf dmVyKGFjcGlfaW5zdGFsbF9maXhlZF9ldmVudF9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlf cmVtb3ZlX2ZpeGVkX2V2ZW50X2hhbmRsZXIgc21wXzUzZTg4OTA0CiNkZWZpbmUgYWNwaV9yZW1v dmVfZml4ZWRfZXZlbnRfaGFuZGxlciBfc2V0X3ZlcihhY3BpX3JlbW92ZV9maXhlZF9ldmVudF9o YW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlfYWNxdWlyZV9nbG9iYWxfbG9jayBzbXBfZWQxOTA2 NGIKI2RlZmluZSBhY3BpX2FjcXVpcmVfZ2xvYmFsX2xvY2sgX3NldF92ZXIoYWNwaV9hY3F1aXJl X2dsb2JhbF9sb2NrKQojZGVmaW5lIF9fdmVyX2FjcGlfcmVsZWFzZV9nbG9iYWxfbG9jayBzbXBf NWYyMjRlNWYKI2RlZmluZSBhY3BpX3JlbGVhc2VfZ2xvYmFsX2xvY2sgX3NldF92ZXIoYWNwaV9y ZWxlYXNlX2dsb2JhbF9sb2NrKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X2N1cnJlbnRfcmVzb3Vy Y2VzIHNtcF8wYWIxYTBjZgojZGVmaW5lIGFjcGlfZ2V0X2N1cnJlbnRfcmVzb3VyY2VzIF9zZXRf dmVyKGFjcGlfZ2V0X2N1cnJlbnRfcmVzb3VyY2VzKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3Bv c3NpYmxlX3Jlc291cmNlcyBzbXBfNDA0OWUwNTAKI2RlZmluZSBhY3BpX2dldF9wb3NzaWJsZV9y ZXNvdXJjZXMgX3NldF92ZXIoYWNwaV9nZXRfcG9zc2libGVfcmVzb3VyY2VzKQojZGVmaW5lIF9f dmVyX2FjcGlfc2V0X2N1cnJlbnRfcmVzb3VyY2VzIHNtcF81MmUyOWQxOQojZGVmaW5lIGFjcGlf c2V0X2N1cnJlbnRfcmVzb3VyY2VzIF9zZXRfdmVyKGFjcGlfc2V0X2N1cnJlbnRfcmVzb3VyY2Vz KQojZGVmaW5lIF9fdmVyX2FjcGlfZW5hYmxlX2V2ZW50IHNtcF9jMzY3MWQ1ZAojZGVmaW5lIGFj cGlfZW5hYmxlX2V2ZW50IF9zZXRfdmVyKGFjcGlfZW5hYmxlX2V2ZW50KQojZGVmaW5lIF9fdmVy X2FjcGlfZGlzYWJsZV9ldmVudCBzbXBfMTkyODg4ODQKI2RlZmluZSBhY3BpX2Rpc2FibGVfZXZl bnQgX3NldF92ZXIoYWNwaV9kaXNhYmxlX2V2ZW50KQojZGVmaW5lIF9fdmVyX2FjcGlfY2xlYXJf ZXZlbnQgc21wXzViNmNjNTk5CiNkZWZpbmUgYWNwaV9jbGVhcl9ldmVudCBfc2V0X3ZlcihhY3Bp X2NsZWFyX2V2ZW50KQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3RpbWVyX2R1cmF0aW9uIHNtcF84 OWNjMjliYQojZGVmaW5lIGFjcGlfZ2V0X3RpbWVyX2R1cmF0aW9uIF9zZXRfdmVyKGFjcGlfZ2V0 X3RpbWVyX2R1cmF0aW9uKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3RpbWVyIHNtcF81NzFmNjcw OAojZGVmaW5lIGFjcGlfZ2V0X3RpbWVyIF9zZXRfdmVyKGFjcGlfZ2V0X3RpbWVyKQojZGVmaW5l IF9fdmVyX2FjcGlfb3Nfc2lnbmFsX3NlbWFwaG9yZSBzbXBfNjgxMTMwMjYKI2RlZmluZSBhY3Bp X29zX3NpZ25hbF9zZW1hcGhvcmUgX3NldF92ZXIoYWNwaV9vc19zaWduYWxfc2VtYXBob3JlKQoj ZGVmaW5lIF9fdmVyX2FjcGlfb3NfY3JlYXRlX3NlbWFwaG9yZSBzbXBfMzM2ZmE2NzEKI2RlZmlu ZSBhY3BpX29zX2NyZWF0ZV9zZW1hcGhvcmUgX3NldF92ZXIoYWNwaV9vc19jcmVhdGVfc2VtYXBo b3JlKQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfZGVsZXRlX3NlbWFwaG9yZSBzbXBfYjBjOWY5OTAK I2RlZmluZSBhY3BpX29zX2RlbGV0ZV9zZW1hcGhvcmUgX3NldF92ZXIoYWNwaV9vc19kZWxldGVf c2VtYXBob3JlKQojZGVmaW5lIF9fdmVyX2FjcGlfb3Nfd2FpdF9zZW1hcGhvcmUgc21wXzcwODdk NTY4CiNkZWZpbmUgYWNwaV9vc193YWl0X3NlbWFwaG9yZSBfc2V0X3ZlcihhY3BpX29zX3dhaXRf c2VtYXBob3JlKQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfaW4zMiBzbXBfNWVhOGYxZDgKI2RlZmlu ZSBhY3BpX29zX2luMzIgX3NldF92ZXIoYWNwaV9vc19pbjMyKQojZGVmaW5lIF9fdmVyX2FjcGlf b3Nfb3V0MzIgc21wX2I2MzExZjMzCiNkZWZpbmUgYWNwaV9vc19vdXQzMiBfc2V0X3ZlcihhY3Bp X29zX291dDMyKQojZGVmaW5lIF9fdmVyX2FjcGlfZmFkdCBzbXBfNDEyYzFlMzMKI2RlZmluZSBh Y3BpX2ZhZHQgX3NldF92ZXIoYWNwaV9mYWR0KQojZGVmaW5lIF9fdmVyX2FjcGlfaHdfcmVnaXN0 ZXJfYml0X2FjY2VzcyBzbXBfNDAxMzAyMGIKI2RlZmluZSBhY3BpX2h3X3JlZ2lzdGVyX2JpdF9h Y2Nlc3MgX3NldF92ZXIoYWNwaV9od19yZWdpc3Rlcl9iaXRfYWNjZXNzKQojZGVmaW5lIF9fdmVy X2FjcGlfaHdfb2J0YWluX3NsZWVwX3R5cGVfcmVnaXN0ZXJfZGF0YSBzbXBfYTM2NjA5NTcKI2Rl ZmluZSBhY3BpX2h3X29idGFpbl9zbGVlcF90eXBlX3JlZ2lzdGVyX2RhdGEgX3NldF92ZXIoYWNw aV9od19vYnRhaW5fc2xlZXBfdHlwZV9yZWdpc3Rlcl9kYXRhKQojZGVmaW5lIF9fdmVyX2FjcGlf ZW50ZXJfc2xlZXBfc3RhdGUgc21wX2EzZTliNThkCiNkZWZpbmUgYWNwaV9lbnRlcl9zbGVlcF9z dGF0ZSBfc2V0X3ZlcihhY3BpX2VudGVyX3NsZWVwX3N0YXRlKQojZGVmaW5lIF9fdmVyX2FjcGlf Z2V0X3N5c3RlbV9pbmZvIHNtcF9hZWFhNWMyNwojZGVmaW5lIGFjcGlfZ2V0X3N5c3RlbV9pbmZv IF9zZXRfdmVyKGFjcGlfZ2V0X3N5c3RlbV9pbmZvKQojIDkgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgvbW9kdWxlcy9hZDE4NDgudmVyIiAxCiNkZWZpbmUgX192ZXJfYWQxODQ4 X2RldGVjdCBzbXBfM2UwMzU2YWIKI2RlZmluZSBhZDE4NDhfZGV0ZWN0IF9zZXRfdmVyKGFkMTg0 OF9kZXRlY3QpCiNkZWZpbmUgX192ZXJfYWQxODQ4X2luaXQgc21wXzcxYTllMTg4CiNkZWZpbmUg YWQxODQ4X2luaXQgX3NldF92ZXIoYWQxODQ4X2luaXQpCiNkZWZpbmUgX192ZXJfYWQxODQ4X3Vu bG9hZCBzbXBfOWJmMWNjNjIKI2RlZmluZSBhZDE4NDhfdW5sb2FkIF9zZXRfdmVyKGFkMTg0OF91 bmxvYWQpCiNkZWZpbmUgX192ZXJfYWQxODQ4X2NvbnRyb2wgc21wX2MwNGY2ZjY3CiNkZWZpbmUg YWQxODQ4X2NvbnRyb2wgX3NldF92ZXIoYWQxODQ4X2NvbnRyb2wpCiNkZWZpbmUgX192ZXJfYWRp bnRyIHNtcF9jY2YzMTY0MAojZGVmaW5lIGFkaW50ciBfc2V0X3ZlcihhZGludHIpCiNkZWZpbmUg X192ZXJfcHJvYmVfbXNfc291bmQgc21wXzM3NzczYmIwCiNkZWZpbmUgcHJvYmVfbXNfc291bmQg X3NldF92ZXIocHJvYmVfbXNfc291bmQpCiNkZWZpbmUgX192ZXJfYXR0YWNoX21zX3NvdW5kIHNt cF9mMmIxNDJlNwojZGVmaW5lIGF0dGFjaF9tc19zb3VuZCBfc2V0X3ZlcihhdHRhY2hfbXNfc291 bmQpCiNkZWZpbmUgX192ZXJfdW5sb2FkX21zX3NvdW5kIHNtcF9iMjlhOTE0OAojZGVmaW5lIHVu bG9hZF9tc19zb3VuZCBfc2V0X3Zlcih1bmxvYWRfbXNfc291bmQpCiMgMTAgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hZGIudmVyIiAxCiNkZWZpbmUgX192ZXJf YWRiX2NvbnRyb2xsZXIgc21wX2IyMWJkNmVmCiNkZWZpbmUgYWRiX2NvbnRyb2xsZXIgX3NldF92 ZXIoYWRiX2NvbnRyb2xsZXIpCiNkZWZpbmUgX192ZXJfYWRiX2NsaWVudF9saXN0IHNtcF83ZmJi M2ZmOAojZGVmaW5lIGFkYl9jbGllbnRfbGlzdCBfc2V0X3ZlcihhZGJfY2xpZW50X2xpc3QpCiMg MTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hZl9heDI1LnZl ciIgMQojZGVmaW5lIF9fdmVyX2F4MjVfZW5jYXBzdWxhdGUgc21wXzcxYTA1Y2I0CiNkZWZpbmUg YXgyNV9lbmNhcHN1bGF0ZSBfc2V0X3ZlcihheDI1X2VuY2Fwc3VsYXRlKQojZGVmaW5lIF9fdmVy X2F4MjVfcmVidWlsZF9oZWFkZXIgc21wXzA5YzRlM2U2CiNkZWZpbmUgYXgyNV9yZWJ1aWxkX2hl YWRlciBfc2V0X3ZlcihheDI1X3JlYnVpbGRfaGVhZGVyKQojZGVmaW5lIF9fdmVyX2F4MjVfZmlu ZGJ5dWlkIHNtcF9iNGMyN2U4NgojZGVmaW5lIGF4MjVfZmluZGJ5dWlkIF9zZXRfdmVyKGF4MjVf ZmluZGJ5dWlkKQojZGVmaW5lIF9fdmVyX2F4MjVfZmluZF9jYiBzbXBfYzhlN2U1ODUKI2RlZmlu ZSBheDI1X2ZpbmRfY2IgX3NldF92ZXIoYXgyNV9maW5kX2NiKQojZGVmaW5lIF9fdmVyX2F4MjVf bGlua2ZhaWxfcmVnaXN0ZXIgc21wXzRhMGQ3YzA1CiNkZWZpbmUgYXgyNV9saW5rZmFpbF9yZWdp c3RlciBfc2V0X3ZlcihheDI1X2xpbmtmYWlsX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2F4MjVf bGlua2ZhaWxfcmVsZWFzZSBzbXBfZDA5MzYyYjUKI2RlZmluZSBheDI1X2xpbmtmYWlsX3JlbGVh c2UgX3NldF92ZXIoYXgyNV9saW5rZmFpbF9yZWxlYXNlKQojZGVmaW5lIF9fdmVyX2F4MjVfbGlz dGVuX3JlZ2lzdGVyIHNtcF9mZmU5Njc4ZQojZGVmaW5lIGF4MjVfbGlzdGVuX3JlZ2lzdGVyIF9z ZXRfdmVyKGF4MjVfbGlzdGVuX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2F4MjVfbGlzdGVuX3Jl bGVhc2Ugc21wXzRkMTIyZTU4CiNkZWZpbmUgYXgyNV9saXN0ZW5fcmVsZWFzZSBfc2V0X3Zlcihh eDI1X2xpc3Rlbl9yZWxlYXNlKQojZGVmaW5lIF9fdmVyX2F4MjVfcHJvdG9jb2xfcmVnaXN0ZXIg c21wX2QxMWM2YTQ3CiNkZWZpbmUgYXgyNV9wcm90b2NvbF9yZWdpc3RlciBfc2V0X3ZlcihheDI1 X3Byb3RvY29sX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2F4MjVfcHJvdG9jb2xfcmVsZWFzZSBz bXBfOGVkZTllMjYKI2RlZmluZSBheDI1X3Byb3RvY29sX3JlbGVhc2UgX3NldF92ZXIoYXgyNV9w cm90b2NvbF9yZWxlYXNlKQojZGVmaW5lIF9fdmVyX2F4MjVfc2VuZF9mcmFtZSBzbXBfOTI0OWQx Y2IKI2RlZmluZSBheDI1X3NlbmRfZnJhbWUgX3NldF92ZXIoYXgyNV9zZW5kX2ZyYW1lKQojZGVm aW5lIF9fdmVyX2F4MjVfdWlkX3BvbGljeSBzbXBfMjQyODUyYjkKI2RlZmluZSBheDI1X3VpZF9w b2xpY3kgX3NldF92ZXIoYXgyNV91aWRfcG9saWN5KQojZGVmaW5lIF9fdmVyX2F4MjVjbXAgc21w XzViNWZlZjQxCiNkZWZpbmUgYXgyNWNtcCBfc2V0X3ZlcihheDI1Y21wKQojZGVmaW5lIF9fdmVy X2F4MmFzYyBzbXBfOTcxMjM2MDgKI2RlZmluZSBheDJhc2MgX3NldF92ZXIoYXgyYXNjKQojZGVm aW5lIF9fdmVyX2FzYzJheCBzbXBfNzllNzliMTYKI2RlZmluZSBhc2MyYXggX3NldF92ZXIoYXNj MmF4KQojZGVmaW5lIF9fdmVyX251bGxfYXgyNV9hZGRyZXNzIHNtcF80MzYyMWUxOAojZGVmaW5l IG51bGxfYXgyNV9hZGRyZXNzIF9zZXRfdmVyKG51bGxfYXgyNV9hZGRyZXNzKQojZGVmaW5lIF9f dmVyX2F4MjVfZGlzcGxheV90aW1lciBzbXBfZTE5NjVlMzEKI2RlZmluZSBheDI1X2Rpc3BsYXlf dGltZXIgX3NldF92ZXIoYXgyNV9kaXNwbGF5X3RpbWVyKQojIDEyICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYWZfaXB4LnZlciIgMQojZGVmaW5lIF9fdmVyX2lw eHJ0cl9yb3V0ZV9za2Igc21wXzNmODY4MDUxCiNkZWZpbmUgaXB4cnRyX3JvdXRlX3NrYiBfc2V0 X3ZlcihpcHhydHJfcm91dGVfc2tiKQojZGVmaW5lIF9fdmVyX2lweF9pZl9vZmZzZXQgc21wXzA4 ZGU0ZjJjCiNkZWZpbmUgaXB4X2lmX29mZnNldCBfc2V0X3ZlcihpcHhfaWZfb2Zmc2V0KQojZGVm aW5lIF9fdmVyX2lweF9yZW1vdmVfc29ja2V0IHNtcF9iYzMxYmU2MwojZGVmaW5lIGlweF9yZW1v dmVfc29ja2V0IF9zZXRfdmVyKGlweF9yZW1vdmVfc29ja2V0KQojZGVmaW5lIF9fdmVyX2lweF9y ZWdpc3Rlcl9zcHggc21wX2EzZjc1ZjFjCiNkZWZpbmUgaXB4X3JlZ2lzdGVyX3NweCBfc2V0X3Zl cihpcHhfcmVnaXN0ZXJfc3B4KQojZGVmaW5lIF9fdmVyX2lweF91bnJlZ2lzdGVyX3NweCBzbXBf YjVlMzllNjQKI2RlZmluZSBpcHhfdW5yZWdpc3Rlcl9zcHggX3NldF92ZXIoaXB4X3VucmVnaXN0 ZXJfc3B4KQojIDEzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNp b25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMv YWZfbmV0bGluay52ZXIiIDEKIyAxNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9tb2R1bGVzL2FmX3NweC52ZXIiIDEKIyAxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9tb2R1bGVzL2FncGdhcnRfYmUudmVyIiAxCiNkZWZpbmUgX192ZXJfYWdwX2ZyZWVf bWVtb3J5IHNtcF8zMDFlYjJmNgojZGVmaW5lIGFncF9mcmVlX21lbW9yeSBfc2V0X3ZlcihhZ3Bf ZnJlZV9tZW1vcnkpCiNkZWZpbmUgX192ZXJfYWdwX2FsbG9jYXRlX21lbW9yeSBzbXBfOTMzZWEx ODMKI2RlZmluZSBhZ3BfYWxsb2NhdGVfbWVtb3J5IF9zZXRfdmVyKGFncF9hbGxvY2F0ZV9tZW1v cnkpCiNkZWZpbmUgX192ZXJfYWdwX2NvcHlfaW5mbyBzbXBfYTcxZWU3YTkKI2RlZmluZSBhZ3Bf Y29weV9pbmZvIF9zZXRfdmVyKGFncF9jb3B5X2luZm8pCiNkZWZpbmUgX192ZXJfYWdwX2JpbmRf bWVtb3J5IHNtcF9mZjFhNmJlNwojZGVmaW5lIGFncF9iaW5kX21lbW9yeSBfc2V0X3ZlcihhZ3Bf YmluZF9tZW1vcnkpCiNkZWZpbmUgX192ZXJfYWdwX3VuYmluZF9tZW1vcnkgc21wX2VhZDU2M2Mx CiNkZWZpbmUgYWdwX3VuYmluZF9tZW1vcnkgX3NldF92ZXIoYWdwX3VuYmluZF9tZW1vcnkpCiNk ZWZpbmUgX192ZXJfYWdwX2VuYWJsZSBzbXBfMGQwMjA4NWYKI2RlZmluZSBhZ3BfZW5hYmxlIF9z ZXRfdmVyKGFncF9lbmFibGUpCiNkZWZpbmUgX192ZXJfYWdwX2JhY2tlbmRfYWNxdWlyZSBzbXBf ZmRhNzE5MDQKI2RlZmluZSBhZ3BfYmFja2VuZF9hY3F1aXJlIF9zZXRfdmVyKGFncF9iYWNrZW5k X2FjcXVpcmUpCiNkZWZpbmUgX192ZXJfYWdwX2JhY2tlbmRfcmVsZWFzZSBzbXBfMGQ0M2ZkZTEK I2RlZmluZSBhZ3BfYmFja2VuZF9yZWxlYXNlIF9zZXRfdmVyKGFncF9iYWNrZW5kX3JlbGVhc2Up CiNkZWZpbmUgX192ZXJfYWdwX3JlZ2lzdGVyX21hcCBzbXBfZmIyZDdiZjMKI2RlZmluZSBhZ3Bf cmVnaXN0ZXJfbWFwIF9zZXRfdmVyKGFncF9yZWdpc3Rlcl9tYXApCiNkZWZpbmUgX192ZXJfYWdw X3VucmVnaXN0ZXJfbWFwIHNtcF9kNmU1ODcxMwojZGVmaW5lIGFncF91bnJlZ2lzdGVyX21hcCBf c2V0X3ZlcihhZ3BfdW5yZWdpc3Rlcl9tYXApCiNkZWZpbmUgX192ZXJfYWdwX2lvcmVtYXAgc21w XzFhYWEwMDdmCiNkZWZpbmUgYWdwX2lvcmVtYXAgX3NldF92ZXIoYWdwX2lvcmVtYXApCiNkZWZp bmUgX192ZXJfYWdwX2lvdW5tYXAgc21wXzFiYjAxOWZkCiNkZWZpbmUgYWdwX2lvdW5tYXAgX3Nl dF92ZXIoYWdwX2lvdW5tYXApCiMgMTYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvbW9kdWxlcy9haXJvbmV0NDUwMF9jYXJkLnZlciIgMQojIDE3ICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYWlyb25ldDQ1MDBfY29yZS52ZXIiIDEKI2RlZmlu ZSBfX3Zlcl9iYXBfc2xlZXAgc21wX2M2ZjMxMTlmCiNkZWZpbmUgYmFwX3NsZWVwIF9zZXRfdmVy KGJhcF9zbGVlcCkKI2RlZmluZSBfX3Zlcl9iYXBfc2xlZXBfYWZ0ZXJfc2V0dXAgc21wXzAwYmVm NTVhCiNkZWZpbmUgYmFwX3NsZWVwX2FmdGVyX3NldHVwIF9zZXRfdmVyKGJhcF9zbGVlcF9hZnRl cl9zZXR1cCkKI2RlZmluZSBfX3Zlcl9zbGVlcF9iZWZvcmVfY29tbWFuZCBzbXBfYTMzYTdkMmMK I2RlZmluZSBzbGVlcF9iZWZvcmVfY29tbWFuZCBfc2V0X3ZlcihzbGVlcF9iZWZvcmVfY29tbWFu ZCkKI2RlZmluZSBfX3Zlcl9iYXBfc2xlZXBfYmVmb3JlX3dyaXRlIHNtcF8wNGI4MmI3MQojZGVm aW5lIGJhcF9zbGVlcF9iZWZvcmVfd3JpdGUgX3NldF92ZXIoYmFwX3NsZWVwX2JlZm9yZV93cml0 ZSkKI2RlZmluZSBfX3Zlcl9zbGVlcF9pbl9jb21tYW5kIHNtcF8wMmFhM2U2YgojZGVmaW5lIHNs ZWVwX2luX2NvbW1hbmQgX3NldF92ZXIoc2xlZXBfaW5fY29tbWFuZCkKI2RlZmluZSBfX3Zlcl9i b3RoX2JhcF9sb2NrIHNtcF9iZmUxZGM3ZQojZGVmaW5lIGJvdGhfYmFwX2xvY2sgX3NldF92ZXIo Ym90aF9iYXBfbG9jaykKI2RlZmluZSBfX3Zlcl9iYXBfc2V0dXBfc3BpbmxvY2sgc21wXzljNTE1 NWI3CiNkZWZpbmUgYmFwX3NldHVwX3NwaW5sb2NrIF9zZXRfdmVyKGJhcF9zZXR1cF9zcGlubG9j aykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X0dlbmVyYWxfQ29uZmlnIHNt cF9hN2IzYTdhMAojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfR2VuZXJhbF9Db25maWcg X3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1NlbGVjdF9HZW5lcmFsX0NvbmZpZykKI2RlZmluZSBf X3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X1NTSURfbGlzdCBzbXBfZWFiMTJmYWQKI2RlZmlu ZSBhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1NTSURfbGlzdCBfc2V0X3ZlcihhaXJvbmV0NDUwMF9S SURfU2VsZWN0X1NTSURfbGlzdCkKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0 X0FQX2xpc3Qgc21wXzgyYTM4MGU4CiNkZWZpbmUgYWlyb25ldDQ1MDBfUklEX1NlbGVjdF9BUF9s aXN0IF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfQVBfbGlzdCkKI2RlZmluZSBfX3Zl cl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X0RyaXZlcl9uYW1lIHNtcF9kNDc3YTFlMgojZGVmaW5l IGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfRHJpdmVyX25hbWUgX3NldF92ZXIoYWlyb25ldDQ1MDBf UklEX1NlbGVjdF9Ecml2ZXJfbmFtZSkKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2Vs ZWN0X0VuY2Fwc3VsYXRpb24gc21wX2U3MmRkNGU5CiNkZWZpbmUgYWlyb25ldDQ1MDBfUklEX1Nl bGVjdF9FbmNhcHN1bGF0aW9uIF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfRW5jYXBz dWxhdGlvbikKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF92b2xhdGls ZSBzbXBfOTEzYzJiOTIKI2RlZmluZSBhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF92b2xhdGls ZSBfc2V0X3ZlcihhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF92b2xhdGlsZSkKI2RlZmluZSBf X3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF9ub252b2xhdGlsZSBzbXBfODg0YjY1OWIK I2RlZmluZSBhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF9ub252b2xhdGlsZSBfc2V0X3Zlcihh aXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF9ub252b2xhdGlsZSkKI2RlZmluZSBfX3Zlcl9haXJv bmV0NDUwMF9SSURfU2VsZWN0X01vZHVsYXRpb24gc21wXzA5M2Y3YzkwCiNkZWZpbmUgYWlyb25l dDQ1MDBfUklEX1NlbGVjdF9Nb2R1bGF0aW9uIF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxl Y3RfTW9kdWxhdGlvbikKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X0FjdGl2 ZV9Db25maWcgc21wXzY1MWY5YjEzCiNkZWZpbmUgYWlyb25ldDQ1MDBfUklEX1NlbGVjdF9BY3Rp dmVfQ29uZmlnIF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfQWN0aXZlX0NvbmZpZykK I2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X0NhcGFiaWxpdGllcyBzbXBfYzY0 YTJjY2EKI2RlZmluZSBhaXJvbmV0NDUwMF9SSURfU2VsZWN0X0NhcGFiaWxpdGllcyBfc2V0X3Zl cihhaXJvbmV0NDUwMF9SSURfU2VsZWN0X0NhcGFiaWxpdGllcykKI2RlZmluZSBfX3Zlcl9haXJv bmV0NDUwMF9SSURfU2VsZWN0X0FQX0luZm8gc21wX2E1OGViMjI0CiNkZWZpbmUgYWlyb25ldDQ1 MDBfUklEX1NlbGVjdF9BUF9JbmZvIF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfQVBf SW5mbykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X1JhZGlvX0luZm8gc21w X2RjZDg2YTRhCiNkZWZpbmUgYWlyb25ldDQ1MDBfUklEX1NlbGVjdF9SYWRpb19JbmZvIF9zZXRf dmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfUmFkaW9fSW5mbykKI2RlZmluZSBfX3Zlcl9haXJv bmV0NDUwMF9SSURfU2VsZWN0X1N0YXR1cyBzbXBfM2FlNDI1ZjkKI2RlZmluZSBhaXJvbmV0NDUw MF9SSURfU2VsZWN0X1N0YXR1cyBfc2V0X3ZlcihhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1N0YXR1 cykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0XzE2X3N0YXRzIHNtcF9hMDZl MWU5OAojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfMTZfc3RhdHMgX3NldF92ZXIoYWly b25ldDQ1MDBfUklEX1NlbGVjdF8xNl9zdGF0cykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9S SURfU2VsZWN0XzE2X3N0YXRzX2RlbHRhIHNtcF8yMGIxMjY5NAojZGVmaW5lIGFpcm9uZXQ0NTAw X1JJRF9TZWxlY3RfMTZfc3RhdHNfZGVsdGEgX3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1NlbGVj dF8xNl9zdGF0c19kZWx0YSkKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0XzE2 X3N0YXRzX2NsZWFyIHNtcF8zNmFlMWJkZQojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3Rf MTZfc3RhdHNfY2xlYXIgX3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1NlbGVjdF8xNl9zdGF0c19j bGVhcikKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0XzMyX3N0YXRzIHNtcF8w YWQyMzhlNAojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfMzJfc3RhdHMgX3NldF92ZXIo YWlyb25ldDQ1MDBfUklEX1NlbGVjdF8zMl9zdGF0cykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUw MF9SSURfU2VsZWN0XzMyX3N0YXRzX2RlbHRhIHNtcF85MTliMTgxZQojZGVmaW5lIGFpcm9uZXQ0 NTAwX1JJRF9TZWxlY3RfMzJfc3RhdHNfZGVsdGEgX3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1Nl bGVjdF8zMl9zdGF0c19kZWx0YSkKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0 XzMyX3N0YXRzX2NsZWFyIHNtcF84Nzg0MjU1NAojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxl Y3RfMzJfc3RhdHNfY2xlYXIgX3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1NlbGVjdF8zMl9zdGF0 c19jbGVhcikKI2RlZmluZSBfX3Zlcl9hd2NfcmVhZHJpZCBzbXBfOTVhN2Y2YTAKI2RlZmluZSBh d2NfcmVhZHJpZCBfc2V0X3Zlcihhd2NfcmVhZHJpZCkKI2RlZmluZSBfX3Zlcl9hd2Nfd3JpdGVy aWQgc21wXzA1YjJlMzViCiNkZWZpbmUgYXdjX3dyaXRlcmlkIF9zZXRfdmVyKGF3Y193cml0ZXJp ZCkKI2RlZmluZSBfX3Zlcl9hd2NfcmVhZHJpZF9kaXIgc21wXzQ2NDQ5MGMyCiNkZWZpbmUgYXdj X3JlYWRyaWRfZGlyIF9zZXRfdmVyKGF3Y19yZWFkcmlkX2RpcikKI2RlZmluZSBfX3Zlcl9hd2Nf d3JpdGVyaWRfZGlyIHNtcF9iNzQ4NTU2YwojZGVmaW5lIGF3Y193cml0ZXJpZF9kaXIgX3NldF92 ZXIoYXdjX3dyaXRlcmlkX2RpcikKI2RlZmluZSBfX3Zlcl9hd2NfZW5hYmxlX01BQyBzbXBfZWVi NjIyMWUKI2RlZmluZSBhd2NfZW5hYmxlX01BQyBfc2V0X3Zlcihhd2NfZW5hYmxlX01BQykKI2Rl ZmluZSBfX3Zlcl9hd2NfZGlzYWJsZV9NQUMgc21wX2JhYWNmNThmCiNkZWZpbmUgYXdjX2Rpc2Fi bGVfTUFDIF9zZXRfdmVyKGF3Y19kaXNhYmxlX01BQykKI2RlZmluZSBfX3Zlcl9hd2NfaW5pdCBz bXBfZjMzY2RhMjkKI2RlZmluZSBhd2NfaW5pdCBfc2V0X3Zlcihhd2NfaW5pdCkKI2RlZmluZSBf X3Zlcl9hd2Nfb3BlbiBzbXBfYjAxZDBjODEKI2RlZmluZSBhd2Nfb3BlbiBfc2V0X3Zlcihhd2Nf b3BlbikKI2RlZmluZSBfX3Zlcl9hd2NfY2xvc2Ugc21wX2YwOTZlYmY2CiNkZWZpbmUgYXdjX2Ns b3NlIF9zZXRfdmVyKGF3Y19jbG9zZSkKI2RlZmluZSBfX3Zlcl9hd2NfcmVzZXQgc21wXzQzODU3 MGVkCiNkZWZpbmUgYXdjX3Jlc2V0IF9zZXRfdmVyKGF3Y19yZXNldCkKI2RlZmluZSBfX3Zlcl9h d2NfY29uZmlnIHNtcF81Zjc4YWM2NwojZGVmaW5lIGF3Y19jb25maWcgX3NldF92ZXIoYXdjX2Nv bmZpZykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9kZXZpY2VzIHNtcF85ZTIwMjQ1ZgojZGVm aW5lIGFpcm9uZXQ0NTAwX2RldmljZXMgX3NldF92ZXIoYWlyb25ldDQ1MDBfZGV2aWNlcykKI2Rl ZmluZSBfX3Zlcl9hd2NfZGVidWcgc21wXzk3OWJlOGEyCiNkZWZpbmUgYXdjX2RlYnVnIF9zZXRf dmVyKGF3Y19kZWJ1ZykKI2RlZmluZSBfX3Zlcl9hd2NfcHJpdmF0ZV9pbml0IHNtcF9lZGI3NmVi YQojZGVmaW5lIGF3Y19wcml2YXRlX2luaXQgX3NldF92ZXIoYXdjX3ByaXZhdGVfaW5pdCkKI2Rl ZmluZSBfX3Zlcl9hd2NfdHhfdGltZW91dCBzbXBfMTU4N2FmYjkKI2RlZmluZSBhd2NfdHhfdGlt ZW91dCBfc2V0X3Zlcihhd2NfdHhfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9hd2Nfc3RhcnRfeG1p dCBzbXBfZWQwMDQ0YzIKI2RlZmluZSBhd2Nfc3RhcnRfeG1pdCBfc2V0X3Zlcihhd2Nfc3RhcnRf eG1pdCkKI2RlZmluZSBfX3Zlcl9hd2NfaW50ZXJydXB0IHNtcF9hNDNjMTc3ZgojZGVmaW5lIGF3 Y19pbnRlcnJ1cHQgX3NldF92ZXIoYXdjX2ludGVycnVwdCkKI2RlZmluZSBfX3Zlcl9hd2NfZ2V0 X3N0YXRzIHNtcF85M2MxM2Q3MAojZGVmaW5lIGF3Y19nZXRfc3RhdHMgX3NldF92ZXIoYXdjX2dl dF9zdGF0cykKI2RlZmluZSBfX3Zlcl9hd2NfY2hhbmdlX210dSBzbXBfZDhmNzQ2MWEKI2RlZmlu ZSBhd2NfY2hhbmdlX210dSBfc2V0X3Zlcihhd2NfY2hhbmdlX210dSkKI2RlZmluZSBfX3Zlcl9h d2Nfc2V0X211bHRpY2FzdF9saXN0IHNtcF84ZGFmZjMyYgojZGVmaW5lIGF3Y19zZXRfbXVsdGlj YXN0X2xpc3QgX3NldF92ZXIoYXdjX3NldF9tdWx0aWNhc3RfbGlzdCkKI2RlZmluZSBfX3Zlcl9h d2NfcHJvY19zZXRfZnVuIHNtcF8zNTFkZDI5OQojZGVmaW5lIGF3Y19wcm9jX3NldF9mdW4gX3Nl dF92ZXIoYXdjX3Byb2Nfc2V0X2Z1bikKI2RlZmluZSBfX3Zlcl9hd2NfcHJvY191bnNldF9mdW4g c21wX2EwZWM3OTBjCiNkZWZpbmUgYXdjX3Byb2NfdW5zZXRfZnVuIF9zZXRfdmVyKGF3Y19wcm9j X3Vuc2V0X2Z1bikKI2RlZmluZSBfX3Zlcl9hd2NfcmVnaXN0ZXJfcHJvYyBzbXBfODkyNzJjZWQK I2RlZmluZSBhd2NfcmVnaXN0ZXJfcHJvYyBfc2V0X3Zlcihhd2NfcmVnaXN0ZXJfcHJvYykKI2Rl ZmluZSBfX3Zlcl9hd2NfdW5yZWdpc3Rlcl9wcm9jIHNtcF8yMDBhYWRjYQojZGVmaW5lIGF3Y191 bnJlZ2lzdGVyX3Byb2MgX3NldF92ZXIoYXdjX3VucmVnaXN0ZXJfcHJvYykKIyAxOCAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2Fpcm8udmVyIiAxCiMgMTkgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hbWQ3OTMwLnZlciIgMQoj IDIwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIK IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYXJjbmV0LnZl ciIgMQojZGVmaW5lIF9fdmVyX2FyY19wcm90b19tYXAgc21wXzVjMDQzZmVmCiNkZWZpbmUgYXJj X3Byb3RvX21hcCBfc2V0X3ZlcihhcmNfcHJvdG9fbWFwKQojZGVmaW5lIF9fdmVyX2FyY19wcm90 b19kZWZhdWx0IHNtcF9iMGJmNTY2NAojZGVmaW5lIGFyY19wcm90b19kZWZhdWx0IF9zZXRfdmVy KGFyY19wcm90b19kZWZhdWx0KQojZGVmaW5lIF9fdmVyX2FyY19iY2FzdF9wcm90byBzbXBfMmRk NTEzY2MKI2RlZmluZSBhcmNfYmNhc3RfcHJvdG8gX3NldF92ZXIoYXJjX2JjYXN0X3Byb3RvKQoj ZGVmaW5lIF9fdmVyX2FyY19wcm90b19udWxsIHNtcF9jN2JjMWE1OQojZGVmaW5lIGFyY19wcm90 b19udWxsIF9zZXRfdmVyKGFyY19wcm90b19udWxsKQojZGVmaW5lIF9fdmVyX2FyY25ldF91bnJl Z2lzdGVyX3Byb3RvIHNtcF8xZmJhYjUzYgojZGVmaW5lIGFyY25ldF91bnJlZ2lzdGVyX3Byb3Rv IF9zZXRfdmVyKGFyY25ldF91bnJlZ2lzdGVyX3Byb3RvKQojZGVmaW5lIF9fdmVyX2FyY25ldF9k ZWJ1ZyBzbXBfNjUzNDc5MmEKI2RlZmluZSBhcmNuZXRfZGVidWcgX3NldF92ZXIoYXJjbmV0X2Rl YnVnKQojZGVmaW5lIF9fdmVyX2FyY2Rldl9zZXR1cCBzbXBfMDEwYmQyNDQKI2RlZmluZSBhcmNk ZXZfc2V0dXAgX3NldF92ZXIoYXJjZGV2X3NldHVwKQojZGVmaW5lIF9fdmVyX2FyY25ldF9pbnRl cnJ1cHQgc21wXzA0NWIxZmFjCiNkZWZpbmUgYXJjbmV0X2ludGVycnVwdCBfc2V0X3ZlcihhcmNu ZXRfaW50ZXJydXB0KQojIDIxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v ZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v ZHVsZXMvYXJsYW4udmVyIiAxCiNkZWZpbmUgX192ZXJfYXJsYW5fZGV2aWNlIHNtcF9jN2I5MTJm MAojZGVmaW5lIGFybGFuX2RldmljZSBfc2V0X3Zlcihhcmxhbl9kZXZpY2UpCiNkZWZpbmUgX192 ZXJfYXJsYW5fY29uZiBzbXBfNjQ5ODBlMDMKI2RlZmluZSBhcmxhbl9jb25mIF9zZXRfdmVyKGFy bGFuX2NvbmYpCiNkZWZpbmUgX192ZXJfbGFzdF9hcmxhbiBzbXBfMmVhODM0YTAKI2RlZmluZSBs YXN0X2FybGFuIF9zZXRfdmVyKGxhc3RfYXJsYW4pCiNkZWZpbmUgX192ZXJfYXJsYW5fY29tbWFu ZCBzbXBfMzNiZWM3NGMKI2RlZmluZSBhcmxhbl9jb21tYW5kIF9zZXRfdmVyKGFybGFuX2NvbW1h bmQpCiMgMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hdG1f bWlzYy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hdG1fY2hhcmdlIHNtcF84NmRjZTM1OQojZGVmaW5l IGF0bV9jaGFyZ2UgX3NldF92ZXIoYXRtX2NoYXJnZSkKI2RlZmluZSBfX3Zlcl9hdG1fYWxsb2Nf Y2hhcmdlIHNtcF9jMTg2NmY3NQojZGVmaW5lIGF0bV9hbGxvY19jaGFyZ2UgX3NldF92ZXIoYXRt X2FsbG9jX2NoYXJnZSkKI2RlZmluZSBfX3Zlcl9hdG1fZmluZF9jaSBzbXBfODYyMjM0YTUKI2Rl ZmluZSBhdG1fZmluZF9jaSBfc2V0X3ZlcihhdG1fZmluZF9jaSkKI2RlZmluZSBfX3Zlcl9hdG1f cGNyX2dvYWwgc21wXzM3MmZkMTA0CiNkZWZpbmUgYXRtX3Bjcl9nb2FsIF9zZXRfdmVyKGF0bV9w Y3JfZ29hbCkKI2RlZmluZSBfX3Zlcl9zb25ldF9jb3B5X3N0YXRzIHNtcF85OTM1OWM0NgojZGVm aW5lIHNvbmV0X2NvcHlfc3RhdHMgX3NldF92ZXIoc29uZXRfY29weV9zdGF0cykKI2RlZmluZSBf X3Zlcl9zb25ldF9zdWJ0cmFjdF9zdGF0cyBzbXBfZDVmYTJlN2MKI2RlZmluZSBzb25ldF9zdWJ0 cmFjdF9zdGF0cyBfc2V0X3Zlcihzb25ldF9zdWJ0cmFjdF9zdGF0cykKIyAyMyAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2F1ZGlvX3N5bXMudmVyIiAxCiNkZWZp bmUgX192ZXJfRE1BYnVmX3N0YXJ0X2RtYSBzbXBfZTA1NmI3MWMKI2RlZmluZSBETUFidWZfc3Rh cnRfZG1hIF9zZXRfdmVyKERNQWJ1Zl9zdGFydF9kbWEpCiNkZWZpbmUgX192ZXJfRE1BYnVmX29w ZW5fZG1hIHNtcF8wNmIzMDEzZAojZGVmaW5lIERNQWJ1Zl9vcGVuX2RtYSBfc2V0X3ZlcihETUFi dWZfb3Blbl9kbWEpCiNkZWZpbmUgX192ZXJfRE1BYnVmX2Nsb3NlX2RtYSBzbXBfYzg4YjQyYWIK I2RlZmluZSBETUFidWZfY2xvc2VfZG1hIF9zZXRfdmVyKERNQWJ1Zl9jbG9zZV9kbWEpCiNkZWZp bmUgX192ZXJfRE1BYnVmX2lucHV0aW50ciBzbXBfZWIzMTVkOTkKI2RlZmluZSBETUFidWZfaW5w dXRpbnRyIF9zZXRfdmVyKERNQWJ1Zl9pbnB1dGludHIpCiNkZWZpbmUgX192ZXJfRE1BYnVmX291 dHB1dGludHIgc21wXzk4N2JjZjEyCiNkZWZpbmUgRE1BYnVmX291dHB1dGludHIgX3NldF92ZXIo RE1BYnVmX291dHB1dGludHIpCiNkZWZpbmUgX192ZXJfZG1hX2lvY3RsIHNtcF9mYTIxZDY2Mgoj ZGVmaW5lIGRtYV9pb2N0bCBfc2V0X3ZlcihkbWFfaW9jdGwpCiNkZWZpbmUgX192ZXJfYXVkaW9f b3BlbiBzbXBfYWRmZjI4NWMKI2RlZmluZSBhdWRpb19vcGVuIF9zZXRfdmVyKGF1ZGlvX29wZW4p CiNkZWZpbmUgX192ZXJfYXVkaW9fcmVsZWFzZSBzbXBfMDdmNzZlZTgKI2RlZmluZSBhdWRpb19y ZWxlYXNlIF9zZXRfdmVyKGF1ZGlvX3JlbGVhc2UpCiMgMjQgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgvbW9kdWxlcy9hdWRpby52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rl cl9zcGFyY2F1ZGlvX2RyaXZlciBzbXBfZTI2MjFjNTUKI2RlZmluZSByZWdpc3Rlcl9zcGFyY2F1 ZGlvX2RyaXZlciBfc2V0X3ZlcihyZWdpc3Rlcl9zcGFyY2F1ZGlvX2RyaXZlcikKI2RlZmluZSBf X3Zlcl91bnJlZ2lzdGVyX3NwYXJjYXVkaW9fZHJpdmVyIHNtcF9lNjM4OGU2MgojZGVmaW5lIHVu cmVnaXN0ZXJfc3BhcmNhdWRpb19kcml2ZXIgX3NldF92ZXIodW5yZWdpc3Rlcl9zcGFyY2F1ZGlv X2RyaXZlcikKI2RlZmluZSBfX3Zlcl9zcGFyY2F1ZGlvX291dHB1dF9kb25lIHNtcF9kZGMwM2Vi MwojZGVmaW5lIHNwYXJjYXVkaW9fb3V0cHV0X2RvbmUgX3NldF92ZXIoc3BhcmNhdWRpb19vdXRw dXRfZG9uZSkKI2RlZmluZSBfX3Zlcl9zcGFyY2F1ZGlvX2lucHV0X2RvbmUgc21wXzQ0MGMwNzBj CiNkZWZpbmUgc3BhcmNhdWRpb19pbnB1dF9kb25lIF9zZXRfdmVyKHNwYXJjYXVkaW9faW5wdXRf ZG9uZSkKIyAyNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9u cy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2F1 dG9faXJxLnZlciIgMQojZGVmaW5lIF9fdmVyX2F1dG9pcnFfc2V0dXAgc21wXzVhNWEyMjgwCiNk ZWZpbmUgYXV0b2lycV9zZXR1cCBfc2V0X3ZlcihhdXRvaXJxX3NldHVwKQojZGVmaW5lIF9fdmVy X2F1dG9pcnFfcmVwb3J0IHNtcF84NDUzMGM1MwojZGVmaW5lIGF1dG9pcnFfcmVwb3J0IF9zZXRf dmVyKGF1dG9pcnFfcmVwb3J0KQojIDI2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21vZHVsZXMvYjFkbWEudmVyIiAxCiNkZWZpbmUgX192ZXJfYjFkbWFfcmVzZXQgc21wXzg1 ZjI2ZTg3CiNkZWZpbmUgYjFkbWFfcmVzZXQgX3NldF92ZXIoYjFkbWFfcmVzZXQpCiNkZWZpbmUg X192ZXJfdDFwY2lfZGV0ZWN0IHNtcF85ZTJjZjY4OQojZGVmaW5lIHQxcGNpX2RldGVjdCBfc2V0 X3Zlcih0MXBjaV9kZXRlY3QpCiNkZWZpbmUgX192ZXJfYjFwY2l2NF9kZXRlY3Qgc21wXzRmMDkw MjlhCiNkZWZpbmUgYjFwY2l2NF9kZXRlY3QgX3NldF92ZXIoYjFwY2l2NF9kZXRlY3QpCiNkZWZp bmUgX192ZXJfYjFkbWFfaW50ZXJydXB0IHNtcF9lMzU5MDNhZAojZGVmaW5lIGIxZG1hX2ludGVy cnVwdCBfc2V0X3ZlcihiMWRtYV9pbnRlcnJ1cHQpCiNkZWZpbmUgX192ZXJfYjFkbWFfbG9hZF9m aXJtd2FyZSBzbXBfZDcwYjQ4NjIKI2RlZmluZSBiMWRtYV9sb2FkX2Zpcm13YXJlIF9zZXRfdmVy KGIxZG1hX2xvYWRfZmlybXdhcmUpCiNkZWZpbmUgX192ZXJfYjFkbWFfcmVzZXRfY3RyIHNtcF9h ZDAxYzU3NAojZGVmaW5lIGIxZG1hX3Jlc2V0X2N0ciBfc2V0X3ZlcihiMWRtYV9yZXNldF9jdHIp CiNkZWZpbmUgX192ZXJfYjFkbWFfcmVnaXN0ZXJfYXBwbCBzbXBfNDI2MTFhZjcKI2RlZmluZSBi MWRtYV9yZWdpc3Rlcl9hcHBsIF9zZXRfdmVyKGIxZG1hX3JlZ2lzdGVyX2FwcGwpCiNkZWZpbmUg X192ZXJfYjFkbWFfcmVsZWFzZV9hcHBsIHNtcF81ZTkyZWFhZgojZGVmaW5lIGIxZG1hX3JlbGVh c2VfYXBwbCBfc2V0X3ZlcihiMWRtYV9yZWxlYXNlX2FwcGwpCiNkZWZpbmUgX192ZXJfYjFkbWFf c2VuZF9tZXNzYWdlIHNtcF8xYjZjMWMxZAojZGVmaW5lIGIxZG1hX3NlbmRfbWVzc2FnZSBfc2V0 X3ZlcihiMWRtYV9zZW5kX21lc3NhZ2UpCiNkZWZpbmUgX192ZXJfYjFkbWFjdGxfcmVhZF9wcm9j IHNtcF9iNTk3ZTc1MQojZGVmaW5lIGIxZG1hY3RsX3JlYWRfcHJvYyBfc2V0X3ZlcihiMWRtYWN0 bF9yZWFkX3Byb2MpCiMgMjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k dmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k dWxlcy9iMXBjbWNpYS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9iMXBjbWNpYV9hZGRjYXJkX2IxIHNt cF9mMTRiZjhiMQojZGVmaW5lIGIxcGNtY2lhX2FkZGNhcmRfYjEgX3NldF92ZXIoYjFwY21jaWFf YWRkY2FyZF9iMSkKI2RlZmluZSBfX3Zlcl9iMXBjbWNpYV9hZGRjYXJkX20xIHNtcF9hZWMzMjQw ZQojZGVmaW5lIGIxcGNtY2lhX2FkZGNhcmRfbTEgX3NldF92ZXIoYjFwY21jaWFfYWRkY2FyZF9t MSkKI2RlZmluZSBfX3Zlcl9iMXBjbWNpYV9hZGRjYXJkX20yIHNtcF9lYTYyMDExNgojZGVmaW5l IGIxcGNtY2lhX2FkZGNhcmRfbTIgX3NldF92ZXIoYjFwY21jaWFfYWRkY2FyZF9tMikKI2RlZmlu ZSBfX3Zlcl9iMXBjbWNpYV9kZWxjYXJkIHNtcF8yOTU2Mjk5MwojZGVmaW5lIGIxcGNtY2lhX2Rl bGNhcmQgX3NldF92ZXIoYjFwY21jaWFfZGVsY2FyZCkKIyAyOCAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2IxLnZlciIgMQojZGVmaW5lIF9fdmVyX2IxX2lycV90 YWJsZSBzbXBfODVmMDk2OTAKI2RlZmluZSBiMV9pcnFfdGFibGUgX3NldF92ZXIoYjFfaXJxX3Rh YmxlKQojZGVmaW5lIF9fdmVyX2IxX2RldGVjdCBzbXBfZGZkMjgzNzYKI2RlZmluZSBiMV9kZXRl Y3QgX3NldF92ZXIoYjFfZGV0ZWN0KQojZGVmaW5lIF9fdmVyX2IxX2dldHJldmlzaW9uIHNtcF9k N2UxY2NmNQojZGVmaW5lIGIxX2dldHJldmlzaW9uIF9zZXRfdmVyKGIxX2dldHJldmlzaW9uKQoj ZGVmaW5lIF9fdmVyX2IxX2xvYWRfdDRmaWxlIHNtcF9iZGZmNWFkNAojZGVmaW5lIGIxX2xvYWRf dDRmaWxlIF9zZXRfdmVyKGIxX2xvYWRfdDRmaWxlKQojZGVmaW5lIF9fdmVyX2IxX2xvYWRfY29u ZmlnIHNtcF9lZjUwNjIwZAojZGVmaW5lIGIxX2xvYWRfY29uZmlnIF9zZXRfdmVyKGIxX2xvYWRf Y29uZmlnKQojZGVmaW5lIF9fdmVyX2IxX2xvYWRlZCBzbXBfOTIwMzEzMGUKI2RlZmluZSBiMV9s b2FkZWQgX3NldF92ZXIoYjFfbG9hZGVkKQojZGVmaW5lIF9fdmVyX2IxX2xvYWRfZmlybXdhcmUg c21wXzYxMDk3NjZmCiNkZWZpbmUgYjFfbG9hZF9maXJtd2FyZSBfc2V0X3ZlcihiMV9sb2FkX2Zp cm13YXJlKQojZGVmaW5lIF9fdmVyX2IxX3Jlc2V0X2N0ciBzbXBfNWJlZWMwOGIKI2RlZmluZSBi MV9yZXNldF9jdHIgX3NldF92ZXIoYjFfcmVzZXRfY3RyKQojZGVmaW5lIF9fdmVyX2IxX3JlZ2lz dGVyX2FwcGwgc21wXzIwZmUzMDE2CiNkZWZpbmUgYjFfcmVnaXN0ZXJfYXBwbCBfc2V0X3Zlcihi MV9yZWdpc3Rlcl9hcHBsKQojZGVmaW5lIF9fdmVyX2IxX3JlbGVhc2VfYXBwbCBzbXBfN2UwYmUx YjYKI2RlZmluZSBiMV9yZWxlYXNlX2FwcGwgX3NldF92ZXIoYjFfcmVsZWFzZV9hcHBsKQojZGVm aW5lIF9fdmVyX2IxX3NlbmRfbWVzc2FnZSBzbXBfYTk3NzhiOTcKI2RlZmluZSBiMV9zZW5kX21l c3NhZ2UgX3NldF92ZXIoYjFfc2VuZF9tZXNzYWdlKQojZGVmaW5lIF9fdmVyX2IxX3BhcnNlX3Zl cnNpb24gc21wXzY2MjU4MmE0CiNkZWZpbmUgYjFfcGFyc2VfdmVyc2lvbiBfc2V0X3ZlcihiMV9w YXJzZV92ZXJzaW9uKQojZGVmaW5lIF9fdmVyX2IxX2hhbmRsZV9pbnRlcnJ1cHQgc21wXzVkMDZk YTdjCiNkZWZpbmUgYjFfaGFuZGxlX2ludGVycnVwdCBfc2V0X3ZlcihiMV9oYW5kbGVfaW50ZXJy dXB0KQojZGVmaW5lIF9fdmVyX2IxY3RsX3JlYWRfcHJvYyBzbXBfNTdhZmZkY2UKI2RlZmluZSBi MWN0bF9yZWFkX3Byb2MgX3NldF92ZXIoYjFjdGxfcmVhZF9wcm9jKQojIDI5ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYmFzZS52ZXIiIDEKI2RlZmluZSBfX3Zl cl9kZXZmc19yZWdpc3RlciBzbXBfNjYwZWJjMDcKI2RlZmluZSBkZXZmc19yZWdpc3RlciBfc2V0 X3ZlcihkZXZmc19yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9kZXZmc191bnJlZ2lzdGVyIHNtcF81 YjBjODVlYwojZGVmaW5lIGRldmZzX3VucmVnaXN0ZXIgX3NldF92ZXIoZGV2ZnNfdW5yZWdpc3Rl cikKI2RlZmluZSBfX3Zlcl9kZXZmc19ta19zeW1saW5rIHNtcF8zZjZiYjUxMgojZGVmaW5lIGRl dmZzX21rX3N5bWxpbmsgX3NldF92ZXIoZGV2ZnNfbWtfc3ltbGluaykKI2RlZmluZSBfX3Zlcl9k ZXZmc19ta19kaXIgc21wX2M3NGVmMzc0CiNkZWZpbmUgZGV2ZnNfbWtfZGlyIF9zZXRfdmVyKGRl dmZzX21rX2RpcikKI2RlZmluZSBfX3Zlcl9kZXZmc19maW5kX2hhbmRsZSBzbXBfNmE0YWRkNDEK I2RlZmluZSBkZXZmc19maW5kX2hhbmRsZSBfc2V0X3ZlcihkZXZmc19maW5kX2hhbmRsZSkKI2Rl ZmluZSBfX3Zlcl9kZXZmc19nZXRfZmxhZ3Mgc21wXzhhNzEzYjVlCiNkZWZpbmUgZGV2ZnNfZ2V0 X2ZsYWdzIF9zZXRfdmVyKGRldmZzX2dldF9mbGFncykKI2RlZmluZSBfX3Zlcl9kZXZmc19zZXRf ZmxhZ3Mgc21wXzdjZWM4NTE1CiNkZWZpbmUgZGV2ZnNfc2V0X2ZsYWdzIF9zZXRfdmVyKGRldmZz X3NldF9mbGFncykKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfbWFqX21pbiBzbXBfNjRiMjJiNWQK I2RlZmluZSBkZXZmc19nZXRfbWFqX21pbiBfc2V0X3ZlcihkZXZmc19nZXRfbWFqX21pbikKI2Rl ZmluZSBfX3Zlcl9kZXZmc19nZXRfaGFuZGxlX2Zyb21faW5vZGUgc21wXzI1YWM4ZjdkCiNkZWZp bmUgZGV2ZnNfZ2V0X2hhbmRsZV9mcm9tX2lub2RlIF9zZXRfdmVyKGRldmZzX2dldF9oYW5kbGVf ZnJvbV9pbm9kZSkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZW5lcmF0ZV9wYXRoIHNtcF9mYTg3MDdi MQojZGVmaW5lIGRldmZzX2dlbmVyYXRlX3BhdGggX3NldF92ZXIoZGV2ZnNfZ2VuZXJhdGVfcGF0 aCkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfb3BzIHNtcF8zNzhkMDdmZAojZGVmaW5lIGRldmZz X2dldF9vcHMgX3NldF92ZXIoZGV2ZnNfZ2V0X29wcykKI2RlZmluZSBfX3Zlcl9kZXZmc19zZXRf ZmlsZV9zaXplIHNtcF85NjYzMGM5OAojZGVmaW5lIGRldmZzX3NldF9maWxlX3NpemUgX3NldF92 ZXIoZGV2ZnNfc2V0X2ZpbGVfc2l6ZSkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfaW5mbyBzbXBf ZTc2NTNmNjAKI2RlZmluZSBkZXZmc19nZXRfaW5mbyBfc2V0X3ZlcihkZXZmc19nZXRfaW5mbykK I2RlZmluZSBfX3Zlcl9kZXZmc19zZXRfaW5mbyBzbXBfOTY4OTEzY2QKI2RlZmluZSBkZXZmc19z ZXRfaW5mbyBfc2V0X3ZlcihkZXZmc19zZXRfaW5mbykKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRf cGFyZW50IHNtcF9hYTRiODUzNwojZGVmaW5lIGRldmZzX2dldF9wYXJlbnQgX3NldF92ZXIoZGV2 ZnNfZ2V0X3BhcmVudCkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfZmlyc3RfY2hpbGQgc21wX2Zj YjkyMmI2CiNkZWZpbmUgZGV2ZnNfZ2V0X2ZpcnN0X2NoaWxkIF9zZXRfdmVyKGRldmZzX2dldF9m aXJzdF9jaGlsZCkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfbmV4dF9zaWJsaW5nIHNtcF8yNzhk ZGU2NwojZGVmaW5lIGRldmZzX2dldF9uZXh0X3NpYmxpbmcgX3NldF92ZXIoZGV2ZnNfZ2V0X25l eHRfc2libGluZykKI2RlZmluZSBfX3Zlcl9kZXZmc19hdXRvX3VucmVnaXN0ZXIgc21wXzU4ZDI0 ZWMzCiNkZWZpbmUgZGV2ZnNfYXV0b191bnJlZ2lzdGVyIF9zZXRfdmVyKGRldmZzX2F1dG9fdW5y ZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfdW5yZWdpc3Rlcl9zbGF2ZSBzbXBfYjkx YThmZjAKI2RlZmluZSBkZXZmc19nZXRfdW5yZWdpc3Rlcl9zbGF2ZSBfc2V0X3ZlcihkZXZmc19n ZXRfdW5yZWdpc3Rlcl9zbGF2ZSkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfbmFtZSBzbXBfM2Jh NGExYzUKI2RlZmluZSBkZXZmc19nZXRfbmFtZSBfc2V0X3ZlcihkZXZmc19nZXRfbmFtZSkKI2Rl ZmluZSBfX3Zlcl9kZXZmc19yZWdpc3Rlcl9jaHJkZXYgc21wX2VlZmEwZjM2CiNkZWZpbmUgZGV2 ZnNfcmVnaXN0ZXJfY2hyZGV2IF9zZXRfdmVyKGRldmZzX3JlZ2lzdGVyX2NocmRldikKI2RlZmlu ZSBfX3Zlcl9kZXZmc19yZWdpc3Rlcl9ibGtkZXYgc21wX2U5M2QzMzkwCiNkZWZpbmUgZGV2ZnNf cmVnaXN0ZXJfYmxrZGV2IF9zZXRfdmVyKGRldmZzX3JlZ2lzdGVyX2Jsa2RldikKI2RlZmluZSBf X3Zlcl9kZXZmc191bnJlZ2lzdGVyX2NocmRldiBzbXBfNzdmM2UwY2UKI2RlZmluZSBkZXZmc191 bnJlZ2lzdGVyX2NocmRldiBfc2V0X3ZlcihkZXZmc191bnJlZ2lzdGVyX2NocmRldikKI2RlZmlu ZSBfX3Zlcl9kZXZmc191bnJlZ2lzdGVyX2Jsa2RldiBzbXBfNWNhMGYwZjAKI2RlZmluZSBkZXZm c191bnJlZ2lzdGVyX2Jsa2RldiBfc2V0X3ZlcihkZXZmc191bnJlZ2lzdGVyX2Jsa2RldikKIyAz MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMg MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2JiY19pMmMudmVy IiAxCiNkZWZpbmUgX192ZXJfYmJjX2kyY19nZXRkZXYgc21wXzQ5NDg0ZjdmCiNkZWZpbmUgYmJj X2kyY19nZXRkZXYgX3NldF92ZXIoYmJjX2kyY19nZXRkZXYpCiNkZWZpbmUgX192ZXJfYmJjX2ky Y19hdHRhY2ggc21wXzZmMWI1YWE5CiNkZWZpbmUgYmJjX2kyY19hdHRhY2ggX3NldF92ZXIoYmJj X2kyY19hdHRhY2gpCiNkZWZpbmUgX192ZXJfYmJjX2kyY19kZXRhY2ggc21wX2E3YjY1NzU2CiNk ZWZpbmUgYmJjX2kyY19kZXRhY2ggX3NldF92ZXIoYmJjX2kyY19kZXRhY2gpCiNkZWZpbmUgX192 ZXJfYmJjX2kyY193cml0ZWIgc21wX2RkYmIyMmE2CiNkZWZpbmUgYmJjX2kyY193cml0ZWIgX3Nl dF92ZXIoYmJjX2kyY193cml0ZWIpCiNkZWZpbmUgX192ZXJfYmJjX2kyY19yZWFkYiBzbXBfNjBj YTYxMzYKI2RlZmluZSBiYmNfaTJjX3JlYWRiIF9zZXRfdmVyKGJiY19pMmNfcmVhZGIpCiNkZWZp bmUgX192ZXJfYmJjX2kyY193cml0ZV9idWYgc21wX2VmMjZjY2ZkCiNkZWZpbmUgYmJjX2kyY193 cml0ZV9idWYgX3NldF92ZXIoYmJjX2kyY193cml0ZV9idWYpCiNkZWZpbmUgX192ZXJfYmJjX2ky Y19yZWFkX2J1ZiBzbXBfODU5YjE1ZGYKI2RlZmluZSBiYmNfaTJjX3JlYWRfYnVmIF9zZXRfdmVy KGJiY19pMmNfcmVhZF9idWYpCiMgMzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvbW9kdWxlcy9ibGtwZy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9ibGtfaW9jdGwgc21wX2U3ODAw NDI4CiNkZWZpbmUgYmxrX2lvY3RsIF9zZXRfdmVyKGJsa19pb2N0bCkKIyAzMiAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2Jvb3RsZHIudmVyIiAxCiNkZWZpbmUg X192ZXJfcGFyc2VfYm9vdGxkcl9wYXJ0aXRpb25zIHNtcF85YjcyNTAzZAojZGVmaW5lIHBhcnNl X2Jvb3RsZHJfcGFydGl0aW9ucyBfc2V0X3ZlcihwYXJzZV9ib290bGRyX3BhcnRpdGlvbnMpCiMg MzMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9idHR2LWlmLnZl ciIgMQojZGVmaW5lIF9fdmVyX2J0dHZfZ2V0X2NhcmRpbmZvIHNtcF80ODMyMDE1OAojZGVmaW5l IGJ0dHZfZ2V0X2NhcmRpbmZvIF9zZXRfdmVyKGJ0dHZfZ2V0X2NhcmRpbmZvKQojZGVmaW5lIF9f dmVyX2J0dHZfZ2V0X2lkIHNtcF8yOTRiNTU1MAojZGVmaW5lIGJ0dHZfZ2V0X2lkIF9zZXRfdmVy KGJ0dHZfZ2V0X2lkKQojZGVmaW5lIF9fdmVyX2J0dHZfZ3Bpb19lbmFibGUgc21wXzExZGM0YjZk CiNkZWZpbmUgYnR0dl9ncGlvX2VuYWJsZSBfc2V0X3ZlcihidHR2X2dwaW9fZW5hYmxlKQojZGVm aW5lIF9fdmVyX2J0dHZfcmVhZF9ncGlvIHNtcF9iY2YyZDJmYgojZGVmaW5lIGJ0dHZfcmVhZF9n cGlvIF9zZXRfdmVyKGJ0dHZfcmVhZF9ncGlvKQojZGVmaW5lIF9fdmVyX2J0dHZfd3JpdGVfZ3Bp byBzbXBfOGVjZjRhY2MKI2RlZmluZSBidHR2X3dyaXRlX2dwaW8gX3NldF92ZXIoYnR0dl93cml0 ZV9ncGlvKQojZGVmaW5lIF9fdmVyX2J0dHZfZ2V0X2dwaW9fcXVldWUgc21wX2E2Nzg4OTY4CiNk ZWZpbmUgYnR0dl9nZXRfZ3Bpb19xdWV1ZSBfc2V0X3ZlcihidHR2X2dldF9ncGlvX3F1ZXVlKQoj IDM0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIK IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYnVzbW91c2Uu dmVyIiAxCiNkZWZpbmUgX192ZXJfYnVzbW91c2VfYWRkX21vdmVtZW50YnV0dG9ucyBzbXBfNmM4 ZTE3NTkKI2RlZmluZSBidXNtb3VzZV9hZGRfbW92ZW1lbnRidXR0b25zIF9zZXRfdmVyKGJ1c21v dXNlX2FkZF9tb3ZlbWVudGJ1dHRvbnMpCiNkZWZpbmUgX192ZXJfYnVzbW91c2VfYWRkX21vdmVt ZW50IHNtcF9hOTM0NmE5OAojZGVmaW5lIGJ1c21vdXNlX2FkZF9tb3ZlbWVudCBfc2V0X3Zlcihi dXNtb3VzZV9hZGRfbW92ZW1lbnQpCiNkZWZpbmUgX192ZXJfYnVzbW91c2VfYWRkX2J1dHRvbnMg c21wXzQzN2FjMGI4CiNkZWZpbmUgYnVzbW91c2VfYWRkX2J1dHRvbnMgX3NldF92ZXIoYnVzbW91 c2VfYWRkX2J1dHRvbnMpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfYnVzbW91c2Ugc21wXzM0NGMy MGY5CiNkZWZpbmUgcmVnaXN0ZXJfYnVzbW91c2UgX3NldF92ZXIocmVnaXN0ZXJfYnVzbW91c2Up CiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9idXNtb3VzZSBzbXBfZTQ5MjY1M2MKI2RlZmluZSB1 bnJlZ2lzdGVyX2J1c21vdXNlIF9zZXRfdmVyKHVucmVnaXN0ZXJfYnVzbW91c2UpCiMgMzUgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9jYXBpZnMudmVyIiAxCiNk ZWZpbmUgX192ZXJfY2FwaWZzX25ld19uY2NpIHNtcF81OThmMjcxZAojZGVmaW5lIGNhcGlmc19u ZXdfbmNjaSBfc2V0X3ZlcihjYXBpZnNfbmV3X25jY2kpCiNkZWZpbmUgX192ZXJfY2FwaWZzX2Zy ZWVfbmNjaSBzbXBfOThlN2Y0YjcKI2RlZmluZSBjYXBpZnNfZnJlZV9uY2NpIF9zZXRfdmVyKGNh cGlmc19mcmVlX25jY2kpCiMgMzYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv bW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv bW9kdWxlcy9jYXBpdXRpbC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9jYXBpX2Ntc2cybWVzc2FnZSBz bXBfNTBiMzNjYTQKI2RlZmluZSBjYXBpX2Ntc2cybWVzc2FnZSBfc2V0X3ZlcihjYXBpX2Ntc2cy bWVzc2FnZSkKI2RlZmluZSBfX3Zlcl9jYXBpX21lc3NhZ2UyY21zZyBzbXBfNjA1N2M2ZjMKI2Rl ZmluZSBjYXBpX21lc3NhZ2UyY21zZyBfc2V0X3ZlcihjYXBpX21lc3NhZ2UyY21zZykKI2RlZmlu ZSBfX3Zlcl9jYXBpX2Ntc2dfaGVhZGVyIHNtcF9iNjBlNWU1ZgojZGVmaW5lIGNhcGlfY21zZ19o ZWFkZXIgX3NldF92ZXIoY2FwaV9jbXNnX2hlYWRlcikKI2RlZmluZSBfX3Zlcl9jYXBpX2NtZDJz dHIgc21wX2IxOWZkYThkCiNkZWZpbmUgY2FwaV9jbWQyc3RyIF9zZXRfdmVyKGNhcGlfY21kMnN0 cikKI2RlZmluZSBfX3Zlcl9jYXBpX2Ntc2cyc3RyIHNtcF9kNDViNWViNQojZGVmaW5lIGNhcGlf Y21zZzJzdHIgX3NldF92ZXIoY2FwaV9jbXNnMnN0cikKI2RlZmluZSBfX3Zlcl9jYXBpX21lc3Nh Z2Uyc3RyIHNtcF9hN2FiYzVlMwojZGVmaW5lIGNhcGlfbWVzc2FnZTJzdHIgX3NldF92ZXIoY2Fw aV9tZXNzYWdlMnN0cikKI2RlZmluZSBfX3Zlcl9jYXBpX2luZm8yc3RyIHNtcF80N2QzZmM1MQoj ZGVmaW5lIGNhcGlfaW5mbzJzdHIgX3NldF92ZXIoY2FwaV9pbmZvMnN0cikKIyAzNyAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2NiX2VuYWJsZXIudmVyIiAxCiNk ZWZpbmUgX192ZXJfcmVnaXN0ZXJfZHJpdmVyIHNtcF9hODY2NGMyMgojZGVmaW5lIHJlZ2lzdGVy X2RyaXZlciBfc2V0X3ZlcihyZWdpc3Rlcl9kcml2ZXIpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rl cl9kcml2ZXIgc21wXzllNTRhNWQ4CiNkZWZpbmUgdW5yZWdpc3Rlcl9kcml2ZXIgX3NldF92ZXIo dW5yZWdpc3Rlcl9kcml2ZXIpCiMgMzggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvbW9kdWxlcy9jZHJvbS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9jZHJvbV9nZXRfZGlzY19pbmZv IHNtcF82YmMzZGJkNgojZGVmaW5lIGNkcm9tX2dldF9kaXNjX2luZm8gX3NldF92ZXIoY2Ryb21f Z2V0X2Rpc2NfaW5mbykKI2RlZmluZSBfX3Zlcl9jZHJvbV9nZXRfdHJhY2tfaW5mbyBzbXBfNmQ2 MDA4NjgKI2RlZmluZSBjZHJvbV9nZXRfdHJhY2tfaW5mbyBfc2V0X3ZlcihjZHJvbV9nZXRfdHJh Y2tfaW5mbykKI2RlZmluZSBfX3Zlcl9jZHJvbV9nZXRfbmV4dF93cml0YWJsZSBzbXBfMzY5MTRi YWUKI2RlZmluZSBjZHJvbV9nZXRfbmV4dF93cml0YWJsZSBfc2V0X3ZlcihjZHJvbV9nZXRfbmV4 dF93cml0YWJsZSkKI2RlZmluZSBfX3Zlcl9jZHJvbV9nZXRfbGFzdF93cml0dGVuIHNtcF83ODI2 MzQ2NwojZGVmaW5lIGNkcm9tX2dldF9sYXN0X3dyaXR0ZW4gX3NldF92ZXIoY2Ryb21fZ2V0X2xh c3Rfd3JpdHRlbikKI2RlZmluZSBfX3Zlcl9jZHJvbV9jb3VudF90cmFja3Mgc21wX2U3NDZhNTNi CiNkZWZpbmUgY2Ryb21fY291bnRfdHJhY2tzIF9zZXRfdmVyKGNkcm9tX2NvdW50X3RyYWNrcykK I2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9jZHJvbSBzbXBfNWE2MTc0NGYKI2RlZmluZSByZWdpc3Rl cl9jZHJvbSBfc2V0X3ZlcihyZWdpc3Rlcl9jZHJvbSkKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVy X2Nkcm9tIHNtcF83MDNkMzU3NQojZGVmaW5lIHVucmVnaXN0ZXJfY2Ryb20gX3NldF92ZXIodW5y ZWdpc3Rlcl9jZHJvbSkKI2RlZmluZSBfX3Zlcl9jZHJvbV9mb3BzIHNtcF81Y2ZjY2UwNQojZGVm aW5lIGNkcm9tX2ZvcHMgX3NldF92ZXIoY2Ryb21fZm9wcykKI2RlZmluZSBfX3Zlcl9jZHJvbV9u dW1iZXJfb2Zfc2xvdHMgc21wXzVkOGYzNjcyCiNkZWZpbmUgY2Ryb21fbnVtYmVyX29mX3Nsb3Rz IF9zZXRfdmVyKGNkcm9tX251bWJlcl9vZl9zbG90cykKI2RlZmluZSBfX3Zlcl9jZHJvbV9zZWxl Y3RfZGlzYyBzbXBfOGRjYmYyZmQKI2RlZmluZSBjZHJvbV9zZWxlY3RfZGlzYyBfc2V0X3Zlcihj ZHJvbV9zZWxlY3RfZGlzYykKI2RlZmluZSBfX3Zlcl9jZHJvbV9tb2RlX3NlbGVjdCBzbXBfY2Yx MDIwMTgKI2RlZmluZSBjZHJvbV9tb2RlX3NlbGVjdCBfc2V0X3ZlcihjZHJvbV9tb2RlX3NlbGVj dCkKI2RlZmluZSBfX3Zlcl9jZHJvbV9tb2RlX3NlbnNlIHNtcF80NDFjOTI1MwojZGVmaW5lIGNk cm9tX21vZGVfc2Vuc2UgX3NldF92ZXIoY2Ryb21fbW9kZV9zZW5zZSkKI2RlZmluZSBfX3Zlcl9p bml0X2Nkcm9tX2NvbW1hbmQgc21wX2ZhY2RlMWI1CiNkZWZpbmUgaW5pdF9jZHJvbV9jb21tYW5k IF9zZXRfdmVyKGluaXRfY2Ryb21fY29tbWFuZCkKI2RlZmluZSBfX3Zlcl9jZHJvbV9maW5kX2Rl dmljZSBzbXBfNTdiYWY3ODgKI2RlZmluZSBjZHJvbV9maW5kX2RldmljZSBfc2V0X3ZlcihjZHJv bV9maW5kX2RldmljZSkKIyAzOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t b2R1bGVzL2NoZWNrLnZlciIgMQojIDQwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21vZHVsZXMvY2hpcHJlZy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9tdGRfY2hp cF9kcml2ZXIgc21wXzRjMmRmMTYwCiNkZWZpbmUgcmVnaXN0ZXJfbXRkX2NoaXBfZHJpdmVyIF9z ZXRfdmVyKHJlZ2lzdGVyX210ZF9jaGlwX2RyaXZlcikKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVy X210ZF9jaGlwX2RyaXZlciBzbXBfYzU1M2FlOGYKI2RlZmluZSB1bnJlZ2lzdGVyX210ZF9jaGlw X2RyaXZlciBfc2V0X3Zlcih1bnJlZ2lzdGVyX210ZF9jaGlwX2RyaXZlcikKI2RlZmluZSBfX3Zl cl9kb19tYXBfcHJvYmUgc21wX2Y0ZmY0YzMzCiNkZWZpbmUgZG9fbWFwX3Byb2JlIF9zZXRfdmVy KGRvX21hcF9wcm9iZSkKIyA0MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t b2R1bGVzL2NtZGxpbmUudmVyIiAxCiNkZWZpbmUgX192ZXJfbWVtcGFyc2Ugc21wXzIzZjJkMzZm CiNkZWZpbmUgbWVtcGFyc2UgX3NldF92ZXIobWVtcGFyc2UpCiNkZWZpbmUgX192ZXJfZ2V0X29w dGlvbiBzbXBfYjBlMTA3ODEKI2RlZmluZSBnZXRfb3B0aW9uIF9zZXRfdmVyKGdldF9vcHRpb24p CiNkZWZpbmUgX192ZXJfZ2V0X29wdGlvbnMgc21wXzBmYmZmOWI5CiNkZWZpbmUgZ2V0X29wdGlv bnMgX3NldF92ZXIoZ2V0X29wdGlvbnMpCiMgNDIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvbW9kdWxlcy9jb20yMDAyMC52ZXIiIDEKIyA0MyAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2NvbW1vbi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hdG1f YXN5bmNfcmVsZWFzZV92Y2Mgc21wXzNmNGVjYmJjCiNkZWZpbmUgYXRtX2FzeW5jX3JlbGVhc2Vf dmNjIF9zZXRfdmVyKGF0bV9hc3luY19yZWxlYXNlX3ZjYykKIyA0NCAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2NvbXgudmVyIiAxCiNkZWZpbmUgX192ZXJfY29t eF9yZWdpc3Rlcl9oYXJkd2FyZSBzbXBfZGIzYjEzNmYKI2RlZmluZSBjb214X3JlZ2lzdGVyX2hh cmR3YXJlIF9zZXRfdmVyKGNvbXhfcmVnaXN0ZXJfaGFyZHdhcmUpCiNkZWZpbmUgX192ZXJfY29t eF91bnJlZ2lzdGVyX2hhcmR3YXJlIHNtcF9lZDE2NmMyNQojZGVmaW5lIGNvbXhfdW5yZWdpc3Rl cl9oYXJkd2FyZSBfc2V0X3Zlcihjb214X3VucmVnaXN0ZXJfaGFyZHdhcmUpCiNkZWZpbmUgX192 ZXJfY29teF9yZWdpc3Rlcl9wcm90b2NvbCBzbXBfMjNiYzA3OTMKI2RlZmluZSBjb214X3JlZ2lz dGVyX3Byb3RvY29sIF9zZXRfdmVyKGNvbXhfcmVnaXN0ZXJfcHJvdG9jb2wpCiNkZWZpbmUgX192 ZXJfY29teF91bnJlZ2lzdGVyX3Byb3RvY29sIHNtcF84MTI5ZjAwMAojZGVmaW5lIGNvbXhfdW5y ZWdpc3Rlcl9wcm90b2NvbCBfc2V0X3Zlcihjb214X3VucmVnaXN0ZXJfcHJvdG9jb2wpCiNkZWZp bmUgX192ZXJfY29teF9kZWJ1Z19za2Igc21wXzJjMDQ0ZjhhCiNkZWZpbmUgY29teF9kZWJ1Z19z a2IgX3NldF92ZXIoY29teF9kZWJ1Z19za2IpCiNkZWZpbmUgX192ZXJfY29teF9kZWJ1Z19ieXRl cyBzbXBfZTg4YzNkNDMKI2RlZmluZSBjb214X2RlYnVnX2J5dGVzIF9zZXRfdmVyKGNvbXhfZGVi dWdfYnl0ZXMpCiNkZWZpbmUgX192ZXJfY29teF9kZWJ1ZyBzbXBfYWE5MzJkZjUKI2RlZmluZSBj b214X2RlYnVnIF9zZXRfdmVyKGNvbXhfZGVidWcpCiNkZWZpbmUgX192ZXJfY29teF9saW5ldXBf ZnVuYyBzbXBfNDI4ZGI0N2MKI2RlZmluZSBjb214X2xpbmV1cF9mdW5jIF9zZXRfdmVyKGNvbXhf bGluZXVwX2Z1bmMpCiNkZWZpbmUgX192ZXJfY29teF9zdGF0dXMgc21wX2UzNTZmMDIzCiNkZWZp bmUgY29teF9zdGF0dXMgX3NldF92ZXIoY29teF9zdGF0dXMpCiNkZWZpbmUgX192ZXJfY29teF9y eCBzbXBfNjYyZjVhNjMKI2RlZmluZSBjb214X3J4IF9zZXRfdmVyKGNvbXhfcngpCiNkZWZpbmUg X192ZXJfY29teF9zdHJjYXNlY21wIHNtcF84NjE4YzAwNwojZGVmaW5lIGNvbXhfc3RyY2FzZWNt cCBfc2V0X3Zlcihjb214X3N0cmNhc2VjbXApCiNkZWZpbmUgX192ZXJfY29teF9yb290X2RpciBz bXBfMmUxOWI2Y2MKI2RlZmluZSBjb214X3Jvb3RfZGlyIF9zZXRfdmVyKGNvbXhfcm9vdF9kaXIp CiMgNDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9jb25maWcu dmVyIiAxCiNkZWZpbmUgX192ZXJfaGlzYXhfaW5pdF9wY21jaWEgc21wXzRhODVmMzE3CiNkZWZp bmUgaGlzYXhfaW5pdF9wY21jaWEgX3NldF92ZXIoaGlzYXhfaW5pdF9wY21jaWEpCiNkZWZpbmUg X192ZXJfSGlTYXhfY2xvc2VjYXJkIHNtcF9mYzI3MzAzYgojZGVmaW5lIEhpU2F4X2Nsb3NlY2Fy ZCBfc2V0X3ZlcihIaVNheF9jbG9zZWNhcmQpCiMgNDYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvbGludXgvbW9kdWxlcy9jb25zb2xlLnZlciIgMQojZGVmaW5lIF9fdmVyX2NvbG9yX3Rh YmxlIHNtcF9mNmJiNDcyOQojZGVmaW5lIGNvbG9yX3RhYmxlIF9zZXRfdmVyKGNvbG9yX3RhYmxl KQojZGVmaW5lIF9fdmVyX2RlZmF1bHRfcmVkIHNtcF8zMTQ3ODU3ZAojZGVmaW5lIGRlZmF1bHRf cmVkIF9zZXRfdmVyKGRlZmF1bHRfcmVkKQojZGVmaW5lIF9fdmVyX2RlZmF1bHRfZ3JuIHNtcF8w NmZlM2IxNAojZGVmaW5lIGRlZmF1bHRfZ3JuIF9zZXRfdmVyKGRlZmF1bHRfZ3JuKQojZGVmaW5l IF9fdmVyX2RlZmF1bHRfYmx1IHNtcF8xMGVlMjBiYgojZGVmaW5lIGRlZmF1bHRfYmx1IF9zZXRf dmVyKGRlZmF1bHRfYmx1KQojZGVmaW5lIF9fdmVyX3ZpZGVvX2ZvbnRfaGVpZ2h0IHNtcF82NWUy NDE5OAojZGVmaW5lIHZpZGVvX2ZvbnRfaGVpZ2h0IF9zZXRfdmVyKHZpZGVvX2ZvbnRfaGVpZ2h0 KQojZGVmaW5lIF9fdmVyX3ZpZGVvX3NjYW5fbGluZXMgc21wX2FmYWY1OWRjCiNkZWZpbmUgdmlk ZW9fc2Nhbl9saW5lcyBfc2V0X3Zlcih2aWRlb19zY2FuX2xpbmVzKQojZGVmaW5lIF9fdmVyX3Zj X3Jlc2l6ZSBzbXBfMTJlN2VkZmUKI2RlZmluZSB2Y19yZXNpemUgX3NldF92ZXIodmNfcmVzaXpl KQojZGVmaW5lIF9fdmVyX2ZnX2NvbnNvbGUgc21wXzRlNmU4ZWE3CiNkZWZpbmUgZmdfY29uc29s ZSBfc2V0X3ZlcihmZ19jb25zb2xlKQojZGVmaW5lIF9fdmVyX2NvbnNvbGVfYmxhbmtfaG9vayBz bXBfZDI1ZDRmNzQKI2RlZmluZSBjb25zb2xlX2JsYW5rX2hvb2sgX3NldF92ZXIoY29uc29sZV9i bGFua19ob29rKQojZGVmaW5lIF9fdmVyX3Z0X2NvbnMgc21wXzkwZjE2NTRiCiNkZWZpbmUgdnRf Y29ucyBfc2V0X3Zlcih2dF9jb25zKQojZGVmaW5lIF9fdmVyX3Rha2Vfb3Zlcl9jb25zb2xlIHNt cF9mMjk4MzliOQojZGVmaW5lIHRha2Vfb3Zlcl9jb25zb2xlIF9zZXRfdmVyKHRha2Vfb3Zlcl9j b25zb2xlKQojZGVmaW5lIF9fdmVyX2dpdmVfdXBfY29uc29sZSBzbXBfZDdlMTI1ZTkKI2RlZmlu ZSBnaXZlX3VwX2NvbnNvbGUgX3NldF92ZXIoZ2l2ZV91cF9jb25zb2xlKQojIDQ3ICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvY29udGV4dC52ZXIiIDEKI2RlZmlu ZSBfX3Zlcl9zY2hlZHVsZV90YXNrIHNtcF8yZDZjM2QwNAojZGVmaW5lIHNjaGVkdWxlX3Rhc2sg X3NldF92ZXIoc2NoZWR1bGVfdGFzaykKI2RlZmluZSBfX3Zlcl9mbHVzaF9zY2hlZHVsZWRfdGFz a3Mgc21wXzdjMzI0MmI0CiNkZWZpbmUgZmx1c2hfc2NoZWR1bGVkX3Rhc2tzIF9zZXRfdmVyKGZs dXNoX3NjaGVkdWxlZF90YXNrcykKIyA0OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC9tb2R1bGVzL2NwaWEudmVyIiAxCiNkZWZpbmUgX192ZXJfY3BpYV9yZWdpc3Rlcl9jYW1l cmEgc21wXzFlZjMzNzg4CiNkZWZpbmUgY3BpYV9yZWdpc3Rlcl9jYW1lcmEgX3NldF92ZXIoY3Bp YV9yZWdpc3Rlcl9jYW1lcmEpCiNkZWZpbmUgX192ZXJfY3BpYV91bnJlZ2lzdGVyX2NhbWVyYSBz bXBfNGI5NzUwZGQKI2RlZmluZSBjcGlhX3VucmVnaXN0ZXJfY2FtZXJhIF9zZXRfdmVyKGNwaWFf dW5yZWdpc3Rlcl9jYW1lcmEpCiMgNDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvbW9kdWxlcy9jcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wY21jaWFfbG9va3VwX2J1cyBzbXBf NzRkZDVjMGMKI2RlZmluZSBwY21jaWFfbG9va3VwX2J1cyBfc2V0X3ZlcihwY21jaWFfbG9va3Vw X2J1cykKI2RlZmluZSBfX3Zlcl9wY21jaWFfYWNjZXNzX2NvbmZpZ3VyYXRpb25fcmVnaXN0ZXIg c21wXzlkZjhmYjkzCiNkZWZpbmUgcGNtY2lhX2FjY2Vzc19jb25maWd1cmF0aW9uX3JlZ2lzdGVy IF9zZXRfdmVyKHBjbWNpYV9hY2Nlc3NfY29uZmlndXJhdGlvbl9yZWdpc3RlcikKI2RlZmluZSBf X3Zlcl9wY21jaWFfYWRqdXN0X3Jlc291cmNlX2luZm8gc21wX2E0NGRkNGQxCiNkZWZpbmUgcGNt Y2lhX2FkanVzdF9yZXNvdXJjZV9pbmZvIF9zZXRfdmVyKHBjbWNpYV9hZGp1c3RfcmVzb3VyY2Vf aW5mbykKI2RlZmluZSBfX3Zlcl9wY21jaWFfYmluZF9kZXZpY2Ugc21wXzk4MGFjMTFjCiNkZWZp bmUgcGNtY2lhX2JpbmRfZGV2aWNlIF9zZXRfdmVyKHBjbWNpYV9iaW5kX2RldmljZSkKI2RlZmlu ZSBfX3Zlcl9wY21jaWFfYmluZF9tdGQgc21wXzQ4MzczZGE3CiNkZWZpbmUgcGNtY2lhX2JpbmRf bXRkIF9zZXRfdmVyKHBjbWNpYV9iaW5kX210ZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfY2hlY2tf ZXJhc2VfcXVldWUgc21wX2U5ODZiMjY3CiNkZWZpbmUgcGNtY2lhX2NoZWNrX2VyYXNlX3F1ZXVl IF9zZXRfdmVyKHBjbWNpYV9jaGVja19lcmFzZV9xdWV1ZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFf Y2xvc2VfbWVtb3J5IHNtcF81NmU4MTVlNgojZGVmaW5lIHBjbWNpYV9jbG9zZV9tZW1vcnkgX3Nl dF92ZXIocGNtY2lhX2Nsb3NlX21lbW9yeSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfY29weV9tZW1v cnkgc21wXzc4Zjk1YWJiCiNkZWZpbmUgcGNtY2lhX2NvcHlfbWVtb3J5IF9zZXRfdmVyKHBjbWNp YV9jb3B5X21lbW9yeSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZGVyZWdpc3Rlcl9jbGllbnQgc21w X2Y4N2I2OTVhCiNkZWZpbmUgcGNtY2lhX2RlcmVnaXN0ZXJfY2xpZW50IF9zZXRfdmVyKHBjbWNp YV9kZXJlZ2lzdGVyX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZGVyZWdpc3Rlcl9lcmFz ZV9xdWV1ZSBzbXBfNGMzYjA4YWIKI2RlZmluZSBwY21jaWFfZGVyZWdpc3Rlcl9lcmFzZV9xdWV1 ZSBfc2V0X3ZlcihwY21jaWFfZGVyZWdpc3Rlcl9lcmFzZV9xdWV1ZSkKI2RlZmluZSBfX3Zlcl9w Y21jaWFfZWplY3RfY2FyZCBzbXBfZDJkMTVmYTMKI2RlZmluZSBwY21jaWFfZWplY3RfY2FyZCBf c2V0X3ZlcihwY21jaWFfZWplY3RfY2FyZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2ZpcnN0 X2NsaWVudCBzbXBfYTFjYzY4ZmEKI2RlZmluZSBwY21jaWFfZ2V0X2ZpcnN0X2NsaWVudCBfc2V0 X3ZlcihwY21jaWFfZ2V0X2ZpcnN0X2NsaWVudCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2Nh cmRfc2VydmljZXNfaW5mbyBzbXBfM2MzOWM4NzEKI2RlZmluZSBwY21jaWFfZ2V0X2NhcmRfc2Vy dmljZXNfaW5mbyBfc2V0X3ZlcihwY21jaWFfZ2V0X2NhcmRfc2VydmljZXNfaW5mbykKI2RlZmlu ZSBfX3Zlcl9wY21jaWFfZ2V0X2NvbmZpZ3VyYXRpb25faW5mbyBzbXBfOWQ2YTFkZmEKI2RlZmlu ZSBwY21jaWFfZ2V0X2NvbmZpZ3VyYXRpb25faW5mbyBfc2V0X3ZlcihwY21jaWFfZ2V0X2NvbmZp Z3VyYXRpb25faW5mbykKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X21lbV9wYWdlIHNtcF80OWJh NmUyOAojZGVmaW5lIHBjbWNpYV9nZXRfbWVtX3BhZ2UgX3NldF92ZXIocGNtY2lhX2dldF9tZW1f cGFnZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X25leHRfY2xpZW50IHNtcF85ODg3MDcwYgoj ZGVmaW5lIHBjbWNpYV9nZXRfbmV4dF9jbGllbnQgX3NldF92ZXIocGNtY2lhX2dldF9uZXh0X2Ns aWVudCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2ZpcnN0X3JlZ2lvbiBzbXBfMThkMjU5YTAK I2RlZmluZSBwY21jaWFfZ2V0X2ZpcnN0X3JlZ2lvbiBfc2V0X3ZlcihwY21jaWFfZ2V0X2ZpcnN0 X3JlZ2lvbikKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2ZpcnN0X3R1cGxlIHNtcF85OWMzY2E0 NQojZGVmaW5lIHBjbWNpYV9nZXRfZmlyc3RfdHVwbGUgX3NldF92ZXIocGNtY2lhX2dldF9maXJz dF90dXBsZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2ZpcnN0X3dpbmRvdyBzbXBfNDk5NzUy MzIKI2RlZmluZSBwY21jaWFfZ2V0X2ZpcnN0X3dpbmRvdyBfc2V0X3ZlcihwY21jaWFfZ2V0X2Zp cnN0X3dpbmRvdykKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X25leHRfcmVnaW9uIHNtcF9hZDZm M2VmMQojZGVmaW5lIHBjbWNpYV9nZXRfbmV4dF9yZWdpb24gX3NldF92ZXIocGNtY2lhX2dldF9u ZXh0X3JlZ2lvbikKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X25leHRfdHVwbGUgc21wXzhlOGZm MWFmCiNkZWZpbmUgcGNtY2lhX2dldF9uZXh0X3R1cGxlIF9zZXRfdmVyKHBjbWNpYV9nZXRfbmV4 dF90dXBsZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X25leHRfd2luZG93IHNtcF81ZmVhMTUx NQojZGVmaW5lIHBjbWNpYV9nZXRfbmV4dF93aW5kb3cgX3NldF92ZXIocGNtY2lhX2dldF9uZXh0 X3dpbmRvdykKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X3N0YXR1cyBzbXBfMzczMzQzNDIKI2Rl ZmluZSBwY21jaWFfZ2V0X3N0YXR1cyBfc2V0X3ZlcihwY21jaWFfZ2V0X3N0YXR1cykKI2RlZmlu ZSBfX3Zlcl9wY21jaWFfZ2V0X3R1cGxlX2RhdGEgc21wX2U2YTA1OWNkCiNkZWZpbmUgcGNtY2lh X2dldF90dXBsZV9kYXRhIF9zZXRfdmVyKHBjbWNpYV9nZXRfdHVwbGVfZGF0YSkKI2RlZmluZSBf X3Zlcl9wY21jaWFfaW5zZXJ0X2NhcmQgc21wXzQzMTE0YmViCiNkZWZpbmUgcGNtY2lhX2luc2Vy dF9jYXJkIF9zZXRfdmVyKHBjbWNpYV9pbnNlcnRfY2FyZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFf bWFwX21lbV9wYWdlIHNtcF9jNDhkODZkMwojZGVmaW5lIHBjbWNpYV9tYXBfbWVtX3BhZ2UgX3Nl dF92ZXIocGNtY2lhX21hcF9tZW1fcGFnZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfbW9kaWZ5X2Nv bmZpZ3VyYXRpb24gc21wXzhjMGRmZTMzCiNkZWZpbmUgcGNtY2lhX21vZGlmeV9jb25maWd1cmF0 aW9uIF9zZXRfdmVyKHBjbWNpYV9tb2RpZnlfY29uZmlndXJhdGlvbikKI2RlZmluZSBfX3Zlcl9w Y21jaWFfbW9kaWZ5X3dpbmRvdyBzbXBfOGFlOWUxYzQKI2RlZmluZSBwY21jaWFfbW9kaWZ5X3dp bmRvdyBfc2V0X3ZlcihwY21jaWFfbW9kaWZ5X3dpbmRvdykKI2RlZmluZSBfX3Zlcl9wY21jaWFf b3Blbl9tZW1vcnkgc21wX2I3Yjk1NzY3CiNkZWZpbmUgcGNtY2lhX29wZW5fbWVtb3J5IF9zZXRf dmVyKHBjbWNpYV9vcGVuX21lbW9yeSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcGFyc2VfdHVwbGUg c21wXzc1YzgxNjQzCiNkZWZpbmUgcGNtY2lhX3BhcnNlX3R1cGxlIF9zZXRfdmVyKHBjbWNpYV9w YXJzZV90dXBsZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVhZF9tZW1vcnkgc21wXzMyYzljZmY0 CiNkZWZpbmUgcGNtY2lhX3JlYWRfbWVtb3J5IF9zZXRfdmVyKHBjbWNpYV9yZWFkX21lbW9yeSkK I2RlZmluZSBfX3Zlcl9wY21jaWFfcmVnaXN0ZXJfY2xpZW50IHNtcF9kNDYzOTkzYwojZGVmaW5l IHBjbWNpYV9yZWdpc3Rlcl9jbGllbnQgX3NldF92ZXIocGNtY2lhX3JlZ2lzdGVyX2NsaWVudCkK I2RlZmluZSBfX3Zlcl9wY21jaWFfcmVnaXN0ZXJfZXJhc2VfcXVldWUgc21wXzM3MDcyZmQzCiNk ZWZpbmUgcGNtY2lhX3JlZ2lzdGVyX2VyYXNlX3F1ZXVlIF9zZXRfdmVyKHBjbWNpYV9yZWdpc3Rl cl9lcmFzZV9xdWV1ZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVnaXN0ZXJfbXRkIHNtcF9iYzE2 OTJmMgojZGVmaW5lIHBjbWNpYV9yZWdpc3Rlcl9tdGQgX3NldF92ZXIocGNtY2lhX3JlZ2lzdGVy X210ZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVsZWFzZV9jb25maWd1cmF0aW9uIHNtcF81NzM4 NTRmOQojZGVmaW5lIHBjbWNpYV9yZWxlYXNlX2NvbmZpZ3VyYXRpb24gX3NldF92ZXIocGNtY2lh X3JlbGVhc2VfY29uZmlndXJhdGlvbikKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVsZWFzZV9pbyBz bXBfOTY4ZWI2YzAKI2RlZmluZSBwY21jaWFfcmVsZWFzZV9pbyBfc2V0X3ZlcihwY21jaWFfcmVs ZWFzZV9pbykKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVsZWFzZV9pcnEgc21wXzU4YTEzYjc0CiNk ZWZpbmUgcGNtY2lhX3JlbGVhc2VfaXJxIF9zZXRfdmVyKHBjbWNpYV9yZWxlYXNlX2lycSkKI2Rl ZmluZSBfX3Zlcl9wY21jaWFfcmVsZWFzZV93aW5kb3cgc21wXzY4NjU1NTI3CiNkZWZpbmUgcGNt Y2lhX3JlbGVhc2Vfd2luZG93IF9zZXRfdmVyKHBjbWNpYV9yZWxlYXNlX3dpbmRvdykKI2RlZmlu ZSBfX3Zlcl9wY21jaWFfcmVwbGFjZV9jaXMgc21wX2QzMjMzMzZjCiNkZWZpbmUgcGNtY2lhX3Jl cGxhY2VfY2lzIF9zZXRfdmVyKHBjbWNpYV9yZXBsYWNlX2NpcykKI2RlZmluZSBfX3Zlcl9wY21j aWFfcmVwb3J0X2Vycm9yIHNtcF8xOTdmYzA0MgojZGVmaW5lIHBjbWNpYV9yZXBvcnRfZXJyb3Ig X3NldF92ZXIocGNtY2lhX3JlcG9ydF9lcnJvcikKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVxdWVz dF9jb25maWd1cmF0aW9uIHNtcF82ZTg2NDZhNwojZGVmaW5lIHBjbWNpYV9yZXF1ZXN0X2NvbmZp Z3VyYXRpb24gX3NldF92ZXIocGNtY2lhX3JlcXVlc3RfY29uZmlndXJhdGlvbikKI2RlZmluZSBf X3Zlcl9wY21jaWFfcmVxdWVzdF9pbyBzbXBfYTc2M2Y1Y2MKI2RlZmluZSBwY21jaWFfcmVxdWVz dF9pbyBfc2V0X3ZlcihwY21jaWFfcmVxdWVzdF9pbykKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVx dWVzdF9pcnEgc21wXzlkM2RlMGM2CiNkZWZpbmUgcGNtY2lhX3JlcXVlc3RfaXJxIF9zZXRfdmVy KHBjbWNpYV9yZXF1ZXN0X2lycSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVxdWVzdF93aW5kb3cg c21wXzcyMjcxNWRmCiNkZWZpbmUgcGNtY2lhX3JlcXVlc3Rfd2luZG93IF9zZXRfdmVyKHBjbWNp YV9yZXF1ZXN0X3dpbmRvdykKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVzZXRfY2FyZCBzbXBfNGJj OGRlZjUKI2RlZmluZSBwY21jaWFfcmVzZXRfY2FyZCBfc2V0X3ZlcihwY21jaWFfcmVzZXRfY2Fy ZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVzdW1lX2NhcmQgc21wX2M1MTI1NGFkCiNkZWZpbmUg cGNtY2lhX3Jlc3VtZV9jYXJkIF9zZXRfdmVyKHBjbWNpYV9yZXN1bWVfY2FyZCkKI2RlZmluZSBf X3Zlcl9wY21jaWFfc2V0X2V2ZW50X21hc2sgc21wX2I4OWE1MDMxCiNkZWZpbmUgcGNtY2lhX3Nl dF9ldmVudF9tYXNrIF9zZXRfdmVyKHBjbWNpYV9zZXRfZXZlbnRfbWFzaykKI2RlZmluZSBfX3Zl cl9wY21jaWFfc3VzcGVuZF9jYXJkIHNtcF8xZTc5NDZkYgojZGVmaW5lIHBjbWNpYV9zdXNwZW5k X2NhcmQgX3NldF92ZXIocGNtY2lhX3N1c3BlbmRfY2FyZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFf dmFsaWRhdGVfY2lzIHNtcF9lZjUxMTgxNwojZGVmaW5lIHBjbWNpYV92YWxpZGF0ZV9jaXMgX3Nl dF92ZXIocGNtY2lhX3ZhbGlkYXRlX2NpcykKI2RlZmluZSBfX3Zlcl9wY21jaWFfd3JpdGVfbWVt b3J5IHNtcF9kZDZmNmZhNgojZGVmaW5lIHBjbWNpYV93cml0ZV9tZW1vcnkgX3NldF92ZXIocGNt Y2lhX3dyaXRlX21lbW9yeSkKI2RlZmluZSBfX3Zlcl9kZWFkX3NvY2tldCBzbXBfY2Y5N2YzYmQK I2RlZmluZSBkZWFkX3NvY2tldCBfc2V0X3ZlcihkZWFkX3NvY2tldCkKI2RlZmluZSBfX3Zlcl9y ZWdpc3Rlcl9zc19lbnRyeSBzbXBfYTk4MjkyZGUKI2RlZmluZSByZWdpc3Rlcl9zc19lbnRyeSBf c2V0X3ZlcihyZWdpc3Rlcl9zc19lbnRyeSkKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX3NzX2Vu dHJ5IHNtcF8zZDRmYzEzNQojZGVmaW5lIHVucmVnaXN0ZXJfc3NfZW50cnkgX3NldF92ZXIodW5y ZWdpc3Rlcl9zc19lbnRyeSkKI2RlZmluZSBfX3Zlcl9DYXJkU2VydmljZXMgc21wX2U0ZWVmMGE0 CiNkZWZpbmUgQ2FyZFNlcnZpY2VzIF9zZXRfdmVyKENhcmRTZXJ2aWNlcykKI2RlZmluZSBfX3Zl cl9NVERIZWxwZXJFbnRyeSBzbXBfOTIxNTU1ODAKI2RlZmluZSBNVERIZWxwZXJFbnRyeSBfc2V0 X3ZlcihNVERIZWxwZXJFbnRyeSkKI2RlZmluZSBfX3Zlcl9wcm9jX3BjY2FyZCBzbXBfNmI4ZDMx ZTcKI2RlZmluZSBwcm9jX3BjY2FyZCBfc2V0X3Zlcihwcm9jX3BjY2FyZCkKI2RlZmluZSBfX3Zl cl9wY21jaWFfcmVnaXN0ZXJfc29ja2V0IHNtcF9mMTJjMjI3YwojZGVmaW5lIHBjbWNpYV9yZWdp c3Rlcl9zb2NrZXQgX3NldF92ZXIocGNtY2lhX3JlZ2lzdGVyX3NvY2tldCkKI2RlZmluZSBfX3Zl cl9wY21jaWFfdW5yZWdpc3Rlcl9zb2NrZXQgc21wXzZmNzA5ZDU2CiNkZWZpbmUgcGNtY2lhX3Vu cmVnaXN0ZXJfc29ja2V0IF9zZXRfdmVyKHBjbWNpYV91bnJlZ2lzdGVyX3NvY2tldCkKI2RlZmlu ZSBfX3Zlcl9wY21jaWFfc3VzcGVuZF9zb2NrZXQgc21wXzkzYTEyMjMxCiNkZWZpbmUgcGNtY2lh X3N1c3BlbmRfc29ja2V0IF9zZXRfdmVyKHBjbWNpYV9zdXNwZW5kX3NvY2tldCkKI2RlZmluZSBf X3Zlcl9wY21jaWFfcmVzdW1lX3NvY2tldCBzbXBfZGU5Yjc2MTMKI2RlZmluZSBwY21jaWFfcmVz dW1lX3NvY2tldCBfc2V0X3ZlcihwY21jaWFfcmVzdW1lX3NvY2tldCkKIyA1MCAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2N5YmVyMjAwMGZiLnZlciIgMQojZGVm aW5lIF9fdmVyX2N5YmVyMjAwMGZiX2F0dGFjaCBzbXBfYjdmOGNhZmQKI2RlZmluZSBjeWJlcjIw MDBmYl9hdHRhY2ggX3NldF92ZXIoY3liZXIyMDAwZmJfYXR0YWNoKQojZGVmaW5lIF9fdmVyX2N5 YmVyMjAwMGZiX2RldGFjaCBzbXBfMGNjM2VkZTUKI2RlZmluZSBjeWJlcjIwMDBmYl9kZXRhY2gg X3NldF92ZXIoY3liZXIyMDAwZmJfZGV0YWNoKQojIDUxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L21vZHVsZXMvY3ljeF9kcnYudmVyIiAxCiNkZWZpbmUgX192ZXJfY3ljeF9z ZXR1cCBzbXBfMWJiZjMzNTkKI2RlZmluZSBjeWN4X3NldHVwIF9zZXRfdmVyKGN5Y3hfc2V0dXAp CiNkZWZpbmUgX192ZXJfY3ljeF9kb3duIHNtcF9lOTA2MzI3ZQojZGVmaW5lIGN5Y3hfZG93biBf c2V0X3ZlcihjeWN4X2Rvd24pCiNkZWZpbmUgX192ZXJfY3ljeF9pbnRlbiBzbXBfNDFjYWU3YjQK I2RlZmluZSBjeWN4X2ludGVuIF9zZXRfdmVyKGN5Y3hfaW50ZW4pCiNkZWZpbmUgX192ZXJfY3lj eF9pbnRyIHNtcF9lOWQ2MjcwMAojZGVmaW5lIGN5Y3hfaW50ciBfc2V0X3ZlcihjeWN4X2ludHIp CiNkZWZpbmUgX192ZXJfY3ljeF9leGVjIHNtcF9hODZjMThiZAojZGVmaW5lIGN5Y3hfZXhlYyBf c2V0X3ZlcihjeWN4X2V4ZWMpCiNkZWZpbmUgX192ZXJfY3ljeF9wZWVrIHNtcF8wZDU5NWIzZgoj ZGVmaW5lIGN5Y3hfcGVlayBfc2V0X3ZlcihjeWN4X3BlZWspCiNkZWZpbmUgX192ZXJfY3ljeF9w b2tlIHNtcF83NzQ0MWZkZQojZGVmaW5lIGN5Y3hfcG9rZSBfc2V0X3ZlcihjeWN4X3Bva2UpCiMg NTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9EQUM5NjAudmVy IiAxCiNkZWZpbmUgX192ZXJfREFDOTYwX0tlcm5lbElPQ1RMIHNtcF81MzAxMTQ0OQojZGVmaW5l IERBQzk2MF9LZXJuZWxJT0NUTCBfc2V0X3ZlcihEQUM5NjBfS2VybmVsSU9DVEwpCiMgNTMgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9kYnJpLnZlciIgMQojIDU0 ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAx ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZGNhY2hlLnZlciIg MQojZGVmaW5lIF9fdmVyX2JoX2NhY2hlcCBzbXBfZGNjMGJiMzcKI2RlZmluZSBiaF9jYWNoZXAg X3NldF92ZXIoYmhfY2FjaGVwKQojIDU1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21vZHVsZXMvZGRwLnZlciIgMQojIDU2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L21vZHVsZXMvRGl2YXNfbW9kLnZlciIgMQojIDU3ICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZG1hc291bmRfY29yZS52ZXIiIDEKI2RlZmluZSBfX3Zl cl9kbWFzb3VuZCBzbXBfZGFhZTBkYWUKI2RlZmluZSBkbWFzb3VuZCBfc2V0X3ZlcihkbWFzb3Vu ZCkKI2RlZmluZSBfX3Zlcl9kbWFzb3VuZF9pbml0IHNtcF80N2VkZGUyNQojZGVmaW5lIGRtYXNv dW5kX2luaXQgX3NldF92ZXIoZG1hc291bmRfaW5pdCkKI2RlZmluZSBfX3Zlcl9kbWFzb3VuZF93 cml0ZV9zcSBzbXBfMWZkOTg2MmEKI2RlZmluZSBkbWFzb3VuZF93cml0ZV9zcSBfc2V0X3Zlcihk bWFzb3VuZF93cml0ZV9zcSkKI2RlZmluZSBfX3Zlcl9kbWFzb3VuZF9jYXRjaFJhZGl1cyBzbXBf NGI5ZjU3NzAKI2RlZmluZSBkbWFzb3VuZF9jYXRjaFJhZGl1cyBfc2V0X3ZlcihkbWFzb3VuZF9j YXRjaFJhZGl1cykKIyA1OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2 ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1 bGVzL2RzLnZlciIgMQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX3BjY2FyZF9kcml2ZXIgc21wXzcw MmI4OTUzCiNkZWZpbmUgcmVnaXN0ZXJfcGNjYXJkX2RyaXZlciBfc2V0X3ZlcihyZWdpc3Rlcl9w Y2NhcmRfZHJpdmVyKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfcGNjYXJkX2RyaXZlciBzbXBf ZGIzNDhjZDIKI2RlZmluZSB1bnJlZ2lzdGVyX3BjY2FyZF9kcml2ZXIgX3NldF92ZXIodW5yZWdp c3Rlcl9wY2NhcmRfZHJpdmVyKQojIDU5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21vZHVsZXMvZWljb25fbW9kLnZlciIgMQojIDYwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L21vZHVsZXMvZmF0ZnNfc3ltcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYXRf bmV3X2RpciBzbXBfODlhNThiYWUKI2RlZmluZSBmYXRfbmV3X2RpciBfc2V0X3ZlcihmYXRfbmV3 X2RpcikKI2RlZmluZSBfX3Zlcl9mYXRfZ2V0X2Jsb2NrIHNtcF81ZDM5MTAxMAojZGVmaW5lIGZh dF9nZXRfYmxvY2sgX3NldF92ZXIoZmF0X2dldF9ibG9jaykKI2RlZmluZSBfX3Zlcl9mYXRfY2xl YXJfaW5vZGUgc21wXzNhOTg3MmE3CiNkZWZpbmUgZmF0X2NsZWFyX2lub2RlIF9zZXRfdmVyKGZh dF9jbGVhcl9pbm9kZSkKI2RlZmluZSBfX3Zlcl9mYXRfZGF0ZV91bml4MmRvcyBzbXBfODNmYjM2 YTEKI2RlZmluZSBmYXRfZGF0ZV91bml4MmRvcyBfc2V0X3ZlcihmYXRfZGF0ZV91bml4MmRvcykK I2RlZmluZSBfX3Zlcl9mYXRfZGVsZXRlX2lub2RlIHNtcF9mM2UzMmFlNwojZGVmaW5lIGZhdF9k ZWxldGVfaW5vZGUgX3NldF92ZXIoZmF0X2RlbGV0ZV9pbm9kZSkKI2RlZmluZSBfX3Zlcl9mYXRf X2dldF9lbnRyeSBzbXBfMTc1OTY5MGMKI2RlZmluZSBmYXRfX2dldF9lbnRyeSBfc2V0X3Zlcihm YXRfX2dldF9lbnRyeSkKI2RlZmluZSBfX3Zlcl9mYXRfbWFya19idWZmZXJfZGlydHkgc21wXzIw YjQ1YjAxCiNkZWZpbmUgZmF0X21hcmtfYnVmZmVyX2RpcnR5IF9zZXRfdmVyKGZhdF9tYXJrX2J1 ZmZlcl9kaXJ0eSkKI2RlZmluZSBfX3Zlcl9mYXRfbm90aWZ5X2NoYW5nZSBzbXBfYjJkYTdkYzIK I2RlZmluZSBmYXRfbm90aWZ5X2NoYW5nZSBfc2V0X3ZlcihmYXRfbm90aWZ5X2NoYW5nZSkKI2Rl ZmluZSBfX3Zlcl9mYXRfcGFyZW50X2lubyBzbXBfM2IzY2MzOGIKI2RlZmluZSBmYXRfcGFyZW50 X2lubyBfc2V0X3ZlcihmYXRfcGFyZW50X2lubykKI2RlZmluZSBfX3Zlcl9mYXRfcHV0X3N1cGVy IHNtcF82MTZkM2Q2NgojZGVmaW5lIGZhdF9wdXRfc3VwZXIgX3NldF92ZXIoZmF0X3B1dF9zdXBl cikKI2RlZmluZSBfX3Zlcl9mYXRfYXR0YWNoIHNtcF8zNDllMTgyOQojZGVmaW5lIGZhdF9hdHRh Y2ggX3NldF92ZXIoZmF0X2F0dGFjaCkKI2RlZmluZSBfX3Zlcl9mYXRfZGV0YWNoIHNtcF9kZWE3 Nzg2MQojZGVmaW5lIGZhdF9kZXRhY2ggX3NldF92ZXIoZmF0X2RldGFjaCkKI2RlZmluZSBfX3Zl cl9mYXRfYnVpbGRfaW5vZGUgc21wX2MyYjg1YzRjCiNkZWZpbmUgZmF0X2J1aWxkX2lub2RlIF9z ZXRfdmVyKGZhdF9idWlsZF9pbm9kZSkKI2RlZmluZSBfX3Zlcl9mYXRfcmVhZF9zdXBlciBzbXBf YTBmMWMxYzYKI2RlZmluZSBmYXRfcmVhZF9zdXBlciBfc2V0X3ZlcihmYXRfcmVhZF9zdXBlcikK I2RlZmluZSBfX3Zlcl9mYXRfc2VhcmNoX2xvbmcgc21wX2RiNjlhMzlhCiNkZWZpbmUgZmF0X3Nl YXJjaF9sb25nIF9zZXRfdmVyKGZhdF9zZWFyY2hfbG9uZykKI2RlZmluZSBfX3Zlcl9mYXRfcmVh ZGRpciBzbXBfYmZmNWMyNGYKI2RlZmluZSBmYXRfcmVhZGRpciBfc2V0X3ZlcihmYXRfcmVhZGRp cikKI2RlZmluZSBfX3Zlcl9mYXRfc2NhbiBzbXBfNmY2MDNjOTQKI2RlZmluZSBmYXRfc2NhbiBf c2V0X3ZlcihmYXRfc2NhbikKI2RlZmluZSBfX3Zlcl9mYXRfc3RhdGZzIHNtcF83MTQ0NWFjNAoj ZGVmaW5lIGZhdF9zdGF0ZnMgX3NldF92ZXIoZmF0X3N0YXRmcykKI2RlZmluZSBfX3Zlcl9mYXRf d3JpdGVfaW5vZGUgc21wXzA4ZTRkMjFjCiNkZWZpbmUgZmF0X3dyaXRlX2lub2RlIF9zZXRfdmVy KGZhdF93cml0ZV9pbm9kZSkKI2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9jdmZfZm9ybWF0IHNtcF85 YmM5ZTAxZQojZGVmaW5lIHJlZ2lzdGVyX2N2Zl9mb3JtYXQgX3NldF92ZXIocmVnaXN0ZXJfY3Zm X2Zvcm1hdCkKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX2N2Zl9mb3JtYXQgc21wXzEwYzBiNjI1 CiNkZWZpbmUgdW5yZWdpc3Rlcl9jdmZfZm9ybWF0IF9zZXRfdmVyKHVucmVnaXN0ZXJfY3ZmX2Zv cm1hdCkKI2RlZmluZSBfX3Zlcl9mYXRfZ2V0X2NsdXN0ZXIgc21wX2FjMGZkNDlhCiNkZWZpbmUg ZmF0X2dldF9jbHVzdGVyIF9zZXRfdmVyKGZhdF9nZXRfY2x1c3RlcikKI2RlZmluZSBfX3Zlcl9m YXRfZGlyX2lvY3RsIHNtcF8xMGM4MDlhYgojZGVmaW5lIGZhdF9kaXJfaW9jdGwgX3NldF92ZXIo ZmF0X2Rpcl9pb2N0bCkKI2RlZmluZSBfX3Zlcl9mYXRfYWRkX2VudHJpZXMgc21wXzUxM2IxOTc0 CiNkZWZpbmUgZmF0X2FkZF9lbnRyaWVzIF9zZXRfdmVyKGZhdF9hZGRfZW50cmllcykKI2RlZmlu ZSBfX3Zlcl9mYXRfZGlyX2VtcHR5IHNtcF9hMzEyMWIwOQojZGVmaW5lIGZhdF9kaXJfZW1wdHkg X3NldF92ZXIoZmF0X2Rpcl9lbXB0eSkKI2RlZmluZSBfX3Zlcl9mYXRfdHJ1bmNhdGUgc21wXzhk MzQxY2Q5CiNkZWZpbmUgZmF0X3RydW5jYXRlIF9zZXRfdmVyKGZhdF90cnVuY2F0ZSkKI2RlZmlu ZSBfX3Zlcl9mYXRfYnJlbHNlIHNtcF9hNmQyYTBjMAojZGVmaW5lIGZhdF9icmVsc2UgX3NldF92 ZXIoZmF0X2JyZWxzZSkKIyA2MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t b2R1bGVzL2ZiY21hcC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYl9hbGxvY19jbWFwIHNtcF8wN2E4 OTBjOAojZGVmaW5lIGZiX2FsbG9jX2NtYXAgX3NldF92ZXIoZmJfYWxsb2NfY21hcCkKI2RlZmlu ZSBfX3Zlcl9mYl9jb3B5X2NtYXAgc21wXzNkNjgyNjZjCiNkZWZpbmUgZmJfY29weV9jbWFwIF9z ZXRfdmVyKGZiX2NvcHlfY21hcCkKI2RlZmluZSBfX3Zlcl9mYl9nZXRfY21hcCBzbXBfM2U2OWRl OGYKI2RlZmluZSBmYl9nZXRfY21hcCBfc2V0X3ZlcihmYl9nZXRfY21hcCkKI2RlZmluZSBfX3Zl cl9mYl9zZXRfY21hcCBzbXBfODlmZjZkNjYKI2RlZmluZSBmYl9zZXRfY21hcCBfc2V0X3Zlcihm Yl9zZXRfY21hcCkKI2RlZmluZSBfX3Zlcl9mYl9kZWZhdWx0X2NtYXAgc21wX2E1NjU1N2VhCiNk ZWZpbmUgZmJfZGVmYXVsdF9jbWFwIF9zZXRfdmVyKGZiX2RlZmF1bHRfY21hcCkKI2RlZmluZSBf X3Zlcl9mYl9pbnZlcnRfY21hcHMgc21wX2YxOTVjNjgyCiNkZWZpbmUgZmJfaW52ZXJ0X2NtYXBz IF9zZXRfdmVyKGZiX2ludmVydF9jbWFwcykKIyA2MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWFmYi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYmNvbl9h ZmIgc21wXzRkYzU0Y2U0CiNkZWZpbmUgZmJjb25fYWZiIF9zZXRfdmVyKGZiY29uX2FmYikKI2Rl ZmluZSBfX3Zlcl9mYmNvbl9hZmJfc2V0dXAgc21wX2VkMjk2MzI5CiNkZWZpbmUgZmJjb25fYWZi X3NldHVwIF9zZXRfdmVyKGZiY29uX2FmYl9zZXR1cCkKI2RlZmluZSBfX3Zlcl9mYmNvbl9hZmJf Ym1vdmUgc21wXzY2ZDViY2JhCiNkZWZpbmUgZmJjb25fYWZiX2Jtb3ZlIF9zZXRfdmVyKGZiY29u X2FmYl9ibW92ZSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9hZmJfY2xlYXIgc21wXzZkZTdmOGQwCiNk ZWZpbmUgZmJjb25fYWZiX2NsZWFyIF9zZXRfdmVyKGZiY29uX2FmYl9jbGVhcikKI2RlZmluZSBf X3Zlcl9mYmNvbl9hZmJfcHV0YyBzbXBfNTBkMzk1NjMKI2RlZmluZSBmYmNvbl9hZmJfcHV0YyBf c2V0X3ZlcihmYmNvbl9hZmJfcHV0YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9hZmJfcHV0Y3Mgc21w Xzc3ZWY0ZjU1CiNkZWZpbmUgZmJjb25fYWZiX3B1dGNzIF9zZXRfdmVyKGZiY29uX2FmYl9wdXRj cykKI2RlZmluZSBfX3Zlcl9mYmNvbl9hZmJfcmV2YyBzbXBfNGJhNmZmMDMKI2RlZmluZSBmYmNv bl9hZmJfcmV2YyBfc2V0X3ZlcihmYmNvbl9hZmJfcmV2YykKIyA2MyAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWNmYjE2LnZlciIgMQojZGVmaW5lIF9f dmVyX2ZiY29uX2NmYjE2IHNtcF9lNmZmYmQ5OAojZGVmaW5lIGZiY29uX2NmYjE2IF9zZXRfdmVy KGZiY29uX2NmYjE2KQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2X3NldHVwIHNtcF85ZmFkZTZl MwojZGVmaW5lIGZiY29uX2NmYjE2X3NldHVwIF9zZXRfdmVyKGZiY29uX2NmYjE2X3NldHVwKQoj ZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2X2Jtb3ZlIHNtcF84ZjQ3ZWVhMgojZGVmaW5lIGZiY29u X2NmYjE2X2Jtb3ZlIF9zZXRfdmVyKGZiY29uX2NmYjE2X2Jtb3ZlKQojZGVmaW5lIF9fdmVyX2Zi Y29uX2NmYjE2X2NsZWFyIHNtcF83ODIxZjk0NwojZGVmaW5lIGZiY29uX2NmYjE2X2NsZWFyIF9z ZXRfdmVyKGZiY29uX2NmYjE2X2NsZWFyKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2X3B1dGMg c21wX2I5NDFjNzdiCiNkZWZpbmUgZmJjb25fY2ZiMTZfcHV0YyBfc2V0X3ZlcihmYmNvbl9jZmIx Nl9wdXRjKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2X3B1dGNzIHNtcF84NzUwNmIzOQojZGVm aW5lIGZiY29uX2NmYjE2X3B1dGNzIF9zZXRfdmVyKGZiY29uX2NmYjE2X3B1dGNzKQojZGVmaW5l IF9fdmVyX2ZiY29uX2NmYjE2X3JldmMgc21wX2RkNDA4ZTFjCiNkZWZpbmUgZmJjb25fY2ZiMTZf cmV2YyBfc2V0X3ZlcihmYmNvbl9jZmIxNl9yZXZjKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2 X2NsZWFyX21hcmdpbnMgc21wXzA2NWI1NWZlCiNkZWZpbmUgZmJjb25fY2ZiMTZfY2xlYXJfbWFy Z2lucyBfc2V0X3ZlcihmYmNvbl9jZmIxNl9jbGVhcl9tYXJnaW5zKQojIDY0ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZmJjb24tY2ZiMjQudmVyIiAxCiNkZWZp bmUgX192ZXJfZmJjb25fY2ZiMjQgc21wX2Q2OGY2MTQzCiNkZWZpbmUgZmJjb25fY2ZiMjQgX3Nl dF92ZXIoZmJjb25fY2ZiMjQpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRfc2V0dXAgc21wX2Qz MDQzNTk2CiNkZWZpbmUgZmJjb25fY2ZiMjRfc2V0dXAgX3NldF92ZXIoZmJjb25fY2ZiMjRfc2V0 dXApCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRfYm1vdmUgc21wX2RiNmZlNGQ0CiNkZWZpbmUg ZmJjb25fY2ZiMjRfYm1vdmUgX3NldF92ZXIoZmJjb25fY2ZiMjRfYm1vdmUpCiNkZWZpbmUgX192 ZXJfZmJjb25fY2ZiMjRfY2xlYXIgc21wX2UzZGNjMzAwCiNkZWZpbmUgZmJjb25fY2ZiMjRfY2xl YXIgX3NldF92ZXIoZmJjb25fY2ZiMjRfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRf cHV0YyBzbXBfZWQ2OWNkMGQKI2RlZmluZSBmYmNvbl9jZmIyNF9wdXRjIF9zZXRfdmVyKGZiY29u X2NmYjI0X3B1dGMpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRfcHV0Y3Mgc21wX2NkODE3M2Ez CiNkZWZpbmUgZmJjb25fY2ZiMjRfcHV0Y3MgX3NldF92ZXIoZmJjb25fY2ZiMjRfcHV0Y3MpCiNk ZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRfcmV2YyBzbXBfZDAyNmE3ZjIKI2RlZmluZSBmYmNvbl9j ZmIyNF9yZXZjIF9zZXRfdmVyKGZiY29uX2NmYjI0X3JldmMpCiNkZWZpbmUgX192ZXJfZmJjb25f Y2ZiMjRfY2xlYXJfbWFyZ2lucyBzbXBfNzEzOThiNzIKI2RlZmluZSBmYmNvbl9jZmIyNF9jbGVh cl9tYXJnaW5zIF9zZXRfdmVyKGZiY29uX2NmYjI0X2NsZWFyX21hcmdpbnMpCiMgNjUgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNvbi1jZmIyLnZlciIgMQoj ZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjIgc21wXzRjNzIwZmRiCiNkZWZpbmUgZmJjb25fY2ZiMiBf c2V0X3ZlcihmYmNvbl9jZmIyKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjJfc2V0dXAgc21wXzk2 MWZjNDk4CiNkZWZpbmUgZmJjb25fY2ZiMl9zZXR1cCBfc2V0X3ZlcihmYmNvbl9jZmIyX3NldHVw KQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjJfYm1vdmUgc21wXzAwZTNmMjk4CiNkZWZpbmUgZmJj b25fY2ZiMl9ibW92ZSBfc2V0X3ZlcihmYmNvbl9jZmIyX2Jtb3ZlKQojZGVmaW5lIF9fdmVyX2Zi Y29uX2NmYjJfY2xlYXIgc21wXzMwYmI1ZTgwCiNkZWZpbmUgZmJjb25fY2ZiMl9jbGVhciBfc2V0 X3ZlcihmYmNvbl9jZmIyX2NsZWFyKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjJfcHV0YyBzbXBf MzZlNWRiNDEKI2RlZmluZSBmYmNvbl9jZmIyX3B1dGMgX3NldF92ZXIoZmJjb25fY2ZiMl9wdXRj KQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjJfcHV0Y3Mgc21wX2NhZTg2NGE2CiNkZWZpbmUgZmJj b25fY2ZiMl9wdXRjcyBfc2V0X3ZlcihmYmNvbl9jZmIyX3B1dGNzKQojZGVmaW5lIF9fdmVyX2Zi Y29uX2NmYjJfcmV2YyBzbXBfMzIzNjdiNzYKI2RlZmluZSBmYmNvbl9jZmIyX3JldmMgX3NldF92 ZXIoZmJjb25fY2ZiMl9yZXZjKQojIDY2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21vZHVsZXMvZmJjb24tY2ZiMzIudmVyIiAxCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMzIg c21wXzgxMTdhY2YyCiNkZWZpbmUgZmJjb25fY2ZiMzIgX3NldF92ZXIoZmJjb25fY2ZiMzIpCiNk ZWZpbmUgX192ZXJfZmJjb25fY2ZiMzJfc2V0dXAgc21wXzJkMDBmMDU2CiNkZWZpbmUgZmJjb25f Y2ZiMzJfc2V0dXAgX3NldF92ZXIoZmJjb25fY2ZiMzJfc2V0dXApCiNkZWZpbmUgX192ZXJfZmJj b25fY2ZiMzJfYm1vdmUgc21wXzZlNTZiNDdkCiNkZWZpbmUgZmJjb25fY2ZiMzJfYm1vdmUgX3Nl dF92ZXIoZmJjb25fY2ZiMzJfYm1vdmUpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMzJfY2xlYXIg c21wX2JiZmMzOTE1CiNkZWZpbmUgZmJjb25fY2ZiMzJfY2xlYXIgX3NldF92ZXIoZmJjb25fY2Zi MzJfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMzJfcHV0YyBzbXBfNTg1MDlkYTQKI2Rl ZmluZSBmYmNvbl9jZmIzMl9wdXRjIF9zZXRfdmVyKGZiY29uX2NmYjMyX3B1dGMpCiNkZWZpbmUg X192ZXJfZmJjb25fY2ZiMzJfcHV0Y3Mgc21wXzAwMjYxNzg0CiNkZWZpbmUgZmJjb25fY2ZiMzJf cHV0Y3MgX3NldF92ZXIoZmJjb25fY2ZiMzJfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25fY2Zi MzJfcmV2YyBzbXBfNTgxNDE5MTMKI2RlZmluZSBmYmNvbl9jZmIzMl9yZXZjIF9zZXRfdmVyKGZi Y29uX2NmYjMyX3JldmMpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMzJfY2xlYXJfbWFyZ2lucyBz bXBfZjUzOWYxMjkKI2RlZmluZSBmYmNvbl9jZmIzMl9jbGVhcl9tYXJnaW5zIF9zZXRfdmVyKGZi Y29uX2NmYjMyX2NsZWFyX21hcmdpbnMpCiMgNjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvbW9kdWxlcy9mYmNvbi1jZmI0LnZlciIgMQojZGVmaW5lIF9fdmVyX2ZiY29uX2Nm YjQgc21wXzFhMjhhODVkCiNkZWZpbmUgZmJjb25fY2ZiNCBfc2V0X3ZlcihmYmNvbl9jZmI0KQoj ZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjRfc2V0dXAgc21wX2Y5ODA2ZmZmCiNkZWZpbmUgZmJjb25f Y2ZiNF9zZXR1cCBfc2V0X3ZlcihmYmNvbl9jZmI0X3NldHVwKQojZGVmaW5lIF9fdmVyX2ZiY29u X2NmYjRfYm1vdmUgc21wXzNjZWUzMzBkCiNkZWZpbmUgZmJjb25fY2ZiNF9ibW92ZSBfc2V0X3Zl cihmYmNvbl9jZmI0X2Jtb3ZlKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjRfY2xlYXIgc21wXzE1 OTI0OWEyCiNkZWZpbmUgZmJjb25fY2ZiNF9jbGVhciBfc2V0X3ZlcihmYmNvbl9jZmI0X2NsZWFy KQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjRfcHV0YyBzbXBfMGFlODFhZDQKI2RlZmluZSBmYmNv bl9jZmI0X3B1dGMgX3NldF92ZXIoZmJjb25fY2ZiNF9wdXRjKQojZGVmaW5lIF9fdmVyX2ZiY29u X2NmYjRfcHV0Y3Mgc21wXzc1MjY1MjczCiNkZWZpbmUgZmJjb25fY2ZiNF9wdXRjcyBfc2V0X3Zl cihmYmNvbl9jZmI0X3B1dGNzKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjRfcmV2YyBzbXBfMDY4 NjM2MTMKI2RlZmluZSBmYmNvbl9jZmI0X3JldmMgX3NldF92ZXIoZmJjb25fY2ZiNF9yZXZjKQoj IDY4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIK IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZmJjb24tY2Zi OC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4IHNtcF9iNjlkZTc1MQojZGVmaW5lIGZi Y29uX2NmYjggX3NldF92ZXIoZmJjb25fY2ZiOCkKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4X3Nl dHVwIHNtcF8yNmJmMzkzMQojZGVmaW5lIGZiY29uX2NmYjhfc2V0dXAgX3NldF92ZXIoZmJjb25f Y2ZiOF9zZXR1cCkKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4X2Jtb3ZlIHNtcF80NGY1YjAyNwoj ZGVmaW5lIGZiY29uX2NmYjhfYm1vdmUgX3NldF92ZXIoZmJjb25fY2ZiOF9ibW92ZSkKI2RlZmlu ZSBfX3Zlcl9mYmNvbl9jZmI4X2NsZWFyIHNtcF81ZmMwNjdlNgojZGVmaW5lIGZiY29uX2NmYjhf Y2xlYXIgX3NldF92ZXIoZmJjb25fY2ZiOF9jbGVhcikKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4 X3B1dGMgc21wXzcyZjM5OWZlCiNkZWZpbmUgZmJjb25fY2ZiOF9wdXRjIF9zZXRfdmVyKGZiY29u X2NmYjhfcHV0YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4X3B1dGNzIHNtcF9kMWNiMzk5OAoj ZGVmaW5lIGZiY29uX2NmYjhfcHV0Y3MgX3NldF92ZXIoZmJjb25fY2ZiOF9wdXRjcykKI2RlZmlu ZSBfX3Zlcl9mYmNvbl9jZmI4X3JldmMgc21wXzZmZTZhY2Q5CiNkZWZpbmUgZmJjb25fY2ZiOF9y ZXZjIF9zZXRfdmVyKGZiY29uX2NmYjhfcmV2YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4X2Ns ZWFyX21hcmdpbnMgc21wXzk1MzBmYWRlCiNkZWZpbmUgZmJjb25fY2ZiOF9jbGVhcl9tYXJnaW5z IF9zZXRfdmVyKGZiY29uX2NmYjhfY2xlYXJfbWFyZ2lucykKIyA2OSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWhnYS52ZXIiIDEKI2RlZmluZSBfX3Zl cl9mYmNvbl9oZ2Egc21wXzFhMjIzYTlhCiNkZWZpbmUgZmJjb25faGdhIF9zZXRfdmVyKGZiY29u X2hnYSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2Ffc2V0dXAgc21wX2MyNjg5NWQzCiNkZWZpbmUg ZmJjb25faGdhX3NldHVwIF9zZXRfdmVyKGZiY29uX2hnYV9zZXR1cCkKI2RlZmluZSBfX3Zlcl9m YmNvbl9oZ2FfYm1vdmUgc21wXzk3ZmE0MDhiCiNkZWZpbmUgZmJjb25faGdhX2Jtb3ZlIF9zZXRf dmVyKGZiY29uX2hnYV9ibW92ZSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2FfY2xlYXIgc21wXzdj ZTg0NjQzCiNkZWZpbmUgZmJjb25faGdhX2NsZWFyIF9zZXRfdmVyKGZiY29uX2hnYV9jbGVhcikK I2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2FfcHV0YyBzbXBfYTFmYzY5NTIKI2RlZmluZSBmYmNvbl9o Z2FfcHV0YyBfc2V0X3ZlcihmYmNvbl9oZ2FfcHV0YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2Ff cHV0Y3Mgc21wXzE3ODRhNjVjCiNkZWZpbmUgZmJjb25faGdhX3B1dGNzIF9zZXRfdmVyKGZiY29u X2hnYV9wdXRjcykKI2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2FfcmV2YyBzbXBfZDQyNzViOGIKI2Rl ZmluZSBmYmNvbl9oZ2FfcmV2YyBfc2V0X3ZlcihmYmNvbl9oZ2FfcmV2YykKI2RlZmluZSBfX3Zl cl9mYmNvbl9oZ2FfY2xlYXJfbWFyZ2lucyBzbXBfOTUwZWVlZjgKI2RlZmluZSBmYmNvbl9oZ2Ff Y2xlYXJfbWFyZ2lucyBfc2V0X3ZlcihmYmNvbl9oZ2FfY2xlYXJfbWFyZ2lucykKIyA3MCAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWlsYm0udmVyIiAx CiNkZWZpbmUgX192ZXJfZmJjb25faWxibSBzbXBfNTQ1Y2I2ODUKI2RlZmluZSBmYmNvbl9pbGJt IF9zZXRfdmVyKGZiY29uX2lsYm0pCiNkZWZpbmUgX192ZXJfZmJjb25faWxibV9zZXR1cCBzbXBf MGJhMzU5YWMKI2RlZmluZSBmYmNvbl9pbGJtX3NldHVwIF9zZXRfdmVyKGZiY29uX2lsYm1fc2V0 dXApCiNkZWZpbmUgX192ZXJfZmJjb25faWxibV9ibW92ZSBzbXBfYzU3MWZhMDEKI2RlZmluZSBm YmNvbl9pbGJtX2Jtb3ZlIF9zZXRfdmVyKGZiY29uX2lsYm1fYm1vdmUpCiNkZWZpbmUgX192ZXJf ZmJjb25faWxibV9jbGVhciBzbXBfNGNlZDg1NDYKI2RlZmluZSBmYmNvbl9pbGJtX2NsZWFyIF9z ZXRfdmVyKGZiY29uX2lsYm1fY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25faWxibV9wdXRjIHNt cF9mMzc3ZDNkOAojZGVmaW5lIGZiY29uX2lsYm1fcHV0YyBfc2V0X3ZlcihmYmNvbl9pbGJtX3B1 dGMpCiNkZWZpbmUgX192ZXJfZmJjb25faWxibV9wdXRjcyBzbXBfZDJkOGM5MGEKI2RlZmluZSBm YmNvbl9pbGJtX3B1dGNzIF9zZXRfdmVyKGZiY29uX2lsYm1fcHV0Y3MpCiNkZWZpbmUgX192ZXJf ZmJjb25faWxibV9yZXZjIHNtcF84NDA1ZDIxOAojZGVmaW5lIGZiY29uX2lsYm1fcmV2YyBfc2V0 X3ZlcihmYmNvbl9pbGJtX3JldmMpCiMgNzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvbW9kdWxlcy9mYmNvbi1pcGxhbjJwMi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYmNvbl9p cGxhbjJwMiBzbXBfNzNmZmM5YWIKI2RlZmluZSBmYmNvbl9pcGxhbjJwMiBfc2V0X3ZlcihmYmNv bl9pcGxhbjJwMikKI2RlZmluZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9zZXR1cCBzbXBfZDMzNjg3 NTAKI2RlZmluZSBmYmNvbl9pcGxhbjJwMl9zZXR1cCBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwMl9z ZXR1cCkKI2RlZmluZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9ibW92ZSBzbXBfZTc1YmQ4MjAKI2Rl ZmluZSBmYmNvbl9pcGxhbjJwMl9ibW92ZSBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwMl9ibW92ZSkK I2RlZmluZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9jbGVhciBzbXBfZWUwOTQzNDMKI2RlZmluZSBm YmNvbl9pcGxhbjJwMl9jbGVhciBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwMl9jbGVhcikKI2RlZmlu ZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9wdXRjIHNtcF9kMTVkZjFmOQojZGVmaW5lIGZiY29uX2lw bGFuMnAyX3B1dGMgX3NldF92ZXIoZmJjb25faXBsYW4ycDJfcHV0YykKI2RlZmluZSBfX3Zlcl9m YmNvbl9pcGxhbjJwMl9wdXRjcyBzbXBfODBjYjY2MTcKI2RlZmluZSBmYmNvbl9pcGxhbjJwMl9w dXRjcyBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwMl9wdXRjcykKI2RlZmluZSBfX3Zlcl9mYmNvbl9p cGxhbjJwMl9yZXZjIHNtcF8xM2ZlZjI5MQojZGVmaW5lIGZiY29uX2lwbGFuMnAyX3JldmMgX3Nl dF92ZXIoZmJjb25faXBsYW4ycDJfcmV2YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9j bGVhcl9tYXJnaW5zIHNtcF82ZmVkNjA3MgojZGVmaW5lIGZiY29uX2lwbGFuMnAyX2NsZWFyX21h cmdpbnMgX3NldF92ZXIoZmJjb25faXBsYW4ycDJfY2xlYXJfbWFyZ2lucykKIyA3MiAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWlwbGFuMnA0LnZlciIg MQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0IHNtcF8yNWE1NmUyZAojZGVmaW5lIGZiY29u X2lwbGFuMnA0IF9zZXRfdmVyKGZiY29uX2lwbGFuMnA0KQojZGVmaW5lIF9fdmVyX2ZiY29uX2lw bGFuMnA0X3NldHVwIHNtcF9iY2E5MmMzNwojZGVmaW5lIGZiY29uX2lwbGFuMnA0X3NldHVwIF9z ZXRfdmVyKGZiY29uX2lwbGFuMnA0X3NldHVwKQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0 X2Jtb3ZlIHNtcF9kYjU2MTliNQojZGVmaW5lIGZiY29uX2lwbGFuMnA0X2Jtb3ZlIF9zZXRfdmVy KGZiY29uX2lwbGFuMnA0X2Jtb3ZlKQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0X2NsZWFy IHNtcF9jYjIwNTQ2MQojZGVmaW5lIGZiY29uX2lwbGFuMnA0X2NsZWFyIF9zZXRfdmVyKGZiY29u X2lwbGFuMnA0X2NsZWFyKQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0X3B1dGMgc21wX2Vk NTAzMDZjCiNkZWZpbmUgZmJjb25faXBsYW4ycDRfcHV0YyBfc2V0X3ZlcihmYmNvbl9pcGxhbjJw NF9wdXRjKQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0X3B1dGNzIHNtcF8zZjA1NTBjMgoj ZGVmaW5lIGZiY29uX2lwbGFuMnA0X3B1dGNzIF9zZXRfdmVyKGZiY29uX2lwbGFuMnA0X3B1dGNz KQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0X3JldmMgc21wXzI3NGViZmY0CiNkZWZpbmUg ZmJjb25faXBsYW4ycDRfcmV2YyBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwNF9yZXZjKQojZGVmaW5l IF9fdmVyX2ZiY29uX2lwbGFuMnA0X2NsZWFyX21hcmdpbnMgc21wXzc3ZTAxZWVhCiNkZWZpbmUg ZmJjb25faXBsYW4ycDRfY2xlYXJfbWFyZ2lucyBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwNF9jbGVh cl9tYXJnaW5zKQojIDczICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZl cnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVs ZXMvZmJjb24taXBsYW4ycDgudmVyIiAxCiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4ycDggc21w Xzg5MTAyMTIxCiNkZWZpbmUgZmJjb25faXBsYW4ycDggX3NldF92ZXIoZmJjb25faXBsYW4ycDgp CiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4ycDhfc2V0dXAgc21wXzYzOTY3YWY5CiNkZWZpbmUg ZmJjb25faXBsYW4ycDhfc2V0dXAgX3NldF92ZXIoZmJjb25faXBsYW4ycDhfc2V0dXApCiNkZWZp bmUgX192ZXJfZmJjb25faXBsYW4ycDhfYm1vdmUgc21wX2EzNGQ5YTlmCiNkZWZpbmUgZmJjb25f aXBsYW4ycDhfYm1vdmUgX3NldF92ZXIoZmJjb25faXBsYW4ycDhfYm1vdmUpCiNkZWZpbmUgX192 ZXJfZmJjb25faXBsYW4ycDhfY2xlYXIgc21wXzgxNzI3YTI1CiNkZWZpbmUgZmJjb25faXBsYW4y cDhfY2xlYXIgX3NldF92ZXIoZmJjb25faXBsYW4ycDhfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJj b25faXBsYW4ycDhfcHV0YyBzbXBfOTU0YmIzNDYKI2RlZmluZSBmYmNvbl9pcGxhbjJwOF9wdXRj IF9zZXRfdmVyKGZiY29uX2lwbGFuMnA4X3B1dGMpCiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4y cDhfcHV0Y3Mgc21wXzliZTgzYjI5CiNkZWZpbmUgZmJjb25faXBsYW4ycDhfcHV0Y3MgX3NldF92 ZXIoZmJjb25faXBsYW4ycDhfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4ycDhfcmV2 YyBzbXBfNGUyZTI1M2UKI2RlZmluZSBmYmNvbl9pcGxhbjJwOF9yZXZjIF9zZXRfdmVyKGZiY29u X2lwbGFuMnA4X3JldmMpCiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4ycDhfY2xlYXJfbWFyZ2lu cyBzbXBfNDdmYWUzZGEKI2RlZmluZSBmYmNvbl9pcGxhbjJwOF9jbGVhcl9tYXJnaW5zIF9zZXRf dmVyKGZiY29uX2lwbGFuMnA4X2NsZWFyX21hcmdpbnMpCiMgNzQgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNvbi1tYWMudmVyIiAxCiNkZWZpbmUgX192ZXJf ZmJjb25fbWFjIHNtcF8xYjQ3ZDQ5OAojZGVmaW5lIGZiY29uX21hYyBfc2V0X3ZlcihmYmNvbl9t YWMpCiNkZWZpbmUgX192ZXJfZmJjb25fbWFjX3NldHVwIHNtcF84Nzc4ODdhZQojZGVmaW5lIGZi Y29uX21hY19zZXR1cCBfc2V0X3ZlcihmYmNvbl9tYWNfc2V0dXApCiNkZWZpbmUgX192ZXJfZmJj b25fbWFjX2Jtb3ZlIHNtcF85M2Q4ZmRiYwojZGVmaW5lIGZiY29uX21hY19ibW92ZSBfc2V0X3Zl cihmYmNvbl9tYWNfYm1vdmUpCiNkZWZpbmUgX192ZXJfZmJjb25fbWFjX2NsZWFyIHNtcF84MzFi MzYwNwojZGVmaW5lIGZiY29uX21hY19jbGVhciBfc2V0X3ZlcihmYmNvbl9tYWNfY2xlYXIpCiNk ZWZpbmUgX192ZXJfZmJjb25fbWFjX3B1dGMgc21wX2E1ZGVkNDY1CiNkZWZpbmUgZmJjb25fbWFj X3B1dGMgX3NldF92ZXIoZmJjb25fbWFjX3B1dGMpCiNkZWZpbmUgX192ZXJfZmJjb25fbWFjX3B1 dGNzIHNtcF9mYTVmYjQxNgojZGVmaW5lIGZiY29uX21hY19wdXRjcyBfc2V0X3ZlcihmYmNvbl9t YWNfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25fbWFjX3JldmMgc21wXzBmNzc5YjUyCiNkZWZp bmUgZmJjb25fbWFjX3JldmMgX3NldF92ZXIoZmJjb25fbWFjX3JldmMpCiMgNzUgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNvbi1tZmIudmVyIiAxCiNkZWZp bmUgX192ZXJfZmJjb25fbWZiIHNtcF8wNzEzZjM1YwojZGVmaW5lIGZiY29uX21mYiBfc2V0X3Zl cihmYmNvbl9tZmIpCiNkZWZpbmUgX192ZXJfZmJjb25fbWZiX3NldHVwIHNtcF8zYTU4YjIxNwoj ZGVmaW5lIGZiY29uX21mYl9zZXR1cCBfc2V0X3ZlcihmYmNvbl9tZmJfc2V0dXApCiNkZWZpbmUg X192ZXJfZmJjb25fbWZiX2Jtb3ZlIHNtcF83ZDBmZGExMwojZGVmaW5lIGZiY29uX21mYl9ibW92 ZSBfc2V0X3ZlcihmYmNvbl9tZmJfYm1vdmUpCiNkZWZpbmUgX192ZXJfZmJjb25fbWZiX2NsZWFy IHNtcF8yNTI0MzU0YwojZGVmaW5lIGZiY29uX21mYl9jbGVhciBfc2V0X3ZlcihmYmNvbl9tZmJf Y2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fbWZiX3B1dGMgc21wXzRiMDlmM2NhCiNkZWZpbmUg ZmJjb25fbWZiX3B1dGMgX3NldF92ZXIoZmJjb25fbWZiX3B1dGMpCiNkZWZpbmUgX192ZXJfZmJj b25fbWZiX3B1dGNzIHNtcF8xMDA1Nzk0ZgojZGVmaW5lIGZiY29uX21mYl9wdXRjcyBfc2V0X3Zl cihmYmNvbl9tZmJfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25fbWZiX3JldmMgc21wXzZhNjlk M2ZkCiNkZWZpbmUgZmJjb25fbWZiX3JldmMgX3NldF92ZXIoZmJjb25fbWZiX3JldmMpCiNkZWZp bmUgX192ZXJfZmJjb25fbWZiX2NsZWFyX21hcmdpbnMgc21wXzBjMzJiMzQxCiNkZWZpbmUgZmJj b25fbWZiX2NsZWFyX21hcmdpbnMgX3NldF92ZXIoZmJjb25fbWZiX2NsZWFyX21hcmdpbnMpCiMg NzYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNvbi52ZXIi IDEKI2RlZmluZSBfX3Zlcl9mYl9kaXNwbGF5IHNtcF83Yjc5ODk3YgojZGVmaW5lIGZiX2Rpc3Bs YXkgX3NldF92ZXIoZmJfZGlzcGxheSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9yZWRyYXdfYm1vdmUg c21wXzNmMjg4NDc5CiNkZWZpbmUgZmJjb25fcmVkcmF3X2Jtb3ZlIF9zZXRfdmVyKGZiY29uX3Jl ZHJhd19ibW92ZSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9yZWRyYXdfY2xlYXIgc21wXzAxNjAxYzBm CiNkZWZpbmUgZmJjb25fcmVkcmF3X2NsZWFyIF9zZXRfdmVyKGZiY29uX3JlZHJhd19jbGVhcikK I2RlZmluZSBfX3Zlcl9mYmNvbl9kdW1teSBzbXBfMmYzMmE3ZWYKI2RlZmluZSBmYmNvbl9kdW1t eSBfc2V0X3ZlcihmYmNvbl9kdW1teSkKI2RlZmluZSBfX3Zlcl9mYl9jb24gc21wX2E4MGE0MjIz CiNkZWZpbmUgZmJfY29uIF9zZXRfdmVyKGZiX2NvbikKIyA3NyAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLXZnYS1wbGFuZXMudmVyIiAxCiNkZWZpbmUg X192ZXJfZmJjb25fdmdhX3BsYW5lcyBzbXBfZTNmNWI3NTgKI2RlZmluZSBmYmNvbl92Z2FfcGxh bmVzIF9zZXRfdmVyKGZiY29uX3ZnYV9wbGFuZXMpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Bs YW5lc19zZXR1cCBzbXBfMDlkNjFiNTQKI2RlZmluZSBmYmNvbl92Z2FfcGxhbmVzX3NldHVwIF9z ZXRfdmVyKGZiY29uX3ZnYV9wbGFuZXNfc2V0dXApCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Bs YW5lc19ibW92ZSBzbXBfOWFmMjIzNDEKI2RlZmluZSBmYmNvbl92Z2FfcGxhbmVzX2Jtb3ZlIF9z ZXRfdmVyKGZiY29uX3ZnYV9wbGFuZXNfYm1vdmUpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Bs YW5lc19jbGVhciBzbXBfNThmZjY4NmUKI2RlZmluZSBmYmNvbl92Z2FfcGxhbmVzX2NsZWFyIF9z ZXRfdmVyKGZiY29uX3ZnYV9wbGFuZXNfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Bs YW5lc19wdXRjIHNtcF9hY2Y0MGE5OAojZGVmaW5lIGZiY29uX3ZnYV9wbGFuZXNfcHV0YyBfc2V0 X3ZlcihmYmNvbl92Z2FfcGxhbmVzX3B1dGMpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3BsYW5l c19wdXRjcyBzbXBfYjY4ZDM4MDIKI2RlZmluZSBmYmNvbl92Z2FfcGxhbmVzX3B1dGNzIF9zZXRf dmVyKGZiY29uX3ZnYV9wbGFuZXNfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3BsYW5l c19yZXZjIHNtcF9kNTViMDI0YgojZGVmaW5lIGZiY29uX3ZnYV9wbGFuZXNfcmV2YyBfc2V0X3Zl cihmYmNvbl92Z2FfcGxhbmVzX3JldmMpCiNkZWZpbmUgX192ZXJfZmJjb25fZWdhX3BsYW5lcyBz bXBfZDRlMTE1OTIKI2RlZmluZSBmYmNvbl9lZ2FfcGxhbmVzIF9zZXRfdmVyKGZiY29uX2VnYV9w bGFuZXMpCiNkZWZpbmUgX192ZXJfZmJjb25fZWdhX3BsYW5lc19wdXRjIHNtcF9lOTExMTYxMAoj ZGVmaW5lIGZiY29uX2VnYV9wbGFuZXNfcHV0YyBfc2V0X3ZlcihmYmNvbl9lZ2FfcGxhbmVzX3B1 dGMpCiNkZWZpbmUgX192ZXJfZmJjb25fZWdhX3BsYW5lc19wdXRjcyBzbXBfZGRiNTdiMzEKI2Rl ZmluZSBmYmNvbl9lZ2FfcGxhbmVzX3B1dGNzIF9zZXRfdmVyKGZiY29uX2VnYV9wbGFuZXNfcHV0 Y3MpCiMgNzggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNv bi12Z2EudmVyIiAxCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhIHNtcF9hYWU0MWEzNgojZGVmaW5l IGZiY29uX3ZnYSBfc2V0X3ZlcihmYmNvbl92Z2EpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Nl dHVwIHNtcF9kYzQyZDk3MQojZGVmaW5lIGZiY29uX3ZnYV9zZXR1cCBfc2V0X3ZlcihmYmNvbl92 Z2Ffc2V0dXApCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX2Jtb3ZlIHNtcF80MDFiM2RhZAojZGVm aW5lIGZiY29uX3ZnYV9ibW92ZSBfc2V0X3ZlcihmYmNvbl92Z2FfYm1vdmUpCiNkZWZpbmUgX192 ZXJfZmJjb25fdmdhX2NsZWFyIHNtcF9jOTBlM2JiNQojZGVmaW5lIGZiY29uX3ZnYV9jbGVhciBf c2V0X3ZlcihmYmNvbl92Z2FfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3B1dGMgc21w Xzc2MWQxNDc0CiNkZWZpbmUgZmJjb25fdmdhX3B1dGMgX3NldF92ZXIoZmJjb25fdmdhX3B1dGMp CiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3B1dGNzIHNtcF9lYmE1ZDE2NQojZGVmaW5lIGZiY29u X3ZnYV9wdXRjcyBfc2V0X3ZlcihmYmNvbl92Z2FfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25f dmdhX3JldmMgc21wXzg3NWU5NDA4CiNkZWZpbmUgZmJjb25fdmdhX3JldmMgX3NldF92ZXIoZmJj b25fdmdhX3JldmMpCiMgNzkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k dmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k dWxlcy9mYm1lbS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9mcmFtZWJ1ZmZlciBzbXBf Y2IxZDYxODUKI2RlZmluZSByZWdpc3Rlcl9mcmFtZWJ1ZmZlciBfc2V0X3ZlcihyZWdpc3Rlcl9m cmFtZWJ1ZmZlcikKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX2ZyYW1lYnVmZmVyIHNtcF9jZjc4 YmY4ZgojZGVmaW5lIHVucmVnaXN0ZXJfZnJhbWVidWZmZXIgX3NldF92ZXIodW5yZWdpc3Rlcl9m cmFtZWJ1ZmZlcikKI2RlZmluZSBfX3Zlcl9yZWdpc3RlcmVkX2ZiIHNtcF82YzM5NGM1ZAojZGVm aW5lIHJlZ2lzdGVyZWRfZmIgX3NldF92ZXIocmVnaXN0ZXJlZF9mYikKI2RlZmluZSBfX3Zlcl9u dW1fcmVnaXN0ZXJlZF9mYiBzbXBfNmM2MWNlNzAKI2RlZmluZSBudW1fcmVnaXN0ZXJlZF9mYiBf c2V0X3ZlcihudW1fcmVnaXN0ZXJlZF9mYikKI2RlZmluZSBfX3Zlcl9HRVRfRkJfSURYIHNtcF81 MjgwYzYzMAojZGVmaW5lIEdFVF9GQl9JRFggX3NldF92ZXIoR0VUX0ZCX0lEWCkKIyA4MCAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZibW9uLnZlciIgMQojZGVm aW5lIF9fdmVyX2ZibW9uX3ZhbGlkX3RpbWluZ3Mgc21wXzcxYTc1ZjY5CiNkZWZpbmUgZmJtb25f dmFsaWRfdGltaW5ncyBfc2V0X3ZlcihmYm1vbl92YWxpZF90aW1pbmdzKQojIDgxICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZmNfc3ltcy52ZXIiIDEKI2RlZmlu ZSBfX3Zlcl9mY3BfaW5pdCBzbXBfMDEyNGMwZWUKI2RlZmluZSBmY3BfaW5pdCBfc2V0X3Zlcihm Y3BfaW5pdCkKI2RlZmluZSBfX3Zlcl9mY3BfcmVsZWFzZSBzbXBfZGE3M2RjNzAKI2RlZmluZSBm Y3BfcmVsZWFzZSBfc2V0X3ZlcihmY3BfcmVsZWFzZSkKI2RlZmluZSBfX3Zlcl9mY3BfcXVldWVf ZW1wdHkgc21wX2JkNjRjZmIwCiNkZWZpbmUgZmNwX3F1ZXVlX2VtcHR5IF9zZXRfdmVyKGZjcF9x dWV1ZV9lbXB0eSkKI2RlZmluZSBfX3Zlcl9mY3BfcmVjZWl2ZV9zb2xpY2l0ZWQgc21wX2Y0OTk3 M2YzCiNkZWZpbmUgZmNwX3JlY2VpdmVfc29saWNpdGVkIF9zZXRfdmVyKGZjcF9yZWNlaXZlX3Nv bGljaXRlZCkKI2RlZmluZSBfX3Zlcl9mY19jaGFubmVscyBzbXBfZWU0N2RkNDAKI2RlZmluZSBm Y19jaGFubmVscyBfc2V0X3ZlcihmY19jaGFubmVscykKI2RlZmluZSBfX3Zlcl9mY3Bfc3RhdGVf Y2hhbmdlIHNtcF85MTZhNWFjYQojZGVmaW5lIGZjcF9zdGF0ZV9jaGFuZ2UgX3NldF92ZXIoZmNw X3N0YXRlX2NoYW5nZSkKI2RlZmluZSBfX3Zlcl9mY19kb19wbG9naSBzbXBfZjVhNzYxODAKI2Rl ZmluZSBmY19kb19wbG9naSBfc2V0X3ZlcihmY19kb19wbG9naSkKI2RlZmluZSBfX3Zlcl9mY19k b19wcmxpIHNtcF9mYWM5OWQ5NwojZGVmaW5lIGZjX2RvX3BybGkgX3NldF92ZXIoZmNfZG9fcHJs aSkKI2RlZmluZSBfX3Zlcl9mY3Bfc2NzaV9xdWV1ZWNvbW1hbmQgc21wXzZlOWU1Y2Y4CiNkZWZp bmUgZmNwX3Njc2lfcXVldWVjb21tYW5kIF9zZXRfdmVyKGZjcF9zY3NpX3F1ZXVlY29tbWFuZCkK I2RlZmluZSBfX3Zlcl9mY3Bfb2xkX2Fib3J0IHNtcF8zMjVjMmNmNwojZGVmaW5lIGZjcF9vbGRf YWJvcnQgX3NldF92ZXIoZmNwX29sZF9hYm9ydCkKI2RlZmluZSBfX3Zlcl9mY3Bfc2NzaV9hYm9y dCBzbXBfOWRjMjAyN2UKI2RlZmluZSBmY3Bfc2NzaV9hYm9ydCBfc2V0X3ZlcihmY3Bfc2NzaV9h Ym9ydCkKI2RlZmluZSBfX3Zlcl9mY3Bfc2NzaV9kZXZfcmVzZXQgc21wXzQ0NzY5MWMxCiNkZWZp bmUgZmNwX3Njc2lfZGV2X3Jlc2V0IF9zZXRfdmVyKGZjcF9zY3NpX2Rldl9yZXNldCkKI2RlZmlu ZSBfX3Zlcl9mY3Bfc2NzaV9idXNfcmVzZXQgc21wXzMzMWJkMDYwCiNkZWZpbmUgZmNwX3Njc2lf YnVzX3Jlc2V0IF9zZXRfdmVyKGZjcF9zY3NpX2J1c19yZXNldCkKI2RlZmluZSBfX3Zlcl9mY3Bf c2NzaV9ob3N0X3Jlc2V0IHNtcF8xYTQxMmU1NAojZGVmaW5lIGZjcF9zY3NpX2hvc3RfcmVzZXQg X3NldF92ZXIoZmNwX3Njc2lfaG9zdF9yZXNldCkKIyA4MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9tb2R1bGVzL2ZmYl9kcnYudmVyIiAxCiMgODMgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9maWxlc3lzdGVtcy52ZXIiIDEKIyA4NCAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2Z0YXBlX3N5bXMudmVyIiAx CiNkZWZpbmUgX192ZXJfZnRhcGVfZ2V0X2JhZF9zZWN0b3JfZW50cnkgc21wX2ZlZDVhNTNkCiNk ZWZpbmUgZnRhcGVfZ2V0X2JhZF9zZWN0b3JfZW50cnkgX3NldF92ZXIoZnRhcGVfZ2V0X2JhZF9z ZWN0b3JfZW50cnkpCiNkZWZpbmUgX192ZXJfZnRhcGVfZmluZF9lbmRfb2ZfYnNtX2xpc3Qgc21w XzQ2NzM4Njg3CiNkZWZpbmUgZnRhcGVfZmluZF9lbmRfb2ZfYnNtX2xpc3QgX3NldF92ZXIoZnRh cGVfZmluZF9lbmRfb2ZfYnNtX2xpc3QpCiNkZWZpbmUgX192ZXJfZnRhcGVfc2V0X3N0YXRlIHNt cF81YjUyZDRiOAojZGVmaW5lIGZ0YXBlX3NldF9zdGF0ZSBfc2V0X3ZlcihmdGFwZV9zZXRfc3Rh dGUpCiNkZWZpbmUgX192ZXJfZnRhcGVfc2Vla190b19ib3Qgc21wXzQ4MTVhYzNjCiNkZWZpbmUg ZnRhcGVfc2Vla190b19ib3QgX3NldF92ZXIoZnRhcGVfc2Vla190b19ib3QpCiNkZWZpbmUgX192 ZXJfZnRhcGVfc2Vla190b19lb3Qgc21wXzM1NjZhYTY0CiNkZWZpbmUgZnRhcGVfc2Vla190b19l b3QgX3NldF92ZXIoZnRhcGVfc2Vla190b19lb3QpCiNkZWZpbmUgX192ZXJfZnRhcGVfYWJvcnRf b3BlcmF0aW9uIHNtcF9kOTBkZjUxOQojZGVmaW5lIGZ0YXBlX2Fib3J0X29wZXJhdGlvbiBfc2V0 X3ZlcihmdGFwZV9hYm9ydF9vcGVyYXRpb24pCiNkZWZpbmUgX192ZXJfZnRhcGVfZ2V0X3N0YXR1 cyBzbXBfNDZmNDcwNzAKI2RlZmluZSBmdGFwZV9nZXRfc3RhdHVzIF9zZXRfdmVyKGZ0YXBlX2dl dF9zdGF0dXMpCiNkZWZpbmUgX192ZXJfZnRhcGVfZW5hYmxlIHNtcF83ZWMwZDVkNAojZGVmaW5l IGZ0YXBlX2VuYWJsZSBfc2V0X3ZlcihmdGFwZV9lbmFibGUpCiNkZWZpbmUgX192ZXJfZnRhcGVf ZGlzYWJsZSBzbXBfN2I1MmYwNGIKI2RlZmluZSBmdGFwZV9kaXNhYmxlIF9zZXRfdmVyKGZ0YXBl X2Rpc2FibGUpCiNkZWZpbmUgX192ZXJfZnRhcGVfbW1hcCBzbXBfMzlhZjUwMTkKI2RlZmluZSBm dGFwZV9tbWFwIF9zZXRfdmVyKGZ0YXBlX21tYXApCiNkZWZpbmUgX192ZXJfZnRhcGVfY2FsaWJy YXRlX2RhdGFfcmF0ZSBzbXBfODJiY2Y1MmEKI2RlZmluZSBmdGFwZV9jYWxpYnJhdGVfZGF0YV9y YXRlIF9zZXRfdmVyKGZ0YXBlX2NhbGlicmF0ZV9kYXRhX3JhdGUpCiNkZWZpbmUgX192ZXJfZnRh cGVfcmVzZXRfZHJpdmUgc21wXzJiZGJhNmFhCiNkZWZpbmUgZnRhcGVfcmVzZXRfZHJpdmUgX3Nl dF92ZXIoZnRhcGVfcmVzZXRfZHJpdmUpCiNkZWZpbmUgX192ZXJfZnRhcGVfY29tbWFuZCBzbXBf Nzk5MzA1ZTQKI2RlZmluZSBmdGFwZV9jb21tYW5kIF9zZXRfdmVyKGZ0YXBlX2NvbW1hbmQpCiNk ZWZpbmUgX192ZXJfZnRhcGVfcGFyYW1ldGVyIHNtcF9jMTdiNjBlMwojZGVmaW5lIGZ0YXBlX3Bh cmFtZXRlciBfc2V0X3ZlcihmdGFwZV9wYXJhbWV0ZXIpCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVh ZHlfd2FpdCBzbXBfYzc4MGVkMDgKI2RlZmluZSBmdGFwZV9yZWFkeV93YWl0IF9zZXRfdmVyKGZ0 YXBlX3JlYWR5X3dhaXQpCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVwb3J0X29wZXJhdGlvbiBzbXBf ZjVhYzQ1OTEKI2RlZmluZSBmdGFwZV9yZXBvcnRfb3BlcmF0aW9uIF9zZXRfdmVyKGZ0YXBlX3Jl cG9ydF9vcGVyYXRpb24pCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVwb3J0X2Vycm9yIHNtcF85OTll ZGZmZAojZGVmaW5lIGZ0YXBlX3JlcG9ydF9lcnJvciBfc2V0X3ZlcihmdGFwZV9yZXBvcnRfZXJy b3IpCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVhZF9zZWdtZW50X2ZyYWN0aW9uIHNtcF9jODdmNGVk NwojZGVmaW5lIGZ0YXBlX3JlYWRfc2VnbWVudF9mcmFjdGlvbiBfc2V0X3ZlcihmdGFwZV9yZWFk X3NlZ21lbnRfZnJhY3Rpb24pCiNkZWZpbmUgX192ZXJfZnRhcGVfemFwX3JlYWRfYnVmZmVycyBz bXBfZGQ5ZjBhZTAKI2RlZmluZSBmdGFwZV96YXBfcmVhZF9idWZmZXJzIF9zZXRfdmVyKGZ0YXBl X3phcF9yZWFkX2J1ZmZlcnMpCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVhZF9oZWFkZXJfc2VnbWVu dCBzbXBfYTJiMTRiM2MKI2RlZmluZSBmdGFwZV9yZWFkX2hlYWRlcl9zZWdtZW50IF9zZXRfdmVy KGZ0YXBlX3JlYWRfaGVhZGVyX3NlZ21lbnQpCiNkZWZpbmUgX192ZXJfZnRhcGVfZGVjb2RlX2hl YWRlcl9zZWdtZW50IHNtcF8wOGI2NjVlZgojZGVmaW5lIGZ0YXBlX2RlY29kZV9oZWFkZXJfc2Vn bWVudCBfc2V0X3ZlcihmdGFwZV9kZWNvZGVfaGVhZGVyX3NlZ21lbnQpCiNkZWZpbmUgX192ZXJf ZnRhcGVfd3JpdGVfc2VnbWVudCBzbXBfOGEwOWM4NDYKI2RlZmluZSBmdGFwZV93cml0ZV9zZWdt ZW50IF9zZXRfdmVyKGZ0YXBlX3dyaXRlX3NlZ21lbnQpCiNkZWZpbmUgX192ZXJfZnRhcGVfc3Rh cnRfd3JpdGluZyBzbXBfYTk5ZDgxZTMKI2RlZmluZSBmdGFwZV9zdGFydF93cml0aW5nIF9zZXRf dmVyKGZ0YXBlX3N0YXJ0X3dyaXRpbmcpCiNkZWZpbmUgX192ZXJfZnRhcGVfbG9vcF91bnRpbF93 cml0ZXNfZG9uZSBzbXBfMDAzZWQyZWEKI2RlZmluZSBmdGFwZV9sb29wX3VudGlsX3dyaXRlc19k b25lIF9zZXRfdmVyKGZ0YXBlX2xvb3BfdW50aWxfd3JpdGVzX2RvbmUpCiNkZWZpbmUgX192ZXJf ZnRhcGVfc2V0X25yX2J1ZmZlcnMgc21wXzhiNTZjYWFhCiNkZWZpbmUgZnRhcGVfc2V0X25yX2J1 ZmZlcnMgX3NldF92ZXIoZnRhcGVfc2V0X25yX2J1ZmZlcnMpCiNkZWZpbmUgX192ZXJfZnRhcGVf Zm9ybWF0X3RyYWNrIHNtcF80MGZlYmI0MAojZGVmaW5lIGZ0YXBlX2Zvcm1hdF90cmFjayBfc2V0 X3ZlcihmdGFwZV9mb3JtYXRfdHJhY2spCiNkZWZpbmUgX192ZXJfZnRhcGVfZm9ybWF0X3N0YXR1 cyBzbXBfZTk4NDllZWUKI2RlZmluZSBmdGFwZV9mb3JtYXRfc3RhdHVzIF9zZXRfdmVyKGZ0YXBl X2Zvcm1hdF9zdGF0dXMpCiNkZWZpbmUgX192ZXJfZnRhcGVfdmVyaWZ5X3NlZ21lbnQgc21wXzgy Njc1YmU3CiNkZWZpbmUgZnRhcGVfdmVyaWZ5X3NlZ21lbnQgX3NldF92ZXIoZnRhcGVfdmVyaWZ5 X3NlZ21lbnQpCiNkZWZpbmUgX192ZXJfZnRhcGVfdHJhY2luZyBzbXBfNmI2MjUzZDMKI2RlZmlu ZSBmdGFwZV90cmFjaW5nIF9zZXRfdmVyKGZ0YXBlX3RyYWNpbmcpCiNkZWZpbmUgX192ZXJfZnRh cGVfZnVuY3Rpb25fbmVzdF9sZXZlbCBzbXBfNTAxOTY3NDMKI2RlZmluZSBmdGFwZV9mdW5jdGlv bl9uZXN0X2xldmVsIF9zZXRfdmVyKGZ0YXBlX2Z1bmN0aW9uX25lc3RfbGV2ZWwpCiNkZWZpbmUg X192ZXJfZnRhcGVfdHJhY2VfY2FsbCBzbXBfNjNmN2Y2ZDAKI2RlZmluZSBmdGFwZV90cmFjZV9j YWxsIF9zZXRfdmVyKGZ0YXBlX3RyYWNlX2NhbGwpCiNkZWZpbmUgX192ZXJfZnRhcGVfdHJhY2Vf ZXhpdCBzbXBfNGU3NTVkY2YKI2RlZmluZSBmdGFwZV90cmFjZV9leGl0IF9zZXRfdmVyKGZ0YXBl X3RyYWNlX2V4aXQpCiNkZWZpbmUgX192ZXJfZnRhcGVfdHJhY2VfbG9nIHNtcF85MmNlN2ViMQoj ZGVmaW5lIGZ0YXBlX3RyYWNlX2xvZyBfc2V0X3ZlcihmdGFwZV90cmFjZV9sb2cpCiMgODUgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9nYW1lcG9ydC52ZXIiIDEK I2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9yZWdpc3Rlcl9wb3J0IHNtcF85NWMwNzhjZQojZGVmaW5l IGdhbWVwb3J0X3JlZ2lzdGVyX3BvcnQgX3NldF92ZXIoZ2FtZXBvcnRfcmVnaXN0ZXJfcG9ydCkK I2RlZmluZSBfX3Zlcl9nYW1lcG9ydF91bnJlZ2lzdGVyX3BvcnQgc21wXzU2YzhiOTYzCiNkZWZp bmUgZ2FtZXBvcnRfdW5yZWdpc3Rlcl9wb3J0IF9zZXRfdmVyKGdhbWVwb3J0X3VucmVnaXN0ZXJf cG9ydCkKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9yZWdpc3Rlcl9kZXZpY2Ugc21wX2MzMTgxZjRm CiNkZWZpbmUgZ2FtZXBvcnRfcmVnaXN0ZXJfZGV2aWNlIF9zZXRfdmVyKGdhbWVwb3J0X3JlZ2lz dGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF91bnJlZ2lzdGVyX2RldmljZSBzbXBf ZTRiMmRjZTIKI2RlZmluZSBnYW1lcG9ydF91bnJlZ2lzdGVyX2RldmljZSBfc2V0X3ZlcihnYW1l cG9ydF91bnJlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9vcGVuIHNtcF83 ZWFlNWYxNgojZGVmaW5lIGdhbWVwb3J0X29wZW4gX3NldF92ZXIoZ2FtZXBvcnRfb3BlbikKI2Rl ZmluZSBfX3Zlcl9nYW1lcG9ydF9jbG9zZSBzbXBfNmQ5ZWFlZDgKI2RlZmluZSBnYW1lcG9ydF9j bG9zZSBfc2V0X3ZlcihnYW1lcG9ydF9jbG9zZSkKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9yZXNj YW4gc21wX2Q5OTQ5NTg5CiNkZWZpbmUgZ2FtZXBvcnRfcmVzY2FuIF9zZXRfdmVyKGdhbWVwb3J0 X3Jlc2NhbikKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9jb29rZWRfcmVhZCBzbXBfZDQ5ZTZkZTUK I2RlZmluZSBnYW1lcG9ydF9jb29rZWRfcmVhZCBfc2V0X3ZlcihnYW1lcG9ydF9jb29rZWRfcmVh ZCkKIyA4NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2dhbW1h X2Rydi52ZXIiIDEKIyA4NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2 ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1 bGVzL2hkbGNkcnYudmVyIiAxCiNkZWZpbmUgX192ZXJfaGRsY2Rydl9yZWNlaXZlciBzbXBfMTU1 OWUwZDUKI2RlZmluZSBoZGxjZHJ2X3JlY2VpdmVyIF9zZXRfdmVyKGhkbGNkcnZfcmVjZWl2ZXIp CiNkZWZpbmUgX192ZXJfaGRsY2Rydl90cmFuc21pdHRlciBzbXBfOThiZGZkNDMKI2RlZmluZSBo ZGxjZHJ2X3RyYW5zbWl0dGVyIF9zZXRfdmVyKGhkbGNkcnZfdHJhbnNtaXR0ZXIpCiNkZWZpbmUg X192ZXJfaGRsY2Rydl9hcmJpdHJhdGUgc21wXzI0ZmE1OTI3CiNkZWZpbmUgaGRsY2Rydl9hcmJp dHJhdGUgX3NldF92ZXIoaGRsY2Rydl9hcmJpdHJhdGUpCiNkZWZpbmUgX192ZXJfaGRsY2Rydl9y ZWdpc3Rlcl9oZGxjZHJ2IHNtcF8yYTExZmZlZAojZGVmaW5lIGhkbGNkcnZfcmVnaXN0ZXJfaGRs Y2RydiBfc2V0X3ZlcihoZGxjZHJ2X3JlZ2lzdGVyX2hkbGNkcnYpCiNkZWZpbmUgX192ZXJfaGRs Y2Rydl91bnJlZ2lzdGVyX2hkbGNkcnYgc21wXzBmMDAzNzAyCiNkZWZpbmUgaGRsY2Rydl91bnJl Z2lzdGVyX2hkbGNkcnYgX3NldF92ZXIoaGRsY2Rydl91bnJlZ2lzdGVyX2hkbGNkcnYpCiMgODgg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9oZGxjLnZlciIgMQoj ZGVmaW5lIF9fdmVyX2hkbGNfbmV0aWZfcnggc21wXzNjYzc4MDJmCiNkZWZpbmUgaGRsY19uZXRp Zl9yeCBfc2V0X3ZlcihoZGxjX25ldGlmX3J4KQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX2hkbGNf ZGV2aWNlIHNtcF8wZTViYjlhZAojZGVmaW5lIHJlZ2lzdGVyX2hkbGNfZGV2aWNlIF9zZXRfdmVy KHJlZ2lzdGVyX2hkbGNfZGV2aWNlKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfaGRsY19kZXZp Y2Ugc21wXzA3NTUwMzQ5CiNkZWZpbmUgdW5yZWdpc3Rlcl9oZGxjX2RldmljZSBfc2V0X3Zlcih1 bnJlZ2lzdGVyX2hkbGNfZGV2aWNlKQojIDg5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L21vZHVsZXMvaGVybWVzLnZlciIgMQojZGVmaW5lIF9fdmVyX2hlcm1lc19zdHJ1Y3Rf aW5pdCBzbXBfOGEyNDZjNzUKI2RlZmluZSBoZXJtZXNfc3RydWN0X2luaXQgX3NldF92ZXIoaGVy bWVzX3N0cnVjdF9pbml0KQojZGVmaW5lIF9fdmVyX2hlcm1lc19yZXNldCBzbXBfNDEyYTM3ZjAK I2RlZmluZSBoZXJtZXNfcmVzZXQgX3NldF92ZXIoaGVybWVzX3Jlc2V0KQojZGVmaW5lIF9fdmVy X2hlcm1lc19kb2NtZF93YWl0IHNtcF83N2FlZjllNQojZGVmaW5lIGhlcm1lc19kb2NtZF93YWl0 IF9zZXRfdmVyKGhlcm1lc19kb2NtZF93YWl0KQojZGVmaW5lIF9fdmVyX2hlcm1lc19hbGxvY2F0 ZSBzbXBfYTM2MWQ3MmYKI2RlZmluZSBoZXJtZXNfYWxsb2NhdGUgX3NldF92ZXIoaGVybWVzX2Fs bG9jYXRlKQojZGVmaW5lIF9fdmVyX2hlcm1lc19iYXBfcHJlYWQgc21wXzAwOTU5NWI3CiNkZWZp bmUgaGVybWVzX2JhcF9wcmVhZCBfc2V0X3ZlcihoZXJtZXNfYmFwX3ByZWFkKQojZGVmaW5lIF9f dmVyX2hlcm1lc19iYXBfcHdyaXRlIHNtcF85MGI2ZDAwYwojZGVmaW5lIGhlcm1lc19iYXBfcHdy aXRlIF9zZXRfdmVyKGhlcm1lc19iYXBfcHdyaXRlKQojZGVmaW5lIF9fdmVyX2hlcm1lc19yZWFk X2x0diBzbXBfNGE1OTkyMDcKI2RlZmluZSBoZXJtZXNfcmVhZF9sdHYgX3NldF92ZXIoaGVybWVz X3JlYWRfbHR2KQojZGVmaW5lIF9fdmVyX2hlcm1lc193cml0ZV9sdHYgc21wX2U0Nzg2YzhhCiNk ZWZpbmUgaGVybWVzX3dyaXRlX2x0diBfc2V0X3ZlcihoZXJtZXNfd3JpdGVfbHR2KQojIDkwICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaTJjLWFsZ28tYml0LnZl ciIgMQojZGVmaW5lIF9fdmVyX2kyY19iaXRfYWRkX2J1cyBzbXBfM2U4ZTU4NGMKI2RlZmluZSBp MmNfYml0X2FkZF9idXMgX3NldF92ZXIoaTJjX2JpdF9hZGRfYnVzKQojZGVmaW5lIF9fdmVyX2ky Y19iaXRfZGVsX2J1cyBzbXBfOTMwYmNjY2IKI2RlZmluZSBpMmNfYml0X2RlbF9idXMgX3NldF92 ZXIoaTJjX2JpdF9kZWxfYnVzKQojIDkxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21vZHVsZXMvaTJjLWFsZ28tcGNmLnZlciIgMQojZGVmaW5lIF9fdmVyX2kyY19wY2ZfYWRk X2J1cyBzbXBfMTcyNjVlOTQKI2RlZmluZSBpMmNfcGNmX2FkZF9idXMgX3NldF92ZXIoaTJjX3Bj Zl9hZGRfYnVzKQojZGVmaW5lIF9fdmVyX2kyY19wY2ZfZGVsX2J1cyBzbXBfYmFhM2NhMTMKI2Rl ZmluZSBpMmNfcGNmX2RlbF9idXMgX3NldF92ZXIoaTJjX3BjZl9kZWxfYnVzKQojIDkyICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaTJjLWNvcmUudmVyIiAxCiNk ZWZpbmUgX192ZXJfaTJjX2FkZF9hZGFwdGVyIHNtcF8xYmZkMTUxNwojZGVmaW5lIGkyY19hZGRf YWRhcHRlciBfc2V0X3ZlcihpMmNfYWRkX2FkYXB0ZXIpCiNkZWZpbmUgX192ZXJfaTJjX2RlbF9h ZGFwdGVyIHNtcF83ZmZhMzhlMgojZGVmaW5lIGkyY19kZWxfYWRhcHRlciBfc2V0X3ZlcihpMmNf ZGVsX2FkYXB0ZXIpCiNkZWZpbmUgX192ZXJfaTJjX2FkZF9kcml2ZXIgc21wXzMxOTdhYjFkCiNk ZWZpbmUgaTJjX2FkZF9kcml2ZXIgX3NldF92ZXIoaTJjX2FkZF9kcml2ZXIpCiNkZWZpbmUgX192 ZXJfaTJjX2RlbF9kcml2ZXIgc21wX2IyMzc1ZjQ5CiNkZWZpbmUgaTJjX2RlbF9kcml2ZXIgX3Nl dF92ZXIoaTJjX2RlbF9kcml2ZXIpCiNkZWZpbmUgX192ZXJfaTJjX2F0dGFjaF9jbGllbnQgc21w XzIxNTE3YWY2CiNkZWZpbmUgaTJjX2F0dGFjaF9jbGllbnQgX3NldF92ZXIoaTJjX2F0dGFjaF9j bGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX2RldGFjaF9jbGllbnQgc21wXzgxYmI0MzRkCiNkZWZp bmUgaTJjX2RldGFjaF9jbGllbnQgX3NldF92ZXIoaTJjX2RldGFjaF9jbGllbnQpCiNkZWZpbmUg X192ZXJfaTJjX2luY191c2VfY2xpZW50IHNtcF9iZTVhOGU2OAojZGVmaW5lIGkyY19pbmNfdXNl X2NsaWVudCBfc2V0X3ZlcihpMmNfaW5jX3VzZV9jbGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX2Rl Y191c2VfY2xpZW50IHNtcF82ZmMzN2ViOQojZGVmaW5lIGkyY19kZWNfdXNlX2NsaWVudCBfc2V0 X3ZlcihpMmNfZGVjX3VzZV9jbGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX2dldF9jbGllbnQgc21w XzE4YzhmZmE5CiNkZWZpbmUgaTJjX2dldF9jbGllbnQgX3NldF92ZXIoaTJjX2dldF9jbGllbnQp CiNkZWZpbmUgX192ZXJfaTJjX3VzZV9jbGllbnQgc21wX2Y2MTVjYTgyCiNkZWZpbmUgaTJjX3Vz ZV9jbGllbnQgX3NldF92ZXIoaTJjX3VzZV9jbGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX3JlbGVh c2VfY2xpZW50IHNtcF8yNzY1M2JhNgojZGVmaW5lIGkyY19yZWxlYXNlX2NsaWVudCBfc2V0X3Zl cihpMmNfcmVsZWFzZV9jbGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX2NoZWNrX2FkZHIgc21wXzA4 YzkxNDQwCiNkZWZpbmUgaTJjX2NoZWNrX2FkZHIgX3NldF92ZXIoaTJjX2NoZWNrX2FkZHIpCiNk ZWZpbmUgX192ZXJfaTJjX21hc3Rlcl9zZW5kIHNtcF80ZjA0MDQ2NAojZGVmaW5lIGkyY19tYXN0 ZXJfc2VuZCBfc2V0X3ZlcihpMmNfbWFzdGVyX3NlbmQpCiNkZWZpbmUgX192ZXJfaTJjX21hc3Rl cl9yZWN2IHNtcF80OWUwYTU5ZAojZGVmaW5lIGkyY19tYXN0ZXJfcmVjdiBfc2V0X3ZlcihpMmNf bWFzdGVyX3JlY3YpCiNkZWZpbmUgX192ZXJfaTJjX2NvbnRyb2wgc21wXzM4NTg2NGU3CiNkZWZp bmUgaTJjX2NvbnRyb2wgX3NldF92ZXIoaTJjX2NvbnRyb2wpCiNkZWZpbmUgX192ZXJfaTJjX3Ry YW5zZmVyIHNtcF81YzI3NGNmZgojZGVmaW5lIGkyY190cmFuc2ZlciBfc2V0X3ZlcihpMmNfdHJh bnNmZXIpCiNkZWZpbmUgX192ZXJfaTJjX2FkYXB0ZXJfaWQgc21wXzI3YTBkYjJkCiNkZWZpbmUg aTJjX2FkYXB0ZXJfaWQgX3NldF92ZXIoaTJjX2FkYXB0ZXJfaWQpCiNkZWZpbmUgX192ZXJfaTJj X3Byb2JlIHNtcF9iZTcyNjU3MQojZGVmaW5lIGkyY19wcm9iZSBfc2V0X3ZlcihpMmNfcHJvYmUp CiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3hmZXIgc21wX2E2YjI5YjA2CiNkZWZpbmUgaTJjX3Nt YnVzX3hmZXIgX3NldF92ZXIoaTJjX3NtYnVzX3hmZXIpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVz X3dyaXRlX3F1aWNrIHNtcF81N2FiZDQ1NgojZGVmaW5lIGkyY19zbWJ1c193cml0ZV9xdWljayBf c2V0X3ZlcihpMmNfc21idXNfd3JpdGVfcXVpY2spCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3Jl YWRfYnl0ZSBzbXBfYzg1YTJiMjEKI2RlZmluZSBpMmNfc21idXNfcmVhZF9ieXRlIF9zZXRfdmVy KGkyY19zbWJ1c19yZWFkX2J5dGUpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3dyaXRlX2J5dGUg c21wXzQ0OGJmMjUxCiNkZWZpbmUgaTJjX3NtYnVzX3dyaXRlX2J5dGUgX3NldF92ZXIoaTJjX3Nt YnVzX3dyaXRlX2J5dGUpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhIHNt cF9kNGRlMzMyMwojZGVmaW5lIGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YSBfc2V0X3ZlcihpMmNf c21idXNfcmVhZF9ieXRlX2RhdGEpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3dyaXRlX2J5dGVf ZGF0YSBzbXBfOGE2YjhmYjcKI2RlZmluZSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhIF9zZXRf dmVyKGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3Jl YWRfd29yZF9kYXRhIHNtcF9hZmJhZGMwNgojZGVmaW5lIGkyY19zbWJ1c19yZWFkX3dvcmRfZGF0 YSBfc2V0X3ZlcihpMmNfc21idXNfcmVhZF93b3JkX2RhdGEpCiNkZWZpbmUgX192ZXJfaTJjX3Nt YnVzX3dyaXRlX3dvcmRfZGF0YSBzbXBfMGI5NzRiN2YKI2RlZmluZSBpMmNfc21idXNfd3JpdGVf d29yZF9kYXRhIF9zZXRfdmVyKGkyY19zbWJ1c193cml0ZV93b3JkX2RhdGEpCiNkZWZpbmUgX192 ZXJfaTJjX3NtYnVzX3Byb2Nlc3NfY2FsbCBzbXBfYzMyZGU0MzEKI2RlZmluZSBpMmNfc21idXNf cHJvY2Vzc19jYWxsIF9zZXRfdmVyKGkyY19zbWJ1c19wcm9jZXNzX2NhbGwpCiNkZWZpbmUgX192 ZXJfaTJjX3NtYnVzX3JlYWRfYmxvY2tfZGF0YSBzbXBfYWZmMTJiMzcKI2RlZmluZSBpMmNfc21i dXNfcmVhZF9ibG9ja19kYXRhIF9zZXRfdmVyKGkyY19zbWJ1c19yZWFkX2Jsb2NrX2RhdGEpCiNk ZWZpbmUgX192ZXJfaTJjX3NtYnVzX3dyaXRlX2Jsb2NrX2RhdGEgc21wXzA4OWE1MTdhCiNkZWZp bmUgaTJjX3NtYnVzX3dyaXRlX2Jsb2NrX2RhdGEgX3NldF92ZXIoaTJjX3NtYnVzX3dyaXRlX2Js b2NrX2RhdGEpCiNkZWZpbmUgX192ZXJfaTJjX2dldF9mdW5jdGlvbmFsaXR5IHNtcF9mMTM1Yzdm MQojZGVmaW5lIGkyY19nZXRfZnVuY3Rpb25hbGl0eSBfc2V0X3ZlcihpMmNfZ2V0X2Z1bmN0aW9u YWxpdHkpCiNkZWZpbmUgX192ZXJfaTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkgc21wX2Q1YWE4MjUz CiNkZWZpbmUgaTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkgX3NldF92ZXIoaTJjX2NoZWNrX2Z1bmN0 aW9uYWxpdHkpCiMgOTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVy c2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxl cy9pMmMtb2xkLnZlciIgMQojIDk0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4 L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4 L21vZHVsZXMvaTJvX2Jsb2NrLnZlciIgMQojIDk1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L21vZHVsZXMvaTJvX2NvbmZpZy52ZXIiIDEKIyA5NiAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2kyb19jb3JlLnZlciIgMQojZGVmaW5lIF9fdmVy X2kyb19jb250cm9sbGVyX2NoYWluIHNtcF9mYjY1NmUzZAojZGVmaW5lIGkyb19jb250cm9sbGVy X2NoYWluIF9zZXRfdmVyKGkyb19jb250cm9sbGVyX2NoYWluKQojZGVmaW5lIF9fdmVyX2kyb19u dW1fY29udHJvbGxlcnMgc21wX2ZhZDEzZDIyCiNkZWZpbmUgaTJvX251bV9jb250cm9sbGVycyBf c2V0X3ZlcihpMm9fbnVtX2NvbnRyb2xsZXJzKQojZGVmaW5lIF9fdmVyX2kyb19maW5kX2NvbnRy b2xsZXIgc21wXzUyZjEyM2IxCiNkZWZpbmUgaTJvX2ZpbmRfY29udHJvbGxlciBfc2V0X3Zlcihp Mm9fZmluZF9jb250cm9sbGVyKQojZGVmaW5lIF9fdmVyX2kyb191bmxvY2tfY29udHJvbGxlciBz bXBfMzNjMGYzNjEKI2RlZmluZSBpMm9fdW5sb2NrX2NvbnRyb2xsZXIgX3NldF92ZXIoaTJvX3Vu bG9ja19jb250cm9sbGVyKQojZGVmaW5lIF9fdmVyX2kyb19zdGF0dXNfZ2V0IHNtcF9hNjJkZmE3 MQojZGVmaW5lIGkyb19zdGF0dXNfZ2V0IF9zZXRfdmVyKGkyb19zdGF0dXNfZ2V0KQojZGVmaW5l IF9fdmVyX2kyb19pbnN0YWxsX2hhbmRsZXIgc21wXzQ5ZjA4NDU4CiNkZWZpbmUgaTJvX2luc3Rh bGxfaGFuZGxlciBfc2V0X3ZlcihpMm9faW5zdGFsbF9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2ky b19yZW1vdmVfaGFuZGxlciBzbXBfNzZmYTJjMjAKI2RlZmluZSBpMm9fcmVtb3ZlX2hhbmRsZXIg X3NldF92ZXIoaTJvX3JlbW92ZV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2kyb19jbGFpbV9kZXZp Y2Ugc21wXzRkZmI5MDdkCiNkZWZpbmUgaTJvX2NsYWltX2RldmljZSBfc2V0X3ZlcihpMm9fY2xh aW1fZGV2aWNlKQojZGVmaW5lIF9fdmVyX2kyb19yZWxlYXNlX2RldmljZSBzbXBfYjdkOWY2MDkK I2RlZmluZSBpMm9fcmVsZWFzZV9kZXZpY2UgX3NldF92ZXIoaTJvX3JlbGVhc2VfZGV2aWNlKQoj ZGVmaW5lIF9fdmVyX2kyb19kZXZpY2Vfbm90aWZ5X29uIHNtcF82Y2IxZGQxZQojZGVmaW5lIGky b19kZXZpY2Vfbm90aWZ5X29uIF9zZXRfdmVyKGkyb19kZXZpY2Vfbm90aWZ5X29uKQojZGVmaW5l IF9fdmVyX2kyb19kZXZpY2Vfbm90aWZ5X29mZiBzbXBfZjY1OGQ1ODcKI2RlZmluZSBpMm9fZGV2 aWNlX25vdGlmeV9vZmYgX3NldF92ZXIoaTJvX2RldmljZV9ub3RpZnlfb2ZmKQojZGVmaW5lIF9f dmVyX2kyb19wb3N0X3RoaXMgc21wX2UyZWI0YjYwCiNkZWZpbmUgaTJvX3Bvc3RfdGhpcyBfc2V0 X3ZlcihpMm9fcG9zdF90aGlzKQojZGVmaW5lIF9fdmVyX2kyb19wb3N0X3dhaXQgc21wX2FiMmFj MmM1CiNkZWZpbmUgaTJvX3Bvc3Rfd2FpdCBfc2V0X3ZlcihpMm9fcG9zdF93YWl0KQojZGVmaW5l IF9fdmVyX2kyb19wb3N0X3dhaXRfbWVtIHNtcF9iOGM4ZDNhNgojZGVmaW5lIGkyb19wb3N0X3dh aXRfbWVtIF9zZXRfdmVyKGkyb19wb3N0X3dhaXRfbWVtKQojZGVmaW5lIF9fdmVyX2kyb19xdWVy eV9zY2FsYXIgc21wXzM0ODQyMTMzCiNkZWZpbmUgaTJvX3F1ZXJ5X3NjYWxhciBfc2V0X3Zlcihp Mm9fcXVlcnlfc2NhbGFyKQojZGVmaW5lIF9fdmVyX2kyb19zZXRfc2NhbGFyIHNtcF9iOWZhZWQ4 MAojZGVmaW5lIGkyb19zZXRfc2NhbGFyIF9zZXRfdmVyKGkyb19zZXRfc2NhbGFyKQojZGVmaW5l IF9fdmVyX2kyb19xdWVyeV90YWJsZSBzbXBfZWNmYjlmYzQKI2RlZmluZSBpMm9fcXVlcnlfdGFi bGUgX3NldF92ZXIoaTJvX3F1ZXJ5X3RhYmxlKQojZGVmaW5lIF9fdmVyX2kyb19jbGVhcl90YWJs ZSBzbXBfOGFiZDEyYzcKI2RlZmluZSBpMm9fY2xlYXJfdGFibGUgX3NldF92ZXIoaTJvX2NsZWFy X3RhYmxlKQojZGVmaW5lIF9fdmVyX2kyb19yb3dfYWRkX3RhYmxlIHNtcF9jYTJkNGU5OAojZGVm aW5lIGkyb19yb3dfYWRkX3RhYmxlIF9zZXRfdmVyKGkyb19yb3dfYWRkX3RhYmxlKQojZGVmaW5l IF9fdmVyX2kyb19pc3N1ZV9wYXJhbXMgc21wXzExYWQ5YzZkCiNkZWZpbmUgaTJvX2lzc3VlX3Bh cmFtcyBfc2V0X3ZlcihpMm9faXNzdWVfcGFyYW1zKQojZGVmaW5lIF9fdmVyX2kyb19ldmVudF9y ZWdpc3RlciBzbXBfZGViYzIyMzMKI2RlZmluZSBpMm9fZXZlbnRfcmVnaXN0ZXIgX3NldF92ZXIo aTJvX2V2ZW50X3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2kyb19ldmVudF9hY2sgc21wXzE4OGJi YjI4CiNkZWZpbmUgaTJvX2V2ZW50X2FjayBfc2V0X3ZlcihpMm9fZXZlbnRfYWNrKQojZGVmaW5l IF9fdmVyX2kyb19yZXBvcnRfc3RhdHVzIHNtcF9lM2IyYzA3NwojZGVmaW5lIGkyb19yZXBvcnRf c3RhdHVzIF9zZXRfdmVyKGkyb19yZXBvcnRfc3RhdHVzKQojZGVmaW5lIF9fdmVyX2kyb19kdW1w X21lc3NhZ2Ugc21wX2VmOGZiYTI3CiNkZWZpbmUgaTJvX2R1bXBfbWVzc2FnZSBfc2V0X3Zlcihp Mm9fZHVtcF9tZXNzYWdlKQojZGVmaW5lIF9fdmVyX2kyb19nZXRfY2xhc3NfbmFtZSBzbXBfZjBm OWVkMzkKI2RlZmluZSBpMm9fZ2V0X2NsYXNzX25hbWUgX3NldF92ZXIoaTJvX2dldF9jbGFzc19u YW1lKQojIDk3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaTJv X2xhbi52ZXIiIDEKIyA5OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2 ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1 bGVzL2kyb19wY2kudmVyIiAxCiMgOTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvbW9kdWxlcy9pMm9fcHJvYy52ZXIiIDEKIyAxMDAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvbGludXgvbW9kdWxlcy9pMm9fc2NzaS52ZXIiIDEKIyAxMDEgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pODEwX2Rydi52ZXIiIDEKIyAxMDIgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pYTY0X2tzeW1zLnZlciIgMQoj ZGVmaW5lIF9fdmVyX21lbWNociBzbXBfYzc0MGM2NGEKI2RlZmluZSBtZW1jaHIgX3NldF92ZXIo bWVtY2hyKQojZGVmaW5lIF9fdmVyX21lbWNtcCBzbXBfYzdlYzI4YjAKI2RlZmluZSBtZW1jbXAg X3NldF92ZXIobWVtY21wKQojZGVmaW5lIF9fdmVyX21lbW1vdmUgc21wXzVkYmJlOThlCiNkZWZp bmUgbWVtbW92ZSBfc2V0X3ZlcihtZW1tb3ZlKQojZGVmaW5lIF9fdmVyX21lbXNjYW4gc21wXzlj MGVhM2NkCiNkZWZpbmUgbWVtc2NhbiBfc2V0X3ZlcihtZW1zY2FuKQojZGVmaW5lIF9fdmVyX3N0 cmNhdCBzbXBfMDYxNjUxYmUKI2RlZmluZSBzdHJjYXQgX3NldF92ZXIoc3RyY2F0KQojZGVmaW5l IF9fdmVyX3N0cmNociBzbXBfMzQ5Y2JhODUKI2RlZmluZSBzdHJjaHIgX3NldF92ZXIoc3RyY2hy KQojZGVmaW5lIF9fdmVyX3N0cmNtcCBzbXBfZTJkNTI1NWEKI2RlZmluZSBzdHJjbXAgX3NldF92 ZXIoc3RyY21wKQojZGVmaW5lIF9fdmVyX3N0cmNweSBzbXBfZTkxNGU0MWUKI2RlZmluZSBzdHJj cHkgX3NldF92ZXIoc3RyY3B5KQojZGVmaW5lIF9fdmVyX3N0cmxlbiBzbXBfZGNiNTY3MWQKI2Rl ZmluZSBzdHJsZW4gX3NldF92ZXIoc3RybGVuKQojZGVmaW5lIF9fdmVyX3N0cm5jYXQgc21wXzIz NDUwOWYzCiNkZWZpbmUgc3RybmNhdCBfc2V0X3ZlcihzdHJuY2F0KQojZGVmaW5lIF9fdmVyX3N0 cm5jbXAgc21wXzg1YWJjODVmCiNkZWZpbmUgc3RybmNtcCBfc2V0X3ZlcihzdHJuY21wKQojZGVm aW5lIF9fdmVyX3N0cm5jcHkgc21wXzdlYzliZmJjCiNkZWZpbmUgc3RybmNweSBfc2V0X3Zlcihz dHJuY3B5KQojZGVmaW5lIF9fdmVyX3N0cm5sZW4gc21wX2NjMDdhZjc1CiNkZWZpbmUgc3Rybmxl biBfc2V0X3ZlcihzdHJubGVuKQojZGVmaW5lIF9fdmVyX3N0cnJjaHIgc21wXzlmOTg0NTEzCiNk ZWZpbmUgc3RycmNociBfc2V0X3ZlcihzdHJyY2hyKQojZGVmaW5lIF9fdmVyX3N0cnN0ciBzbXBf MWU2ZDI2YTgKI2RlZmluZSBzdHJzdHIgX3NldF92ZXIoc3Ryc3RyKQojZGVmaW5lIF9fdmVyX3N0 cnRvayBzbXBfZWU5YzFiZDQKI2RlZmluZSBzdHJ0b2sgX3NldF92ZXIoc3RydG9rKQojZGVmaW5l IF9fdmVyX2lzYV9pcnFfdG9fdmVjdG9yX21hcCBzbXBfM2FlZDc1MjcKI2RlZmluZSBpc2FfaXJx X3RvX3ZlY3Rvcl9tYXAgX3NldF92ZXIoaXNhX2lycV90b192ZWN0b3JfbWFwKQojZGVmaW5lIF9f dmVyX2VuYWJsZV9pcnEgc21wX2ZjZWMwOTg3CiNkZWZpbmUgZW5hYmxlX2lycSBfc2V0X3Zlcihl bmFibGVfaXJxKQojZGVmaW5lIF9fdmVyX2Rpc2FibGVfaXJxIHNtcF8zY2U0Y2E2ZgojZGVmaW5l IGRpc2FibGVfaXJxIF9zZXRfdmVyKGRpc2FibGVfaXJxKQojZGVmaW5lIF9fdmVyX2Rpc2FibGVf aXJxX25vc3luYyBzbXBfMjdiYmYyMjEKI2RlZmluZSBkaXNhYmxlX2lycV9ub3N5bmMgX3NldF92 ZXIoZGlzYWJsZV9pcnFfbm9zeW5jKQojZGVmaW5lIF9fdmVyX3Byb2JlX2lycV9tYXNrIHNtcF8z NjBiMWFmZQojZGVmaW5lIHByb2JlX2lycV9tYXNrIF9zZXRfdmVyKHByb2JlX2lycV9tYXNrKQoj ZGVmaW5lIF9fdmVyX2NzdW1fcGFydGlhbF9jb3B5X25vY2hlY2sgc21wXzMwYWQzN2Y4CiNkZWZp bmUgY3N1bV9wYXJ0aWFsX2NvcHlfbm9jaGVjayBfc2V0X3Zlcihjc3VtX3BhcnRpYWxfY29weV9u b2NoZWNrKQojZGVmaW5lIF9fdmVyX2NzdW1fdGNwdWRwX21hZ2ljIHNtcF80MGQ3Zjc2NgojZGVm aW5lIGNzdW1fdGNwdWRwX21hZ2ljIF9zZXRfdmVyKGNzdW1fdGNwdWRwX21hZ2ljKQojZGVmaW5l IF9fdmVyX2lwX2NvbXB1dGVfY3N1bSBzbXBfZTVlMjk4ZWEKI2RlZmluZSBpcF9jb21wdXRlX2Nz dW0gX3NldF92ZXIoaXBfY29tcHV0ZV9jc3VtKQojZGVmaW5lIF9fdmVyX2lwX2Zhc3RfY3N1bSBz bXBfZTQ2MjdkMTYKI2RlZmluZSBpcF9mYXN0X2NzdW0gX3NldF92ZXIoaXBfZmFzdF9jc3VtKQoj ZGVmaW5lIF9fdmVyX19faWE2NF9tZW1jcHlfZnJvbWlvIHNtcF9hYzRmNWEzYwojZGVmaW5lIF9f aWE2NF9tZW1jcHlfZnJvbWlvIF9zZXRfdmVyKF9faWE2NF9tZW1jcHlfZnJvbWlvKQojZGVmaW5l IF9fdmVyX19faWE2NF9tZW1jcHlfdG9pbyBzbXBfNjRlMDgwZGMKI2RlZmluZSBfX2lhNjRfbWVt Y3B5X3RvaW8gX3NldF92ZXIoX19pYTY0X21lbWNweV90b2lvKQojZGVmaW5lIF9fdmVyX19faWE2 NF9tZW1zZXRfY19pbyBzbXBfYmZmNzBjODgKI2RlZmluZSBfX2lhNjRfbWVtc2V0X2NfaW8gX3Nl dF92ZXIoX19pYTY0X21lbXNldF9jX2lvKQojZGVmaW5lIF9fdmVyX2NsZWFyX3BhZ2Ugc21wXzNk OWVlOWYwCiNkZWZpbmUgY2xlYXJfcGFnZSBfc2V0X3ZlcihjbGVhcl9wYWdlKQojZGVmaW5lIF9f dmVyX19jcHVfZGF0YSBzbXBfZDJmZjUwZjUKI2RlZmluZSBfY3B1X2RhdGEgX3NldF92ZXIoX2Nw dV9kYXRhKQojZGVmaW5lIF9fdmVyX2tlcm5lbF90aHJlYWQgc21wXzdlOWViYjA1CiNkZWZpbmUg a2VybmVsX3RocmVhZCBfc2V0X3ZlcihrZXJuZWxfdGhyZWFkKQojZGVmaW5lIF9fdmVyX3NtcF9m bHVzaF90bGJfYWxsIHNtcF8wMGQ0ZTdkZQojZGVmaW5lIHNtcF9mbHVzaF90bGJfYWxsIF9zZXRf dmVyKHNtcF9mbHVzaF90bGJfYWxsKQojZGVmaW5lIF9fdmVyX3N5bmNocm9uaXplX2lycSBzbXBf MTQzYmIyMTcKI2RlZmluZSBzeW5jaHJvbml6ZV9pcnEgX3NldF92ZXIoc3luY2hyb25pemVfaXJx KQojZGVmaW5lIF9fdmVyX3NtcF9jYWxsX2Z1bmN0aW9uIHNtcF8wMDE0YmZkMQojZGVmaW5lIHNt cF9jYWxsX2Z1bmN0aW9uIF9zZXRfdmVyKHNtcF9jYWxsX2Z1bmN0aW9uKQojZGVmaW5lIF9fdmVy X3NtcF9jYWxsX2Z1bmN0aW9uX3NpbmdsZSBzbXBfYWY3ZTY4MDEKI2RlZmluZSBzbXBfY2FsbF9m dW5jdGlvbl9zaW5nbGUgX3NldF92ZXIoc21wX2NhbGxfZnVuY3Rpb25fc2luZ2xlKQojZGVmaW5l IF9fdmVyX2NwdV9vbmxpbmVfbWFwIHNtcF81NzFiNmE4OQojZGVmaW5lIGNwdV9vbmxpbmVfbWFw IF9zZXRfdmVyKGNwdV9vbmxpbmVfbWFwKQojZGVmaW5lIF9fdmVyX2lhNjRfY3B1X3RvX3NhcGlj aWQgc21wX2U1MmQ3NTVmCiNkZWZpbmUgaWE2NF9jcHVfdG9fc2FwaWNpZCBfc2V0X3ZlcihpYTY0 X2NwdV90b19zYXBpY2lkKQojZGVmaW5lIF9fdmVyX3NtcF9udW1fY3B1cyBzbXBfM2I4NjMzNGQK I2RlZmluZSBzbXBfbnVtX2NwdXMgX3NldF92ZXIoc21wX251bV9jcHVzKQojZGVmaW5lIF9fdmVy X2tlcm5lbF9mbGFnIHNtcF9hOTlkZDgwMAojZGVmaW5lIGtlcm5lbF9mbGFnIF9zZXRfdmVyKGtl cm5lbF9mbGFnKQojZGVmaW5lIF9fdmVyX19fZ2xvYmFsX3N0aSBzbXBfZGE0NDU2ZGQKI2RlZmlu ZSBfX2dsb2JhbF9zdGkgX3NldF92ZXIoX19nbG9iYWxfc3RpKQojZGVmaW5lIF9fdmVyX19fZ2xv YmFsX2NsaSBzbXBfNjQ1NzZiMDUKI2RlZmluZSBfX2dsb2JhbF9jbGkgX3NldF92ZXIoX19nbG9i YWxfY2xpKQojZGVmaW5lIF9fdmVyX19fZ2xvYmFsX3NhdmVfZmxhZ3Mgc21wXzVkOTAyZTk2CiNk ZWZpbmUgX19nbG9iYWxfc2F2ZV9mbGFncyBfc2V0X3ZlcihfX2dsb2JhbF9zYXZlX2ZsYWdzKQoj ZGVmaW5lIF9fdmVyX19fZ2xvYmFsX3Jlc3RvcmVfZmxhZ3Mgc21wXzU0ZGQxZGNiCiNkZWZpbmUg X19nbG9iYWxfcmVzdG9yZV9mbGFncyBfc2V0X3ZlcihfX2dsb2JhbF9yZXN0b3JlX2ZsYWdzKQoj ZGVmaW5lIF9fdmVyX19fY29weV91c2VyIHNtcF9lNTI2ZjEzNgojZGVmaW5lIF9fY29weV91c2Vy IF9zZXRfdmVyKF9fY29weV91c2VyKQojZGVmaW5lIF9fdmVyX19fZG9fY2xlYXJfdXNlciBzbXBf M2Y2YmM2MzMKI2RlZmluZSBfX2RvX2NsZWFyX3VzZXIgX3NldF92ZXIoX19kb19jbGVhcl91c2Vy KQojZGVmaW5lIF9fdmVyX19fc3RybGVuX3VzZXIgc21wX2YxMzk0YTJhCiNkZWZpbmUgX19zdHJs ZW5fdXNlciBfc2V0X3ZlcihfX3N0cmxlbl91c2VyKQojZGVmaW5lIF9fdmVyX19fc3RybmNweV9m cm9tX3VzZXIgc21wX2MwMDNjNjM3CiNkZWZpbmUgX19zdHJuY3B5X2Zyb21fdXNlciBfc2V0X3Zl cihfX3N0cm5jcHlfZnJvbV91c2VyKQojZGVmaW5lIF9fdmVyX19fc3Rybmxlbl91c2VyIHNtcF8w MGVlZjQ5ZQojZGVmaW5lIF9fc3Rybmxlbl91c2VyIF9zZXRfdmVyKF9fc3Rybmxlbl91c2VyKQoj ZGVmaW5lIF9fdmVyX19faWE2NF9zeXNjYWxsIHNtcF9lYmIzOTU2ZQojZGVmaW5lIF9faWE2NF9z eXNjYWxsIF9zZXRfdmVyKF9faWE2NF9zeXNjYWxsKQojZGVmaW5lIF9fdmVyX2lhNjRfaW9iYXNl IHNtcF8wOGU2YjAwNwojZGVmaW5lIGlhNjRfaW9iYXNlIF9zZXRfdmVyKGlhNjRfaW9iYXNlKQoj ZGVmaW5lIF9fdmVyX2lhNjRfcGFsX2NhbGxfcGh5c19zdGFja2VkIHNtcF9mYmJjYTdkYwojZGVm aW5lIGlhNjRfcGFsX2NhbGxfcGh5c19zdGFja2VkIF9zZXRfdmVyKGlhNjRfcGFsX2NhbGxfcGh5 c19zdGFja2VkKQojZGVmaW5lIF9fdmVyX2lhNjRfcGFsX2NhbGxfcGh5c19zdGF0aWMgc21wXzBl NDAyMzcwCiNkZWZpbmUgaWE2NF9wYWxfY2FsbF9waHlzX3N0YXRpYyBfc2V0X3ZlcihpYTY0X3Bh bF9jYWxsX3BoeXNfc3RhdGljKQojZGVmaW5lIF9fdmVyX2lhNjRfcGFsX2NhbGxfc3RhY2tlZCBz bXBfYWZjMTNlNjQKI2RlZmluZSBpYTY0X3BhbF9jYWxsX3N0YWNrZWQgX3NldF92ZXIoaWE2NF9w YWxfY2FsbF9zdGFja2VkKQojZGVmaW5lIF9fdmVyX2lhNjRfcGFsX2NhbGxfc3RhdGljIHNtcF9j YTQ4NGIyYwojZGVmaW5lIGlhNjRfcGFsX2NhbGxfc3RhdGljIF9zZXRfdmVyKGlhNjRfcGFsX2Nh bGxfc3RhdGljKQojZGVmaW5lIF9fdmVyX2VmaSBzbXBfMjNjYjAyZDkKI2RlZmluZSBlZmkgX3Nl dF92ZXIoZWZpKQojZGVmaW5lIF9fdmVyX2VmaV9kaXIgc21wXzBlNDg2NDFkCiNkZWZpbmUgZWZp X2RpciBfc2V0X3ZlcihlZmlfZGlyKQojIDEwMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9tb2R1bGVzL2libS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9nZW5oZF9kYXNkX2ZpbGxn ZW8gc21wXzc5NzE4NDFiCiNkZWZpbmUgZ2VuaGRfZGFzZF9maWxsZ2VvIF9zZXRfdmVyKGdlbmhk X2Rhc2RfZmlsbGdlbykKI2RlZmluZSBfX3Zlcl9nZW5oZF9kYXNkX25hbWUgc21wXzg0NWI3Mzk0 CiNkZWZpbmUgZ2VuaGRfZGFzZF9uYW1lIF9zZXRfdmVyKGdlbmhkX2Rhc2RfbmFtZSkKIyAxMDQg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pZGUtZmVhdHVyZXMu dmVyIiAxCiNkZWZpbmUgX192ZXJfaWRlX2F1dG9fcmVkdWNlX3hmZXIgc21wXzA3Y2E1MjNlCiNk ZWZpbmUgaWRlX2F1dG9fcmVkdWNlX3hmZXIgX3NldF92ZXIoaWRlX2F1dG9fcmVkdWNlX3hmZXIp CiNkZWZpbmUgX192ZXJfaWRlX2RyaXZlaWRfdXBkYXRlIHNtcF85NTc0NTU1NwojZGVmaW5lIGlk ZV9kcml2ZWlkX3VwZGF0ZSBfc2V0X3ZlcihpZGVfZHJpdmVpZF91cGRhdGUpCiNkZWZpbmUgX192 ZXJfaWRlX2F0YTY2X2NoZWNrIHNtcF9kMWFhZGVkOAojZGVmaW5lIGlkZV9hdGE2Nl9jaGVjayBf c2V0X3ZlcihpZGVfYXRhNjZfY2hlY2spCiNkZWZpbmUgX192ZXJfc2V0X3RyYW5zZmVyIHNtcF83 MjEwMzE2NQojZGVmaW5lIHNldF90cmFuc2ZlciBfc2V0X3ZlcihzZXRfdHJhbnNmZXIpCiNkZWZp bmUgX192ZXJfZWlnaHR5X25pbnR5X3RocmVlIHNtcF9lYzhhN2EzOAojZGVmaW5lIGVpZ2h0eV9u aW50eV90aHJlZSBfc2V0X3ZlcihlaWdodHlfbmludHlfdGhyZWUpCiNkZWZpbmUgX192ZXJfaWRl X2NvbmZpZ19kcml2ZV9zcGVlZCBzbXBfNzA1ZTVjYmUKI2RlZmluZSBpZGVfY29uZmlnX2RyaXZl X3NwZWVkIF9zZXRfdmVyKGlkZV9jb25maWdfZHJpdmVfc3BlZWQpCiMgMTA1ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaWRlLnZlciIgMQojZGVmaW5lIF9fdmVy X2lkZV9od2lmcyBzbXBfM2EwODJlZDgKI2RlZmluZSBpZGVfaHdpZnMgX3NldF92ZXIoaWRlX2h3 aWZzKQojZGVmaW5lIF9fdmVyX2lkZV9yZWdpc3Rlcl9tb2R1bGUgc21wXzg1MjY3MDRmCiNkZWZp bmUgaWRlX3JlZ2lzdGVyX21vZHVsZSBfc2V0X3ZlcihpZGVfcmVnaXN0ZXJfbW9kdWxlKQojZGVm aW5lIF9fdmVyX2lkZV91bnJlZ2lzdGVyX21vZHVsZSBzbXBfYWQzODFiMTgKI2RlZmluZSBpZGVf dW5yZWdpc3Rlcl9tb2R1bGUgX3NldF92ZXIoaWRlX3VucmVnaXN0ZXJfbW9kdWxlKQojZGVmaW5l IF9fdmVyX2lkZV9zcGluX3dhaXRfaHdncm91cCBzbXBfN2EyN2Y1NjQKI2RlZmluZSBpZGVfc3Bp bl93YWl0X2h3Z3JvdXAgX3NldF92ZXIoaWRlX3NwaW5fd2FpdF9od2dyb3VwKQojZGVmaW5lIF9f dmVyX2lkZV9wcm9iZSBzbXBfMDg5N2ZhNjkKI2RlZmluZSBpZGVfcHJvYmUgX3NldF92ZXIoaWRl X3Byb2JlKQojZGVmaW5lIF9fdmVyX2RyaXZlX2lzX2ZsYXNoY2FyZCBzbXBfOTdmMmNmZWMKI2Rl ZmluZSBkcml2ZV9pc19mbGFzaGNhcmQgX3NldF92ZXIoZHJpdmVfaXNfZmxhc2hjYXJkKQojZGVm aW5lIF9fdmVyX2lkZV90aW1lcl9leHBpcnkgc21wX2E3YWM5ZjViCiNkZWZpbmUgaWRlX3RpbWVy X2V4cGlyeSBfc2V0X3ZlcihpZGVfdGltZXJfZXhwaXJ5KQojZGVmaW5lIF9fdmVyX2lkZV9pbnRy IHNtcF83NzU1ZDA3ZgojZGVmaW5lIGlkZV9pbnRyIF9zZXRfdmVyKGlkZV9pbnRyKQojZGVmaW5l IF9fdmVyX2lkZV9mb3BzIHNtcF8wMGZlYTQ0MQojZGVmaW5lIGlkZV9mb3BzIF9zZXRfdmVyKGlk ZV9mb3BzKQojZGVmaW5lIF9fdmVyX2lkZV9nZXRfcXVldWUgc21wXzlkNDhhYTM0CiNkZWZpbmUg aWRlX2dldF9xdWV1ZSBfc2V0X3ZlcihpZGVfZ2V0X3F1ZXVlKQojZGVmaW5lIF9fdmVyX2lkZV9h ZGRfZ2VuZXJpY19zZXR0aW5ncyBzbXBfMmNjM2VkYjcKI2RlZmluZSBpZGVfYWRkX2dlbmVyaWNf c2V0dGluZ3MgX3NldF92ZXIoaWRlX2FkZF9nZW5lcmljX3NldHRpbmdzKQojZGVmaW5lIF9fdmVy X2lkZV9kZXZmc19oYW5kbGUgc21wX2ViNTNjMGEyCiNkZWZpbmUgaWRlX2RldmZzX2hhbmRsZSBf c2V0X3ZlcihpZGVfZGV2ZnNfaGFuZGxlKQojZGVmaW5lIF9fdmVyX2RvX2lkZV9yZXF1ZXN0IHNt cF84YTQzYTE4NwojZGVmaW5lIGRvX2lkZV9yZXF1ZXN0IF9zZXRfdmVyKGRvX2lkZV9yZXF1ZXN0 KQojZGVmaW5lIF9fdmVyX2lkZV9zY2FuX2RldmljZXMgc21wXzBlYzM5ZTg4CiNkZWZpbmUgaWRl X3NjYW5fZGV2aWNlcyBfc2V0X3ZlcihpZGVfc2Nhbl9kZXZpY2VzKQojZGVmaW5lIF9fdmVyX2lk ZV9yZWdpc3Rlcl9zdWJkcml2ZXIgc21wXzE5NmRmZTY0CiNkZWZpbmUgaWRlX3JlZ2lzdGVyX3N1 YmRyaXZlciBfc2V0X3ZlcihpZGVfcmVnaXN0ZXJfc3ViZHJpdmVyKQojZGVmaW5lIF9fdmVyX2lk ZV91bnJlZ2lzdGVyX3N1YmRyaXZlciBzbXBfNzA4MTgxNzgKI2RlZmluZSBpZGVfdW5yZWdpc3Rl cl9zdWJkcml2ZXIgX3NldF92ZXIoaWRlX3VucmVnaXN0ZXJfc3ViZHJpdmVyKQojZGVmaW5lIF9f dmVyX2lkZV9yZXBsYWNlX3N1YmRyaXZlciBzbXBfOWU0YzJlNjIKI2RlZmluZSBpZGVfcmVwbGFj ZV9zdWJkcml2ZXIgX3NldF92ZXIoaWRlX3JlcGxhY2Vfc3ViZHJpdmVyKQojZGVmaW5lIF9fdmVy X2lkZV9pbnB1dF9kYXRhIHNtcF8zNmZmZmYzNQojZGVmaW5lIGlkZV9pbnB1dF9kYXRhIF9zZXRf dmVyKGlkZV9pbnB1dF9kYXRhKQojZGVmaW5lIF9fdmVyX2lkZV9vdXRwdXRfZGF0YSBzbXBfZjRl NTkxZTMKI2RlZmluZSBpZGVfb3V0cHV0X2RhdGEgX3NldF92ZXIoaWRlX291dHB1dF9kYXRhKQoj ZGVmaW5lIF9fdmVyX2F0YXBpX2lucHV0X2J5dGVzIHNtcF8xMWQ0NmY5OQojZGVmaW5lIGF0YXBp X2lucHV0X2J5dGVzIF9zZXRfdmVyKGF0YXBpX2lucHV0X2J5dGVzKQojZGVmaW5lIF9fdmVyX2F0 YXBpX291dHB1dF9ieXRlcyBzbXBfZjk2MDM0NjQKI2RlZmluZSBhdGFwaV9vdXRwdXRfYnl0ZXMg X3NldF92ZXIoYXRhcGlfb3V0cHV0X2J5dGVzKQojZGVmaW5lIF9fdmVyX2lkZV9zZXRfaGFuZGxl ciBzbXBfZDdhZDU4NzMKI2RlZmluZSBpZGVfc2V0X2hhbmRsZXIgX3NldF92ZXIoaWRlX3NldF9o YW5kbGVyKQojZGVmaW5lIF9fdmVyX2lkZV9kdW1wX3N0YXR1cyBzbXBfZDZjN2M4NWUKI2RlZmlu ZSBpZGVfZHVtcF9zdGF0dXMgX3NldF92ZXIoaWRlX2R1bXBfc3RhdHVzKQojZGVmaW5lIF9fdmVy X2lkZV9lcnJvciBzbXBfMWEyZjBiZDgKI2RlZmluZSBpZGVfZXJyb3IgX3NldF92ZXIoaWRlX2Vy cm9yKQojZGVmaW5lIF9fdmVyX2lkZV9maXhzdHJpbmcgc21wXzJlYWU0YTE5CiNkZWZpbmUgaWRl X2ZpeHN0cmluZyBfc2V0X3ZlcihpZGVfZml4c3RyaW5nKQojZGVmaW5lIF9fdmVyX2lkZV93YWl0 X3N0YXQgc21wX2RkODNlOGJmCiNkZWZpbmUgaWRlX3dhaXRfc3RhdCBfc2V0X3ZlcihpZGVfd2Fp dF9zdGF0KQojZGVmaW5lIF9fdmVyX2lkZV9kb19yZXNldCBzbXBfMjE2MmUxZWUKI2RlZmluZSBp ZGVfZG9fcmVzZXQgX3NldF92ZXIoaWRlX2RvX3Jlc2V0KQojZGVmaW5lIF9fdmVyX2lkZV9pbml0 X2RyaXZlX2NtZCBzbXBfNGI3YTE4NzkKI2RlZmluZSBpZGVfaW5pdF9kcml2ZV9jbWQgX3NldF92 ZXIoaWRlX2luaXRfZHJpdmVfY21kKQojZGVmaW5lIF9fdmVyX2lkZV9kb19kcml2ZV9jbWQgc21w Xzc5OTRjMjczCiNkZWZpbmUgaWRlX2RvX2RyaXZlX2NtZCBfc2V0X3ZlcihpZGVfZG9fZHJpdmVf Y21kKQojZGVmaW5lIF9fdmVyX2lkZV9lbmRfZHJpdmVfY21kIHNtcF9hY2ZiMzc0ZAojZGVmaW5l IGlkZV9lbmRfZHJpdmVfY21kIF9zZXRfdmVyKGlkZV9lbmRfZHJpdmVfY21kKQojZGVmaW5lIF9f dmVyX2lkZV9lbmRfcmVxdWVzdCBzbXBfMmU1NmQzNjAKI2RlZmluZSBpZGVfZW5kX3JlcXVlc3Qg X3NldF92ZXIoaWRlX2VuZF9yZXF1ZXN0KQojZGVmaW5lIF9fdmVyX2lkZV9yZXZhbGlkYXRlX2Rp c2sgc21wXzBlNjA0NDQyCiNkZWZpbmUgaWRlX3JldmFsaWRhdGVfZGlzayBfc2V0X3ZlcihpZGVf cmV2YWxpZGF0ZV9kaXNrKQojZGVmaW5lIF9fdmVyX2lkZV9jbWQgc21wXzc0MjM1ZDgxCiNkZWZp bmUgaWRlX2NtZCBfc2V0X3ZlcihpZGVfY21kKQojZGVmaW5lIF9fdmVyX2lkZV93YWl0X2NtZCBz bXBfNTFhNjc0ZTYKI2RlZmluZSBpZGVfd2FpdF9jbWQgX3NldF92ZXIoaWRlX3dhaXRfY21kKQoj ZGVmaW5lIF9fdmVyX2lkZV93YWl0X2NtZF90YXNrIHNtcF8wZTNmYWFiOQojZGVmaW5lIGlkZV93 YWl0X2NtZF90YXNrIF9zZXRfdmVyKGlkZV93YWl0X2NtZF90YXNrKQojZGVmaW5lIF9fdmVyX2lk ZV9kZWxheV81MG1zIHNtcF83ZjlhYjU1NAojZGVmaW5lIGlkZV9kZWxheV81MG1zIF9zZXRfdmVy KGlkZV9kZWxheV81MG1zKQojZGVmaW5lIF9fdmVyX2lkZV9zdGFsbF9xdWV1ZSBzbXBfNmUwY2Ux YWYKI2RlZmluZSBpZGVfc3RhbGxfcXVldWUgX3NldF92ZXIoaWRlX3N0YWxsX3F1ZXVlKQojZGVm aW5lIF9fdmVyX2lkZV9hZGRfcHJvY19lbnRyaWVzIHNtcF81NTEwYjQ5YgojZGVmaW5lIGlkZV9h ZGRfcHJvY19lbnRyaWVzIF9zZXRfdmVyKGlkZV9hZGRfcHJvY19lbnRyaWVzKQojZGVmaW5lIF9f dmVyX2lkZV9yZW1vdmVfcHJvY19lbnRyaWVzIHNtcF9jYzQ5YmRiNQojZGVmaW5lIGlkZV9yZW1v dmVfcHJvY19lbnRyaWVzIF9zZXRfdmVyKGlkZV9yZW1vdmVfcHJvY19lbnRyaWVzKQojZGVmaW5l IF9fdmVyX3Byb2NfaWRlX3JlYWRfZ2VvbWV0cnkgc21wXzUwZmVkNmY3CiNkZWZpbmUgcHJvY19p ZGVfcmVhZF9nZW9tZXRyeSBfc2V0X3Zlcihwcm9jX2lkZV9yZWFkX2dlb21ldHJ5KQojZGVmaW5l IF9fdmVyX2NyZWF0ZV9wcm9jX2lkZV9pbnRlcmZhY2VzIHNtcF9hYjJjNjAwZQojZGVmaW5lIGNy ZWF0ZV9wcm9jX2lkZV9pbnRlcmZhY2VzIF9zZXRfdmVyKGNyZWF0ZV9wcm9jX2lkZV9pbnRlcmZh Y2VzKQojZGVmaW5lIF9fdmVyX2lkZV9hZGRfc2V0dGluZyBzbXBfYWFhOTVmMzkKI2RlZmluZSBp ZGVfYWRkX3NldHRpbmcgX3NldF92ZXIoaWRlX2FkZF9zZXR0aW5nKQojZGVmaW5lIF9fdmVyX2lk ZV9yZW1vdmVfc2V0dGluZyBzbXBfZTA0NGI4ZDMKI2RlZmluZSBpZGVfcmVtb3ZlX3NldHRpbmcg X3NldF92ZXIoaWRlX3JlbW92ZV9zZXR0aW5nKQojZGVmaW5lIF9fdmVyX2lkZV9yZWdpc3Rlcl9o dyBzbXBfNTBmYzY3YjMKI2RlZmluZSBpZGVfcmVnaXN0ZXJfaHcgX3NldF92ZXIoaWRlX3JlZ2lz dGVyX2h3KQojZGVmaW5lIF9fdmVyX2lkZV9yZWdpc3RlciBzbXBfM2I1NTg2ZDgKI2RlZmluZSBp ZGVfcmVnaXN0ZXIgX3NldF92ZXIoaWRlX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2lkZV91bnJl Z2lzdGVyIHNtcF8wYzQ4NmI3MgojZGVmaW5lIGlkZV91bnJlZ2lzdGVyIF9zZXRfdmVyKGlkZV91 bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2lkZV9zZXR1cF9wb3J0cyBzbXBfOTQwMGRiNWIKI2Rl ZmluZSBpZGVfc2V0dXBfcG9ydHMgX3NldF92ZXIoaWRlX3NldHVwX3BvcnRzKQojZGVmaW5lIF9f dmVyX2h3aWZfdW5yZWdpc3RlciBzbXBfYzQxYmM1OTQKI2RlZmluZSBod2lmX3VucmVnaXN0ZXIg X3NldF92ZXIoaHdpZl91bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2dldF9pbmZvX3B0ciBzbXBf MGRmYzM5NzYKI2RlZmluZSBnZXRfaW5mb19wdHIgX3NldF92ZXIoZ2V0X2luZm9fcHRyKQojZGVm aW5lIF9fdmVyX2N1cnJlbnRfY2FwYWNpdHkgc21wXzU5NGFhMWZiCiNkZWZpbmUgY3VycmVudF9j YXBhY2l0eSBfc2V0X3ZlcihjdXJyZW50X2NhcGFjaXR5KQojZGVmaW5lIF9fdmVyX3N5c3RlbV9i dXNfY2xvY2sgc21wX2VlNWExMWViCiNkZWZpbmUgc3lzdGVtX2J1c19jbG9jayBfc2V0X3Zlcihz eXN0ZW1fYnVzX2Nsb2NrKQojIDEwNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9tb2R1bGVzL2lkdDc3MTA1LnZlciIgMQojZGVmaW5lIF9fdmVyX2lkdDc3MTA1X2luaXQgc21w XzljOGVjYWMzCiNkZWZpbmUgaWR0NzcxMDVfaW5pdCBfc2V0X3ZlcihpZHQ3NzEwNV9pbml0KQoj ZGVmaW5lIF9fdmVyX2lkdDc3MTA1X3N0b3Agc21wXzMxZjgwYWI4CiNkZWZpbmUgaWR0NzcxMDVf c3RvcCBfc2V0X3ZlcihpZHQ3NzEwNV9zdG9wKQojIDEwNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9tb2R1bGVzL2llZWUxMzk0X3N5bXMudmVyIiAxCiNkZWZpbmUgX192ZXJf aHBzYl9yZWdpc3Rlcl9sb3dsZXZlbCBzbXBfMDY0ODExZjAKI2RlZmluZSBocHNiX3JlZ2lzdGVy X2xvd2xldmVsIF9zZXRfdmVyKGhwc2JfcmVnaXN0ZXJfbG93bGV2ZWwpCiNkZWZpbmUgX192ZXJf aHBzYl91bnJlZ2lzdGVyX2xvd2xldmVsIHNtcF84YzcwMTI0YQojZGVmaW5lIGhwc2JfdW5yZWdp c3Rlcl9sb3dsZXZlbCBfc2V0X3ZlcihocHNiX3VucmVnaXN0ZXJfbG93bGV2ZWwpCiNkZWZpbmUg X192ZXJfaHBzYl9nZXRfaG9zdCBzbXBfMmRhMjM3MTkKI2RlZmluZSBocHNiX2dldF9ob3N0IF9z ZXRfdmVyKGhwc2JfZ2V0X2hvc3QpCiNkZWZpbmUgX192ZXJfaHBzYl9pbmNfaG9zdF91c2FnZSBz bXBfYTMxMzQ0NjIKI2RlZmluZSBocHNiX2luY19ob3N0X3VzYWdlIF9zZXRfdmVyKGhwc2JfaW5j X2hvc3RfdXNhZ2UpCiNkZWZpbmUgX192ZXJfaHBzYl9kZWNfaG9zdF91c2FnZSBzbXBfMTE5YTFm OWIKI2RlZmluZSBocHNiX2RlY19ob3N0X3VzYWdlIF9zZXRfdmVyKGhwc2JfZGVjX2hvc3RfdXNh Z2UpCiNkZWZpbmUgX192ZXJfYWxsb2NfaHBzYl9wYWNrZXQgc21wXzQ3YzU2ZmM2CiNkZWZpbmUg YWxsb2NfaHBzYl9wYWNrZXQgX3NldF92ZXIoYWxsb2NfaHBzYl9wYWNrZXQpCiNkZWZpbmUgX192 ZXJfZnJlZV9ocHNiX3BhY2tldCBzbXBfMjAxODIxMzEKI2RlZmluZSBmcmVlX2hwc2JfcGFja2V0 IF9zZXRfdmVyKGZyZWVfaHBzYl9wYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9zZW5kX3BhY2tl dCBzbXBfYjVhNjgxNDQKI2RlZmluZSBocHNiX3NlbmRfcGFja2V0IF9zZXRfdmVyKGhwc2Jfc2Vu ZF9wYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9yZXNldF9idXMgc21wXzIyNWE0MTAxCiNkZWZp bmUgaHBzYl9yZXNldF9idXMgX3NldF92ZXIoaHBzYl9yZXNldF9idXMpCiNkZWZpbmUgX192ZXJf aHBzYl9idXNfcmVzZXQgc21wX2RjNTk2YjBiCiNkZWZpbmUgaHBzYl9idXNfcmVzZXQgX3NldF92 ZXIoaHBzYl9idXNfcmVzZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9zZWxmaWRfcmVjZWl2ZWQgc21w XzBkYjg2OGI3CiNkZWZpbmUgaHBzYl9zZWxmaWRfcmVjZWl2ZWQgX3NldF92ZXIoaHBzYl9zZWxm aWRfcmVjZWl2ZWQpCiNkZWZpbmUgX192ZXJfaHBzYl9zZWxmaWRfY29tcGxldGUgc21wXzY0OTlj NTkzCiNkZWZpbmUgaHBzYl9zZWxmaWRfY29tcGxldGUgX3NldF92ZXIoaHBzYl9zZWxmaWRfY29t cGxldGUpCiNkZWZpbmUgX192ZXJfaHBzYl9wYWNrZXRfc2VudCBzbXBfNGZmNWMzODYKI2RlZmlu ZSBocHNiX3BhY2tldF9zZW50IF9zZXRfdmVyKGhwc2JfcGFja2V0X3NlbnQpCiNkZWZpbmUgX192 ZXJfaHBzYl9wYWNrZXRfcmVjZWl2ZWQgc21wX2U2NmFlYzcyCiNkZWZpbmUgaHBzYl9wYWNrZXRf cmVjZWl2ZWQgX3NldF92ZXIoaHBzYl9wYWNrZXRfcmVjZWl2ZWQpCiNkZWZpbmUgX192ZXJfaHBz Yl9nZW5lcmF0aW9uIHNtcF81MGVkMmQ5YwojZGVmaW5lIGhwc2JfZ2VuZXJhdGlvbiBfc2V0X3Zl cihocHNiX2dlbmVyYXRpb24pCiNkZWZpbmUgX192ZXJfZ2V0X3RsYWJlbCBzbXBfMmJlM2I0YTYK I2RlZmluZSBnZXRfdGxhYmVsIF9zZXRfdmVyKGdldF90bGFiZWwpCiNkZWZpbmUgX192ZXJfZnJl ZV90bGFiZWwgc21wXzg4NjNiZGJhCiNkZWZpbmUgZnJlZV90bGFiZWwgX3NldF92ZXIoZnJlZV90 bGFiZWwpCiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY19yZWFkcXVhZCBzbXBfMzU4Njc3NDkKI2Rl ZmluZSBmaWxsX2FzeW5jX3JlYWRxdWFkIF9zZXRfdmVyKGZpbGxfYXN5bmNfcmVhZHF1YWQpCiNk ZWZpbmUgX192ZXJfZmlsbF9hc3luY19yZWFkcXVhZF9yZXNwIHNtcF85ODYzZDQ0MAojZGVmaW5l IGZpbGxfYXN5bmNfcmVhZHF1YWRfcmVzcCBfc2V0X3ZlcihmaWxsX2FzeW5jX3JlYWRxdWFkX3Jl c3ApCiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY19yZWFkYmxvY2sgc21wXzQxNWEzYzRiCiNkZWZp bmUgZmlsbF9hc3luY19yZWFkYmxvY2sgX3NldF92ZXIoZmlsbF9hc3luY19yZWFkYmxvY2spCiNk ZWZpbmUgX192ZXJfZmlsbF9hc3luY19yZWFkYmxvY2tfcmVzcCBzbXBfNmIzMDlhNTkKI2RlZmlu ZSBmaWxsX2FzeW5jX3JlYWRibG9ja19yZXNwIF9zZXRfdmVyKGZpbGxfYXN5bmNfcmVhZGJsb2Nr X3Jlc3ApCiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY193cml0ZXF1YWQgc21wX2IyNTU3MmUyCiNk ZWZpbmUgZmlsbF9hc3luY193cml0ZXF1YWQgX3NldF92ZXIoZmlsbF9hc3luY193cml0ZXF1YWQp CiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY193cml0ZWJsb2NrIHNtcF82OWQyNzBjYwojZGVmaW5l IGZpbGxfYXN5bmNfd3JpdGVibG9jayBfc2V0X3ZlcihmaWxsX2FzeW5jX3dyaXRlYmxvY2spCiNk ZWZpbmUgX192ZXJfZmlsbF9hc3luY193cml0ZV9yZXNwIHNtcF9hNWI0MzMzMwojZGVmaW5lIGZp bGxfYXN5bmNfd3JpdGVfcmVzcCBfc2V0X3ZlcihmaWxsX2FzeW5jX3dyaXRlX3Jlc3ApCiNkZWZp bmUgX192ZXJfZmlsbF9hc3luY19sb2NrIHNtcF9lN2U1M2ZmYgojZGVmaW5lIGZpbGxfYXN5bmNf bG9jayBfc2V0X3ZlcihmaWxsX2FzeW5jX2xvY2spCiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY19s b2NrX3Jlc3Agc21wX2VkNmY4MzM0CiNkZWZpbmUgZmlsbF9hc3luY19sb2NrX3Jlc3AgX3NldF92 ZXIoZmlsbF9hc3luY19sb2NrX3Jlc3ApCiNkZWZpbmUgX192ZXJfZmlsbF9pc29fcGFja2V0IHNt cF9hNDdhOTBmNQojZGVmaW5lIGZpbGxfaXNvX3BhY2tldCBfc2V0X3ZlcihmaWxsX2lzb19wYWNr ZXQpCiNkZWZpbmUgX192ZXJfZmlsbF9waHlfcGFja2V0IHNtcF81NjkwYmNkNwojZGVmaW5lIGZp bGxfcGh5X3BhY2tldCBfc2V0X3ZlcihmaWxsX3BoeV9wYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBz Yl9tYWtlX3JlYWRxcGFja2V0IHNtcF9jNzFkOWU5NAojZGVmaW5lIGhwc2JfbWFrZV9yZWFkcXBh Y2tldCBfc2V0X3ZlcihocHNiX21ha2VfcmVhZHFwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9t YWtlX3JlYWRicGFja2V0IHNtcF9kMWZkODE3ZAojZGVmaW5lIGhwc2JfbWFrZV9yZWFkYnBhY2tl dCBfc2V0X3ZlcihocHNiX21ha2VfcmVhZGJwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtl X3dyaXRlcXBhY2tldCBzbXBfNTI0ZTJhYzIKI2RlZmluZSBocHNiX21ha2Vfd3JpdGVxcGFja2V0 IF9zZXRfdmVyKGhwc2JfbWFrZV93cml0ZXFwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtl X3dyaXRlYnBhY2tldCBzbXBfYWM5NDI4ZDcKI2RlZmluZSBocHNiX21ha2Vfd3JpdGVicGFja2V0 IF9zZXRfdmVyKGhwc2JfbWFrZV93cml0ZWJwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtl X2xvY2twYWNrZXQgc21wXzZiYzM1MDYzCiNkZWZpbmUgaHBzYl9tYWtlX2xvY2twYWNrZXQgX3Nl dF92ZXIoaHBzYl9tYWtlX2xvY2twYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtlX3BoeXBh Y2tldCBzbXBfMDhiMDZkMjYKI2RlZmluZSBocHNiX21ha2VfcGh5cGFja2V0IF9zZXRfdmVyKGhw c2JfbWFrZV9waHlwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9wYWNrZXRfc3VjY2VzcyBzbXBf YWJjNzVjYzAKI2RlZmluZSBocHNiX3BhY2tldF9zdWNjZXNzIF9zZXRfdmVyKGhwc2JfcGFja2V0 X3N1Y2Nlc3MpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtlX3BhY2tldCBzbXBfMzUzY2FiYWYKI2Rl ZmluZSBocHNiX21ha2VfcGFja2V0IF9zZXRfdmVyKGhwc2JfbWFrZV9wYWNrZXQpCiNkZWZpbmUg X192ZXJfaHBzYl9yZWFkIHNtcF8wNWE4NTY3MAojZGVmaW5lIGhwc2JfcmVhZCBfc2V0X3Zlciho cHNiX3JlYWQpCiNkZWZpbmUgX192ZXJfaHBzYl93cml0ZSBzbXBfOTNhYjQxMTAKI2RlZmluZSBo cHNiX3dyaXRlIF9zZXRfdmVyKGhwc2Jfd3JpdGUpCiNkZWZpbmUgX192ZXJfaHBzYl9sb2NrIHNt cF80ZTQ2Y2FlMgojZGVmaW5lIGhwc2JfbG9jayBfc2V0X3ZlcihocHNiX2xvY2spCiNkZWZpbmUg X192ZXJfaHBzYl9yZWdpc3Rlcl9oaWdobGV2ZWwgc21wXzY5YzAwNDU5CiNkZWZpbmUgaHBzYl9y ZWdpc3Rlcl9oaWdobGV2ZWwgX3NldF92ZXIoaHBzYl9yZWdpc3Rlcl9oaWdobGV2ZWwpCiNkZWZp bmUgX192ZXJfaHBzYl91bnJlZ2lzdGVyX2hpZ2hsZXZlbCBzbXBfNzAzMjAwNTkKI2RlZmluZSBo cHNiX3VucmVnaXN0ZXJfaGlnaGxldmVsIF9zZXRfdmVyKGhwc2JfdW5yZWdpc3Rlcl9oaWdobGV2 ZWwpCiNkZWZpbmUgX192ZXJfaHBzYl9yZWdpc3Rlcl9hZGRyc3BhY2Ugc21wXzkxNzdlYTZlCiNk ZWZpbmUgaHBzYl9yZWdpc3Rlcl9hZGRyc3BhY2UgX3NldF92ZXIoaHBzYl9yZWdpc3Rlcl9hZGRy c3BhY2UpCiNkZWZpbmUgX192ZXJfaHBzYl9saXN0ZW5fY2hhbm5lbCBzbXBfNzg0NDYzNmIKI2Rl ZmluZSBocHNiX2xpc3Rlbl9jaGFubmVsIF9zZXRfdmVyKGhwc2JfbGlzdGVuX2NoYW5uZWwpCiNk ZWZpbmUgX192ZXJfaHBzYl91bmxpc3Rlbl9jaGFubmVsIHNtcF8wZWQ2OTBlMAojZGVmaW5lIGhw c2JfdW5saXN0ZW5fY2hhbm5lbCBfc2V0X3ZlcihocHNiX3VubGlzdGVuX2NoYW5uZWwpCiNkZWZp bmUgX192ZXJfaGlnaGxldmVsX3JlYWQgc21wXzYyZjIzMzU4CiNkZWZpbmUgaGlnaGxldmVsX3Jl YWQgX3NldF92ZXIoaGlnaGxldmVsX3JlYWQpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX3dyaXRl IHNtcF83ZTVhYjUxNwojZGVmaW5lIGhpZ2hsZXZlbF93cml0ZSBfc2V0X3ZlcihoaWdobGV2ZWxf d3JpdGUpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX2xvY2sgc21wXzc5NmZjOTk3CiNkZWZpbmUg aGlnaGxldmVsX2xvY2sgX3NldF92ZXIoaGlnaGxldmVsX2xvY2spCiNkZWZpbmUgX192ZXJfaGln aGxldmVsX2xvY2s2NCBzbXBfMDY0OTY0YmMKI2RlZmluZSBoaWdobGV2ZWxfbG9jazY0IF9zZXRf dmVyKGhpZ2hsZXZlbF9sb2NrNjQpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX2FkZF9ob3N0IHNt cF80ZTQ1YTk0MwojZGVmaW5lIGhpZ2hsZXZlbF9hZGRfaG9zdCBfc2V0X3ZlcihoaWdobGV2ZWxf YWRkX2hvc3QpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX3JlbW92ZV9ob3N0IHNtcF9hZmQ2OTYz NgojZGVmaW5lIGhpZ2hsZXZlbF9yZW1vdmVfaG9zdCBfc2V0X3ZlcihoaWdobGV2ZWxfcmVtb3Zl X2hvc3QpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX2hvc3RfcmVzZXQgc21wXzdiYzUyYjJkCiNk ZWZpbmUgaGlnaGxldmVsX2hvc3RfcmVzZXQgX3NldF92ZXIoaGlnaGxldmVsX2hvc3RfcmVzZXQp CiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX2FkZF9vbmVfaG9zdCBzbXBfMmI0OTY0YTIKI2RlZmlu ZSBoaWdobGV2ZWxfYWRkX29uZV9ob3N0IF9zZXRfdmVyKGhpZ2hsZXZlbF9hZGRfb25lX2hvc3Qp CiNkZWZpbmUgX192ZXJfaHBzYl9ndWlkX2dldF9oYW5kbGUgc21wX2Y4NmNhN2Q5CiNkZWZpbmUg aHBzYl9ndWlkX2dldF9oYW5kbGUgX3NldF92ZXIoaHBzYl9ndWlkX2dldF9oYW5kbGUpCiNkZWZp bmUgX192ZXJfaHBzYl9nZXRfaG9zdF9ieV9nZSBzbXBfNTdiMTg1MzUKI2RlZmluZSBocHNiX2dl dF9ob3N0X2J5X2dlIF9zZXRfdmVyKGhwc2JfZ2V0X2hvc3RfYnlfZ2UpCiNkZWZpbmUgX192ZXJf aHBzYl9ndWlkX2ZpbGxfcGFja2V0IHNtcF84MjFiZDE2MQojZGVmaW5lIGhwc2JfZ3VpZF9maWxs X3BhY2tldCBfc2V0X3ZlcihocHNiX2d1aWRfZmlsbF9wYWNrZXQpCiMgMTA4ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaW5pdC52ZXIiIDEKI2RlZmluZSBfX3Zl cl9wYXJwb3J0X2NsYWltIHNtcF9hMjVkMDQ5MQojZGVmaW5lIHBhcnBvcnRfY2xhaW0gX3NldF92 ZXIocGFycG9ydF9jbGFpbSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2NsYWltX29yX2Jsb2NrIHNt cF84MjQyZDMyZQojZGVmaW5lIHBhcnBvcnRfY2xhaW1fb3JfYmxvY2sgX3NldF92ZXIocGFycG9y dF9jbGFpbV9vcl9ibG9jaykKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3JlbGVhc2Ugc21wXzkzZjU0 YzZjCiNkZWZpbmUgcGFycG9ydF9yZWxlYXNlIF9zZXRfdmVyKHBhcnBvcnRfcmVsZWFzZSkKI2Rl ZmluZSBfX3Zlcl9wYXJwb3J0X3JlZ2lzdGVyX3BvcnQgc21wXzNmMTYyMjMwCiNkZWZpbmUgcGFy cG9ydF9yZWdpc3Rlcl9wb3J0IF9zZXRfdmVyKHBhcnBvcnRfcmVnaXN0ZXJfcG9ydCkKI2RlZmlu ZSBfX3Zlcl9wYXJwb3J0X2Fubm91bmNlX3BvcnQgc21wX2QzNmU2OTM2CiNkZWZpbmUgcGFycG9y dF9hbm5vdW5jZV9wb3J0IF9zZXRfdmVyKHBhcnBvcnRfYW5ub3VuY2VfcG9ydCkKI2RlZmluZSBf X3Zlcl9wYXJwb3J0X3VucmVnaXN0ZXJfcG9ydCBzbXBfYTM0MzQ4NjIKI2RlZmluZSBwYXJwb3J0 X3VucmVnaXN0ZXJfcG9ydCBfc2V0X3ZlcihwYXJwb3J0X3VucmVnaXN0ZXJfcG9ydCkKI2RlZmlu ZSBfX3Zlcl9wYXJwb3J0X3JlZ2lzdGVyX2RyaXZlciBzbXBfN2M0NzEyNzkKI2RlZmluZSBwYXJw b3J0X3JlZ2lzdGVyX2RyaXZlciBfc2V0X3ZlcihwYXJwb3J0X3JlZ2lzdGVyX2RyaXZlcikKI2Rl ZmluZSBfX3Zlcl9wYXJwb3J0X3VucmVnaXN0ZXJfZHJpdmVyIHNtcF82OTQ0ZTBmNAojZGVmaW5l IHBhcnBvcnRfdW5yZWdpc3Rlcl9kcml2ZXIgX3NldF92ZXIocGFycG9ydF91bnJlZ2lzdGVyX2Ry aXZlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3JlZ2lzdGVyX2RldmljZSBzbXBfZDUxN2NjYTgK I2RlZmluZSBwYXJwb3J0X3JlZ2lzdGVyX2RldmljZSBfc2V0X3ZlcihwYXJwb3J0X3JlZ2lzdGVy X2RldmljZSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3VucmVnaXN0ZXJfZGV2aWNlIHNtcF84NjY1 MzIxYQojZGVmaW5lIHBhcnBvcnRfdW5yZWdpc3Rlcl9kZXZpY2UgX3NldF92ZXIocGFycG9ydF91 bnJlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2VudW1lcmF0ZSBzbXBfNjQw MGUzNmEKI2RlZmluZSBwYXJwb3J0X2VudW1lcmF0ZSBfc2V0X3ZlcihwYXJwb3J0X2VudW1lcmF0 ZSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2dldF9wb3J0IHNtcF9kNTRjNmQ4OAojZGVmaW5lIHBh cnBvcnRfZ2V0X3BvcnQgX3NldF92ZXIocGFycG9ydF9nZXRfcG9ydCkKI2RlZmluZSBfX3Zlcl9w YXJwb3J0X3B1dF9wb3J0IHNtcF8xMjg1M2MwOQojZGVmaW5lIHBhcnBvcnRfcHV0X3BvcnQgX3Nl dF92ZXIocGFycG9ydF9wdXRfcG9ydCkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2ZpbmRfbnVtYmVy IHNtcF8wNDE4NTJiZQojZGVmaW5lIHBhcnBvcnRfZmluZF9udW1iZXIgX3NldF92ZXIocGFycG9y dF9maW5kX251bWJlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2ZpbmRfYmFzZSBzbXBfMmQ5ZDc5 NGQKI2RlZmluZSBwYXJwb3J0X2ZpbmRfYmFzZSBfc2V0X3ZlcihwYXJwb3J0X2ZpbmRfYmFzZSkK I2RlZmluZSBfX3Zlcl9wYXJwb3J0X25lZ290aWF0ZSBzbXBfYWVmMDkyMWEKI2RlZmluZSBwYXJw b3J0X25lZ290aWF0ZSBfc2V0X3ZlcihwYXJwb3J0X25lZ290aWF0ZSkKI2RlZmluZSBfX3Zlcl9w YXJwb3J0X3dyaXRlIHNtcF81MmVhZmM0NQojZGVmaW5lIHBhcnBvcnRfd3JpdGUgX3NldF92ZXIo cGFycG9ydF93cml0ZSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3JlYWQgc21wXzBkM2QxYmRlCiNk ZWZpbmUgcGFycG9ydF9yZWFkIF9zZXRfdmVyKHBhcnBvcnRfcmVhZCkKI2RlZmluZSBfX3Zlcl9w YXJwb3J0X2llZWUxMjg0X3dha2V1cCBzbXBfNDM3YWM4MzIKI2RlZmluZSBwYXJwb3J0X2llZWUx Mjg0X3dha2V1cCBfc2V0X3ZlcihwYXJwb3J0X2llZWUxMjg0X3dha2V1cCkKI2RlZmluZSBfX3Zl cl9wYXJwb3J0X3dhaXRfcGVyaXBoZXJhbCBzbXBfNmM4NWJmOGMKI2RlZmluZSBwYXJwb3J0X3dh aXRfcGVyaXBoZXJhbCBfc2V0X3ZlcihwYXJwb3J0X3dhaXRfcGVyaXBoZXJhbCkKI2RlZmluZSBf X3Zlcl9wYXJwb3J0X3BvbGxfcGVyaXBoZXJhbCBzbXBfZjNlYTUxNDgKI2RlZmluZSBwYXJwb3J0 X3BvbGxfcGVyaXBoZXJhbCBfc2V0X3ZlcihwYXJwb3J0X3BvbGxfcGVyaXBoZXJhbCkKI2RlZmlu ZSBfX3Zlcl9wYXJwb3J0X3dhaXRfZXZlbnQgc21wXzRmY2JjMzliCiNkZWZpbmUgcGFycG9ydF93 YWl0X2V2ZW50IF9zZXRfdmVyKHBhcnBvcnRfd2FpdF9ldmVudCkKI2RlZmluZSBfX3Zlcl9wYXJw b3J0X3NldF90aW1lb3V0IHNtcF82ZjMxYTQ3OAojZGVmaW5lIHBhcnBvcnRfc2V0X3RpbWVvdXQg X3NldF92ZXIocGFycG9ydF9zZXRfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUx Mjg0X2ludGVycnVwdCBzbXBfYmYyYjBkYzAKI2RlZmluZSBwYXJwb3J0X2llZWUxMjg0X2ludGVy cnVwdCBfc2V0X3ZlcihwYXJwb3J0X2llZWUxMjg0X2ludGVycnVwdCkKI2RlZmluZSBfX3Zlcl9w YXJwb3J0X2llZWUxMjg0X2VjcF93cml0ZV9kYXRhIHNtcF8wMzViZmI1MwojZGVmaW5lIHBhcnBv cnRfaWVlZTEyODRfZWNwX3dyaXRlX2RhdGEgX3NldF92ZXIocGFycG9ydF9pZWVlMTI4NF9lY3Bf d3JpdGVfZGF0YSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X2VjcF9yZWFkX2RhdGEg c21wX2RmNDg4YWFlCiNkZWZpbmUgcGFycG9ydF9pZWVlMTI4NF9lY3BfcmVhZF9kYXRhIF9zZXRf dmVyKHBhcnBvcnRfaWVlZTEyODRfZWNwX3JlYWRfZGF0YSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0 X2llZWUxMjg0X2VjcF93cml0ZV9hZGRyIHNtcF8wZDQ5YzhjYgojZGVmaW5lIHBhcnBvcnRfaWVl ZTEyODRfZWNwX3dyaXRlX2FkZHIgX3NldF92ZXIocGFycG9ydF9pZWVlMTI4NF9lY3Bfd3JpdGVf YWRkcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X3dyaXRlX2NvbXBhdCBzbXBfMGY1 NDU3YWUKI2RlZmluZSBwYXJwb3J0X2llZWUxMjg0X3dyaXRlX2NvbXBhdCBfc2V0X3ZlcihwYXJw b3J0X2llZWUxMjg0X3dyaXRlX2NvbXBhdCkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0 X3JlYWRfbmliYmxlIHNtcF8xMmNhNzZhYQojZGVmaW5lIHBhcnBvcnRfaWVlZTEyODRfcmVhZF9u aWJibGUgX3NldF92ZXIocGFycG9ydF9pZWVlMTI4NF9yZWFkX25pYmJsZSkKI2RlZmluZSBfX3Zl cl9wYXJwb3J0X2llZWUxMjg0X3JlYWRfYnl0ZSBzbXBfZjYyMWY1YmYKI2RlZmluZSBwYXJwb3J0 X2llZWUxMjg0X3JlYWRfYnl0ZSBfc2V0X3ZlcihwYXJwb3J0X2llZWUxMjg0X3JlYWRfYnl0ZSkK I2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X2VwcF93cml0ZV9kYXRhIHNtcF82ZjU1NmVj YQojZGVmaW5lIHBhcnBvcnRfaWVlZTEyODRfZXBwX3dyaXRlX2RhdGEgX3NldF92ZXIocGFycG9y dF9pZWVlMTI4NF9lcHBfd3JpdGVfZGF0YSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0 X2VwcF9yZWFkX2RhdGEgc21wXzk1NGYxYWIwCiNkZWZpbmUgcGFycG9ydF9pZWVlMTI4NF9lcHBf cmVhZF9kYXRhIF9zZXRfdmVyKHBhcnBvcnRfaWVlZTEyODRfZXBwX3JlYWRfZGF0YSkKI2RlZmlu ZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X2VwcF93cml0ZV9hZGRyIHNtcF82MTQ3NWQ1MgojZGVm aW5lIHBhcnBvcnRfaWVlZTEyODRfZXBwX3dyaXRlX2FkZHIgX3NldF92ZXIocGFycG9ydF9pZWVl MTI4NF9lcHBfd3JpdGVfYWRkcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X2VwcF9y ZWFkX2FkZHIgc21wXzY5OTUxNzM3CiNkZWZpbmUgcGFycG9ydF9pZWVlMTI4NF9lcHBfcmVhZF9h ZGRyIF9zZXRfdmVyKHBhcnBvcnRfaWVlZTEyODRfZXBwX3JlYWRfYWRkcikKI2RlZmluZSBfX3Zl cl9wYXJwb3J0X3Byb2NfcmVnaXN0ZXIgc21wX2U5MzdlMmU5CiNkZWZpbmUgcGFycG9ydF9wcm9j X3JlZ2lzdGVyIF9zZXRfdmVyKHBhcnBvcnRfcHJvY19yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9w YXJwb3J0X3Byb2NfdW5yZWdpc3RlciBzbXBfNTMxOTg5OTkKI2RlZmluZSBwYXJwb3J0X3Byb2Nf dW5yZWdpc3RlciBfc2V0X3ZlcihwYXJwb3J0X3Byb2NfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zl cl9wYXJwb3J0X2RldmljZV9wcm9jX3JlZ2lzdGVyIHNtcF83ZWQ1YzdjYgojZGVmaW5lIHBhcnBv cnRfZGV2aWNlX3Byb2NfcmVnaXN0ZXIgX3NldF92ZXIocGFycG9ydF9kZXZpY2VfcHJvY19yZWdp c3RlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2RldmljZV9wcm9jX3VucmVnaXN0ZXIgc21wX2Ri NGZmMjAxCiNkZWZpbmUgcGFycG9ydF9kZXZpY2VfcHJvY191bnJlZ2lzdGVyIF9zZXRfdmVyKHBh cnBvcnRfZGV2aWNlX3Byb2NfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2RlZmF1 bHRfcHJvY19yZWdpc3RlciBzbXBfMTA5YzhmOWEKI2RlZmluZSBwYXJwb3J0X2RlZmF1bHRfcHJv Y19yZWdpc3RlciBfc2V0X3ZlcihwYXJwb3J0X2RlZmF1bHRfcHJvY19yZWdpc3RlcikKI2RlZmlu ZSBfX3Zlcl9wYXJwb3J0X2RlZmF1bHRfcHJvY191bnJlZ2lzdGVyIHNtcF9kNzc1YjdmNAojZGVm aW5lIHBhcnBvcnRfZGVmYXVsdF9wcm9jX3VucmVnaXN0ZXIgX3NldF92ZXIocGFycG9ydF9kZWZh dWx0X3Byb2NfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3BhcnNlX2lycXMgc21w X2ZlM2EyODY3CiNkZWZpbmUgcGFycG9ydF9wYXJzZV9pcnFzIF9zZXRfdmVyKHBhcnBvcnRfcGFy c2VfaXJxcykKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3BhcnNlX2RtYXMgc21wX2M5NzZkZjBiCiNk ZWZpbmUgcGFycG9ydF9wYXJzZV9kbWFzIF9zZXRfdmVyKHBhcnBvcnRfcGFyc2VfZG1hcykKIyAx MDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pbnB1dC52ZXIi IDEKI2RlZmluZSBfX3Zlcl9pbnB1dF9yZWdpc3Rlcl9kZXZpY2Ugc21wXzYwZjc0NTNmCiNkZWZp bmUgaW5wdXRfcmVnaXN0ZXJfZGV2aWNlIF9zZXRfdmVyKGlucHV0X3JlZ2lzdGVyX2RldmljZSkK I2RlZmluZSBfX3Zlcl9pbnB1dF91bnJlZ2lzdGVyX2RldmljZSBzbXBfYWQzM2VhOTkKI2RlZmlu ZSBpbnB1dF91bnJlZ2lzdGVyX2RldmljZSBfc2V0X3ZlcihpbnB1dF91bnJlZ2lzdGVyX2Rldmlj ZSkKI2RlZmluZSBfX3Zlcl9pbnB1dF9yZWdpc3Rlcl9oYW5kbGVyIHNtcF83NmE3MjM4NQojZGVm aW5lIGlucHV0X3JlZ2lzdGVyX2hhbmRsZXIgX3NldF92ZXIoaW5wdXRfcmVnaXN0ZXJfaGFuZGxl cikKI2RlZmluZSBfX3Zlcl9pbnB1dF91bnJlZ2lzdGVyX2hhbmRsZXIgc21wXzc0M2FkNzdmCiNk ZWZpbmUgaW5wdXRfdW5yZWdpc3Rlcl9oYW5kbGVyIF9zZXRfdmVyKGlucHV0X3VucmVnaXN0ZXJf aGFuZGxlcikKI2RlZmluZSBfX3Zlcl9pbnB1dF9yZWdpc3Rlcl9taW5vciBzbXBfZTk4NmFkMDkK I2RlZmluZSBpbnB1dF9yZWdpc3Rlcl9taW5vciBfc2V0X3ZlcihpbnB1dF9yZWdpc3Rlcl9taW5v cikKI2RlZmluZSBfX3Zlcl9pbnB1dF91bnJlZ2lzdGVyX21pbm9yIHNtcF8zODI3YTMyZQojZGVm aW5lIGlucHV0X3VucmVnaXN0ZXJfbWlub3IgX3NldF92ZXIoaW5wdXRfdW5yZWdpc3Rlcl9taW5v cikKI2RlZmluZSBfX3Zlcl9pbnB1dF9vcGVuX2RldmljZSBzbXBfOWU3NWNiMDIKI2RlZmluZSBp bnB1dF9vcGVuX2RldmljZSBfc2V0X3ZlcihpbnB1dF9vcGVuX2RldmljZSkKI2RlZmluZSBfX3Zl cl9pbnB1dF9jbG9zZV9kZXZpY2Ugc21wX2Y0OTdiMmE5CiNkZWZpbmUgaW5wdXRfY2xvc2VfZGV2 aWNlIF9zZXRfdmVyKGlucHV0X2Nsb3NlX2RldmljZSkKI2RlZmluZSBfX3Zlcl9pbnB1dF9ldmVu dCBzbXBfNjM0ZTUyMTgKI2RlZmluZSBpbnB1dF9ldmVudCBfc2V0X3ZlcihpbnB1dF9ldmVudCkK IyAxMTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pby52ZXIi IDEKIyAxMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pcGNv bW1vbi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9za2JfbWlncmF0ZSBzbXBfZjYwNzc5OWEKI2RlZmlu ZSBza2JfbWlncmF0ZSBfc2V0X3Zlcihza2JfbWlncmF0ZSkKIyAxMTIgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pcF9jb25udHJhY2tfZnRwLnZlciIgMQojZGVm aW5lIF9fdmVyX2lwX2Z0cF9sb2NrIHNtcF83YzI3ZWY0YwojZGVmaW5lIGlwX2Z0cF9sb2NrIF9z ZXRfdmVyKGlwX2Z0cF9sb2NrKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19mdHAgc21wXzQz N2NkNzM1CiNkZWZpbmUgaXBfY29ubnRyYWNrX2Z0cCBfc2V0X3ZlcihpcF9jb25udHJhY2tfZnRw KQojIDExMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2lwX2Nv bm50cmFja19zdGFuZGFsb25lLnZlciIgMQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19wcm90 b2NvbF9yZWdpc3RlciBzbXBfMTJkYWQxM2EKI2RlZmluZSBpcF9jb25udHJhY2tfcHJvdG9jb2xf cmVnaXN0ZXIgX3NldF92ZXIoaXBfY29ubnRyYWNrX3Byb3RvY29sX3JlZ2lzdGVyKQojZGVmaW5l IF9fdmVyX2ludmVydF90dXBsZXByIHNtcF81ZTY4ZDhhOQojZGVmaW5lIGludmVydF90dXBsZXBy IF9zZXRfdmVyKGludmVydF90dXBsZXByKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19hbHRl cl9yZXBseSBzbXBfMjFkNzJlNjQKI2RlZmluZSBpcF9jb25udHJhY2tfYWx0ZXJfcmVwbHkgX3Nl dF92ZXIoaXBfY29ubnRyYWNrX2FsdGVyX3JlcGx5KQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFj a19kZXN0cm95ZWQgc21wXzFhZDM3NDcxCiNkZWZpbmUgaXBfY29ubnRyYWNrX2Rlc3Ryb3llZCBf c2V0X3ZlcihpcF9jb25udHJhY2tfZGVzdHJveWVkKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFj a19nZXQgc21wXzI4MDljNTRmCiNkZWZpbmUgaXBfY29ubnRyYWNrX2dldCBfc2V0X3ZlcihpcF9j b25udHJhY2tfZ2V0KQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19tb2R1bGUgc21wXzJhYTc3 NWZiCiNkZWZpbmUgaXBfY29ubnRyYWNrX21vZHVsZSBfc2V0X3ZlcihpcF9jb25udHJhY2tfbW9k dWxlKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19oZWxwZXJfcmVnaXN0ZXIgc21wX2NiOTY1 M2ViCiNkZWZpbmUgaXBfY29ubnRyYWNrX2hlbHBlcl9yZWdpc3RlciBfc2V0X3ZlcihpcF9jb25u dHJhY2tfaGVscGVyX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19oZWxwZXJf dW5yZWdpc3RlciBzbXBfZmQxNzU4ZmUKI2RlZmluZSBpcF9jb25udHJhY2tfaGVscGVyX3VucmVn aXN0ZXIgX3NldF92ZXIoaXBfY29ubnRyYWNrX2hlbHBlcl91bnJlZ2lzdGVyKQojZGVmaW5lIF9f dmVyX2lwX2N0X3NlbGVjdGl2ZV9jbGVhbnVwIHNtcF9kZmZlMGQ2MwojZGVmaW5lIGlwX2N0X3Nl bGVjdGl2ZV9jbGVhbnVwIF9zZXRfdmVyKGlwX2N0X3NlbGVjdGl2ZV9jbGVhbnVwKQojZGVmaW5l IF9fdmVyX2lwX2N0X3JlZnJlc2ggc21wXzljZGNjMzAwCiNkZWZpbmUgaXBfY3RfcmVmcmVzaCBf c2V0X3ZlcihpcF9jdF9yZWZyZXNoKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19leHBlY3Rf cmVsYXRlZCBzbXBfMDA3YjYyYTMKI2RlZmluZSBpcF9jb25udHJhY2tfZXhwZWN0X3JlbGF0ZWQg X3NldF92ZXIoaXBfY29ubnRyYWNrX2V4cGVjdF9yZWxhdGVkKQojZGVmaW5lIF9fdmVyX2lwX2Nv bm50cmFja190dXBsZV90YWtlbiBzbXBfZjNjYjU3ODUKI2RlZmluZSBpcF9jb25udHJhY2tfdHVw bGVfdGFrZW4gX3NldF92ZXIoaXBfY29ubnRyYWNrX3R1cGxlX3Rha2VuKQojZGVmaW5lIF9fdmVy X2lwX2N0X2dhdGhlcl9mcmFncyBzbXBfMDg4NTgzYWQKI2RlZmluZSBpcF9jdF9nYXRoZXJfZnJh Z3MgX3NldF92ZXIoaXBfY3RfZ2F0aGVyX2ZyYWdzKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFj a19odGFibGVfc2l6ZSBzbXBfOGVmOGFmNGMKI2RlZmluZSBpcF9jb25udHJhY2tfaHRhYmxlX3Np emUgX3NldF92ZXIoaXBfY29ubnRyYWNrX2h0YWJsZV9zaXplKQojIDExNCAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2lwX2Z3X2NvbXBhdC52ZXIiIDEKIyAxMTUg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pcF9ncmUudmVyIiAx CiMgMTE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgi IDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaXBpcC52 ZXIiIDEKIyAxMTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9p cF9uYXRfc3RhbmRhbG9uZS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9pcF9uYXRfc2V0dXBfaW5mbyBz bXBfMjcxYTAxNDMKI2RlZmluZSBpcF9uYXRfc2V0dXBfaW5mbyBfc2V0X3ZlcihpcF9uYXRfc2V0 dXBfaW5mbykKI2RlZmluZSBfX3Zlcl9pcF9uYXRfaGVscGVyX3JlZ2lzdGVyIHNtcF8xNzA4MjZj MAojZGVmaW5lIGlwX25hdF9oZWxwZXJfcmVnaXN0ZXIgX3NldF92ZXIoaXBfbmF0X2hlbHBlcl9y ZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9pcF9uYXRfaGVscGVyX3VucmVnaXN0ZXIgc21wX2JmZGQw MDdjCiNkZWZpbmUgaXBfbmF0X2hlbHBlcl91bnJlZ2lzdGVyIF9zZXRfdmVyKGlwX25hdF9oZWxw ZXJfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9pcF9uYXRfZXhwZWN0X3JlZ2lzdGVyIHNtcF9h NmNmNDYzYgojZGVmaW5lIGlwX25hdF9leHBlY3RfcmVnaXN0ZXIgX3NldF92ZXIoaXBfbmF0X2V4 cGVjdF9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9pcF9uYXRfZXhwZWN0X3VucmVnaXN0ZXIgc21w XzkzOGNmNGNkCiNkZWZpbmUgaXBfbmF0X2V4cGVjdF91bnJlZ2lzdGVyIF9zZXRfdmVyKGlwX25h dF9leHBlY3RfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9pcF9uYXRfY2hlYXRfY2hlY2sgc21w XzFlNGU3M2E4CiNkZWZpbmUgaXBfbmF0X2NoZWF0X2NoZWNrIF9zZXRfdmVyKGlwX25hdF9jaGVh dF9jaGVjaykKI2RlZmluZSBfX3Zlcl9pcF9uYXRfbWFuZ2xlX3RjcF9wYWNrZXQgc21wXzUzZTI4 OGE4CiNkZWZpbmUgaXBfbmF0X21hbmdsZV90Y3BfcGFja2V0IF9zZXRfdmVyKGlwX25hdF9tYW5n bGVfdGNwX3BhY2tldCkKI2RlZmluZSBfX3Zlcl9pcF9uYXRfc2VxX2FkanVzdCBzbXBfMzU3NjM1 NWMKI2RlZmluZSBpcF9uYXRfc2VxX2FkanVzdCBfc2V0X3ZlcihpcF9uYXRfc2VxX2FkanVzdCkK I2RlZmluZSBfX3Zlcl9pcF9uYXRfZGVsZXRlX3NhY2sgc21wXzc4NDk5Y2RhCiNkZWZpbmUgaXBf bmF0X2RlbGV0ZV9zYWNrIF9zZXRfdmVyKGlwX25hdF9kZWxldGVfc2FjaykKIyAxMTggIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pcF90YWJsZXMudmVyIiAxCiNk ZWZpbmUgX192ZXJfaXB0X3JlZ2lzdGVyX3RhYmxlIHNtcF9mNGZjYzU2MAojZGVmaW5lIGlwdF9y ZWdpc3Rlcl90YWJsZSBfc2V0X3ZlcihpcHRfcmVnaXN0ZXJfdGFibGUpCiNkZWZpbmUgX192ZXJf aXB0X3VucmVnaXN0ZXJfdGFibGUgc21wX2RiMWQ5YjA0CiNkZWZpbmUgaXB0X3VucmVnaXN0ZXJf dGFibGUgX3NldF92ZXIoaXB0X3VucmVnaXN0ZXJfdGFibGUpCiNkZWZpbmUgX192ZXJfaXB0X3Jl Z2lzdGVyX21hdGNoIHNtcF9jYjcxM2FmOAojZGVmaW5lIGlwdF9yZWdpc3Rlcl9tYXRjaCBfc2V0 X3ZlcihpcHRfcmVnaXN0ZXJfbWF0Y2gpCiNkZWZpbmUgX192ZXJfaXB0X3VucmVnaXN0ZXJfbWF0 Y2ggc21wXzgwYTQ1YjQzCiNkZWZpbmUgaXB0X3VucmVnaXN0ZXJfbWF0Y2ggX3NldF92ZXIoaXB0 X3VucmVnaXN0ZXJfbWF0Y2gpCiNkZWZpbmUgX192ZXJfaXB0X2RvX3RhYmxlIHNtcF85MjZmMWE5 ZAojZGVmaW5lIGlwdF9kb190YWJsZSBfc2V0X3ZlcihpcHRfZG9fdGFibGUpCiNkZWZpbmUgX192 ZXJfaXB0X3JlZ2lzdGVyX3RhcmdldCBzbXBfMjE5NjE4ZTAKI2RlZmluZSBpcHRfcmVnaXN0ZXJf dGFyZ2V0IF9zZXRfdmVyKGlwdF9yZWdpc3Rlcl90YXJnZXQpCiNkZWZpbmUgX192ZXJfaXB0X3Vu cmVnaXN0ZXJfdGFyZ2V0IHNtcF9iNjRkY2I3OQojZGVmaW5lIGlwdF91bnJlZ2lzdGVyX3Rhcmdl dCBfc2V0X3ZlcihpcHRfdW5yZWdpc3Rlcl90YXJnZXQpCiMgMTE5ICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaXJwb3J0LnZlciIgMQojZGVmaW5lIF9fdmVyX2ly cG9ydF9vcGVuIHNtcF83NTM5ZWVkYgojZGVmaW5lIGlycG9ydF9vcGVuIF9zZXRfdmVyKGlycG9y dF9vcGVuKQojZGVmaW5lIF9fdmVyX2lycG9ydF9jbG9zZSBzbXBfNjllYmFiYzAKI2RlZmluZSBp cnBvcnRfY2xvc2UgX3NldF92ZXIoaXJwb3J0X2Nsb3NlKQojZGVmaW5lIF9fdmVyX2lycG9ydF9z dGFydCBzbXBfNWJjYmE5YzMKI2RlZmluZSBpcnBvcnRfc3RhcnQgX3NldF92ZXIoaXJwb3J0X3N0 YXJ0KQojZGVmaW5lIF9fdmVyX2lycG9ydF9zdG9wIHNtcF82MDJkY2U5YQojZGVmaW5lIGlycG9y dF9zdG9wIF9zZXRfdmVyKGlycG9ydF9zdG9wKQojZGVmaW5lIF9fdmVyX2lycG9ydF9pbnRlcnJ1 cHQgc21wXzAxZDRmNmMwCiNkZWZpbmUgaXJwb3J0X2ludGVycnVwdCBfc2V0X3ZlcihpcnBvcnRf aW50ZXJydXB0KQojZGVmaW5lIF9fdmVyX2lycG9ydF9oYXJkX3htaXQgc21wX2M3MDllMWE0CiNk ZWZpbmUgaXJwb3J0X2hhcmRfeG1pdCBfc2V0X3ZlcihpcnBvcnRfaGFyZF94bWl0KQojZGVmaW5l IF9fdmVyX2lycG9ydF90aW1lb3V0IHNtcF9kZDNjZjZkMAojZGVmaW5lIGlycG9ydF90aW1lb3V0 IF9zZXRfdmVyKGlycG9ydF90aW1lb3V0KQojZGVmaW5lIF9fdmVyX2lycG9ydF9jaGFuZ2Vfc3Bl ZWQgc21wXzA3MDI3YTBiCiNkZWZpbmUgaXJwb3J0X2NoYW5nZV9zcGVlZCBfc2V0X3ZlcihpcnBv cnRfY2hhbmdlX3NwZWVkKQojZGVmaW5lIF9fdmVyX2lycG9ydF9uZXRfb3BlbiBzbXBfY2M4MjE5 YmIKI2RlZmluZSBpcnBvcnRfbmV0X29wZW4gX3NldF92ZXIoaXJwb3J0X25ldF9vcGVuKQojZGVm aW5lIF9fdmVyX2lycG9ydF9uZXRfY2xvc2Ugc21wXzUyNWUyYmI4CiNkZWZpbmUgaXJwb3J0X25l dF9jbG9zZSBfc2V0X3ZlcihpcnBvcnRfbmV0X2Nsb3NlKQojIDEyMCAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2lyc3ltcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9p cnR0cF9vcGVuX3RzYXAgc21wXzE0ODBiMzEzCiNkZWZpbmUgaXJ0dHBfb3Blbl90c2FwIF9zZXRf dmVyKGlydHRwX29wZW5fdHNhcCkKI2RlZmluZSBfX3Zlcl9pcnR0cF9jbG9zZV90c2FwIHNtcF8z NzliNGI4YgojZGVmaW5lIGlydHRwX2Nsb3NlX3RzYXAgX3NldF92ZXIoaXJ0dHBfY2xvc2VfdHNh cCkKI2RlZmluZSBfX3Zlcl9pcnR0cF9jb25uZWN0X3Jlc3BvbnNlIHNtcF81NjdmNWQ4OAojZGVm aW5lIGlydHRwX2Nvbm5lY3RfcmVzcG9uc2UgX3NldF92ZXIoaXJ0dHBfY29ubmVjdF9yZXNwb25z ZSkKI2RlZmluZSBfX3Zlcl9pcnR0cF9kYXRhX3JlcXVlc3Qgc21wX2NmNWU0MjlkCiNkZWZpbmUg aXJ0dHBfZGF0YV9yZXF1ZXN0IF9zZXRfdmVyKGlydHRwX2RhdGFfcmVxdWVzdCkKI2RlZmluZSBf X3Zlcl9pcnR0cF9kaXNjb25uZWN0X3JlcXVlc3Qgc21wXzlhMzU1NjA5CiNkZWZpbmUgaXJ0dHBf ZGlzY29ubmVjdF9yZXF1ZXN0IF9zZXRfdmVyKGlydHRwX2Rpc2Nvbm5lY3RfcmVxdWVzdCkKI2Rl ZmluZSBfX3Zlcl9pcnR0cF9mbG93X3JlcXVlc3Qgc21wXzUxYTE3NzgwCiNkZWZpbmUgaXJ0dHBf Zmxvd19yZXF1ZXN0IF9zZXRfdmVyKGlydHRwX2Zsb3dfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9p cnR0cF9jb25uZWN0X3JlcXVlc3Qgc21wXzQwM2YyMjUzCiNkZWZpbmUgaXJ0dHBfY29ubmVjdF9y ZXF1ZXN0IF9zZXRfdmVyKGlydHRwX2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcnR0 cF91ZGF0YV9yZXF1ZXN0IHNtcF9jMGI4MzQ1MwojZGVmaW5lIGlydHRwX3VkYXRhX3JlcXVlc3Qg X3NldF92ZXIoaXJ0dHBfdWRhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcnR0cF9kdXAgc21w Xzg0MTA3MTQ4CiNkZWZpbmUgaXJ0dHBfZHVwIF9zZXRfdmVyKGlydHRwX2R1cCkKI2RlZmluZSBf X3Zlcl9pcmRhX25vdGlmeV9pbml0IHNtcF8zNTQ3ZjBhNQojZGVmaW5lIGlyZGFfbm90aWZ5X2lu aXQgX3NldF92ZXIoaXJkYV9ub3RpZnlfaW5pdCkKI2RlZmluZSBfX3Zlcl9pcmRhX2xvY2sgc21w X2M1ODhkNTA4CiNkZWZpbmUgaXJkYV9sb2NrIF9zZXRfdmVyKGlyZGFfbG9jaykKI2RlZmluZSBf X3Zlcl9wcm9jX2lyZGEgc21wX2UwY2NiODM5CiNkZWZpbmUgcHJvY19pcmRhIF9zZXRfdmVyKHBy b2NfaXJkYSkKI2RlZmluZSBfX3Zlcl9pcmRhX3BhcmFtX2luc2VydCBzbXBfMGRhYjAyYTAKI2Rl ZmluZSBpcmRhX3BhcmFtX2luc2VydCBfc2V0X3ZlcihpcmRhX3BhcmFtX2luc2VydCkKI2RlZmlu ZSBfX3Zlcl9pcmRhX3BhcmFtX2V4dHJhY3Qgc21wX2RlNTFlMzNlCiNkZWZpbmUgaXJkYV9wYXJh bV9leHRyYWN0IF9zZXRfdmVyKGlyZGFfcGFyYW1fZXh0cmFjdCkKI2RlZmluZSBfX3Zlcl9pcmRh X3BhcmFtX2V4dHJhY3RfYWxsIHNtcF9mMzZiNTBiMQojZGVmaW5lIGlyZGFfcGFyYW1fZXh0cmFj dF9hbGwgX3NldF92ZXIoaXJkYV9wYXJhbV9leHRyYWN0X2FsbCkKI2RlZmluZSBfX3Zlcl9pcmRh X3BhcmFtX3BhY2sgc21wXzkxODE1NTg2CiNkZWZpbmUgaXJkYV9wYXJhbV9wYWNrIF9zZXRfdmVy KGlyZGFfcGFyYW1fcGFjaykKI2RlZmluZSBfX3Zlcl9pcmRhX3BhcmFtX3VucGFjayBzbXBfNzMw YzM1Y2UKI2RlZmluZSBpcmRhX3BhcmFtX3VucGFjayBfc2V0X3ZlcihpcmRhX3BhcmFtX3VucGFj aykKI2RlZmluZSBfX3Zlcl9pcmlhcF9vcGVuIHNtcF9hMTliOWFlYQojZGVmaW5lIGlyaWFwX29w ZW4gX3NldF92ZXIoaXJpYXBfb3BlbikKI2RlZmluZSBfX3Zlcl9pcmlhcF9jbG9zZSBzbXBfMjZk ZGU0MDkKI2RlZmluZSBpcmlhcF9jbG9zZSBfc2V0X3ZlcihpcmlhcF9jbG9zZSkKI2RlZmluZSBf X3Zlcl9pcmlhcF9nZXR2YWx1ZWJ5Y2xhc3NfcmVxdWVzdCBzbXBfNjMxNzY5NWYKI2RlZmluZSBp cmlhcF9nZXR2YWx1ZWJ5Y2xhc3NfcmVxdWVzdCBfc2V0X3ZlcihpcmlhcF9nZXR2YWx1ZWJ5Y2xh c3NfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmlhc19vYmplY3RfY2hhbmdlX2F0dHJpYnV0ZSBz bXBfYmNkM2VmMTMKI2RlZmluZSBpcmlhc19vYmplY3RfY2hhbmdlX2F0dHJpYnV0ZSBfc2V0X3Zl cihpcmlhc19vYmplY3RfY2hhbmdlX2F0dHJpYnV0ZSkKI2RlZmluZSBfX3Zlcl9pcmlhc19hZGRf aW50ZWdlcl9hdHRyaWIgc21wX2Q0NjZkY2JlCiNkZWZpbmUgaXJpYXNfYWRkX2ludGVnZXJfYXR0 cmliIF9zZXRfdmVyKGlyaWFzX2FkZF9pbnRlZ2VyX2F0dHJpYikKI2RlZmluZSBfX3Zlcl9pcmlh c19hZGRfb2N0c2VxX2F0dHJpYiBzbXBfNzRlNzBhZDYKI2RlZmluZSBpcmlhc19hZGRfb2N0c2Vx X2F0dHJpYiBfc2V0X3Zlcihpcmlhc19hZGRfb2N0c2VxX2F0dHJpYikKI2RlZmluZSBfX3Zlcl9p cmlhc19hZGRfc3RyaW5nX2F0dHJpYiBzbXBfYjgzMmM1NzAKI2RlZmluZSBpcmlhc19hZGRfc3Ry aW5nX2F0dHJpYiBfc2V0X3Zlcihpcmlhc19hZGRfc3RyaW5nX2F0dHJpYikKI2RlZmluZSBfX3Zl cl9pcmlhc19pbnNlcnRfb2JqZWN0IHNtcF85MWNiNGQxNAojZGVmaW5lIGlyaWFzX2luc2VydF9v YmplY3QgX3NldF92ZXIoaXJpYXNfaW5zZXJ0X29iamVjdCkKI2RlZmluZSBfX3Zlcl9pcmlhc19u ZXdfb2JqZWN0IHNtcF9iYTA2ZTI1MQojZGVmaW5lIGlyaWFzX25ld19vYmplY3QgX3NldF92ZXIo aXJpYXNfbmV3X29iamVjdCkKI2RlZmluZSBfX3Zlcl9pcmlhc19kZWxldGVfb2JqZWN0IHNtcF80 MTUzNTZjYwojZGVmaW5lIGlyaWFzX2RlbGV0ZV9vYmplY3QgX3NldF92ZXIoaXJpYXNfZGVsZXRl X29iamVjdCkKI2RlZmluZSBfX3Zlcl9pcmlhc19kZWxldGVfdmFsdWUgc21wX2I5Mzk0MTczCiNk ZWZpbmUgaXJpYXNfZGVsZXRlX3ZhbHVlIF9zZXRfdmVyKGlyaWFzX2RlbGV0ZV92YWx1ZSkKI2Rl ZmluZSBfX3Zlcl9pcmlhc19maW5kX29iamVjdCBzbXBfY2FhOGQwYzYKI2RlZmluZSBpcmlhc19m aW5kX29iamVjdCBfc2V0X3Zlcihpcmlhc19maW5kX29iamVjdCkKI2RlZmluZSBfX3Zlcl9pcmlh c19maW5kX2F0dHJpYiBzbXBfZWY5MGY5YWYKI2RlZmluZSBpcmlhc19maW5kX2F0dHJpYiBfc2V0 X3Zlcihpcmlhc19maW5kX2F0dHJpYikKI2RlZmluZSBfX3Zlcl9pcmlhc19uZXdfaW50ZWdlcl92 YWx1ZSBzbXBfMDZhM2VlNTgKI2RlZmluZSBpcmlhc19uZXdfaW50ZWdlcl92YWx1ZSBfc2V0X3Zl cihpcmlhc19uZXdfaW50ZWdlcl92YWx1ZSkKI2RlZmluZSBfX3Zlcl9pcmlhc19uZXdfc3RyaW5n X3ZhbHVlIHNtcF8zOGRkZTRlMQojZGVmaW5lIGlyaWFzX25ld19zdHJpbmdfdmFsdWUgX3NldF92 ZXIoaXJpYXNfbmV3X3N0cmluZ192YWx1ZSkKI2RlZmluZSBfX3Zlcl9pcmlhc19uZXdfb2N0c2Vx X3ZhbHVlIHNtcF81OTFkMWJiZAojZGVmaW5lIGlyaWFzX25ld19vY3RzZXFfdmFsdWUgX3NldF92 ZXIoaXJpYXNfbmV3X29jdHNlcV92YWx1ZSkKI2RlZmluZSBfX3Zlcl9pcmxtcF9kaXNjb3Zlcnlf cmVxdWVzdCBzbXBfYmU0MGFjZTkKI2RlZmluZSBpcmxtcF9kaXNjb3ZlcnlfcmVxdWVzdCBfc2V0 X3ZlcihpcmxtcF9kaXNjb3ZlcnlfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9nZXRfZGlz Y292ZXJpZXMgc21wXzUxM2ZiYzdmCiNkZWZpbmUgaXJsbXBfZ2V0X2Rpc2NvdmVyaWVzIF9zZXRf dmVyKGlybG1wX2dldF9kaXNjb3ZlcmllcykKI2RlZmluZSBfX3Zlcl9zeXNjdGxfZGlzY292ZXJ5 X3RpbWVvdXQgc21wXzYxOTY1OTcyCiNkZWZpbmUgc3lzY3RsX2Rpc2NvdmVyeV90aW1lb3V0IF9z ZXRfdmVyKHN5c2N0bF9kaXNjb3ZlcnlfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9yZWdp c3Rlcl9jbGllbnQgc21wXzE3ZjE4YmZiCiNkZWZpbmUgaXJsbXBfcmVnaXN0ZXJfY2xpZW50IF9z ZXRfdmVyKGlybG1wX3JlZ2lzdGVyX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9pcmxtcF91bnJlZ2lz dGVyX2NsaWVudCBzbXBfY2VkNjQ2N2IKI2RlZmluZSBpcmxtcF91bnJlZ2lzdGVyX2NsaWVudCBf c2V0X3ZlcihpcmxtcF91bnJlZ2lzdGVyX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9pcmxtcF91cGRh dGVfY2xpZW50IHNtcF9jNmE0MmJmZgojZGVmaW5lIGlybG1wX3VwZGF0ZV9jbGllbnQgX3NldF92 ZXIoaXJsbXBfdXBkYXRlX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9yZWdpc3Rlcl9zZXJ2 aWNlIHNtcF9lNmZlNmMzMQojZGVmaW5lIGlybG1wX3JlZ2lzdGVyX3NlcnZpY2UgX3NldF92ZXIo aXJsbXBfcmVnaXN0ZXJfc2VydmljZSkKI2RlZmluZSBfX3Zlcl9pcmxtcF91bnJlZ2lzdGVyX3Nl cnZpY2Ugc21wXzZiMjg0NWQyCiNkZWZpbmUgaXJsbXBfdW5yZWdpc3Rlcl9zZXJ2aWNlIF9zZXRf dmVyKGlybG1wX3VucmVnaXN0ZXJfc2VydmljZSkKI2RlZmluZSBfX3Zlcl9pcmxtcF9zZXJ2aWNl X3RvX2hpbnQgc21wX2RlNGM2YjNjCiNkZWZpbmUgaXJsbXBfc2VydmljZV90b19oaW50IF9zZXRf dmVyKGlybG1wX3NlcnZpY2VfdG9faGludCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9kYXRhX3JlcXVl c3Qgc21wXzM1ODA0MTRkCiNkZWZpbmUgaXJsbXBfZGF0YV9yZXF1ZXN0IF9zZXRfdmVyKGlybG1w X2RhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9vcGVuX2xzYXAgc21wXzYxMDA2ZDhl CiNkZWZpbmUgaXJsbXBfb3Blbl9sc2FwIF9zZXRfdmVyKGlybG1wX29wZW5fbHNhcCkKI2RlZmlu ZSBfX3Zlcl9pcmxtcF9jbG9zZV9sc2FwIHNtcF9jMTlmNDFiNwojZGVmaW5lIGlybG1wX2Nsb3Nl X2xzYXAgX3NldF92ZXIoaXJsbXBfY2xvc2VfbHNhcCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9jb25u ZWN0X3JlcXVlc3Qgc21wXzFiZDkyMjE5CiNkZWZpbmUgaXJsbXBfY29ubmVjdF9yZXF1ZXN0IF9z ZXRfdmVyKGlybG1wX2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9jb25uZWN0 X3Jlc3BvbnNlIHNtcF81N2YxMmRjNgojZGVmaW5lIGlybG1wX2Nvbm5lY3RfcmVzcG9uc2UgX3Nl dF92ZXIoaXJsbXBfY29ubmVjdF9yZXNwb25zZSkKI2RlZmluZSBfX3Zlcl9pcmxtcF9kaXNjb25u ZWN0X3JlcXVlc3Qgc21wX2FkYmJmN2EzCiNkZWZpbmUgaXJsbXBfZGlzY29ubmVjdF9yZXF1ZXN0 IF9zZXRfdmVyKGlybG1wX2Rpc2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9n ZXRfZGFkZHIgc21wX2I5NzMwNzY4CiNkZWZpbmUgaXJsbXBfZ2V0X2RhZGRyIF9zZXRfdmVyKGly bG1wX2dldF9kYWRkcikKI2RlZmluZSBfX3Zlcl9pcmxtcF9nZXRfc2FkZHIgc21wX2QyOTExMTNl CiNkZWZpbmUgaXJsbXBfZ2V0X3NhZGRyIF9zZXRfdmVyKGlybG1wX2dldF9zYWRkcikKI2RlZmlu ZSBfX3Zlcl9pcmxtcF9kdXAgc21wX2I2ODEwMjc0CiNkZWZpbmUgaXJsbXBfZHVwIF9zZXRfdmVy KGlybG1wX2R1cCkKI2RlZmluZSBfX3Zlcl9sbXBfcmVhc29ucyBzbXBfMzJkM2Y1M2YKI2RlZmlu ZSBsbXBfcmVhc29ucyBfc2V0X3ZlcihsbXBfcmVhc29ucykKI2RlZmluZSBfX3Zlcl9oYXNoYmlu X2ZpbmQgc21wX2YwZDZlMTU0CiNkZWZpbmUgaGFzaGJpbl9maW5kIF9zZXRfdmVyKGhhc2hiaW5f ZmluZCkKI2RlZmluZSBfX3Zlcl9oYXNoYmluX25ldyBzbXBfZDVmYzNjNjgKI2RlZmluZSBoYXNo YmluX25ldyBfc2V0X3ZlcihoYXNoYmluX25ldykKI2RlZmluZSBfX3Zlcl9oYXNoYmluX2luc2Vy dCBzbXBfNDQyYmFjNDcKI2RlZmluZSBoYXNoYmluX2luc2VydCBfc2V0X3ZlcihoYXNoYmluX2lu c2VydCkKI2RlZmluZSBfX3Zlcl9oYXNoYmluX2RlbGV0ZSBzbXBfYjQ1YjUwMzcKI2RlZmluZSBo YXNoYmluX2RlbGV0ZSBfc2V0X3ZlcihoYXNoYmluX2RlbGV0ZSkKI2RlZmluZSBfX3Zlcl9oYXNo YmluX3JlbW92ZSBzbXBfNDg0YmQ3YWIKI2RlZmluZSBoYXNoYmluX3JlbW92ZSBfc2V0X3Zlciho YXNoYmluX3JlbW92ZSkKI2RlZmluZSBfX3Zlcl9oYXNoYmluX3JlbW92ZV90aGlzIHNtcF9iZmNi YWE3MAojZGVmaW5lIGhhc2hiaW5fcmVtb3ZlX3RoaXMgX3NldF92ZXIoaGFzaGJpbl9yZW1vdmVf dGhpcykKI2RlZmluZSBfX3Zlcl9oYXNoYmluX2dldF9uZXh0IHNtcF8wNzk5MGYwNAojZGVmaW5l IGhhc2hiaW5fZ2V0X25leHQgX3NldF92ZXIoaGFzaGJpbl9nZXRfbmV4dCkKI2RlZmluZSBfX3Zl cl9oYXNoYmluX2dldF9maXJzdCBzbXBfNzlkOTI3YTAKI2RlZmluZSBoYXNoYmluX2dldF9maXJz dCBfc2V0X3ZlcihoYXNoYmluX2dldF9maXJzdCkKI2RlZmluZSBfX3Zlcl9pcmxhcF9vcGVuIHNt cF8wODBhNGExNAojZGVmaW5lIGlybGFwX29wZW4gX3NldF92ZXIoaXJsYXBfb3BlbikKI2RlZmlu ZSBfX3Zlcl9pcmxhcF9jbG9zZSBzbXBfNmJkNTJmMjkKI2RlZmluZSBpcmxhcF9jbG9zZSBfc2V0 X3ZlcihpcmxhcF9jbG9zZSkKI2RlZmluZSBfX3Zlcl9pcmRhX2luaXRfbWF4X3Fvc19jYXBhYmls aWVzIHNtcF82YjA0M2ViYQojZGVmaW5lIGlyZGFfaW5pdF9tYXhfcW9zX2NhcGFiaWxpZXMgX3Nl dF92ZXIoaXJkYV9pbml0X21heF9xb3NfY2FwYWJpbGllcykKI2RlZmluZSBfX3Zlcl9pcmRhX3Fv c19iaXRzX3RvX3ZhbHVlIHNtcF80NDhiOGFhYQojZGVmaW5lIGlyZGFfcW9zX2JpdHNfdG9fdmFs dWUgX3NldF92ZXIoaXJkYV9xb3NfYml0c190b192YWx1ZSkKI2RlZmluZSBfX3Zlcl9pcmRhX2Rl dmljZV9zZXR1cCBzbXBfNjZkNTAwYzAKI2RlZmluZSBpcmRhX2RldmljZV9zZXR1cCBfc2V0X3Zl cihpcmRhX2RldmljZV9zZXR1cCkKI2RlZmluZSBfX3Zlcl9pcmRhX2RldmljZV9zZXRfbWVkaWFf YnVzeSBzbXBfYjkxYTczNDQKI2RlZmluZSBpcmRhX2RldmljZV9zZXRfbWVkaWFfYnVzeSBfc2V0 X3ZlcihpcmRhX2RldmljZV9zZXRfbWVkaWFfYnVzeSkKI2RlZmluZSBfX3Zlcl9pcmRhX2Rldmlj ZV90eHF1ZXVlX2VtcHR5IHNtcF9mYzgzNTRjYQojZGVmaW5lIGlyZGFfZGV2aWNlX3R4cXVldWVf ZW1wdHkgX3NldF92ZXIoaXJkYV9kZXZpY2VfdHhxdWV1ZV9lbXB0eSkKI2RlZmluZSBfX3Zlcl9p cmRhX2RldmljZV9kb25nbGVfaW5pdCBzbXBfMmNiNGM3MzgKI2RlZmluZSBpcmRhX2RldmljZV9k b25nbGVfaW5pdCBfc2V0X3ZlcihpcmRhX2RldmljZV9kb25nbGVfaW5pdCkKI2RlZmluZSBfX3Zl cl9pcmRhX2RldmljZV9kb25nbGVfY2xlYW51cCBzbXBfNGUwMzgxYzMKI2RlZmluZSBpcmRhX2Rl dmljZV9kb25nbGVfY2xlYW51cCBfc2V0X3ZlcihpcmRhX2RldmljZV9kb25nbGVfY2xlYW51cCkK I2RlZmluZSBfX3Zlcl9pcmRhX2RldmljZV9yZWdpc3Rlcl9kb25nbGUgc21wX2RjODMxMDY5CiNk ZWZpbmUgaXJkYV9kZXZpY2VfcmVnaXN0ZXJfZG9uZ2xlIF9zZXRfdmVyKGlyZGFfZGV2aWNlX3Jl Z2lzdGVyX2RvbmdsZSkKI2RlZmluZSBfX3Zlcl9pcmRhX2RldmljZV91bnJlZ2lzdGVyX2Rvbmds ZSBzbXBfZTYwNTM3MmMKI2RlZmluZSBpcmRhX2RldmljZV91bnJlZ2lzdGVyX2RvbmdsZSBfc2V0 X3ZlcihpcmRhX2RldmljZV91bnJlZ2lzdGVyX2RvbmdsZSkKI2RlZmluZSBfX3Zlcl9pcmRhX3Rh c2tfZXhlY3V0ZSBzbXBfZmZhYTgyZmUKI2RlZmluZSBpcmRhX3Rhc2tfZXhlY3V0ZSBfc2V0X3Zl cihpcmRhX3Rhc2tfZXhlY3V0ZSkKI2RlZmluZSBfX3Zlcl9pcmRhX3Rhc2tfa2ljayBzbXBfNmI5 ODgxMTQKI2RlZmluZSBpcmRhX3Rhc2tfa2ljayBfc2V0X3ZlcihpcmRhX3Rhc2tfa2ljaykKI2Rl ZmluZSBfX3Zlcl9pcmRhX3Rhc2tfbmV4dF9zdGF0ZSBzbXBfZmI2ZjBiOTMKI2RlZmluZSBpcmRh X3Rhc2tfbmV4dF9zdGF0ZSBfc2V0X3ZlcihpcmRhX3Rhc2tfbmV4dF9zdGF0ZSkKI2RlZmluZSBf X3Zlcl9pcmRhX3Rhc2tfZGVsZXRlIHNtcF80MmUyMWM2NAojZGVmaW5lIGlyZGFfdGFza19kZWxl dGUgX3NldF92ZXIoaXJkYV90YXNrX2RlbGV0ZSkKI2RlZmluZSBfX3Zlcl9hc3luY193cmFwX3Nr YiBzbXBfMmI5MTM0NWIKI2RlZmluZSBhc3luY193cmFwX3NrYiBfc2V0X3Zlcihhc3luY193cmFw X3NrYikKI2RlZmluZSBfX3Zlcl9hc3luY191bndyYXBfY2hhciBzbXBfMmFmMmFhZWYKI2RlZmlu ZSBhc3luY191bndyYXBfY2hhciBfc2V0X3Zlcihhc3luY191bndyYXBfY2hhcikKI2RlZmluZSBf X3Zlcl9pcmRhX3N0YXJ0X3RpbWVyIHNtcF84ZDdmMDM5YwojZGVmaW5lIGlyZGFfc3RhcnRfdGlt ZXIgX3NldF92ZXIoaXJkYV9zdGFydF90aW1lcikKI2RlZmluZSBfX3Zlcl9zZXR1cF9kbWEgc21w XzAxNDg1OTUzCiNkZWZpbmUgc2V0dXBfZG1hIF9zZXRfdmVyKHNldHVwX2RtYSkKI2RlZmluZSBf X3Zlcl9pbmZyYXJlZF9tb2RlIHNtcF84Y2RmODExYwojZGVmaW5lIGluZnJhcmVkX21vZGUgX3Nl dF92ZXIoaW5mcmFyZWRfbW9kZSkKIyAxMjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvbW9kdWxlcy9pc2FwbnAudmVyIiAxCiNkZWZpbmUgX192ZXJfaXNhcG5wX2NhcmRzIHNt cF81OTNkYmZkMgojZGVmaW5lIGlzYXBucF9jYXJkcyBfc2V0X3Zlcihpc2FwbnBfY2FyZHMpCiNk ZWZpbmUgX192ZXJfaXNhcG5wX2RldmljZXMgc21wXzJkYjZmYmE2CiNkZWZpbmUgaXNhcG5wX2Rl dmljZXMgX3NldF92ZXIoaXNhcG5wX2RldmljZXMpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3ByZXNl bnQgc21wX2JmOGIzOWU5CiNkZWZpbmUgaXNhcG5wX3ByZXNlbnQgX3NldF92ZXIoaXNhcG5wX3By ZXNlbnQpCiNkZWZpbmUgX192ZXJfaXNhcG5wX2NmZ19iZWdpbiBzbXBfNzcwYTAwMzYKI2RlZmlu ZSBpc2FwbnBfY2ZnX2JlZ2luIF9zZXRfdmVyKGlzYXBucF9jZmdfYmVnaW4pCiNkZWZpbmUgX192 ZXJfaXNhcG5wX2NmZ19lbmQgc21wXzI4YjcxNWE2CiNkZWZpbmUgaXNhcG5wX2NmZ19lbmQgX3Nl dF92ZXIoaXNhcG5wX2NmZ19lbmQpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3JlYWRfYnl0ZSBzbXBf ZTNiZTgyYjQKI2RlZmluZSBpc2FwbnBfcmVhZF9ieXRlIF9zZXRfdmVyKGlzYXBucF9yZWFkX2J5 dGUpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3JlYWRfd29yZCBzbXBfYmYzZDc2NzAKI2RlZmluZSBp c2FwbnBfcmVhZF93b3JkIF9zZXRfdmVyKGlzYXBucF9yZWFkX3dvcmQpCiNkZWZpbmUgX192ZXJf aXNhcG5wX3JlYWRfZHdvcmQgc21wX2NmYmY3MjQ3CiNkZWZpbmUgaXNhcG5wX3JlYWRfZHdvcmQg X3NldF92ZXIoaXNhcG5wX3JlYWRfZHdvcmQpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3dyaXRlX2J5 dGUgc21wX2RhOGZkNDk1CiNkZWZpbmUgaXNhcG5wX3dyaXRlX2J5dGUgX3NldF92ZXIoaXNhcG5w X3dyaXRlX2J5dGUpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3dyaXRlX3dvcmQgc21wXzZhZWQzYTI0 CiNkZWZpbmUgaXNhcG5wX3dyaXRlX3dvcmQgX3NldF92ZXIoaXNhcG5wX3dyaXRlX3dvcmQpCiNk ZWZpbmUgX192ZXJfaXNhcG5wX3dyaXRlX2R3b3JkIHNtcF9kN2RjNTk5YQojZGVmaW5lIGlzYXBu cF93cml0ZV9kd29yZCBfc2V0X3Zlcihpc2FwbnBfd3JpdGVfZHdvcmQpCiNkZWZpbmUgX192ZXJf aXNhcG5wX3dha2Ugc21wX2ZjNGUyMTQwCiNkZWZpbmUgaXNhcG5wX3dha2UgX3NldF92ZXIoaXNh cG5wX3dha2UpCiNkZWZpbmUgX192ZXJfaXNhcG5wX2RldmljZSBzbXBfZTAwNDg5ZWYKI2RlZmlu ZSBpc2FwbnBfZGV2aWNlIF9zZXRfdmVyKGlzYXBucF9kZXZpY2UpCiNkZWZpbmUgX192ZXJfaXNh cG5wX2FjdGl2YXRlIHNtcF8yZWU2NmI0MQojZGVmaW5lIGlzYXBucF9hY3RpdmF0ZSBfc2V0X3Zl cihpc2FwbnBfYWN0aXZhdGUpCiNkZWZpbmUgX192ZXJfaXNhcG5wX2RlYWN0aXZhdGUgc21wX2U1 YmMzMDQwCiNkZWZpbmUgaXNhcG5wX2RlYWN0aXZhdGUgX3NldF92ZXIoaXNhcG5wX2RlYWN0aXZh dGUpCiNkZWZpbmUgX192ZXJfaXNhcG5wX2ZpbmRfY2FyZCBzbXBfYmFlOGI3OTAKI2RlZmluZSBp c2FwbnBfZmluZF9jYXJkIF9zZXRfdmVyKGlzYXBucF9maW5kX2NhcmQpCiNkZWZpbmUgX192ZXJf aXNhcG5wX2ZpbmRfZGV2IHNtcF8yMmRkZWU3NgojZGVmaW5lIGlzYXBucF9maW5kX2RldiBfc2V0 X3Zlcihpc2FwbnBfZmluZF9kZXYpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3Byb2JlX2NhcmRzIHNt cF8xNTc4MTczMgojZGVmaW5lIGlzYXBucF9wcm9iZV9jYXJkcyBfc2V0X3Zlcihpc2FwbnBfcHJv YmVfY2FyZHMpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3Byb2JlX2RldnMgc21wXzU0NDQyZGViCiNk ZWZpbmUgaXNhcG5wX3Byb2JlX2RldnMgX3NldF92ZXIoaXNhcG5wX3Byb2JlX2RldnMpCiNkZWZp bmUgX192ZXJfaXNhcG5wX2FjdGl2YXRlX2RldiBzbXBfNWJiZTBlZTMKI2RlZmluZSBpc2FwbnBf YWN0aXZhdGVfZGV2IF9zZXRfdmVyKGlzYXBucF9hY3RpdmF0ZV9kZXYpCiNkZWZpbmUgX192ZXJf aXNhcG5wX3Jlc291cmNlX2NoYW5nZSBzbXBfMDliOTY1YWYKI2RlZmluZSBpc2FwbnBfcmVzb3Vy Y2VfY2hhbmdlIF9zZXRfdmVyKGlzYXBucF9yZXNvdXJjZV9jaGFuZ2UpCiMgMTIyICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaXNkbl9jb21tb24udmVyIiAxCiNk ZWZpbmUgX192ZXJfcmVnaXN0ZXJfaXNkbiBzbXBfZTk2MTJjYjEKI2RlZmluZSByZWdpc3Rlcl9p c2RuIF9zZXRfdmVyKHJlZ2lzdGVyX2lzZG4pCiMgMTIzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L21vZHVsZXMvaXNlbnNlLnZlciIgMQojIDEyNCAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2tjYXBpLnZlciIgMQojZGVmaW5lIF9fdmVyX2F0 dGFjaF9jYXBpX2ludGVyZmFjZSBzbXBfNTU0OTA2ODcKI2RlZmluZSBhdHRhY2hfY2FwaV9pbnRl cmZhY2UgX3NldF92ZXIoYXR0YWNoX2NhcGlfaW50ZXJmYWNlKQojZGVmaW5lIF9fdmVyX2RldGFj aF9jYXBpX2ludGVyZmFjZSBzbXBfODNjNzEyMzIKI2RlZmluZSBkZXRhY2hfY2FwaV9pbnRlcmZh Y2UgX3NldF92ZXIoZGV0YWNoX2NhcGlfaW50ZXJmYWNlKQojZGVmaW5lIF9fdmVyX2F0dGFjaF9j YXBpX2RyaXZlciBzbXBfMzQyNjdjYjcKI2RlZmluZSBhdHRhY2hfY2FwaV9kcml2ZXIgX3NldF92 ZXIoYXR0YWNoX2NhcGlfZHJpdmVyKQojZGVmaW5lIF9fdmVyX2RldGFjaF9jYXBpX2RyaXZlciBz bXBfOTM2NDNlMDAKI2RlZmluZSBkZXRhY2hfY2FwaV9kcml2ZXIgX3NldF92ZXIoZGV0YWNoX2Nh cGlfZHJpdmVyKQojIDEyNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2 ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1 bGVzL2tkYl9pby52ZXIiIDEKI2RlZmluZSBfX3Zlcl9rZGJfcmVhZCBzbXBfNGE0ODJiM2IKI2Rl ZmluZSBrZGJfcmVhZCBfc2V0X3ZlcihrZGJfcmVhZCkKIyAxMjYgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9rZGJtYWluLnZlciIgMQojZGVmaW5lIF9fdmVyX2tk Yl9yZWdpc3RlciBzbXBfY2QwYzJjYjMKI2RlZmluZSBrZGJfcmVnaXN0ZXIgX3NldF92ZXIoa2Ri X3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2tkYl91bnJlZ2lzdGVyIHNtcF8yNDdlZjgzMQojZGVm aW5lIGtkYl91bnJlZ2lzdGVyIF9zZXRfdmVyKGtkYl91bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVy X2tkYmFfZ2V0d29yZCBzbXBfODc4YmU2ZDAKI2RlZmluZSBrZGJhX2dldHdvcmQgX3NldF92ZXIo a2RiYV9nZXR3b3JkKQojZGVmaW5lIF9fdmVyX2tkYmFfcHV0d29yZCBzbXBfNmQ3NjFhYzkKI2Rl ZmluZSBrZGJhX3B1dHdvcmQgX3NldF92ZXIoa2RiYV9wdXR3b3JkKQojZGVmaW5lIF9fdmVyX2tk YmdldHVsYXJnIHNtcF9hOGRlYzNmYQojZGVmaW5lIGtkYmdldHVsYXJnIF9zZXRfdmVyKGtkYmdl dHVsYXJnKQojZGVmaW5lIF9fdmVyX2tkYmdldGVudiBzbXBfOGI2N2Q1MDkKI2RlZmluZSBrZGJn ZXRlbnYgX3NldF92ZXIoa2RiZ2V0ZW52KQojZGVmaW5lIF9fdmVyX2tkYmdldGludGVudiBzbXBf NjI1ZDZkM2YKI2RlZmluZSBrZGJnZXRpbnRlbnYgX3NldF92ZXIoa2RiZ2V0aW50ZW52KQojZGVm aW5lIF9fdmVyX2tkYmdldGFkZHJhcmcgc21wXzY5MWYxMzFlCiNkZWZpbmUga2RiZ2V0YWRkcmFy ZyBfc2V0X3ZlcihrZGJnZXRhZGRyYXJnKQojZGVmaW5lIF9fdmVyX2tkYiBzbXBfMmIzMDE0OWYK I2RlZmluZSBrZGIgX3NldF92ZXIoa2RiKQojZGVmaW5lIF9fdmVyX2tkYl9vbiBzbXBfMzJkYTU5 NmIKI2RlZmluZSBrZGJfb24gX3NldF92ZXIoa2RiX29uKQojZGVmaW5lIF9fdmVyX2tkYmdldHN5 bXZhbCBzbXBfNjg3YjZhMTYKI2RlZmluZSBrZGJnZXRzeW12YWwgX3NldF92ZXIoa2RiZ2V0c3lt dmFsKQojZGVmaW5lIF9fdmVyX2tkYm5lYXJzeW0gc21wX2FjYzliZGRhCiNkZWZpbmUga2RibmVh cnN5bSBfc2V0X3ZlcihrZGJuZWFyc3ltKQojZGVmaW5lIF9fdmVyX2tkYl9wcmludGYgc21wX2Q0 OGM2MzIxCiNkZWZpbmUga2RiX3ByaW50ZiBfc2V0X3ZlcihrZGJfcHJpbnRmKQojZGVmaW5lIF9f dmVyX2tkYl9zeW1ib2xfcHJpbnQgc21wXzM0OGVmNzUzCiNkZWZpbmUga2RiX3N5bWJvbF9wcmlu dCBfc2V0X3ZlcihrZGJfc3ltYm9sX3ByaW50KQojIDEyNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9tb2R1bGVzL2tleWJvYXJkLnZlciIgMQojZGVmaW5lIF9fdmVyX2hhbmRs ZV9zY2FuY29kZSBzbXBfZDNkNmEyZjEKI2RlZmluZSBoYW5kbGVfc2NhbmNvZGUgX3NldF92ZXIo aGFuZGxlX3NjYW5jb2RlKQojZGVmaW5lIF9fdmVyX2tiZF9sZWRmdW5jIHNtcF9mYTY3Y2M1Zgoj ZGVmaW5lIGtiZF9sZWRmdW5jIF9zZXRfdmVyKGtiZF9sZWRmdW5jKQojZGVmaW5lIF9fdmVyX2tl eWJvYXJkX3Rhc2tsZXQgc21wX2RjNGQ1NWE2CiNkZWZpbmUga2V5Ym9hcmRfdGFza2xldCBfc2V0 X3ZlcihrZXlib2FyZF90YXNrbGV0KQojIDEyOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9tb2R1bGVzL2ttb2QudmVyIiAxCiNkZWZpbmUgX192ZXJfaG90cGx1Z19wYXRoIHNt cF8xMmRjZDVhNgojZGVmaW5lIGhvdHBsdWdfcGF0aCBfc2V0X3Zlcihob3RwbHVnX3BhdGgpCiNk ZWZpbmUgX192ZXJfZXhlY191c2VybW9kZWhlbHBlciBzbXBfYzQ3YmY2YWQKI2RlZmluZSBleGVj X3VzZXJtb2RlaGVscGVyIF9zZXRfdmVyKGV4ZWNfdXNlcm1vZGVoZWxwZXIpCiNkZWZpbmUgX192 ZXJfY2FsbF91c2VybW9kZWhlbHBlciBzbXBfODRhMjkxYzgKI2RlZmluZSBjYWxsX3VzZXJtb2Rl aGVscGVyIF9zZXRfdmVyKGNhbGxfdXNlcm1vZGVoZWxwZXIpCiNkZWZpbmUgX192ZXJfcmVxdWVz dF9tb2R1bGUgc21wXzI3ZTRkYzA0CiNkZWZpbmUgcmVxdWVzdF9tb2R1bGUgX3NldF92ZXIocmVx dWVzdF9tb2R1bGUpCiMgMTI5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v ZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v ZHVsZXMva3N5bXMudmVyIiAxCiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX3JlZ2lzdGVyIHNt cF9kYmQzYWMwMQojZGVmaW5lIGludGVyX21vZHVsZV9yZWdpc3RlciBfc2V0X3ZlcihpbnRlcl9t b2R1bGVfcmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX3VucmVnaXN0ZXIgc21w XzdhOWU4NDVlCiNkZWZpbmUgaW50ZXJfbW9kdWxlX3VucmVnaXN0ZXIgX3NldF92ZXIoaW50ZXJf bW9kdWxlX3VucmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX2dldCBzbXBfZjZh MGNlMjQKI2RlZmluZSBpbnRlcl9tb2R1bGVfZ2V0IF9zZXRfdmVyKGludGVyX21vZHVsZV9nZXQp CiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX2dldF9yZXF1ZXN0IHNtcF9iNjlmODI2YgojZGVm aW5lIGludGVyX21vZHVsZV9nZXRfcmVxdWVzdCBfc2V0X3ZlcihpbnRlcl9tb2R1bGVfZ2V0X3Jl cXVlc3QpCiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX3B1dCBzbXBfNmI5OWY3ZDgKI2RlZmlu ZSBpbnRlcl9tb2R1bGVfcHV0IF9zZXRfdmVyKGludGVyX21vZHVsZV9wdXQpCiNkZWZpbmUgX192 ZXJfdHJ5X2luY19tb2RfY291bnQgc21wX2VhZDIwMmYzCiNkZWZpbmUgdHJ5X2luY19tb2RfY291 bnQgX3NldF92ZXIodHJ5X2luY19tb2RfY291bnQpCiNkZWZpbmUgX192ZXJfX19zdGFydF9fX2th bGxzeW1zIHNtcF85YzFiMzhhNwojZGVmaW5lIF9fc3RhcnRfX19rYWxsc3ltcyBfc2V0X3Zlcihf X3N0YXJ0X19fa2FsbHN5bXMpCiNkZWZpbmUgX192ZXJfX19zdG9wX19fa2FsbHN5bXMgc21wXzFj M2FkYmMwCiNkZWZpbmUgX19zdG9wX19fa2FsbHN5bXMgX3NldF92ZXIoX19zdG9wX19fa2FsbHN5 bXMpCiNkZWZpbmUgX192ZXJfa2FsbHN5bXNfc3ltYm9sX3RvX2FkZHJlc3Mgc21wXzEzYmVkMDQ0 CiNkZWZpbmUga2FsbHN5bXNfc3ltYm9sX3RvX2FkZHJlc3MgX3NldF92ZXIoa2FsbHN5bXNfc3lt Ym9sX3RvX2FkZHJlc3MpCiNkZWZpbmUgX192ZXJfa2FsbHN5bXNfYWRkcmVzc190b19zeW1ib2wg c21wXzQwODRmN2QzCiNkZWZpbmUga2FsbHN5bXNfYWRkcmVzc190b19zeW1ib2wgX3NldF92ZXIo a2FsbHN5bXNfYWRkcmVzc190b19zeW1ib2wpCiNkZWZpbmUgX192ZXJfZG9fbW1hcF9wZ29mZiBz bXBfZTNhOTAzNDAKI2RlZmluZSBkb19tbWFwX3Bnb2ZmIF9zZXRfdmVyKGRvX21tYXBfcGdvZmYp CiNkZWZpbmUgX192ZXJfZG9fbXVubWFwIHNtcF9iMGE1MjAwNwojZGVmaW5lIGRvX211bm1hcCBf c2V0X3Zlcihkb19tdW5tYXApCiNkZWZpbmUgX192ZXJfZG9fYnJrIHNtcF85ZWVjZGUxNgojZGVm aW5lIGRvX2JyayBfc2V0X3Zlcihkb19icmspCiNkZWZpbmUgX192ZXJfZXhpdF9tbSBzbXBfODZk MjQ3MTgKI2RlZmluZSBleGl0X21tIF9zZXRfdmVyKGV4aXRfbW0pCiNkZWZpbmUgX192ZXJfZXhp dF9maWxlcyBzbXBfODBhYTUzMzgKI2RlZmluZSBleGl0X2ZpbGVzIF9zZXRfdmVyKGV4aXRfZmls ZXMpCiNkZWZpbmUgX192ZXJfZXhpdF9mcyBzbXBfZGM1MzZmNTIKI2RlZmluZSBleGl0X2ZzIF9z ZXRfdmVyKGV4aXRfZnMpCiNkZWZpbmUgX192ZXJfZXhpdF9zaWdoYW5kIHNtcF81ZDE3OWE0OAoj ZGVmaW5lIGV4aXRfc2lnaGFuZCBfc2V0X3ZlcihleGl0X3NpZ2hhbmQpCiNkZWZpbmUgX192ZXJf X2FsbG9jX3BhZ2VzIHNtcF82OWVjNTMyMgojZGVmaW5lIF9hbGxvY19wYWdlcyBfc2V0X3Zlcihf YWxsb2NfcGFnZXMpCiNkZWZpbmUgX192ZXJfX19hbGxvY19wYWdlcyBzbXBfNDg1NWFhNDAKI2Rl ZmluZSBfX2FsbG9jX3BhZ2VzIF9zZXRfdmVyKF9fYWxsb2NfcGFnZXMpCiNkZWZpbmUgX192ZXJf YWxsb2NfcGFnZXNfbm9kZSBzbXBfOWI2ZWEzY2EKI2RlZmluZSBhbGxvY19wYWdlc19ub2RlIF9z ZXRfdmVyKGFsbG9jX3BhZ2VzX25vZGUpCiNkZWZpbmUgX192ZXJfX19nZXRfZnJlZV9wYWdlcyBz bXBfMTlkOWFjNDAKI2RlZmluZSBfX2dldF9mcmVlX3BhZ2VzIF9zZXRfdmVyKF9fZ2V0X2ZyZWVf cGFnZXMpCiNkZWZpbmUgX192ZXJfZ2V0X3plcm9lZF9wYWdlIHNtcF8zZmFkNmE1NwojZGVmaW5l IGdldF96ZXJvZWRfcGFnZSBfc2V0X3ZlcihnZXRfemVyb2VkX3BhZ2UpCiNkZWZpbmUgX192ZXJf X19mcmVlX3BhZ2VzIHNtcF85NjdjNDQ2NQojZGVmaW5lIF9fZnJlZV9wYWdlcyBfc2V0X3Zlcihf X2ZyZWVfcGFnZXMpCiNkZWZpbmUgX192ZXJfZnJlZV9wYWdlcyBzbXBfYjUxMzY1MDYKI2RlZmlu ZSBmcmVlX3BhZ2VzIF9zZXRfdmVyKGZyZWVfcGFnZXMpCiNkZWZpbmUgX192ZXJfbnVtX3BoeXNw YWdlcyBzbXBfMDk0OGNkZTkKI2RlZmluZSBudW1fcGh5c3BhZ2VzIF9zZXRfdmVyKG51bV9waHlz cGFnZXMpCiNkZWZpbmUgX192ZXJfa21lbV9maW5kX2dlbmVyYWxfY2FjaGVwIHNtcF9hMWNjOTdj ZgojZGVmaW5lIGttZW1fZmluZF9nZW5lcmFsX2NhY2hlcCBfc2V0X3ZlcihrbWVtX2ZpbmRfZ2Vu ZXJhbF9jYWNoZXApCiNkZWZpbmUgX192ZXJfa21lbV9jYWNoZV9jcmVhdGUgc21wX2FiNTJjNzMx CiNkZWZpbmUga21lbV9jYWNoZV9jcmVhdGUgX3NldF92ZXIoa21lbV9jYWNoZV9jcmVhdGUpCiNk ZWZpbmUgX192ZXJfa21lbV9jYWNoZV9kZXN0cm95IHNtcF9kZjgzYzY5MgojZGVmaW5lIGttZW1f Y2FjaGVfZGVzdHJveSBfc2V0X3ZlcihrbWVtX2NhY2hlX2Rlc3Ryb3kpCiNkZWZpbmUgX192ZXJf a21lbV9jYWNoZV9zaHJpbmsgc21wXzEyZjdjZjA0CiNkZWZpbmUga21lbV9jYWNoZV9zaHJpbmsg X3NldF92ZXIoa21lbV9jYWNoZV9zaHJpbmspCiNkZWZpbmUgX192ZXJfa21lbV9jYWNoZV9hbGxv YyBzbXBfNzU4MTA5NTYKI2RlZmluZSBrbWVtX2NhY2hlX2FsbG9jIF9zZXRfdmVyKGttZW1fY2Fj aGVfYWxsb2MpCiNkZWZpbmUgX192ZXJfa21lbV9jYWNoZV9mcmVlIHNtcF84OTFmMjY4NgojZGVm aW5lIGttZW1fY2FjaGVfZnJlZSBfc2V0X3ZlcihrbWVtX2NhY2hlX2ZyZWUpCiNkZWZpbmUgX192 ZXJfa21hbGxvYyBzbXBfNmY2YzFjZjcKI2RlZmluZSBrbWFsbG9jIF9zZXRfdmVyKGttYWxsb2Mp CiNkZWZpbmUgX192ZXJfa2ZyZWUgc21wXzAzN2EwY2JhCiNkZWZpbmUga2ZyZWUgX3NldF92ZXIo a2ZyZWUpCiNkZWZpbmUgX192ZXJfdmZyZWUgc21wXzJmZDFkODFjCiNkZWZpbmUgdmZyZWUgX3Nl dF92ZXIodmZyZWUpCiNkZWZpbmUgX192ZXJfX192bWFsbG9jIHNtcF83OTk5NWM1YgojZGVmaW5l IF9fdm1hbGxvYyBfc2V0X3ZlcihfX3ZtYWxsb2MpCiNkZWZpbmUgX192ZXJfbWVtX21hcCBzbXBf OGZhOWNhMTEKI2RlZmluZSBtZW1fbWFwIF9zZXRfdmVyKG1lbV9tYXApCiNkZWZpbmUgX192ZXJf cmVtYXBfcGFnZV9yYW5nZSBzbXBfNjlkMDFlNzMKI2RlZmluZSByZW1hcF9wYWdlX3JhbmdlIF9z ZXRfdmVyKHJlbWFwX3BhZ2VfcmFuZ2UpCiNkZWZpbmUgX192ZXJfbWF4X21hcG5yIHNtcF8wMTEz OWZmYwojZGVmaW5lIG1heF9tYXBuciBfc2V0X3ZlcihtYXhfbWFwbnIpCiNkZWZpbmUgX192ZXJf aGlnaF9tZW1vcnkgc21wXzhhN2QxYzMxCiNkZWZpbmUgaGlnaF9tZW1vcnkgX3NldF92ZXIoaGln aF9tZW1vcnkpCiNkZWZpbmUgX192ZXJfdm10cnVuY2F0ZSBzbXBfYTY1MWExMTcKI2RlZmluZSB2 bXRydW5jYXRlIF9zZXRfdmVyKHZtdHJ1bmNhdGUpCiNkZWZpbmUgX192ZXJfZmluZF92bWEgc21w XzlhZTI1ZWQyCiNkZWZpbmUgZmluZF92bWEgX3NldF92ZXIoZmluZF92bWEpCiNkZWZpbmUgX192 ZXJfZ2V0X3VubWFwcGVkX2FyZWEgc21wXzhiM2I3OTBkCiNkZWZpbmUgZ2V0X3VubWFwcGVkX2Fy ZWEgX3NldF92ZXIoZ2V0X3VubWFwcGVkX2FyZWEpCiNkZWZpbmUgX192ZXJfaW5pdF9tbSBzbXBf MzlkNTZlZDkKI2RlZmluZSBpbml0X21tIF9zZXRfdmVyKGluaXRfbW0pCiNkZWZpbmUgX192ZXJf ZGVhY3RpdmF0ZV9wYWdlIHNtcF9mMjY0ODI0OAojZGVmaW5lIGRlYWN0aXZhdGVfcGFnZSBfc2V0 X3ZlcihkZWFjdGl2YXRlX3BhZ2UpCiNkZWZpbmUgX192ZXJfZGVmX2Jsa19mb3BzIHNtcF83NGVi NGE2YQojZGVmaW5lIGRlZl9ibGtfZm9wcyBfc2V0X3ZlcihkZWZfYmxrX2ZvcHMpCiNkZWZpbmUg X192ZXJfdXBkYXRlX2F0aW1lIHNtcF85MWNhMWE3MAojZGVmaW5lIHVwZGF0ZV9hdGltZSBfc2V0 X3Zlcih1cGRhdGVfYXRpbWUpCiNkZWZpbmUgX192ZXJfZ2V0X2ZzX3R5cGUgc21wX2EzN2Q0NWYy CiNkZWZpbmUgZ2V0X2ZzX3R5cGUgX3NldF92ZXIoZ2V0X2ZzX3R5cGUpCiNkZWZpbmUgX192ZXJf Z2V0X3N1cGVyIHNtcF84NTEzMmYzYgojZGVmaW5lIGdldF9zdXBlciBfc2V0X3ZlcihnZXRfc3Vw ZXIpCiNkZWZpbmUgX192ZXJfZ2V0bmFtZSBzbXBfN2M2MGQ2NmUKI2RlZmluZSBnZXRuYW1lIF9z ZXRfdmVyKGdldG5hbWUpCiNkZWZpbmUgX192ZXJfbmFtZXNfY2FjaGVwIHNtcF9kMjU0NjliNAoj ZGVmaW5lIG5hbWVzX2NhY2hlcCBfc2V0X3ZlcihuYW1lc19jYWNoZXApCiNkZWZpbmUgX192ZXJf ZnB1dCBzbXBfNDZlYzdkMzAKI2RlZmluZSBmcHV0IF9zZXRfdmVyKGZwdXQpCiNkZWZpbmUgX192 ZXJfZmdldCBzbXBfMWY2YTFjNzMKI2RlZmluZSBmZ2V0IF9zZXRfdmVyKGZnZXQpCiNkZWZpbmUg X192ZXJfaWdyYWIgc21wXzJkNDNlNGEzCiNkZWZpbmUgaWdyYWIgX3NldF92ZXIoaWdyYWIpCiNk ZWZpbmUgX192ZXJfaXVuaXF1ZSBzbXBfMmRmN2UyMWIKI2RlZmluZSBpdW5pcXVlIF9zZXRfdmVy KGl1bmlxdWUpCiNkZWZpbmUgX192ZXJfaWdldDQgc21wXzExMWNjOGExCiNkZWZpbmUgaWdldDQg X3NldF92ZXIoaWdldDQpCiNkZWZpbmUgX192ZXJfaXB1dCBzbXBfNWVkYmE2MmQKI2RlZmluZSBp cHV0IF9zZXRfdmVyKGlwdXQpCiNkZWZpbmUgX192ZXJfZm9yY2VfZGVsZXRlIHNtcF9jNWUxYTE1 NAojZGVmaW5lIGZvcmNlX2RlbGV0ZSBfc2V0X3Zlcihmb3JjZV9kZWxldGUpCiNkZWZpbmUgX192 ZXJfZm9sbG93X3VwIHNtcF9hZGUzYTdhMgojZGVmaW5lIGZvbGxvd191cCBfc2V0X3Zlcihmb2xs b3dfdXApCiNkZWZpbmUgX192ZXJfZm9sbG93X2Rvd24gc21wXzVhZTAzZTQ2CiNkZWZpbmUgZm9s bG93X2Rvd24gX3NldF92ZXIoZm9sbG93X2Rvd24pCiNkZWZpbmUgX192ZXJfbG9va3VwX21udCBz bXBfZWZlNzE1M2QKI2RlZmluZSBsb29rdXBfbW50IF9zZXRfdmVyKGxvb2t1cF9tbnQpCiNkZWZp bmUgX192ZXJfcGF0aF9pbml0IHNtcF8wNTQ5YzQ2YgojZGVmaW5lIHBhdGhfaW5pdCBfc2V0X3Zl cihwYXRoX2luaXQpCiNkZWZpbmUgX192ZXJfcGF0aF93YWxrIHNtcF9kMGFhOTViZQojZGVmaW5l IHBhdGhfd2FsayBfc2V0X3ZlcihwYXRoX3dhbGspCiNkZWZpbmUgX192ZXJfcGF0aF9yZWxlYXNl IHNtcF8yYzE0ODNhYwojZGVmaW5lIHBhdGhfcmVsZWFzZSBfc2V0X3ZlcihwYXRoX3JlbGVhc2Up CiNkZWZpbmUgX192ZXJfX191c2VyX3dhbGsgc21wX2IzZDQxNzE0CiNkZWZpbmUgX191c2VyX3dh bGsgX3NldF92ZXIoX191c2VyX3dhbGspCiNkZWZpbmUgX192ZXJfbG9va3VwX29uZV9sZW4gc21w X2EwMDVkMmRkCiNkZWZpbmUgbG9va3VwX29uZV9sZW4gX3NldF92ZXIobG9va3VwX29uZV9sZW4p CiNkZWZpbmUgX192ZXJfbG9va3VwX2hhc2ggc21wX2U0MGM4NWFmCiNkZWZpbmUgbG9va3VwX2hh c2ggX3NldF92ZXIobG9va3VwX2hhc2gpCiNkZWZpbmUgX192ZXJfc3lzX2Nsb3NlIHNtcF9kZTc2 ZTdiYwojZGVmaW5lIHN5c19jbG9zZSBfc2V0X3ZlcihzeXNfY2xvc2UpCiNkZWZpbmUgX192ZXJf ZGNhY2hlX2xvY2sgc21wX2Y3YzMyY2ExCiNkZWZpbmUgZGNhY2hlX2xvY2sgX3NldF92ZXIoZGNh Y2hlX2xvY2spCiNkZWZpbmUgX192ZXJfZF9hbGxvY19yb290IHNtcF9lMjI0YzRjNQojZGVmaW5l IGRfYWxsb2Nfcm9vdCBfc2V0X3ZlcihkX2FsbG9jX3Jvb3QpCiNkZWZpbmUgX192ZXJfZF9kZWxl dGUgc21wX2M3MThiNTU3CiNkZWZpbmUgZF9kZWxldGUgX3NldF92ZXIoZF9kZWxldGUpCiNkZWZp bmUgX192ZXJfZGdldF9sb2NrZWQgc21wX2QyODJiODA3CiNkZWZpbmUgZGdldF9sb2NrZWQgX3Nl dF92ZXIoZGdldF9sb2NrZWQpCiNkZWZpbmUgX192ZXJfZF92YWxpZGF0ZSBzbXBfYzQ3MTNkMTkK I2RlZmluZSBkX3ZhbGlkYXRlIF9zZXRfdmVyKGRfdmFsaWRhdGUpCiNkZWZpbmUgX192ZXJfZF9y ZWhhc2ggc21wX2Q5MDFjMTRiCiNkZWZpbmUgZF9yZWhhc2ggX3NldF92ZXIoZF9yZWhhc2gpCiNk ZWZpbmUgX192ZXJfZF9pbnZhbGlkYXRlIHNtcF81YTA0ZDhlZAojZGVmaW5lIGRfaW52YWxpZGF0 ZSBfc2V0X3ZlcihkX2ludmFsaWRhdGUpCiNkZWZpbmUgX192ZXJfZF9tb3ZlIHNtcF82YTZjYzY3 YwojZGVmaW5lIGRfbW92ZSBfc2V0X3ZlcihkX21vdmUpCiNkZWZpbmUgX192ZXJfZF9pbnN0YW50 aWF0ZSBzbXBfMDIxZTI1OTIKI2RlZmluZSBkX2luc3RhbnRpYXRlIF9zZXRfdmVyKGRfaW5zdGFu dGlhdGUpCiNkZWZpbmUgX192ZXJfZF9hbGxvYyBzbXBfMjA0ZWNkNjIKI2RlZmluZSBkX2FsbG9j IF9zZXRfdmVyKGRfYWxsb2MpCiNkZWZpbmUgX192ZXJfZF9sb29rdXAgc21wX2U5YzU2M2UxCiNk ZWZpbmUgZF9sb29rdXAgX3NldF92ZXIoZF9sb29rdXApCiNkZWZpbmUgX192ZXJfX19kX3BhdGgg c21wX2FmMWQ3YmZmCiNkZWZpbmUgX19kX3BhdGggX3NldF92ZXIoX19kX3BhdGgpCiNkZWZpbmUg X192ZXJfbWFya19idWZmZXJfZGlydHkgc21wXzMzNTdiZWJjCiNkZWZpbmUgbWFya19idWZmZXJf ZGlydHkgX3NldF92ZXIobWFya19idWZmZXJfZGlydHkpCiNkZWZpbmUgX192ZXJfc2V0X2J1ZmZl cl9hc3luY19pbyBzbXBfMTA0N2U4ODUKI2RlZmluZSBzZXRfYnVmZmVyX2FzeW5jX2lvIF9zZXRf dmVyKHNldF9idWZmZXJfYXN5bmNfaW8pCiNkZWZpbmUgX192ZXJfX19tYXJrX2J1ZmZlcl9kaXJ0 eSBzbXBfYzFhM2Y0YWIKI2RlZmluZSBfX21hcmtfYnVmZmVyX2RpcnR5IF9zZXRfdmVyKF9fbWFy a19idWZmZXJfZGlydHkpCiNkZWZpbmUgX192ZXJfX19tYXJrX2lub2RlX2RpcnR5IHNtcF9lYjBm MTU1YwojZGVmaW5lIF9fbWFya19pbm9kZV9kaXJ0eSBfc2V0X3ZlcihfX21hcmtfaW5vZGVfZGly dHkpCiNkZWZpbmUgX192ZXJfZ2V0X2VtcHR5X2ZpbHAgc21wXzE5MzI1ZDgyCiNkZWZpbmUgZ2V0 X2VtcHR5X2ZpbHAgX3NldF92ZXIoZ2V0X2VtcHR5X2ZpbHApCiNkZWZpbmUgX192ZXJfaW5pdF9w cml2YXRlX2ZpbGUgc21wXzFjZWU0YTkwCiNkZWZpbmUgaW5pdF9wcml2YXRlX2ZpbGUgX3NldF92 ZXIoaW5pdF9wcml2YXRlX2ZpbGUpCiNkZWZpbmUgX192ZXJfZmlscF9vcGVuIHNtcF9kNzkwZGNh NAojZGVmaW5lIGZpbHBfb3BlbiBfc2V0X3ZlcihmaWxwX29wZW4pCiNkZWZpbmUgX192ZXJfZmls cF9jbG9zZSBzbXBfMTE5ZWJiY2IKI2RlZmluZSBmaWxwX2Nsb3NlIF9zZXRfdmVyKGZpbHBfY2xv c2UpCiNkZWZpbmUgX192ZXJfcHV0X2ZpbHAgc21wXzQ2NDgwNTZlCiNkZWZpbmUgcHV0X2ZpbHAg X3NldF92ZXIocHV0X2ZpbHApCiNkZWZpbmUgX192ZXJfZmlsZXNfbG9jayBzbXBfYzJiZTIxNzkK I2RlZmluZSBmaWxlc19sb2NrIF9zZXRfdmVyKGZpbGVzX2xvY2spCiNkZWZpbmUgX192ZXJfY2hl Y2tfZGlza19jaGFuZ2Ugc21wXzExZDQwNzZkCiNkZWZpbmUgY2hlY2tfZGlza19jaGFuZ2UgX3Nl dF92ZXIoY2hlY2tfZGlza19jaGFuZ2UpCiNkZWZpbmUgX192ZXJfX19pbnZhbGlkYXRlX2J1ZmZl cnMgc21wXzk4ZjUxNTM4CiNkZWZpbmUgX19pbnZhbGlkYXRlX2J1ZmZlcnMgX3NldF92ZXIoX19p bnZhbGlkYXRlX2J1ZmZlcnMpCiNkZWZpbmUgX192ZXJfaW52YWxpZGF0ZV9pbm9kZXMgc21wX2Qx ZjY2ZTkyCiNkZWZpbmUgaW52YWxpZGF0ZV9pbm9kZXMgX3NldF92ZXIoaW52YWxpZGF0ZV9pbm9k ZXMpCiNkZWZpbmUgX192ZXJfaW52YWxpZGF0ZV9kZXZpY2Ugc21wXzI1YTRiMGIyCiNkZWZpbmUg aW52YWxpZGF0ZV9kZXZpY2UgX3NldF92ZXIoaW52YWxpZGF0ZV9kZXZpY2UpCiNkZWZpbmUgX192 ZXJfaW52YWxpZGF0ZV9pbm9kZV9wYWdlcyBzbXBfNGNmNTFjMDMKI2RlZmluZSBpbnZhbGlkYXRl X2lub2RlX3BhZ2VzIF9zZXRfdmVyKGludmFsaWRhdGVfaW5vZGVfcGFnZXMpCiNkZWZpbmUgX192 ZXJfdHJ1bmNhdGVfaW5vZGVfcGFnZXMgc21wX2FlMjg2NDZkCiNkZWZpbmUgdHJ1bmNhdGVfaW5v ZGVfcGFnZXMgX3NldF92ZXIodHJ1bmNhdGVfaW5vZGVfcGFnZXMpCiNkZWZpbmUgX192ZXJfZnN5 bmNfZGV2IHNtcF84ZWExMjhlMgojZGVmaW5lIGZzeW5jX2RldiBfc2V0X3Zlcihmc3luY19kZXYp CiNkZWZpbmUgX192ZXJfcGVybWlzc2lvbiBzbXBfOWIzNTQ0NTcKI2RlZmluZSBwZXJtaXNzaW9u IF9zZXRfdmVyKHBlcm1pc3Npb24pCiNkZWZpbmUgX192ZXJfdmZzX3Blcm1pc3Npb24gc21wXzU3 MDM5OWRmCiNkZWZpbmUgdmZzX3Blcm1pc3Npb24gX3NldF92ZXIodmZzX3Blcm1pc3Npb24pCiNk ZWZpbmUgX192ZXJfaW5vZGVfc2V0YXR0ciBzbXBfODBhMmNlYjgKI2RlZmluZSBpbm9kZV9zZXRh dHRyIF9zZXRfdmVyKGlub2RlX3NldGF0dHIpCiNkZWZpbmUgX192ZXJfaW5vZGVfY2hhbmdlX29r IHNtcF80MDRkMGM1NwojZGVmaW5lIGlub2RlX2NoYW5nZV9vayBfc2V0X3Zlcihpbm9kZV9jaGFu Z2Vfb2spCiNkZWZpbmUgX192ZXJfd3JpdGVfaW5vZGVfbm93IHNtcF9lZjRjZGJjYwojZGVmaW5l IHdyaXRlX2lub2RlX25vdyBfc2V0X3Zlcih3cml0ZV9pbm9kZV9ub3cpCiNkZWZpbmUgX192ZXJf bm90aWZ5X2NoYW5nZSBzbXBfYmI5Nzg2NjgKI2RlZmluZSBub3RpZnlfY2hhbmdlIF9zZXRfdmVy KG5vdGlmeV9jaGFuZ2UpCiNkZWZpbmUgX192ZXJfc2V0X2Jsb2Nrc2l6ZSBzbXBfYTg0MjcyMmEK I2RlZmluZSBzZXRfYmxvY2tzaXplIF9zZXRfdmVyKHNldF9ibG9ja3NpemUpCiNkZWZpbmUgX192 ZXJfZ2V0YmxrIHNtcF80OWExYTM1MgojZGVmaW5lIGdldGJsayBfc2V0X3ZlcihnZXRibGspCiNk ZWZpbmUgX192ZXJfY2RnZXQgc21wX2Q2NzM5NTAzCiNkZWZpbmUgY2RnZXQgX3NldF92ZXIoY2Rn ZXQpCiNkZWZpbmUgX192ZXJfY2RwdXQgc21wX2VjNWQ1OGJkCiNkZWZpbmUgY2RwdXQgX3NldF92 ZXIoY2RwdXQpCiNkZWZpbmUgX192ZXJfYmRnZXQgc21wXzlmMTEwODVhCiNkZWZpbmUgYmRnZXQg X3NldF92ZXIoYmRnZXQpCiNkZWZpbmUgX192ZXJfYmRwdXQgc21wXzY5YTA3YmNkCiNkZWZpbmUg YmRwdXQgX3NldF92ZXIoYmRwdXQpCiNkZWZpbmUgX192ZXJfYnJlYWQgc21wXzA5OWE5OTgzCiNk ZWZpbmUgYnJlYWQgX3NldF92ZXIoYnJlYWQpCiNkZWZpbmUgX192ZXJfX19icmVsc2Ugc21wXzg2 NThlN2ZmCiNkZWZpbmUgX19icmVsc2UgX3NldF92ZXIoX19icmVsc2UpCiNkZWZpbmUgX192ZXJf X19iZm9yZ2V0IHNtcF82ZTA1MmI4NwojZGVmaW5lIF9fYmZvcmdldCBfc2V0X3ZlcihfX2Jmb3Jn ZXQpCiNkZWZpbmUgX192ZXJfbGxfcndfYmxvY2sgc21wXzRjMjVlOTViCiNkZWZpbmUgbGxfcndf YmxvY2sgX3NldF92ZXIobGxfcndfYmxvY2spCiNkZWZpbmUgX192ZXJfc3VibWl0X2JoIHNtcF9l ZmExNzQ4MQojZGVmaW5lIHN1Ym1pdF9iaCBfc2V0X3ZlcihzdWJtaXRfYmgpCiNkZWZpbmUgX192 ZXJfdW5sb2NrX2J1ZmZlciBzbXBfNDEwODBiMTcKI2RlZmluZSB1bmxvY2tfYnVmZmVyIF9zZXRf dmVyKHVubG9ja19idWZmZXIpCiNkZWZpbmUgX192ZXJfX193YWl0X29uX2J1ZmZlciBzbXBfNDZj OGYzZWQKI2RlZmluZSBfX3dhaXRfb25fYnVmZmVyIF9zZXRfdmVyKF9fd2FpdF9vbl9idWZmZXIp CiNkZWZpbmUgX192ZXJfX19fd2FpdF9vbl9wYWdlIHNtcF8wNGQ0YmQwMgojZGVmaW5lIF9fX3dh aXRfb25fcGFnZSBfc2V0X3ZlcihfX193YWl0X29uX3BhZ2UpCiNkZWZpbmUgX192ZXJfYmxvY2tf d3JpdGVfZnVsbF9wYWdlIHNtcF83M2RjNTU2ZgojZGVmaW5lIGJsb2NrX3dyaXRlX2Z1bGxfcGFn ZSBfc2V0X3ZlcihibG9ja193cml0ZV9mdWxsX3BhZ2UpCiNkZWZpbmUgX192ZXJfYmxvY2tfcmVh ZF9mdWxsX3BhZ2Ugc21wX2QwYjRkMmQxCiNkZWZpbmUgYmxvY2tfcmVhZF9mdWxsX3BhZ2UgX3Nl dF92ZXIoYmxvY2tfcmVhZF9mdWxsX3BhZ2UpCiNkZWZpbmUgX192ZXJfYmxvY2tfcHJlcGFyZV93 cml0ZSBzbXBfZGQ1N2JmNmQKI2RlZmluZSBibG9ja19wcmVwYXJlX3dyaXRlIF9zZXRfdmVyKGJs b2NrX3ByZXBhcmVfd3JpdGUpCiNkZWZpbmUgX192ZXJfYmxvY2tfc3luY19wYWdlIHNtcF84YTI1 ZjI5NgojZGVmaW5lIGJsb2NrX3N5bmNfcGFnZSBfc2V0X3ZlcihibG9ja19zeW5jX3BhZ2UpCiNk ZWZpbmUgX192ZXJfY29udF9wcmVwYXJlX3dyaXRlIHNtcF8zM2RiYmIwYQojZGVmaW5lIGNvbnRf cHJlcGFyZV93cml0ZSBfc2V0X3Zlcihjb250X3ByZXBhcmVfd3JpdGUpCiNkZWZpbmUgX192ZXJf Z2VuZXJpY19jb21taXRfd3JpdGUgc21wXzM3NzM2YzkxCiNkZWZpbmUgZ2VuZXJpY19jb21taXRf d3JpdGUgX3NldF92ZXIoZ2VuZXJpY19jb21taXRfd3JpdGUpCiNkZWZpbmUgX192ZXJfYmxvY2tf dHJ1bmNhdGVfcGFnZSBzbXBfOWZjNWNjNDQKI2RlZmluZSBibG9ja190cnVuY2F0ZV9wYWdlIF9z ZXRfdmVyKGJsb2NrX3RydW5jYXRlX3BhZ2UpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19ibG9ja19i bWFwIHNtcF8wMTlhZGQ5YwojZGVmaW5lIGdlbmVyaWNfYmxvY2tfYm1hcCBfc2V0X3ZlcihnZW5l cmljX2Jsb2NrX2JtYXApCiNkZWZpbmUgX192ZXJfd2FpdGZvcl9vbmVfcGFnZSBzbXBfOGVmNmMz NTkKI2RlZmluZSB3YWl0Zm9yX29uZV9wYWdlIF9zZXRfdmVyKHdhaXRmb3Jfb25lX3BhZ2UpCiNk ZWZpbmUgX192ZXJfZ2VuZXJpY19maWxlX3JlYWQgc21wXzExYzg3ZWZmCiNkZWZpbmUgZ2VuZXJp Y19maWxlX3JlYWQgX3NldF92ZXIoZ2VuZXJpY19maWxlX3JlYWQpCiNkZWZpbmUgX192ZXJfZG9f Z2VuZXJpY19maWxlX3JlYWQgc21wX2ZhNzkwYTZlCiNkZWZpbmUgZG9fZ2VuZXJpY19maWxlX3Jl YWQgX3NldF92ZXIoZG9fZ2VuZXJpY19maWxlX3JlYWQpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19m aWxlX3dyaXRlIHNtcF9mYjE3ODYzNgojZGVmaW5lIGdlbmVyaWNfZmlsZV93cml0ZSBfc2V0X3Zl cihnZW5lcmljX2ZpbGVfd3JpdGUpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19maWxlX21tYXAgc21w X2I2NzkxMWM5CiNkZWZpbmUgZ2VuZXJpY19maWxlX21tYXAgX3NldF92ZXIoZ2VuZXJpY19maWxl X21tYXApCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19yb19mb3BzIHNtcF9jMDkxOTE2ZQojZGVmaW5l IGdlbmVyaWNfcm9fZm9wcyBfc2V0X3ZlcihnZW5lcmljX3JvX2ZvcHMpCiNkZWZpbmUgX192ZXJf Z2VuZXJpY19idWZmZXJfZmRhdGFzeW5jIHNtcF8zYmE0NjJjNAojZGVmaW5lIGdlbmVyaWNfYnVm ZmVyX2ZkYXRhc3luYyBfc2V0X3ZlcihnZW5lcmljX2J1ZmZlcl9mZGF0YXN5bmMpCiNkZWZpbmUg X192ZXJfcGFnZV9oYXNoX2JpdHMgc21wXzA0OTI1YjRlCiNkZWZpbmUgcGFnZV9oYXNoX2JpdHMg X3NldF92ZXIocGFnZV9oYXNoX2JpdHMpCiNkZWZpbmUgX192ZXJfcGFnZV9oYXNoX3RhYmxlIHNt cF8wNzRiYWE3YwojZGVmaW5lIHBhZ2VfaGFzaF90YWJsZSBfc2V0X3ZlcihwYWdlX2hhc2hfdGFi bGUpCiNkZWZpbmUgX192ZXJfZmlsZV9sb2NrX2xpc3Qgc21wXzZlODUxMTlkCiNkZWZpbmUgZmls ZV9sb2NrX2xpc3QgX3NldF92ZXIoZmlsZV9sb2NrX2xpc3QpCiNkZWZpbmUgX192ZXJfbG9ja3Nf aW5pdF9sb2NrIHNtcF9mMDAzZWQxOQojZGVmaW5lIGxvY2tzX2luaXRfbG9jayBfc2V0X3Zlcihs b2Nrc19pbml0X2xvY2spCiNkZWZpbmUgX192ZXJfbG9ja3NfY29weV9sb2NrIHNtcF85OThiOGRk MwojZGVmaW5lIGxvY2tzX2NvcHlfbG9jayBfc2V0X3Zlcihsb2Nrc19jb3B5X2xvY2spCiNkZWZp bmUgX192ZXJfcG9zaXhfbG9ja19maWxlIHNtcF8yNDRmNzUyZQojZGVmaW5lIHBvc2l4X2xvY2tf ZmlsZSBfc2V0X3Zlcihwb3NpeF9sb2NrX2ZpbGUpCiNkZWZpbmUgX192ZXJfcG9zaXhfdGVzdF9s b2NrIHNtcF9kZThlMDA3MgojZGVmaW5lIHBvc2l4X3Rlc3RfbG9jayBfc2V0X3Zlcihwb3NpeF90 ZXN0X2xvY2spCiNkZWZpbmUgX192ZXJfcG9zaXhfYmxvY2tfbG9jayBzbXBfYzIwNDI4MGQKI2Rl ZmluZSBwb3NpeF9ibG9ja19sb2NrIF9zZXRfdmVyKHBvc2l4X2Jsb2NrX2xvY2spCiNkZWZpbmUg X192ZXJfcG9zaXhfdW5ibG9ja19sb2NrIHNtcF85NTBlOGFkNgojZGVmaW5lIHBvc2l4X3VuYmxv Y2tfbG9jayBfc2V0X3Zlcihwb3NpeF91bmJsb2NrX2xvY2spCiNkZWZpbmUgX192ZXJfbG9ja3Nf bWFuZGF0b3J5X2FyZWEgc21wXzc5YWJiNzMwCiNkZWZpbmUgbG9ja3NfbWFuZGF0b3J5X2FyZWEg X3NldF92ZXIobG9ja3NfbWFuZGF0b3J5X2FyZWEpCiNkZWZpbmUgX192ZXJfZHB1dCBzbXBfNTc0 ZTZiYTMKI2RlZmluZSBkcHV0IF9zZXRfdmVyKGRwdXQpCiNkZWZpbmUgX192ZXJfaGF2ZV9zdWJt b3VudHMgc21wX2IzYjI5YzBlCiNkZWZpbmUgaGF2ZV9zdWJtb3VudHMgX3NldF92ZXIoaGF2ZV9z dWJtb3VudHMpCiNkZWZpbmUgX192ZXJfZF9maW5kX2FsaWFzIHNtcF9iNjA1ODgwMgojZGVmaW5l IGRfZmluZF9hbGlhcyBfc2V0X3ZlcihkX2ZpbmRfYWxpYXMpCiNkZWZpbmUgX192ZXJfZF9wcnVu ZV9hbGlhc2VzIHNtcF9jOWJhZDQ3YgojZGVmaW5lIGRfcHJ1bmVfYWxpYXNlcyBfc2V0X3Zlcihk X3BydW5lX2FsaWFzZXMpCiNkZWZpbmUgX192ZXJfcHJ1bmVfZGNhY2hlIHNtcF82Y2YyOGY3Nwoj ZGVmaW5lIHBydW5lX2RjYWNoZSBfc2V0X3ZlcihwcnVuZV9kY2FjaGUpCiNkZWZpbmUgX192ZXJf c2hyaW5rX2RjYWNoZV9zYiBzbXBfNjg1OGYzZGUKI2RlZmluZSBzaHJpbmtfZGNhY2hlX3NiIF9z ZXRfdmVyKHNocmlua19kY2FjaGVfc2IpCiNkZWZpbmUgX192ZXJfc2hyaW5rX2RjYWNoZV9wYXJl bnQgc21wXzE0M2MyYmI4CiNkZWZpbmUgc2hyaW5rX2RjYWNoZV9wYXJlbnQgX3NldF92ZXIoc2hy aW5rX2RjYWNoZV9wYXJlbnQpCiNkZWZpbmUgX192ZXJfZmluZF9pbm9kZV9udW1iZXIgc21wX2Y1 ZTRlZDQwCiNkZWZpbmUgZmluZF9pbm9kZV9udW1iZXIgX3NldF92ZXIoZmluZF9pbm9kZV9udW1i ZXIpCiNkZWZpbmUgX192ZXJfaXNfc3ViZGlyIHNtcF8wYThjZDkwNAojZGVmaW5lIGlzX3N1YmRp ciBfc2V0X3Zlcihpc19zdWJkaXIpCiNkZWZpbmUgX192ZXJfZ2V0X3VudXNlZF9mZCBzbXBfOTli ZmJlMzkKI2RlZmluZSBnZXRfdW51c2VkX2ZkIF9zZXRfdmVyKGdldF91bnVzZWRfZmQpCiNkZWZp bmUgX192ZXJfdmZzX2NyZWF0ZSBzbXBfMDRlMjdkNDAKI2RlZmluZSB2ZnNfY3JlYXRlIF9zZXRf dmVyKHZmc19jcmVhdGUpCiNkZWZpbmUgX192ZXJfdmZzX21rZGlyIHNtcF83YmE1YjFiYQojZGVm aW5lIHZmc19ta2RpciBfc2V0X3Zlcih2ZnNfbWtkaXIpCiNkZWZpbmUgX192ZXJfdmZzX21rbm9k IHNtcF9iNzUyZDQ0NgojZGVmaW5lIHZmc19ta25vZCBfc2V0X3Zlcih2ZnNfbWtub2QpCiNkZWZp bmUgX192ZXJfdmZzX3N5bWxpbmsgc21wX2Q3NjY1ZjdkCiNkZWZpbmUgdmZzX3N5bWxpbmsgX3Nl dF92ZXIodmZzX3N5bWxpbmspCiNkZWZpbmUgX192ZXJfdmZzX2xpbmsgc21wX2VkMzgzNTE0CiNk ZWZpbmUgdmZzX2xpbmsgX3NldF92ZXIodmZzX2xpbmspCiNkZWZpbmUgX192ZXJfdmZzX3JtZGly IHNtcF83OTYzNmE5MAojZGVmaW5lIHZmc19ybWRpciBfc2V0X3Zlcih2ZnNfcm1kaXIpCiNkZWZp bmUgX192ZXJfdmZzX3VubGluayBzbXBfZmVmYTQ0NDcKI2RlZmluZSB2ZnNfdW5saW5rIF9zZXRf dmVyKHZmc191bmxpbmspCiNkZWZpbmUgX192ZXJfdmZzX3JlbmFtZSBzbXBfNDZmYzU3YjEKI2Rl ZmluZSB2ZnNfcmVuYW1lIF9zZXRfdmVyKHZmc19yZW5hbWUpCiNkZWZpbmUgX192ZXJfdmZzX3N0 YXRmcyBzbXBfN2EzMTBlMmUKI2RlZmluZSB2ZnNfc3RhdGZzIF9zZXRfdmVyKHZmc19zdGF0ZnMp CiNkZWZpbmUgX192ZXJfZ2VuZXJpY19yZWFkX2RpciBzbXBfNGY2ZThkMzAKI2RlZmluZSBnZW5l cmljX3JlYWRfZGlyIF9zZXRfdmVyKGdlbmVyaWNfcmVhZF9kaXIpCiNkZWZpbmUgX192ZXJfX19w b2xsd2FpdCBzbXBfZjZkMjEwMmUKI2RlZmluZSBfX3BvbGx3YWl0IF9zZXRfdmVyKF9fcG9sbHdh aXQpCiNkZWZpbmUgX192ZXJfcG9sbF9mcmVld2FpdCBzbXBfM2ZkMDJlNTgKI2RlZmluZSBwb2xs X2ZyZWV3YWl0IF9zZXRfdmVyKHBvbGxfZnJlZXdhaXQpCiNkZWZpbmUgX192ZXJfUk9PVF9ERVYg c21wX2IzMjQ5NmU4CiNkZWZpbmUgUk9PVF9ERVYgX3NldF92ZXIoUk9PVF9ERVYpCiNkZWZpbmUg X192ZXJfX19maW5kX2xvY2tfcGFnZSBzbXBfYWZiOWNhODQKI2RlZmluZSBfX2ZpbmRfbG9ja19w YWdlIF9zZXRfdmVyKF9fZmluZF9sb2NrX3BhZ2UpCiNkZWZpbmUgX192ZXJfZ3JhYl9jYWNoZV9w YWdlIHNtcF8zOTgwOWFlMQojZGVmaW5lIGdyYWJfY2FjaGVfcGFnZSBfc2V0X3ZlcihncmFiX2Nh Y2hlX3BhZ2UpCiNkZWZpbmUgX192ZXJfcmVhZF9jYWNoZV9wYWdlIHNtcF82ODBhMGU4OAojZGVm aW5lIHJlYWRfY2FjaGVfcGFnZSBfc2V0X3ZlcihyZWFkX2NhY2hlX3BhZ2UpCiNkZWZpbmUgX192 ZXJfdmZzX3JlYWRsaW5rIHNtcF83MTVjMzE0MQojZGVmaW5lIHZmc19yZWFkbGluayBfc2V0X3Zl cih2ZnNfcmVhZGxpbmspCiNkZWZpbmUgX192ZXJfdmZzX2ZvbGxvd19saW5rIHNtcF9hNGZjZGRm NgojZGVmaW5lIHZmc19mb2xsb3dfbGluayBfc2V0X3Zlcih2ZnNfZm9sbG93X2xpbmspCiNkZWZp bmUgX192ZXJfcGFnZV9yZWFkbGluayBzbXBfOWQ0OTUyZTcKI2RlZmluZSBwYWdlX3JlYWRsaW5r IF9zZXRfdmVyKHBhZ2VfcmVhZGxpbmspCiNkZWZpbmUgX192ZXJfcGFnZV9mb2xsb3dfbGluayBz bXBfZjliYmMwYjkKI2RlZmluZSBwYWdlX2ZvbGxvd19saW5rIF9zZXRfdmVyKHBhZ2VfZm9sbG93 X2xpbmspCiNkZWZpbmUgX192ZXJfcGFnZV9zeW1saW5rX2lub2RlX29wZXJhdGlvbnMgc21wX2Jj MDk2Mjg0CiNkZWZpbmUgcGFnZV9zeW1saW5rX2lub2RlX29wZXJhdGlvbnMgX3NldF92ZXIocGFn ZV9zeW1saW5rX2lub2RlX29wZXJhdGlvbnMpCiNkZWZpbmUgX192ZXJfYmxvY2tfc3ltbGluayBz bXBfNDY1MzY5OTIKI2RlZmluZSBibG9ja19zeW1saW5rIF9zZXRfdmVyKGJsb2NrX3N5bWxpbmsp CiNkZWZpbmUgX192ZXJfdmZzX3JlYWRkaXIgc21wXzdlODRhNjUyCiNkZWZpbmUgdmZzX3JlYWRk aXIgX3NldF92ZXIodmZzX3JlYWRkaXIpCiNkZWZpbmUgX192ZXJfX19nZXRfbGVhc2Ugc21wXzgx MWM1YTg5CiNkZWZpbmUgX19nZXRfbGVhc2UgX3NldF92ZXIoX19nZXRfbGVhc2UpCiNkZWZpbmUg X192ZXJfbGVhc2VfZ2V0X210aW1lIHNtcF9jOGQ2YmQ3ZgojZGVmaW5lIGxlYXNlX2dldF9tdGlt ZSBfc2V0X3ZlcihsZWFzZV9nZXRfbXRpbWUpCiNkZWZpbmUgX192ZXJfbG9ja19tYXlfcmVhZCBz bXBfMzE2ZTUwN2YKI2RlZmluZSBsb2NrX21heV9yZWFkIF9zZXRfdmVyKGxvY2tfbWF5X3JlYWQp CiNkZWZpbmUgX192ZXJfbG9ja19tYXlfd3JpdGUgc21wXzhiZGE4MWVhCiNkZWZpbmUgbG9ja19t YXlfd3JpdGUgX3NldF92ZXIobG9ja19tYXlfd3JpdGUpCiNkZWZpbmUgX192ZXJfZGNhY2hlX3Jl YWRkaXIgc21wX2I0MzcwMTY2CiNkZWZpbmUgZGNhY2hlX3JlYWRkaXIgX3NldF92ZXIoZGNhY2hl X3JlYWRkaXIpCiNkZWZpbmUgX192ZXJfZGVmYXVsdF9sbHNlZWsgc21wX2QyYmEyMDRiCiNkZWZp bmUgZGVmYXVsdF9sbHNlZWsgX3NldF92ZXIoZGVmYXVsdF9sbHNlZWspCiNkZWZpbmUgX192ZXJf ZGVudHJ5X29wZW4gc21wXzk2OWViODQ3CiNkZWZpbmUgZGVudHJ5X29wZW4gX3NldF92ZXIoZGVu dHJ5X29wZW4pCiNkZWZpbmUgX192ZXJfZmlsZW1hcF9ub3BhZ2Ugc21wXzFlNWFhNzVkCiNkZWZp bmUgZmlsZW1hcF9ub3BhZ2UgX3NldF92ZXIoZmlsZW1hcF9ub3BhZ2UpCiNkZWZpbmUgX192ZXJf ZmlsZW1hcF9zeW5jIHNtcF83YzNhZmUzMgojZGVmaW5lIGZpbGVtYXBfc3luYyBfc2V0X3Zlcihm aWxlbWFwX3N5bmMpCiNkZWZpbmUgX192ZXJfZmlsZW1hcF9mZGF0YXN5bmMgc21wXzM1YWI4ZTA0 CiNkZWZpbmUgZmlsZW1hcF9mZGF0YXN5bmMgX3NldF92ZXIoZmlsZW1hcF9mZGF0YXN5bmMpCiNk ZWZpbmUgX192ZXJfZmlsZW1hcF9mZGF0YXdhaXQgc21wX2Q2NGRkZjMzCiNkZWZpbmUgZmlsZW1h cF9mZGF0YXdhaXQgX3NldF92ZXIoZmlsZW1hcF9mZGF0YXdhaXQpCiNkZWZpbmUgX192ZXJfbG9j a19wYWdlIHNtcF83YzVmMTNhYgojZGVmaW5lIGxvY2tfcGFnZSBfc2V0X3Zlcihsb2NrX3BhZ2Up CiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfY2hyZGV2IHNtcF84ZTcwOWUzMwojZGVmaW5lIHJlZ2lz dGVyX2NocmRldiBfc2V0X3ZlcihyZWdpc3Rlcl9jaHJkZXYpCiNkZWZpbmUgX192ZXJfdW5yZWdp c3Rlcl9jaHJkZXYgc21wX2MxOTJkNDkxCiNkZWZpbmUgdW5yZWdpc3Rlcl9jaHJkZXYgX3NldF92 ZXIodW5yZWdpc3Rlcl9jaHJkZXYpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfYmxrZGV2IHNtcF81 ZjlmYjllOQojZGVmaW5lIHJlZ2lzdGVyX2Jsa2RldiBfc2V0X3ZlcihyZWdpc3Rlcl9ibGtkZXYp CiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9ibGtkZXYgc21wX2VhYzFjNGFmCiNkZWZpbmUgdW5y ZWdpc3Rlcl9ibGtkZXYgX3NldF92ZXIodW5yZWdpc3Rlcl9ibGtkZXYpCiNkZWZpbmUgX192ZXJf dHR5X3JlZ2lzdGVyX2RyaXZlciBzbXBfNGEwNmVkM2YKI2RlZmluZSB0dHlfcmVnaXN0ZXJfZHJp dmVyIF9zZXRfdmVyKHR0eV9yZWdpc3Rlcl9kcml2ZXIpCiNkZWZpbmUgX192ZXJfdHR5X3VucmVn aXN0ZXJfZHJpdmVyIHNtcF8yZmFlNGFiNQojZGVmaW5lIHR0eV91bnJlZ2lzdGVyX2RyaXZlciBf c2V0X3Zlcih0dHlfdW5yZWdpc3Rlcl9kcml2ZXIpCiNkZWZpbmUgX192ZXJfdHR5X3N0ZF90ZXJt aW9zIHNtcF84OWFjNTI1NAojZGVmaW5lIHR0eV9zdGRfdGVybWlvcyBfc2V0X3Zlcih0dHlfc3Rk X3Rlcm1pb3MpCiNkZWZpbmUgX192ZXJfYmxvY2tfcmVhZCBzbXBfMTNkMDY1MGEKI2RlZmluZSBi bG9ja19yZWFkIF9zZXRfdmVyKGJsb2NrX3JlYWQpCiNkZWZpbmUgX192ZXJfYmxvY2tfd3JpdGUg c21wXzVlZDk3NWQ4CiNkZWZpbmUgYmxvY2tfd3JpdGUgX3NldF92ZXIoYmxvY2tfd3JpdGUpCiNk ZWZpbmUgX192ZXJfYmxrc2l6ZV9zaXplIHNtcF8yZjMwYjRiNgojZGVmaW5lIGJsa3NpemVfc2l6 ZSBfc2V0X3ZlcihibGtzaXplX3NpemUpCiNkZWZpbmUgX192ZXJfaGFyZHNlY3Rfc2l6ZSBzbXBf YzVmNTYwZDgKI2RlZmluZSBoYXJkc2VjdF9zaXplIF9zZXRfdmVyKGhhcmRzZWN0X3NpemUpCiNk ZWZpbmUgX192ZXJfYmxrX3NpemUgc21wX2EyZTBhMDgyCiNkZWZpbmUgYmxrX3NpemUgX3NldF92 ZXIoYmxrX3NpemUpCiNkZWZpbmUgX192ZXJfYmxrX2RldiBzbXBfZjE0YzRlMmIKI2RlZmluZSBi bGtfZGV2IF9zZXRfdmVyKGJsa19kZXYpCiNkZWZpbmUgX192ZXJfaXNfcmVhZF9vbmx5IHNtcF83 NDAyNzRjYQojZGVmaW5lIGlzX3JlYWRfb25seSBfc2V0X3Zlcihpc19yZWFkX29ubHkpCiNkZWZp bmUgX192ZXJfc2V0X2RldmljZV9ybyBzbXBfZGMwMzZlYmIKI2RlZmluZSBzZXRfZGV2aWNlX3Jv IF9zZXRfdmVyKHNldF9kZXZpY2Vfcm8pCiNkZWZpbmUgX192ZXJfYm1hcCBzbXBfMTRlZDZiZGYK I2RlZmluZSBibWFwIF9zZXRfdmVyKGJtYXApCiNkZWZpbmUgX192ZXJfc3luY19kZXYgc21wX2Zj MGIwZjQ5CiNkZWZpbmUgc3luY19kZXYgX3NldF92ZXIoc3luY19kZXYpCiNkZWZpbmUgX192ZXJf ZGV2ZnNfcmVnaXN0ZXJfcGFydGl0aW9ucyBzbXBfNDgyOWY0NTIKI2RlZmluZSBkZXZmc19yZWdp c3Rlcl9wYXJ0aXRpb25zIF9zZXRfdmVyKGRldmZzX3JlZ2lzdGVyX3BhcnRpdGlvbnMpCiNkZWZp bmUgX192ZXJfYmxrZGV2X29wZW4gc21wXzdhZmMxMDlmCiNkZWZpbmUgYmxrZGV2X29wZW4gX3Nl dF92ZXIoYmxrZGV2X29wZW4pCiNkZWZpbmUgX192ZXJfYmxrZGV2X2dldCBzbXBfMmQ4MmYzM2QK I2RlZmluZSBibGtkZXZfZ2V0IF9zZXRfdmVyKGJsa2Rldl9nZXQpCiNkZWZpbmUgX192ZXJfYmxr ZGV2X3B1dCBzbXBfNGQ5ZmY1NTEKI2RlZmluZSBibGtkZXZfcHV0IF9zZXRfdmVyKGJsa2Rldl9w dXQpCiNkZWZpbmUgX192ZXJfaW9jdGxfYnlfYmRldiBzbXBfMDM2YzA5OTgKI2RlZmluZSBpb2N0 bF9ieV9iZGV2IF9zZXRfdmVyKGlvY3RsX2J5X2JkZXYpCiNkZWZpbmUgX192ZXJfZ2VuZGlza19o ZWFkIHNtcF9kNWQ3YzAzMQojZGVmaW5lIGdlbmRpc2tfaGVhZCBfc2V0X3ZlcihnZW5kaXNrX2hl YWQpCiNkZWZpbmUgX192ZXJfZ3Jva19wYXJ0aXRpb25zIHNtcF9jNWI1ZDhiYwojZGVmaW5lIGdy b2tfcGFydGl0aW9ucyBfc2V0X3Zlcihncm9rX3BhcnRpdGlvbnMpCiNkZWZpbmUgX192ZXJfcmVn aXN0ZXJfZGlzayBzbXBfOWYwMThjNDIKI2RlZmluZSByZWdpc3Rlcl9kaXNrIF9zZXRfdmVyKHJl Z2lzdGVyX2Rpc2spCiNkZWZpbmUgX192ZXJfdHFfZGlzayBzbXBfNTM3M2RiYjYKI2RlZmluZSB0 cV9kaXNrIF9zZXRfdmVyKHRxX2Rpc2spCiNkZWZpbmUgX192ZXJfaW5pdF9idWZmZXIgc21wXzcz MjM5OGUyCiNkZWZpbmUgaW5pdF9idWZmZXIgX3NldF92ZXIoaW5pdF9idWZmZXIpCiNkZWZpbmUg X192ZXJfcmVmaWxlX2J1ZmZlciBzbXBfOWNhYTQ4YmYKI2RlZmluZSByZWZpbGVfYnVmZmVyIF9z ZXRfdmVyKHJlZmlsZV9idWZmZXIpCiNkZWZpbmUgX192ZXJfbWF4X3NlY3RvcnMgc21wXzZiZjU4 ZTMzCiNkZWZpbmUgbWF4X3NlY3RvcnMgX3NldF92ZXIobWF4X3NlY3RvcnMpCiNkZWZpbmUgX192 ZXJfbWF4X3JlYWRhaGVhZCBzbXBfM2U1NDgwYTQKI2RlZmluZSBtYXhfcmVhZGFoZWFkIF9zZXRf dmVyKG1heF9yZWFkYWhlYWQpCiNkZWZpbmUgX192ZXJfZmlsZV9tb3ZldG8gc21wX2M4M2E0ZGFj CiNkZWZpbmUgZmlsZV9tb3ZldG8gX3NldF92ZXIoZmlsZV9tb3ZldG8pCiNkZWZpbmUgX192ZXJf dHR5X2hhbmd1cCBzbXBfZmVhZTQ2NWYKI2RlZmluZSB0dHlfaGFuZ3VwIF9zZXRfdmVyKHR0eV9o YW5ndXApCiNkZWZpbmUgX192ZXJfdHR5X3dhaXRfdW50aWxfc2VudCBzbXBfZmRjYjI0NWYKI2Rl ZmluZSB0dHlfd2FpdF91bnRpbF9zZW50IF9zZXRfdmVyKHR0eV93YWl0X3VudGlsX3NlbnQpCiNk ZWZpbmUgX192ZXJfdHR5X2NoZWNrX2NoYW5nZSBzbXBfODQ4YTdiZjAKI2RlZmluZSB0dHlfY2hl Y2tfY2hhbmdlIF9zZXRfdmVyKHR0eV9jaGVja19jaGFuZ2UpCiNkZWZpbmUgX192ZXJfdHR5X2h1 bmdfdXBfcCBzbXBfMTc3ZDRiNzgKI2RlZmluZSB0dHlfaHVuZ191cF9wIF9zZXRfdmVyKHR0eV9o dW5nX3VwX3ApCiNkZWZpbmUgX192ZXJfdHR5X2ZsaXBfYnVmZmVyX3B1c2ggc21wXzA0Njk3NDcy CiNkZWZpbmUgdHR5X2ZsaXBfYnVmZmVyX3B1c2ggX3NldF92ZXIodHR5X2ZsaXBfYnVmZmVyX3B1 c2gpCiNkZWZpbmUgX192ZXJfdHR5X2dldF9iYXVkX3JhdGUgc21wXzUwZGU4N2NhCiNkZWZpbmUg dHR5X2dldF9iYXVkX3JhdGUgX3NldF92ZXIodHR5X2dldF9iYXVkX3JhdGUpCiNkZWZpbmUgX192 ZXJfZG9fU0FLIHNtcF9lMmJhYzdjYwojZGVmaW5lIGRvX1NBSyBfc2V0X3Zlcihkb19TQUspCiNk ZWZpbmUgX192ZXJfY29uc29sZV9wcmludCBzbXBfYjcxNGE5ODEKI2RlZmluZSBjb25zb2xlX3By aW50IF9zZXRfdmVyKGNvbnNvbGVfcHJpbnQpCiNkZWZpbmUgX192ZXJfY29uc29sZV9sb2dsZXZl bCBzbXBfODBjZTFiOGUKI2RlZmluZSBjb25zb2xlX2xvZ2xldmVsIF9zZXRfdmVyKGNvbnNvbGVf bG9nbGV2ZWwpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfZmlsZXN5c3RlbSBzbXBfNTZiNjY3ZjQK I2RlZmluZSByZWdpc3Rlcl9maWxlc3lzdGVtIF9zZXRfdmVyKHJlZ2lzdGVyX2ZpbGVzeXN0ZW0p CiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9maWxlc3lzdGVtIHNtcF8wYWIyMGEyNAojZGVmaW5l IHVucmVnaXN0ZXJfZmlsZXN5c3RlbSBfc2V0X3Zlcih1bnJlZ2lzdGVyX2ZpbGVzeXN0ZW0pCiNk ZWZpbmUgX192ZXJfa2Vybl9tb3VudCBzbXBfYzQ5MGEwNjQKI2RlZmluZSBrZXJuX21vdW50IF9z ZXRfdmVyKGtlcm5fbW91bnQpCiNkZWZpbmUgX192ZXJfX19tbnRwdXQgc21wX2NkODE4OTAyCiNk ZWZpbmUgX19tbnRwdXQgX3NldF92ZXIoX19tbnRwdXQpCiNkZWZpbmUgX192ZXJfbWF5X3Vtb3Vu dCBzbXBfYjM3NzNmMWUKI2RlZmluZSBtYXlfdW1vdW50IF9zZXRfdmVyKG1heV91bW91bnQpCiNk ZWZpbmUgX192ZXJfcmVnaXN0ZXJfYmluZm10IHNtcF84YTMyOTM3OAojZGVmaW5lIHJlZ2lzdGVy X2JpbmZtdCBfc2V0X3ZlcihyZWdpc3Rlcl9iaW5mbXQpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rl cl9iaW5mbXQgc21wXzI4MzIyY2YwCiNkZWZpbmUgdW5yZWdpc3Rlcl9iaW5mbXQgX3NldF92ZXIo dW5yZWdpc3Rlcl9iaW5mbXQpCiNkZWZpbmUgX192ZXJfc2VhcmNoX2JpbmFyeV9oYW5kbGVyIHNt cF8yNDViZmY4NgojZGVmaW5lIHNlYXJjaF9iaW5hcnlfaGFuZGxlciBfc2V0X3ZlcihzZWFyY2hf YmluYXJ5X2hhbmRsZXIpCiNkZWZpbmUgX192ZXJfcHJlcGFyZV9iaW5wcm0gc21wXzZiZWQ3OWI5 CiNkZWZpbmUgcHJlcGFyZV9iaW5wcm0gX3NldF92ZXIocHJlcGFyZV9iaW5wcm0pCiNkZWZpbmUg X192ZXJfY29tcHV0ZV9jcmVkcyBzbXBfZGIzZGU4N2UKI2RlZmluZSBjb21wdXRlX2NyZWRzIF9z ZXRfdmVyKGNvbXB1dGVfY3JlZHMpCiNkZWZpbmUgX192ZXJfcmVtb3ZlX2FyZ196ZXJvIHNtcF8z MjBhYjRlYQojZGVmaW5lIHJlbW92ZV9hcmdfemVybyBfc2V0X3ZlcihyZW1vdmVfYXJnX3plcm8p CiNkZWZpbmUgX192ZXJfc2V0X2JpbmZtdCBzbXBfNWIzODYyNWMKI2RlZmluZSBzZXRfYmluZm10 IF9zZXRfdmVyKHNldF9iaW5mbXQpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfZXhlY19kb21haW4g c21wXzcwMWYwMjRiCiNkZWZpbmUgcmVnaXN0ZXJfZXhlY19kb21haW4gX3NldF92ZXIocmVnaXN0 ZXJfZXhlY19kb21haW4pCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9leGVjX2RvbWFpbiBzbXBf NWY0MDZhNGEKI2RlZmluZSB1bnJlZ2lzdGVyX2V4ZWNfZG9tYWluIF9zZXRfdmVyKHVucmVnaXN0 ZXJfZXhlY19kb21haW4pCiNkZWZpbmUgX192ZXJfX19zZXRfcGVyc29uYWxpdHkgc21wXzdkNjc4 YjY5CiNkZWZpbmUgX19zZXRfcGVyc29uYWxpdHkgX3NldF92ZXIoX19zZXRfcGVyc29uYWxpdHkp CiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfc3lzY3RsX3RhYmxlIHNtcF9iMzNlNDUxNQojZGVmaW5l IHJlZ2lzdGVyX3N5c2N0bF90YWJsZSBfc2V0X3ZlcihyZWdpc3Rlcl9zeXNjdGxfdGFibGUpCiNk ZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUgc21wXzQ2ZWJiNDM5CiNkZWZpbmUg dW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUgX3NldF92ZXIodW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUp CiNkZWZpbmUgX192ZXJfc3lzY3RsX3N0cmluZyBzbXBfOGZiZDAwODQKI2RlZmluZSBzeXNjdGxf c3RyaW5nIF9zZXRfdmVyKHN5c2N0bF9zdHJpbmcpCiNkZWZpbmUgX192ZXJfc3lzY3RsX2ludHZl YyBzbXBfMDE1ZDdhNzUKI2RlZmluZSBzeXNjdGxfaW50dmVjIF9zZXRfdmVyKHN5c2N0bF9pbnR2 ZWMpCiNkZWZpbmUgX192ZXJfc3lzY3RsX2ppZmZpZXMgc21wXzczMTlkNzZlCiNkZWZpbmUgc3lz Y3RsX2ppZmZpZXMgX3NldF92ZXIoc3lzY3RsX2ppZmZpZXMpCiNkZWZpbmUgX192ZXJfcHJvY19k b3N0cmluZyBzbXBfNzE1NjM2ZDgKI2RlZmluZSBwcm9jX2Rvc3RyaW5nIF9zZXRfdmVyKHByb2Nf ZG9zdHJpbmcpCiNkZWZpbmUgX192ZXJfcHJvY19kb2ludHZlYyBzbXBfYWVjOTA3ODYKI2RlZmlu ZSBwcm9jX2RvaW50dmVjIF9zZXRfdmVyKHByb2NfZG9pbnR2ZWMpCiNkZWZpbmUgX192ZXJfcHJv Y19kb2ludHZlY19qaWZmaWVzIHNtcF80YzhjZjgwZgojZGVmaW5lIHByb2NfZG9pbnR2ZWNfamlm ZmllcyBfc2V0X3Zlcihwcm9jX2RvaW50dmVjX2ppZmZpZXMpCiNkZWZpbmUgX192ZXJfcHJvY19k b2ludHZlY19taW5tYXggc21wXzU5YmVmYzU2CiNkZWZpbmUgcHJvY19kb2ludHZlY19taW5tYXgg X3NldF92ZXIocHJvY19kb2ludHZlY19taW5tYXgpCiNkZWZpbmUgX192ZXJfcHJvY19kb3Vsb25n dmVjX21zX2ppZmZpZXNfbWlubWF4IHNtcF9kMTNjYmUxYwojZGVmaW5lIHByb2NfZG91bG9uZ3Zl Y19tc19qaWZmaWVzX21pbm1heCBfc2V0X3Zlcihwcm9jX2RvdWxvbmd2ZWNfbXNfamlmZmllc19t aW5tYXgpCiNkZWZpbmUgX192ZXJfcHJvY19kb3Vsb25ndmVjX21pbm1heCBzbXBfMTFlMzZmMzEK I2RlZmluZSBwcm9jX2RvdWxvbmd2ZWNfbWlubWF4IF9zZXRfdmVyKHByb2NfZG91bG9uZ3ZlY19t aW5tYXgpCiNkZWZpbmUgX192ZXJfYWRkX3RpbWVyIHNtcF9hMTllYWNmOAojZGVmaW5lIGFkZF90 aW1lciBfc2V0X3ZlcihhZGRfdGltZXIpCiNkZWZpbmUgX192ZXJfZGVsX3RpbWVyIHNtcF9mYzYy ZjE2ZAojZGVmaW5lIGRlbF90aW1lciBfc2V0X3ZlcihkZWxfdGltZXIpCiNkZWZpbmUgX192ZXJf cmVxdWVzdF9pcnEgc21wX2FiYjc2YTI3CiNkZWZpbmUgcmVxdWVzdF9pcnEgX3NldF92ZXIocmVx dWVzdF9pcnEpCiNkZWZpbmUgX192ZXJfZnJlZV9pcnEgc21wX2YyMGRhYmQ4CiNkZWZpbmUgZnJl ZV9pcnEgX3NldF92ZXIoZnJlZV9pcnEpCiNkZWZpbmUgX192ZXJfYWRkX3dhaXRfcXVldWUgc21w Xzc2ODg0MmU3CiNkZWZpbmUgYWRkX3dhaXRfcXVldWUgX3NldF92ZXIoYWRkX3dhaXRfcXVldWUp CiNkZWZpbmUgX192ZXJfYWRkX3dhaXRfcXVldWVfZXhjbHVzaXZlIHNtcF8wMDI4N2M5OQojZGVm aW5lIGFkZF93YWl0X3F1ZXVlX2V4Y2x1c2l2ZSBfc2V0X3ZlcihhZGRfd2FpdF9xdWV1ZV9leGNs dXNpdmUpCiNkZWZpbmUgX192ZXJfcmVtb3ZlX3dhaXRfcXVldWUgc21wXzEzM2FhZWQ4CiNkZWZp bmUgcmVtb3ZlX3dhaXRfcXVldWUgX3NldF92ZXIocmVtb3ZlX3dhaXRfcXVldWUpCiNkZWZpbmUg X192ZXJfd2FpdF9mb3JfY29tcGxldGlvbiBzbXBfNjc5YjExYzcKI2RlZmluZSB3YWl0X2Zvcl9j b21wbGV0aW9uIF9zZXRfdmVyKHdhaXRfZm9yX2NvbXBsZXRpb24pCiNkZWZpbmUgX192ZXJfY29t cGxldGUgc21wXzlmN2ZiMWU3CiNkZWZpbmUgY29tcGxldGUgX3NldF92ZXIoY29tcGxldGUpCiNk ZWZpbmUgX192ZXJfcHJvYmVfaXJxX29uIHNtcF9iMTIxMzkwYQojZGVmaW5lIHByb2JlX2lycV9v biBfc2V0X3Zlcihwcm9iZV9pcnFfb24pCiNkZWZpbmUgX192ZXJfcHJvYmVfaXJxX29mZiBzbXBf YWI2MDA0MjEKI2RlZmluZSBwcm9iZV9pcnFfb2ZmIF9zZXRfdmVyKHByb2JlX2lycV9vZmYpCiNk ZWZpbmUgX192ZXJfZGVsX3RpbWVyX3N5bmMgc21wX2RhZmYyNjZhCiNkZWZpbmUgZGVsX3RpbWVy X3N5bmMgX3NldF92ZXIoZGVsX3RpbWVyX3N5bmMpCiNkZWZpbmUgX192ZXJfbW9kX3RpbWVyIHNt cF8xZjEzZDMwOQojZGVmaW5lIG1vZF90aW1lciBfc2V0X3Zlcihtb2RfdGltZXIpCiNkZWZpbmUg X192ZXJfdHFfdGltZXIgc21wX2ZhM2U5YWNjCiNkZWZpbmUgdHFfdGltZXIgX3NldF92ZXIodHFf dGltZXIpCiNkZWZpbmUgX192ZXJfdHFfaW1tZWRpYXRlIHNtcF8wZGEwZGNkMQojZGVmaW5lIHRx X2ltbWVkaWF0ZSBfc2V0X3Zlcih0cV9pbW1lZGlhdGUpCiNkZWZpbmUgX192ZXJfdHF1ZXVlX2xv Y2sgc21wX2I3YTBjMGI1CiNkZWZpbmUgdHF1ZXVlX2xvY2sgX3NldF92ZXIodHF1ZXVlX2xvY2sp CiNkZWZpbmUgX192ZXJfX19icmxvY2tfYXJyYXkgc21wXzk3NDU5OTFhCiNkZWZpbmUgX19icmxv Y2tfYXJyYXkgX3NldF92ZXIoX19icmxvY2tfYXJyYXkpCiNkZWZpbmUgX192ZXJfX19icl93cml0 ZV9sb2NrIHNtcF9lNGU1MTc2YwojZGVmaW5lIF9fYnJfd3JpdGVfbG9jayBfc2V0X3ZlcihfX2Jy X3dyaXRlX2xvY2spCiNkZWZpbmUgX192ZXJfX19icl93cml0ZV91bmxvY2sgc21wXzU4NmM1NjNh CiNkZWZpbmUgX19icl93cml0ZV91bmxvY2sgX3NldF92ZXIoX19icl93cml0ZV91bmxvY2spCiNk ZWZpbmUgX192ZXJfYWxsb2Nfa2lvdmVjIHNtcF9jZTllNDA5NAojZGVmaW5lIGFsbG9jX2tpb3Zl YyBfc2V0X3ZlcihhbGxvY19raW92ZWMpCiNkZWZpbmUgX192ZXJfZnJlZV9raW92ZWMgc21wXzFl MTA5MTIzCiNkZWZpbmUgZnJlZV9raW92ZWMgX3NldF92ZXIoZnJlZV9raW92ZWMpCiNkZWZpbmUg X192ZXJfZXhwYW5kX2tpb2J1ZiBzbXBfYzU1MzJkZTAKI2RlZmluZSBleHBhbmRfa2lvYnVmIF9z ZXRfdmVyKGV4cGFuZF9raW9idWYpCiNkZWZpbmUgX192ZXJfbWFwX3VzZXJfa2lvYnVmIHNtcF9l OTQyYmI2ZgojZGVmaW5lIG1hcF91c2VyX2tpb2J1ZiBfc2V0X3ZlcihtYXBfdXNlcl9raW9idWYp CiNkZWZpbmUgX192ZXJfdW5tYXBfa2lvYnVmIHNtcF9lMjQzMzA2YwojZGVmaW5lIHVubWFwX2tp b2J1ZiBfc2V0X3Zlcih1bm1hcF9raW9idWYpCiNkZWZpbmUgX192ZXJfbG9ja19raW92ZWMgc21w XzEwMjRlODI1CiNkZWZpbmUgbG9ja19raW92ZWMgX3NldF92ZXIobG9ja19raW92ZWMpCiNkZWZp bmUgX192ZXJfdW5sb2NrX2tpb3ZlYyBzbXBfYTVkNjJlNDEKI2RlZmluZSB1bmxvY2tfa2lvdmVj IF9zZXRfdmVyKHVubG9ja19raW92ZWMpCiNkZWZpbmUgX192ZXJfYnJ3X2tpb3ZlYyBzbXBfMzQ0 ZjQ5NDIKI2RlZmluZSBicndfa2lvdmVjIF9zZXRfdmVyKGJyd19raW92ZWMpCiNkZWZpbmUgX192 ZXJfa2lvYnVmX3dhaXRfZm9yX2lvIHNtcF85Y2ZhZDlhZQojZGVmaW5lIGtpb2J1Zl93YWl0X2Zv cl9pbyBfc2V0X3ZlcihraW9idWZfd2FpdF9mb3JfaW8pCiNkZWZpbmUgX192ZXJfcmVxdWVzdF9k bWEgc21wXzQzNDM1NDgwCiNkZWZpbmUgcmVxdWVzdF9kbWEgX3NldF92ZXIocmVxdWVzdF9kbWEp CiNkZWZpbmUgX192ZXJfZnJlZV9kbWEgc21wXzcyYjI0M2Q0CiNkZWZpbmUgZnJlZV9kbWEgX3Nl dF92ZXIoZnJlZV9kbWEpCiNkZWZpbmUgX192ZXJfZG1hX3NwaW5fbG9jayBzbXBfMzc1YzQxZjgK I2RlZmluZSBkbWFfc3Bpbl9sb2NrIF9zZXRfdmVyKGRtYV9zcGluX2xvY2spCiNkZWZpbmUgX192 ZXJfcmVxdWVzdF9yZXNvdXJjZSBzbXBfNDE2ODVjZmIKI2RlZmluZSByZXF1ZXN0X3Jlc291cmNl IF9zZXRfdmVyKHJlcXVlc3RfcmVzb3VyY2UpCiNkZWZpbmUgX192ZXJfcmVsZWFzZV9yZXNvdXJj ZSBzbXBfODE0ZTg0MDcKI2RlZmluZSByZWxlYXNlX3Jlc291cmNlIF9zZXRfdmVyKHJlbGVhc2Vf cmVzb3VyY2UpCiNkZWZpbmUgX192ZXJfYWxsb2NhdGVfcmVzb3VyY2Ugc21wX2E3MTU4MTJiCiNk ZWZpbmUgYWxsb2NhdGVfcmVzb3VyY2UgX3NldF92ZXIoYWxsb2NhdGVfcmVzb3VyY2UpCiNkZWZp bmUgX192ZXJfY2hlY2tfcmVzb3VyY2Ugc21wX2Q4ZDc4YWFhCiNkZWZpbmUgY2hlY2tfcmVzb3Vy Y2UgX3NldF92ZXIoY2hlY2tfcmVzb3VyY2UpCiNkZWZpbmUgX192ZXJfX19yZXF1ZXN0X3JlZ2lv biBzbXBfMWExYTRmMDkKI2RlZmluZSBfX3JlcXVlc3RfcmVnaW9uIF9zZXRfdmVyKF9fcmVxdWVz dF9yZWdpb24pCiNkZWZpbmUgX192ZXJfX19jaGVja19yZWdpb24gc21wX2YxZDBjZGFiCiNkZWZp bmUgX19jaGVja19yZWdpb24gX3NldF92ZXIoX19jaGVja19yZWdpb24pCiNkZWZpbmUgX192ZXJf X19yZWxlYXNlX3JlZ2lvbiBzbXBfZDQ5NTAxZDQKI2RlZmluZSBfX3JlbGVhc2VfcmVnaW9uIF9z ZXRfdmVyKF9fcmVsZWFzZV9yZWdpb24pCiNkZWZpbmUgX192ZXJfaW9wb3J0X3Jlc291cmNlIHNt cF84NjVlYmNjZAojZGVmaW5lIGlvcG9ydF9yZXNvdXJjZSBfc2V0X3Zlcihpb3BvcnRfcmVzb3Vy Y2UpCiNkZWZpbmUgX192ZXJfaW9tZW1fcmVzb3VyY2Ugc21wXzllZmVkNWFmCiNkZWZpbmUgaW9t ZW1fcmVzb3VyY2UgX3NldF92ZXIoaW9tZW1fcmVzb3VyY2UpCiNkZWZpbmUgX192ZXJfdXBfYW5k X2V4aXQgc21wXzllYjkyNmNhCiNkZWZpbmUgdXBfYW5kX2V4aXQgX3NldF92ZXIodXBfYW5kX2V4 aXQpCiNkZWZpbmUgX192ZXJfX193YWtlX3VwIHNtcF82OWRkYmYxNQojZGVmaW5lIF9fd2FrZV91 cCBfc2V0X3ZlcihfX3dha2VfdXApCiNkZWZpbmUgX192ZXJfd2FrZV91cF9wcm9jZXNzIHNtcF81 NTBkODRhNQojZGVmaW5lIHdha2VfdXBfcHJvY2VzcyBfc2V0X3Zlcih3YWtlX3VwX3Byb2Nlc3Mp CiNkZWZpbmUgX192ZXJfc2xlZXBfb24gc21wXzhlYTIzMWZiCiNkZWZpbmUgc2xlZXBfb24gX3Nl dF92ZXIoc2xlZXBfb24pCiNkZWZpbmUgX192ZXJfc2xlZXBfb25fdGltZW91dCBzbXBfNTY0NTBi M2UKI2RlZmluZSBzbGVlcF9vbl90aW1lb3V0IF9zZXRfdmVyKHNsZWVwX29uX3RpbWVvdXQpCiNk ZWZpbmUgX192ZXJfaW50ZXJydXB0aWJsZV9zbGVlcF9vbiBzbXBfNDg0YzVkYjYKI2RlZmluZSBp bnRlcnJ1cHRpYmxlX3NsZWVwX29uIF9zZXRfdmVyKGludGVycnVwdGlibGVfc2xlZXBfb24pCiNk ZWZpbmUgX192ZXJfaW50ZXJydXB0aWJsZV9zbGVlcF9vbl90aW1lb3V0IHNtcF8zMmEwOGNkMwoj ZGVmaW5lIGludGVycnVwdGlibGVfc2xlZXBfb25fdGltZW91dCBfc2V0X3ZlcihpbnRlcnJ1cHRp YmxlX3NsZWVwX29uX3RpbWVvdXQpCiNkZWZpbmUgX192ZXJfc2NoZWR1bGUgc21wX2E0NGZmZmMx CiNkZWZpbmUgc2NoZWR1bGUgX3NldF92ZXIoc2NoZWR1bGUpCiNkZWZpbmUgX192ZXJfc2NoZWR1 bGVfdGltZW91dCBzbXBfZDYyYzgzM2YKI2RlZmluZSBzY2hlZHVsZV90aW1lb3V0IF9zZXRfdmVy KHNjaGVkdWxlX3RpbWVvdXQpCiNkZWZpbmUgX192ZXJfamlmZmllcyBzbXBfMGRhMDJkNjcKI2Rl ZmluZSBqaWZmaWVzIF9zZXRfdmVyKGppZmZpZXMpCiNkZWZpbmUgX192ZXJfeHRpbWUgc21wX2Yz MWRkZjgzCiNkZWZpbmUgeHRpbWUgX3NldF92ZXIoeHRpbWUpCiNkZWZpbmUgX192ZXJfZG9fZ2V0 dGltZW9mZGF5IHNtcF83MjI3MGUzNQojZGVmaW5lIGRvX2dldHRpbWVvZmRheSBfc2V0X3Zlcihk b19nZXR0aW1lb2ZkYXkpCiNkZWZpbmUgX192ZXJfZG9fc2V0dGltZW9mZGF5IHNtcF8xOWQ3YjFm ZgojZGVmaW5lIGRvX3NldHRpbWVvZmRheSBfc2V0X3Zlcihkb19zZXR0aW1lb2ZkYXkpCiNkZWZp bmUgX192ZXJfa3N0YXQgc21wX2NmNWZhOTZjCiNkZWZpbmUga3N0YXQgX3NldF92ZXIoa3N0YXQp CiNkZWZpbmUgX192ZXJfbnJfcnVubmluZyBzbXBfY2EzYzZkNzgKI2RlZmluZSBucl9ydW5uaW5n IF9zZXRfdmVyKG5yX3J1bm5pbmcpCiNkZWZpbmUgX192ZXJfcGFuaWMgc21wXzAxMDc1YmYwCiNk ZWZpbmUgcGFuaWMgX3NldF92ZXIocGFuaWMpCiNkZWZpbmUgX192ZXJfcHJpbnRrIHNtcF84Mjdk NTgwNwojZGVmaW5lIHByaW50ayBfc2V0X3ZlcihwcmludGspCiNkZWZpbmUgX192ZXJfc3ByaW50 ZiBzbXBfM2MyYzVhZjUKI2RlZmluZSBzcHJpbnRmIF9zZXRfdmVyKHNwcmludGYpCiNkZWZpbmUg X192ZXJfdnNwcmludGYgc21wXzk1NGNiYjI2CiNkZWZpbmUgdnNwcmludGYgX3NldF92ZXIodnNw cmludGYpCiNkZWZpbmUgX192ZXJfa2Rldm5hbWUgc21wX2MyNThjOTA2CiNkZWZpbmUga2Rldm5h bWUgX3NldF92ZXIoa2Rldm5hbWUpCiNkZWZpbmUgX192ZXJfYmRldm5hbWUgc21wX2QwNDc4MmU2 CiNkZWZpbmUgYmRldm5hbWUgX3NldF92ZXIoYmRldm5hbWUpCiNkZWZpbmUgX192ZXJfY2Rldm5h bWUgc21wXzk3NTQ3NDFkCiNkZWZpbmUgY2Rldm5hbWUgX3NldF92ZXIoY2Rldm5hbWUpCiNkZWZp bmUgX192ZXJfc2ltcGxlX3N0cnRvdWwgc21wXzIwMDAwMzI5CiNkZWZpbmUgc2ltcGxlX3N0cnRv dWwgX3NldF92ZXIoc2ltcGxlX3N0cnRvdWwpCiNkZWZpbmUgX192ZXJfc3lzdGVtX3V0c25hbWUg c21wX2IxMmNkZmU3CiNkZWZpbmUgc3lzdGVtX3V0c25hbWUgX3NldF92ZXIoc3lzdGVtX3V0c25h bWUpCiNkZWZpbmUgX192ZXJfdXRzX3NlbSBzbXBfMzhhZWQyMDcKI2RlZmluZSB1dHNfc2VtIF9z ZXRfdmVyKHV0c19zZW0pCiNkZWZpbmUgX192ZXJfc3lzX2NhbGxfdGFibGUgc21wX2RmZGIxOGJk CiNkZWZpbmUgc3lzX2NhbGxfdGFibGUgX3NldF92ZXIoc3lzX2NhbGxfdGFibGUpCiNkZWZpbmUg X192ZXJfbWFjaGluZV9yZXN0YXJ0IHNtcF9lNmUzZWY3MAojZGVmaW5lIG1hY2hpbmVfcmVzdGFy dCBfc2V0X3ZlcihtYWNoaW5lX3Jlc3RhcnQpCiNkZWZpbmUgX192ZXJfbWFjaGluZV9oYWx0IHNt cF85YWEzMjYzMAojZGVmaW5lIG1hY2hpbmVfaGFsdCBfc2V0X3ZlcihtYWNoaW5lX2hhbHQpCiNk ZWZpbmUgX192ZXJfbWFjaGluZV9wb3dlcl9vZmYgc21wXzA5MWM4MjRhCiNkZWZpbmUgbWFjaGlu ZV9wb3dlcl9vZmYgX3NldF92ZXIobWFjaGluZV9wb3dlcl9vZmYpCiNkZWZpbmUgX192ZXJfX2N0 eXBlIHNtcF84ZDM4OTRmMgojZGVmaW5lIF9jdHlwZSBfc2V0X3ZlcihfY3R5cGUpCiNkZWZpbmUg X192ZXJfc2VjdXJlX3RjcF9zZXF1ZW5jZV9udW1iZXIgc21wXzFlNjg4NDFmCiNkZWZpbmUgc2Vj dXJlX3RjcF9zZXF1ZW5jZV9udW1iZXIgX3NldF92ZXIoc2VjdXJlX3RjcF9zZXF1ZW5jZV9udW1i ZXIpCiNkZWZpbmUgX192ZXJfZ2V0X3JhbmRvbV9ieXRlcyBzbXBfNzlhYTA0YTIKI2RlZmluZSBn ZXRfcmFuZG9tX2J5dGVzIF9zZXRfdmVyKGdldF9yYW5kb21fYnl0ZXMpCiNkZWZpbmUgX192ZXJf c2VjdXJlYml0cyBzbXBfYWJlNzc0ODQKI2RlZmluZSBzZWN1cmViaXRzIF9zZXRfdmVyKHNlY3Vy ZWJpdHMpCiNkZWZpbmUgX192ZXJfY2FwX2JzZXQgc21wXzU5YWI0MDgwCiNkZWZpbmUgY2FwX2Jz ZXQgX3NldF92ZXIoY2FwX2JzZXQpCiNkZWZpbmUgX192ZXJfZGFlbW9uaXplIHNtcF9kNjZhMzU0 YQojZGVmaW5lIGRhZW1vbml6ZSBfc2V0X3ZlcihkYWVtb25pemUpCiNkZWZpbmUgX192ZXJfY3N1 bV9wYXJ0aWFsIHNtcF85NDA5NWMxNgojZGVmaW5lIGNzdW1fcGFydGlhbCBfc2V0X3Zlcihjc3Vt X3BhcnRpYWwpCiNkZWZpbmUgX192ZXJfc2V0dXBfYXJnX3BhZ2VzIHNtcF9kYWJiYmY2ZgojZGVm aW5lIHNldHVwX2FyZ19wYWdlcyBfc2V0X3ZlcihzZXR1cF9hcmdfcGFnZXMpCiNkZWZpbmUgX192 ZXJfY29weV9zdHJpbmdzX2tlcm5lbCBzbXBfMTc5Mzg0M2UKI2RlZmluZSBjb3B5X3N0cmluZ3Nf a2VybmVsIF9zZXRfdmVyKGNvcHlfc3RyaW5nc19rZXJuZWwpCiNkZWZpbmUgX192ZXJfZG9fZXhl Y3ZlIHNtcF9kZTE5ZjAzYgojZGVmaW5lIGRvX2V4ZWN2ZSBfc2V0X3Zlcihkb19leGVjdmUpCiNk ZWZpbmUgX192ZXJfZmx1c2hfb2xkX2V4ZWMgc21wXzRlNjQwNWE4CiNkZWZpbmUgZmx1c2hfb2xk X2V4ZWMgX3NldF92ZXIoZmx1c2hfb2xkX2V4ZWMpCiNkZWZpbmUgX192ZXJfa2VybmVsX3JlYWQg c21wX2Q5ZjM2NWVmCiNkZWZpbmUga2VybmVsX3JlYWQgX3NldF92ZXIoa2VybmVsX3JlYWQpCiNk ZWZpbmUgX192ZXJfb3Blbl9leGVjIHNtcF9jNTg5MjQ2MQojZGVmaW5lIG9wZW5fZXhlYyBfc2V0 X3ZlcihvcGVuX2V4ZWMpCiNkZWZpbmUgX192ZXJfc2lfbWVtaW5mbyBzbXBfYjNhMzA3YzYKI2Rl ZmluZSBzaV9tZW1pbmZvIF9zZXRfdmVyKHNpX21lbWluZm8pCiNkZWZpbmUgX192ZXJfc3lzX3R6 IHNtcF9iYWZlYmY3MQojZGVmaW5lIHN5c190eiBfc2V0X3ZlcihzeXNfdHopCiNkZWZpbmUgX192 ZXJfZmlsZV9mc3luYyBzbXBfMTcwZWMzMTcKI2RlZmluZSBmaWxlX2ZzeW5jIF9zZXRfdmVyKGZp bGVfZnN5bmMpCiNkZWZpbmUgX192ZXJfZnN5bmNfaW5vZGVfYnVmZmVycyBzbXBfM2YxZGVjM2IK I2RlZmluZSBmc3luY19pbm9kZV9idWZmZXJzIF9zZXRfdmVyKGZzeW5jX2lub2RlX2J1ZmZlcnMp CiNkZWZpbmUgX192ZXJfY2xlYXJfaW5vZGUgc21wXzE1YjEyYTM3CiNkZWZpbmUgY2xlYXJfaW5v ZGUgX3NldF92ZXIoY2xlYXJfaW5vZGUpCiNkZWZpbmUgX192ZXJfbnJfYXN5bmNfcGFnZXMgc21w X2FiMzdhYzU4CiNkZWZpbmUgbnJfYXN5bmNfcGFnZXMgX3NldF92ZXIobnJfYXN5bmNfcGFnZXMp CiNkZWZpbmUgX192ZXJfX19fc3RydG9rIHNtcF8yOTgwNWMxMwojZGVmaW5lIF9fX3N0cnRvayBf c2V0X3ZlcihfX19zdHJ0b2spCiNkZWZpbmUgX192ZXJfaW5pdF9zcGVjaWFsX2lub2RlIHNtcF9i MGRlN2U0NwojZGVmaW5lIGluaXRfc3BlY2lhbF9pbm9kZSBfc2V0X3Zlcihpbml0X3NwZWNpYWxf aW5vZGUpCiNkZWZpbmUgX192ZXJfcmVhZF9haGVhZCBzbXBfMGFiYjdiMDcKI2RlZmluZSByZWFk X2FoZWFkIF9zZXRfdmVyKHJlYWRfYWhlYWQpCiNkZWZpbmUgX192ZXJfZ2V0X2hhc2hfdGFibGUg c21wXzNhZTM2ZmVhCiNkZWZpbmUgZ2V0X2hhc2hfdGFibGUgX3NldF92ZXIoZ2V0X2hhc2hfdGFi bGUpCiNkZWZpbmUgX192ZXJfZ2V0X2VtcHR5X2lub2RlIHNtcF8yYjlhN2RlZAojZGVmaW5lIGdl dF9lbXB0eV9pbm9kZSBfc2V0X3ZlcihnZXRfZW1wdHlfaW5vZGUpCiNkZWZpbmUgX192ZXJfaW5z ZXJ0X2lub2RlX2hhc2ggc21wXzVjNjRiMWY4CiNkZWZpbmUgaW5zZXJ0X2lub2RlX2hhc2ggX3Nl dF92ZXIoaW5zZXJ0X2lub2RlX2hhc2gpCiNkZWZpbmUgX192ZXJfcmVtb3ZlX2lub2RlX2hhc2gg c21wX2ZiODI0ZTExCiNkZWZpbmUgcmVtb3ZlX2lub2RlX2hhc2ggX3NldF92ZXIocmVtb3ZlX2lu b2RlX2hhc2gpCiNkZWZpbmUgX192ZXJfYnVmZmVyX2luc2VydF9pbm9kZV9xdWV1ZSBzbXBfODlj MmE1NzcKI2RlZmluZSBidWZmZXJfaW5zZXJ0X2lub2RlX3F1ZXVlIF9zZXRfdmVyKGJ1ZmZlcl9p bnNlcnRfaW5vZGVfcXVldWUpCiNkZWZpbmUgX192ZXJfbWFrZV9iYWRfaW5vZGUgc21wX2Q2OWRk NTgyCiNkZWZpbmUgbWFrZV9iYWRfaW5vZGUgX3NldF92ZXIobWFrZV9iYWRfaW5vZGUpCiNkZWZp bmUgX192ZXJfaXNfYmFkX2lub2RlIHNtcF9mNDg4YzRlMQojZGVmaW5lIGlzX2JhZF9pbm9kZSBf c2V0X3Zlcihpc19iYWRfaW5vZGUpCiNkZWZpbmUgX192ZXJfZXZlbnQgc21wXzdiMTZjMzQ0CiNk ZWZpbmUgZXZlbnQgX3NldF92ZXIoZXZlbnQpCiNkZWZpbmUgX192ZXJfYnJ3X3BhZ2Ugc21wXzIw ZGM2MzVjCiNkZWZpbmUgYnJ3X3BhZ2UgX3NldF92ZXIoYnJ3X3BhZ2UpCiNkZWZpbmUgX192ZXJf ZnNfb3ZlcmZsb3d1aWQgc21wXzI1ODIwYzY0CiNkZWZpbmUgZnNfb3ZlcmZsb3d1aWQgX3NldF92 ZXIoZnNfb3ZlcmZsb3d1aWQpCiNkZWZpbmUgX192ZXJfZnNfb3ZlcmZsb3dnaWQgc21wX2RmOTI5 MzcwCiNkZWZpbmUgZnNfb3ZlcmZsb3dnaWQgX3NldF92ZXIoZnNfb3ZlcmZsb3dnaWQpCiNkZWZp bmUgX192ZXJfZmFzeW5jX2hlbHBlciBzbXBfYjI2ZWVmMzAKI2RlZmluZSBmYXN5bmNfaGVscGVy IF9zZXRfdmVyKGZhc3luY19oZWxwZXIpCiNkZWZpbmUgX192ZXJfa2lsbF9mYXN5bmMgc21wXzQ2 ODIwMzRjCiNkZWZpbmUga2lsbF9mYXN5bmMgX3NldF92ZXIoa2lsbF9mYXN5bmMpCiNkZWZpbmUg X192ZXJfZGlza19uYW1lIHNtcF9mNDg0NzEwMwojZGVmaW5lIGRpc2tfbmFtZSBfc2V0X3Zlcihk aXNrX25hbWUpCiNkZWZpbmUgX192ZXJfZ2V0X3dyaXRlX2FjY2VzcyBzbXBfNzc3YmNmNzkKI2Rl ZmluZSBnZXRfd3JpdGVfYWNjZXNzIF9zZXRfdmVyKGdldF93cml0ZV9hY2Nlc3MpCiNkZWZpbmUg X192ZXJfcmVnaXN0ZXJfY29uc29sZSBzbXBfMjBhMzk0NzIKI2RlZmluZSByZWdpc3Rlcl9jb25z b2xlIF9zZXRfdmVyKHJlZ2lzdGVyX2NvbnNvbGUpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9j b25zb2xlIHNtcF8zMjI0YTVjNAojZGVmaW5lIHVucmVnaXN0ZXJfY29uc29sZSBfc2V0X3Zlcih1 bnJlZ2lzdGVyX2NvbnNvbGUpCiNkZWZpbmUgX192ZXJfZ2V0X2Zhc3RfdGltZSBzbXBfNjA3NDMw MjIKI2RlZmluZSBnZXRfZmFzdF90aW1lIF9zZXRfdmVyKGdldF9mYXN0X3RpbWUpCiNkZWZpbmUg X192ZXJfc3RybmljbXAgc21wXzc1NmU2OTkyCiNkZWZpbmUgc3RybmljbXAgX3NldF92ZXIoc3Ry bmljbXApCiNkZWZpbmUgX192ZXJfc3Ryc3BuIHNtcF8zZmE5MTNkYQojZGVmaW5lIHN0cnNwbiBf c2V0X3ZlcihzdHJzcG4pCiNkZWZpbmUgX192ZXJfc3Ryc2VwIHNtcF84NWRmOWI2YwojZGVmaW5l IHN0cnNlcCBfc2V0X3ZlcihzdHJzZXApCiNkZWZpbmUgX192ZXJfdGFza2xldF9oaV92ZWMgc21w X2E0YWY4NDlmCiNkZWZpbmUgdGFza2xldF9oaV92ZWMgX3NldF92ZXIodGFza2xldF9oaV92ZWMp CiNkZWZpbmUgX192ZXJfdGFza2xldF92ZWMgc21wX2EzMDFjOTNjCiNkZWZpbmUgdGFza2xldF92 ZWMgX3NldF92ZXIodGFza2xldF92ZWMpCiNkZWZpbmUgX192ZXJfYmhfdGFza192ZWMgc21wXzFi YWUyYWFlCiNkZWZpbmUgYmhfdGFza192ZWMgX3NldF92ZXIoYmhfdGFza192ZWMpCiNkZWZpbmUg X192ZXJfaW5pdF9iaCBzbXBfZjZjZjI3Y2MKI2RlZmluZSBpbml0X2JoIF9zZXRfdmVyKGluaXRf YmgpCiNkZWZpbmUgX192ZXJfcmVtb3ZlX2JoIHNtcF9iYzUyNGEzMgojZGVmaW5lIHJlbW92ZV9i aCBfc2V0X3ZlcihyZW1vdmVfYmgpCiNkZWZpbmUgX192ZXJfdGFza2xldF9pbml0IHNtcF82OTU3 NWJjYwojZGVmaW5lIHRhc2tsZXRfaW5pdCBfc2V0X3Zlcih0YXNrbGV0X2luaXQpCiNkZWZpbmUg X192ZXJfdGFza2xldF9raWxsIHNtcF83NGUwNWQ4YwojZGVmaW5lIHRhc2tsZXRfa2lsbCBfc2V0 X3Zlcih0YXNrbGV0X2tpbGwpCiNkZWZpbmUgX192ZXJfX19ydW5fdGFza19xdWV1ZSBzbXBfMzg4 OWIxMWMKI2RlZmluZSBfX3J1bl90YXNrX3F1ZXVlIF9zZXRfdmVyKF9fcnVuX3Rhc2tfcXVldWUp CiNkZWZpbmUgX192ZXJfZG9fc29mdGlycSBzbXBfOWMzMDUzNzgKI2RlZmluZSBkb19zb2Z0aXJx IF9zZXRfdmVyKGRvX3NvZnRpcnEpCiNkZWZpbmUgX192ZXJfcmFpc2Vfc29mdGlycSBzbXBfYzdl YThhN2EKI2RlZmluZSByYWlzZV9zb2Z0aXJxIF9zZXRfdmVyKHJhaXNlX3NvZnRpcnEpCiNkZWZp bmUgX192ZXJfY3B1X3JhaXNlX3NvZnRpcnEgc21wXzRkMDkxNjZjCiNkZWZpbmUgY3B1X3JhaXNl X3NvZnRpcnEgX3NldF92ZXIoY3B1X3JhaXNlX3NvZnRpcnEpCiNkZWZpbmUgX192ZXJfdGFza2xl dF9zY2hlZHVsZSBzbXBfOWU0NjViYjcKI2RlZmluZSB0YXNrbGV0X3NjaGVkdWxlIF9zZXRfdmVy KHRhc2tsZXRfc2NoZWR1bGUpCiNkZWZpbmUgX192ZXJfdGFza2xldF9oaV9zY2hlZHVsZSBzbXBf ODk3NjJmYTIKI2RlZmluZSB0YXNrbGV0X2hpX3NjaGVkdWxlIF9zZXRfdmVyKHRhc2tsZXRfaGlf c2NoZWR1bGUpCiNkZWZpbmUgX192ZXJfaW5pdF90YXNrX3VuaW9uIHNtcF9jZTQ4MTkwNAojZGVm aW5lIGluaXRfdGFza191bmlvbiBfc2V0X3Zlcihpbml0X3Rhc2tfdW5pb24pCiNkZWZpbmUgX192 ZXJfdGFza2xpc3RfbG9jayBzbXBfZWJjOTM1NzQKI2RlZmluZSB0YXNrbGlzdF9sb2NrIF9zZXRf dmVyKHRhc2tsaXN0X2xvY2spCiNkZWZpbmUgX192ZXJfcGlkaGFzaCBzbXBfYjQ4ZTA5NmMKI2Rl ZmluZSBwaWRoYXNoIF9zZXRfdmVyKHBpZGhhc2gpCiMgMTMwICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbGFwYl9pZmFjZS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9s YXBiX3JlZ2lzdGVyIHNtcF81YThiOTdhYgojZGVmaW5lIGxhcGJfcmVnaXN0ZXIgX3NldF92ZXIo bGFwYl9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9sYXBiX3VucmVnaXN0ZXIgc21wX2ZmYWE2ZGE3 CiNkZWZpbmUgbGFwYl91bnJlZ2lzdGVyIF9zZXRfdmVyKGxhcGJfdW5yZWdpc3RlcikKI2RlZmlu ZSBfX3Zlcl9sYXBiX2dldHBhcm1zIHNtcF8wMTI3YmM5ZAojZGVmaW5lIGxhcGJfZ2V0cGFybXMg X3NldF92ZXIobGFwYl9nZXRwYXJtcykKI2RlZmluZSBfX3Zlcl9sYXBiX3NldHBhcm1zIHNtcF8x NzUyNDdkOAojZGVmaW5lIGxhcGJfc2V0cGFybXMgX3NldF92ZXIobGFwYl9zZXRwYXJtcykKI2Rl ZmluZSBfX3Zlcl9sYXBiX2Nvbm5lY3RfcmVxdWVzdCBzbXBfODkyNGRkYWUKI2RlZmluZSBsYXBi X2Nvbm5lY3RfcmVxdWVzdCBfc2V0X3ZlcihsYXBiX2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmluZSBf X3Zlcl9sYXBiX2Rpc2Nvbm5lY3RfcmVxdWVzdCBzbXBfOGQxN2RjZmQKI2RlZmluZSBsYXBiX2Rp c2Nvbm5lY3RfcmVxdWVzdCBfc2V0X3ZlcihsYXBiX2Rpc2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmlu ZSBfX3Zlcl9sYXBiX2RhdGFfcmVxdWVzdCBzbXBfZjg3ZWZkODUKI2RlZmluZSBsYXBiX2RhdGFf cmVxdWVzdCBfc2V0X3ZlcihsYXBiX2RhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9sYXBiX2Rh dGFfcmVjZWl2ZWQgc21wXzQ2NjU0ZDNjCiNkZWZpbmUgbGFwYl9kYXRhX3JlY2VpdmVkIF9zZXRf dmVyKGxhcGJfZGF0YV9yZWNlaXZlZCkKIyAxMzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvbW9kdWxlcy9sbGNfbWFjaW5pdC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rl cl9jbDJsbGNfY2xpZW50IHNtcF9iMTE5ZmMzYwojZGVmaW5lIHJlZ2lzdGVyX2NsMmxsY19jbGll bnQgX3NldF92ZXIocmVnaXN0ZXJfY2wybGxjX2NsaWVudCkKI2RlZmluZSBfX3Zlcl91bnJlZ2lz dGVyX2NsMmxsY19jbGllbnQgc21wXzQ5MDkyMjg4CiNkZWZpbmUgdW5yZWdpc3Rlcl9jbDJsbGNf Y2xpZW50IF9zZXRfdmVyKHVucmVnaXN0ZXJfY2wybGxjX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9s bGNfZGF0YV9yZXF1ZXN0IHNtcF80MWIyMmM0YQojZGVmaW5lIGxsY19kYXRhX3JlcXVlc3QgX3Nl dF92ZXIobGxjX2RhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9sbGNfdW5pdF9kYXRhX3JlcXVl c3Qgc21wX2U3MWIyNzU4CiNkZWZpbmUgbGxjX3VuaXRfZGF0YV9yZXF1ZXN0IF9zZXRfdmVyKGxs Y191bml0X2RhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9sbGNfdGVzdF9yZXF1ZXN0IHNtcF8z ZWU2NjU2ZQojZGVmaW5lIGxsY190ZXN0X3JlcXVlc3QgX3NldF92ZXIobGxjX3Rlc3RfcmVxdWVz dCkKI2RlZmluZSBfX3Zlcl9sbGNfeGlkX3JlcXVlc3Qgc21wX2E2YzA1N2FiCiNkZWZpbmUgbGxj X3hpZF9yZXF1ZXN0IF9zZXRfdmVyKGxsY194aWRfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9sbGNf bWFjX2RhdGFfaW5kaWNhdGUgc21wXzI4MjM3YTQ5CiNkZWZpbmUgbGxjX21hY19kYXRhX2luZGlj YXRlIF9zZXRfdmVyKGxsY19tYWNfZGF0YV9pbmRpY2F0ZSkKI2RlZmluZSBfX3Zlcl9sbGNfY2Fu Y2VsX3RpbWVycyBzbXBfMzZlZjAxYTAKI2RlZmluZSBsbGNfY2FuY2VsX3RpbWVycyBfc2V0X3Zl cihsbGNfY2FuY2VsX3RpbWVycykKIyAxMzIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvbW9kdWxlcy9sbF9yd19ibGsudmVyIiAxCiNkZWZpbmUgX192ZXJfaW9fcmVxdWVzdF9s b2NrIHNtcF8wOGMzOWRhNgojZGVmaW5lIGlvX3JlcXVlc3RfbG9jayBfc2V0X3Zlcihpb19yZXF1 ZXN0X2xvY2spCiNkZWZpbmUgX192ZXJfZW5kX3RoYXRfcmVxdWVzdF9maXJzdCBzbXBfNDA3YzQ2 MzUKI2RlZmluZSBlbmRfdGhhdF9yZXF1ZXN0X2ZpcnN0IF9zZXRfdmVyKGVuZF90aGF0X3JlcXVl c3RfZmlyc3QpCiNkZWZpbmUgX192ZXJfZW5kX3RoYXRfcmVxdWVzdF9sYXN0IHNtcF9mN2ZkN2Jm YQojZGVmaW5lIGVuZF90aGF0X3JlcXVlc3RfbGFzdCBfc2V0X3ZlcihlbmRfdGhhdF9yZXF1ZXN0 X2xhc3QpCiNkZWZpbmUgX192ZXJfYmxrX2luaXRfcXVldWUgc21wXzFkZjQ3NDM4CiNkZWZpbmUg YmxrX2luaXRfcXVldWUgX3NldF92ZXIoYmxrX2luaXRfcXVldWUpCiNkZWZpbmUgX192ZXJfYmxr X2dldF9xdWV1ZSBzbXBfNjJmZDIzODMKI2RlZmluZSBibGtfZ2V0X3F1ZXVlIF9zZXRfdmVyKGJs a19nZXRfcXVldWUpCiNkZWZpbmUgX192ZXJfX19ibGtfZ2V0X3F1ZXVlIHNtcF82ZWQyYzlmMQoj ZGVmaW5lIF9fYmxrX2dldF9xdWV1ZSBfc2V0X3ZlcihfX2Jsa19nZXRfcXVldWUpCiNkZWZpbmUg X192ZXJfYmxrX2NsZWFudXBfcXVldWUgc21wXzhkMjBhNzE2CiNkZWZpbmUgYmxrX2NsZWFudXBf cXVldWUgX3NldF92ZXIoYmxrX2NsZWFudXBfcXVldWUpCiNkZWZpbmUgX192ZXJfYmxrX3F1ZXVl X2hlYWRhY3RpdmUgc21wXzM5ZDE3MmEyCiNkZWZpbmUgYmxrX3F1ZXVlX2hlYWRhY3RpdmUgX3Nl dF92ZXIoYmxrX3F1ZXVlX2hlYWRhY3RpdmUpCiNkZWZpbmUgX192ZXJfYmxrX3F1ZXVlX21ha2Vf cmVxdWVzdCBzbXBfNGUyYjBiNTUKI2RlZmluZSBibGtfcXVldWVfbWFrZV9yZXF1ZXN0IF9zZXRf dmVyKGJsa19xdWV1ZV9tYWtlX3JlcXVlc3QpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19tYWtlX3Jl cXVlc3Qgc21wXzI0YjNmM2FhCiNkZWZpbmUgZ2VuZXJpY19tYWtlX3JlcXVlc3QgX3NldF92ZXIo Z2VuZXJpY19tYWtlX3JlcXVlc3QpCiNkZWZpbmUgX192ZXJfYmxrZGV2X3JlbGVhc2VfcmVxdWVz dCBzbXBfYTVkZDE1Y2MKI2RlZmluZSBibGtkZXZfcmVsZWFzZV9yZXF1ZXN0IF9zZXRfdmVyKGJs a2Rldl9yZWxlYXNlX3JlcXVlc3QpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY191bnBsdWdfZGV2aWNl IHNtcF9hMmI4MDc1ZQojZGVmaW5lIGdlbmVyaWNfdW5wbHVnX2RldmljZSBfc2V0X3ZlcihnZW5l cmljX3VucGx1Z19kZXZpY2UpCiNkZWZpbmUgX192ZXJfcXVldWVkX3NlY3RvcnMgc21wX2MwNDZl OTZiCiNkZWZpbmUgcXVldWVkX3NlY3RvcnMgX3NldF92ZXIocXVldWVkX3NlY3RvcnMpCiMgMTMz ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAx ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbG9ja2Rfc3ltcy52 ZXIiIDEKI2RlZmluZSBfX3Zlcl9sb2NrZF91cCBzbXBfZjY5MzNjNDgKI2RlZmluZSBsb2NrZF91 cCBfc2V0X3Zlcihsb2NrZF91cCkKI2RlZmluZSBfX3Zlcl9sb2NrZF9kb3duIHNtcF9hN2I5MWE3 YgojZGVmaW5lIGxvY2tkX2Rvd24gX3NldF92ZXIobG9ja2RfZG93bikKI2RlZmluZSBfX3Zlcl9u bG1jbG50X3Byb2Mgc21wXzhhZDI1Yjg5CiNkZWZpbmUgbmxtY2xudF9wcm9jIF9zZXRfdmVyKG5s bWNsbnRfcHJvYykKI2RlZmluZSBfX3Zlcl9ubG1zdmNfaW52YWxpZGF0ZV9jbGllbnQgc21wX2Ix YzNmODI1CiNkZWZpbmUgbmxtc3ZjX2ludmFsaWRhdGVfY2xpZW50IF9zZXRfdmVyKG5sbXN2Y19p bnZhbGlkYXRlX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9ubG1zdmNfb3BzIHNtcF9mYmJmMDY2Ngoj ZGVmaW5lIG5sbXN2Y19vcHMgX3NldF92ZXIobmxtc3ZjX29wcykKI2RlZmluZSBfX3Zlcl9ubG1z dmNfZ3JhY2VfcGVyaW9kIHNtcF9mNjE3Nzc2OAojZGVmaW5lIG5sbXN2Y19ncmFjZV9wZXJpb2Qg X3NldF92ZXIobmxtc3ZjX2dyYWNlX3BlcmlvZCkKI2RlZmluZSBfX3Zlcl9ubG1zdmNfdGltZW91 dCBzbXBfNDRiNDA1MDUKI2RlZmluZSBubG1zdmNfdGltZW91dCBfc2V0X3ZlcihubG1zdmNfdGlt ZW91dCkKIyAxMzQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9s b29wLnZlciIgMQojZGVmaW5lIF9fdmVyX2xvb3BfcmVnaXN0ZXJfdHJhbnNmZXIgc21wXzZmYzc3 NjBmCiNkZWZpbmUgbG9vcF9yZWdpc3Rlcl90cmFuc2ZlciBfc2V0X3Zlcihsb29wX3JlZ2lzdGVy X3RyYW5zZmVyKQojZGVmaW5lIF9fdmVyX2xvb3BfdW5yZWdpc3Rlcl90cmFuc2ZlciBzbXBfYmZl ZTNhZDUKI2RlZmluZSBsb29wX3VucmVnaXN0ZXJfdHJhbnNmZXIgX3NldF92ZXIobG9vcF91bnJl Z2lzdGVyX3RyYW5zZmVyKQojIDEzNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9tb2R1bGVzL21hY19oaWQudmVyIiAxCiMgMTM2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L21vZHVsZXMvbWF0cm94ZmJfYWNjZWwudmVyIiAxCiMgMTM3ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbWF0cm94ZmJfYmFzZS52ZXIiIDEKI2Rl ZmluZSBfX3Zlcl9tYXRyb3hmYl9yZWdpc3Rlcl9kcml2ZXIgc21wXzAwOTI2NmJmCiNkZWZpbmUg bWF0cm94ZmJfcmVnaXN0ZXJfZHJpdmVyIF9zZXRfdmVyKG1hdHJveGZiX3JlZ2lzdGVyX2RyaXZl cikKI2RlZmluZSBfX3Zlcl9tYXRyb3hmYl91bnJlZ2lzdGVyX2RyaXZlciBzbXBfM2ZkYzE2N2YK I2RlZmluZSBtYXRyb3hmYl91bnJlZ2lzdGVyX2RyaXZlciBfc2V0X3ZlcihtYXRyb3hmYl91bnJl Z2lzdGVyX2RyaXZlcikKIyAxMzggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv bW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv bW9kdWxlcy9tYXRyb3hmYl9EQUMxMDY0LnZlciIgMQojIDEzOSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL21hdHJveGZiX21pc2MudmVyIiAxCiNkZWZpbmUgX192 ZXJfbWF0cm94ZmJfREFDX2luIHNtcF8xODMzOWMzNgojZGVmaW5lIG1hdHJveGZiX0RBQ19pbiBf c2V0X3ZlcihtYXRyb3hmYl9EQUNfaW4pCiNkZWZpbmUgX192ZXJfbWF0cm94ZmJfREFDX291dCBz bXBfYTQ1NmIxM2QKI2RlZmluZSBtYXRyb3hmYl9EQUNfb3V0IF9zZXRfdmVyKG1hdHJveGZiX0RB Q19vdXQpCiNkZWZpbmUgX192ZXJfbWF0cm94ZmJfdmFyMm15IHNtcF8yMjgwMGI0NwojZGVmaW5l IG1hdHJveGZiX3ZhcjJteSBfc2V0X3ZlcihtYXRyb3hmYl92YXIybXkpCiNkZWZpbmUgX192ZXJf bWF0cm94ZmJfUExMX2NhbGNjbG9jayBzbXBfMjVjZjgwNDkKI2RlZmluZSBtYXRyb3hmYl9QTExf Y2FsY2Nsb2NrIF9zZXRfdmVyKG1hdHJveGZiX1BMTF9jYWxjY2xvY2spCiNkZWZpbmUgX192ZXJf bWF0cm94ZmJfZ2xvYmFsX214aW5mbyBzbXBfODYyMDdlNDUKI2RlZmluZSBtYXRyb3hmYl9nbG9i YWxfbXhpbmZvIF9zZXRfdmVyKG1hdHJveGZiX2dsb2JhbF9teGluZm8pCiNkZWZpbmUgX192ZXJf bWF0cm94X3RleHRfbG9hZGZvbnQgc21wXzEzYmFmOTQyCiNkZWZpbmUgbWF0cm94X3RleHRfbG9h ZGZvbnQgX3NldF92ZXIobWF0cm94X3RleHRfbG9hZGZvbnQpCiNkZWZpbmUgX192ZXJfbWF0cm94 ZmJfY3JlYXRlY3Vyc29yc2hhcGUgc21wX2U4NjA5MTU5CiNkZWZpbmUgbWF0cm94ZmJfY3JlYXRl Y3Vyc29yc2hhcGUgX3NldF92ZXIobWF0cm94ZmJfY3JlYXRlY3Vyc29yc2hhcGUpCiNkZWZpbmUg X192ZXJfbWF0cm94ZmJfZmFzdGZvbnRfdHJ5c2V0IHNtcF81MjU2OTVmNgojZGVmaW5lIG1hdHJv eGZiX2Zhc3Rmb250X3RyeXNldCBfc2V0X3ZlcihtYXRyb3hmYl9mYXN0Zm9udF90cnlzZXQpCiNk ZWZpbmUgX192ZXJfbWF0cm94ZmJfZmFzdGZvbnRfaW5pdCBzbXBfNTViMTZjYjMKI2RlZmluZSBt YXRyb3hmYl9mYXN0Zm9udF9pbml0IF9zZXRfdmVyKG1hdHJveGZiX2Zhc3Rmb250X2luaXQpCiNk ZWZpbmUgX192ZXJfbWF0cm94ZmJfdmdhSFdpbml0IHNtcF9mNjkwNTU0MgojZGVmaW5lIG1hdHJv eGZiX3ZnYUhXaW5pdCBfc2V0X3ZlcihtYXRyb3hmYl92Z2FIV2luaXQpCiNkZWZpbmUgX192ZXJf bWF0cm94ZmJfdmdhSFdyZXN0b3JlIHNtcF8wNmMyYmYzZQojZGVmaW5lIG1hdHJveGZiX3ZnYUhX cmVzdG9yZSBfc2V0X3ZlcihtYXRyb3hmYl92Z2FIV3Jlc3RvcmUpCiMgMTQwICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbWF0cm94ZmJfVGkzMDI2LnZlciIgMQoj IDE0MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAy CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL21kLnZlciIg MQojZGVmaW5lIF9fdmVyX21kX3NpemUgc21wX2Q3OWZjMTE2CiNkZWZpbmUgbWRfc2l6ZSBfc2V0 X3ZlcihtZF9zaXplKQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX21kX3BlcnNvbmFsaXR5IHNtcF83 N2ViZjlhYgojZGVmaW5lIHJlZ2lzdGVyX21kX3BlcnNvbmFsaXR5IF9zZXRfdmVyKHJlZ2lzdGVy X21kX3BlcnNvbmFsaXR5KQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfbWRfcGVyc29uYWxpdHkg c21wXzRjOTUxOThkCiNkZWZpbmUgdW5yZWdpc3Rlcl9tZF9wZXJzb25hbGl0eSBfc2V0X3Zlcih1 bnJlZ2lzdGVyX21kX3BlcnNvbmFsaXR5KQojZGVmaW5lIF9fdmVyX3BhcnRpdGlvbl9uYW1lIHNt cF9lNGIyOThiNQojZGVmaW5lIHBhcnRpdGlvbl9uYW1lIF9zZXRfdmVyKHBhcnRpdGlvbl9uYW1l KQojZGVmaW5lIF9fdmVyX21kX2Vycm9yIHNtcF8wMmU0OWM2YgojZGVmaW5lIG1kX2Vycm9yIF9z ZXRfdmVyKG1kX2Vycm9yKQojZGVmaW5lIF9fdmVyX21kX2RvX3N5bmMgc21wXzZlOTI2N2NhCiNk ZWZpbmUgbWRfZG9fc3luYyBfc2V0X3ZlcihtZF9kb19zeW5jKQojZGVmaW5lIF9fdmVyX21kX3N5 bmNfYWNjdCBzbXBfNTIyODc0MjkKI2RlZmluZSBtZF9zeW5jX2FjY3QgX3NldF92ZXIobWRfc3lu Y19hY2N0KQojZGVmaW5lIF9fdmVyX21kX2RvbmVfc3luYyBzbXBfYWI5YWM3ZjcKI2RlZmluZSBt ZF9kb25lX3N5bmMgX3NldF92ZXIobWRfZG9uZV9zeW5jKQojZGVmaW5lIF9fdmVyX21kX3JlY292 ZXJfYXJyYXlzIHNtcF85MzA5MDE2NwojZGVmaW5lIG1kX3JlY292ZXJfYXJyYXlzIF9zZXRfdmVy KG1kX3JlY292ZXJfYXJyYXlzKQojZGVmaW5lIF9fdmVyX21kX3JlZ2lzdGVyX3RocmVhZCBzbXBf ZGRiMzdmNDAKI2RlZmluZSBtZF9yZWdpc3Rlcl90aHJlYWQgX3NldF92ZXIobWRfcmVnaXN0ZXJf dGhyZWFkKQojZGVmaW5lIF9fdmVyX21kX3VucmVnaXN0ZXJfdGhyZWFkIHNtcF85ZjQ3MjAwMAoj ZGVmaW5lIG1kX3VucmVnaXN0ZXJfdGhyZWFkIF9zZXRfdmVyKG1kX3VucmVnaXN0ZXJfdGhyZWFk KQojZGVmaW5lIF9fdmVyX21kX3VwZGF0ZV9zYiBzbXBfMTI0YTAxOTYKI2RlZmluZSBtZF91cGRh dGVfc2IgX3NldF92ZXIobWRfdXBkYXRlX3NiKQojZGVmaW5lIF9fdmVyX21kX3dha2V1cF90aHJl YWQgc21wXzYyZDAxMDg2CiNkZWZpbmUgbWRfd2FrZXVwX3RocmVhZCBfc2V0X3ZlcihtZF93YWtl dXBfdGhyZWFkKQojZGVmaW5lIF9fdmVyX21kX3ByaW50X2RldmljZXMgc21wX2E4ZDM2MzA2CiNk ZWZpbmUgbWRfcHJpbnRfZGV2aWNlcyBfc2V0X3ZlcihtZF9wcmludF9kZXZpY2VzKQojZGVmaW5l IF9fdmVyX2ZpbmRfcmRldl9uciBzbXBfYTQ5ODFjMjYKI2RlZmluZSBmaW5kX3JkZXZfbnIgX3Nl dF92ZXIoZmluZF9yZGV2X25yKQojZGVmaW5lIF9fdmVyX21kX2ludGVycnVwdF90aHJlYWQgc21w X2E3NDk0M2E1CiNkZWZpbmUgbWRfaW50ZXJydXB0X3RocmVhZCBfc2V0X3ZlcihtZF9pbnRlcnJ1 cHRfdGhyZWFkKQojZGVmaW5lIF9fdmVyX21kZGV2X21hcCBzbXBfNzJiNDAyYmEKI2RlZmluZSBt ZGRldl9tYXAgX3NldF92ZXIobWRkZXZfbWFwKQojZGVmaW5lIF9fdmVyX21kX2NoZWNrX29yZGVy aW5nIHNtcF9iNzNhODE0YgojZGVmaW5lIG1kX2NoZWNrX29yZGVyaW5nIF9zZXRfdmVyKG1kX2No ZWNrX29yZGVyaW5nKQojIDE0MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t b2R1bGVzL21nYV9kcnYudmVyIiAxCiMgMTQzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L21vZHVsZXMvbWlkaV9zeW1zLnZlciIgMQojZGVmaW5lIF9fdmVyX2RvX21pZGlfbXNn IHNtcF9iNTE1ODdmNgojZGVmaW5lIGRvX21pZGlfbXNnIF9zZXRfdmVyKGRvX21pZGlfbXNnKQoj ZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfb3BlbiBzbXBfZjZiM2EyZmIKI2RlZmluZSBtaWRpX3N5 bnRoX29wZW4gX3NldF92ZXIobWlkaV9zeW50aF9vcGVuKQojZGVmaW5lIF9fdmVyX21pZGlfc3lu dGhfY2xvc2Ugc21wX2FkNDVkZjczCiNkZWZpbmUgbWlkaV9zeW50aF9jbG9zZSBfc2V0X3Zlciht aWRpX3N5bnRoX2Nsb3NlKQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfaW9jdGwgc21wX2I2NmQx ZjY3CiNkZWZpbmUgbWlkaV9zeW50aF9pb2N0bCBfc2V0X3ZlcihtaWRpX3N5bnRoX2lvY3RsKQoj ZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfa2lsbF9ub3RlIHNtcF8yYWEzMTY5NQojZGVmaW5lIG1p ZGlfc3ludGhfa2lsbF9ub3RlIF9zZXRfdmVyKG1pZGlfc3ludGhfa2lsbF9ub3RlKQojZGVmaW5l IF9fdmVyX21pZGlfc3ludGhfc3RhcnRfbm90ZSBzbXBfOWJkYWYyNGQKI2RlZmluZSBtaWRpX3N5 bnRoX3N0YXJ0X25vdGUgX3NldF92ZXIobWlkaV9zeW50aF9zdGFydF9ub3RlKQojZGVmaW5lIF9f dmVyX21pZGlfc3ludGhfc2V0X2luc3RyIHNtcF9kODViZTkzOAojZGVmaW5lIG1pZGlfc3ludGhf c2V0X2luc3RyIF9zZXRfdmVyKG1pZGlfc3ludGhfc2V0X2luc3RyKQojZGVmaW5lIF9fdmVyX21p ZGlfc3ludGhfcmVzZXQgc21wXzU2NTA0Y2EyCiNkZWZpbmUgbWlkaV9zeW50aF9yZXNldCBfc2V0 X3ZlcihtaWRpX3N5bnRoX3Jlc2V0KQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfaHdfY29udHJv bCBzbXBfYjE0YjIyY2QKI2RlZmluZSBtaWRpX3N5bnRoX2h3X2NvbnRyb2wgX3NldF92ZXIobWlk aV9zeW50aF9od19jb250cm9sKQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfYWZ0ZXJ0b3VjaCBz bXBfZjFlYThhMjAKI2RlZmluZSBtaWRpX3N5bnRoX2FmdGVydG91Y2ggX3NldF92ZXIobWlkaV9z eW50aF9hZnRlcnRvdWNoKQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfY29udHJvbGxlciBzbXBf ODkyMDkzZTAKI2RlZmluZSBtaWRpX3N5bnRoX2NvbnRyb2xsZXIgX3NldF92ZXIobWlkaV9zeW50 aF9jb250cm9sbGVyKQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfcGFubmluZyBzbXBfZGI0MDBh ZmEKI2RlZmluZSBtaWRpX3N5bnRoX3Bhbm5pbmcgX3NldF92ZXIobWlkaV9zeW50aF9wYW5uaW5n KQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfc2V0dXBfdm9pY2Ugc21wXzRmZjQ3ZTlkCiNkZWZp bmUgbWlkaV9zeW50aF9zZXR1cF92b2ljZSBfc2V0X3ZlcihtaWRpX3N5bnRoX3NldHVwX3ZvaWNl KQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfc2VuZF9zeXNleCBzbXBfZmRkY2JmYjMKI2RlZmlu ZSBtaWRpX3N5bnRoX3NlbmRfc3lzZXggX3NldF92ZXIobWlkaV9zeW50aF9zZW5kX3N5c2V4KQoj ZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfYmVuZGVyIHNtcF9iYTdkZDA0MQojZGVmaW5lIG1pZGlf c3ludGhfYmVuZGVyIF9zZXRfdmVyKG1pZGlfc3ludGhfYmVuZGVyKQojZGVmaW5lIF9fdmVyX21p ZGlfc3ludGhfbG9hZF9wYXRjaCBzbXBfZjc0MjZkYTMKI2RlZmluZSBtaWRpX3N5bnRoX2xvYWRf cGF0Y2ggX3NldF92ZXIobWlkaV9zeW50aF9sb2FkX3BhdGNoKQojZGVmaW5lIF9fdmVyX01JREli dWZfYXZhaWwgc21wXzFmMzk1Njg2CiNkZWZpbmUgTUlESWJ1Zl9hdmFpbCBfc2V0X3ZlcihNSURJ YnVmX2F2YWlsKQojIDE0NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2 ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1 bGVzL21pcm9wY20yMC1yZHMtY29yZS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hY2lfcmRzX2NtZCBz bXBfZGU0MTU2Y2UKI2RlZmluZSBhY2lfcmRzX2NtZCBfc2V0X3ZlcihhY2lfcmRzX2NtZCkKIyAx NDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9taXNjLnZlciIg MQojZGVmaW5lIF9fdmVyX21pc2NfcmVnaXN0ZXIgc21wX2ZjNGM4M2VlCiNkZWZpbmUgbWlzY19y ZWdpc3RlciBfc2V0X3ZlcihtaXNjX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21pc2NfZGVyZWdp c3RlciBzbXBfNGIxMDZjZGMKI2RlZmluZSBtaXNjX2RlcmVnaXN0ZXIgX3NldF92ZXIobWlzY19k ZXJlZ2lzdGVyKQojIDE0NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2 ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1 bGVzL21vZGVkYi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9fX2ZiX3RyeV9tb2RlIHNtcF80M2QyZDJm ZAojZGVmaW5lIF9fZmJfdHJ5X21vZGUgX3NldF92ZXIoX19mYl90cnlfbW9kZSkKIyAxNDcgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9tcHRiYXNlLnZlciIgMQoj ZGVmaW5lIF9fdmVyX21wdF9yZWdpc3RlciBzbXBfMDQ3N2NlYzkKI2RlZmluZSBtcHRfcmVnaXN0 ZXIgX3NldF92ZXIobXB0X3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21wdF9kZXJlZ2lzdGVyIHNt cF82ZmI1YWI3MQojZGVmaW5lIG1wdF9kZXJlZ2lzdGVyIF9zZXRfdmVyKG1wdF9kZXJlZ2lzdGVy KQojZGVmaW5lIF9fdmVyX21wdF9ldmVudF9yZWdpc3RlciBzbXBfNTBkY2QzYzMKI2RlZmluZSBt cHRfZXZlbnRfcmVnaXN0ZXIgX3NldF92ZXIobXB0X2V2ZW50X3JlZ2lzdGVyKQojZGVmaW5lIF9f dmVyX21wdF9ldmVudF9kZXJlZ2lzdGVyIHNtcF83M2ZlYzRiYgojZGVmaW5lIG1wdF9ldmVudF9k ZXJlZ2lzdGVyIF9zZXRfdmVyKG1wdF9ldmVudF9kZXJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21w dF9nZXRfbXNnX2ZyYW1lIHNtcF8wYThkOWVjNQojZGVmaW5lIG1wdF9nZXRfbXNnX2ZyYW1lIF9z ZXRfdmVyKG1wdF9nZXRfbXNnX2ZyYW1lKQojZGVmaW5lIF9fdmVyX21wdF9wdXRfbXNnX2ZyYW1l IHNtcF80NWMwMDExMAojZGVmaW5lIG1wdF9wdXRfbXNnX2ZyYW1lIF9zZXRfdmVyKG1wdF9wdXRf bXNnX2ZyYW1lKQojZGVmaW5lIF9fdmVyX21wdF9mcmVlX21zZ19mcmFtZSBzbXBfNmM0OWFlOGMK I2RlZmluZSBtcHRfZnJlZV9tc2dfZnJhbWUgX3NldF92ZXIobXB0X2ZyZWVfbXNnX2ZyYW1lKQoj ZGVmaW5lIF9fdmVyX21wdF9zZW5kX2hhbmRzaGFrZV9yZXF1ZXN0IHNtcF9iNDFiYzIyZAojZGVm aW5lIG1wdF9zZW5kX2hhbmRzaGFrZV9yZXF1ZXN0IF9zZXRfdmVyKG1wdF9zZW5kX2hhbmRzaGFr ZV9yZXF1ZXN0KQojZGVmaW5lIF9fdmVyX21wdF9hZGFwdGVyX2ZpbmRfZmlyc3Qgc21wX2YzMzZm ZmFmCiNkZWZpbmUgbXB0X2FkYXB0ZXJfZmluZF9maXJzdCBfc2V0X3ZlcihtcHRfYWRhcHRlcl9m aW5kX2ZpcnN0KQojZGVmaW5lIF9fdmVyX21wdF9hZGFwdGVyX2ZpbmRfbmV4dCBzbXBfOWVmY2Zj MzEKI2RlZmluZSBtcHRfYWRhcHRlcl9maW5kX25leHQgX3NldF92ZXIobXB0X2FkYXB0ZXJfZmlu ZF9uZXh0KQojZGVmaW5lIF9fdmVyX21wdF92ZXJpZnlfYWRhcHRlciBzbXBfNjIxYTgyNjgKI2Rl ZmluZSBtcHRfdmVyaWZ5X2FkYXB0ZXIgX3NldF92ZXIobXB0X3ZlcmlmeV9hZGFwdGVyKQojZGVm aW5lIF9fdmVyX21wdF9wcmludF9pb2Nfc3VtbWFyeSBzbXBfYTk2M2Y4YTgKI2RlZmluZSBtcHRf cHJpbnRfaW9jX3N1bW1hcnkgX3NldF92ZXIobXB0X3ByaW50X2lvY19zdW1tYXJ5KQojZGVmaW5l IF9fdmVyX21wdF9sYW5faW5kZXggc21wXzNiNGYxNjJlCiNkZWZpbmUgbXB0X2xhbl9pbmRleCBf c2V0X3ZlcihtcHRfbGFuX2luZGV4KQojZGVmaW5lIF9fdmVyX21wdF9zdG1faW5kZXggc21wXzg1 MzJjYzk2CiNkZWZpbmUgbXB0X3N0bV9pbmRleCBfc2V0X3ZlcihtcHRfc3RtX2luZGV4KQojZGVm aW5lIF9fdmVyX21wdF9yZWdpc3Rlcl9hc2Nxb3BzX3N0cmluZ3Mgc21wXzJmNTNiZjU3CiNkZWZp bmUgbXB0X3JlZ2lzdGVyX2FzY3FvcHNfc3RyaW5ncyBfc2V0X3ZlcihtcHRfcmVnaXN0ZXJfYXNj cW9wc19zdHJpbmdzKQojZGVmaW5lIF9fdmVyX21wdF9kZXJlZ2lzdGVyX2FzY3FvcHNfc3RyaW5n cyBzbXBfYWFhOWRjNGIKI2RlZmluZSBtcHRfZGVyZWdpc3Rlcl9hc2Nxb3BzX3N0cmluZ3MgX3Nl dF92ZXIobXB0X2RlcmVnaXN0ZXJfYXNjcW9wc19zdHJpbmdzKQojZGVmaW5lIF9fdmVyX21wdF92 X0FTQ1FfVGFibGVQdHIgc21wXzAxN2EzZjViCiNkZWZpbmUgbXB0X3ZfQVNDUV9UYWJsZVB0ciBf c2V0X3ZlcihtcHRfdl9BU0NRX1RhYmxlUHRyKQojZGVmaW5lIF9fdmVyX21wdF9BU0NRX1RhYmxl U3ogc21wX2Q3MWQ3Yjg0CiNkZWZpbmUgbXB0X0FTQ1FfVGFibGVTeiBfc2V0X3ZlcihtcHRfQVND UV9UYWJsZVN6KQojZGVmaW5lIF9fdmVyX21wdF9TY3NpT3Bjb2Rlc1B0ciBzbXBfYzQxY2U4NmQK I2RlZmluZSBtcHRfU2NzaU9wY29kZXNQdHIgX3NldF92ZXIobXB0X1Njc2lPcGNvZGVzUHRyKQoj IDE0OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAy CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL21wdGN0bC52 ZXIiIDEKIyAxNDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9t cHRsYW4udmVyIiAxCiMgMTUwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v ZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v ZHVsZXMvbXB0c2NzaWgudmVyIiAxCiMgMTUxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L21vZHVsZXMvbXB1NDAxLnZlciIgMQojZGVmaW5lIF9fdmVyX3Byb2JlX21wdTQwMSBz bXBfY2Q5MTQ2NWMKI2RlZmluZSBwcm9iZV9tcHU0MDEgX3NldF92ZXIocHJvYmVfbXB1NDAxKQoj ZGVmaW5lIF9fdmVyX2F0dGFjaF9tcHU0MDEgc21wXzcwZmQ0YTQ0CiNkZWZpbmUgYXR0YWNoX21w dTQwMSBfc2V0X3ZlcihhdHRhY2hfbXB1NDAxKQojZGVmaW5lIF9fdmVyX3VubG9hZF9tcHU0MDEg c21wXzVmZWJmMjg0CiNkZWZpbmUgdW5sb2FkX21wdTQwMSBfc2V0X3Zlcih1bmxvYWRfbXB1NDAx KQojZGVmaW5lIF9fdmVyX2ludGNoa19tcHU0MDEgc21wXzVmZTZkZDQyCiNkZWZpbmUgaW50Y2hr X21wdTQwMSBfc2V0X3ZlcihpbnRjaGtfbXB1NDAxKQojZGVmaW5lIF9fdmVyX21wdWludHIgc21w XzVhMzMzYjM4CiNkZWZpbmUgbXB1aW50ciBfc2V0X3ZlcihtcHVpbnRyKQojIDE1MiAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL21zZG9zZnNfc3ltcy52ZXIiIDEK I2RlZmluZSBfX3Zlcl9tc2Rvc19jcmVhdGUgc21wXzgxYTJlM2E3CiNkZWZpbmUgbXNkb3NfY3Jl YXRlIF9zZXRfdmVyKG1zZG9zX2NyZWF0ZSkKI2RlZmluZSBfX3Zlcl9tc2Rvc19sb29rdXAgc21w X2MxYzc2Mjk0CiNkZWZpbmUgbXNkb3NfbG9va3VwIF9zZXRfdmVyKG1zZG9zX2xvb2t1cCkKI2Rl ZmluZSBfX3Zlcl9tc2Rvc19ta2RpciBzbXBfNjY5NjEwODUKI2RlZmluZSBtc2Rvc19ta2RpciBf c2V0X3Zlcihtc2Rvc19ta2RpcikKI2RlZmluZSBfX3Zlcl9tc2Rvc19yZW5hbWUgc21wX2Q2NTQ2 YTA3CiNkZWZpbmUgbXNkb3NfcmVuYW1lIF9zZXRfdmVyKG1zZG9zX3JlbmFtZSkKI2RlZmluZSBf X3Zlcl9tc2Rvc19ybWRpciBzbXBfODk2OTY2MTIKI2RlZmluZSBtc2Rvc19ybWRpciBfc2V0X3Zl cihtc2Rvc19ybWRpcikKI2RlZmluZSBfX3Zlcl9tc2Rvc191bmxpbmsgc21wXzNiZTJhZjc1CiNk ZWZpbmUgbXNkb3NfdW5saW5rIF9zZXRfdmVyKG1zZG9zX3VubGluaykKI2RlZmluZSBfX3Zlcl9t c2Rvc19yZWFkX3N1cGVyIHNtcF9mNjQ4ZWM1NgojZGVmaW5lIG1zZG9zX3JlYWRfc3VwZXIgX3Nl dF92ZXIobXNkb3NfcmVhZF9zdXBlcikKI2RlZmluZSBfX3Zlcl9tc2Rvc19wdXRfc3VwZXIgc21w XzRkZjNkNTkyCiNkZWZpbmUgbXNkb3NfcHV0X3N1cGVyIF9zZXRfdmVyKG1zZG9zX3B1dF9zdXBl cikKIyAxNTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9tc25k LnZlciIgMQojZGVmaW5lIF9fdmVyX21zbmRfcmVnaXN0ZXIgc21wXzg0N2Y4YjEyCiNkZWZpbmUg bXNuZF9yZWdpc3RlciBfc2V0X3Zlcihtc25kX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21zbmRf dW5yZWdpc3RlciBzbXBfMDk2ZjdhZmQKI2RlZmluZSBtc25kX3VucmVnaXN0ZXIgX3NldF92ZXIo bXNuZF91bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21zbmRfZ2V0X251bV9kZXZzIHNtcF8zZDU3 MzFhZQojZGVmaW5lIG1zbmRfZ2V0X251bV9kZXZzIF9zZXRfdmVyKG1zbmRfZ2V0X251bV9kZXZz KQojZGVmaW5lIF9fdmVyX21zbmRfZ2V0X2RldiBzbXBfMzM0YWM2ODQKI2RlZmluZSBtc25kX2dl dF9kZXYgX3NldF92ZXIobXNuZF9nZXRfZGV2KQojZGVmaW5lIF9fdmVyX21zbmRfaW5pdF9xdWV1 ZSBzbXBfOWY1NjAyMmUKI2RlZmluZSBtc25kX2luaXRfcXVldWUgX3NldF92ZXIobXNuZF9pbml0 X3F1ZXVlKQojZGVmaW5lIF9fdmVyX21zbmRfZmlmb19pbml0IHNtcF82ODQ3M2RhMQojZGVmaW5l IG1zbmRfZmlmb19pbml0IF9zZXRfdmVyKG1zbmRfZmlmb19pbml0KQojZGVmaW5lIF9fdmVyX21z bmRfZmlmb19mcmVlIHNtcF8xODBjZWZmZgojZGVmaW5lIG1zbmRfZmlmb19mcmVlIF9zZXRfdmVy KG1zbmRfZmlmb19mcmVlKQojZGVmaW5lIF9fdmVyX21zbmRfZmlmb19hbGxvYyBzbXBfOTg1M2Q0 NDkKI2RlZmluZSBtc25kX2ZpZm9fYWxsb2MgX3NldF92ZXIobXNuZF9maWZvX2FsbG9jKQojZGVm aW5lIF9fdmVyX21zbmRfZmlmb19tYWtlX2VtcHR5IHNtcF82NzkyOTdkYgojZGVmaW5lIG1zbmRf Zmlmb19tYWtlX2VtcHR5IF9zZXRfdmVyKG1zbmRfZmlmb19tYWtlX2VtcHR5KQojZGVmaW5lIF9f dmVyX21zbmRfZmlmb193cml0ZSBzbXBfNmM4ZGE4OTUKI2RlZmluZSBtc25kX2ZpZm9fd3JpdGUg X3NldF92ZXIobXNuZF9maWZvX3dyaXRlKQojZGVmaW5lIF9fdmVyX21zbmRfZmlmb19yZWFkIHNt cF80NTJhNmZlYwojZGVmaW5lIG1zbmRfZmlmb19yZWFkIF9zZXRfdmVyKG1zbmRfZmlmb19yZWFk KQojZGVmaW5lIF9fdmVyX21zbmRfd2FpdF9UWERFIHNtcF9kMWZjYWEyMwojZGVmaW5lIG1zbmRf d2FpdF9UWERFIF9zZXRfdmVyKG1zbmRfd2FpdF9UWERFKQojZGVmaW5lIF9fdmVyX21zbmRfd2Fp dF9IQzAgc21wX2ZjYWJiNzM0CiNkZWZpbmUgbXNuZF93YWl0X0hDMCBfc2V0X3Zlcihtc25kX3dh aXRfSEMwKQojZGVmaW5lIF9fdmVyX21zbmRfc2VuZF9kc3BfY21kIHNtcF83ZTcwNTk3OQojZGVm aW5lIG1zbmRfc2VuZF9kc3BfY21kIF9zZXRfdmVyKG1zbmRfc2VuZF9kc3BfY21kKQojZGVmaW5l IF9fdmVyX21zbmRfc2VuZF93b3JkIHNtcF8wYjRlOWQ4ZgojZGVmaW5lIG1zbmRfc2VuZF93b3Jk IF9zZXRfdmVyKG1zbmRfc2VuZF93b3JkKQojZGVmaW5lIF9fdmVyX21zbmRfdXBsb2FkX2hvc3Qg c21wXzdjM2NhNWFlCiNkZWZpbmUgbXNuZF91cGxvYWRfaG9zdCBfc2V0X3Zlcihtc25kX3VwbG9h ZF9ob3N0KQojZGVmaW5lIF9fdmVyX21zbmRfZW5hYmxlX2lycSBzbXBfMTk4MWFhOTUKI2RlZmlu ZSBtc25kX2VuYWJsZV9pcnEgX3NldF92ZXIobXNuZF9lbmFibGVfaXJxKQojZGVmaW5lIF9fdmVy X21zbmRfZGlzYWJsZV9pcnEgc21wX2UyYzJkZDA0CiNkZWZpbmUgbXNuZF9kaXNhYmxlX2lycSBf c2V0X3Zlcihtc25kX2Rpc2FibGVfaXJxKQojIDE1NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9saW51eC9tb2R1bGVzL210ZGNvcmUudmVyIiAxCiNkZWZpbmUgX192ZXJfYWRkX210ZF9k ZXZpY2Ugc21wXzY1OWJlZTA0CiNkZWZpbmUgYWRkX210ZF9kZXZpY2UgX3NldF92ZXIoYWRkX210 ZF9kZXZpY2UpCiNkZWZpbmUgX192ZXJfZGVsX210ZF9kZXZpY2Ugc21wXzc3MjRlNzExCiNkZWZp bmUgZGVsX210ZF9kZXZpY2UgX3NldF92ZXIoZGVsX210ZF9kZXZpY2UpCiNkZWZpbmUgX192ZXJf X19nZXRfbXRkX2RldmljZSBzbXBfZDZiNzAwMTYKI2RlZmluZSBfX2dldF9tdGRfZGV2aWNlIF9z ZXRfdmVyKF9fZ2V0X210ZF9kZXZpY2UpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfbXRkX3VzZXIg c21wXzA4YWFiMTIzCiNkZWZpbmUgcmVnaXN0ZXJfbXRkX3VzZXIgX3NldF92ZXIocmVnaXN0ZXJf bXRkX3VzZXIpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9tdGRfdXNlciBzbXBfOWQwY2RhOGMK I2RlZmluZSB1bnJlZ2lzdGVyX210ZF91c2VyIF9zZXRfdmVyKHVucmVnaXN0ZXJfbXRkX3VzZXIp CiMgMTU1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgi IDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbXRkcGFy dC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hZGRfbXRkX3BhcnRpdGlvbnMgc21wXzdlYTUwYjEwCiNk ZWZpbmUgYWRkX210ZF9wYXJ0aXRpb25zIF9zZXRfdmVyKGFkZF9tdGRfcGFydGl0aW9ucykKI2Rl ZmluZSBfX3Zlcl9kZWxfbXRkX3BhcnRpdGlvbnMgc21wXzZmZWE3Y2Q0CiNkZWZpbmUgZGVsX210 ZF9wYXJ0aXRpb25zIF9zZXRfdmVyKGRlbF9tdGRfcGFydGl0aW9ucykKIyAxNTYgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9uYW5kX2VjYy52ZXIiIDEKI2RlZmlu ZSBfX3Zlcl9uYW5kX2NhbGN1bGF0ZV9lY2Mgc21wXzFmOTc1MTM3CiNkZWZpbmUgbmFuZF9jYWxj dWxhdGVfZWNjIF9zZXRfdmVyKG5hbmRfY2FsY3VsYXRlX2VjYykKI2RlZmluZSBfX3Zlcl9uYW5k X2NvcnJlY3RfZGF0YSBzbXBfZTc1NjkxOWQKI2RlZmluZSBuYW5kX2NvcnJlY3RfZGF0YSBfc2V0 X3ZlcihuYW5kX2NvcnJlY3RfZGF0YSkKIyAxNTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvbW9kdWxlcy9uYW5kLnZlciIgMQojZGVmaW5lIF9fdmVyX25hbmRfc2NhbiBzbXBf MTVlMjZkZDkKI2RlZmluZSBuYW5kX3NjYW4gX3NldF92ZXIobmFuZF9zY2FuKQojIDE1OCAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL25ldGZpbHRlci52ZXIiIDEK IyAxNTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9uZXRfaW5p dC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9pbml0X2V0aGVyZGV2IHNtcF8yOGM1MjM1MQojZGVmaW5l IGluaXRfZXRoZXJkZXYgX3NldF92ZXIoaW5pdF9ldGhlcmRldikKI2RlZmluZSBfX3Zlcl9hbGxv Y19ldGhlcmRldiBzbXBfZmYzZDliNWYKI2RlZmluZSBhbGxvY19ldGhlcmRldiBfc2V0X3Zlcihh bGxvY19ldGhlcmRldikKI2RlZmluZSBfX3Zlcl9ldGhlcl9zZXR1cCBzbXBfMTI3ZjIyMjYKI2Rl ZmluZSBldGhlcl9zZXR1cCBfc2V0X3ZlcihldGhlcl9zZXR1cCkKI2RlZmluZSBfX3Zlcl9yZWdp c3Rlcl9uZXRkZXYgc21wXzVjZDg0Y2ZjCiNkZWZpbmUgcmVnaXN0ZXJfbmV0ZGV2IF9zZXRfdmVy KHJlZ2lzdGVyX25ldGRldikKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX25ldGRldiBzbXBfMGI2 NmJlNzcKI2RlZmluZSB1bnJlZ2lzdGVyX25ldGRldiBfc2V0X3Zlcih1bnJlZ2lzdGVyX25ldGRl dikKIyAxNjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9uZXRz eW1zLnZlciIgMQojZGVmaW5lIF9fdmVyX3NrYl9vdmVyX3BhbmljIHNtcF9iZTRjZWVkZAojZGVm aW5lIHNrYl9vdmVyX3BhbmljIF9zZXRfdmVyKHNrYl9vdmVyX3BhbmljKQojZGVmaW5lIF9fdmVy X3NrYl91bmRlcl9wYW5pYyBzbXBfNGFmZjU2YTEKI2RlZmluZSBza2JfdW5kZXJfcGFuaWMgX3Nl dF92ZXIoc2tiX3VuZGVyX3BhbmljKQojZGVmaW5lIF9fdmVyX3NvY2tfcmVnaXN0ZXIgc21wX2Zi ZTNhZWE2CiNkZWZpbmUgc29ja19yZWdpc3RlciBfc2V0X3Zlcihzb2NrX3JlZ2lzdGVyKQojZGVm aW5lIF9fdmVyX3NvY2tfdW5yZWdpc3RlciBzbXBfMjM5NGEwNjIKI2RlZmluZSBzb2NrX3VucmVn aXN0ZXIgX3NldF92ZXIoc29ja191bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX19fbG9ja19zb2Nr IHNtcF9iOTQzODMzOQojZGVmaW5lIF9fbG9ja19zb2NrIF9zZXRfdmVyKF9fbG9ja19zb2NrKQoj ZGVmaW5lIF9fdmVyX19fcmVsZWFzZV9zb2NrIHNtcF9iZmM3YWNhZgojZGVmaW5lIF9fcmVsZWFz ZV9zb2NrIF9zZXRfdmVyKF9fcmVsZWFzZV9zb2NrKQojZGVmaW5lIF9fdmVyX21lbWNweV9mcm9t aW92ZWMgc21wXzM2MTM5YTUxCiNkZWZpbmUgbWVtY3B5X2Zyb21pb3ZlYyBfc2V0X3ZlcihtZW1j cHlfZnJvbWlvdmVjKQojZGVmaW5lIF9fdmVyX21lbWNweV90b2tlcm5lbGlvdmVjIHNtcF9lNDI3 MWZiMAojZGVmaW5lIG1lbWNweV90b2tlcm5lbGlvdmVjIF9zZXRfdmVyKG1lbWNweV90b2tlcm5l bGlvdmVjKQojZGVmaW5lIF9fdmVyX3NvY2tfY3JlYXRlIHNtcF8zMDQzZjE5ZAojZGVmaW5lIHNv Y2tfY3JlYXRlIF9zZXRfdmVyKHNvY2tfY3JlYXRlKQojZGVmaW5lIF9fdmVyX3NvY2tfYWxsb2Mg c21wX2VhNWU0MWZlCiNkZWZpbmUgc29ja19hbGxvYyBfc2V0X3Zlcihzb2NrX2FsbG9jKQojZGVm aW5lIF9fdmVyX3NvY2tfcmVsZWFzZSBzbXBfNTU0ODQwN2EKI2RlZmluZSBzb2NrX3JlbGVhc2Ug X3NldF92ZXIoc29ja19yZWxlYXNlKQojZGVmaW5lIF9fdmVyX3NvY2tfc2V0c29ja29wdCBzbXBf OTNlYjY1OGEKI2RlZmluZSBzb2NrX3NldHNvY2tvcHQgX3NldF92ZXIoc29ja19zZXRzb2Nrb3B0 KQojZGVmaW5lIF9fdmVyX3NvY2tfZ2V0c29ja29wdCBzbXBfNWE4ODdjZmQKI2RlZmluZSBzb2Nr X2dldHNvY2tvcHQgX3NldF92ZXIoc29ja19nZXRzb2Nrb3B0KQojZGVmaW5lIF9fdmVyX3NvY2tf c2VuZG1zZyBzbXBfMTZjYzEzMTQKI2RlZmluZSBzb2NrX3NlbmRtc2cgX3NldF92ZXIoc29ja19z ZW5kbXNnKQojZGVmaW5lIF9fdmVyX3NvY2tfcmVjdm1zZyBzbXBfYTk2Zjg3MTgKI2RlZmluZSBz b2NrX3JlY3Ztc2cgX3NldF92ZXIoc29ja19yZWN2bXNnKQojZGVmaW5lIF9fdmVyX3NrX2FsbG9j IHNtcF9hNDZhMTA4MwojZGVmaW5lIHNrX2FsbG9jIF9zZXRfdmVyKHNrX2FsbG9jKQojZGVmaW5l IF9fdmVyX3NrX2ZyZWUgc21wX2I1ZWNjZWJiCiNkZWZpbmUgc2tfZnJlZSBfc2V0X3Zlcihza19m cmVlKQojZGVmaW5lIF9fdmVyX3NvY2tfd2FrZV9hc3luYyBzbXBfNGVlYmVhNDEKI2RlZmluZSBz b2NrX3dha2VfYXN5bmMgX3NldF92ZXIoc29ja193YWtlX2FzeW5jKQojZGVmaW5lIF9fdmVyX3Nv Y2tfYWxsb2Nfc2VuZF9za2Igc21wXzlkZmRhOGQ3CiNkZWZpbmUgc29ja19hbGxvY19zZW5kX3Nr YiBfc2V0X3Zlcihzb2NrX2FsbG9jX3NlbmRfc2tiKQojZGVmaW5lIF9fdmVyX3NvY2tfaW5pdF9k YXRhIHNtcF9hYzI3NDNhOQojZGVmaW5lIHNvY2tfaW5pdF9kYXRhIF9zZXRfdmVyKHNvY2tfaW5p dF9kYXRhKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fcmVsZWFzZSBzbXBfNmEzYTZkMTkKI2RlZmlu ZSBzb2NrX25vX3JlbGVhc2UgX3NldF92ZXIoc29ja19ub19yZWxlYXNlKQojZGVmaW5lIF9fdmVy X3NvY2tfbm9fYmluZCBzbXBfN2M5NzY5YTUKI2RlZmluZSBzb2NrX25vX2JpbmQgX3NldF92ZXIo c29ja19ub19iaW5kKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fY29ubmVjdCBzbXBfNGJlOGM5ODQK I2RlZmluZSBzb2NrX25vX2Nvbm5lY3QgX3NldF92ZXIoc29ja19ub19jb25uZWN0KQojZGVmaW5l IF9fdmVyX3NvY2tfbm9fc29ja2V0cGFpciBzbXBfMjcwYjY5MmYKI2RlZmluZSBzb2NrX25vX3Nv Y2tldHBhaXIgX3NldF92ZXIoc29ja19ub19zb2NrZXRwYWlyKQojZGVmaW5lIF9fdmVyX3NvY2tf bm9fYWNjZXB0IHNtcF8wYmZlZGIyOAojZGVmaW5lIHNvY2tfbm9fYWNjZXB0IF9zZXRfdmVyKHNv Y2tfbm9fYWNjZXB0KQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fZ2V0bmFtZSBzbXBfM2Q0N2U4NDAK I2RlZmluZSBzb2NrX25vX2dldG5hbWUgX3NldF92ZXIoc29ja19ub19nZXRuYW1lKQojZGVmaW5l IF9fdmVyX3NvY2tfbm9fcG9sbCBzbXBfMzZiYTMyMTYKI2RlZmluZSBzb2NrX25vX3BvbGwgX3Nl dF92ZXIoc29ja19ub19wb2xsKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9faW9jdGwgc21wXzZjYmMy MjcwCiNkZWZpbmUgc29ja19ub19pb2N0bCBfc2V0X3Zlcihzb2NrX25vX2lvY3RsKQojZGVmaW5l IF9fdmVyX3NvY2tfbm9fbGlzdGVuIHNtcF80ZjA2OTNkNgojZGVmaW5lIHNvY2tfbm9fbGlzdGVu IF9zZXRfdmVyKHNvY2tfbm9fbGlzdGVuKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fc2h1dGRvd24g c21wXzA3MWIzYmY2CiNkZWZpbmUgc29ja19ub19zaHV0ZG93biBfc2V0X3Zlcihzb2NrX25vX3No dXRkb3duKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fZ2V0c29ja29wdCBzbXBfNzBmNWU4NDcKI2Rl ZmluZSBzb2NrX25vX2dldHNvY2tvcHQgX3NldF92ZXIoc29ja19ub19nZXRzb2Nrb3B0KQojZGVm aW5lIF9fdmVyX3NvY2tfbm9fc2V0c29ja29wdCBzbXBfOWIyY2NlZDMKI2RlZmluZSBzb2NrX25v X3NldHNvY2tvcHQgX3NldF92ZXIoc29ja19ub19zZXRzb2Nrb3B0KQojZGVmaW5lIF9fdmVyX3Nv Y2tfbm9fc2VuZG1zZyBzbXBfZDg2YmI5MTUKI2RlZmluZSBzb2NrX25vX3NlbmRtc2cgX3NldF92 ZXIoc29ja19ub19zZW5kbXNnKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fcmVjdm1zZyBzbXBfMTRm MjU1ZDcKI2RlZmluZSBzb2NrX25vX3JlY3Ztc2cgX3NldF92ZXIoc29ja19ub19yZWN2bXNnKQoj ZGVmaW5lIF9fdmVyX3NvY2tfbm9fbW1hcCBzbXBfYzU3MjMzYTYKI2RlZmluZSBzb2NrX25vX21t YXAgX3NldF92ZXIoc29ja19ub19tbWFwKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fc2VuZHBhZ2Ug c21wXzRkNDlkNjhiCiNkZWZpbmUgc29ja19ub19zZW5kcGFnZSBfc2V0X3Zlcihzb2NrX25vX3Nl bmRwYWdlKQojZGVmaW5lIF9fdmVyX3NvY2tfcmZyZWUgc21wX2YxMzUyNjRlCiNkZWZpbmUgc29j a19yZnJlZSBfc2V0X3Zlcihzb2NrX3JmcmVlKQojZGVmaW5lIF9fdmVyX3NvY2tfd2ZyZWUgc21w XzI2NTVhNGMzCiNkZWZpbmUgc29ja193ZnJlZSBfc2V0X3Zlcihzb2NrX3dmcmVlKQojZGVmaW5l IF9fdmVyX3NvY2tfd21hbGxvYyBzbXBfMGFlMjliNDkKI2RlZmluZSBzb2NrX3dtYWxsb2MgX3Nl dF92ZXIoc29ja193bWFsbG9jKQojZGVmaW5lIF9fdmVyX3NvY2tfcm1hbGxvYyBzbXBfMGRkMTk0 MjcKI2RlZmluZSBzb2NrX3JtYWxsb2MgX3NldF92ZXIoc29ja19ybWFsbG9jKQojZGVmaW5lIF9f dmVyX3NrYl9saW5lYXJpemUgc21wXzdjNDYyZjNlCiNkZWZpbmUgc2tiX2xpbmVhcml6ZSBfc2V0 X3Zlcihza2JfbGluZWFyaXplKQojZGVmaW5lIF9fdmVyX3NrYl9jaGVja3N1bSBzbXBfZGE1YWJh ZDIKI2RlZmluZSBza2JfY2hlY2tzdW0gX3NldF92ZXIoc2tiX2NoZWNrc3VtKQojZGVmaW5lIF9f dmVyX3NrYl9jaGVja3N1bV9oZWxwIHNtcF83ZGZmMTM1YwojZGVmaW5lIHNrYl9jaGVja3N1bV9o ZWxwIF9zZXRfdmVyKHNrYl9jaGVja3N1bV9oZWxwKQojZGVmaW5lIF9fdmVyX3NrYl9yZWN2X2Rh dGFncmFtIHNtcF9mNDZjNmI2MwojZGVmaW5lIHNrYl9yZWN2X2RhdGFncmFtIF9zZXRfdmVyKHNr Yl9yZWN2X2RhdGFncmFtKQojZGVmaW5lIF9fdmVyX3NrYl9mcmVlX2RhdGFncmFtIHNtcF8zNTUz ZmU2MAojZGVmaW5lIHNrYl9mcmVlX2RhdGFncmFtIF9zZXRfdmVyKHNrYl9mcmVlX2RhdGFncmFt KQojZGVmaW5lIF9fdmVyX3NrYl9jb3B5X2RhdGFncmFtIHNtcF83Y2Q3NDE0MAojZGVmaW5lIHNr Yl9jb3B5X2RhdGFncmFtIF9zZXRfdmVyKHNrYl9jb3B5X2RhdGFncmFtKQojZGVmaW5lIF9fdmVy X3NrYl9jb3B5X2RhdGFncmFtX2lvdmVjIHNtcF84NjdjZjQ5MgojZGVmaW5lIHNrYl9jb3B5X2Rh dGFncmFtX2lvdmVjIF9zZXRfdmVyKHNrYl9jb3B5X2RhdGFncmFtX2lvdmVjKQojZGVmaW5lIF9f dmVyX3NrYl9jb3B5X2FuZF9jc3VtX2RhdGFncmFtX2lvdmVjIHNtcF81NzQxOWM3OQojZGVmaW5l IHNrYl9jb3B5X2FuZF9jc3VtX2RhdGFncmFtX2lvdmVjIF9zZXRfdmVyKHNrYl9jb3B5X2FuZF9j c3VtX2RhdGFncmFtX2lvdmVjKQojZGVmaW5lIF9fdmVyX3NrYl9jb3B5X2JpdHMgc21wX2E1NWM4 NDdiCiNkZWZpbmUgc2tiX2NvcHlfYml0cyBfc2V0X3Zlcihza2JfY29weV9iaXRzKQojZGVmaW5l IF9fdmVyX3NrYl9jb3B5X2FuZF9jc3VtX2JpdHMgc21wX2FmODc3NzE5CiNkZWZpbmUgc2tiX2Nv cHlfYW5kX2NzdW1fYml0cyBfc2V0X3Zlcihza2JfY29weV9hbmRfY3N1bV9iaXRzKQojZGVmaW5l IF9fdmVyX3NrYl9jb3B5X2FuZF9jc3VtX2RldiBzbXBfZjA4ZmEwMGUKI2RlZmluZSBza2JfY29w eV9hbmRfY3N1bV9kZXYgX3NldF92ZXIoc2tiX2NvcHlfYW5kX2NzdW1fZGV2KQojZGVmaW5lIF9f dmVyX3NrYl9jb3B5X2V4cGFuZCBzbXBfNmI3YTYzNmMKI2RlZmluZSBza2JfY29weV9leHBhbmQg X3NldF92ZXIoc2tiX2NvcHlfZXhwYW5kKQojZGVmaW5lIF9fdmVyX19fX3Bza2JfdHJpbSBzbXBf ZjdjM2NmMjMKI2RlZmluZSBfX19wc2tiX3RyaW0gX3NldF92ZXIoX19fcHNrYl90cmltKQojZGVm aW5lIF9fdmVyX19fcHNrYl9wdWxsX3RhaWwgc21wX2NhZjcyNjg4CiNkZWZpbmUgX19wc2tiX3B1 bGxfdGFpbCBfc2V0X3ZlcihfX3Bza2JfcHVsbF90YWlsKQojZGVmaW5lIF9fdmVyX3Bza2JfZXhw YW5kX2hlYWQgc21wX2IzYTRhOGNhCiNkZWZpbmUgcHNrYl9leHBhbmRfaGVhZCBfc2V0X3Zlcihw c2tiX2V4cGFuZF9oZWFkKQojZGVmaW5lIF9fdmVyX3Bza2JfY29weSBzbXBfM2YzN2QwNDEKI2Rl ZmluZSBwc2tiX2NvcHkgX3NldF92ZXIocHNrYl9jb3B5KQojZGVmaW5lIF9fdmVyX3NrYl9yZWFs bG9jX2hlYWRyb29tIHNtcF9iOTM3NmFmMQojZGVmaW5lIHNrYl9yZWFsbG9jX2hlYWRyb29tIF9z ZXRfdmVyKHNrYl9yZWFsbG9jX2hlYWRyb29tKQojZGVmaW5lIF9fdmVyX2RhdGFncmFtX3BvbGwg c21wX2ViMDNjMzkyCiNkZWZpbmUgZGF0YWdyYW1fcG9sbCBfc2V0X3ZlcihkYXRhZ3JhbV9wb2xs KQojZGVmaW5lIF9fdmVyX3B1dF9jbXNnIHNtcF80M2VjOTEzYQojZGVmaW5lIHB1dF9jbXNnIF9z ZXRfdmVyKHB1dF9jbXNnKQojZGVmaW5lIF9fdmVyX3NvY2tfa21hbGxvYyBzbXBfMGFhNjY4OTcK I2RlZmluZSBzb2NrX2ttYWxsb2MgX3NldF92ZXIoc29ja19rbWFsbG9jKQojZGVmaW5lIF9fdmVy X3NvY2tfa2ZyZWVfcyBzbXBfMzJlM2EyZTkKI2RlZmluZSBzb2NrX2tmcmVlX3MgX3NldF92ZXIo c29ja19rZnJlZV9zKQojZGVmaW5lIF9fdmVyX3NrX3J1bl9maWx0ZXIgc21wXzAxZDRiMTczCiNk ZWZpbmUgc2tfcnVuX2ZpbHRlciBfc2V0X3Zlcihza19ydW5fZmlsdGVyKQojZGVmaW5lIF9fdmVy X3NrX2Noa19maWx0ZXIgc21wXzUzYzA3NjdjCiNkZWZpbmUgc2tfY2hrX2ZpbHRlciBfc2V0X3Zl cihza19jaGtfZmlsdGVyKQojZGVmaW5lIF9fdmVyX25laWdoX3RhYmxlX2luaXQgc21wXzJlMmNj ZjVmCiNkZWZpbmUgbmVpZ2hfdGFibGVfaW5pdCBfc2V0X3ZlcihuZWlnaF90YWJsZV9pbml0KQoj ZGVmaW5lIF9fdmVyX25laWdoX3RhYmxlX2NsZWFyIHNtcF8wOTYwNWQ2NQojZGVmaW5lIG5laWdo X3RhYmxlX2NsZWFyIF9zZXRfdmVyKG5laWdoX3RhYmxlX2NsZWFyKQojZGVmaW5lIF9fdmVyX25l aWdoX3Jlc29sdmVfb3V0cHV0IHNtcF85OTQwOTNjMQojZGVmaW5lIG5laWdoX3Jlc29sdmVfb3V0 cHV0IF9zZXRfdmVyKG5laWdoX3Jlc29sdmVfb3V0cHV0KQojZGVmaW5lIF9fdmVyX25laWdoX2Nv bm5lY3RlZF9vdXRwdXQgc21wXzViMGZhMzc1CiNkZWZpbmUgbmVpZ2hfY29ubmVjdGVkX291dHB1 dCBfc2V0X3ZlcihuZWlnaF9jb25uZWN0ZWRfb3V0cHV0KQojZGVmaW5lIF9fdmVyX25laWdoX3Vw ZGF0ZSBzbXBfZWUxN2FlYmMKI2RlZmluZSBuZWlnaF91cGRhdGUgX3NldF92ZXIobmVpZ2hfdXBk YXRlKQojZGVmaW5lIF9fdmVyX25laWdoX2NyZWF0ZSBzbXBfMzAyZDdhMWEKI2RlZmluZSBuZWln aF9jcmVhdGUgX3NldF92ZXIobmVpZ2hfY3JlYXRlKQojZGVmaW5lIF9fdmVyX25laWdoX2xvb2t1 cCBzbXBfMzljM2ExNWYKI2RlZmluZSBuZWlnaF9sb29rdXAgX3NldF92ZXIobmVpZ2hfbG9va3Vw KQojZGVmaW5lIF9fdmVyX19fbmVpZ2hfZXZlbnRfc2VuZCBzbXBfNWRkMmFkMTkKI2RlZmluZSBf X25laWdoX2V2ZW50X3NlbmQgX3NldF92ZXIoX19uZWlnaF9ldmVudF9zZW5kKQojZGVmaW5lIF9f dmVyX25laWdoX2V2ZW50X25zIHNtcF85YTg2YWY1OQojZGVmaW5lIG5laWdoX2V2ZW50X25zIF9z ZXRfdmVyKG5laWdoX2V2ZW50X25zKQojZGVmaW5lIF9fdmVyX25laWdoX2lmZG93biBzbXBfYTA4 MDViNzUKI2RlZmluZSBuZWlnaF9pZmRvd24gX3NldF92ZXIobmVpZ2hfaWZkb3duKQojZGVmaW5l IF9fdmVyX25laWdoX3N5c2N0bF9yZWdpc3RlciBzbXBfZDE5YzQyNWYKI2RlZmluZSBuZWlnaF9z eXNjdGxfcmVnaXN0ZXIgX3NldF92ZXIobmVpZ2hfc3lzY3RsX3JlZ2lzdGVyKQojZGVmaW5lIF9f dmVyX3BuZWlnaF9sb29rdXAgc21wX2RmNWRmNjA3CiNkZWZpbmUgcG5laWdoX2xvb2t1cCBfc2V0 X3ZlcihwbmVpZ2hfbG9va3VwKQojZGVmaW5lIF9fdmVyX3BuZWlnaF9lbnF1ZXVlIHNtcF80ZmRk NWZiYQojZGVmaW5lIHBuZWlnaF9lbnF1ZXVlIF9zZXRfdmVyKHBuZWlnaF9lbnF1ZXVlKQojZGVm aW5lIF9fdmVyX25laWdoX2Rlc3Ryb3kgc21wXzk5MWJiNWYwCiNkZWZpbmUgbmVpZ2hfZGVzdHJv eSBfc2V0X3ZlcihuZWlnaF9kZXN0cm95KQojZGVmaW5lIF9fdmVyX25laWdoX3Bhcm1zX2FsbG9j IHNtcF9iNjI3OTYxYwojZGVmaW5lIG5laWdoX3Bhcm1zX2FsbG9jIF9zZXRfdmVyKG5laWdoX3Bh cm1zX2FsbG9jKQojZGVmaW5lIF9fdmVyX25laWdoX3Bhcm1zX3JlbGVhc2Ugc21wXzMxNGMwYzcz CiNkZWZpbmUgbmVpZ2hfcGFybXNfcmVsZWFzZSBfc2V0X3ZlcihuZWlnaF9wYXJtc19yZWxlYXNl KQojZGVmaW5lIF9fdmVyX25laWdoX3JhbmRfcmVhY2hfdGltZSBzbXBfNDE4OGQ0MzkKI2RlZmlu ZSBuZWlnaF9yYW5kX3JlYWNoX3RpbWUgX3NldF92ZXIobmVpZ2hfcmFuZF9yZWFjaF90aW1lKQoj ZGVmaW5lIF9fdmVyX25laWdoX2NvbXBhdF9vdXRwdXQgc21wXzllOGY3MWE2CiNkZWZpbmUgbmVp Z2hfY29tcGF0X291dHB1dCBfc2V0X3ZlcihuZWlnaF9jb21wYXRfb3V0cHV0KQojZGVmaW5lIF9f dmVyX2RzdF9hbGxvYyBzbXBfNjM2YTY5ZWMKI2RlZmluZSBkc3RfYWxsb2MgX3NldF92ZXIoZHN0 X2FsbG9jKQojZGVmaW5lIF9fdmVyX19fZHN0X2ZyZWUgc21wX2UyYzRlZDg3CiNkZWZpbmUgX19k c3RfZnJlZSBfc2V0X3ZlcihfX2RzdF9mcmVlKQojZGVmaW5lIF9fdmVyX2RzdF9kZXN0cm95IHNt cF8xOTg5MTIxYgojZGVmaW5lIGRzdF9kZXN0cm95IF9zZXRfdmVyKGRzdF9kZXN0cm95KQojZGVm aW5lIF9fdmVyX25ldF9yYXRlbGltaXQgc21wX2Y2ZWJjMDNiCiNkZWZpbmUgbmV0X3JhdGVsaW1p dCBfc2V0X3ZlcihuZXRfcmF0ZWxpbWl0KQojZGVmaW5lIF9fdmVyX25ldF9yYW5kb20gc21wXzFj NjZmNjRjCiNkZWZpbmUgbmV0X3JhbmRvbSBfc2V0X3ZlcihuZXRfcmFuZG9tKQojZGVmaW5lIF9f dmVyX25ldF9zcmFuZG9tIHNtcF9mZjk2M2VkOAojZGVmaW5lIG5ldF9zcmFuZG9tIF9zZXRfdmVy KG5ldF9zcmFuZG9tKQojZGVmaW5lIF9fdmVyX19fc2NtX2Rlc3Ryb3kgc21wX2EwM2UxNTJmCiNk ZWZpbmUgX19zY21fZGVzdHJveSBfc2V0X3ZlcihfX3NjbV9kZXN0cm95KQojZGVmaW5lIF9fdmVy X19fc2NtX3NlbmQgc21wXzQyY2IzZDI4CiNkZWZpbmUgX19zY21fc2VuZCBfc2V0X3ZlcihfX3Nj bV9zZW5kKQojZGVmaW5lIF9fdmVyX3NjbV9mcF9kdXAgc21wXzIyOTNjNThjCiNkZWZpbmUgc2Nt X2ZwX2R1cCBfc2V0X3ZlcihzY21fZnBfZHVwKQojZGVmaW5lIF9fdmVyX2ZpbGVzX3N0YXQgc21w XzAzY2FkYTI3CiNkZWZpbmUgZmlsZXNfc3RhdCBfc2V0X3ZlcihmaWxlc19zdGF0KQojZGVmaW5l IF9fdmVyX21lbWNweV90b2lvdmVjIHNtcF8yODc2YTZkMwojZGVmaW5lIG1lbWNweV90b2lvdmVj IF9zZXRfdmVyKG1lbWNweV90b2lvdmVjKQojZGVmaW5lIF9fdmVyX3NrbGlzdF9kZXN0cm95X3Nv Y2tldCBzbXBfMzVlOTU5NDYKI2RlZmluZSBza2xpc3RfZGVzdHJveV9zb2NrZXQgX3NldF92ZXIo c2tsaXN0X2Rlc3Ryb3lfc29ja2V0KQojZGVmaW5lIF9fdmVyX3NrbGlzdF9pbnNlcnRfc29ja2V0 IHNtcF8xNDNjOWMwNAojZGVmaW5lIHNrbGlzdF9pbnNlcnRfc29ja2V0IF9zZXRfdmVyKHNrbGlz dF9pbnNlcnRfc29ja2V0KQojZGVmaW5lIF9fdmVyX3NjbV9kZXRhY2hfZmRzIHNtcF81NWMwN2Uw NwojZGVmaW5lIHNjbV9kZXRhY2hfZmRzIF9zZXRfdmVyKHNjbV9kZXRhY2hfZmRzKQojZGVmaW5l IF9fdmVyX2luZXRkZXZfbG9jayBzbXBfZGVlZDVkMzIKI2RlZmluZSBpbmV0ZGV2X2xvY2sgX3Nl dF92ZXIoaW5ldGRldl9sb2NrKQojZGVmaW5lIF9fdmVyX2luZXRfYWRkX3Byb3RvY29sIHNtcF80 YzU4ZTI0NgojZGVmaW5lIGluZXRfYWRkX3Byb3RvY29sIF9zZXRfdmVyKGluZXRfYWRkX3Byb3Rv Y29sKQojZGVmaW5lIF9fdmVyX2luZXRfZGVsX3Byb3RvY29sIHNtcF8xODYxNGQ3ZQojZGVmaW5l IGluZXRfZGVsX3Byb3RvY29sIF9zZXRfdmVyKGluZXRfZGVsX3Byb3RvY29sKQojZGVmaW5lIF9f dmVyX2luZXRfcmVnaXN0ZXJfcHJvdG9zdyBzbXBfYzgwMDlkZTMKI2RlZmluZSBpbmV0X3JlZ2lz dGVyX3Byb3Rvc3cgX3NldF92ZXIoaW5ldF9yZWdpc3Rlcl9wcm90b3N3KQojZGVmaW5lIF9fdmVy X2luZXRfdW5yZWdpc3Rlcl9wcm90b3N3IHNtcF8zYTYyNTI0MAojZGVmaW5lIGluZXRfdW5yZWdp c3Rlcl9wcm90b3N3IF9zZXRfdmVyKGluZXRfdW5yZWdpc3Rlcl9wcm90b3N3KQojZGVmaW5lIF9f dmVyX2lwX3JvdXRlX291dHB1dF9rZXkgc21wX2I1MmIyODE2CiNkZWZpbmUgaXBfcm91dGVfb3V0 cHV0X2tleSBfc2V0X3ZlcihpcF9yb3V0ZV9vdXRwdXRfa2V5KQojZGVmaW5lIF9fdmVyX2lwX3Jv dXRlX2lucHV0IHNtcF85MzBlNmJmOQojZGVmaW5lIGlwX3JvdXRlX2lucHV0IF9zZXRfdmVyKGlw X3JvdXRlX2lucHV0KQojZGVmaW5lIF9fdmVyX2ljbXBfc2VuZCBzbXBfODE2OWJiZDAKI2RlZmlu ZSBpY21wX3NlbmQgX3NldF92ZXIoaWNtcF9zZW5kKQojZGVmaW5lIF9fdmVyX2lwX29wdGlvbnNf Y29tcGlsZSBzbXBfYTcwMzE3NDMKI2RlZmluZSBpcF9vcHRpb25zX2NvbXBpbGUgX3NldF92ZXIo aXBfb3B0aW9uc19jb21waWxlKQojZGVmaW5lIF9fdmVyX2lwX29wdGlvbnNfdW5kbyBzbXBfOTcy MWYxMmYKI2RlZmluZSBpcF9vcHRpb25zX3VuZG8gX3NldF92ZXIoaXBfb3B0aW9uc191bmRvKQoj ZGVmaW5lIF9fdmVyX2FycF9zZW5kIHNtcF82Y2ZhMTMxNgojZGVmaW5lIGFycF9zZW5kIF9zZXRf dmVyKGFycF9zZW5kKQojZGVmaW5lIF9fdmVyX2FycF9icm9rZW5fb3BzIHNtcF81YTBhZTBiZAoj ZGVmaW5lIGFycF9icm9rZW5fb3BzIF9zZXRfdmVyKGFycF9icm9rZW5fb3BzKQojZGVmaW5lIF9f dmVyX19faXBfc2VsZWN0X2lkZW50IHNtcF81ZjQzODM3MwojZGVmaW5lIF9faXBfc2VsZWN0X2lk ZW50IF9zZXRfdmVyKF9faXBfc2VsZWN0X2lkZW50KQojZGVmaW5lIF9fdmVyX2lwX3NlbmRfY2hl Y2sgc21wX2EzN2I3NDQxCiNkZWZpbmUgaXBfc2VuZF9jaGVjayBfc2V0X3ZlcihpcF9zZW5kX2No ZWNrKQojZGVmaW5lIF9fdmVyX2lwX2ZyYWdtZW50IHNtcF9iMmRkNTZmMgojZGVmaW5lIGlwX2Zy YWdtZW50IF9zZXRfdmVyKGlwX2ZyYWdtZW50KQojZGVmaW5lIF9fdmVyX2luZXRfZmFtaWx5X29w cyBzbXBfNzkzNmJiNDcKI2RlZmluZSBpbmV0X2ZhbWlseV9vcHMgX3NldF92ZXIoaW5ldF9mYW1p bHlfb3BzKQojZGVmaW5lIF9fdmVyX2luX2F0b24gc21wXzgzZTBhMTYyCiNkZWZpbmUgaW5fYXRv biBfc2V0X3Zlcihpbl9hdG9uKQojZGVmaW5lIF9fdmVyX2lwX21jX2luY19ncm91cCBzbXBfOTg1 NWI2ZDMKI2RlZmluZSBpcF9tY19pbmNfZ3JvdXAgX3NldF92ZXIoaXBfbWNfaW5jX2dyb3VwKQoj ZGVmaW5lIF9fdmVyX2lwX21jX2RlY19ncm91cCBzbXBfODdmNDQyZjQKI2RlZmluZSBpcF9tY19k ZWNfZ3JvdXAgX3NldF92ZXIoaXBfbWNfZGVjX2dyb3VwKQojZGVmaW5lIF9fdmVyX2lwX2Zpbmlz aF9vdXRwdXQgc21wXzgwZDJlNDEyCiNkZWZpbmUgaXBfZmluaXNoX291dHB1dCBfc2V0X3Zlcihp cF9maW5pc2hfb3V0cHV0KQojZGVmaW5lIF9fdmVyX2luZXRfc3RyZWFtX29wcyBzbXBfZjExNzFj OTUKI2RlZmluZSBpbmV0X3N0cmVhbV9vcHMgX3NldF92ZXIoaW5ldF9zdHJlYW1fb3BzKQojZGVm aW5lIF9fdmVyX2luZXRfZGdyYW1fb3BzIHNtcF9mYWQ5MDMxZAojZGVmaW5lIGluZXRfZGdyYW1f b3BzIF9zZXRfdmVyKGluZXRfZGdyYW1fb3BzKQojZGVmaW5lIF9fdmVyX2lwX2Ntc2dfcmVjdiBz bXBfOWRhYWM3OTIKI2RlZmluZSBpcF9jbXNnX3JlY3YgX3NldF92ZXIoaXBfY21zZ19yZWN2KQoj ZGVmaW5lIF9fdmVyX2luZXRfYWRkcl90eXBlIHNtcF85ZjgxOTdkYgojZGVmaW5lIGluZXRfYWRk cl90eXBlIF9zZXRfdmVyKGluZXRfYWRkcl90eXBlKQojZGVmaW5lIF9fdmVyX2luZXRfc2VsZWN0 X2FkZHIgc21wX2FlNTFmMGU3CiNkZWZpbmUgaW5ldF9zZWxlY3RfYWRkciBfc2V0X3ZlcihpbmV0 X3NlbGVjdF9hZGRyKQojZGVmaW5lIF9fdmVyX2lwX2Rldl9maW5kIHNtcF9hNWQ1ODg5ZAojZGVm aW5lIGlwX2Rldl9maW5kIF9zZXRfdmVyKGlwX2Rldl9maW5kKQojZGVmaW5lIF9fdmVyX2luZXRk ZXZfYnlfaW5kZXggc21wXzEzYjY5YmQ5CiNkZWZpbmUgaW5ldGRldl9ieV9pbmRleCBfc2V0X3Zl cihpbmV0ZGV2X2J5X2luZGV4KQojZGVmaW5lIF9fdmVyX2luX2Rldl9maW5pc2hfZGVzdHJveSBz bXBfYzgwOTU5ZTIKI2RlZmluZSBpbl9kZXZfZmluaXNoX2Rlc3Ryb3kgX3NldF92ZXIoaW5fZGV2 X2ZpbmlzaF9kZXN0cm95KQojZGVmaW5lIF9fdmVyX2lwX2RlZnJhZyBzbXBfM2Y3NmYwM2YKI2Rl ZmluZSBpcF9kZWZyYWcgX3NldF92ZXIoaXBfZGVmcmFnKQojZGVmaW5lIF9fdmVyX2lwX3J0X2lv Y3RsIHNtcF85NDIwOGU4NAojZGVmaW5lIGlwX3J0X2lvY3RsIF9zZXRfdmVyKGlwX3J0X2lvY3Rs KQojZGVmaW5lIF9fdmVyX2RldmluZXRfaW9jdGwgc21wXzg2OWM4MGVhCiNkZWZpbmUgZGV2aW5l dF9pb2N0bCBfc2V0X3ZlcihkZXZpbmV0X2lvY3RsKQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX2lu ZXRhZGRyX25vdGlmaWVyIHNtcF8zZTQ1ZTlmZgojZGVmaW5lIHJlZ2lzdGVyX2luZXRhZGRyX25v dGlmaWVyIF9zZXRfdmVyKHJlZ2lzdGVyX2luZXRhZGRyX25vdGlmaWVyKQojZGVmaW5lIF9fdmVy X3VucmVnaXN0ZXJfaW5ldGFkZHJfbm90aWZpZXIgc21wXzc2MGI0MzdhCiNkZWZpbmUgdW5yZWdp c3Rlcl9pbmV0YWRkcl9ub3RpZmllciBfc2V0X3Zlcih1bnJlZ2lzdGVyX2luZXRhZGRyX25vdGlm aWVyKQojZGVmaW5lIF9fdmVyX2lwX3N0YXRpc3RpY3Mgc21wX2Y2MGZjM2U2CiNkZWZpbmUgaXBf c3RhdGlzdGljcyBfc2V0X3ZlcihpcF9zdGF0aXN0aWNzKQojZGVmaW5lIF9fdmVyX25ldGxpbmtf c2V0X2VyciBzbXBfMjAyNjJmZGIKI2RlZmluZSBuZXRsaW5rX3NldF9lcnIgX3NldF92ZXIobmV0 bGlua19zZXRfZXJyKQojZGVmaW5lIF9fdmVyX25ldGxpbmtfYnJvYWRjYXN0IHNtcF81YTY1M2Vl ZQojZGVmaW5lIG5ldGxpbmtfYnJvYWRjYXN0IF9zZXRfdmVyKG5ldGxpbmtfYnJvYWRjYXN0KQoj ZGVmaW5lIF9fdmVyX25ldGxpbmtfdW5pY2FzdCBzbXBfYWMxOTY3MmUKI2RlZmluZSBuZXRsaW5r X3VuaWNhc3QgX3NldF92ZXIobmV0bGlua191bmljYXN0KQojZGVmaW5lIF9fdmVyX25ldGxpbmtf a2VybmVsX2NyZWF0ZSBzbXBfNDI1ZmY0MzIKI2RlZmluZSBuZXRsaW5rX2tlcm5lbF9jcmVhdGUg X3NldF92ZXIobmV0bGlua19rZXJuZWxfY3JlYXRlKQojZGVmaW5lIF9fdmVyX25ldGxpbmtfZHVt cF9zdGFydCBzbXBfN2IxZGE2YjYKI2RlZmluZSBuZXRsaW5rX2R1bXBfc3RhcnQgX3NldF92ZXIo bmV0bGlua19kdW1wX3N0YXJ0KQojZGVmaW5lIF9fdmVyX25ldGxpbmtfYWNrIHNtcF81ZmViMmJk YQojZGVmaW5lIG5ldGxpbmtfYWNrIF9zZXRfdmVyKG5ldGxpbmtfYWNrKQojZGVmaW5lIF9fdmVy X3J0YXR0cl9wYXJzZSBzbXBfZTQ5NDE0ZTkKI2RlZmluZSBydGF0dHJfcGFyc2UgX3NldF92ZXIo cnRhdHRyX3BhcnNlKQojZGVmaW5lIF9fdmVyX3J0bmV0bGlua19saW5rcyBzbXBfNzE3M2U0MmMK I2RlZmluZSBydG5ldGxpbmtfbGlua3MgX3NldF92ZXIocnRuZXRsaW5rX2xpbmtzKQojZGVmaW5l IF9fdmVyX19fcnRhX2ZpbGwgc21wX2Y2MGZkMjFmCiNkZWZpbmUgX19ydGFfZmlsbCBfc2V0X3Zl cihfX3J0YV9maWxsKQojZGVmaW5lIF9fdmVyX3J0bmV0bGlua19kdW1wX2lmaW5mbyBzbXBfMTU2 YjRlZjAKI2RlZmluZSBydG5ldGxpbmtfZHVtcF9pZmluZm8gX3NldF92ZXIocnRuZXRsaW5rX2R1 bXBfaWZpbmZvKQojZGVmaW5lIF9fdmVyX3J0bmV0bGlua19wdXRfbWV0cmljcyBzbXBfYmE4MmRj ZDkKI2RlZmluZSBydG5ldGxpbmtfcHV0X21ldHJpY3MgX3NldF92ZXIocnRuZXRsaW5rX3B1dF9t ZXRyaWNzKQojZGVmaW5lIF9fdmVyX3J0bmwgc21wX2Q4MDE4OGI4CiNkZWZpbmUgcnRubCBfc2V0 X3ZlcihydG5sKQojZGVmaW5lIF9fdmVyX25laWdoX2RlbGV0ZSBzbXBfYjdmNmM5Y2MKI2RlZmlu ZSBuZWlnaF9kZWxldGUgX3NldF92ZXIobmVpZ2hfZGVsZXRlKQojZGVmaW5lIF9fdmVyX25laWdo X2FkZCBzbXBfNWNlNDZlYWMKI2RlZmluZSBuZWlnaF9hZGQgX3NldF92ZXIobmVpZ2hfYWRkKQoj ZGVmaW5lIF9fdmVyX25laWdoX2R1bXBfaW5mbyBzbXBfMDZiYjlkYjUKI2RlZmluZSBuZWlnaF9k dW1wX2luZm8gX3NldF92ZXIobmVpZ2hfZHVtcF9pbmZvKQojZGVmaW5lIF9fdmVyX2Rldl9zZXRf YWxsbXVsdGkgc21wXzEyMmI2MjJhCiNkZWZpbmUgZGV2X3NldF9hbGxtdWx0aSBfc2V0X3Zlcihk ZXZfc2V0X2FsbG11bHRpKQojZGVmaW5lIF9fdmVyX2Rldl9zZXRfcHJvbWlzY3VpdHkgc21wX2Mz YzliMTA0CiNkZWZpbmUgZGV2X3NldF9wcm9taXNjdWl0eSBfc2V0X3ZlcihkZXZfc2V0X3Byb21p c2N1aXR5KQojZGVmaW5lIF9fdmVyX3NrbGlzdF9yZW1vdmVfc29ja2V0IHNtcF81NzIxMTA2NQoj ZGVmaW5lIHNrbGlzdF9yZW1vdmVfc29ja2V0IF9zZXRfdmVyKHNrbGlzdF9yZW1vdmVfc29ja2V0 KQojZGVmaW5lIF9fdmVyX3J0bmxfc2VtIHNtcF8zMzIyZWIzYQojZGVmaW5lIHJ0bmxfc2VtIF9z ZXRfdmVyKHJ0bmxfc2VtKQojZGVmaW5lIF9fdmVyX3J0bmxfbG9jayBzbXBfYzdhNGZiZWQKI2Rl ZmluZSBydG5sX2xvY2sgX3NldF92ZXIocnRubF9sb2NrKQojZGVmaW5lIF9fdmVyX3J0bmxfdW5s b2NrIHNtcF82ZTcyMGZmMgojZGVmaW5lIHJ0bmxfdW5sb2NrIF9zZXRfdmVyKHJ0bmxfdW5sb2Nr KQojZGVmaW5lIF9fdmVyX2lwdjRfY29uZmlnIHNtcF8yNmI5OTc4MgojZGVmaW5lIGlwdjRfY29u ZmlnIF9zZXRfdmVyKGlwdjRfY29uZmlnKQojZGVmaW5lIF9fdmVyX2Rldl9vcGVuIHNtcF9mZTcy ZGZmZQojZGVmaW5lIGRldl9vcGVuIF9zZXRfdmVyKGRldl9vcGVuKQojZGVmaW5lIF9fdmVyX2lu X250b2Egc21wXzIwY2U0OTFiCiNkZWZpbmUgaW5fbnRvYSBfc2V0X3Zlcihpbl9udG9hKQojZGVm aW5lIF9fdmVyX3hybGltX2FsbG93IHNtcF8zYzI1MDg3YwojZGVmaW5lIHhybGltX2FsbG93IF9z ZXRfdmVyKHhybGltX2FsbG93KQojZGVmaW5lIF9fdmVyX2lwX3JjdiBzbXBfZmVmYWQ2ZjUKI2Rl ZmluZSBpcF9yY3YgX3NldF92ZXIoaXBfcmN2KQojZGVmaW5lIF9fdmVyX2FycF9yY3Ygc21wX2Ni OWJlZmRjCiNkZWZpbmUgYXJwX3JjdiBfc2V0X3ZlcihhcnBfcmN2KQojZGVmaW5lIF9fdmVyX2Fy cF90Ymwgc21wXzJjMWY2NTgxCiNkZWZpbmUgYXJwX3RibCBfc2V0X3ZlcihhcnBfdGJsKQojZGVm aW5lIF9fdmVyX2FycF9maW5kIHNtcF9hYmRkYzM0OAojZGVmaW5lIGFycF9maW5kIF9zZXRfdmVy KGFycF9maW5kKQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllciBzbXBf NjNlY2FkNTMKI2RlZmluZSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIgX3NldF92ZXIocmVn aXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfbmV0ZGV2 aWNlX25vdGlmaWVyIHNtcF9mZTc2OTQ1NgojZGVmaW5lIHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25v dGlmaWVyIF9zZXRfdmVyKHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKQojZGVmaW5lIF9f dmVyX2xvb3BiYWNrX2RldiBzbXBfMzEwN2I3ZDgKI2RlZmluZSBsb29wYmFja19kZXYgX3NldF92 ZXIobG9vcGJhY2tfZGV2KQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX25ldGRldmljZSBzbXBfZGE1 YjM0NWQKI2RlZmluZSByZWdpc3Rlcl9uZXRkZXZpY2UgX3NldF92ZXIocmVnaXN0ZXJfbmV0ZGV2 aWNlKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfbmV0ZGV2aWNlIHNtcF9iZGU0ZWVlZQojZGVm aW5lIHVucmVnaXN0ZXJfbmV0ZGV2aWNlIF9zZXRfdmVyKHVucmVnaXN0ZXJfbmV0ZGV2aWNlKQoj ZGVmaW5lIF9fdmVyX25ldGRldl9zdGF0ZV9jaGFuZ2Ugc21wXzFlOTExNzdjCiNkZWZpbmUgbmV0 ZGV2X3N0YXRlX2NoYW5nZSBfc2V0X3ZlcihuZXRkZXZfc3RhdGVfY2hhbmdlKQojZGVmaW5lIF9f dmVyX2Rldl9uZXdfaW5kZXggc21wXzhmZGRjODRjCiNkZWZpbmUgZGV2X25ld19pbmRleCBfc2V0 X3ZlcihkZXZfbmV3X2luZGV4KQojZGVmaW5lIF9fdmVyX2Rldl9nZXRfYnlfaW5kZXggc21wXzMy MzNiN2M0CiNkZWZpbmUgZGV2X2dldF9ieV9pbmRleCBfc2V0X3ZlcihkZXZfZ2V0X2J5X2luZGV4 KQojZGVmaW5lIF9fdmVyX19fZGV2X2dldF9ieV9pbmRleCBzbXBfNzMwZTA4ZGQKI2RlZmluZSBf X2Rldl9nZXRfYnlfaW5kZXggX3NldF92ZXIoX19kZXZfZ2V0X2J5X2luZGV4KQojZGVmaW5lIF9f dmVyX2Rldl9nZXRfYnlfbmFtZSBzbXBfNDVhMGI3Y2IKI2RlZmluZSBkZXZfZ2V0X2J5X25hbWUg X3NldF92ZXIoZGV2X2dldF9ieV9uYW1lKQojZGVmaW5lIF9fdmVyX19fZGV2X2dldF9ieV9uYW1l IHNtcF8yZDFlYzcwOAojZGVmaW5lIF9fZGV2X2dldF9ieV9uYW1lIF9zZXRfdmVyKF9fZGV2X2dl dF9ieV9uYW1lKQojZGVmaW5lIF9fdmVyX25ldGRldl9maW5pc2hfdW5yZWdpc3RlciBzbXBfMWZm YTE4MmEKI2RlZmluZSBuZXRkZXZfZmluaXNoX3VucmVnaXN0ZXIgX3NldF92ZXIobmV0ZGV2X2Zp bmlzaF91bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX25ldGRldl9zZXRfbWFzdGVyIHNtcF9jOTBk NTFkYgojZGVmaW5lIG5ldGRldl9zZXRfbWFzdGVyIF9zZXRfdmVyKG5ldGRldl9zZXRfbWFzdGVy KQojZGVmaW5lIF9fdmVyX2V0aF90eXBlX3RyYW5zIHNtcF85NDg1N2ZkNAojZGVmaW5lIGV0aF90 eXBlX3RyYW5zIF9zZXRfdmVyKGV0aF90eXBlX3RyYW5zKQojZGVmaW5lIF9fdmVyX2FsbG9jX3Nr YiBzbXBfNDcwM2ZhM2MKI2RlZmluZSBhbGxvY19za2IgX3NldF92ZXIoYWxsb2Nfc2tiKQojZGVm aW5lIF9fdmVyX19fa2ZyZWVfc2tiIHNtcF81ZjBkYzdlYQojZGVmaW5lIF9fa2ZyZWVfc2tiIF9z ZXRfdmVyKF9fa2ZyZWVfc2tiKQojZGVmaW5lIF9fdmVyX3NrYl9jbG9uZSBzbXBfMzU3ZTllNjIK I2RlZmluZSBza2JfY2xvbmUgX3NldF92ZXIoc2tiX2Nsb25lKQojZGVmaW5lIF9fdmVyX3NrYl9j b3B5IHNtcF8wN2VlOTdhMQojZGVmaW5lIHNrYl9jb3B5IF9zZXRfdmVyKHNrYl9jb3B5KQojZGVm aW5lIF9fdmVyX25ldGlmX3J4IHNtcF9lMTNmZjljOAojZGVmaW5lIG5ldGlmX3J4IF9zZXRfdmVy KG5ldGlmX3J4KQojZGVmaW5lIF9fdmVyX2Rldl9hZGRfcGFjayBzbXBfN2M1NzhmODMKI2RlZmlu ZSBkZXZfYWRkX3BhY2sgX3NldF92ZXIoZGV2X2FkZF9wYWNrKQojZGVmaW5lIF9fdmVyX2Rldl9y ZW1vdmVfcGFjayBzbXBfYjgyNjkwYmMKI2RlZmluZSBkZXZfcmVtb3ZlX3BhY2sgX3NldF92ZXIo ZGV2X3JlbW92ZV9wYWNrKQojZGVmaW5lIF9fdmVyX2Rldl9nZXQgc21wXzc5MjU5ZmJjCiNkZWZp bmUgZGV2X2dldCBfc2V0X3ZlcihkZXZfZ2V0KQojZGVmaW5lIF9fdmVyX2Rldl9hbGxvYyBzbXBf NDE1MjE2N2YKI2RlZmluZSBkZXZfYWxsb2MgX3NldF92ZXIoZGV2X2FsbG9jKQojZGVmaW5lIF9f dmVyX2Rldl9hbGxvY19uYW1lIHNtcF8yNDU3MjAxZQojZGVmaW5lIGRldl9hbGxvY19uYW1lIF9z ZXRfdmVyKGRldl9hbGxvY19uYW1lKQojZGVmaW5lIF9fdmVyX19fbmV0ZGV2X3dhdGNoZG9nX3Vw IHNtcF84YThmNjQzNgojZGVmaW5lIF9fbmV0ZGV2X3dhdGNoZG9nX3VwIF9zZXRfdmVyKF9fbmV0 ZGV2X3dhdGNoZG9nX3VwKQojZGVmaW5lIF9fdmVyX2Rldl9sb2FkIHNtcF9hOTBmZDNiNwojZGVm aW5lIGRldl9sb2FkIF9zZXRfdmVyKGRldl9sb2FkKQojZGVmaW5lIF9fdmVyX2Rldl9pb2N0bCBz bXBfMzg3Yzc4YTUKI2RlZmluZSBkZXZfaW9jdGwgX3NldF92ZXIoZGV2X2lvY3RsKQojZGVmaW5l IF9fdmVyX2Rldl9xdWV1ZV94bWl0IHNtcF9jMWU4MjY2MAojZGVmaW5lIGRldl9xdWV1ZV94bWl0 IF9zZXRfdmVyKGRldl9xdWV1ZV94bWl0KQojZGVmaW5lIF9fdmVyX2Rldl9iYXNlIHNtcF82Yzky MTA5NwojZGVmaW5lIGRldl9iYXNlIF9zZXRfdmVyKGRldl9iYXNlKQojZGVmaW5lIF9fdmVyX2Rl dl9iYXNlX2xvY2sgc21wXzI5NmEyOWQxCiNkZWZpbmUgZGV2X2Jhc2VfbG9jayBfc2V0X3Zlcihk ZXZfYmFzZV9sb2NrKQojZGVmaW5lIF9fdmVyX2Rldl9jbG9zZSBzbXBfNWE2MTVkYTEKI2RlZmlu ZSBkZXZfY2xvc2UgX3NldF92ZXIoZGV2X2Nsb3NlKQojZGVmaW5lIF9fdmVyX2Rldl9tY19hZGQg c21wXzA5NWRiZmQ3CiNkZWZpbmUgZGV2X21jX2FkZCBfc2V0X3ZlcihkZXZfbWNfYWRkKQojZGVm aW5lIF9fdmVyX2Rldl9tY19kZWxldGUgc21wXzdmNzY3YTNkCiNkZWZpbmUgZGV2X21jX2RlbGV0 ZSBfc2V0X3ZlcihkZXZfbWNfZGVsZXRlKQojZGVmaW5lIF9fdmVyX2Rldl9tY191cGxvYWQgc21w XzhiYTllMjdhCiNkZWZpbmUgZGV2X21jX3VwbG9hZCBfc2V0X3ZlcihkZXZfbWNfdXBsb2FkKQoj ZGVmaW5lIF9fdmVyX25fdHR5X2lvY3RsIHNtcF83NmUyMGI3MAojZGVmaW5lIG5fdHR5X2lvY3Rs IF9zZXRfdmVyKG5fdHR5X2lvY3RsKQojZGVmaW5lIF9fdmVyX3R0eV9yZWdpc3Rlcl9sZGlzYyBz bXBfODY5YzA4YjUKI2RlZmluZSB0dHlfcmVnaXN0ZXJfbGRpc2MgX3NldF92ZXIodHR5X3JlZ2lz dGVyX2xkaXNjKQojZGVmaW5lIF9fdmVyX19fa2lsbF9mYXN5bmMgc21wXzAyY2Y4NzcyCiNkZWZp bmUgX19raWxsX2Zhc3luYyBfc2V0X3ZlcihfX2tpbGxfZmFzeW5jKQojZGVmaW5lIF9fdmVyX2lm X3BvcnRfdGV4dCBzbXBfOWNmMGM2NGYKI2RlZmluZSBpZl9wb3J0X3RleHQgX3NldF92ZXIoaWZf cG9ydF90ZXh0KQojZGVmaW5lIF9fdmVyX3N5c2N0bF93bWVtX21heCBzbXBfZmFjODg2NWYKI2Rl ZmluZSBzeXNjdGxfd21lbV9tYXggX3NldF92ZXIoc3lzY3RsX3dtZW1fbWF4KQojZGVmaW5lIF9f dmVyX3N5c2N0bF9ybWVtX21heCBzbXBfYjA1ZmMzMTAKI2RlZmluZSBzeXNjdGxfcm1lbV9tYXgg X3NldF92ZXIoc3lzY3RsX3JtZW1fbWF4KQojZGVmaW5lIF9fdmVyX3N5c2N0bF9pcF9kZWZhdWx0 X3R0bCBzbXBfZjYzODhjNTYKI2RlZmluZSBzeXNjdGxfaXBfZGVmYXVsdF90dGwgX3NldF92ZXIo c3lzY3RsX2lwX2RlZmF1bHRfdHRsKQojZGVmaW5lIF9fdmVyX3FkaXNjX2Rlc3Ryb3kgc21wXzM4 MTRhYTNmCiNkZWZpbmUgcWRpc2NfZGVzdHJveSBfc2V0X3ZlcihxZGlzY19kZXN0cm95KQojZGVm aW5lIF9fdmVyX3FkaXNjX3Jlc2V0IHNtcF9lYzI3M2Q1NAojZGVmaW5lIHFkaXNjX3Jlc2V0IF9z ZXRfdmVyKHFkaXNjX3Jlc2V0KQojZGVmaW5lIF9fdmVyX3FkaXNjX3Jlc3RhcnQgc21wXzNlMjQz OTAwCiNkZWZpbmUgcWRpc2NfcmVzdGFydCBfc2V0X3ZlcihxZGlzY19yZXN0YXJ0KQojZGVmaW5l IF9fdmVyX3FkaXNjX2NyZWF0ZV9kZmx0IHNtcF84MjNiMjA4MQojZGVmaW5lIHFkaXNjX2NyZWF0 ZV9kZmx0IF9zZXRfdmVyKHFkaXNjX2NyZWF0ZV9kZmx0KQojZGVmaW5lIF9fdmVyX25vb3BfcWRp c2Mgc21wXzc1NGU2ZWRiCiNkZWZpbmUgbm9vcF9xZGlzYyBfc2V0X3Zlcihub29wX3FkaXNjKQoj ZGVmaW5lIF9fdmVyX3FkaXNjX3RyZWVfbG9jayBzbXBfMmI4ZGExOTcKI2RlZmluZSBxZGlzY190 cmVlX2xvY2sgX3NldF92ZXIocWRpc2NfdHJlZV9sb2NrKQojZGVmaW5lIF9fdmVyX25mX3JlZ2lz dGVyX2hvb2sgc21wXzFiMGZlZGU4CiNkZWZpbmUgbmZfcmVnaXN0ZXJfaG9vayBfc2V0X3Zlcihu Zl9yZWdpc3Rlcl9ob29rKQojZGVmaW5lIF9fdmVyX25mX3VucmVnaXN0ZXJfaG9vayBzbXBfZTNi YjUyN2YKI2RlZmluZSBuZl91bnJlZ2lzdGVyX2hvb2sgX3NldF92ZXIobmZfdW5yZWdpc3Rlcl9o b29rKQojZGVmaW5lIF9fdmVyX25mX3JlZ2lzdGVyX3NvY2tvcHQgc21wX2E2MmI4OTFmCiNkZWZp bmUgbmZfcmVnaXN0ZXJfc29ja29wdCBfc2V0X3ZlcihuZl9yZWdpc3Rlcl9zb2Nrb3B0KQojZGVm aW5lIF9fdmVyX25mX3VucmVnaXN0ZXJfc29ja29wdCBzbXBfYTAzYTM1ZWQKI2RlZmluZSBuZl91 bnJlZ2lzdGVyX3NvY2tvcHQgX3NldF92ZXIobmZfdW5yZWdpc3Rlcl9zb2Nrb3B0KQojZGVmaW5l IF9fdmVyX25mX3JlaW5qZWN0IHNtcF8zNjFjZDM5ZAojZGVmaW5lIG5mX3JlaW5qZWN0IF9zZXRf dmVyKG5mX3JlaW5qZWN0KQojZGVmaW5lIF9fdmVyX25mX3JlZ2lzdGVyX3F1ZXVlX2hhbmRsZXIg c21wXzI2ZGE5ZmJjCiNkZWZpbmUgbmZfcmVnaXN0ZXJfcXVldWVfaGFuZGxlciBfc2V0X3Zlcihu Zl9yZWdpc3Rlcl9xdWV1ZV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX25mX3VucmVnaXN0ZXJfcXVl dWVfaGFuZGxlciBzbXBfNGRmNmU2ZGUKI2RlZmluZSBuZl91bnJlZ2lzdGVyX3F1ZXVlX2hhbmRs ZXIgX3NldF92ZXIobmZfdW5yZWdpc3Rlcl9xdWV1ZV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX25m X2hvb2tfc2xvdyBzbXBfOGM5NTcxMzEKI2RlZmluZSBuZl9ob29rX3Nsb3cgX3NldF92ZXIobmZf aG9va19zbG93KQojZGVmaW5lIF9fdmVyX25mX2hvb2tzIHNtcF8wNzhiMWZkMgojZGVmaW5lIG5m X2hvb2tzIF9zZXRfdmVyKG5mX2hvb2tzKQojZGVmaW5lIF9fdmVyX25mX3NldHNvY2tvcHQgc21w XzBlNDMyODkxCiNkZWZpbmUgbmZfc2V0c29ja29wdCBfc2V0X3ZlcihuZl9zZXRzb2Nrb3B0KQoj ZGVmaW5lIF9fdmVyX25mX2dldHNvY2tvcHQgc21wXzA3NjU2MGMwCiNkZWZpbmUgbmZfZ2V0c29j a29wdCBfc2V0X3ZlcihuZl9nZXRzb2Nrb3B0KQojZGVmaW5lIF9fdmVyX2lwX2N0X2F0dGFjaCBz bXBfNjlmZjE4ZDQKI2RlZmluZSBpcF9jdF9hdHRhY2ggX3NldF92ZXIoaXBfY3RfYXR0YWNoKQoj ZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX2dpZmNvbmYgc21wXzVhNzY1ZTk1CiNkZWZpbmUgcmVnaXN0 ZXJfZ2lmY29uZiBfc2V0X3ZlcihyZWdpc3Rlcl9naWZjb25mKQojZGVmaW5lIF9fdmVyX25ldF9j YWxsX3J4X2F0b21pYyBzbXBfZjIzZWZiOTgKI2RlZmluZSBuZXRfY2FsbF9yeF9hdG9taWMgX3Nl dF92ZXIobmV0X2NhbGxfcnhfYXRvbWljKQojZGVmaW5lIF9fdmVyX3NvZnRuZXRfZGF0YSBzbXBf ZjhkNmM4OTAKI2RlZmluZSBzb2Z0bmV0X2RhdGEgX3NldF92ZXIoc29mdG5ldF9kYXRhKQojIDE2 MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMg MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL25ld3BvcnQudmVy IiAxCiMgMTYyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbmxz X2Jhc2UudmVyIiAxCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfbmxzIHNtcF9hNmU4MzgxMgojZGVm aW5lIHJlZ2lzdGVyX25scyBfc2V0X3ZlcihyZWdpc3Rlcl9ubHMpCiNkZWZpbmUgX192ZXJfdW5y ZWdpc3Rlcl9ubHMgc21wXzNmNGFiOTUwCiNkZWZpbmUgdW5yZWdpc3Rlcl9ubHMgX3NldF92ZXIo dW5yZWdpc3Rlcl9ubHMpCiNkZWZpbmUgX192ZXJfdW5sb2FkX25scyBzbXBfZGExY2U5OWQKI2Rl ZmluZSB1bmxvYWRfbmxzIF9zZXRfdmVyKHVubG9hZF9ubHMpCiNkZWZpbmUgX192ZXJfbG9hZF9u bHMgc21wXzlmZjBhMmVhCiNkZWZpbmUgbG9hZF9ubHMgX3NldF92ZXIobG9hZF9ubHMpCiNkZWZp bmUgX192ZXJfbG9hZF9ubHNfZGVmYXVsdCBzbXBfNzY4ZDczMjIKI2RlZmluZSBsb2FkX25sc19k ZWZhdWx0IF9zZXRfdmVyKGxvYWRfbmxzX2RlZmF1bHQpCiNkZWZpbmUgX192ZXJfdXRmOF9tYnRv d2Mgc21wXzRkZGM0YjlmCiNkZWZpbmUgdXRmOF9tYnRvd2MgX3NldF92ZXIodXRmOF9tYnRvd2Mp CiNkZWZpbmUgX192ZXJfdXRmOF9tYnN0b3djcyBzbXBfN2Q4NTA2MTIKI2RlZmluZSB1dGY4X21i c3Rvd2NzIF9zZXRfdmVyKHV0ZjhfbWJzdG93Y3MpCiNkZWZpbmUgX192ZXJfdXRmOF93Y3RvbWIg c21wX2Y4MmYxMTA5CiNkZWZpbmUgdXRmOF93Y3RvbWIgX3NldF92ZXIodXRmOF93Y3RvbWIpCiNk ZWZpbmUgX192ZXJfdXRmOF93Y3N0b21icyBzbXBfODYzY2I5MWEKI2RlZmluZSB1dGY4X3djc3Rv bWJzIF9zZXRfdmVyKHV0Zjhfd2NzdG9tYnMpCiMgMTYzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L21vZHVsZXMvbm0yNTZfYXVkaW8udmVyIiAxCiMgMTY0ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbnVidXNfc3ltcy52ZXIiIDEKI2RlZmlu ZSBfX3Zlcl9udWJ1c19wcm9jX2F0dGFjaF9kZXZpY2Ugc21wXzg0MjhhYmUzCiNkZWZpbmUgbnVi dXNfcHJvY19hdHRhY2hfZGV2aWNlIF9zZXRfdmVyKG51YnVzX3Byb2NfYXR0YWNoX2RldmljZSkK I2RlZmluZSBfX3Zlcl9udWJ1c19wcm9jX2RldGFjaF9kZXZpY2Ugc21wXzIzNGI2NTMwCiNkZWZp bmUgbnVidXNfcHJvY19kZXRhY2hfZGV2aWNlIF9zZXRfdmVyKG51YnVzX3Byb2NfZGV0YWNoX2Rl dmljZSkKI2RlZmluZSBfX3Zlcl9udWJ1c19maW5kX2RldmljZSBzbXBfOGJiNGZjZTcKI2RlZmlu ZSBudWJ1c19maW5kX2RldmljZSBfc2V0X3ZlcihudWJ1c19maW5kX2RldmljZSkKI2RlZmluZSBf X3Zlcl9udWJ1c19maW5kX3R5cGUgc21wXzMxNGFmYzVmCiNkZWZpbmUgbnVidXNfZmluZF90eXBl IF9zZXRfdmVyKG51YnVzX2ZpbmRfdHlwZSkKI2RlZmluZSBfX3Zlcl9udWJ1c19maW5kX3Nsb3Qg c21wXzVhODIxYmRkCiNkZWZpbmUgbnVidXNfZmluZF9zbG90IF9zZXRfdmVyKG51YnVzX2ZpbmRf c2xvdCkKI2RlZmluZSBfX3Zlcl9udWJ1c19nZXRfcm9vdF9kaXIgc21wXzIwMzU0MmM5CiNkZWZp bmUgbnVidXNfZ2V0X3Jvb3RfZGlyIF9zZXRfdmVyKG51YnVzX2dldF9yb290X2RpcikKI2RlZmlu ZSBfX3Zlcl9udWJ1c19nZXRfYm9hcmRfZGlyIHNtcF8wZGM1NWQ4MAojZGVmaW5lIG51YnVzX2dl dF9ib2FyZF9kaXIgX3NldF92ZXIobnVidXNfZ2V0X2JvYXJkX2RpcikKI2RlZmluZSBfX3Zlcl9u dWJ1c19nZXRfZnVuY19kaXIgc21wXzcwZTc1MWZjCiNkZWZpbmUgbnVidXNfZ2V0X2Z1bmNfZGly IF9zZXRfdmVyKG51YnVzX2dldF9mdW5jX2RpcikKI2RlZmluZSBfX3Zlcl9udWJ1c19yZWFkZGly IHNtcF9iZDNiY2FlNAojZGVmaW5lIG51YnVzX3JlYWRkaXIgX3NldF92ZXIobnVidXNfcmVhZGRp cikKI2RlZmluZSBfX3Zlcl9udWJ1c19maW5kX3JzcmMgc21wX2Y4NjE3Mzk1CiNkZWZpbmUgbnVi dXNfZmluZF9yc3JjIF9zZXRfdmVyKG51YnVzX2ZpbmRfcnNyYykKI2RlZmluZSBfX3Zlcl9udWJ1 c19yZXdpbmRkaXIgc21wX2VlZTZjYThlCiNkZWZpbmUgbnVidXNfcmV3aW5kZGlyIF9zZXRfdmVy KG51YnVzX3Jld2luZGRpcikKI2RlZmluZSBfX3Zlcl9udWJ1c19nZXRfc3ViZGlyIHNtcF83ZTk0 NWRkYgojZGVmaW5lIG51YnVzX2dldF9zdWJkaXIgX3NldF92ZXIobnVidXNfZ2V0X3N1YmRpcikK I2RlZmluZSBfX3Zlcl9udWJ1c19nZXRfcnNyY19tZW0gc21wXzVlZjEyZTM1CiNkZWZpbmUgbnVi dXNfZ2V0X3JzcmNfbWVtIF9zZXRfdmVyKG51YnVzX2dldF9yc3JjX21lbSkKI2RlZmluZSBfX3Zl cl9udWJ1c19nZXRfcnNyY19zdHIgc21wXzhmYjhjOTFjCiNkZWZpbmUgbnVidXNfZ2V0X3JzcmNf c3RyIF9zZXRfdmVyKG51YnVzX2dldF9yc3JjX3N0cikKIyAxNjUgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9vcGwzLnZlciIgMQojZGVmaW5lIF9fdmVyX29wbDNf aW5pdCBzbXBfMDIyMDNiYWEKI2RlZmluZSBvcGwzX2luaXQgX3NldF92ZXIob3BsM19pbml0KQoj ZGVmaW5lIF9fdmVyX29wbDNfZGV0ZWN0IHNtcF82NzQ4MTc2NwojZGVmaW5lIG9wbDNfZGV0ZWN0 IF9zZXRfdmVyKG9wbDNfZGV0ZWN0KQojIDE2NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9tb2R1bGVzL29yaW5vY28udmVyIiAxCiNkZWZpbmUgX192ZXJfZGxkd2RfaW5pdCBz bXBfYWFlNWI1MzQKI2RlZmluZSBkbGR3ZF9pbml0IF9zZXRfdmVyKGRsZHdkX2luaXQpCiNkZWZp bmUgX192ZXJfZGxkd2RfeG1pdCBzbXBfYTkwMjZmZjIKI2RlZmluZSBkbGR3ZF94bWl0IF9zZXRf dmVyKGRsZHdkX3htaXQpCiNkZWZpbmUgX192ZXJfZGxkd2RfdHhfdGltZW91dCBzbXBfNDAwNzY3 YzcKI2RlZmluZSBkbGR3ZF90eF90aW1lb3V0IF9zZXRfdmVyKGRsZHdkX3R4X3RpbWVvdXQpCiNk ZWZpbmUgX192ZXJfZGxkd2RfaW9jdGwgc21wXzQzZDM0ZDcxCiNkZWZpbmUgZGxkd2RfaW9jdGwg X3NldF92ZXIoZGxkd2RfaW9jdGwpCiNkZWZpbmUgX192ZXJfZGxkd2RfY2hhbmdlX210dSBzbXBf ZTBiMmU4MTAKI2RlZmluZSBkbGR3ZF9jaGFuZ2VfbXR1IF9zZXRfdmVyKGRsZHdkX2NoYW5nZV9t dHUpCiNkZWZpbmUgX192ZXJfZGxkd2Rfc2V0X211bHRpY2FzdF9saXN0IHNtcF82OWI0OThlNQoj ZGVmaW5lIGRsZHdkX3NldF9tdWx0aWNhc3RfbGlzdCBfc2V0X3ZlcihkbGR3ZF9zZXRfbXVsdGlj YXN0X2xpc3QpCiNkZWZpbmUgX192ZXJfZGxkd2Rfc2h1dGRvd24gc21wXzgyNDE2ODI2CiNkZWZp bmUgZGxkd2Rfc2h1dGRvd24gX3NldF92ZXIoZGxkd2Rfc2h1dGRvd24pCiNkZWZpbmUgX192ZXJf ZGxkd2RfcmVzZXQgc21wXzQ2NDdkYjVkCiNkZWZpbmUgZGxkd2RfcmVzZXQgX3NldF92ZXIoZGxk d2RfcmVzZXQpCiNkZWZpbmUgX192ZXJfZGxkd2Rfc2V0dXAgc21wX2MwMWY4MTBhCiNkZWZpbmUg ZGxkd2Rfc2V0dXAgX3NldF92ZXIoZGxkd2Rfc2V0dXApCiNkZWZpbmUgX192ZXJfZGxkd2RfcHJv Y19kZXZfaW5pdCBzbXBfZWZlYzhlYzkKI2RlZmluZSBkbGR3ZF9wcm9jX2Rldl9pbml0IF9zZXRf dmVyKGRsZHdkX3Byb2NfZGV2X2luaXQpCiNkZWZpbmUgX192ZXJfZGxkd2RfcHJvY19kZXZfY2xl YW51cCBzbXBfMTI0MDIwMTUKI2RlZmluZSBkbGR3ZF9wcm9jX2Rldl9jbGVhbnVwIF9zZXRfdmVy KGRsZHdkX3Byb2NfZGV2X2NsZWFudXApCiNkZWZpbmUgX192ZXJfZGxkd2RfaW50ZXJydXB0IHNt cF9iZjc4ZDM4NgojZGVmaW5lIGRsZHdkX2ludGVycnVwdCBfc2V0X3ZlcihkbGR3ZF9pbnRlcnJ1 cHQpCiMgMTY3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcDgw MjIudmVyIiAxCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfODAyMl9jbGllbnQgc21wXzM1N2Q1ZDhh CiNkZWZpbmUgcmVnaXN0ZXJfODAyMl9jbGllbnQgX3NldF92ZXIocmVnaXN0ZXJfODAyMl9jbGll bnQpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl84MDIyX2NsaWVudCBzbXBfN2FjZWYxNWQKI2Rl ZmluZSB1bnJlZ2lzdGVyXzgwMjJfY2xpZW50IF9zZXRfdmVyKHVucmVnaXN0ZXJfODAyMl9jbGll bnQpCiMgMTY4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcGFy cG9ydF9wYy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3BjX3Byb2JlX3BvcnQgc21wXzdk MjI0NTMxCiNkZWZpbmUgcGFycG9ydF9wY19wcm9iZV9wb3J0IF9zZXRfdmVyKHBhcnBvcnRfcGNf cHJvYmVfcG9ydCkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3BjX3VucmVnaXN0ZXJfcG9ydCBzbXBf NTljY2JjMjQKI2RlZmluZSBwYXJwb3J0X3BjX3VucmVnaXN0ZXJfcG9ydCBfc2V0X3ZlcihwYXJw b3J0X3BjX3VucmVnaXN0ZXJfcG9ydCkKIyAxNjkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvbW9kdWxlcy9wY2lfc29ja2V0LnZlciIgMQojIDE3MCAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3BjaS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wY2lf cmVhZF9jb25maWdfYnl0ZSBzbXBfNzMyYjMwYmEKI2RlZmluZSBwY2lfcmVhZF9jb25maWdfYnl0 ZSBfc2V0X3ZlcihwY2lfcmVhZF9jb25maWdfYnl0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfcmVhZF9j b25maWdfd29yZCBzbXBfOWQzN2E2NDEKI2RlZmluZSBwY2lfcmVhZF9jb25maWdfd29yZCBfc2V0 X3ZlcihwY2lfcmVhZF9jb25maWdfd29yZCkKI2RlZmluZSBfX3Zlcl9wY2lfcmVhZF9jb25maWdf ZHdvcmQgc21wXzc5ODE3NzlmCiNkZWZpbmUgcGNpX3JlYWRfY29uZmlnX2R3b3JkIF9zZXRfdmVy KHBjaV9yZWFkX2NvbmZpZ19kd29yZCkKI2RlZmluZSBfX3Zlcl9wY2lfd3JpdGVfY29uZmlnX2J5 dGUgc21wXzIwZWRlODI3CiNkZWZpbmUgcGNpX3dyaXRlX2NvbmZpZ19ieXRlIF9zZXRfdmVyKHBj aV93cml0ZV9jb25maWdfYnl0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfd3JpdGVfY29uZmlnX3dvcmQg c21wXzg1MGU0MWYyCiNkZWZpbmUgcGNpX3dyaXRlX2NvbmZpZ193b3JkIF9zZXRfdmVyKHBjaV93 cml0ZV9jb25maWdfd29yZCkKI2RlZmluZSBfX3Zlcl9wY2lfd3JpdGVfY29uZmlnX2R3b3JkIHNt cF9jMjk1ZDAzNQojZGVmaW5lIHBjaV93cml0ZV9jb25maWdfZHdvcmQgX3NldF92ZXIocGNpX3dy aXRlX2NvbmZpZ19kd29yZCkKI2RlZmluZSBfX3Zlcl9wY2lfZGV2aWNlcyBzbXBfN2E4NGIxMDIK I2RlZmluZSBwY2lfZGV2aWNlcyBfc2V0X3ZlcihwY2lfZGV2aWNlcykKI2RlZmluZSBfX3Zlcl9w Y2lfcm9vdF9idXNlcyBzbXBfMDgyYzMyMTMKI2RlZmluZSBwY2lfcm9vdF9idXNlcyBfc2V0X3Zl cihwY2lfcm9vdF9idXNlcykKI2RlZmluZSBfX3Zlcl9wY2lfZW5hYmxlX2RldmljZSBzbXBfOThh NjYxOTcKI2RlZmluZSBwY2lfZW5hYmxlX2RldmljZSBfc2V0X3ZlcihwY2lfZW5hYmxlX2Rldmlj ZSkKI2RlZmluZSBfX3Zlcl9wY2lfZGlzYWJsZV9kZXZpY2Ugc21wXzc4NmM0NTFhCiNkZWZpbmUg cGNpX2Rpc2FibGVfZGV2aWNlIF9zZXRfdmVyKHBjaV9kaXNhYmxlX2RldmljZSkKI2RlZmluZSBf X3Zlcl9wY2lfZmluZF9jYXBhYmlsaXR5IHNtcF8wN2JlYTA4MAojZGVmaW5lIHBjaV9maW5kX2Nh cGFiaWxpdHkgX3NldF92ZXIocGNpX2ZpbmRfY2FwYWJpbGl0eSkKI2RlZmluZSBfX3Zlcl9wY2lf cmVsZWFzZV9yZWdpb25zIHNtcF8xYmE5ZDdkNwojZGVmaW5lIHBjaV9yZWxlYXNlX3JlZ2lvbnMg X3NldF92ZXIocGNpX3JlbGVhc2VfcmVnaW9ucykKI2RlZmluZSBfX3Zlcl9wY2lfcmVxdWVzdF9y ZWdpb25zIHNtcF9iMTFkZWU1MwojZGVmaW5lIHBjaV9yZXF1ZXN0X3JlZ2lvbnMgX3NldF92ZXIo cGNpX3JlcXVlc3RfcmVnaW9ucykKI2RlZmluZSBfX3Zlcl9wY2lfZmluZF9jbGFzcyBzbXBfNzJi OTQ5MTYKI2RlZmluZSBwY2lfZmluZF9jbGFzcyBfc2V0X3ZlcihwY2lfZmluZF9jbGFzcykKI2Rl ZmluZSBfX3Zlcl9wY2lfZmluZF9kZXZpY2Ugc21wXzU5ODNiMzliCiNkZWZpbmUgcGNpX2ZpbmRf ZGV2aWNlIF9zZXRfdmVyKHBjaV9maW5kX2RldmljZSkKI2RlZmluZSBfX3Zlcl9wY2lfZmluZF9z bG90IHNtcF80ZWI1YmUyMQojZGVmaW5lIHBjaV9maW5kX3Nsb3QgX3NldF92ZXIocGNpX2ZpbmRf c2xvdCkKI2RlZmluZSBfX3Zlcl9wY2lfZmluZF9zdWJzeXMgc21wXzdiNzcwMWMzCiNkZWZpbmUg cGNpX2ZpbmRfc3Vic3lzIF9zZXRfdmVyKHBjaV9maW5kX3N1YnN5cykKI2RlZmluZSBfX3Zlcl9w Y2lfc2V0X21hc3RlciBzbXBfNzY2MWNkNmIKI2RlZmluZSBwY2lfc2V0X21hc3RlciBfc2V0X3Zl cihwY2lfc2V0X21hc3RlcikKI2RlZmluZSBfX3Zlcl9wY2lfc2V0X2RtYV9tYXNrIHNtcF9jY2Jl YWJlOQojZGVmaW5lIHBjaV9zZXRfZG1hX21hc2sgX3NldF92ZXIocGNpX3NldF9kbWFfbWFzaykK I2RlZmluZSBfX3Zlcl9wY2lfYXNzaWduX3Jlc291cmNlIHNtcF9mNTAwZGEwMwojZGVmaW5lIHBj aV9hc3NpZ25fcmVzb3VyY2UgX3NldF92ZXIocGNpX2Fzc2lnbl9yZXNvdXJjZSkKI2RlZmluZSBf X3Zlcl9wY2lfcmVnaXN0ZXJfZHJpdmVyIHNtcF9jMDM1ODFiOQojZGVmaW5lIHBjaV9yZWdpc3Rl cl9kcml2ZXIgX3NldF92ZXIocGNpX3JlZ2lzdGVyX2RyaXZlcikKI2RlZmluZSBfX3Zlcl9wY2lf dW5yZWdpc3Rlcl9kcml2ZXIgc21wX2RkOTc2MTNkCiNkZWZpbmUgcGNpX3VucmVnaXN0ZXJfZHJp dmVyIF9zZXRfdmVyKHBjaV91bnJlZ2lzdGVyX2RyaXZlcikKI2RlZmluZSBfX3Zlcl9wY2lfZGV2 X2RyaXZlciBzbXBfNjMwNzVlZGMKI2RlZmluZSBwY2lfZGV2X2RyaXZlciBfc2V0X3ZlcihwY2lf ZGV2X2RyaXZlcikKI2RlZmluZSBfX3Zlcl9wY2lfbWF0Y2hfZGV2aWNlIHNtcF9mOWI3ZWRkNQoj ZGVmaW5lIHBjaV9tYXRjaF9kZXZpY2UgX3NldF92ZXIocGNpX21hdGNoX2RldmljZSkKI2RlZmlu ZSBfX3Zlcl9wY2lfZmluZF9wYXJlbnRfcmVzb3VyY2Ugc21wXzU1MDkxMTQ0CiNkZWZpbmUgcGNp X2ZpbmRfcGFyZW50X3Jlc291cmNlIF9zZXRfdmVyKHBjaV9maW5kX3BhcmVudF9yZXNvdXJjZSkK I2RlZmluZSBfX3Zlcl9wY2lfc2V0dXBfZGV2aWNlIHNtcF83MzM3NTkxZAojZGVmaW5lIHBjaV9z ZXR1cF9kZXZpY2UgX3NldF92ZXIocGNpX3NldHVwX2RldmljZSkKI2RlZmluZSBfX3Zlcl9wY2lf aW5zZXJ0X2RldmljZSBzbXBfYjFiNTU0OGEKI2RlZmluZSBwY2lfaW5zZXJ0X2RldmljZSBfc2V0 X3ZlcihwY2lfaW5zZXJ0X2RldmljZSkKI2RlZmluZSBfX3Zlcl9wY2lfcmVtb3ZlX2RldmljZSBz bXBfZDRlMjcwZTkKI2RlZmluZSBwY2lfcmVtb3ZlX2RldmljZSBfc2V0X3ZlcihwY2lfcmVtb3Zl X2RldmljZSkKI2RlZmluZSBfX3Zlcl9wY2lfc2V0X3Bvd2VyX3N0YXRlIHNtcF80OWFjODUwOAoj ZGVmaW5lIHBjaV9zZXRfcG93ZXJfc3RhdGUgX3NldF92ZXIocGNpX3NldF9wb3dlcl9zdGF0ZSkK I2RlZmluZSBfX3Zlcl9wY2lfc2F2ZV9zdGF0ZSBzbXBfMWU3ZGJhNDYKI2RlZmluZSBwY2lfc2F2 ZV9zdGF0ZSBfc2V0X3ZlcihwY2lfc2F2ZV9zdGF0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfcmVzdG9y ZV9zdGF0ZSBzbXBfNzU3ZTlmNzIKI2RlZmluZSBwY2lfcmVzdG9yZV9zdGF0ZSBfc2V0X3Zlcihw Y2lfcmVzdG9yZV9zdGF0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfZW5hYmxlX3dha2Ugc21wXzJkM2Fk Mzg5CiNkZWZpbmUgcGNpX2VuYWJsZV93YWtlIF9zZXRfdmVyKHBjaV9lbmFibGVfd2FrZSkKI2Rl ZmluZSBfX3Zlcl9wY2liaW9zX3ByZXNlbnQgc21wXzUyMGE3NWI5CiNkZWZpbmUgcGNpYmlvc19w cmVzZW50IF9zZXRfdmVyKHBjaWJpb3NfcHJlc2VudCkKI2RlZmluZSBfX3Zlcl9wY2liaW9zX3Jl YWRfY29uZmlnX2J5dGUgc21wX2Q4MDExNWUxCiNkZWZpbmUgcGNpYmlvc19yZWFkX2NvbmZpZ19i eXRlIF9zZXRfdmVyKHBjaWJpb3NfcmVhZF9jb25maWdfYnl0ZSkKI2RlZmluZSBfX3Zlcl9wY2li aW9zX3JlYWRfY29uZmlnX3dvcmQgc21wX2FhOWVmZmQ3CiNkZWZpbmUgcGNpYmlvc19yZWFkX2Nv bmZpZ193b3JkIF9zZXRfdmVyKHBjaWJpb3NfcmVhZF9jb25maWdfd29yZCkKI2RlZmluZSBfX3Zl cl9wY2liaW9zX3JlYWRfY29uZmlnX2R3b3JkIHNtcF8zOGFlNjY4OQojZGVmaW5lIHBjaWJpb3Nf cmVhZF9jb25maWdfZHdvcmQgX3NldF92ZXIocGNpYmlvc19yZWFkX2NvbmZpZ19kd29yZCkKI2Rl ZmluZSBfX3Zlcl9wY2liaW9zX3dyaXRlX2NvbmZpZ19ieXRlIHNtcF83MTk4NTZlZQojZGVmaW5l IHBjaWJpb3Nfd3JpdGVfY29uZmlnX2J5dGUgX3NldF92ZXIocGNpYmlvc193cml0ZV9jb25maWdf Ynl0ZSkKI2RlZmluZSBfX3Zlcl9wY2liaW9zX3dyaXRlX2NvbmZpZ193b3JkIHNtcF80ZjFjMmUz MwojZGVmaW5lIHBjaWJpb3Nfd3JpdGVfY29uZmlnX3dvcmQgX3NldF92ZXIocGNpYmlvc193cml0 ZV9jb25maWdfd29yZCkKI2RlZmluZSBfX3Zlcl9wY2liaW9zX3dyaXRlX2NvbmZpZ19kd29yZCBz bXBfODFiNGY0NjUKI2RlZmluZSBwY2liaW9zX3dyaXRlX2NvbmZpZ19kd29yZCBfc2V0X3Zlcihw Y2liaW9zX3dyaXRlX2NvbmZpZ19kd29yZCkKI2RlZmluZSBfX3Zlcl9wY2liaW9zX2ZpbmRfY2xh c3Mgc21wX2VmMzMzZjdiCiNkZWZpbmUgcGNpYmlvc19maW5kX2NsYXNzIF9zZXRfdmVyKHBjaWJp b3NfZmluZF9jbGFzcykKI2RlZmluZSBfX3Zlcl9wY2liaW9zX2ZpbmRfZGV2aWNlIHNtcF85N2Q0 OWM0ZAojZGVmaW5lIHBjaWJpb3NfZmluZF9kZXZpY2UgX3NldF92ZXIocGNpYmlvc19maW5kX2Rl dmljZSkKI2RlZmluZSBfX3Zlcl9pc2FfZG1hX2JyaWRnZV9idWdneSBzbXBfZjgyYWJjMWQKI2Rl ZmluZSBpc2FfZG1hX2JyaWRnZV9idWdneSBfc2V0X3Zlcihpc2FfZG1hX2JyaWRnZV9idWdneSkK I2RlZmluZSBfX3Zlcl9wY2lfcGNpX3Byb2JsZW1zIHNtcF9kYzE0ZWRhNwojZGVmaW5lIHBjaV9w Y2lfcHJvYmxlbXMgX3NldF92ZXIocGNpX3BjaV9wcm9ibGVtcykKI2RlZmluZSBfX3Zlcl9wY2lf cG9vbF9jcmVhdGUgc21wXzQxNTZhOGZkCiNkZWZpbmUgcGNpX3Bvb2xfY3JlYXRlIF9zZXRfdmVy KHBjaV9wb29sX2NyZWF0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfcG9vbF9kZXN0cm95IHNtcF8wMzMy M2M3NQojZGVmaW5lIHBjaV9wb29sX2Rlc3Ryb3kgX3NldF92ZXIocGNpX3Bvb2xfZGVzdHJveSkK I2RlZmluZSBfX3Zlcl9wY2lfcG9vbF9hbGxvYyBzbXBfNzg0NzcwY2IKI2RlZmluZSBwY2lfcG9v bF9hbGxvYyBfc2V0X3ZlcihwY2lfcG9vbF9hbGxvYykKI2RlZmluZSBfX3Zlcl9wY2lfcG9vbF9m cmVlIHNtcF82OTY1NGU3MwojZGVmaW5lIHBjaV9wb29sX2ZyZWUgX3NldF92ZXIocGNpX3Bvb2xf ZnJlZSkKIyAxNzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9w aG9uZWRldi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9waG9uZV9yZWdpc3Rlcl9kZXZpY2Ugc21wX2Uy MWIxMjQwCiNkZWZpbmUgcGhvbmVfcmVnaXN0ZXJfZGV2aWNlIF9zZXRfdmVyKHBob25lX3JlZ2lz dGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9waG9uZV91bnJlZ2lzdGVyX2RldmljZSBzbXBfNmVi MzFhNTcKI2RlZmluZSBwaG9uZV91bnJlZ2lzdGVyX2RldmljZSBfc2V0X3ZlcihwaG9uZV91bnJl Z2lzdGVyX2RldmljZSkKIyAxNzIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv bW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv bW9kdWxlcy9wbS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wbV9yZWdpc3RlciBzbXBfOGRiYWIxMWMK I2RlZmluZSBwbV9yZWdpc3RlciBfc2V0X3ZlcihwbV9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9w bV91bnJlZ2lzdGVyIHNtcF9lY2NkMWU2NAojZGVmaW5lIHBtX3VucmVnaXN0ZXIgX3NldF92ZXIo cG1fdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9wbV91bnJlZ2lzdGVyX2FsbCBzbXBfOWMwYmE1 YjIKI2RlZmluZSBwbV91bnJlZ2lzdGVyX2FsbCBfc2V0X3ZlcihwbV91bnJlZ2lzdGVyX2FsbCkK I2RlZmluZSBfX3Zlcl9wbV9zZW5kIHNtcF8zOGZmM2VkMQojZGVmaW5lIHBtX3NlbmQgX3NldF92 ZXIocG1fc2VuZCkKI2RlZmluZSBfX3Zlcl9wbV9zZW5kX2FsbCBzbXBfZWNiZjljYWQKI2RlZmlu ZSBwbV9zZW5kX2FsbCBfc2V0X3ZlcihwbV9zZW5kX2FsbCkKI2RlZmluZSBfX3Zlcl9wbV9maW5k IHNtcF8xYTU1NzgwYQojZGVmaW5lIHBtX2ZpbmQgX3NldF92ZXIocG1fZmluZCkKI2RlZmluZSBf X3Zlcl9wbV9hY3RpdmUgc21wX2ViZDM4N2Y2CiNkZWZpbmUgcG1fYWN0aXZlIF9zZXRfdmVyKHBt X2FjdGl2ZSkKIyAxNzMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVy c2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxl cy9wcHBfYXN5bmMudmVyIiAxCiNkZWZpbmUgX192ZXJfcHBwX2NyYzE2X3RhYmxlIHNtcF9iN2Ey YzdlNgojZGVmaW5lIHBwcF9jcmMxNl90YWJsZSBfc2V0X3ZlcihwcHBfY3JjMTZfdGFibGUpCiMg MTc0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIK IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcHBwX2dlbmVy aWMudmVyIiAxCiNkZWZpbmUgX192ZXJfcHBwX3JlZ2lzdGVyX2NoYW5uZWwgc21wXzk3ZTljZTM0 CiNkZWZpbmUgcHBwX3JlZ2lzdGVyX2NoYW5uZWwgX3NldF92ZXIocHBwX3JlZ2lzdGVyX2NoYW5u ZWwpCiNkZWZpbmUgX192ZXJfcHBwX3VucmVnaXN0ZXJfY2hhbm5lbCBzbXBfNTg3NjU4NjcKI2Rl ZmluZSBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsIF9zZXRfdmVyKHBwcF91bnJlZ2lzdGVyX2NoYW5u ZWwpCiNkZWZpbmUgX192ZXJfcHBwX2NoYW5uZWxfaW5kZXggc21wXzg2MGEyOTlmCiNkZWZpbmUg cHBwX2NoYW5uZWxfaW5kZXggX3NldF92ZXIocHBwX2NoYW5uZWxfaW5kZXgpCiNkZWZpbmUgX192 ZXJfcHBwX3VuaXRfbnVtYmVyIHNtcF9mNGVkMmRkNgojZGVmaW5lIHBwcF91bml0X251bWJlciBf c2V0X3ZlcihwcHBfdW5pdF9udW1iZXIpCiNkZWZpbmUgX192ZXJfcHBwX2lucHV0IHNtcF9hM2Jj YzJjNAojZGVmaW5lIHBwcF9pbnB1dCBfc2V0X3ZlcihwcHBfaW5wdXQpCiNkZWZpbmUgX192ZXJf cHBwX2lucHV0X2Vycm9yIHNtcF8zMWIxYmJjYwojZGVmaW5lIHBwcF9pbnB1dF9lcnJvciBfc2V0 X3ZlcihwcHBfaW5wdXRfZXJyb3IpCiNkZWZpbmUgX192ZXJfcHBwX291dHB1dF93YWtldXAgc21w XzNmMjI5YjQxCiNkZWZpbmUgcHBwX291dHB1dF93YWtldXAgX3NldF92ZXIocHBwX291dHB1dF93 YWtldXApCiNkZWZpbmUgX192ZXJfcHBwX3JlZ2lzdGVyX2NvbXByZXNzb3Igc21wXzk2ODJlNzMz CiNkZWZpbmUgcHBwX3JlZ2lzdGVyX2NvbXByZXNzb3IgX3NldF92ZXIocHBwX3JlZ2lzdGVyX2Nv bXByZXNzb3IpCiNkZWZpbmUgX192ZXJfcHBwX3VucmVnaXN0ZXJfY29tcHJlc3NvciBzbXBfYTFi OTI4ZGYKI2RlZmluZSBwcHBfdW5yZWdpc3Rlcl9jb21wcmVzc29yIF9zZXRfdmVyKHBwcF91bnJl Z2lzdGVyX2NvbXByZXNzb3IpCiNkZWZpbmUgX192ZXJfYWxsX3BwcF91bml0cyBzbXBfODcxYmEy NjIKI2RlZmluZSBhbGxfcHBwX3VuaXRzIF9zZXRfdmVyKGFsbF9wcHBfdW5pdHMpCiNkZWZpbmUg X192ZXJfYWxsX2NoYW5uZWxzIHNtcF81MzJlYTIzZgojZGVmaW5lIGFsbF9jaGFubmVscyBfc2V0 X3ZlcihhbGxfY2hhbm5lbHMpCiMgMTc1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21vZHVsZXMvcHBwb3gudmVyIiAxCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfcHBwb3hfcHJv dG8gc21wXzI0NDdhN2YyCiNkZWZpbmUgcmVnaXN0ZXJfcHBwb3hfcHJvdG8gX3NldF92ZXIocmVn aXN0ZXJfcHBwb3hfcHJvdG8pCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9wcHBveF9wcm90byBz bXBfZTBmZjdhMTgKI2RlZmluZSB1bnJlZ2lzdGVyX3BwcG94X3Byb3RvIF9zZXRfdmVyKHVucmVn aXN0ZXJfcHBwb3hfcHJvdG8pCiNkZWZpbmUgX192ZXJfcHBwb3hfdW5iaW5kX3NvY2sgc21wX2Iy ODc0YWM1CiNkZWZpbmUgcHBwb3hfdW5iaW5kX3NvY2sgX3NldF92ZXIocHBwb3hfdW5iaW5kX3Nv Y2spCiMgMTc2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcHJv Yy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hdG1fcHJvY19yb290IHNtcF85MWMwYmZiMgojZGVmaW5l IGF0bV9wcm9jX3Jvb3QgX3NldF92ZXIoYXRtX3Byb2Nfcm9vdCkKIyAxNzcgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9wcm9maWxlLnZlciIgMQojIDE3OCAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3BzbmFwLnZlciIgMQojZGVm aW5lIF9fdmVyX3JlZ2lzdGVyX3NuYXBfY2xpZW50IHNtcF9jMzRhZGZhMAojZGVmaW5lIHJlZ2lz dGVyX3NuYXBfY2xpZW50IF9zZXRfdmVyKHJlZ2lzdGVyX3NuYXBfY2xpZW50KQojZGVmaW5lIF9f dmVyX3VucmVnaXN0ZXJfc25hcF9jbGllbnQgc21wXzlhYmVmYzUwCiNkZWZpbmUgdW5yZWdpc3Rl cl9zbmFwX2NsaWVudCBfc2V0X3Zlcih1bnJlZ2lzdGVyX3NuYXBfY2xpZW50KQojIDE3OSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3B0eS52ZXIiIDEKIyAxODAg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9wd2MtdW5jb21wcmVz cy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wd2NfcmVnaXN0ZXJfZGVjb21wcmVzc29yIHNtcF9iOTZj MmQzYgojZGVmaW5lIHB3Y19yZWdpc3Rlcl9kZWNvbXByZXNzb3IgX3NldF92ZXIocHdjX3JlZ2lz dGVyX2RlY29tcHJlc3NvcikKI2RlZmluZSBfX3Zlcl9wd2NfdW5yZWdpc3Rlcl9kZWNvbXByZXNz b3Igc21wX2Y5YTk2OWI1CiNkZWZpbmUgcHdjX3VucmVnaXN0ZXJfZGVjb21wcmVzc29yIF9zZXRf dmVyKHB3Y191bnJlZ2lzdGVyX2RlY29tcHJlc3NvcikKIyAxODEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9yMTI4X2Rydi52ZXIiIDEKIyAxODIgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9yYW5kb20udmVyIiAxCiNkZWZpbmUg X192ZXJfYWRkX2tleWJvYXJkX3JhbmRvbW5lc3Mgc21wXzc0Nzg5YzE5CiNkZWZpbmUgYWRkX2tl eWJvYXJkX3JhbmRvbW5lc3MgX3NldF92ZXIoYWRkX2tleWJvYXJkX3JhbmRvbW5lc3MpCiNkZWZp bmUgX192ZXJfYWRkX21vdXNlX3JhbmRvbW5lc3Mgc21wXzcwNTA3Yzk3CiNkZWZpbmUgYWRkX21v dXNlX3JhbmRvbW5lc3MgX3NldF92ZXIoYWRkX21vdXNlX3JhbmRvbW5lc3MpCiNkZWZpbmUgX192 ZXJfYWRkX2ludGVycnVwdF9yYW5kb21uZXNzIHNtcF8xNmRmYmYzNgojZGVmaW5lIGFkZF9pbnRl cnJ1cHRfcmFuZG9tbmVzcyBfc2V0X3ZlcihhZGRfaW50ZXJydXB0X3JhbmRvbW5lc3MpCiNkZWZp bmUgX192ZXJfYWRkX2Jsa2Rldl9yYW5kb21uZXNzIHNtcF9kOWNiMjFkMQojZGVmaW5lIGFkZF9i bGtkZXZfcmFuZG9tbmVzcyBfc2V0X3ZlcihhZGRfYmxrZGV2X3JhbmRvbW5lc3MpCiNkZWZpbmUg X192ZXJfYmF0Y2hfZW50cm9weV9zdG9yZSBzbXBfYWJjOWU1ZWEKI2RlZmluZSBiYXRjaF9lbnRy b3B5X3N0b3JlIF9zZXRfdmVyKGJhdGNoX2VudHJvcHlfc3RvcmUpCiMgMTgzICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcmF3LnZlciIgMQojZGVmaW5lIF9fdmVy X2F0bV9pbml0X2FhbDUgc21wX2JiZDEwOGM0CiNkZWZpbmUgYXRtX2luaXRfYWFsNSBfc2V0X3Zl cihhdG1faW5pdF9hYWw1KQojIDE4NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9tb2R1bGVzL3JheV9jcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yYXlfZGV2X2lvY3RsIHNtcF8w YWZjNzQ3NQojZGVmaW5lIHJheV9kZXZfaW9jdGwgX3NldF92ZXIocmF5X2Rldl9pb2N0bCkKI2Rl ZmluZSBfX3Zlcl9yYXlfcnggc21wX2EzN2YyYTVjCiNkZWZpbmUgcmF5X3J4IF9zZXRfdmVyKHJh eV9yeCkKIyAxODUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9y ZWRib290LnZlciIgMQojZGVmaW5lIF9fdmVyX3BhcnNlX3JlZGJvb3RfcGFydGl0aW9ucyBzbXBf ZDdkYWZjYTcKI2RlZmluZSBwYXJzZV9yZWRib290X3BhcnRpdGlvbnMgX3NldF92ZXIocGFyc2Vf cmVkYm9vdF9wYXJ0aXRpb25zKQojIDE4NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC9tb2R1bGVzL3Jlc291cmNlcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hdG1fZGV2X3JlZ2lz dGVyIHNtcF9lNGFkNjJmZAojZGVmaW5lIGF0bV9kZXZfcmVnaXN0ZXIgX3NldF92ZXIoYXRtX2Rl dl9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9hdG1fZGV2X2RlcmVnaXN0ZXIgc21wXzI1YzlkMWQw CiNkZWZpbmUgYXRtX2Rldl9kZXJlZ2lzdGVyIF9zZXRfdmVyKGF0bV9kZXZfZGVyZWdpc3RlcikK I2RlZmluZSBfX3Zlcl9hdG1fZmluZF9kZXYgc21wXzFiZWJmNTZiCiNkZWZpbmUgYXRtX2ZpbmRf ZGV2IF9zZXRfdmVyKGF0bV9maW5kX2RldikKI2RlZmluZSBfX3Zlcl9zaHV0ZG93bl9hdG1fZGV2 IHNtcF83ODc1YzVhOQojZGVmaW5lIHNodXRkb3duX2F0bV9kZXYgX3NldF92ZXIoc2h1dGRvd25f YXRtX2RldikKI2RlZmluZSBfX3Zlcl9iaW5kX3ZjYyBzbXBfZmRlNThiYjMKI2RlZmluZSBiaW5k X3ZjYyBfc2V0X3ZlcihiaW5kX3ZjYykKIyAxODcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvbW9kdWxlcy9yb290LnZlciIgMQojZGVmaW5lIF9fdmVyX3Byb2Nfc3lzX3Jvb3Qg c21wXzdhMzAyY2VmCiNkZWZpbmUgcHJvY19zeXNfcm9vdCBfc2V0X3Zlcihwcm9jX3N5c19yb290 KQojZGVmaW5lIF9fdmVyX3Byb2Nfc3ltbGluayBzbXBfZWQxODIwOWIKI2RlZmluZSBwcm9jX3N5 bWxpbmsgX3NldF92ZXIocHJvY19zeW1saW5rKQojZGVmaW5lIF9fdmVyX3Byb2NfbWtub2Qgc21w XzEyODJiYzcyCiNkZWZpbmUgcHJvY19ta25vZCBfc2V0X3Zlcihwcm9jX21rbm9kKQojZGVmaW5l IF9fdmVyX3Byb2NfbWtkaXIgc21wXzQ2YTYzODcwCiNkZWZpbmUgcHJvY19ta2RpciBfc2V0X3Zl cihwcm9jX21rZGlyKQojZGVmaW5lIF9fdmVyX2NyZWF0ZV9wcm9jX2VudHJ5IHNtcF9iOWRkZmNk ZAojZGVmaW5lIGNyZWF0ZV9wcm9jX2VudHJ5IF9zZXRfdmVyKGNyZWF0ZV9wcm9jX2VudHJ5KQoj ZGVmaW5lIF9fdmVyX3JlbW92ZV9wcm9jX2VudHJ5IHNtcF9hNjU4YjFlNgojZGVmaW5lIHJlbW92 ZV9wcm9jX2VudHJ5IF9zZXRfdmVyKHJlbW92ZV9wcm9jX2VudHJ5KQojZGVmaW5lIF9fdmVyX3By b2Nfcm9vdCBzbXBfYmVhYWY3N2IKI2RlZmluZSBwcm9jX3Jvb3QgX3NldF92ZXIocHJvY19yb290 KQojZGVmaW5lIF9fdmVyX3Byb2Nfcm9vdF9mcyBzbXBfODg0NWM2Y2UKI2RlZmluZSBwcm9jX3Jv b3RfZnMgX3NldF92ZXIocHJvY19yb290X2ZzKQojZGVmaW5lIF9fdmVyX3Byb2NfbmV0IHNtcF83 MGRhNTg1ZQojZGVmaW5lIHByb2NfbmV0IF9zZXRfdmVyKHByb2NfbmV0KQojZGVmaW5lIF9fdmVy X3Byb2NfYnVzIHNtcF82OTZiZDI1MQojZGVmaW5lIHByb2NfYnVzIF9zZXRfdmVyKHByb2NfYnVz KQojZGVmaW5lIF9fdmVyX3Byb2Nfcm9vdF9kcml2ZXIgc21wXzYzOTYyOTBhCiNkZWZpbmUgcHJv Y19yb290X2RyaXZlciBfc2V0X3Zlcihwcm9jX3Jvb3RfZHJpdmVyKQojIDE4OCAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3J0Yy52ZXIiIDEKIyAxODkgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9yd3NlbS1zcGlubG9jay52ZXIi IDEKI2RlZmluZSBfX3Zlcl9pbml0X3J3c2VtIHNtcF9hNTNkOTMxYQojZGVmaW5lIGluaXRfcndz ZW0gX3NldF92ZXIoaW5pdF9yd3NlbSkKI2RlZmluZSBfX3Zlcl9fX2Rvd25fcmVhZCBzbXBfMWNm NTc3NzIKI2RlZmluZSBfX2Rvd25fcmVhZCBfc2V0X3ZlcihfX2Rvd25fcmVhZCkKI2RlZmluZSBf X3Zlcl9fX2Rvd25fd3JpdGUgc21wX2M5YjFmOThhCiNkZWZpbmUgX19kb3duX3dyaXRlIF9zZXRf dmVyKF9fZG93bl93cml0ZSkKI2RlZmluZSBfX3Zlcl9fX3VwX3JlYWQgc21wX2U5NTJmYzI5CiNk ZWZpbmUgX191cF9yZWFkIF9zZXRfdmVyKF9fdXBfcmVhZCkKI2RlZmluZSBfX3Zlcl9fX3VwX3dy aXRlIHNtcF8zNWZkZDY3ZAojZGVmaW5lIF9fdXBfd3JpdGUgX3NldF92ZXIoX191cF93cml0ZSkK IyAxOTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9yd3NlbS52 ZXIiIDEKIyAxOTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9z Yl9jb21tb24udmVyIiAxCiNkZWZpbmUgX192ZXJfc2JfZHNwX2luaXQgc21wXzQyMmM1ZGJlCiNk ZWZpbmUgc2JfZHNwX2luaXQgX3NldF92ZXIoc2JfZHNwX2luaXQpCiNkZWZpbmUgX192ZXJfc2Jf ZHNwX2RldGVjdCBzbXBfZDhhMjczMWMKI2RlZmluZSBzYl9kc3BfZGV0ZWN0IF9zZXRfdmVyKHNi X2RzcF9kZXRlY3QpCiNkZWZpbmUgX192ZXJfc2JfZHNwX3VubG9hZCBzbXBfYzQ4ODQ5NjkKI2Rl ZmluZSBzYl9kc3BfdW5sb2FkIF9zZXRfdmVyKHNiX2RzcF91bmxvYWQpCiNkZWZpbmUgX192ZXJf c2JfZHNwX2Rpc2FibGVfbWlkaSBzbXBfNzMyZjM4ZGYKI2RlZmluZSBzYl9kc3BfZGlzYWJsZV9t aWRpIF9zZXRfdmVyKHNiX2RzcF9kaXNhYmxlX21pZGkpCiNkZWZpbmUgX192ZXJfc2JfYmVfcXVp ZXQgc21wXzQyNDI0MTA5CiNkZWZpbmUgc2JfYmVfcXVpZXQgX3NldF92ZXIoc2JfYmVfcXVpZXQp CiNkZWZpbmUgX192ZXJfcHJvYmVfc2JtcHUgc21wX2QxZmE2OGMyCiNkZWZpbmUgcHJvYmVfc2Jt cHUgX3NldF92ZXIocHJvYmVfc2JtcHUpCiNkZWZpbmUgX192ZXJfdW5sb2FkX3NibXB1IHNtcF83 NGFmZDY5YwojZGVmaW5lIHVubG9hZF9zYm1wdSBfc2V0X3Zlcih1bmxvYWRfc2JtcHUpCiNkZWZp bmUgX192ZXJfc213X2ZyZWUgc21wXzQ1MGY5YWVhCiNkZWZpbmUgc213X2ZyZWUgX3NldF92ZXIo c213X2ZyZWUpCiMgMTkyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZl cnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVs ZXMvc2NzaV9zeW1zLnZlciIgMQojZGVmaW5lIF9fdmVyX3Njc2lfcmVnaXN0ZXJfbW9kdWxlIHNt cF9mYTIwYjdiMAojZGVmaW5lIHNjc2lfcmVnaXN0ZXJfbW9kdWxlIF9zZXRfdmVyKHNjc2lfcmVn aXN0ZXJfbW9kdWxlKQojZGVmaW5lIF9fdmVyX3Njc2lfdW5yZWdpc3Rlcl9tb2R1bGUgc21wXzgx ZDg1YTc1CiNkZWZpbmUgc2NzaV91bnJlZ2lzdGVyX21vZHVsZSBfc2V0X3ZlcihzY3NpX3VucmVn aXN0ZXJfbW9kdWxlKQojZGVmaW5lIF9fdmVyX3Njc2lfZnJlZSBzbXBfNDc1ZGRkZmEKI2RlZmlu ZSBzY3NpX2ZyZWUgX3NldF92ZXIoc2NzaV9mcmVlKQojZGVmaW5lIF9fdmVyX3Njc2lfbWFsbG9j IHNtcF8xY2NlM2Y5MgojZGVmaW5lIHNjc2lfbWFsbG9jIF9zZXRfdmVyKHNjc2lfbWFsbG9jKQoj ZGVmaW5lIF9fdmVyX3Njc2lfcmVnaXN0ZXIgc21wXzllMThkZDQ4CiNkZWZpbmUgc2NzaV9yZWdp c3RlciBfc2V0X3ZlcihzY3NpX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX3Njc2lfdW5yZWdpc3Rl ciBzbXBfZmNhOTVmMDEKI2RlZmluZSBzY3NpX3VucmVnaXN0ZXIgX3NldF92ZXIoc2NzaV91bnJl Z2lzdGVyKQojZGVmaW5lIF9fdmVyX3Njc2ljYW1fYmlvc19wYXJhbSBzbXBfMDMxY2VhYWUKI2Rl ZmluZSBzY3NpY2FtX2Jpb3NfcGFyYW0gX3NldF92ZXIoc2NzaWNhbV9iaW9zX3BhcmFtKQojZGVm aW5lIF9fdmVyX3Njc2lfcGFydHNpemUgc21wXzNiZWFhZmYwCiNkZWZpbmUgc2NzaV9wYXJ0c2l6 ZSBfc2V0X3ZlcihzY3NpX3BhcnRzaXplKQojZGVmaW5lIF9fdmVyX3Njc2lfYWxsb2NhdGVfZGV2 aWNlIHNtcF9hODRkYzhlNAojZGVmaW5lIHNjc2lfYWxsb2NhdGVfZGV2aWNlIF9zZXRfdmVyKHNj c2lfYWxsb2NhdGVfZGV2aWNlKQojZGVmaW5lIF9fdmVyX3Njc2lfZG9fY21kIHNtcF9lMTVkNDMw ZQojZGVmaW5lIHNjc2lfZG9fY21kIF9zZXRfdmVyKHNjc2lfZG9fY21kKQojZGVmaW5lIF9fdmVy X3Njc2lfY29tbWFuZF9zaXplIHNtcF85YjA1ZWE1YwojZGVmaW5lIHNjc2lfY29tbWFuZF9zaXpl IF9zZXRfdmVyKHNjc2lfY29tbWFuZF9zaXplKQojZGVmaW5lIF9fdmVyX3Njc2lfaW9jdGwgc21w Xzc3YzdjYWIzCiNkZWZpbmUgc2NzaV9pb2N0bCBfc2V0X3ZlcihzY3NpX2lvY3RsKQojZGVmaW5l IF9fdmVyX3ByaW50X2NvbW1hbmQgc21wXzUyODIzMmU3CiNkZWZpbmUgcHJpbnRfY29tbWFuZCBf c2V0X3ZlcihwcmludF9jb21tYW5kKQojZGVmaW5lIF9fdmVyX3ByaW50X3NlbnNlIHNtcF84ZjIw MTY5NQojZGVmaW5lIHByaW50X3NlbnNlIF9zZXRfdmVyKHByaW50X3NlbnNlKQojZGVmaW5lIF9f dmVyX3ByaW50X3JlcV9zZW5zZSBzbXBfMjdhMTViOGUKI2RlZmluZSBwcmludF9yZXFfc2Vuc2Ug X3NldF92ZXIocHJpbnRfcmVxX3NlbnNlKQojZGVmaW5lIF9fdmVyX3ByaW50X21zZyBzbXBfOGNj NWFlMDcKI2RlZmluZSBwcmludF9tc2cgX3NldF92ZXIocHJpbnRfbXNnKQojZGVmaW5lIF9fdmVy X3ByaW50X3N0YXR1cyBzbXBfZTRjMDhjY2QKI2RlZmluZSBwcmludF9zdGF0dXMgX3NldF92ZXIo cHJpbnRfc3RhdHVzKQojZGVmaW5lIF9fdmVyX3Njc2lfZG1hX2ZyZWVfc2VjdG9ycyBzbXBfZTkz MGIzY2IKI2RlZmluZSBzY3NpX2RtYV9mcmVlX3NlY3RvcnMgX3NldF92ZXIoc2NzaV9kbWFfZnJl ZV9zZWN0b3JzKQojZGVmaW5lIF9fdmVyX2tlcm5lbF9zY3NpX2lvY3RsIHNtcF82NGJjM2RmNQoj ZGVmaW5lIGtlcm5lbF9zY3NpX2lvY3RsIF9zZXRfdmVyKGtlcm5lbF9zY3NpX2lvY3RsKQojZGVm aW5lIF9fdmVyX3Njc2lfbmVlZF9pc2FfYnVmZmVyIHNtcF9lMjJiY2E5OAojZGVmaW5lIHNjc2lf bmVlZF9pc2FfYnVmZmVyIF9zZXRfdmVyKHNjc2lfbmVlZF9pc2FfYnVmZmVyKQojZGVmaW5lIF9f dmVyX3Njc2lfcmVsZWFzZV9jb21tYW5kIHNtcF8wZDI1NWUzNwojZGVmaW5lIHNjc2lfcmVsZWFz ZV9jb21tYW5kIF9zZXRfdmVyKHNjc2lfcmVsZWFzZV9jb21tYW5kKQojZGVmaW5lIF9fdmVyX3By aW50X1Njc2lfQ21uZCBzbXBfNTc0ZTJkOGEKI2RlZmluZSBwcmludF9TY3NpX0NtbmQgX3NldF92 ZXIocHJpbnRfU2NzaV9DbW5kKQojZGVmaW5lIF9fdmVyX3Njc2lfYmxvY2tfd2hlbl9wcm9jZXNz aW5nX2Vycm9ycyBzbXBfMzdiOTdjZjIKI2RlZmluZSBzY3NpX2Jsb2NrX3doZW5fcHJvY2Vzc2lu Z19lcnJvcnMgX3NldF92ZXIoc2NzaV9ibG9ja193aGVuX3Byb2Nlc3NpbmdfZXJyb3JzKQojZGVm aW5lIF9fdmVyX3Njc2lfbWFya19ob3N0X3Jlc2V0IHNtcF9jOTE0NGQ2OQojZGVmaW5lIHNjc2lf bWFya19ob3N0X3Jlc2V0IF9zZXRfdmVyKHNjc2lfbWFya19ob3N0X3Jlc2V0KQojZGVmaW5lIF9f dmVyX3Njc2lfaW9jdGxfc2VuZF9jb21tYW5kIHNtcF9iYjI1ZDY4MAojZGVmaW5lIHNjc2lfaW9j dGxfc2VuZF9jb21tYW5kIF9zZXRfdmVyKHNjc2lfaW9jdGxfc2VuZF9jb21tYW5kKQojZGVmaW5l IF9fdmVyX3Njc2lfbG9nZ2luZ19sZXZlbCBzbXBfYWYzZGQ3ZGMKI2RlZmluZSBzY3NpX2xvZ2dp bmdfbGV2ZWwgX3NldF92ZXIoc2NzaV9sb2dnaW5nX2xldmVsKQojZGVmaW5lIF9fdmVyX3Njc2lf YWxsb2NhdGVfcmVxdWVzdCBzbXBfNjZkOWI0ZWUKI2RlZmluZSBzY3NpX2FsbG9jYXRlX3JlcXVl c3QgX3NldF92ZXIoc2NzaV9hbGxvY2F0ZV9yZXF1ZXN0KQojZGVmaW5lIF9fdmVyX3Njc2lfcmVs ZWFzZV9yZXF1ZXN0IHNtcF85YTJhNzY1ZQojZGVmaW5lIHNjc2lfcmVsZWFzZV9yZXF1ZXN0IF9z ZXRfdmVyKHNjc2lfcmVsZWFzZV9yZXF1ZXN0KQojZGVmaW5lIF9fdmVyX3Njc2lfd2FpdF9yZXEg c21wXzhkODNlZDk3CiNkZWZpbmUgc2NzaV93YWl0X3JlcSBfc2V0X3ZlcihzY3NpX3dhaXRfcmVx KQojZGVmaW5lIF9fdmVyX3Njc2lfZG9fcmVxIHNtcF9hNDlhZDVmYQojZGVmaW5lIHNjc2lfZG9f cmVxIF9zZXRfdmVyKHNjc2lfZG9fcmVxKQojZGVmaW5lIF9fdmVyX3Njc2lfcmVwb3J0X2J1c19y ZXNldCBzbXBfODY2ZGRjNWEKI2RlZmluZSBzY3NpX3JlcG9ydF9idXNfcmVzZXQgX3NldF92ZXIo c2NzaV9yZXBvcnRfYnVzX3Jlc2V0KQojZGVmaW5lIF9fdmVyX3Njc2lfYmxvY2tfcmVxdWVzdHMg c21wXzVlZjA4ODk4CiNkZWZpbmUgc2NzaV9ibG9ja19yZXF1ZXN0cyBfc2V0X3ZlcihzY3NpX2Js b2NrX3JlcXVlc3RzKQojZGVmaW5lIF9fdmVyX3Njc2lfdW5ibG9ja19yZXF1ZXN0cyBzbXBfMTQ0 MWRkNTEKI2RlZmluZSBzY3NpX3VuYmxvY2tfcmVxdWVzdHMgX3NldF92ZXIoc2NzaV91bmJsb2Nr X3JlcXVlc3RzKQojZGVmaW5lIF9fdmVyX3Njc2lfZ2V0X2hvc3RfZGV2IHNtcF8xZmU1YTM5ZAoj ZGVmaW5lIHNjc2lfZ2V0X2hvc3RfZGV2IF9zZXRfdmVyKHNjc2lfZ2V0X2hvc3RfZGV2KQojZGVm aW5lIF9fdmVyX3Njc2lfZnJlZV9ob3N0X2RldiBzbXBfYWRlMDNlM2YKI2RlZmluZSBzY3NpX2Zy ZWVfaG9zdF9kZXYgX3NldF92ZXIoc2NzaV9mcmVlX2hvc3RfZGV2KQojZGVmaW5lIF9fdmVyX3Nj c2lfc2xlZXAgc21wXzM1OTYyYmY4CiNkZWZpbmUgc2NzaV9zbGVlcCBfc2V0X3ZlcihzY3NpX3Ns ZWVwKQojZGVmaW5lIF9fdmVyX3Byb2NfcHJpbnRfc2NzaWRldmljZSBzbXBfOTdkYTdjNTAKI2Rl ZmluZSBwcm9jX3ByaW50X3Njc2lkZXZpY2UgX3NldF92ZXIocHJvY19wcmludF9zY3NpZGV2aWNl KQojZGVmaW5lIF9fdmVyX3Byb2Nfc2NzaSBzbXBfNzA5NjcwMzQKI2RlZmluZSBwcm9jX3Njc2kg X3NldF92ZXIocHJvY19zY3NpKQojZGVmaW5lIF9fdmVyX3Njc2lfaW9fY29tcGxldGlvbiBzbXBf MzlhN2Y2MjkKI2RlZmluZSBzY3NpX2lvX2NvbXBsZXRpb24gX3NldF92ZXIoc2NzaV9pb19jb21w bGV0aW9uKQojZGVmaW5lIF9fdmVyX3Njc2lfZW5kX3JlcXVlc3Qgc21wXzE1NTNjNzlhCiNkZWZp bmUgc2NzaV9lbmRfcmVxdWVzdCBfc2V0X3ZlcihzY3NpX2VuZF9yZXF1ZXN0KQojZGVmaW5lIF9f dmVyX3Njc2lfcmVnaXN0ZXJfYmxvY2tlZF9ob3N0IHNtcF8xZjczNzEwNQojZGVmaW5lIHNjc2lf cmVnaXN0ZXJfYmxvY2tlZF9ob3N0IF9zZXRfdmVyKHNjc2lfcmVnaXN0ZXJfYmxvY2tlZF9ob3N0 KQojZGVmaW5lIF9fdmVyX3Njc2lfZGVyZWdpc3Rlcl9ibG9ja2VkX2hvc3Qgc21wXzc2NmJkNDVi CiNkZWZpbmUgc2NzaV9kZXJlZ2lzdGVyX2Jsb2NrZWRfaG9zdCBfc2V0X3ZlcihzY3NpX2RlcmVn aXN0ZXJfYmxvY2tlZF9ob3N0KQojZGVmaW5lIF9fdmVyX3Njc2lfaG9zdGxpc3Qgc21wXzZlZTA3 MzhmCiNkZWZpbmUgc2NzaV9ob3N0bGlzdCBfc2V0X3ZlcihzY3NpX2hvc3RsaXN0KQojZGVmaW5l IF9fdmVyX3Njc2lfaG9zdHMgc21wXzY0MmY0MTZjCiNkZWZpbmUgc2NzaV9ob3N0cyBfc2V0X3Zl cihzY3NpX2hvc3RzKQojZGVmaW5lIF9fdmVyX3Njc2lfZGV2aWNlbGlzdCBzbXBfMWI0YTk5MGIK I2RlZmluZSBzY3NpX2RldmljZWxpc3QgX3NldF92ZXIoc2NzaV9kZXZpY2VsaXN0KQojZGVmaW5l IF9fdmVyX3Njc2lfZGV2aWNlX3R5cGVzIHNtcF9kNTRiNzRhYwojZGVmaW5lIHNjc2lfZGV2aWNl X3R5cGVzIF9zZXRfdmVyKHNjc2lfZGV2aWNlX3R5cGVzKQojZGVmaW5lIF9fdmVyX3Njc2lfYWRk X3RpbWVyIHNtcF8zZWZiODZjZQojZGVmaW5lIHNjc2lfYWRkX3RpbWVyIF9zZXRfdmVyKHNjc2lf YWRkX3RpbWVyKQojZGVmaW5lIF9fdmVyX3Njc2lfZGVsZXRlX3RpbWVyIHNtcF81NGUyOWM3Ngoj ZGVmaW5lIHNjc2lfZGVsZXRlX3RpbWVyIF9zZXRfdmVyKHNjc2lfZGVsZXRlX3RpbWVyKQojIDE5 MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMg MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NkbGFkcnYudmVy IiAxCiNkZWZpbmUgX192ZXJfc2RsYV9zZXR1cCBzbXBfZTNhZDA2ZDkKI2RlZmluZSBzZGxhX3Nl dHVwIF9zZXRfdmVyKHNkbGFfc2V0dXApCiNkZWZpbmUgX192ZXJfc2RsYV9kb3duIHNtcF8wNzYy N2UzMwojZGVmaW5lIHNkbGFfZG93biBfc2V0X3ZlcihzZGxhX2Rvd24pCiNkZWZpbmUgX192ZXJf c2RsYV9tYXBtZW0gc21wXzM2YmI3ODE4CiNkZWZpbmUgc2RsYV9tYXBtZW0gX3NldF92ZXIoc2Rs YV9tYXBtZW0pCiNkZWZpbmUgX192ZXJfc2RsYV9pbnRlbiBzbXBfMWM0NDM4MzQKI2RlZmluZSBz ZGxhX2ludGVuIF9zZXRfdmVyKHNkbGFfaW50ZW4pCiNkZWZpbmUgX192ZXJfc2RsYV9pbnRkZSBz bXBfOTU0NzUyN2YKI2RlZmluZSBzZGxhX2ludGRlIF9zZXRfdmVyKHNkbGFfaW50ZGUpCiNkZWZp bmUgX192ZXJfc2RsYV9pbnRhY2sgc21wXzQwYjkyODlmCiNkZWZpbmUgc2RsYV9pbnRhY2sgX3Nl dF92ZXIoc2RsYV9pbnRhY2spCiNkZWZpbmUgX192ZXJfUzUxNF9pbnRhY2sgc21wXzljYjU1MGQz CiNkZWZpbmUgUzUxNF9pbnRhY2sgX3NldF92ZXIoUzUxNF9pbnRhY2spCiNkZWZpbmUgX192ZXJf cmVhZF9TNTE0X2ludF9zdGF0IHNtcF9kOGFjNzVhNgojZGVmaW5lIHJlYWRfUzUxNF9pbnRfc3Rh dCBfc2V0X3ZlcihyZWFkX1M1MTRfaW50X3N0YXQpCiNkZWZpbmUgX192ZXJfc2RsYV9pbnRyIHNt cF9hYmQzNWQ3MgojZGVmaW5lIHNkbGFfaW50ciBfc2V0X3ZlcihzZGxhX2ludHIpCiNkZWZpbmUg X192ZXJfc2RsYV9leGVjIHNtcF83NjMwYjgyOQojZGVmaW5lIHNkbGFfZXhlYyBfc2V0X3Zlcihz ZGxhX2V4ZWMpCiNkZWZpbmUgX192ZXJfc2RsYV9wZWVrIHNtcF8zOWFjMWVmZQojZGVmaW5lIHNk bGFfcGVlayBfc2V0X3ZlcihzZGxhX3BlZWspCiNkZWZpbmUgX192ZXJfc2RsYV9wb2tlIHNtcF9h NzA5Y2M1YQojZGVmaW5lIHNkbGFfcG9rZSBfc2V0X3ZlcihzZGxhX3Bva2UpCiNkZWZpbmUgX192 ZXJfd2FucGlwZV9od19wcm9iZSBzbXBfYTNlOThlYTAKI2RlZmluZSB3YW5waXBlX2h3X3Byb2Jl IF9zZXRfdmVyKHdhbnBpcGVfaHdfcHJvYmUpCiMgMTk0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L21vZHVsZXMvc2VsZWN0aW9uLnZlciIgMQojZGVmaW5lIF9fdmVyX3NldF9z ZWxlY3Rpb24gc21wXzhlMDBiYmJlCiNkZWZpbmUgc2V0X3NlbGVjdGlvbiBfc2V0X3ZlcihzZXRf c2VsZWN0aW9uKQojZGVmaW5lIF9fdmVyX3Bhc3RlX3NlbGVjdGlvbiBzbXBfNmRiMDdiNGUKI2Rl ZmluZSBwYXN0ZV9zZWxlY3Rpb24gX3NldF92ZXIocGFzdGVfc2VsZWN0aW9uKQojIDE5NSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NlcXVlbmNlcl9zeW1zLnZl ciIgMQojZGVmaW5lIF9fdmVyX25vdGVfdG9fZnJlcSBzbXBfNWQ5ODZmYzkKI2RlZmluZSBub3Rl X3RvX2ZyZXEgX3NldF92ZXIobm90ZV90b19mcmVxKQojZGVmaW5lIF9fdmVyX2NvbXB1dGVfZmlu ZXR1bmUgc21wXzA0Yzg3ZWM4CiNkZWZpbmUgY29tcHV0ZV9maW5ldHVuZSBfc2V0X3Zlcihjb21w dXRlX2ZpbmV0dW5lKQojZGVmaW5lIF9fdmVyX3NlcV9jb3B5X3RvX2lucHV0IHNtcF83Njc5ZWU3 NgojZGVmaW5lIHNlcV9jb3B5X3RvX2lucHV0IF9zZXRfdmVyKHNlcV9jb3B5X3RvX2lucHV0KQoj ZGVmaW5lIF9fdmVyX3NlcV9pbnB1dF9ldmVudCBzbXBfMTdiYTIzMWQKI2RlZmluZSBzZXFfaW5w dXRfZXZlbnQgX3NldF92ZXIoc2VxX2lucHV0X2V2ZW50KQojZGVmaW5lIF9fdmVyX3NlcXVlbmNl cl9pbml0IHNtcF9mNzhmNjM2MwojZGVmaW5lIHNlcXVlbmNlcl9pbml0IF9zZXRfdmVyKHNlcXVl bmNlcl9pbml0KQojZGVmaW5lIF9fdmVyX3NlcXVlbmNlcl90aW1lciBzbXBfOTBiZDk3MTQKI2Rl ZmluZSBzZXF1ZW5jZXJfdGltZXIgX3NldF92ZXIoc2VxdWVuY2VyX3RpbWVyKQojZGVmaW5lIF9f dmVyX3NvdW5kX3RpbWVyX2luaXQgc21wXzIxNjFkNWU4CiNkZWZpbmUgc291bmRfdGltZXJfaW5p dCBfc2V0X3Zlcihzb3VuZF90aW1lcl9pbml0KQojZGVmaW5lIF9fdmVyX3NvdW5kX3RpbWVyX2lu dGVycnVwdCBzbXBfZTI2NzVhNzkKI2RlZmluZSBzb3VuZF90aW1lcl9pbnRlcnJ1cHQgX3NldF92 ZXIoc291bmRfdGltZXJfaW50ZXJydXB0KQojZGVmaW5lIF9fdmVyX3NvdW5kX3RpbWVyX3N5bmNp bnRlcnZhbCBzbXBfZmE2ODcxYmUKI2RlZmluZSBzb3VuZF90aW1lcl9zeW5jaW50ZXJ2YWwgX3Nl dF92ZXIoc291bmRfdGltZXJfc3luY2ludGVydmFsKQojZGVmaW5lIF9fdmVyX3JlcHJvZ3JhbV90 aW1lciBzbXBfYzY4YjU2OGUKI2RlZmluZSByZXByb2dyYW1fdGltZXIgX3NldF92ZXIocmVwcm9n cmFtX3RpbWVyKQojZGVmaW5lIF9fdmVyX2NlbnRfdHVuaW5nIHNtcF8wM2NlN2ZmNwojZGVmaW5l IGNlbnRfdHVuaW5nIF9zZXRfdmVyKGNlbnRfdHVuaW5nKQojZGVmaW5lIF9fdmVyX3NlbWl0b25l X3R1bmluZyBzbXBfOGI4NGFlYjEKI2RlZmluZSBzZW1pdG9uZV90dW5pbmcgX3NldF92ZXIoc2Vt aXRvbmVfdHVuaW5nKQojIDE5NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t b2R1bGVzL3NlcmlhbC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9zZXJpYWwgc21wX2Ex OGRjMmIxCiNkZWZpbmUgcmVnaXN0ZXJfc2VyaWFsIF9zZXRfdmVyKHJlZ2lzdGVyX3NlcmlhbCkK I2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX3NlcmlhbCBzbXBfY2U4YTNlNjUKI2RlZmluZSB1bnJl Z2lzdGVyX3NlcmlhbCBfc2V0X3Zlcih1bnJlZ2lzdGVyX3NlcmlhbCkKIyAxOTcgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zZXJpby52ZXIiIDEKI2RlZmluZSBf X3Zlcl9zZXJpb19yZWdpc3Rlcl9wb3J0IHNtcF9jMDQyNGEwMgojZGVmaW5lIHNlcmlvX3JlZ2lz dGVyX3BvcnQgX3NldF92ZXIoc2VyaW9fcmVnaXN0ZXJfcG9ydCkKI2RlZmluZSBfX3Zlcl9zZXJp b191bnJlZ2lzdGVyX3BvcnQgc21wXzliNWFiMzc3CiNkZWZpbmUgc2VyaW9fdW5yZWdpc3Rlcl9w b3J0IF9zZXRfdmVyKHNlcmlvX3VucmVnaXN0ZXJfcG9ydCkKI2RlZmluZSBfX3Zlcl9zZXJpb19y ZWdpc3Rlcl9kZXZpY2Ugc21wX2JlOTFhOTMxCiNkZWZpbmUgc2VyaW9fcmVnaXN0ZXJfZGV2aWNl IF9zZXRfdmVyKHNlcmlvX3JlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9zZXJpb191bnJl Z2lzdGVyX2RldmljZSBzbXBfNTUxZWI5NGUKI2RlZmluZSBzZXJpb191bnJlZ2lzdGVyX2Rldmlj ZSBfc2V0X3ZlcihzZXJpb191bnJlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9zZXJpb19v cGVuIHNtcF8xN2FiZmIyZgojZGVmaW5lIHNlcmlvX29wZW4gX3NldF92ZXIoc2VyaW9fb3BlbikK I2RlZmluZSBfX3Zlcl9zZXJpb19jbG9zZSBzbXBfMzkzZDcwYzMKI2RlZmluZSBzZXJpb19jbG9z ZSBfc2V0X3ZlcihzZXJpb19jbG9zZSkKI2RlZmluZSBfX3Zlcl9zZXJpb19yZXNjYW4gc21wXzIx MzNiMTdiCiNkZWZpbmUgc2VyaW9fcmVzY2FuIF9zZXRfdmVyKHNlcmlvX3Jlc2NhbikKIyAxOTgg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zZ2ljb25zLnZlciIg MQojIDE5OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NobWVt LnZlciIgMQojZGVmaW5lIF9fdmVyX3NobWVtX2ZpbGVfc2V0dXAgc21wXzRiMDQwNWY4CiNkZWZp bmUgc2htZW1fZmlsZV9zZXR1cCBfc2V0X3ZlcihzaG1lbV9maWxlX3NldHVwKQojIDIwMCAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NobWlxLnZlciIgMQojIDIw MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMg MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NpZ25hbC52ZXIi IDEKI2RlZmluZSBfX3Zlcl9kZXF1ZXVlX3NpZ25hbCBzbXBfNjcyYTgxMGEKI2RlZmluZSBkZXF1 ZXVlX3NpZ25hbCBfc2V0X3ZlcihkZXF1ZXVlX3NpZ25hbCkKI2RlZmluZSBfX3Zlcl9mbHVzaF9z aWduYWxzIHNtcF9mZWFmOTE3ZAojZGVmaW5lIGZsdXNoX3NpZ25hbHMgX3NldF92ZXIoZmx1c2hf c2lnbmFscykKI2RlZmluZSBfX3Zlcl9mb3JjZV9zaWcgc21wXzY1NWNjYmFhCiNkZWZpbmUgZm9y Y2Vfc2lnIF9zZXRfdmVyKGZvcmNlX3NpZykKI2RlZmluZSBfX3Zlcl9mb3JjZV9zaWdfaW5mbyBz bXBfY2MyYjQyZTEKI2RlZmluZSBmb3JjZV9zaWdfaW5mbyBfc2V0X3Zlcihmb3JjZV9zaWdfaW5m bykKI2RlZmluZSBfX3Zlcl9raWxsX3BnIHNtcF8zOGYyOTcxOQojZGVmaW5lIGtpbGxfcGcgX3Nl dF92ZXIoa2lsbF9wZykKI2RlZmluZSBfX3Zlcl9raWxsX3BnX2luZm8gc21wX2FjN2M4MDA2CiNk ZWZpbmUga2lsbF9wZ19pbmZvIF9zZXRfdmVyKGtpbGxfcGdfaW5mbykKI2RlZmluZSBfX3Zlcl9r aWxsX3Byb2Mgc21wXzkzMmRhNjdlCiNkZWZpbmUga2lsbF9wcm9jIF9zZXRfdmVyKGtpbGxfcHJv YykKI2RlZmluZSBfX3Zlcl9raWxsX3Byb2NfaW5mbyBzbXBfY2UxN2U3OTMKI2RlZmluZSBraWxs X3Byb2NfaW5mbyBfc2V0X3ZlcihraWxsX3Byb2NfaW5mbykKI2RlZmluZSBfX3Zlcl9raWxsX3Ns IHNtcF9mYmExMmZkMAojZGVmaW5lIGtpbGxfc2wgX3NldF92ZXIoa2lsbF9zbCkKI2RlZmluZSBf X3Zlcl9raWxsX3NsX2luZm8gc21wXzc3MTMwOTFkCiNkZWZpbmUga2lsbF9zbF9pbmZvIF9zZXRf dmVyKGtpbGxfc2xfaW5mbykKI2RlZmluZSBfX3Zlcl9ub3RpZnlfcGFyZW50IHNtcF9lNzZhZjE0 MwojZGVmaW5lIG5vdGlmeV9wYXJlbnQgX3NldF92ZXIobm90aWZ5X3BhcmVudCkKI2RlZmluZSBf X3Zlcl9yZWNhbGNfc2lncGVuZGluZyBzbXBfNzY5ODdiMWYKI2RlZmluZSByZWNhbGNfc2lncGVu ZGluZyBfc2V0X3ZlcihyZWNhbGNfc2lncGVuZGluZykKI2RlZmluZSBfX3Zlcl9zZW5kX3NpZyBz bXBfOTMzNmRkMDEKI2RlZmluZSBzZW5kX3NpZyBfc2V0X3ZlcihzZW5kX3NpZykKI2RlZmluZSBf X3Zlcl9zZW5kX3NpZ19pbmZvIHNtcF9lYmU4NTJhOAojZGVmaW5lIHNlbmRfc2lnX2luZm8gX3Nl dF92ZXIoc2VuZF9zaWdfaW5mbykKI2RlZmluZSBfX3Zlcl9ibG9ja19hbGxfc2lnbmFscyBzbXBf NGVkZDcyZjcKI2RlZmluZSBibG9ja19hbGxfc2lnbmFscyBfc2V0X3ZlcihibG9ja19hbGxfc2ln bmFscykKI2RlZmluZSBfX3Zlcl91bmJsb2NrX2FsbF9zaWduYWxzIHNtcF8wYTI0ODdlMAojZGVm aW5lIHVuYmxvY2tfYWxsX3NpZ25hbHMgX3NldF92ZXIodW5ibG9ja19hbGxfc2lnbmFscykKIyAy MDIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zbGhjLnZlciIg MQojZGVmaW5lIF9fdmVyX3NsaGNfaW5pdCBzbXBfMmUwZTkyN2YKI2RlZmluZSBzbGhjX2luaXQg X3NldF92ZXIoc2xoY19pbml0KQojZGVmaW5lIF9fdmVyX3NsaGNfZnJlZSBzbXBfMjg5NGNmYjAK I2RlZmluZSBzbGhjX2ZyZWUgX3NldF92ZXIoc2xoY19mcmVlKQojZGVmaW5lIF9fdmVyX3NsaGNf cmVtZW1iZXIgc21wXzBiYzU1ODY4CiNkZWZpbmUgc2xoY19yZW1lbWJlciBfc2V0X3ZlcihzbGhj X3JlbWVtYmVyKQojZGVmaW5lIF9fdmVyX3NsaGNfY29tcHJlc3Mgc21wXzc2MTM1ZTZjCiNkZWZp bmUgc2xoY19jb21wcmVzcyBfc2V0X3ZlcihzbGhjX2NvbXByZXNzKQojZGVmaW5lIF9fdmVyX3Ns aGNfdW5jb21wcmVzcyBzbXBfM2JjMTMxOWUKI2RlZmluZSBzbGhjX3VuY29tcHJlc3MgX3NldF92 ZXIoc2xoY191bmNvbXByZXNzKQojZGVmaW5lIF9fdmVyX3NsaGNfdG9zcyBzbXBfZjg5ZTM0NTUK I2RlZmluZSBzbGhjX3Rvc3MgX3NldF92ZXIoc2xoY190b3NzKQojIDIwMyAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NvbnlwaS52ZXIiIDEKI2RlZmluZSBfX3Zl cl9zb255cGlfY2FtZXJhX2NvbW1hbmQgc21wX2ZkNjU5OTFhCiNkZWZpbmUgc29ueXBpX2NhbWVy YV9jb21tYW5kIF9zZXRfdmVyKHNvbnlwaV9jYW1lcmFfY29tbWFuZCkKIyAyMDQgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zb3VuZF9jb3JlLnZlciIgMQojZGVm aW5lIF9fdmVyX3JlZ2lzdGVyX3NvdW5kX3NwZWNpYWwgc21wX2MyMzA0NjFiCiNkZWZpbmUgcmVn aXN0ZXJfc291bmRfc3BlY2lhbCBfc2V0X3ZlcihyZWdpc3Rlcl9zb3VuZF9zcGVjaWFsKQojZGVm aW5lIF9fdmVyX3JlZ2lzdGVyX3NvdW5kX21peGVyIHNtcF80OTIxNThkZAojZGVmaW5lIHJlZ2lz dGVyX3NvdW5kX21peGVyIF9zZXRfdmVyKHJlZ2lzdGVyX3NvdW5kX21peGVyKQojZGVmaW5lIF9f dmVyX3JlZ2lzdGVyX3NvdW5kX21pZGkgc21wXzhmYzBkMWNiCiNkZWZpbmUgcmVnaXN0ZXJfc291 bmRfbWlkaSBfc2V0X3ZlcihyZWdpc3Rlcl9zb3VuZF9taWRpKQojZGVmaW5lIF9fdmVyX3JlZ2lz dGVyX3NvdW5kX2RzcCBzbXBfMmY2MDEwN2EKI2RlZmluZSByZWdpc3Rlcl9zb3VuZF9kc3AgX3Nl dF92ZXIocmVnaXN0ZXJfc291bmRfZHNwKQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX3NvdW5kX3N5 bnRoIHNtcF83OGI3ZTcyMAojZGVmaW5lIHJlZ2lzdGVyX3NvdW5kX3N5bnRoIF9zZXRfdmVyKHJl Z2lzdGVyX3NvdW5kX3N5bnRoKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRfc3BlY2lh bCBzbXBfOTljOTVmYTUKI2RlZmluZSB1bnJlZ2lzdGVyX3NvdW5kX3NwZWNpYWwgX3NldF92ZXIo dW5yZWdpc3Rlcl9zb3VuZF9zcGVjaWFsKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRf bWl4ZXIgc21wXzdhZmM5ZDhhCiNkZWZpbmUgdW5yZWdpc3Rlcl9zb3VuZF9taXhlciBfc2V0X3Zl cih1bnJlZ2lzdGVyX3NvdW5kX21peGVyKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRf bWlkaSBzbXBfZmRhYjZkZTMKI2RlZmluZSB1bnJlZ2lzdGVyX3NvdW5kX21pZGkgX3NldF92ZXIo dW5yZWdpc3Rlcl9zb3VuZF9taWRpKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRfZHNw IHNtcF9jZDA4M2IxMAojZGVmaW5lIHVucmVnaXN0ZXJfc291bmRfZHNwIF9zZXRfdmVyKHVucmVn aXN0ZXJfc291bmRfZHNwKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRfc3ludGggc21w X2RmMDMxMDhhCiNkZWZpbmUgdW5yZWdpc3Rlcl9zb3VuZF9zeW50aCBfc2V0X3Zlcih1bnJlZ2lz dGVyX3NvdW5kX3N5bnRoKQojZGVmaW5lIF9fdmVyX21vZF9maXJtd2FyZV9sb2FkIHNtcF8zOWUz ZGQyMwojZGVmaW5lIG1vZF9maXJtd2FyZV9sb2FkIF9zZXRfdmVyKG1vZF9maXJtd2FyZV9sb2Fk KQojIDIwNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NvdW5k X3N5bXMudmVyIiAxCiNkZWZpbmUgX192ZXJfbWl4ZXJfZGV2cyBzbXBfNGJlYWYwYjMKI2RlZmlu ZSBtaXhlcl9kZXZzIF9zZXRfdmVyKG1peGVyX2RldnMpCiNkZWZpbmUgX192ZXJfYXVkaW9fZGV2 cyBzbXBfN2IzYzg1OTMKI2RlZmluZSBhdWRpb19kZXZzIF9zZXRfdmVyKGF1ZGlvX2RldnMpCiNk ZWZpbmUgX192ZXJfbnVtX21peGVycyBzbXBfOWQ4NDViMTgKI2RlZmluZSBudW1fbWl4ZXJzIF9z ZXRfdmVyKG51bV9taXhlcnMpCiNkZWZpbmUgX192ZXJfbnVtX2F1ZGlvZGV2cyBzbXBfNGNkMDFi ZGQKI2RlZmluZSBudW1fYXVkaW9kZXZzIF9zZXRfdmVyKG51bV9hdWRpb2RldnMpCiNkZWZpbmUg X192ZXJfbWlkaV9kZXZzIHNtcF84YTY3MzZiNgojZGVmaW5lIG1pZGlfZGV2cyBfc2V0X3Zlciht aWRpX2RldnMpCiNkZWZpbmUgX192ZXJfbnVtX21pZGlzIHNtcF9hMWVhZTdjZgojZGVmaW5lIG51 bV9taWRpcyBfc2V0X3ZlcihudW1fbWlkaXMpCiNkZWZpbmUgX192ZXJfc3ludGhfZGV2cyBzbXBf MTI2MDc3NGIKI2RlZmluZSBzeW50aF9kZXZzIF9zZXRfdmVyKHN5bnRoX2RldnMpCiNkZWZpbmUg X192ZXJfbnVtX3N5bnRocyBzbXBfYmYwN2NhNmUKI2RlZmluZSBudW1fc3ludGhzIF9zZXRfdmVy KG51bV9zeW50aHMpCiNkZWZpbmUgX192ZXJfc291bmRfdGltZXJfZGV2cyBzbXBfMWMzMGQ2ZmEK I2RlZmluZSBzb3VuZF90aW1lcl9kZXZzIF9zZXRfdmVyKHNvdW5kX3RpbWVyX2RldnMpCiNkZWZp bmUgX192ZXJfbnVtX3NvdW5kX3RpbWVycyBzbXBfOThlZGIxZTAKI2RlZmluZSBudW1fc291bmRf dGltZXJzIF9zZXRfdmVyKG51bV9zb3VuZF90aW1lcnMpCiNkZWZpbmUgX192ZXJfc291bmRfaW5z dGFsbF9hdWRpb2RydiBzbXBfNGNjYjNkMzcKI2RlZmluZSBzb3VuZF9pbnN0YWxsX2F1ZGlvZHJ2 IF9zZXRfdmVyKHNvdW5kX2luc3RhbGxfYXVkaW9kcnYpCiNkZWZpbmUgX192ZXJfc291bmRfaW5z dGFsbF9taXhlciBzbXBfMjBhZTZlMGIKI2RlZmluZSBzb3VuZF9pbnN0YWxsX21peGVyIF9zZXRf dmVyKHNvdW5kX2luc3RhbGxfbWl4ZXIpCiNkZWZpbmUgX192ZXJfc291bmRfYWxsb2NfZG1hIHNt cF85YTk1NzMzZgojZGVmaW5lIHNvdW5kX2FsbG9jX2RtYSBfc2V0X3Zlcihzb3VuZF9hbGxvY19k bWEpCiNkZWZpbmUgX192ZXJfc291bmRfZnJlZV9kbWEgc21wXzM5NGNiMDg4CiNkZWZpbmUgc291 bmRfZnJlZV9kbWEgX3NldF92ZXIoc291bmRfZnJlZV9kbWEpCiNkZWZpbmUgX192ZXJfc291bmRf b3Blbl9kbWEgc21wX2NjNGI4Nzk3CiNkZWZpbmUgc291bmRfb3Blbl9kbWEgX3NldF92ZXIoc291 bmRfb3Blbl9kbWEpCiNkZWZpbmUgX192ZXJfc291bmRfY2xvc2VfZG1hIHNtcF80MThmNWZiZQoj ZGVmaW5lIHNvdW5kX2Nsb3NlX2RtYSBfc2V0X3Zlcihzb3VuZF9jbG9zZV9kbWEpCiNkZWZpbmUg X192ZXJfc291bmRfYWxsb2NfYXVkaW9kZXYgc21wXzUwMzU3MzZjCiNkZWZpbmUgc291bmRfYWxs b2NfYXVkaW9kZXYgX3NldF92ZXIoc291bmRfYWxsb2NfYXVkaW9kZXYpCiNkZWZpbmUgX192ZXJf c291bmRfYWxsb2NfbWlkaWRldiBzbXBfYmE0MTNmODcKI2RlZmluZSBzb3VuZF9hbGxvY19taWRp ZGV2IF9zZXRfdmVyKHNvdW5kX2FsbG9jX21pZGlkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfYWxs b2NfbWl4ZXJkZXYgc21wXzFiM2RmM2NmCiNkZWZpbmUgc291bmRfYWxsb2NfbWl4ZXJkZXYgX3Nl dF92ZXIoc291bmRfYWxsb2NfbWl4ZXJkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfYWxsb2NfdGlt ZXJkZXYgc21wXzUxZTM1NGIyCiNkZWZpbmUgc291bmRfYWxsb2NfdGltZXJkZXYgX3NldF92ZXIo c291bmRfYWxsb2NfdGltZXJkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfYWxsb2Nfc3ludGhkZXYg c21wX2M3NDhkMTA5CiNkZWZpbmUgc291bmRfYWxsb2Nfc3ludGhkZXYgX3NldF92ZXIoc291bmRf YWxsb2Nfc3ludGhkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX2F1ZGlvZGV2IHNtcF9h OTQ4NzUxZQojZGVmaW5lIHNvdW5kX3VubG9hZF9hdWRpb2RldiBfc2V0X3Zlcihzb3VuZF91bmxv YWRfYXVkaW9kZXYpCiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX21pZGlkZXYgc21wX2E2YmI0 MTRjCiNkZWZpbmUgc291bmRfdW5sb2FkX21pZGlkZXYgX3NldF92ZXIoc291bmRfdW5sb2FkX21p ZGlkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX21peGVyZGV2IHNtcF9hNTFjOTEzYgoj ZGVmaW5lIHNvdW5kX3VubG9hZF9taXhlcmRldiBfc2V0X3Zlcihzb3VuZF91bmxvYWRfbWl4ZXJk ZXYpCiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX3RpbWVyZGV2IHNtcF9hNDFlYWQ1ZgojZGVm aW5lIHNvdW5kX3VubG9hZF90aW1lcmRldiBfc2V0X3Zlcihzb3VuZF91bmxvYWRfdGltZXJkZXYp CiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX3N5bnRoZGV2IHNtcF8wNjMzOTgxNQojZGVmaW5l IHNvdW5kX3VubG9hZF9zeW50aGRldiBfc2V0X3Zlcihzb3VuZF91bmxvYWRfc3ludGhkZXYpCiNk ZWZpbmUgX192ZXJfbG9hZF9taXhlcl92b2x1bWVzIHNtcF9hMWQ1ZjA0ZgojZGVmaW5lIGxvYWRf bWl4ZXJfdm9sdW1lcyBfc2V0X3Zlcihsb2FkX21peGVyX3ZvbHVtZXMpCiNkZWZpbmUgX192ZXJf Y29uZl9wcmludGYgc21wXzBmMjgwMDM1CiNkZWZpbmUgY29uZl9wcmludGYgX3NldF92ZXIoY29u Zl9wcmludGYpCiNkZWZpbmUgX192ZXJfY29uZl9wcmludGYyIHNtcF83YmRmMDkwNwojZGVmaW5l IGNvbmZfcHJpbnRmMiBfc2V0X3Zlcihjb25mX3ByaW50ZjIpCiMgMjA2ICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvc3VuaS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9z dW5pX2luaXQgc21wXzc4MTI0NTE1CiNkZWZpbmUgc3VuaV9pbml0IF9zZXRfdmVyKHN1bmlfaW5p dCkKIyAyMDcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zdW5y cGNfc3ltcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9ycGNfYWxsb2NhdGUgc21wXzBjZDFjOTg5CiNk ZWZpbmUgcnBjX2FsbG9jYXRlIF9zZXRfdmVyKHJwY19hbGxvY2F0ZSkKI2RlZmluZSBfX3Zlcl9y cGNfZnJlZSBzbXBfZjlkMTE2NGMKI2RlZmluZSBycGNfZnJlZSBfc2V0X3ZlcihycGNfZnJlZSkK I2RlZmluZSBfX3Zlcl9ycGNfZXhlY3V0ZSBzbXBfNGU5MDA3NjkKI2RlZmluZSBycGNfZXhlY3V0 ZSBfc2V0X3ZlcihycGNfZXhlY3V0ZSkKI2RlZmluZSBfX3Zlcl9ycGNfaW5pdF90YXNrIHNtcF8w Y2M5YTY2NwojZGVmaW5lIHJwY19pbml0X3Rhc2sgX3NldF92ZXIocnBjX2luaXRfdGFzaykKI2Rl ZmluZSBfX3Zlcl9ycGNfc2xlZXBfb24gc21wX2UxOTVmNWI2CiNkZWZpbmUgcnBjX3NsZWVwX29u IF9zZXRfdmVyKHJwY19zbGVlcF9vbikKI2RlZmluZSBfX3Zlcl9ycGNfd2FrZV91cF9uZXh0IHNt cF8wMzg4ZWZiMAojZGVmaW5lIHJwY193YWtlX3VwX25leHQgX3NldF92ZXIocnBjX3dha2VfdXBf bmV4dCkKI2RlZmluZSBfX3Zlcl9ycGNfd2FrZV91cF90YXNrIHNtcF83ZGIwYzZhMwojZGVmaW5l IHJwY193YWtlX3VwX3Rhc2sgX3NldF92ZXIocnBjX3dha2VfdXBfdGFzaykKI2RlZmluZSBfX3Zl cl9ycGNfbmV3X2NoaWxkIHNtcF80ZmRjYjY4YQojZGVmaW5lIHJwY19uZXdfY2hpbGQgX3NldF92 ZXIocnBjX25ld19jaGlsZCkKI2RlZmluZSBfX3Zlcl9ycGNfcnVuX2NoaWxkIHNtcF82OTFjNzUz ZgojZGVmaW5lIHJwY19ydW5fY2hpbGQgX3NldF92ZXIocnBjX3J1bl9jaGlsZCkKI2RlZmluZSBf X3Zlcl9ycGNpb2RfZG93biBzbXBfYmFiZjBmMzUKI2RlZmluZSBycGNpb2RfZG93biBfc2V0X3Zl cihycGNpb2RfZG93bikKI2RlZmluZSBfX3Zlcl9ycGNpb2RfdXAgc21wXzM3NTQ5MmE0CiNkZWZp bmUgcnBjaW9kX3VwIF9zZXRfdmVyKHJwY2lvZF91cCkKI2RlZmluZSBfX3Zlcl9ycGNfbmV3X3Rh c2sgc21wXzMzNDliMDQxCiNkZWZpbmUgcnBjX25ld190YXNrIF9zZXRfdmVyKHJwY19uZXdfdGFz aykKI2RlZmluZSBfX3Zlcl9ycGNfd2FrZV91cF9zdGF0dXMgc21wXzczNjQ0Y2I4CiNkZWZpbmUg cnBjX3dha2VfdXBfc3RhdHVzIF9zZXRfdmVyKHJwY193YWtlX3VwX3N0YXR1cykKI2RlZmluZSBf X3Zlcl9ycGNfcmVsZWFzZV90YXNrIHNtcF9iMDM3ODk0MAojZGVmaW5lIHJwY19yZWxlYXNlX3Rh c2sgX3NldF92ZXIocnBjX3JlbGVhc2VfdGFzaykKI2RlZmluZSBfX3Zlcl9ycGNfY3JlYXRlX2Ns aWVudCBzbXBfN2Y0MTQ2MTcKI2RlZmluZSBycGNfY3JlYXRlX2NsaWVudCBfc2V0X3ZlcihycGNf Y3JlYXRlX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9ycGNfZGVzdHJveV9jbGllbnQgc21wX2Q4NWQx OTI3CiNkZWZpbmUgcnBjX2Rlc3Ryb3lfY2xpZW50IF9zZXRfdmVyKHJwY19kZXN0cm95X2NsaWVu dCkKI2RlZmluZSBfX3Zlcl9ycGNfc2h1dGRvd25fY2xpZW50IHNtcF9lMmIxOWZmYQojZGVmaW5l IHJwY19zaHV0ZG93bl9jbGllbnQgX3NldF92ZXIocnBjX3NodXRkb3duX2NsaWVudCkKI2RlZmlu ZSBfX3Zlcl9ycGNfa2lsbGFsbF90YXNrcyBzbXBfMTZjODc1MTQKI2RlZmluZSBycGNfa2lsbGFs bF90YXNrcyBfc2V0X3ZlcihycGNfa2lsbGFsbF90YXNrcykKI2RlZmluZSBfX3Zlcl9ycGNfY2Fs bF9zeW5jIHNtcF80Nzk4YjNlMwojZGVmaW5lIHJwY19jYWxsX3N5bmMgX3NldF92ZXIocnBjX2Nh bGxfc3luYykKI2RlZmluZSBfX3Zlcl9ycGNfY2FsbF9hc3luYyBzbXBfY2VkMjJmNzEKI2RlZmlu ZSBycGNfY2FsbF9hc3luYyBfc2V0X3ZlcihycGNfY2FsbF9hc3luYykKI2RlZmluZSBfX3Zlcl9y cGNfY2FsbF9zZXR1cCBzbXBfYzdiY2YxN2EKI2RlZmluZSBycGNfY2FsbF9zZXR1cCBfc2V0X3Zl cihycGNfY2FsbF9zZXR1cCkKI2RlZmluZSBfX3Zlcl9ycGNfY2xudF9zaWdtYXNrIHNtcF82ZjI0 YzZlNAojZGVmaW5lIHJwY19jbG50X3NpZ21hc2sgX3NldF92ZXIocnBjX2NsbnRfc2lnbWFzaykK I2RlZmluZSBfX3Zlcl9ycGNfY2xudF9zaWd1bm1hc2sgc21wXzgzM2MwZGM5CiNkZWZpbmUgcnBj X2NsbnRfc2lndW5tYXNrIF9zZXRfdmVyKHJwY19jbG50X3NpZ3VubWFzaykKI2RlZmluZSBfX3Zl cl9ycGNfZGVsYXkgc21wX2Q2YTRlMTQ4CiNkZWZpbmUgcnBjX2RlbGF5IF9zZXRfdmVyKHJwY19k ZWxheSkKI2RlZmluZSBfX3Zlcl9ycGNfcmVzdGFydF9jYWxsIHNtcF81YTM0MzI4MwojZGVmaW5l IHJwY19yZXN0YXJ0X2NhbGwgX3NldF92ZXIocnBjX3Jlc3RhcnRfY2FsbCkKI2RlZmluZSBfX3Zl cl94cHJ0X2NyZWF0ZV9wcm90byBzbXBfMDFkYWVkN2QKI2RlZmluZSB4cHJ0X2NyZWF0ZV9wcm90 byBfc2V0X3Zlcih4cHJ0X2NyZWF0ZV9wcm90bykKI2RlZmluZSBfX3Zlcl94cHJ0X2Rlc3Ryb3kg c21wXzA4NTEyM2JmCiNkZWZpbmUgeHBydF9kZXN0cm95IF9zZXRfdmVyKHhwcnRfZGVzdHJveSkK I2RlZmluZSBfX3Zlcl94cHJ0X3NldF90aW1lb3V0IHNtcF82NGU0ODZjMgojZGVmaW5lIHhwcnRf c2V0X3RpbWVvdXQgX3NldF92ZXIoeHBydF9zZXRfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9ycGNh dXRoX3JlZ2lzdGVyIHNtcF8yMjAxNTI3ZAojZGVmaW5lIHJwY2F1dGhfcmVnaXN0ZXIgX3NldF92 ZXIocnBjYXV0aF9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX3VucmVnaXN0ZXIgc21w XzJmMTgwZDQzCiNkZWZpbmUgcnBjYXV0aF91bnJlZ2lzdGVyIF9zZXRfdmVyKHJwY2F1dGhfdW5y ZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2luaXRfY3JlZGNhY2hlIHNtcF8zYTQ0MWEw NQojZGVmaW5lIHJwY2F1dGhfaW5pdF9jcmVkY2FjaGUgX3NldF92ZXIocnBjYXV0aF9pbml0X2Ny ZWRjYWNoZSkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2ZyZWVfY3JlZGNhY2hlIHNtcF81NzYyNGYy YQojZGVmaW5lIHJwY2F1dGhfZnJlZV9jcmVkY2FjaGUgX3NldF92ZXIocnBjYXV0aF9mcmVlX2Ny ZWRjYWNoZSkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2luc2VydF9jcmVkY2FjaGUgc21wX2IyZDFj OWM2CiNkZWZpbmUgcnBjYXV0aF9pbnNlcnRfY3JlZGNhY2hlIF9zZXRfdmVyKHJwY2F1dGhfaW5z ZXJ0X2NyZWRjYWNoZSkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2xvb2t1cGNyZWQgc21wXzdhYzQ2 ZjdjCiNkZWZpbmUgcnBjYXV0aF9sb29rdXBjcmVkIF9zZXRfdmVyKHJwY2F1dGhfbG9va3VwY3Jl ZCkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2JpbmRjcmVkIHNtcF8wMmJiZDRjOQojZGVmaW5lIHJw Y2F1dGhfYmluZGNyZWQgX3NldF92ZXIocnBjYXV0aF9iaW5kY3JlZCkKI2RlZmluZSBfX3Zlcl9y cGNhdXRoX21hdGNoY3JlZCBzbXBfZWY1YjYwMWQKI2RlZmluZSBycGNhdXRoX21hdGNoY3JlZCBf c2V0X3ZlcihycGNhdXRoX21hdGNoY3JlZCkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX3JlbGVhc2Vj cmVkIHNtcF85MzBkNWYwMwojZGVmaW5lIHJwY2F1dGhfcmVsZWFzZWNyZWQgX3NldF92ZXIocnBj YXV0aF9yZWxlYXNlY3JlZCkKI2RlZmluZSBfX3Zlcl9zdmNfY3JlYXRlIHNtcF9iZGE2ZTEyMAoj ZGVmaW5lIHN2Y19jcmVhdGUgX3NldF92ZXIoc3ZjX2NyZWF0ZSkKI2RlZmluZSBfX3Zlcl9zdmNf Y3JlYXRlX3RocmVhZCBzbXBfMWExMzM1ZTYKI2RlZmluZSBzdmNfY3JlYXRlX3RocmVhZCBfc2V0 X3ZlcihzdmNfY3JlYXRlX3RocmVhZCkKI2RlZmluZSBfX3Zlcl9zdmNfZXhpdF90aHJlYWQgc21w XzRkOWZiNTNiCiNkZWZpbmUgc3ZjX2V4aXRfdGhyZWFkIF9zZXRfdmVyKHN2Y19leGl0X3RocmVh ZCkKI2RlZmluZSBfX3Zlcl9zdmNfZGVzdHJveSBzbXBfZjE3N2IyMTUKI2RlZmluZSBzdmNfZGVz dHJveSBfc2V0X3ZlcihzdmNfZGVzdHJveSkKI2RlZmluZSBfX3Zlcl9zdmNfZHJvcCBzbXBfNDQ5 ZTFmNGYKI2RlZmluZSBzdmNfZHJvcCBfc2V0X3ZlcihzdmNfZHJvcCkKI2RlZmluZSBfX3Zlcl9z dmNfcHJvY2VzcyBzbXBfOGE1MWY3MWMKI2RlZmluZSBzdmNfcHJvY2VzcyBfc2V0X3ZlcihzdmNf cHJvY2VzcykKI2RlZmluZSBfX3Zlcl9zdmNfcmVjdiBzbXBfMjc4MDU4ZWMKI2RlZmluZSBzdmNf cmVjdiBfc2V0X3ZlcihzdmNfcmVjdikKI2RlZmluZSBfX3Zlcl9zdmNfd2FrZV91cCBzbXBfOTJl OWM3NTIKI2RlZmluZSBzdmNfd2FrZV91cCBfc2V0X3ZlcihzdmNfd2FrZV91cCkKI2RlZmluZSBf X3Zlcl9zdmNfbWFrZXNvY2sgc21wXzVlNDE4YWM3CiNkZWZpbmUgc3ZjX21ha2Vzb2NrIF9zZXRf dmVyKHN2Y19tYWtlc29jaykKI2RlZmluZSBfX3Zlcl9ycGNfcHJvY19yZWdpc3RlciBzbXBfM2U0 ZjFlYzkKI2RlZmluZSBycGNfcHJvY19yZWdpc3RlciBfc2V0X3ZlcihycGNfcHJvY19yZWdpc3Rl cikKI2RlZmluZSBfX3Zlcl9ycGNfcHJvY191bnJlZ2lzdGVyIHNtcF81YmQyNjAwMAojZGVmaW5l IHJwY19wcm9jX3VucmVnaXN0ZXIgX3NldF92ZXIocnBjX3Byb2NfdW5yZWdpc3RlcikKI2RlZmlu ZSBfX3Zlcl9ycGNfcHJvY19yZWFkIHNtcF84ZTIwZGUzNAojZGVmaW5lIHJwY19wcm9jX3JlYWQg X3NldF92ZXIocnBjX3Byb2NfcmVhZCkKI2RlZmluZSBfX3Zlcl9zdmNfcHJvY19yZWdpc3RlciBz bXBfZTI4ZWM4NGEKI2RlZmluZSBzdmNfcHJvY19yZWdpc3RlciBfc2V0X3ZlcihzdmNfcHJvY19y ZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9zdmNfcHJvY191bnJlZ2lzdGVyIHNtcF8xMmUyODBlMwoj ZGVmaW5lIHN2Y19wcm9jX3VucmVnaXN0ZXIgX3NldF92ZXIoc3ZjX3Byb2NfdW5yZWdpc3RlcikK I2RlZmluZSBfX3Zlcl9zdmNfcHJvY19yZWFkIHNtcF84NjZiNTJkMwojZGVmaW5lIHN2Y19wcm9j X3JlYWQgX3NldF92ZXIoc3ZjX3Byb2NfcmVhZCkKI2RlZmluZSBfX3Zlcl94ZHJfZW5jb2RlX2Fy cmF5IHNtcF80Nzk4N2FlZgojZGVmaW5lIHhkcl9lbmNvZGVfYXJyYXkgX3NldF92ZXIoeGRyX2Vu Y29kZV9hcnJheSkKI2RlZmluZSBfX3Zlcl94ZHJfZW5jb2RlX3N0cmluZyBzbXBfM2Q5YmI0MmMK I2RlZmluZSB4ZHJfZW5jb2RlX3N0cmluZyBfc2V0X3Zlcih4ZHJfZW5jb2RlX3N0cmluZykKI2Rl ZmluZSBfX3Zlcl94ZHJfZGVjb2RlX3N0cmluZyBzbXBfZTdlMDhjYmQKI2RlZmluZSB4ZHJfZGVj b2RlX3N0cmluZyBfc2V0X3Zlcih4ZHJfZGVjb2RlX3N0cmluZykKI2RlZmluZSBfX3Zlcl94ZHJf ZGVjb2RlX25ldG9iaiBzbXBfMWI0MzFjOGYKI2RlZmluZSB4ZHJfZGVjb2RlX25ldG9iaiBfc2V0 X3Zlcih4ZHJfZGVjb2RlX25ldG9iaikKI2RlZmluZSBfX3Zlcl94ZHJfZW5jb2RlX25ldG9iaiBz bXBfMDgzNjY3NDcKI2RlZmluZSB4ZHJfZW5jb2RlX25ldG9iaiBfc2V0X3Zlcih4ZHJfZW5jb2Rl X25ldG9iaikKI2RlZmluZSBfX3Zlcl94ZHJfemVybyBzbXBfNjYwMmVmOTUKI2RlZmluZSB4ZHJf emVybyBfc2V0X3Zlcih4ZHJfemVybykKI2RlZmluZSBfX3Zlcl94ZHJfb25lIHNtcF84M2NjYmYw NwojZGVmaW5lIHhkcl9vbmUgX3NldF92ZXIoeGRyX29uZSkKI2RlZmluZSBfX3Zlcl94ZHJfdHdv IHNtcF9lZGNjMWZlYwojZGVmaW5lIHhkcl90d28gX3NldF92ZXIoeGRyX3R3bykKI2RlZmluZSBf X3Zlcl94ZHJfc2hpZnRfaW92ZWMgc21wXzk0OWQxMmE1CiNkZWZpbmUgeGRyX3NoaWZ0X2lvdmVj IF9zZXRfdmVyKHhkcl9zaGlmdF9pb3ZlYykKI2RlZmluZSBfX3Zlcl94ZHJfemVyb19pb3ZlYyBz bXBfYmRkNTliZWYKI2RlZmluZSB4ZHJfemVyb19pb3ZlYyBfc2V0X3Zlcih4ZHJfemVyb19pb3Zl YykKI2RlZmluZSBfX3Zlcl9ycGNfc3VjY2VzcyBzbXBfYmZlZjU3YmYKI2RlZmluZSBycGNfc3Vj Y2VzcyBfc2V0X3ZlcihycGNfc3VjY2VzcykKI2RlZmluZSBfX3Zlcl9ycGNfZ2FyYmFnZV9hcmdz IHNtcF83NDcxODk1YwojZGVmaW5lIHJwY19nYXJiYWdlX2FyZ3MgX3NldF92ZXIocnBjX2dhcmJh Z2VfYXJncykKI2RlZmluZSBfX3Zlcl9ycGNfc3lzdGVtX2VyciBzbXBfZDRiYjQwNTQKI2RlZmlu ZSBycGNfc3lzdGVtX2VyciBfc2V0X3ZlcihycGNfc3lzdGVtX2VycikKI2RlZmluZSBfX3Zlcl9y cGNfZGVidWcgc21wXzMxYTg5ZDU5CiNkZWZpbmUgcnBjX2RlYnVnIF9zZXRfdmVyKHJwY19kZWJ1 ZykKI2RlZmluZSBfX3Zlcl9uZnNfZGVidWcgc21wX2FmNWJmNmVmCiNkZWZpbmUgbmZzX2RlYnVn IF9zZXRfdmVyKG5mc19kZWJ1ZykKI2RlZmluZSBfX3Zlcl9uZnNkX2RlYnVnIHNtcF9iZjlkMWI5 NgojZGVmaW5lIG5mc2RfZGVidWcgX3NldF92ZXIobmZzZF9kZWJ1ZykKI2RlZmluZSBfX3Zlcl9u bG1fZGVidWcgc21wXzUzNDQ1ZjY4CiNkZWZpbmUgbmxtX2RlYnVnIF9zZXRfdmVyKG5sbV9kZWJ1 ZykKIyAyMDggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zdS52 ZXIiIDEKI2RlZmluZSBfX3Zlcl9zdV9udW1fcG9ydHMgc21wXzg1MzE4MDRmCiNkZWZpbmUgc3Vf bnVtX3BvcnRzIF9zZXRfdmVyKHN1X251bV9wb3J0cykKIyAyMDkgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zd2lvdGxiLnZlciIgMQojZGVmaW5lIF9fdmVyX3N3 aW90bGJfaW5pdCBzbXBfY2NkNzE4OTAKI2RlZmluZSBzd2lvdGxiX2luaXQgX3NldF92ZXIoc3dp b3RsYl9pbml0KQojZGVmaW5lIF9fdmVyX3N3aW90bGJfbWFwX3NpbmdsZSBzbXBfNjA5NTUwMmQK I2RlZmluZSBzd2lvdGxiX21hcF9zaW5nbGUgX3NldF92ZXIoc3dpb3RsYl9tYXBfc2luZ2xlKQoj ZGVmaW5lIF9fdmVyX3N3aW90bGJfdW5tYXBfc2luZ2xlIHNtcF9lNjAzNTFhMwojZGVmaW5lIHN3 aW90bGJfdW5tYXBfc2luZ2xlIF9zZXRfdmVyKHN3aW90bGJfdW5tYXBfc2luZ2xlKQojZGVmaW5l IF9fdmVyX3N3aW90bGJfbWFwX3NnIHNtcF9iYTEzMjA0MgojZGVmaW5lIHN3aW90bGJfbWFwX3Nn IF9zZXRfdmVyKHN3aW90bGJfbWFwX3NnKQojZGVmaW5lIF9fdmVyX3N3aW90bGJfdW5tYXBfc2cg c21wXzA5NTJmZmM1CiNkZWZpbmUgc3dpb3RsYl91bm1hcF9zZyBfc2V0X3Zlcihzd2lvdGxiX3Vu bWFwX3NnKQojZGVmaW5lIF9fdmVyX3N3aW90bGJfc3luY19zaW5nbGUgc21wXzc5MmMzMTFmCiNk ZWZpbmUgc3dpb3RsYl9zeW5jX3NpbmdsZSBfc2V0X3Zlcihzd2lvdGxiX3N5bmNfc2luZ2xlKQoj ZGVmaW5lIF9fdmVyX3N3aW90bGJfc3luY19zZyBzbXBfNzMzYzczODMKI2RlZmluZSBzd2lvdGxi X3N5bmNfc2cgX3NldF92ZXIoc3dpb3RsYl9zeW5jX3NnKQojZGVmaW5lIF9fdmVyX3N3aW90bGJf ZG1hX2FkZHJlc3Mgc21wX2QzOTUzMWVmCiNkZWZpbmUgc3dpb3RsYl9kbWFfYWRkcmVzcyBfc2V0 X3Zlcihzd2lvdGxiX2RtYV9hZGRyZXNzKQojZGVmaW5lIF9fdmVyX3N3aW90bGJfYWxsb2NfY29u c2lzdGVudCBzbXBfMDFmNmQwNjEKI2RlZmluZSBzd2lvdGxiX2FsbG9jX2NvbnNpc3RlbnQgX3Nl dF92ZXIoc3dpb3RsYl9hbGxvY19jb25zaXN0ZW50KQojZGVmaW5lIF9fdmVyX3N3aW90bGJfZnJl ZV9jb25zaXN0ZW50IHNtcF9jOTA1ZWYzOQojZGVmaW5lIHN3aW90bGJfZnJlZV9jb25zaXN0ZW50 IF9zZXRfdmVyKHN3aW90bGJfZnJlZV9jb25zaXN0ZW50KQojIDIxMCAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3N5bXMudmVyIiAxCiNkZWZpbmUgX192ZXJfaGNp X3JlZ2lzdGVyX2RldiBzbXBfYzgxOWMwMDkKI2RlZmluZSBoY2lfcmVnaXN0ZXJfZGV2IF9zZXRf dmVyKGhjaV9yZWdpc3Rlcl9kZXYpCiNkZWZpbmUgX192ZXJfaGNpX3VucmVnaXN0ZXJfZGV2IHNt cF9hMTAxNTg3NwojZGVmaW5lIGhjaV91bnJlZ2lzdGVyX2RldiBfc2V0X3ZlcihoY2lfdW5yZWdp c3Rlcl9kZXYpCiNkZWZpbmUgX192ZXJfaGNpX3JlZ2lzdGVyX3Byb3RvIHNtcF9iOWMxZDNlYwoj ZGVmaW5lIGhjaV9yZWdpc3Rlcl9wcm90byBfc2V0X3ZlcihoY2lfcmVnaXN0ZXJfcHJvdG8pCiNk ZWZpbmUgX192ZXJfaGNpX3VucmVnaXN0ZXJfcHJvdG8gc21wXzk3N2I5NWQ5CiNkZWZpbmUgaGNp X3VucmVnaXN0ZXJfcHJvdG8gX3NldF92ZXIoaGNpX3VucmVnaXN0ZXJfcHJvdG8pCiNkZWZpbmUg X192ZXJfaGNpX3JlZ2lzdGVyX25vdGlmaWVyIHNtcF85ZjVjNzZlYQojZGVmaW5lIGhjaV9yZWdp c3Rlcl9ub3RpZmllciBfc2V0X3ZlcihoY2lfcmVnaXN0ZXJfbm90aWZpZXIpCiNkZWZpbmUgX192 ZXJfaGNpX3VucmVnaXN0ZXJfbm90aWZpZXIgc21wX2E0NTFkMjQ2CiNkZWZpbmUgaGNpX3VucmVn aXN0ZXJfbm90aWZpZXIgX3NldF92ZXIoaGNpX3VucmVnaXN0ZXJfbm90aWZpZXIpCiNkZWZpbmUg X192ZXJfaGNpX2Nvbm5lY3Qgc21wXzA0N2JmNTU1CiNkZWZpbmUgaGNpX2Nvbm5lY3QgX3NldF92 ZXIoaGNpX2Nvbm5lY3QpCiNkZWZpbmUgX192ZXJfaGNpX2Rpc2Nvbm5lY3Qgc21wXzgyY2M0NWI1 CiNkZWZpbmUgaGNpX2Rpc2Nvbm5lY3QgX3NldF92ZXIoaGNpX2Rpc2Nvbm5lY3QpCiNkZWZpbmUg X192ZXJfaGNpX2Rldl9nZXQgc21wX2ZlZmRjOTQ5CiNkZWZpbmUgaGNpX2Rldl9nZXQgX3NldF92 ZXIoaGNpX2Rldl9nZXQpCiNkZWZpbmUgX192ZXJfaGNpX3JlY3ZfZnJhbWUgc21wXzBkYWU0NGRm CiNkZWZpbmUgaGNpX3JlY3ZfZnJhbWUgX3NldF92ZXIoaGNpX3JlY3ZfZnJhbWUpCiNkZWZpbmUg X192ZXJfaGNpX3NlbmRfYWNsIHNtcF83YTUwZjEyNwojZGVmaW5lIGhjaV9zZW5kX2FjbCBfc2V0 X3ZlcihoY2lfc2VuZF9hY2wpCiNkZWZpbmUgX192ZXJfaGNpX3NlbmRfc2NvIHNtcF81YzRlOGMw YwojZGVmaW5lIGhjaV9zZW5kX3NjbyBfc2V0X3ZlcihoY2lfc2VuZF9zY28pCiNkZWZpbmUgX192 ZXJfaGNpX3NlbmRfcmF3IHNtcF9mNDU3ZTg5ZAojZGVmaW5lIGhjaV9zZW5kX3JhdyBfc2V0X3Zl cihoY2lfc2VuZF9yYXcpCiNkZWZpbmUgX192ZXJfYmx1ZXpfZHVtcCBzbXBfMTMyYmJmNjAKI2Rl ZmluZSBibHVlel9kdW1wIF9zZXRfdmVyKGJsdWV6X2R1bXApCiNkZWZpbmUgX192ZXJfYmFzd2Fw IHNtcF80MzAxM2M5MwojZGVmaW5lIGJhc3dhcCBfc2V0X3ZlcihiYXN3YXApCiNkZWZpbmUgX192 ZXJfYmF0b3N0ciBzbXBfMGNkN2Y1YTgKI2RlZmluZSBiYXRvc3RyIF9zZXRfdmVyKGJhdG9zdHIp CiNkZWZpbmUgX192ZXJfYnRlcnIgc21wX2YwNjY0NzljCiNkZWZpbmUgYnRlcnIgX3NldF92ZXIo YnRlcnIpCiNkZWZpbmUgX192ZXJfYmx1ZXpfc29ja19yZWdpc3RlciBzbXBfYjM2YmI1MzgKI2Rl ZmluZSBibHVlel9zb2NrX3JlZ2lzdGVyIF9zZXRfdmVyKGJsdWV6X3NvY2tfcmVnaXN0ZXIpCiNk ZWZpbmUgX192ZXJfYmx1ZXpfc29ja191bnJlZ2lzdGVyIHNtcF9jMTE5NDgwYQojZGVmaW5lIGJs dWV6X3NvY2tfdW5yZWdpc3RlciBfc2V0X3ZlcihibHVlel9zb2NrX3VucmVnaXN0ZXIpCiNkZWZp bmUgX192ZXJfYmx1ZXpfc29ja19saW5rIHNtcF8wN2FjMjNmOQojZGVmaW5lIGJsdWV6X3NvY2tf bGluayBfc2V0X3ZlcihibHVlel9zb2NrX2xpbmspCiNkZWZpbmUgX192ZXJfYmx1ZXpfc29ja191 bmxpbmsgc21wXzcyNzA5M2NjCiNkZWZpbmUgYmx1ZXpfc29ja191bmxpbmsgX3NldF92ZXIoYmx1 ZXpfc29ja191bmxpbmspCiMgMjExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4 L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4 L21vZHVsZXMvc3luY3BwcC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9zcHBwX2lucHV0IHNtcF8zOTZl YmVhMQojZGVmaW5lIHNwcHBfaW5wdXQgX3NldF92ZXIoc3BwcF9pbnB1dCkKI2RlZmluZSBfX3Zl cl9zcHBwX2Nsb3NlIHNtcF84YmJlNDM0YwojZGVmaW5lIHNwcHBfY2xvc2UgX3NldF92ZXIoc3Bw cF9jbG9zZSkKI2RlZmluZSBfX3Zlcl9zcHBwX29wZW4gc21wX2EwY2JjYmU5CiNkZWZpbmUgc3Bw cF9vcGVuIF9zZXRfdmVyKHNwcHBfb3BlbikKI2RlZmluZSBfX3Zlcl9zcHBwX3Jlb3BlbiBzbXBf YTMyZjQ5NDIKI2RlZmluZSBzcHBwX3Jlb3BlbiBfc2V0X3ZlcihzcHBwX3Jlb3BlbikKI2RlZmlu ZSBfX3Zlcl9zcHBwX2NoYW5nZV9tdHUgc21wXzc2YjBkZWFkCiNkZWZpbmUgc3BwcF9jaGFuZ2Vf bXR1IF9zZXRfdmVyKHNwcHBfY2hhbmdlX210dSkKI2RlZmluZSBfX3Zlcl9zcHBwX2RvX2lvY3Rs IHNtcF9iNmUyNTU2ZQojZGVmaW5lIHNwcHBfZG9faW9jdGwgX3NldF92ZXIoc3BwcF9kb19pb2N0 bCkKI2RlZmluZSBfX3Zlcl9zcHBwX2F0dGFjaCBzbXBfMTAzNDNmMGQKI2RlZmluZSBzcHBwX2F0 dGFjaCBfc2V0X3ZlcihzcHBwX2F0dGFjaCkKI2RlZmluZSBfX3Zlcl9zcHBwX2RldGFjaCBzbXBf NDExZGM1NjMKI2RlZmluZSBzcHBwX2RldGFjaCBfc2V0X3ZlcihzcHBwX2RldGFjaCkKIyAyMTIg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zeXNycS52ZXIiIDEK I2RlZmluZSBfX3Zlcl9zeXNycV9wb3dlcl9vZmYgc21wXzBjMjU3ODQ5CiNkZWZpbmUgc3lzcnFf cG93ZXJfb2ZmIF9zZXRfdmVyKHN5c3JxX3Bvd2VyX29mZikKIyAyMTMgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zeXMudmVyIiAxCiNkZWZpbmUgX192ZXJfbm90 aWZpZXJfY2hhaW5fcmVnaXN0ZXIgc21wXzYwY2VjM2I5CiNkZWZpbmUgbm90aWZpZXJfY2hhaW5f cmVnaXN0ZXIgX3NldF92ZXIobm90aWZpZXJfY2hhaW5fcmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJf bm90aWZpZXJfY2hhaW5fdW5yZWdpc3RlciBzbXBfZjA5OTY3OWMKI2RlZmluZSBub3RpZmllcl9j aGFpbl91bnJlZ2lzdGVyIF9zZXRfdmVyKG5vdGlmaWVyX2NoYWluX3VucmVnaXN0ZXIpCiNkZWZp bmUgX192ZXJfbm90aWZpZXJfY2FsbF9jaGFpbiBzbXBfMjg4NDY5NjIKI2RlZmluZSBub3RpZmll cl9jYWxsX2NoYWluIF9zZXRfdmVyKG5vdGlmaWVyX2NhbGxfY2hhaW4pCiNkZWZpbmUgX192ZXJf cmVnaXN0ZXJfcmVib290X25vdGlmaWVyIHNtcF8xY2M2NzE5YQojZGVmaW5lIHJlZ2lzdGVyX3Jl Ym9vdF9ub3RpZmllciBfc2V0X3ZlcihyZWdpc3Rlcl9yZWJvb3Rfbm90aWZpZXIpCiNkZWZpbmUg X192ZXJfdW5yZWdpc3Rlcl9yZWJvb3Rfbm90aWZpZXIgc21wXzM5ODBhYWMxCiNkZWZpbmUgdW5y ZWdpc3Rlcl9yZWJvb3Rfbm90aWZpZXIgX3NldF92ZXIodW5yZWdpc3Rlcl9yZWJvb3Rfbm90aWZp ZXIpCiNkZWZpbmUgX192ZXJfaW5fZ3JvdXBfcCBzbXBfMzFlYmFkY2QKI2RlZmluZSBpbl9ncm91 cF9wIF9zZXRfdmVyKGluX2dyb3VwX3ApCiNkZWZpbmUgX192ZXJfaW5fZWdyb3VwX3Agc21wXzQy YTRiZGYyCiNkZWZpbmUgaW5fZWdyb3VwX3AgX3NldF92ZXIoaW5fZWdyb3VwX3ApCiMgMjE0ICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdGMudmVyIiAxCiMgMjE1 ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAx ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdGRmeF9kcnYudmVy IiAxCiMgMjE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdG1z MzgwdHIudmVyIiAxCiMgMjE3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v ZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v ZHVsZXMvdHR5X2lvY3RsLnZlciIgMQojIDIxOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9tb2R1bGVzL3R0eV9pby52ZXIiIDEKI2RlZmluZSBfX3Zlcl90dHlfcmVnaXN0ZXJf ZGV2ZnMgc21wXzI3MWYxMjM0CiNkZWZpbmUgdHR5X3JlZ2lzdGVyX2RldmZzIF9zZXRfdmVyKHR0 eV9yZWdpc3Rlcl9kZXZmcykKI2RlZmluZSBfX3Zlcl90dHlfdW5yZWdpc3Rlcl9kZXZmcyBzbXBf MDA4YTdhNDIKI2RlZmluZSB0dHlfdW5yZWdpc3Rlcl9kZXZmcyBfc2V0X3Zlcih0dHlfdW5yZWdp c3Rlcl9kZXZmcykKIyAyMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k dmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k dWxlcy91YXJ0NDAxLnZlciIgMQojZGVmaW5lIF9fdmVyX3Byb2JlX3VhcnQ0MDEgc21wXzM2ZmFj OThjCiNkZWZpbmUgcHJvYmVfdWFydDQwMSBfc2V0X3Zlcihwcm9iZV91YXJ0NDAxKQojZGVmaW5l IF9fdmVyX3VubG9hZF91YXJ0NDAxIHNtcF9lY2ZkZDljOQojZGVmaW5lIHVubG9hZF91YXJ0NDAx IF9zZXRfdmVyKHVubG9hZF91YXJ0NDAxKQojZGVmaW5lIF9fdmVyX3VhcnQ0MDFpbnRyIHNtcF8x ZDExNjQ2YwojZGVmaW5lIHVhcnQ0MDFpbnRyIF9zZXRfdmVyKHVhcnQ0MDFpbnRyKQojIDIyMCAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3VQRDk4NDAyLnZlciIg MQojIDIyMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3VzYnNl cmlhbC52ZXIiIDEKI2RlZmluZSBfX3Zlcl91c2Jfc2VyaWFsX3JlZ2lzdGVyIHNtcF8yOTQ2OTdj NwojZGVmaW5lIHVzYl9zZXJpYWxfcmVnaXN0ZXIgX3NldF92ZXIodXNiX3NlcmlhbF9yZWdpc3Rl cikKI2RlZmluZSBfX3Zlcl91c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgc21wX2ZmOGNjZDc3CiNkZWZp bmUgdXNiX3NlcmlhbF9kZXJlZ2lzdGVyIF9zZXRfdmVyKHVzYl9zZXJpYWxfZGVyZWdpc3RlcikK I2RlZmluZSBfX3Zlcl9lenVzYl93cml0ZW1lbW9yeSBzbXBfMjQwNDYxNmIKI2RlZmluZSBlenVz Yl93cml0ZW1lbW9yeSBfc2V0X3ZlcihlenVzYl93cml0ZW1lbW9yeSkKI2RlZmluZSBfX3Zlcl9l enVzYl9zZXRfcmVzZXQgc21wX2JlOTg4OTBiCiNkZWZpbmUgZXp1c2Jfc2V0X3Jlc2V0IF9zZXRf dmVyKGV6dXNiX3NldF9yZXNldCkKIyAyMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvbW9kdWxlcy91c2IudmVyIiAxCiNkZWZpbmUgX192ZXJfdXNiX2lmbnVtX3RvX2lmIHNt cF80N2MxOGEwMwojZGVmaW5lIHVzYl9pZm51bV90b19pZiBfc2V0X3Zlcih1c2JfaWZudW1fdG9f aWYpCiNkZWZpbmUgX192ZXJfdXNiX2VwbnVtX3RvX2VwX2Rlc2Mgc21wX2JiMjg4NTA0CiNkZWZp bmUgdXNiX2VwbnVtX3RvX2VwX2Rlc2MgX3NldF92ZXIodXNiX2VwbnVtX3RvX2VwX2Rlc2MpCiNk ZWZpbmUgX192ZXJfdXNiX3JlZ2lzdGVyIHNtcF8wMjcyOWQzNQojZGVmaW5lIHVzYl9yZWdpc3Rl ciBfc2V0X3Zlcih1c2JfcmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfdXNiX2RlcmVnaXN0ZXIgc21w X2M1MzIzNzg0CiNkZWZpbmUgdXNiX2RlcmVnaXN0ZXIgX3NldF92ZXIodXNiX2RlcmVnaXN0ZXIp CiNkZWZpbmUgX192ZXJfdXNiX3NjYW5fZGV2aWNlcyBzbXBfY2E0ZjYzMDEKI2RlZmluZSB1c2Jf c2Nhbl9kZXZpY2VzIF9zZXRfdmVyKHVzYl9zY2FuX2RldmljZXMpCiNkZWZpbmUgX192ZXJfdXNi X2FsbG9jX2J1cyBzbXBfYzdkN2Y0OWQKI2RlZmluZSB1c2JfYWxsb2NfYnVzIF9zZXRfdmVyKHVz Yl9hbGxvY19idXMpCiNkZWZpbmUgX192ZXJfdXNiX2ZyZWVfYnVzIHNtcF9jYmU4Y2QzOAojZGVm aW5lIHVzYl9mcmVlX2J1cyBfc2V0X3Zlcih1c2JfZnJlZV9idXMpCiNkZWZpbmUgX192ZXJfdXNi X3JlZ2lzdGVyX2J1cyBzbXBfNWJlODgyNjIKI2RlZmluZSB1c2JfcmVnaXN0ZXJfYnVzIF9zZXRf dmVyKHVzYl9yZWdpc3Rlcl9idXMpCiNkZWZpbmUgX192ZXJfdXNiX2RlcmVnaXN0ZXJfYnVzIHNt cF8yMzljODFhZQojZGVmaW5lIHVzYl9kZXJlZ2lzdGVyX2J1cyBfc2V0X3Zlcih1c2JfZGVyZWdp c3Rlcl9idXMpCiNkZWZpbmUgX192ZXJfdXNiX2FsbG9jX2RldiBzbXBfZjlhMWJkZjIKI2RlZmlu ZSB1c2JfYWxsb2NfZGV2IF9zZXRfdmVyKHVzYl9hbGxvY19kZXYpCiNkZWZpbmUgX192ZXJfdXNi X2ZyZWVfZGV2IHNtcF9mMDc1ZWRjYwojZGVmaW5lIHVzYl9mcmVlX2RldiBfc2V0X3Zlcih1c2Jf ZnJlZV9kZXYpCiNkZWZpbmUgX192ZXJfdXNiX2luY19kZXZfdXNlIHNtcF81MzIyMmYyOAojZGVm aW5lIHVzYl9pbmNfZGV2X3VzZSBfc2V0X3Zlcih1c2JfaW5jX2Rldl91c2UpCiNkZWZpbmUgX192 ZXJfdXNiX2RyaXZlcl9jbGFpbV9pbnRlcmZhY2Ugc21wXzM1NjRmMmMxCiNkZWZpbmUgdXNiX2Ry aXZlcl9jbGFpbV9pbnRlcmZhY2UgX3NldF92ZXIodXNiX2RyaXZlcl9jbGFpbV9pbnRlcmZhY2Up CiNkZWZpbmUgX192ZXJfdXNiX2ludGVyZmFjZV9jbGFpbWVkIHNtcF9jYjhmZDk5NgojZGVmaW5l IHVzYl9pbnRlcmZhY2VfY2xhaW1lZCBfc2V0X3Zlcih1c2JfaW50ZXJmYWNlX2NsYWltZWQpCiNk ZWZpbmUgX192ZXJfdXNiX2RyaXZlcl9yZWxlYXNlX2ludGVyZmFjZSBzbXBfMDZhYTg2NGUKI2Rl ZmluZSB1c2JfZHJpdmVyX3JlbGVhc2VfaW50ZXJmYWNlIF9zZXRfdmVyKHVzYl9kcml2ZXJfcmVs ZWFzZV9pbnRlcmZhY2UpCiNkZWZpbmUgX192ZXJfdXNiX21hdGNoX2lkIHNtcF8zOWU3NDZhMAoj ZGVmaW5lIHVzYl9tYXRjaF9pZCBfc2V0X3Zlcih1c2JfbWF0Y2hfaWQpCiNkZWZpbmUgX192ZXJf dXNiX3Jvb3RfaHViX3N0cmluZyBzbXBfYTY4NzE4ZjAKI2RlZmluZSB1c2Jfcm9vdF9odWJfc3Ry aW5nIF9zZXRfdmVyKHVzYl9yb290X2h1Yl9zdHJpbmcpCiNkZWZpbmUgX192ZXJfdXNiX25ld19k ZXZpY2Ugc21wXzNmNTA3ZjAyCiNkZWZpbmUgdXNiX25ld19kZXZpY2UgX3NldF92ZXIodXNiX25l d19kZXZpY2UpCiNkZWZpbmUgX192ZXJfdXNiX3Jlc2V0X2RldmljZSBzbXBfOWRmNTRkNGIKI2Rl ZmluZSB1c2JfcmVzZXRfZGV2aWNlIF9zZXRfdmVyKHVzYl9yZXNldF9kZXZpY2UpCiNkZWZpbmUg X192ZXJfdXNiX2Nvbm5lY3Qgc21wXzgxNjVhMTU4CiNkZWZpbmUgdXNiX2Nvbm5lY3QgX3NldF92 ZXIodXNiX2Nvbm5lY3QpCiNkZWZpbmUgX192ZXJfdXNiX2Rpc2Nvbm5lY3Qgc21wXzk3NmY1YTVk CiNkZWZpbmUgdXNiX2Rpc2Nvbm5lY3QgX3NldF92ZXIodXNiX2Rpc2Nvbm5lY3QpCiNkZWZpbmUg X192ZXJfdXNiX2NoZWNrX2JhbmR3aWR0aCBzbXBfOGVkNzM4NGYKI2RlZmluZSB1c2JfY2hlY2tf YmFuZHdpZHRoIF9zZXRfdmVyKHVzYl9jaGVja19iYW5kd2lkdGgpCiNkZWZpbmUgX192ZXJfdXNi X2NsYWltX2JhbmR3aWR0aCBzbXBfMTMyZjYwMTUKI2RlZmluZSB1c2JfY2xhaW1fYmFuZHdpZHRo IF9zZXRfdmVyKHVzYl9jbGFpbV9iYW5kd2lkdGgpCiNkZWZpbmUgX192ZXJfdXNiX3JlbGVhc2Vf YmFuZHdpZHRoIHNtcF8zOTEzOTg2MwojZGVmaW5lIHVzYl9yZWxlYXNlX2JhbmR3aWR0aCBfc2V0 X3Zlcih1c2JfcmVsZWFzZV9iYW5kd2lkdGgpCiNkZWZpbmUgX192ZXJfdXNiX3NldF9hZGRyZXNz IHNtcF8yMDdlOTlhZQojZGVmaW5lIHVzYl9zZXRfYWRkcmVzcyBfc2V0X3Zlcih1c2Jfc2V0X2Fk ZHJlc3MpCiNkZWZpbmUgX192ZXJfdXNiX2dldF9kZXNjcmlwdG9yIHNtcF81MDAwZTU4ZgojZGVm aW5lIHVzYl9nZXRfZGVzY3JpcHRvciBfc2V0X3Zlcih1c2JfZ2V0X2Rlc2NyaXB0b3IpCiNkZWZp bmUgX192ZXJfdXNiX2dldF9jbGFzc19kZXNjcmlwdG9yIHNtcF8zYTQwYTI2YwojZGVmaW5lIHVz Yl9nZXRfY2xhc3NfZGVzY3JpcHRvciBfc2V0X3Zlcih1c2JfZ2V0X2NsYXNzX2Rlc2NyaXB0b3Ip CiNkZWZpbmUgX192ZXJfX191c2JfZ2V0X2V4dHJhX2Rlc2NyaXB0b3Igc21wXzk5MjRjNDk2CiNk ZWZpbmUgX191c2JfZ2V0X2V4dHJhX2Rlc2NyaXB0b3IgX3NldF92ZXIoX191c2JfZ2V0X2V4dHJh X2Rlc2NyaXB0b3IpCiNkZWZpbmUgX192ZXJfdXNiX2dldF9kZXZpY2VfZGVzY3JpcHRvciBzbXBf M2E5NWU1ZjAKI2RlZmluZSB1c2JfZ2V0X2RldmljZV9kZXNjcmlwdG9yIF9zZXRfdmVyKHVzYl9n ZXRfZGV2aWNlX2Rlc2NyaXB0b3IpCiNkZWZpbmUgX192ZXJfdXNiX2dldF9zdHJpbmcgc21wXzNk OTI3NjA2CiNkZWZpbmUgdXNiX2dldF9zdHJpbmcgX3NldF92ZXIodXNiX2dldF9zdHJpbmcpCiNk ZWZpbmUgX192ZXJfdXNiX3N0cmluZyBzbXBfMWM4Y2E1M2UKI2RlZmluZSB1c2Jfc3RyaW5nIF9z ZXRfdmVyKHVzYl9zdHJpbmcpCiNkZWZpbmUgX192ZXJfdXNiX2dldF9wcm90b2NvbCBzbXBfNjc4 Mjk1N2EKI2RlZmluZSB1c2JfZ2V0X3Byb3RvY29sIF9zZXRfdmVyKHVzYl9nZXRfcHJvdG9jb2wp CiNkZWZpbmUgX192ZXJfdXNiX3NldF9wcm90b2NvbCBzbXBfNzdiMjBkOGMKI2RlZmluZSB1c2Jf c2V0X3Byb3RvY29sIF9zZXRfdmVyKHVzYl9zZXRfcHJvdG9jb2wpCiNkZWZpbmUgX192ZXJfdXNi X2dldF9yZXBvcnQgc21wXzExNDIzOTM4CiNkZWZpbmUgdXNiX2dldF9yZXBvcnQgX3NldF92ZXIo dXNiX2dldF9yZXBvcnQpCiNkZWZpbmUgX192ZXJfdXNiX3NldF9yZXBvcnQgc21wX2M5ZWRmNWU3 CiNkZWZpbmUgdXNiX3NldF9yZXBvcnQgX3NldF92ZXIodXNiX3NldF9yZXBvcnQpCiNkZWZpbmUg X192ZXJfdXNiX3NldF9pZGxlIHNtcF84OTRiZjk2MQojZGVmaW5lIHVzYl9zZXRfaWRsZSBfc2V0 X3Zlcih1c2Jfc2V0X2lkbGUpCiNkZWZpbmUgX192ZXJfdXNiX2NsZWFyX2hhbHQgc21wX2YwOTZk ZDA3CiNkZWZpbmUgdXNiX2NsZWFyX2hhbHQgX3NldF92ZXIodXNiX2NsZWFyX2hhbHQpCiNkZWZp bmUgX192ZXJfdXNiX3NldF9pbnRlcmZhY2Ugc21wX2NkODMxZTQ4CiNkZWZpbmUgdXNiX3NldF9p bnRlcmZhY2UgX3NldF92ZXIodXNiX3NldF9pbnRlcmZhY2UpCiNkZWZpbmUgX192ZXJfdXNiX2dl dF9jb25maWd1cmF0aW9uIHNtcF80NDkwNTMwYwojZGVmaW5lIHVzYl9nZXRfY29uZmlndXJhdGlv biBfc2V0X3Zlcih1c2JfZ2V0X2NvbmZpZ3VyYXRpb24pCiNkZWZpbmUgX192ZXJfdXNiX3NldF9j b25maWd1cmF0aW9uIHNtcF84NWU4YzcyYwojZGVmaW5lIHVzYl9zZXRfY29uZmlndXJhdGlvbiBf c2V0X3Zlcih1c2Jfc2V0X2NvbmZpZ3VyYXRpb24pCiNkZWZpbmUgX192ZXJfdXNiX2dldF9jdXJy ZW50X2ZyYW1lX251bWJlciBzbXBfMTAwN2JjMmMKI2RlZmluZSB1c2JfZ2V0X2N1cnJlbnRfZnJh bWVfbnVtYmVyIF9zZXRfdmVyKHVzYl9nZXRfY3VycmVudF9mcmFtZV9udW1iZXIpCiNkZWZpbmUg X192ZXJfdXNiX2FsbG9jX3VyYiBzbXBfYjg5NTQxYmQKI2RlZmluZSB1c2JfYWxsb2NfdXJiIF9z ZXRfdmVyKHVzYl9hbGxvY191cmIpCiNkZWZpbmUgX192ZXJfdXNiX2ZyZWVfdXJiIHNtcF82Yzc4 YjA1ZQojZGVmaW5lIHVzYl9mcmVlX3VyYiBfc2V0X3Zlcih1c2JfZnJlZV91cmIpCiNkZWZpbmUg X192ZXJfdXNiX3N1Ym1pdF91cmIgc21wXzI5MGQxYTJmCiNkZWZpbmUgdXNiX3N1Ym1pdF91cmIg X3NldF92ZXIodXNiX3N1Ym1pdF91cmIpCiNkZWZpbmUgX192ZXJfdXNiX3VubGlua191cmIgc21w X2NjYmZhOWFiCiNkZWZpbmUgdXNiX3VubGlua191cmIgX3NldF92ZXIodXNiX3VubGlua191cmIp CiNkZWZpbmUgX192ZXJfdXNiX2NvbnRyb2xfbXNnIHNtcF9jMDQxY2Q0NgojZGVmaW5lIHVzYl9j b250cm9sX21zZyBfc2V0X3Zlcih1c2JfY29udHJvbF9tc2cpCiNkZWZpbmUgX192ZXJfdXNiX2J1 bGtfbXNnIHNtcF80OTRlMmU0YQojZGVmaW5lIHVzYl9idWxrX21zZyBfc2V0X3Zlcih1c2JfYnVs a19tc2cpCiNkZWZpbmUgX192ZXJfdXNiX2RldmZzX2hhbmRsZSBzbXBfZTljNWY4N2YKI2RlZmlu ZSB1c2JfZGV2ZnNfaGFuZGxlIF9zZXRfdmVyKHVzYl9kZXZmc19oYW5kbGUpCiMgMjIzICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdXNlbWEudmVyIiAxCiMgMjI0 ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAx ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdXRpbC52ZXIiIDEK I2RlZmluZSBfX3Zlcl9kZXZmc19yZWdpc3Rlcl90YXBlIHNtcF9iOGQ2MThlOAojZGVmaW5lIGRl dmZzX3JlZ2lzdGVyX3RhcGUgX3NldF92ZXIoZGV2ZnNfcmVnaXN0ZXJfdGFwZSkKI2RlZmluZSBf X3Zlcl9kZXZmc19yZWdpc3Rlcl9zZXJpZXMgc21wXzNhZjFjNjYwCiNkZWZpbmUgZGV2ZnNfcmVn aXN0ZXJfc2VyaWVzIF9zZXRfdmVyKGRldmZzX3JlZ2lzdGVyX3NlcmllcykKI2RlZmluZSBfX3Zl cl9kZXZmc19hbGxvY19tYWpvciBzbXBfMTkwZTNiYmMKI2RlZmluZSBkZXZmc19hbGxvY19tYWpv ciBfc2V0X3ZlcihkZXZmc19hbGxvY19tYWpvcikKI2RlZmluZSBfX3Zlcl9kZXZmc19kZWFsbG9j X21ham9yIHNtcF9jZTlkZTQxZAojZGVmaW5lIGRldmZzX2RlYWxsb2NfbWFqb3IgX3NldF92ZXIo ZGV2ZnNfZGVhbGxvY19tYWpvcikKI2RlZmluZSBfX3Zlcl9kZXZmc19hbGxvY19kZXZudW0gc21w XzBiMzVjNTdmCiNkZWZpbmUgZGV2ZnNfYWxsb2NfZGV2bnVtIF9zZXRfdmVyKGRldmZzX2FsbG9j X2Rldm51bSkKI2RlZmluZSBfX3Zlcl9kZXZmc19kZWFsbG9jX2Rldm51bSBzbXBfNzRlODU2ZTkK I2RlZmluZSBkZXZmc19kZWFsbG9jX2Rldm51bSBfc2V0X3ZlcihkZXZmc19kZWFsbG9jX2Rldm51 bSkKI2RlZmluZSBfX3Zlcl9kZXZmc19hbGxvY191bmlxdWVfbnVtYmVyIHNtcF80NDRmNDEyZAoj ZGVmaW5lIGRldmZzX2FsbG9jX3VuaXF1ZV9udW1iZXIgX3NldF92ZXIoZGV2ZnNfYWxsb2NfdW5p cXVlX251bWJlcikKI2RlZmluZSBfX3Zlcl9kZXZmc19kZWFsbG9jX3VuaXF1ZV9udW1iZXIgc21w XzliZjNmZjA4CiNkZWZpbmUgZGV2ZnNfZGVhbGxvY191bmlxdWVfbnVtYmVyIF9zZXRfdmVyKGRl dmZzX2RlYWxsb2NfdW5pcXVlX251bWJlcikKIyAyMjUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvbGludXgvbW9kdWxlcy92ZmF0ZnNfc3ltcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl92ZmF0 X2NyZWF0ZSBzbXBfMDgwNWY2ZjYKI2RlZmluZSB2ZmF0X2NyZWF0ZSBfc2V0X3Zlcih2ZmF0X2Ny ZWF0ZSkKI2RlZmluZSBfX3Zlcl92ZmF0X3VubGluayBzbXBfYTVhYmE0ZmEKI2RlZmluZSB2ZmF0 X3VubGluayBfc2V0X3Zlcih2ZmF0X3VubGluaykKI2RlZmluZSBfX3Zlcl92ZmF0X21rZGlyIHNt cF8xMmE4YTExYwojZGVmaW5lIHZmYXRfbWtkaXIgX3NldF92ZXIodmZhdF9ta2RpcikKI2RlZmlu ZSBfX3Zlcl92ZmF0X3JtZGlyIHNtcF9hNGY3NGExNQojZGVmaW5lIHZmYXRfcm1kaXIgX3NldF92 ZXIodmZhdF9ybWRpcikKI2RlZmluZSBfX3Zlcl92ZmF0X3JlbmFtZSBzbXBfNDllY2RiMjMKI2Rl ZmluZSB2ZmF0X3JlbmFtZSBfc2V0X3Zlcih2ZmF0X3JlbmFtZSkKI2RlZmluZSBfX3Zlcl92ZmF0 X3JlYWRfc3VwZXIgc21wX2YyOTdlNTFhCiNkZWZpbmUgdmZhdF9yZWFkX3N1cGVyIF9zZXRfdmVy KHZmYXRfcmVhZF9zdXBlcikKI2RlZmluZSBfX3Zlcl92ZmF0X2xvb2t1cCBzbXBfZTE2ZWFiZDMK I2RlZmluZSB2ZmF0X2xvb2t1cCBfc2V0X3Zlcih2ZmF0X2xvb2t1cCkKIyAyMjYgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy92aWRlb2Rldi52ZXIiIDEKI2RlZmlu ZSBfX3Zlcl92aWRlb19wcm9jX2VudHJ5IHNtcF9hZDE2MmE0NgojZGVmaW5lIHZpZGVvX3Byb2Nf ZW50cnkgX3NldF92ZXIodmlkZW9fcHJvY19lbnRyeSkKI2RlZmluZSBfX3Zlcl92aWRlb19yZWdp c3Rlcl9kZXZpY2Ugc21wX2E1ZTI2ZjI0CiNkZWZpbmUgdmlkZW9fcmVnaXN0ZXJfZGV2aWNlIF9z ZXRfdmVyKHZpZGVvX3JlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl92aWRlb191bnJlZ2lz dGVyX2RldmljZSBzbXBfNTc2YzE0ZTcKI2RlZmluZSB2aWRlb191bnJlZ2lzdGVyX2RldmljZSBf c2V0X3Zlcih2aWRlb191bnJlZ2lzdGVyX2RldmljZSkKIyAyMjcgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy93YW5tYWluLnZlciIgMQojZGVmaW5lIF9fdmVyX3Jl Z2lzdGVyX3dhbl9kZXZpY2Ugc21wXzQ2OGRhZGE3CiNkZWZpbmUgcmVnaXN0ZXJfd2FuX2Rldmlj ZSBfc2V0X3ZlcihyZWdpc3Rlcl93YW5fZGV2aWNlKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJf d2FuX2RldmljZSBzbXBfMGViZTAzZDEKI2RlZmluZSB1bnJlZ2lzdGVyX3dhbl9kZXZpY2UgX3Nl dF92ZXIodW5yZWdpc3Rlcl93YW5fZGV2aWNlKQojZGVmaW5lIF9fdmVyX3dhbnJvdXRlcl9lbmNh cHN1bGF0ZSBzbXBfYjEzZDU4MzgKI2RlZmluZSB3YW5yb3V0ZXJfZW5jYXBzdWxhdGUgX3NldF92 ZXIod2Fucm91dGVyX2VuY2Fwc3VsYXRlKQojZGVmaW5lIF9fdmVyX3dhbnJvdXRlcl90eXBlX3Ry YW5zIHNtcF9mYmNjNTM1MgojZGVmaW5lIHdhbnJvdXRlcl90eXBlX3RyYW5zIF9zZXRfdmVyKHdh bnJvdXRlcl90eXBlX3RyYW5zKQojZGVmaW5lIF9fdmVyX2xvY2tfYWRhcHRlcl9pcnEgc21wXzdl NmFlMjYzCiNkZWZpbmUgbG9ja19hZGFwdGVyX2lycSBfc2V0X3Zlcihsb2NrX2FkYXB0ZXJfaXJx KQojZGVmaW5lIF9fdmVyX3VubG9ja19hZGFwdGVyX2lycSBzbXBfMWU3YjlhNDMKI2RlZmluZSB1 bmxvY2tfYWRhcHRlcl9pcnEgX3NldF92ZXIodW5sb2NrX2FkYXB0ZXJfaXJxKQojIDIyOCAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3hvci52ZXIiIDEKI2RlZmlu ZSBfX3Zlcl94b3JfYmxvY2sgc21wX2ZlODUwODM4CiNkZWZpbmUgeG9yX2Jsb2NrIF9zZXRfdmVy KHhvcl9ibG9jaykKIyAyMjkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k dmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k dWxlcy95ZW50YS52ZXIiIDEKI2RlZmluZSBfX3Zlcl95ZW50YV9vcGVyYXRpb25zIHNtcF83ZGM5 NmM3ZAojZGVmaW5lIHllbnRhX29wZXJhdGlvbnMgX3NldF92ZXIoeWVudGFfb3BlcmF0aW9ucykK IyAyMzAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy96ODUyMzAu dmVyIiAxCiNkZWZpbmUgX192ZXJfejg1MzBfZGVhZF9wb3J0IHNtcF84YjA2MDU3MAojZGVmaW5l IHo4NTMwX2RlYWRfcG9ydCBfc2V0X3Zlcih6ODUzMF9kZWFkX3BvcnQpCiNkZWZpbmUgX192ZXJf ejg1MzBfaGRsY19raWxvc3RyZWFtIHNtcF9lZWIyNTViYwojZGVmaW5lIHo4NTMwX2hkbGNfa2ls b3N0cmVhbSBfc2V0X3Zlcih6ODUzMF9oZGxjX2tpbG9zdHJlYW0pCiNkZWZpbmUgX192ZXJfejg1 MzBfaGRsY19raWxvc3RyZWFtXzg1MjMwIHNtcF8wMzFmODZhYQojZGVmaW5lIHo4NTMwX2hkbGNf a2lsb3N0cmVhbV84NTIzMCBfc2V0X3Zlcih6ODUzMF9oZGxjX2tpbG9zdHJlYW1fODUyMzApCiNk ZWZpbmUgX192ZXJfejg1MzBfc3luYyBzbXBfMjgwZGRlZTAKI2RlZmluZSB6ODUzMF9zeW5jIF9z ZXRfdmVyKHo4NTMwX3N5bmMpCiNkZWZpbmUgX192ZXJfejg1MzBfZG1hX3N5bmMgc21wXzFiZTQ1 Mzc0CiNkZWZpbmUgejg1MzBfZG1hX3N5bmMgX3NldF92ZXIoejg1MzBfZG1hX3N5bmMpCiNkZWZp bmUgX192ZXJfejg1MzBfdHhkbWFfc3luYyBzbXBfOTMzYzFkZWQKI2RlZmluZSB6ODUzMF90eGRt YV9zeW5jIF9zZXRfdmVyKHo4NTMwX3R4ZG1hX3N5bmMpCiNkZWZpbmUgX192ZXJfejg1MzBfbm9w IHNtcF84MTQwNzE0YgojZGVmaW5lIHo4NTMwX25vcCBfc2V0X3Zlcih6ODUzMF9ub3ApCiNkZWZp bmUgX192ZXJfejg1MzBfaW50ZXJydXB0IHNtcF8xNTRjOTlhZQojZGVmaW5lIHo4NTMwX2ludGVy cnVwdCBfc2V0X3Zlcih6ODUzMF9pbnRlcnJ1cHQpCiNkZWZpbmUgX192ZXJfejg1MzBfc3luY19v cGVuIHNtcF8wOGFiZjcwNwojZGVmaW5lIHo4NTMwX3N5bmNfb3BlbiBfc2V0X3Zlcih6ODUzMF9z eW5jX29wZW4pCiNkZWZpbmUgX192ZXJfejg1MzBfc3luY19jbG9zZSBzbXBfYjc1NmQ5YzIKI2Rl ZmluZSB6ODUzMF9zeW5jX2Nsb3NlIF9zZXRfdmVyKHo4NTMwX3N5bmNfY2xvc2UpCiNkZWZpbmUg X192ZXJfejg1MzBfc3luY19kbWFfb3BlbiBzbXBfM2Y0ZDBjN2UKI2RlZmluZSB6ODUzMF9zeW5j X2RtYV9vcGVuIF9zZXRfdmVyKHo4NTMwX3N5bmNfZG1hX29wZW4pCiNkZWZpbmUgX192ZXJfejg1 MzBfc3luY19kbWFfY2xvc2Ugc21wXzllYjhmNmExCiNkZWZpbmUgejg1MzBfc3luY19kbWFfY2xv c2UgX3NldF92ZXIoejg1MzBfc3luY19kbWFfY2xvc2UpCiNkZWZpbmUgX192ZXJfejg1MzBfc3lu Y190eGRtYV9vcGVuIHNtcF8wMDViMDZjOQojZGVmaW5lIHo4NTMwX3N5bmNfdHhkbWFfb3BlbiBf c2V0X3Zlcih6ODUzMF9zeW5jX3R4ZG1hX29wZW4pCiNkZWZpbmUgX192ZXJfejg1MzBfc3luY190 eGRtYV9jbG9zZSBzbXBfY2I4MmM2ODQKI2RlZmluZSB6ODUzMF9zeW5jX3R4ZG1hX2Nsb3NlIF9z ZXRfdmVyKHo4NTMwX3N5bmNfdHhkbWFfY2xvc2UpCiNkZWZpbmUgX192ZXJfejg1MzBfZGVzY3Jp YmUgc21wXzdjZmI1M2NmCiNkZWZpbmUgejg1MzBfZGVzY3JpYmUgX3NldF92ZXIoejg1MzBfZGVz Y3JpYmUpCiNkZWZpbmUgX192ZXJfejg1MzBfaW5pdCBzbXBfMDdjMjE3ZWUKI2RlZmluZSB6ODUz MF9pbml0IF9zZXRfdmVyKHo4NTMwX2luaXQpCiNkZWZpbmUgX192ZXJfejg1MzBfc2h1dGRvd24g c21wX2E3Mjg2MWUxCiNkZWZpbmUgejg1MzBfc2h1dGRvd24gX3NldF92ZXIoejg1MzBfc2h1dGRv d24pCiNkZWZpbmUgX192ZXJfejg1MzBfY2hhbm5lbF9sb2FkIHNtcF9hZTA4NTg3OAojZGVmaW5l IHo4NTMwX2NoYW5uZWxfbG9hZCBfc2V0X3Zlcih6ODUzMF9jaGFubmVsX2xvYWQpCiNkZWZpbmUg X192ZXJfejg1MzBfbnVsbF9yeCBzbXBfZDlmY2M2MDcKI2RlZmluZSB6ODUzMF9udWxsX3J4IF9z ZXRfdmVyKHo4NTMwX251bGxfcngpCiNkZWZpbmUgX192ZXJfejg1MzBfcXVldWVfeG1pdCBzbXBf ZDk3YWE3YmUKI2RlZmluZSB6ODUzMF9xdWV1ZV94bWl0IF9zZXRfdmVyKHo4NTMwX3F1ZXVlX3ht aXQpCiNkZWZpbmUgX192ZXJfejg1MzBfZ2V0X3N0YXRzIHNtcF9mYTcwMjAxZgojZGVmaW5lIHo4 NTMwX2dldF9zdGF0cyBfc2V0X3Zlcih6ODUzMF9nZXRfc3RhdHMpCiMgMjMxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvemZ0YXBlX3N5bXMudmVyIiAxCiNkZWZp bmUgX192ZXJfemZ0X2NtcHJfcmVnaXN0ZXIgc21wXzRlMzI4YjRkCiNkZWZpbmUgemZ0X2NtcHJf cmVnaXN0ZXIgX3NldF92ZXIoemZ0X2NtcHJfcmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfemZ0X2Nt cHJfdW5yZWdpc3RlciBzbXBfZTIwN2RmNTMKI2RlZmluZSB6ZnRfY21wcl91bnJlZ2lzdGVyIF9z ZXRfdmVyKHpmdF9jbXByX3VucmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfemZ0X2ZldGNoX3NlZ21l bnRfZnJhY3Rpb24gc21wXzQxZjE2NmMxCiNkZWZpbmUgemZ0X2ZldGNoX3NlZ21lbnRfZnJhY3Rp b24gX3NldF92ZXIoemZ0X2ZldGNoX3NlZ21lbnRfZnJhY3Rpb24pCiNkZWZpbmUgX192ZXJfemZ0 X3ZtYWxsb2Nfb25jZSBzbXBfM2M0YjljODkKI2RlZmluZSB6ZnRfdm1hbGxvY19vbmNlIF9zZXRf dmVyKHpmdF92bWFsbG9jX29uY2UpCiNkZWZpbmUgX192ZXJfemZ0X3ZtYWxsb2NfYWx3YXlzIHNt cF8xNzcwZDUwNQojZGVmaW5lIHpmdF92bWFsbG9jX2Fsd2F5cyBfc2V0X3Zlcih6ZnRfdm1hbGxv Y19hbHdheXMpCiNkZWZpbmUgX192ZXJfemZ0X3ZmcmVlIHNtcF8wMmRhMzVlNQojZGVmaW5lIHpm dF92ZnJlZSBfc2V0X3Zlcih6ZnRfdmZyZWUpCiMgMjMyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L21vZHVsZXMvem9ycm8udmVyIiAxCiNkZWZpbmUgX192ZXJfem9ycm9fZmlu ZF9kZXZpY2Ugc21wXzU3NzM3ZTgzCiNkZWZpbmUgem9ycm9fZmluZF9kZXZpY2UgX3NldF92ZXIo em9ycm9fZmluZF9kZXZpY2UpCiNkZWZpbmUgX192ZXJfem9ycm9fdW51c2VkX3oycmFtIHNtcF9k YzE4YzE2NwojZGVmaW5lIHpvcnJvX3VudXNlZF96MnJhbSBfc2V0X3Zlcih6b3Jyb191bnVzZWRf ejJyYW0pCiMgMjMzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNp b25zLmgiIDIKIyAyICJmcy91ZGYvc3VwZXIuYyIgMgojIDQ2ICJmcy91ZGYvc3VwZXIuYyIKIyAx ICJmcy91ZGYvdWRmZGVjbC5oIiAxCgojZGVmaW5lIF9fVURGX0RFQ0xfSAoKIyAxICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl8xNjcuaCIgMQoKI2RlZmluZSBfTElOVVhf VURGXzE2N19ICiMgNTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWRmXzE2 Ny5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQoK I2RlZmluZSBfTElOVVhfVFlQRVNfSAoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9jb25maWcuaCIgMQoKI2RlZmluZSBfTElOVVhfQ09ORklHX0gKCiMgMSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIiAxCgoKCiNkZWZpbmUgQVVU T0NPTkZfSU5DTFVERUQKCgoKCiNkZWZpbmUgQ09ORklHX0VYUEVSSU1FTlRBTCAxCgoKCgojZGVm aW5lIENPTkZJR19NT0RVTEVTIDEKI2RlZmluZSBDT05GSUdfTU9EVkVSU0lPTlMgMQojZGVmaW5l IENPTkZJR19LTU9EIDEKCgoKCiNkZWZpbmUgQ09ORklHX0lBNjQgMQoKCgoKI2RlZmluZSBDT05G SUdfUldTRU1fR0VORVJJQ19TUElOTE9DSyAxCgojZGVmaW5lIENPTkZJR19BQ1BJIDEKI2RlZmlu ZSBDT05GSUdfQUNQSV9JTlRFUlBSRVRFUiAxCiNkZWZpbmUgQ09ORklHX0FDUElfS0VSTkVMX0NP TkZJRyAxCiNkZWZpbmUgQ09ORklHX0lUQU5JVU0gMQoKCiNkZWZpbmUgQ09ORklHX0lBNjRfRElH IDEKCgoKCiNkZWZpbmUgQ09ORklHX0lBNjRfUEFHRV9TSVpFXzE2S0IgMQoKI2RlZmluZSBDT05G SUdfSUE2NF9CUkxfRU1VIDEKCiNkZWZpbmUgQ09ORklHX0lUQU5JVU1fQ1NURVBfU1BFQ0lGSUMg MQojZGVmaW5lIENPTkZJR19JVEFOSVVNX0MwX1NQRUNJRklDIDEKI2RlZmluZSBDT05GSUdfSVRB TklVTV9QVENHIDEKI2RlZmluZSBDT05GSUdfSUE2NF9MMV9DQUNIRV9TSElGVCAoNikKCiNkZWZp bmUgQ09ORklHX0lBNjRfTUNBIDEKI2RlZmluZSBDT05GSUdfUE0gMQojZGVmaW5lIENPTkZJR19L Q09SRV9FTEYgMQojZGVmaW5lIENPTkZJR19TTVAgMQojZGVmaW5lIENPTkZJR19QRVJGTU9OIDEK I2RlZmluZSBDT05GSUdfSUE2NF9QQUxJTkZPIDEKI2RlZmluZSBDT05GSUdfRUZJX1ZBUlMgMQoj ZGVmaW5lIENPTkZJR19ORVQgMQojZGVmaW5lIENPTkZJR19TWVNWSVBDIDEKCiNkZWZpbmUgQ09O RklHX1NZU0NUTCAxCiNkZWZpbmUgQ09ORklHX0JJTkZNVF9FTEYgMQojIDcwICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX1BDSSAx CiNkZWZpbmUgQ09ORklHX1BDSV9OQU1FUyAxCiNkZWZpbmUgQ09ORklHX0hPVFBMVUcgMQoKCgoK CiNkZWZpbmUgQ09ORklHX1BDTUNJQV9NT0RVTEUgMQojZGVmaW5lIENPTkZJR19DQVJEQlVTIDEK I2RlZmluZSBDT05GSUdfSTgyMzY1IDEKI2RlZmluZSBDT05GSUdfVENJQyAxCiMgOTEgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdf UEFDS0VUIDEKI2RlZmluZSBDT05GSUdfUEFDS0VUX01NQVAgMQojZGVmaW5lIENPTkZJR19ORVRM SU5LIDEKI2RlZmluZSBDT05GSUdfUlRORVRMSU5LIDEKCiNkZWZpbmUgQ09ORklHX05FVEZJTFRF UiAxCgojZGVmaW5lIENPTkZJR19GSUxURVIgMQojZGVmaW5lIENPTkZJR19VTklYIDEKI2RlZmlu ZSBDT05GSUdfSU5FVCAxCgoKCgoKCiNkZWZpbmUgQ09ORklHX0lORVRfRUNOIDEKI2RlZmluZSBD T05GSUdfU1lOX0NPT0tJRVMgMQoKCgoKCiNkZWZpbmUgQ09ORklHX0lQX05GX0NPTk5UUkFDS19N T0RVTEUgMQoKI2RlZmluZSBDT05GSUdfSVBfTkZfRlRQX01PRFVMRSAxCgojZGVmaW5lIENPTkZJ R19JUF9ORl9RVUVVRV9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfSVBfTkZfSVBUQUJMRVNfTU9E VUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX01BVENIX0xJTUlUX01PRFVMRSAxCgojZGVmaW5l IENPTkZJR19JUF9ORl9NQVRDSF9NQUNfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX01B VENIX01BUktfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX01BVENIX01VTFRJUE9SVF9N T0RVTEUgMQoKI2RlZmluZSBDT05GSUdfSVBfTkZfTUFUQ0hfVE9TX01PRFVMRSAxCgojZGVmaW5l IENPTkZJR19JUF9ORl9NQVRDSF9UQ1BNU1NfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05G X01BVENIX1NUQVRFX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9NQVRDSF9VTkNMRUFO X01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9NQVRDSF9PV05FUl9NT0RVTEUgMQoKI2Rl ZmluZSBDT05GSUdfSVBfTkZfRklMVEVSX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9U QVJHRVRfUkVKRUNUX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9UQVJHRVRfTUlSUk9S X01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9OQVRfTU9EVUxFIDEKI2RlZmluZSBDT05G SUdfSVBfTkZfTkFUX05FRURFRCAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9UQVJHRVRfTUFTUVVF UkFERV9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfSVBfTkZfVEFSR0VUX1JFRElSRUNUX01PRFVM RSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9OQVRfRlRQX01PRFVMRSAxCgojZGVmaW5lIENPTkZJ R19JUF9ORl9NQU5HTEVfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX1RBUkdFVF9UT1Nf TU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX1RBUkdFVF9NQVJLX01PRFVMRSAxCgojZGVm aW5lIENPTkZJR19JUF9ORl9UQVJHRVRfTE9HX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9O Rl9UQVJHRVRfVENQTVNTX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9DT01QQVRfSVBD SEFJTlNfTU9EVUxFIDEKI2RlZmluZSBDT05GSUdfSVBfTkZfTkFUX05FRURFRCAxCgojZGVmaW5l IENPTkZJR19JUF9ORl9DT01QQVRfSVBGV0FETV9NT0RVTEUgMQojZGVmaW5lIENPTkZJR19JUF9O Rl9OQVRfTkVFREVEIDEKIyAyMTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv YXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdfQkxLX0RFVl9MT09QIDEKIyAyNDQgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdfSURF IDEKCgoKCiNkZWZpbmUgQ09ORklHX0JMS19ERVZfSURFIDEKCgoKCgoKI2RlZmluZSBDT05GSUdf QkxLX0RFVl9JREVESVNLIDEKI2RlZmluZSBDT05GSUdfSURFRElTS19NVUxUSV9NT0RFIDEKIyAy NjggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmlu ZSBDT05GSUdfQkxLX0RFVl9JREVDU19NT0RVTEUgMQojZGVmaW5lIENPTkZJR19CTEtfREVWX0lE RUNEIDEKCiNkZWZpbmUgQ09ORklHX0JMS19ERVZfSURFVEFQRV9NT0RVTEUgMQojZGVmaW5lIENP TkZJR19CTEtfREVWX0lERUZMT1BQWSAxCiNkZWZpbmUgQ09ORklHX0JMS19ERVZfSURFU0NTSSAx CiMgMjgyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNk ZWZpbmUgQ09ORklHX0JMS19ERVZfSURFUENJIDEKI2RlZmluZSBDT05GSUdfSURFUENJX1NIQVJF X0lSUSAxCiNkZWZpbmUgQ09ORklHX0JMS19ERVZfSURFRE1BX1BDSSAxCgojZGVmaW5lIENPTkZJ R19JREVETUFfUENJX0FVVE8gMQojZGVmaW5lIENPTkZJR19CTEtfREVWX0lERURNQSAxCiMgMzAy ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUg Q09ORklHX0JMS19ERVZfUElJWCAxCiMgMzE0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX0lERURNQV9BVVRPIDEKCgojZGVmaW5l IENPTkZJR19CTEtfREVWX0lERV9NT0RFUyAxCgoKCgojZGVmaW5lIENPTkZJR19TQ1NJIDEKCgoK CiNkZWZpbmUgQ09ORklHX0JMS19ERVZfU0QgMQojZGVmaW5lIENPTkZJR19TRF9FWFRSQV9ERVZT ICg0MCkKCiNkZWZpbmUgQ09ORklHX0NIUl9ERVZfU1RfTU9EVUxFIDEKCgojZGVmaW5lIENPTkZJ R19CTEtfREVWX1NSX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19TUl9FWFRSQV9ERVZTICgyKQoK I2RlZmluZSBDT05GSUdfQ0hSX0RFVl9TR19NT0RVTEUgMQoKCgoKI2RlZmluZSBDT05GSUdfU0NT SV9ERUJVR19RVUVVRVMgMQoKI2RlZmluZSBDT05GSUdfU0NTSV9DT05TVEFOVFMgMQojZGVmaW5l IENPTkZJR19TQ1NJX0xPR0dJTkcgMQojIDM4NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5lIENPTkZJR19TQ1NJX1FMT0dJQ18xMjgwIDEKIyAz OTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmlu ZSBDT05GSUdfU0NTSV9QQ01DSUEgMQoKI2RlZmluZSBDT05GSUdfUENNQ0lBX0FIQTE1MlhfTU9E VUxFIDEKCiNkZWZpbmUgQ09ORklHX1BDTUNJQV9GRE9NQUlOX01PRFVMRSAxCgoKI2RlZmluZSBD T05GSUdfUENNQ0lBX1FMT0dJQ19NT0RVTEUgMQoKCgoKI2RlZmluZSBDT05GSUdfTkVUREVWSUNF UyAxCgoKCgoKI2RlZmluZSBDT05GSUdfRFVNTVkgMQojIDQyNCAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5lIENPTkZJR19ORVRfRVRIRVJORVQg MQoKCgoKCgoKI2RlZmluZSBDT05GSUdfTkVUX1ZFTkRPUl8zQ09NIDEKCgoKCgoKCiNkZWZpbmUg Q09ORklHX1ZPUlRFWF9NT0RVTEUgMQoKCgoKCiNkZWZpbmUgQ09ORklHX05FVF9QQ0kgMQojIDQ1 NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5l IENPTkZJR19FRVBSTzEwMCAxCiMgNDkwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX1BQUF9NT0RVTEUgMQojZGVmaW5lIENPTkZJ R19QUFBfTVVMVElMSU5LIDEKI2RlZmluZSBDT05GSUdfUFBQX0ZJTFRFUiAxCgojZGVmaW5lIENP TkZJR19QUFBfQVNZTkNfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1BQUF9TWU5DX1RUWV9NT0RV TEUgMQoKI2RlZmluZSBDT05GSUdfUFBQX0RFRkxBVEVfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklH X1BQUF9CU0RDT01QX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19QUFBPRV9NT0RVTEUgMQoKCgoK CiNkZWZpbmUgQ09ORklHX05FVF9SQURJTyAxCgoKCgojZGVmaW5lIENPTkZJR19BSVJPTkVUNDUw MF9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfQUlST05FVDQ1MDBfTk9OQ1NfTU9EVUxFIDEKCiNk ZWZpbmUgQ09ORklHX0FJUk9ORVQ0NTAwX1BDSSAxCgoKCiNkZWZpbmUgQ09ORklHX0FJUk9ORVQ0 NTAwX1BST0NfTU9EVUxFIDEKCgoKCgoKCiNkZWZpbmUgQ09ORklHX05FVF9XSVJFTEVTUyAxCiMg NTQ3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZp bmUgQ09ORklHX05FVF9QQ01DSUEgMQojIDU1OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5lIENPTkZJR19ORVRfUENNQ0lBX1JBRElPIDEKCiNk ZWZpbmUgQ09ORklHX1BDTUNJQV9SQVlDU19NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfUENNQ0lB X05FVFdBVkVfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1BDTUNJQV9XQVZFTEFOX01PRFVMRSAx CgojZGVmaW5lIENPTkZJR19BSVJPTkVUNDUwMF9DU19NT0RVTEUgMQojIDU4NiAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5lIENPTkZJR19JTlBV VCAxCiNkZWZpbmUgQ09ORklHX0lOUFVUX0tFWUJERVYgMQojZGVmaW5lIENPTkZJR19JTlBVVF9N T1VTRURFViAxCiNkZWZpbmUgQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YICgxMDI0KQoj ZGVmaW5lIENPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWSAoNzY4KQoKI2RlZmluZSBDT05G SUdfSU5QVVRfSk9ZREVWX01PRFVMRSAxCiNkZWZpbmUgQ09ORklHX0lOUFVUX0VWREVWIDEKCgoK CiNkZWZpbmUgQ09ORklHX1ZUIDEKI2RlZmluZSBDT05GSUdfVlRfQ09OU09MRSAxCiNkZWZpbmUg Q09ORklHX1NFUklBTCAxCiNkZWZpbmUgQ09ORklHX1NFUklBTF9DT05TT0xFIDEKCgojZGVmaW5l IENPTkZJR19VTklYOThfUFRZUyAxCiNkZWZpbmUgQ09ORklHX1VOSVg5OF9QVFlfQ09VTlQgKDI1 NikKIyA2MTYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIK I2RlZmluZSBDT05GSUdfTU9VU0UgMQojZGVmaW5lIENPTkZJR19QU01PVVNFIDEKIyA2MzggIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05G SUdfRUZJX1JUQyAxCiMgNjQ4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1 dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX0FHUCAxCgojZGVmaW5lIENPTkZJR19BR1BfSTQ2MCAx CiNkZWZpbmUgQ09ORklHX0FHUF9JNDYwX0ZVTExSUSAxCgoKCgoKCiNkZWZpbmUgQ09ORklHX0FH UF9QVEVfRklYVVBTIDEKI2RlZmluZSBDT05GSUdfRFJNIDEKIyA2NzEgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdfUENNQ0lBX1NF UklBTF9DU19NT0RVTEUgMQoKCgoKCiNkZWZpbmUgQ09ORklHX1ZJREVPX0RFVl9NT0RVTEUgMQoK CgoKI2RlZmluZSBDT05GSUdfVklERU9fUFJPQ19GUyAxCiMgNzE5ICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX0FVVE9GU19GUyAx CgoKI2RlZmluZSBDT05GSUdfUkVJU0VSRlNfRlNfTU9EVUxFIDEKI2RlZmluZSBDT05GSUdfUkVJ U0VSRlNfQ0hFQ0sgMQoKCgoKCiNkZWZpbmUgQ09ORklHX0ZBVF9GUyAxCiNkZWZpbmUgQ09ORklH X01TRE9TX0ZTIDEKCiNkZWZpbmUgQ09ORklHX1ZGQVRfRlMgMQoKCgoKCiNkZWZpbmUgQ09ORklH X0lTTzk2NjBfRlMgMQoKCgoKI2RlZmluZSBDT05GSUdfTlRGU19GU19NT0RVTEUgMQoKCiNkZWZp bmUgQ09ORklHX1BST0NfRlMgMQoKCgojZGVmaW5lIENPTkZJR19ERVZQVFNfRlMgMQoKCgojZGVm aW5lIENPTkZJR19FWFQyX0ZTIDEKCgojZGVmaW5lIENPTkZJR19VREZfRlNfTU9EVUxFIDEKIyA3 NjYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmlu ZSBDT05GSUdfTkZTX0ZTIDEKI2RlZmluZSBDT05GSUdfTkZTX1YzIDEKCiNkZWZpbmUgQ09ORklH X05GU0QgMQojZGVmaW5lIENPTkZJR19ORlNEX1YzIDEKI2RlZmluZSBDT05GSUdfU1VOUlBDIDEK I2RlZmluZSBDT05GSUdfTE9DS0QgMQojZGVmaW5lIENPTkZJR19MT0NLRF9WNCAxCiMgNzg4ICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09O RklHX1BBUlRJVElPTl9BRFZBTkNFRCAxCgoKCgoKI2RlZmluZSBDT05GSUdfTVNET1NfUEFSVElU SU9OIDEKCgoKCiNkZWZpbmUgQ09ORklHX0VGSV9QQVJUSVRJT04gMQoKCgoKCiNkZWZpbmUgQ09O RklHX05MUyAxCgoKCgojZGVmaW5lIENPTkZJR19OTFNfREVGQVVMVCAiaXNvODg1OS0xIgojIDg1 MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5l IENPTkZJR19WR0FfQ09OU09MRSAxCgoKCgojZGVmaW5lIENPTkZJR19GQiAxCiNkZWZpbmUgQ09O RklHX0RVTU1ZX0NPTlNPTEUgMQoKI2RlZmluZSBDT05GSUdfRkJfUklWQV9NT0RVTEUgMQojIDg3 NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5l IENPTkZJR19GQkNPTl9DRkI4X01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19GQkNPTl9DRkIxNl9N T0RVTEUgMQoKI2RlZmluZSBDT05GSUdfRkJDT05fQ0ZCMzJfTU9EVUxFIDEKCgojZGVmaW5lIENP TkZJR19GT05UXzh4OCAxCiNkZWZpbmUgQ09ORklHX0ZPTlRfOHgxNiAxCiNkZWZpbmUgQ09ORklH X1BDSV9DT05TT0xFIDEKCgoKCiNkZWZpbmUgQ09ORklHX1NPVU5EIDEKCgoKI2RlZmluZSBDT05G SUdfU09VTkRfQ1M0MjgxIDEKIyA5MTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdfVVNCIDEKCgoKCgojZGVmaW5lIENPTkZJR19V U0JfREVWSUNFRlMgMQojZGVmaW5lIENPTkZJR19VU0JfQkFORFdJRFRIIDEKCgoKCiNkZWZpbmUg Q09ORklHX1VTQl9VSENJX0FMVCAxCiNkZWZpbmUgQ09ORklHX1VTQl9PSENJIDEKCgoKCgojZGVm aW5lIENPTkZJR19VU0JfQVVESU9fTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9CTFVFVE9P VEhfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFX01PRFVMRSAxCgojZGVmaW5l IENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NIDEKI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0Vf RFBDTSAxCgojZGVmaW5lIENPTkZJR19VU0JfQUNNX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19V U0JfUFJJTlRFUl9NT0RVTEUgMQoKCgoKCiNkZWZpbmUgQ09ORklHX1VTQl9ISURfTU9EVUxFIDEK CiNkZWZpbmUgQ09ORklHX1VTQl9LQkRfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9NT1VT RV9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfVVNCX1dBQ09NX01PRFVMRSAxCgoKCgoKI2RlZmlu ZSBDT05GSUdfVVNCX0RDMlhYX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19VU0JfTURDODAwX01P RFVMRSAxCgojZGVmaW5lIENPTkZJR19VU0JfU0NBTk5FUl9NT0RVTEUgMQoKI2RlZmluZSBDT05G SUdfVVNCX01JQ1JPVEVLX01PRFVMRSAxCgoKCgoKI2RlZmluZSBDT05GSUdfVVNCX0lCTUNBTV9N T0RVTEUgMQoKI2RlZmluZSBDT05GSUdfVVNCX09WNTExX01PRFVMRSAxCgojZGVmaW5lIENPTkZJ R19VU0JfUFdDX01PRFVMRSAxCgoKI2RlZmluZSBDT05GSUdfVVNCX0RTQlJfTU9EVUxFIDEKCiNk ZWZpbmUgQ09ORklHX1VTQl9EQUJVU0JfTU9EVUxFIDEKCgoKCgojZGVmaW5lIENPTkZJR19VU0Jf UExVU0JfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9QRUdBU1VTX01PRFVMRSAxCgoKI2Rl ZmluZSBDT05GSUdfVVNCX05FVDEwODBfTU9EVUxFIDEKIyAxMDAyICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxf TU9EVUxFIDEKI2RlZmluZSBDT05GSUdfVVNCX1NFUklBTF9HRU5FUklDIDEKCiNkZWZpbmUgQ09O RklHX1VTQl9TRVJJQUxfQkVMS0lOX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19VU0JfU0VSSUFM X1dISVRFSEVBVF9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfVVNCX1NFUklBTF9ESUdJX0FDQ0VM RVBPUlRfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxfRU1QRUdfTU9EVUxFIDEK CiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxfRlRESV9TSU9fTU9EVUxFIDEKCiNkZWZpbmUgQ09O RklHX1VTQl9TRVJJQUxfVklTT1JfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxf RURHRVBPUlRfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9QREFf TU9EVUxFIDEKCgojZGVmaW5lIENPTkZJR19VU0JfU0VSSUFMX01DVF9VMjMyX01PRFVMRSAxCgoK CiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxfT01OSU5FVF9NT0RVTEUgMQoKCgoKCiNkZWZpbmUg Q09ORklHX1VTQl9SSU81MDBfTU9EVUxFIDEKIyAxMDQyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX0lBMzJfU1VQUE9SVCAxCiNk ZWZpbmUgQ09ORklHX01BVEhFTVUgMQojZGVmaW5lIENPTkZJR19NQUdJQ19TWVNSUSAxCgoKCiNk ZWZpbmUgQ09ORklHX0lBNjRfUFJJTlRfSEFaQVJEUyAxCiNkZWZpbmUgQ09ORklHX0tEQiAxCiNk ZWZpbmUgQ09ORklHX0tEQl9PRkYgMQoKCgoKI2RlZmluZSBDT05GSUdfS0FMTFNZTVMgMQojIDUg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDIKIyA2ICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDIKCgojIDEgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcG9zaXhfdHlwZXMuaCIgMQoKI2RlZmluZSBfTElO VVhfUE9TSVhfVFlQRVNfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4 L3N0ZGRlZi5oIiAxCgojZGVmaW5lIF9MSU5VWF9TVERERUZfSAoKCgoKCiNkZWZpbmUgTlVMTCAo KHZvaWQgKikwKQoKCgojZGVmaW5lIG9mZnNldG9mKFRZUEUsIE1FTUJFUikgKChzaXplX3QpICYo KFRZUEUgKikwKS0+TUVNQkVSKQojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvcG9zaXhfdHlwZXMuaCIgMgojIDIyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L3Bvc2l4X3R5cGVzLmgiCiNkZWZpbmUgX19ORkRCSVRTICg4ICogc2l6ZW9mKHVuc2lnbmVk IGxvbmcpKQoKCiNkZWZpbmUgX19GRF9TRVRTSVpFIDEwMjQKCgojZGVmaW5lIF9fRkRTRVRfTE9O R1MgKF9fRkRfU0VUU0laRS9fX05GREJJVFMpCgoKI2RlZmluZSBfX0ZERUxUKGQpICgoZCkgLyBf X05GREJJVFMpCgoKI2RlZmluZSBfX0ZETUFTSyhkKSAoMVVMIDw8ICgoZCkgJSBfX05GREJJVFMp KQoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIHVuc2lnbmVkIGxvbmcgZmRzX2JpdHMgWygxMDI0 Lyg4ICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKSldOwp9IF9fa2VybmVsX2ZkX3NldDsKCgp0eXBl ZGVmIHZvaWQgKCpfX2tlcm5lbF9zaWdoYW5kbGVyX3QpKGludCk7CgoKdHlwZWRlZiBpbnQgX19r ZXJuZWxfa2V5X3Q7CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Bvc2l4 X3R5cGVzLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1BPU0lYX1RZUEVTX0gKIyAxMyAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcG9zaXhfdHlwZXMuaCIKdHlwZWRlZiB1bnNpZ25l ZCBpbnQgX19rZXJuZWxfZGV2X3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fa2VybmVsX2lub190 Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX2tlcm5lbF9tb2RlX3Q7CnR5cGVkZWYgdW5zaWduZWQg aW50IF9fa2VybmVsX25saW5rX3Q7CnR5cGVkZWYgbG9uZyBfX2tlcm5lbF9vZmZfdDsKdHlwZWRl ZiBsb25nIGxvbmcgX19rZXJuZWxfbG9mZl90Owp0eXBlZGVmIGludCBfX2tlcm5lbF9waWRfdDsK dHlwZWRlZiBpbnQgX19rZXJuZWxfaXBjX3BpZF90Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX2tl cm5lbF91aWRfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19rZXJuZWxfZ2lkX3Q7CnR5cGVkZWYg dW5zaWduZWQgbG9uZyBfX2tlcm5lbF9zaXplX3Q7CnR5cGVkZWYgbG9uZyBfX2tlcm5lbF9zc2l6 ZV90Owp0eXBlZGVmIGxvbmcgX19rZXJuZWxfcHRyZGlmZl90Owp0eXBlZGVmIGxvbmcgX19rZXJu ZWxfdGltZV90Owp0eXBlZGVmIGxvbmcgX19rZXJuZWxfc3VzZWNvbmRzX3Q7CnR5cGVkZWYgbG9u ZyBfX2tlcm5lbF9jbG9ja190Owp0eXBlZGVmIGludCBfX2tlcm5lbF9kYWRkcl90Owp0eXBlZGVm IGNoYXIgKiBfX2tlcm5lbF9jYWRkcl90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgX19rZXJuZWxf c2lnc2V0X3Q7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgX19rZXJuZWxfdWlkMTZfdDsKdHlwZWRl ZiB1bnNpZ25lZCBzaG9ydCBfX2tlcm5lbF9naWQxNl90OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg ICAgIGludCB2YWxbMl07Cn0gX19rZXJuZWxfZnNpZF90OwoKdHlwZWRlZiBfX2tlcm5lbF91aWRf dCBfX2tlcm5lbF9vbGRfdWlkX3Q7CnR5cGVkZWYgX19rZXJuZWxfZ2lkX3QgX19rZXJuZWxfb2xk X2dpZF90Owp0eXBlZGVmIF9fa2VybmVsX3VpZF90IF9fa2VybmVsX3VpZDMyX3Q7CnR5cGVkZWYg X19rZXJuZWxfZ2lkX3QgX19rZXJuZWxfZ2lkMzJfdDsKIyA1OSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9hc20vcG9zaXhfdHlwZXMuaCIKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0ZE X1NFVCh1bnNpZ25lZCBsb25nIGZkLCBfX2tlcm5lbF9mZF9zZXQgKmZkc2V0cCkKewogICAgICAg IHVuc2lnbmVkIGxvbmcgX3RtcCA9IGZkIC8gKDggKiBzaXplb2YodW5zaWduZWQgbG9uZykpOwog ICAgICAgIHVuc2lnbmVkIGxvbmcgX3JlbSA9IGZkICUgKDggKiBzaXplb2YodW5zaWduZWQgbG9u ZykpOwogICAgICAgIGZkc2V0cC0+ZmRzX2JpdHNbX3RtcF0gfD0gKDFVTDw8X3JlbSk7Cn0KCgpz dGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fRkRfQ0xSKHVuc2lnbmVkIGxvbmcgZmQsIF9fa2VybmVs X2ZkX3NldCAqZmRzZXRwKQp7CiAgICAgICAgdW5zaWduZWQgbG9uZyBfdG1wID0gZmQgLyAoOCAq IHNpemVvZih1bnNpZ25lZCBsb25nKSk7CiAgICAgICAgdW5zaWduZWQgbG9uZyBfcmVtID0gZmQg JSAoOCAqIHNpemVvZih1bnNpZ25lZCBsb25nKSk7CiAgICAgICAgZmRzZXRwLT5mZHNfYml0c1tf dG1wXSAmPSB+KDFVTDw8X3JlbSk7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19GRF9JU1NF VCh1bnNpZ25lZCBsb25nIGZkLCBjb25zdCBfX2tlcm5lbF9mZF9zZXQgKnApCnsKICAgICAgICB1 bnNpZ25lZCBsb25nIF90bXAgPSBmZCAvICg4ICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKTsKICAg ICAgICB1bnNpZ25lZCBsb25nIF9yZW0gPSBmZCAlICg4ICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcp KTsKICAgICAgICByZXR1cm4gKHAtPmZkc19iaXRzW190bXBdICYgKDFVTDw8X3JlbSkpICE9IDA7 Cn0KCgoKCgoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0ZEX1pFUk8oX19rZXJuZWxfZmRfc2V0 ICpwKQp7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqdG1wID0gcC0+ZmRzX2JpdHM7CiAgICAgICAg aW50IGk7CgogICAgICAgIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcCgoMTAyNC8oOCAqIHNpemVv Zih1bnNpZ25lZCBsb25nKSkpKSkgewogICAgICAgICAgICAgICAgc3dpdGNoICgoMTAyNC8oOCAq IHNpemVvZih1bnNpZ25lZCBsb25nKSkpKSB7CiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE2 OgogICAgICAgICAgICAgICAgICAgICAgICB0bXBbIDBdID0gMDsgdG1wWyAxXSA9IDA7IHRtcFsg Ml0gPSAwOyB0bXBbIDNdID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgdG1wWyA0XSA9IDA7 IHRtcFsgNV0gPSAwOyB0bXBbIDZdID0gMDsgdG1wWyA3XSA9IDA7CiAgICAgICAgICAgICAgICAg ICAgICAgIHRtcFsgOF0gPSAwOyB0bXBbIDldID0gMDsgdG1wWzEwXSA9IDA7IHRtcFsxMV0gPSAw OwogICAgICAgICAgICAgICAgICAgICAgICB0bXBbMTJdID0gMDsgdG1wWzEzXSA9IDA7IHRtcFsx NF0gPSAwOyB0bXBbMTVdID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwoKICAg ICAgICAgICAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAgICAgICAgICAgICAgdG1wWyAw XSA9IDA7IHRtcFsgMV0gPSAwOyB0bXBbIDJdID0gMDsgdG1wWyAzXSA9IDA7CiAgICAgICAgICAg ICAgICAgICAgICAgIHRtcFsgNF0gPSAwOyB0bXBbIDVdID0gMDsgdG1wWyA2XSA9IDA7IHRtcFsg N10gPSAwOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CgogICAgICAgICAgICAgICAg ICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgICAgICAgICB0bXBbIDBdID0gMDsgdG1wWyAx XSA9IDA7IHRtcFsgMl0gPSAwOyB0bXBbIDNdID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpID0gKDEwMjQvKDgg KiBzaXplb2YodW5zaWduZWQgbG9uZykpKTsKICAgICAgICB3aGlsZSAoaSkgewogICAgICAgICAg ICAgICAgaS0tOwogICAgICAgICAgICAgICAgKnRtcCA9IDA7CiAgICAgICAgICAgICAgICB0bXAr KzsKICAgICAgICB9Cn0KIyA0NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9w b3NpeF90eXBlcy5oIiAyCiMgOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90 eXBlcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vdHlwZXMuaCIg MQoKI2RlZmluZSBfQVNNX0lBNjRfVFlQRVNfSAojIDE5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2FzbS90eXBlcy5oIgojZGVmaW5lIF9fSUE2NF9VTCh4KSAoKHVuc2lnbmVkIGxvbmcp KHgpKQojZGVmaW5lIF9fSUE2NF9VTF9DT05TVCh4KSB4ICMjIFVMCgoKCgp0eXBlZGVmIHVuc2ln bmVkIGludCB1bW9kZV90OwoKCgoKCgp0eXBlZGVmIF9fc2lnbmVkX18gY2hhciBfX3M4Owp0eXBl ZGVmIHVuc2lnbmVkIGNoYXIgX191ODsKCnR5cGVkZWYgX19zaWduZWRfXyBzaG9ydCBfX3MxNjsK dHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBfX3UxNjsKCnR5cGVkZWYgX19zaWduZWRfXyBpbnQgX19z MzI7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdTMyOwoKdHlwZWRlZiBfX3NpZ25lZF9fIGxvbmcg X19zNjQ7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBfX3U2NDsKCgoKCgoKdHlwZWRlZiBfX3M4IHM4 Owp0eXBlZGVmIF9fdTggdTg7Cgp0eXBlZGVmIF9fczE2IHMxNjsKdHlwZWRlZiBfX3UxNiB1MTY7 Cgp0eXBlZGVmIF9fczMyIHMzMjsKdHlwZWRlZiBfX3UzMiB1MzI7Cgp0eXBlZGVmIF9fczY0IHM2 NDsKdHlwZWRlZiBfX3U2NCB1NjQ7CgojZGVmaW5lIEJJVFNfUEVSX0xPTkcgNjQKCgoKdHlwZWRl ZiB1NjQgZG1hX2FkZHJfdDsKIyAxMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC90eXBlcy5oIiAyCgoKCnR5cGVkZWYgX19rZXJuZWxfZmRfc2V0IGZkX3NldDsKdHlwZWRlZiBf X2tlcm5lbF9kZXZfdCBkZXZfdDsKdHlwZWRlZiBfX2tlcm5lbF9pbm9fdCBpbm9fdDsKdHlwZWRl ZiBfX2tlcm5lbF9tb2RlX3QgbW9kZV90Owp0eXBlZGVmIF9fa2VybmVsX25saW5rX3Qgbmxpbmtf dDsKdHlwZWRlZiBfX2tlcm5lbF9vZmZfdCBvZmZfdDsKdHlwZWRlZiBfX2tlcm5lbF9waWRfdCBw aWRfdDsKdHlwZWRlZiBfX2tlcm5lbF9kYWRkcl90IGRhZGRyX3Q7CnR5cGVkZWYgX19rZXJuZWxf a2V5X3Qga2V5X3Q7CnR5cGVkZWYgX19rZXJuZWxfc3VzZWNvbmRzX3Qgc3VzZWNvbmRzX3Q7CgoK dHlwZWRlZiBfX2tlcm5lbF91aWQzMl90IHVpZF90Owp0eXBlZGVmIF9fa2VybmVsX2dpZDMyX3Qg Z2lkX3Q7CnR5cGVkZWYgX19rZXJuZWxfdWlkMTZfdCB1aWQxNl90Owp0eXBlZGVmIF9fa2VybmVs X2dpZDE2X3QgZ2lkMTZfdDsKIyA0NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC90eXBlcy5oIgp0eXBlZGVmIF9fa2VybmVsX2xvZmZfdCBsb2ZmX3Q7CgoKCgoKCgojZGVmaW5l IF9TSVpFX1QKdHlwZWRlZiBfX2tlcm5lbF9zaXplX3Qgc2l6ZV90OwoKCgojZGVmaW5lIF9TU0la RV9UCnR5cGVkZWYgX19rZXJuZWxfc3NpemVfdCBzc2l6ZV90OwoKCgojZGVmaW5lIF9QVFJESUZG X1QKdHlwZWRlZiBfX2tlcm5lbF9wdHJkaWZmX3QgcHRyZGlmZl90OwoKCgojZGVmaW5lIF9USU1F X1QKdHlwZWRlZiBfX2tlcm5lbF90aW1lX3QgdGltZV90OwoKCgojZGVmaW5lIF9DTE9DS19UCnR5 cGVkZWYgX19rZXJuZWxfY2xvY2tfdCBjbG9ja190OwoKCgojZGVmaW5lIF9DQUREUl9UCnR5cGVk ZWYgX19rZXJuZWxfY2FkZHJfdCBjYWRkcl90OwoKCgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdV9j aGFyOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVfc2hvcnQ7CnR5cGVkZWYgdW5zaWduZWQgaW50 IHVfaW50Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdV9sb25nOwoKCnR5cGVkZWYgdW5zaWduZWQg Y2hhciB1bmNoYXI7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdXNob3J0Owp0eXBlZGVmIHVuc2ln bmVkIGludCB1aW50Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdWxvbmc7CgoKI2RlZmluZSBfX0JJ VF9UWVBFU19ERUZJTkVEX18KCnR5cGVkZWYgX191OCB1X2ludDhfdDsKdHlwZWRlZiBfX3M4IGlu dDhfdDsKdHlwZWRlZiBfX3UxNiB1X2ludDE2X3Q7CnR5cGVkZWYgX19zMTYgaW50MTZfdDsKdHlw ZWRlZiBfX3UzMiB1X2ludDMyX3Q7CnR5cGVkZWYgX19zMzIgaW50MzJfdDsKCgoKdHlwZWRlZiBf X3U4IHVpbnQ4X3Q7CnR5cGVkZWYgX191MTYgdWludDE2X3Q7CnR5cGVkZWYgX191MzIgdWludDMy X3Q7CgoKdHlwZWRlZiBfX3U2NCB1aW50NjRfdDsKdHlwZWRlZiBfX3U2NCB1X2ludDY0X3Q7CnR5 cGVkZWYgX19zNjQgaW50NjRfdDsKIyAxMjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvdHlwZXMuaCIKc3RydWN0IHVzdGF0IHsKICAgICAgICBfX2tlcm5lbF9kYWRkcl90IGZf dGZyZWU7CiAgICAgICAgX19rZXJuZWxfaW5vX3QgZl90aW5vZGU7CiAgICAgICAgY2hhciBmX2Zu YW1lWzZdOwogICAgICAgIGNoYXIgZl9mcGFja1s2XTsKfTsKIyA1NiAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC91ZGZfMTY3LmgiIDIKI2RlZmluZSBVaW50OCBfX3U4CiNkZWZp bmUgU2ludDggX19zOAojZGVmaW5lIFVpbnQxNiBfX3UxNgojZGVmaW5lIFNpbnQxNiBfX3MxNgoj ZGVmaW5lIFVpbnQzMiBfX3UzMgojZGVmaW5lIFNpbnQzMiBfX3MzMgojZGVmaW5lIFVpbnQ2NCBf X3U2NAojZGVmaW5lIFNpbnQ2NCBfX3M2NAp0eXBlZGVmIF9fdTggZHN0cmluZzsKIyA3OCAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZGZfMTY3LmgiCiNwcmFnbWEgcGFjaygx KQoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBfX3U4IGNoYXJTZXRUeXBlOwogICAgICAgIF9f dTggY2hhclNldEluZm9bNjNdOwp9IGNoYXJzcGVjOwoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAg ICBfX3UxNiB0eXBlQW5kVGltZXpvbmU7CiAgICAgICAgX191MTYgeWVhcjsKICAgICAgICBfX3U4 IG1vbnRoOwogICAgICAgIF9fdTggZGF5OwogICAgICAgIF9fdTggaG91cjsKICAgICAgICBfX3U4 IG1pbnV0ZTsKICAgICAgICBfX3U4IHNlY29uZDsKICAgICAgICBfX3U4IGNlbnRpc2Vjb25kczsK ICAgICAgICBfX3U4IGh1bmRyZWRzT2ZNaWNyb3NlY29uZHM7CiAgICAgICAgX191OCBtaWNyb3Nl Y29uZHM7Cn0gdGltZXN0YW1wOwoKCiNkZWZpbmUgVElNRVNUQU1QX1RZUEVfQ1VUIDB4MDAwMFUK I2RlZmluZSBUSU1FU1RBTVBfVFlQRV9MT0NBTCAweDAwMDFVCiNkZWZpbmUgVElNRVNUQU1QX1RZ UEVfQUdSRUVNRU5UIDB4MDAwMlUKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgX191OCBmbGFn czsKICAgICAgICBfX3U4IGlkZW50WzIzXTsKICAgICAgICBfX3U4IGlkZW50U3VmZml4WzhdOwp9 IEVudGl0eUlEOwojZGVmaW5lIHJlZ2lkIEVudGl0eUlECgoKI2RlZmluZSBFTlRJVFlJRF9GTEFH U19ESVJUWSAweDAxVQojZGVmaW5lIEVOVElUWUlEX0ZMQUdTX1BST1RFQ1RFRCAweDAyVQoKCiNk ZWZpbmUgU1REX0lEX0xFTiA1CnN0cnVjdCBWb2xTdHJ1Y3REZXNjIHsKICAgICAgICBfX3U4IHN0 cnVjdFR5cGU7CiAgICAgICAgX191OCBzdGRJZGVudFs1XTsKICAgICAgICBfX3U4IHN0cnVjdFZl cnNpb247CiAgICAgICAgX191OCBzdHJ1Y3REYXRhWzIwNDFdOwp9OwoKCiNkZWZpbmUgU1REX0lE X0JFQTAxICJCRUEwMSIKI2RlZmluZSBTVERfSURfQk9PVDIgIkJPT1QyIgojZGVmaW5lIFNURF9J RF9DRDAwMSAiQ0QwMDEiCiNkZWZpbmUgU1REX0lEX0NEVzAyICJDRFcwMiIKI2RlZmluZSBTVERf SURfTlNSMDIgIk5TUjAyIgojZGVmaW5lIFNURF9JRF9OU1IwMyAiTlNSMDMiCiNkZWZpbmUgU1RE X0lEX1RFQTAxICJURUEwMSIKCgpzdHJ1Y3QgQmVnaW5uaW5nRXh0ZW5kZWRBcmVhRGVzYyB7CiAg ICAgICAgX191OCBzdHJ1Y3RUeXBlOwogICAgICAgIF9fdTggc3RkSWRlbnRbNV07CiAgICAgICAg X191OCBzdHJ1Y3RWZXJzaW9uOwogICAgICAgIF9fdTggc3RydWN0RGF0YVsyMDQxXTsKfTsKCgpz dHJ1Y3QgVGVybWluYXRpbmdFeHRlbmRlZEFyZWFEZXNjIHsKICAgICAgICBfX3U4IHN0cnVjdFR5 cGU7CiAgICAgICAgX191OCBzdGRJZGVudFs1XTsKICAgICAgICBfX3U4IHN0cnVjdFZlcnNpb247 CiAgICAgICAgX191OCBzdHJ1Y3REYXRhWzIwNDFdOwp9OwoKCnN0cnVjdCBCb290RGVzYyB7CiAg ICAgICAgX191OCBzdHJ1Y3RUeXBlOwogICAgICAgIF9fdTggc3RkSWRlbnRbNV07CiAgICAgICAg X191OCBzdHJ1Y3RWZXJzaW9uOwogICAgICAgIF9fdTggcmVzZXJ2ZWQxOwogICAgICAgIEVudGl0 eUlEIGFyY2hpdGVjdHVyZVR5cGU7CiAgICAgICAgRW50aXR5SUQgYm9vdElkZW50OwogICAgICAg IF9fdTMyIGJvb3RFeHRMb2NhdGlvbjsKICAgICAgICBfX3UzMiBib290RXh0TGVuZ3RoOwogICAg ICAgIF9fdTY0IGxvYWRBZGRyZXNzOwogICAgICAgIF9fdTY0IHN0YXJ0QWRkcmVzczsKICAgICAg ICB0aW1lc3RhbXAgZGVzY0NyZWF0aW9uRGF0ZUFuZFRpbWU7CiAgICAgICAgX191MTYgZmxhZ3M7 CiAgICAgICAgX191OCByZXNlcnZlZDJbMzJdOwogICAgICAgIF9fdTggYm9vdFVzZVsxOTA2XTsK fTsKCgojZGVmaW5lIEJPT1RfRkxBR1NfRVJBU0UgMQoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAg ICBfX3UzMiBleHRMZW5ndGg7CiAgICAgICAgX191MzIgZXh0TG9jYXRpb247Cn0gZXh0ZW50X2Fk OwoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBfX3UxNiB0YWdJZGVudDsKICAgICAgICBfX3Ux NiBkZXNjVmVyc2lvbjsKICAgICAgICBfX3U4IHRhZ0NoZWNrc3VtOwogICAgICAgIF9fdTggcmVz ZXJ2ZWQ7CiAgICAgICAgX191MTYgdGFnU2VyaWFsTnVtOwogICAgICAgIF9fdTE2IGRlc2NDUkM7 CiAgICAgICAgX191MTYgZGVzY0NSQ0xlbmd0aDsKICAgICAgICBfX3UzMiB0YWdMb2NhdGlvbjsK fSB0YWc7CgoKI2RlZmluZSBUSURfVU5VU0VEX0RFU0MgMHgwMDAwVQojZGVmaW5lIFRJRF9QUklN QVJZX1ZPTF9ERVNDIDB4MDAwMVUKI2RlZmluZSBUSURfQU5DSE9SX1ZPTF9ERVNDX1BUUiAweDAw MDJVCiNkZWZpbmUgVElEX1ZPTF9ERVNDX1BUUiAweDAwMDNVCiNkZWZpbmUgVElEX0lNUF9VU0Vf Vk9MX0RFU0MgMHgwMDA0VQojZGVmaW5lIFRJRF9QQVJUSVRJT05fREVTQyAweDAwMDVVCiNkZWZp bmUgVElEX0xPR0lDQUxfVk9MX0RFU0MgMHgwMDA2VQojZGVmaW5lIFRJRF9VTkFMTE9DX1NQQUNF X0RFU0MgMHgwMDA3VQojZGVmaW5lIFRJRF9URVJNSU5BVElOR19ERVNDIDB4MDAwOFUKI2RlZmlu ZSBUSURfTE9HSUNBTF9WT0xfSU5URUdSSVRZX0RFU0MgMHgwMDA5VQoKCiNkZWZpbmUgVElEX0ZJ TEVfU0VUX0RFU0MgMHgwMTAwVQojZGVmaW5lIFRJRF9GSUxFX0lERU5UX0RFU0MgMHgwMTAxVQoj ZGVmaW5lIFRJRF9BTExPQ19FWFRFTlRfREVTQyAweDAxMDJVCiNkZWZpbmUgVElEX0lORElSRUNU X0VOVFJZIDB4MDEwM1UKI2RlZmluZSBUSURfVEVSTUlOQUxfRU5UUlkgMHgwMTA0VQojZGVmaW5l IFRJRF9GSUxFX0VOVFJZIDB4MDEwNVUKI2RlZmluZSBUSURfRVhURU5ERURfQVRUUkVfSEVBREVS X0RFU0MgMHgwMTA2VQojZGVmaW5lIFRJRF9VTkFMTE9DQVRFRF9TUEFDRV9FTlRSWSAweDAxMDdV CiNkZWZpbmUgVElEX1NQQUNFX0JJVE1BUF9ERVNDIDB4MDEwOFUKI2RlZmluZSBUSURfUEFSVElU SU9OX0lOVEVHUklUWV9FTlRSWSAweDAxMDlVCiNkZWZpbmUgVElEX0VYVEVOREVEX0ZJTEVfRU5U UlkgMHgwMTBBVQoKCnN0cnVjdCBOU1JEZXNjIHsKICAgICAgICBfX3U4IHN0cnVjdFR5cGU7CiAg ICAgICAgX191OCBzdGRJZGVudFs1XTsKICAgICAgICBfX3U4IHN0cnVjdFZlcnNpb247CiAgICAg ICAgX191OCByZXNlcnZlZDsKICAgICAgICBfX3U4IHN0cnVjdERhdGFbMjA0MF07Cn07CgoKc3Ry dWN0IFByaW1hcnlWb2xEZXNjIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICBfX3UzMiB2 b2xEZXNjU2VxTnVtOwogICAgICAgIF9fdTMyIHByaW1hcnlWb2xEZXNjTnVtOwogICAgICAgIGRz dHJpbmcgdm9sSWRlbnRbMzJdOwogICAgICAgIF9fdTE2IHZvbFNlcU51bTsKICAgICAgICBfX3Ux NiBtYXhWb2xTZXFOdW07CiAgICAgICAgX191MTYgaW50ZXJjaGFuZ2VMdmw7CiAgICAgICAgX191 MTYgbWF4SW50ZXJjaGFuZ2VMdmw7CiAgICAgICAgX191MzIgY2hhclNldExpc3Q7CiAgICAgICAg X191MzIgbWF4Q2hhclNldExpc3Q7CiAgICAgICAgZHN0cmluZyB2b2xTZXRJZGVudFsxMjhdOwog ICAgICAgIGNoYXJzcGVjIGRlc2NDaGFyU2V0OwogICAgICAgIGNoYXJzcGVjIGV4cGxhbmF0b3J5 Q2hhclNldDsKICAgICAgICBleHRlbnRfYWQgdm9sQWJzdHJhY3Q7CiAgICAgICAgZXh0ZW50X2Fk IHZvbENvcHlyaWdodDsKICAgICAgICBFbnRpdHlJRCBhcHBJZGVudDsKICAgICAgICB0aW1lc3Rh bXAgcmVjb3JkaW5nRGF0ZUFuZFRpbWU7CiAgICAgICAgRW50aXR5SUQgaW1wSWRlbnQ7CiAgICAg ICAgX191OCBpbXBVc2VbNjRdOwogICAgICAgIF9fdTMyIHByZWRlY2Vzc29yVm9sRGVzY1NlcUxv Y2F0aW9uOwogICAgICAgIF9fdTE2IGZsYWdzOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbMjJdOwp9 OwoKCiNkZWZpbmUgVk9MX1NFVF9JREVOVCAxCgoKc3RydWN0IEFuY2hvclZvbERlc2NQdHIgewog ICAgICAgIHRhZyBkZXNjVGFnOwogICAgICAgIGV4dGVudF9hZCBtYWluVm9sRGVzY1NlcUV4dDsK ICAgICAgICBleHRlbnRfYWQgcmVzZXJ2ZVZvbERlc2NTZXFFeHQ7CiAgICAgICAgX191OCByZXNl cnZlZFs0ODBdOwp9OwoKCnN0cnVjdCBWb2xEZXNjUHRyIHsKICAgICAgICB0YWcgZGVzY1RhZzsK ICAgICAgICBfX3UzMiB2b2xEZXNjU2VxTnVtOwogICAgICAgIGV4dGVudF9hZCBuZXh0Vm9sRGVz Y1NlcUV4dDsKICAgICAgICBfX3U4IHJlc2VydmVkWzQ4NF07Cn07CgoKc3RydWN0IEltcFVzZVZv bERlc2MgewogICAgICAgIHRhZyBkZXNjVGFnOwogICAgICAgIF9fdTMyIHZvbERlc2NTZXFOdW07 CiAgICAgICAgRW50aXR5SUQgaW1wSWRlbnQ7CiAgICAgICAgX191OCBpbXBVc2VbNDYwXTsKfTsK CgpzdHJ1Y3QgUGFydGl0aW9uRGVzYyB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgX191 MzIgdm9sRGVzY1NlcU51bTsKICAgICAgICBfX3UxNiBwYXJ0aXRpb25GbGFnczsKICAgICAgICBf X3UxNiBwYXJ0aXRpb25OdW1iZXI7CiAgICAgICAgRW50aXR5SUQgcGFydGl0aW9uQ29udGVudHM7 CiAgICAgICAgX191OCBwYXJ0aXRpb25Db250ZW50c1VzZVsxMjhdOwogICAgICAgIF9fdTMyIGFj Y2Vzc1R5cGU7CiAgICAgICAgX191MzIgcGFydGl0aW9uU3RhcnRpbmdMb2NhdGlvbjsKICAgICAg ICBfX3UzMiBwYXJ0aXRpb25MZW5ndGg7CiAgICAgICAgRW50aXR5SUQgaW1wSWRlbnQ7CiAgICAg ICAgX191OCBpbXBVc2VbMTI4XTsKICAgICAgICBfX3U4IHJlc2VydmVkWzE1Nl07Cn07CgoKI2Rl ZmluZSBQQVJUSVRJT05fRkxBR1NfQUxMT0MgMQoKCiNkZWZpbmUgUEFSVElUSU9OX0NPTlRFTlRT X0ZEQzAxICIrRkRDMDEiCiNkZWZpbmUgUEFSVElUSU9OX0NPTlRFTlRTX0NEMDAxICIrQ0QwMDEi CiNkZWZpbmUgUEFSVElUSU9OX0NPTlRFTlRTX0NEVzAyICIrQ0RXMDIiCiNkZWZpbmUgUEFSVElU SU9OX0NPTlRFTlRTX05TUjAyICIrTlNSMDIiCiNkZWZpbmUgUEFSVElUSU9OX0NPTlRFTlRTX05T UjAzICIrTlNSMDMiCgoKI2RlZmluZSBQQVJUSVRJT05fQUNDRVNTX05PTkUgMAojZGVmaW5lIFBB UlRJVElPTl9BQ0NFU1NfUiAxCiNkZWZpbmUgUEFSVElUSU9OX0FDQ0VTU19XTyAyCiNkZWZpbmUg UEFSVElUSU9OX0FDQ0VTU19SVyAzCiNkZWZpbmUgUEFSVElUSU9OX0FDQ0VTU19PVyA0CgoKc3Ry dWN0IExvZ2ljYWxWb2xEZXNjIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICBfX3UzMiB2 b2xEZXNjU2VxTnVtOwogICAgICAgIGNoYXJzcGVjIGRlc2NDaGFyU2V0OwogICAgICAgIGRzdHJp bmcgbG9naWNhbFZvbElkZW50WzEyOF07CiAgICAgICAgX191MzIgbG9naWNhbEJsb2NrU2l6ZTsK ICAgICAgICBFbnRpdHlJRCBkb21haW5JZGVudDsKICAgICAgICBfX3U4IGxvZ2ljYWxWb2xDb250 ZW50c1VzZVsxNl07CiAgICAgICAgX191MzIgbWFwVGFibGVMZW5ndGg7CiAgICAgICAgX191MzIg bnVtUGFydGl0aW9uTWFwczsKICAgICAgICBFbnRpdHlJRCBpbXBJZGVudDsKICAgICAgICBfX3U4 IGltcFVzZVsxMjhdOwogICAgICAgIGV4dGVudF9hZCBpbnRlZ3JpdHlTZXFFeHQ7CiAgICAgICAg X191OCBwYXJ0aXRpb25NYXBzWzBdOwp9OwoKCnN0cnVjdCBHZW5lcmljUGFydGl0aW9uTWFwIHsK ICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcFR5cGU7CiAgICAgICAgX191OCBwYXJ0aXRpb25NYXBM ZW5ndGg7CiAgICAgICAgX191OCBwYXJ0aXRpb25NYXBwaW5nWzBdOwp9OwoKCiNkZWZpbmUgUEFS VElUSU9OX01BUF9UWVBFX05PTkUgMAojZGVmaW5lIFBBUlRJVElPTl9NQVBfVFlQRV8xIDEKI2Rl ZmluZSBQQVJUSVRJT05fTUFQX1RZUEVfMiAyCgoKc3RydWN0IEdlbmVyaWNQYXJ0aXRpb25NYXAx IHsKICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcFR5cGU7CiAgICAgICAgX191OCBwYXJ0aXRpb25N YXBMZW5ndGg7CiAgICAgICAgX191MTYgdm9sU2VxTnVtOwogICAgICAgIF9fdTE2IHBhcnRpdGlv bk51bTsKfTsKCgpzdHJ1Y3QgR2VuZXJpY1BhcnRpdGlvbk1hcDIgewogICAgICAgIF9fdTggcGFy dGl0aW9uTWFwVHlwZTsKICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcExlbmd0aDsKICAgICAgICBf X3U4IHBhcnRpdGlvbklkZW50WzYyXTsKfTsKCgpzdHJ1Y3QgVW5hbGxvY2F0ZWRTcGFjZURlc2Mg ewogICAgICAgIHRhZyBkZXNjVGFnOwogICAgICAgIF9fdTMyIHZvbERlc2NTZXFOdW07CiAgICAg ICAgX191MzIgbnVtQWxsb2NEZXNjczsKICAgICAgICBleHRlbnRfYWQgYWxsb2NEZXNjc1swXTsK fTsKCgpzdHJ1Y3QgVGVybWluYXRpbmdEZXNjIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAg ICBfX3U4IHJlc2VydmVkWzQ5Nl07Cn07CgpzdHJ1Y3QgR2VuZXJpY0Rlc2MKewogICAgICAgIHRh ZyBkZXNjVGFnOwogICAgICAgIF9fdTMyIHZvbERlc2NTZXFOdW07Cn07CgoKc3RydWN0IExvZ2lj YWxWb2xJbnRlZ3JpdHlEZXNjIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICB0aW1lc3Rh bXAgcmVjb3JkaW5nRGF0ZUFuZFRpbWU7CiAgICAgICAgX191MzIgaW50ZWdyaXR5VHlwZTsKICAg ICAgICBleHRlbnRfYWQgbmV4dEludGVncml0eUV4dDsKICAgICAgICBfX3U4IGxvZ2ljYWxWb2xD b250ZW50c1VzZVszMl07CiAgICAgICAgX191MzIgbnVtT2ZQYXJ0aXRpb25zOwogICAgICAgIF9f dTMyIGxlbmd0aE9mSW1wVXNlOwogICAgICAgIF9fdTMyIGZyZWVTcGFjZVRhYmxlWzBdOwogICAg ICAgIF9fdTMyIHNpemVUYWJsZVswXTsKICAgICAgICBfX3U4IGltcFVzZVswXTsKfTsKCgojZGVm aW5lIElOVEVHUklUWV9UWVBFX09QRU4gMAojZGVmaW5lIElOVEVHUklUWV9UWVBFX0NMT1NFIDEK Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgX191MzIgbG9naWNhbEJsb2NrTnVtOwogICAgICAg IF9fdTE2IHBhcnRpdGlvblJlZmVyZW5jZU51bTsKfSBsYl9hZGRyOwoKCiNkZWZpbmUgRVhURU5U X1JFQ09SREVEX0FMTE9DQVRFRCAweDAwCiNkZWZpbmUgRVhURU5UX05PVF9SRUNPUkRFRF9BTExP Q0FURUQgMHgwMQojZGVmaW5lIEVYVEVOVF9OT1RfUkVDT1JERURfTk9UX0FMTE9DQVRFRCAweDAy CiNkZWZpbmUgRVhURU5UX05FWFRfRVhURU5UX0FMTE9DREVDUyAweDAzCgoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgICAgIF9fdTMyIGV4dExlbmd0aDsKICAgICAgICBsYl9hZGRyIGV4dExvY2F0aW9u OwogICAgICAgIF9fdTggaW1wVXNlWzZdOwp9IGxvbmdfYWQ7CgoKCnN0cnVjdCBGaWxlU2V0RGVz YyB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgdGltZXN0YW1wIHJlY29yZGluZ0RhdGVB bmRUaW1lOwogICAgICAgIF9fdTE2IGludGVyY2hhbmdlTHZsOwogICAgICAgIF9fdTE2IG1heElu dGVyY2hhbmdlTHZsOwogICAgICAgIF9fdTMyIGNoYXJTZXRMaXN0OwogICAgICAgIF9fdTMyIG1h eENoYXJTZXRMaXN0OwogICAgICAgIF9fdTMyIGZpbGVTZXROdW07CiAgICAgICAgX191MzIgZmls ZVNldERlc2NOdW07CiAgICAgICAgY2hhcnNwZWMgbG9naWNhbFZvbElkZW50Q2hhclNldDsKICAg ICAgICBkc3RyaW5nIGxvZ2ljYWxWb2xJZGVudFsxMjhdOwogICAgICAgIGNoYXJzcGVjIGZpbGVT ZXRDaGFyU2V0OwogICAgICAgIGRzdHJpbmcgZmlsZVNldElkZW50WzMyXTsKICAgICAgICBkc3Ry aW5nIGNvcHlyaWdodEZpbGVJZGVudFszMl07CiAgICAgICAgZHN0cmluZyBhYnN0cmFjdEZpbGVJ ZGVudFszMl07CiAgICAgICAgbG9uZ19hZCByb290RGlyZWN0b3J5SUNCOwogICAgICAgIEVudGl0 eUlEIGRvbWFpbklkZW50OwogICAgICAgIGxvbmdfYWQgbmV4dEV4dDsKICAgICAgICBsb25nX2Fk IHN0cmVhbURpcmVjdG9yeUlDQjsKICAgICAgICBfX3U4IHJlc2VydmVkWzMyXTsKfTsKCgp0eXBl ZGVmIHN0cnVjdCB7CiAgICAgICAgX191MzIgZXh0TGVuZ3RoOwogICAgICAgIF9fdTMyIGV4dFBv c2l0aW9uOwp9IHNob3J0X2FkOwoKCnN0cnVjdCBQYXJ0aXRpb25IZWFkZXJEZXNjIHsKICAgICAg ICBzaG9ydF9hZCB1bmFsbG9jYXRlZFNwYWNlVGFibGU7CiAgICAgICAgc2hvcnRfYWQgdW5hbGxv Y2F0ZWRTcGFjZUJpdG1hcDsKICAgICAgICBzaG9ydF9hZCBwYXJ0aXRpb25JbnRlZ3JpdHlUYWJs ZTsKICAgICAgICBzaG9ydF9hZCBmcmVlZFNwYWNlVGFibGU7CiAgICAgICAgc2hvcnRfYWQgZnJl ZWRTcGFjZUJpdG1hcDsKICAgICAgICBfX3U4IHJlc2VydmVkWzg4XTsKfTsKCgpzdHJ1Y3QgRmls ZUlkZW50RGVzYwp7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgX191MTYgZmlsZVZlcnNp b25OdW07CiAgICAgICAgX191OCBmaWxlQ2hhcmFjdGVyaXN0aWNzOwogICAgICAgIF9fdTggbGVu Z3RoRmlsZUlkZW50OwogICAgICAgIGxvbmdfYWQgaWNiOwogICAgICAgIF9fdTE2IGxlbmd0aE9m SW1wVXNlOwogICAgICAgIF9fdTggaW1wVXNlWzBdOwogICAgICAgIF9fdTggZmlsZUlkZW50WzBd OwogICAgICAgIF9fdTggcGFkZGluZ1swXTsKfTsKCgojZGVmaW5lIEZJTEVfSElEREVOIDEKI2Rl ZmluZSBGSUxFX0RJUkVDVE9SWSAyCiNkZWZpbmUgRklMRV9ERUxFVEVEIDQKI2RlZmluZSBGSUxF X1BBUkVOVCA4CiNkZWZpbmUgRklMRV9NRVRBREFUQSAweDEwCgoKc3RydWN0IEFsbG9jRXh0RGVz Ywp7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgX191MzIgcHJldmlvdXNBbGxvY0V4dExv Y2F0aW9uOwogICAgICAgIF9fdTMyIGxlbmd0aEFsbG9jRGVzY3M7Cn07CgoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgICAgIF9fdTMyIHByaW9yUmVjb3JkZWROdW1EaXJlY3RFbnRyaWVzOwogICAgICAg IF9fdTE2IHN0cmF0ZWd5VHlwZTsKICAgICAgICBfX3UxNiBzdHJhdGVneVBhcmFtZXRlcjsKICAg ICAgICBfX3UxNiBudW1FbnRyaWVzOwogICAgICAgIF9fdTggcmVzZXJ2ZWQ7CiAgICAgICAgX191 OCBmaWxlVHlwZTsKICAgICAgICBsYl9hZGRyIHBhcmVudElDQkxvY2F0aW9uOwogICAgICAgIF9f dTE2IGZsYWdzOwp9IGljYnRhZzsKCgojZGVmaW5lIEZJTEVfVFlQRV9OT05FIDB4MDBVCiNkZWZp bmUgRklMRV9UWVBFX1VOQUxMT0MgMHgwMVUKI2RlZmluZSBGSUxFX1RZUEVfSU5URUdSSVRZIDB4 MDJVCiNkZWZpbmUgRklMRV9UWVBFX0lORElSRUNUIDB4MDNVCiNkZWZpbmUgRklMRV9UWVBFX0RJ UkVDVE9SWSAweDA0VQojZGVmaW5lIEZJTEVfVFlQRV9SRUdVTEFSIDB4MDVVCiNkZWZpbmUgRklM RV9UWVBFX0JMT0NLIDB4MDZVCiNkZWZpbmUgRklMRV9UWVBFX0NIQVIgMHgwN1UKI2RlZmluZSBG SUxFX1RZUEVfRVhURU5ERUQgMHgwOFUKI2RlZmluZSBGSUxFX1RZUEVfRklGTyAweDA5VQojZGVm aW5lIEZJTEVfVFlQRV9TT0NLRVQgMHgwYVUKI2RlZmluZSBGSUxFX1RZUEVfVEVSTUlOQUwgMHgw YlUKI2RlZmluZSBGSUxFX1RZUEVfU1lNTElOSyAweDBjVQojZGVmaW5lIEZJTEVfVFlQRV9TVFJF QU1ESVIgMHgwZFUKCgojZGVmaW5lIElDQl9GTEFHX0FMTE9DX01BU0sgMHgwMDA3VQojZGVmaW5l IElDQl9GTEFHX1NPUlRFRCAweDAwMDhVCiNkZWZpbmUgSUNCX0ZMQUdfTk9OUkVMT0NBVEFCTEUg MHgwMDEwVQojZGVmaW5lIElDQl9GTEFHX0FSQ0hJVkUgMHgwMDIwVQojZGVmaW5lIElDQl9GTEFH X1NFVFVJRCAweDAwNDBVCiNkZWZpbmUgSUNCX0ZMQUdfU0VUR0lEIDB4MDA4MFUKI2RlZmluZSBJ Q0JfRkxBR19TVElDS1kgMHgwMTAwVQojZGVmaW5lIElDQl9GTEFHX0NPTlRJR1VPVVMgMHgwMjAw VQojZGVmaW5lIElDQl9GTEFHX1NZU1RFTSAweDA0MDBVCiNkZWZpbmUgSUNCX0ZMQUdfVFJBTlNG T1JNRUQgMHgwODAwVQojZGVmaW5lIElDQl9GTEFHX01VTFRJVkVSU0lPTlMgMHgxMDAwVQoKCiNk ZWZpbmUgSUNCX0ZMQUdfQURfU0hPUlQgMAojZGVmaW5lIElDQl9GTEFHX0FEX0xPTkcgMQojZGVm aW5lIElDQl9GTEFHX0FEX0VYVEVOREVEIDIKI2RlZmluZSBJQ0JfRkxBR19BRF9JTl9JQ0IgMwoK CnN0cnVjdCBJbmRpcmVjdEVudHJ5IHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICBpY2J0 YWcgaWNiVGFnOwogICAgICAgIGxvbmdfYWQgaW5kaXJlY3RJQ0I7Cn07CgoKc3RydWN0IFRlcm1p bmFsRW50cnkgewogICAgICAgIHRhZyBkZXNjVGFnOwogICAgICAgIGljYnRhZyBpY2JUYWc7Cn07 CgoKc3RydWN0IEZpbGVFbnRyeSB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgaWNidGFn IGljYlRhZzsKICAgICAgICBfX3UzMiB1aWQ7CiAgICAgICAgX191MzIgZ2lkOwogICAgICAgIF9f dTMyIHBlcm1pc3Npb25zOwogICAgICAgIF9fdTE2IGZpbGVMaW5rQ291bnQ7CiAgICAgICAgX191 OCByZWNvcmRGb3JtYXQ7CiAgICAgICAgX191OCByZWNvcmREaXNwbGF5QXR0cjsKICAgICAgICBf X3UzMiByZWNvcmRMZW5ndGg7CiAgICAgICAgX191NjQgaW5mb3JtYXRpb25MZW5ndGg7CiAgICAg ICAgX191NjQgbG9naWNhbEJsb2Nrc1JlY29yZGVkOwogICAgICAgIHRpbWVzdGFtcCBhY2Nlc3NU aW1lOwogICAgICAgIHRpbWVzdGFtcCBtb2RpZmljYXRpb25UaW1lOwogICAgICAgIHRpbWVzdGFt cCBhdHRyVGltZTsKICAgICAgICBfX3UzMiBjaGVja3BvaW50OwogICAgICAgIGxvbmdfYWQgZXh0 ZW5kZWRBdHRySUNCOwogICAgICAgIEVudGl0eUlEIGltcElkZW50OwogICAgICAgIF9fdTY0IHVu aXF1ZUlEOwogICAgICAgIF9fdTMyIGxlbmd0aEV4dGVuZGVkQXR0cjsKICAgICAgICBfX3UzMiBs ZW5ndGhBbGxvY0Rlc2NzOwogICAgICAgIF9fdTggZXh0ZW5kZWRBdHRyWzBdOwogICAgICAgIF9f dTggYWxsb2NEZXNjc1swXTsKfTsKCgojZGVmaW5lIFBFUk1fT19FWEVDIDB4MDAwMDAwMDFVCiNk ZWZpbmUgUEVSTV9PX1dSSVRFIDB4MDAwMDAwMDJVCiNkZWZpbmUgUEVSTV9PX1JFQUQgMHgwMDAw MDAwNFUKI2RlZmluZSBQRVJNX09fQ0hBVFRSIDB4MDAwMDAwMDhVCiNkZWZpbmUgUEVSTV9PX0RF TEVURSAweDAwMDAwMDEwVQojZGVmaW5lIFBFUk1fR19FWEVDIDB4MDAwMDAwMjBVCiNkZWZpbmUg UEVSTV9HX1dSSVRFIDB4MDAwMDAwNDBVCiNkZWZpbmUgUEVSTV9HX1JFQUQgMHgwMDAwMDA4MFUK I2RlZmluZSBQRVJNX0dfQ0hBVFRSIDB4MDAwMDAxMDBVCiNkZWZpbmUgUEVSTV9HX0RFTEVURSAw eDAwMDAwMjAwVQojZGVmaW5lIFBFUk1fVV9FWEVDIDB4MDAwMDA0MDBVCiNkZWZpbmUgUEVSTV9V X1dSSVRFIDB4MDAwMDA4MDBVCiNkZWZpbmUgUEVSTV9VX1JFQUQgMHgwMDAwMTAwMFUKI2RlZmlu ZSBQRVJNX1VfQ0hBVFRSIDB4MDAwMDIwMDBVCiNkZWZpbmUgUEVSTV9VX0RFTEVURSAweDAwMDA0 MDAwVQoKCiNkZWZpbmUgUkVDT1JEX0ZNVF9OT05FIDAKI2RlZmluZSBSRUNPUkRfRk1UX0ZJWEVE X1BBRCAxCiNkZWZpbmUgUkVDT1JEX0ZNVF9GSVhFRCAyCiNkZWZpbmUgUkVDT1JEX0ZNVF9WQVJJ QUJMRTggMwojZGVmaW5lIFJFQ09SRF9GTVRfVkFSSUFCTEUxNiA0CiNkZWZpbmUgUkVDT1JEX0ZN VF9WQVJJQUJMRTE2X01TQiA1CiNkZWZpbmUgUkVDT1JEX0ZNVF9WQVJJQUJMRTMyIDYKI2RlZmlu ZSBSRUNPUkRfRk1UX1BSSU5UIDcKI2RlZmluZSBSRUNPUkRfRk1UX0xGIDgKI2RlZmluZSBSRUNP UkRfRk1UX0NSIDkKI2RlZmluZSBSRUNPUkRfRk1UX0NSTEYgMTAKI2RlZmluZSBSRUNPUkRfRk1U X0xGQ1IgMTAKCgpzdHJ1Y3QgRXh0ZW5kZWRBdHRySGVhZGVyRGVzYyB7CiAgICAgICAgdGFnIGRl c2NUYWc7CiAgICAgICAgX191MzIgaW1wQXR0ckxvY2F0aW9uOwogICAgICAgIF9fdTMyIGFwcEF0 dHJMb2NhdGlvbjsKfTsKCgpzdHJ1Y3QgR2VuZXJpY0F0dHJGb3JtYXQgewogICAgICAgIF9fdTMy IGF0dHJUeXBlOwogICAgICAgIF9fdTggYXR0clN1YnR5cGU7CiAgICAgICAgX191OCByZXNlcnZl ZFszXTsKICAgICAgICBfX3UzMiBhdHRyTGVuZ3RoOwogICAgICAgIF9fdTggYXR0ckRhdGFbMF07 Cn07CgoKc3RydWN0IENoYXJTZXRBdHRyRm9ybWF0IHsKICAgICAgICBfX3UzMiBhdHRyVHlwZTsK ICAgICAgICBfX3U4IGF0dHJTdWJ0eXBlOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbM107CiAgICAg ICAgX191MzIgYXR0ckxlbmd0aDsKICAgICAgICBfX3UzMiBlc2NhcGVTZXFMZW5ndGg7CiAgICAg ICAgX191OCBjaGFyU2V0VHlwZTsKICAgICAgICBfX3U4IGVzY2FwZVNlcVswXTsKfTsKCgpzdHJ1 Y3QgQWx0ZXJuYXRlUGVybWlzc2lvbnNFeHRlbmRlZEF0dHIgewogICAgICAgIF9fdTMyIGF0dHJU eXBlOwogICAgICAgIF9fdTggYXR0clN1YnR5cGU7CiAgICAgICAgX191OCByZXNlcnZlZFszXTsK ICAgICAgICBfX3UzMiBhdHRyTGVuZ3RoOwogICAgICAgIF9fdTE2IG93bmVySWRlbnQ7CiAgICAg ICAgX191MTYgZ3JvdXBJZGVudDsKICAgICAgICBfX3UxNiBwZXJtaXNzaW9uX1JzbXBfOWIzNTQ0 NTc7Cn07CgoKc3RydWN0IEZpbGVUaW1lc0V4dGVuZGVkQXR0ciB7CiAgICAgICAgX191MzIgYXR0 clR5cGU7CiAgICAgICAgX191OCBhdHRyU3VidHlwZTsKICAgICAgICBfX3U4IHJlc2VydmVkWzNd OwogICAgICAgIF9fdTMyIGF0dHJMZW5ndGg7CiAgICAgICAgX191MzIgZGF0YUxlbmd0aDsKICAg ICAgICBfX3UzMiBmaWxlVGltZUV4aXN0ZW5jZTsKICAgICAgICBfX3U4IGZpbGVUaW1lczsKfTsK CgojZGVmaW5lIEZURV9DUkVBVElPTiAwCiNkZWZpbmUgRlRFX0RFTEVUSU9OIDIKI2RlZmluZSBG VEVfRUZGRUNUSVZFIDMKI2RlZmluZSBGVEVfQkFDS1VQIDUKCgpzdHJ1Y3QgSW5mb1RpbWVzRXh0 ZW5kZWRBdHRyIHsKICAgICAgICBfX3UzMiBhdHRyVHlwZTsKICAgICAgICBfX3U4IGF0dHJTdWJ0 eXBlOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbM107CiAgICAgICAgX191MzIgYXR0ckxlbmd0aDsK ICAgICAgICBfX3UzMiBkYXRhTGVuZ3RoOwogICAgICAgIF9fdTMyIGluZm9UaW1lRXhpc3RlbmNl OwogICAgICAgIF9fdTggaW5mb1RpbWVzWzBdOwp9OwoKCnN0cnVjdCBEZXZpY2VTcGVjaWZpY2F0 aW9uRXh0ZW5kZWRBdHRyIHsKICAgICAgICBfX3UzMiBhdHRyVHlwZTsKICAgICAgICBfX3U4IGF0 dHJTdWJ0eXBlOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbM107CiAgICAgICAgX191MzIgYXR0ckxl bmd0aDsKICAgICAgICBfX3UzMiBpbXBVc2VMZW5ndGg7CiAgICAgICAgX191MzIgbWFqb3JEZXZp Y2VJZGVudDsKICAgICAgICBfX3UzMiBtaW5vckRldmljZUlkZW50OwogICAgICAgIF9fdTggaW1w VXNlWzBdOwp9OwoKCnN0cnVjdCBJbXBVc2VFeHRlbmRlZEF0dHIgewogICAgICAgIF9fdTMyIGF0 dHJUeXBlOwogICAgICAgIF9fdTggYXR0clN1YnR5cGU7CiAgICAgICAgX191OCByZXNlcnZlZFsz XTsKICAgICAgICBfX3UzMiBhdHRyTGVuZ3RoOwogICAgICAgIF9fdTMyIGltcFVzZUxlbmd0aDsK ICAgICAgICBFbnRpdHlJRCBpbXBJZGVudDsKICAgICAgICBfX3U4IGltcFVzZVswXTsKfTsKCgpz dHJ1Y3QgQXBwVXNlRXh0ZW5kZWRBdHRyIHsKICAgICAgICBfX3UzMiBhdHRyVHlwZTsKICAgICAg ICBfX3U4IGF0dHJTdWJ0eXBlOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbM107CiAgICAgICAgX191 MzIgYXR0ckxlbmd0aDsKICAgICAgICBfX3UzMiBhcHBVc2VMZW5ndGg7CiAgICAgICAgRW50aXR5 SUQgYXBwSWRlbnQ7CiAgICAgICAgX191OCBhcHBVc2VbMF07Cn07CgojZGVmaW5lIEVYVEFUVFJf Q0hBUl9TRVQgMQojZGVmaW5lIEVYVEFUVFJfQUxUX1BFUk1TIDMKI2RlZmluZSBFWFRBVFRSX0ZJ TEVfVElNRVMgNQojZGVmaW5lIEVYVEFUVFJfSU5GT19USU1FUyA2CiNkZWZpbmUgRVhUQVRUUl9E RVZfU1BFQyAxMgojZGVmaW5lIEVYVEFUVFJfSU1QX1VTRSAyMDQ4CiNkZWZpbmUgRVhUQVRUUl9B UFBfVVNFIDY1NTM2CgoKCnN0cnVjdCBVbmFsbG9jYXRlZFNwYWNlRW50cnkgewogICAgICAgIHRh ZyBkZXNjVGFnOwogICAgICAgIGljYnRhZyBpY2JUYWc7CiAgICAgICAgX191MzIgbGVuZ3RoQWxs b2NEZXNjczsKICAgICAgICBfX3U4IGFsbG9jRGVzY3NbMF07Cn07CgoKc3RydWN0IFNwYWNlQml0 bWFwRGVzYyB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgX191MzIgbnVtT2ZCaXRzOwog ICAgICAgIF9fdTMyIG51bU9mQnl0ZXM7CiAgICAgICAgX191OCBiaXRtYXBbMF07Cn07CgoKc3Ry dWN0IFBhcnRpdGlvbkludGVncml0eUVudHJ5IHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAg ICBpY2J0YWcgaWNiVGFnOwogICAgICAgIHRpbWVzdGFtcCByZWNvcmRpbmdEYXRlQW5kVGltZTsK ICAgICAgICBfX3U4IGludGVncml0eVR5cGU7CiAgICAgICAgX191OCByZXNlcnZlZFsxNzVdOwog ICAgICAgIEVudGl0eUlEIGltcElkZW50OwogICAgICAgIF9fdTggaW1wVXNlWzI1Nl07Cn07CgoK dHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIF9fdTMyIGV4dExlbmd0aDsKICAgICAgICBfX3UzMiBy ZWNvcmRlZExlbmd0aDsKICAgICAgICBfX3UzMiBpbmZvcm1hdGlvbkxlbmd0aDsKICAgICAgICBs Yl9hZGRyIGV4dExvY2F0aW9uOwp9IGV4dF9hZDsKCgpzdHJ1Y3QgTG9naWNhbFZvbEhlYWRlckRl c2MgewogICAgICAgIF9fdTY0IHVuaXF1ZUlEOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbMjRdOwp9 OwoKCnN0cnVjdCBQYXRoQ29tcG9uZW50IHsKICAgICAgICBfX3U4IGNvbXBvbmVudFR5cGU7CiAg ICAgICAgX191OCBsZW5ndGhDb21wb25lbnRJZGVudDsKICAgICAgICBfX3UxNiBjb21wb25lbnRG aWxlVmVyc2lvbk51bTsKICAgICAgICBkc3RyaW5nIGNvbXBvbmVudElkZW50WzBdOwp9OwoKCnN0 cnVjdCBFeHRlbmRlZEZpbGVFbnRyeSB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgaWNi dGFnIGljYlRhZzsKICAgICAgICBfX3UzMiB1aWQ7CiAgICAgICAgX191MzIgZ2lkOwogICAgICAg IF9fdTMyIHBlcm1pc3Npb25zOwogICAgICAgIF9fdTE2IGZpbGVMaW5rQ291bnQ7CiAgICAgICAg X191OCByZWNvcmRGb3JtYXQ7CiAgICAgICAgX191OCByZWNvcmREaXNwbGF5QXR0cjsKICAgICAg ICBfX3UzMiByZWNvcmRMZW5ndGg7CiAgICAgICAgX191NjQgaW5mb3JtYXRpb25MZW5ndGg7CiAg ICAgICAgX191NjQgb2JqZWN0U2l6ZTsKICAgICAgICBfX3U2NCBsb2dpY2FsQmxvY2tzUmVjb3Jk ZWQ7CiAgICAgICAgdGltZXN0YW1wIGFjY2Vzc1RpbWU7CiAgICAgICAgdGltZXN0YW1wIG1vZGlm aWNhdGlvblRpbWU7CiAgICAgICAgdGltZXN0YW1wIGNyZWF0ZVRpbWU7CiAgICAgICAgdGltZXN0 YW1wIGF0dHJUaW1lOwogICAgICAgIF9fdTMyIGNoZWNrcG9pbnQ7CiAgICAgICAgX191MzIgcmVz ZXJ2ZWQ7CiAgICAgICAgbG9uZ19hZCBleHRlbmRlZEF0dHJJQ0I7CiAgICAgICAgbG9uZ19hZCBz dHJlYW1EaXJlY3RvcnlJQ0I7CiAgICAgICAgRW50aXR5SUQgaW1wSWRlbnQ7CiAgICAgICAgX191 NjQgdW5pcXVlSUQ7CiAgICAgICAgX191MzIgbGVuZ3RoRXh0ZW5kZWRBdHRyOwogICAgICAgIF9f dTMyIGxlbmd0aEFsbG9jRGVzY3M7CiAgICAgICAgX191OCBleHRlbmRlZEF0dHJbMF07CiAgICAg ICAgX191OCBhbGxvY0Rlc2NzWzBdOwp9OwojcHJhZ21hIHBhY2soKQojIDUgImZzL3VkZi91ZGZk ZWNsLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl91ZGYu aCIgMQoKI2RlZmluZSBfTElOVVhfVURGX1VERl9ICiMgMzEgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgvdWRmX3VkZi5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvdWRmXzE2Ny5oIiAxCiMgMzIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvdWRmX3VkZi5oIiAyCgojcHJhZ21hIHBhY2soMSkKCgoKI2RlZmluZSBVREZfQ0hBUl9T RVRfVFlQRSAwCiNkZWZpbmUgVURGX0NIQVJfU0VUX0lORk8gIk9TVEEgQ29tcHJlc3NlZCBVbmlj b2RlIgoKI2RlZmluZSBVREZfSURfREVWRUxPUEVSICIqTGludXggVURGRlMiCgoKc3RydWN0IExv Z2ljYWxWb2xJbnRlZ3JpdHlEZXNjSW1wVXNlCnsKICAgICAgICBFbnRpdHlJRCBpbXBJZGVudDsK ICAgICAgICBfX3UzMiBudW1GaWxlczsKICAgICAgICBfX3UzMiBudW1EaXJzOwogICAgICAgIF9f dTE2IG1pblVERlJlYWRSZXY7CiAgICAgICAgX191MTYgbWluVURGV3JpdGVSZXY7CiAgICAgICAg X191MTYgbWF4VURGV3JpdGVSZXY7Cn07CgoKCnN0cnVjdCBJbXBVc2VWb2xEZXNjSW1wVXNlCnsK ICAgICAgICBjaGFyc3BlYyBMVklDaGFyc2V0OwogICAgICAgIGRzdHJpbmcgbG9naWNhbFZvbElk ZW50WzEyOF07CiAgICAgICAgZHN0cmluZyBMVkluZm8xWzM2XTsKICAgICAgICBkc3RyaW5nIExW SW5mbzJbMzZdOwogICAgICAgIGRzdHJpbmcgTFZJbmZvM1szNl07CiAgICAgICAgRW50aXR5SUQg aW1wSWRlbnQ7CiAgICAgICAgX191OCBpbXBVc2VbMTI4XTsKfTsKCnN0cnVjdCBVZGZQYXJ0aXRp b25NYXAyCnsKICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcFR5cGU7CiAgICAgICAgX191OCBwYXJ0 aXRpb25NYXBMZW5ndGg7CiAgICAgICAgX191OCByZXNlcnZlZDFbMl07CiAgICAgICAgRW50aXR5 SUQgcGFydElkZW50OwogICAgICAgIF9fdTE2IHZvbFNlcU51bTsKICAgICAgICBfX3UxNiBwYXJ0 aXRpb25OdW07CiAgICAgICAgX191OCByZXNlcnZlZDJbMjRdOwp9OwoKCnN0cnVjdCBWaXJ0dWFs UGFydGl0aW9uTWFwCnsKICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcFR5cGU7CiAgICAgICAgX191 OCBwYXJ0aXRpb25NYXBMZW5ndGg7CiAgICAgICAgX191OCByZXNlcnZlZDFbMl07CiAgICAgICAg RW50aXR5SUQgcGFydElkZW50OwogICAgICAgIF9fdTE2IHZvbFNlcU51bTsKICAgICAgICBfX3Ux NiBwYXJ0aXRpb25OdW07CiAgICAgICAgX191OCByZXNlcnZlZDJbMjRdOwp9OwoKCnN0cnVjdCBT cGFyYWJsZVBhcnRpdGlvbk1hcAp7CiAgICAgICAgX191OCBwYXJ0aXRpb25NYXBUeXBlOwogICAg ICAgIF9fdTggcGFydGl0aW9uTWFwTGVuZ3RoOwogICAgICAgIF9fdTggcmVzZXJ2ZWQxWzJdOwog ICAgICAgIEVudGl0eUlEIHBhcnRJZGVudDsKCgogICAgICAgIF9fdTE2IHZvbFNlcU51bTsKICAg ICAgICBfX3UxNiBwYXJ0aXRpb25OdW07CiAgICAgICAgX191MTYgcGFja2V0TGVuZ3RoOwogICAg ICAgIF9fdTggbnVtU3BhcmluZ1RhYmxlczsKICAgICAgICBfX3U4IHJlc2VydmVkMlsxXTsKICAg ICAgICBfX3UzMiBzaXplU3BhcmluZ1RhYmxlOwogICAgICAgIF9fdTMyIGxvY1NwYXJpbmdUYWJs ZVs0XTsKfTsKCgoKc3RydWN0IERWRENvcHlyaWdodEltcFVzZSB7CiAgICAgICAgX191MTYgaGVh ZGVyQ2hlY2tzdW07CiAgICAgICAgX191OCBDR01TSW5mbzsKICAgICAgICBfX3U4IGRhdGFUeXBl OwogICAgICAgIF9fdTggcHJvdGVjdGlvblN5c3RlbUluZm9bNF07Cn07CgoKc3RydWN0IEFESW1w VXNlCnsKICAgICAgICBfX3UxNiBmbGFnczsKICAgICAgICBfX3U4IGltcFVzZVs0XTsKfTsKCgoj ZGVmaW5lIFVERl9FWFRFTlRfTEVOR1RIX01BU0sgMHgzRkZGRkZGRgojZGVmaW5lIFVERl9FWFRF TlRfRkxBR19NQVNLIDB4YzAwMDAwMDAKI2RlZmluZSBVREZfRVhURU5UX0ZMQUdfRVJBU0VEIDB4 NDAwMDAwMDAKIyAxMzUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWRmX3Vk Zi5oIgojZGVmaW5lIEZJTEVfVFlQRV9WQVQxNSAweDBVCgoKc3RydWN0IFZpcnV0YWxBbGxvY2F0 aW9uVGFibGUxNSB7CiAgICAgICAgX191MzIgVmlydHVhbFNlY3RvclswXTsKICAgICAgICBFbnRp dHlJRCBpZGVudDsKICAgICAgICBfX3UzMiBwcmV2aW91c1ZBVElDQjsKICAgfTsKCgoKCiNkZWZp bmUgRklMRV9UWVBFX1ZBVDIwIDB4ZjhVCgoKc3RydWN0IFZpcnR1YWxBbGxvY2F0aW9uVGFibGUy MCB7CiAgICAgICAgX191MTYgbGVuZ3RoSGVhZGVyOwogICAgICAgIF9fdTE2IGxlbmd0aEltcFVz ZTsKICAgICAgICBkc3RyaW5nIGxvZ2ljYWxWb2xJZGVudFsxMjhdOwogICAgICAgIF9fdTMyIHBy ZXZpb3VzVmF0SUNCTG9jOwogICAgICAgIF9fdTMyIG51bUZJRFNGaWxlczsKICAgICAgICBfX3Uz MiBudW1GSURTRGlyZWN0b3JpZXM7CiAgICAgICAgX191MTYgbWluUmVhZFJldmlzaW9uOwogICAg ICAgIF9fdTE2IG1pbldyaXRlUmV2aXNpb247CiAgICAgICAgX191MTYgbWF4V3JpdGVSZXZpc2lv bjsKICAgICAgICBfX3UxNiByZXNlcnZlZDsKICAgICAgICBfX3U4IGltcFVzZVswXTsKICAgICAg ICBfX3UzMiB2YXRFbnRyeVswXTsKfTsKCgoKI2RlZmluZSBGSUxFX1RZUEVfUkVBTFRJTUUgMHhm OVUKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgX191MzIgb3JpZ0xvY2F0aW9uOwogICAgICAg IF9fdTMyIG1hcHBlZExvY2F0aW9uOwp9IFNwYXJpbmdFbnRyeTsKCgpzdHJ1Y3QgU3BhcmluZ1Rh YmxlIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICBFbnRpdHlJRCBzcGFyaW5nSWRlbnQ7 CiAgICAgICAgX191MTYgcmVhbGxvY2F0aW9uVGFibGVMZW47CiAgICAgICAgX191MTYgcmVzZXJ2 ZWQ7CiAgICAgICAgX191MzIgc2VxdWVuY2VOdW07CiAgICAgICAgU3BhcmluZ0VudHJ5IG1hcEVu dHJ5WzBdOwp9OwoKCiNkZWZpbmUgVURGX0lEX0NPTVBMSUFOVCAiKk9TVEEgVURGIENvbXBsaWFu dCIKI2RlZmluZSBVREZfSURfTFZfSU5GTyAiKlVERiBMViBJbmZvIgojZGVmaW5lIFVERl9JRF9G UkVFX0VBICIqVURGIEZyZWVFQVNwYWNlIgojZGVmaW5lIFVERl9JRF9GUkVFX0FQUF9FQSAiKlVE RiBGcmVlQXBwRUFTcGFjZSIKI2RlZmluZSBVREZfSURfRFZEX0NHTVMgIipVREYgRFZEIENHTVMg SW5mbyIKI2RlZmluZSBVREZfSURfT1MyX0VBICIqVURGIE9TLzIgRUEiCiNkZWZpbmUgVURGX0lE X09TMl9FQV9MRU5HVEggIipVREYgT1MvMiBFQUxlbmd0aCIKI2RlZmluZSBVREZfSURfTUFDX1ZP TFVNRSAiKlVERiBNYWMgVm9sdW1lSW5mbyIKI2RlZmluZSBVREZfSURfTUFDX0ZJTkRFUiAiKlVE RiBNYWMgRmluZGVySW5mbyIKI2RlZmluZSBVREZfSURfTUFDX1VOSVFVRSAiKlVERiBNYWMgVW5p cXVlSURUYWJsZSIKI2RlZmluZSBVREZfSURfTUFDX1JFU09VUkNFICIqVURGIE1hYyBSZXNvdXJj ZUZvcmsiCiNkZWZpbmUgVURGX0lEX1ZJUlRVQUwgIipVREYgVmlydHVhbCBQYXJ0aXRpb24iCiNk ZWZpbmUgVURGX0lEX1NQQVJBQkxFICIqVURGIFNwYXJhYmxlIFBhcnRpdGlvbiIKI2RlZmluZSBV REZfSURfQUxMT0MgIipVREYgVmlydHVhbCBBbGxvYyBUYmwiCiNkZWZpbmUgVURGX0lEX1NQQVJJ TkcgIipVREYgU3BhcmluZyBUYWJsZSIKCgojZGVmaW5lIFVERl9PU19DTEFTU19VTkRFRiAweDAw VQojZGVmaW5lIFVERl9PU19DTEFTU19ET1MgMHgwMVUKI2RlZmluZSBVREZfT1NfQ0xBU1NfT1My IDB4MDJVCiNkZWZpbmUgVURGX09TX0NMQVNTX01BQyAweDAzVQojZGVmaW5lIFVERl9PU19DTEFT U19VTklYIDB4MDRVCiNkZWZpbmUgVURGX09TX0NMQVNTX1dJTjk1IDB4MDVVCiNkZWZpbmUgVURG X09TX0NMQVNTX1dJTk5UIDB4MDZVCiNkZWZpbmUgVURGX09TX0lEX1VOREVGIDB4MDBVCiNkZWZp bmUgVURGX09TX0lEX0RPUyAweDAwVQojZGVmaW5lIFVERl9PU19JRF9PUzIgMHgwMFUKI2RlZmlu ZSBVREZfT1NfSURfTUFDIDB4MDBVCiNkZWZpbmUgVURGX09TX0lEX1VOSVggMHgwMFUKI2RlZmlu ZSBVREZfT1NfSURfV0lOOTUgMHgwMFUKI2RlZmluZSBVREZfT1NfSURfV0lOTlQgMHgwMFUKI2Rl ZmluZSBVREZfT1NfSURfQUlYIDB4MDFVCiNkZWZpbmUgVURGX09TX0lEX1NPTEFSSVMgMHgwMlUK I2RlZmluZSBVREZfT1NfSURfSFBVWCAweDAzVQojZGVmaW5lIFVERl9PU19JRF9JUklYIDB4MDRV CiNkZWZpbmUgVURGX09TX0lEX0xJTlVYIDB4MDVVCiNkZWZpbmUgVURGX09TX0lEX01LTElOVVgg MHgwNlUKI2RlZmluZSBVREZfT1NfSURfRlJFRUJTRCAweDA3VQoKI2RlZmluZSBVREZfTkFNRV9Q QUQgNAojZGVmaW5lIFVERl9OQU1FX0xFTiAyNTUKI2RlZmluZSBVREZfUEFUSF9MRU4gMTAyMwoK I3ByYWdtYSBwYWNrKCkKIyA2ICJmcy91ZGYvdWRmZGVjbC5oIiAyCiMgMSAiZnMvdWRmL3VkZmVu ZC5oIiAxCgojZGVmaW5lIF9fVURGX0VORElBTl9ICiMgNTMgImZzL3VkZi91ZGZlbmQuaCIKIyAx ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9ieXRlb3JkZXIuaCIgMQoKI2RlZmlu ZSBfQVNNX0lBNjRfQllURU9SREVSX0gKCgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2FzbS90eXBlcy5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv YXNtL2J5dGVvcmRlci5oIiAyCgpzdGF0aWMgX19pbmxpbmVfXyBfX2NvbnN0X18gX191NjQKX19p YTY0X3N3YWI2NCAoX191NjQgeCkKewogICAgICAgIF9fdTY0IHJlc3VsdDsKCiAgICAgICAgX19h c21fXyAoIm11eDEgJTA9JTEsQHJldiIgOiAiPXIiIChyZXN1bHQpIDogInIiICh4KSk7CiAgICAg ICAgcmV0dXJuIHJlc3VsdDsKfQoKc3RhdGljIF9faW5saW5lX18gX19jb25zdF9fIF9fdTMyCl9f aWE2NF9zd2FiMzIgKF9fdTMyIHgpCnsKICAgICAgICByZXR1cm4gX19pYTY0X3N3YWI2NCh4KSA+ PiAzMjsKfQoKc3RhdGljIF9faW5saW5lX18gX19jb25zdF9fIF9fdTE2Cl9faWE2NF9zd2FiMTYo X191MTYgeCkKewogICAgICAgIHJldHVybiBfX2lhNjRfc3dhYjY0KHgpID4+IDQ4Owp9CgojZGVm aW5lIF9fYXJjaF9fc3dhYjY0KHgpIF9faWE2NF9zd2FiNjQoeCkKI2RlZmluZSBfX2FyY2hfX3N3 YWIzMih4KSBfX2lhNjRfc3dhYjMyKHgpCiNkZWZpbmUgX19hcmNoX19zd2FiMTYoeCkgX19pYTY0 X3N3YWIxNih4KQoKI2RlZmluZSBfX0JZVEVPUkRFUl9IQVNfVTY0X18KCiMgMSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oIiAxCgoj ZGVmaW5lIF9MSU5VWF9CWVRFT1JERVJfTElUVExFX0VORElBTl9ICgoKI2RlZmluZSBfX0xJVFRM RV9FTkRJQU4gMTIzNAoKCiNkZWZpbmUgX19MSVRUTEVfRU5ESUFOX0JJVEZJRUxECgoKIyAxICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9zd2FiLmgiIDEKCiNk ZWZpbmUgX0xJTlVYX0JZVEVPUkRFUl9TV0FCX0gKIyAyMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9ieXRlb3JkZXIvc3dhYi5oIgojZGVmaW5lIF9fX3N3YWIxNih4KSAoeyBf X3UxNiBfX3ggPSAoeCk7ICgoX191MTYpKCAoKChfX3UxNikoX194KSAmIChfX3UxNikweDAwZmZV KSA8PCA4KSB8ICgoKF9fdTE2KShfX3gpICYgKF9fdTE2KTB4ZmYwMFUpID4+IDgpICkpOyB9KQoK CgoKCgoKI2RlZmluZSBfX19zd2FiMzIoeCkgKHsgX191MzIgX194ID0gKHgpOyAoKF9fdTMyKSgg KCgoX191MzIpKF9feCkgJiAoX191MzIpMHgwMDAwMDBmZlVMKSA8PCAyNCkgfCAoKChfX3UzMiko X194KSAmIChfX3UzMikweDAwMDBmZjAwVUwpIDw8IDgpIHwgKCgoX191MzIpKF9feCkgJiAoX191 MzIpMHgwMGZmMDAwMFVMKSA+PiA4KSB8ICgoKF9fdTMyKShfX3gpICYgKF9fdTMyKTB4ZmYwMDAw MDBVTCkgPj4gMjQpICkpOyB9KQojIDM5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L2J5dGVvcmRlci9zd2FiLmgiCiNkZWZpbmUgX19fc3dhYjY0KHgpICh7IF9fdTY0IF9feCA9 ICh4KTsgKChfX3U2NCkoIChfX3U2NCkoKChfX3U2NCkoX194KSAmIChfX3U2NCkweDAwMDAwMDAw MDAwMDAwZmZVTEwpIDw8IDU2KSB8IChfX3U2NCkoKChfX3U2NCkoX194KSAmIChfX3U2NCkweDAw MDAwMDAwMDAwMGZmMDBVTEwpIDw8IDQwKSB8IChfX3U2NCkoKChfX3U2NCkoX194KSAmIChfX3U2 NCkweDAwMDAwMDAwMDBmZjAwMDBVTEwpIDw8IDI0KSB8IChfX3U2NCkoKChfX3U2NCkoX194KSAm IChfX3U2NCkweDAwMDAwMDAwZmYwMDAwMDBVTEwpIDw8IDgpIHwgKF9fdTY0KSgoKF9fdTY0KShf X3gpICYgKF9fdTY0KTB4MDAwMDAwZmYwMDAwMDAwMFVMTCkgPj4gOCkgfCAoX191NjQpKCgoX191 NjQpKF9feCkgJiAoX191NjQpMHgwMDAwZmYwMDAwMDAwMDAwVUxMKSA+PiAyNCkgfCAoX191NjQp KCgoX191NjQpKF9feCkgJiAoX191NjQpMHgwMGZmMDAwMDAwMDAwMDAwVUxMKSA+PiA0MCkgfCAo X191NjQpKCgoX191NjQpKF9feCkgJiAoX191NjQpMHhmZjAwMDAwMDAwMDAwMDAwVUxMKSA+PiA1 NikgKSk7IH0pCiMgNTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYnl0ZW9y ZGVyL3N3YWIuaCIKI2RlZmluZSBfX19jb25zdGFudF9zd2FiMTYoeCkgKChfX3UxNikoICgoKF9f dTE2KSh4KSAmIChfX3UxNikweDAwZmZVKSA8PCA4KSB8ICgoKF9fdTE2KSh4KSAmIChfX3UxNikw eGZmMDBVKSA+PiA4KSApKQoKCgojZGVmaW5lIF9fX2NvbnN0YW50X3N3YWIzMih4KSAoKF9fdTMy KSggKCgoX191MzIpKHgpICYgKF9fdTMyKTB4MDAwMDAwZmZVTCkgPDwgMjQpIHwgKCgoX191MzIp KHgpICYgKF9fdTMyKTB4MDAwMGZmMDBVTCkgPDwgOCkgfCAoKChfX3UzMikoeCkgJiAoX191MzIp MHgwMGZmMDAwMFVMKSA+PiA4KSB8ICgoKF9fdTMyKSh4KSAmIChfX3UzMikweGZmMDAwMDAwVUwp ID4+IDI0KSApKQoKCgoKCiNkZWZpbmUgX19fY29uc3RhbnRfc3dhYjY0KHgpICgoX191NjQpKCAo X191NjQpKCgoX191NjQpKHgpICYgKF9fdTY0KTB4MDAwMDAwMDAwMDAwMDBmZlVMTCkgPDwgNTYp IHwgKF9fdTY0KSgoKF9fdTY0KSh4KSAmIChfX3U2NCkweDAwMDAwMDAwMDAwMGZmMDBVTEwpIDw8 IDQwKSB8IChfX3U2NCkoKChfX3U2NCkoeCkgJiAoX191NjQpMHgwMDAwMDAwMDAwZmYwMDAwVUxM KSA8PCAyNCkgfCAoX191NjQpKCgoX191NjQpKHgpICYgKF9fdTY0KTB4MDAwMDAwMDBmZjAwMDAw MFVMTCkgPDwgOCkgfCAoX191NjQpKCgoX191NjQpKHgpICYgKF9fdTY0KTB4MDAwMDAwZmYwMDAw MDAwMFVMTCkgPj4gOCkgfCAoX191NjQpKCgoX191NjQpKHgpICYgKF9fdTY0KTB4MDAwMGZmMDAw MDAwMDAwMFVMTCkgPj4gMjQpIHwgKF9fdTY0KSgoKF9fdTY0KSh4KSAmIChfX3U2NCkweDAwZmYw MDAwMDAwMDAwMDBVTEwpID4+IDQwKSB8IChfX3U2NCkoKChfX3U2NCkoeCkgJiAoX191NjQpMHhm ZjAwMDAwMDAwMDAwMDAwVUxMKSA+PiA1NikgKSkKIyA4OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9ieXRlb3JkZXIvc3dhYi5oIgojZGVmaW5lIF9fYXJjaF9fc3dhYjE2cCh4 KSBfX2FyY2hfX3N3YWIxNigqKHgpKQoKCiNkZWZpbmUgX19hcmNoX19zd2FiMzJwKHgpIF9fYXJj aF9fc3dhYjMyKCooeCkpCgoKI2RlZmluZSBfX2FyY2hfX3N3YWI2NHAoeCkgX19hcmNoX19zd2Fi NjQoKih4KSkKCgoKI2RlZmluZSBfX2FyY2hfX3N3YWIxNnMoeCkgZG8geyAqKHgpID0gX19hcmNo X19zd2FiMTZwKCh4KSk7IH0gd2hpbGUgKDApCgoKI2RlZmluZSBfX2FyY2hfX3N3YWIzMnMoeCkg ZG8geyAqKHgpID0gX19hcmNoX19zd2FiMzJwKCh4KSk7IH0gd2hpbGUgKDApCgoKI2RlZmluZSBf X2FyY2hfX3N3YWI2NHMoeCkgZG8geyAqKHgpID0gX19hcmNoX19zd2FiNjRwKCh4KSk7IH0gd2hp bGUgKDApCgoKCgoKCgojZGVmaW5lIF9fc3dhYjE2KHgpIChfX2J1aWx0aW5fY29uc3RhbnRfcCgo X191MTYpKHgpKSA/IF9fX3N3YWIxNigoeCkpIDogX19mc3dhYjE2KCh4KSkpCgoKCiNkZWZpbmUg X19zd2FiMzIoeCkgKF9fYnVpbHRpbl9jb25zdGFudF9wKChfX3UzMikoeCkpID8gX19fc3dhYjMy KCh4KSkgOiBfX2Zzd2FiMzIoKHgpKSkKCgoKI2RlZmluZSBfX3N3YWI2NCh4KSAoX19idWlsdGlu X2NvbnN0YW50X3AoKF9fdTY0KSh4KSkgPyBfX19zd2FiNjQoKHgpKSA6IF9fZnN3YWI2NCgoeCkp KQojIDEzMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvc3dh Yi5oIgpleHRlcm4gX19pbmxpbmVfXyBfX2NvbnN0X18gX191MTYgX19mc3dhYjE2KF9fdTE2IHgp CnsKICAgICAgICByZXR1cm4gX19pYTY0X3N3YWIxNih4KTsKfQpleHRlcm4gX19pbmxpbmVfXyBf X3UxNiBfX3N3YWIxNnAoX191MTYgKngpCnsKICAgICAgICByZXR1cm4gX19pYTY0X3N3YWIxNigq KHgpKTsKfQpleHRlcm4gX19pbmxpbmVfXyB2b2lkIF9fc3dhYjE2cyhfX3UxNiAqYWRkcikKewog ICAgICAgIGRvIHsgKihhZGRyKSA9IF9faWE2NF9zd2FiMTYoKigoYWRkcikpKTsgfSB3aGlsZSAo MCk7Cn0KCmV4dGVybiBfX2lubGluZV9fIF9fY29uc3RfXyBfX3UzMiBfX2Zzd2FiMzIoX191MzIg eCkKewogICAgICAgIHJldHVybiBfX2lhNjRfc3dhYjMyKHgpOwp9CmV4dGVybiBfX2lubGluZV9f IF9fdTMyIF9fc3dhYjMycChfX3UzMiAqeCkKewogICAgICAgIHJldHVybiBfX2lhNjRfc3dhYjMy KCooeCkpOwp9CmV4dGVybiBfX2lubGluZV9fIHZvaWQgX19zd2FiMzJzKF9fdTMyICphZGRyKQp7 CiAgICAgICAgZG8geyAqKGFkZHIpID0gX19pYTY0X3N3YWIzMigqKChhZGRyKSkpOyB9IHdoaWxl ICgwKTsKfQoKCmV4dGVybiBfX2lubGluZV9fIF9fY29uc3RfXyBfX3U2NCBfX2Zzd2FiNjQoX191 NjQgeCkKewoKCgoKCiAgICAgICAgcmV0dXJuIF9faWE2NF9zd2FiNjQoeCk7Cgp9CmV4dGVybiBf X2lubGluZV9fIF9fdTY0IF9fc3dhYjY0cChfX3U2NCAqeCkKewogICAgICAgIHJldHVybiBfX2lh NjRfc3dhYjY0KCooeCkpOwp9CmV4dGVybiBfX2lubGluZV9fIHZvaWQgX19zd2FiNjRzKF9fdTY0 ICphZGRyKQp7CiAgICAgICAgZG8geyAqKGFkZHIpID0gX19pYTY0X3N3YWI2NCgqKChhZGRyKSkp OyB9IHdoaWxlICgwKTsKfQoKCgojZGVmaW5lIHN3YWIxNiBfX3N3YWIxNgojZGVmaW5lIHN3YWIz MiBfX3N3YWIzMgojZGVmaW5lIHN3YWI2NCBfX3N3YWI2NAojZGVmaW5lIHN3YWIxNnAgX19zd2Fi MTZwCiNkZWZpbmUgc3dhYjMycCBfX3N3YWIzMnAKI2RlZmluZSBzd2FiNjRwIF9fc3dhYjY0cAoj ZGVmaW5lIHN3YWIxNnMgX19zd2FiMTZzCiNkZWZpbmUgc3dhYjMycyBfX3N3YWIzMnMKI2RlZmlu ZSBzd2FiNjRzIF9fc3dhYjY0cwojIDEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgiIDIKCiNkZWZpbmUgX19jb25zdGFudF9odG9u bCh4KSBfX19jb25zdGFudF9zd2FiMzIoKHgpKQojZGVmaW5lIF9fY29uc3RhbnRfbnRvaGwoeCkg X19fY29uc3RhbnRfc3dhYjMyKCh4KSkKI2RlZmluZSBfX2NvbnN0YW50X2h0b25zKHgpIF9fX2Nv bnN0YW50X3N3YWIxNigoeCkpCiNkZWZpbmUgX19jb25zdGFudF9udG9ocyh4KSBfX19jb25zdGFu dF9zd2FiMTYoKHgpKQojZGVmaW5lIF9fY29uc3RhbnRfY3B1X3RvX2xlNjQoeCkgKChfX3U2NCko eCkpCiNkZWZpbmUgX19jb25zdGFudF9sZTY0X3RvX2NwdSh4KSAoKF9fdTY0KSh4KSkKI2RlZmlu ZSBfX2NvbnN0YW50X2NwdV90b19sZTMyKHgpICgoX191MzIpKHgpKQojZGVmaW5lIF9fY29uc3Rh bnRfbGUzMl90b19jcHUoeCkgKChfX3UzMikoeCkpCiNkZWZpbmUgX19jb25zdGFudF9jcHVfdG9f bGUxNih4KSAoKF9fdTE2KSh4KSkKI2RlZmluZSBfX2NvbnN0YW50X2xlMTZfdG9fY3B1KHgpICgo X191MTYpKHgpKQojZGVmaW5lIF9fY29uc3RhbnRfY3B1X3RvX2JlNjQoeCkgX19fY29uc3RhbnRf c3dhYjY0KCh4KSkKI2RlZmluZSBfX2NvbnN0YW50X2JlNjRfdG9fY3B1KHgpIF9fX2NvbnN0YW50 X3N3YWI2NCgoeCkpCiNkZWZpbmUgX19jb25zdGFudF9jcHVfdG9fYmUzMih4KSBfX19jb25zdGFu dF9zd2FiMzIoKHgpKQojZGVmaW5lIF9fY29uc3RhbnRfYmUzMl90b19jcHUoeCkgX19fY29uc3Rh bnRfc3dhYjMyKCh4KSkKI2RlZmluZSBfX2NvbnN0YW50X2NwdV90b19iZTE2KHgpIF9fX2NvbnN0 YW50X3N3YWIxNigoeCkpCiNkZWZpbmUgX19jb25zdGFudF9iZTE2X3RvX2NwdSh4KSBfX19jb25z dGFudF9zd2FiMTYoKHgpKQojZGVmaW5lIF9fY3B1X3RvX2xlNjQoeCkgKChfX3U2NCkoeCkpCiNk ZWZpbmUgX19sZTY0X3RvX2NwdSh4KSAoKF9fdTY0KSh4KSkKI2RlZmluZSBfX2NwdV90b19sZTMy KHgpICgoX191MzIpKHgpKQojZGVmaW5lIF9fbGUzMl90b19jcHUoeCkgKChfX3UzMikoeCkpCiNk ZWZpbmUgX19jcHVfdG9fbGUxNih4KSAoKF9fdTE2KSh4KSkKI2RlZmluZSBfX2xlMTZfdG9fY3B1 KHgpICgoX191MTYpKHgpKQojZGVmaW5lIF9fY3B1X3RvX2JlNjQoeCkgX19zd2FiNjQoKHgpKQoj ZGVmaW5lIF9fYmU2NF90b19jcHUoeCkgX19zd2FiNjQoKHgpKQojZGVmaW5lIF9fY3B1X3RvX2Jl MzIoeCkgX19zd2FiMzIoKHgpKQojZGVmaW5lIF9fYmUzMl90b19jcHUoeCkgX19zd2FiMzIoKHgp KQojZGVmaW5lIF9fY3B1X3RvX2JlMTYoeCkgX19zd2FiMTYoKHgpKQojZGVmaW5lIF9fYmUxNl90 b19jcHUoeCkgX19zd2FiMTYoKHgpKQojZGVmaW5lIF9fY3B1X3RvX2xlNjRwKHgpICgqKF9fdTY0 KikoeCkpCiNkZWZpbmUgX19sZTY0X3RvX2NwdXAoeCkgKCooX191NjQqKSh4KSkKI2RlZmluZSBf X2NwdV90b19sZTMycCh4KSAoKihfX3UzMiopKHgpKQojZGVmaW5lIF9fbGUzMl90b19jcHVwKHgp ICgqKF9fdTMyKikoeCkpCiNkZWZpbmUgX19jcHVfdG9fbGUxNnAoeCkgKCooX191MTYqKSh4KSkK I2RlZmluZSBfX2xlMTZfdG9fY3B1cCh4KSAoKihfX3UxNiopKHgpKQojZGVmaW5lIF9fY3B1X3Rv X2JlNjRwKHgpIF9fc3dhYjY0cCgoeCkpCiNkZWZpbmUgX19iZTY0X3RvX2NwdXAoeCkgX19zd2Fi NjRwKCh4KSkKI2RlZmluZSBfX2NwdV90b19iZTMycCh4KSBfX3N3YWIzMnAoKHgpKQojZGVmaW5l IF9fYmUzMl90b19jcHVwKHgpIF9fc3dhYjMycCgoeCkpCiNkZWZpbmUgX19jcHVfdG9fYmUxNnAo eCkgX19zd2FiMTZwKCh4KSkKI2RlZmluZSBfX2JlMTZfdG9fY3B1cCh4KSBfX3N3YWIxNnAoKHgp KQojZGVmaW5lIF9fY3B1X3RvX2xlNjRzKHgpIGRvIHt9IHdoaWxlICgwKQojZGVmaW5lIF9fbGU2 NF90b19jcHVzKHgpIGRvIHt9IHdoaWxlICgwKQojZGVmaW5lIF9fY3B1X3RvX2xlMzJzKHgpIGRv IHt9IHdoaWxlICgwKQojZGVmaW5lIF9fbGUzMl90b19jcHVzKHgpIGRvIHt9IHdoaWxlICgwKQoj ZGVmaW5lIF9fY3B1X3RvX2xlMTZzKHgpIGRvIHt9IHdoaWxlICgwKQojZGVmaW5lIF9fbGUxNl90 b19jcHVzKHgpIGRvIHt9IHdoaWxlICgwKQojZGVmaW5lIF9fY3B1X3RvX2JlNjRzKHgpIF9fc3dh YjY0cygoeCkpCiNkZWZpbmUgX19iZTY0X3RvX2NwdXMoeCkgX19zd2FiNjRzKCh4KSkKI2RlZmlu ZSBfX2NwdV90b19iZTMycyh4KSBfX3N3YWIzMnMoKHgpKQojZGVmaW5lIF9fYmUzMl90b19jcHVz KHgpIF9fc3dhYjMycygoeCkpCiNkZWZpbmUgX19jcHVfdG9fYmUxNnMoeCkgX19zd2FiMTZzKCh4 KSkKI2RlZmluZSBfX2JlMTZfdG9fY3B1cyh4KSBfX3N3YWIxNnMoKHgpKQoKIyAxICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9nZW5lcmljLmgiIDEKCiNkZWZp bmUgX0xJTlVYX0JZVEVPUkRFUl9HRU5FUklDX0gKIyA4NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9ieXRlb3JkZXIvZ2VuZXJpYy5oIgojZGVmaW5lIGNwdV90b19sZTY0IF9f Y3B1X3RvX2xlNjQKI2RlZmluZSBsZTY0X3RvX2NwdSBfX2xlNjRfdG9fY3B1CiNkZWZpbmUgY3B1 X3RvX2xlMzIgX19jcHVfdG9fbGUzMgojZGVmaW5lIGxlMzJfdG9fY3B1IF9fbGUzMl90b19jcHUK I2RlZmluZSBjcHVfdG9fbGUxNiBfX2NwdV90b19sZTE2CiNkZWZpbmUgbGUxNl90b19jcHUgX19s ZTE2X3RvX2NwdQojZGVmaW5lIGNwdV90b19iZTY0IF9fY3B1X3RvX2JlNjQKI2RlZmluZSBiZTY0 X3RvX2NwdSBfX2JlNjRfdG9fY3B1CiNkZWZpbmUgY3B1X3RvX2JlMzIgX19jcHVfdG9fYmUzMgoj ZGVmaW5lIGJlMzJfdG9fY3B1IF9fYmUzMl90b19jcHUKI2RlZmluZSBjcHVfdG9fYmUxNiBfX2Nw dV90b19iZTE2CiNkZWZpbmUgYmUxNl90b19jcHUgX19iZTE2X3RvX2NwdQojZGVmaW5lIGNwdV90 b19sZTY0cCBfX2NwdV90b19sZTY0cAojZGVmaW5lIGxlNjRfdG9fY3B1cCBfX2xlNjRfdG9fY3B1 cAojZGVmaW5lIGNwdV90b19sZTMycCBfX2NwdV90b19sZTMycAojZGVmaW5lIGxlMzJfdG9fY3B1 cCBfX2xlMzJfdG9fY3B1cAojZGVmaW5lIGNwdV90b19sZTE2cCBfX2NwdV90b19sZTE2cAojZGVm aW5lIGxlMTZfdG9fY3B1cCBfX2xlMTZfdG9fY3B1cAojZGVmaW5lIGNwdV90b19iZTY0cCBfX2Nw dV90b19iZTY0cAojZGVmaW5lIGJlNjRfdG9fY3B1cCBfX2JlNjRfdG9fY3B1cAojZGVmaW5lIGNw dV90b19iZTMycCBfX2NwdV90b19iZTMycAojZGVmaW5lIGJlMzJfdG9fY3B1cCBfX2JlMzJfdG9f Y3B1cAojZGVmaW5lIGNwdV90b19iZTE2cCBfX2NwdV90b19iZTE2cAojZGVmaW5lIGJlMTZfdG9f Y3B1cCBfX2JlMTZfdG9fY3B1cAojZGVmaW5lIGNwdV90b19sZTY0cyBfX2NwdV90b19sZTY0cwoj ZGVmaW5lIGxlNjRfdG9fY3B1cyBfX2xlNjRfdG9fY3B1cwojZGVmaW5lIGNwdV90b19sZTMycyBf X2NwdV90b19sZTMycwojZGVmaW5lIGxlMzJfdG9fY3B1cyBfX2xlMzJfdG9fY3B1cwojZGVmaW5l IGNwdV90b19sZTE2cyBfX2NwdV90b19sZTE2cwojZGVmaW5lIGxlMTZfdG9fY3B1cyBfX2xlMTZf dG9fY3B1cwojZGVmaW5lIGNwdV90b19iZTY0cyBfX2NwdV90b19iZTY0cwojZGVmaW5lIGJlNjRf dG9fY3B1cyBfX2JlNjRfdG9fY3B1cwojZGVmaW5lIGNwdV90b19iZTMycyBfX2NwdV90b19iZTMy cwojZGVmaW5lIGJlMzJfdG9fY3B1cyBfX2JlMzJfdG9fY3B1cwojZGVmaW5lIGNwdV90b19iZTE2 cyBfX2NwdV90b19iZTE2cwojZGVmaW5lIGJlMTZfdG9fY3B1cyBfX2JlMTZfdG9fY3B1cwojIDE1 MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvZ2VuZXJpYy5o IgpleHRlcm4gX191MzIgbnRvaGwoX191MzIpOwpleHRlcm4gX191MzIgaHRvbmwoX191MzIpOwoK CgoKZXh0ZXJuIHVuc2lnbmVkIHNob3J0IGludCBudG9ocyh1bnNpZ25lZCBzaG9ydCBpbnQpOwpl eHRlcm4gdW5zaWduZWQgc2hvcnQgaW50IGh0b25zKHVuc2lnbmVkIHNob3J0IGludCk7CgoKCgoj ZGVmaW5lIF9fX2h0b25sKHgpIF9fY3B1X3RvX2JlMzIoeCkKI2RlZmluZSBfX19odG9ucyh4KSBf X2NwdV90b19iZTE2KHgpCiNkZWZpbmUgX19fbnRvaGwoeCkgX19iZTMyX3RvX2NwdSh4KQojZGVm aW5lIF9fX250b2hzKHgpIF9fYmUxNl90b19jcHUoeCkKCgojZGVmaW5lIGh0b25sKHgpIF9fX2h0 b25sKHgpCiNkZWZpbmUgbnRvaGwoeCkgX19fbnRvaGwoeCkKCgoKCiNkZWZpbmUgaHRvbnMoeCkg X19faHRvbnMoeCkKI2RlZmluZSBudG9ocyh4KSBfX19udG9ocyh4KQojIDY3ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgiIDIKIyAz OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYnl0ZW9yZGVyLmgiIDIKIyA1NCAi ZnMvdWRmL3VkZmVuZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9zdHJpbmcuaCIgMQoKI2RlZmluZSBfTElOVVhfU1RSSU5HX0hfCgoKCgoKIyAxICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyA5ICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9zdGRkZWYuaCIgMQojIDEwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L3N0cmluZy5oIiAyCgoKCgoKZXh0ZXJuIGNoYXIgKiBfX19zdHJ0b2tfUnNt cF8yOTgwNWMxMzsKZXh0ZXJuIGNoYXIgKiBzdHJwYnJrKGNvbnN0IGNoYXIgKixjb25zdCBjaGFy ICopOwpleHRlcm4gY2hhciAqIHN0cnRva19Sc21wX2VlOWMxYmQ0KGNoYXIgKixjb25zdCBjaGFy ICopOwpleHRlcm4gY2hhciAqIHN0cnNlcF9Sc21wXzg1ZGY5YjZjKGNoYXIgKiosY29uc3QgY2hh ciAqKTsKZXh0ZXJuIF9fa2VybmVsX3NpemVfdCBzdHJzcG5fUnNtcF8zZmE5MTNkYShjb25zdCBj aGFyICosY29uc3QgY2hhciAqKTsKCgoKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvYXNtL3N0cmluZy5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9TVFJJTkdfSAojIDEyICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zdHJpbmcuaCIKIyAxICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTMgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvYXNtL3N0cmluZy5oIiAyCgojZGVmaW5lIF9fSEFWRV9BUkNIX1NUUkxFTiAx CiNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNU0VUIDEKI2RlZmluZSBfX0hBVkVfQVJDSF9NRU1DUFkg MQojZGVmaW5lIF9fSEFWRV9BUkNIX0JDT1BZIDEKCmV4dGVybiBfX2tlcm5lbF9zaXplX3Qgc3Ry bGVuX1JzbXBfZGNiNTY3MWQgKGNvbnN0IGNoYXIgKik7CmV4dGVybiB2b2lkICptZW1zZXQgKHZv aWQgKiwgaW50LCBfX2tlcm5lbF9zaXplX3QpOwpleHRlcm4gdm9pZCAqbWVtY3B5ICh2b2lkICos IGNvbnN0IHZvaWQgKiwgX19rZXJuZWxfc2l6ZV90KTsKIyAyNiAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9zdHJpbmcuaCIgMgoKCmV4dGVybiBjaGFyICogc3RyY3B5X1JzbXBf ZTkxNGU0MWUoY2hhciAqLGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIGNoYXIgKiBzdHJuY3B5X1Jz bXBfN2VjOWJmYmMoY2hhciAqLGNvbnN0IGNoYXIgKiwgX19rZXJuZWxfc2l6ZV90KTsKCgpleHRl cm4gY2hhciAqIHN0cmNhdF9Sc21wXzA2MTY1MWJlKGNoYXIgKiwgY29uc3QgY2hhciAqKTsKCgpl eHRlcm4gY2hhciAqIHN0cm5jYXRfUnNtcF8yMzQ1MDlmMyhjaGFyICosIGNvbnN0IGNoYXIgKiwg X19rZXJuZWxfc2l6ZV90KTsKCgpleHRlcm4gaW50IHN0cmNtcF9Sc21wX2UyZDUyNTVhKGNvbnN0 IGNoYXIgKixjb25zdCBjaGFyICopOwoKCmV4dGVybiBpbnQgc3RybmNtcF9Sc21wXzg1YWJjODVm KGNvbnN0IGNoYXIgKixjb25zdCBjaGFyICosX19rZXJuZWxfc2l6ZV90KTsKCgpleHRlcm4gaW50 IHN0cm5pY21wX1JzbXBfNzU2ZTY5OTIoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIF9fa2Vy bmVsX3NpemVfdCk7CgoKZXh0ZXJuIGNoYXIgKiBzdHJjaHJfUnNtcF8zNDljYmE4NShjb25zdCBj aGFyICosaW50KTsKCgpleHRlcm4gY2hhciAqIHN0cnJjaHJfUnNtcF85Zjk4NDUxMyhjb25zdCBj aGFyICosaW50KTsKCgpleHRlcm4gY2hhciAqIHN0cnN0cl9Sc21wXzFlNmQyNmE4KGNvbnN0IGNo YXIgKixjb25zdCBjaGFyICopOwoKCgoKCmV4dGVybiBfX2tlcm5lbF9zaXplX3Qgc3Rybmxlbl9S c21wX2NjMDdhZjc1KGNvbnN0IGNoYXIgKixfX2tlcm5lbF9zaXplX3QpOwojIDcxICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIgpleHRlcm4gdm9pZCAqIG1lbW1v dmVfUnNtcF81ZGJiZTk4ZSh2b2lkICosY29uc3Qgdm9pZCAqLF9fa2VybmVsX3NpemVfdCk7CgoK ZXh0ZXJuIHZvaWQgKiBtZW1zY2FuX1JzbXBfOWMwZWEzY2Qodm9pZCAqLGludCxfX2tlcm5lbF9z aXplX3QpOwoKCmV4dGVybiBpbnQgbWVtY21wX1JzbXBfYzdlYzI4YjAoY29uc3Qgdm9pZCAqLGNv bnN0IHZvaWQgKixfX2tlcm5lbF9zaXplX3QpOwoKCmV4dGVybiB2b2lkICogbWVtY2hyX1JzbXBf Yzc0MGM2NGEoY29uc3Qgdm9pZCAqLGludCxfX2tlcm5lbF9zaXplX3QpOwoKZXh0ZXJuIGNoYXIg KiBrc3RyZHVwKGNvbnN0IGNoYXIgKixpbnQpOwojIDU1ICJmcy91ZGYvdWRmZW5kLmgiIDIKCgoK c3RhdGljIGlubGluZSBsYl9hZGRyIGxlbGJfdG9fY3B1KGxiX2FkZHIgaW4pCnsKICAgICAgICBs Yl9hZGRyIG91dDsKICAgICAgICBvdXQubG9naWNhbEJsb2NrTnVtID0gKChfX3UzMikoaW4ubG9n aWNhbEJsb2NrTnVtKSk7CiAgICAgICAgb3V0LnBhcnRpdGlvblJlZmVyZW5jZU51bSA9ICgoX191 MTYpKGluLnBhcnRpdGlvblJlZmVyZW5jZU51bSkpOwogICAgICAgIHJldHVybiBvdXQ7Cn0KCnN0 YXRpYyBpbmxpbmUgbGJfYWRkciBjcHVfdG9fbGVsYihsYl9hZGRyIGluKQp7CiAgICAgICAgbGJf YWRkciBvdXQ7CiAgICAgICAgb3V0LmxvZ2ljYWxCbG9ja051bSA9ICgoX191MzIpKGluLmxvZ2lj YWxCbG9ja051bSkpOwogICAgICAgIG91dC5wYXJ0aXRpb25SZWZlcmVuY2VOdW0gPSAoKF9fdTE2 KShpbi5wYXJ0aXRpb25SZWZlcmVuY2VOdW0pKTsKICAgICAgICByZXR1cm4gb3V0Owp9CgpzdGF0 aWMgaW5saW5lIHRpbWVzdGFtcCBsZXRzX3RvX2NwdSh0aW1lc3RhbXAgaW4pCnsKICAgICAgICB0 aW1lc3RhbXAgb3V0OwogICAgICAgIG1lbWNweSgmb3V0LCAmaW4sIHNpemVvZih0aW1lc3RhbXAp KTsKICAgICAgICBvdXQudHlwZUFuZFRpbWV6b25lID0gKChfX3UxNikoaW4udHlwZUFuZFRpbWV6 b25lKSk7CiAgICAgICAgb3V0LnllYXIgPSAoKF9fdTE2KShpbi55ZWFyKSk7CiAgICAgICAgcmV0 dXJuIG91dDsKfQoKc3RhdGljIGlubGluZSBzaG9ydF9hZCBsZXNhX3RvX2NwdShzaG9ydF9hZCBp bikKewogICAgICAgIHNob3J0X2FkIG91dDsKICAgICAgICBvdXQuZXh0TGVuZ3RoID0gKChfX3Uz MikoaW4uZXh0TGVuZ3RoKSk7CiAgICAgICAgb3V0LmV4dFBvc2l0aW9uID0gKChfX3UzMikoaW4u ZXh0UG9zaXRpb24pKTsKICAgICAgICByZXR1cm4gb3V0Owp9CgpzdGF0aWMgaW5saW5lIHNob3J0 X2FkIGNwdV90b19sZXNhKHNob3J0X2FkIGluKQp7CiAgICAgICAgc2hvcnRfYWQgb3V0OwogICAg ICAgIG91dC5leHRMZW5ndGggPSAoKF9fdTMyKShpbi5leHRMZW5ndGgpKTsKICAgICAgICBvdXQu ZXh0UG9zaXRpb24gPSAoKF9fdTMyKShpbi5leHRQb3NpdGlvbikpOwogICAgICAgIHJldHVybiBv dXQ7Cn0KCnN0YXRpYyBpbmxpbmUgbG9uZ19hZCBsZWxhX3RvX2NwdShsb25nX2FkIGluKQp7CiAg ICAgICAgbG9uZ19hZCBvdXQ7CiAgICAgICAgb3V0LmV4dExlbmd0aCA9ICgoX191MzIpKGluLmV4 dExlbmd0aCkpOwogICAgICAgIG91dC5leHRMb2NhdGlvbiA9IGxlbGJfdG9fY3B1KGluLmV4dExv Y2F0aW9uKTsKICAgICAgICByZXR1cm4gb3V0Owp9CgpzdGF0aWMgaW5saW5lIGxvbmdfYWQgY3B1 X3RvX2xlbGEobG9uZ19hZCBpbikKewogICAgICAgIGxvbmdfYWQgb3V0OwogICAgICAgIG91dC5l eHRMZW5ndGggPSAoKF9fdTMyKShpbi5leHRMZW5ndGgpKTsKICAgICAgICBvdXQuZXh0TG9jYXRp b24gPSBjcHVfdG9fbGVsYihpbi5leHRMb2NhdGlvbik7CiAgICAgICAgcmV0dXJuIG91dDsKfQoK c3RhdGljIGlubGluZSBleHRlbnRfYWQgbGVlYV90b19jcHUoZXh0ZW50X2FkIGluKQp7CiAgICAg ICAgZXh0ZW50X2FkIG91dDsKICAgICAgICBvdXQuZXh0TGVuZ3RoID0gKChfX3UzMikoaW4uZXh0 TGVuZ3RoKSk7CiAgICAgICAgb3V0LmV4dExvY2F0aW9uID0gKChfX3UzMikoaW4uZXh0TG9jYXRp b24pKTsKICAgICAgICByZXR1cm4gb3V0Owp9CgpzdGF0aWMgaW5saW5lIHRpbWVzdGFtcCBjcHVf dG9fbGV0cyh0aW1lc3RhbXAgaW4pCnsKICAgICAgICB0aW1lc3RhbXAgb3V0OwogICAgICAgIG1l bWNweSgmb3V0LCAmaW4sIHNpemVvZih0aW1lc3RhbXApKTsKICAgICAgICBvdXQudHlwZUFuZFRp bWV6b25lID0gKChfX3UxNikoaW4udHlwZUFuZFRpbWV6b25lKSk7CiAgICAgICAgb3V0LnllYXIg PSAoKF9fdTE2KShpbi55ZWFyKSk7CiAgICAgICAgcmV0dXJuIG91dDsKfQojIDcgImZzL3VkZi91 ZGZkZWNsLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZGZf ZnMuaCIgMQojIDM1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl9mcy5o IgojZGVmaW5lIF9MSU5VWF9VREZfRlNfSAoKI2RlZmluZSBVREZfUFJFQUxMT0NBVEUKI2RlZmlu ZSBVREZfREVGQVVMVF9QUkVBTExPQ19CTE9DS1MgOAoKI2RlZmluZSBVREZGU19EQVRFICIyMDAx LzA2LzEzIgojZGVmaW5lIFVERkZTX1ZFUlNJT04gIjAuOS40LjEiCgoKCgoKCiNkZWZpbmUgVURG RlNfUlcgMAoKCgoKI2RlZmluZSBVREZGU19ERUJVRwoKCiNkZWZpbmUgdWRmX2RlYnVnKGYsIGEu Li4pIHsgcHJpbnRrIChLRVJOX0RFQlVHICJVREYtZnMgREVCVUcgJXM6JWQ6JXM6ICIsIF9fRklM RV9fLCBfX0xJTkVfXywgX19GVU5DVElPTl9fKTsgcHJpbnRrIChmLCAjIyBhKTsgfQojIDY2ICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl9mcy5oIgojZGVmaW5lIHVkZl9p bmZvKGYsIGEuLi4pIHByaW50ayAoS0VSTl9JTkZPICJVREYtZnMgSU5GTyAiIGYsICMjIGEpOwoj IDkgImZzL3VkZi91ZGZkZWNsLmgiIDIKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTMgImZzL3VkZi91ZGZkZWNsLmgiIDIKIyAxICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyAxNCAiZnMvdWRmL3Vk ZmRlY2wuaCIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgi IDEKCiNkZWZpbmUgX0xJTlVYX0ZTX0gKCgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv bGlua2FnZS5oIiAxCgojZGVmaW5lIF9MSU5VWF9MSU5LQUdFX0gKCiMgMSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDUgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIiAyCgoKCgojZGVmaW5lIENQUF9BU01MSU5LQUdF CgoKCgoKI2RlZmluZSBhc21saW5rYWdlIENQUF9BU01MSU5LQUdFIF9fYXR0cmlidXRlX18oKHN5 c2NhbGxfbGlua2FnZSkpCgoKCgojZGVmaW5lIFNZTUJPTF9OQU1FX1NUUihYKSAjWAojZGVmaW5l IFNZTUJPTF9OQU1FKFgpIFgKCiNkZWZpbmUgU1lNQk9MX05BTUVfTEFCRUwoWCkgWCAjIyA6CiMg NDQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIgojZGVmaW5l IF9fQUxJR04gLmFsaWduIDQsMHg5MAojZGVmaW5lIF9fQUxJR05fU1RSICIuYWxpZ24gNCwweDkw IgojIDExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2xpbWl0cy5oIiAxCgojZGVmaW5lIF9M SU5VWF9MSU1JVFNfSAoKI2RlZmluZSBOUl9PUEVOIDEwMjQKCiNkZWZpbmUgTkdST1VQU19NQVgg MzIKI2RlZmluZSBBUkdfTUFYIDEzMTA3MgojZGVmaW5lIENISUxEX01BWCA5OTkKI2RlZmluZSBP UEVOX01BWCAyNTYKI2RlZmluZSBMSU5LX01BWCAxMjcKI2RlZmluZSBNQVhfQ0FOT04gMjU1CiNk ZWZpbmUgTUFYX0lOUFVUIDI1NQojZGVmaW5lIE5BTUVfTUFYIDI1NQojZGVmaW5lIFBBVEhfTUFY IDQwOTUKI2RlZmluZSBQSVBFX0JVRiA0MDk2CgojZGVmaW5lIFJUU0lHX01BWCAzMgojIDEyICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3dhaXQuaCIgMQoKI2RlZmluZSBfTElOVVhfV0FJVF9I CgojZGVmaW5lIFdOT0hBTkcgMHgwMDAwMDAwMQojZGVmaW5lIFdVTlRSQUNFRCAweDAwMDAwMDAy CgojZGVmaW5lIF9fV05PVEhSRUFEIDB4MjAwMDAwMDAKI2RlZmluZSBfX1dBTEwgMHg0MDAwMDAw MAojZGVmaW5lIF9fV0NMT05FIDB4ODAwMDAwMDAKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIiAxCgojZGVmaW5lIF9MSU5VWF9LRVJORUxfSAoKCgoK CgoKIyAxICIvb3B0L2djYzMvbGliL2djYy1saWIvaWE2NC1ocC1saW51eC8zLjAvaW5jbHVkZS9z dGRhcmcuaCIgMSAzCiMgMzQgIi9vcHQvZ2NjMy9saWIvZ2NjLWxpYi9pYTY0LWhwLWxpbnV4LzMu MC9pbmNsdWRlL3N0ZGFyZy5oIiAzCiNkZWZpbmUgX1NUREFSR19ICiNkZWZpbmUgX0FOU0lfU1RE QVJHX0hfCgoKCgoKCiNkZWZpbmUgX19HTlVDX1ZBX0xJU1QKdHlwZWRlZiBfX2J1aWx0aW5fdmFf bGlzdCBfX2dudWNfdmFfbGlzdDsKIyA1NCAiL29wdC9nY2MzL2xpYi9nY2MtbGliL2lhNjQtaHAt bGludXgvMy4wL2luY2x1ZGUvc3RkYXJnLmgiIDMKI2RlZmluZSB2YV9zdGFydCh2LCBsKSBfX2J1 aWx0aW5fc3RkYXJnX3N0YXJ0KCh2KSxsKQojZGVmaW5lIHZhX2VuZCBfX2J1aWx0aW5fdmFfZW5k CiNkZWZpbmUgdmFfYXJnIF9fYnVpbHRpbl92YV9hcmcKCiNkZWZpbmUgdmFfY29weShkLCBzKSBf X2J1aWx0aW5fdmFfY29weSgoZCksKHMpKQoKI2RlZmluZSBfX3ZhX2NvcHkoZCwgcykgX19idWls dGluX3ZhX2NvcHkoKGQpLChzKSkKIyAxMTAgIi9vcHQvZ2NjMy9saWIvZ2NjLWxpYi9pYTY0LWhw LWxpbnV4LzMuMC9pbmNsdWRlL3N0ZGFyZy5oIiAzCnR5cGVkZWYgX19nbnVjX3ZhX2xpc3QgdmFf bGlzdDsKCgoKCgojZGVmaW5lIF9WQV9MSVNUXwoKCiNkZWZpbmUgX1ZBX0xJU1QKCgojZGVmaW5l IF9WQV9MSVNUX0RFRklORUQKCgojZGVmaW5lIF9WQV9MSVNUX1RfSAoKCiNkZWZpbmUgX192YV9s aXN0X18KIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9rZXJuZWwuaCIg MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIiAxCiMg MTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDIKIyAxICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0ZGRlZi5oIiAxCiMgMTMgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDIKCgoKI2RlZmluZSBiYXJy aWVyKCkgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKQoKI2RlZmluZSBJTlRf TUFYICgoaW50KSh+MFU+PjEpKQojZGVmaW5lIElOVF9NSU4gKC1JTlRfTUFYIC0gMSkKI2RlZmlu ZSBVSU5UX01BWCAofjBVKQojZGVmaW5lIExPTkdfTUFYICgobG9uZykofjBVTD4+MSkpCiNkZWZp bmUgTE9OR19NSU4gKC1MT05HX01BWCAtIDEpCiNkZWZpbmUgVUxPTkdfTUFYICh+MFVMKQoKI2Rl ZmluZSBTVEFDS19NQUdJQyAweGRlYWRiZWVmCgojZGVmaW5lIEFSUkFZX1NJWkUoeCkgKHNpemVv Zih4KSAvIHNpemVvZigoeClbMF0pKQoKI2RlZmluZSBLRVJOX0VNRVJHICI8MD4iCiNkZWZpbmUg S0VSTl9BTEVSVCAiPDE+IgojZGVmaW5lIEtFUk5fQ1JJVCAiPDI+IgojZGVmaW5lIEtFUk5fRVJS ICI8Mz4iCiNkZWZpbmUgS0VSTl9XQVJOSU5HICI8ND4iCiNkZWZpbmUgS0VSTl9OT1RJQ0UgIjw1 PiIKI2RlZmluZSBLRVJOX0lORk8gIjw2PiIKI2RlZmluZSBLRVJOX0RFQlVHICI8Nz4iCgojZGVm aW5lIE5PUkVUX1RZUEUKI2RlZmluZSBBVFRSSUJfTk9SRVQgX19hdHRyaWJ1dGVfXygobm9yZXR1 cm4pKQojZGVmaW5lIE5PUkVUX0FORCBub3JldHVybiwKCgoKCiNkZWZpbmUgRkFTVENBTEwoeCkg eAoKCnN0cnVjdCBzZW1hcGhvcmU7CgpleHRlcm4gc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpwYW5p Y19ub3RpZmllcl9saXN0OwogICAgICAgICAgIHZvaWQgcGFuaWNfUnNtcF8wMTA3NWJmMChjb25z dCBjaGFyICogZm10LCAuLi4pCiAgICAgICAgX19hdHRyaWJ1dGVfXyAoKG5vcmV0dXJuLCBmb3Jt YXQgKHByaW50ZiwgMSwgMikpKTsKICAgICAgICAgICB2b2lkIGRvX2V4aXQobG9uZyBlcnJvcl9j b2RlKQogICAgICAgIF9fYXR0cmlidXRlX18oKG5vcmV0dXJuKSk7CiAgICAgICAgICAgdm9pZCB1 cF9hbmRfZXhpdF9Sc21wXzllYjkyNmNhKHN0cnVjdCBzZW1hcGhvcmUgKiwgbG9uZykKICAgICAg ICBfX2F0dHJpYnV0ZV9fKChub3JldHVybikpOwpleHRlcm4gaW50IGFicyhpbnQpOwpleHRlcm4g dW5zaWduZWQgbG9uZyBzaW1wbGVfc3RydG91bF9Sc21wXzIwMDAwMzI5KGNvbnN0IGNoYXIgKixj aGFyICoqLHVuc2lnbmVkIGludCk7CmV4dGVybiBsb25nIHNpbXBsZV9zdHJ0b2woY29uc3QgY2hh ciAqLGNoYXIgKiosdW5zaWduZWQgaW50KTsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBzaW1w bGVfc3RydG91bGwoY29uc3QgY2hhciAqLGNoYXIgKiosdW5zaWduZWQgaW50KTsKZXh0ZXJuIGxv bmcgbG9uZyBzaW1wbGVfc3RydG9sbChjb25zdCBjaGFyICosY2hhciAqKix1bnNpZ25lZCBpbnQp OwpleHRlcm4gaW50IHNwcmludGZfUnNtcF8zYzJjNWFmNShjaGFyICogYnVmLCBjb25zdCBjaGFy ICogZm10LCAuLi4pOwpleHRlcm4gaW50IHZzcHJpbnRmX1JzbXBfOTU0Y2JiMjYoY2hhciAqYnVm LCBjb25zdCBjaGFyICosIHZhX2xpc3QpOwpleHRlcm4gaW50IGdldF9vcHRpb25fUnNtcF9iMGUx MDc4MShjaGFyICoqc3RyLCBpbnQgKnBpbnQpOwpleHRlcm4gY2hhciAqZ2V0X29wdGlvbnNfUnNt cF8wZmJmZjliOShjaGFyICpzdHIsIGludCBuaW50cywgaW50ICppbnRzKTsKZXh0ZXJuIHVuc2ln bmVkIGxvbmcgbG9uZyBtZW1wYXJzZV9Sc21wXzIzZjJkMzZmKGNoYXIgKnB0ciwgY2hhciAqKnJl dHB0cik7CmV4dGVybiB2b2lkIGRldl9wcm9iZV9sb2NrKHZvaWQpOwpleHRlcm4gdm9pZCBkZXZf cHJvYmVfdW5sb2NrKHZvaWQpOwoKZXh0ZXJuIGludCBzZXNzaW9uX29mX3BncnAoaW50IHBncnAp OwoKIF9fYXR0cmlidXRlX18oKHN5c2NhbGxfbGlua2FnZSkpIGludCBwcmludGtfUnNtcF84Mjdk NTgwNyhjb25zdCBjaGFyICogZm10LCAuLi4pCiAgICAgICAgX19hdHRyaWJ1dGVfXyAoKGZvcm1h dCAocHJpbnRmLCAxLCAyKSkpOwoKZXh0ZXJuIGludCBjb25zb2xlX2xvZ2xldmVsX1JzbXBfODBj ZTFiOGU7CgpzdGF0aWMgaW5saW5lIHZvaWQgY29uc29sZV9zaWxlbnQodm9pZCkKewogICAgICAg IGNvbnNvbGVfbG9nbGV2ZWxfUnNtcF84MGNlMWI4ZSA9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgdm9p ZCBjb25zb2xlX3ZlcmJvc2Uodm9pZCkKewogICAgICAgIGlmIChjb25zb2xlX2xvZ2xldmVsX1Jz bXBfODBjZTFiOGUpCiAgICAgICAgICAgICAgICBjb25zb2xlX2xvZ2xldmVsX1JzbXBfODBjZTFi OGUgPSAxNTsKfQoKCgoKCiNkZWZpbmUgcHJfZGVidWcoZm10LCBhcmcuLi4pIGRvIHsgfSB3aGls ZSAoMCkKCgoKI2RlZmluZSBwcl9pbmZvKGZtdCwgYXJnLi4uKSBwcmludGsoS0VSTl9JTkZPIGZt dCwgIyMgYXJnKQoKCgoKCgojZGVmaW5lIE5JUFFVQUQoYWRkcikgKCh1bnNpZ25lZCBjaGFyICop JmFkZHIpWzBdLCAoKHVuc2lnbmVkIGNoYXIgKikmYWRkcilbMV0sICgodW5zaWduZWQgY2hhciAq KSZhZGRyKVsyXSwgKCh1bnNpZ25lZCBjaGFyICopJmFkZHIpWzNdCgoKCgoKI2RlZmluZSBISVBR VUFEKGFkZHIpICgodW5zaWduZWQgY2hhciAqKSZhZGRyKVszXSwgKCh1bnNpZ25lZCBjaGFyICop JmFkZHIpWzJdLCAoKHVuc2lnbmVkIGNoYXIgKikmYWRkcilbMV0sICgodW5zaWduZWQgY2hhciAq KSZhZGRyKVswXQoKCgoKCgoKI2RlZmluZSBTSV9MT0FEX1NISUZUIDE2CnN0cnVjdCBzeXNpbmZv IHsKICAgICAgICBsb25nIHVwdGltZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvYWRzWzNdOwog ICAgICAgIHVuc2lnbmVkIGxvbmcgdG90YWxyYW07CiAgICAgICAgdW5zaWduZWQgbG9uZyBmcmVl cmFtOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc2hhcmVkcmFtOwogICAgICAgIHVuc2lnbmVkIGxv bmcgYnVmZmVycmFtOwogICAgICAgIHVuc2lnbmVkIGxvbmcgdG90YWxzd2FwOwogICAgICAgIHVu c2lnbmVkIGxvbmcgZnJlZXN3YXA7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgcHJvY3M7CiAgICAg ICAgdW5zaWduZWQgc2hvcnQgcGFkOwogICAgICAgIHVuc2lnbmVkIGxvbmcgdG90YWxoaWdoOwog ICAgICAgIHVuc2lnbmVkIGxvbmcgZnJlZWhpZ2g7CiAgICAgICAgdW5zaWduZWQgaW50IG1lbV91 bml0OwogICAgICAgIGNoYXIgX2ZbMjAtMipzaXplb2YobG9uZyktc2l6ZW9mKGludCldOwp9Owoj IDE0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3dhaXQuaCIgMgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCgojZGVmaW5lIF9MSU5V WF9MSVNUX0gKIyAxNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9saXN0Lmgi CnN0cnVjdCBsaXN0X2hlYWQgewogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKm5leHQsICpwcmV2 Owp9OwoKI2RlZmluZSBMSVNUX0hFQURfSU5JVChuYW1lKSB7ICYobmFtZSksICYobmFtZSkgfQoK I2RlZmluZSBMSVNUX0hFQUQobmFtZSkgc3RydWN0IGxpc3RfaGVhZCBuYW1lID0gTElTVF9IRUFE X0lOSVQobmFtZSkKCgojZGVmaW5lIElOSVRfTElTVF9IRUFEKHB0cikgZG8geyAocHRyKS0+bmV4 dCA9IChwdHIpOyAocHRyKS0+cHJldiA9IChwdHIpOyB9IHdoaWxlICgwKQojIDM1ICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIF9faW5saW5lX18gdm9p ZCBfX2xpc3RfYWRkKHN0cnVjdCBsaXN0X2hlYWQgKiBuZXcsCiAgICAgICAgc3RydWN0IGxpc3Rf aGVhZCAqIHByZXYsCiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqIG5leHQpCnsKICAgICAgICBu ZXh0LT5wcmV2ID0gbmV3OwogICAgICAgIG5ldy0+bmV4dCA9IG5leHQ7CiAgICAgICAgbmV3LT5w cmV2ID0gcHJldjsKICAgICAgICBwcmV2LT5uZXh0ID0gbmV3Owp9CiMgNTMgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGxp c3RfYWRkKHN0cnVjdCBsaXN0X2hlYWQgKm5ldywgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKewog ICAgICAgIF9fbGlzdF9hZGQobmV3LCBoZWFkLCBoZWFkLT5uZXh0KTsKfQojIDY2ICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIF9faW5saW5lX18gdm9p ZCBsaXN0X2FkZF90YWlsKHN0cnVjdCBsaXN0X2hlYWQgKm5ldywgc3RydWN0IGxpc3RfaGVhZCAq aGVhZCkKewogICAgICAgIF9fbGlzdF9hZGQobmV3LCBoZWFkLT5wcmV2LCBoZWFkKTsKfQojIDc4 ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIF9faW5s aW5lX18gdm9pZCBfX2xpc3RfZGVsKHN0cnVjdCBsaXN0X2hlYWQgKiBwcmV2LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqIG5leHQpCnsKICAgICAg ICBuZXh0LT5wcmV2ID0gcHJldjsKICAgICAgICBwcmV2LT5uZXh0ID0gbmV4dDsKfQoKCgoKCgpz dGF0aWMgX19pbmxpbmVfXyB2b2lkIGxpc3RfZGVsKHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5KQp7 CiAgICAgICAgX19saXN0X2RlbChlbnRyeS0+cHJldiwgZW50cnktPm5leHQpOwp9CgoKCgoKc3Rh dGljIF9faW5saW5lX18gdm9pZCBsaXN0X2RlbF9pbml0KHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5 KQp7CiAgICAgICAgX19saXN0X2RlbChlbnRyeS0+cHJldiwgZW50cnktPm5leHQpOwogICAgICAg IGRvIHsgKGVudHJ5KS0+bmV4dCA9IChlbnRyeSk7IChlbnRyeSktPnByZXYgPSAoZW50cnkpOyB9 IHdoaWxlICgwKTsKfQoKCgoKCnN0YXRpYyBfX2lubGluZV9fIGludCBsaXN0X2VtcHR5KHN0cnVj dCBsaXN0X2hlYWQgKmhlYWQpCnsKICAgICAgICByZXR1cm4gaGVhZC0+bmV4dCA9PSBoZWFkOwp9 CgoKCgoKCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgbGlzdF9zcGxpY2Uoc3RydWN0IGxpc3RfaGVh ZCAqbGlzdCwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKewogICAgICAgIHN0cnVjdCBsaXN0X2hl YWQgKmZpcnN0ID0gbGlzdC0+bmV4dDsKCiAgICAgICAgaWYgKGZpcnN0ICE9IGxpc3QpIHsKICAg ICAgICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmxhc3QgPSBsaXN0LT5wcmV2OwogICAgICAg ICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqYXQgPSBoZWFkLT5uZXh0OwoKICAgICAgICAgICAg ICAgIGZpcnN0LT5wcmV2ID0gaGVhZDsKICAgICAgICAgICAgICAgIGhlYWQtPm5leHQgPSBmaXJz dDsKCiAgICAgICAgICAgICAgICBsYXN0LT5uZXh0ID0gYXQ7CiAgICAgICAgICAgICAgICBhdC0+ cHJldiA9IGxhc3Q7CiAgICAgICAgfQp9CgoKCgoKCgojZGVmaW5lIGxpc3RfZW50cnkocHRyLCB0 eXBlLCBtZW1iZXIpICgodHlwZSAqKSgoY2hhciAqKShwdHIpLSh1bnNpZ25lZCBsb25nKSgmKCh0 eXBlICopMCktPm1lbWJlcikpKQoKCgoKCgoKI2RlZmluZSBsaXN0X2Zvcl9lYWNoKHBvcywgaGVh ZCkgZm9yIChwb3MgPSAoaGVhZCktPm5leHQ7IHBvcyAhPSAoaGVhZCk7IHBvcyA9IHBvcy0+bmV4 dCkKIyAxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC93YWl0LmgiIDIKIyAx ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0ZGRlZi5oIiAxCiMgMTYgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvd2FpdC5oIiAyCiMgMSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAxCgojZGVmaW5lIF9fTElOVVhf U1BJTkxPQ0tfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvbmZp Zy5oIiAxCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5o IiAyCgoKCgoKI2RlZmluZSBzcGluX2xvY2tfaXJxc2F2ZShsb2NrLCBmbGFncykgZG8geyBsb2Nh bF9pcnFfc2F2ZShmbGFncyk7IHNwaW5fbG9jayhsb2NrKTsgfSB3aGlsZSAoMCkKI2RlZmluZSBz cGluX2xvY2tfaXJxKGxvY2spIGRvIHsgbG9jYWxfaXJxX2Rpc2FibGUoKTsgc3Bpbl9sb2NrKGxv Y2spOyB9IHdoaWxlICgwKQojZGVmaW5lIHNwaW5fbG9ja19iaChsb2NrKSBkbyB7IGxvY2FsX2Jo X2Rpc2FibGUoKTsgc3Bpbl9sb2NrKGxvY2spOyB9IHdoaWxlICgwKQoKI2RlZmluZSByZWFkX2xv Y2tfaXJxc2F2ZShsb2NrLCBmbGFncykgZG8geyBsb2NhbF9pcnFfc2F2ZShmbGFncyk7IHJlYWRf bG9jayhsb2NrKTsgfSB3aGlsZSAoMCkKI2RlZmluZSByZWFkX2xvY2tfaXJxKGxvY2spIGRvIHsg bG9jYWxfaXJxX2Rpc2FibGUoKTsgcmVhZF9sb2NrKGxvY2spOyB9IHdoaWxlICgwKQojZGVmaW5l IHJlYWRfbG9ja19iaChsb2NrKSBkbyB7IGxvY2FsX2JoX2Rpc2FibGUoKTsgcmVhZF9sb2NrKGxv Y2spOyB9IHdoaWxlICgwKQoKI2RlZmluZSB3cml0ZV9sb2NrX2lycXNhdmUobG9jaywgZmxhZ3Mp IGRvIHsgbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOyB3cml0ZV9sb2NrKGxvY2spOyB9IHdoaWxlICgw KQojZGVmaW5lIHdyaXRlX2xvY2tfaXJxKGxvY2spIGRvIHsgbG9jYWxfaXJxX2Rpc2FibGUoKTsg d3JpdGVfbG9jayhsb2NrKTsgfSB3aGlsZSAoMCkKI2RlZmluZSB3cml0ZV9sb2NrX2JoKGxvY2sp IGRvIHsgbG9jYWxfYmhfZGlzYWJsZSgpOyB3cml0ZV9sb2NrKGxvY2spOyB9IHdoaWxlICgwKQoK I2RlZmluZSBzcGluX3VubG9ja19pcnFyZXN0b3JlKGxvY2ssIGZsYWdzKSBkbyB7IHNwaW5fdW5s b2NrKGxvY2spOyBsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7IH0gd2hpbGUgKDApCiNkZWZpbmUg c3Bpbl91bmxvY2tfaXJxKGxvY2spIGRvIHsgc3Bpbl91bmxvY2sobG9jayk7IGxvY2FsX2lycV9l bmFibGUoKTsgfSB3aGlsZSAoMCkKI2RlZmluZSBzcGluX3VubG9ja19iaChsb2NrKSBkbyB7IHNw aW5fdW5sb2NrKGxvY2spOyBsb2NhbF9iaF9lbmFibGUoKTsgfSB3aGlsZSAoMCkKCiNkZWZpbmUg cmVhZF91bmxvY2tfaXJxcmVzdG9yZShsb2NrLCBmbGFncykgZG8geyByZWFkX3VubG9jayhsb2Nr KTsgbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOyB9IHdoaWxlICgwKQojZGVmaW5lIHJlYWRfdW5s b2NrX2lycShsb2NrKSBkbyB7IHJlYWRfdW5sb2NrKGxvY2spOyBsb2NhbF9pcnFfZW5hYmxlKCk7 IH0gd2hpbGUgKDApCiNkZWZpbmUgcmVhZF91bmxvY2tfYmgobG9jaykgZG8geyByZWFkX3VubG9j ayhsb2NrKTsgbG9jYWxfYmhfZW5hYmxlKCk7IH0gd2hpbGUgKDApCgojZGVmaW5lIHdyaXRlX3Vu bG9ja19pcnFyZXN0b3JlKGxvY2ssIGZsYWdzKSBkbyB7IHdyaXRlX3VubG9jayhsb2NrKTsgbG9j YWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOyB9IHdoaWxlICgwKQojZGVmaW5lIHdyaXRlX3VubG9ja19p cnEobG9jaykgZG8geyB3cml0ZV91bmxvY2sobG9jayk7IGxvY2FsX2lycV9lbmFibGUoKTsgfSB3 aGlsZSAoMCkKI2RlZmluZSB3cml0ZV91bmxvY2tfYmgobG9jaykgZG8geyB3cml0ZV91bmxvY2so bG9jayk7IGxvY2FsX2JoX2VuYWJsZSgpOyB9IHdoaWxlICgwKQoKCiMgMSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfU1BJ TkxPQ0tfSAojIDEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zcGlubG9jay5o IgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDEKIyAx MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIgMgoKIyAxICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIgMQoKI2RlZmluZSBfQVNN X0lBNjRfU1lTVEVNX0gKIyAxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lz dGVtLmgiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIg MQojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIgMgoKIyAx ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiIDEKCiNkZWZpbmUgX0FT TV9JQTY0X1BBR0VfSAoKCgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L2NvbmZpZy5oIiAxCiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Bh Z2UuaCIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90eXBlcy5oIiAx CiMgMTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2UuaCIgMgojIDIyICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiCiNkZWZpbmUgUEFHRV9TSElG VCAxNAoKCgoKCgojZGVmaW5lIFBBR0VfU0laRSAoX19JQTY0X1VMX0NPTlNUKDEpIDw8IFBBR0Vf U0hJRlQpCiNkZWZpbmUgUEFHRV9NQVNLICh+KFBBR0VfU0laRSAtIDEpKQojZGVmaW5lIFBBR0Vf QUxJR04oYWRkcikgKCgoYWRkcikgKyBQQUdFX1NJWkUgLSAxKSAmIFBBR0VfTUFTSykKCgoKCgoK I2RlZmluZSBTVFJJQ1RfTU1fVFlQRUNIRUNLUwoKZXh0ZXJuIHZvaWQgY2xlYXJfcGFnZV9Sc21w XzNkOWVlOWYwICh2b2lkICpwYWdlKTsKZXh0ZXJuIHZvaWQgY29weV9wYWdlICh2b2lkICp0bywg dm9pZCAqZnJvbSk7CiMgNTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2Uu aCIKI2RlZmluZSBNQVBfTlJfREVOU0UoYWRkcikgKCgodW5zaWduZWQgbG9uZykgKGFkZHIpIC0g UEFHRV9PRkZTRVQpID4+IFBBR0VfU0hJRlQpCiMgNjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvYXNtL3BhZ2UuaCIKI2RlZmluZSB2aXJ0X3RvX3BhZ2Uoa2FkZHIpIChtZW1fbWFwICsg TUFQX05SX0RFTlNFKGthZGRyKSkKCiNkZWZpbmUgVkFMSURfUEFHRShwYWdlKSAoKHBhZ2UgLSBt ZW1fbWFwKSA8IG1heF9tYXBucikKCnR5cGVkZWYgdW5pb24gaWE2NF92YSB7CiAgICAgICAgc3Ry dWN0IHsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgb2ZmIDogNjE7CiAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIHJlZyA6IDM7CiAgICAgICAgfSBmOwogICAgICAgIHVuc2lnbmVk IGxvbmcgbDsKICAgICAgICB2b2lkICpwOwp9IGlhNjRfdmE7CgoKCgoKCgojZGVmaW5lIF9fcGEo eCkgKHtpYTY0X3ZhIF92OyBfdi5sID0gKGxvbmcpICh4KTsgX3YuZi5yZWcgPSAwOyBfdi5sO30p CiNkZWZpbmUgX192YSh4KSAoe2lhNjRfdmEgX3Y7IF92LmwgPSAobG9uZykgKHgpOyBfdi5mLnJl ZyA9IC0xOyBfdi5wO30pCgojZGVmaW5lIFJFR0lPTl9OVU1CRVIoeCkgKHtpYTY0X3ZhIF92OyBf di5sID0gKGxvbmcpICh4KTsgX3YuZi5yZWc7fSkKI2RlZmluZSBSRUdJT05fT0ZGU0VUKHgpICh7 aWE2NF92YSBfdjsgX3YubCA9IChsb25nKSAoeCk7IF92LmYub2ZmO30pCgojZGVmaW5lIFJFR0lP Tl9TSVpFIFJFR0lPTl9OVU1CRVIoMSkKI2RlZmluZSBSRUdJT05fS0VSTkVMIDcKCiNkZWZpbmUg QlVHKCkgZG8geyBwcmludGsoImtlcm5lbCBCVUcgYXQgJXM6JWQhXG4iLCBfX0ZJTEVfXywgX19M SU5FX18pOyAqKGludCAqKTA9MDsgfSB3aGlsZSAoMCkKI2RlZmluZSBQQUdFX0JVRyhwYWdlKSBk byB7IEJVRygpOyB9IHdoaWxlICgwKQoKc3RhdGljIF9faW5saW5lX18gaW50CmdldF9vcmRlciAo dW5zaWduZWQgbG9uZyBzaXplKQp7CiAgICAgICAgZG91YmxlIGQgPSBzaXplIC0gMTsKICAgICAg ICBsb25nIG9yZGVyOwoKICAgICAgICBfX2FzbV9fICgiZ2V0Zi5leHAgJTA9JTEiIDogIj1yIihv cmRlcikgOiAiZiIoZCkpOwogICAgICAgIG9yZGVyID0gb3JkZXIgLSAxNCAtIDB4ZmZmZiArIDE7 CiAgICAgICAgaWYgKG9yZGVyIDwgMCkKICAgICAgICAgICAgICAgIG9yZGVyID0gMDsKICAgICAg ICByZXR1cm4gb3JkZXI7Cn0KIyAxMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt L3BhZ2UuaCIKICB0eXBlZGVmIHN0cnVjdCB7IHVuc2lnbmVkIGxvbmcgcHRlOyB9IHB0ZV90Owog IHR5cGVkZWYgc3RydWN0IHsgdW5zaWduZWQgbG9uZyBwbWQ7IH0gcG1kX3Q7CiAgdHlwZWRlZiBz dHJ1Y3QgeyB1bnNpZ25lZCBsb25nIHBnZDsgfSBwZ2RfdDsKICB0eXBlZGVmIHN0cnVjdCB7IHVu c2lnbmVkIGxvbmcgcGdwcm90OyB9IHBncHJvdF90OwoKI2RlZmluZSBwdGVfdmFsKHgpICgoeCku cHRlKQojZGVmaW5lIHBtZF92YWwoeCkgKCh4KS5wbWQpCiNkZWZpbmUgcGdkX3ZhbCh4KSAoKHgp LnBnZCkKI2RlZmluZSBwZ3Byb3RfdmFsKHgpICgoeCkucGdwcm90KQoKI2RlZmluZSBfX3B0ZSh4 KSAoKHB0ZV90KSB7ICh4KSB9ICkKI2RlZmluZSBfX3BncHJvdCh4KSAoKHBncHJvdF90KSB7ICh4 KSB9ICkKIyAxNDggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2UuaCIKI2Rl ZmluZSBQQUdFX09GRlNFVCAweGUwMDAwMDAwMDAwMDAwMDAKIyAxOCAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9hc20vc3lzdGVtLmgiIDIKCiNkZWZpbmUgS0VSTkVMX1NUQVJUIChQQUdF X09GRlNFVCArIDY4KjEwMjQqMTAyNCkKCgoKCiNkZWZpbmUgSVZUX0FERFIgKEtFUk5FTF9TVEFS VCkKI2RlZmluZSBJVlRfRU5EX0FERFIgKEtFUk5FTF9TVEFSVCArIDB4ODAwMCkKI2RlZmluZSBa RVJPX1BBR0VfQUREUiBQQUdFX0FMSUdOKElWVF9FTkRfQUREUikKI2RlZmluZSBTV0FQUEVSX1BH RF9BRERSIChaRVJPX1BBR0VfQUREUiArIDEqUEFHRV9TSVpFKQoKI2RlZmluZSBHQVRFX0FERFIg KDB4YTAwMDAwMDAwMDAwMDAwMCArIFBBR0VfU0laRSkKI2RlZmluZSBQRVJDUFVfQUREUiAoMHhh MDAwMDAwMDAwMDAwMDAwICsgMipQQUdFX1NJWkUpCgoKCgoKCiNkZWZpbmUgSUE2NF9TRU1GSVhf SU5TTgojZGVmaW5lIElBNjRfU0VNRklYICIiCgoKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgva2VybmVsLmgiIDEKIyA0NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9hc20vc3lzdGVtLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L3R5cGVzLmgiIDEKIyA0NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lz dGVtLmgiIDIKCnN0cnVjdCBwY2lfdmVjdG9yX3N0cnVjdCB7CiAgICAgICAgX191MTYgYnVzOwog ICAgICAgIF9fdTMyIHBjaV9pZDsKICAgICAgICBfX3U4IHBpbjsKICAgICAgICBfX3U4IGlycTsK fTsKCmV4dGVybiBzdHJ1Y3QgaWE2NF9ib290X3BhcmFtIHsKICAgICAgICBfX3U2NCBjb21tYW5k X2xpbmU7CiAgICAgICAgX191NjQgZWZpX3N5c3RhYjsKICAgICAgICBfX3U2NCBlZmlfbWVtbWFw OwogICAgICAgIF9fdTY0IGVmaV9tZW1tYXBfc2l6ZTsKICAgICAgICBfX3U2NCBlZmlfbWVtZGVz Y19zaXplOwogICAgICAgIF9fdTMyIGVmaV9tZW1kZXNjX3ZlcnNpb247CiAgICAgICAgc3RydWN0 IHsKICAgICAgICAgICAgICAgIF9fdTE2IG51bV9jb2xzOwogICAgICAgICAgICAgICAgX191MTYg bnVtX3Jvd3M7CiAgICAgICAgICAgICAgICBfX3UxNiBvcmlnX3g7CiAgICAgICAgICAgICAgICBf X3UxNiBvcmlnX3k7CiAgICAgICAgfSBjb25zb2xlX2luZm87CiAgICAgICAgX191NjQgZnBzd2E7 CiAgICAgICAgX191NjQgaW5pdHJkX3N0YXJ0OwogICAgICAgIF9fdTY0IGluaXRyZF9zaXplOwp9 ICppYTY0X2Jvb3RfcGFyYW07CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9pbnNuX2dyb3VwX2Jh cnJpZXIgKHZvaWQpCnsKICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIjs7IiA6OjogIm1l bW9yeSIpOwp9CiMgOTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5o IgojZGVmaW5lIG1iKCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtZiIgOjo6ICJtZW1vcnkiKQoj ZGVmaW5lIHJtYigpIG1iKCkKI2RlZmluZSB3bWIoKSBtYigpCgoKI2RlZmluZSBzbXBfbWIoKSBt YigpCiNkZWZpbmUgc21wX3JtYigpIHJtYigpCiNkZWZpbmUgc21wX3dtYigpIHdtYigpCiMgMTE4 ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIKI2RlZmluZSBzZXRf bWIodmFyLCB2YWx1ZSkgZG8geyAodmFyKSA9ICh2YWx1ZSk7IG1iKCk7IH0gd2hpbGUgKDApCiNk ZWZpbmUgc2V0X3dtYih2YXIsIHZhbHVlKSBkbyB7ICh2YXIpID0gKHZhbHVlKTsgbWIoKTsgfSB3 aGlsZSAoMCkKIyAxNjkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5o IgojZGVmaW5lIGxvY2FsX2lycV9zYXZlKHgpIF9fYXNtX18gX192b2xhdGlsZV9fICgibW92ICUw PXBzcjs7IHJzbSBwc3IuaTs7IiA6ICI9ciIgKHgpIDo6ICJtZW1vcnkiKQoKI2RlZmluZSBsb2Nh bF9pcnFfZGlzYWJsZSgpIF9fYXNtX18gX192b2xhdGlsZV9fICgiOzsgcnNtIHBzci5pOzsiIDo6 OiAibWVtb3J5IikKCiNkZWZpbmUgbG9jYWxfaXJxX3Jlc3RvcmUoeCkgX19hc21fXyBfX3ZvbGF0 aWxlX18gKCI7OyBtb3YgcHNyLmw9JTA7OyBzcmx6LmQiIDo6ICJyIiAoeCkgOiAibWVtb3J5IikK CgoKI2RlZmluZSBsb2NhbF9pcnFfZW5hYmxlKCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCI7OyBz c20gcHNyLmk7OyBzcmx6LmQiIDo6OiAibWVtb3J5IikKCiNkZWZpbmUgX19jbGkoKSBsb2NhbF9p cnFfZGlzYWJsZSAoKQojZGVmaW5lIF9fc2F2ZV9mbGFncyhmbGFncykgX19hc21fXyBfX3ZvbGF0 aWxlX18gKCJtb3YgJTA9cHNyIiA6ICI9ciIgKGZsYWdzKSA6OiAibWVtb3J5IikKI2RlZmluZSBf X3NhdmVfYW5kX2NsaShmbGFncykgbG9jYWxfaXJxX3NhdmUoZmxhZ3MpCiNkZWZpbmUgc2F2ZV9h bmRfY2xpKGZsYWdzKSBfX3NhdmVfYW5kX2NsaShmbGFncykKI2RlZmluZSBfX3N0aSgpIGxvY2Fs X2lycV9lbmFibGUgKCkKI2RlZmluZSBfX3Jlc3RvcmVfZmxhZ3MoZmxhZ3MpIGxvY2FsX2lycV9y ZXN0b3JlKGZsYWdzKQoKCiAgZXh0ZXJuIHZvaWQgX19nbG9iYWxfY2xpX1JzbXBfNjQ1NzZiMDUg KHZvaWQpOwogIGV4dGVybiB2b2lkIF9fZ2xvYmFsX3N0aV9Sc21wX2RhNDQ1NmRkICh2b2lkKTsK ICBleHRlcm4gdW5zaWduZWQgbG9uZyBfX2dsb2JhbF9zYXZlX2ZsYWdzX1JzbXBfNWQ5MDJlOTYg KHZvaWQpOwogIGV4dGVybiB2b2lkIF9fZ2xvYmFsX3Jlc3RvcmVfZmxhZ3NfUnNtcF81NGRkMWRj YiAodW5zaWduZWQgbG9uZyk7CiNkZWZpbmUgY2xpKCkgX19nbG9iYWxfY2xpKCkKI2RlZmluZSBz dGkoKSBfX2dsb2JhbF9zdGkoKQojZGVmaW5lIHNhdmVfZmxhZ3MoZmxhZ3MpICgoZmxhZ3MpID0g X19nbG9iYWxfc2F2ZV9mbGFncygpKQojZGVmaW5lIHJlc3RvcmVfZmxhZ3MoZmxhZ3MpIF9fZ2xv YmFsX3Jlc3RvcmVfZmxhZ3MoZmxhZ3MpCiMgMjA2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2FzbS9zeXN0ZW0uaCIKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19iYWRfc2l6ZV9mb3JfaWE2 NF9mZXRjaF9hbmRfYWRkICh2b2lkKTsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19iYWRfaW5jcmVt ZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQgKHZvaWQpOwoKI2RlZmluZSBJQTY0X0ZFVENIQURE KHRtcCwgdiwgbiwgc3opICh7IHN3aXRjaCAoc3opIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRp bGVfXyAoSUE2NF9TRU1GSVgiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIodG1wKSA6 ICJyIih2KSwgImkiKG4pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9s YXRpbGVfXyAoSUE2NF9TRU1GSVgiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIodG1w KSA6ICJyIih2KSwgImkiKG4pIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6 ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSkKIyAyMjcgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5oIgojZGVmaW5lIGlhNjRfZmV0Y2hfYW5kX2FkZChpLCB2 KSAoeyBfX3U2NCBfdG1wOyB2b2xhdGlsZSBfX3R5cGVvZl9fKCoodikpICpfdiA9ICh2KTsgc3dp dGNoIChpKSB7IGNhc2UgLTE2OiBJQTY0X0ZFVENIQUREKF90bXAsIF92LCAtMTYsIHNpemVvZigq KHYpKSk7IGJyZWFrOyBjYXNlIC04OiBJQTY0X0ZFVENIQUREKF90bXAsIF92LCAtOCwgc2l6ZW9m KCoodikpKTsgYnJlYWs7IGNhc2UgLTQ6IElBNjRfRkVUQ0hBREQoX3RtcCwgX3YsIC00LCBzaXpl b2YoKih2KSkpOyBicmVhazsgY2FzZSAtMTogSUE2NF9GRVRDSEFERChfdG1wLCBfdiwgLTEsIHNp emVvZigqKHYpKSk7IGJyZWFrOyBjYXNlIDE6IElBNjRfRkVUQ0hBREQoX3RtcCwgX3YsIDEsIHNp emVvZigqKHYpKSk7IGJyZWFrOyBjYXNlIDQ6IElBNjRfRkVUQ0hBREQoX3RtcCwgX3YsIDQsIHNp emVvZigqKHYpKSk7IGJyZWFrOyBjYXNlIDg6IElBNjRfRkVUQ0hBREQoX3RtcCwgX3YsIDgsIHNp emVvZigqKHYpKSk7IGJyZWFrOyBjYXNlIDE2OiBJQTY0X0ZFVENIQUREKF90bXAsIF92LCAxNiwg c2l6ZW9mKCoodikpKTsgYnJlYWs7IGRlZmF1bHQ6IF90bXAgPSBfX2JhZF9pbmNyZW1lbnRfZm9y X2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyBicmVhazsgfSAoX190eXBlb2ZfXygqdikpIChfdG1wICsg KGkpKTsgfSkKIyAyNTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5o IgpleHRlcm4gdm9pZCBfX3hjaGdfY2FsbGVkX3dpdGhfYmFkX3BvaW50ZXIgKHZvaWQpOwoKc3Rh dGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZwpfX3hjaGcgKHVuc2lnbmVkIGxvbmcgeCwgdm9s YXRpbGUgdm9pZCAqcHRyLCBpbnQgc2l6ZSkKewogICAgICAgIHVuc2lnbmVkIGxvbmcgcmVzdWx0 OwoKICAgICAgICBzd2l0Y2ggKHNpemUpIHsKICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAg ICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGUgKCIiInhjaGcxICUwPVslMV0sJTIiIDogIj1yIiAo cmVzdWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJyIiAocHRyKSwg InIiICh4KSA6ICJtZW1vcnkiKTsKICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CgogICAg ICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZSAoIiIi eGNoZzIgJTA9WyUxXSwlMiIgOiAiPXIiIChyZXN1bHQpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDogInIiIChwdHIpLCAiciIgKHgpIDogIm1lbW9yeSIpOwogICAgICAgICAg ICAgICAgcmV0dXJuIHJlc3VsdDsKCiAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAg ICAgX19hc21fXyBfX3ZvbGF0aWxlICgiIiJ4Y2hnNCAlMD1bJTFdLCUyIiA6ICI9ciIgKHJlc3Vs dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiciIgKHB0ciksICJyIiAo eCkgOiAibWVtb3J5Iik7CiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwoKICAgICAgICAg ICAgICBjYXNlIDg6CiAgICAgICAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGUgKCIiInhjaGc4 ICUwPVslMV0sJTIiIDogIj1yIiAocmVzdWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6ICJyIiAocHRyKSwgInIiICh4KSA6ICJtZW1vcnkiKTsKICAgICAgICAgICAgICAg IHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICAgIF9feGNoZ19jYWxsZWRfd2l0aF9iYWRf cG9pbnRlcigpOwogICAgICAgIHJldHVybiB4Owp9CgojZGVmaW5lIHhjaGcocHRyLCB4KSAoKF9f dHlwZW9mX18oKihwdHIpKSkgX194Y2hnICgodW5zaWduZWQgbG9uZykgKHgpLCAocHRyKSwgc2l6 ZW9mKCoocHRyKSkpKQojIDI5MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lz dGVtLmgiCiNkZWZpbmUgX19IQVZFX0FSQ0hfQ01QWENIRyAxCgoKCgoKZXh0ZXJuIGxvbmcgX19j bXB4Y2hnX2NhbGxlZF93aXRoX2JhZF9wb2ludGVyKHZvaWQpOwoKI2RlZmluZSBpYTY0X2NtcHhj aGcoc2VtLCBwdHIsIG9sZCwgbmV3LCBzaXplKSAoeyBfX3R5cGVvZl9fKHB0cikgX3BfID0gKHB0 cik7IF9fdHlwZW9mX18obmV3KSBfbl8gPSAobmV3KTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAo c2l6ZSkgeyBjYXNlIDE6IF9vXyA9IChfX3U4ICkgKGxvbmcpIChvbGQpOyBicmVhazsgY2FzZSAy OiBfb18gPSAoX191MTYpIChsb25nKSAob2xkKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMy KSAobG9uZykgKG9sZCk7IGJyZWFrOyBjYXNlIDg6IF9vXyA9IChfX3U2NCkgKGxvbmcpIChvbGQp OyBicmVhazsgZGVmYXVsdDogYnJlYWs7IH0gX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3YgYXIu Y2N2PSUwOzsiIDo6ICJyTyIoX29fKSk7IHN3aXRjaCAoc2l6ZSkgeyBjYXNlIDE6IF9fYXNtX18g X192b2xhdGlsZV9fIChJQTY0X1NFTUZJWCJjbXB4Y2hnMS4ic2VtIiAlMD1bJTFdLCUyLGFyLmNj diIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBj YXNlIDI6IF9fYXNtX18gX192b2xhdGlsZV9fIChJQTY0X1NFTUZJWCJjbXB4Y2hnMi4ic2VtIiAl MD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVt b3J5Iik7IGJyZWFrOyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fIChJQTY0X1NFTUZJWCJj bXB4Y2hnNC4ic2VtIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwg InIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9f IChJQTY0X1NFTUZJWCJjbXB4Y2hnOC4ic2VtIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9y XykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfcl8g PSBfX2NtcHhjaGdfY2FsbGVkX3dpdGhfYmFkX3BvaW50ZXIoKTsgYnJlYWs7IH0gKF9fdHlwZW9m X18ob2xkKSkgX3JfOyB9KQojIDM0MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20v c3lzdGVtLmgiCiNkZWZpbmUgY21weGNoZ19hY3EocHRyLCBvLCBuKSBpYTY0X2NtcHhjaGcoImFj cSIsIChwdHIpLCAobyksIChuKSwgc2l6ZW9mKCoocHRyKSkpCiNkZWZpbmUgY21weGNoZ19yZWwo cHRyLCBvLCBuKSBpYTY0X2NtcHhjaGcoInJlbCIsIChwdHIpLCAobyksIChuKSwgc2l6ZW9mKCoo cHRyKSkpCgoKI2RlZmluZSBjbXB4Y2hnKHB0ciwgbywgbikgY21weGNoZ19hY3EocHRyLG8sbikK IyAzNjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5oIgojZGVmaW5l IENNUFhDSEdfQlVHQ0hFQ0tfREVDTAojZGVmaW5lIENNUFhDSEdfQlVHQ0hFQ0sodikKCgoKCiNk ZWZpbmUgcHJlcGFyZV90b19zd2l0Y2goKSBkbyB7IH0gd2hpbGUoMCkKCgojZGVmaW5lIElTX0lB MzJfUFJPQ0VTUyhyZWdzKSAoaWE2NF9wc3IocmVncyktPmlzICE9IDApCiMgMzg1ICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIKZXh0ZXJuIHN0cnVjdCB0YXNrX3N0 cnVjdCAqaWE2NF9zd2l0Y2hfdG8gKHZvaWQgKm5leHRfdGFzayk7CgpleHRlcm4gdm9pZCBpYTY0 X3NhdmVfZXh0cmEgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CmV4dGVybiB2b2lkIGlhNjRf bG9hZF9leHRyYSAoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsKCiNkZWZpbmUgX19zd2l0Y2hf dG8ocHJldiwgbmV4dCwgbGFzdCkgZG8geyBpZiAoKChwcmV2KS0+dGhyZWFkLmZsYWdzICYgKElB NjRfVEhSRUFEX0RCR19WQUxJRHxJQTY0X1RIUkVBRF9QTV9WQUxJRCkpIHx8IElTX0lBMzJfUFJP Q0VTUyhpYTY0X3Rhc2tfcmVncyhwcmV2KSkpIGlhNjRfc2F2ZV9leHRyYShwcmV2KTsgaWYgKCgo bmV4dCktPnRocmVhZC5mbGFncyAmIChJQTY0X1RIUkVBRF9EQkdfVkFMSUR8SUE2NF9USFJFQURf UE1fVkFMSUQpKSB8fCBJU19JQTMyX1BST0NFU1MoaWE2NF90YXNrX3JlZ3MobmV4dCkpKSBpYTY0 X2xvYWRfZXh0cmEobmV4dCk7IChsYXN0KSA9IGlhNjRfc3dpdGNoX3RvKChuZXh0KSk7IH0gd2hp bGUgKDApCiMgNDA4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIK I2RlZmluZSBzd2l0Y2hfdG8ocHJldiwgbmV4dCwgbGFzdCkgZG8geyBpZiAoaWE2NF9wc3IoaWE2 NF90YXNrX3JlZ3MocHJldikpLT5tZmgpIHsgaWE2NF9wc3IoaWE2NF90YXNrX3JlZ3MocHJldikp LT5tZmggPSAwOyAocHJldiktPnRocmVhZC5mbGFncyB8PSBJQTY0X1RIUkVBRF9GUEhfVkFMSUQ7 IF9faWE2NF9zYXZlX2ZwdSgocHJldiktPnRocmVhZC5mcGgpOyB9IGlhNjRfcHNyKGlhNjRfdGFz a19yZWdzKHByZXYpKS0+ZGZoID0gMTsgX19zd2l0Y2hfdG8ocHJldixuZXh0LGxhc3QpOyB9IHdo aWxlICgwKQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zcGlubG9jay5o IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYml0b3BzLmgiIDEKCiNk ZWZpbmUgX0FTTV9JQTY0X0JJVE9QU19ICiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvYXNtL2JpdG9wcy5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5 c3RlbS5oIiAxCiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2JpdG9wcy5o IiAyCiMgMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2JpdG9wcy5oIgpzdGF0 aWMgX19pbmxpbmVfXyB2b2lkCnNldF9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikK ewogICAgICAgIF9fdTMyIGJpdCwgb2xkLCBuZXc7CiAgICAgICAgdm9sYXRpbGUgX191MzIgKm07 CgoKICAgICAgICBtID0gKHZvbGF0aWxlIF9fdTMyICopIGFkZHIgKyAobnIgPj4gNSk7CiAgICAg ICAgYml0ID0gMSA8PCAobnIgJiAzMSk7CiAgICAgICAgZG8gewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAgICAgIG9sZCA9ICptOwogICAgICAgICAgICAg ICAgbmV3ID0gb2xkIHwgYml0OwogICAgICAgIH0gd2hpbGUgKCh7IF9fdHlwZW9mX18oKG0pKSBf cF8gPSAoKG0pKTsgX190eXBlb2ZfXygobmV3KSkgX25fID0gKChuZXcpKTsgX191NjQgX29fLCBf cl87IHN3aXRjaCAoc2l6ZW9mKCoobSkpKSB7IGNhc2UgMTogX29fID0gKF9fdTggKSAobG9uZykg KChvbGQpKTsgYnJlYWs7IGNhc2UgMjogX29fID0gKF9fdTE2KSAobG9uZykgKChvbGQpKTsgYnJl YWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgODog X29fID0gKF9fdTY0KSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGRlZmF1bHQ6IGJyZWFrOyB9IF9f YXNtX18gX192b2xhdGlsZV9fICgibW92IGFyLmNjdj0lMDs7IiA6OiAick8iKF9vXykpOyBzd2l0 Y2ggKHNpemVvZigqKG0pKSkgeyBjYXNlIDE6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4 Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAi ciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgMjogX19hc21fXyBfX3ZvbGF0aWxlX18g KCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIi KF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA0OiBfX2FzbV9fIF9fdm9s YXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3EiIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9y XykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNt X18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnOC4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6 ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1 bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRfd2l0aF9iYWRfcG9pbnRlcigpOyBicmVhazsgfSAo X190eXBlb2ZfXygob2xkKSkpIF9yXzsgfSkgIT0gb2xkKTsKfQoKCgoKI2RlZmluZSBzbXBfbWJf X2JlZm9yZV9jbGVhcl9iaXQoKSBzbXBfbWIoKQojZGVmaW5lIHNtcF9tYl9fYWZ0ZXJfY2xlYXJf Yml0KCkgc21wX21iKCkKc3RhdGljIF9faW5saW5lX18gdm9pZApjbGVhcl9iaXQgKGludCBuciwg dm9sYXRpbGUgdm9pZCAqYWRkcikKewogICAgICAgIF9fdTMyIG1hc2ssIG9sZCwgbmV3OwogICAg ICAgIHZvbGF0aWxlIF9fdTMyICptOwoKCiAgICAgICAgbSA9ICh2b2xhdGlsZSBfX3UzMiAqKSBh ZGRyICsgKG5yID4+IDUpOwogICAgICAgIG1hc2sgPSB+KDEgPDwgKG5yICYgMzEpKTsKICAgICAg ICBkbyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwogICAgICAgICAgICAg ICAgb2xkID0gKm07CiAgICAgICAgICAgICAgICBuZXcgPSBvbGQgJiBtYXNrOwogICAgICAgIH0g d2hpbGUgKCh7IF9fdHlwZW9mX18oKG0pKSBfcF8gPSAoKG0pKTsgX190eXBlb2ZfXygobmV3KSkg X25fID0gKChuZXcpKTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAoc2l6ZW9mKCoobSkpKSB7IGNh c2UgMTogX29fID0gKF9fdTggKSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgMjogX29fID0g KF9fdTE2KSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAobG9u ZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgODogX29fID0gKF9fdTY0KSAobG9uZykgKChvbGQpKTsg YnJlYWs7IGRlZmF1bHQ6IGJyZWFrOyB9IF9fYXNtX18gX192b2xhdGlsZV9fICgibW92IGFyLmNj dj0lMDs7IiA6OiAick8iKF9vXykpOyBzd2l0Y2ggKHNpemVvZigqKG0pKSkgeyBjYXNlIDE6IF9f YXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2 IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNh c2UgMjogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUxXSwl Mixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBi cmVhazsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3EiIiAl MD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVt b3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnOC4i ImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25f KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRfd2l0 aF9iYWRfcG9pbnRlcigpOyBicmVhazsgfSAoX190eXBlb2ZfXygob2xkKSkpIF9yXzsgfSkgIT0g b2xkKTsKfQoKCgoKc3RhdGljIF9faW5saW5lX18gdm9pZApfX2NoYW5nZV9iaXQgKGludCBuciwg dm9pZCAqYWRkcikKewogICAgICAgIHZvbGF0aWxlIF9fdTMyICptID0gKF9fdTMyICopIGFkZHIg KyAobnIgPj4gNSk7CiAgICAgICAgX191MzIgYml0ID0gKDEgPDwgKG5yICYgMzEpKTsKCiAgICAg ICAgKm0gPSAqbSBeIGJpdDsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZApjaGFuZ2VfYml0IChp bnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCnsKICAgICAgICBfX3UzMiBiaXQsIG9sZCwgbmV3 OwogICAgICAgIHZvbGF0aWxlIF9fdTMyICptOwoKCiAgICAgICAgbSA9ICh2b2xhdGlsZSBfX3Uz MiAqKSBhZGRyICsgKG5yID4+IDUpOwogICAgICAgIGJpdCA9ICgxIDw8IChuciAmIDMxKSk7CiAg ICAgICAgZG8gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKICAgICAgICAg ICAgICAgIG9sZCA9ICptOwogICAgICAgICAgICAgICAgbmV3ID0gb2xkIF4gYml0OwogICAgICAg IH0gd2hpbGUgKCh7IF9fdHlwZW9mX18oKG0pKSBfcF8gPSAoKG0pKTsgX190eXBlb2ZfXygobmV3 KSkgX25fID0gKChuZXcpKTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAoc2l6ZW9mKCoobSkpKSB7 IGNhc2UgMTogX29fID0gKF9fdTggKSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgMjogX29f ID0gKF9fdTE2KSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAo bG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgODogX29fID0gKF9fdTY0KSAobG9uZykgKChvbGQp KTsgYnJlYWs7IGRlZmF1bHQ6IGJyZWFrOyB9IF9fYXNtX18gX192b2xhdGlsZV9fICgibW92IGFy LmNjdj0lMDs7IiA6OiAick8iKF9vXykpOyBzd2l0Y2ggKHNpemVvZigqKG0pKSkgeyBjYXNlIDE6 IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIu Y2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7 IGNhc2UgMjogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUx XSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIp OyBicmVhazsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3Ei IiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAi bWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hn OC4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIo X25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRf d2l0aF9iYWRfcG9pbnRlcigpOyBicmVhazsgfSAoX190eXBlb2ZfXygob2xkKSkpIF9yXzsgfSkg IT0gb2xkKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50CnRlc3RfYW5kX3NldF9iaXQgKGludCBu ciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKewogICAgICAgIF9fdTMyIGJpdCwgb2xkLCBuZXc7CiAg ICAgICAgdm9sYXRpbGUgX191MzIgKm07CgoKICAgICAgICBtID0gKHZvbGF0aWxlIF9fdTMyICop IGFkZHIgKyAobnIgPj4gNSk7CiAgICAgICAgYml0ID0gMSA8PCAobnIgJiAzMSk7CiAgICAgICAg ZG8gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAgICAg IG9sZCA9ICptOwogICAgICAgICAgICAgICAgbmV3ID0gb2xkIHwgYml0OwogICAgICAgIH0gd2hp bGUgKCh7IF9fdHlwZW9mX18oKG0pKSBfcF8gPSAoKG0pKTsgX190eXBlb2ZfXygobmV3KSkgX25f ID0gKChuZXcpKTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAoc2l6ZW9mKCoobSkpKSB7IGNhc2Ug MTogX29fID0gKF9fdTggKSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgMjogX29fID0gKF9f dTE2KSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAobG9uZykg KChvbGQpKTsgYnJlYWs7IGNhc2UgODogX29fID0gKF9fdTY0KSAobG9uZykgKChvbGQpKTsgYnJl YWs7IGRlZmF1bHQ6IGJyZWFrOyB9IF9fYXNtX18gX192b2xhdGlsZV9fICgibW92IGFyLmNjdj0l MDs7IiA6OiAick8iKF9vXykpOyBzd2l0Y2ggKHNpemVvZigqKG0pKSkgeyBjYXNlIDE6IF9fYXNt X18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6 ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2Ug MjogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUxXSwlMixh ci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVh azsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3EiIiAlMD1b JTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5 Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnOC4iImFj cSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6 ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRfd2l0aF9i YWRfcG9pbnRlcigpOyBicmVhazsgfSAoX190eXBlb2ZfXygob2xkKSkpIF9yXzsgfSkgIT0gb2xk KTsKICAgICAgICByZXR1cm4gKG9sZCAmIGJpdCkgIT0gMDsKfQoKc3RhdGljIF9faW5saW5lX18g aW50CnRlc3RfYW5kX2NsZWFyX2JpdCAoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQp7CiAg ICAgICAgX191MzIgbWFzaywgb2xkLCBuZXc7CiAgICAgICAgdm9sYXRpbGUgX191MzIgKm07CgoK ICAgICAgICBtID0gKHZvbGF0aWxlIF9fdTMyICopIGFkZHIgKyAobnIgPj4gNSk7CiAgICAgICAg bWFzayA9IH4oMSA8PCAobnIgJiAzMSkpOwogICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA7CiAgICAgICAgICAgICAgICBvbGQgPSAqbTsKICAgICAgICAgICAg ICAgIG5ldyA9IG9sZCAmIG1hc2s7CiAgICAgICAgfSB3aGlsZSAoKHsgX190eXBlb2ZfXygobSkp IF9wXyA9ICgobSkpOyBfX3R5cGVvZl9fKChuZXcpKSBfbl8gPSAoKG5ldykpOyBfX3U2NCBfb18s IF9yXzsgc3dpdGNoIChzaXplb2YoKihtKSkpIHsgY2FzZSAxOiBfb18gPSAoX191OCApIChsb25n KSAoKG9sZCkpOyBicmVhazsgY2FzZSAyOiBfb18gPSAoX191MTYpIChsb25nKSAoKG9sZCkpOyBi cmVhazsgY2FzZSA0OiBfb18gPSAoX191MzIpIChsb25nKSAoKG9sZCkpOyBicmVhazsgY2FzZSA4 OiBfb18gPSAoX191NjQpIChsb25nKSAoKG9sZCkpOyBicmVhazsgZGVmYXVsdDogYnJlYWs7IH0g X19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3YgYXIuY2N2PSUwOzsiIDo6ICJyTyIoX29fKSk7IHN3 aXRjaCAoc2l6ZW9mKCoobSkpKSB7IGNhc2UgMTogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNt cHhjaGcxLiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyks ICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSAyOiBfX2FzbV9fIF9fdm9sYXRpbGVf XyAoIiIiY21weGNoZzIuIiJhY3EiIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAi ciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDQ6IF9fYXNtX18gX192 b2xhdGlsZV9fICgiIiJjbXB4Y2hnNC4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIo X3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19h c21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGc4LiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3Yi IDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgZGVm YXVsdDogX3JfID0gX19jbXB4Y2hnX2NhbGxlZF93aXRoX2JhZF9wb2ludGVyKCk7IGJyZWFrOyB9 IChfX3R5cGVvZl9fKChvbGQpKSkgX3JfOyB9KSAhPSBvbGQpOwogICAgICAgIHJldHVybiAob2xk ICYgfm1hc2spICE9IDA7Cn0KCgoKCnN0YXRpYyBfX2lubGluZV9fIGludApfX3Rlc3RfYW5kX2No YW5nZV9iaXQgKGludCBuciwgdm9pZCAqYWRkcikKewogICAgICAgIF9fdTMyIG9sZCwgYml0ID0g KDEgPDwgKG5yICYgMzEpKTsKICAgICAgICBfX3UzMiAqbSA9IChfX3UzMiAqKSBhZGRyICsgKG5y ID4+IDUpOwoKICAgICAgICBvbGQgPSAqbTsKICAgICAgICAqbSA9IG9sZCBeIGJpdDsKICAgICAg ICByZXR1cm4gKG9sZCAmIGJpdCkgIT0gMDsKfQoKc3RhdGljIF9faW5saW5lX18gaW50CnRlc3Rf YW5kX2NoYW5nZV9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKewogICAgICAgIF9f dTMyIGJpdCwgb2xkLCBuZXc7CiAgICAgICAgdm9sYXRpbGUgX191MzIgKm07CgoKICAgICAgICBt ID0gKHZvbGF0aWxlIF9fdTMyICopIGFkZHIgKyAobnIgPj4gNSk7CiAgICAgICAgYml0ID0gKDEg PDwgKG5yICYgMzEpKTsKICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOwogICAgICAgICAgICAgICAgb2xkID0gKm07CiAgICAgICAgICAgICAgICBuZXcgPSBv bGQgXiBiaXQ7CiAgICAgICAgfSB3aGlsZSAoKHsgX190eXBlb2ZfXygobSkpIF9wXyA9ICgobSkp OyBfX3R5cGVvZl9fKChuZXcpKSBfbl8gPSAoKG5ldykpOyBfX3U2NCBfb18sIF9yXzsgc3dpdGNo IChzaXplb2YoKihtKSkpIHsgY2FzZSAxOiBfb18gPSAoX191OCApIChsb25nKSAoKG9sZCkpOyBi cmVhazsgY2FzZSAyOiBfb18gPSAoX191MTYpIChsb25nKSAoKG9sZCkpOyBicmVhazsgY2FzZSA0 OiBfb18gPSAoX191MzIpIChsb25nKSAoKG9sZCkpOyBicmVhazsgY2FzZSA4OiBfb18gPSAoX191 NjQpIChsb25nKSAoKG9sZCkpOyBicmVhazsgZGVmYXVsdDogYnJlYWs7IH0gX19hc21fXyBfX3Zv bGF0aWxlX18gKCJtb3YgYXIuY2N2PSUwOzsiIDo6ICJyTyIoX29fKSk7IHN3aXRjaCAoc2l6ZW9m KCoobSkpKSB7IGNhc2UgMTogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcxLiIiYWNx IiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDog Im1lbW9yeSIpOyBicmVhazsgY2FzZSAyOiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNo ZzIuIiJhY3EiIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIi KF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgi IiJjbXB4Y2hnNC4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihf cF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0 aWxlX18gKCIiImNtcHhjaGc4LiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8p IDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX3JfID0g X19jbXB4Y2hnX2NhbGxlZF93aXRoX2JhZF9wb2ludGVyKCk7IGJyZWFrOyB9IChfX3R5cGVvZl9f KChvbGQpKSkgX3JfOyB9KSAhPSBvbGQpOwogICAgICAgIHJldHVybiAob2xkICYgYml0KSAhPSAw Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQKdGVzdF9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9p ZCAqYWRkcikKewogICAgICAgIHJldHVybiAxICYgKCgoY29uc3Qgdm9sYXRpbGUgX191MzIgKikg YWRkcilbbnIgPj4gNV0gPj4gKG5yICYgMzEpKTsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIHVuc2ln bmVkIGxvbmcKZmZ6ICh1bnNpZ25lZCBsb25nIHgpCnsKICAgICAgICB1bnNpZ25lZCBsb25nIHJl c3VsdDsKCiAgICAgICAgX19hc21fXyAoInBvcGNudCAlMD0lMSIgOiAiPXIiIChyZXN1bHQpIDog InIiICh4ICYgKH54IC0gMSkpKTsKICAgICAgICByZXR1cm4gcmVzdWx0Owp9CgoKCgoKCgpzdGF0 aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKaWE2NF9mbHMgKHVuc2lnbmVkIGxvbmcgeCkKewogICAg ICAgIGRvdWJsZSBkID0geDsKICAgICAgICBsb25nIGV4cDsKCiAgICAgICAgX19hc21fXyAoImdl dGYuZXhwICUwPSUxIiA6ICI9ciIoZXhwKSA6ICJmIihkKSk7CiAgICAgICAgcmV0dXJuIGV4cCAt IDB4ZmZmZjsKfQoKCgoKCgoKI2RlZmluZSBmZnMoeCkgX19idWlsdGluX2Zmcyh4KQoKCgoKCnN0 YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcKaHdlaWdodDY0ICh1bnNpZ25lZCBsb25nIHgp CnsKICAgICAgICB1bnNpZ25lZCBsb25nIHJlc3VsdDsKICAgICAgICBfX2FzbV9fICgicG9wY250 ICUwPSUxIiA6ICI9ciIgKHJlc3VsdCkgOiAiciIgKHgpKTsKICAgICAgICByZXR1cm4gcmVzdWx0 Owp9CgojZGVmaW5lIGh3ZWlnaHQzMih4KSBod2VpZ2h0NjQgKCh4KSAmIDB4ZmZmZmZmZmZ1bCkK I2RlZmluZSBod2VpZ2h0MTYoeCkgaHdlaWdodDY0ICgoeCkgJiAweGZmZmZ1bCkKI2RlZmluZSBo d2VpZ2h0OCh4KSBod2VpZ2h0NjQgKCh4KSAmIDB4ZmZ1bCkKCgoKCgoKc3RhdGljIGlubGluZSBp bnQKZmluZF9uZXh0X3plcm9fYml0ICh2b2lkICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUsIHVu c2lnbmVkIGxvbmcgb2Zmc2V0KQp7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqcCA9ICgodW5zaWdu ZWQgbG9uZyAqKSBhZGRyKSArIChvZmZzZXQgPj4gNik7CiAgICAgICAgdW5zaWduZWQgbG9uZyBy ZXN1bHQgPSBvZmZzZXQgJiB+NjNVTDsKICAgICAgICB1bnNpZ25lZCBsb25nIHRtcDsKCiAgICAg ICAgaWYgKG9mZnNldCA+PSBzaXplKQogICAgICAgICAgICAgICAgcmV0dXJuIHNpemU7CiAgICAg ICAgc2l6ZSAtPSByZXN1bHQ7CiAgICAgICAgb2Zmc2V0ICY9IDYzVUw7CiAgICAgICAgaWYgKG9m ZnNldCkgewogICAgICAgICAgICAgICAgdG1wID0gKihwKyspOwogICAgICAgICAgICAgICAgdG1w IHw9IH4wVUwgPj4gKDY0LW9mZnNldCk7CiAgICAgICAgICAgICAgICBpZiAoc2l6ZSA8IDY0KQog ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZvdW5kX2ZpcnN0OwogICAgICAgICAgICAgICAg aWYgKH50bXApCiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZm91bmRfbWlkZGxlOwogICAg ICAgICAgICAgICAgc2l6ZSAtPSA2NDsKICAgICAgICAgICAgICAgIHJlc3VsdCArPSA2NDsKICAg ICAgICB9CiAgICAgICAgd2hpbGUgKHNpemUgJiB+NjNVTCkgewogICAgICAgICAgICAgICAgaWYg KH4odG1wID0gKihwKyspKSkKICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmb3VuZF9taWRk bGU7CiAgICAgICAgICAgICAgICByZXN1bHQgKz0gNjQ7CiAgICAgICAgICAgICAgICBzaXplIC09 IDY0OwogICAgICAgIH0KICAgICAgICBpZiAoIXNpemUpCiAgICAgICAgICAgICAgICByZXR1cm4g cmVzdWx0OwogICAgICAgIHRtcCA9ICpwOwpmb3VuZF9maXJzdDoKICAgICAgICB0bXAgfD0gfjBV TCA8PCBzaXplOwpmb3VuZF9taWRkbGU6CiAgICAgICAgcmV0dXJuIHJlc3VsdCArIGZmeih0bXAp Owp9CgoKCgojZGVmaW5lIGZpbmRfZmlyc3RfemVyb19iaXQoYWRkciwgc2l6ZSkgZmluZF9uZXh0 X3plcm9fYml0KChhZGRyKSwgKHNpemUpLCAwKQoKCgojZGVmaW5lIGV4dDJfc2V0X2JpdCB0ZXN0 X2FuZF9zZXRfYml0CiNkZWZpbmUgZXh0Ml9jbGVhcl9iaXQgdGVzdF9hbmRfY2xlYXJfYml0CiNk ZWZpbmUgZXh0Ml90ZXN0X2JpdCB0ZXN0X2JpdAojZGVmaW5lIGV4dDJfZmluZF9maXJzdF96ZXJv X2JpdCBmaW5kX2ZpcnN0X3plcm9fYml0CiNkZWZpbmUgZXh0Ml9maW5kX25leHRfemVyb19iaXQg ZmluZF9uZXh0X3plcm9fYml0CgoKI2RlZmluZSBtaW5peF90ZXN0X2FuZF9zZXRfYml0KG5yLCBh ZGRyKSB0ZXN0X2FuZF9zZXRfYml0KG5yLGFkZHIpCiNkZWZpbmUgbWluaXhfc2V0X2JpdChuciwg YWRkcikgc2V0X2JpdChucixhZGRyKQojZGVmaW5lIG1pbml4X3Rlc3RfYW5kX2NsZWFyX2JpdChu ciwgYWRkcikgdGVzdF9hbmRfY2xlYXJfYml0KG5yLGFkZHIpCiNkZWZpbmUgbWluaXhfdGVzdF9i aXQobnIsIGFkZHIpIHRlc3RfYml0KG5yLGFkZHIpCiNkZWZpbmUgbWluaXhfZmluZF9maXJzdF96 ZXJvX2JpdChhZGRyLCBzaXplKSBmaW5kX2ZpcnN0X3plcm9fYml0KGFkZHIsc2l6ZSkKIyAxNiAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIgMgojIDEgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2F0b21pYy5oIiAxCgojZGVmaW5lIF9BU01fSUE2 NF9BVE9NSUNfSAojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9hdG9taWMu aCIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyAx NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYXRvbWljLmgiIDIKCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lzdGVtLmgiIDEKIyAxOCAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYXRvbWljLmgiIDIKCgoKCgp0eXBlZGVmIHN0cnVjdCB7 IHZvbGF0aWxlIF9fczMyIGNvdW50ZXI7IH0gYXRvbWljX3Q7CgojZGVmaW5lIEFUT01JQ19JTklU KGkpICgoYXRvbWljX3QpIHsgKGkpIH0pCgojZGVmaW5lIGF0b21pY19yZWFkKHYpICgodiktPmNv dW50ZXIpCiNkZWZpbmUgYXRvbWljX3NldCh2LCBpKSAoKCh2KS0+Y291bnRlcikgPSAoaSkpCgpz dGF0aWMgX19pbmxpbmVfXyBpbnQKaWE2NF9hdG9taWNfYWRkIChpbnQgaSwgYXRvbWljX3QgKnYp CnsKICAgICAgICBfX3MzMiBvbGQsIG5ldzsKCgogICAgICAgIGRvIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7CiAgICAgICAgICAgICAgICBvbGQgPSAoKHYpLT5jb3VudGVy KTsKICAgICAgICAgICAgICAgIG5ldyA9IG9sZCArIGk7CiAgICAgICAgfSB3aGlsZSAoKHsgX190 eXBlb2ZfXyh2KSBfcF8gPSAodik7IF9fdHlwZW9mX18ob2xkICsgaSkgX25fID0gKG9sZCArIGkp OyBfX3U2NCBfb18sIF9yXzsgc3dpdGNoIChzaXplb2YoYXRvbWljX3QpKSB7IGNhc2UgMTogX29f ID0gKF9fdTggKSAobG9uZykgKG9sZCk7IGJyZWFrOyBjYXNlIDI6IF9vXyA9IChfX3UxNikgKGxv bmcpIChvbGQpOyBicmVhazsgY2FzZSA0OiBfb18gPSAoX191MzIpIChsb25nKSAob2xkKTsgYnJl YWs7IGNhc2UgODogX29fID0gKF9fdTY0KSAobG9uZykgKG9sZCk7IGJyZWFrOyBkZWZhdWx0OiBi cmVhazsgfSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1vdiBhci5jY3Y9JTA7OyIgOjogInJPIihf b18pKTsgc3dpdGNoIChzaXplb2YoYXRvbWljX3QpKSB7IGNhc2UgMTogX19hc21fXyBfX3ZvbGF0 aWxlX18gKCIiImNtcHhjaGcxLiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8p IDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSAyOiBfX2FzbV9f IF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzIuIiJhY3EiIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAi PXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDQ6 IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnNC4iImFjcSIiICUwPVslMV0sJTIsYXIu Y2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7 IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGc4LiIiYWNxIiIgJTA9WyUx XSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIp OyBicmVhazsgZGVmYXVsdDogX3JfID0gX19jbXB4Y2hnX2NhbGxlZF93aXRoX2JhZF9wb2ludGVy KCk7IGJyZWFrOyB9IChfX3R5cGVvZl9fKG9sZCkpIF9yXzsgfSkgIT0gb2xkKTsKICAgICAgICBy ZXR1cm4gbmV3Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQKaWE2NF9hdG9taWNfc3ViIChpbnQg aSwgYXRvbWljX3QgKnYpCnsKICAgICAgICBfX3MzMiBvbGQsIG5ldzsKCgogICAgICAgIGRvIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CiAgICAgICAgICAgICAgICBvbGQg PSAoKHYpLT5jb3VudGVyKTsKICAgICAgICAgICAgICAgIG5ldyA9IG9sZCAtIGk7CiAgICAgICAg fSB3aGlsZSAoKHsgX190eXBlb2ZfXyh2KSBfcF8gPSAodik7IF9fdHlwZW9mX18obmV3KSBfbl8g PSAobmV3KTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAoc2l6ZW9mKGF0b21pY190KSkgeyBjYXNl IDE6IF9vXyA9IChfX3U4ICkgKGxvbmcpIChvbGQpOyBicmVhazsgY2FzZSAyOiBfb18gPSAoX191 MTYpIChsb25nKSAob2xkKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAobG9uZykgKG9s ZCk7IGJyZWFrOyBjYXNlIDg6IF9vXyA9IChfX3U2NCkgKGxvbmcpIChvbGQpOyBicmVhazsgZGVm YXVsdDogYnJlYWs7IH0gX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3YgYXIuY2N2PSUwOzsiIDo6 ICJyTyIoX29fKSk7IHN3aXRjaCAoc2l6ZW9mKGF0b21pY190KSkgeyBjYXNlIDE6IF9fYXNtX18g X192b2xhdGlsZV9fICgiIiJjbXB4Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9 ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgMjog X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUxXSwlMixhci5j Y3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsg Y2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3EiIiAlMD1bJTFd LCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7 IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnOC4iImFjcSIi ICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJt ZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRfd2l0aF9iYWRf cG9pbnRlcigpOyBicmVhazsgfSAoX190eXBlb2ZfXyhvbGQpKSBfcl87IH0pICE9IG9sZCk7CiAg ICAgICAgcmV0dXJuIG5ldzsKfQoKCgoKCnN0YXRpYyBfX2lubGluZV9fIGludAphdG9taWNfYWRk X25lZ2F0aXZlIChpbnQgaSwgYXRvbWljX3QgKnYpCnsKICAgICAgICByZXR1cm4gaWE2NF9hdG9t aWNfYWRkKGksIHYpIDwgMDsKfQoKI2RlZmluZSBhdG9taWNfYWRkX3JldHVybihpLCB2KSAoKF9f YnVpbHRpbl9jb25zdGFudF9wKGkpICYmICggKGkgPT0gMSkgfHwgKGkgPT0gNCkgfHwgKGkgPT0g OCkgfHwgKGkgPT0gMTYpIHx8IChpID09IC0xKSB8fCAoaSA9PSAtNCkgfHwgKGkgPT0gLTgpIHx8 IChpID09IC0xNikpKSA/IGlhNjRfZmV0Y2hfYW5kX2FkZChpLCAmKHYpLT5jb3VudGVyKSA6IGlh NjRfYXRvbWljX2FkZChpLCB2KSkKCgoKCgoKI2RlZmluZSBhdG9taWNfc3ViX3JldHVybihpLCB2 KSAoKF9fYnVpbHRpbl9jb25zdGFudF9wKGkpICYmICggKGkgPT0gMSkgfHwgKGkgPT0gNCkgfHwg KGkgPT0gOCkgfHwgKGkgPT0gMTYpIHx8IChpID09IC0xKSB8fCAoaSA9PSAtNCkgfHwgKGkgPT0g LTgpIHx8IChpID09IC0xNikpKSA/IGlhNjRfZmV0Y2hfYW5kX2FkZCgtKGkpLCAmKHYpLT5jb3Vu dGVyKSA6IGlhNjRfYXRvbWljX3N1YihpLCB2KSkKCgoKCgoKI2RlZmluZSBhdG9taWNfZGVjX3Jl dHVybih2KSBhdG9taWNfc3ViX3JldHVybigxLCAodikpCiNkZWZpbmUgYXRvbWljX2luY19yZXR1 cm4odikgYXRvbWljX2FkZF9yZXR1cm4oMSwgKHYpKQoKI2RlZmluZSBhdG9taWNfc3ViX2FuZF90 ZXN0KGksIHYpIChhdG9taWNfc3ViX3JldHVybigoaSksICh2KSkgPT0gMCkKI2RlZmluZSBhdG9t aWNfZGVjX2FuZF90ZXN0KHYpIChhdG9taWNfc3ViX3JldHVybigxLCAodikpID09IDApCiNkZWZp bmUgYXRvbWljX2luY19hbmRfdGVzdCh2KSAoYXRvbWljX2FkZF9yZXR1cm4oMSwgKHYpKSAhPSAw KQoKI2RlZmluZSBhdG9taWNfYWRkKGksIHYpIGF0b21pY19hZGRfcmV0dXJuKChpKSwgKHYpKQoj ZGVmaW5lIGF0b21pY19zdWIoaSwgdikgYXRvbWljX3N1Yl9yZXR1cm4oKGkpLCAodikpCiNkZWZp bmUgYXRvbWljX2luYyh2KSBhdG9taWNfYWRkKDEsICh2KSkKI2RlZmluZSBhdG9taWNfZGVjKHYp IGF0b21pY19zdWIoMSwgKHYpKQoKCiNkZWZpbmUgc21wX21iX19iZWZvcmVfYXRvbWljX2RlYygp IGJhcnJpZXIoKQojZGVmaW5lIHNtcF9tYl9fYWZ0ZXJfYXRvbWljX2RlYygpIGJhcnJpZXIoKQoj ZGVmaW5lIHNtcF9tYl9fYmVmb3JlX2F0b21pY19pbmMoKSBiYXJyaWVyKCkKI2RlZmluZSBzbXBf bWJfX2FmdGVyX2F0b21pY19pbmMoKSBiYXJyaWVyKCkKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIgMgojIDcwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2FzbS9zcGlubG9jay5oIgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgdm9sYXRpbGUg dW5zaWduZWQgaW50IGxvY2s7Cn0gc3BpbmxvY2tfdDsKCiNkZWZpbmUgU1BJTl9MT0NLX1VOTE9D S0VEIChzcGlubG9ja190KSB7IDAgfQojZGVmaW5lIHNwaW5fbG9ja19pbml0KHgpICgoeCktPmxv Y2sgPSAwKQoKCgoKCgojZGVmaW5lIHNwaW5fbG9jayh4KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAo ICJtb3YgYXIuY2N2ID0gcjBcbiIgIm1vdiByMjkgPSAxXG4iICI7O1xuIiAiMTpcbiIgImxkNCBy MiA9IFslMF1cbiIgIjs7XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAscjJcbiIgIihwNykgYnIuY29u ZC5zcG50LmZldyAxYiBcbiIgSUE2NF9TRU1GSVgiY21weGNoZzQuYWNxIHIyID0gWyUwXSwgcjI5 LCBhci5jY3ZcbiIgIjs7XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAsIHIyXG4iICIocDcpIGJyLmNv bmQuc3BudC5mZXcgMWJcbiIgIjs7XG4iIDo6ICJyIigmKHgpLT5sb2NrKSA6ICJyMiIsICJyMjki LCAibWVtb3J5IikKIyA5OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3Bpbmxv Y2suaCIKI2RlZmluZSBzcGluX2lzX2xvY2tlZCh4KSAoKHgpLT5sb2NrICE9IDApCiNkZWZpbmUg c3Bpbl91bmxvY2soeCkgZG8geyBiYXJyaWVyKCk7ICgoc3BpbmxvY2tfdCAqKSB4KS0+bG9jayA9 IDA7IH0gd2hpbGUgKDApCiNkZWZpbmUgc3Bpbl90cnlsb2NrKHgpIChjbXB4Y2hnX2FjcSgmKHgp LT5sb2NrLCAwLCAxKSA9PSAwKQojZGVmaW5lIHNwaW5fdW5sb2NrX3dhaXQoeCkgZG8geyBiYXJy aWVyKCk7IH0gd2hpbGUgKCh4KS0+bG9jaykKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIHZv bGF0aWxlIGludCByZWFkX2NvdW50ZXI6MzE7CiAgICAgICAgdm9sYXRpbGUgaW50IHdyaXRlX2xv Y2s6MTsKfSByd2xvY2tfdDsKI2RlZmluZSBSV19MT0NLX1VOTE9DS0VEIChyd2xvY2tfdCkgeyAw LCAwIH0KCiNkZWZpbmUgcmVhZF9sb2NrKHJ3KSBkbyB7IGludCB0bXAgPSAwOyBfX2FzbV9fIF9f dm9sYXRpbGVfXyAoIjE6XHQiSUE2NF9TRU1GSVgiZmV0Y2hhZGQ0LmFjcSAlMCA9IFslMV0sIDFc biIgIjs7XG4iICJ0Yml0Lm56IHA2LHAwID0gJTAsIDMxXG4iICIocDYpIGJyLmNvbmQuc3B0ay5m ZXcgMmZcbiIgIi5zZWN0aW9uIC50ZXh0LmxvY2ssXCJheFwiXG4iICIyOlx0IklBNjRfU0VNRklY ImZldGNoYWRkNC5yZWwgJTAgPSBbJTFdLCAtMVxuIiAiOztcbiIgIjM6XHRsZDQuYWNxICUwID0g WyUxXVxuIiAiOztcbiIgInRiaXQubnogcDYscDAgPSAlMCwgMzFcbiIgIihwNikgYnIuY29uZC5z cHRrLmZldyAzYlxuIiAiYnIuY29uZC5zcHRrLmZldyAxYlxuIiAiOztcbiIgIi5wcmV2aW91c1xu IiA6ICI9JnIiICh0bXApIDogInIiIChydyk6ICJtZW1vcnkiKTsgfSB3aGlsZSgwKQojIDEzMiAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIKI2RlZmluZSByZWFk X3VubG9jayhydykgZG8geyBpbnQgdG1wID0gMDsgX19hc21fXyBfX3ZvbGF0aWxlX18gKElBNjRf U0VNRklYImZldGNoYWRkNC5yZWwgJTAgPSBbJTFdLCAtMVxuIiA6ICI9ciIgKHRtcCkgOiAiciIg KHJ3KSA6ICJtZW1vcnkiKTsgfSB3aGlsZSgwKQojIDE0MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9hc20vc3BpbmxvY2suaCIKI2RlZmluZSB3cml0ZV9sb2NrKHJ3KSBkbyB7IF9fYXNt X18gX192b2xhdGlsZV9fICggIm1vdiBhci5jY3YgPSByMFxuIiAibW92bCByMjkgPSAweDgwMDAw MDAwXG4iICI7O1xuIiAiMTpcbiIgImxkNCByMiA9IFslMF1cbiIgIjs7XG4iICJjbXA0LmVxIHAw LHA3ID0gcjAscjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZldyAxYiBcbiIgSUE2NF9TRU1GSVgi Y21weGNoZzQuYWNxIHIyID0gWyUwXSwgcjI5LCBhci5jY3ZcbiIgIjs7XG4iICJjbXA0LmVxIHAw LHA3ID0gcjAsIHIyXG4iICIocDcpIGJyLmNvbmQuc3BudC5mZXcgMWJcbiIgIjs7XG4iIDo6ICJy IihydykgOiAicjIiLCAicjI5IiwgIm1lbW9yeSIpOyB9IHdoaWxlKDApCiMgMTY0ICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zcGlubG9jay5oIgojZGVmaW5lIHdyaXRlX3VubG9j ayh4KSAoe2NsZWFyX2JpdCgzMSwgKHgpKTsgbWIoKTt9KQojIDM2ICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiIDIKIyAxMzIgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2FzbS9hdG9taWMuaCIgMQojIDEzMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9zcGlubG9jay5oIiAyCmV4dGVybiBpbnQgYXRvbWljX2RlY19hbmRfbG9jayhhdG9t aWNfdCAqYXRvbWljLCBzcGlubG9ja190ICpsb2NrKTsKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC93YWl0LmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9hc20vcGFnZS5oIiAxCiMgMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvd2FpdC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vz c29yLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1BST0NFU1NPUl9ICiMgMTYgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9hc20vcHRyYWNlLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1BUUkFDRV9ICiMgNTEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0cmFjZS5oIgojIDEgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA1MiAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9hc20vcHRyYWNlLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9hc20vZnB1LmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X0ZQVV9ICgoKCgoKCiMgMSAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vdHlwZXMuaCIgMQojIDEwICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9mcHUuaCIgMgoKCiNkZWZpbmUgRlBTUl9UUkFQX1ZE ICgxIDw8IDApCiNkZWZpbmUgRlBTUl9UUkFQX0REICgxIDw8IDEpCiNkZWZpbmUgRlBTUl9UUkFQ X1pEICgxIDw8IDIpCiNkZWZpbmUgRlBTUl9UUkFQX09EICgxIDw8IDMpCiNkZWZpbmUgRlBTUl9U UkFQX1VEICgxIDw8IDQpCiNkZWZpbmUgRlBTUl9UUkFQX0lEICgxIDw8IDUpCiNkZWZpbmUgRlBT Ul9TMCh4KSAoKHgpIDw8IDYpCiNkZWZpbmUgRlBTUl9TMSh4KSAoKHgpIDw8IDE5KQojZGVmaW5l IEZQU1JfUzIoeCkgKF9fSUE2NF9VTCh4KSA8PCAzMikKI2RlZmluZSBGUFNSX1MzKHgpIChfX0lB NjRfVUwoeCkgPDwgNDUpCgoKI2RlZmluZSBGUFNGX0ZUWiAoMSA8PCAwKQojZGVmaW5lIEZQU0Zf V1JFICgxIDw8IDEpCiNkZWZpbmUgRlBTRl9QQyh4KSAoKCh4KSAmIDB4MykgPDwgMikKI2RlZmlu ZSBGUFNGX1JDKHgpICgoKHgpICYgMHgzKSA8PCA0KQojZGVmaW5lIEZQU0ZfVEQgKDEgPDwgNikK CgojZGVmaW5lIEZQU0ZfViAoMSA8PCA3KQojZGVmaW5lIEZQU0ZfRCAoMSA8PCA4KQojZGVmaW5l IEZQU0ZfWiAoMSA8PCA5KQojZGVmaW5lIEZQU0ZfTyAoMSA8PCAxMCkKI2RlZmluZSBGUFNGX1Ug KDEgPDwgMTEpCiNkZWZpbmUgRlBTRl9JICgxIDw8IDEyKQoKCiNkZWZpbmUgRlBSQ19ORUFSRVNU IDB4MAojZGVmaW5lIEZQUkNfTkVHSU5GIDB4MQojZGVmaW5lIEZQUkNfUE9TSU5GIDB4MgojZGVm aW5lIEZQUkNfVFJVTkMgMHgzCgojZGVmaW5lIEZQU0ZfREVGQVVMVCAoRlBTRl9QQyAoMHgzKSB8 IEZQU0ZfUkMgKEZQUkNfTkVBUkVTVCkpCgoKCiNkZWZpbmUgRlBTUl9ERUZBVUxUIChGUFNSX1RS QVBfVkQgfCBGUFNSX1RSQVBfREQgfCBGUFNSX1RSQVBfWkQgfCBGUFNSX1RSQVBfT0QgfCBGUFNS X1RSQVBfVUQgfCBGUFNSX1RSQVBfSUQgfCBGUFNSX1MwIChGUFNGX0RFRkFVTFQpIHwgRlBTUl9T MSAoRlBTRl9ERUZBVUxUIHwgRlBTRl9URCB8IEZQU0ZfV1JFKSB8IEZQU1JfUzIgKEZQU0ZfREVG QVVMVCB8IEZQU0ZfVEQpIHwgRlBTUl9TMyAoRlBTRl9ERUZBVUxUIHwgRlBTRl9URCkpCiMgNTcg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2ZwdS5oIgpzdHJ1Y3QgaWE2NF9mcHJl ZyB7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBiaXRzWzJd OwogICAgICAgIH0gdTsKfSBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCAoMTYpKSk7CiMgNTQgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAyCiMgMSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vb2Zmc2V0cy5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9P RkZTRVRTX0gKCgoKCgoKI2RlZmluZSBQVF9QVFJBQ0VEX0JJVCAwCiNkZWZpbmUgUFRfVFJBQ0VT WVNfQklUIDEKI2RlZmluZSBJQTY0X1RBU0tfU0laRSAzOTA0CiNkZWZpbmUgSUE2NF9QVF9SRUdT X1NJWkUgNDAwCiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfU0laRSA1NjAKI2RlZmluZSBJQTY0 X1NJR0lORk9fU0laRSAxMjgKI2RlZmluZSBJQTY0X0NQVV9TSVpFIDE2Mzg0CiNkZWZpbmUgU0lH RlJBTUVfU0laRSAyODMyCiNkZWZpbmUgVU5XX0ZSQU1FX0lORk9fU0laRSA0NDgKCiNkZWZpbmUg SUE2NF9UQVNLX1BUUkFDRV9PRkZTRVQgNDgKI2RlZmluZSBJQTY0X1RBU0tfU0lHUEVORElOR19P RkZTRVQgMTYKI2RlZmluZSBJQTY0X1RBU0tfTkVFRF9SRVNDSEVEX09GRlNFVCA0MAojZGVmaW5l IElBNjRfVEFTS19QUk9DRVNTT1JfT0ZGU0VUIDEwMAojZGVmaW5lIElBNjRfVEFTS19USFJFQURf T0ZGU0VUIDE0NTYKI2RlZmluZSBJQTY0X1RBU0tfVEhSRUFEX0tTUF9PRkZTRVQgMTQ1NgojZGVm aW5lIElBNjRfVEFTS19USFJFQURfU0lHTUFTS19PRkZTRVQgMTU2OAojZGVmaW5lIElBNjRfVEFT S19QRk1fTk9USUZZX09GRlNFVCAyMDg4CiNkZWZpbmUgSUE2NF9UQVNLX1BJRF9PRkZTRVQgMTk2 CiNkZWZpbmUgSUE2NF9UQVNLX01NX09GRlNFVCA4OAojZGVmaW5lIElBNjRfUFRfUkVHU19DUl9J UFNSX09GRlNFVCAwCiNkZWZpbmUgSUE2NF9QVF9SRUdTX0NSX0lJUF9PRkZTRVQgOAojZGVmaW5l IElBNjRfUFRfUkVHU19DUl9JRlNfT0ZGU0VUIDE2CiNkZWZpbmUgSUE2NF9QVF9SRUdTX0FSX1VO QVRfT0ZGU0VUIDI0CiNkZWZpbmUgSUE2NF9QVF9SRUdTX0FSX1BGU19PRkZTRVQgMzIKI2RlZmlu ZSBJQTY0X1BUX1JFR1NfQVJfUlNDX09GRlNFVCA0MAojZGVmaW5lIElBNjRfUFRfUkVHU19BUl9S TkFUX09GRlNFVCA0OAojZGVmaW5lIElBNjRfUFRfUkVHU19BUl9CU1BTVE9SRV9PRkZTRVQgNTYK I2RlZmluZSBJQTY0X1BUX1JFR1NfUFJfT0ZGU0VUIDY0CiNkZWZpbmUgSUE2NF9QVF9SRUdTX0I2 X09GRlNFVCA3MgojZGVmaW5lIElBNjRfUFRfUkVHU19MT0FEUlNfT0ZGU0VUIDgwCiNkZWZpbmUg SUE2NF9QVF9SRUdTX1IxX09GRlNFVCA4OAojZGVmaW5lIElBNjRfUFRfUkVHU19SMl9PRkZTRVQg OTYKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjNfT0ZGU0VUIDEwNAojZGVmaW5lIElBNjRfUFRfUkVH U19SMTJfT0ZGU0VUIDExMgojZGVmaW5lIElBNjRfUFRfUkVHU19SMTNfT0ZGU0VUIDEyMAojZGVm aW5lIElBNjRfUFRfUkVHU19SMTRfT0ZGU0VUIDEyOAojZGVmaW5lIElBNjRfUFRfUkVHU19SMTVf T0ZGU0VUIDEzNgojZGVmaW5lIElBNjRfUFRfUkVHU19SOF9PRkZTRVQgMTQ0CiNkZWZpbmUgSUE2 NF9QVF9SRUdTX1I5X09GRlNFVCAxNTIKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjEwX09GRlNFVCAx NjAKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjExX09GRlNFVCAxNjgKI2RlZmluZSBJQTY0X1BUX1JF R1NfUjE2X09GRlNFVCAxNzYKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjE3X09GRlNFVCAxODQKI2Rl ZmluZSBJQTY0X1BUX1JFR1NfUjE4X09GRlNFVCAxOTIKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjE5 X09GRlNFVCAyMDAKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjIwX09GRlNFVCAyMDgKI2RlZmluZSBJ QTY0X1BUX1JFR1NfUjIxX09GRlNFVCAyMTYKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjIyX09GRlNF VCAyMjQKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjIzX09GRlNFVCAyMzIKI2RlZmluZSBJQTY0X1BU X1JFR1NfUjI0X09GRlNFVCAyNDAKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjI1X09GRlNFVCAyNDgK I2RlZmluZSBJQTY0X1BUX1JFR1NfUjI2X09GRlNFVCAyNTYKI2RlZmluZSBJQTY0X1BUX1JFR1Nf UjI3X09GRlNFVCAyNjQKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjI4X09GRlNFVCAyNzIKI2RlZmlu ZSBJQTY0X1BUX1JFR1NfUjI5X09GRlNFVCAyODAKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjMwX09G RlNFVCAyODgKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjMxX09GRlNFVCAyOTYKI2RlZmluZSBJQTY0 X1BUX1JFR1NfQVJfQ0NWX09GRlNFVCAzMDQKI2RlZmluZSBJQTY0X1BUX1JFR1NfQVJfRlBTUl9P RkZTRVQgMzEyCiNkZWZpbmUgSUE2NF9QVF9SRUdTX0IwX09GRlNFVCAzMjAKI2RlZmluZSBJQTY0 X1BUX1JFR1NfQjdfT0ZGU0VUIDMyOAojZGVmaW5lIElBNjRfUFRfUkVHU19GNl9PRkZTRVQgMzM2 CiNkZWZpbmUgSUE2NF9QVF9SRUdTX0Y3X09GRlNFVCAzNTIKI2RlZmluZSBJQTY0X1BUX1JFR1Nf RjhfT0ZGU0VUIDM2OAojZGVmaW5lIElBNjRfUFRfUkVHU19GOV9PRkZTRVQgMzg0CiNkZWZpbmUg SUE2NF9TV0lUQ0hfU1RBQ0tfQ0FMTEVSX1VOQVRfT0ZGU0VUIDAKI2RlZmluZSBJQTY0X1NXSVRD SF9TVEFDS19BUl9GUFNSX09GRlNFVCA4CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjJfT0ZG U0VUIDE2CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjNfT0ZGU0VUIDMyCiNkZWZpbmUgSUE2 NF9TV0lUQ0hfU1RBQ0tfRjRfT0ZGU0VUIDQ4CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjVf T0ZGU0VUIDY0CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjEwX09GRlNFVCA4MAojZGVmaW5l IElBNjRfU1dJVENIX1NUQUNLX0YxMV9PRkZTRVQgOTYKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFD S19GMTJfT0ZGU0VUIDExMgojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0YxM19PRkZTRVQgMTI4 CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjE0X09GRlNFVCAxNDQKI2RlZmluZSBJQTY0X1NX SVRDSF9TVEFDS19GMTVfT0ZGU0VUIDE2MAojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0YxNl9P RkZTRVQgMTc2CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjE3X09GRlNFVCAxOTIKI2RlZmlu ZSBJQTY0X1NXSVRDSF9TVEFDS19GMThfT0ZGU0VUIDIwOAojZGVmaW5lIElBNjRfU1dJVENIX1NU QUNLX0YxOV9PRkZTRVQgMjI0CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjIwX09GRlNFVCAy NDAKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19GMjFfT0ZGU0VUIDI1NgojZGVmaW5lIElBNjRf U1dJVENIX1NUQUNLX0YyMl9PRkZTRVQgMjcyCiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjIz X09GRlNFVCAyODgKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19GMjRfT0ZGU0VUIDMwNAojZGVm aW5lIElBNjRfU1dJVENIX1NUQUNLX0YyNV9PRkZTRVQgMzIwCiNkZWZpbmUgSUE2NF9TV0lUQ0hf U1RBQ0tfRjI2X09GRlNFVCAzMzYKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19GMjdfT0ZGU0VU IDM1MgojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0YyOF9PRkZTRVQgMzY4CiNkZWZpbmUgSUE2 NF9TV0lUQ0hfU1RBQ0tfRjI5X09GRlNFVCAzODQKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19G MzBfT0ZGU0VUIDQwMAojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0YzMV9PRkZTRVQgNDE2CiNk ZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfUjRfT0ZGU0VUIDQzMgojZGVmaW5lIElBNjRfU1dJVENI X1NUQUNLX1I1X09GRlNFVCA0NDAKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19SNl9PRkZTRVQg NDQ4CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfUjdfT0ZGU0VUIDQ1NgojZGVmaW5lIElBNjRf U1dJVENIX1NUQUNLX0IwX09GRlNFVCA0NjQKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19CMV9P RkZTRVQgNDcyCiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfQjJfT0ZGU0VUIDQ4MAojZGVmaW5l IElBNjRfU1dJVENIX1NUQUNLX0IzX09GRlNFVCA0ODgKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFD S19CNF9PRkZTRVQgNDk2CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfQjVfT0ZGU0VUIDUwNAoj ZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0FSX1BGU19PRkZTRVQgNTEyCiNkZWZpbmUgSUE2NF9T V0lUQ0hfU1RBQ0tfQVJfTENfT0ZGU0VUIDUyMAojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0FS X1VOQVRfT0ZGU0VUIDUyOAojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0FSX1JOQVRfT0ZGU0VU IDUzNgojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0FSX0JTUFNUT1JFX09GRlNFVCA1NDQKI2Rl ZmluZSBJQTY0X1NXSVRDSF9TVEFDS19QUl9PRkZTRVQgNTUyCiNkZWZpbmUgSUE2NF9TSUdDT05U RVhUX0FSX0JTUF9PRkZTRVQgNzIKI2RlZmluZSBJQTY0X1NJR0NPTlRFWFRfQVJfRlBTUl9PRkZT RVQgMTA0CiNkZWZpbmUgSUE2NF9TSUdDT05URVhUX0FSX1JOQVRfT0ZGU0VUIDgwCiNkZWZpbmUg SUE2NF9TSUdDT05URVhUX0FSX1VOQVRfT0ZGU0VUIDk2CiNkZWZpbmUgSUE2NF9TSUdDT05URVhU X0IwX09GRlNFVCAxMzYKI2RlZmluZSBJQTY0X1NJR0NPTlRFWFRfQ0ZNX09GRlNFVCA0OAojZGVm aW5lIElBNjRfU0lHQ09OVEVYVF9GTEFHU19PRkZTRVQgMAojZGVmaW5lIElBNjRfU0lHQ09OVEVY VF9GUjZfT0ZGU0VUIDU2MAojZGVmaW5lIElBNjRfU0lHQ09OVEVYVF9QUl9PRkZTRVQgMTI4CiNk ZWZpbmUgSUE2NF9TSUdDT05URVhUX1IxMl9PRkZTRVQgMjk2CiNkZWZpbmUgSUE2NF9TSUdGUkFN RV9BUkcwX09GRlNFVCAwCiNkZWZpbmUgSUE2NF9TSUdGUkFNRV9BUkcxX09GRlNFVCA4CiNkZWZp bmUgSUE2NF9TSUdGUkFNRV9BUkcyX09GRlNFVCAxNgojZGVmaW5lIElBNjRfU0lHRlJBTUVfUkJT X0JBU0VfT0ZGU0VUIDI0CiNkZWZpbmUgSUE2NF9TSUdGUkFNRV9IQU5ETEVSX09GRlNFVCAzMgoj ZGVmaW5lIElBNjRfU0lHRlJBTUVfU0lHQ09OVEVYVF9PRkZTRVQgMTc2CiNkZWZpbmUgSUE2NF9D TE9ORV9WRk9SSyAxNjM4NAojZGVmaW5lIElBNjRfQ0xPTkVfVk0gMjU2CiNkZWZpbmUgSUE2NF9D UFVfSVJRX0NPVU5UX09GRlNFVCAwCiNkZWZpbmUgSUE2NF9DUFVfQkhfQ09VTlRfT0ZGU0VUIDQK I2RlZmluZSBJQTY0X0NQVV9QSFlTX1NUQUNLRURfU0laRV9QOF9PRkZTRVQgMTIKIyA1NSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHRyYWNlLmgiIDIKIyA2NSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHRyYWNlLmgiCiNkZWZpbmUgSUE2NF9UQVNLX1NUUlVD VF9MT0dfTlVNX1BBR0VTIDEKCgoKCiNkZWZpbmUgSUE2NF9SQlNfT0ZGU0VUICgoSUE2NF9UQVNL X1NJWkUgKyAxNSkgJiB+MTUpCiNkZWZpbmUgSUE2NF9TVEtfT0ZGU0VUICgoMSA8PCBJQTY0X1RB U0tfU1RSVUNUX0xPR19OVU1fUEFHRVMpKlBBR0VfU0laRSkKCiNkZWZpbmUgSU5JVF9UQVNLX1NJ WkUgSUE2NF9TVEtfT0ZGU0VUCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h c20vY3VycmVudC5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9DVVJSRU5UX0gKIyAxMSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vY3VycmVudC5oIgpyZWdpc3RlciBzdHJ1Y3QgdGFz a19zdHJ1Y3QgKmN1cnJlbnQgYXNtICgicjEzIik7CiMgNzggIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9hc20vcGFnZS5oIiAxCiMgNzkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0 cmFjZS5oIiAyCiMgOTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0cmFjZS5o IgpzdHJ1Y3QgcHRfcmVncyB7CgoKICAgICAgICB1bnNpZ25lZCBsb25nIGNyX2lwc3I7CiAgICAg ICAgdW5zaWduZWQgbG9uZyBjcl9paXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyBjcl9pZnM7Cgog ICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfdW5hdDsKICAgICAgICB1bnNpZ25lZCBsb25nIGFyX3Bm czsKICAgICAgICB1bnNpZ25lZCBsb25nIGFyX3JzYzsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBh cl9ybmF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfYnNwc3RvcmU7CgogICAgICAgIHVuc2ln bmVkIGxvbmcgcHI7CiAgICAgICAgdW5zaWduZWQgbG9uZyBiNjsKICAgICAgICB1bnNpZ25lZCBs b25nIGxvYWRyczsKCiAgICAgICAgdW5zaWduZWQgbG9uZyByMTsKICAgICAgICB1bnNpZ25lZCBs b25nIHIyOwogICAgICAgIHVuc2lnbmVkIGxvbmcgcjM7CiAgICAgICAgdW5zaWduZWQgbG9uZyBy MTI7CiAgICAgICAgdW5zaWduZWQgbG9uZyByMTM7CiAgICAgICAgdW5zaWduZWQgbG9uZyByMTQ7 CiAgICAgICAgdW5zaWduZWQgbG9uZyByMTU7CgogICAgICAgIHVuc2lnbmVkIGxvbmcgcjg7CiAg ICAgICAgdW5zaWduZWQgbG9uZyByOTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIxMDsKICAgICAg ICB1bnNpZ25lZCBsb25nIHIxMTsKCgoKICAgICAgICB1bnNpZ25lZCBsb25nIHIxNjsKICAgICAg ICB1bnNpZ25lZCBsb25nIHIxNzsKICAgICAgICB1bnNpZ25lZCBsb25nIHIxODsKICAgICAgICB1 bnNpZ25lZCBsb25nIHIxOTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyMDsKICAgICAgICB1bnNp Z25lZCBsb25nIHIyMTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyMjsKICAgICAgICB1bnNpZ25l ZCBsb25nIHIyMzsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyNDsKICAgICAgICB1bnNpZ25lZCBs b25nIHIyNTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyNjsKICAgICAgICB1bnNpZ25lZCBsb25n IHIyNzsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyODsKICAgICAgICB1bnNpZ25lZCBsb25nIHIy OTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIzMDsKICAgICAgICB1bnNpZ25lZCBsb25nIHIzMTsK CiAgICAgICAgdW5zaWduZWQgbG9uZyBhcl9jY3Y7CiAgICAgICAgdW5zaWduZWQgbG9uZyBhcl9m cHNyOwoKICAgICAgICB1bnNpZ25lZCBsb25nIGIwOwogICAgICAgIHVuc2lnbmVkIGxvbmcgYjc7 CgoKCgogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGY2OwogICAgICAgIHN0cnVjdCBpYTY0X2Zw cmVnIGY3OwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGY4OwogICAgICAgIHN0cnVjdCBpYTY0 X2ZwcmVnIGY5Owp9OwoKCgoKCgpzdHJ1Y3Qgc3dpdGNoX3N0YWNrIHsKICAgICAgICB1bnNpZ25l ZCBsb25nIGNhbGxlcl91bmF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfZnBzcjsKCiAgICAg ICAgc3RydWN0IGlhNjRfZnByZWcgZjI7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjM7CiAg ICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjQ7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjU7 CgogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYxMDsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJl ZyBmMTE7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjEyOwogICAgICAgIHN0cnVjdCBpYTY0 X2ZwcmVnIGYxMzsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyBmMTQ7CiAgICAgICAgc3RydWN0 IGlhNjRfZnByZWcgZjE1OwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYxNjsKICAgICAgICBz dHJ1Y3QgaWE2NF9mcHJlZyBmMTc7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjE4OwogICAg ICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYxOTsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyBmMjA7 CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjIxOwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVn IGYyMjsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyBmMjM7CiAgICAgICAgc3RydWN0IGlhNjRf ZnByZWcgZjI0OwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYyNTsKICAgICAgICBzdHJ1Y3Qg aWE2NF9mcHJlZyBmMjY7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjI3OwogICAgICAgIHN0 cnVjdCBpYTY0X2ZwcmVnIGYyODsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyBmMjk7CiAgICAg ICAgc3RydWN0IGlhNjRfZnByZWcgZjMwOwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYzMTsK CiAgICAgICAgdW5zaWduZWQgbG9uZyByNDsKICAgICAgICB1bnNpZ25lZCBsb25nIHI1OwogICAg ICAgIHVuc2lnbmVkIGxvbmcgcjY7CiAgICAgICAgdW5zaWduZWQgbG9uZyByNzsKCiAgICAgICAg dW5zaWduZWQgbG9uZyBiMDsKICAgICAgICB1bnNpZ25lZCBsb25nIGIxOwogICAgICAgIHVuc2ln bmVkIGxvbmcgYjI7CiAgICAgICAgdW5zaWduZWQgbG9uZyBiMzsKICAgICAgICB1bnNpZ25lZCBs b25nIGI0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYjU7CgogICAgICAgIHVuc2lnbmVkIGxvbmcg YXJfcGZzOwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfbGM7CiAgICAgICAgdW5zaWduZWQgbG9u ZyBhcl91bmF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfcm5hdDsKICAgICAgICB1bnNpZ25l ZCBsb25nIGFyX2JzcHN0b3JlOwogICAgICAgIHVuc2lnbmVkIGxvbmcgcHI7Cn07CgoKCiNkZWZp bmUgaWE2NF90YXNrX3JlZ3ModCkgKCgoc3RydWN0IHB0X3JlZ3MgKikgKChjaGFyICopICh0KSAr IElBNjRfU1RLX09GRlNFVCkpIC0gMSkKI2RlZmluZSBpYTY0X3BzcihyZWdzKSAoKHN0cnVjdCBp YTY0X3BzciAqKSAmKHJlZ3MpLT5jcl9pcHNyKQojZGVmaW5lIHVzZXJfbW9kZShyZWdzKSAoKChz dHJ1Y3QgaWE2NF9wc3IgKikgJihyZWdzKS0+Y3JfaXBzciktPmNwbCAhPSAwKQoKICBzdHJ1Y3Qg dGFza19zdHJ1Y3Q7CgogIGV4dGVybiB2b2lkIHNob3dfcmVncyAoc3RydWN0IHB0X3JlZ3MgKik7 CiAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaWE2NF9nZXRfdXNlcl9yYnNfZW5kIChzdHJ1Y3QgdGFz a19zdHJ1Y3QgKiwgc3RydWN0IHB0X3JlZ3MgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKik7CiAgZXh0ZXJuIGxvbmcgaWE2NF9w ZWVrIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwgc3RydWN0IHN3aXRjaF9zdGFjayAqLCB1bnNpZ25l ZCBsb25nLAogICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgbG9uZyAqKTsK ICBleHRlcm4gbG9uZyBpYTY0X3Bva2UgKHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBzdHJ1Y3Qgc3dp dGNoX3N0YWNrICosIHVuc2lnbmVkIGxvbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBsb25nLCBsb25nKTsKICBleHRlcm4gdm9pZCBpYTY0X2ZsdXNoX2ZwaCAoc3RydWN0IHRh c2tfc3RydWN0ICopOwogIGV4dGVybiB2b2lkIGlhNjRfc3luY19mcGggKHN0cnVjdCB0YXNrX3N0 cnVjdCAqKTsKICBleHRlcm4gbG9uZyBpYTY0X3N5bmNfdXNlcl9yYnMgKHN0cnVjdCB0YXNrX3N0 cnVjdCAqLCBzdHJ1Y3Qgc3dpdGNoX3N0YWNrICosCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKCgogIGV4dGVybiB1bnNpZ25l ZCBsb25nIGlhNjRfZ2V0X3NjcmF0Y2hfbmF0X2JpdHMgKHN0cnVjdCBwdF9yZWdzICpwdCwgdW5z aWduZWQgbG9uZyBzY3JhdGNoX3VuYXQpOwoKICBleHRlcm4gdW5zaWduZWQgbG9uZyBpYTY0X3B1 dF9zY3JhdGNoX25hdF9iaXRzIChzdHJ1Y3QgcHRfcmVncyAqcHQsIHVuc2lnbmVkIGxvbmcgbmF0 KTsKCiAgZXh0ZXJuIHZvaWQgaWE2NF9pbmNyZW1lbnRfaXAgKHN0cnVjdCBwdF9yZWdzICpwdCk7 CiAgZXh0ZXJuIHZvaWQgaWE2NF9kZWNyZW1lbnRfaXAgKHN0cnVjdCBwdF9yZWdzICpwdCk7Cgpz dGF0aWMgaW5saW5lIHZvaWQKZm9yY2Vfc3VjY2Vzc2Z1bF9zeXNjYWxsX3JldHVybiAodm9pZCkK ewogICAgICAgICgoKHN0cnVjdCBwdF9yZWdzICopICgoY2hhciAqKSAoY3VycmVudCkgKyAoKDEg PDwgMSkqKDFVTCA8PCAxNCkpKSkgLSAxKS0+cjggPSAwOwp9CiMgMjU2ICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2FzbS9wdHJhY2UuaCIKI2RlZmluZSBQVFJBQ0VfU0lOR0xFQkxPQ0sg MTIKI2RlZmluZSBQVFJBQ0VfR0VUU0lHSU5GTyAxMwojZGVmaW5lIFBUUkFDRV9TRVRTSUdJTkZP IDE0CiMgMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAy CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20va3JlZ3MuaCIgMQoKI2RlZmlu ZSBfQVNNX0lBNjRfS1JFR1NfSAojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2Fz bS9rcmVncy5oIgojZGVmaW5lIElBNjRfS1JfSU9fQkFTRSAwCiNkZWZpbmUgSUE2NF9LUl9DVVJS RU5UX1NUQUNLIDQKI2RlZmluZSBJQTY0X0tSX0ZQVV9PV05FUiA1CiNkZWZpbmUgSUE2NF9LUl9D VVJSRU5UIDYKI2RlZmluZSBJQTY0X0tSX1BUX0JBU0UgNwoKI2RlZmluZSBfSUE2NF9LUl9QQVNU RSh4LCB5KSB4ICMjIHkKI2RlZmluZSBfSUE2NF9LUl9QUkVGSVgobikgX0lBNjRfS1JfUEFTVEUo YXIuaywgbikKI2RlZmluZSBJQTY0X0tSKG4pIF9JQTY0X0tSX1BSRUZJWChJQTY0X0tSXyAjIyBu KQoKCgoKI2RlZmluZSBJQTY0X1RSX0tFUk5FTCAwCiNkZWZpbmUgSUE2NF9UUl9QQUxDT0RFIDEK I2RlZmluZSBJQTY0X1RSX1BFUkNQVV9EQVRBIDEKI2RlZmluZSBJQTY0X1RSX0NVUlJFTlRfU1RB Q0sgMgojIDIwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIg MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5oIiAxCiMgMjEg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vdHlwZXMuaCIgMQojIDIyICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMgoKI2RlZmluZSBJQTY0X05VTV9E QkdfUkVHUyA4CgoKCgojZGVmaW5lIElBNjRfTlVNX1BNQ19SRUdTIDMyCiNkZWZpbmUgSUE2NF9O VU1fUE1EX1JFR1MgMzIKI2RlZmluZSBJQTY0X05VTV9QTURfQ09VTlRFUlMgNAoKI2RlZmluZSBE RUZBVUxUX01BUF9CQVNFIDB4MjAwMDAwMDAwMDAwMDAwMAojZGVmaW5lIERFRkFVTFRfVEFTS19T SVpFIDB4YTAwMDAwMDAwMDAwMDAwMAoKCgoKCgoKI2RlZmluZSBUQVNLX1NJWkUgKGN1cnJlbnQt PnRocmVhZC50YXNrX3NpemUpCgoKCgoKI2RlZmluZSBUQVNLX1VOTUFQUEVEX0JBU0UgKGN1cnJl bnQtPnRocmVhZC5tYXBfYmFzZSkKCgoKCiNkZWZpbmUgRUlTQV9idXMgMAojZGVmaW5lIEVJU0Ff YnVzX19pc19hX21hY3JvCiNkZWZpbmUgTUNBX2J1cyAwCiNkZWZpbmUgTUNBX2J1c19faXNfYV9t YWNybwoKCiNkZWZpbmUgSUE2NF9QU1JfQkVfQklUIDEKI2RlZmluZSBJQTY0X1BTUl9VUF9CSVQg MgojZGVmaW5lIElBNjRfUFNSX0FDX0JJVCAzCiNkZWZpbmUgSUE2NF9QU1JfTUZMX0JJVCA0CiNk ZWZpbmUgSUE2NF9QU1JfTUZIX0JJVCA1CiNkZWZpbmUgSUE2NF9QU1JfSUNfQklUIDEzCiNkZWZp bmUgSUE2NF9QU1JfSV9CSVQgMTQKI2RlZmluZSBJQTY0X1BTUl9QS19CSVQgMTUKI2RlZmluZSBJ QTY0X1BTUl9EVF9CSVQgMTcKI2RlZmluZSBJQTY0X1BTUl9ERkxfQklUIDE4CiNkZWZpbmUgSUE2 NF9QU1JfREZIX0JJVCAxOQojZGVmaW5lIElBNjRfUFNSX1NQX0JJVCAyMAojZGVmaW5lIElBNjRf UFNSX1BQX0JJVCAyMQojZGVmaW5lIElBNjRfUFNSX0RJX0JJVCAyMgojZGVmaW5lIElBNjRfUFNS X1NJX0JJVCAyMwojZGVmaW5lIElBNjRfUFNSX0RCX0JJVCAyNAojZGVmaW5lIElBNjRfUFNSX0xQ X0JJVCAyNQojZGVmaW5lIElBNjRfUFNSX1RCX0JJVCAyNgojZGVmaW5lIElBNjRfUFNSX1JUX0JJ VCAyNwoKI2RlZmluZSBJQTY0X1BTUl9DUEwwX0JJVCAzMgojZGVmaW5lIElBNjRfUFNSX0NQTDFf QklUIDMzCiNkZWZpbmUgSUE2NF9QU1JfSVNfQklUIDM0CiNkZWZpbmUgSUE2NF9QU1JfTUNfQklU IDM1CiNkZWZpbmUgSUE2NF9QU1JfSVRfQklUIDM2CiNkZWZpbmUgSUE2NF9QU1JfSURfQklUIDM3 CiNkZWZpbmUgSUE2NF9QU1JfREFfQklUIDM4CiNkZWZpbmUgSUE2NF9QU1JfRERfQklUIDM5CiNk ZWZpbmUgSUE2NF9QU1JfU1NfQklUIDQwCiNkZWZpbmUgSUE2NF9QU1JfUklfQklUIDQxCiNkZWZp bmUgSUE2NF9QU1JfRURfQklUIDQzCiNkZWZpbmUgSUE2NF9QU1JfQk5fQklUIDQ0CgojZGVmaW5l IElBNjRfUFNSX0JFIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfQkVfQklUKQojZGVmaW5lIElB NjRfUFNSX1VQIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfVVBfQklUKQojZGVmaW5lIElBNjRf UFNSX0FDIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfQUNfQklUKQojZGVmaW5lIElBNjRfUFNS X01GTCAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX01GTF9CSVQpCiNkZWZpbmUgSUE2NF9QU1Jf TUZIIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfTUZIX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9J QyAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0lDX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9JIChf X0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfSV9CSVQpCiNkZWZpbmUgSUE2NF9QU1JfUEsgKF9fSUE2 NF9VTCgxKSA8PCBJQTY0X1BTUl9QS19CSVQpCiNkZWZpbmUgSUE2NF9QU1JfRFQgKF9fSUE2NF9V TCgxKSA8PCBJQTY0X1BTUl9EVF9CSVQpCiNkZWZpbmUgSUE2NF9QU1JfREZMIChfX0lBNjRfVUwo MSkgPDwgSUE2NF9QU1JfREZMX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9ERkggKF9fSUE2NF9VTCgx KSA8PCBJQTY0X1BTUl9ERkhfQklUKQojZGVmaW5lIElBNjRfUFNSX1NQIChfX0lBNjRfVUwoMSkg PDwgSUE2NF9QU1JfU1BfQklUKQojZGVmaW5lIElBNjRfUFNSX1BQIChfX0lBNjRfVUwoMSkgPDwg SUE2NF9QU1JfUFBfQklUKQojZGVmaW5lIElBNjRfUFNSX0RJIChfX0lBNjRfVUwoMSkgPDwgSUE2 NF9QU1JfRElfQklUKQojZGVmaW5lIElBNjRfUFNSX1NJIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9Q U1JfU0lfQklUKQojZGVmaW5lIElBNjRfUFNSX0RCIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1Jf REJfQklUKQojZGVmaW5lIElBNjRfUFNSX0xQIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfTFBf QklUKQojZGVmaW5lIElBNjRfUFNSX1RCIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfVEJfQklU KQojZGVmaW5lIElBNjRfUFNSX1JUIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfUlRfQklUKQoK I2RlZmluZSBJQTY0X1BTUl9JUyAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0lTX0JJVCkKI2Rl ZmluZSBJQTY0X1BTUl9NQyAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX01DX0JJVCkKI2RlZmlu ZSBJQTY0X1BTUl9JVCAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0lUX0JJVCkKI2RlZmluZSBJ QTY0X1BTUl9JRCAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0lEX0JJVCkKI2RlZmluZSBJQTY0 X1BTUl9EQSAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0RBX0JJVCkKI2RlZmluZSBJQTY0X1BT Ul9ERCAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0REX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9T UyAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX1NTX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9SSSAo X19JQTY0X1VMKDMpIDw8IElBNjRfUFNSX1JJX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9FRCAoX19J QTY0X1VMKDEpIDw8IElBNjRfUFNSX0VEX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9CTiAoX19JQTY0 X1VMKDEpIDw8IElBNjRfUFNSX0JOX0JJVCkKCgojZGVmaW5lIElBNjRfUFNSX1VNIChJQTY0X1BT Ul9CRSB8IElBNjRfUFNSX1VQIHwgSUE2NF9QU1JfQUMgfCBJQTY0X1BTUl9NRkwgfCBJQTY0X1BT Ul9NRkgpCgoKI2RlZmluZSBJQTY0X0RDUl9QUF9CSVQgMAojZGVmaW5lIElBNjRfRENSX0JFX0JJ VCAxCiNkZWZpbmUgSUE2NF9EQ1JfTENfQklUIDIKI2RlZmluZSBJQTY0X0RDUl9ETV9CSVQgOAoj ZGVmaW5lIElBNjRfRENSX0RQX0JJVCA5CiNkZWZpbmUgSUE2NF9EQ1JfREtfQklUIDEwCiNkZWZp bmUgSUE2NF9EQ1JfRFhfQklUIDExCiNkZWZpbmUgSUE2NF9EQ1JfRFJfQklUIDEyCiNkZWZpbmUg SUE2NF9EQ1JfREFfQklUIDEzCiNkZWZpbmUgSUE2NF9EQ1JfRERfQklUIDE0CgojZGVmaW5lIElB NjRfRENSX1BQIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfUFBfQklUKQojZGVmaW5lIElBNjRf RENSX0JFIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfQkVfQklUKQojZGVmaW5lIElBNjRfRENS X0xDIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfTENfQklUKQojZGVmaW5lIElBNjRfRENSX0RN IChfX0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfRE1fQklUKQojZGVmaW5lIElBNjRfRENSX0RQIChf X0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfRFBfQklUKQojZGVmaW5lIElBNjRfRENSX0RLIChfX0lB NjRfVUwoMSkgPDwgSUE2NF9EQ1JfREtfQklUKQojZGVmaW5lIElBNjRfRENSX0RYIChfX0lBNjRf VUwoMSkgPDwgSUE2NF9EQ1JfRFhfQklUKQojZGVmaW5lIElBNjRfRENSX0RSIChfX0lBNjRfVUwo MSkgPDwgSUE2NF9EQ1JfRFJfQklUKQojZGVmaW5lIElBNjRfRENSX0RBIChfX0lBNjRfVUwoMSkg PDwgSUE2NF9EQ1JfREFfQklUKQojZGVmaW5lIElBNjRfRENSX0REIChfX0lBNjRfVUwoMSkgPDwg SUE2NF9EQ1JfRERfQklUKQoKCiNkZWZpbmUgSUE2NF9JU1JfWF9CSVQgMzIKI2RlZmluZSBJQTY0 X0lTUl9XX0JJVCAzMwojZGVmaW5lIElBNjRfSVNSX1JfQklUIDM0CiNkZWZpbmUgSUE2NF9JU1Jf TkFfQklUIDM1CiNkZWZpbmUgSUE2NF9JU1JfU1BfQklUIDM2CiNkZWZpbmUgSUE2NF9JU1JfUlNf QklUIDM3CiNkZWZpbmUgSUE2NF9JU1JfSVJfQklUIDM4CgojZGVmaW5lIElBNjRfSVNSX1ggKF9f SUE2NF9VTCgxKSA8PCBJQTY0X0lTUl9YX0JJVCkKI2RlZmluZSBJQTY0X0lTUl9XIChfX0lBNjRf VUwoMSkgPDwgSUE2NF9JU1JfV19CSVQpCiNkZWZpbmUgSUE2NF9JU1JfUiAoX19JQTY0X1VMKDEp IDw8IElBNjRfSVNSX1JfQklUKQojZGVmaW5lIElBNjRfSVNSX05BIChfX0lBNjRfVUwoMSkgPDwg SUE2NF9JU1JfTkFfQklUKQojZGVmaW5lIElBNjRfSVNSX1NQIChfX0lBNjRfVUwoMSkgPDwgSUE2 NF9JU1JfU1BfQklUKQojZGVmaW5lIElBNjRfSVNSX1JTIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9J U1JfUlNfQklUKQojZGVmaW5lIElBNjRfSVNSX0lSIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9JU1Jf SVJfQklUKQoKI2RlZmluZSBJQTY0X1RIUkVBRF9GUEhfVkFMSUQgKF9fSUE2NF9VTCgxKSA8PCAw KQojZGVmaW5lIElBNjRfVEhSRUFEX0RCR19WQUxJRCAoX19JQTY0X1VMKDEpIDw8IDEpCiNkZWZp bmUgSUE2NF9USFJFQURfUE1fVkFMSUQgKF9fSUE2NF9VTCgxKSA8PCAyKQojZGVmaW5lIElBNjRf VEhSRUFEX1VBQ19OT1BSSU5UIChfX0lBNjRfVUwoMSkgPDwgMykKI2RlZmluZSBJQTY0X1RIUkVB RF9VQUNfU0lHQlVTIChfX0lBNjRfVUwoMSkgPDwgNCkKI2RlZmluZSBJQTY0X1RIUkVBRF9LUkJT X1NZTkNFRCAoX19JQTY0X1VMKDEpIDw8IDUpCiNkZWZpbmUgSUE2NF9LRVJORUxfREVBVEggKF9f SUE2NF9VTCgxKSA8PCA2MykKCiNkZWZpbmUgSUE2NF9USFJFQURfVUFDX1NISUZUIDMKI2RlZmlu ZSBJQTY0X1RIUkVBRF9VQUNfTUFTSyAoSUE2NF9USFJFQURfVUFDX05PUFJJTlQgfCBJQTY0X1RI UkVBRF9VQUNfU0lHQlVTKQoKCgoKCgoKI2RlZmluZSBJQTY0X1VTRUNfUEVSX0NZQ19TSElGVCA0 MQoKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGhyZWFkcy5oIiAx CgojZGVmaW5lIF9MSU5VWF9USFJFQURTX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9saW51eC9jb25maWcuaCIgMQojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvdGhyZWFkcy5oIiAyCgoKCgoKCgojZGVmaW5lIE5SX0NQVVMgMzIKCgoKCiNkZWZpbmUg TUlOX1RIUkVBRFNfTEVGVF9GT1JfUk9PVCA0CgoKCgojZGVmaW5lIFBJRF9NQVggMHg4MDAwCiMg MTg3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMgoKIyAx ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9mcHUuaCIgMQojIDE4OSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9vZmZzZXRzLmgiIDEKIyAxOTAgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9hc20vcGFnZS5oIiAxCiMgMTkxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2FzbS9wcm9jZXNzb3IuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv YXNtL3JzZS5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9SU0VfSAojIDE0ICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2FzbS9yc2UuaCIKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9u ZwppYTY0X3JzZV9zbG90X251bSAodW5zaWduZWQgbG9uZyAqYWRkcikKewogICAgICAgIHJldHVy biAoKCh1bnNpZ25lZCBsb25nKSBhZGRyKSA+PiAzKSAmIDB4M2Y7Cn0KCgoKCnN0YXRpYyBfX2lu bGluZV9fIHVuc2lnbmVkIGxvbmcKaWE2NF9yc2VfaXNfcm5hdF9zbG90ICh1bnNpZ25lZCBsb25n ICphZGRyKQp7CiAgICAgICAgcmV0dXJuIGlhNjRfcnNlX3Nsb3RfbnVtKGFkZHIpID09IDB4M2Y7 Cn0KCgoKCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nICoKaWE2NF9yc2Vfcm5hdF9h ZGRyICh1bnNpZ25lZCBsb25nICpzbG90X2FkZHIpCnsKICAgICAgICByZXR1cm4gKHVuc2lnbmVk IGxvbmcgKikgKCh1bnNpZ25lZCBsb25nKSBzbG90X2FkZHIgfCAoMHgzZiA8PCAzKSk7Cn0KCgoK CgoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZwppYTY0X3JzZV9udW1fcmVncyAodW5z aWduZWQgbG9uZyAqYnNwc3RvcmUsIHVuc2lnbmVkIGxvbmcgKmJzcCkKewogICAgICAgIHVuc2ln bmVkIGxvbmcgc2xvdHMgPSAoYnNwIC0gYnNwc3RvcmUpOwoKICAgICAgICByZXR1cm4gc2xvdHMg LSAoaWE2NF9yc2Vfc2xvdF9udW0oYnNwc3RvcmUpICsgc2xvdHMpLzB4NDA7Cn0KCgoKCgpzdGF0 aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nICoKaWE2NF9yc2Vfc2tpcF9yZWdzICh1bnNpZ25l ZCBsb25nICphZGRyLCBsb25nIG51bV9yZWdzKQp7CiAgICAgICAgbG9uZyBkZWx0YSA9IGlhNjRf cnNlX3Nsb3RfbnVtKGFkZHIpICsgbnVtX3JlZ3M7CgogICAgICAgIGlmIChudW1fcmVncyA8IDAp CiAgICAgICAgICAgICAgICBkZWx0YSAtPSAweDNlOwogICAgICAgIHJldHVybiBhZGRyICsgbnVt X3JlZ3MgKyBkZWx0YS8weDNmOwp9CiMgMTkyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2FzbS9wcm9jZXNzb3IuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt L3Vud2luZC5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9VTldJTkRfSAojIDE2ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2FzbS91bndpbmQuaCIKc3RydWN0IHRhc2tfc3RydWN0OwpzdHJ1 Y3Qgc3dpdGNoX3N0YWNrOwoKZW51bSB1bndfYXBwbGljYXRpb25fcmVnaXN0ZXIgewogICAgICAg IFVOV19BUl9CU1AsCiAgICAgICAgVU5XX0FSX0JTUFNUT1JFLAogICAgICAgIFVOV19BUl9QRlMs CiAgICAgICAgVU5XX0FSX1JOQVQsCiAgICAgICAgVU5XX0FSX1VOQVQsCiAgICAgICAgVU5XX0FS X0xDLAogICAgICAgIFVOV19BUl9FQywKICAgICAgICBVTldfQVJfRlBTUiwKICAgICAgICBVTldf QVJfUlNDLAogICAgICAgIFVOV19BUl9DQ1YKfTsKCgoKCgoKc3RydWN0IHVud19zdGFjayB7CiAg ICAgICAgdW5zaWduZWQgbG9uZyBsaW1pdDsKICAgICAgICB1bnNpZ25lZCBsb25nIHRvcDsKfTsK CiNkZWZpbmUgVU5XX0ZMQUdfSU5URVJSVVBUX0ZSQU1FICgxVUwgPDwgMCkKCgoKCgoKc3RydWN0 IHVud19mcmFtZV9pbmZvIHsKICAgICAgICBzdHJ1Y3QgdW53X3N0YWNrIHJlZ3N0azsKICAgICAg ICBzdHJ1Y3QgdW53X3N0YWNrIG1lbXN0azsKICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAg ICAgICAgc2hvcnQgaGludDsKICAgICAgICBzaG9ydCBwcmV2X3NjcmlwdDsKCgogICAgICAgIHVu c2lnbmVkIGxvbmcgYnNwOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3A7CiAgICAgICAgdW5zaWdu ZWQgbG9uZyBwc3A7CiAgICAgICAgdW5zaWduZWQgbG9uZyBpcDsKICAgICAgICB1bnNpZ25lZCBs b25nIHByOwogICAgICAgIHVuc2lnbmVkIGxvbmcgKmNmbV9sb2M7CgogICAgICAgIHN0cnVjdCB0 YXNrX3N0cnVjdCAqdGFzazsKICAgICAgICBzdHJ1Y3Qgc3dpdGNoX3N0YWNrICpzdzsKCgogICAg ICAgIHVuc2lnbmVkIGxvbmcgKmJzcF9sb2M7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqYnNwc3Rv cmVfbG9jOwogICAgICAgIHVuc2lnbmVkIGxvbmcgKnBmc19sb2M7CiAgICAgICAgdW5zaWduZWQg bG9uZyAqcm5hdF9sb2M7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqcnBfbG9jOwogICAgICAgIHVu c2lnbmVkIGxvbmcgKnByaV91bmF0X2xvYzsKICAgICAgICB1bnNpZ25lZCBsb25nICp1bmF0X2xv YzsKICAgICAgICB1bnNpZ25lZCBsb25nICpwcl9sb2M7CiAgICAgICAgdW5zaWduZWQgbG9uZyAq bGNfbG9jOwogICAgICAgIHVuc2lnbmVkIGxvbmcgKmZwc3JfbG9jOwogICAgICAgIHN0cnVjdCB1 bndfaXJlZyB7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICpsb2M7CiAgICAgICAgICAg ICAgICBzdHJ1Y3QgdW53X2lyZWdfbmF0IHsKICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB0 eXBlIDogMzsKICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgb2ZmIDogNjE7CiAg ICAgICAgICAgICAgICB9IG5hdDsKICAgICAgICB9IHI0LCByNSwgcjYsIHI3OwogICAgICAgIHVu c2lnbmVkIGxvbmcgKmIxX2xvYywgKmIyX2xvYywgKmIzX2xvYywgKmI0X2xvYywgKmI1X2xvYzsK ICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyAqZjJfbG9jLCAqZjNfbG9jLCAqZjRfbG9jLCAqZjVf bG9jLCAqZnJfbG9jWzE2XTsKfTsKIyA5NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h c20vdW53aW5kLmgiCmV4dGVybiB2b2lkIHVud19pbml0ICh2b2lkKTsKZXh0ZXJuIHZvaWQgdW53 X2NyZWF0ZV9nYXRlX3RhYmxlICh2b2lkKTsKCmV4dGVybiB2b2lkICp1bndfYWRkX3Vud2luZF90 YWJsZSAoY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgbG9uZyBzZWdtZW50X2Jhc2UsIHVuc2ln bmVkIGxvbmcgZ3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9p ZCAqdGFibGVfc3RhcnQsIGNvbnN0IHZvaWQgKnRhYmxlX2VuZCk7CgpleHRlcm4gdm9pZCB1bndf cmVtb3ZlX3Vud2luZF90YWJsZSAodm9pZCAqaGFuZGxlKTsKCgoKCmV4dGVybiB2b2lkIHVud19p bml0X2Zyb21fYmxvY2tlZF90YXNrIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8sIHN0cnVj dCB0YXNrX3N0cnVjdCAqdCk7CgpleHRlcm4gdm9pZCB1bndfaW5pdF9mcmFtZV9pbmZvIChzdHJ1 Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHN3aXRjaF9zdGFjayAqc3cpOwoKCgoKZXh0 ZXJuIHZvaWQgdW53X2luaXRfcnVubmluZyAodm9pZCAoKmNhbGxiYWNrKShzdHJ1Y3QgdW53X2Zy YW1lX2luZm8gKmluZm8sIHZvaWQgKmFyZyksIHZvaWQgKmFyZyk7CgoKCgoKZXh0ZXJuIGludCB1 bndfdW53aW5kIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8pOwoKCgoKCgpleHRlcm4gaW50 IHVud191bndpbmRfdG9fdXNlciAoc3RydWN0IHVud19mcmFtZV9pbmZvICppbmZvKTsKCiNkZWZp bmUgdW53X2lzX2ludHJfZnJhbWUoaW5mbykgKCgoaW5mbyktPmZsYWdzICYgVU5XX0ZMQUdfSU5U RVJSVVBUX0ZSQU1FKSAhPSAwKQoKc3RhdGljIGlubGluZSBpbnQKdW53X2dldF9pcCAoc3RydWN0 IHVud19mcmFtZV9pbmZvICppbmZvLCB1bnNpZ25lZCBsb25nICp2YWxwKQp7CiAgICAgICAgKnZh bHAgPSAoaW5mbyktPmlwOwogICAgICAgIHJldHVybiAwOwp9CgpzdGF0aWMgaW5saW5lIGludAp1 bndfZ2V0X3NwIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8sIHVuc2lnbmVkIGxvbmcgKnZh bHApCnsKICAgICAgICAqdmFscCA9IChpbmZvKS0+c3A7CiAgICAgICAgcmV0dXJuIDA7Cn0KCnN0 YXRpYyBpbmxpbmUgaW50CnVud19nZXRfcHNwIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8s IHVuc2lnbmVkIGxvbmcgKnZhbHApCnsKICAgICAgICAqdmFscCA9IChpbmZvKS0+cHNwOwogICAg ICAgIHJldHVybiAwOwp9CgpzdGF0aWMgaW5saW5lIGludAp1bndfZ2V0X2JzcCAoc3RydWN0IHVu d19mcmFtZV9pbmZvICppbmZvLCB1bnNpZ25lZCBsb25nICp2YWxwKQp7CiAgICAgICAgKnZhbHAg PSAoaW5mbyktPmJzcDsKICAgICAgICByZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBpbnQKdW53 X2dldF9jZm0gKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAqaW5mbywgdW5zaWduZWQgbG9uZyAqdmFs cCkKewogICAgICAgICp2YWxwID0gKihpbmZvKS0+Y2ZtX2xvYzsKICAgICAgICByZXR1cm4gMDsK fQoKc3RhdGljIGlubGluZSBpbnQKdW53X3NldF9jZm0gKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAq aW5mbywgdW5zaWduZWQgbG9uZyB2YWwpCnsKICAgICAgICAqKGluZm8pLT5jZm1fbG9jID0gdmFs OwogICAgICAgIHJldHVybiAwOwp9CgpzdGF0aWMgaW5saW5lIGludAp1bndfZ2V0X3JwIChzdHJ1 Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8sIHVuc2lnbmVkIGxvbmcgKnZhbCkKewogICAgICAgIGlm ICghaW5mby0+cnBfbG9jKQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICp2YWwg PSAqaW5mby0+cnBfbG9jOwogICAgICAgIHJldHVybiAwOwp9CgpleHRlcm4gaW50IHVud19hY2Nl c3NfZ3IgKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAqLCBpbnQsIHVuc2lnbmVkIGxvbmcgKiwgY2hh ciAqLCBpbnQpOwpleHRlcm4gaW50IHVud19hY2Nlc3NfYnIgKHN0cnVjdCB1bndfZnJhbWVfaW5m byAqLCBpbnQsIHVuc2lnbmVkIGxvbmcgKiwgaW50KTsKZXh0ZXJuIGludCB1bndfYWNjZXNzX2Zy IChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKiwgaW50LCBzdHJ1Y3QgaWE2NF9mcHJlZyAqLCBpbnQp OwpleHRlcm4gaW50IHVud19hY2Nlc3NfYXIgKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAqLCBpbnQs IHVuc2lnbmVkIGxvbmcgKiwgaW50KTsKZXh0ZXJuIGludCB1bndfYWNjZXNzX3ByIChzdHJ1Y3Qg dW53X2ZyYW1lX2luZm8gKiwgdW5zaWduZWQgbG9uZyAqLCBpbnQpOwoKc3RhdGljIGlubGluZSBp bnQKdW53X3NldF9nciAoc3RydWN0IHVud19mcmFtZV9pbmZvICppLCBpbnQgbiwgdW5zaWduZWQg bG9uZyB2LCBjaGFyIG5hdCkKewogICAgICAgIHJldHVybiB1bndfYWNjZXNzX2dyKGksIG4sICZ2 LCAmbmF0LCAxKTsKfQoKc3RhdGljIGlubGluZSBpbnQKdW53X3NldF9iciAoc3RydWN0IHVud19m cmFtZV9pbmZvICppLCBpbnQgbiwgdW5zaWduZWQgbG9uZyB2KQp7CiAgICAgICAgcmV0dXJuIHVu d19hY2Nlc3NfYnIoaSwgbiwgJnYsIDEpOwp9CgpzdGF0aWMgaW5saW5lIGludAp1bndfc2V0X2Zy IChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmksIGludCBuLCBzdHJ1Y3QgaWE2NF9mcHJlZyB2KQp7 CiAgICAgICAgcmV0dXJuIHVud19hY2Nlc3NfZnIoaSwgbiwgJnYsIDEpOwp9CgpzdGF0aWMgaW5s aW5lIGludAp1bndfc2V0X2FyIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmksIGludCBuLCB1bnNp Z25lZCBsb25nIHYpCnsKICAgICAgICByZXR1cm4gdW53X2FjY2Vzc19hcihpLCBuLCAmdiwgMSk7 Cn0KCnN0YXRpYyBpbmxpbmUgaW50CnVud19zZXRfcHIgKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAq aSwgdW5zaWduZWQgbG9uZyB2KQp7CiAgICAgICAgcmV0dXJuIHVud19hY2Nlc3NfcHIoaSwgJnYs IDEpOwp9CgojZGVmaW5lIHVud19nZXRfZ3IoaSwgbiwgdiwgbmF0KSB1bndfYWNjZXNzX2dyKGks bix2LG5hdCwwKQojZGVmaW5lIHVud19nZXRfYnIoaSwgbiwgdikgdW53X2FjY2Vzc19icihpLG4s diwwKQojZGVmaW5lIHVud19nZXRfZnIoaSwgbiwgdikgdW53X2FjY2Vzc19mcihpLG4sdiwwKQoj ZGVmaW5lIHVud19nZXRfYXIoaSwgbiwgdikgdW53X2FjY2Vzc19hcihpLG4sdiwwKQojZGVmaW5l IHVud19nZXRfcHIoaSwgdikgdW53X2FjY2Vzc19wcihpLHYsMCkKIyAxOTMgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCgoKc3RydWN0IGlhNjRfcHNyIHsK ICAgICAgICBfX3U2NCByZXNlcnZlZDAgOiAxOwogICAgICAgIF9fdTY0IGJlIDogMTsKICAgICAg ICBfX3U2NCB1cCA6IDE7CiAgICAgICAgX191NjQgYWMgOiAxOwogICAgICAgIF9fdTY0IG1mbCA6 IDE7CiAgICAgICAgX191NjQgbWZoIDogMTsKICAgICAgICBfX3U2NCByZXNlcnZlZDEgOiA3Owog ICAgICAgIF9fdTY0IGljIDogMTsKICAgICAgICBfX3U2NCBpIDogMTsKICAgICAgICBfX3U2NCBw ayA6IDE7CiAgICAgICAgX191NjQgcmVzZXJ2ZWQyIDogMTsKICAgICAgICBfX3U2NCBkdCA6IDE7 CiAgICAgICAgX191NjQgZGZsIDogMTsKICAgICAgICBfX3U2NCBkZmggOiAxOwogICAgICAgIF9f dTY0IHNwIDogMTsKICAgICAgICBfX3U2NCBwcCA6IDE7CiAgICAgICAgX191NjQgZGkgOiAxOwog ICAgICAgIF9fdTY0IHNpIDogMTsKICAgICAgICBfX3U2NCBkYiA6IDE7CiAgICAgICAgX191NjQg bHAgOiAxOwogICAgICAgIF9fdTY0IHRiIDogMTsKICAgICAgICBfX3U2NCBydCA6IDE7CiAgICAg ICAgX191NjQgcmVzZXJ2ZWQzIDogNDsKICAgICAgICBfX3U2NCBjcGwgOiAyOwogICAgICAgIF9f dTY0IGlzIDogMTsKICAgICAgICBfX3U2NCBtYyA6IDE7CiAgICAgICAgX191NjQgaXQgOiAxOwog ICAgICAgIF9fdTY0IGlkIDogMTsKICAgICAgICBfX3U2NCBkYSA6IDE7CiAgICAgICAgX191NjQg ZGQgOiAxOwogICAgICAgIF9fdTY0IHNzIDogMTsKICAgICAgICBfX3U2NCByaSA6IDI7CiAgICAg ICAgX191NjQgZWQgOiAxOwogICAgICAgIF9fdTY0IGJuIDogMTsKICAgICAgICBfX3U2NCByZXNl cnZlZDQgOiAxOTsKfTsKCgoKCgpzdHJ1Y3QgY3B1aW5mb19pYTY0IHsKCiAgICAgICAgdW5pb24g ewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIg aXJxX2NvdW50OwogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiBiaF9jb3VudDsKICAgICAg ICAgICAgICAgIH0gZjsKICAgICAgICAgICAgICAgIF9fdTY0IGlycV9hbmRfYmhfY291bnRzOwog ICAgICAgIH0gaXJxX3N0YXQ7CiAgICAgICAgX191MzIgc29mdGlycV9wZW5kaW5nOwogICAgICAg IF9fdTMyIHBoeXNfc3RhY2tlZF9zaXplX3A4OwogICAgICAgIF9fdTY0IGl0bV9kZWx0YTsKICAg ICAgICBfX3U2NCBpdG1fbmV4dDsKICAgICAgICBfX3U2NCAqcGdkX3F1aWNrOwogICAgICAgIF9f dTY0ICpwbWRfcXVpY2s7CiAgICAgICAgX191NjQgKnB0ZV9xdWljazsKICAgICAgICBfX3U2NCBw Z3RhYmxlX2NhY2hlX3N6OwoKICAgICAgICBfX3U2NCBwcG47CiAgICAgICAgX191NjQgZmVhdHVy ZXM7CiAgICAgICAgX191OCBudW1iZXI7CiAgICAgICAgX191OCByZXZpc2lvbjsKICAgICAgICBf X3U4IG1vZGVsOwogICAgICAgIF9fdTggZmFtaWx5OwogICAgICAgIF9fdTggYXJjaHJldjsKICAg ICAgICBjaGFyIHZlbmRvclsxNl07CiAgICAgICAgX191NjQgaXRjX2ZyZXE7CiAgICAgICAgX191 NjQgcHJvY19mcmVxOwogICAgICAgIF9fdTY0IGN5Y19wZXJfdXNlYzsKICAgICAgICBfX3U2NCB1 c2VjX3Blcl9jeWM7CiAgICAgICAgX191NjQgdW5pbXBsX3ZhX21hc2s7CiAgICAgICAgX191NjQg dW5pbXBsX3BhX21hc2s7CiAgICAgICAgX191NjQgcHRjZV9iYXNlOwogICAgICAgIF9fdTMyIHB0 Y2VfY291bnRbMl07CiAgICAgICAgX191MzIgcHRjZV9zdHJpZGVbMl07CiAgICAgICAgc3RydWN0 IHRhc2tfc3RydWN0ICprc29mdGlycWQ7CgogICAgICAgIF9fdTY0IGxvb3BzX3Blcl9qaWZmeTsK ICAgICAgICBfX3U2NCBpcGlfY291bnQ7CiAgICAgICAgX191NjQgcHJvZl9jb3VudGVyOwogICAg ICAgIF9fdTY0IHByb2ZfbXVsdGlwbGllcjsKICAgICAgICBfX3U2NCBpcGlfb3BlcmF0aW9uOwoK CgoKfSBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCAoKDFVTCA8PCAxNCkpKSkgOwoKCgoKCiNkZWZp bmUgbG9jYWxfY3B1X2RhdGEgKChzdHJ1Y3QgY3B1aW5mb19pYTY0ICopIFBFUkNQVV9BRERSKQoj IDMwNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCiAgZXh0 ZXJuIHN0cnVjdCBjcHVpbmZvX2lhNjQgX2NwdV9kYXRhX1JzbXBfZDJmZjUwZjVbMzJdOwojZGVm aW5lIGNwdV9kYXRhKGNwdSkgKCZfY3B1X2RhdGFbY3B1XSkKCgpleHRlcm4gdm9pZCBpZGVudGlm eV9jcHUgKHN0cnVjdCBjcHVpbmZvX2lhNjQgKik7CmV4dGVybiB2b2lkIHByaW50X2NwdV9pbmZv IChzdHJ1Y3QgY3B1aW5mb19pYTY0ICopOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIHVuc2ln bmVkIGxvbmcgc2VnOwp9IG1tX3NlZ21lbnRfdDsKCiNkZWZpbmUgU0VUX1VOQUxJR05fQ1RMKHRh c2ssIHZhbHVlKSAoeyAodGFzayktPnRocmVhZC5mbGFncyA9ICgoKHRhc2spLT50aHJlYWQuZmxh Z3MgJiB+SUE2NF9USFJFQURfVUFDX01BU0spIHwgKCgodmFsdWUpIDw8IElBNjRfVEhSRUFEX1VB Q19TSElGVCkgJiBJQTY0X1RIUkVBRF9VQUNfTUFTSykpOyAwOyB9KQoKCgoKCiNkZWZpbmUgR0VU X1VOQUxJR05fQ1RMKHRhc2ssIGFkZHIpICh7IHB1dF91c2VyKCgodGFzayktPnRocmVhZC5mbGFn cyAmIElBNjRfVEhSRUFEX1VBQ19NQVNLKSA+PiBJQTY0X1RIUkVBRF9VQUNfU0hJRlQsIChpbnQg KikgKGFkZHIpKTsgfSkKCgoKCgpzdHJ1Y3Qgc2lnaW5mbzsKCnN0cnVjdCB0aHJlYWRfc3RydWN0 IHsKICAgICAgICBfX3U2NCBrc3A7CiAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICAg ICBfX3U2NCBtYXBfYmFzZTsKICAgICAgICBfX3U2NCB0YXNrX3NpemU7CiAgICAgICAgc3RydWN0 IHNpZ2luZm8gKnNpZ2luZm87CgoKICAgICAgICBfX3U2NCBlZmxhZzsKICAgICAgICBfX3U2NCBm c3I7CiAgICAgICAgX191NjQgZmNyOwogICAgICAgIF9fdTY0IGZpcjsKICAgICAgICBfX3U2NCBm ZHI7CiAgICAgICAgX191NjQgY3NkOwogICAgICAgIF9fdTY0IHNzZDsKICAgICAgICBfX3U2NCB0 c3NkOwogICAgICAgIF9fdTY0IG9sZF9pb2I7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAg ICAgX191NjQgc2lnbWFzazsKICAgICAgICB9IHVuOwojZGVmaW5lIElOSVRfVEhSRUFEX0lBMzIg MCwgMCwgMHgxNzgwMDAwMDAzN2ZVTEwsIDAsIDAsIDAsIDAsIDAsIDAsIHswfSwKCgoKCiAgICAg ICAgX191NjQgcG1jWzMyXTsKICAgICAgICBfX3U2NCBwbWRbMzJdOwogICAgICAgIHVuc2lnbmVk IGxvbmcgcGZtX3BlbmRfbm90aWZ5OwogICAgICAgIHZvaWQgKnBmbV9jb250ZXh0OwojZGVmaW5l IElOSVRfVEhSRUFEX1BNIHswLCB9LCB7MCwgfSwgMCwgMCwKCgoKICAgICAgICBfX3U2NCBkYnJb OF07CiAgICAgICAgX191NjQgaWJyWzhdOwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGZwaFs5 Nl07Cn07CgojZGVmaW5lIElOSVRfTU1BUCB7ICZpbml0X21tLCBQQUdFX09GRlNFVCwgUEFHRV9P RkZTRVQgKyAweDEwMDAwMDAwLCBOVUxMLCBQQUdFX1NIQVJFRCwgVk1fUkVBRCB8IFZNX1dSSVRF IHwgVk1fRVhFQywgMSwgTlVMTCwgTlVMTCB9CgoKCgojZGVmaW5lIElOSVRfVEhSRUFEIHsgMCwg MCwgREVGQVVMVF9NQVBfQkFTRSwgREVGQVVMVF9UQVNLX1NJWkUsIDAsIElOSVRfVEhSRUFEX0lB MzIgSU5JVF9USFJFQURfUE0gezAsIH0sIHswLCB9LCB7e3t7MH19fSwgfSB9CiMgMzg1ICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKI2RlZmluZSBzdGFydF90 aHJlYWQocmVncywgbmV3X2lwLCBuZXdfc3ApIGRvIHsgc2V0X2ZzKFVTRVJfRFMpOyBpYTY0X3Bz cihyZWdzKS0+ZGZoID0gMTsgaWE2NF9wc3IocmVncyktPm1maCA9IDA7IGlhNjRfcHNyKHJlZ3Mp LT5jcGwgPSAzOyBpYTY0X3BzcihyZWdzKS0+cmkgPSAwOyBpYTY0X3BzcihyZWdzKS0+aXMgPSAw OyByZWdzLT5jcl9paXAgPSBuZXdfaXA7IHJlZ3MtPmFyX3JzYyA9IDB4ZjsgcmVncy0+YXJfcm5h dCA9IDA7IHJlZ3MtPmFyX2JzcHN0b3JlID0gSUE2NF9SQlNfQk9UOyByZWdzLT5hcl9mcHNyID0g RlBTUl9ERUZBVUxUOyByZWdzLT5sb2FkcnMgPSAwOyByZWdzLT5yOCA9IGN1cnJlbnQtPm1tLT5k dW1wYWJsZTsgcmVncy0+cjEyID0gbmV3X3NwIC0gMTY7IGlmICghX19idWlsdGluX2V4cGVjdCAo Y3VycmVudC0+bW0tPmR1bXBhYmxlLCAxKSkgeyByZWdzLT5hcl9wZnMgPSAwOyByZWdzLT5wciA9 IDA7IHJlZ3MtPmI2ID0gMDsgcmVncy0+cjEgPSAwOyByZWdzLT5yMiA9IDA7IHJlZ3MtPnIzID0g MDsgcmVncy0+cjEzID0gMDsgcmVncy0+cjE0ID0gMDsgcmVncy0+cjE1ID0gMDsgcmVncy0+cjkg PSAwOyByZWdzLT5yMTEgPSAwOyByZWdzLT5yMTYgPSAwOyByZWdzLT5yMTcgPSAwOyByZWdzLT5y MTggPSAwOyByZWdzLT5yMTkgPSAwOyByZWdzLT5yMjAgPSAwOyByZWdzLT5yMjEgPSAwOyByZWdz LT5yMjIgPSAwOyByZWdzLT5yMjMgPSAwOyByZWdzLT5yMjQgPSAwOyByZWdzLT5yMjUgPSAwOyBy ZWdzLT5yMjYgPSAwOyByZWdzLT5yMjcgPSAwOyByZWdzLT5yMjggPSAwOyByZWdzLT5yMjkgPSAw OyByZWdzLT5yMzAgPSAwOyByZWdzLT5yMzEgPSAwOyByZWdzLT5hcl9jY3YgPSAwOyByZWdzLT5i MCA9IDA7IHJlZ3MtPmI3ID0gMDsgcmVncy0+ZjYudS5iaXRzWzBdID0gMDsgcmVncy0+ZjYudS5i aXRzWzFdID0gMDsgcmVncy0+ZjcudS5iaXRzWzBdID0gMDsgcmVncy0+ZjcudS5iaXRzWzFdID0g MDsgcmVncy0+ZjgudS5iaXRzWzBdID0gMDsgcmVncy0+ZjgudS5iaXRzWzFdID0gMDsgcmVncy0+ ZjkudS5iaXRzWzBdID0gMDsgcmVncy0+ZjkudS5iaXRzWzFdID0gMDsgfSB9IHdoaWxlICgwKQoj IDQyOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCnN0cnVj dCBtbV9zdHJ1Y3Q7CnN0cnVjdCB0YXNrX3N0cnVjdDsKCgoKCgoKCiAgZXh0ZXJuIHZvaWQgcmVs ZWFzZV90aHJlYWQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CiMgNDU3ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKZXh0ZXJuIGludCBrZXJuZWxfdGhy ZWFkX1JzbXBfN2U5ZWJiMDUgKGludCAoKmZuKSh2b2lkICopLCB2b2lkICphcmcsIHVuc2lnbmVk IGxvbmcgZmxhZ3MpOwoKCiNkZWZpbmUgY29weV9zZWdtZW50cyh0c2ssIG1tKSBkbyB7IH0gd2hp bGUgKDApCiNkZWZpbmUgcmVsZWFzZV9zZWdtZW50cyhtbSkgZG8geyB9IHdoaWxlICgwKQoKCmV4 dGVybiB1bnNpZ25lZCBsb25nIGdldF93Y2hhbiAoc3RydWN0IHRhc2tfc3RydWN0ICpwKTsKCgoj ZGVmaW5lIEtTVEtfRUlQKHRzaykgKHsgc3RydWN0IHB0X3JlZ3MgKl9yZWdzID0gaWE2NF90YXNr X3JlZ3ModHNrKTsgX3JlZ3MtPmNyX2lpcCArIGlhNjRfcHNyKF9yZWdzKS0+cmk7IH0pCgoKCgoK CiNkZWZpbmUgS1NUS19FU1AodHNrKSAoKHRzayktPnRocmVhZC5rc3ApCgpzdGF0aWMgaW5saW5l IHVuc2lnbmVkIGxvbmcKaWE2NF9nZXRfa3IgKHVuc2lnbmVkIGxvbmcgcmVnbnVtKQp7CiAgICAg ICAgdW5zaWduZWQgbG9uZyByOwoKICAgICAgICBzd2l0Y2ggKHJlZ251bSkgewogICAgICAgICAg ICAgIGNhc2UgMDogYXNtIHZvbGF0aWxlICgibW92ICUwPWFyLmswIiA6ICI9ciIocikpOyBicmVh azsKICAgICAgICAgICAgICBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiAlMD1hci5rMSIgOiAi PXIiKHIpKTsgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3Yg JTA9YXIuazIiIDogIj1yIihyKSk7IGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMzogYXNtIHZv bGF0aWxlICgibW92ICUwPWFyLmszIiA6ICI9ciIocikpOyBicmVhazsKICAgICAgICAgICAgICBj YXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiAlMD1hci5rNCIgOiAiPXIiKHIpKTsgYnJlYWs7CiAg ICAgICAgICAgICAgY2FzZSA1OiBhc20gdm9sYXRpbGUgKCJtb3YgJTA9YXIuazUiIDogIj1yIihy KSk7IGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNjogYXNtIHZvbGF0aWxlICgibW92ICUwPWFy Lms2IiA6ICI9ciIocikpOyBicmVhazsKICAgICAgICAgICAgICBjYXNlIDc6IGFzbSB2b2xhdGls ZSAoIm1vdiAlMD1hci5rNyIgOiAiPXIiKHIpKTsgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJl dHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRfa3IgKHVuc2lnbmVkIGxvbmcg cmVnbnVtLCB1bnNpZ25lZCBsb25nIHIpCnsKICAgICAgICBzd2l0Y2ggKHJlZ251bSkgewogICAg ICAgICAgICAgIGNhc2UgMDogYXNtIHZvbGF0aWxlICgibW92IGFyLmswPSUwIiA6OiAiciIocikp OyBicmVhazsKICAgICAgICAgICAgICBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiBhci5rMT0l MCIgOjogInIiKHIpKTsgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAyOiBhc20gdm9sYXRpbGUg KCJtb3YgYXIuazI9JTAiIDo6ICJyIihyKSk7IGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMzog YXNtIHZvbGF0aWxlICgibW92IGFyLmszPSUwIiA6OiAiciIocikpOyBicmVhazsKICAgICAgICAg ICAgICBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiBhci5rND0lMCIgOjogInIiKHIpKTsgYnJl YWs7CiAgICAgICAgICAgICAgY2FzZSA1OiBhc20gdm9sYXRpbGUgKCJtb3YgYXIuazU9JTAiIDo6 ICJyIihyKSk7IGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNjogYXNtIHZvbGF0aWxlICgibW92 IGFyLms2PSUwIiA6OiAiciIocikpOyBicmVhazsKICAgICAgICAgICAgICBjYXNlIDc6IGFzbSB2 b2xhdGlsZSAoIm1vdiBhci5rNz0lMCIgOjogInIiKHIpKTsgYnJlYWs7CiAgICAgICAgfQp9CiMg NTI1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKZXh0ZXJu IHZvaWQgX19pYTY0X2luaXRfZnB1ICh2b2lkKTsKZXh0ZXJuIHZvaWQgX19pYTY0X3NhdmVfZnB1 IChzdHJ1Y3QgaWE2NF9mcHJlZyAqZnBoKTsKZXh0ZXJuIHZvaWQgX19pYTY0X2xvYWRfZnB1IChz dHJ1Y3QgaWE2NF9mcHJlZyAqZnBoKTsKZXh0ZXJuIHZvaWQgaWE2NF9zYXZlX2RlYnVnX3JlZ3Mg KHVuc2lnbmVkIGxvbmcgKnNhdmVfYXJlYSk7CmV4dGVybiB2b2lkIGlhNjRfbG9hZF9kZWJ1Z19y ZWdzICh1bnNpZ25lZCBsb25nICpzYXZlX2FyZWEpOwoKCmV4dGVybiB2b2lkIGlhMzJfc2F2ZV9z dGF0ZSAoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsKZXh0ZXJuIHZvaWQgaWEzMl9sb2FkX3N0 YXRlIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spOwoKCgpleHRlcm4gdm9pZCBpYTY0X3NhdmVf cG1fcmVncyAoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsKZXh0ZXJuIHZvaWQgaWE2NF9sb2Fk X3BtX3JlZ3MgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CgoKI2RlZmluZSBpYTY0X2ZwaF9l bmFibGUoKSBhc20gdm9sYXRpbGUgKCI7OyByc20gcHNyLmRmaDs7IHNybHouZDs7IiA6OjogIm1l bW9yeSIpOwojZGVmaW5lIGlhNjRfZnBoX2Rpc2FibGUoKSBhc20gdm9sYXRpbGUgKCI7OyBzc20g cHNyLmRmaDs7IHNybHouZDs7IiA6OjogIm1lbW9yeSIpOwoKCnN0YXRpYyBpbmxpbmUgdm9pZApp YTY0X2luaXRfZnB1ICh2b2lkKSB7CiAgICAgICAgYXNtIHZvbGF0aWxlICgiOzsgcnNtIHBzci5k Zmg7OyBzcmx6LmQ7OyIgOjo6ICJtZW1vcnkiKTs7CiAgICAgICAgX19pYTY0X2luaXRfZnB1KCk7 CiAgICAgICAgYXNtIHZvbGF0aWxlICgiOzsgc3NtIHBzci5kZmg7OyBzcmx6LmQ7OyIgOjo6ICJt ZW1vcnkiKTs7Cn0KCgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zYXZlX2ZwdSAoc3RydWN0IGlh NjRfZnByZWcgKmZwaCkgewogICAgICAgIGFzbSB2b2xhdGlsZSAoIjs7IHJzbSBwc3IuZGZoOzsg c3Jsei5kOzsiIDo6OiAibWVtb3J5Iik7OwogICAgICAgIF9faWE2NF9zYXZlX2ZwdShmcGgpOwog ICAgICAgIGFzbSB2b2xhdGlsZSAoIjs7IHNzbSBwc3IuZGZoOzsgc3Jsei5kOzsiIDo6OiAibWVt b3J5Iik7Owp9CgoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfbG9hZF9mcHUgKHN0cnVjdCBpYTY0 X2ZwcmVnICpmcGgpIHsKICAgICAgICBhc20gdm9sYXRpbGUgKCI7OyByc20gcHNyLmRmaDs7IHNy bHouZDs7IiA6OjogIm1lbW9yeSIpOzsKICAgICAgICBfX2lhNjRfbG9hZF9mcHUoZnBoKTsKICAg ICAgICBhc20gdm9sYXRpbGUgKCI7OyBzc20gcHNyLmRmaDs7IHNybHouZDs7IiA6OjogIm1lbW9y eSIpOzsKfQoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfZmMgKHZvaWQgKmFkZHIpCnsKICAgICAg ICBhc20gdm9sYXRpbGUgKCJmYyAlMCIgOjogInIiKGFkZHIpIDogIm1lbW9yeSIpOwp9CgpzdGF0 aWMgaW5saW5lIHZvaWQKaWE2NF9zeW5jX2kgKHZvaWQpCnsKICAgICAgICBhc20gdm9sYXRpbGUg KCI7OyBzeW5jLmkiIDo6OiAibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3Ny bHpfaSAodm9pZCkKewogICAgICAgIGFzbSB2b2xhdGlsZSAoIjs7IHNybHouaSA7OyIgOjo6ICJt ZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc3Jsel9kICh2b2lkKQp7CiAgICAg ICAgYXNtIHZvbGF0aWxlICgiOzsgc3Jsei5kIiA6OjogIm1lbW9yeSIpOwp9CgpzdGF0aWMgaW5s aW5lIF9fdTY0CmlhNjRfZ2V0X3JyIChfX3U2NCByZWdfYml0cykKewogICAgICAgIF9fdTY0IHI7 CiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92ICUwPXJyWyUxXSIgOiAiPXIiKHIpIDogInIiKHJl Z19iaXRzKSA6ICJtZW1vcnkiKTsKICAgICAgICByZXR1cm4gcjsKfQoKc3RhdGljIGlubGluZSB2 b2lkCmlhNjRfc2V0X3JyIChfX3U2NCByZWdfYml0cywgX191NjQgcnJfdmFsKQp7CiAgICAgICAg YXNtIHZvbGF0aWxlICgibW92IHJyWyUwXT0lMSIgOjogInIiKHJlZ19iaXRzKSwgInIiKHJyX3Zh bCkgOiAibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfZGNyICh2b2lk KQp7CiAgICAgICAgX191NjQgcjsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgJTA9Y3IuZGNy IiA6ICI9ciIocikpOwogICAgICAgIHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2 NF9zZXRfZGNyIChfX3U2NCB2YWwpCnsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgY3IuZGNy PSUwOzsiIDo6ICJyIih2YWwpIDogIm1lbW9yeSIpOwogICAgICAgIGlhNjRfc3Jsel9kKCk7Cn0K CnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfbGlkICh2b2lkKQp7CiAgICAgICAgX191NjQg cjsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgJTA9Y3IubGlkIiA6ICI9ciIocikpOwogICAg ICAgIHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9pbnZhbGEgKHZvaWQpCnsK ICAgICAgICBhc20gdm9sYXRpbGUgKCJpbnZhbGEiIDo6OiAibWVtb3J5Iik7Cn0KCgoKCgojZGVm aW5lIGlhNjRfY2xlYXJfaWMoZmxhZ3MpIGFzbSB2b2xhdGlsZSAoIm1vdiAlMD1wc3I7OyByc20g cHNyLmkgfCBwc3IuaWM7OyBzcmx6Lmk7OyIgOiAiPXIiKGZsYWdzKSA6OiAibWVtb3J5Iik7CgoK CgoKCgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9pdHIgKF9fdTY0IHRhcmdldF9tYXNrLCBfX3U2 NCB0cl9udW0sCiAgICAgICAgICBfX3U2NCB2bWFkZHIsIF9fdTY0IHB0ZSwKICAgICAgICAgIF9f dTY0IGxvZ19wYWdlX3NpemUpCnsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgY3IuaXRpcj0l MCIgOjogInIiKGxvZ19wYWdlX3NpemUgPDwgMikgOiAibWVtb3J5Iik7CiAgICAgICAgYXNtIHZv bGF0aWxlICgibW92IGNyLmlmYT0lMDs7IiA6OiAiciIodm1hZGRyKSA6ICJtZW1vcnkiKTsKICAg ICAgICBpZiAodGFyZ2V0X21hc2sgJiAweDEpCiAgICAgICAgICAgICAgICBhc20gdm9sYXRpbGUg KCJpdHIuaSBpdHJbJTBdPSUxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDo6ICJyIih0cl9udW0pLCAiciIocHRlKSA6ICJtZW1vcnkiKTsKICAgICAgICBpZiAodGFyZ2V0 X21hc2sgJiAweDIpCiAgICAgICAgICAgICAgICBhc20gdm9sYXRpbGUgKCI7O2l0ci5kIGR0clsl MF09JTEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjogInIiKHRyX251 bSksICJyIihwdGUpIDogIm1lbW9yeSIpOwp9CgoKCgoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRf aXRjIChfX3U2NCB0YXJnZXRfbWFzaywgX191NjQgdm1hZGRyLCBfX3U2NCBwdGUsCiAgICAgICAg ICBfX3U2NCBsb2dfcGFnZV9zaXplKQp7CiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92IGNyLml0 aXI9JTAiIDo6ICJyIihsb2dfcGFnZV9zaXplIDw8IDIpIDogIm1lbW9yeSIpOwogICAgICAgIGFz bSB2b2xhdGlsZSAoIm1vdiBjci5pZmE9JTA7OyIgOjogInIiKHZtYWRkcikgOiAibWVtb3J5Iik7 CgogICAgICAgIGlmICh0YXJnZXRfbWFzayAmIDB4MSkKICAgICAgICAgICAgICAgIGFzbSB2b2xh dGlsZSAoIml0Yy5pICUwOzsiIDo6ICJyIihwdGUpIDogIm1lbW9yeSIpOwogICAgICAgIGlmICh0 YXJnZXRfbWFzayAmIDB4MikKICAgICAgICAgICAgICAgIGFzbSB2b2xhdGlsZSAoIjs7aXRjLmQg JTA7OyIgOjogInIiKHB0ZSkgOiAibWVtb3J5Iik7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIHZvaWQK aWE2NF9wdHIgKF9fdTY0IHRhcmdldF9tYXNrLCBfX3U2NCB2bWFkZHIsIF9fdTY0IGxvZ19zaXpl KQp7CiAgICAgICAgaWYgKHRhcmdldF9tYXNrICYgMHgxKQogICAgICAgICAgICAgICAgYXNtIHZv bGF0aWxlICgicHRyLmkgJTAsJTEiIDo6ICJyIih2bWFkZHIpLCAiciIobG9nX3NpemUgPDwgMikp OwogICAgICAgIGlmICh0YXJnZXRfbWFzayAmIDB4MikKICAgICAgICAgICAgICAgIGFzbSB2b2xh dGlsZSAoInB0ci5kICUwLCUxIiA6OiAiciIodm1hZGRyKSwgInIiKGxvZ19zaXplIDw8IDIpKTsK fQoKCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3NldF9pdmEgKHZvaWQgKml2dF9hZGRyKQp7CiAg ICAgICAgYXNtIHZvbGF0aWxlICgibW92IGNyLml2YT0lMDs7IHNybHouaTs7IiA6OiAiciIoaXZ0 X2FkZHIpIDogIm1lbW9yeSIpOwp9CgoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc2V0X3B0YSAo X191NjQgcHRhKQp7CgogICAgICAgIGFzbSB2b2xhdGlsZSAoIm1vdiBjci5wdGE9JTA7OyBzcmx6 Lmk7OyIgOjogInIiKHB0YSkgOiAibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2 NF9nZXRfY3B1aWQgKF9fdTY0IHJlZ251bSkKewogICAgICAgIF9fdTY0IHI7CgogICAgICAgIGFz bSAoIm1vdiAlMD1jcHVpZFslcjFdIiA6ICI9ciIocikgOiAick8iKHJlZ251bSkpOwogICAgICAg IHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9lb2kgKHZvaWQpCnsKICAgICAg ICBhc20gKCJtb3YgY3IuZW9pPXIwOzsgc3Jsei5kOzsiIDo6OiAibWVtb3J5Iik7Cn0KCnN0YXRp YyBpbmxpbmUgdm9pZAppYTY0X3NldF9scnIwICh1bnNpZ25lZCBsb25nIHZhbCkKewogICAgICAg IGFzbSB2b2xhdGlsZSAoIm1vdiBjci5scnIwPSUwOzsgc3Jsei5kIiA6OiAiciIodmFsKSA6ICJt ZW1vcnkiKTsKfQoKCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3NldF9scnIxICh1bnNpZ25lZCBs b25nIHZhbCkKewogICAgICAgIGFzbSB2b2xhdGlsZSAoIm1vdiBjci5scnIxPSUwOzsgc3Jsei5k IiA6OiAiciIodmFsKSA6ICJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc2V0 X3BtdiAoX191NjQgdmFsKQp7CiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92IGNyLnBtdj0lMCIg OjogInIiKHZhbCkgOiAibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRf cG1jIChfX3U2NCByZWdudW0pCnsKICAgICAgICBfX3U2NCByZXR2YWw7CgogICAgICAgIGFzbSB2 b2xhdGlsZSAoIm1vdiAlMD1wbWNbJTFdIiA6ICI9ciIocmV0dmFsKSA6ICJyIihyZWdudW0pKTsK ICAgICAgICByZXR1cm4gcmV0dmFsOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRfcG1j IChfX3U2NCByZWdudW0sIF9fdTY0IHZhbHVlKQp7CiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92 IHBtY1slMF09JTEiIDo6ICJyIihyZWdudW0pLCAiciIodmFsdWUpKTsKfQoKc3RhdGljIGlubGlu ZSBfX3U2NAppYTY0X2dldF9wbWQgKF9fdTY0IHJlZ251bSkKewogICAgICAgIF9fdTY0IHJldHZh bDsKCiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92ICUwPXBtZFslMV0iIDogIj1yIihyZXR2YWwp IDogInIiKHJlZ251bSkpOwogICAgICAgIHJldHVybiByZXR2YWw7Cn0KCnN0YXRpYyBpbmxpbmUg dm9pZAppYTY0X3NldF9wbWQgKF9fdTY0IHJlZ251bSwgX191NjQgdmFsdWUpCnsKICAgICAgICBh c20gdm9sYXRpbGUgKCJtb3YgcG1kWyUwXT0lMSIgOjogInIiKHJlZ251bSksICJyIih2YWx1ZSkp Owp9CgoKCgoKc3RhdGljIGlubGluZSBfX3U2NAppYTY0X3VuYXRfcG9zICh2b2lkICpzcGlsbF9h ZGRyKQp7CiAgICAgICAgcmV0dXJuICgoX191NjQpIHNwaWxsX2FkZHIgPj4gMykgJiAweDNmOwp9 CgoKCgoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc2V0X3VuYXQgKF9fdTY0ICp1bmF0LCB2b2lk ICpzcGlsbF9hZGRyLCB1bnNpZ25lZCBsb25nIG5hdCkKewogICAgICAgIF9fdTY0IGJpdCA9IGlh NjRfdW5hdF9wb3Moc3BpbGxfYWRkcik7CiAgICAgICAgX191NjQgbWFzayA9IDFVTCA8PCBiaXQ7 CgogICAgICAgICp1bmF0ID0gKCp1bmF0ICYgfm1hc2spIHwgKG5hdCA8PCBiaXQpOwp9CgoKCgoK c3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCnRocmVhZF9zYXZlZF9wYyAoc3RydWN0IHRocmVh ZF9zdHJ1Y3QgKnQpCnsKICAgICAgICBzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gaW5mbzsKICAgICAg ICB1bnNpZ25lZCBsb25nIGlwOwoKCiAgICAgICAgc3RydWN0IHRhc2tfc3RydWN0ICpwID0gKHZv aWQgKikgKCh1bnNpZ25lZCBsb25nKSB0IC0gMTQ1Nik7CgogICAgICAgIHVud19pbml0X2Zyb21f YmxvY2tlZF90YXNrKCZpbmZvLCBwKTsKICAgICAgICBpZiAodW53X3Vud2luZCgmaW5mbykgPCAw KQogICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgdW53X2dldF9pcCgmaW5mbywgJmlw KTsKICAgICAgICByZXR1cm4gaXA7Cn0KCgoKCiNkZWZpbmUgY3VycmVudF90ZXh0X2FkZHIoKSAo eyB2b2lkICpfcGM7IGFzbSB2b2xhdGlsZSAoIm1vdiAlMD1pcCIgOiAiPXIiIChfcGMpKTsgX3Bj OyB9KQoKCiNkZWZpbmUgVEhSRUFEX1NJWkUgSUE2NF9TVEtfT0ZGU0VUCgojZGVmaW5lIGFsbG9j X3Rhc2tfc3RydWN0KCkgKChzdHJ1Y3QgdGFza19zdHJ1Y3QgKikgX19nZXRfZnJlZV9wYWdlcyhH RlBfS0VSTkVMLCBJQTY0X1RBU0tfU1RSVUNUX0xPR19OVU1fUEFHRVMpKQoKI2RlZmluZSBmcmVl X3Rhc2tfc3RydWN0KHApIGZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpKHApLCBJQTY0X1RBU0tf U1RSVUNUX0xPR19OVU1fUEFHRVMpCiNkZWZpbmUgZ2V0X3Rhc2tfc3RydWN0KHRzaykgYXRvbWlj X2luYygmdmlydF90b19wYWdlKHRzayktPmNvdW50KQoKI2RlZmluZSBpbml0X3Rhc2sgKGluaXRf dGFza191bmlvbi50YXNrKQojZGVmaW5lIGluaXRfc3RhY2sgKGluaXRfdGFza191bmlvbi5zdGFj aykKCgoKCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3NldF9jbWN2IChfX3U2NCB2YWwpCnsKICAg ICAgICBhc20gdm9sYXRpbGUgKCJtb3YgY3IuY21jdj0lMCIgOjogInIiKHZhbCkgOiAibWVtb3J5 Iik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfY21jdiAodm9pZCkKewogICAg ICAgIF9fdTY0IHZhbDsKCiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92ICUwPWNyLmNtY3YiIDog Ij1yIih2YWwpIDo6ICJtZW1vcnkiKTsKICAgICAgICByZXR1cm4gdmFsOwp9CgpzdGF0aWMgaW5s aW5lIF9fdTY0CmlhNjRfZ2V0X2l2ciAodm9pZCkKewogICAgICAgIF9fdTY0IHI7CiAgICAgICAg YXNtIHZvbGF0aWxlICgic3Jsei5kOzsgbW92ICUwPWNyLml2cjs7IHNybHouZDs7IiA6ICI9ciIo cikpOwogICAgICAgIHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRfdHBy IChfX3U2NCB2YWwpCnsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgY3IudHByPSUwIiA6OiAi ciIodmFsKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfdHByICh2b2lkKQp7CiAg ICAgICAgX191NjQgcjsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgJTA9Y3IudHByIiA6ICI9 ciIocikpOwogICAgICAgIHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRf aXJyMCAoX191NjQgdmFsKQp7CiAgICAgICAgYXNtIHZvbGF0aWxlKCJtb3YgY3IuaXJyMD0lMDs7 IiA6OiAiciIodmFsKSA6ICJtZW1vcnkiKTsKICAgICAgICBpYTY0X3NybHpfZCgpOwp9CgpzdGF0 aWMgaW5saW5lIF9fdTY0CmlhNjRfZ2V0X2lycjAgKHZvaWQpCnsKICAgICAgICBfX3U2NCB2YWw7 CgoKICAgICAgICBhc20gdm9sYXRpbGUoIm1vdiAlMD1jci5pcnIwIiA6ICI9ciIodmFsKSk7CiAg ICAgICAgcmV0dXJuIHZhbDsKfQoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc2V0X2lycjEgKF9f dTY0IHZhbCkKewogICAgICAgIGFzbSB2b2xhdGlsZSgibW92IGNyLmlycjE9JTA7OyIgOjogInIi KHZhbCkgOiAibWVtb3J5Iik7CiAgICAgICAgaWE2NF9zcmx6X2QoKTsKfQoKc3RhdGljIGlubGlu ZSBfX3U2NAppYTY0X2dldF9pcnIxICh2b2lkKQp7CiAgICAgICAgX191NjQgdmFsOwoKCiAgICAg ICAgYXNtIHZvbGF0aWxlKCJtb3YgJTA9Y3IuaXJyMSIgOiAiPXIiKHZhbCkpOwogICAgICAgIHJl dHVybiB2YWw7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3NldF9pcnIyIChfX3U2NCB2YWwp CnsKICAgICAgICBhc20gdm9sYXRpbGUoIm1vdiBjci5pcnIyPSUwOzsiIDo6ICJyIih2YWwpIDog Im1lbW9yeSIpOwogICAgICAgIGlhNjRfc3Jsel9kKCk7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQK aWE2NF9nZXRfaXJyMiAodm9pZCkKewogICAgICAgIF9fdTY0IHZhbDsKCgogICAgICAgIGFzbSB2 b2xhdGlsZSgibW92ICUwPWNyLmlycjIiIDogIj1yIih2YWwpKTsKICAgICAgICByZXR1cm4gdmFs Owp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRfaXJyMyAoX191NjQgdmFsKQp7CiAgICAg ICAgYXNtIHZvbGF0aWxlKCJtb3YgY3IuaXJyMz0lMDs7IiA6OiAiciIodmFsKSA6ICJtZW1vcnki KTsKICAgICAgICBpYTY0X3NybHpfZCgpOwp9CgpzdGF0aWMgaW5saW5lIF9fdTY0CmlhNjRfZ2V0 X2lycjMgKHZvaWQpCnsKICAgICAgICBfX3U2NCB2YWw7CgoKICAgICAgICBhc20gdm9sYXRpbGUg KCJtb3YgJTA9Y3IuaXJyMyIgOiAiPXIiKHZhbCkpOwogICAgICAgIHJldHVybiB2YWw7Cn0KCnN0 YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfZ3Aodm9pZCkKewogICAgICAgIF9fdTY0IHZhbDsK CiAgICAgICAgYXNtICgibW92ICUwPWdwIiA6ICI9ciIodmFsKSk7CiAgICAgICAgcmV0dXJuIHZh bDsKfQojIDk1OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgi CiNkZWZpbmUgaWE2NF9yb3RyKHcsIG4pICh7IF9fdTY0IHJlc3VsdDsgYXNtICgic2hycCAlMD0l MSwlMSwlMiIgOiAiPXIiKHJlc3VsdCkgOiAiciIodyksICJpIihuKSk7IHJlc3VsdDsgfSkKCgoK CgoKCiNkZWZpbmUgaWE2NF9yb3RsKHcsIG4pIGlhNjRfcm90cigodyksKDY0KS0obikpCgpzdGF0 aWMgaW5saW5lIF9fdTY0CmlhNjRfdGhhc2ggKF9fdTY0IGFkZHIpCnsKICAgICAgICBfX3U2NCBy ZXN1bHQ7CiAgICAgICAgYXNtICgidGhhc2ggJTA9JTEiIDogIj1yIihyZXN1bHQpIDogInIiIChh ZGRyKSk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKfQojIDIwICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L3dhaXQuaCIgMgoKCgoKI2RlZmluZSBXQUlUUVVFVUVfREVCVUcgMAoK c3RydWN0IF9fd2FpdF9xdWV1ZSB7CiAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOwojZGVmaW5l IFdRX0ZMQUdfRVhDTFVTSVZFIDB4MDEKIHN0cnVjdCB0YXNrX3N0cnVjdCAqIHRhc2s7CiAgICAg ICAgc3RydWN0IGxpc3RfaGVhZCB0YXNrX2xpc3Q7CgoKCgp9Owp0eXBlZGVmIHN0cnVjdCBfX3dh aXRfcXVldWUgd2FpdF9xdWV1ZV90OwoKCgoKCgoKI2RlZmluZSBVU0VfUldfV0FJVF9RVUVVRV9T UElOTE9DSyAwCiMgNTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvd2FpdC5o IgojZGVmaW5lIHdxX2xvY2tfdCBzcGlubG9ja190CiNkZWZpbmUgV0FJVFFVRVVFX1JXX0xPQ0tf VU5MT0NLRUQgU1BJTl9MT0NLX1VOTE9DS0VECgojZGVmaW5lIHdxX3JlYWRfbG9jayBzcGluX2xv Y2sKI2RlZmluZSB3cV9yZWFkX2xvY2tfaXJxc2F2ZSBzcGluX2xvY2tfaXJxc2F2ZQojZGVmaW5l IHdxX3JlYWRfdW5sb2NrIHNwaW5fdW5sb2NrCiNkZWZpbmUgd3FfcmVhZF91bmxvY2tfaXJxcmVz dG9yZSBzcGluX3VubG9ja19pcnFyZXN0b3JlCiNkZWZpbmUgd3Ffd3JpdGVfbG9ja19pcnEgc3Bp bl9sb2NrX2lycQojZGVmaW5lIHdxX3dyaXRlX2xvY2tfaXJxc2F2ZSBzcGluX2xvY2tfaXJxc2F2 ZQojZGVmaW5lIHdxX3dyaXRlX3VubG9ja19pcnFyZXN0b3JlIHNwaW5fdW5sb2NrX2lycXJlc3Rv cmUKI2RlZmluZSB3cV93cml0ZV91bmxvY2sgc3Bpbl91bmxvY2sKCgpzdHJ1Y3QgX193YWl0X3F1 ZXVlX2hlYWQgewogICAgICAgIHNwaW5sb2NrX3QgbG9jazsKICAgICAgICBzdHJ1Y3QgbGlzdF9o ZWFkIHRhc2tfbGlzdDsKCgoKCn07CnR5cGVkZWYgc3RydWN0IF9fd2FpdF9xdWV1ZV9oZWFkIHdh aXRfcXVldWVfaGVhZF90OwojIDExNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC93YWl0LmgiCiNkZWZpbmUgV1FfQlVHKCkKI2RlZmluZSBDSEVDS19NQUdJQyh4KQojZGVmaW5l IENIRUNLX01BR0lDX1dRSEVBRCh4KQojZGVmaW5lIFdRX0NIRUNLX0xJU1RfSEVBRChsaXN0KQoj ZGVmaW5lIFdRX05PVEVfV0FLRVIodHNrKQojIDEzMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9saW51eC93YWl0LmgiCiNkZWZpbmUgX19XQUlUUVVFVUVfREVCVUdfSU5JVChuYW1lKQoj ZGVmaW5lIF9fV0FJVFFVRVVFX0hFQURfREVCVUdfSU5JVChuYW1lKQoKCiNkZWZpbmUgX19XQUlU UVVFVUVfSU5JVElBTElaRVIobmFtZSwgdHNrKSB7IHRhc2s6IHRzaywgdGFza19saXN0OiB7IE5V TEwsIE5VTEwgfSwgX19XQUlUUVVFVUVfREVCVUdfSU5JVChuYW1lKX0KCgoKCiNkZWZpbmUgREVD TEFSRV9XQUlUUVVFVUUobmFtZSwgdHNrKSB3YWl0X3F1ZXVlX3QgbmFtZSA9IF9fV0FJVFFVRVVF X0lOSVRJQUxJWkVSKG5hbWUsIHRzaykKCgojZGVmaW5lIF9fV0FJVF9RVUVVRV9IRUFEX0lOSVRJ QUxJWkVSKG5hbWUpIHsgbG9jazogV0FJVFFVRVVFX1JXX0xPQ0tfVU5MT0NLRUQsIHRhc2tfbGlz dDogeyAmKG5hbWUpLnRhc2tfbGlzdCwgJihuYW1lKS50YXNrX2xpc3QgfSwgX19XQUlUUVVFVUVf SEVBRF9ERUJVR19JTklUKG5hbWUpfQoKCgoKI2RlZmluZSBERUNMQVJFX1dBSVRfUVVFVUVfSEVB RChuYW1lKSB3YWl0X3F1ZXVlX2hlYWRfdCBuYW1lID0gX19XQUlUX1FVRVVFX0hFQURfSU5JVElB TElaRVIobmFtZSkKCgpzdGF0aWMgaW5saW5lIHZvaWQgaW5pdF93YWl0cXVldWVfaGVhZCh3YWl0 X3F1ZXVlX2hlYWRfdCAqcSkKewoKCgoKICAgICAgICBxLT5sb2NrID0gKHNwaW5sb2NrX3QpIHsg MCB9OwogICAgICAgIGRvIHsgKCZxLT50YXNrX2xpc3QpLT5uZXh0ID0gKCZxLT50YXNrX2xpc3Qp OyAoJnEtPnRhc2tfbGlzdCktPnByZXYgPSAoJnEtPnRhc2tfbGlzdCk7IH0gd2hpbGUgKDApOwoK CgoKfQoKc3RhdGljIGlubGluZSB2b2lkIGluaXRfd2FpdHF1ZXVlX2VudHJ5KHdhaXRfcXVldWVf dCAqcSwgc3RydWN0IHRhc2tfc3RydWN0ICpwKQp7CgoKCgogICAgICAgIHEtPmZsYWdzID0gMDsK ICAgICAgICBxLT50YXNrID0gcDsKCgoKfQoKc3RhdGljIGlubGluZSBpbnQgd2FpdHF1ZXVlX2Fj dGl2ZSh3YWl0X3F1ZXVlX2hlYWRfdCAqcSkKewoKCgoKCgogICAgICAgIHJldHVybiAhbGlzdF9l bXB0eSgmcS0+dGFza19saXN0KTsKfQoKc3RhdGljIGlubGluZSB2b2lkIF9fYWRkX3dhaXRfcXVl dWUod2FpdF9xdWV1ZV9oZWFkX3QgKmhlYWQsIHdhaXRfcXVldWVfdCAqbmV3KQp7CiMgMTk4ICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3dhaXQuaCIKICAgICAgICBsaXN0X2Fk ZCgmbmV3LT50YXNrX2xpc3QsICZoZWFkLT50YXNrX2xpc3QpOwp9CgoKCgpzdGF0aWMgaW5saW5l IHZvaWQgX19hZGRfd2FpdF9xdWV1ZV90YWlsKHdhaXRfcXVldWVfaGVhZF90ICpoZWFkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0X3F1ZXVlX3Qg Km5ldykKewojIDIxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC93YWl0Lmgi CiAgICAgICAgbGlzdF9hZGRfdGFpbCgmbmV3LT50YXNrX2xpc3QsICZoZWFkLT50YXNrX2xpc3Qp Owp9CgpzdGF0aWMgaW5saW5lIHZvaWQgX19yZW1vdmVfd2FpdF9xdWV1ZSh3YWl0X3F1ZXVlX2hl YWRfdCAqaGVhZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB3YWl0X3F1ZXVlX3QgKm9sZCkKewoKCgoKCiAgICAgICAgbGlzdF9kZWwoJm9s ZC0+dGFza19saXN0KTsKfQojIDEzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4 L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgi IDEKIyAxNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC92ZnMuaCIgMQoKI2RlZmluZSBfTElO VVhfVkZTX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3RhdGZzLmgi IDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NUQVRGU19ICgoKCgoKCgojIDEgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDExICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2FzbS9zdGF0ZnMuaCIgMgogdHlwZWRlZiBfX2tlcm5lbF9mc2lkX3QgZnNpZF90 OwoKCnN0cnVjdCBzdGF0ZnMgewogICAgICAgIGxvbmcgZl90eXBlOwogICAgICAgIGxvbmcgZl9i c2l6ZTsKICAgICAgICBsb25nIGZfYmxvY2tzOwogICAgICAgIGxvbmcgZl9iZnJlZTsKICAgICAg ICBsb25nIGZfYmF2YWlsOwogICAgICAgIGxvbmcgZl9maWxlczsKICAgICAgICBsb25nIGZfZmZy ZWU7CiAgICAgICAgX19rZXJuZWxfZnNpZF90IGZfZnNpZDsKICAgICAgICBsb25nIGZfbmFtZWxl bjsKICAgICAgICBsb25nIGZfc3BhcmVbNl07Cn07CiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC92ZnMuaCIgMgojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25l dC5oIiAxCiMgMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbmV0LmgiCiNk ZWZpbmUgX0xJTlVYX05FVF9ICgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvY29uZmlnLmgiIDEKIyAyMiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9u ZXQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc29ja2V0Lmgi IDEKCiNkZWZpbmUgX0xJTlVYX1NPQ0tFVF9ICgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9hc20vc29ja2V0LmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NPQ0tFVF9ICiMgMTEg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NvY2tldC5oIgojIDEgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NvY2tpb3MuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRf U09DS0lPU19ICiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NvY2tpb3Mu aCIKI2RlZmluZSBGSU9TRVRPV04gMHg4OTAxCiNkZWZpbmUgU0lPQ1NQR1JQIDB4ODkwMgojZGVm aW5lIEZJT0dFVE9XTiAweDg5MDMKI2RlZmluZSBTSU9DR1BHUlAgMHg4OTA0CiNkZWZpbmUgU0lP Q0FUTUFSSyAweDg5MDUKI2RlZmluZSBTSU9DR1NUQU1QIDB4ODkwNgojIDEyICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zb2NrZXQuaCIgMgoKCiNkZWZpbmUgU09MX1NPQ0tFVCAx CgojZGVmaW5lIFNPX0RFQlVHIDEKI2RlZmluZSBTT19SRVVTRUFERFIgMgojZGVmaW5lIFNPX1RZ UEUgMwojZGVmaW5lIFNPX0VSUk9SIDQKI2RlZmluZSBTT19ET05UUk9VVEUgNQojZGVmaW5lIFNP X0JST0FEQ0FTVCA2CiNkZWZpbmUgU09fU05EQlVGIDcKI2RlZmluZSBTT19SQ1ZCVUYgOAojZGVm aW5lIFNPX0tFRVBBTElWRSA5CiNkZWZpbmUgU09fT09CSU5MSU5FIDEwCiNkZWZpbmUgU09fTk9f Q0hFQ0sgMTEKI2RlZmluZSBTT19QUklPUklUWSAxMgojZGVmaW5lIFNPX0xJTkdFUiAxMwojZGVm aW5lIFNPX0JTRENPTVBBVCAxNAoKI2RlZmluZSBTT19QQVNTQ1JFRCAxNgojZGVmaW5lIFNPX1BF RVJDUkVEIDE3CiNkZWZpbmUgU09fUkNWTE9XQVQgMTgKI2RlZmluZSBTT19TTkRMT1dBVCAxOQoj ZGVmaW5lIFNPX1JDVlRJTUVPIDIwCiNkZWZpbmUgU09fU05EVElNRU8gMjEKCgojZGVmaW5lIFNP X1NFQ1VSSVRZX0FVVEhFTlRJQ0FUSU9OIDIyCiNkZWZpbmUgU09fU0VDVVJJVFlfRU5DUllQVElP Tl9UUkFOU1BPUlQgMjMKI2RlZmluZSBTT19TRUNVUklUWV9FTkNSWVBUSU9OX05FVFdPUksgMjQK CiNkZWZpbmUgU09fQklORFRPREVWSUNFIDI1CgoKI2RlZmluZSBTT19BVFRBQ0hfRklMVEVSIDI2 CiNkZWZpbmUgU09fREVUQUNIX0ZJTFRFUiAyNwoKI2RlZmluZSBTT19QRUVSTkFNRSAyOAojZGVm aW5lIFNPX1RJTUVTVEFNUCAyOQojZGVmaW5lIFNDTV9USU1FU1RBTVAgU09fVElNRVNUQU1QCgoj ZGVmaW5lIFNPX0FDQ0VQVENPTk4gMzAKCgoKCiNkZWZpbmUgU09DS19TVFJFQU0gMQojZGVmaW5l IFNPQ0tfREdSQU0gMgojZGVmaW5lIFNPQ0tfUkFXIDMKI2RlZmluZSBTT0NLX1JETSA0CiNkZWZp bmUgU09DS19TRVFQQUNLRVQgNQojZGVmaW5lIFNPQ0tfUEFDS0VUIDEwCgoKCgojZGVmaW5lIFNP Q0tfTUFYIChTT0NLX1BBQ0tFVCsxKQojIDcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvc29ja2V0LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4 L3NvY2tpb3MuaCIgMQojIDE5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Nv Y2tpb3MuaCIKI2RlZmluZSBfTElOVVhfU09DS0lPU19ICgojIDEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvYXNtL3NvY2tpb3MuaCIgMQojIDIyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L3NvY2tpb3MuaCIgMgoKCiNkZWZpbmUgU0lPQ0lOUSBGSU9OUkVBRAojZGVm aW5lIFNJT0NPVVRRIFRJT0NPVVRRCgoKI2RlZmluZSBTSU9DQUREUlQgMHg4OTBCCiNkZWZpbmUg U0lPQ0RFTFJUIDB4ODkwQwojZGVmaW5lIFNJT0NSVE1TRyAweDg5MEQKCgojZGVmaW5lIFNJT0NH SUZOQU1FIDB4ODkxMAojZGVmaW5lIFNJT0NTSUZMSU5LIDB4ODkxMQojZGVmaW5lIFNJT0NHSUZD T05GIDB4ODkxMgojZGVmaW5lIFNJT0NHSUZGTEFHUyAweDg5MTMKI2RlZmluZSBTSU9DU0lGRkxB R1MgMHg4OTE0CiNkZWZpbmUgU0lPQ0dJRkFERFIgMHg4OTE1CiNkZWZpbmUgU0lPQ1NJRkFERFIg MHg4OTE2CiNkZWZpbmUgU0lPQ0dJRkRTVEFERFIgMHg4OTE3CiNkZWZpbmUgU0lPQ1NJRkRTVEFE RFIgMHg4OTE4CiNkZWZpbmUgU0lPQ0dJRkJSREFERFIgMHg4OTE5CiNkZWZpbmUgU0lPQ1NJRkJS REFERFIgMHg4OTFhCiNkZWZpbmUgU0lPQ0dJRk5FVE1BU0sgMHg4OTFiCiNkZWZpbmUgU0lPQ1NJ Rk5FVE1BU0sgMHg4OTFjCiNkZWZpbmUgU0lPQ0dJRk1FVFJJQyAweDg5MWQKI2RlZmluZSBTSU9D U0lGTUVUUklDIDB4ODkxZQojZGVmaW5lIFNJT0NHSUZNRU0gMHg4OTFmCiNkZWZpbmUgU0lPQ1NJ Rk1FTSAweDg5MjAKI2RlZmluZSBTSU9DR0lGTVRVIDB4ODkyMQojZGVmaW5lIFNJT0NTSUZNVFUg MHg4OTIyCiNkZWZpbmUgU0lPQ1NJRk5BTUUgMHg4OTIzCiNkZWZpbmUgU0lPQ1NJRkhXQUREUiAw eDg5MjQKI2RlZmluZSBTSU9DR0lGRU5DQVAgMHg4OTI1CiNkZWZpbmUgU0lPQ1NJRkVOQ0FQIDB4 ODkyNgojZGVmaW5lIFNJT0NHSUZIV0FERFIgMHg4OTI3CiNkZWZpbmUgU0lPQ0dJRlNMQVZFIDB4 ODkyOQojZGVmaW5lIFNJT0NTSUZTTEFWRSAweDg5MzAKI2RlZmluZSBTSU9DQURETVVMVEkgMHg4 OTMxCiNkZWZpbmUgU0lPQ0RFTE1VTFRJIDB4ODkzMgojZGVmaW5lIFNJT0NHSUZJTkRFWCAweDg5 MzMKI2RlZmluZSBTSU9HSUZJTkRFWCBTSU9DR0lGSU5ERVgKI2RlZmluZSBTSU9DU0lGUEZMQUdT IDB4ODkzNAojZGVmaW5lIFNJT0NHSUZQRkxBR1MgMHg4OTM1CiNkZWZpbmUgU0lPQ0RJRkFERFIg MHg4OTM2CiNkZWZpbmUgU0lPQ1NJRkhXQlJPQURDQVNUIDB4ODkzNwojZGVmaW5lIFNJT0NHSUZD T1VOVCAweDg5MzgKCiNkZWZpbmUgU0lPQ0dJRkJSIDB4ODk0MAojZGVmaW5lIFNJT0NTSUZCUiAw eDg5NDEKCiNkZWZpbmUgU0lPQ0dJRlRYUUxFTiAweDg5NDIKI2RlZmluZSBTSU9DU0lGVFhRTEVO IDB4ODk0MwoKI2RlZmluZSBTSU9DR0lGRElWRVJUIDB4ODk0NAojZGVmaW5lIFNJT0NTSUZESVZF UlQgMHg4OTQ1CgojZGVmaW5lIFNJT0NFVEhUT09MIDB4ODk0NgoKI2RlZmluZSBTSU9DR01JSVBI WSAweDg5NDcKI2RlZmluZSBTSU9DR01JSVJFRyAweDg5NDgKI2RlZmluZSBTSU9DU01JSVJFRyAw eDg5NDkKCgoKI2RlZmluZSBTSU9DREFSUCAweDg5NTMKI2RlZmluZSBTSU9DR0FSUCAweDg5NTQK I2RlZmluZSBTSU9DU0FSUCAweDg5NTUKCgojZGVmaW5lIFNJT0NEUkFSUCAweDg5NjAKI2RlZmlu ZSBTSU9DR1JBUlAgMHg4OTYxCiNkZWZpbmUgU0lPQ1NSQVJQIDB4ODk2MgoKCgojZGVmaW5lIFNJ T0NHSUZNQVAgMHg4OTcwCiNkZWZpbmUgU0lPQ1NJRk1BUCAweDg5NzEKCgoKI2RlZmluZSBTSU9D QURERExDSSAweDg5ODAKI2RlZmluZSBTSU9DREVMRExDSSAweDg5ODEKIyAxMTQgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc29ja2lvcy5oIgojZGVmaW5lIFNJT0NERVZQUklW QVRFIDB4ODlGMAoKCgoKCiNkZWZpbmUgU0lPQ1BST1RPUFJJVkFURSAweDg5RTAKIyA4ICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NvY2tldC5oIiAyCiMgMSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91aW8uaCIgMQoKI2RlZmluZSBfX0xJTlVYX1VJT19I CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDUg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWlvLmgiIDIKIyAxOSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91aW8uaCIKc3RydWN0IGlvdmVjCnsKICAgICAg ICB2b2lkICppb3ZfYmFzZTsKICAgICAgICBfX2tlcm5lbF9zaXplX3QgaW92X2xlbjsKfTsKCgoK CgojZGVmaW5lIFVJT19GQVNUSU9WIDgKI2RlZmluZSBVSU9fTUFYSU9WIDEwMjQKIyA5ICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NvY2tldC5oIiAyCiMgMSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvc29ja2V0LmgiIDIKCnR5cGVkZWYgdW5zaWduZWQgc2hvcnQg c2FfZmFtaWx5X3Q7CgoKCgoKc3RydWN0IHNvY2thZGRyIHsKICAgICAgICBzYV9mYW1pbHlfdCBz YV9mYW1pbHk7CiAgICAgICAgY2hhciBzYV9kYXRhWzE0XTsKfTsKCnN0cnVjdCBsaW5nZXIgewog ICAgICAgIGludCBsX29ub2ZmOwogICAgICAgIGludCBsX2xpbmdlcjsKfTsKCgoKCgoKCnN0cnVj dCBtc2doZHIgewogICAgICAgIHZvaWQgKiBtc2dfbmFtZTsKICAgICAgICBpbnQgbXNnX25hbWVs ZW47CiAgICAgICAgc3RydWN0IGlvdmVjICogbXNnX2lvdjsKICAgICAgICBfX2tlcm5lbF9zaXpl X3QgbXNnX2lvdmxlbjsKICAgICAgICB2b2lkICogbXNnX2NvbnRyb2w7CiAgICAgICAgX19rZXJu ZWxfc2l6ZV90IG1zZ19jb250cm9sbGVuOwogICAgICAgIHVuc2lnbmVkIG1zZ19mbGFnczsKfTsK CgoKCgoKCnN0cnVjdCBjbXNnaGRyIHsKICAgICAgICBfX2tlcm5lbF9zaXplX3QgY21zZ19sZW47 CiAgICAgICAgaW50IGNtc2dfbGV2ZWw7CiAgICAgICAgaW50IGNtc2dfdHlwZTsKfTsKCgoKCgoK I2RlZmluZSBfX0NNU0dfTlhUSERSKGN0bCwgbGVuLCBjbXNnKSBfX2Ntc2dfbnh0aGRyKChjdGwp LChsZW4pLChjbXNnKSkKI2RlZmluZSBDTVNHX05YVEhEUihtaGRyLCBjbXNnKSBjbXNnX254dGhk cigobWhkciksIChjbXNnKSkKCiNkZWZpbmUgQ01TR19BTElHTihsZW4pICggKChsZW4pK3NpemVv Zihsb25nKS0xKSAmIH4oc2l6ZW9mKGxvbmcpLTEpICkKCiNkZWZpbmUgQ01TR19EQVRBKGNtc2cp ICgodm9pZCAqKSgoY2hhciAqKShjbXNnKSArIENNU0dfQUxJR04oc2l6ZW9mKHN0cnVjdCBjbXNn aGRyKSkpKQojZGVmaW5lIENNU0dfU1BBQ0UobGVuKSAoQ01TR19BTElHTihzaXplb2Yoc3RydWN0 IGNtc2doZHIpKSArIENNU0dfQUxJR04obGVuKSkKI2RlZmluZSBDTVNHX0xFTihsZW4pIChDTVNH X0FMSUdOKHNpemVvZihzdHJ1Y3QgY21zZ2hkcikpICsgKGxlbikpCgojZGVmaW5lIF9fQ01TR19G SVJTVEhEUihjdGwsIGxlbikgKChsZW4pID49IHNpemVvZihzdHJ1Y3QgY21zZ2hkcikgPyAoc3Ry dWN0IGNtc2doZHIgKikoY3RsKSA6IChzdHJ1Y3QgY21zZ2hkciAqKU5VTEwpCgoKI2RlZmluZSBD TVNHX0ZJUlNUSERSKG1zZykgX19DTVNHX0ZJUlNUSERSKChtc2cpLT5tc2dfY29udHJvbCwgKG1z ZyktPm1zZ19jb250cm9sbGVuKQoKCgoKCgojZGVmaW5lIF9fS0lOTElORSBzdGF0aWMgaW5saW5l CiMgMTAyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NvY2tldC5oIgpzdGF0 aWMgaW5saW5lIHN0cnVjdCBjbXNnaGRyICogX19jbXNnX254dGhkcih2b2lkICpfX2N0bCwgX19r ZXJuZWxfc2l6ZV90IF9fc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnKQp7CiAgICAgICAgc3RydWN0IGNtc2do ZHIgKiBfX3B0cjsKCiAgICAgICAgX19wdHIgPSAoc3RydWN0IGNtc2doZHIqKSgoKHVuc2lnbmVk IGNoYXIgKikgX19jbXNnKSArICggKChfX2Ntc2ctPmNtc2dfbGVuKStzaXplb2YobG9uZyktMSkg JiB+KHNpemVvZihsb25nKS0xKSApKTsKICAgICAgICBpZiAoKHVuc2lnbmVkIGxvbmcpKChjaGFy KikoX19wdHIrMSkgLSAoY2hhciAqKSBfX2N0bCkgPiBfX3NpemUpCiAgICAgICAgICAgICAgICBy ZXR1cm4gKHN0cnVjdCBjbXNnaGRyICopMDsKCiAgICAgICAgcmV0dXJuIF9fcHRyOwp9CgpzdGF0 aWMgaW5saW5lIHN0cnVjdCBjbXNnaGRyICogY21zZ19ueHRoZHIgKHN0cnVjdCBtc2doZHIgKl9f bXNnLCBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnKQp7CiAgICAgICAgcmV0dXJuIF9fY21zZ19ueHRo ZHIoX19tc2ctPm1zZ19jb250cm9sLCBfX21zZy0+bXNnX2NvbnRyb2xsZW4sIF9fY21zZyk7Cn0K CgoKI2RlZmluZSBTQ01fUklHSFRTIDB4MDEKI2RlZmluZSBTQ01fQ1JFREVOVElBTFMgMHgwMgoj ZGVmaW5lIFNDTV9DT05ORUNUIDB4MDMKCnN0cnVjdCB1Y3JlZCB7CiAgICAgICAgX191MzIgcGlk OwogICAgICAgIF9fdTMyIHVpZDsKICAgICAgICBfX3UzMiBnaWQ7Cn07CgoKI2RlZmluZSBBRl9V TlNQRUMgMAojZGVmaW5lIEFGX1VOSVggMQojZGVmaW5lIEFGX0xPQ0FMIDEKI2RlZmluZSBBRl9J TkVUIDIKI2RlZmluZSBBRl9BWDI1IDMKI2RlZmluZSBBRl9JUFggNAojZGVmaW5lIEFGX0FQUExF VEFMSyA1CiNkZWZpbmUgQUZfTkVUUk9NIDYKI2RlZmluZSBBRl9CUklER0UgNwojZGVmaW5lIEFG X0FUTVBWQyA4CiNkZWZpbmUgQUZfWDI1IDkKI2RlZmluZSBBRl9JTkVUNiAxMAojZGVmaW5lIEFG X1JPU0UgMTEKI2RlZmluZSBBRl9ERUNuZXQgMTIKI2RlZmluZSBBRl9ORVRCRVVJIDEzCiNkZWZp bmUgQUZfU0VDVVJJVFkgMTQKI2RlZmluZSBBRl9LRVkgMTUKI2RlZmluZSBBRl9ORVRMSU5LIDE2 CiNkZWZpbmUgQUZfUk9VVEUgQUZfTkVUTElOSwojZGVmaW5lIEFGX1BBQ0tFVCAxNwojZGVmaW5l IEFGX0FTSCAxOAojZGVmaW5lIEFGX0VDT05FVCAxOQojZGVmaW5lIEFGX0FUTVNWQyAyMAojZGVm aW5lIEFGX1NOQSAyMgojZGVmaW5lIEFGX0lSREEgMjMKI2RlZmluZSBBRl9QUFBPWCAyNAojZGVm aW5lIEFGX1dBTlBJUEUgMjUKI2RlZmluZSBBRl9CTFVFVE9PVEggMzEKI2RlZmluZSBBRl9NQVgg MzIKCgojZGVmaW5lIFBGX1VOU1BFQyBBRl9VTlNQRUMKI2RlZmluZSBQRl9VTklYIEFGX1VOSVgK I2RlZmluZSBQRl9MT0NBTCBBRl9MT0NBTAojZGVmaW5lIFBGX0lORVQgQUZfSU5FVAojZGVmaW5l IFBGX0FYMjUgQUZfQVgyNQojZGVmaW5lIFBGX0lQWCBBRl9JUFgKI2RlZmluZSBQRl9BUFBMRVRB TEsgQUZfQVBQTEVUQUxLCiNkZWZpbmUgUEZfTkVUUk9NIEFGX05FVFJPTQojZGVmaW5lIFBGX0JS SURHRSBBRl9CUklER0UKI2RlZmluZSBQRl9BVE1QVkMgQUZfQVRNUFZDCiNkZWZpbmUgUEZfWDI1 IEFGX1gyNQojZGVmaW5lIFBGX0lORVQ2IEFGX0lORVQ2CiNkZWZpbmUgUEZfUk9TRSBBRl9ST1NF CiNkZWZpbmUgUEZfREVDbmV0IEFGX0RFQ25ldAojZGVmaW5lIFBGX05FVEJFVUkgQUZfTkVUQkVV SQojZGVmaW5lIFBGX1NFQ1VSSVRZIEFGX1NFQ1VSSVRZCiNkZWZpbmUgUEZfS0VZIEFGX0tFWQoj ZGVmaW5lIFBGX05FVExJTksgQUZfTkVUTElOSwojZGVmaW5lIFBGX1JPVVRFIEFGX1JPVVRFCiNk ZWZpbmUgUEZfUEFDS0VUIEFGX1BBQ0tFVAojZGVmaW5lIFBGX0FTSCBBRl9BU0gKI2RlZmluZSBQ Rl9FQ09ORVQgQUZfRUNPTkVUCiNkZWZpbmUgUEZfQVRNU1ZDIEFGX0FUTVNWQwojZGVmaW5lIFBG X1NOQSBBRl9TTkEKI2RlZmluZSBQRl9JUkRBIEFGX0lSREEKI2RlZmluZSBQRl9QUFBPWCBBRl9Q UFBPWAojZGVmaW5lIFBGX1dBTlBJUEUgQUZfV0FOUElQRQojZGVmaW5lIFBGX0JMVUVUT09USCBB Rl9CTFVFVE9PVEgKI2RlZmluZSBQRl9NQVggQUZfTUFYCgoKI2RlZmluZSBTT01BWENPTk4gMTI4 CgoKCgoKI2RlZmluZSBNU0dfT09CIDEKI2RlZmluZSBNU0dfUEVFSyAyCiNkZWZpbmUgTVNHX0RP TlRST1VURSA0CiNkZWZpbmUgTVNHX1RSWUhBUkQgNAojZGVmaW5lIE1TR19DVFJVTkMgOAojZGVm aW5lIE1TR19QUk9CRSAweDEwCiNkZWZpbmUgTVNHX1RSVU5DIDB4MjAKI2RlZmluZSBNU0dfRE9O VFdBSVQgMHg0MAojZGVmaW5lIE1TR19FT1IgMHg4MAojZGVmaW5lIE1TR19XQUlUQUxMIDB4MTAw CiNkZWZpbmUgTVNHX0ZJTiAweDIwMAojZGVmaW5lIE1TR19TWU4gMHg0MDAKI2RlZmluZSBNU0df Q09ORklSTSAweDgwMAojZGVmaW5lIE1TR19SU1QgMHgxMDAwCiNkZWZpbmUgTVNHX0VSUlFVRVVF IDB4MjAwMAojZGVmaW5lIE1TR19OT1NJR05BTCAweDQwMDAKI2RlZmluZSBNU0dfTU9SRSAweDgw MDAKCiNkZWZpbmUgTVNHX0VPRiBNU0dfRklOCgoKCiNkZWZpbmUgU09MX0lQIDAKCiNkZWZpbmUg U09MX1RDUCA2CiNkZWZpbmUgU09MX1VEUCAxNwojZGVmaW5lIFNPTF9JUFY2IDQxCiNkZWZpbmUg U09MX0lDTVBWNiA1OAojZGVmaW5lIFNPTF9SQVcgMjU1CiNkZWZpbmUgU09MX0lQWCAyNTYKI2Rl ZmluZSBTT0xfQVgyNSAyNTcKI2RlZmluZSBTT0xfQVRBTEsgMjU4CiNkZWZpbmUgU09MX05FVFJP TSAyNTkKI2RlZmluZSBTT0xfUk9TRSAyNjAKI2RlZmluZSBTT0xfREVDTkVUIDI2MQojZGVmaW5l IFNPTF9YMjUgMjYyCiNkZWZpbmUgU09MX1BBQ0tFVCAyNjMKI2RlZmluZSBTT0xfQVRNIDI2NAoj ZGVmaW5lIFNPTF9BQUwgMjY1CiNkZWZpbmUgU09MX0lSREEgMjY2CgoKI2RlZmluZSBJUFhfVFlQ RSAxCgoKZXh0ZXJuIGludCBtZW1jcHlfZnJvbWlvdmVjX1JzbXBfMzYxMzlhNTEodW5zaWduZWQg Y2hhciAqa2RhdGEsIHN0cnVjdCBpb3ZlYyAqaW92LCBpbnQgbGVuKTsKZXh0ZXJuIGludCBtZW1j cHlfZnJvbWlvdmVjZW5kKHVuc2lnbmVkIGNoYXIgKmtkYXRhLCBzdHJ1Y3QgaW92ZWMgKmlvdiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0LCBpbnQgbGVuKTsKZXh0 ZXJuIGludCBjc3VtX3BhcnRpYWxfY29weV9mcm9taW92ZWNlbmQodW5zaWduZWQgY2hhciAqa2Rh dGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpb3Zl YyAqaW92LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zm c2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgbGVuLCBpbnQgKmNzdW1wKTsKCmV4dGVybiBpbnQgdmVyaWZ5X2lvdmVjKHN0cnVjdCBtc2do ZHIgKm0sIHN0cnVjdCBpb3ZlYyAqaW92LCBjaGFyICphZGRyZXNzLCBpbnQgbW9kZSk7CmV4dGVy biBpbnQgbWVtY3B5X3RvaW92ZWNfUnNtcF8yODc2YTZkMyhzdHJ1Y3QgaW92ZWMgKnYsIHVuc2ln bmVkIGNoYXIgKmtkYXRhLCBpbnQgbGVuKTsKZXh0ZXJuIHZvaWQgbWVtY3B5X3Rva2VybmVsaW92 ZWNfUnNtcF9lNDI3MWZiMChzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgY2hhciAqa2RhdGEs IGludCBsZW4pOwpleHRlcm4gaW50IG1vdmVfYWRkcl90b191c2VyKHZvaWQgKmthZGRyLCBpbnQg a2xlbiwgdm9pZCAqdWFkZHIsIGludCAqdWxlbik7CmV4dGVybiBpbnQgbW92ZV9hZGRyX3RvX2tl cm5lbCh2b2lkICp1YWRkciwgaW50IHVsZW4sIHZvaWQgKmthZGRyKTsKZXh0ZXJuIGludCBwdXRf Y21zZ19Sc21wXzQzZWM5MTNhKHN0cnVjdCBtc2doZHIqLCBpbnQgbGV2ZWwsIGludCB0eXBlLCBp bnQgbGVuLCB2b2lkICpkYXRhKTsKIyAyMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC9uZXQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvd2Fp dC5oIiAxCiMgMjQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbmV0LmgiIDIK CnN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdDsKCiNkZWZpbmUgTlBST1RPIDMyCgoKI2RlZmluZSBT WVNfU09DS0VUIDEKI2RlZmluZSBTWVNfQklORCAyCiNkZWZpbmUgU1lTX0NPTk5FQ1QgMwojZGVm aW5lIFNZU19MSVNURU4gNAojZGVmaW5lIFNZU19BQ0NFUFQgNQojZGVmaW5lIFNZU19HRVRTT0NL TkFNRSA2CiNkZWZpbmUgU1lTX0dFVFBFRVJOQU1FIDcKI2RlZmluZSBTWVNfU09DS0VUUEFJUiA4 CiNkZWZpbmUgU1lTX1NFTkQgOQojZGVmaW5lIFNZU19SRUNWIDEwCiNkZWZpbmUgU1lTX1NFTkRU TyAxMQojZGVmaW5lIFNZU19SRUNWRlJPTSAxMgojZGVmaW5lIFNZU19TSFVURE9XTiAxMwojZGVm aW5lIFNZU19TRVRTT0NLT1BUIDE0CiNkZWZpbmUgU1lTX0dFVFNPQ0tPUFQgMTUKI2RlZmluZSBT WVNfU0VORE1TRyAxNgojZGVmaW5lIFNZU19SRUNWTVNHIDE3CgoKdHlwZWRlZiBlbnVtIHsKICBT U19GUkVFID0gMCwKICBTU19VTkNPTk5FQ1RFRCwKICBTU19DT05ORUNUSU5HLAogIFNTX0NPTk5F Q1RFRCwKICBTU19ESVNDT05ORUNUSU5HCn0gc29ja2V0X3N0YXRlOwoKI2RlZmluZSBfX1NPX0FD Q0VQVENPTiAoMTw8MTYpCgoKCiNkZWZpbmUgU09DS19BU1lOQ19OT1NQQUNFIDAKI2RlZmluZSBT T0NLX0FTWU5DX1dBSVREQVRBIDEKI2RlZmluZSBTT0NLX05PU1BBQ0UgMgoKc3RydWN0IHNvY2tl dAp7CiAgICAgICAgc29ja2V0X3N0YXRlIHN0YXRlOwoKICAgICAgICB1bnNpZ25lZCBsb25nIGZs YWdzOwogICAgICAgIHN0cnVjdCBwcm90b19vcHMgKm9wczsKICAgICAgICBzdHJ1Y3QgaW5vZGUg Kmlub2RlOwogICAgICAgIHN0cnVjdCBmYXN5bmNfc3RydWN0ICpmYXN5bmNfbGlzdDsKICAgICAg ICBzdHJ1Y3QgZmlsZSAqZmlsZTsKICAgICAgICBzdHJ1Y3Qgc29jayAqc2s7CiAgICAgICAgd2Fp dF9xdWV1ZV9oZWFkX3Qgd2FpdDsKCiAgICAgICAgc2hvcnQgdHlwZTsKICAgICAgICB1bnNpZ25l ZCBjaGFyIHBhc3NjcmVkOwp9OwoKI2RlZmluZSBTT0NLX0lOT0RFKFMpICgoUyktPmlub2RlKQoK c3RydWN0IHNjbV9jb29raWU7CnN0cnVjdCB2bV9hcmVhX3N0cnVjdDsKc3RydWN0IHBhZ2U7Cgpz dHJ1Y3QgcHJvdG9fb3BzIHsKICBpbnQgZmFtaWx5OwoKICBpbnQgKCpyZWxlYXNlKSAoc3RydWN0 IHNvY2tldCAqc29jayk7CiAgaW50ICgqYmluZCkgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVj dCBzb2NrYWRkciAqdW15YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzb2NrYWRk cl9sZW4pOwogIGludCAoKmNvbm5lY3QpIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29j a2FkZHIgKnVzZXJ2YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzb2NrYWRkcl9s ZW4sIGludCBmbGFncyk7CiAgaW50ICgqc29ja2V0cGFpcikgKHN0cnVjdCBzb2NrZXQgKnNvY2sx LCBzdHJ1Y3Qgc29ja2V0ICpzb2NrMik7CiAgaW50ICgqYWNjZXB0KSAoc3RydWN0IHNvY2tldCAq c29jaywgc3RydWN0IHNvY2tldCAqbmV3c29jaywKICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCBmbGFncyk7CiAgaW50ICgqZ2V0bmFtZV9Sc21wXzdjNjBkNjZlKSAoc3RydWN0IHNvY2tldCAq c29jaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCAqdXNvY2thZGRyX2xlbiwgaW50IHBlZXIpOwogIHVuc2lnbmVkIGludCAoKnBvbGwpIChzdHJ1 Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHBvbGxfdGFibGVfc3Ry dWN0ICp3YWl0KTsKICBpbnQgKCppb2N0bCkgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHVuc2lnbmVk IGludCBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFyZyk7CiAg aW50ICgqbGlzdGVuKSAoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxlbik7CiAgaW50ICgqc2h1 dGRvd24pIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgZmxhZ3MpOwogIGludCAoKnNldHNvY2tv cHQpIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLAogICAgICAg ICAgICAgICAgICAgICAgICAgY2hhciAqb3B0dmFsLCBpbnQgb3B0bGVuKTsKICBpbnQgKCpnZXRz b2Nrb3B0KSAoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwKICAg ICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm9wdHZhbCwgaW50ICpvcHRsZW4pOwogIGludCAo KnNlbmRtc2cpIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptLCBpbnQgdG90 YWxfbGVuLCBzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtKTsKICBpbnQgKCpyZWN2bXNnKSAoc3RydWN0 IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbSwgaW50IHRvdGFsX2xlbiwgaW50IGZsYWdz LCBzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtKTsKICBpbnQgKCptbWFwKSAoc3RydWN0IGZpbGUgKmZp bGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIHZtYSk7CiAg c3NpemVfdCAoKnNlbmRwYWdlKSAoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHBhZ2UgKnBh Z2UsIGludCBvZmZzZXQsIHNpemVfdCBzaXplLCBpbnQgZmxhZ3MpOwp9OwoKc3RydWN0IG5ldF9w cm90b19mYW1pbHkKewogICAgICAgIGludCBmYW1pbHk7CiAgICAgICAgaW50ICgqY3JlYXRlKShz dHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgcHJvdG9jb2wpOwoKCiAgICAgICAgc2hvcnQgYXV0aGVu dGljYXRpb247CiAgICAgICAgc2hvcnQgZW5jcnlwdGlvbjsKICAgICAgICBzaG9ydCBlbmNyeXB0 X25ldDsKfTsKCnN0cnVjdCBuZXRfcHJvdG8KewogICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7CiAg ICAgICAgdm9pZCAoKmluaXRfZnVuYykoc3RydWN0IG5ldF9wcm90byAqKTsKfTsKCmV4dGVybiBp bnQgc29ja193YWtlX2FzeW5jX1JzbXBfNGVlYmVhNDEoc3RydWN0IHNvY2tldCAqc2ssIGludCBo b3csIGludCBiYW5kKTsKZXh0ZXJuIGludCBzb2NrX3JlZ2lzdGVyX1JzbXBfZmJlM2FlYTYoc3Ry dWN0IG5ldF9wcm90b19mYW1pbHkgKmZhbSk7CmV4dGVybiBpbnQgc29ja191bnJlZ2lzdGVyX1Jz bXBfMjM5NGEwNjIoaW50IGZhbWlseSk7CmV4dGVybiBzdHJ1Y3Qgc29ja2V0ICpzb2NrX2FsbG9j X1JzbXBfZWE1ZTQxZmUodm9pZCk7CmV4dGVybiBpbnQgc29ja19jcmVhdGVfUnNtcF8zMDQzZjE5 ZChpbnQgZmFtaWx5LCBpbnQgdHlwZSwgaW50IHByb3RvLCBzdHJ1Y3Qgc29ja2V0ICoqKTsKZXh0 ZXJuIHZvaWQgc29ja19yZWxlYXNlX1JzbXBfNTU0ODQwN2Eoc3RydWN0IHNvY2tldCAqKTsKZXh0 ZXJuIGludCBzb2NrX3NlbmRtc2dfUnNtcF8xNmNjMTMxNChzdHJ1Y3Qgc29ja2V0ICosIHN0cnVj dCBtc2doZHIgKm0sIGludCBsZW4pOwpleHRlcm4gaW50IHNvY2tfcmVjdm1zZ19Sc21wX2E5NmY4 NzE4KHN0cnVjdCBzb2NrZXQgKiwgc3RydWN0IG1zZ2hkciAqbSwgaW50IGxlbiwgaW50IGZsYWdz KTsKZXh0ZXJuIGludCBzb2NrX3JlYWR2X3dyaXRldihpbnQgdHlwZSwgc3RydWN0IGlub2RlICog aW5vZGUsIHN0cnVjdCBmaWxlICogZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCBpb3ZlYyAqIGlvdiwgbG9uZyBjb3VudCwgbG9uZyBzaXplKTsKCmV4 dGVybiBpbnQgbmV0X3JhdGVsaW1pdF9Sc21wX2Y2ZWJjMDNiKHZvaWQpOwpleHRlcm4gdW5zaWdu ZWQgbG9uZyBuZXRfcmFuZG9tX1JzbXBfMWM2NmY2NGModm9pZCk7CmV4dGVybiB2b2lkIG5ldF9z cmFuZG9tX1JzbXBfZmY5NjNlZDgodW5zaWduZWQgbG9uZyk7CgoKCgoKCiNkZWZpbmUgU09DS09Q U19XUkFQUEVEKG5hbWUpIF9fdW5sb2NrZWRfICMjIG5hbWUKCiNkZWZpbmUgU09DS0NBTExfV1JB UChuYW1lLCBjYWxsLCBwYXJtcywgYXJncykgc3RhdGljIGludCBfX2xvY2tfICMjIG5hbWUgIyMg XyAjIyBjYWxsIHBhcm1zIHsgaW50IHJldDsgbG9ja19rZXJuZWwoKTsgcmV0ID0gX191bmxvY2tl ZF8gIyMgbmFtZSAjIyBfb3BzLmNhbGwgYXJncyA7IHVubG9ja19rZXJuZWwoKTsgcmV0dXJuIHJl dDsgfQojIDE2NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9uZXQuaCIKI2Rl ZmluZSBTT0NLQ0FMTF9VV1JBUChuYW1lLCBjYWxsLCBwYXJtcywgYXJncykgc3RhdGljIHVuc2ln bmVkIGludCBfX2xvY2tfICMjIG5hbWUgIyMgXyAjIyBjYWxsIHBhcm1zIHsgaW50IHJldDsgbG9j a19rZXJuZWwoKTsgcmV0ID0gX191bmxvY2tlZF8gIyMgbmFtZSAjIyBfb3BzLmNhbGwgYXJncyA7 IHVubG9ja19rZXJuZWwoKTsgcmV0dXJuIHJldDsgfQojIDE3NSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9uZXQuaCIKI2RlZmluZSBTT0NLT1BTX1dSQVAobmFtZSwgZmFtKSBT T0NLQ0FMTF9XUkFQKG5hbWUsIHJlbGVhc2UsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrKSwgKHNvY2sp KSBTT0NLQ0FMTF9XUkFQKG5hbWUsIGJpbmQsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qg c29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pLCAoc29jaywgdWFkZHIsIGFkZHJfbGVuKSkg U09DS0NBTExfV1JBUChuYW1lLCBjb25uZWN0LCAoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0 IHNvY2thZGRyICogdWFkZHIsIGludCBhZGRyX2xlbiwgaW50IGZsYWdzKSwgKHNvY2ssIHVhZGRy LCBhZGRyX2xlbiwgZmxhZ3MpKSBTT0NLQ0FMTF9XUkFQKG5hbWUsIHNvY2tldHBhaXIsIChzdHJ1 Y3Qgc29ja2V0ICpzb2NrMSwgc3RydWN0IHNvY2tldCAqc29jazIpLCAoc29jazEsIHNvY2syKSkg U09DS0NBTExfV1JBUChuYW1lLCBhY2NlcHQsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qg c29ja2V0ICpuZXdzb2NrLCBpbnQgZmxhZ3MpLCAoc29jaywgbmV3c29jaywgZmxhZ3MpKSBTT0NL Q0FMTF9XUkFQKG5hbWUsIGdldG5hbWUsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29j a2FkZHIgKnVhZGRyLCBpbnQgKmFkZHJfbGVuLCBpbnQgcGVlciksIChzb2NrLCB1YWRkciwgYWRk cl9sZW4sIHBlZXIpKSBTT0NLQ0FMTF9VV1JBUChuYW1lLCBwb2xsLCAoc3RydWN0IGZpbGUgKmZp bGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdCAqd2FpdCks IChmaWxlLCBzb2NrLCB3YWl0KSkgU09DS0NBTExfV1JBUChuYW1lLCBpb2N0bCwgKHN0cnVjdCBz b2NrZXQgKnNvY2ssIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKSwgKHNvY2ss IGNtZCwgYXJnKSkgU09DS0NBTExfV1JBUChuYW1lLCBsaXN0ZW4sIChzdHJ1Y3Qgc29ja2V0ICpz b2NrLCBpbnQgbGVuKSwgKHNvY2ssIGxlbikpIFNPQ0tDQUxMX1dSQVAobmFtZSwgc2h1dGRvd24s IChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgZmxhZ3MpLCAoc29jaywgZmxhZ3MpKSBTT0NLQ0FM TF9XUkFQKG5hbWUsIHNldHNvY2tvcHQsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWws IGludCBvcHRuYW1lLCBjaGFyICpvcHR2YWwsIGludCBvcHRsZW4pLCAoc29jaywgbGV2ZWwsIG9w dG5hbWUsIG9wdHZhbCwgb3B0bGVuKSkgU09DS0NBTExfV1JBUChuYW1lLCBnZXRzb2Nrb3B0LCAo c3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwgY2hhciAqb3B0dmFs LCBpbnQgKm9wdGxlbiksIChzb2NrLCBsZXZlbCwgb3B0bmFtZSwgb3B0dmFsLCBvcHRsZW4pKSBT T0NLQ0FMTF9XUkFQKG5hbWUsIHNlbmRtc2csIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qg bXNnaGRyICptLCBpbnQgbGVuLCBzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtKSwgKHNvY2ssIG0sIGxl biwgc2NtKSkgU09DS0NBTExfV1JBUChuYW1lLCByZWN2bXNnLCAoc3RydWN0IHNvY2tldCAqc29j aywgc3RydWN0IG1zZ2hkciAqbSwgaW50IGxlbiwgaW50IGZsYWdzLCBzdHJ1Y3Qgc2NtX2Nvb2tp ZSAqc2NtKSwgKHNvY2ssIG0sIGxlbiwgZmxhZ3MsIHNjbSkpIFNPQ0tDQUxMX1dSQVAobmFtZSwg bW1hcCwgKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QgKnZtYSksIChmaWxlLCBzb2NrLCB2bWEpKSBzdGF0aWMgc3RydWN0IHByb3Rv X29wcyBuYW1lICMjIF9vcHMgPSB7IGZhbWlseTogZmFtLCByZWxlYXNlOiBfX2xvY2tfICMjIG5h bWUgIyMgX3JlbGVhc2UsIGJpbmQ6IF9fbG9ja18gIyMgbmFtZSAjIyBfYmluZCwgY29ubmVjdDog X19sb2NrXyAjIyBuYW1lICMjIF9jb25uZWN0LCBzb2NrZXRwYWlyOiBfX2xvY2tfICMjIG5hbWUg IyMgX3NvY2tldHBhaXIsIGFjY2VwdDogX19sb2NrXyAjIyBuYW1lICMjIF9hY2NlcHQsIGdldG5h bWU6IF9fbG9ja18gIyMgbmFtZSAjIyBfZ2V0bmFtZSwgcG9sbDogX19sb2NrXyAjIyBuYW1lICMj IF9wb2xsLCBpb2N0bDogX19sb2NrXyAjIyBuYW1lICMjIF9pb2N0bCwgbGlzdGVuOiBfX2xvY2tf ICMjIG5hbWUgIyMgX2xpc3Rlbiwgc2h1dGRvd246IF9fbG9ja18gIyMgbmFtZSAjIyBfc2h1dGRv d24sIHNldHNvY2tvcHQ6IF9fbG9ja18gIyMgbmFtZSAjIyBfc2V0c29ja29wdCwgZ2V0c29ja29w dDogX19sb2NrXyAjIyBuYW1lICMjIF9nZXRzb2Nrb3B0LCBzZW5kbXNnOiBfX2xvY2tfICMjIG5h bWUgIyMgX3NlbmRtc2csIHJlY3Ztc2c6IF9fbG9ja18gIyMgbmFtZSAjIyBfcmVjdm1zZywgbW1h cDogX19sb2NrXyAjIyBuYW1lICMjIF9tbWFwLCB9OwojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L2tkZXZfdC5oIiAxCgojZGVmaW5lIF9MSU5VWF9LREVWX1RfSAojIDY0ICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2tkZXZfdC5oIgojZGVmaW5lIE1JTk9SQklUUyA4 CiNkZWZpbmUgTUlOT1JNQVNLICgoMVUgPDwgTUlOT1JCSVRTKSAtIDEpCgp0eXBlZGVmIHVuc2ln bmVkIHNob3J0IGtkZXZfdDsKCiNkZWZpbmUgTUFKT1IoZGV2KSAoKHVuc2lnbmVkIGludCkgKChk ZXYpID4+IE1JTk9SQklUUykpCiNkZWZpbmUgTUlOT1IoZGV2KSAoKHVuc2lnbmVkIGludCkgKChk ZXYpICYgTUlOT1JNQVNLKSkKI2RlZmluZSBIQVNIREVWKGRldikgKCh1bnNpZ25lZCBpbnQpIChk ZXYpKQojZGVmaW5lIE5PREVWIDAKI2RlZmluZSBNS0RFVihtYSwgbWkpICgoKG1hKSA8PCBNSU5P UkJJVFMpIHwgKG1pKSkKI2RlZmluZSBCX0ZSRUUgMHhmZmZmCgpleHRlcm4gY29uc3QgY2hhciAq IGtkZXZuYW1lX1JzbXBfYzI1OGM5MDYoa2Rldl90KTsKCgoKCgoKc3RhdGljIGlubGluZSB1bnNp Z25lZCBpbnQga2Rldl90X3RvX25yKGtkZXZfdCBkZXYpIHsKICAgICAgICByZXR1cm4gKCgodW5z aWduZWQgaW50KSAoKGRldikgPj4gOCkpPDw4KSB8ICgodW5zaWduZWQgaW50KSAoKGRldikgJiAo KDFVIDw8IDgpIC0gMSkpKTsKfQoKc3RhdGljIGlubGluZSBrZGV2X3QgdG9fa2Rldl90KGludCBk ZXYpCnsKICAgICAgICBpbnQgbWFqb3IsIG1pbm9yOwojIDk4ICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L2tkZXZfdC5oIgogICAgICAgIG1ham9yID0gKGRldiA+PiA4KTsKICAg ICAgICBtaW5vciA9IChkZXYgJiAweGZmKTsKCiAgICAgICAgcmV0dXJuICgoKG1ham9yKSA8PCA4 KSB8IChtaW5vcikpOwp9CiMgMTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv ZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvaW9jdGwuaCIg MQoKI2RlZmluZSBfTElOVVhfSU9DVExfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2FzbS9pb2N0bC5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9JT0NUTF9ICiMgMjkgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lvY3RsLmgiCiNkZWZpbmUgX0lPQ19OUkJJVFMg OAojZGVmaW5lIF9JT0NfVFlQRUJJVFMgOAojZGVmaW5lIF9JT0NfU0laRUJJVFMgMTQKI2RlZmlu ZSBfSU9DX0RJUkJJVFMgMgoKI2RlZmluZSBfSU9DX05STUFTSyAoKDEgPDwgX0lPQ19OUkJJVFMp LTEpCiNkZWZpbmUgX0lPQ19UWVBFTUFTSyAoKDEgPDwgX0lPQ19UWVBFQklUUyktMSkKI2RlZmlu ZSBfSU9DX1NJWkVNQVNLICgoMSA8PCBfSU9DX1NJWkVCSVRTKS0xKQojZGVmaW5lIF9JT0NfRElS TUFTSyAoKDEgPDwgX0lPQ19ESVJCSVRTKS0xKQoKI2RlZmluZSBfSU9DX05SU0hJRlQgMAojZGVm aW5lIF9JT0NfVFlQRVNISUZUIChfSU9DX05SU0hJRlQrX0lPQ19OUkJJVFMpCiNkZWZpbmUgX0lP Q19TSVpFU0hJRlQgKF9JT0NfVFlQRVNISUZUK19JT0NfVFlQRUJJVFMpCiNkZWZpbmUgX0lPQ19E SVJTSElGVCAoX0lPQ19TSVpFU0hJRlQrX0lPQ19TSVpFQklUUykKCgoKCiNkZWZpbmUgX0lPQ19O T05FIDBVCiNkZWZpbmUgX0lPQ19XUklURSAxVQojZGVmaW5lIF9JT0NfUkVBRCAyVQoKI2RlZmlu ZSBfSU9DKGRpciwgdHlwZSwgbnIsIHNpemUpICgoKGRpcikgPDwgX0lPQ19ESVJTSElGVCkgfCAo KHR5cGUpIDw8IF9JT0NfVFlQRVNISUZUKSB8ICgobnIpIDw8IF9JT0NfTlJTSElGVCkgfCAoKHNp emUpIDw8IF9JT0NfU0laRVNISUZUKSkKCgoKCgoKI2RlZmluZSBfSU8odHlwZSwgbnIpIF9JT0Mo X0lPQ19OT05FLCh0eXBlKSwobnIpLDApCiNkZWZpbmUgX0lPUih0eXBlLCBuciwgc2l6ZSkgX0lP QyhfSU9DX1JFQUQsKHR5cGUpLChuciksc2l6ZW9mKHNpemUpKQojZGVmaW5lIF9JT1codHlwZSwg bnIsIHNpemUpIF9JT0MoX0lPQ19XUklURSwodHlwZSksKG5yKSxzaXplb2Yoc2l6ZSkpCiNkZWZp bmUgX0lPV1IodHlwZSwgbnIsIHNpemUpIF9JT0MoX0lPQ19SRUFEfF9JT0NfV1JJVEUsKHR5cGUp LChuciksc2l6ZW9mKHNpemUpKQoKCiNkZWZpbmUgX0lPQ19ESVIobnIpICgoKG5yKSA+PiBfSU9D X0RJUlNISUZUKSAmIF9JT0NfRElSTUFTSykKI2RlZmluZSBfSU9DX1RZUEUobnIpICgoKG5yKSA+ PiBfSU9DX1RZUEVTSElGVCkgJiBfSU9DX1RZUEVNQVNLKQojZGVmaW5lIF9JT0NfTlIobnIpICgo KG5yKSA+PiBfSU9DX05SU0hJRlQpICYgX0lPQ19OUk1BU0spCiNkZWZpbmUgX0lPQ19TSVpFKG5y KSAoKChucikgPj4gX0lPQ19TSVpFU0hJRlQpICYgX0lPQ19TSVpFTUFTSykKCgoKI2RlZmluZSBJ T0NfSU4gKF9JT0NfV1JJVEUgPDwgX0lPQ19ESVJTSElGVCkKI2RlZmluZSBJT0NfT1VUIChfSU9D X1JFQUQgPDwgX0lPQ19ESVJTSElGVCkKI2RlZmluZSBJT0NfSU5PVVQgKChfSU9DX1dSSVRFfF9J T0NfUkVBRCkgPDwgX0lPQ19ESVJTSElGVCkKI2RlZmluZSBJT0NTSVpFX01BU0sgKF9JT0NfU0la RU1BU0sgPDwgX0lPQ19TSVpFU0hJRlQpCiNkZWZpbmUgSU9DU0laRV9TSElGVCAoX0lPQ19TSVpF U0hJRlQpCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9pb2N0bC5oIiAy CiMgMTggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMgMTkgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvZGNhY2hlLmgiIDEKCiNkZWZpbmUgX19MSU5VWF9EQ0FDSEVfSAoK CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2F0b21pYy5oIiAxCiMgNyAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9kY2FjaGUuaCIgMgojIDEgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW91bnQuaCIgMQojIDEyICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vdW50LmgiCiNkZWZpbmUgX0xJTlVYX01PVU5UX0gK CgpzdHJ1Y3QgdmZzbW91bnQKewogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgbW50X2hhc2g7CiAg ICAgICAgc3RydWN0IHZmc21vdW50ICptbnRfcGFyZW50OwogICAgICAgIHN0cnVjdCBkZW50cnkg Km1udF9tb3VudHBvaW50OwogICAgICAgIHN0cnVjdCBkZW50cnkgKm1udF9yb290OwogICAgICAg IHN0cnVjdCBsaXN0X2hlYWQgbW50X2luc3RhbmNlczsKICAgICAgICBzdHJ1Y3Qgc3VwZXJfYmxv Y2sgKm1udF9zYjsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIG1udF9tb3VudHM7CiAgICAgICAg c3RydWN0IGxpc3RfaGVhZCBtbnRfY2hpbGQ7CiAgICAgICAgYXRvbWljX3QgbW50X2NvdW50Owog ICAgICAgIGludCBtbnRfZmxhZ3M7CiAgICAgICAgY2hhciAqbW50X2Rldm5hbWU7CiAgICAgICAg c3RydWN0IGxpc3RfaGVhZCBtbnRfbGlzdDsKICAgICAgICB1aWRfdCBtbnRfb3duZXI7Cn07Cgpz dGF0aWMgaW5saW5lIHN0cnVjdCB2ZnNtb3VudCAqbW50Z2V0KHN0cnVjdCB2ZnNtb3VudCAqbW50 KQp7CiAgICAgICAgaWYgKG1udCkKICAgICAgICAgICAgICAgICgoX19idWlsdGluX2NvbnN0YW50 X3AoKDEpKSAmJiAoICgoMSkgPT0gMSkgfHwgKCgxKSA9PSA0KSB8fCAoKDEpID09IDgpIHx8ICgo MSkgPT0gMTYpIHx8ICgoMSkgPT0gLTEpIHx8ICgoMSkgPT0gLTQpIHx8ICgoMSkgPT0gLTgpIHx8 ICgoMSkgPT0gLTE2KSkpID8gKHsgX191NjQgX3RtcDsgdm9sYXRpbGUgX190eXBlb2ZfXygqKCYo KCgmbW50LT5tbnRfY291bnQpKSktPmNvdW50ZXIpKSAqX3YgPSAoJigoKCZtbnQtPm1udF9jb3Vu dCkpKS0+Y291bnRlcik7IHN3aXRjaCAoKDEpKSB7IGNhc2UgLTE2OiAoeyBzd2l0Y2ggKHNpemVv ZigqKCYoKCgmbW50LT5tbnRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6 ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi ciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVf Zm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtODogKHsgc3dpdGNo IChzaXplb2YoKigmKCgoJm1udC0+bW50X2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBf X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo X3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt cCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRf c2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC00OiAoeyBz d2l0Y2ggKHNpemVvZigqKCYoKCgmbW50LT5tbnRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNl IDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDog Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6 IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1y IihfdG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBf X2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTE6 ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZtbnQtPm1udF9jb3VudCkpKS0+Y291bnRlcikpKSB7 IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwl MiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNh c2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIg OiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1 bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2Fz ZSAxOiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmbW50LT5tbnRfY291bnQpKSktPmNvdW50ZXIp KSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVsl MV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7 IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwl MiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVm YXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBj YXNlIDQ6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZtbnQtPm1udF9jb3VudCkpKS0+Y291bnRl cikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9 WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVh azsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFd LCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBk ZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7 IGNhc2UgODogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJm1udC0+bW50X2NvdW50KSkpLT5jb3Vu dGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAl MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJy ZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVsl MV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJlYWs7 IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVh azsgY2FzZSAxNjogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJm1udC0+bW50X2NvdW50KSkpLT5j b3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJl bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIp OyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAl MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBi cmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7 IGJyZWFrOyBkZWZhdWx0OiBfdG1wID0gX19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2Fu ZF9hZGQoKTsgYnJlYWs7IH0gKF9fdHlwZW9mX18oKiYoKCgmbW50LT5tbnRfY291bnQpKSktPmNv dW50ZXIpKSAoX3RtcCArICgoMSkpKTsgfSkgOiBpYTY0X2F0b21pY19hZGQoKDEpLCAoKCZtbnQt Pm1udF9jb3VudCkpKSk7CiAgICAgICAgcmV0dXJuIG1udDsKfQoKZXh0ZXJuIHZvaWQgX19tbnRw dXRfUnNtcF9jZDgxODkwMihzdHJ1Y3QgdmZzbW91bnQgKm1udCk7CgpzdGF0aWMgaW5saW5lIHZv aWQgbW50cHV0KHN0cnVjdCB2ZnNtb3VudCAqbW50KQp7CiAgICAgICAgaWYgKG1udCkgewogICAg ICAgICAgICAgICAgaWYgKCgoKF9fYnVpbHRpbl9jb25zdGFudF9wKDEpICYmICggKDEgPT0gMSkg fHwgKDEgPT0gNCkgfHwgKDEgPT0gOCkgfHwgKDEgPT0gMTYpIHx8ICgxID09IC0xKSB8fCAoMSA9 PSAtNCkgfHwgKDEgPT0gLTgpIHx8ICgxID09IC0xNikpKSA/ICh7IF9fdTY0IF90bXA7IHZvbGF0 aWxlIF9fdHlwZW9mX18oKigmKCgmbW50LT5tbnRfY291bnQpKS0+Y291bnRlcikpICpfdiA9ICgm KCgmbW50LT5tbnRfY291bnQpKS0+Y291bnRlcik7IHN3aXRjaCAoLSgxKSkgeyBjYXNlIC0xNjog KHsgc3dpdGNoIChzaXplb2YoKigmKCgmbW50LT5tbnRfY291bnQpKS0+Y291bnRlcikpKSB7IGNh c2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIg OiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNl IDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDog Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVs dDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNl IC04OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZtbnQtPm1udF9jb3VudCkpLT5jb3VudGVyKSkp IHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFd LCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsg Y2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUy IiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVm YXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBj YXNlIC00OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZtbnQtPm1udF9jb3VudCkpLT5jb3VudGVy KSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1b JTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVh azsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFd LCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsg ZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFr OyBjYXNlIC0xOiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZtbnQtPm1udF9jb3VudCkpLT5jb3Vu dGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAl MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTEpIDogIm1lbW9yeSIpOyBi cmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1b JTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTEpIDogIm1lbW9yeSIpOyBicmVh azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy ZWFrOyBjYXNlIDE6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJm1udC0+bW50X2NvdW50KSktPmNv dW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVs ICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsg YnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9 WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVh azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy ZWFrOyBjYXNlIDQ6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJm1udC0+bW50X2NvdW50KSktPmNv dW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVs ICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsg YnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9 WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVh azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy ZWFrOyBjYXNlIDg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJm1udC0+bW50X2NvdW50KSktPmNv dW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVs ICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsg YnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9 WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVh azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy ZWFrOyBjYXNlIDE2OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZtbnQtPm1udF9jb3VudCkpLT5j b3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJl bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIp OyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAl MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBi cmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7 IGJyZWFrOyBkZWZhdWx0OiBfdG1wID0gX19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2Fu ZF9hZGQoKTsgYnJlYWs7IH0gKF9fdHlwZW9mX18oKiYoKCZtbnQtPm1udF9jb3VudCkpLT5jb3Vu dGVyKSkgKF90bXAgKyAoLSgxKSkpOyB9KSA6IGlhNjRfYXRvbWljX3N1YigxLCAoJm1udC0+bW50 X2NvdW50KSkpID09IDApKQogICAgICAgICAgICAgICAgICAgICAgICBfX21udHB1dF9Sc21wX2Nk ODE4OTAyKG1udCk7CiAgICAgICAgfQp9CiMgOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9kY2FjaGUuaCIgMgojIDE4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L2RjYWNoZS5oIgojZGVmaW5lIElTX1JPT1QoeCkgKCh4KSA9PSAoeCktPmRfcGFyZW50KQoK CgoKCnN0cnVjdCBxc3RyIHsKICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICogbmFtZTsKICAg ICAgICB1bnNpZ25lZCBpbnQgbGVuOwogICAgICAgIHVuc2lnbmVkIGludCBoYXNoOwp9OwoKc3Ry dWN0IGRlbnRyeV9zdGF0X3QgewogICAgICAgIGludCBucl9kZW50cnk7CiAgICAgICAgaW50IG5y X3VudXNlZDsKICAgICAgICBpbnQgYWdlX2xpbWl0OwogICAgICAgIGludCB3YW50X3BhZ2VzOwog ICAgICAgIGludCBkdW1teVsyXTsKfTsKZXh0ZXJuIHN0cnVjdCBkZW50cnlfc3RhdF90IGRlbnRy eV9zdGF0OwoKCgojZGVmaW5lIGluaXRfbmFtZV9oYXNoKCkgMAoKCnN0YXRpYyBfX2lubGluZV9f IHVuc2lnbmVkIGxvbmcgcGFydGlhbF9uYW1lX2hhc2godW5zaWduZWQgbG9uZyBjLCB1bnNpZ25l ZCBsb25nIHByZXZoYXNoKQp7CiAgICAgICAgcmV0dXJuIChwcmV2aGFzaCArIChjIDw8IDQpICsg KGMgPj4gNCkpICogMTE7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGVuZF9u YW1lX2hhc2godW5zaWduZWQgbG9uZyBoYXNoKQp7CiAgICAgICAgcmV0dXJuICh1bnNpZ25lZCBp bnQpIGhhc2g7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgZnVsbF9uYW1lX2hh c2goY29uc3QgdW5zaWduZWQgY2hhciAqIG5hbWUsIHVuc2lnbmVkIGludCBsZW4pCnsKICAgICAg ICB1bnNpZ25lZCBsb25nIGhhc2ggPSAwOwogICAgICAgIHdoaWxlIChsZW4tLSkKICAgICAgICAg ICAgICAgIGhhc2ggPSBwYXJ0aWFsX25hbWVfaGFzaCgqbmFtZSsrLCBoYXNoKTsKICAgICAgICBy ZXR1cm4gZW5kX25hbWVfaGFzaChoYXNoKTsKfQoKI2RlZmluZSBETkFNRV9JTkxJTkVfTEVOIDE2 CgpzdHJ1Y3QgZGVudHJ5IHsKICAgICAgICBhdG9taWNfdCBkX2NvdW50OwogICAgICAgIHVuc2ln bmVkIGludCBkX2ZsYWdzOwogICAgICAgIHN0cnVjdCBpbm9kZSAqIGRfaW5vZGU7CiAgICAgICAg c3RydWN0IGRlbnRyeSAqIGRfcGFyZW50OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZF9oYXNo OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZF9scnU7CiAgICAgICAgc3RydWN0IGxpc3RfaGVh ZCBkX2NoaWxkOwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZF9zdWJkaXJzOwogICAgICAgIHN0 cnVjdCBsaXN0X2hlYWQgZF9hbGlhczsKICAgICAgICBpbnQgZF9tb3VudGVkOwogICAgICAgIHN0 cnVjdCBxc3RyIGRfbmFtZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGRfdGltZTsKICAgICAgICBz dHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgKmRfb3A7CiAgICAgICAgc3RydWN0IHN1cGVyX2Jsb2Nr ICogZF9zYjsKICAgICAgICB1bnNpZ25lZCBsb25nIGRfdmZzX2ZsYWdzOwogICAgICAgIHZvaWQg KiBkX2ZzZGF0YTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGRfaW5hbWVbMTZdOwp9OwoKc3RydWN0 IGRlbnRyeV9vcGVyYXRpb25zIHsKICAgICAgICBpbnQgKCpkX3JldmFsaWRhdGUpKHN0cnVjdCBk ZW50cnkgKiwgaW50KTsKICAgICAgICBpbnQgKCpkX2hhc2gpIChzdHJ1Y3QgZGVudHJ5ICosIHN0 cnVjdCBxc3RyICopOwogICAgICAgIGludCAoKmRfY29tcGFyZSkgKHN0cnVjdCBkZW50cnkgKiwg c3RydWN0IHFzdHIgKiwgc3RydWN0IHFzdHIgKik7CiAgICAgICAgaW50ICgqZF9kZWxldGVfUnNt cF9jNzE4YjU1Nykoc3RydWN0IGRlbnRyeSAqKTsKICAgICAgICB2b2lkICgqZF9yZWxlYXNlKShz dHJ1Y3QgZGVudHJ5ICopOwogICAgICAgIHZvaWQgKCpkX2lwdXQpKHN0cnVjdCBkZW50cnkgKiwg c3RydWN0IGlub2RlICopOwp9OwojIDExNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC9kY2FjaGUuaCIKI2RlZmluZSBEQ0FDSEVfQVVUT0ZTX1BFTkRJTkcgMHgwMDAxCiNkZWZp bmUgRENBQ0hFX05GU0ZTX1JFTkFNRUQgMHgwMDAyCgoKCiNkZWZpbmUgRENBQ0hFX05GU0RfRElT Q09OTkVDVEVEIDB4MDAwNAoKCgoKCiNkZWZpbmUgRENBQ0hFX1JFRkVSRU5DRUQgMHgwMDA4Cgpl eHRlcm4gc3BpbmxvY2tfdCBkY2FjaGVfbG9ja19Sc21wX2Y3YzMyY2ExOwojIDE0NiAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9kY2FjaGUuaCIKc3RhdGljIF9faW5saW5lX18g dm9pZCBkX2Ryb3Aoc3RydWN0IGRlbnRyeSAqIGRlbnRyeSkKewogICAgICAgIF9fYXNtX18gX192 b2xhdGlsZV9fICggIm1vdiBhci5jY3YgPSByMFxuIiAibW92IHIyOSA9IDFcbiIgIjs7XG4iICIx OlxuIiAibGQ0IHIyID0gWyUwXVxuIiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCxyMlxuIiAi KHA3KSBici5jb25kLnNwbnQuZmV3IDFiIFxuIiAiIiJjbXB4Y2hnNC5hY3EgcjIgPSBbJTBdLCBy MjksIGFyLmNjdlxuIiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCwgcjJcbiIgIihwNykgYnIu Y29uZC5zcG50LmZldyAxYlxuIiAiOztcbiIgOjogInIiKCYoJmRjYWNoZV9sb2NrX1JzbXBfZjdj MzJjYTEpLT5sb2NrKSA6ICJyMiIsICJyMjkiLCAibWVtb3J5Iik7CiAgICAgICAgbGlzdF9kZWwo JmRlbnRyeS0+ZF9oYXNoKTsKICAgICAgICBkbyB7ICgmZGVudHJ5LT5kX2hhc2gpLT5uZXh0ID0g KCZkZW50cnktPmRfaGFzaCk7ICgmZGVudHJ5LT5kX2hhc2gpLT5wcmV2ID0gKCZkZW50cnktPmRf aGFzaCk7IH0gd2hpbGUgKDApOwogICAgICAgIGRvIHsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6 IDogOiJtZW1vcnkiKTsgKChzcGlubG9ja190ICopICZkY2FjaGVfbG9ja19Sc21wX2Y3YzMyY2Ex KS0+bG9jayA9IDA7IH0gd2hpbGUgKDApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgZG5hbWVf ZXh0ZXJuYWwoc3RydWN0IGRlbnRyeSAqZCkKewogICAgICAgIHJldHVybiBkLT5kX25hbWUubmFt ZSAhPSBkLT5kX2luYW1lOwp9CgoKCgpleHRlcm4gdm9pZCBkX2luc3RhbnRpYXRlX1JzbXBfMDIx ZTI1OTIoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIGRfZGVs ZXRlX1JzbXBfYzcxOGI1NTcoc3RydWN0IGRlbnRyeSAqKTsKCgpleHRlcm4gc3RydWN0IGRlbnRy eSAqIGRfYWxsb2NfUnNtcF8yMDRlY2Q2MihzdHJ1Y3QgZGVudHJ5ICosIGNvbnN0IHN0cnVjdCBx c3RyICopOwpleHRlcm4gdm9pZCBzaHJpbmtfZGNhY2hlX3NiX1JzbXBfNjg1OGYzZGUoc3RydWN0 IHN1cGVyX2Jsb2NrICopOwpleHRlcm4gdm9pZCBzaHJpbmtfZGNhY2hlX3BhcmVudF9Sc21wXzE0 M2MyYmI4KHN0cnVjdCBkZW50cnkgKik7CmV4dGVybiBpbnQgZF9pbnZhbGlkYXRlX1JzbXBfNWEw NGQ4ZWQoc3RydWN0IGRlbnRyeSAqKTsKCiNkZWZpbmUgc2hyaW5rX2RjYWNoZSgpIHBydW5lX2Rj YWNoZSgwKQpzdHJ1Y3Qgem9uZV9zdHJ1Y3Q7CgpleHRlcm4gdm9pZCBzaHJpbmtfZGNhY2hlX21l bW9yeShpbnQsIHVuc2lnbmVkIGludCk7CmV4dGVybiB2b2lkIHBydW5lX2RjYWNoZV9Sc21wXzZj ZjI4Zjc3KGludCk7CgoKZXh0ZXJuIHZvaWQgc2hyaW5rX2ljYWNoZV9tZW1vcnkoaW50LCBpbnQp OwpleHRlcm4gdm9pZCBwcnVuZV9pY2FjaGUoaW50KTsKCgpleHRlcm4gc3RydWN0IGRlbnRyeSAq IGRfYWxsb2Nfcm9vdF9Sc21wX2UyMjRjNGM1KHN0cnVjdCBpbm9kZSAqKTsKCgpleHRlcm4gdm9p ZCBkX2dlbm9jaWRlKHN0cnVjdCBkZW50cnkgKik7CgpleHRlcm4gc3RydWN0IGRlbnRyeSAqZF9m aW5kX2FsaWFzX1JzbXBfYjYwNTg4MDIoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCBkX3By dW5lX2FsaWFzZXNfUnNtcF9jOWJhZDQ3YihzdHJ1Y3QgaW5vZGUgKik7CgoKZXh0ZXJuIGludCBo YXZlX3N1Ym1vdW50c19Sc21wX2IzYjI5YzBlKHN0cnVjdCBkZW50cnkgKik7CgoKCgpleHRlcm4g dm9pZCBkX3JlaGFzaF9Sc21wX2Q5MDFjMTRiKHN0cnVjdCBkZW50cnkgKik7CiMgMjA3ICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIgpzdGF0aWMgX19pbmxpbmVf XyB2b2lkIGRfYWRkKHN0cnVjdCBkZW50cnkgKiBlbnRyeSwgc3RydWN0IGlub2RlICogaW5vZGUp CnsKICAgICAgICBkX2luc3RhbnRpYXRlX1JzbXBfMDIxZTI1OTIoZW50cnksIGlub2RlKTsKICAg ICAgICBkX3JlaGFzaF9Sc21wX2Q5MDFjMTRiKGVudHJ5KTsKfQoKCmV4dGVybiB2b2lkIGRfbW92 ZV9Sc21wXzZhNmNjNjdjKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGRlbnRyeSAqKTsKCgpleHRl cm4gc3RydWN0IGRlbnRyeSAqIGRfbG9va3VwX1JzbXBfZTljNTYzZTEoc3RydWN0IGRlbnRyeSAq LCBzdHJ1Y3QgcXN0ciAqKTsKCgpleHRlcm4gaW50IGRfdmFsaWRhdGVfUnNtcF9jNDcxM2QxOShz dHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBkZW50cnkgKik7CgpleHRlcm4gY2hhciAqIF9fZF9wYXRo X1JzbXBfYWYxZDdiZmYoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiwgc3RydWN0 IGRlbnRyeSAqLAogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqLCBjaGFyICosIGludCk7CiMgMjQw ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIgpzdGF0aWMgX19p bmxpbmVfXyBzdHJ1Y3QgZGVudHJ5ICogZGdldChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKICAg ICAgICBpZiAoZGVudHJ5KSB7CiAgICAgICAgICAgICAgICBpZiAoISgoJmRlbnRyeS0+ZF9jb3Vu dCktPmNvdW50ZXIpKQogICAgICAgICAgICAgICAgICAgICAgICBkbyB7IHByaW50a19Sc21wXzgy N2Q1ODA3KCJrZXJuZWwgQlVHIGF0ICVzOiVkIVxuIiwgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvbGludXgvZGNhY2hlLmgiLCAyNDQpOyAqKGludCAqKTA9MDsgfSB3aGlsZSAoMCk7CiAg ICAgICAgICAgICAgICAoKF9fYnVpbHRpbl9jb25zdGFudF9wKCgxKSkgJiYgKCAoKDEpID09IDEp IHx8ICgoMSkgPT0gNCkgfHwgKCgxKSA9PSA4KSB8fCAoKDEpID09IDE2KSB8fCAoKDEpID09IC0x KSB8fCAoKDEpID09IC00KSB8fCAoKDEpID09IC04KSB8fCAoKDEpID09IC0xNikpKSA/ICh7IF9f dTY0IF90bXA7IHZvbGF0aWxlIF9fdHlwZW9mX18oKigmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+ Y291bnRlcikpICpfdiA9ICgmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+Y291bnRlcik7IHN3aXRj aCAoKDEpKSB7IGNhc2UgLTE2OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmZGVudHJ5LT5kX2Nv dW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0 Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6 ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNo YWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAi bWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9h ZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZkZW50 cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9f ICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJp IigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgi IiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigt OCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNo X2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTQ6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigo KCZkZW50cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xh dGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihf diksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGls ZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiks ICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0 X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTE6ICh7IHN3aXRjaCAoc2l6ZW9m KCooJigoKCZkZW50cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6 ICJyIihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192 b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJy IihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zv cl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTogKHsgc3dpdGNoIChz aXplb2YoKigmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19h c21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90 bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9f IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg OiAiciIoX3YpLCAiaSIoMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXpl X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgNDogKHsgc3dpdGNo IChzaXplb2YoKigmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi KF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt cCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgODogKHsgc3dp dGNoIChzaXplb2YoKigmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2Ug NDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAi PXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBf X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo X3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2Jh ZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTY6ICh7 IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZkZW50cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBj YXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIi IDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNl IDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDog Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0 OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGRlZmF1 bHQ6IF90bXAgPSBfX2JhZF9pbmNyZW1lbnRfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyBicmVh azsgfSAoX190eXBlb2ZfXygqJigoKCZkZW50cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSAoX3Rt cCArICgoMSkpKTsgfSkgOiBpYTY0X2F0b21pY19hZGQoKDEpLCAoKCZkZW50cnktPmRfY291bnQp KSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZGVudHJ5Owp9CgpleHRlcm4gc3RydWN0IGRl bnRyeSAqIGRnZXRfbG9ja2VkX1JzbXBfZDI4MmI4MDcoc3RydWN0IGRlbnRyeSAqKTsKIyAyNTkg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZGNhY2hlLmgiCnN0YXRpYyBfX2lu bGluZV9fIGludCBkX3VuaGFzaGVkKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogICAgICAgIHJl dHVybiBsaXN0X2VtcHR5KCZkZW50cnktPmRfaGFzaCk7Cn0KCmV4dGVybiB2b2lkIGRwdXRfUnNt cF81NzRlNmJhMyhzdHJ1Y3QgZGVudHJ5ICopOwoKc3RhdGljIF9faW5saW5lX18gaW50IGRfbW91 bnRwb2ludChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKICAgICAgICByZXR1cm4gZGVudHJ5LT5k X21vdW50ZWQ7Cn0KCmV4dGVybiBzdHJ1Y3QgdmZzbW91bnQgKmxvb2t1cF9tbnRfUnNtcF9lZmU3 MTUzZChzdHJ1Y3QgdmZzbW91bnQgKiwgc3RydWN0IGRlbnRyeSAqKTsKIyAyMCAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9zdGF0LmgiIDEKCiNkZWZpbmUgX0xJTlVYX1NUQVRfSAoKCgojIDEg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N0YXQuaCIgMQoKI2RlZmluZSBfQVNN X0lBNjRfU1RBVF9ICgoKCgoKCnN0cnVjdCBzdGF0IHsKICAgICAgICB1bnNpZ25lZCBsb25nIHN0 X2RldjsKICAgICAgICB1bnNpZ25lZCBsb25nIHN0X2lubzsKICAgICAgICB1bnNpZ25lZCBsb25n IHN0X25saW5rOwogICAgICAgIHVuc2lnbmVkIGludCBzdF9tb2RlOwogICAgICAgIHVuc2lnbmVk IGludCBzdF91aWQ7CiAgICAgICAgdW5zaWduZWQgaW50IHN0X2dpZDsKICAgICAgICB1bnNpZ25l ZCBpbnQgX19wYWQwOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3RfcmRldjsKICAgICAgICB1bnNp Z25lZCBsb25nIHN0X3NpemU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzdF9hdGltZTsKICAgICAg ICB1bnNpZ25lZCBsb25nIF9fcmVzZXJ2ZWQwOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3RfbXRp bWU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBfX3Jlc2VydmVkMTsKICAgICAgICB1bnNpZ25lZCBs b25nIHN0X2N0aW1lOwogICAgICAgIHVuc2lnbmVkIGxvbmcgX19yZXNlcnZlZDI7CiAgICAgICAg dW5zaWduZWQgbG9uZyBzdF9ibGtzaXplOwogICAgICAgIGxvbmcgc3RfYmxvY2tzOwogICAgICAg IHVuc2lnbmVkIGxvbmcgX191bnVzZWRbM107Cn07CgpzdHJ1Y3QgaWE2NF9vbGRzdGF0IHsKICAg ICAgICB1bnNpZ25lZCBpbnQgc3RfZGV2OwogICAgICAgIHVuc2lnbmVkIGludCBzdF9pbm87CiAg ICAgICAgdW5zaWduZWQgaW50IHN0X21vZGU7CiAgICAgICAgdW5zaWduZWQgaW50IHN0X25saW5r OwogICAgICAgIHVuc2lnbmVkIGludCBzdF91aWQ7CiAgICAgICAgdW5zaWduZWQgaW50IHN0X2dp ZDsKICAgICAgICB1bnNpZ25lZCBpbnQgc3RfcmRldjsKICAgICAgICB1bnNpZ25lZCBpbnQgX19w YWQxOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3Rfc2l6ZTsKICAgICAgICB1bnNpZ25lZCBsb25n IHN0X2F0aW1lOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3RfbXRpbWU7CiAgICAgICAgdW5zaWdu ZWQgbG9uZyBzdF9jdGltZTsKICAgICAgICB1bnNpZ25lZCBpbnQgc3RfYmxrc2l6ZTsKICAgICAg ICBpbnQgc3RfYmxvY2tzOwogICAgICAgIHVuc2lnbmVkIGludCBfX3VudXNlZDE7CiAgICAgICAg dW5zaWduZWQgaW50IF9fdW51c2VkMjsKfTsKIyA3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L3N0YXQuaCIgMgoKCgoKCiNkZWZpbmUgU19JRk1UIDAwMTcwMDAwCiNkZWZpbmUg U19JRlNPQ0sgMDE0MDAwMAojZGVmaW5lIFNfSUZMTksgMDEyMDAwMAojZGVmaW5lIFNfSUZSRUcg MDEwMDAwMAojZGVmaW5lIFNfSUZCTEsgMDA2MDAwMAojZGVmaW5lIFNfSUZESVIgMDA0MDAwMAoj ZGVmaW5lIFNfSUZDSFIgMDAyMDAwMAojZGVmaW5lIFNfSUZJRk8gMDAxMDAwMAojZGVmaW5lIFNf SVNVSUQgMDAwNDAwMAojZGVmaW5lIFNfSVNHSUQgMDAwMjAwMAojZGVmaW5lIFNfSVNWVFggMDAw MTAwMAoKI2RlZmluZSBTX0lTTE5LKG0pICgoKG0pICYgU19JRk1UKSA9PSBTX0lGTE5LKQojZGVm aW5lIFNfSVNSRUcobSkgKCgobSkgJiBTX0lGTVQpID09IFNfSUZSRUcpCiNkZWZpbmUgU19JU0RJ UihtKSAoKChtKSAmIFNfSUZNVCkgPT0gU19JRkRJUikKI2RlZmluZSBTX0lTQ0hSKG0pICgoKG0p ICYgU19JRk1UKSA9PSBTX0lGQ0hSKQojZGVmaW5lIFNfSVNCTEsobSkgKCgobSkgJiBTX0lGTVQp ID09IFNfSUZCTEspCiNkZWZpbmUgU19JU0ZJRk8obSkgKCgobSkgJiBTX0lGTVQpID09IFNfSUZJ Rk8pCiNkZWZpbmUgU19JU1NPQ0sobSkgKCgobSkgJiBTX0lGTVQpID09IFNfSUZTT0NLKQoKI2Rl ZmluZSBTX0lSV1hVIDAwNzAwCiNkZWZpbmUgU19JUlVTUiAwMDQwMAojZGVmaW5lIFNfSVdVU1Ig MDAyMDAKI2RlZmluZSBTX0lYVVNSIDAwMTAwCgojZGVmaW5lIFNfSVJXWEcgMDAwNzAKI2RlZmlu ZSBTX0lSR1JQIDAwMDQwCiNkZWZpbmUgU19JV0dSUCAwMDAyMAojZGVmaW5lIFNfSVhHUlAgMDAw MTAKCiNkZWZpbmUgU19JUldYTyAwMDAwNwojZGVmaW5lIFNfSVJPVEggMDAwMDQKI2RlZmluZSBT X0lXT1RIIDAwMDAyCiNkZWZpbmUgU19JWE9USCAwMDAwMQoKCgoKI2RlZmluZSBTX0lSV1hVR08g KFNfSVJXWFV8U19JUldYR3xTX0lSV1hPKQojZGVmaW5lIFNfSUFMTFVHTyAoU19JU1VJRHxTX0lT R0lEfFNfSVNWVFh8U19JUldYVUdPKQojZGVmaW5lIFNfSVJVR08gKFNfSVJVU1J8U19JUkdSUHxT X0lST1RIKQojZGVmaW5lIFNfSVdVR08gKFNfSVdVU1J8U19JV0dSUHxTX0lXT1RIKQojZGVmaW5l IFNfSVhVR08gKFNfSVhVU1J8U19JWEdSUHxTX0lYT1RIKQojIDIxICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L2NhY2hlLmgiIDEKCiNkZWZpbmUgX19MSU5VWF9DQUNIRV9ICgojIDEgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2NhY2hlLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0 X0NBQ0hFX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcu aCIgMQojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2NhY2hlLmgiIDIKCgoK CgoKCiNkZWZpbmUgTDFfQ0FDSEVfU0hJRlQgQ09ORklHX0lBNjRfTDFfQ0FDSEVfU0hJRlQKI2Rl ZmluZSBMMV9DQUNIRV9CWVRFUyAoMSA8PCBMMV9DQUNIRV9TSElGVCkKCgojZGVmaW5lIFNNUF9D QUNIRV9TSElGVCBMMV9DQUNIRV9TSElGVAojZGVmaW5lIFNNUF9DQUNIRV9CWVRFUyBMMV9DQUNI RV9CWVRFUwojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY2FjaGUuaCIg MgoKCiNkZWZpbmUgTDFfQ0FDSEVfQUxJR04oeCkgKCgoeCkrKEwxX0NBQ0hFX0JZVEVTLTEpKSZ+ KEwxX0NBQ0hFX0JZVEVTLTEpKQoKCgoKCgoKI2RlZmluZSBfX19fY2FjaGVsaW5lX2FsaWduZWQg X19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oU01QX0NBQ0hFX0JZVEVTKSkpCgoKCgojZGVmaW5l IF9fY2FjaGVsaW5lX2FsaWduZWQgX19fX2NhY2hlbGluZV9hbGlnbmVkCiMgMjIgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvc3RkZGVmLmgiIDEKIyAyMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC9zdHJpbmcuaCIgMQojIDI0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4 L2ZzLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYXRvbWljLmgi IDEKIyAyNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYml0b3BzLmgiIDEKIyAyNyAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCgpzdHJ1Y3QgcG9sbF90YWJsZV9z dHJ1Y3Q7CiMgNDIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIKI3Vu ZGVmIE5SX09QRU4KI2RlZmluZSBOUl9PUEVOICgxMDI0KjEwMjQpCiNkZWZpbmUgSU5SX09QRU4g MTAyNAoKI2RlZmluZSBCTE9DS19TSVpFX0JJVFMgMTAKI2RlZmluZSBCTE9DS19TSVpFICgxPDxC TE9DS19TSVpFX0JJVFMpCgoKc3RydWN0IGZpbGVzX3N0YXRfc3RydWN0IHsKICAgICAgICBpbnQg bnJfZmlsZXM7CiAgICAgICAgaW50IG5yX2ZyZWVfZmlsZXM7CiAgICAgICAgaW50IG1heF9maWxl czsKfTsKZXh0ZXJuIHN0cnVjdCBmaWxlc19zdGF0X3N0cnVjdCBmaWxlc19zdGF0X1JzbXBfMDNj YWRhMjc7CgpzdHJ1Y3QgaW5vZGVzX3N0YXRfdCB7CiAgICAgICAgaW50IG5yX2lub2RlczsKICAg ICAgICBpbnQgbnJfdW51c2VkOwogICAgICAgIGludCBkdW1teVs1XTsKfTsKZXh0ZXJuIHN0cnVj dCBpbm9kZXNfc3RhdF90IGlub2Rlc19zdGF0OwoKZXh0ZXJuIGludCBtYXhfc3VwZXJfYmxvY2tz LCBucl9zdXBlcl9ibG9ja3M7CmV4dGVybiBpbnQgbGVhc2VzX2VuYWJsZSwgZGlyX25vdGlmeV9l bmFibGUsIGxlYXNlX2JyZWFrX3RpbWU7CgojZGVmaW5lIE5SX0ZJTEUgODE5MgojZGVmaW5lIE5S X1JFU0VSVkVEX0ZJTEVTIDEwCiNkZWZpbmUgTlJfU1VQRVIgMjU2CgojZGVmaW5lIE1BWV9FWEVD IDEKI2RlZmluZSBNQVlfV1JJVEUgMgojZGVmaW5lIE1BWV9SRUFEIDQKCiNkZWZpbmUgRk1PREVf UkVBRCAxCiNkZWZpbmUgRk1PREVfV1JJVEUgMgoKI2RlZmluZSBSRUFEIDAKI2RlZmluZSBXUklU RSAxCiNkZWZpbmUgUkVBREEgMgojZGVmaW5lIFNQRUNJQUwgNAoKI2RlZmluZSBTRUxfSU4gMQoj ZGVmaW5lIFNFTF9PVVQgMgojZGVmaW5lIFNFTF9FWCA0CgoKI2RlZmluZSBGU19SRVFVSVJFU19E RVYgMQojZGVmaW5lIEZTX05PX0RDQUNIRSAyCiNkZWZpbmUgRlNfTk9fUFJFTElNIDQKCgojZGVm aW5lIEZTX1NJTkdMRSA4CgoKCgoKI2RlZmluZSBGU19OT01PVU5UIDE2CiNkZWZpbmUgRlNfTElU VEVSIDMyCiNkZWZpbmUgRlNfT0REX1JFTkFNRSAzMjc2OAoKCgoKCiNkZWZpbmUgTVNfUkRPTkxZ IDEKI2RlZmluZSBNU19OT1NVSUQgMgojZGVmaW5lIE1TX05PREVWIDQKI2RlZmluZSBNU19OT0VY RUMgOAojZGVmaW5lIE1TX1NZTkNIUk9OT1VTIDE2CiNkZWZpbmUgTVNfUkVNT1VOVCAzMgojZGVm aW5lIE1TX01BTkRMT0NLIDY0CiNkZWZpbmUgTVNfTk9BVElNRSAxMDI0CiNkZWZpbmUgTVNfTk9E SVJBVElNRSAyMDQ4CiNkZWZpbmUgTVNfQklORCA0MDk2CgoKCgojZGVmaW5lIE1TX1JNVF9NQVNL IChNU19SRE9OTFl8TVNfTk9TVUlEfE1TX05PREVWfE1TX05PRVhFQ3wgTVNfU1lOQ0hST05PVVN8 TVNfTUFORExPQ0t8TVNfTk9BVElNRXxNU19OT0RJUkFUSU1FKQoKCgoKCiNkZWZpbmUgTVNfTUdD X1ZBTCAweEMwRUQwMDAwCiNkZWZpbmUgTVNfTUdDX01TSyAweGZmZmYwMDAwCgoKCiNkZWZpbmUg U19TWU5DIDEKI2RlZmluZSBTX05PQVRJTUUgMgojZGVmaW5lIFNfUVVPVEEgNAojZGVmaW5lIFNf QVBQRU5EIDgKI2RlZmluZSBTX0lNTVVUQUJMRSAxNgojZGVmaW5lIFNfREVBRCAzMgojIDE1MiAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIgojZGVmaW5lIF9fSVNfRkxH KGlub2RlLCBmbGcpICgoaW5vZGUpLT5pX3NiLT5zX2ZsYWdzICYgKGZsZykpCgojZGVmaW5lIElT X1JET05MWShpbm9kZSkgKChpbm9kZSktPmlfc2ItPnNfZmxhZ3MgJiBNU19SRE9OTFkpCiNkZWZp bmUgSVNfTk9TVUlEKGlub2RlKSBfX0lTX0ZMRyhpbm9kZSwgTVNfTk9TVUlEKQojZGVmaW5lIElT X05PREVWKGlub2RlKSBfX0lTX0ZMRyhpbm9kZSwgTVNfTk9ERVYpCiNkZWZpbmUgSVNfTk9FWEVD KGlub2RlKSBfX0lTX0ZMRyhpbm9kZSwgTVNfTk9FWEVDKQojZGVmaW5lIElTX1NZTkMoaW5vZGUp IChfX0lTX0ZMRyhpbm9kZSwgTVNfU1lOQ0hST05PVVMpIHx8ICgoaW5vZGUpLT5pX2ZsYWdzICYg U19TWU5DKSkKI2RlZmluZSBJU19NQU5ETE9DSyhpbm9kZSkgX19JU19GTEcoaW5vZGUsIE1TX01B TkRMT0NLKQoKI2RlZmluZSBJU19RVU9UQUlOSVQoaW5vZGUpICgoaW5vZGUpLT5pX2ZsYWdzICYg U19RVU9UQSkKI2RlZmluZSBJU19BUFBFTkQoaW5vZGUpICgoaW5vZGUpLT5pX2ZsYWdzICYgU19B UFBFTkQpCiNkZWZpbmUgSVNfSU1NVVRBQkxFKGlub2RlKSAoKGlub2RlKS0+aV9mbGFncyAmIFNf SU1NVVRBQkxFKQojZGVmaW5lIElTX05PQVRJTUUoaW5vZGUpIChfX0lTX0ZMRyhpbm9kZSwgTVNf Tk9BVElNRSkgfHwgKChpbm9kZSktPmlfZmxhZ3MgJiBTX05PQVRJTUUpKQojZGVmaW5lIElTX05P RElSQVRJTUUoaW5vZGUpIF9fSVNfRkxHKGlub2RlLCBNU19OT0RJUkFUSU1FKQoKI2RlZmluZSBJ U19ERUFERElSKGlub2RlKSAoKGlub2RlKS0+aV9mbGFncyAmIFNfREVBRCkKCgoKCiNkZWZpbmUg QkxLUk9TRVQgX0lPKDB4MTIsOTMpCiNkZWZpbmUgQkxLUk9HRVQgX0lPKDB4MTIsOTQpCiNkZWZp bmUgQkxLUlJQQVJUIF9JTygweDEyLDk1KQojZGVmaW5lIEJMS0dFVFNJWkUgX0lPKDB4MTIsOTYp CiNkZWZpbmUgQkxLRkxTQlVGIF9JTygweDEyLDk3KQojZGVmaW5lIEJMS1JBU0VUIF9JTygweDEy LDk4KQojZGVmaW5lIEJMS1JBR0VUIF9JTygweDEyLDk5KQojZGVmaW5lIEJMS0ZSQVNFVCBfSU8o MHgxMiwxMDApCiNkZWZpbmUgQkxLRlJBR0VUIF9JTygweDEyLDEwMSkKI2RlZmluZSBCTEtTRUNU U0VUIF9JTygweDEyLDEwMikKI2RlZmluZSBCTEtTRUNUR0VUIF9JTygweDEyLDEwMykKI2RlZmlu ZSBCTEtTU1pHRVQgX0lPKDB4MTIsMTA0KQojIDE5MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9saW51eC9mcy5oIgojZGVmaW5lIEJNQVBfSU9DVEwgMQojZGVmaW5lIEZJQk1BUCBfSU8o MHgwMCwxKQojZGVmaW5lIEZJR0VUQlNaIF9JTygweDAwLDIpCgoKCiMgMSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9hc20vc2VtYXBob3JlLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NF TUFQSE9SRV9ICgoKCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC93 YWl0LmgiIDEKIyAxMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2VtYXBob3Jl LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3J3c2VtLmgiIDEK CgoKCgoKCiNkZWZpbmUgX0xJTlVYX1JXU0VNX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9saW5rYWdlLmgiIDEKIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9saW51eC9yd3NlbS5oIiAyCgojZGVmaW5lIFJXU0VNX0RFQlVHIDAKCgoKIyAxICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTcgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0uaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDE4ICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L3J3c2VtLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L2tlcm5lbC5oIiAxCiMgMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvcndzZW0uaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5 c3RlbS5oIiAxCiMgMjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0u aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2F0b21pYy5oIiAxCiMg MjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0uaCIgMgoKc3RydWN0 IHJ3X3NlbWFwaG9yZTsKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv cndzZW0tc3BpbmxvY2suaCIgMQojIDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvcndzZW0tc3BpbmxvY2suaCIKI2RlZmluZSBfTElOVVhfUldTRU1fU1BJTkxPQ0tfSAoKCgoK CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAxCiMg MTYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0tc3BpbmxvY2suaCIg MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMgMTcg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0tc3BpbmxvY2suaCIgMgoK CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDIx ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3J3c2VtLXNwaW5sb2NrLmgiIDIK CnN0cnVjdCByd3NlbV93YWl0ZXI7CiMgMzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvcndzZW0tc3BpbmxvY2suaCIKc3RydWN0IHJ3X3NlbWFwaG9yZSB7CiAgICAgICAgX19z MzIgYWN0aXZpdHk7CiAgICAgICAgc3BpbmxvY2tfdCB3YWl0X2xvY2s7CiAgICAgICAgc3RydWN0 IGxpc3RfaGVhZCB3YWl0X2xpc3Q7CgoKCn07CgoKCgoKCgojZGVmaW5lIF9fUldTRU1fREVCVUdf SU5JVAoKCiNkZWZpbmUgX19SV1NFTV9JTklUSUFMSVpFUihuYW1lKSB7IDAsIFNQSU5fTE9DS19V TkxPQ0tFRCwgTElTVF9IRUFEX0lOSVQoKG5hbWUpLndhaXRfbGlzdCkgX19SV1NFTV9ERUJVR19J TklUIH0KCgojZGVmaW5lIERFQ0xBUkVfUldTRU0obmFtZSkgc3RydWN0IHJ3X3NlbWFwaG9yZSBu YW1lID0gX19SV1NFTV9JTklUSUFMSVpFUihuYW1lKQoKCmV4dGVybiB2b2lkIGluaXRfcndzZW1f UnNtcF9hNTNkOTMxYShzdHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pOwpleHRlcm4gdm9pZCBfX2Rv d25fcmVhZF9Sc21wXzFjZjU3NzcyKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSk7CmV4dGVybiB2 b2lkIF9fZG93bl93cml0ZV9Sc21wX2M5YjFmOThhKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSk7 CmV4dGVybiB2b2lkIF9fdXBfcmVhZF9Sc21wX2U5NTJmYzI5KHN0cnVjdCByd19zZW1hcGhvcmUg KnNlbSk7CmV4dGVybiB2b2lkIF9fdXBfd3JpdGVfUnNtcF8zNWZkZDY3ZChzdHJ1Y3Qgcndfc2Vt YXBob3JlICpzZW0pOwojIDI2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3J3 c2VtLmgiIDIKIyAzNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9yd3NlbS5o IgojZGVmaW5lIHJ3c2VtdHJhY2UoU0VNLCBGTVQpCgoKCgoKCnN0YXRpYyBpbmxpbmUgdm9pZCBk b3duX3JlYWQoc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2VtKQp7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOwogICAgICAgIF9fZG93bl9yZWFkX1JzbXBfMWNmNTc3 NzIoc2VtKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQoK CgoKc3RhdGljIGlubGluZSB2b2lkIGRvd25fd3JpdGUoc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2Vt KQp7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKICAgICAg ICBfX2Rvd25fd3JpdGVfUnNtcF9jOWIxZjk4YShzZW0pOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsKfQoKCgoKc3RhdGljIGlubGluZSB2b2lkIHVwX3JlYWQo c3RydWN0IHJ3X3NlbWFwaG9yZSAqc2VtKQp7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDsKICAgICAgICBfX3VwX3JlYWRfUnNtcF9lOTUyZmMyOShzZW0pOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQoKCgoKc3RhdGljIGlubGlu ZSB2b2lkIHVwX3dyaXRlKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSkKewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwogICAgICAgIF9fdXBfd3JpdGVfUnNtcF8z NWZkZDY3ZChzZW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7 Cn0KIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2VtYXBob3JlLmgiIDIK CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYXRvbWljLmgiIDEKIyAxMyAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2VtYXBob3JlLmgiIDIKCnN0cnVjdCBz ZW1hcGhvcmUgewogICAgICAgIGF0b21pY190IGNvdW50OwogICAgICAgIGludCBzbGVlcGVyczsK ICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0OwoKCgp9OwoKCgoKI2RlZmluZSBfX1NFTV9E RUJVR19JTklUKG5hbWUpCgoKI2RlZmluZSBfX1NFTUFQSE9SRV9JTklUSUFMSVpFUihuYW1lLCBj b3VudCkgeyBBVE9NSUNfSU5JVChjb3VudCksIDAsIF9fV0FJVF9RVUVVRV9IRUFEX0lOSVRJQUxJ WkVSKChuYW1lKS53YWl0KSBfX1NFTV9ERUJVR19JTklUKG5hbWUpIH0KCgoKCgojZGVmaW5lIF9f TVVURVhfSU5JVElBTElaRVIobmFtZSkgX19TRU1BUEhPUkVfSU5JVElBTElaRVIobmFtZSwxKQoK I2RlZmluZSBfX0RFQ0xBUkVfU0VNQVBIT1JFX0dFTkVSSUMobmFtZSwgY291bnQpIHN0cnVjdCBz ZW1hcGhvcmUgbmFtZSA9IF9fU0VNQVBIT1JFX0lOSVRJQUxJWkVSKG5hbWUsIGNvdW50KQoKCiNk ZWZpbmUgREVDTEFSRV9NVVRFWChuYW1lKSBfX0RFQ0xBUkVfU0VNQVBIT1JFX0dFTkVSSUMobmFt ZSwgMSkKI2RlZmluZSBERUNMQVJFX01VVEVYX0xPQ0tFRChuYW1lKSBfX0RFQ0xBUkVfU0VNQVBI T1JFX0dFTkVSSUMobmFtZSwgMCkKCnN0YXRpYyBpbmxpbmUgdm9pZApzZW1hX2luaXQgKHN0cnVj dCBzZW1hcGhvcmUgKnNlbSwgaW50IHZhbCkKewogICAgICAgICpzZW0gPSAoc3RydWN0IHNlbWFw aG9yZSkgeyAoKGF0b21pY190KSB7ICh2YWwpIH0pLCAwLCB7IGxvY2s6IChzcGlubG9ja190KSB7 IDAgfSwgdGFza19saXN0OiB7ICYoKCpzZW0pLndhaXQpLnRhc2tfbGlzdCwgJigoKnNlbSkud2Fp dCkudGFza19saXN0IH0sIH0gfTsKfQoKc3RhdGljIGlubGluZSB2b2lkCmluaXRfTVVURVggKHN0 cnVjdCBzZW1hcGhvcmUgKnNlbSkKewogICAgICAgIHNlbWFfaW5pdChzZW0sIDEpOwp9CgpzdGF0 aWMgaW5saW5lIHZvaWQKaW5pdF9NVVRFWF9MT0NLRUQgKHN0cnVjdCBzZW1hcGhvcmUgKnNlbSkK ewogICAgICAgIHNlbWFfaW5pdChzZW0sIDApOwp9CgpleHRlcm4gdm9pZCBfX2Rvd24gKHN0cnVj dCBzZW1hcGhvcmUgKiBzZW0pOwpleHRlcm4gaW50IF9fZG93bl9pbnRlcnJ1cHRpYmxlIChzdHJ1 Y3Qgc2VtYXBob3JlICogc2VtKTsKZXh0ZXJuIGludCBfX2Rvd25fdHJ5bG9jayAoc3RydWN0IHNl bWFwaG9yZSAqIHNlbSk7CmV4dGVybiB2b2lkIF9fdXAgKHN0cnVjdCBzZW1hcGhvcmUgKiBzZW0p OwoKZXh0ZXJuIHNwaW5sb2NrX3Qgc2VtYXBob3JlX3dha2VfbG9jazsKCgoKCgpzdGF0aWMgaW5s aW5lIHZvaWQKZG93biAoc3RydWN0IHNlbWFwaG9yZSAqc2VtKQp7CgoKCiAgICAgICAgaWYgKCgo X19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCAoMSA9PSAxKSB8fCAoMSA9PSA0KSB8fCAoMSA9 PSA4KSB8fCAoMSA9PSAxNikgfHwgKDEgPT0gLTEpIHx8ICgxID09IC00KSB8fCAoMSA9PSAtOCkg fHwgKDEgPT0gLTE2KSkpID8gKHsgX191NjQgX3RtcDsgdm9sYXRpbGUgX190eXBlb2ZfXygqKCYo KCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSAqX3YgPSAoJigoJnNlbS0+Y291bnQpKS0+Y291bnRl cik7IHN3aXRjaCAoLSgxKSkgeyBjYXNlIC0xNjogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2Vt LT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIi ZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2 KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl dGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikg OiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2Fu ZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNl bS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIi ImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC04 KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl dGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC04KSA6 ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5k X2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtNDogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2Vt LT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIi ZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQp IDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0 Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDog Im1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRf YWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC0xOiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0t PmNvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJm ZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMSkg OiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRj aGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMSkgOiAi bWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9h ZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5j b3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0 Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMSkgOiAi bWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFk ZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1v cnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgp OyB9IH0pOyBicmVhazsgY2FzZSA0OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50 KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFk ZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1v cnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5y ZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIp OyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0g fSk7IGJyZWFrOyBjYXNlIDg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+ Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5y ZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIp OyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAl MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJy ZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsg YnJlYWs7IGNhc2UgMTY6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291 bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwg JTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDE2KSA6ICJtZW1vcnkiKTsg YnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9 WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDE2KSA6ICJtZW1vcnkiKTsgYnJl YWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBi cmVhazsgZGVmYXVsdDogX3RtcCA9IF9fYmFkX2luY3JlbWVudF9mb3JfaWE2NF9mZXRjaF9hbmRf YWRkKCk7IGJyZWFrOyB9IChfX3R5cGVvZl9fKComKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkg KF90bXAgKyAoLSgxKSkpOyB9KSA6IGlhNjRfYXRvbWljX3N1YigxLCAoJnNlbS0+Y291bnQpKSkg PCAwKQogICAgICAgICAgICAgICAgX19kb3duKHNlbSk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIGlu dApkb3duX2ludGVycnVwdGlibGUgKHN0cnVjdCBzZW1hcGhvcmUgKiBzZW0pCnsKICAgICAgICBp bnQgcmV0ID0gMDsKCgoKCiAgICAgICAgaWYgKCgoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYg KCAoMSA9PSAxKSB8fCAoMSA9PSA0KSB8fCAoMSA9PSA4KSB8fCAoMSA9PSAxNikgfHwgKDEgPT0g LTEpIHx8ICgxID09IC00KSB8fCAoMSA9PSAtOCkgfHwgKDEgPT0gLTE2KSkpID8gKHsgX191NjQg X3RtcDsgdm9sYXRpbGUgX190eXBlb2ZfXygqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSAq X3YgPSAoJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcik7IHN3aXRjaCAoLSgxKSkgeyBjYXNlIC0x NjogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2Fz ZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6 ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2Ug ODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAi PXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0 OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2Ug LTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNh c2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIg OiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC04KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2Ug ODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAi PXIiKF90bXApIDogInIiKF92KSwgImkiKC04KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6 IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAt NDogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2Fz ZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6 ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4 OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9 ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDog X19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC0x OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNl IDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDog Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6 IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1y IihfdG1wKSA6ICJyIihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBf X2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTog KHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0 OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9 ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9f YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihf dG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk X3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSA0OiAoeyBz d2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf dG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21f XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp IDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6 ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDg6ICh7IHN3aXRj aCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21f XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp IDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi ciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zv cl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTY6ICh7IHN3aXRjaCAo c2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBf X3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDog InIiKF92KSwgImkiKDE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3Zv bGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIi KF92KSwgImkiKDE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9y X2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgZGVmYXVsdDogX3RtcCA9IF9fYmFk X2luY3JlbWVudF9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IGJyZWFrOyB9IChfX3R5cGVvZl9f KComKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkgKF90bXAgKyAoLSgxKSkpOyB9KSA6IGlhNjRf YXRvbWljX3N1YigxLCAoJnNlbS0+Y291bnQpKSkgPCAwKQogICAgICAgICAgICAgICAgcmV0ID0g X19kb3duX2ludGVycnVwdGlibGUoc2VtKTsKICAgICAgICByZXR1cm4gcmV0Owp9CgpzdGF0aWMg aW5saW5lIGludApkb3duX3RyeWxvY2sgKHN0cnVjdCBzZW1hcGhvcmUgKnNlbSkKewogICAgICAg IGludCByZXQgPSAwOwoKCgoKICAgICAgICBpZiAoKChfX2J1aWx0aW5fY29uc3RhbnRfcCgxKSAm JiAoICgxID09IDEpIHx8ICgxID09IDQpIHx8ICgxID09IDgpIHx8ICgxID09IDE2KSB8fCAoMSA9 PSAtMSkgfHwgKDEgPT0gLTQpIHx8ICgxID09IC04KSB8fCAoMSA9PSAtMTYpKSkgPyAoeyBfX3U2 NCBfdG1wOyB2b2xhdGlsZSBfX3R5cGVvZl9fKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikp ICpfdiA9ICgmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKTsgc3dpdGNoICgtKDEpKSB7IGNhc2Ug LTE2OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBj YXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIi IDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2Fz ZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6 ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1 bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2Fz ZSAtODogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsg Y2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUy IiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgY2Fz ZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6 ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVs dDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNl IC00OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBj YXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIi IDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNl IDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDog Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0 OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2Ug LTE6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNh c2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIg OiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2Ug ODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAi PXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6 IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAx OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNl IDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDog Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODog X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi KF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19i YWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDQ6ICh7 IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi KF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt cCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgODogKHsgc3dp dGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt cCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18g X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6 ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVf Zm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxNjogKHsgc3dpdGNo IChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9f IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg OiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi ciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9m b3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBkZWZhdWx0OiBfdG1wID0gX19i YWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgYnJlYWs7IH0gKF9fdHlwZW9m X18oKiYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSAoX3RtcCArICgtKDEpKSk7IH0pIDogaWE2 NF9hdG9taWNfc3ViKDEsICgmc2VtLT5jb3VudCkpKSA8IDApCiAgICAgICAgICAgICAgICByZXQg PSBfX2Rvd25fdHJ5bG9jayhzZW0pOwogICAgICAgIHJldHVybiByZXQ7Cn0KCnN0YXRpYyBpbmxp bmUgdm9pZAp1cCAoc3RydWN0IHNlbWFwaG9yZSAqIHNlbSkKewoKCgogICAgICAgIGlmICgoKF9f YnVpbHRpbl9jb25zdGFudF9wKDEpICYmICggKDEgPT0gMSkgfHwgKDEgPT0gNCkgfHwgKDEgPT0g OCkgfHwgKDEgPT0gMTYpIHx8ICgxID09IC0xKSB8fCAoMSA9PSAtNCkgfHwgKDEgPT0gLTgpIHx8 ICgxID09IC0xNikpKSA/ICh7IF9fdTY0IF90bXA7IHZvbGF0aWxlIF9fdHlwZW9mX18oKigmKCgm c2VtLT5jb3VudCkpLT5jb3VudGVyKSkgKl92ID0gKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIp OyBzd2l0Y2ggKDEpIHsgY2FzZSAtMTY6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291 bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNo YWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAi bWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFk ZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMTYpIDogIm1l bW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRk KCk7IH0gfSk7IGJyZWFrOyBjYXNlIC04OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNv dW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRj aGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAi bWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFk ZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAibWVt b3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQo KTsgfSB9KTsgYnJlYWs7IGNhc2UgLTQ6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291 bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNo YWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC00KSA6ICJt ZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRk OC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC00KSA6ICJtZW1v cnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgp OyB9IH0pOyBicmVhazsgY2FzZSAtMTogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3Vu dCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hh ZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTEpIDogIm1l bW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4 LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTEpIDogIm1lbW9y eSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7 IH0gfSk7IGJyZWFrOyBjYXNlIDE6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQp KS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRk NC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9y eSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJl bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMSkgOiAibWVtb3J5Iik7 IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9 KTsgYnJlYWs7IGNhc2UgNDogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5j b3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJl bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7 IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUw PVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJl YWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBi cmVhazsgY2FzZSA4OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50 ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUw PVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJl YWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUx XSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsg ZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFr OyBjYXNlIDE2OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIp KSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVsl MV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFr OyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0s JTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBk ZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7 IGRlZmF1bHQ6IF90bXAgPSBfX2JhZF9pbmNyZW1lbnRfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgp OyBicmVhazsgfSAoX190eXBlb2ZfXygqJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpIChfdG1w ICsgKDEpKTsgfSkgOiBpYTY0X2F0b21pY19hZGQoMSwgKCZzZW0tPmNvdW50KSkpIDw9IDApCiAg ICAgICAgICAgICAgICBfX3VwKHNlbSk7Cn0KIyAyMDAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt L2J5dGVvcmRlci5oIiAxCiMgMjAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4 L2ZzLmgiIDIKCmV4dGVybiB2b2lkIHVwZGF0ZV9hdGltZV9Sc21wXzkxY2ExYTcwIChzdHJ1Y3Qg aW5vZGUgKik7CiNkZWZpbmUgVVBEQVRFX0FUSU1FKGlub2RlKSB1cGRhdGVfYXRpbWUgKGlub2Rl KQoKZXh0ZXJuIHZvaWQgYnVmZmVyX2luaXQodW5zaWduZWQgbG9uZyk7CmV4dGVybiB2b2lkIGlu b2RlX2luaXQodW5zaWduZWQgbG9uZyk7CmV4dGVybiB2b2lkIG1udF9pbml0KHVuc2lnbmVkIGxv bmcpOwoKCmVudW0gYmhfc3RhdGVfYml0cyB7CiAgICAgICAgQkhfVXB0b2RhdGUsCiAgICAgICAg QkhfRGlydHksCiAgICAgICAgQkhfTG9jaywKICAgICAgICBCSF9SZXEsCiAgICAgICAgQkhfTWFw cGVkLAogICAgICAgIEJIX05ldywKICAgICAgICBCSF9Qcm90ZWN0ZWQsCgogICAgICAgIEJIX1By aXZhdGVTdGFydCwKCgp9OwojIDIzNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9mcy5oIgpzdHJ1Y3QgYnVmZmVyX2hlYWQgewoKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQg KmJfbmV4dDsKICAgICAgICB1bnNpZ25lZCBsb25nIGJfYmxvY2tucjsKICAgICAgICB1bnNpZ25l ZCBzaG9ydCBiX3NpemU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgYl9saXN0OwogICAgICAgIGtk ZXZfdCBiX2RldjsKCiAgICAgICAgYXRvbWljX3QgYl9jb3VudDsKICAgICAgICBrZGV2X3QgYl9y ZGV2OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYl9zdGF0ZTsKICAgICAgICB1bnNpZ25lZCBsb25n IGJfZmx1c2h0aW1lOwoKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJfbmV4dF9mcmVlOwog ICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqYl9wcmV2X2ZyZWU7CiAgICAgICAgc3RydWN0IGJ1 ZmZlcl9oZWFkICpiX3RoaXNfcGFnZTsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJfcmVx bmV4dDsKCiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICoqYl9wcHJldjsKICAgICAgICBjaGFy ICogYl9kYXRhOwogICAgICAgIHN0cnVjdCBwYWdlICpiX3BhZ2U7CiAgICAgICAgdm9pZCAoKmJf ZW5kX2lvKShzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLCBpbnQgdXB0b2RhdGUpOwogICAgICAgIHZv aWQgKmJfcHJpdmF0ZTsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBiX3JzZWN0b3I7CiAgICAgICAg d2FpdF9xdWV1ZV9oZWFkX3QgYl93YWl0OwoKICAgICAgICBzdHJ1Y3QgaW5vZGUgKiBiX2lub2Rl OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgYl9pbm9kZV9idWZmZXJzOwp9OwoKdHlwZWRlZiB2 b2lkIChiaF9lbmRfaW9fdCkoc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCwgaW50IHVwdG9kYXRlKTsK dm9pZCBpbml0X2J1ZmZlcl9Sc21wXzczMjM5OGUyKHN0cnVjdCBidWZmZXJfaGVhZCAqLCBiaF9l bmRfaW9fdCAqLCB2b2lkICopOwoKI2RlZmluZSBfX2J1ZmZlcl9zdGF0ZShiaCwgc3RhdGUpICgo KGJoKS0+Yl9zdGF0ZSAmICgxVUwgPDwgQkhfICMjIHN0YXRlKSkgIT0gMCkKCiNkZWZpbmUgYnVm ZmVyX3VwdG9kYXRlKGJoKSBfX2J1ZmZlcl9zdGF0ZShiaCxVcHRvZGF0ZSkKI2RlZmluZSBidWZm ZXJfZGlydHkoYmgpIF9fYnVmZmVyX3N0YXRlKGJoLERpcnR5KQojZGVmaW5lIGJ1ZmZlcl9sb2Nr ZWQoYmgpIF9fYnVmZmVyX3N0YXRlKGJoLExvY2spCiNkZWZpbmUgYnVmZmVyX3JlcShiaCkgX19i dWZmZXJfc3RhdGUoYmgsUmVxKQojZGVmaW5lIGJ1ZmZlcl9tYXBwZWQoYmgpIF9fYnVmZmVyX3N0 YXRlKGJoLE1hcHBlZCkKI2RlZmluZSBidWZmZXJfbmV3KGJoKSBfX2J1ZmZlcl9zdGF0ZShiaCxO ZXcpCiNkZWZpbmUgYnVmZmVyX3Byb3RlY3RlZChiaCkgX19idWZmZXJfc3RhdGUoYmgsUHJvdGVj dGVkKQoKI2RlZmluZSBiaF9vZmZzZXQoYmgpICgodW5zaWduZWQgbG9uZykoYmgpLT5iX2RhdGEg JiB+UEFHRV9NQVNLKQoKZXh0ZXJuIHZvaWQgc2V0X2JoX3BhZ2Uoc3RydWN0IGJ1ZmZlcl9oZWFk ICpiaCwgc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKCiNkZWZpbmUg dG91Y2hfYnVmZmVyKGJoKSBTZXRQYWdlUmVmZXJlbmNlZChiaC0+Yl9wYWdlKQoKCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaCIgMQoKI2RlZmluZSBf TElOVVhfUElQRV9GU19JX0gKCiNkZWZpbmUgUElQRUZTX01BR0lDIDB4NTA0OTUwNDUKc3RydWN0 IHBpcGVfaW5vZGVfaW5mbyB7CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdDsKICAgICAg ICBjaGFyICpiYXNlOwogICAgICAgIHVuc2lnbmVkIGludCBsZW47CiAgICAgICAgdW5zaWduZWQg aW50IHN0YXJ0OwogICAgICAgIHVuc2lnbmVkIGludCByZWFkZXJzOwogICAgICAgIHVuc2lnbmVk IGludCB3cml0ZXJzOwogICAgICAgIHVuc2lnbmVkIGludCB3YWl0aW5nX3JlYWRlcnM7CiAgICAg ICAgdW5zaWduZWQgaW50IHdhaXRpbmdfd3JpdGVyczsKICAgICAgICB1bnNpZ25lZCBpbnQgcl9j b3VudGVyOwogICAgICAgIHVuc2lnbmVkIGludCB3X2NvdW50ZXI7Cn07CgoKCiNkZWZpbmUgUElQ RV9TSVpFIFBBR0VfU0laRQoKI2RlZmluZSBQSVBFX1NFTShpbm9kZSkgKCYoaW5vZGUpLmlfc2Vt KQojZGVmaW5lIFBJUEVfV0FJVChpbm9kZSkgKCYoaW5vZGUpLmlfcGlwZS0+d2FpdCkKI2RlZmlu ZSBQSVBFX0JBU0UoaW5vZGUpICgoaW5vZGUpLmlfcGlwZS0+YmFzZSkKI2RlZmluZSBQSVBFX1NU QVJUKGlub2RlKSAoKGlub2RlKS5pX3BpcGUtPnN0YXJ0KQojZGVmaW5lIFBJUEVfTEVOKGlub2Rl KSAoKGlub2RlKS5pX3BpcGUtPmxlbikKI2RlZmluZSBQSVBFX1JFQURFUlMoaW5vZGUpICgoaW5v ZGUpLmlfcGlwZS0+cmVhZGVycykKI2RlZmluZSBQSVBFX1dSSVRFUlMoaW5vZGUpICgoaW5vZGUp LmlfcGlwZS0+d3JpdGVycykKI2RlZmluZSBQSVBFX1dBSVRJTkdfUkVBREVSUyhpbm9kZSkgKChp bm9kZSkuaV9waXBlLT53YWl0aW5nX3JlYWRlcnMpCiNkZWZpbmUgUElQRV9XQUlUSU5HX1dSSVRF UlMoaW5vZGUpICgoaW5vZGUpLmlfcGlwZS0+d2FpdGluZ193cml0ZXJzKQojZGVmaW5lIFBJUEVf UkNPVU5URVIoaW5vZGUpICgoaW5vZGUpLmlfcGlwZS0+cl9jb3VudGVyKQojZGVmaW5lIFBJUEVf V0NPVU5URVIoaW5vZGUpICgoaW5vZGUpLmlfcGlwZS0+d19jb3VudGVyKQoKI2RlZmluZSBQSVBF X0VNUFRZKGlub2RlKSAoUElQRV9MRU4oaW5vZGUpID09IDApCiNkZWZpbmUgUElQRV9GVUxMKGlu b2RlKSAoUElQRV9MRU4oaW5vZGUpID09IFBJUEVfU0laRSkKI2RlZmluZSBQSVBFX0ZSRUUoaW5v ZGUpIChQSVBFX1NJWkUgLSBQSVBFX0xFTihpbm9kZSkpCiNkZWZpbmUgUElQRV9FTkQoaW5vZGUp ICgoUElQRV9TVEFSVChpbm9kZSkgKyBQSVBFX0xFTihpbm9kZSkpICYgKFBJUEVfU0laRS0xKSkK I2RlZmluZSBQSVBFX01BWF9SQ0hVTksoaW5vZGUpIChQSVBFX1NJWkUgLSBQSVBFX1NUQVJUKGlu b2RlKSkKI2RlZmluZSBQSVBFX01BWF9XQ0hVTksoaW5vZGUpIChQSVBFX1NJWkUgLSBQSVBFX0VO RChpbm9kZSkpCgoKdm9pZCBwaXBlX3dhaXQoc3RydWN0IGlub2RlICogaW5vZGUpOwoKc3RydWN0 IGlub2RlKiBwaXBlX25ldyhzdHJ1Y3QgaW5vZGUqIGlub2RlKTsKIyAyODcgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgvbWluaXhfZnNfaS5oIiAxCgojZGVmaW5lIF9NSU5JWF9GU19JCgoKCgpz dHJ1Y3QgbWluaXhfaW5vZGVfaW5mbyB7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAg X191MTYgaTFfZGF0YVsxNl07CiAgICAgICAgICAgICAgICBfX3UzMiBpMl9kYXRhWzE2XTsKICAg ICAgICB9IHU7Cn07CiMgMjg4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Zz LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2V4dDJfZnNfaS5o IiAxCiMgMTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZXh0Ml9mc19pLmgi CiNkZWZpbmUgX0xJTlVYX0VYVDJfRlNfSQoKCgoKc3RydWN0IGV4dDJfaW5vZGVfaW5mbyB7CiAg ICAgICAgX191MzIgaV9kYXRhWzE1XTsKICAgICAgICBfX3UzMiBpX2ZsYWdzOwogICAgICAgIF9f dTMyIGlfZmFkZHI7CiAgICAgICAgX191OCBpX2ZyYWdfbm87CiAgICAgICAgX191OCBpX2ZyYWdf c2l6ZTsKICAgICAgICBfX3UxNiBpX29zeW5jOwogICAgICAgIF9fdTMyIGlfZmlsZV9hY2w7CiAg ICAgICAgX191MzIgaV9kaXJfYWNsOwogICAgICAgIF9fdTMyIGlfZHRpbWU7CiAgICAgICAgX191 MzIgaV9ibG9ja19ncm91cDsKICAgICAgICBfX3UzMiBpX25leHRfYWxsb2NfYmxvY2s7CiAgICAg ICAgX191MzIgaV9uZXh0X2FsbG9jX2dvYWw7CiAgICAgICAgX191MzIgaV9wcmVhbGxvY19ibG9j azsKICAgICAgICBfX3UzMiBpX3ByZWFsbG9jX2NvdW50OwogICAgICAgIGludCBpX25ld19pbm9k ZToxOwp9OwojIDI4OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAy CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9ocGZzX2ZzX2kuaCIgMQoK I2RlZmluZSBfSFBGU19GU19JCgpzdHJ1Y3QgaHBmc19pbm9kZV9pbmZvIHsKICAgICAgICB1bnNp Z25lZCBsb25nIG1tdV9wcml2YXRlOwogICAgICAgIGlub190IGlfcGFyZW50X2RpcjsKICAgICAg ICB1bnNpZ25lZCBpX2RubzsKICAgICAgICB1bnNpZ25lZCBpX2Rwb3M7CiAgICAgICAgdW5zaWdu ZWQgaV9kc3ViZG5vOwogICAgICAgIHVuc2lnbmVkIGlfZmlsZV9zZWM7CiAgICAgICAgdW5zaWdu ZWQgaV9kaXNrX3NlYzsKICAgICAgICB1bnNpZ25lZCBpX25fc2VjczsKICAgICAgICB1bnNpZ25l ZCBpX2VhX3NpemU7CiAgICAgICAgdW5zaWduZWQgaV9jb252IDogMjsKICAgICAgICB1bnNpZ25l ZCBpX2VhX21vZGUgOiAxOwogICAgICAgIHVuc2lnbmVkIGlfZWFfdWlkIDogMTsKICAgICAgICB1 bnNpZ25lZCBpX2VhX2dpZCA6IDE7CiAgICAgICAgdW5zaWduZWQgaV9kaXJ0eSA6IDE7CiAgICAg ICAgc3RydWN0IHNlbWFwaG9yZSBpX3NlbTsKICAgICAgICBsb2ZmX3QgKippX3JkZGlyX29mZjsK fTsKCiNkZWZpbmUgaV9ocGZzX2RubyB1LmhwZnNfaS5pX2RubwojZGVmaW5lIGlfaHBmc19wYXJl bnRfZGlyIHUuaHBmc19pLmlfcGFyZW50X2RpcgojZGVmaW5lIGlfaHBmc19uX3NlY3MgdS5ocGZz X2kuaV9uX3NlY3MKI2RlZmluZSBpX2hwZnNfZmlsZV9zZWMgdS5ocGZzX2kuaV9maWxlX3NlYwoj ZGVmaW5lIGlfaHBmc19kaXNrX3NlYyB1LmhwZnNfaS5pX2Rpc2tfc2VjCiNkZWZpbmUgaV9ocGZz X2Rwb3MgdS5ocGZzX2kuaV9kcG9zCiNkZWZpbmUgaV9ocGZzX2RzdWJkbm8gdS5ocGZzX2kuaV9k c3ViZG5vCiNkZWZpbmUgaV9ocGZzX2VhX3NpemUgdS5ocGZzX2kuaV9lYV9zaXplCiNkZWZpbmUg aV9ocGZzX2NvbnYgdS5ocGZzX2kuaV9jb252CiNkZWZpbmUgaV9ocGZzX2VhX21vZGUgdS5ocGZz X2kuaV9lYV9tb2RlCiNkZWZpbmUgaV9ocGZzX2VhX3VpZCB1LmhwZnNfaS5pX2VhX3VpZAojZGVm aW5lIGlfaHBmc19lYV9naWQgdS5ocGZzX2kuaV9lYV9naWQKCgojZGVmaW5lIGlfaHBmc19zZW0g dS5ocGZzX2kuaV9zZW0KI2RlZmluZSBpX2hwZnNfcmRkaXJfb2ZmIHUuaHBmc19pLmlfcmRkaXJf b2ZmCiNkZWZpbmUgaV9ocGZzX2RpcnR5IHUuaHBmc19pLmlfZGlydHkKIyAyOTAgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbnRmc19mc19pLmgiIDEKCiNkZWZpbmUgX0xJTlVYX05URlNfRlNf SV9ICgoKc3RydWN0IG50ZnNfYXR0cmlidXRlOwpzdHJ1Y3QgbnRmc19zYl9pbmZvOwoKCgojZGVm aW5lIE5URlNfSU5URUdSQUxfVFlQRVMKdHlwZWRlZiB1OCBudGZzX3U4Owp0eXBlZGVmIHUxNiBu dGZzX3UxNjsKdHlwZWRlZiB1MzIgbnRmc191MzI7CnR5cGVkZWYgdTY0IG50ZnNfdTY0Owp0eXBl ZGVmIHM4IG50ZnNfczg7CnR5cGVkZWYgczE2IG50ZnNfczE2Owp0eXBlZGVmIHMzMiBudGZzX3Mz MjsKdHlwZWRlZiBzNjQgbnRmc19zNjQ7CgoKCiNkZWZpbmUgTlRNT0RFX1QKdHlwZWRlZiBfX2tl cm5lbF9tb2RlX3QgbnRtb2RlX3Q7CgoKI2RlZmluZSBOVEZTX1VJRF9UCnR5cGVkZWYgdWlkX3Qg bnRmc191aWRfdDsKCgojZGVmaW5lIE5URlNfR0lEX1QKdHlwZWRlZiBnaWRfdCBudGZzX2dpZF90 OwoKCiNkZWZpbmUgTlRGU19TSVpFX1QKdHlwZWRlZiBfX2tlcm5lbF9zaXplX3QgbnRmc19zaXpl X3Q7CgoKI2RlZmluZSBOVEZTX1RJTUVfVAp0eXBlZGVmIF9fa2VybmVsX3RpbWVfdCBudGZzX3Rp bWVfdDsKCgoKCiNkZWZpbmUgTlRGU19XQ0hBUl9UCnR5cGVkZWYgdTE2IG50ZnNfd2NoYXJfdDsK CgoKI2RlZmluZSBOVEZTX09GRlNFVF9UCnR5cGVkZWYgczY0IG50ZnNfb2Zmc2V0X3Q7CgoKCiNk ZWZpbmUgTlRGU19USU1FNjRfVAp0eXBlZGVmIHU2NCBudGZzX3RpbWU2NF90OwojIDY2ICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L250ZnNfZnNfaS5oIgojZGVmaW5lIE5URlNf Q0xVU1RFUl9UCnR5cGVkZWYgczMyIG50ZnNfY2x1c3Rlcl90OwoKCgpzdHJ1Y3QgbnRmc19pbm9k ZV9pbmZvewogICAgICAgIHVuc2lnbmVkIGxvbmcgbW11X3ByaXZhdGU7CiAgICAgICAgc3RydWN0 IG50ZnNfc2JfaW5mbyAqdm9sOwogICAgICAgIHVuc2lnbmVkIGxvbmcgaV9udW1iZXI7CiAgICAg ICAgX191MTYgc2VxdWVuY2VfbnVtYmVyOwogICAgICAgIHVuc2lnbmVkIGNoYXIgKmF0dHI7CiAg ICAgICAgaW50IGF0dHJfY291bnQ7CiAgICAgICAgc3RydWN0IG50ZnNfYXR0cmlidXRlICphdHRy czsKICAgICAgICBpbnQgcmVjb3JkX2NvdW50OwogICAgICAgIGludCAqcmVjb3JkczsKCiAgICAg ICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAg ICAgaW50IHJlY29yZHNpemU7CiAgICAgICAgICAgICAgICAgICAgICAgIGludCBjbHVzdGVyc19w ZXJfcmVjb3JkOwogICAgICAgICAgICAgICAgfSBpbmRleDsKICAgICAgICB9IHU7Cn07CiMgMjkx ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21zZG9zX2ZzX2kuaCIgMQoKI2RlZmluZSBfTVNE T1NfRlNfSQoKCgoKCnN0cnVjdCBtc2Rvc19pbm9kZV9pbmZvIHsKICAgICAgICB1bnNpZ25lZCBs b25nIG1tdV9wcml2YXRlOwogICAgICAgIGludCBpX3N0YXJ0OwogICAgICAgIGludCBpX2xvZ3N0 YXJ0OwogICAgICAgIGludCBpX2F0dHJzOwogICAgICAgIGludCBpX2N0aW1lX21zOwogICAgICAg IGludCBpX2xvY2F0aW9uOwogICAgICAgIHN0cnVjdCBpbm9kZSAqaV9mYXRfaW5vZGU7CiAgICAg ICAgc3RydWN0IGxpc3RfaGVhZCBpX2ZhdF9oYXNoOwp9OwojIDI5MiAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9saW51eC91bXNkb3NfZnNfaS5oIiAxCgojZGVmaW5lIFVNU0RPU19GU19JX0gKCgoKCgoj IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbXNkb3NfZnNfaS5oIiAxCiMg OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91bXNkb3NfZnNfaS5oIiAyCiMg MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaCIgMQojIDEw ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Vtc2Rvc19mc19pLmgiIDIKIyAz OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91bXNkb3NfZnNfaS5oIgpzdHJ1 Y3QgZGlyX2xvY2tpbmdfaW5mbyB7CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3QgcDsKICAgICAg ICBzaG9ydCBpbnQgbG9va2luZzsKICAgICAgICBzaG9ydCBpbnQgY3JlYXRpbmc7CgoKCiAgICAg ICAgbG9uZyBwaWQ7Cgp9OwoKc3RydWN0IHVtc2Rvc19pbm9kZV9pbmZvIHsKICAgICAgICBzdHJ1 Y3QgbXNkb3NfaW5vZGVfaW5mbyBtc2Rvc19pbmZvOwogICAgICAgIHN0cnVjdCBkaXJfbG9ja2lu Z19pbmZvIGRpcl9pbmZvOwogICAgICAgIGludCBpX3BhdGNoZWQ7CiAgICAgICAgaW50IGlfaXNf aGxpbms7CiAgICAgICAgb2ZmX3QgcG9zOwp9OwojIDI5MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC9pc29fZnNfaS5oIiAxCgojZGVmaW5lIF9JU09fRlNfSQoKCgoKc3RydWN0IGlzb19pbm9k ZV9pbmZvIHsKICAgICAgICB1bnNpZ25lZCBpbnQgaV9maXJzdF9leHRlbnQ7CiAgICAgICAgdW5z aWduZWQgY2hhciBpX2ZpbGVfZm9ybWF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgaV9uZXh0X3Nl Y3Rpb25faW5vOwogICAgICAgIG9mZl90IGlfc2VjdGlvbl9zaXplOwp9OwojIDI5NCAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9uZnNfZnNfaS5oIiAxCgojZGVmaW5lIF9ORlNfRlNfSQoKIyAx ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90eXBlcy5oIiAxCiMgNSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9uZnNfZnNfaS5oIiAyCiMgMSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9saXN0LmgiIDEKIyA2ICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L25mc19mc19pLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L25mcy5oIiAxCgoKCgoKCgojZGVmaW5lIF9MSU5VWF9ORlNfSAoKIyAx ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N1bnJwYy9tc2dfcHJvdC5oIiAx CgoKCgoKCgojZGVmaW5lIF9MSU5VWF9TVU5SUENfTVNHUFJPVF9IXwoKCgojZGVmaW5lIFJQQ19W RVJTSU9OIDIKCmVudW0gcnBjX2F1dGhfZmxhdm9yIHsKICAgICAgICBSUENfQVVUSF9OVUxMID0g MCwKICAgICAgICBSUENfQVVUSF9VTklYID0gMSwKICAgICAgICBSUENfQVVUSF9TSE9SVCA9IDIs CiAgICAgICAgUlBDX0FVVEhfREVTID0gMywKICAgICAgICBSUENfQVVUSF9LUkIgPSA0LAp9OwoK ZW51bSBycGNfbXNnX3R5cGUgewogICAgICAgIFJQQ19DQUxMID0gMCwKICAgICAgICBSUENfUkVQ TFkgPSAxCn07CgplbnVtIHJwY19yZXBseV9zdGF0IHsKICAgICAgICBSUENfTVNHX0FDQ0VQVEVE ID0gMCwKICAgICAgICBSUENfTVNHX0RFTklFRCA9IDEKfTsKCmVudW0gcnBjX2FjY2VwdF9zdGF0 IHsKICAgICAgICBSUENfU1VDQ0VTUyA9IDAsCiAgICAgICAgUlBDX1BST0dfVU5BVkFJTCA9IDEs CiAgICAgICAgUlBDX1BST0dfTUlTTUFUQ0ggPSAyLAogICAgICAgIFJQQ19QUk9DX1VOQVZBSUwg PSAzLAogICAgICAgIFJQQ19HQVJCQUdFX0FSR1MgPSA0LAogICAgICAgIFJQQ19TWVNURU1fRVJS ID0gNQp9OwoKZW51bSBycGNfcmVqZWN0X3N0YXQgewogICAgICAgIFJQQ19NSVNNQVRDSCA9IDAs CiAgICAgICAgUlBDX0FVVEhfRVJST1IgPSAxCn07CgplbnVtIHJwY19hdXRoX3N0YXQgewogICAg ICAgIFJQQ19BVVRIX09LID0gMCwKICAgICAgICBSUENfQVVUSF9CQURDUkVEID0gMSwKICAgICAg ICBSUENfQVVUSF9SRUpFQ1RFRENSRUQgPSAyLAogICAgICAgIFJQQ19BVVRIX0JBRFZFUkYgPSAz LAogICAgICAgIFJQQ19BVVRIX1JFSkVDVEVEVkVSRiA9IDQsCiAgICAgICAgUlBDX0FVVEhfVE9P V0VBSyA9IDUKfTsKCiNkZWZpbmUgUlBDX1BNQVBfUFJPR1JBTSAxMDAwMDAKI2RlZmluZSBSUENf UE1BUF9WRVJTSU9OIDIKI2RlZmluZSBSUENfUE1BUF9QT1JUIDExMQoKI2RlZmluZSBSUENfTUFY TkVUTkFNRUxFTiAyNTYKIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9u ZnMuaCIgMgoKI2RlZmluZSBORlNfUFJPR1JBTSAxMDAwMDMKI2RlZmluZSBORlNfUE9SVCAyMDQ5 CiNkZWZpbmUgTkZTX01BWERBVEEgODE5MgojZGVmaW5lIE5GU19NQVhQQVRITEVOIDEwMjQKI2Rl ZmluZSBORlNfTUFYTkFNTEVOIDI1NQojZGVmaW5lIE5GU19NQVhHUk9VUFMgMTYKI2RlZmluZSBO RlNfRkhTSVpFIDMyCiNkZWZpbmUgTkZTX0NPT0tJRVNJWkUgNAojZGVmaW5lIE5GU19GSUZPX0RF ViAoLTEpCiNkZWZpbmUgTkZTTU9ERV9GTVQgMDE3MDAwMAojZGVmaW5lIE5GU01PREVfRElSIDAw NDAwMDAKI2RlZmluZSBORlNNT0RFX0NIUiAwMDIwMDAwCiNkZWZpbmUgTkZTTU9ERV9CTEsgMDA2 MDAwMAojZGVmaW5lIE5GU01PREVfUkVHIDAxMDAwMDAKI2RlZmluZSBORlNNT0RFX0xOSyAwMTIw MDAwCiNkZWZpbmUgTkZTTU9ERV9TT0NLIDAxNDAwMDAKI2RlZmluZSBORlNNT0RFX0ZJRk8gMDAx MDAwMAoKI2RlZmluZSBORlNfTU5UX1BST0dSQU0gMTAwMDA1CiNkZWZpbmUgTkZTX01OVF9QT1JU IDYyNwojIDQxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25mcy5oIgogZW51 bSBuZnNfc3RhdCB7CiAgICAgICAgTkZTX09LID0gMCwKICAgICAgICBORlNFUlJfUEVSTSA9IDEs CiAgICAgICAgTkZTRVJSX05PRU5UID0gMiwKICAgICAgICBORlNFUlJfSU8gPSA1LAogICAgICAg IE5GU0VSUl9OWElPID0gNiwKICAgICAgICBORlNFUlJfRUFHQUlOID0gMTEsCiAgICAgICAgTkZT RVJSX0FDQ0VTID0gMTMsCiAgICAgICAgTkZTRVJSX0VYSVNUID0gMTcsCiAgICAgICAgTkZTRVJS X1hERVYgPSAxOCwKICAgICAgICBORlNFUlJfTk9ERVYgPSAxOSwKICAgICAgICBORlNFUlJfTk9U RElSID0gMjAsCiAgICAgICAgTkZTRVJSX0lTRElSID0gMjEsCiAgICAgICAgTkZTRVJSX0lOVkFM ID0gMjIsCiAgICAgICAgTkZTRVJSX0ZCSUcgPSAyNywKICAgICAgICBORlNFUlJfTk9TUEMgPSAy OCwKICAgICAgICBORlNFUlJfUk9GUyA9IDMwLAogICAgICAgIE5GU0VSUl9NTElOSyA9IDMxLAog ICAgICAgIE5GU0VSUl9PUE5PVFNVUFAgPSA0NSwKICAgICAgICBORlNFUlJfTkFNRVRPT0xPTkcg PSA2MywKICAgICAgICBORlNFUlJfTk9URU1QVFkgPSA2NiwKICAgICAgICBORlNFUlJfRFFVT1Qg PSA2OSwKICAgICAgICBORlNFUlJfU1RBTEUgPSA3MCwKICAgICAgICBORlNFUlJfUkVNT1RFID0g NzEsCiAgICAgICAgTkZTRVJSX1dGTFVTSCA9IDk5LAogICAgICAgIE5GU0VSUl9CQURIQU5ETEUg PSAxMDAwMSwKICAgICAgICBORlNFUlJfTk9UX1NZTkMgPSAxMDAwMiwKICAgICAgICBORlNFUlJf QkFEX0NPT0tJRSA9IDEwMDAzLAogICAgICAgIE5GU0VSUl9OT1RTVVBQID0gMTAwMDQsCiAgICAg ICAgTkZTRVJSX1RPT1NNQUxMID0gMTAwMDUsCiAgICAgICAgTkZTRVJSX1NFUlZFUkZBVUxUID0g MTAwMDYsCiAgICAgICAgTkZTRVJSX0JBRFRZUEUgPSAxMDAwNywKICAgICAgICBORlNFUlJfSlVL RUJPWCA9IDEwMDA4CiB9OwoKCgplbnVtIG5mc19mdHlwZSB7CiAgICAgICAgTkZOT04gPSAwLAog ICAgICAgIE5GUkVHID0gMSwKICAgICAgICBORkRJUiA9IDIsCiAgICAgICAgTkZCTEsgPSAzLAog ICAgICAgIE5GQ0hSID0gNCwKICAgICAgICBORkxOSyA9IDUsCiAgICAgICAgTkZTT0NLID0gNiwK ICAgICAgICBORkJBRCA9IDcsCiAgICAgICAgTkZGSUZPID0gOAp9OwoKCgoKCiNkZWZpbmUgTkZT X01BWEZIU0laRSA2NApzdHJ1Y3QgbmZzX2ZoIHsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzaXpl OwogICAgICAgIHVuc2lnbmVkIGNoYXIgZGF0YVs2NF07Cn07CgoKCgoKI2RlZmluZSBORlNfT0ZG U0VUX01BWCAoKF9fczY0KSgofihfX3U2NCkwKSA+PiAxKSkKCgplbnVtIG5mczNfc3RhYmxlX2hv dyB7CiAgICAgICAgTkZTX1VOU1RBQkxFID0gMCwKICAgICAgICBORlNfREFUQV9TWU5DID0gMSwK ICAgICAgICBORlNfRklMRV9TWU5DID0gMgp9OwojIDcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvbGludXgvbmZzX2ZzX2kuaCIgMgoKCgoKc3RydWN0IG5mc19pbm9kZV9pbmZvIHsKCgoK ICAgICAgICBfX3U2NCBmc2lkOwogICAgICAgIF9fdTY0IGZpbGVpZDsKCgoKCiAgICAgICAgc3Ry dWN0IG5mc19maCBmaDsKCgoKCiAgICAgICAgdW5zaWduZWQgc2hvcnQgZmxhZ3M7CiMgNDUgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbmZzX2ZzX2kuaCIKICAgICAgICB1bnNp Z25lZCBsb25nIHJlYWRfY2FjaGVfamlmZmllczsKICAgICAgICBfX3U2NCByZWFkX2NhY2hlX2N0 aW1lOwogICAgICAgIF9fdTY0IHJlYWRfY2FjaGVfbXRpbWU7CiAgICAgICAgX191NjQgcmVhZF9j YWNoZV9hdGltZTsKICAgICAgICBfX3U2NCByZWFkX2NhY2hlX2lzaXplOwogICAgICAgIHVuc2ln bmVkIGxvbmcgYXR0cnRpbWVvOwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXR0cnRpbWVvX3RpbWVz dGFtcDsKCgoKCgogICAgICAgIF9fdTMyIGNvb2tpZXZlcmZbMl07CgoKCgogICAgICAgIHN0cnVj dCBsaXN0X2hlYWQgcmVhZDsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGRpcnR5OwogICAgICAg IHN0cnVjdCBsaXN0X2hlYWQgY29tbWl0OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgd3JpdGVi YWNrOwoKICAgICAgICB1bnNpZ25lZCBpbnQgbnJlYWQsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbmRpcnR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5jb21taXQs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnBhZ2VzOwoKCiAgICAgICAgc3RydWN0 IGlub2RlICpoYXNoX25leHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmhhc2hf cHJldjsKICAgICAgICB1bnNpZ25lZCBsb25nIG5leHRzY2FuOwp9OwoKCgoKI2RlZmluZSBORlNf SU5PX1NUQUxFIDB4MDAwMQojZGVmaW5lIE5GU19JTk9fQURWSVNFX1JEUExVUyAweDAwMDIKI2Rl ZmluZSBORlNfSU5PX1JFVkFMSURBVElORyAweDAwMDQKI2RlZmluZSBORlNfSVNfU05BUFNIT1Qg MHgwMDEwCiNkZWZpbmUgTkZTX0lOT19GTFVTSCAweDAwMjAKCgoKCnN0cnVjdCBuZnNfbG9ja19p bmZvIHsKICAgICAgICB1MzIgc3RhdGU7CiAgICAgICAgdTMyIGZsYWdzOwogICAgICAgIHN0cnVj dCBubG1faG9zdCAqaG9zdDsKfTsKCgoKCiNkZWZpbmUgTkZTX0xDS19HUkFOVEVEIDB4MDAwMQoj IDI5NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zeXN2X2ZzX2kuaCIgMQoKI2RlZmluZSBf U1lTVl9GU19JCgoKCgpzdHJ1Y3Qgc3lzdl9pbm9kZV9pbmZvIHsKICAgICAgICB1MzIgaV9kYXRh WzEwKzErMSsxXTsKCgoKCn07CiMgMjk2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2FmZnNf ZnNfaS5oIiAxCgojZGVmaW5lIF9BRkZTX0ZTX0kKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9hLm91dC5oIiAxCgojZGVmaW5lIF9fQV9PVVRfR05VX0hfXwoKI2RlZmlu ZSBfX0dOVV9FWEVDX01BQ1JPU19fCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9hc20vYS5vdXQuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfQV9PVVRfSAojIDE0ICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9hLm91dC5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2FzbS9hLm91dC5oIiAyCgpzdHJ1Y3QgZXhlYyB7CiAgICAgICAgdW5zaWduZWQgbG9u ZyBhX2luZm87CiAgICAgICAgdW5zaWduZWQgbG9uZyBhX3RleHQ7CiAgICAgICAgdW5zaWduZWQg bG9uZyBhX2RhdGE7CiAgICAgICAgdW5zaWduZWQgbG9uZyBhX2JzczsKICAgICAgICB1bnNpZ25l ZCBsb25nIGFfZW50cnk7Cn07CgojZGVmaW5lIE5fVFhUQUREUih4KSAwCiNkZWZpbmUgTl9EQVRB RERSKHgpIDAKI2RlZmluZSBOX0JTU0FERFIoeCkgMAojZGVmaW5lIE5fRFJTSVpFKHgpIDAKI2Rl ZmluZSBOX1RSU0laRSh4KSAwCiNkZWZpbmUgTl9TWU1TSVpFKHgpIDAKI2RlZmluZSBOX1RYVE9G Rih4KSAwCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiIDEK IyAzNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYS5vdXQuaCIgMgojZGVmaW5l IFNUQUNLX1RPUCAoMHg4MDAwMDAwMDAwMDAwMDAwVUwgKyAoMVVMIDw8ICg0KlBBR0VfU0hJRlQg LSAxMikpIC0gUEFHRV9TSVpFKQojZGVmaW5lIElBNjRfUkJTX0JPVCAoU1RBQ0tfVE9QIC0gMHg4 MDAwMDAwMEwgKyBQQUdFX1NJWkUpCiMgOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC9hLm91dC5oIiAyCgoKCgplbnVtIG1hY2hpbmVfdHlwZSB7CgoKCiAgTV9PTERTVU4yID0g MCwKCgoKCiAgTV82ODAxMCA9IDEsCgoKCgogIE1fNjgwMjAgPSAyLAoKCgoKICBNX1NQQVJDID0g MywKCgogIE1fMzg2ID0gMTAwLAogIE1fTUlQUzEgPSAxNTEsCiAgTV9NSVBTMiA9IDE1Mgp9OwoK CiNkZWZpbmUgTl9NQUdJQyhleGVjKSAoKGV4ZWMpLmFfaW5mbyAmIDB4ZmZmZikKCiNkZWZpbmUg Tl9NQUNIVFlQRShleGVjKSAoKGVudW0gbWFjaGluZV90eXBlKSgoKGV4ZWMpLmFfaW5mbyA+PiAx NikgJiAweGZmKSkKI2RlZmluZSBOX0ZMQUdTKGV4ZWMpICgoKGV4ZWMpLmFfaW5mbyA+PiAyNCkg JiAweGZmKQojZGVmaW5lIE5fU0VUX0lORk8oZXhlYywgbWFnaWMsIHR5cGUsIGZsYWdzKSAoKGV4 ZWMpLmFfaW5mbyA9ICgobWFnaWMpICYgMHhmZmZmKSB8ICgoKGludCkodHlwZSkgJiAweGZmKSA8 PCAxNikgfCAoKChmbGFncykgJiAweGZmKSA8PCAyNCkpCgoKCiNkZWZpbmUgTl9TRVRfTUFHSUMo ZXhlYywgbWFnaWMpICgoZXhlYykuYV9pbmZvID0gKCgoZXhlYykuYV9pbmZvICYgMHhmZmZmMDAw MCkgfCAoKG1hZ2ljKSAmIDB4ZmZmZikpKQoKCiNkZWZpbmUgTl9TRVRfTUFDSFRZUEUoZXhlYywg bWFjaHR5cGUpICgoZXhlYykuYV9pbmZvID0gKChleGVjKS5hX2luZm8mMHhmZjAwZmZmZikgfCAo KCgoaW50KShtYWNodHlwZSkpJjB4ZmYpIDw8IDE2KSkKCgoKI2RlZmluZSBOX1NFVF9GTEFHUyhl eGVjLCBmbGFncykgKChleGVjKS5hX2luZm8gPSAoKGV4ZWMpLmFfaW5mbyYweDAwZmZmZmZmKSB8 ICgoKGZsYWdzKSAmIDB4ZmYpIDw8IDI0KSkKCgoKCiNkZWZpbmUgT01BR0lDIDA0MDcKCiNkZWZp bmUgTk1BR0lDIDA0MTAKCiNkZWZpbmUgWk1BR0lDIDA0MTMKCgojZGVmaW5lIFFNQUdJQyAwMzE0 CgoKI2RlZmluZSBDTUFHSUMgMDQyMQoKCiNkZWZpbmUgTl9CQURNQUcoeCkgKE5fTUFHSUMoeCkg IT0gT01BR0lDICYmIE5fTUFHSUMoeCkgIT0gTk1BR0lDICYmIE5fTUFHSUMoeCkgIT0gWk1BR0lD ICYmIE5fTUFHSUMoeCkgIT0gUU1BR0lDKQoKCgoKCiNkZWZpbmUgX05fSERST0ZGKHgpICgxMDI0 IC0gc2l6ZW9mIChzdHJ1Y3QgZXhlYykpCiMgODkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvYS5vdXQuaCIKI2RlZmluZSBOX0RBVE9GRih4KSAoTl9UWFRPRkYoeCkgKyAoeCku YV90ZXh0KQoKCgojZGVmaW5lIE5fVFJFTE9GRih4KSAoTl9EQVRPRkYoeCkgKyAoeCkuYV9kYXRh KQoKCgojZGVmaW5lIE5fRFJFTE9GRih4KSAoTl9UUkVMT0ZGKHgpICsgTl9UUlNJWkUoeCkpCgoK CiNkZWZpbmUgTl9TWU1PRkYoeCkgKE5fRFJFTE9GRih4KSArIE5fRFJTSVpFKHgpKQoKCgojZGVm aW5lIE5fU1RST0ZGKHgpIChOX1NZTU9GRih4KSArIE5fU1lNU0laRSh4KSkKIyAxMzEgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYS5vdXQuaCIKIyAxICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiIDEKIyAxMzIgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgvYS5vdXQuaCIgMgoKCgoKI2RlZmluZSBTRUdNRU5UX1NJWkUgUEFHRV9T SVpFCgoKCgojZGVmaW5lIF9OX1NFR01FTlRfUk9VTkQoeCkgKCgoeCkgKyBTRUdNRU5UX1NJWkUg LSAxKSAmIH4oU0VHTUVOVF9TSVpFIC0gMSkpCgojZGVmaW5lIF9OX1RYVEVOREFERFIoeCkgKE5f VFhUQUREUih4KSsoeCkuYV90ZXh0KQojIDE1NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9hLm91dC5oIgpzdHJ1Y3Qgbmxpc3QgewogIHVuaW9uIHsKICAgIGNoYXIgKm5fbmFt ZTsKICAgIHN0cnVjdCBubGlzdCAqbl9uZXh0OwogICAgbG9uZyBuX3N0cng7CiAgfSBuX3VuOwog IHVuc2lnbmVkIGNoYXIgbl90eXBlOwogIGNoYXIgbl9vdGhlcjsKICBzaG9ydCBuX2Rlc2M7CiAg dW5zaWduZWQgbG9uZyBuX3ZhbHVlOwp9OwoKCgojZGVmaW5lIE5fVU5ERiAwCgoKI2RlZmluZSBO X0FCUyAyCgoKI2RlZmluZSBOX1RFWFQgNAoKCiNkZWZpbmUgTl9EQVRBIDYKCgojZGVmaW5lIE5f QlNTIDgKCgojZGVmaW5lIE5fRk4gMTUKCgoKI2RlZmluZSBOX0VYVCAxCgoKI2RlZmluZSBOX1RZ UEUgMDM2CgoKI2RlZmluZSBOX1NUQUIgMDM0MAojIDIwNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9hLm91dC5oIgojZGVmaW5lIE5fSU5EUiAweGEKIyAyMjEgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYS5vdXQuaCIKI2RlZmluZSBOX1NFVEEgMHgxNAoj ZGVmaW5lIE5fU0VUVCAweDE2CiNkZWZpbmUgTl9TRVREIDB4MTgKI2RlZmluZSBOX1NFVEIgMHgx QQoKCiNkZWZpbmUgTl9TRVRWIDB4MUMKCgoKCgoKCnN0cnVjdCByZWxvY2F0aW9uX2luZm8KewoK ICBpbnQgcl9hZGRyZXNzOwoKICB1bnNpZ25lZCBpbnQgcl9zeW1ib2xudW06MjQ7CgoKCiAgdW5z aWduZWQgaW50IHJfcGNyZWw6MTsKCgogIHVuc2lnbmVkIGludCByX2xlbmd0aDoyOwoKCgoKCgog IHVuc2lnbmVkIGludCByX2V4dGVybjoxOwoKCgoKCgoKICB1bnNpZ25lZCBpbnQgcl9wYWQ6NDsK Cn07CiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hZmZzX2ZzX2kuaCIg MgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lLmgiIDEKCiNk ZWZpbmUgX0xJTlVYX1RJTUVfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2Fz bS9wYXJhbS5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9QQVJBTV9ICiMgMTEgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhcmFtLmgiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2FzbS9wYXJhbS5oIiAyCiMgMjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt L3BhcmFtLmgiCiNkZWZpbmUgSFogMTAyNAoKCiNkZWZpbmUgRVhFQ19QQUdFU0laRSA2NTUzNgoK CiNkZWZpbmUgTkdST1VQUyAzMgoKCgojZGVmaW5lIE5PR1JPVVAgKC0xKQoKCiNkZWZpbmUgTUFY SE9TVE5BTUVMRU4gNjQKCgojZGVmaW5lIENMT0NLU19QRVJfU0VDIEhaCiMgNSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyA2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L3RpbWUuaCIgMgoKCiNkZWZpbmUgX1NUUlVDVF9USU1FU1BFQwpzdHJ1Y3Qg dGltZXNwZWMgewogICAgICAgIHRpbWVfdCB0dl9zZWM7CiAgICAgICAgbG9uZyB0dl9uc2VjOwp9 OwojIDI5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3RpbWUuaCIKI2RlZmlu ZSBNQVhfSklGRllfT0ZGU0VUICgofjBVTCA+PiAxKS0xKQoKc3RhdGljIF9faW5saW5lX18gdW5z aWduZWQgbG9uZwp0aW1lc3BlY190b19qaWZmaWVzKHN0cnVjdCB0aW1lc3BlYyAqdmFsdWUpCnsK ICAgICAgICB1bnNpZ25lZCBsb25nIHNlYyA9IHZhbHVlLT50dl9zZWM7CiAgICAgICAgbG9uZyBu c2VjID0gdmFsdWUtPnR2X25zZWM7CgogICAgICAgIGlmIChzZWMgPj0gKCgofjBVTCA+PiAxKS0x KSAvIDEwMjQpKQogICAgICAgICAgICAgICAgcmV0dXJuICgofjBVTCA+PiAxKS0xKTsKICAgICAg ICBuc2VjICs9IDEwMDAwMDAwMDBMIC8gMTAyNCAtIDE7CiAgICAgICAgbnNlYyAvPSAxMDAwMDAw MDAwTCAvIDEwMjQ7CiAgICAgICAgcmV0dXJuIDEwMjQgKiBzZWMgKyBuc2VjOwp9CgpzdGF0aWMg X19pbmxpbmVfXyB2b2lkCmppZmZpZXNfdG9fdGltZXNwZWModW5zaWduZWQgbG9uZyBqaWZmaWVz X1JzbXBfMGRhMDJkNjcsIHN0cnVjdCB0aW1lc3BlYyAqdmFsdWUpCnsKICAgICAgICB2YWx1ZS0+ dHZfbnNlYyA9IChqaWZmaWVzX1JzbXBfMGRhMDJkNjcgJSAxMDI0KSAqICgxMDAwMDAwMDAwTCAv IDEwMjQpOwogICAgICAgIHZhbHVlLT50dl9zZWMgPSBqaWZmaWVzX1JzbXBfMGRhMDJkNjcgLyAx MDI0Owp9CiMgNjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGltZS5oIgpz dGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKbWt0aW1lICh1bnNpZ25lZCBpbnQgeWVhciwgdW5z aWduZWQgaW50IG1vbiwKICAgICAgICB1bnNpZ25lZCBpbnQgZGF5LCB1bnNpZ25lZCBpbnQgaG91 ciwKICAgICAgICB1bnNpZ25lZCBpbnQgbWluLCB1bnNpZ25lZCBpbnQgc2VjKQp7CiAgICAgICAg aWYgKDAgPj0gKGludCkgKG1vbiAtPSAyKSkgewogICAgICAgICAgICAgICAgbW9uICs9IDEyOwog ICAgICAgICAgICAgICAgeWVhciAtPSAxOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICgoKAog ICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpICh5ZWFyLzQgLSB5ZWFyLzEwMCArIHllYXIv NDAwICsgMzY3Km1vbi8xMiArIGRheSkgKwogICAgICAgICAgICAgICAgICAgICAgICB5ZWFyKjM2 NSAtIDcxOTQ5OQogICAgICAgICAgICApKjI0ICsgaG91cgogICAgICAgICAgKSo2MCArIG1pbgog ICAgICAgICkqNjAgKyBzZWM7Cn0KCgoKCnN0cnVjdCB0aW1ldmFsIHsKICAgICAgICB0aW1lX3Qg dHZfc2VjOwogICAgICAgIHN1c2Vjb25kc190IHR2X3VzZWM7Cn07CgpzdHJ1Y3QgdGltZXpvbmUg ewogICAgICAgIGludCB0el9taW51dGVzd2VzdDsKICAgICAgICBpbnQgdHpfZHN0dGltZTsKfTsK CiNkZWZpbmUgTkZEQklUUyBfX05GREJJVFMKCgpleHRlcm4gdm9pZCBkb19nZXR0aW1lb2ZkYXlf UnNtcF83MjI3MGUzNShzdHJ1Y3QgdGltZXZhbCAqdHYpOwpleHRlcm4gdm9pZCBkb19zZXR0aW1l b2ZkYXlfUnNtcF8xOWQ3YjFmZihzdHJ1Y3QgdGltZXZhbCAqdHYpOwpleHRlcm4gdm9pZCBnZXRf ZmFzdF90aW1lX1JzbXBfNjA3NDMwMjIoc3RydWN0IHRpbWV2YWwgKnR2KTsKZXh0ZXJuIHZvaWQg KCpkb19nZXRfZmFzdF90aW1lKShzdHJ1Y3QgdGltZXZhbCAqKTsKCgojZGVmaW5lIEZEX1NFVFNJ WkUgX19GRF9TRVRTSVpFCiNkZWZpbmUgRkRfU0VUKGZkLCBmZHNldHApIF9fRkRfU0VUKGZkLGZk c2V0cCkKI2RlZmluZSBGRF9DTFIoZmQsIGZkc2V0cCkgX19GRF9DTFIoZmQsZmRzZXRwKQojZGVm aW5lIEZEX0lTU0VUKGZkLCBmZHNldHApIF9fRkRfSVNTRVQoZmQsZmRzZXRwKQojZGVmaW5lIEZE X1pFUk8oZmRzZXRwKSBfX0ZEX1pFUk8oZmRzZXRwKQoKCgoKCiNkZWZpbmUgSVRJTUVSX1JFQUwg MAojZGVmaW5lIElUSU1FUl9WSVJUVUFMIDEKI2RlZmluZSBJVElNRVJfUFJPRiAyCgpzdHJ1Y3Qg aXRpbWVyc3BlYyB7CiAgICAgICAgc3RydWN0IHRpbWVzcGVjIGl0X2ludGVydmFsOwogICAgICAg IHN0cnVjdCB0aW1lc3BlYyBpdF92YWx1ZTsKfTsKCnN0cnVjdCBpdGltZXJ2YWwgewogICAgICAg IHN0cnVjdCB0aW1ldmFsIGl0X2ludGVydmFsOwogICAgICAgIHN0cnVjdCB0aW1ldmFsIGl0X3Zh bHVlOwp9OwojIDggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYWZmc19mc19p LmgiIDIKCiNkZWZpbmUgQUZGU19DQUNIRV9TSVpFIFBBR0VfU0laRQoKCiNkZWZpbmUgQUZGU19N QVhfUFJFQUxMT0MgMzIKI2RlZmluZSBBRkZTX0xDX1NJWkUgKEFGRlNfQ0FDSEVfU0laRS9zaXpl b2YodTMyKS8yKQojZGVmaW5lIEFGRlNfQUNfU0laRSAoQUZGU19DQUNIRV9TSVpFL3NpemVvZihz dHJ1Y3QgYWZmc19leHRfa2V5KS8yKQojZGVmaW5lIEFGRlNfQUNfTUFTSyAoQUZGU19BQ19TSVpF LTEpCgpzdHJ1Y3QgYWZmc19leHRfa2V5IHsKICAgICAgICB1MzIgZXh0OwogICAgICAgIHUzMiBr ZXk7Cn07CgoKCgpzdHJ1Y3QgYWZmc19pbm9kZV9pbmZvIHsKICAgICAgICB1MzIgaV9vcGVuY250 OwogICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgaV9saW5rX2xvY2s7CiAgICAgICAgc3RydWN0IHNl bWFwaG9yZSBpX2V4dF9sb2NrOwojZGVmaW5lIGlfaGFzaF9sb2NrIGlfZXh0X2xvY2sKIHUzMiBp X2Jsa2NudDsKICAgICAgICB1MzIgaV9leHRjbnQ7CiAgICAgICAgdTMyICppX2xjOwogICAgICAg IHUzMiBpX2xjX3NpemU7CiAgICAgICAgdTMyIGlfbGNfc2hpZnQ7CiAgICAgICAgdTMyIGlfbGNf bWFzazsKICAgICAgICBzdHJ1Y3QgYWZmc19leHRfa2V5ICppX2FjOwogICAgICAgIHUzMiBpX2V4 dF9sYXN0OwogICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqaV9leHRfYmg7CiAgICAgICAgdW5z aWduZWQgbG9uZyBtbXVfcHJpdmF0ZTsKICAgICAgICB1MzIgaV9wcm90ZWN0OwogICAgICAgIHUz MiBpX2xhc3RhbGxvYzsKICAgICAgICBpbnQgaV9wYV9jbnQ7CiMgNTEgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvYWZmc19mc19pLmgiCn07CgoKI2RlZmluZSBBRkZTX0lOT0RF ICgmaW5vZGUtPnUuYWZmc19pKQojZGVmaW5lIEFGRlNfRElSICgmZGlyLT51LmFmZnNfaSkKIyAy OTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWZzX2ZzX2kuaCIgMQojIDE0ICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Vmc19mc19pLmgiCiNkZWZpbmUgX0xJTlVYX1VG U19GU19JX0gKCnN0cnVjdCB1ZnNfaW5vZGVfaW5mbyB7CiAgICAgICAgdW5pb24gewogICAgICAg ICAgICAgICAgX191MzIgaV9kYXRhWzE1XTsKICAgICAgICAgICAgICAgIF9fdTggaV9zeW1saW5r WzQqMTVdOwogICAgICAgIH0gaV91MTsKICAgICAgICBfX3U2NCBpX3NpemU7CiAgICAgICAgX191 MzIgaV9mbGFnczsKICAgICAgICBfX3UzMiBpX2dlbjsKICAgICAgICBfX3UzMiBpX3NoYWRvdzsK ICAgICAgICBfX3UzMiBpX3VudXNlZDE7CiAgICAgICAgX191MzIgaV91bnVzZWQyOwogICAgICAg IF9fdTMyIGlfb2VmdGZsYWc7CiAgICAgICAgX191MTYgaV9vc3luYzsKICAgICAgICBfX3UzMiBp X2xhc3RmcmFnOwp9OwojIDI5OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9m cy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9lZnNfZnNfaS5o IiAxCiMgMTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZWZzX2ZzX2kuaCIK I2RlZmluZSBfX0VGU19GU19JX0hfXwoKdHlwZWRlZiBpbnQzMl90IGVmc19ibG9ja190Owp0eXBl ZGVmIHVpbnQzMl90IGVmc19pbm9fdDsKCiNkZWZpbmUgRUZTX0RJUkVDVEVYVEVOVFMgMTIKCgoK CnR5cGVkZWYgdW5pb24gZXh0ZW50X3UgewogICAgICAgIHVuc2lnbmVkIGNoYXIgcmF3WzhdOwog ICAgICAgIHN0cnVjdCBleHRlbnRfcyB7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZXhf bWFnaWM6ODsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBleF9ibjoyNDsKICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBleF9sZW5ndGg6ODsKICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBleF9vZmZzZXQ6MjQ7CiAgICAgICAgfSBjb29rZWQ7Cn0gZWZzX2V4dGVudDsKCnR5cGVk ZWYgc3RydWN0IGVkZXZzIHsKICAgICAgICBzaG9ydCBvZGV2OwogICAgICAgIHVuc2lnbmVkIGlu dCBuZGV2Owp9IGVmc19kZXZzOwoKCgoKCnN0cnVjdCBlZnNfZGlub2RlIHsKICAgICAgICB1X3No b3J0IGRpX21vZGU7CiAgICAgICAgc2hvcnQgZGlfbmxpbms7CiAgICAgICAgdV9zaG9ydCBkaV91 aWQ7CiAgICAgICAgdV9zaG9ydCBkaV9naWQ7CiAgICAgICAgaW50MzJfdCBkaV9zaXplOwogICAg ICAgIGludDMyX3QgZGlfYXRpbWU7CiAgICAgICAgaW50MzJfdCBkaV9tdGltZTsKICAgICAgICBp bnQzMl90IGRpX2N0aW1lOwogICAgICAgIHVpbnQzMl90IGRpX2dlbjsKICAgICAgICBzaG9ydCBk aV9udW1leHRlbnRzOwogICAgICAgIHVfY2hhciBkaV92ZXJzaW9uOwogICAgICAgIHVfY2hhciBk aV9zcGFyZTsKICAgICAgICB1bmlvbiBkaV9hZGRyIHsKICAgICAgICAgICAgICAgIGVmc19leHRl bnQgZGlfZXh0ZW50c1sxMl07CiAgICAgICAgICAgICAgICBlZnNfZGV2cyBkaV9kZXY7CiAgICAg ICAgfSBkaV91Owp9OwoKCnN0cnVjdCBlZnNfaW5vZGVfaW5mbyB7CiAgICAgICAgaW50IG51bWV4 dGVudHM7CiAgICAgICAgaW50IGxhc3RleHRlbnQ7CgogICAgICAgIGVmc19leHRlbnQgZXh0ZW50 c1sxMl07Cn07CiMgMjk5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgi IDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvZGFfZnNfaS5oIiAx CiMgOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb2RhX2ZzX2kuaCIKI2Rl ZmluZSBfTElOVVhfQ09EQV9GU19JCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L3R5cGVzLmgiIDEKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9jb2RhX2ZzX2kuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv bGlzdC5oIiAxCiMgMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29kYV9m c19pLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvZGEuaCIg MQojIDYwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvZGEuaCIKI2RlZmlu ZSBfQ09EQV9IRUFERVJfCiMgNzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv Y29kYS5oIgojZGVmaW5lIENPREFfTUFYU1lNTElOS1MgMTAKIyAxMDIgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvY29kYS5oIgojZGVmaW5lIGNkZXZfdCB1X3F1YWRfdAoKCgoK Cgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1X3F1YWRfdDsKIyAxMzYgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29kYS5oIgojZGVmaW5lIENPREFfTUFYTkFNTEVOIDI1 NQojZGVmaW5lIENPREFfTUFYUEFUSExFTiAxMDI0CiNkZWZpbmUgQ09EQV9NQVhTWU1MSU5LIDEw CgoKCgojZGVmaW5lIENfT19SRUFEIDB4MDAxCiNkZWZpbmUgQ19PX1dSSVRFIDB4MDAyCiNkZWZp bmUgQ19PX1RSVU5DIDB4MDEwCiNkZWZpbmUgQ19PX0VYQ0wgMHgxMDAKI2RlZmluZSBDX09fQ1JF QVQgMHgyMDAKCgojZGVmaW5lIENfTV9SRUFEIDAwNDAwCiNkZWZpbmUgQ19NX1dSSVRFIDAwMjAw CgoKI2RlZmluZSBDX0FfQ19PSyA4CiNkZWZpbmUgQ19BX1JfT0sgNAojZGVmaW5lIENfQV9XX09L IDIKI2RlZmluZSBDX0FfWF9PSyAxCiNkZWZpbmUgQ19BX0ZfT0sgMAoKCgoKI2RlZmluZSBfVkVO VVNfRElSRU5UX1RfIDEKc3RydWN0IHZlbnVzX2RpcmVudCB7CiAgICAgICAgdW5zaWduZWQgbG9u ZyBkX2ZpbGVubzsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBkX3JlY2xlbjsKICAgICAgICB1bnNp Z25lZCBjaGFyIGRfdHlwZTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGRfbmFtbGVuOwogICAgICAg IGNoYXIgZF9uYW1lWzI1NSArIDFdOwp9OwoKI2RlZmluZSBESVJTSVooZHApICgoc2l6ZW9mIChz dHJ1Y3QgdmVudXNfZGlyZW50KSAtIChDT0RBX01BWE5BTUxFTisxKSkgKyAoKChkcCktPmRfbmFt bGVuKzEgKyAzKSAmfiAzKSkKCgoKCgojZGVmaW5lIENEVF9VTktOT1dOIDAKI2RlZmluZSBDRFRf RklGTyAxCiNkZWZpbmUgQ0RUX0NIUiAyCiNkZWZpbmUgQ0RUX0RJUiA0CiNkZWZpbmUgQ0RUX0JM SyA2CiNkZWZpbmUgQ0RUX1JFRyA4CiNkZWZpbmUgQ0RUX0xOSyAxMAojZGVmaW5lIENEVF9TT0NL IDEyCiNkZWZpbmUgQ0RUX1dIVCAxNAoKCgoKI2RlZmluZSBJRlRPQ0RUKG1vZGUpICgoKG1vZGUp ICYgMDE3MDAwMCkgPj4gMTIpCiNkZWZpbmUgQ0RUVE9JRihkaXJ0eXBlKSAoKGRpcnR5cGUpIDw8 IDEyKQoKCgoKI2RlZmluZSBfRklEX1RfIDEKdHlwZWRlZiB1X2xvbmcgVm9sdW1lSWQ7CnR5cGVk ZWYgdV9sb25nIFZub2RlSWQ7CnR5cGVkZWYgdV9sb25nIFVuaXF1ZV90Owp0eXBlZGVmIHVfbG9u ZyBGaWxlVmVyc2lvbjsKCgoKI2RlZmluZSBfVklDRUZJRF9UXyAxCnR5cGVkZWYgc3RydWN0IFZp Y2VGaWQgewogICAgVm9sdW1lSWQgVm9sdW1lOwogICAgVm5vZGVJZCBWbm9kZTsKICAgIFVuaXF1 ZV90IFVuaXF1ZTsKfSBWaWNlRmlkOwoKCgoKc3RhdGljIF9faW5saW5lX18gaW5vX3QgY29kYV9m Mmkoc3RydWN0IFZpY2VGaWQgKmZpZCkKewogICAgICAgIGlmICggISBmaWQgKQogICAgICAgICAg ICAgICAgcmV0dXJuIDA7CiAgICAgICAgaWYgKGZpZC0+Vm5vZGUgPT0gMHhmZmZmZmZmZSB8fCBm aWQtPlZub2RlID09IDB4ZmZmZmZmZmYpCiAgICAgICAgICAgICAgICByZXR1cm4gKChmaWQtPlZv bHVtZSA8PCAyMCkgfCAoZmlkLT5VbmlxdWUgJiAweGZmZmZmKSk7CiAgICAgICAgZWxzZQogICAg ICAgICAgICAgICAgcmV0dXJuIChmaWQtPlVuaXF1ZSArIChmaWQtPlZub2RlPDwxMCkgKyAoZmlk LT5Wb2x1bWU8PDIwKSk7Cn0KIyAyMzIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvY29kYS5oIgojZGVmaW5lIF9WVUlEX1RfCnR5cGVkZWYgdV9pbnQzMl90IHZ1aWRfdDsKdHlw ZWRlZiB1X2ludDMyX3QgdmdpZF90OwoKCgojZGVmaW5lIF9DT0RBQ1JFRF9UXwpzdHJ1Y3QgY29k YV9jcmVkIHsKICAgIHZ1aWRfdCBjcl91aWQsIGNyX2V1aWQsIGNyX3N1aWQsIGNyX2ZzdWlkOwog ICAgdmdpZF90IGNyX2dyb3VwaWQsIGNyX2VnaWQsIGNyX3NnaWQsIGNyX2ZzZ2lkOwp9OwoKCgoj ZGVmaW5lIF9WRU5VU19WQVRUUl9UXwoKCgplbnVtIGNvZGFfdnR5cGUgeyBDX1ZOT04sIENfVlJF RywgQ19WRElSLCBDX1ZCTEssIENfVkNIUiwgQ19WTE5LLCBDX1ZTT0NLLCBDX1ZGSUZPLCBDX1ZC QUQgfTsKCnN0cnVjdCBjb2RhX3ZhdHRyIHsKICAgICAgICBsb25nIHZhX3R5cGU7CiAgICAgICAg dV9zaG9ydCB2YV9tb2RlOwogICAgICAgIHNob3J0IHZhX25saW5rOwogICAgICAgIHZ1aWRfdCB2 YV91aWQ7CiAgICAgICAgdmdpZF90IHZhX2dpZDsKICAgICAgICBsb25nIHZhX2ZpbGVpZDsKICAg ICAgICB1X3F1YWRfdCB2YV9zaXplOwogICAgICAgIGxvbmcgdmFfYmxvY2tzaXplOwogICAgICAg IHN0cnVjdCB0aW1lc3BlYyB2YV9hdGltZTsKICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgdmFfbXRp bWU7CiAgICAgICAgc3RydWN0IHRpbWVzcGVjIHZhX2N0aW1lOwogICAgICAgIHVfbG9uZyB2YV9n ZW47CiAgICAgICAgdV9sb25nIHZhX2ZsYWdzOwogICAgICAgIHVfcXVhZF90IHZhX3JkZXY7CiAg ICAgICAgdV9xdWFkX3QgdmFfYnl0ZXM7CiAgICAgICAgdV9xdWFkX3QgdmFfZmlsZXJldjsKfTsK CgoKCnN0cnVjdCBjb2RhX3N0YXRmcyB7CiAgICBpbnQzMl90IGZfYmxvY2tzOwogICAgaW50MzJf dCBmX2JmcmVlOwogICAgaW50MzJfdCBmX2JhdmFpbDsKICAgIGludDMyX3QgZl9maWxlczsKICAg IGludDMyX3QgZl9mZnJlZTsKfTsKCgoKCgojZGVmaW5lIENPREFfUk9PVCAyCiNkZWZpbmUgQ09E QV9PUEVOX0JZX0ZEIDMKI2RlZmluZSBDT0RBX09QRU4gNAojZGVmaW5lIENPREFfQ0xPU0UgNQoj ZGVmaW5lIENPREFfSU9DVEwgNgojZGVmaW5lIENPREFfR0VUQVRUUiA3CiNkZWZpbmUgQ09EQV9T RVRBVFRSIDgKI2RlZmluZSBDT0RBX0FDQ0VTUyA5CiNkZWZpbmUgQ09EQV9MT09LVVAgMTAKI2Rl ZmluZSBDT0RBX0NSRUFURSAxMQojZGVmaW5lIENPREFfUkVNT1ZFIDEyCiNkZWZpbmUgQ09EQV9M SU5LIDEzCiNkZWZpbmUgQ09EQV9SRU5BTUUgMTQKI2RlZmluZSBDT0RBX01LRElSIDE1CiNkZWZp bmUgQ09EQV9STURJUiAxNgojZGVmaW5lIENPREFfU1lNTElOSyAxOAojZGVmaW5lIENPREFfUkVB RExJTksgMTkKI2RlZmluZSBDT0RBX0ZTWU5DIDIwCiNkZWZpbmUgQ09EQV9WR0VUIDIyCiNkZWZp bmUgQ09EQV9TSUdOQUwgMjMKI2RlZmluZSBDT0RBX1JFUExBQ0UgMjQKI2RlZmluZSBDT0RBX0ZM VVNIIDI1CiNkZWZpbmUgQ09EQV9QVVJHRVVTRVIgMjYKI2RlZmluZSBDT0RBX1pBUEZJTEUgMjcK I2RlZmluZSBDT0RBX1pBUERJUiAyOAojZGVmaW5lIENPREFfUFVSR0VGSUQgMzAKI2RlZmluZSBD T0RBX09QRU5fQllfUEFUSCAzMQojZGVmaW5lIENPREFfUkVTT0xWRSAzMgojZGVmaW5lIENPREFf UkVJTlRFR1JBVEUgMzMKI2RlZmluZSBDT0RBX1NUQVRGUyAzNAojZGVmaW5lIENPREFfU1RPUkUg MzUKI2RlZmluZSBDT0RBX1JFTEVBU0UgMzYKI2RlZmluZSBDT0RBX05DQUxMUyAzNwoKI2RlZmlu ZSBET1dOQ0FMTChvcGNvZGUpIChvcGNvZGUgPj0gQ09EQV9SRVBMQUNFICYmIG9wY29kZSA8PSBD T0RBX1BVUkdFRklEKQoKI2RlZmluZSBWQ19NQVhEQVRBU0laRSA4MTkyCiNkZWZpbmUgVkNfTUFY TVNHU0laRSBzaXplb2YodW5pb24gaW5wdXRBcmdzKStzaXplb2YodW5pb24gb3V0cHV0QXJncykg KyBWQ19NQVhEQVRBU0laRQoKCiNkZWZpbmUgQ0lPQ19LRVJORUxfVkVSU0lPTiBfSU9XUignYycs IDEwLCBzaXplb2YgKGludCkpCgoKCgoKI2RlZmluZSBDT0RBX0tFUk5FTF9WRVJTSU9OIDIKCgoK CnN0cnVjdCBjb2RhX2luX2hkciB7CiAgICB1bnNpZ25lZCBsb25nIG9wY29kZTsKICAgIHVuc2ln bmVkIGxvbmcgdW5pcXVlOwogICAgdV9zaG9ydCBwaWQ7CiAgICB1X3Nob3J0IHBnaWQ7CiAgICB1 X3Nob3J0IHNpZDsKICAgIHN0cnVjdCBjb2RhX2NyZWQgY3JlZDsKfTsKCgpzdHJ1Y3QgY29kYV9v dXRfaGRyIHsKICAgIHVuc2lnbmVkIGxvbmcgb3Bjb2RlOwogICAgdW5zaWduZWQgbG9uZyB1bmlx dWU7CiAgICB1bnNpZ25lZCBsb25nIHJlc3VsdDsKfTsKCgpzdHJ1Y3QgY29kYV9yb290X291dCB7 CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgVmljZUZpZCBWRmlkOwp9OwoKc3RydWN0 IGNvZGFfcm9vdF9pbiB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaW47Cn07CgoKc3RydWN0IGNv ZGFfb3Blbl9pbiB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7 CiAgICBpbnQgZmxhZ3M7Cn07CgpzdHJ1Y3QgY29kYV9vcGVuX291dCB7CiAgICBzdHJ1Y3QgY29k YV9vdXRfaGRyIG9oOwogICAgdV9xdWFkX3QgZGV2OwogICAgaW5vX3QgaW5vZGU7Cn07CgoKCnN0 cnVjdCBjb2RhX3N0b3JlX2luIHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VG aWQgVkZpZDsKICAgIGludCBmbGFnczsKfTsKCnN0cnVjdCBjb2RhX3N0b3JlX291dCB7CiAgICBz dHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9yZWxlYXNlX2luIHsKICAg IHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKICAgIGludCBmbGFnczsK fTsKCnN0cnVjdCBjb2RhX3JlbGVhc2Vfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb3V0 Owp9OwoKCnN0cnVjdCBjb2RhX2Nsb3NlX2luIHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBpaDsK ICAgIFZpY2VGaWQgVkZpZDsKICAgIGludCBmbGFnczsKfTsKCnN0cnVjdCBjb2RhX2Nsb3NlX291 dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9pb2N0bF9p biB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7CiAgICBpbnQg Y21kOwogICAgaW50IGxlbjsKICAgIGludCByd2ZsYWc7CiAgICBjaGFyICpkYXRhOwp9OwoKc3Ry dWN0IGNvZGFfaW9jdGxfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBpbnQg bGVuOwogICAgY2FkZHJfdCBkYXRhOwp9OwoKCgpzdHJ1Y3QgY29kYV9nZXRhdHRyX2luIHsKICAg IHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKfTsKCnN0cnVjdCBjb2Rh X2dldGF0dHJfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBzdHJ1Y3QgY29k YV92YXR0ciBhdHRyOwp9OwoKCgpzdHJ1Y3QgY29kYV9zZXRhdHRyX2luIHsKICAgIHN0cnVjdCBj b2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKICAgIHN0cnVjdCBjb2RhX3ZhdHRyIGF0 dHI7Cn07CgpzdHJ1Y3QgY29kYV9zZXRhdHRyX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRy IG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9hY2Nlc3NfaW4gewogICAgc3RydWN0IGNvZGFfaW5faGRy IGloOwogICAgVmljZUZpZCBWRmlkOwogICAgaW50IGZsYWdzOwp9OwoKc3RydWN0IGNvZGFfYWNj ZXNzX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgoKI2RlZmluZSBDTFVf Q0FTRV9TRU5TSVRJVkUgMHgwMQojZGVmaW5lIENMVV9DQVNFX0lOU0VOU0lUSVZFIDB4MDIKCgpz dHJ1Y3QgY29kYV9sb29rdXBfaW4gewogICAgc3RydWN0IGNvZGFfaW5faGRyIGloOwogICAgVmlj ZUZpZCBWRmlkOwogICAgaW50IG5hbWU7CiAgICBpbnQgZmxhZ3M7Cn07CgpzdHJ1Y3QgY29kYV9s b29rdXBfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBWaWNlRmlkIFZGaWQ7 CiAgICBpbnQgdnR5cGU7Cn07CgoKCnN0cnVjdCBjb2RhX2NyZWF0ZV9pbiB7CiAgICBzdHJ1Y3Qg Y29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7CiAgICBzdHJ1Y3QgY29kYV92YXR0ciBh dHRyOwogICAgaW50IGV4Y2w7CiAgICBpbnQgbW9kZTsKICAgIGludCBuYW1lOwp9OwoKc3RydWN0 IGNvZGFfY3JlYXRlX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgVmljZUZp ZCBWRmlkOwogICAgc3RydWN0IGNvZGFfdmF0dHIgYXR0cjsKfTsKCgoKc3RydWN0IGNvZGFfcmVt b3ZlX2luIHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKICAg IGludCBuYW1lOwp9OwoKc3RydWN0IGNvZGFfcmVtb3ZlX291dCB7CiAgICBzdHJ1Y3QgY29kYV9v dXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9saW5rX2luIHsKICAgIHN0cnVjdCBjb2RhX2lu X2hkciBpaDsKICAgIFZpY2VGaWQgc291cmNlRmlkOwogICAgVmljZUZpZCBkZXN0RmlkOwogICAg aW50IHRuYW1lOwp9OwoKc3RydWN0IGNvZGFfbGlua19vdXQgewogICAgc3RydWN0IGNvZGFfb3V0 X2hkciBvdXQ7Cn07CgoKCnN0cnVjdCBjb2RhX3JlbmFtZV9pbiB7CiAgICBzdHJ1Y3QgY29kYV9p bl9oZHIgaWg7CiAgICBWaWNlRmlkIHNvdXJjZUZpZDsKICAgIGludCBzcmNuYW1lOwogICAgVmlj ZUZpZCBkZXN0RmlkOwogICAgaW50IGRlc3RuYW1lOwp9OwoKc3RydWN0IGNvZGFfcmVuYW1lX291 dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9ta2Rpcl9p biB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7CiAgICBzdHJ1 Y3QgY29kYV92YXR0ciBhdHRyOwogICAgaW50IG5hbWU7Cn07CgpzdHJ1Y3QgY29kYV9ta2Rpcl9v dXQgewogICAgc3RydWN0IGNvZGFfb3V0X2hkciBvaDsKICAgIFZpY2VGaWQgVkZpZDsKICAgIHN0 cnVjdCBjb2RhX3ZhdHRyIGF0dHI7Cn07CgoKCnN0cnVjdCBjb2RhX3JtZGlyX2luIHsKICAgIHN0 cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKICAgIGludCBuYW1lOwp9OwoK c3RydWN0IGNvZGFfcm1kaXJfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb3V0Owp9OwoK CnN0cnVjdCBjb2RhX3N5bWxpbmtfaW4gewogICAgc3RydWN0IGNvZGFfaW5faGRyIGloOwogICAg VmljZUZpZCBWRmlkOwogICAgaW50IHNyY25hbWU7CiAgICBzdHJ1Y3QgY29kYV92YXR0ciBhdHRy OwogICAgaW50IHRuYW1lOwp9OwoKc3RydWN0IGNvZGFfc3ltbGlua19vdXQgewogICAgc3RydWN0 IGNvZGFfb3V0X2hkciBvdXQ7Cn07CgoKc3RydWN0IGNvZGFfcmVhZGxpbmtfaW4gewogICAgc3Ry dWN0IGNvZGFfaW5faGRyIGloOwogICAgVmljZUZpZCBWRmlkOwp9OwoKc3RydWN0IGNvZGFfcmVh ZGxpbmtfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBpbnQgY291bnQ7CiAg ICBjYWRkcl90IGRhdGE7Cn07CgoKCnN0cnVjdCBjb2RhX2ZzeW5jX2luIHsKICAgIHN0cnVjdCBj b2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKfTsKCnN0cnVjdCBjb2RhX2ZzeW5jX291 dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV92Z2V0X2lu IHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKfTsKCnN0cnVj dCBjb2RhX3ZnZXRfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBWaWNlRmlk IFZGaWQ7CiAgICBpbnQgdnR5cGU7Cn07CiMgNjE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L2NvZGEuaCIKc3RydWN0IGNvZGFfcHVyZ2V1c2VyX291dCB7CiAgICBzdHJ1Y3Qg Y29kYV9vdXRfaGRyIG9oOwogICAgc3RydWN0IGNvZGFfY3JlZCBjcmVkOwp9OwoKCgpzdHJ1Y3Qg Y29kYV96YXBmaWxlX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgVmljZUZp ZCBDb2RhRmlkOwp9OwoKCgpzdHJ1Y3QgY29kYV96YXBkaXJfb3V0IHsKICAgIHN0cnVjdCBjb2Rh X291dF9oZHIgb2g7CiAgICBWaWNlRmlkIENvZGFGaWQ7Cn07CgoKCnN0cnVjdCBjb2RhX3phcHZu b2RlX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgc3RydWN0IGNvZGFfY3Jl ZCBjcmVkOwogICAgVmljZUZpZCBWRmlkOwp9OwoKCgpzdHJ1Y3QgY29kYV9wdXJnZWZpZF9vdXQg ewogICAgc3RydWN0IGNvZGFfb3V0X2hkciBvaDsKICAgIFZpY2VGaWQgQ29kYUZpZDsKfTsKCgoK c3RydWN0IGNvZGFfcmVwbGFjZV9vdXQgewogICAgc3RydWN0IGNvZGFfb3V0X2hkciBvaDsKICAg IFZpY2VGaWQgTmV3RmlkOwogICAgVmljZUZpZCBPbGRGaWQ7Cn07CgoKc3RydWN0IGNvZGFfb3Bl bl9ieV9mZF9pbiB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7 CiAgICBpbnQgZmxhZ3M7Cn07CgpzdHJ1Y3QgY29kYV9vcGVuX2J5X2ZkX291dCB7CiAgICBzdHJ1 Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgaW50IGZkOwoKCiAgICBzdHJ1Y3QgZmlsZSAqZmg7Cgp9 OwoKCnN0cnVjdCBjb2RhX29wZW5fYnlfcGF0aF9pbiB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIg aWg7CiAgICBWaWNlRmlkIFZGaWQ7CiAgICBpbnQgZmxhZ3M7Cn07CgpzdHJ1Y3QgY29kYV9vcGVu X2J5X3BhdGhfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICAgICAgaW50IHBh dGg7Cn07CgoKc3RydWN0IGNvZGFfc3RhdGZzX2luIHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBp bjsKfTsKCnN0cnVjdCBjb2RhX3N0YXRmc19vdXQgewogICAgc3RydWN0IGNvZGFfb3V0X2hkciBv aDsKICAgIHN0cnVjdCBjb2RhX3N0YXRmcyBzdGF0Owp9OwoKCgoKCgojZGVmaW5lIENPREFfTk9D QUNIRSAweDgwMDAwMDAwCgp1bmlvbiBpbnB1dEFyZ3MgewogICAgc3RydWN0IGNvZGFfaW5faGRy IGloOwogICAgc3RydWN0IGNvZGFfb3Blbl9pbiBjb2RhX29wZW47CiAgICBzdHJ1Y3QgY29kYV9z dG9yZV9pbiBjb2RhX3N0b3JlOwogICAgc3RydWN0IGNvZGFfcmVsZWFzZV9pbiBjb2RhX3JlbGVh c2U7CiAgICBzdHJ1Y3QgY29kYV9jbG9zZV9pbiBjb2RhX2Nsb3NlOwogICAgc3RydWN0IGNvZGFf aW9jdGxfaW4gY29kYV9pb2N0bDsKICAgIHN0cnVjdCBjb2RhX2dldGF0dHJfaW4gY29kYV9nZXRh dHRyOwogICAgc3RydWN0IGNvZGFfc2V0YXR0cl9pbiBjb2RhX3NldGF0dHI7CiAgICBzdHJ1Y3Qg Y29kYV9hY2Nlc3NfaW4gY29kYV9hY2Nlc3M7CiAgICBzdHJ1Y3QgY29kYV9sb29rdXBfaW4gY29k YV9sb29rdXA7CiAgICBzdHJ1Y3QgY29kYV9jcmVhdGVfaW4gY29kYV9jcmVhdGU7CiAgICBzdHJ1 Y3QgY29kYV9yZW1vdmVfaW4gY29kYV9yZW1vdmU7CiAgICBzdHJ1Y3QgY29kYV9saW5rX2luIGNv ZGFfbGluazsKICAgIHN0cnVjdCBjb2RhX3JlbmFtZV9pbiBjb2RhX3JlbmFtZTsKICAgIHN0cnVj dCBjb2RhX21rZGlyX2luIGNvZGFfbWtkaXI7CiAgICBzdHJ1Y3QgY29kYV9ybWRpcl9pbiBjb2Rh X3JtZGlyOwogICAgc3RydWN0IGNvZGFfc3ltbGlua19pbiBjb2RhX3N5bWxpbms7CiAgICBzdHJ1 Y3QgY29kYV9yZWFkbGlua19pbiBjb2RhX3JlYWRsaW5rOwogICAgc3RydWN0IGNvZGFfZnN5bmNf aW4gY29kYV9mc3luYzsKICAgIHN0cnVjdCBjb2RhX3ZnZXRfaW4gY29kYV92Z2V0OwogICAgc3Ry dWN0IGNvZGFfb3Blbl9ieV9mZF9pbiBjb2RhX29wZW5fYnlfZmQ7CiAgICBzdHJ1Y3QgY29kYV9v cGVuX2J5X3BhdGhfaW4gY29kYV9vcGVuX2J5X3BhdGg7CiAgICBzdHJ1Y3QgY29kYV9zdGF0ZnNf aW4gY29kYV9zdGF0ZnM7Cn07Cgp1bmlvbiBvdXRwdXRBcmdzIHsKICAgIHN0cnVjdCBjb2RhX291 dF9oZHIgb2g7CiAgICBzdHJ1Y3QgY29kYV9yb290X291dCBjb2RhX3Jvb3Q7CiAgICBzdHJ1Y3Qg Y29kYV9vcGVuX291dCBjb2RhX29wZW47CiAgICBzdHJ1Y3QgY29kYV9pb2N0bF9vdXQgY29kYV9p b2N0bDsKICAgIHN0cnVjdCBjb2RhX2dldGF0dHJfb3V0IGNvZGFfZ2V0YXR0cjsKICAgIHN0cnVj dCBjb2RhX2xvb2t1cF9vdXQgY29kYV9sb29rdXA7CiAgICBzdHJ1Y3QgY29kYV9jcmVhdGVfb3V0 IGNvZGFfY3JlYXRlOwogICAgc3RydWN0IGNvZGFfbWtkaXJfb3V0IGNvZGFfbWtkaXI7CiAgICBz dHJ1Y3QgY29kYV9yZWFkbGlua19vdXQgY29kYV9yZWFkbGluazsKICAgIHN0cnVjdCBjb2RhX3Zn ZXRfb3V0IGNvZGFfdmdldDsKICAgIHN0cnVjdCBjb2RhX3B1cmdldXNlcl9vdXQgY29kYV9wdXJn ZXVzZXI7CiAgICBzdHJ1Y3QgY29kYV96YXBmaWxlX291dCBjb2RhX3phcGZpbGU7CiAgICBzdHJ1 Y3QgY29kYV96YXBkaXJfb3V0IGNvZGFfemFwZGlyOwogICAgc3RydWN0IGNvZGFfemFwdm5vZGVf b3V0IGNvZGFfemFwdm5vZGU7CiAgICBzdHJ1Y3QgY29kYV9wdXJnZWZpZF9vdXQgY29kYV9wdXJn ZWZpZDsKICAgIHN0cnVjdCBjb2RhX3JlcGxhY2Vfb3V0IGNvZGFfcmVwbGFjZTsKICAgIHN0cnVj dCBjb2RhX29wZW5fYnlfZmRfb3V0IGNvZGFfb3Blbl9ieV9mZDsKICAgIHN0cnVjdCBjb2RhX29w ZW5fYnlfcGF0aF9vdXQgY29kYV9vcGVuX2J5X3BhdGg7CiAgICBzdHJ1Y3QgY29kYV9zdGF0ZnNf b3V0IGNvZGFfc3RhdGZzOwp9OwoKdW5pb24gY29kYV9kb3duY2FsbHMgewoKCiAgICBzdHJ1Y3Qg Y29kYV9wdXJnZXVzZXJfb3V0IHB1cmdldXNlcjsKICAgIHN0cnVjdCBjb2RhX3phcGZpbGVfb3V0 IHphcGZpbGU7CiAgICBzdHJ1Y3QgY29kYV96YXBkaXJfb3V0IHphcGRpcjsKICAgIHN0cnVjdCBj b2RhX3phcHZub2RlX291dCB6YXB2bm9kZTsKICAgIHN0cnVjdCBjb2RhX3B1cmdlZmlkX291dCBw dXJnZWZpZDsKICAgIHN0cnVjdCBjb2RhX3JlcGxhY2Vfb3V0IHJlcGxhY2U7Cn07CgoKCgoKCiNk ZWZpbmUgUElPQ1BBUk1fTUFTSyAweDAwMDBmZmZmCnN0cnVjdCBWaWNlSW9jdGwgewogICAgICAg IGNhZGRyX3QgaW4sIG91dDsKICAgICAgICBzaG9ydCBpbl9zaXplOwogICAgICAgIHNob3J0IG91 dF9zaXplOwp9OwoKc3RydWN0IFBpb2N0bERhdGEgewogICAgICAgIGNvbnN0IGNoYXIgKnBhdGg7 CiAgICAgICAgaW50IGZvbGxvdzsKICAgICAgICBzdHJ1Y3QgVmljZUlvY3RsIHZpOwp9OwoKI2Rl ZmluZSBDT0RBX0NPTlRST0wgIi5DT05UUk9MIgojZGVmaW5lIENPREFfQ09OVFJPTExFTiA4CiNk ZWZpbmUgQ1RMX1ZPTCAtMQojZGVmaW5lIENUTF9WTk8gLTEKI2RlZmluZSBDVExfVU5JIC0xCiNk ZWZpbmUgQ1RMX0lOTyAtMQojZGVmaW5lIENUTF9GSUxFICIvY29kYS8uQ09OVFJPTCIKCgojZGVm aW5lIElTX0NUTF9GSUQoZmlkcCkgKChmaWRwKS0+Vm9sdW1lID09IENUTF9WT0wgJiYgKGZpZHAp LT5Wbm9kZSA9PSBDVExfVk5PICYmIChmaWRwKS0+VW5pcXVlID09IENUTF9VTkkpCgoKCgoKI2Rl ZmluZSBDT0RBX01PVU5UX1ZFUlNJT04gMQoKc3RydWN0IGNvZGFfbW91bnRfZGF0YSB7CiAgICAg ICAgaW50IHZlcnNpb247CiAgICAgICAgaW50IGZkOwp9OwojIDE1ICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L2NvZGFfZnNfaS5oIiAyCgoKCgpzdHJ1Y3QgY29kYV9pbm9kZV9p bmZvIHsKICAgICAgICBzdHJ1Y3QgVmljZUZpZCBjX2ZpZDsKICAgICAgICB1X3Nob3J0IGNfZmxh Z3M7CiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBjX2NpbGlzdDsKICAgICAgICBzdHJ1Y3QgZmls ZSAqY19jb250YWluZXI7CiAgICAgICAgdW5zaWduZWQgaW50IGNfY29udGNvdW50OwogICAgICAg IHN0cnVjdCBjb2RhX2NyZWQgY19jYWNoZWRfY3JlZDsKICAgICAgICB1bnNpZ25lZCBpbnQgY19j YWNoZWRfcGVybTsKfTsKCgojZGVmaW5lIENfVkFUVFIgMHgxCiNkZWZpbmUgQ19GTFVTSCAweDIK I2RlZmluZSBDX0RZSU5HIDB4NAojZGVmaW5lIENfUFVSR0UgMHg4CgppbnQgY29kYV9jbm9kZV9t YWtlKHN0cnVjdCBpbm9kZSAqKiwgc3RydWN0IFZpY2VGaWQgKiwgc3RydWN0IHN1cGVyX2Jsb2Nr ICopOwppbnQgY29kYV9jbm9kZV9tYWtlY3RsKHN0cnVjdCBpbm9kZSAqKmlub2RlLCBzdHJ1Y3Qg c3VwZXJfYmxvY2sgKnNiKTsKc3RydWN0IGlub2RlICpjb2RhX2ZpZF90b19pbm9kZShWaWNlRmlk ICpmaWQsIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwp2b2lkIGNvZGFfcmVwbGFjZV9maWQoc3Ry dWN0IGlub2RlICosIFZpY2VGaWQgKiwgVmljZUZpZCAqKTsKIyAzMDAgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvbGludXgvcm9tZnNfZnNfaS5oIiAxCgojZGVmaW5lIF9fUk9NRlNfRlNfSQoKCgpzdHJ1 Y3Qgcm9tZnNfaW5vZGVfaW5mbyB7CiAgICAgICAgdW5zaWduZWQgbG9uZyBpX21ldGFzaXplOwog ICAgICAgIHVuc2lnbmVkIGxvbmcgaV9kYXRhb2Zmc2V0Owp9OwojIDMwMSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9zaG1lbV9mcy5oIiAxCgojZGVmaW5lIF9fU0hNRU1fRlNfSAoKCgojZGVm aW5lIFNITUVNX05SX0RJUkVDVCAxNgojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L3NobWVtX2ZzLmgiCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICB1bnNpZ25lZCBsb25n IHZhbDsKfSBzd3BfZW50cnlfdDsKCnN0cnVjdCBzaG1lbV9pbm9kZV9pbmZvIHsKICAgICAgICBz cGlubG9ja190IGxvY2s7CiAgICAgICAgdW5zaWduZWQgbG9uZyBtYXhfaW5kZXg7CiAgICAgICAg c3dwX2VudHJ5X3QgaV9kaXJlY3RbMTZdOwogICAgICAgIHN3cF9lbnRyeV90ICoqaV9pbmRpcmVj dDsKICAgICAgICB1bnNpZ25lZCBsb25nIHN3YXBwZWQ7CiAgICAgICAgaW50IGxvY2tlZDsKICAg ICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cn07CgpzdHJ1Y3Qgc2htZW1fc2JfaW5mbyB7CiAg ICAgICAgdW5zaWduZWQgbG9uZyBtYXhfYmxvY2tzOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZnJl ZV9ibG9ja3M7CiAgICAgICAgdW5zaWduZWQgbG9uZyBtYXhfaW5vZGVzOwogICAgICAgIHVuc2ln bmVkIGxvbmcgZnJlZV9pbm9kZXM7CiAgICAgICAgc3BpbmxvY2tfdCBzdGF0X2xvY2s7Cn07CiMg MzAyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtYl9mc19pLmgiIDEKIyAxMCAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zbWJfZnNfaS5oIgojZGVmaW5lIF9MSU5VWF9T TUJfRlNfSQoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5o IiAxCiMgMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc21iX2ZzX2kuaCIg MgoKCgoKc3RydWN0IHNtYl9pbm9kZV9pbmZvIHsKCgoKCgogICAgICAgIHVuc2lnbmVkIGludCBv cGVuOwogICAgICAgIF9fdTE2IGZpbGVpZDsKICAgICAgICBfX3UxNiBhdHRyOwoKICAgICAgICBf X3UxNiBhY2Nlc3M7CiAgICAgICAgX191MTYgZmxhZ3M7CiAgICAgICAgdW5zaWduZWQgbG9uZyBv bGRtdGltZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGNsb3NlZDsKICAgICAgICB1bnNpZ25lZCBv cGVuZXJzOwp9OwojIDMwMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5o IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9oZnNfZnNfaS5oIiAx CiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvaGZzX2ZzX2kuaCIKI2Rl ZmluZSBfTElOVVhfSEZTX0ZTX0lfSAoKCgoKCgpzdHJ1Y3QgaGZzX2lub2RlX2luZm8gewogICAg ICAgIGludCBtYWdpYzsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBtbXVfcHJpdmF0ZTsKICAgICAg ICBzdHJ1Y3QgaGZzX2NhdF9lbnRyeSAqZW50cnk7CgoKICAgICAgICBzdHJ1Y3QgaGZzX2Zvcmsg KmZvcms7CiAgICAgICAgaW50IGNvbnZlcnQ7CgoKICAgICAgICBpbm9fdCBmaWxlX3R5cGU7CiAg ICAgICAgY2hhciBkaXJfc2l6ZTsKCgogICAgICAgIGNvbnN0IHN0cnVjdCBoZnNfaGRyX2xheW91 dCAqZGVmYXVsdF9sYXlvdXQ7CiAgICAgICAgc3RydWN0IGhmc19oZHJfbGF5b3V0ICpsYXlvdXQ7 CgoKICAgICAgICBpbnQgdHpfc2Vjb25kc3dlc3Q7CgoKICAgICAgICB2b2lkICgqZF9kcm9wX29w KShzdHJ1Y3QgZGVudHJ5ICosIGNvbnN0IGlub190KTsKfTsKIyAzMDQgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvbGludXgvYWRmc19mc19pLmgiIDEKCgoKCgoKCiNkZWZpbmUgX0FERlNfRlNfSQoKCgoK c3RydWN0IGFkZnNfaW5vZGVfaW5mbyB7CiAgICAgICAgdW5zaWduZWQgbG9uZyBtbXVfcHJpdmF0 ZTsKICAgICAgICB1bnNpZ25lZCBsb25nIHBhcmVudF9pZDsKICAgICAgICBfX3UzMiBsb2FkYWRk cjsKICAgICAgICBfX3UzMiBleGVjYWRkcjsKICAgICAgICB1bnNpZ25lZCBpbnQgZmlsZXR5cGU7 CiAgICAgICAgdW5zaWduZWQgaW50IGF0dHI7CiAgICAgICAgaW50IHN0YW1wZWQ6MTsKfTsKIyAz MDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcW54NF9mc19pLmgiIDEKIyAxMiAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzX2kuaCIKI2RlZmluZSBfUU5YNF9G U19JCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcW54dHlwZXMuaCIg MQojIDEzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3FueHR5cGVzLmgiCiNk ZWZpbmUgX1FOWDRUWVBFU19ICgp0eXBlZGVmIF9fdTE2IHFueDRfbnh0bnRfdDsKdHlwZWRlZiBf X3U4IHFueDRfZnR5cGVfdDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBfX3UzMiB4dG50X2Js azsKICAgICAgICBfX3UzMiB4dG50X3NpemU7Cn0gcW54NF94dG50X3Q7Cgp0eXBlZGVmIF9fdTE2 IHFueDRfbW9kZV90Owp0eXBlZGVmIF9fdTE2IHFueDRfbXVpZF90Owp0eXBlZGVmIF9fdTE2IHFu eDRfbWdpZF90Owp0eXBlZGVmIF9fdTMyIHFueDRfb2ZmX3Q7CnR5cGVkZWYgX191MTYgcW54NF9u bGlua190OwojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3FueDRfZnNf aS5oIiAyCgoKCgpzdHJ1Y3QgcW54NF9pbm9kZV9pbmZvIHsKICAgICAgICBjaGFyIGlfcmVzZXJ2 ZWRbMTZdOwogICAgICAgIHFueDRfb2ZmX3QgaV9zaXplOwogICAgICAgIHFueDRfeHRudF90IGlf Zmlyc3RfeHRudDsKICAgICAgICBfX3UzMiBpX3hibGs7CiAgICAgICAgX19zMzIgaV9mdGltZTsK ICAgICAgICBfX3MzMiBpX210aW1lOwogICAgICAgIF9fczMyIGlfYXRpbWU7CiAgICAgICAgX19z MzIgaV9jdGltZTsKICAgICAgICBxbng0X254dG50X3QgaV9udW1feHRudHM7CiAgICAgICAgcW54 NF9tb2RlX3QgaV9tb2RlOwogICAgICAgIHFueDRfbXVpZF90IGlfdWlkOwogICAgICAgIHFueDRf bWdpZF90IGlfZ2lkOwogICAgICAgIHFueDRfbmxpbmtfdCBpX25saW5rOwogICAgICAgIF9fdTgg aV96ZXJvWzRdOwogICAgICAgIHFueDRfZnR5cGVfdCBpX3R5cGU7CiAgICAgICAgX191OCBpX3N0 YXR1czsKICAgICAgICB1bnNpZ25lZCBsb25nIG1tdV9wcml2YXRlOwp9OwojIDMwNiAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9yZWlzZXJmc19mc19pLmgiIDEKCiNkZWZpbmUgX1JFSVNFUl9G U19JCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMg NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9yZWlzZXJmc19mc19pLmgiIDIK CnN0cnVjdCByZWlzZXJmc19pbm9kZV9pbmZvIHsKICBfX3UzMiBpX2tleSBbNF07CgoKCgoKCiAg aW50IGlfdmVyc2lvbjsKCiAgaW50IGlfcGFja19vbl9jbG9zZSA7CgogIF9fdTMyIGlfZmlyc3Rf ZGlyZWN0X2J5dGU7CiMgMzUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcmVp c2VyZnNfZnNfaS5oIgogIGludCBpX3ByZWFsbG9jX2Jsb2NrOwogIGludCBpX3ByZWFsbG9jX2Nv dW50OwogIHN0cnVjdCBsaXN0X2hlYWQgaV9wcmVhbGxvY19saXN0OwoKCgoKICBpbnQgbm9wYWNr Owp9OwojIDMwNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMg MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9iZnNfZnNfaS5oIiAxCgoKCgoK CiNkZWZpbmUgX0xJTlVYX0JGU19GU19JCgoKCgpzdHJ1Y3QgYmZzX2lub2RlX2luZm8gewogICAg ICAgIHVuc2lnbmVkIGxvbmcgaV9kc2tfaW5vOwogICAgICAgIHVuc2lnbmVkIGxvbmcgaV9zYmxv Y2s7CiAgICAgICAgdW5zaWduZWQgbG9uZyBpX2VibG9jazsKfTsKIyAzMDggIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgvdWRmX2ZzX2kuaCIgMQojIDE5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L3VkZl9mc19pLmgiCiNkZWZpbmUgX0xJTlVYX1VERl9GU19JX0gKIyAzMSAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZGZfZnNfaS5oIgpzdHJ1Y3QgdWRm X2lub2RlX2luZm8KewogICAgICAgIGxvbmcgaV91bXRpbWU7CiAgICAgICAgbG9uZyBpX3VjdGlt ZTsKICAgICAgICBsb25nIGlfY3J0aW1lOwogICAgICAgIGxvbmcgaV91Y3J0aW1lOwoKICAgICAg ICBsYl9hZGRyIGlfbG9jYXRpb247CiAgICAgICAgX191NjQgaV91bmlxdWU7CiAgICAgICAgX191 MzIgaV9sZW5FQXR0cjsKICAgICAgICBfX3UzMiBpX2xlbkFsbG9jOwogICAgICAgIF9fdTY0IGlf bGVuRXh0ZW50czsKICAgICAgICBfX3UzMiBpX25leHRfYWxsb2NfYmxvY2s7CiAgICAgICAgX191 MzIgaV9uZXh0X2FsbG9jX2dvYWw7CiAgICAgICAgdW5zaWduZWQgaV9hbGxvY190eXBlIDogMzsK ICAgICAgICB1bnNpZ25lZCBpX2V4dGVuZGVkX2ZlIDogMTsKICAgICAgICB1bnNpZ25lZCBpX3N0 cmF0XzQwOTYgOiAxOwogICAgICAgIHVuc2lnbmVkIGlfbmV3X2lub2RlIDogMTsKICAgICAgICB1 bnNpZ25lZCByZXNlcnZlZCA6IDI2Owp9OwoKCgoKCiNkZWZpbmUgVURGX0dFVEVBU0laRSBfSU9S KCdsJywgMHg0MCwgaW50KQojZGVmaW5lIFVERl9HRVRFQUJMT0NLIF9JT1IoJ2wnLCAweDQxLCB2 b2lkICopCiNkZWZpbmUgVURGX0dFVFZPTElERU5UIF9JT1IoJ2wnLCAweDQyLCB2b2lkICopCiNk ZWZpbmUgVURGX1JFTE9DQVRFX0JMT0NLUyBfSU9XUignbCcsIDB4NDMsIGxvbmcpCiMgMzA5ICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcF9mc19pLmgiIDEKIyA5ICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcF9mc19pLmgiCiNkZWZpbmUgX0xJTlVYX05DUF9GU19J CgoKCgoKCgpzdHJ1Y3QgbmNwX2lub2RlX2luZm8gewogICAgICAgIF9fdTMyIGRpckVudE51bSBf X2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UzMiBEb3NEaXJOdW0gX19hdHRyaWJ1 dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIgdm9sTnVtYmVyIF9fYXR0cmlidXRlX18oKHBh Y2tlZCkpOwogICAgICAgIF9fdTMyIG53YXR0cjsKICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlIG9w ZW5fc2VtOwogICAgICAgIGF0b21pY190IG9wZW5lZDsKICAgICAgICBpbnQgYWNjZXNzOwogICAg ICAgIF9fdTMyIHNlcnZlcl9maWxlX2hhbmRsZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAg ICAgICBfX3U4IG9wZW5fY3JlYXRlX2FjdGlvbiBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAg ICAgICBfX3U4IGZpbGVfaGFuZGxlWzZdIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwp9OwojIDMx MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9wcm9jX2ZzX2kuaCIgMQpzdHJ1Y3QgcHJvY19p bm9kZV9pbmZvIHsKICAgICAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CiAgICAgICAgaW50 IHR5cGU7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgaW50ICgqcHJvY19nZXRfbGlu aykoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiosIHN0cnVjdCB2ZnNtb3VudCAqKik7 CiAgICAgICAgICAgICAgICBpbnQgKCpwcm9jX3JlYWQpKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFz aywgY2hhciAqcGFnZSk7CiAgICAgICAgfSBvcDsKICAgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZTsK fTsKIyAzMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdXNiZGV2X2ZzX2kuaCIgMQpzdHJ1 Y3QgdXNiX2RldmljZTsKc3RydWN0IHVzYl9idXM7CgpzdHJ1Y3QgdXNiZGV2X2lub2RlX2luZm8g ewogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZGxpc3Q7CiAgICAgICAgc3RydWN0IGxpc3RfaGVh ZCBzbGlzdDsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgdXNiX2Rldmlj ZSAqZGV2OwogICAgICAgICAgICAgICAgc3RydWN0IHVzYl9idXMgKmJ1czsKICAgICAgICB9IHA7 Cn07CiMgMzEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKCgoK CgojZGVmaW5lIEFUVFJfTU9ERSAxCiNkZWZpbmUgQVRUUl9VSUQgMgojZGVmaW5lIEFUVFJfR0lE IDQKI2RlZmluZSBBVFRSX1NJWkUgOAojZGVmaW5lIEFUVFJfQVRJTUUgMTYKI2RlZmluZSBBVFRS X01USU1FIDMyCiNkZWZpbmUgQVRUUl9DVElNRSA2NAojZGVmaW5lIEFUVFJfQVRJTUVfU0VUIDEy OAojZGVmaW5lIEFUVFJfTVRJTUVfU0VUIDI1NgojZGVmaW5lIEFUVFJfRk9SQ0UgNTEyCiNkZWZp bmUgQVRUUl9BVFRSX0ZMQUcgMTAyNAojIDMzOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9mcy5oIgpzdHJ1Y3QgaWF0dHIgewogICAgICAgIHVuc2lnbmVkIGludCBpYV92YWxp ZDsKICAgICAgICB1bW9kZV90IGlhX21vZGU7CiAgICAgICAgdWlkX3QgaWFfdWlkOwogICAgICAg IGdpZF90IGlhX2dpZDsKICAgICAgICBsb2ZmX3QgaWFfc2l6ZTsKICAgICAgICB0aW1lX3QgaWFf YXRpbWU7CiAgICAgICAgdGltZV90IGlhX210aW1lOwogICAgICAgIHRpbWVfdCBpYV9jdGltZTsK ICAgICAgICB1bnNpZ25lZCBpbnQgaWFfYXR0cl9mbGFnczsKfTsKCgoKCiNkZWZpbmUgQVRUUl9G TEFHX1NZTkNST05PVVMgMQojZGVmaW5lIEFUVFJfRkxBR19OT0FUSU1FIDIKI2RlZmluZSBBVFRS X0ZMQUdfQVBQRU5EIDQKI2RlZmluZSBBVFRSX0ZMQUdfSU1NVVRBQkxFIDgKI2RlZmluZSBBVFRS X0ZMQUdfTk9ESVJBVElNRSAxNgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L3F1b3RhLmgiIDEKIyA0MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9xdW90YS5oIgojZGVmaW5lIF9MSU5VWF9RVU9UQV8KCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9lcnJuby5oIiAxCgojZGVmaW5lIF9MSU5VWF9FUlJOT19ICgojIDEg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2Vycm5vLmgiIDEKCiNkZWZpbmUgX0FT TV9JQTY0X0VSUk5PX0gKIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vZXJy bm8uaCIKI2RlZmluZSBFUEVSTSAxCiNkZWZpbmUgRU5PRU5UIDIKI2RlZmluZSBFU1JDSCAzCiNk ZWZpbmUgRUlOVFIgNAojZGVmaW5lIEVJTyA1CiNkZWZpbmUgRU5YSU8gNgojZGVmaW5lIEUyQklH IDcKI2RlZmluZSBFTk9FWEVDIDgKI2RlZmluZSBFQkFERiA5CiNkZWZpbmUgRUNISUxEIDEwCiNk ZWZpbmUgRUFHQUlOIDExCiNkZWZpbmUgRU5PTUVNIDEyCiNkZWZpbmUgRUFDQ0VTIDEzCiNkZWZp bmUgRUZBVUxUIDE0CiNkZWZpbmUgRU5PVEJMSyAxNQojZGVmaW5lIEVCVVNZIDE2CiNkZWZpbmUg RUVYSVNUIDE3CiNkZWZpbmUgRVhERVYgMTgKI2RlZmluZSBFTk9ERVYgMTkKI2RlZmluZSBFTk9U RElSIDIwCiNkZWZpbmUgRUlTRElSIDIxCiNkZWZpbmUgRUlOVkFMIDIyCiNkZWZpbmUgRU5GSUxF IDIzCiNkZWZpbmUgRU1GSUxFIDI0CiNkZWZpbmUgRU5PVFRZIDI1CiNkZWZpbmUgRVRYVEJTWSAy NgojZGVmaW5lIEVGQklHIDI3CiNkZWZpbmUgRU5PU1BDIDI4CiNkZWZpbmUgRVNQSVBFIDI5CiNk ZWZpbmUgRVJPRlMgMzAKI2RlZmluZSBFTUxJTksgMzEKI2RlZmluZSBFUElQRSAzMgojZGVmaW5l IEVET00gMzMKI2RlZmluZSBFUkFOR0UgMzQKI2RlZmluZSBFREVBRExLIDM1CiNkZWZpbmUgRU5B TUVUT09MT05HIDM2CiNkZWZpbmUgRU5PTENLIDM3CiNkZWZpbmUgRU5PU1lTIDM4CiNkZWZpbmUg RU5PVEVNUFRZIDM5CiNkZWZpbmUgRUxPT1AgNDAKI2RlZmluZSBFV09VTERCTE9DSyBFQUdBSU4K I2RlZmluZSBFTk9NU0cgNDIKI2RlZmluZSBFSURSTSA0MwojZGVmaW5lIEVDSFJORyA0NAojZGVm aW5lIEVMMk5TWU5DIDQ1CiNkZWZpbmUgRUwzSExUIDQ2CiNkZWZpbmUgRUwzUlNUIDQ3CiNkZWZp bmUgRUxOUk5HIDQ4CiNkZWZpbmUgRVVOQVRDSCA0OQojZGVmaW5lIEVOT0NTSSA1MAojZGVmaW5l IEVMMkhMVCA1MQojZGVmaW5lIEVCQURFIDUyCiNkZWZpbmUgRUJBRFIgNTMKI2RlZmluZSBFWEZV TEwgNTQKI2RlZmluZSBFTk9BTk8gNTUKI2RlZmluZSBFQkFEUlFDIDU2CiNkZWZpbmUgRUJBRFNM VCA1NwoKI2RlZmluZSBFREVBRExPQ0sgRURFQURMSwoKI2RlZmluZSBFQkZPTlQgNTkKI2RlZmlu ZSBFTk9TVFIgNjAKI2RlZmluZSBFTk9EQVRBIDYxCiNkZWZpbmUgRVRJTUUgNjIKI2RlZmluZSBF Tk9TUiA2MwojZGVmaW5lIEVOT05FVCA2NAojZGVmaW5lIEVOT1BLRyA2NQojZGVmaW5lIEVSRU1P VEUgNjYKI2RlZmluZSBFTk9MSU5LIDY3CiNkZWZpbmUgRUFEViA2OAojZGVmaW5lIEVTUk1OVCA2 OQojZGVmaW5lIEVDT01NIDcwCiNkZWZpbmUgRVBST1RPIDcxCiNkZWZpbmUgRU1VTFRJSE9QIDcy CiNkZWZpbmUgRURPVERPVCA3MwojZGVmaW5lIEVCQURNU0cgNzQKI2RlZmluZSBFT1ZFUkZMT1cg NzUKI2RlZmluZSBFTk9UVU5JUSA3NgojZGVmaW5lIEVCQURGRCA3NwojZGVmaW5lIEVSRU1DSEcg NzgKI2RlZmluZSBFTElCQUNDIDc5CiNkZWZpbmUgRUxJQkJBRCA4MAojZGVmaW5lIEVMSUJTQ04g ODEKI2RlZmluZSBFTElCTUFYIDgyCiNkZWZpbmUgRUxJQkVYRUMgODMKI2RlZmluZSBFSUxTRVEg ODQKI2RlZmluZSBFUkVTVEFSVCA4NQojZGVmaW5lIEVTVFJQSVBFIDg2CiNkZWZpbmUgRVVTRVJT IDg3CiNkZWZpbmUgRU5PVFNPQ0sgODgKI2RlZmluZSBFREVTVEFERFJSRVEgODkKI2RlZmluZSBF TVNHU0laRSA5MAojZGVmaW5lIEVQUk9UT1RZUEUgOTEKI2RlZmluZSBFTk9QUk9UT09QVCA5Mgoj ZGVmaW5lIEVQUk9UT05PU1VQUE9SVCA5MwojZGVmaW5lIEVTT0NLVE5PU1VQUE9SVCA5NAojZGVm aW5lIEVPUE5PVFNVUFAgOTUKI2RlZmluZSBFUEZOT1NVUFBPUlQgOTYKI2RlZmluZSBFQUZOT1NV UFBPUlQgOTcKI2RlZmluZSBFQUREUklOVVNFIDk4CiNkZWZpbmUgRUFERFJOT1RBVkFJTCA5OQoj ZGVmaW5lIEVORVRET1dOIDEwMAojZGVmaW5lIEVORVRVTlJFQUNIIDEwMQojZGVmaW5lIEVORVRS RVNFVCAxMDIKI2RlZmluZSBFQ09OTkFCT1JURUQgMTAzCiNkZWZpbmUgRUNPTk5SRVNFVCAxMDQK I2RlZmluZSBFTk9CVUZTIDEwNQojZGVmaW5lIEVJU0NPTk4gMTA2CiNkZWZpbmUgRU5PVENPTk4g MTA3CiNkZWZpbmUgRVNIVVRET1dOIDEwOAojZGVmaW5lIEVUT09NQU5ZUkVGUyAxMDkKI2RlZmlu ZSBFVElNRURPVVQgMTEwCiNkZWZpbmUgRUNPTk5SRUZVU0VEIDExMQojZGVmaW5lIEVIT1NURE9X TiAxMTIKI2RlZmluZSBFSE9TVFVOUkVBQ0ggMTEzCiNkZWZpbmUgRUFMUkVBRFkgMTE0CiNkZWZp bmUgRUlOUFJPR1JFU1MgMTE1CiNkZWZpbmUgRVNUQUxFIDExNgojZGVmaW5lIEVVQ0xFQU4gMTE3 CiNkZWZpbmUgRU5PVE5BTSAxMTgKI2RlZmluZSBFTkFWQUlMIDExOQojZGVmaW5lIEVJU05BTSAx MjAKI2RlZmluZSBFUkVNT1RFSU8gMTIxCiNkZWZpbmUgRURRVU9UIDEyMgoKI2RlZmluZSBFTk9N RURJVU0gMTIzCiNkZWZpbmUgRU1FRElVTVRZUEUgMTI0CiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9lcnJuby5oIiAyCgoKCgojZGVmaW5lIEVSRVNUQVJUU1lTIDUxMgoj ZGVmaW5lIEVSRVNUQVJUTk9JTlRSIDUxMwojZGVmaW5lIEVSRVNUQVJUTk9IQU5EIDUxNAojZGVm aW5lIEVOT0lPQ1RMQ01EIDUxNQoKCiNkZWZpbmUgRUJBREhBTkRMRSA1MjEKI2RlZmluZSBFTk9U U1lOQyA1MjIKI2RlZmluZSBFQkFEQ09PS0lFIDUyMwojZGVmaW5lIEVOT1RTVVBQIDUyNAojZGVm aW5lIEVUT09TTUFMTCA1MjUKI2RlZmluZSBFU0VSVkVSRkFVTFQgNTI2CiNkZWZpbmUgRUJBRFRZ UEUgNTI3CiNkZWZpbmUgRUpVS0VCT1ggNTI4CiMgNDMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvbGludXgvcXVvdGEuaCIgMgoKCgoKI2RlZmluZSBkYnRvYihudW0pIChudW0gPDwgQkxP Q0tfU0laRV9CSVRTKQojZGVmaW5lIGJ0b2RiKG51bSkgKG51bSA+PiBCTE9DS19TSVpFX0JJVFMp CgoKCgoKI2RlZmluZSBmc190b19kcV9ibG9ja3MobnVtLCBibGtzaXplKSAoKChudW0pICogKGJs a3NpemUpKSAvIEJMT0NLX1NJWkUpCiMgNjUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvcXVvdGEuaCIKI2RlZmluZSBNQVhfSVFfVElNRSA2MDQ4MDAKI2RlZmluZSBNQVhfRFFf VElNRSA2MDQ4MDAKCiNkZWZpbmUgTUFYUVVPVEFTIDIKI2RlZmluZSBVU1JRVU9UQSAwCiNkZWZp bmUgR1JQUVVPVEEgMQoKCgoKI2RlZmluZSBJTklUUUZOQU1FUyB7ICJ1c2VyIiwgImdyb3VwIiwg InVuZGVmaW5lZCIsIH07CgoKCgoKI2RlZmluZSBRVU9UQUZJTEVOQU1FICJxdW90YSIKI2RlZmlu ZSBRVU9UQUdST1VQICJzdGFmZiIKCmV4dGVybiBpbnQgbnJfZHF1b3RzLCBucl9mcmVlX2RxdW90 czsKZXh0ZXJuIGludCBtYXhfZHF1b3RzOwpleHRlcm4gaW50IGRxdW90X3Jvb3Rfc3F1YXNoOwoK I2RlZmluZSBOUl9EUUhBU0ggNDMKI2RlZmluZSBOUl9EUVVPVFMgMTAyNAoKCgoKCgoKI2RlZmlu ZSBTVUJDTURNQVNLIDB4MDBmZgojZGVmaW5lIFNVQkNNRFNISUZUIDgKI2RlZmluZSBRQ01EKGNt ZCwgdHlwZSkgKCgoY21kKSA8PCBTVUJDTURTSElGVCkgfCAoKHR5cGUpICYgU1VCQ01ETUFTSykp CgojZGVmaW5lIFFfUVVPVEFPTiAweDAxMDAKI2RlZmluZSBRX1FVT1RBT0ZGIDB4MDIwMAojZGVm aW5lIFFfR0VUUVVPVEEgMHgwMzAwCiNkZWZpbmUgUV9TRVRRVU9UQSAweDA0MDAKI2RlZmluZSBR X1NFVFVTRSAweDA1MDAKI2RlZmluZSBRX1NZTkMgMHgwNjAwCiNkZWZpbmUgUV9TRVRRTElNIDB4 MDcwMAojZGVmaW5lIFFfR0VUU1RBVFMgMHgwODAwCiNkZWZpbmUgUV9SU1FVQVNIIDB4MTAwMAoK CgoKCgpzdHJ1Y3QgZHFibGsgewogICAgICAgIF9fdTMyIGRxYl9iaGFyZGxpbWl0OwogICAgICAg IF9fdTMyIGRxYl9ic29mdGxpbWl0OwogICAgICAgIF9fdTMyIGRxYl9jdXJibG9ja3M7CiAgICAg ICAgX191MzIgZHFiX2loYXJkbGltaXQ7CiAgICAgICAgX191MzIgZHFiX2lzb2Z0bGltaXQ7CiAg ICAgICAgX191MzIgZHFiX2N1cmlub2RlczsKICAgICAgICB0aW1lX3QgZHFiX2J0aW1lOwogICAg ICAgIHRpbWVfdCBkcWJfaXRpbWU7Cn07CgoKCgojZGVmaW5lIGRxX2JoYXJkbGltaXQgZHFfZHFi LmRxYl9iaGFyZGxpbWl0CiNkZWZpbmUgZHFfYnNvZnRsaW1pdCBkcV9kcWIuZHFiX2Jzb2Z0bGlt aXQKI2RlZmluZSBkcV9jdXJibG9ja3MgZHFfZHFiLmRxYl9jdXJibG9ja3MKI2RlZmluZSBkcV9p aGFyZGxpbWl0IGRxX2RxYi5kcWJfaWhhcmRsaW1pdAojZGVmaW5lIGRxX2lzb2Z0bGltaXQgZHFf ZHFiLmRxYl9pc29mdGxpbWl0CiNkZWZpbmUgZHFfY3VyaW5vZGVzIGRxX2RxYi5kcWJfY3VyaW5v ZGVzCiNkZWZpbmUgZHFfYnRpbWUgZHFfZHFiLmRxYl9idGltZQojZGVmaW5lIGRxX2l0aW1lIGRx X2RxYi5kcWJfaXRpbWUKCiNkZWZpbmUgZHFvZmYoVUlEKSAoKGxvZmZfdCkoKFVJRCkgKiBzaXpl b2YgKHN0cnVjdCBkcWJsaykpKQoKc3RydWN0IGRxc3RhdHMgewogICAgICAgIF9fdTMyIGxvb2t1 cHM7CiAgICAgICAgX191MzIgZHJvcHM7CiAgICAgICAgX191MzIgcmVhZHM7CiAgICAgICAgX191 MzIgd3JpdGVzOwogICAgICAgIF9fdTMyIGNhY2hlX2hpdHM7CiAgICAgICAgX191MzIgYWxsb2Nh dGVkX2RxdW90czsKICAgICAgICBfX3UzMiBmcmVlX2RxdW90czsKICAgICAgICBfX3UzMiBzeW5j czsKfTsKCgoKCgoKCiNkZWZpbmUgTUFYX1FVT1RBX01FU1NBR0UgNzUKCiNkZWZpbmUgRFFfTE9D S0VEIDB4MDEKI2RlZmluZSBEUV9XQU5UIDB4MDIKI2RlZmluZSBEUV9NT0QgMHgwNAojZGVmaW5l IERRX0JMS1MgMHgxMAojZGVmaW5lIERRX0lOT0RFUyAweDIwCiNkZWZpbmUgRFFfRkFLRSAweDQw CgpzdHJ1Y3QgZHF1b3QgewogICAgICAgIHN0cnVjdCBkcXVvdCAqZHFfbmV4dDsKICAgICAgICBz dHJ1Y3QgZHF1b3QgKipkcV9wcHJldjsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGRxX2ZyZWU7 CiAgICAgICAgc3RydWN0IGRxdW90ICpkcV9oYXNoX25leHQ7CiAgICAgICAgc3RydWN0IGRxdW90 ICoqZHFfaGFzaF9wcHJldjsKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCBkcV93YWl0OwogICAg ICAgIGludCBkcV9jb3VudDsKCgogICAgICAgIHN0cnVjdCBzdXBlcl9ibG9jayAqZHFfc2I7CiAg ICAgICAgdW5zaWduZWQgaW50IGRxX2lkOwogICAgICAgIGtkZXZfdCBkcV9kZXY7CiAgICAgICAg c2hvcnQgZHFfdHlwZTsKICAgICAgICBzaG9ydCBkcV9mbGFnczsKICAgICAgICB1bnNpZ25lZCBs b25nIGRxX3JlZmVyZW5jZWQ7CgogICAgICAgIHN0cnVjdCBkcWJsayBkcV9kcWI7Cn07CgojZGVm aW5lIE5PRFFVT1QgKHN0cnVjdCBkcXVvdCAqKU5VTEwKCgoKCiNkZWZpbmUgUVVPVEFfU1lTQ0FM TCAweDAxCiNkZWZpbmUgU0VUX1FVT1RBIDB4MDIKI2RlZmluZSBTRVRfVVNFIDB4MDQKI2RlZmlu ZSBTRVRfUUxJTUlUIDB4MDgKCiNkZWZpbmUgUVVPVEFfT0sgMAojZGVmaW5lIE5PX1FVT1RBIDEK IyAzNjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW91bnQuaCIgMQojIDM2NCAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCgoKCgpzdHJ1Y3QgcGFnZTsKc3Ry dWN0IGFkZHJlc3Nfc3BhY2U7CgpzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIHsKICAg ICAgICBpbnQgKCp3cml0ZXBhZ2UpKHN0cnVjdCBwYWdlICopOwogICAgICAgIGludCAoKnJlYWRw YWdlKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgcGFnZSAqKTsKICAgICAgICBpbnQgKCpzeW5jX3Bh Z2UpKHN0cnVjdCBwYWdlICopOwogICAgICAgIGludCAoKnByZXBhcmVfd3JpdGUpKHN0cnVjdCBm aWxlICosIHN0cnVjdCBwYWdlICosIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAgICAgaW50ICgq Y29tbWl0X3dyaXRlKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgcGFnZSAqLCB1bnNpZ25lZCwgdW5z aWduZWQpOwoKICAgICAgICBpbnQgKCpibWFwX1JzbXBfMTRlZDZiZGYpKHN0cnVjdCBhZGRyZXNz X3NwYWNlICosIGxvbmcpOwp9OwoKc3RydWN0IGFkZHJlc3Nfc3BhY2UgewogICAgICAgIHN0cnVj dCBsaXN0X2hlYWQgY2xlYW5fcGFnZXM7CiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBkaXJ0eV9w YWdlczsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxvY2tlZF9wYWdlczsKICAgICAgICB1bnNp Z25lZCBsb25nIG5ycGFnZXM7CiAgICAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9u cyAqYV9vcHM7CiAgICAgICAgc3RydWN0IGlub2RlICpob3N0OwogICAgICAgIHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqaV9tbWFwOwogICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqaV9tbWFw X3NoYXJlZDsKICAgICAgICBzcGlubG9ja190IGlfc2hhcmVkX2xvY2s7CiAgICAgICAgaW50IGdm cF9tYXNrOwp9OwoKc3RydWN0IGNoYXJfZGV2aWNlIHsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFk IGhhc2g7CiAgICAgICAgYXRvbWljX3QgY291bnQ7CiAgICAgICAgZGV2X3QgZGV2OwogICAgICAg IGF0b21pY190IG9wZW5lcnM7CiAgICAgICAgc3RydWN0IHNlbWFwaG9yZSBzZW07Cn07CgpzdHJ1 Y3QgYmxvY2tfZGV2aWNlIHsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGJkX2hhc2g7CiAgICAg ICAgYXRvbWljX3QgYmRfY291bnQ7CgogICAgICAgIGRldl90IGJkX2RldjsKICAgICAgICBhdG9t aWNfdCBiZF9vcGVuZXJzOwogICAgICAgIGNvbnN0IHN0cnVjdCBibG9ja19kZXZpY2Vfb3BlcmF0 aW9ucyAqYmRfb3A7CiAgICAgICAgc3RydWN0IHNlbWFwaG9yZSBiZF9zZW07Cn07CgpzdHJ1Y3Qg aW5vZGUgewogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgaV9oYXNoOwogICAgICAgIHN0cnVjdCBs aXN0X2hlYWQgaV9saXN0OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgaV9kZW50cnk7CgogICAg ICAgIHN0cnVjdCBsaXN0X2hlYWQgaV9kaXJ0eV9idWZmZXJzOwoKICAgICAgICB1bnNpZ25lZCBs b25nIGlfaW5vOwogICAgICAgIGF0b21pY190IGlfY291bnQ7CiAgICAgICAga2Rldl90IGlfZGV2 OwogICAgICAgIHVtb2RlX3QgaV9tb2RlOwogICAgICAgIG5saW5rX3QgaV9ubGluazsKICAgICAg ICB1aWRfdCBpX3VpZDsKICAgICAgICBnaWRfdCBpX2dpZDsKICAgICAgICBrZGV2X3QgaV9yZGV2 OwogICAgICAgIGxvZmZfdCBpX3NpemU7CiAgICAgICAgdGltZV90IGlfYXRpbWU7CiAgICAgICAg dGltZV90IGlfbXRpbWU7CiAgICAgICAgdGltZV90IGlfY3RpbWU7CiAgICAgICAgdW5zaWduZWQg bG9uZyBpX2Jsa3NpemU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBpX2Jsb2NrczsKICAgICAgICB1 bnNpZ25lZCBsb25nIGlfdmVyc2lvbjsKICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlIGlfc2VtOwog ICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgaV96b21iaWU7CiAgICAgICAgc3RydWN0IGlub2RlX29w ZXJhdGlvbnMgKmlfb3A7CiAgICAgICAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqaV9mb3A7CiAg ICAgICAgc3RydWN0IHN1cGVyX2Jsb2NrICppX3NiOwogICAgICAgIHdhaXRfcXVldWVfaGVhZF90 IGlfd2FpdDsKICAgICAgICBzdHJ1Y3QgZmlsZV9sb2NrICppX2Zsb2NrOwogICAgICAgIHN0cnVj dCBhZGRyZXNzX3NwYWNlICppX21hcHBpbmc7CiAgICAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2Ug aV9kYXRhOwogICAgICAgIHN0cnVjdCBkcXVvdCAqaV9kcXVvdFsyXTsKCiAgICAgICAgc3RydWN0 IHBpcGVfaW5vZGVfaW5mbyAqaV9waXBlOwogICAgICAgIHN0cnVjdCBibG9ja19kZXZpY2UgKmlf YmRldjsKICAgICAgICBzdHJ1Y3QgY2hhcl9kZXZpY2UgKmlfY2RldjsKCiAgICAgICAgdW5zaWdu ZWQgbG9uZyBpX2Rub3RpZnlfbWFzazsKICAgICAgICBzdHJ1Y3QgZG5vdGlmeV9zdHJ1Y3QgKmlf ZG5vdGlmeTsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBpX3N0YXRlOwoKICAgICAgICB1bnNpZ25l ZCBpbnQgaV9mbGFnczsKICAgICAgICB1bnNpZ25lZCBjaGFyIGlfc29jazsKCiAgICAgICAgYXRv bWljX3QgaV93cml0ZWNvdW50OwogICAgICAgIHVuc2lnbmVkIGludCBpX2F0dHJfZmxhZ3M7CiAg ICAgICAgX191MzIgaV9nZW5lcmF0aW9uOwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAg IHN0cnVjdCBtaW5peF9pbm9kZV9pbmZvIG1pbml4X2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3Qg ZXh0Ml9pbm9kZV9pbmZvIGV4dDJfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCBocGZzX2lub2Rl X2luZm8gaHBmc19pOwogICAgICAgICAgICAgICAgc3RydWN0IG50ZnNfaW5vZGVfaW5mbyBudGZz X2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgbXNkb3NfaW5vZGVfaW5mbyBtc2Rvc19pOwogICAg ICAgICAgICAgICAgc3RydWN0IHVtc2Rvc19pbm9kZV9pbmZvIHVtc2Rvc19pOwogICAgICAgICAg ICAgICAgc3RydWN0IGlzb19pbm9kZV9pbmZvIGlzb2ZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1 Y3QgbmZzX2lub2RlX2luZm8gbmZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3lzdl9pbm9k ZV9pbmZvIHN5c3ZfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCBhZmZzX2lub2RlX2luZm8gYWZm c19pOwogICAgICAgICAgICAgICAgc3RydWN0IHVmc19pbm9kZV9pbmZvIHVmc19pOwogICAgICAg ICAgICAgICAgc3RydWN0IGVmc19pbm9kZV9pbmZvIGVmc19pOwogICAgICAgICAgICAgICAgc3Ry dWN0IHJvbWZzX2lub2RlX2luZm8gcm9tZnNfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCBzaG1l bV9pbm9kZV9pbmZvIHNobWVtX2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgY29kYV9pbm9kZV9p bmZvIGNvZGFfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCBzbWJfaW5vZGVfaW5mbyBzbWJmc19p OwogICAgICAgICAgICAgICAgc3RydWN0IGhmc19pbm9kZV9pbmZvIGhmc19pOwogICAgICAgICAg ICAgICAgc3RydWN0IGFkZnNfaW5vZGVfaW5mbyBhZGZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1 Y3QgcW54NF9pbm9kZV9pbmZvIHFueDRfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCByZWlzZXJm c19pbm9kZV9pbmZvIHJlaXNlcmZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgYmZzX2lub2Rl X2luZm8gYmZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgdWRmX2lub2RlX2luZm8gdWRmX2k7 CiAgICAgICAgICAgICAgICBzdHJ1Y3QgbmNwX2lub2RlX2luZm8gbmNwZnNfaTsKICAgICAgICAg ICAgICAgIHN0cnVjdCBwcm9jX2lub2RlX2luZm8gcHJvY19pOwogICAgICAgICAgICAgICAgc3Ry dWN0IHNvY2tldCBzb2NrZXRfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCB1c2JkZXZfaW5vZGVf aW5mbyB1c2JkZXZfaTsKICAgICAgICAgICAgICAgIHZvaWQgKmdlbmVyaWNfaXA7CiAgICAgICAg fSB1Owp9OwoKc3RydWN0IGZvd25fc3RydWN0IHsKICAgICAgICBpbnQgcGlkOwogICAgICAgIHVp ZF90IHVpZCwgZXVpZDsKICAgICAgICBpbnQgc2lnbnVtOwp9OwoKc3RydWN0IGZpbGUgewogICAg ICAgIHN0cnVjdCBsaXN0X2hlYWQgZl9saXN0OwogICAgICAgIHN0cnVjdCBkZW50cnkgKmZfZGVu dHJ5OwogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqZl92ZnNtbnQ7CiAgICAgICAgc3RydWN0IGZp bGVfb3BlcmF0aW9ucyAqZl9vcDsKICAgICAgICBhdG9taWNfdCBmX2NvdW50OwogICAgICAgIHVu c2lnbmVkIGludCBmX2ZsYWdzOwogICAgICAgIG1vZGVfdCBmX21vZGU7CiAgICAgICAgbG9mZl90 IGZfcG9zOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZl9yZWFkYSwgZl9yYW1heCwgZl9yYWVuZCwg Zl9yYWxlbiwgZl9yYXdpbjsKICAgICAgICBzdHJ1Y3QgZm93bl9zdHJ1Y3QgZl9vd25lcjsKICAg ICAgICB1bnNpZ25lZCBpbnQgZl91aWQsIGZfZ2lkOwogICAgICAgIGludCBmX2Vycm9yOwoKICAg ICAgICB1bnNpZ25lZCBsb25nIGZfdmVyc2lvbjsKCgogICAgICAgIHZvaWQgKnByaXZhdGVfZGF0 YTsKfTsKZXh0ZXJuIHNwaW5sb2NrX3QgZmlsZXNfbG9ja19Sc21wX2MyYmUyMTc5OwojZGVmaW5l IGZpbGVfbGlzdF9sb2NrKCkgc3Bpbl9sb2NrKCZmaWxlc19sb2NrKTsKI2RlZmluZSBmaWxlX2xp c3RfdW5sb2NrKCkgc3Bpbl91bmxvY2soJmZpbGVzX2xvY2spOwoKI2RlZmluZSBnZXRfZmlsZSh4 KSBhdG9taWNfaW5jKCYoeCktPmZfY291bnQpCiNkZWZpbmUgZmlsZV9jb3VudCh4KSBhdG9taWNf cmVhZCgmKHgpLT5mX2NvdW50KQoKZXh0ZXJuIGludCBpbml0X3ByaXZhdGVfZmlsZV9Sc21wXzFj ZWU0YTkwKHN0cnVjdCBmaWxlICosIHN0cnVjdCBkZW50cnkgKiwgaW50KTsKCiNkZWZpbmUgTUFY X05PTl9MRlMgKCgxVUw8PDMxKSAtIDEpCgojZGVmaW5lIEZMX1BPU0lYIDEKI2RlZmluZSBGTF9G TE9DSyAyCiNkZWZpbmUgRkxfQlJPS0VOIDQKI2RlZmluZSBGTF9BQ0NFU1MgOAojZGVmaW5lIEZM X0xPQ0tEIDE2CiNkZWZpbmUgRkxfTEVBU0UgMzIKIyA1NDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgvZnMuaCIKdHlwZWRlZiBzdHJ1Y3QgZmlsZXNfc3RydWN0ICpmbF9vd25l cl90OwoKc3RydWN0IGZpbGVfbG9jayB7CiAgICAgICAgc3RydWN0IGZpbGVfbG9jayAqZmxfbmV4 dDsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGZsX2xpbms7CiAgICAgICAgc3RydWN0IGxpc3Rf aGVhZCBmbF9ibG9jazsKICAgICAgICBmbF9vd25lcl90IGZsX293bmVyOwogICAgICAgIHVuc2ln bmVkIGludCBmbF9waWQ7CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3QgZmxfd2FpdDsKICAgICAg ICBzdHJ1Y3QgZmlsZSAqZmxfZmlsZTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGZsX2ZsYWdzOwog ICAgICAgIHVuc2lnbmVkIGNoYXIgZmxfdHlwZTsKICAgICAgICBsb2ZmX3QgZmxfc3RhcnQ7CiAg ICAgICAgbG9mZl90IGZsX2VuZDsKCiAgICAgICAgdm9pZCAoKmZsX25vdGlmeSkoc3RydWN0IGZp bGVfbG9jayAqKTsKICAgICAgICB2b2lkICgqZmxfaW5zZXJ0KShzdHJ1Y3QgZmlsZV9sb2NrICop OwogICAgICAgIHZvaWQgKCpmbF9yZW1vdmUpKHN0cnVjdCBmaWxlX2xvY2sgKik7CgogICAgICAg IHN0cnVjdCBmYXN5bmNfc3RydWN0ICogZmxfZmFzeW5jOwoKICAgICAgICB1bmlvbiB7CiAgICAg ICAgICAgICAgICBzdHJ1Y3QgbmZzX2xvY2tfaW5mbyBuZnNfZmw7CiAgICAgICAgfSBmbF91Owp9 OwoKCgojZGVmaW5lIElOVF9MSU1JVCh4KSAofigoeCkxIDw8IChzaXplb2YoeCkqOCAtIDEpKSkK I2RlZmluZSBPRkZTRVRfTUFYIElOVF9MSU1JVChsb2ZmX3QpCiNkZWZpbmUgT0ZGVF9PRkZTRVRf TUFYIElOVF9MSU1JVChvZmZfdCkKCgpleHRlcm4gc3RydWN0IGxpc3RfaGVhZCBmaWxlX2xvY2tf bGlzdF9Sc21wXzZlODUxMTlkOwoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L2ZjbnRsLmgiIDEKCiNkZWZpbmUgX0xJTlVYX0ZDTlRMX0gKCiMgMSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9hc20vZmNudGwuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfRkNOVExf SAojIDE0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9mY250bC5oIgojZGVmaW5l IE9fQUNDTU9ERSAwMDAzCiNkZWZpbmUgT19SRE9OTFkgMDAKI2RlZmluZSBPX1dST05MWSAwMQoj ZGVmaW5lIE9fUkRXUiAwMgojZGVmaW5lIE9fQ1JFQVQgMDEwMAojZGVmaW5lIE9fRVhDTCAwMjAw CiNkZWZpbmUgT19OT0NUVFkgMDQwMAojZGVmaW5lIE9fVFJVTkMgMDEwMDAKI2RlZmluZSBPX0FQ UEVORCAwMjAwMAojZGVmaW5lIE9fTk9OQkxPQ0sgMDQwMDAKI2RlZmluZSBPX05ERUxBWSBPX05P TkJMT0NLCiNkZWZpbmUgT19TWU5DIDAxMDAwMAojZGVmaW5lIEZBU1lOQyAwMjAwMDAKI2RlZmlu ZSBPX0RJUkVDVCAwNDAwMDAKI2RlZmluZSBPX0xBUkdFRklMRSAwMTAwMDAwCiNkZWZpbmUgT19E SVJFQ1RPUlkgMDIwMDAwMAojZGVmaW5lIE9fTk9GT0xMT1cgMDQwMDAwMAoKI2RlZmluZSBGX0RV UEZEIDAKI2RlZmluZSBGX0dFVEZEIDEKI2RlZmluZSBGX1NFVEZEIDIKI2RlZmluZSBGX0dFVEZM IDMKI2RlZmluZSBGX1NFVEZMIDQKI2RlZmluZSBGX0dFVExLIDUKI2RlZmluZSBGX1NFVExLIDYK I2RlZmluZSBGX1NFVExLVyA3CgojZGVmaW5lIEZfU0VUT1dOIDgKI2RlZmluZSBGX0dFVE9XTiA5 CiNkZWZpbmUgRl9TRVRTSUcgMTAKI2RlZmluZSBGX0dFVFNJRyAxMQoKCiNkZWZpbmUgRkRfQ0xP RVhFQyAxCgoKI2RlZmluZSBGX1JETENLIDAKI2RlZmluZSBGX1dSTENLIDEKI2RlZmluZSBGX1VO TENLIDIKCgojZGVmaW5lIEZfRVhMQ0sgNAojZGVmaW5lIEZfU0hMQ0sgOAoKCiNkZWZpbmUgRl9J TlBST0dSRVNTIDE2CgoKI2RlZmluZSBMT0NLX1NIIDEKI2RlZmluZSBMT0NLX0VYIDIKI2RlZmlu ZSBMT0NLX05CIDQKCiNkZWZpbmUgTE9DS19VTiA4CgojZGVmaW5lIExPQ0tfTUFORCAzMgojZGVm aW5lIExPQ0tfUkVBRCA2NAojZGVmaW5lIExPQ0tfV1JJVEUgMTI4CiNkZWZpbmUgTE9DS19SVyAx OTIKCnN0cnVjdCBmbG9jayB7CiAgICAgICAgc2hvcnQgbF90eXBlOwogICAgICAgIHNob3J0IGxf d2hlbmNlOwogICAgICAgIG9mZl90IGxfc3RhcnQ7CiAgICAgICAgb2ZmX3QgbF9sZW47CiAgICAg ICAgcGlkX3QgbF9waWQ7Cn07CgoKI2RlZmluZSBmbG9jazY0IGZsb2NrCgoKI2RlZmluZSBGX0xJ TlVYX1NQRUNJRklDX0JBU0UgMTAyNAojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvZmNudGwuaCIgMgoKI2RlZmluZSBGX1NFVExFQVNFIChGX0xJTlVYX1NQRUNJRklDX0JB U0UrMCkKI2RlZmluZSBGX0dFVExFQVNFIChGX0xJTlVYX1NQRUNJRklDX0JBU0UrMSkKCgoKCgoj ZGVmaW5lIEZfTk9USUZZIChGX0xJTlVYX1NQRUNJRklDX0JBU0UrMikKCgoKCiNkZWZpbmUgRE5f QUNDRVNTIDB4MDAwMDAwMDEKI2RlZmluZSBETl9NT0RJRlkgMHgwMDAwMDAwMgojZGVmaW5lIERO X0NSRUFURSAweDAwMDAwMDA0CiNkZWZpbmUgRE5fREVMRVRFIDB4MDAwMDAwMDgKI2RlZmluZSBE Tl9SRU5BTUUgMHgwMDAwMDAxMAojZGVmaW5lIEROX0FUVFJJQiAweDAwMDAwMDIwCiNkZWZpbmUg RE5fTVVMVElTSE9UIDB4ODAwMDAwMDAKIyA1NzcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvZnMuaCIgMgoKZXh0ZXJuIGludCBmY250bF9nZXRsayh1bnNpZ25lZCBpbnQsIHN0 cnVjdCBmbG9jayAqKTsKZXh0ZXJuIGludCBmY250bF9zZXRsayh1bnNpZ25lZCBpbnQsIHVuc2ln bmVkIGludCwgc3RydWN0IGZsb2NrICopOwoKZXh0ZXJuIGludCBmY250bF9nZXRsazY0KHVuc2ln bmVkIGludCwgc3RydWN0IGZsb2NrICopOwpleHRlcm4gaW50IGZjbnRsX3NldGxrNjQodW5zaWdu ZWQgaW50LCB1bnNpZ25lZCBpbnQsIHN0cnVjdCBmbG9jayAqKTsKCgpleHRlcm4gdm9pZCBsb2Nr c19pbml0X2xvY2tfUnNtcF9mMDAzZWQxOShzdHJ1Y3QgZmlsZV9sb2NrICopOwpleHRlcm4gdm9p ZCBsb2Nrc19jb3B5X2xvY2tfUnNtcF85OThiOGRkMyhzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVj dCBmaWxlX2xvY2sgKik7CmV4dGVybiB2b2lkIGxvY2tzX3JlbW92ZV9wb3NpeChzdHJ1Y3QgZmls ZSAqLCBmbF9vd25lcl90KTsKZXh0ZXJuIHZvaWQgbG9ja3NfcmVtb3ZlX2Zsb2NrKHN0cnVjdCBm aWxlICopOwpleHRlcm4gc3RydWN0IGZpbGVfbG9jayAqcG9zaXhfdGVzdF9sb2NrX1JzbXBfZGU4 ZTAwNzIoc3RydWN0IGZpbGUgKiwgc3RydWN0IGZpbGVfbG9jayAqKTsKZXh0ZXJuIGludCBwb3Np eF9sb2NrX2ZpbGVfUnNtcF8yNDRmNzUyZShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgZmlsZV9sb2Nr ICosIHVuc2lnbmVkIGludCk7CmV4dGVybiB2b2lkIHBvc2l4X2Jsb2NrX2xvY2tfUnNtcF9jMjA0 MjgwZChzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVjdCBmaWxlX2xvY2sgKik7CmV4dGVybiB2b2lk IHBvc2l4X3VuYmxvY2tfbG9ja19Sc21wXzk1MGU4YWQ2KHN0cnVjdCBmaWxlX2xvY2sgKik7CmV4 dGVybiBpbnQgX19nZXRfbGVhc2VfUnNtcF84MTFjNWE4OShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1 bnNpZ25lZCBpbnQgZmxhZ3MpOwpleHRlcm4gdGltZV90IGxlYXNlX2dldF9tdGltZV9Sc21wX2M4 ZDZiZDdmKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIGludCBsb2NrX21heV9yZWFkX1JzbXBfMzE2 ZTUwN2Yoc3RydWN0IGlub2RlICosIGxvZmZfdCBzdGFydCwgdW5zaWduZWQgbG9uZyBjb3VudCk7 CmV4dGVybiBpbnQgbG9ja19tYXlfd3JpdGVfUnNtcF84YmRhODFlYShzdHJ1Y3QgaW5vZGUgKiwg bG9mZl90IHN0YXJ0LCB1bnNpZ25lZCBsb25nIGNvdW50KTsKCnN0cnVjdCBmYXN5bmNfc3RydWN0 IHsKICAgICAgICBpbnQgbWFnaWM7CiAgICAgICAgaW50IGZhX2ZkOwogICAgICAgIHN0cnVjdCBm YXN5bmNfc3RydWN0ICpmYV9uZXh0OwogICAgICAgIHN0cnVjdCBmaWxlICpmYV9maWxlOwp9OwoK I2RlZmluZSBGQVNZTkNfTUFHSUMgMHg0NjAxCgoKZXh0ZXJuIGludCBmYXN5bmNfaGVscGVyX1Jz bXBfYjI2ZWVmMzAoaW50LCBzdHJ1Y3QgZmlsZSAqLCBpbnQsIHN0cnVjdCBmYXN5bmNfc3RydWN0 ICoqKTsKCmV4dGVybiB2b2lkIGtpbGxfZmFzeW5jX1JzbXBfNDY4MjAzNGMoc3RydWN0IGZhc3lu Y19zdHJ1Y3QgKiosIGludCwgaW50KTsKCmV4dGVybiB2b2lkIF9fa2lsbF9mYXN5bmNfUnNtcF8w MmNmODc3MihzdHJ1Y3QgZmFzeW5jX3N0cnVjdCAqLCBpbnQsIGludCk7CgpzdHJ1Y3QgbmFtZWlk YXRhIHsKICAgICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7CiAgICAgICAgc3RydWN0IHZmc21v dW50ICptbnQ7CiAgICAgICAgc3RydWN0IHFzdHIgbGFzdDsKICAgICAgICB1bnNpZ25lZCBpbnQg ZmxhZ3M7CiAgICAgICAgaW50IGxhc3RfdHlwZTsKfTsKCiNkZWZpbmUgRFFVT1RfVVNSX0VOQUJM RUQgMHgwMQojZGVmaW5lIERRVU9UX0dSUF9FTkFCTEVEIDB4MDIKCnN0cnVjdCBxdW90YV9tb3Vu dF9vcHRpb25zCnsKICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAgICAgICAgc3RydWN0IHNl bWFwaG9yZSBkcWlvX3NlbTsKICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlIGRxb2ZmX3NlbTsKICAg ICAgICBzdHJ1Y3QgZmlsZSAqZmlsZXNbMl07CiAgICAgICAgdGltZV90IGlub2RlX2V4cGlyZVsy XTsKICAgICAgICB0aW1lX3QgYmxvY2tfZXhwaXJlWzJdOwogICAgICAgIGNoYXIgcnNxdWFzaFsy XTsKfTsKCgoKCgojZGVmaW5lIE1OVF9GT1JDRSAweDAwMDAwMDAxCgojIDEgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbWluaXhfZnNfc2IuaCIgMQoKI2RlZmluZSBfTUlOSVhf RlNfU0IKCgoKCnN0cnVjdCBtaW5peF9zYl9pbmZvIHsKICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgbG9uZyBzX25pbm9kZXM7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgc19uem9uZXM7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc19p bWFwX2Jsb2NrczsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzX3ptYXBf YmxvY2tzOwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNfZmlyc3RkYXRh em9uZTsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzX2xvZ196b25lX3Np emU7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc19tYXhfc2l6ZTsKICAg ICAgICAgICAgICAgICAgICAgICAgaW50IHNfZGlyc2l6ZTsKICAgICAgICAgICAgICAgICAgICAg ICAgaW50IHNfbmFtZWxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNfbGlua19tYXg7 CiAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqKiBzX2ltYXA7CiAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqKiBzX3ptYXA7CiAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqIHNfc2JoOwogICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgbWluaXhfc3VwZXJfYmxvY2sgKiBzX21zOwogICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBzX21vdW50X3N0YXRlOwogICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBzX3ZlcnNpb247Cn07CiMgNjQzICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L2V4dDJfZnNfc2IuaCIgMQojIDE3ICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L2V4dDJfZnNfc2IuaCIKI2RlZmluZSBfTElOVVhfRVhUMl9GU19TQgoK CgoKCgoKI2RlZmluZSBFWFQyX01BWF9HUk9VUF9MT0FERUQgOAoKCgoKc3RydWN0IGV4dDJfc2Jf aW5mbyB7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2ZyYWdfc2l6ZTsKICAgICAgICB1bnNpZ25l ZCBsb25nIHNfZnJhZ3NfcGVyX2Jsb2NrOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc19pbm9kZXNf cGVyX2Jsb2NrOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc19mcmFnc19wZXJfZ3JvdXA7CiAgICAg ICAgdW5zaWduZWQgbG9uZyBzX2Jsb2Nrc19wZXJfZ3JvdXA7CiAgICAgICAgdW5zaWduZWQgbG9u ZyBzX2lub2Rlc19wZXJfZ3JvdXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2l0Yl9wZXJfZ3Jv dXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2dkYl9jb3VudDsKICAgICAgICB1bnNpZ25lZCBs b25nIHNfZGVzY19wZXJfYmxvY2s7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2dyb3Vwc19jb3Vu dDsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBzX3NiaDsKICAgICAgICBzdHJ1Y3QgZXh0 Ml9zdXBlcl9ibG9jayAqIHNfZXM7CiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICoqIHNfZ3Jv dXBfZGVzYzsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzX2xvYWRlZF9pbm9kZV9iaXRtYXBzOwog ICAgICAgIHVuc2lnbmVkIHNob3J0IHNfbG9hZGVkX2Jsb2NrX2JpdG1hcHM7CiAgICAgICAgdW5z aWduZWQgbG9uZyBzX2lub2RlX2JpdG1hcF9udW1iZXJbOF07CiAgICAgICAgc3RydWN0IGJ1ZmZl cl9oZWFkICogc19pbm9kZV9iaXRtYXBbOF07CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2Jsb2Nr X2JpdG1hcF9udW1iZXJbOF07CiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICogc19ibG9ja19i aXRtYXBbOF07CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX21vdW50X29wdDsKICAgICAgICB1aWRf dCBzX3Jlc3VpZDsKICAgICAgICBnaWRfdCBzX3Jlc2dpZDsKICAgICAgICB1bnNpZ25lZCBzaG9y dCBzX21vdW50X3N0YXRlOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHNfcGFkOwogICAgICAgIGlu dCBzX2FkZHJfcGVyX2Jsb2NrX2JpdHM7CiAgICAgICAgaW50IHNfZGVzY19wZXJfYmxvY2tfYml0 czsKICAgICAgICBpbnQgc19pbm9kZV9zaXplOwogICAgICAgIGludCBzX2ZpcnN0X2lubzsKfTsK IyA2NDQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvaHBmc19mc19zYi5oIiAxCgojZGVmaW5l IF9IUEZTX0ZTX1NCCgpzdHJ1Y3QgaHBmc19zYl9pbmZvIHsKICAgICAgICBpbm9fdCBzYl9yb290 OwogICAgICAgIHVuc2lnbmVkIHNiX2ZzX3NpemU7CiAgICAgICAgdW5zaWduZWQgc2JfYml0bWFw czsKICAgICAgICB1bnNpZ25lZCBzYl9kaXJiYW5kX3N0YXJ0OwogICAgICAgIHVuc2lnbmVkIHNi X2RpcmJhbmRfc2l6ZTsKICAgICAgICB1bnNpZ25lZCBzYl9kbWFwOwogICAgICAgIHVuc2lnbmVk IHNiX25fZnJlZTsKICAgICAgICB1bnNpZ25lZCBzYl9uX2ZyZWVfZG5vZGVzOwogICAgICAgIHVp ZF90IHNiX3VpZDsKICAgICAgICBnaWRfdCBzYl9naWQ7CiAgICAgICAgdW1vZGVfdCBzYl9tb2Rl OwogICAgICAgIHVuc2lnbmVkIHNiX2NvbnYgOiAyOwogICAgICAgIHVuc2lnbmVkIHNiX2VhcyA6 IDI7CiAgICAgICAgdW5zaWduZWQgc2JfZXJyIDogMjsKICAgICAgICB1bnNpZ25lZCBzYl9jaGsg OiAyOwogICAgICAgIHVuc2lnbmVkIHNiX2xvd2VyY2FzZSA6IDE7CiAgICAgICAgdW5zaWduZWQg c2Jfd2FzX2Vycm9yIDogMTsKICAgICAgICB1bnNpZ25lZCBzYl9jaGtkc2sgOiAyOwogICAgICAg IHVuc2lnbmVkIHNiX3JkX2Zub2RlIDogMjsKICAgICAgICB1bnNpZ25lZCBzYl9yZF9pbm9kZSA6 IDI7CgoKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCBzYl9pZ2V0X3E7CiAgICAgICAgdW5zaWdu ZWQgY2hhciAqc2JfY3BfdGFibGU7CgoKICAgICAgICB1bnNpZ25lZCAqc2JfYm1wX2RpcjsKICAg ICAgICB1bnNpZ25lZCBzYl9jX2JpdG1hcDsKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCBzYl9j cmVhdGlvbl9kZTsKCiAgICAgICAgdW5zaWduZWQgc2JfY3JlYXRpb25fZGVfbG9jayA6IDE7Cgog ICAgICAgIGludCBzYl90aW1lc2hpZnQ7Cn07CgojZGVmaW5lIHNfaHBmc19yb290IHUuaHBmc19z Yi5zYl9yb290CiNkZWZpbmUgc19ocGZzX2ZzX3NpemUgdS5ocGZzX3NiLnNiX2ZzX3NpemUKI2Rl ZmluZSBzX2hwZnNfYml0bWFwcyB1LmhwZnNfc2Iuc2JfYml0bWFwcwojZGVmaW5lIHNfaHBmc19k aXJiYW5kX3N0YXJ0IHUuaHBmc19zYi5zYl9kaXJiYW5kX3N0YXJ0CiNkZWZpbmUgc19ocGZzX2Rp cmJhbmRfc2l6ZSB1LmhwZnNfc2Iuc2JfZGlyYmFuZF9zaXplCiNkZWZpbmUgc19ocGZzX2RtYXAg dS5ocGZzX3NiLnNiX2RtYXAKI2RlZmluZSBzX2hwZnNfdWlkIHUuaHBmc19zYi5zYl91aWQKI2Rl ZmluZSBzX2hwZnNfZ2lkIHUuaHBmc19zYi5zYl9naWQKI2RlZmluZSBzX2hwZnNfbW9kZSB1Lmhw ZnNfc2Iuc2JfbW9kZQojZGVmaW5lIHNfaHBmc19uX2ZyZWUgdS5ocGZzX3NiLnNiX25fZnJlZQoj ZGVmaW5lIHNfaHBmc19uX2ZyZWVfZG5vZGVzIHUuaHBmc19zYi5zYl9uX2ZyZWVfZG5vZGVzCiNk ZWZpbmUgc19ocGZzX2xvd2VyY2FzZSB1LmhwZnNfc2Iuc2JfbG93ZXJjYXNlCiNkZWZpbmUgc19o cGZzX2NvbnYgdS5ocGZzX3NiLnNiX2NvbnYKI2RlZmluZSBzX2hwZnNfZWFzIHUuaHBmc19zYi5z Yl9lYXMKI2RlZmluZSBzX2hwZnNfZXJyIHUuaHBmc19zYi5zYl9lcnIKI2RlZmluZSBzX2hwZnNf Y2hrIHUuaHBmc19zYi5zYl9jaGsKI2RlZmluZSBzX2hwZnNfd2FzX2Vycm9yIHUuaHBmc19zYi5z Yl93YXNfZXJyb3IKI2RlZmluZSBzX2hwZnNfY2hrZHNrIHUuaHBmc19zYi5zYl9jaGtkc2sKCiNk ZWZpbmUgc19ocGZzX3JkX2lub2RlIHUuaHBmc19zYi5zYl9yZF9pbm9kZQojZGVmaW5lIHNfaHBm c19jcF90YWJsZSB1LmhwZnNfc2Iuc2JfY3BfdGFibGUKI2RlZmluZSBzX2hwZnNfYm1wX2RpciB1 LmhwZnNfc2Iuc2JfYm1wX2RpcgojZGVmaW5lIHNfaHBmc19jX2JpdG1hcCB1LmhwZnNfc2Iuc2Jf Y19iaXRtYXAKI2RlZmluZSBzX2hwZnNfY3JlYXRpb25fZGUgdS5ocGZzX3NiLnNiX2NyZWF0aW9u X2RlCiNkZWZpbmUgc19ocGZzX2NyZWF0aW9uX2RlX2xvY2sgdS5ocGZzX3NiLnNiX2NyZWF0aW9u X2RlX2xvY2sKI2RlZmluZSBzX2hwZnNfaWdldF9xIHUuaHBmc19zYi5zYl9pZ2V0X3EKCiNkZWZp bmUgc19ocGZzX3RpbWVzaGlmdCB1LmhwZnNfc2Iuc2JfdGltZXNoaWZ0CiMgNjQ1ICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L250ZnNfZnNfc2IuaCIgMQoKI2RlZmluZSBfTElOVVhfTlRGU19G U19TQl9ICgp0eXBlZGVmIF9fczY0IExDTjsKCnN0cnVjdCBudGZzX3NiX2luZm97CgogICAgICAg IG50ZnNfdWlkX3QgdWlkOwogICAgICAgIG50ZnNfZ2lkX3QgZ2lkOwogICAgICAgIG50bW9kZV90 IHVtYXNrOwogICAgICAgIHVuc2lnbmVkIGludCBuY3Q7CiAgICAgICAgdm9pZCAqbmxzX21hcDsK ICAgICAgICB1bnNpZ25lZCBpbnQgbmd0OwoKCiAgICAgICAgbnRmc19zaXplX3QgcGFydGl0aW9u X2JpYXM7CgogICAgICAgIG50ZnNfdTMyIGF0X3N0YW5kYXJkX2luZm9ybWF0aW9uOwogICAgICAg IG50ZnNfdTMyIGF0X2F0dHJpYnV0ZV9saXN0OwogICAgICAgIG50ZnNfdTMyIGF0X2ZpbGVfbmFt ZTsKICAgICAgICBudGZzX3UzMiBhdF92b2x1bWVfdmVyc2lvbjsKICAgICAgICBudGZzX3UzMiBh dF9zZWN1cml0eV9kZXNjcmlwdG9yOwogICAgICAgIG50ZnNfdTMyIGF0X3ZvbHVtZV9uYW1lOwog ICAgICAgIG50ZnNfdTMyIGF0X3ZvbHVtZV9pbmZvcm1hdGlvbjsKICAgICAgICBudGZzX3UzMiBh dF9kYXRhOwogICAgICAgIG50ZnNfdTMyIGF0X2luZGV4X3Jvb3Q7CiAgICAgICAgbnRmc191MzIg YXRfaW5kZXhfYWxsb2NhdGlvbjsKICAgICAgICBudGZzX3UzMiBhdF9iaXRtYXA7CiAgICAgICAg bnRmc191MzIgYXRfc3ltbGluazsKCiAgICAgICAgaW50IHNlY3Rvcl9zaXplOwogICAgICAgIGlu dCBjbHVzdGVyX3NpemU7CiAgICAgICAgaW50IGNsdXN0ZXJfc2l6ZV9iaXRzOwogICAgICAgIGlu dCBtZnRfY2x1c3RlcnNfcGVyX3JlY29yZDsKICAgICAgICBpbnQgbWZ0X3JlY29yZF9zaXplOwog ICAgICAgIGludCBtZnRfcmVjb3JkX3NpemVfYml0czsKICAgICAgICBpbnQgaW5kZXhfY2x1c3Rl cnNfcGVyX3JlY29yZDsKICAgICAgICBpbnQgaW5kZXhfcmVjb3JkX3NpemU7CiAgICAgICAgaW50 IGluZGV4X3JlY29yZF9zaXplX2JpdHM7CiAgICAgICAgTENOIG1mdF9sY247CgogICAgICAgIHVu c2lnbmVkIGNoYXIgKm1mdDsKICAgICAgICB1bnNpZ25lZCBzaG9ydCAqdXBjYXNlOwogICAgICAg IHVuc2lnbmVkIGludCB1cGNhc2VfbGVuZ3RoOwoKICAgICAgICBzdHJ1Y3QgbnRmc19pbm9kZV9p bmZvICptZnRfaW5vOwogICAgICAgIHN0cnVjdCBudGZzX2lub2RlX2luZm8gKm1mdG1pcnI7CiAg ICAgICAgc3RydWN0IG50ZnNfaW5vZGVfaW5mbyAqYml0bWFwOwogICAgICAgIHN0cnVjdCBzdXBl cl9ibG9jayAqc2I7CiAgICAgICAgdW5zaWduZWQgY2hhciBpbm9fZmxhZ3M7Cn07CiMgNjQ2ICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21zZG9zX2ZzX3NiLmgiIDEKCiNkZWZpbmUgX01TRE9T X0ZTX1NCCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mYXRfY3ZmLmgi IDEKCiNkZWZpbmUgX0ZBVF9DVkYKCiNkZWZpbmUgQ1ZGX1VTRV9SRUFEUEFHRSAweDAwMDEKCnN0 cnVjdCBjdmZfZm9ybWF0CnsgaW50IGN2Zl92ZXJzaW9uOwogIGNoYXIqIGN2Zl92ZXJzaW9uX3Rl eHQ7CiAgdW5zaWduZWQgbG9uZyBmbGFnczsKICBpbnQgKCpkZXRlY3RfY3ZmKSAoc3RydWN0IHN1 cGVyX2Jsb2NrKnNiKTsKICBpbnQgKCptb3VudF9jdmYpIChzdHJ1Y3Qgc3VwZXJfYmxvY2sqc2Is Y2hhcipvcHRpb25zKTsKICBpbnQgKCp1bm1vdW50X2N2ZikgKHN0cnVjdCBzdXBlcl9ibG9jaypz Yik7CiAgc3RydWN0IGJ1ZmZlcl9oZWFkKiAoKmN2Zl9icmVhZCkgKHN0cnVjdCBzdXBlcl9ibG9j aypzYixpbnQgYmxvY2spOwogIHN0cnVjdCBidWZmZXJfaGVhZCogKCpjdmZfZ2V0YmxrKSAoc3Ry dWN0IHN1cGVyX2Jsb2NrKnNiLGludCBibG9jayk7CiAgdm9pZCAoKmN2Zl9icmVsc2UpIChzdHJ1 Y3Qgc3VwZXJfYmxvY2sgKnNiLHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpOwogIHZvaWQgKCpjdmZf bWFya19idWZmZXJfZGlydHkpIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKTsKICB2b2lkICgqY3ZmX3Nl dF91cHRvZGF0ZSkgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLAogICAgICAgICAgICAgICAgICAgICAgICAgaW50 IHZhbCk7CiAgaW50ICgqY3ZmX2lzX3VwdG9kYXRlKSAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYixz dHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKTsKICB2b2lkICgqY3ZmX2xsX3J3X2Jsb2NrKSAoc3RydWN0 IHN1cGVyX2Jsb2NrICpzYiwKICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wciwKICAgICAg ICAgICAgICAgICAgICAgICAgaW50IG5icmVxLAogICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgYnVmZmVyX2hlYWQgKmJoWzMyXSk7CiAgaW50ICgqZmF0X2FjY2VzcykgKHN0cnVjdCBzdXBl cl9ibG9jayAqc2IsaW50IG5yLGludCBuZXdfdmFsdWUpOwogIGludCAoKmN2Zl9zdGF0ZnMpIChz dHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLHN0cnVjdCBzdGF0ZnMgKmJ1ZiwgaW50IGJ1ZnNpeik7CiAg aW50ICgqY3ZmX2JtYXApIChzdHJ1Y3QgaW5vZGUgKmlub2RlLGludCBibG9jayk7CiAgc3NpemVf dCAoKmN2Zl9maWxlX3JlYWQpICggc3RydWN0IGZpbGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZf dCAqKTsKICBzc2l6ZV90ICgqY3ZmX2ZpbGVfd3JpdGUpICggc3RydWN0IGZpbGUgKiwgY29uc3Qg Y2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKICBpbnQgKCpjdmZfbW1hcCkgKHN0cnVjdCBmaWxl ICosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqKTsKICBpbnQgKCpjdmZfcmVhZHBhZ2UpIChzdHJ1 Y3QgaW5vZGUgKiwgc3RydWN0IHBhZ2UgKik7CiAgaW50ICgqY3ZmX3dyaXRlcGFnZSkgKHN0cnVj dCBpbm9kZSAqLCBzdHJ1Y3QgcGFnZSAqKTsKICBpbnQgKCpjdmZfZGlyX2lvY3RsKSAoc3RydWN0 IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlscCwKICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOwogIHZvaWQgKCp6ZXJvX291 dF9jbHVzdGVyKSAoc3RydWN0IGlub2RlKiwgaW50IGNsdXN0ZXJucik7Cn07CgppbnQgcmVnaXN0 ZXJfY3ZmX2Zvcm1hdF9Sc21wXzliYzllMDFlKHN0cnVjdCBjdmZfZm9ybWF0KmN2Zl9mb3JtYXQp OwppbnQgdW5yZWdpc3Rlcl9jdmZfZm9ybWF0X1JzbXBfMTBjMGI2MjUoc3RydWN0IGN2Zl9mb3Jt YXQqY3ZmX2Zvcm1hdCk7CnZvaWQgZGVjX2N2Zl9mb3JtYXRfdXNlX2NvdW50X2J5X3ZlcnNpb24o aW50IHZlcnNpb24pOwppbnQgZGV0ZWN0X2N2ZihzdHJ1Y3Qgc3VwZXJfYmxvY2sqc2IsY2hhcipm b3JjZSk7CgpleHRlcm4gc3RydWN0IGN2Zl9mb3JtYXQgKmN2Zl9mb3JtYXRzW107CmV4dGVybiBp bnQgY3ZmX2Zvcm1hdF91c2VfY291bnRbXTsKIyA0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L21zZG9zX2ZzX3NiLmgiIDIKCgoKCgpzdHJ1Y3QgZmF0X21vdW50X29wdGlvbnMg ewogICAgICAgIHVpZF90IGZzX3VpZDsKICAgICAgICBnaWRfdCBmc19naWQ7CiAgICAgICAgdW5z aWduZWQgc2hvcnQgZnNfdW1hc2s7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgY29kZXBhZ2U7CiAg ICAgICAgY2hhciAqaW9jaGFyc2V0OwogICAgICAgIHVuc2lnbmVkIGNoYXIgbmFtZV9jaGVjazsK ICAgICAgICB1bnNpZ25lZCBjaGFyIGNvbnZlcnNpb247CiAgICAgICAgdW5zaWduZWQgcXVpZXQ6 MSwKICAgICAgICAgICAgICAgICBzaG93ZXhlYzoxLAogICAgICAgICAgICAgICAgIHN5c19pbW11 dGFibGU6MSwKICAgICAgICAgICAgICAgICBkb3RzT0s6MSwKICAgICAgICAgICAgICAgICBpc3Zm YXQ6MSwKICAgICAgICAgICAgICAgICB1dGY4OjEsCiAgICAgICAgICAgICAgICAgdW5pY29kZV94 bGF0ZToxLAogICAgICAgICAgICAgICAgIHBvc2l4ZnM6MSwKICAgICAgICAgICAgICAgICBudW10 YWlsOjEsCiAgICAgICAgICAgICAgICAgYXRhcmk6MSwKICAgICAgICAgICAgICAgICBmYXQzMjox LAogICAgICAgICAgICAgICAgIG5vY2FzZToxOwp9OwoKc3RydWN0IHZmYXRfdW5pY29kZSB7CiAg ICAgICAgdW5zaWduZWQgY2hhciB1bmkxOwogICAgICAgIHVuc2lnbmVkIGNoYXIgdW5pMjsKfTsK CnN0cnVjdCBtc2Rvc19zYl9pbmZvIHsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBjbHVzdGVyX3Np emU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgY2x1c3Rlcl9iaXRzOwogICAgICAgIHVuc2lnbmVk IGNoYXIgZmF0cyxmYXRfYml0czsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBmYXRfc3RhcnQ7CiAg ICAgICAgdW5zaWduZWQgbG9uZyBmYXRfbGVuZ3RoOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZGly X3N0YXJ0OwogICAgICAgIHVuc2lnbmVkIHNob3J0IGRpcl9lbnRyaWVzOwogICAgICAgIHVuc2ln bmVkIGxvbmcgZGF0YV9zdGFydDsKICAgICAgICB1bnNpZ25lZCBsb25nIGNsdXN0ZXJzOwogICAg ICAgIHVuc2lnbmVkIGxvbmcgcm9vdF9jbHVzdGVyOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZnNp bmZvX3NlY3RvcjsKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCBmYXRfd2FpdDsKICAgICAgICBz dHJ1Y3Qgc2VtYXBob3JlIGZhdF9sb2NrOwogICAgICAgIGludCBwcmV2X2ZyZWU7CiAgICAgICAg aW50IGZyZWVfY2x1c3RlcnM7CiAgICAgICAgc3RydWN0IGZhdF9tb3VudF9vcHRpb25zIG9wdGlv bnM7CiAgICAgICAgc3RydWN0IG5sc190YWJsZSAqbmxzX2Rpc2s7CiAgICAgICAgc3RydWN0IG5s c190YWJsZSAqbmxzX2lvOwogICAgICAgIHN0cnVjdCBjdmZfZm9ybWF0KiBjdmZfZm9ybWF0Owog ICAgICAgIHZvaWQgKmRpcl9vcHM7CiAgICAgICAgdm9pZCAqcHJpdmF0ZV9kYXRhOwogICAgICAg IGludCBkaXJfcGVyX2Jsb2NrOwogICAgICAgIGludCBkaXJfcGVyX2Jsb2NrX2JpdHM7Cn07CiMg NjQ3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2lzb19mc19zYi5oIiAxCgojZGVmaW5lIF9J U09GU19GU19TQgoKCgoKc3RydWN0IGlzb2ZzX3NiX2luZm8gewogICAgICAgIHVuc2lnbmVkIGxv bmcgc19uaW5vZGVzOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc19uem9uZXM7CiAgICAgICAgdW5z aWduZWQgbG9uZyBzX2ZpcnN0ZGF0YXpvbmU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2xvZ196 b25lX3NpemU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX21heF9zaXplOwoKICAgICAgICB1bnNp Z25lZCBjaGFyIHNfaGlnaF9zaWVycmE7CiAgICAgICAgdW5zaWduZWQgY2hhciBzX21hcHBpbmc7 CiAgICAgICAgdW5zaWduZWQgY2hhciBzX3JvY2s7CiAgICAgICAgdW5zaWduZWQgY2hhciBzX2pv bGlldF9sZXZlbDsKICAgICAgICB1bnNpZ25lZCBjaGFyIHNfdXRmODsKICAgICAgICB1bnNpZ25l ZCBjaGFyIHNfY3J1ZnQ7CgoKICAgICAgICB1bnNpZ25lZCBjaGFyIHNfdW5oaWRlOwogICAgICAg IHVuc2lnbmVkIGNoYXIgc19ub3N1aWQ7CiAgICAgICAgdW5zaWduZWQgY2hhciBzX25vZGV2Owog ICAgICAgIG1vZGVfdCBzX21vZGU7CiAgICAgICAgZ2lkX3Qgc19naWQ7CiAgICAgICAgdWlkX3Qg c191aWQ7CiAgICAgICAgc3RydWN0IG5sc190YWJsZSAqc19ubHNfaW9jaGFyc2V0Owp9OwojIDY0 OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9uZnNfZnNfc2IuaCIgMQoKI2RlZmluZSBfTkZT X0ZTX1NCCgoKCgpzdHJ1Y3QgbmZzX3NlcnZlciB7CiAgICAgICAgc3RydWN0IHJwY19jbG50ICog Y2xpZW50OwogICAgICAgIHN0cnVjdCBuZnNfcnBjX29wcyAqIHJwY19vcHM7CiAgICAgICAgaW50 IGZsYWdzOwogICAgICAgIHVuc2lnbmVkIGludCByc2l6ZTsKICAgICAgICB1bnNpZ25lZCBpbnQg cnBhZ2VzOwogICAgICAgIHVuc2lnbmVkIGludCB3c2l6ZTsKICAgICAgICB1bnNpZ25lZCBpbnQg d3BhZ2VzOwogICAgICAgIHVuc2lnbmVkIGludCBkdHNpemU7CiAgICAgICAgdW5zaWduZWQgaW50 IGJzaXplOwogICAgICAgIHVuc2lnbmVkIGludCBhY3JlZ21pbjsKICAgICAgICB1bnNpZ25lZCBp bnQgYWNyZWdtYXg7CiAgICAgICAgdW5zaWduZWQgaW50IGFjZGlybWluOwogICAgICAgIHVuc2ln bmVkIGludCBhY2Rpcm1heDsKICAgICAgICB1bnNpZ25lZCBpbnQgbmFtZWxlbjsKICAgICAgICBj aGFyICogaG9zdG5hbWU7CiAgICAgICAgc3RydWN0IG5mc19yZXFsaXN0ICogcndfcmVxdWVzdHM7 Cn07CgoKCgpzdHJ1Y3QgbmZzX3NiX2luZm8gewogICAgICAgIHN0cnVjdCBuZnNfc2VydmVyIHNf c2VydmVyOwp9OwojIDY0OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5o IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zeXN2X2ZzX3NiLmgi IDEKCiNkZWZpbmUgX1NZU1ZfRlNfU0IKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9zeXN2X2ZzX3NiLmgiCnN0cnVjdCBzeXN2X3NiX2luZm8gewogICAgICAgIGludCBz X3R5cGU7CiAgICAgICAgY2hhciBzX2J5dGVzZXg7CiAgICAgICAgY2hhciBzX2tsdWRnZV9zeW1s aW5rczsKICAgICAgICBjaGFyIHNfdHJ1bmNhdGU7CgogICAgICAgIG5saW5rX3Qgc19saW5rX21h eDsKICAgICAgICB1bnNpZ25lZCBpbnQgc19pbm9kZXNfcGVyX2Jsb2NrOwogICAgICAgIHVuc2ln bmVkIGludCBzX2lub2Rlc19wZXJfYmxvY2tfMTsKICAgICAgICB1bnNpZ25lZCBpbnQgc19pbm9k ZXNfcGVyX2Jsb2NrX2JpdHM7CiAgICAgICAgdW5zaWduZWQgaW50IHNfaW5kX3Blcl9ibG9jazsK ICAgICAgICB1bnNpZ25lZCBpbnQgc19pbmRfcGVyX2Jsb2NrX2JpdHM7CiAgICAgICAgdW5zaWdu ZWQgaW50IHNfaW5kX3Blcl9ibG9ja18yOwogICAgICAgIHVuc2lnbmVkIGludCBzX3Rvb2JpZ19i bG9jazsKICAgICAgICB1bnNpZ25lZCBpbnQgc19ibG9ja19iYXNlOwogICAgICAgIHVuc2lnbmVk IHNob3J0IHNfZmljX3NpemU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgc19mbGNfc2l6ZTsKCiAg ICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpzX2JoMTsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hl YWQgKnNfYmgyOwoKCiAgICAgICAgY2hhciAqIHNfc2JkMTsKICAgICAgICBjaGFyICogc19zYmQy OwogICAgICAgIHUxNiAqc19zYl9maWNfY291bnQ7CiAgICAgICAgdTE2ICpzX3NiX2ZpY19pbm9k ZXM7CiAgICAgICAgdTE2ICpzX3NiX3RvdGFsX2ZyZWVfaW5vZGVzOwogICAgICAgIHUxNiAqc19i Y2FjaGVfY291bnQ7CiAgICAgICAgdTMyICpzX2JjYWNoZTsKICAgICAgICB1MzIgKnNfZnJlZV9i bG9ja3M7CiAgICAgICAgdTMyICpzX3NiX3RpbWU7CiAgICAgICAgdTMyICpzX3NiX3N0YXRlOwoK CiAgICAgICAgdTMyIHNfZmlyc3Rpbm9kZXpvbmU7CiAgICAgICAgdTMyIHNfZmlyc3RkYXRhem9u ZTsKICAgICAgICB1MzIgc19uaW5vZGVzOwogICAgICAgIHUzMiBzX25kYXRhem9uZXM7CiAgICAg ICAgdTMyIHNfbnpvbmVzOwogICAgICAgIHUxNiBzX25hbWVsZW47Cn07CgoKCiNkZWZpbmUgc3Zf dHlwZSB1LnN5c3Zfc2Iuc190eXBlCiNkZWZpbmUgc3ZfYnl0ZXNleCB1LnN5c3Zfc2Iuc19ieXRl c2V4CiNkZWZpbmUgc3Zfa2x1ZGdlX3N5bWxpbmtzIHUuc3lzdl9zYi5zX2tsdWRnZV9zeW1saW5r cwojZGVmaW5lIHN2X3RydW5jYXRlIHUuc3lzdl9zYi5zX3RydW5jYXRlCiNkZWZpbmUgc3ZfbGlu a19tYXggdS5zeXN2X3NiLnNfbGlua19tYXgKI2RlZmluZSBzdl9pbm9kZXNfcGVyX2Jsb2NrIHUu c3lzdl9zYi5zX2lub2Rlc19wZXJfYmxvY2sKI2RlZmluZSBzdl9pbm9kZXNfcGVyX2Jsb2NrXzEg dS5zeXN2X3NiLnNfaW5vZGVzX3Blcl9ibG9ja18xCiNkZWZpbmUgc3ZfaW5vZGVzX3Blcl9ibG9j a19iaXRzIHUuc3lzdl9zYi5zX2lub2Rlc19wZXJfYmxvY2tfYml0cwojZGVmaW5lIHN2X2luZF9w ZXJfYmxvY2sgdS5zeXN2X3NiLnNfaW5kX3Blcl9ibG9jawojZGVmaW5lIHN2X2luZF9wZXJfYmxv Y2tfYml0cyB1LnN5c3Zfc2Iuc19pbmRfcGVyX2Jsb2NrX2JpdHMKI2RlZmluZSBzdl9pbmRfcGVy X2Jsb2NrXzIgdS5zeXN2X3NiLnNfaW5kX3Blcl9ibG9ja18yCiNkZWZpbmUgc3ZfdG9vYmlnX2Js b2NrIHUuc3lzdl9zYi5zX3Rvb2JpZ19ibG9jawojZGVmaW5lIHN2X2Jsb2NrX2Jhc2UgdS5zeXN2 X3NiLnNfYmxvY2tfYmFzZQojZGVmaW5lIHN2X2ZpY19zaXplIHUuc3lzdl9zYi5zX2ZpY19zaXpl CiNkZWZpbmUgc3ZfZmxjX3NpemUgdS5zeXN2X3NiLnNfZmxjX3NpemUKI2RlZmluZSBzdl9iaDEg dS5zeXN2X3NiLnNfYmgxCiNkZWZpbmUgc3ZfYmgyIHUuc3lzdl9zYi5zX2JoMgojZGVmaW5lIHN2 X3NiZDEgdS5zeXN2X3NiLnNfc2JkMQojZGVmaW5lIHN2X3NiZDIgdS5zeXN2X3NiLnNfc2JkMgoj ZGVmaW5lIHN2X3NiX2ZpY19jb3VudCB1LnN5c3Zfc2Iuc19zYl9maWNfY291bnQKI2RlZmluZSBz dl9zYl9maWNfaW5vZGVzIHUuc3lzdl9zYi5zX3NiX2ZpY19pbm9kZXMKI2RlZmluZSBzdl9zYl90 b3RhbF9mcmVlX2lub2RlcyB1LnN5c3Zfc2Iuc19zYl90b3RhbF9mcmVlX2lub2RlcwojZGVmaW5l IHN2X2JjYWNoZV9jb3VudCB1LnN5c3Zfc2Iuc19iY2FjaGVfY291bnQKI2RlZmluZSBzdl9iY2Fj aGUgdS5zeXN2X3NiLnNfYmNhY2hlCiNkZWZpbmUgc3ZfZnJlZV9ibG9ja3MgdS5zeXN2X3NiLnNf ZnJlZV9ibG9ja3MKI2RlZmluZSBzdl9zYl90aW1lIHUuc3lzdl9zYi5zX3NiX3RpbWUKI2RlZmlu ZSBzdl9zYl9zdGF0ZSB1LnN5c3Zfc2Iuc19zYl9zdGF0ZQojZGVmaW5lIHN2X2ZpcnN0aW5vZGV6 b25lIHUuc3lzdl9zYi5zX2ZpcnN0aW5vZGV6b25lCiNkZWZpbmUgc3ZfZmlyc3RkYXRhem9uZSB1 LnN5c3Zfc2Iuc19maXJzdGRhdGF6b25lCiNkZWZpbmUgc3Zfbmlub2RlcyB1LnN5c3Zfc2Iuc19u aW5vZGVzCiNkZWZpbmUgc3ZfbmRhdGF6b25lcyB1LnN5c3Zfc2Iuc19uZGF0YXpvbmVzCiNkZWZp bmUgc3ZfbnpvbmVzIHUuc3lzdl9zYi5zX256b25lcwojZGVmaW5lIHN2X25hbWVsZW4gdS5zeXN2 X3NiLnNfbmFtZWxlbgojIDY1MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9m cy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hZmZzX2ZzX3Ni LmgiIDEKCiNkZWZpbmUgX0FGRlNfRlNfU0IKIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9saW51eC9hZmZzX2ZzX3NiLmgiCnN0cnVjdCBhZmZzX2JtX2luZm8gewogICAgICAgIHUz MiBibV9rZXk7CiAgICAgICAgdTMyIGJtX2ZyZWU7Cn07CgpzdHJ1Y3QgYWZmc19zYl9pbmZvIHsK ICAgICAgICBpbnQgc19wYXJ0aXRpb25fc2l6ZTsKICAgICAgICBpbnQgc19yZXNlcnZlZDsKCiAg ICAgICAgdTMyIHNfZGF0YV9ibGtzaXplOwogICAgICAgIHUzMiBzX3Jvb3RfYmxvY2s7CiAgICAg ICAgaW50IHNfaGFzaHNpemU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2ZsYWdzOwogICAgICAg IHVpZF90IHNfdWlkOwogICAgICAgIGdpZF90IHNfZ2lkOwogICAgICAgIHVtb2RlX3Qgc19tb2Rl OwogICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqc19yb290X2JoOwogICAgICAgIHN0cnVjdCBz ZW1hcGhvcmUgc19ibWxvY2s7CiAgICAgICAgc3RydWN0IGFmZnNfYm1faW5mbyAqc19iaXRtYXA7 CiAgICAgICAgdTMyIHNfYm1hcF9jb3VudDsKICAgICAgICB1MzIgc19ibWFwX2JpdHM7CiAgICAg ICAgdTMyIHNfbGFzdF9ibWFwOwogICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqc19ibWFwX2Jo OwogICAgICAgIGNoYXIgKnNfcHJlZml4OwogICAgICAgIGludCBzX3ByZWZpeF9sZW47CiAgICAg ICAgY2hhciBzX3ZvbHVtZVszMl07Cn07CgojZGVmaW5lIFNGX0lOVEwgMHgwMDAxCiNkZWZpbmUg U0ZfQk1fVkFMSUQgMHgwMDAyCiNkZWZpbmUgU0ZfSU1NVVRBQkxFIDB4MDAwNAojZGVmaW5lIFNG X1FVSUVUIDB4MDAwOAojZGVmaW5lIFNGX1NFVFVJRCAweDAwMTAKI2RlZmluZSBTRl9TRVRHSUQg MHgwMDIwCiNkZWZpbmUgU0ZfU0VUTU9ERSAweDAwNDAKI2RlZmluZSBTRl9NVUZTIDB4MDEwMAoj ZGVmaW5lIFNGX09GUyAweDAyMDAKI2RlZmluZSBTRl9QUkVGSVggMHgwNDAwCiNkZWZpbmUgU0Zf VkVSQk9TRSAweDA4MDAKI2RlZmluZSBTRl9SRUFET05MWSAweDEwMDAKCgojZGVmaW5lIEFGRlNf U0IgKCZzYi0+dS5hZmZzX3NiKQojIDY1MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZnNf ZnNfc2IuaCIgMQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Vmc19m c19zYi5oIgojZGVmaW5lIF9fTElOVVhfVUZTX0ZTX1NCX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC91ZnNfZnMuaCIgMQojIDI4ICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L3Vmc19mcy5oIgojZGVmaW5lIF9fTElOVVhfVUZTX0ZTX0gKCiMgMSAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMzEgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWZzX2ZzLmgiIDIKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIiAxCiMgMzIgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvdWZzX2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L3RpbWUuaCIgMQojIDMzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L3Vmc19mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC9zdGF0LmgiIDEKIyAzNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91 ZnNfZnMuaCIgMgoKI2RlZmluZSBVRlNfQkJMT0NLIDAKI2RlZmluZSBVRlNfQkJTSVpFIDgxOTIK I2RlZmluZSBVRlNfU0JMT0NLIDgxOTIKI2RlZmluZSBVRlNfU0JTSVpFIDgxOTIKCiNkZWZpbmUg VUZTX1NFQ1RPUl9TSVpFIDUxMgojZGVmaW5lIFVGU19TRUNUT1JfQklUUyA5CiNkZWZpbmUgVUZT X01BR0lDIDB4MDAwMTE5NTQKI2RlZmluZSBVRlNfQ0lHQU0gMHg1NDE5MDEwMAoKCgoKI2RlZmlu ZSBVRlNfTUFHSUNfTEZOIDB4MDAwOTUwMTQKI2RlZmluZSBVRlNfQ0lHQU1fTEZOIDB4MTQ1MDA5 MDAKCiNkZWZpbmUgVUZTX01BR0lDX1NFQyAweDAwNjEyMTk1CiNkZWZpbmUgVUZTX0NJR0FNX1NF QyAweDk1MjE2MTAwCgojZGVmaW5lIFVGU19NQUdJQ19GRUEgMHgwMDE5NTYxMgojZGVmaW5lIFVG U19DSUdBTV9GRUEgMHgxMjU2MTkwMAoKI2RlZmluZSBVRlNfTUFHSUNfNEdCIDB4MDUyMzE5OTQK I2RlZmluZSBVRlNfQ0lHQU1fNEdCIDB4OTQxOTIzMDUKCgojZGVmaW5lIFVGU19GU0ZfTEZOIDB4 MDAwMDAwMDEKI2RlZmluZSBVRlNfRlNGX0IxIDB4MDAwMDAwMDIKI2RlZmluZSBVRlNfRlNGX0xG UyAweDAwMDAwMDAyCiNkZWZpbmUgVUZTX0ZTRl9MVUlEIDB4MDAwMDAwMDQKCgoKCiNkZWZpbmUg VUZTX0JTSVpFIDgxOTIKI2RlZmluZSBVRlNfTUlOQlNJWkUgNDA5NgojZGVmaW5lIFVGU19GU0la RSAxMDI0CiNkZWZpbmUgVUZTX01BWEZSQUcgKFVGU19CU0laRSAvIFVGU19GU0laRSkKCiNkZWZp bmUgVUZTX05EQUREUiAxMgojZGVmaW5lIFVGU19OSU5ESVIgMwoKI2RlZmluZSBVRlNfSU5EX0JM T0NLIChVRlNfTkRBRERSICsgMCkKI2RlZmluZSBVRlNfRElORF9CTE9DSyAoVUZTX05EQUREUiAr IDEpCiNkZWZpbmUgVUZTX1RJTkRfQkxPQ0sgKFVGU19OREFERFIgKyAyKQoKI2RlZmluZSBVRlNf TkRJUl9GUkFHTUVOVCAoVUZTX05EQUREUiA8PCB1c3BpLT5zX2ZwYnNoaWZ0KQojZGVmaW5lIFVG U19JTkRfRlJBR01FTlQgKFVGU19JTkRfQkxPQ0sgPDwgdXNwaS0+c19mcGJzaGlmdCkKI2RlZmlu ZSBVRlNfRElORF9GUkFHTUVOVCAoVUZTX0RJTkRfQkxPQ0sgPDwgdXNwaS0+c19mcGJzaGlmdCkK I2RlZmluZSBVRlNfVElORF9GUkFHTUVOVCAoVUZTX1RJTkRfQkxPQ0sgPDwgdXNwaS0+c19mcGJz aGlmdCkKCiNkZWZpbmUgVUZTX1JPT1RJTk8gMgojZGVmaW5lIFVGU19GSVJTVF9JTk8gKFVGU19S T09USU5PICsgMSkKCiNkZWZpbmUgVUZTX1VTRUVGVCAoKF9fdTE2KTY1NTM1KQoKI2RlZmluZSBV RlNfRlNPSyAweDdjMjY5ZDM4CiNkZWZpbmUgVUZTX0ZTQUNUSVZFICgoY2hhcikweDAwKQojZGVm aW5lIFVGU19GU0NMRUFOICgoY2hhcikweDAxKQojZGVmaW5lIFVGU19GU1NUQUJMRSAoKGNoYXIp MHgwMikKI2RlZmluZSBVRlNfRlNPU0YxICgoY2hhcikweDAzKQojZGVmaW5lIFVGU19GU0JBRCAo KGNoYXIpMHhmZikKCgoKI2RlZmluZSBVRlNfQllURVNFWCAweDAwMDAwMDAxCgoKI2RlZmluZSBV RlNfTkFUSVZFX0VORElBTiAweDAwMDAwMDAwCiNkZWZpbmUgVUZTX1NXQUJCRURfRU5ESUFOIDB4 MDAwMDAwMDEKCgoKCgoKI2RlZmluZSBVRlNfREVfTUFTSyAweDAwMDAwMDEwCiNkZWZpbmUgVUZT X0RFX09MRCAweDAwMDAwMDAwCiNkZWZpbmUgVUZTX0RFXzQ0QlNEIDB4MDAwMDAwMTAKCiNkZWZp bmUgVUZTX1VJRF9NQVNLIDB4MDAwMDAwNjAKI2RlZmluZSBVRlNfVUlEX09MRCAweDAwMDAwMDAw CiNkZWZpbmUgVUZTX1VJRF80NEJTRCAweDAwMDAwMDIwCiNkZWZpbmUgVUZTX1VJRF9FRlQgMHgw MDAwMDA0MAoKI2RlZmluZSBVRlNfU1RfTUFTSyAweDAwMDAwNzAwCiNkZWZpbmUgVUZTX1NUX09M RCAweDAwMDAwMDAwCiNkZWZpbmUgVUZTX1NUXzQ0QlNEIDB4MDAwMDAxMDAKI2RlZmluZSBVRlNf U1RfU1VOIDB4MDAwMDAyMDAKI2RlZmluZSBVRlNfU1RfU1VOeDg2IDB4MDAwMDA0MDAKCiNkZWZp bmUgVUZTX0NHX01BU0sgMHgwMDAwMzAwMAojZGVmaW5lIFVGU19DR19PTEQgMHgwMDAwMDAwMAoj ZGVmaW5lIFVGU19DR180NEJTRCAweDAwMDAyMDAwCiNkZWZpbmUgVUZTX0NHX1NVTiAweDAwMDAx MDAwCgoKI2RlZmluZSBVRlNfNDJJTk9ERUZNVCAtMQojZGVmaW5lIFVGU180NElOT0RFRk1UIDIK CgojZGVmaW5lIFVGU19NT1VOVF9PTkVSUk9SIDB4MDAwMDAwMEYKI2RlZmluZSBVRlNfTU9VTlRf T05FUlJPUl9QQU5JQyAweDAwMDAwMDAxCiNkZWZpbmUgVUZTX01PVU5UX09ORVJST1JfTE9DSyAw eDAwMDAwMDAyCiNkZWZpbmUgVUZTX01PVU5UX09ORVJST1JfVU1PVU5UIDB4MDAwMDAwMDQKI2Rl ZmluZSBVRlNfTU9VTlRfT05FUlJPUl9SRVBBSVIgMHgwMDAwMDAwOAoKI2RlZmluZSBVRlNfTU9V TlRfVUZTVFlQRSAweDAwMDAwRkYwCiNkZWZpbmUgVUZTX01PVU5UX1VGU1RZUEVfT0xEIDB4MDAw MDAwMTAKI2RlZmluZSBVRlNfTU9VTlRfVUZTVFlQRV80NEJTRCAweDAwMDAwMDIwCiNkZWZpbmUg VUZTX01PVU5UX1VGU1RZUEVfU1VOIDB4MDAwMDAwNDAKI2RlZmluZSBVRlNfTU9VTlRfVUZTVFlQ RV9ORVhUU1RFUCAweDAwMDAwMDgwCiNkZWZpbmUgVUZTX01PVU5UX1VGU1RZUEVfTkVYVFNURVBf Q0QgMHgwMDAwMDEwMAojZGVmaW5lIFVGU19NT1VOVF9VRlNUWVBFX09QRU5TVEVQIDB4MDAwMDAy MDAKI2RlZmluZSBVRlNfTU9VTlRfVUZTVFlQRV9TVU54ODYgMHgwMDAwMDQwMAojZGVmaW5lIFVG U19NT1VOVF9VRlNUWVBFX0hQIDB4MDAwMDA4MDAKCiNkZWZpbmUgdWZzX2NsZWFyX29wdChvLCBv cHQpIG8gJj0gflVGU19NT1VOVF8gIyMgb3B0CiNkZWZpbmUgdWZzX3NldF9vcHQobywgb3B0KSBv IHw9IFVGU19NT1VOVF8gIyMgb3B0CiNkZWZpbmUgdWZzX3Rlc3Rfb3B0KG8sIG9wdCkgKChvKSAm IFVGU19NT1VOVF8gIyMgb3B0KQojIDE2OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC91ZnNfZnMuaCIKI2RlZmluZSBVRlNfTUlORlJFRSA1CiNkZWZpbmUgVUZTX0RFRkFVTFRP UFQgVUZTX09QVFRJTUUKCgoKCgojZGVmaW5lIHVmc19mc2J0b2RiKHVzcGksIGIpICgoYikgPDwg KHVzcGkpLT5zX2ZzYnRvZGIpCiNkZWZpbmUgdWZzX2RidG9mc2IodXNwaSwgYikgKChiKSA+PiAo dXNwaSktPnNfZnNidG9kYikKCgoKCgojZGVmaW5lIHVmc19jZ2Jhc2UoYykgKHVzcGktPnNfZnBn ICogKGMpKQojZGVmaW5lIHVmc19jZ3N0YXJ0KGMpICh1ZnNfY2diYXNlKGMpICsgdXNwaS0+c19j Z29mZnNldCAqICgoYykgJiB+dXNwaS0+c19jZ21hc2spKQojZGVmaW5lIHVmc19jZ3NibG9jayhj KSAodWZzX2Nnc3RhcnQoYykgKyB1c3BpLT5zX3NibGtubykKI2RlZmluZSB1ZnNfY2djbWluKGMp ICh1ZnNfY2dzdGFydChjKSArIHVzcGktPnNfY2Jsa25vKQojZGVmaW5lIHVmc19jZ2ltaW4oYykg KHVmc19jZ3N0YXJ0KGMpICsgdXNwaS0+c19pYmxrbm8pCiNkZWZpbmUgdWZzX2NnZG1pbihjKSAo dWZzX2Nnc3RhcnQoYykgKyB1c3BpLT5zX2RibGtubykKCgoKCgoKCiNkZWZpbmUgdWZzX2lub3Rv Y2coeCkgKCh4KSAvIHVzcGktPnNfaXBnKQojZGVmaW5lIHVmc19pbm90b2Nnb2ZmKHgpICgoeCkg JSB1c3BpLT5zX2lwZykKI2RlZmluZSB1ZnNfaW5vdG9mc2JhKHgpICh1ZnNfY2dpbWluKHVmc19p bm90b2NnKHgpKSArIHVmc19pbm90b2Nnb2ZmKHgpIC8gdXNwaS0+c19pbm9wZikKI2RlZmluZSB1 ZnNfaW5vdG9mc2JvKHgpICgoeCkgJSB1c3BpLT5zX2lub3BmKQoKCgoKCiNkZWZpbmUgdWZzX2R0 b2coZCkgKChkKSAvIHVzcGktPnNfZnBnKQojZGVmaW5lIHVmc19kdG9nZChkKSAoKGQpICUgdXNw aS0+c19mcGcpCgoKCgojZGVmaW5lIHVmc19jYnRvY3lsbm8oYm5vKSAoKGJubykgKiB1c3BpLT5z X25zcGYgLyB1c3BpLT5zX3NwYykKCiNkZWZpbmUgdWZzX2NidG9ycG9zKGJubykgKCgoKGJubykg KiB1c3BpLT5zX25zcGYgJSB1c3BpLT5zX3NwYyAvIHVzcGktPnNfbnNlY3QgKiB1c3BpLT5zX3Ry YWNrc2tldyArIChibm8pICogdXNwaS0+c19uc3BmICUgdXNwaS0+c19zcGMgJSB1c3BpLT5zX25z ZWN0ICogdXNwaS0+c19pbnRlcmxlYXZlKSAlIHVzcGktPnNfbnNlY3QgKiB1c3BpLT5zX25ycG9z KSAvIHVzcGktPnNfbnBzZWN0KQojIDIyMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC91ZnNfZnMuaCIKI2RlZmluZSB1ZnNfYmxrb2ZmKGxvYykgKChsb2MpICYgdXNwaS0+c19x Ym1hc2spCiNkZWZpbmUgdWZzX2ZyYWdvZmYobG9jKSAoKGxvYykgJiB1c3BpLT5zX3FmbWFzaykK I2RlZmluZSB1ZnNfbGJsa3Rvc2l6ZShibGspICgoYmxrKSA8PCB1c3BpLT5zX2JzaGlmdCkKI2Rl ZmluZSB1ZnNfbGJsa25vKGxvYykgKChsb2MpID4+IHVzcGktPnNfYnNoaWZ0KQojZGVmaW5lIHVm c19udW1mcmFncyhsb2MpICgobG9jKSA+PiB1c3BpLT5zX2ZzaGlmdCkKI2RlZmluZSB1ZnNfYmxr cm91bmR1cChzaXplKSAoKChzaXplKSArIHVzcGktPnNfcWJtYXNrKSAmIHVzcGktPnNfYm1hc2sp CiNkZWZpbmUgdWZzX2ZyYWdyb3VuZHVwKHNpemUpICgoKHNpemUpICsgdXNwaS0+c19xZm1hc2sp ICYgdXNwaS0+c19mbWFzaykKI2RlZmluZSB1ZnNfZnJhZ3N0b2Jsa3MoZnJhZ3MpICgoZnJhZ3Mp ID4+IHVzcGktPnNfZnBic2hpZnQpCiNkZWZpbmUgdWZzX2Jsa3N0b2ZyYWdzKGJsa3MpICgoYmxr cykgPDwgdXNwaS0+c19mcGJzaGlmdCkKI2RlZmluZSB1ZnNfZnJhZ251bShmc2IpICgoZnNiKSAm IHVzcGktPnNfZnBibWFzaykKI2RlZmluZSB1ZnNfYmxrbnVtKGZzYikgKChmc2IpICYgfnVzcGkt PnNfZnBibWFzaykKCiNkZWZpbmUgVUZTX01BWE5BTUxFTiAyNTUKI2RlZmluZSBVRlNfTUFYTU5U TEVOIDUxMgojZGVmaW5lIFVGU19NQVhDU0JVRlMgMzEKI2RlZmluZSBVRlNfTElOS19NQVggMzIw MDAKCgoKCgojZGVmaW5lIFVGU19ESVJfUEFEIDQKI2RlZmluZSBVRlNfRElSX1JPVU5EIChVRlNf RElSX1BBRCAtIDEpCiNkZWZpbmUgVUZTX0RJUl9SRUNfTEVOKG5hbWVfbGVuKSAoKChuYW1lX2xl bikgKyAxICsgOCArIFVGU19ESVJfUk9VTkQpICYgflVGU19ESVJfUk9VTkQpCgpzdHJ1Y3QgdWZz X3RpbWV2YWwgewogICAgICAgIF9fczMyIHR2X3NlYzsKICAgICAgICBfX3MzMiB0dl91c2VjOwp9 OwoKc3RydWN0IHVmc19kaXJfZW50cnkgewogICAgICAgIF9fdTMyIGRfaW5vOwogICAgICAgIF9f dTE2IGRfcmVjbGVuOwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIF9fdTE2IGRfbmFt bGVuOwogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgX191 OCBkX3R5cGU7CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTggZF9uYW1sZW47CiAgICAgICAg ICAgICAgICB9IGRfNDQ7CiAgICAgICAgfSBkX3U7CiAgICAgICAgX191OCBkX25hbWVbMjU1ICsg MV07Cn07CgpzdHJ1Y3QgdWZzX2NzdW0gewogICAgICAgIF9fdTMyIGNzX25kaXI7CiAgICAgICAg X191MzIgY3NfbmJmcmVlOwogICAgICAgIF9fdTMyIGNzX25pZnJlZTsKICAgICAgICBfX3UzMiBj c19uZmZyZWU7Cn07CgoKCgpzdHJ1Y3QgdWZzX3N1cGVyX2Jsb2NrIHsKICAgICAgICBfX3UzMiBm c19saW5rOwogICAgICAgIF9fdTMyIGZzX3JsaW5rOwogICAgICAgIF9fdTMyIGZzX3NibGtubzsK ICAgICAgICBfX3UzMiBmc19jYmxrbm87CiAgICAgICAgX191MzIgZnNfaWJsa25vOwogICAgICAg IF9fdTMyIGZzX2RibGtubzsKICAgICAgICBfX3UzMiBmc19jZ29mZnNldDsKICAgICAgICBfX3Uz MiBmc19jZ21hc2s7CiAgICAgICAgX191MzIgZnNfdGltZTsKICAgICAgICBfX3UzMiBmc19zaXpl OwogICAgICAgIF9fdTMyIGZzX2RzaXplOwogICAgICAgIF9fdTMyIGZzX25jZzsKICAgICAgICBf X3UzMiBmc19ic2l6ZTsKICAgICAgICBfX3UzMiBmc19mc2l6ZTsKICAgICAgICBfX3UzMiBmc19m cmFnOwoKICAgICAgICBfX3UzMiBmc19taW5mcmVlOwogICAgICAgIF9fdTMyIGZzX3JvdGRlbGF5 OwogICAgICAgIF9fdTMyIGZzX3JwczsKCiAgICAgICAgX191MzIgZnNfYm1hc2s7CiAgICAgICAg X191MzIgZnNfZm1hc2s7CiAgICAgICAgX191MzIgZnNfYnNoaWZ0OwogICAgICAgIF9fdTMyIGZz X2ZzaGlmdDsKCiAgICAgICAgX191MzIgZnNfbWF4Y29udGlnOwogICAgICAgIF9fdTMyIGZzX21h eGJwZzsKCiAgICAgICAgX191MzIgZnNfZnJhZ3NoaWZ0OwogICAgICAgIF9fdTMyIGZzX2ZzYnRv ZGI7CiAgICAgICAgX191MzIgZnNfc2JzaXplOwogICAgICAgIF9fdTMyIGZzX2NzbWFzazsKICAg ICAgICBfX3UzMiBmc19jc3NoaWZ0OwogICAgICAgIF9fdTMyIGZzX25pbmRpcjsKICAgICAgICBf X3UzMiBmc19pbm9wYjsKICAgICAgICBfX3UzMiBmc19uc3BmOwoKICAgICAgICBfX3UzMiBmc19v cHRpbTsKCiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAg ICAgICAgICAgICAgICAgX191MzIgZnNfbnBzZWN0OwogICAgICAgICAgICAgICAgfSBmc19zdW47 CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBm c19zdGF0ZTsKICAgICAgICAgICAgICAgIH0gZnNfc3VueDg2OwogICAgICAgIH0gZnNfdTE7CiAg ICAgICAgX191MzIgZnNfaW50ZXJsZWF2ZTsKICAgICAgICBfX3UzMiBmc190cmFja3NrZXc7CgoK CgogICAgICAgIF9fdTMyIGZzX2lkWzJdOwoKICAgICAgICBfX3UzMiBmc19jc2FkZHI7CiAgICAg ICAgX191MzIgZnNfY3NzaXplOwogICAgICAgIF9fdTMyIGZzX2Nnc2l6ZTsKCiAgICAgICAgX191 MzIgZnNfbnRyYWs7CiAgICAgICAgX191MzIgZnNfbnNlY3Q7CiAgICAgICAgX191MzIgZnNfc3Bj OwoKICAgICAgICBfX3UzMiBmc19uY3lsOwoKICAgICAgICBfX3UzMiBmc19jcGc7CiAgICAgICAg X191MzIgZnNfaXBnOwogICAgICAgIF9fdTMyIGZzX2ZwZzsKCiAgICAgICAgc3RydWN0IHVmc19j c3VtIGZzX2NzdG90YWw7CgogICAgICAgIF9fczggZnNfZm1vZDsKICAgICAgICBfX3M4IGZzX2Ns ZWFuOwogICAgICAgIF9fczggZnNfcm9ubHk7CiAgICAgICAgX19zOCBmc19mbGFnczsKICAgICAg ICBfX3M4IGZzX2ZzbW50WzUxMl07CgogICAgICAgIF9fdTMyIGZzX2Nncm90b3I7CiAgICAgICAg X191MzIgZnNfY3NwWzMxXTsKICAgICAgICBfX3UzMiBmc19tYXhjbHVzdGVyOwogICAgICAgIF9f dTMyIGZzX2NwYzsKICAgICAgICBfX3UxNiBmc19vcG9zdGJsWzE2XVs4XTsKICAgICAgICB1bmlv biB7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICBfX3Mz MiBmc19zcGFyZWNvbls1M107CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIGZzX3JlY2xh aW07CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIGZzX3NwYXJlY29uMlsxXTsKICAgICAg ICAgICAgICAgICAgICAgICAgX19zMzIgZnNfc3RhdGU7CiAgICAgICAgICAgICAgICAgICAgICAg IF9fdTMyIGZzX3FibWFza1syXTsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgZnNfcWZt YXNrWzJdOwogICAgICAgICAgICAgICAgfSBmc19zdW47CiAgICAgICAgICAgICAgICBzdHJ1Y3Qg ewogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19zcGFyZWNvbls1M107CiAgICAgICAg ICAgICAgICAgICAgICAgIF9fczMyIGZzX3JlY2xhaW07CiAgICAgICAgICAgICAgICAgICAgICAg IF9fczMyIGZzX3NwYXJlY29uMlsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgZnNf bnBzZWN0OwogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiBmc19xYm1hc2tbMl07CiAgICAg ICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX3FmbWFza1syXTsKICAgICAgICAgICAgICAgIH0g ZnNfc3VueDg2OwogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAg ICAgX19zMzIgZnNfc3BhcmVjb25bNTBdOwogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBm c19jb250aWdzdW1zaXplOwogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19tYXhzeW1s aW5rbGVuOwogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19pbm9kZWZtdDsKICAgICAg ICAgICAgICAgICAgICAgICAgX191MzIgZnNfbWF4ZmlsZXNpemVbMl07CiAgICAgICAgICAgICAg ICAgICAgICAgIF9fdTMyIGZzX3FibWFza1syXTsKICAgICAgICAgICAgICAgICAgICAgICAgX191 MzIgZnNfcWZtYXNrWzJdOwogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19zdGF0ZTsK ICAgICAgICAgICAgICAgIH0gZnNfNDQ7CiAgICAgICAgfSBmc191MjsKICAgICAgICBfX3MzMiBm c19wb3N0Ymxmb3JtYXQ7CiAgICAgICAgX19zMzIgZnNfbnJwb3M7CiAgICAgICAgX19zMzIgZnNf cG9zdGJsb2ZmOwogICAgICAgIF9fczMyIGZzX3JvdGJsb2ZmOwogICAgICAgIF9fczMyIGZzX21h Z2ljOwogICAgICAgIF9fdTggZnNfc3BhY2VbMV07Cn07CgoKCgojZGVmaW5lIFVGU19PUFRUSU1F IDAKI2RlZmluZSBVRlNfT1BUU1BBQ0UgMQoKCgoKI2RlZmluZSBVRlNfNDJQT1NUQkxGTVQgLTEK I2RlZmluZSBVRlNfRFlOQU1JQ1BPU1RCTEZNVCAxCgoKCgojZGVmaW5lIGZzX2NzKGluZHgpIHUu dWZzX3NiLnNfY3NwWyhpbmR4KSA+PiB1c3BpLT5zX2Nzc2hpZnRdWyhpbmR4KSAmIH51c3BpLT5z X2NzbWFza10KIyA0MTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWZzX2Zz LmgiCiNkZWZpbmUgQ0dfTUFHSUMgMHgwOTAyNTUKI2RlZmluZSB1ZnNfY2dfY2hrbWFnaWModWNn KSAoU1dBQjMyKCh1Y2cpLT5jZ19tYWdpYykgPT0gQ0dfTUFHSUMpCgoKCgpzdHJ1Y3QgdWZzX2N5 bGluZGVyX2dyb3VwIHsKICAgICAgICBfX3UzMiBjZ19saW5rOwogICAgICAgIF9fdTMyIGNnX21h Z2ljOwogICAgICAgIF9fdTMyIGNnX3RpbWU7CiAgICAgICAgX191MzIgY2dfY2d4OwogICAgICAg IF9fdTE2IGNnX25jeWw7CiAgICAgICAgX191MTYgY2dfbmlibGs7CiAgICAgICAgX191MzIgY2df bmRibGs7CiAgICAgICAgc3RydWN0IHVmc19jc3VtIGNnX2NzOwogICAgICAgIF9fdTMyIGNnX3Jv dG9yOwogICAgICAgIF9fdTMyIGNnX2Zyb3RvcjsKICAgICAgICBfX3UzMiBjZ19pcm90b3I7CiAg ICAgICAgX191MzIgY2dfZnJzdW1bKDgxOTIgLyAxMDI0KV07CiAgICAgICAgX191MzIgY2dfYnRv dG9mZjsKICAgICAgICBfX3UzMiBjZ19ib2ZmOwogICAgICAgIF9fdTMyIGNnX2l1c2Vkb2ZmOwog ICAgICAgIF9fdTMyIGNnX2ZyZWVvZmY7CiAgICAgICAgX191MzIgY2dfbmV4dGZyZWVvZmY7CiAg ICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAg ICAgICAgX191MzIgY2dfY2x1c3RlcnN1bW9mZjsKICAgICAgICAgICAgICAgICAgICAgICAgX191 MzIgY2dfY2x1c3Rlcm9mZjsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgY2dfbmNsdXN0 ZXJibGtzOwogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiBjZ19zcGFyZWNvblsxM107CiAg ICAgICAgICAgICAgICB9IGNnXzQ0OwogICAgICAgICAgICAgICAgX191MzIgY2dfc3BhcmVjb25b MTZdOwogICAgICAgIH0gY2dfdTsKICAgICAgICBfX3U4IGNnX3NwYWNlWzFdOwoKfTsKCgoKCnN0 cnVjdCB1ZnNfaW5vZGUgewogICAgICAgIF9fdTE2IHVpX21vZGU7CiAgICAgICAgX191MTYgdWlf bmxpbms7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAg ICAgICAgICAgICAgICAgX191MTYgdWlfc3VpZDsKICAgICAgICAgICAgICAgICAgICAgICAgX191 MTYgdWlfc2dpZDsKICAgICAgICAgICAgICAgIH0gb2xkaWRzOwogICAgICAgICAgICAgICAgX191 MzIgdWlfaW51bWJlcjsKICAgICAgICAgICAgICAgIF9fdTMyIHVpX2F1dGhvcjsKICAgICAgICB9 IHVpX3UxOwogICAgICAgIF9fdTY0IHVpX3NpemU7CiAgICAgICAgc3RydWN0IHVmc190aW1ldmFs IHVpX2F0aW1lOwogICAgICAgIHN0cnVjdCB1ZnNfdGltZXZhbCB1aV9tdGltZTsKICAgICAgICBz dHJ1Y3QgdWZzX3RpbWV2YWwgdWlfY3RpbWU7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAg ICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgdWlfZGJbMTJdOwogICAg ICAgICAgICAgICAgICAgICAgICBfX3UzMiB1aV9pYlszXTsKICAgICAgICAgICAgICAgIH0gdWlf YWRkcjsKICAgICAgICAgICAgICAgIF9fdTggdWlfc3ltbGlua1s0KigxMiArMyldOwogICAgICAg IH0gdWlfdTI7CiAgICAgICAgX191MzIgdWlfZmxhZ3M7CiAgICAgICAgX191MzIgdWlfYmxvY2tz OwogICAgICAgIF9fdTMyIHVpX2dlbjsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBz dHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiB1aV9zaGFkb3c7CiAgICAgICAg ICAgICAgICAgICAgICAgIF9fdTMyIHVpX3VpZDsKICAgICAgICAgICAgICAgICAgICAgICAgX191 MzIgdWlfZ2lkOwogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiB1aV9vZWZ0ZmxhZzsKICAg ICAgICAgICAgICAgIH0gdWlfc3VuOwogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAg ICAgICAgICAgICAgICAgX191MzIgdWlfdWlkOwogICAgICAgICAgICAgICAgICAgICAgICBfX3Uz MiB1aV9naWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIHVpX3NwYXJlWzJdOwogICAg ICAgICAgICAgICAgfSB1aV80NDsKICAgICAgICAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAg ICAgICAgICAgICAgIF9fdTMyIHVpX3VpZDsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIg dWlfZ2lkOwogICAgICAgICAgICAgICAgICAgICAgICBfX3UxNiB1aV9tb2RlaDsKICAgICAgICAg ICAgICAgICAgICAgICAgX191MTYgdWlfc3BhcmU7CiAgICAgICAgICAgICAgICAgICAgICAgIF9f dTMyIHVpX3RyYW5zOwogICAgICAgICAgICAgICAgfSB1aV9odXJkOwogICAgICAgIH0gdWlfdTM7 Cn07CgoKCiNkZWZpbmUgVUZTX1VGX1NFVFRBQkxFIDB4MDAwMGZmZmYKI2RlZmluZSBVRlNfVUZf Tk9EVU1QIDB4MDAwMDAwMDEKI2RlZmluZSBVRlNfVUZfSU1NVVRBQkxFIDB4MDAwMDAwMDIKI2Rl ZmluZSBVRlNfVUZfQVBQRU5EIDB4MDAwMDAwMDQKI2RlZmluZSBVRlNfVUZfT1BBUVVFIDB4MDAw MDAwMDgKI2RlZmluZSBVRlNfVUZfTk9VTkxJTksgMHgwMDAwMDAxMAoKI2RlZmluZSBVRlNfU0Zf U0VUVEFCTEUgMHhmZmZmMDAwMAojZGVmaW5lIFVGU19TRl9BUkNISVZFRCAweDAwMDEwMDAwCiNk ZWZpbmUgVUZTX1NGX0lNTVVUQUJMRSAweDAwMDIwMDAwCiNkZWZpbmUgVUZTX1NGX0FQUEVORCAw eDAwMDQwMDAwCiNkZWZpbmUgVUZTX1NGX05PVU5MSU5LIDB4MDAxMDAwMDAKCgoKCmV4dGVybiB2 b2lkIHVmc19mcmVlX2ZyYWdtZW50cyAoc3RydWN0IGlub2RlICosIHVuc2lnbmVkLCB1bnNpZ25l ZCk7CmV4dGVybiB2b2lkIHVmc19mcmVlX2Jsb2NrcyAoc3RydWN0IGlub2RlICosIHVuc2lnbmVk LCB1bnNpZ25lZCk7CmV4dGVybiB1bnNpZ25lZCB1ZnNfbmV3X2ZyYWdtZW50cyAoc3RydWN0IGlu b2RlICosIHUzMiAqLCB1bnNpZ25lZCwgdW5zaWduZWQsIHVuc2lnbmVkLCBpbnQgKik7CgoKZXh0 ZXJuIHN0cnVjdCB1ZnNfY2dfcHJpdmF0ZV9pbmZvICogdWZzX2xvYWRfY3lsaW5kZXIgKHN0cnVj dCBzdXBlcl9ibG9jayAqLCB1bnNpZ25lZCk7CmV4dGVybiB2b2lkIHVmc19wdXRfY3lsaW5kZXIg KHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1bnNpZ25lZCk7CgoKZXh0ZXJuIHN0cnVjdCBpbm9kZV9v cGVyYXRpb25zIHVmc19kaXJfaW5vZGVfb3BlcmF0aW9uczsKZXh0ZXJuIGludCB1ZnNfY2hlY2tf ZGlyX2VudHJ5IChjb25zdCBjaGFyICosIHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgdWZzX2Rpcl9l bnRyeSAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiwgdW5zaWduZWQgbG9uZyk7CgoKZXh0ZXJuIHN0 cnVjdCBpbm9kZV9vcGVyYXRpb25zIHVmc19maWxlX2lub2RlX29wZXJhdGlvbnM7CmV4dGVybiBz dHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHVmc19maWxlX29wZXJhdGlvbnM7CgpleHRlcm4gc3RydWN0 IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyB1ZnNfYW9wczsKCgpleHRlcm4gdm9pZCB1ZnNfZnJl ZV9pbm9kZSAoc3RydWN0IGlub2RlICppbm9kZSk7CmV4dGVybiBzdHJ1Y3QgaW5vZGUgKiB1ZnNf bmV3X2lub2RlIChjb25zdCBzdHJ1Y3QgaW5vZGUgKiwgaW50LCBpbnQgKik7CgoKZXh0ZXJuIGlu dCB1ZnNfZnJhZ19tYXAgKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwpleHRlcm4gdm9pZCB1ZnNfcmVh ZF9pbm9kZSAoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCB1ZnNfcHV0X2lub2RlIChzdHJ1 Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIHVmc193cml0ZV9pbm9kZSAoc3RydWN0IGlub2RlICos IGludCk7CmV4dGVybiBpbnQgdWZzX3N5bmNfaW5vZGUgKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJu IHZvaWQgdWZzX2RlbGV0ZV9pbm9kZSAoc3RydWN0IGlub2RlICopOwpleHRlcm4gc3RydWN0IGJ1 ZmZlcl9oZWFkICogdWZzX2dldGZyYWcgKHN0cnVjdCBpbm9kZSAqLCB1bnNpZ25lZCwgaW50LCBp bnQgKik7CmV4dGVybiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiB1ZnNfYnJlYWQgKHN0cnVjdCBpbm9k ZSAqLCB1bnNpZ25lZCwgaW50LCBpbnQgKik7CgoKZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlv bnMgdWZzX2Rpcl9vcGVyYXRpb25zOwoKCmV4dGVybiBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSB1 ZnNfZnNfdHlwZTsKZXh0ZXJuIHZvaWQgdWZzX3dhcm5pbmcgKHN0cnVjdCBzdXBlcl9ibG9jayAq LCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKSBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0 IChwcmludGYsIDMsIDQpKSk7CmV4dGVybiB2b2lkIHVmc19lcnJvciAoc3RydWN0IHN1cGVyX2Js b2NrICosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCAuLi4pIF9fYXR0cmlidXRlX18gKChm b3JtYXQgKHByaW50ZiwgMywgNCkpKTsKZXh0ZXJuIHZvaWQgdWZzX3BhbmljIChzdHJ1Y3Qgc3Vw ZXJfYmxvY2sgKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIC4uLikgX19hdHRyaWJ1dGVf XyAoKGZvcm1hdCAocHJpbnRmLCAzLCA0KSkpOwpleHRlcm4gdm9pZCB1ZnNfd3JpdGVfc3VwZXIg KHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKCgpleHRlcm4gc3RydWN0IGlub2RlX29wZXJhdGlvbnMg dWZzX2Zhc3Rfc3ltbGlua19pbm9kZV9vcGVyYXRpb25zOwoKCmV4dGVybiB2b2lkIHVmc190cnVu Y2F0ZSAoc3RydWN0IGlub2RlICopOwojIDE4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L3Vmc19mc19zYi5oIiAyCgoKCgoKc3RydWN0IHVmc19idWZmZXJfaGVhZCB7CiAgICAg ICAgdW5zaWduZWQgZnJhZ21lbnQ7CiAgICAgICAgdW5zaWduZWQgY291bnQ7CiAgICAgICAgc3Ry dWN0IGJ1ZmZlcl9oZWFkICogYmhbKDgxOTIgLyAxMDI0KV07Cn07CgpzdHJ1Y3QgdWZzX2NnX3By aXZhdGVfaW5mbyB7CiAgICAgICAgc3RydWN0IHVmc19jeWxpbmRlcl9ncm91cCB1Y2c7CiAgICAg ICAgX191MzIgY19jZ3g7CiAgICAgICAgX191MTYgY19uY3lsOwogICAgICAgIF9fdTE2IGNfbmli bGs7CiAgICAgICAgX191MzIgY19uZGJsazsKICAgICAgICBfX3UzMiBjX3JvdG9yOwogICAgICAg IF9fdTMyIGNfZnJvdG9yOwogICAgICAgIF9fdTMyIGNfaXJvdG9yOwogICAgICAgIF9fdTMyIGNf YnRvdG9mZjsKICAgICAgICBfX3UzMiBjX2JvZmY7CiAgICAgICAgX191MzIgY19pdXNlZG9mZjsK ICAgICAgICBfX3UzMiBjX2ZyZWVvZmY7CiAgICAgICAgX191MzIgY19uZXh0ZnJlZW9mZjsKICAg ICAgICBfX3UzMiBjX2NsdXN0ZXJzdW1vZmY7CiAgICAgICAgX191MzIgY19jbHVzdGVyb2ZmOwog ICAgICAgIF9fdTMyIGNfbmNsdXN0ZXJibGtzOwp9OwoKc3RydWN0IHVmc19zYl9wcml2YXRlX2lu Zm8gewogICAgICAgIHN0cnVjdCB1ZnNfYnVmZmVyX2hlYWQgc191Ymg7CiAgICAgICAgX191MzIg c19zYmxrbm87CiAgICAgICAgX191MzIgc19jYmxrbm87CiAgICAgICAgX191MzIgc19pYmxrbm87 CiAgICAgICAgX191MzIgc19kYmxrbm87CiAgICAgICAgX191MzIgc19jZ29mZnNldDsKICAgICAg ICBfX3UzMiBzX2NnbWFzazsKICAgICAgICBfX3UzMiBzX3NpemU7CiAgICAgICAgX191MzIgc19k c2l6ZTsKICAgICAgICBfX3UzMiBzX25jZzsKICAgICAgICBfX3UzMiBzX2JzaXplOwogICAgICAg IF9fdTMyIHNfZnNpemU7CiAgICAgICAgX191MzIgc19mcGI7CiAgICAgICAgX191MzIgc19taW5m cmVlOwogICAgICAgIF9fdTMyIHNfYm1hc2s7CiAgICAgICAgX191MzIgc19mbWFzazsKICAgICAg ICBfX3UzMiBzX2JzaGlmdDsKICAgICAgICBfX3UzMiBzX2ZzaGlmdDsKICAgICAgICBfX3UzMiBz X2ZwYnNoaWZ0OwogICAgICAgIF9fdTMyIHNfZnNidG9kYjsKICAgICAgICBfX3UzMiBzX3Nic2l6 ZTsKICAgICAgICBfX3UzMiBzX2NzbWFzazsKICAgICAgICBfX3UzMiBzX2Nzc2hpZnQ7CiAgICAg ICAgX191MzIgc19uaW5kaXI7CiAgICAgICAgX191MzIgc19pbm9wYjsKICAgICAgICBfX3UzMiBz X25zcGY7CiAgICAgICAgX191MzIgc19ucHNlY3Q7CiAgICAgICAgX191MzIgc19pbnRlcmxlYXZl OwogICAgICAgIF9fdTMyIHNfdHJhY2tza2V3OwogICAgICAgIF9fdTMyIHNfY3NhZGRyOwogICAg ICAgIF9fdTMyIHNfY3NzaXplOwogICAgICAgIF9fdTMyIHNfY2dzaXplOwogICAgICAgIF9fdTMy IHNfbnRyYWs7CiAgICAgICAgX191MzIgc19uc2VjdDsKICAgICAgICBfX3UzMiBzX3NwYzsKICAg ICAgICBfX3UzMiBzX2lwZzsKICAgICAgICBfX3UzMiBzX2ZwZzsKICAgICAgICBfX3UzMiBzX2Nw YzsKICAgICAgICBfX3MzMiBzX2NvbnRpZ3N1bXNpemU7CiAgICAgICAgX19zNjQgc19xYm1hc2s7 CiAgICAgICAgX19zNjQgc19xZm1hc2s7CiAgICAgICAgX19zMzIgc19wb3N0Ymxmb3JtYXQ7CiAg ICAgICAgX19zMzIgc19ucnBvczsKICAgICAgICBfX3MzMiBzX3Bvc3RibG9mZjsKICAgICAgICBf X3MzMiBzX3JvdGJsb2ZmOwoKICAgICAgICBfX3UzMiBzX2ZwYm1hc2s7CiAgICAgICAgX191MzIg c19hcGI7CiAgICAgICAgX191MzIgc18yYXBiOwogICAgICAgIF9fdTMyIHNfM2FwYjsKICAgICAg ICBfX3UzMiBzX2FwYm1hc2s7CiAgICAgICAgX191MzIgc19hcGJzaGlmdDsKICAgICAgICBfX3Uz MiBzXzJhcGJzaGlmdDsKICAgICAgICBfX3UzMiBzXzNhcGJzaGlmdDsKICAgICAgICBfX3UzMiBz X25zcGZzaGlmdDsKICAgICAgICBfX3UzMiBzX25zcGI7CiAgICAgICAgX191MzIgc19pbm9wZjsK ICAgICAgICBfX3UzMiBzX3NiYmFzZTsKICAgICAgICBfX3UzMiBzX2JwZjsKICAgICAgICBfX3Uz MiBzX2JwZnNoaWZ0OwogICAgICAgIF9fdTMyIHNfYnBmbWFzazsKCiAgICAgICAgX191MzIgc19t YXhzeW1saW5rbGVuOwp9OwoKCiNkZWZpbmUgVUZTX01BWF9HUk9VUF9MT0FERUQgOAojZGVmaW5l IFVGU19DR05PX0VNUFRZICgodW5zaWduZWQpLTEpCgpzdHJ1Y3QgdWZzX3NiX2luZm8gewogICAg ICAgIHN0cnVjdCB1ZnNfc2JfcHJpdmF0ZV9pbmZvICogc191c3BpOwogICAgICAgIHN0cnVjdCB1 ZnNfY3N1bSAqIHNfY3NwWzMxXTsKICAgICAgICB1bnNpZ25lZCBzX3N3YWI7CiAgICAgICAgdW5z aWduZWQgc19mbGFnczsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiogc191Y2c7CiAgICAg ICAgc3RydWN0IHVmc19jZ19wcml2YXRlX2luZm8gKiBzX3VjcGlbOF07CiAgICAgICAgdW5zaWdu ZWQgc19jZ25vWzhdOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHNfY2dfbG9hZGVkOwogICAgICAg IHVuc2lnbmVkIHNfbW91bnRfb3B0Owp9OwoKCgoKCgoKc3RydWN0IHVmc19zdXBlcl9ibG9ja19m aXJzdCB7CiAgICAgICAgX191MzIgZnNfbGluazsKICAgICAgICBfX3UzMiBmc19ybGluazsKICAg ICAgICBfX3UzMiBmc19zYmxrbm87CiAgICAgICAgX191MzIgZnNfY2Jsa25vOwogICAgICAgIF9f dTMyIGZzX2libGtubzsKICAgICAgICBfX3UzMiBmc19kYmxrbm87CiAgICAgICAgX191MzIgZnNf Y2dvZmZzZXQ7CiAgICAgICAgX191MzIgZnNfY2dtYXNrOwogICAgICAgIF9fdTMyIGZzX3RpbWU7 CiAgICAgICAgX191MzIgZnNfc2l6ZTsKICAgICAgICBfX3UzMiBmc19kc2l6ZTsKICAgICAgICBf X3UzMiBmc19uY2c7CiAgICAgICAgX191MzIgZnNfYnNpemU7CiAgICAgICAgX191MzIgZnNfZnNp emU7CiAgICAgICAgX191MzIgZnNfZnJhZzsKICAgICAgICBfX3UzMiBmc19taW5mcmVlOwogICAg ICAgIF9fdTMyIGZzX3JvdGRlbGF5OwogICAgICAgIF9fdTMyIGZzX3JwczsKICAgICAgICBfX3Uz MiBmc19ibWFzazsKICAgICAgICBfX3UzMiBmc19mbWFzazsKICAgICAgICBfX3UzMiBmc19ic2hp ZnQ7CiAgICAgICAgX191MzIgZnNfZnNoaWZ0OwogICAgICAgIF9fdTMyIGZzX21heGNvbnRpZzsK ICAgICAgICBfX3UzMiBmc19tYXhicGc7CiAgICAgICAgX191MzIgZnNfZnJhZ3NoaWZ0OwogICAg ICAgIF9fdTMyIGZzX2ZzYnRvZGI7CiAgICAgICAgX191MzIgZnNfc2JzaXplOwogICAgICAgIF9f dTMyIGZzX2NzbWFzazsKICAgICAgICBfX3UzMiBmc19jc3NoaWZ0OwogICAgICAgIF9fdTMyIGZz X25pbmRpcjsKICAgICAgICBfX3UzMiBmc19pbm9wYjsKICAgICAgICBfX3UzMiBmc19uc3BmOwog ICAgICAgIF9fdTMyIGZzX29wdGltOwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIHN0 cnVjdCB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX25wc2VjdDsKICAgICAgICAg ICAgICAgIH0gZnNfc3VuOwogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAg ICAgICAgICAgX19zMzIgZnNfc3RhdGU7CiAgICAgICAgICAgICAgICB9IGZzX3N1bng4NjsKICAg ICAgICB9IGZzX3UxOwogICAgICAgIF9fdTMyIGZzX2ludGVybGVhdmU7CiAgICAgICAgX191MzIg ZnNfdHJhY2tza2V3OwogICAgICAgIF9fdTMyIGZzX2lkWzJdOwogICAgICAgIF9fdTMyIGZzX2Nz YWRkcjsKICAgICAgICBfX3UzMiBmc19jc3NpemU7CiAgICAgICAgX191MzIgZnNfY2dzaXplOwog ICAgICAgIF9fdTMyIGZzX250cmFrOwogICAgICAgIF9fdTMyIGZzX25zZWN0OwogICAgICAgIF9f dTMyIGZzX3NwYzsKICAgICAgICBfX3UzMiBmc19uY3lsOwogICAgICAgIF9fdTMyIGZzX2NwZzsK ICAgICAgICBfX3UzMiBmc19pcGc7CiAgICAgICAgX191MzIgZnNfZnBnOwogICAgICAgIHN0cnVj dCB1ZnNfY3N1bSBmc19jc3RvdGFsOwogICAgICAgIF9fczggZnNfZm1vZDsKICAgICAgICBfX3M4 IGZzX2NsZWFuOwogICAgICAgIF9fczggZnNfcm9ubHk7CiAgICAgICAgX19zOCBmc19mbGFnczsK ICAgICAgICBfX3M4IGZzX2ZzbW50WzUxMiAtIDIxMl07Cgp9OwoKc3RydWN0IHVmc19zdXBlcl9i bG9ja19zZWNvbmQgewogICAgICAgIF9fczggZnNfZnNtbnRbMjEyXTsKICAgICAgICBfX3UzMiBm c19jZ3JvdG9yOwogICAgICAgIF9fdTMyIGZzX2NzcFszMV07CiAgICAgICAgX191MzIgZnNfbWF4 Y2x1c3RlcjsKICAgICAgICBfX3UzMiBmc19jcGM7CiAgICAgICAgX191MTYgZnNfb3Bvc3RibFs4 Ml07Cn07CgpzdHJ1Y3QgdWZzX3N1cGVyX2Jsb2NrX3RoaXJkIHsKICAgICAgICBfX3UxNiBmc19v cG9zdGJsWzQ2XTsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAg ICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19zcGFyZWNvbls1M107CiAgICAgICAgICAgICAg ICAgICAgICAgIF9fczMyIGZzX3JlY2xhaW07CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMy IGZzX3NwYXJlY29uMlsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgX19zMzIgZnNfc3RhdGU7 CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX3FibWFza1syXTsKICAgICAgICAgICAg ICAgICAgICAgICAgX191MzIgZnNfcWZtYXNrWzJdOwogICAgICAgICAgICAgICAgfSBmc19zdW47 CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBm c19zcGFyZWNvbls1M107CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIGZzX3JlY2xhaW07 CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIGZzX3NwYXJlY29uMlsxXTsKICAgICAgICAg ICAgICAgICAgICAgICAgX191MzIgZnNfbnBzZWN0OwogICAgICAgICAgICAgICAgICAgICAgICBf X3UzMiBmc19xYm1hc2tbMl07CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX3FmbWFz a1syXTsKICAgICAgICAgICAgICAgIH0gZnNfc3VueDg2OwogICAgICAgICAgICAgICAgc3RydWN0 IHsKICAgICAgICAgICAgICAgICAgICAgICAgX19zMzIgZnNfc3BhcmVjb25bNTBdOwogICAgICAg ICAgICAgICAgICAgICAgICBfX3MzMiBmc19jb250aWdzdW1zaXplOwogICAgICAgICAgICAgICAg ICAgICAgICBfX3MzMiBmc19tYXhzeW1saW5rbGVuOwogICAgICAgICAgICAgICAgICAgICAgICBf X3MzMiBmc19pbm9kZWZtdDsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgZnNfbWF4Zmls ZXNpemVbMl07CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX3FibWFza1syXTsKICAg ICAgICAgICAgICAgICAgICAgICAgX191MzIgZnNfcWZtYXNrWzJdOwogICAgICAgICAgICAgICAg ICAgICAgICBfX3MzMiBmc19zdGF0ZTsKICAgICAgICAgICAgICAgIH0gZnNfNDQ7CiAgICAgICAg fSBmc191MjsKICAgICAgICBfX3MzMiBmc19wb3N0Ymxmb3JtYXQ7CiAgICAgICAgX19zMzIgZnNf bnJwb3M7CiAgICAgICAgX19zMzIgZnNfcG9zdGJsb2ZmOwogICAgICAgIF9fczMyIGZzX3JvdGJs b2ZmOwogICAgICAgIF9fczMyIGZzX21hZ2ljOwogICAgICAgIF9fdTggZnNfc3BhY2VbMV07Cn07 CiMgNjUyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Vmc19mc19zYi5oIiAxCiMgMTAgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZWZzX2ZzX3NiLmgiCiNkZWZpbmUgX19F RlNfRlNfU0JfSF9fCgoKI2RlZmluZSBFRlNfU1VQRVJfTUFHSUMgMHg0MTRBNTMKCgojZGVmaW5l IEVGU19NQUdJQyAweDA3Mjk1OQojZGVmaW5lIEVGU19ORVdNQUdJQyAweDA3Mjk1YQoKI2RlZmlu ZSBJU19FRlNfTUFHSUMoeCkgKCh4ID09IEVGU19NQUdJQykgfHwgKHggPT0gRUZTX05FV01BR0lD KSkKCiNkZWZpbmUgRUZTX1NVUEVSIDEKI2RlZmluZSBFRlNfUk9PVElOT0RFIDIKCgpzdHJ1Y3Qg ZWZzX3N1cGVyIHsKICAgICAgICBpbnQzMl90IGZzX3NpemU7CiAgICAgICAgaW50MzJfdCBmc19m aXJzdGNnOwogICAgICAgIGludDMyX3QgZnNfY2dmc2l6ZTsKICAgICAgICBzaG9ydCBmc19jZ2lz aXplOwogICAgICAgIHNob3J0IGZzX3NlY3RvcnM7CiAgICAgICAgc2hvcnQgZnNfaGVhZHM7CiAg ICAgICAgc2hvcnQgZnNfbmNnOwogICAgICAgIHNob3J0IGZzX2RpcnR5OwogICAgICAgIGludDMy X3QgZnNfdGltZTsKICAgICAgICBpbnQzMl90IGZzX21hZ2ljOwogICAgICAgIGNoYXIgZnNfZm5h bWVbNl07CiAgICAgICAgY2hhciBmc19mcGFja1s2XTsKICAgICAgICBpbnQzMl90IGZzX2Jtc2l6 ZTsKICAgICAgICBpbnQzMl90IGZzX3RmcmVlOwogICAgICAgIGludDMyX3QgZnNfdGlub2RlOwog ICAgICAgIGludDMyX3QgZnNfYm1ibG9jazsKICAgICAgICBpbnQzMl90IGZzX3JlcGxzYjsKICAg ICAgICBpbnQzMl90IGZzX2xhc3RpYWxsb2M7CiAgICAgICAgY2hhciBmc19zcGFyZVsyMF07CiAg ICAgICAgaW50MzJfdCBmc19jaGVja3N1bTsKfTsKCgpzdHJ1Y3QgZWZzX3NiX2luZm8gewogICAg ICAgIGludDMyX3QgZnNfbWFnaWM7CiAgICAgICAgaW50MzJfdCBmc19zdGFydDsKICAgICAgICBp bnQzMl90IGZpcnN0X2Jsb2NrOwogICAgICAgIGludDMyX3QgdG90YWxfYmxvY2tzOwogICAgICAg IGludDMyX3QgZ3JvdXBfc2l6ZTsKICAgICAgICBpbnQzMl90IGRhdGFfZnJlZTsKICAgICAgICBp bnQzMl90IGlub2RlX2ZyZWU7CiAgICAgICAgc2hvcnQgaW5vZGVfYmxvY2tzOwogICAgICAgIHNo b3J0IHRvdGFsX2dyb3VwczsKfTsKIyA2NTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcm9t ZnNfZnNfc2IuaCIgMQoKI2RlZmluZSBfX1JPTUZTX0ZTX1NCCgoKCnN0cnVjdCByb21mc19zYl9p bmZvIHsKICAgICAgICB1bnNpZ25lZCBsb25nIHNfbWF4c2l6ZTsKfTsKIyA2NTQgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvc21iX2ZzX3NiLmgiIDEKIyAxMCAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9zbWJfZnNfc2IuaCIKI2RlZmluZSBfU01CX0ZTX1NCCgoKCiMgMSAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTUgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc21iX2ZzX3NiLmgiIDIKIyAxICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtYi5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvc21iLmgiCiNkZWZpbmUgX0xJTlVYX1NNQl9ICgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDEzICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtYi5oIiAyCgplbnVtIHNtYl9wcm90b2NvbCB7 CiAgICAgICAgU01CX1BST1RPQ09MX05PTkUsCiAgICAgICAgU01CX1BST1RPQ09MX0NPUkUsCiAg ICAgICAgU01CX1BST1RPQ09MX0NPUkVQTFVTLAogICAgICAgIFNNQl9QUk9UT0NPTF9MQU5NQU4x LAogICAgICAgIFNNQl9QUk9UT0NPTF9MQU5NQU4yLAogICAgICAgIFNNQl9QUk9UT0NPTF9OVDEK fTsKCmVudW0gc21iX2Nhc2VfaG5kbCB7CiAgICAgICAgU01CX0NBU0VfREVGQVVMVCwKICAgICAg ICBTTUJfQ0FTRV9MT1dFUiwKICAgICAgICBTTUJfQ0FTRV9VUFBFUgp9OwoKc3RydWN0IHNtYl9k c2thdHRyIHsKICAgICAgICBfX3UxNiB0b3RhbDsKICAgICAgICBfX3UxNiBhbGxvY2Jsb2NrczsK ICAgICAgICBfX3UxNiBibG9ja3NpemU7CiAgICAgICAgX191MTYgZnJlZTsKfTsKCnN0cnVjdCBz bWJfY29ubl9vcHQgewoKCiAgICAgICAgdW5zaWduZWQgaW50IGZkOwoKICAgICAgICBlbnVtIHNt Yl9wcm90b2NvbCBwcm90b2NvbDsKICAgICAgICBlbnVtIHNtYl9jYXNlX2huZGwgY2FzZV9oYW5k bGluZzsKCgoKICAgICAgICBfX3UzMiBtYXhfeG1pdDsKICAgICAgICBfX3UxNiBzZXJ2ZXJfdWlk OwogICAgICAgIF9fdTE2IHRpZDsKCgogICAgICAgIF9fdTE2IHNlY21vZGU7CiAgICAgICAgX191 MTYgbWF4bXV4OwogICAgICAgIF9fdTE2IG1heHZjczsKICAgICAgICBfX3UxNiByYXdtb2RlOwog ICAgICAgIF9fdTMyIHNlc3NrZXk7CgoKICAgICAgICBfX3UzMiBtYXhyYXc7CiAgICAgICAgX191 MzIgY2FwYWJpbGl0aWVzOwogICAgICAgIF9fczE2IHNlcnZlcnpvbmU7Cn07CgoKCiNkZWZpbmUg U01CX05MU19NQVhOQU1FTEVOIDIwCnN0cnVjdCBzbWJfbmxzX2NvZGVwYWdlIHsKICAgICAgICBj aGFyIGxvY2FsX25hbWVbMjBdOwogICAgICAgIGNoYXIgcmVtb3RlX25hbWVbMjBdOwp9OwoKCiNk ZWZpbmUgU01CX01BWE5BTUVMRU4gMjU1CiNkZWZpbmUgU01CX01BWFBBVEhMRU4gMTAyNAoKCgoK c3RydWN0IHNtYl9mYXR0ciB7CgogICAgICAgIF9fdTE2IGF0dHI7CgogICAgICAgIHVuc2lnbmVk IGxvbmcgZl9pbm87CiAgICAgICAgdW1vZGVfdCBmX21vZGU7CiAgICAgICAgbmxpbmtfdCBmX25s aW5rOwogICAgICAgIHVpZF90IGZfdWlkOwogICAgICAgIGdpZF90IGZfZ2lkOwogICAgICAgIGtk ZXZfdCBmX3JkZXY7CiAgICAgICAgb2ZmX3QgZl9zaXplOwogICAgICAgIHRpbWVfdCBmX2F0aW1l OwogICAgICAgIHRpbWVfdCBmX210aW1lOwogICAgICAgIHRpbWVfdCBmX2N0aW1lOwogICAgICAg IHVuc2lnbmVkIGxvbmcgZl9ibGtzaXplOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZl9ibG9ja3M7 Cn07CgplbnVtIHNtYl9jb25uX3N0YXRlIHsKICAgICAgICBDT05OX1ZBTElELAogICAgICAgIENP Tk5fSU5WQUxJRCwKCiAgICAgICAgQ09OTl9SRVRSSUVELAogICAgICAgIENPTk5fUkVUUllJTkcK fTsKCiNkZWZpbmUgU01CX1NVUEVSX01BR0lDIDB4NTE3QgoKI2RlZmluZSBTTUJfSEVBREVSX0xF TiAzNwoKCiNkZWZpbmUgU01CX0lOSVRJQUxfUEFDS0VUX1NJWkUgNDAwMAojZGVmaW5lIFNNQl9N QVhfUEFDS0VUX1NJWkUgMzI3NjgKCgoKI2RlZmluZSBTTUJfVFJBTlMyX01BWF9QQVJBTSA2NAoj IDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtYl9mc19zYi5oIiAyCgoK I2RlZmluZSBzZXJ2ZXJfZnJvbV9pbm9kZShpbm9kZSkgKCYoaW5vZGUpLT5pX3NiLT51LnNtYmZz X3NiKQojZGVmaW5lIHNlcnZlcl9mcm9tX2RlbnRyeShkZW50cnkpICgmKGRlbnRyeSktPmRfc2It PnUuc21iZnNfc2IpCiNkZWZpbmUgU0Jfb2Yoc2VydmVyKSAoKHN0cnVjdCBzdXBlcl9ibG9jayAq KSAoKGNoYXIgKikoc2VydmVyKSAtICh1bnNpZ25lZCBsb25nKSgmKChzdHJ1Y3Qgc3VwZXJfYmxv Y2sgKikwKS0+dS5zbWJmc19zYikpKQoKCnN0cnVjdCBzbWJfc2JfaW5mbyB7CiAgICAgICAgZW51 bSBzbWJfY29ubl9zdGF0ZSBzdGF0ZTsKICAgICAgICBzdHJ1Y3QgZmlsZSAqIHNvY2tfZmlsZTsK CiAgICAgICAgc3RydWN0IHNtYl9tb3VudF9kYXRhX2tlcm5lbCAqbW50OwogICAgICAgIHVuc2ln bmVkIGNoYXIgKnRlbXBfYnVmOwoKCgoKICAgICAgICB1bnNpZ25lZCBpbnQgZ2VuZXJhdGlvbjsK ICAgICAgICBwaWRfdCBjb25uX3BpZDsKICAgICAgICBzdHJ1Y3Qgc21iX2Nvbm5fb3B0IG9wdDsK CiAgICAgICAgc3RydWN0IHNlbWFwaG9yZSBzZW07CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3Qg d2FpdDsKCiAgICAgICAgX191MzIgcGFja2V0X3NpemU7CiAgICAgICAgdW5zaWduZWQgY2hhciAq IHBhY2tldDsKICAgICAgICB1bnNpZ25lZCBzaG9ydCByY2xzOwogICAgICAgIHVuc2lnbmVkIHNo b3J0IGVycjsKCgogICAgICAgIHZvaWQgKmRhdGFfcmVhZHk7CgoKICAgICAgICBzdHJ1Y3Qgbmxz X3RhYmxlICpyZW1vdGVfbmxzOwogICAgICAgIHN0cnVjdCBubHNfdGFibGUgKmxvY2FsX25sczsK CgoKCiAgICAgICAgY2hhciAqbmFtZV9idWY7CgogICAgICAgIGludCAoKmNvbnZlcnQpKGNoYXIg KiwgaW50LCBjb25zdCBjaGFyICosIGludCwKICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg bmxzX3RhYmxlICosIHN0cnVjdCBubHNfdGFibGUgKik7Cn07CgoKc3RhdGljIGlubGluZSB2b2lk CnNtYl9sb2NrX3NlcnZlcihzdHJ1Y3Qgc21iX3NiX2luZm8gKnNlcnZlcikKewogICAgICAgIGRv d24oJihzZXJ2ZXItPnNlbSkpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKc21iX3VubG9ja19zZXJ2 ZXIoc3RydWN0IHNtYl9zYl9pbmZvICpzZXJ2ZXIpCnsKICAgICAgICB1cCgmKHNlcnZlci0+c2Vt KSk7Cn0KIyA2NTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgoj IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvaGZzX2ZzX3NiLmgiIDEKIyAx MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9oZnNfZnNfc2IuaCIKI2RlZmlu ZSBfTElOVVhfSEZTX0ZTX1NCX0gKCgpzdHJ1Y3QgaGZzX25hbWU7Cgp0eXBlZGVmIGludCAoKmhm c19uYW1laW5fZm4pIChjaGFyICosIGNvbnN0IHN0cnVjdCBoZnNfbmFtZSAqKTsKdHlwZWRlZiB2 b2lkICgqaGZzX25hbWVvdXRfZm4pIChzdHJ1Y3QgaGZzX25hbWUgKiwgY29uc3QgY2hhciAqLCBp bnQpOwp0eXBlZGVmIHZvaWQgKCpoZnNfaWZpbGxfZm4pIChzdHJ1Y3QgaW5vZGUgKiwgaW5vX3Qs IGNvbnN0IGludCk7CgoKCgoKCnN0cnVjdCBoZnNfc2JfaW5mbyB7CiAgICAgICAgaW50IG1hZ2lj OwogICAgICAgIHN0cnVjdCBoZnNfbWRiICpzX21kYjsKICAgICAgICBpbnQgc19xdWlldDsKCiAg ICAgICAgaW50IHNfbG93ZXJjYXNlOwogICAgICAgIGludCBzX2FmcGQ7CiAgICAgICAgaW50IHNf dmVyc2lvbjsKICAgICAgICBoZnNfbmFtZWluX2ZuIHNfbmFtZWluOwoKCiAgICAgICAgaGZzX25h bWVvdXRfZm4gc19uYW1lb3V0OwoKCiAgICAgICAgaGZzX2lmaWxsX2ZuIHNfaWZpbGw7CgogICAg ICAgIGNvbnN0IHN0cnVjdCBoZnNfbmFtZSAqc19yZXNlcnZlZDE7CiAgICAgICAgY29uc3Qgc3Ry dWN0IGhmc19uYW1lICpzX3Jlc2VydmVkMjsKICAgICAgICBfX3UzMiBzX3R5cGU7CiAgICAgICAg X191MzIgc19jcmVhdG9yOwogICAgICAgIHVtb2RlX3Qgc191bWFzazsKCiAgICAgICAgdWlkX3Qg c191aWQ7CiAgICAgICAgZ2lkX3Qgc19naWQ7CiAgICAgICAgY2hhciBzX2NvbnY7Cn07CiMgNjU2 ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2FkZnNfZnNfc2IuaCIgMQoKCgoKCgoKI2RlZmlu ZSBfQURGU19GU19TQgoKCgoKc3RydWN0IGFkZnNfZGlzY21hcDsKc3RydWN0IGFkZnNfZGlyX29w czsKCgoKCnN0cnVjdCBhZGZzX3NiX2luZm8gewogICAgICAgIHN0cnVjdCBhZGZzX2Rpc2NtYXAg KnNfbWFwOwogICAgICAgIHN0cnVjdCBhZGZzX2Rpcl9vcHMgKnNfZGlyOwoKICAgICAgICB1aWRf dCBzX3VpZDsKICAgICAgICBnaWRfdCBzX2dpZDsKICAgICAgICB1bW9kZV90IHNfb3duZXJfbWFz azsKICAgICAgICB1bW9kZV90IHNfb3RoZXJfbWFzazsKCiAgICAgICAgX191MzIgc19pZHNfcGVy X3pvbmU7CiAgICAgICAgX191MzIgc19pZGxlbjsKICAgICAgICBfX3UzMiBzX21hcF9zaXplOwog ICAgICAgIHVuc2lnbmVkIGxvbmcgc19zaXplOwogICAgICAgIHNpZ25lZCBpbnQgc19tYXAyYmxr OwogICAgICAgIHVuc2lnbmVkIGludCBzX2xvZzJzaGFyZXNpemU7CiAgICAgICAgdW5zaWduZWQg aW50IHNfdmVyc2lvbjsKICAgICAgICB1bnNpZ25lZCBpbnQgc19uYW1lbGVuOwp9OwojIDY1NyAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzX3NiLmgiIDEKIyAxMiAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzX3NiLmgiCiNkZWZpbmUgX1FOWDRfRlNf U0IKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzLmgiIDEK IyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzLmgiCiNkZWZp bmUgX0xJTlVYX1FOWDRfRlNfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L3FueHR5cGVzLmgiIDEKIyAxNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9xbng0X2ZzLmgiIDIKCiNkZWZpbmUgUU5YNF9ST09UX0lOTyAxCgojZGVmaW5lIFFOWDRfTUFY X1hUTlRTX1BFUl9YQkxLIDYwCgojZGVmaW5lIFFOWDRfRklMRV9VU0VEIDB4MDEKI2RlZmluZSBR Tlg0X0ZJTEVfTU9ESUZJRUQgMHgwMgojZGVmaW5lIFFOWDRfRklMRV9CVVNZIDB4MDQKI2RlZmlu ZSBRTlg0X0ZJTEVfTElOSyAweDA4CiNkZWZpbmUgUU5YNF9GSUxFX0lOT0RFIDB4MTAKI2RlZmlu ZSBRTlg0X0ZJTEVfRlNZU0NMRUFOIDB4MjAKCiNkZWZpbmUgUU5YNF9JX01BUF9TTE9UUyA4CiNk ZWZpbmUgUU5YNF9aX01BUF9TTE9UUyA2NAojZGVmaW5lIFFOWDRfU1VQRVJfTUFHSUMgMHgwMDJm CiNkZWZpbmUgUU5YNF9WQUxJRF9GUyAweDAwMDEKI2RlZmluZSBRTlg0X0VSUk9SX0ZTIDB4MDAw MgojZGVmaW5lIFFOWDRfQkxPQ0tfU0laRSAweDIwMAojZGVmaW5lIFFOWDRfQkxPQ0tfU0laRV9C SVRTIDkKI2RlZmluZSBRTlg0X0RJUl9FTlRSWV9TSVpFIDB4MDQwCiNkZWZpbmUgUU5YNF9ESVJf RU5UUllfU0laRV9CSVRTIDYKI2RlZmluZSBRTlg0X1hCTEtfRU5UUllfU0laRSAweDIwMAojZGVm aW5lIFFOWDRfSU5PREVTX1BFUl9CTE9DSyAweDA4CgoKI2RlZmluZSBRTlg0X1NIT1JUX05BTUVf TUFYIDE2CiNkZWZpbmUgUU5YNF9OQU1FX01BWCA0OAoKCgoKc3RydWN0IHFueDRfaW5vZGVfZW50 cnkgewogICAgICAgIGNoYXIgZGlfZm5hbWVbMTZdOwogICAgICAgIHFueDRfb2ZmX3QgZGlfc2l6 ZTsKICAgICAgICBxbng0X3h0bnRfdCBkaV9maXJzdF94dG50OwogICAgICAgIF9fdTMyIGRpX3hi bGs7CiAgICAgICAgX19zMzIgZGlfZnRpbWU7CiAgICAgICAgX19zMzIgZGlfbXRpbWU7CiAgICAg ICAgX19zMzIgZGlfYXRpbWU7CiAgICAgICAgX19zMzIgZGlfY3RpbWU7CiAgICAgICAgcW54NF9u eHRudF90IGRpX251bV94dG50czsKICAgICAgICBxbng0X21vZGVfdCBkaV9tb2RlOwogICAgICAg IHFueDRfbXVpZF90IGRpX3VpZDsKICAgICAgICBxbng0X21naWRfdCBkaV9naWQ7CiAgICAgICAg cW54NF9ubGlua190IGRpX25saW5rOwogICAgICAgIF9fdTggZGlfemVyb1s0XTsKICAgICAgICBx bng0X2Z0eXBlX3QgZGlfdHlwZTsKICAgICAgICBfX3U4IGRpX3N0YXR1czsKfTsKCnN0cnVjdCBx bng0X2xpbmtfaW5mbyB7CiAgICAgICAgY2hhciBkbF9mbmFtZVs0OF07CiAgICAgICAgX191MzIg ZGxfaW5vZGVfYmxrOwogICAgICAgIF9fdTggZGxfaW5vZGVfbmR4OwogICAgICAgIF9fdTggZGxf c3BhcmVbMTBdOwogICAgICAgIF9fdTggZGxfc3RhdHVzOwp9OwoKc3RydWN0IHFueDRfeGJsayB7 CiAgICAgICAgX191MzIgeGJsa19uZXh0X3hibGs7CiAgICAgICAgX191MzIgeGJsa19wcmV2X3hi bGs7CiAgICAgICAgX191OCB4YmxrX251bV94dG50czsKICAgICAgICBfX3U4IHhibGtfc3BhcmVb M107CiAgICAgICAgX19zMzIgeGJsa19udW1fYmxvY2tzOwogICAgICAgIHFueDRfeHRudF90IHhi bGtfeHRudHNbNjBdOwogICAgICAgIGNoYXIgeGJsa19zaWduYXR1cmVbOF07CiAgICAgICAgcW54 NF94dG50X3QgeGJsa19maXJzdF94dG50Owp9OwoKc3RydWN0IHFueDRfc3VwZXJfYmxvY2sgewog ICAgICAgIHN0cnVjdCBxbng0X2lub2RlX2VudHJ5IFJvb3REaXI7CiAgICAgICAgc3RydWN0IHFu eDRfaW5vZGVfZW50cnkgSW5vZGU7CiAgICAgICAgc3RydWN0IHFueDRfaW5vZGVfZW50cnkgQm9v dDsKICAgICAgICBzdHJ1Y3QgcW54NF9pbm9kZV9lbnRyeSBBbHRCb290Owp9OwoKCgojZGVmaW5l IFFOWDRfREVCVUcgMAoKCgoKI2RlZmluZSBRTlg0REVCVUcoWCkgKHZvaWQpIDAKCgpleHRlcm4g c3RydWN0IGRlbnRyeSAqcW54NF9sb29rdXAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50 cnkgKmRlbnRyeSk7CmV4dGVybiB1bnNpZ25lZCBsb25nIHFueDRfY291bnRfZnJlZV9ibG9ja3Mo c3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CmV4dGVybiB1bnNpZ25lZCBsb25nIHFueDRfYmxvY2tf bWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvbmcgaWJsb2NrKTsKCmV4dGVybiBzdHJ1Y3QgYnVm ZmVyX2hlYWQgKnFueDRfZ2V0YmxrKHN0cnVjdCBpbm9kZSAqLCBpbnQsIGludCk7CmV4dGVybiBz dHJ1Y3QgYnVmZmVyX2hlYWQgKnFueDRfYnJlYWQoc3RydWN0IGlub2RlICosIGludCwgaW50KTsK CmV4dGVybiBpbnQgcW54NF9jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkg KmRlbnRyeSwgaW50IG1vZGUpOwpleHRlcm4gc3RydWN0IGlub2RlX29wZXJhdGlvbnMgcW54NF9m aWxlX2lub2RlX29wZXJhdGlvbnM7CmV4dGVybiBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBxbng0 X2Rpcl9pbm9kZV9vcGVyYXRpb25zOwpleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBxbng0 X2ZpbGVfb3BlcmF0aW9uczsKZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcW54NF9kaXJf b3BlcmF0aW9uczsKZXh0ZXJuIGludCBxbng0X2lzX2ZyZWUoc3RydWN0IHN1cGVyX2Jsb2NrICpz YiwgbG9uZyBibG9jayk7CmV4dGVybiBpbnQgcW54NF9zZXRfYml0bWFwKHN0cnVjdCBzdXBlcl9i bG9jayAqc2IsIGxvbmcgYmxvY2ssIGludCBidXN5KTsKZXh0ZXJuIGludCBxbng0X2NyZWF0ZShz dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGludCBtb2RlKTsKZXh0 ZXJuIHZvaWQgcW54NF90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKZXh0ZXJuIHZvaWQg cW54NF9mcmVlX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwpleHRlcm4gaW50IHFueDRfdW5s aW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwpleHRlcm4gaW50 IHFueDRfcm1kaXIoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7CmV4 dGVybiBpbnQgcW54NF9zeW5jX2ZpbGUoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkZW50cnkg KmRlbnRyeSwgaW50KTsKZXh0ZXJuIGludCBxbng0X3N5bmNfaW5vZGUoc3RydWN0IGlub2RlICpp bm9kZSk7CmV4dGVybiBpbnQgcW54NF9nZXRfYmxvY2soc3RydWN0IGlub2RlICppbm9kZSwgbG9u ZyBpYmxvY2ssIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgsIGludCBjcmVhdGUpOwojIDE1ICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3FueDRfZnNfc2IuaCIgMgoKCgoKCnN0cnVj dCBxbng0X3NiX2luZm8gewogICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqc2JfYnVmOwogICAg ICAgIHN0cnVjdCBxbng0X3N1cGVyX2Jsb2NrICpzYjsKICAgICAgICB1bnNpZ25lZCBpbnQgVmVy c2lvbjsKICAgICAgICBzdHJ1Y3QgcW54NF9pbm9kZV9lbnRyeSAqQml0TWFwOwp9OwojIDY1OCAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9yZWlzZXJmc19mc19zYi5oIiAxCgoKCgojZGVmaW5l IF9MSU5VWF9SRUlTRVJfRlNfU0IKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvdHF1ZXVlLmgiIDEKIyAxNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC90cXVldWUuaCIKI2RlZmluZSBfTElOVVhfVFFVRVVFX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAxCiMgMTcgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvdHF1ZXVlLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L2xpc3QuaCIgMQojIDE4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L3RxdWV1ZS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20v Yml0b3BzLmgiIDEKIyAxOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90cXVl dWUuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5oIiAx CiMgMjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHF1ZXVlLmgiIDIKIyAz OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90cXVldWUuaCIKc3RydWN0IHRx X3N0cnVjdCB7CiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBsaXN0OwogICAgICAgIHVuc2lnbmVk IGxvbmcgc3luYzsKICAgICAgICB2b2lkICgqcm91dGluZSkodm9pZCAqKTsKICAgICAgICB2b2lk ICpkYXRhOwp9OwoKCgoKI2RlZmluZSBQUkVQQVJFX1RRVUVVRShfdHEsIF9yb3V0aW5lLCBfZGF0 YSkgZG8geyAoX3RxKS0+cm91dGluZSA9IF9yb3V0aW5lOyAoX3RxKS0+ZGF0YSA9IF9kYXRhOyB9 IHdoaWxlICgwKQojIDU3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3RxdWV1 ZS5oIgojZGVmaW5lIElOSVRfVFFVRVVFKF90cSwgX3JvdXRpbmUsIF9kYXRhKSBkbyB7IElOSVRf TElTVF9IRUFEKCYoX3RxKS0+bGlzdCk7IChfdHEpLT5zeW5jID0gMDsgUFJFUEFSRV9UUVVFVUUo KF90cSksIChfcm91dGluZSksIChfZGF0YSkpOyB9IHdoaWxlICgwKQoKCgoKCgp0eXBlZGVmIHN0 cnVjdCBsaXN0X2hlYWQgdGFza19xdWV1ZTsKCiNkZWZpbmUgREVDTEFSRV9UQVNLX1FVRVVFKHEp IExJU1RfSEVBRChxKQojZGVmaW5lIFRRX0FDVElWRShxKSAoIWxpc3RfZW1wdHkoJnEpKQoKZXh0 ZXJuIHRhc2tfcXVldWUgdHFfdGltZXJfUnNtcF9mYTNlOWFjYywgdHFfaW1tZWRpYXRlX1JzbXBf MGRhMGRjZDEsIHRxX2Rpc2tfUnNtcF81MzczZGJiNjsKIyA5NCAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC90cXVldWUuaCIKZXh0ZXJuIHNwaW5sb2NrX3QgdHF1ZXVlX2xvY2tf UnNtcF9iN2EwYzBiNTsKCgoKCgpzdGF0aWMgaW5saW5lIGludCBxdWV1ZV90YXNrKHN0cnVjdCB0 cV9zdHJ1Y3QgKmJoX3BvaW50ZXIsIHRhc2tfcXVldWUgKmJoX2xpc3QpCnsKICAgICAgICBpbnQg cmV0ID0gMDsKICAgICAgICBpZiAoIXRlc3RfYW5kX3NldF9iaXQoMCwmYmhfcG9pbnRlci0+c3lu YykpIHsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgICAgICAgICAg ICBkbyB7IF9fYXNtX18gX192b2xhdGlsZV9fICgibW92ICUwPXBzcjs7IHJzbSBwc3IuaTs7IiA6 ICI9ciIgKGZsYWdzKSA6OiAibWVtb3J5Iik7IF9fYXNtX18gX192b2xhdGlsZV9fICggIm1vdiBh ci5jY3YgPSByMFxuIiAibW92IHIyOSA9IDFcbiIgIjs7XG4iICIxOlxuIiAibGQ0IHIyID0gWyUw XVxuIiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCxyMlxuIiAiKHA3KSBici5jb25kLnNwbnQu ZmV3IDFiIFxuIiAiIiJjbXB4Y2hnNC5hY3EgcjIgPSBbJTBdLCByMjksIGFyLmNjdlxuIiAiOztc biIgImNtcDQuZXEgcDAscDcgPSByMCwgcjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZldyAxYlxu IiAiOztcbiIgOjogInIiKCYoJnRxdWV1ZV9sb2NrX1JzbXBfYjdhMGMwYjUpLT5sb2NrKSA6ICJy MiIsICJyMjkiLCAibWVtb3J5Iik7IH0gd2hpbGUgKDApOwogICAgICAgICAgICAgICAgbGlzdF9h ZGRfdGFpbCgmYmhfcG9pbnRlci0+bGlzdCwgYmhfbGlzdCk7CiAgICAgICAgICAgICAgICBkbyB7 IGRvIHsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKChzcGlubG9ja190 ICopICZ0cXVldWVfbG9ja19Sc21wX2I3YTBjMGI1KS0+bG9jayA9IDA7IH0gd2hpbGUgKDApOyBf X2FzbV9fIF9fdm9sYXRpbGVfXyAoIjs7IG1vdiBwc3IubD0lMDs7IHNybHouZCIgOjogInIiIChm bGFncykgOiAibWVtb3J5Iik7IH0gd2hpbGUgKDApOwogICAgICAgICAgICAgICAgcmV0ID0gMTsK ICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJldDsKfQoKCgoKCmV4dGVybiB2b2lkIF9fcnVuX3Rh c2tfcXVldWVfUnNtcF8zODg5YjExYyh0YXNrX3F1ZXVlICpsaXN0KTsKCnN0YXRpYyBpbmxpbmUg dm9pZCBydW5fdGFza19xdWV1ZSh0YXNrX3F1ZXVlICpsaXN0KQp7CiAgICAgICAgaWYgKCghbGlz dF9lbXB0eSgmKmxpc3QpKSkKICAgICAgICAgICAgICAgIF9fcnVuX3Rhc2tfcXVldWVfUnNtcF8z ODg5YjExYyhsaXN0KTsKfQojIDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv cmVpc2VyZnNfZnNfc2IuaCIgMgoKCgoKCgoKI2RlZmluZSBSRUlTRVJGU19WRVJTSU9OXzIgMgoj ZGVmaW5lIFVOU0VUX0hBU0ggMAoKI2RlZmluZSBURUFfSEFTSCAxCiNkZWZpbmUgWVVSQV9IQVNI IDIKI2RlZmluZSBSNV9IQVNIIDMKI2RlZmluZSBERUZBVUxUX0hBU0ggUjVfSEFTSAoKCgpzdHJ1 Y3QgcmVpc2VyZnNfc3VwZXJfYmxvY2sKewogIF9fdTMyIHNfYmxvY2tfY291bnQ7CiAgX191MzIg c19mcmVlX2Jsb2NrczsKICBfX3UzMiBzX3Jvb3RfYmxvY2s7CiAgX191MzIgc19qb3VybmFsX2Js b2NrOwogIF9fdTMyIHNfam91cm5hbF9kZXY7CiMgNDMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvbGludXgvcmVpc2VyZnNfZnNfc2IuaCIKICBfX3UzMiBzX29yaWdfam91cm5hbF9zaXpl OwogIF9fdTMyIHNfam91cm5hbF90cmFuc19tYXggOwogIF9fdTMyIHNfam91cm5hbF9ibG9ja19j b3VudCA7CiAgX191MzIgc19qb3VybmFsX21heF9iYXRjaCA7CiAgX191MzIgc19qb3VybmFsX21h eF9jb21taXRfYWdlIDsKICBfX3UzMiBzX2pvdXJuYWxfbWF4X3RyYW5zX2FnZSA7CiAgX191MTYg c19ibG9ja3NpemU7CiAgX191MTYgc19vaWRfbWF4c2l6ZTsKICBfX3UxNiBzX29pZF9jdXJzaXpl OwogIF9fdTE2IHNfc3RhdGU7CiAgY2hhciBzX21hZ2ljWzEyXTsKICBfX3UzMiBzX2hhc2hfZnVu Y3Rpb25fY29kZTsKICBfX3UxNiBzX3RyZWVfaGVpZ2h0OwogIF9fdTE2IHNfYm1hcF9ucjsKICBf X3UxNiBzX3ZlcnNpb247CgoKCgogIF9fdTE2IHNfcmVzZXJ2ZWQ7CiAgX191MzIgc19pbm9kZV9n ZW5lcmF0aW9uOwogIGNoYXIgc191bnVzZWRbMTI0XSA7Cn0gX19hdHRyaWJ1dGVfXyAoKF9fcGFj a2VkX18pKTsKCiNkZWZpbmUgU0JfU0laRSAoc2l6ZW9mKHN0cnVjdCByZWlzZXJmc19zdXBlcl9i bG9jaykpCgoKc3RydWN0IHJlaXNlcmZzX3N1cGVyX2Jsb2NrX3YxCnsKICBfX3UzMiBzX2Jsb2Nr X2NvdW50OwogIF9fdTMyIHNfZnJlZV9ibG9ja3M7CiAgX191MzIgc19yb290X2Jsb2NrOwogIF9f dTMyIHNfam91cm5hbF9ibG9jazsKICBfX3UzMiBzX2pvdXJuYWxfZGV2OwogIF9fdTMyIHNfb3Jp Z19qb3VybmFsX3NpemU7CiAgX191MzIgc19qb3VybmFsX3RyYW5zX21heCA7CiAgX191MzIgc19q b3VybmFsX2Jsb2NrX2NvdW50IDsKICBfX3UzMiBzX2pvdXJuYWxfbWF4X2JhdGNoIDsKICBfX3Uz MiBzX2pvdXJuYWxfbWF4X2NvbW1pdF9hZ2UgOwogIF9fdTMyIHNfam91cm5hbF9tYXhfdHJhbnNf YWdlIDsKICBfX3UxNiBzX2Jsb2Nrc2l6ZTsKICBfX3UxNiBzX29pZF9tYXhzaXplOwogIF9fdTE2 IHNfb2lkX2N1cnNpemU7CiAgX191MTYgc19zdGF0ZTsKICBjaGFyIHNfbWFnaWNbMTZdOwogIF9f dTE2IHNfdHJlZV9oZWlnaHQ7CiAgX191MTYgc19ibWFwX25yOwogIF9fdTMyIHNfcmVzZXJ2ZWQ7 Cn0gX19hdHRyaWJ1dGVfXyAoKF9fcGFja2VkX18pKTsKCiNkZWZpbmUgU0JfU0laRV9WMSAoc2l6 ZW9mKHN0cnVjdCByZWlzZXJmc19zdXBlcl9ibG9ja192MSkpCiMgMTIwICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2xpbnV4L3JlaXNlcmZzX2ZzX3NiLmgiCiNkZWZpbmUgSk9VUk5BTF9C TE9DS19TSVpFIDQwOTYKI2RlZmluZSBKT1VSTkFMX01BWF9DTk9ERSAxNTAwCiNkZWZpbmUgSk9V Uk5BTF9UUkFOU19NQVggMTAyNAojZGVmaW5lIEpPVVJOQUxfSEFTSF9TSVpFIDgxOTIKI2RlZmlu ZSBKT1VSTkFMX05VTV9CSVRNQVBTIDUKI2RlZmluZSBKT1VSTkFMX0xJU1RfQ09VTlQgNjQKCgoK I2RlZmluZSBCSF9KRGlydHkgMTYKI2RlZmluZSBCSF9KRGlydHlfd2FpdCAxOAojZGVmaW5lIEJI X0pOZXcgMTkKCgoKCgoKI2RlZmluZSBCSF9KUHJlcGFyZWQgMjAKI2RlZmluZSBCSF9KUmVzdG9y ZV9kaXJ0eSAyMgojIDE0OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9yZWlz ZXJmc19mc19zYi5oIgpzdHJ1Y3QgcmVpc2VyZnNfam91cm5hbF9jbm9kZSB7CiAgc3RydWN0IGJ1 ZmZlcl9oZWFkICpiaCA7CiAga2Rldl90IGRldiA7CiAgdW5zaWduZWQgbG9uZyBibG9ja25yIDsK ICBpbnQgc3RhdGUgOwogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2xpc3QgKmpsaXN0IDsKICBz dHJ1Y3QgcmVpc2VyZnNfam91cm5hbF9jbm9kZSAqbmV4dCA7CiAgc3RydWN0IHJlaXNlcmZzX2pv dXJuYWxfY25vZGUgKnByZXYgOwogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2Nub2RlICpocHJl diA7CiAgc3RydWN0IHJlaXNlcmZzX2pvdXJuYWxfY25vZGUgKmhuZXh0IDsKfTsKCnN0cnVjdCBy ZWlzZXJmc19iaXRtYXBfbm9kZSB7CiAgaW50IGlkIDsKICBjaGFyICpkYXRhIDsKICBzdHJ1Y3Qg bGlzdF9oZWFkIGxpc3QgOwp9IDsKCnN0cnVjdCByZWlzZXJmc19saXN0X2JpdG1hcCB7CiAgc3Ry dWN0IHJlaXNlcmZzX2pvdXJuYWxfbGlzdCAqam91cm5hbF9saXN0IDsKICBzdHJ1Y3QgcmVpc2Vy ZnNfYml0bWFwX25vZGUgKipiaXRtYXBzIDsKfSA7CgoKCgpzdHJ1Y3QgcmVpc2VyZnNfdHJhbnNh Y3Rpb25faGFuZGxlIHsKCiAgY2hhciAqdF9jYWxsZXIgOwogIGludCB0X2Jsb2Nrc19sb2dnZWQg OwogIGludCB0X2Jsb2Nrc19hbGxvY2F0ZWQgOwogIHVuc2lnbmVkIGxvbmcgdF90cmFuc19pZCA7 CiAgc3RydWN0IHN1cGVyX2Jsb2NrICp0X3N1cGVyIDsKCgp9IDsKCgoKCgoKCnN0cnVjdCByZWlz ZXJmc19qb3VybmFsX2xpc3QgewogIHVuc2lnbmVkIGxvbmcgal9zdGFydCA7CiAgdW5zaWduZWQg bG9uZyBqX2xlbiA7CiAgYXRvbWljX3Qgal9ub256ZXJvbGVuIDsKICBhdG9taWNfdCBqX2NvbW1p dF9sZWZ0IDsKICBhdG9taWNfdCBqX2ZsdXNoaW5nIDsKICBhdG9taWNfdCBqX2NvbW1pdF9mbHVz aGluZyA7CiAgYXRvbWljX3Qgal9vbGRlcl9jb21taXRzX2RvbmUgOwogIHVuc2lnbmVkIGxvbmcg al90cmFuc19pZCA7CiAgdGltZV90IGpfdGltZXN0YW1wIDsKICBzdHJ1Y3QgcmVpc2VyZnNfbGlz dF9iaXRtYXAgKmpfbGlzdF9iaXRtYXAgOwogIHN0cnVjdCBidWZmZXJfaGVhZCAqal9jb21taXRf YmggOwogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2Nub2RlICpqX3JlYWxibG9jayA7CiAgc3Ry dWN0IHJlaXNlcmZzX2pvdXJuYWxfY25vZGUgKmpfZnJlZWRsaXN0IDsKICB3YWl0X3F1ZXVlX2hl YWRfdCBqX2NvbW1pdF93YWl0IDsKICB3YWl0X3F1ZXVlX2hlYWRfdCBqX2ZsdXNoX3dhaXQgOwp9 IDsKCnN0cnVjdCByZWlzZXJmc19wYWdlX2xpc3QgOwoKc3RydWN0IHJlaXNlcmZzX2pvdXJuYWwg ewogIHN0cnVjdCBidWZmZXJfaGVhZCAqKiBqX2FwX2Jsb2NrcyA7CiAgc3RydWN0IHJlaXNlcmZz X2pvdXJuYWxfY25vZGUgKmpfbGFzdCA7CiAgc3RydWN0IHJlaXNlcmZzX2pvdXJuYWxfY25vZGUg KmpfZmlyc3QgOwoKICBpbnQgal9zdGF0ZSA7CiAgdW5zaWduZWQgbG9uZyBqX3RyYW5zX2lkIDsK ICB1bnNpZ25lZCBsb25nIGpfbW91bnRfaWQgOwogIHVuc2lnbmVkIGxvbmcgal9zdGFydCA7CiAg dW5zaWduZWQgbG9uZyBqX2xlbiA7CiAgdW5zaWduZWQgbG9uZyBqX2xlbl9hbGxvYyA7CiAgYXRv bWljX3Qgal93Y291bnQgOwogIHVuc2lnbmVkIGxvbmcgal9iY291bnQgOwogIHVuc2lnbmVkIGxv bmcgal9maXJzdF91bmZsdXNoZWRfb2Zmc2V0IDsKICB1bnNpZ25lZCBsb25nIGpfbGFzdF9mbHVz aF90cmFuc19pZCA7CiAgc3RydWN0IGJ1ZmZlcl9oZWFkICpqX2hlYWRlcl9iaCA7CgoKCgogIHN0 cnVjdCByZWlzZXJmc19wYWdlX2xpc3QgKmpfZmx1c2hfcGFnZXMgOwogIHRpbWVfdCBqX3RyYW5z X3N0YXJ0X3RpbWUgOwogIHdhaXRfcXVldWVfaGVhZF90IGpfd2FpdCA7CiAgYXRvbWljX3Qgal93 bG9jayA7CiAgd2FpdF9xdWV1ZV9oZWFkX3Qgal9qb2luX3dhaXQgOwogIGF0b21pY190IGpfamxv Y2sgOwogIGludCBqX2pvdXJuYWxfbGlzdF9pbmRleCA7CiAgaW50IGpfbGlzdF9iaXRtYXBfaW5k ZXggOwogIGludCBqX211c3Rfd2FpdCA7CiAgaW50IGpfbmV4dF9mdWxsX2ZsdXNoIDsKICBpbnQg al9uZXh0X2FzeW5jX2ZsdXNoIDsKCiAgaW50IGpfY25vZGVfdXNlZCA7CiAgaW50IGpfY25vZGVf ZnJlZSA7CgogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2Nub2RlICpqX2Nub2RlX2ZyZWVfbGlz dCA7CiAgc3RydWN0IHJlaXNlcmZzX2pvdXJuYWxfY25vZGUgKmpfY25vZGVfZnJlZV9vcmlnIDsK CiAgaW50IGpfZnJlZV9iaXRtYXBfbm9kZXMgOwogIGludCBqX3VzZWRfYml0bWFwX25vZGVzIDsK ICBzdHJ1Y3QgbGlzdF9oZWFkIGpfYml0bWFwX25vZGVzIDsKICBzdHJ1Y3QgaW5vZGUgal9kdW1t eV9pbm9kZSA7CiAgc3RydWN0IHJlaXNlcmZzX2xpc3RfYml0bWFwIGpfbGlzdF9iaXRtYXBbNV0g OwogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2xpc3Qgal9qb3VybmFsX2xpc3RbNjRdIDsKICBz dHJ1Y3QgcmVpc2VyZnNfam91cm5hbF9jbm9kZSAqal9oYXNoX3RhYmxlWzgxOTJdIDsKICBzdHJ1 Y3QgcmVpc2VyZnNfam91cm5hbF9jbm9kZSAqal9saXN0X2hhc2hfdGFibGVbODE5Ml0gOwoKICBz dHJ1Y3QgbGlzdF9oZWFkIGpfcHJlYWxsb2NfbGlzdDsKfTsKCiNkZWZpbmUgSk9VUk5BTF9ERVND X01BR0lDICJSZUlzRXJMQiIKCgp0eXBlZGVmIF9fdTMyICgqaGFzaGZfdCkgKGNvbnN0IGNoYXIg KiwgaW50KTsKCgpzdHJ1Y3QgcmVpc2VyZnNfc2JfaW5mbwp7CiAgICBzdHJ1Y3QgYnVmZmVyX2hl YWQgKiBzX3NiaDsKCgogICAgc3RydWN0IHJlaXNlcmZzX3N1cGVyX2Jsb2NrICogc19yczsKICAg IHN0cnVjdCBidWZmZXJfaGVhZCAqKiBzX2FwX2JpdG1hcDsKICAgIHN0cnVjdCByZWlzZXJmc19q b3VybmFsICpzX2pvdXJuYWwgOwogICAgdW5zaWduZWQgc2hvcnQgc19tb3VudF9zdGF0ZTsKCgog ICAgdm9pZCAoKmVuZF9pb19oYW5kbGVyKShzdHJ1Y3QgYnVmZmVyX2hlYWQgKiwgaW50KTsKICAg IGhhc2hmX3Qgc19oYXNoX2Z1bmN0aW9uOwoKCiAgICB1bnNpZ25lZCBsb25nIHNfbW91bnRfb3B0 OwoKCgoKICAgIHdhaXRfcXVldWVfaGVhZF90IHNfd2FpdDsKCiAgICBhdG9taWNfdCBzX2dlbmVy YXRpb25fY291bnRlcjsKCgoKICAgIGludCBzX2ttYWxsb2NzOwogICAgaW50IHNfZGlza19yZWFk czsKICAgIGludCBzX2Rpc2tfd3JpdGVzOwogICAgaW50IHNfZml4X25vZGVzOwogICAgaW50IHNf ZG9fYmFsYW5jZTsKICAgIGludCBzX3VubmVlZGVkX2xlZnRfbmVpZ2hib3I7CiAgICBpbnQgc19n b29kX3NlYXJjaF9ieV9rZXlfcmVhZGE7CiAgICBpbnQgc19ibWFwczsKICAgIGludCBzX2JtYXBz X3dpdGhvdXRfc2VhcmNoOwogICAgaW50IHNfZGlyZWN0MmluZGlyZWN0OwogICAgaW50IHNfaW5k aXJlY3QyZGlyZWN0Owp9OwoKCiNkZWZpbmUgTk9UQUlMIDAKI2RlZmluZSBSRVBMQVlPTkxZIDMK I2RlZmluZSBSRUlTRVJGU19OT0xPRyA0CiNkZWZpbmUgUkVJU0VSRlNfQ09OVkVSVCA1CiMgMzI1 ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3JlaXNlcmZzX2ZzX3NiLmgiCiNk ZWZpbmUgRk9SQ0VfVEVBX0hBU0ggNgojZGVmaW5lIEZPUkNFX1JVUEFTT1ZfSEFTSCA3CiNkZWZp bmUgRk9SQ0VfUjVfSEFTSCA4CiNkZWZpbmUgRk9SQ0VfSEFTSF9ERVRFQ1QgOQoKCgoKCgojZGVm aW5lIFJFSVNFUkZTX05PX0JPUkRFUiAxMQojZGVmaW5lIFJFSVNFUkZTX05PX1VOSEFTSEVEX1JF TE9DQVRJT04gMTIKI2RlZmluZSBSRUlTRVJGU19IQVNIRURfUkVMT0NBVElPTiAxMwojZGVmaW5l IFJFSVNFUkZTX1RFU1Q0IDE0CgojZGVmaW5lIFJFSVNFUkZTX1RFU1QxIDExCiNkZWZpbmUgUkVJ U0VSRlNfVEVTVDIgMTIKI2RlZmluZSBSRUlTRVJGU19URVNUMyAxMwojZGVmaW5lIFJFSVNFUkZT X1RFU1Q0IDE0CgojZGVmaW5lIHJlaXNlcmZzX3I1X2hhc2gocykgKChzKS0+dS5yZWlzZXJmc19z Yi5zX21vdW50X29wdCAmICgxIDw8IEZPUkNFX1I1X0hBU0gpKQojZGVmaW5lIHJlaXNlcmZzX3J1 cGFzb3ZfaGFzaChzKSAoKHMpLT51LnJlaXNlcmZzX3NiLnNfbW91bnRfb3B0ICYgKDEgPDwgRk9S Q0VfUlVQQVNPVl9IQVNIKSkKI2RlZmluZSByZWlzZXJmc190ZWFfaGFzaChzKSAoKHMpLT51LnJl aXNlcmZzX3NiLnNfbW91bnRfb3B0ICYgKDEgPDwgRk9SQ0VfVEVBX0hBU0gpKQojZGVmaW5lIHJl aXNlcmZzX2hhc2hfZGV0ZWN0KHMpICgocyktPnUucmVpc2VyZnNfc2Iuc19tb3VudF9vcHQgJiAo MSA8PCBGT1JDRV9IQVNIX0RFVEVDVCkpCiNkZWZpbmUgcmVpc2VyZnNfbm9fYm9yZGVyKHMpICgo cyktPnUucmVpc2VyZnNfc2Iuc19tb3VudF9vcHQgJiAoMSA8PCBSRUlTRVJGU19OT19CT1JERVIp KQojZGVmaW5lIHJlaXNlcmZzX25vX3VuaGFzaGVkX3JlbG9jYXRpb24ocykgKChzKS0+dS5yZWlz ZXJmc19zYi5zX21vdW50X29wdCAmICgxIDw8IFJFSVNFUkZTX05PX1VOSEFTSEVEX1JFTE9DQVRJ T04pKQojZGVmaW5lIHJlaXNlcmZzX2hhc2hlZF9yZWxvY2F0aW9uKHMpICgocyktPnUucmVpc2Vy ZnNfc2Iuc19tb3VudF9vcHQgJiAoMSA8PCBSRUlTRVJGU19IQVNIRURfUkVMT0NBVElPTikpCiNk ZWZpbmUgcmVpc2VyZnNfdGVzdDQocykgKChzKS0+dS5yZWlzZXJmc19zYi5zX21vdW50X29wdCAm ICgxIDw8IFJFSVNFUkZTX1RFU1Q0KSkKCiNkZWZpbmUgZG9udF9oYXZlX3RhaWxzKHMpICgocykt PnUucmVpc2VyZnNfc2Iuc19tb3VudF9vcHQgJiAoMSA8PCBOT1RBSUwpKQojZGVmaW5lIHJlcGxh eV9vbmx5KHMpICgocyktPnUucmVpc2VyZnNfc2Iuc19tb3VudF9vcHQgJiAoMSA8PCBSRVBMQVlP TkxZKSkKI2RlZmluZSByZWlzZXJmc19kb250X2xvZyhzKSAoKHMpLT51LnJlaXNlcmZzX3NiLnNf bW91bnRfb3B0ICYgKDEgPDwgUkVJU0VSRlNfTk9MT0cpKQojZGVmaW5lIG9sZF9mb3JtYXRfb25s eShzKSAoKFNCX1ZFUlNJT04ocykgIT0gUkVJU0VSRlNfVkVSU0lPTl8yKSAmJiAhKChzKS0+dS5y ZWlzZXJmc19zYi5zX21vdW50X29wdCAmICgxIDw8IFJFSVNFUkZTX0NPTlZFUlQpKSkKCgp2b2lk IHJlaXNlcmZzX2ZpbGVfYnVmZmVyIChzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBiaCwgaW50IGxpc3Qp OwppbnQgcmVpc2VyZnNfaXNfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzKSA7CmludCBqb3Vy bmFsX21hcmtfZGlydHkoc3RydWN0IHJlaXNlcmZzX3RyYW5zYWN0aW9uX2hhbmRsZSAqLCBzdHJ1 Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkgOwppbnQgZmx1c2hfb2xk X2NvbW1pdHMoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCBpbnQpIDsKaW50IHNob3dfcmVpc2VyZnNf bG9ja3Modm9pZCkgOwppbnQgcmVpc2VyZnNfcmVzaXplKHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1 bnNpZ25lZCBsb25nKSA7CgojZGVmaW5lIENBUlJZX09OIDAKI2RlZmluZSBTQ0hFRFVMRV9PQ0NV UlJFRCAxCgoKI2RlZmluZSBTQl9CVUZGRVJfV0lUSF9TQihzKSAoKHMpLT51LnJlaXNlcmZzX3Ni LnNfc2JoKQojZGVmaW5lIFNCX0pPVVJOQUwocykgKChzKS0+dS5yZWlzZXJmc19zYi5zX2pvdXJu YWwpCiNkZWZpbmUgU0JfSk9VUk5BTF9MSVNUKHMpIChTQl9KT1VSTkFMKHMpLT5qX2pvdXJuYWxf bGlzdCkKI2RlZmluZSBTQl9KT1VSTkFMX0xJU1RfSU5ERVgocykgKFNCX0pPVVJOQUwocyktPmpf am91cm5hbF9saXN0X2luZGV4KQojZGVmaW5lIFNCX0pPVVJOQUxfTEVOX0ZSRUUocykgKFNCX0pP VVJOQUwocyktPmpfam91cm5hbF9sZW5fZnJlZSkKI2RlZmluZSBTQl9BUF9CSVRNQVAocykgKChz KS0+dS5yZWlzZXJmc19zYi5zX2FwX2JpdG1hcCkKCgoKI2RlZmluZSBTQl9ESVNLX1NVUEVSX0JM T0NLKHMpICgocyktPnUucmVpc2VyZnNfc2Iuc19ycykKI2RlZmluZSBTQl9CTE9DS19DT1VOVChz KSBsZTMyX3RvX2NwdSAoKFNCX0RJU0tfU1VQRVJfQkxPQ0socyktPnNfYmxvY2tfY291bnQpKQoj ZGVmaW5lIFNCX0ZSRUVfQkxPQ0tTKHMpIGxlMzJfdG9fY3B1ICgoU0JfRElTS19TVVBFUl9CTE9D SyhzKS0+c19mcmVlX2Jsb2NrcykpCiNkZWZpbmUgU0JfUkVJU0VSRlNfTUFHSUMocykgKFNCX0RJ U0tfU1VQRVJfQkxPQ0socyktPnNfbWFnaWMpCiNkZWZpbmUgU0JfUk9PVF9CTE9DSyhzKSBsZTMy X3RvX2NwdSAoKFNCX0RJU0tfU1VQRVJfQkxPQ0socyktPnNfcm9vdF9ibG9jaykpCiNkZWZpbmUg U0JfVFJFRV9IRUlHSFQocykgbGUxNl90b19jcHUgKChTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5z X3RyZWVfaGVpZ2h0KSkKI2RlZmluZSBTQl9SRUlTRVJGU19TVEFURShzKSBsZTE2X3RvX2NwdSAo KFNCX0RJU0tfU1VQRVJfQkxPQ0socyktPnNfc3RhdGUpKQojZGVmaW5lIFNCX1ZFUlNJT04ocykg bGUxNl90b19jcHUgKChTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5zX3ZlcnNpb24pKQojZGVmaW5l IFNCX0JNQVBfTlIocykgbGUxNl90b19jcHUgKChTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5zX2Jt YXBfbnIpKQoKI2RlZmluZSBQVVRfU0JfQkxPQ0tfQ09VTlQocywgdmFsKSBkbyB7IFNCX0RJU0tf U1VQRVJfQkxPQ0socyktPnNfYmxvY2tfY291bnQgPSBjcHVfdG9fbGUzMih2YWwpOyB9IHdoaWxl ICgwKQojZGVmaW5lIFBVVF9TQl9GUkVFX0JMT0NLUyhzLCB2YWwpIGRvIHsgU0JfRElTS19TVVBF Ul9CTE9DSyhzKS0+c19mcmVlX2Jsb2NrcyA9IGNwdV90b19sZTMyKHZhbCk7IH0gd2hpbGUgKDAp CiNkZWZpbmUgUFVUX1NCX1JPT1RfQkxPQ0socywgdmFsKSBkbyB7IFNCX0RJU0tfU1VQRVJfQkxP Q0socyktPnNfcm9vdF9ibG9jayA9IGNwdV90b19sZTMyKHZhbCk7IH0gd2hpbGUgKDApCiNkZWZp bmUgUFVUX1NCX1RSRUVfSEVJR0hUKHMsIHZhbCkgZG8geyBTQl9ESVNLX1NVUEVSX0JMT0NLKHMp LT5zX3RyZWVfaGVpZ2h0ID0gY3B1X3RvX2xlMTYodmFsKTsgfSB3aGlsZSAoMCkKI2RlZmluZSBQ VVRfU0JfUkVJU0VSRlNfU1RBVEUocywgdmFsKSBkbyB7IFNCX0RJU0tfU1VQRVJfQkxPQ0socykt PnNfc3RhdGUgPSBjcHVfdG9fbGUxNih2YWwpOyB9IHdoaWxlICgwKQojZGVmaW5lIFBVVF9TQl9W RVJTSU9OKHMsIHZhbCkgZG8geyBTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5zX3ZlcnNpb24gPSBj cHVfdG9fbGUxNih2YWwpOyB9IHdoaWxlICgwKQojZGVmaW5lIFBVVF9TQl9CTUFQX05SKHMsIHZh bCkgZG8geyBTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5zX2JtYXBfbnIgPSBjcHVfdG9fbGUxNiAo dmFsKTsgfSB3aGlsZSAoMCkKIyA2NTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYmZzX2Zz X3NiLmgiIDEKCgoKCgoKI2RlZmluZSBfTElOVVhfQkZTX0ZTX1NCCgoKCgpzdHJ1Y3QgYmZzX3Ni X2luZm8gewogICAgICAgIHVuc2lnbmVkIGxvbmcgc2lfYmxvY2tzOwogICAgICAgIHVuc2lnbmVk IGxvbmcgc2lfZnJlZWI7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzaV9mcmVlaTsKICAgICAgICB1 bnNpZ25lZCBsb25nIHNpX2xmX2lvZmY7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzaV9sZl9zYmxr OwogICAgICAgIHVuc2lnbmVkIGxvbmcgc2lfbGZfZWJsazsKICAgICAgICB1bnNpZ25lZCBsb25n IHNpX2xhc3RpOwogICAgICAgIGNoYXIgKiBzaV9pbWFwOwogICAgICAgIHN0cnVjdCBidWZmZXJf aGVhZCAqIHNpX3NiaDsKICAgICAgICBzdHJ1Y3QgYmZzX3N1cGVyX2Jsb2NrICogc2lfYmZzX3Ni Owp9OwojIDY2MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMg MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZGZfZnNfc2IuaCIgMQojIDE5 ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl9mc19zYi5oIgojZGVmaW5l IF9MSU5VWF9VREZfRlNfU0JfSAoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC92ZXJzaW9uLmgiIDEKI2RlZmluZSBVVFNfUkVMRUFTRSAiMi40LjciCiNkZWZpbmUgTElO VVhfVkVSU0lPTl9DT0RFIDEzMjEwMwojZGVmaW5lIEtFUk5FTF9WRVJTSU9OKGEsIGIsIGMpICgo KGEpIDw8IDE2KSArICgoYikgPDwgOCkgKyAoYykpCiMgMjMgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgvdWRmX2ZzX3NiLmgiIDIKCgojcHJhZ21hIHBhY2soMSkKCiNkZWZpbmUg VURGX01BWF9CTE9DS19MT0FERUQgOAoKI2RlZmluZSBVREZfVFlQRTFfTUFQMTUgMHgxNTExVQoj ZGVmaW5lIFVERl9WSVJUVUFMX01BUDE1IDB4MTUxMlUKI2RlZmluZSBVREZfVklSVFVBTF9NQVAy MCAweDIwMTJVCiNkZWZpbmUgVURGX1NQQVJBQkxFX01BUDE1IDB4MTUyMlUKCnN0cnVjdCB1ZGZf c3BhcmluZ19kYXRhCnsKICAgICAgICBfX3UxNiBzX3BhY2tldF9sZW47CiAgICAgICAgc3RydWN0 IGJ1ZmZlcl9oZWFkICpzX3NwYXJfbWFwWzRdOwp9OwoKc3RydWN0IHVkZl92aXJ0dWFsX2RhdGEK ewogICAgICAgIF9fdTMyIHNfbnVtX2VudHJpZXM7CiAgICAgICAgX191MTYgc19zdGFydF9vZmZz ZXQ7Cn07CgpzdHJ1Y3QgdWRmX2JpdG1hcAp7CiAgICAgICAgX191MzIgc19leHRMZW5ndGg7CiAg ICAgICAgX191MzIgc19leHRQb3NpdGlvbjsKICAgICAgICBfX3UxNiBzX25yX2dyb3VwczsKICAg ICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKipzX2Jsb2NrX2JpdG1hcDsKfTsKCnN0cnVjdCB1ZGZf cGFydF9tYXAKewogICAgICAgIHVuaW9uCiAgICAgICAgewogICAgICAgICAgICAgICAgc3RydWN0 IHVkZl9iaXRtYXAgKnNfYml0bWFwOwogICAgICAgICAgICAgICAgc3RydWN0IGlub2RlICpzX3Rh YmxlOwogICAgICAgIH0gc191c3BhY2U7CiAgICAgICAgdW5pb24KICAgICAgICB7CiAgICAgICAg ICAgICAgICBzdHJ1Y3QgdWRmX2JpdG1hcCAqc19iaXRtYXA7CiAgICAgICAgICAgICAgICBzdHJ1 Y3QgaW5vZGUgKnNfdGFibGU7CiAgICAgICAgfSBzX2ZzcGFjZTsKICAgICAgICBfX3UzMiBzX3Bh cnRpdGlvbl9yb290OwogICAgICAgIF9fdTMyIHNfcGFydGl0aW9uX2xlbjsKICAgICAgICBfX3Ux NiBzX3BhcnRpdGlvbl90eXBlOwogICAgICAgIF9fdTE2IHNfcGFydGl0aW9uX251bTsKICAgICAg ICB1bmlvbgogICAgICAgIHsKICAgICAgICAgICAgICAgIHN0cnVjdCB1ZGZfc3BhcmluZ19kYXRh IHNfc3BhcmluZzsKICAgICAgICAgICAgICAgIHN0cnVjdCB1ZGZfdmlydHVhbF9kYXRhIHNfdmly dHVhbDsKICAgICAgICB9IHNfdHlwZV9zcGVjaWZpYzsKICAgICAgICBfX3UzMiAoKnNfcGFydGl0 aW9uX2Z1bmMpKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBfX3UzMiwgX191MTYsIF9fdTMyKTsKICAg ICAgICBfX3UxNiBzX3ZvbHVtZXNlcW51bTsKICAgICAgICBfX3UxNiBzX3BhcnRpdGlvbl9mbGFn czsKfTsKCiNwcmFnbWEgcGFjaygpCgpzdHJ1Y3QgdWRmX3NiX2luZm8KewogICAgICAgIHN0cnVj dCB1ZGZfcGFydF9tYXAgKnNfcGFydG1hcHM7CiAgICAgICAgX191OCBzX3ZvbGlkZW50WzMyXTsK CgogICAgICAgIF9fdTE2IHNfcGFydGl0aW9uczsKICAgICAgICBfX3UxNiBzX3BhcnRpdGlvbjsK CgogICAgICAgIF9fdTMyIHNfc2Vzc2lvbjsKICAgICAgICBfX3UzMiBzX2FuY2hvcls0XTsKICAg ICAgICBfX3UzMiBzX2xhc3RibG9jazsKCiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpzX2x2 aWRiaDsKCgogICAgICAgIG1vZGVfdCBzX3VtYXNrOwogICAgICAgIGdpZF90IHNfZ2lkOwogICAg ICAgIHVpZF90IHNfdWlkOwoKCiAgICAgICAgdGltZV90IHNfcmVjb3JkdGltZTsKCgogICAgICAg IF9fdTE2IHNfc2VyaWFsbnVtOwoKCiAgICAgICAgX191MTYgc191ZGZyZXY7CgoKICAgICAgICBf X3UzMiBzX2ZsYWdzOwoKCiAgICAgICAgc3RydWN0IG5sc190YWJsZSAqc19ubHNfbWFwOwoKCiAg ICAgICAgc3RydWN0IGlub2RlICpzX3ZhdDsKfTsKIyA2NjEgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvbmNwX2ZzX3NiLmgiIDEKIyA5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L25jcF9mc19zYi5oIgojZGVmaW5lIF9OQ1BfRlNfU0IKCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgvbmNwX2ZzX3NiLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L25jcF9tb3VudC5oIiAxCiMgOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9saW51eC9uY3BfbW91bnQuaCIKI2RlZmluZSBfTElOVVhfTkNQX01PVU5UX0gKCiMgMSAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTIgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbmNwX21vdW50LmgiIDIKIyAxICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcC5oIiAxCiMgMTEgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvbmNwLmgiCiNkZWZpbmUgX0xJTlVYX05DUF9ICgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDE0ICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcC5oIiAyCgojZGVmaW5lIE5DUF9QVFlQRSAo MHgxMSkKI2RlZmluZSBOQ1BfUE9SVCAoMHgwNDUxKQoKI2RlZmluZSBOQ1BfQUxMT0NfU0xPVF9S RVFVRVNUICgweDExMTEpCiNkZWZpbmUgTkNQX1JFUVVFU1QgKDB4MjIyMikKI2RlZmluZSBOQ1Bf REVBTExPQ19TTE9UX1JFUVVFU1QgKDB4NTU1NSkKCnN0cnVjdCBuY3BfcmVxdWVzdF9oZWFkZXIg ewogICAgICAgIF9fdTE2IHR5cGUgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191 OCBzZXF1ZW5jZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbm5fbG93 IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTggdGFzayBfX2F0dHJpYnV0ZV9f KChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbm5faGlnaCBfX2F0dHJpYnV0ZV9fKChwYWNrZWQp KTsKICAgICAgICBfX3U4IGZ1bmN0aW9uIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAg IF9fdTggZGF0YVswXSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKfTsKCiNkZWZpbmUgTkNQX1JF UExZICgweDMzMzMpCiNkZWZpbmUgTkNQX1BPU0lUSVZFX0FDSyAoMHg5OTk5KQoKc3RydWN0IG5j cF9yZXBseV9oZWFkZXIgewogICAgICAgIF9fdTE2IHR5cGUgX19hdHRyaWJ1dGVfXygocGFja2Vk KSk7CiAgICAgICAgX191OCBzZXF1ZW5jZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAg ICBfX3U4IGNvbm5fbG93IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTggdGFz ayBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbm5faGlnaCBfX2F0dHJp YnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbXBsZXRpb25fY29kZSBfX2F0dHJpYnV0 ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbm5lY3Rpb25fc3RhdGUgX19hdHRyaWJ1dGVf XygocGFja2VkKSk7CiAgICAgICAgX191OCBkYXRhWzBdIF9fYXR0cmlidXRlX18oKHBhY2tlZCkp Owp9OwoKI2RlZmluZSBOQ1BfVk9MTkFNRV9MRU4gKDE2KQojZGVmaW5lIE5DUF9OVU1CRVJfT0Zf Vk9MVU1FUyAoNjQpCnN0cnVjdCBuY3Bfdm9sdW1lX2luZm8gewogICAgICAgIF9fdTMyIHRvdGFs X2Jsb2NrczsKICAgICAgICBfX3UzMiBmcmVlX2Jsb2NrczsKICAgICAgICBfX3UzMiBwdXJnZWFi bGVfYmxvY2tzOwogICAgICAgIF9fdTMyIG5vdF95ZXRfcHVyZ2VhYmxlX2Jsb2NrczsKICAgICAg ICBfX3UzMiB0b3RhbF9kaXJfZW50cmllczsKICAgICAgICBfX3UzMiBhdmFpbGFibGVfZGlyX2Vu dHJpZXM7CiAgICAgICAgX191OCBzZWN0b3JzX3Blcl9ibG9jazsKICAgICAgICBjaGFyIHZvbHVt ZV9uYW1lWygxNikgKyAxXTsKfTsKCiNkZWZpbmUgQVJfUkVBRCAobnRvaHMoMHgwMTAwKSkKI2Rl ZmluZSBBUl9XUklURSAobnRvaHMoMHgwMjAwKSkKI2RlZmluZSBBUl9FWENMVVNJVkUgKG50b2hz KDB4MjAwMCkpCgojZGVmaW5lIE5DUF9GSUxFX0lEX0xFTiA2CgoKI2RlZmluZSBOV19OU19ET1Mg MAojZGVmaW5lIE5XX05TX01BQyAxCiNkZWZpbmUgTldfTlNfTkZTIDIKI2RlZmluZSBOV19OU19G VEFNIDMKI2RlZmluZSBOV19OU19PUzIgNAoKCiNkZWZpbmUgUklNX05BTUUgKG50b2hsKDB4MDEw MDAwMDBMKSkKI2RlZmluZSBSSU1fU1BBQ0VfQUxMT0NBVEVEIChudG9obCgweDAyMDAwMDAwTCkp CiNkZWZpbmUgUklNX0FUVFJJQlVURVMgKG50b2hsKDB4MDQwMDAwMDBMKSkKI2RlZmluZSBSSU1f REFUQV9TSVpFIChudG9obCgweDA4MDAwMDAwTCkpCiNkZWZpbmUgUklNX1RPVEFMX1NJWkUgKG50 b2hsKDB4MTAwMDAwMDBMKSkKI2RlZmluZSBSSU1fRVhUX0FUVFJfSU5GTyAobnRvaGwoMHgyMDAw MDAwMEwpKQojZGVmaW5lIFJJTV9BUkNISVZFIChudG9obCgweDQwMDAwMDAwTCkpCiNkZWZpbmUg UklNX01PRElGWSAobnRvaGwoMHg4MDAwMDAwMEwpKQojZGVmaW5lIFJJTV9DUkVBVElPTiAobnRv aGwoMHgwMDAxMDAwMEwpKQojZGVmaW5lIFJJTV9PV05JTkdfTkFNRVNQQUNFIChudG9obCgweDAw MDIwMDAwTCkpCiNkZWZpbmUgUklNX0RJUkVDVE9SWSAobnRvaGwoMHgwMDA0MDAwMEwpKQojZGVm aW5lIFJJTV9SSUdIVFMgKG50b2hsKDB4MDAwODAwMDBMKSkKI2RlZmluZSBSSU1fQUxMIChudG9o bCgweEZGMEYwMDAwTCkpCiNkZWZpbmUgUklNX0NPTVBSRVNTRURfSU5GTyAobnRvaGwoMHgwMDAw MDA4MEwpKQoKCiNkZWZpbmUgT0NfTU9ERV9PUEVOIDB4MDEKI2RlZmluZSBPQ19NT0RFX1RSVU5D QVRFIDB4MDIKI2RlZmluZSBPQ19NT0RFX1JFUExBQ0UgMHgwMgojZGVmaW5lIE9DX01PREVfQ1JF QVRFIDB4MDgKCgojZGVmaW5lIE9DX0FDVElPTl9OT05FIDB4MDAKI2RlZmluZSBPQ19BQ1RJT05f T1BFTiAweDAxCiNkZWZpbmUgT0NfQUNUSU9OX0NSRUFURSAweDAyCiNkZWZpbmUgT0NfQUNUSU9O X1RSVU5DQVRFIDB4MDQKI2RlZmluZSBPQ19BQ1RJT05fUkVQTEFDRSAweDA0CgoKCiNkZWZpbmUg QVJfUkVBRF9PTkxZIDB4MDAwMQojZGVmaW5lIEFSX1dSSVRFX09OTFkgMHgwMDAyCiNkZWZpbmUg QVJfREVOWV9SRUFEIDB4MDAwNAojZGVmaW5lIEFSX0RFTllfV1JJVEUgMHgwMDA4CiNkZWZpbmUg QVJfQ09NUEFUSUJJTElUWSAweDAwMTAKI2RlZmluZSBBUl9XUklURV9USFJPVUdIIDB4MDA0MAoj ZGVmaW5lIEFSX09QRU5fQ09NUFJFU1NFRCAweDAxMDAKCgpzdHJ1Y3QgbndfaW5mb19zdHJ1Y3Qg ewogICAgICAgIF9fdTMyIHNwYWNlQWxsb2MgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAg ICAgX191MzIgYXR0cmlidXRlcyBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3Ux NiBmbGFncyBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UzMiBkYXRhU3RyZWFt U2l6ZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UzMiB0b3RhbFN0cmVhbVNp emUgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MTYgbnVtYmVyT2ZTdHJlYW1z IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTE2IGNyZWF0aW9uVGltZSBfX2F0 dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UxNiBjcmVhdGlvbkRhdGUgX19hdHRyaWJ1 dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIgY3JlYXRvcklEIF9fYXR0cmlidXRlX18oKHBh Y2tlZCkpOwogICAgICAgIF9fdTE2IG1vZGlmeVRpbWUgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7 CiAgICAgICAgX191MTYgbW9kaWZ5RGF0ZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAg ICBfX3UzMiBtb2RpZmllcklEIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTE2 IGxhc3RBY2Nlc3NEYXRlIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTE2IGFy Y2hpdmVUaW1lIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTE2IGFyY2hpdmVE YXRlIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTMyIGFyY2hpdmVySUQgX19h dHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MTYgaW5oZXJpdGVkUmlnaHRzTWFzayBf X2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UzMiBkaXJFbnROdW0gX19hdHRyaWJ1 dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIgRG9zRGlyTnVtIF9fYXR0cmlidXRlX18oKHBh Y2tlZCkpOwogICAgICAgIF9fdTMyIHZvbE51bWJlciBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsK ICAgICAgICBfX3UzMiBFQURhdGFTaXplIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAg IF9fdTMyIEVBS2V5Q291bnQgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIg RUFLZXlTaXplIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTMyIE5TQ3JlYXRv ciBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IG5hbWVMZW4gX19hdHRyaWJ1 dGVfXygocGFja2VkKSk7CiAgICAgICAgX191OCBlbnRyeU5hbWVbMjU2XSBfX2F0dHJpYnV0ZV9f KChwYWNrZWQpKTsKfTsKCgojZGVmaW5lIERNX0FUVFJJQlVURVMgKG50b2hsKDB4MDIwMDAwMDBM KSkKI2RlZmluZSBETV9DUkVBVEVfREFURSAobnRvaGwoMHgwNDAwMDAwMEwpKQojZGVmaW5lIERN X0NSRUFURV9USU1FIChudG9obCgweDA4MDAwMDAwTCkpCiNkZWZpbmUgRE1fQ1JFQVRPUl9JRCAo bnRvaGwoMHgxMDAwMDAwMEwpKQojZGVmaW5lIERNX0FSQ0hJVkVfREFURSAobnRvaGwoMHgyMDAw MDAwMEwpKQojZGVmaW5lIERNX0FSQ0hJVkVfVElNRSAobnRvaGwoMHg0MDAwMDAwMEwpKQojZGVm aW5lIERNX0FSQ0hJVkVSX0lEIChudG9obCgweDgwMDAwMDAwTCkpCiNkZWZpbmUgRE1fTU9ESUZZ X0RBVEUgKG50b2hsKDB4MDAwMTAwMDBMKSkKI2RlZmluZSBETV9NT0RJRllfVElNRSAobnRvaGwo MHgwMDAyMDAwMEwpKQojZGVmaW5lIERNX01PRElGSUVSX0lEIChudG9obCgweDAwMDQwMDAwTCkp CiNkZWZpbmUgRE1fTEFTVF9BQ0NFU1NfREFURSAobnRvaGwoMHgwMDA4MDAwMEwpKQojZGVmaW5l IERNX0lOSEVSSVRFRF9SSUdIVFNfTUFTSyAobnRvaGwoMHgwMDEwMDAwMEwpKQojZGVmaW5lIERN X01BWElNVU1fU1BBQ0UgKG50b2hsKDB4MDAyMDAwMDBMKSkKCnN0cnVjdCBud19tb2RpZnlfZG9z X2luZm8gewogICAgICAgIF9fdTMyIGF0dHJpYnV0ZXMgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7 CiAgICAgICAgX191MTYgY3JlYXRpb25EYXRlIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAg ICAgIF9fdTE2IGNyZWF0aW9uVGltZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBf X3UzMiBjcmVhdG9ySUQgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MTYgbW9k aWZ5RGF0ZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UxNiBtb2RpZnlUaW1l IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTMyIG1vZGlmaWVySUQgX19hdHRy aWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MTYgYXJjaGl2ZURhdGUgX19hdHRyaWJ1dGVf XygocGFja2VkKSk7CiAgICAgICAgX191MTYgYXJjaGl2ZVRpbWUgX19hdHRyaWJ1dGVfXygocGFj a2VkKSk7CiAgICAgICAgX191MzIgYXJjaGl2ZXJJRCBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsK ICAgICAgICBfX3UxNiBsYXN0QWNjZXNzRGF0ZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAg ICAgICBfX3UxNiBpbmhlcml0YW5jZUdyYW50TWFzayBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsK ICAgICAgICBfX3UxNiBpbmhlcml0YW5jZVJldm9rZU1hc2sgX19hdHRyaWJ1dGVfXygocGFja2Vk KSk7CiAgICAgICAgX191MzIgbWF4aW11bVNwYWNlIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwp9 OwoKc3RydWN0IG53X3NlYXJjaF9zZXF1ZW5jZSB7CiAgICAgICAgX191OCB2b2xOdW1iZXIgX19h dHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIgZGlyQmFzZSBfX2F0dHJpYnV0ZV9f KChwYWNrZWQpKTsKICAgICAgICBfX3UzMiBzZXF1ZW5jZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQp KTsKfTsKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9uY3BfbW91bnQu aCIgMgoKI2RlZmluZSBOQ1BfTU9VTlRfVkVSU0lPTiAzCgoKI2RlZmluZSBOQ1BfTU9VTlRfU09G VCAweDAwMDEKI2RlZmluZSBOQ1BfTU9VTlRfSU5UUiAweDAwMDIKI2RlZmluZSBOQ1BfTU9VTlRf U1RST05HIDB4MDAwNAojZGVmaW5lIE5DUF9NT1VOVF9OT19PUzIgMHgwMDA4CiNkZWZpbmUgTkNQ X01PVU5UX05PX05GUyAweDAwMTAKI2RlZmluZSBOQ1BfTU9VTlRfRVhUUkFTIDB4MDAyMAojZGVm aW5lIE5DUF9NT1VOVF9TWU1MSU5LUyAweDAwNDAKCnN0cnVjdCBuY3BfbW91bnRfZGF0YSB7CiAg ICAgICAgaW50IHZlcnNpb247CiAgICAgICAgdW5zaWduZWQgaW50IG5jcF9mZDsKICAgICAgICBf X2tlcm5lbF91aWRfdCBtb3VudGVkX3VpZDsKICAgICAgICBfX2tlcm5lbF9waWRfdCB3ZG9nX3Bp ZDsKCiAgICAgICAgdW5zaWduZWQgY2hhciBtb3VudGVkX3ZvbFsoMTYpICsgMV07CiAgICAgICAg dW5zaWduZWQgaW50IHRpbWVfb3V0OwoKICAgICAgICB1bnNpZ25lZCBpbnQgcmV0cnlfY291bnQ7 CiAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOwoKICAgICAgICBfX2tlcm5lbF91aWRfdCB1aWQ7 CiAgICAgICAgX19rZXJuZWxfZ2lkX3QgZ2lkOwogICAgICAgIF9fa2VybmVsX21vZGVfdCBmaWxl X21vZGU7CiAgICAgICAgX19rZXJuZWxfbW9kZV90IGRpcl9tb2RlOwp9OwoKI2RlZmluZSBOQ1Bf TU9VTlRfVkVSU0lPTl9WNCAoNCkKCnN0cnVjdCBuY3BfbW91bnRfZGF0YV92NCB7CiAgICAgICAg aW50IHZlcnNpb247CiAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKCgogICAgICAgIHVuc2ln bmVkIGxvbmcgbW91bnRlZF91aWQ7CgogICAgICAgIGxvbmcgd2RvZ19waWQ7CgogICAgICAgIHVu c2lnbmVkIGludCBuY3BfZmQ7CiAgICAgICAgdW5zaWduZWQgaW50IHRpbWVfb3V0OwoKICAgICAg ICB1bnNpZ25lZCBpbnQgcmV0cnlfY291bnQ7CgoKCiAgICAgICAgdW5zaWduZWQgbG9uZyB1aWQ7 CiAgICAgICAgdW5zaWduZWQgbG9uZyBnaWQ7CgogICAgICAgIHVuc2lnbmVkIGxvbmcgZmlsZV9t b2RlOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZGlyX21vZGU7Cn07CgoKCnN0cnVjdCBuY3BfbW91 bnRfZGF0YV9rZXJuZWwgewogICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgICAgdW5z aWduZWQgaW50IGludF9mbGFnczsKI2RlZmluZSBOQ1BfSU1PVU5UX0xPR0dFRElOX1BPU1NJQkxF IDB4MDAwMQogX19rZXJuZWxfdWlkMzJfdCBtb3VudGVkX3VpZDsKICAgICAgICBfX2tlcm5lbF9w aWRfdCB3ZG9nX3BpZDsKICAgICAgICB1bnNpZ25lZCBpbnQgbmNwX2ZkOwogICAgICAgIHVuc2ln bmVkIGludCB0aW1lX291dDsKCiAgICAgICAgdW5zaWduZWQgaW50IHJldHJ5X2NvdW50OwogICAg ICAgIHVuc2lnbmVkIGNoYXIgbW91bnRlZF92b2xbKDE2KSArIDFdOwogICAgICAgIF9fa2VybmVs X3VpZDMyX3QgdWlkOwogICAgICAgIF9fa2VybmVsX2dpZDMyX3QgZ2lkOwogICAgICAgIF9fa2Vy bmVsX21vZGVfdCBmaWxlX21vZGU7CiAgICAgICAgX19rZXJuZWxfbW9kZV90IGRpcl9tb2RlOwp9 OwojIDEzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcF9mc19zYi5oIiAy CgoKCiNkZWZpbmUgTkNQX0RFRkFVTFRfT1BUSU9OUyAwCgpzdHJ1Y3QgbmNwX3NlcnZlciB7Cgog ICAgICAgIHN0cnVjdCBuY3BfbW91bnRfZGF0YV9rZXJuZWwgbTsKCgoKICAgICAgICBfX3U4IG5h bWVfc3BhY2VbKDY0KSArIDJdOwoKICAgICAgICBzdHJ1Y3QgZmlsZSAqbmNwX2ZpbHA7CgogICAg ICAgIHU4IHNlcXVlbmNlOwogICAgICAgIHU4IHRhc2s7CiAgICAgICAgdTE2IGNvbm5lY3Rpb247 CgogICAgICAgIHU4IGNvbXBsZXRpb247CiAgICAgICAgdTggY29ubl9zdGF0dXM7CgoKCiAgICAg ICAgaW50IGJ1ZmZlcl9zaXplOwoKICAgICAgICBpbnQgcmVwbHlfc2l6ZTsKCiAgICAgICAgaW50 IHBhY2tldF9zaXplOwogICAgICAgIHVuc2lnbmVkIGNoYXIgKnBhY2tldDsKCgogICAgICAgIGlu dCBsb2NrOwogICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgc2VtOwoKICAgICAgICBpbnQgY3VycmVu dF9zaXplOwogICAgICAgIGludCBoYXNfc3ViZnVuY3Rpb247CiAgICAgICAgaW50IG5jcF9yZXBs eV9zaXplOwoKICAgICAgICBpbnQgcm9vdF9zZXR1cGVkOwoKCiAgICAgICAgaW50IHNpZ25fd2Fu dGVkOwogICAgICAgIGludCBzaWduX2FjdGl2ZTsKICAgICAgICBjaGFyIHNpZ25fcm9vdFs4XTsK ICAgICAgICBjaGFyIHNpZ25fbGFzdFsxNl07CgoKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAg ICAgICAgaW50IGF1dGhfdHlwZTsKICAgICAgICAgICAgICAgIHNpemVfdCBvYmplY3RfbmFtZV9s ZW47CiAgICAgICAgICAgICAgICB2b2lkKiBvYmplY3RfbmFtZTsKICAgICAgICAgICAgICAgIGlu dCBvYmplY3RfdHlwZTsKICAgICAgICB9IGF1dGg7CgogICAgICAgIHN0cnVjdCB7CiAgICAgICAg ICAgICAgICBzaXplX3QgbGVuOwogICAgICAgICAgICAgICAgdm9pZCogZGF0YTsKICAgICAgICB9 IHByaXY7CgoKICAgICAgICBzdHJ1Y3QgbmxzX3RhYmxlICpubHNfdm9sOwogICAgICAgIHN0cnVj dCBubHNfdGFibGUgKm5sc19pbzsKCgogICAgICAgIGludCBkZW50cnlfdHRsOwoKCiAgICAgICAg dW5zaWduZWQgaW50IGZsYWdzOwp9OwoKI2RlZmluZSBuY3Bfc2JfaW5mbyBuY3Bfc2VydmVyCgoj ZGVmaW5lIE5DUF9GTEFHX1VURjggMQoKI2RlZmluZSBOQ1BfQ0xSX0ZMQUcoc2VydmVyLCBmbGFn KSAoKHNlcnZlciktPmZsYWdzICY9IH4oZmxhZykpCiNkZWZpbmUgTkNQX1NFVF9GTEFHKHNlcnZl ciwgZmxhZykgKChzZXJ2ZXIpLT5mbGFncyB8PSAoZmxhZykpCiNkZWZpbmUgTkNQX0lTX0ZMQUco c2VydmVyLCBmbGFnKSAoKHNlcnZlciktPmZsYWdzICYgKGZsYWcpKQoKc3RhdGljIGlubGluZSBp bnQgbmNwX2Nvbm5fdmFsaWQoc3RydWN0IG5jcF9zZXJ2ZXIgKnNlcnZlcikKewogICAgICAgIHJl dHVybiAoKHNlcnZlci0+Y29ubl9zdGF0dXMgJiAweDExKSA9PSAwKTsKfQoKc3RhdGljIGlubGlu ZSB2b2lkIG5jcF9pbnZhbGlkYXRlX2Nvbm4oc3RydWN0IG5jcF9zZXJ2ZXIgKnNlcnZlcikKewog ICAgICAgIHNlcnZlci0+Y29ubl9zdGF0dXMgfD0gMHgwMTsKfQojIDY2MiAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC91c2JkZXZfZnNfc2IuaCIgMQpzdHJ1Y3QgdXNiZGV2X3NiX2luZm8gewog ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgc2xpc3Q7CiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBp bGlzdDsKICAgICAgICB1aWRfdCBkZXZ1aWQ7CiAgICAgICAgZ2lkX3QgZGV2Z2lkOwogICAgICAg IHVtb2RlX3QgZGV2bW9kZTsKICAgICAgICB1aWRfdCBidXN1aWQ7CiAgICAgICAgZ2lkX3QgYnVz Z2lkOwogICAgICAgIHVtb2RlX3QgYnVzbW9kZTsKICAgICAgICB1aWRfdCBsaXN0dWlkOwogICAg ICAgIGdpZF90IGxpc3RnaWQ7CiAgICAgICAgdW1vZGVfdCBsaXN0bW9kZTsKfTsKIyA2NjMgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY3JhbWZzX2ZzX3NiLmgiIDEKCiNkZWZpbmUgX0NSQU1G U19GU19TQgoKCgoKc3RydWN0IGNyYW1mc19zYl9pbmZvIHsKICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyBtYWdpYzsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBzaXplOwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGJsb2NrczsK ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmaWxlczsKICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKfTsKIyA2NjQgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgoKZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgc3Vw ZXJfYmxvY2tzOwoKI2RlZmluZSBzYl9lbnRyeShsaXN0KSBsaXN0X2VudHJ5KChsaXN0KSwgc3Ry dWN0IHN1cGVyX2Jsb2NrLCBzX2xpc3QpCnN0cnVjdCBzdXBlcl9ibG9jayB7CiAgICAgICAgc3Ry dWN0IGxpc3RfaGVhZCBzX2xpc3Q7CiAgICAgICAga2Rldl90IHNfZGV2OwogICAgICAgIHVuc2ln bmVkIGxvbmcgc19ibG9ja3NpemU7CiAgICAgICAgdW5zaWduZWQgY2hhciBzX2Jsb2Nrc2l6ZV9i aXRzOwogICAgICAgIHVuc2lnbmVkIGNoYXIgc19kaXJ0OwogICAgICAgIHVuc2lnbmVkIGxvbmcg bG9uZyBzX21heGJ5dGVzOwogICAgICAgIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpzX3R5cGU7 CiAgICAgICAgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgKnNfb3A7CiAgICAgICAgc3RydWN0IGRx dW90X29wZXJhdGlvbnMgKmRxX29wOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc19mbGFnczsKICAg ICAgICB1bnNpZ25lZCBsb25nIHNfbWFnaWM7CiAgICAgICAgc3RydWN0IGRlbnRyeSAqc19yb290 OwogICAgICAgIHN0cnVjdCByd19zZW1hcGhvcmUgc191bW91bnQ7CiAgICAgICAgc3RydWN0IHNl bWFwaG9yZSBzX2xvY2s7CgogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgc19kaXJ0eTsKICAgICAg ICBzdHJ1Y3QgbGlzdF9oZWFkIHNfbG9ja2VkX2lub2RlczsKICAgICAgICBzdHJ1Y3QgbGlzdF9o ZWFkIHNfZmlsZXM7CgogICAgICAgIHN0cnVjdCBibG9ja19kZXZpY2UgKnNfYmRldjsKICAgICAg ICBzdHJ1Y3QgbGlzdF9oZWFkIHNfbW91bnRzOwogICAgICAgIHN0cnVjdCBxdW90YV9tb3VudF9v cHRpb25zIHNfZHF1b3Q7CgogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIHN0cnVjdCBt aW5peF9zYl9pbmZvIG1pbml4X3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGV4dDJfc2JfaW5m byBleHQyX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGhwZnNfc2JfaW5mbyBocGZzX3NiOwog ICAgICAgICAgICAgICAgc3RydWN0IG50ZnNfc2JfaW5mbyBudGZzX3NiOwogICAgICAgICAgICAg ICAgc3RydWN0IG1zZG9zX3NiX2luZm8gbXNkb3Nfc2I7CiAgICAgICAgICAgICAgICBzdHJ1Y3Qg aXNvZnNfc2JfaW5mbyBpc29mc19zYjsKICAgICAgICAgICAgICAgIHN0cnVjdCBuZnNfc2JfaW5m byBuZnNfc2I7CiAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3lzdl9zYl9pbmZvIHN5c3Zfc2I7CiAg ICAgICAgICAgICAgICBzdHJ1Y3QgYWZmc19zYl9pbmZvIGFmZnNfc2I7CiAgICAgICAgICAgICAg ICBzdHJ1Y3QgdWZzX3NiX2luZm8gdWZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGVmc19z Yl9pbmZvIGVmc19zYjsKICAgICAgICAgICAgICAgIHN0cnVjdCBzaG1lbV9zYl9pbmZvIHNobWVt X3NiOwogICAgICAgICAgICAgICAgc3RydWN0IHJvbWZzX3NiX2luZm8gcm9tZnNfc2I7CiAgICAg ICAgICAgICAgICBzdHJ1Y3Qgc21iX3NiX2luZm8gc21iZnNfc2I7CiAgICAgICAgICAgICAgICBz dHJ1Y3QgaGZzX3NiX2luZm8gaGZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGFkZnNfc2Jf aW5mbyBhZGZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IHFueDRfc2JfaW5mbyBxbng0X3Ni OwogICAgICAgICAgICAgICAgc3RydWN0IHJlaXNlcmZzX3NiX2luZm8gcmVpc2VyZnNfc2I7CiAg ICAgICAgICAgICAgICBzdHJ1Y3QgYmZzX3NiX2luZm8gYmZzX3NiOwogICAgICAgICAgICAgICAg c3RydWN0IHVkZl9zYl9pbmZvIHVkZl9zYjsKICAgICAgICAgICAgICAgIHN0cnVjdCBuY3Bfc2Vy dmVyIG5jcGZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IHVzYmRldl9zYl9pbmZvIHVzYmRl dmZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGNyYW1mc19zYl9pbmZvIGNyYW1mc19zYjsK ICAgICAgICAgICAgICAgIHZvaWQgKmdlbmVyaWNfc2JwOwogICAgICAgIH0gdTsKCgoKCiAgICAg ICAgc3RydWN0IHNlbWFwaG9yZSBzX3Zmc19yZW5hbWVfc2VtOwojIDczMSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIgogICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgc19u ZnNkX2ZyZWVfcGF0aF9zZW07Cn07CgoKCgpleHRlcm4gaW50IHZmc19jcmVhdGVfUnNtcF8wNGUy N2Q0MChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCBpbnQpOwpleHRlcm4gaW50IHZm c19ta2Rpcl9Sc21wXzdiYTViMWJhKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIGlu dCk7CmV4dGVybiBpbnQgdmZzX21rbm9kX1JzbXBfYjc1MmQ0NDYoc3RydWN0IGlub2RlICosIHN0 cnVjdCBkZW50cnkgKiwgaW50LCBkZXZfdCk7CmV4dGVybiBpbnQgdmZzX3N5bWxpbmtfUnNtcF9k NzY2NWY3ZChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCBjb25zdCBjaGFyICopOwpl eHRlcm4gaW50IHZmc19saW5rX1JzbXBfZWQzODM1MTQoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3Qg aW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0ZXJuIGludCB2ZnNfcm1kaXJfUnNtcF83OTYz NmE5MChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0ZXJuIGludCB2ZnNfdW5s aW5rX1JzbXBfZmVmYTQ0NDcoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKik7CmV4dGVy biBpbnQgdmZzX3JlbmFtZV9Sc21wXzQ2ZmM1N2IxKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVu dHJ5ICosIHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwoKCgoKI2RlZmluZSBEVF9V TktOT1dOIDAKI2RlZmluZSBEVF9GSUZPIDEKI2RlZmluZSBEVF9DSFIgMgojZGVmaW5lIERUX0RJ UiA0CiNkZWZpbmUgRFRfQkxLIDYKI2RlZmluZSBEVF9SRUcgOAojZGVmaW5lIERUX0xOSyAxMAoj ZGVmaW5lIERUX1NPQ0sgMTIKI2RlZmluZSBEVF9XSFQgMTQKCgoKCgoKCnR5cGVkZWYgaW50ICgq ZmlsbGRpcl90KSh2b2lkICosIGNvbnN0IGNoYXIgKiwgaW50LCBvZmZfdCwgaW5vX3QsIHVuc2ln bmVkKTsKCnN0cnVjdCBibG9ja19kZXZpY2Vfb3BlcmF0aW9ucyB7CiAgICAgICAgaW50ICgqb3Bl bikgKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKICAgICAgICBpbnQgKCpyZWxlYXNl KSAoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwogICAgICAgIGludCAoKmlvY3RsKSAo c3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICosIHVuc2lnbmVkLCB1bnNpZ25lZCBsb25nKTsK ICAgICAgICBpbnQgKCpjaGVja19tZWRpYV9jaGFuZ2UpIChrZGV2X3QpOwogICAgICAgIGludCAo KnJldmFsaWRhdGUpIChrZGV2X3QpOwp9OwoKCgoKCgpzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHsK ICAgICAgICBzdHJ1Y3QgbW9kdWxlICpvd25lcjsKICAgICAgICBsb2ZmX3QgKCpsbHNlZWspIChz dHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIGludCk7CiAgICAgICAgc3NpemVfdCAoKnJlYWQpIChzdHJ1 Y3QgZmlsZSAqLCBjaGFyICosIHNpemVfdCwgbG9mZl90ICopOwogICAgICAgIHNzaXplX3QgKCp3 cml0ZSkgKHN0cnVjdCBmaWxlICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CiAg ICAgICAgaW50ICgqcmVhZGRpcikgKHN0cnVjdCBmaWxlICosIHZvaWQgKiwgZmlsbGRpcl90KTsK ICAgICAgICB1bnNpZ25lZCBpbnQgKCpwb2xsKSAoc3RydWN0IGZpbGUgKiwgc3RydWN0IHBvbGxf dGFibGVfc3RydWN0ICopOwogICAgICAgIGludCAoKmlvY3RsKSAoc3RydWN0IGlub2RlICosIHN0 cnVjdCBmaWxlICosIHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CiAgICAgICAgaW50ICgq bW1hcCkgKHN0cnVjdCBmaWxlICosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqKTsKICAgICAgICBp bnQgKCpvcGVuKSAoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwogICAgICAgIGludCAo KmZsdXNoKSAoc3RydWN0IGZpbGUgKik7CiAgICAgICAgaW50ICgqcmVsZWFzZSkgKHN0cnVjdCBp bm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKICAgICAgICBpbnQgKCpmc3luYykgKHN0cnVjdCBmaWxl ICosIHN0cnVjdCBkZW50cnkgKiwgaW50IGRhdGFzeW5jKTsKICAgICAgICBpbnQgKCpmYXN5bmMp IChpbnQsIHN0cnVjdCBmaWxlICosIGludCk7CiAgICAgICAgaW50ICgqbG9jaykgKHN0cnVjdCBm aWxlICosIGludCwgc3RydWN0IGZpbGVfbG9jayAqKTsKICAgICAgICBzc2l6ZV90ICgqcmVhZHYp IChzdHJ1Y3QgZmlsZSAqLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKiwgdW5zaWduZWQgbG9uZywgbG9m Zl90ICopOwogICAgICAgIHNzaXplX3QgKCp3cml0ZXYpIChzdHJ1Y3QgZmlsZSAqLCBjb25zdCBz dHJ1Y3QgaW92ZWMgKiwgdW5zaWduZWQgbG9uZywgbG9mZl90ICopOwogICAgICAgIHNzaXplX3Qg KCpzZW5kcGFnZSkgKHN0cnVjdCBmaWxlICosIHN0cnVjdCBwYWdlICosIGludCwgc2l6ZV90LCBs b2ZmX3QgKiwgaW50KTsKICAgICAgICB1bnNpZ25lZCBsb25nICgqZ2V0X3VubWFwcGVkX2FyZWFf UnNtcF84YjNiNzkwZCkoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9u ZywgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZyk7Cn07CgpzdHJ1Y3QgaW5vZGVfb3BlcmF0 aW9ucyB7CiAgICAgICAgaW50ICgqY3JlYXRlKSAoc3RydWN0IGlub2RlICosc3RydWN0IGRlbnRy eSAqLGludCk7CiAgICAgICAgc3RydWN0IGRlbnRyeSAqICgqbG9va3VwKSAoc3RydWN0IGlub2Rl ICosc3RydWN0IGRlbnRyeSAqKTsKICAgICAgICBpbnQgKCpsaW5rKSAoc3RydWN0IGRlbnRyeSAq LHN0cnVjdCBpbm9kZSAqLHN0cnVjdCBkZW50cnkgKik7CiAgICAgICAgaW50ICgqdW5saW5rKSAo c3RydWN0IGlub2RlICosc3RydWN0IGRlbnRyeSAqKTsKICAgICAgICBpbnQgKCpzeW1saW5rKSAo c3RydWN0IGlub2RlICosc3RydWN0IGRlbnRyeSAqLGNvbnN0IGNoYXIgKik7CiAgICAgICAgaW50 ICgqbWtkaXIpIChzdHJ1Y3QgaW5vZGUgKixzdHJ1Y3QgZGVudHJ5ICosaW50KTsKICAgICAgICBp bnQgKCpybWRpcikgKHN0cnVjdCBpbm9kZSAqLHN0cnVjdCBkZW50cnkgKik7CiAgICAgICAgaW50 ICgqbWtub2QpIChzdHJ1Y3QgaW5vZGUgKixzdHJ1Y3QgZGVudHJ5ICosaW50LGludCk7CiAgICAg ICAgaW50ICgqcmVuYW1lKSAoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiwKICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKik7CiAgICAg ICAgaW50ICgqcmVhZGxpbmspIChzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKixpbnQpOwogICAgICAg IGludCAoKmZvbGxvd19saW5rKSAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgbmFtZWlkYXRhICop OwogICAgICAgIHZvaWQgKCp0cnVuY2F0ZSkgKHN0cnVjdCBpbm9kZSAqKTsKICAgICAgICBpbnQg KCpwZXJtaXNzaW9uX1JzbXBfOWIzNTQ0NTcpIChzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKICAgICAg ICBpbnQgKCpyZXZhbGlkYXRlKSAoc3RydWN0IGRlbnRyeSAqKTsKICAgICAgICBpbnQgKCpzZXRh dHRyKSAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaWF0dHIgKik7CiAgICAgICAgaW50ICgqZ2V0 YXR0cikgKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlhdHRyICopOwp9OwoKCgoKCnN0cnVjdCBz dXBlcl9vcGVyYXRpb25zIHsKICAgICAgICB2b2lkICgqcmVhZF9pbm9kZSkgKHN0cnVjdCBpbm9k ZSAqKTsKCgoKCgoKCiAgICAgICAgdm9pZCAoKnJlYWRfaW5vZGUyKSAoc3RydWN0IGlub2RlICos IHZvaWQgKikgOwogICAgICAgIHZvaWQgKCpkaXJ0eV9pbm9kZSkgKHN0cnVjdCBpbm9kZSAqKTsK ICAgICAgICB2b2lkICgqd3JpdGVfaW5vZGUpIChzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKICAgICAg ICB2b2lkICgqcHV0X2lub2RlKSAoc3RydWN0IGlub2RlICopOwogICAgICAgIHZvaWQgKCpkZWxl dGVfaW5vZGUpIChzdHJ1Y3QgaW5vZGUgKik7CiAgICAgICAgdm9pZCAoKnB1dF9zdXBlcikgKHN0 cnVjdCBzdXBlcl9ibG9jayAqKTsKICAgICAgICB2b2lkICgqd3JpdGVfc3VwZXIpIChzdHJ1Y3Qg c3VwZXJfYmxvY2sgKik7CiAgICAgICAgdm9pZCAoKndyaXRlX3N1cGVyX2xvY2tmcykgKHN0cnVj dCBzdXBlcl9ibG9jayAqKTsKICAgICAgICB2b2lkICgqdW5sb2NrZnMpIChzdHJ1Y3Qgc3VwZXJf YmxvY2sgKik7CiAgICAgICAgaW50ICgqc3RhdGZzKSAoc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0 cnVjdCBzdGF0ZnMgKik7CiAgICAgICAgaW50ICgqcmVtb3VudF9mcykgKHN0cnVjdCBzdXBlcl9i bG9jayAqLCBpbnQgKiwgY2hhciAqKTsKICAgICAgICB2b2lkICgqY2xlYXJfaW5vZGVfUnNtcF8x NWIxMmEzNykgKHN0cnVjdCBpbm9kZSAqKTsKICAgICAgICB2b2lkICgqdW1vdW50X2JlZ2luKSAo c3RydWN0IHN1cGVyX2Jsb2NrICopOwojIDg3MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9mcy5oIgogICAgICAgIHN0cnVjdCBkZW50cnkgKiAoKmZoX3RvX2RlbnRyeSkoc3Ry dWN0IHN1cGVyX2Jsb2NrICpzYiwgX191MzIgKmZoLCBpbnQgbGVuLCBpbnQgZmh0eXBlLCBpbnQg cGFyZW50KTsKICAgICAgICBpbnQgKCpkZW50cnlfdG9fZmgpKHN0cnVjdCBkZW50cnkgKiwgX191 MzIgKmZoLCBpbnQgKmxlbnAsIGludCBuZWVkX3BhcmVudCk7Cn07CgoKI2RlZmluZSBJX0RJUlRZ X1NZTkMgMQojZGVmaW5lIElfRElSVFlfREFUQVNZTkMgMgojZGVmaW5lIElfRElSVFlfUEFHRVMg NAojZGVmaW5lIElfTE9DSyA4CiNkZWZpbmUgSV9GUkVFSU5HIDE2CiNkZWZpbmUgSV9DTEVBUiAz MgoKI2RlZmluZSBJX0RJUlRZIChJX0RJUlRZX1NZTkMgfCBJX0RJUlRZX0RBVEFTWU5DIHwgSV9E SVJUWV9QQUdFUykKCmV4dGVybiB2b2lkIF9fbWFya19pbm9kZV9kaXJ0eV9Sc21wX2ViMGYxNTVj KHN0cnVjdCBpbm9kZSAqLCBpbnQpOwpzdGF0aWMgaW5saW5lIHZvaWQgbWFya19pbm9kZV9kaXJ0 eShzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiAgICAgICAgX19tYXJrX2lub2RlX2RpcnR5X1JzbXBf ZWIwZjE1NWMoaW5vZGUsICgxIHwgMiB8IDQpKTsKfQoKc3RhdGljIGlubGluZSB2b2lkIG1hcmtf aW5vZGVfZGlydHlfc3luYyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiAgICAgICAgX19tYXJrX2lu b2RlX2RpcnR5X1JzbXBfZWIwZjE1NWMoaW5vZGUsIDEpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQg bWFya19pbm9kZV9kaXJ0eV9wYWdlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiAgICAgICAgX19t YXJrX2lub2RlX2RpcnR5X1JzbXBfZWIwZjE1NWMoaW5vZGUsIDQpOwp9CgpzdHJ1Y3QgZHF1b3Rf b3BlcmF0aW9ucyB7CiAgICAgICAgdm9pZCAoKmluaXRpYWxpemUpIChzdHJ1Y3QgaW5vZGUgKiwg c2hvcnQpOwogICAgICAgIHZvaWQgKCpkcm9wKSAoc3RydWN0IGlub2RlICopOwogICAgICAgIGlu dCAoKmFsbG9jX2Jsb2NrKSAoY29uc3Qgc3RydWN0IGlub2RlICosIHVuc2lnbmVkIGxvbmcsIGNo YXIpOwogICAgICAgIGludCAoKmFsbG9jX2lub2RlKSAoY29uc3Qgc3RydWN0IGlub2RlICosIHVu c2lnbmVkIGxvbmcpOwogICAgICAgIHZvaWQgKCpmcmVlX2Jsb2NrKSAoY29uc3Qgc3RydWN0IGlu b2RlICosIHVuc2lnbmVkIGxvbmcpOwogICAgICAgIHZvaWQgKCpmcmVlX2lub2RlKSAoY29uc3Qg c3RydWN0IGlub2RlICosIHVuc2lnbmVkIGxvbmcpOwogICAgICAgIGludCAoKnRyYW5zZmVyKSAo c3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaWF0dHIgKik7Cn07CgpzdHJ1Y3QgZmlsZV9zeXN0ZW1f dHlwZSB7CiAgICAgICAgY29uc3QgY2hhciAqbmFtZTsKICAgICAgICBpbnQgZnNfZmxhZ3M7CiAg ICAgICAgc3RydWN0IHN1cGVyX2Jsb2NrICooKnJlYWRfc3VwZXIpIChzdHJ1Y3Qgc3VwZXJfYmxv Y2sgKiwgdm9pZCAqLCBpbnQpOwogICAgICAgIHN0cnVjdCBtb2R1bGUgKm93bmVyOwogICAgICAg IHN0cnVjdCB2ZnNtb3VudCAqa2Vybl9tbnQ7CiAgICAgICAgc3RydWN0IGZpbGVfc3lzdGVtX3R5 cGUgKiBuZXh0Owp9OwoKI2RlZmluZSBERUNMQVJFX0ZTVFlQRSh2YXIsIHR5cGUsIHJlYWQsIGZs YWdzKSBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSB2YXIgPSB7IG5hbWU6IHR5cGUsIHJlYWRfc3Vw ZXI6IHJlYWQsIGZzX2ZsYWdzOiBmbGFncywgb3duZXI6IFRISVNfTU9EVUxFLCB9CgoKCgoKCgoj ZGVmaW5lIERFQ0xBUkVfRlNUWVBFX0RFVih2YXIsIHR5cGUsIHJlYWQpIERFQ0xBUkVfRlNUWVBF KHZhcix0eXBlLHJlYWQsRlNfUkVRVUlSRVNfREVWKQoKCgojZGVmaW5lIGZvcHNfZ2V0KGZvcHMp ICgoKGZvcHMpICYmIChmb3BzKS0+b3duZXIpID8gKCB0cnlfaW5jX21vZF9jb3VudCgoZm9wcykt Pm93bmVyKSA/IChmb3BzKSA6IE5VTEwgKSA6IChmb3BzKSkKCgoKCiNkZWZpbmUgZm9wc19wdXQo Zm9wcykgZG8geyBpZiAoKGZvcHMpICYmIChmb3BzKS0+b3duZXIpIF9fTU9EX0RFQ19VU0VfQ09V TlQoKGZvcHMpLT5vd25lcik7IH0gd2hpbGUoMCkKCgoKCgpleHRlcm4gaW50IHJlZ2lzdGVyX2Zp bGVzeXN0ZW1fUnNtcF81NmI2NjdmNChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqKTsKZXh0ZXJu IGludCB1bnJlZ2lzdGVyX2ZpbGVzeXN0ZW1fUnNtcF8wYWIyMGEyNChzdHJ1Y3QgZmlsZV9zeXN0 ZW1fdHlwZSAqKTsKZXh0ZXJuIHN0cnVjdCB2ZnNtb3VudCAqa2Vybl9tb3VudF9Sc21wX2M0OTBh MDY0KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICopOwpleHRlcm4gaW50IG1heV91bW91bnRfUnNt cF9iMzc3M2YxZShzdHJ1Y3QgdmZzbW91bnQgKik7CmV4dGVybiBsb25nIGRvX21vdW50KGNoYXIg KiwgY2hhciAqLCBjaGFyICosIHVuc2lnbmVkIGxvbmcsIHZvaWQgKik7CgojZGVmaW5lIGtlcm5f dW1vdW50IG1udHB1dAoKZXh0ZXJuIGludCB2ZnNfc3RhdGZzX1JzbXBfN2EzMTBlMmUoc3RydWN0 IHN1cGVyX2Jsb2NrICosIHN0cnVjdCBzdGF0ZnMgKik7CgoKCgojZGVmaW5lIExPQ0tfVVNFX0NM TlQgMQoKI2RlZmluZSBGTE9DS19WRVJJRllfUkVBRCAxCiNkZWZpbmUgRkxPQ0tfVkVSSUZZX1dS SVRFIDIKCmV4dGVybiBpbnQgbG9ja3NfbWFuZGF0b3J5X2xvY2tlZChzdHJ1Y3QgaW5vZGUgKik7 CmV4dGVybiBpbnQgbG9ja3NfbWFuZGF0b3J5X2FyZWFfUnNtcF83OWFiYjczMChpbnQsIHN0cnVj dCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIHNpemVfdCk7CgoKCgoKI2RlZmluZSBN QU5EQVRPUllfTE9DSyhpbm9kZSkgKElTX01BTkRMT0NLKGlub2RlKSAmJiAoKGlub2RlKS0+aV9t b2RlICYgKFNfSVNHSUQgfCBTX0lYR1JQKSkgPT0gU19JU0dJRCkKCgpzdGF0aWMgaW5saW5lIGlu dCBsb2Nrc192ZXJpZnlfbG9ja2VkKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKICAgICAgICBpZiAo KCgoaW5vZGUpLT5pX3NiLT5zX2ZsYWdzICYgKDY0KSkgJiYgKChpbm9kZSktPmlfbW9kZSAmICgw MDAyMDAwIHwgMDAwMTApKSA9PSAwMDAyMDAwKSkKICAgICAgICAgICAgICAgIHJldHVybiBsb2Nr c19tYW5kYXRvcnlfbG9ja2VkKGlub2RlKTsKICAgICAgICByZXR1cm4gMDsKfQoKc3RhdGljIGlu bGluZSBpbnQgbG9ja3NfdmVyaWZ5X2FyZWEoaW50IHJlYWRfd3JpdGUsIHN0cnVjdCBpbm9kZSAq aW5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmaWxlICpm aWxwLCBsb2ZmX3Qgb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplX3QgY291bnQpCnsKICAgICAgICBpZiAoaW5vZGUtPmlfZmxvY2sgJiYgKCgoaW5vZGUpLT5p X3NiLT5zX2ZsYWdzICYgKDY0KSkgJiYgKChpbm9kZSktPmlfbW9kZSAmICgwMDAyMDAwIHwgMDAw MTApKSA9PSAwMDAyMDAwKSkKICAgICAgICAgICAgICAgIHJldHVybiBsb2Nrc19tYW5kYXRvcnlf YXJlYV9Sc21wXzc5YWJiNzMwKHJlYWRfd3JpdGUsIGlub2RlLCBmaWxwLCBvZmZzZXQsIGNvdW50 KTsKICAgICAgICByZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBpbnQgbG9ja3NfdmVyaWZ5X3Ry dW5jYXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBmaWxlICpmaWxwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsb2ZmX3Qgc2l6ZSkKewogICAgICAgIGlmIChpbm9kZS0+aV9mbG9jayAmJiAoKChpbm9k ZSktPmlfc2ItPnNfZmxhZ3MgJiAoNjQpKSAmJiAoKGlub2RlKS0+aV9tb2RlICYgKDAwMDIwMDAg fCAwMDAxMCkpID09IDAwMDIwMDApKQogICAgICAgICAgICAgICAgcmV0dXJuIGxvY2tzX21hbmRh dG9yeV9hcmVhX1JzbXBfNzlhYmI3MzAoCiAgICAgICAgICAgICAgICAgICAgICAgIDIsIGlub2Rl LCBmaWxwLAogICAgICAgICAgICAgICAgICAgICAgICBzaXplIDwgaW5vZGUtPmlfc2l6ZSA/IHNp emUgOiBpbm9kZS0+aV9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAoc2l6ZSA8IGlub2Rl LT5pX3NpemUgPyBpbm9kZS0+aV9zaXplIC0gc2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAg OiBzaXplIC0gaW5vZGUtPmlfc2l6ZSkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgcmV0dXJu IDA7Cn0KCmV4dGVybiBpbmxpbmUgaW50IGdldF9sZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1 bnNpZ25lZCBpbnQgbW9kZSkKewogICAgICAgIGlmIChpbm9kZS0+aV9mbG9jayAmJiAoaW5vZGUt PmlfZmxvY2stPmZsX2ZsYWdzICYgMzIpKQogICAgICAgICAgICAgICAgcmV0dXJuIF9fZ2V0X2xl YXNlX1JzbXBfODExYzVhODkoaW5vZGUsIG1vZGUpOwogICAgICAgIHJldHVybiAwOwp9CgoKCiBf X2F0dHJpYnV0ZV9fKChzeXNjYWxsX2xpbmthZ2UpKSBsb25nIHN5c19vcGVuKGNvbnN0IGNoYXIg KiwgaW50LCBpbnQpOwogX19hdHRyaWJ1dGVfXygoc3lzY2FsbF9saW5rYWdlKSkgbG9uZyBzeXNf Y2xvc2VfUnNtcF9kZTc2ZTdiYyh1bnNpZ25lZCBpbnQpOwpleHRlcm4gaW50IGRvX3RydW5jYXRl KHN0cnVjdCBkZW50cnkgKiwgbG9mZl90IHN0YXJ0KTsKCmV4dGVybiBzdHJ1Y3QgZmlsZSAqZmls cF9vcGVuX1JzbXBfZDc5MGRjYTQoY29uc3QgY2hhciAqLCBpbnQsIGludCk7CmV4dGVybiBzdHJ1 Y3QgZmlsZSAqIGRlbnRyeV9vcGVuX1JzbXBfOTY5ZWI4NDcoc3RydWN0IGRlbnRyeSAqLCBzdHJ1 Y3QgdmZzbW91bnQgKiwgaW50KTsKZXh0ZXJuIGludCBmaWxwX2Nsb3NlX1JzbXBfMTE5ZWJiY2Io c3RydWN0IGZpbGUgKiwgZmxfb3duZXJfdCBpZCk7CmV4dGVybiBjaGFyICogZ2V0bmFtZV9Sc21w XzdjNjBkNjZlKGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIHZvaWQgdmZzX2NhY2hlc19pbml0KHVu c2lnbmVkIGxvbmcpOwoKI2RlZmluZSBfX2dldG5hbWUoKSBrbWVtX2NhY2hlX2FsbG9jKG5hbWVz X2NhY2hlcCwgU0xBQl9LRVJORUwpCiNkZWZpbmUgcHV0bmFtZShuYW1lKSBrbWVtX2NhY2hlX2Zy ZWUobmFtZXNfY2FjaGVwLCAodm9pZCAqKShuYW1lKSkKCmVudW0ge0JERVZfRklMRSwgQkRFVl9T V0FQLCBCREVWX0ZTLCBCREVWX1JBV307CmV4dGVybiBpbnQgcmVnaXN0ZXJfYmxrZGV2X1JzbXBf NWY5ZmI5ZTkodW5zaWduZWQgaW50LCBjb25zdCBjaGFyICosIHN0cnVjdCBibG9ja19kZXZpY2Vf b3BlcmF0aW9ucyAqKTsKZXh0ZXJuIGludCB1bnJlZ2lzdGVyX2Jsa2Rldl9Sc21wX2VhYzFjNGFm KHVuc2lnbmVkIGludCwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIHN0cnVjdCBibG9ja19kZXZpY2Ug KmJkZ2V0X1JzbXBfOWYxMTA4NWEoZGV2X3QpOwpleHRlcm4gdm9pZCBiZHB1dF9Sc21wXzY5YTA3 YmNkKHN0cnVjdCBibG9ja19kZXZpY2UgKik7CmV4dGVybiBzdHJ1Y3QgY2hhcl9kZXZpY2UgKmNk Z2V0X1JzbXBfZDY3Mzk1MDMoZGV2X3QpOwpleHRlcm4gdm9pZCBjZHB1dF9Sc21wX2VjNWQ1OGJk KHN0cnVjdCBjaGFyX2RldmljZSAqKTsKZXh0ZXJuIGludCBibGtkZXZfb3Blbl9Sc21wXzdhZmMx MDlmKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKZXh0ZXJuIHN0cnVjdCBmaWxlX29w ZXJhdGlvbnMgZGVmX2Jsa19mb3BzX1JzbXBfNzRlYjRhNmE7CmV4dGVybiBzdHJ1Y3QgZmlsZV9v cGVyYXRpb25zIGRlZl9maWZvX2ZvcHM7CmV4dGVybiBpbnQgaW9jdGxfYnlfYmRldl9Sc21wXzAz NmMwOTk4KHN0cnVjdCBibG9ja19kZXZpY2UgKiwgdW5zaWduZWQsIHVuc2lnbmVkIGxvbmcpOwpl eHRlcm4gaW50IGJsa2Rldl9nZXRfUnNtcF8yZDgyZjMzZChzdHJ1Y3QgYmxvY2tfZGV2aWNlICos IG1vZGVfdCwgdW5zaWduZWQsIGludCk7CmV4dGVybiBpbnQgYmxrZGV2X3B1dF9Sc21wXzRkOWZm NTUxKHN0cnVjdCBibG9ja19kZXZpY2UgKiwgaW50KTsKCgpleHRlcm4gY29uc3Qgc3RydWN0IGJs b2NrX2RldmljZV9vcGVyYXRpb25zICpnZXRfYmxrZm9wcyh1bnNpZ25lZCBpbnQpOwpleHRlcm4g aW50IHJlZ2lzdGVyX2NocmRldl9Sc21wXzhlNzA5ZTMzKHVuc2lnbmVkIGludCwgY29uc3QgY2hh ciAqLCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICopOwpleHRlcm4gaW50IHVucmVnaXN0ZXJfY2hy ZGV2X1JzbXBfYzE5MmQ0OTEodW5zaWduZWQgaW50LCBjb25zdCBjaGFyICopOwpleHRlcm4gaW50 IGNocmRldl9vcGVuKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKZXh0ZXJuIGNvbnN0 IGNoYXIgKiBiZGV2bmFtZV9Sc21wX2QwNDc4MmU2KGtkZXZfdCk7CmV4dGVybiBjb25zdCBjaGFy ICogY2Rldm5hbWVfUnNtcF85NzU0NzQxZChrZGV2X3QpOwpleHRlcm4gY29uc3QgY2hhciAqIGtk ZXZuYW1lX1JzbXBfYzI1OGM5MDYoa2Rldl90KTsKZXh0ZXJuIHZvaWQgaW5pdF9zcGVjaWFsX2lu b2RlX1JzbXBfYjBkZTdlNDcoc3RydWN0IGlub2RlICosIHVtb2RlX3QsIGludCk7CgoKZXh0ZXJu IHZvaWQgbWFrZV9iYWRfaW5vZGVfUnNtcF9kNjlkZDU4MihzdHJ1Y3QgaW5vZGUgKik7CmV4dGVy biBpbnQgaXNfYmFkX2lub2RlX1JzbXBfZjQ4OGM0ZTEoc3RydWN0IGlub2RlICopOwoKZXh0ZXJu IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcmVhZF9maWZvX2ZvcHM7CmV4dGVybiBzdHJ1Y3QgZmls ZV9vcGVyYXRpb25zIHdyaXRlX2ZpZm9fZm9wczsKZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlv bnMgcmR3cl9maWZvX2ZvcHM7CmV4dGVybiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJlYWRfcGlw ZV9mb3BzOwpleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB3cml0ZV9waXBlX2ZvcHM7CmV4 dGVybiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJkd3JfcGlwZV9mb3BzOwoKZXh0ZXJuIGludCBm c19tYXlfcmVtb3VudF9ybyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKik7CgpleHRlcm4gaW50IHRyeV90 b19mcmVlX2J1ZmZlcnMoc3RydWN0IHBhZ2UgKiwgdW5zaWduZWQgaW50KTsKZXh0ZXJuIHZvaWQg cmVmaWxlX2J1ZmZlcl9Sc21wXzljYWE0OGJmKHN0cnVjdCBidWZmZXJfaGVhZCAqIGJ1Zik7CmV4 dGVybiB2b2lkIGVuZF9idWZmZXJfaW9fc3luYyhzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLCBpbnQg dXB0b2RhdGUpOwoKCmV4dGVybiB2b2lkIHNldF9idWZmZXJfYXN5bmNfaW9fUnNtcF8xMDQ3ZTg4 NShzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKSA7CgojZGVmaW5lIEJVRl9DTEVBTiAwCiNkZWZpbmUg QlVGX0xPQ0tFRCAxCiNkZWZpbmUgQlVGX0RJUlRZIDIKI2RlZmluZSBCVUZfUFJPVEVDVEVEIDMK I2RlZmluZSBOUl9MSVNUIDQKCnN0YXRpYyBpbmxpbmUgdm9pZCBnZXRfYmgoc3RydWN0IGJ1ZmZl cl9oZWFkICogYmgpCnsKICAgICAgICAoKF9fYnVpbHRpbl9jb25zdGFudF9wKCgxKSkgJiYgKCAo KDEpID09IDEpIHx8ICgoMSkgPT0gNCkgfHwgKCgxKSA9PSA4KSB8fCAoKDEpID09IDE2KSB8fCAo KDEpID09IC0xKSB8fCAoKDEpID09IC00KSB8fCAoKDEpID09IC04KSB8fCAoKDEpID09IC0xNikp KSA/ICh7IF9fdTY0IF90bXA7IHZvbGF0aWxlIF9fdHlwZW9mX18oKigmKCgoJihiaCktPmJfY291 bnQpKSktPmNvdW50ZXIpKSAqX3YgPSAoJigoKCYoYmgpLT5iX2NvdW50KSkpLT5jb3VudGVyKTsg c3dpdGNoICgoMSkpIHsgY2FzZSAtMTY6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCYoYmgpLT5i X2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIi ZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2 KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl dGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikg OiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2Fu ZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCYo YmgpLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVf XyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAi aSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAo IiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIo LTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRj aF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC00OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYo KCgmKGJoKS0+Yl9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0 aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92 KSwgImkiKC00KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxl X18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwg ImkiKC00KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRf ZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtMTogKHsgc3dpdGNoIChzaXplb2Yo KigmKCgoJihiaCktPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192 b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJy IihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xh dGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihf diksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9p YTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTogKHsgc3dpdGNoIChzaXpl b2YoKigmKCgoJihiaCktPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6 ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3Zv bGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIi KF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3Jf aWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDQ6ICh7IHN3aXRjaCAoc2l6 ZW9mKCooJigoKCYoYmgpLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9f IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg OiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192 b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJy IihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9y X2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSA4OiAoeyBzd2l0Y2ggKHNp emVvZigqKCYoKCgmKGJoKS0+Yl9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21f XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp IDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi ciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zv cl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTY6ICh7IHN3aXRjaCAo c2l6ZW9mKCooJigoKCYoYmgpLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt cCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9f IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg OiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6 ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBkZWZhdWx0OiBfdG1wID0g X19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgYnJlYWs7IH0gKF9fdHlw ZW9mX18oKiYoKCgmKGJoKS0+Yl9jb3VudCkpKS0+Y291bnRlcikpIChfdG1wICsgKCgxKSkpOyB9 KSA6IGlhNjRfYXRvbWljX2FkZCgoMSksICgoJihiaCktPmJfY291bnQpKSkpOwp9CgpzdGF0aWMg aW5saW5lIHZvaWQgcHV0X2JoKHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCnsKICAgICAgICBfX2Fz bV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogICAgICAgICgoX19idWlsdGluX2Nv bnN0YW50X3AoKDEpKSAmJiAoICgoMSkgPT0gMSkgfHwgKCgxKSA9PSA0KSB8fCAoKDEpID09IDgp IHx8ICgoMSkgPT0gMTYpIHx8ICgoMSkgPT0gLTEpIHx8ICgoMSkgPT0gLTQpIHx8ICgoMSkgPT0g LTgpIHx8ICgoMSkgPT0gLTE2KSkpID8gKHsgX191NjQgX3RtcDsgdm9sYXRpbGUgX190eXBlb2Zf XygqKCYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSAqX3YgPSAoJigoKCZiaC0+Yl9jb3Vu dCkpKS0+Y291bnRlcik7IHN3aXRjaCAoLSgoMSkpKSB7IGNhc2UgLTE2OiAoeyBzd2l0Y2ggKHNp emVvZigqKCYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6 ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi ciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVf Zm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtODogKHsgc3dpdGNo IChzaXplb2YoKigmKCgoJmJoLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt cCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9f IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg OiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6 ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC00OiAoeyBzd2l0 Y2ggKHNpemVvZigqKCYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf dG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNt X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w KSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTE6ICh7IHN3 aXRjaCAoc2l6ZW9mKCooJigoKCZiaC0+Yl9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi KF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19h c21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90 bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk X3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxOiAoeyBz d2l0Y2ggKHNpemVvZigqKCYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6 IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1y IihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19h c21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90 bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRf c2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDQ6ICh7IHN3 aXRjaCAoc2l6ZW9mKCooJigoKCZiaC0+Yl9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi KF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt cCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgODogKHsgc3dp dGNoIChzaXplb2YoKigmKCgoJmJoLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBf X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo X3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNt X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w KSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3Np emVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxNjogKHsgc3dp dGNoIChzaXplb2YoKigmKCgoJmJoLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBf X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo X3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt cCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRf c2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBkZWZhdWx0OiBfdG1w ID0gX19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgYnJlYWs7IH0gKF9f dHlwZW9mX18oKiYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSAoX3RtcCArICgtKCgxKSkp KTsgfSkgOiBpYTY0X2F0b21pY19zdWIoKDEpLCAoKCZiaC0+Yl9jb3VudCkpKSk7Cn0KCgoKCnN0 YXRpYyBpbmxpbmUgdm9pZCBtYXJrX2J1ZmZlcl91cHRvZGF0ZShzdHJ1Y3QgYnVmZmVyX2hlYWQg KiBiaCwgaW50IG9uKQp7CiAgICAgICAgaWYgKG9uKQogICAgICAgICAgICAgICAgc2V0X2JpdChC SF9VcHRvZGF0ZSwgJmJoLT5iX3N0YXRlKTsKICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBj bGVhcl9iaXQoQkhfVXB0b2RhdGUsICZiaC0+Yl9zdGF0ZSk7Cn0KCiNkZWZpbmUgYXRvbWljX3Nl dF9idWZmZXJfY2xlYW4oYmgpIHRlc3RfYW5kX2NsZWFyX2JpdChCSF9EaXJ0eSwgJihiaCktPmJf c3RhdGUpCgpzdGF0aWMgaW5saW5lIHZvaWQgX19tYXJrX2J1ZmZlcl9jbGVhbihzdHJ1Y3QgYnVm ZmVyX2hlYWQgKmJoKQp7CiAgICAgICAgcmVmaWxlX2J1ZmZlcl9Sc21wXzljYWE0OGJmKGJoKTsK fQoKc3RhdGljIGlubGluZSB2b2lkIG1hcmtfYnVmZmVyX2NsZWFuKHN0cnVjdCBidWZmZXJfaGVh ZCAqIGJoKQp7CiAgICAgICAgaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChCSF9EaXJ0eSwgJihiaCkt PmJfc3RhdGUpKQogICAgICAgICAgICAgICAgX19tYXJrX2J1ZmZlcl9jbGVhbihiaCk7Cn0KCiNk ZWZpbmUgYXRvbWljX3NldF9idWZmZXJfcHJvdGVjdGVkKGJoKSB0ZXN0X2FuZF9zZXRfYml0KEJI X1Byb3RlY3RlZCwgJihiaCktPmJfc3RhdGUpCgpzdGF0aWMgaW5saW5lIHZvaWQgX19tYXJrX2J1 ZmZlcl9wcm90ZWN0ZWQoc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKewogICAgICAgIHJlZmlsZV9i dWZmZXJfUnNtcF85Y2FhNDhiZihiaCk7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCBtYXJrX2J1ZmZl cl9wcm90ZWN0ZWQoc3RydWN0IGJ1ZmZlcl9oZWFkICogYmgpCnsKICAgICAgICBpZiAoIXRlc3Rf YW5kX3NldF9iaXQoQkhfUHJvdGVjdGVkLCAmKGJoKS0+Yl9zdGF0ZSkpCiAgICAgICAgICAgICAg ICBfX21hcmtfYnVmZmVyX3Byb3RlY3RlZChiaCk7Cn0KCmV4dGVybiB2b2lkIF9fbWFya19idWZm ZXJfZGlydHlfUnNtcF9jMWEzZjRhYihzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKTsKZXh0ZXJuIHZv aWQgbWFya19idWZmZXJfZGlydHlfUnNtcF8zMzU3YmViYyhzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJo KTsKCiNkZWZpbmUgYXRvbWljX3NldF9idWZmZXJfZGlydHkoYmgpIHRlc3RfYW5kX3NldF9iaXQo QkhfRGlydHksICYoYmgpLT5iX3N0YXRlKQoKCgoKCgoKc3RhdGljIGlubGluZSB2b2lkIGJ1ZmZl cl9JT19lcnJvcihzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBiaCkKewogICAgICAgIG1hcmtfYnVmZmVy X2NsZWFuKGJoKTsKCgoKICAgICAgICBiaC0+Yl9lbmRfaW8oYmgsIDApOwp9CgpleHRlcm4gdm9p ZCBidWZmZXJfaW5zZXJ0X2lub2RlX3F1ZXVlX1JzbXBfODljMmE1Nzcoc3RydWN0IGJ1ZmZlcl9o ZWFkICosIHN0cnVjdCBpbm9kZSAqKTsKc3RhdGljIGlubGluZSB2b2lkIG1hcmtfYnVmZmVyX2Rp cnR5X2lub2RlKHN0cnVjdCBidWZmZXJfaGVhZCAqYmgsIHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsK ICAgICAgICBtYXJrX2J1ZmZlcl9kaXJ0eV9Sc21wXzMzNTdiZWJjKGJoKTsKICAgICAgICBidWZm ZXJfaW5zZXJ0X2lub2RlX3F1ZXVlX1JzbXBfODljMmE1NzcoYmgsIGlub2RlKTsKfQoKZXh0ZXJu IHZvaWQgYmFsYW5jZV9kaXJ0eShrZGV2X3QpOwpleHRlcm4gaW50IGNoZWNrX2Rpc2tfY2hhbmdl X1JzbXBfMTFkNDA3NmQoa2Rldl90KTsKZXh0ZXJuIGludCBpbnZhbGlkYXRlX2lub2Rlc19Sc21w X2QxZjY2ZTkyKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKZXh0ZXJuIGludCBpbnZhbGlkYXRlX2Rl dmljZV9Sc21wXzI1YTRiMGIyKGtkZXZfdCwgaW50KTsKZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9p bm9kZV9wYWdlc19Sc21wXzRjZjUxYzAzKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHZvaWQgaW52 YWxpZGF0ZV9pbm9kZV9idWZmZXJzKHN0cnVjdCBpbm9kZSAqKTsKI2RlZmluZSBpbnZhbGlkYXRl X2J1ZmZlcnMoZGV2KSBfX2ludmFsaWRhdGVfYnVmZmVycygoZGV2KSwgMCkKI2RlZmluZSBkZXN0 cm95X2J1ZmZlcnMoZGV2KSBfX2ludmFsaWRhdGVfYnVmZmVycygoZGV2KSwgMSkKZXh0ZXJuIHZv aWQgX19pbnZhbGlkYXRlX2J1ZmZlcnNfUnNtcF85OGY1MTUzOChrZGV2X3QgZGV2LCBpbnQpOwpl eHRlcm4gdm9pZCBzeW5jX2lub2RlcyhrZGV2X3QpOwpleHRlcm4gdm9pZCBzeW5jX3VubG9ja2Vk X2lub2Rlcyh2b2lkKTsKZXh0ZXJuIHZvaWQgd3JpdGVfaW5vZGVfbm93X1JzbXBfZWY0Y2RiY2Mo c3RydWN0IGlub2RlICosIGludCk7CmV4dGVybiB2b2lkIHN5bmNfZGV2X1JzbXBfZmMwYjBmNDko a2Rldl90KTsKZXh0ZXJuIGludCBmc3luY19kZXZfUnNtcF84ZWExMjhlMihrZGV2X3QpOwpleHRl cm4gaW50IGZzeW5jX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKZXh0ZXJuIHZvaWQgc3lu Y19pbm9kZXNfc2Ioc3RydWN0IHN1cGVyX2Jsb2NrICopOwpleHRlcm4gaW50IGZzeW5jX2lub2Rl X2J1ZmZlcnNfUnNtcF8zZjFkZWMzYihzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBpbnQgb3N5bmNf aW5vZGVfYnVmZmVycyhzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBpbnQgaW5vZGVfaGFzX2J1ZmZl cnMoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCBmaWxlbWFwX2ZkYXRhc3luY19Sc21wXzM1 YWI4ZTA0KHN0cnVjdCBhZGRyZXNzX3NwYWNlICopOwpleHRlcm4gdm9pZCBmaWxlbWFwX2ZkYXRh d2FpdF9Sc21wX2Q2NGRkZjMzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICopOwpleHRlcm4gdm9pZCBz eW5jX3N1cGVycyhrZGV2X3QpOwpleHRlcm4gaW50IGJtYXBfUnNtcF8xNGVkNmJkZihzdHJ1Y3Qg aW5vZGUgKiwgaW50KTsKZXh0ZXJuIGludCBub3RpZnlfY2hhbmdlX1JzbXBfYmI5Nzg2Njgoc3Ry dWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaWF0dHIgKik7CmV4dGVybiBpbnQgcGVybWlzc2lvbl9Sc21w XzliMzU0NDU3KHN0cnVjdCBpbm9kZSAqLCBpbnQpOwpleHRlcm4gaW50IHZmc19wZXJtaXNzaW9u X1JzbXBfNTcwMzk5ZGYoc3RydWN0IGlub2RlICosIGludCk7CmV4dGVybiBpbnQgZ2V0X3dyaXRl X2FjY2Vzc19Sc21wXzc3N2JjZjc5KHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIGludCBkZW55X3dy aXRlX2FjY2VzcyhzdHJ1Y3QgZmlsZSAqKTsKc3RhdGljIGlubGluZSB2b2lkIHB1dF93cml0ZV9h Y2Nlc3Moc3RydWN0IGlub2RlICogaW5vZGUpCnsKICAgICAgICAoKF9fYnVpbHRpbl9jb25zdGFu dF9wKCgxKSkgJiYgKCAoKDEpID09IDEpIHx8ICgoMSkgPT0gNCkgfHwgKCgxKSA9PSA4KSB8fCAo KDEpID09IDE2KSB8fCAoKDEpID09IC0xKSB8fCAoKDEpID09IC00KSB8fCAoKDEpID09IC04KSB8 fCAoKDEpID09IC0xNikpKSA/ICh7IF9fdTY0IF90bXA7IHZvbGF0aWxlIF9fdHlwZW9mX18oKigm KCgoJmlub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSAqX3YgPSAoJigoKCZpbm9kZS0+ aV93cml0ZWNvdW50KSkpLT5jb3VudGVyKTsgc3dpdGNoICgtKCgxKSkpIHsgY2FzZSAtMTY6ICh7 IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZpbm9kZS0+aV93cml0ZWNvdW50KSkpLT5jb3VudGVyKSkp IHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFd LCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7 IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwl MiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAibWVtb3J5Iik7IGJyZWFrOyBk ZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7 IGNhc2UgLTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZpbm9kZS0+aV93cml0ZWNvdW50KSkp LT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0 LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9y eSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJl bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIp OyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0g fSk7IGJyZWFrOyBjYXNlIC00OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmaW5vZGUtPmlfd3Jp dGVjb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIi ImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC00 KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl dGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC00KSA6 ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5k X2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtMTogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmlu b2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xh dGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihf diksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGls ZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiks ICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0 X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTogKHsgc3dpdGNoIChzaXplb2Yo KigmKCgoJmlub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNt X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w KSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBf X3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDog InIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9m b3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDQ6ICh7IHN3aXRjaCAo c2l6ZW9mKCooJigoKCZpbm9kZS0+aV93cml0ZWNvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0 OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9 ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9f YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihf dG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk X3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSA4OiAoeyBz d2l0Y2ggKHNpemVvZigqKCYoKCgmaW5vZGUtPmlfd3JpdGVjb3VudCkpKS0+Y291bnRlcikpKSB7 IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwl MiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsgY2Fz ZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6 ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0 OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2Ug MTY6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZpbm9kZS0+aV93cml0ZWNvdW50KSkpLT5jb3Vu dGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAl MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBi cmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1b JTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVh azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy ZWFrOyBkZWZhdWx0OiBfdG1wID0gX19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9h ZGQoKTsgYnJlYWs7IH0gKF9fdHlwZW9mX18oKiYoKCgmaW5vZGUtPmlfd3JpdGVjb3VudCkpKS0+ Y291bnRlcikpIChfdG1wICsgKC0oKDEpKSkpOyB9KSA6IGlhNjRfYXRvbWljX3N1YigoMSksICgo Jmlub2RlLT5pX3dyaXRlY291bnQpKSkpOwp9CnN0YXRpYyBpbmxpbmUgdm9pZCBhbGxvd193cml0 ZV9hY2Nlc3Moc3RydWN0IGZpbGUgKmZpbGUpCnsKICAgICAgICBpZiAoZmlsZSkKICAgICAgICAg ICAgICAgICgoX19idWlsdGluX2NvbnN0YW50X3AoKDEpKSAmJiAoICgoMSkgPT0gMSkgfHwgKCgx KSA9PSA0KSB8fCAoKDEpID09IDgpIHx8ICgoMSkgPT0gMTYpIHx8ICgoMSkgPT0gLTEpIHx8ICgo MSkgPT0gLTQpIHx8ICgoMSkgPT0gLTgpIHx8ICgoMSkgPT0gLTE2KSkpID8gKHsgX191NjQgX3Rt cDsgdm9sYXRpbGUgX190eXBlb2ZfXygqKCYoKCgmZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlf d3JpdGVjb3VudCkpKS0+Y291bnRlcikpICpfdiA9ICgmKCgoJmZpbGUtPmZfZGVudHJ5LT5kX2lu b2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpOyBzd2l0Y2ggKCgxKSkgeyBjYXNlIC0xNjog KHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3dyaXRl Y291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJm ZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMTYp IDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0 Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6 ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5k X2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtODogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmZp bGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNl IDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDog Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6 IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1y IihfdG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBf X2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTQ6 ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV93cml0 ZWNvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIi ZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQp IDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0 Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDog Im1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRf YWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC0xOiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmZmls ZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfd3JpdGVjb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2Ug NDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAi PXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODog X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi KF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9f YmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxOiAo eyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfd3JpdGVj b3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl dGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDEpIDog Im1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hh ZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMSkgOiAibWVt b3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQo KTsgfSB9KTsgYnJlYWs7IGNhc2UgNDogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmZpbGUtPmZf ZGVudHJ5LT5kX2lub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf dG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21f XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp IDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6 ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDg6ICh7IHN3aXRj aCAoc2l6ZW9mKCooJigoKCZmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV93cml0ZWNvdW50KSkp LT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0 LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5 Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVs ICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsg YnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0p OyBicmVhazsgY2FzZSAxNjogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmZpbGUtPmZfZGVudHJ5 LT5kX2lub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6 ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192 b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJy IihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zv cl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGRlZmF1bHQ6IF90bXAgPSBfX2Jh ZF9pbmNyZW1lbnRfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyBicmVhazsgfSAoX190eXBlb2Zf XygqJigoKCZmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV93cml0ZWNvdW50KSkpLT5jb3VudGVy KSkgKF90bXAgKyAoKDEpKSk7IH0pIDogaWE2NF9hdG9taWNfYWRkKCgxKSwgKCgmZmlsZS0+Zl9k ZW50cnktPmRfaW5vZGUtPmlfd3JpdGVjb3VudCkpKSk7Cn0KZXh0ZXJuIGludCBkb19waXBlKGlu dCAqKTsKCmV4dGVybiBpbnQgb3Blbl9uYW1laShjb25zdCBjaGFyICosIGludCwgaW50LCBzdHJ1 Y3QgbmFtZWlkYXRhICopOwoKZXh0ZXJuIGludCBrZXJuZWxfcmVhZF9Sc21wX2Q5ZjM2NWVmKHN0 cnVjdCBmaWxlICosIHVuc2lnbmVkIGxvbmcsIGNoYXIgKiwgdW5zaWduZWQgbG9uZyk7CmV4dGVy biBzdHJ1Y3QgZmlsZSAqIG9wZW5fZXhlY19Sc21wX2M1ODkyNDYxKGNvbnN0IGNoYXIgKik7CgoK ZXh0ZXJuIGludCBpc19zdWJkaXJfUnNtcF8wYThjZDkwNChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVj dCBkZW50cnkgKik7CmV4dGVybiBpbm9fdCBmaW5kX2lub2RlX251bWJlcl9Sc21wX2Y1ZTRlZDQw KHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IHFzdHIgKik7CiMgMTIwNSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIgpzdGF0aWMgaW5saW5lIHZvaWQgKkVSUl9QVFIobG9u ZyBlcnJvcikKewogICAgICAgIHJldHVybiAodm9pZCAqKSBlcnJvcjsKfQoKc3RhdGljIGlubGlu ZSBsb25nIFBUUl9FUlIoY29uc3Qgdm9pZCAqcHRyKQp7CiAgICAgICAgcmV0dXJuIChsb25nKSBw dHI7Cn0KCnN0YXRpYyBpbmxpbmUgbG9uZyBJU19FUlIoY29uc3Qgdm9pZCAqcHRyKQp7CiAgICAg ICAgcmV0dXJuICh1bnNpZ25lZCBsb25nKXB0ciA+ICh1bnNpZ25lZCBsb25nKS0xMDAwTDsKfQoj IDEyMjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIKI2RlZmluZSBM T09LVVBfRk9MTE9XICgxKQojZGVmaW5lIExPT0tVUF9ESVJFQ1RPUlkgKDIpCiNkZWZpbmUgTE9P S1VQX0NPTlRJTlVFICg0KQojZGVmaW5lIExPT0tVUF9QT1NJVElWRSAoOCkKI2RlZmluZSBMT09L VVBfUEFSRU5UICgxNikKI2RlZmluZSBMT09LVVBfTk9BTFQgKDMyKQoKCgplbnVtIHtMQVNUX05P Uk0sIExBU1RfUk9PVCwgTEFTVF9ET1QsIExBU1RfRE9URE9ULCBMQVNUX0JJTkR9OwojIDEyNDcg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgICAgIHNpemVfdCB3cml0dGVuOwogICAgICAgIHNpemVfdCBjb3VudDsKICAgICAgICBj aGFyICogYnVmOwogICAgICAgIGludCBlcnJvcjsKfSByZWFkX2Rlc2NyaXB0b3JfdDsKCnR5cGVk ZWYgaW50ICgqcmVhZF9hY3Rvcl90KShyZWFkX2Rlc2NyaXB0b3JfdCAqLCBzdHJ1Y3QgcGFnZSAq LCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKCgpleHRlcm4gbG9mZl90IGRlZmF1bHRf bGxzZWVrX1JzbXBfZDJiYTIwNGIoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGlu dCBvcmlnaW4pOwoKZXh0ZXJuIGludCBfX3VzZXJfd2Fsa19Sc21wX2IzZDQxNzE0KGNvbnN0IGNo YXIgKiwgdW5zaWduZWQsIHN0cnVjdCBuYW1laWRhdGEgKik7CmV4dGVybiBpbnQgcGF0aF9pbml0 X1JzbXBfMDU0OWM0NmIoY29uc3QgY2hhciAqLCB1bnNpZ25lZCwgc3RydWN0IG5hbWVpZGF0YSAq KTsKZXh0ZXJuIGludCBwYXRoX3dhbGtfUnNtcF9kMGFhOTViZShjb25zdCBjaGFyICosIHN0cnVj dCBuYW1laWRhdGEgKik7CmV4dGVybiB2b2lkIHBhdGhfcmVsZWFzZV9Sc21wXzJjMTQ4M2FjKHN0 cnVjdCBuYW1laWRhdGEgKik7CmV4dGVybiBpbnQgZm9sbG93X2Rvd25fUnNtcF81YWUwM2U0Nihz dHJ1Y3QgdmZzbW91bnQgKiosIHN0cnVjdCBkZW50cnkgKiopOwpleHRlcm4gaW50IGZvbGxvd191 cF9Sc21wX2FkZTNhN2EyKHN0cnVjdCB2ZnNtb3VudCAqKiwgc3RydWN0IGRlbnRyeSAqKik7CmV4 dGVybiBzdHJ1Y3QgZGVudHJ5ICogbG9va3VwX29uZV9sZW5fUnNtcF9hMDA1ZDJkZChjb25zdCBj aGFyICosIHN0cnVjdCBkZW50cnkgKiwgaW50KTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBsb29r dXBfaGFzaF9Sc21wX2U0MGM4NWFmKHN0cnVjdCBxc3RyICosIHN0cnVjdCBkZW50cnkgKik7CiNk ZWZpbmUgdXNlcl9wYXRoX3dhbGsobmFtZSwgbmQpIF9fdXNlcl93YWxrKG5hbWUsIExPT0tVUF9G T0xMT1d8TE9PS1VQX1BPU0lUSVZFLCBuZCkKI2RlZmluZSB1c2VyX3BhdGhfd2Fsa19saW5rKG5h bWUsIG5kKSBfX3VzZXJfd2FsayhuYW1lLCBMT09LVVBfUE9TSVRJVkUsIG5kKQoKZXh0ZXJuIHZv aWQgaXB1dF9Sc21wXzVlZGJhNjJkKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHZvaWQgZm9yY2Vf ZGVsZXRlX1JzbXBfYzVlMWExNTQoc3RydWN0IGlub2RlICopOwpleHRlcm4gc3RydWN0IGlub2Rl ICogaWdyYWJfUnNtcF8yZDQzZTRhMyhzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBpbm9fdCBpdW5p cXVlX1JzbXBfMmRmN2UyMWIoc3RydWN0IHN1cGVyX2Jsb2NrICosIGlub190KTsKCnR5cGVkZWYg aW50ICgqZmluZF9pbm9kZV90KShzdHJ1Y3QgaW5vZGUgKiwgdW5zaWduZWQgbG9uZywgdm9pZCAq KTsKZXh0ZXJuIHN0cnVjdCBpbm9kZSAqIGlnZXQ0X1JzbXBfMTExY2M4YTEoc3RydWN0IHN1cGVy X2Jsb2NrICosIHVuc2lnbmVkIGxvbmcsIGZpbmRfaW5vZGVfdCwgdm9pZCAqKTsKc3RhdGljIGlu bGluZSBzdHJ1Y3QgaW5vZGUgKmlnZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdW5zaWduZWQg bG9uZyBpbm8pCnsKICAgICAgICByZXR1cm4gaWdldDRfUnNtcF8xMTFjYzhhMShzYiwgaW5vLCAo KHZvaWQgKikwKSwgKCh2b2lkICopMCkpOwp9CgpleHRlcm4gdm9pZCBjbGVhcl9pbm9kZV9Sc21w XzE1YjEyYTM3KHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHN0cnVjdCBpbm9kZSAqIGdldF9lbXB0 eV9pbm9kZV9Sc21wXzJiOWE3ZGVkKHZvaWQpOwpzdGF0aWMgaW5saW5lIHN0cnVjdCBpbm9kZSAq IG5ld19pbm9kZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQp7CiAgICAgICAgc3RydWN0IGlub2Rl ICppbm9kZSA9IGdldF9lbXB0eV9pbm9kZV9Sc21wXzJiOWE3ZGVkKCk7CiAgICAgICAgaWYgKGlu b2RlKSB7CiAgICAgICAgICAgICAgICBpbm9kZS0+aV9zYiA9IHNiOwogICAgICAgICAgICAgICAg aW5vZGUtPmlfZGV2ID0gc2ItPnNfZGV2OwogICAgICAgIH0KICAgICAgICByZXR1cm4gaW5vZGU7 Cn0KZXh0ZXJuIHZvaWQgcmVtb3ZlX3N1aWQoc3RydWN0IGlub2RlICppbm9kZSk7CgpleHRlcm4g dm9pZCBpbnNlcnRfaW5vZGVfaGFzaF9Sc21wXzVjNjRiMWY4KHN0cnVjdCBpbm9kZSAqKTsKZXh0 ZXJuIHZvaWQgcmVtb3ZlX2lub2RlX2hhc2hfUnNtcF9mYjgyNGUxMShzdHJ1Y3QgaW5vZGUgKik7 CmV4dGVybiBzdHJ1Y3QgZmlsZSAqIGdldF9lbXB0eV9maWxwX1JzbXBfMTkzMjVkODIodm9pZCk7 CmV4dGVybiB2b2lkIGZpbGVfbW92ZShzdHJ1Y3QgZmlsZSAqZiwgc3RydWN0IGxpc3RfaGVhZCAq bGlzdCk7CmV4dGVybiB2b2lkIGZpbGVfbW92ZXRvX1JzbXBfYzgzYTRkYWMoc3RydWN0IGZpbGUg Km5ldywgc3RydWN0IGZpbGUgKm9sZCk7CmV4dGVybiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBnZXRf aGFzaF90YWJsZV9Sc21wXzNhZTM2ZmVhKGtkZXZfdCwgaW50LCBpbnQpOwpleHRlcm4gc3RydWN0 IGJ1ZmZlcl9oZWFkICogZ2V0YmxrX1JzbXBfNDlhMWEzNTIoa2Rldl90LCBpbnQsIGludCk7CmV4 dGVybiB2b2lkIGxsX3J3X2Jsb2NrX1JzbXBfNGMyNWU5NWIoaW50LCBpbnQsIHN0cnVjdCBidWZm ZXJfaGVhZCAqIGJoW10pOwpleHRlcm4gdm9pZCBzdWJtaXRfYmhfUnNtcF9lZmExNzQ4MShpbnQs IHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKZXh0ZXJuIGludCBpc19yZWFkX29ubHlfUnNtcF83NDAy NzRjYShrZGV2X3QpOwpleHRlcm4gdm9pZCBfX2JyZWxzZV9Sc21wXzg2NThlN2ZmKHN0cnVjdCBi dWZmZXJfaGVhZCAqKTsKc3RhdGljIGlubGluZSB2b2lkIGJyZWxzZShzdHJ1Y3QgYnVmZmVyX2hl YWQgKmJ1ZikKewogICAgICAgIGlmIChidWYpCiAgICAgICAgICAgICAgICBfX2JyZWxzZV9Sc21w Xzg2NThlN2ZmKGJ1Zik7Cn0KZXh0ZXJuIHZvaWQgX19iZm9yZ2V0X1JzbXBfNmUwNTJiODcoc3Ry dWN0IGJ1ZmZlcl9oZWFkICopOwpzdGF0aWMgaW5saW5lIHZvaWQgYmZvcmdldChzdHJ1Y3QgYnVm ZmVyX2hlYWQgKmJ1ZikKewogICAgICAgIGlmIChidWYpCiAgICAgICAgICAgICAgICBfX2Jmb3Jn ZXRfUnNtcF82ZTA1MmI4NyhidWYpOwp9CmV4dGVybiB2b2lkIHNldF9ibG9ja3NpemVfUnNtcF9h ODQyNzIyYShrZGV2X3QsIGludCk7CmV4dGVybiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBicmVhZF9S c21wXzA5OWE5OTgzKGtkZXZfdCwgaW50LCBpbnQpOwpleHRlcm4gdm9pZCB3YWtldXBfYmRmbHVz aChpbnQgd2FpdCk7CgpleHRlcm4gaW50IGJyd19wYWdlX1JzbXBfMjBkYzYzNWMoaW50LCBzdHJ1 Y3QgcGFnZSAqLCBrZGV2X3QsIGludCBbXSwgaW50KTsKCnR5cGVkZWYgaW50IChnZXRfYmxvY2tf dCkoc3RydWN0IGlub2RlKixsb25nLHN0cnVjdCBidWZmZXJfaGVhZCosaW50KTsKCgpleHRlcm4g aW50IGJsb2NrX2ZsdXNocGFnZShzdHJ1Y3QgcGFnZSAqLCB1bnNpZ25lZCBsb25nKTsKZXh0ZXJu IGludCBibG9ja19zeW1saW5rX1JzbXBfNDY1MzY5OTIoc3RydWN0IGlub2RlICosIGNvbnN0IGNo YXIgKiwgaW50KTsKZXh0ZXJuIGludCBibG9ja193cml0ZV9mdWxsX3BhZ2VfUnNtcF83M2RjNTU2 ZihzdHJ1Y3QgcGFnZSosIGdldF9ibG9ja190Kik7CmV4dGVybiBpbnQgYmxvY2tfcmVhZF9mdWxs X3BhZ2VfUnNtcF9kMGI0ZDJkMShzdHJ1Y3QgcGFnZSosIGdldF9ibG9ja190Kik7CmV4dGVybiBp bnQgYmxvY2tfcHJlcGFyZV93cml0ZV9Sc21wX2RkNTdiZjZkKHN0cnVjdCBwYWdlKiwgdW5zaWdu ZWQsIHVuc2lnbmVkLCBnZXRfYmxvY2tfdCopOwpleHRlcm4gaW50IGNvbnRfcHJlcGFyZV93cml0 ZV9Sc21wXzMzZGJiYjBhKHN0cnVjdCBwYWdlKiwgdW5zaWduZWQsIHVuc2lnbmVkLCBnZXRfYmxv Y2tfdCosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAqKTsK ZXh0ZXJuIGludCBibG9ja19zeW5jX3BhZ2VfUnNtcF84YTI1ZjI5NihzdHJ1Y3QgcGFnZSAqKTsK CmludCBnZW5lcmljX2Jsb2NrX2JtYXBfUnNtcF8wMTlhZGQ5YyhzdHJ1Y3QgYWRkcmVzc19zcGFj ZSAqLCBsb25nLCBnZXRfYmxvY2tfdCAqKTsKaW50IGdlbmVyaWNfY29tbWl0X3dyaXRlX1JzbXBf Mzc3MzZjOTEoc3RydWN0IGZpbGUgKiwgc3RydWN0IHBhZ2UgKiwgdW5zaWduZWQsIHVuc2lnbmVk KTsKaW50IGJsb2NrX3RydW5jYXRlX3BhZ2VfUnNtcF85ZmM1Y2M0NChzdHJ1Y3QgYWRkcmVzc19z cGFjZSAqLCBsb2ZmX3QsIGdldF9ibG9ja190ICopOwoKZXh0ZXJuIGludCB3YWl0Zm9yX29uZV9w YWdlX1JzbXBfOGVmNmMzNTkoc3RydWN0IHBhZ2UqKTsKZXh0ZXJuIGludCBnZW5lcmljX2ZpbGVf bW1hcF9Sc21wX2I2NzkxMWM5KHN0cnVjdCBmaWxlICosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq KTsKZXh0ZXJuIGludCBmaWxlX3JlYWRfYWN0b3IocmVhZF9kZXNjcmlwdG9yX3QgKiBkZXNjLCBz dHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6 ZSk7CmV4dGVybiBzc2l6ZV90IGdlbmVyaWNfZmlsZV9yZWFkX1JzbXBfMTFjODdlZmYoc3RydWN0 IGZpbGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIHNzaXplX3QgZ2VuZXJp Y19maWxlX3dyaXRlX1JzbXBfZmIxNzg2MzYoc3RydWN0IGZpbGUgKiwgY29uc3QgY2hhciAqLCBz aXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIHZvaWQgZG9fZ2VuZXJpY19maWxlX3JlYWRfUnNtcF9m YTc5MGE2ZShzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QgKiwgcmVhZF9kZXNjcmlwdG9yX3QgKiwgcmVh ZF9hY3Rvcl90KTsKCmV4dGVybiBzc2l6ZV90IGdlbmVyaWNfcmVhZF9kaXJfUnNtcF80ZjZlOGQz MChzdHJ1Y3QgZmlsZSAqLCBjaGFyICosIHNpemVfdCwgbG9mZl90ICopOwoKZXh0ZXJuIHN0cnVj dCBmaWxlX29wZXJhdGlvbnMgZ2VuZXJpY19yb19mb3BzX1JzbXBfYzA5MTkxNmU7CgpleHRlcm4g aW50IHZmc19yZWFkbGlua19Sc21wXzcxNWMzMTQxKHN0cnVjdCBkZW50cnkgKiwgY2hhciAqLCBp bnQsIGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgdmZzX2ZvbGxvd19saW5rX1JzbXBfYTRmY2Rk ZjYoc3RydWN0IG5hbWVpZGF0YSAqLCBjb25zdCBjaGFyICopOwpleHRlcm4gaW50IHBhZ2VfcmVh ZGxpbmtfUnNtcF85ZDQ5NTJlNyhzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKiwgaW50KTsKZXh0ZXJu IGludCBwYWdlX2ZvbGxvd19saW5rX1JzbXBfZjliYmMwYjkoc3RydWN0IGRlbnRyeSAqLCBzdHJ1 Y3QgbmFtZWlkYXRhICopOwpleHRlcm4gc3RydWN0IGlub2RlX29wZXJhdGlvbnMgcGFnZV9zeW1s aW5rX2lub2RlX29wZXJhdGlvbnNfUnNtcF9iYzA5NjI4NDsKCmV4dGVybiBpbnQgdmZzX3JlYWRk aXJfUnNtcF83ZTg0YTY1MihzdHJ1Y3QgZmlsZSAqLCBmaWxsZGlyX3QsIHZvaWQgKik7CmV4dGVy biBpbnQgZGNhY2hlX3JlYWRkaXJfUnNtcF9iNDM3MDE2NihzdHJ1Y3QgZmlsZSAqLCB2b2lkICos IGZpbGxkaXJfdCk7CgpleHRlcm4gc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmdldF9mc190eXBl X1JzbXBfYTM3ZDQ1ZjIoY29uc3QgY2hhciAqbmFtZSk7CmV4dGVybiBzdHJ1Y3Qgc3VwZXJfYmxv Y2sgKmdldF9zdXBlcl9Sc21wXzg1MTMyZjNiKGtkZXZfdCk7CnN0YXRpYyBpbmxpbmUgaW50IGlz X21vdW50ZWQoa2Rldl90IGRldikKewogICAgICAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBn ZXRfc3VwZXJfUnNtcF84NTEzMmYzYihkZXYpOwogICAgICAgIGlmIChzYikgewoKICAgICAgICAg ICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgICByZXR1cm4gMDsKfQp1bnNpZ25lZCBs b25nIGdlbmVyYXRlX2NsdXN0ZXIoa2Rldl90LCBpbnQgYltdLCBpbnQpOwp1bnNpZ25lZCBsb25n IGdlbmVyYXRlX2NsdXN0ZXJfc3dhYjMyKGtkZXZfdCwgaW50IGJbXSwgaW50KTsKZXh0ZXJuIGtk ZXZfdCBST09UX0RFVl9Sc21wX2IzMjQ5NmU4OwpleHRlcm4gY2hhciByb290X2RldmljZV9uYW1l W107CgoKZXh0ZXJuIHZvaWQgc2hvd19idWZmZXJzKHZvaWQpOwpleHRlcm4gdm9pZCBtb3VudF9y b290KHZvaWQpOwoKCgoKCgpleHRlcm4gc3NpemVfdCBjaGFyX3JlYWQoc3RydWN0IGZpbGUgKiwg Y2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIHNzaXplX3QgYmxvY2tfcmVhZF9Sc21w XzEzZDA2NTBhKHN0cnVjdCBmaWxlICosIGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CmV4dGVy biBpbnQgcmVhZF9haGVhZF9Sc21wXzBhYmI3YjA3W107CgpleHRlcm4gc3NpemVfdCBjaGFyX3dy aXRlKHN0cnVjdCBmaWxlICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CmV4dGVy biBzc2l6ZV90IGJsb2NrX3dyaXRlX1JzbXBfNWVkOTc1ZDgoc3RydWN0IGZpbGUgKiwgY29uc3Qg Y2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKCmV4dGVybiBpbnQgZmlsZV9mc3luY19Sc21wXzE3 MGVjMzE3KHN0cnVjdCBmaWxlICosIHN0cnVjdCBkZW50cnkgKiwgaW50KTsKZXh0ZXJuIGludCBn ZW5lcmljX2J1ZmZlcl9mZGF0YXN5bmNfUnNtcF8zYmE0NjJjNChzdHJ1Y3QgaW5vZGUgKmlub2Rl LCB1bnNpZ25lZCBsb25nIHN0YXJ0X2lkeCwgdW5zaWduZWQgbG9uZyBlbmRfaWR4KTsKZXh0ZXJu IGludCBnZW5lcmljX29zeW5jX2lub2RlKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwoKZXh0ZXJuIGlu dCBpbm9kZV9jaGFuZ2Vfb2tfUnNtcF80MDRkMGM1NyhzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGlh dHRyICopOwpleHRlcm4gdm9pZCBpbm9kZV9zZXRhdHRyX1JzbXBfODBhMmNlYjgoc3RydWN0IGlu b2RlICosIHN0cnVjdCBpYXR0ciAqKTsKIyAxNDE3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L2ZzLmgiCnN0YXRpYyBpbmxpbmUgc3RydWN0IGRlbnRyeSAqbG9ja19wYXJlbnQo c3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiAgICAgICAgc3RydWN0IGRlbnRyeSAqZGlyID0gZGdl dChkZW50cnktPmRfcGFyZW50KTsKCiAgICAgICAgZG93bigmZGlyLT5kX2lub2RlLT5pX3NlbSk7 CiAgICAgICAgcmV0dXJuIGRpcjsKfQoKc3RhdGljIGlubGluZSBzdHJ1Y3QgZGVudHJ5ICpnZXRf cGFyZW50KHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogICAgICAgIHJldHVybiBkZ2V0KGRlbnRy eS0+ZF9wYXJlbnQpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQgdW5sb2NrX2RpcihzdHJ1Y3QgZGVu dHJ5ICpkaXIpCnsKICAgICAgICB1cCgmZGlyLT5kX2lub2RlLT5pX3NlbSk7CiAgICAgICAgZHB1 dF9Sc21wXzU3NGU2YmEzKGRpcik7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIHZvaWQgZG91YmxlX2Rv d24oc3RydWN0IHNlbWFwaG9yZSAqczEsIHN0cnVjdCBzZW1hcGhvcmUgKnMyKQp7CiAgICAgICAg aWYgKHMxICE9IHMyKSB7CiAgICAgICAgICAgICAgICBpZiAoKHVuc2lnbmVkIGxvbmcpIHMxIDwg KHVuc2lnbmVkIGxvbmcpIHMyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZW1h cGhvcmUgKnRtcCA9IHMyOwogICAgICAgICAgICAgICAgICAgICAgICBzMiA9IHMxOyBzMSA9IHRt cDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRvd24oczEpOwogICAgICAgIH0K ICAgICAgICBkb3duKHMyKTsKfQojIDE0NjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvZnMuaCIKc3RhdGljIGlubGluZSB2b2lkIHRyaXBsZV9kb3duKHN0cnVjdCBzZW1hcGhv cmUgKnMxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNlbWFwaG9yZSAq czIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlICpzMykK ewogICAgICAgIGlmIChzMSAhPSBzMikgewogICAgICAgICAgICAgICAgaWYgKCh1bnNpZ25lZCBs b25nKSBzMSA8ICh1bnNpZ25lZCBsb25nKSBzMikgewogICAgICAgICAgICAgICAgICAgICAgICBp ZiAoKHVuc2lnbmVkIGxvbmcpIHMxIDwgKHVuc2lnbmVkIGxvbmcpIHMzKSB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNlbWFwaG9yZSAqdG1wID0gczM7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgczMgPSBzMTsgczEgPSB0bXA7CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh1bnNpZ25lZCBsb25nKSBz MSA8ICh1bnNpZ25lZCBsb25nKSBzMikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBzZW1hcGhvcmUgKnRtcCA9IHMyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHMyID0gczE7IHMxID0gdG1wOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHVuc2lnbmVkIGxv bmcpIHMxIDwgKHVuc2lnbmVkIGxvbmcpIHMzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHNlbWFwaG9yZSAqdG1wID0gczM7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgczMgPSBzMTsgczEgPSB0bXA7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKCh1bnNpZ25lZCBsb25nKSBzMiA8ICh1bnNpZ25lZCBs b25nKSBzMykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZW1hcGhv cmUgKnRtcCA9IHMzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMzID0gczI7IHMy ID0gdG1wOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICBkb3duKHMxKTsKICAgICAgICB9IGVsc2UgaWYgKCh1bnNpZ25lZCBsb25nKSBz MiA8ICh1bnNpZ25lZCBsb25nKSBzMykgewogICAgICAgICAgICAgICAgc3RydWN0IHNlbWFwaG9y ZSAqdG1wID0gczM7CiAgICAgICAgICAgICAgICBzMyA9IHMyOyBzMiA9IHRtcDsKICAgICAgICB9 CiAgICAgICAgZG93bihzMik7CiAgICAgICAgZG93bihzMyk7Cn0KCnN0YXRpYyBpbmxpbmUgdm9p ZCBkb3VibGVfdXAoc3RydWN0IHNlbWFwaG9yZSAqczEsIHN0cnVjdCBzZW1hcGhvcmUgKnMyKQp7 CiAgICAgICAgdXAoczEpOwogICAgICAgIGlmIChzMSAhPSBzMikKICAgICAgICAgICAgICAgIHVw KHMyKTsKfQoKc3RhdGljIGlubGluZSB2b2lkIHRyaXBsZV91cChzdHJ1Y3Qgc2VtYXBob3JlICpz MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlICpzMiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlICpzMykKewogICAgICAg IHVwKHMxKTsKICAgICAgICBpZiAoczEgIT0gczIpCiAgICAgICAgICAgICAgICB1cChzMik7CiAg ICAgICAgdXAoczMpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQgZG91YmxlX2xvY2soc3RydWN0IGRl bnRyeSAqZDEsIHN0cnVjdCBkZW50cnkgKmQyKQp7CiAgICAgICAgZG91YmxlX2Rvd24oJmQxLT5k X2lub2RlLT5pX3NlbSwgJmQyLT5kX2lub2RlLT5pX3NlbSk7Cn0KCnN0YXRpYyBpbmxpbmUgdm9p ZCBkb3VibGVfdW5sb2NrKHN0cnVjdCBkZW50cnkgKmQxLCBzdHJ1Y3QgZGVudHJ5ICpkMikKewog ICAgICAgIGRvdWJsZV91cCgmZDEtPmRfaW5vZGUtPmlfc2VtLCZkMi0+ZF9pbm9kZS0+aV9zZW0p OwogICAgICAgIGRwdXRfUnNtcF81NzRlNmJhMyhkMSk7CiAgICAgICAgZHB1dF9Sc21wXzU3NGU2 YmEzKGQyKTsKfQojIDE2ICJmcy91ZGYvdWRmZGVjbC5oIiAyCgoKCgoKCgojZGVmaW5lIHVkZl9m aXhlZF90b192YXJpYWJsZSh4KSAoICggKCAoeCkgPj4gNSApICogMzkgKSArICggKHgpICYgMHgw MDAwMDAxRiApICkKI2RlZmluZSB1ZGZfdmFyaWFibGVfdG9fZml4ZWQoeCkgKCAoICggKHgpIC8g MzkgKSA8PCA1ICkgKyAoICh4KSAlIDM5ICkgKQoKI2RlZmluZSBDVVJSRU5UX1VUSU1FICh4dGlt ZS50dl91c2VjKQoKI2RlZmluZSB1ZGZfZmlsZV9lbnRyeV9hbGxvY19vZmZzZXQoaW5vZGUpICgo VURGX0lfRVhURU5ERURfRkUoaW5vZGUpID8gc2l6ZW9mKHN0cnVjdCBFeHRlbmRlZEZpbGVFbnRy eSkgOiBzaXplb2Yoc3RydWN0IEZpbGVFbnRyeSkpICsgVURGX0lfTEVORUFUVFIoaW5vZGUpKQoK CgoKI2RlZmluZSB1ZGZfZXh0MF9vZmZzZXQoaW5vZGUpIChVREZfSV9BTExPQ1RZUEUoaW5vZGUp ID09IElDQl9GTEFHX0FEX0lOX0lDQiA/IHVkZl9maWxlX2VudHJ5X2FsbG9jX29mZnNldChpbm9k ZSkgOiAwKQoKCgojZGVmaW5lIHVkZl9nZXRfbGJfcGJsb2NrKHNiLCBsb2MsIG9mZnNldCkgdWRm X2dldF9wYmxvY2soKHNiKSwgKGxvYykubG9naWNhbEJsb2NrTnVtLCAobG9jKS5wYXJ0aXRpb25S ZWZlcmVuY2VOdW0sIChvZmZzZXQpKQojIDQ5ICJmcy91ZGYvdWRmZGVjbC5oIgpzdHJ1Y3QgZGVu dHJ5OwpzdHJ1Y3QgaW5vZGU7CnN0cnVjdCB0YXNrX3N0cnVjdDsKc3RydWN0IGJ1ZmZlcl9oZWFk OwpzdHJ1Y3Qgc3VwZXJfYmxvY2s7CgpleHRlcm4gc3RydWN0IGlub2RlX29wZXJhdGlvbnMgdWRm X2Rpcl9pbm9kZV9vcGVyYXRpb25zOwpleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB1ZGZf ZGlyX29wZXJhdGlvbnM7CmV4dGVybiBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyB1ZGZfZmlsZV9p bm9kZV9vcGVyYXRpb25zOwpleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB1ZGZfZmlsZV9v cGVyYXRpb25zOwpleHRlcm4gc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyB1ZGZfYW9w czsKZXh0ZXJuIHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgdWRmX2FkaW5pY2JfYW9w czsKZXh0ZXJuIHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgdWRmX3N5bWxpbmtfYW9w czsKCnN0cnVjdCB1ZGZfZmlsZWlkZW50X2JoCnsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQg KnNiaDsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmViaDsKICAgICAgICBpbnQgc29mZnNl dDsKICAgICAgICBpbnQgZW9mZnNldDsKfTsKCgoKc3RydWN0IHVkZl9kaXJlY3RvcnlfcmVjb3Jk CnsKICAgICAgICBfX3UzMiBkX3BhcmVudDsKICAgICAgICBfX3UzMiBkX2lub2RlOwogICAgICAg IF9fdTMyIGRfbmFtZVsyNTVdOwp9OwoKCnN0cnVjdCB1ZGZfdmRzX3JlY29yZAp7CiAgICAgICAg X191MzIgYmxvY2s7CiAgICAgICAgX191MzIgdm9sRGVzY1NlcU51bTsKfTsKCnN0cnVjdCBrdG0K ewogICAgICAgIGludCB0bV9zZWM7CiAgICAgICAgaW50IHRtX21pbjsKICAgICAgICBpbnQgdG1f aG91cjsKICAgICAgICBpbnQgdG1fbWRheTsKICAgICAgICBpbnQgdG1fbW9uOwogICAgICAgIGlu dCB0bV95ZWFyOwogICAgICAgIGludCB0bV9pc2RzdDsKfTsKCnN0cnVjdCB1c3RyCnsKICAgICAg ICBfX3U4IHVfY21wSUQ7CiAgICAgICAgX191OCB1X25hbWVbMjU1XTsKICAgICAgICBfX3U4IHVf bGVuOwogICAgICAgIF9fdTggcGFkZGluZzsKICAgICAgICB1bnNpZ25lZCBsb25nIHVfaGFzaDsK fTsKCgoKCmV4dGVybiB2b2lkIHVkZl9lcnJvcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgY29uc3Qg Y2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7CmV4dGVybiB2b2lkIHVkZl93YXJuaW5nKHN0cnVj dCBzdXBlcl9ibG9jayAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKCgpleHRl cm4gaW50IHVkZl93cml0ZV9maShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgRmlsZUlkZW50 RGVzYyAqLCBzdHJ1Y3QgRmlsZUlkZW50RGVzYyAqLCBzdHJ1Y3QgdWRmX2ZpbGVpZGVudF9iaCAq LCBfX3U4ICosIF9fdTggKik7CgoKZXh0ZXJuIGludCB1ZGZfaW9jdGwoc3RydWN0IGlub2RlICos IHN0cnVjdCBmaWxlICosIHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CgoKZXh0ZXJuIHN0 cnVjdCBpbm9kZSAqdWRmX2lnZXQoc3RydWN0IHN1cGVyX2Jsb2NrICosIGxiX2FkZHIpOwpleHRl cm4gaW50IHVkZl9zeW5jX2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHZvaWQgdWRmX2V4 cGFuZF9maWxlX2FkaW5pY2Ioc3RydWN0IGlub2RlICosIGludCwgaW50ICopOwpleHRlcm4gc3Ry dWN0IGJ1ZmZlcl9oZWFkICogdWRmX2V4cGFuZF9kaXJfYWRpbmljYihzdHJ1Y3QgaW5vZGUgKiwg aW50ICosIGludCAqKTsKZXh0ZXJuIHN0cnVjdCBidWZmZXJfaGVhZCAqIHVkZl9nZXRibGsoc3Ry dWN0IGlub2RlICosIGxvbmcsIGludCwgaW50ICopOwpleHRlcm4gc3RydWN0IGJ1ZmZlcl9oZWFk ICogdWRmX2JyZWFkKHN0cnVjdCBpbm9kZSAqLCBpbnQsIGludCwgaW50ICopOwpleHRlcm4gdm9p ZCB1ZGZfdHJ1bmNhdGUoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCB1ZGZfcmVhZF9pbm9k ZShzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIHVkZl9wdXRfaW5vZGUoc3RydWN0IGlub2Rl ICopOwpleHRlcm4gdm9pZCB1ZGZfZGVsZXRlX2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJu IHZvaWQgdWRmX3dyaXRlX2lub2RlKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwpleHRlcm4gbG9uZyB1 ZGZfYmxvY2tfbWFwKHN0cnVjdCBpbm9kZSAqLCBsb25nKTsKZXh0ZXJuIGludCBpbm9kZV9ibWFw KHN0cnVjdCBpbm9kZSAqLCBpbnQsIGxiX2FkZHIgKiwgX191MzIgKiwgbGJfYWRkciAqLCBfX3Uz MiAqLCBfX3UzMiAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiopOwpleHRlcm4gaW50IHVkZl9hZGRf YWV4dChzdHJ1Y3QgaW5vZGUgKiwgbGJfYWRkciAqLCBpbnQgKiwgbGJfYWRkciwgX191MzIsIHN0 cnVjdCBidWZmZXJfaGVhZCAqKiwgaW50KTsKZXh0ZXJuIGludCB1ZGZfd3JpdGVfYWV4dChzdHJ1 Y3QgaW5vZGUgKiwgbGJfYWRkciwgaW50ICosIGxiX2FkZHIsIF9fdTMyLCBzdHJ1Y3QgYnVmZmVy X2hlYWQgKiwgaW50KTsKZXh0ZXJuIGludCB1ZGZfaW5zZXJ0X2FleHQoc3RydWN0IGlub2RlICos IGxiX2FkZHIsIGludCwgbGJfYWRkciwgX191MzIsIHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKZXh0 ZXJuIGludCB1ZGZfZGVsZXRlX2FleHQoc3RydWN0IGlub2RlICosIGxiX2FkZHIsIGludCwgbGJf YWRkciwgX191MzIsIHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKZXh0ZXJuIGludCB1ZGZfbmV4dF9h ZXh0KHN0cnVjdCBpbm9kZSAqLCBsYl9hZGRyICosIGludCAqLCBsYl9hZGRyICosIF9fdTMyICos IHN0cnVjdCBidWZmZXJfaGVhZCAqKiwgaW50KTsKZXh0ZXJuIGludCB1ZGZfY3VycmVudF9hZXh0 KHN0cnVjdCBpbm9kZSAqLCBsYl9hZGRyICosIGludCAqLCBsYl9hZGRyICosIF9fdTMyICosIHN0 cnVjdCBidWZmZXJfaGVhZCAqKiwgaW50KTsKZXh0ZXJuIHZvaWQgdWRmX2Rpc2NhcmRfcHJlYWxs b2Moc3RydWN0IGlub2RlICopOwoKCmV4dGVybiBpbnQgdWRmX3JlYWRfdGFnZ2VkX2RhdGEoY2hh ciAqLCBpbnQgc2l6ZSwgaW50IGZkLCBpbnQgYmxvY2ssIGludCBwYXJ0cmVmKTsKZXh0ZXJuIHN0 cnVjdCBidWZmZXJfaGVhZCAqdWRmX3RnZXRibGsoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCwg aW50KTsKZXh0ZXJuIHN0cnVjdCBidWZmZXJfaGVhZCAqdWRmX3RyZWFkKHN0cnVjdCBzdXBlcl9i bG9jayAqLCBpbnQsIGludCk7CmV4dGVybiBzdHJ1Y3QgR2VuZXJpY0F0dHJGb3JtYXQgKnVkZl9h ZGRfZXh0ZW5kZWRhdHRyKHN0cnVjdCBpbm9kZSAqLCBfX3UzMiwgX191MzIsIF9fdTgsIHN0cnVj dCBidWZmZXJfaGVhZCAqKik7CmV4dGVybiBzdHJ1Y3QgR2VuZXJpY0F0dHJGb3JtYXQgKnVkZl9n ZXRfZXh0ZW5kZWRhdHRyKHN0cnVjdCBpbm9kZSAqLCBfX3UzMiwgX191OCwgc3RydWN0IGJ1ZmZl cl9oZWFkICoqKTsKZXh0ZXJuIHN0cnVjdCBidWZmZXJfaGVhZCAqdWRmX3JlYWRfdGFnZ2VkKHN0 cnVjdCBzdXBlcl9ibG9jayAqLCBfX3UzMiwgX191MzIsIF9fdTE2ICopOwpleHRlcm4gc3RydWN0 IGJ1ZmZlcl9oZWFkICp1ZGZfcmVhZF9wdGFnZ2VkKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBsYl9h ZGRyLCBfX3UzMiwgX191MTYgKik7CmV4dGVybiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKnVkZl9yZWFk X3VudGFnZ2VkKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBfX3UzMiwgX191MzIpOwpleHRlcm4gdm9p ZCB1ZGZfcmVsZWFzZV9kYXRhKHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKCgpleHRlcm4gdW5zaWdu ZWQgaW50IHVkZl9nZXRfbGFzdF9zZXNzaW9uKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKZXh0ZXJu IHVuc2lnbmVkIGludCB1ZGZfZ2V0X2xhc3RfYmxvY2soc3RydWN0IHN1cGVyX2Jsb2NrICopOwoK CmV4dGVybiBfX3UzMiB1ZGZfZ2V0X3BibG9jayhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgX191MzIs IF9fdTE2LCBfX3UzMik7CmV4dGVybiBfX3UzMiB1ZGZfZ2V0X3BibG9ja192aXJ0MTUoc3RydWN0 IHN1cGVyX2Jsb2NrICosIF9fdTMyLCBfX3UxNiwgX191MzIpOwpleHRlcm4gX191MzIgdWRmX2dl dF9wYmxvY2tfdmlydDIwKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBfX3UzMiwgX191MTYsIF9fdTMy KTsKZXh0ZXJuIF9fdTMyIHVkZl9nZXRfcGJsb2NrX3NwYXIxNShzdHJ1Y3Qgc3VwZXJfYmxvY2sg KiwgX191MzIsIF9fdTE2LCBfX3UzMik7CmV4dGVybiBpbnQgdWRmX3JlbG9jYXRlX2Jsb2Nrcyhz dHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgbG9uZywgbG9uZyAqKTsKCgpleHRlcm4gaW50IHVkZl9nZXRf ZmlsZW5hbWUoc3RydWN0IHN1cGVyX2Jsb2NrICosIF9fdTggKiwgX191OCAqLCBpbnQpOwoKCmV4 dGVybiB2b2lkIHVkZl9mcmVlX2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHN0cnVjdCBp bm9kZSAqIHVkZl9uZXdfaW5vZGUgKGNvbnN0IHN0cnVjdCBpbm9kZSAqLCBpbnQsIGludCAqKTsK CgpleHRlcm4gdm9pZCB1ZGZfdHJ1bmNhdGVfZXh0ZW50cyhzdHJ1Y3QgaW5vZGUgKik7CgoKZXh0 ZXJuIHZvaWQgdWRmX2ZyZWVfYmxvY2tzKGNvbnN0IHN0cnVjdCBpbm9kZSAqLCBsYl9hZGRyLCBf X3UzMiwgX191MzIpOwpleHRlcm4gaW50IHVkZl9wcmVhbGxvY19ibG9ja3MoY29uc3Qgc3RydWN0 IGlub2RlICosIF9fdTE2LCBfX3UzMiwgX191MzIpOwpleHRlcm4gaW50IHVkZl9uZXdfYmxvY2so Y29uc3Qgc3RydWN0IGlub2RlICosIF9fdTE2LCBfX3UzMiwgaW50ICopOwoKCmV4dGVybiBpbnQg dWRmX2ZzeW5jX2ZpbGUoc3RydWN0IGZpbGUgKiwgc3RydWN0IGRlbnRyeSAqLCBpbnQpOwpleHRl cm4gaW50IHVkZl9mc3luY19pbm9kZShzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKCgpleHRlcm4gX191 OCAqIHVkZl9maWxlYWRfcmVhZChzdHJ1Y3QgaW5vZGUgKiwgX191OCAqLCBfX3U4LCBsYl9hZGRy LCBpbnQgKiwgaW50ICosIHN0cnVjdCBidWZmZXJfaGVhZCAqKiwgaW50ICopOwpleHRlcm4gc3Ry dWN0IEZpbGVJZGVudERlc2MgKiB1ZGZfZmlsZWlkZW50X3JlYWQoc3RydWN0IGlub2RlICosIGxv ZmZfdCAqLCBzdHJ1Y3QgdWRmX2ZpbGVpZGVudF9iaCAqLCBzdHJ1Y3QgRmlsZUlkZW50RGVzYyAq LCBsYl9hZGRyICosIF9fdTMyICosIGxiX2FkZHIgKiwgX191MzIgKiwgX191MzIgKiwgc3RydWN0 IGJ1ZmZlcl9oZWFkICoqKTsKCgoKCgoKZXh0ZXJuIGludCB1ZGZfdXN0cl90b19kY2hhcnMoX191 OCAqLCBjb25zdCBzdHJ1Y3QgdXN0ciAqLCBpbnQpOwpleHRlcm4gaW50IHVkZl91c3RyX3RvX2No YXIoX191OCAqLCBjb25zdCBzdHJ1Y3QgdXN0ciAqLCBpbnQpOwpleHRlcm4gaW50IHVkZl91c3Ry X3RvX2RzdHJpbmcoZHN0cmluZyAqLCBjb25zdCBzdHJ1Y3QgdXN0ciAqLCBpbnQpOwpleHRlcm4g aW50IHVkZl9kY2hhcnNfdG9fdXN0cihzdHJ1Y3QgdXN0ciAqLCBjb25zdCBfX3U4ICosIGludCk7 CmV4dGVybiBpbnQgdWRmX2NoYXJfdG9fdXN0cihzdHJ1Y3QgdXN0ciAqLCBjb25zdCBfX3U4ICos IGludCk7CmV4dGVybiBpbnQgdWRmX2RzdHJpbmdfdG9fdXN0cihzdHJ1Y3QgdXN0ciAqLCBjb25z dCBkc3RyaW5nICosIGludCk7CmV4dGVybiBpbnQgdWRmX3RyYW5zbGF0ZV90b19saW51eChfX3U4 ICosIF9fdTggKiwgaW50LCBfX3U4ICosIGludCk7CmV4dGVybiBpbnQgdWRmX2J1aWxkX3VzdHIo c3RydWN0IHVzdHIgKiwgZHN0cmluZyAqLCBpbnQpOwpleHRlcm4gaW50IHVkZl9idWlsZF91c3Ry X2V4YWN0KHN0cnVjdCB1c3RyICosIGRzdHJpbmcgKiwgaW50KTsKZXh0ZXJuIGludCB1ZGZfQ1Mw dG9VVEY4KHN0cnVjdCB1c3RyICosIHN0cnVjdCB1c3RyICopOwpleHRlcm4gaW50IHVkZl9VVEY4 dG9DUzAoZHN0cmluZyAqLCBzdHJ1Y3QgdXN0ciAqLCBpbnQpOwoKZXh0ZXJuIGludCB1ZGZfQ1Mw dG9OTFMoc3RydWN0IG5sc190YWJsZSAqLCBzdHJ1Y3QgdXN0ciAqLCBzdHJ1Y3QgdXN0ciAqKTsK ZXh0ZXJuIGludCB1ZGZfTkxTdG9DUzAoc3RydWN0IG5sc190YWJsZSAqLCBkc3RyaW5nICosIHN0 cnVjdCB1c3RyICosIGludCk7CgoKCmV4dGVybiBfX3UxNiB1ZGZfY3JjKF9fdTggKiwgX191MzIs IF9fdTE2KTsKCgpleHRlcm4gX191MzIgdWRmNjRfbG93MzIoX191NjQpOwpleHRlcm4gX191MzIg dWRmNjRfaGlnaDMyKF9fdTY0KTsKZXh0ZXJuIHZvaWQgdWRmX3VwZGF0ZV90YWcoY2hhciAqLCBp bnQpOwpleHRlcm4gdm9pZCB1ZGZfbmV3X3RhZyhjaGFyICosIF9fdTE2LCBfX3UxNiwgX191MTYs IF9fdTMyLCBpbnQpOwoKCmV4dGVybiB0aW1lX3QgKnVkZl9zdGFtcF90b190aW1lKHRpbWVfdCAq LCBsb25nICosIHRpbWVzdGFtcCk7CmV4dGVybiB0aW1lc3RhbXAgKnVkZl90aW1lX3RvX3N0YW1w KHRpbWVzdGFtcCAqLCB0aW1lX3QsIGxvbmcpOwpleHRlcm4gdGltZV90IHVkZl9jb252ZXJ0dGlt ZSAoc3RydWN0IGt0bSAqKTsKCgpleHRlcm4gc3RydWN0IEZpbGVJZGVudERlc2MgKiB1ZGZfZ2V0 X2ZpbGVpZGVudCh2b2lkICogYnVmZmVyLCBpbnQgYnVmc2l6ZSwgaW50ICogb2Zmc2V0KTsKZXh0 ZXJuIGV4dGVudF9hZCAqIHVkZl9nZXRfZmlsZWV4dGVudCh2b2lkICogYnVmZmVyLCBpbnQgYnVm c2l6ZSwgaW50ICogb2Zmc2V0KTsKZXh0ZXJuIGxvbmdfYWQgKiB1ZGZfZ2V0X2ZpbGVsb25nYWQo dm9pZCAqIGJ1ZmZlciwgaW50IGJ1ZnNpemUsIGludCAqIG9mZnNldCwgaW50KTsKZXh0ZXJuIHNo b3J0X2FkICogdWRmX2dldF9maWxlc2hvcnRhZCh2b2lkICogYnVmZmVyLCBpbnQgYnVmc2l6ZSwg aW50ICogb2Zmc2V0LCBpbnQpOwpleHRlcm4gX191OCAqIHVkZl9nZXRfZmlsZWFkKHN0cnVjdCBG aWxlRW50cnkgKiwgX191OCAqLCBpbnQsIGludCwgaW50LCBpbnQgKik7CiMgNDcgImZzL3VkZi9z dXBlci5jIiAyCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmln LmgiIDEKIyA0OSAiZnMvdWRmL3N1cGVyLmMiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L3ZlcnNpb24uaCIgMQojZGVmaW5lIFVUU19SRUxFQVNFICIyLjQuNyIKI2Rl ZmluZSBMSU5VWF9WRVJTSU9OX0NPREUgMTMyMTAzCiNkZWZpbmUgS0VSTkVMX1ZFUlNJT04oYSwg YiwgYykgKCgoYSkgPDwgMTYpICsgKChiKSA8PCA4KSArIChjKSkKIyA1MCAiZnMvdWRmL3N1cGVy LmMiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oIiAx CgojZGVmaW5lIF9MSU5VWF9CTEtERVZfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L21ham9yLmgiIDEKCiNkZWZpbmUgX0xJTlVYX01BSk9SX0gKIyAxNSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tYWpvci5oIgojZGVmaW5lIE1BWF9DSFJERVYg MjU1CiNkZWZpbmUgTUFYX0JMS0RFViAyNTUKCiNkZWZpbmUgVU5OQU1FRF9NQUpPUiAwCiNkZWZp bmUgTUVNX01BSk9SIDEKI2RlZmluZSBSQU1ESVNLX01BSk9SIDEKI2RlZmluZSBGTE9QUFlfTUFK T1IgMgojZGVmaW5lIFBUWV9NQVNURVJfTUFKT1IgMgojZGVmaW5lIElERTBfTUFKT1IgMwojZGVm aW5lIFBUWV9TTEFWRV9NQUpPUiAzCiNkZWZpbmUgSERfTUFKT1IgSURFMF9NQUpPUgojZGVmaW5l IFRUWV9NQUpPUiA0CiNkZWZpbmUgVFRZQVVYX01BSk9SIDUKI2RlZmluZSBMUF9NQUpPUiA2CiNk ZWZpbmUgVkNTX01BSk9SIDcKI2RlZmluZSBMT09QX01BSk9SIDcKI2RlZmluZSBTQ1NJX0RJU0sw X01BSk9SIDgKI2RlZmluZSBTQ1NJX1RBUEVfTUFKT1IgOQojZGVmaW5lIE1EX01BSk9SIDkKI2Rl ZmluZSBNSVNDX01BSk9SIDEwCiNkZWZpbmUgU0NTSV9DRFJPTV9NQUpPUiAxMQojZGVmaW5lIFFJ QzAyX1RBUEVfTUFKT1IgMTIKI2RlZmluZSBYVF9ESVNLX01BSk9SIDEzCiNkZWZpbmUgU09VTkRf TUFKT1IgMTQKI2RlZmluZSBDRFUzMUFfQ0RST01fTUFKT1IgMTUKI2RlZmluZSBKT1lTVElDS19N QUpPUiAxNQojZGVmaW5lIEdPTERTVEFSX0NEUk9NX01BSk9SIDE2CiNkZWZpbmUgT1BUSUNTX0NE Uk9NX01BSk9SIDE3CiNkZWZpbmUgU0FOWU9fQ0RST01fTUFKT1IgMTgKI2RlZmluZSBDWUNMQURF U19NQUpPUiAxOQojZGVmaW5lIENZQ0xBREVTQVVYX01BSk9SIDIwCiNkZWZpbmUgTUlUU1VNSV9Y X0NEUk9NX01BSk9SIDIwCiNkZWZpbmUgTUZNX0FDT1JOX01BSk9SIDIxCiNkZWZpbmUgU0NTSV9H RU5FUklDX01BSk9SIDIxCiNkZWZpbmUgWjg1MzBfTUFKT1IgMzQKI2RlZmluZSBESUdJX01BSk9S IDIzCiNkZWZpbmUgSURFMV9NQUpPUiAyMgojZGVmaW5lIERJR0lDVV9NQUpPUiAyMgojZGVmaW5l IE1JVFNVTUlfQ0RST01fTUFKT1IgMjMKI2RlZmluZSBDRFU1MzVfQ0RST01fTUFKT1IgMjQKI2Rl ZmluZSBTVExfU0VSSUFMTUFKT1IgMjQKI2RlZmluZSBNQVRTVVNISVRBX0NEUk9NX01BSk9SIDI1 CiNkZWZpbmUgU1RMX0NBTExPVVRNQUpPUiAyNQojZGVmaW5lIE1BVFNVU0hJVEFfQ0RST00yX01B Sk9SIDI2CiNkZWZpbmUgUUlDMTE3X1RBUEVfTUFKT1IgMjcKI2RlZmluZSBNQVRTVVNISVRBX0NE Uk9NM19NQUpPUiAyNwojZGVmaW5lIE1BVFNVU0hJVEFfQ0RST000X01BSk9SIDI4CiNkZWZpbmUg U1RMX1NJT01FTU1BSk9SIDI4CiNkZWZpbmUgQUNTSV9NQUpPUiAyOAojZGVmaW5lIEFaVEVDSF9D RFJPTV9NQUpPUiAyOQojZGVmaW5lIEdSQVBIREVWX01BSk9SIDI5CiNkZWZpbmUgU0hNSVFfTUFK T1IgODUKI2RlZmluZSBDTTIwNl9DRFJPTV9NQUpPUiAzMgojZGVmaW5lIElERTJfTUFKT1IgMzMK I2RlZmluZSBJREUzX01BSk9SIDM0CiNkZWZpbmUgWFBSQU1fTUFKT1IgMzUKCiNkZWZpbmUgTkVU TElOS19NQUpPUiAzNgojZGVmaW5lIFBTMkVTRElfTUFKT1IgMzYKI2RlZmluZSBJREVUQVBFX01B Sk9SIDM3CiNkZWZpbmUgWjJSQU1fTUFKT1IgMzcKI2RlZmluZSBBUEJMT0NLX01BSk9SIDM4CiNk ZWZpbmUgRERWX01BSk9SIDM5CiNkZWZpbmUgTkJEX01BSk9SIDQzCiNkZWZpbmUgUklTQ09NOF9O T1JNQUxfTUFKT1IgNDgKI2RlZmluZSBEQUM5NjBfTUFKT1IgNDgKI2RlZmluZSBSSVNDT004X0NB TExPVVRfTUFKT1IgNDkKI2RlZmluZSBNS0lTU19NQUpPUiA1NQojZGVmaW5lIERTUDU2S19NQUpP UiA1NQoKI2RlZmluZSBJREU0X01BSk9SIDU2CiNkZWZpbmUgSURFNV9NQUpPUiA1NwoKI2RlZmlu ZSBMVk1fQkxLX01BSk9SIDU4CgojZGVmaW5lIFNDU0lfRElTSzFfTUFKT1IgNjUKI2RlZmluZSBT Q1NJX0RJU0syX01BSk9SIDY2CiNkZWZpbmUgU0NTSV9ESVNLM19NQUpPUiA2NwojZGVmaW5lIFND U0lfRElTSzRfTUFKT1IgNjgKI2RlZmluZSBTQ1NJX0RJU0s1X01BSk9SIDY5CiNkZWZpbmUgU0NT SV9ESVNLNl9NQUpPUiA3MAojZGVmaW5lIFNDU0lfRElTSzdfTUFKT1IgNzEKCgojZGVmaW5lIENP TVBBUV9TTUFSVDJfTUFKT1IgNzIKI2RlZmluZSBDT01QQVFfU01BUlQyX01BSk9SMSA3MwojZGVm aW5lIENPTVBBUV9TTUFSVDJfTUFKT1IyIDc0CiNkZWZpbmUgQ09NUEFRX1NNQVJUMl9NQUpPUjMg NzUKI2RlZmluZSBDT01QQVFfU01BUlQyX01BSk9SNCA3NgojZGVmaW5lIENPTVBBUV9TTUFSVDJf TUFKT1I1IDc3CiNkZWZpbmUgQ09NUEFRX1NNQVJUMl9NQUpPUjYgNzgKI2RlZmluZSBDT01QQVFf U01BUlQyX01BSk9SNyA3OQoKI2RlZmluZSBTUEVDSUFMSVhfTk9STUFMX01BSk9SIDc1CiNkZWZp bmUgU1BFQ0lBTElYX0NBTExPVVRfTUFKT1IgNzYKCiNkZWZpbmUgQ09NUEFRX0NJU1NfTUFKT1Ig MTA0CiNkZWZpbmUgQ09NUEFRX0NJU1NfTUFKT1IxIDEwNQojZGVmaW5lIENPTVBBUV9DSVNTX01B Sk9SMiAxMDYKI2RlZmluZSBDT01QQVFfQ0lTU19NQUpPUjMgMTA3CiNkZWZpbmUgQ09NUEFRX0NJ U1NfTUFKT1I0IDEwOAojZGVmaW5lIENPTVBBUV9DSVNTX01BSk9SNSAxMDkKI2RlZmluZSBDT01Q QVFfQ0lTU19NQUpPUjYgMTEwCiNkZWZpbmUgQ09NUEFRX0NJU1NfTUFKT1I3IDExMQoKI2RlZmlu ZSBEQVNEX01BSk9SIDk0CgojZGVmaW5lIE1ESVNLX01BSk9SIDk1CgojZGVmaW5lIEkyT19NQUpP UiA4MAoKI2RlZmluZSBJREU2X01BSk9SIDg4CiNkZWZpbmUgSURFN19NQUpPUiA4OQojZGVmaW5l IElERThfTUFKT1IgOTAKI2RlZmluZSBJREU5X01BSk9SIDkxCgojZGVmaW5lIFVCRF9NQUpPUiA5 OAoKI2RlZmluZSBBVVJPUkFfTUFKT1IgNzkKCiNkZWZpbmUgSlNGRF9NQUpPUiA5OQoKI2RlZmlu ZSBQSE9ORV9NQUpPUiAxMDAKCiNkZWZpbmUgTFZNX0NIQVJfTUFKT1IgMTA5CgojZGVmaW5lIFJU Rl9NQUpPUiAxNTAKI2RlZmluZSBSQVdfTUFKT1IgMTYyCgojZGVmaW5lIFVTQl9BQ01fTUFKT1Ig MTY2CiNkZWZpbmUgVVNCX0FDTV9BVVhfTUFKT1IgMTY3CiNkZWZpbmUgVVNCX0NIQVJfTUFKT1Ig MTgwCgojZGVmaW5lIFVOSVg5OF9QVFlfTUFTVEVSX01BSk9SIDEyOAojZGVmaW5lIFVOSVg5OF9Q VFlfTUFKT1JfQ09VTlQgOAojZGVmaW5lIFVOSVg5OF9QVFlfU0xBVkVfTUFKT1IgKFVOSVg5OF9Q VFlfTUFTVEVSX01BSk9SK1VOSVg5OF9QVFlfTUFKT1JfQ09VTlQpCgojZGVmaW5lIFZYVk1fTUFK T1IgMTk5CiNkZWZpbmUgVlhTUEVDX01BSk9SIDIwMAojZGVmaW5lIFZYRE1QX01BSk9SIDIwMQoK I2RlZmluZSBNU1JfTUFKT1IgMjAyCiNkZWZpbmUgQ1BVSURfTUFKT1IgMjAzCgojZGVmaW5lIE9T U1RfTUFKT1IgMjA2CgojZGVmaW5lIElCTV9UVFkzMjcwX01BSk9SIDIyNwojZGVmaW5lIElCTV9G UzMyNzBfTUFKT1IgMjI4CgoKCgoKI2RlZmluZSBTQ1NJX0RJU0tfTUFKT1IoTSkgKChNKSA9PSBT Q1NJX0RJU0swX01BSk9SIHx8ICgoTSkgPj0gU0NTSV9ESVNLMV9NQUpPUiAmJiAoTSkgPD0gU0NT SV9ESVNLN19NQUpPUikpCgoKI2RlZmluZSBTQ1NJX0JMS19NQUpPUihNKSAoU0NTSV9ESVNLX01B Sk9SKE0pIHx8IChNKSA9PSBTQ1NJX0NEUk9NX01BSk9SKQoKCgpzdGF0aWMgX19pbmxpbmVfXyBp bnQgc2NzaV9ibGtfbWFqb3IoaW50IG0pIHsKICAgICAgICByZXR1cm4gKCgobSkgPT0gOCB8fCAo KG0pID49IDY1ICYmIChtKSA8PSA3MSkpIHx8IChtKSA9PSAxMSk7Cn0KIyA1ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAxCgojZGVmaW5lIF9MSU5VWF9TQ0hFRF9ICgoj IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhcmFtLmgiIDEKIyA1ICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKCmV4dGVybiB1bnNpZ25l ZCBsb25nIGV2ZW50X1JzbXBfN2IxNmMzNDQ7CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2xpbnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4 L2JpbmZtdHMuaCIgMQoKI2RlZmluZSBfTElOVVhfQklORk1UU19ICgojIDEgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcHRyYWNlLmgiIDEKCiNkZWZpbmUgX0xJTlVYX1BUUkFD RV9ICgoKCgoKI2RlZmluZSBQVFJBQ0VfVFJBQ0VNRSAwCiNkZWZpbmUgUFRSQUNFX1BFRUtURVhU IDEKI2RlZmluZSBQVFJBQ0VfUEVFS0RBVEEgMgojZGVmaW5lIFBUUkFDRV9QRUVLVVNSIDMKI2Rl ZmluZSBQVFJBQ0VfUE9LRVRFWFQgNAojZGVmaW5lIFBUUkFDRV9QT0tFREFUQSA1CiNkZWZpbmUg UFRSQUNFX1BPS0VVU1IgNgojZGVmaW5lIFBUUkFDRV9DT05UIDcKI2RlZmluZSBQVFJBQ0VfS0lM TCA4CiNkZWZpbmUgUFRSQUNFX1NJTkdMRVNURVAgOQoKI2RlZmluZSBQVFJBQ0VfQVRUQUNIIDB4 MTAKI2RlZmluZSBQVFJBQ0VfREVUQUNIIDB4MTEKCiNkZWZpbmUgUFRSQUNFX1NZU0NBTEwgMjQK CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHRyYWNlLmgiIDEKIyAyNSAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9wdHJhY2UuaCIgMgojIDUgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYmluZm10cy5oIiAyCiMgMSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgiIDEKIyAxNCAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgiCiNkZWZpbmUgX0xJTlVYX0NB UEFCSUxJVFlfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVz LmgiIDEKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5 LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDEKIyAx OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgiIDIKIyAz MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgiCiNkZWZp bmUgX0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTiAweDE5OTgwMzMwCgp0eXBlZGVmIHN0cnVjdCBf X3VzZXJfY2FwX2hlYWRlcl9zdHJ1Y3QgewogICAgICAgIF9fdTMyIHZlcnNpb247CiAgICAgICAg aW50IHBpZDsKfSAqY2FwX3VzZXJfaGVhZGVyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBfX3VzZXJfY2Fw X2RhdGFfc3RydWN0IHsKICAgICAgICBfX3UzMiBlZmZlY3RpdmU7CiAgICAgICAgX191MzIgcGVy bWl0dGVkOwogICAgICAgIF9fdTMyIGluaGVyaXRhYmxlOwp9ICpjYXBfdXNlcl9kYXRhX3Q7CiMg NTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIgp0eXBl ZGVmIF9fdTMyIGtlcm5lbF9jYXBfdDsKCgoKI2RlZmluZSBfVVNFUl9DQVBfSEVBREVSX1NJWkUg KDIqc2l6ZW9mKF9fdTMyKSkKI2RlZmluZSBfS0VSTkVMX0NBUF9UX1NJWkUgKHNpemVvZihrZXJu ZWxfY2FwX3QpKQojIDczICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NhcGFi aWxpdHkuaCIKI2RlZmluZSBDQVBfQ0hPV04gMAoKCgoKCiNkZWZpbmUgQ0FQX0RBQ19PVkVSUklE RSAxCgoKCgoKI2RlZmluZSBDQVBfREFDX1JFQURfU0VBUkNIIDIKCgoKCgojZGVmaW5lIENBUF9G T1dORVIgMwojIDEwMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmls aXR5LmgiCiNkZWZpbmUgQ0FQX0ZTRVRJRCA0CgoKCiNkZWZpbmUgQ0FQX0ZTX01BU0sgMHgxZgoK CgoKCiNkZWZpbmUgQ0FQX0tJTEwgNQoKCgoKCiNkZWZpbmUgQ0FQX1NFVEdJRCA2CgoKCgojZGVm aW5lIENBUF9TRVRVSUQgNwojIDEzMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9jYXBhYmlsaXR5LmgiCiNkZWZpbmUgQ0FQX1NFVFBDQVAgOAoKCgojZGVmaW5lIENBUF9MSU5V WF9JTU1VVEFCTEUgOQoKCgoKI2RlZmluZSBDQVBfTkVUX0JJTkRfU0VSVklDRSAxMAoKCgojZGVm aW5lIENBUF9ORVRfQlJPQURDQVNUIDExCiMgMTYwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L2NhcGFiaWxpdHkuaCIKI2RlZmluZSBDQVBfTkVUX0FETUlOIDEyCgoKCgojZGVm aW5lIENBUF9ORVRfUkFXIDEzCgoKCgoKI2RlZmluZSBDQVBfSVBDX0xPQ0sgMTQKCgoKI2RlZmlu ZSBDQVBfSVBDX09XTkVSIDE1CgoKCiNkZWZpbmUgQ0FQX1NZU19NT0RVTEUgMTYKCgoKCiNkZWZp bmUgQ0FQX1NZU19SQVdJTyAxNwoKCgojZGVmaW5lIENBUF9TWVNfQ0hST09UIDE4CgoKCiNkZWZp bmUgQ0FQX1NZU19QVFJBQ0UgMTkKCgoKI2RlZmluZSBDQVBfU1lTX1BBQ0NUIDIwCiMgMjM1ICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NhcGFiaWxpdHkuaCIKI2RlZmluZSBD QVBfU1lTX0FETUlOIDIxCgoKCiNkZWZpbmUgQ0FQX1NZU19CT09UIDIyCgoKCgoKCgojZGVmaW5l IENBUF9TWVNfTklDRSAyMwojIDI1OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9jYXBhYmlsaXR5LmgiCiNkZWZpbmUgQ0FQX1NZU19SRVNPVVJDRSAyNAoKCgoKCiNkZWZpbmUg Q0FQX1NZU19USU1FIDI1CgoKCgojZGVmaW5lIENBUF9TWVNfVFRZX0NPTkZJRyAyNgoKCgojZGVm aW5lIENBUF9NS05PRCAyNwoKCgojZGVmaW5lIENBUF9MRUFTRSAyOAoKCgoKCmV4dGVybiBrZXJu ZWxfY2FwX3QgY2FwX2JzZXRfUnNtcF81OWFiNDA4MDsKIyAyOTcgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIgojZGVmaW5lIHRvX2NhcF90KHgpICh4KQoj ZGVmaW5lIGNhcF90KHgpICh4KQoKCgojZGVmaW5lIENBUF9FTVBUWV9TRVQgdG9fY2FwX3QoMCkK I2RlZmluZSBDQVBfRlVMTF9TRVQgdG9fY2FwX3QofjApCiNkZWZpbmUgQ0FQX0lOSVRfRUZGX1NF VCB0b19jYXBfdCh+MCAmIH5DQVBfVE9fTUFTSyhDQVBfU0VUUENBUCkpCiNkZWZpbmUgQ0FQX0lO SVRfSU5IX1NFVCB0b19jYXBfdCgwKQoKI2RlZmluZSBDQVBfVE9fTUFTSyh4KSAoMSA8PCAoeCkp CiNkZWZpbmUgY2FwX3JhaXNlKGMsIGZsYWcpIChjYXBfdChjKSB8PSBDQVBfVE9fTUFTSyhmbGFn KSkKI2RlZmluZSBjYXBfbG93ZXIoYywgZmxhZykgKGNhcF90KGMpICY9IH5DQVBfVE9fTUFTSyhm bGFnKSkKI2RlZmluZSBjYXBfcmFpc2VkKGMsIGZsYWcpIChjYXBfdChjKSAmIENBUF9UT19NQVNL KGZsYWcpKQoKc3RhdGljIGlubGluZSBrZXJuZWxfY2FwX3QgY2FwX2NvbWJpbmUoa2VybmVsX2Nh cF90IGEsIGtlcm5lbF9jYXBfdCBiKQp7CiAgICAga2VybmVsX2NhcF90IGRlc3Q7CiAgICAgKGRl c3QpID0gKGEpIHwgKGIpOwogICAgIHJldHVybiBkZXN0Owp9CgpzdGF0aWMgaW5saW5lIGtlcm5l bF9jYXBfdCBjYXBfaW50ZXJzZWN0KGtlcm5lbF9jYXBfdCBhLCBrZXJuZWxfY2FwX3QgYikKewog ICAgIGtlcm5lbF9jYXBfdCBkZXN0OwogICAgIChkZXN0KSA9IChhKSAmIChiKTsKICAgICByZXR1 cm4gZGVzdDsKfQoKc3RhdGljIGlubGluZSBrZXJuZWxfY2FwX3QgY2FwX2Ryb3Aoa2VybmVsX2Nh cF90IGEsIGtlcm5lbF9jYXBfdCBkcm9wKQp7CiAgICAga2VybmVsX2NhcF90IGRlc3Q7CiAgICAg KGRlc3QpID0gKGEpICYgfihkcm9wKTsKICAgICByZXR1cm4gZGVzdDsKfQoKc3RhdGljIGlubGlu ZSBrZXJuZWxfY2FwX3QgY2FwX2ludmVydChrZXJuZWxfY2FwX3QgYykKewogICAgIGtlcm5lbF9j YXBfdCBkZXN0OwogICAgIChkZXN0KSA9IH4oYyk7CiAgICAgcmV0dXJuIGRlc3Q7Cn0KCiNkZWZp bmUgY2FwX2lzY2xlYXIoYykgKCFjYXBfdChjKSkKI2RlZmluZSBjYXBfaXNzdWJzZXQoYSwgc2V0 KSAoIShjYXBfdChhKSAmIH5jYXBfdChzZXQpKSkKCiNkZWZpbmUgY2FwX2NsZWFyKGMpIGRvIHsg Y2FwX3QoYykgPSAwOyB9IHdoaWxlKDApCiNkZWZpbmUgY2FwX3NldF9mdWxsKGMpIGRvIHsgY2Fw X3QoYykgPSB+MDsgfSB3aGlsZSgwKQojZGVmaW5lIGNhcF9tYXNrKGMsIG1hc2spIGRvIHsgY2Fw X3QoYykgJj0gY2FwX3QobWFzayk7IH0gd2hpbGUoMCkKCiNkZWZpbmUgY2FwX2lzX2ZzX2NhcChj KSAoQ0FQX1RPX01BU0soYykgJiBDQVBfRlNfTUFTSykKIyA2ICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L2JpbmZtdHMuaCIgMgoKCgoKCgojZGVmaW5lIE1BWF9BUkdfUEFHRVMg MzIKCgojZGVmaW5lIEJJTlBSTV9CVUZfU0laRSAxMjgKCgoKCgoKc3RydWN0IGxpbnV4X2JpbnBy bXsKICAgICAgICBjaGFyIGJ1ZlsxMjhdOwogICAgICAgIHN0cnVjdCBwYWdlICpwYWdlWzMyXTsK ICAgICAgICB1bnNpZ25lZCBsb25nIHA7CiAgICAgICAgaW50IHNoX2Jhbmc7CiAgICAgICAgc3Ry dWN0IGZpbGUgKiBmaWxlOwogICAgICAgIGludCBlX3VpZCwgZV9naWQ7CiAgICAgICAga2VybmVs X2NhcF90IGNhcF9pbmhlcml0YWJsZSwgY2FwX3Blcm1pdHRlZCwgY2FwX2VmZmVjdGl2ZTsKICAg ICAgICBpbnQgYXJnYywgZW52YzsKICAgICAgICBjaGFyICogZmlsZW5hbWU7CiAgICAgICAgdW5z aWduZWQgbG9uZyBsb2FkZXIsIGV4ZWM7Cn07CgoKCgoKc3RydWN0IGxpbnV4X2JpbmZtdCB7CiAg ICAgICAgc3RydWN0IGxpbnV4X2JpbmZtdCAqIG5leHQ7CiAgICAgICAgc3RydWN0IG1vZHVsZSAq bW9kdWxlOwogICAgICAgIGludCAoKmxvYWRfYmluYXJ5KShzdHJ1Y3QgbGludXhfYmlucHJtICos IHN0cnVjdCBwdF9yZWdzICogcmVncyk7CiAgICAgICAgaW50ICgqbG9hZF9zaGxpYikoc3RydWN0 IGZpbGUgKik7CiAgICAgICAgaW50ICgqY29yZV9kdW1wKShsb25nIHNpZ25yLCBzdHJ1Y3QgcHRf cmVncyAqIHJlZ3MsIHN0cnVjdCBmaWxlICogZmlsZSk7CiAgICAgICAgdW5zaWduZWQgbG9uZyBt aW5fY29yZWR1bXA7Cn07CgpleHRlcm4gaW50IHJlZ2lzdGVyX2JpbmZtdF9Sc21wXzhhMzI5Mzc4 KHN0cnVjdCBsaW51eF9iaW5mbXQgKik7CmV4dGVybiBpbnQgdW5yZWdpc3Rlcl9iaW5mbXRfUnNt cF8yODMyMmNmMChzdHJ1Y3QgbGludXhfYmluZm10ICopOwoKZXh0ZXJuIGludCBwcmVwYXJlX2Jp bnBybV9Sc21wXzZiZWQ3OWI5KHN0cnVjdCBsaW51eF9iaW5wcm0gKik7CmV4dGVybiB2b2lkIHJl bW92ZV9hcmdfemVyb19Sc21wXzMyMGFiNGVhKHN0cnVjdCBsaW51eF9iaW5wcm0gKik7CmV4dGVy biBpbnQgc2VhcmNoX2JpbmFyeV9oYW5kbGVyX1JzbXBfMjQ1YmZmODYoc3RydWN0IGxpbnV4X2Jp bnBybSAqLHN0cnVjdCBwdF9yZWdzICopOwpleHRlcm4gaW50IGZsdXNoX29sZF9leGVjX1JzbXBf NGU2NDA1YTgoc3RydWN0IGxpbnV4X2JpbnBybSAqIGJwcm0pOwpleHRlcm4gaW50IHNldHVwX2Fy Z19wYWdlc19Sc21wX2RhYmJiZjZmKHN0cnVjdCBsaW51eF9iaW5wcm0gKiBicHJtKTsKZXh0ZXJu IGludCBjb3B5X3N0cmluZ3MoaW50IGFyZ2MsY2hhciAqKiBhcmd2LHN0cnVjdCBsaW51eF9iaW5w cm0gKmJwcm0pOwpleHRlcm4gaW50IGNvcHlfc3RyaW5nc19rZXJuZWxfUnNtcF8xNzkzODQzZShp bnQgYXJnYyxjaGFyICoqIGFyZ3Ysc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSk7CmV4dGVybiB2 b2lkIGNvbXB1dGVfY3JlZHNfUnNtcF9kYjNkZTg3ZShzdHJ1Y3QgbGludXhfYmlucHJtICpiaW5w cm0pOwpleHRlcm4gaW50IGRvX2NvcmVkdW1wKGxvbmcgc2lnbnIsIHN0cnVjdCBwdF9yZWdzICog cmVncyk7CmV4dGVybiB2b2lkIHNldF9iaW5mbXRfUnNtcF81YjM4NjI1YyhzdHJ1Y3QgbGludXhf YmluZm10ICpuZXcpOwojIDEwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Nj aGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3BlcnNvbmFs aXR5LmgiIDEKCiNkZWZpbmUgX1BFUlNPTkFMSVRZX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9saW5rYWdlLmgiIDEKIyA1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L3BlcnNvbmFsaXR5LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L3B0cmFjZS5oIiAxCiMgNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9wZXJzb25hbGl0eS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9hc20vY3VycmVudC5oIiAxCiMgNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9wZXJzb25hbGl0eS5oIiAyCgoKI2RlZmluZSBTVElDS1lfVElNRU9VVFMgMHg0MDAwMDAwCiNk ZWZpbmUgV0hPTEVfU0VDT05EUyAweDIwMDAwMDAKI2RlZmluZSBBRERSX0xJTUlUXzMyQklUIDB4 MDgwMDAwMAoKCgoKI2RlZmluZSBQRVJfTUFTSyAoMHgwMGZmKQojZGVmaW5lIFBFUl9MSU5VWCAo MHgwMDAwKQojZGVmaW5lIFBFUl9MSU5VWF8zMkJJVCAoMHgwMDAwIHwgQUREUl9MSU1JVF8zMkJJ VCkKI2RlZmluZSBQRVJfU1ZSNCAoMHgwMDAxIHwgU1RJQ0tZX1RJTUVPVVRTKQojZGVmaW5lIFBF Ul9TVlIzICgweDAwMDIgfCBTVElDS1lfVElNRU9VVFMpCiNkZWZpbmUgUEVSX1NDT1NWUjMgKDB4 MDAwMyB8IFNUSUNLWV9USU1FT1VUUyB8IFdIT0xFX1NFQ09ORFMpCiNkZWZpbmUgUEVSX1dZU0VW Mzg2ICgweDAwMDQgfCBTVElDS1lfVElNRU9VVFMpCiNkZWZpbmUgUEVSX0lTQ1I0ICgweDAwMDUg fCBTVElDS1lfVElNRU9VVFMpCiNkZWZpbmUgUEVSX0JTRCAoMHgwMDA2KQojZGVmaW5lIFBFUl9T VU5PUyAoUEVSX0JTRCB8IFNUSUNLWV9USU1FT1VUUykKI2RlZmluZSBQRVJfWEVOSVggKDB4MDAw NyB8IFNUSUNLWV9USU1FT1VUUykKI2RlZmluZSBQRVJfTElOVVgzMiAoMHgwMDA4KQojZGVmaW5l IFBFUl9JUklYMzIgKDB4MDAwOSB8IFNUSUNLWV9USU1FT1VUUykKI2RlZmluZSBQRVJfSVJJWE4z MiAoMHgwMDBhIHwgU1RJQ0tZX1RJTUVPVVRTKQojZGVmaW5lIFBFUl9JUklYNjQgKDB4MDAwYiB8 IFNUSUNLWV9USU1FT1VUUykKI2RlZmluZSBQRVJfUklTQ09TICgweDAwMGMpCiNkZWZpbmUgUEVS X1NPTEFSSVMgKDB4MDAwZCB8IFNUSUNLWV9USU1FT1VUUykKCgp0eXBlZGVmIHZvaWQgKCpsY2Fs bDdfZnVuYykoaW50LCBzdHJ1Y3QgcHRfcmVncyAqKTsKCgoKCgoKCnN0cnVjdCBleGVjX2RvbWFp biB7CiAgICAgICAgY29uc3QgY2hhciAqbmFtZTsKICAgICAgICBsY2FsbDdfZnVuYyBoYW5kbGVy OwogICAgICAgIHVuc2lnbmVkIGNoYXIgcGVyc19sb3csIHBlcnNfaGlnaDsKICAgICAgICB1bnNp Z25lZCBsb25nICogc2lnbmFsX21hcDsKICAgICAgICB1bnNpZ25lZCBsb25nICogc2lnbmFsX2lu dm1hcDsKICAgICAgICBzdHJ1Y3QgbW9kdWxlICogbW9kdWxlOwogICAgICAgIHN0cnVjdCBleGVj X2RvbWFpbiAqbmV4dDsKfTsKCmV4dGVybiBzdHJ1Y3QgZXhlY19kb21haW4gZGVmYXVsdF9leGVj X2RvbWFpbjsKCmV4dGVybiBpbnQgcmVnaXN0ZXJfZXhlY19kb21haW5fUnNtcF83MDFmMDI0Yihz dHJ1Y3QgZXhlY19kb21haW4gKml0KTsKZXh0ZXJuIGludCB1bnJlZ2lzdGVyX2V4ZWNfZG9tYWlu X1JzbXBfNWY0MDZhNGEoc3RydWN0IGV4ZWNfZG9tYWluICppdCk7CiNkZWZpbmUgcHV0X2V4ZWNf ZG9tYWluKGl0KSBpZiAoaXQgJiYgaXQtPm1vZHVsZSkgX19NT0RfREVDX1VTRV9DT1VOVChpdC0+ bW9kdWxlKTsKCiNkZWZpbmUgZ2V0X2V4ZWNfZG9tYWluKGl0KSBpZiAoaXQgJiYgaXQtPm1vZHVs ZSkgX19NT0RfSU5DX1VTRV9DT1VOVChpdC0+bW9kdWxlKTsKCmV4dGVybiB2b2lkIF9fc2V0X3Bl cnNvbmFsaXR5X1JzbXBfN2Q2NzhiNjkodW5zaWduZWQgbG9uZyBwZXJzb25hbGl0eSk7CiNkZWZp bmUgc2V0X3BlcnNvbmFsaXR5KHBlcnMpIGRvIHsgaWYgKGN1cnJlbnQtPnBlcnNvbmFsaXR5ICE9 IHBlcnMpIF9fc2V0X3BlcnNvbmFsaXR5KHBlcnMpOyB9IHdoaWxlICgwKQoKCgogX19hdHRyaWJ1 dGVfXygoc3lzY2FsbF9saW5rYWdlKSkgbG9uZyBzeXNfcGVyc29uYWxpdHkodW5zaWduZWQgbG9u ZyBwZXJzb25hbGl0eSk7CiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv c2NoZWQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGhyZWFk cy5oIiAxCiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIg MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDEKIyAx MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTQgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvdGltZXMuaCIgMQoKI2RlZmluZSBfTElOVVhfVElNRVNfSAoK c3RydWN0IHRtcyB7CiAgICAgICAgY2xvY2tfdCB0bXNfdXRpbWU7CiAgICAgICAgY2xvY2tfdCB0 bXNfc3RpbWU7CiAgICAgICAgY2xvY2tfdCB0bXNfY3V0aW1lOwogICAgICAgIGNsb2NrX3QgdG1z X2NzdGltZTsKfTsKIyAxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hl ZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1leC5oIiAx CiMgNTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGltZXguaCIKI2RlZmlu ZSBfTElOVVhfVElNRVhfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9w YXJhbS5oIiAxCiMgNTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGltZXgu aCIgMgojIDc2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3RpbWV4LmgiCiNk ZWZpbmUgU0hJRlRfSFogMTAKIyA5MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC90aW1leC5oIgojZGVmaW5lIFNISUZUX0tHIDYKI2RlZmluZSBTSElGVF9LRiAxNgojZGVmaW5l IFNISUZUX0tIIDIKI2RlZmluZSBNQVhUQyA2CiMgMTExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L3RpbWV4LmgiCiNkZWZpbmUgU0hJRlRfU0NBTEUgMjIKI2RlZmluZSBTSElG VF9VUERBVEUgKFNISUZUX0tHICsgTUFYVEMpCiNkZWZpbmUgU0hJRlRfVVNFQyAxNgojZGVmaW5l IEZJTkVVU0VDICgxTCA8PCBTSElGVF9TQ0FMRSkKCiNkZWZpbmUgTUFYUEhBU0UgNTEyMDAwTAoj ZGVmaW5lIE1BWEZSRVEgKDUxMkwgPDwgU0hJRlRfVVNFQykKI2RlZmluZSBNQVhUSU1FICgyMDBM IDw8IFBQU19BVkcpCiNkZWZpbmUgTUlOU0VDIDE2TAojZGVmaW5lIE1BWFNFQyAxMjAwTAojZGVm aW5lIE5UUF9QSEFTRV9MSU1JVCAoTUFYUEhBU0UgPDwgNSkKIyAxNDMgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvdGltZXguaCIKI2RlZmluZSBQUFNfQVZHIDIKI2RlZmluZSBQ UFNfU0hJRlQgMgojZGVmaW5lIFBQU19TSElGVE1BWCA4CiNkZWZpbmUgUFBTX1ZBTElEIDEyMAoj ZGVmaW5lIE1BWEdMSVRDSCAzMAoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl L2FzbS90aW1leC5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9USU1FWF9ICiMgMTMgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3RpbWV4LmgiCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBj eWNsZXNfdDsKCnN0YXRpYyBpbmxpbmUgY3ljbGVzX3QKZ2V0X2N5Y2xlcyAodm9pZCkKewogICAg ICAgIGN5Y2xlc190IHJldDsKCiAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3YgJTA9 YXIuaXRjIiA6ICI9ciIocmV0KSk7CiAgICAgICAgcmV0dXJuIHJldDsKfQojIDE1MyAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1leC5oIiAyCgoKI2RlZmluZSBMQVRDSCAo KENMT0NLX1RJQ0tfUkFURSArIEhaLzIpIC8gSFopCgoKCgoKc3RydWN0IHRpbWV4IHsKICAgICAg ICB1bnNpZ25lZCBpbnQgbW9kZXM7CiAgICAgICAgbG9uZyBvZmZzZXQ7CiAgICAgICAgbG9uZyBm cmVxOwogICAgICAgIGxvbmcgbWF4ZXJyb3I7CiAgICAgICAgbG9uZyBlc3RlcnJvcjsKICAgICAg ICBpbnQgc3RhdHVzOwogICAgICAgIGxvbmcgY29uc3RhbnQ7CiAgICAgICAgbG9uZyBwcmVjaXNp b247CiAgICAgICAgbG9uZyB0b2xlcmFuY2U7CgoKICAgICAgICBzdHJ1Y3QgdGltZXZhbCB0aW1l OwogICAgICAgIGxvbmcgdGljazsKCiAgICAgICAgbG9uZyBwcHNmcmVxOwogICAgICAgIGxvbmcg aml0dGVyOwogICAgICAgIGludCBzaGlmdDsKICAgICAgICBsb25nIHN0YWJpbDsKICAgICAgICBs b25nIGppdGNudDsKICAgICAgICBsb25nIGNhbGNudDsKICAgICAgICBsb25nIGVycmNudDsKICAg ICAgICBsb25nIHN0YmNudDsKCiAgICAgICAgaW50IDozMjsgaW50IDozMjsgaW50IDozMjsgaW50 IDozMjsKICAgICAgICBpbnQgOjMyOyBpbnQgOjMyOyBpbnQgOjMyOyBpbnQgOjMyOwogICAgICAg IGludCA6MzI7IGludCA6MzI7IGludCA6MzI7IGludCA6MzI7Cn07CgoKCgojZGVmaW5lIEFESl9P RkZTRVQgMHgwMDAxCiNkZWZpbmUgQURKX0ZSRVFVRU5DWSAweDAwMDIKI2RlZmluZSBBREpfTUFY RVJST1IgMHgwMDA0CiNkZWZpbmUgQURKX0VTVEVSUk9SIDB4MDAwOAojZGVmaW5lIEFESl9TVEFU VVMgMHgwMDEwCiNkZWZpbmUgQURKX1RJTUVDT05TVCAweDAwMjAKI2RlZmluZSBBREpfVElDSyAw eDQwMDAKI2RlZmluZSBBREpfT0ZGU0VUX1NJTkdMRVNIT1QgMHg4MDAxCgoKI2RlZmluZSBNT0Rf T0ZGU0VUIEFESl9PRkZTRVQKI2RlZmluZSBNT0RfRlJFUVVFTkNZIEFESl9GUkVRVUVOQ1kKI2Rl ZmluZSBNT0RfTUFYRVJST1IgQURKX01BWEVSUk9SCiNkZWZpbmUgTU9EX0VTVEVSUk9SIEFESl9F U1RFUlJPUgojZGVmaW5lIE1PRF9TVEFUVVMgQURKX1NUQVRVUwojZGVmaW5lIE1PRF9USU1FQ09O U1QgQURKX1RJTUVDT05TVAojZGVmaW5lIE1PRF9DTEtCIEFESl9USUNLCiNkZWZpbmUgTU9EX0NM S0EgQURKX09GRlNFVF9TSU5HTEVTSE9UCgoKCgoKI2RlZmluZSBTVEFfUExMIDB4MDAwMQojZGVm aW5lIFNUQV9QUFNGUkVRIDB4MDAwMgojZGVmaW5lIFNUQV9QUFNUSU1FIDB4MDAwNAojZGVmaW5l IFNUQV9GTEwgMHgwMDA4CgojZGVmaW5lIFNUQV9JTlMgMHgwMDEwCiNkZWZpbmUgU1RBX0RFTCAw eDAwMjAKI2RlZmluZSBTVEFfVU5TWU5DIDB4MDA0MAojZGVmaW5lIFNUQV9GUkVRSE9MRCAweDAw ODAKCiNkZWZpbmUgU1RBX1BQU1NJR05BTCAweDAxMDAKI2RlZmluZSBTVEFfUFBTSklUVEVSIDB4 MDIwMAojZGVmaW5lIFNUQV9QUFNXQU5ERVIgMHgwNDAwCiNkZWZpbmUgU1RBX1BQU0VSUk9SIDB4 MDgwMAoKI2RlZmluZSBTVEFfQ0xPQ0tFUlIgMHgxMDAwCgojZGVmaW5lIFNUQV9ST05MWSAoU1RB X1BQU1NJR05BTCB8IFNUQV9QUFNKSVRURVIgfCBTVEFfUFBTV0FOREVSIHwgU1RBX1BQU0VSUk9S IHwgU1RBX0NMT0NLRVJSKQoKCgoKCiNkZWZpbmUgVElNRV9PSyAwCiNkZWZpbmUgVElNRV9JTlMg MQojZGVmaW5lIFRJTUVfREVMIDIKI2RlZmluZSBUSU1FX09PUCAzCiNkZWZpbmUgVElNRV9XQUlU IDQKI2RlZmluZSBUSU1FX0VSUk9SIDUKI2RlZmluZSBUSU1FX0JBRCBUSU1FX0VSUk9SCgoKCgoK CgpleHRlcm4gbG9uZyB0aWNrOwpleHRlcm4gaW50IHRpY2thZGo7CgoKCgpleHRlcm4gaW50IHRp bWVfc3RhdGU7CmV4dGVybiBpbnQgdGltZV9zdGF0dXM7CmV4dGVybiBsb25nIHRpbWVfb2Zmc2V0 OwpleHRlcm4gbG9uZyB0aW1lX2NvbnN0YW50OwpleHRlcm4gbG9uZyB0aW1lX3RvbGVyYW5jZTsK ZXh0ZXJuIGxvbmcgdGltZV9wcmVjaXNpb247CmV4dGVybiBsb25nIHRpbWVfbWF4ZXJyb3I7CmV4 dGVybiBsb25nIHRpbWVfZXN0ZXJyb3I7CgpleHRlcm4gbG9uZyB0aW1lX3BoYXNlOwpleHRlcm4g bG9uZyB0aW1lX2ZyZXE7CmV4dGVybiBsb25nIHRpbWVfYWRqOwpleHRlcm4gbG9uZyB0aW1lX3Jl ZnRpbWU7CgpleHRlcm4gbG9uZyB0aW1lX2FkanVzdDsKCgpleHRlcm4gbG9uZyBwcHNfb2Zmc2V0 OwpleHRlcm4gbG9uZyBwcHNfaml0dGVyOwpleHRlcm4gbG9uZyBwcHNfZnJlcTsKZXh0ZXJuIGxv bmcgcHBzX3N0YWJpbDsKZXh0ZXJuIGxvbmcgcHBzX3ZhbGlkOwoKCmV4dGVybiBpbnQgcHBzX3No aWZ0OwpleHRlcm4gbG9uZyBwcHNfaml0Y250OwpleHRlcm4gbG9uZyBwcHNfY2FsY250OwpleHRl cm4gbG9uZyBwcHNfZXJyY250OwpleHRlcm4gbG9uZyBwcHNfc3RiY250OwojIDE2ICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9hc20vc3lzdGVtLmgiIDEKIyAxOCAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9hc20vc2VtYXBob3JlLmgiIDEKIyAxOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20v cGFnZS5oIiAxCiMgMjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQu aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAxCiMg MjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL21tdS5oIiAxCgojZGVmaW5lIF9fTU1VX0gK Cgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbW1fY29udGV4dF90OwojIDIyICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9zbXAuaCIgMQoKI2RlZmluZSBfX0xJTlVYX1NNUF9ICgoKCgoKCiMg MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDEwICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtcC5oIiAyCgoKCiMgMSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9rZXJuZWwuaCIgMQojIDE0ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtcC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9hc20vc21wLmgiIDEKIyAxMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9hc20vc21wLmgiCiNkZWZpbmUgX0FTTV9JQTY0X1NNUF9ICgojIDEgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9hc20vc21wLmgiIDIKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L2luaXQuaCIgMQoKI2RlZmluZSBfTElOVVhfSU5JVF9ICgojIDEgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA1ICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2xpbnV4L2luaXQuaCIgMgojIDExNiAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9pbml0LmgiCiNkZWZpbmUgX19pbml0CiNkZWZpbmUgX19leGl0CiNk ZWZpbmUgX19pbml0ZGF0YQojZGVmaW5lIF9fZXhpdGRhdGEKI2RlZmluZSBfX2luaXRjYWxsKGZu KQoKI2RlZmluZSBfX0lOSVQKI2RlZmluZSBfX0ZJTklUCiNkZWZpbmUgX19JTklUREFUQQoKCgoK Cgp0eXBlZGVmIGludCAoKl9faW5pdF9tb2R1bGVfZnVuY190KSh2b2lkKTsKdHlwZWRlZiB2b2lk ICgqX19jbGVhbnVwX21vZHVsZV9mdW5jX3QpKHZvaWQpOwojZGVmaW5lIG1vZHVsZV9pbml0KHgp IGludCBpbml0X21vZHVsZSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChhbGlhcygjeCkpKTsgZXh0ZXJu IGlubGluZSBfX2luaXRfbW9kdWxlX2Z1bmNfdCBfX2luaXRfbW9kdWxlX2lubGluZSh2b2lkKSB7 IHJldHVybiB4OyB9CgoKCiNkZWZpbmUgbW9kdWxlX2V4aXQoeCkgdm9pZCBjbGVhbnVwX21vZHVs ZSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChhbGlhcygjeCkpKTsgZXh0ZXJuIGlubGluZSBfX2NsZWFu dXBfbW9kdWxlX2Z1bmNfdCBfX2NsZWFudXBfbW9kdWxlX2lubGluZSh2b2lkKSB7IHJldHVybiB4 OyB9CgoKCgojZGVmaW5lIF9fc2V0dXAoc3RyLCBmdW5jKQoKCgoKI2RlZmluZSBfX2RldmluaXQK I2RlZmluZSBfX2RldmluaXRkYXRhCiNkZWZpbmUgX19kZXZleGl0CiNkZWZpbmUgX19kZXZleGl0 ZGF0YQojIDE3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zbXAuaCIgMgojIDEg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGhyZWFkcy5oIiAxCiMgMTggIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NtcC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9saW51eC9rZXJuZWwuaCIgMQojIDE5ICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2FzbS9zbXAuaCIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2FzbS9pby5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9JT19ICiMgMjMgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lvLmgiCiNkZWZpbmUgX19TTE9XX0RPV05fSU8gZG8geyB9 IHdoaWxlICgwKQojZGVmaW5lIFNMT1dfRE9XTl9JTyBkbyB7IH0gd2hpbGUgKDApCgojZGVmaW5l IF9fSUE2NF9VTkNBQ0hFRF9PRkZTRVQgMHhjMDAwMDAwMDAwMDAwMDAwCgojZGVmaW5lIElPX1NQ QUNFX0xJTUlUIDB4ZmZmZgoKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt L21hY2h2ZWMuaCIgMQojIDExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9tYWNo dmVjLmgiCiNkZWZpbmUgX0FTTV9JQTY0X01BQ0hWRUNfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvYXNtL21hY2h2ZWMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvdHlwZXMuaCIgMQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2Fz bS9tYWNodmVjLmgiIDIKCgpzdHJ1Y3QgcGNpX2RldjsKc3RydWN0IHB0X3JlZ3M7CnN0cnVjdCBz Y2F0dGVybGlzdDsKc3RydWN0IGlycV9kZXNjOwoKdHlwZWRlZiB2b2lkIGlhNjRfbXZfc2V0dXBf dCAoY2hhciAqKik7CnR5cGVkZWYgdm9pZCBpYTY0X212X2lycV9pbml0X3QgKHZvaWQpOwp0eXBl ZGVmIHZvaWQgaWE2NF9tdl9wY2lfZml4dXBfdCAoaW50KTsKdHlwZWRlZiB1bnNpZ25lZCBsb25n IGlhNjRfbXZfbWFwX25yX3QgKHVuc2lnbmVkIGxvbmcpOwp0eXBlZGVmIHZvaWQgaWE2NF9tdl9t Y2FfaW5pdF90ICh2b2lkKTsKdHlwZWRlZiB2b2lkIGlhNjRfbXZfbWNhX2hhbmRsZXJfdCAodm9p ZCk7CnR5cGVkZWYgdm9pZCBpYTY0X212X2NtY2lfaGFuZGxlcl90IChpbnQsIHZvaWQgKiwgc3Ry dWN0IHB0X3JlZ3MgKik7CnR5cGVkZWYgdm9pZCBpYTY0X212X2xvZ19wcmludF90ICh2b2lkKTsK dHlwZWRlZiB2b2lkIGlhNjRfbXZfc2VuZF9pcGlfdCAoaW50LCBpbnQsIGludCwgaW50KTsKdHlw ZWRlZiBzdHJ1Y3QgaXJxX2Rlc2MgKmlhNjRfbXZfaXJxX2Rlc2MgKHVuc2lnbmVkIGludCk7CnR5 cGVkZWYgdTggaWE2NF9tdl9pcnFfdG9fdmVjdG9yICh1OCk7CnR5cGVkZWYgdW5zaWduZWQgaW50 IGlhNjRfbXZfbG9jYWxfdmVjdG9yX3RvX2lycSAodTggdmVjdG9yKTsKCgp0eXBlZGVmIHZvaWQg aWE2NF9tdl9wY2lfZG1hX2luaXQgKHZvaWQpOwp0eXBlZGVmIHZvaWQgKmlhNjRfbXZfcGNpX2Fs bG9jX2NvbnNpc3RlbnQgKHN0cnVjdCBwY2lfZGV2ICosIHNpemVfdCwgZG1hX2FkZHJfdCAqKTsK dHlwZWRlZiB2b2lkIGlhNjRfbXZfcGNpX2ZyZWVfY29uc2lzdGVudCAoc3RydWN0IHBjaV9kZXYg Kiwgc2l6ZV90LCB2b2lkICosIGRtYV9hZGRyX3QpOwp0eXBlZGVmIGRtYV9hZGRyX3QgaWE2NF9t dl9wY2lfbWFwX3NpbmdsZSAoc3RydWN0IHBjaV9kZXYgKiwgdm9pZCAqLCBzaXplX3QsIGludCk7 CnR5cGVkZWYgdm9pZCBpYTY0X212X3BjaV91bm1hcF9zaW5nbGUgKHN0cnVjdCBwY2lfZGV2ICos IGRtYV9hZGRyX3QsIHNpemVfdCwgaW50KTsKdHlwZWRlZiBpbnQgaWE2NF9tdl9wY2lfbWFwX3Nn IChzdHJ1Y3QgcGNpX2RldiAqLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKiwgaW50LCBpbnQpOwp0eXBl ZGVmIHZvaWQgaWE2NF9tdl9wY2lfdW5tYXBfc2cgKHN0cnVjdCBwY2lfZGV2ICosIHN0cnVjdCBz Y2F0dGVybGlzdCAqLCBpbnQsIGludCk7CnR5cGVkZWYgdm9pZCBpYTY0X212X3BjaV9kbWFfc3lu Y19zaW5nbGUgKHN0cnVjdCBwY2lfZGV2ICosIGRtYV9hZGRyX3QsIHNpemVfdCwgaW50KTsKdHlw ZWRlZiB2b2lkIGlhNjRfbXZfcGNpX2RtYV9zeW5jX3NnIChzdHJ1Y3QgcGNpX2RldiAqLCBzdHJ1 Y3Qgc2NhdHRlcmxpc3QgKiwgaW50LCBpbnQpOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaWE2NF9t dl9wY2lfZG1hX2FkZHJlc3MgKHN0cnVjdCBzY2F0dGVybGlzdCAqKTsKIyA1NSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vbWFjaHZlYy5oIgp0eXBlZGVmIHVuc2lnbmVkIGludCBp YTY0X212X2luYl90ICh1bnNpZ25lZCBsb25nKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgaWE2NF9t dl9pbndfdCAodW5zaWduZWQgbG9uZyk7CnR5cGVkZWYgdW5zaWduZWQgaW50IGlhNjRfbXZfaW5s X3QgKHVuc2lnbmVkIGxvbmcpOwp0eXBlZGVmIHZvaWQgaWE2NF9tdl9vdXRiX3QgKHVuc2lnbmVk IGNoYXIsIHVuc2lnbmVkIGxvbmcpOwp0eXBlZGVmIHZvaWQgaWE2NF9tdl9vdXR3X3QgKHVuc2ln bmVkIHNob3J0LCB1bnNpZ25lZCBsb25nKTsKdHlwZWRlZiB2b2lkIGlhNjRfbXZfb3V0bF90ICh1 bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGxvbmcpOwoKZXh0ZXJuIHZvaWQgbWFjaHZlY19ub29wICh2 b2lkKTsKCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vbWFjaHZlY19k aWcuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfTUFDSFZFQ19ESUdfaAoKZXh0ZXJuIGlhNjRfbXZf c2V0dXBfdCBkaWdfc2V0dXA7CmV4dGVybiBpYTY0X212X2lycV9pbml0X3QgZGlnX2lycV9pbml0 OwpleHRlcm4gaWE2NF9tdl9wY2lfZml4dXBfdCBpb3NhcGljX3BjaV9maXh1cDsKZXh0ZXJuIGlh NjRfbXZfbWFwX25yX3QgbWFwX25yX2RlbnNlOwojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2FzbS9tYWNodmVjX2RpZy5oIgojZGVmaW5lIHBsYXRmb3JtX25hbWUgImRpZyIKI2Rl ZmluZSBwbGF0Zm9ybV9zZXR1cCBkaWdfc2V0dXAKI2RlZmluZSBwbGF0Zm9ybV9pcnFfaW5pdCBk aWdfaXJxX2luaXQKI2RlZmluZSBwbGF0Zm9ybV9wY2lfZml4dXAgaW9zYXBpY19wY2lfZml4dXAK I2RlZmluZSBwbGF0Zm9ybV9tYXBfbnIgbWFwX25yX2RlbnNlCiMgNjggIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvYXNtL21hY2h2ZWMuaCIgMgojIDE4MSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9hc20vbWFjaHZlYy5oIgpleHRlcm4gaWE2NF9tdl9wY2lfZG1hX2luaXQgc3dp b3RsYl9pbml0X1JzbXBfY2NkNzE4OTA7CmV4dGVybiBpYTY0X212X3BjaV9hbGxvY19jb25zaXN0 ZW50IHN3aW90bGJfYWxsb2NfY29uc2lzdGVudF9Sc21wXzAxZjZkMDYxOwpleHRlcm4gaWE2NF9t dl9wY2lfZnJlZV9jb25zaXN0ZW50IHN3aW90bGJfZnJlZV9jb25zaXN0ZW50X1JzbXBfYzkwNWVm Mzk7CmV4dGVybiBpYTY0X212X3BjaV9tYXBfc2luZ2xlIHN3aW90bGJfbWFwX3NpbmdsZV9Sc21w XzYwOTU1MDJkOwpleHRlcm4gaWE2NF9tdl9wY2lfdW5tYXBfc2luZ2xlIHN3aW90bGJfdW5tYXBf c2luZ2xlX1JzbXBfZTYwMzUxYTM7CmV4dGVybiBpYTY0X212X3BjaV9tYXBfc2cgc3dpb3RsYl9t YXBfc2dfUnNtcF9iYTEzMjA0MjsKZXh0ZXJuIGlhNjRfbXZfcGNpX3VubWFwX3NnIHN3aW90bGJf dW5tYXBfc2dfUnNtcF8wOTUyZmZjNTsKZXh0ZXJuIGlhNjRfbXZfcGNpX2RtYV9zeW5jX3Npbmds ZSBzd2lvdGxiX3N5bmNfc2luZ2xlX1JzbXBfNzkyYzMxMWY7CmV4dGVybiBpYTY0X212X3BjaV9k bWFfc3luY19zZyBzd2lvdGxiX3N5bmNfc2dfUnNtcF83MzNjNzM4MzsKZXh0ZXJuIGlhNjRfbXZf cGNpX2RtYV9hZGRyZXNzIHN3aW90bGJfZG1hX2FkZHJlc3NfUnNtcF9kMzk1MzFlZjsKIyAyMDMg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL21hY2h2ZWMuaCIKI2RlZmluZSBwbGF0 Zm9ybV9tY2FfaW5pdCAoKGlhNjRfbXZfbWNhX2luaXRfdCAqKSBtYWNodmVjX25vb3ApCgoKI2Rl ZmluZSBwbGF0Zm9ybV9tY2FfaGFuZGxlciAoKGlhNjRfbXZfbWNhX2hhbmRsZXJfdCAqKSBtYWNo dmVjX25vb3ApCgoKI2RlZmluZSBwbGF0Zm9ybV9jbWNpX2hhbmRsZXIgKChpYTY0X212X2NtY2lf aGFuZGxlcl90ICopIG1hY2h2ZWNfbm9vcCkKCgojZGVmaW5lIHBsYXRmb3JtX2xvZ19wcmludCAo KGlhNjRfbXZfbG9nX3ByaW50X3QgKikgbWFjaHZlY19ub29wKQoKCgoKCiNkZWZpbmUgcGxhdGZv cm1fc2VuZF9pcGkgaWE2NF9zZW5kX2lwaQoKCiNkZWZpbmUgcGxhdGZvcm1fcGNpX2RtYV9pbml0 IHN3aW90bGJfaW5pdAoKCiNkZWZpbmUgcGxhdGZvcm1fcGNpX2FsbG9jX2NvbnNpc3RlbnQgc3dp b3RsYl9hbGxvY19jb25zaXN0ZW50CgoKI2RlZmluZSBwbGF0Zm9ybV9wY2lfZnJlZV9jb25zaXN0 ZW50IHN3aW90bGJfZnJlZV9jb25zaXN0ZW50CgoKI2RlZmluZSBwbGF0Zm9ybV9wY2lfbWFwX3Np bmdsZSBzd2lvdGxiX21hcF9zaW5nbGUKCgojZGVmaW5lIHBsYXRmb3JtX3BjaV91bm1hcF9zaW5n bGUgc3dpb3RsYl91bm1hcF9zaW5nbGUKCgojZGVmaW5lIHBsYXRmb3JtX3BjaV9tYXBfc2cgc3dp b3RsYl9tYXBfc2cKCgojZGVmaW5lIHBsYXRmb3JtX3BjaV91bm1hcF9zZyBzd2lvdGxiX3VubWFw X3NnCgoKI2RlZmluZSBwbGF0Zm9ybV9wY2lfZG1hX3N5bmNfc2luZ2xlIHN3aW90bGJfc3luY19z aW5nbGUKCgojZGVmaW5lIHBsYXRmb3JtX3BjaV9kbWFfc3luY19zZyBzd2lvdGxiX3N5bmNfc2cK CgojZGVmaW5lIHBsYXRmb3JtX3BjaV9kbWFfYWRkcmVzcyBzd2lvdGxiX2RtYV9hZGRyZXNzCgoK I2RlZmluZSBwbGF0Zm9ybV9pcnFfZGVzYyBfX2lhNjRfaXJxX2Rlc2MKCgojZGVmaW5lIHBsYXRm b3JtX2lycV90b192ZWN0b3IgX19pYTY0X2lycV90b192ZWN0b3IKCgojZGVmaW5lIHBsYXRmb3Jt X2xvY2FsX3ZlY3Rvcl90b19pcnEgX19pYTY0X2xvY2FsX3ZlY3Rvcl90b19pcnEKCgojZGVmaW5l IHBsYXRmb3JtX2luYiBfX2lhNjRfaW5iCgoKI2RlZmluZSBwbGF0Zm9ybV9pbncgX19pYTY0X2lu dwoKCiNkZWZpbmUgcGxhdGZvcm1faW5sIF9faWE2NF9pbmwKCgojZGVmaW5lIHBsYXRmb3JtX291 dGIgX19pYTY0X291dGIKCgojZGVmaW5lIHBsYXRmb3JtX291dHcgX19pYTY0X291dHcKCgojZGVm aW5lIHBsYXRmb3JtX291dGwgX19pYTY0X291dGwKIyAzMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9hc20vaW8uaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt L3BhZ2UuaCIgMQojIDM0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9pby5oIiAy CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lzdGVtLmgiIDEKIyAzNSAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vaW8uaCIgMgoKCgoKc3RhdGljIGlubGlu ZSB1bnNpZ25lZCBsb25nCnZpcnRfdG9fcGh5cyAodm9sYXRpbGUgdm9pZCAqYWRkcmVzcykKewog ICAgICAgIHJldHVybiAodW5zaWduZWQgbG9uZykgYWRkcmVzcyAtIDB4ZTAwMDAwMDAwMDAwMDAw MDsKfQoKc3RhdGljIGlubGluZSB2b2lkKgpwaHlzX3RvX3ZpcnQodW5zaWduZWQgbG9uZyBhZGRy ZXNzKQp7CiAgICAgICAgcmV0dXJuICh2b2lkICopIChhZGRyZXNzICsgMHhlMDAwMDAwMDAwMDAw MDAwKTsKfQoKCgoKCiNkZWZpbmUgYnVzX3RvX3ZpcnQgcGh5c190b192aXJ0CiNkZWZpbmUgdmly dF90b19idXMgdmlydF90b19waHlzCgoKCgoKCgojZGVmaW5lIF9faWE2NF9tZl9hKCkgX19hc21f XyBfX3ZvbGF0aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpCgpzdGF0aWMgaW5saW5lIGNvbnN0 IHVuc2lnbmVkIGxvbmcKX19pYTY0X2dldF9pb19wb3J0X2Jhc2UgKHZvaWQpCnsKICAgICAgICBl eHRlcm4gdW5zaWduZWQgbG9uZyBpYTY0X2lvYmFzZV9Sc21wXzA4ZTZiMDA3OwoKICAgICAgICBy ZXR1cm4gaWE2NF9pb2Jhc2VfUnNtcF8wOGU2YjAwNzsKfQoKc3RhdGljIGlubGluZSB2b2lkKgpf X2lhNjRfbWtfaW9fYWRkciAodW5zaWduZWQgbG9uZyBwb3J0KQp7CiAgICAgICAgY29uc3QgdW5z aWduZWQgbG9uZyBpb19iYXNlID0gX19pYTY0X2dldF9pb19wb3J0X2Jhc2UoKTsKICAgICAgICB1 bnNpZ25lZCBsb25nIGFkZHI7CgogICAgICAgIGFkZHIgPSBpb19iYXNlIHwgKChwb3J0ID4+IDIp IDw8IDEyKSB8IChwb3J0ICYgMHhmZmYpOwogICAgICAgIHJldHVybiAodm9pZCAqKSBhZGRyOwp9 CiMgOTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lvLmgiCnN0YXRpYyBpbmxp bmUgdW5zaWduZWQgaW50Cl9faWE2NF9pbmIgKHVuc2lnbmVkIGxvbmcgcG9ydCkKewogICAgICAg IHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRkcihwb3J0KTsK ICAgICAgICB1bnNpZ25lZCBjaGFyIHJldDsKCiAgICAgICAgcmV0ID0gKmFkZHI7CiAgICAgICAg X19hc21fXyBfX3ZvbGF0aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpOwogICAgICAgIHJldHVy biByZXQ7Cn0KCnN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50Cl9faWE2NF9pbncgKHVuc2lnbmVk IGxvbmcgcG9ydCkKewogICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICphZGRyID0gX19p YTY0X21rX2lvX2FkZHIocG9ydCk7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgcmV0OwoKICAgICAg ICByZXQgPSAqYWRkcjsKICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mLmEiIDo6OiAi bWVtb3J5Iik7CiAgICAgICAgcmV0dXJuIHJldDsKfQoKc3RhdGljIGlubGluZSB1bnNpZ25lZCBp bnQKX19pYTY0X2lubCAodW5zaWduZWQgbG9uZyBwb3J0KQp7CiAgICAgICAgdm9sYXRpbGUgdW5z aWduZWQgaW50ICphZGRyID0gX19pYTY0X21rX2lvX2FkZHIocG9ydCk7CiAgICAgICAgdW5zaWdu ZWQgaW50IHJldDsKCiAgICAgICAgcmV0ID0gKmFkZHI7CiAgICAgICAgX19hc21fXyBfX3ZvbGF0 aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpOwogICAgICAgIHJldHVybiByZXQ7Cn0KCnN0YXRp YyBpbmxpbmUgdm9pZApfX2lhNjRfb3V0YiAodW5zaWduZWQgY2hhciB2YWwsIHVuc2lnbmVkIGxv bmcgcG9ydCkKewogICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmFkZHIgPSBfX2lhNjRf bWtfaW9fYWRkcihwb3J0KTsKCiAgICAgICAgKmFkZHIgPSB2YWw7CiAgICAgICAgX19hc21fXyBf X3ZvbGF0aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQK X19pYTY0X291dHcgKHVuc2lnbmVkIHNob3J0IHZhbCwgdW5zaWduZWQgbG9uZyBwb3J0KQp7CiAg ICAgICAgdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRkcihw b3J0KTsKCiAgICAgICAgKmFkZHIgPSB2YWw7CiAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18g KCJtZi5hIiA6OjogIm1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKX19pYTY0X291dGwg KHVuc2lnbmVkIGludCB2YWwsIHVuc2lnbmVkIGxvbmcgcG9ydCkKewogICAgICAgIHZvbGF0aWxl IHVuc2lnbmVkIGludCAqYWRkciA9IF9faWE2NF9ta19pb19hZGRyKHBvcnQpOwoKICAgICAgICAq YWRkciA9IHZhbDsKICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mLmEiIDo6OiAibWVt b3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX2luc2IgKHVuc2lnbmVkIGxvbmcgcG9ydCwg dm9pZCAqZHN0LCB1bnNpZ25lZCBsb25nIGNvdW50KQp7CiAgICAgICAgdW5zaWduZWQgY2hhciAq ZHAgPSBkc3Q7CgogICAgICAgIGlmIChfX2lhNjRfaW5iID09IF9faWE2NF9pbmIpIHsKICAgICAg ICAgICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRk cihwb3J0KTsKCiAgICAgICAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mLmEiIDo6 OiAibWVtb3J5Iik7CiAgICAgICAgICAgICAgICB3aGlsZSAoY291bnQtLSkKICAgICAgICAgICAg ICAgICAgICAgICAgKmRwKysgPSAqYWRkcjsKICAgICAgICAgICAgICAgIF9fYXNtX18gX192b2xh dGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsKICAgICAgICB9IGVsc2UKICAgICAgICAgICAg ICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAgICAgICAgICAqZHArKyA9IF9faWE2 NF9pbmIocG9ydCk7CiAgICAgICAgcmV0dXJuOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKX19pbnN3 ICh1bnNpZ25lZCBsb25nIHBvcnQsIHZvaWQgKmRzdCwgdW5zaWduZWQgbG9uZyBjb3VudCkKewog ICAgICAgIHVuc2lnbmVkIHNob3J0ICpkcCA9IGRzdDsKCiAgICAgICAgaWYgKF9faWE2NF9pbncg PT0gX19pYTY0X2ludykgewogICAgICAgICAgICAgICAgdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQg KmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRkcihwb3J0KTsKCiAgICAgICAgICAgICAgICBfX2FzbV9f IF9fdm9sYXRpbGVfXyAoIm1mLmEiIDo6OiAibWVtb3J5Iik7CiAgICAgICAgICAgICAgICB3aGls ZSAoY291bnQtLSkKICAgICAgICAgICAgICAgICAgICAgICAgKmRwKysgPSAqYWRkcjsKICAgICAg ICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsKICAg ICAgICB9IGVsc2UKICAgICAgICAgICAgICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAg ICAgICAgICAgICAqZHArKyA9IF9faWE2NF9pbncocG9ydCk7CiAgICAgICAgcmV0dXJuOwp9Cgpz dGF0aWMgaW5saW5lIHZvaWQKX19pbnNsICh1bnNpZ25lZCBsb25nIHBvcnQsIHZvaWQgKmRzdCwg dW5zaWduZWQgbG9uZyBjb3VudCkKewogICAgICAgIHVuc2lnbmVkIGludCAqZHAgPSBkc3Q7Cgog ICAgICAgIGlmIChfX2lhNjRfaW5sID09IF9faWE2NF9pbmwpIHsKICAgICAgICAgICAgICAgIHZv bGF0aWxlIHVuc2lnbmVkIGludCAqYWRkciA9IF9faWE2NF9ta19pb19hZGRyKHBvcnQpOwoKICAg ICAgICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsK ICAgICAgICAgICAgICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAgICAgICAgICAq ZHArKyA9ICphZGRyOwogICAgICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtZi5h IiA6OjogIm1lbW9yeSIpOwogICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgd2hpbGUgKGNv dW50LS0pCiAgICAgICAgICAgICAgICAgICAgICAgICpkcCsrID0gX19pYTY0X2lubChwb3J0KTsK ICAgICAgICByZXR1cm47Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX291dHNiICh1bnNpZ25lZCBs b25nIHBvcnQsIGNvbnN0IHZvaWQgKnNyYywgdW5zaWduZWQgbG9uZyBjb3VudCkKewogICAgICAg IGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNwID0gc3JjOwoKICAgICAgICBpZiAoX19pYTY0X291dGIg PT0gX19pYTY0X291dGIpIHsKICAgICAgICAgICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIg KmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRkcihwb3J0KTsKCiAgICAgICAgICAgICAgICB3aGlsZSAo Y291bnQtLSkKICAgICAgICAgICAgICAgICAgICAgICAgKmFkZHIgPSAqc3ArKzsKICAgICAgICAg ICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsKICAgICAg ICB9IGVsc2UKICAgICAgICAgICAgICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAg ICAgICAgICBfX2lhNjRfb3V0Yigqc3ArKywgcG9ydCk7CiAgICAgICAgcmV0dXJuOwp9CgpzdGF0 aWMgaW5saW5lIHZvaWQKX19vdXRzdyAodW5zaWduZWQgbG9uZyBwb3J0LCBjb25zdCB2b2lkICpz cmMsIHVuc2lnbmVkIGxvbmcgY291bnQpCnsKICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAq c3AgPSBzcmM7CgogICAgICAgIGlmIChfX2lhNjRfb3V0dyA9PSBfX2lhNjRfb3V0dykgewogICAg ICAgICAgICAgICAgdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmFkZHIgPSBfX2lhNjRfbWtfaW9f YWRkcihwb3J0KTsKCiAgICAgICAgICAgICAgICB3aGlsZSAoY291bnQtLSkKICAgICAgICAgICAg ICAgICAgICAgICAgKmFkZHIgPSAqc3ArKzsKICAgICAgICAgICAgICAgIF9fYXNtX18gX192b2xh dGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsKICAgICAgICB9IGVsc2UKICAgICAgICAgICAg ICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAgICAgICAgICBfX2lhNjRfb3V0dygq c3ArKywgcG9ydCk7CiAgICAgICAgcmV0dXJuOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKX19vdXRz bCAodW5zaWduZWQgbG9uZyBwb3J0LCB2b2lkICpzcmMsIHVuc2lnbmVkIGxvbmcgY291bnQpCnsK ICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgKnNwID0gc3JjOwoKICAgICAgICBpZiAoX19pYTY0 X291dGwgPT0gX19pYTY0X291dGwpIHsKICAgICAgICAgICAgICAgIHZvbGF0aWxlIHVuc2lnbmVk IGludCAqYWRkciA9IF9faWE2NF9ta19pb19hZGRyKHBvcnQpOwoKICAgICAgICAgICAgICAgIHdo aWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAgICAgICAgICAqYWRkciA9ICpzcCsrOwogICAg ICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpOwog ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgd2hpbGUgKGNvdW50LS0pCiAgICAgICAgICAg ICAgICAgICAgICAgIF9faWE2NF9vdXRsKCpzcCsrLCBwb3J0KTsKICAgICAgICByZXR1cm47Cn0K CgoKCgoKI2RlZmluZSBfX2luYiBwbGF0Zm9ybV9pbmIKI2RlZmluZSBfX2ludyBwbGF0Zm9ybV9p bncKI2RlZmluZSBfX2lubCBwbGF0Zm9ybV9pbmwKI2RlZmluZSBfX291dGIgcGxhdGZvcm1fb3V0 YgojZGVmaW5lIF9fb3V0dyBwbGF0Zm9ybV9vdXR3CiNkZWZpbmUgX19vdXRsIHBsYXRmb3JtX291 dGwKCiNkZWZpbmUgaW5iIF9faW5iCiNkZWZpbmUgaW53IF9faW53CiNkZWZpbmUgaW5sIF9faW5s CiNkZWZpbmUgaW5zYiBfX2luc2IKI2RlZmluZSBpbnN3IF9faW5zdwojZGVmaW5lIGluc2wgX19p bnNsCiNkZWZpbmUgb3V0YiBfX291dGIKI2RlZmluZSBvdXR3IF9fb3V0dwojZGVmaW5lIG91dGwg X19vdXRsCiNkZWZpbmUgb3V0c2IgX19vdXRzYgojZGVmaW5lIG91dHN3IF9fb3V0c3cKI2RlZmlu ZSBvdXRzbCBfX291dHNsCgoKCgpzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIKX19yZWFkYiAo dm9pZCAqYWRkcikKewogICAgICAgIHJldHVybiAqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKilh ZGRyOwp9CgpzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHNob3J0Cl9fcmVhZHcgKHZvaWQgKmFkZHIp CnsKICAgICAgICByZXR1cm4gKih2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKWFkZHI7Cn0KCnN0 YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50Cl9fcmVhZGwgKHZvaWQgKmFkZHIpCnsKICAgICAgICBy ZXR1cm4gKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikgYWRkcjsKfQoKc3RhdGljIGlubGluZSB1 bnNpZ25lZCBsb25nCl9fcmVhZHEgKHZvaWQgKmFkZHIpCnsKICAgICAgICByZXR1cm4gKih2b2xh dGlsZSB1bnNpZ25lZCBsb25nICopIGFkZHI7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX3dyaXRl YiAodW5zaWduZWQgY2hhciB2YWwsIHZvaWQgKmFkZHIpCnsKICAgICAgICAqKHZvbGF0aWxlIHVu c2lnbmVkIGNoYXIgKikgYWRkciA9IHZhbDsKfQoKc3RhdGljIGlubGluZSB2b2lkCl9fd3JpdGV3 ICh1bnNpZ25lZCBzaG9ydCB2YWwsIHZvaWQgKmFkZHIpCnsKICAgICAgICAqKHZvbGF0aWxlIHVu c2lnbmVkIHNob3J0ICopIGFkZHIgPSB2YWw7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX3dyaXRl bCAodW5zaWduZWQgaW50IHZhbCwgdm9pZCAqYWRkcikKewogICAgICAgICoodm9sYXRpbGUgdW5z aWduZWQgaW50ICopIGFkZHIgPSB2YWw7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX3dyaXRlcSAo dW5zaWduZWQgbG9uZyB2YWwsIHZvaWQgKmFkZHIpCnsKICAgICAgICAqKHZvbGF0aWxlIHVuc2ln bmVkIGxvbmcgKikgYWRkciA9IHZhbDsKfQoKI2RlZmluZSByZWFkYihhKSBfX3JlYWRiKCh2b2lk ICopKGEpKQojZGVmaW5lIHJlYWR3KGEpIF9fcmVhZHcoKHZvaWQgKikoYSkpCiNkZWZpbmUgcmVh ZGwoYSkgX19yZWFkbCgodm9pZCAqKShhKSkKI2RlZmluZSByZWFkcShhKSBfX3JlYWRxKCh2b2lk ICopKGEpKQojZGVmaW5lIF9fcmF3X3JlYWRiIHJlYWRiCiNkZWZpbmUgX19yYXdfcmVhZHcgcmVh ZHcKI2RlZmluZSBfX3Jhd19yZWFkbCByZWFkbAojZGVmaW5lIF9fcmF3X3JlYWRxIHJlYWRxCiNk ZWZpbmUgd3JpdGViKHYsIGEpIF9fd3JpdGViKCh2KSwgKHZvaWQgKikgKGEpKQojZGVmaW5lIHdy aXRldyh2LCBhKSBfX3dyaXRldygodiksICh2b2lkICopIChhKSkKI2RlZmluZSB3cml0ZWwodiwg YSkgX193cml0ZWwoKHYpLCAodm9pZCAqKSAoYSkpCiNkZWZpbmUgd3JpdGVxKHYsIGEpIF9fd3Jp dGVxKCh2KSwgKHZvaWQgKikgKGEpKQojZGVmaW5lIF9fcmF3X3dyaXRlYiB3cml0ZWIKI2RlZmlu ZSBfX3Jhd193cml0ZXcgd3JpdGV3CiNkZWZpbmUgX19yYXdfd3JpdGVsIHdyaXRlbAojZGVmaW5l IF9fcmF3X3dyaXRlcSB3cml0ZXEKCgojZGVmaW5lIGluYl9wIGluYgoKCiNkZWZpbmUgaW53X3Ag aW53CgoKI2RlZmluZSBpbmxfcCBpbmwKCgoKI2RlZmluZSBvdXRiX3Agb3V0YgoKCiNkZWZpbmUg b3V0d19wIG91dHcKCgojZGVmaW5lIG91dGxfcCBvdXRsCiMgMzc2ICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2FzbS9pby5oIgpzdGF0aWMgaW5saW5lIHZvaWQgKgppb3JlbWFwICh1bnNp Z25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplKQp7CiAgICAgICAgcmV0dXJuICh2 b2lkICopICgweGMwMDAwMDAwMDAwMDAwMDAgfCAob2Zmc2V0KSk7Cn0KCnN0YXRpYyBpbmxpbmUg dm9pZAppb3VubWFwICh2b2lkICphZGRyKQp7Cn0KCiNkZWZpbmUgaW9yZW1hcF9ub2NhY2hlKG8s IHMpIGlvcmVtYXAobyxzKQoKCgoKCgpleHRlcm4gdm9pZCBfX2lhNjRfbWVtY3B5X2Zyb21pb19S c21wX2FjNGY1YTNjICh2b2lkICosIHVuc2lnbmVkIGxvbmcsIGxvbmcpOwpleHRlcm4gdm9pZCBf X2lhNjRfbWVtY3B5X3RvaW9fUnNtcF82NGUwODBkYyAodW5zaWduZWQgbG9uZywgdm9pZCAqLCBs b25nKTsKZXh0ZXJuIHZvaWQgX19pYTY0X21lbXNldF9jX2lvX1JzbXBfYmZmNzBjODggKHVuc2ln bmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIGxvbmcpOwoKI2RlZmluZSBtZW1jcHlfZnJvbWlvKHRv LCBmcm9tLCBsZW4pIF9faWE2NF9tZW1jcHlfZnJvbWlvKCh0byksKHVuc2lnbmVkIGxvbmcpKGZy b20pLChsZW4pKQoKI2RlZmluZSBtZW1jcHlfdG9pbyh0bywgZnJvbSwgbGVuKSBfX2lhNjRfbWVt Y3B5X3RvaW8oKHVuc2lnbmVkIGxvbmcpKHRvKSwoZnJvbSksKGxlbikpCgojZGVmaW5lIG1lbXNl dF9pbyhhZGRyLCBjLCBsZW4pIF9faWE2NF9tZW1zZXRfY19pbygodW5zaWduZWQgbG9uZykoYWRk ciksMHgwMTAxMDEwMTAxMDEwMTAxVUwqKHU4KShjKSwobGVuKSkKIyAyMSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9hc20vc21wLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMQojIDIyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2FzbS9zbXAuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0 cmFjZS5oIiAxCiMgMjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NtcC5oIiAy CgojZGVmaW5lIFhUUF9PRkZTRVQgMHgxZTAwMDgKCiNkZWZpbmUgU01QX0lSUV9SRURJUkVDVElP TiAoMSA8PCAwKQojZGVmaW5lIFNNUF9JUElfUkVESVJFQ1RJT04gKDEgPDwgMSkKCiNkZWZpbmUg c21wX3Byb2Nlc3Nvcl9pZCgpIChjdXJyZW50LT5wcm9jZXNzb3IpCgpleHRlcm4gc3RydWN0IHNt cF9ib290X2RhdGEgewogICAgICAgIGludCBjcHVfY291bnQ7CiAgICAgICAgaW50IGNwdV9waHlz X2lkWzMyXTsKfSBzbXBfYm9vdF9kYXRhIDsKCmV4dGVybiBjaGFyIG5vX2ludF9yb3V0aW5nIDsK CmV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGNwdV9vbmxpbmVfbWFwX1JzbXBfNTcxYjZh ODk7CmV4dGVybiB1bnNpZ25lZCBsb25nIGlwaV9iYXNlX2FkZHI7CmV4dGVybiB1bnNpZ25lZCBj aGFyIHNtcF9pbnRfcmVkaXJlY3Q7CmV4dGVybiBpbnQgc21wX251bV9jcHVzX1JzbXBfM2I4NjMz NGQ7CgpleHRlcm4gdm9sYXRpbGUgaW50IGlhNjRfY3B1X3RvX3NhcGljaWRfUnNtcF9lNTJkNzU1 ZltdOwojZGVmaW5lIGNwdV9waHlzaWNhbF9pZChpKSBpYTY0X2NwdV90b19zYXBpY2lkW2ldCiNk ZWZpbmUgY3B1X251bWJlcl9tYXAoaSkgKGkpCiNkZWZpbmUgY3B1X2xvZ2ljYWxfbWFwKGkpIChp KQoKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgYXBfd2FrZXVwX3ZlY3RvcjsKCgoKCgpzdGF0aWMgaW5s aW5lIGludApjcHVfbG9naWNhbF9pZCAoaW50IGNwdWlkKQp7CiAgICAgICAgaW50IGk7CgogICAg ICAgIGZvciAoaSA9IDA7IGkgPCBzbXBfbnVtX2NwdXNfUnNtcF8zYjg2MzM0ZDsgKytpKQogICAg ICAgICAgICAgICAgaWYgKGlhNjRfY3B1X3RvX3NhcGljaWRfUnNtcF9lNTJkNzU1ZltpXSA9PSAo X191MzIpIGNwdWlkKQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICByZXR1 cm4gaTsKfQojIDcyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zbXAuaCIKc3Rh dGljIGlubGluZSB2b2lkCm1pbl94dHAgKHZvaWQpCnsKICAgICAgICBpZiAoc21wX2ludF9yZWRp cmVjdCAmICgxIDw8IDApKQogICAgICAgICAgICAgICAgX193cml0ZWIoKDB4MDApLCAodm9pZCAq KSAoaXBpX2Jhc2VfYWRkciB8IDB4MWUwMDA4KSk7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApub3Jt YWxfeHRwICh2b2lkKQp7CiAgICAgICAgaWYgKHNtcF9pbnRfcmVkaXJlY3QgJiAoMSA8PCAwKSkK ICAgICAgICAgICAgICAgIF9fd3JpdGViKCgweDA4KSwgKHZvaWQgKikgKGlwaV9iYXNlX2FkZHIg fCAweDFlMDAwOCkpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKbWF4X3h0cCAodm9pZCkKewogICAg ICAgIGlmIChzbXBfaW50X3JlZGlyZWN0ICYgKDEgPDwgMCkpCiAgICAgICAgICAgICAgICBfX3dy aXRlYigoMHgwZiksICh2b2lkICopIChpcGlfYmFzZV9hZGRyIHwgMHgxZTAwMDgpKTsKfQoKc3Rh dGljIGlubGluZSB1bnNpZ25lZCBpbnQKaGFyZF9zbXBfcHJvY2Vzc29yX2lkICh2b2lkKQp7CiAg ICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyByZXNlcnZlZCA6IDE2OwogICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIGVpZCA6IDg7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgaWQgOiA4OwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGlnbm9y ZWQgOiAzMjsKICAgICAgICAgICAgICAgIH0gZjsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgYml0czsKICAgICAgICB9IGxpZDsKCiAgICAgICAgbGlkLmJpdHMgPSBpYTY0X2dldF9saWQo KTsKICAgICAgICByZXR1cm4gbGlkLmYuaWQgPDwgOCB8IGxpZC5mLmVpZDsKfQoKI2RlZmluZSBO T19QUk9DX0lEICgtMSkKI2RlZmluZSBQUk9DX0NIQU5HRV9QRU5BTFRZIDIwCgpleHRlcm4gdm9p ZCBpbml0X3NtcF9jb25maWcgKHZvaWQpOwpleHRlcm4gdm9pZCBzbXBfZG9fdGltZXIgKHN0cnVj dCBwdF9yZWdzICpyZWdzKTsKCmV4dGVybiBpbnQgc21wX2NhbGxfZnVuY3Rpb25fc2luZ2xlX1Jz bXBfYWY3ZTY4MDEgKGludCBjcHVpZCwgdm9pZCAoKmZ1bmMpICh2b2lkICppbmZvKSwgdm9pZCAq aW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXRyeSwgaW50 IHdhaXQpOwojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtcC5oIiAy CiMgMjQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc21wLmgiCmV4dGVybiB2 b2lkIHNtcF9zZW5kX3N0b3Aodm9pZCk7CgoKCgpleHRlcm4gdm9pZCBzbXBfc2VuZF9yZXNjaGVk dWxlKGludCBjcHUpOwoKCgoKCmV4dGVybiB2b2lkIHNtcF9ib290X2NwdXModm9pZCk7CgoKCgpl eHRlcm4gdm9pZCBzbXBfY2FsbGluKHZvaWQpOwoKCgoKZXh0ZXJuIHZvaWQgc21wX2NvbW1lbmNl KHZvaWQpOwoKCgoKZXh0ZXJuIGludCBzbXBfY2FsbF9mdW5jdGlvbl9Sc21wXzAwMTRiZmQxICh2 b2lkICgqZnVuYykgKHZvaWQgKmluZm8pLCB2b2lkICppbmZvLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgcmV0cnksIGludCB3YWl0KTsKCgoKCmV4dGVybiB2b2xhdGlsZSBpbnQg c21wX3RocmVhZHNfcmVhZHk7CgpleHRlcm4gaW50IHNtcF9udW1fY3B1c19Sc21wXzNiODYzMzRk OwoKZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgc21wX21zZ19kYXRhOwpleHRlcm4gdm9s YXRpbGUgaW50IHNtcF9zcmNfY3B1OwpleHRlcm4gdm9sYXRpbGUgaW50IHNtcF9tc2dfaWQ7Cgoj ZGVmaW5lIE1TR19BTExfQlVUX1NFTEYgMHg4MDAwCiNkZWZpbmUgTVNHX0FMTCAweDgwMDEKCiNk ZWZpbmUgTVNHX0lOVkFMSURBVEVfVExCIDB4MDAwMQojZGVmaW5lIE1TR19TVE9QX0NQVSAweDAw MDIKCgojZGVmaW5lIE1TR19SRVNDSEVEVUxFIDB4MDAwMwojZGVmaW5lIE1TR19DQUxMX0ZVTkNU SU9OIDB4MDAwNAojIDI0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVk LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R0eS5oIiAxCgoj ZGVmaW5lIF9MSU5VWF9UVFlfSAojIDEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L3R0eS5oIgojZGVmaW5lIE1JTl9OUl9DT05TT0xFUyAxCiNkZWZpbmUgTUFYX05SX0NPTlNP TEVTIDYzCiNkZWZpbmUgTUFYX05SX1VTRVJfQ09OU09MRVMgNjMKCgoKCiMgMSAiL3Vzci9sb2Nh bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDIwICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2xpbnV4L3R0eS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9mcy5oIiAxCiMgMjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvdHR5LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21h am9yLmgiIDEKIyAyMiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHkuaCIg MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGVybWlvcy5oIiAxCgoj ZGVmaW5lIF9MSU5VWF9URVJNSU9TX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC90eXBlcy5oIiAxCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC90ZXJtaW9zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJt aW9zLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1RFUk1JT1NfSAojIDExICIvdXNyL2xvY2FsL3Ny Yy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtaW9zLmgiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9hc20vdGVybWJpdHMuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfVEVSTUJJVFNfSAoj IDExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtYml0cy5oIgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcG9zaXhfdHlwZXMuaCIgMQojIDEyICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtYml0cy5oIiAyCgp0eXBlZGVmIHVu c2lnbmVkIGNoYXIgY2NfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgc3BlZWRfdDsKdHlwZWRlZiB1 bnNpZ25lZCBpbnQgdGNmbGFnX3Q7CgojZGVmaW5lIE5DQ1MgMTkKc3RydWN0IHRlcm1pb3Mgewog ICAgICAgIHRjZmxhZ190IGNfaWZsYWc7CiAgICAgICAgdGNmbGFnX3QgY19vZmxhZzsKICAgICAg ICB0Y2ZsYWdfdCBjX2NmbGFnOwogICAgICAgIHRjZmxhZ190IGNfbGZsYWc7CiAgICAgICAgY2Nf dCBjX2xpbmU7CiAgICAgICAgY2NfdCBjX2NjWzE5XTsKfTsKCgojZGVmaW5lIFZJTlRSIDAKI2Rl ZmluZSBWUVVJVCAxCiNkZWZpbmUgVkVSQVNFIDIKI2RlZmluZSBWS0lMTCAzCiNkZWZpbmUgVkVP RiA0CiNkZWZpbmUgVlRJTUUgNQojZGVmaW5lIFZNSU4gNgojZGVmaW5lIFZTV1RDIDcKI2RlZmlu ZSBWU1RBUlQgOAojZGVmaW5lIFZTVE9QIDkKI2RlZmluZSBWU1VTUCAxMAojZGVmaW5lIFZFT0wg MTEKI2RlZmluZSBWUkVQUklOVCAxMgojZGVmaW5lIFZESVNDQVJEIDEzCiNkZWZpbmUgVldFUkFT RSAxNAojZGVmaW5lIFZMTkVYVCAxNQojZGVmaW5lIFZFT0wyIDE2CgoKI2RlZmluZSBJR05CUksg MDAwMDAwMQojZGVmaW5lIEJSS0lOVCAwMDAwMDAyCiNkZWZpbmUgSUdOUEFSIDAwMDAwMDQKI2Rl ZmluZSBQQVJNUksgMDAwMDAxMAojZGVmaW5lIElOUENLIDAwMDAwMjAKI2RlZmluZSBJU1RSSVAg MDAwMDA0MAojZGVmaW5lIElOTENSIDAwMDAxMDAKI2RlZmluZSBJR05DUiAwMDAwMjAwCiNkZWZp bmUgSUNSTkwgMDAwMDQwMAojZGVmaW5lIElVQ0xDIDAwMDEwMDAKI2RlZmluZSBJWE9OIDAwMDIw MDAKI2RlZmluZSBJWEFOWSAwMDA0MDAwCiNkZWZpbmUgSVhPRkYgMDAxMDAwMAojZGVmaW5lIElN QVhCRUwgMDAyMDAwMAoKCiNkZWZpbmUgT1BPU1QgMDAwMDAwMQojZGVmaW5lIE9MQ1VDIDAwMDAw MDIKI2RlZmluZSBPTkxDUiAwMDAwMDA0CiNkZWZpbmUgT0NSTkwgMDAwMDAxMAojZGVmaW5lIE9O T0NSIDAwMDAwMjAKI2RlZmluZSBPTkxSRVQgMDAwMDA0MAojZGVmaW5lIE9GSUxMIDAwMDAxMDAK I2RlZmluZSBPRkRFTCAwMDAwMjAwCiNkZWZpbmUgTkxETFkgMDAwMDQwMAojZGVmaW5lIE5MMCAw MDAwMDAwCiNkZWZpbmUgTkwxIDAwMDA0MDAKI2RlZmluZSBDUkRMWSAwMDAzMDAwCiNkZWZpbmUg Q1IwIDAwMDAwMDAKI2RlZmluZSBDUjEgMDAwMTAwMAojZGVmaW5lIENSMiAwMDAyMDAwCiNkZWZp bmUgQ1IzIDAwMDMwMDAKI2RlZmluZSBUQUJETFkgMDAxNDAwMAojZGVmaW5lIFRBQjAgMDAwMDAw MAojZGVmaW5lIFRBQjEgMDAwNDAwMAojZGVmaW5lIFRBQjIgMDAxMDAwMAojZGVmaW5lIFRBQjMg MDAxNDAwMAojZGVmaW5lIFhUQUJTIDAwMTQwMDAKI2RlZmluZSBCU0RMWSAwMDIwMDAwCiNkZWZp bmUgQlMwIDAwMDAwMDAKI2RlZmluZSBCUzEgMDAyMDAwMAojZGVmaW5lIFZURExZIDAwNDAwMDAK I2RlZmluZSBWVDAgMDAwMDAwMAojZGVmaW5lIFZUMSAwMDQwMDAwCiNkZWZpbmUgRkZETFkgMDEw MDAwMAojZGVmaW5lIEZGMCAwMDAwMDAwCiNkZWZpbmUgRkYxIDAxMDAwMDAKCgojZGVmaW5lIENC QVVEIDAwMTAwMTcKI2RlZmluZSBCMCAwMDAwMDAwCiNkZWZpbmUgQjUwIDAwMDAwMDEKI2RlZmlu ZSBCNzUgMDAwMDAwMgojZGVmaW5lIEIxMTAgMDAwMDAwMwojZGVmaW5lIEIxMzQgMDAwMDAwNAoj ZGVmaW5lIEIxNTAgMDAwMDAwNQojZGVmaW5lIEIyMDAgMDAwMDAwNgojZGVmaW5lIEIzMDAgMDAw MDAwNwojZGVmaW5lIEI2MDAgMDAwMDAxMAojZGVmaW5lIEIxMjAwIDAwMDAwMTEKI2RlZmluZSBC MTgwMCAwMDAwMDEyCiNkZWZpbmUgQjI0MDAgMDAwMDAxMwojZGVmaW5lIEI0ODAwIDAwMDAwMTQK I2RlZmluZSBCOTYwMCAwMDAwMDE1CiNkZWZpbmUgQjE5MjAwIDAwMDAwMTYKI2RlZmluZSBCMzg0 MDAgMDAwMDAxNwojZGVmaW5lIEVYVEEgQjE5MjAwCiNkZWZpbmUgRVhUQiBCMzg0MDAKI2RlZmlu ZSBDU0laRSAwMDAwMDYwCiNkZWZpbmUgQ1M1IDAwMDAwMDAKI2RlZmluZSBDUzYgMDAwMDAyMAoj ZGVmaW5lIENTNyAwMDAwMDQwCiNkZWZpbmUgQ1M4IDAwMDAwNjAKI2RlZmluZSBDU1RPUEIgMDAw MDEwMAojZGVmaW5lIENSRUFEIDAwMDAyMDAKI2RlZmluZSBQQVJFTkIgMDAwMDQwMAojZGVmaW5l IFBBUk9ERCAwMDAxMDAwCiNkZWZpbmUgSFVQQ0wgMDAwMjAwMAojZGVmaW5lIENMT0NBTCAwMDA0 MDAwCiNkZWZpbmUgQ0JBVURFWCAwMDEwMDAwCiNkZWZpbmUgQjU3NjAwIDAwMTAwMDEKI2RlZmlu ZSBCMTE1MjAwIDAwMTAwMDIKI2RlZmluZSBCMjMwNDAwIDAwMTAwMDMKI2RlZmluZSBCNDYwODAw IDAwMTAwMDQKI2RlZmluZSBCNTAwMDAwIDAwMTAwMDUKI2RlZmluZSBCNTc2MDAwIDAwMTAwMDYK I2RlZmluZSBCOTIxNjAwIDAwMTAwMDcKI2RlZmluZSBCMTAwMDAwMCAwMDEwMDEwCiNkZWZpbmUg QjExNTIwMDAgMDAxMDAxMQojZGVmaW5lIEIxNTAwMDAwIDAwMTAwMTIKI2RlZmluZSBCMjAwMDAw MCAwMDEwMDEzCiNkZWZpbmUgQjI1MDAwMDAgMDAxMDAxNAojZGVmaW5lIEIzMDAwMDAwIDAwMTAw MTUKI2RlZmluZSBCMzUwMDAwMCAwMDEwMDE2CiNkZWZpbmUgQjQwMDAwMDAgMDAxMDAxNwojZGVm aW5lIENJQkFVRCAwMDIwMDM2MDAwMDAKI2RlZmluZSBDTVNQQVIgMDEwMDAwMDAwMDAwCiNkZWZp bmUgQ1JUU0NUUyAwMjAwMDAwMDAwMDAKCgojZGVmaW5lIElTSUcgMDAwMDAwMQojZGVmaW5lIElD QU5PTiAwMDAwMDAyCiNkZWZpbmUgWENBU0UgMDAwMDAwNAojZGVmaW5lIEVDSE8gMDAwMDAxMAoj ZGVmaW5lIEVDSE9FIDAwMDAwMjAKI2RlZmluZSBFQ0hPSyAwMDAwMDQwCiNkZWZpbmUgRUNIT05M IDAwMDAxMDAKI2RlZmluZSBOT0ZMU0ggMDAwMDIwMAojZGVmaW5lIFRPU1RPUCAwMDAwNDAwCiNk ZWZpbmUgRUNIT0NUTCAwMDAxMDAwCiNkZWZpbmUgRUNIT1BSVCAwMDAyMDAwCiNkZWZpbmUgRUNI T0tFIDAwMDQwMDAKI2RlZmluZSBGTFVTSE8gMDAxMDAwMAojZGVmaW5lIFBFTkRJTiAwMDQwMDAw CiNkZWZpbmUgSUVYVEVOIDAxMDAwMDAKCgojZGVmaW5lIFRDT09GRiAwCiNkZWZpbmUgVENPT04g MQojZGVmaW5lIFRDSU9GRiAyCiNkZWZpbmUgVENJT04gMwoKCiNkZWZpbmUgVENJRkxVU0ggMAoj ZGVmaW5lIFRDT0ZMVVNIIDEKI2RlZmluZSBUQ0lPRkxVU0ggMgoKCiNkZWZpbmUgVENTQU5PVyAw CiNkZWZpbmUgVENTQURSQUlOIDEKI2RlZmluZSBUQ1NBRkxVU0ggMgojIDEyICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtaW9zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2FzbS9pb2N0bHMuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfSU9DVExTX0gK CgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9pb2N0bC5oIiAxCiMg MTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lvY3Rscy5oIiAyCgoKCiNkZWZp bmUgVENHRVRTIDB4NTQwMQojZGVmaW5lIFRDU0VUUyAweDU0MDIKI2RlZmluZSBUQ1NFVFNXIDB4 NTQwMwojZGVmaW5lIFRDU0VUU0YgMHg1NDA0CiNkZWZpbmUgVENHRVRBIDB4NTQwNQojZGVmaW5l IFRDU0VUQSAweDU0MDYKI2RlZmluZSBUQ1NFVEFXIDB4NTQwNwojZGVmaW5lIFRDU0VUQUYgMHg1 NDA4CiNkZWZpbmUgVENTQlJLIDB4NTQwOQojZGVmaW5lIFRDWE9OQyAweDU0MEEKI2RlZmluZSBU Q0ZMU0ggMHg1NDBCCiNkZWZpbmUgVElPQ0VYQ0wgMHg1NDBDCiNkZWZpbmUgVElPQ05YQ0wgMHg1 NDBECiNkZWZpbmUgVElPQ1NDVFRZIDB4NTQwRQojZGVmaW5lIFRJT0NHUEdSUCAweDU0MEYKI2Rl ZmluZSBUSU9DU1BHUlAgMHg1NDEwCiNkZWZpbmUgVElPQ09VVFEgMHg1NDExCiNkZWZpbmUgVElP Q1NUSSAweDU0MTIKI2RlZmluZSBUSU9DR1dJTlNaIDB4NTQxMwojZGVmaW5lIFRJT0NTV0lOU1og MHg1NDE0CiNkZWZpbmUgVElPQ01HRVQgMHg1NDE1CiNkZWZpbmUgVElPQ01CSVMgMHg1NDE2CiNk ZWZpbmUgVElPQ01CSUMgMHg1NDE3CiNkZWZpbmUgVElPQ01TRVQgMHg1NDE4CiNkZWZpbmUgVElP Q0dTT0ZUQ0FSIDB4NTQxOQojZGVmaW5lIFRJT0NTU09GVENBUiAweDU0MUEKI2RlZmluZSBGSU9O UkVBRCAweDU0MUIKI2RlZmluZSBUSU9DSU5RIEZJT05SRUFECiNkZWZpbmUgVElPQ0xJTlVYIDB4 NTQxQwojZGVmaW5lIFRJT0NDT05TIDB4NTQxRAojZGVmaW5lIFRJT0NHU0VSSUFMIDB4NTQxRQoj ZGVmaW5lIFRJT0NTU0VSSUFMIDB4NTQxRgojZGVmaW5lIFRJT0NQS1QgMHg1NDIwCiNkZWZpbmUg RklPTkJJTyAweDU0MjEKI2RlZmluZSBUSU9DTk9UVFkgMHg1NDIyCiNkZWZpbmUgVElPQ1NFVEQg MHg1NDIzCiNkZWZpbmUgVElPQ0dFVEQgMHg1NDI0CiNkZWZpbmUgVENTQlJLUCAweDU0MjUKI2Rl ZmluZSBUSU9DVFRZR1NUUlVDVCAweDU0MjYKI2RlZmluZSBUSU9DU0JSSyAweDU0MjcKI2RlZmlu ZSBUSU9DQ0JSSyAweDU0MjgKI2RlZmluZSBUSU9DR1NJRCAweDU0MjkKI2RlZmluZSBUSU9DR1BU TiBfSU9SKCdUJywweDMwLCB1bnNpZ25lZCBpbnQpCiNkZWZpbmUgVElPQ1NQVExDSyBfSU9XKCdU JywweDMxLCBpbnQpCgojZGVmaW5lIEZJT05DTEVYIDB4NTQ1MAojZGVmaW5lIEZJT0NMRVggMHg1 NDUxCiNkZWZpbmUgRklPQVNZTkMgMHg1NDUyCiNkZWZpbmUgVElPQ1NFUkNPTkZJRyAweDU0NTMK I2RlZmluZSBUSU9DU0VSR1dJTEQgMHg1NDU0CiNkZWZpbmUgVElPQ1NFUlNXSUxEIDB4NTQ1NQoj ZGVmaW5lIFRJT0NHTENLVFJNSU9TIDB4NTQ1NgojZGVmaW5lIFRJT0NTTENLVFJNSU9TIDB4NTQ1 NwojZGVmaW5lIFRJT0NTRVJHU1RSVUNUIDB4NTQ1OAojZGVmaW5lIFRJT0NTRVJHRVRMU1IgMHg1 NDU5CiNkZWZpbmUgVElPQ1NFUkdFVE1VTFRJIDB4NTQ1QQojZGVmaW5lIFRJT0NTRVJTRVRNVUxU SSAweDU0NUIKCiNkZWZpbmUgVElPQ01JV0FJVCAweDU0NUMKI2RlZmluZSBUSU9DR0lDT1VOVCAw eDU0NUQKI2RlZmluZSBUSU9DR0hBWUVTRVNQIDB4NTQ1RQojZGVmaW5lIFRJT0NTSEFZRVNFU1Ag MHg1NDVGCgoKI2RlZmluZSBUSU9DUEtUX0RBVEEgMAojZGVmaW5lIFRJT0NQS1RfRkxVU0hSRUFE IDEKI2RlZmluZSBUSU9DUEtUX0ZMVVNIV1JJVEUgMgojZGVmaW5lIFRJT0NQS1RfU1RPUCA0CiNk ZWZpbmUgVElPQ1BLVF9TVEFSVCA4CiNkZWZpbmUgVElPQ1BLVF9OT1NUT1AgMTYKI2RlZmluZSBU SU9DUEtUX0RPU1RPUCAzMgoKI2RlZmluZSBUSU9DU0VSX1RFTVQgMHgwMQojIDEzICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtaW9zLmgiIDIKCnN0cnVjdCB3aW5zaXplIHsK ICAgICAgICB1bnNpZ25lZCBzaG9ydCB3c19yb3c7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgd3Nf Y29sOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHdzX3hwaXhlbDsKICAgICAgICB1bnNpZ25lZCBz aG9ydCB3c195cGl4ZWw7Cn07CgojZGVmaW5lIE5DQyA4CnN0cnVjdCB0ZXJtaW8gewogICAgICAg IHVuc2lnbmVkIHNob3J0IGNfaWZsYWc7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgY19vZmxhZzsK ICAgICAgICB1bnNpZ25lZCBzaG9ydCBjX2NmbGFnOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGNf bGZsYWc7CiAgICAgICAgdW5zaWduZWQgY2hhciBjX2xpbmU7CiAgICAgICAgdW5zaWduZWQgY2hh ciBjX2NjWzhdOwp9OwoKCiNkZWZpbmUgVElPQ01fTEUgMHgwMDEKI2RlZmluZSBUSU9DTV9EVFIg MHgwMDIKI2RlZmluZSBUSU9DTV9SVFMgMHgwMDQKI2RlZmluZSBUSU9DTV9TVCAweDAwOAojZGVm aW5lIFRJT0NNX1NSIDB4MDEwCiNkZWZpbmUgVElPQ01fQ1RTIDB4MDIwCiNkZWZpbmUgVElPQ01f Q0FSIDB4MDQwCiNkZWZpbmUgVElPQ01fUk5HIDB4MDgwCiNkZWZpbmUgVElPQ01fRFNSIDB4MTAw CiNkZWZpbmUgVElPQ01fQ0QgVElPQ01fQ0FSCiNkZWZpbmUgVElPQ01fUkkgVElPQ01fUk5HCiNk ZWZpbmUgVElPQ01fT1VUMSAweDIwMDAKI2RlZmluZSBUSU9DTV9PVVQyIDB4NDAwMAojZGVmaW5l IFRJT0NNX0xPT1AgMHg4MDAwCgoKCgojZGVmaW5lIE5fVFRZIDAKI2RlZmluZSBOX1NMSVAgMQoj ZGVmaW5lIE5fTU9VU0UgMgojZGVmaW5lIE5fUFBQIDMKI2RlZmluZSBOX1NUUklQIDQKI2RlZmlu ZSBOX0FYMjUgNQojZGVmaW5lIE5fWDI1IDYKI2RlZmluZSBOXzZQQUNLIDcKI2RlZmluZSBOX01B U0MgOAojZGVmaW5lIE5fUjM5NjQgOQojZGVmaW5lIE5fUFJPRklCVVNfRkRMIDEwCiNkZWZpbmUg Tl9JUkRBIDExCiNkZWZpbmUgTl9TTVNCTE9DSyAxMgojZGVmaW5lIE5fSERMQyAxMwojZGVmaW5l IE5fU1lOQ19QUFAgMTQKI2RlZmluZSBOX0hDSSAxNQojIDc1ICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2FzbS90ZXJtaW9zLmgiCiNkZWZpbmUgSU5JVF9DX0NDICJcMDAzXDAzNFwxNzdc MDI1XDAwNFwwXDFcMFwwMjFcMDIzXDAzMlwwXDAyMlwwMTdcMDI3XDAyNlwwIgoKCgoKI2RlZmlu ZSBTRVRfTE9XX1RFUk1JT1NfQklUUyh0ZXJtaW9zLCB0ZXJtaW8sIHgpIHsgdW5zaWduZWQgc2hv cnQgX190bXA7IGdldF91c2VyKF9fdG1wLCYodGVybWlvKS0+eCk7ICoodW5zaWduZWQgc2hvcnQg KikgJih0ZXJtaW9zKS0+eCA9IF9fdG1wOyB9CgoKCgoKI2RlZmluZSB1c2VyX3Rlcm1pb190b19r ZXJuZWxfdGVybWlvcyh0ZXJtaW9zLCB0ZXJtaW8pICh7IFNFVF9MT1dfVEVSTUlPU19CSVRTKHRl cm1pb3MsIHRlcm1pbywgY19pZmxhZyk7IFNFVF9MT1dfVEVSTUlPU19CSVRTKHRlcm1pb3MsIHRl cm1pbywgY19vZmxhZyk7IFNFVF9MT1dfVEVSTUlPU19CSVRTKHRlcm1pb3MsIHRlcm1pbywgY19j ZmxhZyk7IFNFVF9MT1dfVEVSTUlPU19CSVRTKHRlcm1pb3MsIHRlcm1pbywgY19sZmxhZyk7IGNv cHlfZnJvbV91c2VyKCh0ZXJtaW9zKS0+Y19jYywgKHRlcm1pbyktPmNfY2MsIE5DQyk7IH0pCiMg OTggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Rlcm1pb3MuaCIKI2RlZmluZSBr ZXJuZWxfdGVybWlvc190b191c2VyX3Rlcm1pbyh0ZXJtaW8sIHRlcm1pb3MpICh7IHB1dF91c2Vy KCh0ZXJtaW9zKS0+Y19pZmxhZywgJih0ZXJtaW8pLT5jX2lmbGFnKTsgcHV0X3VzZXIoKHRlcm1p b3MpLT5jX29mbGFnLCAmKHRlcm1pbyktPmNfb2ZsYWcpOyBwdXRfdXNlcigodGVybWlvcyktPmNf Y2ZsYWcsICYodGVybWlvKS0+Y19jZmxhZyk7IHB1dF91c2VyKCh0ZXJtaW9zKS0+Y19sZmxhZywg Jih0ZXJtaW8pLT5jX2xmbGFnKTsgcHV0X3VzZXIoKHRlcm1pb3MpLT5jX2xpbmUsICYodGVybWlv KS0+Y19saW5lKTsgY29weV90b191c2VyKCh0ZXJtaW8pLT5jX2NjLCAodGVybWlvcyktPmNfY2Ms IE5DQyk7IH0pCiMgMTA4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtaW9z LmgiCiNkZWZpbmUgdXNlcl90ZXJtaW9zX3RvX2tlcm5lbF90ZXJtaW9zKGssIHUpIGNvcHlfZnJv bV91c2VyKGssIHUsIHNpemVvZihzdHJ1Y3QgdGVybWlvcykpCiNkZWZpbmUga2VybmVsX3Rlcm1p b3NfdG9fdXNlcl90ZXJtaW9zKHUsIGspIGNvcHlfdG9fdXNlcih1LCBrLCBzaXplb2Yoc3RydWN0 IHRlcm1pb3MpKQojIDYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGVybWlv cy5oIiAyCiMgMjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHR5LmgiIDIK IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3RxdWV1ZS5oIiAxCiMgMjQg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHR5LmgiIDIKIyAxICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R0eV9kcml2ZXIuaCIgMQoKI2RlZmluZSBfTElO VVhfVFRZX0RSSVZFUl9ICiMgMTE4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4 L3R0eV9kcml2ZXIuaCIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Zz LmgiIDEKIyAxMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHR5X2RyaXZl ci5oIiAyCgpzdHJ1Y3QgdHR5X2RyaXZlciB7CiAgICAgICAgaW50IG1hZ2ljOwogICAgICAgIGNv bnN0IGNoYXIgKmRyaXZlcl9uYW1lOwogICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgICAgICAg aW50IG5hbWVfYmFzZTsKICAgICAgICBzaG9ydCBtYWpvcjsKICAgICAgICBzaG9ydCBtaW5vcl9z dGFydDsKICAgICAgICBzaG9ydCBudW07CiAgICAgICAgc2hvcnQgdHlwZTsKICAgICAgICBzaG9y dCBzdWJ0eXBlOwogICAgICAgIHN0cnVjdCB0ZXJtaW9zIGluaXRfdGVybWlvczsKICAgICAgICBp bnQgZmxhZ3M7CiAgICAgICAgaW50ICpyZWZjb3VudDsKICAgICAgICBzdHJ1Y3QgcHJvY19kaXJf ZW50cnkgKnByb2NfZW50cnk7CiAgICAgICAgc3RydWN0IHR0eV9kcml2ZXIgKm90aGVyOwoKCgoK ICAgICAgICBzdHJ1Y3QgdHR5X3N0cnVjdCAqKnRhYmxlOwogICAgICAgIHN0cnVjdCB0ZXJtaW9z ICoqdGVybWlvczsKICAgICAgICBzdHJ1Y3QgdGVybWlvcyAqKnRlcm1pb3NfbG9ja2VkOwogICAg ICAgIHZvaWQgKmRyaXZlcl9zdGF0ZTsKCgoKCgogICAgICAgIGludCAoKm9wZW4pKHN0cnVjdCB0 dHlfc3RydWN0ICogdHR5LCBzdHJ1Y3QgZmlsZSAqIGZpbHApOwogICAgICAgIHZvaWQgKCpjbG9z ZSkoc3RydWN0IHR0eV9zdHJ1Y3QgKiB0dHksIHN0cnVjdCBmaWxlICogZmlscCk7CiAgICAgICAg aW50ICgqd3JpdGUpKHN0cnVjdCB0dHlfc3RydWN0ICogdHR5LCBpbnQgZnJvbV91c2VyLAogICAg ICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpOwog ICAgICAgIHZvaWQgKCpwdXRfY2hhcikoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgdW5zaWduZWQg Y2hhciBjaCk7CiAgICAgICAgdm9pZCAoKmZsdXNoX2NoYXJzKShzdHJ1Y3QgdHR5X3N0cnVjdCAq dHR5KTsKICAgICAgICBpbnQgKCp3cml0ZV9yb29tKShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KTsK ICAgICAgICBpbnQgKCpjaGFyc19pbl9idWZmZXIpKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpOwog ICAgICAgIGludCAoKmlvY3RsKShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgZmlsZSAq IGZpbGUsCiAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9u ZyBhcmcpOwogICAgICAgIHZvaWQgKCpzZXRfdGVybWlvcykoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0 eSwgc3RydWN0IHRlcm1pb3MgKiBvbGQpOwogICAgICAgIHZvaWQgKCp0aHJvdHRsZSkoc3RydWN0 IHR0eV9zdHJ1Y3QgKiB0dHkpOwogICAgICAgIHZvaWQgKCp1bnRocm90dGxlKShzdHJ1Y3QgdHR5 X3N0cnVjdCAqIHR0eSk7CiAgICAgICAgdm9pZCAoKnN0b3ApKHN0cnVjdCB0dHlfc3RydWN0ICp0 dHkpOwogICAgICAgIHZvaWQgKCpzdGFydCkoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CiAgICAg ICAgdm9pZCAoKmhhbmd1cCkoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CiAgICAgICAgdm9pZCAo KmJyZWFrX2N0bCkoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgaW50IHN0YXRlKTsKICAgICAgICB2 b2lkICgqZmx1c2hfYnVmZmVyKShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KTsKICAgICAgICB2b2lk ICgqc2V0X2xkaXNjKShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KTsKICAgICAgICB2b2lkICgqd2Fp dF91bnRpbF9zZW50KShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBpbnQgdGltZW91dCk7CiAgICAg ICAgdm9pZCAoKnNlbmRfeGNoYXIpKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGNoYXIgY2gpOwog ICAgICAgIGludCAoKnJlYWRfcHJvYykoY2hhciAqcGFnZSwgY2hhciAqKnN0YXJ0LCBvZmZfdCBv ZmYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50LCBpbnQgKmVvZiwgdm9pZCAq ZGF0YSk7CiAgICAgICAgaW50ICgqd3JpdGVfcHJvYykoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0 IGNoYXIgKmJ1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGNv dW50LCB2b2lkICpkYXRhKTsKCgoKCiAgICAgICAgc3RydWN0IHR0eV9kcml2ZXIgKm5leHQ7CiAg ICAgICAgc3RydWN0IHR0eV9kcml2ZXIgKnByZXY7Cn07CgoKI2RlZmluZSBUVFlfRFJJVkVSX01B R0lDIDB4NTQwMgojIDIwNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHlf ZHJpdmVyLmgiCiNkZWZpbmUgVFRZX0RSSVZFUl9JTlNUQUxMRUQgMHgwMDAxCiNkZWZpbmUgVFRZ X0RSSVZFUl9SRVNFVF9URVJNSU9TIDB4MDAwMgojZGVmaW5lIFRUWV9EUklWRVJfUkVBTF9SQVcg MHgwMDA0CiNkZWZpbmUgVFRZX0RSSVZFUl9OT19ERVZGUyAweDAwMDgKCgojZGVmaW5lIFRUWV9E UklWRVJfVFlQRV9TWVNURU0gMHgwMDAxCiNkZWZpbmUgVFRZX0RSSVZFUl9UWVBFX0NPTlNPTEUg MHgwMDAyCiNkZWZpbmUgVFRZX0RSSVZFUl9UWVBFX1NFUklBTCAweDAwMDMKI2RlZmluZSBUVFlf RFJJVkVSX1RZUEVfUFRZIDB4MDAwNAojZGVmaW5lIFRUWV9EUklWRVJfVFlQRV9TQ0MgMHgwMDA1 CiNkZWZpbmUgVFRZX0RSSVZFUl9UWVBFX1NZU0NPTlMgMHgwMDA2CgoKI2RlZmluZSBTWVNURU1f VFlQRV9UVFkgMHgwMDAxCiNkZWZpbmUgU1lTVEVNX1RZUEVfQ09OU09MRSAweDAwMDIKI2RlZmlu ZSBTWVNURU1fVFlQRV9TWVNDT05TIDB4MDAwMwojZGVmaW5lIFNZU1RFTV9UWVBFX1NZU1BUTVgg MHgwMDA0CgoKI2RlZmluZSBQVFlfVFlQRV9NQVNURVIgMHgwMDAxCiNkZWZpbmUgUFRZX1RZUEVf U0xBVkUgMHgwMDAyCgoKI2RlZmluZSBTRVJJQUxfVFlQRV9OT1JNQUwgMQojZGVmaW5lIFNFUklB TF9UWVBFX0NBTExPVVQgMgojIDI1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4 L3R0eS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHlfbGRp c2MuaCIgMQoKI2RlZmluZSBfTElOVVhfVFRZX0xESVNDX0gKIyAxMDAgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvbGludXgvdHR5X2xkaXNjLmgiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9saW51eC9mcy5oIiAxCiMgMTAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L3R0eV9sZGlzYy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC93YWl0LmgiIDEKIyAxMDIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu dXgvdHR5X2xkaXNjLmgiIDIKCnN0cnVjdCB0dHlfbGRpc2MgewogICAgICAgIGludCBtYWdpYzsK ICAgICAgICBjaGFyICpuYW1lOwogICAgICAgIGludCBudW07CiAgICAgICAgaW50IGZsYWdzOwoK CgogICAgICAgIGludCAoKm9wZW4pKHN0cnVjdCB0dHlfc3RydWN0ICopOwogICAgICAgIHZvaWQg KCpjbG9zZSkoc3RydWN0IHR0eV9zdHJ1Y3QgKik7CiAgICAgICAgdm9pZCAoKmZsdXNoX2J1ZmZl cikoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CiAgICAgICAgc3NpemVfdCAoKmNoYXJzX2luX2J1 ZmZlcikoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CiAgICAgICAgc3NpemVfdCAoKnJlYWQpKHN0 cnVjdCB0dHlfc3RydWN0ICogdHR5LCBzdHJ1Y3QgZmlsZSAqIGZpbGUsCiAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKiBidWYsIHNpemVfdCBucik7CiAgICAgICAgc3NpemVf dCAoKndyaXRlKShzdHJ1Y3QgdHR5X3N0cnVjdCAqIHR0eSwgc3RydWN0IGZpbGUgKiBmaWxlLAog ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqIGJ1Ziwgc2l6ZV90 IG5yKTsKICAgICAgICBpbnQgKCppb2N0bCkoc3RydWN0IHR0eV9zdHJ1Y3QgKiB0dHksIHN0cnVj dCBmaWxlICogZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjbWQs IHVuc2lnbmVkIGxvbmcgYXJnKTsKICAgICAgICB2b2lkICgqc2V0X3Rlcm1pb3MpKHN0cnVjdCB0 dHlfc3RydWN0ICp0dHksIHN0cnVjdCB0ZXJtaW9zICogb2xkKTsKICAgICAgICB1bnNpZ25lZCBp bnQgKCpwb2xsKShzdHJ1Y3QgdHR5X3N0cnVjdCAqLCBzdHJ1Y3QgZmlsZSAqLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdCAqKTsKCgoKCiAgICAg ICAgdm9pZCAoKnJlY2VpdmVfYnVmKShzdHJ1Y3QgdHR5X3N0cnVjdCAqLCBjb25zdCB1bnNpZ25l ZCBjaGFyICpjcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmZwLCBpbnQg Y291bnQpOwogICAgICAgIGludCAoKnJlY2VpdmVfcm9vbSkoc3RydWN0IHR0eV9zdHJ1Y3QgKik7 CiAgICAgICAgdm9pZCAoKndyaXRlX3dha2V1cCkoc3RydWN0IHR0eV9zdHJ1Y3QgKik7Cn07Cgoj ZGVmaW5lIFRUWV9MRElTQ19NQUdJQyAweDU0MDMKCiNkZWZpbmUgTERJU0NfRkxBR19ERUZJTkVE IDB4MDAwMDAwMDEKIyAyNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHku aCIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIgMQoj IDI4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R0eS5oIiAyCiMgMzYgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHR5LmgiCiNkZWZpbmUgTlJfUFRZUyAy NTYKI2RlZmluZSBOUl9MRElTQ1MgMTYKCgoKCgoKCiNkZWZpbmUgVU5JWDk4X05SX01BSk9SUyAo KENPTkZJR19VTklYOThfUFRZX0NPVU5UK05SX1BUWVMtMSkvTlJfUFRZUykKIyA1OSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHkuaCIKc3RydWN0IHNjcmVlbl9pbmZvIHsK ICAgICAgICB1bnNpZ25lZCBjaGFyIG9yaWdfeDsKICAgICAgICB1bnNpZ25lZCBjaGFyIG9yaWdf eTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBkb250dXNlMTsKICAgICAgICB1bnNpZ25lZCBzaG9y dCBvcmlnX3ZpZGVvX3BhZ2U7CiAgICAgICAgdW5zaWduZWQgY2hhciBvcmlnX3ZpZGVvX21vZGU7 CiAgICAgICAgdW5zaWduZWQgY2hhciBvcmlnX3ZpZGVvX2NvbHM7CiAgICAgICAgdW5zaWduZWQg c2hvcnQgdW51c2VkMjsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBvcmlnX3ZpZGVvX2VnYV9ieDsK ICAgICAgICB1bnNpZ25lZCBzaG9ydCB1bnVzZWQzOwogICAgICAgIHVuc2lnbmVkIGNoYXIgb3Jp Z192aWRlb19saW5lczsKICAgICAgICB1bnNpZ25lZCBjaGFyIG9yaWdfdmlkZW9faXNWR0E7CiAg ICAgICAgdW5zaWduZWQgc2hvcnQgb3JpZ192aWRlb19wb2ludHM7CgoKICAgICAgICB1bnNpZ25l ZCBzaG9ydCBsZmJfd2lkdGg7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgbGZiX2hlaWdodDsKICAg ICAgICB1bnNpZ25lZCBzaG9ydCBsZmJfZGVwdGg7CiAgICAgICAgdW5zaWduZWQgbG9uZyBsZmJf YmFzZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGxmYl9zaXplOwogICAgICAgIHVuc2lnbmVkIHNo b3J0IGRvbnR1c2UyLCBkb250dXNlMzsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBsZmJfbGluZWxl bmd0aDsKICAgICAgICB1bnNpZ25lZCBjaGFyIHJlZF9zaXplOwogICAgICAgIHVuc2lnbmVkIGNo YXIgcmVkX3BvczsKICAgICAgICB1bnNpZ25lZCBjaGFyIGdyZWVuX3NpemU7CiAgICAgICAgdW5z aWduZWQgY2hhciBncmVlbl9wb3M7CiAgICAgICAgdW5zaWduZWQgY2hhciBibHVlX3NpemU7CiAg ICAgICAgdW5zaWduZWQgY2hhciBibHVlX3BvczsKICAgICAgICB1bnNpZ25lZCBjaGFyIHJzdmRf c2l6ZTsKICAgICAgICB1bnNpZ25lZCBjaGFyIHJzdmRfcG9zOwogICAgICAgIHVuc2lnbmVkIHNo b3J0IHZlc2FwbV9zZWc7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdmVzYXBtX29mZjsKICAgICAg ICB1bnNpZ25lZCBzaG9ydCBwYWdlczsKCn07CgpleHRlcm4gc3RydWN0IHNjcmVlbl9pbmZvIHNj cmVlbl9pbmZvOwoKI2RlZmluZSBPUklHX1ggKHNjcmVlbl9pbmZvLm9yaWdfeCkKI2RlZmluZSBP UklHX1kgKHNjcmVlbl9pbmZvLm9yaWdfeSkKI2RlZmluZSBPUklHX1ZJREVPX01PREUgKHNjcmVl bl9pbmZvLm9yaWdfdmlkZW9fbW9kZSkKI2RlZmluZSBPUklHX1ZJREVPX0NPTFMgKHNjcmVlbl9p bmZvLm9yaWdfdmlkZW9fY29scykKI2RlZmluZSBPUklHX1ZJREVPX0VHQV9CWCAoc2NyZWVuX2lu Zm8ub3JpZ192aWRlb19lZ2FfYngpCiNkZWZpbmUgT1JJR19WSURFT19MSU5FUyAoc2NyZWVuX2lu Zm8ub3JpZ192aWRlb19saW5lcykKI2RlZmluZSBPUklHX1ZJREVPX0lTVkdBIChzY3JlZW5faW5m by5vcmlnX3ZpZGVvX2lzVkdBKQojZGVmaW5lIE9SSUdfVklERU9fUE9JTlRTIChzY3JlZW5faW5m by5vcmlnX3ZpZGVvX3BvaW50cykKCiNkZWZpbmUgVklERU9fVFlQRV9NREEgMHgxMAojZGVmaW5l IFZJREVPX1RZUEVfQ0dBIDB4MTEKI2RlZmluZSBWSURFT19UWVBFX0VHQU0gMHgyMAojZGVmaW5l IFZJREVPX1RZUEVfRUdBQyAweDIxCiNkZWZpbmUgVklERU9fVFlQRV9WR0FDIDB4MjIKI2RlZmlu ZSBWSURFT19UWVBFX1ZMRkIgMHgyMwoKI2RlZmluZSBWSURFT19UWVBFX1BJQ0FfUzMgMHgzMAoj ZGVmaW5lIFZJREVPX1RZUEVfTUlQU19HMzY0IDB4MzEKI2RlZmluZSBWSURFT19UWVBFX1NOSV9S TSAweDMyCiNkZWZpbmUgVklERU9fVFlQRV9TR0kgMHgzMwoKI2RlZmluZSBWSURFT19UWVBFX1RH QUMgMHg0MAoKI2RlZmluZSBWSURFT19UWVBFX1NVTiAweDUwCiNkZWZpbmUgVklERU9fVFlQRV9T VU5QQ0kgMHg1MQoKI2RlZmluZSBWSURFT19UWVBFX1BNQUMgMHg2MAoKCgoKCgojZGVmaW5lIF9f RElTQUJMRURfQ0hBUiAnXDAnCgoKCgoKCiNkZWZpbmUgVFRZX0ZMSVBCVUZfU0laRSA1MTIKCnN0 cnVjdCB0dHlfZmxpcF9idWZmZXIgewogICAgICAgIHN0cnVjdCB0cV9zdHJ1Y3QgdHF1ZXVlOwog ICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgcHR5X3NlbTsKICAgICAgICBjaGFyICpjaGFyX2J1Zl9w dHI7CiAgICAgICAgdW5zaWduZWQgY2hhciAqZmxhZ19idWZfcHRyOwogICAgICAgIGludCBjb3Vu dDsKICAgICAgICBpbnQgYnVmX251bTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGNoYXJfYnVmWzIq NTEyXTsKICAgICAgICBjaGFyIGZsYWdfYnVmWzIqNTEyXTsKICAgICAgICB1bnNpZ25lZCBjaGFy IHNsb3BbNF07Cn07CgoKCiNkZWZpbmUgUFRZX0JVRl9TSVpFIDQqVFRZX0ZMSVBCVUZfU0laRQoK CgoKCiNkZWZpbmUgVFRZX05PUk1BTCAwCiNkZWZpbmUgVFRZX0JSRUFLIDEKI2RlZmluZSBUVFlf RlJBTUUgMgojZGVmaW5lIFRUWV9QQVJJVFkgMwojZGVmaW5lIFRUWV9PVkVSUlVOIDQKCiNkZWZp bmUgSU5UUl9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZJTlRSXSkKI2RlZmluZSBR VUlUX0NIQVIodHR5KSAoKHR0eSktPnRlcm1pb3MtPmNfY2NbVlFVSVRdKQojZGVmaW5lIEVSQVNF X0NIQVIodHR5KSAoKHR0eSktPnRlcm1pb3MtPmNfY2NbVkVSQVNFXSkKI2RlZmluZSBLSUxMX0NI QVIodHR5KSAoKHR0eSktPnRlcm1pb3MtPmNfY2NbVktJTExdKQojZGVmaW5lIEVPRl9DSEFSKHR0 eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZFT0ZdKQojZGVmaW5lIFRJTUVfQ0hBUih0dHkpICgo dHR5KS0+dGVybWlvcy0+Y19jY1tWVElNRV0pCiNkZWZpbmUgTUlOX0NIQVIodHR5KSAoKHR0eSkt PnRlcm1pb3MtPmNfY2NbVk1JTl0pCiNkZWZpbmUgU1dUQ19DSEFSKHR0eSkgKCh0dHkpLT50ZXJt aW9zLT5jX2NjW1ZTV1RDXSkKI2RlZmluZSBTVEFSVF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9z LT5jX2NjW1ZTVEFSVF0pCiNkZWZpbmUgU1RPUF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5j X2NjW1ZTVE9QXSkKI2RlZmluZSBTVVNQX0NIQVIodHR5KSAoKHR0eSktPnRlcm1pb3MtPmNfY2Nb VlNVU1BdKQojZGVmaW5lIEVPTF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZFT0xd KQojZGVmaW5lIFJFUFJJTlRfQ0hBUih0dHkpICgodHR5KS0+dGVybWlvcy0+Y19jY1tWUkVQUklO VF0pCiNkZWZpbmUgRElTQ0FSRF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZESVND QVJEXSkKI2RlZmluZSBXRVJBU0VfQ0hBUih0dHkpICgodHR5KS0+dGVybWlvcy0+Y19jY1tWV0VS QVNFXSkKI2RlZmluZSBMTkVYVF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZMTkVY VF0pCiNkZWZpbmUgRU9MMl9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZFT0wyXSkK CiNkZWZpbmUgX0lfRkxBRyh0dHksIGYpICgodHR5KS0+dGVybWlvcy0+Y19pZmxhZyAmIChmKSkK I2RlZmluZSBfT19GTEFHKHR0eSwgZikgKCh0dHkpLT50ZXJtaW9zLT5jX29mbGFnICYgKGYpKQoj ZGVmaW5lIF9DX0ZMQUcodHR5LCBmKSAoKHR0eSktPnRlcm1pb3MtPmNfY2ZsYWcgJiAoZikpCiNk ZWZpbmUgX0xfRkxBRyh0dHksIGYpICgodHR5KS0+dGVybWlvcy0+Y19sZmxhZyAmIChmKSkKCiNk ZWZpbmUgSV9JR05CUksodHR5KSBfSV9GTEFHKCh0dHkpLElHTkJSSykKI2RlZmluZSBJX0JSS0lO VCh0dHkpIF9JX0ZMQUcoKHR0eSksQlJLSU5UKQojZGVmaW5lIElfSUdOUEFSKHR0eSkgX0lfRkxB RygodHR5KSxJR05QQVIpCiNkZWZpbmUgSV9QQVJNUksodHR5KSBfSV9GTEFHKCh0dHkpLFBBUk1S SykKI2RlZmluZSBJX0lOUENLKHR0eSkgX0lfRkxBRygodHR5KSxJTlBDSykKI2RlZmluZSBJX0lT VFJJUCh0dHkpIF9JX0ZMQUcoKHR0eSksSVNUUklQKQojZGVmaW5lIElfSU5MQ1IodHR5KSBfSV9G TEFHKCh0dHkpLElOTENSKQojZGVmaW5lIElfSUdOQ1IodHR5KSBfSV9GTEFHKCh0dHkpLElHTkNS KQojZGVmaW5lIElfSUNSTkwodHR5KSBfSV9GTEFHKCh0dHkpLElDUk5MKQojZGVmaW5lIElfSVVD TEModHR5KSBfSV9GTEFHKCh0dHkpLElVQ0xDKQojZGVmaW5lIElfSVhPTih0dHkpIF9JX0ZMQUco KHR0eSksSVhPTikKI2RlZmluZSBJX0lYQU5ZKHR0eSkgX0lfRkxBRygodHR5KSxJWEFOWSkKI2Rl ZmluZSBJX0lYT0ZGKHR0eSkgX0lfRkxBRygodHR5KSxJWE9GRikKI2RlZmluZSBJX0lNQVhCRUwo dHR5KSBfSV9GTEFHKCh0dHkpLElNQVhCRUwpCgojZGVmaW5lIE9fT1BPU1QodHR5KSBfT19GTEFH KCh0dHkpLE9QT1NUKQojZGVmaW5lIE9fT0xDVUModHR5KSBfT19GTEFHKCh0dHkpLE9MQ1VDKQoj ZGVmaW5lIE9fT05MQ1IodHR5KSBfT19GTEFHKCh0dHkpLE9OTENSKQojZGVmaW5lIE9fT0NSTkwo dHR5KSBfT19GTEFHKCh0dHkpLE9DUk5MKQojZGVmaW5lIE9fT05PQ1IodHR5KSBfT19GTEFHKCh0 dHkpLE9OT0NSKQojZGVmaW5lIE9fT05MUkVUKHR0eSkgX09fRkxBRygodHR5KSxPTkxSRVQpCiNk ZWZpbmUgT19PRklMTCh0dHkpIF9PX0ZMQUcoKHR0eSksT0ZJTEwpCiNkZWZpbmUgT19PRkRFTCh0 dHkpIF9PX0ZMQUcoKHR0eSksT0ZERUwpCiNkZWZpbmUgT19OTERMWSh0dHkpIF9PX0ZMQUcoKHR0 eSksTkxETFkpCiNkZWZpbmUgT19DUkRMWSh0dHkpIF9PX0ZMQUcoKHR0eSksQ1JETFkpCiNkZWZp bmUgT19UQUJETFkodHR5KSBfT19GTEFHKCh0dHkpLFRBQkRMWSkKI2RlZmluZSBPX0JTRExZKHR0 eSkgX09fRkxBRygodHR5KSxCU0RMWSkKI2RlZmluZSBPX1ZURExZKHR0eSkgX09fRkxBRygodHR5 KSxWVERMWSkKI2RlZmluZSBPX0ZGRExZKHR0eSkgX09fRkxBRygodHR5KSxGRkRMWSkKCiNkZWZp bmUgQ19CQVVEKHR0eSkgX0NfRkxBRygodHR5KSxDQkFVRCkKI2RlZmluZSBDX0NTSVpFKHR0eSkg X0NfRkxBRygodHR5KSxDU0laRSkKI2RlZmluZSBDX0NTVE9QQih0dHkpIF9DX0ZMQUcoKHR0eSks Q1NUT1BCKQojZGVmaW5lIENfQ1JFQUQodHR5KSBfQ19GTEFHKCh0dHkpLENSRUFEKQojZGVmaW5l IENfUEFSRU5CKHR0eSkgX0NfRkxBRygodHR5KSxQQVJFTkIpCiNkZWZpbmUgQ19QQVJPREQodHR5 KSBfQ19GTEFHKCh0dHkpLFBBUk9ERCkKI2RlZmluZSBDX0hVUENMKHR0eSkgX0NfRkxBRygodHR5 KSxIVVBDTCkKI2RlZmluZSBDX0NMT0NBTCh0dHkpIF9DX0ZMQUcoKHR0eSksQ0xPQ0FMKQojZGVm aW5lIENfQ0lCQVVEKHR0eSkgX0NfRkxBRygodHR5KSxDSUJBVUQpCiNkZWZpbmUgQ19DUlRTQ1RT KHR0eSkgX0NfRkxBRygodHR5KSxDUlRTQ1RTKQoKI2RlZmluZSBMX0lTSUcodHR5KSBfTF9GTEFH KCh0dHkpLElTSUcpCiNkZWZpbmUgTF9JQ0FOT04odHR5KSBfTF9GTEFHKCh0dHkpLElDQU5PTikK I2RlZmluZSBMX1hDQVNFKHR0eSkgX0xfRkxBRygodHR5KSxYQ0FTRSkKI2RlZmluZSBMX0VDSE8o dHR5KSBfTF9GTEFHKCh0dHkpLEVDSE8pCiNkZWZpbmUgTF9FQ0hPRSh0dHkpIF9MX0ZMQUcoKHR0 eSksRUNIT0UpCiNkZWZpbmUgTF9FQ0hPSyh0dHkpIF9MX0ZMQUcoKHR0eSksRUNIT0spCiNkZWZp bmUgTF9FQ0hPTkwodHR5KSBfTF9GTEFHKCh0dHkpLEVDSE9OTCkKI2RlZmluZSBMX05PRkxTSCh0 dHkpIF9MX0ZMQUcoKHR0eSksTk9GTFNIKQojZGVmaW5lIExfVE9TVE9QKHR0eSkgX0xfRkxBRygo dHR5KSxUT1NUT1ApCiNkZWZpbmUgTF9FQ0hPQ1RMKHR0eSkgX0xfRkxBRygodHR5KSxFQ0hPQ1RM KQojZGVmaW5lIExfRUNIT1BSVCh0dHkpIF9MX0ZMQUcoKHR0eSksRUNIT1BSVCkKI2RlZmluZSBM X0VDSE9LRSh0dHkpIF9MX0ZMQUcoKHR0eSksRUNIT0tFKQojZGVmaW5lIExfRkxVU0hPKHR0eSkg X0xfRkxBRygodHR5KSxGTFVTSE8pCiNkZWZpbmUgTF9QRU5ESU4odHR5KSBfTF9GTEFHKCh0dHkp LFBFTkRJTikKI2RlZmluZSBMX0lFWFRFTih0dHkpIF9MX0ZMQUcoKHR0eSksSUVYVEVOKQojIDI1 OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHkuaCIKc3RydWN0IHR0eV9z dHJ1Y3QgewogICAgICAgIGludCBtYWdpYzsKICAgICAgICBzdHJ1Y3QgdHR5X2RyaXZlciBkcml2 ZXI7CiAgICAgICAgc3RydWN0IHR0eV9sZGlzYyBsZGlzYzsKICAgICAgICBzdHJ1Y3QgdGVybWlv cyAqdGVybWlvcywgKnRlcm1pb3NfbG9ja2VkOwogICAgICAgIGludCBwZ3JwOwogICAgICAgIGlu dCBzZXNzaW9uOwogICAgICAgIGtkZXZfdCBkZXZpY2U7CiAgICAgICAgdW5zaWduZWQgbG9uZyBm bGFnczsKICAgICAgICBpbnQgY291bnQ7CiAgICAgICAgc3RydWN0IHdpbnNpemUgd2luc2l6ZTsK ICAgICAgICB1bnNpZ25lZCBjaGFyIHN0b3BwZWQ6MSwgaHdfc3RvcHBlZDoxLCBmbG93X3N0b3Bw ZWQ6MSwgcGFja2V0OjE7CiAgICAgICAgdW5zaWduZWQgY2hhciBsb3dfbGF0ZW5jeToxLCB3YXJu ZWQ6MTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGN0cmxfc3RhdHVzOwoKICAgICAgICBzdHJ1Y3Qg dHR5X3N0cnVjdCAqbGluazsKICAgICAgICBzdHJ1Y3QgZmFzeW5jX3N0cnVjdCAqZmFzeW5jOwog ICAgICAgIHN0cnVjdCB0dHlfZmxpcF9idWZmZXIgZmxpcDsKICAgICAgICBpbnQgbWF4X2ZsaXBf Y250OwogICAgICAgIGludCBhbHRfc3BlZWQ7CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3Qgd3Jp dGVfd2FpdDsKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCByZWFkX3dhaXQ7CiAgICAgICAgc3Ry dWN0IHRxX3N0cnVjdCB0cV9oYW5ndXA7CiAgICAgICAgdm9pZCAqZGlzY19kYXRhOwogICAgICAg IHZvaWQgKmRyaXZlcl9kYXRhOwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgdHR5X2ZpbGVzOwoK I2RlZmluZSBOX1RUWV9CVUZfU0laRSA0MDk2CgoKCgoKICAgICAgICB1bnNpZ25lZCBpbnQgY29s dW1uOwogICAgICAgIHVuc2lnbmVkIGNoYXIgbG5leHQ6MSwgZXJhc2luZzoxLCByYXc6MSwgcmVh bF9yYXc6MSwgaWNhbm9uOjE7CiAgICAgICAgdW5zaWduZWQgY2hhciBjbG9zaW5nOjE7CiAgICAg ICAgdW5zaWduZWQgc2hvcnQgbWluaW11bV90b193YWtlOwogICAgICAgIHVuc2lnbmVkIG92ZXJy dW5fdGltZTsKICAgICAgICBpbnQgbnVtX292ZXJydW47CiAgICAgICAgdW5zaWduZWQgbG9uZyBw cm9jZXNzX2NoYXJfbWFwWzI1Ni8oOCpzaXplb2YodW5zaWduZWQgbG9uZykpXTsKICAgICAgICBj aGFyICpyZWFkX2J1ZjsKICAgICAgICBpbnQgcmVhZF9oZWFkOwogICAgICAgIGludCByZWFkX3Rh aWw7CiAgICAgICAgaW50IHJlYWRfY250OwogICAgICAgIHVuc2lnbmVkIGxvbmcgcmVhZF9mbGFn c1s0MDk2Lyg4KnNpemVvZih1bnNpZ25lZCBsb25nKSldOwogICAgICAgIGludCBjYW5vbl9kYXRh OwogICAgICAgIHVuc2lnbmVkIGxvbmcgY2Fub25faGVhZDsKICAgICAgICB1bnNpZ25lZCBpbnQg Y2Fub25fY29sdW1uOwogICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgYXRvbWljX3JlYWQ7CiAgICAg ICAgc3RydWN0IHNlbWFwaG9yZSBhdG9taWNfd3JpdGU7CiAgICAgICAgc3BpbmxvY2tfdCByZWFk X2xvY2s7CgogICAgICAgIHN0cnVjdCB0cV9zdHJ1Y3QgU0FLX3RxOwp9OwoKCiNkZWZpbmUgVFRZ X01BR0lDIDB4NTQwMQojIDMyNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90 dHkuaCIKI2RlZmluZSBUVFlfVEhST1RUTEVEIDAKI2RlZmluZSBUVFlfSU9fRVJST1IgMQojZGVm aW5lIFRUWV9PVEhFUl9DTE9TRUQgMgojZGVmaW5lIFRUWV9FWENMVVNJVkUgMwojZGVmaW5lIFRU WV9ERUJVRyA0CiNkZWZpbmUgVFRZX0RPX1dSSVRFX1dBS0VVUCA1CiNkZWZpbmUgVFRZX1BVU0gg NgojZGVmaW5lIFRUWV9DTE9TSU5HIDcKI2RlZmluZSBUVFlfRE9OVF9GTElQIDgKI2RlZmluZSBU VFlfSFdfQ09PS19PVVQgMTQKI2RlZmluZSBUVFlfSFdfQ09PS19JTiAxNQojZGVmaW5lIFRUWV9Q VFlfTE9DSyAxNgojZGVmaW5lIFRUWV9OT19XUklURV9TUExJVCAxNwoKI2RlZmluZSBUVFlfV1JJ VEVfRkxVU0godHR5KSB0dHlfd3JpdGVfZmx1c2goKHR0eSkpCgpleHRlcm4gdm9pZCB0dHlfd3Jp dGVfZmx1c2goc3RydWN0IHR0eV9zdHJ1Y3QgKik7CgpleHRlcm4gc3RydWN0IHRlcm1pb3MgdHR5 X3N0ZF90ZXJtaW9zX1JzbXBfODlhYzUyNTQ7CmV4dGVybiBzdHJ1Y3QgdHR5X3N0cnVjdCAqIHJl ZGlyZWN0OwpleHRlcm4gc3RydWN0IHR0eV9sZGlzYyBsZGlzY3NbXTsKZXh0ZXJuIGludCBmZ19j b25zb2xlX1JzbXBfNGU2ZThlYTcsIGxhc3RfY29uc29sZSwgd2FudF9jb25zb2xlOwoKZXh0ZXJu IGludCBrbXNnX3JlZGlyZWN0OwoKZXh0ZXJuIHZvaWQgY29uX2luaXQodm9pZCk7CmV4dGVybiB2 b2lkIGNvbnNvbGVfaW5pdCh2b2lkKTsKCmV4dGVybiBpbnQgbHBfaW5pdCh2b2lkKTsKZXh0ZXJu IGludCBwdHlfaW5pdCh2b2lkKTsKZXh0ZXJuIHZvaWQgdHR5X2luaXQodm9pZCk7CmV4dGVybiBp bnQgbXhzZXJfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCBtb3hhX2luaXQodm9pZCk7CmV4dGVybiBp bnQgaXAyX2luaXQodm9pZCk7CmV4dGVybiBpbnQgcGN4ZV9pbml0KHZvaWQpOwpleHRlcm4gaW50 IHBjX2luaXQodm9pZCk7CmV4dGVybiBpbnQgdmNzX2luaXQodm9pZCk7CmV4dGVybiBpbnQgcnBf aW5pdCh2b2lkKTsKZXh0ZXJuIGludCBjeV9pbml0KHZvaWQpOwpleHRlcm4gaW50IHN0bF9pbml0 KHZvaWQpOwpleHRlcm4gaW50IHN0bGlfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCBzcGVjaWFsaXhf aW5pdCh2b2lkKTsKZXh0ZXJuIGludCBlc3BzZXJpYWxfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCBt YWNzZXJpYWxfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCBhMjIzMmJvYXJkX2luaXQodm9pZCk7Cgpl eHRlcm4gaW50IHR0eV9wYXJhbm9pYV9jaGVjayhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBrZGV2 X3QgZGV2aWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpyb3V0 aW5lKTsKZXh0ZXJuIGNoYXIgKnR0eV9uYW1lKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGNoYXIg KmJ1Zik7CmV4dGVybiB2b2lkIHR0eV93YWl0X3VudGlsX3NlbnRfUnNtcF9mZGNiMjQ1ZihzdHJ1 Y3QgdHR5X3N0cnVjdCAqIHR0eSwgbG9uZyB0aW1lb3V0KTsKZXh0ZXJuIGludCB0dHlfY2hlY2tf Y2hhbmdlX1JzbXBfODQ4YTdiZjAoc3RydWN0IHR0eV9zdHJ1Y3QgKiB0dHkpOwpleHRlcm4gdm9p ZCBzdG9wX3R0eShzdHJ1Y3QgdHR5X3N0cnVjdCAqIHR0eSk7CmV4dGVybiB2b2lkIHN0YXJ0X3R0 eShzdHJ1Y3QgdHR5X3N0cnVjdCAqIHR0eSk7CmV4dGVybiBpbnQgdHR5X3JlZ2lzdGVyX2xkaXNj X1JzbXBfODY5YzA4YjUoaW50IGRpc2MsIHN0cnVjdCB0dHlfbGRpc2MgKm5ld19sZGlzYyk7CmV4 dGVybiBpbnQgdHR5X3JlZ2lzdGVyX2RyaXZlcl9Sc21wXzRhMDZlZDNmKHN0cnVjdCB0dHlfZHJp dmVyICpkcml2ZXIpOwpleHRlcm4gaW50IHR0eV91bnJlZ2lzdGVyX2RyaXZlcl9Sc21wXzJmYWU0 YWI1KHN0cnVjdCB0dHlfZHJpdmVyICpkcml2ZXIpOwpleHRlcm4gdm9pZCB0dHlfcmVnaXN0ZXJf ZGV2ZnNfUnNtcF8yNzFmMTIzNCAoc3RydWN0IHR0eV9kcml2ZXIgKmRyaXZlciwgdW5zaWduZWQg aW50IGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG1pbm9y KTsKZXh0ZXJuIHZvaWQgdHR5X3VucmVnaXN0ZXJfZGV2ZnNfUnNtcF8wMDhhN2E0MiAoc3RydWN0 IHR0eV9kcml2ZXIgKmRyaXZlciwgdW5zaWduZWQgbWlub3IpOwpleHRlcm4gaW50IHR0eV9yZWFk X3Jhd19kYXRhKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIHVuc2lnbmVkIGNoYXIgKmJ1ZnAsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJ1Zmxlbik7CmV4dGVybiB2b2lkIHR0eV93 cml0ZV9tZXNzYWdlKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGNoYXIgKm1zZyk7CgpleHRlcm4g aW50IGlzX29ycGhhbmVkX3BncnAoaW50IHBncnApOwpleHRlcm4gaW50IGlzX2lnbm9yZWQoaW50 IHNpZyk7CmV4dGVybiBpbnQgdHR5X3NpZ25hbChpbnQgc2lnLCBzdHJ1Y3QgdHR5X3N0cnVjdCAq dHR5KTsKZXh0ZXJuIHZvaWQgdHR5X2hhbmd1cF9Sc21wX2ZlYWU0NjVmKHN0cnVjdCB0dHlfc3Ry dWN0ICogdHR5KTsKZXh0ZXJuIHZvaWQgdHR5X3ZoYW5ndXAoc3RydWN0IHR0eV9zdHJ1Y3QgKiB0 dHkpOwpleHRlcm4gdm9pZCB0dHlfdW5oYW5ndXAoc3RydWN0IGZpbGUgKmZpbHApOwpleHRlcm4g aW50IHR0eV9odW5nX3VwX3BfUnNtcF8xNzdkNGI3OChzdHJ1Y3QgZmlsZSAqIGZpbHApOwpleHRl cm4gdm9pZCBkb19TQUtfUnNtcF9lMmJhYzdjYyhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KTsKZXh0 ZXJuIHZvaWQgZGlzYXNzb2NpYXRlX2N0dHkoaW50IHByaXYpOwpleHRlcm4gdm9pZCB0dHlfZmxp cF9idWZmZXJfcHVzaF9Sc21wXzA0Njk3NDcyKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpOwpleHRl cm4gaW50IHR0eV9nZXRfYmF1ZF9yYXRlX1JzbXBfNTBkZTg3Y2Eoc3RydWN0IHR0eV9zdHJ1Y3Qg KnR0eSk7CgoKZXh0ZXJuIHN0cnVjdCB0dHlfbGRpc2MgdHR5X2xkaXNjX05fVFRZOwoKCmV4dGVy biBpbnQgbl90dHlfaW9jdGxfUnNtcF83NmUyMGI3MChzdHJ1Y3QgdHR5X3N0cnVjdCAqIHR0eSwg c3RydWN0IGZpbGUgKiBmaWxlLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBj bWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsKCgoKZXh0ZXJuIHZvaWQgc2VyaWFsX2NvbnNvbGVfaW5p dCh2b2lkKTsKCgoKZXh0ZXJuIGludCBwY3hlX29wZW4oc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwg c3RydWN0IGZpbGUgKmZpbHApOwoKCgpleHRlcm4gdm9pZCBjb25zb2xlX3ByaW50X1JzbXBfYjcx NGE5ODEoY29uc3QgY2hhciAqKTsKCgoKZXh0ZXJuIGludCB2dF9pb2N0bChzdHJ1Y3QgdHR5X3N0 cnVjdCAqdHR5LCBzdHJ1Y3QgZmlsZSAqIGZpbGUsCiAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOwojIDI1ICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L3NlbS5oIiAxCgojZGVmaW5lIF9MSU5VWF9TRU1fSAoKIyAxICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2lwYy5oIiAxCgojZGVmaW5lIF9MSU5VWF9JUENfSAoK IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyA1ICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2lwYy5oIiAyCgojZGVmaW5lIElQQ19Q UklWQVRFICgoX19rZXJuZWxfa2V5X3QpIDApCgoKc3RydWN0IGlwY19wZXJtCnsKICAgICAgICBf X2tlcm5lbF9rZXlfdCBrZXk7CiAgICAgICAgX19rZXJuZWxfdWlkX3QgdWlkOwogICAgICAgIF9f a2VybmVsX2dpZF90IGdpZDsKICAgICAgICBfX2tlcm5lbF91aWRfdCBjdWlkOwogICAgICAgIF9f a2VybmVsX2dpZF90IGNnaWQ7CiAgICAgICAgX19rZXJuZWxfbW9kZV90IG1vZGU7CiAgICAgICAg dW5zaWduZWQgc2hvcnQgc2VxOwp9OwoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9hc20vaXBjYnVmLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X0lQQ0JVRl9ICiMgMTQgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lwY2J1Zi5oIgpzdHJ1Y3QgaXBjNjRfcGVybQp7 CiAgICAgICAgX19rZXJuZWxfa2V5X3Qga2V5OwogICAgICAgIF9fa2VybmVsX3VpZF90IHVpZDsK ICAgICAgICBfX2tlcm5lbF9naWRfdCBnaWQ7CiAgICAgICAgX19rZXJuZWxfdWlkX3QgY3VpZDsK ICAgICAgICBfX2tlcm5lbF9naWRfdCBjZ2lkOwogICAgICAgIF9fa2VybmVsX21vZGVfdCBtb2Rl OwogICAgICAgIHVuc2lnbmVkIHNob3J0IHNlcTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBfX3Bh ZDE7CiAgICAgICAgdW5zaWduZWQgbG9uZyBfX3VudXNlZDE7CiAgICAgICAgdW5zaWduZWQgbG9u ZyBfX3VudXNlZDI7Cn07CiMgMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv aXBjLmgiIDIKCgojZGVmaW5lIElQQ19DUkVBVCAwMDAwMTAwMAojZGVmaW5lIElQQ19FWENMIDAw MDAyMDAwCiNkZWZpbmUgSVBDX05PV0FJVCAwMDAwNDAwMAoKCgoKI2RlZmluZSBJUENfRElQQyAw MDAxMDAwMAojZGVmaW5lIElQQ19PV04gMDAwMjAwMDAKCgoKCgojZGVmaW5lIElQQ19STUlEIDAK I2RlZmluZSBJUENfU0VUIDEKI2RlZmluZSBJUENfU1RBVCAyCiNkZWZpbmUgSVBDX0lORk8gMwoK CgoKCiNkZWZpbmUgSVBDX09MRCAwCgojZGVmaW5lIElQQ182NCAweDAxMDAKCgoKCiNkZWZpbmUg SVBDTU5JIDMyNzY4CgoKc3RydWN0IGtlcm5faXBjX3Blcm0KewogICAgICAgIGtleV90IGtleTsK ICAgICAgICB1aWRfdCB1aWQ7CiAgICAgICAgZ2lkX3QgZ2lkOwogICAgICAgIHVpZF90IGN1aWQ7 CiAgICAgICAgZ2lkX3QgY2dpZDsKICAgICAgICBtb2RlX3QgbW9kZTsKICAgICAgICB1bnNpZ25l ZCBsb25nIHNlcTsKfTsKIyA1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Nl bS5oIiAyCgoKI2RlZmluZSBTRU1fVU5ETyAweDEwMDAKCgojZGVmaW5lIEdFVFBJRCAxMQojZGVm aW5lIEdFVFZBTCAxMgojZGVmaW5lIEdFVEFMTCAxMwojZGVmaW5lIEdFVE5DTlQgMTQKI2RlZmlu ZSBHRVRaQ05UIDE1CiNkZWZpbmUgU0VUVkFMIDE2CiNkZWZpbmUgU0VUQUxMIDE3CgoKI2RlZmlu ZSBTRU1fU1RBVCAxOAojZGVmaW5lIFNFTV9JTkZPIDE5CgoKc3RydWN0IHNlbWlkX2RzIHsKICAg ICAgICBzdHJ1Y3QgaXBjX3Blcm0gc2VtX3Blcm07CiAgICAgICAgX19rZXJuZWxfdGltZV90IHNl bV9vdGltZTsKICAgICAgICBfX2tlcm5lbF90aW1lX3Qgc2VtX2N0aW1lOwogICAgICAgIHN0cnVj dCBzZW0gKnNlbV9iYXNlOwogICAgICAgIHN0cnVjdCBzZW1fcXVldWUgKnNlbV9wZW5kaW5nOwog ICAgICAgIHN0cnVjdCBzZW1fcXVldWUgKipzZW1fcGVuZGluZ19sYXN0OwogICAgICAgIHN0cnVj dCBzZW1fdW5kbyAqdW5kbzsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzZW1fbnNlbXM7Cn07CgoK IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zZW1idWYuaCIgMQoKI2RlZmlu ZSBfQVNNX0lBNjRfU0VNQlVGX0gKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h c20vc2VtYnVmLmgiCnN0cnVjdCBzZW1pZDY0X2RzIHsKICAgICAgICBzdHJ1Y3QgaXBjNjRfcGVy bSBzZW1fcGVybTsKICAgICAgICBfX2tlcm5lbF90aW1lX3Qgc2VtX290aW1lOwogICAgICAgIF9f a2VybmVsX3RpbWVfdCBzZW1fY3RpbWU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzZW1fbnNlbXM7 CiAgICAgICAgdW5zaWduZWQgbG9uZyBfX3VudXNlZDE7CiAgICAgICAgdW5zaWduZWQgbG9uZyBf X3VudXNlZDI7Cn07CiMgMzYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2Vt LmgiIDIKCgpzdHJ1Y3Qgc2VtYnVmIHsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzZW1fbnVtOwog ICAgICAgIHNob3J0IHNlbV9vcDsKICAgICAgICBzaG9ydCBzZW1fZmxnOwp9OwoKCnVuaW9uIHNl bXVuIHsKICAgICAgICBpbnQgdmFsOwogICAgICAgIHN0cnVjdCBzZW1pZF9kcyAqYnVmOwogICAg ICAgIHVuc2lnbmVkIHNob3J0ICphcnJheTsKICAgICAgICBzdHJ1Y3Qgc2VtaW5mbyAqX19idWY7 CiAgICAgICAgdm9pZCAqX19wYWQ7Cn07CgpzdHJ1Y3Qgc2VtaW5mbyB7CiAgICAgICAgaW50IHNl bW1hcDsKICAgICAgICBpbnQgc2VtbW5pOwogICAgICAgIGludCBzZW1tbnM7CiAgICAgICAgaW50 IHNlbW1udTsKICAgICAgICBpbnQgc2VtbXNsOwogICAgICAgIGludCBzZW1vcG07CiAgICAgICAg aW50IHNlbXVtZTsKICAgICAgICBpbnQgc2VtdXN6OwogICAgICAgIGludCBzZW12bXg7CiAgICAg ICAgaW50IHNlbWFlbTsKfTsKCiNkZWZpbmUgU0VNTU5JIDEyOAojZGVmaW5lIFNFTU1TTCAyNTAK I2RlZmluZSBTRU1NTlMgKFNFTU1OSSpTRU1NU0wpCiNkZWZpbmUgU0VNT1BNIDMyCiNkZWZpbmUg U0VNVk1YIDMyNzY3CgoKI2RlZmluZSBTRU1VTUUgU0VNT1BNCiNkZWZpbmUgU0VNTU5VIFNFTU1O UwojZGVmaW5lIFNFTUFFTSAoU0VNVk1YID4+IDEpCiNkZWZpbmUgU0VNTUFQIFNFTU1OUwojZGVm aW5lIFNFTVVTWiAyMAoKCgoKc3RydWN0IHNlbSB7CiAgICAgICAgaW50IHNlbXZhbDsKICAgICAg ICBpbnQgc2VtcGlkOwp9OwoKCnN0cnVjdCBzZW1fYXJyYXkgewogICAgICAgIHN0cnVjdCBrZXJu X2lwY19wZXJtIHNlbV9wZXJtOwogICAgICAgIHRpbWVfdCBzZW1fb3RpbWU7CiAgICAgICAgdGlt ZV90IHNlbV9jdGltZTsKICAgICAgICBzdHJ1Y3Qgc2VtICpzZW1fYmFzZTsKICAgICAgICBzdHJ1 Y3Qgc2VtX3F1ZXVlICpzZW1fcGVuZGluZzsKICAgICAgICBzdHJ1Y3Qgc2VtX3F1ZXVlICoqc2Vt X3BlbmRpbmdfbGFzdDsKICAgICAgICBzdHJ1Y3Qgc2VtX3VuZG8gKnVuZG87CiAgICAgICAgdW5z aWduZWQgbG9uZyBzZW1fbnNlbXM7Cn07CgoKc3RydWN0IHNlbV9xdWV1ZSB7CiAgICAgICAgc3Ry dWN0IHNlbV9xdWV1ZSAqIG5leHQ7CiAgICAgICAgc3RydWN0IHNlbV9xdWV1ZSAqKiBwcmV2Owog ICAgICAgIHN0cnVjdCB0YXNrX3N0cnVjdCogc2xlZXBlcjsKICAgICAgICBzdHJ1Y3Qgc2VtX3Vu ZG8gKiB1bmRvOwogICAgICAgIGludCBwaWQ7CiAgICAgICAgaW50IHN0YXR1czsKICAgICAgICBz dHJ1Y3Qgc2VtX2FycmF5ICogc21hOwogICAgICAgIGludCBpZDsKICAgICAgICBzdHJ1Y3Qgc2Vt YnVmICogc29wczsKICAgICAgICBpbnQgbnNvcHM7CiAgICAgICAgaW50IGFsdGVyOwp9OwoKCgoK c3RydWN0IHNlbV91bmRvIHsKICAgICAgICBzdHJ1Y3Qgc2VtX3VuZG8gKiBwcm9jX25leHQ7CiAg ICAgICAgc3RydWN0IHNlbV91bmRvICogaWRfbmV4dDsKICAgICAgICBpbnQgc2VtaWQ7CiAgICAg ICAgc2hvcnQgKiBzZW1hZGo7Cn07CgogX19hdHRyaWJ1dGVfXygoc3lzY2FsbF9saW5rYWdlKSkg bG9uZyBzeXNfc2VtZ2V0IChrZXlfdCBrZXksIGludCBuc2VtcywgaW50IHNlbWZsZyk7CiBfX2F0 dHJpYnV0ZV9fKChzeXNjYWxsX2xpbmthZ2UpKSBsb25nIHN5c19zZW1vcCAoaW50IHNlbWlkLCBz dHJ1Y3Qgc2VtYnVmICpzb3BzLCB1bnNpZ25lZCBuc29wcyk7CiBfX2F0dHJpYnV0ZV9fKChzeXNj YWxsX2xpbmthZ2UpKSBsb25nIHN5c19zZW1jdGwgKGludCBzZW1pZCwgaW50IHNlbW51bSwgaW50 IGNtZCwgdW5pb24gc2VtdW4gYXJnKTsKIyAyNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9zaWduYWwuaCIgMQoKI2RlZmluZSBfTElOVVhfU0lHTkFMX0gKCiMgMSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnbmFsLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NJR05B TF9ICiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NpZ25hbC5oIgojZGVm aW5lIFNJR0hVUCAxCiNkZWZpbmUgU0lHSU5UIDIKI2RlZmluZSBTSUdRVUlUIDMKI2RlZmluZSBT SUdJTEwgNAojZGVmaW5lIFNJR1RSQVAgNQojZGVmaW5lIFNJR0FCUlQgNgojZGVmaW5lIFNJR0lP VCA2CiNkZWZpbmUgU0lHQlVTIDcKI2RlZmluZSBTSUdGUEUgOAojZGVmaW5lIFNJR0tJTEwgOQoj ZGVmaW5lIFNJR1VTUjEgMTAKI2RlZmluZSBTSUdTRUdWIDExCiNkZWZpbmUgU0lHVVNSMiAxMgoj ZGVmaW5lIFNJR1BJUEUgMTMKI2RlZmluZSBTSUdBTFJNIDE0CiNkZWZpbmUgU0lHVEVSTSAxNQoj ZGVmaW5lIFNJR1NUS0ZMVCAxNgojZGVmaW5lIFNJR0NITEQgMTcKI2RlZmluZSBTSUdDT05UIDE4 CiNkZWZpbmUgU0lHU1RPUCAxOQojZGVmaW5lIFNJR1RTVFAgMjAKI2RlZmluZSBTSUdUVElOIDIx CiNkZWZpbmUgU0lHVFRPVSAyMgojZGVmaW5lIFNJR1VSRyAyMwojZGVmaW5lIFNJR1hDUFUgMjQK I2RlZmluZSBTSUdYRlNaIDI1CiNkZWZpbmUgU0lHVlRBTFJNIDI2CiNkZWZpbmUgU0lHUFJPRiAy NwojZGVmaW5lIFNJR1dJTkNIIDI4CiNkZWZpbmUgU0lHSU8gMjkKI2RlZmluZSBTSUdQT0xMIFNJ R0lPCgoKCiNkZWZpbmUgU0lHUFdSIDMwCiNkZWZpbmUgU0lHU1lTIDMxCgojZGVmaW5lIFNJR1VO VVNFRCAzMQoKCiNkZWZpbmUgU0lHUlRNSU4gMzIKI2RlZmluZSBTSUdSVE1BWCAoX05TSUctMSkK IyA2OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnbmFsLmgiCiNkZWZpbmUg U0FfTk9DTERTVE9QIDB4MDAwMDAwMDEKI2RlZmluZSBTQV9OT0NMRFdBSVQgMHgwMDAwMDAwMgoj ZGVmaW5lIFNBX1NJR0lORk8gMHgwMDAwMDAwNAojZGVmaW5lIFNBX09OU1RBQ0sgMHgwODAwMDAw MAojZGVmaW5lIFNBX1JFU1RBUlQgMHgxMDAwMDAwMAojZGVmaW5lIFNBX05PREVGRVIgMHg0MDAw MDAwMAojZGVmaW5lIFNBX1JFU0VUSEFORCAweDgwMDAwMDAwCgojZGVmaW5lIFNBX05PTUFTSyBT QV9OT0RFRkVSCiNkZWZpbmUgU0FfT05FU0hPVCBTQV9SRVNFVEhBTkQKI2RlZmluZSBTQV9JTlRF UlJVUFQgMHgyMDAwMDAwMAoKI2RlZmluZSBTQV9SRVNUT1JFUiAweDA0MDAwMDAwCgoKCgojZGVm aW5lIFNTX09OU1RBQ0sgMQojZGVmaW5lIFNTX0RJU0FCTEUgMgoKI2RlZmluZSBNSU5TSUdTVEtT WiAyMDQ4CiNkZWZpbmUgU0lHU1RLU1ogODE5MgoKCgojZGVmaW5lIF9OU0lHIDY0CiNkZWZpbmUg X05TSUdfQlBXIDY0CiNkZWZpbmUgX05TSUdfV09SRFMgKF9OU0lHIC8gX05TSUdfQlBXKQojIDEw NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnbmFsLmgiCiNkZWZpbmUgU0Ff UFJPQkUgU0FfT05FU0hPVAojZGVmaW5lIFNBX1NBTVBMRV9SQU5ET00gU0FfUkVTVEFSVAojZGVm aW5lIFNBX1NISVJRIDB4MDQwMDAwMDAKCgoKI2RlZmluZSBTSUdfQkxPQ0sgMAojZGVmaW5lIFNJ R19VTkJMT0NLIDEKI2RlZmluZSBTSUdfU0VUTUFTSyAyCgojZGVmaW5lIFNJR19ERkwgKChfX3Np Z2hhbmRsZXJfdCkwKQojZGVmaW5lIFNJR19JR04gKChfX3NpZ2hhbmRsZXJfdCkxKQojZGVmaW5l IFNJR19FUlIgKChfX3NpZ2hhbmRsZXJfdCktMSkKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyAxMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu Y2x1ZGUvYXNtL3NpZ25hbC5oIiAyCgoKc3RydWN0IHNpZ2luZm87CgoKdHlwZWRlZiB2b2lkICgq X19zaWdoYW5kbGVyX3QpKGludCk7Cgp0eXBlZGVmIHN0cnVjdCBzaWdhbHRzdGFjayB7CiAgICAg ICAgdm9pZCAqc3Nfc3A7CiAgICAgICAgaW50IHNzX2ZsYWdzOwogICAgICAgIHNpemVfdCBzc19z aXplOwp9IHN0YWNrX3Q7CgoKCgoKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBvbGRfc2lnc2V0X3Q7 Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzaWdbKDY0IC8gNjQpXTsK fSBzaWdzZXRfdDsKCnN0cnVjdCBzaWdhY3Rpb24gewogICAgICAgIF9fc2lnaGFuZGxlcl90IHNh X2hhbmRsZXI7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzYV9mbGFnczsKICAgICAgICBzaWdzZXRf dCBzYV9tYXNrOwp9OwoKc3RydWN0IGtfc2lnYWN0aW9uIHsKICAgICAgICBzdHJ1Y3Qgc2lnYWN0 aW9uIHNhOwp9OwoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zaWdjb250 ZXh0LmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NJR0NPTlRFWFRfSAoKCgoKCgojIDEgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2ZwdS5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3Jj L2J1aWxkL2luY2x1ZGUvYXNtL3NpZ2NvbnRleHQuaCIgMgoKI2RlZmluZSBJQTY0X1NDX0ZMQUdf T05TVEFDS19CSVQgMQojZGVmaW5lIElBNjRfU0NfRkxBR19JTl9TWVNDQUxMX0JJVCAxCiNkZWZp bmUgSUE2NF9TQ19GTEFHX0ZQSF9WQUxJRF9CSVQgMgoKI2RlZmluZSBJQTY0X1NDX0ZMQUdfT05T VEFDSyAoMSA8PCBJQTY0X1NDX0ZMQUdfT05TVEFDS19CSVQpCiNkZWZpbmUgSUE2NF9TQ19GTEFH X0lOX1NZU0NBTEwgKDEgPDwgSUE2NF9TQ19GTEFHX0lOX1NZU0NBTExfQklUKQojZGVmaW5lIElB NjRfU0NfRkxBR19GUEhfVkFMSUQgKDEgPDwgSUE2NF9TQ19GTEFHX0ZQSF9WQUxJRF9CSVQpCgoK CnN0cnVjdCBzaWdjb250ZXh0IHsKICAgICAgICB1bnNpZ25lZCBsb25nIHNjX2ZsYWdzOwogICAg ICAgIHVuc2lnbmVkIGxvbmcgc2NfbmF0OwogICAgICAgIHN0YWNrX3Qgc2Nfc3RhY2s7CgogICAg ICAgIHVuc2lnbmVkIGxvbmcgc2NfaXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzY19jZm07CiAg ICAgICAgdW5zaWduZWQgbG9uZyBzY191bTsKICAgICAgICB1bnNpZ25lZCBsb25nIHNjX2FyX3Jz YzsKICAgICAgICB1bnNpZ25lZCBsb25nIHNjX2FyX2JzcDsKICAgICAgICB1bnNpZ25lZCBsb25n IHNjX2FyX3JuYXQ7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzY19hcl9jY3Y7CiAgICAgICAgdW5z aWduZWQgbG9uZyBzY19hcl91bmF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgc2NfYXJfZnBzcjsK ICAgICAgICB1bnNpZ25lZCBsb25nIHNjX2FyX3BmczsKICAgICAgICB1bnNpZ25lZCBsb25nIHNj X2FyX2xjOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc2NfcHI7CiAgICAgICAgdW5zaWduZWQgbG9u ZyBzY19icls4XTsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBzY19nclszMl07CiAgICAgICAgc3Ry dWN0IGlhNjRfZnByZWcgc2NfZnJbMTI4XTsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBzY19yc3Zk WzE2XTsKCgoKCgogICAgICAgIHNpZ3NldF90IHNjX21hc2s7Cn07CiMgMTU3ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zaWduYWwuaCIgMgojIDUgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvc2lnbmFsLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2FzbS9zaWdpbmZvLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NJR0lORk9fSAoKCgoK CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDEw ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zaWdpbmZvLmgiIDIKCnR5cGVkZWYg dW5pb24gc2lndmFsIHsKICAgICAgICBpbnQgc2l2YWxfaW50OwogICAgICAgIHZvaWQgKnNpdmFs X3B0cjsKfSBzaWd2YWxfdDsKCiNkZWZpbmUgU0lfTUFYX1NJWkUgMTI4CiNkZWZpbmUgU0lfUEFE X1NJWkUgKChTSV9NQVhfU0laRS9zaXplb2YoaW50KSkgLSA0KQoKdHlwZWRlZiBzdHJ1Y3Qgc2ln aW5mbyB7CiAgICAgICAgaW50IHNpX3NpZ25vOwogICAgICAgIGludCBzaV9lcnJubzsKICAgICAg ICBpbnQgc2lfY29kZTsKICAgICAgICBpbnQgX19wYWQwOwoKICAgICAgICB1bmlvbiB7CiAgICAg ICAgICAgICAgICBpbnQgX3BhZFsoKDEyOC9zaXplb2YoaW50KSkgLSA0KV07CgoKICAgICAgICAg ICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBpZF90IF9waWQ7CiAgICAg ICAgICAgICAgICAgICAgICAgIHVpZF90IF91aWQ7CiAgICAgICAgICAgICAgICB9IF9raWxsOwoK CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgX3RpbWVyMTsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF90aW1l cjI7CiAgICAgICAgICAgICAgICB9IF90aW1lcjsKCgogICAgICAgICAgICAgICAgc3RydWN0IHsK ICAgICAgICAgICAgICAgICAgICAgICAgcGlkX3QgX3BpZDsKICAgICAgICAgICAgICAgICAgICAg ICAgdWlkX3QgX3VpZDsKICAgICAgICAgICAgICAgICAgICAgICAgc2lndmFsX3QgX3NpZ3ZhbDsK ICAgICAgICAgICAgICAgIH0gX3J0OwoKCiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAg ICAgICAgICAgICAgICAgICBwaWRfdCBfcGlkOwogICAgICAgICAgICAgICAgICAgICAgICB1aWRf dCBfdWlkOwogICAgICAgICAgICAgICAgICAgICAgICBpbnQgX3N0YXR1czsKICAgICAgICAgICAg ICAgICAgICAgICAgY2xvY2tfdCBfdXRpbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNsb2Nr X3QgX3N0aW1lOwogICAgICAgICAgICAgICAgfSBfc2lnY2hsZDsKCgogICAgICAgICAgICAgICAg c3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqX2FkZHI7CiAgICAgICAgICAg ICAgICAgICAgICAgIGludCBfaW1tOwogICAgICAgICAgICAgICAgICAgICAgICBpbnQgX3BhZDA7 CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgX2lzcjsKICAgICAgICAgICAg ICAgIH0gX3NpZ2ZhdWx0OwoKCiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAg ICAgICAgICAgICBsb25nIF9iYW5kOwogICAgICAgICAgICAgICAgICAgICAgICBpbnQgX2ZkOwog ICAgICAgICAgICAgICAgfSBfc2lncG9sbDsKCiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAg ICAgICAgICAgICAgICAgICAgICBwaWRfdCBfcGlkOwogICAgICAgICAgICAgICAgICAgICAgICB1 aWRfdCBfdWlkOwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIF9wZm1fb3Zm bF9jb3VudGVyczsKICAgICAgICAgICAgICAgIH0gX3NpZ3Byb2Y7CiAgICAgICAgfSBfc2lmaWVs ZHM7Cn0gc2lnaW5mb190OwoKCgoKI2RlZmluZSBzaV9waWQgX3NpZmllbGRzLl9raWxsLl9waWQK I2RlZmluZSBzaV91aWQgX3NpZmllbGRzLl9raWxsLl91aWQKI2RlZmluZSBzaV9zdGF0dXMgX3Np ZmllbGRzLl9zaWdjaGxkLl9zdGF0dXMKI2RlZmluZSBzaV91dGltZSBfc2lmaWVsZHMuX3NpZ2No bGQuX3V0aW1lCiNkZWZpbmUgc2lfc3RpbWUgX3NpZmllbGRzLl9zaWdjaGxkLl9zdGltZQojZGVm aW5lIHNpX3ZhbHVlIF9zaWZpZWxkcy5fcnQuX3NpZ3ZhbAojZGVmaW5lIHNpX2ludCBfc2lmaWVs ZHMuX3J0Ll9zaWd2YWwuc2l2YWxfaW50CiNkZWZpbmUgc2lfcHRyIF9zaWZpZWxkcy5fcnQuX3Np Z3ZhbC5zaXZhbF9wdHIKI2RlZmluZSBzaV9hZGRyIF9zaWZpZWxkcy5fc2lnZmF1bHQuX2FkZHIK I2RlZmluZSBzaV9pbW0gX3NpZmllbGRzLl9zaWdmYXVsdC5faW1tCiNkZWZpbmUgc2lfaXNyIF9z aWZpZWxkcy5fc2lnZmF1bHQuX2lzcgojZGVmaW5lIHNpX2JhbmQgX3NpZmllbGRzLl9zaWdwb2xs Ll9iYW5kCiNkZWZpbmUgc2lfZmQgX3NpZmllbGRzLl9zaWdwb2xsLl9mZAojZGVmaW5lIHNpX3Bm bV9vdmZsIF9zaWZpZWxkcy5fc2lncHJvZi5fcGZtX292ZmxfY291bnRlcnMKCgoKCgoKI2RlZmlu ZSBfX1NJX01BU0sgMHhmZmZmMDAwMAojZGVmaW5lIF9fU0lfS0lMTCAoMCA8PCAxNikKI2RlZmlu ZSBfX1NJX1RJTUVSICgxIDw8IDE2KQojZGVmaW5lIF9fU0lfUE9MTCAoMiA8PCAxNikKI2RlZmlu ZSBfX1NJX0ZBVUxUICgzIDw8IDE2KQojZGVmaW5lIF9fU0lfQ0hMRCAoNCA8PCAxNikKI2RlZmlu ZSBfX1NJX1JUICg1IDw8IDE2KQojZGVmaW5lIF9fU0lfUFJPRiAoNiA8PCAxNikKI2RlZmluZSBf X1NJX0NPREUoVCwgTikgKChUKSA8PCAxNiB8ICgoTikgJiAweGZmZmYpKQojIDEyMCAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnaW5mby5oIgojZGVmaW5lIFNJX1VTRVIgMAoj ZGVmaW5lIFNJX0tFUk5FTCAweDgwCiNkZWZpbmUgU0lfUVVFVUUgLTEKI2RlZmluZSBTSV9USU1F UiBfX1NJX0NPREUoX19TSV9USU1FUiwtMikKI2RlZmluZSBTSV9NRVNHUSAtMwojZGVmaW5lIFNJ X0FTWU5DSU8gLTQKI2RlZmluZSBTSV9TSUdJTyAtNQoKI2RlZmluZSBTSV9GUk9NVVNFUihzaXB0 cikgKChzaXB0ciktPnNpX2NvZGUgPD0gMCkKI2RlZmluZSBTSV9GUk9NS0VSTkVMKHNpcHRyKSAo KHNpcHRyKS0+c2lfY29kZSA+IDApCgoKCgojZGVmaW5lIElMTF9JTExPUEMgKF9fU0lfRkFVTFR8 MSkKI2RlZmluZSBJTExfSUxMT1BOIChfX1NJX0ZBVUxUfDIpCiNkZWZpbmUgSUxMX0lMTEFEUiAo X19TSV9GQVVMVHwzKQojZGVmaW5lIElMTF9JTExUUlAgKF9fU0lfRkFVTFR8NCkKI2RlZmluZSBJ TExfUFJWT1BDIChfX1NJX0ZBVUxUfDUpCiNkZWZpbmUgSUxMX1BSVlJFRyAoX19TSV9GQVVMVHw2 KQojZGVmaW5lIElMTF9DT1BST0MgKF9fU0lfRkFVTFR8NykKI2RlZmluZSBJTExfQkFEU1RLIChf X1NJX0ZBVUxUfDgpCiNkZWZpbmUgSUxMX0JBRElBRERSIChfX1NJX0ZBVUxUfDkpCiNkZWZpbmUg X19JTExfQlJFQUsgKF9fU0lfRkFVTFR8MTApCiNkZWZpbmUgTlNJR0lMTCAxMAoKCgoKI2RlZmlu ZSBGUEVfSU5URElWIChfX1NJX0ZBVUxUfDEpCiNkZWZpbmUgRlBFX0lOVE9WRiAoX19TSV9GQVVM VHwyKQojZGVmaW5lIEZQRV9GTFRESVYgKF9fU0lfRkFVTFR8MykKI2RlZmluZSBGUEVfRkxUT1ZG IChfX1NJX0ZBVUxUfDQpCiNkZWZpbmUgRlBFX0ZMVFVORCAoX19TSV9GQVVMVHw1KQojZGVmaW5l IEZQRV9GTFRSRVMgKF9fU0lfRkFVTFR8NikKI2RlZmluZSBGUEVfRkxUSU5WIChfX1NJX0ZBVUxU fDcpCiNkZWZpbmUgRlBFX0ZMVFNVQiAoX19TSV9GQVVMVHw4KQojZGVmaW5lIF9fRlBFX0RFQ09W RiAoX19TSV9GQVVMVHw5KQojZGVmaW5lIF9fRlBFX0RFQ0RJViAoX19TSV9GQVVMVHwxMCkKI2Rl ZmluZSBfX0ZQRV9ERUNFUlIgKF9fU0lfRkFVTFR8MTEpCiNkZWZpbmUgX19GUEVfSU5WQVNDIChf X1NJX0ZBVUxUfDEyKQojZGVmaW5lIF9fRlBFX0lOVkRFQyAoX19TSV9GQVVMVHwxMykKI2RlZmlu ZSBOU0lHRlBFIDEzCgoKCgojZGVmaW5lIFNFR1ZfTUFQRVJSIChfX1NJX0ZBVUxUfDEpCiNkZWZp bmUgU0VHVl9BQ0NFUlIgKF9fU0lfRkFVTFR8MikKI2RlZmluZSBfX1NFR1ZfUFNUS09WRiAoX19T SV9GQVVMVHwzKQojZGVmaW5lIE5TSUdTRUdWIDMKCgoKCiNkZWZpbmUgQlVTX0FEUkFMTiAoX19T SV9GQVVMVHwxKQojZGVmaW5lIEJVU19BRFJFUlIgKF9fU0lfRkFVTFR8MikKI2RlZmluZSBCVVNf T0JKRVJSIChfX1NJX0ZBVUxUfDMpCiNkZWZpbmUgTlNJR0JVUyAzCgoKCgojZGVmaW5lIFRSQVBf QlJLUFQgKF9fU0lfRkFVTFR8MSkKI2RlZmluZSBUUkFQX1RSQUNFIChfX1NJX0ZBVUxUfDIpCiNk ZWZpbmUgVFJBUF9CUkFOQ0ggKF9fU0lfRkFVTFR8MykKI2RlZmluZSBUUkFQX0hXQktQVCAoX19T SV9GQVVMVHw0KQojZGVmaW5lIE5TSUdUUkFQIDQKCgoKCiNkZWZpbmUgQ0xEX0VYSVRFRCAoX19T SV9DSExEfDEpCiNkZWZpbmUgQ0xEX0tJTExFRCAoX19TSV9DSExEfDIpCiNkZWZpbmUgQ0xEX0RV TVBFRCAoX19TSV9DSExEfDMpCiNkZWZpbmUgQ0xEX1RSQVBQRUQgKF9fU0lfQ0hMRHw0KQojZGVm aW5lIENMRF9TVE9QUEVEIChfX1NJX0NITER8NSkKI2RlZmluZSBDTERfQ09OVElOVUVEIChfX1NJ X0NITER8NikKI2RlZmluZSBOU0lHQ0hMRCA2CgoKCgojZGVmaW5lIFBPTExfSU4gKF9fU0lfUE9M THwxKQojZGVmaW5lIFBPTExfT1VUIChfX1NJX1BPTEx8MikKI2RlZmluZSBQT0xMX01TRyAoX19T SV9QT0xMfDMpCiNkZWZpbmUgUE9MTF9FUlIgKF9fU0lfUE9MTHw0KQojZGVmaW5lIFBPTExfUFJJ IChfX1NJX1BPTEx8NSkKI2RlZmluZSBQT0xMX0hVUCAoX19TSV9QT0xMfDYpCiNkZWZpbmUgTlNJ R1BPTEwgNgoKCgoKI2RlZmluZSBQUk9GX09WRkwgKF9fU0lfUFJPRnwxKQojIDIyMyAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnaW5mby5oIgojZGVmaW5lIFNJR0VWX1NJR05B TCAwCiNkZWZpbmUgU0lHRVZfTk9ORSAxCiNkZWZpbmUgU0lHRVZfVEhSRUFEIDIKCiNkZWZpbmUg U0lHRVZfTUFYX1NJWkUgNjQKI2RlZmluZSBTSUdFVl9QQURfU0laRSAoKFNJR0VWX01BWF9TSVpF L3NpemVvZihpbnQpKSAtIDQpCgp0eXBlZGVmIHN0cnVjdCBzaWdldmVudCB7CiAgICAgICAgc2ln dmFsX3Qgc2lnZXZfdmFsdWU7CiAgICAgICAgaW50IHNpZ2V2X3NpZ25vOwogICAgICAgIGludCBz aWdldl9ub3RpZnk7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgaW50IF9wYWRbKCg2 NC9zaXplb2YoaW50KSkgLSA0KV07CgogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAg ICAgICAgICAgICAgICAgdm9pZCAoKl9mdW5jdGlvbikoc2lndmFsX3QpOwogICAgICAgICAgICAg ICAgICAgICAgICB2b2lkICpfYXR0cmlidXRlOwogICAgICAgICAgICAgICAgfSBfc2lnZXZfdGhy ZWFkOwogICAgICAgIH0gX3NpZ2V2X3VuOwp9IHNpZ2V2ZW50X3Q7CgojZGVmaW5lIHNpZ2V2X25v dGlmeV9mdW5jdGlvbiBfc2lnZXZfdW4uX3NpZ2V2X3RocmVhZC5fZnVuY3Rpb24KI2RlZmluZSBz aWdldl9ub3RpZnlfYXR0cmlidXRlcyBfc2lnZXZfdW4uX3NpZ2V2X3RocmVhZC5fYXR0cmlidXRl CgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIiAxCiMg MjQ5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zaWdpbmZvLmgiIDIKCnN0YXRp YyBpbmxpbmUgdm9pZApjb3B5X3NpZ2luZm8gKHNpZ2luZm9fdCAqdG8sIHNpZ2luZm9fdCAqZnJv bSkKewogICAgICAgIGlmIChmcm9tLT5zaV9jb2RlIDwgMCkKICAgICAgICAgICAgICAgIG1lbWNw eSh0bywgZnJvbSwgc2l6ZW9mKHNpZ2luZm9fdCkpOwogICAgICAgIGVsc2UKCiAgICAgICAgICAg ICAgICBtZW1jcHkodG8sIGZyb20sIDMqc2l6ZW9mKGludCkgKyBzaXplb2YoZnJvbS0+X3NpZmll bGRzLl9zaWdjaGxkKSk7Cn0KCmV4dGVybiBpbnQgY29weV9zaWdpbmZvX3RvX3VzZXIoc2lnaW5m b190ICp0bywgc2lnaW5mb190ICpmcm9tKTsKZXh0ZXJuIGludCBjb3B5X3NpZ2luZm9fZnJvbV91 c2VyKHNpZ2luZm9fdCAqdG8sIHNpZ2luZm9fdCAqZnJvbSk7CiMgNiAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9zaWduYWwuaCIgMgoKCgoKCgpzdHJ1Y3Qgc2lncXVldWUgewog ICAgICAgIHN0cnVjdCBzaWdxdWV1ZSAqbmV4dDsKICAgICAgICBzaWdpbmZvX3QgaW5mbzsKfTsK CnN0cnVjdCBzaWdwZW5kaW5nIHsKICAgICAgICBzdHJ1Y3Qgc2lncXVldWUgKmhlYWQsICoqdGFp bDsKICAgICAgICBzaWdzZXRfdCBzaWduYWw7Cn07CgoKCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9hc20vYml0b3BzLmgiIDEKIyAyOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9zaWduYWwuaCIgMgoKCgpzdGF0aWMgaW5saW5lIHZvaWQgc2lnYWRkc2V0 KHNpZ3NldF90ICpzZXQsIGludCBfc2lnKQp7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzaWcgPSBf c2lnIC0gMTsKICAgICAgICBpZiAoKDY0IC8gNjQpID09IDEpCiAgICAgICAgICAgICAgICBzZXQt PnNpZ1swXSB8PSAxVUwgPDwgc2lnOwogICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHNldC0+ c2lnW3NpZyAvIDY0XSB8PSAxVUwgPDwgKHNpZyAlIDY0KTsKfQoKc3RhdGljIGlubGluZSB2b2lk IHNpZ2RlbHNldChzaWdzZXRfdCAqc2V0LCBpbnQgX3NpZykKewogICAgICAgIHVuc2lnbmVkIGxv bmcgc2lnID0gX3NpZyAtIDE7CiAgICAgICAgaWYgKCg2NCAvIDY0KSA9PSAxKQogICAgICAgICAg ICAgICAgc2V0LT5zaWdbMF0gJj0gfigxVUwgPDwgc2lnKTsKICAgICAgICBlbHNlCiAgICAgICAg ICAgICAgICBzZXQtPnNpZ1tzaWcgLyA2NF0gJj0gfigxVUwgPDwgKHNpZyAlIDY0KSk7Cn0KCnN0 YXRpYyBpbmxpbmUgaW50IHNpZ2lzbWVtYmVyKHNpZ3NldF90ICpzZXQsIGludCBfc2lnKQp7CiAg ICAgICAgdW5zaWduZWQgbG9uZyBzaWcgPSBfc2lnIC0gMTsKICAgICAgICBpZiAoKDY0IC8gNjQp ID09IDEpCiAgICAgICAgICAgICAgICByZXR1cm4gMSAmIChzZXQtPnNpZ1swXSA+PiBzaWcpOwog ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHJldHVybiAxICYgKHNldC0+c2lnW3NpZyAvIDY0 XSA+PiAoc2lnICUgNjQpKTsKfQoKc3RhdGljIGlubGluZSBpbnQgc2lnZmluZGlud29yZCh1bnNp Z25lZCBsb25nIHdvcmQpCnsKICAgICAgICByZXR1cm4gZmZ6KH53b3JkKTsKfQoKI2RlZmluZSBz aWdtYXNrKHNpZykgKDFVTCA8PCAoKHNpZykgLSAxKSkKCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9zdHJpbmcuaCIgMQojIDY5ICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L3NpZ25hbC5oIiAyCgojZGVmaW5lIF9TSUdfU0VUX0JJTk9QKG5hbWUs IG9wKSBzdGF0aWMgaW5saW5lIHZvaWQgbmFtZShzaWdzZXRfdCAqciwgY29uc3Qgc2lnc2V0X3Qg KmEsIGNvbnN0IHNpZ3NldF90ICpiKSB7IHVuc2lnbmVkIGxvbmcgYTAsIGExLCBhMiwgYTMsIGIw LCBiMSwgYjIsIGIzOyB1bnNpZ25lZCBsb25nIGk7IGZvciAoaSA9IDA7IGkgPCBfTlNJR19XT1JE Uy80OyArK2kpIHsgYTAgPSBhLT5zaWdbNCppKzBdOyBhMSA9IGEtPnNpZ1s0KmkrMV07IGEyID0g YS0+c2lnWzQqaSsyXTsgYTMgPSBhLT5zaWdbNCppKzNdOyBiMCA9IGItPnNpZ1s0KmkrMF07IGIx ID0gYi0+c2lnWzQqaSsxXTsgYjIgPSBiLT5zaWdbNCppKzJdOyBiMyA9IGItPnNpZ1s0KmkrM107 IHItPnNpZ1s0KmkrMF0gPSBvcChhMCwgYjApOyByLT5zaWdbNCppKzFdID0gb3AoYTEsIGIxKTsg ci0+c2lnWzQqaSsyXSA9IG9wKGEyLCBiMik7IHItPnNpZ1s0KmkrM10gPSBvcChhMywgYjMpOyB9 IHN3aXRjaCAoX05TSUdfV09SRFMgJSA0KSB7IGNhc2UgMzogYTAgPSBhLT5zaWdbNCppKzBdOyBh MSA9IGEtPnNpZ1s0KmkrMV07IGEyID0gYS0+c2lnWzQqaSsyXTsgYjAgPSBiLT5zaWdbNCppKzBd OyBiMSA9IGItPnNpZ1s0KmkrMV07IGIyID0gYi0+c2lnWzQqaSsyXTsgci0+c2lnWzQqaSswXSA9 IG9wKGEwLCBiMCk7IHItPnNpZ1s0KmkrMV0gPSBvcChhMSwgYjEpOyByLT5zaWdbNCppKzJdID0g b3AoYTIsIGIyKTsgYnJlYWs7IGNhc2UgMjogYTAgPSBhLT5zaWdbNCppKzBdOyBhMSA9IGEtPnNp Z1s0KmkrMV07IGIwID0gYi0+c2lnWzQqaSswXTsgYjEgPSBiLT5zaWdbNCppKzFdOyByLT5zaWdb NCppKzBdID0gb3AoYTAsIGIwKTsgci0+c2lnWzQqaSsxXSA9IG9wKGExLCBiMSk7IGJyZWFrOyBj YXNlIDE6IGEwID0gYS0+c2lnWzQqaSswXTsgYjAgPSBiLT5zaWdbNCppKzBdOyByLT5zaWdbNCpp KzBdID0gb3AoYTAsIGIwKTsgYnJlYWs7IH0gfQojIDEwNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9zaWduYWwuaCIKI2RlZmluZSBfc2lnX29yKHgsIHkpICgoeCkgfCAoeSkp CnN0YXRpYyBpbmxpbmUgdm9pZCBzaWdvcnNldHMoc2lnc2V0X3QgKnIsIGNvbnN0IHNpZ3NldF90 ICphLCBjb25zdCBzaWdzZXRfdCAqYikgeyB1bnNpZ25lZCBsb25nIGEwLCBhMSwgYTIsIGEzLCBi MCwgYjEsIGIyLCBiMzsgdW5zaWduZWQgbG9uZyBpOyBmb3IgKGkgPSAwOyBpIDwgKDY0IC8gNjQp LzQ7ICsraSkgeyBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQqaSsxXTsgYTIgPSBh LT5zaWdbNCppKzJdOyBhMyA9IGEtPnNpZ1s0KmkrM107IGIwID0gYi0+c2lnWzQqaSswXTsgYjEg PSBiLT5zaWdbNCppKzFdOyBiMiA9IGItPnNpZ1s0KmkrMl07IGIzID0gYi0+c2lnWzQqaSszXTsg ci0+c2lnWzQqaSswXSA9ICgoYTApIHwgKGIwKSk7IHItPnNpZ1s0KmkrMV0gPSAoKGExKSB8IChi MSkpOyByLT5zaWdbNCppKzJdID0gKChhMikgfCAoYjIpKTsgci0+c2lnWzQqaSszXSA9ICgoYTMp IHwgKGIzKSk7IH0gc3dpdGNoICgoNjQgLyA2NCkgJSA0KSB7IGNhc2UgMzogYTAgPSBhLT5zaWdb NCppKzBdOyBhMSA9IGEtPnNpZ1s0KmkrMV07IGEyID0gYS0+c2lnWzQqaSsyXTsgYjAgPSBiLT5z aWdbNCppKzBdOyBiMSA9IGItPnNpZ1s0KmkrMV07IGIyID0gYi0+c2lnWzQqaSsyXTsgci0+c2ln WzQqaSswXSA9ICgoYTApIHwgKGIwKSk7IHItPnNpZ1s0KmkrMV0gPSAoKGExKSB8IChiMSkpOyBy LT5zaWdbNCppKzJdID0gKChhMikgfCAoYjIpKTsgYnJlYWs7IGNhc2UgMjogYTAgPSBhLT5zaWdb NCppKzBdOyBhMSA9IGEtPnNpZ1s0KmkrMV07IGIwID0gYi0+c2lnWzQqaSswXTsgYjEgPSBiLT5z aWdbNCppKzFdOyByLT5zaWdbNCppKzBdID0gKChhMCkgfCAoYjApKTsgci0+c2lnWzQqaSsxXSA9 ICgoYTEpIHwgKGIxKSk7IGJyZWFrOyBjYXNlIDE6IGEwID0gYS0+c2lnWzQqaSswXTsgYjAgPSBi LT5zaWdbNCppKzBdOyByLT5zaWdbNCppKzBdID0gKChhMCkgfCAoYjApKTsgYnJlYWs7IH0gfQoK I2RlZmluZSBfc2lnX2FuZCh4LCB5KSAoKHgpICYgKHkpKQpzdGF0aWMgaW5saW5lIHZvaWQgc2ln YW5kc2V0cyhzaWdzZXRfdCAqciwgY29uc3Qgc2lnc2V0X3QgKmEsIGNvbnN0IHNpZ3NldF90ICpi KSB7IHVuc2lnbmVkIGxvbmcgYTAsIGExLCBhMiwgYTMsIGIwLCBiMSwgYjIsIGIzOyB1bnNpZ25l ZCBsb25nIGk7IGZvciAoaSA9IDA7IGkgPCAoNjQgLyA2NCkvNDsgKytpKSB7IGEwID0gYS0+c2ln WzQqaSswXTsgYTEgPSBhLT5zaWdbNCppKzFdOyBhMiA9IGEtPnNpZ1s0KmkrMl07IGEzID0gYS0+ c2lnWzQqaSszXTsgYjAgPSBiLT5zaWdbNCppKzBdOyBiMSA9IGItPnNpZ1s0KmkrMV07IGIyID0g Yi0+c2lnWzQqaSsyXTsgYjMgPSBiLT5zaWdbNCppKzNdOyByLT5zaWdbNCppKzBdID0gKChhMCkg JiAoYjApKTsgci0+c2lnWzQqaSsxXSA9ICgoYTEpICYgKGIxKSk7IHItPnNpZ1s0KmkrMl0gPSAo KGEyKSAmIChiMikpOyByLT5zaWdbNCppKzNdID0gKChhMykgJiAoYjMpKTsgfSBzd2l0Y2ggKCg2 NCAvIDY0KSAlIDQpIHsgY2FzZSAzOiBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQq aSsxXTsgYTIgPSBhLT5zaWdbNCppKzJdOyBiMCA9IGItPnNpZ1s0KmkrMF07IGIxID0gYi0+c2ln WzQqaSsxXTsgYjIgPSBiLT5zaWdbNCppKzJdOyByLT5zaWdbNCppKzBdID0gKChhMCkgJiAoYjAp KTsgci0+c2lnWzQqaSsxXSA9ICgoYTEpICYgKGIxKSk7IHItPnNpZ1s0KmkrMl0gPSAoKGEyKSAm IChiMikpOyBicmVhazsgY2FzZSAyOiBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQq aSsxXTsgYjAgPSBiLT5zaWdbNCppKzBdOyBiMSA9IGItPnNpZ1s0KmkrMV07IHItPnNpZ1s0Kmkr MF0gPSAoKGEwKSAmIChiMCkpOyByLT5zaWdbNCppKzFdID0gKChhMSkgJiAoYjEpKTsgYnJlYWs7 IGNhc2UgMTogYTAgPSBhLT5zaWdbNCppKzBdOyBiMCA9IGItPnNpZ1s0KmkrMF07IHItPnNpZ1s0 KmkrMF0gPSAoKGEwKSAmIChiMCkpOyBicmVhazsgfSB9CgojZGVmaW5lIF9zaWdfbmFuZCh4LCB5 KSAoKHgpICYgfih5KSkKc3RhdGljIGlubGluZSB2b2lkIHNpZ25hbmRzZXRzKHNpZ3NldF90ICpy LCBjb25zdCBzaWdzZXRfdCAqYSwgY29uc3Qgc2lnc2V0X3QgKmIpIHsgdW5zaWduZWQgbG9uZyBh MCwgYTEsIGEyLCBhMywgYjAsIGIxLCBiMiwgYjM7IHVuc2lnbmVkIGxvbmcgaTsgZm9yIChpID0g MDsgaSA8ICg2NCAvIDY0KS80OyArK2kpIHsgYTAgPSBhLT5zaWdbNCppKzBdOyBhMSA9IGEtPnNp Z1s0KmkrMV07IGEyID0gYS0+c2lnWzQqaSsyXTsgYTMgPSBhLT5zaWdbNCppKzNdOyBiMCA9IGIt PnNpZ1s0KmkrMF07IGIxID0gYi0+c2lnWzQqaSsxXTsgYjIgPSBiLT5zaWdbNCppKzJdOyBiMyA9 IGItPnNpZ1s0KmkrM107IHItPnNpZ1s0KmkrMF0gPSAoKGEwKSAmIH4oYjApKTsgci0+c2lnWzQq aSsxXSA9ICgoYTEpICYgfihiMSkpOyByLT5zaWdbNCppKzJdID0gKChhMikgJiB+KGIyKSk7IHIt PnNpZ1s0KmkrM10gPSAoKGEzKSAmIH4oYjMpKTsgfSBzd2l0Y2ggKCg2NCAvIDY0KSAlIDQpIHsg Y2FzZSAzOiBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQqaSsxXTsgYTIgPSBhLT5z aWdbNCppKzJdOyBiMCA9IGItPnNpZ1s0KmkrMF07IGIxID0gYi0+c2lnWzQqaSsxXTsgYjIgPSBi LT5zaWdbNCppKzJdOyByLT5zaWdbNCppKzBdID0gKChhMCkgJiB+KGIwKSk7IHItPnNpZ1s0Kmkr MV0gPSAoKGExKSAmIH4oYjEpKTsgci0+c2lnWzQqaSsyXSA9ICgoYTIpICYgfihiMikpOyBicmVh azsgY2FzZSAyOiBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQqaSsxXTsgYjAgPSBi LT5zaWdbNCppKzBdOyBiMSA9IGItPnNpZ1s0KmkrMV07IHItPnNpZ1s0KmkrMF0gPSAoKGEwKSAm IH4oYjApKTsgci0+c2lnWzQqaSsxXSA9ICgoYTEpICYgfihiMSkpOyBicmVhazsgY2FzZSAxOiBh MCA9IGEtPnNpZ1s0KmkrMF07IGIwID0gYi0+c2lnWzQqaSswXTsgci0+c2lnWzQqaSswXSA9ICgo YTApICYgfihiMCkpOyBicmVhazsgfSB9CgojdW5kZWYgX1NJR19TRVRfQklOT1AKI3VuZGVmIF9z aWdfb3IKI3VuZGVmIF9zaWdfYW5kCiN1bmRlZiBfc2lnX25hbmQKCiNkZWZpbmUgX1NJR19TRVRf T1AobmFtZSwgb3ApIHN0YXRpYyBpbmxpbmUgdm9pZCBuYW1lKHNpZ3NldF90ICpzZXQpIHsgdW5z aWduZWQgbG9uZyBpOyBmb3IgKGkgPSAwOyBpIDwgX05TSUdfV09SRFMvNDsgKytpKSB7IHNldC0+ c2lnWzQqaSswXSA9IG9wKHNldC0+c2lnWzQqaSswXSk7IHNldC0+c2lnWzQqaSsxXSA9IG9wKHNl dC0+c2lnWzQqaSsxXSk7IHNldC0+c2lnWzQqaSsyXSA9IG9wKHNldC0+c2lnWzQqaSsyXSk7IHNl dC0+c2lnWzQqaSszXSA9IG9wKHNldC0+c2lnWzQqaSszXSk7IH0gc3dpdGNoIChfTlNJR19XT1JE UyAlIDQpIHsgY2FzZSAzOiBzZXQtPnNpZ1s0KmkrMl0gPSBvcChzZXQtPnNpZ1s0KmkrMl0pOyBj YXNlIDI6IHNldC0+c2lnWzQqaSsxXSA9IG9wKHNldC0+c2lnWzQqaSsxXSk7IGNhc2UgMTogc2V0 LT5zaWdbNCppKzBdID0gb3Aoc2V0LT5zaWdbNCppKzBdKTsgfSB9CiMgMTM5ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NpZ25hbC5oIgojZGVmaW5lIF9zaWdfbm90KHgpICh+ KHgpKQpzdGF0aWMgaW5saW5lIHZvaWQgc2lnbm90c2V0KHNpZ3NldF90ICpzZXQpIHsgdW5zaWdu ZWQgbG9uZyBpOyBmb3IgKGkgPSAwOyBpIDwgKDY0IC8gNjQpLzQ7ICsraSkgeyBzZXQtPnNpZ1s0 KmkrMF0gPSAofihzZXQtPnNpZ1s0KmkrMF0pKTsgc2V0LT5zaWdbNCppKzFdID0gKH4oc2V0LT5z aWdbNCppKzFdKSk7IHNldC0+c2lnWzQqaSsyXSA9ICh+KHNldC0+c2lnWzQqaSsyXSkpOyBzZXQt PnNpZ1s0KmkrM10gPSAofihzZXQtPnNpZ1s0KmkrM10pKTsgfSBzd2l0Y2ggKCg2NCAvIDY0KSAl IDQpIHsgY2FzZSAzOiBzZXQtPnNpZ1s0KmkrMl0gPSAofihzZXQtPnNpZ1s0KmkrMl0pKTsgY2Fz ZSAyOiBzZXQtPnNpZ1s0KmkrMV0gPSAofihzZXQtPnNpZ1s0KmkrMV0pKTsgY2FzZSAxOiBzZXQt PnNpZ1s0KmkrMF0gPSAofihzZXQtPnNpZ1s0KmkrMF0pKTsgfSB9CgojdW5kZWYgX1NJR19TRVRf T1AKI3VuZGVmIF9zaWdfbm90CgpzdGF0aWMgaW5saW5lIHZvaWQgc2lnZW1wdHlzZXQoc2lnc2V0 X3QgKnNldCkKewogICAgICAgIHN3aXRjaCAoKDY0IC8gNjQpKSB7CiAgICAgICAgZGVmYXVsdDoK ICAgICAgICAgICAgICAgIG1lbXNldChzZXQsIDAsIHNpemVvZihzaWdzZXRfdCkpOwogICAgICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAyOiBzZXQtPnNpZ1sxXSA9IDA7CiAgICAgICAg Y2FzZSAxOiBzZXQtPnNpZ1swXSA9IDA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9 Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCBzaWdmaWxsc2V0KHNpZ3NldF90ICpzZXQpCnsKICAgICAg ICBzd2l0Y2ggKCg2NCAvIDY0KSkgewogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBt ZW1zZXQoc2V0LCAtMSwgc2l6ZW9mKHNpZ3NldF90KSk7CiAgICAgICAgICAgICAgICBicmVhazsK ICAgICAgICBjYXNlIDI6IHNldC0+c2lnWzFdID0gLTE7CiAgICAgICAgY2FzZSAxOiBzZXQtPnNp Z1swXSA9IC0xOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQp9CgpleHRlcm4gY2hh ciAqIHJlbmRlcl9zaWdzZXRfdChzaWdzZXRfdCAqc2V0LCBjaGFyICpidWZmZXIpOwoKCgpzdGF0 aWMgaW5saW5lIHZvaWQgc2lnYWRkc2V0bWFzayhzaWdzZXRfdCAqc2V0LCB1bnNpZ25lZCBsb25n IG1hc2spCnsKICAgICAgICBzZXQtPnNpZ1swXSB8PSBtYXNrOwp9CgpzdGF0aWMgaW5saW5lIHZv aWQgc2lnZGVsc2V0bWFzayhzaWdzZXRfdCAqc2V0LCB1bnNpZ25lZCBsb25nIG1hc2spCnsKICAg ICAgICBzZXQtPnNpZ1swXSAmPSB+bWFzazsKfQoKc3RhdGljIGlubGluZSBpbnQgc2lndGVzdHNl dG1hc2soc2lnc2V0X3QgKnNldCwgdW5zaWduZWQgbG9uZyBtYXNrKQp7CiAgICAgICAgcmV0dXJu IChzZXQtPnNpZ1swXSAmIG1hc2spICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCBzaWdpbml0 c2V0KHNpZ3NldF90ICpzZXQsIHVuc2lnbmVkIGxvbmcgbWFzaykKewogICAgICAgIHNldC0+c2ln WzBdID0gbWFzazsKICAgICAgICBzd2l0Y2ggKCg2NCAvIDY0KSkgewogICAgICAgIGRlZmF1bHQ6 CiAgICAgICAgICAgICAgICBtZW1zZXQoJnNldC0+c2lnWzFdLCAwLCBzaXplb2YobG9uZykqKCg2 NCAvIDY0KS0xKSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDI6IHNldC0+ c2lnWzFdID0gMDsKICAgICAgICBjYXNlIDE6IDsKICAgICAgICB9Cn0KCnN0YXRpYyBpbmxpbmUg dm9pZCBzaWdpbml0c2V0aW52KHNpZ3NldF90ICpzZXQsIHVuc2lnbmVkIGxvbmcgbWFzaykKewog ICAgICAgIHNldC0+c2lnWzBdID0gfm1hc2s7CiAgICAgICAgc3dpdGNoICgoNjQgLyA2NCkpIHsK ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgbWVtc2V0KCZzZXQtPnNpZ1sxXSwgLTEs IHNpemVvZihsb25nKSooKDY0IC8gNjQpLTEpKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAg ICAgIGNhc2UgMjogc2V0LT5zaWdbMV0gPSAtMTsKICAgICAgICBjYXNlIDE6IDsKICAgICAgICB9 Cn0KCgoKc3RhdGljIGlubGluZSB2b2lkIGluaXRfc2lncGVuZGluZyhzdHJ1Y3Qgc2lncGVuZGlu ZyAqc2lnKQp7CiAgICAgICAgc2lnZW1wdHlzZXQoJnNpZy0+c2lnbmFsKTsKICAgICAgICBzaWct PmhlYWQgPSAoKHZvaWQgKikwKTsKICAgICAgICBzaWctPnRhaWwgPSAmc2lnLT5oZWFkOwp9Cgpl eHRlcm4gbG9uZyBkb19zaWdwZW5kaW5nKHZvaWQgKiwgdW5zaWduZWQgbG9uZyk7CiMgMjcgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgojIDEgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2VjdXJlYml0cy5oIiAxCgojZGVmaW5lIF9MSU5V WF9TRUNVUkVCSVRTX0ggMQoKI2RlZmluZSBTRUNVUkVCSVRTX0RFRkFVTFQgMHgwMDAwMDAwMAoK ZXh0ZXJuIHVuc2lnbmVkIHNlY3VyZWJpdHNfUnNtcF9hYmU3NzQ4NDsKCgoKCgoKCiNkZWZpbmUg U0VDVVJFX05PUk9PVCAwCgoKCgojZGVmaW5lIFNFQ1VSRV9OT19TRVRVSURfRklYVVAgMgoKCgoK CgojZGVmaW5lIGlzc2VjdXJlKFgpICggKDEgPDwgKFgrMSkpICYgU0VDVVJFQklUU19ERUZBVUxU ID8gKDEgPDwgKFgpKSAmIFNFQ1VSRUJJVFNfREVGQVVMVCA6ICgxIDw8IChYKSkgJiBzZWN1cmVi aXRzICkKIyAyOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAy CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mc19zdHJ1Y3QuaCIgMQoK I2RlZmluZSBfTElOVVhfRlNfU1RSVUNUX0gKCgpzdHJ1Y3QgZnNfc3RydWN0IHsKICAgICAgICBh dG9taWNfdCBjb3VudDsKICAgICAgICByd2xvY2tfdCBsb2NrOwogICAgICAgIGludCB1bWFzazsK ICAgICAgICBzdHJ1Y3QgZGVudHJ5ICogcm9vdCwgKiBwd2QsICogYWx0cm9vdDsKICAgICAgICBz dHJ1Y3QgdmZzbW91bnQgKiByb290bW50LCAqIHB3ZG1udCwgKiBhbHRyb290bW50Owp9OwoKI2Rl ZmluZSBJTklUX0ZTIHsgQVRPTUlDX0lOSVQoMSksIFJXX0xPQ0tfVU5MT0NLRUQsIDAwMjIsIE5V TEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfQoKCgoKCgpleHRlcm4gdm9pZCBleGl0 X2ZzX1JzbXBfZGM1MzZmNTIoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gdm9pZCBzZXRf ZnNfYWx0cm9vdCh2b2lkKTsKCgoKCgoKc3RhdGljIGlubGluZSB2b2lkIHNldF9mc19yb290KHN0 cnVjdCBmc19zdHJ1Y3QgKmZzLAogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqbW50LAogICAgICAg IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogICAgICAgIHN0cnVjdCBkZW50cnkgKm9sZF9yb290 OwogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqb2xkX3Jvb3RtbnQ7CiAgICAgICAgZG8geyBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoICJtb3YgYXIuY2N2ID0gcjBcbiIgIm1vdmwgcjI5ID0gMHg4MDAw MDAwMFxuIiAiOztcbiIgIjE6XG4iICJsZDQgcjIgPSBbJTBdXG4iICI7O1xuIiAiY21wNC5lcSBw MCxwNyA9IHIwLHIyXG4iICIocDcpIGJyLmNvbmQuc3BudC5mZXcgMWIgXG4iICIiImNtcHhjaGc0 LmFjcSByMiA9IFslMF0sIHIyOSwgYXIuY2N2XG4iICI7O1xuIiAiY21wNC5lcSBwMCxwNyA9IHIw LCByMlxuIiAiKHA3KSBici5jb25kLnNwbnQuZmV3IDFiXG4iICI7O1xuIiA6OiAiciIoJmZzLT5s b2NrKSA6ICJyMiIsICJyMjkiLCAibWVtb3J5Iik7IH0gd2hpbGUoMCk7CiAgICAgICAgb2xkX3Jv b3QgPSBmcy0+cm9vdDsKICAgICAgICBvbGRfcm9vdG1udCA9IGZzLT5yb290bW50OwogICAgICAg IGZzLT5yb290bW50ID0gbW50Z2V0KG1udCk7CiAgICAgICAgZnMtPnJvb3QgPSBkZ2V0KGRlbnRy eSk7CiAgICAgICAgKHtjbGVhcl9iaXQoMzEsICgmZnMtPmxvY2spKTsgX19hc21fXyBfX3ZvbGF0 aWxlX18gKCJtZiIgOjo6ICJtZW1vcnkiKTt9KTsKICAgICAgICBpZiAob2xkX3Jvb3QpIHsKICAg ICAgICAgICAgICAgIGRwdXRfUnNtcF81NzRlNmJhMyhvbGRfcm9vdCk7CiAgICAgICAgICAgICAg ICBtbnRwdXQob2xkX3Jvb3RtbnQpOwogICAgICAgIH0KfQoKCgoKCgpzdGF0aWMgaW5saW5lIHZv aWQgc2V0X2ZzX3B3ZChzdHJ1Y3QgZnNfc3RydWN0ICpmcywKICAgICAgICBzdHJ1Y3QgdmZzbW91 bnQgKm1udCwKICAgICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKICAgICAgICBzdHJ1Y3Qg ZGVudHJ5ICpvbGRfcHdkOwogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqb2xkX3B3ZG1udDsKICAg ICAgICBkbyB7IF9fYXNtX18gX192b2xhdGlsZV9fICggIm1vdiBhci5jY3YgPSByMFxuIiAibW92 bCByMjkgPSAweDgwMDAwMDAwXG4iICI7O1xuIiAiMTpcbiIgImxkNCByMiA9IFslMF1cbiIgIjs7 XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAscjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZldyAxYiBc biIgIiIiY21weGNoZzQuYWNxIHIyID0gWyUwXSwgcjI5LCBhci5jY3ZcbiIgIjs7XG4iICJjbXA0 LmVxIHAwLHA3ID0gcjAsIHIyXG4iICIocDcpIGJyLmNvbmQuc3BudC5mZXcgMWJcbiIgIjs7XG4i IDo6ICJyIigmZnMtPmxvY2spIDogInIyIiwgInIyOSIsICJtZW1vcnkiKTsgfSB3aGlsZSgwKTsK ICAgICAgICBvbGRfcHdkID0gZnMtPnB3ZDsKICAgICAgICBvbGRfcHdkbW50ID0gZnMtPnB3ZG1u dDsKICAgICAgICBmcy0+cHdkbW50ID0gbW50Z2V0KG1udCk7CiAgICAgICAgZnMtPnB3ZCA9IGRn ZXQoZGVudHJ5KTsKICAgICAgICAoe2NsZWFyX2JpdCgzMSwgKCZmcy0+bG9jaykpOyBfX2FzbV9f IF9fdm9sYXRpbGVfXyAoIm1mIiA6OjogIm1lbW9yeSIpO30pOwogICAgICAgIGlmIChvbGRfcHdk KSB7CiAgICAgICAgICAgICAgICBkcHV0X1JzbXBfNTc0ZTZiYTMob2xkX3B3ZCk7CiAgICAgICAg ICAgICAgICBtbnRwdXQob2xkX3B3ZG1udCk7CiAgICAgICAgfQp9CgpzdHJ1Y3QgZnNfc3RydWN0 ICpjb3B5X2ZzX3N0cnVjdChzdHJ1Y3QgZnNfc3RydWN0ICpvbGQpOwp2b2lkIHB1dF9mc19zdHJ1 Y3Qoc3RydWN0IGZzX3N0cnVjdCAqZnMpOwojIDI5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L3NjaGVkLmgiIDIKCgoKCiNkZWZpbmUgQ1NJR05BTCAweDAwMDAwMGZmCiNkZWZp bmUgQ0xPTkVfVk0gMHgwMDAwMDEwMAojZGVmaW5lIENMT05FX0ZTIDB4MDAwMDAyMDAKI2RlZmlu ZSBDTE9ORV9GSUxFUyAweDAwMDAwNDAwCiNkZWZpbmUgQ0xPTkVfU0lHSEFORCAweDAwMDAwODAw CiNkZWZpbmUgQ0xPTkVfUElEIDB4MDAwMDEwMDAKI2RlZmluZSBDTE9ORV9QVFJBQ0UgMHgwMDAw MjAwMAojZGVmaW5lIENMT05FX1ZGT1JLIDB4MDAwMDQwMDAKI2RlZmluZSBDTE9ORV9QQVJFTlQg MHgwMDAwODAwMAojZGVmaW5lIENMT05FX1RIUkVBRCAweDAwMDEwMDAwCgojZGVmaW5lIENMT05F X1NJR05BTCAoQ0xPTkVfU0lHSEFORCB8IENMT05FX1RIUkVBRCkKIyA1NiAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIgpleHRlcm4gdW5zaWduZWQgbG9uZyBhdmVu cnVuW107CgojZGVmaW5lIEZTSElGVCAxMQojZGVmaW5lIEZJWEVEXzEgKDE8PEZTSElGVCkKI2Rl ZmluZSBMT0FEX0ZSRVEgKDUqSFopCiNkZWZpbmUgRVhQXzEgMTg4NAojZGVmaW5lIEVYUF81IDIw MTQKI2RlZmluZSBFWFBfMTUgMjAzNwoKI2RlZmluZSBDQUxDX0xPQUQobG9hZCwgZXhwLCBuKSBs b2FkICo9IGV4cDsgbG9hZCArPSBuKihGSVhFRF8xLWV4cCk7IGxvYWQgPj49IEZTSElGVDsKCgoK CiNkZWZpbmUgQ1RfVE9fU0VDUyh4KSAoKHgpIC8gSFopCiNkZWZpbmUgQ1RfVE9fVVNFQ1MoeCkg KCgoeCkgJSBIWikgKiAxMDAwMDAwL0haKQoKZXh0ZXJuIGludCBucl9ydW5uaW5nX1JzbXBfY2Ez YzZkNzgsIG5yX3RocmVhZHM7CmV4dGVybiBpbnQgbGFzdF9waWQ7CgojIDEgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMQojIDc3ICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L3RpbWUuaCIgMQojIDc4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Bh cmFtLmgiIDEKCiNkZWZpbmUgX0xJTlVYX1BBUkFNX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp bGQvaW5jbHVkZS9hc20vcGFyYW0uaCIgMQojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvcGFyYW0uaCIgMgojIDc5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Jl c291cmNlLmgiIDEKCiNkZWZpbmUgX0xJTlVYX1JFU09VUkNFX0gKCiMgMSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lLmgiIDEKIyA1ICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L3Jlc291cmNlLmgiIDIKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9yZXNvdXJjZS5oIgojZGVmaW5lIFJVU0FHRV9TRUxGIDAKI2RlZmluZSBS VVNBR0VfQ0hJTERSRU4gKC0xKQojZGVmaW5lIFJVU0FHRV9CT1RIICgtMikKCnN0cnVjdCBydXNh Z2UgewogICAgICAgIHN0cnVjdCB0aW1ldmFsIHJ1X3V0aW1lOwogICAgICAgIHN0cnVjdCB0aW1l dmFsIHJ1X3N0aW1lOwogICAgICAgIGxvbmcgcnVfbWF4cnNzOwogICAgICAgIGxvbmcgcnVfaXhy c3M7CiAgICAgICAgbG9uZyBydV9pZHJzczsKICAgICAgICBsb25nIHJ1X2lzcnNzOwogICAgICAg IGxvbmcgcnVfbWluZmx0OwogICAgICAgIGxvbmcgcnVfbWFqZmx0OwogICAgICAgIGxvbmcgcnVf bnN3YXA7CiAgICAgICAgbG9uZyBydV9pbmJsb2NrOwogICAgICAgIGxvbmcgcnVfb3VibG9jazsK ICAgICAgICBsb25nIHJ1X21zZ3NuZDsKICAgICAgICBsb25nIHJ1X21zZ3JjdjsKICAgICAgICBs b25nIHJ1X25zaWduYWxzOwogICAgICAgIGxvbmcgcnVfbnZjc3c7CiAgICAgICAgbG9uZyBydV9u aXZjc3c7Cn07CgpzdHJ1Y3QgcmxpbWl0IHsKICAgICAgICB1bnNpZ25lZCBsb25nIHJsaW1fY3Vy OwogICAgICAgIHVuc2lnbmVkIGxvbmcgcmxpbV9tYXg7Cn07CgojZGVmaW5lIFBSSU9fTUlOICgt MjApCiNkZWZpbmUgUFJJT19NQVggMjAKCiNkZWZpbmUgUFJJT19QUk9DRVNTIDAKI2RlZmluZSBQ UklPX1BHUlAgMQojZGVmaW5lIFBSSU9fVVNFUiAyCgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2FzbS9yZXNvdXJjZS5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9SRVNPVVJD RV9ICiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Jlc291cmNlLmgiCiNk ZWZpbmUgUkxJTUlUX0NQVSAwCiNkZWZpbmUgUkxJTUlUX0ZTSVpFIDEKI2RlZmluZSBSTElNSVRf REFUQSAyCiNkZWZpbmUgUkxJTUlUX1NUQUNLIDMKI2RlZmluZSBSTElNSVRfQ09SRSA0CiNkZWZp bmUgUkxJTUlUX1JTUyA1CiNkZWZpbmUgUkxJTUlUX05QUk9DIDYKI2RlZmluZSBSTElNSVRfTk9G SUxFIDcKI2RlZmluZSBSTElNSVRfTUVNTE9DSyA4CiNkZWZpbmUgUkxJTUlUX0FTIDkKI2RlZmlu ZSBSTElNSVRfTE9DS1MgMTAKCiNkZWZpbmUgUkxJTV9OTElNSVRTIDExCgoKCgoKI2RlZmluZSBS TElNX0lORklOSVRZICh+MFVMKQoKCgojZGVmaW5lIElOSVRfUkxJTUlUUyB7IHsgUkxJTV9JTkZJ TklUWSwgUkxJTV9JTkZJTklUWSB9LCB7IFJMSU1fSU5GSU5JVFksIFJMSU1fSU5GSU5JVFkgfSwg eyBSTElNX0lORklOSVRZLCBSTElNX0lORklOSVRZIH0sIHsgX1NUS19MSU0sIFJMSU1fSU5GSU5J VFkgfSwgeyAwLCBSTElNX0lORklOSVRZIH0sIHsgUkxJTV9JTkZJTklUWSwgUkxJTV9JTkZJTklU WSB9LCB7IDAsIDAgfSwgeyBJTlJfT1BFTiwgSU5SX09QRU4gfSwgeyBSTElNX0lORklOSVRZLCBS TElNX0lORklOSVRZIH0sIHsgUkxJTV9JTkZJTklUWSwgUkxJTV9JTkZJTklUWSB9LCB7IFJMSU1f SU5GSU5JVFksIFJMSU1fSU5GSU5JVFkgfSwgfQojIDU3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L3Jlc291cmNlLmgiIDIKIyA4MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC90aW1lci5oIiAxCgojZGVmaW5lIF9MSU5VWF9USU1FUl9ICgojIDEgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA1ICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2xpbnV4L3RpbWVyLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L2xpc3QuaCIgMQojIDYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv bGludXgvdGltZXIuaCIgMgojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4 L3RpbWVyLmgiCnN0cnVjdCB0aW1lcl9saXN0IHsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxp c3Q7CiAgICAgICAgdW5zaWduZWQgbG9uZyBleHBpcmVzOwogICAgICAgIHVuc2lnbmVkIGxvbmcg ZGF0YTsKICAgICAgICB2b2lkICgqZnVuY3Rpb24pKHVuc2lnbmVkIGxvbmcpOwp9OwoKZXh0ZXJu IHZvaWQgYWRkX3RpbWVyX1JzbXBfYTE5ZWFjZjgoc3RydWN0IHRpbWVyX2xpc3QgKiB0aW1lcik7 CmV4dGVybiBpbnQgZGVsX3RpbWVyX1JzbXBfZmM2MmYxNmQoc3RydWN0IHRpbWVyX2xpc3QgKiB0 aW1lcik7CgoKZXh0ZXJuIGludCBkZWxfdGltZXJfc3luY19Sc21wX2RhZmYyNjZhKHN0cnVjdCB0 aW1lcl9saXN0ICogdGltZXIpOwpleHRlcm4gdm9pZCBzeW5jX3RpbWVycyh2b2lkKTsKIyA0MSAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lci5oIgppbnQgbW9kX3RpbWVy X1JzbXBfMWYxM2QzMDkoc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVyLCB1bnNpZ25lZCBsb25nIGV4 cGlyZXMpOwoKZXh0ZXJuIHZvaWQgaXRfcmVhbF9mbih1bnNpZ25lZCBsb25nKTsKCnN0YXRpYyBp bmxpbmUgdm9pZCBpbml0X3RpbWVyKHN0cnVjdCB0aW1lcl9saXN0ICogdGltZXIpCnsKICAgICAg ICB0aW1lci0+bGlzdC5uZXh0ID0gdGltZXItPmxpc3QucHJldiA9ICgodm9pZCAqKTApOwp9Cgpz dGF0aWMgaW5saW5lIGludCB0aW1lcl9wZW5kaW5nIChjb25zdCBzdHJ1Y3QgdGltZXJfbGlzdCAq IHRpbWVyKQp7CiAgICAgICAgcmV0dXJuIHRpbWVyLT5saXN0Lm5leHQgIT0gKCh2b2lkICopMCk7 Cn0KIyA2NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lci5oIgojZGVm aW5lIHRpbWVfYWZ0ZXIoYSwgYikgKChsb25nKShiKSAtIChsb25nKShhKSA8IDApCiNkZWZpbmUg dGltZV9iZWZvcmUoYSwgYikgdGltZV9hZnRlcihiLGEpCgojZGVmaW5lIHRpbWVfYWZ0ZXJfZXEo YSwgYikgKChsb25nKShhKSAtIChsb25nKShiKSA+PSAwKQojZGVmaW5lIHRpbWVfYmVmb3JlX2Vx KGEsIGIpIHRpbWVfYWZ0ZXJfZXEoYixhKQojIDgxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L3NjaGVkLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h c20vcHJvY2Vzc29yLmgiIDEKIyA4MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9zY2hlZC5oIiAyCgojZGVmaW5lIFRBU0tfUlVOTklORyAwCiNkZWZpbmUgVEFTS19JTlRFUlJV UFRJQkxFIDEKI2RlZmluZSBUQVNLX1VOSU5URVJSVVBUSUJMRSAyCiNkZWZpbmUgVEFTS19aT01C SUUgNAojZGVmaW5lIFRBU0tfU1RPUFBFRCA4CgojZGVmaW5lIF9fc2V0X3Rhc2tfc3RhdGUodHNr LCBzdGF0ZV92YWx1ZSkgZG8geyAodHNrKS0+c3RhdGUgPSAoc3RhdGVfdmFsdWUpOyB9IHdoaWxl ICgwKQoKCiNkZWZpbmUgc2V0X3Rhc2tfc3RhdGUodHNrLCBzdGF0ZV92YWx1ZSkgc2V0X21iKCh0 c2spLT5zdGF0ZSwgKHN0YXRlX3ZhbHVlKSkKCgoKCgoKI2RlZmluZSBfX3NldF9jdXJyZW50X3N0 YXRlKHN0YXRlX3ZhbHVlKSBkbyB7IGN1cnJlbnQtPnN0YXRlID0gKHN0YXRlX3ZhbHVlKTsgfSB3 aGlsZSAoMCkKCgojZGVmaW5lIHNldF9jdXJyZW50X3N0YXRlKHN0YXRlX3ZhbHVlKSBzZXRfbWIo Y3VycmVudC0+c3RhdGUsIChzdGF0ZV92YWx1ZSkpCiMgMTEzICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCiNkZWZpbmUgU0NIRURfT1RIRVIgMAojZGVmaW5lIFND SEVEX0ZJRk8gMQojZGVmaW5lIFNDSEVEX1JSIDIKCgoKCgojZGVmaW5lIFNDSEVEX1lJRUxEIDB4 MTAKCnN0cnVjdCBzY2hlZF9wYXJhbSB7CiAgICAgICAgaW50IHNjaGVkX3ByaW9yaXR5Owp9OwoK c3RydWN0IGNvbXBsZXRpb247CgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC9zcGlubG9jay5oIiAxCiMgMTMyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L3NjaGVkLmgiIDIKCgoKCgoKCmV4dGVybiByd2xvY2tfdCB0YXNrbGlzdF9sb2NrX1JzbXBf ZWJjOTM1NzQ7CmV4dGVybiBzcGlubG9ja190IHJ1bnF1ZXVlX2xvY2s7CmV4dGVybiBzcGlubG9j a190IG1tbGlzdF9sb2NrOwoKZXh0ZXJuIHZvaWQgc2NoZWRfaW5pdCh2b2lkKTsKZXh0ZXJuIHZv aWQgaW5pdF9pZGxlKHZvaWQpOwpleHRlcm4gdm9pZCBzaG93X3N0YXRlKHZvaWQpOwpleHRlcm4g dm9pZCBjcHVfaW5pdCAodm9pZCk7CmV4dGVybiB2b2lkIHRyYXBfaW5pdCh2b2lkKTsKZXh0ZXJu IHZvaWQgdXBkYXRlX3Byb2Nlc3NfdGltZXMoaW50IHVzZXIpOwpleHRlcm4gdm9pZCB1cGRhdGVf b25lX3Byb2Nlc3Moc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1bnNpZ25lZCBsb25nIHVzZXIsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN5c3RlbSwgaW50IGNw dSk7CgojZGVmaW5lIE1BWF9TQ0hFRFVMRV9USU1FT1VUIExPTkdfTUFYCmV4dGVybiBzaWduZWQg bG9uZyBzY2hlZHVsZV90aW1lb3V0X1JzbXBfZDYyYzgzM2Yoc2lnbmVkIGxvbmcgdGltZW91dCk7 CiBfX2F0dHJpYnV0ZV9fKChzeXNjYWxsX2xpbmthZ2UpKSB2b2lkIHNjaGVkdWxlX1JzbXBfYTQ0 ZmZmYzEodm9pZCk7CgpleHRlcm4gaW50IHNjaGVkdWxlX3Rhc2tfUnNtcF8yZDZjM2QwNChzdHJ1 Y3QgdHFfc3RydWN0ICp0YXNrKTsKZXh0ZXJuIHZvaWQgZmx1c2hfc2NoZWR1bGVkX3Rhc2tzX1Jz bXBfN2MzMjQyYjQodm9pZCk7CmV4dGVybiBpbnQgc3RhcnRfY29udGV4dF90aHJlYWQodm9pZCk7 CmV4dGVybiBpbnQgY3VycmVudF9pc19rZXZlbnRkKHZvaWQpOwoKCgoKCiNkZWZpbmUgTlJfT1BF Tl9ERUZBVUxUIEJJVFNfUEVSX0xPTkcKCgoKCnN0cnVjdCBmaWxlc19zdHJ1Y3QgewogICAgICAg IGF0b21pY190IGNvdW50OwogICAgICAgIHJ3bG9ja190IGZpbGVfbG9jazsKICAgICAgICBpbnQg bWF4X2ZkczsKICAgICAgICBpbnQgbWF4X2Zkc2V0OwogICAgICAgIGludCBuZXh0X2ZkOwogICAg ICAgIHN0cnVjdCBmaWxlICoqIGZkOwogICAgICAgIGZkX3NldCAqY2xvc2Vfb25fZXhlYzsKICAg ICAgICBmZF9zZXQgKm9wZW5fZmRzOwogICAgICAgIGZkX3NldCBjbG9zZV9vbl9leGVjX2luaXQ7 CiAgICAgICAgZmRfc2V0IG9wZW5fZmRzX2luaXQ7CiAgICAgICAgc3RydWN0IGZpbGUgKiBmZF9h cnJheVs2NF07Cn07CgojZGVmaW5lIElOSVRfRklMRVMgeyBjb3VudDogQVRPTUlDX0lOSVQoMSks IGZpbGVfbG9jazogUldfTE9DS19VTkxPQ0tFRCwgbWF4X2ZkczogTlJfT1BFTl9ERUZBVUxULCBt YXhfZmRzZXQ6IF9fRkRfU0VUU0laRSwgbmV4dF9mZDogMCwgZmQ6ICZpbml0X2ZpbGVzLmZkX2Fy cmF5WzBdLCBjbG9zZV9vbl9leGVjOiAmaW5pdF9maWxlcy5jbG9zZV9vbl9leGVjX2luaXQsIG9w ZW5fZmRzOiAmaW5pdF9maWxlcy5vcGVuX2Zkc19pbml0LCBjbG9zZV9vbl9leGVjX2luaXQ6IHsg eyAwLCB9IH0sIG9wZW5fZmRzX2luaXQ6IHsgeyAwLCB9IH0sIGZkX2FycmF5OiB7IE5VTEwsIH0g fQojIDIwMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIgojZGVm aW5lIE1BWF9NQVBfQ09VTlQgKDY1NTM2KQoKCiNkZWZpbmUgQVZMX01JTl9NQVBfQ09VTlQgMzIK CnN0cnVjdCBtbV9zdHJ1Y3QgewogICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIG1tYXA7 CiAgICAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICogbW1hcF9hdmw7CiAgICAgICAgc3RydWN0 IHZtX2FyZWFfc3RydWN0ICogbW1hcF9jYWNoZTsKICAgICAgICBwZ2RfdCAqIHBnZDsKICAgICAg ICBhdG9taWNfdCBtbV91c2VyczsKICAgICAgICBhdG9taWNfdCBtbV9jb3VudDsKICAgICAgICBp bnQgbWFwX2NvdW50OwogICAgICAgIHN0cnVjdCByd19zZW1hcGhvcmUgbW1hcF9zZW07CiAgICAg ICAgc3BpbmxvY2tfdCBwYWdlX3RhYmxlX2xvY2s7CgogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQg bW1saXN0OwoKCgoKICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2NvZGUsIGVuZF9jb2RlLCBz dGFydF9kYXRhLCBlbmRfZGF0YTsKICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2JyaywgYnJr LCBzdGFydF9zdGFjazsKICAgICAgICB1bnNpZ25lZCBsb25nIGFyZ19zdGFydCwgYXJnX2VuZCwg ZW52X3N0YXJ0LCBlbnZfZW5kOwogICAgICAgIHVuc2lnbmVkIGxvbmcgcnNzLCB0b3RhbF92bSwg bG9ja2VkX3ZtOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZGVmX2ZsYWdzOwogICAgICAgIHVuc2ln bmVkIGxvbmcgY3B1X3ZtX21hc2s7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzd2FwX2FkZHJlc3M7 CgogICAgICAgIHVuc2lnbmVkIGR1bXBhYmxlOjE7CgoKICAgICAgICBtbV9jb250ZXh0X3QgY29u dGV4dDsKfTsKCmV4dGVybiBpbnQgbW1saXN0X25yOwoKI2RlZmluZSBJTklUX01NKG5hbWUpIHsg bW1hcDogJmluaXRfbW1hcCwgbW1hcF9hdmw6IE5VTEwsIG1tYXBfY2FjaGU6IE5VTEwsIHBnZDog c3dhcHBlcl9wZ19kaXIsIG1tX3VzZXJzOiBBVE9NSUNfSU5JVCgyKSwgbW1fY291bnQ6IEFUT01J Q19JTklUKDEpLCBtYXBfY291bnQ6IDEsIG1tYXBfc2VtOiBfX1JXU0VNX0lOSVRJQUxJWkVSKG5h bWUubW1hcF9zZW0pLCBwYWdlX3RhYmxlX2xvY2s6IFNQSU5fTE9DS19VTkxPQ0tFRCwgbW1saXN0 OiBMSVNUX0hFQURfSU5JVChuYW1lLm1tbGlzdCksIH0KIyAyNTEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKc3RydWN0IHNpZ25hbF9zdHJ1Y3QgewogICAgICAg IGF0b21pY190IGNvdW50OwogICAgICAgIHN0cnVjdCBrX3NpZ2FjdGlvbiBhY3Rpb25bNjRdOwog ICAgICAgIHNwaW5sb2NrX3Qgc2lnbG9jazsKfTsKCgojZGVmaW5lIElOSVRfU0lHTkFMUyB7IGNv dW50OiBBVE9NSUNfSU5JVCgxKSwgYWN0aW9uOiB7IHt7MCx9fSwgfSwgc2lnbG9jazogU1BJTl9M T0NLX1VOTE9DS0VEIH0KIyAyNjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv c2NoZWQuaCIKc3RydWN0IHVzZXJfc3RydWN0IHsKICAgICAgICBhdG9taWNfdCBfX2NvdW50Owog ICAgICAgIGF0b21pY190IHByb2Nlc3NlczsKICAgICAgICBhdG9taWNfdCBmaWxlczsKCgogICAg ICAgIHN0cnVjdCB1c2VyX3N0cnVjdCAqbmV4dCwgKipwcHJldjsKICAgICAgICB1aWRfdCB1aWQ7 Cn07CgojZGVmaW5lIGdldF9jdXJyZW50X3VzZXIoKSAoeyBzdHJ1Y3QgdXNlcl9zdHJ1Y3QgKl9f dXNlciA9IGN1cnJlbnQtPnVzZXI7IGF0b21pY19pbmMoJl9fdXNlci0+X19jb3VudCk7IF9fdXNl cjsgfSkKCgoKCmV4dGVybiBzdHJ1Y3QgdXNlcl9zdHJ1Y3Qgcm9vdF91c2VyOwojZGVmaW5lIElO SVRfVVNFUiAoJnJvb3RfdXNlcikKCnN0cnVjdCB0YXNrX3N0cnVjdCB7CgoKCiAgICAgICAgdm9s YXRpbGUgbG9uZyBzdGF0ZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgICAgIGlu dCBzaWdwZW5kaW5nOwogICAgICAgIG1tX3NlZ21lbnRfdCBhZGRyX2xpbWl0OwoKCgogICAgICAg IHN0cnVjdCBleGVjX2RvbWFpbiAqZXhlY19kb21haW47CiAgICAgICAgdm9sYXRpbGUgbG9uZyBu ZWVkX3Jlc2NoZWQ7CiAgICAgICAgdW5zaWduZWQgbG9uZyBwdHJhY2U7CgogICAgICAgIGludCBs b2NrX2RlcHRoOwoKCgoKCgogICAgICAgIGxvbmcgY291bnRlcjsKICAgICAgICBsb25nIG5pY2U7 CiAgICAgICAgdW5zaWduZWQgbG9uZyBwb2xpY3k7CiAgICAgICAgc3RydWN0IG1tX3N0cnVjdCAq bW07CiAgICAgICAgaW50IGhhc19jcHUsIHByb2Nlc3NvcjsKICAgICAgICB1bnNpZ25lZCBsb25n IGNwdXNfYWxsb3dlZDsKCgoKCiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBydW5fbGlzdDsKICAg ICAgICB1bnNpZ25lZCBsb25nIHNsZWVwX3RpbWU7CgogICAgICAgIHN0cnVjdCB0YXNrX3N0cnVj dCAqbmV4dF90YXNrLCAqcHJldl90YXNrOwogICAgICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKmFjdGl2 ZV9tbTsKCgogICAgICAgIHN0cnVjdCBsaW51eF9iaW5mbXQgKmJpbmZtdDsKICAgICAgICBpbnQg ZXhpdF9jb2RlLCBleGl0X3NpZ25hbDsKICAgICAgICBpbnQgcGRlYXRoX3NpZ25hbDsKCiAgICAg ICAgdW5zaWduZWQgbG9uZyBwZXJzb25hbGl0eTsKICAgICAgICBpbnQgZGlkX2V4ZWM6MTsKICAg ICAgICBwaWRfdCBwaWQ7CiAgICAgICAgcGlkX3QgcGdycDsKICAgICAgICBwaWRfdCB0dHlfb2xk X3BncnA7CiAgICAgICAgcGlkX3Qgc2Vzc2lvbjsKICAgICAgICBwaWRfdCB0Z2lkOwoKICAgICAg ICBpbnQgbGVhZGVyOwoKCgoKCiAgICAgICAgc3RydWN0IHRhc2tfc3RydWN0ICpwX29wcHRyLCAq cF9wcHRyLCAqcF9jcHRyLCAqcF95c3B0ciwgKnBfb3NwdHI7CiAgICAgICAgc3RydWN0IGxpc3Rf aGVhZCB0aHJlYWRfZ3JvdXA7CgoKICAgICAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBpZGhhc2hf bmV4dDsKICAgICAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKipwaWRoYXNoX3BwcmV2OwoKICAgICAg ICB3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0X2NobGRleGl0OwogICAgICAgIHN0cnVjdCBjb21wbGV0 aW9uICp2Zm9ya19kb25lOwogICAgICAgIHVuc2lnbmVkIGxvbmcgcnRfcHJpb3JpdHk7CiAgICAg ICAgdW5zaWduZWQgbG9uZyBpdF9yZWFsX3ZhbHVlLCBpdF9wcm9mX3ZhbHVlLCBpdF92aXJ0X3Zh bHVlOwogICAgICAgIHVuc2lnbmVkIGxvbmcgaXRfcmVhbF9pbmNyLCBpdF9wcm9mX2luY3IsIGl0 X3ZpcnRfaW5jcjsKICAgICAgICBzdHJ1Y3QgdGltZXJfbGlzdCByZWFsX3RpbWVyOwogICAgICAg IHN0cnVjdCB0bXMgdGltZXM7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydF90aW1lOwogICAg ICAgIGxvbmcgcGVyX2NwdV91dGltZVszMl0sIHBlcl9jcHVfc3RpbWVbMzJdOwoKICAgICAgICB1 bnNpZ25lZCBsb25nIG1pbl9mbHQsIG1hal9mbHQsIG5zd2FwLCBjbWluX2ZsdCwgY21hal9mbHQs IGNuc3dhcDsKICAgICAgICBpbnQgc3dhcHBhYmxlOjE7CgogICAgICAgIHVpZF90IHVpZCxldWlk LHN1aWQsZnN1aWQ7CiAgICAgICAgZ2lkX3QgZ2lkLGVnaWQsc2dpZCxmc2dpZDsKICAgICAgICBp bnQgbmdyb3VwczsKICAgICAgICBnaWRfdCBncm91cHNbMzJdOwogICAgICAgIGtlcm5lbF9jYXBf dCBjYXBfZWZmZWN0aXZlLCBjYXBfaW5oZXJpdGFibGUsIGNhcF9wZXJtaXR0ZWQ7CiAgICAgICAg aW50IGtlZXBfY2FwYWJpbGl0aWVzOjE7CiAgICAgICAgc3RydWN0IHVzZXJfc3RydWN0ICp1c2Vy OwoKICAgICAgICBzdHJ1Y3QgcmxpbWl0IHJsaW1bMTFdOwogICAgICAgIHVuc2lnbmVkIHNob3J0 IHVzZWRfbWF0aDsKICAgICAgICBjaGFyIGNvbW1bMTZdOwoKICAgICAgICBpbnQgbGlua19jb3Vu dDsKICAgICAgICBzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OwogICAgICAgIHVuc2lnbmVkIGludCBs b2NrczsKCiAgICAgICAgc3RydWN0IHNlbV91bmRvICpzZW11bmRvOwogICAgICAgIHN0cnVjdCBz ZW1fcXVldWUgKnNlbXNsZWVwaW5nOwoKICAgICAgICBzdHJ1Y3QgdGhyZWFkX3N0cnVjdCB0aHJl YWQ7CgogICAgICAgIHN0cnVjdCBmc19zdHJ1Y3QgKmZzOwoKICAgICAgICBzdHJ1Y3QgZmlsZXNf c3RydWN0ICpmaWxlczsKCiAgICAgICAgc3BpbmxvY2tfdCBzaWdtYXNrX2xvY2s7CiAgICAgICAg c3RydWN0IHNpZ25hbF9zdHJ1Y3QgKnNpZzsKCiAgICAgICAgc2lnc2V0X3QgYmxvY2tlZDsKICAg ICAgICBzdHJ1Y3Qgc2lncGVuZGluZyBwZW5kaW5nOwoKICAgICAgICB1bnNpZ25lZCBsb25nIHNh c19zc19zcDsKICAgICAgICBzaXplX3Qgc2FzX3NzX3NpemU7CiAgICAgICAgaW50ICgqbm90aWZp ZXIpKHZvaWQgKnByaXYpOwogICAgICAgIHZvaWQgKm5vdGlmaWVyX2RhdGE7CiAgICAgICAgc2ln c2V0X3QgKm5vdGlmaWVyX21hc2s7CgoKICAgICAgICB1MzIgcGFyZW50X2V4ZWNfaWQ7CiAgICAg ICAgdTMyIHNlbGZfZXhlY19pZDsKCiAgICAgICAgc3BpbmxvY2tfdCBhbGxvY19sb2NrOwp9OwoK CgoKI2RlZmluZSBQRl9BTElHTldBUk4gMHgwMDAwMDAwMQoKI2RlZmluZSBQRl9TVEFSVElORyAw eDAwMDAwMDAyCiNkZWZpbmUgUEZfRVhJVElORyAweDAwMDAwMDA0CiNkZWZpbmUgUEZfRk9SS05P RVhFQyAweDAwMDAwMDQwCiNkZWZpbmUgUEZfU1VQRVJQUklWIDB4MDAwMDAxMDAKI2RlZmluZSBQ Rl9EVU1QQ09SRSAweDAwMDAwMjAwCiNkZWZpbmUgUEZfU0lHTkFMRUQgMHgwMDAwMDQwMAojZGVm aW5lIFBGX01FTUFMTE9DIDB4MDAwMDA4MDAKCiNkZWZpbmUgUEZfVVNFREZQVSAweDAwMTAwMDAw CgoKCgoKI2RlZmluZSBQVF9QVFJBQ0VEIDB4MDAwMDAwMDEKI2RlZmluZSBQVF9UUkFDRVNZUyAw eDAwMDAwMDAyCiNkZWZpbmUgUFRfRFRSQUNFIDB4MDAwMDAwMDQKI2RlZmluZSBQVF9UUkFDRVNZ U0dPT0QgMHgwMDAwMDAwOAoKCgoKCiNkZWZpbmUgX1NUS19MSU0gKDgqMTAyNCoxMDI0KQoKI2Rl ZmluZSBERUZfQ09VTlRFUiAoMTAqSFovMTAwKQojZGVmaW5lIE1BWF9DT1VOVEVSICgyMCpIWi8x MDApCiNkZWZpbmUgREVGX05JQ0UgKDApCgoKCgoKI2RlZmluZSBJTklUX1RBU0sodHNrKSB7IHN0 YXRlOiAwLCBmbGFnczogMCwgc2lncGVuZGluZzogMCwgYWRkcl9saW1pdDogS0VSTkVMX0RTLCBl eGVjX2RvbWFpbjogJmRlZmF1bHRfZXhlY19kb21haW4sIGxvY2tfZGVwdGg6IC0xLCBjb3VudGVy OiBERUZfQ09VTlRFUiwgbmljZTogREVGX05JQ0UsIHBvbGljeTogU0NIRURfT1RIRVIsIG1tOiBO VUxMLCBhY3RpdmVfbW06ICZpbml0X21tLCBjcHVzX2FsbG93ZWQ6IC0xLCBydW5fbGlzdDogTElT VF9IRUFEX0lOSVQodHNrLnJ1bl9saXN0KSwgbmV4dF90YXNrOiAmdHNrLCBwcmV2X3Rhc2s6ICZ0 c2ssIHBfb3BwdHI6ICZ0c2ssIHBfcHB0cjogJnRzaywgdGhyZWFkX2dyb3VwOiBMSVNUX0hFQURf SU5JVCh0c2sudGhyZWFkX2dyb3VwKSwgd2FpdF9jaGxkZXhpdDogX19XQUlUX1FVRVVFX0hFQURf SU5JVElBTElaRVIodHNrLndhaXRfY2hsZGV4aXQpLCByZWFsX3RpbWVyOiB7IGZ1bmN0aW9uOiBp dF9yZWFsX2ZuIH0sIGNhcF9lZmZlY3RpdmU6IENBUF9JTklUX0VGRl9TRVQsIGNhcF9pbmhlcml0 YWJsZTogQ0FQX0lOSVRfSU5IX1NFVCwgY2FwX3Blcm1pdHRlZDogQ0FQX0ZVTExfU0VULCBrZWVw X2NhcGFiaWxpdGllczogMCwgcmxpbTogSU5JVF9STElNSVRTLCB1c2VyOiBJTklUX1VTRVIsIGNv bW06ICJzd2FwcGVyIiwgdGhyZWFkOiBJTklUX1RIUkVBRCwgZnM6ICZpbml0X2ZzLCBmaWxlczog JmluaXRfZmlsZXMsIHNpZ21hc2tfbG9jazogU1BJTl9MT0NLX1VOTE9DS0VELCBzaWc6ICZpbml0 X3NpZ25hbHMsIHBlbmRpbmc6IHsgTlVMTCwgJnRzay5wZW5kaW5nLmhlYWQsIHt7MH19fSwgYmxv Y2tlZDoge3swfX0sIGFsbG9jX2xvY2s6IFNQSU5fTE9DS19VTkxPQ0tFRCB9CiMgNDkwICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCnVuaW9uIHRhc2tfdW5pb24g ewogICAgICAgIHN0cnVjdCB0YXNrX3N0cnVjdCB0YXNrOwogICAgICAgIHVuc2lnbmVkIGxvbmcg c3RhY2tbKCgxIDw8IDEpKigxVUwgPDwgMTQpKS9zaXplb2YobG9uZyldOwp9OwoKZXh0ZXJuIHVu aW9uIHRhc2tfdW5pb24gaW5pdF90YXNrX3VuaW9uX1JzbXBfY2U0ODE5MDQ7CgpleHRlcm4gc3Ry dWN0IG1tX3N0cnVjdCBpbml0X21tX1JzbXBfMzlkNTZlZDk7CmV4dGVybiBzdHJ1Y3QgdGFza19z dHJ1Y3QgKmluaXRfdGFza3NbMzJdOwoKCiNkZWZpbmUgUElESEFTSF9TWiAoNDA5NiA+PiAyKQpl eHRlcm4gc3RydWN0IHRhc2tfc3RydWN0ICpwaWRoYXNoX1JzbXBfYjQ4ZTA5NmNbKDQwOTYgPj4g MildOwoKI2RlZmluZSBwaWRfaGFzaGZuKHgpICgoKCh4KSA+PiA4KSBeICh4KSkgJiAoUElESEFT SF9TWiAtIDEpKQoKc3RhdGljIGlubGluZSB2b2lkIGhhc2hfcGlkKHN0cnVjdCB0YXNrX3N0cnVj dCAqcCkKewogICAgICAgIHN0cnVjdCB0YXNrX3N0cnVjdCAqKmh0YWJsZSA9ICZwaWRoYXNoX1Jz bXBfYjQ4ZTA5NmNbKCgoKHAtPnBpZCkgPj4gOCkgXiAocC0+cGlkKSkgJiAoKDQwOTYgPj4gMikg LSAxKSldOwoKICAgICAgICBpZigocC0+cGlkaGFzaF9uZXh0ID0gKmh0YWJsZSkgIT0gKCh2b2lk ICopMCkpCiAgICAgICAgICAgICAgICAoKmh0YWJsZSktPnBpZGhhc2hfcHByZXYgPSAmcC0+cGlk aGFzaF9uZXh0OwogICAgICAgICpodGFibGUgPSBwOwogICAgICAgIHAtPnBpZGhhc2hfcHByZXYg PSBodGFibGU7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCB1bmhhc2hfcGlkKHN0cnVjdCB0YXNrX3N0 cnVjdCAqcCkKewogICAgICAgIGlmKHAtPnBpZGhhc2hfbmV4dCkKICAgICAgICAgICAgICAgIHAt PnBpZGhhc2hfbmV4dC0+cGlkaGFzaF9wcHJldiA9IHAtPnBpZGhhc2hfcHByZXY7CiAgICAgICAg KnAtPnBpZGhhc2hfcHByZXYgPSBwLT5waWRoYXNoX25leHQ7Cn0KCnN0YXRpYyBpbmxpbmUgc3Ry dWN0IHRhc2tfc3RydWN0ICpmaW5kX3Rhc2tfYnlfcGlkKGludCBwaWQpCnsKICAgICAgICBzdHJ1 Y3QgdGFza19zdHJ1Y3QgKnAsICoqaHRhYmxlID0gJnBpZGhhc2hfUnNtcF9iNDhlMDk2Y1soKCgo cGlkKSA+PiA4KSBeIChwaWQpKSAmICgoNDA5NiA+PiAyKSAtIDEpKV07CgogICAgICAgIGZvcihw ID0gKmh0YWJsZTsgcCAmJiBwLT5waWQgIT0gcGlkOyBwID0gcC0+cGlkaGFzaF9uZXh0KQogICAg ICAgICAgICAgICAgOwoKICAgICAgICByZXR1cm4gcDsKfQoKCmV4dGVybiBzdHJ1Y3QgdXNlcl9z dHJ1Y3QgKiBhbGxvY191aWQodWlkX3QpOwpleHRlcm4gdm9pZCBmcmVlX3VpZChzdHJ1Y3QgdXNl cl9zdHJ1Y3QgKik7CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2N1cnJl bnQuaCIgMQojIDUzOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5o IiAyCgpleHRlcm4gdW5zaWduZWQgbG9uZyB2b2xhdGlsZSBqaWZmaWVzX1JzbXBfMGRhMDJkNjc7 CmV4dGVybiB1bnNpZ25lZCBsb25nIGl0aW1lcl90aWNrczsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcg aXRpbWVyX25leHQ7CmV4dGVybiBzdHJ1Y3QgdGltZXZhbCB4dGltZV9Sc21wX2YzMWRkZjgzOwpl eHRlcm4gdm9pZCBkb190aW1lcihzdHJ1Y3QgcHRfcmVncyAqKTsKCmV4dGVybiB1bnNpZ25lZCBp bnQgKiBwcm9mX2J1ZmZlcjsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcHJvZl9sZW47CmV4dGVybiB1 bnNpZ25lZCBsb25nIHByb2Zfc2hpZnQ7CgojZGVmaW5lIENVUlJFTlRfVElNRSAoeHRpbWUudHZf c2VjKQoKZXh0ZXJuIHZvaWQgX193YWtlX3VwX1JzbXBfNjlkZGJmMTUod2FpdF9xdWV1ZV9oZWFk X3QgKnEsIHVuc2lnbmVkIGludCBtb2RlLCBpbnQgbnIpOwpleHRlcm4gdm9pZCBfX3dha2VfdXBf c3luYyh3YWl0X3F1ZXVlX2hlYWRfdCAqcSwgdW5zaWduZWQgaW50IG1vZGUsIGludCBucik7CmV4 dGVybiB2b2lkIHNsZWVwX29uX1JzbXBfOGVhMjMxZmIod2FpdF9xdWV1ZV9oZWFkX3QgKnEpOwpl eHRlcm4gbG9uZyBzbGVlcF9vbl90aW1lb3V0X1JzbXBfNTY0NTBiM2Uod2FpdF9xdWV1ZV9oZWFk X3QgKnEsIHNpZ25lZCBsb25nIHRpbWVvdXQpOwoKZXh0ZXJuIHZvaWQgaW50ZXJydXB0aWJsZV9z bGVlcF9vbl9Sc21wXzQ4NGM1ZGI2KHdhaXRfcXVldWVfaGVhZF90ICpxKTsKZXh0ZXJuIGxvbmcg aW50ZXJydXB0aWJsZV9zbGVlcF9vbl90aW1lb3V0X1JzbXBfMzJhMDhjZDMod2FpdF9xdWV1ZV9o ZWFkX3QgKnEsIHNpZ25lZCBsb25nIHRpbWVvdXQpOwoKZXh0ZXJuIGludCB3YWtlX3VwX3Byb2Nl c3NfUnNtcF81NTBkODRhNShzdHJ1Y3QgdGFza19zdHJ1Y3QgKiB0c2spOwoKI2RlZmluZSB3YWtl X3VwKHgpIF9fd2FrZV91cCgoeCksVEFTS19VTklOVEVSUlVQVElCTEUgfCBUQVNLX0lOVEVSUlVQ VElCTEUsIDEpCiNkZWZpbmUgd2FrZV91cF9ucih4LCBucikgX193YWtlX3VwKCh4KSxUQVNLX1VO SU5URVJSVVBUSUJMRSB8IFRBU0tfSU5URVJSVVBUSUJMRSwgbnIpCiNkZWZpbmUgd2FrZV91cF9h bGwoeCkgX193YWtlX3VwKCh4KSxUQVNLX1VOSU5URVJSVVBUSUJMRSB8IFRBU0tfSU5URVJSVVBU SUJMRSwgMCkKI2RlZmluZSB3YWtlX3VwX3N5bmMoeCkgX193YWtlX3VwX3N5bmMoKHgpLFRBU0tf VU5JTlRFUlJVUFRJQkxFIHwgVEFTS19JTlRFUlJVUFRJQkxFLCAxKQojZGVmaW5lIHdha2VfdXBf c3luY19ucih4LCBucikgX193YWtlX3VwX3N5bmMoKHgpLFRBU0tfVU5JTlRFUlJVUFRJQkxFIHwg VEFTS19JTlRFUlJVUFRJQkxFLCBucikKI2RlZmluZSB3YWtlX3VwX2ludGVycnVwdGlibGUoeCkg X193YWtlX3VwKCh4KSxUQVNLX0lOVEVSUlVQVElCTEUsIDEpCiNkZWZpbmUgd2FrZV91cF9pbnRl cnJ1cHRpYmxlX25yKHgsIG5yKSBfX3dha2VfdXAoKHgpLFRBU0tfSU5URVJSVVBUSUJMRSwgbnIp CiNkZWZpbmUgd2FrZV91cF9pbnRlcnJ1cHRpYmxlX2FsbCh4KSBfX3dha2VfdXAoKHgpLFRBU0tf SU5URVJSVVBUSUJMRSwgMCkKI2RlZmluZSB3YWtlX3VwX2ludGVycnVwdGlibGVfc3luYyh4KSBf X3dha2VfdXBfc3luYygoeCksVEFTS19JTlRFUlJVUFRJQkxFLCAxKQojZGVmaW5lIHdha2VfdXBf aW50ZXJydXB0aWJsZV9zeW5jX25yKHgpIF9fd2FrZV91cF9zeW5jKCh4KSxUQVNLX0lOVEVSUlVQ VElCTEUsIG5yKQogX19hdHRyaWJ1dGVfXygoc3lzY2FsbF9saW5rYWdlKSkgbG9uZyBzeXNfd2Fp dDQocGlkX3QgcGlkLHVuc2lnbmVkIGludCAqIHN0YXRfYWRkciwgaW50IG9wdGlvbnMsIHN0cnVj dCBydXNhZ2UgKiBydSk7CgpleHRlcm4gaW50IGluX2dyb3VwX3BfUnNtcF8zMWViYWRjZChnaWRf dCk7CmV4dGVybiBpbnQgaW5fZWdyb3VwX3BfUnNtcF80MmE0YmRmMihnaWRfdCk7CgpleHRlcm4g dm9pZCBwcm9jX2NhY2hlc19pbml0KHZvaWQpOwpleHRlcm4gdm9pZCBmbHVzaF9zaWduYWxzX1Jz bXBfZmVhZjkxN2Qoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gdm9pZCBmbHVzaF9zaWdu YWxfaGFuZGxlcnMoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gaW50IGRlcXVldWVfc2ln bmFsX1JzbXBfNjcyYTgxMGEoc2lnc2V0X3QgKiwgc2lnaW5mb190ICopOwpleHRlcm4gdm9pZCBi bG9ja19hbGxfc2lnbmFsc19Sc21wXzRlZGQ3MmY3KGludCAoKm5vdGlmaWVyKSh2b2lkICpwcml2 KSwgdm9pZCAqcHJpdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnc2V0X3QgKm1h c2spOwpleHRlcm4gdm9pZCB1bmJsb2NrX2FsbF9zaWduYWxzX1JzbXBfMGEyNDg3ZTAodm9pZCk7 CmV4dGVybiBpbnQgc2VuZF9zaWdfaW5mb19Sc21wX2ViZTg1MmE4KGludCwgc3RydWN0IHNpZ2lu Zm8gKiwgc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gaW50IGZvcmNlX3NpZ19pbmZvX1Jz bXBfY2MyYjQyZTEoaW50LCBzdHJ1Y3Qgc2lnaW5mbyAqLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7 CmV4dGVybiBpbnQga2lsbF9wZ19pbmZvX1JzbXBfYWM3YzgwMDYoaW50LCBzdHJ1Y3Qgc2lnaW5m byAqLCBwaWRfdCk7CmV4dGVybiBpbnQga2lsbF9zbF9pbmZvX1JzbXBfNzcxMzA5MWQoaW50LCBz dHJ1Y3Qgc2lnaW5mbyAqLCBwaWRfdCk7CmV4dGVybiBpbnQga2lsbF9wcm9jX2luZm9fUnNtcF9j ZTE3ZTc5MyhpbnQsIHN0cnVjdCBzaWdpbmZvICosIHBpZF90KTsKZXh0ZXJuIHZvaWQgbm90aWZ5 X3BhcmVudF9Sc21wX2U3NmFmMTQzKHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBpbnQpOwpleHRlcm4g dm9pZCBkb19ub3RpZnlfcGFyZW50KHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBpbnQpOwpleHRlcm4g dm9pZCBmb3JjZV9zaWdfUnNtcF82NTVjY2JhYShpbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqKTsK ZXh0ZXJuIGludCBzZW5kX3NpZ19Sc21wXzkzMzZkZDAxKGludCwgc3RydWN0IHRhc2tfc3RydWN0 ICosIGludCk7CmV4dGVybiBpbnQga2lsbF9wZ19Sc21wXzM4ZjI5NzE5KHBpZF90LCBpbnQsIGlu dCk7CmV4dGVybiBpbnQga2lsbF9zbF9Sc21wX2ZiYTEyZmQwKHBpZF90LCBpbnQsIGludCk7CmV4 dGVybiBpbnQga2lsbF9wcm9jX1JzbXBfOTMyZGE2N2UocGlkX3QsIGludCwgaW50KTsKZXh0ZXJu IGludCBkb19zaWdhY3Rpb24oaW50LCBjb25zdCBzdHJ1Y3Qga19zaWdhY3Rpb24gKiwgc3RydWN0 IGtfc2lnYWN0aW9uICopOwpleHRlcm4gaW50IGRvX3NpZ2FsdHN0YWNrKGNvbnN0IHN0YWNrX3Qg Kiwgc3RhY2tfdCAqLCB1bnNpZ25lZCBsb25nKTsKCnN0YXRpYyBpbmxpbmUgaW50IHNpZ25hbF9w ZW5kaW5nKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKewogICAgICAgIHJldHVybiAocC0+c2lncGVu ZGluZyAhPSAwKTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgaW50IGhhc19wZW5kaW5nX3NpZ25hbHMo c2lnc2V0X3QgKnNpZ25hbCwgc2lnc2V0X3QgKmJsb2NrZWQpCnsKICAgICAgICB1bnNpZ25lZCBs b25nIHJlYWR5OwogICAgICAgIGxvbmcgaTsKCiAgICAgICAgc3dpdGNoICgoNjQgLyA2NCkpIHsK ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgZm9yIChpID0gKDY0IC8gNjQpLCByZWFk eSA9IDA7IC0taSA+PSAwIDspCiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWR5IHw9IHNpZ25h bC0+c2lnW2ldICZ+IGJsb2NrZWQtPnNpZ1tpXTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAg ICAgICBjYXNlIDQ6IHJlYWR5ID0gc2lnbmFsLT5zaWdbM10gJn4gYmxvY2tlZC0+c2lnWzNdOwog ICAgICAgICAgICAgICAgcmVhZHkgfD0gc2lnbmFsLT5zaWdbMl0gJn4gYmxvY2tlZC0+c2lnWzJd OwogICAgICAgICAgICAgICAgcmVhZHkgfD0gc2lnbmFsLT5zaWdbMV0gJn4gYmxvY2tlZC0+c2ln WzFdOwogICAgICAgICAgICAgICAgcmVhZHkgfD0gc2lnbmFsLT5zaWdbMF0gJn4gYmxvY2tlZC0+ c2lnWzBdOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgMjogcmVhZHkgPSBz aWduYWwtPnNpZ1sxXSAmfiBibG9ja2VkLT5zaWdbMV07CiAgICAgICAgICAgICAgICByZWFkeSB8 PSBzaWduYWwtPnNpZ1swXSAmfiBibG9ja2VkLT5zaWdbMF07CiAgICAgICAgICAgICAgICBicmVh azsKCiAgICAgICAgY2FzZSAxOiByZWFkeSA9IHNpZ25hbC0+c2lnWzBdICZ+IGJsb2NrZWQtPnNp Z1swXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlYWR5ICE9IDA7Cn0KCgoKCgpzdGF0aWMg aW5saW5lIHZvaWQgcmVjYWxjX3NpZ3BlbmRpbmdfUnNtcF83Njk4N2IxZihzdHJ1Y3QgdGFza19z dHJ1Y3QgKnQpCnsKICAgICAgICB0LT5zaWdwZW5kaW5nID0gaGFzX3BlbmRpbmdfc2lnbmFscygm dC0+cGVuZGluZy5zaWduYWwsICZ0LT5ibG9ja2VkKTsKfQoKCgpzdGF0aWMgaW5saW5lIGludCBv bl9zaWdfc3RhY2sodW5zaWduZWQgbG9uZyBzcCkKewogICAgICAgIHJldHVybiAoc3AgLSBjdXJy ZW50LT5zYXNfc3Nfc3AgPCBjdXJyZW50LT5zYXNfc3Nfc2l6ZSk7Cn0KCnN0YXRpYyBpbmxpbmUg aW50IHNhc19zc19mbGFncyh1bnNpZ25lZCBsb25nIHNwKQp7CiAgICAgICAgcmV0dXJuIChjdXJy ZW50LT5zYXNfc3Nfc2l6ZSA9PSAwID8gMgogICAgICAgICAgICAgICAgOiBvbl9zaWdfc3RhY2so c3ApID8gMSA6IDApOwp9CgpleHRlcm4gaW50IHJlcXVlc3RfaXJxX1JzbXBfYWJiNzZhMjcodW5z aWduZWQgaW50LAogICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpoYW5kbGVyKShpbnQsIHZv aWQgKiwgc3RydWN0IHB0X3JlZ3MgKiksCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZywgY29uc3QgY2hhciAqLCB2b2lkICopOwpleHRlcm4gdm9pZCBmcmVlX2lycV9Sc21wX2Yy MGRhYmQ4KHVuc2lnbmVkIGludCwgdm9pZCAqKTsKIyA2NzQgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgvc2NoZWQuaCIKc3RhdGljIGlubGluZSBpbnQgc3VzZXIodm9pZCkKewog ICAgICAgIGlmICghKCAoMSA8PCAoMCArMSkpICYgMHgwMDAwMDAwMCA/ICgxIDw8ICgwKSkgJiAw eDAwMDAwMDAwIDogKDEgPDwgKDApKSAmIHNlY3VyZWJpdHNfUnNtcF9hYmU3NzQ4NCApICYmIGN1 cnJlbnQtPmV1aWQgPT0gMCkgewogICAgICAgICAgICAgICAgY3VycmVudC0+ZmxhZ3MgfD0gMHgw MDAwMDEwMDsKICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgICByZXR1 cm4gMDsKfQoKc3RhdGljIGlubGluZSBpbnQgZnN1c2VyKHZvaWQpCnsKICAgICAgICBpZiAoISgg KDEgPDwgKDAgKzEpKSAmIDB4MDAwMDAwMDAgPyAoMSA8PCAoMCkpICYgMHgwMDAwMDAwMCA6ICgx IDw8ICgwKSkgJiBzZWN1cmViaXRzX1JzbXBfYWJlNzc0ODQgKSAmJiBjdXJyZW50LT5mc3VpZCA9 PSAwKSB7CiAgICAgICAgICAgICAgICBjdXJyZW50LT5mbGFncyB8PSAweDAwMDAwMTAwOwogICAg ICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgfQogICAgICAgIHJldHVybiAwOwp9CgoKCgoK CgpzdGF0aWMgaW5saW5lIGludCBjYXBhYmxlKGludCBjYXApCnsKCiAgICAgICAgaWYgKCgoY3Vy cmVudC0+Y2FwX2VmZmVjdGl2ZSkgJiAoMSA8PCAoY2FwKSkpKQoKCgogICAgICAgIHsKICAgICAg ICAgICAgICAgIGN1cnJlbnQtPmZsYWdzIHw9IDB4MDAwMDAxMDA7CiAgICAgICAgICAgICAgICBy ZXR1cm4gMTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDA7Cn0KCgoKCmV4dGVybiBzdHJ1Y3Qg bW1fc3RydWN0ICogbW1fYWxsb2Modm9pZCk7CgpleHRlcm4gc3RydWN0IG1tX3N0cnVjdCAqIHN0 YXJ0X2xhenlfdGxiKHZvaWQpOwpleHRlcm4gdm9pZCBlbmRfbGF6eV90bGIoc3RydWN0IG1tX3N0 cnVjdCAqbW0pOwoKCmV4dGVybiBpbmxpbmUgdm9pZCBfX21tZHJvcChzdHJ1Y3QgbW1fc3RydWN0 ICopOwpzdGF0aWMgaW5saW5lIHZvaWQgbW1kcm9wKHN0cnVjdCBtbV9zdHJ1Y3QgKiBtbSkKewog ICAgICAgIGlmICgoKChfX2J1aWx0aW5fY29uc3RhbnRfcCgxKSAmJiAoICgxID09IDEpIHx8ICgx ID09IDQpIHx8ICgxID09IDgpIHx8ICgxID09IDE2KSB8fCAoMSA9PSAtMSkgfHwgKDEgPT0gLTQp IHx8ICgxID09IC04KSB8fCAoMSA9PSAtMTYpKSkgPyAoeyBfX3U2NCBfdG1wOyB2b2xhdGlsZSBf X3R5cGVvZl9fKCooJigoJm1tLT5tbV9jb3VudCkpLT5jb3VudGVyKSkgKl92ID0gKCYoKCZtbS0+ bW1fY291bnQpKS0+Y291bnRlcik7IHN3aXRjaCAoLSgxKSkgeyBjYXNlIC0xNjogKHsgc3dpdGNo IChzaXplb2YoKigmKCgmbW0tPm1tX2NvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNt X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w KSA6ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9f IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg OiAiciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3Np emVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtODogKHsgc3dp dGNoIChzaXplb2YoKigmKCgmbW0tPm1tX2NvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf dG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNt X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w KSA6ICJyIihfdiksICJpIigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTQ6ICh7IHN3 aXRjaCAoc2l6ZW9mKCooJigoJm1tLT5tbV9jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBf X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo X3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt cCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRf c2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC0xOiAoeyBz d2l0Y2ggKHNpemVvZigqKCYoKCZtbS0+bW1fY291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi KF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19h c21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90 bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk X3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxOiAoeyBz d2l0Y2ggKHNpemVvZigqKCYoKCZtbS0+bW1fY291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi KF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt cCkgOiAiciIoX3YpLCAiaSIoMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgNDogKHsgc3dp dGNoIChzaXplb2YoKigmKCgmbW0tPm1tX2NvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf dG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21f XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp IDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6 ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDg6ICh7IHN3aXRj aCAoc2l6ZW9mKCooJigoJm1tLT5tbV9jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt cCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18g X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6 ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVf Zm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxNjogKHsgc3dpdGNo IChzaXplb2YoKigmKCgmbW0tPm1tX2NvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNt X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w KSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18g X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6 ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXpl X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGRlZmF1bHQ6IF90bXAgPSBf X2JhZF9pbmNyZW1lbnRfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyBicmVhazsgfSAoX190eXBl b2ZfXygqJigoJm1tLT5tbV9jb3VudCkpLT5jb3VudGVyKSkgKF90bXAgKyAoLSgxKSkpOyB9KSA6 IGlhNjRfYXRvbWljX3N1YigxLCAoJm1tLT5tbV9jb3VudCkpKSA9PSAwKSkKICAgICAgICAgICAg ICAgIF9fbW1kcm9wKG1tKTsKfQoKCmV4dGVybiB2b2lkIG1tcHV0KHN0cnVjdCBtbV9zdHJ1Y3Qg Kik7CgpleHRlcm4gdm9pZCBtbV9yZWxlYXNlKHZvaWQpOwoKCgoKZXh0ZXJuIHN0cnVjdCBmaWxl ICoqIGFsbG9jX2ZkX2FycmF5KGludCk7CmV4dGVybiBpbnQgZXhwYW5kX2ZkX2FycmF5KHN0cnVj dCBmaWxlc19zdHJ1Y3QgKiwgaW50IG5yKTsKZXh0ZXJuIHZvaWQgZnJlZV9mZF9hcnJheShzdHJ1 Y3QgZmlsZSAqKiwgaW50KTsKCmV4dGVybiBmZF9zZXQgKmFsbG9jX2Zkc2V0KGludCk7CmV4dGVy biBpbnQgZXhwYW5kX2Zkc2V0KHN0cnVjdCBmaWxlc19zdHJ1Y3QgKiwgaW50IG5yKTsKZXh0ZXJu IHZvaWQgZnJlZV9mZHNldChmZF9zZXQgKiwgaW50KTsKCmV4dGVybiBpbnQgY29weV90aHJlYWQo aW50LCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCBzdHJ1Y3Qg dGFza19zdHJ1Y3QgKiwgc3RydWN0IHB0X3JlZ3MgKik7CmV4dGVybiB2b2lkIGZsdXNoX3RocmVh ZCh2b2lkKTsKZXh0ZXJuIHZvaWQgZXhpdF90aHJlYWQodm9pZCk7CgpleHRlcm4gdm9pZCBleGl0 X21tX1JzbXBfODZkMjQ3MTgoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gdm9pZCBleGl0 X2ZpbGVzX1JzbXBfODBhYTUzMzgoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gdm9pZCBl eGl0X3NpZ2hhbmRfUnNtcF81ZDE3OWE0OChzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7CgpleHRlcm4g dm9pZCBkYWVtb25pemVfUnNtcF9kNjZhMzU0YSh2b2lkKTsKCmV4dGVybiBpbnQgZG9fZXhlY3Zl X1JzbXBfZGUxOWYwM2IoY2hhciAqLCBjaGFyICoqLCBjaGFyICoqLCBzdHJ1Y3QgcHRfcmVncyAq KTsKZXh0ZXJuIGludCBkb19mb3JrKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHN0cnVj dCBwdF9yZWdzICosIHVuc2lnbmVkIGxvbmcpOwoKZXh0ZXJuIHZvaWQgYWRkX3dhaXRfcXVldWVf UnNtcF83Njg4NDJlNyh3YWl0X3F1ZXVlX2hlYWRfdCAqcSwgd2FpdF9xdWV1ZV90ICogd2FpdCk7 CmV4dGVybiB2b2lkIGFkZF93YWl0X3F1ZXVlX2V4Y2x1c2l2ZV9Sc21wXzAwMjg3Yzk5KHdhaXRf cXVldWVfaGVhZF90ICpxLCB3YWl0X3F1ZXVlX3QgKiB3YWl0KTsKZXh0ZXJuIHZvaWQgcmVtb3Zl X3dhaXRfcXVldWVfUnNtcF8xMzNhYWVkOCh3YWl0X3F1ZXVlX2hlYWRfdCAqcSwgd2FpdF9xdWV1 ZV90ICogd2FpdCk7CgojZGVmaW5lIF9fd2FpdF9ldmVudCh3cSwgY29uZGl0aW9uKSBkbyB7IHdh aXRfcXVldWVfdCBfX3dhaXQ7IGluaXRfd2FpdHF1ZXVlX2VudHJ5KCZfX3dhaXQsIGN1cnJlbnQp OyBhZGRfd2FpdF9xdWV1ZSgmd3EsICZfX3dhaXQpOyBmb3IgKDs7KSB7IHNldF9jdXJyZW50X3N0 YXRlKFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsgaWYgKGNvbmRpdGlvbikgYnJlYWs7IHNjaGVkdWxl KCk7IH0gY3VycmVudC0+c3RhdGUgPSBUQVNLX1JVTk5JTkc7IHJlbW92ZV93YWl0X3F1ZXVlKCZ3 cSwgJl9fd2FpdCk7IH0gd2hpbGUgKDApCiMgNzc3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2xpbnV4L3NjaGVkLmgiCiNkZWZpbmUgd2FpdF9ldmVudCh3cSwgY29uZGl0aW9uKSBkbyB7 IGlmIChjb25kaXRpb24pIGJyZWFrOyBfX3dhaXRfZXZlbnQod3EsIGNvbmRpdGlvbik7IH0gd2hp bGUgKDApCgoKCgoKCiNkZWZpbmUgX193YWl0X2V2ZW50X2ludGVycnVwdGlibGUod3EsIGNvbmRp dGlvbiwgcmV0KSBkbyB7IHdhaXRfcXVldWVfdCBfX3dhaXQ7IGluaXRfd2FpdHF1ZXVlX2VudHJ5 KCZfX3dhaXQsIGN1cnJlbnQpOyBhZGRfd2FpdF9xdWV1ZSgmd3EsICZfX3dhaXQpOyBmb3IgKDs7 KSB7IHNldF9jdXJyZW50X3N0YXRlKFRBU0tfSU5URVJSVVBUSUJMRSk7IGlmIChjb25kaXRpb24p IGJyZWFrOyBpZiAoIXNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7IHNjaGVkdWxlKCk7IGNvbnRp bnVlOyB9IHJldCA9IC1FUkVTVEFSVFNZUzsgYnJlYWs7IH0gY3VycmVudC0+c3RhdGUgPSBUQVNL X1JVTk5JTkc7IHJlbW92ZV93YWl0X3F1ZXVlKCZ3cSwgJl9fd2FpdCk7IH0gd2hpbGUgKDApCiMg ODA1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCiNkZWZpbmUg d2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKHdxLCBjb25kaXRpb24pICh7IGludCBfX3JldCA9IDA7 IGlmICghKGNvbmRpdGlvbikpIF9fd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKHdxLCBjb25kaXRp b24sIF9fcmV0KTsgX19yZXQ7IH0pCgoKCgoKCgojZGVmaW5lIFJFTU9WRV9MSU5LUyhwKSBkbyB7 IChwKS0+bmV4dF90YXNrLT5wcmV2X3Rhc2sgPSAocCktPnByZXZfdGFzazsgKHApLT5wcmV2X3Rh c2stPm5leHRfdGFzayA9IChwKS0+bmV4dF90YXNrOyBpZiAoKHApLT5wX29zcHRyKSAocCktPnBf b3NwdHItPnBfeXNwdHIgPSAocCktPnBfeXNwdHI7IGlmICgocCktPnBfeXNwdHIpIChwKS0+cF95 c3B0ci0+cF9vc3B0ciA9IChwKS0+cF9vc3B0cjsgZWxzZSAocCktPnBfcHB0ci0+cF9jcHRyID0g KHApLT5wX29zcHRyOyB9IHdoaWxlICgwKQojIDgyNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9saW51eC9zY2hlZC5oIgojZGVmaW5lIFNFVF9MSU5LUyhwKSBkbyB7IChwKS0+bmV4dF90 YXNrID0gJmluaXRfdGFzazsgKHApLT5wcmV2X3Rhc2sgPSBpbml0X3Rhc2sucHJldl90YXNrOyBp bml0X3Rhc2sucHJldl90YXNrLT5uZXh0X3Rhc2sgPSAocCk7IGluaXRfdGFzay5wcmV2X3Rhc2sg PSAocCk7IChwKS0+cF95c3B0ciA9IE5VTEw7IGlmICgoKHApLT5wX29zcHRyID0gKHApLT5wX3Bw dHItPnBfY3B0cikgIT0gTlVMTCkgKHApLT5wX29zcHRyLT5wX3lzcHRyID0gcDsgKHApLT5wX3Bw dHItPnBfY3B0ciA9IHA7IH0gd2hpbGUgKDApCiMgODM1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p bmNsdWRlL2xpbnV4L3NjaGVkLmgiCiNkZWZpbmUgZm9yX2VhY2hfdGFzayhwKSBmb3IgKHAgPSAm aW5pdF90YXNrIDsgKHAgPSBwLT5uZXh0X3Rhc2spICE9ICZpbml0X3Rhc2sgOyApCgoKI2RlZmlu ZSBuZXh0X3RocmVhZChwKSBsaXN0X2VudHJ5KChwKS0+dGhyZWFkX2dyb3VwLm5leHQsIHN0cnVj dCB0YXNrX3N0cnVjdCwgdGhyZWFkX2dyb3VwKQoKCnN0YXRpYyBpbmxpbmUgdm9pZCBkZWxfZnJv bV9ydW5xdWV1ZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKiBwKQp7CiAgICAgICAgbnJfcnVubmluZ19S c21wX2NhM2M2ZDc4LS07CiAgICAgICAgcC0+c2xlZXBfdGltZSA9IGppZmZpZXNfUnNtcF8wZGEw MmQ2NzsKICAgICAgICBsaXN0X2RlbCgmcC0+cnVuX2xpc3QpOwogICAgICAgIHAtPnJ1bl9saXN0 Lm5leHQgPSAoKHZvaWQgKikwKTsKfQoKc3RhdGljIGlubGluZSBpbnQgdGFza19vbl9ydW5xdWV1 ZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCnsKICAgICAgICByZXR1cm4gKHAtPnJ1bl9saXN0Lm5l eHQgIT0gKCh2b2lkICopMCkpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQgdW5oYXNoX3Byb2Nlc3Mo c3RydWN0IHRhc2tfc3RydWN0ICpwKQp7CiAgICAgICAgaWYgKHRhc2tfb25fcnVucXVldWUocCkp IGRvIHsgcHJpbnRrX1JzbXBfODI3ZDU4MDcoImtlcm5lbCBCVUcgYXQgJXM6JWQhXG4iLCAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiwgODU2KTsgKihpbnQgKikw PTA7IH0gd2hpbGUgKDApOwogICAgICAgIGRvIHsgX19hc21fXyBfX3ZvbGF0aWxlX18gKCI7OyBy c20gcHNyLmk7OyIgOjo6ICJtZW1vcnkiKTsgZG8geyBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoICJt b3YgYXIuY2N2ID0gcjBcbiIgIm1vdmwgcjI5ID0gMHg4MDAwMDAwMFxuIiAiOztcbiIgIjE6XG4i ICJsZDQgcjIgPSBbJTBdXG4iICI7O1xuIiAiY21wNC5lcSBwMCxwNyA9IHIwLHIyXG4iICIocDcp IGJyLmNvbmQuc3BudC5mZXcgMWIgXG4iICIiImNtcHhjaGc0LmFjcSByMiA9IFslMF0sIHIyOSwg YXIuY2N2XG4iICI7O1xuIiAiY21wNC5lcSBwMCxwNyA9IHIwLCByMlxuIiAiKHA3KSBici5jb25k LnNwbnQuZmV3IDFiXG4iICI7O1xuIiA6OiAiciIoJnRhc2tsaXN0X2xvY2tfUnNtcF9lYmM5MzU3 NCkgOiAicjIiLCAicjI5IiwgIm1lbW9yeSIpOyB9IHdoaWxlKDApOyB9IHdoaWxlICgwKTsKICAg ICAgICBucl90aHJlYWRzLS07CiAgICAgICAgdW5oYXNoX3BpZChwKTsKICAgICAgICBkbyB7IChw KS0+bmV4dF90YXNrLT5wcmV2X3Rhc2sgPSAocCktPnByZXZfdGFzazsgKHApLT5wcmV2X3Rhc2st Pm5leHRfdGFzayA9IChwKS0+bmV4dF90YXNrOyBpZiAoKHApLT5wX29zcHRyKSAocCktPnBfb3Nw dHItPnBfeXNwdHIgPSAocCktPnBfeXNwdHI7IGlmICgocCktPnBfeXNwdHIpIChwKS0+cF95c3B0 ci0+cF9vc3B0ciA9IChwKS0+cF9vc3B0cjsgZWxzZSAocCktPnBfcHB0ci0+cF9jcHRyID0gKHAp LT5wX29zcHRyOyB9IHdoaWxlICgwKTsKICAgICAgICBsaXN0X2RlbCgmcC0+dGhyZWFkX2dyb3Vw KTsKICAgICAgICBkbyB7ICh7Y2xlYXJfYml0KDMxLCAoJnRhc2tsaXN0X2xvY2tfUnNtcF9lYmM5 MzU3NCkpOyBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mIiA6OjogIm1lbW9yeSIpO30pOyBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoIjs7IHNzbSBwc3IuaTs7IHNybHouZCIgOjo6ICJtZW1vcnkiKTsg fSB3aGlsZSAoMCk7Cn0KCgpzdGF0aWMgaW5saW5lIHZvaWQgdGFza19sb2NrKHN0cnVjdCB0YXNr X3N0cnVjdCAqcCkKewogICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICggIm1vdiBhci5jY3Yg PSByMFxuIiAibW92IHIyOSA9IDFcbiIgIjs7XG4iICIxOlxuIiAibGQ0IHIyID0gWyUwXVxuIiAi OztcbiIgImNtcDQuZXEgcDAscDcgPSByMCxyMlxuIiAiKHA3KSBici5jb25kLnNwbnQuZmV3IDFi IFxuIiAiIiJjbXB4Y2hnNC5hY3EgcjIgPSBbJTBdLCByMjksIGFyLmNjdlxuIiAiOztcbiIgImNt cDQuZXEgcDAscDcgPSByMCwgcjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZldyAxYlxuIiAiOztc biIgOjogInIiKCYoJnAtPmFsbG9jX2xvY2spLT5sb2NrKSA6ICJyMiIsICJyMjkiLCAibWVtb3J5 Iik7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCB0YXNrX3VubG9jayhzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnApCnsKICAgICAgICBkbyB7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7 ICgoc3BpbmxvY2tfdCAqKSAmcC0+YWxsb2NfbG9jayktPmxvY2sgPSAwOyB9IHdoaWxlICgwKTsK fQoKCnN0YXRpYyBpbmxpbmUgY2hhciAqIGRfcGF0aChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0 cnVjdCB2ZnNtb3VudCAqdmZzbW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo YXIgKmJ1ZiwgaW50IGJ1ZmxlbikKewogICAgICAgIGNoYXIgKnJlczsKICAgICAgICBzdHJ1Y3Qg dmZzbW91bnQgKnJvb3RtbnQ7CiAgICAgICAgc3RydWN0IGRlbnRyeSAqcm9vdDsKICAgICAgICBk byB7IGludCB0bXAgPSAwOyBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIjE6XHQiIiIiZmV0Y2hhZGQ0 LmFjcSAlMCA9IFslMV0sIDFcbiIgIjs7XG4iICJ0Yml0Lm56IHA2LHAwID0gJTAsIDMxXG4iICIo cDYpIGJyLmNvbmQuc3B0ay5mZXcgMmZcbiIgIi5zZWN0aW9uIC50ZXh0LmxvY2ssXCJheFwiXG4i ICIyOlx0IiIiImZldGNoYWRkNC5yZWwgJTAgPSBbJTFdLCAtMVxuIiAiOztcbiIgIjM6XHRsZDQu YWNxICUwID0gWyUxXVxuIiAiOztcbiIgInRiaXQubnogcDYscDAgPSAlMCwgMzFcbiIgIihwNikg YnIuY29uZC5zcHRrLmZldyAzYlxuIiAiYnIuY29uZC5zcHRrLmZldyAxYlxuIiAiOztcbiIgIi5w cmV2aW91c1xuIiA6ICI9JnIiICh0bXApIDogInIiICgmY3VycmVudC0+ZnMtPmxvY2spOiAibWVt b3J5Iik7IH0gd2hpbGUoMCk7CiAgICAgICAgcm9vdG1udCA9IG1udGdldChjdXJyZW50LT5mcy0+ cm9vdG1udCk7CiAgICAgICAgcm9vdCA9IGRnZXQoY3VycmVudC0+ZnMtPnJvb3QpOwogICAgICAg IGRvIHsgaW50IHRtcCA9IDA7IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVs ICUwID0gWyUxXSwgLTFcbiIgOiAiPXIiICh0bXApIDogInIiICgmY3VycmVudC0+ZnMtPmxvY2sp IDogIm1lbW9yeSIpOyB9IHdoaWxlKDApOwogICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgg Im1vdiBhci5jY3YgPSByMFxuIiAibW92IHIyOSA9IDFcbiIgIjs7XG4iICIxOlxuIiAibGQ0IHIy ID0gWyUwXVxuIiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCxyMlxuIiAiKHA3KSBici5jb25k LnNwbnQuZmV3IDFiIFxuIiAiIiJjbXB4Y2hnNC5hY3EgcjIgPSBbJTBdLCByMjksIGFyLmNjdlxu IiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCwgcjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZl dyAxYlxuIiAiOztcbiIgOjogInIiKCYoJmRjYWNoZV9sb2NrX1JzbXBfZjdjMzJjYTEpLT5sb2Nr KSA6ICJyMiIsICJyMjkiLCAibWVtb3J5Iik7CiAgICAgICAgcmVzID0gX19kX3BhdGhfUnNtcF9h ZjFkN2JmZihkZW50cnksIHZmc21udCwgcm9vdCwgcm9vdG1udCwgYnVmLCBidWZsZW4pOwogICAg ICAgIGRvIHsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKChzcGlubG9j a190ICopICZkY2FjaGVfbG9ja19Sc21wX2Y3YzMyY2ExKS0+bG9jayA9IDA7IH0gd2hpbGUgKDAp OwogICAgICAgIGRwdXRfUnNtcF81NzRlNmJhMyhyb290KTsKICAgICAgICBtbnRwdXQocm9vdG1u dCk7CiAgICAgICAgcmV0dXJuIHJlczsKfQojIDYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1 ZGUvbGludXgvYmxrZGV2LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L2dlbmhkLmgiIDEKCiNkZWZpbmUgX0xJTlVYX0dFTkhEX0gKIyAxMiAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9saW51eC9nZW5oZC5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk L2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9saW51eC9nZW5oZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s aW51eC90eXBlcy5oIiAxCiMgMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv Z2VuaGQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbWFqb3Iu aCIgMQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2dlbmhkLmgiIDIK CgoKCgoKCiNkZWZpbmUgRE9TX0VYVEVOREVEX1BBUlRJVElPTiA1CiNkZWZpbmUgTElOVVhfRVhU RU5ERURfUEFSVElUSU9OIDB4ODUKI2RlZmluZSBXSU45OF9FWFRFTkRFRF9QQVJUSVRJT04gMHgw ZgoKI2RlZmluZSBMSU5VWF9TV0FQX1BBUlRJVElPTiAweDgyCiNkZWZpbmUgTElOVVhfUkFJRF9Q QVJUSVRJT04gMHhmZAoKCgoKCiNkZWZpbmUgRE02X1BBUlRJVElPTiAweDU0CiNkZWZpbmUgRVpE X1BBUlRJVElPTiAweDU1CiNkZWZpbmUgRE02X0FVWDFQQVJUSVRJT04gMHg1MQojZGVmaW5lIERN Nl9BVVgzUEFSVElUSU9OIDB4NTMKCnN0cnVjdCBwYXJ0aXRpb24gewogICAgICAgIHVuc2lnbmVk IGNoYXIgYm9vdF9pbmQ7CiAgICAgICAgdW5zaWduZWQgY2hhciBoZWFkOwogICAgICAgIHVuc2ln bmVkIGNoYXIgc2VjdG9yOwogICAgICAgIHVuc2lnbmVkIGNoYXIgY3lsOwogICAgICAgIHVuc2ln bmVkIGNoYXIgc3lzX2luZDsKICAgICAgICB1bnNpZ25lZCBjaGFyIGVuZF9oZWFkOwogICAgICAg IHVuc2lnbmVkIGNoYXIgZW5kX3NlY3RvcjsKICAgICAgICB1bnNpZ25lZCBjaGFyIGVuZF9jeWw7 CiAgICAgICAgdW5zaWduZWQgaW50IHN0YXJ0X3NlY3Q7CiAgICAgICAgdW5zaWduZWQgaW50IG5y X3NlY3RzOwp9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwoKCiMgMSAiL3Vzci9sb2NhbC9zcmMv YnVpbGQvaW5jbHVkZS9saW51eC9kZXZmc19mc19rZXJuZWwuaCIgMQoKI2RlZmluZSBfTElOVVhf REVWRlNfRlNfS0VSTkVMX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9mcy5oIiAxCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9kZXZmc19m c19rZXJuZWwuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29u ZmlnLmgiIDEKIyA2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2RldmZzX2Zz X2tlcm5lbC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9sb2Nr cy5oIiAxCgojZGVmaW5lIF9MSU5VWF9MT0NLU19ICgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2xpbnV4L21tLmgiIDEKCiNkZWZpbmUgX0xJTlVYX01NX0gKCiMgMSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAxCiMgNSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tbS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9lcnJuby5oIiAxCiMgNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk ZS9saW51eC9tbS5oIiAyCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51 eC9jb25maWcuaCIgMQojIDEwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21t LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIiAx CiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW0uaCIgMgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMgMTIgIi91c3IvbG9j YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW0uaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbW16b25lLmgiIDEKCiNkZWZpbmUgX0xJTlVYX01NWk9ORV9ICgoK CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA4 ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21tem9uZS5oIiAyCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAxCiMgOSAiL3Vzci9s b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgojIDEgIi91c3IvbG9jYWwv c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvbW16b25lLmgiIDIKCgoKCgojZGVmaW5lIE1BWF9PUkRFUiAxMAoK dHlwZWRlZiBzdHJ1Y3QgZnJlZV9hcmVhX3N0cnVjdCB7CiAgICAgICAgc3RydWN0IGxpc3RfaGVh ZCBmcmVlX2xpc3Q7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqbWFwOwp9IGZyZWVfYXJlYV90OwoK c3RydWN0IHBnbGlzdF9kYXRhOwojIDMyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp bnV4L21tem9uZS5oIgp0eXBlZGVmIHN0cnVjdCB6b25lX3N0cnVjdCB7CgoKCiAgICAgICAgc3Bp bmxvY2tfdCBsb2NrOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZnJlZV9wYWdlc19Sc21wX2I1MTM2 NTA2OwogICAgICAgIHVuc2lnbmVkIGxvbmcgaW5hY3RpdmVfY2xlYW5fcGFnZXM7CiAgICAgICAg dW5zaWduZWQgbG9uZyBpbmFjdGl2ZV9kaXJ0eV9wYWdlczsKICAgICAgICB1bnNpZ25lZCBsb25n IHBhZ2VzX21pbiwgcGFnZXNfbG93LCBwYWdlc19oaWdoOwoKCgoKICAgICAgICBzdHJ1Y3QgbGlz dF9oZWFkIGluYWN0aXZlX2NsZWFuX2xpc3Q7CiAgICAgICAgZnJlZV9hcmVhX3QgZnJlZV9hcmVh WzEwXTsKCgoKCiAgICAgICAgc3RydWN0IHBnbGlzdF9kYXRhICp6b25lX3BnZGF0OwogICAgICAg IHN0cnVjdCBwYWdlICp6b25lX21lbV9tYXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyB6b25lX3N0 YXJ0X3BhZGRyOwogICAgICAgIHVuc2lnbmVkIGxvbmcgem9uZV9zdGFydF9tYXBucjsKCgoKCiAg ICAgICAgY2hhciAqbmFtZTsKICAgICAgICB1bnNpZ25lZCBsb25nIHNpemU7Cn0gem9uZV90OwoK I2RlZmluZSBaT05FX0RNQSAwCiNkZWZpbmUgWk9ORV9OT1JNQUwgMQojZGVmaW5lIFpPTkVfSElH SE1FTSAyCiNkZWZpbmUgTUFYX05SX1pPTkVTIDMKIyA3OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv aW5jbHVkZS9saW51eC9tbXpvbmUuaCIKdHlwZWRlZiBzdHJ1Y3Qgem9uZWxpc3Rfc3RydWN0IHsK ICAgICAgICB6b25lX3QgKiB6b25lcyBbMyArMV07Cn0gem9uZWxpc3RfdDsKCiNkZWZpbmUgR0ZQ X1pPTkVNQVNLIDB4MGYKIyA5NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t bXpvbmUuaCIKc3RydWN0IGJvb3RtZW1fZGF0YTsKdHlwZWRlZiBzdHJ1Y3QgcGdsaXN0X2RhdGEg ewogICAgICAgIHpvbmVfdCBub2RlX3pvbmVzWzNdOwogICAgICAgIHpvbmVsaXN0X3Qgbm9kZV96 b25lbGlzdHNbMHgwZiArMV07CiAgICAgICAgc3RydWN0IHBhZ2UgKm5vZGVfbWVtX21hcDsKICAg ICAgICB1bnNpZ25lZCBsb25nICp2YWxpZF9hZGRyX2JpdG1hcDsKICAgICAgICBzdHJ1Y3QgYm9v dG1lbV9kYXRhICpiZGF0YTsKICAgICAgICB1bnNpZ25lZCBsb25nIG5vZGVfc3RhcnRfcGFkZHI7 CiAgICAgICAgdW5zaWduZWQgbG9uZyBub2RlX3N0YXJ0X21hcG5yOwogICAgICAgIHVuc2lnbmVk IGxvbmcgbm9kZV9zaXplOwogICAgICAgIGludCBub2RlX2lkOwogICAgICAgIHN0cnVjdCBwZ2xp c3RfZGF0YSAqbm9kZV9uZXh0Owp9IHBnX2RhdGFfdDsKCmV4dGVybiBpbnQgbnVtbm9kZXM7CmV4 dGVybiBwZ19kYXRhX3QgKnBnZGF0X2xpc3Q7CgojZGVmaW5lIG1lbWNsYXNzKHBnem9uZSwgdHpv bmUpICgoKHBnem9uZSktPnpvbmVfcGdkYXQgPT0gKHR6b25lKS0+em9uZV9wZ2RhdCkgJiYgKChw Z3pvbmUpIDw9ICh0em9uZSkpKQoKCgoKCgpzdHJ1Y3QgcGFnZTsKZXh0ZXJuIHZvaWQgc2hvd19m cmVlX2FyZWFzX2NvcmUocGdfZGF0YV90ICpwZ2RhdCk7CmV4dGVybiB2b2lkIGZyZWVfYXJlYV9p bml0X2NvcmUoaW50IG5pZCwgcGdfZGF0YV90ICpwZ2RhdCwgc3RydWN0IHBhZ2UgKipnbWFwLAog IHVuc2lnbmVkIGxvbmcgKnpvbmVzX3NpemUsIHVuc2lnbmVkIGxvbmcgcGFkZHIsIHVuc2lnbmVk IGxvbmcgKnpob2xlc19zaXplLAogIHN0cnVjdCBwYWdlICpwbWFwKTsKCmV4dGVybiBwZ19kYXRh X3QgY29udGlnX3BhZ2VfZGF0YTsKCgoKI2RlZmluZSBOT0RFX0RBVEEobmlkKSAoJmNvbnRpZ19w YWdlX2RhdGEpCiNkZWZpbmUgTk9ERV9NRU1fTUFQKG5pZCkgbWVtX21hcAoKCgoKCgoKI2RlZmlu ZSBNQVBfQUxJR04oeCkgKCgoKHgpICUgc2l6ZW9mKG1lbV9tYXBfdCkpID09IDApID8gKHgpIDog KCh4KSArIHNpemVvZihtZW1fbWFwX3QpIC0gKCh4KSAlIHNpemVvZihtZW1fbWFwX3QpKSkpCiMg MTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW0uaCIgMgojIDEgIi91c3Iv bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc3dhcC5oIiAxCgojZGVmaW5lIF9MSU5VWF9T V0FQX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5o IiAxCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zd2FwLmgiIDIKIyAx ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiIDEKIyA2ICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N3YXAuaCIgMgoKI2RlZmluZSBTV0FQX0ZMQUdf UFJFRkVSIDB4ODAwMAojZGVmaW5lIFNXQVBfRkxBR19QUklPX01BU0sgMHg3ZmZmCiNkZWZpbmUg U1dBUF9GTEFHX1BSSU9fU0hJRlQgMAoKI2RlZmluZSBNQVhfU1dBUEZJTEVTIDgKIyAyNSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zd2FwLmgiCnVuaW9uIHN3YXBfaGVhZGVy IHsKICAgICAgICBzdHJ1Y3QKICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGFyIHJlc2VydmVk WygxVUwgPDwgMTQpIC0gMTBdOwogICAgICAgICAgICAgICAgY2hhciBtYWdpY1sxMF07CiAgICAg ICAgfSBtYWdpYzsKICAgICAgICBzdHJ1Y3QKICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGFy IGJvb3RiaXRzWzEwMjRdOwogICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHZlcnNpb247CiAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbGFzdF9wYWdlOwogICAgICAgICAgICAgICAgdW5z aWduZWQgaW50IG5yX2JhZHBhZ2VzOwogICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZGRp bmdbMTI1XTsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBiYWRwYWdlc1sxXTsKICAgICAg ICB9IGluZm87Cn07CgoKCgoKCiNkZWZpbmUgX19zd2Fwb2Zmc2V0KHgpICgodW5zaWduZWQgbG9u ZykmKCh1bmlvbiBzd2FwX2hlYWRlciAqKTApLT54KQojZGVmaW5lIE1BWF9TV0FQX0JBRFBBR0VT ICgoX19zd2Fwb2Zmc2V0KG1hZ2ljLm1hZ2ljKSAtIF9fc3dhcG9mZnNldChpbmZvLmJhZHBhZ2Vz KSkgLyBzaXplb2YoaW50KSkKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt L2F0b21pYy5oIiAxCiMgNTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc3dh cC5oIiAyCgojZGVmaW5lIFNXUF9VU0VEIDEKI2RlZmluZSBTV1BfV1JJVEVPSyAzCgojZGVmaW5l IFNXQVBfQ0xVU1RFUl9NQVggMzIKCiNkZWZpbmUgU1dBUF9NQVBfTUFYIDB4N2ZmZgojZGVmaW5l IFNXQVBfTUFQX0JBRCAweDgwMDAKCgoKCnN0cnVjdCBzd2FwX2luZm9fc3RydWN0IHsKICAgICAg ICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAgICAgICAga2Rldl90IHN3YXBfZGV2aWNlOwogICAgICAg IHNwaW5sb2NrX3Qgc2Rldl9sb2NrOwogICAgICAgIHN0cnVjdCBkZW50cnkgKiBzd2FwX2ZpbGU7 CiAgICAgICAgc3RydWN0IHZmc21vdW50ICpzd2FwX3Zmc21udDsKICAgICAgICB1bnNpZ25lZCBz aG9ydCAqIHN3YXBfbWFwOwogICAgICAgIHVuc2lnbmVkIGludCBsb3dlc3RfYml0OwogICAgICAg IHVuc2lnbmVkIGludCBoaWdoZXN0X2JpdDsKICAgICAgICB1bnNpZ25lZCBpbnQgY2x1c3Rlcl9u ZXh0OwogICAgICAgIHVuc2lnbmVkIGludCBjbHVzdGVyX25yOwogICAgICAgIGludCBwcmlvOwog ICAgICAgIGludCBwYWdlczsKICAgICAgICB1bnNpZ25lZCBsb25nIG1heDsKICAgICAgICBpbnQg bmV4dDsKfTsKCmV4dGVybiBpbnQgbnJfc3dhcF9wYWdlczsKZXh0ZXJuIHVuc2lnbmVkIGludCBu cl9mcmVlX3BhZ2VzKHZvaWQpOwpleHRlcm4gdW5zaWduZWQgaW50IG5yX2luYWN0aXZlX2NsZWFu X3BhZ2VzKHZvaWQpOwpleHRlcm4gdW5zaWduZWQgaW50IG5yX2ZyZWVfYnVmZmVyX3BhZ2VzKHZv aWQpOwpleHRlcm4gaW50IG5yX2FjdGl2ZV9wYWdlczsKZXh0ZXJuIGludCBucl9pbmFjdGl2ZV9k aXJ0eV9wYWdlczsKZXh0ZXJuIGF0b21pY190IG5yX2FzeW5jX3BhZ2VzX1JzbXBfYWIzN2FjNTg7 CmV4dGVybiBzdHJ1Y3QgYWRkcmVzc19zcGFjZSBzd2FwcGVyX3NwYWNlOwpleHRlcm4gYXRvbWlj X3QgcGFnZV9jYWNoZV9zaXplOwpleHRlcm4gYXRvbWljX3QgYnVmZmVybWVtX3BhZ2VzOwpleHRl cm4gc3BpbmxvY2tfdCBwYWdlY2FjaGVfbG9jazsKZXh0ZXJuIHZvaWQgX19yZW1vdmVfaW5vZGVf cGFnZShzdHJ1Y3QgcGFnZSAqKTsKCgpzdHJ1Y3QgdGFza19zdHJ1Y3Q7CnN0cnVjdCB2bV9hcmVh X3N0cnVjdDsKc3RydWN0IHN5c2luZm87CgpzdHJ1Y3Qgem9uZV90OwoKCmV4dGVybiBpbnQgbWVt b3J5X3ByZXNzdXJlOwpleHRlcm4gdm9pZCBhZ2VfcGFnZV91cChzdHJ1Y3QgcGFnZSAqKTsKZXh0 ZXJuIHZvaWQgYWdlX3BhZ2VfdXBfbm9sb2NrKHN0cnVjdCBwYWdlICopOwpleHRlcm4gdm9pZCBh Z2VfcGFnZV9kb3duKHN0cnVjdCBwYWdlICopOwpleHRlcm4gdm9pZCBhZ2VfcGFnZV9kb3duX25v bG9jayhzdHJ1Y3QgcGFnZSAqKTsKZXh0ZXJuIHZvaWQgYWdlX3BhZ2VfZG93bl9hZ2Vvbmx5KHN0 cnVjdCBwYWdlICopOwpleHRlcm4gdm9pZCBkZWFjdGl2YXRlX3BhZ2VfUnNtcF9mMjY0ODI0OChz dHJ1Y3QgcGFnZSAqKTsKZXh0ZXJuIHZvaWQgZGVhY3RpdmF0ZV9wYWdlX25vbG9jayhzdHJ1Y3Qg cGFnZSAqKTsKZXh0ZXJuIHZvaWQgYWN0aXZhdGVfcGFnZShzdHJ1Y3QgcGFnZSAqKTsKZXh0ZXJu IHZvaWQgYWN0aXZhdGVfcGFnZV9ub2xvY2soc3RydWN0IHBhZ2UgKik7CmV4dGVybiB2b2lkIGxy dV9jYWNoZV9hZGQoc3RydWN0IHBhZ2UgKik7CmV4dGVybiB2b2lkIF9fbHJ1X2NhY2hlX2RlbChz dHJ1Y3QgcGFnZSAqKTsKZXh0ZXJuIHZvaWQgbHJ1X2NhY2hlX2RlbChzdHJ1Y3QgcGFnZSAqKTsK ZXh0ZXJuIHZvaWQgcmVjYWxjdWxhdGVfdm1fc3RhdHModm9pZCk7CmV4dGVybiB2b2lkIHN3YXBf c2V0dXAodm9pZCk7CgoKZXh0ZXJuIHN0cnVjdCBwYWdlICogcmVjbGFpbV9wYWdlKHpvbmVfdCAq KTsKZXh0ZXJuIHdhaXRfcXVldWVfaGVhZF90IGtzd2FwZF93YWl0OwpleHRlcm4gd2FpdF9xdWV1 ZV9oZWFkX3Qga3JlY2xhaW1kX3dhaXQ7CmV4dGVybiBpbnQgcGFnZV9sYXVuZGVyKGludCwgaW50 KTsKZXh0ZXJuIGludCBmcmVlX3Nob3J0YWdlKHZvaWQpOwpleHRlcm4gaW50IGluYWN0aXZlX3No b3J0YWdlKHZvaWQpOwpleHRlcm4gdm9pZCB3YWtldXBfa3N3YXBkKHZvaWQpOwpleHRlcm4gaW50 IHRyeV90b19mcmVlX3BhZ2VzKHVuc2lnbmVkIGludCBnZnBfbWFzayk7CgoKZXh0ZXJuIHZvaWQg cndfc3dhcF9wYWdlKGludCwgc3RydWN0IHBhZ2UgKik7CmV4dGVybiB2b2lkIHJ3X3N3YXBfcGFn ZV9ub2xvY2soaW50LCBzd3BfZW50cnlfdCwgY2hhciAqKTsKCgoKCmV4dGVybiB2b2lkIHNob3df c3dhcF9jYWNoZV9pbmZvKHZvaWQpOwpleHRlcm4gdm9pZCBhZGRfdG9fc3dhcF9jYWNoZShzdHJ1 Y3QgcGFnZSAqLCBzd3BfZW50cnlfdCk7CmV4dGVybiBpbnQgc3dhcF9jaGVja19lbnRyeSh1bnNp Z25lZCBsb25nKTsKZXh0ZXJuIHN0cnVjdCBwYWdlICogbG9va3VwX3N3YXBfY2FjaGUoc3dwX2Vu dHJ5X3QpOwpleHRlcm4gc3RydWN0IHBhZ2UgKiByZWFkX3N3YXBfY2FjaGVfYXN5bmMoc3dwX2Vu dHJ5X3QpOwoKCmV4dGVybiBpbnQgb3V0X29mX21lbW9yeSh2b2lkKTsKZXh0ZXJuIHZvaWQgb29t X2tpbGwodm9pZCk7CgoKCgpleHRlcm4gdm9pZCBfX2RlbGV0ZV9mcm9tX3N3YXBfY2FjaGUoc3Ry dWN0IHBhZ2UgKnBhZ2UpOwpleHRlcm4gdm9pZCBkZWxldGVfZnJvbV9zd2FwX2NhY2hlKHN0cnVj dCBwYWdlICpwYWdlKTsKZXh0ZXJuIHZvaWQgZGVsZXRlX2Zyb21fc3dhcF9jYWNoZV9ub2xvY2so c3RydWN0IHBhZ2UgKnBhZ2UpOwpleHRlcm4gdm9pZCBmcmVlX3BhZ2VfYW5kX3N3YXBfY2FjaGUo c3RydWN0IHBhZ2UgKnBhZ2UpOwoKCmV4dGVybiB1bnNpZ25lZCBpbnQgbnJfc3dhcGZpbGVzOwpl eHRlcm4gc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3Qgc3dhcF9pbmZvW107CmV4dGVybiBpbnQgaXNf c3dhcF9wYXJ0aXRpb24oa2Rldl90KTsKZXh0ZXJuIHZvaWQgc2lfc3dhcGluZm8oc3RydWN0IHN5 c2luZm8gKik7CmV4dGVybiBzd3BfZW50cnlfdCBfX2dldF9zd2FwX3BhZ2UodW5zaWduZWQgc2hv cnQpOwpleHRlcm4gdm9pZCBnZXRfc3dhcGhhbmRsZV9pbmZvKHN3cF9lbnRyeV90LCB1bnNpZ25l ZCBsb25nICosIGtkZXZfdCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGlub2RlICoqKTsKZXh0ZXJuIGludCBzd2FwX2R1cGxpY2F0ZShzd3BfZW50cnlf dCk7CmV4dGVybiBpbnQgc3dhcF9jb3VudChzdHJ1Y3QgcGFnZSAqKTsKZXh0ZXJuIGludCB2YWxp ZF9zd2FwaGFuZGxlcyhzd3BfZW50cnlfdCwgdW5zaWduZWQgbG9uZyAqKTsKI2RlZmluZSBnZXRf c3dhcF9wYWdlKCkgX19nZXRfc3dhcF9wYWdlKDEpCmV4dGVybiB2b2lkIF9fc3dhcF9mcmVlKHN3 cF9lbnRyeV90LCB1bnNpZ25lZCBzaG9ydCk7CiNkZWZpbmUgc3dhcF9mcmVlKGVudHJ5KSBfX3N3 YXBfZnJlZSgoZW50cnkpLCAxKQpzdHJ1Y3Qgc3dhcF9saXN0X3QgewogICAgICAgIGludCBoZWFk OwogICAgICAgIGludCBuZXh0Owp9OwpleHRlcm4gc3RydWN0IHN3YXBfbGlzdF90IHN3YXBfbGlz dDsKIF9fYXR0cmlidXRlX18oKHN5c2NhbGxfbGlua2FnZSkpIGxvbmcgc3lzX3N3YXBvZmYoY29u c3QgY2hhciAqKTsKIF9fYXR0cmlidXRlX18oKHN5c2NhbGxfbGlua2FnZSkpIGxvbmcgc3lzX3N3 YXBvbihjb25zdCBjaGFyICosIGludCk7CgojZGVmaW5lIFNXQVBfQ0FDSEVfSU5GTwoKCmV4dGVy biB1bnNpZ25lZCBsb25nIHN3YXBfY2FjaGVfYWRkX3RvdGFsOwpleHRlcm4gdW5zaWduZWQgbG9u ZyBzd2FwX2NhY2hlX2RlbF90b3RhbDsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc3dhcF9jYWNoZV9m aW5kX3RvdGFsOwpleHRlcm4gdW5zaWduZWQgbG9uZyBzd2FwX2NhY2hlX2ZpbmRfc3VjY2VzczsK CgpleHRlcm4gc3BpbmxvY2tfdCBwYWdlbWFwX2xydV9sb2NrOwoKCgoKCgojZGVmaW5lIFBBR0Vf QUdFX1NUQVJUIDIKI2RlZmluZSBQQUdFX0FHRV9BRFYgMwojZGVmaW5lIFBBR0VfQUdFX01BWCA2 NAoKCgoKCiNkZWZpbmUgREVCVUdfQUREX1BBR0UgaWYgKFBhZ2VBY3RpdmUocGFnZSkgfHwgUGFn ZUluYWN0aXZlRGlydHkocGFnZSkgfHwgUGFnZUluYWN0aXZlQ2xlYW4ocGFnZSkpIEJVRygpOwoK CgojZGVmaW5lIFpFUk9fUEFHRV9CVUcgaWYgKHBhZ2VfY291bnQocGFnZSkgPT0gMCkgQlVHKCk7 CgoKI2RlZmluZSBhZGRfcGFnZV90b19hY3RpdmVfbGlzdChwYWdlKSB7IERFQlVHX0FERF9QQUdF IFpFUk9fUEFHRV9CVUcgU2V0UGFnZUFjdGl2ZShwYWdlKTsgbGlzdF9hZGQoJihwYWdlKS0+bHJ1 LCAmYWN0aXZlX2xpc3QpOyBucl9hY3RpdmVfcGFnZXMrKzsgfQoKCgoKCgoKI2RlZmluZSBhZGRf cGFnZV90b19pbmFjdGl2ZV9kaXJ0eV9saXN0KHBhZ2UpIHsgREVCVUdfQUREX1BBR0UgWkVST19Q QUdFX0JVRyBTZXRQYWdlSW5hY3RpdmVEaXJ0eShwYWdlKTsgbGlzdF9hZGQoJihwYWdlKS0+bHJ1 LCAmaW5hY3RpdmVfZGlydHlfbGlzdCk7IG5yX2luYWN0aXZlX2RpcnR5X3BhZ2VzKys7IHBhZ2Ut PnpvbmUtPmluYWN0aXZlX2RpcnR5X3BhZ2VzKys7IH0KIyAyMjMgIi91c3IvbG9jYWwvc3JjL2J1 aWxkL2luY2x1ZGUvbGludXgvc3dhcC5oIgojZGVmaW5lIGFkZF9wYWdlX3RvX2luYWN0aXZlX2Ns ZWFuX2xpc3QocGFnZSkgeyBERUJVR19BRERfUEFHRSBaRVJPX1BBR0VfQlVHIFNldFBhZ2VJbmFj dGl2ZUNsZWFuKHBhZ2UpOyBsaXN0X2FkZCgmKHBhZ2UpLT5scnUsICZwYWdlLT56b25lLT5pbmFj dGl2ZV9jbGVhbl9saXN0KTsgcGFnZS0+em9uZS0+aW5hY3RpdmVfY2xlYW5fcGFnZXMrKzsgfQoK CgoKCgoKI2RlZmluZSBkZWxfcGFnZV9mcm9tX2FjdGl2ZV9saXN0KHBhZ2UpIHsgbGlzdF9kZWwo JihwYWdlKS0+bHJ1KTsgQ2xlYXJQYWdlQWN0aXZlKHBhZ2UpOyBucl9hY3RpdmVfcGFnZXMtLTsg REVCVUdfQUREX1BBR0UgWkVST19QQUdFX0JVRyB9CgoKCgoKCgojZGVmaW5lIGRlbF9wYWdlX2Zy b21faW5hY3RpdmVfZGlydHlfbGlzdChwYWdlKSB7IGxpc3RfZGVsKCYocGFnZSktPmxydSk7IENs ZWFyUGFnZUluYWN0aXZlRGlydHkocGFnZSk7IG5yX2luYWN0aXZlX2RpcnR5X3BhZ2VzLS07IHBh Z2UtPnpvbmUtPmluYWN0aXZlX2RpcnR5X3BhZ2VzLS07IERFQlVHX0FERF9QQUdFIFpFUk9fUEFH RV9CVUcgfQojIDI0OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zd2FwLmgi CiNkZWZpbmUgZGVsX3BhZ2VfZnJvbV9pbmFjdGl2ZV9jbGVhbl9saXN0KHBhZ2UpIHsgbGlzdF9k ZWwoJihwYWdlKS0+bHJ1KTsgQ2xlYXJQYWdlSW5hY3RpdmVDbGVhbihwYWdlKTsgcGFnZS0+em9u ZS0+aW5hY3RpdmVfY2xlYW5fcGFnZXMtLTsgREVCVUdfQUREX1BBR0UgWkVST19QQUdFX0JVRyB9 CiMgMjYyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N3YXAuaCIKI2RlZmlu ZSBJTkFDVElWRV9TSElGVCA2CiNkZWZpbmUgaW5hY3RpdmVfbWluKGEsIGIpICgoYSkgPCAoYikg PyAoYSkgOiAoYikpCiNkZWZpbmUgaW5hY3RpdmVfdGFyZ2V0IGluYWN0aXZlX21pbigobWVtb3J5 X3ByZXNzdXJlID4+IElOQUNUSVZFX1NISUZUKSwgKG51bV9waHlzcGFnZXMgLyA0KSkKIyAyODEg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc3dhcC5oIgojZGVmaW5lIHBhZ2Vf cmFtZGlzayhwYWdlKSAocGFnZS0+YnVmZmVycyAmJiAoTUFKT1IocGFnZS0+YnVmZmVycy0+Yl9k ZXYpID09IFJBTURJU0tfTUFKT1IpKQoKCmV4dGVybiBzcGlubG9ja190IHN3YXBsb2NrOwoKI2Rl ZmluZSBzd2FwX2xpc3RfbG9jaygpIHNwaW5fbG9jaygmc3dhcGxvY2spCiNkZWZpbmUgc3dhcF9s aXN0X3VubG9jaygpIHNwaW5fdW5sb2NrKCZzd2FwbG9jaykKI2RlZmluZSBzd2FwX2RldmljZV9s b2NrKHApIHNwaW5fbG9jaygmcC0+c2Rldl9sb2NrKQojZGVmaW5lIHN3YXBfZGV2aWNlX3VubG9j ayhwKSBzcGluX3VubG9jaygmcC0+c2Rldl9sb2NrKQoKZXh0ZXJuIHZvaWQgc2htZW1fdW51c2Uo c3dwX2VudHJ5X3QgZW50cnksIHN0cnVjdCBwYWdlICpwYWdlKTsKIyAxNCAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tbS5oIiAyCgpleHRlcm4gdW5zaWduZWQgbG9uZyBtYXhf bWFwbnJfUnNtcF8wMTEzOWZmYzsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbnVtX3BoeXNwYWdlc19S c21wXzA5NDhjZGU5OwpleHRlcm4gdm9pZCAqIGhpZ2hfbWVtb3J5X1JzbXBfOGE3ZDFjMzE7CmV4 dGVybiBpbnQgcGFnZV9jbHVzdGVyOwoKZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgYWN0aXZlX2xp c3Q7CmV4dGVybiBzdHJ1Y3QgbGlzdF9oZWFkIGluYWN0aXZlX2RpcnR5X2xpc3Q7CgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2UuaCIgMQojIDI0ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21tLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1BHVEFCTEVfSAoj IDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiCiMgMSAiL3Vz ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDE2ICIvdXNyL2xv Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9z cmMvYnVpbGQvaW5jbHVkZS9hc20vbW1hbi5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9NTUFOX0gK CgoKCgoKI2RlZmluZSBQUk9UX1JFQUQgMHgxCiNkZWZpbmUgUFJPVF9XUklURSAweDIKI2RlZmlu ZSBQUk9UX0VYRUMgMHg0CiNkZWZpbmUgUFJPVF9OT05FIDB4MAoKI2RlZmluZSBNQVBfU0hBUkVE IDB4MDEKI2RlZmluZSBNQVBfUFJJVkFURSAweDAyCiNkZWZpbmUgTUFQX1RZUEUgMHgwZgojZGVm aW5lIE1BUF9GSVhFRCAweDEwCiNkZWZpbmUgTUFQX0FOT05ZTU9VUyAweDIwCgojZGVmaW5lIE1B UF9HUk9XU0RPV04gMHgwMTAwCiNkZWZpbmUgTUFQX0dST1dTVVAgMHgwMjAwCiNkZWZpbmUgTUFQ X0RFTllXUklURSAweDA4MDAKI2RlZmluZSBNQVBfRVhFQ1VUQUJMRSAweDEwMDAKI2RlZmluZSBN QVBfTE9DS0VEIDB4MjAwMAojZGVmaW5lIE1BUF9OT1JFU0VSVkUgMHg0MDAwCiNkZWZpbmUgTUFQ X1dSSVRFQ09NQklORUQgMHgxMDAwMAojZGVmaW5lIE1BUF9OT05DQUNIRUQgMHgyMDAwMAoKI2Rl ZmluZSBNU19BU1lOQyAxCiNkZWZpbmUgTVNfSU5WQUxJREFURSAyCiNkZWZpbmUgTVNfU1lOQyA0 CgojZGVmaW5lIE1DTF9DVVJSRU5UIDEKI2RlZmluZSBNQ0xfRlVUVVJFIDIKCiNkZWZpbmUgTUFE Vl9OT1JNQUwgMHgwCiNkZWZpbmUgTUFEVl9SQU5ET00gMHgxCiNkZWZpbmUgTUFEVl9TRVFVRU5U SUFMIDB4MgojZGVmaW5lIE1BRFZfV0lMTE5FRUQgMHgzCiNkZWZpbmUgTUFEVl9ET05UTkVFRCAw eDQKCgojZGVmaW5lIE1BUF9BTk9OIE1BUF9BTk9OWU1PVVMKI2RlZmluZSBNQVBfRklMRSAwCiMg MTggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BndGFibGUuaCIgMgojIDEgIi91 c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2UuaCIgMQojIDE5ICIvdXNyL2xvY2Fs L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i dWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMQojIDIwICIvdXNyL2xvY2FsL3NyYy9idWls ZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs dWRlL2FzbS9zeXN0ZW0uaCIgMQojIDIxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2Fz bS9wZ3RhYmxlLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90eXBl cy5oIiAxCiMgMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BndGFibGUuaCIg MgoKI2RlZmluZSBJQTY0X01BWF9QSFlTX0JJVFMgNTAKCgoKCgoKI2RlZmluZSBfUEFHRV9QX0JJ VCAwCiNkZWZpbmUgX1BBR0VfQV9CSVQgNQojZGVmaW5lIF9QQUdFX0RfQklUIDYKCiNkZWZpbmUg X1BBR0VfUCAoMSA8PCBfUEFHRV9QX0JJVCkKI2RlZmluZSBfUEFHRV9NQV9XQiAoMHgwIDw8IDIp CiNkZWZpbmUgX1BBR0VfTUFfVUMgKDB4NCA8PCAyKQojZGVmaW5lIF9QQUdFX01BX1VDRSAoMHg1 IDw8IDIpCiNkZWZpbmUgX1BBR0VfTUFfV0MgKDB4NiA8PCAyKQojZGVmaW5lIF9QQUdFX01BX05B VCAoMHg3IDw8IDIpCiNkZWZpbmUgX1BBR0VfTUFfTUFTSyAoMHg3IDw8IDIpCiNkZWZpbmUgX1BB R0VfUExfMCAoMCA8PCA3KQojZGVmaW5lIF9QQUdFX1BMXzEgKDEgPDwgNykKI2RlZmluZSBfUEFH RV9QTF8yICgyIDw8IDcpCiNkZWZpbmUgX1BBR0VfUExfMyAoMyA8PCA3KQojZGVmaW5lIF9QQUdF X1BMX01BU0sgKDMgPDwgNykKI2RlZmluZSBfUEFHRV9BUl9SICgwIDw8IDkpCiNkZWZpbmUgX1BB R0VfQVJfUlggKDEgPDwgOSkKI2RlZmluZSBfUEFHRV9BUl9SVyAoMiA8PCA5KQojZGVmaW5lIF9Q QUdFX0FSX1JXWCAoMyA8PCA5KQojZGVmaW5lIF9QQUdFX0FSX1JfUlcgKDQgPDwgOSkKI2RlZmlu ZSBfUEFHRV9BUl9SWF9SV1ggKDUgPDwgOSkKI2RlZmluZSBfUEFHRV9BUl9SV1hfUlcgKDYgPDwg OSkKI2RlZmluZSBfUEFHRV9BUl9YX1JYICg3IDw8IDkpCiNkZWZpbmUgX1BBR0VfQVJfTUFTSyAo NyA8PCA5KQojZGVmaW5lIF9QQUdFX0FSX1NISUZUIDkKI2RlZmluZSBfUEFHRV9BICgxIDw8IF9Q QUdFX0FfQklUKQojZGVmaW5lIF9QQUdFX0QgKDEgPDwgX1BBR0VfRF9CSVQpCiNkZWZpbmUgX1BB R0VfUFBOX01BU0sgKCgoX19JQTY0X1VMKDEpIDw8IElBNjRfTUFYX1BIWVNfQklUUykgLSAxKSAm IH4weGZmZlVMKQojZGVmaW5lIF9QQUdFX0VEIChfX0lBNjRfVUwoMSkgPDwgNTIpCiNkZWZpbmUg X1BBR0VfUFJPVE5PTkUgKF9fSUE2NF9VTCgxKSA8PCA2MykKCiNkZWZpbmUgX1BGTl9NQVNLIF9Q QUdFX1BQTl9NQVNLCiNkZWZpbmUgX1BBR0VfQ0hHX01BU0sgKF9QRk5fTUFTSyB8IF9QQUdFX0Eg fCBfUEFHRV9EKQoKI2RlZmluZSBfUEFHRV9TSVpFXzRLIDEyCiNkZWZpbmUgX1BBR0VfU0laRV84 SyAxMwojZGVmaW5lIF9QQUdFX1NJWkVfMTZLIDE0CiNkZWZpbmUgX1BBR0VfU0laRV82NEsgMTYK I2RlZmluZSBfUEFHRV9TSVpFXzI1NksgMTgKI2RlZmluZSBfUEFHRV9TSVpFXzFNIDIwCiNkZWZp bmUgX1BBR0VfU0laRV80TSAyMgojZGVmaW5lIF9QQUdFX1NJWkVfMTZNIDI0CiNkZWZpbmUgX1BB R0VfU0laRV82NE0gMjYKI2RlZmluZSBfUEFHRV9TSVpFXzI1Nk0gMjgKCiNkZWZpbmUgX19BQ0NF U1NfQklUUyBfUEFHRV9FRCB8IF9QQUdFX0EgfCBfUEFHRV9QIHwgX1BBR0VfTUFfV0IKI2RlZmlu ZSBfX0RJUlRZX0JJVFNfTk9fRUQgX1BBR0VfQSB8IF9QQUdFX1AgfCBfUEFHRV9EIHwgX1BBR0Vf TUFfV0IKI2RlZmluZSBfX0RJUlRZX0JJVFMgX1BBR0VfRUQgfCBfX0RJUlRZX0JJVFNfTk9fRUQK CgoKCgoKI2RlZmluZSBQR0RJUl9TSElGVCAoUEFHRV9TSElGVCArIDIqKFBBR0VfU0hJRlQtMykp CiNkZWZpbmUgUEdESVJfU0laRSAoX19JQTY0X1VMKDEpIDw8IFBHRElSX1NISUZUKQojZGVmaW5l IFBHRElSX01BU0sgKH4oUEdESVJfU0laRS0xKSkKI2RlZmluZSBQVFJTX1BFUl9QR0QgKF9fSUE2 NF9VTCgxKSA8PCAoUEFHRV9TSElGVC0zKSkKI2RlZmluZSBVU0VSX1BUUlNfUEVSX1BHRCAoNSpQ VFJTX1BFUl9QR0QvOCkKI2RlZmluZSBGSVJTVF9VU0VSX1BHRF9OUiAwCgoKCgoKCgojZGVmaW5l IFBNRF9TSElGVCAoUEFHRV9TSElGVCArIChQQUdFX1NISUZULTMpKQojZGVmaW5lIFBNRF9TSVpF IChfX0lBNjRfVUwoMSkgPDwgUE1EX1NISUZUKQojZGVmaW5lIFBNRF9NQVNLICh+KFBNRF9TSVpF LTEpKQojZGVmaW5lIFBUUlNfUEVSX1BNRCAoX19JQTY0X1VMKDEpIDw8IChQQUdFX1NISUZULTMp KQoKCgoKI2RlZmluZSBQVFJTX1BFUl9QVEUgKF9fSUE2NF9VTCgxKSA8PCAoUEFHRV9TSElGVC0z KSkKIyAxMTggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BndGFibGUuaCIKI2Rl ZmluZSBQQUdFX05PTkUgX19wZ3Byb3QoX1BBR0VfUFJPVE5PTkUgfCBfUEFHRV9BKQojZGVmaW5l IFBBR0VfU0hBUkVEIF9fcGdwcm90KF9fQUNDRVNTX0JJVFMgfCBfUEFHRV9QTF8zIHwgX1BBR0Vf QVJfUlcpCiNkZWZpbmUgUEFHRV9SRUFET05MWSBfX3BncHJvdChfX0FDQ0VTU19CSVRTIHwgX1BB R0VfUExfMyB8IF9QQUdFX0FSX1IpCiNkZWZpbmUgUEFHRV9DT1BZIF9fcGdwcm90KF9fQUNDRVNT X0JJVFMgfCBfUEFHRV9QTF8zIHwgX1BBR0VfQVJfUikKI2RlZmluZSBQQUdFX0dBVEUgX19wZ3By b3QoX19BQ0NFU1NfQklUUyB8IF9QQUdFX1BMXzAgfCBfUEFHRV9BUl9YX1JYKQojZGVmaW5lIFBB R0VfS0VSTkVMIF9fcGdwcm90KF9fRElSVFlfQklUUyB8IF9QQUdFX1BMXzAgfCBfUEFHRV9BUl9S V1gpCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYml0b3BzLmgiIDEK IyAxMjggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BndGFibGUuaCIgMgojIDEg Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL21tdV9jb250ZXh0LmgiIDEKCiNkZWZp bmUgX0FTTV9JQTY0X01NVV9DT05URVhUX0gKIyAyMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j bHVkZS9hc20vbW11X2NvbnRleHQuaCIKI2RlZmluZSBJQTY0X1JFR0lPTl9JRF9LRVJORUwgMAoK I2RlZmluZSBpYTY0X3JpZChjdHgsIGFkZHIpICgoKGN0eCkgPDwgMykgfCAoYWRkciA+PiA2MSkp CgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAxCiMg MjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL21tdV9jb250ZXh0LmgiIDIKIyAx ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiIDEKIyAyOCAi L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vbW11X2NvbnRleHQuaCIgMgoKIyAxICIv dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMQojIDMwICIvdXNy L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9tbXVfY29udGV4dC5oIiAyCgpzdHJ1Y3QgaWE2 NF9jdHggewogICAgICAgIHNwaW5sb2NrX3QgbG9jazsKICAgICAgICB1bnNpZ25lZCBpbnQgbmV4 dDsKICAgICAgICB1bnNpZ25lZCBpbnQgbGltaXQ7CiAgICAgICAgdW5zaWduZWQgaW50IG1heF9j dHg7Cn07CgpleHRlcm4gc3RydWN0IGlhNjRfY3R4IGlhNjRfY3R4OwoKZXh0ZXJuIHZvaWQgd3Jh cF9tbXVfY29udGV4dCAoc3RydWN0IG1tX3N0cnVjdCAqbW0pOwoKc3RhdGljIGlubGluZSB2b2lk CmVudGVyX2xhenlfdGxiIChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IHRhc2tfc3RydWN0 ICp0c2ssIHVuc2lnbmVkIGNwdSkKewp9CgpzdGF0aWMgaW5saW5lIHZvaWQKZ2V0X25ld19tbXVf Y29udGV4dCAoc3RydWN0IG1tX3N0cnVjdCAqbW0pCnsKICAgICAgICBfX2FzbV9fIF9fdm9sYXRp bGVfXyAoICJtb3YgYXIuY2N2ID0gcjBcbiIgIm1vdiByMjkgPSAxXG4iICI7O1xuIiAiMTpcbiIg ImxkNCByMiA9IFslMF1cbiIgIjs7XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAscjJcbiIgIihwNykg YnIuY29uZC5zcG50LmZldyAxYiBcbiIgIiIiY21weGNoZzQuYWNxIHIyID0gWyUwXSwgcjI5LCBh ci5jY3ZcbiIgIjs7XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAsIHIyXG4iICIocDcpIGJyLmNvbmQu c3BudC5mZXcgMWJcbiIgIjs7XG4iIDo6ICJyIigmKCZpYTY0X2N0eC5sb2NrKS0+bG9jaykgOiAi cjIiLCAicjI5IiwgIm1lbW9yeSIpOwogICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChpYTY0 X2N0eC5uZXh0ID49IGlhNjRfY3R4LmxpbWl0KQogICAgICAgICAgICAgICAgICAgICAgICB3cmFw X21tdV9jb250ZXh0KG1tKTsKICAgICAgICAgICAgICAgIG1tLT5jb250ZXh0ID0gaWE2NF9jdHgu bmV4dCsrOwogICAgICAgIH0KICAgICAgICBkbyB7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6 IDoibWVtb3J5Iik7ICgoc3BpbmxvY2tfdCAqKSAmaWE2NF9jdHgubG9jayktPmxvY2sgPSAwOyB9 IHdoaWxlICgwKTsKCn0KCnN0YXRpYyBpbmxpbmUgdm9pZApnZXRfbW11X2NvbnRleHQgKHN0cnVj dCBtbV9zdHJ1Y3QgKm1tKQp7CgogICAgICAgIGlmIChtbS0+Y29udGV4dCA9PSAwKQogICAgICAg ICAgICAgICAgZ2V0X25ld19tbXVfY29udGV4dChtbSk7Cn0KCnN0YXRpYyBpbmxpbmUgaW50Cmlu aXRfbmV3X2NvbnRleHQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IG1tX3N0cnVjdCAq bW0pCnsKICAgICAgICBtbS0+Y29udGV4dCA9IDA7CiAgICAgICAgcmV0dXJuIDA7Cn0KCnN0YXRp YyBpbmxpbmUgdm9pZApkZXN0cm95X2NvbnRleHQgKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQp7Cgp9 CgpzdGF0aWMgaW5saW5lIHZvaWQKcmVsb2FkX2NvbnRleHQgKHN0cnVjdCBtbV9zdHJ1Y3QgKm1t KQp7