Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:39465 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 17164 invoked from network); 30 Jul 2008 14:33:07 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 30 Jul 2008 14:33:07 -0000 Authentication-Results: pb1.pair.com header.from=slackmase2@gmail.com; sender-id=pass; domainkeys=bad Authentication-Results: pb1.pair.com smtp.mail=slackmase2@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 64.233.166.183 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: slackmase2@gmail.com X-Host-Fingerprint: 64.233.166.183 py-out-1112.google.com Received: from [64.233.166.183] ([64.233.166.183:20833] helo=py-out-1112.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 51/5D-60483-2AB70984 for ; Wed, 30 Jul 2008 10:33:07 -0400 Received: by py-out-1112.google.com with SMTP id a25so25608pyi.16 for ; Wed, 30 Jul 2008 07:33:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type; bh=R8IacA1Ix/Moe1t9BQXCLDBHvCOgcYc9KxveBKPkZCw=; b=j2DXFKQ8rsrb29HYvTV2RPc7hTPFMuF43EBEwPvkxpwL3p4A7E4wa9LOX5dUiPUpqY wJBz0fHqH5V6vTJqLvd/3th6JByTLz/1AEl7n/NYTYCepXdVfwptIjBPyo+WTCHGREgL x4KeRxa+5CPm0o/S5masn2jBgFYoYgNO4l4i0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=bmFa+CJKEK3lsNvRSRN+uB39Fh4zgRBnXq+a6yBjPUCefhEDekbWQ087xT3e7fz9W9 gk1eH5Zx0HPHRd4Nc7x8462dwd2/nUPnjAXybbF7QPjdUOn9QZ6cjovzwfEDu0xfRIrj KFUAw3fN2qphtXeojbSu70iOUVxOQYk6DUfBs= Received: by 10.141.37.8 with SMTP id p8mr4319798rvj.256.1217428383752; Wed, 30 Jul 2008 07:33:03 -0700 (PDT) Received: by 10.70.68.12 with HTTP; Wed, 30 Jul 2008 07:33:03 -0700 (PDT) Message-ID: <99cd336d0807300733u43b99f6dx4b4bf3738e428326@mail.gmail.com> Date: Thu, 31 Jul 2008 00:03:03 +0930 To: internals@lists.php.net MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_46797_16031391.1217428383722" Subject: PHP 5.3 compile help From: slackmase2@gmail.com ("Andrew Mason") ------=_Part_46797_16031391.1217428383722 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi guys, Was trying to test php 5.3 last night and i got the following .... General settings checking whether to include gcov symbols... no checking whether to include debugging symbols... no checking layout of installed files... PHP checking path to configuration file... DEFAULT checking where to scan for configuration files... checking whether to enable safe mode by default... no checking for safe mode exec dir... /usr/local/php/bin checking whether to enable PHP's own SIGCHLD handler... no checking whether to enable magic quotes by default... no checking whether to explicitly link against libgcc... no checking whether to enable short tags by default... yes checking whether to enable dmalloc... no checking whether to enable IPv6 support... yes checking how big to make fd sets... using system default Configuring extensions checking which regex library to use... php checking whether to enable LIBXML support... yes checking libxml2 install dir... no checking for xml2-config path... /usr/bin/xml2-config checking whether libxml build works... no configure: error: build test failed. Please check the config.log for details. Attached is the config error log. Any help would be appreciated ------=_Part_46797_16031391.1217428383722 Content-Type: text/x-log; name=config.log Content-Transfer-Encoding: base64 X-Attachment-Id: file0 Content-Disposition: attachment; filename=config.log VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz IGEgbWlzdGFrZS4KCmNvbmZpZ3VyZToyMTUzOiBjaGVja2luZyBmb3IgQ3lnd2luIGVudmlyb25t ZW50CmNvbmZpZ3VyZToyMTY5OiBjYyAtYyAgIGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1cmU6IElu IGZ1bmN0aW9uICdtYWluJzoKY29uZmlndXJlOjIxNjU6IGVycm9yOiAnX19DWUdXSU4zMl9fJyB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKY29uZmlndXJlOjIxNjU6IGVy cm9yOiAoRWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlCmNv bmZpZ3VyZToyMTY1OiBlcnJvcjogZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbi4pCmNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAyMTU4ICJjb25maWd1cmUiCiNpbmNs dWRlICJjb25mZGVmcy5oIgoKaW50IG1haW4oKSB7CgojaWZuZGVmIF9fQ1lHV0lOX18KI2RlZmlu ZSBfX0NZR1dJTl9fIF9fQ1lHV0lOMzJfXwojZW5kaWYKcmV0dXJuIF9fQ1lHV0lOX187CjsgcmV0 dXJuIDA7IH0KY29uZmlndXJlOjIxODY6IGNoZWNraW5nIGZvciBtaW5ndzMyIGVudmlyb25tZW50 CmNvbmZpZ3VyZToyMTk4OiBjYyAtYyAgIGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1cmU6IEluIGZ1 bmN0aW9uICdtYWluJzoKY29uZmlndXJlOjIxOTQ6IGVycm9yOiAnX19NSU5HVzMyX18nIHVuZGVj bGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQpjb25maWd1cmU6MjE5NDogZXJyb3I6 IChFYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UKY29uZmln dXJlOjIxOTQ6IGVycm9yOiBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluLikKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDIxOTEgImNvbmZpZ3VyZSIKI2luY2x1ZGUg ImNvbmZkZWZzLmgiCgppbnQgbWFpbigpIHsKcmV0dXJuIF9fTUlOR1czMl9fOwo7IHJldHVybiAw OyB9CmNvbmZpZ3VyZToyMjE3OiBjaGVja2luZyBmb3IgZWdyZXAKY29uZmlndXJlOjIyMzI6IGNo ZWNraW5nIGZvciBhIHNlZCB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dApjb25maWd1cmU6 MjM4MjogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZQpjb25maWd1cmU6MjQwMzogY2hlY2tpbmcg dGFyZ2V0IHN5c3RlbSB0eXBlCmNvbmZpZ3VyZToyNTI2OiBjaGVja2luZyBmb3IgZ2NjCmNvbmZp Z3VyZToyNjM5OiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIChnY2MgICkgd29ya3MK Y29uZmlndXJlOjI2NTU6IGdjYyAtbyBjb25mdGVzdCAgICBjb25mdGVzdC5jICAxPiY1CmNvbmZp Z3VyZToyNjgxOiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIChnY2MgICkgaXMgYSBj cm9zcy1jb21waWxlcgpjb25maWd1cmU6MjY4NjogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNp bmcgR05VIEMKY29uZmlndXJlOjI2OTU6IGdjYyAtRSBjb25mdGVzdC5jCmNvbmZpZ3VyZToyNzE0 OiBjaGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1nCmNvbmZpZ3VyZToyNzQ2OiBjaGVja2lu ZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3Nvcgpjb25maWd1cmU6Mjc2NzogZ2NjIC1FICBj b25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjI4Mjg6IGNoZWNr aW5nIGZvciBpY2MKY29uZmlndXJlOjI4NTE6IGNoZWNraW5nIHdoZXRoZXIgZ2NjIGFuZCBjYyB1 bmRlcnN0YW5kIC1jIGFuZCAtbyB0b2dldGhlcgpjb25maWd1cmU6Mjg2NjogZ2NjIC1jIGNvbmZ0 ZXN0LmMgLW8gY29uZnRlc3QubyAxPiY1CmNvbmZpZ3VyZToyODY3OiBnY2MgLWMgY29uZnRlc3Qu YyAtbyBjb25mdGVzdC5vIDE+JjUKY29uZmlndXJlOjI4NzI6IGNjIC1jIGNvbmZ0ZXN0LmMgMT4m NQpjb25maWd1cmU6Mjg3NDogY2MgLWMgY29uZnRlc3QuYyAtbyBjb25mdGVzdC5vIDE+JjUKY29u ZmlndXJlOjI4NzU6IGNjIC1jIGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QubyAxPiY1CmNvbmZpZ3Vy ZToyOTAyOiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3Nvcgpjb25maWd1cmU6 Mjk4MjogY2hlY2tpbmcgZm9yIEFJWApjb25maWd1cmU6MzAwNjogY2hlY2tpbmcgd2hldGhlciBs biAtcyB3b3Jrcwpjb25maWd1cmU6MzAzMTogY2hlY2tpbmcgZm9yIHN5c3RlbSBsaWJyYXJ5IGRp cmVjdG9yeQpjb25maWd1cmU6MzA1NzogY2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgcnVucGF0 aHMKY29uZmlndXJlOjMwODE6IGNoZWNraW5nIGlmIGNvbXBpbGVyIHN1cHBvcnRzIC1SCmNvbmZp Z3VyZTozMDk2OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAtUiAvdXNyL2xp YiAgMT4mNQpnY2M6IHVucmVjb2duaXplZCBvcHRpb24gJy1SJwovdXNyL2xpYjogZmlsZSBub3Qg cmVjb2duaXplZDogSXMgYSBkaXJlY3RvcnkKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBz dGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDMwODkgImNvbmZpZ3Vy ZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCgppbnQgbWFpbigpIHsKCjsgcmV0dXJuIDA7IH0KY29u ZmlndXJlOjMxMTQ6IGNoZWNraW5nIGlmIGNvbXBpbGVyIHN1cHBvcnRzIC1XbCwtcnBhdGgsCmNv bmZpZ3VyZTozMTI5OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAtV2wsLXJw YXRoLC91c3IvbGliICAxPiY1CmNvbmZpZ3VyZTozMTYwOiBjaGVja2luZyBmb3IgZ2F3awpjb25m aWd1cmU6MzIyMDogY2hlY2tpbmcgZm9yIGJpc29uCmNvbmZpZ3VyZTozMjIwOiBjaGVja2luZyBm b3IgYnlhY2MKY29uZmlndXJlOjMyNjA6IGNoZWNraW5nIGZvciBiaXNvbiB2ZXJzaW9uCmNvbmZp Z3VyZTozMjk4OiBjaGVja2luZyBmb3IgcmUyYwpjb25maWd1cmU6MzM2NTogY2hlY2tpbmcgd2hl dGhlciB0byBlbmFibGUgY29tcHV0ZWQgZ290byBnY2MgZXh0ZW5zaW9uIHdpdGggcmUyYwpjb25m aWd1cmU6MzY3NzogY2hlY2tpbmcgd2hldGhlciB0byBmb3JjZSBub24tUElDIGNvZGUgaW4gc2hh cmVkIG1vZHVsZXMKY29uZmlndXJlOjM3MDc6IGNoZWNraW5nIHdoZXRoZXIgL2Rldi91cmFuZG9t IGV4aXN0cwpjb25maWd1cmU6Mzc4NjogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxp dHk9aGlkZGVuICAgY29uZnRlc3QuYyAgMT4mNQovdG1wL2NjY0NTYndxLm86IEluIGZ1bmN0aW9u IGBtYWluJzoKL3RtcC9waHAvcGhwLTUuMy4wL2NvbmZpZ3VyZTozNzgxOiB1bmRlZmluZWQgcmVm ZXJlbmNlIHRvIGBwdGhyZWFkX211dGV4YXR0cl9pbml0JwovdG1wL3BocC9waHAtNS4zLjAvY29u ZmlndXJlOjM3ODI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHB0aHJlYWRfY3JlYXRlJwpjb2xs ZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKI2xpbmUgMzc2OCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKCiNpbmNs dWRlIDxwdGhyZWFkLmg+CiNpbmNsdWRlIDxzdGRkZWYuaD4KCnZvaWQgKnRocmVhZF9yb3V0aW5l KHZvaWQgKmRhdGEpIHsKICAgIHJldHVybiBkYXRhOwp9CgppbnQgbWFpbigpIHsKICAgIHB0aHJl YWRfdCB0aGQ7CiAgICBwdGhyZWFkX211dGV4YXR0cl90IG1hdHRyOwogICAgaW50IGRhdGEgPSAx OwogICAgcHRocmVhZF9tdXRleGF0dHJfaW5pdCgmbWF0dHIpOwogICAgcmV0dXJuIHB0aHJlYWRf Y3JlYXRlKCZ0aGQsIE5VTEwsIHRocmVhZF9yb3V0aW5lLCAmZGF0YSk7Cn0gCmNvbmZpZ3VyZToz ODA2OiBjaGVja2luZyBmb3IgcHRocmVhZHNfY2ZsYWdzCmNvbmZpZ3VyZTozODQ2OiBnY2MgLW8g Y29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gLWt0aHJlYWQgICBjb25mdGVzdC5j ICAxPiY1CmdjYzogdW5yZWNvZ25pemVkIG9wdGlvbiAnLWt0aHJlYWQnCi90bXAvY2NoTFoyWGUu bzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL3BocC9waHAtNS4zLjAvY29uZmlndXJlOjM4NDE6 IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHB0aHJlYWRfbXV0ZXhhdHRyX2luaXQnCi90bXAvcGhw L3BocC01LjMuMC9jb25maWd1cmU6Mzg0MjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgcHRocmVh ZF9jcmVhdGUnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAzODI4ICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25m ZGVmcy5oIgoKI2luY2x1ZGUgPHB0aHJlYWQuaD4KI2luY2x1ZGUgPHN0ZGRlZi5oPgoKdm9pZCAq dGhyZWFkX3JvdXRpbmUodm9pZCAqZGF0YSkgewogICAgcmV0dXJuIGRhdGE7Cn0KCmludCBtYWlu KCkgewogICAgcHRocmVhZF90IHRoZDsKICAgIHB0aHJlYWRfbXV0ZXhhdHRyX3QgbWF0dHI7CiAg ICBpbnQgZGF0YSA9IDE7CiAgICBwdGhyZWFkX211dGV4YXR0cl9pbml0KCZtYXR0cik7CiAgICBy ZXR1cm4gcHRocmVhZF9jcmVhdGUoJnRoZCwgTlVMTCwgdGhyZWFkX3JvdXRpbmUsICZkYXRhKTsK fSAKY29uZmlndXJlOjM4NDY6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhp ZGRlbiAtcHRocmVhZCAgIGNvbmZ0ZXN0LmMgIDE+JjUKY29uZmlndXJlOjM4NzY6IGNoZWNraW5n IGZvciBwdGhyZWFkc19saWIKY29uZmlndXJlOjQwNTA6IGNoZWNraW5nIGZvciBBT0xzZXJ2ZXIg c3VwcG9ydApjb25maWd1cmU6NDMwNzogY2hlY2tpbmcgZm9yIEFwYWNoZSAxLnggbW9kdWxlIHN1 cHBvcnQgdmlhIERTTyB0aHJvdWdoIEFQWFMKY29uZmlndXJlOjQ2MzA6IGNoZWNraW5nIGZvciBB cGFjaGUgMS54IG1vZHVsZSBzdXBwb3J0CmNvbmZpZ3VyZTo1NDYzOiBjaGVja2luZyB3aGV0aGVy IHRvIGVuYWJsZSBBcGFjaGUgY2hhcnNldCBjb21wYXRpYmlsaXR5IG9wdGlvbgpjb25maWd1cmU6 NTYzNjogY2hlY2tpbmcgZm9yIEFwYWNoZSAyLjAgZmlsdGVyLW1vZHVsZSBzdXBwb3J0IHZpYSBE U08gdGhyb3VnaCBBUFhTCmNvbmZpZ3VyZTo2NDg0OiBjaGVja2luZyBmb3IgQXBhY2hlIDIuMCBo YW5kbGVyLW1vZHVsZSBzdXBwb3J0IHZpYSBEU08gdGhyb3VnaCBBUFhTCmNvbmZpZ3VyZTo3MzMz OiBjaGVja2luZyBmb3IgQXBhY2hlIDEueCAoaG9va3MpIG1vZHVsZSBzdXBwb3J0IHZpYSBEU08g dGhyb3VnaCBBUFhTCmNvbmZpZ3VyZTo3NjU2OiBjaGVja2luZyBmb3IgQXBhY2hlIDEueCAoaG9v a3MpIG1vZHVsZSBzdXBwb3J0CmNvbmZpZ3VyZTo4NDg5OiBjaGVja2luZyB3aGV0aGVyIHRvIGVu YWJsZSBBcGFjaGUgY2hhcnNldCBjb21wYXRpYmlsaXR5IG9wdGlvbgpjb25maWd1cmU6ODY2Mzog Y2hlY2tpbmcgZm9yIENhdWRpdW0gc3VwcG9ydApjb25maWd1cmU6OTAxNDogY2hlY2tpbmcgZm9y IENMSSBidWlsZApjb25maWd1cmU6OTA2MDogY2hlY2tpbmcgZm9yIENvbnRpbnVpdHkgc3VwcG9y dApjb25maWd1cmU6OTMzNzogY2hlY2tpbmcgZm9yIGVtYmVkZGVkIFNBUEkgbGlicmFyeSBzdXBw b3J0CmNvbmZpZ3VyZTo5NTU0OiBjaGVja2luZyBmb3IgWmV1cyBJU0FQSSBzdXBwb3J0CmNvbmZp Z3VyZTo5ODAzOiBjaGVja2luZyBmb3IgTWlsdGVyIHN1cHBvcnQKY29uZmlndXJlOjEwMDg3OiBj aGVja2luZyBmb3IgTlNBUEkgc3VwcG9ydApjb25maWd1cmU6MTA0Mzk6IGNoZWNraW5nIGZvciBQ SFRUUEQgc3VwcG9ydApjb25maWd1cmU6MTA2ODU6IGNoZWNraW5nIGZvciBQaTNXZWIgc3VwcG9y dApjb25maWd1cmU6MTEwNTI6IGNoZWNraW5nIHdoZXRoZXIgUm94ZW4gbW9kdWxlIGlzIGJ1aWxk IHVzaW5nIFpUUwpjb25maWd1cmU6MTEwNzY6IGNoZWNraW5nIGZvciBSb3hlbi9QaWtlIHN1cHBv cnQKY29uZmlndXJlOjExMzU0OiBjaGVja2luZyBmb3IgdGh0dHBkCmNvbmZpZ3VyZToxMTYxNTog Y2hlY2tpbmcgZm9yIFRVWApjb25maWd1cmU6MTE4NjE6IGNoZWNraW5nIGZvciB3ZWJqYW1lcwpj b25maWd1cmU6MTIxMTM6IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgQ0dJIGJpbmFyeQpjb25m aWd1cmU6MTIxMTg6IGNoZWNraW5nIGZvciBzb2NrbGVuX3QgaW4gc3lzL3NvY2tldC5oCmNvbmZp Z3VyZToxMjE0MDogY2hlY2tpbmcgZm9yIHN1bl9sZW4gaW4gc3lzL3VuLmgKY29uZmlndXJlOjEy MTYyOiBjaGVja2luZyB3aGV0aGVyIGNyb3NzLXByb2Nlc3MgbG9ja2luZyBpcyByZXF1aXJlZCBi eSBhY2NlcHQoKQpjb25maWd1cmU6MTIzOTU6IGNoZWNraW5nIGZvciBjaG9zZW4gU0FQSSBtb2R1 bGUKY29uZmlndXJlOjEyNDUyOiBjaGVja2luZyBmb3Igc2VuZG1haWwKY29uZmlndXJlOjEyNDkx OiBjaGVja2luZyB3aGV0aGVyIHN5c3RlbSB1c2VzIEVCQ0RJQwpjb25maWd1cmU6MTI1MTA6IGdj YyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgIDE+ JjUKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDEyNTAyICJjb25maWd1cmUi CiNpbmNsdWRlICJjb25mZGVmcy5oIgoKaW50IG1haW4odm9pZCkgeyAKICByZXR1cm4gKHVuc2ln bmVkIGNoYXIpJ0EnICE9ICh1bnNpZ25lZCBjaGFyKTB4QzE7IAp9IAoKY29uZmlndXJlOjEyNTM4 OiBjaGVja2luZyB3aGV0aGVyIGJ5dGUgb3JkZXJpbmcgaXMgYmlnZW5kaWFuCmNvbmZpZ3VyZTox MjU2NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRl c3QuYyAgMT4mNQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMTI1NDggImNv bmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCgppbnQgbWFpbih2b2lkKQp7CiAgc2hvcnQg b25lID0gMTsKICBjaGFyICpjcCA9IChjaGFyICopJm9uZTsKCiAgaWYgKCpjcCA9PSAwKSB7CiAg ICByZXR1cm4oMCk7CiAgfSBlbHNlIHsKICAgIHJldHVybigxKTsKICB9Cn0KICAKY29uZmlndXJl OjEyNTkwOiBjaGVja2luZyB3aGV0aGVyIHdyaXRpbmcgdG8gc3Rkb3V0IHdvcmtzCmNvbmZpZ3Vy ZToxMjYxOTogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29u ZnRlc3QuYyAgMT4mNQpjb25maWd1cmU6MTI2OTQ6IGNoZWNraW5nIGZvciBzb2NrZXQKY29uZmln dXJlOjEyNzIyOiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBj b25mdGVzdC5jICAxPiY1CmNvbmZpZ3VyZToxMjk1MTogY2hlY2tpbmcgZm9yIHNvY2tldHBhaXIK Y29uZmlndXJlOjEyOTc5OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRk ZW4gICBjb25mdGVzdC5jICAxPiY1CmNvbmZpZ3VyZToxMzIwODogY2hlY2tpbmcgZm9yIGh0b25s CmNvbmZpZ3VyZToxMzIzNjogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlk ZGVuICAgY29uZnRlc3QuYyAgMT4mNQpjb25maWd1cmU6MTM0NjU6IGNoZWNraW5nIGZvciBnZXRo b3N0bmFtZQpjb25maWd1cmU6MTM0OTM6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmls aXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgIDE+JjUKY29uZmlndXJlOjEzNzIyOiBjaGVja2luZyBm b3IgZ2V0aG9zdGJ5YWRkcgpjb25maWd1cmU6MTM3NTA6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIg LWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgIDE+JjUKY29uZmlndXJlOjEzOTc5OiBj aGVja2luZyBmb3IgeXBfZ2V0X2RlZmF1bHRfZG9tYWluCmNvbmZpZ3VyZToxNDAwNzogZ2NjIC1v IGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAgMT4mNQov dG1wL2NjSWJXeUJtLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3RtcC9waHAvcGhwLTUuMy4wL2Nv bmZpZ3VyZToxNDAwMTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeXBfZ2V0X2RlZmF1bHRfZG9t YWluJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKI2xpbmUgMTM5ODQgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZz LmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxs eSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgeXBfZ2V0 X2RlZmF1bHRfZG9tYWluKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVy cmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwov KiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2Yg YSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQg c3RpbGwgYXBwbHkuICAqLwpjaGFyIHlwX2dldF9kZWZhdWx0X2RvbWFpbigpOwoKaW50IG1haW4o KSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGlj aCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVu Y3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18g YW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBkZWZpbmVkIChfX3N0dWJf eXBfZ2V0X2RlZmF1bHRfZG9tYWluKSB8fCBkZWZpbmVkIChfX3N0dWJfX195cF9nZXRfZGVmYXVs dF9kb21haW4pCmNob2tlIG1lCiNlbHNlCnlwX2dldF9kZWZhdWx0X2RvbWFpbigpOwojZW5kaWYK CjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjE0MDI1OiBjaGVja2luZyBmb3IgX195cF9nZXRfZGVm YXVsdF9kb21haW4KY29uZmlndXJlOjE0MDUzOiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlz aWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jICAxPiY1Ci90bXAvY2NvMmxmWmIubzogSW4gZnVu Y3Rpb24gYG1haW4nOgovdG1wL3BocC9waHAtNS4zLjAvY29uZmlndXJlOjE0MDQ3OiB1bmRlZmlu ZWQgcmVmZXJlbmNlIHRvIGBfX3lwX2dldF9kZWZhdWx0X2RvbWFpbicKY29sbGVjdDI6IGxkIHJl dHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5l IDE0MDMwICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVy IHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAg ICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIF9feXBfZ2V0X2RlZmF1bHRfZG9tYWluKCk7 IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRl cm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGlu IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpj aGFyIF9feXBfZ2V0X2RlZmF1bHRfZG9tYWluKCk7CgppbnQgbWFpbigpIHsKCi8qIFRoZSBHTlUg QyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMK ICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVh bGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBu YW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9fX3lwX2dldF9kZWZhdWx0 X2RvbWFpbikgfHwgZGVmaW5lZCAoX19zdHViX19fX195cF9nZXRfZGVmYXVsdF9kb21haW4pCmNo b2tlIG1lCiNlbHNlCl9feXBfZ2V0X2RlZmF1bHRfZG9tYWluKCk7CiNlbmRpZgoKOyByZXR1cm4g MDsgfQpjb25maWd1cmU6MTQwOTE6IGNoZWNraW5nIGZvciB5cF9nZXRfZGVmYXVsdF9kb21haW4g aW4gLWxuc2wKY29uZmlndXJlOjE0MTEwOiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJp bGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1sbnNsICAgMT4mNQpjb25maWd1cmU6MTQxODU6IGdj YyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgIC1s bnNsIDE+JjUKY29uZmlndXJlOjE0MjM3OiBjaGVja2luZyBmb3IgZGxvcGVuCmNvbmZpZ3VyZTox NDI2NTogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRl c3QuYyAtbG5zbCAgMT4mNQovdG1wL2Njek1CQXJoLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3Rt cC9waHAvcGhwLTUuMy4wL2NvbmZpZ3VyZToxNDI1OTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg ZGxvcGVuJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMTQyNDIgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZk ZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVm dWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZGxv cGVuKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2Nj MiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hh ciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBi dWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHku ICAqLwpjaGFyIGRsb3BlbigpOwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBk ZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdh eXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAog ICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBh bGlhcy4gICovCiNpZiBkZWZpbmVkIChfX3N0dWJfZGxvcGVuKSB8fCBkZWZpbmVkIChfX3N0dWJf X19kbG9wZW4pCmNob2tlIG1lCiNlbHNlCmRsb3BlbigpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0K Y29uZmlndXJlOjE0MjgzOiBjaGVja2luZyBmb3IgX19kbG9wZW4KY29uZmlndXJlOjE0MzExOiBn Y2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1s bnNsICAxPiY1Ci90bXAvY2NRUUFkdDEubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL3BocC9w aHAtNS4zLjAvY29uZmlndXJlOjE0MzA1OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfX2Rsb3Bl bicKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CiNsaW5lIDE0Mjg4ICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5o IgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkg ZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIF9fZGxvcGVu KCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBp bnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBi ZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWls dGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAq LwpjaGFyIF9fZGxvcGVuKCk7CgppbnQgbWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRl ZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5 cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAg ICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFs aWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9fX2Rsb3BlbikgfHwgZGVmaW5lZCAoX19zdHVi X19fX19kbG9wZW4pCmNob2tlIG1lCiNlbHNlCl9fZGxvcGVuKCk7CiNlbmRpZgoKOyByZXR1cm4g MDsgfQpjb25maWd1cmU6MTQzNDk6IGNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbApjb25maWd1 cmU6MTQzNjg6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNv bmZ0ZXN0LmMgLWxkbCAgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE0NDQzOiBnY2MgLW8gY29uZnRl c3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1sbnNsICAtbGRsIDE+ JjUKY29uZmlndXJlOjE0NDk1OiBjaGVja2luZyBmb3Igc2luIGluIC1sbQpjb25maWd1cmU6MTQ1 MTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0 LmMgLWxtICAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZToxNDUwNzogd2FybmluZzogY29uZmxp Y3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uICdzaW4nCmNvbmZpZ3VyZToxNDU0ODog Y2hlY2tpbmcgZm9yIHJlc19zZWFyY2gKY29uZmlndXJlOjE0NTc2OiBnY2MgLW8gY29uZnRlc3Qg LWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1sbSAtbGRsIC1sbnNsICAx PiY1Ci90bXAvY2NNTWljZWQubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL3BocC9waHAtNS4z LjAvY29uZmlndXJlOjE0NTcwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGByZXNfc2VhcmNoJwpj b2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKI2xpbmUgMTQ1NTMgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8q IFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcg cHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgcmVzX3NlYXJjaCgp OyBiZWxvdy4gICovCiNpbmNsdWRlIDxhc3NlcnQuaD4KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50 ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLyogV2UgdXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K Y2hhciByZXNfc2VhcmNoKCk7CgppbnQgbWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRl ZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5 cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAg ICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFs aWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9yZXNfc2VhcmNoKSB8fCBkZWZpbmVkIChfX3N0 dWJfX19yZXNfc2VhcmNoKQpjaG9rZSBtZQojZWxzZQpyZXNfc2VhcmNoKCk7CiNlbmRpZgoKOyBy ZXR1cm4gMDsgfQpjb25maWd1cmU6MTQ1OTQ6IGNoZWNraW5nIGZvciBfX3Jlc19zZWFyY2gKY29u ZmlndXJlOjE0NjIyOiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4g ICBjb25mdGVzdC5jIC1sbSAtbGRsIC1sbnNsICAxPiY1Ci90bXAvY2NTelh1UkoubzogSW4gZnVu Y3Rpb24gYG1haW4nOgovdG1wL3BocC9waHAtNS4zLjAvY29uZmlndXJlOjE0NjE2OiB1bmRlZmlu ZWQgcmVmZXJlbmNlIHRvIGBfX3Jlc19zZWFyY2gnCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4 aXQgc3RhdHVzCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAxNDU5OSAiY29u ZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUg X19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2Fu IGNvbmZsaWN0IHdpdGggY2hhciBfX3Jlc19zZWFyY2goKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8 YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9p ZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRo ZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50 IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgX19yZXNfc2VhcmNoKCk7Cgpp bnQgbWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rp b25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAg U29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcg d2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQg KF9fc3R1Yl9fX3Jlc19zZWFyY2gpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX19fcmVzX3NlYXJjaCkK Y2hva2UgbWUKI2Vsc2UKX19yZXNfc2VhcmNoKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25m aWd1cmU6MTQ2NjA6IGNoZWNraW5nIGZvciByZXNfc2VhcmNoIGluIC1scmVzb2x2CmNvbmZpZ3Vy ZToxNDY3OTogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29u ZnRlc3QuYyAtbHJlc29sdiAgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE0NzU0OiBn Y2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1s bSAtbGRsIC1sbnNsICAtbHJlc29sdiAxPiY1CmNvbmZpZ3VyZToxNTA4NDogY2hlY2tpbmcgZm9y IGluZXRfYXRvbgpjb25maWd1cmU6MTUxMTI6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNp YmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUK Y29uZmlndXJlOjE1NDgwOiBjaGVja2luZyBmb3IgZG5fc2tpcG5hbWUKY29uZmlndXJlOjE1NTA4 OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5j IC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1Ci90bXAvY2NnMThTRjcubzogSW4gZnVuY3Rp b24gYG1haW4nOgovdG1wL3BocC9waHAtNS4zLjAvY29uZmlndXJlOjE1NTAyOiB1bmRlZmluZWQg cmVmZXJlbmNlIHRvIGBkbl9za2lwbmFtZScKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBz dGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDE1NDg1ICJjb25maWd1 cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0 dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29u ZmxpY3Qgd2l0aCBjaGFyIGRuX3NraXBuYW1lKCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2Vy dC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4g ZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0 dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90 b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIGRuX3NraXBuYW1lKCk7CgppbnQgbWFp bigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdo aWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBm dW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBf XyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1 Yl9kbl9za2lwbmFtZSkgfHwgZGVmaW5lZCAoX19zdHViX19fZG5fc2tpcG5hbWUpCmNob2tlIG1l CiNlbHNlCmRuX3NraXBuYW1lKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MTU1 MjY6IGNoZWNraW5nIGZvciBfX2RuX3NraXBuYW1lCmNvbmZpZ3VyZToxNTU1NDogZ2NjIC1vIGNv bmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAt bG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6MTU4NzQ6IGNoZWNraW5nIGZvciBBTlNJIEMg aGVhZGVyIGZpbGVzCmNvbmZpZ3VyZToxNTg4NzogZ2NjIC1FICBjb25mdGVzdC5jID4vZGV2L251 bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjE1OTU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8y IC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNs ICAxPiY1CmNvbmZpZ3VyZTogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25maWd1cmU6MTU5NDk6IHdh cm5pbmc6IGluY29tcGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBidWlsdC1pbiBmdW5j dGlvbiAnZXhpdCcKY29uZmlndXJlOjE1OTgyOiBjaGVja2luZyBmb3IgZGlyZW50LmggdGhhdCBk ZWZpbmVzIERJUgpjb25maWd1cmU6MTU5OTU6IGdjYyAtYyAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhp ZGRlbiAgY29uZnRlc3QuYyAxPiY1CmNvbmZpZ3VyZToxNjAyMDogY2hlY2tpbmcgZm9yIG9wZW5k aXIgaW4gLWxkaXIKY29uZmlndXJlOjE2MDM5OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlz aWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1sZGlyICAtbHJlc29sdiAtbG0gLWxkbCAtbG5z bCAgMT4mNQovdXNyL2xpYi9nY2MvaTQ4Ni1zbGFja3dhcmUtbGludXgvNC4xLjIvLi4vLi4vLi4v Li4vaTQ4Ni1zbGFja3dhcmUtbGludXgvYmluL2xkOiBjYW5ub3QgZmluZCAtbGRpcgpjb2xsZWN0 MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKI2xpbmUgMTYwMjggImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIE92ZXJy aWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8q IFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBh IGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBz dGlsbCBhcHBseS4gICovCmNoYXIgb3BlbmRpcigpOwoKaW50IG1haW4oKSB7Cm9wZW5kaXIoKQo7 IHJldHVybiAwOyB9CmNvbmZpZ3VyZToxNjE2MTogY2hlY2tpbmcgZm9yIGludHR5cGVzLmgKY29u ZmlndXJlOjE2MTcxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91 dApjb25maWd1cmU6MTYxNjE6IGNoZWNraW5nIGZvciBzdGRpbnQuaApjb25maWd1cmU6MTYxNzE6 IGdjYyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZTox NjE2MTogY2hlY2tpbmcgZm9yIGRpcmVudC5oCmNvbmZpZ3VyZToxNjE3MTogZ2NjIC1FICBjb25m dGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjE2MTYxOiBjaGVja2lu ZyBmb3IgQXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmgKY29uZmlndXJl OjE2MTcxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25m aWd1cmU6MTYxNjc6NTM6IGVycm9yOiBBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2Vy dmljZXMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKI2xpbmUgMTYxNjYgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCiNp bmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KY29uZmln dXJlOjE2MTYxOiBjaGVja2luZyBmb3Igc3lzL3BhcmFtLmgKY29uZmlndXJlOjE2MTcxOiBnY2Mg LUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MTYxNjE6 IGNoZWNraW5nIGZvciBzeXMvdHlwZXMuaApjb25maWd1cmU6MTYxNzE6IGdjYyAtRSAgY29uZnRl c3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToxNjE2MTogY2hlY2tpbmcg Zm9yIHN5cy90aW1lLmgKY29uZmlndXJlOjE2MTcxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYv bnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MTYxNjE6IGNoZWNraW5nIGZvciBuZXRpbmV0 L2luLmgKY29uZmlndXJlOjE2MTcxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNv bmZ0ZXN0Lm91dApjb25maWd1cmU6MTYxNjE6IGNoZWNraW5nIGZvciBhbGxvY2EuaApjb25maWd1 cmU6MTYxNzE6IGdjYyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNv bmZpZ3VyZToxNjE2MTogY2hlY2tpbmcgZm9yIGFycGEvaW5ldC5oCmNvbmZpZ3VyZToxNjE3MTog Z2NjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjE2 MTYxOiBjaGVja2luZyBmb3IgYXJwYS9uYW1lc2VyLmgKY29uZmlndXJlOjE2MTcxOiBnY2MgLUUg IGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MTYxNjE6IGNo ZWNraW5nIGZvciBhc3NlcnQuaApjb25maWd1cmU6MTYxNzE6IGdjYyAtRSAgY29uZnRlc3QuYyA+ L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToxNjE2MTogY2hlY2tpbmcgZm9yIGNy eXB0LmgKY29uZmlndXJlOjE2MTcxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNv bmZ0ZXN0Lm91dApjb25maWd1cmU6MTYxNjE6IGNoZWNraW5nIGZvciBmY250bC5oCmNvbmZpZ3Vy ZToxNjE3MTogZ2NjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29u ZmlndXJlOjE2MTYxOiBjaGVja2luZyBmb3IgZ3JwLmgKY29uZmlndXJlOjE2MTcxOiBnY2MgLUUg IGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MTYxNjE6IGNo ZWNraW5nIGZvciBpZWVlZnAuaApjb25maWd1cmU6MTYxNzE6IGdjYyAtRSAgY29uZnRlc3QuYyA+ L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToxNjE2NzoyMDogZXJyb3I6IGllZWVm cC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgojbGluZSAxNjE2NiAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKI2luY2x1 ZGUgPGllZWVmcC5oPgpjb25maWd1cmU6MTYxNjE6IGNoZWNraW5nIGZvciBsYW5naW5mby5oCmNv bmZpZ3VyZToxNjE3MTogZ2NjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5v dXQKY29uZmlndXJlOjE2MTYxOiBjaGVja2luZyBmb3IgbGltaXRzLmgKY29uZmlndXJlOjE2MTcx OiBnY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6 MTYxNjE6IGNoZWNraW5nIGZvciBsb2NhbGUuaApjb25maWd1cmU6MTYxNzE6IGdjYyAtRSAgY29u ZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToxNjE2MTogY2hlY2tp bmcgZm9yIG1vbmV0YXJ5LmgKY29uZmlndXJlOjE2MTcxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMgPi9k ZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MTYxNjE6IGNoZWNraW5nIGZvciBuZXRk Yi5oCmNvbmZpZ3VyZToxNjE3MTogZ2NjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25m dGVzdC5vdXQKY29uZmlndXJlOjE2MTYxOiBjaGVja2luZyBmb3IgcHdkLmgKY29uZmlndXJlOjE2 MTcxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1 cmU6MTYxNjE6IGNoZWNraW5nIGZvciByZXNvbHYuaApjb25maWd1cmU6MTYxNzE6IGdjYyAtRSAg Y29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToxNjE2MTogY2hl Y2tpbmcgZm9yIHNpZ25hbC5oCmNvbmZpZ3VyZToxNjE3MTogZ2NjIC1FICBjb25mdGVzdC5jID4v ZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjE2MTYxOiBjaGVja2luZyBmb3Igc3Rk YXJnLmgKY29uZmlndXJlOjE2MTcxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNv bmZ0ZXN0Lm91dApjb25maWd1cmU6MTYxNjE6IGNoZWNraW5nIGZvciBzdGRsaWIuaApjb25maWd1 cmU6MTYxNzE6IGdjYyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNv bmZpZ3VyZToxNjE2MTogY2hlY2tpbmcgZm9yIHN0cmluZy5oCmNvbmZpZ3VyZToxNjE3MTogZ2Nj IC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjE2MTYx OiBjaGVja2luZyBmb3Igc3lzbG9nLmgKY29uZmlndXJlOjE2MTcxOiBnY2MgLUUgIGNvbmZ0ZXN0 LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MTYxNjE6IGNoZWNraW5nIGZv ciBzeXNleGl0cy5oCmNvbmZpZ3VyZToxNjE3MTogZ2NjIC1FICBjb25mdGVzdC5jID4vZGV2L251 bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjE2MTYxOiBjaGVja2luZyBmb3Igc3lzL2lvY3Rs LmgKY29uZmlndXJlOjE2MTcxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0 ZXN0Lm91dApjb25maWd1cmU6MTYxNjE6IGNoZWNraW5nIGZvciBzeXMvZmlsZS5oCmNvbmZpZ3Vy ZToxNjE3MTogZ2NjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29u ZmlndXJlOjE2MTYxOiBjaGVja2luZyBmb3Igc3lzL21tYW4uaApjb25maWd1cmU6MTYxNzE6IGdj YyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToxNjE2 MTogY2hlY2tpbmcgZm9yIHN5cy9tb3VudC5oCmNvbmZpZ3VyZToxNjE3MTogZ2NjIC1FICBjb25m dGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjE2MTYxOiBjaGVja2lu ZyBmb3Igc3lzL3BvbGwuaApjb25maWd1cmU6MTYxNzE6IGdjYyAtRSAgY29uZnRlc3QuYyA+L2Rl di9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToxNjE2MTogY2hlY2tpbmcgZm9yIHN5cy9y ZXNvdXJjZS5oCmNvbmZpZ3VyZToxNjE3MTogZ2NjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwg Mj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjE2MTYxOiBjaGVja2luZyBmb3Igc3lzL3NlbGVjdC5o CmNvbmZpZ3VyZToxNjE3MTogZ2NjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVz dC5vdXQKY29uZmlndXJlOjE2MTYxOiBjaGVja2luZyBmb3Igc3lzL3NvY2tldC5oCmNvbmZpZ3Vy ZToxNjE3MTogZ2NjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29u ZmlndXJlOjE2MTYxOiBjaGVja2luZyBmb3Igc3lzL3N0YXQuaApjb25maWd1cmU6MTYxNzE6IGdj YyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToxNjE2 MTogY2hlY2tpbmcgZm9yIHN5cy9zdGF0ZnMuaApjb25maWd1cmU6MTYxNzE6IGdjYyAtRSAgY29u ZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToxNjE2MTogY2hlY2tp bmcgZm9yIHN5cy9zdGF0dmZzLmgKY29uZmlndXJlOjE2MTcxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMg Pi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MTYxNjE6IGNoZWNraW5nIGZvciBz eXMvdmZzLmgKY29uZmlndXJlOjE2MTcxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAy PmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MTYxNjE6IGNoZWNraW5nIGZvciBzeXMvc3lzZXhpdHMu aApjb25maWd1cmU6MTYxNzE6IGdjYyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRl c3Qub3V0CmNvbmZpZ3VyZToxNjE2NzoyNjogZXJyb3I6IHN5cy9zeXNleGl0cy5oOiBObyBzdWNo IGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAx NjE2NiAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKI2luY2x1ZGUgPHN5cy9zeXNl eGl0cy5oPgpjb25maWd1cmU6MTYxNjE6IGNoZWNraW5nIGZvciBzeXMvdmFyYXJncy5oCmNvbmZp Z3VyZToxNjE3MTogZ2NjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQK Y29uZmlndXJlOjE2MTY3OjI1OiBlcnJvcjogc3lzL3ZhcmFyZ3MuaDogTm8gc3VjaCBmaWxlIG9y IGRpcmVjdG9yeQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMTYxNjYgImNv bmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCiNpbmNsdWRlIDxzeXMvdmFyYXJncy5oPgpj b25maWd1cmU6MTYxNjE6IGNoZWNraW5nIGZvciBzeXMvd2FpdC5oCmNvbmZpZ3VyZToxNjE3MTog Z2NjIC1FICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjE2 MTYxOiBjaGVja2luZyBmb3Igc3lzL2xvYWRhdmcuaApjb25maWd1cmU6MTYxNzE6IGdjYyAtRSAg Y29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToxNjE2NzoyNTog ZXJyb3I6IHN5cy9sb2FkYXZnLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDE2MTY2ICJjb25maWd1cmUiCiNpbmNsdWRlICJj b25mZGVmcy5oIgojaW5jbHVkZSA8c3lzL2xvYWRhdmcuaD4KY29uZmlndXJlOjE2MTYxOiBjaGVj a2luZyBmb3IgdGVybWlvcy5oCmNvbmZpZ3VyZToxNjE3MTogZ2NjIC1FICBjb25mdGVzdC5jID4v ZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjE2MTYxOiBjaGVja2luZyBmb3IgdW5p c3RkLmgKY29uZmlndXJlOjE2MTcxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNv bmZ0ZXN0Lm91dApjb25maWd1cmU6MTYxNjE6IGNoZWNraW5nIGZvciB1bml4LmgKY29uZmlndXJl OjE2MTcxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25m aWd1cmU6MTYxNjc6MTg6IGVycm9yOiB1bml4Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDE2MTY2ICJjb25maWd1cmUiCiNp bmNsdWRlICJjb25mZGVmcy5oIgojaW5jbHVkZSA8dW5peC5oPgpjb25maWd1cmU6MTYxNjE6IGNo ZWNraW5nIGZvciB1dGltZS5oCmNvbmZpZ3VyZToxNjE3MTogZ2NjIC1FICBjb25mdGVzdC5jID4v ZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjE2MTYxOiBjaGVja2luZyBmb3Igc3lz L3V0c25hbWUuaApjb25maWd1cmU6MTYxNzE6IGdjYyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxs IDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToxNjE2MTogY2hlY2tpbmcgZm9yIHN5cy9pcGMuaApj b25maWd1cmU6MTYxNzE6IGdjYyAtRSAgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qu b3V0CmNvbmZpZ3VyZToxNjE2MTogY2hlY2tpbmcgZm9yIGRsZmNuLmgKY29uZmlndXJlOjE2MTcx OiBnY2MgLUUgIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6 MTYxNjE6IGNoZWNraW5nIGZvciBhc3NlcnQuaApjb25maWd1cmU6MTYyMDY6IGNoZWNraW5nIGZv ciBtYWNoLW8vZHlsZC5oCmNvbmZpZ3VyZToxNjIxNjogZ2NjIC1FICBjb25mdGVzdC5jID4vZGV2 L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjE2MjEyOjI1OiBlcnJvcjogbWFjaC1vL2R5 bGQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKI2xpbmUgMTYyMTEgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCiNpbmNs dWRlIDxtYWNoLW8vZHlsZC5oPgpjb25maWd1cmU6MTYyNDc6IGNoZWNraW5nIGZvciBmb3BlbmNv b2tpZQpjb25maWd1cmU6MTYyNzU6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5 PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmln dXJlOjE2MzA3OiBnY2MgLWMgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gIGNvbmZ0ZXN0LmMg MT4mNQpjb25maWd1cmU6MTYzNTg6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5 PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmln dXJlOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZpZ3VyZToxNjM1MTogd2FybmluZzogaW5jb21w YXRpYmxlIGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGJ1aWx0LWluIGZ1bmN0aW9uICdleGl0Jwpj b25maWd1cmU6MTY0MjI6IGNoZWNraW5nIGZvciBicm9rZW4gZ2V0Y3dkCmNvbmZpZ3VyZToxNjQz NzogY2hlY2tpbmcgZm9yIGJyb2tlbiBsaWJjIHN0ZGlvCmNvbmZpZ3VyZToxNjQ5ODogZ2NjIC1v IGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29s diAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6IEluIGZ1bmN0aW9uICdtYWluJzoKY29u ZmlndXJlOjE2NDgyOiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24g b2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz OgojbGluZSAxNjQ3MCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKCiNpbmNsdWRl IDxzdGRpby5oPgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQp7CiAgRklMRSAqZnA7 CiAgbG9uZyBwb3NpdGlvbjsKICBjaGFyICpmaWxlbmFtZSA9ICIvdG1wL3BocGdsaWJjY2hlY2si OwogIAogIGZwID0gZm9wZW4oZmlsZW5hbWUsICJ3Iik7CiAgaWYgKGZwID09IE5VTEwpIHsKICAg IHBlcnJvcigiZm9wZW4iKTsKICAgIGV4aXQoMik7CiAgfQogIGZwdXRzKCJmb29iYXIiLCBmcCk7 CiAgZmNsb3NlKGZwKTsKCiAgZnAgPSBmb3BlbihmaWxlbmFtZSwgImErIik7CiAgcG9zaXRpb24g PSBmdGVsbChmcCk7CiAgZmNsb3NlKGZwKTsKICB1bmxpbmsoZmlsZW5hbWUpOwogIGlmIChwb3Np dGlvbiA9PSAwKQogIHJldHVybiAxOwogIHJldHVybiAwOwp9Cgpjb25maWd1cmU6MTY1MjY6IGNo ZWNraW5nIHdoZXRoZXIgc3RydWN0IHRtIGlzIGluIHN5cy90aW1lLmggb3IgdGltZS5oCmNvbmZp Z3VyZToxNjUzOTogZ2NjIC1jIC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICBjb25mdGVzdC5j IDE+JjUKY29uZmlndXJlOjE2NTYwOiBjaGVja2luZyBmb3IgdG1fem9uZSBpbiBzdHJ1Y3QgdG0K Y29uZmlndXJlOjE2NTczOiBnY2MgLWMgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gIGNvbmZ0 ZXN0LmMgMT4mNQpjb25maWd1cmU6MTY2MzI6IGNoZWNraW5nIGZvciBtaXNzaW5nIGRlY2xhcmF0 aW9ucyBvZiByZWVudHJhbnQgZnVuY3Rpb25zCmNvbmZpZ3VyZToxNjY0MTogZ2NjIC1jIC1nIC1P MiAtZnZpc2liaWxpdHk9aGlkZGVuICBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOjE2NjY2OiBn Y2MgLWMgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gIGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1 cmU6MTY2OTE6IGdjYyAtYyAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgY29uZnRlc3QuYyAx PiY1CmNvbmZpZ3VyZToxNjcxNjogZ2NjIC1jIC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICBj b25mdGVzdC5jIDE+JjUKY29uZmlndXJlOjE2NzQxOiBnY2MgLWMgLWcgLU8yIC1mdmlzaWJpbGl0 eT1oaWRkZW4gIGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1cmU6MTY3NjI6IGNoZWNraW5nIGZvciBm Y2xvc2UgZGVjbGFyYXRpb24KY29uZmlndXJlOjE2NzcxOiBnY2MgLWMgLWcgLU8yIC1mdmlzaWJp bGl0eT1oaWRkZW4gIGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1cmU6MTY3OTc6IGNoZWNraW5nIGZv ciB0bV9nbXRvZmYgaW4gc3RydWN0IHRtCmNvbmZpZ3VyZToxNjgxMDogZ2NjIC1jIC1nIC1PMiAt ZnZpc2liaWxpdHk9aGlkZGVuICBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOjE2ODMzOiBjaGVj a2luZyBmb3Igc3RydWN0IGZsb2NrCmNvbmZpZ3VyZToxNjg0ODogZ2NjIC1jIC1nIC1PMiAtZnZp c2liaWxpdHk9aGlkZGVuICBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOjE2ODc1OiBjaGVja2lu ZyBmb3Igc29ja2xlbl90CmNvbmZpZ3VyZToxNjg5MjogZ2NjIC1jIC1nIC1PMiAtZnZpc2liaWxp dHk9aGlkZGVuICBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOjE2OTE4OiBjaGVja2luZyBzaXpl IG9mIHNpemVfdApjb25maWd1cmU6MTY5Mzg6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNp YmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUK Y29uZmlndXJlOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZpZ3VyZToxNjkzMjogd2FybmluZzog aW5jb21wYXRpYmxlIGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGJ1aWx0LWluIGZ1bmN0aW9uICdl eGl0Jwpjb25maWd1cmU6MTY5NTg6IGNoZWNraW5nIHNpemUgb2YgbG9uZyBsb25nCmNvbmZpZ3Vy ZToxNjk3ODogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29u ZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6IEluIGZ1bmN0 aW9uICdtYWluJzoKY29uZmlndXJlOjE2OTcyOiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGlj aXQgZGVjbGFyYXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnCmNvbmZpZ3VyZToxNjk5 ODogY2hlY2tpbmcgc2l6ZSBvZiBsb25nIGxvbmcgaW50CmNvbmZpZ3VyZToxNzAxODogZ2NjIC1v IGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29s diAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6IEluIGZ1bmN0aW9uICdtYWluJzoKY29u ZmlndXJlOjE3MDEyOiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24g b2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnCmNvbmZpZ3VyZToxNzAzODogY2hlY2tpbmcgc2l6 ZSBvZiBsb25nCmNvbmZpZ3VyZToxNzA1ODogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2li aWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpj b25maWd1cmU6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZmlndXJlOjE3MDUyOiB3YXJuaW5nOiBp bmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4 aXQnCmNvbmZpZ3VyZToxNzA3ODogY2hlY2tpbmcgc2l6ZSBvZiBpbnQKY29uZmlndXJlOjE3MDk4 OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5j IC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZTogSW4gZnVuY3Rpb24gJ21h aW4nOgpjb25maWd1cmU6MTcwOTI6IHdhcm5pbmc6IGluY29tcGF0aWJsZSBpbXBsaWNpdCBkZWNs YXJhdGlvbiBvZiBidWlsdC1pbiBmdW5jdGlvbiAnZXhpdCcKY29uZmlndXJlOjE3MTIwOiBjaGVj a2luZyBzaXplIG9mIGludG1heF90CmNvbmZpZ3VyZToxNzE2MTogZ2NjIC1vIGNvbmZ0ZXN0IC1n IC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAgMT4mNQpjb25maWd1cmU6MTcy MDA6IGNoZWNraW5nIHNpemUgb2Ygc3NpemVfdApjb25maWd1cmU6MTcyNDE6IGdjYyAtbyBjb25m dGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgIDE+JjUKY29uZmln dXJlOjE3MjgwOiBjaGVja2luZyBzaXplIG9mIHB0cmRpZmZfdApjb25maWd1cmU6MTczMjE6IGdj YyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgIDE+ JjUKY29uZmlndXJlOjE3MzYwOiBjaGVja2luZyBmb3Igc3RfYmxrc2l6ZSBpbiBzdHJ1Y3Qgc3Rh dApjb25maWd1cmU6MTczNzM6IGdjYyAtYyAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgY29u ZnRlc3QuYyAxPiY1CmNvbmZpZ3VyZToxNzM5NTogY2hlY2tpbmcgZm9yIHN0X2Jsb2NrcyBpbiBz dHJ1Y3Qgc3RhdApjb25maWd1cmU6MTc0MDg6IGdjYyAtYyAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhp ZGRlbiAgY29uZnRlc3QuYyAxPiY1CmNvbmZpZ3VyZToxNzQzNTogY2hlY2tpbmcgZm9yIHN0X3Jk ZXYgaW4gc3RydWN0IHN0YXQKY29uZmlndXJlOjE3NDQ4OiBnY2MgLWMgLWcgLU8yIC1mdmlzaWJp bGl0eT1oaWRkZW4gIGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1cmU6MTc0NzA6IGNoZWNraW5nIGZv ciBzaXplX3QKY29uZmlndXJlOjE3NTAzOiBjaGVja2luZyBmb3IgdWlkX3QgaW4gc3lzL3R5cGVz LmgKY29uZmlndXJlOjE3NTM5OiBjaGVja2luZyBmb3Igc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UK Y29uZmlndXJlOjE3NTUyOiBnY2MgLWMgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gIGNvbmZ0 ZXN0LmMgMT4mNQpjb25maWd1cmU6MTc1NzM6IGNoZWNraW5nIGZvciBmaWVsZCBzYV9sZW4gaW4g c3RydWN0IHNvY2thZGRyCmNvbmZpZ3VyZToxNzU4NzogZ2NjIC1jIC1nIC1PMiAtZnZpc2liaWxp dHk9aGlkZGVuICBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOiBJbiBmdW5jdGlvbiAnbWFpbic6 CmNvbmZpZ3VyZToxNzU4MzogZXJyb3I6ICdzdHJ1Y3Qgc29ja2FkZHInIGhhcyBubyBtZW1iZXIg bmFtZWQgJ3NhX2xlbicKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDE3NTc5 ICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgojaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CmludCBtYWluKCkgewpzdGF0aWMgc3RydWN0IHNvY2th ZGRyIHNhOyBpbnQgbiA9IChpbnQpIHNhLnNhX2xlbjsgcmV0dXJuIG47CjsgcmV0dXJuIDA7IH0K Y29uZmlndXJlOjE3NjEwOiBjaGVja2luZyBmb3IgSVB2NiBzdXBwb3J0CmNvbmZpZ3VyZToxNzYy NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3Qu YyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6MTc2NDA6IGNoZWNraW5n IGZvciB2cHJpbnRmCmNvbmZpZ3VyZToxNzY2ODogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZp c2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4m NQpjb25maWd1cmU6MTc2NTI6IHdhcm5pbmc6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciBidWlsdC1p biBmdW5jdGlvbiAndnByaW50ZicKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3IgYWxwaGFz b3J0CmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9 aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1 cmU6MTc4MjY6IGNoZWNraW5nIGZvciBhc2N0aW1lX3IKY29uZmlndXJlOjE3ODU0OiBnY2MgLW8g Y29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2 IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZToxNzgyNjogY2hlY2tpbmcgZm9yIGNocm9v dApjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhp ZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJl OjE3ODI2OiBjaGVja2luZyBmb3IgY3RpbWVfcgpjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25m dGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxt IC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3IgY3VzZXJpZApj b25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRl biAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3 ODI2OiBjaGVja2luZyBmb3IgY3J5cHQKY29uZmlndXJlOjE3ODU0OiBnY2MgLW8gY29uZnRlc3Qg LWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRs IC1sbnNsICAxPiY1Ci90bXAvY2NhNnZ2MTAubzogSW4gZnVuY3Rpb24gYG1haW4nOgovdG1wL3Bo cC9waHAtNS4zLjAvY29uZmlndXJlOjE3ODQ4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjcnlw dCcKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CiNsaW5lIDE3ODMxICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5o IgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkg ZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGNyeXB0KCk7 IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRl cm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGlu IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpj aGFyIGNyeXB0KCk7CgppbnQgbWFpbigpIHsKCi8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMg dGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWls IHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21l dGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAg Ki8KI2lmIGRlZmluZWQgKF9fc3R1Yl9jcnlwdCkgfHwgZGVmaW5lZCAoX19zdHViX19fY3J5cHQp CmNob2tlIG1lCiNlbHNlCmNyeXB0KCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6 MTc4MjY6IGNoZWNraW5nIGZvciBmbG9jawpjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVz dCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1s ZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3IgZnRvawpjb25maWd1 cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNv bmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBj aGVja2luZyBmb3IgZnVub3Blbgpjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAt TzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxu c2wgIDE+JjUKL3RtcC9jYzRJbjN0QS5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90bXAvcGhwL3Bo cC01LjMuMC9jb25maWd1cmU6MTc4NDg6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGZ1bm9wZW4n CmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgojbGluZSAxNzgzMSAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIK LyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZl dyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBmdW5vcGVuKCk7 IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRl cm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGlu IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpj aGFyIGZ1bm9wZW4oKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5l cyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZh aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNv bWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMu ICAqLwojaWYgZGVmaW5lZCAoX19zdHViX2Z1bm9wZW4pIHx8IGRlZmluZWQgKF9fc3R1Yl9fX2Z1 bm9wZW4pCmNob2tlIG1lCiNlbHNlCmZ1bm9wZW4oKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNv bmZpZ3VyZToxNzgyNjogY2hlY2tpbmcgZm9yIGdhaV9zdHJlcnJvcgpjb25maWd1cmU6MTc4NTQ6 IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMg LWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBm b3IgZ2N2dApjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmls aXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29u ZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3IgZ2V0bG9hZGF2Zwpjb25maWd1cmU6MTc4NTQ6IGdj YyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxy ZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3Ig Z2V0bG9naW4KY29uZmlndXJlOjE3ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJp bGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNv bmZpZ3VyZToxNzgyNjogY2hlY2tpbmcgZm9yIGdldHByb3RvYnluYW1lCmNvbmZpZ3VyZToxNzg1 NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3Qu YyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6MTc4MjY6IGNoZWNraW5n IGZvciBnZXRwcm90b2J5bnVtYmVyCmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0ZXN0IC1n IC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAt bG5zbCAgMT4mNQpjb25maWd1cmU6MTc4MjY6IGNoZWNraW5nIGZvciBnZXRzZXJ2YnluYW1lCmNv bmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVu ICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6MTc4 MjY6IGNoZWNraW5nIGZvciBnZXRzZXJ2Ynlwb3J0CmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNv bmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAt bG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6MTc4MjY6IGNoZWNraW5nIGZvciBnZXRydXNh Z2UKY29uZmlndXJlOjE3ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1o aWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3Vy ZToxNzgyNjogY2hlY2tpbmcgZm9yIGdldHRpbWVvZmRheQpjb25maWd1cmU6MTc4NTQ6IGdjYyAt byBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNv bHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3IgZ210 aW1lX3IKY29uZmlndXJlOjE3ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0 eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZp Z3VyZToxNzgyNjogY2hlY2tpbmcgZm9yIGdldHB3bmFtX3IKY29uZmlndXJlOjE3ODU0OiBnY2Mg LW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVz b2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZToxNzgyNjogY2hlY2tpbmcgZm9yIGdl dGdybmFtX3IKY29uZmlndXJlOjE3ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJp bGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNv bmZpZ3VyZToxNzgyNjogY2hlY2tpbmcgZm9yIGdldHB3dWlkX3IKY29uZmlndXJlOjE3ODU0OiBn Y2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1s cmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZToxNzgyNjogY2hlY2tpbmcgZm9y IGdyYW50cHQKY29uZmlndXJlOjE3ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJp bGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNv bmZpZ3VyZToxNzgyNjogY2hlY2tpbmcgZm9yIGluZXRfbnRvYQpjb25maWd1cmU6MTc4NTQ6IGdj YyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxy ZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3Ig aW5ldF9udG9wCmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2li aWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpj b25maWd1cmU6MTc4MjY6IGNoZWNraW5nIGZvciBpbmV0X3B0b24KY29uZmlndXJlOjE3ODU0OiBn Y2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1s cmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZToxNzgyNjogY2hlY2tpbmcgZm9y IGlzYXNjaWkKY29uZmlndXJlOjE3ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJp bGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNv bmZpZ3VyZToxNzgzODogd2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1 bmN0aW9uICdpc2FzY2lpJwpjb25maWd1cmU6MTc4MjY6IGNoZWNraW5nIGZvciBsaW5rCmNvbmZp Z3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAg Y29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6MTc4MjY6 IGNoZWNraW5nIGZvciBsb2NhbHRpbWVfcgpjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVz dCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1s ZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3IgbG9ja2YKY29uZmln dXJlOjE3ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBj b25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZToxNzgyNjog Y2hlY2tpbmcgZm9yIGxjaG93bgpjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAt TzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxu c2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3IgbHJhbmQ0OApjb25maWd1cmU6 MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0 ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVj a2luZyBmb3IgbWVtY3B5CmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAt ZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAg MT4mNQpjb25maWd1cmU6MTc4Mzg6IHdhcm5pbmc6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciBidWls dC1pbiBmdW5jdGlvbiAnbWVtY3B5Jwpjb25maWd1cmU6MTc4MjY6IGNoZWNraW5nIGZvciBtZW1t b3ZlCmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9 aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1 cmU6MTc4Mzg6IHdhcm5pbmc6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciBidWlsdC1pbiBmdW5jdGlv biAnbWVtbW92ZScKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3IgbWtzdGVtcApjb25maWd1 cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNv bmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBj aGVja2luZyBmb3IgbW1hcApjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIg LWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wg IDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3IgbmxfbGFuZ2luZm8KY29uZmlndXJl OjE3ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25m dGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZToxNzgyNjogY2hl Y2tpbmcgZm9yIHBlcnJvcgpjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIg LWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wg IDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3IgcG9sbApjb25maWd1cmU6MTc4NTQ6 IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMg LWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBm b3IgcHRzbmFtZQpjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNp YmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUK Y29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3IgcHV0ZW52CmNvbmZpZ3VyZToxNzg1NDogZ2Nj IC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJl c29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6MTc4MjY6IGNoZWNraW5nIGZvciBy ZWFscGF0aApjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmls aXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29u ZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3IgcmFuZG9tCmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1v IGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29s diAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6MTc4MjY6IGNoZWNraW5nIGZvciByYW5k X3IKY29uZmlndXJlOjE3ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1o aWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3Vy ZToxNzgyNjogY2hlY2tpbmcgZm9yIHJlc19zZWFyY2gKY29uZmlndXJlOjE3ODI2OiBjaGVja2lu ZyBmb3Igc2NhbmRpcgpjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2 aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+ JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3Igc2V0aXRpbWVyCmNvbmZpZ3VyZToxNzg1 NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3Qu YyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6MTc4MjY6IGNoZWNraW5n IGZvciBzZXRsb2NhbGUKY29uZmlndXJlOjE3ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1m dmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAx PiY1CmNvbmZpZ3VyZToxNzgyNjogY2hlY2tpbmcgZm9yIGxvY2FsZWNvbnYKY29uZmlndXJlOjE3 ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVz dC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZToxNzgyNjogY2hlY2tp bmcgZm9yIHNldGVudgpjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2 aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+ JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3Igc2V0cGdpZApjb25maWd1cmU6MTc4NTQ6 IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMg LWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBm b3Igc2V0c29ja29wdApjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2 aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+ JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3Igc2V0dmJ1Zgpjb25maWd1cmU6MTc4NTQ6 IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMg LWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBm b3Igc2h1dGRvd24KY29uZmlndXJlOjE3ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlz aWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1 CmNvbmZpZ3VyZToxNzgyNjogY2hlY2tpbmcgZm9yIHNpbgpjb25maWd1cmU6MTc4NTQ6IGdjYyAt byBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNv bHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODM4OiB3YXJuaW5nOiBjb25mbGlj dGluZyB0eXBlcyBmb3IgYnVpbHQtaW4gZnVuY3Rpb24gJ3NpbicKY29uZmlndXJlOjE3ODI2OiBj aGVja2luZyBmb3Igc25wcmludGYKY29uZmlndXJlOjE3ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcg LU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1s bnNsICAxPiY1CmNvbmZpZ3VyZToxNzgzODogd2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9y IGJ1aWx0LWluIGZ1bmN0aW9uICdzbnByaW50ZicKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBm b3Igc3JhbmQ0OApjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNp YmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUK Y29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3Igc3JhbmRvbQpjb25maWd1cmU6MTc4NTQ6IGdj YyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxy ZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3Ig c3RhdGZzCmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxp dHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25m aWd1cmU6MTc4MjY6IGNoZWNraW5nIGZvciBzdGF0dmZzCmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1v IGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29s diAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6MTc4MjY6IGNoZWNraW5nIGZvciBzdGRf c3lzbG9nCmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxp dHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQovdG1w L2NjR0VpOUMyLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3RtcC9waHAvcGhwLTUuMy4wL2NvbmZp Z3VyZToxNzg0ODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgc3RkX3N5c2xvZycKY29sbGVjdDI6 IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CiNsaW5lIDE3ODMxICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0g aGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlw ZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHN0ZF9zeXNsb2coKTsgYmVsb3cu ICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50 IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRo ZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgc3Rk X3N5c2xvZygpOwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRo aXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3 aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRo aW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICov CiNpZiBkZWZpbmVkIChfX3N0dWJfc3RkX3N5c2xvZykgfHwgZGVmaW5lZCAoX19zdHViX19fc3Rk X3N5c2xvZykKY2hva2UgbWUKI2Vsc2UKc3RkX3N5c2xvZygpOwojZW5kaWYKCjsgcmV0dXJuIDA7 IH0KY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3Igc3RyY2FzZWNtcApjb25maWd1cmU6MTc4 NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0 LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE3ODM4OiB3YXJuaW5n OiBjb25mbGljdGluZyB0eXBlcyBmb3IgYnVpbHQtaW4gZnVuY3Rpb24gJ3N0cmNhc2VjbXAnCmNv bmZpZ3VyZToxNzgyNjogY2hlY2tpbmcgZm9yIHN0cmNvbGwKY29uZmlndXJlOjE3ODU0OiBnY2Mg LW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVz b2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZToxNzgyNjogY2hlY2tpbmcgZm9yIHN0 cmR1cApjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5 PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmln dXJlOjE3ODM4OiB3YXJuaW5nOiBjb25mbGljdGluZyB0eXBlcyBmb3IgYnVpbHQtaW4gZnVuY3Rp b24gJ3N0cmR1cCcKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3Igc3RyZXJyb3IKY29uZmln dXJlOjE3ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBj b25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZToxNzgyNjog Y2hlY2tpbmcgZm9yIHN0cmZ0aW1lCmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0ZXN0IC1n IC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAt bG5zbCAgMT4mNQpjb25maWd1cmU6MTc4Mzg6IHdhcm5pbmc6IGNvbmZsaWN0aW5nIHR5cGVzIGZv ciBidWlsdC1pbiBmdW5jdGlvbiAnc3RyZnRpbWUnCmNvbmZpZ3VyZToxNzgyNjogY2hlY2tpbmcg Zm9yIHN0cnB0aW1lCmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZp c2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4m NQpjb25maWd1cmU6MTc4MjY6IGNoZWNraW5nIGZvciBzdHJzdHIKY29uZmlndXJlOjE3ODU0OiBn Y2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1s cmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZToxNzgzODogd2FybmluZzogY29u ZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uICdzdHJzdHInCmNvbmZpZ3VyZTox NzgyNjogY2hlY2tpbmcgZm9yIHN0cnRva19yCmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0 ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0g LWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6MTc4MjY6IGNoZWNraW5nIGZvciBzeW1saW5rCmNv bmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVu ICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6MTc4 MjY6IGNoZWNraW5nIGZvciB0ZW1wbmFtCmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0ZXN0 IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxk bCAtbG5zbCAgMT4mNQovdG1wL2Njb29oWWVqLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3RtcC9w aHAvcGhwLTUuMy4wL2NvbmZpZ3VyZToxNzg0ODogd2FybmluZzogdGhlIHVzZSBvZiBgdGVtcG5h bScgaXMgZGFuZ2Vyb3VzLCBiZXR0ZXIgdXNlIGBta3N0ZW1wJwpjb25maWd1cmU6MTc4MjY6IGNo ZWNraW5nIGZvciB0enNldApjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIg LWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wg IDE+JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3IgdW5sb2NrcHQKY29uZmlndXJlOjE3 ODU0OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVz dC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZToxNzgyNjogY2hlY2tp bmcgZm9yIHVuc2V0ZW52CmNvbmZpZ3VyZToxNzg1NDogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAt ZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAg MT4mNQpjb25maWd1cmU6MTc4MjY6IGNoZWNraW5nIGZvciB1c2xlZXAKY29uZmlndXJlOjE3ODU0 OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5j IC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZToxNzgyNjogY2hlY2tpbmcg Zm9yIG5hbm9zbGVlcApjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2 aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+ JjUKY29uZmlndXJlOjE3ODI2OiBjaGVja2luZyBmb3IgdXRpbWUKY29uZmlndXJlOjE3ODU0OiBn Y2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1s cmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZToxNzgyNjogY2hlY2tpbmcgZm9y IHZzbnByaW50Zgpjb25maWd1cmU6MTc4NTQ6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNp YmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUK Y29uZmlndXJlOjE3ODM4OiB3YXJuaW5nOiBjb25mbGljdGluZyB0eXBlcyBmb3IgYnVpbHQtaW4g ZnVuY3Rpb24gJ3ZzbnByaW50ZicKY29uZmlndXJlOjE3ODgwOiBjaGVja2luZyBmb3IgZ2V0YWRk cmluZm8KY29uZmlndXJlOjE3ODkyOiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0 eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNvbmZp Z3VyZToxNzkzODogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAg Y29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6IEluIGZ1 bmN0aW9uICdtYWluJzoKY29uZmlndXJlOjE3OTA4OiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1w bGljaXQgZGVjbGFyYXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ21lbXNldCcKY29uZmlndXJl OjE3OTEyOiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgYnVp bHQtaW4gZnVuY3Rpb24gJ2V4aXQnCmNvbmZpZ3VyZToxNzkxNjogd2FybmluZzogaW5jb21wYXRp YmxlIGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGJ1aWx0LWluIGZ1bmN0aW9uICdleGl0Jwpjb25m aWd1cmU6MTc5MjQ6IHdhcm5pbmc6IGluY29tcGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBv ZiBidWlsdC1pbiBmdW5jdGlvbiAnZXhpdCcKY29uZmlndXJlOjE3OTI4OiB3YXJuaW5nOiBpbmNv bXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQn CmNvbmZpZ3VyZToxNzkzMzogd2FybmluZzogaW5jb21wYXRpYmxlIGltcGxpY2l0IGRlY2xhcmF0 aW9uIG9mIGJ1aWx0LWluIGZ1bmN0aW9uICdleGl0Jwpjb25maWd1cmU6MTc5NzA6IGNoZWNraW5n IGZvciBzdHJsY2F0CmNvbmZpZ3VyZToxNzk5ODogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZp c2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4m NQovdG1wL2NjZTVYb3R3Lm86IEluIGZ1bmN0aW9uIGBtYWluJzoKL3RtcC9waHAvcGhwLTUuMy4w L2NvbmZpZ3VyZToxNzk5MjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgc3RybGNhdCcKY29sbGVj dDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CiNsaW5lIDE3OTc1ICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0 ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3Rv dHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHN0cmxjYXQoKTsgYmVsb3cu ICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50 IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRo ZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgc3Ry bGNhdCgpOwoKaW50IG1haW4oKSB7CgovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMg Zm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRo IEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5n IHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNp ZiBkZWZpbmVkIChfX3N0dWJfc3RybGNhdCkgfHwgZGVmaW5lZCAoX19zdHViX19fc3RybGNhdCkK Y2hva2UgbWUKI2Vsc2UKc3RybGNhdCgpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJl OjE3OTcwOiBjaGVja2luZyBmb3Igc3RybGNweQpjb25maWd1cmU6MTc5OTg6IGdjYyAtbyBjb25m dGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgLWxt IC1sZGwgLWxuc2wgIDE+JjUKL3RtcC9jY1kxVnRzci5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Ci90 bXAvcGhwL3BocC01LjMuMC9jb25maWd1cmU6MTc5OTI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g YHN0cmxjcHknCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAxNzk3NSAiY29uZmlndXJlIgojaW5jbHVkZSAiY29u ZmRlZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9w ZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBz dHJsY3B5KCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkg Z2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2Ug Y2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAg ICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBw bHkuICAqLwpjaGFyIHN0cmxjcHkoKTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJh cnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8g YWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFt ZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMg YW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX3N0cmxjcHkpIHx8IGRlZmluZWQgKF9f c3R1Yl9fX3N0cmxjcHkpCmNob2tlIG1lCiNlbHNlCnN0cmxjcHkoKTsKI2VuZGlmCgo7IHJldHVy biAwOyB9CmNvbmZpZ3VyZToxNzk3MDogY2hlY2tpbmcgZm9yIGdldG9wdApjb25maWd1cmU6MTc5 OTg6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNvbmZ0ZXN0 LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE4MDI1OiBjaGVja2lu ZyB3aGV0aGVyIHV0aW1lIGFjY2VwdHMgYSBudWxsIGFyZ3VtZW50CmNvbmZpZ3VyZToxODA0Njog Z2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3QuYyAt bHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6IEluIGZ1bmN0aW9uICdtYWlu JzoKY29uZmlndXJlOjE4MDQwOiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFy YXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnCmNvbmZpZ3VyZToxODA3MjogY2hlY2tp bmcgZm9yIHdvcmtpbmcgYWxsb2NhLmgKY29uZmlndXJlOjE4MTA1OiBjaGVja2luZyBmb3IgYWxs b2NhCmNvbmZpZ3VyZToxODEzODogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9 aGlkZGVuICAgY29uZnRlc3QuYyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1 cmU6MTgzMDU6IGNoZWNraW5nIGZvciBkZWNsYXJlZCB0aW1lem9uZQpjb25maWd1cmU6MTgzMjY6 IGdjYyAtYyAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgY29uZnRlc3QuYyAxPiY1CmNvbmZp Z3VyZToxODM1MjogY2hlY2tpbmcgZm9yIHR5cGUgb2YgcmVlbnRyYW50IHRpbWUtcmVsYXRlZCBm dW5jdGlvbnMKY29uZmlndXJlOjE4MzgxOiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJp bGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1CmNv bmZpZ3VyZTogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25maWd1cmU6MTgzNzM6IHdhcm5pbmc6IGFz c2lnbm1lbnQgbWFrZXMgaW50ZWdlciBmcm9tIHBvaW50ZXIgd2l0aG91dCBhIGNhc3QKY29uZmln dXJlOjE4Mzc0OiBlcnJvcjogdG9vIG1hbnkgYXJndW1lbnRzIHRvIGZ1bmN0aW9uICdhc2N0aW1l X3InCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAxODM2MyAiY29uZmlndXJl IgojaW5jbHVkZSAiY29uZmRlZnMuaCIKCiNpbmNsdWRlIDx0aW1lLmg+CgptYWluKCkgewpjaGFy IGJ1ZlsyN107CnN0cnVjdCB0bSB0Owp0aW1lX3Qgb2xkID0gMDsKaW50IHIsIHM7CgpzID0gZ210 aW1lX3IoJm9sZCwgJnQpOwpyID0gKGludCkgYXNjdGltZV9yKCZ0LCBidWYsIDI2KTsKaWYgKHIg PT0gcyAmJiBzID09IDApIHJldHVybiAoMCk7CnJldHVybiAoMSk7Cn0KCmNvbmZpZ3VyZToxODQx MzogZ2NjIC1vIGNvbmZ0ZXN0IC1nIC1PMiAtZnZpc2liaWxpdHk9aGlkZGVuICAgY29uZnRlc3Qu YyAtbHJlc29sdiAtbG0gLWxkbCAtbG5zbCAgMT4mNQpjb25maWd1cmU6IEluIGZ1bmN0aW9uICdt YWluJzoKY29uZmlndXJlOjE4NDA2OiBlcnJvcjogdG9vIG1hbnkgYXJndW1lbnRzIHRvIGZ1bmN0 aW9uICdhc2N0aW1lX3InCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAxODM5 NyAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKCiNpbmNsdWRlIDx0aW1lLmg+Cm1h aW4oKSB7CiAgc3RydWN0IHRtIHQsICpzOwogIHRpbWVfdCBvbGQgPSAwOwogIGNoYXIgYnVmWzI3 XSwgKnA7CiAgCiAgcyA9IGdtdGltZV9yKCZvbGQsICZ0KTsKICBwID0gYXNjdGltZV9yKCZ0LCBi dWYsIDI2KTsKICBpZiAocCA9PSBidWYgJiYgcyA9PSAmdCkgcmV0dXJuICgwKTsKICByZXR1cm4g KDEpOwp9CiAgCmNvbmZpZ3VyZToxODQ1MTogY2hlY2tpbmcgZm9yIHJlYWRkaXJfcgpjb25maWd1 cmU6MTg0Nzk6IGdjYyAtbyBjb25mdGVzdCAtZyAtTzIgLWZ2aXNpYmlsaXR5PWhpZGRlbiAgIGNv bmZ0ZXN0LmMgLWxyZXNvbHYgLWxtIC1sZGwgLWxuc2wgIDE+JjUKY29uZmlndXJlOjE4NTAxOiBj aGVja2luZyBmb3IgdHlwZSBvZiByZWFkZGlyX3IKY29uZmlndXJlOjE4NTM3OiBnY2MgLW8gY29u ZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIC1scmVzb2x2IC1s bSAtbGRsIC1sbnNsICAxPiY1CmNvbmZpZ3VyZTogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25maWd1 cmU6MTg1Mjk6IHdhcm5pbmc6IGluY29tcGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBi dWlsdC1pbiBmdW5jdGlvbiAnZXhpdCcKY29uZmlndXJlOjE4NjAwOiBjaGVja2luZyBmb3IgaW5f YWRkcl90CmNvbmZpZ3VyZToxODYzOTogY2hlY2tpbmcgZm9yIGNyeXB0X3IKY29uZmlndXJlOjE4 NjY3OiBnY2MgLW8gY29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVz dC5jIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAxPiY1Ci90bXAvY2MwVlh2S1QubzogSW4gZnVu Y3Rpb24gYG1haW4nOgovdG1wL3BocC9waHAtNS4zLjAvY29uZmlndXJlOjE4NjYxOiB1bmRlZmlu ZWQgcmVmZXJlbmNlIHRvIGBjcnlwdF9yJwpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0 YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMTg2NDQgImNvbmZpZ3Vy ZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1 YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25m bGljdCB3aXRoIGNoYXIgY3J5cHRfcigpOyBiZWxvdy4gICovCiNpbmNsdWRlIDxhc3NlcnQuaD4K LyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9y LiAgKi8KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0 eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBl IHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBjcnlwdF9yKCk7CgppbnQgbWFpbigpIHsKCi8q IFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGlt cGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMg YXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhl IG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9jcnlwdF9y KSB8fCBkZWZpbmVkIChfX3N0dWJfX19jcnlwdF9yKQpjaG9rZSBtZQojZWxzZQpjcnlwdF9yKCk7 CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MTg4MjQ6IGNoZWNraW5nIHdoZXRoZXIg dG8gaW5jbHVkZSBnY292IHN5bWJvbHMKY29uZmlndXJlOjE4OTg3OiBjaGVja2luZyB3aGV0aGVy IHRvIGluY2x1ZGUgZGVidWdnaW5nIHN5bWJvbHMKY29uZmlndXJlOjE5MDI5OiBjaGVja2luZyBs YXlvdXQgb2YgaW5zdGFsbGVkIGZpbGVzCmNvbmZpZ3VyZToxOTA2NDogY2hlY2tpbmcgcGF0aCB0 byBjb25maWd1cmF0aW9uIGZpbGUKY29uZmlndXJlOjE5MDk4OiBjaGVja2luZyB3aGVyZSB0byBz Y2FuIGZvciBjb25maWd1cmF0aW9uIGZpbGVzCmNvbmZpZ3VyZToxOTEzNDogY2hlY2tpbmcgd2hl dGhlciB0byBlbmFibGUgc2FmZSBtb2RlIGJ5IGRlZmF1bHQKY29uZmlndXJlOjE5MTY5OiBjaGVj a2luZyBmb3Igc2FmZSBtb2RlIGV4ZWMgZGlyCmNvbmZpZ3VyZToxOTIxMzogY2hlY2tpbmcgd2hl dGhlciB0byBlbmFibGUgUEhQJ3Mgb3duIFNJR0NITEQgaGFuZGxlcgpjb25maWd1cmU6MTkyNTE6 IGNoZWNraW5nIHdoZXRoZXIgdG8gZW5hYmxlIG1hZ2ljIHF1b3RlcyBieSBkZWZhdWx0CmNvbmZp Z3VyZToxOTI4OTogY2hlY2tpbmcgd2hldGhlciB0byBleHBsaWNpdGx5IGxpbmsgYWdhaW5zdCBs aWJnY2MKY29uZmlndXJlOjE5MzY5OiBjaGVja2luZyB3aGV0aGVyIHRvIGVuYWJsZSBzaG9ydCB0 YWdzIGJ5IGRlZmF1bHQKY29uZmlndXJlOjE5NDA3OiBjaGVja2luZyB3aGV0aGVyIHRvIGVuYWJs ZSBkbWFsbG9jCmNvbmZpZ3VyZToxOTQ5NTogY2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgSVB2 NiBzdXBwb3J0CmNvbmZpZ3VyZToxOTUyNTogY2hlY2tpbmcgaG93IGJpZyB0byBtYWtlIGZkIHNl dHMKY29uZmlndXJlOjE5NjM1OiBjaGVja2luZyB3aGljaCByZWdleCBsaWJyYXJ5IHRvIHVzZQpj b25maWd1cmU6MjAwNDk6IGNoZWNraW5nIHdoZXRoZXIgdG8gZW5hYmxlIExJQlhNTCBzdXBwb3J0 CmNvbmZpZ3VyZToyMDA5NzogY2hlY2tpbmcgbGlieG1sMiBpbnN0YWxsIGRpcgpjb25maWd1cmU6 MjAxMjY6IGNoZWNraW5nIGZvciB4bWwyLWNvbmZpZyBwYXRoCmNvbmZpZ3VyZToyMDI4NDogY2hl Y2tpbmcgd2hldGhlciBsaWJ4bWwgYnVpbGQgd29ya3MKY29uZmlndXJlOjIwMzExOiBnY2MgLW8g Y29uZnRlc3QgLWcgLU8yIC1mdmlzaWJpbGl0eT1oaWRkZW4gICBjb25mdGVzdC5jIAogICAgICAg ICAgCiAgICAgICAgIC1scmVzb2x2IC1sbSAtbGRsIC1sbnNsICAtbHhtbDIgLWx6IC1sbSAxPiY1 Ci91c3IvbGliL2djYy9pNDg2LXNsYWNrd2FyZS1saW51eC80LjEuMi8uLi8uLi8uLi8uLi9pNDg2 LXNsYWNrd2FyZS1saW51eC9iaW4vbGQ6IGNhbm5vdCBmaW5kIC1segpjb2xsZWN0MjogbGQgcmV0 dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUg MjAzMDAgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCgogICAgCiAgICBjaGFyIHht bEluaXRQYXJzZXIoKTsKICAgIGludCBtYWluKCkgewogICAgICB4bWxJbml0UGFyc2VyKCk7CiAg ICAgIHJldHVybiAwOwogICAgfQogIAo= ------=_Part_46797_16031391.1217428383722--